アダルト・ヴァイオリン May the force be with you..

2009年6月12日

【不定期連載】 UMLで16ビットCPUを作ろう:第4回 BIUのインタフェース検討

Filed under: Weblog — い~ぐる @ 4:40 PM


EUとBIUの機能を考えつつ、BIUとCPUコアのインタフェースを検討する。

一番、大きな検討課題は、x86では、ワードアクセスを奇数番地からスタートでき、その場合、2つのメモリトランザクションを起こして、まとめた16ビットのワードデータを命令が利用できる部分だ。このEUからは、単にワードかバイトの要求として、この部分をBIUで吸収する。こうしておけば、後日、BIUのマイナーチェンジで、8ビットバスオンリーのCPUも作成できる。

もう一つの検討課題は、命令プリフェッチである。ここに分岐予測を入れたくなるのであるが、まぁ、それは、後でも実装できるので、とりあえずは、CPUコアは、命令キューから1バイトずつ命令を取り出すように作っておく。

CPUコア側のつくりとしては、命令単位で取り出せた方が楽なのだけれど、BIUに命令解読はさせたくないので、一番単純に作っておこう。

という、概略の戦略を考えると、BIUのインタフェースは、図のようになる。

もちろん、実装方式は人によって違って当然であり、単なる例に過ぎないし、深く検討したわけではないので、抜けや考え落ちがあるかもしれないのは、重々承知である。

ところで、ArgoUMLは、とても便利なのだが、属性や操作を一度描いたら、その順序を交換する方法が見つからない。(ないのか?)後からきれいに整理することができた方が、設計図を描くツールとしては便利なのだが・・

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress