603e vs 405

603e vs 405

603e は 0xFFF000100 から立ち上がる。0xFFF000000 からのオフセットで 0x2FFF までが割り込み・例外ベクターとしてリザーブされている。割り込み・例外種別によって 0x100 バイトとびになっている。ベクタと言うより、そこにちょっとしたプログラムを書くような構成だ。Z80 のようで、なんだか古い感じがする。その上、0xFFF000000 はリザーブだ。領域がもったいないぞ。
一方、405 は 0xFFFFFFFC から始まる。4 byte しかないが、ここにジャンプ命令を入れるようになっている。これもちょっと癖があるな。割り込みベクタは 603e と似たようなものだが、ベースアドレスをレジスタで設定できるようだ。

405 の MMU まわりも 603e とは違うみたいだぞ。PTE が柔軟になっているようだ。なんだよ。日本語の資料は少ない。それでも PowerPCLinux とかが出回って、「使い倒す」なんてことが出来るのも、世界のどっかで Linux のカーネルを一生懸命書いている人がいて、使う側は、コンパイルするだけ、、、だからだろう。

しかし、これでは日本の技術の将来が思いやられる。ちゃんと整理して書いていかないとね。

APU インタフェース

今頃気がついたが、EDK 6.3 の document.htm の最初のページ「PowerPC 405 Processor ISA Extensions for Virtex-4」なんてのがある。なんだ、もう資料があるじゃないか。vhdl にもそのインタフェースがある。簡単に作ることが出来るのだろうか?405 の Core はもともと APU のインタフェースがあったみたいだ。今までは Wrapper が隠していたに違いない。
IBM PowerPC ISS Reference Guide」とか面白そうな記述もある。

PowerPC Processor Reference Guide」

507 ページもあるが、、、読み進めていかなねばなるまい。かなりしんどそうだ。とりあえず、BAT が無いことはわかった。MMU は一本化されたと、、、効率化のために同時にアドレス変換をする、、、なんてのは複雑すぎるでしょう。Power5 ではどうなっているのかね?