JPH11212786A - レジスタベースデータ処理のためのデータパスおよび方法 - Google Patents

レジスタベースデータ処理のためのデータパスおよび方法

Info

Publication number
JPH11212786A
JPH11212786A JP10294979A JP29497998A JPH11212786A JP H11212786 A JPH11212786 A JP H11212786A JP 10294979 A JP10294979 A JP 10294979A JP 29497998 A JP29497998 A JP 29497998A JP H11212786 A JPH11212786 A JP H11212786A
Authority
JP
Japan
Prior art keywords
data
register
register bank
processor
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
JP10294979A
Other languages
English (en)
Inventor
S B Sidman
ビー. シドマン エス.
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 JPH11212786A publication Critical patent/JPH11212786A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Abstract

(57)【要約】 (修正有) 【課題】一連のCPUレジスタバンクにおけるデータを
同時に処理し、同時にデータを追加のレジスタバンクに
ロードする。 【解決手段】データパスは、複数のデータ格納レジスタ
バンクであって、その各々がレジスタバンクへの有効な
接続を達成するための1以上の入力/出力ポートを有し
ている複数のデータ格納レジスタバンクと、データパス
へ有効に接続されたときに1以上のデータ格納レジスタ
バンク内のデータを処理するための複数のデータプロセ
ッサとレジスタバンクを、データパスの内部および外部
にある選択された装置であってデータパスの内部にある
データプロセッサとデータパスの外部にあるデータソー
スおよびデスティネーションとを含む選択された装置に
有効に接続するためのデータパス相互接続システムと、
各レジスタバンクを選択された装置のシーケンスに有効
に接続する制御信号を提供するための相互接続コントロ
ーラとを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は概してコンピュータ
に関し、より詳細には、レジスタベースCPUで用いら
れるデータ処理データパスに関する。
【0002】
【従来の技術】本出願の優先権主張の基礎となる米国出
願は、1995年8月16日に提出された出願番号第0
8/515,645号であって、現在は特許証番号第
5,680,641号の出願の一部継続出願である。
【0003】汎用レジスタベースコンピュータは、CP
U内のデータ格納レジスタの1以上のバンクを利用し、
バンクでは、演算あるいは他のデータ処理の間、データ
が一時的に格納される。データ格納レジスタは通常、レ
ジスタブロックあるいは単にレジスタとしても周知のレ
ジスタバンクに配置される。個々のレジスタバンクは、
マルチポートレジスタのような、メモリのより大きなブ
ロックの一部を形成し得、各レジスタバンクは、別個の
入出力ポートの組をもつ、マルチポートレジスタの別々
にアドレッシング可能な部分である。各レジスタバンク
のサイズはコンピュータの内部アーキテクチャによって
決定され、設計的選択事項である。データは、より大き
なコンピュータメモリ格納ユニットと接続し、かつCP
Uの1以上の演算・論理ユニット(ALU)と接続する
バスを通って、CPUのレジスタに流入し、流出する。
32ビットCPUは、典型的には32ビットのデータバ
スおよび32ビットのレジスタを有し、パラレルにデー
タがデータパスを通って移動されることを可能にする。
CPU内のデータ格納レジスタバンクは、データ処理に
用いられる、命令やメモリアドレス情報を格納するため
の若干の他の特殊レジスタと、ALUと、接続データバ
スとともに、全体的にCPUデータパスと呼ばれる。
【0004】レジスタベースのCPUにおいては、デー
タは、ソフトウェアデコーダおよび論理制御ブロックか
らのプログラミング命令に応じて移動され、処理され
る。論理制御ブロックは、データパスの外部にあるがC
PU内の全ての主要な要素と接続されている。従来技術
におけるCPUでは、データはコンピュータのメインメ
モリあるいはキャッシュメモリから取り出され、CPU
のレジスタバンクにロードされる。一旦レジスタバンク
にデータがロードされると、個々のレジスタのオペラン
ドは論理制御ブロックからのプログラム命令に応じてA
LUによって処理される。例えばALUは、レジスタメ
モリ内の2つの異なるメモリ位置の内容を共に加算しあ
るいは乗算し、その結果を第3のレジスタ位置に格納し
うる。一旦コンピュータの処理が終了すると、データは
レジスタバンクからアンロードされ、コンピュータのメ
インメモリあるいは他の位置に送られる。レジスタベー
スのCPUは多目的であり、効率的である。データは、
コンピュータの比較的低速なメインメモリを通ってロー
ドおよび格納されることなくALUにすばやく供給さ
れ、他のレジスタ位置に格納されるので、レジスタの処
理のスピードは上がる。
【0005】
【発明が解決しようとする課題】レジスタベースCPU
がデータ処理において効率的である一方、単一のCPU
データパスにおいてデータが処理される実際のアクティ
ブ計算時間は、処理サイクルの総時間のほんのわずかに
すぎない。データはまず、メモリからCPUのレジスタ
バンクにロードされ、次にALUを通って処理されなけ
ればならない。処理されたデータはその後、レジスタバ
ンクからアンロードされ、メモリあるいは他のどこかへ
転送される。そのため、処理ステップの間であって、そ
の間にデータがレジスタバンク内に存在する時に、実際
の計算が生じている。CPUはレジスタバンクのローデ
ィングおよびアンローディングの間は、実際のデータ処
理を行っていない。
【0006】さらにより効率的なデータパスが、本願の
基礎となる米国出願と同時係属の、1995年8月16
日に提出された米国出願第08/515,645号であ
って、本出願の基礎となる米国出願の譲受人と同じ譲受
人に譲渡された米国出願に記載されている。米国出願第
08/515,645号には、レジスタベースCPUが
記載されており、CPUの演算・論理ユニットは前もっ
てロードされたレジスタバンクに接続される。前もって
ロードされたレジスタバンクは、アルゴリズム的に発生
されたアドレスシーケンスに応じてデータを選択的にロ
ードされている。アルゴリズム的に発生されたアドレス
シーケンスは、ALUによって行われた要求される算術
計算を減少する。ALUがあるレジスタバンクでデータ
を処理する一方で、データは同時に第2のレジスタバン
クにロードされ、同時に第3のレジスタバンクからアン
ロードされうる。プロシージャは、レジスタバンクがロ
ード、アンロードされる場合のように、ALUのアイド
ル時間を最小化する。
【0007】レジスタバンク間でデータを移動するには
常に時間が必要なので、そのようなデータ移動が最小化
できるのであれば、有利であろう。例えば、あるディジ
タル信号処理(DSP)計算は一連の演算処理ステップ
を介して処理されるべきデータを必要とし、演算ステッ
プは別個のデータ処理あるいはALUを用いて最も効率
的に行われうる。そのような多重処理ステップを実行す
るための従来技術の方法論では、各データプロセッサに
接続された複数のデータ格納レジスタバンクを利用す
る。データはその関連するプロセッサを介して1以上の
レジスタバンクから移動され、続いて、データの処理が
完了するまで一連の次のプロセッサに関連する1以上の
異なるレジスタバンクに転送される。太いパラレル転送
バスを用いた効率的なデータ転送においてさえ、レジス
タバンク間の各データ転送に付随するある程度のオーバ
ーヘッドが存在する。
【0008】CPUの動作あるいはその動作を制御する
プログラミングソフトウェアの大きな変更を要求するこ
となく、多重データ処理ステップに要求されるデータ転
送オーバーヘッドを最小化するCPU処理データパスお
よびアーキテクチャを提供することは有利であろう。
【0009】レジスタベースのCPUにおいて、一連の
レジスタバンクを通ってデータを移動する代わりにデー
タパスにおいて所定の制御信号を変更することによっ
て、ALUのシーケンスを通ってデータを移動し、処理
するための複数のALUを有するCPUを得ることを可
能にすることはまた有利であろう。
【0010】ALUにデータパスにおけるレジスタバン
クを共有させることによって、レジスタベースのコンピ
ュータでCPUデータパスの計算効率を向上させること
もまた、有利であろう。
【0011】したがって、本発明は上記課題を解決する
ためになされたものであって、レジスタベースデータプ
ロセッサのシステムのためのデータパスが提供される。
【0012】
【課題を解決するための手段】データパスは外部ソース
やディスティネーションに、およびデータパスを制御す
るための外部コントローラに有効に接続され、さらに、
以下を含む。すなわち、複数のデータ格納レジスタバン
クが提供され、その各々は1以上の入力/出力ポートを
有し、そのポートを通してレジスタバンクへの有効接続
を達成する。1以上のデータ格納レジスタバンクにおい
て、データ処理のための複数のデータプロセッサが提供
され、個々のレジスタバンクはデータプロセッサに有効
に接続される。レジスタバンクはデータパス相互接続シ
ステムを用いるデータパス内/外双方の選択された装置
に有効に接続される。相互接続システムは、データパス
内のデータプロセッサおよびデータパス外のデータソー
スおよびデスティネーションに、レジスタバンクを有効
に接続する。相互接続コントローラは、各レジスタバン
クを選択された装置のシーケンスに有効に接続するため
の信号の制御を生じるために提供される。シーケンス
は、a)データをレジスタバンクにロードするために、
レジスタバンクをデータソースに有効に接続し、b)第
1のデータプロセッサに従ってデータを処理するため
に、レジスタバンクを第1の前記データプロセッサに有
効に接続し、c)第2のデータプロセッサに従ってデー
タを処理するために、レジスタバンクを第2の前記デー
タプロセッサに有効に接続し、d)レジスタバンクから
データデスティネーションへデータをアンロードするた
めに、レジスタバンクをデータデスティネーションに有
効に接続する。好ましくはシーケンスが実行されている
ときに、相互接続コントローラは1以上の追加のレジス
タバンクを上述したシーケンス内の選択された装置に有
効に接続する。そのため、あるレジスタバンクに関して
シーケンスステップbが実行されている時に、他のレジ
スタバンクに関してシーケンスステップaが実行され、
第1のレジスタバンクに関してシーケンスステップcが
実行されている時に、第2のレジスタバンクに関してシ
ーケンスステップbが実行され、その一方で第3のレジ
スタバンクに関してシーケンスステップaが実行され
る。そして以下同様である。システムは、各レジスタバ
ンク内のデータが、レジスタバンクをそのようなデータ
プロセッサのシーケンスに連続して接続することによっ
て、データプロセッサのシーケンスを通って処理される
ことを可能にする。
【0013】好ましい形態では、データパス相互接続シ
ステムは複数の入力/出力ポートを有するマルチポート
レジスタを利用し、データパス中の各レジスタバンク
は、マルチポートレジスタの、別々にアドレッシング可
能な部分である。そのようなシステムにおいて、相互接
続コントローラは、マルチポートレジスタ内の個々のレ
ジスタバンクをアドレッシングするために必要なアドレ
スインクリメントを提供する。その方法では、相互接続
コントローラは制御信号を提供し、制御信号は上述した
シーケンスa)からd)において、マルチポートレジス
タの別々にアドレッシング可能な各部分を選択された装
置に有効に接続する。あるいは、データパス相互接続シ
ステムは相互接続コントローラによって制御されるマル
チプレクサシステムであり得る。マルチプレクサシステ
ムでは、複数のマルチプレクサスイッチが、個々のレジ
スタバンクの入力/出力ポートを、上述した選択された
装置のシーケンスに相互接続する。
【0014】選択された装置のシーケンスは、第1およ
び第2のデータプロセッサを特定し、個々のレジスタバ
ンクはそれらに有効に接続されるが、本発明のデータパ
スはn個のプロセッサ(nは2以上)を通ってデータの
効率的な処理を可能にする。相互接続シーケンスは各レ
ジスタバンクが任意の数のデータプロセッサと有効に接
続されることを可能にする。
【0015】本発明は更に、いま述べたタイプのレジス
タベースのCPUのデータパスにおいて用いられる方法
を含む。その方法は、データを、データパス内の第1の
レジスタバンクにロードするステップと、第1のデータ
プロセッサに応じて、データをその中で処理するため
に、第1のデータプロセッサに第1のレジスタバンクを
有効に接続するステップと、第2のデータプロセッサに
応じてデータを処理するために、第2のデータプロセッ
サに第1のレジスタバンクを有効に接続するステップ
と、前記第1のレジスタバンクからCPU内のデスティ
ネーションに前記データをアンロードし、それによっ
て、前記第1のレジスタバンク内のデータがデータプロ
セッサのシーケンスを通って処理されるステップと、を
含む。
【0016】本発明によるレジスタベースデータ処理の
ためのデータパスによれば、前記データパスは、外部デ
ータソースおよびデスティネーション、および前記デー
タパスを制御するための外部コントローラに有効に接続
されており、前記データパスは、複数のデータ格納レジ
スタバンクであって、その各々が、前記レジスタバンク
への有効な接続を達成するための1以上の入力/出力ポ
ートを有している、複数のデータ格納レジスタバンク
と、データパスへ有効に接続されたときに、1以上のデ
ータ格納レジスタバンク内のデータを処理するための複
数のデータプロセッサと、前記レジスタバンクを、前記
データパスの内部および外部にある選択された装置であ
ってデータパスの内部にある前記データプロセッサと、
前記データパスの外部にある前記データソースおよびデ
スティネーションとを含む選択された装置に有効に接続
するためのデータパス相互接続システムと、各レジスタ
バンクを選択された装置のシーケンスに有効に接続する
制御信号を提供するための、相互接続コントローラとを
含み、前記シーケンスは、a)データをレジスタバンク
にロードするために、レジスタバンクをデータソースに
有効に接続し、b)前記第1のデータプロセッサにした
がってデータを処理するために、前記レジスタバンクを
第1の前記データプロセッサに有効に接続し、c)前記
第2のデータプロセッサにしたがってデータを処理する
ために、レジスタバンクを第2の前記複数のデータプロ
セッサに有効に接続し、d)前記レジスタバンクからデ
ータデスティネーションへデータをアンロードするため
に、前記レジスタバンクを前記データデスティネーショ
ンに有効に接続する、シーケンスであり、前記相互接続
コントローラは、前記シーケンスにおいて、1以上の追
加のレジスタバンクを前記選択された装置に有効に接続
し、それによって、前記レジスタバンクの各々にある前
記データが、データプロセッサのシーケンスを通して処
理され、そのことにより上記目的が達成される。
【0017】前記複数のデータ格納レジスタバンクは、
複数の入力/出力ポートを有するマルチポートレジスタ
を含み、データパス内の前記レジスタバンクの各々は、
前記マルチポートレジスタの別々にアドレッシング可能
な部分であってもよい。
【0018】前記データパス相互接続システムは、前記
マルチポートレジスタの前記入力/出力ポート、前記デ
ータプロセッサおよび外部データソースおよびデスティ
ネーションの間の有効な接続を含み、前記相互接続コン
トローラは、前記マルチポートレジスタの、別々にアド
レッシング可能な部分に対応するアドレスを供給するた
めのアドレスインクリメンタを含み、それによって、各
レジスタバンクが前記シーケンスにおいて前記選択され
た装置に有効に接続されてもよい。
【0019】前記複数のデータプロセッサは、接続
a)、b)およびc)の後、各レジスタバンクが前記相
互接続コントローラによって有効に接続された、前記n
個のプロセッサと選択された装置の前記シーケンスとを
含み、接続d)の前に、前記データプロセッサの各々に
したがってデータを処理するために、レジスタバンクを
順次n個のデータプロセッサに至るまで追加のデータプ
ロセッサに有効に接続することを含んでもよい。
【0020】データ格納レジスタバンクの数は少なくと
も(n+2)個であり、それによって、少なくとも1つ
のレジスタバンクはシーケンスステップa)にしたがっ
てデータソースに接続可能であり、あるレジスタバンク
はシーケンスステップd)にしたがってデータデスティ
ネーションへ接続可能であり、他のレジスタバンクはn
個のデータプロセッサに接続可能であってもよい。
【0021】前記データパス相互接続システムは、前記
レジスタバンクの入力/出力ポートを前記選択された装
置のシーケンスに選択的に相互接続するための、前記相
互接続コントローラによって制御されるマルチプレクサ
システムを含んでもよい。
【0022】本発明によるレジスタベースCPUのデー
タパスで用いられるデータ処理方法によれば、前記デー
タパスは、複数のデータ格納レジスタバンクであって、
その各々が、前記レジスタバンクへの有効な接続を達成
するための1以上の入力/出力ポートを有している、複
数のデータ格納レジスタバンクと、データを処理するた
めの複数のデータプロセッサと、前記レジスタバンクと
前記データプロセッサとの間の有効な接続を提供するた
めのデータパス相互接続システムと、を含み、前記方法
は、データパス内の第1のレジスタバンクにデータをロ
ードするステップと、第1のデータプロセッサにしたが
ってデータを処理するため、前記第1のレジスタバンク
を前記第1のデータプロセッサに有効に接続するステッ
プと、第2のデータプロセッサにしたがってデータを処
理するため、前記第1のレジスタバンクを前記第2のデ
ータプロセッサに有効に接続するステップと、データを
前記第1のレジスタバンクからCPU内のデスティネー
ションへアンロードするステップであって、それによっ
て、前記第1のレジスタバンク内の前記データがデータ
プロセッサのシーケンスを通って処理されるステップと
を含み、そのことにより上記目的が達成される。
【0023】第2のレジスタバンクはデータをロードさ
れ、前記第1のレジスタバンクが第1のデータプロセッ
サに有効に接続するステップが実行され、それによっ
て、前記第2のレジスタバンク内の前記データが、前記
第2のレジスタバンク内の処理されているデータととも
に同時にロードされてもよい。
【0024】データが第3のレジスタバンクにロードさ
れ、前記第2のレジスタバンクが、前記第1のデータプ
ロセッサに有効に接続されており、前記第1のレジスタ
バンクが、前記第2のデータプロセッサに有効に接続さ
れており、それによって、同時に、あるレジスタバンク
がデータをロードされ、他のレジスタバンクが前記第1
のデータプロセッサにしたがって処理され、更に他のレ
ジスタバンクが、前記第2のデータプロセッサにしたが
って処理されてもよい。
【0025】前記第1のレジスタバンクは、n個までの
データプロセッサに順次接続され、nは2以上であって
もよい。
【0026】一連のCPUレジスタバンクにおけるデー
タを同時に処理し、同時にデータを追加のレジスタバン
クにロードおよびアンロードするための、レジスタベー
スのCPUにおいて用いられるシステムおよび方法が提
供される。そして、レジスタバンクはCPUデータパス
に接続された演算プロセッサ間で順次共有される。デー
タをロードされた後、各レジスタバンクは複数のデータ
プロセッサに順に接続され、各レジスタバンク内のデー
タは処理される。データは、データパスからロードさ
れ、アンロードされる時を除いて、データパス内のレジ
スタバンク間で移動されることはない。本発明は、デー
タを移動するのに必要な時間と比較して、制御信号を移
動する時間が短いという利点を有する。
【0027】本発明のシステムおよび方法の主要な利点
は、従来のCPUデータパス方法論と比較して、レジス
タバンク間のデータ転送の数を減少させることである。
本発明は、複数のデータプロセッサと複数のデータ格納
レジスタバンクとの間の接続を変更するため、相互接続
システムに制御信号を送ることによって多重処理ステッ
プの多くのデータ転送を回避する。制御信号の移動は、
常にデータの移動よりも速い。したがって、本発明は、
データ処理におけるオーバーヘッドを減少する。
【0028】
【発明の実施の形態】図1の従来技術は、レジスタベー
スコンピュータのための、代表的な従来技術のCPUデ
ータパスを示す。データパス10はデータの計算を扱う
CPUの構成素子を示す。図1は、データパス10の主
要な能動素子および接続データバスを示す簡略図であ
る。本発明の必須の特徴を明確に示すために、以下、当
業者にはよく知られている数多くの動作上の接続が、図
1および他の図からは省略される。例えば、命令デコー
ドおよび論理制御ブロック20は、24で概略的に示さ
れる複数の信号パスを介して、データパス10における
全ての図示される素子と動作上接続される。命令デコー
ドおよび論理制御ブロック20は、データパス10のた
めの外部コントローラであり、ソフトウェアプログラミ
ングおよび、当業者には周知の方法によって論理制御ブ
ロック20に供給される制御信号データパスの様々な素
子の他に、コンピュータの他の素子(図示せず)ととも
にデータパスの様々な素子を制御する。図1に示される
他の外部素子は、メモリブロック30である。メモリブ
ロック30は、コンピュータのキャッシュメモリを含む
メインメモリを表す。データおよび動作上の命令は、コ
ンピュータのコーディングおよび命令フォーマットを用
いて、データパス10によりメモリ30から取り出さ
れ、およびメモリ30へ格納される。本発明は、データ
パス10のアーキテクチャおよび、そのようなデータパ
スを動作させる改良された方法にに向けられており、特
定のソフトウェアあるいは、命令フォーマットあるいは
タイプに限られない。
【0029】図1に示されるデータパス10は、従来技
術のレジスタベースCPUの必須の素子を示す簡略図で
ある。40に、16個の32ビットデータ格納レジスタ
から構成されるレジスタバンク40が示されている。本
発明では、異なるサイズのレジスタバンクもまた用いら
れ得る。レジスタバンク40はまた、プログラムステー
タス情報あるいは同様の情報を保持するための追加の格
納レジスタを含みうる。本発明は、CPUデータパスに
おいて同じく提供されうる様々なステータスレジスタに
ではなく、計算機能において用いられるデータ格納レジ
スタに向けられている。
【0030】データバス45はメモリ30へ、およびメ
モリ30からデータを運ぶ32ビットバスである。レジ
スタバンク40はデータをレジスタにロードあるいはア
ンロードするための1以上の入出力ポート(I/Oポー
ト)を有する。図1に示されるように、レジスタバンク
40はI/Oポート50、51、52、53を有する。
ポート50はデータパス45に接続する。ポート52、
53は、レジスタバンク40からCPUの演算・論理ユ
ニット(ALU)60にデータを供給する。ALUは接
続バス62、64を介して、数学的計算を行う。バス6
2、64は概略図である。典型的には、2以上のメイン
データバスが、CPUの主要素子間でデータを運ぶため
のCPUデータパスに提供される。これによって、AL
Uは複数のレジスタを同時に読み出すことができる。A
LU動作の結果は、図1の66で概略的に示される別個
のバスラインを介して、レジスタバンクに戻される。
【0031】あるいはALUの結果は、メモリアドレス
レジスタ70に書き込まれうる。メモリアドレスレジス
タ70は、レジスタバンク40からアンロードされた、
およびバス45を介してメモリに戻されたデータを格納
するためのコンピュータメモリ30に、アドレス情報を
供給する。ALUの結果はまた、論理制御ブロック20
からのプログラミング命令に応じて、メモリアドレスレ
ジスタ70を通って、メモリに直接戻されてもよい。別
個のプログラミング命令レジスタ77はまた、論理制御
ブロック20に命令を送るためにデータパス20に提供
される。命令レジスタは、ALUをバイパスする論理制
御ブロックからの命令フェッチコマンドに応答して、命
令を格納する。
【0032】図2は、図1に示されたと同様のデータパ
ス10および関連する装置の概略図である。図1で用い
られたと同じ参照符号が図2の同様の素子には付されて
いる。図2に示されるデータパス10は、単一のALU
を有するデータパスにおいて、レジスタバンク40への
データのローディングあるいはアンローディングによっ
て呈される、計算の非効率を解決するためのある従来技
術のアプローチを含む。その問題は、ALU60の「ダ
ウンタイム」であり、1以上のI/Oポート50、5
1、52、53を介してレジスタからロードもしくはア
ンロードされているときはいつでも生じる。ALUは、
ローディングあるいはアンローディングの間、データを
処理することや計算を行うことはできない。メモリ30
内のデータの格納場所からのデータの取り出しは、少な
くとも数クロックサイクルを要する。格納アドレスは、
転送されるデータ項目各々に対して識別されなくてはな
らない。ある状況下では、メモリ30にアクセスするた
めのロード/アンロード遅延が許容できないことがあ
る。例えば、コンピュータソフトウェアが、取り扱うた
めのCPU処理に割り込み、あるいはコンピュータによ
り優先順位を与えられた計算に割り込む、プログラム割
り込みは、データをクリアされたアクティブなレジスタ
バンク40を必要とする。
【0033】図2は、そのような現象を引き起こす遅延
を回避するため、コンピュータの製造業者数社によって
用いられている1つの解決策示す。この解決策は、レジ
スタバンク40と同様あるいは同一の、第2のパラレル
レジスタバンク80を供給する。第2のパラレルレジス
タバンク80は、割り込みコマンドを受け取ると、レジ
スタバンク40と交換されうる。割り込みは、図2の矢
印84によって概略的に示される。割り込み命令を受け
取ると、CPUは典型的には計算の進行を終了し、そし
て、データをレジスタバンク40に保存するため、レジ
スタバンク40とレジスタバンク80を交換する。その
方法では、割り込み処理のためにレジスタを開放する目
的で、レジスタバンク40の内容はメモリ30にアンロ
ードされる必要はない。データパス10内で、レジスタ
バンク40のレジスタバンク80へ交換することは、割
り込み応答時間を早め、割り込み事象が終了した時にC
PUが割り込み前の状態にすばやく戻ることを可能にす
る。
【0034】図2では、レジスタバンク40と80の交
換が概略的に示される。I/Oポート50、51、5
2、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内の論理制御ブロック2
0によって制御されるマルチプレクサスイッチ(図示せ
ず)のような適切な相互接続によって達成される。レジ
スタバンク40および80間の交換を達成するためのマ
ルチプレクサの構成は、I/Oポートおよびプロセッサ
ポートの数と位置に依存し、データパス10のレイアウ
トおよび配線を必要事項として達成されうる。あるい
は、レジスタバンク40および80は、必ずしも互いが
物理的に分離している必要はなく、実際は、単一の、よ
り容量が大きいレジスタバンクの部分であり得る。機能
的には、レジスタバンク80は分離しており、割り込み
応答の間以外には用いられず、レジスタバンク80上の
I/Oおよびプロセッサポート50、51、52、53
は割り込み応答以外にはディスエーブルされ、どの外部
データバスとも接続されていない。レジスタバンク40
および80がともに複数のレジスタバンクを含む、より
大きなブロックの部分である場合には、レジスタバンク
80を含むブロックの一部のI/Oおよびプロセッサポ
ートは、割り込み応答が必要とされるまでディスエーブ
ルされる。従来の技術においては、割り込み応答の一部
としてレジスタバンク80の役割を果たす物理的なアー
キテクチャに関して、非常に数多くの変形が利用可能で
あり、当業者は他の変形も容易に思いつくであろう。
【0035】高速な割り込み応答のための冗長データ格
納レジスタバンク80を提供する技術は、例えばカリフ
ォルニア州キャンプベルのZilog,Incによって
製造されたZ80や、RISCプロセッサのARM60
0シリーズのような、多くのレジスタベースのCPUで
用いられる。図2の技術は割り込み中の時間を省き、C
PUデータ処理中のプロセッサの状態を保つが、現在用
いられているように、割り込み機能のみに限定される。
【0036】図3は、適切なデータパス相互接続システ
ムを示す。適切なデータパス相互接続システムは、マル
チプレクサおよびデマルチプレクサを利用し、図2に示
されるデータパス内のレジスタバンクとALU間の必要
な有効接続を形成する。図1および2で示される従来の
技術のデータパスに共通であるCPUデータパス10の
素子は図3において同じ参照符号が付されており、それ
らの素子の機能は、図1および2を参照して前に述べら
れた素子の機能と同じである。図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のポートをALU6
0およびデータバス45に選択的に接続するためのデー
タパス相互接続を提供することである。
【0037】マルチプレクサ110は、レジスタバンク
100のレジスタにデータをロードおよびアンロードす
るための、少なくとも3つのデータのソースを含む。マ
ルチプレクサ110への入力の1つがデータバス45で
あり、他はALU出力バス66である。第3の入力は、
バス120を介した、他のデータソース125からの入
力である。他のデータソース125は、例えば、ディジ
タル化ビデオ/オーディオ信号からのリアルタイムデー
タストリームであり得る。マルチプレクサ110は、ロ
ード/格納制御論理ブロック135から制御ライン13
0上に供給されるマルチプレクサへのコマンドに基づい
て、これらのデータソースから選択する。ロード/格納
制御論理ブロックは、コンピュータの動作ソフトウェア
に基づいて予めプログラムされた命令に応じて、コンピ
ュータ論理制御ブロック20から制御命令を受け取る。
【0038】マルチプレクサ110’はまた、ポート5
0、51およびレジスタバンク102に接続するための
複数の入力データソースを有する。データソースは、マ
ルチプレクサ110に供給されるのと同じデータソース
である。マルチプレクサ110’は、マルチプレクサ1
10と同様にライン130’を用いてロード/格納制御
論理ブロック135によって制御される。
【0039】データ入力と、レジスタバンク100、1
02それぞれのI/O入力ポートとの間の、マルチプレ
クサ110、110’の介在は、レジスタバンク10
0、102に接続される少なくとも1つのデータのソー
スの追加を許すことによって、効率的にレジスタバンク
に対するI/Oポートの数を増加させる。
【0040】デマルチプレクサ112は、レジスタバン
ク100のプロセッサポート52、53に接続され、バ
ス62、64を介してALU60にデータを方向付け
る。デマルチプレクサ112からの他の出力転送位置
は、バス145を介した別個のデータ格納位置140で
ある。
【0041】デマルチプレクサ112’は、レジスタバ
ンク102のプロセッサポート52、53からデータを
受け取り、デマルチプレクサ112と同様、バス62、
64および145にデータを方向付ける。デマルチプレ
クサ112、112’は共に、それぞれライン130、
130’を介して、ロード/格納制御論理ブロック13
5によって制御される。レジスタバンク100、102
それぞれのプロセッサポート52、53とALU60と
の間にデマルチプレクサ112、112’を設置する有
効な効果は、ALU60に接続されている2つのレジス
タバンク100、102のいずれかを選択できることで
ある。同様にマルチプレクサ110、110’は、ロー
ド/格納制御論理135から受け取られた制御命令に依
存して、データバス45および66、またはバス120
の一方に接続される。
【0042】図4はロード/格納制御論理135、マル
チプレクサ110、110’およびデマルチプレクサ1
12、112’によって達成される、接続のシーケンス
を示す表である。レジスタバンク100に対する、I/
Oおよびプロセッサポート50、51、52、53への
接続は、左欄、「レジスタA(100)」の下にある。
表のシーケンスステップ1では、レジスタ100のポー
ト50、51、52、53はそれぞれ、バス45、6
6、62、64に接続されている。そのような構成にお
いて、レジスタバンク100はデータを処理する際に利
用される。レジスタバンク100への前述の接続と共
に、レジスタバンク102のI/Oおよびプロセッサポ
ート50、51、52、53は、シーケンスステップ1
の右欄に示されるように、タイトル「レジスタB(10
2)」の下にある。レジスタ102のポート50はバス
120に接続され、ポート52はバス145に接続され
ている。これは、レジスタバンク102がロード/アン
ロード中に動作することを意味する。次のシーケンス、
ステップ2では、レジスタバンク100のポート50は
バス120に接続され、ポート52はバス145に接続
され、レジスタバンク100はロード/アンロードモー
ドにある。シーケンスステップ2では、同時に、レジス
タバンク102のポート50、51、52、53がそれ
ぞれバス45、66、62、64に接続され、レジスタ
バンク102は動作の処理段階にある。この処理段階で
は、データはALU50を通って処理される。シーケン
スステップ3は、シーケンスステップ1について述べた
接続を繰り返す。シーケンスステップ4は、シーケンス
ステップ2について述べた接続を繰り返す。接続のシー
ケンスは、このように限りなく繰り返されうる。
【0043】図3に示されるデータパスは、レジスタバ
ンク100、102がロード/アンロード動作およびデ
ータ処理動作の間に繰り返し交換されることを可能にす
る。レジスタバンク100がデータをアンロードおよび
再ロードされる一方で、レジスタバンク102はALU
60に接続され、その中のデータは処理される。I/O
ポートおよびプロセッサポートの相互接続がロード/格
納制御論理ブロック135により切り換えられると、レ
ジスタバンク100内のデータは処理され、同時にその
一方で、データはレジスタバンク102にアンロードお
よび再ロードされる。
【0044】実際には、ロード/格納制御論理135
は、可換のレジスタバンク100、102に有効に接続
された相互接続コントローラとして動作する。ロード/
格納制御論理135は、マルチプレクサ110、11
0’およびデマルチプレクサ112、112’ととも
に、データパス相互接続システムとして動作し、可換な
レジスタバンク(100から102)の1つの入力/出
力ポートとALU60に有効に接続し、それによってそ
のレジスタバンク内のデータは処理される。その一方
で、他のレジスタバンクのアイドルポートをデータバス
120、145に選択的に接続し、それによってデータ
は他のレジスタバンクへロードされ、他のレジスタバン
クからアンロードされる。マルチプレクサ110、11
0’およびデマルチプレクサ112、112’は、その
後、逆になるようにいま述べられた相互接続を許容し、
第1のマルチプレクサはデータロード/アンロードバス
120、145に接続される。その一方で、第2のレジ
スタバンクが、その中でデータを処理するためにI/O
プロセッサポートに接続される。ロード/アンロード機
能とデータ処理機能の間のレジスタバンク100、10
2を切り換える能力により処理時間が短縮され、より効
率的な処理動作になる。図3に示されるデータパス10
の基本的な機能動作は、レジスタバンク100および1
02の間の切り替えを除いては、図1に示されるデータ
パスと同じである。結果として、図1に示されるメイン
プロセッサ論理制御ブロック20のために記述されたソ
フトウェアは、図3のデータパスにおいて実質的に変化
することなく動作する。その理由は、レジスタバンクが
一旦ALU60に接続されてしまうと必須のアーキテク
チャおよびCPUデータパスへの接続は変化しないから
である。
【0045】上記は、CPUデータパスの典型的な従来
技術のアーキテクチャの理解のため、図で示された情報
に分けた。図3のデータパスは、リアルタイムビデオ入
力のようなソースからのデータのストリームが、図1に
示される信号レジスタバンクシステムにおいてより効率
的に処理されることを可能にする。データは1つのレジ
スタバンクからロードおよびアンロードされ、他のレジ
スタバンク内の別個のデータの組がALUによって処理
される。他の処理動作のため、あるいは論理コントロー
ラ20によって監視するため、両方のレジスタバンク内
のデータは、好ましくはアクセス可能であり、データパ
ス内のデータバスにおいて、全てのデータバスは、好ま
しくは要求に応じてモニタされ、アクセスされうる。し
たがって、データパス10は、全てのデータバスおよび
アドレスバスに接続されたバス送受信装置180を含
み、制御論理ブロック20に包含される外部コントロー
ラによって監視される、一般的なコンピュータ動作を可
能にする。
【0046】図5は、以下の本発明の実施例で必要な説
明を簡単化する上で役立つ、図3のデータパスの簡単化
した概略図である。本発明は、1以上のレジスタバンク
を共有する、複数のプロセッサ(ALU)を有するデー
タパスを提供する。図3の全ての相互接続を示すことの
複雑さは、混乱を招くであろう。さらに、図3に示され
た接続は、レジスタベースの処理の分野における当業者
には周知であり、より簡単化した図の方が、本発明を実
施するための適切なアーキテクチャを当業者に与えるこ
とができる。図5において、「レジスタバンクA」のボ
ックスは図3のレジスタバンク100であり、「レジス
タバンクB」のボックスはレジスタバンク102であ
る。データソース125は、図3に示されるように、デ
ータパス10の外にある外部データソースである。デー
タプロセッサ60は、図3のALU60である。デステ
ィネーション「格納210」は、データ格納位置ブロッ
ク140をデータパス10の外に含む、コンピュータメ
インメモリ30である。マルチポートデータパス相互接
続230は、データパス相互接続システムの概略的表現
であり、図3では、マルチプレクサ110、110’お
よびデマルチプレクサ112、112’とともにロード
/格納制御論理ブロック135を含む。データパス相互
接続230は、全ての他の素子と、図5に示されるデス
ティネーション210の間の有効接続を含む。
【0047】図5のデータパスの動作は、図3のデータ
パス10と同じである。データはデータソース125か
ら入力バス120を介して、例えば、レジスタバンクA
100に転送される。データは相互接続230を通過
し、レジスタバンクA100までの経路を決められる。
そして、レジスタバンクAは、相互接続230を通って
プロセッサ60に接続され、データは、データソース1
25からバス120を介して相互接続230を通ってレ
ジスタバンクB102にロードされる。レジスタバンク
A100内のデータに関して処理が終了すると、レジス
タバンクB102が相互接続230を介してプロセッサ
60に接続され、レジスタバンクA100内のデータ
が、外部メモリ210にアンロードされる。
【0048】データパス相互接続230は、マルチプレ
クサおよびデマルチプレクサの組とは違った相互接続シ
ステムであり得る。例えば、データパスメモリバンクA
およびBは、単一のマルチポートメモリの別個のアドレ
ッシング可能なポートを構成しうる。複数の入力/出力
ポートを有することは、当業界において周知である。ア
ドレスの数値ブロックが用いられ、レジスタバンクAを
アクセスし、アドレスの異なる数値ブロックがレジスタ
バンクBにアクセスする。そのような構成では、相互接
続230は、所望の有効接続が、各別個のアドレッシン
グ可能なレジスタバンクおよび有効に接続されている装
置間で確立されることを保証するための、適切なアドレ
スインクリメンタを含みうる。その確立は、それぞれの
レジスタバンクの1つからロードあるいはアンロードさ
れているデータを選択的に方向付けるために、アドレス
をインクリメントすることによってなされ、それによっ
てデータは適当なレジスタバンクに方向付けられる。デ
ータパス相互接続230はまた、外部データソース12
5、デスティネーション210とともにデータプロセッ
サ60との有効な接続を提供する。
【0049】図6は、図5におけるデータパスの概略的
表現であり、本発明の第1の実施例を示す。第1の実施
例では、2つのデータプロセッサ(ALU)の各々が連
続してデータを効率的に処理するために、データパス内
の複数のレジスタバンクを共有する。データパス10
は、命令デコードおよび図1のブロック20のような論
理により制御されたブロック(図示せず)によって、操
作により制御されるレジスタベースのコンピュータのた
めのCPUデータパスを示す。データパス10は、複数
のデータ格納レジスタバンクA250,B252,C2
54,D256をそれぞれ含む。レジスタバンクは適切
なマルチポートレジスタの一部であり得る。ここで、別
個のそれぞれのレジスタバンクは、別個の入力/出力ポ
ート(I/Oポート)を通って別個にアドレッシング可
能である。レジスタバンクA250のI/Oポートは、
260で概略的に図示される。レジスタバンクB252
のI/Oポートは、262で示される。レジスタバンク
C254のI/Oポートは、264で示される。レジス
タバンクD256のI/Oポートは、266で示され
る。
【0050】レジスタバンクA−Dは、マルチポートデ
ータパス相互接続230を通って、データパス10内/
外の装置と有効に接続される。バス270、272、2
74、276は、それぞれのレジスタバンクA,B,
C,Dと相互接続230間の相互接続を提供する。当業
者に理解されるように、相互接続230は、セグメント
化されたマルチポートメモリの別々にアドレッシング可
能な部分をアドレッシングするためのアドレスインクリ
メンタ(図示せず)を含む、適切にはマルチポート相互
接続バスである。
【0051】図7は、マルチポートメモリがどのように
データパス相互接続230の部分として実現するかの例
を示す。図7では、ボックス281は、図6のように4
つの別個にアドレッシング可能なレジスタバンクA,
B,CおよびDを有するマルチポートレジスタバンクを
表している。説明の簡単のため、各レジスタバンクは1
6ビット間隔で分けられた内部アドレスによってアドレ
ッシング可能であるとする。すなわち、レジスタバンク
Aはアドレス0−15としてアドレッシング可能であ
り、レジスタバンクBは16−31としてアドレッシン
グ可能、等である。データパス10にデータが到達する
と、相互接続システムは、対象となるレジスタバンク内
のアドレスに到達するのに必要とされる適当量だけ、ア
ドレスをインクリメントすることによって、各選択され
たレジスタバンクへの有効な接続を形成する。これは、
レジスタバンクA,B,CおよびDのためのレジスタバ
ンクオフセットを格納するレジスタ285から適当なイ
ンクリメントの呼び出しを行う、レジスタバンクシーケ
ンサ283によって達成される。オフセット値は、その
後、選択されたオフセット値と、ラインM,N,Oおよ
びP上を入って来るデータアドレスとを結合する加算器
287に転送される。入ってくるアドレス情報と結合さ
れると、オフセットは、ローカルレジスタバンクの1つ
のみとの有効な接続を生じることで、そのレジスタバン
クのみがアドレッシングされることを保証する。本発明
の範囲にある、他の適切な有効相互接続システムを、当
業者は思いつくであろう。
【0052】あるいは、相互接続230は、図3および
4を参照して一般的に図示され述べられたように、デー
タパス内/外の他の装置を伴ったレジスタバンクと相互
接続する、1以上のマルチプレクサおよびデマルチプレ
クサであり得る。
【0053】図6のデータパスは、プロセッサ1(30
0)および、プロセッサ2(302)として識別される
第1および第2のデータプロセッサあるいはALUを含
む。データプロセッサ300、302は、そのプロセッ
サが接続されているメモリ内の個々のメモリ位置におけ
るオペランドを処理する、任意の適切なタイプの計算プ
ロセッサであり得る。本発明においては、各データプロ
セッサ300、302は、データパス10内の全てのレ
ジスタバンクA−Dとシーケンシャルに接続されてお
り、それらを共有している。レジスタバンクは、外部コ
ンピュータコントローラ(図示せず)によって指示され
るように、各プロセッサにシーケンシャルに接続されて
いる。データプロセッサ300、302によって行われ
る処理のタイプあるいは複雑さは、設計的選択事項であ
り、本発明によっては限定されない。プロセッサの1つ
は、例えば、数を加算あるいは減算する、非常に単純な
演算プロセッサであり、一方、他のプロセッサは高度な
総合DSPタイププロセッサである。行われる処理のタ
イプに拘わらず、プロセッサ300、302の1つに接
続されたレジスタバンク内のデータは、そのプロセッサ
のアルゴリズムおよび命令にしたがって処理される。
【0054】図6の実施例では、プロセッサ300は、
相互接続バス310およびデータパス相互接続230を
介して、レジスタバンクAからDに有効に接続されてい
る。プロセッサ302は、相互接続バス312およびデ
ータパス相互接続230を介して、レジスタバンクAか
らDに有効に接続されている。
【0055】図6のデータパス10の動作が、表1を参
照して述べられる。この表は、プロセッサ300および
302を通してデータを処理するためになされた接続の
シーケンスを示す。接続は、図4の表で示されるシーケ
ンスと同様の方法で述べられる。図6および表1を参照
すると、シーケンスの第1のステップは、データ入力バ
ス352を介して、外部データソース350から、バス
270を介して、レジスタバンクA250へデータをロ
ードする。この相互接続は、(マルチプレクサが用いら
れていれば)マルチプレクサにおける適当な接続の切り
替えを通して、あるいは、相互接続230における適切
なインクリメンタを用いて、レジスタバンクAに一意に
関連づけられたアドレスに入ってくるデータの格納アド
レスをインクリメントすることによって、データパス相
互接続230により達成される。表1では、バス352
および270の間の有効な接続は「350/270」に
よって示されており、挿入句「(ロード)」によってロ
ードステップとして記されている。これは、外部データ
ソース350からレジスタバンクAにデータがロードさ
れることを意味する。
【0056】
【表1】
【0057】シーケンスステップ2は、入データバス3
52をバス272に接続することによって、データをレ
ジスタバンクB252にロードする。同時に、レジスタ
バンクA250は、データパス相互接続230を通っ
て、プロセッサバス310を介して、プロセッサ1(3
00)に接続される。そのため、レジスタバンクAのI
/Oバス270は、表1で「270/310」で示され
るように、プロセッサ1(300)、バス310と相互
接続される。シーケンスステップ2では、レジスタバン
クA内のデータは、表1で挿入句「(処理1)」として
示されるようにプロセッサ1(300)の演算処理に応
じて処理される。
【0058】次のシーケンスステップ3では、レジスタ
バンクAは、データパス相互接続230を介してバス3
12と接続されたバス270を伴い、プロセッサ2(3
02)に有効に接続される。これは、表1で「270/
312」によって示されており、データプロセッサ2
(302)にしたがったレジスタバンクA内のデータの
処理は「(処理2)」によって示されている。同時に、
レジスタバンクBは、バス272および310およびデ
ータパス相互接続230を介して、プロセッサ1に接続
される。これは、表1において「272/310(処理
1)」で示される。そして、レジスタバンクAのデータ
がデータプロセッサ2で処理され、レジスタバンクBの
データがデータプロセッサ1で処理される一方で、デー
タが、データパス相互接続230を通ってバス352お
よび274を介してレジスタバンクCにロードされてい
る。これは、表1において「352/274(ロー
ド)」によって示される。
【0059】次のシーケンスステップ(ステップ4)
は、レジスタバンクAからの処理されたデータをアンロ
ードする。これは、外部の「アンロード」データバス3
70とともに相互接続データバス270により達成され
る。格納380は、データパス10から現れるデータの
デスティネーションの概略的表現である。これは、図1
の30および図3の140/30に示されているよう
に、通常、メインコンピュータメモリである。シーケン
スステップ4では、レジスタバンクAのI/Oバス27
0は「270/370」により示されるように、データ
アンロードバス370に有効に接続される。レジスタバ
ンクAについて、このステップで用いられる挿入句の機
能表示は「(格納)」である。同時に、レジスタバンク
Bは、バス272および312を介して、データプロセ
ッサ2(302)に接続される。さらに同時に、レジス
タバンクCは、バス274/310を介して、データプ
ロセッサ1(300)と有効に接続される。さらに同時
に、レジスタバンクDは、バス352および276を介
して、外部データソース350と有効に接続する。それ
によって、データは外部ソース350からレジスタバン
クD256にロードされる。
【0060】次のシーケンスステップ5では、レジスタ
バンクAは再度、上記シーケンスステップ1と同様に外
部データソース350に接続される。機能的には、レジ
スタバンクAは再び、シーケンスステップ2および3に
したがって処理されるべき新たなデータをロードされ
る。その後、データはシーケンスステップ4にしたがっ
てアンロードされる。レジスタバンクAがシーケンスス
テップ1のようにロードされるのと同時に、レジスタバ
ンクBは、データパス相互接続230を通ってバス27
2および370を介して、アンロードバス370に有効
に接続される。同時に、レジスタバンクCは、相互接続
230を通って、バス274および312を介して、デ
ータプロセッサ2(302)と有効に接続される。同時
に、レジスタバンクDは、相互接続230を通って、バ
ス276および310を介して、プロセッサ1(30
0)と有効に接続する。
【0061】レジスタバンクAからDに対する上述した
相互接続シーケンスは、表1のシーケンスステップ1、
2、3、4および5を包含する。シーケンスは、レジス
タバンクに対する接続の継続的な繰り返しシーケンスで
ある。各レジスタバンクは4ステップのシーケンスを経
る。すなわち、ロード(レジスタにデータがロードされ
る)、処理1(プロセッサ1(300)によってデータ
が処理される)、処理2(プロセッサ2(302)によ
ってデータが処理される)および格納(バス370を介
して、データがデータパスから出る。図1のシーケンス
ステップ5は、レジスタバンクAに対するロードステッ
プの繰り返しを開始する。シーケンスステップ6は、レ
ジスタバンクBに対するロードステップの繰り返しを開
始する。シーケンスステップ7は、レジスタバンクCに
対するロードステップの繰り返しを開始する。シーケン
スステップ8は、レジスタバンクDに対するロードステ
ップの繰り返しを開始する。相互接続ステップはそれか
らは4番目毎のステップの繰り返しであり、ステップ9
はステップ5の繰り返し、ステップ10はステップ6の
繰り返し、等となる。
【0062】上述のデータパスによれば、データプロセ
ッサおよび個々のレジスタバンクとの間の相互接続をシ
フトすることによって、複数のレジスタバンクの各々を
共有することが可能になる。これは、データパス内のレ
ジスタバンク間のデータのブロックの転送を最小にす
る。そのかわり、本発明は、接続を確立しているデータ
パス内の様々な素子に制御信号を送ることによって、レ
ジスタバンクおよびプロセッサ間の接続をシフトする。
データを移動するよりも、制御信号を移動する方が常に
より速い。これは、本発明のデータパス構成が従来技術
のデータパスよりも高速だからである。ここでは、デー
タはレジスタバンクのシーケンスあるいは他のメモリ格
納装置を通って、シリアルに移動される。
【0063】本発明はデータパスに限定されることはな
い。ここで、データは、図6に示されるように2つの異
なるデータプロセッサによって処理される。しかし、本
発明は、任意の数のデータプロセッサを通って、複数の
データバンクをシーケンシャルに接続するのに用いられ
得る。図8は、レジスタバンクAからZを含む本発明に
したがったデータパス10を概略的に図示している。こ
こで、Zはアルファベット列のAからZまでの数より大
きい数を含む任意の整数を表す。様々なレジスタバンク
内のデータが、n個(nは任意の整数)のデータプロセ
ッサを通ってシーケンシャルに処理される。本発明の好
ましい形態では、Zはn+2に等しい。これは、レジス
タバンクの数が、データパス内のデータプロセッサの数
よりも2だけ大きいことを意味している。これにより、
あるレジスタバンクがデータをそのレジスタバンクにロ
ードするために用いられ、あるレジスタバンクがデータ
パスからメインコンピュータ格納装置にデータをアンロ
ードするために用いられ、残りのレジスタバンクが、同
時にデータを処理するためにn個のデータプロセッサに
接続されることが可能になる。これは、図6の実施例に
おいて、n=2およびZ=4の場合である。
【0064】図8の実施例においては、マルチポートデ
ータパス相互接続230は、図3のようなマルチプレク
サ相互接続システムか、図7を参照して図示され述べら
れた、アドレスシーケンサ相互接続システムかのいずれ
かである。相互接続230は、複数のデータ格納メモリ
バンクA450、B452、C454、・・・、Y45
6、Z458それぞれを相互接続する。各レジスタバン
クは、それぞれ入力/出力バス470、472、47
4、476および478を介して相互接続230に接続
されている。データプロセッサ1からnは、行われるデ
ータの処理の複雑さに拘わらず、適切な任意のタイブの
演算プロセッサである。プロセッサ1(500)は、バ
ス510を介して相互接続230に有効に接続されてい
る。プロセッサ2(502)は、バス512を介して相
互接続230に有効に接続されている。そして、プロセ
ッサn(504)は、バス514を介して相互接続23
0に有効に接続されている。データは、図8で「ロー
ド」として図示されているデータソース550を通っ
て、データパス10の外部から、選択されたレジスタバ
ンクにロードされる。入データバスは552であり、相
互接続230に有効に接続されている。データは、バス
570を介してデータパス10から出て、図8で「格
納」580として図示されている、メインコンピュータ
メモリあるいは他のデータのデスティネーションに送ら
れる。
【0065】表2は、図8の実施例についての相互接続
シーケンスの一部を示す。ここで、n個の処理ステップ
は、Z個(Zはn+2に等しい)のレジスタバンクにシ
ーケンシャルに接続されているn個のデータプロセッサ
を用いて実行される。表2には、レジスタバンクA、
B、Cに対する接続のみが示されているが、残りのレジ
スタバンクへの追加の相互接続が、簡潔に述べられた最
初の3つのレジスタバンクの相互接続パターンに続い
て、容易に理解されるであろう。
【0066】
【表2】
【0067】おそらく、各レジスタバンクに対する相互
接続を述べることによって、表2において示した相互接
続を説明することが最も簡単であろう。レジスタバンク
A450はまず、相互接続230を通って有効に接続さ
れたバス552および470を介して、外部データソー
ス550からロードされる。次のステップでは、レジス
タバンクAは、バス470および510を通ってデータ
プロセッサ1(500)に有効に接続される。次のステ
ップでは、レジスタバンクAは、バス470および51
2を通ってデータプロセッサ2(502)に接続され
る。レジスタバンクAは続いて、バス470および51
2を通ってプロセッサ2(502)に接続される。レジ
スタバンクAはそれから、バス470および514間の
接続を通ってステップn+1において生じるデータプロ
セッサn(504)を通るまで、各データプロセッサに
シーケンシャルに接続される。レジスタバンクAの接続
シーケンスにおける最終ステップは、表2に示されるよ
うに、ステップn+2である。ここで、レジスタバンク
Aは、データパスアンロードバス570に接続されてお
り、データはレジスタバンクからアンロードされ、図8
の580で示されるように、メインコンピュータメモリ
あるいは他の格納装置に送られる。そして、レジスタバ
ンクAのシーケンスは再び、ステップ1において開始す
る。ここで、レジスタバンクはデータソース550から
データをロードされる。表2のシーケンスステップn+
3は、レジスタバンクAの繰り返しサイクルの開始であ
り、ステップ1で示された接続は、機能「ロード」ステ
ップのように繰り返される。シーケンスはそれから、格
納ステップを通るまで、処理1、処理2ステップ等々の
ステップを通り、レジスタバンクAについて繰り返す。
【0068】レジスタバンクBは、レジスタバンクAに
ついて述べたのとまさに同じシーケンスを、1ステップ
遅れて、バス470の代わりに表2の第2欄におけるI
/Oポートバス472を用いて、繰り返す。同様に、レ
ジスタバンクCはシーケンスステップ3から始まる同じ
シーケンスを繰り返し、レジスタバンクCはI/Oバス
474を通った、データをロードする。図6の実施例の
ように、各レジスタバンクは、アンロードに用いられる
他のレジスタバンクを同時にロードするために用いられ
るあるレジスタバンクとともに、各プロセッサにシーケ
ンシャルに接続されている。概念的にはレジスタバンク
の数には制限はなく、上述のサイクルが経る処理ステッ
プは繰り返されうる。
【0069】複数のデータプロセッサ間でレジスタバン
クを共有するためのシステムは、本発明にしたがったデ
ータ処理の方法に自ずから容易に到達する。その方法
が、データパス10の周の回りに示した機能用語によっ
て、図6および8に概略的に示される。図6では、ロー
ドステップは、データパス相互接続の左端に位置する、
外部データソースロード機能350によって図示され
る。データをまずロードした各レジスタバンクに対し、
本方法は、次のステップに移り、「処理1」ステップ5
82を行う。このステップでは、まさにロードされたレ
ジスタバンクは、図6の第1のデータプロセッサ300
にしたがって処理される。次のステップ「処理2」58
4は、レジスタバンクをデータプロセッサ2(302)
に有効に接続する。
【0070】以下の説明では、処理におけるステップ
は、「第1のレジスタバンク」として参照される単一の
レジスタバンクを参照して述べられる。第1のステップ
は、外部データソース350から第1のレジスタバンク
へデータをロードすることである。図6の左から右へ移
ると、次のステップは、第1のデータプロセッサ(図6
のデータプロセッサ1(300))へのデータをちょう
どロードされた第1のレジスタバンクを有効に接続する
ことである。データはそして、データプロセッサ1に応
じて処理される。本方法における次のステップは、第1
のレジスタバンクを、図6のデータプロセッサ2(30
2)である第2のデータプロセッサに有効に接続し、第
2のデータプロセッサにしたがって、そこでデータを処
理する。最後のステップは、レジスタバンクを外部メモ
リあるいは格納装置380に有効に接続することによっ
て、第1のレジスタバンクからデータをアンロードする
ことである。
【0071】上述の方法において、第1のレジスタバン
クが図6のレジスタバンクAであるとすると、本方法は
好ましくは、全く同じであるが1サイクル遅延している
シーケンスを伴う、同時に第2のレジスタバンクへのロ
ードおよび処理をさらに含む。換言すれば、第2のレジ
スタバンク(図6のレジスタバンクB)内のデータは、
処理されている第1のレジスタバンク内のデータととも
に同時にロードされる。このステップは表1に示されて
いる。ここでシーケンスステップ2では、レジスタバン
クBは同時にロードされ、レジスタバンクAは第1のデ
ータプロセッサ1を通して処理される。本方法は、好ま
しくは第3のレジスタバンクにデータをロードするステ
ップをさらに含み、その際に、第2のレジスタバンクは
第1のデータプロセッサに有効に接続されており、第1
のレジスタバンクは第2のデータプロセッサに有効に接
続されている。これは表1、シーケンスステップ3に示
されている。ここで、レジスタバンクCはロードされ、
レジスタバンクBはデータプロセッサ1で処理され、レ
ジスタバンク内のデータはデータプロセッサ2内で処理
される。これらは同時に行われる。
【0072】本方法は、n個(nは2以上)のデータプ
ロセッサまで、複数のレジスタバンクをシーケンシャル
に接続することを可能にする。本方法の最も効率的な動
作のためのレジスタバンクの数は、好ましくは(n+
2)個である。各レジスタバンクは4ステップのシーケ
ンスを経る。すなわち、ロード(レジスタにデータがロ
ードされる)、処理1(プロセッサ1(300)によっ
てデータが処理される)、処理2(プロセッサ2(30
2)によってデータが処理される)および格納(データ
はデータパスファイルから出る)である。
【0073】本発明は、ディジタル化ビデオ/オーディ
オ信号の処理に要求されるような、データのストリーム
の繰り返し処理において、特に有用である。ディジタル
信号処理(DSP)の局面をディジタル計算の他の形態
と結合する、多くのタイプの処理が存在する。DSP
は、データの大規模なブロック上にある、命令の短いル
ープの反復実行によって特徴付けられる。DSPの処理
段階の後で、データの処理されたこれらのブロックに、
他の処理がしばしば施される。例えば、FFTルーチン
では、より長いアルゴリズムの一部として、新たに計算
されたFFT係数を用いる論理動作のいくつかのシーケ
ンスが続きうる。
【0074】アルゴリズムの流れの中で、互いに通信す
る別個のDSPおよびより一般的なCPU装置を有す
る、共通のアプローチがとられている。これらの装置
は、大規模システムあるいは集積回路(IC)であり得
る。このアプローチは別々のソフトウェア、ハードウェ
ア開発システム、および適切な動作を確実にするための
ある形態のシステム統合を必要とする。標準のCPU命
令セットおよびアーキテクチャの制約内でDSPアルゴ
リズムの効率的計算を可能にするにおいて、より短い開
発時間およびより簡略なシステムハードウェアという点
で明らかな利点が存在する。
【0075】米国出願第08/515,645号(以下
「先行出願」として参照する)に記載された発明の背後
にある主要な発想は、レジスタベースデータプロセッサ
において、ロードおよび格納命令のプログラムオーバー
ヘッドを減少するためレジスタコンテクスト切り換えの
概念を拡張することである。この主要な概念は、別の汎
用データプロセッサによるDSP(ディジタル信号処
理)に対しては特に適切である。ここでは、計算の小規
模な繰り返しループが、データの大規模ブロックにわた
って繰り返される。データはフェッチユニットによっ
て、計算のための正しい順序においてフェッチされ、レ
ジスタバンクに蓄積される。このバンクはそれから実際
のデータ処理素子に有効に接続される。処理サイクルの
結果、その同じレジスタバンクが格納ユニットに有効に
接続され、正しい順序においてメインデータメモリに結
果を書き出す。先行出願には、効率的にフェッチ、処理
および格納の機能を交替する、最適な3つのレジスタバ
ンクがある。あるレジスタがフェッチされたデータであ
ふれると、他のレジスタは、処理されたそのデータを有
し、第3のレジスタバンクがメモリに終了した結果を書
き出す。レジスタバンクA,BおよびCとして既知の場
合には、交替シーケンスは以下表3のようになる。
【0076】
【表3】 この方法では、ロードおよび格納動作のオーバーヘッド
がデータプロセッサから隠される。多くのタイプのデー
タプロセッサが、(メモリ参照なく)レジスタファイル
中のデータに関してのみ動作を行うので、このオーバー
ヘッドの減少は有力な考慮事項である。
【0077】本特許出願の主要な発想は、交替レジスタ
バンクの発想が、ただ1つのプロセッサおよび関連する
データフェッチおよび格納ユニットであるというよりは
むしろ、多くのデータプロセッサを包含しうるというこ
と、これらのデータプロセッサは同じタイプであり得る
が、同じタイプである必要はないこと、およびいくつか
の形態のマルチポートデータパス相互接続であり得るこ
とである。これらの2つの形態は、個別のレジスタバン
クおよび、各レジスタバンクを適当な時にそのそれぞれ
のプロセッサに有効に接続するマルチプレクシング配
置、あるいは、第2に、実際の(true)マルチポートレ
ジスタファイルである。ここでは、メモリの構造それ自
体においては有効接続は暗示されており、レジスタバン
ク接続の転換は、異なるアドレスオフセットをマルチポ
ートレジスタファイルの各レジスタバンク部分に導入す
ることによって、達成される。この方法によってシステ
ムを編成することには、以下に示す多くの利点がある。
【0078】1.既に述べたように、ロードおよび格納
のオーバーヘッドが最小化される。
【0079】2.中間の処理結果は、計算のフォーマッ
トの準備をして、計算の次の段階へ容易に伝達される。
処理素子は、同じタイプでありうるが、同じタイプであ
る必要はないことに留意されたい。処理素子が同じタイ
プである場合には、各処理素子のための、全てにわたる
計算の段階のためのコードを開発するために、単一の、
統合されたソフトウェア開発環境が用いられ得る。コー
ド開発の簡単化は、複数の処理素子を有するシステムに
おいては、重要な考慮事項である。処理素子はまた、全
てにわたる計算の段階において最適化された、異なるタ
イプであり得る。例えば、あるデータパス処理素子は、
乗算の効率的な計算および乗算の累算動作について最適
化された、よりDSPのような素子であり得、他のデー
タパス処理素子は、先行するステップの結果に基づく論
理動作について最適化され得る。
【0080】3.他のアプローチよりも低電力、高速で
ある。全システムは一種のパイプラインを含むが、計算
のある段階から他の段階への結果の伝達がデータの実際
の移動を要求しない点において、提唱されたシステムが
従来のパイプラインスキームに対して利点を有してい
る。データ要素が、あるレジスタあるいはレジスタバン
クから、他へ順に転送される代わりに、全レジスタバン
クは、全計算における適切な時間に切り換えられる、シ
ーケンスにおける次の処理素子への有効な接続を有して
いる。レジスタバンクの有効な接続を変更することは、
実際にレジスタバンク内のデータを他のある位置あるい
は一連の位置に実際に移動するよりも、かなり高速で、
低電力な動作である。
【0081】前に述べたように、レジスタバンクとデー
タパス素子の間の有効な接続を切り換えることは、少な
くとも二通りの方法においてなされうる。一方は、適切
なデータパス処理素子に接続するために、入力と出力が
マルチプレクサあるいは同様のデータルーティングスイ
ッチによって切り換えられる個別のレジスタバンクによ
る場合であり、もう一方は、各データパス処理素子に接
続するための個別の入力および出力ポートを伴って、全
てのレジスタバンクを単一のマルチポートレジスタファ
イルに組み込む場合である。この第2の場合では、各デ
ータパス処理素子への物理的な接続は固定されるが、各
レジスタバンクへのアクセスは、各ポートにおいてアド
レスオフセットを変更することによって達成される。
【0082】
【発明の効果】本発明によれば、レジスタバンク間のデ
ータ転送の数を減少させることができる。本発明は、複
数のデータプロセッサと複数のデータ格納レジスタバン
クとの間の接続を変更するため、相互接続システムに制
御信号を送ることによって多重処理ステップの多くのデ
ータ転送を回避する。制御信号の移動は、常にデータの
移動よりも速い。したがって、本発明は、データ処理に
おけるオーバーヘッドを減少することができ、データを
移動するのに必要な時間と比較して、制御信号を移動す
る時間が短いという利点を有する。
【図面の簡単な説明】
【図1】従来のレジスタベースコンピュータにおけるC
PUデータパスの概略図である。
【図2】割り込みを処理するための第2のレジスタバン
クを含む、図1の従来のCPUデータパスの概略図であ
る。
【図3】単一のALU間の2つの可換なレジスタバンク
を接続するためのマルチプレクサおよびデマルチプレク
サを用いた、適切なデータパス相互接続システムの概略
図である。
【図4】図3のデータパス相互接続システムのためのポ
ート相互接続シーケンスを示す表である。
【図5】図3のデータパスの簡略した概略図である。
【図6】本発明の第1の実施例に基づいたデータパスの
概略図である。
【図7】マルチポートレジスタを用いるデータパスにお
ける、マルチポート相互接続の実施例の概略図である。
【図8】本発明の他の実施例を示す、図6のデータパス
の概略図である。
【符号の説明】
10 データパス 45 データバス 50 I/Oおよびプロセッサポート 51 I/Oおよびプロセッサポート 52 I/Oおよびプロセッサポート 53 I/Oおよびプロセッサポート 60 演算・論理ユニット(ALU) 62 接続バス 64 接続バス 100 レジスタバンク 110 マルチプレクサ 112 デマルチプレクサ 125 データソース 130 制御ライン 135 ロード/格納制御論理 145 データバス

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 レジスタベースデータ処理のためのデー
    タパスであって、前記データパスは、外部データソース
    およびデスティネーション、および前記データパスを制
    御するための外部コントローラに有効に接続されてお
    り、 前記データパスは、 複数のデータ格納レジスタバンクであって、その各々
    が、前記レジスタバンクへの有効な接続を達成するため
    の1以上の入力/出力ポートを有している、複数のデー
    タ格納レジスタバンクと、 データパスへ有効に接続されたときに、1以上のデータ
    格納レジスタバンク内のデータを処理するための複数の
    データプロセッサと、 前記レジスタバンクを、前記データパスの内部および外
    部にある選択された装置であってデータパスの内部にあ
    る前記データプロセッサと、前記データパスの外部にあ
    る前記データソースおよびデスティネーションとを含む
    選択された装置に有効に接続するためのデータパス相互
    接続システムと、 各レジスタバンクを選択された装置のシーケンスに有効
    に接続する制御信号を提供するための、相互接続コント
    ローラとを含み、 前記シーケンスは、 a)データをレジスタバンクにロードするために、レジ
    スタバンクをデータソースに有効に接続し、 b)前記第1のデータプロセッサにしたがってデータを
    処理するために、前記レジスタバンクを第1の前記デー
    タプロセッサに有効に接続し、 c)前記第2のデータプロセッサにしたがってデータを
    処理するために、レジスタバンクを第2の前記複数のデ
    ータプロセッサに有効に接続し、 d)前記レジスタバンクからデータデスティネーション
    へデータをアンロードするために、前記レジスタバンク
    を前記データデスティネーションに有効に接続する、シ
    ーケンスであり、 前記相互接続コントローラは、前記シーケンスにおい
    て、1以上の追加のレジスタバンクを前記選択された装
    置に有効に接続し、それによって、前記レジスタバンク
    の各々にある前記データが、データプロセッサのシーケ
    ンスを通して処理される、レジスタベースデータ処理の
    ためのデータパス。
  2. 【請求項2】 前記複数のデータ格納レジスタバンク
    は、複数の入力/出力ポートを有するマルチポートレジ
    スタを含み、 データパス内の前記レジスタバンクの各々は、前記マル
    チポートレジスタの別々にアドレッシング可能な部分で
    ある、請求項1に記載のレジスタベースデータ処理のた
    めのデータパス。
  3. 【請求項3】 前記データパス相互接続システムは、前
    記マルチポートレジスタの前記入力/出力ポート、前記
    データプロセッサおよび外部データソースおよびデステ
    ィネーションの間の有効な接続を含み、 前記相互接続コントローラは、前記マルチポートレジス
    タの、別々にアドレッシング可能な部分に対応するアド
    レスを供給するためのアドレスインクリメンタを含み、
    それによって、各レジスタバンクが前記シーケンスにお
    いて前記選択された装置に有効に接続される、請求項2
    に記載のレジスタベースデータ処理のためのデータパ
    ス。
  4. 【請求項4】 前記複数のデータプロセッサは、接続
    a)、b)およびc)の後、各レジスタバンクが前記相
    互接続コントローラによって有効に接続された、前記n
    個のプロセッサと選択された装置の前記シーケンスとを
    含み、接続d)の前に、前記データプロセッサの各々に
    したがってデータを処理するために、レジスタバンクを
    順次n個のデータプロセッサに至るまで追加のデータプ
    ロセッサに有効に接続することを含む、請求項1に記載
    のレジスタベースデータ処理のためのデータパス。
  5. 【請求項5】 データ格納レジスタバンクの数は少なく
    とも(n+2)個であり、それによって、少なくとも1
    つのレジスタバンクはシーケンスステップa)にしたが
    ってデータソースに接続可能であり、あるレジスタバン
    クはシーケンスステップd)にしたがってデータデステ
    ィネーションへ接続可能であり、他のレジスタバンクは
    n個のデータプロセッサに接続可能である、請求項4に
    記載のレジスタベースデータ処理のためのデータパス。
  6. 【請求項6】 前記データパス相互接続システムは、前
    記レジスタバンクの入力/出力ポートを前記選択された
    装置のシーケンスに選択的に相互接続するための、前記
    相互接続コントローラによって制御されるマルチプレク
    サシステムを含む、請求項1に記載のレジスタベースデ
    ータ処理のためのデータパス。
  7. 【請求項7】 レジスタベースCPUのデータパスで用
    いられるデータ処理方法であって、 前記データパスは、複数のデータ格納レジスタバンクで
    あって、その各々が、前記レジスタバンクへの有効な接
    続を達成するための1以上の入力/出力ポートを有して
    いる、複数のデータ格納レジスタバンクと、データを処
    理するための複数のデータプロセッサと、前記レジスタ
    バンクと前記データプロセッサとの間の有効な接続を提
    供するためのデータパス相互接続システムと、を含み、 前記方法は、 データパス内の第1のレジスタバンクにデータをロード
    するステップと、 第1のデータプロセッサにしたがってデータを処理する
    ため、前記第1のレジスタバンクを前記第1のデータプ
    ロセッサに有効に接続するステップと、 第2のデータプロセッサにしたがってデータを処理する
    ため、前記第1のレジスタバンクを前記第2のデータプ
    ロセッサに有効に接続するステップと、 データを前記第1のレジスタバンクからCPU内のデス
    ティネーションへアンロードするステップであって、そ
    れによって、前記第1のレジスタバンク内の前記データ
    がデータプロセッサのシーケンスを通って処理されるス
    テップとを含む、レジスタベースCPUのデータパスで
    用いられるデータ処理方法。
  8. 【請求項8】 第2のレジスタバンクはデータをロード
    され、前記第1のレジスタバンクが第1のデータプロセ
    ッサに有効に接続するステップが実行され、それによっ
    て、前記第2のレジスタバンク内の前記データが、前記
    第2のレジスタバンク内の処理されているデータととも
    に同時にロードされる、請求項7に記載の方法。
  9. 【請求項9】 データが第3のレジスタバンクにロード
    され、前記第2のレジスタバンクが、前記第1のデータ
    プロセッサに有効に接続されており、前記第1のレジス
    タバンクが、前記第2のデータプロセッサに有効に接続
    されており、それによって、同時に、あるレジスタバン
    クがデータをロードされ、他のレジスタバンクが前記第
    1のデータプロセッサにしたがって処理され、更に他の
    レジスタバンクが、前記第2のデータプロセッサにした
    がって処理される、請求項8に記載の方法。
  10. 【請求項10】 前記第1のレジスタバンクは、n個ま
    でのデータプロセッサに順次接続され、nは2以上であ
    る、請求項7に記載の方法。
JP10294979A 1997-10-20 1998-10-16 レジスタベースデータ処理のためのデータパスおよび方法 Pending JPH11212786A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/954,541 US6029242A (en) 1995-08-16 1997-10-20 Data processing system using a shared register bank and a plurality of processors
US08/954.541 1997-10-20

Publications (1)

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

Family

ID=25495580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10294979A Pending JPH11212786A (ja) 1997-10-20 1998-10-16 レジスタベースデータ処理のためのデータパスおよび方法

Country Status (5)

Country Link
US (1) US6029242A (ja)
EP (1) EP0911725B1 (ja)
JP (1) JPH11212786A (ja)
DE (1) DE69826404T2 (ja)
TW (1) TW499639B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1165840A (ja) * 1997-08-11 1999-03-09 Sony Corp 演算処理装置およびその方法
US6212604B1 (en) 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
US7318090B1 (en) * 1999-10-20 2008-01-08 Sony Corporation Method for utilizing concurrent context switching to support isochronous processes
US6775752B1 (en) * 2000-02-21 2004-08-10 Hewlett-Packard Development Company, L.P. System and method for efficiently updating a fully associative array
JP2002108837A (ja) * 2000-09-29 2002-04-12 Nec Corp 計算機システムとその計算制御方法
CN1255721C (zh) * 2000-12-07 2006-05-10 皇家菲利浦电子有限公司 数字信号处理设备
US7117346B2 (en) * 2002-05-31 2006-10-03 Freescale Semiconductor, Inc. Data processing system having multiple register contexts and method therefor
JP3784766B2 (ja) * 2002-11-01 2006-06-14 株式会社半導体理工学研究センター 多ポート統合キャッシュ
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
WO2005020077A1 (en) * 2003-08-13 2005-03-03 Thomson Licensing S.A. Dual bank shared data ram for efficient pipelined video and data processing
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method
US8024551B2 (en) 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US7600081B2 (en) * 2006-01-18 2009-10-06 Marvell World Trade Ltd. Processor architecture having multi-ported memory
US7882284B2 (en) * 2007-03-26 2011-02-01 Analog Devices, Inc. Compute unit with an internal bit FIFO circuit
US9020146B1 (en) * 2007-09-18 2015-04-28 Rockwell Collins, Inc. Algorithm agile programmable cryptographic processor
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code
US8825926B2 (en) * 2009-04-13 2014-09-02 Microchip Technology Incorporated Processor with assignable general purpose register set
US8677150B2 (en) * 2012-02-01 2014-03-18 Intel Mobile Communications GmbH Low-power multi-standard cryptography processing units with common flip-flop/register banks
US20130275699A1 (en) * 2012-03-23 2013-10-17 Hicamp Systems, Inc. Special memory access path with segment-offset addressing
DE102014111305A1 (de) * 2014-08-07 2016-02-11 Mikro Pahlawan Prozessor-Modell, das ein einziges großes, lineares Register verwendet, mit FIFO-basierten I/O-Ports unterstützenden neuen Interface-Signalen und unterbrechungsgesteuerten Bus-Transfers, die DMA, Brücken und einen externen I/O-Bus eliminieren
GB2531058A (en) * 2014-10-10 2016-04-13 Aptcore Ltd Signal processing apparatus
EP3232321A1 (en) * 2016-04-12 2017-10-18 AptCore Ltd Signal processing apparatus with register file having dual two-dimensional register banks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4630230A (en) * 1983-04-25 1986-12-16 Cray Research, Inc. Solid state storage device
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
DE68928507T2 (de) * 1988-06-07 1998-04-16 Fujitsu Ltd Vektordatenverarbeitungsvorrichtung
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
US5388217A (en) * 1991-12-13 1995-02-07 Cray Research, Inc. Distributing system for multi-processor input and output using channel adapters
US5418911A (en) * 1992-06-09 1995-05-23 Intel Corporation Data path switch method and apparatus that provides capacitive load isolation
US5507000A (en) * 1994-09-26 1996-04-09 Bull Hn Information Systems Inc. Sharing of register stack by two execution units in a central processor
US5680641A (en) * 1995-08-16 1997-10-21 Sharp Microelectronics Technology, Inc. Multiple register bank system for concurrent I/O operation in a CPU datapath
US5787304A (en) * 1996-02-05 1998-07-28 International Business Machines Corporation Multipath I/O storage systems with multipath I/O request mechanisms
US5913049A (en) * 1997-07-31 1999-06-15 Texas Instruments Incorporated Multi-stream complex instruction set microprocessor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ
US9367462B2 (en) 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors

Also Published As

Publication number Publication date
EP0911725A3 (en) 1999-11-17
TW499639B (en) 2002-08-21
US6029242A (en) 2000-02-22
DE69826404T2 (de) 2005-09-29
DE69826404D1 (de) 2004-10-28
EP0911725B1 (en) 2004-09-22
EP0911725A2 (en) 1999-04-28

Similar Documents

Publication Publication Date Title
JPH11212786A (ja) レジスタベースデータ処理のためのデータパスおよび方法
US5680641A (en) Multiple register bank system for concurrent I/O operation in a CPU datapath
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
JP3559046B2 (ja) データ処理マネージメントシステム
JP4417567B2 (ja) デュアルモードプロセッサ
US5247689A (en) Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments
US6061779A (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
EP0726532B1 (en) Array processor communication architecture with broadcast instructions
US7185224B1 (en) Processor isolation technique for integrated multi-processor systems
US5954811A (en) Digital signal processor architecture
EP1124181B1 (en) Data processing apparatus
US7383419B2 (en) Address generation unit for a processor
JP2002536738A (ja) 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム
US5896543A (en) Digital signal processor architecture
US20060015701A1 (en) Arithmetic node including general digital signal processing functions for an adaptive computing machine
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
US8024549B2 (en) Two-dimensional processor array of processing elements
JP3479385B2 (ja) 情報処理装置
JPH11154089A (ja) 中央演算装置内のレジスタにリード/ライトアクセスするための装置
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
JP2005508554A (ja) データ操作を利用したデータの計算と処理方法、及び、その装置
US20050289328A1 (en) Reconfigurable processor and semiconductor device
JP2861560B2 (ja) データ処理装置
US20070169022A1 (en) Processor having multiple instruction sources and execution modes

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040421