專利名稱:一種在處理器中設(shè)計(jì)寄存器的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)范疇中的處理器體系結(jié)構(gòu)領(lǐng)域,具體說(shuō)是在處理器中設(shè)計(jì)寄存器(組)的方法及裝置。
背景技術(shù):
一種新型的計(jì)算機(jī)體系結(jié)構(gòu)已被發(fā)明,該種新型的計(jì)算機(jī)體系結(jié)構(gòu)的主要特點(diǎn)是在不需中斷處理的前提條件下,在同一個(gè)處理器中在同一時(shí)刻能夠并行與并發(fā)地執(zhí)行多道程序。以下稱在同一個(gè)處理器中在同一時(shí)刻能夠執(zhí)行多道程序的體系結(jié)構(gòu)的計(jì)算機(jī)為L(zhǎng)結(jié)構(gòu)計(jì)算機(jī),采用L計(jì)算機(jī)結(jié)構(gòu)的處理器稱為L(zhǎng)結(jié)構(gòu)處理器。然而,在相關(guān)的專利文件中有關(guān)寄存器(組)的設(shè)計(jì)有一定的缺陷。
寄存器(組)是處理器的一個(gè)十分重要的組成部分,不僅為用戶編制其應(yīng)用軟件系統(tǒng)提供了極大的便利,也為提高處理器的處理速度起到了關(guān)鍵性的作用。
在傳統(tǒng)體系結(jié)構(gòu)的處理器中,由于在同一時(shí)刻僅有一道程序在執(zhí)行中,故只需設(shè)計(jì)一套寄存器(組)即可。然而,在同一時(shí)刻能夠并行與并發(fā)地執(zhí)行多道程序的處理器中、即L結(jié)構(gòu)處理器中,寄存器(組)的設(shè)計(jì)就成為一個(gè)制約系統(tǒng)綜合性能的十分重要的問(wèn)題。如果僅設(shè)置一組寄存器(組)供多道程序共用,顯然不能發(fā)揮多道程序在同一時(shí)刻并行與并發(fā)執(zhí)行的優(yōu)勢(shì)。如果為每一道可并行與并發(fā)執(zhí)行的程序都設(shè)置一組寄存器(組),當(dāng)可并行與并發(fā)執(zhí)行的程序道數(shù)較大時(shí),則需設(shè)置的寄存器(組)的個(gè)數(shù)也將較大,顯然是不可行的。再如果硬性規(guī)定一個(gè)處理器最大允許并行與并發(fā)執(zhí)行的程序的道數(shù)為N(N>1)并設(shè)置N組寄存器(組),同樣不能很好地發(fā)揮L結(jié)構(gòu)處理器的優(yōu)勢(shì)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明根據(jù)L結(jié)構(gòu)處理器的特點(diǎn),提出一種在L結(jié)構(gòu)處理器中設(shè)計(jì)寄存器(組)的方法。該方法用較便宜的存儲(chǔ)器存儲(chǔ)單元代替較昂貴的、傳統(tǒng)的寄存器邏輯門電路來(lái)設(shè)計(jì)寄存器(組),以使L結(jié)構(gòu)處理器基本不限制最大允許并行與并發(fā)執(zhí)行程序的道數(shù)的目的。
本發(fā)明的主要思想之一是用較便宜的RAM資源的存儲(chǔ)單元代替較昂貴的寄存器資源的邏輯門電路來(lái)設(shè)計(jì)寄存器(組)。
用RAM資源來(lái)完成寄存器的功能,最主要的是如何解決同時(shí)讀取多個(gè)‘寄存器’數(shù)據(jù)的問(wèn)題。本發(fā)明的另一個(gè)主要思想是采用多個(gè)可并行操作的、多端口的RAM模塊來(lái)保存多套寄存器(組)的內(nèi)容,即生成多套‘寄存器’副本,以此達(dá)到可在同一時(shí)刻讀/寫多個(gè)‘寄存器’數(shù)據(jù)的目的。
根據(jù)處理器的所有指令中同時(shí)需要讀取寄存器數(shù)據(jù)的最大個(gè)數(shù)來(lái)確定生成‘寄存器’副本的個(gè)數(shù)。如果每個(gè)RAM有多個(gè)讀端口,則酌情減少‘寄存器’副本的個(gè)數(shù)。例如,當(dāng)處理器的所有指令中同時(shí)需要讀取寄存器數(shù)據(jù)的最大個(gè)數(shù)等于2時(shí),可用一個(gè)雙讀端口RAM來(lái)實(shí)現(xiàn)。
為了保證數(shù)據(jù)的一致性,一個(gè)需寫回‘寄存器’的數(shù)據(jù)將被同時(shí)寫回到所有的‘寄存器’副本中。如果處理器的所有指令中同時(shí)需要寫回寄存器數(shù)據(jù)的最大個(gè)數(shù)大于1,則每個(gè)RAM的寫端口的個(gè)數(shù)也大于1。
在L結(jié)構(gòu)處理器的各功能部件之間傳遞的信息/數(shù)據(jù)主要是程序驅(qū)動(dòng)器PD。一個(gè)程序驅(qū)動(dòng)器PD包含有驅(qū)動(dòng)一道程序執(zhí)行所需要的所有信息,包括當(dāng)前指令的信息。指令信息包括當(dāng)前指令所要求執(zhí)行的操作的信息;如果該條指令需要進(jìn)行讀寄存器操作,則該條指令的信息亦包括讀寄存器的個(gè)數(shù)、編號(hào)及讀出的寄存器內(nèi)容的存放處等信息;如果該指令需要進(jìn)行寫寄存器操作,則該條指令的信息也包括寫寄存器的編號(hào)、被寫數(shù)據(jù)的存放處等信息。有關(guān)程序驅(qū)動(dòng)器的詳細(xì)定義,請(qǐng)參考有關(guān)L結(jié)構(gòu)處理器的專利文件。
一種在處理器中設(shè)計(jì)寄存器的裝置,其硬件部分的主要構(gòu)成至少是●存儲(chǔ)器子裝置該子裝置由多個(gè)獨(dú)立的RAM模塊所組成;RAM模塊的個(gè)數(shù)等于在處理器的所有指令中同時(shí)請(qǐng)求讀寄存器的最大個(gè)數(shù);每個(gè)RAM模塊有一個(gè)讀端口和一個(gè)寫端口;讀端口和寫端口可并行操作;每個(gè)端口都由一組數(shù)據(jù)、地址等信號(hào)線所組成;每個(gè)RAM模塊的深度等于處理器最大允許并行/并發(fā)執(zhí)行的程序道數(shù)與每道程序允許使用的最大寄存器個(gè)數(shù)的乘積;每個(gè)RAM模塊的寬度等于寄存器的最大位數(shù);當(dāng)RAM模塊有多個(gè)讀端口時(shí),RAM模塊的個(gè)數(shù)相應(yīng)降低;當(dāng)處理器的所有指令中同時(shí)請(qǐng)求寫寄存器的最大個(gè)數(shù)大于1時(shí),則要求每個(gè)RAM模塊寫端口的個(gè)數(shù)也大于1;●讀管理/控制子裝置主要由一個(gè)用于接收請(qǐng)求/發(fā)送已完成讀寄存器操作的PD的輸入/輸出端口、N個(gè)讀地址輸出端口、N個(gè)讀數(shù)據(jù)輸入端口、以及相應(yīng)的管理/控制邏輯所組成;其主要作用是a)接收請(qǐng)求讀寄存器操作的程序驅(qū)動(dòng)器PD;b)從上述PD的指定處取得n(n≤N)個(gè)待讀寄存器的編號(hào);c)從上述PD的指定處取得程序道號(hào);d)將上述n個(gè)寄存器編號(hào)與程序道號(hào)組合成n個(gè)RAM模塊的讀地址;e)將上述n個(gè)RAM模塊的讀地址發(fā)送給n個(gè)相應(yīng)的RAM模塊;f)啟動(dòng)上述n個(gè)RAM模塊的讀操作;g)將讀出的n個(gè)數(shù)據(jù)寫回到PD中n個(gè)事先指定的單元中;h)將上述完成讀寄存器操作的PD返回給某個(gè)事先指定的處理器功能部件進(jìn)行下一步的處理;●寫管理/控制子裝置主要由一個(gè)用于接收請(qǐng)求/發(fā)送已完成寫寄存器操作的PD的輸入/輸出端口、一個(gè)寫地址輸出端口、一個(gè)寫數(shù)據(jù)輸出端口、以及相應(yīng)的控制邏輯所組成;其主要作用是a)接收請(qǐng)求寫寄存器操作的程序驅(qū)動(dòng)器PD;b)從上述PD的指定處取得待寫寄存器的編號(hào)和待寫入的數(shù)據(jù);c)從上述PD的指定處取得程序道號(hào);d)將上述寄存器編號(hào)與程序道號(hào)組合成一個(gè)RAM模塊的寫地址;e)將上述RAM模塊的寫地址發(fā)送給相應(yīng)的RAM模塊;f)啟動(dòng)上述RAM模塊的寫操作;g)將上述完成寫寄存器操作的PD返回給某個(gè)事先指定的處理器功能部件進(jìn)行下一步的處理。
所述的在處理器中設(shè)計(jì)寄存器的裝置,該裝置的讀管理/控制子裝置的PD輸入/輸出端口與L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU的某個(gè)端口相連,完成同時(shí)讀取多個(gè)寄存器內(nèi)容的操作;即當(dāng)某個(gè)PD驅(qū)動(dòng)的當(dāng)前指令請(qǐng)求讀取n個(gè)寄存器的內(nèi)容時(shí),L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU將會(huì)把該P(yáng)D發(fā)送到該裝置的讀管理/控制子裝置的PD輸入/輸出端口;當(dāng)該裝置的讀管理/控制子裝置完成‘寄存器’讀操作、并將讀出的‘寄存器’內(nèi)容寫入到該P(yáng)D后,將會(huì)通過(guò)其PD輸入/輸出端口將已完成讀寄存器操作的PD發(fā)送給L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU;之后,DU將視情況將該P(yáng)D送往某個(gè)L結(jié)構(gòu)處理器功能部件進(jìn)行下一步的處理。
所述的在處理器中設(shè)計(jì)寄存器的裝置,該裝置的寫管理/控制子裝置的輸入/輸出端口與L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU的另一個(gè)端口相連,完成將一個(gè)操作結(jié)果寫回到指定寄存器的功能;即當(dāng)某個(gè)PD驅(qū)動(dòng)的當(dāng)前指令請(qǐng)求寫寄存器操作時(shí),L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU將會(huì)把該P(yáng)D發(fā)送到該裝置的寫管理/控制子裝置的PD輸入/輸出端口;當(dāng)該裝置的寫管理/控制子裝置完成‘寄存器’寫操作后,將會(huì)通過(guò)其PD輸入/輸出端口將已完成寫寄存器操作的PD發(fā)送給L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU;之后,DU將視情況將該P(yáng)D送往某個(gè)L結(jié)構(gòu)處理器功能部件進(jìn)行下一步的處理。
本發(fā)明技術(shù)構(gòu)思下的一些基本說(shuō)明。而依據(jù)本發(fā)明的技術(shù)構(gòu)想所做的任何等效變換,均應(yīng)屬于本發(fā)明的保護(hù)范圍。
圖1是寄存器(組)裝置的原理性結(jié)構(gòu)框圖。
圖2是寄存器(組)裝置的讀操作工作流程示意圖。
圖3是寄存器(組)裝置的寫操作工作流程示意圖。
圖4是L結(jié)構(gòu)處理器原理性結(jié)構(gòu)框圖。
圖5是采用本發(fā)明的寄存器(組)裝置的L結(jié)構(gòu)處理器原理性結(jié)構(gòu)框圖。
具體實(shí)施例方式
圖1是本文所述的寄存器(組)裝置的原理性結(jié)構(gòu)框圖。設(shè)處理器最大允許并行/并發(fā)執(zhí)行的程序道數(shù)為max_Prg_nu,每道程序允許使用的最大寄存器個(gè)數(shù)為max_reg_nu,每個(gè)寄存器的最大位數(shù)為max_reg_bit,在處理器的所有指令中同時(shí)請(qǐng)求讀寄存器的最大個(gè)數(shù)為N、同時(shí)請(qǐng)求寫寄存器的最大個(gè)數(shù)為1。寄存器(組)裝置(以下簡(jiǎn)稱RFdev)的主要構(gòu)成1.存儲(chǔ)器子裝置該子裝置由多個(gè)獨(dú)立的RAM模塊所組成(以下簡(jiǎn)稱RAM模塊為RFram);RFram的個(gè)數(shù)等于N;每個(gè)RFram有一個(gè)讀端口和一個(gè)寫端口;讀端口和寫端口可并行操作;每個(gè)端口都由一組數(shù)據(jù)信號(hào)線與地址信號(hào)線所組成(在本文中,其它信號(hào)線,如時(shí)鐘、片選、賦能等均被省略);每個(gè)RFram的深度等于max_prg_nu*max_reg_nu;每個(gè)RFram的寬度等于max_reg_bit。
當(dāng)每個(gè)RFram有多個(gè)讀端口時(shí),RFram的個(gè)數(shù)相應(yīng)降低;當(dāng)處理器的所有指令中同時(shí)請(qǐng)求寫寄存器的最大個(gè)數(shù)大于1時(shí),則要求每個(gè)RFram寫端口的個(gè)數(shù)也大于1;讀管理/控制子裝置主要由一個(gè)用于接收請(qǐng)求/發(fā)送已完成讀寄存器操作的PD的輸入/輸出端口、N個(gè)讀地址輸出端口、N個(gè)讀數(shù)據(jù)輸入端口、以及相應(yīng)的管理/控制邏輯所組成;其主要功能是●接收請(qǐng)求讀寄存器操作的程序驅(qū)動(dòng)器PD;●從上述的指定處取得n(n≤N)個(gè)待讀寄存器的編號(hào);●從上述PD的指定處取得程序道號(hào);●將上述n個(gè)寄存器編號(hào)與程序道號(hào)組合成n個(gè)RFram的讀地址;●將上述n個(gè)RFram的讀地址發(fā)送給n個(gè)相應(yīng)的RFram;●啟動(dòng)上述n個(gè)RFram的讀操作;●將讀出的n個(gè)數(shù)據(jù)寫回到PD中n個(gè)事先指定的單元中;●將上述完成讀寄存器操作的PD返回給某個(gè)事先指定的處理器功能部件進(jìn)行下一步的處理;3.寫管理/控制子裝置主要由一個(gè)用于接收請(qǐng)求/發(fā)送已完成寫寄存器操作的PD的輸入/輸出端口、一個(gè)寫地址輸出端口、一個(gè)寫數(shù)據(jù)輸出端口、以及相應(yīng)的控制邏輯所組成;其主要功能是●接收請(qǐng)求寫寄存器操作的程序驅(qū)動(dòng)器PD;●從上述PD的指定處取得待寫寄存器的編號(hào)和待寫入的數(shù)據(jù);●從上述PD的指定處取得程序道號(hào);
●將上述寄存器編號(hào)與程序道號(hào)組合成一個(gè)RFram的寫地址;●將上述RFram的寫地址發(fā)送給相應(yīng)的RFram;●啟動(dòng)上述RFram的寫操作;●將上述完成寫寄存器操作的PD返回給某個(gè)事先指定的處理器功能部件進(jìn)行下一步的處理。
圖2是本文所述的寄存器(組)裝置的讀操作工作流程示意圖。讀操作工作流程實(shí)際上就是寄存器(組)裝置的讀子裝置的工作流程,也是寄存器(組)裝置的讀子裝置同時(shí)讀取多個(gè)寄存器內(nèi)容的操作流程。其主要流程如下步驟1若L結(jié)構(gòu)處理器的寄存器讀子裝置的當(dāng)前PD要求讀寄存器操作,轉(zhuǎn)步驟2;否則,在下一個(gè)新的PD到達(dá)本寄存器讀子裝置時(shí)轉(zhuǎn)步驟1;步驟2從L結(jié)構(gòu)處理器的寄存器讀子裝置的當(dāng)前PD的某n(n≤N)個(gè)特定單元中取得該P(yáng)D所需要讀取的n個(gè)寄存器的編號(hào);若PD驅(qū)動(dòng)的當(dāng)前指令需要讀取寄存器的個(gè)數(shù)小于N,可增設(shè)控制信號(hào)以控制只讀那些需要讀取的寄存器;也可以同時(shí)啟動(dòng)讀N個(gè)寄存器的操作,只是控制僅輸出或僅使用那些需要讀取的寄存器的內(nèi)容;步驟3在每個(gè)寄存器編號(hào)的前面并置上該道程序的程序道號(hào),形成n個(gè)RFram(RAM)的地址;步驟4依據(jù)步驟2得出的n個(gè)RFram(RAM)地址,依次分別發(fā)送給n個(gè)RFram讀地址寄存器,同時(shí)啟動(dòng)該n個(gè)RFram的讀操作,以同時(shí)讀取n個(gè)數(shù)據(jù);步驟5將由步驟3讀取的n個(gè)數(shù)據(jù)寫入到當(dāng)前PD指定的某n個(gè)單元中;在下一個(gè)新的PD到達(dá)本寄存器讀裝置時(shí)轉(zhuǎn)步驟1。
圖3是本文所述的寄存器(組)裝置的寫操作工作流程示意圖。寫操作工作流程實(shí)際上就是寄存器(組)裝置的寫子裝置的工作流程,也是寄存器(組)裝置的寫子裝置將一個(gè)操作結(jié)果寫回到指定寄存器的操作流程。其主要流程如下步驟1若L結(jié)構(gòu)處理器的寄存器寫裝置的當(dāng)前PD要求寫寄存器操作,轉(zhuǎn)步驟2;否則,在下一個(gè)新的PD到達(dá)本寄存器寫子裝置時(shí)轉(zhuǎn)步驟1;步驟2從L結(jié)構(gòu)處理器的寄存器寫子裝置的當(dāng)前PD的某個(gè)特定單元中取得該P(yáng)D所需要寫回的數(shù)據(jù);步驟3從L結(jié)構(gòu)處理器的寄存器寫子裝置的當(dāng)前PD的某個(gè)特定單元中取得該P(yáng)D所需要寫回的寄存器的編號(hào);步驟4在該寄存器序號(hào)的前面并置上該道程序的程序道號(hào),形成一個(gè)RFram(RAM)的地址;步驟5將由步驟1得到的寫回?cái)?shù)據(jù)與步驟3得到的寫回地址分配給所有的RFram(RAM);同時(shí)啟動(dòng)N個(gè)RFram的寫操作,以同時(shí)將需要寫回的數(shù)據(jù)寫回到所有的RFram的指定的地址單元中;在下一個(gè)新的PD到達(dá)本寄存器寫裝置時(shí)轉(zhuǎn)步驟1。
圖4是L結(jié)構(gòu)處理器原理性結(jié)構(gòu)框圖。圖中亦給出了L結(jié)構(gòu)處理器在該種實(shí)施例中系統(tǒng)各部件的連接關(guān)系部件1到6分別通過(guò)它們各自的輸入/輸端口連到部件7。在圖4所給的L結(jié)構(gòu)處理器的實(shí)施例中,寄存器(組)沒有被設(shè)計(jì)成為硬件形式的部件,而是被設(shè)計(jì)成為了程序驅(qū)動(dòng)器PD的一個(gè)組成部分。這種方法的主要弊端是PD的位數(shù)過(guò)長(zhǎng)、資源使用量過(guò)大。注,在本文中,由于引入了硬件形式的寄存器(組)部件/裝置,所以,在本文中提到的程序驅(qū)動(dòng)器PD可以是不包含寄存器部分。
圖5是本發(fā)明的寄存器(組)裝置(RFdev)與L結(jié)構(gòu)處理器連接的示意圖。RFdev的讀管理/控制子裝置的PD輸入/輸出端口與L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU的某個(gè)端口相連,完成同時(shí)讀取多個(gè)寄存器內(nèi)容的操作。RFdev的寫管理/控制子裝置的輸入/輸出端口與L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU的另一個(gè)端口相連,完成將一個(gè)操作結(jié)果寫回到指定寄存器的功能。
當(dāng)某個(gè)PD驅(qū)動(dòng)的當(dāng)前指令請(qǐng)求讀取n個(gè)寄存器的內(nèi)容時(shí),L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU將會(huì)把該P(yáng)D發(fā)送到RFdev的讀管理/控制子裝置的PD輸入/輸出端口。當(dāng)RFdev的讀管理/控制子裝置完成‘寄存器’讀操作、并將讀出的‘寄存器’內(nèi)容寫入到該P(yáng)D后,將會(huì)通過(guò)其PD輸入/輸出端口將已完成讀寄存器操作的PD發(fā)送給L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU;之后,DU將視情況將該P(yáng)D送往某個(gè)L結(jié)構(gòu)處理器功能部件進(jìn)行下一步的處理。
當(dāng)某個(gè)PD驅(qū)動(dòng)的當(dāng)前指令請(qǐng)求寫寄存器操作時(shí),L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU將會(huì)把該P(yáng)D發(fā)送到RFdev的寫管理/控制子裝置的PD輸入/輸出端口。當(dāng)RFdev的寫管理/控制子裝置完成‘寄存器’寫操作后,將會(huì)通過(guò)其PD輸入/輸出端口將已完成寫寄存器操作的PD發(fā)送給L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU;之后,DU將視情況將該P(yáng)D送往某個(gè)L結(jié)構(gòu)處理器功能部件進(jìn)行下一步的處理。
在本圖所示的實(shí)施例中,假定PD同時(shí)請(qǐng)求寫寄存器的最大個(gè)數(shù)為1。當(dāng)PD同時(shí)請(qǐng)求寫寄存器的最大個(gè)數(shù)大于1時(shí),則要求每個(gè)RFram有多個(gè)可并行操作的寫端口即可。
權(quán)利要求
1.一種在處理器中設(shè)計(jì)寄存器的方法,其特征在于,用RAM存儲(chǔ)單元代替?zhèn)鹘y(tǒng)的寄存器邏輯門電路來(lái)設(shè)計(jì)寄存器;采用多個(gè)可并行操作的、多端口的RAM模塊來(lái)保存多套寄存器的內(nèi)容,即生成多套‘寄存器’副本,以此達(dá)到可在同一時(shí)刻讀/寫多個(gè)‘寄存器’數(shù)據(jù)的目的。
2.根據(jù)權(quán)利要求1所述的在處理器中設(shè)計(jì)寄存器的方法,其特征在于,根據(jù)處理器的所有指令中同時(shí)需要讀取寄存器數(shù)據(jù)的最大個(gè)數(shù)來(lái)確定生成‘寄存器’副本的個(gè)數(shù);如果每個(gè)RAM有多個(gè)讀端口,則酌情減少‘寄存器’副本的個(gè)數(shù);當(dāng)處理器的所有指令中同時(shí)需要讀取寄存器數(shù)據(jù)的最大個(gè)數(shù)等于2時(shí),可用一個(gè)雙讀端口RAM來(lái)實(shí)現(xiàn)。
3.根據(jù)權(quán)利要求1或2所述的在處理器中設(shè)計(jì)寄存器的方法,其特征在于,為了保證數(shù)據(jù)的一致性,一個(gè)需寫回‘寄存器’的數(shù)據(jù)將被同時(shí)寫回到所有的‘寄存器’副本中;如果處理器的所有指令中同時(shí)需要寫回寄存器數(shù)據(jù)的最大個(gè)數(shù)大于1,則每個(gè)RAM的寫端口的個(gè)數(shù)也大于1。
4.根據(jù)權(quán)利要求1或2或3所述的在處理器中設(shè)計(jì)寄存器的方法,其特征在于,其讀操作的主要工作流程如下步驟1若L結(jié)構(gòu)處理器的寄存器讀子裝置的當(dāng)前PD要求讀寄存器操作,轉(zhuǎn)步驟2;否則,在下一個(gè)新的PD到達(dá)該寄存器讀子裝置時(shí)轉(zhuǎn)步驟1;步驟2從L結(jié)構(gòu)處理器的寄存器讀子裝置的當(dāng)前PD的某n(n≤N)個(gè)特定單元中取得該P(yáng)D所需要讀取的n個(gè)寄存器的編號(hào);若PD驅(qū)動(dòng)的當(dāng)前指令需要讀取寄存器的個(gè)數(shù)小于N,可增設(shè)控制信號(hào)以控制只讀那些需要讀取的寄存器;也可以同時(shí)啟動(dòng)讀N個(gè)寄存器的操作,只是控制僅輸出或僅使用那些需要讀取的寄存器的內(nèi)容;步驟3在每個(gè)寄存器編號(hào)的前面并置上該道程序的程序道號(hào),形成n個(gè)RAM模塊的地址;步驟4依據(jù)步驟2得出的n個(gè)RAM模塊地址,依次分別發(fā)送給n個(gè)RAM模塊讀地址寄存器,同時(shí)啟動(dòng)該n個(gè)RAM模塊的讀操作,以同時(shí)讀取n個(gè)數(shù)據(jù);步驟5將由步驟3讀取的n個(gè)數(shù)據(jù)寫入到當(dāng)前PD指定的某n個(gè)單元中;在下一個(gè)新的PD到達(dá)該寄存器讀裝置時(shí)轉(zhuǎn)步驟1。
5.根據(jù)權(quán)利要求1或2或3所述的在處理器中設(shè)計(jì)寄存器的方法,其特征在于,其寫操作的主要工作流程如下步驟1若L結(jié)構(gòu)處理器的寄存器寫裝置的當(dāng)前PD要求寫寄存器操作,轉(zhuǎn)步驟2;否則,在下一個(gè)新的PD到達(dá)該寄存器寫子裝置時(shí)轉(zhuǎn)步驟1;步驟2從L結(jié)構(gòu)處理器的寄存器寫子裝置的當(dāng)前PD的某個(gè)特定單元中取得該P(yáng)D所需要寫回的數(shù)據(jù);步驟3從L結(jié)構(gòu)處理器的寄存器寫子裝置的當(dāng)前PD的某個(gè)特定單元中取得該P(yáng)D所需要寫回的寄存器的編號(hào);步驟4在該寄存器序號(hào)的前面并置上該道程序的程序道號(hào),形成一個(gè)RAM模塊的地址;步驟5將由步驟1得到的寫回?cái)?shù)據(jù)與步驟3得到的寫回地址分配給所有的RAM模塊;同時(shí)啟動(dòng)N個(gè)RAM模塊的寫操作,以同時(shí)將需要寫回的數(shù)據(jù)寫回到所有的RAM模塊的指定的地址單元中;在下一個(gè)新的PD到達(dá)該寄存器寫裝置時(shí)轉(zhuǎn)步驟1。
6.一種在處理器中設(shè)計(jì)寄存器的裝置,其特征在于,其硬件部分的主要構(gòu)成至少是●存儲(chǔ)器子裝置該子裝置由多個(gè)獨(dú)立的RAM模塊所組成;RAM模塊的個(gè)數(shù)等于在處理器的所有指令中同時(shí)請(qǐng)求讀寄存器的最大個(gè)數(shù);每個(gè)RAM模塊有一個(gè)讀端口和一個(gè)寫端口;讀端口和寫端口可并行操作;每個(gè)端口都由一組數(shù)據(jù)、地址等信號(hào)線所組成;每個(gè)RAM模塊的深度等于處理器最大允許并行/并發(fā)執(zhí)行的程序道數(shù)與每道程序允許使用的最大寄存器個(gè)數(shù)的乘積;每個(gè)RAM模塊的寬度等于寄存器的最大位數(shù);當(dāng)RAM模塊有多個(gè)讀端口時(shí),RAM模塊的個(gè)數(shù)相應(yīng)降低;當(dāng)處理器的所有指令中同時(shí)請(qǐng)求寫寄存器的最大個(gè)數(shù)大于1時(shí),則要求每個(gè)RAM模塊寫端口的個(gè)數(shù)也大于1;●讀管理/控制子裝置主要由一個(gè)用于接收請(qǐng)求/發(fā)送已完成讀寄存器操作的PD的輸入/輸出端口、N個(gè)讀地址輸出端口、N個(gè)讀數(shù)據(jù)輸入端口、以及相應(yīng)的管理/控制邏輯所組成;其主要作用是a)接收請(qǐng)求讀寄存器操作的程序驅(qū)動(dòng)器PD;b)從上述PD的指定處取得n(n≤N)個(gè)待讀寄存器的編號(hào);c)從上述PD的指定處取得程序道號(hào);d)將上述n個(gè)寄存器編號(hào)與程序道號(hào)組合成n個(gè)RAM模塊的讀地址;e)將上述n個(gè)RAM模塊的讀地址發(fā)送給n個(gè)相應(yīng)的RAM模塊;f)啟動(dòng)上述n個(gè)RAM模塊的讀操作;g)將讀出的n個(gè)數(shù)據(jù)寫回到PD中n個(gè)事先指定的單元中;h)將上述完成讀寄存器操作的PD返回給某個(gè)事先指定的處理器功能部件進(jìn)行下一步的處理;●寫管理/控制子裝置主要由一個(gè)用于接收請(qǐng)求/發(fā)送已完成寫寄存器操作的PD的輸入/輸出端口、一個(gè)寫地址輸出端口、一個(gè)寫數(shù)據(jù)輸出端口、以及相應(yīng)的控制邏輯所組成;其主要作用是a)接收請(qǐng)求寫寄存器操作的程序驅(qū)動(dòng)器PD;b)從上述PD的指定處取得待寫寄存器的編號(hào)和待寫入的數(shù)據(jù);c)從上述PD的指定處取得程序道號(hào);d)將上述寄存器編號(hào)與程序道號(hào)組合成一個(gè)RAM模塊的寫地址;e)將上述RAM模塊的寫地址發(fā)送給相應(yīng)的RAM模塊;f)啟動(dòng)上述RAM模塊的寫操作;g)將上述完成寫寄存器操作的PD返回給某個(gè)事先指定的處理器功能部件進(jìn)行下一步的處理。
7.根據(jù)權(quán)利要求6所述的在處理器中設(shè)計(jì)寄存器的裝置,其特征在于,該裝置的讀管理/控制子裝置的PD輸入/輸出端口與L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU的某個(gè)端口相連,完成同時(shí)讀取多個(gè)寄存器內(nèi)容的操作;即當(dāng)某個(gè)PD驅(qū)動(dòng)的當(dāng)前指令請(qǐng)求讀取n個(gè)寄存器的內(nèi)容時(shí),L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU將會(huì)把該P(yáng)D發(fā)送到該裝置的讀管理/控制子裝置的PD輸入/輸出端口;當(dāng)該裝置的讀管理/控制子裝置完成‘寄存器’讀操作、并將讀出的‘寄存器’內(nèi)容寫入到該P(yáng)D后,將會(huì)通過(guò)其PD輸入/輸出端口將已完成讀寄存器操作的PD發(fā)送給L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU;之后,DU將視情況將該P(yáng)D送往某個(gè)L結(jié)構(gòu)處理器功能部件進(jìn)行下一步的處理。
8.根據(jù)權(quán)利要求6所述的在處理器中設(shè)計(jì)寄存器的裝置,其特征在于,該裝置的寫管理/控制子裝置的輸入/輸出端口與L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU的另一個(gè)端口相連,完成將一個(gè)操作結(jié)果寫回到指定寄存器的功能;即當(dāng)某個(gè)PD驅(qū)動(dòng)的當(dāng)前指令請(qǐng)求寫寄存器操作時(shí),L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU將會(huì)把該P(yáng)D發(fā)送到該裝置的寫管理/控制子裝置的PD輸入/輸出端口;當(dāng)該裝置的寫管理/控制子裝置完成‘寄存器’寫操作后,將會(huì)通過(guò)其PD輸入/輸出端口將已完成寫寄存器操作的PD發(fā)送給L結(jié)構(gòu)處理器的程序驅(qū)動(dòng)器PD配送裝置DU;之后,DU將視情況將該P(yáng)D送往某個(gè)L結(jié)構(gòu)處理器功能部件進(jìn)行下一步的處理。
全文摘要
本發(fā)明涉及計(jì)算機(jī)技術(shù)范疇中的計(jì)算機(jī)體系結(jié)構(gòu)技術(shù)領(lǐng)域,具體說(shuō)是在處理器中實(shí)現(xiàn)寄存器的方法及裝置。該方法,用較便宜的RAM資源存儲(chǔ)單元代替較昂貴的傳統(tǒng)的寄存器資源的邏輯門電路來(lái)設(shè)計(jì)寄存器;為解決在同一時(shí)刻讀/寫多個(gè)‘寄存器’數(shù)據(jù)的目的,采用多個(gè)可并行操作的、多端口的RAM模塊來(lái)保存多套寄存器的內(nèi)容,即生成多套‘寄存器’副本;根據(jù)處理器所有指令中同時(shí)需要讀取寄存器數(shù)據(jù)的+最大個(gè)數(shù)來(lái)確定生成‘寄存器’副本的個(gè)數(shù);為了保證數(shù)據(jù)的一致性,一個(gè)需寫回‘寄存器’的數(shù)據(jù)將被同時(shí)寫回到所有的‘寄存器’副本中。該裝置包括存儲(chǔ)器子裝置及其接口、讀管理/控制子裝置及其接口、寫管理/控制子裝置及其接口。
文檔編號(hào)G06F15/78GK1776663SQ20051012597
公開日2006年5月24日 申請(qǐng)日期2005年12月1日 優(yōu)先權(quán)日2005年12月1日
發(fā)明者李曉波 申請(qǐng)人:李曉波