计算机体系结构和指令系统

1.计算机体系结构 - 五大部件

 - 冯 诺依曼 计算机的特点

1.计算机有五大部件组成

2.指令和数据以同等地位存储于存储器,可按照地址访问

3.指令和数据用二进制表示

4.指令由操作码和地址码组成

5。存储程序

6.以计算器为中心(输入、输出设备与存储器之前的数据传送通过计算器完成)

计算机体系结构 - 主存储器

1.存储单元:每个存储单元存放一串二进制代码

2.存储字(word):存储单元中二进制代码的组合

3.存储字长:存储单元中二进制代码的位数(拓展:指令字长:计算机接收指令的二进制长度,机器字长:计算机在一次整数运算中能处理的最大二进制位数)

4.存储元:即存储二进制的电子元件,每个存储元可存储 1 bit

5.MAR:地址寄存器(可以用地址寄存器的长度来计算出存储单元的个数,例如:当MAR为 4 位时,那么存储单元的个数就有 2*2*2*2 (也就是2的4次方)个存储单元,)

6.MDR:数据寄存器(指的是每个存储单元能存放的最大二进制位数,例如:MDR = 16 那么一个存储单元最大就能存放 16 位二进制数)

易混淆:1个字节 = 1个Byte = 1B = 8bit = 8b

计算机体系结构 - CPU

1.运算器:用于实现算数运算(如:加减乘除)、逻辑运算(如与或非)

2.ACC:累加器,用于存放操作数,或运算结果

3.MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果

4.X:通用的操作数寄存器,用于存放操作数

5.ALU(很重要):算数逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算

6.DR:数据缓存寄存器

7.PSW:状态条件寄存器,用来保存指令运行标志(例如有些游戏打到一半关机了,下次打开的时候依旧可以接着上次的进度)

计算机体系结构 - CPU

1.CU:控制单元,分析指令,给出控制信号

2.IR:指令寄存器,存放当前执行的指令

3.PC:程序计数器,存放下一条指令地址,有自动加 1 的功能

4.AR:地址寄存器,保存当前CPU所访问的内存单元地址

5.ID:指令译码器,对操作码进行分析

6.完成一条指令的过程:取指令 -> 分析指令 -> 执行指令(之前说过:指令和数据以同等地位存储在存储器中,所以我们该如何区分此次取出来的指令还是数据呢?通过阶段来区分,例如:在取指令阶段那么从存储器中取出来的二进制数就一定表示指令)

计算机体系结构 - Flynn分类

体系结构类型结构        关键特性代表
单指令流单数据流SISD

控制部分:一个

处理器:一个

主存模块:一个

        单处理器系统
单指令流多数据流SIMD

控制部分:一个

处理器:多个

主存模块:多个

各处理器以异步的形式执行同一条指令

1.并行处理机

2.陈列处理机

3.超级向量处理机

多指令流单数据流MISD

控制部分:多个

处理器:一个

主存模块:多个

被证明不可能,至少以目前的技术无法实现,只是理论上存在目前没有,有文献称流水线计算机为此类
多指令流多数据流MIMD

控制部分:多个

处理器:多个

主存模块:多个

能够实现作业、任务、指令等各级全面并行

多处理机系统

多计算机

Single:单一的

Multiple:倍数、多种多样的

指令系统 - 指令

1.指令(又称为机器指令):是指令计算机执行某种操作的命令,是计算机运行的最小功能单位;

2.一台计算机的所有指令的集合构成该 计算机的指令系统,也称为指令集;

指令系统 - 指令格式

1.一条指令就是机器语言的一个语句,他是一组有意义的二进制代码;

2.一条指令通常要包括 操作码字段地址码字段 两部分;

重要考点:指令系统 - 寻址方式

指令系统 - 寻址方式(数据寻址)以下寻址方式从上至下 寻址效率依次降低 ->

1..立即寻址:此操作数作为指令的一部分直接写在指令中,这中操作数成为立即数

2寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器

3.直接寻址:指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址

4.寄存器间接寻址:操作数在存储器中,操作数的有效地址用 SI 、DI、Bx 、BP 四个寄存器之一来指定

5.基址加变址寻址方式:操作数在寄存器中,其有效地址是一个基址寄存器( BX  、 BP )和一个变址寄存器 ( SI 、DI ) 的内容之和

6.相对基址加变址寻址:操作数在寄存器中,其有效地址是一个基址寄存器(BX 、 BP)的值,一个变址寄存器 (SI 、 DI)的值和指令中的 8位/16位偏移量之和 

指令系统 - CISC 和 RISC

CISC(Complex)RISC(Reduced)
指令系统复杂,庞大简单,精简
指令数目一般大于 200 条一般小于 100 条
指令字长不固定定长
可访存指令不加限制只有Load/Store指令
各种指令执行时间相差较大        绝大多数一个周期内完成
各种指令使用频度相差较大都比较常用
通用寄存器数量较少
控制方式绝大多数为微程序控制绝大多数为组合逻辑控制
指令流水线可以通过一定方式实现必须实现

指令系统 - 指令的流水处理

1.指令控制方式有 顺序方式、重叠方式 和 流水方式三种

2.流水方式:是指 并行性或并发性 嵌入计算机系统里的一种形式,他把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效的并发工作

3.在概念上," 流水 "可以看成是 "重叠" 的延伸;差别仅在于 " 一次重叠 " 只是把一条指令解释分解为两个子过程,而 " 流水 " 则是分解为更多的子过程。

指令系统 - 流水线的计算

例题:若指令流水线把一条指令分为 :取指令、分析指令、执行指令三部分,且三部分的时间分别是 -> 取指令:2ns   分析指令:2ns   执行指令:1ns ,那么流水线周期是多少?100条指令全部执行完毕需要的时间是多少?

1.流水线周期为执行时间最长的一段:上述中 取指令:2ns   分析指令:2ns   执行指令:1ns 三个发过程中执行时间最长的显然是 2ns,所以流水线周期为 2ns

2.流水线计算公式为: 1条指令执行时间 +(指令条数 - 1)* 流水线周期 ;所以计算结果如下所示 -> 

100条指令执行完的时间为:2 + 2 + 1 +(100 -1)* 2 =  203

那么如果不使用流水线处理的话100条指令执行完的时间就是:( 2 + 2 + 1 )*100 = 500

3.拓展:流水线的吞吐率(Though Put rate ,TP):是指在单位时间内流水线所完成的任务数量或输出的结果数量;

4.计算流水线吞吐率的最基本的公式如下:TP = 指令条数 / 流水线执行时间

5.依照上面例题计算流水线吞吐率的话就是:100 / 203 ≈ 0.5

6.流水线开始工作后,需经过一定时间才能达到最大吞吐率,这就是 建立时间;若 m 个子过程所用时间一样,均为 t ,则建立时间 T = m * t

7.完成同一批任务,不使用流水线所用的时间与使用流水线所用的时间之比成为 流水线的加速比 ,计算流水线加速比的基本公式如下:S = 不使用流水线执行时间 / 使用流水线执行时间

还是用上面例题的来计算 -> S = 500 / 203 ≈ 2.46

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

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

相关文章

2024年【湖北省安全员-C证】新版试题及湖北省安全员-C证试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 湖北省安全员-C证新版试题参考答案及湖北省安全员-C证考试试题解析是安全生产模拟考试一点通题库老师及湖北省安全员-C证操作证已考过的学员汇总,相对有效帮助湖北省安全员-C证试题及解析学员顺利通过考试…

WIN10系统自带录屏软件怎么用?

WIN10系统自带录屏软件怎么用? WIN10系统录屏软件怎么用? 第一步:WING 快捷打开系统自带录屏软件,如下: 第二步:点击录屏软件区域“开始录制”按钮进入屏幕录制状态,如下: 第三步…

基于SpringBoot的财务管理系统

根据您提供的论文内容和模板要求,以下是定制化的文章输出: 你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言: Java 数据库: MySQL 技术: SpringBoot…

某度,网盘免费加速,复活!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 有小伙伴反馈之前如下夸克网盘脚本的加速方法失效,小武今天测试,依旧正常使用! 百度/迅雷/夸克,网盘免费加速,已破&#xf…

pytest测试框架pytest-cov插件生成代码覆盖率

Pytest提供了丰富的插件来扩展其功能,本章介绍下pytest-cov插件,用于生成测试覆盖率报告,帮助开发者了解哪些部分的代码被测试覆盖,哪些部分还需要进一步的测试。 pytest-cov 支持多种报告格式,包括纯文本、HTML、XML …

vue3+ts+vite项目中使用spreadjs,通过script标签引入spreadjs可以提高打包速度

https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/quickstart/quickstart-js 右键另存这个官方的示例页面可以下载全部js文件 https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html spread.html: <!DOCTYPE html> <html lang"zh">…

数据产品经理知识库构建

概述 数据产品经理是企业中负责管理和推动数据产品的专业人员。他们利用数据来辅助决策&#xff0c;优化产品&#xff0c;提升用户体验。用STAR法则&#xff08;Situation, Task, Action, Result&#xff09;来介绍数据产品经理的角色&#xff0c;应该学习的数据产品&#…

Labview_网络流

网络流的介绍 网络流是一种易于配置、紧密集成的动态通信方法&#xff0c;用于将数据从一个应用程序传输到另一个应用程序&#xff0c;其吞吐量和延迟特性可与 TCP 相媲美。但是&#xff0c;与 TCP 不同的是&#xff0c;网络流直接支持任意数据类型的传输&#xff0c;而无需先…

忙忙碌碌的混沌之中差点扑了个空而错过年中这条线

文章目录 前言初见端倪混沌初始力不从心心力交瘁拾遗补缺总结 前言 突然意识到过完这个周末已经7月份了&#xff0c;他预示着我的2024年已经过半了&#xff0c;过年回家仿佛还是昨天的事情&#xff0c;怎么转眼间已经到了年中了。心里还是不愿承认这件事&#xff0c;翻开自己2…

cpu,缓存,辅存,主存之间的关系及特点

关系图 示意图&#xff1a; ------------------- | CPU | | ------------- | | | 寄存器 | | | ------------- | | | L1缓存 | | | ------------- | | | L2缓存 | | | ------------- | | | L3缓存 | | | ------------- | ----…

每日一题——Python实现PAT乙级1073 多选题常见计分法(举一反三+思想解读+逐步优化)9千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试 再次尝试 有何不同 版本一&#xff08;原始版本&#xff09;&#xff1a;…

修复vcruntime140.dll方法分享

修复vcruntime140.dll方法分享 最近在破解typora的时候出现了缺失vcruntime140.dll文件的报错导致软件启动失败。所以找了一番资料发现都不是很方便的处理&#xff0c;甚至有的dll处理工具还需要花钱&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff0c;我本来就是为…

python实现网页自动化(自动登录需要验证的网页)

引言: python作为实现网页自动化的一个重要工具,其强大的各种封装的库使得程序运行更加简洁,只需要下载相应的库,然后调用库中的函数就可以简便的实现我们想要的网页相关操作。 正文: 我的前几篇文章写了关于初学爬虫中比较容易上手的功能,例如爬取静态网页的数据、动…

ThreadPoolExecutor 工作线程Worker自身锁设计

个人博客 ThreadPoolExecutor 工作线程Worker自身锁设计 | iwts’s blog 总集 想要完整了解下ThreadPoolExecutor&#xff1f;可以参考&#xff1a; 基于源码详解ThreadPoolExecutor实现原理 | iwts’s blog Worker-工作线程管理 线程池设计了内部类Worker&#xff0c;主…

【python】python知名品牌调查问卷数据分析可视化(源码+调查数据表)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

CleanShot X - 超好用苹果电脑截图录屏工具

Mac 自带的截图工具十分鸡肋&#xff0c;不仅功能少&#xff0c;无法长截图外&#xff0c;也不支持 GIF 制作&#xff0c;很难满足日常做图需求。 CleanShot X 是一款 Mac 平台近乎无可挑剔的专业截图录屏工具 &#xff0c;能完美代替 Mac 自带截图。它提供超过 50 项功能&…

嵌入式学习——硬件(s3c2440外部中断、定时器中断)——day54

1. start.s preserve8area reset, code, readonlycode32entryldr pc, startnopnopnopnopnop ldr pc, interrupt_handlernopstartldr sp, 0x40001000mrs r0, cpsrbic r0, r0, #0x1Forr r0, r0, #0x12;IRQbic r0, r0, #(1 << 7);打开IRQ中断允许msr cpsr_c, r0ldr …

Nacos配置中心客户端源码分析(一): 客户端如何初始化配置

本文收录于专栏 Nacos 推荐阅读&#xff1a;Nacos 架构 & 原理 文章目录 前言一、NacosConfigBeanDefinitionRegistrar二、NacosPropertySourcePostProcessor三、AbstractNacosPropertySourceBuilder总结「AI生成」 前言 专栏前几篇文章主要讲了Nacos作为服务注册中心相关…

zabbix server client 安装配置

Zabbix Server 采用源码包部署&#xff0c;数据库采用 MySQL8.0 版本&#xff0c;zabbix-web 使用 nginxphp 来实现。具体信息如下&#xff1a; 软件名 版本 安装方式 Zabbix Server 6.0.3 源码安装 Zabbix Agent 6.0.3 源码安装 MySQL 8.0.28 yum安装 Nginx 1.20…

Ubuntu20.04安装vimplus插件

参考文章&#xff1a; Ubuntu Linux下vimplus的安装及使用安装vimplus之后乱码问题解决 1、安装步骤&#xff1a; $ git clone https://github.com/chxuan/vimplus.git ~/.vimplus$ cd ~/.vimplus$ ./install.sh2、./install.sh 过程 出现选择是否备份 /home/yin-roc/.vim…