SlideShare a Scribd company logo
Open Design Computer Project

     ○伊藤 剛浩 川田 裕貴
      http://open-arch.org/
Open Design Computerとは
• Open Design
  – 仕様, 開発ツール,OS,ハードウェアを公開
  – 全て自由に利用可能(2次利用が可能)
  – 様々な製品へ転用可能
• ユーザ視点からみた Open Design Computer
  – より高速に動作するコンピュータ
  – なおかつ低消費電力動作
このプロジェクトでの提案

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

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


 – ゼロからのコンピュータシステム設計
1, 既存のコンピュータシステムの問題点
      ハードウェアとソフトウェアの連携による解決
2, 既存のプロセッサコアの問題点と解決方法

開発動機
既存のコンピュータシステムへの不満
• プロセッサ
 – 高速化を妨げる要因を排除したい
 – 全く使用されない命令や機能が多く存在
• オペレーティングシステム
 – ソフトウェア側で実行している機能をハードウェア
   側に持たせたい
 – もっと柔軟にハードウェアの機能を工夫・変更し
   たい
既存のコンピュータシステムの問題点

• ハードウェアの仕様による性能低下
 – x86 : タスク切り替え機能の実装が難有り
 – MIPS : MMUがほぼソフトウェアにて実装


• 割り込み処理による処理の中断
• マルチスレッドアプリの増加によるコンテキスト
  スイッチのオーバーヘッドの問題
ハードウェアとソフトウェアの連携

•   レジスタ退避におけるキャッシュの有効活用
•   コンテキストスイッチのハードウェア実装
•   割り込みを複数用意してレベルを設ける
•   既存システムにあるムダを無くす

     クロックの向上に拠らない性能向上
ハードウェアの支援による解決
• 割り込みシステムの設計を見直す
 – 割り込みレベルを設ける
 – 割り込み実行タイミングの制御


• 積極的なコンテキストスイッチの支援
 – ハードウェア処理によるオーバーヘッドの削減
 – 同一プロセスのスレッド切り替えを高速化
既存のプロセッサコアの問題点
• ミドルエンド~ハイエンドプロセッサコアの問題
 – ARM : 複雑なCC実行
 – SPARC : レジスタウインドウ
 – x86 : 現在では不要な命令群
 – MIPS : ディレイドブランチ
 – SuperH : ディレイドブランチ

• 高速実行に不向きな命令セット
 – アウトオブオーダに不向き
製作中のプロセッサコアでの解決方法
• アウトオブオーダ実行に適した設計
 – 命令セットの最適化
 – 汎用レジスタ・システム系レジスタを命令レベル
   で区別


• アウトオブオーダ実行の弱点を克服
 – 比較的小さい回路規模で実現可能
 – 低消費電力動作で性能向上を実現
1, 開発担当
      ハードウェア開発の詳細
      ソフトウェア開発の詳細
2, 現状と今後の予定

開発と方針について
開発担当
• ハードウェア(伊藤 剛浩)
 – プロセッサ
 – コンピュータとして必要な周辺デバイス


• ソフトウェア(川田 裕貴)
 – オペレーティングシステム
 – コンパイラ, アセンブラ, シミュレータ

   共にゼロからの協調設計
ハードウェアの開発
• コンピュータシステムに必要なハードウェアの
  開発
 – プロセッサコア
 – IO/割り込み管理
 – メモリ管理
 – 各外部デバイスコントローラ

• 市販されているFPGAボード上に構築
 – シミュレータのみならず実動作可能
ソフトウェアの開発について
• OSに必要なソフトウェア群の移植
 – オープンソースソフトウェアとして開発

• アセンブラ
 – GNU binutils (gas, ld)を採用
• コンパイラ
 – GNU Compiler Collection (gcc)を採用
• オペレーティングシステム
 – ハードウェアの機能を最大限に活用する
現状
ハードウェア          ソフトウェア
• 開発中           • 開発中
 – 仕様の策定         – アセンブラ
 – プロセッサコアの改良    – シミュレータ
 – IO管理ユニット     • 今後
• 今後             – コンパイラ
 – メモリ管理ユニット     – オペレーティングシステ
 – 割り込み管理ユニット      ム
ロードマップ
2012年8月             その後
• 各仕様のリリース          • プロセッサ/OSのチューニン
• ハードウェア              グ
 –   プロセッサコア        • マルチコア化への対応
 –   IO/割り込み管理      • 多彩なデバイスへの対応
 –   メモリ管理
                    • チップ化や専用ボードの製
 –   外部デバイスコントローラ
                      作
• オペレーティングシステム
 – 基本的な外部デバイスとの
   通信
 – マルチタスクに対応

More Related Content

Similar to Open design computer project

テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
Hiro Yoshioka
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
Osamu Masutani
 
TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016
TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016
TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016
RWSJapan
 
190418 titech robotics
190418 titech robotics190418 titech robotics
190418 titech robotics
NoriakiAndo
 
170622 02
170622 02170622 02
170622 02
openrtm
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
 
東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェア東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェア
NoriakiAndo
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
 
設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~
SystemIntegrator2
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキングTakayuki Kondou
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
 
Modern Operating System 1_1
Modern Operating System 1_1Modern Operating System 1_1
Modern Operating System 1_1
Masahiko Hara
 
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島
なおき きしだ
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
You&I
 
Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介
shigeya
 
PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」
PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」
PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」
PC Cluster Consortium
 
pf-1. Python,Google Colaboratory
pf-1. Python,Google Colaboratorypf-1. Python,Google Colaboratory
pf-1. Python,Google Colaboratory
kunihikokaneko1
 

Similar to Open design computer project (20)

テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
 
TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016
TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016
TotalViewを使ったFOCUSスパコンでのデバッグ体験 2016
 
190418 titech robotics
190418 titech robotics190418 titech robotics
190418 titech robotics
 
170622 02
170622 02170622 02
170622 02
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェア東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェア
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
Modern Operating System 1_1
Modern Operating System 1_1Modern Operating System 1_1
Modern Operating System 1_1
 
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
 
Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介Windows 7 オプショナルツール 一挙紹介
Windows 7 オプショナルツール 一挙紹介
 
Openhard150114
Openhard150114Openhard150114
Openhard150114
 
PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」
PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」
PCCC22:インテル株式会社 テーマ3「インテル® oneAPI ツールキット 最新情報のご紹介」
 
pf-1. Python,Google Colaboratory
pf-1. Python,Google Colaboratorypf-1. Python,Google Colaboratory
pf-1. Python,Google Colaboratory
 

Open design computer project