WO2020175074A1 - 中央演算処理装置 - Google Patents
中央演算処理装置 Download PDFInfo
- Publication number
- WO2020175074A1 WO2020175074A1 PCT/JP2020/004528 JP2020004528W WO2020175074A1 WO 2020175074 A1 WO2020175074 A1 WO 2020175074A1 JP 2020004528 W JP2020004528 W JP 2020004528W WO 2020175074 A1 WO2020175074 A1 WO 2020175074A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instruction
- memory
- central processing
- processing unit
- data
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 54
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
Definitions
- the present invention relates to a central processing unit.
- a central processing unit also referred to as a microcomputer or a microprocessor
- one instruction is often divided into a plurality of stages for execution.
- an instruction fetch ( ⁇ ) stage that reads an instruction from a memory
- a decode ( ⁇ ) stage that decodes the instruction that is read in the ⁇ stage
- a 0 ⁇ the instruction that is decoded in three stages Arithmetic according to the contents ⁇ Execution to calculate the address of the instruction to be read in the logical operation or the stage and the address when accessing the memory, etc.
- (Minami) stage, Kuchimi ⁇ Depending on the contents of the instruction decoded in the stage Memory access (1 ⁇ /1 8) stage, which accesses the memory by using the operation result in the X stage as an address, and the operation data or the memory is loaded according to the contents of the instruction read in the 0 stage.
- the instruction is executed in five stages such as a write-back (stage in which the data is written to the internal register.
- Patent Document 1 Japanese Unexamined Patent Publication No. 20 0 6—30 9 4 54
- the present invention has been made in view of the above background, and an object of the present invention is to provide a central processing unit with a high processing speed.
- the invention according to claim 1 made in order to solve the above-mentioned problem, is a central processing unit configured with a reduced instruction set computer architecture, in which program data including a plurality of instructions is stored.
- a central processing unit comprising: a register; and the program counter and the general-purpose register configured by an asynchronous storage element.
- the invention described in claim 2 is the invention described in claim 1, wherein the instruction read from the instruction memory is directly input to the instruction decoder.
- the instruction memory is composed of a synchronous memory element.
- the program counter and the general-purpose register are composed of asynchronous storage elements, a clock signal is not required for storing data in them, and at least a write signal is required.
- the backstage can be reduced. Therefore, it can contribute to the reduction of the number of instruction execution cycles in II 1 and increase the processing speed.
- Fig. 1 is a block diagram showing II according to an embodiment of the present invention.
- FIG. 2 is a Timing Nguchiya _ Bok showing a stage operation when the instruction execution of the indicated ⁇ II in Figure 1.
- FIG. 3 is a block diagram showing a circle II according to another embodiment of the present invention.
- FIG. 4 is a block diagram showing a conventional CPU.
- FIG. 5 is a Timing Nguchiya _ Bok showing a stage operation when the instruction execution of the CPU shown in FIG.
- a central processing unit also referred to as a micro computer or a microprocessor
- CPU central processing unit
- the CPU 100 is composed of a reduced instruction set computer architecture (R ISC architecture), and concrete hardware is assumed to be composed of, for example, an F PGA (Field Programmable Gate Array).
- R ISC architecture reduced instruction set computer architecture
- F PGA Field Programmable Gate Array
- the CPU 100 includes a program counter (PC) 2, a program memory 3, an instruction register (R) 4, an instruction decoder 5, a general-purpose register 6, a data latch 7, and an arithmetic unit 8.
- PC program counter
- R instruction register
- An address calculation section 9, a data memory 10, a system data bus 11, a CSR register 12, an interrupt control section 13 and a timer 14 are provided.
- the PC 2 is a register indicating (instructing) the address of the instruction read from the program memory 3.
- the PC 2 stores an increment value or a predetermined address value based on the result of the address calculation unit 9. It should be noted that, in the present embodiment, it is composed of PC216 bits.
- the program memory (instruction memory) 3 is 0000 H (1
- the program memory 3 stores program data composed of a plurality of instructions executed by CPU 100.
- the instruction format to be stored may be a fixed-length instruction format, which is often found in R-SC type CPUs, or it may be fixed by matching the program data in variable-length instruction format with the storage format in program memory 3. It may be converted into a long instruction format and stored.
- Instruction decoder 5 is I
- the instruction output from is decoded (decoded) and the control signal etc. as the decoding result is output to the general-purpose register 6, the operation unit 8, and the address calculation unit 9.
- the general-purpose register 6 is a 32-bit wide register that stores data calculated by the calculation unit 8 and the address calculation unit 9 and a calculation result.
- the general-purpose register 6 is a register of X 0 to X 31. It has 3 2 pieces.
- the registers ⁇ to X31 included in the general-purpose register 6 are registers that can be specified as a source operand or a destination operation in an instruction.
- the data latch 7 is a register that latches the data read from the general-purpose register 6.
- the arithmetic unit 8 is an arithmetic logic unit. And a latch for fetching the operation result, and perform various arithmetic operations and logical operations based on the control signal output from the instruction decoder 5. Further, the calculation unit 8 may include a multiplier, a divider and the like in addition to 1_II.
- the address calculator 9 calculates an address for accessing the data memory based on a control signal output from the instruction decoder 5. That is, the operation unit 8 and the address calculation unit 9 function as an instruction execution unit that executes the instruction according to the result decoded by the instruction decoder 5.
- the data memory 10 is a memory of 32 bit data having an address space from 0 0 0 0 1 to 1 0 1 1 to 1.
- the result calculated by the calculation unit 8 based on the address calculated by the address calculation unit 7 is written.
- the stored data is read based on the address calculated by the address calculation unit 9.
- the read data is output to general-purpose register 6 via system data bus 1 1. That is, data is read from the data memory 10 for writing the execution result of the instruction execution unit or executing the instruction.
- the system data bus 11 is a data bus that connects the arithmetic unit 6, the general-purpose register 8, the data latch 9, the data memory 10 and the like to each other.
- Register 12 is used to read the status in ⁇ 11100 and change the setting. It is a register that can.
- An interrupt request signal (external interrupt) is input to the interrupt controller 13.
- the interrupt controller 13 outputs an interrupt signal to the system data bus 11 based on the input interrupt request signal.
- the timer 14 outputs an interrupt signal to the system data bus 1 1 every set time period.
- Reference numeral 10 is composed of a synchronous storage element provided in the F P G A device, for example, a synchronous S R AM (Static Random Access Memory).
- a synchronous S R AM Static Random Access Memory
- the CPU 100 stores in the IF (instruction fetch) stage, IF 4 until the instruction read from the address of the program memory 3 indicated by PC 2 is stored in the R 4 Based on the result of decoding the specified instruction by the instruction decoder 5, it is the DE (decode) stage until the data is read from the general-purpose register 6 and stored in the data latch 9. Based on the result of decoding by the instruction decoder 5, the operation unit 8 The EX (execution) step is until the address calculation unit 9 calculates and calculates.
- the memory access (MA) stage is from reading the data from 0 to writing the data
- the write-back (W B) stage is from the operation result of the operation unit 8 to the general-purpose register 6 and the update of P C 2.
- Fig. 5 shows the relationship between the above-mentioned stages and clock signals. As shown in Figure 5, CPU100 executes each stage in one cycle, so five cycles are required to execute one instruction.
- FIG. 1 shows C P U 1 according to one embodiment of the present invention.
- the same parts as those in FIG. 4 are designated by the same reference numerals and the description thereof will be omitted.
- Fig. 1 first deletes unnecessary registers (such as data latch 9) so that the DE stage to the MA stage can operate in one cycle.
- the R4 is deleted so that the stage to DE stage can be operated in one cycle. That is, the instructions read from program memory 3 are ⁇ 2020/175074 6 ⁇ (: 170? 2020 /004528
- Input to decoder 5 directly. That is, the instruction decoder 5 directly reads the instruction (program data) from the instruction program memory 38.
- “direct” means, as shown in FIG. It means that it is input to the instruction decoder 5 without going through a circuit synchronized with the clock signal such as.
- the program data is already stored before the start of ⁇ II 1.
- the instruction data stored in the program memory 38 can be immediately read out without accessing an external memory or the like after the II 1 power supply is turned on and started.
- the 28 and the general-purpose register 68 are configured by an asynchronous storage element.
- asynchronous storage element for example, three flip-flops are used, but asynchronous This eliminates the need for the 028 and general-purpose register 68 to operate in synchronization with the clock signal, so there is no need to divide the Mitsu stage, and the Mori stage to the Mitsu stage can operate in one cycle. Become.
- the non-synchronous memory comprises a general-purpose register 68 which is designated as an operand in an instruction decoded by the instruction decoder 5 and an instruction memory 3 address.
- the clock signal is not required when storing data in the 028 and the general-purpose register 68 that are the breaks in these stages, and the number of stages can be reduced. Therefore, it can contribute to the reduction of the number of instruction execution cycles in II 1 and can accelerate the instruction execution. This is especially useful when configuring one instruction to execute in one cycle, as shown in Figure 1. If one instruction is executed in one cycle, there is no need to use pipeline processing, and there is no pipeline hazard. Etc. Eliminates the need to take measures.
- CPU 1 directly inputs the instruction read from the program memory 3 to the instruction decoder 5, the R 4 is unnecessary, and the F stage and the DE stage are not divided. , CPU 1 can reduce the number of instruction execution cycles.
- the instruction memory and the data memory are configured by the synchronous storage element, it is possible to configure these memories by the memories that the F PGA has in advance. Further, since these memories are composed of the synchronous storage elements, the entire CPU 1 can be synchronized with the clock signal.
- the multiplication can also be performed in one clock, and therefore the multiplication operation by the reciprocal can be effectively used for the division, which has been a problem of requiring time.
- the CPU 1 shown in FIG. 1 executes one instruction in one cycle, for example, as shown in FIG. 3, the R4 is placed between the program memory 3 and the instruction decoder 5. You may arrange. In this case, one instruction is executed in two cycles, but it is possible to reduce the number of cycles required to execute one instruction compared to the conventional state of Fig. 4.
- AS IC Application Specific Integrated Circuit
- the present invention is not limited to the above embodiment. That is, a person skilled in the art can carry out various modifications according to the conventionally known knowledge without departing from the gist of the present invention. As long as such a modification still has the configuration of the central processing unit of the present invention, it is of course included in the scope of the present invention.
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アーキテクチャで構成されているCPU1において、命令メモリ3のアドレスを指示するPC2A及び、命令デコーダ5でデコードされる命令においてオペランドとして指定される汎用レジスタ6Aを非同期式のメモリで構成している。
Description
\¥0 2020/175074 1 卩(:17 2020 /004528 明 細 書
発明の名称 : 中央演算処理装置
技術分野
[0001 ] 本発明は、 中央演算処理装置に関する。
背景技術
[0002] 従来、 中央演算処理装置 (マイクロコンピュータやマイクロプロセッサと もいう) においては、 命令実行の高速化のため 1つの命令の実行に際して複 数のステージに分割して行われることが多い。
[0003] 例えば、 特許文献 1では、 メモリから命令を読み込む命令フェッチ (丨 ) ステージ、 丨 ステージで読み込んだ命令を解読するデコード (〇巳〇) ステージ、 0巳(3ステージで解読された命令の内容に応じて算術 ·論理演算 や丨 ステージで読み込むべき命令のアドレスやメモリへアクセスする際の アドレス等を演算する実行 (巳乂巳) ステージ、 口巳〇ステージで解読され た命令の内容に応じて巳 X巳ステージでの演算結果をアドレスとしてメモリ へのアクセスを行うメモリアクセス (1\/1八) ステージ、 0巳〇ステージで解 読された命令の内容に応じて演算データもしくはメモリから取り込んだデー 夕を内部レジスタに書き込むライ トバック ( ステージといった 5つの ステージに分けて命令が実行される。
先行技術文献
特許文献
[0004] 特許文献 1 :特開 2 0 0 6— 3 0 9 4 5 4号公報
発明の概要
発明が解決しようとする課題
[0005] 命令実行を複数のステージに分割し、 パイプライン処理とすることで、 複 数命令からなる処理全体の時間の短縮化が図れ、 結果として命令実行を高速 化できる。 しかしながら、 分岐命令等により発生するパイプラインハザード への対策が必要となり、 回路が複雑化し、 回路規模が増大してしまう。
〇 2020/175074 2 卩(:170? 2020 /004528
[0006] 本発明は、 以上の背景に鑑みてなされたものであり、 処理速度の高速化を 図った中央演算処理装置を提供することを目的としている。
課題を解決するための手段
[0007] 上述した課題を解決するためになされた請求項 1 に記載された発明は、 縮 小命令セッ トコンピュータアーキテクチャで構成されている中央演算処理装 置において、 複数の命令からなるプログラムデータが格納される命令メモリ と、 前記命令メモリのアドレスを指示するプログラムカウンタと、 前記命令 メモリから読み出された命令を解読する命令デコーダと、 前記命令デコーダ で解読される命令においてオペランドとして指定可能な汎用レジスタと、 を 備え、 前記プログラムカウンタ及び前記汎用レジスタが非同期式記憶素子で 構成されていることを特徴とする中央演算処理装置である。
[0008] 請求項 2に記載された発明は、 請求項 1 に記載された発明において、 前記 命令メモリから読み出された命令は前記命令デコーダに直接入力されること を特徴とする。
[0009] 請求項 3に記載された発明は、 請求項 1 または 2に記載された発明におい て、 前記命令メモリは、 同期式記憶素子で構成されていることを特徴とする 発明の効果
[0010] 以上説明したように本発明によれば、 プログラムカウンタ及び汎用レジス 夕が非同期式記憶素子で構成されているので、 これらにデータを格納する際 にクロック信号を必要とせず、 少なくともライ トバックステージを削減する ことができる。 したがって、 〇 II 1 における命令実行サイクル数の削減に 資することができ、 処理速度の高速化を図ることができる。
図面の簡単な説明
[001 1] [図 1]本発明の一実施形態にかかる〇 IIを示すブロック図である。
[図 2]図 1 に示された〇 IIの命令実行時におけるステージ動作を示すタイミ ングチヤ _卜である。
[図 3]本発明の他の実施形態にかかる〇 IIを示すブロック図である。
[図 4]従来の C P Uを示すブロック図である。
[図 5]図 4に示された C P Uの命令実行時におけるステージ動作を示すタイミ ングチヤ _卜である。
発明を実施するための形態
[0012] 以下、 本発明の一実施形態における本発明の中央演算処理装置 (マイクロ コンビユータ又はマイクロプロセッサともいう) を図面を参照して説明する 。 まず、 図 4を参照して、 従来の中央演算処理装置 (以下、 C P U) 1 00 の構成を説明する。 C P U 1 00は、 縮小命令セッ トコンビユータアーキテ クチャ (R I SCアーキテクチャ) で構成されており、 具体的なハードウエ アとしては、 例えば F PGA (Field Programmable Gate Array) で構成され ているものとする。
[0013] C P U 1 00は、 プログラムカウンタ (PC) 2と、 プログラムメモリ 3 と、 命令レジスタ (丨 R) 4と、 命令デコーダ 5と、 汎用レジスタ 6と、 デ —タラッチ 7と、 演算部 8と、 アドレス計算部 9と、 データメモリ 1 0と、 システムデータバス 1 1 と、 CS Rレジスタ 1 2と、 割り込み制御部 1 3と 、 タイマ 1 4と、 を備えている。
[0014] PC2は、 プログラムメモリ 3から読み出す命令のアドレスを示す (指示 する) レジスタである。 PC 2は、 アドレス計算部 9の結果に基づいてイン クリメント値又は所定のアドレス値が格納される。 なお、 本実施形態では、 PC2 1 6ビッ トで構成されている。
[0015] プログラムメモリ (命令メモリ) 3は、 本実施形態では、 0000 H (1
6進数) 番地〜 7 F F F H番地までのアドレス空間を有する 1 6ビッ トデー 夕のメモリである。 プログラムメモリ 3には、 C P U 1 00で実行される複 数の命令からなるプログラムデータが格納されている。 また、 格納される命 令形式は、 R 丨 SC型の C P Uで多くみられる固定長命令形式であってもよ いし、 可変長命令形式のプログラムデータをプログラムメモリ 3の格納形式 に合致させて固定長命令形式に変換して格納するようにしてもよい。
[0016] 丨 R4は、 PC 2で示されたアドレスに格納されている命令が格納される
〇 2020/175074 4 卩(:170? 2020 /004528
レジスタである。 丨
4に格納された命令は命令デコーダ 5に出力される。 命令デコーダ 5は、 I
から出力された命令を解読 (デコード) し、 汎用 レジスタ 6、 演算部 8、 アドレス計算部 9に対して解読結果としての制御信 号等を出力する。
[0017] 汎用レジスタ 6は、 演算部 8やアドレス計算部 9で演算するデータや演算 結果が格納される 3 2ビッ ト幅のレジスタであり、 本実施形態では、 X 0〜 乂3 1 までの 3 2本を有している。 汎用レジスタ 6に含まれる乂〇〜 X 3 1 のレジスタは命令においてソースオペランド又はデイステイネーシヨンオペ ランドに指定することができるレジスタである。 データラッチ 7は、 汎用レ ジスタ 6から読み出されたデータをラッチするレジスタである。
[0018] 演算部 8は、 算術論理演算器
や演算結果をフェッチするラッチ 等を備え、 命令デコーダ 5から出力される制御信号に基づいて各種算術演算 や論理演算等を行う。 また、 演算部 8は、 1_ IIに加えて乗算器や除算器等 を備えてもよい。 アドレス計算部 9は、 命令デコーダ 5から出力される制御 信号等に基づいてデータメモリへアクセスするアドレスの計算を行う。 即ち 、 演算部 8及びアドレス計算部 9は、 命令デコーダ 5で解読された結果に応 じて当該命令を実行する命令実行部として機能する。
[0019] データメモリ 1 0は、 本実施形態では、 0 0 0 0 1~1番地〜 0 1 1~1番地 までのアドレス空間を有する 3 2ビッ トデータのメモリである。 データメモ リ 1 0は、 アドレス計算部 7で算出されたアドレスに基づいて、 演算部 8で 演算された結果が書き込まれる。 また、 アドレス計算部 9で算出されたアド レスに基づいて、 格納されているデータが読み出される。 読み出されたデー 夕はシステムデータバス 1 1 を介して汎用レジスタ 6へ出力される。 即ち、 データメモリ 1 0は、 命令実行部の実行結果の書き込み又は命令実行のため データが読み出される。
[0020] システムデータバス 1 1は、 演算部 6、 汎用レジスタ 8、 データラッチ 9 、 データメモリ 1 0等を互いに接続するデータバスである。
レジスタ 1 2は、 〇 11 1 0 0内のステータスを読み込んだり、 設定を変更すること
ができるレジスタである。 割り込み制御部 1 3は、 割り込み要求信号 (外部 割り込み) が入力される。 割り込み制御部 1 3は、 入力された割り込み要求 信号に基づいて、 割り込み信号をシステムデータバス 1 1へ出力する。 タイ マ 1 4は、 設定された時間周期毎に割り込み信号をシステムデータバス 1 1 へ出力する。
[0021 ] 上述した構成では、 プログラムメモリ 3、 汎用レジスタ 6、 データメモリ
1 0は、 F P G Aのデバイス内に設けられている同期式の記憶素子、 例えば シンクロナス S R A M (Stat i c Random Access Memory) で構成されている。
[0022] C P U 1 0 0は、 P C 2で示されたプログラムメモリ 3のアドレスから読 み出された命令が丨 R 4に格納されるまでが丨 F (命令フェッチ) ステージ 、 I F 4に格納されている命令を命令デコーダ 5でデコードした結果に基づ いて汎用レジスタ 6から読み出してデータラッチ 9にデータを格納するまで が D E (デコード) ステージ、 命令デコーダ 5でデコードした結果に基づい て演算部 8やアドレス計算部 9で演算や計算等を行うまでが E X (実行) ス テ _ジとなる。
[0023] 次に、 アドレス計算部 9で計算されたアドレスに基づいてデータメモリ 1
0からデータを読出す、 又はデータを書き込むまでがメモリアクセス (M A ) ステージ、 演算部 8の演算結果の汎用レジスタ 6への書き込み、 及び P C 2の更新までがライ トバック (W B) ステージとなる。
[0024] 図 5に上記した各ステージとクロック信号との関係を示す。 図 5に示した ように、 C P U 1 0 0は各ステージを 1サイクルで実行するため、 1命令を 実行するために 5サイクルが必要となる。
[0025] 図 1 に本発明の一実施形態にかかる C P U 1 を示す。 図 4と同一部分には 、 同一符号を付して説明を省略する。
[0026] 図 1は、 図 4に対して、 まず、 D Eステージ〜 M Aステージまでを 1サイ クルで動作するように不要なレジスタ (データラッチ 9等) を削除している 〇 次に、 丨 Fステージ〜 D Eステージを 1サイクルで動作するように 丨 R 4 を削除している。 つまり、 プログラムメモリ 3から読み出された命令は命令
〇 2020/175074 6 卩(:170? 2020 /004528
デコーダ 5に直接入力される。 即ち、 命令デコーダ 5が直接命プログラムメ モリ 3八から命令 (プログラムデータ) を読み取っている。 本発明において 「直接」 とは、 図 1のように、 丨
等のクロック信号に同期する回路を介 さずに命令デコーダ 5に入力されることを意味する。
[0028] また、 図 1のプログラムメモリ 3八は、 プログラムデータが〇 II 1の起 動前から予め格納済みとなっている。 即ち、 〇 II 1の電源がオンして起動 してから外部のメモリ等にアクセスすることなく直ぐにプログラムメモリ 3 八に格納された命令データを読み出すことが可能な状態となっている。
[0029] そして、 〇 2八及び汎用レジスタ 6八を非同期式の記憶素子で構成する 。 本実施形態では、 例えば 3フリップフロップで構成しているが、 非同期
これで、 〇 2八及び汎用レジスタ 6八がク ロック信号に同期して動作する必要が無くなるので、 巳ステージを分割す る必要が無く、 丨 ステージから 巳ステージまでが 1サイクルで動作する こととなる。
[0030] したがって、 図 1のように構成することで、 図 2に示したように、 0 9 1)
1は 1命令を 1サイクルで実行することができる。
は、 命令メモリ 3のアドレスを指示する 〇 2 及び命令デコーダ 5でデコ -ドされる命令においてオペランドとして指定される汎用レジスタ 6八を非 同期式のメモリで構成している。 このようにすることにより、 これらステー ジの切れ目となる 〇 2八や汎用レジスタ 6八にデータを格納する際にクロ ック信号を必要とせず、 巳ステージを削減することができる。 したがって 、 〇 II 1 における命令実行サイクル数の削減に資することができ、 命令実 行の高速化を図ることができる。 特に図 1 に示したように、 1命令を 1サイ クルで実行するように構成する際に有用であり、 1命令を 1サイクルで実行 すれば、 パイプライン処理を用いる必要が無く、 パイプラインハザード等の
対策を講じる必要が無くなる。
[0032] また、 C P U 1は、 プログラムメモリ 3から読み出された命令は命令デコ —ダ 5に直接入力されているので、 丨 R 4が不要となり、 丨 Fステージと D Eステージとが分割されず、 C P U 1 における命令実行サイクル数の削減に 資することができる。
[0033] また、 命令メモリ及びデータメモリは、 同期式記憶素子で構成されている ので、 F PG Aが予め有するメモリでこれらのメモリを構成することが可能 となる。 また、 これらのメモリが同期式記憶素子で構成されているので、 C P U 1全体をクロック信号に同期させることができる。
[0034] さらには、 本実施形態では、 乗算も 1 クロックで演算することができるた め、 時間を要することが問題であった除算に、 逆数による乗算演算を有効に 利用することができる。
[0035] なお、 図 1 に示した C P U 1は、 1命令の実行を 1サイクルで行っていた が、 例えば、 図 3に示したように 丨 R4をプログラムメモリ 3と命令デコー ダ 5の間に配置してもよい。 この場合は、 1命令を 2サイクルで実行するこ とになるが、 従来の図 4の状態よりも 1命令の実行に要するサイクル数を削 減することができる。
[0036] また、 上述した実施形態は F PGAで構成することを前提に説明したが、
AS I C (Application Specific Integrated Circuit) として構成してもよ い。
[0037] なお、 本発明は上記実施形態に限定されるものではない。 即ち、 当業者は 、 従来公知の知見に従い、 本発明の骨子を逸脱しない範囲で種々変形して実 施することができる。 かかる変形によってもなお本発明の中央演算処理装置 の構成を具備する限り、 勿論、 本発明の範疇に含まれるものである。
符号の説明
[0038] 1 C P U (中央演算処理装置)
2 A プログラムカウンタ
3 プログラムメモリ (命令メモリ)
〇 2020/175074 8 卩(:170? 2020 /004528
5 命令デコーダ
6八 巩用レジスタ
8 演算部 (命令実行部)
9 アドレス計算部 (命令実行部)
1 0 データメモリ
Claims
[請求項 1 ] 縮小命令セツ トコンビユータアーキテクチヤで構成されている中央 演算処理装置において、
複数の命令からなるプログラムデータが格納される命令メモリと、 前記命令メモリのアドレスを指示するプログラムカウンタと、 前記命令メモリから読み出された命令を解読する命令デコーダと、 前記命令デコーダで解読される命令においてオペランドとして指定 可能な汎用レジスタと、 を備え、
前記プログラムカウンタ及び前記汎用レジスタが非同期式記憶素子 で構成されていることを特徴とする中央演算処理装置。
[請求項 2] 前記命令メモリから読み出された命令は前記命令デコーダに直接入 力されることを特徴とする請求項 1 に記載の中央演算処理装置。
[請求項 3] 前記命令メモリは、 同期式記憶素子で構成されていることを特徴と する請求項 1 または 2に記載の中央演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/432,654 US12111788B2 (en) | 2019-02-27 | 2020-02-06 | Central processing unit with asynchronous registers |
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 (1)
Publication Number | Publication Date |
---|---|
WO2020175074A1 true WO2020175074A1 (ja) | 2020-09-03 |
Family
ID=72240211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/004528 WO2020175074A1 (ja) | 2019-02-27 | 2020-02-06 | 中央演算処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12111788B2 (ja) |
JP (1) | JP7384374B2 (ja) |
TW (1) | TWI862545B (ja) |
WO (1) | WO2020175074A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002230979A (ja) * | 2001-01-31 | 2002-08-16 | Sanyo Electric Co Ltd | 半導体メモリおよびその制御回路 |
Family Cites Families (17)
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 |
WO1999004334A1 (en) * | 1997-07-16 | 1999-01-28 | 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 |
KR100896674B1 (ko) * | 1998-03-18 | 2009-05-14 | 퀄컴 인코포레이티드 | 디지털 신호처리기 |
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 | 好一 北岸 | 中央演算処理装置及びマイクロコンピュータ |
-
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
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002230979A (ja) * | 2001-01-31 | 2002-08-16 | Sanyo Electric Co Ltd | 半導体メモリおよびその制御回路 |
Non-Patent Citations (4)
Title |
---|
FURBER, S. B. ET AL.: "AMULET2e: An Asynchronous Embedded Controller", PROCEEDINGS THIRD INTERNATIONAL SYMPOSIUM ON ADVANCED RESEARCH IN ASYNCHRONOUS CIRCUITS AND SYSTEMS, 1997, pages 290 - 299, XP010223512, DOI: 10.1109/ASYNC.1997.587182 * |
NAKAHODO, MOTOTUNE ET AL.: "Design and Implementation to FPGA of MIPS Architecture Asynchronous Processor", THE PAPERS OF TECHNICAL MEETING ON THE INSTITUTE OF ELECTRICAL ENGINEERING OF JAPAN. TECHNICAL MEETING ON INNOVATIVE INDUSTRIAL SYSTEM IIS-09-072, 25 September 2009 (2009-09-25), pages 7 - 11 * |
TAKAMURA, AKIHIRO ET AL.: "Performance Enhancement Techniques in Logic Design of Asynchronous Processor TITAC-2", IEICE D-I, vol. J80-D-I, no. 3, 25 March 1997 (1997-03-25), pages 189 - 196 * |
YOSHIZAWA, KIYOSHI: "Realized with the controller of a program-controlled, Driving LCD character display module", TRANSISTOR GIJUTSU SPECIAL, 1 October 2002 (2002-10-01), pages 89 - 96 * |
Also Published As
Publication number | Publication date |
---|---|
TW202032364A (zh) | 2020-09-01 |
US20220197853A1 (en) | 2022-06-23 |
TWI862545B (zh) | 2024-11-21 |
US12111788B2 (en) | 2024-10-08 |
JP2020140290A (ja) | 2020-09-03 |
JP7384374B2 (ja) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI541658B (zh) | 資料處理裝置及半導體積體電路裝置 | |
KR100462951B1 (ko) | Risc 구조를 갖는 8 비트 마이크로콘트롤러 | |
WO1983001133A1 (en) | Microprocessor with memory having interleaved address inputs and interleaved instruction and data outputs | |
KR100272622B1 (ko) | 데이타 처리장치 | |
US6012138A (en) | Dynamically variable length CPU pipeline for efficiently executing two instruction sets | |
JP4073721B2 (ja) | データ処理装置 | |
WO2020175074A1 (ja) | 中央演算処理装置 | |
JP2000284962A (ja) | マイクロコンピュータ | |
JP3740321B2 (ja) | データ処理装置 | |
JP2861560B2 (ja) | データ処理装置 | |
JP2001014161A (ja) | プログラマブルコントローラ | |
JPH04199331A (ja) | マイクロコンピュータ | |
JP4382076B2 (ja) | データ処理装置 | |
JPS63293638A (ja) | データ処理装置 | |
JPH04255028A (ja) | マイクロプロセッサ | |
JP2004288203A (ja) | プロセッサコア及びこれを用いたプロセッサ | |
JP3239042B2 (ja) | マイクロコンピュータ | |
JPH08305564A (ja) | マイクロコンピュータ | |
JPS63310049A (ja) | マイクロプセロセサの起動用メモリ回路 | |
JPH03164945A (ja) | データ処理装置 | |
JP2005242457A (ja) | プログラマブルコントローラ | |
JPH11283362A (ja) | FiFoメモリ制御回路及びこの制御回路を使用したマイクロプロセッサ制御回路 | |
JPH0658629B2 (ja) | データ処理装置 | |
JPS6347833A (ja) | マイクロコンピユ−タ | |
JP2002024012A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20763034 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20763034 Country of ref document: EP Kind code of ref document: A1 |