用于simd處理器的寄存器文件數(shù)據(jù)讀寫裝置和方法
【專利摘要】本發(fā)明提供了一種用于SIMD處理器的寄存器文件數(shù)據(jù)讀寫裝置和方法,設(shè)計(jì)了一種按照矩陣形式排列的寄存器文件陣列,根據(jù)譯碼單元譯碼結(jié)果,利用寄存器索引地址和當(dāng)前并行度確定待訪問寄存器具體物理地址,在寄存器讀寫使能有效信號控制下,通過對寄存器中數(shù)據(jù)寫回時(shí)的復(fù)制排序和讀出時(shí)整合,大大減少了SIMD處理器的數(shù)據(jù)通路的復(fù)雜性,簡化了DSP處理器的數(shù)據(jù)通路的設(shè)計(jì),提高了DSP處理器的執(zhí)行效率,獲得更好的實(shí)時(shí)性能和資源利用率。
【專利說明】用于SIMD處理器的寄存器文件數(shù)據(jù)讀寫裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于處理器體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域,更具體地,涉及SMD結(jié)構(gòu)處理器的寄存器文件數(shù)據(jù)讀寫方法。
【背景技術(shù)】
[0002]數(shù)字信號處理領(lǐng)域中,經(jīng)常涉及對大量數(shù)據(jù)的處理。由于信號處理中數(shù)據(jù)量大、處理過程復(fù)雜,數(shù)字信號處理器不能很好地滿足對數(shù)據(jù)處理實(shí)時(shí)性要求。隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,越來越多的數(shù)字信號處理器采用基于單指令多數(shù)據(jù)(SMD)指令集的數(shù)據(jù)并行處理技術(shù),即在同一個周期內(nèi)多個功能單元并行執(zhí)行數(shù)據(jù)運(yùn)算,從而為提高數(shù)據(jù)處理的實(shí)時(shí)性提供了一種全新的方式。因此,需要設(shè)計(jì)出一種支持并行數(shù)據(jù)處理、高效且簡單的寄存器文件讀寫,使SMD處理器在進(jìn)行大量數(shù)據(jù)處理時(shí),能夠?qū)崿F(xiàn)多組數(shù)據(jù)并行處理。
[0003]現(xiàn)有的SMD處理器一般采用多發(fā)射方式提高數(shù)據(jù)處理的并行度,這就要求寄存器具有多個讀和寫端口,來滿足執(zhí)行單元的訪問需要。SMD處理器由于并行數(shù)據(jù)處理的需要,擁有更多的數(shù)據(jù)路徑,寄存器的讀寫端口數(shù)也變得更多,隨著端口數(shù)的增多,讀寫延遲也逐漸增大,限制了處理器的頻率,影響了處理器的性能提升。
【發(fā)明內(nèi)容】
[0004]為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種用于SMD處理器的寄存器文件讀寫方法,通過在數(shù)據(jù)寫入寄存器前進(jìn)行復(fù)制和在數(shù)據(jù)讀出寄存器后整合,降低了 SMD處理器的數(shù)據(jù)通路路徑的復(fù)雜度,減少了寄存器路徑的組合情況,簡化了寄存器路徑,從而大大降低了 SMD處理器的數(shù)據(jù)通路的設(shè)計(jì)難度。此外,本發(fā)明用于SMD處理器寄存器文件讀寫方式在執(zhí)行構(gòu)令指令時(shí)具有更好的執(zhí)行效率。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:包含數(shù)據(jù)存儲器DRAM、寄存器數(shù)據(jù)寫回單元、寄存器文件RegFIle和寄存器數(shù)據(jù)讀出單元。
[0006]所述數(shù)據(jù)存儲器DRAM存儲SMD處理器執(zhí)行時(shí)需要處理的數(shù)據(jù);
[0007]所述寄存器寫回單元對需要寫回到寄存器文件中數(shù)據(jù)進(jìn)行預(yù)處理;根據(jù)所述處理器訪問執(zhí)行并行度Para,完成對待寫回寄存器文件數(shù)據(jù)進(jìn)行復(fù)制或者重新排序;SMD處理器訪問并行度為Para,Para = 2P,0彡p彡η ;所述SMD處理器每次訪問2Ρ組寄存器,一個執(zhí)行周期并行執(zhí)行2Ρ組數(shù)據(jù)處理,SIMD處理器總線最大支持2η組數(shù)據(jù)處理;
[0008]所述寄存器文件包含w個寄存器,其中w = 2n+m,n、m為正整數(shù);所述寄存器在物理實(shí)現(xiàn)方式上按照NXM矩陣排列,其中N = 2"表示列數(shù),代表每組寄存器內(nèi)具體寄存器個數(shù),N等于所述SMD處理器支持最大并行度,M = 2m表示行數(shù),代表寄存器文件包含組寄存器數(shù);所述寄存器文件索引地址寬度為(n+m-l,0)位,每個寄存器的索引地址按照矩陣形式,先行后列自右向左依次編碼,索引名稱依次為R0?IV1 ;所述寄存器索引地址(n+m-l,n)位段代表的數(shù)值確定矩陣當(dāng)前行號所在的行寄存器組的使能有效信號;
[0009]所述寄存器數(shù)據(jù)讀出單元對寄存器文件中待讀出數(shù)據(jù)進(jìn)行讀取。
[0010]本發(fā)明中提供了一種用于SMD處理器的寄存器文件數(shù)據(jù)讀寫方法,包括以下步驟:
[0011]1.初始化,將需要進(jìn)行數(shù)據(jù)處理的數(shù)據(jù)存儲在數(shù)據(jù)存儲單元DRAM指定地址范圍中,根據(jù)指令譯碼單元產(chǎn)生并行度Para、寄存器寫使能信號、寄存器讀使能信號、數(shù)據(jù)操作類型和待訪問寄存器索引;
[0012]2.根據(jù)譯碼控制信號,從DRAM指定地址范圍中,按照當(dāng)前執(zhí)行并行度讀出Para =2P組數(shù)據(jù),通過總線送至寄存器數(shù)據(jù)寫回單元;
[0013]3.寄存器寫回單元操作分為兩類情況:一類為所述SMD處理器在執(zhí)行運(yùn)算操作過程中不改變并行度Para,對待寫回寄存器數(shù)據(jù)復(fù)制2n_p_l份,所有2n_p組數(shù)據(jù)依次填充總線并輸出至寄存器文件;另一類為所述SMD處理在執(zhí)行運(yùn)算操作過程中改變并行度Para,當(dāng)所述處理器訪問并行度為Para = 2P時(shí),將當(dāng)前數(shù)據(jù)進(jìn)行一次復(fù)制,若當(dāng)前運(yùn)算操作要求復(fù)制后的數(shù)據(jù)重新排序,按照操作要求完成該組數(shù)據(jù)重新排序,將當(dāng)前兩組數(shù)據(jù)按照輸入順序合并為包含2P+1個數(shù)據(jù)的組,改變當(dāng)前執(zhí)行并行度為Para = 2P+1,對合并后的數(shù)據(jù)組再次進(jìn)行復(fù)制份,所有21^-1組數(shù)據(jù)依次填充總線并輸出至寄存器文件;
[0014]4.寄存器文件根據(jù)待訪問寄存器的索引地址(n+m-1,O)和當(dāng)前并行度Para確定具體待訪問寄存器具體位置;待訪問寄存器索引高(n+m-1,η)位與寄存器文件中行號數(shù)值一致,確定該行寄存器寫使能有效;根據(jù)待訪問寄存器索引地址低(η_1,ρ)位確定具體列寄存器組寫使能有效,當(dāng)P彡η-1時(shí),所述寄存器矩陣中列寄存器地址(η-1,ρ)與待訪問寄存器地址(η-1,ρ)位段一致時(shí),確定該列寄存器使能有效;當(dāng)?>11-1時(shí),所述寄存器矩陣中列寄存器使能均有效,當(dāng)所述寄存器矩陣中寄存器所在行和列均為寫使能信號有效時(shí),該寄存器確定為寫使能有效,將總線中與索引寄存器對應(yīng)區(qū)間的數(shù)據(jù)寫入目的寄存器中;
[0015]5.寄存器讀出單元讀出寄存器文件待訪問寄存器中的數(shù)據(jù),根據(jù)待訪問寄存器的索引地址(n+m-1,O)和當(dāng)前并行度Para確定待訪問寄存器具體位置;當(dāng)寄存器讀使能信號有效時(shí),所述寄存器數(shù)據(jù)讀出單元在寄存器讀使能信號的控制下,讀出待訪問寄存器中的數(shù)據(jù),按照寄存器索引地址由低向高依次依次輸出至總線低2P個字段,寄存器數(shù)據(jù)讀取完畢,寄存器文件中讀出的數(shù)據(jù)進(jìn)入到下一個執(zhí)行單元中進(jìn)行數(shù)據(jù)處理。
[0016]本發(fā)明的有益效果是:設(shè)計(jì)了一種按照矩陣形式排列的寄存器文件陣列,根據(jù)譯碼單元譯碼結(jié)果,利用寄存器索引地址和當(dāng)前并行度確定待訪問寄存器具體物理地址,在寄存器讀寫使能有效信號控制下,通過對寄存器中數(shù)據(jù)寫回時(shí)的復(fù)制排序和讀出時(shí)整合,大大減少了 SMD處理器的數(shù)據(jù)通路的復(fù)雜性,簡化了 DSP處理器的數(shù)據(jù)通路的設(shè)計(jì),提高了 DSP處理器的執(zhí)行效率,獲得更好的實(shí)時(shí)性能和資源利用率。
【專利附圖】
【附圖說明】
[0017]圖1為寄存器文件陣列結(jié)構(gòu)示意圖。
[0018]圖2為SMD處理器在執(zhí)行不同操作指令時(shí)的數(shù)據(jù)讀寫通路示意圖,其中,圖2a是并行度Pon = I時(shí)寄存器文件數(shù)據(jù)通路,圖2b是并行度Pon = 2時(shí)寄存器文件數(shù)據(jù)通路,圖2c是并行度Pon = 4時(shí)寄存器文件數(shù)據(jù)通路,圖2d是執(zhí)行復(fù)數(shù)乘時(shí)寄存器文件數(shù)據(jù)通路。
【具體實(shí)施方式】
[0019]下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)一步說明,本發(fā)明包括但不僅限于下述實(shí)施例。
[0020]本發(fā)明用于SMD處理器的寄存器文件數(shù)據(jù)讀寫結(jié)構(gòu)包含數(shù)據(jù)存儲器DRAM、寄存器數(shù)據(jù)寫回單元、寄存器文件RegFIle、寄存器數(shù)據(jù)讀出單元和相應(yīng)的控制電路模塊。
[0021]所述數(shù)據(jù)存儲器DRAM存儲SMD處理器執(zhí)行時(shí)需要處理的數(shù)據(jù)。
[0022]所述寄存器寫回單元對需要寫回到寄存器文件中數(shù)據(jù)進(jìn)行預(yù)處理。根據(jù)所述處理器訪問執(zhí)行并行度Para,完成對待寫回寄存器文件數(shù)據(jù)進(jìn)行復(fù)制或者重新排序。SMD處理器支持多種并行度Para,其中Para = 2P,O彡ρ彡n。SIMD處理器訪問并行度為Para,所述SIMD處理器每次訪問2P組寄存器,一個執(zhí)行周期并行執(zhí)行2P組數(shù)據(jù)處理,SIMD處理器總線最大支持2n組數(shù)據(jù)處理。所述寄存器寫回方法分為兩類:一類為對于SMD處理器在執(zhí)行過程中不需要進(jìn)行并行度改變的運(yùn)算操作,SMD處理器訪問并行度為Para = 2P,將待寫回寄存器數(shù)據(jù)進(jìn)行復(fù)制2n_p-l份,所有2n_p組數(shù)據(jù)依次填充總線并輸出至寄存器文件;另一類為所述SMD處理在執(zhí)行過程中并行度改變的運(yùn)算操作,SMD處理器訪問并行度為Para = 2P,對于運(yùn)算操作需要對數(shù)據(jù)進(jìn)行復(fù)制或者改變數(shù)據(jù)順序時(shí),所述寄存器寫回邏輯單元復(fù)制一次數(shù)據(jù)或者完成復(fù)制后再進(jìn)行數(shù)據(jù)重新排序,并且改變并行度為Para = 2P+1,對復(fù)制或排序后的數(shù)據(jù)再次進(jìn)行復(fù)制份,所有21^-1組數(shù)據(jù)通過依次填充總線并輸出至寄存器文件。
[0023]所述寄存器文件結(jié)構(gòu)包含w個寄存器,其中w = 2n+m,n,m為正整數(shù)。所述寄存器在物理實(shí)現(xiàn)方式上按照NXM矩陣排列,其中N = 2n表示列數(shù),代表每組寄存器內(nèi)具體寄存器個數(shù),N等于所述SMD處理器支持最大并行度,M = 2m表示行數(shù),代表寄存器文件包含組寄存器數(shù)。所述寄存器文件索引地址寬度為(n+m-1,O)位,每個寄存器的索引地址按照矩陣形式,先行后列自右向左依次編碼,索引名稱依次為R0?Rh。所述寄存器索引地址(n+m-1, η)位段代表的數(shù)值確定矩陣當(dāng)前行號所在的行寄存器組的使能有效信號,所述寄存器矩陣中行寄存器地址(n+m-l,n)與待訪問寄存器地址(n+m_l,η)位段一致時(shí),確定該行寄存器使能有效。所述寄存器索引地址(η_1,ρ)位段表示的數(shù)值和當(dāng)前執(zhí)行的并行度Para = 2Ρ共同確定所述寄存器矩陣中2Ρ個列寄存器的使能有效信號。ρ ( η-1時(shí),所述寄存器矩陣中列寄存器地址(η_1,ρ)與待訪問寄存器地址(η-1,ρ)位段一致,確定該列寄存器使能有效,否則該列寄存器使能無效;Ρ>η-1時(shí),所述寄存器矩陣中列寄存器使能均有效。當(dāng)所述寄存器矩陣中寄存器所在行和列均為使能信號有效時(shí),該寄存器確定為讀或?qū)懯鼓苡行В駝t該寄存器確定為讀和寫使能無效。所述寄存器文件中寄存器寫使能有效時(shí),將總線對應(yīng)位置上待寫回?cái)?shù)據(jù)寫入寄存器文件對應(yīng)寄存器中;所述寄存器文件中寄存器數(shù)據(jù)讀使能有效時(shí),寄存器讀出單元讀出寄存器文件中對應(yīng)寄存器中待讀出數(shù)據(jù)送至總線對應(yīng)位置上。
[0024]所述寄存器數(shù)據(jù)讀出單元對寄存器文件中待讀出數(shù)據(jù)進(jìn)行讀取。首先,所述寄存器文件根據(jù)當(dāng)前執(zhí)行并行度Para和寄存器文件中待訪問寄存器索引(n+m_l,O)確定待訪問寄存器在寄存器文件中具體位置,當(dāng)寄存器讀使能有效時(shí),所述寄存器數(shù)據(jù)讀出單元在寄存器讀使能信號的控制下,訪問相對應(yīng)索引的寄存器,按照寄存器索引地址由低向高依次讀出寄存器中數(shù)據(jù)并輸出至總線低2P個字段。
[0025]本發(fā)明中提供了一種用于SMD處理器的寄存器文件數(shù)據(jù)讀寫方法,為了實(shí)現(xiàn)上述目的,需要進(jìn)行以下步驟:
[0026]1.初始化,將需要進(jìn)行數(shù)據(jù)處理的數(shù)據(jù)存儲在數(shù)據(jù)存儲單元DRAM指定地址范圍中,根據(jù)指令譯碼單元產(chǎn)生并行度Para、寄存器寫使能信號、寄存器讀使能信號、數(shù)據(jù)操作類型和待訪問寄存器索引。
[0027]2.根據(jù)譯碼控制信號,從DRAM指定地址范圍中,按照當(dāng)前執(zhí)行并行度讀出Para =2P組數(shù)據(jù),通過總線送至寄存器數(shù)據(jù)寫回單元。
[0028]3.寄存器寫回單元操作分為兩類情況:一類為所述SMD處理器在執(zhí)行運(yùn)算操作過程中不改變并行度Para,對待寫回寄存器數(shù)據(jù)復(fù)制2n_p_l份,所有2n_p組數(shù)據(jù)依次填充總線并輸出至寄存器文件;另一類為所述SMD處理在執(zhí)行運(yùn)算操作過程中改變并行度Para,當(dāng)所述處理器訪問并行度為Para = 2P時(shí),將當(dāng)前數(shù)據(jù)進(jìn)行一次復(fù)制,若當(dāng)前運(yùn)算操作要求復(fù)制后的數(shù)據(jù)重新排序,按照操作要求完成該組數(shù)據(jù)重新排序,將當(dāng)前兩組數(shù)據(jù)按照輸入順序合并為包含2P+1個數(shù)據(jù)的組,改變當(dāng)前執(zhí)行并行度為Para = 2P+1,對合并后的數(shù)據(jù)組再次進(jìn)行復(fù)制份,所有21^-1組數(shù)據(jù)依次填充總線并輸出至寄存器文件。
[0029]4.寄存器文件根據(jù)待訪問寄存器的索引地址(n+m-1,O)和當(dāng)前并行度Para確定具體待訪問寄存器具體位置。待訪問寄存器索引高(n+m-1,η)位與寄存器文件中行號數(shù)值一致,確定該行寄存器寫使能有效。根據(jù)待訪問寄存器索引地址低(η-1,ρ)位確定具體列寄存器組寫使能有效,當(dāng)P彡n-Ι時(shí),所述寄存器矩陣中列寄存器地址(η-1,ρ)與待訪問寄存器地址(η-1,ρ)位段一致時(shí),確定該列寄存器使能有效;當(dāng)ρ>η-1時(shí),所述寄存器矩陣中列寄存器使能均有效,當(dāng)所述寄存器矩陣中寄存器所在行和列均為寫使能信號有效時(shí),該寄存器確定為寫使能有效,將總線中與索引寄存器對應(yīng)區(qū)間的數(shù)據(jù)寫入目的寄存器中。
[0030]5.寄存器讀出單元讀出寄存器文件待訪問寄存器中的數(shù)據(jù)。第一步,按照4中所述方法,根據(jù)待訪問寄存器的索引地址(n+m-1,O)和當(dāng)前并行度Para確定待訪問寄存器具體位置。當(dāng)寄存器讀使能信號有效時(shí),所述寄存器數(shù)據(jù)讀出單元在寄存器讀使能信號的控制下,讀出待訪問寄存器中的數(shù)據(jù),按照寄存器索引地址由低向高依次依次輸出至總線低2P個字段,寄存器數(shù)據(jù)讀取完畢,寄存器文件中讀出的數(shù)據(jù)進(jìn)入到下一個執(zhí)行單元中進(jìn)行數(shù)據(jù)處理。
[0031]為了更好地說明本發(fā)明用于SMD處理器的寄存器文件數(shù)據(jù)讀寫方法,本具體實(shí)施例中假定SMD處理器支持32位數(shù)據(jù)操作,數(shù)據(jù)總線寬度為128位。寄存器寫回單元和寄存器文件之間總線為WrDataBusA和WrDataBusB,寄存器文件和寄存器讀出讀出單元之間總線為RdDataBusA和RdDataBusB,算術(shù)邏輯單元數(shù)據(jù)輸出總線為DataOutBus,其中算術(shù)邏輯單元為寄存器讀出單元的下一個執(zhí)行單元。寄存器文件共包含4X8個寄存器,其中N=4表示列數(shù),M = 8表示行數(shù)。SMD處理器支持并行度Pon為1、2和4的數(shù)據(jù)處理,4列執(zhí)行單元自右向左排列依次為第O列、第I列、第2列和第3列。并行度為I時(shí),訪問第O列;并行度為2時(shí),訪問第0、1列;并行度為4時(shí),訪問第0、1、2、3列。
[0032]寄存器文件的地址總線寬度為(4,O)位,每個寄存器的索引地址按照矩陣形式,先行后列依次編碼,寄存器文件行號編碼自上向下分別為RowO?Row7,列號編碼自右向左分別為ColO?Col3,這里采用先行后列自右向左的編碼原則,對應(yīng)寄存器的地址依次編碼為00000?11111,對應(yīng)索引名稱為RO?R31,具體陣列形式見附圖1所示。
[0033]本具體實(shí)施例中寄存器地址(4,2)位段代表的數(shù)值表示矩陣中對應(yīng)寄存器組行號,確定該矩陣行號所在的寄存器組的使能有效信號,寄存器地址(1,0)位段表示的數(shù)值和當(dāng)前執(zhí)行的并行度共同確定矩陣具體列寄存器使能有效信號,當(dāng)矩陣中寄存器所在行和列均表示使能信號有效時(shí),該寄存器確定讀或?qū)懯鼓苡行В駝t該寄存器確定讀寫使能無效。
[0034]當(dāng)并行度為I時(shí),寄存器地址(4,2)位段確定矩陣中行所在寄存器組使能有效,寄存器地址(1,0)位段確定矩陣中列所在寄存器使能有效,當(dāng)寄存器文件矩陣中一個寄存器所在行和列均為使能有效時(shí),該寄存器使能有效,否則該寄存器使能無效;
[0035]當(dāng)并行度為2時(shí),將寄存器文件行所在一個寄存器組的寄存器按照地址從低向高依次每相鄰2個分為一小組,每一小組中寄存器按照該組寄存器地址(1,I)位段進(jìn)行分組。寄存器地址(4,2)位段確定矩陣中行所在寄存器組使能有效,寄存器地址(1,I)位段確定矩陣中列所在小組寄存器使能有效,當(dāng)寄存器文件矩陣中一小組寄存器所在行和列均為使能有效時(shí),該小組寄存器使能有效,否則該小組寄存器使能無效;;
[0036]當(dāng)并行度為N = 4時(shí),寄存器地址(4,2)位段確定矩陣中行所在寄存器組使能有效,該并行度下,寄存器文件列所在寄存器使能均有效。
[0037]本具體實(shí)施例中實(shí)現(xiàn)用于SMD處理器的寄存器數(shù)據(jù)寫回和讀出具體步驟如下:
[0038]I)基本指令寄存器文件數(shù)據(jù)讀寫方法
[0039]1.并行度為I時(shí)的基本指令寄存器數(shù)據(jù)讀寫通路
[0040]為了便于說明,這里假定源操作數(shù)A寫入的寄存器為R13,寄存器地址為01101,源操作數(shù)B寫入的寄存器為R22,寄存器地址為10110。
[0041]當(dāng)并行度Pon為I時(shí),SIMD處理器執(zhí)行數(shù)據(jù)處理具體步驟如下:
[0042]a)存儲控制單元根據(jù)指令譯碼結(jié)果,從數(shù)據(jù)存儲器DRAM中的指定地址中分別讀出源操作數(shù)A和源操作數(shù)B;
[0043]b)復(fù)制3次源操作數(shù)A和源操作數(shù)B,用4個相同的源操作數(shù)A和源操作數(shù)B填充128位的總線WrDataBusA和WrDataBusB,為了便于說明,對4個相同的源操作數(shù)A和B進(jìn)行自右向左編號:A3,A2,A1,A(^PB3,B2,B1,B0 ;;
[0044]c)根據(jù)源操作數(shù)A要求寫入的寄存器R13的索引地址的高3位(011)確定寄存器R13所在行為第3行,低2位(01)確定寄存器R13所在列數(shù)為第I列,即向寄存器文件中第3行第I列所在位置的寄存器R13寫入Al ;根據(jù)源操作數(shù)B要求寫入的寄存器R22的索引地址的高3(101)位確定寄存器R22所在行為第5行,低2位(10)確定寄存器R22所在列數(shù)為第2列,即向寄存器文件中第5行第2列所在位置的寄存器R22寫入B2 ;
[0045]d)與源操作數(shù)A和B寫入寄存器方式相同,根據(jù)源操作數(shù)A和B所在寄存器索引地址的高3位和低2位分別確定出寄存器所在寄存器文件中的位置,讀出寄存器R13存放的源操作數(shù)A輸出到總線RdDataBusA的低32位,送至算術(shù)邏輯單元ALU ;讀出寄存器R22存放的源操作數(shù)B輸出到總線RdDataBusB的低32位,送至算術(shù)邏輯單元ALU數(shù)據(jù)輸入端Π ;
[0046]e) ALU單元執(zhí)行第O列運(yùn)算單元,計(jì)算的結(jié)果C送入總線DataOutBus的低32位;
[0047]f)存儲控制單元根據(jù)指令譯碼結(jié)果,將計(jì)算結(jié)果寫回到寄存器文件或者直接寫回到數(shù)據(jù)存儲器中,具體執(zhí)行過程見附圖2a所示。
[0048]?.并行度為2時(shí)的基本指令寄存器數(shù)據(jù)讀寫通路
[0049]為了便于說明,這里假定源操作數(shù)Al,AO寫入的寄存器為R13?R12,寄存器索引地址為01101?01100,源操作數(shù)BI,BO寫入的寄存器為R23?R22,寄存器索引地址為10111 ?10110。
[0050]當(dāng)并行度Pon為2時(shí),SIMD處理器執(zhí)行數(shù)據(jù)處理具體步驟如下:
[0051]a)存儲控制單元根據(jù)指令譯碼結(jié)果,從數(shù)據(jù)存儲器中的指定地址中分別讀出源操作數(shù)Al, AO和源操作數(shù)BI, BO ;
[0052]b)復(fù)制I組源操作數(shù)Al,AO和BI,B0,用2組相同的源操作數(shù)Al,AO和源操作數(shù)BI, BO填充128位的總線WrDataBusA和WrDataBusB,為了便于說明,對2組相同的源操作數(shù) Al, AO 和 BI, BO 進(jìn)行自右向左編號:A1H, AOH, AIL, AOL 和 BlH, BOH, BlL, BOL ;
[0053]c)根據(jù)源操作數(shù)Al,AO要求寫入的寄存器R13?R12的索引地址的高3位(011)確定寄存器R13?R12所在行為第3行,索引地址的次低位(O)確定寄存器R13?R12所在列數(shù)為第1、0列,即向寄存器文件中第3行第1、0列所在位置的寄存器R13?R12寫入A1L,A0L;根據(jù)源操作數(shù)BI,BO要求寫入的寄存器R23?R22的索引地址的高3位(101)確定寄存器R23?R22所在行為第5行,次低位(I)確定寄存器R23?R22所在列數(shù)為第2、3列,即向寄存器文件中第5行第2、3列所在位置的寄存器R23?R22寫入B1H,BOH ;
[0054]d)與源操作數(shù)Al,AO和BI,BO寫入寄存器方式相同,根據(jù)源操作數(shù)Al,AO和BI,BO所在寄存器索引地址的高3位和次低位分別確定出寄存器所在寄存器文件中的位置,讀出寄存器R13?R12存放的源操作數(shù)Al,AO輸出到總線RdDataBusA的低64位,送至算術(shù)邏輯單元ALU ;讀出寄存器R23?R22存放的源操作數(shù)BI,BO輸出到總線RdDataBusB的低64位,送至算術(shù)邏輯單元ALU數(shù)據(jù)輸入端口 ;
[0055]e)ALU單元執(zhí)行第O、I列運(yùn)算單元,計(jì)算的結(jié)果Cl, CO送至總線DataOutBus的低64位;
[0056]f)存儲控制單元根據(jù)指令譯碼結(jié)果,將計(jì)算結(jié)果寫回到寄存器文件或者直接寫回到數(shù)據(jù)存儲器中,具體執(zhí)行過程見附圖2b所示。
[0057]ii1.并行度為4時(shí)的基本指令寄存器數(shù)據(jù)讀寫通路
[0058]為了便于說明,這里假定源操作數(shù)A3,A2, Al, AO寫入的寄存器為R15?R12,寄存器索引地址為01111?01100,源操作數(shù)B3,B2, BI, BO寫入的寄存器為R23?R20,寄存器索引地址為10111?10100。
[0059]當(dāng)并行度Pon為4時(shí),SIMD處理器執(zhí)行數(shù)據(jù)處理具體步驟如下:
[0060]a)存儲控制單元根據(jù)指令譯碼結(jié)果,從數(shù)據(jù)存儲器中的指定地址中分別讀出源操作數(shù) A3, A2, Al, AO 和源操作數(shù) B3, B2, BI, BO ;
[0061]b)用源操作數(shù)A3,A2, Al, AO和源操作數(shù)B3,B2, BI, BO填充128位的總線WrDataBusA 和 WrDataBusB ;
[0062]c)根據(jù)源操作數(shù)A3,A2,Al,AO要求寫入的寄存器R15?R12索引地址的高3位
(011)確定寄存器R15?R12所在行為第3行,即向寄存器文件中第3行第3、2、1、0列所在位置的寄存器R15?R12寫入A3,A2, Al, AO ;根據(jù)源操作數(shù)B3,B2, BI, BO要求寫入的寄存器R23?R20的索引地址的高3位(101)確定寄存器R23?R20所在行為第5行,即向寄存器文件中第5行第3、2、1、0列所在位置的寄存器R23?R20寫入B3,B2, BI, BO ;
[0063]d)與源操作數(shù)A3,A2,Al,AO和B3,B2,BI,BO寫入寄存器方式相同,根據(jù)源操作數(shù)A3, A2, Al, AO和B3,B2, BI, BO所在寄存器索引地址的高3位確定出寄存器所在寄存器文件中的位置,讀出寄存器R15?R12存放的源操作數(shù)A3,A2, Al, AO輸出至總線RdDataBusA,送至算術(shù)邏輯單元ALU ;讀出寄存器R23?R20存放的源操作數(shù)B3,B2, BI, BO輸出至總線RdDataBusB,送至算術(shù)邏輯單元ALU數(shù)據(jù)輸入端口 ;
[0064]e) ALU單元執(zhí)行第O、1、2、3列運(yùn)算單元,計(jì)算的結(jié)果C3,C2,CI,CO送至總線DataOutBus ;
[0065]f)存儲控制單元根據(jù)指令譯碼結(jié)果,將計(jì)算結(jié)果寫回到寄存器文件或者直接寫回到數(shù)據(jù)存儲器中,具體執(zhí)行過程見附圖2c所示。
[0066]2)復(fù)雜操作指令寄存器文件數(shù)據(jù)讀寫方法
[0067]在SMD處理器進(jìn)行復(fù)數(shù)類、蝶形運(yùn)算等計(jì)算時(shí),在源操作數(shù)寫回寄存器文件前需要對數(shù)據(jù)進(jìn)行復(fù)制排序,復(fù)數(shù)類計(jì)算和碟形計(jì)算僅在數(shù)據(jù)寫回時(shí)數(shù)據(jù)復(fù)制順序不同,這里以復(fù)數(shù)乘計(jì)算為例。
[0068]為了便于說明,這里假定源操作數(shù)O為復(fù)數(shù)A = ReA+j*ImA,寫入的寄存器為R15?R12,寄存器索引地址為01111?01100,源操作數(shù)I為復(fù)數(shù)B = ReB+j*ImB,寫入的寄存器為R23?R20,寄存器索引地址為10111?10100。
[0069]當(dāng)進(jìn)行復(fù)數(shù)類計(jì)算時(shí),SIMD處理器執(zhí)行數(shù)據(jù)處理具體步驟如下:
[0070]a)存儲控制單元根據(jù)指令譯碼結(jié)果,按照并行度為2從數(shù)據(jù)存儲器DRAM中的指定地址中分別讀出源操作數(shù)ImA,ReA和源操作數(shù)ImB,ReB ;
[0071]b)復(fù)制一組源操作數(shù) ImA, ReA 和 ImB, ReB,按照 ImA, ReA, ImA, ReA 和ReB, ImB, ImB, ReB的形式進(jìn)行排序并填充128位的總線WrDataBusA和WrDataBusB,更改并行度Pon為4 ;
[0072]c)根據(jù)ImA, ReA, ImA, ReA要求寫入的寄存器R15?R12的索引地址的高3位
(011)確定寄存器R15?R12所在行為第3行,向寄存器文件中第3行第3、2、1、0列所在的寄存器R15?R12寫入ImA, ReA, ImA, ReA ;根據(jù)ReB, ImB, ImB, ReB要求寫入的寄存器R23?R20的索引地址的高3位(101)確定寄存器R23?R20所在行為第5行,即向寄存器文件中第5行第3、2、1、0列所在位置的寄存器R23?R20寫入ReB,ImB, ImB, ReB ;
[0073]d)與源操作數(shù)ImA, ReA, ImA, ReA和ReB,ImB, ImB, ReB寫入寄存器方式相同,根據(jù)源操作數(shù)ImA,ReA, ImA, ReA和ReB,ImB, ImB, ReB所在寄存器索引地址的高3位確定出寄存器所在寄存器文件中的位置,讀出寄存器R15?R12存放的源操作數(shù)ImA,ReA, ImA, ReA輸出至總線RdDataBusA,送至算術(shù)邏輯單元ALU數(shù)據(jù)輸入端口 A ;讀出寄存器R23?R20存放的源操作數(shù)ReB,ImB, ImB, ReB輸出至寄存器數(shù)據(jù)讀出總線RdDataBusB,送至算術(shù)邏輯單元ALU數(shù)據(jù)輸入端口 B ;
[0074]e)ALU單元執(zhí)行第O、1、2、3列運(yùn)算單元,計(jì)算的結(jié)果ImC,ReC送至總線DataOutBus 的低 64 位;
[0075]f)存儲控制單元根據(jù)指令譯碼結(jié)果,將計(jì)算結(jié)果寫回到寄存器文件或者直接寫回到數(shù)據(jù)存儲器中,具體執(zhí)行過程見附圖2d所示。
【權(quán)利要求】
1.一種用于SMD處理器的寄存器文件數(shù)據(jù)讀寫裝置,包括數(shù)據(jù)存儲器DRAM、寄存器數(shù)據(jù)寫回單元、寄存器文件RegFIle和寄存器數(shù)據(jù)讀出單元,其特征在于: 所述數(shù)據(jù)存儲器DRAM存儲SMD處理器執(zhí)行時(shí)需要處理的數(shù)據(jù); 所述寄存器寫回單元對需要寫回到寄存器文件中數(shù)據(jù)進(jìn)行預(yù)處理;根據(jù)所述處理器訪問執(zhí)行并行度Para,完成對待寫回寄存器文件數(shù)據(jù)進(jìn)行復(fù)制或者重新排序;SMD處理器訪問并行度為Para,Para = 2p,0^p^n ;所述SMD處理器每次訪問2P組寄存器,一個執(zhí)行周期并行執(zhí)行2P組數(shù)據(jù)處理,SIMD處理器總線最大支持2n組數(shù)據(jù)處理; 所述寄存器文件包含w個寄存器,其中w = 2n+m,n、m為正整數(shù);所述寄存器在物理實(shí)現(xiàn)方式上按照NXM矩陣排列,其中N= 2"表示列數(shù),代表每組寄存器內(nèi)具體寄存器個數(shù),N等于所述SMD處理器支持最大并行度,M = 2m表示行數(shù),代表寄存器文件包含組寄存器數(shù);所述寄存器文件索引地址寬度為(n+m-l,0)位,每個寄存器的索引地址按照矩陣形式,先行后列自右向左依次編碼,索引名稱依次為Ro?Rm ;所述寄存器索引地址(n+m-l,n)位段代表的數(shù)值確定矩陣當(dāng)前行號所在的行寄存器組的使能有效信號; 所述寄存器數(shù)據(jù)讀出單元對寄存器文件中待讀出數(shù)據(jù)進(jìn)行讀取。
2.一種利用權(quán)利要求1所述裝置用于SMD處理器的寄存器文件數(shù)據(jù)讀寫的方法,其特征在于包括下述步驟: 1)初始化,將需要進(jìn)行數(shù)據(jù)處理的數(shù)據(jù)存儲在數(shù)據(jù)存儲單元DRAM指定地址范圍中,根據(jù)指令譯碼單元產(chǎn)生并行度Para、寄存器寫使能信號、寄存器讀使能信號、數(shù)據(jù)操作類型和待訪問寄存器索引; 2)根據(jù)譯碼控制信號,從DRAM指定地址范圍中,按照當(dāng)前執(zhí)行并行度讀出Para= 2P組數(shù)據(jù),通過總線送至寄存器數(shù)據(jù)寫回單元; 3)寄存器寫回單元操作分為兩類情況:一類為所述SMD處理器在執(zhí)行運(yùn)算操作過程中不改變并行度Para,對待寫回寄存器數(shù)據(jù)復(fù)制2n_p_l份,所有2”組數(shù)據(jù)依次填充總線并輸出至寄存器文件;另一類為所述SMD處理在執(zhí)行運(yùn)算操作過程中改變并行度Para,當(dāng)所述處理器訪問并行度為Para = 2P時(shí),將當(dāng)前數(shù)據(jù)進(jìn)行一次復(fù)制,若當(dāng)前運(yùn)算操作要求復(fù)制后的數(shù)據(jù)重新排序,按照操作要求完成該組數(shù)據(jù)重新排序,將當(dāng)前兩組數(shù)據(jù)按照輸入順序合并為包含2P+1個數(shù)據(jù)的組,改變當(dāng)前執(zhí)行并行度為Para = 2P+1,對合并后的數(shù)據(jù)組再次進(jìn)行復(fù)制2^4-1份,所有21^.1組數(shù)據(jù)依次填充總線并輸出至寄存器文件; 4)寄存器文件根據(jù)待訪問寄存器的索引地址(n+m-l,0)和當(dāng)前并行度Para確定具體待訪問寄存器具體位置;待訪問寄存器索引高(n+m-l,n)位與寄存器文件中行號數(shù)值一致,確定該行寄存器寫使能有效;根據(jù)待訪問寄存器索引地址低(n_l,p)位確定具體列寄存器組寫使能有效,當(dāng)P彡n-Ι時(shí),所述寄存器矩陣中列寄存器地址(n-1,p)與待訪問寄存器地址(n-l,p)位段一致時(shí),確定該列寄存器使能有效;當(dāng)p>n-l時(shí),所述寄存器矩陣中列寄存器使能均有效,當(dāng)所述寄存器矩陣中寄存器所在行和列均為寫使能信號有效時(shí),該寄存器確定為寫使能有效,將總線中與索引寄存器對應(yīng)區(qū)間的數(shù)據(jù)寫入目的寄存器中; 5)寄存器讀出單元讀出寄存器文件待訪問寄存器中的數(shù)據(jù),根據(jù)待訪問寄存器的索引地址(n+m-l,0)和當(dāng)前并行度Para確定待訪問寄存器具體位置;當(dāng)寄存器讀使能信號有效時(shí),所述寄存器數(shù)據(jù)讀出單元在寄存器讀使能信號的控制下,讀出待訪問寄存器中的數(shù)據(jù),按照寄存器索引地址由低向高依次依次輸出至總線低2P個字段,寄存器數(shù)據(jù)讀取完畢,寄存器文件中讀出的數(shù)據(jù)進(jìn)入到下一個執(zhí)行單元中進(jìn)行數(shù)據(jù)處理。
【文檔編號】G06F9/38GK104317554SQ201410542096
【公開日】2015年1月28日 申請日期:2014年10月14日 優(yōu)先權(quán)日:2014年10月14日
【發(fā)明者】楊靚, 曹輝, 何衛(wèi)強(qiáng), 高向強(qiáng), 金玉琳 申請人:中國航天科技集團(tuán)公司第九研究院第七七一研究所