From 1c9765a23c756d8d5d48e383ef6ca47c0f9bb1a8 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Thu, 16 May 2019 00:38:10 +0800 Subject: upd --- chap/chap1.tex | 40 ++++++++++++++++++++++++++++++++-------- 1 file 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{论文组织结构} -- cgit v1.2.3