(Hexagon_V65_Programmers_Reference_Manual(13)

281 篇文章 30 订阅

Hexagon_V65_Programmers_Reference_Manual(13)

9 PMU 事件

Hexagon 处理器可以收集其执行的应用程序的执行统计信息。 统计数据总结了应用程序运行时发生的各种类型的 Hexagon 处理器事件。

可以在硬件或软件中收集执行统计信息:

  • 可以使用性能监视器单元 (PMU) 在硬件中收集统计信息,它被定义为 Hexagon 处理器架构的一部分。
  • 可以使用 Hexagon 模拟器在软件中收集统计数据。 模拟器统计数据以 PMU 使用的相同格式呈现。

执行统计以处理器事件表示。 本章定义了事件符号及其相关的数字代码。

注意
    由于执行事件的类型因 Hexagon 处理器版本而异,因此会为每个版本收集不同类型的统计信息。  本章列出了为版本 V65 定义的事件符号。

9.1 V65 处理器事件符号

表 9-1 定义了用于表示 V65 Hexagon 处理器的处理器事件的符号。

表 9-1 V65 处理器事件符号

EventSymbolDefinition
0x0N/A此事件永远不会导致计数器更新
0x1COUNTER0_OVERFLOW计数器 0 溢出。 这可以用作 counter1 检测到的事件,以构建有效的 64 位计数器。
0x2COUNTER2_OVERFLOW计数器 2 溢出。 这可以作为 counter3 检测到的事件来构建一个有效的 64 位计数器。
0x3COMMITTED_PKT_ANY线程提交了一个数据包。 执行的数据包。
0x4COMMITTED_PKT_BSB数据包在同一线程中的前一个数据包之后提交了 2 个周期。
0x5COUNTER4_OVERFLOWCounter4 溢出。 这可以作为 counter5 检测到的事件来构建一个有效的 64 位计数器。
0x6COUNTER6_OVERFLOWCounter6 溢出。 这可以作为 counter7 检测到的事件来构建一个有效的 64 位计数器。
0x7COMMITTED_PKT_B2B数据包在同一线程中的前一个数据包之后提交了 1 个周期。
0x8COMMITTED_PKT_SMT在同一个周期内提交了 2 个数据包。
0xaCYCLES_5_THREAD_RUNNING恰好有 5 个线程正在运行的处理器周期。 运行意味着不等待或停止。
0xbCYCLES_6_THREAD_RUNNING恰好有 6 个线程正在运行的处理器周期。 运行意味着不等待或停止。
0xcCOMMITTED_PKT_T0线程 0 提交了一个数据包。 执行的数据包。
0xdCOMMITTED_PKT_T1线程 1 提交了一个数据包。 执行的数据包。
0xeCOMMITTED_PKT_T2线程 2 提交了一个数据包。 执行的数据包。
0xfCOMMITTED_PKT_T3线程 3 提交了一个数据包。 执行的数据包。
0x12ICACHE_DEMAND_MISSIcache 需求未命中。 包括次要失误。
0x13DCACHE_DEMAND_MISSDcache 可缓存需求主要或次要未命中。 包括 dczero 失速。 不包括不可缓存、预取和无分配存储未命中。
0x14DCACHE_STORE_MISSDcache 可缓存存储未命中。
0x17CU_PKT_READY_NOT_DISPATCHED数据包在 CU 调度器上准备好但没有被调度,因为 (1) 没有选择它的线程或 (2) 集群间资源冲突。
0x20ANY_IU_REPLAY除了 Icache 未命中之外的任何 IU 停顿。 包括跳转寄存器停顿、fetchcross 停顿、itlb 未命中停顿等。不包括 CU 重放。
0x21ANY_DU_REPLAY任何 DU 重播。 存储体冲突、存储缓冲区已满等。排除由于缓存未命中导致的停顿 。
0x22CU_REDISPATCH重新分派数据包的任何情况。 最常见的情况是 Qualcomm® Hexagon™ Vector eXtensions (HVX) FIFO 在 HVX 数据包已在传输中时变满。 也可以是对不可重放指令或转发总线资源冲突请求的重放。
0x23ISSUED_PACKETS从 IU 投递的推测性发布的数据包。
0x25COMMITTED_PKT_1_THREAD_RUNNING已提交的数据包运行 1 个线程。 不在停止/等待。
0x26COMMITTED_PKT_2_THREAD_RUNNING有 2 个线程运行的已提交数据包。 不在停止/等待。
0x27COMMITTED_PKT_3_THREAD_RUNNING已提交数据包,运行 3 个线程。 不在停止/等待。
0x2aCOMMITTED_INSTS提交的指示。 每个周期最多增加 8 个。 双工计为两条指令。 不包括结束循环。
0x2bCOMMITTED_TC1_INSTS提交 tc1 类指令。 每个周期最多增加 8 个。 两条 tc1 指令的双工计为两条 tc1 指令。
0x2cCOMMITTED_PRIVATE_INSTS具有每个集群(私有)执行资源的已提交指令。 每个周期最多增加 8 个。 两条私有指令的双工算作两条私有指令。
0x2fCOMMITTED_PKT_4_THREAD_RUNNING有 4 个线程运行的已提交数据包。 不在停止/等待。
0x30COMMITTED_LOADS提交的加载指令。 包括缓存和非缓存。 双负载增加 2。 不包括预取、备忘录和协处理器负载。
0x31COMMITTED_STORES提交的存储说明。 包括缓存和非缓存。 双存储的增量为 2。 不包括备忘录和协处理器存储。
0x32COMMITTED_MEMOPS提交的备忘录指令。 缓存或未缓存。
0x37COMMITTED_PROGRAM_FLOW_INSTS提交的数据包包含程序流 inst。 包括 cr 跳转、endloop、j、jr、dealloc_return、system/trap、事件 56 的超集。双跳转算作两次。
0x38COMMITTED_PKT_CHANGED_FLOW提交的数据包导致流量改变。 任何采取的跳跃。 包括 endloop 和 dealloc_return。
0x39COMMITTED_PKT_ENDLOOP提交的数据包包含一个已被采用的 endloop。
0x3bCYCLES_1_THREAD_RUNNING恰好有 1 个线程正在运行的处理器周期。 运行意味着不等待或停止。
0x3cCYCLES_2_THREAD_RUNNING恰好有 2 个线程正在运行的处理器周期。 运行意味着不等待或停止。
0x3dCYCLES_3_THREAD_RUNNING恰好有 3 个线程正在运行的处理器周期。 运行意味着不等待或停止。
0x3eCYCLES_4_THREAD_RUNNING恰好有 4 个线程正在运行的处理器周期。 运行意味着不等待或停止。
0x40AXI_READ_REQUEST主要 AXI 主设备发出的所有读取请求。 包括全线和部分线。
0x41AXI_LINE32_READ_REQUEST由主要 AXI 主控器发出的 32 字节行读取请求。
0x42AXI_WRITE_REQUEST由主要 AXI 主设备发出的所有写请求。 包括全线和部分线 。
0x43AXI_LINE32_WRITE_REQUEST由主 AXI 主控器发出的 32 字节行写请求,所有字节均有效。
0x44AHB_READ_REQUESTAHB 主机发出的读取请求。
0x45AHB_WRITE_REQUESTAHB 主机发出的写请求。
0x47AXI_SLAVE_MULTI_BEAT_ACCESSAXI 从设备多拍访问。
0x48AXI_SLAVE_SINGLE_BEAT_ACCESSAXI 从属单拍访问。
0x49AXI2_READ_REQUEST由辅助 AXI 主设备发出的所有读取请求。 包括全线和部分线。
0x4aAXI2_LINE32_READ_REQUEST由辅助 AXI 主控器发出的 32 字节线读取请求。
0x4bAXI2_WRITE_REQUEST由辅助 AXI 主设备发出的所有写请求。 包括全线和部分线。
0x4cAXI2_LINE32_WRITE_REQUEST由辅助 AXI 主控器发出的 32 字节行写请求。
0x4dAXI2_CONGESTION辅助 AXI 命令或数据队列已满,操作卡在辅助 AXI 主命令队列的开头。
0x4eDMA_SLAVE_MULTI_BEAT_ACCESSDMA 从机多拍访问。
0x4fDMA_SLAVE_SINGLE_BEAT_ACCESSDMA 从机单拍访问。
0x50COMMITTED_FPS提交的浮点指令。 双 FP 操作增加 2。 不包括转化。
0x51REDIRECT_BIMODAL_MISPREDICT错误预测双模分支方向导致控制流重定向。
0x52REDIRECT_TARGET_MISPREDICT错误预测分支目标导致控制流重定向。 包括 RAS 错误预测。 不包括 JUMPR R31 返回以外的间接跳转和调用。 不包括方向错误预测。
0x53REDIRECT_LOOP_MISPREDICT错误预测硬件环路导致控制流重定向。 仅当循环具有相对较少的数据包并且循环计数为 2 或更少时才会发生。
0x54REDIRECT_MISC出于事件 81、82 和 83 之外的原因的控制流重定向。包括异常、陷阱、中断、非 R31 跳转、多个 initloop 正在运行等。
0x58JTLB_MISSJTLB 中缺少指令或数据地址转换请求。
0x5aCOMMITTED_PKT_RETURN提交了返回指令。 包括取消的返回值。
0x5bCOMMITTED_PKT_INDIRECT_JUMP提交了间接跳转或调用指令。 包括取消的指令。 不包括 JUMPR R31 退货。
0x5cCOMMITTED_BIMODAL_BRANCH_INSTS承诺双模分支。 包括 .old 和 .new。 双跳时增加 2。
0x5dBRANCH_QUEUE_FULL双模分支被忽略。 如果队列已满。
0x5eDU_REQUESTED_BUBBLE_INSERTED应 DU 请求插入的停顿 CU 数量,以避免 DU 端口冲突。
0x5fVTCM_SCALAR_FIFO_FULL_CYCLESCycles 集群可以向 VTCM 标量 FIFO 发出标量内存访问 。
0x60COPROC_ACTIVEVXU 时钟/非空闲。
0x61COPROC_ENABLEDVXU 启用并通电。
0x62ICACHE_ACCESSIcache 行获取数。
0x63BTB_HITBTB命中。
0x64BTB_MISSBTB 未命中。
0x65IU_DEMAND_SECONDARY_MISSIcache 二次未命中。
0x66IU_LINE_FROM_HWLOOP从检测到的硬件循环中提取的 IU 行。 低功耗优化可以省略此处的各种标签和数据访问。
0x67FAST_FETCH_KILLEDFast-fetch 被杀死(在 Icache 访问之后)。
0x68IU_1_PKT_AVAILABLE_TO_ISSUE获取可以独立于可用数据包队列条目发出一个数据包的数据包。
0x69FETCHED_PACKETS_DROPPED由于无法传送到 CU 而丢包。
0x6aIU_REQUESTS_TO_L2_REPLAYEDIU 对 L2 的请求已重播。 可能是 IU 和 DU 冲突到 L2 或 IU 信用失败。 可以为单个事务多次触发。
0x6bIU_PREFETCHES_SENT_TO_L2IU 预取发送到 L2。 计算 L2 未丢弃的缓存行。 排除重放的预取,只计算 L2 接受的预取。
0x6cITLB_MISSITLB 未命中,转至 JTLB。
0x6dIU_2_PKT_AVAILABLE_TO_ISSUEFetch 可以独立于可用的数据包队列条目发出两个数据包。
0x6eIU_3_PKT_AVAILABLE_TO_ISSUEFetch 可以独立于可用的数据包队列条目发出三个数据包。
0x6fIU_REQUEST_STALLEDIU 请求因填写而停止。 从 L2 到 Icache 的需求或预取填充导致 IU 需求停止。
0x70IU_BIMODAL_L2_ELIGIBLE此事件计算可以到 L2 的已解决分支的数量。
0x71IU_0_PKT_AVAILABLE_TO_ISSUE由于跳转到跨越缓存线边界的数据包,Fetch 只能发出部分数据包。
0x72FETCH_2_CYCLE实际 2 周期(返回、循环结束、失败、BTB)。
0x73FETCH_3_CYCLE3 周期实际。
0x74IU_PREFETCHES_DROPPEDIU 预取在访问 I$ 之前中止。
0x75L2_IU_SECONDARY_MISS来自 IU 的 L2 次要未命中。
0x76L2_IU_ACCESS来自 IU 的 L2 可缓存访问。 由 IU 命令导致的对 L2 缓存的任何访问,无论是请求访问还是 L1 预取访问。 排除在 L2 中生成的任何预取。 不包括 L2Fetch、TCM 访问和不可缓存。 地址必须以主 AXI 为目标。
0x77L2_IU_MISS来自 IU 的 L2 未命中。 在 0x76 限定的事件中,导致 L2 未命中(需求未命中或 L1 预取未命中)的事件。 L2 未命中是阻止数据立即返回 IU 的任何条件,不包括管道冲突。
0x78L2_IU_PREFETCH_ACCESS从 IU 预取到 L2。 发送到 L2 缓存的任何 IU 预取访问。 访问必须是 L2 可缓存的并且以主 AXI 为目标。 这不包括 L2Fetch 生成的访问。
0x79L2_IU_PREFETCH_MISSIU 未命中的 L2 预取。 在 0x78 限定的事件中,导致 L2 未命中的事件。
0x7aL2_IU_BRANCH_CACHE_WRITE_REQUEST从 IU 发送到 L2 的请求以在 L2 中写入指令的双模位。 包括所有请求,不考虑目标。
0x7bL2_IU_BRANCH_CACHE_WRITE写入 L2 中指令的双模位。 这是通过更新 L2 高速缓存或 TCM 中的内存完成的事件 122 请求的数量。
0x7cL2_DU_READ_ACCESS来自 DU 的 L2 可缓存读取访问。 来自 DU 的任何读取访问都可能导致 L2 缓存中的查找。 包括加载、l1 预取、dcfetch。 不包括初始 L2fetch 命令、不可缓存、TCM 和协处理器负载。 必须以 AXI 主为目标。
0x7dL2_DU_READ_MISSL2 从 DU 读取未命中。 在 0x7C 限定的事件中,任何导致 L2 未命中的事件。 即,该行先前未在 L2 缓存中分配,将从后备内存中获取。
0x7eL2FETCH_ACCESS来自 DU 的 L2fetch 访问。 通过对 L2Fetch 引擎进行编程而启动的从 L2 预取引擎对 L2 缓存的任何访问。 仅包括缓存查询和获取(如果不存在)命令。
0x7fL2FETCH_MISS程序查询中的 L2fetch 未命中。 在 0x7E 限定的事件中,导致 L2 未命中的事件。 即,该行先前未在 L2 缓存中分配,将从后备内存中获取。
0x80L2_AXI_INTERLEAVE_DROP由于 AXI 交错缓冲区溢出,L2 丢弃返回或转换为不可缓存。
0x81L2_ACCESS对 L2 的所有请求。 不包括内部生成的访问,如 L2Fetch,但是 L2Fetch 引擎的编程将被计算在内。 访问以奇数或偶数交错为目标,并且可能是 L2 可缓存或 TCM。
0x82L2_PIPE_CONFLICT由于管道冲突,L2 未接受请求。 冲突可以是标签库、数据库或其他管道冲突。
0x83L2_TAG_ARRAY_CONFLICT事件 130 中的项目中,与标签数组冲突导致的项目。
0x84AXI_RD_CONGESTION主要 AXI 读取命令队列已满,操作停留在主要 AXI 主命令队列的头部。
0x85AHB_CONGESTIONAHB 拥塞。 当 AHB 接口已满且操作卡在命令队列的头部时触发。
0x86SNOOP_BLOCKSnoop 块。 当一个 snoop 未被接受并且 snoop 阻塞了返回 FIFO 的头部,并且返回 FIFO 有其他项时触发。
0x87TCM_DU_ACCESS来自 DU 的 TCM 访问。 DU 访问 L2 TCM 空间。 不包括 HVX 请求。
0x88TCM_DU_READ_ACCESS来自 DU 的 TCM 读取访问权限。 DU 读取 L2 TCM 空间。 不包括 HVX 请求。
0x89TCM_IU_ACCESS来自 IU 的 TCM 访问。 IU访问L2 TCM空间。
0x8aL2_CASTOUTL2 丢弃(castout)。 当 L2 由于分配而驱逐脏线时触发。 不会在缓存操作上触发。
0x8bL2_DU_STORE_ACCESS来自 DU 的 L2 可缓存存储访问。 来自 DU 的任何存储访问都可能导致 L2 缓存中的查找。 不包括高速缓存操作、不可高速缓存、TCM 和协处理器存储。 必须针对主要 AXI。
0x8cL2_DU_STORE_MISS来自 DU 的 L2 未命中。 在 0x8B 限定的事件中,导致未命中的事件。 特别是行不在缓存或合并缓冲区中的情况。
0x8dL2_DU_PREFETCH_ACCESS来自 DU 的 L2 预取访问。 在 0x7C 限定的事件中,有 Dcfetch 和 dhwprefetch。 这些是针对 AXI 主要的 L2 可缓存。
0x8eL2_DU_PREFETCH_MISS来自 DU 的 L2 预取未命中。 在 0x8D 限定的事件中,哪些事件错过了 L2。
0x8fL2_DU_RETURN_NOT_ACKEDL2 返回到 DU 未确认。 这对于任何 DU 返回、预取或需求都是有效的。 已经修改事件名,称为 L2_DU_PREFETCH_NOT_ACKED
0x90L2_DU_LOAD_SECONDARY_MISS来自 DU 的 L2 加载二次未命中。 在记分板上打忙线,阻止返回。 繁忙情况可能包括由连续两次负载( back to back loads)引起的停顿(pipeline bubble),如 L1UC 负载所示。
0x91L2FETCH_COMMANDL2fetch 命令。 不包括停止命令
0x92L2FETCH_COMMAND_KILLEDL2fetch 命令被终止,因为发出了停止命令。 每个被杀死的 L2fetch 命令增加一次。 如果多个命令排队到 L2Fetch 引擎,则会记录每个命令的终止情况。
0x93L2FETCH_COMMAND_OVERWRITEL2fetch 命令覆盖。 杀死旧的 L2fetch 并用新的 L2fetch 替换。
0x94L2FETCH_ACCESS_CREDIT_FAILL2fetch 访问无法获得信用。 L2fetch 因缺少 L2fetch 或 L2evict 信用而被阻止。
0x95AXI_SLAVE_READ_BUSYAXI 从设备读访问遇到忙线。
0x96AXI_SLAVE_WRITE_BUSYAXI 从机写访问遇到忙线。
0x97L2_ACCESS_EVEN在 0x81 中的事件中,对偶数 L2 缓存的访问次数。
0x98CLADE_HIGH_PRIO_L2_ACCESSIU 或 DU 请求高优先级 CLADE 区域。 不计入 L2 Fetch。
0x99CLADE_LOW_PRIO_L2_ACCESSIU 或 DU 请求低优先级 CLADE 区域。 不计入 L2 Fetch。
0x9aCLADE_HIGH_PRIO_L2_MISSL2 中错过的 CLADE 高优先级 L2 访问。
0x9bCLADE_LOW_PRIO_L2_MISSL2 中错过的 CLADE 低优先级 L2 访问。
0x9cCLADE_HIGH_PRIO_EXCEPTION发生异常的 CLADE 高优先级解码。
0x9dCLADE_LOW_PRIO_EXCEPTION发生异常的 CLADE 低优先级解码。
0x9eAXI2_SLAVE_READ_BUSYAXI 辅助从属读取访问遇到忙线。
0x9fAXI2_SLAVE_WRITE_BUSYAXI 辅助从属写访问遇到忙线。
0xa0ANY_DU_STALL任何DU档。 当线程有任何 DU 停顿(dcache 未命中或 dTLBmiss)时递增一次。
0xa1DU_BANK_CONFLICT_REPLAYDU 存储体冲突重播。 双内存访问相同的银行但不同的线路。
0xa2DU_CREDIT_REPLAY由于可用的 QoS DU 信用不足,数据包进行重播的次数。
0xa3L2_FIFO_FULL_REPLAY计数 L2 偶数/奇数 FIFO 完整重播。
0xa4DU_STORE_BUFFER_FULL_REPLAY第一个数据包将访问权限放入 DU 存储缓冲区(memop、store.new、加载/存储库冲突、存储/存储库冲突)。 任何后面的数据包都会在第一个数据包驱逐之前尝试使用存储缓冲区,并且必须重播以便存储缓冲区可以耗尽。
0xa5DU_STORE_BUFFER_FORCED_DRAIN存储缓冲区经历强制排空的次数
0xa6DU_SNOOP_CONFLICT_REPLAYDU snoop 冲突重播。 当snoop 进来时,与存储进行基于集合的匹配,我们重播存储。 Snoop 读取和写入缓存,必须在存储可以写入之前完成。 不包括snoop 可能导致的填充重放情况。
0xa7DU_SNOOP_REQUEST已接受的 DU snoop请求
0xa8DU_FILL_REPLAY填充与流水线中来自同一线程的指令存在索引冲突。 如果延迟队列中有预取,或者填充没有被 ACK 太长时间并强制进入管道,则填充和请求可能来自不同的线程。
0xa9DU_SECMISS_REPLAY在填充待处理时,负载命中保留行。
0xaaDU_SNOOP_REQUEST_CLEAN_HITDU snoop 请求清除命中。 Snoop 击中干净的线条。
0xacDU_READ_TO_L2DU 读到 L2。 从 L2 带来数据的所有内容的总和。 包括预取(dcfetch 和 hwprefetch)。 不包括协处理器负载。
0xadDU_WRITE_TO_L2DU 写入 L2。 从 DU 写入 L2 数组的所有内容的总和。 包括 dczeroa。 不包括 dcclean、dccleaninv、标记写入和协处理器存储。
0xafDCZERO_COMMITTED提交了 dczeroa 指令。
0xb3DTLB_MISSDTLB 未命中转到 JTLB。 当两个插槽都未命中不同的页面时,递增 2。当两个插槽均未命中同一页面时,仅计算 S1,因为 S1 先行并填充 S0。
0xb5DU_STORE_BUFFER_ACCESS此事件计算条目进入存储缓冲区的次数。
0xb6STORE_BUFFER_HIT_REPLAY由于具有 2 个存储的数据包进入同一个存储库但不同的高速缓存行,存储缓冲区命中重放,然后从被推入存储缓冲区的地址加载 。
0xb7STORE_BUFFER_FORCE_REPLAY存储缓冲区必须耗尽,迫使当前数据包重播。 这通常发生在当前数据包和存储缓冲区之间的缓存索引匹配上。 也可能是存储缓冲区超时。
0xb9SMT_BANK_CONFLICT计算线程间 SMT 库冲突。
0xbaPORT_CONFLICT_REPLAY计算所有端口冲突重播,包括由于高优先级填充和存储缓冲区强制耗尽导致的相同集群重播,以及集群间重播。
0xbdPAGE_CROSS_REPLAY页面交叉重播。 来自导致重放的有效数据包的页面交叉。 不包括 pdkill 数据包。 如果两个插槽都导致页面交叉,则计数两次。
0xbeDU_DEALLOC_SECURITY_REPLAY由于使用 FRAMEKEY != 0 执行 deallocframe 或 dealloc_return 而重播。
0xbfDU_DEMAND_SECONDARY_MISSDU请求再次错过。
0xc0DU_MISC_REPLAY所有 DU 重播不计入其他重播事件。 每次 ANY_DU_REPLAY 计数且没有其他 DU 重播事件计数时,此事件都应计数
0xc3DCFETCH_COMMITTEDdcfetch 已提交。 包括命中和掉落。 不包括转换为预取。
0xc4DCFETCH_HITDcfetch 在 dcache 中命中。 包括命中有效或保留线路
0xc5DCFETCH_MISS在 L1 中错过了 Dcfetch。 计算发送到 L2 FIFO 的 dcfetch。
0xc8DU_LOAD_UNCACHEABLEL1 缓存中的不可缓存负载。 双不可缓存负载计数两次。
0xc9DU_DUAL_LOAD_UNCACHEABLEL1 缓存中的双不可缓存负载。
0xcaDU_STORE_UNCACHEABLE一级缓存中的不可缓存存储。 对于双不可缓存存储,计数两次。 不包括未缓存的备忘录。
0xccMISS_TO_PREFETCHDcache 未命中转换为预取。 可能是数据包中丢失的第二个负载,也可能是同一线程上的 DMT 后续数据包。 当第一次未命中解决时,正常的 dcache 访问继续进行。 包括转换后的预取到不可缓存的空间中,这些空间稍后在管道中被取消。
0xceAXI_LINE64_READ_REQUEST由主要 AXI 主控器发出的 64 字节行读取请求。
0xcfAXI_LINE64_WRITE_REQUEST由主 AXI 主控器发出的 64 字节行写请求。 所有字节均有效。
0xd0AXI_WR_CONGESTION主要 AXI 写入命令或数据队列已满,并且操作停留在主要 AXI 主命令队列的开头。
0xd1AHB_8_READ_REQUEST进行了 8 字节 AHB 读取。
0xd2AXI_INCOMPLETE_WRITE_REQUEST对主 AXI 进行了 L2 行大小的写入,但并非所有字节都有效。 这包括分段写入。 它不包括 WT 存储。 此事件的目的是捕获在行级别合并的写入次数。
0xd3L2FETCH_COMMAND_PAGE_TERMINATIONL2fetch 命令终止,因为它无法获得从 VA 到 PA 的页面转换。 包括因许可错误而导致的终止。 例如,地址转换可能会失败,因为 VA 到 PA 不在 TLB 中,或者转换中的属性不可接受并且命令终止。
0xd4REQUEST_STALL_WRITE_BUFFER_EXHAUSTION由于缺少写缓冲区,对 L2 的请求停止。 这是为标量和向量存储设置的
0xd5L2_DU_STORE_COALESCE合并的 139 个事件。
0xd6L2_STORE_LINK计算新存储链接到记分板中其他内容的次数。
0xd7L2_SCOREBOARD_70_PERCENT_FULLL2 记分板至少占满 70% 的每个周期递增 1。 对于 32 个条目的记分牌,这意味着消耗了 23 个或更多条目。 即使记分板已满 80%,此事件仍会继续计数。 对于多个交错,此事件仅考虑消耗条目最多的记分牌。
0xd8L2_SCOREBOARD_80_PERCENT_FULLL2 记分板至少满 80% 的每个周期递增 1。 对于 32 个条目的记分牌,这意味着消耗了 26 个或更多条目。 即使记分板已满 90%,此事件仍会继续计数。 对于多个交错,此事件仅考虑消耗条目最多的记分牌。
0xd9L2_SCOREBOARD_90_PERCENT_FULLL2 记分板至少占满 90% 的每个周期递增 1。 对于 32 个条目的记分牌,这意味着消耗了 29 个或更多条目。 对于多个交错,此事件仅考虑消耗条目最多的记分牌。
0xdaL2_SCOREBOARD_FULL_REJECTL2 记分板太满,无法接受选择器请求,并且选择器有请求。
0xdbL2_DU_RETURN_REPLAYED由于 DU 拥塞重放 L2 返回(请求或预取)。
0xdcL2_EVICTION_BUFFERS_FULL当任何交错中的所有逐出缓冲区都被占用时,对每个周期进行计数。
0xddAHB_MULTI_BEAT_READ_REQUEST进行了 32 字节多拍 AHB 读取。
0xdfL2_DU_LOAD_SECONDARY_MISS_ON_SW_PREFETCH在 0x90 中的事件中,主要未命中的事件是 DCFETCH 或 L2FETCH。
0xe1REPLAY_MAXIMUM_FORCE已达到最大 DU 重播次数,并且通过停止其他线程来强制该线程通过 DU。
0xe2SCHEDULER_WATCHDOG_FORCECU 调度程序看门狗强制线程选择的次数。 这个线程选择可以被活锁警告随机化器覆盖。
0xe3LIVELOCK_REFETCH活锁检测器触发重新获取所有线程的次数。
0xe4CYCLES_LIVELOCK_WARNING由于传递了活锁警告水印,Cycles 核心正在随机化调度程序。 这可能是核心没有取得进展的迹象,或者只是水印设置得太低而无法在系统中进行合法停顿。
0xe5THREAD_OFF_PVIEW_CYCLES由于线程关闭或等待,Cycles 集群无法提交。
0xe6ARCH_LOCK_PVIEW_CYCLES由于内核锁或 TLB 锁,Cycles 集群无法提交。
0xe7REDIRECT_PVIEW_CYCLES由于分支错误预测等重定向,Cycles 集群无法提交。
0xe8IU_NO_PKT_PVIEW_CYCLES由于 IQ 为空,Cycles 集群无法提交。
0xe9DU_CACHE_MISS_PVIEW_CYCLES由于 D-cache 可缓存未命中,Cycles 集群无法提交。
0xeaDU_BUSY_OTHER_PVIEW_CYCLES由于 DU 重播或 DU 停顿或 DTLB 未命中,Cycles 集群无法提交。
0xebCU_BUSY_PVIEW_CYCLES由于寄存器互锁、寄存器端口冲突、由于时序类(例如 tc_3stall、无 B2B HVX 或 HVX FIFO 已满)而导致的停顿,周期集群无法提交。
0xecSMT_DU_CONFLICT_PVIEW_CYCLES由于 DU 资源冲突,Cycles 集群无法提交。
0xedSMT_XU_CONFLICT_PVIEW_CYCLES由于 XU 资源冲突,Cycles 集群无法提交。
0xeeDU_UNCACHED_PVIEW_CYCLES由于 D-cache 不可缓存访问,Cycles 集群无法提交。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值