検索
ニュース

「RISCだったら自分たちで作れるんじゃね?」で始まった、自家製RISCプロセッサの興隆RISCの生い立ちからRISC-Vまでの遠い道のり(2/3 ページ)

ARM旋風は他のメーカーにも大きな影響を与えた。「俺たちもやってみるか」と動き出した。

Share
Tweet
LINE
Hatena

 80186/80188は組み込み業界の方以外にはあまり知られていないが、ベースは8086/8088だ。ただし周辺回路までワンチップ化するとともに、一部80286の命令も取り込んでより高速化した。当時は組み込み向けにx86(というか、IBM PC)をベースにシステムを構築することも多く、その延長でx86でシステムを構築するケースは少なくなかった。

 Intelは1987年から2007年までこの80186/80188を供給し続けていたが、何しろコストカットの要求が激しい分野だけに、より安価かつ性能が高い(オリジナルの80186は最大でも25MHz駆動)互換品には確かにマーケットニーズがあった。

 これを狙うにあたり、RDCは独自の16bit RISCコアを開発して、ただし命令セットだけは80186互換としたわけだ。昨今のx86というかx64は、8/16/32/64bitが入り混じって命令数がやたらに多くなっているが、8086/80186互換なら8/16bitのみだし、RISC化はそう難しくない。幾つかの命令(例えばメモリアクセスを伴う演算命令とか)に関しては内部で命令変換を掛けただろうとは思うが、おおむねx86命令をそのまま実装できたはずだ。同社はその後、これを高速化した「RD1100」シリーズや、32bit化して486互換とした「RD8600」シリーズなどを発表しているが、これも自社開発のRISCコアならではの製品展開である。

 もっとメジャーなところでいえば、開発ボード「Arduino」に採用されたことでおなじみの、米Atmel(現Microchip)のAVRが挙げられよう。もともとはノルウェー工科大学の学生だったアルフ=エーギル・ボーゲン氏とヴェーガル・ヴォロン氏の2人で開発したのがAVRである。AVRは“Alf and Vegard's RISC processor”の略である。もっとも当初はμRISCという名称であり、卒業論文としてこのμRISCの設計を完成させる。2人はその後Nordic VLSIに勤務し、その際に彼らのμRISCはASICの内部で使われたようだ。

 Nordic VLSIは現在のNordic Semiconductorの前身で、当時はASICのデザインハウス的な業務が多かった。そもそもNordic VLSI自身がノルウェー工科大出身者によって立ち上げられたベンチャーみたいなもので、なので2人がそこに勤めたのはわりとごく自然な流れだったらしい。

 その後、ある程度μRISCにも改良を加えて洗練された辺りで、2人はシリコンバレーに渡り、これを大々的に商品化してくれるメーカーを探す。最終的にAtmelがこれに応じ、μRISCの権利をAtmelが買収。Atmel AVRとして記録的な大ヒットに繋がる商品に仕立て上げた訳だ。

 AVRはその後TinyAVRやmegaAVR/XMEGAといった形でラインアップを広げていく。Atmelは1997年にAVR MCUを初めて発売したが、2003年には累計出荷数が5億個に達したというプレスリリースを出している。残念ながら2006年にリリースした32bit版のAVR32は成功したとはいえず、その後Microchipによる買収に伴い事実上消えてしまったが、8bit AVRに関しては現在も生産されているどころか、機能強化されつつ品種が増えている状態である。

 現在の組み込み市場における3大8bitアーキテクチャといえば、8051とPIC、それとAVRということになると思う。PICもややRISC風の実装になっているところもあるし、8051はもともとはCISCながら、昨今ではRISCベースの8051が多数存在する。が、AVRは当初からRISCとして設計され、現在も広く使われているアーキテクチャである。

 そんなわけで、2000年頃になると「RISCは設計コストを抑えつつ自分の好きな構成にできる、良いアーキテクチャである」という認識が一般的に広まってきたと思う。実際2000年を過ぎた後で新規に設計されたCISCのアーキテクチャは、ルネサス テクノロジ(現ルネサス エレクトロニクス)のRXシリーズくらいしか思いつかない。

 前も書いた通り、x86のおかげでCISCとRISCの境目がなくなってしまったという背景はあるが、新規に命令セットから起こすに当たってCISC的な命令セットを用意した最後のプロセッサ、という方が正確だろうか?

 「ではRISCにすれば成功するか?」といえばそんなことはない。先もAVR32にちょっと触れたが、プロセッサが完成してもビジネスとして成功するかどうかはまた別の話である。

 例えば2000年に、OpenRISCというプロジェクトがスタートした。もともとはOpenCoreという、フリーに使えるさまざまなコア(CPUだけでなくDSPとか、CPUの一部だけとか、メモリコントローラーだったりSoCの一部だったり、と多様な種類がここには含まれる)を提供しようというもので、現時点でも多数のコアがIPの形で提供されている。このOpenCoreの目玉プロジェクトとして始まったのがOpenRISCである。

 既にプロジェクトはある程度目標を達成しており、OpenRISC 1000のソースコードはGitHubで公開されている。2017年にはArchitecture Version 1.2が、2019年には同Version 1.3がそれぞれリリースされており、またFPGAへの実装の他、ASICに搭載する形で製造されたチップも存在する。その意味ではプロジェクトの目標である「Open Sourceの形で開発され、ロイヤリティーなしで利用できるRISC CPUを作る」は達成されているのだが、実際には足りてないものが多い。Wishlistを見てみると、

  • システム構築ツールが必要
  • Webベースのシステム可視化ツールが欲しい
  • Package Managerが必要
  • FreeBSDへのポーティング
  • Linux kernelのVDSO(Virtual Dynamic Shared Object)サポート
  • さまざまな言語サポート
  • GDBが動くようにしてほしい
  • libffi/gobject-introspectionの移植
  • 古いバージョンのコアのアップデート
  • ツールチェーンの拡充
  • 仕様とインプリメントを一致させる(RTLでインプリメントされている関係で、一部一致していない)

 といった項目が並んでいる。大半はCPUコアそのものには関係ない、という気もするのだが、逆にいえばこうしたものをきちんと整備しないとそのコアを使ってもらえない、ということでもある。単にCPUコアだけを作ってもダメで、そのCPUコアを利用するためのエコシステム(OSやソフトウェア、Toolchainの対応)まで考えないと、そのコアが成功するのは難しいということである。

 これは別にRISCに限った話ではないが、一般論としてこのエコシステムの整備には、CPUコアを作ることそのものの何十倍とか何百倍ものコスト(資金だけでなくマンパワーも含む)が必要になる。だから、それこそ冒頭のAdaptecのPhaseEngineのように、自社だけで使う場合には最低限のツールだけあればよいことになるが、これを広く使えるものにしようとすると、途端に難易度が上がる。

 現在も多数のRISCベースのCPU IPが流通しているが、いずれも命令セットが8051互換とかPIC互換とか、既にあるCPUの命令セットをそのまま使えるようにしているのは、要するにソフトウェアエコシステムに関しては既存の8051やらPICやら向けのものがそのまま流用できる、というのが最大の理由である。

 これが自動的に、32〜64bitのFreeなRISCコアがあまり存在しない理由にもなっている。32/64bitで、既に広く使われている命令セットと言えばx86/68K/ARM/MIPS/PowerPC/SPARC程度に限られる。そしてx86/ARMに関しては、命令セットこそ公開されているものの、これを利用して自身でコアを作ったり出来ないような工夫(その命令セットを利用しようとすると特許に抵触してしまう、など)が施されている関係で、なかなか乗り出せない。

 実際2000年にARM命令互換のRISCチップを発表したpicoTurboというベンチャー企業は、直後にARMから特許侵害で訴えられる。最終的にARMは2004年に1180万ドルを支払ってpicoTurboを買収しているという辺り、要するになりふり構わずARMの命令セットを守る気だったことがよく分かる。

photo
MicroProcessor Forum 2000で発表された同社のロードマップ。ちなみにARMの4つの特許(US5386563A US5568646AUS5740461AUS5583804A)をいかにして避けるかという説明もあった

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る