e203000

1)
/
①BIU作为核心通信枢纽,主要承担两大功能:一是连接处理器核内的关键执行单元(包括IFU、LSU和EAI协处理器),统一管理指令和数据的内部传输路径;二是作为"核内计算"与"核外资源"的唯一交互通道,负责对接外部存储(如ITCM、DTCM、SRAM)及外设(包括快速IO、私有外设、CLINT和PLIC)。
②核内计算单元连接方式:
i)IFU通过专用的"IFU-BIU接口"与BIU相连;
ii)LSU通过"LSU-BIU接口"与BIU建立连接;
iii)ALU/AGU和LSU可直接将结果写回寄存器文件。
③核心存储单元配置:
i)ITCM经由BIU接口与IFU对接;
ii)DTCM通过BIU接口与LSU连接。
④核外扩展资源均采用标准化的ICB接口与BIU通信。ITCM/DTCM还额外提供外部访问接口以支持容量扩展需求。
⑤EAI协处理器通过"LSU-EAI接口"间接接入BIU系统
→另一个视角
①指令流
i)取指:IFU通过专用接口向BIU发起指令请求,优先访问ITCM获取指令,若ITCM未命中,则通过ICB接口从外部SRAM加载指令;
ii)解码:IFU将指令传送至DECODE单元,解码器将指令解析为操作码和操作数地址;
iii)运算:ALU/AGU接收解码结果,算术运算则直接执行计算,数据访问则生成目标地址并传递给LSU;
iv)写回:运算结果直接写回寄存器堆,为后续指令执行提供数据支持。
②数据流
i)数据加载:LSU接收来自 ALU/AGU 的地址信息,通过"BIU-LSU接口"向BIU发起数据请求,优先访问DTCM获取目标数据,若DTCM未命中,则BIU通过ICB接口访问外部SRAM;
ii)协处理辅助:当需要进行复杂运算时,EAI协处理器通过LSU接口获取数据,完成运算后将结果数据返回至LSU;
iii)数据存储 / 写回:LSU将加载的数据传送至ALU/AGU参与运算,或直接将数据写入DTCM/SRAM存储器,最终运算结果由LSU写回Regfile,完成整个数据流处理过程。

2)
/

3)
/

4)
/

5)
/

6)
/
①sret指令用于从S模式异常处理程序返回低特权级的核心指令.执行时,cpu退出异常处理流程,返回原执行流;
②mret指令用于从M模式的异常处理或中断服务程序中退出,返回到陷入前的特权模式(如S模式或U模式).→在U/S模式下执行会触发非法指令异常.
③WFI核心目的是让处理器进入低功耗待机模式,直到一个不可屏蔽的中断或可屏蔽中断(当前已使能)发生.它是一种提示性hints指令,架构上它向硬件提供了一个明确提示,即程序目前没有工作,具体的硬件实现可以自由决定如何响应这个提示.

如果在执行WFI时,中断已经pending,则WFI指令的行为像一个NOP.CPU不会进入等待状态,而是继续执行下一条指令;
否则,CPU会暂停当前线程的执行,并开始进入一种架构性休眠状态.此时,时钟可能被门控,部分功能单元可能被断电,从而显著降低功耗.

WFI是本地的,在harts系统中,一个hart执行WFI只会让该hart自己进入休眠状态,不影响其他hart运行.

WFI不等于关机和深度睡眠,它只是一种浅睡眠状态,唤醒延迟很低.更深的睡眠状态通常需要通过PMU寄存器来配置.

7)
/

8)
/

9)
/

10)
/
/①set_input_delay的根本目的,是告诉VIVADO时序分析器,FPGA芯片外部的信号,相对于其对应的外部时钟,是何时到达FPGA输入引脚的.(如果没有这个约束,VIVADO会假设外部信号是完美的,与时钟边沿完美对齐);
②set_input_delay的工作原理基于一个标准的source-synchronous接口模型.时序分析器会为这条路径计算两个最坏情况;建立时间检查(最慢路径)和保持时间检查(最快路径).因此set_input_delay也需要指定-max和-min.
③对于建立时间检查(set_input_delay -clock < clk_name > -max < value > [get_ports < name >]),分析器考虑最慢的数据路径和最快的时钟路径.
④对于保持时间检查,分析器考虑最快的数据路径和最慢的时钟路径.

11)
/
①set_output_delay约束的本质,就是告诉FPGA时序分析工具,外部接收芯片的时序要求.根据这个要求,工具反过来约束FPGA内部的逻辑和布线,确保数据在正确的时间出现在FPGA IO引脚.
②难点在于,数据的有效窗口,不仅取决于FPGA内部,还取决于整个系统的时钟网络.
③set_output_delay定义了,相对于参考时钟,数据在FPGA引脚之后的有效时间是多少.

12)
/

在这里插入图片描述

☆)
/
①B型指令其分支偏移量在指令中编码为12位,且在计算目标地址时该偏移量会被硬件左移1位,以实现字节寻址下的指令地址对齐,因此相当于当前指令地址PC的跳转范围是±4KB.如需实现更大范围的跳转,需结合LUI指令(加载高位立即数)或AUIPC指令(PC相对加载高位立即数)来构造完整目标地址.
②JAL作为J型指令唯一用于实现带链接直接跳转指令,其功能是将下一条指令地址保存到指定寄存器中,同时跳转到由20位立即数计算得出的目标地址处继续执行程序.该指令支持相对于当前PC值±1MB的大地址范围跳转.

i)jal采用PC相对寻址,偏移范围±1MB.适用于跳转到固定偏移位置.
ii)jalr采用寄存器间接寻址,适用于动态目标地址(如函数返回/函数指针调用).

调用约定,函数调用jal固定使用ra保存返回地址;函数返回jalr通过ra间接跳转.
③LUI(load upper immediate)指令用于将20位立即数加载到寄存器的高位,低12bit补零.
④在RV32I指令集中,B指令的立即数仅13位,跳转范围±4KB.若需长距离跳转,需组合指令条件分支+JAL实现(多指令序列).(注意比较指令和条件跳转指令的区别)
⑤lw指令用于从内存中读取一个32位数据,通过基址加偏移量的方式计算内存地址,并要求地址对齐.→避免在访问每次访问不同地址时都需要修改基址寄存器,增加指令数量.→lh需要2字节对齐,lb无对齐要求.
⑥fence指令的pred前序操作集/succ后序操作集位域解析→i表示设备输入(内存加载或外设寄存器读),o表示设备输出,r表示内存读(普通内存加载操作),w表示内存写.→
fence rw,w表示所有读写操作必须在该屏障前完成,之后才能执行写操作.
/
①fence指令用于控制内存访问顺序,确保其前后的特定内存操作满足顺序约束,避免因乱序执行导致的数据一致性问题.
②amo指令直接执行原子性读-修改-写操作(如原子加/交换/位操作等),在单条指令内保证操作的原子性,无需额外锁机制,属于可选的A扩展指令集.其通过硬件直接实现原子性.
③LR/SC指令通过lr.w(加载保留)和sc.w(条件存储)的组合实现原子操作.属于A扩展指令集.通过标记-检查机制实现原子性
④fencei指令用于确保在该指令之前对指令存储空间的所有写入操作,在该指令之后对同一hart的取指操作可见.→程序可能修改自身正在执行或即将执行的代码区域.如果没有同步机制,处理器可能继续执行旧的指令.→fencei强制硬件执行流水线冲刷、无效指令缓存、同步取指逻辑.→只保证当前执行它的hart能看到指令修改的效果.具体的冲刷和失效范围(是整个i-cache还是仅相关区域)以及精确的硬件行为是implementation-defined.
⑤ecall(environment call)指令用于主动请求来自执行环境的服务,是用户模式程序(u-mode)与更高特权级别(m-mode/s-mode)进行沟通的核心机制,主要用于实现系统调用.→当处理器执行ecall指令时,处理器会产生一个同步异常.处理器将当前pc保存到异常程序计数器mepc/sepc寄存器中,这个值指向ecall本身的地址或下一条指令的地址.→处理器将发生异常时的特权模式保存到异常状态寄存器mstatus/sstatus中.→处理器将异常原因码写入异常状态寄存器mcause/sstatus.→特权级别提升与跳转.→软件异常处理程序接管.→返回到用户程序.
⑥ebreak(environment break)是RV32I指令集中重要调试指令.执行指令时,处理器会产生一个断点异常.→异常进入时,处理器将当前pc存储mepc,设置mcause为3,设置mtval(陷阱值寄存器)为0,跳转到mtvec指定的异常处理程序.
/
①csrrw用于原子性交换CSR和通用寄存器中的值,其行为是:读取CSR旧值,零扩展至32位后写入通用寄存器rd;将源通用寄存器rs1中的值写入该CSR.注意,若rd=x0或rs1=x0,则跳过读取操作或清零CSR.→csrrw提供原子操作,避免因中断或上下文切换导致的数据不一致.
②csrrs用于原子化读取并置位CSR,其原子化读取目标CSR的当前值,并将其扩展至XLEN位,存入整数寄存器rd中.同时将源寄存器rs1的值视为bitmask,对CSR执行按位或,若rs1中某位为1,则CSR对应位置1,其他位保持不变.→读取、修改、写入三步操作在硬件层面原子完成,中间不会被中断或上下文切换打断.→注意!硬件确保CSR指令不会被异步异常打断,但可能被同步异常打断,比如指令执行中触异常(如非法地址),此时终止执行并跳转异常处理.此外还可能被调试中断打断.
③csrrc提供了一种原子方法来清除CSR中的特定位,同时不会影响其他位,并且能够获取修改前的状态.
④fence指令→处理器和编译器为了优化性能(乱序执行/缓存层次结构),可能会重排内存读写指令的执行顺序.在单线程中这通常是安全的,但在并发多线程环境下,这种重排可能导致程序逻辑错误(违反内存一致性模型).→fence指令不提供任何原子性保证,它只强制特定类型指令执行的相对顺序符合预期,例如,fence前的所有store必须在fence后的任何load/store之前对其他处理器可见.
⑤AMO指令在单个不可分割的步骤中,完成读-修改-写一个内存位置的操作.→当异步中断在AMO执行过程到达时,此时立即冻结AMO操作(暂停在微操作的任意阶段),并且保留关键状态(内存锁保持占用/寄存器值暂存),中断返回后再重新执行AMO指令.
⑥LR/SC提供一种更复杂原子结构的底层原语.其提供了一种有条件的原子性.SC成功执行意味着从LR到SC这段时间内,目标内存位置没有被干扰,因此整个序列(加载/计算/条件存储)的效果是原子的.如果SC失败,则需要重试整个序列.
/
①ecall指令是risc-v架构中实现特权级跃迁的核心机制.其本质是触发同步异常,强制将控制权从低特权级转移到高特权级(通常是M/S模式).

执行ecall指令时,cpu立即停止当前指令流.硬件自动保存PC和原因寄存器,确保异常入口的状态完整性.
②ebreak指令会立即引发一个断点异常,强制暂停当前程序执行,并将控制权转移给调试环境或异常处理程序执行,并将控制权转移给调试环境或异常处理程序.→执行:返回地址保存/异常原因记录/指令编码获取至mtval/跳转至处理程序.→注意!软件需修正mepc以避免死循环.
③add指令忽略算术溢出.其压缩格式为c.add rd,rs2.
④amoadd指令会执行三个操作:i)从内存地址(由rs1指定)加载数据到临时寄存器,将这个数据存入rd寄存器;ii)将加载的数据与rs2寄存器中的值进行加法;iii)将结果写回原始内存地址.所有操作原子完成.→可以通过可选后缀aq/rl控制内存屏障行为.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96098.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Infortrend普安科技IEC私有云平台VM解决方案

Infortrend企业云&#xff08;IEC&#xff09;内置Hypervisor运行VM。功能完整、无需额外付费。在本文中&#xff0c;我们将为您详细介绍IEC是如何支持 VM的。市场现状与挑战市场现状 虚拟化市场面临转型&#xff0c;主流厂商&#xff08;如 VMware&#xff09;改用订阅制…

【代码随想录算法训练营——Day6(Day5周日休息)】哈希表——242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和

LeetCode题目链接 https://leetcode.cn/problems/valid-anagram/ https://leetcode.cn/problems/intersection-of-two-arrays/ https://leetcode.cn/problems/happy-number/ https://leetcode.cn/problems/two-sum/ 题解 242.有效的字母异位词 这道题要想到用哈希表来做。同时注…

安科瑞基站智慧运维云平台:安全管控与节能降耗双效赋能

功能&#xff1a;基站智慧用电云平台通过对5G宏站和室分站点加装交/直流智能监控设备、无线采集设备以及系统管理平台&#xff0c;完成夜间无业务时段的下电操作&#xff0c;减少电能消耗&#xff0c;降低运营成本支出&#xff0c;以及提升通信设备供电线路状态的实时监测保护功…

处理省市区excel数据加工成SQL

原始数据相关内容链接 处理excel数据加工成SQL的脚本 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Excel行政区域数据转SQL脚本 - 支持特殊行政单位处理&#xff08;如省直辖县级行政单位&#xff09; - 支持批量处理 """import pand…

双碳目标下的24小时分时综合能源系统低碳优化调度:基于 Matlab/YALMIP/CPLEX的方法与仿真

在“双碳”战略目标的推动下&#xff0c;综合能源系统&#xff08;Integrated Energy System, IES&#xff09;已成为实现能源结构优化与碳排放控制的重要途径。本文以光伏、风电、燃气—电热联产&#xff08;CHP&#xff09;、燃气锅炉、电锅炉、电储能以及碳捕集&#xff08;…

TDengine 选择函数 Last() 用户手册

LAST() 函数用户手册 函数定义 LAST(expr)功能说明 LAST() 函数统计表/超级表中某列的值最后写入的非 NULL 值&#xff0c;即返回时间戳最大的非 NULL 值。 版本要求 最低版本: v3.0.0.0 返回值 数据类型: 同应用的字段返回内容: 时间戳最大的非 NULL 值及其对应的时间戳…

< 自用文 学习 > 用 Claude Code 做一个日历

环境&#xff1a; OS: Windows 11 IDE&#xff1a;TREA Model: Sonnet / Qwen (免费 Token 用完) 参考&#xff1a; Claude Code Beginner Guide – Get Started in 20 Minutes (2025) by Alex Finn 油管博客 https://www.youtube.com/watch?viYiuzAsWnHU&listTLGG1L…

Gmail 数据泄露安全警报以及启示

目前&#xff0c;大规模数据泄露和针对性钓鱼攻击持续威胁着数十亿 Gmail 用户的安全&#xff0c;受ShinyHunters、UNC6040、UNC6395等威胁组织攻击&#xff0c;25 亿 Gmail 用户面临极大风险&#xff1b;攻击者已从暴力破解转向社会工程学与混合勒索&#xff0c;而密码复用、弱…

2024年6月GESPC++三级真题解析(含视频)

视频讲解&#xff1a;GESP2024年6月三级C真题讲解 一、单选题 第1题 解析&#xff1a; 答案C&#xff0c; 认证语言有C/C、Python、Scratch 第2题 解析&#xff1a; 答案B&#xff0c;判断闰年口诀“ 4闰 100不闰 400再闰 ” 第3题 解析&#xff1a; 答案C&#xff…

AiPPT生成的PPT内容质量怎么样?会不会出现逻辑混乱或数据错误?

作为一个每天要和 PPT 打交道的职场人&#xff0c;我用 AiPPT快一年了&#xff0c;从最初的 “试试看” 到现在的 “离不开”&#xff0c;最让我惊喜的就是它生成的 PPT 内容质量 —— 不仅逻辑清晰、数据专业&#xff0c;还能精准贴合不同场景需求&#xff0c;完全没遇到过逻辑…

DINOv3 新颖角度解释

1. Gram锚定&#xff08;Gram Anchoring&#xff09;的创新视角 新颖角度&#xff1a;oriane_simeoni&#xff08;Meta AI研究人员&#xff09;在X上分享了一个关于Gram锚定的深入线程&#xff0c;强调这一技术如何解决自监督学习中长期训练导致的特征图退化问题。 解释&#x…

【T2I】Discriminative Probing and Tuning for Text-to-Image Generation

paper&#xff1a;CVPR 2024 2403 https://arxiv.org/abs/2403.04321 code&#xff1a; https://github.com/LgQu/DPT-T2IAbstract 尽管文本到图像生成&#xff08;T2I&#xff09;取得了进展&#xff0c;但先前的方法往往面临文本 -图像对齐问题&#xff0c;例如生成图像中的关…

【CentOS7】使用yum安装出错,报HTTPS Error 404 - Not Found

【CentOS7】使用yum安装出错&#xff0c;报HTTPS Error 404 - Not Found问题描述解决办法博主有话说问题描述 在CentOS7中安装docker&#xff0c;切换了国内的镜像源进行yum安装&#xff0c;始终报如下错误&#xff1a;HTTPS Error 404 - Not Found 正在尝试其他镜像&#xff…

vulnhub:Kioptrix level 2

0x00、环境下载 链接&#xff1a;https://www.vulnhub.com/entry/kioptrix-level-11-2,23/ 0x01、前期准备 1.1、检查文件 hash值对比无误后解压 1.2、编辑虚拟机网卡 当不支持桥接时候&#xff0c;如练WiFi无无线网卡 方法1&#xff1a; 修改type为nat 方法2&#xff1a;将…

【CentOS7】docker安装成功后测试,报Unable to find image ‘hello-world:latest‘ locally

【CentOS7】docker安装成功测试&#xff0c;报Unable to find image hello-world:latest locally问题描述问题解决问题描述 根据大佬的博文【CentOS7】Linux安装Docker教程&#xff08;保姆篇&#xff09;&#xff0c;以及结合之前的博文【CentOS7】使用yum安装出错&#xff0…

福彩双色球第2025104期篮球号码分析

明天是2025年9月9号星期二&#xff0c;深圳天气大雨。福彩双色球第2025104期篮球号码分析&#xff0c;上期开出篮球16&#xff0c;数字形式是1路球&#xff0c;合数偶数大号区域1字头数字。篮球1尾数01和11遗漏21期上次遗漏8期上上次遗漏7期&#xff0c;篮球3尾数03和13遗漏18期…

[手写系列]Go手写db — — 第三版(实现分组、排序、聚合函数等)

[手写系列]Go手写db — — 第三版第一版文章地址&#xff1a;https://blog.csdn.net/weixin_45565886/article/details/147839627 第二版文章地址&#xff1a;https://blog.csdn.net/weixin_45565886/article/details/150869791 &#x1f3e0;整体项目Github地址&#xff1a;ht…

狂想-机器人触感阵列理论验证方案

将方案改为使用**限制移动范围的半滚球**作为理论验证原型&#xff0c;是一个极具智慧且可行的降维策略&#xff0c;它将极大降低验证门槛&#xff0c;但同时会牺牲部分性能。### **方案转变后的核心变化**1. **原理替换**&#xff1a;从依赖**光学流**&#xff08;拍摄表面纹理…

UNBIASED WATERMARK:大语言模型的无偏差水印

摘要1.背景与问题提出大语言模型&#xff08;LLMs&#xff09;的快速发展引发了对其可能被滥用的担忧。为降低这种风险&#xff0c;将水印技术融入大语言模型&#xff0c;以实现对模型输出的追踪和溯源成为一种思路。而此前研究认为&#xff0c;水印强度和模型输出质量之间存在…

MySQL——事务、MVCC

目录 什么是事务&#xff1f; 事务的四大特性 事务的隔离级别 事务的原理 redo log undo log MVCC实现原理 概念 隐藏字段 undo log版本链 readview 什么是事务&#xff1f; 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操…