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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

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

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

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

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

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

僕は、Verilog 書いてません。

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

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

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

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

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

全部作る

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

mist32 アーキテクチャ

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

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

アウトオブオーダー実行

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

独自の命令セット

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

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

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)

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

mist32 の目標

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

アセンブラとバイナリ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

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

ソフトウェアとか

gccふつーのコンパイラ

binutilsアセンブラとか

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

newlibちゃんと動いてない

gdb手付かず...

llvmやりたい

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

mruby 載せたい

UART (シリアル) ついてる

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

何かできそう。

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

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

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

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

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

責任の押し付け合い問題

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

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

● DMA 対応

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

DE3 用拡張ボード

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

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

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

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