大原雄介の半導体業界こぼれ話

「Zilog Z80」の生産終了と、Intel Baseline Profile登場について思うこと

Zilog Z80のデータシートより

5月の話題その1:Z80が生産終了

 4月の話題になるのだが、Zilogを買収したIXYS Corporationをさらに丸ごと買収したLittelfuseから、Z80製品の生産終了(EOL)が発表された(写真1)。

【写真1】もっともこのレターが、ZilogとかLittelfuseではなく、代理店であるMouserから公開されているというあたりが何とも言えないが

 今回販売中止となるのは、ZiligのClassic Productに属する中でも、一番ベーシックな「Z84C00」シリーズである。パッケージは44ピンのPLCC/LQFP/DIPで、動作周波数は6MHz~20MHz。要するに「生の」(という言い方も変だが、いろいろ手を加えていない、ほぼオリジナルに近い)Z80 CPUが今年6月14日にLTB(Last Time Buy)を迎え、もうこの後は注文できなくなる、というだけの話である。

 もっとも、これが困るユーザーがどの程度いるのか? というとちょっと疑問ではある。というのは、Z84Cシリーズで言ってもZ84C15という製品があり、CPUのほかにCTC(カウンター/タイマー回路)、SIO(シリアルI/O)、CGC(クロックジェネレータ)、WDT(Watchdog Timer)、PIO(パラレルI/O)などの周辺チップを全部統合して、84ピンないし100ピンのパッケージに収めた製品である。

 このZ84C15は、1990年台には既に発売されていた製品であり、昨今のZ80ベースのマイコンは、大体「Z84C15」とか、ここからPIOを抜いた「Z84C13」、あるいはCTCだけを統合した「Z84C11」などが広く利用されていた。

【図2】ZilogのVolume I Databook Microprocessor and Peripheralsの1992年版から。ちなみにNMOS版のZ8400シリーズは、とうの昔にDiscon扱いになっている

 そもそもZilogの1992年における製品ロードマップがこちら(図2)であり、もうこの時点でCMOSディスクリートのZ84C00/10/20/30/40を使うのは既に不経済な選択肢だった。この時点でZ84C00を選択するというのは

  1. 旧来の設計に基づくボードが存在しており、そこに装着するには統合した84C1xでは不都合がある
  2. 旧来の設計を、コストあるいは認証の問題などで変更できない
  3. 周辺回路に相当する部分を既に別の回路で構築してあり、CPUだけを必要としている

ぐらいしか理由を思いつかない。(1)は、たとえば古いZ80ベースのマイコンとかを手に入れて、パーツ交換して動かそうなんて場合には、まぁ当然古のZ80A互換のチップが必要になるが、そういうユーザーがどの程度いるのか? というのは良く分からない。数人では済まないかもしれないが、数千人の規模になるとも思えないのだが。

 (2)が意外に厄介で、ある種の業界では部品を交換するのに認証の取り直しが必要になり、これがバカにならない手間とコストが掛かるから、変えたくても変えられないという事情があるらしい。

 とはいえ、既にZ80が世の中に出て50年。Z80を利用した機器で、そうした認証が必要なものについても、もう軽く30年か40年経っている。さすがにここまで時間が経つと、性能的に足りるのか? というのはかなり怪しい。

 大体の場合は、もっと高性能な別の認証を取った機器に置き換えが進んでいるのが現状であり、「旧来の機器をまだ動かし続けているので、保守用に部品をストックしておきたい」というニーズはあっても、「旧来の機器を新規製造するので部品が必要」というケースは、あっても相当レアではないかと思う。

 (3)が一番楽で、これは要するにCPUに相当するものを用意すれば別にZ84C00でなくても済むことになる。昔はともかく、今だとFPGAで実装というのが結構現実的である。ありもので言えばOpenCoresの「A-Z80もある。Cyclone IIでLEの利用率が11%、Spartan-6で19%だそうだから、比較的小さめなFPGAで十分収まる範囲だ。またそもそも回路規模がそれほど複雑ではないので、自分で作るのにトライしている人も多い。こうした事例はたまに耳にする。

 別に今回の発表はZ80というアーキテクチャの終焉でもなんでもなく、単にZ84C00というディスクリートCPUの生産終了でしかない。とは言えこれが大きく取り上げられたのは、やはりオリジナルの製造元が廃止を決めたから、ということかと思う。

 余談であるが、Z80というと思い出されるのがZ80の上位互換である、旧日立の「HD64180」である。こちらは日立からルネサステクノロジーに製品移管されたのだが、2005年に生産中止が発表された(ルネサスエレクトロニクスに改称されたのは2010年なので、それ以前の話である)。

 その際のZilogのリリースがこちら(図3)。もうザイログ・ジャパンは存在しない(2019年に会社清算を行なったらしい。リテルヒューズ・ジャパンがある以上、子会社というか孫会社になるZilogの日本オフィスをわざわざ維持する必要もないと判断されたのだろう)が、Z80180はいまだに生産と販売を行なわれている辺りが組み込み向け製品の息の長さを物語っており、だからこそZilogがZ80の販売を収束させることがこんなに大ニュースになった、という見方もできるかもしれない。

【図3】これはWeb Archiveに保存されているもの

5月の話題その2:Intel Baseline Profileについて思うこと

 4月27日に独igor's LABが公開したことで、いきなり世界中に騒ぎを巻き起こしたIntelのK/KSモデルCPUの劣化問題。いまだにIntelからの公式な発表はないが、こちらでも触れているように、既にマザーボードベンダー各社は「Intel Baseline Profile」を適用した新しいBIOSの配布を始めている。

 実際筆者が所有するASUSの「Prime Z690-A」にも、4月24日付でバージョン3501が配布されているが、この3501の説明は

The update introduces the Intel Baseline Profile option, allowing users to revert to Intel factory default settings for basic functionality, lower power limits, and improving stability in certain games.

となっている。

 実際BIOS Setupを開くと、「Intel Baseline Profile」という項目が追加され(写真4)、これを有効化するとパラメータが結構変更になるのが分かる(写真5)。

【図4】最初からこのIntel Baseline Profileをデフォルトにしろよ、という気はしなくもない
【図5】IA TDC Current LimitとかGT TDC Current Limit、Autoで設定される値とIntel's Defaultがどの程度異なるのか興味あるところ

 直接的な原因は、マザーボードメーカーがBIOSに「攻めた」設定を許していたことである。これはまぁ疑う余地はない。倍率変更ができないK/KS以外のSKUのCPUを使うと、今回の現象が発生していないことからもこれは分かる。マザーボードの側でより高い電圧や大電流を流せる余地があっても、CPUの側でこれを勝手に抑えてくれるから安全という話だ。K/KS SKUではこのあたりの歯止めがなくなってしまうため、明らかに安全に使える枠をはみ出しての運用になり、結果CPU内部の損傷に至るというわけだ。

 ただ、その背景を考えると、そもそもK/KS SKUで定格をはるかに超えて損傷を起すような設定を許すIntelの責任がない、とは言えないと思う。

 本来だったら、K/KS SKUにおいても、「どこまでの電圧/電流なら損傷せずに動作するか」の検証を行なって、これを1つの境にし、窒素冷却のようなCPUを使い捨てに近い状況で動作する用途のみ、この境を超えさせるくらいのハードルの高さを設けるべきなのに、BIOSのデフォルト設定がハードルを超えているという状況を放置したのはIntelの手落ちだろう。

 ではなぜこの状況を放置した、あるいはマザーボードメーカーに強く言えなかったか? と言えば、AMDとの性能競争が激化する中で、シリコンが許容できる限界まで電圧/電流を流し、性能を無理やり引き上げるというマーケティングが当たり前のものになってしまい、マザーボードメーカーにもこれへの協力を要請してきたという背景があったわけで、今さら「電圧落として電流制限しろ」と言ったところで、「どの口がそれを言うか」と返されて終わり、という話である。

 そもそもCPUのオーバークロック動作は、昔は「原発乗っ取りキット」(クロックジェネレータを置き換えて、ベースクロックを引き上げる)とか「GoldenFinger」(初代のAthlonには、倍率変更の信号ピンがこっそり出ており、これの設定変更で動作周波数を変更できた)みたいな力業が多く、そこはメーカー非保証の使い方をユーザーの責任で行なう、というやり方が一般的だった。Celeron 300Aを100MHz FSBで使うとかの類もそうだ。と

Celeron 300A(手前)

 ところがAMDがBulldozerベースのAMD FXで5GHz駆動を達成(なお性能は全然伸びなかった)のデモを行なったあたりから、CPUメーカー自身が倍率アンロック製品を積極的にアピールするようになり、第9世代CoreあたりからはPL1とかPL2まで積極的にいじれるようになってきた。

 この時期は何があったか? というと、AMDのRyzenシリーズにプロセスでビハインドを負った状態で、それを動作周波数でカバーするという形のアプローチが積極的に行なわれ始めたのだ。

 といっても、たとえばCore i9-9900Kの場合、PL2はPL1の1.25倍でしかなかった。PL1が95W、PL2が118.75W、Tauは最大8秒、デフォルト1秒程度だったから、今から思えば可愛いものである。それがCore i9-14900KだとPL1が125W、PL2が253W、TAUは56秒である。PL2がPL1の倍以上という時点で、かなりどうかしていると思わなくもないが、実際にはこれを超えた状況で常用されていた。

 たとえばこちらのテスト環境だとPL1=PL2=253W、IccMAX=400Aである。こうした使い方をずっと許容していたのは、ほかでもないIntel自身であって、今さら「マザーボードメーカーが勝手に許容値を超える動作をしている」とか言われたら、メーカーから突っぱねられるのは必至だろう。

 要するにIntelの見積もりの甘さが今回の事態を招いた、というのが実情だ。定格動作での検証はきちんと行なったのだろうが、それを超えた際の動作の検証が不十分だった、というあたりではないかというのが筆者の見立てである。

 ちなみに動作異常が発生したCPU、運が良ければBaseline Profileに戻すと正常動作するかもしれないが、通常内部損傷は非可逆であり、もうBaseline Profileに戻しても正常動作しない公算が高い。あるいは正常動作しているように見えても、内部の劣化が激しい可能性があるので、長期間使う前に故障を引き起こす可能性がある。

 要するに「やり過ぎた」のだ。