IO接口说明

香山实例化 TLB.sv 接口说明(ITLB)

基本控制信号

  • clock: 时钟信号,驱动 TLB 的时序逻辑。
  • reset: 复位信号,用于重置 TLB 的状态。

刷新(SFENCE)接口信号

  • io_sfence_valid: SFENCE 操作的有效性标志。
  • io_sfence_bits_rs1: SFENCE 操作是否使用寄存器 rs1 的值。
  • io_sfence_bits_rs2: SFENCE 操作是否使用寄存器 rs2 的值。
  • io_sfence_bits_addr: SFENCE 操作指定的地址,用于选择性刷新特定地址的 TLB 条目。
  • io_sfence_bits_id: 刷新操作指定的 asid/vmid,用于选择性刷新特定地址空间的 TLB 条目。
  • io_sfence_bits_flushPipe: 刷新整个管道。
  • io_sfence_bits_hv: 指示指令是否为 HFENCE.VVMA,即是否刷新虚拟化下由 vsatp 寄存器控制的条目。
  • io_sfence_bits_hg: 指示指令是否为 HFENCE.GVMA,即是否刷新由 hgatp 寄存器控制的条目。

控制与状态寄存器(CSR)接口信号

  • io_csr_satp_mode: SATP 寄存器的模式字段(如裸模式、Sv32Sv39 等)。
  • io_csr_satp_asid: 当前 SATP 寄存器的 ASID(地址空间标识符)。
  • io_csr_satp_changed: 指示 SATP 寄存器的值是否已更改。
  • io_csr_vsatp_mode: VSATP 寄存器的模式字段。
  • io_csr_vsatp_asid: VSATP 寄存器的 ASID
  • io_csr_vsatp_changed: 指示 VSATP 寄存器的值是否已更改。
  • io_csr_hgatp_mode: HGATP 寄存器的模式字段。
  • io_csr_hgatp_vmid: HGATP 寄存器的 VMID(虚拟机标识符)。
  • io_csr_hgatp_changed: 指示 HGATP 寄存器的值是否已更改。
  • io_csr_priv_virt: 指示是否在虚拟模式下运行。
  • io_csr_priv_imode: 指令模式的特权级(如用户态、内核态等)。

请求者(Requestor)接口信号

Requestor 0 信号

  • io_requestor_0_req_valid: requestor0 的请求有效信号。
  • io_requestor_0_req_bits_vaddr: requestor0 的请求虚拟地址。
  • io_requestor_0_resp_bits_paddr_0: requestor0 的物理地址响应信号。
  • io_requestor_0_resp_bits_gpaddr_0: requestor0 的物理地址转换为 GPAGuest Physical Address)的响应信号。
  • io_requestor_0_resp_bits_miss: requestor0 请求的地址未命中的信号。
  • io_requestor_0_resp_bits_excp_0_gpf_instr: requestor0 出现 General Protection Fault (GPF) 异常的信号。
  • io_requestor_0_resp_bits_excp_0_pf_instr: requestor0 出现 Page Fault (PF) 异常的信号。
  • io_requestor_0_resp_bits_excp_0_af_instr: requestor0 出现 Access Fault (AF) 异常的信号。

Requestor 1 信号

  • io_requestor_1_req_valid: requestor1 的请求有效信号。
  • io_requestor_1_req_bits_vaddr: requestor1 的请求虚拟地址。
  • io_requestor_1_resp_bits_paddr_0: requestor1 的物理地址响应信号。
  • io_requestor_1_resp_bits_gpaddr_0: requestor1GPA 响应信号。
  • io_requestor_1_resp_bits_miss: requestor1 的未命中信号。
  • io_requestor_1_resp_bits_excp_0_gpf_instr: requestor1 出现 GPF 异常的信号。
  • io_requestor_1_resp_bits_excp_0_pf_instr: requestor1 出现 PF 异常的信号。
  • io_requestor_1_resp_bits_excp_0_af_instr: requestor1 出现 AF 异常的信号。

Requestor 2 信号

  • io_requestor_2_req_ready: requestor2 的请求就绪信号。
  • io_requestor_2_req_valid: requestor2 的请求有效信号。
  • io_requestor_2_req_bits_vaddr: requestor2 的请求虚拟地址。
  • io_requestor_2_resp_ready: requestor2 的响应就绪信号。
  • io_requestor_2_resp_valid: requestor2 的响应有效信号。
  • io_requestor_2_resp_bits_paddr_0: requestor2 的物理地址响应信号。
  • io_requestor_2_resp_bits_gpaddr_0: requestor2GPA 响应信号。
  • io_requestor_2_resp_bits_excp_0_gpf_instr: requestor2 出现 GPF 异常的信号。
  • io_requestor_2_resp_bits_excp_0_pf_instr: requestor2 出现 PF 异常的信号。
  • io_requestor_2_resp_bits_excp_0_af_instr: requestor2 出现 AF 异常的信号。

刷新管道(Flush Pipe)信号

  • io_flushPipe_0: 刷新管道 0 的信号。
  • io_flushPipe_1: 刷新管道 1 的信号。
  • io_flushPipe_2: 刷新管道 2 的信号。

页表遍历(Page Table Walker, PTW)接口信号

PTW 请求信号

  • io_ptw_req_0_valid: PTW req0 有效信号。
  • io_ptw_req_0_bits_vpn: PTW req0 的虚拟页号(VPN)。
  • io_ptw_req_0_bits_s2xlate: 指示 PTW req0 的转换模式。
  • io_ptw_req_0_bits_getGpa: PTW req0 的获取 GPA 信号。
  • io_ptw_req_1_valid: PTW req1 有效信号。
  • io_ptw_req_1_bits_vpn: PTW req1 的虚拟页号。
  • io_ptw_req_1_bits_s2xlate: 指示 PTW req1 的转换模式。
  • io_ptw_req_1_bits_getGpa: PTW req1 的获取 GPA 信号。
  • io_ptw_req_2_ready: PTW req2 就绪信号。
  • io_ptw_req_2_valid: PTW req2 有效信号。
  • io_ptw_req_2_bits_vpn: PTW req2 的虚拟页号。
  • io_ptw_req_2_bits_s2xlate: 指示 PTW req2 的转换模式。
  • io_ptw_req_2_bits_getGpa: PTW req2 的获取 GPA 信号。

PTW 响应信号

  • io_ptw_resp_valid: PTW resp 有效信号。
  • io_ptw_resp_bits_s2xlate: 指示 PTW resp 的地址转换类型。
  • io_ptw_resp_bits_s1_entry_tag: PTW resp 的第一阶段页表条目标签。
  • io_ptw_resp_bits_s1_entry_asid: PTW resp 的第一阶段页表条目 ASID
  • io_ptw_resp_bits_s1_entry_vmid: PTW resp 的第一阶段页表条目 VMID
  • io_ptw_resp_bits_s1_entry_perm_d: PTW resp 的第一阶段页表条目可写位。
  • io_ptw_resp_bits_s1_entry_perm_a: PTW resp 的第一阶段页表条目已访问位。
  • io_ptw_resp_bits_s1_entry_perm_g: PTW resp 的第一阶段页表条目全局位。
  • io_ptw_resp_bits_s1_entry_perm_u: PTW resp 的第一阶段页表条目用户模式位。
  • io_ptw_resp_bits_s1_entry_perm_x: PTW resp 的第一阶段页表条目可执行位。
  • io_ptw_resp_bits_s1_entry_perm_w: PTW resp 的第一阶段页表条目可写位。
  • io_ptw_resp_bits_s1_entry_perm_r: PTW resp 的第一阶段页表条目可读位。
  • io_ptw_resp_bits_s1_entry_level: PTW resp 的第一阶段页表条目级别。
  • io_ptw_resp_bits_s1_entry_ppn: PTW resp 的第一阶段页表条目物理页号(PPN)。
  • io_ptw_resp_bits_s1_addr_low: PTW resp 的第一阶段页表条目地址低位。
  • io_ptw_resp_bits_s1_ppn_low_*: PTW resp 的第一阶段页表条目 PPN 低位。
  • io_ptw_resp_bits_s1_valididx_*: PTW resp 的第一阶段页表条目有效索引。
  • io_ptw_resp_bits_s1_pteidx_*: PTW resp 的第一阶段页表条目 PTE 索引。
  • io_ptw_resp_bits_s1_pf: PTW resp 的第一阶段页表条目出现 PF
  • io_ptw_resp_bits_s1_af: PTW resp 的第一阶段页表条目出现 AF
  • io_ptw_resp_bits_s2_entry_tag: PTW resp 的第二阶段页表条目标签。
  • io_ptw_resp_bits_s2_entry_vmid: PTW resp 的第二阶段页表条目 VMID
  • io_ptw_resp_bits_s2_entry_ppn: PTW resp 的第二阶段页表条目 PPN
  • io_ptw_resp_bits_s2_entry_perm_*: PTW resp 的第二阶段页表条目的权限位。
  • io_ptw_resp_bits_s2_entry_level: PTW resp 的第二阶段页表条目级别。
  • io_ptw_resp_bits_s2_gpf: PTW resp 的第二阶段页表条目 GPF 信号。
  • io_ptw_resp_bits_s2_gaf: PTW resp 的第二阶段页表条目 GAF 信号。
  • io_ptw_resp_bits_getGpa: PTW resp 的获取 GPA 信号。
最后修改 March 31, 2025: Fix rvc appendix (#110) (73c0bf6)