e200のアップデート
さて、次に実際のプロセッサコアについて見てみよう。昨年のレポートでも述べた通り、現在のFreescaleは6種類のPower PCコアを持っている。このうちPowerPC ClassicベースのものがMPC500/e300/e600、Power ISA 2.03ベースのものがe200/e500/e700となっている。ただe700に関しては、依然として製品がリリースされておらず、そういう意味ではハイエンド品がe600という位置付けになっている。
このうちMPC500/e300/e600コアに関しては、そもそもPowerPC Classicベースということもあってか、コアの内部改良といったことは行われていない。あくまでプロセッサコアのポートフォリオとして活用されるだけである。ただ意外なのは、Freescaleとしては早いタイミングでこれらPowerPC ClassicベースのプロセッサをPowerISAベースのものに置き換えるつもりがないということだ。これは、今年のMPF(MicroProcessr Forum)でe300コアを搭載したMPC5121eを発表したことでも明らかである。クライアントが要望すれば、引き続きこうした古いコアを提供する予定があるというのは、組み込み分野のマーケットでは重要なことである。
それはそれとして、e200/e500についてはもう少し細かなこと分かってきた。まずe200であるが、昨年の発表ではe200z6については内部構造などが明らかにされていたが、このz6はハイエンド品である。そもそもe200の場合、z0/z1/z3/z6の4つがあり、動作周波数も80MHz~475MHzまで広いレンジにまたがっている(図4)。この4つのコアの違いをまとめたものが図5になる。
実はパイプラインが7ステージなのはz6のみで、z0/z1/z3はたったの4ステージでしかない。どうしてこんなに差があるかというヒントは、完全に論理合成可能な形で提供されるという点にある。e200はソフトコアプロセッサとして提供されるため、端的にいえばファウンダリを選ばない。逆に言えば、どんなファウンダリの90nmプロセスでも300MHzを実現できるようにしようとすると、4ステージのパイプラインではタイミングがきつ過ぎると理解するのが正しいのだろう。それぞれのステージだが、z0/z1/z3は図6、z6は図7のようになっている。
ちなみにこの4つのコアの違いは、図5に示したものだけではない。z0/z1/z3はキャッシュレスになっている関係で、プロセッサバスの構造もやや異なっている。そもそもe200シリーズはプロセッサバスにAMBA 2.0のAHBをちょっと変更して使っているが(図8)、そのバス幅や転送方式も異なっている上、z0/z1/z3はキャッシュを持たない関係で命令バスとデータバスが分離されるという、あまり見ない構図になっていることが分かる(図9)。
![]() |
![]() |
図8 e300/500/600はもっと高速な専用バスを利用できることになっている |
図9 命令とデータを分離するハーバードインタフェースというのはあまり類を見ない。z1コアを使うMPC5510のブロック図を見ると、プログラム用に最大1Mバイトのフラッシュメモリ、データ用に64kバイトのSRAMが用意されるので、これを別々にプロセッサに接続しているということなのかもしれない |