SlideShare a Scribd company logo
バイナリより低レイヤな話
@hktechno
@hktechno
川田 裕貴 (かわたひろたか)
● 筑波大学に4月から入院中 (元coins09-AC)
○ システム情報工学研究科
コンピュータサイエンス専攻
○ 実時間組み込みアーキテクチャ研究室
● Open Design Computer Project
○ IPA 未踏 2011 スーパーなんとか
● トプスなんとかっていう会社でバイト中
○ LLVM-IR と最近戯れている
● PyCon JP 2014 プログラムチーム
Open Design Computer Project
http://open-arch.org/
● mist32 という自作CPUを作っている
○ 32bit Out of Order RISC コア
○ In-order 版もあるよ
○ FPGA (DE2-115, DE3) 上で動く
● CPU マニアと一緒にやっている
○ @cpu_labs
● 自分はソフトウェアを作っている
○ gcc, binutils, newlib...
○ 最近 xv6 OS が動いた (実機は微妙)
今日の忘れ物
低レイヤ
低レイヤ感の違い
● hktechno: 低レイヤ好きな人いなくて
● ???: 低レイヤ?うちにもいるよ?
● hktechno: どんなことやってるんですか?
● ???: ほら、C++ とか
低レイヤ 検索
低レイヤ 検索
低レイヤー入門
● http://www.slideshare.net/demuyan/ss-
19333584
疑問
● C が使えたら低レイヤなのか
● バイナリが喋れたら低レイヤなのか
● 低レイヤとはなにか
低レイヤとは
システムソフトウェア
VM
OS kernel
アセンブラ
バイナリ
カーネル/VM 的
低レイヤ
Eject
アプリケーション
最低レイヤはなにか
バイナリは、最低レイヤでしょうか?
バイナリが喋れればかっこいいか?
バイナリが喋れるだけで、満足していませんか
相手の心もわかっていないのに
低レイヤ
自作コンピューター感の違い
● hktechno: コンピューターを自作してます
● ???: 最近自作しなくなったなー
● hktechno: えっ
● ???: えっ
低レイヤとは システムソフトウェア
VM
OS kernel
アセンブラ
バイナリ
プロセッサ
本来の低レイヤ
低レイヤとは システムソフトウェア
VM
OS kernel
アセンブラ
バイナリ
プロセッサ
低レイヤ
低レイヤとは システムソフトウェア
VM
OS kernel
アセンブラ
バイナリ
プロセッサ
CPUマニアが考
える低レイヤ
低レイヤを知るなら...
バイナリだけ出来てもプロセッサは口説けない
そうだ、低レイヤを極めよう
プロセッサの心を読み解く
# 前振りが長かった
プロセッサの違い
● Intel 第4世代 Core アーキテクチャ
○ Haswell (tock), Broadwell (tick)
● Intel 第3世代 Core アーキテクチャ
○ Sandy Bridge (tock), Ivy Bridge (tick)
違いは何ですか?
● AVX2
● TSX (HTM)
● ???
SandyBridge -> Haswell
誰も気にしてくれない進化
● 演算ポートが2つ追加
○ Integer ALU + Branch
○ AGU for stores
● Branch prediction unit の改良
● Reservation station の拡張
● Re-order buffer の拡張
● Physical register file の拡張
そもそもなんだかわからない
プロセッサのブロック図を眺めてみる
わかってそうで、わかってない内部構造
● Execution Ports
● Out of Order Execution
● Branch prediction
● x86 を中心に色々眺めてみる
明日から使えるムダ知識
基本的なパイプライン
● Instruction Fetch
● Instruction Decode
● Execution
○ Memory Access
● Write Back
● Instruction Fetch
● Instruction Buffer
● Instruction Decode
● Dispatch
● Execution
MIST32 (In-order: MIST1032ISA)
IB
ここまでが、インオーダーの話
ここから、アウトオブオーダーの話
実行ポート
4個 OoOな領域
2命令同時
Fetch
Decode
…
(Super-
Scalar)
Out of Order Execution
mov eax, [eax]
xor ebx, ebx
add ebx, eax
inc ecx
add eax, ecx
Load (遅い)
↑の命令とは依存がない
↑の命令とは依存がない
Out of Order Execution
mov eax, [eax]
xor ebx, ebx
add ebx, eax
inc ecx
add eax, ecx
Load (遅い)
↑の命令とは依存がない
↑の命令とは依存がない
1
2
3
2
3
命令の順番を入れ替えても構わない
しかも、開いてるポートに並列に実行できる
Out of Order Execution
非順序実行
● 実行できる命令から実行する
プロセッサがやらなければならないこと
1. 命令の依存関係を知る
2. 命令をバッファする
3. 実行できる命令から実行する
4. どの命令が終わったかを知る
5. 本来の順序でレジスタへコミットする
Out of Order Execution
● Out of Order
○ Intel P6 から実装 (Pentium Pro)
○ Intel Atom (Silvermont から実装)
○ ARM Cortex-A9 から実装
○ mist32
■ ただし Load/Store OoO は未実装
● In Order
○ Intel Atom (初代 Bonnell)
○ ARM Cortex-A7 以前
速くはなるが
回路規模は大きくなる
更に深く進んでみる
Out of Order Execution
● Register Renaming
○ 物理レジスタを仮想レジスタにリネームする
○ 命令の依存をより少なくできる
○ (アウトオブオーダー実行に必須ではないが...)
mov eax, [eax]
inc eax
mov [eax], eax
mov eax, ebx
mov eax, [eax]
同じ eax レジスタ
だが、依存はない
← 先に実行可能
Out of Order Execution
代表的な OoO の実装
● Reorder Buffer
○ 命令のコミットを制御するバッファ
○ 演算の結果は一度ここへ書かれる
● Reservation Station
○ 命令の依存関係を待つところ
○ ソースレジスタが利用可能かを監視して、
実行可能であれば実行を開始する
○ Unified な方式、実行ポートごとに持たせる方式
Reorder Buffer (の一例)
Reorder Buffer Stage
1. 割り当て
Writeback Stage
2. 結果の書き込み
Retire / Commit
Reorder Buffer
Register File
3. コミット
Reservation Station (の一例)
Reservation Station
命令1 SRC1
NG
SRC2
OK
命令2 NG NG
命令3 OK NG
命令4 OK OK
Reorder Buffer,
Register File
Execution ステージへ
息抜きに、x86 のブロック図を眺めてみよう
http://www.tomshardware.com/reviews/athlon-processor,121-2.html
http://www.tomshardware.com/reviews/athlon-processor,121-2.html
http://www.thg.ru/cpu/20001120/print.html
uOPs (micro-OPs)
みんな知ってる?
カーネル/VM では説明不要
最近? の uOPs
● Micro-OPs Fusion
○ Fused Micro-OP
○ 一部 uOP をまとめてパイプラインに流す
■ uOP 帯域の削減
● Macro-OPs Fusion
○ 複数の x86 命令をまとめる
○ 例えば CMP + Jxx
○ Macro-OP レベルの並列性を向上
■ 少ないデコーダで実現
Branch prediction
分岐予測
● ブランチは厄介
○ taken / not taken は直前になるまでわからない
○ ミスするとパイプラインをフラッシュしてやり直し
■ すごい大きなペナルティになる
○ ブランチするかしないか、予測する必要がある
分岐予測以外のアイデア
● Condition-Code (ARM)
○ AArch64 では消え去りました
Branch prediction
mov eax, [eax]
cmp eax, 0
je is_zero
...
...
is_zero:
...
実行完了するまで
分岐するかわからない
Branch prediction
● 分岐予測がアツイ (らしい)
○ 電力があまり食わない上に性能向上に直結する
○ Intel の 3% ルール
○ 最近もいろいろな変更がある (ただし企業秘密?)
● 基本的な分岐予測
○ 分岐しない (or する) 方向で常に予測しておく
■ 486
○ 前回分岐した結果を保存しておく
○ ループを検出する
○ ...
Branch prediction
● Bi-modal counter
○ よく branch するループは strongly taken に
○ ほとんど branch しない場合は stolongly not taken
○ 一度だけならいつもと違う動作をしても予測できる
Branch prediction
● Loop detector
○ n 回目で必ず分岐するなら、n を記憶しておく
○ 過去 n 回の分岐パターンを記憶する
● Global branch predictor
○ ある特定の分岐をそれぞれ記憶するのではなく、
すべての分岐のパターンを記憶しておく
○ 周りの分岐命令との相関関係
最近のプロセッサは、ハイブリッド分岐予測器
● Bimodal + Loop detector + Global
● どれか有効なものを使用する
最近の x86 のブロック図を眺めてみよう
ブロック図を読み解く
http://arstechnica.com/business/2010/09/intels-next-must-have-upgrade-a-look-at-sandy-bridge/
http://www.hardwaresecrets.com/printpage/Inside-the-Intel-Haswell-Microarchitecture/1777
最近の Intel のプロセッサ
● Zeroing Idioms
○ xor eax, eax のような命令をゼロレジスタに、
リネームする
● uOP Cache
○ uOp の変換をキャッシュする
○ フロントエンドが眠ることができる
○ Intel のデコーダはでかい
■ でかいデコーダを眠らせると電力効率アップ
● 実行ポートの増加
○ ブランチユニット、AGU が増えた
最近の Intel プロセッサ
他にも...
● Physical Register File
○ 物理レジスタファイルへ直接書き込む
○ 待ち受け命令への ROB からのコピーを削減
● 分岐予測機のさらなる改良
○ 詳細不明、エントリが増えてるなど
● ROB, RS のエントリの追加
● Macro-Fusion の命令の追加
最近の Intel のプロセッサ
● デコードの隠蔽に力を入れているっぽい
○ x86 のクソ命令セットが重い
○ デコーダに負担がかかる
■ デコーダ回路もでかい + 電力食い
○ いかにデコーダを回さないか
■ uOP Cache
■ uOP レベルでの分岐予測
● なぜ、あんなに性能が出るのか
○ 命令セットはクズなのに
○ Intel すごすぎ
ただし、Intel に x86 以外を作らせると...
http://pc.watch.impress.co.jp/docs/column/kaigai/20130912_615261.html
http://pc.watch.impress.co.jp/docs/column/kaigai/20120214_511793.html
まとめ
● マイクロアーキテクチャの進化
○ まだまだ続きそう
○ だけど Intel の独壇場的な感じもする
● 世代・メーカーで結構違う
○ Intel と AMD のポートのもたせ方の違いとか

More Related Content

What's hot

EMBA - From Firmware to Exploit - BHEU22
EMBA - From Firmware to Exploit - BHEU22EMBA - From Firmware to Exploit - BHEU22
EMBA - From Firmware to Exploit - BHEU22
MichaelM85042
 
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
whywaita
 
Boostのあるプログラミング生活
Boostのあるプログラミング生活Boostのあるプログラミング生活
Boostのあるプログラミング生活
Akira Takahashi
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
 
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.230分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
uchan_nos
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08
sperkbird
 
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門
uchan_nos
 
Informática básica-supera-cursos
Informática básica-supera-cursosInformática básica-supera-cursos
Informática básica-supera-cursos
Carlos Rodrigo de Araujo
 
UniRx完全に理解した
UniRx完全に理解したUniRx完全に理解した
UniRx完全に理解した
torisoup
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
Atsushi KOMIYA
 
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)Takeshi HASEGAWA
 
第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料
直久 住川
 
Marp入門
Marp入門Marp入門
Marp入門
Rui Watanabe
 
衝突判定
衝突判定衝突判定
衝突判定
Moto Yan
 

What's hot (20)

EMBA - From Firmware to Exploit - BHEU22
EMBA - From Firmware to Exploit - BHEU22EMBA - From Firmware to Exploit - BHEU22
EMBA - From Firmware to Exploit - BHEU22
 
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
作って(壊して?)学ぶインターネットのしくみ サイバーエージェントの実験用ASの紹介 / Introduce experimental AS in ...
 
Boostのあるプログラミング生活
Boostのあるプログラミング生活Boostのあるプログラミング生活
Boostのあるプログラミング生活
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.230分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
 
Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08
 
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門
 
Informática básica-supera-cursos
Informática básica-supera-cursosInformática básica-supera-cursos
Informática básica-supera-cursos
 
UniRx完全に理解した
UniRx完全に理解したUniRx完全に理解した
UniRx完全に理解した
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
 
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
 
第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料
 
Marp入門
Marp入門Marp入門
Marp入門
 
衝突判定
衝突判定衝突判定
衝突判定
 

Viewers also liked

やってよかったOS作り
やってよかったOS作りやってよかったOS作り
やってよかったOS作り
Hidemi Kawai
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門demuyan
 
ハッキング実演
ハッキング実演ハッキング実演
ハッキング実演
Ken Ogura
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
 
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
Yuma Ohgami
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
kikuchan98
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発
Katsumi Honda
 
IPA未踏成果報告会
IPA未踏成果報告会IPA未踏成果報告会
IPA未踏成果報告会Ito Takahiro
 
Web MIDI meets DIY #0
Web MIDI meets DIY #0Web MIDI meets DIY #0
Web MIDI meets DIY #0
Ryoya Kawai
 
Synverll
SynverllSynverll
Synverll
Hidemi Ishihara
 
Midi with android
Midi with androidMidi with android
Midi with android
kshoji
 
Processing資料(6) 様々な図形
Processing資料(6) 様々な図形Processing資料(6) 様々な図形
Processing資料(6) 様々な図形
reona396
 
Processing資料(5) 正弦波と極座標
Processing資料(5) 正弦波と極座標Processing資料(5) 正弦波と極座標
Processing資料(5) 正弦波と極座標
reona396
 
自作x86エミュレータの終焉
自作x86エミュレータの終焉自作x86エミュレータの終焉
自作x86エミュレータの終焉Daisuke Kamikawa
 
Javaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータJavaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータDaisuke Kamikawa
 
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
kozossakai
 
Processing資料(1) Processingの基本
Processing資料(1) Processingの基本Processing資料(1) Processingの基本
Processing資料(1) Processingの基本
reona396
 
Processing資料(2) 再帰
Processing資料(2) 再帰Processing資料(2) 再帰
Processing資料(2) 再帰
reona396
 
Hacking Ctrl-C
Hacking Ctrl-CHacking Ctrl-C
Hacking Ctrl-C
uchan_nos
 

Viewers also liked (20)

やってよかったOS作り
やってよかったOS作りやってよかったOS作り
やってよかったOS作り
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
ハッキング実演
ハッキング実演ハッキング実演
ハッキング実演
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
 
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
 
xv6 + mist32 + mruby
xv6 + mist32 + mrubyxv6 + mist32 + mruby
xv6 + mist32 + mruby
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発
 
IPA未踏成果報告会
IPA未踏成果報告会IPA未踏成果報告会
IPA未踏成果報告会
 
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
 
Processing資料(6) 様々な図形
Processing資料(6) 様々な図形Processing資料(6) 様々な図形
Processing資料(6) 様々な図形
 
Processing資料(5) 正弦波と極座標
Processing資料(5) 正弦波と極座標Processing資料(5) 正弦波と極座標
Processing資料(5) 正弦波と極座標
 
自作x86エミュレータの終焉
自作x86エミュレータの終焉自作x86エミュレータの終焉
自作x86エミュレータの終焉
 
Javaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータJavaで作る超簡易x86エミュレータ
Javaで作る超簡易x86エミュレータ
 
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
 
Processing資料(1) Processingの基本
Processing資料(1) Processingの基本Processing資料(1) Processingの基本
Processing資料(1) Processingの基本
 
Processing資料(2) 再帰
Processing資料(2) 再帰Processing資料(2) 再帰
Processing資料(2) 再帰
 
Hacking Ctrl-C
Hacking Ctrl-CHacking Ctrl-C
Hacking Ctrl-C
 

Similar to バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1

XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
Shinya Okano
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
Hirotaka Kawata
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
信之 岩永
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
 
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Supership株式会社
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorockyuzorock
 
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010Tsukasa Oi
 
Interop 2017 in huawei booth
Interop 2017 in huawei boothInterop 2017 in huawei booth
Interop 2017 in huawei booth
Tomohiro Hirano
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
sandai
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
Kazuki Takai
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…Yasumasa Suenaga
 
Mt basic as-os_on_danbot
Mt basic as-os_on_danbotMt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
 
OpenStack with OpenFlow
OpenStack with OpenFlowOpenStack with OpenFlow
OpenStack with OpenFlow
Toshiki Tsuboi
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
Masahito Zembutsu
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
Hiro Yoshioka
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトOpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
uchan_nos
 
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門 【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
sandai
 
短距離古典分子動力学計算の 高速化と大規模並列化
短距離古典分子動力学計算の 高速化と大規模並列化短距離古典分子動力学計算の 高速化と大規模並列化
短距離古典分子動力学計算の 高速化と大規模並列化
Hiroshi Watanabe
 
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
Insight Technology, Inc.
 

Similar to バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1 (20)

XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
Graviton2プロセッサの性能特性と適用箇所/Supership株式会社 中野 豊
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
 
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
 
Interop 2017 in huawei booth
Interop 2017 in huawei boothInterop 2017 in huawei booth
Interop 2017 in huawei booth
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
 
Mt basic as-os_on_danbot
Mt basic as-os_on_danbotMt basic as-os_on_danbot
Mt basic as-os_on_danbot
 
OpenStack with OpenFlow
OpenStack with OpenFlowOpenStack with OpenFlow
OpenStack with OpenFlow
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトOpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
 
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門 【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
 
短距離古典分子動力学計算の 高速化と大規模並列化
短距離古典分子動力学計算の 高速化と大規模並列化短距離古典分子動力学計算の 高速化と大規模並列化
短距離古典分子動力学計算の 高速化と大規模並列化
 
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
 

More from Hirotaka Kawata

KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
Hirotaka Kawata
 
Micro Python で組み込み Python
Micro Python で組み込み PythonMicro Python で組み込み Python
Micro Python で組み込み Python
Hirotaka Kawata
 
Introduction of PyCon JP 2014 in PyCon SG
Introduction of PyCon JP 2014 in PyCon SGIntroduction of PyCon JP 2014 in PyCon SG
Introduction of PyCon JP 2014 in PyCon SGHirotaka Kawata
 
産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会Hirotaka Kawata
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表Hirotaka Kawata
 
Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmOpen Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmHirotaka Kawata
 
About University of Tsukuba Linux User Group
About University of Tsukuba Linux User GroupAbout University of Tsukuba Linux User Group
About University of Tsukuba Linux User Group
Hirotaka Kawata
 

More from Hirotaka Kawata (7)

KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
 
Micro Python で組み込み Python
Micro Python で組み込み PythonMicro Python で組み込み Python
Micro Python で組み込み Python
 
Introduction of PyCon JP 2014 in PyCon SG
Introduction of PyCon JP 2014 in PyCon SGIntroduction of PyCon JP 2014 in PyCon SG
Introduction of PyCon JP 2014 in PyCon SG
 
産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
 
Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmOpen Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pm
 
About University of Tsukuba Linux User Group
About University of Tsukuba Linux User GroupAbout University of Tsukuba Linux User Group
About University of Tsukuba Linux User Group
 

バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1