JPH09128238A - Cpuデータ経路における同時入出力動作のための複数レジスタバンクシステム - Google Patents

Cpuデータ経路における同時入出力動作のための複数レジスタバンクシステム

Info

Publication number
JPH09128238A
JPH09128238A JP8212915A JP21291596A JPH09128238A JP H09128238 A JPH09128238 A JP H09128238A JP 8212915 A JP8212915 A JP 8212915A JP 21291596 A JP21291596 A JP 21291596A JP H09128238 A JPH09128238 A JP H09128238A
Authority
JP
Japan
Prior art keywords
data
register
group
banks
register bank
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
JP8212915A
Other languages
English (en)
Inventor
B Sidman Steven
ビー. シッドマン スティーブン
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.)
Sharp Corp
Sharp Microelectronics Technology Inc
Original Assignee
Sharp Corp
Sharp Microelectronics Technology 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 Sharp Corp, Sharp Microelectronics Technology Inc filed Critical Sharp Corp
Publication of JPH09128238A publication Critical patent/JPH09128238A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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
    • 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/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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)
  • Advance Control (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 レジスタ・ベースCPUにおいて、データを
付加的なレジスタバンクにロードおよびアンロードする
と同時に、CPUレジスタバンク内のデータを処理す
る。 【解決手段】 ロード/処理/アンロード機能を行うた
めのCPUにおける様々なレジスタバンクと、適切なデ
ータバスとの相互接続は、単純状態マシンプロセッサで
あり得るロード/格納制御論理ブロックによって制御さ
れる。ロード/格納制御論理は、通常のプログラム実行
の間に、特定の演算ルーチンの終りにあるソフトウェア
命令によって、トリガされる。別々のロード命令および
格納命令およびそれらの待ちクロックサイクルを必要と
する代わりに、このソフトウェア命令が行われる。算術
論理演算装置(ALU)が、処理のためにデータが前も
ってロードされたレジスタバンクに逐次接続され得るの
で、CPUレジスタバンクからデータをロードおよびア
ンロードする間の、ALUによるデータ処理を停止させ
る必要性がなくなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはコンピ
ュータに関し、より詳細には、レジスタベースコンピュ
ータの中央処理装置(CPU)に関する。
【0002】
【従来の技術】汎用レジスタベースコンピュータは、C
PU内でデータ記憶レジスタの1つ以上のバンクを用い
ている。データは、算術データ処理あるいはその他のデ
ータ処理の間に、データ記憶レジスタに一時的に格納さ
れる。データ記憶レジスタは、レジスタブロックとして
も公知であるレジスタバンク内に通常配置される。レジ
スタバンクの大きさは、コンピュータの内部アーキテク
チャによって決定され、設計上の選択事項である。デー
タは、より大きいコンピュータメモリ記憶装置およびC
PUの算術論理演算装置(ALU)と接続するバスを介
して、CPUのレジスタに流入したり、そこから流出し
たりする。32ビットCPUは、典型的には、32ビッ
トデータバスおよび32ビットレジスタを有し、それに
よってデータ経路を介してデータを並行して移動させる
ことが可能になる。CPUにおけるデータ記憶レジスタ
バンクは、命令およびメモリアドレス情報を格納するた
めのその他の専用レジスタ、ALU、およびデータ処理
において用いられる接続データバスと共に、CPUデー
タ経路と総称される。
【0003】レジスタベースCPUにおいて、データ経
路の外部にあるが、CPUにおける主要な構成要素全て
と動作可能に接続されているソフトウェアデコーダおよ
び論理制御ブロックからのプログラミング命令に従っ
て、データは移動させられ、処理される。データは、コ
ンピュータのメインメモリあるいはキャッシュメモリか
ら検索され、CPUのレジスタバンクにロードされる。
レジスタバンクがロードされると、個々のレジスタにお
けるオペランドは、論理制御ブロックからのプログラム
命令に従ってALUによって処理される。例えば、AL
Uは、2つの異なるレジスタの内容を加算あるいは乗算
し、第3のレジスタ位置に結果を格納する。演算処理が
完了すると、データはレジスタバンクからアンロードさ
れ、メインメモリあるいはコンピュータ内の別の位置に
送られる。レジスタベースCPUはフレキシブルかつ効
率的である。コンピュータの比較的遅いメインメモリを
介してデータをロードおよび格納することを必要とせず
に、データがALUに迅速に与えられ、別のレジスタ位
置に格納され得るので、レジスタの処理速度は速くな
る。
【0004】
【発明が解決しようとする課題】レジスタベースCPU
はデータ処理において効率的であるが、単一のCPUデ
ータ経路においてデータが処理される実際のアクティブ
演算時間は、処理サイクル時間全体の何分の一かにすぎ
ない。まず、データはメモリからCPUレジスタバンク
にロードされ、次いで、ALUによって処理されなけれ
ばならない。次いで、処理されたデータは、レジスタバ
ンクからアンロードされ、メモリあるいは他の場所に転
送される。従って、データがレジスタバンクに常駐する
処理ステップの間のみ、演算が実際に行われる。レジス
タバンクのロードおよびアンロードの間には、CPUは
データ処理を実際に行わない。
【0005】CPUの動作あるいはCPUの動作を制御
するプログラミングソフトウェアの大きな変更を必要と
せずに、CPUの処理能力をさらに利用するCPU処理
システムおよびアーキテクチャを設けることが有利であ
る。
【0006】CPUのレジスタバンクがロードおよびア
ンロードされているときのALUのアイドル時間を最小
化することによって、データ処理の間にALUをより長
い時間用いることも有利である。
【0007】レジスタのロードおよびアンロードの間に
演算シーケンスを休止する必要なく、プレロードされた
複数のレジスタブロックに格納されたデータに逐次ブロ
ック演算を行うことによって、レジスタベースコンピュ
ータにおけるCPUデータ経路の演算効率を向上させる
ことも有利である。
【0008】
【課題を解決するための手段】本発明によれば、一つ以
上の外部制御器からのコマンド下で、一つ以上のデータ
バスによってCPUから搬送されまたはCPUに搬送さ
れるデータの処理に用いられるタイプのレジスタベース
CPUに、データ経路が提供される。データ経路は、外
部プログラム可能制御器に動作可能に接続された一つ以
上の算術プロセッサであって、外部プログラム可能制御
器によって指示されるとおりにデータを処理する、一つ
以上の算術プロセッサを備えている。複数のデータ格納
レジスタバンクが、データ経路に設けられる。レジスタ
バンクのうちの少なくとも2つが相互交換可能であり、
各レジスタバンクは、一つ以上の算術プロセッサ内のデ
ータを処理するために、それらの算術プロセッサに断続
的に接続される。相互交換可能なレジスタバンクは、デ
ータをロードおよびアンロードする一つ以上のI/Oポ
ートと、レジスタバンク内のデータが処理される場合
に、一つ以上の算術プロセッサに接続する少なくとも一
つのプロセッサポートとを各々備えている。
【0009】データ経路は、相互交換可能なレジスタバ
ンクに動作可能に接続されたレジスタ機能制御器であっ
て、一つ以上のレジスタバンクにより構成される第1の
グループのレジスタバンクのプロセッサポートを算術プ
ロセッサに選択的に接続するレジスタ機能制御器をさら
に備えている。第1のグループのプロセッサポートがプ
ロセッサに接続されると、第1のグループのレジスタバ
ンク内のデータが処理される。制御器は、一つ以上のレ
ジスタバンクから構成される第2のグループのレジスタ
バンクのI/Oポートをデータ経路のデータバスに選択
的に接続する。I/Oポートがデータバスに接続される
と、データは第2のグループのレジスタバンクにロード
およびアンロードされる。このように構成されたデータ
経路は、第1のグループのレジスタ内のデータが算術プ
ロセッサによって処理されると同時に、第2のグループ
のレジスタバンクからデータをロードおよびアンロード
することを可能にする。レジスタ機能制御器は、第1の
グループのレジスタバンクをデータ経路内の別の相互交
換可能なレジスタバンクと選択的に相互交換することに
よって、新しい第2のグループを形成する別の相互交換
可能なレジスタバンクがデータをロードおよびアンロー
ドするためのデータバスに接続されると同時に、新しい
第1のグループのレジスタバンク内のデータが処理され
得る。
【0010】本発明は、一つ以上の外部制御器からのコ
マンド下で、一つ以上のデータバスによってCPUから
搬送されまたはCPUに搬送されるデータを処理するタ
イプのレジスタベースCPUのデータ経路において用い
る方法をさらに含む。この方法におけるステップは、C
PU内の第1のグループの一つ以上のレジスタバンクを
一つ以上の算術プロセッサに同時に接続することによっ
て、第1のグループのレジスタバンク内に格納されてい
るデータを算術プロセッサによって処理するステップ
と、前ステップと同時に、第2のグループの一つ以上の
レジスタバンク内のレジスタからデータをロードおよび
アンロードするために、第2のグループのレジスタバン
クをデータ経路のデータバスに接続するステップと、第
1のグループのレジスタバンク内のデータの処理および
第2のグループのレジスタバンクからのデータのロード
およびアンロードが完了すると、第1のグループのレジ
スタバンクのレジスタを処理されるデータを含む別の相
互交換可能なレジスタバンクと選択的に相互交換するス
テップとを包含する。
【0011】
【発明の実施の形態】図1(従来技術)は、レジスタベ
ースコンピュータのための代表的な従来のCPUデータ
経路を示している。データ経路10は、データの演算を
扱うCPUの構成要素を有している。図1は、データ経
路10の主要なアクティブ構成要素および接続データバ
スを示す簡略化された図式である。本発明の基本的な特
徴を明確に示すために、当業者に公知の多くの動作上の
接続は、本明細書の図1およびその他の図面では省略さ
れる。例えば、命令デコードおよび論理制御ブロック2
0は、参照符号24で概略的に示される複数の信号経路
を介して、データ経路10内の図示されるすべての構成
要素に動作上接続される。命令デコードおよび論理制御
ブロック20は、データ経路10の外部制御装置であ
り、当業者に公知の方法で論理制御ブロック20に与え
られるソフトウェアプログラミングおよび制御信号に基
づき、データ経路の様々な構成要素だけではなく、コン
ピュータ(図示せず)の別の部分も制御する。図1に示
されるもう一つの外部構成要素はメモリブロック30で
ある。このメモリブロック30は、キャッシュメモリを
含む、コンピュータのメインメモリを概略的に表してい
る。データおよび動作命令は、コンピュータの符号化お
よび命令フォーマットを用いて、データ経路10によっ
てメモリ30から検索され、メモリ30に格納される。
本発明は、データ経路10のアーキテクチャに関し、特
定のソフトウェアフォーマットあるいはタイプもしくは
命令フォーマットあるいはタイプに限定されない。
【0012】図1に示されるデータ経路10は、従来の
レジスタベースCPUの基本的な構成要素を示す簡略化
された図式である。16個の32ビットデータ記憶レジ
スタからなるレジスタバンクは、参照符号40で示され
ている。あるいは、異なるサイズのレジスタバンクを本
発明で用いてもよい。レジスタバンク40は、プログラ
ム状態情報などを保持する付加的な記憶レジスタも含み
得る。本発明は、CPUデータ経路に設けられ得る様々
な状態レジスタではなく、演算機能で用いられるデータ
記憶レジスタに関する。
【0013】データバス45は、メモリ30にデータを
搬送し、メモリ30からデータを搬送する32ビットデ
ータバスである。レジスタバンク40は、データをレジ
スタにロードおよびアンロードするための一つ以上の入
力/出力ポート(I/Oポート)を有している。図1に
示されるように、レジスタバンク40は、I/Oポート
50、51、52および53を有し得る。ポート50
は、データ経路45に接続している。ポート52および
53は、レジスタバンク40からCPUの算術論理演算
装置(ALU)60にデータを与える。ALUは、接続
バス62および64を介して数学的演算を行う。バス6
2および64は、概略的に示されている。典型的には、
CPUの主要構成要素の間でデータを搬送するために、
2つ以上のメインデータバスがCPUデータ経路に設け
られている。これによって、ALUが複数のレジスタの
読み出しを同時に行うことが可能になる。ALU動作の
結果は、図1において参照符号66で概略的に示されて
いる分離バスラインを介して、レジスタバンクに戻され
る。
【0014】あるいは、レジスタバンク40からアンロ
ードされ、バス45を介してメモリに戻されたデータを
格納するために、コンピュータメモリ30にアドレス情
報を与えるメモリアドレスレジスタ70に、ALUの結
果を書き込んでもよい。ALUの結果は、論理制御ブロ
ック20からのプログラミング命令に従って、メモリア
ドレスレジスタ70を介してメモリに直接戻されてもよ
い。分離プログラミング命令レジスタ77も、論理制御
ブロック20に命令を送るためにデータ経路10に設け
られる。命令レジスタは、ALUをバイパスする論理制
御ブロックからの命令フェッチコマンドに応答して、命
令を格納する。
【0015】図2は、図1に類似した、データ経路10
および関連付けられた装置の概略図である。図2におい
て同じ構成要素は、図1と同じ参照符号で示される。図
2に示されるデータ経路10は、データをレジスタバン
ク40にロードおよびアンロードすることによって呈さ
れる、演算が非効率であるという問題を解決するため
の、従来のアプローチを含んでいる。この問題とは、一
つ以上のI/Oポート50、51、52および53を介
してレジスタからデータがロードあるいはアンロードさ
れるたびに生じるALU60の「ダウン時間」である。
ALU60は、ロードあるいはアンロードの間にデータ
処理あるいは演算を行うことができない。メモリ30内
に格納されたデータからの検索は、少なくとも数クロッ
クサイクルを必要とする。記憶アドレスは、転送される
データ項目毎に識別されなければならない。ある状況で
は、メモリ30にアクセスするためのロード/アンロー
ド遅延は受け入れられない。プログラム割込み、例え
ば、コンピュータによって優先順位が与えられた別の演
算を取り扱うためにコンピュータソフトウェアがCPU
演算に割込みをかける場合、アクティブレジスタバンク
がデータをクリアすることが必要になる。図2は、その
ような事象によって生じる遅延を回避するためにいくつ
かのコンピュータ製造メーカーによって用いられる、一
つの解決法を示している。この解決法は、割込みコマン
ドを受け取るとレジスタバンク40に代えてスワップさ
れ得る、レジスタバンク40に類似あるいはレジスタバ
ンク40と同一の、第2の並列レジスタバンク80を設
けることである。割込みは、図2で矢印84で概略的に
示されている。割込み命令を受け取ると、CPUは、典
型的には進行中の計算を完了し、次いで、レジスタバン
ク40内にデータを保存するために、レジスタバンク8
0をレジスタバンク40にスワップする。このように、
割込み処理のためにレジスタを解放する目的で、レジス
タバンク40の内容をメモリ30にアンロードする必要
がない。データ経路10においてレジスタバンク40を
レジスタバンク80に置き換えることよって、割込み応
答時間の速度が速くなり、割込み事象が完了すると、C
PUが割込み前の状態に迅速に戻ることが可能になる。
【0016】図2において、レジスタバンク40および
80のスワッピングが概略的に示されている。I/Oポ
ート50、51、52および53へのデータバスライン
が、符号A、B、CおよびDでそれぞれ示されている。
同一のI/Oバスラインは、レジスタバンク80で同一
のI/Oポート50、51、52および53にそれぞれ
接続され、これらは符号A'、B'、C'およびD'でそれ
ぞれ示されている。割込みの間にレジスタバンクがスワ
ップされると、バスラインA、B、CおよびDを介する
接続は、バスラインA'、B'、C'およびD'を介して再
び指示される。当業者が理解するように、レジスタバン
ク40とレジスタバンク80との間の接続の実際の切換
えは、データバス10内の、論理制御ブロック20によ
って制御される適切なマルチプレクサスイッチ(図示せ
ず)によって達成される。レジスタバンク40とレジス
タバンク80との間のスワップを達成するためのマルチ
プレクサの構成は、I/Oポートおよびプロセッサポー
トの数および位置によって決まり、データ経路10の設
計および配線の要求に応じて達成され得る。あるいは、
レジスタバンク40および80は、必ずしも互いに物理
的に離れている必要はなく、実際には、より大きい単一
のレジスタバンクの一部であってもよい。機能的には、
レジスタバンク80は、割込み応答の間を除いては分離
し、使用されないままであり、レジスタバンク80上の
I/Oおよびプロセッサポート50、51、52および
53は、割込み応答の間を除いては使用禁止であり、い
かなる外部データバスとも接続されない。レジスタバン
ク40および80が両方とも複数のレジスタバンクを含
むより大きいブロックの一部である場合、レジスタバン
ク80を含むブロックの部分のI/Oおよびプロセッサ
ポートは、割込み応答に必要になるまで、使用禁止であ
る。割込み応答の一部としてレジスタバンク80の機能
を実行するための物理的アーキテクチャの様々な変形が
従来技術において利用可能であり、当業者は、その他の
改変も容易に行い得る。
【0017】迅速な割込み応答のために冗長データ記憶
レジスタバンク80を設ける技術は、多くのレジスタベ
ースCPU、例えば、California、CampbellのZilog社
製造のZ80およびRISCプロセッサのARM600
シリーズにおいて用いられている。図2の技術によっ
て、割込みの間の時間が節約され、CPUデータ処理の
間、プロセッサの状態が保持されるが、現在のところ、
この技術の使用は割込み機能のみに限られる。
【0018】図3は、本発明の第1の実施態様を示して
いる。図1に示されている従来のデータ経路と共通の、
CPUデータ経路10の構成要素は、図3において同一
の参照符号で示され、それらの構成要素の機能は、図1
を参照して既に記載した構成要素の機能と同一である。
図3のCPUデータ経路10において、レジスタ100
およびレジスタ102として示される2つの同一の相互
交換可能なレジスタバンクは、CPU演算のためのデー
タをロードし、処理し、かつ、アンロードするために用
いられる。レジスタバンク100および102と図1の
レジスタバンク40とは、図1に示され、かつ、レジス
タバンク100および102に設けられている、I/O
およびプロセッサポート50、51、52および53
が、マルチプレクサ110および110'ならびにデマ
ルチプレクサ112および112'に接続されている点
で異なっている。マルチプレクサおよびデマルチプレク
サの目的は、レジスタバンク100および102のポー
トをALU60およびデータバス45に選択的に接続す
る手段を設けることである。
【0019】マルチプレクサ110は、データをレジス
タバンク100のレジスタにロードおよびアンロードす
るための少なくとも3つのデータソースを有している。
マルチプレクサ110への一つの入力はデータバス45
であり、別の入力はALU出力バス66である。第3の
入力は、バス120を介する代替データソース125か
ら得られる。代替データソース125は、例えば、ディ
ジタル化された映像あるいは音声信号からの実時間デー
タストリームであり得る。マルチプレクサ110は、ロ
ード/格納制御論理ブロック135から制御ライン13
0に与えられるマルチプレクサへのコマンドに基づき、
マルチプレクサ110はこれらのデータソースからデー
タソースを選択する。ロード/格納制御論理ブロック
は、コンピュータの動作ソフトウェアに基づき前もって
プログラムされた命令に従って、コンピュータ論理制御
ブロック20から制御命令を受け取る。
【0020】マルチプレクサ110'は、ポート50お
よび51ならびにレジスタバンク102に接続するため
の複数の入力データソースも有している。データソース
は、マルチプレクサ110に与えられるデータソースと
同一である。マルチプレクサ110'は、マルチプレク
サ110と同様な方法で、ロード/格納制御論理ブロッ
ク135によってライン130'を介して制御される。
【0021】データ入力とレジスタバンク100のI/
O入力ポートとの間にマルチプレクサ110を介在さ
せ、データ入力とレジスタバンク102のI/O入力ポ
ートとの間にマルチプレクサ110'を介在させて、少
なくとも一つの付加的なデータソースをレジスタバンク
100および102に接続することを可能にすることに
より、レジスタバンクへのI/Oポートの数を効果的に
増加させる。
【0022】デマルチプレクサ112は、レジスタバン
ク100のプロセッサポート52および53に接続さ
れ、バス62および64を介してALU60にデータを
指示する。あるいは、デマルチプレクサ112からの出
力は、バス145を介して分離データ記憶装置位置14
0に転送される。
【0023】デマルチプレクサ112'は、レジスタバ
ンク102のプロセッサポート52および53からデー
タを受け取り、デマルチプレクサ112と同様に、デー
タをバス62、64および145に指示する。デマルチ
プレクサ112および112'は、ライン130および
130'をそれぞれ介してロード/格納制御論理ブロッ
ク135によって制御される。レジスタバンク100お
よび102のプロセッサポート52および53とALU
60との間にデマルチプレクサ112および112'を
それぞれ設置する動作上の効果は、2つのレジスタバン
ク100および102のうちどちらをALU60に接続
するかを選択することである。同様に、マルチプレクサ
110および110'が、ロード/格納制御論理135
から受け取られる制御命令に従って、データバス45お
よび66あるいはバス120に選択的に接続される。
【0024】図4は、ロード/格納制御論理135、マ
ルチプレクサ110および110'ならびにデマルチプ
レクサ112および112'によって行われる接続のシ
ーケンスを示す。レジスタバンク100についてのI/
Oおよびプロセッサポート50、51、52および53
への接続は、「レジスタA(100)」の下の、左側の
欄に示されている。シーケンスステップ1において、レ
ジスタ100のポート50、51、52および53は、
バス45、66、62および64にそれぞれ接続され
る。レジスタバンク100は、それ自体がデータ処理に
用いられている。レジスタバンク100への上記の接続
と同時に、レジスタバンク102のI/Oプロセッサポ
ート50、51、52および53が、見出し「レジスタ
B(102)」の下の、右側の欄のシーケンスステップ
1に示されている。レジスタ102のポート50は、バ
ス120に接続され、ポート52は、バス145に接続
される。このことは、レジスタバンク102が、ロード
/アンロード動作中であることを示している。次のシー
ケンスステップ2において、レジスタバンク100のポ
ート50はバス120に接続され、ポート52はバス1
45に接続され、レジスタバンク100はロード/アン
ロードモードである。同時に、シーケンスステップ2に
おいて、レジスタバンク102のポート50、51、5
2および53は、バス45、66、62および64にそ
れぞれ接続され、レジスタバンク102は、動作の処理
段階にあり、その処理段階ではデータがALU60を介
して処理されている。シーケンスステップ3は、シーケ
ンスステップ1について記載された接続を繰り返す。シ
ーケンスステップ4は、シーケンスステップ2について
記載された接続を繰り返す。接続のシーケンスは、この
ように無限に繰り返され得る。
【0025】図3に示される本発明の第1の実施態様
の、図1および図2に示される構成よりも特に有利な点
は、データ処理においてALU60をより効果的に用い
ることである。図3において、レジスタバンク100お
よび102は、ロード/アンロード動作とデータ処理動
作との間で繰り返しスワップされる。レジスタバンク1
00がアンロードされ、データを再ロードしている間
に、レジスタバンク102はALU60に接続され、A
LU60の中のデータが処理される。I/Oポートとプ
ロセッサポートとの相互接続が、ロード/格納制御論理
ブロック135によって切り換えられると、レジスタバ
ンク100中のデータが処理されると同時に、データは
レジスタバンク102にアンロードおよび再ロードされ
る。
【0026】実際に、ロード/格納制御論理ブロック1
35は、相互交換可能なレジスタバンク100および1
02に動作可能に接続されたレジスタ機能制御装置とし
て動作する。ロード/格納制御論理ブロック135は、
マルチプレクサ110および110'ならびにデマルチ
プレクサ112および112'と共に、相互交換可能な
レジスタバンク(100〜102)のうちの一つのプロ
セッサポートをALU60に選択的に接続することによ
ってレジスタバンク中のデータを処理しながら、もう一
方のレジスタバンクのアイドルポートをデータバス12
0および145に選択的に接続することによってデータ
をもう一方のレジスタバンクにロードおよびアンロード
する。次いで、マルチプレクサ110および110'な
らびにデマルチプレクサ112および112'は、上記
された相互接続を逆にすることを可能にし、第1のマル
チプレクサが、データロード/アンロードバス120お
よび145に接続され、同時に、第2のレジスタバンク
中のデータを処置するために、第2のレジスタバンクが
I/Oプロセッサポートに接続される。レジスタバンク
100および102をロード/アンロード機能とデータ
処理機能との間で切り換える能力によって、処理時間が
短縮され、プロセッサ動作がより効率的になる。図3に
示されるデータ経路10の基礎的な機能動作は、レジス
タバンク100と102との間の切換えを除いて、図1
に示されるデータ経路の動作と同一である。従って、一
旦レジスタバンクがALU60に接続されると、基本的
なアーキテクチャおよびCPUデータ経路への接続は変
わらないので、図1に示されるメインプロセッサ論理制
御ブロック20について書き込まれたソフトウェアは、
図3の実施態様と実質的に変わらないように動作する。
【0027】図5は、図3および図4について示され、
かつ、記載された、本発明の第1の実施態様の改変例を
示している。図5は、付加的な構成要素を収容するよう
にわずかに再構成されているが、図中で右上端に命令デ
コードおよび論理制御ブロック20が移動された、図3
に示される同一の基本的なCPUデータ経路を示してい
る。図3および図5において同一の構成要素は、同一参
照番号によって示される。図5の実施態様は、図3およ
び図4の第1の実施態様の2つのレジスタバンク100
および102の代わりに、3つのレジスタバンク20
0、202および204を有している。ロード/アンロ
ード機能がレジスタバンクのうちの2つで別々に行われ
るのに対して、第1の実施態様においては、ロード/ア
ンロード機能がレジスタバンクのうちの一つで行われて
いる間、もう一つのレジスタバンクはデータ処理を行う
ことを除いて、レジスタバンク200、202および2
04の機能およびそれらの間の相互接続は、第1の実施
態様におけるレジスタバンク100および102の機能
およびそれらの間の相互接続と実質的に同じである。
【0028】第1の実施態様におけるレジスタバンク1
00のように、レジスタバンク200は、2つのI/O
ポート50および51ならびに2つのプロセッサポート
52および53を有している。I/Oポート50および
52は、レジスタバンク200がデータを処理している
ときには、マルチプレクサ110によってデータバス4
5あるいは66に選択的に接続され、データがデータソ
ース125からレジスタバンクにロードされているとき
には、データバス120に選択的に接続される。プロセ
ッサポート52および53は、レジスタバンク200が
データを処理しているときには、バス62および64に
デマルチプレクサを介して選択的に接続され、レジスタ
バンク200がデータをアンロードしているときには、
データバス145に選択的に接続される。第1の実施態
様におけるように、マルチプレクサ110およびデマル
チプレクサ112は、制御ライン130を介してロード
/格納制御論理ブロック135によって制御される。ロ
ード/格納制御論理は、以下に記載するシーケンスに従
って、レジスタバンク200への接続を切り換える。
【0029】レジスタバンク202は、I/Oポート5
0および51ならびにプロセッサポート52および53
を有している。I/Oポート50および51は、マルチ
プレクサ110'を介してデータバス45、66および
120に選択的に接続される。プロセッサポート52お
よび53は、デマルチプレクサ112'を介してバス1
45、62および64に選択的に接続される。マルチプ
レクサ110'およびデマルチプレクサ112'を介する
レジスタバンク202への接続は、マルチプレクサ11
0およびデマルチプレクサ112を介したレジスタバン
ク200への接続と同一である。マルチプレクサ11
0'およびデマルチプレクサ112'の動作は、ライン1
30'を介してロード/格納制御論理ブロック135に
よって制御され、接続のシーケンスは以下に記載する。
【0030】レジスタバンク204は、I/Oポート5
0および51ならびにプロセッサポート52および53
を有している。I/Oポート50および51は、マルチ
プレクサ110"を介してデータバス120、45およ
び66に選択的に接続される。プロセッサポート52お
よび53は、デマルチプレクサ112"を介してバス6
2および64に選択的に接続される。接続は、マルチプ
レクサ110およびデマルチプレクサ112によるレジ
スタバンク200への接続と同様に行われる。マルチプ
レクサ110"およびデマルチプレクサ112"は、ライ
ン130"を介するロード格納制御論理ブロック135
によって制御される。
【0031】レジスタバンク200、202および20
4への接続のシーケンスを、図6に示す。この図は、レ
ジスタバンクのポートが、様々なバスにどのようなシー
ケンスで接続されるかを示す。
【0032】図6を参照すると、マルチプレクサ110
およびデマルチプレクサ112を介する、レジスタバン
ク200のI/Oおよびプロセッサポート50、51、
52および53の接続が、左側の欄に示されている。シ
ーケンスステップ1において、レジスタバンク200内
のデータが処理される。従って、I/Oポート50およ
び51は、マルチプレクサ110を介してデータバス4
5および66に接続され、プロセッサポート52および
53は、デマルチプレクサ112を介してバス62およ
び64にそれぞれ接続される。この処理構成のとき、レ
ジスタバンク200は、図1に示される従来技術のCP
Uと同様に、ALU60を介して処理データに接続され
る。レジスタバンク200の上記のプロセス構成と同時
に、(図6の中欄に示される)レジスタバンク202
が、レジスタバンク202からデータをアンロードする
ために、デマルチプレクサ112'を介してバス145
に接続される。レジスタバンク200および202の上
記の処理構成と同時に、(図6の右欄に示される)レジ
スタバンク204のポート50が、マルチプレクサ11
0"を介してデータバス120に接続され、これによっ
てデータがレジスタバンク204にロードされる。従っ
て、図5および図6の実施態様において、レジスタバン
ク202がデータをアンロードし、レジスタバンク20
4がデータをロードするのと同時に、レジスタバンク2
00は、データを処理する。
【0033】シーケンスステップ1が完了すると、ロー
ド/格納制御論理ブロック135が、マルチプレクサ1
10、110'および110"ならびにデマルチプレクサ
112、112'および112"を介して行われる接続を
変えることによって、図6の2番目の列に示されるシー
ケンスが提供される。この構成において、レジスタバン
ク200のポート50がデータバス120に接続される
ことによって、データをレジスタバンク200にロード
し、レジスタバンク202のポート50、51、52お
よび53がバス45、66、62および64にそれぞれ
接続されることによって、レジスタバンク202内のデ
ータを処理し、レジスタバンク204のポート52をデ
ータバス145に接続することによって、レジスタバン
ク204からデータをアンロードする。
【0034】シーケンスステップ3において、レジスタ
バンク200のポート52がデマルチプレクサ112を
介してバス145に接続されることによって、レジスタ
バンク200からデータをアンロードする。レジスタバ
ンク202のポート50は、マルチプレクサ110'を
介してバス120に接続されることによって、データを
レジスタバンク202にロードする。レジスタバンク2
04のポート50、51、52および53は、マルチプ
レクサ110"およびデマルチプレクサ112"を介して
バス45、66、62および64にそれぞれ接続され
る。
【0035】シーケンスステップ4は、シーケンスステ
ップ1について記載された接続パターンを繰り返し、シ
ーケンスステップ5は、シーケンスステップ2について
記載された接続パターンを繰り返す。付加的なシーケン
スステップが、CPUデータ経路における処理のために
データが与えられる限り、シーケンスステップ1、2お
よび3のパターンを無限に繰り返し続ける。
【0036】次いで、ロード、アンロードおよび処理ス
テップが完全に分離していることによって、レジスタバ
ンクのロードおよびアンロードに関連づけられたデータ
処理遅延をさらに低減させるので、図5および図6の実
施態様は、本発明の第1の実施態様をより一層効率的に
動作させる。
【0037】図6に示される表から、レジスタバンク2
00、202および204の間の接続の繰り返しサイク
ルが、環状バッファの動作と類似している。図7は、レ
ジスタバンク200(A)、202(B)および204
(C)の環状バッファ構成の概念を概略的に示してい
る。付加的なレジスタバンクが図7の環状バッファ、あ
るいは、図3および図5に示される本発明のCPUデー
タ経路に付加され、それによって付加的な特殊機能を行
い得る。例えば、ロード−処理−アンロード機能をCP
U内の別個のレジスタバンクにおいて行うのに加えて、
付加的なレジスタバンクへ別の組の接続を行うことによ
って、レジスタバンク内のデータの特殊な再構成など
の、別の有効な機能が行われ得る。レジスタバンクをC
PUデータ経路に付加する概念は、図3と図5との間の
変化に示されている。付加的なレジスタバンクが、同様
に付加され得る。
【0038】本発明は、ディジタル化された映像あるい
は音声信号の処理に必要とされるように、データのスト
リームの繰り返し処理において特に有効である。ディジ
タル信号処理(DSP)の側面を別の形態のディジタル
演算と組み合わせる多くのタイプの処理がある。DSP
は、データの大きなブロックに、命令の短ループを繰り
返し実行することによって、特徴づけられる。処理のD
SP段階の後で、その他の処理がこれらの処理されたデ
ータのブロックにしばしば行われる。例えば、FFTル
ーチンに続いて、新たに演算されたFFT係数をより大
きなアルゴリズムの一部として用いる論理動作のいくつ
かのシーケンスが行われ得る。
【0039】共通のアプローチは、分離したDSPと、
アルゴリズムの途中で互いに通信するより一般的なCP
U装置とを有することである。これらの装置は、より大
きなシステムあるいは集積回路(IC)であり得る。こ
のアプローチは、ソフトウェアおよびハードウェア開発
システムを別個に設け、かつ、適切な動作を確実に行う
ために何らかの形態のシステムをインテグレーションす
ることを必要とする。開発時間の短縮およびハードウェ
アのシステムの簡略化という観点からすると、標準CP
U命令セットおよびアーキテクチャの制約内で、DSP
アルゴリズムの効率的な演算を行い得る点において、明
らかな利点がある。
【0040】多くの汎用CPUの主な制約は、適切な処
理構成要素に次のデータを迅速にロードし、次いで、新
たなデータをロードするために結果を格納する能力であ
る。多くの現代の限定命令セットコンピュータ(RIS
C)に見出されるように、この制約は、レジスタベース
ロード格納アーキテクチャにおいて特に厳しい。RIS
Cおよびその他のレジスタベースコンピュータにおい
て、動作は、作動レジスタのセットの中にあるデータの
みに共通に行われる。すなわち、新しいデータがさらな
る処理のために受け取られ得ないうちに、前に処理され
たデータは、レジスタのセットからシステムに格納され
なければならない。多くの有用なDSP機能が、比較的
少数のレジスタを用いる標準RISC CPU上で行わ
れ得るが、これらのレジスタを空にし、次いでそれらを
満たすために、より多くの時間が消費される。本発明の
目的は、これらのデータ移動命令を、レジスタの組の中
で循環するメカニズムに置き換えることにより、一つの
組のレジスタを演算(「処理」)のために動作させてい
る間に、一つ以上の代替レジスタセットがデータ移動
(I/O)で用いられるようにすることによって、これ
らのデータ移動命令のオーバヘッドを低減させることで
ある。I/O動作は、有用なデータ処理と同時に進行す
る。
【0041】機能中に循環する2つ、3つあるいはより
多くのレジスタセットが存在し得る。最も単純な場合に
おいては、2つのレジスタセットAおよびBが存在す
る。レジスタセットAが処理されたデータを格納し、次
いで新しいデータをロードしている間に、処理はレジス
タセットB上で続けられる。レジスタセットB内のデー
タ処理が完了すると、レジスタセットの機能が循環する
ことによって、処理がレジスタセットA内のデータで行
われていると同時にレジスタセットBはアンロードさ
れ、次いでロードされる。レジスタセットA内のデータ
の処理が完了すると、レジスタセットの機能は再び循環
する。
【0042】レジスタセット内の処理の完了は、特定の
マシンに与えられるようなアルゴリズムにおいて通常生
じる、格納あるいはロード命令に代わるソフトウェア命
令によって信号化される。このように、DSPに類似の
処理は、通常のCPU命令セットとほぼ同一の命令セッ
トによって達成される。
【0043】多くのDSPアルゴリズムによって必要と
されるアドレスパターンは、固定され、前もって決定さ
れ得るので、それらのアドレスパターンは、多くの単純
な手段によって生成され得る。そのような手段の一つ
は、(アプリケーションにより、揮発性あるいは非揮発
性である)メモリ、およびすべてのメモリアドレスが逐
次アクセスされるようにメモリアドレスピンを駆動する
カウンタである。そのメモリから読み出されるデータ
は、その時点でDSPアルゴリズムによって必要とされ
るアドレスである。別のそのような手段は、必要となる
アドレスをアルゴリズムによって生成する、ユーザプロ
グラム可能マシンである。このアクティビティは、図に
おいて「ロード/格納制御論理」と表示されたブロック
によって制御され、DSP類似あるいはブロック構造ア
ルゴリズムを処理している途中で復号化された適切なソ
フトウェア命令を受け取ることによってトリガされる。
【0044】全体の動作は、DSPに類似したより一般
的な動作に分割されるので、より一般的な動作のため
に、プロセッサはデータの処理されたブロックにアクセ
スすることが可能になる必要がある。このアクセスは、
図3および図5において「バスXcvr」と表記された
バストランシーバによって行われる。
【0045】3つのレジスタセットあるいはレジスタバ
ンクによる動作は、DSP類似の処理あるいはブロック
処理が第3のレジスタセットあるいはレジスタバンクで
行われると共に、入力および出力(ロードおよび格納)
動作が分離されて、同時および個別に行われ得ることを
除いて、バンクが2つである場合と非常に類似してい
る。I/Oおよび処理機能が交互に行われるA−B、A
−Bパターンのブロック処理の代わりに、3つのレジス
タセットあるいはレジスタバンクの中で循環することに
よって、ロード、処理および格納の3つの主要な機能を
行う。
【0046】動作は、3つを超えるレジスタセットある
いはレジスタバンクに拡張され得る。一般的な場合にお
いて、全てのレジスタセットが、多数のレジスタバンク
を有する環状バッファを形成するように配置される。多
数のレジスタバンクのそれぞれは、各主要な機能のため
に設けられている。一般的な場合において、アクティブ
レジスタのこれらの領域に割り当てられた単純な入力、
処理および出力以外の機能があり得ることに留意された
い。例えば、付加的なデータ処理ユニットが、2つおよ
び3つのレジスタセット実施の単純アドレス生成器に代
わることによって、レジスタセットあるいはレジスタバ
ンクの循環によるデータ通信を行う、プロセッサのパイ
プライン化されたセット全体を形成し得る。
【0047】
【発明の効果】以上に説明したように、本発明によれ
ば、データ移動命令を、レジスタの組の中で循環するメ
カニズムに置き換えることにより、一つの組のレジスタ
を演算(「処理」)のために動作させている間に、一つ
以上の代替レジスタセットがデータ移動(I/O)で用
いられるようにすることによって、これらのデータ移動
命令のオーバヘッドを低減させることができる。I/O
動作は、有用なデータ処理と同時に進行する。
【図面の簡単な説明】
【図1】レジスタベースコンピュータにおけるCPUデ
ータ経路の概略図である(従来技術)。
【図2】割込みを処理するための第2のレジスタバンク
を有する、図1に示されるようなCPUデータ経路の概
略図である(従来技術)。
【図3】処理およびロード/アンロード機能を同時に行
うための2つの交換可能なレジスタバンクを有するCP
Uデータ経路の第1の実施態様の概略図である。
【図4】図3の実施態様のポート相互接続シーケンスを
示す図表である。
【図5】処理、ロード機能およびアンロード機能を同時
に行うための3つの交換可能なレジスタバンクを有する
CPUデータ経路の第2の実施態様の概略図である。
【図6】図5の実施態様のポート相互接続シーケンスを
示す図表である。
【図7】環状バッファに類似して構成された図5に示さ
れるレジスタバンクの別の構成の概略図である。
【符号の説明】
10 CPUデータ経路 20 命令デコードおよび論理制御 100 Aレジスタバンク 102 Bレジスタバンク 100、100' マルチプレクサ 112、112' デマルチプレクサ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 一つ以上の外部制御器からのコマンド下
    で、一つ以上のデータバスを介してCPUから搬送され
    またはCPUに搬送されるデータの処理に用いられるレ
    ジスタベースCPUのためのデータ経路であって、 外部プログラム可能制御器に動作可能に接続され、該外
    部プログラム可能制御器によって指示されるとおりにデ
    ータを処理する、一つ以上の算術プロセッサと、 少なくとも2つの相互交換可能なレジスタバンクを含む
    複数のデータ記憶レジスタバンクであって、該相互交換
    可能なレジスタバンクのそれぞれは該一つ以上の算術プ
    ロセッサ内のデータを処理するために該一つ以上の算術
    プロセッサに断続的に接続され、該相互接続可能なレジ
    スタバンクのそれぞれは、データをロードおよびアンロ
    ードする一つ以上のI/Oポートと、該レジスタバンク
    内の該データが処理される場合に該一つ以上の算術プロ
    セッサに接続する少なくとも1つのプロセッサポートと
    を含んでいる、複数のデータ記憶レジスタバンクと、 該相互交換可能なレジスタバンクに動作可能に接続さ
    れ、第1のグループの一つ以上のレジスタバンクの該プ
    ロセッサポートを該算術プロセッサに選択的に接続し、
    それによって該第1のグループの該レジスタバンク内の
    データを処理し、第2のグループの一つ以上のレジスタ
    バンクの該I/Oポートを該データバスに選択的に接続
    し、それによって該第1のグループの該レジスタバンク
    内の該データの処理と同時に、該第2のグループの該レ
    ジスタバンクにデータをロードおよびアンロードし、該
    第1のグループの該レジスタバンクを別の相互交換可能
    なレジスタバンクと選択的に相互交換するレジスタ機能
    制御器とを備えるデータ経路。
  2. 【請求項2】 一つ以上の外部制御器からのコマンド下
    で、一つ以上のデータバスを介してCPUから搬送され
    またはCPUに搬送されるデータの処理に用いられるレ
    ジスタベースCPUのためのデータ経路であって、 外部プログラム可能制御器に動作可能に接続され、該外
    部プログラム可能制御器によって指示されるとおりにデ
    ータを処理する一つ以上の算術プロセッサと、 少なくとも2つの相互交換可能なレジスタバンクを含む
    複数のデータ記憶レジスタバンクであって、該相互交換
    可能なレジスタバンクのそれぞれは該一つ以上の算術プ
    ロセッサ内のデータを処理するために該一つ以上の算術
    プロセッサに断続的に接続され、該相互接続可能なレジ
    スタバンクのそれぞれは、データをロードおよびアンロ
    ードする一つ以上のI/Oポートと、該レジスタバンク
    内の該データが処理される場合に該一つ以上の算術プロ
    セッサに接続する少なくとも1つのプロセッサポートと
    を含んでいる、複数のデータ記憶レジスタバンクと、 該相互交換可能なレジスタバンクに動作可能に接続さ
    れ、第1のグループの一つ以上のレジスタバンクの該プ
    ロセッサポートを該算術プロセッサに選択的に接続し、
    それによって該第1のグループの該レジスタバンク内の
    該データを処理し、第2のグループの一つ以上のレジス
    タバンクの選択されたI/Oポートをデータバスに選択
    的に接続することによって、該第2のグループの該レジ
    スタバンクにデータをロードし、第3のグループの一つ
    以上のレジスタバンクの選択されたI/Oポートをデー
    タバスに選択的に接続することによって、該第3のグル
    ープの該レジスタバンクからデータをアンロードし、そ
    れによって該第2のグループの該レジスタバンクへの該
    データのロードおよび該第3のグループの該レジスタバ
    ンクからの該データのアンロードと同時に、該第1のグ
    ループの該レジスタバンク内のデータを処理するレジス
    タ機能制御器であって、該レジスタ機能制御器が、該第
    1のグループの該レジスタバンク、該第2のグループの
    レジスタバンク、および該第3のグループの該レジスタ
    バンクとの間の該接続を選択的に相互交換するレジスタ
    機能制御器とを備えるデータ経路。
  3. 【請求項3】 一つ以上の外部制御器からのコマンド下
    で、一つ以上のデータバスを介してCPUから搬送され
    またはCPUに搬送されるデータを処理するタイプのレ
    ジスタベースCPUのデータ経路において用いる方法で
    あって、該方法が、 該CPU内の第1のグループの一つ以上のレジスタバン
    クを一つ以上の算術プロセッサに同時に接続することに
    よって、該第1のグループの該レジスタバンク内に格納
    されているデータを該算術プロセッサによって処理する
    ステップと、 該処理ステップと同時に、第2のグループの一つ以上の
    レジスタバンク内のレジスタからデータをロードおよび
    アンロードするために、該第2のグループの該レジスタ
    バンクを該データ経路の該データバスに接続するステッ
    プと、 該第1のグループの該レジスタバンク内の該データの処
    理および該第2のグループの該レジスタバンクからの該
    データのロードおよびアンロードが完了すると、該第1
    のグループの該レジスタバンクを処理されるデータを含
    む別の相互交換可能なレジスタバンクと選択的に相互交
    換するステップとを包含する方法。
JP8212915A 1995-08-16 1996-08-12 Cpuデータ経路における同時入出力動作のための複数レジスタバンクシステム Pending JPH09128238A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/515,645 1995-08-16
US08/515,645 US5680641A (en) 1995-08-16 1995-08-16 Multiple register bank system for concurrent I/O operation in a CPU datapath

Publications (1)

Publication Number Publication Date
JPH09128238A true JPH09128238A (ja) 1997-05-16

Family

ID=24052184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8212915A Pending JPH09128238A (ja) 1995-08-16 1996-08-12 Cpuデータ経路における同時入出力動作のための複数レジスタバンクシステム

Country Status (2)

Country Link
US (1) US5680641A (ja)
JP (1) JPH09128238A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0911725A3 (en) * 1997-10-20 1999-11-17 Sharp Kabushiki Kaisha Data processing system with a plurality of processors using a shared register bank
JPWO2004036416A1 (ja) * 2002-10-18 2006-02-16 株式会社トプスシステムズ マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH102239A (ja) * 1996-06-14 1998-01-06 Toyota Motor Corp ハイブリッド型車両のエンジン制御装置
US5812868A (en) * 1996-09-16 1998-09-22 Motorola Inc. Method and apparatus for selecting a register file in a data processing system
US6134653A (en) * 1998-04-22 2000-10-17 Transwitch Corp. RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit
US6378065B1 (en) * 1998-04-27 2002-04-23 Infineon Technologies North America Corp. Apparatus with context switching capability
US6233690B1 (en) * 1998-09-17 2001-05-15 Intel Corporation Mechanism for saving power on long latency stalls
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6542991B1 (en) 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6668317B1 (en) 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
HK1046049A1 (zh) 1999-09-01 2002-12-20 Intel Corporation 用於多线程处理器的分支指令
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6307789B1 (en) 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6625654B1 (en) 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6631430B1 (en) 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
JP2002108837A (ja) * 2000-09-29 2002-04-12 Nec Corp 計算機システムとその計算制御方法
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US8769508B2 (en) * 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7126952B2 (en) 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6934951B2 (en) 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7149226B2 (en) 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US20040098568A1 (en) * 2002-11-18 2004-05-20 Nguyen Hung T. Processor having a unified register file with multipurpose registers for storing address and data register values, and associated register mapping method
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
WO2005020077A1 (en) * 2003-08-13 2005-03-03 Thomson Licensing S.A. Dual bank shared data ram for efficient pipelined video and data processing
US7124213B2 (en) * 2003-09-30 2006-10-17 International Business Machines Corporation Device having spare I/O and method of using a device having spare I/O
US7213099B2 (en) 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
JP5711889B2 (ja) * 2010-01-27 2015-05-07 スパンション エルエルシー リコンフィギュラブル回路および半導体集積回路
CN111095294A (zh) * 2017-07-05 2020-05-01 深视有限公司 深度视觉处理器
US11513847B2 (en) 2020-03-24 2022-11-29 Deep Vision Inc. System and method for queuing commands in a deep learning processor
US12067395B2 (en) * 2021-08-12 2024-08-20 Tenstorrent Inc. Pre-staged instruction registers for variable length instruction set machine
EP4418108B1 (en) * 2023-02-13 2025-10-01 STMicroelectronics International N.V. Improved register bank for electronic processor and initialization method of the register bank
JP2025019697A (ja) * 2023-07-28 2025-02-07 富士通株式会社 プロセッサ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US5163132A (en) * 1987-09-24 1992-11-10 Ncr Corporation Integrated controller using alternately filled and emptied buffers for controlling bi-directional data transfer between a processor and a data storage device
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5185876A (en) * 1990-03-14 1993-02-09 Micro Technology, Inc. Buffering system for dynamically providing data to multiple storage elements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0911725A3 (en) * 1997-10-20 1999-11-17 Sharp Kabushiki Kaisha Data processing system with a plurality of processors using a shared register bank
JPWO2004036416A1 (ja) * 2002-10-18 2006-02-16 株式会社トプスシステムズ マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法

Also Published As

Publication number Publication date
US5680641A (en) 1997-10-21

Similar Documents

Publication Publication Date Title
JPH09128238A (ja) Cpuデータ経路における同時入出力動作のための複数レジスタバンクシステム
EP0911725B1 (en) Data processing system with a plurality of processors using a shared register bank
JP4657455B2 (ja) データプロセッサ
JP2519226B2 (ja) プロセツサ
US6061779A (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
JP2647315B2 (ja) 動的に複数モードで並列処理するアレイ
US6895452B1 (en) Tightly coupled and scalable memory and execution unit architecture
US20100095088A1 (en) Reconfigurable elements
KR20010020545A (ko) 재구성 가능한 컴퓨팅을 위한 집적 프로세서 및프로그래머블 데이터 경로 칩
US8949576B2 (en) Arithmetic node including general digital signal processing functions for an adaptive computing machine
JPWO1995009399A1 (ja) マルチプロセッサ
JP5131188B2 (ja) データ処理装置
EP1512069B1 (en) An address generation unit for a processor
US20060294344A1 (en) Computer processor pipeline with shadow registers for context switching, and method
US6675289B1 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
JP3237858B2 (ja) 演算装置
US7647485B2 (en) Data processing system for debugging utilizing halts in a parallel device
JPH02162422A (ja) 優先ブランチ機構を備えたデータ処理システム
TWI249130B (en) Semiconductor device
JP2010206513A (ja) 半導体装置
JP2008152409A (ja) 半導体集積回路
WO1998055932A2 (en) Processor interfacing to memory mapped computing engine
US20070169022A1 (en) Processor having multiple instruction sources and execution modes
USRE41012E1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US20070220236A1 (en) Reconfigurable computing device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041007

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050425