The Missing Lectures of Computer System and Architechture: Simulator

Simulator
A Comprehensive yet Easy to Understand Tutorial, primarily Focusing on gem5

Back to Homepage


计算机系统与体系结构缺失的实践——模拟器。gem5是广泛使用且火热的体系结构模拟器。其高度抽象和极致的复杂性阻碍了大部分新手深入理解并编写“正确”的代码的热情。 然而网络上缺乏系统全面和深入的gem5教程,多数教程浅尝辄止,难以体会gem5的魅力所在。 传统的计算机体系结构、计算机系统结构、计算机组成等课程,灌输大量的知识就已经占据了大多数的课时。 从而缺乏有效的深入实践,进而这一部分的实践成为了新手入门时缺失的重要一课。

当然,学习模拟器不仅仅提供了更深入理解系统体系结构知识的途径,也是论文idea的快速验证方式。 或许,你有了模拟器,就能够几乎实现你想做的everything;如果不能,那么,你也有可能通过自己的理解实现之。 如果这个实现经过了充分的验证,欢迎提交PR。gem5本身就是开源的模拟器,开源社区也比较活跃。你也可以从社区中学习到许多。

下面就是The Missing Lectures of Computer System and Architechture: Simulator具体的Lecture部分。 由于笔者自身也不太能够完全理解gem5的整个世界,这里所有的Lecture也只能起到抛砖引玉的作用。如有不对的地方,欢迎邮件联系!!


Lectures List

本节内容: gem5模拟器简介; SE模式与FS模式; 简单的SE模式配置;理解gem5的统计输出

本节内容: Python与C++在gem5中的协同; 内存系统编程模型(Packet 、Port、Simple Memory Object、Simple Cache)

本节内容: 内存缓冲区; 内存突发传输;内存控制器

本节内容: 高带宽内存控制器;内存交织;QoS;内存带宽、频率、时序参数

本节内容: 页表源码解析(映射、重映射、地址翻译、序列化与反序列化)

本节内容: Packet源码解析;与内存控制器的协同;调试信息设置;高性能C++处理(地址中的位运算)

本节内容: 总线源代码解析;各组件的连接;简单的缓存系统设置