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

一種基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備的制作方法

文檔序號(hào):6425167閱讀:318來源:國(guó)知局
專利名稱:一種基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)據(jù)存儲(chǔ)控制系統(tǒng),具體的說,涉及一種基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備。
背景技術(shù)
自上世紀(jì)80年代以來,處理器的性能一直按照摩爾定律以每18個(gè)月翻一番的速度提升,而存儲(chǔ)器訪問延遲平均每12個(gè)月僅能提高10%。處理器與存儲(chǔ)器性能差距即“存儲(chǔ)器墻”的問題越來越大,已成為并行實(shí)時(shí)多核處理系統(tǒng)主要考慮的問題。目前,動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)已經(jīng)廣泛用于數(shù)據(jù)存儲(chǔ)領(lǐng)域。一般使用DRAM控制設(shè)備來控制對(duì)DRAM的讀寫。DRAM控制設(shè)備接收處理器的讀/寫請(qǐng)求,通過命令解析控制 DRAM的操作,將數(shù)據(jù)寫入DRAM或者將DRAM數(shù)據(jù)傳入處理器。圖1所示的是傳統(tǒng)多核共享 DRAM控制設(shè)備120的框圖。如圖1所示,DRAM控制設(shè)備包括數(shù)據(jù)FIF0100,用來暫存處理器的寫入數(shù)據(jù)或者返回給處理器的數(shù)據(jù);控制模塊102,根據(jù)處理器的訪存指令的類型,控制內(nèi)部狀態(tài)的跳轉(zhuǎn)和數(shù)據(jù)通路的數(shù)據(jù)傳輸,并將存儲(chǔ)器控制信號(hào)發(fā)送給I/O接口模塊108 ;數(shù)據(jù)通路104,用來控制數(shù)據(jù)的傳輸,將待寫入的數(shù)據(jù)從數(shù)據(jù)FIFO傳輸?shù)絀/O接口模塊108, 或者將從I/O讀出的數(shù)據(jù)寫入數(shù)據(jù)FIF0100 ;I/O接口模塊108,接受來自控制模塊102的控制信號(hào)和數(shù)據(jù)通路的數(shù)據(jù)信號(hào),并根據(jù)存儲(chǔ)器的時(shí)序標(biāo)準(zhǔn)完成同存儲(chǔ)器的命令和數(shù)據(jù)的傳輸。DRAM存儲(chǔ)器110作為一存儲(chǔ)陣列,由行、列組成,對(duì)DRAM存儲(chǔ)器110操作需要按照嚴(yán)格的工業(yè)標(biāo)準(zhǔn)。首先需要通過行選通指定存儲(chǔ)塊地址(Bank ADDR)和行地址(Row ADDR), 然后經(jīng)過行延遲(tRCD)后指定列地址(Column ADDR),此時(shí)真正選中存儲(chǔ)器的某一地址, 經(jīng)過讀延遲(tCL)數(shù)據(jù)出現(xiàn)在存儲(chǔ)總線上。如果對(duì)該地址讀寫操作完后即對(duì)當(dāng)前選通行進(jìn)行預(yù)充電,稱為頁關(guān)閉策略(Close I^age),如果不預(yù)充電當(dāng)前行,稱為頁打開策略(Open Page)。目前DRAM控制設(shè)備一般采用靜態(tài)的控制策略,即是指在對(duì)DRAM讀寫操作完成后根據(jù)靜態(tài)的控制策略單一的選擇關(guān)閉或者繼續(xù)打開當(dāng)前的操作的某一行。靜態(tài)的控制策略同 DRAM尋址的方式密切相關(guān)。比如說DRAM控制設(shè)備采用頁打開(Open Page)的靜態(tài)的控制策略,即每次讀寫操作完都不會(huì)預(yù)充電,當(dāng)前操作行處于打開狀態(tài)。頁打開的靜態(tài)策略非常適合于DRAM存儲(chǔ)具有數(shù)據(jù)相關(guān)性的應(yīng)用場(chǎng)合。但是若DRAM尋址的下一個(gè)操作是訪問同一個(gè)存儲(chǔ)塊(Bank)其他行,就會(huì)造成訪問的頁沖突(PageConfict),需要先關(guān)閉當(dāng)前操作行, 然后再發(fā)新的行地址、列地址,同樣的道理,DRAM控制設(shè)備也可以采用頁關(guān)閉的靜態(tài)控制策略,即每次讀寫操作完都會(huì)進(jìn)行預(yù)充電操作關(guān)閉當(dāng)前行。頁關(guān)閉的靜態(tài)策略適用于數(shù)據(jù)相關(guān)性比較差的DRAM尋址應(yīng)用場(chǎng)合。但是如果下一次讀寫操作是對(duì)相同存儲(chǔ)塊(Bank)的相同行進(jìn)行,此時(shí)稱為頁快速命中(Page Fast Hit)。這時(shí)因?yàn)椴捎庙撽P(guān)閉的靜態(tài)策略,需要重現(xiàn)發(fā)出行地址、列地址。靜態(tài)的控制策略與DRAM存儲(chǔ)器數(shù)據(jù)存取的應(yīng)用場(chǎng)合有密切的關(guān)系,但可能存在靜態(tài)的控制策略與DRAM尋址沖突,從而增加處理器訪存的延遲。為了降低訪問DRAM芯片的時(shí)間,一些DRAM控制設(shè)備采用預(yù)測(cè)技術(shù)動(dòng)態(tài)的調(diào)整策略,但是這又會(huì)增加 DRAM控制設(shè)備的復(fù)雜度,并且預(yù)測(cè)不正確也會(huì)增加訪存的時(shí)間,降低DRAM總線吞吐率。
傳統(tǒng)多核共享的DRAM控制設(shè)備通過片上互聯(lián)總線結(jié)構(gòu)與片上多核處理器相連接,比如AMBA總線互聯(lián)結(jié)構(gòu)。在一個(gè)并行實(shí)時(shí)處理系統(tǒng),一般采用分離總線的數(shù)據(jù)傳輸方式。傳統(tǒng)的AMBA總線將一個(gè)總線傳輸周期分為2個(gè)子周期地址周期和數(shù)據(jù)周期。當(dāng)片上某個(gè)處理器需要對(duì)從設(shè)備的DRAM控制設(shè)備進(jìn)行讀訪問時(shí),首先向總線仲裁單元發(fā)出請(qǐng)求信號(hào),等到總線仲裁授權(quán)后,處理器取得DRAM控制設(shè)備的訪問權(quán),進(jìn)入地址周期,并將控制信號(hào)、DRAM地址通過總線發(fā)送給DRAM控制設(shè)備,當(dāng)DRAM控制設(shè)備認(rèn)為該操作需要長(zhǎng)時(shí)間延遲,則向總線仲裁申請(qǐng)分離傳輸,上述處理器讓出總線使用權(quán),則其他處理器可以獲得總線的使用權(quán)。當(dāng)DRAM控制設(shè)備經(jīng)尋址和讀出過程準(zhǔn)備好處理器需要的數(shù)據(jù)時(shí),向仲裁申請(qǐng)數(shù)據(jù)傳輸,在上述主設(shè)備處理器獲得總線使用權(quán)后,重新發(fā)起總線傳輸,通過新的地址周期和數(shù)據(jù)周期,處理器從數(shù)據(jù)總線上取回從DRAM讀出的數(shù)據(jù)。分離的總線傳輸能夠在從設(shè)備需要長(zhǎng)時(shí)間操作時(shí),授權(quán)其他主設(shè)備占有總線的請(qǐng)求。相比傳統(tǒng)的總線傳輸,分離總線傳輸可以使總線使用權(quán)在不同主設(shè)備間快速切換,從而能減少總線的延遲。但是傳統(tǒng)共享總線的分離傳輸過程復(fù)雜并且存在時(shí)間損耗,從設(shè)備需要重新向總線仲裁申請(qǐng)數(shù)據(jù)傳輸,然后需要一直等到主設(shè)備獲得總線使用權(quán)后,通過新的總線傳輸周期才能完成一次數(shù)據(jù)傳輸。這會(huì)增加主設(shè)備處理器訪問從設(shè)備DRAM存儲(chǔ)器的延遲,降低數(shù)據(jù)吞吐率,限制并行處理的性能。傳統(tǒng)的多核共享存儲(chǔ)控制設(shè)備通過共享總線同片上多核處理器相連接,雖然采用分離總線數(shù)據(jù)傳輸機(jī)制,并且內(nèi)部采用靜態(tài)策略或者動(dòng)態(tài)預(yù)測(cè)技術(shù),但是都存在數(shù)據(jù)吞吐率低和訪存的延遲大的缺點(diǎn),因此在并行實(shí)時(shí)處理的多核共享系統(tǒng)中需要一種新型的DRAM 控制設(shè)備解決這些問題。

發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)上述缺陷,本發(fā)明提供一種基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備。該存儲(chǔ)器控制器具有和動(dòng)態(tài)隨機(jī)存儲(chǔ)器完全一致的接口規(guī)范,兼容同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(SDRAM)、雙倍速同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR)、第二代雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器 (DDR2)、第三代雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR!3)通用存儲(chǔ)器裝置的接口和傳輸規(guī)范。本發(fā)明的目的通過以下技術(shù)方案實(shí)現(xiàn)一種基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備,其中包括訪存指令隊(duì)列緩沖模塊、指令解析和地址譯碼模塊、數(shù)據(jù)讀寫控制模塊、存儲(chǔ)器控制模塊、存儲(chǔ)器接口模塊。存儲(chǔ)接口模塊用來和外部存儲(chǔ)器總線交互數(shù)據(jù),同時(shí)與控制設(shè)備內(nèi)部的存儲(chǔ)器控制模塊連接。訪存指令緩沖模塊,用于存放片上多核處理器發(fā)出的訪存指令,所述指令包括命令類型、地址信息和對(duì)應(yīng)的控制信息;指令解析和地址譯碼模塊,用于對(duì)訪存指令進(jìn)行命令解析和地址譯碼,并將譯碼得到的命令類型、存儲(chǔ)器地址和數(shù)據(jù)傳輸個(gè)數(shù)輸入到存儲(chǔ)控制模塊,同時(shí)將該指令的其他控制信息,包括處理器ID號(hào)、處理器內(nèi)部讀寫寄存器地址傳遞到數(shù)據(jù)讀寫控制模塊;存儲(chǔ)控制模塊,根據(jù)指令解析和地址譯碼模塊譯碼得到的命令類型、存儲(chǔ)器地址和數(shù)據(jù)傳輸個(gè)數(shù),控制存儲(chǔ)接口模塊和數(shù)據(jù)讀寫控制模塊完成數(shù)據(jù)在存儲(chǔ)器和處理器間的正確傳遞;數(shù)據(jù)讀寫控制模塊,接收來自存儲(chǔ)控制模塊、指令解析與地址譯碼模塊的控制信號(hào)和從存儲(chǔ)器讀出的數(shù)據(jù),主動(dòng)發(fā)起數(shù)據(jù)的寫入或讀取操作,控制數(shù)據(jù)在存儲(chǔ)器和片上多核處理器之間進(jìn)行傳輸;存儲(chǔ)接口模塊,用于按照存儲(chǔ)器的標(biāo)準(zhǔn)時(shí)序,控制數(shù)據(jù)從存儲(chǔ)控制模塊正確寫入存儲(chǔ)器,或者將數(shù)據(jù)從存儲(chǔ)器正確讀出,并寫入存儲(chǔ)控制模塊。所述的控制設(shè)備,其中,所述訪存指令緩沖模塊可以在指令預(yù)取標(biāo)志信號(hào)的作用下,提前取出下一條指令,并將所述的下一條指令輸入指令解析和地址譯碼模塊進(jìn)行預(yù)譯碼。所述的控制設(shè)備,其中,所述存儲(chǔ)控制模塊包括讀寫控制邏輯負(fù)責(zé)控制信息寄存器更新和控制指令預(yù)取標(biāo)志信號(hào)發(fā)送,并根據(jù)標(biāo)志寄存器的信息動(dòng)態(tài)選擇存儲(chǔ)器頁打開還是頁關(guān)閉策略;控制信息寄存器用于保存當(dāng)前指令的控制信息,包括命令類型、存儲(chǔ)器地址和數(shù)據(jù)傳輸個(gè)數(shù);地址比較器所述地址比較器負(fù)責(zé)比較當(dāng)前指令執(zhí)行的存儲(chǔ)器的地址和預(yù)取的下一條指令存儲(chǔ)器地址的關(guān)系,并產(chǎn)生標(biāo)志地址關(guān)系的控制信息;所述標(biāo)志寄存器則根據(jù)上述控制信息存儲(chǔ)當(dāng)前執(zhí)行指令的存儲(chǔ)器地址和預(yù)取下一條指令存儲(chǔ)器地址關(guān)系的具體數(shù)值。所述的控制設(shè)備,其中,所述指令預(yù)取包括以下步驟步驟500 在指令預(yù)取標(biāo)志信號(hào)的作用下,提前從訪存指令緩沖模塊預(yù)取指令,并經(jīng)過指令解析和地址譯碼模塊進(jìn)行預(yù)譯碼,接著跳轉(zhuǎn)到步驟502 ;步驟502 將預(yù)取指令進(jìn)行譯碼后所得的存儲(chǔ)器地址信息與當(dāng)前指令存儲(chǔ)器地址比較,接著跳轉(zhuǎn)到步驟;步驟504 判斷預(yù)取指令與當(dāng)前指令指向的存儲(chǔ)器地址是不是相同的Bank的同一行;如果是,則跳轉(zhuǎn)到步驟506,如果不是,則跳轉(zhuǎn)到步驟508 ;步驟506 置標(biāo)志寄存器低兩位的值為0x1,標(biāo)志寄存器406的高兩位的值保持不變。接著跳轉(zhuǎn)到步驟514;步驟508 判斷預(yù)取指令與當(dāng)前指令指向的存儲(chǔ)器地址是不是不同的Bank地址, 如果是則跳轉(zhuǎn)到步驟510,如果不是則跳轉(zhuǎn)到步驟512 ;步驟510 置標(biāo)志寄存器低兩位的值為0x2,并且將當(dāng)前指令412的存儲(chǔ)塊地址 BankADDR寫入標(biāo)志寄存器的高兩位,接著跳轉(zhuǎn)到步驟512 ;步驟512 置標(biāo)志寄存器低兩位清零,標(biāo)志寄存器高兩位的值保持不變,接著跳轉(zhuǎn)到步驟514 ;步驟514 讀寫控制邏輯根據(jù)標(biāo)志寄存器低兩位值來控制存儲(chǔ)控制設(shè)備內(nèi)部的狀態(tài)跳轉(zhuǎn),并且在預(yù)取指令410開始被存儲(chǔ)控制設(shè)備執(zhí)行時(shí),用預(yù)取指令410的控制信息更新控制信息寄存器402。所述的控制設(shè)備,其中,所述數(shù)據(jù)讀寫控制模塊包括內(nèi)部總線接口 用于接受來自存儲(chǔ)控制模塊和指令解析和地址譯碼模塊傳遞過來的數(shù)據(jù)和控制信息,包含處理器ID號(hào)、指定處理器內(nèi)部寄存器地址和數(shù)據(jù)總線請(qǐng)求;數(shù)據(jù)讀寫總線的地址數(shù)據(jù)寄存器用于保存當(dāng)前訪存指令數(shù)據(jù)、數(shù)據(jù)總線請(qǐng)求和處理器內(nèi)部寄存器地址;
處理器ID號(hào)寄存器用來保持當(dāng)前訪存指令處理器ID號(hào)。所述的控制設(shè)備,其中,所述數(shù)據(jù)讀寫控制模塊控制數(shù)據(jù)在存儲(chǔ)器和片上多核處理器之間進(jìn)行傳輸包括以下步驟步驟1 根據(jù)處理器ID號(hào)選通對(duì)應(yīng)處理器的數(shù)據(jù)通路;步驟2 對(duì)于多核處理器向存儲(chǔ)器寫數(shù)據(jù)時(shí),在選通的數(shù)據(jù)通路上發(fā)送數(shù)據(jù)總線寫請(qǐng)求和處理器內(nèi)部寄存器地址;對(duì)于多核處理器要從存儲(chǔ)器讀取數(shù)據(jù)時(shí),在選通的數(shù)據(jù)通路上發(fā)送數(shù)據(jù)、數(shù)據(jù)總線讀請(qǐng)求和處理器內(nèi)部寄存器地址;步驟3 處理器響應(yīng)數(shù)據(jù)讀寫總線請(qǐng)求信號(hào),將數(shù)據(jù)從處理器內(nèi)部的寄存器讀出并放入數(shù)據(jù)寫總線,或者將數(shù)據(jù)讀總線的數(shù)據(jù)寫入處理器內(nèi)部寄存器;步驟4:讀寫控制模塊接受來自數(shù)據(jù)寫總線的數(shù)據(jù),或者在數(shù)據(jù)讀總線的數(shù)據(jù)寫入處理器內(nèi)部寄存器后,通知上述處理器數(shù)據(jù)已經(jīng)“數(shù)據(jù)準(zhǔn)備好”。所述的控制設(shè)備,其中,所述存儲(chǔ)器為SDRAM或者DDR。本發(fā)明的實(shí)施例具有以下有益效果,通過上述方案,存儲(chǔ)控制模塊通過指令預(yù)取動(dòng)態(tài)選擇頁打開還是頁關(guān)閉策略,減少因使用靜態(tài)策略或者動(dòng)態(tài)預(yù)測(cè)技術(shù)所帶來的時(shí)間損耗,提高并行實(shí)時(shí)處理多核系統(tǒng)的性能。另一方面,數(shù)據(jù)讀寫控制模塊能夠發(fā)起數(shù)據(jù)讀寫總線的操作,采用更為簡(jiǎn)單直接的方式同片上多核處理器進(jìn)行通信,降低片上數(shù)據(jù)總線的延遲,提高數(shù)據(jù)總線吞吐量。所以本發(fā)明的實(shí)施例的DRAM控制器能夠降低處理器訪存帶來的延遲,并提高數(shù)據(jù)的傳輸效率,更加能夠適應(yīng)處理器并行工作時(shí)所需的高性能存儲(chǔ)總線吞吐率要求。


通過結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)的描述,本發(fā)明的上述和其他的目的、 特征、優(yōu)點(diǎn)將會(huì)變得更加清楚,其中圖1是傳統(tǒng)多核共享存儲(chǔ)控制設(shè)備的示意圖;圖2是基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備的示意圖;圖3是基于數(shù)據(jù)讀寫總線的片上多核系統(tǒng)互連的示意圖;圖4是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備指令預(yù)取結(jié)構(gòu)圖;圖5是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備指令預(yù)取實(shí)現(xiàn)流程圖;圖6是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備讀寫狀態(tài)跳轉(zhuǎn)流程圖;圖7a是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備相比采用頁關(guān)閉策略傳統(tǒng)DRAM存儲(chǔ)控制器減少訪問延遲的時(shí)序圖;圖7b是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備相比不采用Bank交錯(cuò)技術(shù)的傳統(tǒng) DRAM控制器減少訪問延遲的時(shí)序圖;圖7c是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備相比采用頁打開策略傳統(tǒng)DRAM控制器減少訪問延遲的時(shí)序圖;圖8是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備的數(shù)據(jù)讀寫控制模塊結(jié)構(gòu)圖;圖9是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備的數(shù)據(jù)讀總線操作接口協(xié)議流程圖;圖10是本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備的數(shù)據(jù)寫總線操作接口協(xié)議流程具體實(shí)施例方式下面將參照附圖來描述根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)器控制設(shè)備。在附圖中,相同的參考標(biāo)號(hào)自始至終表示相同的元件。應(yīng)當(dāng)理解這里描述的實(shí)施例僅僅是說明性的,而不應(yīng)當(dāng)被解釋為限制本發(fā)明的范圍。實(shí)施例1如圖2所示是基于指令預(yù)取的多核共享存儲(chǔ)控制設(shè)備的示意圖。在本發(fā)明實(shí)施例中,存儲(chǔ)訪問命令與讀寫數(shù)據(jù)使用了不同的總線結(jié)構(gòu)分別進(jìn)行處理,這樣可以最大限度的實(shí)現(xiàn)存儲(chǔ)器訪問的并行執(zhí)行。命令總線304是一個(gè)單向總線,只負(fù)責(zé)傳遞從多個(gè)處理器發(fā)送來的存儲(chǔ)器訪存指令。在本發(fā)明實(shí)施例中,訪存指令的指令格式包括本次指令的指令類型、處理器ID號(hào)、所訪問的存儲(chǔ)器的地址和處理器內(nèi)部寄存器地址以及需要傳遞的數(shù)據(jù)個(gè)數(shù)。為了提高數(shù)據(jù)的吞吐率性能,數(shù)據(jù)總線在本發(fā)明實(shí)施例中分成了數(shù)據(jù)讀總線302 和數(shù)據(jù)寫總線300,分別用來完成數(shù)據(jù)讀操作和寫操作。由于采用的是多處理器共享結(jié)構(gòu), 在一些情況下每個(gè)處理器還可能具有多個(gè)硬件線程,因此存儲(chǔ)控制設(shè)備內(nèi)部應(yīng)具有訪存指令緩沖模塊202,確保所有處理器發(fā)出的存儲(chǔ)指令被緩存到隊(duì)列中。命令總線304能夠根據(jù)不同類型存儲(chǔ)器指令進(jìn)行優(yōu)先級(jí)仲裁,使存儲(chǔ)器指令執(zhí)行的效率達(dá)到最高。在兩個(gè)數(shù)據(jù)總線上,存儲(chǔ)控制設(shè)備通過數(shù)據(jù)讀寫控制模塊200,保證共享的存儲(chǔ)控制設(shè)備所處理的數(shù)據(jù)與指定的處理器或者處理器線程能夠一一對(duì)應(yīng)。數(shù)據(jù)讀寫控制模塊200還負(fù)責(zé)通知處理器本次存儲(chǔ)操作已完成。圖3所示給出了多處理器與共享的存儲(chǔ)器控制器互連結(jié)構(gòu)。數(shù)據(jù)讀寫總線302、300與命令總線304以CrossBar互連總線結(jié)構(gòu)的方式相連接,能夠有效降低片上互連總線的交易延遲。當(dāng)多線程處理器306 310發(fā)出存儲(chǔ)器訪問指令后,可以繼續(xù)其它線程的功能,數(shù)據(jù)的寫入或讀取操作均由存儲(chǔ)控制設(shè)備中的數(shù)據(jù)讀寫控制模塊200主動(dòng)發(fā)起,不必占用處理器306 310的指令執(zhí)行周期。實(shí)施例2本實(shí)施例的存儲(chǔ)控制設(shè)備指令預(yù)取實(shí)現(xiàn)方式如圖4所示。所述實(shí)現(xiàn)方式涉及存儲(chǔ)控制模塊206、訪存指令緩沖模塊202和指令解析與地址譯碼模塊204。存儲(chǔ)控制模塊206包括讀寫控制邏輯400、控制信息寄存器402、地址比較器404 和標(biāo)志寄存器406。讀寫控制邏輯400負(fù)責(zé)控制存儲(chǔ)控制設(shè)備內(nèi)部狀態(tài)的跳轉(zhuǎn),實(shí)現(xiàn)數(shù)據(jù)正確讀寫,并決定在何時(shí)發(fā)送指令預(yù)取標(biāo)志信號(hào)408。讀寫控制邏輯400根據(jù)控制信息寄存器402保存的當(dāng)前指令412的信息和標(biāo)志寄存器406的內(nèi)容決定下一狀態(tài)??刂菩畔⒓拇嫫?02負(fù)責(zé)保存當(dāng)前指令412的控制信息,包括訪存指令的命令類型、存儲(chǔ)器地址和數(shù)據(jù)傳輸個(gè)數(shù)。預(yù)取的下一條指令410的信息需要在讀寫控制邏輯400跳轉(zhuǎn)到執(zhí)行下一條指令時(shí)更新控制信息寄存器402。地址比較器404負(fù)責(zé)比較當(dāng)前指令412執(zhí)行的存儲(chǔ)器地址和預(yù)取指令410的存儲(chǔ)器地址之間的關(guān)系。存儲(chǔ)器地址包括存儲(chǔ)塊地址Bank ADDR、行地址Row ADDR和列地址Column ADDR,地址比較器404只比較當(dāng)前指令412和預(yù)取指令410的存儲(chǔ)塊地址Bank ADDR和行地址Row ADDR,并將當(dāng)前指令412和預(yù)取指令410的存儲(chǔ)器地址相等或不相等的關(guān)系信息存儲(chǔ)在標(biāo)志寄存器406中。標(biāo)志寄存器406負(fù)責(zé)存儲(chǔ)當(dāng)前指令412 和預(yù)取指令410的存儲(chǔ)器地址相等或不相等的關(guān)系信息,并將所述地址關(guān)系信息發(fā)送到讀寫控制邏輯400。本實(shí)施例中,標(biāo)志寄存器406位寬為4bit,最低位為高電平代表當(dāng)前指令412和預(yù)取的下一條指令410的地址指向的是同一個(gè)存儲(chǔ)塊地址Bank ADDR和同一個(gè)行地址Row ADDR ;最低位為低時(shí)則代表情況相反,即下一條指令的地址與當(dāng)前的執(zhí)行指令不是指向同一個(gè)存儲(chǔ)塊地址Bank ADDR和同一個(gè)行地址Row ADDR ;第二位為高電平時(shí),則代表當(dāng)前指令412地址和預(yù)取指令410地址指向的是不同的存儲(chǔ)塊地址Bank ADDR,如果第二位是低電平則表示當(dāng)前指令地址和預(yù)取指令地址不是指向不同的存儲(chǔ)塊地址Bank ADDR ;標(biāo)志寄存器的第三位和第四位表示是當(dāng)前指令412的存儲(chǔ)塊地址Bank。上述存儲(chǔ)器控制結(jié)構(gòu)與寄存器定義用來實(shí)現(xiàn)存儲(chǔ)器訪存指令的預(yù)取操作。本發(fā)明實(shí)施例的存儲(chǔ)控制設(shè)備指令預(yù)取操作的具體實(shí)現(xiàn)流程如圖5所示。包括步驟500 在指令預(yù)取標(biāo)志信號(hào)408的作用下,提前從訪存指令緩沖模塊202預(yù)取指令,并經(jīng)過指令解析和地址譯碼模塊204進(jìn)行預(yù)譯碼。接著跳轉(zhuǎn)到步驟502 ;步驟502 將預(yù)取指令410進(jìn)行譯碼后所得的存儲(chǔ)器地址信息與當(dāng)前指令412存儲(chǔ)器地址比較,接著跳轉(zhuǎn)到步驟504 ;步驟504:判斷預(yù)取指令410與當(dāng)前指令412指向的存儲(chǔ)器地址是不是相同的 Bank的同一行;如果是,則跳轉(zhuǎn)到步驟506,如果不是,則跳轉(zhuǎn)到步驟508 ;步驟506 置標(biāo)志寄存器406低兩位的值為0x1,標(biāo)志寄存器406的高兩位的值保持不變。接著跳轉(zhuǎn)到步驟514;步驟508:判斷預(yù)取指令410與當(dāng)前指令412指向的存儲(chǔ)器地址是不是不同的 Bank地址。如果是則跳轉(zhuǎn)到步驟510,如果不是則跳轉(zhuǎn)到步驟512 ;步驟510 置標(biāo)志寄存器406低兩位的值為0x2,并且將當(dāng)前指令412的存儲(chǔ)塊地址Bank ADDR寫入標(biāo)志寄存器的高兩位。接著跳轉(zhuǎn)到步驟512 ;步驟512 置標(biāo)志寄存器406低兩位清零,標(biāo)志寄存器406高兩位的值保持不變。 接著跳轉(zhuǎn)到步驟514;步驟514 位于存儲(chǔ)控制模塊206內(nèi)的讀寫控制邏輯400根據(jù)標(biāo)志寄存器406低兩位值來控制存儲(chǔ)控制設(shè)備內(nèi)部的狀態(tài)跳轉(zhuǎn)。并且在預(yù)取指令410開始被存儲(chǔ)控制設(shè)備執(zhí)行時(shí),用預(yù)取指令410的控制信息更新控制信息寄存器402。在本發(fā)明實(shí)施例中,讀寫控制邏輯400在當(dāng)前指令412運(yùn)行的列選通狀態(tài)發(fā)出指令預(yù)取標(biāo)志信號(hào),提前從訪存指令緩沖模塊202取出下一條指令。接著跳轉(zhuǎn)到步驟500,開始下一次的指令預(yù)取的流程。如圖6所示的是讀寫控制邏輯400根據(jù)標(biāo)志寄存器406的內(nèi)容控制存儲(chǔ)器讀寫的流程圖。包括步驟600 當(dāng)目前沒有指令需要訪問存儲(chǔ)器時(shí),讀寫控制邏輯400不發(fā)任何有效的命令,存儲(chǔ)器進(jìn)入空閑狀態(tài)。如果有新的訪存指令需要被執(zhí)行,那么跳轉(zhuǎn)到步驟602 ;步驟602 讀寫控制邏輯400發(fā)行選通指令,激活當(dāng)前指令412對(duì)應(yīng)的存儲(chǔ)器行地址。接著跳轉(zhuǎn)到步驟604;步驟604 讀寫控制邏輯400經(jīng)過tRCD(見圖7)行選通的延遲,跳轉(zhuǎn)到步驟606, 在此期間,讀寫控制邏輯不發(fā)任何有效的命令;步驟606 讀寫控制邏輯400發(fā)列選通指令,選通當(dāng)前指令412對(duì)應(yīng)的存儲(chǔ)器列地址。接著跳轉(zhuǎn)到步驟608;步驟608 讀寫控制邏輯400判斷標(biāo)志寄存器406低兩位的值是不是0x2。如果是,則跳轉(zhuǎn)到步驟610,如果不是,則跳轉(zhuǎn)到步驟612 ;
步驟610 讀寫控制邏輯400根據(jù)標(biāo)志寄存器406高兩位的值,發(fā)預(yù)充電指令關(guān)閉上次指令操作行。接著跳轉(zhuǎn)到步驟612;步驟612 讀寫控制邏輯400在列選通時(shí)發(fā)送指令預(yù)取標(biāo)志信號(hào)408,并經(jīng)過 tDELAY延遲后,標(biāo)志寄存器406的值得到更新,接著跳轉(zhuǎn)步驟614 ;步驟614 讀寫控制邏輯400判斷標(biāo)志寄存器406低兩位值是不是0x1,如果是跳轉(zhuǎn)到步驟606,選通下條指令對(duì)應(yīng)的存儲(chǔ)器列地址;如果不是,跳轉(zhuǎn)到步驟616 ;步驟616 讀寫控制邏輯400判斷標(biāo)志寄存器406低兩位值是不是0x2,如果是跳轉(zhuǎn)到步驟602,選通下條指令對(duì)應(yīng)的存儲(chǔ)器行地址;如果不是,跳轉(zhuǎn)到步驟618 ;步驟618 讀寫控制邏輯400發(fā)預(yù)充電命令,關(guān)閉當(dāng)前指令操作行,接著跳轉(zhuǎn)到步驟 620 ;步驟620 讀寫控制邏輯400經(jīng)過tRP延遲,接著跳轉(zhuǎn)到步驟602,選通下條指令對(duì)應(yīng)的存儲(chǔ)器行地址;基于指令預(yù)取的存儲(chǔ)控制設(shè)備可以有效的減少和隱藏訪存延遲,提高DRAM總線的帶寬利用率。如圖6所示,讀寫控制邏輯400根據(jù)標(biāo)志寄存器406的值跳轉(zhuǎn)到不同的狀態(tài),控制存儲(chǔ)器的讀寫。如果標(biāo)志寄存器406的低兩位的值是0x1,則說明下一條指令是指向同一個(gè)存儲(chǔ)體Bank的同一行。當(dāng)前指令結(jié)束后,讀寫控制邏輯400不進(jìn)入預(yù)充電的狀態(tài), 對(duì)當(dāng)前指令的操作行采用頁打開策略,減少下次讀寫操作的訪存延遲。如果標(biāo)志寄存器406 低兩位的值是0x2,則說明下一條指令的操作是指向不同的存儲(chǔ)體Bank。這時(shí)將動(dòng)態(tài)的轉(zhuǎn)到Bank交錯(cuò)處理步驟,從而隱藏不同Bank的預(yù)充電延遲。即當(dāng)前指令在執(zhí)行的同時(shí),讀寫控制邏輯400選通下一條指令所對(duì)應(yīng)的行列地址,當(dāng)前指令結(jié)束數(shù)據(jù)傳輸時(shí),下一條指令緊接著傳輸數(shù)據(jù)。標(biāo)志寄存器406的高兩位負(fù)責(zé)保持上條指令的存儲(chǔ)體地址,在當(dāng)前指令傳輸數(shù)據(jù)的同時(shí),對(duì)上條指令操作行進(jìn)行預(yù)充電關(guān)閉。所以對(duì)上條指令操作行采用頁關(guān)閉策略來完成數(shù)據(jù)讀寫操作。如果標(biāo)志寄存器406低兩位值為0x0,則說明下一條指令地址是指向同一個(gè)存儲(chǔ)體Bank的不同行。當(dāng)前指令結(jié)束后,讀寫控制邏輯400進(jìn)入預(yù)充電狀態(tài), 存儲(chǔ)控制設(shè)備采用頁關(guān)閉的策略,當(dāng)前指令關(guān)閉當(dāng)前指令操作行。若標(biāo)志寄存器406低兩位是0x1,那么下次對(duì)DRAM存儲(chǔ)器的讀寫操作是頁快速命中(Page fast hit),本發(fā)明實(shí)施例DRAM存儲(chǔ)控制設(shè)備采用頁打開的策略,當(dāng)前指令操作完成后,對(duì)所述操作行不進(jìn)行預(yù)充電關(guān)閉,而繼續(xù)打開所述操作行。與采用頁關(guān)閉策略的傳統(tǒng) DRAM控制設(shè)備相比,基于指令預(yù)取的存儲(chǔ)控制設(shè)備能夠減少訪存延遲。圖7a表示的是本發(fā)明存儲(chǔ)控制設(shè)備采用頁打開策略減少訪存延遲的時(shí)序圖。假設(shè)相鄰兩條訪存指令是讀存儲(chǔ)器操作,并且地址是指向同一個(gè)存儲(chǔ)體的相同行a,第一條指令的列地址是m,而后一條指令的列地址是m+4。由于采用頁打開的策略,本發(fā)明存儲(chǔ)控制設(shè)備不需要進(jìn)行預(yù)充電行a 和選通行a操作,那么比采用頁關(guān)閉的傳統(tǒng)DRAM控制設(shè)備節(jié)省tRP+tRCD時(shí)間。若標(biāo)志寄存器406低兩位是0x2,那么下次對(duì)DRAM的讀寫操作是頁命中O^age hit),本發(fā)明實(shí)施例DRAM存儲(chǔ)控制設(shè)備采用Bank交錯(cuò)技術(shù)隱藏預(yù)充電的延遲。圖7b表示的是采用Bank交錯(cuò)技術(shù)隱藏預(yù)充電延遲的時(shí)序圖。假定相鄰兩條訪存指令是讀存儲(chǔ)器操作,第一條指令是指向第一塊存儲(chǔ)體(Bank 0)的第a行第m列,第二條指令是指向第二塊存儲(chǔ)體(Bank 1)的第b行第η列。傳統(tǒng)DRAM控制器若不采用Bank交錯(cuò)的技術(shù),那么對(duì) BankO和Bankl的訪存是串行的,關(guān)閉BankO的第a行后才開啟Bankl的第b行。基于指令預(yù)取的存儲(chǔ)控制設(shè)備通過比較相鄰兩條指令的地址,得知下一條指令是對(duì)Bankl操作,那么在BankO傳輸數(shù)據(jù)時(shí),同時(shí)選通Bankl的行列地址。BankO的數(shù)據(jù)傳輸完成時(shí),Bankl的數(shù)據(jù)也開始出現(xiàn)在數(shù)據(jù)線上,同樣在Bankl第b行第η列傳輸數(shù)據(jù)時(shí),對(duì)BankO第a行進(jìn)行預(yù)充電操作。所以基于指令預(yù)取的存儲(chǔ)控制設(shè)備比不采用Bank交錯(cuò)技術(shù)的傳統(tǒng)存儲(chǔ)設(shè)備能夠節(jié)省tRP+tRCD時(shí)間。若傳統(tǒng)DRAM控制設(shè)備采用Bank交錯(cuò)技術(shù),即默認(rèn)相鄰兩次訪存操作是頁命中(Page hit)。上述傳統(tǒng)DRAM控制設(shè)備一般選擇頁關(guān)閉的策略,如果相鄰兩次訪存操作是頁命中(Page hit),那么采用Bank交錯(cuò)技術(shù)隱藏預(yù)充電時(shí)間,減少訪存的時(shí)間。但是如果相鄰兩次訪存操作是頁快速命中(Pagefast hit),那么會(huì)增加訪存時(shí)間,如圖7a所示。所以基于指令預(yù)取的存儲(chǔ)控制設(shè)備比采用Bank交錯(cuò)技術(shù)的傳統(tǒng)DRAM控制設(shè)備在相鄰兩次操作是頁快速命中(Page fast hit)時(shí)減少tRP+tRCD時(shí)間。若標(biāo)志寄存器406低兩位是0x0,那么下次對(duì)DRAM的讀寫操作是頁沖突 (PageConfict),本發(fā)明實(shí)施例DRAM存儲(chǔ)控制設(shè)備采用頁關(guān)閉策略,當(dāng)前指令操作完成后, 對(duì)所示操作行進(jìn)行預(yù)充電關(guān)閉。與采用頁打開策略的傳統(tǒng)DRAM控制設(shè)備相比,基于指令預(yù)取的存儲(chǔ)控制設(shè)備能夠減少訪存延遲。時(shí)序?qū)Ρ热鐖D7c所示。假定相鄰兩條訪存指令是讀存儲(chǔ)器操作,并且指向同一個(gè)存儲(chǔ)體地址,但是第一條指令指向行a,而第二條指令指向行 b。采用頁打開策略的傳統(tǒng)DRAM控制設(shè)備在每次指令操作完成后,都不會(huì)對(duì)存儲(chǔ)器操作行進(jìn)行預(yù)充電關(guān)閉,當(dāng)發(fā)生頁沖突(PageConfict)時(shí),首先需要關(guān)閉上條指令所打開的存儲(chǔ)器的行a,然后才能激活當(dāng)前指令操作行b,那么當(dāng)前指令訪存時(shí)間是tRP+tRCD+tCL?;谥噶铑A(yù)取的存儲(chǔ)控制設(shè)備因?yàn)椴捎玫氖琼撽P(guān)閉的策略,當(dāng)前指令的訪存時(shí)間是tRCD+tCL, 節(jié)約了 tRP時(shí)間。實(shí)施例3本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備中具備數(shù)據(jù)讀寫控制模塊200。數(shù)據(jù)讀寫控制模塊200實(shí)現(xiàn)方式如圖8所示。數(shù)據(jù)讀寫控制模塊200包括內(nèi)部總線接口 812,接收來自存儲(chǔ)控制模塊206和指令解析與地址譯碼模塊204的控制信號(hào)和從DRAM存儲(chǔ)器110讀出的數(shù)據(jù),所述控制信號(hào)包括訪存指令的類型、處理器ID號(hào)、指定多線程處理器內(nèi)部寄存器地址和數(shù)據(jù)總線請(qǐng)求信號(hào);數(shù)據(jù)讀總線地址數(shù)據(jù)寄存器806 負(fù)責(zé)保存數(shù)據(jù)讀總線上指定多線程處理器寄存器的地址、數(shù)據(jù)讀總線請(qǐng)求信號(hào)和數(shù)據(jù)讀總線數(shù)據(jù);數(shù)據(jù)寫總線地址寄存器808 負(fù)責(zé)保存數(shù)據(jù)寫總線上的指定多線程處理器寄存器地址和數(shù)據(jù)寫總線請(qǐng)求信號(hào);數(shù)據(jù)寫總線數(shù)據(jù)寄存器810 負(fù)責(zé)保存數(shù)據(jù)拉總線數(shù)據(jù);數(shù)據(jù)讀總線ID寄存器802 負(fù)責(zé)保存數(shù)據(jù)讀總線上指定多線程處理器ID號(hào);數(shù)據(jù)寫總線ID寄存器804 負(fù)責(zé)保存數(shù)據(jù)寫總線上指定多線程處理器ID號(hào);數(shù)據(jù)讀寫控制模塊200的主要功能是要能夠及時(shí)的將數(shù)據(jù)在存儲(chǔ)器和指定多線程處理器之間進(jìn)行傳輸。所述模塊負(fù)責(zé)發(fā)起數(shù)據(jù)總線的讀寫操作,并分別提供獨(dú)立的數(shù)據(jù)讀寫總線。一方面,數(shù)據(jù)讀寫控制模塊200通過寫總線將待寫入數(shù)據(jù)從指定多線程處理器的內(nèi)部寄存器“拉入”數(shù)據(jù)總線,并將數(shù)據(jù)傳遞到存儲(chǔ)控制模塊206。另一方面,數(shù)據(jù)讀寫控制模塊200還通過讀總線將從存儲(chǔ)器讀出的數(shù)據(jù)“推到”數(shù)據(jù)總線上, 并在數(shù)據(jù)讀寫控制模塊200的控制下寫入指定多線程處理器的內(nèi)部寄存器。數(shù)據(jù)通道的操作方法如下面所描述。在多核處理器中一個(gè)指定處理器的指定硬件線程要向存儲(chǔ)器寫數(shù)據(jù)時(shí),根據(jù)訪存指令類型和處理器ID號(hào)選通數(shù)據(jù)讀寫控制模塊200的寫數(shù)據(jù)通道,準(zhǔn)備數(shù)據(jù)的寫入。數(shù)據(jù)寫總線300接口協(xié)議按照如圖9所示的流程。首先根據(jù)處理器ID號(hào)選通指定的處理器及其線程號(hào),然后在向指定的線程發(fā)送數(shù)據(jù)寫總線請(qǐng)求信號(hào)和處理器的內(nèi)部寄存器地址。請(qǐng)求信號(hào)維持的周期數(shù)同所讀數(shù)據(jù)的個(gè)數(shù)對(duì)應(yīng),處理器采樣數(shù)據(jù)寫總線請(qǐng)求信號(hào)和內(nèi)部地址值,響應(yīng)數(shù)據(jù)寫總線請(qǐng)求信號(hào),將指定寄存器地址內(nèi)的數(shù)據(jù)發(fā)送到數(shù)據(jù)總線上,數(shù)據(jù)讀寫控制模塊200將所述數(shù)據(jù)經(jīng)過存儲(chǔ)控制模塊206緩沖后直接放置在存儲(chǔ)器芯片的數(shù)據(jù)總線上。在多核處理器中一個(gè)指定處理器的指定硬件線程要從存儲(chǔ)器讀取數(shù)據(jù)時(shí),選通數(shù)據(jù)讀寫控制模塊200的讀數(shù)據(jù)通道,準(zhǔn)備數(shù)據(jù)的讀出。數(shù)據(jù)讀總線302接口協(xié)議按照如10 圖流程所示。首先根據(jù)指定的處理器ID號(hào)選通指定的處理器線程及其線程號(hào),并通過指定處理器內(nèi)部寄存器的地址和數(shù)據(jù)讀總線請(qǐng)求信號(hào)選通對(duì)應(yīng)的讀數(shù)據(jù)通路。然后將從存儲(chǔ)器讀出的數(shù)據(jù)被放入數(shù)據(jù)讀總線上。其中的數(shù)據(jù)讀總線請(qǐng)求信號(hào)維持的周期數(shù)與數(shù)據(jù)有效長(zhǎng)度對(duì)應(yīng)。最后數(shù)據(jù)讀寫控制模塊200將數(shù)據(jù)讀總線上的數(shù)據(jù)寫入到處理器內(nèi)部寄存器,并向處理器線程發(fā)送“數(shù)據(jù)準(zhǔn)備好”信號(hào),從而可以通知該處理器線程可以繼續(xù)執(zhí)行下去。本發(fā)明實(shí)施例的DRAM存儲(chǔ)控制設(shè)備采用了分布式仲裁方式,分別對(duì)命令總線隊(duì)列、數(shù)據(jù)讀寫總線300、302分別進(jìn)行調(diào)度。由多個(gè)處理器線程發(fā)出的存儲(chǔ)器訪問指令在命令總線仲裁器的調(diào)度下通過指令預(yù)取策略最大限度的提高了存儲(chǔ)器訪問指令的執(zhí)行效率; 同時(shí)利用讀寫控制邏輯400控制數(shù)據(jù)在片外存儲(chǔ)器和多個(gè)處理器線程之間的傳輸,并利用 “指令完成”信號(hào)來通知處理器線程及時(shí)的對(duì)數(shù)據(jù)進(jìn)行處理。該傳輸控制方式與傳統(tǒng)共享總線傳輸方式相比,更加能夠適應(yīng)多線程處理器并行工作時(shí)所需要的高性能存儲(chǔ)總線吞吐率需要。并且結(jié)構(gòu)簡(jiǎn)單,能夠降低總線延遲。以上所述對(duì)本發(fā)明的目的、技術(shù)方案進(jìn)行了詳細(xì)說明。所應(yīng)理解的是,以上所述并不限制本發(fā)明的范圍,凡在本發(fā)明的原則及技術(shù)基礎(chǔ)之內(nèi)所做的任何修改、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備,其特征在于,包括訪存指令緩沖模塊,用于存放片上多核處理器發(fā)出的訪存指令,所述指令包括命令類型、地址信息和對(duì)應(yīng)的控制信息;指令解析和地址譯碼模塊,用于對(duì)訪存指令進(jìn)行命令解析和地址譯碼,并將譯碼得到的命令類型、存儲(chǔ)器地址和數(shù)據(jù)傳輸個(gè)數(shù)輸入到存儲(chǔ)控制模塊,同時(shí)將該指令的其他控制信息,包括處理器ID號(hào)、處理器內(nèi)部讀寫寄存器地址傳遞到數(shù)據(jù)讀寫控制模塊;存儲(chǔ)控制模塊,根據(jù)指令解析和地址譯碼模塊譯碼得到的命令類型、存儲(chǔ)器地址和數(shù)據(jù)傳輸個(gè)數(shù),控制存儲(chǔ)接口模塊和數(shù)據(jù)讀寫控制模塊完成數(shù)據(jù)在存儲(chǔ)器和處理器間的正確傳遞;數(shù)據(jù)讀寫控制模塊,接收來自存儲(chǔ)控制模塊、指令解析與地址譯碼模塊的控制信號(hào)和從存儲(chǔ)器讀出的數(shù)據(jù),主動(dòng)發(fā)起數(shù)據(jù)的寫入或讀取操作,控制數(shù)據(jù)在存儲(chǔ)器和片上多核處理器之間進(jìn)行傳輸;存儲(chǔ)接口模塊,用于按照存儲(chǔ)器的標(biāo)準(zhǔn)時(shí)序,控制數(shù)據(jù)從存儲(chǔ)控制模塊正確寫入存儲(chǔ)器,或者將數(shù)據(jù)從存儲(chǔ)器正確讀出,并寫入存儲(chǔ)控制模塊。
2.根據(jù)權(quán)利要求1所述的控制設(shè)備,其特征在于,所述訪存指令緩沖模塊可以在指令預(yù)取標(biāo)志信號(hào)的作用下,提前取出下一條指令,并將所述的下一條指令輸入指令解析和地址譯碼模塊進(jìn)行預(yù)譯碼。
3.根據(jù)權(quán)利要求1所述的控制設(shè)備,其特征在于,所述存儲(chǔ)控制模塊包括讀寫控制邏輯負(fù)責(zé)控制信息寄存器更新和控制指令預(yù)取標(biāo)志信號(hào)發(fā)送,并根據(jù)標(biāo)志寄存器的信息動(dòng)態(tài)選擇存儲(chǔ)器頁打開還是頁關(guān)閉策略;控制信息寄存器用于保存當(dāng)前指令的控制信息,包括命令類型、存儲(chǔ)器地址和數(shù)據(jù)傳輸個(gè)數(shù);地址比較器所述地址比較器負(fù)責(zé)比較當(dāng)前指令執(zhí)行的存儲(chǔ)器的地址和預(yù)取的下一條指令存儲(chǔ)器地址的關(guān)系,并產(chǎn)生標(biāo)志地址關(guān)系的控制信息;標(biāo)志寄存器所述標(biāo)志寄存器則根據(jù)上述控制信息存儲(chǔ)當(dāng)前執(zhí)行指令的存儲(chǔ)器地址和預(yù)取下一條指令存儲(chǔ)器地址關(guān)系的具體數(shù)值。
4.根據(jù)權(quán)利要求3所述的控制設(shè)備,其特征在于,所述指令預(yù)取包括以下步驟步驟500 在指令預(yù)取標(biāo)志信號(hào)的作用下,提前從訪存指令緩沖模塊預(yù)取指令,并經(jīng)過指令解析和地址譯碼模塊進(jìn)行預(yù)譯碼,接著跳轉(zhuǎn)到步驟502 ;步驟502 將預(yù)取指令進(jìn)行譯碼后所得的存儲(chǔ)器地址信息與當(dāng)前指令存儲(chǔ)器地址比較,接著跳轉(zhuǎn)到步驟504;步驟504 判斷預(yù)取指令與當(dāng)前指令指向的存儲(chǔ)器地址是不是相同的Bank的同一行; 如果是,則跳轉(zhuǎn)到步驟506,如果不是,則跳轉(zhuǎn)到步驟508 ;步驟506 置標(biāo)志寄存器低兩位的值為0x1,標(biāo)志寄存器406的高兩位的值保持不變。 接著跳轉(zhuǎn)到步驟514;步驟508 判斷預(yù)取指令與當(dāng)前指令指向的存儲(chǔ)器地址是不是不同的Bank地址,如果是則跳轉(zhuǎn)到步驟510,如果不是則跳轉(zhuǎn)到步驟512 ;步驟510 置標(biāo)志寄存器低兩位的值為0x2,并且將當(dāng)前指令412的存儲(chǔ)塊地址 BankADDR寫入標(biāo)志寄存器的高兩位,接著跳轉(zhuǎn)到步驟512 ;步驟512 置標(biāo)志寄存器低兩位清零,標(biāo)志寄存器高兩位的值保持不變,接著跳轉(zhuǎn)到步驟 514 ;步驟514 讀寫控制邏輯根據(jù)標(biāo)志寄存器低兩位值來控制存儲(chǔ)控制設(shè)備內(nèi)部的狀態(tài)跳轉(zhuǎn),并且在預(yù)取指令410開始被存儲(chǔ)控制設(shè)備執(zhí)行時(shí),用預(yù)取指令410的控制信息更新控制信息寄存器402。
5.根據(jù)權(quán)利要求1所述的控制設(shè)備,其特征在于,所述數(shù)據(jù)讀寫控制模塊包括 內(nèi)部總線接口 用于接受來自存儲(chǔ)控制模塊和指令解析和地址譯碼模塊傳遞過來的數(shù)據(jù)和控制信息,包含處理器ID號(hào)、指定處理器內(nèi)部寄存器地址和數(shù)據(jù)總線請(qǐng)求;數(shù)據(jù)讀寫總線的地址數(shù)據(jù)寄存器用于保存當(dāng)前訪存指令數(shù)據(jù)、數(shù)據(jù)總線請(qǐng)求和處理器內(nèi)部寄存器地址;處理器ID號(hào)寄存器用來保持當(dāng)前訪存指令處理器ID號(hào)。
6.根據(jù)權(quán)利要求5所述的控制設(shè)備,其特征在于,所述的控制設(shè)備,其中,所述數(shù)據(jù)讀寫控制模塊控制數(shù)據(jù)在存儲(chǔ)器和片上多核處理器之間進(jìn)行傳輸包括以下步驟步驟1 根據(jù)處理器ID號(hào)選通對(duì)應(yīng)處理器的數(shù)據(jù)通路;步驟2 對(duì)于多核處理器向存儲(chǔ)器寫數(shù)據(jù)時(shí),在選通的數(shù)據(jù)通路上發(fā)送數(shù)據(jù)總線寫請(qǐng)求和處理器內(nèi)部寄存器地址;對(duì)于多核處理器要從存儲(chǔ)器讀取數(shù)據(jù)時(shí),在選通的數(shù)據(jù)通路上發(fā)送數(shù)據(jù)、數(shù)據(jù)總線讀請(qǐng)求和處理器內(nèi)部寄存器地址;步驟3 處理器響應(yīng)數(shù)據(jù)讀寫總線請(qǐng)求信號(hào),將數(shù)據(jù)從處理器內(nèi)部的寄存器讀出并放入數(shù)據(jù)寫總線,或者將數(shù)據(jù)讀總線的數(shù)據(jù)寫入處理器內(nèi)部寄存器;步驟4:讀寫控制模塊接受來自數(shù)據(jù)寫總線的數(shù)據(jù),或者在數(shù)據(jù)讀總線的數(shù)據(jù)寫入處理器內(nèi)部寄存器后,通知上述處理器數(shù)據(jù)已經(jīng)“數(shù)據(jù)準(zhǔn)備好”。
7.根據(jù)權(quán)利要求1至6任一所述的控制設(shè)備,其特征還在于,所述存儲(chǔ)器為SDRAM或者DDR。
全文摘要
本發(fā)明公開了一種基于指令預(yù)取的多核共享存儲(chǔ)器控制設(shè)備。包括訪存指令緩沖模塊、指令解析和地址譯碼模塊、數(shù)據(jù)讀寫控制模塊、存儲(chǔ)器控制模塊、存儲(chǔ)器接口模塊。其中數(shù)據(jù)讀寫控制模塊控制數(shù)據(jù)在存儲(chǔ)器和片上多核處理器之間進(jìn)行傳輸。存儲(chǔ)器控制模塊產(chǎn)生指令預(yù)取標(biāo)志信號(hào),提前從訪存指令緩沖模塊取出下一條訪存指令,并經(jīng)過指令解析和地址譯碼模塊進(jìn)行預(yù)譯碼,根據(jù)預(yù)取指令的控制信息存儲(chǔ)器控制模塊動(dòng)態(tài)的選擇存儲(chǔ)器的頁開或頁閉策略。本發(fā)明存儲(chǔ)器控制設(shè)備能夠降低處理器訪存帶來的延遲,并提高數(shù)據(jù)的傳輸效率,更加能夠適應(yīng)處理器并行工作時(shí)所需的高性能存儲(chǔ)總線吞吐率要求。
文檔編號(hào)G06F13/16GK102207916SQ20111014179
公開日2011年10月5日 申請(qǐng)日期2011年5月30日 優(yōu)先權(quán)日2011年5月30日
發(fā)明者光青, 彭毓佳, 李康, 郝躍, 雷理 申請(qǐng)人:西安電子科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
绥宁县| 易门县| 华安县| 邹平县| 青阳县| 如东县| 资兴市| 南宫市| 定陶县| 曲靖市| 平凉市| 巨鹿县| 黎平县| 冕宁县| 蓝田县| 自治县| 岑巩县| 叙永县| 铜陵市| 永平县| 右玉县| 西平县| 静宁县| 普兰店市| 拜城县| 西丰县| 柳州市| 石屏县| 香格里拉县| 厦门市| 阳城县| 成安县| 通化市| 无棣县| 乐陵市| 海城市| 仪陇县| 永吉县| 缙云县| 通江县| 娄烦县|