システム情報工学研究科 産学間連携推進室
情報学群 情報科学類 川田裕貴 伊藤剛浩


                   独立行政法人 情報処理推進機構
          2011年度未踏人材発掘育成事業 採択プロジェクト
Open Design Computer?
No Intel.
No ARM.
No MIPS.


The "mist32" Architecture.
All new open design processor.
プロジェクトの特徴

再利用可能な状態でソース・仕様を公開
 プロセッサの HDL は BSD ライセンス

開発ツールを一通り揃える
 製品利用する際に無いと障壁になる

モバイル機器に使われるようなものを想定
 OSが乗ったタブレットやスマホなど
mist32 アーキテクチャ

アウトオブオーダー実行
 回路規模は大きくなるが高速化できる

ハードウェアとソフトウェアの協調動作
 OS を支援する機能を多く載せ高速化

独自の命令セット
 アウトオブオーダー実行に最適化
命令レベル並列化・OSの支援

少ないハードウェアでOoOを実現
  フラグの見直しにより命令間依存を軽減
  Rob/Rs/CDBの小型化が実現

OSの機能をハードウェアでサポート
  コンテキストスイッチのハードウェア実装
  コンテキストをキャッシュを用いたLSに格納
  ハードウェアポーリングと割り込みの融合
搭載している FPGA
ALTERA Cyclone IV EP4CE115
[Terasic DE2-115 Development Board]
mist1032sa プロセッサ
Load/Store 型 RISC スーパースカラ
2命令同時フェッチ/4命令同時実行
片方向の分岐予測と投機的実行
レジスタリネーミング
Tomasulo のアルゴリズム (OoO)
with Flag 命令の撤廃 (OoO 最適化)
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
                                         32bit
 47c:   0e e0 03 a0   lih rtmp,0x0
                                         addr
 480:   0d 40 47 a0   wl16 rtmp,0x220
 484:   20 70 03 e2   movepc    rret,8
 488:   14 40 03 a0   b     rtmp,#al
                                          call
 48c:   08 30 00 01   shr r0,0x1
 490:   12 00 03 e0   pop rret
 494:   12 00 03 c0   pop rbase          return
 498:   14 40 03 e0   b     rret,#al
現状の全体図
開発規模について

MIST1032SAプロセッサ + ペリフェラル
 行数 : 81,000行
 使用LE : 101,800LE [in-order: 32,000LE]

開発環境
 GCC : 3,100行
 binutils(gas, ld) : 1,800行
 シミュレータ : 1,500行
 Newlib : 1,000行
これから...

インオーダーコアの制作 → Done!
 とりあえず規模の小さいものも作る

回路規模の縮小化
 DE2-115 デモボードへ搭載可能な規模に

OS をはやく載せられる状態に
 GCC のバグ修正、OS 支援機能テスト
Web などの資料
プロセッサの仕様と移植に関する資料
 open-arch.org

ソースコード
 github.com/techno
 github.com/cpulabs

産学間連携推進室(AC部屋) 2012 成果報告会