マイクロプロセッサ・アーキテクチャ教科書 表紙

マイクロプロセッサ・アーキテクチャ教科書 発売記念インタビュー

マイクロプロセッサの基本から最新技術までを詳細に解説した書籍「マイクロプロセッサ・アーキテクチャ教科書」(中森 章著)を11月26日に発売します.各種アーキテクチャのプロセッサの構造を比較しながら解説する,実務的で実践的なプロセッサ解説書です.

今回は,書籍の発行を記念して筆者の中森 章氏にインタビューを行いました(インタビューで収まらなかったぶんは文書にてご提供いただきました).

[書籍販売ページ]https://www.cqpub.co.jp/hanbai/books/45/45561.htm

インタビュアー:Interface編集部(み)(太)

 


新刊発行にあたり

編(み)このたびは新刊発行おめでとうございます.また,大幅に加筆いただきありがとうございました.

(中森 章氏)こちらこそありがとうございます.20年間のプロセッサの進歩をまとめる良い機会でした.

(み)今回発売される「マイクロプロセッサ・アーキテクチャ教科書」は,2004年発行の「マイクロプロセッサ・アーキテクチャ入門」の改訂版となります.当初は単純に「改訂版」とする予定だったのですが,大幅に加筆していただいたことにより,既に入門書というよりはマイクロプロセッサ・アーキテクチャを網羅的に解説する教科書と言っても過言ではない,ということで改題させていただきました.

(中)最近のプロセッサ事情,特に64ビット版ArmとRISC-Vアーキテクチャについて追記したところ,大幅な加筆となりました.またAIチップや仮想化とハイパーバイザについても追加した章になります.

今回発売される「マイクロプロセッサ・アーキテクチャ教科書」(左)と,「マイクロプロセッサ・アーキテクチャ入門」(右,2004年発行)

 

(み)前書はもう20年前なのですね.そこで今回のインタビューでは,この20年でマイクロプロセッサがどう進化したのか,前書の予測の答え合わせをしつつ,本書の内容を紹介していきたいと思います.


20年前の予測はどうなったか

● Intel(x86)の一人勝ちになったのか

「Intelの一人勝ちの状況で進化が進んでいる」
−−「入門」Epilogueより

(中)この20年で一人勝ちとは言えないくらいArmが躍進し,x86でも勝者はIntelではなくAMDとなっています.20年前の「x86一人勝ち」が何故外れたのかの考察してみます.

▶Intelの一人勝ち

一部の分野では的中しましたが,全体としては外れたと言えます.市場は多様化し,x86以外のアーキテクチャも重要な役割を担うようになったためです.

▶RISCの組み込み分野での活躍

これは完全に的中.RISCは組み込み分野だけでなく,サーバやスーパーコンピュータなど,さまざまな分野で利用されるようになっています.

(み)市場の多様化という点では,プロセッサの用途の分類として前書では「PC/サーバ/EWS 注1 」という表現が使われていたのが時代を感じます.

注1:EWSはエンジニアリング・ワークステーション.PCより性能が高く,サーバではないコンピュータをこう呼んでいた.PCの性能が上がってエンジニアリング用途でも使われるようになったので死語(?)になった.

● 組み込み用途でのRISCの躍進

「RISCの進むべき道としては,性能よりも超低消費電力が要求される組み込み制御の分野であろう」
「ARMやSHやMIPSは,組み込み制御分野を自分の色に塗り変えようと必死の努力をしているが,x86のように世界統一できる日が来るのだろうか.」

(み)このとおりでした.低消費電力技術で優れるArmは組み込み分野を席巻しました.個数ベースで言うと,2022年の数字でArmはx86の約80倍なので(Armが306億個 注2 ,Armを除くPC用プロセッサ≒x86が3億7,400万個 注3 ),組み込み用途で大きく伸びました.SHやMIPSは事実上消えてしまいましたが….あと,ARMが大文字なのに時代を感じます.

以降画像は本書より.低消費電力技術についても解説しています

注2:https://pc.watch.impress.co.jp/docs/news/1477518.html

注3:https://group.softbank/system/files/pdf/ir/presentations/2023/arm20240321_ja.pdf

(中)Armの躍進はスマートフォンと車載用途ですね.

(み)スマートフォンは1人1台の勢いで普及していますし,1台の車にはプロセッサが100個使われていると聞きます.

● x86の進化

「今後はプロセス技術の進歩とともにマイクロプロセッサも進化していく」

(中)プロセス技術の進歩に依存している点は的中していますが,電力効率の重要性が高まり,多コア化や命令セットの拡張など,より複雑な進化を遂げています.

● Arm対SHのゆくえ

(み)2004年はスマートフォン前夜で,PDA 注4 ではARMとSHでシェアを二分する勢いでした.

注4:Personal Digital Assistant.個人用情報端末.「通話機能のないスマホ」のようなもの.マニアの間で人気だった.

(中)SH-4はプロモーション不足だった気がします.X-BOXのCPUに選定される可能性もあったのですが….Arm対SHはアーキテクチャの優劣で決められたわけではない気がします.

(太)Armのビジネスモデルが受け入れられたように感じます.また,半導体メーカやオープンソースとのつながりを重視したのもArmの勝因の1つではないかと思います.
組み込み分野では,CMSISを作ったのが良かったと思います.デバッガがCMSIS-DAPに対応していればよくなったので.

● 2004年の予測が外れた理由

(中)2004年の予測が一部外れた理由は以下の点だと考えています.

▶スマートフォン市場の勃興

スマートフォンの登場は,モバイルプロセッサ市場に大きな変革をもたらしました.Armが低消費電力で高性能なプロセッサを提供し,この市場を席巻しています.

▶クラウドコンピューティングの普及

クラウドコンピューティングの普及により,データセンタ向けのプロセッサの重要性が増し,ArmやRISC-Vなどの新しいアーキテクチャが注目されるようになりました.

▶オープンソースの台頭

RISC-Vの登場によりプロセッサアーキテクチャがオープンソース化され,多様なプロセッサが登場するようになったことです.

● 2004年の予測と現状

(中)2004年に予測された内容について,現在の状況と照らし合わせると以下のとおりです.

▶1,Intelの一人勝ちと高周波数

2004年当時,Intelはデスクトップおよびサーバ市場で確かに支配的でした.しかし,その後の技術競争により,特に2017年にAMDがRyzenシリーズを発表してからIntelの優位性は揺らいでいます.Intelは長らく高い動作周波数を誇っていましたが,プロセスの縮小が停滞したことから,性能効率(消費電力あたりの性能)ではArmベースのプロセッサやAMDに後れを取るようになりました.最近では,AppleのM1やM4などのArmベースのプロセッサがデスクトップとラップトップ市場でも優れた性能と効率を示しており,Intelの一強状態は崩れつつあります.

Intelの2000年代のプロセッサ

▶2,RISCアーキテクチャの組み込み分野での役割

RISCアーキテクチャが組み込み分野で低消費電力を重視する方向に進むという予測は正解でした.Armは,スマートフォンやIoTデバイスを含む組み込み分野だけでなく,効率性とスケーラビリティを生かしてさまざまな市場での存在感を強めています.特にAppleのMシリーズによってArmはPC向けの高性能プロセッサとしても成功を収めており,パフォーマンスと電力効率の両方を兼ね備えたアーキテクチャとしての地位を築きつつあります.クアルコムはその追い風になると思われましたが….

▶3,組み込み分野での標準化

Armは,まさに「組み込み市場におけるx86」としての地位を確立しました.同社はライセンス戦略と広範なエコシステムの育成を通じて,市場における圧倒的なシェアを確保しています.これにより,MIPSやSHが競争から脱落する中で,Armがスマートフォン,タブレット,IoT,さらにはデータセンター向け市場において事実上の標準となったと言えます.

▶4,新興勢力としてのRISC-V

2004年当時には予測できなかったこととして,RISC-Vの台頭が挙げられます.RISC-Vはオープンソースであるため,コストを抑えたい分野や,プロセッサの柔軟なカスタマイズが求められる分野で注目されています.まだArmのシェアを脅かすまでには至ってませんが,特に学術研究や一部の組み込み分野で採用が進んでおり,将来的な競争が予測されます.

総合的に見て,Intelの支配はAMDやArmによって揺らぎ,Armは組み込み市場での標準化に成功,さらにRISC-Vが新しい勢力として台頭していることから,2004年の予測には多くの的中点が含まれていたと言えるかもしれません.


20年間のプロセッサの進化

● 20年前とどう変わったか

(み)過去20年間のプロセッサの進化はどのようなものでしょうか.

(中)以下のような点でさまざまな進化がありました.

▶1,CPUがアクセスするメモリが高速化/効率化された

プロセッサの性能はメモリアクセスがボトルネックなのは,いつの時代も同じです.
キャッシュメモリの階層化/大容量化とともにメインメモリ間の転送もHBM(High Bandwidth Memory)などで高速化されるようになりました.

(み)実は素のメモリの速度そのものはあまり速くなっていなくて,バスの創意工夫でスピードを上げてきた感じですね.

(中)バンクにしたりDDRにしたり連続転送したりで見かけ上は速くしています.

▶2,パイプラインの洗練化

パイプラインが洗練化されて,基本的には,もはや最終系のようになっています.特に大きな進化は命令の同時デコード数の増加と分岐予測の的中率の向上です.分岐予測回路がCPU面積の1/3を占めるものもあります.

Cortex-Mのパイプライン

 

▶3,より低消費電力化を実現

これは従来の延長上の技術が多いです.コア単位での動的電圧・周波数スケーリング(DVFS)でタスクの負荷に応じた電力管理が洗練化されました.
この流れで,Armに始まるbig.LITTLE構成は画期的でした.

▶4,DSA対応

専用プロセッサ(コプロセッサ)を内蔵し,DSA対応を目指すようになりました.GPUやNPUなどです.

▶5,セキュリティの強化

インテルのSGX(Software Guard Extensions)やArmのTrustZoneなど.車がネットワークに対応したので必要になりました.

● 割愛されなかった章…VLIW

 

(み)改訂版を出すにあたり,古くてもう必要ないと思われる章は割愛させていただく予定でした.当初はVLIWの章はCrusoeなどで使われていた古い技術なので割愛する予定だったのですが….

(中)VLIWはXtensaで現役で使われています.Xtensaはあまりなじみのないプロセッサですが,ESP32やM5 Stackと言えば伝わるのではないでしょうか.
筆者の考えですが,マルチコアをコンパクトにしていくとVLIWに行き着くのではないかと考えています.実際のマルチコアとの違いは,VLIWはタスク分散(命令スケジューリング)がコンパイラに任せきりな点です(ソースプログラムも1つ?).
命令スケジューリングはハードウェアに任せたいところです.その意味でEfficion(Crusoeの後継)はいい線行っていた感じがあります.CMS(コードモーフィングソフトウェア)が足を引っ張ってあまり流行らなかったのかもしれません.当時は,ハードウェアをソフトウェア化すると低電力になると言われていたのですが….
現在はFPGAなどでタスクのオフロードを行うことが流行で,ソフトウェアをハードウェアに置き換える風潮が強いですね.
VLIWについては何かの切っ掛け(ブレークスルー)で復権するかもしれないので,今回の改訂でも残していただきました.

● マルチコアが普通になった

(中)2004年時点でもマルチコアCPUはあったのですが,現在は組み込み機器にも広がりました.

(み)800円程度で買えるラズベリー・パイPicoでもデュアルコアですからね.Interface 2024年11月号で「ゼロから作るマルチコアOS」を特集したのですが,マルチコアCPUの基礎を知るためにも本書は参考になると思います.


https://interface.cqpub.co.jp/magazine/202411/

● その他の進化

▶Armの条件付き実行ビット

(み)32ビット版Armは実験的な機能を盛り込んだ意欲的なアーキテクチャで,それに比較するとArm64は素直というか普通に感じます.条件付き実行ビットは面白いアイデアだったのですが,Arm64ではなくなってしまいました.

(中)条件付き実行については,全命令が対象だったのが敗因と思います.アウトオブオーダー実行を考えると制御が複雑になり過ぎます.

▶条件付きMOVE命令

(み)RISC-Vの拡張にある条件付きMOVE命令は良いアイデアですね.多くのif文は条件付きMOVE命令の1命令に置き換えられて,分岐(=パイプラインを乱す)せずとも処理が行えます.

(中)条件付きMOVEは分岐予測のオフロードとして今後も注目されると思います.

▶命令長16ビットvs32ビットの決着は着いたのか

(み)命令長は16ビットが良いのか32ビットが良いのか,当時SH派の人に聞けば「16ビットが良い」という回答が,Arm派の人に聞けば「32ビットが良い」という回答が返ってきて,どちらが良いのか分からなかったのですが,SHが衰退したことでなんとなく命令長32ビットが勝利した感があります.とは言ってもArmのThumb命令やRISC-VのRV拡張など,現代でも命令長16ビットが重宝されています.

(中)命令長についてはx86が混乱状態になっています.実装する側から見ると固定長の命令がよいです.

ただ,汎用レジスタの本数との兼ね合いもあって,16ビットが良いか32ビットが良いか一概には言えません.折衷案が16ビット単位の可変長命令です.古くは68000が,新しくはV850/RH850が採用しています.

  • 命令長に関してちょっと脇道にそれます.可変長命令の68000のRISC版としてColdFireがありましたが,フェードアウトしてしまいました.これはMotorolaのPowerPCへの傾倒やArmの台頭が大きな理由…と思われますが,68000との完全互換ができなかった点も大きいと思います.しかし,現在の技術で68000を作り直せば,それなりの性能は出ると思います.それが68060と言えなくもないですが.やはり,x86の進化やArmの台頭,MotorolaのPowerPC傾倒が理由で廃れたと思います.そのPowerPCもx86やArmの進化についていけず廃れてしまいましたが.

(み)68060はWikipedia情報によると完全新規設計だそうです.個人的には68060マシンを持っているので,64ビット版680×0なども欲しかったところです.

● RISCかCISCの一人勝ち…にはならなかった

(中)RISCかCISCの一人勝ちというような状況にはなりませんでした.その中でさらにRISC-Vが出てきました.

RISC-Vについても解説しています

(み)Arm vs RISC-Vはアーキテクチャでは拮抗しているけど,実装(設計)がRISC-Vは数年遅れという話を以前伺った記憶があります.

(中)RISC-Vは高性能な実装がまだ少ないですね.

(み)たとえば,ジム・ケラーが高性能なRISC-Vを設計したら決着がつくのでしょうか.

(中)ジム・ケラーはテンストレント(Tenstorrent)で高性能なRISC-Vを作ろうとしています.見た目はAIプロセッサという売り方ですが,中身はRISC-Vです.

ジム・ケラーの経歴と設計したプロセッサは,

 

  • AMDの経歴(AthlonやK7などの開発)→高性能なプロセッサ
  • Appleでの経歴(A4などの開発)→高性能と低消費電力の両立
  • Intelでの経歴→不明.Intelで目指していたビジョンと,当時のIntelの戦略との間にギャップがあったかもしれない

 

という感じです.

ジム・ケラーは汎用性と特化型のバランスを重視する設計哲学を持っていると考えられます.RISCとCISCの良いとこどりは得意とするところです.RISC-Vの拡張性やモジュラー性を生かして,さまざまな用途に対応できる拡張性の高いSoCを設計すると見込まれます.
また,ジム・ケラーは,常に新しい技術に挑戦し,既存の概念を打ち破るような製品を開発してきました.今後の製品開発についてはわれわれ凡人は予測しがたいです.

(み)高性能路線以外では,RISC-Vは低価格のちょっとした制御用チップを作るのに良いですよね.Western DigitalがHDDの制御チップに採用しているとか.

(中)簡単に設計できるからコントローラには良いですね.独自プロセッサを作るとコンパイラやデバッガなどの周辺開発環境が大変なのですが,RISC-Vなら揃っているので.

● AIの章を追加した

(み)今回,改訂版を出すにあたり,AIチップは外せないだろうということで加筆いただきました.

AIチップも解説します

 

(中)AIチップのようなDSA(Domain Specific Architecture)が流行るでしょうね.今後もDSAの時代が続くと思われます.

(み)本書には入っていませんけどGPUもDSAの1つですよね.振り返れば1979年の68000はC言語で書かれたプログラムを効率的に動かすDSA的な部分がありますし,TRONCHIPなどはOSを効率的に動かすためのDSAのように感じます.


大胆予測!20年後はどうなるのか

(み)10年後に本書の改訂版を出す予定なのですが 注5 ,今後プロセッサがどうなっているか大胆予測をお願いします.

注5:編集子が独断で言っていることなので,決定した事項ではございません.

(中)10年より長く,今後20年間のマイクロプロセッサの進化予測としては次のことが考えられます.

▶1,チップレットによるモジュール化

一時期は流行るかもしれないが,結局バスの通信がボトルネックになって,チップレットを構成するチップが巨大化する傾向にあります.新チップレットの概念が生まれるような気がします.

▶2,AI/ML(Machine Learning)への最適化が進む

クラウド,エッジの両方面でそれぞれの進化が見込まれます.
エッジについては,リアルタイムAI推論の精度と速度が向上するでしょう.また,各種データのプリプロセッシングや,モデルの量子化,プルーニングなどの効率化技術が進化し,AI処理の電力効率がさらに向上が見込まれます.

▶3,異種混淆(こんこう)コンピューティング

CPU,GPU,NPU,FPGAなどが連携して,システム全体の性能向上が見込まれます.
特に注目したいのは量子コンピュータ技術です(アニーリングの方).極低温にしなくても使える技術が発表されていますが,量子コンピュータがコプロセッサとして利用できるようになるかもしれません.

▶4,セキュリティと低消費電力

セキュリティと低消費電力は現在の技術の延長上でより効率的になると思われます.これについてはAIの活用がキーポイントとなるかもしれません.セキュリティにおいてはAIが異変を検出したり,低消費電力においてはAIがDVFSを制御したりとか.

(み)セキュリティや低消費電力にAIを活用するのは良さそうですね.AIというとGPUとメモリを大量に使うイメージがあるのですが,用途を限定すれば,プロセッサに内蔵できるレベルの小さい実装でも十分役に立つでしょう.

● プロセッサにおけるCPUの役割の変化

(み)以前はプロセッサにはプロセッサのコア機能…CPUの機能だけが内蔵されていました,現在はGPUやNPUが内蔵されて1チップになっています.GPUやNPUが進化していくとCPUの役割はどうなるのでしょうか

(中)処理内容によって,次のような棲み分けがなされると思います.

  • CPU→制御および汎用処理
  • GPU→並列計算と高スループット
  • NPU→AI推論の高速化

CPUは,システム全体の制御と汎用計算を担当.低レイテンシでの応答が求められるタスク(例:システム管理,I/O操作,アプリケーションの指示処理など)を効率的にこなします.複雑な制御やロジックを必要とするシリアル処理に適しており,スレッド管理やメモリ管理など,システム全体の統括も行います.
GPUはグラフィックス処理の高速化という本来の意義もありますが,基本は浮動小数点演算です.AIの学習には欠かせません.またGPGPUといわれるように,ある程度定型的な演算を超並列で実行します.
NPUの基本は整数演算の積和処理です.AIの推論に特化しています.今後は並列度が増していくでしょう.

▶アナログ回路のプロセッサへの適用

並列度を高めるという点ではアナログ回路を利用したCIM(Compute In Memory)が発達していくかもしれません.

CIMの原理は,メモリセルに書き込まれた重みをコンダクタンス(電気伝導率)として表現し,入力信号に対応する電流を流すというものです.このとき,各メモリセルのコンダクタンスと流れた電流の積が,そのセルの出力となり,これらを全て足し合わせることで積和演算が実現されます.

  • 利点:高速で低電力.並列計算.
  • 欠点:アナログ回路特有のノイズやドリフトの影響を受けやすく,精度が低下しやすい.ブレークスルーが望まれます.

 


本書発行にあたり故・村上編集長のこと

(み)2004年発行の「マイクロプロセッサ・アーキテクチャ入門」はInterface編集長も勤めた故・村上真紀氏(2022年に病没)が編集させていただきました.

(中)もともと「入門」は別の出版社での発行を打診していました.そちらでの発行は難しいということになり,Interface誌の筆者でもある桑野 雅彦氏経由で村上さんを紹介していただき,その縁で発行させていただきました.それ以降,Interface誌にも執筆するようになりました.

(み)個人的には桑野さんには前職でも大変お世話になりました 注6 .私がCQに入社したのも,前職の部署が閉鎖されたところで村上さんにお声掛けいただいたのがきっかけです.そういう意味では中森さんと同じパターンです.今回,村上さんの作った「入門」を引き継げて,恩返しができたのではないかと思っています.

注6:編(み)の前職は西池袋にあったソフトハウス 満開製作所.

(中)村上さんのご冥福をお祈りします.

(み)本日はありがとうございました.

(2024年11月18日収録)

「マイクロプロセッサ・アーキテクチャ教科書」の目次・購入はこちらから
https://www.cqpub.co.jp/hanbai/books/45/45561.htm