603e vs 405
603e vs 405
603e は 0xFFF000100 から立ち上がる。0xFFF000000 からのオフセットで 0x2FFF までが割り込み・例外ベクターとしてリザーブされている。割り込み・例外種別によって 0x100 バイトとびになっている。ベクタと言うより、そこにちょっとしたプログラムを書くような構成だ。Z80 のようで、なんだか古い感じがする。その上、0xFFF000000 はリザーブだ。領域がもったいないぞ。
一方、405 は 0xFFFFFFFC から始まる。4 byte しかないが、ここにジャンプ命令を入れるようになっている。これもちょっと癖があるな。割り込みベクタは 603e と似たようなものだが、ベースアドレスをレジスタで設定できるようだ。
405 の MMU まわりも 603e とは違うみたいだぞ。PTE が柔軟になっているようだ。なんだよ。日本語の資料は少ない。それでも PowerPC の Linux とかが出回って、「使い倒す」なんてことが出来るのも、世界のどっかで 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 ではどうなっているのかね?