本篇文档主要讨论的是大作业1中的RISC-V架构设计,这是一种开放源代码的伯克利RISC-V处理器。RISC-V是一种精简指令集计算机(RISC)架构,强调可扩展性和灵活性,适用于各种硬件平台,包括ASIC和FPGA,如Zynq ZC706。
核心知识点如下:
1. **抽象功能单元(Abstract Functional Unit, AFU)**:AFU负责处理常见的输入输出操作,它是一个通用组件,描述了处理器的基本操作。在RISC-V设计中,AFU可以分为两类:pipelined和unpipelined。Pipelined AFU支持并行处理,能高效地存储微指令(uop)元数据,包括分支解析、分支控制等,同时支持推测性乱序执行,使得外部代码可以方便地共享资源。Unpipelined AFU如ALU,可能包含一个可选的分支单元(BrUnit),用于处理算术和逻辑运算。
2. **具体实现(Concrete Subclasses)**:这些是专家级AFU的实例,它们不需做任何修改即可与推测性乱序执行协同工作。例如,对于算术运算,有iMul/iDiv/iRem功能;对于浮点运算,有FPU支持fMul/fDiv/fSqrt等操作;还有用于数据处理的ALU和DFMA/SFMA单元。此外,还包括整型到浮点型(IntToFP)和浮点型到整型(FPToInt)的转换。
3. **可合成性**:该设计目标是针对ASIC,同时也可在FPGA上运行,如Zynq ZC706。处理器内部结构包括了issue window(指令窗口)、物理寄存器文件(PRF)、ALU、commit和唤醒逻辑、uop标签以及保留队列(ROB)等关键部件。
4. **流水线设计**:文档提到的2-wide BOOM(双发射超流水线)架构,拥有16KB L1缓存,这有助于提高性能。此外,还提到了不同部分的宽度,比如2-way Issue Unit、2-way LSU(Load/Store Unit)以及多级缓存结构,如16k BL1缓存,以及数据和控制缓存(DCache)。
5. **物理布局**:使用TSMC 45纳米工艺的底层设计,预估面积为1.2mm²。设计包含了详细的硬件模块交互,如地址匹配、标准索引计算、内存地址计算、数据和控制信号处理等。
6. **性能指标**:虽然没有提供具体数值,但初步结果可能涵盖了吞吐量、延迟和功耗等关键性能参数。
这份文档详细介绍了大作业1中基于RISC-V架构的设计思路,涵盖了从抽象功能单元到具体硬件实现的方方面面,以及针对特定硬件平台的优化和性能评估。