TW202032364A - 中央處理單元 - Google Patents
中央處理單元 Download PDFInfo
- Publication number
- TW202032364A TW202032364A TW109102956A TW109102956A TW202032364A TW 202032364 A TW202032364 A TW 202032364A TW 109102956 A TW109102956 A TW 109102956A TW 109102956 A TW109102956 A TW 109102956A TW 202032364 A TW202032364 A TW 202032364A
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- memory
- central processing
- processing unit
- address
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 56
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明提供一種實現處理速度的高速化的中央處理單元。在由RISC架構構成的CPU(1)中,由非同步式的存儲器構成指示指令存儲器(3A)的地址的PC(2A)、以及在由指令解碼器(5)解碼的指令中被指定為操作數的通用寄存器(6A)。
Description
本發明涉及一種中央處理單元。
以往,在中央處理單元(也稱為微型計算機、微處理器)中,為了指令執行的高速化,在執行一個指令時多數情況下將其分拆為多個階段來進行。
例如,在專利文獻1中,其分為如下五個階段來執行指令:從存儲器讀入指令的指令獲取(IF)階段;對在IF階段讀入的指令進行譯解的解碼(DEC)階段;根據在DEC階段譯解的指令的內容來進行算術/邏輯運算、對在IF階段會讀入的指令的地址、對存儲器進行訪問時的地址等進行運算的執行(EXE)階段;根據在DEC階段譯解的指令的內容而以在EXE階段的運算結果為地址來進行對存儲器的訪問的存儲器訪問(MA)階段;以及根據在DEC階段譯解的指令的內容而將運算數據或從存儲器獲取的數據寫入內部寄存器(Register)的回寫(WB)階段。
〔先前技術文獻〕
〔專利文獻〕
專利文獻1:日本特開2006-309454號公報
〔發明所欲解決的課題〕
通過將指令執行分拆為多個階段並設為流水線(Pipeline)處理,能夠實現由多個指令組成的處理整體的時間的縮短化,結果是能夠使指令執行高速化。然而,需要針對因分支指令等產生的流水線危害的對策,從而電路複雜化,電路規模增大。
本發明是鑒於以上的背景而完成的,其目的在於提供一種實現處理速度的高速化的中央處理單元。
〔用以解決課題的手段〕
為了解決上述問題而完成的本發明的第一方面所記載的發明是一種中央處理單元,其由精簡指令集計算機架構構成,其特徵在於,所述中央處理單元具備:指令存儲器,其保存有由多個指令組成的程序數據;程序計數器,其對所述指令存儲器的地址進行指示;指令解碼器,其對從所述指令存儲器讀出的指令進行譯解;以及通用寄存器,其能夠在通過所述指令解碼器譯解的指令中被指定為操作數,所述程序計數器以及所述通用寄存器由非同步式存儲元件構成。
本發明的第二方面所記載的發明的特徵在於:在本發明的第一方面所記載的發明的基礎上,從所述指令存儲器讀出的指令直接輸入至所述指令解碼器。
本發明的第三方面所記載的發明的特徵在於:在本發明的第一方面或第二方面所記載的基礎上,所述指令存儲器由同步式存儲元件構成。
〔發明效果〕
如以上說明的那樣,根據本發明,由於程序計數器以及通用寄存器由非同步式存儲元件構成,因此在將數據存儲到它們中時不需要時鐘信號,能夠至少削減回寫(Write back)階段。因而,能夠有助於CPU1中的指令執行循環數的削減,並能夠實現處理速度的高速化。
以下,參照附圖對本發明的一個實施方式中的本發明的中央處理單元(也稱為微型計算機或微處理器)進行說明。首先,參照圖4說明以往的中央處理單元(以下,稱為CPU)100的構成。CPU100由精簡指令集計算機體系架構(RISC架構(Architecture))構成,設為作為具體的硬件由例如FPGA(Field Programmable Gate Array:現場可編程門陣列)構成。
CPU100具備程序計數器(PC)2、程序存儲器3、指令寄存器(IR)4、指令解碼器5、通用寄存器6、數據鎖存器7、運算部8、地址計算部9,數據存儲器10、系統數據總線11、CSR寄存器12、中斷控制部13、以及計時器14。
PC2是示出(指示)從程序存儲器3讀出的指令的地址的寄存器。PC2基於地址計算部9的結果而保存增量(Increment)值或規定的地址值。此外,在本實施方式中,PC2以16位(bit)構成。
在本實施方式中,程序存儲器(指令存儲器)3是具有0000H(16進制)號地址~7FFFH號地址的地址空間的16位數據的存儲器。在程序存儲器3中保存有由CPU100所執行的多個指令構成的程序數據。另外,保存的指令格式可以是RISC型的CPU中常見的固定長度指令格式,也可以使可變長度指令格式的程序數據與程序存儲器3的保存格式一致而轉換為固定長度指令格式來進行保存。
IR4是對在PC2中所示出的地址中保存的指令進行保存的寄存器。存儲在IR4中的指令被輸出到指令解碼器5。指令解碼器5對從IR4輸出的指令進行譯解(Decode,解碼),並對通用寄存器6、運算部8、地址計算部9輸出作為譯解結果的控制信號等。
通用寄存器6是對由運算部8、地址計算部9運算的數據、運算結果進行存儲的32位寬度的寄存器,在本實施方式中,具有X0~X31的32條。通用寄存器6中所包含的X0~X31的寄存器是能夠在指令中被指定為源操作數或目標操作數的寄存器。數據鎖存器7對從通用寄存器6讀出的數據進行鎖存。
運算部8具備算術邏輯運算器(ALU)、獲取運算結果的鎖存器等,基於從指令解碼器5輸出的控制信號進行各種算術運算、邏輯運算等。另外,運算部8除了ALU之外,還可以具備乘法器、除法器等。地址計算部9基於從指令解碼器5輸出的控制信號等來進行訪問數據存儲器的地址的計算。即,運算部8以及地址計算部9作為根據由指令解碼器5譯解的結果來執行該指令的指令執行部而發揮功能。
在本實施方式中,數據存儲器10是具有從0000H號地址~01FFH號地址的地址空間的32位數據的存儲器。數據存儲器10供基於由地址計算部9計算出的地址而寫入由運算部8運算出的結果。另外,供基於由地址計算部9計算出的地址而讀出所保存的數據。讀出的數據經由系統數據總線11向通用寄存器6輸出。即,數據存儲器10供為了指令執行部的執行結果的寫入或指令執行而讀出數據。
系統數據總線11是將運算部6、通用寄存器8、數據鎖存器7、數據存儲器10等相互連接的數據總線。CSR寄存器12是能夠將CPU100內的狀態讀入或將設定變更的寄存器。中斷控制部13供中斷請求信號(外部中斷)輸入。中斷控制部13基於輸入的中斷請求信號而向系統數據總線11輸出中斷信號。計時器14每隔設定的時間週期向系統數據總線11輸出中斷信號。
在上述的構成中,程序存儲器3、通用寄存器6、數據存儲器10由設置在FPGA的設備內的同步式的存儲元件、例如同步SRAM(Static Random Access Memory:靜態隨機存取存儲器)構成。
CPU100形成為:直到從由PC2所示出的程序存儲器3的地址讀出的指令被保存到IR4為止,為IF(指令獲取)階段;直到基於通過指令解碼器5對保存在IF4中的指令進行解碼的結果而從通用寄存器6讀出並將數據保存至數據鎖存器7為止,為DE(解碼)階段;直到基於通過指令解碼器5進行解碼的結果而通過運算部8、地址計算部9進行運算、計算等為止,為EX(執行)階段。
接下來,直到基於通過地址計算部9計算出的地址而從數據存儲器10讀出數據或者寫入數據為止,為存儲器訪問(MA)階段;直到運算部8的運算結果向通用寄存器6的寫入、以及PC2的更新為止,為回寫(WB)階段。
圖5表示上述的各階段與時鐘信號的關係。如圖5所示,由於CPU100對各階段以一個循環來執行,因此為了執行一個指令而需要五個循環。
圖1表示本發明的一個實施方式所涉及的CPU1。對與圖4相同的部分標注相同的附圖標記並省略說明。
在圖1中,相對於圖4,首先,刪除不必要的寄存器(數據鎖存器7等),以使DE階段~MA階段為止以一個循環進行動作。接下來,刪除IR4,以使IF階段~DE階段以一個循環進行動作。即,從程序存儲器3A讀出的指令直接輸入至指令解碼器5。即,指令解碼器5直接從程序存儲器3A讀取指令(程序數據)。在本發明中,“直接”是指如圖1那樣不經由與IR4等時鐘信號同步的電路而輸入至指令解碼器5。
通過刪除IR4,從而IF階段不因IR4而被分拆,因此IF階段~MA階段為止以一個循環進行動作。
另外,圖1的程序存儲器3A從CPU1啟動前預先存儲有程序數據。即,成為如下狀態,能夠在CPU1的電源接通而啟動之後不訪問外部的存儲器等而立即讀出程序存儲器3A中保存的指令數據。
然後,PC2A以及通用寄存器6A由非同步式存儲元件構成。在本實施方式中,例如由RS觸發器構成,但也可以是非同步式的SRAM。由此,PC2A以及通用寄存器6A不需要與時鐘信號同步地進行動作,因此不需要分拆WB階段,而從IF階段到WB階段以一個循環進行動作。
因此,通過如圖1那樣構成,如圖2所示,CPU1能夠以一個循環執行一個指令。
根據本實施方式,由RISC架構構成的CPU1由非同步式的存儲器構成指示指令存儲器3A的地址的PC2A、以及在由指令解碼器5解碼的指令中被指定為操作數的通用寄存器6A。由此,在向成為這些階段的切分處的PC2A、通用寄存器6A中存儲數據時不需要時鐘信號,從而能夠削減WB階段。因而,能夠有助於CPU1中的指令執行循環數的削減,能夠實現指令執行的高速化。特別是如圖1所示,在構成為以一個循環執行一個指令時有用,若以一個循環執行一個指令,則不需要使用流水線處理,從而不需要尋求流水線危害等的對策。
另外,CPU1由於從程序存儲器3A讀出的指令直接輸入至指令解碼器5,因此不需要IR4,IF階段和DE階段不被分拆,從而能夠有助於CPU1中的指令執行循環數的削減。
另外,由於指令存儲器以及數據存儲器由同步式存儲元件構成,因此能夠通過FPGA預先具有的存儲器來構成這些存儲器。另外,由於這些存儲器由同步式存儲元件構成,因此能夠使CPU1整體與時鐘信號同步。
進一步,在本實施方式中,由於乘法運算也能夠以一個時鐘進行運算,因此,在需要時間這一情況成為問題的除法運算中,能夠有效地利用基於倒數的乘法運算。
此外,圖1所示的CPU1以一個循環進行一個指令的執行,但例如也可以如圖3所示那樣將IR4配置在程序存儲器3A與指令解碼器5之間。在該情況下,雖然以兩個循環執行一個指令,但是與以往的圖4的狀態相比,能夠削減執行一個指令所需的循環數。
另外,上述的實施方式以由FPGA構成為前提而進行了說明,但也可以構成為ASIC(Application Specific Integrated Circuit:專用集成電路)。
此外,本發明並不限定於上述實施方式。即,本領域技術人員能夠按照以往公知的知識,在不脫離本發明的主旨的範圍內進行各種變形來實施本發明。即使通過該變形,只要具備本發明的中央處理單元的構成,當然也包含在本發明的範疇內。
1:CPU(中央處理單元)
2A:程序計數器
3:程序存儲器(指令存儲器)
3A:程序存儲器(指令存儲器)
5:指令解碼器
6A:通用寄存器
8:運算部(指令執行部)
9:地址計算部(指令執行部)
10:數據存儲器。
11:系統數據總線
12 :CSR寄存器
13:中斷控制部
14:計時器
圖1是表示本發明的一個實施方式所涉及的CPU的框圖。
圖2表示圖1所示的CPU的指令執行時的階段動作的時序圖。
圖3是表示本發明的其他實施方式所涉及的CPU的框圖。
圖4是表示以往的CPU的框圖。
圖5是表示圖4所示的CPU的指令執行時的階段動作的時序圖。
1:CPU(中央處理單元)
2A:程序計數器
3A:程序存儲器(指令存儲器)
5:指令解碼器
6A:通用寄存器
8:運算部(指令執行部)
9:地址計算部(指令執行部)
10:數據存儲器
11:系統數據總線
12:CSR寄存器
13:中斷控制部
14:計時器
Claims (3)
- 一種中央處理單元,其由精簡指令集計算機架構構成,其特徵在於, 所述中央處理單元具備: 指令存儲器,其保存有由多個指令組成的程序數據; 程序計數器,其對所述指令存儲器的地址進行指示; 指令解碼器,其對從所述指令存儲器讀出的指令進行譯解;以及 通用寄存器,其能夠在通過所述指令解碼器譯解的指令中被指定為操作數, 所述程序計數器以及所述通用寄存器由非同步式存儲元件構成。
- 如請求項1所述的中央處理單元,其中從所述指令存儲器讀出的指令直接輸入至所述指令解碼器。
- 如請求項1或2所述的中央處理單元,其中所述指令存儲器由同步式存儲元件構成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019033586A JP7384374B2 (ja) | 2019-02-27 | 2019-02-27 | 中央演算処理装置 |
JP2019-033586 | 2019-02-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202032364A true TW202032364A (zh) | 2020-09-01 |
TWI862545B TWI862545B (zh) | 2024-11-21 |
Family
ID=72240211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109102956A TWI862545B (zh) | 2019-02-27 | 2020-01-31 | 中央處理單元 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12111788B2 (zh) |
JP (1) | JP7384374B2 (zh) |
TW (1) | TWI862545B (zh) |
WO (1) | WO2020175074A1 (zh) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4347566A (en) * | 1978-12-11 | 1982-08-31 | Tokyo Shibaura Denki Kabushiki Kaisha | Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip |
US5752070A (en) * | 1990-03-19 | 1998-05-12 | California Institute Of Technology | Asynchronous processors |
JPH0440525A (ja) * | 1990-06-06 | 1992-02-10 | Seiko Epson Corp | 並列処理型マイクロプロセッサ |
JPH04199331A (ja) * | 1990-11-29 | 1992-07-20 | Hitachi Ltd | マイクロコンピュータ |
GB9114513D0 (en) * | 1991-07-04 | 1991-08-21 | Univ Manchester | Condition detection in asynchronous pipelines |
JP2539974B2 (ja) * | 1991-11-20 | 1996-10-02 | 富士通株式会社 | 情報処理装置におけるレジスタの読出制御方式 |
JPH0721034A (ja) * | 1993-06-28 | 1995-01-24 | Fujitsu Ltd | 文字列複写処理方法 |
US5603047A (en) * | 1995-10-06 | 1997-02-11 | Lsi Logic Corporation | Superscalar microprocessor architecture |
AU8495098A (en) * | 1997-07-16 | 1999-02-10 | California Institute Of Technology | Improved devices and methods for asynchronous processing |
US6301655B1 (en) * | 1997-09-15 | 2001-10-09 | California Institute Of Technology | Exception processing in asynchronous processor |
US6496920B1 (en) * | 1998-03-18 | 2002-12-17 | Qiuzhen Zou | Digital signal processor having multiple access registers |
WO1999047999A1 (en) * | 1998-03-18 | 1999-09-23 | Qualcomm Incorporated | A digital signal processor |
JP4199334B2 (ja) | 1998-09-04 | 2008-12-17 | Necトーキン株式会社 | 圧電トランス装置及びその駆動方法 |
JP2002230979A (ja) * | 2001-01-31 | 2002-08-16 | Sanyo Electric Co Ltd | 半導体メモリおよびその制御回路 |
JP4207151B2 (ja) * | 2003-03-17 | 2009-01-14 | セイコーエプソン株式会社 | 非同期プロセッサを備えた通信装置及びその通信方法 |
JP4889235B2 (ja) | 2005-04-27 | 2012-03-07 | 株式会社デンソー | プログラム制御プロセッサ |
US20060179273A1 (en) * | 2005-02-09 | 2006-08-10 | Advanced Micro Devices, Inc. | Data processor adapted for efficient digital signal processing and method therefor |
US20110022821A1 (en) * | 2009-03-09 | 2011-01-27 | Yunsi Fei | System and Methods to Improve Efficiency of VLIW Processors |
JP4862100B1 (ja) | 2011-03-25 | 2012-01-25 | 好一 北岸 | 中央演算処理装置及びマイクロコンピュータ |
JP7021034B2 (ja) | 2018-09-18 | 2022-02-16 | 株式会社東芝 | 半導体装置 |
-
2019
- 2019-02-27 JP JP2019033586A patent/JP7384374B2/ja active Active
-
2020
- 2020-01-31 TW TW109102956A patent/TWI862545B/zh active
- 2020-02-06 US US17/432,654 patent/US12111788B2/en active Active
- 2020-02-06 WO PCT/JP2020/004528 patent/WO2020175074A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220197853A1 (en) | 2022-06-23 |
US12111788B2 (en) | 2024-10-08 |
JP7384374B2 (ja) | 2023-11-21 |
TWI862545B (zh) | 2024-11-21 |
WO2020175074A1 (ja) | 2020-09-03 |
JP2020140290A (ja) | 2020-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI476597B (zh) | 資料處理裝置及半導體積體電路裝置 | |
TWI847670B (zh) | 使用矩陣乘法指令的設備 | |
KR20040016829A (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
KR20000076310A (ko) | 리스크 구조를 갖는 8 비트 마이크로콘트롤러 | |
US5410721A (en) | System and method for incrementing a program counter | |
US20170161069A1 (en) | Microprocessor including permutation instructions | |
JP4073721B2 (ja) | データ処理装置 | |
US7539847B2 (en) | Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages | |
TWI862545B (zh) | 中央處理單元 | |
US20060277425A1 (en) | System and method for power saving in pipelined microprocessors | |
KR100188374B1 (ko) | 연산처리장치 | |
JP3570287B2 (ja) | マイクロコンピュータ | |
JP3740321B2 (ja) | データ処理装置 | |
JP2001014161A (ja) | プログラマブルコントローラ | |
US20090063821A1 (en) | Processor apparatus including operation controller provided between decode stage and execute stage | |
JPH1173301A (ja) | 情報処理装置 | |
JP2721610B2 (ja) | プログラマブルコントローラ | |
JP2522564B2 (ja) | プログラマブルコントロ―ラ | |
JPS6242301B2 (zh) | ||
JP2738683B2 (ja) | データ処理装置 | |
JPS63293638A (ja) | データ処理装置 | |
JP4382076B2 (ja) | データ処理装置 | |
JP2002024012A (ja) | マイクロプロセッサ | |
JPH10198550A (ja) | シフタ回路及びマイクロプロセッサ | |
JP2000081973A (ja) | データ処理装置及びデータ処理システム |