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.mzph.cn/bicheng/31972.shtml

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

相关文章

DAY10-力扣刷题

1.最后一个单词的长度(简单) 58. 最后一个单词的长度 - 力扣(LeetCode) 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子…

Unity3d自定义TCP消息替代UNet实现网络连接

以前使用UNet实现网络连接,Unity2018以后被弃用了。要将以前的老程序升到高版本,最开始打算使用Mirro,结果发现并不好用。那就只能自己写连接了。 1.TCP消息结构 (1). TCP消息是按流传输的,会发生粘包。那么在发射和接收消息时就需要对消息进行打包和解包。如果接收的消息…

Nutch爬虫在大数据采集中的应用案例

引言 在当今信息爆炸的时代,大数据的价值日益凸显。网络作为信息的海洋,蕴藏着丰富的数据资源。Nutch,作为一个开源的Java编写的网络爬虫框架,以其高效的数据采集能力和良好的可扩展性,成为大数据采集的重要工具。本文…

Mac安装多个jdk环境(jdk8+jdk17)保姆级

Mac安装多个jdk环境(jdk8jdk17)保姆级 背景:新机安装开发环境发现需要找很多文章,,,,这里一篇文章安装所有环境 文章目录 Mac安装多个jdk环境(jdk8jdk17)保姆级&#x1f…

C语言入门系列:指针入门(超详细)

文章目录 一,什么是指针1,内存2,指针是什么? 二,指针的声明1,声明指针类型变量2,二级指针 三,指针的计算1,两个指针运算符1.1 *运算符1.2 & 运算符1.3 &运算符与…

【Arthas案例】应用包含两个相同全限定类名StaticLoggerBinder,引起log4j.Level类找不到异常

3分钟内解决问题 两个不同的GAV依赖冲突,包含相同全限定类名,引起ClassNotFoundException Maven依赖的三坐标体系GAV(G-groupId,A-artifactId,V-version) 【案例1】某应用依赖两个GAV不同的jar,但包含两个相同全限定类…

OpenCv形态学(一)

目录 形态学转换 结构元素 腐蚀 膨胀 开运算 闭运算 形态学梯度 顶帽 黑帽 图像轮廓 查找轮廓 绘制轮廓 形态学转换 形态变换是一些基于图像形状的简单操作。通常在二值图像上执行。它需要两个输入,一个是我们的原始图像,第二个是决定操作性…

6月21日(周五)AH股总结:沪指失守3000点,恒生科技指数跌近2%,多只沪深300ETF午后量能显著放大

内容提要 沪指全天围绕3000点关口来回拉锯,收盘跌破3000点。白酒及光刻机概念集体走低,中芯国际港股跌超2%。CRO医药概念及水利股逆势走强。 A股低开低走 沪指全天围绕3000点关口来回拉锯,收盘跌破3000点,跌0.24%。深成指跌0.04…

ubuntu 20.04 访问csdn报错 Secure connection failed 解决

问题原因: 我一边更新源 sudo apt update & apt upgrade一边在看csdn,估计是这个导致的. 所以我直接把华为源换成了阿里源。 sudo apt update & apt upgrade再更新一次,解决。

探索语言模型的智能飞跃:预训练损失与突现能力的新视角

在人工智能的辉煌编年史中,语言模型(LMs)的崛起标志着自然语言处理领域的一个巨大飞跃。随着技术的进步,这些模型不仅在规模上日益庞大,更在性能上不断刷新着人们的认知边界。它们在问答、翻译、文本摘要等任务上展现出…

SQlyog连接到主机时报错:错误号码2058Plugin sha256 password could not be loaded

1.问题重述 MySQL版本:8.4.0 SQlyog连接到主机时报错:错误号码2058Plugin sha256 password could not be loaded,如下图 经过查阅资料得知出现这个问题是因为 mysl8之前的加密规则是 mysql_native_password ,而在mysql8之后&…

Vue DevTools

介绍 什么是 Vue DevTools? Vue DevTools 是一款旨在增强 Vue 开发者体验的工具,它是一款功能强大且用途广泛的工具,可以在使用 Vue 应用程序时显着提高您的生产力和调试能力。它的实时编辑、时间旅行调试和全面检查功能使其成为任何Vue.js开…

帕金森患者饮食指南:科学调养,呵护健康

🌼在医学的广阔领域中,帕金森病作为一种慢性神经系统疾病,除了需要专业的医疗治疗外,日常饮食的调养也显得尤为重要。 今天,就为大家带来一份专为帕金森患者打造的饮食建议,希望能为大家的健康调养提供一些…

数据库讲解---(数据库保护)【上】

目录 一.事务 1.1事务的概念【重要】 1.2事务的特性【重要】 1.2.1原子性(Atomicity) 1.2.2一致性(Consistency) 1.2.3隔离性(Isolation) 1.2.4持久性(Durability) 二.数据库恢复 2.1数据库系统的故障 2.1.1事务内部故障 2.1.2系统故障 2.1.3介质故障 2.1.4计算机…

Linux操作系统篇:多线程

一. Linux中线程是怎么理解的 1.1 线程概念 在Linux中,线程是在进程“内部”执行的,线程是处于进程的进程地址空间中运行,线程用到的资源都是进程的资源,线程是执行进程的一部分代码,线程是最小的执行流&am…

Android记录3--ExpandableListView使用+获取SIM卡状态信息

布局文件&#xff1a; /SIM_Card_Demo/res/layout/inbox.xml <LinearLayout xmlns:android“http://schemas.android.com/apk/res/android” xmlns:tools“http://schemas.android.com/tools” android:layout_width“match_parent” android:layout_height“match_par…

【代码】python实现一个BP神经网络-原理讲解与代码展示

​ 本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、BP神经网络原理回顾1.1 BP神经网络的结构简单回顾1.2.BP神经网络的训练算法流程 二、python实现BP神经网络代码2.1.数据介绍2.2.pytorch实现BP神经网络代码 在python中要如何使用代码实现一个BP神经网络呢…

使用Rsbuild构建基于Vue3+Vant4开发h5应用

目录 一、介绍 1.1 Vant介绍 1.2 Rsbuild介绍 1.3 Vue介绍 二、构建应用 1.第一步 2.第二步 3.第三步 4.第四步 5.第五步 6.在项目中使用 Vant4 组件 7.移动端适配Rem 8. 执行 cnpm run dev 启动项目 一、介绍 1.1 Vant介绍 Vant 是一个轻量、可定制的移动端组…

单机小游戏好上架的应用市场有哪些?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

Vue3中的常见组件通信(超详细版)

Vue3中的常见组件通信 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $refs4. 默认…