SlideShare a Scribd company logo
1 of 14
Download to read offline
Open Design Computer Project

      伊藤剛浩 川田裕貴
コンピュータを作りました
FPGAとは




自由自在に書き換え可能なIC
Open Design Computer

  オープンソース
開発ツールが揃っている
 低消費電力向け
 FPGAに構築可能
開発の経緯と背景

• 高機能なモバイル端末が必要とされている
 – 高機能かつ低消費電力動作が求められている


• プロセッサとOSをもともと開発していた

• 開発のノウハウ公開
MIST32アーキテクチャの概要
MIST32の位置づけ
 性能の目安→
↑ビット数
開発で苦労したところ

ドキュメントがあまりない
日本語の情報がない・または企業秘密
やっている人が少ない


開発ツール・ハードウェアが高価
開発ボードで20~30万円
論理合成ツールが年間50万


FPGAへのフッティングがうまく行かなかった
FPGAのサイズに対して製作したプロセッサが巨大
キャッシュを搭載できなかった
ベンチマーク


キャッシュ全て無効
Dhrystone : 3.1DMIPS 5450Dhrystone/Sec
Core Mark : 後日Webにて


Cyclone IVでの動作周波数 : 30MHz
開発規模

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

開発環境
 Gcc : 3100行
 binutils(gas, ld) : 1,800行
 シミュレータ : 1,500行
 Newlib : 1,000行
ライセンスと公開先

MIST32プロセッサ
 BSDライセンスで公開
 改変して自由に製品に組み込める、
 同じようなプロジェクトのOpenRISCはLGPL


開発環境
 Gcc, binutils(gas, ld), シミュレータはGPL
公開、発信について

             ハードウェア
https://github.com/cpulabs/mist1032sa


              ソフトウェア
   https://github.com/techno/gcc-mist32
 https://github.com/techno/binutils-mist32
https://github.com/techno/mist32-simulator
今後
     ハードウェア
多彩なデバイスの対応   浮動小数点の対応


      ソフトウェア
  実用的なオペレーティングシステム


  製品化へのアプローチ
    ターゲットボードの開発
CPU Designer Tablet-1




                Open Design Computer Project

More Related Content

What's hot

本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と MeltdownHirotaka Kawata
 
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶYuta Kitagami
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムJunichi Kakisako
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットKenta IDA
 
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」marsee101
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考えるryuz88
 
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたMovidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたNISHIMOTO Keisuke
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LTYamato Kazuhiro
 
15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)hiro345
 
EtherCATやPROFINETを OPC UAで接続してみた
EtherCATやPROFINETを OPC UAで接続してみたEtherCATやPROFINETを OPC UAで接続してみた
EtherCATやPROFINETを OPC UAで接続してみたミソジ
 
Using Xeon D 10GBase-T
Using Xeon D 10GBase-TUsing Xeon D 10GBase-T
Using Xeon D 10GBase-TMasaru Oki
 
イチからはじめるUSB Host API
イチからはじめるUSB Host APIイチからはじめるUSB Host API
イチからはじめるUSB Host APIksk sue
 
Using asimdhp (fp16) on Jetson Xavier CPU
Using asimdhp (fp16) on Jetson Xavier CPUUsing asimdhp (fp16) on Jetson Xavier CPU
Using asimdhp (fp16) on Jetson Xavier CPUtomoaki0705
 
M5StackをRustで動かす
M5StackをRustで動かすM5StackをRustで動かす
M5StackをRustで動かすKenta IDA
 

What's hot (20)

本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
 
xv6 + mist32 + mruby
xv6 + mist32 + mrubyxv6 + mist32 + mruby
xv6 + mist32 + mruby
 
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
 
NetBSD/Zynq
NetBSD/ZynqNetBSD/Zynq
NetBSD/Zynq
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
 
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
 
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたMovidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみた
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LT
 
15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)
 
Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
 
EtherCATやPROFINETを OPC UAで接続してみた
EtherCATやPROFINETを OPC UAで接続してみたEtherCATやPROFINETを OPC UAで接続してみた
EtherCATやPROFINETを OPC UAで接続してみた
 
Using Xeon D 10GBase-T
Using Xeon D 10GBase-TUsing Xeon D 10GBase-T
Using Xeon D 10GBase-T
 
イチからはじめるUSB Host API
イチからはじめるUSB Host APIイチからはじめるUSB Host API
イチからはじめるUSB Host API
 
Using asimdhp (fp16) on Jetson Xavier CPU
Using asimdhp (fp16) on Jetson Xavier CPUUsing asimdhp (fp16) on Jetson Xavier CPU
Using asimdhp (fp16) on Jetson Xavier CPU
 
Xeon d
Xeon dXeon d
Xeon d
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
秀丸最強化計画
秀丸最強化計画秀丸最強化計画
秀丸最強化計画
 
M5StackをRustで動かす
M5StackをRustで動かすM5StackをRustで動かす
M5StackをRustで動かす
 

Viewers also liked

Web MIDI meets DIY #0
Web MIDI meets DIY #0Web MIDI meets DIY #0
Web MIDI meets DIY #0Ryoya Kawai
 
Midi with android
Midi with androidMidi with android
Midi with androidkshoji
 
Javaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータJavaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータDaisuke Kamikawa
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Takefumi MIYOSHI
 
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’AntoineCODE BLUE
 
Kpt×ナース(公開版)
Kpt×ナース(公開版)Kpt×ナース(公開版)
Kpt×ナース(公開版)Noriyuki Nemoto
 
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門Zynq + Vivado HLS入門
Zynq + Vivado HLS入門narusugimoto
 
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだことKPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだことESM SEC
 
レッツゴーディベロッパーX 2014
レッツゴーディベロッパーX 2014レッツゴーディベロッパーX 2014
レッツゴーディベロッパーX 2014Noriyuki Nemoto
 
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015Fumitaka Inayama
 

Viewers also liked (13)

Web MIDI meets DIY #0
Web MIDI meets DIY #0Web MIDI meets DIY #0
Web MIDI meets DIY #0
 
Synverll
SynverllSynverll
Synverll
 
Midi with android
Midi with androidMidi with android
Midi with android
 
Javaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータJavaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータ
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
 
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
 
Kpt×ナース(公開版)
Kpt×ナース(公開版)Kpt×ナース(公開版)
Kpt×ナース(公開版)
 
LLVM最適化のこつ
LLVM最適化のこつLLVM最適化のこつ
LLVM最適化のこつ
 
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
 
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだことKPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
 
レッツゴーディベロッパーX 2014
レッツゴーディベロッパーX 2014レッツゴーディベロッパーX 2014
レッツゴーディベロッパーX 2014
 
KPT採集
KPT採集KPT採集
KPT採集
 
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
 

Similar to IPA未踏成果報告会

ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 TokyoSoftware for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 TokyoShohei Hido
 
ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料直久 住川
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表Hirotaka Kawata
 
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェアIo t,ai時代のソフトウェア
Io t,ai時代のソフトウェアToshiaki Kurokawa
 
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Makoto SAKAI
 
コードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めようコードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めようShin-ya Koga
 
Open design computer project(boost)
Open design computer project(boost)Open design computer project(boost)
Open design computer project(boost)Ito Takahiro
 
Open design computer project
Open design computer projectOpen design computer project
Open design computer projectIto Takahiro
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1Nobuaki Aoki
 
Windows ChatGPT Bing AI
Windows ChatGPT Bing AIWindows ChatGPT Bing AI
Windows ChatGPT Bing AIAtomu Hidaka
 
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウドベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウドFujishiro Takuya
 
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話Keigo Suda
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法SmartNews, Inc.
 
ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習kunihikokaneko1
 
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜VirtualTech Japan Inc.
 
Kansumi2013 tamagawa
Kansumi2013 tamagawaKansumi2013 tamagawa
Kansumi2013 tamagawaSORACOM, INC
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118Atomu Hidaka
 

Similar to IPA未踏成果報告会 (20)

ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 TokyoSoftware for Edge Heavy Computing @ INTEROP 2016 Tokyo
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
 
ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
 
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェアIo t,ai時代のソフトウェア
Io t,ai時代のソフトウェア
 
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
 
コードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めようコードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めよう
 
Open design computer project(boost)
Open design computer project(boost)Open design computer project(boost)
Open design computer project(boost)
 
Open design computer project
Open design computer projectOpen design computer project
Open design computer project
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1
 
Windows ChatGPT Bing AI
Windows ChatGPT Bing AIWindows ChatGPT Bing AI
Windows ChatGPT Bing AI
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウドベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
 
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
 
GTC Japan 2017
GTC Japan 2017GTC Japan 2017
GTC Japan 2017
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
 
ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習ae-15. 人工知能による合成の演習
ae-15. 人工知能による合成の演習
 
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜
 
Kansumi2013 tamagawa
Kansumi2013 tamagawaKansumi2013 tamagawa
Kansumi2013 tamagawa
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 

IPA未踏成果報告会