《计算机体系结构量化研究方法第六版》1.3 计算机体系结构的定义

news2025/7/26 7:21:30

1.3.1 指令集体系结构:计算机体系结构的近距离审视

1、这里通过指令集体系结构 ISA来指代程序员可以看到的实际指令集。ISA相当于软件和硬件之间的界限。

(1)ISA分类

几乎所有的ISA都被划分到了通用寄存器体系结构中,在这种体系结构中,操作数要么是寄存器要么是存储地址。80x86有16个通用寄存器和16个浮点寄存器,而RISC-V有32个通用寄存器和32个浮点寄存器。
【知识补充】寄存器:寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
这一类别有两个主流版本,一种是寄存器-存储器ISA,比如80x86,可以在许多指令中访问存储器,另一种是载入-存储ISA,比如ARMv8和RISC-V,他们只能用载入指令或存储指令来访问存储器。
在这里插入图片描述
在这里插入图片描述

(2)存储器寻址

几乎所有的桌面计算机和服务器计算机都是用字节寻址来访问存储器操作数。

(3)寻址模式

寻址模式不但指定寄存器和常量操作数,还指定了一个存储器对象的地址。RISC-V的寻址模式为:寄存器寻址、立即数寻址、位移量寻址。80x86支持上述三种模式,在加上位移量寻址的三种变化模式,即无寄存器(绝对数)、两个寄存器(用位移量进行基址寻址),以及两个寄存器(其中一个寄存器乘以操作数的字节大小)。ARMv8拥有3种RISC-V寻址模式,再加上相对PC(程序计数器)的寻址方式、两个寄存器之和,以及另一种方式——也是两个寄存器之和,但其中一个寄存器的内容要乘以操作数的字节大小。它还有自动递增寻址和自动递减寻址,计算得到的地址会被放在用于构造该地址的一个寄存器中,并替代其中的旧地址。

(4)操作数的类型和大小。

和大多数1SA类似,80x86、ARMv8和RISC-V支小为8位(ASCIⅡ字符)、16位(Unicode字符或半个字)、32位(整数或字、64位(双字或长整型),以及IEEE754浮点数[包括32位(单精度)和64位(双精度)]。80x86还支持80位浮点数(扩展双精度)。

(5)操作指令

常见的操作类别为数据传输指令、算术逻辑指令、控制指令(下面进行讨论)和浮点指令。RSC-V是一种简单的、易于实现流水化的指令集体系结构,它是2017年采用的RISC体系结构的代表。表1-4总结了整数RISC-VISA。表1-5列出了浮点ISA。80x86的操作指令集要丰富得多,也大得多(参见附录K)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(6)控制流指令

包括上述3种在内的几乎所有ISA都支持条件分支、无条件跳转、过程调用和返回。这3种ISA都使用PC相对寻址方式,其中的分支地址由一个地址字段指定,该地址将被加到PC中。这3种ISA之间有一些微小的区别。RISC-V条件分支(BE、BNE等)检验寄存器中的内容,而80x86和ARMv8分支检测条件码位,这些位是在执行算术/逻辑运算时顺带置位的。ARMv8和RISC-V过程调用将返回地址放在一个寄存器中,而80x86调用(CALLF)将返回地址放在存储器中的一个栈内。

(7)ISA的编码

有两种基本的编码选择:固定长度和可变长度。所有ARMv8和RISC-V指令的长度都是32位,从而简化了指令译码。图1-2给出了RISC-V指令格式。80x86编码为可变长度,变化范围为1~18字节。与固定长度的指令相比,可变长度的指令占用的空间更少,所以为80x86编译的程序通常小于为RISC-V编译的相同程序。注意,上面提到的编码选择会影响将指令转换为二进制编码的方式。例如,由于寄存器字段和寻址模式字段可以在一条指令中出现多次,所以寄存器的数目和寻址模式的数目都对指令的大小有很大影响。(注意,ARMv8和RISC-V后来都进行了扩展,支持长16位和长32位的指令,以便缩小程序规模。这两种扩展分别叫作Thumb-2和RV64IC。这些紧凑版RISC体系结构的代码规模小于80x86。参见附录K。)
在这里插入图片描述

1.3.2 真正的计算机体系结构:设计满足目标和功能需求的组成和硬件

真正的计算机体系结构:设计满足目标和功能需求的组成和硬件计算机的实现包括两个方面:组成和硬件。组成organization一词包含了计算机设计高阶内容,比如存储器系统、存储器互连、内部处理器或CPU(中央处理器——算术、逻辑分支和数据输送功能都在这里实现)的设计。有时也使用微体系结构(microarchitecture)来代替“组成”。例如,AMD Opteron和Intel Core i7是两个指令集体系结构相同但组成不同处理器。这两种处理器都实现80x86指令集,但它们的流水线和缓存组成有很大不同由于单个微处理器上开始采用多个处理器,所以人们开始使用核(core)一词来称呼处理器。人们一般不说“多处理器微处理器”,而是使用多核(multicore)处理器。由于现今几乎有芯片都有多个处理器,所以人们不怎么使用“中央处理器”(或CPU)一词了。
  硬件是指计算机的具体实现,包括计算机的详尽逻辑设计和封装技术。同一系列的计算机通常具有相同的指令集体系结构和非常相似的组成,但在具体硬件实现方面有所不同。例如,Intel Core i7(见第3章)和Intel Xeon E7(见第5章)基本相同,但提供了不同的时钟频率和不同的存储器系统,其中Xeon E7更适用于服务器计算机。
  下面是架构师面对的一些重要的功能需求(拍得比较快,应该可以看清楚)
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

能源消耗监测管理系统:实现企业用能定额、降低成本节能管理

现如今,很多企业还停留在安装各种节能产品或者是传统节能技术来达到节能目的,但是这些方法不能从根本上实现节能目标,从而导致企业效益。 在国家推动下,能源管理系统加入了互联网的技术以及数字化技术来协同管理,软硬…

二叉树链式结构的实现及简单操作(画图超详细解释)

二叉树链式结构的实现及简单操作前置说明前序遍历中序遍历后序遍历层序遍历如何判断一颗二叉树是完全二叉树通过前序遍历的数组构建二叉树销毁二叉树总结前置说明 由于我们要对二叉树进行操作,我们就得现有一个二叉树,而二叉树的构建又比较复杂&#xf…

李宏毅机器学习作业10——Adversarial Attack

目录 目标和方法 评价方法 导包 Global Settings Data transform Dataset 代理网络 评估模型在非攻击性图像上的表现 Attack Algorithm FGSM I-FGSM MI-FGSM Diverse Input (DIM) 攻击函数 Attack Ensemble Attack 集成模型函数 构建集成模型 进行攻击 FG…

【Node.js】第八章 express编写接口

目录 1. 编写接口 1.1 编写GET接口 2.2 编写POST接口 2. 接口跨域问题 2.1 跨域问题 2.2 使用cors中间件解决跨域问题 2.3 CORS ​2.4 JSONP接口 1. 编写接口 1.1 编写GET接口 2.2 编写POST接口 2. 接口跨域问题 2.1 跨域问题 2.2 使用cors中间件解决跨域问题 cor…

家里Win7电脑如何连接公司Win10电脑?快解析+远程桌面

什么是远程桌面?通俗地讲,就是可以在任何地点登陆位于其他地点的电脑,可以看到远程登陆电脑的一切东西,可以进行添加、改变、删除文件等任何操作,就像自己在那台电脑前操作一样。远程桌面有丰富的应用场景,…

如何在TIA博途中在线更新PLC的CPU固件版本?

如何在TIA博途中在线更新PLC的CPU固件版本? S7-1200PLC最新的V4.6.0版本的固件出来了,本次就以V4.6版本的固件为例,演示如何在博途中对PLC的固件版本进行更新。 (为防止更新过程中出现意外,强烈建议对PLC的程序进行备份!备份!备份!) 如下图所示,打开某个项目,选中PL…

nm命令使用详解,让你加快学习速度

nm 命令详解 符号是每个ELF文件的一个重要部分,因为它保存了程序实现或使用的所有(全局)变量和函数。符号表中保存了查找程序符号、为符号赋值、重定位符号所需要的全部信息。Linux中 nm用来列出目标文件的符号表;如果nm指令没有指出目标文件,则nm假定目…

模拟电路设计(34)---脉宽调制型开关电路

在开关稳压电源中,直流变换器中的功率晶体管工作在开关状态。目前开关电源的工作频率在几百kHz,有些甚至已经到了MHz量级。如下图所示是DC-DC开关变换器的原理框图: ​DC-DC开关变换器的原理框图 开关电源的实现方式有很多种,如最…

[附源码]Python计算机毕业设计二手图书回收销售网站

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Spring:AOP事务管理(14)

Sprin事务Spring事务简介相关概念介绍转账案例-需求分析转账案例-环境搭建事务管理Spring事务角色Spring事务属性事务配置转账业务追加日志案例事务传播行为Spring事务简介 相关概念介绍 事务作用:在数据层保障一系列的数据库操作同成功同失败。Spring事务作用&am…

电子作业票系统:消除安全管理漏洞,科技赋能企业业务洞察

电子作业票系统采用定位、物联网、人脸识别、大数据技术对现场作业进行严格管控;通过风险大数据风险辨识模型,实现作业风险辨识,对动火、高处、受限空间、临时用电、吊装、断路、管线打开、挖掘作业等特殊作业票证智能化管理。 在危化企业实际…

Excel VS BI,谁才是真正的大数据分析工具?

有人说,Excel能聚合运算,能分析,能做数据分析报表。而BI数据分析工具,看上去也就是做出来的报表更好看一些。事实真的是这样吗?当然不是。外行人看热闹,内行人看门道,BI数据分析工具比起Excel更…

访问权限控制

访问控制目的 在实际的组织中,为了完成组织的业务工作,需要在组织内部设置不同的职位,职位既表示一种业务分工,又表示一种责任与权利。根据业务分工的需要,职位被划分给不同群体,各个群体的人根据其工作任…

零代码极限封装的【接口自动化测试框架】震碎你的三观

随着互联网寒冬的到来,测试行业裁员的裁员,找工作的找工作,内卷越来越加剧,那么选择一个学习提升的平台尤为重要,接下来我要说的事情将震碎你的三观,震掉你的眼球,和每个测试人息息相关&#xf…

图像处理 QImage

在Qt中有四种处理图像的方法: QImage :使用I/O ,可以对像素进行处理QPixmap:主要用在屏幕的显示QBitmap: QPixmap的子类,处理颜色深度,只能显示黑白两种颜色,用于遮罩QPicture&…

Qt通过Doc模式读取XML并设计一个增删改查方便的一个操作类

前言 如果对开源库TinyXml有兴趣的可以去看看这篇文章。 C使用TinyXml(开源库)读取*.XMl文件 目录前言DOC 文档对象模型QtXML基本结构操作XML部署环境添加信息头读取XML文件添加根节点添加一个没有属性的节点添加一个有属性的节点添加一个元素节点给节点单独设置属性删除所有同…

开源软件安全与应对策略探讨 - Java 机密计算技术应用实践

据统计,90% 以上的应用都在使用第三方软件库,这些软件大部分都是开源的。与此同时,有超过一半的全球 500 强公司都在使用存在漏洞的开源软件。这幅漫画生动的描述了一个大型应用软件的组件架构,它可能建立在一个极其脆弱的开源组件…

SpringBoot整合Swagger2+Knife4j,注解使用

SpringBoot整合Swagger2Knife4j,注解使用 文章目录SpringBoot整合Swagger2Knife4j,注解使用前言一、swagger是什么?二、使用步骤1.引入库2.使用swagger的相关注解总结前言 swagger和postman都是后端编写的测试接口使用方式,由于实际开发的需求和使用习惯…

基于springboot的汽车租赁管理系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

pytorch实现mnist手写数字识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章地址: 365天深度学习训练营-第P1周:mnist手写数字识别🍖 作者:K同学啊一、 前期准备 1. 设置GPU import torch import torch.nn a…