作者cfzfnf (夏夜猫)
看板NCTU-Teacher
标题[心得] 微处理机系统原理与实作 - 蔡淳仁
时间Sun Jan 23 23:28:21 2022
⊕课名⊕
微处理机系统原理与实作
▲教授▲
蔡淳仁
★修课年度★
110-1
£教了什麽£(课程大概内容。或是额外学会了什麽东西。)
微处理机系统的设计与实作细节,包括介绍不同指令集的设计与差异、 I/O 子系统、作
业系统与硬体的整合等等。
此外还会谈到 Aquila 的架构与设计,Aquila 是教授他们实验室 (EISL) 所开发的
open-source processor (
http://github.com/eisl-nctu/aquila),
作业就是会以 Aquila 为基础,修改相关电路的程式码
◆上课方式◆(投影片、团体讨论、老师教学风格)
老师会讲自己的投影片,这学期是线上和实体混合,不点名。
▼考试作业▼
作业总共有 5 个,总共占 70%,一个上机考占 30% 。
作业通常又会分 demo 成绩和报告成绩,各占 50% 。
为什麽说通常呢?因为 hw4 只需要 demo 所以只有 demo 分数,hw5 只需要交报告所以
只有报告分数。
学期最後会非线性调分。
这是所有的作业列表, hw0 不算分,老师说只是为了了解大家的状况用:
- hw0: Simulation of a HW-SW Platform
- hw1: Real-time Debugging of a HW-SW Platform
- hw2: Branch Predictor Design
- hw3: Cache Optimization
- hw4: AXI4-Lite Device Bus Protocol
- hw5: RTOS Analysis
作业要求要会写 C (SW design) 和 Verilog (HW design) ,可能还需要会写 RISC-V
Assembly (hw1 和 hw5 有机率会用到) 。
主要作业的实作都是使用 Xilinx Artix-7 XC7A35T FPGA 这块板子(跟数位电路实验用的一样)配合 Xilinx Vivado 这套软体。
作业写完交报告之後要去找助教 demo,可以在 TA hour 的时候去或是跟助教约时间。
上机考有 4 题,每题占 25% ,会给 bootrom , 要求改电路跑模拟想办法收集以下的
数据:
1. Total number of instructions executed (excluding flushed instructions).
2. Total number of load/store instructions executed.
3. Total number of stall cycles during execution.
4. Maximal depth of stack used (in words).
¥其他¥(是否注重出席率or严禁迟到?需要的基础?)
这门课需要两个人一组共用板子,学期初会叫大家写表单,但是作业是单人独立完成。
如果不想跟别人共用板子也可以直接到 EC220 ~ EC222 实验室拿那边的板子写,助教会在学期初帮忙开通门禁。
¢最後想说的话¢
我觉得这门课是我修课以来遇到最充实最有难度的课程,可以想像成是进阶版的计算机组
织加上数位电路实验。 以 HW2 与 HW3 为例子,需要有对电路分析的能力,因此要先看
懂 Aquila 某功能的实作,再想办法修改程式码去统计各项资讯,例如说统计 branch
misprediction 的次数或者是 cache miss 的 cycles 等等。再来就是要针对范例程式对
机制的演算法进行修改以最佳化效能,例如说设计新的 branch prediction 的演算法或
是 cache replacement 机制等等。
这门课被划分在软硬体整合学程里面,这学期是第二次开课,上次是试办。之前有门名称
相似的课叫做「微处理机系统实验」,是之前某些组的必修。因此有些双主修/转系的学
生如果当时没有修到那门课,就必须要修这门课来抵,
但其实两边课程内容完全不同
,想选的人看课程评价前要先注意。
写作业的过程真是还蛮心累又困难的,因为要一直反覆烧电路,等待 bitstream 写进板
子里面,跑出结果不如预期又要改做法然後再重烧,如此反覆。虽然这门课没有分组,但
是老师不排斥同学之间互相讨论,所以我强烈建议跟其他同学分工分析电路跑实验结果和
讨论实作,可以节省很多时间与心力。最後我们都有想出比原来效率还高的演算法,算是
对自己有个交代了。
这五次作业的报告我都要求自己要用英文写,虽然写起来很痛苦,要花更多时间斟酌字词
,不过实际写完五篇报告看起来每篇就像独立的小论文一样,非常有成就感。<del>另一
方面是想说可以免费练习英文写作的机会不多了,就把老师当作免费的 Grammarly 在用
,还会帮我改文法和错字,也算值得了。</del>
修完这门课会对计算机底层知识有更深入的了解,想底层功能如何实作的会变非常容易,
因为作业都会要求要亲手读过和刻过程式码。 此外我建议想修这门课的人可以先去修数
位电路实验,对 verilog 与 FPGA Design 有基本的熟悉度会少很多撞墙的时间。然後建
议可以回去复习计算机组织,报告内容强烈依赖着之前学过的计组知识,有深厚的背景知
识才可以知道为什麽会发生某些现象或者是要怎麽做会跑出比较好的结果。
老师很鼓励同学自己看网路文件和动手实作,在课堂上也会分享他之前工作的经验和趣事
还有对所谓 Hacker spirit 理念的看法等等。课程用到的东西大部分也都是 open-source
的,非常合我胃口。
老师也很希望同学可以找他聊聊,包括写作业遇到的困难或者是职涯规划等等。像我就曾
经去找老师聊过,老师有给了我很多职涯方向的建议和分享他学生在不同公司的经验等等
。
这门课一开始有 32 个人修,最後有将近
10 个人退选,2 个人不及格,调分後平
均是 83 分。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.168.234 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/NCTU-Teacher/M.1642951703.A.B4C.html
※ 编辑: cfzfnf (140.113.168.234 台湾), 01/23/2022 23:29:01
※ 编辑: cfzfnf (140.113.168.234 台湾), 01/23/2022 23:45:42
1F:推 bh2142: 没修过这麽硬的课 01/23 23:45
※ 编辑: cfzfnf (140.113.89.21 台湾), 01/24/2022 10:12:36
2F:推 Rylix: 笑死把老师当grammarly在用这形容好有梗 01/24 16:45
3F:推 typipi: 推 02/09 12:51