本文主要根据袁春风老师《计算机系统基础》和中国石油大学(北京)克拉玛依校区边玲燕老师“计算机系统基础”课进行总结归纳,参考:计算机组成原理
第一章
冯诺依曼结构
冯诺依曼结构的关键:程序、实现存储。
早期的冯·诺依曼机以运算器为中心,且是单处理机,最根本的特征是采用“存储程序”原理,基本工作方式是控制流驱动方式!
冯诺依曼结构的计算机主要包含五个部分:运算器,寄存器,控制器,I/O。其中:
- 运算器:进行数字逻辑等运算。
- 寄存器:存放数据/指令,二者形式相同,但是计算机可以进行区分。
- 控制器:自动执行取指令操作。
CPU和主存之间通过一组总线相连,总线中有地址、控制和数据3组信号线。MAR中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。
IR存放当下欲执行的指令;PC存放下一条指令的地址;
MAR存放欲访问的存储单元地址;MDR存放从存储单元取来的数据!
地址译码器是主存的构成部分,不属于CPU;地址寄存器虽然一般属于主存,但是现代计算机中绝大多数CPU内集成了地址寄存器!
关于CPU存取速度的比较:寄存器(CPU内部)> Cache(高速的SRAM) > 内存 (SDRAM)
距离CPU越近,存取速度越快。
指令与程序
计算机内部由二进制表示指令和数据,其中指令由操作码和地址码组成。一串指令组成程序。
计算机如何工作
执行前:数据和指令应事先放在存储器中,每条指令和每个数据都有相应的地址,指令按顺序存放,由OP和ADDR组成,起始地址置于PC。
计算机的工作流程分为七步:
- 根据PC取指令
- 指令译码
- 取操作数
- 执行指令
- 回写结果
- PC+1
- 执行下一条指令
计算机语言
由高级语言转换到汇编语言的过程叫做编译,由汇编语言转换到机器语言的过程叫做汇编,边翻译边执行的叫做解析。
机器语言
人看不懂,机器看得懂,所以运行效率高,但是写着很麻烦。机器语言是计算机唯一可以直接识别和执行的语言。
汇编语言
用助记符和标号(与机器指令一一对应)来表示指令的语言。
优点:
- 不会因为增减指令而删改其他指令
- 无需记忆指令编码,编写方便
- 可读性比机器语言更好
需要用汇编程序将汇编语言转换成机器语言(不然机器看不懂)!
指令:包含操作码和操作数或其他地址码
缺点:描述复杂程序过长,不同结构的机器上无法运行(Java::smirk:Program once running everywhere)
机器语言和汇编语言都是面向机器结构的语言,所以是机器级语言
编译和解释
编译:将高级语言的源程序转换为机器语言目标程序,执行时只需启动目标程序即可(生成可执行文件)
解释:将高级语言逐条翻译成机器指令并立即执行,不生成目标文件(无可执行文件),翻译一条后立即执行这条语句,运行速度较慢,效率比较低,但是跨平台性较好。
高级语言
高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
计算机系统层次结构
硬件系统和软件系统共同构成了一个完整的计算机系统。其中硬件是指有形的物理设备,是计算机系统中实际物理装置的总称,软件是指在硬件上运行的程序和相关的数据及文档。
对某一功能来说,其既可以用软件实现,又可以用硬件实现,则称为软硬件在逻辑上是等效的。
计算机软件
软件按其功能分类,分为系统软件和应用软件。
系统软件是一组保证计算机系统高效正确运行的基础软件,通常作为系统资源提供给用户使用。主要有:操作系统,数据库管理系统,语言处理程序,分布式软件系统,网络软件系统,标准库程序,服务性程序
应用软件是用户为解决某个领域中的各类问题而编制的程序
第二章
机器级数据
- 数值数据:无符号整数,带符号整数,浮点数(实数)
- 非数值数据:逻辑数(包括位串),西文字符和汉字
计算机内部所有信息都由二进制编码
为何使用二进制:
- 制造两个稳定态的物理器件比较容易
- 二进制编码,计数,运算规则比较简单
- 正好与逻辑(命题)真假对应,便于进行逻辑运算
- 可方便的用逻辑电路实现算术运算
机器数:用0/1编码的计算机内部的0/1序列
真值:真正的值
数值数据的表示
数值数据表示的三要素:进位计数制,定浮点表示(解决小数点问题),如何二进制编码(解决正负号)
二进制编码
原码
原码,用原0/1序列表示数据。缺点:0的表示不唯一,不利于编程 加减运算不统一 需额外对符号位进行预处理,不利于硬件设计 当a<b时,实现a-b比较困难
移码
将每个数值加上一个偏置常数(bias),n位取2^(n-1)或2^(n-1)-1。
0的移码表示唯一。当bias为2^(n-1)时,移码和补码仅第一位不同。
用途:用来表示浮点数的阶,便于浮点数的对阶操作
补码
一个负数的补码等于模减去该负数的绝对值,即:各位取反,末尾+1
[X]补=2^n+X(mod 2^n)
32位机中:
int 32位 4字节
short 16位 2字节
char 8位 1字节
变形补码:双符号位,用于存放可能溢出的中间结果
补码的真值:符号位为0,不变。符号位为1,数值位各位取反,末尾加一
相同位数的补码和移码具有相同的数据表示范围
零的补码和移码表示不同:1000(移码),0000(补码)
第六章
存储器概述
按照在计算机的作用分类
- 主存储器,简称主存,又称为内存,CPU可以直接随机进行访问,可与cache等交换数据,特点:容量小,存取速度快,价格高
- 辅助存储器 辅存,又称外存,存放永久性信息,调入主存后才能被CPU访问。特点:容量大,存取速度慢,便宜
- 高速缓冲器:Cache,位于主存和CPU之间,速度与CPU匹配,容量小,贵。
按存储介质分类
磁表面,磁芯,半导体,光存
按存取方式分类
- RAM:存储器的任意存储单元都可以随机存取,且与物理位置无关,优点:读写方便,使用灵活
- ROM:只能随机读出,不能写入。断电内容不会丢失,与RAM共同构成主存的一部分。
- 穿行访问存储器:需要按照物理位置的先后顺序寻址,包括顺序存储存储器(磁带)和直接存取存储器(磁盘,光盘)
顺序存储:磁带,参考磁带需要倒带等操作
主存储器
主存由DRAM实现,靠近处理器的Cache由SRAM组成,都属于易失性存储器。DRAM速度较慢,较便宜。
SRAM存取速度快,集成度低,功耗大,价格昂贵。
DARM易集成,价位低,容量大,功耗低。依靠电荷存储信息,需要刷新,异步刷新不存在“死时间”。刷新对CPU透明,根据行刷新(所以Cache一般行少)
只读存储器(ROM)
ROM结构简单,位密度比可读写存储器高,具有非易失性,可靠性高。
ROM分类
ROM可分为:MROM,PROM,EPROM,Flash和SSD
计算DRAM引脚数:地址线引脚复用技术(行列减半)+数据线+行通选+列通选+读/写控制线(根据题意选择)
U盘又称闪存(Flash),所以是ROM类型存储器