專利名稱:一種16位的risc cpu系統結構的制作方法
技術領域:
本發明涉及計算機技術領域,尤其涉及一種16位的RISC CPU系統結構。
背景技術:
CPU是集成電路中最常見和應用最廣泛的部件之一,在計算機、嵌入式系統、MCU 和SOC芯片中隨處可見。在這些應用場合中,CPU往往是系統或芯片的核心部件,起著關鍵作用。CPU電路的設計首先取決于CPU結構的設計。不同結構的CPU,在電路實現、執行效率、編譯器設計和軟件編程等方面存在很大的差異。目前,主要有兩種CPU結構CISC(復雜指令集計算機)和RISC (精簡指令集計算機)。CISC的主要特點是指令功能強大,指令集豐富,指令長度不相等,電路設計復雜,存儲器-存儲器操作較多,指令執行效率較低,但是相對來講編程簡單,代碼長度短。RISC的主要特點是指令集精簡,指令長度單一、格式規范,便于使用流水線結構,尋址方式簡化,大量利用寄存器操作,存儲器操作少,指令執行效率高。RISC結構體系雖然具有上述諸多優點,但存在著匯編程序設計/編譯器設計復雜、代碼密度較低、生成的代碼長度較長等缺點。由于傳統RISC CPU結構體系本身指令集精簡,尋址方式少,造成RISC CPU設計時編程的靈活性下降、工作量上升等缺陷。
發明內容
本發明的目的在于提供一種能提高編程靈活性的16位的RISC CPU結構。本發明公開了一種16位的RISC CPU結構,它具有總線輸入輸出緩沖、地址多路器、指令鎖存及譯碼電路、寄存器地址譯碼電路、片內寄存器組、ALU、數據cache、常數發生器、內部數據總線接口。其中,總線輸入輸出緩沖,用于傳輸CPU和外設之間的或指令;地址多路器,用于輸出地址數據到與CPU連接的外部存儲器;指令鎖存及譯碼電路,連接于總線輸入輸出緩沖,用于依據指令輸出讀寫控制信號,源地址代碼和目的地址代碼,以及尋址方式控制信號;寄存器地址譯碼電路,連接于指令鎖存及譯碼電路,用于依據尋址方式控制信號及讀寫控制信號,對源地址代碼及目的地址代碼進行譯碼后輸出片內寄存器組地址選通信號;片內寄存器組,連接于寄存器地址譯碼電路、內部數據總線接口和地址多路器,用于依據片內寄存器組地址選通信號,輸入或輸出數據;ALU,用于依據指令對輸入的進行算術或邏輯運算后輸出數據;數據Cache,用于數據暫存;常數發生器,用于產生常數;內部數據總線接口,用于對ALU、片內寄存器組、常數發生器及數據Cache之間的數據的傳輸。進一步的,上述片內寄存器組具有通用寄存器組和特殊寄存器組。進一步的,上述寄存器地址譯碼電路和片內寄存器組之間通過三組內部寄存器地址總線對片內寄存器組進行選通。更進一步的,上述通用寄存器組的bank數目為N個,所述N為不小于1的自然數, 每個通用寄存器組具有8個寄存器RO R7,所述特殊寄存器組的bank數目為1個,所述特殊寄存器組具有PC、SP、SR、Rw, RX、Ry、Rz特殊寄存器。且上述三組內部寄存器地址總線具有第一組內部寄存器地址總線、第二組內部寄存器地址總線及第三組內部寄存器地址總線。當所述通用寄存器組的bank數目為2個時,所述第一組內部寄存器地址總線具有第一、第二及第三子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw, Rx、Ry、Rz特殊寄存器,所述第二和第三子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組;當所述通用寄存器組的bank數目為N個時,所述第一組內部寄存器地址總線具有第一、第二、…、第N+1子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw, Rx、Ry、Rz特殊寄存器, 所述第二、第三、…、第N+1子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組。當所述通用寄存器組的bank數目為2個時,所述第二組內部寄存器地址總選具有第一、第二及第三子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7 位,用于選通PC、SP、SR、Rw、RX、Ry、Rz特殊寄存器,所述第二和第三子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組;當所述通用寄存器組的bank數目為N個時,所述第二組內部寄存器地址總線具有第一、第二、…、第N+1子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw, Rx、Ry、Rz特殊寄存器,所述第二、第三、…、第N+1子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組。當所述通用寄存器組的bank數目為2個時,所述所述第三組內部寄存器地址總選具有第一、第二及第三子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為2位,用于選通PC、SP特殊寄存器,所述第二和第三子內部寄存器地址總線的位寬為8 位,用于選通1個通用寄存器組;當所述通用寄存器組的bank數目為N個時,所述第三組內部寄存器地址總線具有第一、第二、…、第N+1子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw, Rx、Ry、Rz特殊寄存器,所述第二、第三、…、第N+1子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組。
本發明的16位的RISC CPU結構,通過指令鎖存及譯碼電路產生源地址代碼和目的地址代碼以及尋址方式控制信號,并結合寄存器地址譯碼電路、片內寄存器組、ALU、數據 cache、常數發生器、內部數據總線接口等模塊,能實現靈活多變的尋址方式,如實現9種源操作數尋址方式和4種目的操作數尋址方式,從而提高16位的RISC CPU結構的編程設計的靈活性,提升指令的執行效率并節約程序代碼空間。
圖1為本發明16位的RISC CPU的結構示意圖; 圖2為圖1中數據總線輸入輸出緩沖模塊結構示意圖; 圖3為圖1中指令鎖存和譯碼模塊結構示意圖; 圖4為本發明運行RISC指令的4級流水線示意圖; 圖5為圖1中寄存器地址譯碼電路模塊結構示意圖; 圖6為圖1中與ALU相關的總線結構示意圖; 圖7為圖1中內部數據總線接口模塊示意圖; 圖8為圖1中ALU和內部寄存器組接口示意圖; 圖9為圖1中ALU和內部寄存器內的SR寄存器接口示意圖10為圖1中數據Cache模塊結構示意圖。圖11為圖1中常數發生器結構示意圖。圖12為圖1中片內寄存器組結構示意框13為圖1中地址多路器結構示意圖。。
具體實施例方式下面結合附圖詳細說明本發明的16位RISC CPU結構。如附圖1所示,本發明的16位RISC CPU結構的主要包括數據總線輸入輸出緩沖模塊、指令鎖存及譯碼模塊、寄存器地址譯碼電路模塊、16位ALU模塊、內部數據總線接口模塊、數據Cache模塊、常數發生器CONT模塊、片內寄存器組模塊(多個BANK的通用寄存器組和一個BANK的特殊寄存器組)、地址多路器模塊、以及實現上述單元模塊之間數據傳輸的內部總線 A_BUS、B_BUS、C_BUS、D_BUS、DIN_BUS、S_BUS、FI_BUS、F0_BUS, F_WBUS、F_ RBUS, I_BUS、In_BUS、R_BUS 等,內部寄存器地址總線 al_bus、a2_bus、a3_bus,和多路二選一陣列MUX_A、MUX_B、MUX_C等。下面詳細的對RISCCPU結構內的主要模塊進行詳細介紹。一、數據總線輸入輸出緩沖模塊用于實現CPU內外數據交換,其結構示意框圖如附圖2所示。附圖2中,當Data_ OEN有效時,CPU對外輸出數據,S_BUS上的數據通過輸出緩沖單元輸出到數據總線DB_BUS 上;而DB_BUS上的數據總是能通過輸入緩沖單元輸入到數據總線DIN_BUS上。二、指令鎖存和譯碼模塊用于鎖存指令代碼并對其進行譯碼產生控制CPU數據流的各個微控制信號以及送出指令代碼中的源地址代碼和目的地址代碼,其結構示意圖如附圖3所示。本發明主要列出和尋址方式相關的微控制指令,包括(1)尋址方式控制信號,控制寄存器地址譯碼;( 常數發生指令,控制常數發生器產生相應的常數;( 各二選一MUX 陣列的選擇信號,用于控制各MUX陣列選擇不同的數據通路;(4)讀寫控制信號R/Wn,控制 CPU對內部寄存器或外設存儲器的讀寫。( 其他控制指令,實現ALU的各個邏輯或算術運算功能。通過這些微控制信號的配合,可以實現本發明各種源操作數尋址方式和目的操作數尋址方式。附圖3中,采用了兩級cache對指令代碼進行鎖存,第一級發生在取指階段,將指令代碼鎖存在指令寄存器中,第二級發生在執行階段,將指令代碼中的源地址和目的地址代碼鎖存在寄存器地址cache中,利用寄存器地址cache的緩沖,可以實現RISC指令的4 級流水線,如附圖4所示。接著對附圖4做進一步的闡述,通過延時電路實現指令鎖存滯后于系統時鐘,而寄存器地址鎖存發生在指令鎖存之前,這樣在進行指令鎖存和譯碼階段,寄存器地址cache 中的內容不會發生變化,因此在對當前指令進行鎖存和譯碼時,是在進行上條指令的執行和回寫過程。三、寄存器地址譯碼電路模塊寄存器地址譯碼電路模塊,在尋址方式控制信號的作用下,對鎖存的源地址代碼和目的地址代碼進行譯碼,通過3組內部寄存器地址總線即第一、第二、第三組內部寄存器地址總線al_bus、a2_bus、a3_bus,用于選通內部寄存器組內的不同的寄存器單元,其具體工作原理如附圖5所示。對附圖5中源地址代碼和目的地址代碼的編碼方式進行解釋本發明實施例中的 RISC指令采用了 6位源地址和5位目的地址代碼的編碼方式,從而可以實現9種源操作數尋址方式和4種目的操作數尋址方式。9種源地址尋址方式和源地址代碼對應關系如下
尋址方式尋址方式控制位寄存器地址位備注寄存器模式000XXX針對通用寄存器
Rn001OOtMlO針對特殊寄存器變址模式010XXX針對通用寄存器X(Rn)011000-011針對公共寄存器相對模式 X (PC)011100變址模式特例,X (PC)絕對模式 &ABS011110指令下一行為絕對地址寄存器間接模式 @Rn100XXX針對通用寄存器,Rn為指針指向操作數寄存器減量模式 @Rn-101XXX針對通用寄存器,Rn為指針指向操作數,然后Rn減寄存器增量模式110XXX針對通用寄存器,Rn為指針指向操作數,然后Rn加@Rn+111101針對堆棧指針SP,SP為指針指向操作數,然后SP加。立即數模式 #N111100指令下一行為立即數,寄存器增量模式特例,@PC+·001111常數OH011111常數FFFFH111000常數IH常數模式111001常數2H111010常數4H111011常數8H111110常數100H111111常數200H4種目的地址尋址方式和目的地址代碼對應關系如下
權利要求
1.一種16位的RISC CPU系統結構,其特征在于,包括數據總線輸入輸出緩沖,用于傳輸CPU和外設之間的數據或指令;地址多路器,用于輸出地址數據到與CPU連接的外部存儲器;指令鎖存及譯碼電路,連接于所述數據總線輸入輸出緩沖,用于依據所述指令輸出讀寫控制信號,源地址代碼和目的地址代碼,以及尋址方式控制信號;寄存器地址譯碼電路,連接于所述指令鎖存及譯碼電路,用于依據所述尋址方式控制信號及讀寫控制信號,對所述源地址代碼及目的地址代碼進行譯碼后輸出片內寄存器組地址選通信號;片內寄存器組,連接于所述寄存器地址譯碼電路、內部數據總線接口和地址多路器,用于依據所述片內寄存器組地址選通信號,輸入或輸出數據;ALU,用于依據所述指令對輸入的數據進行算術或邏輯運算后輸出數據;數據Cache,用于數據暫存;常數發生器,用于產生常數;內部數據總線接口,用于對所述ALU、片內寄存器組、常數發生器及數據Cache之間的數據的傳輸。
2.如權利要求1所述的RISCCPU系統結構,其特征在于,所述寄存器地址譯碼電路和片內寄存器組之間通過三組內部寄存器地址總線對所述片內寄存器組進行選通。
3.如權利要求2所述的RISCCPU系統結構,其特征在于,所述片內寄存器組具有通用寄存器組和特殊寄存器組。
4.如權利要求3所述的RISCCPU系統結構,其特征在于,所述通用寄存器組的bank數目為N個,所述N為不小于1的自然數,每個bank通用寄存器組具有8個寄存器RO R7, 所述特殊寄存器組的bank數目為1個,所述特殊寄存器組具有PC、SP、SR、RW、Rx、Ry、Rz特殊寄存器。
5.如權利要求4所述的RISCCPU系統結構,其特征在于,所述三組內部寄存器地址總線具有第一組內部寄存器地址總線、第二組內部寄存器地址總線及第三組內部寄存器地址總線。
6.如權利要求5所述的RISCCPU系統結構,其特征在于,當所述通用寄存器組的bank 數目為2個時,所述第一組內部寄存器地址總線具有第一、第二及第三子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw、Rx、Ry、Rz特殊寄存器,所述第二和第三子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組;當所述通用寄存器組的bank數目為N個時,所述第一組內部寄存器地址總線具有第一、第二.....第N+1子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw, Rx, Ry, Rz特殊寄存器,所述第二、第三.....第N+1子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組,N為大于2的自然數。
7.如權利要求5所述的RISCCPU系統結構,其特征在于,當所述通用寄存器組的bank 數目為2個時,所述第二組內部寄存器地址總選具有第一、第二及第三子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw、Rx、Ry、Rz特殊寄存器,所述第二和第三子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組;當所述通用寄存器組的bank數目為N個時,所述第二組內部寄存器地址總線具有第一、第二.....第N+1子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw, Rx、Ry、Rz特殊寄存器,所述第二、第三、…、第N+1子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組,N為大于2的自然數。
8.如權利要求5所述的RISCCPU系統結構,其特征在于,當所述通用寄存器組的bank 數目為2個時,所述所述第三組內部寄存器地址總選具有第一、第二及第三子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為2位,用于選通PC、SP特殊寄存器,所述第二和第三子內部寄存器地址總線的位寬為8位,用于選通1個通用寄存器組;當所述通用寄存器組的bank數目為N個時,所述第三組內部寄存器地址總線具有第一、第二.....第N+1子內部寄存器地址總線,所述第一子內部寄存器地址總線的位寬為7位,用于選通PC、SP、SR、Rw, Rx、Ry、Rz特殊寄存器,所述第二、第三.....第N+1子內部寄存器地址總線的位寬為8位,分別用于選通1個通用寄存器組,N為大于2的自然數。
9.如權利要求5所述的RISCCPU系統結構,其特征在于,讀寫所述片內寄存器組的數據時,通過與所述片內寄存器組相連的三根內部總線來傳輸數據。
10.如權利要求9所述的RISCCPU系統結構,其特征在于,所述三跟內部總線具有第一內部總線、第二內部總線及第三內部總線。
11.如權利要求10所述的RISCCPU系統結構,其特征在于,所述片內寄存器通過所述第一內部總線及第二內部總線與所述數據cache、常數發生器及內部數據總線接口交換數據。
12.如權利要求10所述的RISCCPU系統結構,其特征在于,所述片內寄存器通過所述第三內部總線傳輸地址數據到所述地址多路器。
13.如權利要求1所述的RISCCPU系統結構,其特征在于,所述常數發生器用于產生8 個常數,所述8個常數分別為OH、1H、2H、4H、8H、100H、200H、FFFHL
14.如權利要求1所述的RISCCPU系統結構,其特征在于,所述地址多路器具有跳轉 cache,所述ALU直接輸出數據到所述跳轉cache中暫存。
15.如權利要求1所述的RISCCPU系統結構,其特征在于,所述源地址代碼為6位,所述目的地址代碼為5位。
全文摘要
本發明公開了一種16位的RISC CPU結構,它具有數據總線輸入輸出緩沖、地址多路器、指令鎖存及譯碼電路、寄存器地址譯碼電路、片內寄存器組、ALU、數據cache、常數發生器、內部數據總線接口。本發明的RISC CPU結構,通過指令鎖存及譯碼電路產生源地址代碼和目的地址代碼以及尋址方式控制信號,并結合寄存器地址譯碼電路、片內寄存器組、ALU、數據cache、常數發生器、內部數據總線接口等模塊,能實現靈活多變的尋址方式,如實現9種源操作數尋址方式和4種目的操作數尋址方式,從而提高16位的RISC CPU結構的編程設計的靈活性,提升指令的執行效率并節約程序代碼空間。
文檔編號G06F9/30GK102262611SQ20101018397
公開日2011年11月30日 申請日期2010年5月25日 優先權日2010年5月25日
發明者王會剛, 王健, 趙健, 趙海, 邱丹, 鄭明 , 陳長華, 顧曉紅, 高慶 申請人:無錫華潤矽科微電子有限公司