open design computer project(boost)
DESCRIPTION
TRANSCRIPT
Open Design Computer Project
○伊藤 剛浩 川田 裕貴
http://open-arch.org/
@cpu_labs
伊藤 剛浩 (いとう たかひろ)
筑波大学情報学群情報科学類2++ AC
システム情報工学科産学間連携推進室
Verilog HDL
回路屋
@hktechno
川田 裕貴(かわた ひろたか)
筑波大学 情報学群 情報科学類 2++年生
産学間連携推進室
使える言語 : C, Python, x86 asm
好きなGNU/Linux : Debian
好きなエディタ : Emacs
アンチ Apple
Open Design Computerとは
• Open Design
–仕様, 開発ツール,OS,ハードウェアを公開
–全て自由に利用可能(2次利用が可能)
–様々な製品へ転用可能
• ユーザ視点からみた Open Design Computer
–より高速に動作するコンピュータ
–なおかつ低消費電力動作
このプロジェクトでの提案
• ハードウェアとソフトウェアの協調設計
–ハードウェアとソフトウェアの機能整理
–ゼロからのコンピュータシステム設計
ハードウェアとソフトウェアの連携
• レジスタ退避におけるキャッシュの有効活用
• コンテキストスイッチのハードウェア実装
• 割り込みを複数用意してレベルを設ける
• 既存システムにあるムダを無くす
クロックの向上に拠らない性能向上
ハードウェアの支援による解決
• 割り込みシステムの設計を見直す
–割り込みレベルを設ける
–割り込み実行タイミングの制御
• 積極的なコンテキストスイッチの支援
–ハードウェア処理によるオーバーヘッドの削減
–同一プロセスのスレッド切り替えを高速化
ハードウェアの開発
• コンピュータシステムに必要なハードウェアの開発 –プロセッサコア
– IO/割り込み管理
– メモリ管理
–各外部デバイスコントローラ
• 市販されているFPGAボード上に構築 –シミュレータのみならず実動作可能
ハードウェアの開発 : 苦労編
• ハンドアセンブル & ハンド逆アセンブルの嵐
• シミュレータが高価
• FPGAが高価
ソフトウェアの開発について
• OSに必要なソフトウェア群の移植 – オープンソースソフトウェアとして開発
• アセンブラ – GNU binutils (gas, ld)を採用
• コンパイラ – GNU Compiler Collection (gcc)を採用
• オペレーティングシステム – ハードウェアの機能を最大限に活用する
ソフトウェアの開発 : 苦労編
• OSを動かすための機能に関する資料が少ない
– MMU,割り込み,IO周りなど
– (個人レベルでは)誰もやってない…
• GNU binutils (gas), gccが汚い
–レガシーコードの山。格闘戦
–移植に関する資料も少ない
• プロセッサができないとデバッグ・評価できない
–資料を考えている時が一番楽しい。実装は…
ロードマップ
2012年8月
• 各仕様のリリース
• ハードウェア – プロセッサコア
– IO/割り込み管理
– メモリ管理
– 外部デバイスコントローラ
• オペレーティングシステム
– 基本的な外部デバイスとの通信
– マルチタスクに対応
その後
• プロセッサ/OSのチューニング
• マルチコア化への対応
• 多彩なデバイスへの対応
• チップ化や専用ボードの製作