Delayを解消する特殊なメモリー
「ラッチ」
Delay問題を解決し、正常に処理する一番手っ取り早い方法が「ラッチ」である。ラッチというのは一種のメモリー、正確に言えば1bitのSRAMであって、「あるタイミングで、入力された値をずっと保持して出力し続ける」という機能を持つ。
図10はこのラッチの模式図である。ラッチ入力は0と1の間をふらふら変動するわけだが、これとは別にトリガー入力という信号が用意される。このトリガー入力の立ち上がり(0→1に変化するタイミング)で、ラッチ入力の値を取り込んで出力、以後は次のトリガー入力が来るまで保持し続ける。
ではラッチを使うとどんなくあいに問題が解決するのだろうか。図11は図8の先頭にラッチを追加した構図だ。
この状態でタイミングがどうなるか、を示したのが図12である。
これまでだと、入力は一定期間だけ保持された後変わってしまうが、ラッチを挟むとその入力値がその後ずっと保持されることになる。したがって、Logic A~Hはそれぞれやや遅れて動き始めても十分間に合うことになる。これにより、複雑な大規模ロジック回路であっても、正しく動作できるようになるというわけだ。
ここまで延々といろいろな解説をしてきたのは、このラッチの必要性を理解してもらうためである。一般にデジタル回路は同期回路と非同期回路という2種類に分類できるが、この違いはラッチを挟むか挟まないかの違いである。
図11の場合では、Logic A~Logic Iの間は非同期回路である。ただし全体としては同期回路として動くことになる。実のところ、最近の大規模LSIのほぼ100%が、この同期回路で設計されている。というのは非同期回路の場合、大規模になればなるほどタイミング調整が難しくなるからだ。
実際、商用の製品で非同期回路を実現できた製品としては、シャープが1998年にリリースした「DDMP」(Data Driven Media Processor)くらいしか思いつかない。あとはARMがマンチェスター大学と共同で「Amulet1/2」と呼ばれる非同期ベースのARMコアを開発したり、Philips(現NXP Semiconductor)の子会社であるHandshake SolutionがARM9ベースの非同期プロセッサーを試作したという程度である。
非同期で設計できた製品数は数えられる程度でしかない、というあたりに非同期だけで設計することの難しさが見て取れる。
さて、この同期回路やラッチがどこにつながっていくかというと、最近のCPUのパイプラインにモロにつながる。そもそもラッチの場合、定期的に新しいデータを取り込ませない限り、電源が切れるまでずっと最初のデータを保持している。
そこで定期的にトリガーを入力する必要があるが、このトリガー信号こそが、いわゆるクロック信号である。つまり動作周波数が1GHzの場合、実際はクロック信号が1GHzであるという意味なのだが、これはつまりラッチに対して、1ns毎にトリガー信号が与えられるという意味である。
逆に言えば、ラッチから始まる一連の回路ブロックは1ns以内にすべての処理を完了しないといけない。これがもし間に合わないと、正常に処理ができず、暴走するわけだ。
さらには、最近のCPUのパイプラインは大体が1ステージあたり1サイクルで処理される。つまりパイプラインステージの先頭にはラッチが入り、この後に非同期回路の形で、デコードやALUなどの実際の処理が搭載される。
当然ながら処理が少ないほど、短い時間で処理が終わる=クロック信号の動作周波数を上げやすいという関係にあり、これが理由でパイプライン処理を分割して処理時間を短縮するスーパーパイプラインなどが登場したわけである。
Delayを示す数値「FO4」で
パイプラインの速度がわかる
最後にFO4という指標について少し説明しておこう。FO4(Fan Out 4)というのは、CMOS回路におけるDelayの度合い、つまりパイプライン構成がどの程度高速向けなのかを示すものになっている。
FO4そのものは、図13のように入力を4分割するゲートを考えた場合の、NOT1個分のDelayを示す数値である。図8では出力は1個しか考えてなかったが、実際は図13のように出力を分割する場合が珍しくない。こうした場合、NOT出力の負荷が高まる分、電圧を上げた際の遅れが大きくなることになる。
このFO4は、プロセッサーのパイプラインの各ステージがどの程度のDelayを想定しているかの指標となる。つまりパイプライン1段分の処理は、このNOTが20~25個直列につながったのと同程度のDelayを発生すると想定しているわけだ。例えばQualcommの「Snapdragon」に利用されているKraitというCPUコアは、20~25 FO4程度で設計されている。
これが「Pentium 4」では16強、IBMの「Power 6」は13である。数字が小さいほど高速にパイプラインを動かすことを想定しており、これは消費電力が大きくなる。逆にモバイル向けのプロセッサーでは消費電力を下げるために動作周波数の目標を低めに設定しているため、必然的にパイプライン1段分に仕込める処理が増え、結果としてFO4の値が大きくなるわけだ。
この連載の記事
-
第803回
PC
トランジスタの当面の目標は電圧を0.3V未満に抑えつつ動作効率を5倍以上に引き上げること IEDM 2024レポート -
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 -
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU -
第800回
PC
プロセッサーから直接イーサネット信号を出せるBroadcomのCPO Hot Chips 2024で注目を浴びたオモシロCPU -
第799回
PC
世界最速に躍り出たスパコンEl Capitanはどうやって性能を改善したのか? 周波数は変えずにあるものを落とす -
第798回
PC
日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU -
第797回
PC
わずか2年で完成させた韓国FuriosaAIのAIアクセラレーターRNGD Hot Chips 2024で注目を浴びたオモシロCPU -
第796回
PC
Metaが自社開発したAI推論用アクセラレーターMTIA v2 Hot Chips 2024で注目を浴びたオモシロCPU -
第795回
デジタル
AI性能を引き上げるInstinct MI325XとPensando Salina 400/Pollara 400がサーバーにインパクトをもたらす AMD CPUロードマップ -
第794回
デジタル
第5世代EPYCはMRDIMMをサポートしている? AMD CPUロードマップ -
第793回
PC
5nmの限界に早くもたどり着いてしまったWSE-3 Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ