ELM Home Page

1997. 12. 2
Last update: 1999. 4. 24

組み込みマイコンレース


昔、インテル互換の486系CPUが登場した頃、プロセッサのスピードについての話題にBBSが沸いたことがありました。ベンチマークプログラムも数多く作られ、様々な環境でのスピードについての情報が多く集積されていました。しかし、パソコンでのベンチマークの値などは、ベンチマークに燃える一部のオタク達が一喜一憂する為だけの身の無いものといえるでしょう。

実際、パソコンのようにプロセッサの性能に十分に余裕を持って使われていて、処理の遅延が致命的な問題にならないようなものにはあまり意味の無い物です。それなどよりむしろ、プロセッサの性能をギリギリまで引き出して、なおかつリアルタイム処理が要求されることの多い、組み込みマイコンの性能についての情報の方がよっぽど有意義というものです。しかし、それらのマイコンには共通のプラットホームが無いため、ベンチマークの類を見かけることはありません。

そこで、いろいろなマイコンに共通の処理を行わせて性能比べをしてみようということを思い付いたわけです。

【テストするマイコン】

今回新たに V53が加わりました。幸いなことに、わたしが最近製作したボードマイコンは、共通のボードを制御できるように全て同じインターフェースを設けてあります。したがって、これらのボードマイコンを利用してテストすることにしました。今回テストに供するのは次に示すものです。

μPD70325(V25+)

NECの8ビット1チップマイコン。コアCPUは、V30バイナリコンパチブル。8086系マイコンで、DOSの開発環境が使えるということで、出た当時はちょっとした話題になりました。今回は、V25の改良版である V25+を使用しました。

μPD70236A(V53A)

NECの16ビット1チップマイコン。コアCPUは、V33Aバイナリコンパチブル。これも 8086系命令セットを持つマイコンです。

KL5C8012

川崎製鉄の8ビット1チップマイコン。リリース当時は業界にちょっとした旋風を巻き起こしたマイコンです。コアCPUは、Z80バイナリコンパチブルですが、最新の半導体技術を適用して大幅な性能アップが図られています。

TMPZ84C015

Z80ファミリのセカンドソースである、東芝のTLCS-Z80シリーズのうち、いくつかのZ80ファミリを1チップに集積したものです。基本的にピュアなZ80。

【テスト条件】

それぞれのCPUを載せたボードマイコンに汎用CRTコントローラを接続してグラフィック描画性能を計測してその結果を比較します。描画ルーチンはアセンブラでカリカリに最適化して、それぞれのCPUが最高の性能を発揮するようにしています。そして、計測する処理は、ランダム直線補間とランダム矩形塗りつぶしとし、それぞれ単位時間内にこなした処理数を取ります。

【テスト結果】

テストの結果を右のグラフに示します。ランダム描画を実行させて、1秒当たりの描画ドット数をスピードとしグラフにしています。上段が直線補間で、処理の大半がドットを打つ位置の計算に費やされます。プロセッサの演算性能が素直に反映されるテストです。下段は矩形塗りつぶしで、VRAMに対して大量のデータを転送します。演算性能に加え、バスの転送効率も強く影響します。


結果1

結果2

ウェイト数によっても結果に違いが出ることが予想されていましたので、ウェイトコントローラを内蔵していないTMPZ84C015以外については、異なるウェイト数でも計測してみました。ウェイト数はプログラムメモリに対するウェイト・ステート数です。ワークRAMアクセスについては全ての条件でノー・ウェイトとなっています。

ただ、実際には0ウェイト動作はアクセスタイミングの点で実際のシステムでは非現実的ですので、★印の値を代表値とするべきでしょう。なお、VRAMへのアクセスにおいては表示アクセスとの調停のため、0〜3クロックのウェイトが挿入されています。

【考察】

予想通りというか、KL5C8012は圧倒的な性能を示しました。その反面、V25は思ったほど性能は上がっていないようです。中には Z80といい勝負といった点も見られます。確かに以前から V25は遅いとは思っていたのですが、Z80並とは意外なことでした。

一方、V53Aは矩形塗りつぶしでは圧倒的なパワーを見せ付けました。バスの転送効率がきわめて高いことを示しています。これは、データの連続転送に 8086系特有のストリング操作命令を使用したからかと思います。同様に直線補間で Z80並だった V25も Z80の倍程度になっています。

ウェイト数による性能の違いでは、KL5C8012での大きな落ち込みが目立ちます。このCPUは、CPI値を減らすことにより高い性能を実現しています(最低1命令1クロック)。しかし、このことはウェイトの挿入が性能に大きな影響を与えてしまうという弱点となり、テスト結果もそれを裏付けたものとなりました。V25では、それほど低CPIでもなく、命令キューを持っていることもあり、それほどウェイトの影響は大きくないようです。

ノーウェイトを実現するに当っては、プログラムコードをRAMに転送してそこで実行するという方法を取りました。実際のシステムでは、これは非現実的ですので、1ウェイトの値を通常とみなすべきです。

また、マイコンの処理性能は演算速度が全てではありませんので、この結果だけで判断できるようなものではありません。割り込み応答時間や、タスク管理機能の有無なども含めて総合的に判断する必要があります。今回の結果は、単なる目安としておいた方が良いと思います。

Sign