

摘要:隨著RISCV-32I技術的不斷發展和應用,微處理器的設計具有高速度、高集成度的特點,微處理器也日益受到人們的重視。微處理器外部設備應具備充分的功能性,在數據收集、指令存儲、CPU控制等方面,微處理器不僅需要具有充分的功能(運算邏輯組件、寄存器組件、控制組件),而且需要足夠快的運算速度。CPU是微處理器的核心,RISCV-32I技術負責處理計算機內部和外部的所有信息。
關鍵詞:RISCV-32I;微處理器;創新設計
微處理器需要執行處理指令、操作、控制時間和處理數據,并保證整個微處理器的運行。但隨著現代技術的發展,CPU需要進行大量的數據處理,需要對各種數據進行整合分析,同時還要運行多個操作系統。這導致很多采用單一設計方法設計的產品無法滿足要求,傳統的復雜指令集和低運算速度也不適合作為現代的控制核心。為此,研究者以RISCV-32I為核心,采用多層流水線進行設計,經實驗驗證,RISCV-32I技術的微處理器可以在500MHz的頻率下正常運行。
一、微處理器系統設計簡介
在實際的控制系統中,微處理器外部設備通常起到發送、指令和數據存儲的作用;CPU負責對所有的數據進行處理,計算和處理所有的指示。CPU和外部設備之間采用四條總線進行通信,從而實現地址、數據、控制等信息的交流。RISC-V(RISC-FIVE)是一種開放源碼指令系統體系結構(ISA),其基礎是一套簡化的指令集合(RISC)。
相對于大部分指令,RISC-V指令集可以被任意使用,使用者可以自行制造和銷售RISC-V的芯片和軟件。盡管這并非首套開放源碼指令,但其設計的重要性在于其適合于現代計算機(例如:倉庫式云計算機、高端手機、微型嵌入式系統),設計人員將性能和功能運作效率結合起來。這個指令集也包含許多可支援的軟件,以彌補新指令集合的一般缺點。RISC-V指令集的設計考慮了實際的實際應用,即體積小、速度快、功耗低,但是不會特殊針對具體的微處理器結構,RISCV-32I為2.22版本的UserspaceISA建立了一個指令集,而授權指令集也處于1.10版本的草案中。
RISC-V國際機構發布了對2022年的第一批四個規范和擴充的許可,即RISC-V有效追蹤(E-Trace)、RISC-V高級二進制(SBI)、RISC-V統一可擴充固件界面(UEFI)、RISC-V標準可擴充固件(UEFI)規范,以及RISC-VZmmul純粹乘數擴充,表明以前已有四個RISC的原型。RISC的每一代處理器都由加州伯克利大學的大衛·帕特森教授領導。由于采用了RISCV-32I指令,只有LW和SW兩種指令與外部存儲地址進行數據交互,因此微處理器的指令執行比較高效。同時,這也是運行速度比較快的一個關鍵因素(避免了對存儲系統的大量指令的訪問,節省了不必要的存取時間)。在系統的工作中,CPU從外部存儲指令的ROM存儲機器中獲取指令,然后進行解碼,獲得指令的函數和運算代碼,并給出特定的運算邏輯方法。然后,將RISCV-32I指令所指向的寄存器中的數據提取出來,ALU單元進行相應的運算,其運算方法是通過解碼產生的運算代碼來實現的。然后,根據命令函數,可以將數據寫入內存和其他外部設備中,也可以讀取存儲和其他外部設備。微處理器內核利用“LW”和“SW”命令來讀取外部設備的狀態,并實現對外部設備的控制。為了便于讀寫總線和控制總線,實現了與ROM在同一工作區域中的地址映射。不像其他的ISA,RISC-VISA可以在任何需要的設備上自由使用。之前四代RISC微處理器的樣機盡管并非最早開放源碼指令集(ISA),但其重要性在于,這是首個針對特定場景而設計的指令集合,能夠根據特定的情況選擇適當的指令集合。RISC-V的指令系統結構可以用于服務器、家電、工業控制CPU以及用于傳感器的微處理器設計。在某一個時間點,同時設置timer1倒計時,并且記錄此時timer的計數1,cnt1。當2s倒計時后,中斷響應,此時硬件再做處理,執行到實際的中斷處理后,在最開始的代碼處記錄下timer2的計數cnt2,中斷測試并進行應用改進(見表1。
二、微處理器內核設計簡介
本設計的CPU具有8個中斷,并使用RISCV-32I命令集,總共47條指令,只有LW、SW可以存取外部設備,從而降低了CPU在加載數據和指令時所耗費的時間。在此基礎上,采用5級流水線的方法,將組合邏輯從不同的方向劃分成8個板塊,從而提高了系統的工作效率,從另一個方面加快了CPU的工作速度。由于目前RISCV-32I的核心處理器大部分采用4級流水線的方式,因此在回寫環節增設一條流水線,實現五級流水線,即IF(PC取指令)、ID(解碼)、EX(指令執行或地址計算)、MEM(諸如數據存儲器)以及WB回寫。通過添加一條流水線,極大地提高了指令的處理速度,同時也從側面加快了處理器的工作速度。CPU控制單元的分布使得它不再是微碼的形式。整個微處理器的跳躍情況僅需要一個時鐘循環。與此同時,數據的“發送和堵塞”被置于lD部分等待審核,一旦IF和ID的命令被發現無法通過轉發來處理,則被堵塞(I/PC的當前值,IF至ID的暫存器被填充氣泡堵塞),而轉發則被放置在EX分段中。為了讓微處理器CPU在操作系統上不需要依靠外部計時器,在內核中特別設計了一個計數器,它可以在沒有操作系統的情況下,為CPU提供準確的計時[1]。
三、微處理器FPGA設計流程
FPGA英文全稱是Field Programmable Gate Arrays。FPGA是一種可編程專用IC(ASIC),它克服了傳統ASIC的缺陷,同時也克服了傳統可編程器件資源的限制。FPGA有數字型、模擬型、混合型三種類型,其中數字型FPGA被廣泛采用。具體來說,微處理器FPGA設計需要關注系統設計:按照設計規范進行算法和結構劃分,并確定各模塊之間的界面。RTL是注冊傳送級別,是一種寄存器傳送級別的設計。在RTL階段,主要使用了HDL的硬件描述語言來描述電路。常見的輸入方式有HDL和圖形輸入兩種。在早期,微處理器基于設計的需要選擇器件,繪制原理圖,完成輸入過程。然而,在大規模的系統中,該方案的維護能力很低,不利于模塊化的設計與復用。其最大的缺陷是:選擇的芯片升級后,對整個電路進行了相應的修改。后來,人們發現FPGA方法具有直觀、易懂、元素庫資源豐富等優點[2]。
另外,在微處理器大型項目的運行中,人們發現在大規模的工程設計中,采用HDL輸入法是最常見的方法。在這些語言中,影響最大的是VerilogHDL和VHDL。其共同特征是便于從上到下的設計,便于模塊的分割和復用,具有良好的移植性和通用性,并且不會因為芯片的加工和結構的改變而改變,對ASIC的移植更加有利。在輔助設計中,波形輸入和狀態機輸入是常用的兩種輸入方式。在采用波形輸入法時,EDA可以根據反應關系,自動地設計出激勵和輸出的波形。在采用微處理器狀態機的情況下,設計人員只要繪制狀態轉換圖,EDA就可以自動生成HDL編碼或示意圖,使用起來非常方便。在xilinx ISE工具箱中的狀態CAD可以實現對狀態機的輸入。然而,這兩種設計方式僅限于在特定場合下減輕設計者的工作負擔,而非全部設計。功能驗證:本研究旨在檢驗RTL級的功能是否正確。通常的實踐是,編寫一個測試平臺,并用一個刺激來觀察結果。通用的功能確認工具包括ModelTech、Synopsys、VCS、Cadence、NC-verilog、NC-VHDL、alec、ActiveHDL等等。通過對微處理器功能的確認,能夠及時地找出設計中的缺陷,從而加速設計的進程,從而提高設計的可靠性。微處理器邏輯合成:是指把HDL語言、原理圖等輸入轉換為由RAM、寄存器等基礎邏輯元件構成的邏輯網絡,對產生的邏輯網絡進行優化,輸出諸如EDF、EDN之類的文件,由FPGA的布線工具來完成,采用PWM中斷引腳測試法,或者定時器測試法進行無中斷測試[3](見表2)。
四、微處理器RISC設計技術
微處理器RISC的三個最基礎的抽象層次是架構、邏輯實現和實體實現。其中,架構定義了處理器的功能特性,邏輯實現是一種邏輯結構,并將其組織起來。微處理器的物理實現是一種物理結構,也是一種特定的表達方式。架構一般也被稱作指令集架構(ISA)。該程序解釋了處理器的指令集合,并確定了處理器的工作性能。在微處理器設計中,指令集結構的設計一直是軟件設計等領域的一個重要課題。指令集結構的設計是軟件和硬件管理的一種方法。在信息系統A中,程序和計算機可以彼此獨立發展。在不理解計算機的具體實施細節時,可以按照ISA的要求來開發該程序。在歷史上,按照指令集的不同,有兩類指令集:CISC和RISC。
所謂的“復合指令集計算機”,就是微處理器通過設定某些復雜的指令,將以前用軟件完成的某些常用的功能轉換成硬件指令。自從電腦誕生以來,人類對其指令的結構進行了改進,使其功能得到更進一步的提高。研究者在應用中面向對象程序、面向高級語言和編譯程序以及面向操作系統的優化實現上,提高了指令的性能。早期很多典型的計算機指令系統都非常龐大,指令的功能也比較復雜,因此產生了很多問題。只有三類指令被頻繁地應用,即:數據傳輸指令、算術運算指令、程序控制指令。
五、微處理器SPARC指令系統(指令庫)
該系統的全名稱為“可擴展處理器體系結構”,是微處理器RISC的一種微處理器體系結構。Sun計算機于1985年首次推出,同時也是SPARC國際公司的一個注冊商標。這個公司創建于1989年,旨在將SPARC推向外部,并對體系結構進行一致性測試。除此之外,SPARC還向多家制造商提供了相關的標準,比如德州儀器、賽普拉斯半導體、富士通等。Oracle已經開發出一套強大的方案,可以保證SPARC/Solaris的二值兼容,從而保證最大程度的安全保障。微處理器SPARC服務器為不同的企業應用程序提供了創紀錄的性能,僅用少量費用就可以達到無與倫比的任務關鍵可靠性[4]。
和Intel Pentium不同,SUNSPARC有32個字符長度,使得微處理器SPARC還具有更簡潔的數據類型,在SPARC架構中,存儲在內存中的數據地址始終是一致的,也就是說,字節數據的位元組地址是任意的。
六、結束語
綜上所述,微處理器的設計是目前最為復雜的IC設計,為了加速它的運算速度,出現了許多新的技術和系統架構。RISC架構在20多年前就已被廣泛地用于各種微處理器的設計。微處理器FPGA的體積和速度都在不斷地提高,為芯片性能的提高提供了新的途徑。
通過實驗證明,基于RISCV-32I所設計的微處理器可以應用于目前市場上的大部分對應產品的開發,并且可以充分利用它的全部外部設備和信息資源庫,提升微處理器工作效率,避免由于外部設備太多而導致的不必要資源浪費。
作者單位:鄒和仕 上海天數智芯半導體有限公司
參" 考" 文" 獻
[1]陳劍鋒,學江煜,郭湘津.基于FPGA的RISC微處理器設計[J].機電信息,2022(10):22-26.
[2]金國華,熊浩渺,畢勝,等.基于STM32微處理器的嵌入式核心板設計與開發[J].中國現代教育裝備,2022(09):18-19,30.
[3]段丙皇,杜川華,朱小鋒,等.微處理器中子單粒子效應測試系統設計與試驗研究[J].原子能科學技術,2022,56(04):734-741.
[4]高磊,陶彥飛,劉祥言.基于ARM微處理器的振動臺電源監控系統設計[J].信息與電腦(理論版),2021,33(24):115-117.