summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2019-05-16 00:38:10 +0800
committerIru Cai <mytbk920423@gmail.com>2019-05-16 00:38:10 +0800
commit1c9765a23c756d8d5d48e383ef6ca47c0f9bb1a8 (patch)
tree6b1e228763f0d823ed2cba79c07cff31f0fee868
parent29f78286a4a82782661c6e9f8ecc1d70939cbe56 (diff)
downloaddissertation-1c9765a23c756d8d5d48e383ef6ca47c0f9bb1a8.tar.xz
upd
-rw-r--r--chap/chap1.tex40
1 files changed, 32 insertions, 8 deletions
diff --git a/chap/chap1.tex b/chap/chap1.tex
index 4b26c79..ecd4e7b 100644
--- a/chap/chap1.tex
+++ b/chap/chap1.tex
@@ -36,14 +36,38 @@ ARM等处理器设计厂商,和Google、Microsoft等软件厂商,均提出
\section{研究平台与环境}
-本文使用 gem5 模拟器\supercite{gem5}作为研究平台。gem5 提供了多种 CPU
-模型的模拟,包括简单的单周期处理器、详细的按序流水线处理器、乱序超标量
-处理器。gem5 支持 X86, ARM, Alpha, MIPS, RISC-V 等指令系统。gem5 乱序
-处理器模型基于 Alpha 21264,有取指、译码、重命名、发射、执行、回写、提
-交等流水线阶段,包含乱序超标量处理器中的分支预测器、指令队列、重排序缓
-冲、装载存储队列等常见部件。gem5 可以详细地模拟存储系统,包括高速缓存、
-DRAM、crossbar等组件,通过使用Ruby存储系统,还可以模拟自定义的缓存一致
-性协议。gem5 支持同构和异构多核系统的模拟,支持对系统功耗进行建模。
+本文使用 gem5 模拟器\supercite{gem5}作为研究平台。
+
+gem5 是一个模拟平台,由 GEMS 和 M5 两个模拟器项目合并而成,同时具有这两
+个模拟器的优点。M5 提供了一个可配置的框架,支持多种指令系统和多种 CPU
+模型,GEMS 则提供了一个详细而灵活的存储系统,支持多种缓存一致性模型和互
+联模型。gem5 支持 X86, ARM, Alpha, MIPS, RISC-V 等指令系统。作为一个开
+源的模拟器,学术界和工业界都为 gem5 的开发做出贡献,使得 gem5 称为体系
+结构研究中最流行的模拟器之一。
+
+gem5 的灵活性使得研究者可以根据需要选择不同的系统模型,取得模拟速度和精
+度的平衡。gem5 支持以下模型的配置:
+
+\begin{itemize}
+\item CPU 模型:gem5 支持四种不同的 CPU 模型。AtomicSimpleCPU 模拟一个
+ 单周期处理器,模拟速度最快。TimingSimpleCPU 在此之上增加对存储访问时
+ 间的模拟。O3CPU 则是一个详细的乱序执行处理器模型。
+\item 系统模式:gem5 可以用系统调用模拟(SE)和全系统(FS)两种模式进
+ 行模拟,前者模拟大多数的系统调用,无需对操作系统和设备进行模拟,而后
+ 者则模拟了操作系统和设备,同时执行用户态和内核态的指令。
+\item 存储系统:gem5 包含两种存储系统模型,来自 M5 的 Classic 模型容易
+ 配置且模拟速度快,而来自 GEMS 的 Ruby 模型则提供了一个可以精确模拟缓
+ 存一致性模型的存储系统模拟框架。
+\end{itemize}
+
+gem5 模拟器使用 C++ 编写,并集成了 Python,模拟器的核心功能由 C++ 实现,
+而 Python 用于初始化、配置和控制模拟器。为了支持多种指令系统和缓存一致
+性协议,gem5 分别使用了两种领域专用语言,指令系统描述语言
+和 SLICC 在gem5 构建时转为 C++ 代码并编译,生成指令系统和缓存一致性协议
+的模型代码。
+
+最新的 gem5 还支持功耗的模拟,和 SystemC 协同模拟,同构和异构多核模拟
+等特性。
\section{论文组织结构}