学习《计算机组成原理》的笔记
冯诺依曼计算机的特点
1945年,数学家冯诺依曼基于当时在秘密开发的 EDVAC 写了一篇报告First Draft of a Report on the EDVAC(第一份草案),在草案中描述了存储程序计算机的组成,以此概念为基础的各类计算机,统称为冯诺依曼机。其特点如下:
- 计算机由运算器,处理器,控制器,输入设备和输出设备五大部分组成
- 指令和数据以同等地位存放在存储器内,并可按地址寻访
- 指令和数据均以二进制码表示(对十进制计算机的突破)
- 指令由操作码和地址码组成(高位为操作码,低位为地址码)
- 指令在存储器内按顺序存放(核心概念“存储程序”)
- 以运算器为中心
冯诺依曼计算机硬件框图
运算器为中心
典型的冯诺依曼机是以运算器为中心的,I/O设备(输入设备和输出设备)与存储器的数据传输都需要通过运算器。图中实线为数据线,虚线为控制线。
五大部件的功能:
- 运算器:完成算数运算与逻辑运算
- 控制器:控制、指挥程序的运行
- 存储器:存放数据和程序
- 输入设备:将信息转换成机器能识别的形式
- 输出设备:将结果转换成人熟悉的形式
缺点:所有的操作都要经过运算器,导致运算器会非常繁忙,运算器成为计算机的瓶颈
以存储器为中心
现代的计算机已转化为以存储器为中心。
但上图仍然非常的复杂,可以用更加层次化的方式表述现代计算机的硬件结构。
根据上图,现代计算机可认为由三大部分组成:CPU、I/O设备以及主存储器M.M,而CPU和M.M合起来可称为主机,可以得到层次化的硬件结构图。
计算机的工作过程
上机前的准备
大致可归纳为三个步骤:
- 建立数学模型。将实际问题抽象为数学问题。
- 确定计算方法。将数学模型中复杂的数学方程转化为适合计算机运算的加减乘除四则运算。
- 编制解题程序。将整个运算步骤写成计算机一一对应的机器指令。
机器指令举例:
计算机解题过程
以计算ax^2+bx+c为例:
为了更形象的了解解题过程,要对计算机组成更加的细化。
图中的英文名称解释:
X:操作数寄存器,存放加减操作中的加数、减数,乘法操作中的被乘数,除法操作中的除数
ACC:累加器,加减法操作中,ACC中存放的数与X中存放的数相加减,结果存放在ACC中
MQ:乘商寄存器,顾名思义,只负责乘除操作,乘法操作中存放乘数,与X中存放的被乘数相乘,因为二进制乘法,乘积的位数会变成两倍,将高位存放在ACC中,低位存放在MQ中;除法操作时存放商,有余数的话存放在ACC中
MAR:存储器地址寄存器,存放要访问的存储单元的地址,其位数对应存储单元的个数(如MAR是10位,则有2^10=1024=1K个存储单元)
MDR:存储器数据寄存器,存放从存储体中最近取出的数据或者将要存入存储体的数据,其位数与存储字长(8位,16位,32位等)相等,这里的数据也包括代码
PC:程序计数器,存放当前欲执行指令的地址,与MAR直接相连,完成当前指令后会自动+1,指向下一个指令的地址
IR:指令寄存器,存放当前指令,指令来自于主存的MDR,IR中的操作码传给CU来分析指令要做什么操作,地址码作为操作数的地址传给主存的MAR
每一条指令从开始到结束都要经过取指、分析和执行三个过程。
以取数指令为例说明完成一条指令的具体过程:
整个取数指令的操作过程分为8个步骤,其中步骤1~4是取指过程,步骤5是分析过程(具体分析过程在CU内完成),步骤6~8是执行过程。
计算ax^2+bx+c的整个过程为:
- 将程序通过输入设备送至计算机
- 程序首地址放入PC
- 启动程序运行
- 取指令 PC—>MAR—>M—>MDR—>IR
- 分析指令 OP(IR)—>CU
- 执行指令 Ad(IR)—>MAR—>M—>MDR—>ACC
… - 打印结果
计算机硬件的主要技术指标
机器字长
机器字长是指CPU一次能处理数据的位数,通常与CPU中的寄存器位数有关。机器字长会影响计算机的精度与运算速度,比如计算机A的机器字长为64位,计算机B的机器字长为16位,A与B同时计算两个64位数的加法,A机器只需要1次加法运算,B机器要进行4次加法运算(每次只能算16位数)。
存储容量
主存的存储容量=存储单元的个数 X 存储字长,由MAR,MDR计算得到
运算速度
衡量指标如下:
- 主频
- 核数,每个核支持的线程数
- 吉普森法
- CPI 执行一条指令所需的式中周期数
- MIPS 每秒执行百万条指令
- FLOPS 每秒浮点运算次数
拓展内容
图灵机
1936年5月,数学家图灵发表一篇题为《论数字计算在决断难题中的应用》的论文,论文中提出一种计算装置,用来模拟人的计算过程,后被称为“图灵机”,图灵机不是具体的计算机,而是一种计算概念、计算理论。
逻辑结构上图灵机有四个部分组成
- 一个无限长的纸带,纸带被划分为一个个连续的方格,每个格子可以存储一个数字或符号
- 一个读写头,读写头可以在纸带上左右移动,并可以读、修改格子上的数字或符号
- 内部状态存储器,该存储器可以记录图灵机的当前状态,并且有一种特殊状态为停机状态
- 控制程序指令,指令可以根据当前状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作(左移还是右移),并改变状态存储器的值,令机器进入一个新的状态或保持状态不变。
两者区别与联系
- 图灵机是一个计算机的理论模型,侧重于理论抽象,是一种有穷的、构造性的问题的问题求解思路,图灵认为凡是能用算法解决的问题也一定能用图灵机解决,本质上是状态机,;冯诺依曼机侧重于硬件抽象,提出了程序存储计算机,可以看做是图灵机的具体实现。
- 图灵机的纸带应对应诺依曼计算机体系中的存储,读写头对应输入和输出,程序控制指令对应着运算。
本片文章就分享到这了,有任何问题可以在下方评论。
更多关于内容可以移步我的我的博客,热爱生活,分享知识。