【コラム】
最低限の命令が定義されたので、ここで10進16桁の数値を加算するケースについてコーディングと性能を考えてみよう。
オペランドのアドレスはIX1、IX2、結果を格納するアドレスはIX3に格納されている状態からスタートすると、MJアーキテクチャのプロセサでは、
となる。ここでIX1++の形の表現は、インデックスレジスタを使用後+1することを意味している。また、ST命令で/CLAを付けたものは、アキュムレータの内容をストアし、その後、アキュムレータをクリアすることを意味している。
ここで書いた10進16桁の加算コードは、命令ROMの必要量は10バイトで、ループ1回の実行時間はRAMをアクセスするADD、ST命令が各11サイクル、DAA、INC命令が各8サイクル、JCN命令が16サイクルで、計67サイクルである。
一方、4004では、4002 RAMは10進16桁のMM文字を持っているので、これらの二つの16桁の数を足すプログラムを考える。それぞれの数値の最下位の数のアドレスはレジスタペア2と4に入っているとし、レジスタペア6に格納されたアドレスからの加算結果をRAMに書き込むこととする。また、これらのアドレスは全て同じRAMチップ内であり、その選択情報は既に4004のCMレジスタに格納済みであるとする。
この状態から加算を行うコードは以下のようになる。
このプログラムは、全体で命令ROMを14バイト必要とし、ループ1回の実行時間は96サイクルである。
つまり、 MJアーキテクチャと4004アーキテクチャのプロセサのハードウェア規模は同程度であるが、アーキテクチャの違いで、この10進16桁の加算の場合は、4004に比べて命令メモリの必要量は71%に減少し、ループボディーの実行性能は1.43倍に向上している。
また、4004のINCやISZ命令では4ビットのRレジスタをインクレメントしており、上記のプログラムでは4ビットレジスタからの桁上がりを考慮していないので、初期値がゼロでループ回数が16回以下の場合でないと処理できない。これに対してMJアーキでは12ビットのIXレジスタをインクレメントしているので、全メモリアドレス空間で問題なく動作するというメリットがあり、全体として、MJアーキと4004アーキの性能差は、この比較より大きいと言える。
このMJアーキテクチャは、設計時期が4004に遅れること35年であるので、その間の知見を加えてより効率の良いアーキテクチャが作れて当然であるが、この比較を見ると、やはり、4004の命令アーキテクチャはあまりうまく出来ていないというのは明瞭である。
【コラム】コンピュータアーキテクチャの話 第68回 4ビットプロセサのアーキテクチャ設計 - 性能を上げるには(1)
【コラム】コンピュータアーキテクチャの話 第66回 4ビットプロセサのアーキテクチャ設計 - MJアーキのタイミング図とブロックダイヤグラム
| ビールの"のど越し"感にはホップの香りが重要 - サッポロビールが発見 [09:00 5/18] |
| Linux Mint 15登場迫る [08:00 5/18] |
| 米Google、量子コンピュータ施設を開設 - 機械学習の研究に活用 [05:50 5/18] |
| 産総研など、夏季と冬季で太陽光を自動調節する省エネ調光シートを開発 [19:37 5/17] |
| 4連続の大規模な太陽フレア発生 [19:08 5/17] |
|
草なぎ剛「クドカンさんの渾身の一撃です」映画『中学生円山』 [12:00 5/19] エンタメ |
|
佐々木もよこ、"美尻"と称され「これからはプリプリしていきます!」 [12:00 5/19] エンタメ |
|
【連載】鶏むね肉の激ウマ料理 第19回 鶏むね肉でつくるハチミツチャーシューがおつまみにピッタリ! [11:30 5/19] ライフ |
|
これまで好きになった女性の共通点は? - 「貧乳」「年下」「150cm以下」 [11:30 5/19] 恋愛・結婚 |
|
クール教信者と琴葉とこがチャンピオンREDに読切で登場 [11:21 5/19] ホビー |