專利名稱:支持標(biāo)量復(fù)用的非全流水向量除法開方裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,并且具體涉及一種支持標(biāo)量復(fù)用的非全流水向量除法開方裝置及方法。
背景技術(shù):
隨著處理器技術(shù)的不斷發(fā)展,其應(yīng)用的領(lǐng)域也不斷拓展。尤其隨著多媒體運算,科 學(xué)運算等各種運算的增加,各種通用處理器都在添加單指令流多數(shù)據(jù)流的指令集。這種單 指令流多數(shù)據(jù)流的指令集的向量指令都會為有相應(yīng)的標(biāo)量指令,因為,并不是所有的程序 都是可以向量化的。這種向量化擴展,為增加其運算峰值,需要并行的增加其功能運算部件。如,一個 有256位寬運算能力的功能部件,其64位的雙精度運算部件就需要四個。大多數(shù)的運算常常是全流水的,所以其執(zhí)行標(biāo)量指令的時候,其未使用的其它運 算部件不會產(chǎn)生浪費。而除法開方部件卻是非全流水的,并且其執(zhí)行拍數(shù)不確定,所以其執(zhí) 行標(biāo)量指令時若阻塞其它標(biāo)量除法開方指令發(fā)射,就會形成對其它幾除法開方指令執(zhí)行部 件的浪費。目前,國內(nèi)外尚沒有發(fā)現(xiàn)支持標(biāo)量復(fù)用的非全流水向量除法開方的相關(guān)技術(shù)。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種支持標(biāo)量復(fù)用的非全流水向量除法開方裝置及方法,在 其執(zhí)行標(biāo)量指令時,仍可以發(fā)射其它的標(biāo)量除法開方指令,從而可以大大增加除法開方部 件的利用率。同時由于除法開方運算是非流水的,常常阻塞整個功能部件,這樣也增加了其 除法運算能力,從而大大減少流水線的阻塞,提高了處理器的運行效率。為實現(xiàn)本發(fā)明的目的而提供一種支持標(biāo)量復(fù)用的非全流水向量除法開方裝置。該 裝置包括控制模塊和至少兩個除法開方部件,其中控制模塊包括選擇模塊,用于產(chǎn)生選擇 信號以選擇輸入數(shù)據(jù)被送往哪個除法開方部件;標(biāo)量和向量執(zhí)行指令控制模塊,用于根據(jù) 所述除法開方部件的“忙”信號來進行標(biāo)量和向量執(zhí)行指令的控制;數(shù)據(jù)通路選擇模塊,用 于根據(jù)所述選擇信號來生成相應(yīng)的通路;結(jié)果控制模塊用于根據(jù)配置,實現(xiàn)不同數(shù)據(jù)格 式的結(jié)果。為實現(xiàn)本發(fā)明的目的還提供一種支持標(biāo)量復(fù)用的非全流水向量除法開方方法。該 方法包括以下步驟si 發(fā)射指令至控制模塊的指令發(fā)射步驟;S2 產(chǎn)生選擇信號以選擇輸 入數(shù)據(jù)被送往哪個除法開方部件的選擇步驟;S3 根據(jù)所述除法開方部件的“忙”信號來進 行標(biāo)量和向量執(zhí)行指令的控制的標(biāo)量和向量執(zhí)行指令控制步驟;S4 根據(jù)所述選擇信號來 生成相應(yīng)的通路的數(shù)據(jù)通路選擇步驟;S5 分配所述除法開方部件是否參加運算的分配步 驟;S6 結(jié)果數(shù)據(jù)根據(jù)配置進行整理步驟。。本發(fā)明的有益效果在本發(fā)明的支持標(biāo)量復(fù)用的非全流水向量除法開方裝置和方 法中,對于標(biāo)量指令復(fù)用其子功能部件的結(jié)構(gòu)。這種結(jié)構(gòu),可以使其在保持基本的向量結(jié)構(gòu)下,對標(biāo)量除法開方指令進行子模塊的復(fù)用,也大大提高了功能部件的利用率,且其硬件代 價不大。
圖1是依據(jù)本發(fā)明的一個具體實施例的支持標(biāo)量復(fù)用的非全流水向量除法開方 裝置的結(jié)構(gòu)示意圖;圖2是依據(jù)本發(fā)明的一個具體實施例的支持標(biāo)量復(fù)用的非全流水向量除法開方 方法的流程圖;圖3是以向量運算為256位寬度時,單雙精度浮點結(jié)果的表示方式示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明的提高微處理器部件利用率和運算效率的裝置和方法進行進一步詳細說明。應(yīng)當(dāng)理 解,此處所描述的具體實施例僅僅用以解釋本發(fā)明而不是對本發(fā)明的限制。下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細描述。圖1是依據(jù)本發(fā)明的一個具體實施例的支持標(biāo)量復(fù)用的非全流水向量除法開方 裝置的結(jié)構(gòu)示意圖。在這里需要說明的是,附圖中的四個除法開方部件只是一種優(yōu)選的實 施方式,該部件可以為二個,三個,五個……,并且這些部件為相同的運算部件。指令發(fā)射部件可以用于發(fā)射指令至控制模塊,該指令可以是一種指令碼。具體地, 每周期一條指令被發(fā)射到功能部件,它的操作數(shù)是256位的。對于其中的標(biāo)量指令,則高位 處的192位是無效的。所以,數(shù)據(jù)通路為最低的64位是可以到達四個除法開方部件中的任 意一個。至于到達其中的哪一個部件,由控制模塊生成的sel信號來控制。對于向量運算, 其256位的操作數(shù)都是有意義的,所以每個64位的操作數(shù)都相應(yīng)地傳送到相應(yīng)的除法功能 模塊中去。而且,對于結(jié)果也有相應(yīng)的選擇,只是通路方向反過來,從四個部件都要有到最低 位的數(shù)據(jù)通路。結(jié)果的選擇信號reS_C0ntr0l來控制。最終結(jié)果的高位可以做補零等操作。在標(biāo)量和向量指令執(zhí)行控制中,控制模塊中有一個計數(shù)器,來統(tǒng)計四個模塊中忙 的部件的數(shù)目。對于每周期發(fā)射得到指令,處理如下(1)、如果是一條向量指令,只要counter非零,則通知上一級除法開方部件“忙”, 整個功能部件阻塞,否則這個條向量指令可以發(fā)射到四個部件中去并行執(zhí)行。(2)、若其收到的為標(biāo)量指令,則檢查counter數(shù)值,僅當(dāng)其值為4時,向上一級反 饋除法開方部件“忙”信號。否則,為其分配一個部件,進行運算。分配策略也可多樣化,這 里舉一種例子,固定優(yōu)先級,即從低到高依次找,直到找到一個非“忙”子部件,把操作數(shù)相 應(yīng)發(fā)送過去,參與運算。在結(jié)果選擇中,由于除法開方部件為不定拍數(shù)的迭代運算,所以,結(jié)果的產(chǎn)生可能 不同于發(fā)射序,也會存在競爭。對于結(jié)果的競爭,也可以使用固定優(yōu)先級。例如可以通過連續(xù)發(fā)射的兩個標(biāo)量指令的情況,以及若干條向量指令,緊跟一條 標(biāo)量指令這兩種情況,來說明這種支持標(biāo)量復(fù)用的非全流水向量除法開方部件的工作方 式。
依據(jù)本發(fā)明的另一具體實施例,連續(xù)發(fā)射標(biāo)量指令。部件“忙”信號共有兩組五條, 第一組四個為每個子部件的“忙”信號,另一組為向量除法部件的“忙”信號,它為第一組四 個“忙”信號的或表示除法部件中有運算但還未提交到結(jié)果總線上的指令。在這種結(jié)構(gòu) 上,第一條標(biāo)量指令,在發(fā)射時,所有的忙信號都未置起,便從低到高選取,則生成的子部件 號為0,這個部件號作為多路選擇器的選擇端信號,送到入口端的多路器中去,于是,0號子 部件收到這條指令,進行運算,其子部件“忙”信號置起;向量部件忙信號,也被置起。
第二條指令發(fā)射,它檢查自己的op和fmt可以確認為一條標(biāo)量指令,這時,控制模 塊檢查四個子部件忙信號,從低到高地選擇最低且沒有置起忙信號的部件號,這時得到的 子部件號應(yīng)為1,即對應(yīng)的sel信號也為1則指令中有效的64位數(shù)據(jù),送到1號除法開方子 部件,相應(yīng)子部件“忙”信號置起,運算開始。結(jié)果提交時,由于除法開方指令的執(zhí)行拍數(shù)是不定的。所以常常先發(fā)射的指令后 提交,也有可能同一拍,多個不同的運算同時提交指令。對于結(jié)果的輸出,采用總線競爭的 方式,一個周期只輸出一個結(jié)果,仲裁策略也使用固定優(yōu)先級,即O號的優(yōu)先級最高,其余 依次遞減。依據(jù)本發(fā)明的又一具體實施例,對于若干條標(biāo)量指令后接一條向量指令。如之前 所述的內(nèi)容,第一條指令,會分配到O號子部件。并置起子部O “忙”信號和向量除法“忙”信號。后續(xù)指令發(fā)射時,控制模塊通過op和fmt判定收到發(fā)射的指令是否為向量指令, 并查看向量部件“忙”信號。因之前發(fā)射了若干條標(biāo)量指令,他們在部件中執(zhí)行,且可能有 多條都未提交到結(jié)果總線上。所以在向量部件“忙”置起時,整個部件阻塞,即通知前級流 水以功能部件“滿”信號,以停止向功能部件發(fā)射運算指令。阻塞會一直持續(xù),直到所有的在功能部件里的指令,都執(zhí)行完畢,并通過結(jié)果總線 提交后,所有的子部件“忙”信號都會復(fù)位到0,即此時向量部件“忙”也復(fù)位到O。則向量 除法開方指令發(fā)射,阻塞解除,流水線繼續(xù)。圖2是依據(jù)本發(fā)明的一個具體實施例的支持標(biāo)量復(fù)用的非全流水向量除法開方 方法的流程圖,如圖2所示,首先,發(fā)射指令至控制模塊,被發(fā)射的指令包括至少一個標(biāo)量 指令和至少一個向量指令。然后產(chǎn)生選擇信號以選擇輸入數(shù)據(jù)被送往哪個除法開方部件, 接著,根據(jù)所述除法開方部件的“忙”信號來進行標(biāo)量和向量執(zhí)行指令的控制,其后,根據(jù)上 面的選擇信號來生成相應(yīng)的通路的數(shù)據(jù)通路,并且分配所述除法開方部件是否參加運算, 該分配步驟采用了優(yōu)先級的分配策略。圖3是對本發(fā)明所述的結(jié)果格式的說明。根據(jù)IEEE754標(biāo)準(zhǔn),單精度浮點數(shù)據(jù)為 32位,雙精度浮點數(shù)為64位。徹訓(xùn)1乙開頭的數(shù)據(jù)表示由靈數(shù)據(jù)通路經(jīng)過選擇后,送出的 結(jié)果;rd_開頭的表示目的寄存器的原值。這里以256位向量寬度為例,對這三種模式進行 說明。同時對不同格式的支持,并在此基礎(chǔ)上實現(xiàn)了對其的靈活配置。對于不同的場合的 應(yīng)用提供了很大的便利。從前面的具體實施例可以看出,這種工作方式的優(yōu)勢是很明顯的。這種方法相比 于每條指令都提交后再發(fā)射下一條的方法,在指令中多為的標(biāo)量指令的時候,效率會大大 提高。而且這種情況比較常見,因向量處理器,也常常需要兼容一些已經(jīng)編譯好的,非向量 化的程序,這里所有除法運算都是標(biāo)量的。這種情況下,效率的提高將更為明顯。
另一方面,這種方法硬件代價很少,在面積時序要求不太苛刻的時候,可以用這種方法提高運算部件的利用率,以提高運算效率。盡管參照優(yōu)選實施例已經(jīng)描述了本發(fā)明,本領(lǐng)域熟練技術(shù)人員將認識到,可以進 行形式和細節(jié)上的改變,只要不脫離本發(fā)明的精神和范圍。本發(fā)明試圖不局限于被公開的 具體實施例,如預(yù)期用于實施本發(fā)明的最佳模式,相反,本發(fā)明將包括落入附加權(quán)利要求的 范圍的全部實施例。
權(quán)利要求
一種支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,包括控制模塊和至少兩個除法開方部件,其中所述控制模塊包括選擇模塊,用于產(chǎn)生選擇信號以選擇輸入數(shù)據(jù)被送往哪個除法開方部件;標(biāo)量和向量執(zhí)行指令控制模塊,用于根據(jù)所述除法開方部件的“忙”信號來進行標(biāo)量和向量執(zhí)行指令的控制;數(shù)據(jù)通路選擇模塊,用于根據(jù)所述選擇信號來生成相應(yīng)的通路。結(jié)果控制模塊,用于把從功能部件輸出的結(jié)果,整理成標(biāo)準(zhǔn)格式,并可根據(jù)不同的配置,輸出不同格式的結(jié)果。
2.如權(quán)利要求1所述的支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,其中所述支持標(biāo) 量復(fù)用的非全流水向量除法開方裝置還包括一個指令發(fā)射部件,用于發(fā)射指令至所述控制 模塊。
3.如權(quán)利要求2所述支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,所述指令包括至少 一個標(biāo)量指令和至少一個向量指令。
4.如權(quán)利要求3所述支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,所述控制模塊還包 括計數(shù)器,該計數(shù)器用于統(tǒng)計所述至少兩個除法開方部件中“忙”的部件的數(shù)目。
5.如權(quán)利要求4所述支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,所述至少兩個除法 開方部件為相同的運算部件。
6.如權(quán)利要求5所述支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,其中所述控制模塊 還包括數(shù)據(jù)整理模塊,用于將所述選擇信號的結(jié)果數(shù)據(jù)整理成標(biāo)準(zhǔn)格式。
7.如權(quán)利要求6所述支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,其中所述的數(shù)據(jù)整 理模塊還包括了對不同結(jié)果數(shù)據(jù)格式的選擇模塊及方法,其可根據(jù)配置選擇不同的結(jié)果數(shù) 據(jù)格式。
8.如權(quán)利要求7所述支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,其所支持的結(jié)果數(shù) 據(jù)格式包括如下三種清零模式,保持模式和廣播模式三種不同結(jié)果數(shù)據(jù)格式。
9.如權(quán)利要求8所述支持標(biāo)量復(fù)用的非全流水向量除法開方裝置,其中所述控制模塊 還包括分配模塊,用于分配所述除法開方部件是否參加運算。
10.一種支持標(biāo)量復(fù)用的非全流水向量除法開方方法,所述方法包括以下步驟51發(fā)射指令至控制模塊的指令發(fā)射步驟;52產(chǎn)生選擇信號以選擇輸入數(shù)據(jù)被送往哪個除法開方部件的選擇步驟;53根據(jù)所述除法開方部件的“忙”信號來進行標(biāo)量和向量執(zhí)行指令的控制的標(biāo)量和向 量執(zhí)行指令控制步驟;54根據(jù)所述選擇信號來生成相應(yīng)的通路的數(shù)據(jù)通路選擇步驟;55分配所述除法開方部件是否參加運算的分配步驟;56結(jié)果數(shù)據(jù)根據(jù)配置進行整理步驟。
11.如權(quán)利要求7所述的支持標(biāo)量復(fù)用的非全流水向量除法開方方法,其中步驟S1中 的所述指令包括至少一個標(biāo)量指令和至少一個向量指令。
12.如權(quán)利要求10所述的支持標(biāo)量復(fù)用的非全流水向量除法開方方法,其中在步驟S3 中,利用計數(shù)器來統(tǒng)計所述除法開方部件中“忙”的部件的數(shù)目。
13.如權(quán)利要求12所述的支持標(biāo)量復(fù)用的非全流水向量除法幵方方法,其中步驟S5中 的分配步驟采用了優(yōu)先級的分配策略。
14.如權(quán)利要求12所述的支持標(biāo)量復(fù)用的非全流水向量除法幵方方法,其中步驟S6中 的整理步驟采用了根據(jù)不同配置實現(xiàn)不同模式的策略。
全文摘要
本發(fā)明公開了一種支持標(biāo)量復(fù)用的非全流水向量除法開方裝置及方法。該裝置包括控制模塊和至少兩個除法開方部件,其中控制模塊包括選擇模塊,用于產(chǎn)生選擇信號以選擇輸入數(shù)據(jù)被送往哪個除法開方部件;標(biāo)量和向量執(zhí)行指令控制模塊,用于根據(jù)所述除法開方部件的“忙”信號來進行標(biāo)量和向量執(zhí)行指令的控制;數(shù)據(jù)通路選擇模塊,用于根據(jù)所述選擇信號來生成相應(yīng)的通路;結(jié)果控制模塊用于根據(jù)配置,實現(xiàn)不同數(shù)據(jù)格式的結(jié)果。
文檔編號G06F7/535GK101840323SQ20101013381
公開日2010年9月22日 申請日期2010年3月25日 優(yōu)先權(quán)日2010年3月25日
發(fā)明者劉宏偉, 張曉春, 郇丹丹 申請人:北京龍芯中科技術(shù)服務(wù)中心有限公司