ITmedia NEWS > STUDIO >
ニュース
» 2020年02月28日 12時41分 公開

新連載「RISCの生い立ちからRISC-Vまでの遠い道のり」:RISCの元祖、IBM 801はなぜ誕生したのか (1/3)

RISCプロセッサ。その歴史的経緯を追っていく新連載がスタートします。

[大原雄介,ITmedia]

 最近ではArm、RISC-Vなど組み込みでも華々しい活躍を見せているRISCプロセッサ。その歴史的経緯をIT史に詳しい大原雄介さんに解説してもらう連載、スタートです。


 先日のキーボード記事が思ったよりも評判良かったようで、少し昔の話を書いてみないか? ということでいただいたお題がRISCプロセッサ。昨今のRISC-V周りの興隆が背景にあるわけだが、「そもそもRISCの生い立ちは?」という話を少し系統立てて説明をせよ、とのご依頼をいただいた。

 ということで、話はRISC以前から始まる。

 RISCの祖先というか元祖として認識されているのはIBM 801というプロセッサ(というか、システム)であり、これを開発したのはIBMのThomas J. Watson Research Centerに在籍していたジョン・コック(Cocke)博士と彼のチームである。まずはこの話からスタートすることにしたい。

 もともとコック博士に与えられた任務は、「リーズナブルな価格で実現できる、電話交換機システム向けのプロセッサを開発する」というものだった。この電話交換機システム自体の話は1972年か73年あたりに内々でスタートしており、これに向けてコック博士も同じ時期にプロセッサ開発チームを集め始める。

 電話交換機用システムの正式なプロジェクト発足は74年のことで、恐らくはこのタイミングで資金的な手当てのめども付いたのだろう、CPUの開発プロジェクトも75年に正式スタートする。

 ちなみにこのプロジェクトは801 Buildingに拠点を置いていた関係で801 Projectと呼ばれ、これが最終的にIBM 801という名前になってしまった。面白い(?)ことに、そのCPUの開発プロジェクトがスタートした後で、電話交換機用システムのプロジェクトは頓挫するのだが、なぜかCPUの開発プロジェクトは中断されずにそのまま進むことになった。このあたりは、まだ資金的なゆとりの大きかった頃のIBMならでは、という気がする。

 さて、もともとの電話交換機用システムでは、平均して300通話/秒の接続をさばく必要があり、各通話の接続処理におよそ2万語ほどの命令処理が必要になると見積もられた。これを掛け算すると6MIPSの処理性能が必要になる形だが、他にもいろいろ行うべき処理があったようで、ラフに12MIPSのプロセッサが必要、というのがプロジェクトから示された要求事項だった。

 74年当時といえば、IBM System/370-168がハイエンド機種に相当するが、これが4.1MIPSほどだから、これを3台並べれば性能的には満たせる計算になる。ただ、そんな巨大な電話交換機は受け入れてもらえない&価格が高すぎる、ということで「もっとリーズナブルで高性能なCPUを開発せよ」というリクエストになった形だ。

 さてこのリーズナブルなCPUをどうやって開発するか? 博士はこれまでのIBMのシステム上で稼働したアプリケーションを利用して命令のトレースを行い、実行時間の3割は、CPUとメモリの移動に費やされていること、そして分岐処理の命令が、やはり実行時間の3割を占めていることなどを発見した。

 また、System/370はCISCらしい複雑な命令セットを用意しており、例えばADD(加算)だけでI@A/I@AH/I@AL/I@ALR/I@AP/I@ARの6種類が用意されるといった具合。俗に直交性が良いなどといわれるが、処理(この場合なら加算)と対象(メモリ/レジスタ/その他)の順列組み合わせ分、命令が用意されているという典型的な体系である。

 もともと60年に発表されたSystem/360の後継機種ということで、System/360との命令互換性を保ったことでかなり複雑な命令体系になっている。ところが博士が調査したところ、実行時間の大半を占める命令はLOAD/STORE/BRANCH/FIXED-POINT ADD/FIXED-POINT COMPARE程度で、全く利用されない命令がかなりあった。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.