diff options
Diffstat (limited to 'chap/chap4.tex')
-rw-r--r-- | chap/chap4.tex | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/chap/chap4.tex b/chap/chap4.tex index 16726d3..892ecea 100644 --- a/chap/chap4.tex +++ b/chap/chap4.tex @@ -1,11 +1,11 @@ -\chapter{针对 Spectre 攻击的微架构设计}\label{sec:mywork} +\chapter{针对 Spectre 攻击的微体系结构设计}\label{sec:mywork} 本章讲解本文提出的一种防御 Spectre 攻击的方法,该方法使用动态信息流追 踪的方法,检测 Spectre 组件指令流中可能泄露秘密数据的访存指令,并使用 一种安全的方法执行这些访存指令。 -这种微架构设计不需要软件的支持,未修改的软件和操作系统可以直接在采用这 -种微架构改进的处理器中执行。 +这种微体系结构设计不需要软件的支持,未修改的软件和操作系统可以直接在采用这 +种微体系结构改进的处理器中执行。 \section{威胁模型} @@ -177,12 +177,12 @@ void victim(size_t x, uint8_t k) { 移指令的执行结果,从而推测出内存中秘密数据的值,因此这样的装载指令也是 不安全的指令。 -这种检测方案的微架构实现如图\ref{fig:spectre_dift}所示。 +这种检测方案的微体系结构实现如图\ref{fig:spectre_dift}所示。 \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{spectre_dift.eps} - \caption{基于 DIFT 的 Spectre 检测方法的微架构示意图} + \caption{基于 DIFT 的 Spectre 检测方法的微体系结构示意图} \label{fig:spectre_dift} \end{figure} @@ -208,9 +208,9 @@ void victim(size_t x, uint8_t k) { 大。这种方法和 Conditional Speculation \supercite{conditional-speculation} 中的基于缓存命中的过滤器基本相同。 -\section{针对 Spectre 攻击的微架构在 gem5 中的实现} +\section{针对 Spectre 攻击的微体系结构在 gem5 中的实现} -以下介绍这种可抵抗 Spectre 攻击的微架构在 gem5 模拟器中的实现。首先分 +以下介绍这种可抵抗 Spectre 攻击的微体系结构在 gem5 模拟器中的实现。首先分 析 gem5 中乱序执行处理器的实现,然后分别介绍 InvisiSpec 和本文使用的 DIFT 方案在 gem5 中的实现。 @@ -250,7 +250,7 @@ gem5 的提交阶段由 DefaultCommit 类实现,它提交 ROB 队列头部的 \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{load_exec.eps} - \caption{gem5 O3CPU 执行 load 指令的过程} + \caption{gem5 O3CPU 执行装载指令的过程} \label{fig:load_exec} \end{figure} @@ -303,17 +303,17 @@ InvisiSpec 中,一级缓存处理 SpecLoad 和 Expose 的部分状态如 % hit based -%% 而对于只在缓存命中时执行装载指令的方案,设计相对简单。它只需要处理 -%% SpecLoad 请求。 +% 而对于只在缓存命中时执行装载指令的方案,设计相对简单。它只需要处理 +% SpecLoad 请求。 -%% 在这种情形下,不需要添加额外状态。缓存行在任一状态下,接收 SpecLoad 时 -%% 状态不变。缓存命中时,则执行 spec\_load\_hit 将缓存行中的内容返回至处 -%% 理器。 +% 在这种情形下,不需要添加额外状态。缓存行在任一状态下,接收 SpecLoad 时 +% 状态不变。缓存命中时,则执行 spec\_load\_hit 将缓存行中的内容返回至处 +% 理器。 -%% 而在缓存缺失时,则在其中添加一个 spec\_load\_miss 操作,它向处理器返回 -%% 一个缓存缺失的响应。LSQ 在写回的过程中处理这个响应,为其对应的缓存缺失 -%% 的指令设置表\ref{tab:inst_status}中的 FenceDelay 属性,并通知指令队列需 -%% 要推迟这条访存指令的执行。 +% 而在缓存缺失时,则在其中添加一个 spec\_load\_miss 操作,它向处理器返回 +% 一个缓存缺失的响应。LSQ 在写回的过程中处理这个响应,为其对应的缓存缺失 +% 的指令清除表\ref{tab:inst_status}中的 ReadyToExpose 属性,并通知指令队列需 +% 要推迟这条访存指令的执行。 \subsection{执行流水线的修改} |