计算机组成原理(待更新)

本文介绍了计算机系统的发展历程,从电子管到超大规模集成电路,以及摩尔定律的影响。讨论了计算机的硬件和软件层次,包括冯诺依曼体系结构和现代计算机的特点。此外,还详细阐述了计算机硬件组成,如存储器、运算器和控制器的功能,并解释了计算机工作过程。文章还探讨了计算机的性能指标,如机器字长、主频和运算速度。最后,提到了数据表示,包括数制转换、机器数、BCD码、ASCII码和校验码的概念。
摘要由CSDN通过智能技术生成

在这里插入图片描述

第一章、计算机系统概述

本章知识架构图:

image-20230401093555329

1. 计算机发展历程

1.1 计算机硬件的发展

计算机历史:

  • 电子管计算机:使用机器语言编程,体积庞大,容量小,没有操作系统,一般运算几千到几万次每秒
  • 晶体管计算机:开始使用高级语言编程,有了操作系统的雏形,运算速度几万到几十万次每秒
  • 中小规模集成电路计算机:使用集成电路,使用高级语言,使用了分时操作系统
  • 超大规模集成电路计算机:使用超大规模集成电路,有了微处理器,并行、流水线、高速缓存、虚拟存储器等出现

摩尔定律:每隔18个月集成电路上可容纳的晶体管的数量就会增加一倍。

1.2 计算机软件的发展

各种高级语言和各种系统软件的出现

1.3 计算机分类与发展方向

2. 计算机系统层次结构

2.1 计算机系统的构成

计算机系统包括硬件系统和软件系统,硬件如果没有软件的支持,不能发挥它的全部价值,软件没有硬件的话,没办法实现功能。

2.2 计算机的硬件组成

1)早期的冯诺依曼计算机:

在这里插入图片描述

  • 冯诺依曼计算机包括5大部分
  • 指令和数据以同等地位存储在存储器中,按址寻访
  • 指令和数据均按照二进制的方式存储
  • 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数要存储的位置
  • 指令在存储器内按照顺序存放,通常指令是按顺序执行的,特定条件下可以改变指令执行的顺序
  • 早期冯诺依曼计算机以存储器为中心,I/O设备通过运算器与存储器传送数据

现代计算机由于其他设备与CPU速度差距过大,瓶颈不在于运算器,所以当前计算机都是以存储器为核心的

2)现代计算机:

点击查看图片来源

3)计算机的功能部件:

  • 输入设备:将程序和数据以机器认识的方式输入计算机。
  • 输出设备:将计算机处理的结果以人们能接受的方式输出出来。
  • 存储器:用来存储数据和程序,存储器包括主存和辅存,CPU可以直接访问的是主存,而辅存的信息只有调入主存后,才能被CPU访问。
    • 主存储器由很多存储单元组成,每个存储单元包含很多存储元件,存储元件用0/1表示状态,存储单元存储一串二进制数称为存储字,这串代码的位数称为存储字长,主存储器按照存储单元的地址存取
    • 如下图:存储体存放着二进制信息,地址寄存器(MAR)存放地址信息,通过地址译码后找到对应的存储单元,数据寄存器暂时存储从存储体获取到的数据,时序控制逻辑用于产生存储器操作所需的各种时序信号, MAR用于寻址,其位数对应着存储单元的个数,比如MAR是10位,就有2^10=1024个存储单元,MAR的长度与PC的长度相等。MDR的位数与存储字长相等。image-20230327224616173
  • 运算器:用于进行算数运算和逻辑运算。算数运算:加减乘除;逻辑运算:与或非,异或,比较,移位。运算器的核心是算数逻辑运算单元(ALU),运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,运算器内还有程序状态寄存器(PSW),也叫标志寄存器,用于存放ALU运算得到的一些标志信息或者处理机的状态信息,如结果是否溢出、有无产生进位或借位、结果是否为负等。
  • 控制器:控制器相当于计算机的指挥中心,指挥各个部件自动协调工作,控制器包括程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。
    • 程序计数器PC用来存放当前打算执行的指令地址,可以自动加1形成下一条地址,它与主存的MAR之间有一条直接通路。
    • 指令寄存器IR用来存放当前的指令,内容来自于主存的MDR,指令中的操作码送到控制单元CU,用来分析指令并发出各种微操作命令序列;地址码送往MAR,用来取操作数。

image-20230401085546099

CPU包括ALU、通用寄存器组(GPRs)、标志寄存器、控制器、指令寄存器IR、程序计数器PC、存储地址寄存器MDR、存储数据寄存器MAR。

CPU和主存之间有三组信号线:地址线、控制线、数据线。

MAR中的地址信息会直接送到地址线上,用于指向读写操作的主存存储单元;控制线包括读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU;根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。

image-20230401093515082

2.3 计算机的工作过程

计算机的工作过程包括三个步骤:

  1. 把程序和数据装入主存
  2. 将源程序转换成可执行程序
  3. 从可执行文件的首地址开始逐条执行指令

从源程序到可执行程序:

以C语言为例子,将hello.c源程序翻译成可执行的文件需要四个阶段:

image-20230401090520460

  1. 预处理阶段:预处理器cpp对源程序中以#开头的命令进行处理,也就是将#include命令后面引入的.h文件插入到程序中,输出hello.i文件
  2. 编译阶段:编译器ccl对预处理后的源程序进行编译,生成汇编程序hello.s
  3. 汇编阶段:汇编器as将hello.s文件翻译成机器语言指令,把指令打包成重定位目标文件的hello.o文件,属于二进制文件
  4. 链接阶段:链接器ld将多个可重定位的目标文件和函数标准库函数合并成一个可执行文件hello

程序执行过程描述:仅以特别简单的取数指令为例

  • 取指令:PC -> MAR -> M -> MDR -> IR
    • 根据PC取指令到IR,将PC的内容送到MAR,MAR送到地址线,同时控制器将读信号送入读/写信号线,主存根据地址线上的地址和读信号,从指定存储单元中读出指令,送到数据线上,MDR从数据线接收指令信息,传入IR
  • 分析指令:OP(IR) -> CU
    • 指令译码并送出控制信号,控制器根据IR中指令的操作码,生成相应的控制信号,送到不同的执行部件
  • 执行指令:Ad (IR)-> MAR -> M -> MDR -> ACC
    • 将IR中指令的地址码送到MAR,MAR中的内容送入地址线,同时控制器将读信号送入读/写信号线,从主存指定存储单元读出操作数,并通过数据线送至MDR,在送到ACC中
    • 同时取完该指令,PC+1
2.4 计算机系统的多级层次结构

img

3. 计算机性能指标

3.1 计算机的主要性能指标
  • 机器字长:计算机进行一次整数运算(定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关,所以机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。
  • 数据通路带宽:数据总线一次能并行传送信息的位数,这里说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器大小)可能不同
  • 主存容量:主存储器所能存储信息的最大容量,通常以字节来衡量,也可以用字数 × 字长来表示存储容量。其中MAR的位数反应存储单元的个数。
  • 运算速度:
    • 吞吐量:系统在单位时间内处理请求的数量
    • 响应时间:从用户发送请求,到系统对该请求做出响应时间并获取所需结果的等待时间
    • CPU时钟周期:主频的倒数,它是CPU中最小的时间单位,每个动作至少要一个时钟周期
    • 主频:机器内部主时钟的频率,一般主频越高,完成指令的一个步骤的时间月u但,速度越快
    • CPI:执行一条指令所需的时钟周期数
    • CPU执行时间:运行一个程序所花费的时间
    • MIPS、MFLOPS、GFLOPS、TFLOPS:
      • MIPS:每秒执行多少百万条指令
      • MFLOPS:每秒执行多少百万次浮点运算
      • GFLOPS:每秒执行多少十亿次浮点运算
      • TFLOPS:每秒执行多少万亿次浮点运算

第二章、数据的表示和运算

1. 数制和编码

1.1 进位计数值及相互转换

二进制、八进制、十六进制、十进制的通用公式:

image-20230401093856524

进制转换:二、八、十六进制直接按照位数转就行,和十进制转换可以用除法取余数。

1.2 真值和机器数

生活中一般使用+和-表示整数和负数,这种带符号的叫做真值,真值是机器数所表示的实际值。计算机中通常使用数的符号和数值一起编码的方式表示数据,如原码、反码、补码表示法。

1.3 BCD码

BCD码:二进制编码的十进制数(BCD Binary-Coded Decimal)通常采用四位二进制数来表示一位十进制数中的0-9,这种编码方式使得二进制和十进制转换可以快速进行,但是4位二进制可以组合出16位10进制数,所以必然要有6位冗余。

常见的BCD码:

1)8421码:它是一种有权码,各位的数值为b3,b2,b1,b0,权值从高到低依次是8,4,2,1。

image-20230403084558090

2)余3码:它是一种无权码,在8421码上加上3得到的,如8->1011;9->110。

3)2421码:也是一种有权码,权值分别是2,4,2,1,大于5的二进制数最高位为1,小于5的二进制数最高位为0,如5->1011。

1.4 字符与字符串

ASCII码:7位二进制编码的ASCII码,可以表示数字、英文大小写、一些专用符号,共128个。

GB系列:GB系列用两个字节表示汉字。

1.5 校验码

校验码:能够发现或者能自动纠错的数据编码,也称为检错纠错编码,校验码的原理是通过增加一些冗余码,来检验或纠错编码。

通常某种编码都由许多码字构成,任意两个合法码字之间最少变化的二进制位数,称为数据校验码的码距。码距不小于2的数据校验码,开始具有检错的能力。码距越大,检错、纠错的能力就越强,而且检错能力总是大于等于纠错能力。

1)奇偶校验码:原编码上加一个校验位,码距等于2,可以检测出一个位置的错误(或奇数位错误),但不能确定出错的位置,也不能检测出偶数位错误,增加的冗余 位叫做奇偶校验位。

image-20230403090633915

2)海明校验码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值