欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種自索引寄存器文件堆裝置的制作方法

文檔序號:6402273閱讀:262來源:國知局
專利名稱:一種自索引寄存器文件堆裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及集成電路設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及處理器寄存器文件堆的結(jié)構(gòu),與 ASIC (Application Specific Integrated Circuit)設(shè)計(jì)、集成電路結(jié)構(gòu)密切相關(guān)。
背景技術(shù)
無論是CISC (Complex Instruction Set Computer)處理器還是 RISC (ReducedInstruction Set Computer)處理器,在處理器核內(nèi)部設(shè)計(jì)通用寄存器都是一個通用的辦法。高速的寄存器可以極大加速數(shù)據(jù)交換的速度,對于數(shù)量較小的數(shù)據(jù)運(yùn)算,中間結(jié)果數(shù)據(jù)不必寫入相對慢速的存儲器,直接通過寄存器堆在核內(nèi)部交換數(shù)據(jù),提高運(yùn)算速度。對于專用領(lǐng) 域處理器(ASIP),尤其是運(yùn)算密集型處理器,如何在特定算法中提高數(shù)據(jù)的利用率,同時(shí)利用數(shù)據(jù)局部性原理,減少訪存次數(shù),是一個極大的挑戰(zhàn)。目前常用處理器設(shè)計(jì)中,尤其是RISC處理器中,會設(shè)計(jì)一組或多組通用寄存器文件堆,用來在處理器核內(nèi)部交換中間結(jié)果數(shù)據(jù),然后對通用寄存器堆做優(yōu)化,一般而言,該優(yōu)化針對寄存器堆的可重構(gòu)性、性能及可支持的最大讀寫數(shù)目等方面來支持,沒有從算法級別來考慮寄存器堆的優(yōu)化設(shè)計(jì)。如申請?zhí)枮?2126222.5、發(fā)明名稱為“一種可重構(gòu)寄存器堆及其設(shè)計(jì)方法”的中國發(fā)明專利公開說明書中提出了一種可以對多種指令兼容的可重構(gòu)寄存器堆設(shè)計(jì)方法,其中通過硬件做新指令集中所訪問寄存器號的目標(biāo)地址與物理地址的轉(zhuǎn)換,從而達(dá)到指令級的重構(gòu),該思路比較新穎,但是針對指令集確定的處理器而言,該部分硬件邏輯為冗余。申請?zhí)枮?01010240104.1、發(fā)明名稱為“多端口寄存器堆電路”的中國專利公開說明書中提供了針對VLIW(Very Long Instruction Word)處理器對寄存器堆多個讀寫端口請求的特點(diǎn),設(shè)計(jì)了一種高效定制電路,最大可支持17個讀端口,9個寫端口。公開號為US2008/0279015A1,名稱為“Register File”的美國專利公開說明書設(shè)計(jì)了一種三態(tài)邏輯電路,避免了使用多路復(fù)選器的延遲,極大提高了寄存器堆的訪存性能。寄存器文件堆(Register File)是一種由多個寄存器組成的陣列,是數(shù)字邏輯電路中用于保存操作數(shù)和運(yùn)算結(jié)果的部件,它是構(gòu)成微處理器的核心部件。也就是說,寄存器文件堆是是一種硬件結(jié)構(gòu),因此,為了更加清楚地體現(xiàn)本發(fā)明的硬件屬性,在此,本發(fā)明中將寄存器件堆稱為“寄存器文件堆裝置”。

發(fā)明內(nèi)容
(一 )要解決的技術(shù)問題本發(fā)明所要解決的技術(shù)問題是現(xiàn)有技術(shù)均是針對寄存器文件堆的某一功能點(diǎn)做出優(yōu)化,如擴(kuò)展讀寫端口數(shù)目及降低訪存延遲,而沒有從數(shù)據(jù)局部性方面對寄存器訪存性能進(jìn)行優(yōu)化。( 二 )技術(shù)方案本發(fā)明提出一種自索引寄存器文件堆裝置,包括寄存器存儲體和該寄存器存儲體的外圍邏輯,所述寄存儲存儲體配置為自索引區(qū)和普通區(qū),所述自索引區(qū)的大小、起始寄存器號可以靈活配置,普通區(qū)采用常數(shù)寄存器號方式進(jìn)行索引,當(dāng)對該寄存器文件堆裝置發(fā)起讀寫啟動信號時(shí),該寄存器文件堆裝置自動計(jì)算當(dāng)前所需索引號,讀寫均在所述自索引區(qū)內(nèi),當(dāng)讀寫到自索引區(qū)邊界后,下次操作自動轉(zhuǎn)到自索引區(qū)起始位置。根據(jù)本發(fā)明的一種具體實(shí)施方式
,所述自索引文件堆裝置與一個指令隊(duì)列存儲裝置連接,從該指令隊(duì)列存儲裝置中獲取指令隊(duì)列,該指令隊(duì)列存儲裝置用來存放對該寄存器文件堆裝置的控制命令。 根據(jù)本發(fā)明的一種具體實(shí)施方式
,所述寄存器文件堆裝置還包括自索引寫控制單元配置寄存器、自索引讀控制單元、寫索引選通器和讀索引選通器,其中,所述自索引寫控制單元用于計(jì)算下一次訪問自索引區(qū)所需使用的寫索引號;所述配置寄存器用來存儲所述自索引區(qū)的配置信息;所述自索引讀控制單元的功能主要是計(jì)算下一次訪問自索引區(qū)所需使用的讀索引號;所述寫索引選通器用來選擇當(dāng)前所用寫索引,決定寫寄存器存儲體的索引是自索引區(qū)的索引還是普通區(qū)的索引;所述讀索引選通器用來選擇當(dāng)前所用讀索引,決定讀寄存器存儲體的索引是自索引區(qū)的索引還是普通區(qū)的索引。根據(jù)本發(fā)明的一種具體實(shí)施方式
,所述自索引寄存器文件堆裝置的讀寫指令分為普通區(qū)的讀寫指令和自索引區(qū)的讀寫指令,自索引區(qū)的讀寫指令的定義格式包括一個特殊標(biāo)識。根據(jù)本發(fā)明的一種具體實(shí)施方式
,所述配置信息以配置指令的方式存儲,配置指令所表示的配置信息主要包括配置所述寄存儲存儲體的自索引區(qū)的起始索引號StartID、自索引區(qū)的大小Depth和每次讀寄存器存儲體的步長。根據(jù)本發(fā)明的一種具體實(shí)施方式
,當(dāng)所述寄存器存儲體包含N個寄存器時(shí),則StartlD+Depth < N。根據(jù)本發(fā)明的一種具體實(shí)施方式
,自索引寫控制單元和自索引讀控制單元均包括兩個加法器、一個比較器和一個中間寄存器,其中,所述第一加法器用于計(jì)算每次進(jìn)行自索引的寫操作后的索引值,將計(jì)算后的值InnerID寫入中間寄存器中;所述中間寄存器用于存放該中間結(jié)果索引值InnerlD,其初始值為所述配置寄存器的StartID值;所述第二加法器用于計(jì)算所述自索引區(qū)的邊界下界值;所述比較器)用于比較所述自索引區(qū)的邊界下界值與所述中間結(jié)果索引值InnerID:當(dāng)相等時(shí),寫索引選通器選擇第一選擇項(xiàng)StartID作為輸出;當(dāng)不相等,寫索引選通器選擇第二選擇項(xiàng),將中間結(jié)果索引值InnerID作為結(jié)果值輸出。根據(jù)本發(fā)明的一種具體實(shí)施方式
,所述寫索引選通器在當(dāng)前存在自索引區(qū)的寫指令時(shí),選擇有效寫索引號為自索引寫控制單元的輸出,當(dāng)存在普通區(qū)的寫指令時(shí),選擇有效寫索引號為普通區(qū)寫指令的索引。根據(jù)本發(fā)明的一種具體實(shí)施方式
,所述讀索引選通器在當(dāng)前存在自索引區(qū)的讀指令時(shí),選擇有效讀索引號為自索引讀控制單元的輸出,當(dāng)存在普通區(qū)的讀指令時(shí),選擇有效讀索引號為普通區(qū)讀指令的索引。(三)有益效果本發(fā)明通過將寄存器文件堆裝置的寄存器存儲體配置為“自索引區(qū)”和“普通區(qū)”,具有有以下有益之處:
I)具有編程的便利性。程序員在使用本發(fā)明的裝置過程中,只需要在開始階段配置使用情況,之后不需要指定當(dāng)前使用哪些寄存器,規(guī)避了寄存器分配過程的編程復(fù)雜性。2)能夠節(jié)省處理器的功耗。本發(fā)明通過結(jié)合算法充分使用該自索引區(qū),能充分利用數(shù)據(jù)局部性,減少訪存次數(shù),從而降低處理器的功耗。


圖1為本發(fā)明的自索引寄存器文件堆裝置的結(jié)構(gòu)示意圖;圖2為本發(fā)明的配置寄存器的一種定義格式示例;圖3為本發(fā)明的自索引寫控制單元一種實(shí)現(xiàn)電路圖;圖4為本發(fā)明的一個實(shí)施例的寄存器存儲體及配置寄存器的結(jié)構(gòu)示意圖實(shí)現(xiàn)示意圖。
具體實(shí)施例方式本發(fā)明提出了一種特殊的寄存器文件堆裝置,寄存器文件堆裝置包括寄存器堆單元(寄存器存儲體)和該寄存器存儲體的外圍邏輯。該寄存器文件堆裝置適用于多種不同的計(jì)算密集型算法,根據(jù)算法的不同,可將寄存儲存儲體配置為“自索引區(qū)”和“普通區(qū)”。其中自索引區(qū)的大小、起始寄存器號等信息均可以靈活配置,普通區(qū)采用常數(shù)寄存器號方式進(jìn)行索引。自索引區(qū)信息配置完后,用戶只需發(fā)起讀寫啟動信號,該寄存器文件堆裝置可以自動計(jì)算當(dāng)前所需索引號,讀寫均在指定的自索引區(qū)內(nèi),當(dāng)讀或?qū)懙阶运饕齾^(qū)邊界后,下次操作自動轉(zhuǎn)到自索引區(qū)起始位置。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明作進(jìn)一步的詳細(xì)說明。圖1是本發(fā)明的自索引寄存器文件堆裝置的結(jié)構(gòu)示意圖。如圖1所示,該自索引寄存器文件堆裝置20主要包括以下幾個部分:自索引寫控制單元30、配置寄存器40、自索引讀控制單元50、寄存器存儲體60、寫索引選通器70和讀索引選通器80。所述自索引文件堆裝置20通常與一個指令隊(duì)列存儲裝置10連接,從該指令隊(duì)列存儲裝置10中獲取指令隊(duì)列,該指令隊(duì)列存儲裝置10用來存放對該寄存器文件堆裝置20的控制命令。此外,指令隊(duì)列存儲裝置10還用于存儲計(jì)算、邏輯操作等處理器指令。寄存器存儲體60是本發(fā)明的寄存器文件堆裝置20的實(shí)體存儲元件,包括讀譯碼器601、存儲實(shí)體602、寫譯碼器603、寫端口 604和讀端口 605。本發(fā)明的寄存器存儲體60可采用常規(guī)的寄存器堆,讀譯碼器601將讀端口 605處傳送來的讀索引進(jìn)行譯碼,選中存儲實(shí)體602的特定寄存器,將該寄存器的值輸出;寫譯碼器603將寫端口 604處傳送來的寫索引進(jìn)行譯碼,選中存儲實(shí) 體602的特定寄存器,將寫端口輸入的寄存器值寫入該寄存器。本發(fā)明的寄存器文件堆裝置20具有寄存器堆自索引功能,這樣,程序員通過配置指令式將寄存器存儲體60的某一段配置為自索引區(qū),通過書寫“自索引讀寫寄存器堆裝置命令”來對該裝置進(jìn)行操作。一般地,如果使用者對某些數(shù)據(jù)需要重復(fù)使用時(shí),會選擇使用自索引功能。對本發(fā)明的寄存器文件堆裝置20進(jìn)行操作有關(guān)的指令包括兩部分:配置指令和讀寫指令。配置指令只有在使用寄存器堆自索引功能的時(shí)候才會需要,配置指令所表示的配置信息主要包括配置所述寄存儲存儲體60的自索引區(qū)的起始索引號StartID、自索引區(qū)的大小Depth和每次讀寄存器存儲體60的步長Step,其中起始索引號StartID指征自索引區(qū)在寄存儲存儲體60中的起始位置;自索引區(qū)的大小Depth指征了自索引號StartID開始的連續(xù)的Depth個寄存器,為當(dāng)前配置的自索引區(qū)大??;步長Step是指每相鄰兩次讀取寄存器堆的索引號之差。配置寄存器40 (Config Register,下面也稱為CR寄存器)用來存儲所述自索引區(qū)的配置信息,配置信息以配置指令的方式存儲。假設(shè)該寄存器存儲體60所包含寄存器的個數(shù)為N,則需滿足關(guān)系:StartID+D印th < N。圖2顯示了本發(fā)明的配置寄存器40中存儲的包含配置信息的配制指令的一種示例性的格式。如圖2所示,為配置寄存器40的邏輯結(jié)構(gòu),位寬是32bit,其中配置指令“CR=Immediate32”中的Immediate32是指32位的立即數(shù),即寫入配置寄存器40中的值。應(yīng)該注意的是,圖2僅僅是一種示例,只要包含上述配置信息,本發(fā)明不限定于特定的格式。本發(fā)明的讀寫指令分為普通區(qū)的讀寫指令和自索引區(qū)的讀寫指令。其中普通區(qū)的讀寫指令和傳統(tǒng)寄存器讀寫類似,定義格式例如可以如下表所示,但是本發(fā)明也不僅僅限定于該格式。
權(quán)利要求
1.一種自索引寄存器文件堆裝置,包括寄存器存儲體¢0)和該寄存器存儲體的外圍邏輯,其特征在于: 所述寄存儲存儲體配置為自索引區(qū)和普通區(qū),所述自索引區(qū)的大小、起始寄存器號可以靈活配置,普通區(qū)采用常數(shù)寄存器號方式進(jìn)行索引,當(dāng)對該寄存器文件堆裝置發(fā)起讀寫啟動信號時(shí),該寄存器文件堆裝置自動計(jì)算當(dāng)前所需索引號,讀寫均在所述自索引區(qū)內(nèi),當(dāng)讀寫到自索引區(qū)邊界后,下次操作自動轉(zhuǎn)到自索引區(qū)起始位置。
2.如權(quán)利要求1所述的自索引寄存器文件堆裝置,其特征在于:所述自索引文件堆裝置(20)與一個指令隊(duì)列存儲裝置(10)連接,從該指令隊(duì)列存儲裝置(10)中獲取指令隊(duì)列,該指令隊(duì)列存儲裝置(10)用來存放對該寄存器文件堆裝置(20)的控制命令。
3.如權(quán)利要求1所述的自索引寄存器文件堆裝置,其特征在于:所述寄存器文件堆裝置(20)還包括自索引寫控制單元(30)、配置寄存器(40)、自索引讀控制單元(50)、寫索引選通器(70)和讀索引選通器(80),其中, 所述自索引寫控制單元(30)用于計(jì)算下一次訪問自索引區(qū)所需使用的寫索引號; 所述配置寄存器(40)用來存儲所述自索引區(qū)的配置信息; 所述自索引讀控制單元(50)的功能主要是計(jì)算下一次訪問自索引區(qū)所需使用的讀索引號; 所述寫索引選通器(70)用來選擇當(dāng)前所用寫索引,決定寫寄存器存儲體(60)的索引是自索引區(qū)的索引還是普通區(qū)的索引; 所述讀索引選通器(80)用來選擇當(dāng)前所用讀索引,決定讀寄存器存儲體¢0)的索引是自索引區(qū)的索引還是普通區(qū)的索引。
4.如權(quán)利要求3所述的自索引寄存器文件堆裝置,其特征在于:所述自索引寄存器文件堆裝置的讀寫指令分為普通區(qū)的讀寫指令和自索引區(qū)的讀寫指令,自索引區(qū)的讀寫指令的定義格式包括一個特殊標(biāo)識。
5.如權(quán)利要求3所述的自索引寄存器文件堆裝置,其特征在于:所述配置信息以配置指令的方式存儲,配置指令所表示的配置信息主要包括配置所述寄存儲存儲體¢0)的自索引區(qū)的起始索引號StartID、自索引區(qū)的大小D印th和每次讀寄存器存儲體(60)的步長。
6.如權(quán)利要求5所述的自索引寄存器文件堆裝置,其特征在于:當(dāng)所述寄存器存儲體(60)包含N個寄存器時(shí),則StartID+D印th < N。
7.如權(quán)利要求5所述的自索引寄存器文件堆裝置,其特征在于:自索引寫控制單元和自索引讀控制單元均包括兩個加法器(301、302)、一個比較器(303)和一個中間寄存器(304),其中, 所述第一加法器(301)用于計(jì)算每次進(jìn)行自索引的寫操作后的索引值,將計(jì)算后的值InnerID寫入中間寄存器(304)中; 所述中間寄存器(304)用于存放該中間結(jié)果索引值InnerlD,其初始值為所述配置寄存器的StartID值; 所述第二加法器(302)用于計(jì)算所述自索引區(qū)的邊界下界值; 所述比較器(303)用于比較所述自索引區(qū)的邊界下界值與所述中間結(jié)果索引值InnerID:當(dāng)相等時(shí),寫索引選通器(70)選擇第一選擇項(xiàng)StartID作為輸出;當(dāng)不相等,寫索引選通器(70)選擇第二選擇項(xiàng),將中間結(jié)果索引值InnerID作為結(jié)果值輸出。
8.如權(quán)利要求3所述的自索引寄存器文件堆裝置,其特征在于:所述寫索引選通器(70)在當(dāng)前存在自索引區(qū)的寫指令時(shí),選擇有效寫索引號為自索引寫控制單元(30)的輸出,當(dāng)存在普通區(qū)的寫指令時(shí),選擇有效寫索引號為普通區(qū)寫指令的索引。
9.如權(quán)利要求3所述的自索引寄存器文件堆裝置,其特征在于:所述讀索引選通器(80)在當(dāng)前存在自索引區(qū)的讀指令時(shí),選擇有效讀索引號為自索引讀控制單元(50)的輸出,當(dāng)存 在普通區(qū)的讀指令時(shí),選擇有效讀索引號為普通區(qū)讀指令的索引。
全文摘要
本發(fā)明公開了一種自索引寄存器文件堆裝置,包括寄存器存儲體和該寄存器存儲體的外圍邏輯,所述寄存儲存儲體配置為自索引區(qū)和普通區(qū),所述自索引區(qū)的大小、起始寄存器號可以靈活配置,普通區(qū)采用常數(shù)寄存器號方式進(jìn)行索引。當(dāng)對該寄存器文件堆裝置發(fā)起讀寫啟動信號時(shí),該寄存器文件堆裝置自動計(jì)算當(dāng)前所需索引號,讀寫均在所述自索引區(qū)內(nèi),當(dāng)讀寫到自索引區(qū)邊界后,下次操作自動轉(zhuǎn)到自索引區(qū)起始位置。本發(fā)明具有編程的便利性,且能夠節(jié)省處理器的功耗。
文檔編號G06F12/02GK103235762SQ20131013897
公開日2013年8月7日 申請日期2013年4月19日 優(yōu)先權(quán)日2013年4月19日
發(fā)明者王東琳, 尹磊祖, 楊勇勇, 謝少林, 張星, 吳軍寧 申請人:中國科學(xué)院自動化研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
铁力市| 阿克苏市| 大名县| 福清市| 贡觉县| 晴隆县| 荥阳市| 巫溪县| 历史| 唐河县| 博野县| 博湖县| 中阳县| 枣庄市| 八宿县| 九台市| 东乌珠穆沁旗| 民权县| 青铜峡市| 宁城县| 沧州市| 阳新县| 府谷县| 潜山县| 湟中县| 灌南县| 岳阳县| 兴仁县| 申扎县| 山西省| 沁水县| 连平县| 建水县| 鹿泉市| 西盟| 巴林左旗| 炎陵县| 三亚市| 黔西| 石城县| 蒙阴县|