https://mp.weixin.qq.com/s/elOGjaVCWc48gs9c_cTqww

简单介绍TLDebugModuleInner中HALTSUM寄存器的实现。

1. numHaltedStatus

为了记录每个核心的暂停状态,需要的宽度为32位的窗口数:

numHaltedStatus = (nComponents + 31) / 32

= (nComponents - 1 + 32) / 32

= (nComponents - 1) / 32 + 1

当前实现最多只支持1024个核心,所以numHaltedStatus的最大值为32.

2. haltedStatus

单个元素为32位宽度的向量,每个元素表示32个核心的暂停状态:

3. haltedSummary

计算每32个核心中是否有核心暂停,即暂停摘要信息:

4. HALTSUM1RdData

HALTSUM1RdData是读取HALTSUM1寄存器时使用的数据源。

HALTSUM1以hartsel高10位选择一个窗口,低5位选择一个比特,该比特代表最低5位表示的32个核心中是否有核心暂停。

因为当前实现只支持1024个核心,所以高10位实际上可以认为一直是0。也就是不需要再对haltedSumary做截取,而可以直接作为HALTSUM1使用:

5. selectedHaltedStatus

根据hartsel的值,从haltedStatus中选择一个32位窗口使用:

6. HALTSUM0RdData

HALTSUM0RdData是读取HALTSUM0寄存器时使用的数据源。

HALTSUM0以hartsel的高15位选择一个窗口,低5位选择一个比特,每个比特代表一个核心是否暂停。

这里选择的窗口就是selectedHaltedStatus:

7. HALTSUM2/HALTSUM3

不支持:

Rocket - debug - TLDebugModuleInner - HALTSUM的更多相关文章

  1. Rocket - debug - TLDebugModuleInner - Hart Bus Access

    https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...

  2. Rocket - debug - TLDebugModuleInner

    https://mp.weixin.qq.com/s/jkiHceU0HaJbHGvHiU-QOA 简单介绍TLDebugModuleInner的实现. 1. 引入全局配置 1) cfg 引入Debu ...

  3. Rocket - debug - TLDebugModuleInner - DMI Register Control and Status

    https://mp.weixin.qq.com/s/tI41wu0xaIQ5PRq6F82tNw 简单介绍TLDebugModuleInner中生成DMI控制和状态寄存器使用到的状态. 1. abs ...

  4. Rocket - debug - TLDebugModuleInner - Abstract Command State Machine

    https://mp.weixin.qq.com/s/RcXI8uEHvZHGCvX3DoVR4Q 简单介绍TLDebugModuleInner中处理抽象命令时的状态机. 1. CtrlState 定 ...

  5. Rocket - debug - TLDebugModuleInner - Drive Custom Access

    https://mp.weixin.qq.com/s/1bIqzDYXM36MIfSsjvvYIw 简单介绍TLDebugModuleInner中的针对Custom的访问. 1. customNode ...

  6. Rocket - debug - TLDebugModuleInner - ROM Generation

    https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg 简单介绍Variable ROM Generation. 1. jalAbstract jalAbs ...

  7. Rocket - debug - TLDebugModuleInner - Program Buffer Access

    https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ 简单介绍TLDebugModuleInner中的Program Buffer Access. 1. ...

  8. Rocket - debug - TLDebugModuleInner - Program Buffer

    https://mp.weixin.qq.com/s/kjhJJ3moRQzxHt6pJOXEgg 简单介绍TLDebugModuleInner中Program Buffer寄存器的实现. 1. pr ...

  9. Rocket - debug - TLDebugModuleInner - Abstract Data

    https://mp.weixin.qq.com/s/DOLkEi-_qQt6lWOhJ2hxVQ 简单介绍TLDebugModuleInner中抽象数据寄存器的实现. 1. abstractData ...

随机推荐

  1. High Card Low Card G(田忌赛马进阶!!)

    传送门 \(首先一定要明确一个观点,不然会完全没有思路\) \(\bullet\)\(由于前半段大的更优,后半段小的更优.\) \(\bullet\)\(所以,\)Bessie\(一定会在前(n/2) ...

  2. D. Misha, Grisha and Underground 树链剖分

    D. Misha, Grisha and Underground 这个题目算一个树链剖分的裸题,但是这个时间复杂度注意优化. 这个题目可以选择树剖+线段树,时间复杂度有点高,比较这个本身就有n*log ...

  3. Re模块的 三个方法

    import re s1 = '绿茶白茶黄茶青茶红茶黑茶' s2 = '中国绿茶白茶黄茶青茶红茶黑茶' ret = re.findall(".茶", s1) print(ret) ...

  4. LeetCode--Squares of a Sorted Array && Robot Return to Origin (Easy)

    977. Squares of a Sorted Array (Easy)# Given an array of integers A sorted in non-decreasing order, ...

  5. Liunx常用操作(五)-如何查询文档中的冒号与引号

    liunx下面有如下一段包含json格式的文档 一.单查所有冒号: .txt | grep [:] 结果如下: 二.单查所有引号: 这里需要转义 .txt | grep [\"] 三.gre ...

  6. spring data jpa 多对多 ManyToMany

    环境搭建 源码地址:gitee:https://gitee.com/ytfs-dtx/JPA 导入依赖 <properties> <spring.version>5.2.5.R ...

  7. [hdu4714 Tree2cycle]树形DP

    题意:给一棵树,删边和加边的代价都为1,求把树变成一个圈所花的最小代价. 思路:对原树进行删边操作,直到将原树分成若干条链,然后通过在链之间添加边形成圈,由于删边和加边一一对应,且最后需要额外一条边连 ...

  8. [hdu5348]图上找环,删环

    http://acm.hdu.edu.cn/showproblem.php?pid=5348 题意:给一个无向图,现在要将其变成有向图,使得每一个顶点的|出度-入度|<=1 思路:分为两步,(1 ...

  9. 14.3 Go iris

    14.3 Go iris 下载 go get -u -v github.com/kataras/iris 代码示例 package main import "github.com/katar ...

  10. JQuery 高级

    来源于传智播客老师发的笔记 今日内容: 1. JQuery 高级 1. 动画 2. 遍历 3. 事件绑定 4. 案例 5. 插件 JQuery 高级 1. 动画 1. 三种方式显示和隐藏元素 1. 默 ...