JP3599368B2 - 並列処理マイクロプロセッサ - Google Patents
並列処理マイクロプロセッサ Download PDFInfo
- Publication number
- JP3599368B2 JP3599368B2 JP10653494A JP10653494A JP3599368B2 JP 3599368 B2 JP3599368 B2 JP 3599368B2 JP 10653494 A JP10653494 A JP 10653494A JP 10653494 A JP10653494 A JP 10653494A JP 3599368 B2 JP3599368 B2 JP 3599368B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- circuit
- bit
- data
- circuits
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Microcomputers (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【産業上の利用分野】
この発明は並列処理マイクロプロセッサに関し、さらに詳しくは、複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサのレイアウトに関する。
【0002】
【従来の技術】
図9は、従来のマイクロプロセッサの一例を示すレイアウト図である。図9を参照して、このマイクロプロセッサは、32ビットのデータを処理する1つの機能ユニット1と、32ビットのレジスタファイル5とを備える。レジスタファイル5は、32ビットのデータを格納することができる。機能ユニット1は、レジスタファイル5に格納された32ビットのデータを処理し、その32ビットの結果データをレジスタファイル5へ書戻す。
【0003】
この機能ユニット1は、32個の処理回路100〜131から構成されている。レジスタファイル5は、32個の記憶素子500〜531から構成されている。各記憶素子は、1ビットのデータを記憶することができる。一方、各処理回路は、対応する記憶素子に格納された1ビットのデータを処理し、その1ビットの結果データをその対応する記憶素子へ書戻す。たとえば機能ユニット1の第0ビット部100は、レジスタファイル5の第0ビット部500に格納された1ビットのデータを処理し、その1ビットの結果データをレジスタファイル5の第0ビット部500に書戻す。また、機能ユニット1の第1ビット部101は、レジスタファイル5の第1ビット部501に格納された1ビットのデータを処理し、その1ビットの結果データをレジスタファイル5の第1ビット部501に書戻す。その他、第2ビット部102,502ないし第31ビット部131,531についても上記ビット部100,500および101,501と同様である。
【0004】
また、この機能ユニット1はパイプライン化され、1つの命令を処理し終える前に、その次の命令を処理し始めることができる。この機能ユニット1においては、各ビット部は3つのパイプラインステージ10,20および30に分割されている。
【0005】
たとえば、第2ビット部102は、実行ステージ10と、メモリステージ20と、書戻しステージ30とから構成されている。実行ステージ10は、レジスタファイル5の第2ビット部502からトライステートバッファ41を介して与えられた1ビットのデータを格納できるレジスタ11と、レジスタファイル5の第2ビット部502からトライステートバッファ42を介して与えられた1ビットのデータを格納できるレジスタ12と、レジスタ11および12に格納されたデータを論理演算するALU(arithmetic and logic unit)からなる論理回路13とを備える。メモリステージ20は、実行ステージ10における論理回路13からの結果データを格納できるレジスタ21と、そのレジスタ21に格納されたデータを論理演算する論理回路22とを備える。書戻しステージ30は、メモリステージ20における論理回路22からの結果データを格納できるレジスタ31を備える。なお、図9では第2ビット部102のパイプラインステージのみが図示されているが、他のビット部もこの第2ビット部102と同様にパイプライン化されている。
【0006】
図10は、図9に示されたマイクロプロセッサのパイプライン動作を示すタイムチャートである。このマイクロプロセッサにおいては、1つの命令は5つのパイプラインステージで逐次的に処理される。
【0007】
図9および図10を参照して、第1番目の命令フェッチステージIFにおいては、1つの命令がメモリ(図示せず)から命令デコーダ(図示せず)にフェッチされる。第2番目の命令デコードステージIDにおいては、そのフェッチされた命令が命令デコーダによってデコードされ、さらにそのデコードされた命令に応答してデータがレジスタファイル5からトライステートバッファ41,42を介してレジスタ11,12へ読出される。第3番目の実行ステージEXC,10においては、論理回路13によってその命令が実行され、レジスタ11,12に格納されたデータが論理演算される。その論理演算の結果データはレジスタ21に格納される。第4番目のメモリステージMEM,10においては、レジスタ21に格納されたデータが論理回路22によって論理演算される。命令によってはメモリからデータを読み出す。その論理回路22の結果データはレジスタ31に格納される。第5番目の書戻しステージWB30においては、レジスタ31に格納されたデータが結果バス45を介してレジスタファイル5へ書戻される。
【0008】
図10を参照して、たとえば命令i1は、第nサイクルにおいてフェッチされる。続いて第(n+1)サイクルにおいて、そのフェッチされた命令i1はデコードされると同時に、その次の命令i2がフェッチされる。続いて第(n+2)サイクルにおいて、命令i1が実行されると同時に、命令i2がデコードされる。さらにこれと同時に、さらにその次の命令i3がフェッチされる。続いて第(n+3)サイクルにおいて、命令i1に応答してメモリから対応するデータが読出される。これと同時に、命令i2が実行されかつ命令i3がデコードされる。さらにこれと同時に、さらにその次の命令i4がフェッチされる。
【0009】
続いて第(n+4)サイクルにおいて、命令i1の結果データがレジスタファイル5へ書戻される。これと同時に、命令i2に応答してメモリから対応するデータが読出され、命令i3が実行され、さらに命令i4がデコードされる。続いて第(n+5)サイクルにおいて、命令i2の結果データがレジスタファイル5に書戻される。これと同時に、命令i3に応答してメモリから対応するデータが読出され、かつ命令i4が実行される。続いて第(n+6)サイクルにおいて、命令i3の結果データがレジスタファイル5に書戻されると同時に、命令i4に応答してメモリから対応するデータが読出される。続いて第(n+7)サイクルにおいて、命令i4の結果データがレジスタファイル5に書戻される。
【0010】
ここで、書戻しステージWBにおいて、レジスタファイル5への結果データの書戻しは1サイクルの前半で行なわれる。また、命令デコードステージIDにおいて、レジスタファイル5からのデータの読出は1サイクルの後半で行なわれる。たとえば命令i1が実行されたときの結果データは第(n+4)サイクルの前半でレジスタファイル5へ書戻される。この結果データを命令i4が使用する場合、第(n+4)サイクルの後半でその結果データは命令i4に従ってレジスタファイル5から読出される。この場合、命令i4の実行は一時的に停止されることなく、次の第(n+5)サイクルにおいて実行される。
【0011】
しかしながら、命令i2が命令i1の実行結果を使用する場合は、命令i2がレジスタファイルからデータを読出す第(n+2)サイクルにおいては命令i1の結果データはレジスタファイル5に書込まれていない。したがって、たとえこのときレジスタファイル5からデータが読出されたとしても、その結果データが書込まれる前のデータが読出され、正しい処理が行なわれない。
【0012】
同様に命令i3が命令i1の実行結果を使用する場合は、命令i3がレジスタファイル5からデータを読出す第(n+3)サイクルにおいては、命令i1の結果データはレジスタファイル5へ書込まれていないので、たとえレジスタファイル5からデータが読出されたとしてもその結果データが書込まれる前のデータが読出され、正しい処理は行なわれない。
【0013】
このため、命令i1の実行結果がレジスタファイル5に書込まれるまで命令i2,i3の実行が停止されれば正しい処理が行なわれることになるが、命令の処理速度が低下することになる。この場合、命令i2の処理は2サイクルの間停止されなければならず、命令i3は1サイクルの間停止されなければならない。
【0014】
このような処理速度の低下を防止するため、図9のパイプライン化されたマイクロプロセッサにおいては、命令の実行結果をパイプラインの途中から引出すバイパス回路が設けられている。バイパス回路は、トライステートバッファ14,15,23,24と、供給バス43,44とから構成されている。供給バス43は、実行ステージ10に第1のソースオペランドを与える。供給バス44は、実行ステージ10に第2のソースオペランドを与える。
【0015】
次に、このバイパス回路の動作について説明する。
命令i4が命令i1の実行結果を使用する通常の場合は、レジスタファイル5に書込まれたデータが読出されればよいので、トライステートバッファ41が導通状態にされ、トライステートバッファ14および23が非導通状態にされる。これによりレジスタファイル5のデータがトライステートバッファ41を介して供給バス43に読出され、さらに実行ステージ10におけるレジスタ11に格納される。
【0016】
ところで、命令i2が命令i1の実行結果を使用する場合は、実行ステージ10にあるデータが使用されればよいので、トライステートバッファ14が導通状態にされ、トライステートバッファ41および23が非導通状態にされる。これにより論理回路13の結果データがトライステートバッファ14を介して供給バス43に読出され、さらに実行ステージ10におけるレジスタ11に格納される。このように、バイパス回路は命令i1の実行ステージ10での実行結果を命令i2の実行ステージ10へ転送することができる。
【0017】
また、命令i3が命令i1の実行結果を使用する場合は、メモリステージ20にあるデータが使用されればよいので、トライステートバッファ23が導通状態にされ、トライステートバッファ41および14が非導通状態にされる。これにより論理回路22の結果データはトライステートバッファ23を介して供給バス43へ読出され、さらに実行ステージ10におけるレジスタ11に格納される。このように、バイパス回路は命令i1のメモリステージ20にあるデータを命令i3の実行ステージ10に転送することができる。
【0018】
なお、供給バス44も供給バス43と同様に、トライステートバッファ15を介して実行ステージ10から引出されたデータを実行ステージ10におけるレジスタ12へ転送する。供給バス44はまた、トライステートバッファ24を介してメモリステージ20から引出されたデータを実行ステージ10へ転送する。
【0019】
【発明が解決しようとする課題】
以上、1つの機能ユニット1を備えたマイクロプロセッサについて詳述したが、以下に複数の機能ユニットを備えたマイクロプロセッサについて詳述する。
【0020】
複数の機能ユニットを備えたマイクロプロセッサとして、たとえばスーパスカラプロセッサ、VLIW(Very Long Instruction Word) マシンが挙げられる。複数の機能ユニットを備えたマイクロプロセッサは、複数の命令を同時に処理することができる。このような複数の機能ユニットを備えたマイクロプロセッサにおいて1つのレジスタファイルと複数の機能ユニットとを結合する配線のレイアウトとしては、次の図11および図12に示されたものが考えられる。なお、図11および図12に示されたものは、本発明の目的を明確にするためのものであって、本出願人が先行技術と認めたわけではない。
【0021】
図11は、1つのレジスタファイルと、パイプライン化されていない複数の機能ユニットとを結合する配線の考えられるレイアウトを示す。
【0022】
図11を参照して、このマイクロプロセッサは、1つのレジスタファイル5と、4つの機能ユニット1〜4とを備える。各機能ユニットは、32個の処理回路から構成されている。機能ユニット1は、第0ないし第31ビット部100〜131から構成されている。機能ユニット2は、第0ないし第31ビット部200〜231から構成されている。機能ユニット3は、第0ないし第31ビット部300〜331から構成されている。機能ユニット4は、第0ないし第31ビット部400〜431から構成されている。
【0023】
各ビット部は、レジスタファイル5の対応する1ビットのデータを処理するため、そのデータが格納されているレジスタファイル5のビット部と結合されている。レジスタファイル5の第0ビット部500は、供給バス43,44を介して4つの機能ユニット1〜4の第0ビット部100,200,300,400と接続されている。レジスタファイル5の第1ビット部501は、供給バス43,44を介して4つの機能ユニット1〜4の第1ビット部101,201,301,401と接続されている。レジスタファイル5の第31ビット部531は、供給バス43,44を介して4つの機能ユニット1〜4の第31ビット部131,231,331,431と接続されている。レジスタファイル5の第2ないし第30ビット部(図示せず)についても上記ビット部と同様である。なお、図11では2ビットの供給バス43,44のみが示され、図10の結果バス45に対応するものは図示を省略されている。この図11から明らかなように、このような配線方法をとると、配線数が膨大になるとともに、配線レイアウトが複雑になるであろう。
【0024】
図12は、パイプライン化されたマイクロプロセッサにおいて、1つのレジスタファイルと複数の機能ユニットとを接続する配線の考えられるレイアウトを示す。
【0025】
図12を参照して、このマイクロプロセッサは、1つのレジスタファイル5と、4つの機能ユニット1〜4と、レジスタファイル5および機能ユニット1〜4の間ならびに機能ユニット1〜4相互の間を接続するためのバイパス回路50a,b〜53a,b、54〜57、58a,b〜61a,b、62〜65、および66a,b〜81a,bを備える。
【0026】
レジスタファイル5の第0ビット500と機能ユニット1〜4の第0ビット100〜400とは、供給バス50a,b〜53a,bを介して接続されている。機能ユニット1〜4相互間は、引出しバス58a,b〜61a,b、転送バス54〜57、および供給バス50b〜53bを介して接続されている。
【0027】
たとえばレジスタファイル5から機能ユニット1〜4へデータが転送される場合は、トライステートバッファ62〜65が導通状態となる。これにより、レジスタファイル5の第0ビット部500のデータは、供給バス50a、トライステートバッファ62、および供給バス50bを介して機能ユニット1の第0ビット部100に転送される。また、第0ビット部500のデータは、供給バス51a、トライステートバッファ63、および供給バス51bを介して機能ユニット2の第0ビット部200へ転送される。他の機能ユニット3,4への転送も上記と同様である。
【0028】
また、たとえば機能ユニット1の実行ステージから機能ユニット2へデータが転送される場合は、トライステートバッファ67aのみが導通状態となり、これにより第0ビット部100における実行ステージのデータが引出しバス58a、トライステートバッファ67a、転送バス55および供給バス51bを介して機能ユニット2の第0ビット部200へ転送される。
【0029】
機能ユニット2の第0ビット部200における実行ステージから機能ユニット1の第0ビット部100へデータが転送される場合は、トライステートバッファ70aのみが導通状態となり、これにより機能ユニット2の第0ビット部200における実行ステージから引出しバス59a、トライステートバッファ70a、転送バス54および供給バス50bを介して機能ユニット1の第0ビット部100へ転送される。
【0030】
機能ユニット1の第0ビット部100におけるメモリステージから機能ユニット3の第0ビット部300へデータが転送される場合は、トライステートバッファ68bのみが導通状態となり、これにより機能ユニット1の第0ビット部100におけるメモリステージから引出しバス58b、トライステートバッファ68b、転送バス56および供給バス52bを介して機能ユニット3の第0ビット部300へ転送される。
【0031】
また、機能ユニット1の第0ビット部100における実行ステージから同じ第0ビット部100へデータが転送される場合は、トライステートバッファ66aのみが導通状態となり、第0ビット部100における実行ステージから引出しバス58a、トライステートバッファ66a、転送バス54および供給バス50bを介して第0ビット部100へデータが転送される。
【0032】
なお、図12ではレジスタファイル5の第1ビット部501から機能ユニット1〜4の第1ビット部101,201,301,401へデータを転送するための配線は省略されている。また、機能ユニット1〜4の第1ビット部101,201,301,401相互間でデータを転送するための配線も省略されている。さらに、レジスタファイル5の他のビット部から機能ユニット1〜4の他のビット部へデータを転送するための配線、ならびに機能ユニット1〜4の他のビット部相互間でデータを転送するための配線も省略されている。また、各ビット部へ第1のソースオペランドを供給するための配線のみが示され、第2のソースオペランドを供給するための配線は省略されている。さらに、ビット部100〜131,200〜231,300〜331,400〜431の幅は部分的に不均等に示されているが、すべての幅は均等である。
【0033】
ここで、バイパス回路に必要なシリコン面積Sは、次の式(1)で表わされる。
【0034】
S=(機能ユニット数×ソースオペランド数×ビット数)×1配線当りの占有面積 …(1)
このシリコン面積Sを1配線当りの占有面積で割った値を「配線コスト」と定義すると、このマイクロプロセッサでは、機能ユニット数が4、ソースオペランド数が2、さらにビット数が32であるので、配線コストは256となる。
【0035】
一方、1つの機能ユニットを備えたマイクロプロセッサにおいては、レジスタファイル5と機能ユニット1とを結合するため供給バス43,44が必要とされるが、これらの供給バス43,44は1つのビット部の幅よりも十分に小さいので、LSIの多層配線技術を用いれば他の回路上に形成することができ、配線コストは0となる。
【0036】
この発明は上記のような問題を解決するためになされたもので、複数の機能ユニットを備えたマイクロプロセッサのレイアウト面積を低減することを目的とする。
【0037】
この発明の他の目的は、レジスタファイルと複数の機能ユニットとを結合する配線に必要な面積を低減することである。
【0038】
この発明のさらに他の目的は、上記配線の配線コストを低減することである。この発明のさらに他の目的は、複数の機能ユニットを備えかつパイプライン化されたマイクロプロセッサのレイアウト面積を低減することである。
【0039】
【課題を解決するための手段】
本発明の並列処理マイクロプロセッサは、複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、複数のデータを格納する記憶回路と、複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、各処理回路群をなす複数の処理回路は、複数の命令に対応して設けられ、複数のデータのうち対応するものを複数の命令に応答して並列的に処理し、処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、複数の処理回路群は記憶回路の一方側に記憶回路の長手方向と同じ方向に配置され、さらに複数の処理回路は記憶回路の長手方向と同じ方向に配置され、バイパス回路の各々は、記憶回路と対応する処理回路群との間に配置されていることを特徴とする。
【0041】
また、本発明の並列処理マイクロプロセッサは、複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、複数のデータを格納する記憶回路と、複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、各処理回路群をなす複数の処理回路は、複数の命令に対応して設けられ、複数のデータのうち対応するものを複数の命令に応答して並列的に処理し、処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、複数の処理回路群は記憶回路の一方側に記憶回路の長手方向と同じ方向に配置され、さらに複数の処理回路は記憶回路の長手方向と同じ方向に配置され、バイパス回路の各々は、対応する処理回路群をなす複数の処理回路上に配置されていることを特徴とする。
【0042】
また、本発明の並列処理マイクロプロセッサは、複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、複数のデータを格納する記憶回路と、複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、各処理回路群をなす複数の処理回路は、複数の命令に対応して設けられ、複数のデータのうち対応するものを複数の命令に応答して並列的に処理し、処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、複数の処理回路群は記憶回路の長手方向と同じ方向に配置され、処理回路群の各々をなす処理回路のうち半数は記憶回路の一方側に記憶回路の長手方向と同じ方向に配置され、さらに残り半数の処理回路は記憶回路の他方側に記憶回路の長手方向と同じ方向に配置され、バイパス回路の各々は、対応する処理回路群をなす複数の処理回路のうち記憶回路の一方側に配置されたものと他方側に配置されたものとの間であって記憶回路上に配置されていることを特徴とする。
【0043】
また、本発明の並列処理マイクロプロセッサは、複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、複数のデータを格納する記憶回路と、複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、各処理回路群をなす複数の処理回路は、複数の命令に対応して設けられ、複数のデータのうち対応するものを複数の命令に応答して並列的に処理し、処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、複数の処理回路群は記憶回路の長手方向と同じ方向に配置され、処理回路群の各々をなす処理回路のうち半数は記憶回路の一方側に記憶回路の長手方向と同じ方向に配置され、さらに残り半数の処理回路は記憶回路の他方側に記憶回路の長手方向と同じ方向に配置され、バイパス回路の各々は、対応する処理回路群をなす複数の処理回路および記憶回路上に配置されていることを特徴とする。
【0044】
また、本発明の並列処理マイクロプロセッサは、複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、複数のデータを格納する記憶回路と、複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、各処理回路群をなす複数の処理回路は、複数の命令に対応して設けられ、複数のデータのうち対応するものを複数の命令に応答して並列的に処理し、処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、複数の処理回路群は記憶回路の長手方向と同じ方向に配置され、さらに複数の処理回路は記憶回路の長手方向と垂直方向に配置されていることを特徴とする。
【0045】
また、本発明の並列処理マイクロプロセッサは、第1の命令と第2の命令とを並列的に実行する並列処理マイクロプロセッサであって、データを格納する複数の記憶素子を有するレジスタファイルと、複数の記憶素子に対応して設けられ、各々が、レジスタファイルから供給されたデータを第1の命令に従って処理する第1のビットスライス回路と、レジスタファイルから供給されたデータを第2の命令に従って処理する第2のビットスライス回路とを有する複数のビットスライス回路群とを備え、第1のビットスライス回路はレジスタファイルの一方側に配置され、第2のビットスライス回路はレジスタファイルの反対側に配置され、各ビットスライス回路群の第1および第2のビットスライス回路は記憶素子のうち対応する1つに結合され、第1および第2のビットスライス回路の各々はパイプライン化され、対応するデータを逐次的に処理する複数のパイプラインステージを含み、並列処理マイクロプロセッサはさらに、複数のビットスライス回路群に対応して設けられ、各々が対応するビットスライス回路群をなす第1のビットスライス回路のパイプラインステージのうち1つで処理されたデータを対応する第2のビットスライス回路に供給する複数のバイパス回路を備え、バイパス回路の各々は、レジスタファイル上および対応するビットスライス回路群をなす第1および第2のビットスライス回路の間に配置されることを特徴とする。
【0046】
また、本発明の並列処理マイクロプロセッサは、第1の命令と第2の命令とを並列的に実行する並列処理マイクロプロセッサであって、データを格納する複数の記憶素子を有するレジスタファイルと、複数の記憶素子に対応して設けられ、各々が、レジスタファイルから供給されたデータを第1の命令に従って処理する第1のビットスライス回路と、レジスタファイルから供給されたデータを第2の命令に従って処理する第2のビットスライス回路とを有する複数のビットスライス回路群とを備え、第1のビットスライス回路はレジスタファイルの一方側に配置され、第2のビットスライス回路はレジスタファイルの反対側に配置され、各ビットスライス回路群の第1および第2のビットスライス回路は記憶素子のうち対応する1つに結合され、第1および第2のビットスライス回路の各々はパイプライン化され、対応するデータを逐次的に処理する複数のパイプラインステージを含み、並列処理マイクロプロセッサはさらに、複数のビットスライス回路群に対応して設けられ、各々が対応するビットスライス回路群をなす第1のビットスライス回路のパイプラインステージのうち1つで処理されたデータを対応する第2のビットスライス回路に供給する複数のバイパス回路を備え、バイパス回路の各々は、レジスタファイル上および対応するビットスライス回路群の第1および第2のビットスライス回路上に形成されていることを特徴とする。
【0048】
【作用】
本発明の並列処理マイクロプロセッサにおいては、記憶回路に格納されている複数のデータのうち1つのデータを複数の命令に応答して並列的に処理する複数の処理回路がまとめて配置されているため、記憶回路に格納されている複数のデータのうち1つのデータを対応する複数の処理回路へ転送するための配線が単純になる。そのため、配線の占有面積が低減され、その結果、レイアウト面積が低減される。また、配線が短くなるため、信号の遅延時間も短くなる。また、本発明の並列処理マイクロプロセッサにおいては、各処理回路がパイプライン化されているため、多数の命令がより短時間で処理されるにもかかわらず、そのためのバイパス回路の占有面積は小さく、その結果、レイアウト面積も小さい。
【0050】
また、本発明の並列処理マイクロプロセッサにおいては、複数の処理回路が記憶回路の一方側に配置されかつ記憶回路の長手方向と同じ方向に配置されているため、記憶回路と処理回路を接続するための配線の占有面積はさらに低減され、その結果、レイアウト面積はさらに低減される。
【0051】
また、本発明の並列処理マイクロプロセッサにおいては、バイパス回路が記憶回路と処理回路との間に配置されているため、バイパス回路の占有面積はさらに低減され、その結果、レイアウト面積がさらに低減される。
【0052】
また、本発明の並列処理マイクロプロセッサにおいては、バイパス回路が処理回路上に配置されているため、バイパス回路を形成するために特段の領域は必要とされない。その結果、レイアウト面積はさらに低減される。
【0053】
また、本発明の並列処理マイクロプロセッサにおいては、処理回路が記憶回路の両側に半数ずつ配置されているため、記憶回路と処理回路とを接続するための配線をより効率的に形成することができ、レイアウト面積はさらに低減される。
【0054】
また、本発明の並列処理マイクロプロセッサにおいては、バイパス回路が両側に配置された処理回路の間であって記憶回路上に配置されているため、バイパス回路を形成するために特段の領域を必要としない。その結果、レイアウト面積はさらに低減される。
【0055】
また、本発明の並列処理マイクロプロセッサにおいては、バイパス回路は処理回路および記憶回路上に配置されているため、バイパス回路を形成するための特段の領域を必要としない。その結果、レイアウト面積はさらに低減される。
【0056】
また、本発明の並列処理マイクロプロセッサにおいては、処理回路が記憶回路の長手方向とその垂直方向に配置されているため、記憶回路と処理回路とを接続するための配線の占有面積がさらに低減され、その結果、レイアウト面積がさらに低減される。
【0057】
【実施例】
以下、この発明の実施例について図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【0058】
[実施例1]
図1は、この発明の実施例1によるマイクロプロセッサを示すレイアウト図である。図1を参照して、このマイクロプロセッサは、32ビットのデータを格納するレジスタファイル5と、32個の処理回路群G0〜G31とを備える。レジスタファイル5は、32個の記憶素子500〜531から構成されている。たとえば第0ビット部500には、32ビットのデータのうち第0ビット(MSB)が格納される。第1ビット部501には、32ビットのデータのうち第1ビットが格納される。第31ビット部531には、32ビットのデータのうち第31ビット(LSB)が格納される。第2ビット部ないし第30ビット部(図示せず)についても上記ビット部500,501,531と同様である。
【0059】
32個の処理回路群G0〜G31は、32個の記憶素子500〜531に対応して設けられている。すなわち、32個の処理回路群G0〜G31は、レジスタファイル5に格納された32ビットのデータに対応して設けられている。たとえば第0ビット群G0は、レジスタファイル5の第0ビット部500に対応して設けられている。第1ビット群G1は、レジスタファイル5の第1ビット部501に対応して設けられている。第31ビット群G31は、レジスタファイル5の第31ビット部531に対応して設けられている。第2ないし第30ビット群(図示せず)についても、上記ビット群G0,G1,G31と同様である。
【0060】
また、32個の処理回路群G0〜G31はレジスタファイル5の一方側に配置され、かつレジスタファイル5の長手方向と同一方向に配置されている。各処理回路群は、4つの処理回路から構成されている。たとえば第0処理回路群(第0ビット群)G0は、4つの処理回路(第0ビット部)100,200,300,400から構成されている。第1処理回路群(第1ビット群)G1は、4つの処理回路(第1ビット部)101,201,301,401から構成されている。第31処理回路群(第31ビット群)G31は、4つの処理回路(第31ビット部)131,231,331,431から構成されている。第2ないし第30処理回路群(第2ないし第30ビット群)(図示せず)についても、上記処理回路群G0,G1,G31と同様である。
【0061】
なお、図1ではビット部100〜131,200〜231,300〜331,400〜431の幅が一部不均等に示されているが、すべての幅は互いに等しくされている。
【0062】
第0ないし第31ビット部100〜131により、1つの機能ユニットが構成されている。第0ないし第31ビット部200〜231により、他の1つの機能ユニットが構成されている。第0ないし第31ビット部300〜331により、さらに他の1つの機能ユニットが構成されている。第0ないし第31ビット部400〜431により、さらに他の1つの機能ユニットが構成されている。したがって、このマイクロプロセッサは4つの機能ユニットを備え、それにより4つの命令を並列的に処理することができる。
【0063】
すなわち、各処理回路群を構成する4つの処理回路は、4つの命令に対応して設けられ、32ビットのデータのうち対応する1ビットのデータを4つの命令に応答して並列的に処理することができる。たとえば第0ビット部100は、第1の命令に対応して設けられ、レジスタファイル5の第0ビット部500に格納されている1ビットのデータをその第1の命令に応答して処理する。第0ビット部200は、第2の命令に対応して設けられ、レジスタファイル5の第0ビット部500に格納されている1ビットのデータをその第2の命令に応答して処理する。第0ビット部300は、第3の命令に対応して設けられ、レジスタファイル5の第0ビット部500に格納されている1ビットのデータをその第3の命令に応答して処理する。第0ビット部400は、第4の命令に対応して設けられ、レジスタファイル5の第0ビット部500に格納されている1ビットのデータをその第4の命令に応答して処理する。
【0064】
第1ビット部101は第1の命令に対応して設けられ、第1ビット部501に格納されている1ビットのデータを第1の命令に応答して処理する。第1ビット部201は第2の命令に対応して設けられ、第1ビット部501に格納されている1ビットのデータを第2の命令に応答して処理する。第1ビット部301は第3の命令に対応して設けられ、第1ビット部501に格納されている1ビットのデータを第3の命令に応答して処理する。第1ビット部401は第4の命令に対応して設けられ、第1ビット部501に格納されている1ビットのデータを第4の命令に応答して処理する。
【0065】
第31ビット部131は第1の命令に対応して設けられ、第31ビット部531に格納されている1ビットのデータを第1の命令に応答して処理する。第31ビット部231は第2の命令に対応して設けられ、第31ビット部531に格納されている1ビットのデータを第2の命令に応答して処理する。第31ビット部331は第3の命令に対応して設けられ、第31ビット部531に格納されている1ビットのデータを第3の命令に応答して処理する。第31ビット部431は第4の命令に対応して設けられ、第31ビット部531に格納されている1ビットのデータを第4の命令に応答して処理する。
【0066】
第2ないし第30ビット部についても、上記第0、第1および第31ビット部と同様である。
【0067】
図1に示された第0ビット部100は、図11に示された機能ユニット1の第0ビット部100に対応する。図1に示された第0ビット部200は、図11に示された機能ユニット2の第0ビット部200に対応する。図1に示された第0ビット部300は、図11に示された機能ユニット3の第0ビット部300に対応する。図1に示された第0ビット部400は、図11に示された機能ユニット4の第0ビット部400に対応する。したがって、この第0ビット群G0は、図11に示された4つの機能ユニット1〜4がビットごとにスライスされ、そのスライスされたビット部のうち4つの第0ビット部100,200,300,400だけが集められたものである。第1ビット群G1は、そのスライスされたビット部のうち4つの第1ビット部101,201,301,401のみが集められたものである。第31ビット群G31は、そのスライスされたビット部のうち4つの第31ビット部131,231,331,431のみが集められたものである。第2ないし第30ビット群についても、上記ビット群G0,G1,G31と同様である。
【0068】
各処理回路(ビット部)は、図9に示された各処理回路と同様にパイプライン化され、3つのパイプラインステージ10,20,30から構成されている。なお、図1では第1ビット群G1の第1ビット部301だけのパイプラインステージが示されているが、他のビット部もこの第1ビット部301と同様にパイプライン化されている。
【0069】
第1ビット部301は、命令を実行する実行ステージ10と、メモリからデータを読出すメモリステージ20と、結果データをレジスタファイル5へ書戻す書戻しステージ30とから構成されている。実行ステージ10は、レジスタ11および12と、ALUからなる論理回路13と、トライステートバッファ14および15とを備える。レジスタ11は、レジスタファイル5の第1ビット部501からトライステートバッファ41および供給バス43を介して与えられた1ビットの第1ソースオペランドデータを格納する。レジスタ12は、レジスタファイル5の第1ビット部501からトライステートバッファ42および供給バス44を介して与えられた1ビットの第2ソースオペランドデータを格納する。論理回路13は、レジスタ11,12に格納されているデータを論理演算する。トライステートバッファ14は論理回路13からの結果データを供給バス43へ与える。トライステートバッファ15は、論理回路13からの結果データを供給バス44へ与える。
【0070】
メモリステージ20は、レジスタ21と、論理回路22と、トライステートバッファ23および24とを備える。レジスタ21は、実行ステージ10における論理回路13からの1ビットの結果データを格納する。論理回路22はレジスタ21に格納されているデータを演算処理する。トライステートバッファ23は、論理回路22からの結果データを供給バス43へ与える。トライステートバッファ24は、論理回路22からの結果データを供給バス44へ与える。
【0071】
書戻しステージ30はレジスタ31を備える。レジスタ31は、メモリステージ20における論理回路22からの1ビットの結果データを格納する。レジスタ31に格納されているデータは結果バス45を介してレジスタファイル5の第1ビット群501へ書戻される。
【0072】
ある命令に従った実行ステージ10からの結果データが次の命令の実行に必要なときは、たとえばトライステートバッファ14のみが導通状態となり、トライステートバッファ41および23は非導通状態となる。これにより、論理回路13からの結果データはトライステートバッファ14および供給バス43を介してレジスタ11へ供給される。
【0073】
また、ある命令に従ったメモリステージ20からの結果データがその後の命令の実行に必要なときは、たとえばトライステートバッファ23のみが導通状態となり、トライステートバッファ41および14は非導通状態となる。これにより、論理回路22からの結果データはトライステートバッファ23および供給バス43を介してレジスタ11へ供給される。すなわち、トライステートバッファ14および供給バス43は、メモリステージ20、書戻しステージ30、およびレジスタファイル5をバイパスする。トライステートバッファ15および供給バス44は、メモリステージ20、書戻しステージ30、およびレジスタファイル5をバイパスする。トライステートバッファ23および供給バス43は、書戻しステージ30、およびレジスタファイル5をバイパスする。トライステートバッファ24および供給バス44は、書戻しステージ30、およびレジスタファイル5をバイパスする。
【0074】
上記のようにこの実施例1によれば、4つの機能ユニットがビットごとにスライスされ、そのスライスされたビット部が特定ビットごとに集められているため、レジスタファイル5とビット部100〜131,200〜231,300〜331,400〜431を接続するための配線が、図11に示されたもののように複雑にならない。たとえば、4つの第0ビット部100,200,300,400はレジスタファイル5の第0ビット部500の一方側にまとめて配置されているため、その第0ビット部500と第0ビット部100,200,300,400とを接続するトライステートバッファ41,42、供給バス43,44、および結果バス45によって占有されるシリコン面積は小さい。この実施例1では、すべての配線がレジスタファイル5の長さ以内に収まっているので、配線コストはほぼ0である。そのため、このマイクロプロセッサが搭載されたLSIチップのサイズは小さいものになる。
【0075】
しかも、レジスタファイル5といずれのビット部とを結合する配線もその長さが等しくなっているため、いずれのビット部へも同じ時間でデータが転送され得る。また、特定のビット部がまとめて配置されているため、レジスタファイル5とその特定のビット部とを接続する配線の長さは短くなる。そのため、レジスタファイル5とビット部との間のデータ転送速度が速くなる。
【0076】
なお、上記ビット部100〜131,200〜231,300〜331,400〜431はパイプライン化されているが、されていなくてもよい。この場合、レジスタファイルの各ビット部は各処理回路のレジスタと直接接続される。
【0077】
[実施例2]
図2は、この発明の実施例2によるマイクロプロセッサを示すレイアウト図である。この実施例2が上記実施例1と異なるところは、各処理回路群を構成する4つの処理回路がレジスタファイル5の両側に2つずつ配置されている点である。たとえば、第0ビット群(第0処理回路群)の第0ビット部100および200はレジスタファイル5の第0ビット部500の図上左側に配置され、第0ビット部300および400はレジスタファイル5の第0ビット部500の図上右側に配置されている。第1ビット群G1の第1ビット部101および201はレジスタファイル5の第1ビット部501の図上左側に配置され、第1ビット部301および401はレジスタファイル5の第1ビット部501の図上右側に配置されている。第2ないし第31ビット群G2〜G31についても、上記ビット群G0,G1と同様である。
【0078】
一般に、機能ユニットの各ビット部に含まれるトランジスタの数は、レジスタファイル5の各ビット部に含まれるトランジスタの数よりも多い。したがって、図1の実施例1においては、各ビット群を構成する4つのビット部の幅をレジスタファイル5の各ビット部の幅に等しくすることは容易ではない。各ビット群を構成する4つのビット部の幅がレジスタファイル5の各ビット部の幅よりも広くなるのが通常である。
【0079】
この実施例2によれば、レジスタファイル5の各ビット部の幅に、対応するビット群の幅を等しくすることはできるので、より効率的にレジスタファイル5とビット部100〜131,200〜231,300〜331,400〜431を配置することができる。しかも、レジスタファイル5といずれのビット部とを結合する配線もその長さが等しくなっているため、いずれのビット部へも同じ時間でデータが転送され得る。
【0080】
[実施例3]
図3は、この発明の実施例3によるマイクロプロセッサを示すレイアウト図である。この実施例3が上記実施例1と異なるところは、各ビット群を構成する4つのビット部がレジスタファイル5の長手方向と垂直方向に配置されている点である。
【0081】
32個のビット群G0〜G31はレジスタファイル5の長手方向と同じ方向に配置されているが、各ビット群を構成する4つのビット部はレジスタファイル5の長手方向と垂直方向に配置されている。たとえば、第0ビット群G0の4つの第0ビット部100,200,300,400は、レジスタファイル5の第0ビット部500の図上左側にレジスタファイル5の長手方向と垂直方向に配置されている。第1ビット群G1の4つの第1ビット部101,201,301,401は、レジスタファイル5の第1ビット部501の図上左側にレジスタファイル5の長手方向と垂直方向に配置されている。第31ビット群G31の4つの第31ビット部131,231,331,431は、レジスタファイル5の第31ビット部531の図上左側にレジスタファイル5の長手方向と垂直方向に配置されている。第2ないし第30ビット群(図示せず)についても、上記ビット群G0,G1,G31と同様である。
【0082】
第0ビット部100と第0ビット部500とを接続するための供給バス43および44と結果バス45とは、第0ビット部200、300および400上と第0ビット部500および第0ビット群G0の間に形成されている。第0ビット部200と第0ビット部500とを接続するためのバス43ないし45は、第0ビット部300および400の上と、第0ビット部500および第0ビット群G0の間に形成されている。第0ビット部300と第0ビット部500とを接続するためのバス43ないし45は、第0ビット部400の上と、第0ビット部500および第0ビット群G0の間に形成されている。第0ビット部400と第0ビット部500とを接続するためのバス43ないし45は、第0ビット部500および第0ビット群G0の間に形成されている。第1ないし第31ビット群G1〜G31におけるバス43ないし45についても、上記第0ビット群G0におけるバス43ないし45と同様に形成されている。
【0083】
この実施例3においては、レジスタファイル5の各ビット部の長さと、機能ユニットの各ビット部の長さとが等しければ、すべてのビット部100〜131,200〜231,300〜331,400〜431を効率的に配置することができる。したがって、このようなマイクロプロセッサが搭載されたLSIチップのサイズは小さいものとなる。また、5つ以上の機能ユニットを備えたマイクロプロセッサの場合は、各ビット群が5つのビット部から構成され、その5つのビット部がレジスタファイルの長手方向と垂直方向に配置されていればよい。したがって、何個の機能ユニットを備えたマイクロプロセッサの場合でもそのレイアウトは容易である。
【0084】
さらに、レジスタファイル5の各ビット部と各ビット群とを接続するバス43ないし45の幅が、レジスタファイル5の各ビット部の長さ以内であるため、バス43ないし45による占有面積は十分に小さい。しかも、これらのバス43ないし45はビット群のビット部上に形成されているため、配線コストはほぼ0である。
【0085】
[実施例4]
図4は、この発明の実施例4によるマイクロプロセッサの一部を示すレイアウト図である。この実施例4が上記実施例1と異なるところは、レジスタファイル5と32個のビット群との間にバイパス回路6が設けられている点である。
【0086】
すなわち、このマイクロプロセッサは複数のバイパス回路を備える。各バイパス回路は、レジスタファイル5の対応するビット部と、対応するビット群との間に形成されている。なお、図4ではレジスタファイル5の32個のビット部のうち第1ビット部501のみが示されている。また、32個のビット群のうち第1ビット群G1のみが示されている。したがって、バイパス回路6はレジスタファイル5の第1ビット部501と第1ビット群G1との間に配置されている。レジスタファイル5の第0ビット部(図示せず)と第0ビット群(図示せず)との間にもバイパス回路(図示せず)が形成されている。レジスタファイルの第2ないし第31ビット部(図示せず)と第2ないし第31ビット群(図示せず)との間にもバイパス回路(図示せず)がそれぞれ形成されている。
【0087】
なお、図4では第1ビット部101の幅だけが他の幅よりも若干広く示されているが、すべての幅は互いに等しくされている。
【0088】
このバイパス回路6は、8本の転送バス600〜607と、8本の引出しバス608〜621と、8本の供給バス610〜623と、供給バス内に設けられた8つのトライステートバッファ625〜632と、転送バスと引出しバスとの交点に設けられた64個のトライステートバッファ633〜696とを備える。
【0089】
転送バス600は、第1ビット部101のレジスタ11に第1ソースオペランドを与える。転送バス601は、第1ビット部101のレジスタ12に第2ソースオペランドを与える。転送バス602は、第1ビット部201のレジスタ(図示せず)に第1ソースオペランドを与える。転送バス603は、第1ビット部201のレジスタ(図示せず)に第2ソースオペランドを与える。転送バス604は、第1ビット部301のレジスタ(図示せず)に第1ソースオペランドを与える。転送バス605は、第1ビット部301のレジスタ(図示せず)に第2ソースオペランドを与える。転送バス606は、第1ビット部401のレジスタ(図示せず)に第1ソースオペランドを与える。転送バス607は、第1ビット部401のレジスタ(図示せず)に第2ソースオペランドを与える。
【0090】
引出しバス608の一端は第1ビット部101のメモリステージ20における論理回路22の出力ノードに接続され、その他端は8つのトライステートバッファ633〜640のうちいずれかを介して8本の転送バス600〜607のうち対応するいずれかと選択的に接続される。
【0091】
図5は、図4に示されたトライステートバッファ633と、転送バス600と、引出しバス608とを具体的に示したものである。図5を参照して、トライステートバッファ633の入力ノードは引出しバス608に接続され、その出力ノードは転送バス600に接続されている。したがって、このトライステートバッファ633が活性化されると、引出しバス608の論理レベルはトライステートバッファ633を介して転送バス600へ与えられる。さらに具体的には、引出しバス608の電位がHレベルになると、転送バス600の電位もHレベルになる。引出しバス608の電位がLレベルになると、転送バス600の電位もLレベルになる。
【0092】
一方、トライステートバッファ633が不活性化されると、その出力ノードは高インピーダンス状態になる。トライステートバッファが不活性状態の間に引出しバス608の電位が変化しても転送バス600の電位は変化しない。
【0093】
図5にはトライステートバッファ633のみが示されているが、他のトライステートバッファ634〜696もこのトライステートバッファ633と同様に構成されている。
【0094】
引出しバス609の一端は第1ビット部101の実行ステージ10における論理回路13の出力ノードと接続され、その他端は8つのトライステートバッファ641〜648のうちいずれかを介していずれかの転送バスと選択的に接続される。引出しバス612の一端は第1ビット部201のメモリステージ(図示せず)における論理回路(図示せず)の出力ノードと接続され、その他端は8つのトライステートバッファ649〜656のうちいずれかを介していずれかの転送バスと選択的に接続される。
【0095】
引出しバス613の一端は第1ビット部201の実行ステージ(図示せず)における論理回路(図示せず)の出力ノードと接続され、その他端は8つのトライステートバッファ657〜664のうちいずれかを介していずれかの転送バスと選択的に接続される。引出しバス616の一端は第1ビット部301のメモリステージ(図示せず)における論理回路(図示せず)の出力ノードと接続され、その他端は8つのトライステートバッファ665〜672のうちいずれかを介していずれかの転送バスと選択的に接続される。
【0096】
引出しバス617の一端は第1ビット部301の実行ステージ(図示せず)における論理回路(図示せず)の出力ノードと接続され、その他端は8つのトライステートバッファ673〜680のうちいずれかを介していずれかの転送バスと選択的に接続される。引出しバス620の一端は第1ビット部401のメモリステージ(図示せず)における論理回路(図示せず)の出力ノードと接続され、その他端は8つのトライステートバッファ681〜688のうちいずれかを介していずれかの転送バスと選択的に接続される。
【0097】
引出しバス621の一端は第1ビット部401の実行ステージ(図示せず)における論理回路(図示せず)の出力ノードと接続され、その他端は8つのトライステートバッファ689〜696のうちいずれかを介していずれかの転送バスと選択的に接続される。
【0098】
供給バス610はレジスタファイル5の第1ビット部501と、第1ビット部101の実行ステージ10における一方のレジスタ11との間に接続されている。供給バス610は転送バス600にも接続されている。供給バス611はレジスタファイル5の第1ビット部501と、第1ビット部101の実行ステージ10における他方のレジスタ12との間に接続されている。供給バス611は転送バス601にも接続されている。
【0099】
供給バス614は、第1ビット部501と、第1ビット部201の実行ステージ(図示せず)における一方のレジスタ(図示せず)との間に接続されている。供給バス614は転送バス602にも接続されている。供給バス615は、第1ビット部501と、第1ビット部201の実行ステージ(図示せず)における他方のレジスタ(図示せず)との間に接続されている。供給バス615は転送バス603にも接続されている。
【0100】
供給バス618は、第1ビット部501と、第1ビット部301の実行ステージ(図示せず)における一方のレジスタ(図示せず)との間に接続されている。供給バス618は転送バス604にも接続されている。供給バス619は、第1ビット部501と、第1ビット部301の実行ステージ(図示せず)における他方のレジスタ(図示せず)との間に接続されている。供給バス619は転送バス605にも接続されている。
【0101】
供給バス622は、第1ビット部501と、第1ビット部401の実行ステージ(図示せず)における一方のレジスタ(図示せず)との間に接続されている。供給バス622は転送バス606にも接続されている。供給バス623は、第1ビット部501と、第1ビット部401の実行ステージ(図示せず)における他方のレジスタ(図示せず)との間に接続されている。供給バス623は転送バス607にも接続されている。
【0102】
このマイクロプロセッサにおいて、たとえば第1ビット部101の実行ステージ10の結果データを第1ビット部301へ第2ソースオペランドとして転送するためには、転送バス605を駆動する8つのトライステートバッファ638,646,654,662,670,678,686,694のうち引出しバス609と接続されているトライステートバッファ646のみが導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データは、引出しバス609、トライステートバッファ646、転送バス605、および供給バス619を介して第1ビット部301の実行ステージ(図示せず)における他方のレジスタ(図示せず)へ供給される。このとき、他の7つのトライステートバッファ638,654,662,670,678,686,694は非導通状態にされているので、対応する引出しバス608,612,613,616,617,620,621の電位が変化してもその変化によって転送バス605の電位が変化することはない。
【0103】
また、第1ビット部の実行ステージ10の結果データを同じ第1ビット部101の実行ステージ10へ第2ソースオペランドとして転送するためには、転送バス601を駆動する8つのトライステートバッファのうち引出しバス609と接続されているトライステートバッファ642だけが導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データは、引出しバス609、トライステートバッファ642、転送バス601、および引出しバス611を介して、第1ビット部101の実行ステージ10における他方のレジスタ12へ供給される。
【0104】
レジスタファイル5の第1ビット部501におけるデータを第1ビット部101の実行ステージ10における一方のレジスタ11へ転送するためには、トライステートバッファ625が導通状態にされる。これにより、第1ビット部501のデータはトライステートバッファ625および供給バス610を介してレジスタ11へ供給される。また、第1ビット部501のデータを第1ビット部101の実行ステージ10における他方のレジスタ12へ転送するためには、トライステートバッファ626が導通状態にされる。これにより、第1ビット部501のデータはトライステートバッファ626および供給バス611を介してレジスタ12へ供給される。
【0105】
その他、第1ビット部101〜401の相互間でのデータ転送動作、各第1ビット部(第1処理回路)自身内でのデータ転送動作、およびレジスタファイル5の第1ビット部501と第1ビット部101,201,301,401との間でのデータ転送動作については、上記のデータ転送動作と同様であるのでその詳細は省略する。
【0106】
この実施例4を示す図4を図12と比較すれば明らかなように、バイパス回路6(図示されていないバイパス回路を含む)の占有面積は図12よりも小さい。すなわち、図12では4本の転送バス54〜57からなる群が32個並列に設けられているのに対し、図4では8本の転送バス600〜607からなる群が32個直列に設けられている。
【0107】
したがって、この実施例4では、機能ユニット数が4で、総数オペランド数が2で、ビット数が1であるので、上記式(1)により配線コストは8である。このため、このようなマイクロプロセッサが搭載されたLSIチップのサイズは十分に小さいものとなる。また、バイパス回路の各バスの長さが短いため、短時間でデータが転送され得る。
【0108】
[実施例5]
図6は、この発明の実施例5によるマイクロプロセッサの一部を示すレイアウト図である。この実施例5が上記実施例2と異なるところは、複数のバイパス回路が設けられている点である。なお、複数のバイパス回路は複数のビット群に対応して設けられているが、図6では第1ビット群G1に対応して設けられたバイパス回路6のみが示されている。また、第1ビット部101および301の幅が他の幅よりも若干広く示されているが、すべての幅は互いに等しくされている。
【0109】
図6を参照して、このバイパス回路6は図上左側の2つの第1ビット部101,201と、図上右側の2つの第1ビット部301,401との間に配置されている。このバイパス回路6は、8本の転送バス600〜607と、8本の引出しバス608〜621と、8本の供給バス610〜623と、供給バス内に設けられた8つのトライステートバッファ625〜632と、転送バスと引出しバスとの交点に設けられた64個のトライステートバッファ633〜696とを含む。
【0110】
転送バス600〜603は、レジスタファイル5の第1ビット部501と、左側の2つの第1ビット部101,201との間に配置されている。転送バス604〜607は、レジスタファイル5の第1ビット部501と、右側の2つの第1ビット部301,401との間に配置されている。引出しバス608〜621は、転送バス600〜607と交差して配置されている。したがって、引出しバス608〜621の一部分は、レジスタファイル5の第1ビット部501の上に形成されている。レジスタファイル5に含まれるトランジスタの数は一般に、機能ユニットの各ビット部に含まれるトランジスタの数よりも少ないため、引出しバス608〜621をレジスタファイル5上に形成することは容易である。
【0111】
このマイクロプロセッサにおいて、第1ビット部101の実行ステージ10の結果データを第1ビット部301の実行ステージ10におけるレジスタ12へ第2ソースオペランドとして転送するためには、転送バス605を駆動する8つのトライステートバッファ638,646,678,670,654,662,694,686のうち引出しバス609と接続されているトライステートバッファ646のみが導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データは、引出しバス609、トライステートバッファ646、供給バス619を介して、第1ビット部301の実行ステージ10におけるレジスタ12へ供給される。
【0112】
また、第1ビット部101の実行ステージ10の結果データを同じ第1ビット部101の実行ステージ10へ転送するためには、トライステートバッファ642のみが導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データは、引出しバス609、トライステートバッファ642、転送バス601、および供給バス611を介して、第1ビット部101の実行ステージ10におけるレジスタ12へ供給される。
【0113】
また、レジスタファイル5の第1ビット部501のデータを第1ビット部101、201、301および401へ転送するためには、トライステートバッファ625〜632が導通状態にされる。これにより、レジスタファイル5の第1ビット部501のデータは、トライステートバッファ625〜632、および供給バス610〜623を介して第1ビット部101、201、301および401へそれぞれ供給される。
【0114】
この実施例5においては、レジスタファイル5の各ビット部の両側に2つずつ対応するビット部(処理回路)が配置されているため、レジスタファイル5の各ビット部の長さに対応する2つのビット部の幅を整合することができる。したがって、この実施例5のマイクロプロセッサが占有するシリコン面積は、上記実施例4よりも小さい。
【0115】
また、この実施例5においては、機能ユニット数が4で、ソースオペランド数が2で、ビット数が1であるため、配線コストは上記式(1)により8である。このように、バイパス回路の占有面積が小さいため、このマイクロプロセッサが搭載されたLSIチップのサイズは小さい。また、バイパス回路の各バスの長さは短いため、短時間でデータは転送され得る。
【0116】
[実施例6]
図7は、この発明の実施例6によるマイクロプロセッサの一部を示すレイアウト図である。この実施例6が上記実施例1と異なるところは、複数のバイパス回路が配置されている点である。この実施例6が上記実施例4と異なるところは、バイパス回路がビット群(処理回路群)の上に形成されている点である。
【0117】
この実施例6では複数のバイパス回路は複数のビット群に対応して設けられているが、図7では第1ビット群G1に対応して設けられたバイパス回路7のみが示されている。
【0118】
バイパス回路7は、8本の転送バス700〜707と、8本の供給バス780〜787と、転送バスと供給バスとの交点に設けられた64個のトライステートバッファ710〜773とを含む。
【0119】
転送バス700〜707は、4つの第1ビット部101,201,301,401を横断してかつ4つの第1ビット部101,201,301,401の上に多層配線技術により形成されている。転送バス700〜703は、実行ステージ10の上に形成されている。転送バス704〜707は、メモリステージ20の上に形成されている。
【0120】
転送バス700は第1ビット部101の実行ステージ10における論理回路13の出力ノードに接続されている。転送バス701は、第1ビット部201の実行ステージ10における論理回路13の出力ノードに接続されている。転送バス702は、第1ビット部301の実行ステージ10における論理回路13の出力ノードに接続されている。転送バス703は、第1ビット部401の実行ステージ10における論理回路13の出力ノードに接続されている。
【0121】
転送バス704は、第1ビット部401のメモリステージ20における論理回路22の出力ノードに接続されている。転送バス705は、第1ビット部201のメモリステージ20における論理回路22の出力ノードに接続されている。転送バス706は、第1ビット部301のメモリステージ20における論理回路22の出力ノードに接続されている。転送バス707は、第1ビット部401のメモリステージ20における論理回路22の出力ノードに接続されている。
【0122】
供給バス780〜787は、転送バス700〜707と交差して配置されている。供給バス780および781は、第1ビット部101の中に配置されている。供給バス782および783は、第1ビット部201の中に配置されている。供給バス784および785は、第1ビット部301の中に配置されている。供給バス786および787は、第1ビット部401の中に配置されている。
【0123】
トライステートバッファ710〜773は、図5に示されたものと同様に構成されている。たとえば、トライステートバッファ710は転送バス700と供給バス780との交点に配置されている。トライステートバッファ710の入力ノードは転送バス700に接続され、その出力ノードは供給バス780に接続されている。このトライステートバッファ710は選択的に活性化され、活性化されると転送バス700の電位を供給バス780へ与える。他のトライステートバッファ711〜773についても、このトライステートバッファ710と同様に構成されている。
【0124】
このマイクロプロセッサにおいて、第1ビット部101の実行ステージ10の結果データを第1ビット部301の実行ステージへ第2ソースオペランドとして供給するためには、供給バス785を駆動する8つのトライステートバッファ750〜757のうち転送バス700に接続されているトライステートバッファ750が導通状態にされる。また、この供給バス785を駆動するトライステートバッファ42は非導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データは、転送バス700、トライステートバッファ750、供給バス785を介して、第1ビット部301の実行ステージ10におけるレジスタ12へ供給される。
【0125】
また、第1ビット部101の実行ステージ10の結果データを同じ第1ビット部101の実行ステージ10へ供給するためには、トライステートバッファ710のみが導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データはトライステートバッファ710および供給バス780を介して第1ビット部101の実行ステージ10におけるレジスタ11へ供給される。
【0126】
また、レジスタファイル5の第1ビット部501のデータを第1ビット部101、201、301および401へ供給するためには、トライステートバッファ41および42が導通状態にされる。これにより、レジスタファイル5の第1ビット部501のデータは、たとえば第1ビット部101においては、トライステートバッファ41および供給バス780を介して実行ステージ10におけるレジスタ11へ供給されるとともに、トライステートバッファ42および供給バス781を介してレジスタ12へ供給される。他の第1ビット部201,301,401においてもこの第1ビット部101と同様に、第1ビット部501のデータはレジスタ11および12へ供給される。
【0127】
この実施例6においては、バイパス回路7が第1ビット部101,201,301および401の上に多層配線技術などによって形成されているため、このマイクロプロセッサによる占有面積は上記実施例1と等しいか、あるいは僅かに大きい程度である。また、このマイクロプロセッサによる占有面積は上記実施例4よりも小さい。この実施例6の配線コストは0か、あるいはほとんど0に近い値となる。したがって、このマイクロプロセッサが搭載されたLSIチップのサイズは十分に小さいものとなる。
【0128】
[実施例7]
図8は、この発明の実施例7によるマイクロプロセッサの一部を示すレイアウト図である。この実施例7が上記実施例2と異なるところは、バイパス回路が設けられている点である。また、この実施例7が上記実施例5と異なるところは、バイパス回路がレジスタファイルの両側に配置されたビット部の間ではなく、それらビット部の上に形成されている点である。また、この実施例7が上記実施例6と異なるところは、各ビット群を構成する4つのビット部がレジスタファイルの一方側に配置されているのではなく、レジスタファイルの両側に2つずつ配置されている点である。
【0129】
このマイクロプロセッサは、複数のビット群に対応して設けられた複数のバイパス回路を備える。図8では、第1ビット群G1に対応して設けられたバイパス回路7のみが示されている。このバイパス回路7は、8本の転送バス700〜707と、8本の供給バス780〜787と、転送バスと供給バスとの交点に設けられた64個のトライステートバッファ710〜773とを含む。
【0130】
転送バス700および701は、第1ビット部101および201の実行ステージ10の上に形成され、かつレジスタファイル5の長手方向と同じ方向に延びている。転送バス700は、第1ビット部101の実行ステージ10における論理回路13の出力ノードと接続されている。転送バス701は、第1ビット部201の実行ステージ10における論理回路13の出力ノードと接続されている。
【0131】
転送バス702および703は、第1ビット部301および401の実行ステージ10の上に形成され、かつレジスタファイル5の長手方向と同じ方向に延びている。転送バス702は、第1ビット部301の実行ステージ10における論理回路13の出力ノードに接続されている。転送バス703は、第1ビット部401の実行ステージ10における論理回路13の出力ノードと接続されている。
【0132】
転送バス704および705は、第1ビット部101および201の上に形成され、かつレジスタファイル5の長手方向と同じ方向に延びている。転送バス704は、第1ビット部101のメモリステージ20における論理回路22の出力ノードと接続されている。転送バス705は、第1ビット部201のメモリステージ20における論理回路22の出力ノードと接続されている。
【0133】
転送バス706および707は、第1ビット部301および401のメモリステージ20の上に形成され、かつレジスタファイル5の長手方向と同じ方向に延びている。転送バス706は、第1ビット部301のメモリステージ20における論理回路22の出力ノードと接続されている。転送バス707は、第1ビット部401のメモリステージ20における論理回路22の出力ノードと接続されている。
【0134】
供給バス780、781、784および785は、第1ビット部101および301とレジスタファイル5との上に形成され、かつレジスタファイル5の長手方向と垂直方向に延びている。供給バス782、783、786および787は、第1ビット部201および401とレジスタファイル5との上に形成され、かつレジスタファイル5の長手方向と垂直方向に延びている。
【0135】
トライステートバッファ710〜773は、図5に示されたものと同様に構成されている。たとえばトライステートバッファ710の入力ノードは転送バス700に接続され、その出力ノードは供給バス780に接続されている。他のトライステートバッファ711〜773もこのトライステートバッファ710と同様に構成されている。
【0136】
なお、図示はされていないが、他のビット群に対応して設けられたバイパス回路も、このバイパス回路7と同様に構成されている。
【0137】
このマイクロプロセッサにおいて、たとえば第1ビット部101の実行ステージ10の結果データを第1ビット部301の実行ステージ10におけるレジスタ11へ供給するためには、供給バス784を駆動する8つのトライステートバッファ742〜749のうち転送バス700と接続されているトライステートバッファ742が導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データは、転送バス700、トライステートバッファ742、供給バス784を介して、第1ビット部301の実行ステージ10におけるレジスタ11へ供給される。
【0138】
また、第1ビット部101の実行ステージ10の結果データを同じ第1ビット部101の実行ステージ10におけるレジスタ11へ供給するためには、トライステートバッファ710のみが導通状態にされる。これにより、第1ビット部101の実行ステージ10の結果データは、トライステートバッファ710および供給バス780を介して、第1ビット部101の実行ステージ10におけるレジスタ11へ供給される。
【0139】
また、レジスタファイル5の第1ビット部501のデータを第1ビット部101,201,301,401へそれぞれ供給するためには、トライステートバッファ41および42が導通状態にされる。たとえば第1ビット部101においては、レジスタファイル5の第1ビット部501のデータは、トライステートバッファ41および供給バス780を介してレジスタ11へ供給されるとともに、トライステートバッファ42および供給バス781を介してレジスタ12へ供給される。他の第1ビット部201,301,401においても、この第1ビット部101と同様にレジスタファイル5の第1ビット部501のデータはレジスタ11および12へそれぞれ供給される。
【0140】
この実施例7においては、各ビット群を構成する4つのビット部がレジスタファイル5の両側に2つずつ配置されているため、レジスタファイル5の各ビット部の長さに対応する2つのビット部の幅が整合され得る。したがって、レジスタファイル5および複数のビット部は、たとえば上記実施例6よりも効率的に配置され得る。
【0141】
また、各バイパス回路が、対応するビット群を構成する4つのビット部ならびにレジスタファイル5の上に形成されているため、バイパス回路に必要な面積はたとえば上記実施例5よりも小さくなる。この実施例7の配線コストは0か、あるいはほとんど0に近い値となる。したがって、この実施例7によるマイクロプロセッサが搭載されたLSIチップのサイズは十分小さいものとなる。
【0142】
【発明の効果】
請求項1に記載の並列処理マイクロプロセッサによれば、同一ビットのデータを処理する複数の処理回路がまとめて配置されているため、記憶回路と処理回路とを接続する配線に必要な面積を低減することができる。しかも、その配線の長さを十分に短くすることができるので、記憶回路と処理回路との間のデータ転送速度をさらに速くすることができる。
【0143】
請求項2に記載の並列処理マイクロプロセッサによれば、同一ビットのデータを処理する複数の処理回路がまとめて配置されているため、バイパス回路に必要な面積を低減することができる。しかも、各処理回路がパイプライン化されているため、命令の処理速度がさらに速くなる。また、バイパス回路が設けられているため、ある1つの命令が処理され終わるのを待つことなく、その次の命令あるいはさらにその次の命令を順次処理することができる。また、ある1つの命令の結果データをその命令と並列的に処理されている命令の処理に利用することもできる。
【0144】
請求項3に記載の並列処理マイクロプロセッサによれば、複数の処理回路が記憶回路の一方側に配置されているため、処理回路のレイアウトが容易で、さらにこのマイクロプロセッサのレイアウト面積を低減することができる。しかも、複数の処理回路は記憶回路の長手方向と同じ方向に配置されているため、記憶回路と処理回路とを接続するいずれの配線の長さも同じにすることができ、記憶回路と処理回路との間のデータ転送速度をすべて同じにすることができる。
【0145】
請求項4に記載の並列処理マイクロプロセッサによれば、各バイパス回路が記憶回路と対応する処理回路群との間に配置されているため、各バイパス回路に必要な面積を十分に低減することができる。しかも、バイパス回路の長さを短くすることができるので、記憶回路と処理回路との間のデータ転送速度を十分に速くすることができる。
【0146】
請求項5に記載の並列処理マイクロプロセッサによれば、各バイパス回路が対応する複数の処理回路上に配置されているため、バイパス回路のためにのみ必要な面積はほとんどなくなる。
【0147】
請求項6に記載の並列処理マイクロプロセッサによれば、記憶回路の両側にその長手方向と同一方向に処理回路が同数ずつ配置されているため、記憶回路に対してさらに効率的に処理回路を配置することができる。そのため、このマイクロプロセッサのレイアウト面積をさらに低減することができる。
【0148】
請求項7に記載の並列処理マイクロプロセッサによれば、記憶回路の両側に配置された処理回路の間に配置されかつその記憶回路の上に配置されているため、バイパス回路に必要な面積を十分に低減することができる。
【0149】
請求項8に記載の並列処理マイクロプロセッサによれば、各バイパス回路が対応する複数の処理回路および記憶回路上に配置されているため、バイパス回路に必要な面積をほとんどなくすことができる。
【0150】
請求項9に記載の並列処理マイクロプロセッサによれば、処理回路が記憶回路の長手方向と垂直方向に配置されているため、その処理回路の数が多い場合であっても効率的に処理回路を配置することができる。
【図面の簡単な説明】
【図1】この発明の実施例1による並列処理マイクロプロセッサを示すレイアウト図である。
【図2】この発明の実施例2による並列処理マイクロプロセッサを示すレイアウト図である。
【図3】この発明の実施例3による並列処理マイクロプロセッサを示すレイアウト図である。
【図4】この発明の実施例4による並列処理マイクロプロセッサの一部を示すレイアウト図である。
【図5】図4に示された並列処理マイクロプロセッサにおけるトライステートバッファを具体的に示す回路図である。
【図6】この発明の実施例5による並列処理マイクロプロセッサの一部を示すレイアウト図である。
【図7】この発明の実施例6による並列処理マイクロプロセッサの一部を示すレイアウト図である。
【図8】この発明の実施例7による並列処理マイクロプロセッサの一部を示すレイアウト図である。
【図9】1つの機能ユニットを備えた従来のマイクロプロセッサを示すレイアウト図である。
【図10】図9に示されたマイクロプロセッサのパイプライン動作を示すタイムチャートである。
【図11】この発明が解決しようとする課題を明らかにするため、複数の機能ユニットを備えた並列処理マイクロプロセッサの考えられ得るレイアウト図である。
【図12】この発明が解決しようとする課題を明らかにするため、図11のマイクロプロセッサに機能ユニット相互間のデータ転送を可能にするバイパス回路が加えられた並列処理マイクロプロセッサの考えられ得るレイアウト図である。
【符号の説明】
G0〜G31 第0〜第31ビット群、100,200,300,400 第0ビット部、101,201,301,401 第1ビット部、102,202,302,402 第2ビット部、103,203,303,403 第3ビット部、130,230,330,430 第30ビット部、131,231,331,431 第31ビット部、5 レジスタファイル、500〜531 第0〜第31ビット部、6,7 バイパス回路、600〜607,700〜707
転送バス、608,609,612,613,616,617,620,621引出しバス、43,44,610,611,614,615,618,619,622,623,780〜787 供給バス、45 結果バス、41,42,625〜696,710〜773 トライステートバッファ、10 実行ステージ、20 メモリステージ、30 書戻しステージ。
Claims (7)
- 複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、
複数のデータを格納する記憶回路と、
前記複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、
各処理回路群をなす複数の処理回路は、前記複数の命令に対応して設けられ、前記複数のデータのうち対応するものを前記複数の命令に応答して並列的に処理し、
前記処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、
前記複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して前記複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、
前記複数の処理回路群は前記記憶回路の一方側に前記記憶回路の長手方向と同じ方向に配置され、さらに前記複数の処理回路は前記記憶回路の長手方向と同じ方向に配置され、
前記バイパス回路の各々は、前記記憶回路と対応する処理回路群との間に配置されていることを特徴とする並列処理マイクロプロセッサ。 - 複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、
複数のデータを格納する記憶回路と、
前記複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、
各処理回路群をなす複数の処理回路は、前記複数の命令に対応して設けられ、前記複数のデータのうち対応するものを前記複数の命令に応答して並列的に処理し、
前記処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、
前記複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して前記複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、
前記複数の処理回路群は前記記憶回路の一方側に前記記憶回路の長手方向と同じ方向に配置され、さらに前記複数の処理回路は前記記憶回路の長手方向と同じ方向に配置され、
前記バイパス回路の各々は、対応する処理回路群をなす前記複数の処理回路上に配置されていることを特徴とする並列処理マイクロプロセッサ。 - 複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、
複数のデータを格納する記憶回路と、
前記複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、
各処理回路群をなす複数の処理回路は、前記複数の命令に対応して設けられ、前記複数のデータのうち対応するものを前記複数の命令に応答して並列的に処理し、
前記処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、
前記複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して前記複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、
前記複数の処理回路群は前記記憶回路の長手方向と同じ方向に配置され、前記処理回路群の各々をなす前記処理回路のうち半数は前記記憶回路の一方側に前記記憶回路の長手方向と同じ方向に配置され、さらに残り半数の処理回路は前記記憶回路の他方側に前記記憶回路の長手方向と同じ方向に配置され、
前記バイパス回路の各々は、対応する処理回路群をなす前記複数の処理回路のうち前記記憶回路の一方側に配置されたものと他方側に配置されたものとの間であって前記記憶回路上に配置されていることを特徴とする並列処理マイクロプロセッサ。 - 複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、
複数のデータを格納する記憶回路と、
前記複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、
各処理回路群をなす複数の処理回路は、前記複数の命令に対応して設けられ、前記複数のデータのうち対応するものを前記複数の命令に応答して並列的に処理し、
前記処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、
前記複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して前記複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、
前記複数の処理回路群は前記記憶回路の長手方向と同じ方向に配置され、前記処理回路群の各々をなす前記処理回路のうち半数は前記記憶回路の一方側に前記記憶回路の長手方向と同じ方向に配置され、さらに残り半数の処理回路は前記記憶回路の他方側に前記記憶回路の長手方向と同じ方向に配置され、
前記バイパス回路の各々は、対応する処理回路群をなす前記複数の処理回路および前記記憶回路上に配置されていることを特徴とする並列処理マイクロプロセッサ。 - 複数の処理を対応する複数の命令に応答して並列的に行なう並列処理マイクロプロセッサであって、
複数のデータを格納する記憶回路と、
前記複数のデータに対応して設けられ、各々が、複数の処理回路からなる複数の処理回路群とを備え、
各処理回路群をなす複数の処理回路は、前記複数の命令に対応して設けられ、前記複数のデータのうち対応するものを前記複数の命令に応答して並列的に処理し、
前記処理回路の各々はパイプライン化され、対応するデータを直列的に処理する複数の処理ステージを含み、
前記複数の処理回路群に対応して設けられ、各々が、対応する処理回路群をなす複数の処理回路におけるいずれかの処理ステージから処理されたデータを取出して前記複数の処理回路におけるいずれかの最初の処理ステージへ供給する複数のバイパス回路をさらに備え、
前記複数の処理回路群は前記記憶回路の長手方向と同じ方向に配置され、さらに前記複数の処理回路は前記記憶回路の長手方向と垂直方向に配置されていることを特徴とする並列処理マイクロプロセッサ。 - 第1の命令と第2の命令とを並列的に実行する並列処理マイクロプロセッサであって、
データを格納する複数の記憶素子を有するレジスタファイルと、
前記複数の記憶素子に対応して設けられ、各々が、前記レジスタファイルから供給されたデータを前記第1の命令に従って処理する第1のビットスライス回路と、前記レジスタファイルから供給されたデータを前記第2の命令に従って処理する第2のビットスライス回路とを有する複数のビットスライス回路群とを備え、
前記第1のビットスライス回路は前記レジスタファイルの一方側に配置され、前記第2のビットスライス回路は前記レジスタファイルの反対側に配置され、各ビットスライス回路群の前記第1および第2のビットスライス回路は前記記憶素子のうち対応する1つに結合され、
前記第1および第2のビットスライス回路の各々はパイプライン化され、対応するデータを逐次的に処理する複数のパイプラインステージを含み、
前記並列処理マイクロプロセッサはさらに、
前記複数のビットスライス回路群に対応して設けられ、各々が対応するビットスライス回路群をなす前記第1のビットスライス回路のパイプラインステージのうち1つで処理されたデータを対応する第2のビットスライス回路に供給する複数のバイパス回路を備え、
前記バイパス回路の各々は、前記レジスタファイル上および対応するビットスライス回路群をなす前記第1および第2のビットスライス回路の間に配置されることを特徴とする並列処理マイクロプロセッサ。 - 第1の命令と第2の命令とを並列的に実行する並列処理マイクロプロセッサであって、
データを格納する複数の記憶素子を有するレジスタファイルと、
前記複数の記憶素子に対応して設けられ、各々が、前記レジスタファイルから供給されたデータを前記第1の命令に従って処理する第1のビットスライス回路と、前記レジスタファイルから供給されたデータを前記第2の命令に従って処理する第2のビットスライス回路とを有する複数のビットスライス回路群とを備え、
前記第1のビットスライス回路は前記レジスタファイルの一方側に配置され、前記第2のビットスライス回路は前記レジスタファイルの反対側に配置され、各ビットスライス回路群の前記第1および第2のビットスライス回路は前記記憶素子のうち対応する1つに結合され、
前記第1および第2のビットスライス回路の各々はパイプライン化され、対応するデータを逐次的に処理する複数のパイプラインステージを含み、
前記並列処理マイクロプロセッサはさらに、
前記複数のビットスライス回路群に対応して設けられ、各々が対応するビットスライス回路群をなす前記第1のビットスライス回路のパイプラインステージのうち1つで処理されたデータを対応する第2のビットスライス回路に供給する複数のバイパス回路を備え、
前記バイパス回路の各々は、前記レジスタファイル上および対応するビットスライス回路群の第1および第2のビットスライス回路上に形成されていることを特徴とする並列処理マイクロプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10653494A JP3599368B2 (ja) | 1994-05-20 | 1994-05-20 | 並列処理マイクロプロセッサ |
US08/881,132 US5918065A (en) | 1994-05-20 | 1997-06-24 | Microprocessor with reduced area coupling a register file with a plurality of functional units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10653494A JP3599368B2 (ja) | 1994-05-20 | 1994-05-20 | 並列処理マイクロプロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004214085A Division JP3701296B2 (ja) | 2004-07-22 | 2004-07-22 | マイクロプロセッサおよびデータプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07319695A JPH07319695A (ja) | 1995-12-08 |
JP3599368B2 true JP3599368B2 (ja) | 2004-12-08 |
Family
ID=14436065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10653494A Expired - Fee Related JP3599368B2 (ja) | 1994-05-20 | 1994-05-20 | 並列処理マイクロプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US5918065A (ja) |
JP (1) | JP3599368B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3612186B2 (ja) * | 1997-09-19 | 2005-01-19 | 株式会社ルネサステクノロジ | データ処理装置 |
US7315935B1 (en) * | 2003-10-06 | 2008-01-01 | Advanced Micro Devices, Inc. | Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4670846A (en) * | 1984-05-01 | 1987-06-02 | Texas Instruments Incorporated | Distributed bit integrated circuit design in a non-symmetrical data processing circuit |
US5010511A (en) * | 1988-04-18 | 1991-04-23 | General Electric Company | Digit-serial linear combining apparatus useful in dividers |
US4951221A (en) * | 1988-04-18 | 1990-08-21 | General Electric Company | Cell stack for variable digit width serial architecture |
JPH06103599B2 (ja) * | 1990-11-16 | 1994-12-14 | 三菱電機株式会社 | 半導体集積回路装置 |
JP3224885B2 (ja) * | 1993-01-14 | 2001-11-05 | 三菱電機株式会社 | 集積回路装置及びその設計方法 |
US5530661A (en) * | 1994-10-05 | 1996-06-25 | Winnov | Data bit-slicing apparatus and method for computing convolutions |
-
1994
- 1994-05-20 JP JP10653494A patent/JP3599368B2/ja not_active Expired - Fee Related
-
1997
- 1997-06-24 US US08/881,132 patent/US5918065A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5918065A (en) | 1999-06-29 |
JPH07319695A (ja) | 1995-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7028170B2 (en) | Processing architecture having a compare capability | |
US5907842A (en) | Method of sorting numbers to obtain maxima/minima values with ordering | |
US6425073B2 (en) | Method and apparatus for staggering execution of an instruction | |
EP0740249B1 (en) | Data processing device with coprocessor | |
JPH09311786A (ja) | データ処理装置 | |
WO2006112045A1 (ja) | 演算処理装置 | |
JPH11249894A (ja) | 処理デバイスに命令ストリームを供給する方法及び装置 | |
JP2010532063A (ja) | 条件命令を無条件命令および選択命令へと拡張する方法およびシステム | |
JPH05233281A (ja) | 電子計算機 | |
US20090106533A1 (en) | Data processing apparatus | |
US5187783A (en) | Controller for direct memory access | |
US20020198606A1 (en) | Data processing system and control method | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
JP7084882B2 (ja) | 並べ替え動作を実行するための装置および方法 | |
KR100988964B1 (ko) | 마이크로프로세서 내에서 다수의 레지스터 유닛들로부터의 대응하는 하프워드 유닛들을 결합하기 위한 방법 및 시스템 | |
JP2620511B2 (ja) | データ・プロセッサ | |
JP3683773B2 (ja) | Simd演算を実行するために標準macユニットを利用する浮動小数点ユニット | |
US7500089B2 (en) | SIMD processor with exchange sort instruction operating or plural data elements simultaneously | |
JP2001504959A (ja) | Riscアーキテクチャを有する8ビットマイクロコントローラ | |
US20040143728A1 (en) | Data processing apparatus and method for swapping data values | |
JP3599368B2 (ja) | 並列処理マイクロプロセッサ | |
JP3412462B2 (ja) | プロセッサ | |
JP3705811B2 (ja) | 再構成可能なプログラム状態語を有するマイクロコントローラ | |
JP3701296B2 (ja) | マイクロプロセッサおよびデータプロセッサ | |
EP0334131B1 (en) | Data processor performing operation on data having length shorter than one-word length |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040423 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040525 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040722 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040803 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040831 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040914 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |