用低/高电平分别表示0/1(计算机硬件唯一能识别的数据——二进制0/1)
低电平(类似打火机中的电管,微弱的电流,轻微的刺痛感,表示二进制0)
高电平(类似皮卡丘点击,表示二进制1)
CPU和内存条上的针脚,就是用来发送/接收电信号的通道,也就是高/低电平,多个针脚即可以传递多个二进制数。
主板上的印刷电路(线),可以理解为它是用来导电,嵌在电路板上的电线,来传输二进制信息,通过多条电路,可以传递多个二进制数位,每个二进制数位称为1bit(比特)
第 1 章 计算机系统概述
计算机系统 = 硬件(计算机的实体,如主机、外设等) + 软件(由具有各类特殊功能的程序组成)
硬件:计算机系统的,决定计算机系统的天花板在哪。
软件:决定了可以把计算机的性能发挥到什么程度。
软件:
①系统软件:用来管理整个计算机系统(Eg:操作系统、数据库管理系统[DBMS]、标准程序库[编程使用的库函数]、网络软件[tic\ip协议]、语言处理程序[编译\汇编程序,把编程语言翻译成机器语言]、服务程序[调试代码用的调试程序])
②应用软件:按任务需要编制成的各种程序(Eg:抖音、王者荣耀、美图秀秀…)
计算机组成原理主要探究硬件
* 1.1 计算机发展历程
*1.1.1 计算机硬件的发展
发展阶段 | 时间 | 逻辑元件 | 速度(次/秒) | 内存 | 外存 |
---|---|---|---|---|---|
第一代 | 1946-1957 | 电子管 | 几千-几万 | 汞延迟线、磁鼓 | 穿孔卡片、纸袋 |
第二代 | 1958-1964 | 晶体管 | 几万-几十万 | 磁芯储存器 | 磁带 |
第三代 | 1964-1971 | 中小规模集成电路 | 几十万-几百万 | 半导体存储器 | 磁带、磁盘 |
第四代 | 1972-现在 | 大规模、超大规模集成电路 | 上千亿-万亿 | 半导体存储器 | 磁盘、磁带、光盘、半导体存储器) |
第一代计算机 电子管时代:第一台电子数字计算机:ENIAC(1946) - 冯诺依曼 ,采用电子管作为逻辑元件[用来处理电信号的最小基本单元],总共使用了1.8万个电子管(当时有手指那么大),体积大、耗电量大、成本高、运算慢;使用机器语言编程(只能使用01,使用纸带机来编程,有孔的表示0,没孔的表示1),有一只小虫子(bug)死在纸带上面,计算机的读取就会有问题,所以称为bug。
第二代计算机 晶体管时代:使用晶体管替代电子管,体积缩小了很多,功耗降低,计算速度提高,出现高级编程语言 FORTRAN ,有了操作系统雏形,但几十万个晶体管需要手动焊在电路板上,任何一个焊点出问题会导致整个计算机无法工作。
第三代计算机 中小规模集成电路时代:会把逻辑元件集成在基片上,采用集成电路的制作工艺,计算机主要用于科学计算等专业用途,高级语言迅速发展,开始有了分时操作系统。
第四代计算机 超大规模集成电路时代:开始出现“微处理器”[例如CPU]、“微型计算机”[个人计算机(PC)萌芽,微型计算机的发展以微处理器技术为标志],操作系统:Windows、MacOS、Linux…
7nm:每一个电路元件,每一个晶体管,在芯片中,做到了宽度不吵过7nm;
机器字长:计算机一次整数运算所能处理的二进制位数(直接影响计算机的计算速度);
*1.1.2 计算机软件的发展
编程语言:机器语言 - 汇编语言(本质一样,只是转换成人类方便识别的符号,但是还要关注机器的具体特性,难度比较大) - 高级编程语言(接近人类使用的自然语言,例如apple C++) - Java python…
操作系统:DOS系统 - Windows系统 - 安卓、IOS…
“两极”分化发展趋势:
一极是微型计算机向更微型化、网络化、高性能、多用途方向发展;例如智能穿戴设备、小手机…
另一极是向巨型化、超高速、并行处理、智能化方向发展;例如神威·太湖之光…
超级计算机排行榜单:https://www.top500.org
1.2 计算机系统层次结构
1.2.1 计算机系统的组成
计算机系统 = 硬件(计算机的实体,如主机、外设等) + 软件(由具有各类特殊功能的程序组成)
硬件:计算机系统的,决定计算机系统的天花板在哪。
软件:决定了可以把计算机的性能发挥到什么程度。
易错:完整的计算机系统需要包括:配套的硬件设备和软件系统(并非只有主机和外部设备)
1.2.2 计算机硬件
1.冯诺依曼机的基本思想
ENIAC每一步计算都需要操作员通过手动接线来控制计算机,埃尼亚克的计算速度被手工操作抵消了,为了解决这个问题,提出了“存储程序”的概念。
“存储程序”的概念是指,将指令以二进制代码的形式事先输入计算机的主存储器(内存),然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。(代码按行处理程序),诞生第一台采用冯诺依曼结构的计算机EDVAC。
⭐ 2.计算机的功能部件
冯诺依曼计算机硬件系统
数据线:数据包含要进行数学运算的数据,也包含程序,也就是指令集合,实线箭头表示数据跟着实线箭头的方向进行传输。
-
⭐ 冯诺依曼计算机的五大部件:
-
输入设备:将信息转换成计算机能识别的形式,也就是二进制数; - “采购部门”
-
运算器:实现算数运算(加减乘除)、逻辑运算(与或非); - “生产加工部门”
-
存储器:存放数据和程序; - “仓储部门”
-
输出设备:将结果转化为人们熟悉的形式; - “销售部门”
-
控制器:用电信号指挥程序运行,也会解析存储器中存储的程序指令,然后指挥运算器进行运算。 - “霸道总裁”
-
-
冯诺依曼计算机的五大特点:
-
计算机由五大部件组成(统称为I/O设备,input输入,output输出);
-
指令和数据以同等地位(二进制)存于存储器,可按地址寻访;
-
指令和数据用二进制表示(方便用电信号表示0/1);
-
指令由操作码(加减乘除)和地址码(数据存放在内存的什么地址当中)组成;
-
存储程序(会把指令和数据提前存储到存储器当中);
-
以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成,即为中转站,数据传送必须经过运算器来完成) - 问题:数据计算效率降低,除了运算,还需要传输数据,因此改进方向可以将存储器作为中心,避免运算器效率损失(现代计算机)。
-
-
⭐ 冯诺依曼结构
-
首次提出“存储程序”概念(实现了现代的代码自动化)
-
以运算器为中心
-
-
⭐ 现代计算机结构
-
以存储器为中心
-
CPU = 运算器 + 控制器
-
运算器和控制器之间的逻辑关系十分紧密,所以在大规模集成电路制作工艺出现之后,将运算器和控制器整合在一起,也就是CPU。
指令会放到控制器中,由控制器来解析指令的含义,并且处理;
图中的主机与现实里的机箱主机(包含CPU、主存储器、硬盘、风扇…)有区别;
‼️ 注意:主存为主存储器,也就是内存,辅存为辅助存储器,也就是机械/固态硬盘,而主存才是包含在主机中的,辅存包含在I/O设备中。
3.主存储器的基本组成
存储体是由一系列的存储元件构成的,可以存放二进制 0 或者 1;主存储器中,除了存储体还有两个重要的寄存器:
-
MAR(Memory Address Register):存储地址寄存器(存放和地址相关的二进制数据,即存储单元的地址)
-
MDR(Memory Data Register):存储数据寄存器(存放实际的数据,即存储单元中存储的数据)
寄存器也是用来存放二进制数据的,但是它们存放的数据各不相同;
注意:现代的计算机通常把MAR、MDR也集成在CPU内。
对于主存储器来说,CPU将想要获得的数据写到MAR中,主存储器根据MAR接收到的地址信息,从存储体中获得CPU想要的数据,然后写入MDR,最后,CPU通过数据线路,从MDR中取走需要的数据。
CPU既可以从存储器中读出数据,同时也可以写入数据,CPU指明写入到哪个位置,然后具体写入的数据会放在MDR中,CPU通过控制总线告诉主存储器,要执行写入操作,而不是读取,主存储器根据CPU发出的三个信息,往对应的地址写入数据。
数据在存储体内按地址存储,整个存储体会被分成多个存储单元,每一个存储单元会存放一串二进制代码,那每一个单元里面存储的二进制代码,就称之为存储字(word),存储单元中包含多少个二进制代码称为存储字长,通常每个存储单元可以存放的二进制数都是 8/16/32/64bit,归纳如下(⭐ 选择题的高频考点,加个地址):
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合 - 不同于字节
存储字长:存储单元中二进制代码的位数
存储元:即存储二进制数据的电子元件,每个存储元可以存1bit(由电容原理构成)
每一个存储单元会对应一个地址,地址信息是从0开始的。
MAR指明了访问存储单元的地址(例如图中的1、2、3…),它有多少个bit为就直接反应了存储体中,有多少个存储单元,从存储单元中取出来的数据要放在MDR当中,所以MDR的二进制位数应该和存储单元保持一直,也就是等于存储字长;
⭐ 例如:MAR有4个比特位,那么总共有2^4个储存单元(4个二进制最多表示2的4次方),如果MDR的数据寄存器一共有16个比特位,那么就说明,这个主存储器中,1个字的大小就是16个比特位,每一个存储单元可以存放16个二进制位。
容易混淆:
一个字节有8个比特位,一个字有多少个比特位,需要看计算机的结构大小(8/16/32/64bit);
描述一个字节的时候,通常用1B表示,如果描述一个比特,一个二进制位的时候,通常用1b表示;
像日常宽带的100兆,它的单位是b,用比特位来表示,下载时候的迅雷,用的单位是B,即字节,所以100兆宽带最多下载速度为12M左右(100/8);
4.运算器的基本组成
运算器由ACC\MQ\X\ALU的部件组成,它是用来实现算数运算(如加减乘除)、逻辑运算(如与或非),前三个寄存器是必须具备的。
ACC:寄存器,翻译为中文叫做累加器,用来存放操作数,或运算结果。
MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
X:通用的操作数寄存器(简称为通用寄存器),用于存放操作数,可能会有多个,但是只要有一个就可以实现算术运算。
ALU:算术逻辑单元,通过内部复杂的电路实现算术运算、逻辑运算。(核心部件,也是制造成本最高的部件)
5.控制器的基本组成
控制器有三个必不可少的部件:
CU(Control Unit):控制单元,分析指令,给出控制信号(控制器最核心部件,里面集成了很复杂的一系列电路,可以完成分析指令,并且给其他部件发出控制信号)
IR(Instruction Register):指令寄存器,存放当前执行的指令
PC(Program Counter):程序计数器,存放下一条指令地址,有自动加1功能
代码是一条一条的指令,每次完成一条指令需要经过三个阶段,即 取指令(根据PC记录的指定地址,根据这个地址,从内存里取出指令),取出的指令放在IR中,让CU分析指令的作用,分析完成后会控制其他部件来配合指令的具体执行;
待续…