当前位置: 首页 > news >正文

读书·基于RISC-V和FPGA的嵌入式系统设计·第3章

72.8051单片机的弊端和指令集架构CISC的缺点

76.RV指令集的特征(⭐)

特权架构和特权指令集是相关但不完全相同的概念。

  • 特权架构(Privileged Architecture)指的是计算机体系结构中用于实现特权级操作的硬件和软件机制。特权架构定义了处理器如何管理特权级别(如操作系统)和用户级别(如应用程序)之间的权限和访问控制。在特权架构中,特权指令集是一部分,用于执行特权级别的操作。

  • 特权指令集(Privileged Instruction Set)是处理器指令集架构中的一部分,用于执行特权级别的操作,例如访问受保护的资源、更改系统状态等。这些指令通常只能由特权级别的程序(如操作系统内核)来执行,用户级别的程序无法直接执行这些指令。

正交分割(Orthogonal Separation)是一种设计原则,旨在将不同功能或权限的部分分开,使它们彼此独立、互不干扰。在计算机系统中,正交分割通常指将用户级指令和特权级指令分开,以提高系统的安全性和稳定性。通过正交分割,用户程序无法直接执行特权指令,从而减少系统受到恶意攻击的风险。

应用二进制接口(Application Binary Interface,ABI)是一种定义了应用程序与操作系统或硬件之间接口规范的标准。ABI规定了二进制程序如何与操作系统进行交互,包括函数调用约定、寄存器使用、数据对齐、异常处理等方面的规范。

在计算机体系结构中,应用二进制接口扮演着至关重要的角色:

  1. 界定应用程序与操作系统的交互方式:ABI规定了二进制程序如何与操作系统进行通信和协作,确保应用程序能够正确地在特定的操作系统环境中运行。
  2. 促进不同编程语言和编译器之间的互操作性:通过遵循ABI标准,不同编程语言和编译器生成的二进制代码可以在相同的操作系统上运行,实现互操作性。
  3. 提高软件的可移植性:遵循ABI标准的软件可以在不同的计算机体系结构或操作系统上运行,降低了软件移植的难度。
  4. 简化软件开发和维护:开发人员可以依赖ABI规范来编写代码,而不必过多关注底层的硬件或操作系统细节,从而简化了软件开发和维护过程。

总之,应用二进制接口在计算机体系结构中扮演着桥梁的角色,连接了应用程序和操作系统之间的交互,促进了软件的可移植性、互操作性和开发效率。

 

将用户指令集和特权架构做正交分割可以使不同特权架构的处理器在应用二进制接口(ABI)层面做到代码相互兼容的原因如下:

  1. 统一接口规范:通过将用户指令集和特权架构分开设计,可以确保应用程序与操作系统之间的接口规范是统一的,不受特权架构的影响。这样,无论不同特权架构的处理器内部如何实现,只要它们遵循相同的ABI规范,就可以保证应用程序在各种处理器上都能正确运行。

  2. 屏蔽底层细节:正交分割将用户指令和特权指令分开,使得应用程序无需直接访问特权级别的操作,从而屏蔽了底层特权架构的差异。应用程序只需调用操作系统提供的标准接口,而不必关心不同特权架构处理器的具体实现细节。

  3. 提高可移植性:由于ABI定义了应用程序与操作系统之间的标准接口规范,因此遵循ABI规范的应用程序可以在不同特权架构的处理器上运行,实现了代码的可移植性。即使处理器的特权架构不同,只要它们支持相同的ABI,就可以保证应用程序的兼容性。

综上所述,通过正交分割将用户指令集和特权架构分开设计,可以使得不同特权架构的处理器在应用二进制接口层面做到代码相互兼容,从而提高了软件的可移植性和互操作性。

 78.指令延迟槽的作用

79.开场白,收场白代码

79.毫码程序

83.编译器对高级语言函数调用约定产生的影响

85.RV对条件编码的舍弃

85.立即数符号位扩展

--------------------

中间都是指令讲解,我看过《架构设计之道》,所以有所了解,就暂且不看了

---------------------

114.关于开场白与收场白的处理

读到3.6特权架构暂且结束

本次进度达到1/3,时间:14:30 - 17:20  2h + 50min

                                         20:00 - 22:30  2h + 30min

                                         22:40 - 24:30  1h + 50min

        统共: 约7个小时阅读,读到了117页,速度不太快。

                        因为有些章节是之前了解过的,重新看一遍,大概是自己读着读着又神游物外了

                        大概21:00之后出问题比较大,也就是占7小时的3.5净小时,一半的低效时间

                        原因分析:晚上约人出去谈事情,校园跑完了还记录失败,分神有点厉害

--------------------------------------------------------------------------------------------------------

明天课少,争取把书本看完,然后开始看代码相关的操作事宜

相关文章:

读书·基于RISC-V和FPGA的嵌入式系统设计·第3章

72.8051单片机的弊端和指令集架构CISC的缺点 76.RV指令集的特征(⭐) 特权架构和特权指令集是相关但不完全相同的概念。 特权架构(Privileged Architecture)指的是计算机体系结构中用于实现特权级操作的硬件和软件机制。特权架构定…...

本地项目推送到腾讯云轻量应用服务器教程(并实现本地推送远程自动更新)

将本地项目上传到腾讯云轻量应用服务器并实现后续的推送更新,具体步骤如下: 在本地项目目录下初始化 Git 仓库: cd 项目目录 git init将项目文件添加到 Git 仓库并提交: git add . git commit -m "Initial commit"在…...

MacOS安装反编译工具JD-GUI 版本需要1.8+

Java Decompiler http://java-decompiler.github.io/ 将下载下来的 jd-gui-osx-1.6.6.tar 解压,然后将 JD-GUI.app 文件拷贝到 Applications 应用程序目录里面 1.显示包内容 2.找到Contents/MacOS/universalJavaApplicationStub.sh 3.修改sh文件 内容修改为下面…...

计算机大数据毕业设计-基于Flask的旅游推荐可视化系统的设计与实现

基于Flask的旅游推荐可视化系统的设计与实现 编程语言:Python3.10 涉及技术:FlaskMySQL8.0Echarts 开发工具:PyCharm 摘要:以Pycharm为旅游推荐系统开发工具,采用B/S结构,使用Python语言开发旅游景点推…...

java实现pdf转word

java实现pdf转word 前言pom文件启动入口过滤器对象ConvertPdfToWordWithFlowableStructure转换实现类 前言 1.java实现pdf转word。 2.纯免费开源。 3.pdf解析完会生成word文件和图片文件夹。 4.无页码限制,文本类型生成到word中,图片生成到图片文件夹中…...

【操作系统概念】 第4章:线程

文章目录 0.前言4.1 概述4.1.1 多线程编程的优点 4.2 多线程模型4.2.1 多对一模型4.2.2 一对一模型4.2.3 多对多模型 4.3 线程库4.4 多线程问题4.4.1 系统调用fork()和exec()4.4.2 取消4.4.3 信号处理4.4.4 线程池4.4.5 线程特定数据 0.前言 第3章讨论的进程模型假设每个进程是…...

STM32/GD32——I2C通信协议

芯片选型 Ciga Device — GD32F470系列 通讯规则 I2C协议(或称IIC)是由飞利浦(现在的恩智浦半导体)公司开发的一种通用的总线协议。它使用两根线(时钟线和数据线)来传输数据,支持多个设备共享…...

Apache Paimon 使用之Creating Catalogs

Paimon Catalog 目前支持两种类型的metastores: filesystem metastore (default),在文件系统中存储元数据和表文件。 hive metastore,将metadata存储在Hive metastore中。用户可以直接从Hive访问表。 1.使用 Filesystem Metastore 创建 Cat…...

IntelliJ IDEA分支svn

IntelliJ IDEA分支svn 【为何使用分支】 项目开发中经常会遇到这种情况,项目中功能开发完上线后,新的需求又来了,风风火火的在项目里开发, 突然有一天测试说有个很致命的bug需要紧急修改上线,完蛋了,原来…...

.NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例

在本文中,我们将详细介绍.NET Core日志内容,包括不同日志级别的区别,以及一些常用的日志记录实用工具和第三方库。同时,我们还将通过示例来展示如何使用这些工具和库。 一、.NET Core日志级别 .NET Core日志系统提供了五种日志级…...

Vue开发实例(七)Axios的安装与使用

说明: 如果只是在前端,axios常常需要结合mockjs使用,如果是前后端分离,就需要调用对应的接口,获取参数,传递参数;由于此文章只涉及前端,所以我们需要结合mockjs使用;由于…...

2024.3.6

作业1&#xff1a;使用C语言完成数据库的增删改 #include <myhead.h>//定义添加员工信息函数 int Add_worker(sqlite3 *ppDb) {//准备sql语句printf("请输入要添加的员工信息:\n");//从终端获取员工信息char rbuf[128]"";fgets(rbuf,sizeof(rbuf),s…...

抖音视频批量采集软件|视频评论下载工具

在日常工作中&#xff0c;需要频繁下载抖音视频&#xff0c;但逐个复制分享链接下载效率太低&#xff1f;别担心&#xff01;我们推出了一款专业的抖音视频批量采集软件&#xff0c;基于C#开发&#xff0c;满足您的需求&#xff0c;让您通过关键词搜索视频并自动批量抓取&#…...

苹果 Vision Pro零售部件成本价格分析

苹果公司发布的全新头戴式显示器 Apple Vision Pro 虽然售价高达3499美元&#xff0c;但其制造成本同样不菲&#xff0c;根据研究机构 Omdia 的估计&#xff0c;该头显仅零部件成本就超过了1500美元。这款头显的总零部件成本估计为1542美元&#xff0c;这还并不包括研发、包装、…...

Seurat 中的数据可视化方法

本文[1]将使用从 2,700 PBMC 教程计算的 Seurat 对象来演示 Seurat 中的可视化技术。您可以从 SeuratData[2] 下载此数据集。 SeuratData::InstallData("pbmc3k")library(Seurat)library(SeuratData)library(ggplot2)library(patchwork)pbmc3k.final <- LoadData(…...

ImportError: cannot import name ‘InterpolationMode‘

InterpolationMode 在图像处理库中通常用于指定图像缩放时的插值方法。插值是一种数学方法&#xff0c;在图像大小变化时用于估算新像素位置的像素值。不同的插值方法会影响缩放后图像的质量和外观。 在你提供的 image_transform 函数中&#xff0c;InterpolationMode.BICUBIC…...

HSRP和VRRP

VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由器冗余协议&#xff09; 是一种网络层的容错协议&#xff0c;主要用于在多台路由器之间提供默认网关冗余。在IP网络中&#xff0c;当一个子网有多个路由器时&#xff0c;VRRP可以确保在主用路由器失效…...

C及C++每日练习(1)

一.选择&#xff1a; 1.以下for循环的执行次数是&#xff08;&#xff09; for(int x 0, y 0; (y 123) && (x < 4); x); A.是无限循环 B.循环次数不定 C.4次 D.3次 对于循环&#xff0c;其组成部分可以四个部分&#xff1a; for(初始化;循环进行条件;调整) …...

Oracle 12c dataguard查看主备库同步情况的新变化

导读 本文介绍Oracle 12c dataguard在维护方面的新变化 前提&#xff1a;主库备库的同步是正常的。 1、主库上查看archive Log list SYScdb1> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination…...

时间序列-AR MA ARIMA

一、AR模型(自回归) AR探索趋势和周期性 预测依赖于过去的观测值和模型中的参数。模型的阶数 p pp 决定了需要考虑多少个过去时间点的观测值。 求AR模型的阶数 p和参数 ϕ i \phi_i ϕi​ &#xff0c;常常会使用统计方法如最小二乘法、信息准则&#xff08;如AIC、BIC&#xf…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...