跳转至

1688917280

汇编与接口

CS 专业模块-计算机系统

课程学习内容

这门课主要包括如下内容:

  • Intel x86 指令集,主要部分和小白的汇编语言重叠,cm 更侧重于更多的理论介绍,会介绍更多编码、指令、伪指令等理论知识,小白侧重于编程实践,会做分段、中断截取之类的实验
  • x86 指令集的寄存器组、分段分页硬件逻辑、各种模式切换、锁的实现等
  • SIMD 指令集和开发 SIMD 并行编程能力的方法,如何进行并行编程的数据依赖检测和解决部分数据依赖
  • 介绍了 Intel CPU 芯片的一些硬件结构、IO/mem 访问方法和引脚定义等
  • 介绍了一些 Intel 的古老的 IO 外设芯片,目前包括 PPI、uart、定时器等三种,以及如何对这些接口做编程

任课教师

蔡铭老师是一位非常细心温和的老师,上课的时候每一个知识点他都会讲的非常的清楚细致,每张 PPT、每个知识点都被他烂熟于心,有任何不懂得地方都可以在课间和课后去向他请教,他的课间总是被同学们围着问问题,课后也经常因为和学生讨论问题而停留半个小时,课后 QQ 或者钉钉问他问题都可以得到非常及时详细的答复,而且老师毫无架子,非常的平易近人,问的问题再奇怪再低级,他也会耐着性子慢慢讲解,甚至会特意去查 Intel 的手册和翻阅资料,并且会因为帮同学答疑学到了新的知识而感到非常开心。所以只要你正常上课,就可以把这门课学得很清楚。

蔡老师实验给分虽然没有公布,但是推测应该也是非常 nice 的(当然不会出现无脑给高分的情况),而且因为实验是开放选题,他鼓励大家发散思维,允许我们做任何的研究,并且任何脚踏实地得到的结果都可以得到尊重,即使与预期相悖也可以得到他的认可,这在功利性日益增长的课堂氛围下是难能可贵的。蔡铭老师本人也保持着非常朴素的生活作风,骑着老式自行车,穿着衬衣,经常一个人去食堂窗口打饭,每当走近他的时候,就可以亲切的感受到纯粹自由的学术氛围扑面而来,就像雨后的草木青葱玉泉,清新脱俗,一尘不染。有时候莫名会觉得,蔡老师很像温和版的小白老师,上他的汇编课就会觉得他们的身影在眼前重叠。

著名的楼 Sir,看他的查老师就足以了解了。2023 年秋冬,楼 Sir 的汇编与接口成功因为选课人数过少而停开。

分数构成

20 cm 班具有如下的作业要求:

  • 平时作业(30%)
    • 有且仅有 2 次自主探索性实验
    • 第一次的主题不限,包括但不限于探索某条指令、伪指令(CPU、GPU 甚至 NPU 均可)的性能和妙用,探索 C 关键字的作用(如 register、switch、volatile 等),如何做编译编程的优化、各类语言的虚拟环境的研究(如 PVMJVM 等),这里的探索真的是字面意思上的 " 自由探索 ",主题开放,结果开放,方法开放
    • 第二次是对并行加速的探索,比如探索如何使用 SIMD 编程加速某一个问题,发掘某一个问题的可并行度等,并行的方法可以是 SIMD、多线程甚至可以是 cuda 等,也可以和其他方法相结合,解决的问题可以是矩阵运算、滤波操作、视音频处理、神经网络等等,主题开放,结果开放,方法开放
    • 实验课不需要上
    • 每章结尾有作业,但是很简单,不需要交,自己对答案
  • 期末大程(70%)
    • 考书本教过的所有内容,而且会考差一些不起眼的细节
    • 20 级因为疫情开卷,但是平时惯例是不开卷的,接口硬件的功能引脚定义会给
    • 考试的时候任何英文单词不做解释

希望不会有人需要知道他的给分制度。

课程教材

Intel 微处理器》

作者为 Barry B.Brey。但是平时上课用 PPT,没有书完全没有问题,预习复习好好看 PPT 就可以了,而且不太能买到,笔者用的是影印版质量一般。

其他资料

可以参看小白的教材,汇编语言、操作系统和计算机组成的学习可以帮助你更好地理解里面的部分内容。

学习建议

知识点上没什么好的建议,耐耐心心听蔡老师的课,除了分页分段、模式转换那一节比较难以外,别的最多是指令集要记忆的太多有些枯燥无聊,或者接口芯片学习比较晦涩(其实就是要记的东西比较多,比较琐碎而已,但是因为最后考试会给芯片结构,所以还好),只要好好过 PPT,掌握知识点没有问题,任何问题都可以问蔡老师,他非常乐意回答,而且毫无架子,无需拘束。不过这门课前半部分讲汇编,多数和操作系统的分页分段、汇编语言的内容重合,新的收获较为有限,更多起到拓展和夯实的作用;而接口部分重在对于接口编程的认识,具体芯片的功能、编程方式的学习固然重要,但是记忆每个寄存器位的作用意义不大,学会软件编程范式和硬件设计方式更为重要。

没有实验课,平时作业只有两个自主探索实验,真的可以随便探索,非常自由,比如在探索 lea add 效率高,结果发现效果一样或者变低也是可以一样拿高分的,毫无影响,任何方法、任何内容、任何结果,只要付出的努力问心无愧,得到的分数一定无怨无悔。所以这门课的平时的学习非常轻松,如果汇编学的扎实就更轻松了,比 PPL 和运筹学轻松很多很多。

期末考试占比 70%,而且选择、填空之类的居多,分数都是实打实的,没法送分,错了就是错了,所以如果期末失手会比较痛。考试的题目都是直接的 PPT 的知识点,知道就对,不知道就错了,一般都很简答,我们那年考试,很多人 1 小时就写完了。关于复习,只要 PPT 仔细看过、课上只是讲的时候仔细听过,就没有大问题,而过啥都不知道想补天的话,这个任务量有点大,做好心理准备。

蔡老师是个很好很好的老师,希望大家不要辜负他。