Submit Search
Upload
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
•
5 likes
•
4,274 views
Hirotaka Kawata
Follow
http://open-arch.org/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 47
Download now
Download to read offline
Recommended
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
xv6 + mist32 + mruby
xv6 + mist32 + mruby
Hirotaka Kawata
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
Hirotaka Kawata
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pm
Hirotaka Kawata
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
自作x86エミュレータの終焉
自作x86エミュレータの終焉
Daisuke Kamikawa
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
Yuma Ohgami
Recommended
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
xv6 + mist32 + mruby
xv6 + mist32 + mruby
Hirotaka Kawata
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
Hirotaka Kawata
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pm
Hirotaka Kawata
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
自作x86エミュレータの終焉
自作x86エミュレータの終焉
Daisuke Kamikawa
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
Yuma Ohgami
IPA未踏成果報告会
IPA未踏成果報告会
Ito Takahiro
SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話
LINE Corporation
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
SEH on mingw32
SEH on mingw32
kikairoya
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
Minoru Nakamura
core dumpでcode golf
core dumpでcode golf
Nomura Yusuke
いいかげんな人のためのTransactional Memory Primer
いいかげんな人のためのTransactional Memory Primer
Yuto Hayamizu
Intel TSX について x86opti
Intel TSX について x86opti
Takashi Hoshino
2章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理1
mao999
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Atomu Hidaka
Pdp11 on-fpga
Pdp11 on-fpga
magoroku Yamamoto
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
Inkernel disasm-from-intelsdm-kernelvm
Inkernel disasm-from-intelsdm-kernelvm
Masami Hiramatsu
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
あるmmapの話
あるmmapの話
nullnilaki
Pdp11onfpga
Pdp11onfpga
xylnao
あるキャッシュメモリの話
あるキャッシュメモリの話
nullnilaki
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
ksk sue
4章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 2
mao999
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
やってよかったOS作り
やってよかったOS作り
Hidemi Kawai
ハッキング実演
ハッキング実演
Ken Ogura
More Related Content
What's hot
IPA未踏成果報告会
IPA未踏成果報告会
Ito Takahiro
SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話
LINE Corporation
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
SEH on mingw32
SEH on mingw32
kikairoya
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
Minoru Nakamura
core dumpでcode golf
core dumpでcode golf
Nomura Yusuke
いいかげんな人のためのTransactional Memory Primer
いいかげんな人のためのTransactional Memory Primer
Yuto Hayamizu
Intel TSX について x86opti
Intel TSX について x86opti
Takashi Hoshino
2章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理1
mao999
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Atomu Hidaka
Pdp11 on-fpga
Pdp11 on-fpga
magoroku Yamamoto
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
Inkernel disasm-from-intelsdm-kernelvm
Inkernel disasm-from-intelsdm-kernelvm
Masami Hiramatsu
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
あるmmapの話
あるmmapの話
nullnilaki
Pdp11onfpga
Pdp11onfpga
xylnao
あるキャッシュメモリの話
あるキャッシュメモリの話
nullnilaki
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
ksk sue
4章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 2
mao999
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
What's hot
(20)
IPA未踏成果報告会
IPA未踏成果報告会
SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
SEH on mingw32
SEH on mingw32
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
core dumpでcode golf
core dumpでcode golf
いいかげんな人のためのTransactional Memory Primer
いいかげんな人のためのTransactional Memory Primer
Intel TSX について x86opti
Intel TSX について x86opti
2章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理1
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Pdp11 on-fpga
Pdp11 on-fpga
スタート低レイヤー #0
スタート低レイヤー #0
Inkernel disasm-from-intelsdm-kernelvm
Inkernel disasm-from-intelsdm-kernelvm
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
あるmmapの話
あるmmapの話
Pdp11onfpga
Pdp11onfpga
あるキャッシュメモリの話
あるキャッシュメモリの話
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
4章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 2
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
Viewers also liked
やってよかったOS作り
やってよかったOS作り
Hidemi Kawai
ハッキング実演
ハッキング実演
Ken Ogura
C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
低レイヤー入門
低レイヤー入門
demuyan
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
kikuchan98
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
kozossakai
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
sandai
Ctfのためのpython入門
Ctfのためのpython入門
shiracamus
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
kozossakai
Hacking Ctrl-C
Hacking Ctrl-C
uchan_nos
コンピュータビジョン 1章
コンピュータビジョン 1章
motimune
【学習メモ#11th】12ステップで作る組込みOS自作入門
【学習メモ#11th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#8th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#9th】12ステップで作る組込みOS自作入門
【学習メモ#9th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
sandai
【学習メモ#6th】12ステップで作る組込みOS自作入門
【学習メモ#6th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門
sandai
組込みにおけるHTML5
組込みにおけるHTML5
Tomo Watanabe
Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10
uchan_nos
Viewers also liked
(20)
やってよかったOS作り
やってよかったOS作り
ハッキング実演
ハッキング実演
C++でできる!OS自作入門
C++でできる!OS自作入門
低レイヤー入門
低レイヤー入門
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
Ctfのためのpython入門
Ctfのためのpython入門
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
Hacking Ctrl-C
Hacking Ctrl-C
コンピュータビジョン 1章
コンピュータビジョン 1章
【学習メモ#11th】12ステップで作る組込みOS自作入門
【学習メモ#11th】12ステップで作る組込みOS自作入門
【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#9th】12ステップで作る組込みOS自作入門
【学習メモ#9th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#6th】12ステップで作る組込みOS自作入門
【学習メモ#6th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門
組込みにおけるHTML5
組込みにおけるHTML5
Effective Modern C++ Item 9 and 10
Effective Modern C++ Item 9 and 10
Similar to 30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
seccamp2012 チューター発表
seccamp2012 チューター発表
Hirotaka Kawata
産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会
Hirotaka Kawata
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
Programming camp code reading
Programming camp code reading
Hiro Yoshioka
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
Prosym2012
Prosym2012
MITSUNARI Shigeo
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
yaegashi
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
Exploring the x64
Exploring the x64
FFRI, Inc.
Meltdown を正しく理解する
Meltdown を正しく理解する
Norimasa FUJITA
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
Python Kyoto study
Python Kyoto study
Naoya Inada
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
ryos36
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
Yuto Takei
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Supership株式会社
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
Shigeru Kobayashi
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
信之 岩永
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Hitoshi Sato
Similar to 30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
(20)
seccamp2012 チューター発表
seccamp2012 チューター発表
産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Programming camp code reading
Programming camp code reading
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Prosym2012
Prosym2012
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Exploring the x64
Exploring the x64
Meltdown を正しく理解する
Meltdown を正しく理解する
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Python Kyoto study
Python Kyoto study
Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
私とOSSの25年
私とOSSの25年
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Recently uploaded
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Recently uploaded
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
1.
30日でできない! コンピューター自作入門 @hktechno
2.
自己紹介 @hktechno 川田 裕貴 (かわたひろたか) ●
筑波大学 情報学群 情報科学類 ++3 年 ● 信仰: Emacs, Debian, Python ● 2011年度未踏IT人材発掘・育成事業 ○ Open Design Computer Project コクリエーター
3.
今日話すこと
について
4.
この本ご存知ですか?
5.
30日でOS自作できた人、挙手! ノシ
6.
できないですよねー (´・ω・`)
7.
30日ではできないけれど... 2人がかりで 2年ぐらいあれば どうにか形にはなりました。 ぼっちの人は頑張ってください。
8.
Open Design Computer? No
Intel. No ARM. No MIPS. The "mist32" Architecture. All new open design processor.
9.
デモ...
10.
搭載している FPGA ALTERA Cyclone
IV EP4CE115 [Terasic DE2-115 Development Board]
11.
魔法のデバイス FPGA 自由に回路を 書き換え可能な IC ハードウェア記述言 (HDL)で回路を記述 主な用途 プロトタイプ 小ロットのチップ
12.
プロジェクトの特徴 再利用可能な状態でソース・仕様を公開 プロセッサの HDL
は BSD ライセンス 開発ツールを一通り揃える 当たり前だけど、ないと使ってくれない モバイル機器に使われるようなものを想定 OSが乗ったタブレットとかスマホとか
13.
つまり... 敵は ARM Cortex-Axx シリーズ
14.
mist32 アーキテクチャ アウトオブオーダー実行 回路規模は大きくなるが速くなる ハードウェアとソフトウェアの協調動作
OS を支援する機能をたくさん載せる 独自の命令セット アウトオブオーダー実行に最適化
15.
mist32 の位置づけ (
⌓ ) 性能の目安→ ↑ビット数
16.
アセンブラとバイナリ 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
17.
全体図的な何か
18.
19.
開発規模について MIST1032SAプロセッサ + ペリフェラル
行数 : 81,000行 使用LE : 101,800LE [in-order: 32,000LE] 開発環境 GCC : 3,100行 binutils(gas, ld) : 1,800行 シミュレータ : 1,500行 Newlib : 1,000行
20.
やったこと プロセッサの仕様策定 レジスタ, 命令セット,
MMU, 割り込み... プロセッサー・ペリフェラルの開発 Verilog HDL がりがり 開発環境の開発 binutils (as, ld...), gcc, シミュレータ...
21.
僕がやったこと プロセッサの仕様策定 レジスタ, 命令セット,
MMU, 割り込み... プロセッサー・ペリフェラルの開発 Verilog HDL がりがり 開発環境の開発 binutils (as, ld...), gcc, シミュレータ...
22.
全般的に言えること とにかく資料がねぇ!
(特に日本語)
23.
作成の流れ
命令セット仕様策定 プロセッサコアの開発 アセンブラの開発 コアのバグつぶし 周辺機能仕様策定 割り込み・IO・MMU作成 コンパイラ・シミュレータの開発 バグの叩き合い バグとの戦い バグと共に(ry
24.
プロセッサの仕様策定 もともと @cpulabs が開発してるプロセッサコアを元 にする
(mist32 の原型) つまり、このプロジェクトは僕はおまけ。 アウトオブオーダー実行にとにかく最適化。 一番楽しい時間帯。妄想アワー。 今思えば失敗したこと: 2オペランド...
25.
アウトオブオーダー実行 知らない人いないよね。 Wikipedia でも見てください。 書く時間がなかったなんていえな(ry
26.
mist1032sa プロセッサ Load/Store 型
RISC スーパースカラ 2命令同時フェッチ/4命令同時実行 片方向の分岐予測と投機的実行 Tomasulo のアルゴリズム (OoO) レジスタリネーミング with Flag 命令の撤廃
27.
with Flag 命令とは 典型的な例:
ADDC (Add with Carry Flag) フラグを見に行くのはブランチ系命令だけに。 フラグを書き込む命令は b の直前にある前提。 コンパクトな回路規模で OoO するには: 命令の依存関係をとにかく少なくする必要
28.
できなくなること 例えば x86 で言うと...
CMP -> MOV -> MOV -> Jxx CMP のフラグが Jxx まで引き継がれる、はず OoO する際にフラグへの依存ができる mist32 では、これを許さない! Branch の直前に、フラグ変更命令を置く制約
29.
ADDC はどうするの? 現状の mist32:
フラグを参照する命令は branch のみ (基本的には) ADDC のような命令は、キャリーをレジスタに返す ような命令を作ればいい! なんか問題でもある?
30.
31.
レジスタ 汎用レジスタ: 32bit レジスタ
32本 その他システムレジスタ: スタックポインタ プログラムカウンタ ページテーブル, コントロールレジスタ...
32.
奴らは戦力外通告だ! アウトオブオーダーの邪魔になる技術例 ARM : 複雑な
CC 実行! SPARC : レジスタウィンドウ!! MIPS : ディレイドブランチ!!! SuperH : ディレイドブランチ...!!!! x86 : 論外!!!!!
33.
MMU ページテーブル 2段ページングに対応 1ページ
16KB NX ビットみたいなものつけたり 権限設定もできる 当たり前だけどセグメントなんてついてないよ
34.
割り込み 何段階か割り込み優先度を設定 すぐに割り込む 一定時間おきに割り込みを一気に割り込む
コンテキスト終了と同時に割り込む クソみたいな割り込みによって、 コンテキストが突然終了してほしくない!
35.
コンテキストスイッチ ハードウェアコンテキストスイッチ支援を実装 割り込みなどと協調動作できる みんな使えよ!使うんだぞ!約束だぞ! 優先度によるキャッシュの有効活用 優先度の高いコンテキスト情報は 必ずキャッシュに載せるとか
36.
プロセッサの開発 開発したのは良いものの... DE2-115 に入りきらない! 論理合成時間かかりすぎ。(数時間) OoO するとやっぱりでかくなるね... インオーダーコアも作ろうか(´・ω・`) ↑
未踏成果報告会3日ぐらい前
37.
Binutils の移植 アセンブラも資料無くて大変だった 他の簡単なプロセッサを参考に、コピペしつつ 1度作れてしまえば次は簡単、のような CGEN (Cpu
GENerator) 使おう! sourceware.org/cgen/
38.
コンパイラ (gcc) の移植 RTL
テンプレートと、C をごりごり。 正直面白くない。 GCC Internals を頑張って読もう。 なぜ LLVM にしなかったのかと一晩(ry まさかここまで LLVM, clang が進化するとは 先見性の無さ...('A`)
39.
gcc の移植 とにかく gcc/config/<arch>/<arch>.md gcc/config/<arch>/<arch>.c gcc/config/<arch>/<arch>.h コレを書けばいい!
40.
RTL テンプレート (define_insn "addsi3"
[(set (match_operand:SI 0 "register_operand" "=r,r") (plus:SI (match_operand:SI 1 "register_operand" "%0,0") (match_operand:SI 2 "nonmemory_operand" "r,I")))] "" "@ addt%0, %2 addt%0, %2" )
41.
シミュレータ とりあえず、書けばいいよ! 割り込みとか、IO 考えなければ、割と簡単。
42.
さあ動かすぞ! うごかなーい 実用的な、回路規模は FPGA 自体の回路規模の 80%
ぐらいまで それ以上になると、論理合成できても動かないこと が多々
43.
未踏での評価 担当 PM の評価はほどほどに良かったけど... みんな(PM
も含め)ハードウェアにもプロセッサにも あまり興味がないみたいね と言うより、純粋な技術に興味がないみたいね 確かに新規性ないね(´・ω・`) モノはできてから応募したほうがいいかもね
44.
これから... インオーダーコアの制作 → Done!
とりあえず規模の小さいものも作る 回路規模の縮小化 DE2-115 デモボードに乗るようにする OS をはやく載せられる状態に GCC のバグつぶし、OS 支援機能テスト
45.
46.
Web プロセッサの仕様と移植に関する資料 open-arch.org ソースコード github.com/techno
github.com/cpulabs
47.
OS 載せるぞ!
今後に期待してください Expect Us!
Download now