计算机组成原理(H)(王超) 2024春 2023春  课程号:CS3001H01
2024春 2023春  课程号:CS3001H01
9.3(11人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
选课类别:计划内与自由选修 教学类型:理论实验课
课程类别:本科计划内课程 开课单位:计算机科学与技术系
课程层次:专业核心   学分:4.0
课程主页:暂无(如果你知道,劳烦告诉我们!)
简介 最后更新:

《计算机组成原理(H)》是计算机科学与技术专业本科教学中的一门重要专业基础课,是在《计算机组成原理》课程基础上面向计算机学院英才班开设的层次化课程。计算机组成原理在计算机科学与技术专业的教学计划中占有重要地位和作用,是学习操作系统、计算机系统结构、编译技术等计算机核心课程的重要基础。学习本课程旨在使学生掌握计算机硬件各子系统的组成原理及实现技术,对全面理解现代计算机软硬件系统的运行机理十分关键,对培养学生设计开发计算机系统的能力有重要作用。

排序 学期

评分 评分 11条点评

2023春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

教学方法:9/10

老师讲课以PPT为主,并配有板书解说。老师讲课还可以,看得出来是很有水平的,虽然有时候比较平淡,但讲到激情的地方也会让人不觉一震。

课间有时会播放一些相关小视频,有的挺有趣的。

课堂内容:10/10

讲课内容为COD黑皮书+唐书,黑皮书中不讲算术部分,额外补充了唐书上的中断异常、总线、IO以及指令调度和智能计算系统部分。

作业考试:10/10

老师作业布置得不算多,每章讲完才布置一次作业。个人甚至觉得布置得算比较少的。

考试题目见后文回忆版,相比平行班来说,没有背诵部分,还是挺不错的。有一些送分题,但也有不少坑。

收获如何:10/10

总体来说,这门课确实可以让人去了解一个计算机是怎样一点一点搭起来的,这样那样的部件是因为什么而添加进计算机里的。

印象比较深刻的是上课时老师常会画一个示意图,一个大框代表CPU,然后边解说边往里加小框代表部件。感觉这个过程还是非常有趣的。

总体评价:10/10

CODH还是不错的,值得推荐。


因为这门课的理论和实验部分是不同老师负责的,就分开来给评价了。

实验部分:8/10

实验部分和模数实验一样,依然是张俊霞老师负责。

一共6个lab,都基于RISCV,全部是单人独立完成。分别是alu, reg file, 汇编程序, 单周期CPU, 流水线CPU, cache + IOU.

不过因为助教都是研究生,所以不像平行班一样准备了完备的实验手册,而是只有张老师的PPT作为实验文档,相对来说可能平行班在实验部分体验会更好一点。


考完了,来点题目回忆:
1.(20分)阿姆达尔定律计算程序加速比
2.(10分)给出器件延时,算单周期、多周期、流水线运行时间(PPT原题)
3.(10分)流水线数据通路的数据依赖和运算溢出异常处理(PPT原题改)
4.(10分)大小端内存读写(作业原题改)
5.(10分)连线 RAM 和 ROM 实现存储拓展,数电题(PPT原题)
6.(18分)流水线下,两指令序列在无forward、只有ALU的forward、完全forward下的执行方式
7.(15分)给出主存和cache大小,给出块大小,设计四路组相连cache,写出主存地址分段,给出程序计算命中率,求相比无cache时的加速比,求效率
8.(7分)给定数据与本原多项式,分别考了海明码和 CRC


资料分享,包括一些RISCV的参考和教材电子版

cod.rar

(最后修改于 4 0 复制链接
Melmaphother 2023春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:一般
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:一般

给学弟学妹们减轻一些负担(虽然我不知道实验会不会改动)

课程资源:https://github.com/Melmaphother/ustc-course-resources/tree/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86(H)

实验 repo:https://github.com/Melmaphother/ustc-codh-2023

3 3 复制链接
TheBunniestForever您好,请问您的太庙想修在哪里?(雾
Melmaphother回复 @TheBunniest: 有帮助的话,给个star就好啦🍕🍕🍕
TheBunniestForever回复 @Melmaphother: Already starred, yeah~
立即登录,说说你的看法
  • 课程难度:中等
  • 作业多少:很少
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:很少
  • 给分:超好
  • 收获:很多

wwcc老师是计科的老学长(05级),所以在上课的时候有不少挺乐的睿评:

当时我们还得写x86汇编呢,你们现在还是太幸福了(大意如此)—— wwcc

整体上课的体验很好,今年(这儿先指前几周吧)的小视频也没缺席!

今天中午往教室走的时候碰到老师了,唠嗑的时候才想起来老师平常在苏州,每天上午坐车到合肥,中午在西区吃个饭之后下午就要上课,他真的好敬业我哭死5555555

“嗯,车票钱还是报销的”——wwcc

幸好如此!Amen!

3 0 复制链接
しろは 2023春
  • 课程难度:困难
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:一般
  • 难度:困难
  • 作业:中等
  • 给分:超好
  • 收获:一般

评分其实不太重要,因为你没得选


关于作业:刚开学有一篇报告,隔几周会有一些课后题,总体量不多

那么作业多在哪里呢?在配套的COD实验,总共六个硬件实验,后三个分别是单周期CPU,流水线,综合实验(今年变成固定要求不是自由发挥了,也好)。实验最后一次大概花了我整整三四天(:50+h)的时间。而我这个学期每周最自闭的时候也就是周三网上走出机房的时候,有一部分原因大概是因为Mac,配环境花了很久(到第五次实验的时候我才找到了能在我一台笔记本上完成编程、烧写、调试所有流程的方法),在这之前我只能靠Vlab或者是机房的电脑存活(机房的电脑也疏于维护,甚至有的时候你找不到Vivado在哪里)。你可能无法想象这是一件多么痛苦的事情:在我找到解决方法之前,后面一点的实验依靠Vlab每次生成比特流都需要花20min,也就是说每次上板子调试都需要20min。

 


如果你用的是Mac

Vivado部分:用PD或者UTM+Debian,在里面安装学校提供的Vivado版本,可以大致参见或者查找其他文章:https://gist.github.com/sohnryang/ca5d2512f7c6e0bab87843dbf1a3708f

烧写、调试部分:用PD+串口调试工具,最新的PD是可以支持串口的,所有功能正常,不过你可能需要一个micro-usb -> type-C的转换头。

3 0 复制链接
夫诸 2024春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:一般
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:一般

这门课的实验部分和理论课部分是算在一起的。

实验课给我的体验就是非常差,比大物实验还要差,和上个学期的数电实验相比简直是天壤之别。

第一个实验就是拿 Verilog 写一个排序器,要求上板,ddl一个星期。这个学期的实验和上个学期不同,是要用到开发板的。而开发板和线上的 FPGA 不同,很多接口都是不一样的。线上平台的 rst 是高电平有效,开发板的 rstn 是低电平有效,数码管的译码模块也完全不同,上板的约束文件也是要改的,这些都是工作量的一部分,我认为最起码在讲课的时候要简单介绍一下这些区别。而关于译码器的具体实现,包括状态机之类的,老师也没有提到。

第二个实验是拿汇编语言写一个冒泡排序,这个的任务量远远不如第一个,毕竟上个学期的 ICS 实验比这个难多了,这个实验也是唯一一个没有什么槽点的实验。

第三个实验是实现 39 条指令的单周期 CPU。如果单单是改写 CPU 的话,工作量还在可以接受的范围,给的示例代码里面已经把基本的框架完成的差不多了。但问题是实验环境的配置,这个老师只是一笔带过,具体怎么生成测试的指令,怎么生成golden trace,怎么看错在哪条指令,怎么上板完全没有讲,都要自己一点一点去摸索和问助教,最后还是在ddl前几天助教发了具体的教程。做这个实验给人的感觉就是折磨,资料只能从网上查,ppt一点作用都没有。

然后是多周期 CPU 的实验,和单周期的CPU 一样,体验很差,做实验还得去翻隔壁班的实验文档。

接下来是指令 Cache 的实验,同样是靠隔壁班的实验文档,ppt一点用没有。

最后的综合实验是有几个选做的部分的,数据cache、IOU模块、随机数模块、排序程序的优化都是任务量比较大的项目,合在一起也是极其耗费时间的,特别是每次烧比特流调试都要快10分钟才能烧好。

总而言之,惜字如金的ppt,不合理的实验任务,冗余但无用的实验讲解以及对实验报告的各种要求使得这门实验课的体验极差,整个学期花费大量时间在组原实验上,去解决一些本来应该在实验文档和实验讲解中说明的问题。


考完试来回忆一下试题

第一题是Amdahl定律计算加速比

第二题是计算CPI求程序运行时间

第三题是流水线CPU的冲突和异常处理

第四题是设计一个高性能的处理器,不知道在考什么

第五题是连线 RAM 和 ROM 

第六题是根据CPI计算不同策略下cache和RAM之间通信的带宽

第七题是各种概念,包括CRC码、总线仲裁和通信、I/O信息交换方式、调相PM

(最后修改于 2 0 复制链接
电三狂人 2024春
  • 课程难度:简单
  • 作业多少:很少
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:简单
  • 作业:很少
  • 给分:超好
  • 收获:很多

理论部分:

王超老师主讲。老师讲课讲的很好,作业是祖传作业,上课会点到,考试基本上就考PPT上的内容,总体评价非常好。

实验部分:

张俊霞老师主讲,槽点满满。。。龙芯的那个框架很难搭建,而且还有很多bug,看完ppt也不知道实验怎么做,然后到处问同学……总之做的蛮痛苦的。

最后给分,很奶!考试概念都没默出来,实验迟交过一次,这都有3.7,感动。

 

 

1 0 复制链接
金木小天使 2024春
  • 课程难度:简单
  • 作业多少:很少
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:简单
  • 作业:很少
  • 给分:超好
  • 收获:很多

评课来晚一步,发现大家已经评价的很全面了,故进行一些24年试题的详细整理以及相关注意事项的补充:

试题相关

(1)(五问)给出不同的设备配置(其实就是各部分的加速比不同)分别用Amdahl定律计算加速比(这里大概有四问),最后再问该如何搭配获得最大加速比,并进行计算(这一题老师上课讲过非常类似的题目,但是当时是板书,ppt上没有)

(2)(四/五问)计算CPI求程序运行时间,也是很多问,常规题目,ppt上有相同题型

(3)(三问)流水线CPU的冲突和异常处理,前两问分别考查冲突和异常的知识,并且需要分别在流水线CPU的图上圈出有关于冲突和异常的模块,并且解释其处理的流程。第三问需要计算出从程序开始运行到插入处理指令执行前所经历的周期数(ppt上也有相关的题目,但是没有答案,我考前看到了但是没有好好梳理相关题型,真的哭死ε(┬┬﹏┬┬)3)

(4)(三问)以人工智能为背景引出对高性能的处理器的设计,非常规题目,其实偏向于考察实验相关的经验,第一问需要写出在对指令集、流水段、测试等进行设计时需要注意的事项,第二问问如果我们想要加入一个可以实现乘法运算的硬件时需要我们进行什么样的设计(这里记不太清了,可能有一定的误差),第三问ppt上有相关的提示,偏向于开放性作答,具体问题记不太清了

(5)(一问)连线 RAM 和 ROM,ppt上有一样的题型,常规题目 

(6)(三问)根据CPI计算不同策略下cache和RAM之间通信的带宽,非常规题目,ppt上没有,考场上想了半天也没太搞懂,据说好像没人完全作对

(7)(四问)概念题+小计算,1.CRC码(计算)、2. 总线仲裁和通信方式种类(概念)、3. I/O信息交换方式种类(概念)、4. 调相PM(计算)

一些提醒

1.一定要记得带计算器,我们这一年前几题计算量还是蛮大的,计算器可以帮大家剩下不少时间

2.题量可能会比你想象中的大一点,当然肯定是在能做完的程度内,主要是我当时看学长描述之前的题目以为题量很小,故在此提醒一下

3.概念占比还是比较大的,能占到差不多二成,所以还是需要熟悉一下ppt上的相关概念。当然不用过于深入,考前仔细看一遍有印象就差不多能应对

4.ppt上的题型一定要完全掌握,这门课期末占比还是很高的(约45%),一道大题做错总评可能就掉7、8分

暂时就想到这么多,希望能够对学弟学妹们有所帮助ヾ(≧▽≦*)o

1 0 复制链接
Wloner0809🤟 2023春
  • 课程难度:中等
  • 作业多少:很少
  • 给分好坏:超好
  • 收获大小:一般
  • 难度:中等
  • 作业:很少
  • 给分:超好
  • 收获:一般

王超老师,我的超人!

老师人比较和蔼,看面相就觉得很平易近人。上课中规中矩,没有太强的感染力(虽然但是我还是基本都到课了。ppt还是比较详细的,但是也有一些笔误。我个人不是很理解讲单多周期、流水线的时候为什么要把RISC-V和MIPS混在一起(上课没好好听,复习的时候看ppt觉得有点混乱)。平时作业算是挺少的了,还有课本答案可以参考(答案有些是错的hhh)。总体来说理论课部分还是比较轻松的(省流:可以速通)

考试我自己觉得题量比较大,最后勉勉强强把会的都糊上了。试卷回忆见一楼thy大佬。建议复习以ppt为主,考前一定要完整过一遍ppt。我因为codh复习的比较早,在考前只看了我自己整理的省流版ppt就没有完整地过一遍ppt,导致我考场上现想ppt的原题(🙃🙃。复习的时候可以适度参考王道考研(流水线部分好像比较简略,cache计算啥的还是比较详细的)

实验跟普通班没有太大差别,但是没有普通班助教写的文档,只有zjx破烂的ppt(当然作为科大计科学生,实验这方面的体验懂得都懂了,不要有什么期待)。国内其他高校的实验课程网站挺多也挺好的,做实验的时候可以参照。经历了大二上的数电提高班的话,就会感觉计组H的实验没有很难,所以感觉计组的实验也就还好。(当然助教可能有点小摆hhh)

给分的话,我自己是相当满意了。wc老师有奶爸的潜质!

下面是一些资源:

https://github.com/Wloner0809/ustc-curriculum-resource/tree/main/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86H

 

1 0 复制链接
cpchenpi 2023春
  • 课程难度:困难
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:很多
  • 难度:困难
  • 作业:中等
  • 给分:一般
  • 收获:很多

上课完全按照PPT,对应内容为唐书/教材,但唐书中内容仅做介绍,考试作业均不涉及。

作业包括一次调研报告+六次作业。前期作业很少,但后期一周一作业,一次作业为教材中数题,完成需要时间不定。

前几次实验还好,但最后一次实验(单人完成Cache+输入输出单元)相对困难,任务较重。前几次实验大多可以在一晚上完成,后几次可能需要一整天(以上)。

期末不公布成绩,因此无法在给分上提供很大参考。本人作业、实验均按时完成,考试自认为不算好(吐槽一下,试卷有几个点比较坑),总评95。

1 0 复制链接
ucaser 2024春
  • 课程难度:简单
  • 作业多少:很少
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:简单
  • 作业:很少
  • 给分:超好
  • 收获:很多

单就理论课而言,这门课难度简单,作业很少(并且助教要求很松),老师讲课也挺好的,时不时来点小幽默,PPT也很全面。但是这门课的实验很费时间,这也是大家都在吐槽的,没有教程,PPT内容很少,与上学期的数电实验的体验相差很大,不过好在助教检查的挺松的。而且今年用的是龙芯架构,实验设置和往年也有所不同,所以没法参考往年学长的代码(等我有时间了把我的代码整理一下放到这里)。不过最后把CPU搓出来并且把Cache写出来还是很有成就感的,并且可以和别人吹我手搓出来一个CPU。以前总是觉得CPU那么复杂,怎么是我们这些才大二的学生可以搞的,但真正去做了之后,发现我们是可以做到的。并且如果实验都完成了,对最后的复习也很有帮助。

对于考试,这门课要复习的内容太多了,而我只给这么课留了一天多的复习时间,在考试前的一小时左右才算是复习完,但PPT也仅仅是过了一遍,最后的概念题好多都记不清,建议大家还是多预留点时间复习,还有PPT上的例题和作业题要好好看看。

0 0 复制链接

王超

教师主页: 戳这里

其他老师的「计算机组成原理(H)」课

宫磊, 王超 9.6 (7) 2022春

王超老师的其他课

计算机组成原理(H) 9.6 (7) 2022春
计算机组成原理 8.8 (16) 2021春 2020春...
“科学与社会”研讨课 10.0 (1) 2024春 2023秋...
智能计算系统 2023春 2022春