计算机组成原理(计算机系统概述)

\quad

一. 计算机的发展

计算机系统 = 硬件 + 软件

软件
系统软件
应用软件
用来管理整个计算机系统: 比如操作系统 DBMS 语言处理程序
按任务需要编制成的各种程序: 比如抖音 王者荣耀

\quad

第一台电子计算机:ENIAC(1946)

\quad

硬件的发展

发展阶段逻辑元件优缺点
第一代电子管体积超大,耗电量超大
第二代晶体管体积、功耗降低, 出现面向过程的程序设计语言:FORTRAN,有了操作系统雏形
第三代中小规模集成电路计算机主要用于科学计算等专业用途,高级语言迅速发展,开始有了分时操作系统
第四代超大规模集成电路开始出现 “微处理器”、微型计算机、个人计算机(PC)萌芽, 操作系统:window、MacOS、Linux

\quad

微处理器的发展

微处理器的定义:
微处理器是由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。
微处理器能完成取指令、执行指令,以及与外界存储器逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。

微型计算机的发展以微处理器技术为标志
在这里插入图片描述
机器字长: 一次整数运算所能处理的二进制位数
\quad
\quad
\quad
在这里插入图片描述
故事是这样的:
肖克利发明了晶体管, 创建了公司卖晶体管
后来那八个人慕名加入了肖克利公司
由于肖克利管理公司能力欠佳, 那八人离开了肖克利公司,
被称为八叛徒的他们创立了仙童半导体公司

\quad

摩尔定律

摩尔定律揭示了信息技术进步的速度, 集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将提升一倍

也就是说
就是说我现在买了个2000元的晶体管, 过了18个月后,还用两千元就可以买到性能是之前两倍的晶体管

\quad

计算机目前的发展趋势

“两极分化”:
1.是微型计算机向更微型化、网络化、高性能、多用途方向发展(智能手表,手机)
2.是巨型机向更巨型化、超高速、并行处理、智能化方向发展(神威.太湖之光)

在这里插入图片描述

\quad

二. 计算机硬件的基本组成

\quad

计算机硬件的基本组成
早期冯诺依曼机的结构
现代计算机的结构

\quad

2.1 早期冯诺依曼机

\quad
在这里插入图片描述
“存储程序” 的概念是指将指令以二进制代码的形式事先输入计算机的主存储器, 电脑再一条一条的去执行, 而不是像之前的每执行一条程序就要手动接线
\quad
\quad
在这里插入图片描述
程序指令的解析是由控制器来决定的
控制器指挥程序运行
\quad

在计算机系统中, 软件和硬件在逻辑上是等效的

Eg: 对于乘法运算, 可以设计一个专门的硬件电路实现乘法运算, 也可以用软件的方式, 执行多次加法运算来实现

软件和硬件都可以实现某个功能
软件实现的话,性能更低, 当然成本也更低
硬件实现的话(可以设计运算器的结构),性能更高, 成本也更高

在这里插入图片描述
效率低的原因就是输出设备要从存储器里取出数据还需要通过运算器来完成
以运算器为中心

\quad

2.2 现代计算机的结构

\quad

在这里插入图片描述
现代计算机以存储器为中心
CPU=运算器+控制器

在这里插入图片描述

需要注意的是: 主机=内存+CPU, 而不是包含风扇和其他的
主存就是内存, 辅存是机械硬盘和固态硬盘

在这里插入图片描述
\quad
\quad
在这里插入图片描述

\quad

三. 各硬件的工作原理

\quad

3.1 主存储器的基本组成

在这里插入图片描述
MAR是地址寄存器
MDR是数据寄存器

CPU的读写操作与我们取快递类似
在这里插入图片描述

在这里插入图片描述
存储单元: 每个存储单元存放一串二进制代码
存储字长:存储单元中二进制代码的位数
存储字(word):存储单元中二进制代码的组合
(一个存储字可代表一个二进制数,也可代表一串字符,如存储字为0011011001111101,既可表示为由十六进制字符组成的367DH(ASCII码),又可代表16位的二进制数,此值对应十进制数为13 949,还可代表两个ASCII码:“6”和“}”。一个存储字还可代表一条指令。)
存储元:即存储二进制的电子元件,每个存储元可存1bit

在这里插入图片描述
例如:
MAR=4位 \quad ->总共可以有24个存储单元
MDR=16位 \quad ->每个存储单元可以存放16bit

\quad

1字节(Byte) = 8位(bit)固定的,注意B与b的区别
在16位的系统中(比如8086微机) 1字 (word)= 2字节(Byte)= 16(bit)
在32位的系统中(比如win32) 1字(word)= 4字节(Byte)=32(bit)
在64位的系统中(比如win64)1字(word)= 8字节(Byte)=64(bit)

\quad

3.2 运算器的基本组成

\quad
运算器:用于实现算术运算(加减乘除)、逻辑运算(与或非)的

在这里插入图片描述
ACC(累加器):用于存放操作数或运算结果
MQ(乘商寄存器):在乘除运算时,用于存放操作数或运算结果
X(通用操作数寄存器):用于存放操作数
ALU(算术逻辑单元):通过内部复杂的电路实现算术运算、逻辑运算,是运算器的核心部件

\quad

3.3 控制器的基本组成

在这里插入图片描述
CU(控制单元):分析指令,给出控制信号,是控制器的核心部件
IR(指令寄存器):存放当前执行的指令
PC(程序计数器):存放下一条指令地址,有自动加1功能

在这里插入图片描述

\quad
\quad

四. 计算机的工作过程

\quad
\quad
以c语言为例 运行y=a*b+c的过程
在这里插入图片描述
指令由操作码地址码构成
这个是16bit的指令(有16位二进制)
\quad
在这里插入图片描述
寄存器名加上括号的意思是寄存器里面的内容(比如(MAR=0))
Memory(存储器)

程序计数器PC指向第一条指令, 主存地址为0, PC存放的内容需要通过地址总线传送到MAR(地址寄存器)中, 也就是说控制器要向主存地址要0号地址的指令,而且是读操作, 那么MAR就去存储体里面找出0号地址所对应的指令取出来放到MDR(数据寄存器)
\quad
\quad
在这里插入图片描述
IR为指令寄存器, MDR的指令传到IR里面

\quad

在这里插入图片描述

IR会把操作码送到CU控制单元里面, CU就会分析这个操作码, 结果是取数操作, 所以把这条指令的地址码对应的数据取出来放进ACC寄存器中(地址码所对应的十进制数是5, 那么就在主存地址5中拿到原始数据是a=2,然后a=2就会被送到ACC累加寄存器中)

第1~4步是取指令的过程
第5步是分析指令
第6~9步是执行取数指令

在完成取指令之后pc会自动加1

在这里插入图片描述
在这里插入图片描述

MQ(乘商寄存器)

在这里插入图片描述
被乘数a先被放在X(通用寄存器), b被放在MQ里面, 最后CU会让ALU(算数逻辑单元)进行乘法运算, 最后把乘得的结果放到ACC里面

如果ACC放不下, 就会把结果的低位放在MQ里面

在这里插入图片描述
ACC存放加数, X存放被加数

在这里插入图片描述
在这里插入图片描述

存数指令, 会把ACC里面的值传到MDR,而且MAR里面是存数指令地址为8, CU会告诉存储体为写操作, 于是存储器就会根据MAR里的地址把MDR的值存在存储体里

在这里插入图片描述

CPU区分指令和数据的依据: 指令周期的不同阶段

在这里插入图片描述

现在的计算机通常把MAR、MDR也集成在CPU内

科普:CPU是超大规模的集成电路的一种,而集成电路都可以叫做芯片

链接: 王道考研计算机组成原理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值