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):具有以下功能:
- 指令译码:解释指令的含义,确定需要执行的操作。
- 控制信号生成:根据译码结果,生成各种控制信号,用于控制其他组件的操作。
- 时序控制:确保指令按照正确的顺序和时间执行。
- 异常处理:处理程序执行中的异常情况。
- 中断处理:管理中断请求,在适当的时候进行中断处理。
它们共同协作,实现指令的读取、解码和执行,确保计算机系统的正常运行。具体来说:
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 倍。