• 其他语言



在没有模拟器的情况下进行模拟
页面和feed选项
打印
收藏此页
Digg此页 | 添加到您的del.icio.us帐号
目录

高速缓存/内存子系统
当前实施的高速缓存模拟器模块可以支持任意的高速缓存/内存配置。

同时,它还可计算:

  1. 高速缓存各方向的流量(读/写操作);
  2. 高速缓存行的命中/未命中;
  3. 有关分离或不一致操作的信息。
为了维护多处理器设备的复杂高速缓存系统,我们引入了总线对象来模拟:

  1. 高速缓存间的链接;
  2. 多核架构中内核间的链接;
  3. 一枚处理器中不同单元间的链接;
  4. 总线对象的各方向流量。
高速缓存模拟器模块是线程安全的,在模拟多核架构时可保持高速缓存一致性。

图 3 中显示了高速缓存系统的一个举例。

如欲了解编程举例,请参见代码样本


分支预测
分支预测模块能够模拟不同的分支预测模式和算法。

迄今为止实施了两种算法:

  1. 静态 BTFNT ― 后向分支,被预测为 Taken;前向分支,被预测为 Not Taken;
  2. 动态 SPD ― 简单模式检测。
以前的算法广泛应用于现代处理器中,以减少误预测分支的数量。静态预测算法多数情况下较为准确,下文将会详细介绍。

以后的方法涉及到记录 taken 和 not taken 分支的历史信息,并用于预测下一个分支。

分支预测模块为调用程序提供了以下信息:

  1. 预测和误预测分支的数量;
  2. 条件和无条件分支的数量;
  3. 前向和后向分支的数量;
  4. 对各模块和函数的详细分支预测统计数据。
请参见代码样本了解有关如何使用的详细信息。

优点
我们在此列出了架构模拟器和推荐的初步模拟技术的优势,以便于读者选择各自所需。

架构模拟器带来的优势:

  • 无需构建硬件系统
  • 准确的结果
  • 可模拟整个执行环境
缺点:

  • 往往需要将目标应用移植到新架构。
  • 有时模拟器会对应用施加限制,如限制可用内存容量、I/O 操作等。
  • 开发一套完整的实用程序和模拟器(至少一个编译器和一个模拟器)通常要花费大量时间和资源。
代码处理器技术优势:

  • 使用现有的编译器或汇编程序用于当前架构。
  • 快速模拟程序。
  • 以应用为导向。
  • 所分析的应用没有额外的限制(如 I/O、内存等)。
  • 可扩展设计 ― 新指令或指令集、新寄存器和寄存器类似模拟模块可以单独添加,还可以添加用于模拟功耗、总线利用率、或任何其它系统特征的模块。
上一部分1  2  3  4  5  下一部分

第 4 页, 共 7 页