summaryrefslogtreecommitdiff
path: root/chap/chap4.tex
diff options
context:
space:
mode:
Diffstat (limited to 'chap/chap4.tex')
-rw-r--r--chap/chap4.tex6
1 files changed, 5 insertions, 1 deletions
diff --git a/chap/chap4.tex b/chap/chap4.tex
index 04ed1c6..16726d3 100644
--- a/chap/chap4.tex
+++ b/chap/chap4.tex
@@ -74,6 +74,7 @@ DIFT 可以作为 Spectre 攻击的检测手段之一。Spectre 的论文中指
\end{minted}
\caption{Spectre 组件的汇编代码}
\label{lst:spectre_v1_asm}
+\centering
\end{figure}
上述 Spectre v1 的组件代码可以产生图\ref{lst:spectre_v1_asm}所示的指令。
@@ -106,6 +107,7 @@ lea rdx, {[}rip + 0x2b425d{]} & rdx <- rip + 0x2b425d & T{[}rdx{]} <- T{[}rip{]}
\end{tabular}
\caption{分支中代码产生的 DIFT 行为}
\label{tab:spectre_dift}
+\centering
\end{table}
以下描述这个检测方法的具体细节。
@@ -159,6 +161,7 @@ void victim(size_t x, uint8_t k) {
\end{minted}
\caption{泄露数据的指令和内存中的数据存在控制相关的情形}
\label{lst:victim_v10}
+\centering
\end{figure}
这个例子读取的 \verb|array1[x]| 和攻击者猜测的值 \verb|k| 进行比较,如
@@ -213,7 +216,7 @@ DIFT 方案在 gem5 中的实现。
\subsection{gem5 的乱序执行处理器}
-\Todo: 做一个 gem5 流水线的示意图?
+%\Todo: 做一个 gem5 流水线的示意图?
gem5 的乱序执行处理器实现在 FullO3CPU 类中,它又用类实现类处理器的以下
流水级:取指(Fetch)、译码(Decode)、重命名(Rename)、发射/执行/回
@@ -352,6 +355,7 @@ FenceDelay & 指令被阻止执行,直到确认安全,在 InvisiSpec 之外
\end{tabular}
\caption{新增的指令状态}
\label{tab:inst_status}
+\centering
\end{table}
在每一周期,处理器扫描 ROB 中的每条指令,更新流水线中每条指令的