Ptlsim user manual notes
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

PTLsim User Manual Notes PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on
  • Presentation posted in: General

PTLsim User Manual Notes. 2008.07.18. 第一部分. PTLsim User Guide. 1.Introduction. 两种版本 Classic version :单线程, userspace linux application PTLsim/X :支持 full system simulation ,多处理器,多线程( SMT 模型),周期精确的虚拟设备时序模型, deterministic time dilation. 4.Code Base. C + C++ 只用到了 C++ 的模板,类,操作符重载

Download Presentation

PTLsim User Manual Notes

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Ptlsim user manual notes

PTLsim User Manual Notes

2008.07.18


Ptlsim user manual notes

第一部分

PTLsim User Guide


1 introduction

1.Introduction

  • 两种版本

    • Classic version:单线程,userspace linux application

    • PTLsim/X:支持full system simulation,多处理器,多线程(SMT模型),周期精确的虚拟设备时序模型,deterministic time dilation


4 code base

4.Code Base

  • C + C++

  • 只用到了C++的模板,类,操作符重载

  • 使用了一个自己的模板库SuperSTL取代C++的STL

  • 暂时跳过


5 x86 instructions

5.X86 Instructions

  • 暂时跳过

  • 讲了一些x86相关的结构


6 decoder architecture and basic block cache

6.Decoder Architecture and Basic Block Cache

  • 暂时跳过


7 ptlsim support subsystems

7.PTLsim Support Subsystems

  • 讲了一些PTLsim支持的特性,如内存管理,Uop应用,垃圾收集等

  • 粗略浏览


8 statistics collection and analysis

8.Statistics Collection and Analysis

  • 统计信息可以通过设置-stats filename来获得,输出的将是一个二进制的文件,通过PTLstat来将该文件转换为用户可以阅读的格式

  • 建议在stats.h中添加自己的counters,这样就能利用PTLsim的统计功能,一些特殊的注释可以用来帮助输出格式化的信息

  • 主要讲了一些PTLsim的统计信息的工具,利用这些工具能够方便的输出图形,表格等。PTLstats使用方法。


9 benchmarking techniques

9.Benchmarking Techniques

  • 讲了怎样使用benchmark,PTLsim的方法是在benchmark的源码中添加ptlsim的函数调用以切换模拟态和native态

  • 不能用IPC来比较x86和RISC的处理器性能,甚至不能用IPC来比较x86处理器之间的性能,应该采用实际完成的模拟周期数比较性能。

  • PTLsim不支持跳过X条指令执行接下来的N条指令,可以结合trigger point和snapshot的方法实现之。

  • Sequential core速度比ooo core要快,不计算


Ptlsim user manual notes

第二部分

PTLsim Classic: Userspace Linux Simulation


10 getting started with ptlsim

10.Getting Started with PTLsim

  • 配置文件可以存在/home/username/.ptlsim下

  • 选项:

    • -logfile filename

    • -loglevel level

    • -startlog cycle

    • -startlogrip rip

  • PTLsim维持一个事件的缓冲环,通过-ringbuf来enable


11 ptlsim classic internals

11.PTLsim Classic Internals

  • PTLsim有自己的内部内存管理和线程管理,不使用标准库。将自己inject到其它进程中以控制它们。与Linux内核联系紧密。

  • 在main()开始前先调用ptlsim_preinit()建立自己的内存管理和线程环境

  • 实现的方法:fork(),然后用子进程exec()

  • Simulation:main()调用init_config()读入配置

  • Ooo core包括扩展的调试和完整性检查的断言。也可用gdb调试。

  • 需要将CPU保持在某个固定的频率上(有的CPU会自动降频)

  • 也可手动发送linux信号使PTLsim切换运行模式


11 ptlsim classic internals1

11.PTLsim Classic Internals

  • Address Space:SPAT

    • 64位机器上,共64KB的bitmap(2^19位)可寻址每页4KB共2GB的空间,顶层共有128K个这样的bitmap,加起来寻址48bit的虚拟内存空间。

    • 32位机器上,只有一个128KB的bitmap(2^20位),寻址每页4KB共4GB的空间

  • 当从native模式切换成simulation模式时,SPAT要通过resync_with_process_maps()函数与系统的内存映射/proc/self/maps保持一致(不同的内核版本,其内存映射文件格式也不同,可能需要修改resync_with_process_maps()函数)。


Ptlsim user manual notes

第三部分

PTLsim/X: Full System SMP/SMT Simulation


12 background

12.Background

  • Full system simulator可分为两种:

    • Hypervisor:在本机上执行大部分unprivileged指令,模拟privileged指令以保持虚拟机之间的隔离,使虚拟机与真实的CPU之间几乎无区别。例如Xen,VM Ware

      • VM Ware使用x86—x86的二进制转换技术,对于I/O密集型的负载,性能损失严重。

      • ESX是VM Ware在Guest OS下执行的Hypervisor,GSX和Workstation则是用户空间的前端程序,包含各种虚拟设备驱动和二进制翻译器

      • Virtual PC和Parallels和VM Ware类似

      • KVM是linux内核2.6.19之后集成的一个hypervisor,需要VT技术的支持。性能好。


12 background1

12.Background

  • Full system simulator:

    • Simulator:使用解释器执行周期精确的x86指令,不在native CPU上执行任何guest指令。

      • Bochs:开源,接近RTL级描述,支持从16位到x86-64的指令。慢,不支持周期精确的ooo x86模型

      • QEMU:使用x86-x86的二进制翻译,属于hypervisor的范畴

      • Simics:闭源,商业,同样使用x86-x86的二进制翻译,不支持x86指令以下的周期精确模型

      • SimNow:AMD x86-64模拟器


12 background2

12.Background

  • Xen:

    • OS必须经过修改以支持一种新的芯片组。这种修改主要考虑页表和中断控制器。


13 getting started with ptlsim x

13.Getting Started with PTLsim/X

  • ptlctl:在模拟结束后必须给出相应的命令继续执行程序,否则程序将停止,这样就会造成无法输入命令的死锁状态。

  • 也可以从别的console输入命令

  • 可以从一个snapshot开始模拟

  • 时间问题:提供了一系列修正时间膨胀问题的参数


14 ptlsim x architecture details

14.PTLsim/X Architecture Details

  • PTLsim/X三组件:Xen Modification, PTLsim Monitor, PTLsim Core

    • Xen Modification


  • Login