第5章アルゴリズムのハードウェアによる実現:コンピューターシステム設計
5.6 Processor Architectures5.6 プロセッサアーキテクチャー
Learning Objectives学習目標
By the end of this section, you will be able to:
この節を終えると、次のことができるようになる。
• Discuss the history and advancements in traditional processor architectures and computation models
• 従来のプロセッサアーキテクチャーと計算モデルの歴史および進歩について論じる。
• Define heterogeneity and discuss its effect on computer systems
• 異種混在を定義し、コンピューターシステムへの影響について論じる。
Processors have a relatively short history that starts in the late 1960s; however, there have been big jumps since then. In this section, we learn about the evolution of processors from the dawn of processor design until today. The main measures of success of processors involve correctness, speed, power, reliability, and security.
英語のヒント
プロセッサの歴史は、1960年代後半に始まる比較的短いものだが、その間に大きな飛躍を遂げてきた。この節では、プロセッサ設計の夜明けから今日までの進化を学ぶ。プロセッサの成功を測る主な基準には、正確さ、速度、電力、信頼性、セキュリティーがある。
Speed has been the main measure of success for some time. But then computer designers began to worry about battery life (for portable devices) and the electricity bill (for big machines) so power became a pivotal issue. As computers have invaded almost all aspects of our lives, reliability has become a must because we do not want computers to fail. With the widespread use of the Internet and peoples’ need to be connected all the time, security has also become an issue.
英語のヒント
しばらくの間、成功を測る主要な基準は速度だった。しかし、設計者が、携帯機器の電池の持ちや、大型機の電気料金を気にするようになり、電力が中心的な課題になった。コンピューターが生活のほぼすべての側面に入り込むにつれて、故障してほしくないという理由から、信頼性が必須になった。インターネットが広く普及し、人々が常につながっていることを求めるようになると、セキュリティーも課題となった。
Homogeneous Processor Architectures同種プロセッサアーキテクチャー
The current processors contain several CPUs inside the chip. If these CPUs are copies of each other, the design is homogeneous. If there are different types of CPUs, some are fast but power hungry while others are slow but power efficient, the design is called heterogeneous. An example of heterogeneous processors is the chip inside the latest MacBook Pro.
英語のヒント
現在のプロセッサは、チップ内部に複数のCPUを含む。これらのCPUが互いの複製なら、同種の設計という。CPUに異なる種類があり、高速だが電力を多く使うものと、低速だが電力効率のよいものが混在するなら、異種混在の設計という。異種プロセッサの例には、最新のMacBook Pro内部のチップがある。
In its earliest version, a processor was just a big, bulky, black box that got its instruction from memory, executed it, got the next instruction, and so on. What was bad about this simple design? First, having one big bulky circuit made it slow and power hungry. Second, not all instructions took the same amount of time; a floating-point computation took as much as ten times longer than an integer computation. But since this design was one box working with one clock, the clock cycle had to be as big as the slowest instruction. The processor executed at the speed of the slowest instruction; therefore, even though the design was simple, it suffered from performance and power issues. However, physics came to the rescue.
英語のヒント
最初期のプロセッサは、単に大きくかさばったブラックボックスで、メモリから命令を取り、実行し、次の命令を取る、という動作を繰り返した。この単純な設計の何が悪かったのだろうか。第一に、一つの巨大な回路であるため、遅く、電力を多く消費した。第二に、すべての命令が同じ時間で終わるわけではなかった。浮動小数点計算は、整数計算の10倍もの時間がかかった。しかし、この設計は一つのクロックで動く一つの箱だったので、クロック周期を最も遅い命令に合わせる必要があった。プロセッサは最も遅い命令の速度で実行したため、単純な設計でも、性能と電力に問題があった。しかし、物理学が救いの手を差し伸べた。
CONCEPTS IN PRACTICE概念を実践する
Social Media and Supercomputersソーシャルメディアとスーパーコンピューター
Billions of people use social media sites such as Facebook, X (formerly Twitter), YouTube, and Instagram every day and at the same time. This means we need supercomputers that can serve all these people, store and manipulate huge amounts of data in a short time, and not go down. This cannot be done with a simple multicore; it requires millions of multicores and thousands, if not millions, of accelerators such as GPUs, TPUs, and FPGAs.
英語のヒント
何十億もの人々が、Facebook、X(旧Twitter)、YouTube、Instagramなどのソーシャルメディアサイトを、毎日、同時に使っている。そのため、すべての人にサービスを提供し、膨大なデータを短時間で保存・操作し、停止しないスーパーコンピューターが必要になる。単純なマルチコアだけでは実現できない。何百万ものマルチコアと、GPU、TPU、FPGAなどのアクセラレーターが、数百万とまではいかなくても数千は必要になる。
Moore’s Law and Dennard Scalingムーアの法則とデナード・スケーリング
In 1965, Gordon Moore (cofounder of Intel) published a short paper that predicted that the number of devices inside the processor would double every 18 months, called Moore’s law. Since transistors are the building blocks of logic gates, and logic gates are the building blocks of pieces such as adders, multipliers, and registers, then more transistors would mean more features implemented in the processor, hopefully leading to better performance. More transistors inside the processor’s chip meant that transistors would get smaller in size, and smaller transistors would mean faster transistors. Not only that, but Robert Dennard from IBM found that as transistors got smaller, the power consumed and dissipated was also reduced in a phenomenon known as Dennard scaling.
英語のヒント
1965年、Intelの共同創業者ゴードン・ムーアは、プロセッサ内部のデバイス数が18か月ごとに倍増すると予測する短い論文を発表した。これがムーアの法則である。トランジスタは論理ゲートの構成要素であり、論理ゲートは加算器、乗算器、レジスタなどの構成要素である。そのため、トランジスタが増えれば、プロセッサに実装できる機能が増え、性能向上が期待できる。プロセッサのチップ内にトランジスタが増えることは、トランジスタが小さくなることを意味し、小さなトランジスタは高速なトランジスタを意味した。それだけでなく、IBMのロバート・デナードは、トランジスタが小さくなるにつれて、消費・散逸する電力も減ることを発見した。この現象は、デナード・スケーリングと呼ばれる。
Traditional Processor Architectures従来のプロセッサアーキテクチャー
Figure 5.26 shows how the processor evolved from the single cycle implementation to more sophisticated and higher performance designs thanks to Moore’s law and its enabling technology, Dennard scaling.
英語のヒント
図5.26は、ムーアの法則と、それを可能にするデナード・スケーリングという技術によって、プロセッサが単一サイクルの実装から、より高度で高性能な設計へ進化した様子を示している。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 5.26 The processor has evolved from the (a) simple design single-cycle implementation to (b) pipelining to the very sophisticated (c) superscalar design in less than 70 years. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図5.26 プロセッサは、70年足らずで、(a)単純な設計の単一サイクル実装から、(b)パイプライン処理、そして(c)非常に高度なスーパースカラー設計へと進化した。(出典:著作権 Rice University、OpenStax。CC BY 4.0ライセンス)
If you think about what this bulky box in Figure 5.26(a) really does, you reach the following conclusion: it does few things repetitively with each instruction. It fetches an instruction from memory, decodes this instruction to know what needs to be done, and issues the instruction to the correct execution units (e.g., an integer operation to the integer execution unit and a floating-point operation to floating point execution unit).
英語のヒント
図5.26(a)の大きな箱が実際に何をしているかを考えると、各命令について、少数の作業を繰り返しているという結論に至る。メモリから命令を取り込み、何をすべきかを知るためにデコードし、適切な実行ユニットへ発行する。たとえば、整数演算は整数実行ユニットへ、浮動小数点演算は浮動小数点実行ユニットへ送る。
After execution, it writes the result of the operation back to a destination specified by the instruction, which is called the commit. Given this description, why not take the bulky piece of hardware in Figure 5.26(a) and divide it into these pieces: fetch, decode, issue, execute, and commit? Each piece does the work needed by the following piece in a technique called pipelining, with each piece called a phase (Figure 5.26(b)). What do we gain from this?
英語のヒント
First, each phase is now much less complicated, less power hungry, and faster. Second, once the fetch phase finishes fetching the first instruction and hands it to the decode phase, the fetch phase hardware is now free to fetch the second instruction. By the time the decode phase is done with instruction 1 and hands it to the issue phase, the fetch phase hands to it instruction 2 and starts fetching instruction 3, which is a form of parallelism.
英語のヒント
第一に、各フェーズは、はるかに単純で、消費電力が少なく、高速になる。第二に、取り込みフェーズが最初の命令を取得してデコードフェーズへ渡すと、その取り込み用ハードウェアは、次の命令を取得できる状態になる。デコードフェーズが命令1を処理し終えて発行フェーズへ渡すころには、取り込みフェーズが命令2をデコードへ渡し、命令3の取り込みを始める。これは並列処理の一形態である。
If we take a snapshot of the pipeline during the execution of the program, we find different pipeline phases working on different instructions. We call this type of parallelism temporal parallelism. The benefit is that this parallelism—or better performance—is done with no involvement from the programmer. The hardware is doing it for you.
英語のヒント
プログラムの実行中にパイプラインのある瞬間を見れば、異なるフェーズが異なる命令を処理している。この種の並列性を、時間的並列性という。利点は、プログラマーが関与しなくても、この並列性、つまり性能向上が実現することである。ハードウェアが代わりに行ってくれる。
With more and more transistors available, designers move to executing several instructions at the same time, which means that several execution units are needed. The other phases must be modified to fetch/decode/ issue several instructions at the same time, which is referred to as capability as shown in Figure 5.26(c). Another type of parallelism is superscalar capability, which is an execution unit that allows several instructions to be executed at the same time using another type of parallelism, spatial parallelism. If you look closely at Figure 5.26(c), you realize it combines both the temporal parallelism (from pipelining) and spatial parallelism (from superscalar capability).
英語のヒント
The next step in enhancing a processor’s performance is to fetch instructions from more than one thread, and you can technically execute two or more programs on the same processor at the same time. This is called simultaneous multithreading (SMT), which Intel calls hyperthreading technology.
英語のヒント
性能をさらに高める次の段階は、複数のスレッドから命令を取り込むことだ。これによって、技術的には、同じプロセッサで二つ以上のプログラムを同時に実行できる。これを同時マルチスレッディング(SMT)という。Intelは、ハイパースレッディング技術と呼んでいる。
This last enhancement was introduced in the early 2000s, but something happened around 2004 that pushed both the hardware and software communities to change gears. Dennard scaling stopped and designers kept increasing the frequency of processors to make them faster. This led to a complete stall because increasing frequency resulted in drastic increases in power consumption.
英語のヒント
この最後の改良は2000年代初頭に導入された。しかし2004年ごろ、ハードウェアとソフトウェアの両方の業界に、方針の転換を迫ることが起きた。デナード・スケーリングが止まったのに、設計者は高速化のため、プロセッサの周波数を上げ続けた。その結果、周波数の上昇によって消費電力が急増し、完全な行き詰まりに至った。