JPH04219825A - Data processor and method for loading multi-port register file - Google Patents
Data processor and method for loading multi-port register fileInfo
- Publication number
- JPH04219825A JPH04219825A JP6245091A JP6245091A JPH04219825A JP H04219825 A JPH04219825 A JP H04219825A JP 6245091 A JP6245091 A JP 6245091A JP 6245091 A JP6245091 A JP 6245091A JP H04219825 A JPH04219825 A JP H04219825A
- Authority
- JP
- Japan
- Prior art keywords
- data
- ram
- register
- address
- memory interface
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Static Random-Access Memory (AREA)
- Advance Control (AREA)
Abstract
Description
【0001】0001
【産業上の利用分野】本発明は、データ処理装置に関し
、更に詳しくは、必ず最新のデータが用いられるように
するため、直前の書き込み結果から正しいソース・デー
タをドライブするバイパス構造を有するレジスタ・ファ
イルに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing device, and more particularly, the present invention relates to a data processing device, and more particularly, to a register having a bypass structure that drives correct source data from the immediately previous write result in order to ensure that the latest data is used. Regarding files.
【0002】0002
【従来の技術】インテル・コーポレーションに譲渡され
た、発明者デビッド・ブッデ他による1990年1月2
日交付された米国特許第4,981,733号、発明の
名称「マイクロプロセッサ・チップにおけるレジスタ・
スコアボーディング」には、ユーザ・アクセス可能レジ
スタを含んでいるレジスタ・ファイルにおけるロード・
インストラクションに関してスコアボーディング技術を
用いることにより、パイプライン・マイクロプロセッサ
においてインストラクション・ストリームを実行する際
のアイドル時間を最小にする装置が示されている。また
、従来技術には、スコアボーディングを全てのマルチサ
イクル演算に拡張したものもある。いくつかのインスト
ラクションが各クロック・サイクルにおいて発行され、
かつ同時に実行される。複数のオペランドに必要なレジ
スタに対するアクセス要求に応じるため、マルチポート
・レジスタ・ファイルが設けられ、それらが必要なデー
タを同時にアクセスするというマルチプル演算を可能に
している。最も有効的な方法でこれを実施するための新
しいRAMアレイ・セルも供給されている。[Prior Art] January 2, 1990 by inventor David Budde et al., assigned to Intel Corporation.
U.S. Pat.
"Scoreboarding" includes loading and unloading in register files that contain user-accessible registers.
An apparatus is shown that minimizes idle time when executing a stream of instructions in a pipelined microprocessor by using scoreboarding techniques with respect to instructions. Also, some prior art techniques extend scoreboarding to all multi-cycle operations. Several instructions are issued in each clock cycle,
and are executed simultaneously. In order to meet requests for access to registers necessary for multiple operands, a multiport register file is provided, which allows multiple operations to simultaneously access the necessary data. New RAM array cells are also being provided to do this in the most efficient manner.
【0003】0003
【発明が解決しようとする課題】従来技術において、バ
イパスは、正しいデータを、センス・アンプの後にある
ソース・データ・バスに直接的にマルチプレクスするこ
とにより、基本レジスタファイル・アレイの外で行われ
ていた。本発明の目的は、その後の演算において最新の
データが用いられるようにするため、直前の書き込み結
果から正しいソース・データをドライブするバイパス構
造が組み込まれている装置を提供することである。In the prior art, bypassing was accomplished outside the basic register file array by multiplexing the correct data directly onto the source data bus after the sense amplifier. I was worried. It is an object of the present invention to provide a device incorporating a bypass structure that drives correct source data from the previous write result so that the latest data is used in subsequent operations.
【0004】0004
【課題を解決するための手段】上記目的は、メモリ・イ
ンタフェイスとランダム・アクセス・メモリ(RAM)
アレイとの間にバイパス回路を接続した本発明により達
成することができる。メモリ・インタフェイスは Ld
Data バス106を含み、かつRAMアレイは、複
数の出口ポートを有する複数のワード・レジスタを含ん
でいる。
上記メモリ・インタフェイスおよび上記RAMアレイに
接続したアラインメント論理装置は、メモリ・インタフ
ェイス向けのデータをアレンジし(ストアの場合)、お
よびメモリ・インタフェイスからのデータをRAMアレ
イに送るよう準備する(ロードの場合)。また、コラム
選択ラインがドライブされる直前にRAMアレイにおけ
るレジスタをクリヤする装置が設けられている。ロード
・バイパス論理装置は、メモリ・インタフェイスからリ
ターンする入力データが、RAMアレイの読出しポート
の出力ラム・ラインに直接的に配置されるように、 L
dData バスをバイパスする。[Means for solving the problem] The above purpose is to provide a memory interface and a random access memory (RAM).
This can be achieved by the present invention in which a bypass circuit is connected between the array and the array. Memory interface is Ld
Data bus 106 and the RAM array include multiple word registers with multiple exit ports. Alignment logic connected to the memory interface and the RAM array arranges data for the memory interface (in the case of stores) and prepares data from the memory interface to be sent to the RAM array ( load). Also provided is a device for clearing the registers in the RAM array just before the column select line is driven. The load bypass logic ensures that the input data returning from the memory interface is placed directly on the output RAM line of the read port of the RAM array.
Bypass the dData bus.
【0005】バイパス論理装置は、要求されたソース・
レジスタのアドレスと、データがリターンする全レジス
タのレジスタ・アドレスを比較して、整合出力信号を生
じるレジスタ比較アドレス論理装置を含んでいる。整合
出力信号に応じて、ロード・アラインメント論理装置ま
たは実行装置からのデータは、ソースのRAMコラム・
ラインに直接的に配置される。Bypass logic provides the requested source
It includes register compare address logic that compares the address of the register with the register addresses of all registers into which data is to be returned to produce a matched output signal. Depending on the alignment output signal, data from the load alignment logic or execution unit is routed to the source RAM column.
placed directly on the line.
【0006】[0006]
【実施例】以下、添付の図面に基づいて、本発明の実施
例に関し説明する。図1において、レジスタ・ファイル
(RF)は、16個のローカルおよび16個のグローバ
ル・レジスタを有し、かつメモリ・インタフェイス装置
/インストラクション・デコーダ8と実行装置4とに接
続している。RFは、並列構成を支持するため4つの独
立読出しポートと2つの書込みポートを有している。そ
れは、またレジスタ・スコアボーディング論理装置21
をチェックしかつ保持している。DESCRIPTION OF THE PREFERRED EMBODIMENTS Examples of the present invention will be described below with reference to the accompanying drawings. In FIG. 1, a register file (RF) has 16 local and 16 global registers and is connected to a memory interface device/instruction decoder 8 and an execution unit 4. The RF has four independent read ports and two write ports to support parallel configuration. It also includes register scoreboarding logic 21
are checked and maintained.
【0007】図1の回路は、米国特許第4,816,7
00号に述べているクロックのような2つの非オーバラ
ッピング・クロック・フェーズ設計を有するクロックに
よりドライブされる。4つのクロック、PH1,PH1
I,PH2Iがチップに配分されている。PH1とPH
2は、等しいデューティ・サイクルの一般的なNMOS
非オーバラッピング・クロックである。PH1IとPH
2Iは、PH1とPH2のPMOSアナログで、しかも
それぞれPH1とPH2の正反転である。The circuit of FIG. 1 is described in US Pat. No. 4,816,7.
00, which has a two non-overlapping clock phase design. 4 clocks, PH1, PH1
I, PH2I are distributed to the chips. PH1 and PH
2 is a typical NMOS with equal duty cycle
Non-overlapping clocks. PH1I and PH
2I is a PMOS analog of PH1 and PH2, and is the positive inversion of PH1 and PH2, respectively.
【0008】レジスタ・ファイル(RF)は、マイクロ
プロセッサにおける全データ・オペランドに関する焦点
である。マイクロプロセッサは、ロード/ストア・アー
キテクチャを実施し、プログラムに関連した全データ・
オペランド(特殊機能レジスタ・オペランドを除く)は
、同時にまたは別なときにRFに存在しなければならな
い。RFは、マクロコードおよびマイクロコード・ビジ
ブルRAMレジスタを含んでいる。RFは、マルチポー
ト・アクセス構造によりこれらレジスタに対する高性能
なインタフェイスを供給し、同じマシン・サイクルにお
いて、異なるレジスタで4つの読出しおよび2つの書込
みを行うことができる。The register file (RF) is the focal point for all data operands in a microprocessor. A microprocessor implements a load/store architecture and stores all data associated with a program.
Operands (except special function register operands) must be present in the RF at the same time or at different times. RF contains macrocode and microcode visible RAM registers. RF provides a high performance interface to these registers with a multi-port access structure, allowing four reads and two writes to different registers in the same machine cycle.
【0009】レジスタ・ファイルは、6つの主な論理ブ
ロック、すなわちロード/ストア・アラインメント10
,12、ベースMUX14、ロード・バイパス16、R
AMアレイ18、デスティネーション・バイパス24、
および Src1/Src2 MUX26から成ってい
る。4つの読出し、すなわちストア58、ベース50、
Src154および Src2 56が可能である。同
様に、2つの書込み、すなわちロード52とデスティネ
ーション60が可能である。The register file consists of six main logical blocks: load/store alignment,
, 12, base MUX 14, load bypass 16, R
AM array 18, destination bypass 24,
and Src1/Src2 MUX26. 4 reads: store 58, base 50,
Src154 and Src2 56 are possible. Similarly, two writes are possible: load 52 and destination 60.
【0010】図2において、実際のRAMアレイ18を
含んでいる全データ路は、グループになったワード・ビ
ット(ワード3ビット31、ワード2ビット31、ワー
ド1ビット31など)で配列された4ワード×32ビッ
ト/ワード、128ビット幅のデータ路に構成されてい
る。この配列は、RAMセルの幅のサイズおよびロード
/ストア・データの整合の容易性の両方にとって利点が
ある。In FIG. 2, the entire data path containing the actual RAM array 18 consists of 4 bits arranged in grouped word bits (word 3 bit 31, word 2 bit 31, word 1 bit 31, etc.). The data path is word x 32 bits/word, 128 bits wide. This arrangement has advantages in both the size of the RAM cell width and the ease of aligning load/store data.
【0011】図3は、RAMアレイの読出しと書込み、
およびスコアボード・ビットのチェックと設定の基本的
タイミングを示している。図3の表において、ロード・
データは、任意数のサイクル後にリターンされる。その
時、信号 LdValid104がアサートされ、バリ
ド・データが LdData バス106にあることを
示す。RAMアレイにおけるレジスタは、Ph2におい
て読出され、PH1において書込まれる。ロード・デー
タがレジスタ・ファイルに書込まれる時、以下のことが
生じる。パイプ・ステージ2、フェーズ2(“q22”
)において、データのゼロはRAMに書込まれ、1は1
フェーズ後のq31において書込まれる。0は、RAM
セルにおいて1に重ね書きすることができないので、書
込まれるべきレジスタは、データの実際の書込みの直前
にクリヤされなければならない。FIG. 3 shows reading and writing of the RAM array.
and basic timing for checking and setting scoreboard bits. In the table of Figure 3, the load
Data is returned after any number of cycles. At that time, signal LdValid 104 is asserted, indicating that valid data is on LdData bus 106. Registers in the RAM array are read in Ph2 and written in PH1. When load data is written to the register file, the following occurs. Pipe Stage 2, Phase 2 (“q22”
), data zeros are written to RAM and ones are 1
Written in q31 after phase. 0 is RAM
Since it is not possible to overwrite a 1 in a cell, the register to be written must be cleared immediately before the actual writing of data.
【0012】ロード・データは、q22においてリター
ンされるが、実際にはq31においてRAMアレイに書
込まれる。Addインストラクションが、RAMに書込
まれその後再び読出されるべきデータを待機する1サイ
クル遅延されるのを避けるよう、RFは、リターンする
ロード・データをq22において Src1 バスにバ
イパスする。ロード・データは、通常どおりq31にお
いて書込まれ、一方、同時にAddインストラクション
はEU4により実行される。The load data is returned in q22, but is actually written to the RAM array in q31. The RF bypasses the returning load data to the Src1 bus in q22 to avoid the Add instruction being delayed one cycle waiting for data to be written to RAM and then read again. Load data is written in q31 as usual, while at the same time an Add instruction is executed by EU4.
【0013】ロード/ストア・アラインメントロードお
よびストア・アラインメント論理ブロック10,12は
、メモリ・インタフェイスに向かうデータを配列し(ス
トアの場合)、メモリ・インタフェイスからのデータを
RAMアレイに送るよう準備をする(ロードの場合)、
手続きは、単に方向が反転しているだけで、両方の場合
ほとんど等しいので、ロード・アラインメント・プロセ
スについてのみ説明する。Load/Store Alignment Load and store alignment logic blocks 10, 12 align the data destined for the memory interface (in the case of a store) and prepare the data from the memory interface to be sent to the RAM array. (for loading),
Only the load alignment process will be described, since the procedure is nearly identical in both cases, just with the direction reversed.
【0014】メモリ・インタフェイスからリターンする
ロード・データは、それが最下位ワード(LSW)、す
なわちワード0にワード・アラインされるように配列さ
れる。たとえば、4ワード・メモリ・ブロックにおける
ワード2からリターンするワードは、それが LdDa
ta バスに配列される前にワード0にシフトされる。
RFデータ路は、グループになった(全ビットゼロ、全
ビット1など)ワード・ビットで、4ワード×32ビッ
ト/ワード路として構成されているように、LdDat
aおよび StData バスもこのように構成されて
いる。したがって、ワード0へのワード・シフトは、単
なる各ビット・セルにおけるマルチプレックス・プロセ
スである。ほんの部分的なワード・アラインメントは、
メモリ・インタフェイスにより行われるので、サブワー
ド(バイトおよびショート・ワード)の場合は、メモリ
・インタフェイスの観点から見ればワード・アクセスと
同様である。たとえば、16(0〜15)バイト・メモ
リ・ブロックのバイト13からリターンするバイトは、
ワード3、ビット8−15においてリターンする。その
後、メモリ・インタフェイスは、バイトがまだビット8
−15にあるにかかわらず、これをLSBすなわちワー
ド0にアラインする。Load data returning from the memory interface is arranged so that it is word aligned to the least significant word (LSW), word zero. For example, the word returning from word 2 in a 4-word memory block indicates that it is LdDa
Shifted to word 0 before being placed on the ta bus. The RF data path is configured as a 4 word x 32 bit/word path with word bits grouped (all zeros, all ones, etc.).
The a and StData buses are also configured in this manner. Therefore, word shifting to word 0 is simply a multiplexing process on each bit cell. Only partial word alignment is
Since it is done by the memory interface, subwords (bytes and short words) are similar to word accesses from the memory interface's perspective. For example, the byte returned from byte 13 of a 16 (0-15) byte memory block is
Return in word 3, bits 8-15. The memory interface then indicates that the byte is still bit 8.
-15, align it to the LSB, word 0.
【0015】RFロード・アラインメント論理装置10
が行う第1過程は、入力データを最下位バイト(LSB
)に正しくバイト・アラインすることである。これは、
リターンするデータがサブワード量である場合にのみ行
われなければならない。RFは、データより前のフェー
ズでリターンされる TypeIn (または長さ)フ
ィールドからこれを決定する。入力データをバイト・ア
ラインすることは、データを最も低いバイトに物理的に
移動すること、すなわちRFのデータ路に対して直角な
、データの実際の“操作(ステアリング)”を必要とす
る。
レジスタ・ファイルに向かう全データは、LSBに完全
にアラインされる。RF load alignment logic 10
The first step is to convert the input data into the least significant byte (LSB
) is to align the bytes correctly. this is,
This must be done only if the data to be returned is a subword amount. The RF determines this from the TypeIn (or Length) field returned in an earlier phase than the data. Byte alignment of input data requires physically moving the data to the lowest byte, ie, actual "steering" of the data at right angles to the RF data path. All data going to the register file is completely LSB aligned.
【0016】ロードの場合、ここでゼロ拡張が行われる
。これはロード・アラインメント・ブロックにおいて独
特のもので、ストアはこれら演算を行わなくてもいい。
メモリからリターンするデータがバイトまたはショート
・ワードの場合、 TypeIn フィールドのビット
3はゼロで、その後、レジスタに書込まれるべき32ビ
ット・ワードの残りをパッドするため、ゼロ拡張を行わ
なければならない。最終ステップは、予定されたワード
場所にワードを正しく配置するレジスタ・アラインメン
トである。ワードは、その後RAMアレイに書込まれる
。[0016] In the case of a load, zero extension is performed here. This is unique in load alignment blocks; stores do not have to perform these operations. If the data returning from memory is a byte or short word, bit 3 of the TypeIn field is zero and must then be zero-extended to pad the remainder of the 32-bit word to be written to the register. The final step is register alignment, which correctly places the word in the intended word location. The word is then written to the RAM array.
【0017】ベースMUX
ベースMUX14は、図2に示されているRAMアレイ
読出しポートからの64ビット・フィールドを、メモリ
・インタフェイス8に適した32ビット・ベースに減少
する2−1マルチプレクサを含んでいる。ベースMUX
は、RAMアレイの64ビット・ベース・バス50を処
理するのに必要である。これはまた、64ビット値を3
2ビット・ベースにさらにマルチプレクスしなければな
らないであろうRAMアレイにおける領域を節約する。
マルチプレクサは、BaseAdr バスのビット1に
より制御され、これはどのワードがベース・バスに配置
されるべきかを指定する。Base MUX Base MUX 14 includes a 2-1 multiplexer that reduces the 64-bit field from the RAM array read port shown in FIG. 2 to a 32-bit base suitable for memory interface 8. There is. Base MUX
is required to service the 64-bit base bus 50 of the RAM array. This also converts 64-bit values into 3
This saves space in the RAM array that would otherwise have to be multiplexed on a 2-bit basis. The multiplexer is controlled by bit 1 of the BaseAdr bus, which specifies which word should be placed on the base bus.
【0018】ロード・バイパス
ロード・バイパス論理ブロック16は、メモリ・インタ
フェイスからリターンする LdData バス106
を様々な出口ポート、すなわち StData 58、
ベース50、Src154、Src256にバイパスす
る論理装置を含んでいる。
データがリターンしている全レジスタのレジスタ・アド
レスは、要求されたソース・レジスタのアドレスに比較
される。整合している場合には、バイパス論理装置は、
ロード・アラインメント論理ブロックからのデータをソ
ースのRAMコラム・ラインに直接的に配置する。Sr
c バスの観点から、演算の結果は、あたかもデータが
RAMアレイ・セルから読出されたものと同様となり、
相違は検出されない。Load Bypass Load Bypass logic block 16 returns from the memory interface LdData bus 106
to the various exit ports, i.e. StData 58,
It includes logic to bypass the base 50, Src154, and Src256. The register addresses of all registers for which data is being returned are compared to the address of the requested source register. If so, the bypass logic
Places data from the load alignment logic block directly into the source RAM column lines. Sr.
From the perspective of the c bus, the result of the operation is as if the data were read from a RAM array cell;
No differences detected.
【0019】バイパスされているレジスタが図2に示さ
れているクリヤ・ライン67により既にクリヤされてい
るので、コラム・ラインをドライブするこの方法は可能
である。このことは、コラム・ラインがドライブされる
直前にアサートされる。もし、この事実がなかったなら
ば、デコード論理装置は、RAMセルをなおエネーブル
し続けて、それらのデータをドライブするので、レジス
タの古くなった内容は、コラム・ラインにドライブされ
てしまう。コラム・ラインは、ネガティブ・トゥルーに
プリチャージされる。これは、セルにおけるゼロがライ
ンの状態に影響しないということを意味している。This method of driving column lines is possible because the bypassed registers have already been cleared by the clear line 67 shown in FIG. This is asserted just before the column line is driven. If this were not the case, the decode logic would still enable the RAM cells and drive their data so that the stale contents of the registers would be driven into the column lines. The column line is precharged to negative true. This means that a zero in a cell does not affect the state of the line.
【0020】RAMアレイ
RAMアレイ論理ブロックは、リテラル発生論理装置1
9と、レジスタRAMアレイ18と、アドレス・デコー
ダ20,22と、レジスタ・スコアボード・ビット21
から成っている。レジスタ・ファイルは、プログラマ/
マイクロプログラマを使用する場合、32個のリテラル
すなわち値0〜31を供給する。これら値を発生するリ
テラル論理装置19は、RAMアレイのすぐ上にあり、
RAMコラム・ライン50,58は、そのセクションを
進行し、ロード・バイパス論理ブロック16まで続いて
いる。リテラルが Src1 または Src2 オペ
ランドとして要求されている場合(リテラルはベースお
よびストア使用に関するソースとして許されていない)
、その対応する“レジスタ・アドレス”はS1Adr
または S2Adr バスに配置される。The RAM array RAM array logic block is a literal generating logic unit 1.
9, register RAM array 18, address decoders 20, 22, and register scoreboard bit 21.
It consists of The register file is used by the programmer/
When using a microprogrammer, 32 literals or values 0-31 are provided. The literal logic unit 19 that generates these values is located directly above the RAM array;
RAM column lines 50, 58 continue through that section to load bypass logic block 16. If a literal is required as the Src1 or Src2 operand (literals are not allowed as sources for base and store usage)
, its corresponding “register address” is S1Adr
or placed on the S2Adr bus.
【0021】デスティネーション・バイパスデスティネ
ーション・バイパス論理ブロック26は、EUまたはR
EGコプロセッサからリターンするDstバス110を
様々な出口ポート: StDataバス、ベース・バス
、Srs! および Src2 にバイパスする回路
を含んでいる。デスティネーション・バイパスは、いく
つかのわずかな相違があるだけでロード・バイパス16
にほとんど等しい。Dstバス110はたった64ビッ
ト幅なので、わずか2つのレジスタをバイパスできるに
すぎないため、この論理装置は、デスティネーション・
バイパスにおいて、実際にはもっと単純である。ロード
・バイパスにおいて、レジスタ・アドレス比較論理装置
は、 LdData バス106が128ビット幅なの
で、4つのレジスタがバイパスされる可能性を処理しな
ければならない。
これら相違の他は、論理装置はロード・バイパス回路と
ほとんど同じである。Destination Bypass Destination bypass logic block 26 is
The Dst bus 110 returning from the EG coprocessor is routed to various exit ports: StData bus, base bus, Srs! It includes a bypass circuit to Src2 and Src2. Destination Bypass is a Road Bypass 16 with only a few minor differences.
almost equal to. Since the Dst bus 110 is only 64 bits wide, only two registers can be bypassed, so this logic device
In bypass, it is actually simpler. In load bypass, the register address comparison logic must handle the possibility that four registers are bypassed since the LdData bus 106 is 128 bits wide. Other than these differences, the logic device is much the same as the load bypass circuit.
【0022】Src1 および Src2 マルチプレ
クサSrc1 および Src2 マルチプレクサ26
は、Src1 および Src2 バスに関する32ビ
ット・オペランドをドライブするため2ワード64ビッ
ト・ソースRAMデータの1つかまたは SFRInB
us を選択するのに必要とされるマルチプレクサを含
んでいる。また、論理ブロックは Src1Hi バス
をドライブするバッファを含んでおり、必要な場合フル
64ビット・ソースを供給する。3つの可能ソースを単
一ワード Src オペランドにマルチプレクスする
のに必要な制御は、SFRInBus をいつエネー
ブルするかを論理装置に知らせる S1Adr( S2
Adr ) =“10”フィールドの上部2ビットとと
もに S1Adr(または S2Adr)のLSBであ
る。Src1 and Src2 multiplexer Src1 and Src2 multiplexer 26
is one of two words of 64-bit source RAM data or SFRInB to drive the 32-bit operands on the Src1 and Src2 buses.
Contains the multiplexer needed to select us. The logic block also includes a buffer that drives the Src1Hi bus, providing a full 64-bit source when needed. The control required to multiplex the three possible sources into a single word Src operand is S1Adr(S2), which tells the logic when to enable SFRInBus.
Adr) = “10” Together with the upper 2 bits of the field, it is the LSB of S1Adr (or S2Adr).
【0023】Src1Hiバスは、データがEUまたは
REGコプロセッサにより必要とされているかどうかに
関係なくドライブされる。以下、図1に示されるような
RFを他の論理ブロックに接続するバスおよび信号につ
いての概要を説明する。The Src1Hi bus is driven regardless of whether data is needed by the EU or REG coprocessor. An overview of the buses and signals that connect the RF to other logic blocks as shown in FIG. 1 will be described below.
【0024】メモリ・インタフェイス・バス以下のバス
は、RFに、およびRFから実際のデータを伝達する。
LdData(0:127) これは、メモリ・イン
タフェイス(外部メモリ、データ・キャッシュ他)から
の情報をリターンする128ビット・ロード・データ・
バスである。
StData(0:127) これは、メモリ・イン
タフェイスに情報を送る128ビット・ストア・データ
・バスである。
ベース(0:31) ベース・バスは、ロードまたは
ストアのメモリ・アドレスを指定するメモリ・インタフ
ェイスに送られる32ビット・ベース・アドレス・バス
である。The buses below the memory interface bus convey the actual data to and from the RF. LdData (0:127) This is a 128-bit load data file that returns information from the memory interface (external memory, data cache, etc.).
It's a bus. StData (0:127) This is a 128-bit store data bus that sends information to the memory interface. Base (0:31) The Base Bus is a 32-bit base address bus sent to the memory interface that specifies the memory address for a load or store.
【0025】以下のバスは、制御およびレジスタ・アド
レス情報を伝達し、上記データ・バスに関するタイプお
よびロケーション情報を指定する。全レジスタ・アドレ
スは7ビットである。
BaseAdr これは、ベース・バスをドライブ
するのに使用されるべきレジスタのアドレスである。
LdAdrOut ロード・アドレス・アウト・バス
は、いくつかの場合において使用される。それは、デー
タがリターンされ、かつロード・インストラクションで
スコアボードされるよう、ロード・インストラクション
(すなわち、クウォド・ワード・アクセスにおいて“G
O”)でスコアボードされる開始レジスタを指定するI
SによりopコードとともにRFに送られる。それは、
また、ストア・インストラクションで StData
バスに送られるべき開始レジスタを指定するのにも使用
される。最後に、それは、LDA(ロード有効アドレス
)インストラクションでリターンされるレジスタ・デー
タのアドレスsiを含んでいる。The following buses convey control and register address information and specify type and location information for the data buses. All register addresses are 7 bits. BaseAdr This is the address of the register to be used to drive the base bus. The LdAdrOut load address out bus is used in several cases. It is important that the load instruction (i.e., “G
I specifying the starting register to be scoreboarded with
S is sent to the RF along with the op code. it is,
Also, in the store instructions, StData
Also used to specify the starting register to be sent to the bus. Finally, it contains the address si of the register data returned in the LDA (load effective address) instruction.
【0026】LdAdrIn これは、メモリ・イ
ンタフェイスまたはISからリターンするロードまたは
LDAデータのレジスタ・アドレスである。それは、デ
ータがレジスタ・ファイルにリターンする状態にある場
合にドライブされる。
TypeOut (0:3) この4ビット・フィー
ルドは、アクセスの長さと、サブワード・アクセスにお
いて使用される拡張の種類を指定する。それは、opコ
ードおよび LdAdrOut バスとともにISによ
りドライブされる。それは、ロードに関しどのレジスタ
をスコアボードするか、およびストアに関しどのレジス
タがStData バスをドライブするかを決定するの
に使用される。
TypeIn (0:3) これは、それがデータ・
キャッシュまたは外部メモリからのものであるとしても
データがリターンするのを待機するメモリ・インタフェ
イスによりトラップされた TypeOut フィール
ドである。それは、 LdAdrIn バスとともにリ
ターンされる。LdAdrIn This is the register address of the load or LDA data returning from the memory interface or IS. It is driven when data is ready to return to the register file. TypeOut (0:3) This 4-bit field specifies the length of the access and the type of expansion used in subword accesses. It is driven by the IS along with the opcode and LdAdrOut bus. It is used to determine which registers to scoreboard for loads and which registers to drive the StData bus for stores. TypeIn (0:3) This means that it is a data
A TypeOut field trapped by a memory interface waiting for data to return, even if it is from a cache or external memory. It is returned along with the LdAdrIn bus.
【0027】LdStOut (0:3) これは、
メモリ演算のどの特色:ロード、LDA、ストア、また
はインストラクション・フェッチが要求されるかを決定
する。それは、TypeIn および LdAdrI
n フィールドとともに送られる。
LdValid メモリ・インタフェイスによりド
ライブされるこの信号は、バリド・データが LdDa
ta バスに配置されるときアサートされる。
MemScbok RFによりドライブされるこ
の信号は、カレント・メモリ・タイプのインストラクシ
ョンにより使用されるレジスタがフリーでないこと、お
よびレジスタが使用中でない場合インストラクションを
再発行しなければならないことを、論理装置の残りに示
す。[0027] LdStOut (0:3) This is
Determine which features of memory operations are required: loads, LDAs, stores, or instruction fetches. It is TypeIn and LdAdrI
Sent with the n field. LdValid This signal, driven by the memory interface, indicates that valid data is LdDa
Asserted when placed on the ta bus. This signal, driven by MemScbok RF, indicates to the rest of the logic that the register used by the instruction of the current memory type is not free, and that the instruction must be reissued if the register is not in use. show.
【0028】レジスタ実行バス
以下のバスは、RFにおよびRFからデータを伝達する
。
Src1Hi, Src1 これら2つの32ビ
ット・バスは、EUおよびコプロセッサに送られる64
ビット・ソース・オペランド#1を形成している。
Src2Hi, Src2 これら2つの32ビ
ット・バスは、EUおよびコプロセッサに送られる64
ビット・ソース・オペランド#2を形成している。
DstHi #,DstLo# これは、EUおよ
びコプロセッサが、実行された演算の結果をリターンす
るのに使用する64ビット・デスティネーション・バス
を形成している。SFRInBus (0:31)#
これは、それらがレジスタであるかのように外部コア
論理機能を読出すことができる32ビット特殊機能レジ
スタ・バスである。レジスタ・アドレス・フィールドが
SFRレジスタ・アドレスに整合している場合、RFに
より、SFRInBus は Src1 または S
rc2 バスをドライブすることができる。それもアサ
ートされた低いバスである。The buses below the register execution bus convey data to and from the RF. Src1Hi, Src1 These two 32-bit buses send 64 bits to the EU and coprocessor.
Forms bit source operand #1. Src2Hi, Src2 These two 32-bit buses send 64 bits to the EU and coprocessor.
Forms bit source operand #2. DstHi #, DstLo# This forms a 64-bit destination bus used by the EU and coprocessor to return the results of performed operations. SFRInBus (0:31)#
This is a 32-bit special function register bus that allows external core logic functions to be read as if they were registers. If the register address field matches the SFR register address, the RF causes SFRInBus to be either Src1 or S
Can drive rc2 bus. It is also a low bus asserted.
【0029】以下のバスは、RFにおよびRFからレジ
スタ・アドレス情報を伝達する。それぞれは7ビットで
ある。
S1Adr これは、Src1 バスをドライブす
るのに使用されるレジスタのアドレスである。
S2Adr これは、Src2 バスをドライブす
るのに使用されるレジスタのアドレスを指定する。
DstAdrout これは、実行されるべき演算
のデスティネーションを記憶するのに使用されるであろ
うレジスタのアドレスである。それは、適当なレジスタ
をスコアボード(およびチェック)するためRFにより
使用される。
DstAdrIn これは、DstHi および
DstLo バスにリターンするデータに関するレジ
スタ・アドレスである。The following buses convey register address information to and from the RF. Each is 7 bits. S1Adr This is the address of the register used to drive the Src1 bus. S2Adr This specifies the address of the register used to drive the Src2 bus. DstAdrout This is the address of a register that will be used to store the destination of the operation to be performed. It is used by the RF to scoreboard (and check) the appropriate registers. DstAdrIn This is the register address for the data returned to the DstHi and DstLo buses.
【0030】本発明について実施例に基づいて説明して
きたが、本発明の思想から離れることなく様々に改変し
得ることは当業者には明白であろう。Although the present invention has been described based on examples, it will be obvious to those skilled in the art that various modifications can be made without departing from the spirit of the invention.
【図1】 本発明によるレジスタ・ファイルの機能ブ
ロック図である。FIG. 1 is a functional block diagram of a register file according to the present invention.
【図2】 図1のレジスタ・ファイルのRAMアレイ
におけるRAMアレイおよび比較論理装置の詳細なブロ
ック図である。2 is a detailed block diagram of the RAM array and comparison logic in the RAM array of the register file of FIG. 1; FIG.
【図3】 図1および図2の回路の動作を示したタイ
ミング図である。3 is a timing diagram showing the operation of the circuits of FIGS. 1 and 2; FIG.
4 実行装置
8 メモリ・インタフェイス装置/命令デコード装置
10 ロード・アラインメント装置
12 ストア・アラインメント装置
14 ベースMUX
16 ロード・バイパス装置
18 レジスタRAMアレイ
19 リテラル発生論理装置
20 アドレス・デコーダ
22 アドレス・デコーダ4 Execution unit 8 Memory interface unit/instruction decoding unit 10 Load alignment unit 12 Store alignment unit 14 Base MUX 16 Load bypass unit 18 Register RAM array 19 Literal generation logic unit 20 Address decoder 22 Address decoder
Claims (2)
・インタフェイスと、複数のワード・レジスタを含んで
いるRAMアレイと、上記メモリ・インタフェイスと上
記RAMアレイとに接続され、上記メモリ・インタフェ
イスに向かうデータを配列し(ストアの場合)かつ上記
メモリ・インタフェイスからのデータをAMアレイに送
るよう準備する(ロードの場合)アラインメント論理装
置と、コラム・ラインがドライブされる直前に上記RA
Mアレイにおける上記レジスタをクリヤする装置と、を
含み、主メモリと、カレント・マイクロインストラクシ
ョンを送るマイクロインストラクション・バストに接続
可能なデータ・プロセッサにおいて、上記RAMアレイ
の出口ポートの上記コラム・ライン:Stデータ,ベー
ス,Src1、および Src2 に、上記メモリ・イ
ンタフェイスからリターンする上記Ldデータ・バスを
バイパスするロード・バイパス論理装置と、レジスタ比
較アドレス論理装置を含み、整合出力信号を発生するよ
う上記要求されたソース・レジスタのアドレスと、デー
タがリターンしている全レジスタのレジスタ・アドレス
を比較するデスティネーション・バイパス論理装置と、
上記整合出力信号に応答し、上記ロード・アラインメン
ト論理装置からの上記データを上記ソースのRAMコラ
ム・ラインに直接的に配置する装置と、から成ることを
特徴とするデータ・プロセッサ。1. A memory interface including an Ld data bus, a RAM array including a plurality of word registers, and a memory interface connected to the memory interface and the RAM array; alignment logic for aligning data destined for the AM array (for stores) and preparing data from the memory interface to be sent to the AM array (for loads);
a device for clearing said registers in said RAM array; said column line of said RAM array exit port: St. Data, base, Src1, and Src2 include load bypass logic for bypassing the Ld data bus returning from the memory interface and register compare address logic, and the request to generate a matched output signal. destination bypass logic that compares the address of the source register returned to the register with the register address of all registers to which the data is being returned;
a device responsive to the alignment output signal for placing the data from the load alignment logic directly onto a RAM column line of the source.
おける、複数のRAMセルを有するマルチポート・レジ
スタ・ファイルをロードする方法において、A.データ
を受け取る特定のセルを選択するよう、デコードされた
アドレスで上記RAMセルをエネーブルする過程と、 B.上記選択されたセルをゼロ状態に設定するよう、ク
リヤ・ラインをアサートする過程と、 C.セルにおけるゼロがセル出力ラインの状態に影響し
ないよう、コラム・ラインをネガティブ・トゥルーにプ
リチャージする過程と、 D.データがリターンしている全レジスタのレジスタ・
アドレスを、要求されたソース・レジスタのアドレスに
比較する過程と、 E.等しいならば、整合信号を発生する過程と、F.上
記データ・バスのデータを、整合信号が発生されるそれ
らセルに関するソースのRAMコラム・ラインに直接的
に配置する過程と、 から成ることを特徴とするマルチポート・レジスタ・フ
ァイルをロードする方法。2. A method of loading a multiport register file having a plurality of RAM cells in a pipelined microprocessor, comprising: A. B. enabling said RAM cell with a decoded address to select a particular cell to receive data; B. B. asserting a clear line to set the selected cell to a zero state; D. precharging the column lines to negative true so that zeros in the cells do not affect the state of the cell output lines; D. All registers for which data is returned
E. comparing the address to the address of the requested source register; If they are equal, generating a matching signal;F. placing data on the data bus directly into source RAM column lines for those cells for which alignment signals are generated.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US48825490A | 1990-03-05 | 1990-03-05 | |
| US488,254 | 1990-03-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04219825A true JPH04219825A (en) | 1992-08-10 |
Family
ID=23938975
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6245091A Pending JPH04219825A (en) | 1990-03-05 | 1991-03-05 | Data processor and method for loading multi-port register file |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPH04219825A (en) |
| GB (2) | GB2241801B (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000148493A (en) * | 1992-09-29 | 2000-05-30 | Seiko Epson Corp | Computer system |
| US6957320B2 (en) | 1992-09-29 | 2005-10-18 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5974538A (en) * | 1997-02-21 | 1999-10-26 | Wilmot, Ii; Richard Byron | Method and apparatus for annotating operands in a computer system with source instruction identifiers |
| US6862677B1 (en) | 2000-02-16 | 2005-03-01 | Koninklijke Philips Electronics N.V. | System and method for eliminating write back to register using dead field indicator |
| US6851044B1 (en) | 2000-02-16 | 2005-02-01 | Koninklijke Philips Electronics N.V. | System and method for eliminating write backs with buffer for exception processing |
| CN114143195B (en) * | 2021-11-19 | 2023-05-23 | 烽火通信科技股份有限公司 | Data packet processing device and method |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH063584B2 (en) * | 1983-12-19 | 1994-01-12 | 株式会社日立製作所 | Information processing equipment |
| GB8401807D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Pipelined data processing apparatus |
| AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
| JPH0769821B2 (en) * | 1988-03-04 | 1995-07-31 | 日本電気株式会社 | Bypass line control method in information processing equipment |
-
1991
- 1991-01-17 GB GB9101089A patent/GB2241801B/en not_active Expired - Fee Related
- 1991-03-05 JP JP6245091A patent/JPH04219825A/en active Pending
-
1993
- 1993-09-29 GB GB9320089A patent/GB9320089D0/en active Pending
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000148493A (en) * | 1992-09-29 | 2000-05-30 | Seiko Epson Corp | Computer system |
| JP2000148481A (en) * | 1992-09-29 | 2000-05-30 | Seiko Epson Corp | Computer system |
| JP2000148492A (en) * | 1992-09-29 | 2000-05-30 | Seiko Epson Corp | Computer system |
| JP2000148490A (en) * | 1992-09-29 | 2000-05-30 | Seiko Epson Corp | Computer system |
| US6957320B2 (en) | 1992-09-29 | 2005-10-18 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| US6965987B2 (en) | 1992-09-29 | 2005-11-15 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| US7000097B2 (en) | 1992-09-29 | 2006-02-14 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| US7447876B2 (en) | 1992-09-29 | 2008-11-04 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
Also Published As
| Publication number | Publication date |
|---|---|
| GB9320089D0 (en) | 1993-11-17 |
| GB9101089D0 (en) | 1991-02-27 |
| GB2241801B (en) | 1994-03-16 |
| GB2241801A (en) | 1991-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5185872A (en) | System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy | |
| US7882332B1 (en) | Memory mapped register file | |
| US5519842A (en) | Method and apparatus for performing unaligned little endian and big endian data accesses in a processing system | |
| US6434689B2 (en) | Data processing unit with interface for sharing registers by a processor and a coprocessor | |
| US6668316B1 (en) | Method and apparatus for conflict-free execution of integer and floating-point operations with a common register file | |
| US5790826A (en) | Reduced register-dependency checking for paired-instruction dispatch in a superscalar processor with partial register writes | |
| US5913054A (en) | Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle | |
| US6003126A (en) | Special instruction register including allocation field utilized for temporary designation of physical registers as general registers | |
| US7761694B2 (en) | Execution unit for performing shuffle and other operations | |
| US6594753B2 (en) | Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units | |
| US6961819B2 (en) | Method and apparatus for redirection of operations between interfaces | |
| JPH04219825A (en) | Data processor and method for loading multi-port register file | |
| US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
| JP2006527436A (en) | Data processing apparatus and method for transferring data values between register file and memory | |
| US6654870B1 (en) | Methods and apparatus for establishing port priority functions in a VLIW processor | |
| US20090037702A1 (en) | Processor and data load method using the same | |
| US6320813B1 (en) | Decoding of a register file | |
| KR100278136B1 (en) | Data processing device and data processing method | |
| US5799166A (en) | Window delta from current window for fast register file address dependency checking | |
| JP2861560B2 (en) | Data processing device | |
| US5870574A (en) | System and method for fetching multiple groups of instructions from an instruction cache in a RISC processor system for execution during separate cycles | |
| EP1632845A2 (en) | Processor with a register file that supports multiple-issue execution | |
| GB2269924A (en) | Register scoreboarding in a pipelined microprocessor | |
| US6735686B1 (en) | Data processing device including two instruction decoders for decoding branch instructions | |
| US6963961B1 (en) | Increasing DSP efficiency by independent issuance of store address and data |