本發明專利技術公開了一種面向RISC處理器的三端口浮點寄存器文件,通過在寄存器文件的輸入信號中,增加源操作數和目標操作數的精度標志位,寄存器陣列的控制邏輯根據精度標志位和讀寫標志位,對源操作數和目標操作數地址指定的寄存器及與它地址相鄰的寄存器同時進行讀寫操作,可以單周期完成雙精度、四精度浮點數的讀取和回寫,解決了浮點運算過程中面臨的SRAM帶寬問題。
【技術實現步驟摘要】
—種面向RISC處理器的三端口浮點寄存器文件
本專利技術專利屬于微處理器體系結構領域,涉及一種面向RISC處理器的三端口浮點寄存器文件。
技術介紹
精簡指令集(RISC)處理器的大部分指令操作都在寄存器之間進行,必須由專門的訪存指令完成外部存儲器的讀寫操作。為了加快指令的執行速度,RISC處理器內部都有寄存器文件,指令執行過程中從寄存器文件取得源操作數,并將執行結果(目標操作數)寫回到寄存器文件。一般情況下,RISC處理器的指令使用兩個源操作數,計算得到一個目標操作數,基于此,寄存器文件應具有三個端口,具體包括兩個讀端口和一個寫端口。當前,三端口的寄存器文件的主要設計方法有兩種,第一種為針對特殊應用要求(如抗輻照)的全定制設計,此類方法并不適用于通用處理器的寄存器文件實現。另一種基于單元庫的半定制設計,即利用兩塊單元庫中提供的雙端口 SRAM構造三端口的寄存器文件,如Atmel公司的AT697E、AT697F系列處理器,Gaisler研究所的LEON系列處理器及UT699系列處理器等。文獻“UT699LE0N3FT/SPARCV8MicroProcessor Functional Manual,,公開了UT699處理器中寄存器文件的設計方法,通過兩塊256x48的雙端口 SRAM構造一個168x39的三端口寄存器文件,構造方法如圖1所示,將目標操作數同時回寫到兩塊SRAM中,以保證兩塊SRAM中數據的一致性,兩個源操作數則是通過分別向兩塊SRAM請求數據獲得。基于單元庫的半定制設計主要存在以下不足:(I)硬件資源浪費,增大了設計的功耗。該方法至少需要2倍于實際寄存器文件大小的SRAM存儲單元,忽略SRAM存儲單元中的行浪費,UT699中為3倍(2x256 + 169) ; (2)帶寬限制。當處理器進行大于單精度的浮點運算時,其所需的源操作數需要多個周期獲得,影響處理器性能(同一時刻,SRAM只能譯碼一個讀地址,也只能給出一個存儲單元的數據)。中國專利“一種用于浮點協處理器的寄存器文件分組編址、讀寫控制方法”(ZL201010261146.3)解決了浮點運算時SRAM帶寬限制的問題,該方法通過將原來兩塊的SRAM分成兩組,每組又分為四個小組,通過處理器對八個小組分別提供讀寫控制信號實現對輸入、輸出128位數據的控制。由于該方法基于單元庫中SRAM,可能不存在合適大小的SRAM而造成更大的資源浪費,增加了功耗,另外該設計需要處理器產生8組控制信號,增加了處理器設計復雜性及后端布線的難度。
技術實現思路
本專利技術解決的技術問題在于提供一種面向RISC處理器的三端口浮點寄存器文件,通過使用寄存器陣列代替單元庫中的SRAM作為三端口寄存器文件的存儲單元,避免了硬件資源的浪費,降低了功耗。本專利技術專利是通過以下技術方案來實現:一種面向RISC處理器的三端口浮點寄存器文件,包括:寫地址譯碼模塊,輸入為寄存器文件寫使能和寫地址,當寫使能有效時,置與寫地址對應的寄存器AR的寫使能w_en有效,并將其分別輸出至寫控制模塊和寫數據互連網絡;寫控制模塊,根據輸入的寫使能w_en和端口的輸入寫操作精度標志位,決定寄存器AR下面相鄰的寄存器的寫使能是否有效;輸出m位寫使能至寄存器陣列中m個寄存器的與使能端;寫數據互連網絡,在寫使能w_en控制下,將輸入的寄存器文件128位寫數據從低位到高位,以32位一組分為a、b、c、d四組;輸出為m個32位的數據,分別連接至寄存器陣列中m個寄存器的數據輸入端:將a組連接到寄存器AR的數據輸入端datai ;將b、C、d三組分別依次連接至AR下面相鄰的三個寄存器的數據輸入端datai,除a、b、c、d四組之外其余m-4組均為O ;寄存器陣列,為線性編址的一維寄存器陣列,大小為mX32,陣列的寬等于浮點寄存器的位寬,陣列的深度m等于浮點寄存器的個數,陣列中每一個寄存器有寫使能,其每個寄存器的寫使能和數據輸入端分別來自寫控制模塊和數據互連網絡,寄存器陣列有m個32位輸出,全部連接至讀數據互連網絡;當某個寄存器寫使能有效時,其輸入的數據在時鐘上升沿寫入該寄存器,陣列中寄存器的輸出恒有效;第一讀地址譯碼模塊,輸入為源操作數I的讀使能I和讀地址1,當讀使能I有效時,置與讀地址對應的寄存器AR的讀使能r_en0有效,并將其輸出至第一讀控制模塊;第一讀控制模塊,輸出為4位讀使能r_en0、r_enl、r_en2、r_en3,全部連接至讀數據互連網絡;該模塊根據輸入讀操作I精度標志位和讀使能1,決定AR下面相鄰的寄存器的讀使能是否有效;第二讀地址譯碼模塊,輸入為源操作數2的讀使能2和讀地址2,當讀使能2有效時,置與讀地址對應的寄存器AR的讀使能r_en0有效,并將其輸出至第二寫讀控制模塊;第二讀控制模塊,輸出為4位讀使能r_en0、r_enl、r_en2、r_en3,全部連接至讀數據互連網絡;該模塊根據輸入讀操作2精度標志位和讀使能2,決定AR下面相鄰的寄存器的讀使能是否有效;讀數據互連網絡,根據輸入寄存器陣列的m個32位的輸出和第二讀控制模塊的四位讀使能的信號,生成I個128位的數據進行輸出;根據輸入寄存器陣列的m個32位的輸出和第一讀控制模塊的四位讀使能的信號,生成I個128位的數據進行輸出。所述的寫控制模塊,根據寫使能w_en和端口的輸入寫操作精度標志位進行如下判斷:如果寫操作的精度標志位為雙精度,則將寄存器陣列中AR的下一個寄存器的寫使能w_en置有效;如果寫操作的精度標志位為四精度,則將寄存器陣列中AR的下三個寄存器的寫使能w_en全部置有效(高電平);如果寫操作的精度標志位為單精度,只保持AR的寫使能w_en有效。所述的第一讀控制模塊進行以下判斷:如果讀操作I的精度標志位為雙精度,則將寄存器陣列中AR的下一個寄存器的讀使能r_enl置有效;如果讀操作I的精度標志位為四精度,則將寄存器陣列中AR的下三個寄存器的讀使能r_enl、r_en2、r_en3全部置有效;如果讀操作I的精度標志位為單精度,只保持AR的讀使能r_en0有效。所述的第二讀控制模塊進行以下判斷:如果讀操作2的精度標志位為雙精度,則將寄存器陣列中AR的下一個寄存器的讀使能r_enl置有效;如果讀操作2的精度標志位為四精度,則將寄存器陣列中AR的下三個寄存器的讀使能r_enl、r_en2、r_en3全部置有效;[0031 ] 如果讀操作2的精度標志位為單精度,只保持AR的讀使能r_en0有效。所述的寄存器陣列對m個32位寄存器實行線性編址,構成一維寄存器陣列,地址范圍O?m-1。所述的讀數據互連網絡輸出的128位的數據是由從低到高的a、b、c、d四組32位數據組成,a組的讀使能對應讀控制模塊產生的r_en0, b組的讀使能對應讀控制模塊產生的r_enl, c組的讀使能對應讀控制模塊產生的r_en2, d組的讀使能對應讀控制模塊產生的r_en3,若a、b、C、d中任一組的讀使能有效,則該組數據為對應寄存器的數據輸出,否則該組對應的數據為32位的O。與現有技術相比,本專利技術具有以下有益的技術效果:本專利技術提供的一種面向RISC處理器的三端口浮點寄存器文件,通過在寄存器文件的輸入信號中,增加源操作數和目標操作數的精度標志位,寄存器陣列本文檔來自技高網...
【技術保護點】
一種面向RISC處理器的三端口浮點寄存器文件,其特征在于,包括:寫地址譯碼模塊,輸入為寄存器文件寫使能和寫地址,當寫使能有效時,置與寫地址對應的寄存器AR的寫使能w_en有效,并將其分別輸出至寫控制模塊和寫數據互連網絡;寫控制模塊,根據輸入的寫使能w_en和端口的輸入寫操作精度標志位,決定寄存器AR下面相鄰的寄存器的寫使能是否有效;輸出m位寫使能至寄存器陣列中m個寄存器的寫使能端;寫數據互連網絡,在寫使能w_en控制下,將輸入的寄存器文件128位寫數據從低位到高位,以32位一組分為a、b、c、d四組;輸出為m個32位的數據,分別連接至寄存器陣列中m個寄存器的數據輸入端:將a組連接到寄存器AR的數據輸入端datai;將b、c、d三組分別依次連接至AR下面相鄰的三個寄存器的數據輸入端datai,除a、b、c、d四組之外其余m?4組均為0;寄存器陣列,為線性編址的一維寄存器陣列,大小為m×32,陣列的寬等于浮點寄存器的位寬,陣列的深度m等于浮點寄存器的個數,陣列中每一個寄存器有寫使能,其每個寄存器的寫使能和數據輸入端分別來自寫控制模塊和數據互連網絡,寄存器陣列有m個32位輸出,全部連接至讀數據互連網絡;當某個寄存器寫使能有效時,其輸入的數據在時鐘上升沿寫入該寄存器,陣列中寄存器的輸出恒有效;第一讀地址譯碼模塊,輸入為源操作數1的讀使能1和讀地址1,當讀使能1有效時,置與讀地址對應的寄存器AR的讀使能r_en0有效,并將其輸出至第一讀控制模塊;第一讀控制模塊,輸出為4位讀使能r_en0、r_en1、r_en2、r_en3,全部連接至讀數據互連網絡;該模塊根據輸入讀操作1精度標志位和讀使能1,決定AR下面相鄰的寄存器的讀使能是否有效;第二讀地址譯碼模塊,輸入為源操作數2的讀使能2和讀地址2,當讀使能2有效時,置與讀地址對應的寄存器AR的讀使能r_en0有效,并將其輸出至第二寫讀控制模塊;第二讀控制模塊,輸出為4位讀使能r_en0、r_en1、r_en2、r_en3,全部連接至讀數據互連網絡;該模塊根據輸入讀操作2精度標志位和讀使能2,決定AR下面相鄰的寄存器的讀使能是否有效;讀數據互連網絡,根據輸入寄存器陣列的m個32位的輸出和第二讀控制模塊的四位讀使能的信號,生成1個128位的數據進行輸出;根據輸入寄存器陣列的m個32位的輸出和第一讀控制模塊的四位讀使能的信號,生成1個128位的數據進行輸出。...
【技術特征摘要】
1.一種面向RISC處理器的三端口浮點寄存器文件,其特征在于,包括: 寫地址譯碼模塊,輸入為寄存器文件寫使能和寫地址,當寫使能有效時,置與寫地址對應的寄存器AR的寫使能w_en有效,并將其分別輸出至寫控制模塊和寫數據互連網絡; 寫控制模塊,根據輸入的寫使能w_en和端口的輸入寫操作精度標志位,決定寄存器AR下面相鄰的寄存器的寫使能是否有效;輸出m位寫使能至寄存器陣列中m個寄存器的寫使倉; 寫數據互連網絡,在寫使能w_en控制下,將輸入的寄存器文件128位寫數據從低位到高位,以32位一組分為a、b、c、d四組;輸出為m個32位的數據,分別連接至寄存器陣列中m個寄存器的數據輸入端:將a組連接到寄存器AR的數據輸入端datai ^fb、c、d三組分別依次連接至AR下面相鄰的三個寄存器的數據輸入端datai,除a、b、C、d四組之外其余m_4組均為O ; 寄存器陣列,為線性編址的一維寄存器陣列,大小為mX32,陣列的寬等于浮點寄存器的位寬,陣列的深度m等于浮點寄存器的個數,陣列中每一個寄存器有寫使能,其每個寄存器的寫使能和數據 輸入端分別來自寫控制模塊和數據互連網絡,寄存器陣列有m個32位輸出,全部連接至讀數據互連網絡;當某個寄存器寫使能有效時,其輸入的數據在時鐘上升沿寫入該寄存器,陣列中寄存器的輸出恒有效; 第一讀地址譯碼模塊,輸入為源操作數I的讀使能I和讀地址1,當讀使能I有效時,置與讀地址對應的寄存器AR的讀使能r_enO有效,并將其輸出至第一讀控制模塊; 第一讀控制模塊,輸出為4位讀使能r_en0、r_enl、r_en2、r_en3,全部連接至讀數據互連網絡;該模塊根據輸入讀操作I精度標志位和讀使能1,決定AR下面相鄰的寄存器的讀使能是否有效; 第二讀地址譯碼模塊,輸入為源操作數2的讀使能2和讀地址2,當讀使能2有效時,置與讀地址對應的寄存器AR的讀使能r_enO有效,并將其輸出至第二寫讀控制模塊; 第二讀控制模塊,輸出為4位讀使能r_en0、r_enl、r_en2、r_en3,全部連接至讀數據互連網絡;該模塊根據輸入讀操作2精度標志位和讀使能2,決定AR下面相鄰的寄存器的讀使能是否有效; 讀數據互連網絡,根據輸入寄存器陣列的m個32位的輸出和第二讀控制模塊的四位讀使能的信號,生成I個128位的數據進行輸出; 根據輸入寄存器...
【專利技術屬性】
技術研發人員:陳慶宇,吳龍勝,段青亞,盛廷義,唐威,
申請(專利權)人:中國航天科技集團公司第九研究院第七七一研究所,
類型:發明
國別省市:陜西;61
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。