408计算机组成原理

todo:有逻辑的分门别类的整理笔记,方便复习

理解不了就直接背下来,学越多就越能理解

计算机系统概述

简要目录

基本概念
字长
MAR
MDR
PC
IR
CU
ALU
通用寄存器、标志寄存器、标志控制器
ACC
地址译码器
通用寄存器
PU
C语言编译过程
数据通路带宽
数据通路宽度
字长、字数
主存

概念名词
吞吐量
响应时间
cpu时钟周期
主频
CPI
IPS
CPU执行时间

基本概念

主存储器和辅助存储器,也就是我们所说的主存和辅存。主存一般就是指内存,辅存指的就是磁盘


  • 存储单元(Storage Cell)则是由多个存储元组成的,通常可以存放一个字节(Byte,即8个二进制位)的信息。而存储元(Storage Element)是存储器中最小的存储单位,用于存放一个二进制位(bit),即0或1,一个存储单元就存放8个存储元,一个存储单元通常存放 1 个字节
  • 1 个字节包含 8 个二进制位(也称为存储元)。存储字长指的是计算机内存中每个存储单元可以容纳的二进制位数。多个存储单元组成存储字
  • 存储容量是计算机内存系统的总容量,通常以字节(byte)为单位来表示。
    例:一个存储单元包含8个存储单元,一个存储单元包含一个二进制位,8个二进制位组成一个字节,存储字长为8

硬盘驱动器是计算机中用于存储和读取数据的设备,它通常被简称为硬盘


字长:
通常所说的"某16位或32位机器”,其中的16、32指的是机器字长,简称字长。字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、ALU有关。因此,字长一般等于通用寄存器的位数或ALU的宽度,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节(8 位)的整数倍。

机器字长:指计算机能直接处理的二进制数据的位数。它反映了计算机的运算精度和数据处理能力。
指令字长:是指机器指令中二进制代码的位数。
存储字长:指一个存储单元中能存储的二进制数据的位数。
存储单元的字长:存放在一个存储单元中的二进制代码的位数


MAR(Memory Address Register)
介绍:即存储器地址寄存器。
作用:是存储存储器的地址,用于指明要访问的存储单元的位置。功能是1.提供地址:确定数据在存储器中的位置。2.访问存储器:帮助 CPU 找到所需的数据;地址寄存器
字长:


MDR(Memory Data Register)
介绍:存储器数据寄存器
作用:用于暂时存放从内存中读取或将数据写入内存的数据,当 CPU 需要从内存中读取数据时,它将地址发送给内存控制器,并将从内存中读取的数据暂时存放在 MDR 中。同样地,当 CPU 需要将数据写入内存时,它会将数据存放在 MDR 中,并发送给内存控制器进行写入操作。
-MDR 通常与另一个寄存器 MAR(Memory Address Register)配合使用。MAR 用于存储要访问的内存地址,而 MDR 用于存储与该地址相关联的数据。通过使用 MDR 和 MAR,CPU 能够与内存进行数据的读取和写入操作,实现了计算机中的数据传输功能。
例:cpu从内存读取数据的过程如下:PU 在内存中读取数据的过程通常是先通过 MAR 去寻找存储单元的位置,然后再使用 MDR 通过内存控制器读取内存中的数据。流程如下①CPU 发出读取数据的指令。②MAR 接收指令并确定要读取的数据在内存中的地址。③内存控制器根据 MAR 提供的地址找到对应的存储单元。④MDR 通过内存控制器从找到的存储单元中读取数据。⑤读取的数据被传输到 CPU 进行处理





在这里插入图片描述
程序计数器(PC):用于存储下一条指令的地址。它在程序执行过程中不断更新,指示CPU 下一步要执行的指令位置,追踪下一条要执行的指令的地址。 PC(Program Counter,程序计数器)

指令寄存器(IR):用于暂存当前正在执行的指令。它接收从存储器中读取的指令,并将其提供给控制单元进行处理。

控制单元(CU):具有以下功能:

  1. 指令译码:解释指令的含义,确定需要执行的操作。
  2. 控制信号生成:根据译码结果,生成各种控制信号,用于控制其他组件的操作。
  3. 时序控制:确保指令按照正确的顺序和时间执行。
  4. 异常处理:处理程序执行中的异常情况。
  5. 中断处理:管理中断请求,在适当的时候进行中断处理。

它们共同协作,实现指令的读取、解码和执行,确保计算机系统的正常运行。具体来说:
PC 帮助 CPU 按顺序获取指令。
IR 提供当前指令的信息。
CU 对指令进行处理,并控制其他组件的操作。


ALU(Arithmetic Logic Unit)
即算术逻辑单元,它是中央处理器(CPU)的一个重要组成部分。主要功能包括执行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非)。


**通用寄存器组(GPRs)**是一组可用于存储数据的寄存器

标志寄存器用于记录运算结果的一些状态信息

标志控制器负责对标志寄存器进行管理和控制


ACC 通常指“Accumulator”,即累加器。
累加器是运算器的一部分,主要用于暂时存储运算的中间结果或最终结果。


地址译码器
主要作用是将输入的地址信号转换为特定的输出信号,用于选中特定的存储单元或其他硬件资源。1.用于地址映射:将抽象的地址转换为具体的硬件位置。2.资源选择:确定要访问的特定存储单元或硬件设备。


通用寄存器
在计算机系统中具有多种重要作用,包括:
暂存数据:用于临时存储数据,以便进行快速的运算和处理。

支持多种操作:可用于算术、逻辑、转移等多种操作。

提供操作数:为指令执行提供操作数。

保存中间结果:方便后续操作使用。


PU(中央处理器)
通常包括以下几个主要部分:
运算器:执行算术和逻辑运算。
控制器:负责控制和协调计算机的操作。
寄存器组:用于临时存储数据和指令。


C语言编译的过程
在这里插入图片描述
程序员是是用高级编程语言编写的源程序,然后通过编译器变成汇编语言的形式就是汇编源程序,然后通过汇编程序转为机器语言指令就是目标程序,再经过链接程序合并各个模块的目标代码成为可执行程序

编译程序是先完整编译后运行的程序,如C、C++等;解释程序是逐句翻译且边翻译边执行的程序,如JavaScript、 Python 等。

解释程序,将源程序的的一条语句翻译成对应的机器目标代码,并立即执行,翻译一句执行-一句,并且不会生成目标代码文件


各个子系统通过数据总线连接形成的数据传送路径称为数据通路。

数据通路带宽
是指数据总线一次所能并行传送信息的位数,例:一个时间点上,数据总线能够同时传输的二进制位数。一个具有 32 位数据通路带宽的数据总线,能够在一次传输中同时传送 32 位的信息。32 位信息就是 32 位二进制数。

数据通路宽度
数据总线一次能并行传输的数据位数,它决定了数据传输的效率和速度。简单来说,数据通路宽度就像是高速公路的车道数量,车道越多,汽车通过的速度就越快,数据传输的速度也就越快。


主存用字数x字长(如512K*16位)来表示存储容量,
“字数”在这里指的是可以存储的地址数量。就好比有多少个“房间”可以用来存放信息,每个“房间”都对应着一个地址。512K 表示有 512 千个地址(即 512 个“房间”),每个地址可以存储 16 位二进制数。所以,总的存储容量就是这些“房间”能容纳的二进制数的总量啦

字长”指的是计算机一次处理数据的位数,它通常等于 CPU 中通用寄存器的位数。

字数*字长=存储容量
MAR的位数反映了存储单元的个数,MDR的位数反映了存储单位的字长,
在这里插入图片描述


主存储器,也称为主存或内存,其中包括
①随机存取存储器(RAM):能快速存取数据,包括动态 RAM(DRAM)和静态 RAM(SRAM);RAM 用于临时存储程序和数据,速度快但断电后数据丢失。
②只读存储器(ROM):存储固定的程序和数据,不可更改;ROM 常用于存储系统固件和基本的启动程序。
③缓存(Cache):位于 CPU 和主存之间,提高数据访问速度;缓存能减少 CPU 对主存的访问次数,提高系统性能。


吞吐量。指系统在单位时间内处理请求的数量。

响应时间。指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。

CPU时钟周期。一个时钟周期是指CPU时钟信号从一个状态(例如高电平)到下一个相同状态(例如高电平)的时间间隔。时钟周期的时间长度是主频的倒数。它是CPU工作的最小时间单位。

主频(CPU时钟频率):机器内部主时钟的频率,即时钟周期的倒数,主频越高,完成指令的一一个执行步骤所用的时间越短,执行指令的速度越快。主频最直观的理解就是每秒钟能够进行多少次时钟周期,通常以赫兹(Hz)为单位。例如,1 GHz(即10^9 Hz)表示CPU每秒钟有10亿个时钟周期。

CPU时钟周期=1/主频,主频通常以Hz (赫兹)为单位,10Hz 表示每秒10次。主频的倒数才是时钟周期,所以主频为 10Hz 时,时钟周期为 1/10 秒

CPI (Cycle Per Instruction),即执行一条指令所需的时钟周期数。

IPS (Instructions Per Second),即每秒执行多少条指令,IPS= 主频/平均CPI。

CPU执行时间。这是指一个程序或一条指令在CPU上执行所需要的总时间,通常以秒(s)、毫秒(ms)、微秒(µs)等为单位

不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时CPI是-一个平均值。


错题

在这里插入图片描述
mar有10位,就是第一位存储单元有两种可能性,第二位存储单元也有两种可能性,以此类推,就有2222222222=1024个存储单元,基于每个位置都有两种可能性(比如 0 或 1),然后通过连续相乘来计算总的可能性数量。若一个存储单元存放8个存储元,就一共有有10288的存储元

无论是存储元还是存储单元,它们都是以二进制的形式来存储和处理信息的。

1bit=1存储元=1/8字节=1/8存储单元
8 位(bit)等于 1 字节(byte)
储单元和存储元都只有两种可能性(0 或 1),即二进制, 8 个存储元组成一个存储单元

在计算机领域中,“k”是“kilobyte”的缩写,表示千字节。
1K 等于 1024 字节。

MAR(地址寄存器)和 PC(程序计数器)是计算机中的两个重要组件。MAR 用于存储要访问的存储单元地址,PC 则用于存储程序的当前执行指令的地址。MAR 的长度与 PC 的长度相等,意味着它们的位数相同,通常为16位或32位。

MAR(地址寄存器)和 PC(程序计数器)是计算机中的两个重要组件。MAR 用于存储要访问的存储单元地址,PC 则用于存储程序的当前执行指令的地址。MAR 的长度与 PC 的长度相等,意味着它们的位数相同,通常为16位或32位。


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
CPU(中央处理器)主要包括以下几个部分:
运算器:执行算术运算(如加、减、乘、除等)和逻辑运算(如与、或、非等),是进行数据处理的核心部件。
控制器:负责指挥、协调计算机各部件的工作,包括取指令、分析指令、执行指令等一系列操作的控制。
寄存器:如前面提到的通用寄存器等,用于暂存数据、地址等信息,提高 CPU 的运行效率。
缓存:如一级缓存(L1 Cache)、二级缓存(L2 Cache)等,用于存储经常使用的数据和指令,减少对内存的访问次数,加快数据读取速度。


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
字长指的是 CPU 一次能处理的二进制数据的位数
8 位计算机在进行数据处理时,每次能够同时处理由 8 个二进制位组成的数据
计算机系统以16位来表示代表,地址码长度为16位,地址空间确实主要与地址码的长度有关,而与计算机的字长没有直接的关联
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


例题

在这里插入图片描述
在这里插入图片描述
时钟周期数=指令条数执行一条指令所需的平均时钟周期数=一条指令在CPU上执行所需要的总时间每秒钟能够进行多少次时钟周期

如果 M2 的平均 CPI 是 M1 的 1.5 倍,而程序 P 中的指令条数不变。
那么程序 P 在 M2 上执行所需的总时钟周期数 = 指令条数×M2 的 CPI。
因为 M2 的 CPI 是 M1 的 1.5 倍,指令条数又相同,所以程序 P 在 M2 上的时钟周期数就是 M1 的 1.5 倍。


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FlinkCDC sink paimon 暂不支持exactly-once写入,而通过 幂等写

幂等写入: 一个幂等操作无论执行多少次都会返回同样的结果。例如,重复的向hashmap中插入同样的key-value对就是幂等操作,因为头一次插入操作之后所有的插入操作都不会改变这个hashmap,因为hashmap已经包含这个key-value对了。另一…

基于matlab的BP神经网络分类预测

1.神经网络结构 本文网络结构如图1所示: 图1 网络结构 图1给出的并不是单纯的bp神经网络结构这里设置了三个隐藏层,神经元个数分别为6,3,3,输入层12个特征输入,输出层输出4个类型结果。 2.代码 %% 清空环…

自动驾驶仿真Carla -ACC功能测试

我将详细说明如何使用Carla进行ACC(自适应巡航控制)测试,确保每个步骤贴合实际的Carla自动驾驶仿真标准,并提供相应的代码示例。 使用Carla进行ACC测试的步骤: 1. 环境设置和启动Carla 首先,确保你已经安装…

bug记录——C语言中运算符前假后面不执行

A&&B A为真&#xff0c;才会判断B&#xff0c; 所以如果B访问越界的情况下必有A为假&#xff0c;那么代码是正确的 像这里&#xff0c;当child 1 > n时&#xff0c;a[child 1]越界访问&#xff0c; 但由于&&前面判断了child 1 < n为假&#xff0c;所以…

element-ui里message抖动问题

由于element默认屏蔽滚动条&#xff0c;导致取消时弹message时 侧边滚动栏突然回来后引起抖动问题 是由于打开弹窗时出现遮罩层dialog对话框 时引起了元素内容超出自身尺寸 对应的overflow样式内容为hidden&#xff0c;且新建了一个class类内容为增加17 内右边距&#xff0c;当…

QML 实现上浮后消失的提示框

基本效果&#xff1a;上浮逐渐显示&#xff0c;短暂停留后上浮逐渐消失 为了能同时显示多个提示框&#xff0c;一是需要动态创建每个弹框 Item&#xff0c;二是弹出位置问题&#xff0c;如果是底部为基准位置就把已经弹出的往上移动。 效果展示&#xff1a; 主要实现代码&…

区块链中nonce是什么,什么作用

目录 区块链中nonce是什么,什么作用 区块链中nonce是什么,什么作用 Nonce在以太坊中是一个用于确保交易顺序性和唯一性的重要参数。以下是对Nonce的详细解释: 定义 Nonce是一个scalar值,它等于从该地址发送的交易数量,或在具有关联代码的账户的情况下,由该账户创建的合…

掌握Three.js:学习路线,成为3D可视化开发的高手!

学习Three.js可以按照以下路线进行&#xff1a; 基础知识&#xff1a; 首先要了解基本的Web开发知识&#xff0c;包括HTML、CSS和JavaScript。如果对这些知识已经比较熟悉&#xff0c;可以直接进入下一步。 Three.js文档&#xff1a; 阅读Three.js官方文档是学习的第一步。官…

192.回溯算法:电话号码的字母组合(力扣)

代码解决 class Solution { public:// 定义每个数字对应的字母映射const string letterMap[10] {"", // 0"", // 1"abc", // 2"def", // 3"ghi", // 4"jkl", // 5"mno", // 6"pqrs&…

软件测试----用例篇(设计测试用例保姆级教程✅)

文章目录 前言一、测试用例概念 二、如何设计测试用例三、设计测试用例的方法3.1基于需求的设计方法3.2具体的设计方法等价类边界值正交法判定表法场景法错误猜测法 前言 在软件开发过程中&#xff0c;测试用例是至关重要的一环。它们帮助软件开发人员和测试人员确定软件是否按…

FlinkSQL开发经验分享

最近做了几个实时数据开发需求&#xff0c;也不可避免地在使用Flink的过程中遇到了一些问题&#xff0c;比如数据倾斜导致的反压、interval join、开窗导致的水位线失效等问题&#xff0c;通过思考并解决这些问题&#xff0c;加深了我对Flink原理与机制的理解&#xff0c;因此将…

嵌入式开发板屏幕显示汉字

一、实验目的 1&#xff0e;编写能够在嵌入式开发板LCD上显示汉字的程序&#xff1b; 2&#xff0e;在Ubuntu系统中编译上述程序生成可执行文件&#xff1b; 3&#xff0e;到开发板中验证。 二、实验步骤 1. Ubuntu系统上编写验证程序 Ubuntu系统上编写的验证程序如下&…

【开发12年码农教你】Android端简单易用的SPI框架-——-SPA

Service(priority 1) public class APrinterService implements IPrinterService { Override public void print() { System.out.println(“this is a printer service.”); } } 复制代码 B模块 —— BPrinterService Service(path“b_printer”, priority 2) public class…

监控 Promethus的监控告警Alertmanager、Grafana

Promethus的监控告警Alertmanager Alertmanager 介绍 Prometheus的一个组件&#xff0c;用于定义和发送告警通知&#xff0c;内置多种第三方告警通知方式&#xff0c;同时还提供了对Webhook通知的支持基于警报规则对规则产生的警报进行分组、抑制和路由&#xff0c;并把告警发…

华硕笔记本重装系统详细操作,图文教程体验Win11如何重装系统

随着科技的不断发展&#xff0c;电脑操作系统的步骤也在不断更新迭代。对于华硕笔记本用户来说&#xff0c;升级到Windows 11操作系统可以带来更好的使用体验。本文将通过图文教程的形式&#xff0c;详细介绍华硕笔记本重装Windows 11系统的操作步骤&#xff0c;帮助用户顺利完…

用AI打败AI,利用ai指令对头条文章进行查重测试,结果出乎意料

前言&#xff1a;现在的ai真的太火爆了&#xff0c;让人不得不感叹ai的神奇之处&#xff0c;让我们一起来探讨下ai的强大之处吧&#xff01;本文仅限学习研究。 背景&#xff1a;最近看到很多人用ai写文章&#xff0c;然后被头条判定为疑似ai生成&#xff0c;所以想研究学习下…

ES6 解构赋值详解

ES6是JavaScript语言的一次重大更新&#xff0c;引入了许多新特性和语法改进&#xff0c;其中解构赋值是一个非常实用和灵活的语法特性。它可以让我们从数组或对象中提取值&#xff0c;并赋给对应的变量&#xff0c;让代码变得更加简洁和易读。本文将深入探讨ES6解构赋值的语法…

ROS | 常见故障排查

1.开启后发出一个WIFI WIFI名字&#xff1a;WHEELTEC接数字 安全密钥&#xff1a;dongguan 2.显示屏接口 USB接口接键鼠 3.远程登录命令 ssh -Y wheeltec192.168.0.100 是小车发出的WIFI的一个IP地址 4. 登录后确保IP地址 ip a 看一下 当前ip地址 倒数第四行-当前ip地址 1…

简易部署的设备日志采集工具

永久免费: Gitee下载 最新版本 使用说明: Moretl 企业级采集文件工具 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.