JP3000961B2 - 半導体集積回路 - Google Patents
半導体集積回路Info
- Publication number
- JP3000961B2 JP3000961B2 JP9149226A JP14922697A JP3000961B2 JP 3000961 B2 JP3000961 B2 JP 3000961B2 JP 9149226 A JP9149226 A JP 9149226A JP 14922697 A JP14922697 A JP 14922697A JP 3000961 B2 JP3000961 B2 JP 3000961B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- clock
- clock signal
- circuit
- signal
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Semiconductor Integrated Circuits (AREA)
- Information Transfer Systems (AREA)
Description
期して動作する半導体集積回路に関する。
の構成図である。
演算処理や伝達を確実に行うため、集積回路全体を1つ
のクロック信号に同期させて動作させていた。一般的に
この種の半導体集積回路は、機能毎に回路ブロックに分
けられ、ブロック間をデータ信号や制御信号で接続して
構成されている。ここでは、簡単のため3つの回路ブロ
ック、すなわち回路ブロックA10、回路ブロックB2
0、回路ブロックC30からなる半導体集積回路を想定
しているが、さらに回路ブロック数が多くても同様であ
る。それぞれのブロックには同じクロック信号1が入力
されている。回路ブロックAは外部からのデータ信号1
50や他のブロックからのデータ信号220、310を
取り込み、クロック周期毎に処理を行い、他の回路ブロ
ックへデータ信号110を送る。回路ブロックBや回路
ブロックCにおいても、同様にクロック周期毎にデータ
を取り込み、処理を行い、他のブロックにデータを送
る。どの回路ブロックにおいても一つの信号を源とする
同じ周波数のクロック信号が入力され、回路ブロックを
構成する1要素であるレジスタ回路あるいはフリップフ
ロップ回路に、クロック毎に中間データを保持し、その
信号に対して処理を行い、次のクロック信号で処理結果
をレジスタ回路やフリップフロップ回路に書き込む。図
12には制御信号が書かれていないが、制御ブロックを
1つの回路ブロックと考えれば、データ信号と同様な形
式で他の回路ブロックに対して制御信号が送られる。ま
た、各回路ブロックには、制御回路を含むことがある。
この場合は、制御信号がデータ信号と並列に送られる。
を回路全体にわたって、レジスタ回路やフリップフロッ
プ回路に同じ遅延時間を分配し、クロック信号が変化す
るタイミングを揃える、すなわち、クロックスキューを
小さくする必要がある。特開平8−30655にはクロ
ックスキューを削減するための設計手法が記載されてい
る。
・イー、インターナショナル・ソリッド・ステート・サ
ーキッツ・カンファレンス、ダイジェスト・オブ・スラ
イドサプルメント(IEEE, International Solid-Stat
e Circuits Conference,Digest of Slide-Suppleme
nt)セッションFA8.6によれば、クロック信号にわ
ざとずれを生じさせ、ある回路部分だけ、クロックの周
期を擬似的に長くとり、他の回路部分よりも長い時間の
処理を割り当てている例が記載されている。クロック信
号は1つの信号から分配されていて、クロック信号をず
らした回路部分は、クロックバッファの段数を変更する
など、設計段階で目標通りにクロック信号の大本からの
遅延時間を他の回路部分とずらしている。
ック信号を半導体集積回路全体に同じ遅延時間で分配す
ることが難しいことである。
増大する傾向にあり、クロック信号を必要とするフリッ
プフロップの数も多くなり、それぞれに対して供給する
クロックのスキューが小さくなるように設計することが
難しくなっていることや、半導体集積回路を構成する素
子の寸法が小さくなり、製造時のばらつきの影響が大き
いため、設計時にクロック信号分配の遅延を揃えていて
も、実際の回路では素子毎に遅延時間が異なり、クロッ
クスキューが生じるためである。また、わざとクロック
信号にずれを生じさせる場合は、設計の段階で、ずれの
量を決定する必要があり、クロック信号の源からフリッ
プフロップまでの遅延時間を制御することには変わりな
い。
積回路の性能を大幅に悪化させることである。
ためにはクロック周期を短くして、多くの処理を短い時
間に行わなくてはならないが、クロックスキューがある
と、信号の伝播時のエラーを避けるためにスキューの時
間の間処理が行えなくなるため、クロック周期を長くす
る必要があるからである。
とである。
ため、クロック周波数を高くすると、それに比例して消
費電力が大きくなるためである。また、回路全体でクロ
ック周波数を決めてしまうと、処理が少なくても同じ周
波数で動作させる必要がある。
が大規模化し、チップ全体に分配するクロックのスキュ
ーが大きくなっても動作を保証する回路の構成を提供す
ることである。
れているクロック信号が消費する電力や、そのクロック
信号によって動作している回路の消費電力を削減するこ
とにある。
は、クロック信号に同期して動作する半導体集積回路に
おいて、全体の回路を機能毎に複数の回路ブロックに分
割し、回路ブロックそれぞれに対して別々のクロック信
号を供給し、各回路ブロック内においてはスキューを最
小になるようにクロックバッファの大きさおよび各バッ
ファの負荷のバランスを考慮して配置され、回路ブロッ
クの任意の2つの間のデータ信号は、2つの回路ブロッ
クに供給される該クロック信号で制御されるキューを介
して伝達されることを特徴としている。
されるクロック信号が、1つのクロック信号を源とし独
立した経路によって供給されるか、複数のPLL回路に
よって生成されたものであるか、いずれでもよい。
クロック信号の周波数が互いに異なるものでもよく、か
つ、回路ブロックそれぞれに供給される互いに異なる周
波数をもったクロック信号が、複数のPLL回路によっ
て生成されたものであることもよい。そして、複数のP
LL回路の出力の周波数が、該PLL回路が供給するク
ロック信号で動作する回路ブロックのデータ処理量に応
じて制御されることも好ましい。
り込み、第2のクロック信号で、データを出力するデー
タバッファと、第2のクロック信号で動作し、データバ
ッファの出力を保持する複数のバッファであるいはFI
FOバッファで構成されるキューを含むものであること
も好ましい。
ッサにおける命令キュー、リザベーションステーショ
ン、リオーダーバッファ、アドレスキューのいずれか、
あるいはすべてにより構成されていることが好ましく、
スーパースカラープロセッサに含まれるキューの前後で
クロック周波数が異なるものでもよく、スーパースカラ
ープロセッサにいて、演算器、キャッシュメモリ等の各
構成要素における処理量に応じて、クロック周波数を変
化させるものでもよい。
続するキューは、それぞれのクロック信号を入力し、入
力側の回路ブロックのクロック信号に同期してデータを
取り込み、出力側の回路ブロックのクロック信号に同期
してデータを出力する。これによって、異なるクロック
で動作する回路ブロック間でのデータのやりとりが行え
る。したがって、回路ブロック間のクロック信号にスキ
ューや周波数差があっても動作ができる。また、回路ブ
ロックは全体の回路より小さいので、回路ブロック内に
おいてはスキューを少なくクロック信号を分配すること
ができる。また、回路ブロック間に周波数差があっても
よいので、処理量の少ない回路ブロックのクロック周波
数を低く設定することが可能であるので、消費電力を削
減できる。
図面を用いて説明する。
形態例のブロック図、図2は、図1のキューの一実施形
態例の構成図、図3は、図2の各データエントリに選択
器が備えられ他場合の構成図、図4は、クロック信号
A,Bの周波数に差異がないが、スキューが存在する場
合のキューの動作説明図、図5は、クロック信号Aの周
波数がクロック信号Bの周波数よりも高い場合のキュー
の動作説明図、図6は、クロック信号Aの周波数がクロ
ック信号Bの周波数よりも低い場合のキューの動作説明
図である。
ックに分割されている。回路ブロックA10は外部から
の信号150、回路ブロックB20からのデータ信号2
20および回路ブロックC30からのデータ信号310
を受け取り、処理した結果のデータ信号110を回路ブ
ロックBに送る。ただし、回路ブロックBからの信号は
第1のキュー50を介してデータ信号510として受け
取る。
めに、第1のキューと回路ブロックAの間にはリクエス
ト信号511、ビジー信号512がやりとりされる。ま
た、回路ブロックBと第1のキューの間には、リクエス
ト信号211とビジー信号212がやりとりされる。同
様に、回路ブロックCと回路ブロックAの聞には、第2
のキュー70が介してあって、回路ブロックCからのデ
ータ信号はキューからのデータ信号710として回路ブ
ロックAに与えられる。同様に、回路ブロックAと第2
のキューの間には、リクエスト信号711、ビジー信号
712が、回路ブロックCと第2のキューの間にはリク
エスト信号311、ビジー信号312がやりとりされ
る。
Bへデータを送り込むために、第3のキュー40が介し
てあり、回路ブロックAのデータ出力110は、第3の
キューのデータ出力410として回路ブロックBに与え
られる。回路ブロックAと第3のキューの間にはリクエ
スト信号111、ビジー信号112が、回路ブロックB
と第3のキューの間にはリクエスト信号411、ビジー
信号412がやりとりされる。回路ブロックBや、回路
ブロックCにおいても同様に信号のやりとりが行われて
いて、間に第4のキュー60が介してある。
御回路は密接な回路が含まれるブロックと同じ回路ブロ
ックに入れられ、他の回路ブロックに送られるデータに
密接な制御信号は、そのデータ信号と並列にキューを介
して他の回路ブロックに送られる。
して動作している。また、回路ブロックBはクロック信
号B2に同期し、回路ブロックCはクロック信号C3に
同期して動作している。各回路ブロック内に限れば、全
体の回路に比べて回路規模が小さいため、クロックスキ
ューを小さくすることができる。各クロック間には、ス
キューがある同じ周波数の信号を与えてもよいし、全く
異なる周波数のクロックを与えてもよい。回路ブロック
Aと回路ブロックBの間にある第1のキュー50と第2
のキュー70には、いずれもクロックAとクロックBの
2つのクロック信号が入力され、第1のキュー50では
クロック信号Aでデータを取り込み、クロック信号Bで
データを出力する。第2のキュー70ではクロック信号
Bでデータを取り込み、クロック信号Aでデータを出力
する。このようなキューを介すことによって、クロック
の異なる回路ブロック間でのデータのやりとりを行う。
10、第1のキュー50、第2のキュー70および第3
のキュー40に入力されている。このクロックAは最終
的に、これらの4つの回路内にあるフリップフロップ回
路やラッチ回路に供給される。これらすべてのフリップ
フロップ回路やラッチ回路に対してクロックのスキュー
を最小にしなければならない。そのためには、大本のク
ロック信号に数個の第1段目のクロックバッファを接続
し、第1段目のそれぞれのクロックバッファには等負荷
になるように、同数の第2段目のクロックバッファとそ
れらを接続する配線を接続する。このときに、配線も負
荷になるので、第1段目のそれぞれのクロックバッファ
の出力の接続される配線長さはほぼ同じになるようにす
る。それぞれの第2段目のクロックバッファには、同様
に負荷が等しくなるように、複数の第3段目のクロック
バッファと同じ長さの配線を接続する。これを繰返し、
すべてのフリップフロップ回路やラッチ回路に同じ段数
のクロックバッファでクロック信号が供給できるまで、
バッファの数を増やしていく。以上のようなクロックバ
ッファ回路を用いることによってクロックスキューを最
小にすることが可能である。クロックB2、クロックC
3についても同様である。
ないし第4のキュー50,70,40,60の構成例を
示すブロック図である。キューは、入力されたデータを
保持するデータバッファ80、複数のデータを保持する
データFIFO81およびFIFOをコントロールする
エントリコントローラ82で構成されている。ここでは
データFIFOは、データを保持する4つのデータエン
トリ83ないし86で構成されている。データが、デー
タ入力800からデータバッファ80に入力され保持さ
れる。このとき、リクエスト信号801とビジー信号8
02を使ってハンドシェークされる。データバッファに
データが保持されると、空いているデータエントリにデ
ータが移される。
A7とクロック信号B8が入力されていて、データの取
り込みは第1のクロック7に、出力は第2のクロック8
に同期して行われる。データエントリ83〜86はエン
トリコントローラ82によって制御され、どのデータエ
ントリに保持するかが決められる。また、エントリコン
トローラはデータエントリに空きがあるか否かを判断
し、データバッファに伝える。ここでも、リクエスト信
号811とビジー信号812によってハンドシェークさ
れる。データエントリにデータが保持されると、データ
出力820からデータが出力される。この出力が次の回
路ブロックに移されると、エントリを解放する。FIF
Oの底に当たるエントリのデータが解放されると、他の
エントリのデータが底に詰める形で移動する。エントリ
の解放の制御もエントリコントローラが行い、出力側に
接続される回路ブロックと、リクエスト信号821とビ
ジー信号822でハンドシェークされる。データエント
リやエントリコントローラは第2のクロック8に同期し
て動作する。
けるデータ信号110や220等に相当する信号で、デ
ータ出力信号820は図1におけるデータ信号410や
510等に相当する信号である。
データエントリから出力できるように変更したバッファ
81’に替え、各エントリからの出力を選択器87で選
択出力するようにしたものである。このような変更を加
えることによって、データバッファ80からデータエン
トリに登録される順番を変えてデータを出力側の回路ブ
ロックに送り出すことができる。図3に示すようなキュ
ーを図1のキューとして使用することも可能である。
作を説明する。ここでは説明を簡単にするために、デー
タエントリの数を図1〜3に示した4つではなく、2つ
にしている。エントリの数が異なっても一般性を失わな
い。
の差はないが、スキューが存在する場合の動作例であ
る。データ入力800にはクロックA1からA3の間
に、データがデータA、データB、データCの順でクロ
ック毎に入力されている。データが供給される間はリク
エスト信号801はhigh状態になる。このデータが
クロック信号Aに同期してデータバッファ80に保持さ
れる。データバッファに保持されたデータはクロック信
号Bに同期して、データ信号810に出力される。有効
なデータが保持されている間はリクエスト信号811は
highになる。リクエスト信号を受けてエントリコン
トローラ82はデータFIFO81のデータエントリに
データを詰める。
最初のクロックB1ではデータAを1番目のデータエン
トリAに、クロックB2ではデータBを2番目のデータ
エントリBに詰める。クロックB1、B2の間は出力が
接続する回路ブロックがビジー信号822を出している
ので、データエントリは解放されない。データエントリ
は2つしかないので、クロックB3ではデータCがデー
タエントリに入れられない。したがって、エントリコン
トローラはビジー信号812をhighにする。これ
が、データバッファを通じてビジー信号802として入
力側の回路ブロックに伝達される。
タCを入力する。クロックB3ではビジー信号822が
lowに変わるので、データエントリAのデータが出力
され、解放される。続くクロックB4ではデータCがデ
ータエントリBに、データBがデータエントリAに移さ
れる。ビジー信号812や802はlowに変化し、次
のデータDがデータバッファに取り込まれる。さらに、
次のクロックでデータエントリBに登録される。クロッ
クA6からA8では新たなデータが入力されず、リクエ
スト信号801がlowになっている。データバッファ
にも新たなデータが登録されず、クロックB6からB8
の間はリクエスト信号811もlowになっているが、
出力側のビジー信号822がクロックB6、B7の間、
highになっているので、データエントリが解放され
ず、データエントリAにデータDが登録されたままであ
る。
ので、データDが出力され、データエントリAが解放さ
れる。クロックA9からA11にかけてはデータE、
F、Gが順に入力され、同様な手順によって、データバ
ッファを介してデータエントリに登録される。途中、ク
ロックB10において出力側のビジー信号がhighに
なっているので、データFの出力に2クロックかかり、
データGがデータエントリBに登録されている。
ク信号Bより高い場合の動作例である。クロックA1か
らA3にかけて、データA、データB、データCが順に
クロック毎に入力されている。クロックB1でデータA
がデータバッファに取り込まれ、リクエスト信号811
がhighになり、データエントリAに登録される。ク
ロックB2でデータBがデータバッファに取り込まれ、
データエントリBに登録される。クロックB1、B2で
は出力側のビジー信号822がhighになっているの
で、データエントリは解放されない。次のクロックA3
では、その間にクロック信号Bの立ち上がりがないの
で、ビジー信号802をクロックA4でhighにし
て、同じデータCを入力する。
登録されるが、データエントリに空きがないのでビジー
信号812がhighになり、このときにクロック信号
Aが立ち上がったクロックA5ではビジー信号802が
highになるので、クロックA5でもデータCを入力
する。クロックB3でデータAがデータエントリから解
放され、クロックB4ではデータバッファのデータCが
データエントリBに登録され、デ一タBがデータエント
リAに移動する。クロックA6ではその間にクロック信
号Bの立ち上がりがないので、データバッファが登録さ
れず、クロックA7でビジー信号802がhighにな
り、データDを繰り返し入力する。クロックB5でデー
タDがデータバッファに取り込まれ、データエントリB
に登録される。データCはデータエントリAに移動す
る。
いのでリクエスト信号801はlowとなる。それで、
クロックB6ではデータバッファに取り込まれるデータ
がなく、リクエスト信号811もlowになる。クロッ
クB6、B7では出力側のビジー信号822がhigh
になっているので、データエントリAのデータDが解放
されず残っている。クロックA9ではその間にクロック
信号Bの立ち上がりがないので、データバッファに取り
込まれず、クロックA10でビジー信号802をhig
hにして同じデータEを入力する。データEはクロック
B7でデータバッファに取り込まれ、データエントリB
に登録される。クロックA11でデータFが入力され、
クロックB8でデータバッファに取り込まれるが、デー
タエントリに空きがないため、ビジー信号812がhi
ghになり、クロックA12では入力側のビジー信号8
02もhighになっている。
信号Bよりも低い場合の動作例である。クロックA1か
らクロックA6まで、データAからFが順に入力され、
リクエスト信号801がhighになっている。クロッ
クB1では、立ち上がり時にリクエスト信号801がl
owであるので、データバッファにデータが取り込まれ
ていない。クロックB2では、データAがデータバッフ
ァに取り込まれ、データエントリAに登録される。クロ
ックB1、B2では出力側のビジー信号822がhig
hであるので、エントリAのデータAが解放されない。
クロックB3では、データバッファにデータBが取り込
まれ、データエントリBに登録される。クロックB3の
間にはクロック信号Aの立ち上がりがないので、クロッ
クB4では同じデータが入力されている。それで、新し
いデータがデータバッファに取り込まれず、リクエスト
信号811はlowになる。その間、データエントリA
のデータBが出力され、解放される。
タCが取り込まれ、データエントリAに登録され、すぐ
さま出力され解放される。続いて、クロックB6ではデ
ータバッファにデータDが取り込まれ、データエントリ
Aに登録される。出力側のビジー信号822がクロック
B6からB9の問highになっているので、データは
解放されない。クロックB6の間にはクロック信号Aの
立ち上がりがないので、クロックB7ではデータバッフ
ァに新たなデータが取り込まれず、リクエスト信号81
1はlowになる。クロックB8ではデータEがデータ
バッファに取り込まれ、データエントリBに登録され
る。クロックB9では、データバッファにデータFが登
録されるが、データエントリに空きがないので、ビジー
信号812がhighになる。クロックB10では、新
たなデータが読み込まれないのでリクエスト信号811
がlowになるが、エントリに空きがなく停滞している
データFがあるため、ビジー状態が続く。このビジー状
態が、入力側のビジー信号802に伝えられる。
で続けてデータFが入力される。クロックB10では出
力側のビジー信号822がlowになるため、データエ
ントリAのデータDが出力され解放される。クロックB
11ではデータFがデータエントリBに登録され、デー
タEがデータエントリAに移動する。データEは出力さ
れ解放される。クロックB12では、データバッファに
データGが取り込まれ、データエントリBに登録され
る。データFはデータエントリAに移動し、出力され解
放される。
は、データバッファにおいて、クロック信号Aで完全に
データが取り込まれる前に、クロックバッファBによっ
てデータが出力されないように、クロック信号Bの立ち
上がりに対するセットアップ時間とホールド時間の間に
データが取り込まれた場合は、データバッファはリクエ
スト信号811をlowにする。クロック周波数が一致
しているときは、クロック信号Bのセットアップ時間と
ホールド時間の間にデータが取り込まれないように、わ
ざとクロック信号Aとクロック信号Bにタイミングのず
れを生じるようにクロック信号を供給する。これは。ス
キューをなくす設計よりも簡単である。
第2ないし第6の実施形態例を説明する。
のクロック信号4から各回路ブロックへ同じ周波数のク
ロック信号を供給する場合のブロック図である。
ら分配され、クロックバッファ95によって、駆動力を
増強させてそれぞれの回路ブロックに供給している。回
路ブロック内部ではクロックスキューが伴わないように
クロックを分配する。それぞれの回路ブロックは、フリ
ップフロップの数も異なり、クロック信号の入力負荷も
異なる。それで、回路ブロック毎にクロックバッファの
段数を変えて、負荷に見合うような駆動力に増強してい
る。クロックバッファの段数が異なるので、回路ブロッ
ク間ではクロックスキューが発生するが、キューを介し
てデータのやりとりをするので、スキューの影響はなく
なる。
路ブロックに備えられたPLL96において、元のクロ
ック信号4から分配されたクロック信号を基準信号とし
て、それぞれクロック信号を発生させ、回路ブロックに
供給する場合のブロック図である。
ように、クロック信号を分配する。PLLは入力と同じ
周波数の信号をクロック信号として出力するものでも、
入力信号を逓倍や分周して出力するものでもよい。それ
ぞれのPLLの出力信号の周波数を等しくしても、PL
Lの出力には位相のずれがあり、またジッタがあるの
で、それぞれの回路ブロックに入力されるクロック信号
の立ち上がりタイミングは異なる。しかし、キューを介
してデータをやりとりするため、問題なくデータのやり
とりが行われる。それぞれのPLLに異なる逓倍率を設
定して、各回路ブロックが異なる周波数で動作させても
よい。
路ブロックに備えられたPLL96において、入力する
基準のクロック信号4,5,6も別々に他の回路から供
給された場合のブロック図である。
ックのクロック周波数は任意に設定することができる。
PLLは基準周波数と同じ周波数を出力するものでも、
逓倍して出力するものでもよい。回路ブロックのうち、
処理量の多いものを高い周波数でスループットを上げ、
処理量の少ないものを低い周波数にしてスループットを
下げることができる。
回路ブロックに備えられたPLL97において、入力す
る基準のクロック信号4,5,6も別々に他の回路から
供給され、かつ各回路からそれぞれ制御信号100,2
00,300がフィードバックされる場合のブロック図
である。
が多いか少ないかを示す信号で、処理量が多くなったら
PLLの出力するクロック周波数を高く制御し、スルー
プットを高くする。逆に、処理量が少ないときはPLL
の出力するクロック周波数を低く制御し、スループット
を低くし、回路ブロックの消費する電力を削減する。P
LLの周波数の制御は、逓倍率を変化させてもいいし、
PLL内のVCOの入力電圧信号にオフセットを与え
て、周波数を変化させてもよい。
発明の半導体装置をスーパースカラープロセッサに適用
した場合のブロック図である。
の待ち合わせをするために、命令バッファや、リザベー
ションステーション、リオーダーバッファ、アドレスバ
ッファなど、FIFO構成をする構成要素が多くある。
そこで、これらのFIFOを本発明の図2や図3に示す
ようなキューの構成にして、その前後でクロックの系統
を変える。図2では、データエントリがFIFO構成に
なっているので、入力された順に出力されているが、図
3のような構成にすれば、出力順を変更させることがで
きるので、命令の処理順序を替えることができる。
ったスーパースカラープロセッサである。第1の回路ブ
ロック90には、プログラムカウンタレジスタ900、
インクリメンタ901、命令キャッシュ902、分岐予
測ユニット903の、プログラムカウンタと命令発行部
分が、第2の回路ブロック91には、第1の命令デコー
ダ910、第2の命令デコーダ911、第1のレジスタ
ファイル912、第2のレジスタファイル913が含ま
れる。第3の回路ブロック92は、第1の演算器920
と第2の演算器921が含まれ、第4の回路ブロック9
3は第3の演算器930と第4の演算器931、第5の
演算器932が含まれる。第5の回路ブロック94はデ
ータキャッシュ940で構成される。第1と第2の回路
ブロック間は、命令キュー950で接続される。条件分
岐などの情報は第1のキュー963を介して返される。
第2と第3の回路ブロック間、第2と第4の回路ブロッ
ク間はリザベーションステーション953ないし959
と、リオーダーバッファ951と952によってデータ
のやりとりを行う。第3の回路ブロックと第5の回路ブ
ロックは、アドレスデコーダ960を介してデータキャ
ッシュにアドレスやデータを渡し、読み出したデータを
第2のキュー961を介して受け取る。第4の回路ブロ
ックは第5の回路ブロックから、第3のキュー962を
介してデータを受け取る。それぞれのキュー等の回路
は、入力側と出力側の双方のクロック信号を供給する。
別々のクロック信号を供給してよい。別々のクロックと
は、同じ周波数でスキューが存在するクロック信号でも
よいし、各ブロックの処理量に応じて、周波数の異なる
クロック信号でもよい。
に、第2のアドレスキューを設けて2つの回路ブロック
に分割してもよい。第2の回路ブロックは、第1の命令
デコーダと第1のレジスタファイルを含むブロックと、
第2の命令デコーダと第2のレジスタファイルを含むブ
ロックに分割してもよい。第3の回路ブロックや第4の
回路ブロックは、演算器毎に別の回路ブロックに分割し
てもよい。図11には記載されていないが、外部とのデ
ータのやりとりを行うための制御ブロックも1つの回路
ブロックを構成し、第1の回路ブロックとの間のキュー
を介して命令キャッシュに命令コードを書き込み、第5
の回路ブロックとの間のキューを介して、データキャッ
シュとのデータをやりとりする。第1のレジスタファイ
ルと第2のレジスタファイルの双方から、データキャッ
シュにデータをやりとりするために、第2の回路ブロッ
クの第1のレジスタファイルから、第4の回路ブロック
につながるリザベーションステーション959を設け
て、このリザベーションステーションの出力と、リザベ
ーションステーション958の出力を選んで、アドレス
キュー960に入力している。
路の回路ブロックへの分割、キューの配置、およびその
構造を限定すること等により、高い周波数のクロック信
号で半導体集積回路を動作させることができ、かつ、高
い周波数で動作する半導体集積回路においても消費電力
を削減することができる半導体集積回路を提供できる効
果がある。
ック図である。
場合の構成図である。
スキューが存在する場合のキューの動作説明図である。
波数よりも高い場合のキューの動作説明図である。
波数よりも低い場合のキューの動作説明図である。
号4から各回路ブロックへ同じ周波数のクロック信号を
供給する場合のブロック図である。
備えられたPLL96において、元のクロック信号4か
ら分配されたクロック信号を基準信号として、それぞれ
クロック信号を発生させ、回路ブロックに供給する場合
のブロック図である。
備えられたPLL96において、入力する基準のクロッ
ク信号4,5,6も別々に他の回路から供給された場合
のブロック図である。
に備えられたPLL97において、入力する基準のクロ
ック信号4,5,6も別々に他の回路から供給され、か
つ各回路からそれぞれ制御信号100,200,300
がフィードバックされる場合のブロック図である。
装置をスーパースカラープロセッサに適用した場合のブ
ロック図である。
4,第2の) 80 データバッファ 81,81’ データFIFO 82,82’ エントリコントローラ 83〜86 データエントリ 87 選択器 90〜94 回路ブロック 95 クロックバッファ 96,97 PLL 100,200,300 PLL制御信号 110,210,220,310,410,510,6
10,710 データ信号 111,211,221,311,411,511,6
11,711 リクエスト信号 112,212,222,312,412,512,6
12,712 ビジー信号 150,350,360,800,810,820
データ信号 801,811,821 リクエスト信号 802,812,822 ビジー信号 900 プログラムカウンタレジスタ 901 インクリメンタ 902 命令キャッシュ 903 分岐予測ユニット 910,911 命令デコーダ 912,913 レジスタファイル 920,921,930〜932 演算器ユニット 940 データキャッシュ 950 命令キュー 951,952 リオーダーバッファ 953〜959 リザベーションステーション 960 アドレスキュー 961〜963 キュー
Claims (11)
- 【請求項1】 クロック信号に同期して動作する半導体
集積回路において、全体の回路を機能毎に複数の回路ブ
ロックに分割し、前記回路ブロックそれぞれに対して別
々のクロック信号を供給し、各回路ブロック内において
はスキューを最小になるようにクロックバッファの大き
さおよび各バッファの負荷のバランスを考慮して配置さ
れ、前記回路ブロックの任意の2つの間のデータ信号
は、前記2つの回路ブロックに供給される該クロック信
号で制御されるキューを介して伝達されることを特徴と
する半導体集積回路。 - 【請求項2】 前記回路ブロックそれぞれに対して供給
される前記クロック信号が、1つのクロック信号を源と
し、独立した経路によって供給される、請求項1記載の
半導体集積回路。 - 【請求項3】 前記回路ブロックそれぞれに対して供給
される前記クロック信号が、複数のPLL回路によって
生成されたものである、請求項1記載の半導体集積回
路。 - 【請求項4】 前記回路ブロックそれぞれに供給される
クロック信号の周波数が互いに異なる、請求項1記載の
半導体集積回路。 - 【請求項5】 前記回路ブロックそれぞれに供給される
互いに異なる周波数をもったクロック信号が、複数のP
LL回路によって生成されたものである請求項4記載の
半導体集積回路。 - 【請求項6】 前記複数のPLL回路の出力の周波数
が、該PLL回路が供給するクロック信号で動作する回
路ブロックのデータ処理量に応じて制御される、請求項
5記載の半導体集積回路。 - 【請求項7】 第1のクロック信号でデータを取り込
み、第2のクロック信号で、データを出力するデータバ
ッファと、前記第2のクロック信号で動作し、前記デー
タバッファの出力を保持する複数のバッファで構成され
るキューを含む、請求項1記載の半導体集積回路。 - 【請求項8】 第1のクロック信号でデータを取り込
み、第2のクロック信号で、データを出力するデータバ
ッファと、前記第2のクロック信号で動作し、前記デー
タバッファの出力を保持するFIFOバッファで構成さ
れるキューを含む、請求項1記載の半導体集積回路。 - 【請求項9】 前記キューが、スーパースカラープロセ
ッサにおける命令キュー、リザベーションステーショ
ン、リオーダーバッファ、アドレスキューのいずれか、
あるいはすべてにより構成されている、請求項7または
請求項8に記載の半導体集積回路。 - 【請求項10】 前記スーパースカラープロセッサに含
まれるキューの前後で、クロック周波数が異なる請求項
9記載の半導体集積回路。 - 【請求項11】 前記スーパースカラープロセッサにい
て、演算器、キャッシュメモリ等の各構成要素における
処理量に応じて、クロック周波数を変化させる請求項1
0記載の半導体集積回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9149226A JP3000961B2 (ja) | 1997-06-06 | 1997-06-06 | 半導体集積回路 |
KR1019980020919A KR100312147B1 (ko) | 1997-06-06 | 1998-06-05 | 반도체집적회로 |
US09/093,382 US6240524B1 (en) | 1997-06-06 | 1998-06-08 | Semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9149226A JP3000961B2 (ja) | 1997-06-06 | 1997-06-06 | 半導体集積回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10340130A JPH10340130A (ja) | 1998-12-22 |
JP3000961B2 true JP3000961B2 (ja) | 2000-01-17 |
Family
ID=15470630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9149226A Expired - Fee Related JP3000961B2 (ja) | 1997-06-06 | 1997-06-06 | 半導体集積回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6240524B1 (ja) |
JP (1) | JP3000961B2 (ja) |
KR (1) | KR100312147B1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2389689B (en) * | 2001-02-14 | 2005-06-08 | Clearspeed Technology Ltd | Clock distribution system |
US7194053B2 (en) * | 2001-12-18 | 2007-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for matching data and clock signal delays to improve setup and hold times |
JP3734032B2 (ja) * | 2002-07-25 | 2006-01-11 | 日本電気株式会社 | 情報処理装置及びそのメモリ制御方法 |
US20040186960A1 (en) * | 2003-03-20 | 2004-09-23 | Sun Microsystems, Inc. | Computer processor data prefetch unit |
JP3974065B2 (ja) * | 2003-03-27 | 2007-09-12 | 株式会社東芝 | プロセッサ |
US20040199672A1 (en) * | 2003-04-04 | 2004-10-07 | Hsilin Huang | System and method for high speed handshaking |
US20050232218A1 (en) * | 2004-04-19 | 2005-10-20 | Broadcom Corporation | Low-power operation of systems requiring low-latency and high-throughput |
US7550296B2 (en) * | 2004-12-01 | 2009-06-23 | Bayer Schering Pharma Ag | Generation of replication competent viruses for therapeutic use |
US20080046684A1 (en) * | 2006-08-17 | 2008-02-21 | International Business Machines Corporation | Multithreaded multicore uniprocessor and a heterogeneous multiprocessor incorporating the same |
GB2450564B (en) * | 2007-06-29 | 2011-03-02 | Imagination Tech Ltd | Clock frequency adjustment for semi-conductor devices |
JP2013196380A (ja) * | 2012-03-19 | 2013-09-30 | Ricoh Co Ltd | クロック生成装置、及び情報処理装置 |
KR20140078912A (ko) * | 2012-12-18 | 2014-06-26 | 삼성전자주식회사 | 메모리 시스템 및 이를 포함하는 시스템 온 칩 |
JP7419944B2 (ja) | 2020-04-13 | 2024-01-23 | 富士通株式会社 | 半導体装置及び同期化方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2719226B2 (ja) | 1990-10-01 | 1998-02-25 | 株式会社日立製作所 | 情報処理システム |
JPH0553681A (ja) | 1991-08-23 | 1993-03-05 | Matsushita Electric Ind Co Ltd | クロツク信号切り換え装置 |
JPH05113834A (ja) | 1991-10-24 | 1993-05-07 | Fujitsu Ltd | デイジタル信号処理システム |
US5256912A (en) | 1991-12-19 | 1993-10-26 | Sun Microsystems, Inc. | Synchronizer apparatus for system having at least two clock domains |
JP2791243B2 (ja) * | 1992-03-13 | 1998-08-27 | 株式会社東芝 | 階層間同期化システムおよびこれを用いた大規模集積回路 |
US5396460A (en) * | 1992-05-15 | 1995-03-07 | Nec Corporation | FIFO memory in which number of bits subject to each data read/write operation is changeable |
US5457644A (en) * | 1993-08-20 | 1995-10-10 | Actel Corporation | Field programmable digital signal processing array integrated circuit |
US5600824A (en) * | 1994-02-04 | 1997-02-04 | Hewlett-Packard Company | Clock generating means for generating bus clock and chip clock synchronously having frequency ratio of N-1/N responsive to synchronization signal for inhibiting data transfer |
US5564022A (en) * | 1994-02-09 | 1996-10-08 | Intel Corporation | Method and apparatus for automatically inserting clock buffers into a logic block to reduce clock skew |
JPH07262237A (ja) * | 1994-03-18 | 1995-10-13 | Hitachi Ltd | クロックスキュー制御方式 |
US5548620A (en) | 1994-04-20 | 1996-08-20 | Sun Microsystems, Inc. | Zero latency synchronized method and apparatus for system having at least two clock domains |
US5774371A (en) * | 1994-08-03 | 1998-06-30 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit and layout designing method for the same |
JP3424777B2 (ja) | 1995-02-17 | 2003-07-07 | 富士フイルムマイクロデバイス株式会社 | 信号処理装置 |
US5790841A (en) * | 1996-04-15 | 1998-08-04 | Advanced Micro Devices, Inc. | Method for placement of clock buffers in a clock distribution system |
JP3528413B2 (ja) * | 1996-04-19 | 2004-05-17 | ソニー株式会社 | 関数クロック発生回路並びにそれを用いたイネーブル機能付きd型フリップフロップおよび記憶回路 |
US5742798A (en) * | 1996-08-09 | 1998-04-21 | International Business Machines Corporation | Compensation of chip to chip clock skew |
US5764965A (en) * | 1996-09-23 | 1998-06-09 | Silicon Graphics, Inc. | Synchronization infrastructure for use in a computer system |
US5774003A (en) * | 1996-10-09 | 1998-06-30 | National Semiconductor Corporation | Flip-flop cell having clock skew protection |
JPH10134591A (ja) * | 1996-10-28 | 1998-05-22 | Toshiba Corp | ダィナミックレジスタを含む半導体集積回路 |
JP3840731B2 (ja) * | 1997-03-21 | 2006-11-01 | 富士通株式会社 | 半導体集積回路 |
US5982827A (en) * | 1997-05-14 | 1999-11-09 | Hewlett-Packard Co. | Means for virtual deskewing of high/intermediate/low DUT data |
JP3690899B2 (ja) * | 1997-05-30 | 2005-08-31 | 富士通株式会社 | クロック発生回路及び半導体装置 |
US5828870A (en) * | 1997-06-30 | 1998-10-27 | Adaptec, Inc. | Method and apparatus for controlling clock skew in an integrated circuit |
-
1997
- 1997-06-06 JP JP9149226A patent/JP3000961B2/ja not_active Expired - Fee Related
-
1998
- 1998-06-05 KR KR1019980020919A patent/KR100312147B1/ko not_active IP Right Cessation
- 1998-06-08 US US09/093,382 patent/US6240524B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR19990006707A (ko) | 1999-01-25 |
KR100312147B1 (ko) | 2001-12-12 |
JPH10340130A (ja) | 1998-12-22 |
US6240524B1 (en) | 2001-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chelcea et al. | Robust interfaces for mixed-timing systems with application to latency-insensitive protocols | |
JP3000961B2 (ja) | 半導体集積回路 | |
US7366938B2 (en) | Reset in a system-on-chip circuit | |
JP2011170868A (ja) | 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法 | |
JPH03175848A (ja) | 2経路データ転送装置 | |
US6973078B2 (en) | Method and apparatus for implementing low latency crossbar switches with integrated storage signals | |
EP0645717A1 (en) | System for data synchronization and method therefor | |
KR100956304B1 (ko) | 디지털 전자 회로 및 시스템 | |
US6711089B2 (en) | Method and apparatus for performing signal synchronization | |
JP2002524790A (ja) | 同期多相クロック分配システム | |
US6640277B1 (en) | Input staging logic for latching source synchronous data | |
JP3321926B2 (ja) | 自己同期型半導体集積回路装置 | |
JPH10133768A (ja) | クロックシステム、半導体装置、半導体装置のテスト方法、及びcad装置 | |
US6678783B2 (en) | Inter-device coupler | |
US8254187B2 (en) | Data transfer apparatus, and method, and semiconductor circuit | |
JPS6369262A (ja) | 半導体集積回路 | |
US7047392B2 (en) | Data processing apparatus and method for controlling staged multi-pipeline processing | |
US20120317434A1 (en) | Method and Apparatus for Processor to Operate at Its Natural Clock Frequency in the System | |
JPH1115783A (ja) | 同期回路 | |
US12073111B2 (en) | Domain-selective control component | |
US20050273536A1 (en) | Handling of write transactions in a data processing apparatus | |
US6580303B1 (en) | Datapath control circuit with adjustable delay elements | |
JP2004326222A (ja) | データ処理システム | |
JP2004071103A (ja) | 自己同期型fifoメモリ装置 | |
JP2645462B2 (ja) | データ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101112 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131112 Year of fee payment: 14 |
|
LAPS | Cancellation because of no payment of annual fees |