JPH11154089A - 中央演算装置内のレジスタにリード/ライトアクセスするための装置 - Google Patents

中央演算装置内のレジスタにリード/ライトアクセスするための装置

Info

Publication number
JPH11154089A
JPH11154089A JP10260305A JP26030598A JPH11154089A JP H11154089 A JPH11154089 A JP H11154089A JP 10260305 A JP10260305 A JP 10260305A JP 26030598 A JP26030598 A JP 26030598A JP H11154089 A JPH11154089 A JP H11154089A
Authority
JP
Japan
Prior art keywords
data
registers
register
address
processing unit
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
Application number
JP10260305A
Other languages
English (en)
Inventor
Rod G Fleck
ジー フレック ロッド
Roger D Arnold
ディー アーノルド ロジャー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SMI Holding LLC
Original Assignee
Siemens Microelectronics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens Microelectronics Inc filed Critical Siemens Microelectronics Inc
Publication of JPH11154089A publication Critical patent/JPH11154089A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 CPU内のアドレスおよびデータレジスタ
に高速にリード/ライトアクセス可能な処理ユニットを
提供する。 【解決手段】 本発明はデータレジスタの組とアドレス
レジスタの組とを有するデータ処理ユニットに関する。
レジスタはnビットの幅を有する。さらにアドレスレジ
スタに関連したアドレスロードおよびストアバッファ
と、データレジスタに関連したデータロードおよびスト
アバッファと、前記ストアバッファに接続される複数の
バスラインを持つバスとを備えている。データメモリユ
ニットはバスに接続される。データレジスタを、少なく
ともnのデータレジスタが個別のバスラインに並列に接
続されるように配置し、アドレスレジスタを、少なくと
もmのアドレスレジスタが個別のバスラインに並列に接
続されるように配置する。ここでn、mは1よりも大き
い。したがって少なくとも4つのレジスタに並列にアク
セス可能である。

Description

【発明の詳細な説明】
【0001】
【発明の背景】本発明は、処理ユニットに、そしてより
特定すればマイクロコントローラのような中央処理ユニ
ット(CPU)に関する。マイクロコントローラは当業
技術者には良く知られており、(例えば4/8ビットコ
ントローラのような)ローエンドデバイスから(例えば
32ビットコントローラのような)ハイエンドデバイス
に至る多様なデバイスが利用されている。ハイエンドコ
ントローラは、レーザプリンタおよびハードディスクの
ような、ほとんどあらゆる種類の電子装置内において、
あるいは例えば自動車等におけるあらゆる種類の処理を
制御するために、用いられている。
【0002】極めて速いハイエンドコントローラに関し
て、解決されねばならない、より複雑な仕事を伴う要求
が生じている。特に、そのような装置はリアルタイムア
プリケーションを制御する必要がある。そのようなアプ
リケーションにおいては、外部イベントに極めて迅速に
反応する必要がある。もしそのようなイベントが発生し
たならば、少なくとも特定のレジスタ組の内容は切り替
えられる必要がある。もしこのコンテキスト切り替えが
より迅速であればそれだけ、制御装置の反応時間がより
良好であるといえる。
【0003】
【発明の要約】本発明の課題は、CPU内のアドレスお
よびデータレジスタに極めて迅速なリード/ライトアク
セスできる能力を持つ処理ユニットを提供することであ
る。
【0004】上記の目的は、1組のデータレジスタと1
組のアドレスレジスタとを持つ1つのデータ処理ユニッ
トによって達成される。各レジスタはnビットの幅を有
している。さらに、前記複数のアドレスレジスタに関連
した複数のアドレスロードおよびストアバッファと、前
記複数のデータレジスタに関連した複数のデータロード
およびストアバッファと、そして前記複数のストアバッ
ファに接続されている複数のバスラインを持つ1つのバ
スとが備えられる。複数のデータレジスタは、少なくと
もn個のデータレジスタがそれぞれのバスラインに並列
に接続されるように配列される。ここでnは1よりも大
きい。そして複数のアドレスレジスタは、少なくともm
個のアドレスレジスタがそれぞれのバスラインに並列に
結合されるように配列される。ここでmは1よりも大き
い。こうして少なくとも4つのレジスタが並列にアクセ
スされることが可能となる。
【0005】例えば、もし4つのデータレジスタと4つ
のアドレスレジスタが同時にロードまたはストアされる
ことが可能であれば、32ビットマイクロコントローラ
バスは256ビット幅でなければならない。そのような
配置の利点は、8つのレジスタが単に2つのそれぞれの
サイクルだけでストアおよびロードされるため、コンテ
キスト切り替えが極めて迅速にできるということであ
る。このことは、外部イベントに対する極めて迅速な反
応を可能とする。しかも、並列処理を提供するコマンド
が実行できるため、処理時間がスピードアップする。す
なわち、1を越えるレジスタが同時にロードまたはスト
アされることが可能である。
【0006】マルチレジスタリードおよびライト処理を
可能とするために、各レジスタにはマルチプル単方向お
よび/またはマルチプル双方向ポートが備えられ、これ
はレジスタを、メモリユニットおよび/またはアドレス
計算パイプまたは整数パイプまたは何らかの他の処理用
ユニットに結合させるためのものである。レジスタは異
なるレジスタ組に、例えば偶数および奇数に、分割され
ることもできる。こうして、それぞれのレジスタの最適
レイアウトが可能である一方、レジスタへのアクセス性
は維持される。上で指摘した複数のラインのおのおのは
分離的に選択されることが可能であり、そしてそれらラ
インは奇数または偶数メモリアドレスにリンクされる。
【0007】広い実現多様性が可能である。全てのレジ
スタセルが1つのマルチプルワード幅バスを通して通信
し、これによって各レジスタセルがマルチプルワード幅
バスの各ワードラインに接続される複数のリード/ライ
トラインを持つこともできる。あるいは、異なるレジス
タの組がメモリに接続されるマルチプルワード幅バスの
それぞれのワードラインに接続されることもできる。マ
ルチプレクサおよびアライメントユニットは、どのレジ
スタをもメモリ内のどのアドレスロケーションにも結合
することができる。
【0008】さらに、バイトおよびハーフワードのロー
ド命令のためのゼロおよび符号拡張を扱う1つのユニッ
トが準備される。アドレスレジスタは、1つのアドレス
フォワードバッファを通して1つのアドレス計算ユニッ
トまたは何らかの他の処理用ユニットに接続されること
ができ、そしてデータレジスタは、それぞれのデータフ
ォワードバッファを通して、乗算加算ユニット(MA
C)および/または整数実行ユニットまたは何らかの他
の処理用ユニットに結合される。
【0009】
【有利な実施形態】図1は、本発明による32ビットマ
イクロコントローラの汎用レジスタの概略図である。こ
の図においては、各レジスタの1つの単独ビットを示す
単に1つの平面のみが示されている。汎用レジスタファ
イル1は、1つのアドレスレジスタファイル2と、1つ
のデータレジスタファイル3とを含んでいる。これら
は、前もって決められたビット幅を持つ複数のアドレス
およびデータレジスタ4,7と、そしてバッファ5,
6,8,9とを含んでいる。望ましい実施例において
は、レジスタビット幅は32ビットであり、そしてレジ
スタの数は16である。このビット幅はそれぞれのマイ
クロコントローラ、マイクロプロセッサまたはデータ操
作ユニットに従って、どのようなビットサイズとするこ
ともできる。
【0010】アドレスレジスタ4は、一方ではバス13
を通してアドレスフォワードユニット5に接続され、他
方ではアドレスロードおよびストアバッファ6に接続さ
れている。さらにデータレジスタファイル1は複数の、
例えば32ビットのビット幅を持つ16のデータレジス
タである、データレジスタ7を含んでいる。第二バス1
4が備えられており、それはデータレジスタ7を、一方
ではデータロードおよびストアバッファ9に、そして他
方ではデータフォワードユニット8に接続する。汎用レ
ジスタファイル1は、一方では第三バス15を通してデ
ータメモリユニット10に、そして他方では付加バス1
6,17に接続されている。バス16は、アドレスフォ
ワードバッファ5を、およびデータフォワードバッファ
8の一部をユニット12に接続する。ユニット12は、
例えばアドレス計算ユニットおよび命令フェッチユニッ
ト(IFU)である。バス17はデータフォワードバッ
ファ8をユニット11に接続する。ユニット11は、例
えば乗算加算器(MAC)および整数実行ユニットであ
る。
【0011】図2から図6は、汎用レジスタファイル1
の素子をより詳細に示した図である。この図には、各レ
ジスタd0…d15,a0…a15の単に1つのビット
だけが示されている。レジスタd0…d15,a0…a
15の他の31ビットは並列に配置されている。図2か
ら図6までを通して、同じ番号は同じ素子を表してい
る。
【0012】図4はアドレスレジスタファイル内のレジ
スタを示している。より良く概観するために、レジスタ
a2からa13は図4には示されていない。アドレスレ
ジスタファイル4の各アドレスレジスタa0,…a15
は、読み取りのための2つの単方向出力と、そして3つ
の双方向I/Oポートとを有している。1つの内部バス
ライン40は全てのアドレスレジスタa0,…a15の
第一双方向I/Oポートに接続され、そして2つのライ
ン41および42は全てのアドレスレジスタa0,…a
15のそれぞれの2つの出力に接続されている。さら
に、2つの内部バスライン44および46は、全ての偶
数アドレスレジスタa0,a2,a4…a14のそれぞ
れのI/Oポートに接続されている。さらに2つのライ
ン43および45は、全ての奇数アドレスレジスタa
1,a3,a5…a15のI/Oポートに接続されてい
る。
【0013】図2Aは、図1のアドレスロードおよびス
トアバッファ6をより詳細に示している。バスライン4
3から46は、ストアバッファ101から104のそれ
ぞれの入力に接続されている。ストアバッファ101か
ら104の出力は、ドライバ106から109を通して
メモリバスライン119から122に接続されている。
全てのドライバはトライステートドライバであり、(示
されていない)制御ユニットによって選択的にアクティ
ブとされるための制御入力を備えている。2つのブロッ
ク100および105は4つのロードバッファを表して
おり、それらは一方ではメモリバスライン119から1
22に接続され、そして他方ではドライバ110から1
13を通して内部バスライン43から46に接続されて
いる。加えて、ロードバッファ105の出力はバッファ
115および116を通して内部バスライン43および
44に接続されている。
【0014】図5は、図1のアドレスフォワードユニッ
ト5を詳細に示した図である。バスライン40,41お
よび42は、ドライバ500,501および502それ
ぞれを通して、アドレスフォワード出力バスライン52
4,525および526に接続されている。2つのメモ
リバスライン121および122は、各々3つのドライ
バ503,504,505および506,507,50
8の入力に接続されている。ドライバ503および50
6の出力はバスライン526に、ドライバ504および
507の出力はバスライン525に、そしてドライバ5
05および508の出力はバスライン524に接続され
ている。内部バスライン43および44は2つのドライ
バ518および519の出力にそれぞれ接続されてい
る。ドライバ518および519の入力はライトバック
バッファ515の出力に接続され、そのライトバックバ
ッファの入力はアドレスフォワードバス入力ライン52
3に接続される。2つの他のドライバ516および51
7が設けられており、それらの出力は内部バスライン4
0に結合されている。ドライバ517の入力はバッファ
515の出力に接続されている。ドライバ516の入力
はバッファ514の出力に接続され、そのバッファの入
力はアドレスフォワードバス入力ライン522に接続さ
れている。バスライン45および46もまた、双方向ド
ライバ520および521それぞれを通して、バスライ
ン522および523に接続されている。バスライン5
23上の信号は、3つのドライバ509,510および
511の入力にも供給され、これらドライバの出力はバ
スライン524,525および526それぞれに接続さ
れている。バスライン522上の信号は、2つのドライ
バ512および513の入力にも供給され、これらのド
ライバの出力はバスライン524および525それぞれ
に接続されている。重ねて指摘するが、全てのドライバ
はトライステートドライバであり、それらには、(示さ
れていない)制御ユニットによって選択されるための制
御入力が備えられている。図1による3つのユニット
4,5および6は、アドレスレジスタファイルへの、そ
してアドレスレジスタファイルからのアドレス信号のパ
スを示している。そのパスによって図2Aによるバスラ
イン119から122はメモリユニット10に接続さ
れ、そしてバスライン522から524はアドレス計算
パイプおよび命令フォワードユニット12に接続され
る。
【0015】図3はデータレジスタファイル内のデータ
レジスタを示している。ここでもまた、より良い概観の
ためにレジスタd2からd13は図3には示されていな
い。データレジスタファイル5の各データレジスタd
0,…d15は、読み取りのための3つの単方向出力
と、そして2つの双方向I/Oポートとを有している。
2つのライン72および73は、全てのデータレジスタ
d0,…d15の最初の2つの出力にそれぞれ接続され
ている。さらに、内部バスライン71は、全ての偶数デ
ータレジスタd0,d2,d4…d14のそれぞれの出
力に接続され、一方内部バスライン70は、全ての奇数
レジスタd1,d3,d5…d15のそれぞれの出力に
接続される。さらに2つのライン74および76は、全
ての奇数アドレスレジスタd1,d3,d5…d15の
I/Oポートに接続される。最後に、2つの他のライン
75および77は、全ての偶数アドレスレジスタd0,
d2,d4…d14のI/Oポートに接続される。
【0016】図2Bは、図1のデータロードおよびスト
アバッファ9を示している。内部バスライン74から7
7は、4つのストアバッファ909から912それぞれ
の入力に結合される。ストアバッファ909の出力は、
ドライバ916を通してメモリバスライン921に結合
され、そしてストアバッファ910の出力はドライバ9
17を通してメモリバスライン920に結合される。バ
ッファ911および912の出力は、マスクユニット9
15の2つの入力端子に接続される。マスクユニット9
15には、2つの入力および2つの出力端子が備えられ
る。マスクユニット915の2つの出力端子は、ドライ
バ918および919それぞれを通して、2つのメモリ
バスライン922および923に結合される。2つのブ
ロック908および913は、4つのロードバッファを
描いている。ブロック913には2つの入力端子が備え
られ、それらは2つの内部バスライン900および90
1それぞれに接続され、そしてアラインブロック914
を通してメモリバスライン922および923に接続さ
れる。アラインブロック914には、2つの入力が備え
られ、それらはマスクユニット915の入力に、そして
ストアバッファ913の出力にそれぞれ接続される。さ
らに、ロードバッファ913の1つの出力は、それぞれ
のドライバ904および906を通して内部バスライン
74および76に結合される。ロードバッファ913の
他の出力は、ドライバ905および907を通して内部
バスライン75および77に結合される。第二ロードバ
ッファ908は、その入力側においてメモリバスライン
920および921それぞれに接続され、そしてその出
力側においてドライバ902および903それぞれを通
して内部バスライン74および75に接続される。再び
指摘すると、全てのドライバはトライステートドライバ
であり、それらには(示されていない)制御ユニットに
よって選択するための制御入力が備えられている。
【0017】図6は、図1のデータフォワードユニット
8を詳細に示している。内部バスライン70から73
は、ドライバ807から810を通してデータフォワー
ドバスライン802から805に結合されている。付加
的なデータフォワードバスライン806はドライバ82
7および828の出力端子に接続されており、それらの
入力端子はバスライン802および803それぞれに接
続されている。バスライン806は図1によるバス16
の一部であり、これはアドレス計算パイプおよび命令フ
ォワードユニット12に接続されている。バスライン9
00は3つのドライバ811,812および813の入
力に接続されており、それらの出力はバスライン80
5,804および802それぞれに接続されている。バ
スライン901は3つのドライバ814,815および
816の入力に接続されており、それらの出力はバスラ
イン805,804および803それぞれに接続されて
いる。他の2つのデータフォワードバスライン800お
よび801が備えられており、それらは2つのライトバ
ックバッファ829および830それぞれの入力端子に
結合されている。バッファ829および830の出力端
子は、ドライバ832および834それぞれを通してバ
スライン74および75に結合されている。加えて、バ
ッファ830の出力は、ドライバ833を通してバスラ
イン74に結合されている。バスライン800は、ドラ
イバ835を通してバスライン76に結合されており、
そしてバスライン801もまた、ドライバ836および
837それぞれを通してバスライン76および77に結
合されている。また、バスライン806も、ドライバ8
40および841それぞれを通してバスライン76およ
び77に結合されている。さらに、バスライン806
は、さらに別のライトバックバッファ831の入力端子
に結合されており、そのライトバックバッファの出力は
ドライバ838および839それぞれを通してバスライ
ン76および77に結合されている。また、バスライン
806は、ドライバ817から820それぞれを通して
バスライン802から805に結合されている。最後
に、バスライン800は、ドライバ821から823そ
れぞれを通してバスライン805,804および802
に結合されており、そしてバスライン801は、ドライ
バ824から826それぞれを通してバスライン803
から805に結合されている。再び、全てのドライバは
トライステートドライバであり、それには(示されてい
ない)制御ユニットによって選択するための制御入力が
設けられていることを指摘しておく。図2Aによるメモ
リバスライン119から122と、そして図2Bによる
920から923とは、図1のメモリバス15を形成す
る。図5によるバスライン522から526と、806
とは、バス16を形成し、そしてバスライン800から
805は図1のバス17を形成する。
【0018】図7は、アドレスレジスタセルの1つの実
施例を示している。図7は図4によるアドレスレジスタ
a0に関連した番号を示している。全てのレジスタa0
…A15が同じ構造を有していることが望ましい。レジ
スタコアは2つのインバータ400および401によっ
て形成されている。これらのインバータ400および4
01はスタティックメモリセルで構築されており、その
ため各インバータの出力は他のインバータの入力に接続
されている。インバータ400の入力と、インバータ4
01の出力とは、電界効果トランジスタ402,403
および406のロードパスを通してバスライン40,4
4および46に結合されている。電界効果トランジスタ
402,403および406の各々は伝送ゲートを形成
している。インバータ400の出力とインバータ401
の入力とは、5つの制御可能なトライステートドライバ
404,405,407,408および409の入力に
接続される。ドライバ404の出力はバスライン40に
接続され、ドライバ405の出力はバスライン44に、
そしてドライバ407の出力はバスライン46に接続さ
れる。ドライバ408の出力はバスライン41に接続さ
れ、そしてドライバ409の出力はバスライン42に接
続される。
【0019】図8はデータレジスタセルの1つの実施例
を示している。ここでもまた図8は図3によるデータレ
ジスタd0に関する番号を示している。全てのレジスタ
d0…d15が同じ構造を持つことが望ましい。レジス
タコアは2つのインバータ700および701によって
形成される。これらのインバータ700および701は
スタテックメモリセルを構築し、その結果各インバータ
の出力は他のインバータの入力に接続される。インバー
タ700の入力およびインバータ701の出力は、電界
効果トランジスタ702および703のロードパスを通
してバスライン75および77に結合される。インバー
タ700の出力およびインバータ701の入力は、5つ
の制御可能なトライステートドライバ704,705,
706,707および708の入力に接続される。ドラ
イバ704の出力は、バスライン75に接続され、そし
てドライバ705の出力はバスライン77に接続され
る。ドライバ706の出力はバスライン71に接続さ
れ、ドライバ707の出力はバスライン72に、そして
ドライバ708の出力はバスライン73に接続される。
【0020】他の全てのレジスタa1…a15およびd
1…d15は、図3および図4に示されるように、それ
ぞれのバスラインに結合される。伝送ゲート402,4
03,406,702および703(図7および図8参
照)およびトライステートドライバ404,407,4
08,409,704,705,706,707および
708は、それぞれの選択入力端子を通して制御可能で
ある。(示されていない)制御回路は、汎用レジスタフ
ァイル1(図1参照)における他の制御可能なドライバ
とともにそれら素子の動作を制御するためのそれぞれの
制御信号を発生する。ライト動作に関しては、一時には
レジスタの伝送ゲートの1つだけがアクティブとされる
ことができるが、何らかのリード動作に関しては複数の
トライステートドライバが並列にアクティブとなること
ができる。
【0021】汎用レジスタは、マイクロコントローラ/
マイクロコンピュータのようなデータ操作ユニットによ
って処理される全てのデータを扱う。このため、それら
はマイクロプロセッサ/マイクロコントローラコアの一
部であり、そしてそれらのデータを操作する方法は、そ
のようなデータ操作ユニットの結果的な速度に重要な影
響を有している。汎用レジスタファイル1(図1参照)
は、もっとも頻繁に用いられるオペランドをユニット1
1,12内の整数およびロードおよびストアパイプライ
ンに供給する。命令セットアーキテクチャにおけるロー
ドおよびストア命令は、データメモリ10へのアクセス
を提供する。データメモリには、レジスタファイル1へ
移送される前の大部分のオペランドが存在している。図
1に示されるように、レジスタファイルに関する機能ブ
ロック図は、アドレスレジスタファイル2およびデータ
レジスタファイル3に分割される。レジスタファイルを
通るデータ流は、データ操作ユニットによって処理され
るそれぞれの命令に依存している。
【0022】本発明によれば、データおよびアドレスレ
ジスタブロック4および7は、2つの分離されたブロッ
クに配置されている。ブロック7内のデータレジスタ
は、c1列およびr1行を持つ第1マトリクスに配置さ
れており、そしてブロック4内のアドレスレジスタはc
2列およびr2行を持つ第2マトリクスに配置されてい
る。望ましい実施例においては、両方のマトリクスが等
しくされ、これによって2列および8行が備えられる。
それにも関わらず、この実施例においては、ブロック4
内の4データレジスタおよびブロック7内の4アドレス
レジスタが並列に配置され、その結果8レジスタ、すな
わち4の偶数および4の奇数レジスタがメモリインター
フェース側の双方向ポートを通して同時にアクセスされ
ることができる。こうして、この実施例においては、一
方ではデータメモリユニットと、そして他方では以下に
説明されるデータ処理ユニットとインターフェースする
バス15が256ビットの幅を必要としている。
【0023】処理ユニット側においては、アドレスレジ
スタファイル4はバス16を通して何らかの処理ユニッ
トとインターフェースされる。この実施例においては、
バス16は6バスラインを備え、それにより5バスライ
ン522…526(図5参照)がアドレスレジスタファ
イルに接続される。データレジスタファイル7が、バス
17を通して何らかの処理ユニットとインターフェース
される。この実施例においては、バス17は6バスライ
ンを備えている。この実施例においては、図7および図
8による各レジスタセルは5ポートを有しており、これ
により2つの双方向ポートが偶数または奇数レジスタの
いずれかに割り当てられる。このため、この実施例にお
いては、7データレジスタおよび5アドレスレジスタが
同時にアクセスされることができ、そしてデータをいず
れの処理ユニットにも提供することができ、これによっ
ていくつかのレジスタだけがリードポートを通してアク
セスされることが可能となる。
【0024】マイクロコントローラを稼動させるオペレ
ーティングシステムに依存して、この配置は1つの単独
サイクルにおいてコアの複数の汎用レジスタにアクセス
する結果を生じさせる。本発明によれば、mおよびnは
1を越える整数であり、その結果最少でも4のレジスタ
が同時にアクセスされることができる。いくつかのポー
トの割り当てを、偶数および奇数レジスタ組に分割する
ことは、この数を2倍にすることができる。リアルタイ
ムオペレーティングシステムにおけるコンテキスト切り
替えは、切り替えられるべき8データレジスタおよび8
アドレスレジスタを必要とする。望ましい実施例におい
ては、8レジスタが同時にアクセスされるので、このこ
とは単に2サイクルで実行されることができる。コンテ
キスト切り替えのために単に4レジスタが切り替えられ
るべきであるならば、このことは単に1つのサイクルで
実行されることができる。
【0025】本発明によれば、各レジスタには複数の単
方向および複数の双方向ポートが設けられる。このこと
は、より多くのレジスタが同時にアクセスされることを
可能とし、そしてまた最少の時間で異なる命令が実行さ
れる広い多様性をも可能とする。このことは、以下に説
明されるように並列に生じる。これらの単方向および双
方向ポートはデータメモリに接続されているバスに1つ
ずつ結合されることができる。このことは、ポートが同
時に設けられるかまたはレジスタが偶数および奇数バス
ラインに結合された偶数および奇数レジスタに分割され
ることによって、それだけ多くのレジスタにアクセスす
ることを可能とする。図2Aおよび図2Bによる実施例
においては、メモリバスライン119および121、並
びにメモリバスライン920および922は、アドレス
およびデータレジスタファイル内の奇数レジスタに結合
されている。バスライン120および122、並びに9
21および923はそれぞれ偶数レジスタに結合してい
る。こうして、各レジスタの単に2つのポートだけが、
同時に各レジスタファイル4および7の4つのレジスタ
とインターフェイスするのに用いられる。データ処理側
においては、内部バスはレジスタの単方向および双方向
ポートに接続された付加的バスラインを含むことができ
る。この実施例においては、これらのバスラインは80
2…806および524…526(図6および5参照)
である。これらのバスラインに関して、偶数および奇数
レジスタに分割することは任意である。処理ユニット側
においては、同時により多くのレジスタがアクセスされ
ることができるのは上に説明したとおりである。
【0026】レジスタファイル1のデータメモリ側の双
方向256ビットバスインターフェイスは、データメモ
リ10とレジスタファイル1との間のオペランドの伝送
をサポートする。このバス15はまた、レジスタの上に
説明された構造によって、128ビット幅となることや
またはサイクル毎に256ビットバスの128ビットを
用いることも可能である。このバスの設計は、電力およ
び雑音に関する問題に依存して行われることができる。
基本的には、このバスは少なくとも4レジスタへの並列
アクセスをサポートしなくてはならない。
【0027】本発明による設計は、単独サイクルにおい
てバイト、ハーフワード、ワードおよびダブルワード伝
送を可能とする。コンテキストセーブまたはリストア動
作は、上で説明されたように2サイクルにおいて16ワ
ードの伝送(128ビットバスでは4サイクル)を可能
とする。しかし、レジスタファイル1は4サイクルで完
全なコンテキスト(32ワード)を(または128ビッ
トバス上では8サイクル)セーブまたはリストアするこ
とができる。一般的には、レジスタファイル1は、ワー
ド、ダブルワードおよび4重ダブルワードアクセスをサ
ポートする。バイト、ハーフワードおよび不整列アクセ
スのためのデータ取り扱いは、アドレスロードおよびス
トアバッファ6、データロードおよびストアバッファ9
において、および/またはDMUモジュール10におい
て操作される。
【0028】この実施例の汎用レジスタファイル1は、
32個の32ビットレジスタを含んでおり、これは本発
明の原理によって、上に説明されたように整数、並びに
ロードおよびストア命令の並列動作を容易にするために
等しく分割されている。データオペランドを整数タイプ
ラインに供給するレジスタのデータ部分は、データレジ
スタファイルブロック7(DGPR)に存在する。DG
PR7は、16個の32ビットデータレジスタを含んで
いる。アドレスオペランドをロードおよびストアタイプ
ラインに供給するレジスタのアドレス部分は、アドレス
レジスタファイルブロック4(AGPR)に存在する。
AGPR4は、16個の32ビットアドレスレジスタを
含んでいる。リードおよびライトアクセスのために、命
令はふつうレジスタアドレスを提供する。リードおよび
ライトアドレスポインタは命令フェッチ段階において命
令から得られ、そしてデコード段階に進む。リードポイ
ンタ内のアドレスは、デコード段階においてレジスタオ
ペランドを読みとるためにデコードされる。ライトポイ
ンタにおけるアドレスは、ライトバック段階に進められ
る。オペランドフォワードのための判断は、命令フェッ
チ段階におけるクリティカルパスを最少にするようデコ
ード段階において行われる。
【0029】含まれるアドレスシーケンスとともに、コ
ンテキスト命令は各レジスタファイル2,3において一
度に1つのレジスタグループをアクセスする。たとえ
ば、コンテキスト伝送の間に、アドレス領域a0、a
1、a4およびa5は第1サイクルの間にともにアクセ
スされ、そしてアドレス領域a3、a6およびa7は次
のサイクルの間にともにアクセスされる。
【0030】この実施例においては、MAC命令は、ユ
ニット11内の整数パイプラインとインターフェイスす
るデータレジスタファイル7内のリードおよびライトポ
ートの数を指定する。また、コンテキストアクセスは、
DMU10とインターフェイスするデータレジスタファ
イル7内の双方向I/Oポートの数の要求を指定する。
単独レジスタの構造は、図7および図8によってすでに
説明されている。整数ならびにロードおよびストア命令
を並列に実行する必要から、ポートは、排他的にユニッ
ト11およびDMU10の整数パイプラインとインター
フェイスするようデータレジスタファイル7において専
ら用いられる。DGPR7におけるリードおよびライト
ポートは、乗算およびロード命令の、または乗算および
ストア命令の並列動作を可能とする。たとえば、この実
施例におけるこの乗算命令は、バスライン802から8
05(図6参照)によって表される4つの32ビットリ
ードポートと、そしてバスライン800および801に
よって表されている2つの32ビットライトポートを必
要としている。コンテキストアクセスは、バスライン9
20から923(図2B参照)によって表されている4
つの32ビット双方向ポートと、そして内部バス900
および901を必要とする。この内部バスは、ユニット
11における整数パイプラインのために用いられるリー
ドポートからは分離されている。ロードおよびストア命
令は、ロードおよびストアポートはバスとして参照され
ていた、4つのコンテキストポートおよび内部バス74
から77(図2B参照)のうち、2つを共有することが
できる。残りの2つの内部コンテキストバスは、ライト
バックバスとして参照されることができるライトバック
動作のための整数パイプラインによって共有されること
ができる。
【0031】多くのアドレス計算命令は、ユニット12
のアドレス計算パイプラインとインターフェイスするた
めに、アドレスレジスタファイル4内の2つの32ビッ
トリードポートと、そして1つの32ビットライトポー
トを必要とする。この実施例においては、コンテキスト
アクセスは、DMU10とインターフェイスするアドレ
スレジスタファイル4内の双方向I/Oポートの数を指
定する。望ましい実施例においては、コンテキストアク
セスは、バスライン119から122(図2A参照)に
よって表されている4つの32ビット双方向ポートと、
そしてアドレス計算パイプラインに用いられているリー
ドポートから分離されている内部バスとを必要とする。
換言すれば、並列にアクセスされることができる各レジ
スタに関して1つのリード/ライトポートが備えられな
ければならないということである。そのため、ポートの
数はバスの幅に、またはこのバス上で並列に伝送される
ことができるワードの数に依存している。ロードおよび
ストア命令は、4つのコンテキストポートのうちの2
つ、そして4つの内部バスのうちの2つを共有する。こ
れらは、ロードおよびストアポートおよびバスとして参
照されることができる。残りの2つの内部コンテキスト
バスは、ライトバックバスとして参照されることができ
るライトバック動作のためのアドレス計算パイプライン
によって共有されることができる。バスライン800
(図6参照)によって表されている専ら用いられる32
ビット双方向ポートは、ユニット12の命令フェッチユ
ニットおよび特殊機能レジスタとアドレスレジスタファ
イル4との間の伝送を操作する。コンテキストおよびス
タックポインタは、汎用ファイル1とインターフェイス
するために、ライトバックバスを共有する。
【0032】レジスタファイル1において利用できるリ
ードおよびライトポートの数の制限によって、データお
よびアドレス両方のレジスタに関連する命令は現存する
ポートだけを共有する。結果として、この実施例におい
ては、整数命令と並列に発現したときの多くのアドレス
計算動作は現在のサイクルではキャンセルされる必要が
生じ、そしてそれらは引き続くサイクルに投入される。
レジスタファイル内の専用32ビット双方向ポート80
6は、データおよびアドレスレジスタファイル間のデー
タ伝送問題を解決する。データレジスタファイル7にお
けるリードポートからのデータオペランドは、この双方
向ポートを通してアドレスレジスタファイル4における
リードポートに導かれる。アドレス計算パイプラインか
らの結果は、アドレスレジスタファイル4内のライトポ
ートおよび、ライトバック動作のための双方向ポートを
通してデータレジスタファイル7内のロードおよびスト
アバスに導かれる。
【0033】リード変更ライト動作は、コンテキストセ
ーブまたはリストア動作の間にデータメモリからリンク
ワードをアクセスするように実行される。コンテキスト
セーブ動作は、リンクワードをアクセスするポインタを
利用する。コンテキストセーブ動作の間に、(a)リン
クワードがポインタレジスタ内にロードされ、(b)ポ
インタレジスタからの内容が(古いポインタ内容によっ
て指定されたように)リンクワードアドレスロケーショ
ン内に蓄積され、そして(c)ポインタレジスタは古い
ポインタ内容と想定される。コンテキストリストア動作
は、リンクワードをアクセスするためにポインタレジス
タを利用する。コンテキストリストア動作の間に、
(a)リンクワードがポインタレジスタ内にロードさ
れ、(b)ポインタレジスタからの内容が(古いポイン
タレジスタ内容によって指定されるのと同様)リンクワ
ードアドレスロケーション内にストアされ、そして
(c)ポインタレジスタは古いポインタ内容と想定され
る。
【0034】レジスタファイル1は、一方ではDMU1
0とインターフェイスし、そして他方ではアドレス計算
パイプラインIFU12に、そしてMACおよび整数パ
イプライン11に直接的に接続される。レジスタファイ
ルをアクセスするための制御は、命令から得られる。よ
りよい概観を得るために、これらのラインは図2Aから
図6においては示されていない。アドレスレジスタ4は
デコード(またはストアオペランドのための実行)サイ
クルの第1フェーズにおいて読みとられ、そしてライト
バックフェーズの第1フェーズにおいて書き込まれて、
ライトバック結果をもたらすことを避ける。たとえば、
次+1の命令が現在の命令からの結果を必要としている
(次は中間である)とき、オペランドは直接的にアドレ
スレジスタ4から読みとられる。データレジスタ7はデ
コード(またはストアオペランドのための実行)サイク
ルの第2フェーズにおいて読みとられ、そしてライトバ
ックサイクルの第2フェーズにおいて書き込まれる。別
のフェーズにおいてアドレスおよびデータレジスタをア
クセスすることはピーク電力を減少させる。データレジ
スタファイル3は、次のブロックを含んでいる:データ
汎用レジスタ7、データのためのロードおよびストアバ
ッファ9およびデータフォワード用バッファ8。アドレ
スレジスタファイル2は、以下のブロックを含んでい
る:アドレス汎用レジスタ4、アドレスのためのロード
およびストアバッファ6、およびアドレスフォワード用
ユニット5。
【0035】望ましい実施例においては、データレジス
タファイルブロック3は、16のデータレジスタd0、
…d15を含んでいる。データレジスタファイル7内の
基本データレジスタセルは、3つのリードポート71,
72,73(図6参照)と、そして2つの双方向ポート
75および77を有している。2つのリードポート72
および73は、16のレジスタd0、…d15のすべて
に接続され、これらレジスタはこれらレジスタd0、…
d15のいずれにもアクセスすることができる。しか
し、リードポート70,71は偶数または奇数レジスタ
のいずれかに接続され、その結果、偶数レジスタd0、
d2…d14は偶数ポート71を通してアクセスされ、
そして奇数レジスタd1、d3、…d15は奇数ポート
70を通してアクセスされる。MACおよび他の命令
は、第3のリードオペランドを必要とする。MAC命令
は、64ビット加算オペランドを必要とし、これはすで
に偶数アドレス領域に配列されているため、これ以上の
取り扱いを必要とはしない。しかし、もし第3オペラン
ドがレジスタアドレスに依存していくつかの特別な命令
におけると同様、32ビットデータであるならば、この
オペランドは偶数または奇数リードポート71,70上
に提示され、整数パイプラインにおけるさらなる取り扱
いを必要とする。特別な命令のためのオペランド取り扱
いは、整数パイプラインにおいて操作されることがで
き、それ自身の入力マルチプレクサにおいては、制御を
レジスタファイル1に送る必要を排除する。このことは
データレジスタファイルセルにおけるさらに1つのリー
ドポートを削除する。
【0036】レジスタセル内の各双方向ポート75,7
7,74,76は偶数または奇数レジスタのいずれかに
接続され、その結果偶数レジスタd0、d2…d14は
偶数ポート75,77を通してアクセスされ、そして奇
数レジスタd1、d3…d15は奇数ポート74,76
を通してアクセスされる。このことは、データレジスタ
セル内の余分な双方向ポートを排除する。しかし、デー
タ結果は、ロードおよびストア命令のためにデータメモ
リユニット10内の、または整数命令のためにデータフ
ォワードユニット8内の、いずれかの外側から適切なバ
スに整列されるかまたは取り扱われる必要がある。
【0037】整数、ロードおよびストア命令がシーケン
ス内に発生したとき、データレジスタファイル3内のデ
ータロードおよびストアバッファ76および77、なら
びにデータライトバックバス74および75はそれぞれ
整数およびストア命令によって占領される。バス74か
ら77のいずれかが利用可能となるまで、ロードデータ
および目的レジスタポインタはロードバッファ内にとど
まる。それまでは、ロードバッファ内のリードポインタ
および目的ポインタが整合したときにはいつでも、ロー
ドバッファはデータを供給する。
【0038】ロード命令シーケンスに続く整数に関して
は、ロードデータがデータロードおよびストアバスライ
ン76,77を占領し、一方整数命令のライトバック結
果がデータライトバックバスライン74,75を占領す
る。しかし、ストア命令シーケンスに引き続くロードに
関しては、データロードおよびストアバスライン76,
77を用いる代わりにロードデータがデータライトバッ
クバスライン74,75を占領し、一方、ストアデータ
がデータロードおよびストアバスライン76,77を占
領する。
【0039】アドレスレジスタファイルブロック2は、
16のアドレスレジスタを含んでいる。レジスタ内の基
本レジスタセルは、2つのリードポート41,42(図
5参照)と、そして3つの双方向ポート40,43,4
4または40,45,46を有している。しかし、リー
ドポート41,42および1つの双方向ポート40の両
方は16のレジスタa0…a15の全てに接続される。
アドレス計算命令は、それらがライトバックバスを共有
するために、単に2つのリードポートおよび1つのライ
トポートを必要とするのみである。ロードおよびストア
命令は、ロードおよびストアポートを利用する。第3の
双方向ポートは、ループおよびジャンプ命令に用いられ
る。普通であれば、偶数および奇数双方向ポートをアク
セスすることができるように、アドレス結果は、ロード
およびストア命令のためにデータメモリユニット10
か、またはアドレス計算命令のためにアドレスフォワー
ドユニット5かの、いずれかの外側で整列されるか、ま
たは取り扱われる必要がある。
【0040】データ依存潜伏を最少とするため、データ
フォワードユニット8は現在の命令の実行段階における
ロードまたは整数結果を次の命令のデコード段階におけ
るリードポートに進行させる。アドレス依存潜伏を最少
にするため、アドレスフォワードユニット5は、現在の
命令の実行段階におけるロードまたはアドレス計算結果
を次の命令のデコード段階におけるリードポートに進行
させる。現在の命令が最新のデータを保持しているとし
ても、レジスタ内容は次の命令のためのデコード段階に
おいて依然読みとられる。現在の命令が最新のデータ結
果を有しているならば、レジスタからの内容は廃棄され
る。もしフォワード検出が命令フェッチ段階において次
の命令に関して行うことができるならば、そのアドレス
またはデータが実行段階における現在の命令の結果から
得られるべきそれらオペランドに関してレジスタ読み取
りは削除でき、そのようにしてレジスタファイル1にお
ける電力を節減できる。
【0041】ロードおよびストアまたはアドレス計算命
令に引き続く整数は、並列に発現することができる。し
かし、この実施例においては、もし整数命令の結果がア
ドレス計算パイプラインに進行する必要があるならば、
アドレス計算パイプライン内の命令が1サイクルストー
ルされる。整数命令に引き続くアドレス計算、ロードま
たはストアは決して並列には発生しないため、アドレス
計算パイプラインから整数パイプラインへの進行結果が
整数パイプラインをストールさせる必要はない。32ビ
ット双方向バスは、データフォワードユニット8とアド
レスフォワードユニット5との間のデータ伝送を提供す
る。特別なフォワード用パスは、ストア命令に引き続く
整数の実行を並列にすることを可能とする。実行段階に
おける整数パイプラインからの結果は直接的にストアバ
ッファに向けられる。
【0042】整数命令に関するライトバック動作はデー
タフォワード用ユニット8におけるライトバックバッフ
ァ829,830,831(図6参照)を通して行われ
る。アドレス計算、ループおよび何らかのジャンプ命令
のためのライトバック動作は、アドレスフォワード用ユ
ニット5内のライトバックバッファ515(図5参照)
を通して行われる。
【0043】データロードおよびストアバッファ9にお
けるマスクブロック915(図2B参照)を除いて、ロ
ードおよびストアバッファブロック6および9は機能的
に同等である。データロードおよびストアバッファ9お
よびアドレスロードおよびストアバッファ6は、コンテ
キスト、ロードおよびストア動作のためにDMU10と
インターフェイスする。データロードおよびストアバッ
ファ9は、データレジスタファイル7とDMU10との
間のインターフェイスを提供する。アドレスロードおよ
びストアバッファ6は、アドレスレジスタファイル2と
DMU10との間のインターフェイスを提供する。図2
Aから図6のデータパス図がビット0に関する構造を示
しているとしても、同じ構造が図中における全てのビッ
トに適用される。
【0044】簡単なロードおよびコンテキストロード命
令は、ライトバック動作のためにロードバッファ10
0,105(図2A参照)、908および913(LD
B)を用いる。これらのロードバッファ100,10
5,908および913はデータフォワードユニット5
およびアドレスフォワードユニット8の両方においてラ
イトバックバッファから分離されている。コンテキスト
ロード命令は、コンテキストライトバック動作の間の2
ダブルワード段階に関して全ての4つのロードバッファ
100,105,908および913を利用する。ダブ
ルワードに関する異なるロード命令は、ライトバック動
作の間のダブルワード段階に関して2つのロードバッフ
ァをを利用する。他のロード命令および同様な命令はラ
イトバック動作に関するワード段階に関してバッファ1
00,105,908および913の偶数または奇数ロ
ードバッファを利用する。
【0045】データロードおよびストアバッファ9内の
ALIGNサブブロック914は、バイトおよびハーフ
ワードロード命令に関するゼロおよび符号を操作する。
しかし、DMU10はロードおよびストアスイッチ内に
おける整列されていないバイト、ハーフワード、ワード
およびダブルワードロード動作に関するパッキングされ
ていないロードデータおよびデータ取り扱いを操作す
る。
【0046】簡単なストアおよびコンテキストストア命
令は、ストア動作のためにストアバッファ(STB)1
01…104;909…912を利用する。コンテキス
トストア命令は、コンテキストストア動作の間の2つの
ダブルワード段階に関して4つの全てのストアバッファ
101…104;909…912を利用する。ダブルワ
ードストア命令は、ストア動作の間のダブルワード段階
に関して2つのストアバッファを利用する。他のストア
命令および類似の命令は、ストア動作に関するワード段
階に関して偶数または奇数ストアバッファ102,10
4,910,912;101,103,909,911
を利用する。しかし、DMU10はロードおよびストア
スイッチ内の整列されていないバイト、ハーフワード、
ワードおよびダブルワードストア動作のためのパッキン
グストアデータおよびデータ取り扱いを操作する。
【0047】ワードに関するスワップ命令は、その内容
がデータメモリ内容とスワップされるレジスタを必要と
し、この動作は1つの単独サイクルのリード変更ライト
動作として見ることができる。ロードおよびストアバッ
ファ6および9は、スワップ動作を操作する。ワードに
関するスワップ命令は、ワードに関する1つのロード命
令およびワードに関する1つのストア命令を並列に実行
する。実行段階においては、データメモリからのロード
データはロードバッファ908および913に進み、そ
してレジスタファイルからのストアデータはストアバッ
ファ909…912に進む。ライトバック段階において
は、ストアデータはデータメモリ10に進み、そしてロ
ードデータはデータレジスタファイル7に取り込まれ
る。(示されていない)周辺インターフェイスおよび内
部メモリは、スワップ命令を2つの分離された動作とし
て取り扱う。
【0048】特別なロードおよびマスク命令に関して
は、単一サイクルのリード変更ライト動作が必要とさ
れ、そしてこの命令はわずかな変更があるものの、上に
説明されたスワップ命令と類似の動作を実行する。ロー
ドおよびマスク命令は、マスク動作を実行するのにマス
クユニット915を利用する。ロード動作はデータメモ
リを読み取り、そしてロードバッファ908および91
3を更新するが、しかしレジスタd0…d15を更新す
ることはない。ストア動作はレジスタd0…d15から
ダブルワードを読み取り、そして単独のワードのみをデ
ータメモリ10内にストアする。データメモリ10から
のデータはロードバッファ908および913に進み、
そして実行段階においてレジスタファイル7からのスト
アデータがストアバッファ内に進む。マスクユニット9
15は、ロードバッファ908および913からの出力
と下位ワードを合併させるため、ストアバッファ911
および912からの上位ワードを利用する。ライトバッ
ク段階においては、ストアデータはデータメモリ10に
進む。データメモリユニット10と汎用レジスタファイ
ルとの間には、メモリ内に蓄積されているデータへのア
クセスを改善するためにキャッシュメモリを随意的に設
けることができる。
【図面の簡単な説明】
【図1】本発明によるレジスタファイルの機能ブロック
図である。
【図2】Aはデータロードおよびストアバッファユニッ
トを示す図であり、Bは、アドレスロードおよびストア
バッファユニットを示す図である。
【図3】データレジスタファイルユニットを示す図であ
る。
【図4】アドレスレジスタファイルユニットを示す図で
ある。
【図5】データフォワードユニットを示す図である。
【図6】アドレスフォワードユニットを示す図である。
【図7】アドレスレジスタセルをより詳細に示した図で
ある。
【図8】データレジスタセルをより詳細に示した図であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロジャー ディー アーノルド アメリカ合衆国 カリフォルニア サニー ヴェイル ケリック コート 566

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 データレジスタの組とアドレスレジスタ
    の組とを含み、 各レジスタはnビットの幅を有し、 前記アドレスレジスタと関連するアドレスロードおよび
    ストアバッファと、 前記データレジスタと関連するデータロードおよびスト
    アバッファと、 前記ストアバッファに接続される複数のバスラインを持
    つ1つのバスと、 前記バスに接続される1つのデータメモリユニットとを
    含むデータ処理ユニットにおいて、 少なくともnのデータレジスタがそれぞれのバスライン
    に並列に接続されるような方法で、データレジスタが配
    置され、 nは1よりも大きく、 少なくともmのアドレスレジスタがそれぞれのバスライ
    ンに並列に結合されるような方法で、アドレスレジスタ
    が配置され、 mは1よりも大きい、ことを特徴とするデータ処理ユニ
    ット。
  2. 【請求項2】 各レジスタが複数のポートを有してお
    り、 前記バスラインの少なくとも1つが各レジスタの前記ポ
    ートの1つに並列に結合されている、請求項1記載のデ
    ータ処理ユニット。
  3. 【請求項3】 各レジスタが、1つの入力端子および1
    つの出力端子を持つ1つのメモリセルと、 入力および出力を持つ複数のトライステートバッファと
    を含み、 前記出力端子が前記複数のトライステートバッファの入
    力に接続されている、請求項2記載のデータ処理ユニッ
    ト。
  4. 【請求項4】 各レジスタがさらに、複数の伝送ゲート
    を含み、前記メモリセルの前記入力端子が前記複数の伝
    送ゲートの出力に接続されている、請求項3記載のデー
    タ処理ユニット。
  5. 【請求項5】 前記アドレスレジスタおよび前記データ
    レジスタが、前もって規定されたレジスタの組に分割さ
    れ、 前記バスラインの少なくとも1つが、レジスタの1つの
    組に関連する各レジスタの前記ポートの1つに結合して
    いる、請求項2記載のデータ処理ユニット。
  6. 【請求項6】 少なくとも1つのレジスタの組が偶数レ
    ジスタを含み、 少なくとも1つのレジスタの組が奇数レジスタを含む、
    請求項5記載のデータ処理ユニット。
  7. 【請求項7】 前記アドレスレジスタに関連した1つの
    アドレスフォワードユニットと、 前記アドレスフォワードユニットに接続された1つの処
    理用ユニットをさらに含む、請求項1記載のデータ処理
    ユニット。
  8. 【請求項8】 各アドレスレジスタが複数のポートを有
    し、 アドレスフォワードユニットが複数の端子を有し、 前記端子の少なくとも1つが前記アドレスレジスタの少
    なくとも1つの前記ポートの1つの結合している。請求
    項7記載のデータ処理ユニット。
  9. 【請求項9】 各レジスタが、1つの入力端子および1
    つの出力端子を有する1つのメモリセルと、 入力および出力を持つ複数のトライステートバッファと
    を含み、 前記出力端子が前記複数のトライステートバッファの入
    力に接続されている、請求項8記載のデータ処理ユニッ
    ト。
  10. 【請求項10】 各レジスタがさらに、複数の伝送ゲー
    トを含み、 前記メモリセルの前記入力端子が前記複数の伝送ゲート
    の出力に接続されている、請求項9記載のデータ処理ユ
    ニット。
  11. 【請求項11】 前記アドレスレジスタが、前もって規
    定されたアドレスレジスタの組に分割され、 前記端子の少なくとも1つが、アドレスレジスタの1つ
    の組に関連する各アドレスレジスタの前記ポートの1つ
    に結合されている、請求項9記載のデータ処理ユニッ
    ト。
  12. 【請求項12】 アドレスレジスタの少なくとも1つの
    組が、偶数アドレスレジスタを含み、 アドレスレジスタの少なくとも1つの組が、奇数アドレ
    スレジスタを含む、請求項11記載のデータ処理ユニッ
    ト。
  13. 【請求項13】 前記データレジスタと関連する1つの
    データフォワードバッファと、 前記データフォワードバッファに接続された1つの処理
    用ユニットとをさらに含む、請求項1記載のデータ処理
    ユニット。
  14. 【請求項14】 各データレジスタが複数のポートを有
    し、 データフォワードユニットが複数の端子を有し、 前記端子の少なくとも1つが前記データレジスタの少な
    くとも1つの前記ポートの1つに結合されている、請求
    項13記載のデータ処理ユニット。
  15. 【請求項15】 各レジスタが、1つの入力端子および
    1つの出力端子を持つ1つのメモリセルと、 入力および出力を持つ複数のトライステートバッファと
    を含み、 前記出力端子が前記複数のトライステートバッファの入
    力に接続されている、請求項14記載のデータ処理ユニ
    ット。
  16. 【請求項16】 各レジスタがさらに、複数の伝送ゲー
    トを含み、 前記メモリセルの前記入力端子が前記複数の伝送ゲート
    の出力に接続されている、請求項15記載のデータ処理
    ユニット。
  17. 【請求項17】 前記データレジスタが前もって規定さ
    れたデータレジスタの組に分割され、 前記端子の少なくとも1つが、データレジスタの1つの
    組に関連した各データレジスタの前記ポートの1つに結
    合されている、請求項14記載のデータ処理ユニット。
  18. 【請求項18】 データレジスタの少なくとも1つの組
    が偶数データレジスタを含み、 データレジスタの少なくとも1つの組が奇数データレジ
    スタを含む、請求項17記載のデータ処理ユニット。
  19. 【請求項19】 1つのアラインユニットが設けられ、 アラインユニットが、偶数または奇数レジスタを前記バ
    スを通して、メモリの偶数または奇数アドレスに接続す
    る、請求項1記載のデータ処理ユニット。
  20. 【請求項20】 1つのマスクユニットが設けられ、マ
    スクユニットが少なくとも1つの前記レジスタの少なく
    とも1つのポートに接続される、請求項2記載のデータ
    処理ユニット。
JP10260305A 1997-09-12 1998-09-14 中央演算装置内のレジスタにリード/ライトアクセスするための装置 Pending JPH11154089A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/928428 1997-09-12
US08/928,428 US6041387A (en) 1997-09-12 1997-09-12 Apparatus for read/write-access to registers having register file architecture in a central processing unit

Publications (1)

Publication Number Publication Date
JPH11154089A true JPH11154089A (ja) 1999-06-08

Family

ID=25456221

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10260305A Pending JPH11154089A (ja) 1997-09-12 1998-09-14 中央演算装置内のレジスタにリード/ライトアクセスするための装置

Country Status (5)

Country Link
US (1) US6041387A (ja)
EP (1) EP0902360B1 (ja)
JP (1) JPH11154089A (ja)
KR (1) KR19990029748A (ja)
DE (1) DE69838701T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527036A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プロセッサのアドレス発生ユニット

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567910B2 (en) * 1998-02-13 2003-05-20 Texas Instruments Incorporated Digital signal processing unit with emulation circuitry and debug interrupt enable register indicating serviceable time-critical interrupts during real-time emulation mode
US6256725B1 (en) * 1998-12-04 2001-07-03 Agere Systems Guardian Corp. Shared datapath processor utilizing stack-based and register-based storage spaces
EP1050800A1 (en) 1999-05-03 2000-11-08 STMicroelectronics SA A pipelined execution unit
US6397324B1 (en) * 1999-06-18 2002-05-28 Bops, Inc. Accessing tables in memory banks using load and store address generators sharing store read port of compute register file separated from address register file
US6732255B1 (en) * 1999-09-15 2004-05-04 Koninklijke Philips Electronics N.V. Can microcontroller that permits concurrent access to different segments of a common memory by both the processor core and the DMA engine thereof
US6766440B1 (en) * 2000-02-18 2004-07-20 Texas Instruments Incorporated Microprocessor with conditional cross path stall to minimize CPU cycle time length
US7443737B2 (en) 2004-03-11 2008-10-28 International Business Machines Corporation Register file
US20060200649A1 (en) * 2005-02-17 2006-09-07 Texas Instruments Incorporated Data alignment and sign extension in a processor
US9632947B2 (en) * 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9697318B2 (en) * 2015-10-08 2017-07-04 Altera Corporation State visibility and manipulation in integrated circuits
CN111857823B (zh) * 2020-07-15 2024-10-29 北京百度网讯科技有限公司 用于写回指令执行结果的装置和方法、处理装置
US12443412B2 (en) 2022-01-30 2025-10-14 Simplex Micro, Inc. Method and apparatus for a scalable microprocessor with time counter
US12190116B2 (en) 2022-04-05 2025-01-07 Simplex Micro, Inc. Microprocessor with time count based instruction execution and replay
US12141580B2 (en) 2022-04-20 2024-11-12 Simplex Micro, Inc. Microprocessor with non-cacheable memory load prediction
US12169716B2 (en) 2022-04-20 2024-12-17 Simplex Micro, Inc. Microprocessor with a time counter for statically dispatching extended instructions
US12288065B2 (en) 2022-04-29 2025-04-29 Simplex Micro, Inc. Microprocessor with odd and even register sets
US12106114B2 (en) 2022-04-29 2024-10-01 Simplex Micro, Inc. Microprocessor with shared read and write buses and instruction issuance to multiple register sets in accordance with a time counter
US12112172B2 (en) 2022-06-01 2024-10-08 Simplex Micro, Inc. Vector coprocessor with time counter for statically dispatching instructions
US12147812B2 (en) 2022-07-13 2024-11-19 Simplex Micro, Inc. Out-of-order execution of loop instructions in a microprocessor
US12282772B2 (en) 2022-07-13 2025-04-22 Simplex Micro, Inc. Vector processor with vector data buffer
US12541369B2 (en) 2022-07-13 2026-02-03 Simplex Micro, Inc. Executing phantom loops in a microprocessor
US12566610B2 (en) 2023-03-14 2026-03-03 Simplex Micro, Inc. Microprocessor with apparatus and method for replaying load instructions
US12566609B2 (en) 2023-03-14 2026-03-03 Simplex Micro, Inc. Microprocessor with apparatus and method for handling of instructions with long throughput
US12566613B2 (en) 2023-11-13 2026-03-03 Simplex Micro, Inc. Microprocessor with speculative and in-order register sets
US12613698B2 (en) 2024-03-19 2026-04-28 Simplex Micro, Inc. Apparatus and method for hiding vector load latency in a time-based vector coprocessor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4313162A (en) * 1979-12-14 1982-01-26 Burroughs Corporation I/O Subsystem using data link processors
US4766564A (en) * 1984-08-13 1988-08-23 International Business Machines Corporation Dual putaway/bypass busses for multiple arithmetic units
US4811296A (en) * 1987-05-15 1989-03-07 Analog Devices, Inc. Multi-port register file with flow-through of data
EP0473805A1 (en) * 1990-09-03 1992-03-11 International Business Machines Corporation Computer system with improved performance
JP2861560B2 (ja) * 1991-12-25 1999-02-24 松下電器産業株式会社 データ処理装置
US5513363A (en) * 1994-08-22 1996-04-30 Hewlett-Packard Company Scalable register file organization for a computer architecture having multiple functional units or a large register file
US5644780A (en) * 1995-06-02 1997-07-01 International Business Machines Corporation Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527036A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プロセッサのアドレス発生ユニット

Also Published As

Publication number Publication date
EP0902360B1 (en) 2007-11-14
EP0902360A3 (en) 2002-09-04
DE69838701D1 (de) 2007-12-27
DE69838701T2 (de) 2008-10-30
KR19990029748A (ko) 1999-04-26
EP0902360A2 (en) 1999-03-17
US6041387A (en) 2000-03-21

Similar Documents

Publication Publication Date Title
JPH11154089A (ja) 中央演算装置内のレジスタにリード/ライトアクセスするための装置
US6694426B2 (en) Method and apparatus for staggering execution of a single packed data instruction using the same circuit
EP3798823A1 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
JP3452929B2 (ja) マルチプロセッサ
US20120079247A1 (en) Dual register data path architecture
US20100106944A1 (en) Data processing apparatus and method for performing rearrangement operations
CN108205448B (zh) 具有在每个维度上可选择的多维循环寻址的流引擎
CN1666174B (zh) 用于信号处理的处理器
WO2004040456A2 (en) Distributed data cache architecture
US5781763A (en) Independent control of DMA and I/O resources for mixed-endian computing systems
JPH11212786A (ja) レジスタベースデータ処理のためのデータパスおよび方法
EP1381957A2 (en) Data processing apparatus and system and method for controlling memory access
US7822955B2 (en) Data processing apparatus and method for utilizing endianess independent data values
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
WO2025207901A1 (en) Vector mask buffers in a vector instruction execution pipeline
US20110208951A1 (en) Instruction processor and method therefor
US7613905B2 (en) Partial register forwarding for CPUs with unequal delay functional units
JPH02306361A (ja) マイクロプロセッサ
CN102043750A (zh) 一种微处理器总线结构及微处理器
US20060064553A9 (en) Data processing apparatus and system and method for controlling memory access
JPH06332700A (ja) 情報処理装置
JPS6180452A (ja) ベクトル処理装置
JPH0314049A (ja) キャッシュメモリ装置
JPWO2004023291A1 (ja) 情報処理装置
JPH0421125A (ja) 演算処理装置