ct_lsu_pfu_sdb_entry
module ct_lsu_pfu_sdb_entry( amr_wa_cancel, cp0_lsu_icg_en, cp0_lsu_l2_st_pref_en, cp0_yy_clk_en, cpurst_b, ld_da_iid, ld_da_ldfifo_pc, ld_da_pfu_act_dp_vld, ld_da_pfu_evict_cnt_vld, ld_da_pfu_pf_inst_vld, ld_da_ppfu_va, lsu_special_clk, pad_yy_icg_scan_en, pfu_pop_all_part_vld, pfu_sdb_create_pc, pfu_sdb_create_type_ld, pfu_sdb_entry_create_dp_vld_x, pfu_sdb_entry_create_gateclk_en_x, pfu_sdb_entry_create_vld_x, pfu_sdb_entry_evict_x, pfu_sdb_entry_hit_pc_x, pfu_sdb_entry_pc_v, pfu_sdb_entry_ready_grnt_x, pfu_sdb_entry_ready_x, pfu_sdb_entry_stride_neg_x, pfu_sdb_entry_stride_v, pfu_sdb_entry_strideh_6to0_v, pfu_sdb_entry_type_ld_x, pfu_sdb_entry_vld_x, rtu_yy_xx_commit0, rtu_yy_xx_commit0_iid, rtu_yy_xx_commit1, rtu_yy_xx_commit1_iid, rtu_yy_xx_commit2, rtu_yy_xx_commit2_iid, rtu_yy_xx_flush, sdb_timeout_cnt_val, st_da_iid, st_da_pc, st_da_pfu_evict_cnt_vld, st_da_pfu_pf_inst_vld, st_da_ppfu_va );
-
控制和配置输入:
- 包括
amr_wa_cancel 、cp0_lsu_icg_en 、cp0_lsu_l2_st_pref_en 、cp0_yy_clk_en 、cpurst_b 、lsu_special_clk 和pad_yy_icg_scan_en 。这些信号可能用于模块的总体控制,包括时钟门控、功率管理、复位和配置设置。
- 包括
-
来自加载和存储单元的数据和状态输入:
- 如
ld_da_iid 、ld_da_ldfifo_pc 、ld_da_pfu_act_dp_vld 、ld_da_pfu_evict_cnt_vld 、ld_da_pfu_pf_inst_vld 、ld_da_ppfu_va 、st_da_iid 、st_da_pc 、st_da_pfu_evict_cnt_vld 、st_da_pfu_pf_inst_vld 和st_da_ppfu_va 等输入对于预取操作至关重要。它们提供有关加载和存储指令的信息,包括指令标识符、程序计数器、有效性标志和虚拟地址。
- 如
-
步长检测和预取请求管理:
- 如
pfu_pop_all_part_vld 、pfu_sdb_create_pc 、pfu_sdb_create_type_ld 、pfu_sdb_entry_stride_neg_x 、pfu_sdb_entry_stride_v 和pfu_sdb_entry_strideh_6to0_v 等端口表明该模块参与管理基于步长的预取请求。这些端口可能用于跟踪和确定步长模式,并决定预取操作。
- 如
-
SDB条目管理:
- 如
pfu_sdb_entry_create_dp_vld_x 、pfu_sdb_entry_create_gateclk_en_x 、pfu_sdb_entry_create_vld_x 、pfu_sdb_entry_evict_x 、pfu_sdb_entry_hit_pc_x 、pfu_sdb_entry_pc_v 、pfu_sdb_entry_ready_grnt_x 、pfu_sdb_entry_ready_x 、pfu_sdb_entry_type_ld_x 和pfu_sdb_entry_vld_x 等信号表明模块负责处理SDB条目的生命周期。这包括创建、验证以及管理条目的就绪和逐出。
- 如
-
与退役单元的交互:
- 如
rtu_yy_xx_commit0 、rtu_yy_xx_commit0_iid 、rtu_yy_xx_commit1 、rtu_yy_xx_commit1_iid 、rtu_yy_xx_commit2 、rtu_yy_xx_commit2_iid 和rtu_yy_xx_flush 等端口用于与退役单元(RTU)的接口。这种交互是为了确保指令在完成执行后能够正确地更新SDB的状态。
- 如
parameter TIMEOUT_BW = 8; parameter PC_LEN = 15; //========================================================== // Instance of Gated Cell //========================================================== assign pfu_sdb_entry_clk_en = pfu_sdb_entry_vld || pfu_sdb_entry_create_gateclk_en; // &Instance("gated_clk_cell", "x_lsu_pfu_sdb_entry_gated_clk"); @41 gated_clk_cell x_lsu_pfu_sdb_entry_gated_clk ( .clk_in (lsu_special_clk ), .clk_out (pfu_sdb_entry_clk ), .external_en (1'b0 ), .global_en (cp0_yy_clk_en ), .local_en (pfu_sdb_entry_clk_en), .module_en (cp0_lsu_icg_en ), .pad_yy_icg_scan_en (pad_yy_icg_scan_en ) ); // &Connect(.clk_in (lsu_special_clk ), @42 // .external_en (1'b0 ), @43 // .global_en (cp0_yy_clk_en ), @44 // .module_en (cp0_lsu_icg_en ), @45 // .local_en (pfu_sdb_entry_clk_en), @46 // .clk_out (pfu_sdb_entry_clk )); @47 assign pfu_sdb_entry_create_clk_en = pfu_sdb_entry_create_gateclk_en; // &Instance("gated_clk_cell", "x_lsu_pfu_sdb_entry_create_gated_clk"); @50 gated_clk_cell x_lsu_pfu_sdb_entry_create_gated_clk ( .clk_in (lsu_special_clk ), .clk_out (pfu_sdb_entry_create_clk ), .external_en (1'b0 ), .global_en (cp0_yy_clk_en ), .local_en (pfu_sdb_entry_create_clk_en), .module_en (cp0_lsu_icg_en ), .pad_yy_icg_scan_en (pad_yy_icg_scan_en ) ); // &Connect(.clk_in (lsu_special_clk ), @51 // .external_en (1'b0 ), @52 // .global_en (cp0_yy_clk_en ), @53 // .module_en (cp0_lsu_icg_en ), @54 // .local_en (pfu_sdb_entry_create_clk_en), @55 // .clk_out (pfu_sdb_entry_create_clk)); @56 assign pfu_pfb_entry_all_pf_inst_clk_en = pfu_sdb_entry_vld && (ld_da_pfu_pf_inst_vld || st_da_pfu_pf_inst_vld) || pfu_sdb_entry_create_gateclk_en; // &Instance("gated_clk_cell", "x_lsu_pfu_sdb_entry_all_pf_inst_gated_clk"); @61 gated_clk_cell x_lsu_pfu_sdb_entry_all_pf_inst_gated_clk ( .clk_in (lsu_special_clk ), .clk_out (pfu_pfb_entry_all_pf_inst_clk ), .external_en (1'b0 ), .global_en (cp0_yy_clk_en ), .local_en (pfu_pfb_entry_all_pf_inst_clk_en), .module_en (cp0_lsu_icg_en ), .pad_yy_icg_scan_en (pad_yy_icg_scan_en ) );
-
定义参数(Parameter Definition):
TIMEOUT_BW 和PC_LEN 是定义的参数,分别表示超时带宽和程序计数器长度。
-
时钟门控逻辑(Clock Gating Logic):
pfu_sdb_entry_clk_en :控制SDB条目的基本时钟门控使能。如果SDB条目有效或创建时钟门控使能,则此信号为真。pfu_sdb_entry_create_clk_en :控制创建SDB条目时的时钟门控使能。
-
时钟门控单元实例化(Gated Clock Cell Instantiation):
- 每个时钟门控单元对应一个不同的功能。例如,
x_lsu_pfu_sdb_entry_gated_clk 用于SDB条目的基本时钟,而x_lsu_pfu_sdb_entry_create_gated_clk 用于SDB条目创建时的时钟。 - 每个时钟门控单元都接受
lsu_special_clk 作为输入时钟,并根据局部使能(local_en ),全局使能(global_en ),模块使能(module_en )以及扫描使能(pad_yy_icg_scan_en )来控制对应的时钟输出(clk_out )。
- 每个时钟门控单元对应一个不同的功能。例如,
-
预取指令的时钟门控逻辑(Prefetch Instruction Clock Gating Logic):
pfu_pfb_entry_all_pf_inst_clk_en :这个信号用于控制处理所有预取指令的时钟门控。当SDB条目有效且存在加载或存储的预取指令时,或者创建时钟门控使能时,该信号为真。
-
功能和重要性:
- 这些时钟门控逻辑有助于降低整个模块的功耗,特别是在不活跃时通过禁用不必要的时钟来减少能源消耗。
- 它们还为不同操作提供了专用的时钟,从而优化了性能并减少了不必要的时钟切换,提高了整体效率。
//========================================================== // Register //========================================================== //+-----------+ //| entry_vld | //+-----------+ always @(posedge pfu_sdb_entry_clk or negedge cpurst_b) begin if (!cpurst_b) pfu_sdb_entry_vld <= 1'b0; else if(pfu_sdb_entry_pop_vld) pfu_sdb_entry_vld <= 1'b0; else if(pfu_sdb_entry_create_vld) pfu_sdb_entry_vld <= 1'b1; end //+----+ //| pc | //+----+ always @(posedge pfu_sdb_entry_create_clk or negedge cpurst_b) begin if (!cpurst_b) pfu_sdb_entry_pc[PC_LEN-1:0] <= {PC_LEN{1'b0}}; else if(pfu_sdb_entry_create_dp_vld) pfu_sdb_entry_pc[PC_LEN-1:0] <= pfu_sdb_create_pc[PC_LEN-1:0]; end //+----+------+ //| pref_type | //+----+------+ always @(posedge pfu_sdb_entry_create_clk or negedge cpurst_b) begin if (!cpurst_b) pfu_sdb_entry_type_ld <= 1'b0; else if(pfu_sdb_entry_create_dp_vld) pfu_sdb_entry_type_ld <= pfu_sdb_create_type_ld; end //+-------------+ //| timeout_cnt | //+-------------+ always @(posedge pfu_pfb_entry_all_pf_inst_clk or negedge cpurst_b) begin if (!cpurst_b) pfu_sdb_entry_timeout_cnt[TIMEOUT_BW-1:0] <= {TIMEOUT_BW{1'b0}}; else if(pfu_sdb_entry_create_dp_vld || pfu_sdb_entry_pf_inst_vld) pfu_sdb_entry_timeout_cnt[TIMEOUT_BW-1:0] <= {TIMEOUT_BW{1'b0}}; else if(pipe_evict_cnt_vld && !pfu_sdb_entry_timeout_cnt_full) pfu_sdb_entry_timeout_cnt[TIMEOUT_BW-1:0] <= pfu_sdb_entry_timeout_cnt[TIMEOUT_BW-1:0] + {{TIMEOUT_BW-1{1'b0}},1'b1}; end //+-------+ //| ready | //+-------+ always @(posedge pfu_sdb_entry_clk or negedge cpurst_b) begin if (!cpurst_b) pfu_sdb_entry_ready <= 1'b0; else if(pfu_sdb_entry_create_dp_vld || pfu_sdb_entry_pop_vld) pfu_sdb_entry_ready <= 1'b0; else if(pfu_sdb_entry_ready_set) pfu_sdb_entry_ready <= 1'b1; end //+-------+ //| evict | //+-------+ always @(posedge pfu_sdb_entry_clk or negedge cpurst_b) begin if (!cpurst_b) pfu_sdb_entry_evict <= 1'b0; else if(pfu_sdb_entry_create_dp_vld || pfu_sdb_entry_pop_vld || pfu_sdb_entry_evict_clr) pfu_sdb_entry_evict <= 1'b0; else if(pfu_sdb_entry_evict_set) pfu_sdb_entry_evict <= 1'b1; end
步长检测缓冲区(Stride Detection Buffer,简称SDB)条目管理模块的几个关键寄存器,并说明了它们如何随着时钟和复位信号的变化而更新。
-
entry_vld(条目有效性)寄存器:
- 在
pfu_sdb_entry_clk 的正边沿或cpurst_b 的负边沿时更新。 - 如果复位发生(
cpurst_b 为低),则该寄存器被清零。 - 如果一个条目被弹出(
pfu_sdb_entry_pop_vld 为高),则清零。 - 如果创建了新的SDB条目(
pfu_sdb_entry_create_vld 为高),则设为1。
- 在
-
pc(程序计数器)寄存器:
- 在
pfu_sdb_entry_create_clk 的正边沿或cpurst_b 的负边沿时更新。 - 复位时被清零。
- 如果一个SDB条目的创建数据路径有效(
pfu_sdb_entry_create_dp_vld 为高),则设置为pfu_sdb_create_pc 的值。
- 在
-
pref_type(预取类型)寄存器:
- 在
pfu_sdb_entry_create_clk 的正边沿或cpurst_b 的负边沿时更新。 - 复位时被清零。
- 如果一个SDB条目的创建数据路径有效,则设置为
pfu_sdb_create_type_ld 的值。
- 在
-
timeout_cnt(超时计数器)寄存器:
- 在
pfu_pfb_entry_all_pf_inst_clk 的正边沿或cpurst_b 的负边沿时更新。 - 复位时被清零。
- 如果一个SDB条目的创建数据路径有效或预取指令有效,或者未满时递增。
- 在
-
ready(就绪)寄存器:
- 在
pfu_sdb_entry_clk 的正边沿或cpurst_b 的负边沿时更新。 - 复位时被清零。
- 如果一个SDB条目的创建数据路径有效或弹出时被清零;如果就绪信号设置,则设为1。
- 在
-
evict(逐出)寄存器:
- 在
pfu_sdb_entry_clk 的正边沿或cpurst_b 的负边沿时更新。 - 复位时被清零。
- 如果一个SDB条目的创建数据路径有效、弹出或逐出清除时被清零;如果逐出信号设置,则设为1。
- 在
//========================================================== // Instance addr cmp //========================================================== // &ConnRule(s/^entry_/pfu_sdb_entry_/); @151 // &Instance("ct_lsu_pfu_sdb_cmp","x_ct_lsu_pfu_sdb_entry_cmp"); @152 ct_lsu_pfu_sdb_cmp x_ct_lsu_pfu_sdb_entry_cmp ( .cp0_lsu_icg_en (cp0_lsu_icg_en ), .cp0_yy_clk_en (cp0_yy_clk_en ), .cpurst_b (cpurst_b ), .entry_addr0_act (1'b1 ), .entry_addr_cmp_info_vld (pfu_sdb_entry_addr_cmp_info_vld ), .entry_check_stride_success (pfu_sdb_entry_check_stride_success), .entry_clk (pfu_sdb_entry_clk ), .entry_create_dp_vld (pfu_sdb_entry_create_dp_vld ), .entry_create_gateclk_en (pfu_sdb_entry_create_gateclk_en ), .entry_normal_stride (pfu_sdb_entry_normal_stride ), .entry_pf_inst_vld (pfu_sdb_entry_pf_inst_vld ), .entry_stride (pfu_sdb_entry_stride ), .entry_stride_keep (1'b0 ), .entry_stride_neg (pfu_sdb_entry_stride_neg ), .entry_strideh_6to0 (pfu_sdb_entry_strideh_6to0 ), .entry_vld (pfu_sdb_entry_vld ), .forever_cpuclk (lsu_special_clk ), .ld_da_iid (pipe_iid ), .pad_yy_icg_scan_en (pad_yy_icg_scan_en ), .pipe_va (pipe_ppfu_va ), .rtu_yy_xx_commit0 (rtu_yy_xx_commit0 ), .rtu_yy_xx_commit0_iid (rtu_yy_xx_commit0_iid ), .rtu_yy_xx_commit1 (rtu_yy_xx_commit1 ), .rtu_yy_xx_commit1_iid (rtu_yy_xx_commit1_iid ), .rtu_yy_xx_commit2 (rtu_yy_xx_commit2 ), .rtu_yy_xx_commit2_iid (rtu_yy_xx_commit2_iid ), .rtu_yy_xx_flush (rtu_yy_xx_flush ) );
存储单元(Load Store Unit, LSU)的预取单元(Prefetch Unit, PFU)中步长检测缓冲区(Stride Detection Buffer, SDB)条目管理模块内一个子模块的实例化。具体来说,这是一个地址比较单元(
-
模块功能:
ct_lsu_pfu_sdb_cmp 模块用于比较存储或加载地址与SDB条目中的地址,以判断是否存在步长匹配或其他相关条件。
-
输入端口:
- 输入信号包括控制信号(如
cp0_lsu_icg_en ,cp0_yy_clk_en ),复位信号(cpurst_b ),以及与SDB条目相关的各种状态和配置信号(如pfu_sdb_entry_vld ,pfu_sdb_entry_stride 等)。 - 特别地,
entry_addr0_act 和entry_stride_keep 被硬编码为固定值,这可能表示它们在这个上下文中有特定的默认行为或配置。 - 其他输入如
pipe_va 、ld_da_iid 和rtu_yy_xx_commit0 等提供了当前处理中的地址、指令标识符和退役指令的状态。
- 输入信号包括控制信号(如
-
时钟和功率管理:
- 使用
forever_cpuclk (lsu_special_clk )作为时钟源,可能表示这个模块需要持续运行,不受普通CPU时钟节能策略影响。 - 通过
pad_yy_icg_scan_en 输入进行扫描测试使能,用于测试和调试目的。
- 使用
-
退役单元(Retirement Unit)的交互:
- 通过
rtu_yy_xx_commit0 、rtu_yy_xx_commit1 、rtu_yy_xx_commit2 以及相应的iid 输入,这个模块能够响应和处理退役单元发出的指令状态更新。
- 通过
//========================================================== // pipe info select //========================================================== assign pipe_cmp_inst_vld = pfu_sdb_entry_type_ld ? ld_da_pfu_pf_inst_vld : st_da_pfu_pf_inst_vld; assign pipe_cmp_pc[PC_LEN-1:0] = pfu_sdb_entry_type_ld ? ld_da_ldfifo_pc[PC_LEN-1:0] : st_da_pc[PC_LEN-1:0]; assign pipe_evict_cnt_vld = ld_da_pfu_evict_cnt_vld || st_da_pfu_evict_cnt_vld; assign pipe_iid[6:0] = pfu_sdb_entry_type_ld ? ld_da_iid[6:0] : st_da_iid[6:0]; assign pipe_ppfu_va[`PA_WIDTH-1:0] = pfu_sdb_entry_type_ld ? ld_da_ppfu_va[`PA_WIDTH-1:0] : st_da_ppfu_va[`PA_WIDTH-1:0]; //========================================================== // Caucalate hit pc signal //========================================================== assign pfu_sdb_entry_hit_pc = pfu_sdb_entry_vld && (pipe_cmp_pc[PC_LEN-1:0] == pfu_sdb_entry_pc[PC_LEN-1:0]); assign pfu_sdb_entry_pf_inst_vld = pfu_sdb_entry_hit_pc && pipe_cmp_inst_vld; //for new inst create assign pfu_sdb_entry_hit_pc_for_new = pfu_sdb_entry_hit_pc && !(pfu_sdb_entry_type_ld ^ ld_da_pfu_act_dp_vld); //========================================================== // Set/clr ready evict //========================================================== assign pfu_sdb_entry_ready_set = pfu_sdb_entry_vld && pfu_sdb_entry_addr_cmp_info_vld && pfu_sdb_entry_normal_stride; assign pfu_sdb_entry_timeout_cnt_full = (pfu_sdb_entry_timeout_cnt[TIMEOUT_BW-1:0] == sdb_timeout_cnt_val[TIMEOUT_BW-1:0]); assign pfu_sdb_entry_evict_set = pfu_sdb_entry_vld && !pfu_sdb_entry_ready && pipe_cmp_inst_vld && pfu_sdb_entry_timeout_cnt_full && !pfu_sdb_entry_hit_pc; assign pfu_sdb_entry_evict_clr = pfu_sdb_entry_pf_inst_vld; //========================================================== // Generate pop signal //========================================================== //st pref pop assign pfu_pop_st_all = pfu_sdb_entry_vld && !pfu_sdb_entry_type_ld && (!cp0_lsu_l2_st_pref_en || amr_wa_cancel); //if old 3 entry cross 4k or stride not equal, then pop immediately assign pfu_sdb_entry_pop_vld = pfu_sdb_entry_ready_grnt || !pfu_sdb_entry_normal_stride && pfu_sdb_entry_addr_cmp_info_vld && pfu_sdb_entry_vld || pfu_pop_st_all || pfu_pop_all_part_vld;
步长检测缓冲区(Stride Detection Buffer, SDB)的一部分,具体涉及到如何选择管线(pipeline)信息、计算命中程序计数器(PC)信号、设置/清除就绪和逐出信号,以及生成弹出信号。
-
管线信息选择(Pipe Info Select):
pipe_cmp_inst_vld (管线比较指令有效):根据SDB条目的类型(加载或存储)选择相应的预取指令有效信号。pipe_cmp_pc (管线比较程序计数器):同样根据SDB条目的类型选择对应的程序计数器值。pipe_evict_cnt_vld :表示逐出计数器有效,用于跟踪和管理条目的逐出状态。pipe_iid 和pipe_ppfu_va :根据SDB条目类型选择相应的指令标识符和虚拟地址。
-
计算命中PC信号(Calculate Hit PC Signal):
pfu_sdb_entry_hit_pc :当SDB条目有效且管线比较的PC与SDB条目的PC相匹配时,此信号为真。pfu_sdb_entry_pf_inst_vld :在命中PC的基础上,还需要管线比较指令有效。pfu_sdb_entry_hit_pc_for_new :用于新指令创建时的命中检测。
-
设置/清除就绪和逐出(Set/Clear Ready and Evict):
pfu_sdb_entry_ready_set :当SDB条目有效、地址比较信息有效且步长正常时,设置就绪信号。pfu_sdb_entry_timeout_cnt_full :表示超时计数器已满。pfu_sdb_entry_evict_set :在条目有效、未就绪、管线指令有效、超时计数器满,且未命中PC时,设置逐出信号。pfu_sdb_entry_evict_clr :在预取指令有效时,清除逐出信号。
-
生成弹出信号(Generate Pop Signal):
pfu_pop_st_all :用于存储预取弹出。pfu_sdb_entry_pop_vld :结合多个条件生成最终的SDB条目弹出有效信号。
//========================================================== // Generate interface //========================================================== //------------------input----------------------------------- //-----------create signal-------------- assign pfu_sdb_entry_create_vld = pfu_sdb_entry_create_vld_x; assign pfu_sdb_entry_create_dp_vld = pfu_sdb_entry_create_dp_vld_x; assign pfu_sdb_entry_create_gateclk_en = pfu_sdb_entry_create_gateclk_en_x; //---------grnt/done signal------------- assign pfu_sdb_entry_ready_grnt = pfu_sdb_entry_ready_grnt_x; //------------------output---------------------------------- //-----------entry signal--------------- assign pfu_sdb_entry_vld_x = pfu_sdb_entry_vld; assign pfu_sdb_entry_pc_v[PC_LEN-1:0] = pfu_sdb_entry_pc[PC_LEN-1:0]; assign pfu_sdb_entry_ready_x = pfu_sdb_entry_ready; assign pfu_sdb_entry_evict_x = pfu_sdb_entry_evict; assign pfu_sdb_entry_stride_neg_x = pfu_sdb_entry_stride_neg; assign pfu_sdb_entry_stride_v[10:0] = pfu_sdb_entry_stride[10:0]; assign pfu_sdb_entry_strideh_6to0_v[6:0]= pfu_sdb_entry_strideh_6to0[6:0]; assign pfu_sdb_entry_type_ld_x = pfu_sdb_entry_type_ld; //-----------hit signal----------------- assign pfu_sdb_entry_hit_pc_x = pfu_sdb_entry_hit_pc_for_new;
-
输入信号(Input Signals):
pfu_sdb_entry_create_vld :接收外部信号,指示SDB条目创建的有效性。pfu_sdb_entry_create_dp_vld :接收外部信号,指示SDB条目创建的数据路径有效性。pfu_sdb_entry_create_gateclk_en :接收外部信号,控制SDB条目创建时的时钟门控使能。
-
就绪/完成信号(Grant/Done Signals):
pfu_sdb_entry_ready_grnt :从外部接收就绪授权信号,表示SDB条目已准备好进行后续操作。
-
输出信号(Output Signals):
pfu_sdb_entry_vld_x :向外部传递SDB条目的有效性。pfu_sdb_entry_pc_v :向外部传递SDB条目关联的程序计数器值。pfu_sdb_entry_ready_x :向外部表明SDB条目是否已准备就绪。pfu_sdb_entry_evict_x :向外部传递SDB条目的逐出状态。pfu_sdb_entry_stride_neg_x 、pfu_sdb_entry_stride_v 和pfu_sdb_entry_strideh_6to0_v :传递SDB条目的步长相关信息。pfu_sdb_entry_type_ld_x :向外部传递SDB条目的类型(是否为加载类型)。
-
命中信号(Hit Signal):
pfu_sdb_entry_hit_pc_x :向外部传递用于新指令创建时的SDB条目命中程序计数器的状态。