自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会

Preview:

DESCRIPTION

Open Design Computer Project の説明を、FPGA ボードでプレゼンした。

Citation preview

自作コンピューターでなんかする(仮)

@hktechnoつくばの森に住み始めて 5年目

(但し、まだ卒業できてない)

未踏 2011 でなんかやってた。

最近全然違うことしてて辛い。

@cpu_labs がハードウェア担当してます。

僕は、Verilog 書いてません。

自作PC != 自作コンピュータ

本格的自作コンピューター

自作コンピューターというのであれば、CPU から作らなければ!

・命令セット・MMU・IOコントローラ

全部作る

mist32 アーキテクチャ

ハードウェアとソフトウェアの協調動作

OS を支援する機能をたくさん載せる

アウトオブオーダー実行

回路規模は大きくなるが速くなる

独自の命令セット

アウトオブオーダー実行に最適化

MIST1032ISAIn Order Execution : 6-StageDebugger Interface35000 Logic Elements(Altera Cyclone IV)

MIST1032SAOut of Order Execution : 9-Stage2-Issue / 4-Execute / 3-CDBRegister Renaming / Re Order BufferSpeculative Execution120000 Logic Elements(Altera Cyclone IV)

mist32 の目標

アセンブラとバイナリ00000470 <genrand_int31>:

470: 11 00 03 c0 push rbase

474: 11 00 03 e0 push rret

478: 18 00 03 c0 srspr rbase

47c: 0e e0 03 a0 lih rtmp,0x0

480: 0d 40 47 a0 wl16 rtmp,0x220

484: 20 70 03 e2 movepc rret,8

488: 14 40 03 a0 b rtmp,#al

48c: 08 30 00 01 shr r0,0x1

490: 12 00 03 e0 pop rret

494: 12 00 03 c0 pop rbase

498: 14 40 03 e0 b rret,#al

call

return

32bitaddr

ソフトウェアとか

gccふつーのコンパイラ

binutilsアセンブラとか

シミュレータ命令実行するだけコンパイラのバグつぶし

newlibちゃんと動いてない

gdb手付かず...

llvmやりたい

mruby 載せたい

UART (シリアル) ついてる

タイマーついてるとりあえずコンパイルできれば動くらしい。

何かできそう。

最終的に OS 載せたいけど、いつになるかな...

これからやろうとしてること

● Out of Order コアを動かす○ DE2-115 は諦めて、DE3 を買った

● MMU や割り込み・IO 周りのテスト○ 多分、バグが大量に出てくる○ ソフトウェアのバグなのか、ハードウェアのバグなのか、

責任の押し付け合い問題

● ベンチマーク取る○ 現状の Dhrystone の数値がおかしい(バグ?)

● SD カード対応○ スライドが現状13枚分しか入らない

● DMA 対応

DE3 用拡張ボード

詳しくはこちらhttp://open-arch.org/

(ググっても出て来ません)

https://github.com/technohttp://github.com/cpulabs

Recommended