Home
2024年
2023年
2022年
2021年
2020年

4月29日 ICF3-ZとWZetaの両方で走るバイナリ

WZetaの開発がまだなので、まだあまり言えることではないのですが、 ICF3-ZとWZetaの両方で走る仮想マシンを作れば、両方のCPUで同じアプリが走ることになります。 どちらもハードによる仮想マシン支援機構があるのでソフトウェアだけで仮想マシンを実装するよりも高速です。
ICF3-Zの支援機構の制約は、奇数アドレスに分岐できないこと。 WZetaの支援機構の制約はICF3-Zが128命令定義できるのに対し64命令まで。 両方の制約を満たす仮想マシンを作れば、どちらのCPUでも動作する仮想マシンになる。 2バイト固定長の命令セットで上位バイトが6bitのオペコード、 下位バイトが8bitのオペランドという形式である必要があります。
C言語などのソフトウェアで仮想マシンを作ればARMやRISC-Vでも動作するというようなことが、 できるのかも。どのくらいのメリットが出るのかは、作る人が考えないといけないかもですが。


4月29日 40年前の8bitパソコン、コモドール64

雑談。GIGAZINE記事 「コモドール64でビットコインをマイニングする猛者が登場、1ブロック解析にどれだけかかるのか?」 僕が中学生の頃、コモドールと言えばVIC-1001がBASICマガジンにゲームが掲載されていたので 知っていたのですがコモドール64は覚えてないのですが世界的には良く売れたマシンのようです。
CPUは8bitの6510、仕様を見る限りファミコンの6502と、ほぼ同じようです。 メモリが64KB RAM + 20KB ROMなのですが、ちょうど超軽量8bit CPU 新型WZetaでパソコンを 作った場合と同程度という感じだったので、ついつい、日記に書いてしまいました。
6502と言えば日本でもFPGAに実装している方も何人もいると思いますが、 OpenCoresにXilinxのFPGA Spartan-3Eで実装した 6502がありました。
Flop Flops: 93
LUTs: 978

WZetaは、まだゲートレベルの設計図が完成したところなので、正確な見積はできませんが、 Flip Flopsは130を超えるかもしれませんが、4入力LUTの数は下回る予想。 LUTの見積精度はあまりなくて0.5~1.5倍くらいの幅がありそう。
大雑把に言えば、6502とWZetaは同程度の規模と言えそうなので、 6502はWZetaの比較相手にちょうど、よさそう。
WZetaのFlip Flopsが多くなってしまったのは、利用者定義命令の機能や、 ゲート段数を減らしてクロックを高周波数にするための相対分岐アドレスの事前計算。 プログラミングはWZetaのほうが、しやすいと思う。 WZetaをXilinxのFPGAに実装したら、比較できる6502(6510)があれば楽しいかも。


4月28日 パソコンのトラブル発生、OS再インストール

頭や体にトラブルを発生させるよりパソコンにトラブル発生のほうが簡単ということかも。 ヤフオクで購入したジャンクのマザーボードですが良く動いていたのです。 SeaGateのHDDが、またもやスピンアップ音を繰り返しながら、読めたり、 読めなかったりするので、同じくSeaGateのHDDに交換。 その後、KingStonのSSDが認識できなくなったり、MarvellのSATA PCIeカードが 故障の原因であるかのように現象が発生した。 どうもARMのCPUが搭載されているようです。
結局、Windows10を再インストールするハメになって時間を無駄にしました。


4月28日 WZetaにマルチタスクの機能

超軽量8bit CPU WZetaの新型を開発中ですが、先日公開のβ版の命令セットに マルチタスクができる機能を入れてみたつもりです。 例えばIoTのCPUとして使われた場合、測定データのRSA 2048bitの電子署名を要求すると、 数分間、署名計算をすることに多分なるのですが、計算している間に 測定データの採取ができなくなることが起きます。 マルチタスク機能があれば、署名計算中に測定データの採取が必要になったところで 割込みで測定データの採取のタスクを起動できます。

AES暗号のほうが計算量が少ないのですが鍵の管理コストが問題になります。 サーバもLinuxで動作する場合が多いため。AES暗号とRSA(楕円)の併用ができれば システムのコストを削減できるかも。


4月26日 メモリモデルTINYを追加

一昨日、8bit CPU WZetaの命令セットを公開しましたが、安全性を考えて 1つのメモリでプログラム領域とデータ領域を分けていました。 プログラム領域とデータ領域を重ねるメモリモデルTINYを追加。 より小さいメモリ(SRAMなど)で済むので原価低減できます。
MS-DOSの時代はC言語でプログラミングをするとき6っつのメモリモデルから 一つを選択する必要がありました。TINY/SMALL/MEDIUM/COMPACT/LARGE/HUGEです。 ネットで検索しても、あまり見つからないので、少し驚き。 C言語でプログラミングを始める人は、必ずこの6っつのメモリモデルを 学習しているはずなので。気合いを入れてネット調べればまだ見るかるので、 詳しくは書きませんが、プログラムとデータのサイズをどうするのかを決めるため のものです。SMALLはプログラム64KB、データ64KBです。 当時の大学のプログラミングの課題は、だいたいこれで済んでいたと思います。 LARGEはプログラムもデータも64KB以上が使えるメモリモデル。 HUGEも、そうですが、64KB以上を扱うことができるHUGEポインタとかが、 当時の話題だったような。TINYはプログラムとデータを同じ64KBに入れるモデルです。
ちょうどMS-DOS時代のメモリモデルTINYに似ているかもと思ったのでTINYという 名前にしてみました。


4月24日 暗号プロセッサSnakeCubeの状況

SnakeCube の脅威となる可能性があるベクトル演算器や 85万コアのウェハサイズプロセッサ「WSE-2」(PC Watch記事) などが話題になっているかもしれません。 SnakeCubeはベクトル演算器と比べて効率が高く、 鍵が非常に大きくなっても演算できるのでSnakeCubeの優位は 変わっていないと思っています。効率の話は具体的なデータがないと、 優位性が失われるということが難しい。 SRAMのスループットの大きさを示すものが多いのですが SnakeCubeの演算コアにSRAMのスループットは関係ないため、 SRAMのスループットが影響するようなものとは比較にならないかもしれない。
僕以外の人のSnakeCubeを開発していれば、それは海賊版です。


4月24日 8bitCPU WZetaの命令セットアーキテクチャ初公開

ツイッター広告で、ちょっとだけ宣伝してみることにしました。 シミュレータによる検証が完了するまで公開を控えるつもりでしたが、 現在開発中のWZetaのSDogコアの設計資料β版として公開。 公式サイトのトップページにPDFファイルを置きました。


4月23日 超軽量8bit CPU WZeta作業報告

ツイッターのTL上にRISC-Vのオンラインイベントの案内があったので、 何の気なしに参加登録をしたのだけど、結局、お昼休みだったので1秒も発表を 見ることができなかった。
新型WZetaですが8bit加算器1個で剰余演算を高速&省メモリに演算できるような 命令セットにしました。RISC-V向けの暗号プロセッサとして考えられるかもとは、 思っていました。小型のRISC-VよりもWZetaは小型ですからチップ面積を小さくして 原価低減する目的に使えるので。 ノイマン型アーキテクチャなのでRAM1個なので面積を小さくすることができる。
ただWZetaは税金を使わないことを方針としているので税金関係ない方でないと、 難しい。
本日の作業報告になりますがアセンブラの開発をしています。 この後、シミュレータができると、シミュレータでRSA暗号の演算をしてみること ができます。それを確認してから命令セットのRC版を公開することは できるかもしれない。
産業スパイによる妨害で全身痛になり数時間、倒れているので、 作業時間が減少しています。連日のことでは、ありますが。


4月22日 超軽量8bit CPU WZeta作業報告

verilogよりもWZetaのシミュレータの開発を先にしています。 まずアセンブラを作っていますが、これまでのICF3-Zや旧WZetaのアセンブラよりは、 もう少しまともなものを作る必要があるので、まともに作る方向に。
微弱ながら産業スパイによる妨害は続いています。作業時間が減少しています。 微弱とは言え健康被害がないとは限らない状況。


4月21日 農業用IoTセンサーは回収を前提に

土に返るIoTデバイスを研究している方もあるようです。 このため農業用IoTセンサーに向いたCPUを作り始めただけでZ80入りの野菜を 誤って飲み込む危険性が発生しています。 RISC-Vの小型IoTエッジデバイスを研究されている方も 注意をされたほうがいいかもしれません。 食べ物は、一口で食べずによく噛んで食べましょう。 農業用IoTセンサーは回収を前提にしましょう。


4月19日 超軽量8bit CPU WZetaのメリット

WZetaのメリットは何なの?と思う一般の人向け。一言で言うのは難しいのですが、 同じく8bit CPU ICF3-Z だとトランジスタ数当たりの性能が非常に高い除算。ICF3-Zを並列化したマイコンが 電気自動車の電磁波対策として信頼性を高くするメリットがあります。 ただマシン語が一般のCPUと違うので、慣れないと難しい。

WZetaは、一般的なCPUの命令セットに近く習得が容易です。 プログラムを8bit単位の逆順で処理することを考慮した命令セットです。 CPUをパイプライン化すること無く、少ないトランジスタ数で高速化できるという大きな特長があります。 (多分、世界初。パクっていることが命令セットに出るので海賊版を作りにくい) これから街や農地にセンサーが大量に配置されるとメディアが報じています。 センサーから得られたデータをクラウドに送信する用途に最適です。 またセンサーモジュールにCPUを付けて、Linux搭載IoT機器と暗号通信をさせることは 必要になると思います。超軽量なCPUが原価低減効果につながります。 地球環境をセンサーで調査して、その結果から税金が必要と言う人は出てくると思われます。 CPUが無いと、後で調べたらLinuxが改竄していたということが起きるかもしれないのです。 Linuxが絶対信用できることを保証するためには、国家予算クラスの税金が必要になるように思います。

WZetaの設計は暗号プロセッサを開発した経験がある僕なので、少ない命令数の中に、 漏れなく暗号、署名の高速化に役立つ命令が入っています。乗算器の無いCPUでも、 剰余演算が高速かつ省メモリで出来ます。剰余演算は楕円暗号の高速化に役立ちます。 楕円暗号などの計算ができれば、ゲートウェイを経由することなく、クラウドに 直接通信することが可能かもしれません。 楕円暗号用のチップを基板から1個、削減することができるかもしれず、 そうなれば原価低減効果の大きなものとなるように思われます。

WZetaのSDogコアを現在、開発中です。従来マイコンのCPUの多くが ハーバードアーキテクチャなのですがSDogはノイマン型アーキテクチャです。 ハーバードではプログラムとデータの2個のメモリが必要になるため、 プログラムとデータのメモリ容量の組み合わせが発生しますが、 ノイマン型アーキテクチャでは大きなメモリ1個にして、アプリによって プログラムとデータの配分を決められるため生産上の利点があると思われます。
SDogについて言えばプログラムとデータを1サイクル毎にアクセスするため、 ハーバードアーキテクチャのように扱うことも可能。ハーバードで フラッシュメモリのバースト転送を直接、CPUに接続するSRAMに行えば、 製造原価低減の可能性があるような気がします。

WZetaは命令セットがわかりやすく汎用的に設計されているので、 8bit CPUのRISC-Vと考えることもできます。 そして税金を使わないことを方針としているため、性能があまり必要ない 用途では、まずWZetaを考えるのが、いいというようなCPUになると思います。


4月18日 超軽量8bit CPU WZeta作業報告

産業スパイによる妨害で作業時間が減少しています。 論理ゲート図面が完成しました。verilogを急ぎたいところですが、 verilogのファイルが完成したところで、 正しく動作しているのかを検証するシミュレータを開発するとverilogを 忘れてしまうので、先にC言語によるシミュレータの開発に着手することに。


4月16日 現世代の8bit CPUとの比較

雑談レベルの話として読んでもらえればと。 ネットに落ちているIntel 8051(MCS-51)の仕様なので、 また意地の悪い人たちが改竄しているかもしれないですが、 新型WZetaとの比較で目立つのは8051には128バイトの内臓SRAMがあるという点かも。 これでASICではトランジスタ数がかなり違うので新型WZetaと比較をされるのは厳しいかも。 トランジスタ数を少なくすることを重視したFPGAによる 互換実装(light52)があるので、 新型をXilinxのFPGAに実装すれば、詳細な比較ができるでしょう。 light52のドキュメントを読むとトランジスタ数当たりの性能より トランジスタ数の絶対数を小さくしていると書いてありました。
1命令を処理するのに必要なサイクル数は平均で6サイクル。 WZetaは4サイクル固定です。まだWZetaの実装はできていないのですが、 僕の予想はlight52の半分以下とか、3分の一以下。 WZetaは乗算、除算命令などがなかったりするので、当たり前といえば、当たり前かも。
8bit CPU AVRとの比較でも、やはり8bit×32のレジスタがトランジスタを 多く消費していると思います。 8051と違って内臓SRAMではなくレジスタファイルによる実装で SRAMよりも高速な作り。乗算器も持っています。
WZetaは僕が設計しているCPUということもあって、WZetaの少ない命令の中に RSA暗号や、楕円暗号の性能に役立つ命令が漏れることなく入っている当たりが、 WZetaのいいところかも。普通の自作CPU屋では、 乗算器のないCPUで公開鍵暗号を高速化できる方法を知っていることはないと思うので。


4月16日 超軽量8bit CPU WZeta作業報告

ここ数日は妨害の量が増加して作業速度が10%に落ちています。 論理ゲートの図面は、かなり完成してきて各命令が正しく動作するのか、図面を見ながら、 これから確認する段階。8bit CPUのICF3-Zの論理ゲート図面は ネット上で公開しています。 これと新型WZetaを比較するならデータ系のブロックは同程度の絵になっています。 制御系のブロックはICF3-Zが、やや詰め込み過ぎで論理ゲート図面と言うのが 難しくなっていますが、新型WZetaのほうは論理ゲート図面なので、 わかりやすい設計図になっている。
この論理ゲート図面で約70命令が解釈され実行されるのだと自己満足している。
70命令といってもAND命令が3個で計算されるような命令数。


4月15日 超軽量8bit CPU WZetaのメモリ効率について

まだ論理ゲートの図面を作成段階で命令セットアーキテクチャ(命令コード) の仕様も公開していないのですがWZetaの弱点を事前に検討して対策を考えているところです。 一般的なパイプライン化されたCPUにはない、メモリアクセスの特性がメリットにならないか? というような話です。
トランジスタ数を少なくすることを設計方針とした超軽量CPUなので、 命令数が少ない。このためプログラムメモリの効率が悪いのです。 超軽量CPUの宿命とも言えます。 CPUの製造原価を下げても、メモリの原価が上がれば意味がなくなるという問題。
WZetaには一般のCPUには、あまり見かけない利用者定義命令があります。 この機能をうまく活かせばプログラムメモリの効率が上がるのですが、 アプリケーションによって効果がまちまちです。
ノイマン型にして1つのメモリでプログラムとデータを共用することで、 原価低減を考えています。共用のメリットにはアプリケーションによって、 プログラムとデータの割合を変更できることがあります。 SRAMだけを考えれば、これでも効果が期待できるのですが、 現実は、安価なフラッシュメモリとSRAMを組み合わせる場合が多いので、 フラッシュメモリとSRAMのI/Fも考えなければ原価低減にはならないかもしれない。
WZetaの1実装である現在設計中のSDogコアは偶数サイクルはプログラムメモリ、 奇数サイクルはデータメモリへのアクセスと綺麗に分離されている。 この特性が、以外にメリットになるのではないかと思っています。 マイコンの設計現場にいたことはないので、多分そうだと思ているという意味。 2つのSRAMをプログラムメモリ、データメモリに分けます。 プログラムメモリのSRAMでは奇数サイクルがすべて空いているので、 ここにフラッシュメモリの転送を入れると簡単な回路になるので、 すぐに実装できます。
同じようにデータのSRAMも偶数サイクルがすべて空いているので、 センサーなどから得られたデータを、無条件にSRAMに書き込んでいくのに 便利です。


4月13日 WZetaは「逆転の発想」

日清のカップヌードルのように超軽量8bit CPU WZetaは「逆転の発想」 によって生まれたみたいな売り文句を思いついた。
8bit CPUについてネットで調べていると、あの任天堂のファミコンのCPU 6502は 大阪の池田市で製造されていたとあった。1999年のICF3を開発したあと池田市を 案内してもらったことがあるのだけど、このときは日清のカップヌードルミュージアムに行った。 カップラーメンを製造するときに麺を上からいれるのではなくカップを上からかぶせる という「逆転の発想」がいいのだというアトラクション があるようです。
6502と比較できる程度の8bit CPU WZetaは、命令コードを逆順で処理できるようにすることで 非常に少ないトランジスタ数で高性能が出ます。
正に「逆転の発想」、日清のカップヌードルのような売り込みができる、とか思っただけ。


4月11日 超軽量8bit CPU WZeta作業報告

作った命令セットに従って論理ゲートに近い図面を作成中。 WZetaはトランジスタ数の削減のためスタック機能のハードがありません。 ソフトウェア的にスタックを作れる機能はありますが、遅いので、 BAL命令を作りました。名前はIBMの大型コンピュータのBAL命令から 取っています。分岐するときに返ってくるアドレスをレジスタに 保存しておくというもの。スタックの前世代的な方法かも。


4月10日 超軽量8bit CPU WZeta作業報告

憤りならが青ざめている状態なので作業は少しずつしか進んでいませんが、 良好な出来具合なので僕の期待が大きくなっています。
この新型WZetaをコアとしたマイコンが実際に家電などの組み込まれ 原価低減につながること期待しています。 例えば10円の原価低減になれば100万台売れる家電では1000万円になるのです。 多くの人は、これにARMのライセンス費が上乗せされて、 もっと利益が出ると考えている人もあるようです。
ARMのライセンス費については、僕は良くわかっていません。 WZetaはApache License 2.0なので僕に、 お金が入ってくる方法はあまりないので、ARMのライセンス費問題だけが、 僕に降りかかってくるのは、割に合わないと思っているので、 ARMの人がApache License違反を発見するのは、ちょっといいかなとか。
WZetaが多くの人に役に立つものになればと思っています。


4月9日 鳥人間コンテストの期待審査

早稲田ローカルな話かも。 第43回鳥人間コンテストの出場権を獲得したみたいなツイートを見かけたので。 まずはおめでとうございます。かな。
僕が早稲田大学で初めて飛んだ機体のプロペラを開発した人だということを 知らない人もいるかもと思って書いてみた。 さらに、その後、5年くらい後輩に抜かれなかったという。 伝説になっているよね。
記録は滑空機よりも飛んだというレベルだったけど(笑)

僕は2代目のプロペラ班の班長。1人班。 このころも1人で仕事する人だったという。 ちょっとだけ手伝ってもらった人もいるけど。
プロペラ作り地味で大変だったけど、 こういった自慢話はができたことは良かったかもと。


4月8日 超軽量8bit CPU WZeta作業報告

WZetaの命令セットを論理ゲートレベルに近い設計図にしています。 これからXilinxのFPGAに実装する予定ですが、ICF3-Zよりも規模が小さくて、 シンプルな構造なのに良く動いて効率がよくて、命令セットがわかりやすいので、 世界的に普及することが(僕は)期待できています。
CPUはパイプライン化をすれば性能が上がりますがレジスタが多くなければ 十分な効果を得られません。レジスタはトランジスタ数を多く消費するので、 ASICでは規模がかなり大きくなるのです。WZetaは逆順ができる命令セットによって メモリアクセスの効率が大幅に上がったためメモリをレジスタのように使います。 汎用レジスタは2個しかありません。 またWZeta(SDogコア)は8bitバスのノイマン型アーキテクチャであるため8bitバスのメモリ1個で動作します。 制御系のプログラムでは本格的なスタックでなくても問題がないので スタック機能を省いてトランジスタ数の削減しています。 またソフトウェアでのスタックが高速になるような命令を追加しています。

つまり、そこそこCPUの製造原価を削減できると考えています。 参考までに多くのマイコンはノイマン型ではなくてハーバードを選択しているようです。 ハーバードではプログラムとデータで2個のメモリを使います。

ライセンスは、旧WZetaと同じApache License 2.0を考えています。
ライセンスについて詳しくありませんがMITライセンスよりも扱いが いいと思っています。書籍で取り上げるのに便利だと思っています。 Apache License 2.0では開発者本人がメリットを得るのが難しいので、 僕への経済封鎖的な行いには、参加していただかないなど、ご協力が 得られることを期待しています。

産業スパイによって1日、眠らされていました。 このため、あまり作業は進んでいません。産業スパイは問題です。


4月7日 超軽量8bit CPU WZetaの命令セットの特長

新しいWZetaの命令セットの特長は2つあります

(1) 16bit固定長の命令コードで8bit単位の逆順でも送信が可能なこと
(2) オペランドだけで相対分岐アドレスが事前計算できることなどがあります

一般的な5段ステージの正順でも命令セットを改良すればデコードの タイミングで分岐先を決定できるようにすることも出来ます。 WZetaと同じ周波数、4サイクル固定ピッチができるのではないかと思います。 (1)の逆順だけのWZetaのメリットは1命令でリード、ライト2回のメモリアクセスが可能なこと。 ということになります。
そして、この1命令で2回のメモリアクセスが可能な場合、次のような典型的な演算で、 3命令が2命令になるメリットがあります。
[mem2] = [mem2] + [mem1]

正順ケース
MOV A,[mem1]
ADD A,[mem2]
MOV [mem2],A

逆順ケース
MOV A,[mem1]
ADD [mem2],A


トランジスタ数削減のためレジスタ数を1、2個にしているようなCPUでは 演算した結果をレジスタに貯めておけないので、これは効果的です。
そしてこの演算は多倍長加算、減算で便利です。 1024bitの加算では128回の8bit加算を連続ですることなるので。
多分、楕円暗号を効率的に演算することに威力を発揮します。 製造原価の安い楕円暗号チップを作れるかもしれません。 暗号資産(仮想通貨)のハードウォレットなど。


4月7日 超軽量8bit CPU WZeta作業報告

WZetaの命令セットは16bit固定長です。低コストな実装を可能にするため 8bit単位でプログラムを送信することができます。 そしてWZetaは逆順でも送信できることを考えた命令セットになっています。 逆順のデメリットはあったのですが、思っていたよりも 大きなメリットがあり、超軽量なCPUではデメリットが影響しないという状況です。
一般的なCPUで考えるならば逆順のデメリットがないことを確認するための 検証コストが大きく、しかも必ず良い結論が出るとは限らないため、これまで考えられなかったのだと思っています。
WZetaは従来アーキテクチャよりも効率的であることが設計段階で示すことができるため、 場合によっては世界中に広まる可能性もあるだろうと思っています。
世の中、良い方向に考えられるようにと思っています。


4月6日 超軽量8bit CPU WZeta作業報告

頭痛で能力が低下した状態なので、作業は少しずつしか進んでいませんが、 順調に設計図が書けています。僕が暗号演算に詳しいせいで命令セットにそれが、 透けて見えそう。産業スパイの妨害が続いていて問題と思っています。


4月3日 TTL CPUの話

TTL CPUですが、反社会勢力に利用されることを懸念する声があるようです。 WZetaのTTL版は、当面、凍結します。


4月3日 軽量CPUアーキテクチャ

一般的なCPUアーキテクチャが、全領域で最高性能ということではない。という話かも。 軽量なCPUの設計は、今回で3回目になる。この経験からわかってきたこと。
一般的なCPUアーキテクチャは1命令を5つのステージにわけて処理をする。
F(フェッチ)-D(デコード)-E(実行)-MA(メモリアクセス)-WB(ライトバック)

パイプライン化をしなければ1命令で5サイクルかかることになる。 しかもF-D間が1サイクルということは、メモリアクセスの性能を十分に活かしていない。 パイプライン化をすれば1サイクルピッチで処理できる場合もあるが命令列によって、 メモリアクセスの競合などのハザードが起きて実質的には1命令の実行に数サイクルかかる場合もある。 そして、その制御論理の設計が複雑になるため自動化のツールが発達した。

軽量なCPUに限ったことになるのかもしれないが、WZetaの オペランドの投機的実行は、こういった状況を覆すかもしれない。 8bitバスで命令コードを2回送信する場合にオペランドを先に送信する方法。

F(フェッチ)-MA(メモリアクセス)-e(分岐実行)-E(実行)
この4ステージになる。そしてメモリアクセスの帯域まで高速化をすれば、 デバイスに依存する問題だが、ざっくり一般的なCPUアーキテクチャより高周波数になる。 これが仮に1.3倍だとすれば4サイクルの固定実行でも 5段パイプラインCPUに換算すると1命令3サイクルになる。

パイプライン化することで性能と引き換えに、様々なデメリットが発生するが、 WZetaは命令を逐次実行するため、様々なデメリットがなく、簡潔な構造でありながら、 そこそこ速いということが、設計段階でわかる。


4月2日 任天堂ファミコンのCPUの選定の話

8bit CPUを設計しているのでファミコンのCPU 6502の話をネットで見るようになりました。 好きな人にとっては面白いと思います。Z80より安いという理由は以前から知っていましたが、 画像プロセッサと相性がいいということもあったとネット上の記事にありました。

「第4回『ファミコン』のCPUは・・『上村部長』の決断 ? 『ファミコン』誕生物語
https://kopenguin.com/post-1994/

画像プロセッサと相性がいいというのは、どういうことなんだろ?

僕が今、設計している超軽量8bit CPU WZetaはノイマン型アーキテクチャを採用。 プログラムとデータを同じメモリ上に置けるのでメモリ1つで安価になると思っています。

そして、もう一つ、構造の単純化を推進した結果、 メモリアクセスのパターンが固定になっています。 一般的なパイプラインプロセッサはメモリアクセスがない命令は、 早く切り上げて次の命令の実行に移るようにして高速化をするのです。

WZetaは、いまのところ全ての処理のメモリアクセスが固定です。 プログラムのアクセス50%、データのアクセス50%でメモリの帯域を 使い切っています。これでプログラムをROM、データをSRAMに分けると、 画像プロセッサが固定サイクルでアクセスすれば1ポートのSRAMを CPUと通信することなく、使えるように思ったのです。
6502がどうして相性がいいのかは、わかりませんが、 画像プロセッサが固定サイクルでアクセスできれば1ポートのSRAMで、 いいというのは、ハードを安価にするのには、役に立つかもと。

20:45追記
センサーからのデータをバッファを介さずに、データを取得して、 すぐにSRAMに書き込めるのは、いいかもという話。


4月2日 超軽量8bit CPUでTTLパソコンとか?

8bitレジスタが2個しかない超軽量8bit CPUを設計中。 8bitレジスタが2個しかないけどコンパイラなどのソフトウェアが作り易く、 TTLでCPUを作れる規模になってきたのでTTLパソコンが視野に入ってきた。
人によっては強い需要があるものだと思っています。 これまでのものより、良いものになりそうな気がしているのでTTLパソコン、 いけるのではないだろうかと思っています。
ワイヤードロジックで設計を進めていましたがTTL CPU版では マイクロコード方式にして部品点数を減らそうとしています。
命令セットを使って新しい命令を作れる機構がついています。 ミリコードという名前で呼んでいます。IBMがそう呼んでいたので。 これでコンパイラに必要な命令を作れます。このためにプログラムカウンタを、 もう一つ、増設するつもりでしたが、作った新しい命令を実行した瞬間に 割込みを入れて、プログラムカウンタをソフトウェアでメモリに 退避する方法にしたので、ここでも部品点数を減らすことができそうなのです。
性能のために相対分岐アドレス計算用のプログラムカウンタもあったのですが、 これも削減します。
非常に小さいハードコアにマイクロコード、ミリコードを付加して、 人にわかりやすい命令セットを作ることができて満足している状態。
少ない基本を組み合わせて多彩な機能を作れるアーキテクチャを趣向する人 に受けてもらえるのではないだろうかと、思っていたり。 ただTTL版もFPGAで動作確認するところまでだと思いますが、FPGAでの実装状況を待ちましょう。

更新情報


暗号プロセッサ OpenICF3