COMP32116 学分

计算机体系结构

新南威尔士大学·University of New South Wales·悉尼

COMP3211《计算机体系结构》是 新南威尔士大学 的公开课程页面。当前可确认的信息包括 6 学分,难度 超难,公开通过率 75%。 页面已整理 10 周教学安排,3 个重点考核,方便你快速判断工作量、考核结构和适配度。 课程简介摘要:课程定位 COMP3211/9211 是 UNSW 计算机专业的‘硬件灵魂’课程。

💪 压力
5 / 5
⭐ 含金量
5 / 5
✅ 通过率
0%

📖 课程概览

选课速读: COMP3211《计算机体系结构》是 新南威尔士大学 的公开课程页面。当前可确认的信息包括 6 学分,难度 超难,公开通过率 75%。 页面已整理 10 周教学安排,3 个重点考核,方便你快速判断工作量、考核结构和适配度。 课程简介摘要:课程定位 COMP3211/9211 是 UNSW 计算机专业的‘硬件灵魂’课程。
### 课程定位 COMP3211/9211 是 UNSW 计算机专业的‘硬件灵魂’课程。如果你想搞清楚 CPU 如何在纳秒级时间内执行数十亿条指令,这门课会带你进入硅片的内部世界。它解决了计算机性能最根本的瓶颈问题:指令流水线、缓存一致性及并行加速。它是通往高级芯片设计(FPGA/ASIC)、嵌入式开发、及底层系统优化岗位的必经之路。它将数字逻辑与软件执行完美统合,是计算机系最具硬核深度的高阶课。 ### 技术栈与学习内容 课程围绕‘现代处理器设计范式’展开。核心内容包括:MIPS/RISC-V 指令集深入、高性能流水线设计(Pipeline Hazards 与转发逻辑)、高级缓存架构 (Cache Mapping & Coherence)、分支预测、指令级并行 (ILP)、以及多核处理器互联协议。此外,课程引入了 VHDL/Verilog 硬件描述语言,要求学生在 FPGA 上实现一个简易的 CPU 核。课程强调‘周期级 (Cycle-by-cycle)’的精确模拟。 ### 课程结构 10 周理论高压与硬件描述语言 (HDL) 实验结合。前期聚焦流水线数学模型与冲突处理,中期深入内存层次结构优化,后期转向多核并行与乱序执行。评估由每周的‘逻辑门级’Lab、两个极具挑战性的硬件设计项目(Assignment,通常要求利用 VHDL 实现一个带缓存的 5 级流水线处理器)、以及考察架构决策权衡的期末综合大考组成。该课极其看重‘对时序逻辑的绝对掌控’。 ### 适合人群 计算机、软件工程专业。必须具备扎实的 COMP1521 (系统基础) 功底。如果你对‘摩尔定律’的终结感到好奇、或者想设计自己的处理器,这门课是你的圣殿。建议每周投入 20 小时以上,做好反复调试波形图的心理准备。

🧠 大神解析

📊 课程难度与压力分析

COMP3211 是计算机系的‘硬核分水岭’。难点在于‘并发的时间概念’。在软件课里你习惯了顺序执行,但在架构课里,所有硬件组件都是在同一时刻运行的。你必须理解时钟边沿触发的微观逻辑。压力主要来自于 VHDL 编程,一个逻辑门的延迟算错,你的处理器就会跑出随机的垃圾结果。期末考试中,‘画出流水线空泡 (Bubble) 演化图’是必考大题,计算量虽然不大,但逻辑复杂度极高。挂科率常年维持在 20% 左右,是对非‘底层’选手的严峻筛选。

🎯 备考重点与高分策略

高分秘籍:‘得 Cache 命中率与 AMAT 者得 Distinction’。期末考试中,关于多级缓存性能优化的数值计算是稳拿分的地方,一定要整理出一套标准的‘Cache 映射流程图’。重点攻克‘转发 (Forwarding) 路径判定’,要明白在哪一时刻数据从 EX 阶段直接跳到了 ID 阶段。备考时,教材《Computer Organization and Design》(Patterson) 是唯一的圣经。对于 Assignment,HD 的关键在于‘波形分析能力’——不仅要代码对,还要通过逻辑分析仪证明你的 Hazard 消除策略在最短周期内完成了。重视 Tutorial 里的每一道 ILP 题目。

📚 学习建议与资源推荐

神书推荐:Hennessy & Patterson 的《Computer Architecture: A Quantitative Approach》,这是图灵奖得主的巅峰之作。如果时序逻辑理解不了,强烈推荐去 YouTube 搜‘Onur Mutlu’教授(卡内基梅隆)的计算机架构系列讲座。练习方面,掌握好 ModelSim 仿真软件的使用。最重要的建议:养成画‘时序图 (Timing Diagram)’的习惯,在写 VHDL 前先在纸上画清寄存器的触发边沿。

⚠️ 作业与 Lab 避坑指南

项目避坑:千万不要在 VHDL 里写‘不可综合’的语句!有些语法能在仿真器跑,但下发到 FPGA 就报错。Assignment 提交前,务必做一次‘Gate-level Simulation’。在处理流水线冲突时,注意‘分支延迟槽 (Branch delay slot)’的特殊逻辑。此外,注意 Final 考试有 Hurdle 要求,理论部分如果不合格,硬件写得再好也会挂。考试时,带好直尺,画流水线分布图时必须横平竖直。注意:分清‘写回 (Write-back)’与‘写直达 (Write-through)’对 Cache 一致性的巨大性能差异。

💬 过来人经验分享

学长建议:这门课是为你整个‘系统视野’镀金。学完后,你看任何一段 C 语言代码,大脑里都会自动翻译成汇编和流水线的指令槽。建议找一个同样追求极致性能的队友共同对波形。拿 HD 的关键:在报告中展现出你对‘能耗与性能 (Power-Performance)’权衡的深刻觉知。坚持住,通关 3211,你就真正跨过了计算机科学的硬件大关。这张成绩单是进入 Intel, NVIDIA 或顶级嵌入式巨头研发中心的最硬入场券。

📅 每周课程大纲

Week 1计算机体系结构概论与指令集
📖核心知识点:计算机体系结构的抽象层次——ISA(指令集架构)作为硬件/软件接口;RISC vs CISC设计哲学的核心差异——固定长度指令vs变长指令、Load-Store架构vs内存操作指令;MIPS/RISC-V指令集基础——R型/I型/J型指令格式;寄存器文件结构与寻址模式(立即数、寄存器、基址偏移);指令编码与机器码翻译。⏰本周节奏:第一周以建立ISA层面的理解为主,需要熟练进行汇编指令与机器码的互相翻译,建议做8-10道编码练习。🎯考试关联:指令编码/解码是期末必考计算题;RISC vs CISC的设计权衡是简答题高频考点。🧪Tutorial/Lab:手动将MIPS汇编指令翻译为32位机器码;在模拟器(如MARS/RARS)中运行简单汇编程序。📌作业关联:Assignment中的处理器设计需要透彻理解指令格式,本周的编码练习直接服务后续设计。⚠️易错点:I型指令的立即数是符号扩展还是零扩展取决于指令类型;分支指令的偏移量是相对PC+4而非PC本身。
Week 2单周期处理器设计
📖核心知识点:数据通路(Datapath)的五大组件——PC、指令存储器、寄存器文件、ALU、数据存储器;控制信号的产生——主控制单元根据opcode生成RegWrite/MemRead/MemWrite/ALUSrc/MemtoReg/Branch等信号;ALU控制的两级解码——主控制→ALUOp→ALU控制;R型指令、lw/sw、beq的数据通路追踪——信号流经每个组件的完整路径。⏰本周节奏:单周期处理器是全课的基础设计,必须能画出完整数据通路并标注每条指令的控制信号值,建议对每种指令类型做完整的信号追踪。🎯考试关联:画数据通路并填写控制信号表是期末必考大题(20+分);添加新指令到单周期处理器的设计题是区分HD的关键。🧪Tutorial/Lab:在硬件描述语言(Verilog/VHDL)或模拟工具中实现单周期MIPS处理器的核心模块。📌作业关联:Assignment 1通常要求实现或扩展单周期处理器,数据通路理解是核心。⚠️易错点:beq的PC更新逻辑——偏移量左移2位再加PC+4;忘记为不同指令类型设置MUX选择信号导致数据通路错误。
Week 3流水线处理器基础
📖核心知识点:流水线(Pipelining)思想——将指令执行分为IF/ID/EX/MEM/WB五个阶段;流水线寄存器(Pipeline Registers)的作用——隔离各阶段的数据;流水线的性能分析——理想加速比=阶段数、实际加速比受冒险限制;流水线冒险(Hazard)分类——结构冒险(资源冲突)、数据冒险(数据依赖)、控制冒险(分支延迟)。⏰本周节奏:流水线是全课最重要的概念,建议画出5条指令在5级流水线中的时序图,理解每个时钟周期各阶段的并行执行。🎯考试关联:流水线时序图绘制和冒险识别是期末必考大题;流水线加速比的计算是常考计算题。🧪Tutorial/Lab:绘制指令序列的流水线时序图;识别给定指令序列中的数据冒险和控制冒险。📌作业关联:Assignment的流水线处理器设计需要完整理解五阶段流水线的时序关系。⚠️易错点:流水线的时钟周期由最慢阶段决定而非平均值;写后读(RAW)冒险的识别——需要看源寄存器是否与前序指令的目标寄存器相同。
Week 4流水线冒险与解决方案
📖核心知识点:数据冒险的解决——转发(Forwarding/Bypassing)技术,从EX/MEM或MEM/WB流水线寄存器直接转发结果;Load-Use冒险——lw后紧跟使用其结果的指令必须插入一个气泡(Stall),转发无法完全解决;冒险检测单元(Hazard Detection Unit)的设计——检测load-use冒险并插入stall;控制冒险的解决——分支预测(静态预测/动态预测)、延迟槽(Delay Slot)、提前分支判定。⏰本周节奏:转发逻辑是全课最精细的设计部分,建议画出转发路径图并对每种依赖情况标注转发来源。🎯考试关联:给定指令序列判断需要哪些转发和stall是期末高频大题;冒险检测单元的控制逻辑是设计题考点。🧪Tutorial/Lab:在流水线处理器中实现转发逻辑和冒险检测单元;分析带stall的指令序列实际执行时钟周期数。📌作业关联:Assignment流水线处理器必须正确实现转发和stall机制,这是正确性的核心保证。⚠️易错点:双重转发优先级——EX/MEM转发优先于MEM/WB转发(更近的结果优先);寄存器$0的转发需要特殊处理($0恒为0不需要转发)。
Week 5分支预测与高级流水线
📖核心知识点:静态分支预测——总是预测不跳转/总是预测跳转/基于分支方向预测;动态分支预测——1位预测器、2位饱和计数器、相关预测器((m,n)预测器);分支目标缓冲(BTB)——缓存分支指令的目标地址加速跳转;超标量(Superscalar)处理器概念——每周期发射多条指令;乱序执行(Out-of-Order Execution)的基本思想——Tomasulo算法简介。⏰本周节奏:分支预测是流水线性能优化的关键,重点掌握2位预测器的状态转移和预测准确率计算。🎯考试关联:给定分支历史计算2位预测器的预测准确率是期末常考计算题;超标量与乱序执行的概念是简答题考点。🧪Tutorial/Lab:模拟2位分支预测器在给定分支序列上的预测过程;分析不同预测策略的准确率差异。📌作业关联:Assignment可能要求在流水线处理器中实现简单的分支预测机制。⚠️易错点:2位预测器需要连续两次预测错误才改变预测方向——这是它比1位预测器稳定的原因;BTB miss时的处理流程。
Week 6存储层次结构:Cache基础
📖核心知识点:存储层次结构的动机——SRAM(快贵小)→DRAM(中等)→磁盘(慢廉大);局部性原理——时间局部性(最近访问的数据可能再次被访问)和空间局部性(邻近数据可能被访问);Cache的基本参数——块大小(Block Size)、Cache大小、关联度(Associativity);直接映射Cache的工作原理——地址分解为Tag/Index/Offset;Cache命中与缺失的处理流程。⏰本周节奏:Cache是体系结构中最核心的性能优化机制,地址分解和命中判定必须练到自动化,建议做8-10道地址映射练习。🎯考试关联:Cache地址分解和命中/缺失判定是期末必考计算题(15-20分);Cache设计参数的权衡是简答/论述题考点。🧪Tutorial/Lab:手动模拟直接映射Cache的访问过程(给定地址序列计算命中率);分析不同块大小对命中率的影响。📌作业关联:Assignment可能涉及Cache模拟器的实现或Cache参数优化分析。⚠️易错点:地址位数分配——Offset位数=log2(块大小)、Index位数=log2(Cache行数)、Tag位数=总地址位数-Index-Offset;字节vs字的地址单位混淆。
Week 7Cache进阶:组相联与替换策略
📖核心知识点:全相联Cache——任何块可放入任何Cache行(灵活但硬件开销大);N路组相联Cache——折中方案,地址映射到组(Set)后在组内任意放置;替换策略——LRU(最近最少使用)、FIFO、随机替换的优缺点;写策略——写直达(Write-Through)vs写回(Write-Back)、写分配(Write-Allocate)vs非写分配;Cache性能分析——AMAT=命中时间+缺失率×缺失代价。⏰本周节奏:组相联Cache的地址分解和LRU模拟是本周重点,建议完成3-4个完整的组相联Cache访问模拟(跟踪每个Set的状态)。🎯考试关联:组相联Cache的地址映射和LRU替换模拟是期末大题;AMAT计算和Cache参数优化是计算题高频考点。🧪Tutorial/Lab:手动模拟4路组相联Cache的访问过程(含LRU替换);计算不同Cache配置下的AMAT。📌作业关联:Cache参数优化可能是Assignment的分析任务之一。⚠️易错点:组相联中Set的数量=Cache行数/关联度(不是Cache行数);LRU替换时需要跟踪每个Set内所有块的最近访问顺序。
Week 8虚拟内存
📖核心知识点:虚拟内存的动机——地址空间隔离、内存保护、高效的物理内存利用;虚拟地址到物理地址的翻译——页表(Page Table)的结构与查表过程;页表项(PTE)内容——物理帧号、有效位、脏位、权限位;TLB(Translation Lookaside Buffer)——页表的缓存,加速地址翻译;多级页表——减少页表内存开销的层次化设计;缺页(Page Fault)的处理流程。⏰本周节奏:虚拟内存连接了OS和体系结构,地址翻译的完整流程(TLB→页表→物理地址→Cache)是本周必须掌握的核心链路。🎯考试关联:虚拟地址→TLB查找→页表查找→物理地址→Cache查找的完整流程是期末综合大题。🧪Tutorial/Lab:手动执行虚拟地址到物理地址的翻译过程(含TLB和页表查找);分析TLB大小对地址翻译性能的影响。📌作业关联:理解虚拟内存是分析Cache行为的前提——Cache通常使用物理地址(PIPT)或虚拟地址(VIVT)。⚠️易错点:TLB和页表的查找结果不一致时的处理(TLB miss但页表命中需要更新TLB);混淆虚拟页号和物理帧号的位数计算。
Week 9并行与多核处理器
📖核心知识点:指令级并行(ILP)的极限——数据依赖和控制依赖限制了单核性能提升;多核处理器的动机——功耗墙(Power Wall)迫使从频率提升转向核心增多;Cache一致性(Cache Coherence)问题——多核共享数据时各核的私有Cache可能持有不同副本;MESI协议——Modified/Exclusive/Shared/Invalid四种状态及状态转移;总线嗅探(Bus Snooping)vs目录协议。⏰本周节奏:多核和Cache一致性是现代体系结构的核心挑战,重点掌握MESI协议的状态转移图。🎯考试关联:MESI协议的状态转移模拟是期末常考计算题;多核性能分析(Amdahl定律)是计算题考点。🧪Tutorial/Lab:在给定多核访问序列上模拟MESI协议的状态变化;用Amdahl定律计算不同并行比例下的加速比。📌作业关联:理解Cache一致性有助于分析多线程程序的性能行为。⚠️易错点:MESI中Exclusive和Shared状态的转移条件——其他核的读请求使Exclusive→Shared;Amdahl定律中串行部分占比是限制加速比的瓶颈。
Week 10I/O系统与全课总结
📖核心知识点:I/O系统基础——内存映射I/O vs端口映射I/O;I/O数据传输方式——程序控制(Polling)、中断驱动(Interrupt-driven)、DMA(直接内存访问)各自的适用场景;磁盘与SSD的性能特征——寻道时间、旋转延迟、传输时间(磁盘)vs无机械延迟(SSD);RAID级别概览;全课知识图谱——ISA→单周期→流水线→Cache→虚拟内存→多核→I/O的完整体系结构体系。⏰本周节奏:最后一周以整合为主,建议绘制全课架构图——从处理器核心到存储层次到I/O的完整计算机系统。🎯考试关联:I/O数据传输方式的对比是简答题考点;全课综合题可能要求分析一个程序的性能瓶颈(CPU-bound vs Memory-bound vs I/O-bound)。🧪Tutorial/Lab:计算DMA传输与中断驱动I/O的性能差异;做全课综合模拟题覆盖流水线+Cache+虚拟内存。📌作业关联:所有Assignment截止前最终检查——确保处理器设计功能正确、时序合理。⚠️易错点:DMA传输期间CPU仍可执行其他指令但总线可能被占用;混淆I/O性能瓶颈的位置(CPU速度vs总线带宽vs设备速度)。

📋 课程信息

学分
6 Credit Points
含金量
5 / 5
压力指数
5 / 5
课程类型
elective

💬 学生评价

💭

还没有同学评价这门课,成为第一个分享体验的人吧

写点评