基本组成

基本概念

计算机的功能:

  • 数据传送功能

  • 数据存储功能

  • 数据处理功能

  • 操作控制功能

  • 操作判断功能

指令集体系结构ISA:定义了一台机器可以执行的所有指令的集合

字长是CPU进行一次整数运算所能处理的二进制数据的位数,字长一般等于内部寄存器的数据位宽大小。由于冯诺依曼结构特点,指令和数据地位相同,故指令位数=数据位数,字长相同

字长一般选取为字节(1byte=8bit,8位)的倍数

字长越大,数的表示范围越大,计算精度越高

  • 存储字长:一个存储单元中二进制代码的位数=MDR位数
  • 数据字长:数据总线一次能并行传送信息的位数

性能指标

运行速度:每秒能执行多少条指令

吞吐量:单位时间内处理请求的数量,取决于信息能多块输入内存

响应时间:用户向计算机发出请求到得到结果所花费的时间,包括CPU运行时间和等待时间(磁盘访问、存储器访问、IO操作等)

CPI:每执行一条指令所花费的时钟周期数

CPU执行时间:运行一个程序所花费的时间。CPU执行时间=指令条数*CPI/主频

MIPS:每秒执行多少10610^6条指令

FLOPS:每秒执行多少次浮点运算

  • K:10310^3
  • M:10610^6
  • G:10910^9
  • T:101210^{12}
  • P:101510^{15}
  • E:101810^{18}
  • Z:102110^{21}

基本结构

先采用冯诺依曼结构:冯诺依曼结构式控制流驱动方式

  1. 采用存储程序的工作方式:将实现编制好的程序和原始数据送入主存后才能运行,一旦程序被启动执行,就无需操作人员的干预,计算机会自动逐条执行指令,直至程序结束。按地址访问并顺序执行
  2. 计算机系统硬件由运算器、控制器、存储器、输入设备、输出设备五个部分组成
  3. 指令和数以同等地位存储在存储器中,形式上没有区别,CPU区分的方式是当前的阶段:取指还是取数
  4. 指令和数据均用二进制代码表示。指令由操作码和地址组成。操作码指出操作的类型,地址吗指出操作数的地址(寄存器地址也是地址)

一般将运算器和控制器集成到一个芯片上,称为中央处理器CPU。CPU包含ALU、通用寄存器组GPRs、标志寄存器、控制器、指令寄存器IR(当前执行的指令内容)、程序计数器PC(下一条执行的指令地址)、存储器地址急促群里MAR和存储数据寄存器MDR

运算器

ALU+Register:完成最基本的算数逻辑计算

image-20230911142005964

存储器

存储器分为主存储器(内存)和辅助存储器(外存),CPU能够直接访问的是主存储器

存储器:实现数据存储。保存程序和数据(二进制信息)

  • 存储体(多个存储单元组成)+ 控制电路

  • 存储字:每个存储单元存放的二进制信息

  • 存储字长:每个存储单元存放的二进制代码的位数

  • 存储容量:存储单元个数 X 存储字长, 单位: Bit, Byte, Word

  • 地址的概念:每一个字节单元拥有一个唯一的地址(索引)

  • 存储器的工作方式:读、写

冯诺依曼结构最显著的特征就是在存储器中同时存放指令和数据,指令和数据的位数是相同的

image-20230911142119931

控制器

实现控制功能的部件

  • 提供各部件工作所需的控制信号,控制计算机其他部件协同工作

  • 指令部件

  • 指令顺序控制

  • 时序逻辑部件

  • 控制信号生成部件

image-20230911142743757

输入输出

实现数据交换的部件

image-20230911142506195

层次结构

语言结构

硬件能够直接执行的是机器语言,编译器将高级语言转换为机器语言或汇编语言,汇编器将汇编语言转换为机器语言,生成相应的可执行文件

对于解释程序,由解释器翻译一句执行一句,并且不会生成目标程序,解释程序方法较为复杂

  1. 虚拟机器M3:高级语言(C语言是最接近底层的高级语言)
  2. 虚拟机器M2:汇编语言程序
  3. 实际机器M1:机器语言程序

高级语言不与指令直接对应,具有较好的可以执行

image-20230911143133483

软件结构

计算机软件:系统软件和应用软件。

着重注意系统软件:操作系统OS、数据库管理软件DBMS(数据库系统是应用软件)、语言处理程序(文本、字符处理程序是应用软件)、分布式软件系统、网络软件系统、标准库程序、服务性程序

总线结构

总线:符合一定的标准的一组公共信息通道。在计算机众多部件的连接中,引入一条公共通路来实现各部件的连接功能

总线组成

  1. 片内总线

    • 片内总线是芯片内部的总线,它是CPU内部的寄存器与寄存器之间,寄存器与ALU之间的公共连线

    • 特点:高速

  2. 系统总线:系统总线是计算机内各功能部件之间互相连接的总线(如CPU,主存和IO设备)。其分类如下:

    • 数据总线:用来传输各功能部件之间的数据信息,是双向传输总线,其位数与机器字长,存储字长有关。

    • 地址总线:用来传输数据在主存单元或I/O端口的地址,是单向传输总线,地址总线的位数与主存地址空间大小有关。

    • 控制总线:用来传输控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号。是双向传输总线

    • 系统总线按照功能进行了分类

  3. I/O总线

    • I/O总线主要用于连接低速的I/O设备,通过I/O接口与系统总线相连接,目的是将低速设备与高速总线分离,以提升总线的系统性能。
  4. 通信总线

    • 通信总线是计算机系统之间或计算机系统与其它系统之间传送信息的总线,通信总线也称为外部总线

分为单总线结构多总线结构

image-20230911143809245

多总线结构

多总线结构的特点:不同速度的信息传输使用不同的总线。

多总线结构是通过桥、CPU 总线、系统总线和高速总线彼此相连, 各大部件的信息传送不是只通过系统总线。高速、中速、低速设备连接到不同的总线上同时进行工作,以提高总线的效率和吞吐量,而且处理器结构 的变化不影响高速总线。靠近CPU的总系速度较快,靠近IO接口的总线速度较慢

计算机中的数

数值型:无符号数和有符号数(补码)

非数值型:逻辑数据(0/1)、西文字符(ASCCI)、汉文编码、国际多字符集(Unicode)、校验码(检验数据在传送过程中检查差错、纠正差错)等

  • 校验码:采用“冗余校验”的思想,在原数据编码之外,增加若干位校验码,实现检错或纠错功能

浮点数的表示

浮点数一般表示为:S2JS*2^J,分为阶码J和尾数S两个部分

阶码J采用定点整数,尾数S采用定点小数表示。

image-20230911144129381

image-20230911144312974

S越大,精度越高。J越大,范围越大。但总位数是一定的,故表示合适的精度和范围是一个取舍。

浮点数的表示(IEEE 754)

image-20230911144555812

偏移量为了应对负数,节省了位数。这里的E-127即为偏移量:

M=1.m,通过规整运算换取位数节省

image-20230911145416321

溢出和扩展

[A+B]补=A补+B补

[A-B]补=A补-B补

溢出:结果超出计数系统所能表示的范围:

  • 符号位相同的两数相加,得到的结果符号位相反,溢出

  • 符号位相异的两数相减,得到的结果与减数的符号位相反,溢出

溢出的判断:

  1. 双符号法:00表示正,11表示负,10或01表示溢出

  2. 进位扩展法:此高位和最高位进位不一致则判定为溢出

两个正数最高位一定都是0,两个负数相加一定会溢出

指令执行的基本流程

机器指令:指令码+地址码(操作地址所在位置的数)(操作数地址,计算机中对数的访问的本质是访问数所在的地址)

微操作:计算机可以完成的最基本的操作,一条机器指令的执行可以解释为一系列微操作的执行

取指令+指令译码+取操作数+执行+保存结果+下一个

image-20230911150058141