open design computer project

20
Open Design Computer Project ○伊藤 剛浩 川田 裕貴 http://open-arch.org/

Upload: ito-takahiro

Post on 25-Jun-2015

2.111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Open design computer project

Open Design Computer Project

○伊藤 剛浩 川田 裕貴

http://open-arch.org/

Page 2: Open design computer project

Open Design Computerとは

• Open Design

–仕様, 開発ツール,OS,ハードウェアを公開

–全て自由に利用可能(2次利用が可能)

–様々な製品へ転用可能

• ユーザ視点からみた Open Design Computer

–より高速に動作するコンピュータ

–なおかつ低消費電力動作

Page 3: Open design computer project

このプロジェクトでの提案

• ハードウェアとソフトウェアの協調設計

–ハードウェアとソフトウェアの機能整理

–ゼロからのコンピュータシステム設計

Page 4: Open design computer project

開発動機

1, 既存のコンピュータシステムの問題点

ハードウェアとソフトウェアの連携による解決

2, 既存のプロセッサコアの問題点と解決方法

Page 5: Open design computer project

既存のコンピュータシステムへの不満

• プロセッサ

–高速化を妨げる要因を排除したい

–全く使用されない命令や機能が多く存在

• オペレーティングシステム

– ソフトウェア側で実行している機能をハードウェア側に持たせたい

– もっと柔軟にハードウェアの機能を工夫・変更したい

Page 6: Open design computer project

既存のコンピュータシステムの問題点

• ハードウェアの仕様による性能低下

– x86 : タスク切り替え機能の実装が難有り

– MIPS : MMUがほぼソフトウェアにて実装

• 割り込み処理による処理の中断

• マルチスレッドアプリの増加によるコンテキストスイッチのオーバーヘッドの問題

Page 7: Open design computer project

ハードウェアとソフトウェアの連携

• レジスタ退避におけるキャッシュの有効活用

• コンテキストスイッチのハードウェア実装

• 割り込みを複数用意してレベルを設ける

• 既存システムにあるムダを無くす

クロックの向上に拠らない性能向上

Page 8: Open design computer project

ハードウェアの支援による解決

• 割り込みシステムの設計を見直す

–割り込みレベルを設ける

–割り込み実行タイミングの制御

• 積極的なコンテキストスイッチの支援

–ハードウェア処理によるオーバーヘッドの削減

–同一プロセスのスレッド切り替えを高速化

Page 9: Open design computer project
Page 10: Open design computer project
Page 11: Open design computer project

既存のプロセッサコアの問題点

• ミドルエンド~ハイエンドプロセッサコアの問題 – ARM : 複雑なCC実行

– SPARC : レジスタウインドウ

– x86 : 現在では不要な命令群

– MIPS : ディレイドブランチ

– SuperH : ディレイドブランチ

• 高速実行に不向きな命令セット –アウトオブオーダに不向き

Page 12: Open design computer project

製作中のプロセッサコアでの解決方法

• アウトオブオーダ実行に適した設計

–命令セットの最適化

–汎用レジスタ・システム系レジスタを命令レベルで区別

• アウトオブオーダ実行の弱点を克服

–比較的小さい回路規模で実現可能

–低消費電力動作で性能向上を実現

Page 13: Open design computer project

開発と方針について

1, 開発担当

ハードウェア開発の詳細

ソフトウェア開発の詳細

2, 現状と今後の予定

Page 14: Open design computer project

開発担当

• ハードウェア(伊藤 剛浩) – プロセッサ

– コンピュータとして必要な周辺デバイス

• ソフトウェア(川田 裕貴) – オペレーティングシステム

– コンパイラ, アセンブラ, シミュレータ

共にゼロからの協調設計

Page 15: Open design computer project

ハードウェアの開発

• コンピュータシステムに必要なハードウェアの開発 –プロセッサコア

– IO/割り込み管理

– メモリ管理

–各外部デバイスコントローラ

• 市販されているFPGAボード上に構築 –シミュレータのみならず実動作可能

Page 16: Open design computer project

ソフトウェアの開発について

• OSに必要なソフトウェア群の移植 – オープンソースソフトウェアとして開発

• アセンブラ – GNU binutils (gas, ld)を採用

• コンパイラ – GNU Compiler Collection (gcc)を採用

• オペレーティングシステム – ハードウェアの機能を最大限に活用する

Page 17: Open design computer project

現状

ハードウェア

• 開発中

– 仕様の策定

– プロセッサコアの改良

– IO管理ユニット

• 今後

– メモリ管理ユニット

– 割り込み管理ユニット

ソフトウェア

• 開発中

– アセンブラ

– シミュレータ

• 今後

– コンパイラ

– オペレーティングシステム

Page 18: Open design computer project
Page 19: Open design computer project
Page 20: Open design computer project

ロードマップ

2012年8月

• 各仕様のリリース

• ハードウェア – プロセッサコア

– IO/割り込み管理

– メモリ管理

– 外部デバイスコントローラ

• オペレーティングシステム

– 基本的な外部デバイスとの通信

– マルチタスクに対応

その後

• プロセッサ/OSのチューニング

• マルチコア化への対応

• 多彩なデバイスへの対応

• チップ化や専用ボードの製作