Rocket - debug - TLDebugModuleInner - HALTSUM
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的更多相关文章
- Rocket - debug - TLDebugModuleInner - Hart Bus Access
https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...
- Rocket - debug - TLDebugModuleInner
https://mp.weixin.qq.com/s/jkiHceU0HaJbHGvHiU-QOA 简单介绍TLDebugModuleInner的实现. 1. 引入全局配置 1) cfg 引入Debu ...
- Rocket - debug - TLDebugModuleInner - DMI Register Control and Status
https://mp.weixin.qq.com/s/tI41wu0xaIQ5PRq6F82tNw 简单介绍TLDebugModuleInner中生成DMI控制和状态寄存器使用到的状态. 1. abs ...
- Rocket - debug - TLDebugModuleInner - Abstract Command State Machine
https://mp.weixin.qq.com/s/RcXI8uEHvZHGCvX3DoVR4Q 简单介绍TLDebugModuleInner中处理抽象命令时的状态机. 1. CtrlState 定 ...
- Rocket - debug - TLDebugModuleInner - Drive Custom Access
https://mp.weixin.qq.com/s/1bIqzDYXM36MIfSsjvvYIw 简单介绍TLDebugModuleInner中的针对Custom的访问. 1. customNode ...
- Rocket - debug - TLDebugModuleInner - ROM Generation
https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg 简单介绍Variable ROM Generation. 1. jalAbstract jalAbs ...
- Rocket - debug - TLDebugModuleInner - Program Buffer Access
https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ 简单介绍TLDebugModuleInner中的Program Buffer Access. 1. ...
- Rocket - debug - TLDebugModuleInner - Program Buffer
https://mp.weixin.qq.com/s/kjhJJ3moRQzxHt6pJOXEgg 简单介绍TLDebugModuleInner中Program Buffer寄存器的实现. 1. pr ...
- Rocket - debug - TLDebugModuleInner - Abstract Data
https://mp.weixin.qq.com/s/DOLkEi-_qQt6lWOhJ2hxVQ 简单介绍TLDebugModuleInner中抽象数据寄存器的实现. 1. abstractData ...
随机推荐
- Q - Play With Sequence HDU - 3971 线段树 重新排序建树
Q - Play With Sequence HDU - 3971 这个题目是一个线段树,比较特别的线段树,就是c询问一定次数之后重新排序建树来优化减低复杂度. 第一次碰到这种题目有点迷. 这个题目写 ...
- SpringMVC源码学习:容器初始化+MVC初始化+请求分发处理+参数解析+返回值解析+视图解析
目录 一.前言 二.初始化 1. 容器初始化 根容器查找的方法 容器创建的方法 加载配置文件信息 2. MVC的初始化 文件上传解析器 区域信息解析器 handler映射信息解析 3. Handler ...
- mercurial 入门
安装 需要python的docutils,故 sudo pip3 install docutils 然后直接安装mercurial sudo pip3 install mercurial 如果超时,则 ...
- CodeForces-650B Image Preview 二分+模拟
CodeForces-650B Image Preview 题意 手机里有n张图片,打开相机出现的是第一张,第一张右滑得到第n张,同理第n张左滑得到第1张,翻页耗费a秒,看照片耗费1s,但是照片有横屏 ...
- etcd实现服务发现
前言 etcd环境安装与使用文章中介绍了etcd的安装及v3 API使用,本篇将介绍如何使用etcd实现服务发现功能. 服务发现介绍 服务发现要解决的也是分布式系统中最常见的问题之一,即在同一个分布式 ...
- Ubuntu:Tkinter无法导入
最近想写个GUI小程序,所以就使用了python内置的Tkinter包,但是导入时竟然提示没有这个包? 使用命令搜索了下: sudo apt search python3-tk ,显示已经安装了.又重 ...
- SpringBatch异常To use the default BatchConfigurer the context must contain no more thanone DataSource
SpringBoot整合SpringBatch项目,已将代码开源至github,访问地址:https://github.com/cmlbeliever/SpringBatch 欢迎star or fo ...
- Gradle 多环境、多渠道打包
最近项目从eclipse迁移到AS上,主要是为了使用gradle这个插件进行apk打包.毕竟程序员还是要与时俱进的.首先介绍下项目主要需求: 1.使用百度统计,需要对个平台的信息进行统计 2..api ...
- CSS像素与绝对像素
之前在电视的webview上投放广告页面时,遇到了个问题,就是视窗大小和文档大小不一致.最后发现原来有CSS Pixel这个概念,搜集了一些资料,希望能把这个问题捋捋清楚. 首先提出一个大家常常会忽略 ...
- 《C程序设计语言》 练习3-3
问题描述 编写expand(s1,s2),将字符串s1中类似于a-z类的速记符号在字符串s2中扩展为等价的完整列表abc.....xyz.该函数可以处理大小写字母和数字,并可以处理a-b-c,a-z0 ...