SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
CPUパイプライン入門 
Dora.Panda
今日のお題 
パイプラインと分岐予測の 
お話です。
“Elementary, my dear Watson.”! 
“初歩的なことだよ、ワトソン君。” 
–Sherlock Holmes 
CPUアーキテクチャーを学ぶ第一歩
1. 処理時間 
CPUの時間
入力と出力 
装置には必ず「入力」、「出 
力」があり、「入力」から 
「出力」が得られるまでに 
「時間」が必要となります。 
CPUも「命令」を入力と 
し、「データ」を出力しま 
す。 
お金装置ジュース 
CPU 
命令 
データ 
データ
処理時間 
入力してから出力が得られる 
までの時間を処理時間と定義 
します。! 
CPUの場合、メモリから命 
令を読み出し、結果を書き 
込むまでの時間をクロック 
数で表現します。! 
これをCPI(Clock Per 
Instruction)と呼びます。 
CPU 
メモリ 
t[clocks]
CPI値の例 
CPI 
8086 15 
80286 6 
80486 1.7 
Xeon 0.25 
CPI値は実行するプログラムにもよって異なるので、あくまでも 
参考値です。(参考文献2と5より)
2. なぜ速く 
なったのか 
パイプライン登場の背景
処理時間(昔のCPU) 
CPU 
デコード 
読み出し 
一つの命令をCPU内部で複数 
の命令(マイクロコード)に分 
割して実行する。 
書き込み 
実行 
レジスタ 
メモリ 
ちょーざっくり 
一つの命令が終わってから 
次の命令を読み出す。
無駄な時間(昔のCPU) 
CPU 
デコード 
読み出し 
書き込み 
実行 
レジスタ 
メモリ 
ちょーざっくり 
動作中の一カ所を除き、 
他の回路は何もしていない。
補足:マイクロコード 
旧来のCPUと現在のIntelのCPUにはマクロ命 
令とマイクロ命令がある! 
マクロ命令:CPUが読み出す命令! 
マイクロ命令:マクロ命令を元にCPU内部 
で実行する命令
補足:マイクロコードが生まれた 
背景 
回路の集積度が上げられない! 
32bitの加算命令(回路)を用意せず、4bit加算 
を8回実行しても結果は同じ。(時間は遅い)! 
外部メモリのアクセススピードが遅い! 
一つの命令で複数のCPU内部処理を行うこと 
でメモリアクセス回数を減らす。
時代が変わり前提が崩れる 
集積度が上がる! 
専用回路を用意した方が速いのでは?! 
キャッシュメモリを用意すればメモリアク 
セスは速くなるのでは?
新しい発想~そしてRISCへ 
専用の演算回路を用意する! 
マイクロコードが不要! 
外部から読み出す命令と内部で実行する命令を1対1にする! 
キャッシュを用意する! 
高速だけどメモリアクセス回数が増える 
DRAMに比べて非常に高速! 
命令実行中に次の命令を読み出すパイプライン化してみよう 
! 
使っていない回路に次の命令を読み込んでしまえば同時に複数の命 
令を実行できるよね?
RISCの登場(ざっくり) 
CPU 
デコード 
読み出し 
書き込み 
実行 
レジスタ 
メモリ 
動作していないのはもったいな 
い。次の命令を読んじゃえ! 
メモリは遅いからキャッシュを 
付けよう。 
マイクロコードはやめて 
ハードで実装しよう
3. パイプライン 
流れ作業
基本的なパイプライン 
5段のパイプライン! 
IF:命令フェッチ! 
RF:命令デコード! 
EX:命令実行! 
MEM:保存先計算! 
WR:保存(メモリ、レジスタ) 
IF RF EX MEM WR
クイズ1 
命令の実行時間を考える
問題1 
次の二つのパイプラインがあります。! 
1命令を何クロックで実行できるでしょう 
か? 
IF RF EX MEM WR 
IF RF EX MEM WR 
2 1 3 
その1 
その2 
Clock数
回答1 
どちらも10クロックです。 
IF RF EX MEM WR 
2 2 2 2 2 
IF RF EX MEM WR 
2 1 3 
その1 
その2 
Clock数2 2
クイズ2 
もしステージごとの動作クロッ 
クがバラバラだとどうなる?
問題2 
次の二つのパイプラインがあります。! 
20クロックで何命令実行できるでしょうか? 
IF RF EX MEM WR 
IF RF EX MEM WR 
2 1 3 
その1 
その2 
Clock数
回答2 
その1:6命令 
IF RF EX ME WR 
IF RF EX ME WR 
IF RF EX ME WR 
IF RF EX ME WR 
IF RF EX ME WR 
IF RF EX ME WR 
命令1 
命令2 
命令6 
・パイプラインの各ステージ:スレッド! 
・クロックの立ち上がり:周期タイマーイベント! 
をイメージすると分かりやすいかも
回答2 
その2:4命令 
IF EX MEM WR 
IF EX MEM WR 
IF EX MEM WR 
IF EX MEM WR 
IF EX MEM 
未完了 
命令1 
命令2 
命令4 
命令5
パイプラインの理想像 
各ステージは1クロックで動作! 
理想的な状態では1クロックで1命令を実行! 
1.0 IPC(1 instruction per clock)! 
工場などで「1分間にxx台の生産能力がありま 
す」というのと同じ。! 
現実的に命令が1クロックで実行できるとは 
限りませんが。
クイズ3 
キャッシュの課題
問題3 
このパイプラインは1クロックに1命令を実行 
できません。なぜでしょうか? 
IF RF EX MEM WR 
Cache 
RAM 
各ステージは1クロックで動 
作するとします。
回答3 
1つのメモリ(キャッシュ)に対し、同時に 
「読み出し」、「書き込み」は不可能。 
IF RF EX MEM WR 
Cache 
RAM 
読み出し中は書き込み不可! 
書き込み中は読み出し不可
ハーバードアーキテクチャ 
命令とデータを同時にアクセスするには、命 
令バスとデータバスを分ける必要がある。! 
CPUには「命令キャッシュ」と「データ 
キャッシュ」がある。 
IF RF EX MEM WR 
Inst! 
Cache 
Data! 
Cache
クイズ4 
連続した命令の問題
問題4 
次のようなプログラムがあります。! 
この場合、1クロックに1命令を実行すること 
は不可能です。なぜでしょうか? 
ADD, R0, R1! // R0 = R0 + R1! 
CMP, R0, R2! // R0 = R2 ?! 
a = a + b;! 
if (a == c) {!
回答4 
命令1の結果がR0に書き込まれる前に、命令2 
がR0を使うから。! 
これをハザードと呼びます。 
IF RF EX ME WR 
IF RF EX ME WR 
命令1 
命令2 
ADD, R0, R1! // R0 = R0 + R1! 
CMP, R0, R2! // R0 = R2 ?!
解決策 
フォワーディング! 
IF RF EX ME WR 
! 
IF RF EX ME WR 
命令スケジューリング! 
命令順序入れ替え、NOP命令挿入! 
インターロック! 
パイプラインをストールする 
命令1 
命令2
クイズ5 
分岐命令の問題
問題5 
条件分岐命令があります。分岐する、しない 
をどのように判断したら良いでしょうか? 
命令1 
IF RF EX ME WR 
命令2 
IF RF EX ME WR 
命令3 IF RF EX ME WR 
分岐命令 
分岐しなけ 
れば命令2 
分岐するなら命令3 IF RF EX ME WR 
命令1がEXステージを完了しないと、どちらを読むか確定しない。!
回答5 
ストール! 
分かんないから止めちゃえ。! 
投機実行! 
動的予測! 
履歴を取る。! 
静的予測! 
戻るか進むか? 
分岐予測テーブル 
命令アドレス! 
分岐先アドレス! 
履歴! 
命令アドレス! 
分岐先アドレス! 
履歴! 
命令アドレス! 
分岐先アドレス! 
履歴! 
静的予測 
命令! 
分岐命令! 
命令 
命令! 
命令! 
… 
実行しそうな 
命令は近く 
実行しなさそうなのは! 
遠くへポイッ
4. 実際の話 
現実的には?
動作クロック 
すべてを1クロックで実行するのは不可能! 
実行時間の長い命令! 
乗算、除算、浮動小数点演算、ロード/スト 
ア、etc! 
メモリアクセス! 
キャッシュミスヒット時はものすごい遅い
命令デコード 
RISC系:バイトコード=内部命令! 
命令長が一定(の場合が多い)! 
命令がシンプル! 
CISC系(x86系):バイトコード≠内部命令! 
命令長可変! 
命令が複雑でパイプラインに向かない! 
命令の分解が必要。
x86アーキテクチャの特徴 
命令長が可変! 
命令を読んでみないと、命令長が分からない! 
実行クロックがマチマチ! 
1つの命令で複数の内部命令を実行している! 
マクロ命令からマイクロ命令へデコードするステージが必要! 
後述
命令の比較 
x86 
ARM 
命令長が固定 
命令長が可変
現実のCPU(Haswell-E) 
マイクロコードへの変換 
分岐予測 
実行
実験してみよう 
動的分岐予測! 
同じ方を通り続ける。! 
静的分岐予測! 
わざとはずれる(likely/unlikely/ 
__builtin_expect) 
Intel Performance Counter Monitorを使用して実験しましょう
参考文献 
アーキテクチャ全般! 
1. David A.Patterson/John L.Hennessy; パターソン&ヘネシー コンピュータの構 
成と設計 第4版, 日経BP社, 2011年.! 
2. 中森 章; マイクロプロセッサ・アーキテクチャ入門, CQ出版, 2004年.! 
CPU実例! 
3. Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3A: 
System Programming Guide, Part 1! 
4. Intel® 64 and IA-32 Architectures Optimization Reference Manual! 
5. Performance Analysis Guide for Intel® Core™ i7 Processor and Intel® Xeon™ 
5500 processors
次回のお話は? 
今日の説明の範囲ではCPI値は1.0に限りなく近づくものの、1.0を 
切ることは不可能です。! 
1.0を切るためのアーキテクチャについて勉強しましょう。! 
スーパースカラー、ハイパースレッディング、マルチプロセッサ 
などが必要になります。! 
! 
! 
- Coming Soon -! 
- ハードウェアによる同時実行について(仮題) -! 
(Soon = 半年以内で…) 

Mais conteúdo relacionado

Mais procurados

3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
 3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ- 3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
yoshitaro yoyo
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
健人 井関
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
 

Mais procurados (20)

良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについて
 
3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
 3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ- 3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみたLinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
 
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
 
CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
 
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPさわってみようTOPPERS/SSP
さわってみようTOPPERS/SSP
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
C#とILとネイティブと
C#とILとネイティブとC#とILとネイティブと
C#とILとネイティブと
 

Destaque

統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?
Yuto Suzuki
 
ベイズ基本0425
ベイズ基本0425ベイズ基本0425
ベイズ基本0425
asato kuno
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
智啓 出川
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
hoxo_m
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
智啓 出川
 

Destaque (20)

Windows10の展開手法
Windows10の展開手法Windows10の展開手法
Windows10の展開手法
 
経験過程
経験過程経験過程
経験過程
 
AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説AtCoder Regular Contest 016 解説
AtCoder Regular Contest 016 解説
 
便利な数を100億個の乱数から算出
便利な数を100億個の乱数から算出便利な数を100億個の乱数から算出
便利な数を100億個の乱数から算出
 
H231126 統計および確率を利用した予測と判断rev1
H231126 統計および確率を利用した予測と判断rev1H231126 統計および確率を利用した予測と判断rev1
H231126 統計および確率を利用した予測と判断rev1
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
確率論基礎
確率論基礎確率論基礎
確率論基礎
 
統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?統計勉強会 LT ベイジアンって?
統計勉強会 LT ベイジアンって?
 
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
仕事の流儀 Vol1 基本編_ver1.1_外部公開ver
 
ベイズ基本0425
ベイズ基本0425ベイズ基本0425
ベイズ基本0425
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
 
MLaPP 2章 「確率」(前編)
MLaPP 2章 「確率」(前編)MLaPP 2章 「確率」(前編)
MLaPP 2章 「確率」(前編)
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
「数学の世界」発表資料
「数学の世界」発表資料「数学の世界」発表資料
「数学の世界」発表資料
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
 
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
 

Último

Último (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Cpu pipeline basics