image-20240908165353509

控制寄存器和状态寄存器

  • 控制和状态寄存器( CSR )从寄存器文件( x0-x31 )中分离出来。
    • 用于监测状态和性能
    • CSRs最多可达4096个
  • 不在基础的ISA中,但几乎在每一个实现中都是强制性的
    • ISA是模块化的
    • 必要的计数器和定时器,以及与外设的通信

CSR指令

image-20240908165504240

image-20240908165545804

image-20240908165553055

  • CSRRW (原子读写方法CSR)指令”原子性”地交换CSR和整数寄存器中的值。
  • CSRRW读取CSR的前一个值,并写入整数寄存器rd。然后将rs1写入CSR
  • 伪指令csrw csr,rs1为csrrw x0,csr,rs1
    • rd = x0,只需将rs1写入CSR即可
  • 伪指令csrwi csr,uimm为csrrwi x0,csr,uimm
    • Rd = x0,只需将uimm写入CSR
  • 提示:使用write enable 和时钟. . .

image-20240908165718248

Single-Cycle RV32I Datapath and Control

image-20240908165737888

image-20240908165743534

image-20240908165748168

Instruction timing

add

image-20240908165806784

image-20240908165812393

image-20240908165818824

lw

image-20240908165841871

image-20240908165848120

image-20240908165853362

Control Logic Design

image-20240908165906745

控制实现方式的选择

  • ROM
    • Read Only Memory
    • 规则结构
    • Can be easily reprogrammed
      • fix errors
      • add instructions
    • 在手动设计控制逻辑时流行
  • 组合逻辑
    • 如今,芯片设计者使用逻辑综合工具将真值表转换为门的网络

image-20240908170059966

ROM-based Control

image-20240908170123564

Rom Controller的实现

image-20240908170137561

Combinational Logic Control

image-20240908170150818

Control Logic to Decode add

image-20240908170219233