JP2008181179A - Processor and arithmetic unit - Google Patents
Processor and arithmetic unit Download PDFInfo
- Publication number
- JP2008181179A JP2008181179A JP2007012316A JP2007012316A JP2008181179A JP 2008181179 A JP2008181179 A JP 2008181179A JP 2007012316 A JP2007012316 A JP 2007012316A JP 2007012316 A JP2007012316 A JP 2007012316A JP 2008181179 A JP2008181179 A JP 2008181179A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- operand
- memory
- main memory
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
Description
本発明は、プロセッサおよびそれを用いた演算装置に関する。 The present invention relates to a processor and an arithmetic device using the processor.
電子機器にて演算処理を行う装置は、プロセッサとメモリおよびその他周辺回路にて構成され、常に更なる高速化を求められている。CISCやRISCなどのアーキテクチャによるマイクロプロセッサでは、プロセッサの高速化のために、命令サイクルをステージに分割したパイプライン処理や、メモリを階層化したキャッシュメモリによる高速アクセスが用いられる。また、他のアーキテクチャでは、動的再構成を行うことで高速演算処理を可能とするリコンフィギュアラブルプロセッサがある。 An apparatus that performs arithmetic processing in an electronic device is composed of a processor, a memory, and other peripheral circuits, and always requires higher speed. In a microprocessor based on an architecture such as CISC or RISC, pipeline processing in which instruction cycles are divided into stages and high-speed access by a cache memory in which memories are hierarchized are used for speeding up the processor. In other architectures, there are reconfigurable processors that enable high-speed arithmetic processing by performing dynamic reconfiguration.
パイプライン処理では、プロセッサの1命令の実行過程を複数のステージに分割して並列実行する。ステージ数はプロセッサによって異なり、一般的にはステージ数が大きくなるほど高速化するが、プロセッサのハード構造が複雑化し、回路規模の増大を招く。複数のステージへの分割としては、たとえば命令フェッチ(IF)、デコード(ID)、オペランドのアドレス計算(OA)、オペランドフェッチ(OF)、命令の実行(EX)および演算結果の格納(RS)の6つのステージに分割した例がある。 In pipeline processing, the execution process of one instruction of a processor is divided into a plurality of stages and executed in parallel. The number of stages varies depending on the processor. Generally, the higher the number of stages, the higher the speed, but the hardware structure of the processor becomes complicated and the circuit scale increases. Examples of the division into a plurality of stages include instruction fetch (IF), decode (ID), operand address calculation (OA), operand fetch (OF), instruction execution (EX), and operation result storage (RS). There is an example divided into six stages.
メモリの階層化では、たとえば、プロセッサの演算実行ユニットに最も近い階層から、レジスタ、キャッシュメモリ、メインメモリ、補助記憶装置と構成する。この場合、レジスタが最も高速にアクセス可能であるが、記憶容量が最も小さい。補助記憶装置は、最も記憶容量が大きいが、アクセス速度が最も低速となる。 In the memory hierarchization, for example, a register, a cache memory, a main memory, and an auxiliary storage device are configured from the hierarchy closest to the processor operation execution unit. In this case, the register can be accessed at the highest speed, but the storage capacity is the smallest. The auxiliary storage device has the largest storage capacity, but the access speed is the slowest.
プロセッサ内部での最高動作周波数で動作するレジスタに対してプロセッサ外部のメインメモリのアクセスは低速となるため、命令サイクルのフェッチ時にメインメモリにアクセスした命令とオペランドをプロセッサ内部のキャッシュメモリに蓄積する方法がある(たとえば特許文献1参照)。この場合、キャッシュメモリにヒットした場合は高速アクセスすることができるが、キャッシュメモリをミスヒットした場合はキャッシュメモリよりも低速のメインメモリへアクセスすることになる。 A method of accumulating instructions and operands accessed to the main memory in the cache memory inside the processor when fetching an instruction cycle, because access to the main memory outside the processor is slow for a register operating at the maximum operating frequency inside the processor (See, for example, Patent Document 1). In this case, when the cache memory is hit, high-speed access can be performed, but when the cache memory is miss-hit, the main memory having a lower speed than the cache memory is accessed.
リコンフィギュアラブルプロセッサは、演算内容をプロセッサ内部のハード回路に構成し、メインメモリに蓄積した演算内容をプロセッサに転送してハード回路を切換えることで様々な演算に対応する。
パイプライン処理では、パイプラインのステージの中で、命令フェッチ(IF)とオペランドフェッチ(OF)でメモリアクセスが必要となる。キャッシュメモリをミスヒットした命令サイクルでは、メインメモリへアクセスした命令およびオペランドをキャッシュメモリへ蓄積する。この際、キャッシュメモリへの蓄積量が最大容量を超えると、所定のアルゴリズムに従ってメモリが上書きされる。このため、全てがキャッシュメモリにヒットした場合はパイプラインでの並列実行が理想的に行われるが、キャッシュメモリのヒット率に従ってミスヒットし、メインメモリへのアクセスが生じて、演算実行の高速化のボトルネックとなる。 In pipeline processing, memory access is required for instruction fetch (IF) and operand fetch (OF) in the pipeline stage. In the instruction cycle in which the cache memory is miss-hit, the instruction and operand that accessed the main memory are stored in the cache memory. At this time, if the amount stored in the cache memory exceeds the maximum capacity, the memory is overwritten according to a predetermined algorithm. For this reason, parallel execution in the pipeline is ideally performed when everything hits the cache memory, but a miss occurs according to the hit rate of the cache memory, and access to the main memory occurs, resulting in faster execution of operations. Bottleneck.
リコンフィギュアラブルプロセッサでは、ハード回路の容量に制限があり、ハード回路に配置可能な演算処理は高速実行可能であるが、ハード回路の容量を超える演算内容については、メインメモリへのアクセスおよびハード回路の切換えを必要として高速化できない。ハード回路の大容量化はプロセッサのコストアップへ直結し、最大の容量は物理的にも制限される課題があった。 In the reconfigurable processor, the capacity of the hard circuit is limited, and the arithmetic processing that can be arranged in the hard circuit can be executed at high speed. However, for the arithmetic contents exceeding the capacity of the hard circuit, access to the main memory and the hard circuit It is not possible to increase the speed because switching is required. Increasing the capacity of the hardware circuit directly increases the cost of the processor, and the maximum capacity is physically limited.
そこで、本発明は、低速なメモリアクセスがボトルネックとならない高速演算実行を可能とすることを目的とする。 Therefore, an object of the present invention is to enable high-speed arithmetic execution in which low-speed memory access does not become a bottleneck.
上述の課題を解決するため、本発明は、メインメモリに記憶された命令およびオペランドに基づいて演算処理を行うプロセッサにおいて、レジスタと、内部メモリと、第1の動作クロックで動作して命令およびオペランドを前記メインメモリから前記内部メモリに転送して格納するフェッチユニットと、前記第1の動作クロックと異なる第2の動作クロックで動作して前記内部メモリに格納された命令およびオペランドに基づいて前記レジスタを用いて演算を行う演算実行ユニットと、を有することを特徴とする。 In order to solve the above-described problems, the present invention provides a processor that performs arithmetic processing based on instructions and operands stored in a main memory, and operates with a register, an internal memory, and a first operation clock. Fetch unit for transferring and storing data from the main memory to the internal memory, and the register based on instructions and operands stored in the internal memory operating at a second operating clock different from the first operating clock. And an operation execution unit that performs an operation using.
また、本発明は、演算装置において、メインメモリと、レジスタ、内部メモリ、第1の動作クロックで動作して命令およびオペランドを前記メインメモリから前記内部メモリに転送して格納するフェッチユニット、および、前記第1の動作クロックと異なる第2の動作クロックで動作して前記内部メモリに格納された命令およびオペランドに基づいて前記レジスタを用いて演算を行う演算実行ユニットを備えたプロセッサと、を有することを特徴とする。 In the arithmetic device, the present invention provides a main memory, a register, an internal memory, a fetch unit that operates with a first operation clock and transfers instructions and operands from the main memory to the internal memory for storage. And a processor including an operation execution unit that operates using a second operation clock different from the first operation clock and performs an operation using the register based on an instruction and an operand stored in the internal memory. It is characterized by.
本発明によれば、低速なメモリアクセスがボトルネックとならない高速演算実行が可能となる。 According to the present invention, it is possible to execute high-speed computations in which low-speed memory access does not become a bottleneck.
本発明に係る演算装置の実施の形態を、図面を参照して説明する。なお、同一または類似の構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施の形態は単なる例示であり、本発明はこれらに限定されない。 Embodiments of an arithmetic device according to the present invention will be described with reference to the drawings. In addition, the same code | symbol is attached | subjected to the same or similar structure, and the overlapping description is abbreviate | omitted. The following embodiments are merely examples, and the present invention is not limited to these.
図1は、本発明に係る演算装置の一実施の形態におけるブロック図である。 FIG. 1 is a block diagram of an embodiment of an arithmetic device according to the present invention.
本実施の形態の演算装置10は、プロセッサ1とメインメモリ2を有している。プロセッサ1は、演算実行ユニット3、フェッチユニット4、レジスタ5および内部メモリ6を有している。演算実行ユニット3、フェッチユニット4、レジスタ5および内部メモリ6は、互いに接続されている。また、プロセッサ1とメインメモリ2は、フェッチユニット4を介して接続されている。メインメモリ2および内部メモリ6は、それぞれ命令(Instruction)用とオペランド(Operand)用の領域を備えており、これらの領域を命令領域21,61およびオペランド領域22,62と呼ぶ。
The arithmetic device 10 according to the present embodiment includes a
演算実行ユニット3は、内部メモリ6とレジスタ5を使用して演算する。また、フェッチユニット4は、メインメモリ2と内部メモリ6との間のデータ転送を行う。
The
演算実行ユニット3とフェッチユニット4は、それぞれパイプラインを構成している。
The
図2は、本実施の形態における演算実行ユニットおよびフェッチユニットの命令サイクルを示す図である。図2の横軸は、時間の経過を示している。 FIG. 2 is a diagram showing instruction cycles of the operation execution unit and the fetch unit in the present embodiment. The horizontal axis in FIG. 2 indicates the passage of time.
演算実行ユニット3は、6ステージ構成の命令サイクル7で動作する。これら6つのステージとは、命令フェッチ(IF)、命令デコード(ID)、オペランドのアドレス計算(OA)、オペランドフェッチ(OF)、命令の実行(EX)、および、演算結果の格納(RS)である。図2の縦軸で同じ位置にある各ステージは、同一の命令サイクルであることを意味している。
The
また、フェッチユニット4は、5ステージ構成の命令サイクル8で動作する。これら5つのステージとは、メインメモリ2からの命令フェッチおよび内部メモリへの命令転送(IF2)、フェッチユニット4内での命令デコード(ID2)、フェッチユニット4内でのオペランドのアドレス計算(OA2)、メインメモリ2からのオペランドフェッチおよび内部メモリへの転送(OF2)、および、内部メモリ6に格納された演算結果のメインメモリ2への格納(RS2)である。
The
演算実行ユニット3の命令サイクルの6つのステージは、第1の動作クロックで行われる。また、フェッチユニット4の命令サイクルの5つのステージは、第2の動作クロックで行われる。内部メモリ6に比べて低速なメインメモリ2にアクセスするフェッチユニット4の第2の動作クロックは、第1の動作クロックに比べて小さい。このように、演算実行ユニット3とフェッチユニット4は、非同期で動作する。
The six stages of the instruction cycle of the
図3は、本実施の形態におけるメインメモリ2の命令領域21のマップを示す図である。
FIG. 3 is a diagram showing a map of the
命令をフェッチするアドレスは、所定のアドレスから分岐命令までは連続した領域となり、メインメモリ2に高速にバーストアクセスすることで命令フェッチを行うことができる。分岐命令にて分岐無しの場合は連続領域として扱えるが、分岐命令にて分岐有りの場合は分岐命令のオペランドで示されたアドレスからのフェッチが必要となる。
An instruction fetch address is a continuous area from a predetermined address to a branch instruction, and instruction fetch can be performed by burst access to the
そこで、フェッチユニット4の命令サイクルのOF2において、分岐命令の場合はオペランドで示された分岐先に従って、分岐無しの場合と分岐有りの場合の両者の命令をフェッチユニット4が内部メモリ6に蓄積する。これにより、分岐命令実行に対しても演算実行ユニット3のパイプライン処理を遅滞無く継続することができる。
Therefore, in the OF2 of the instruction cycle of the
分岐命令のオペランドがレジスタ5をアドレスとする場合には、フェッチユニット4がレジスタ5にアクセスすることで、メインメモリ2での分岐先のアドレスを得て、そのアドレスにアクセスすることができる。
When the operand of the branch instruction uses the
図4は、本実施の形態におけるメインメモリ2のオペランド領域22のマップを示す図である。
FIG. 4 is a diagram showing a map of the
また、メインメモリ2のオペランドをフェッチするアドレスは命令に含まれており、連続した領域へのテーブル処理命令を除けば、命令毎に異なる値となるランダムアクセスを必要とする。フェッチユニット4は、メインメモリ2からの命令フェッチおよび内部メモリ6への命令転送(IF2)、命令デコード(ID2)、オペランドのアドレス計算(OA2)を行う。このため、フェッチユニット4は、ランダムな値をとるオペランドのアドレスを把握し、内部メモリ6へオペランドを転送することができる。
The address for fetching the operand of the
さらに、フェッチユニット4は、メインメモリ2のオペランドアドレスを内部メモリ6のオペランドアドレスへ変換しておく。これにより、演算実行ユニット3は、内部メモリ6に転送されて格納されたオペランドを用いて命令を実行できる。また、レジスタ5をメインメモリ2のオペランドアドレスとする場合には、フェッチユニット4がレジスタ5にアクセスすることで、メインメモリ2でのオペランドアドレスを得て、メインメモリ2のそのアドレスにアクセスすることができる。
Further, the fetch
このようにして、演算実行ユニット3は、フェッチユニット4が予め内部メモリ6に転送した命令およびオペランドを使用して演算を実行する。このため、演算実行ユニット3の命令サイクルは、外部の低速なメインメモリ2へのアクセスサイクルに縛られることなくプロセッサ1内部での最高動作周波数でパイプライン処理を継続することができる。すなわち、低速なメモリアクセスがボトルネックとならない高速演算実行が可能となる。
In this way, the
1…プロセッサ、2…メインメモリ、3…演算実行ユニット、4…フェッチユニット、5…レジスタ、6…内部メモリ、7,8…命令サイクル、10…演算装置、21…命令領域、22…オペランド領域、61…命令領域、62…オペランド領域
DESCRIPTION OF
Claims (8)
レジスタと、
内部メモリと、
第1の動作クロックで動作して命令およびオペランドを前記メインメモリから前記内部メモリに転送して格納するフェッチユニットと、
前記第1の動作クロックと異なる第2の動作クロックで動作して前記内部メモリに格納された命令およびオペランドに基づいて前記レジスタを用いて演算を行う演算実行ユニットと、
を有することを特徴とするプロセッサ。 In a processor that performs arithmetic processing based on instructions and operands stored in main memory,
Registers,
Internal memory,
A fetch unit that operates at a first operating clock to transfer and store instructions and operands from the main memory to the internal memory;
An operation execution unit that operates using a second operation clock different from the first operation clock and performs an operation using the register based on an instruction and an operand stored in the internal memory;
A processor characterized by comprising:
レジスタ、内部メモリ、第1の動作クロックで動作して命令およびオペランドを前記メインメモリから前記内部メモリに転送して格納するフェッチユニット、および、前記第1の動作クロックと異なる第2の動作クロックで動作して前記内部メモリに格納された命令およびオペランドに基づいて前記レジスタを用いて演算を行う演算実行ユニットを備えたプロセッサと、
を有することを特徴とする演算装置。 Main memory,
A register, an internal memory, a fetch unit that operates with a first operation clock to transfer instructions and operands from the main memory to the internal memory, and a second operation clock different from the first operation clock A processor comprising an operation execution unit that operates and performs an operation using the register based on instructions and operands stored in the internal memory;
An arithmetic device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012316A JP2008181179A (en) | 2007-01-23 | 2007-01-23 | Processor and arithmetic unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012316A JP2008181179A (en) | 2007-01-23 | 2007-01-23 | Processor and arithmetic unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008181179A true JP2008181179A (en) | 2008-08-07 |
Family
ID=39725060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007012316A Withdrawn JP2008181179A (en) | 2007-01-23 | 2007-01-23 | Processor and arithmetic unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008181179A (en) |
-
2007
- 2007-01-23 JP JP2007012316A patent/JP2008181179A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6143872B2 (en) | Apparatus, method, and system | |
JP4837305B2 (en) | Microprocessor and control method of microprocessor | |
TWI541658B (en) | Data processing apparatus and semiconductor integrated circuit device | |
CN111213131B (en) | Zero latency prefetch in a cache | |
US11307858B2 (en) | Cache preload operations using streaming engine | |
CN111213132B (en) | Servicing CPU demand requests with in-flight prefetching | |
JP2018506776A (en) | Hiding page translation miss latency in the program memory controller by selective page miss translation prefetch | |
JPH10228376A (en) | Method and program for processing multiple-register instruction | |
EP2128771B1 (en) | Method and apparatus for controlling cache memory | |
JP2008165589A (en) | Information processor | |
JP3683248B2 (en) | Information processing apparatus and information processing method | |
US11900117B2 (en) | Mechanism to queue multiple streams to run on streaming engine | |
JP2008071061A (en) | Information processor | |
CN112395000B (en) | Data preloading method and instruction processing device | |
CN112559037B (en) | Instruction execution method, unit, device and system | |
JP2008181179A (en) | Processor and arithmetic unit | |
CN111984314A (en) | Vector storage using bit reversal order | |
JPH08249175A (en) | Method and apparatus for selective support of nonarchitectural instruction at inside of superscalar processor device | |
JP3461887B2 (en) | Variable length pipeline controller | |
JP2006515446A (en) | Data processing system with Cartesian controller that cross-references related applications | |
JP3147884B2 (en) | Storage device and information processing device | |
JP2006011705A (en) | Processor and semiconductor device | |
JP3102399B2 (en) | Data processing apparatus and method | |
JP4553622B2 (en) | Data processing device | |
CN115858022A (en) | Scalable switch point control circuitry for clustered decoding pipeline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100406 |