微机原理知识整理(1) 计算机系统和微处理器
第1章 计算机系统概述
1.1 计算机系统简介
1.1.1 计算机的分类及发展
计算机的分类
- 电子数字计算机:目前人们所说的计算机都是指电子数字计算机
- 按用途分类:
- 专用计算机:针对某一特定任务而设计制造,结构简单、拥有固定的存储程序(如工业控制计算机、嵌入式系统)
- 通用计算机:功能齐全,适应性强
- 按性能和规模分类:巨型机(超级计算机)、大型机、服务器、中小型机、微型计算机、单片机
计算机的发展(五代划分)
- 第一代:1946年开始的电子管计算机
- 第二代:1956年开始的晶体管计算机
- 第三代:1964年开始的中小规模集成电路计算机
- 第四代:1972年开始的大规模/超大规模集成电路计算机
- 第五代:1991年开始的巨大规模集成电路计算机,单片计算机开始出现
摩尔定律:每18个月,集成度翻一番,速度提高一倍,价格降低一半
1.1.2 计算机系统的组成
计算机系统 = 硬件系统 + 软件系统
硬件系统:构成计算机的所有实体部件的集合(电路、机械等物理部件)
软件系统:
- 程序:用计算机语言编写的命令序列的集合
- 文档:为了便于了解程序所需要的阐述性资料
冯·诺依曼计算机(存储程序控制)
- 五大基本部件:运算器、存储器、控制器、输入设备、输出设备
- 指令和数据均以二进制编码表示,采用二进制运算
- 采用存储程序的方式,程序和数据存放在同一存储器中
- 指令在存储器中按执行顺序存放,由**程序计数器(PC)**指明要执行的指令地址
- 早期:以运算器为中心;现代计算机:以存储器为核心
现代计算机系统
- 中央处理器(CPU):运算器和控制器集成在一片集成电路中
- 主机:CPU和内存构成
- 外围设备/外部设备(外设):主机以外的其他硬件设备(输入设备、输出设备、辅助存储器)
- 现代计算机以存储器为中心,采用总线结构
总线(系统总线)
- 定义:构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路
- 分类:
- 地址总线(AB):单向,用来传送地址信息
- 数据总线(DB):双向,用来传送数据信息
- 控制总线(CB):单/双向(部分双向),用来传送各种控制信号
- 都是三态总线
I/O接口(适配器)
- 存在于CPU与外设之间,是CPU与外围设备进行信息交换的中转站
- 功能:保证外围设备采用计算机系统所要求的形式发送和接收信息
存储系统(三级存储系统)
- 主存储器(RAM):半导体材料组成的随机读写存储器,CPU直接访问,存取速度快但容量小
- 辅助存储器(外存储器):容量大、价格低,但存取速度较慢,不能由CPU直接访问
- 高速缓冲存储器(Cache):存取速度比主存更快,但容量更小,用来存放当前正在执行的程序中的活跃部分
- 内存储器(内存):ROM、RAM、Cache的总称
软件系统分类
- 系统软件:负责管理、控制和维护计算机的各种硬件资源(操作系统、数据库管理系统、语言处理程序等)
- 应用软件:专业人员为各种应用目的而开发的程序
1.1.3 计算机系统的主要性能指标
字长
- 位(bit/b):计算机内部数据存储的最小单位
- 字节(Byte/B):最基本的存储单元,数据处理的基本单位,1B = 8b
- 字(Word):计算机进行数据处理时,一次存取、加工和传送的数据长度
内存容量
- 内存储器(内存)就是存储程序和数据的地方
- 单位:B、KB、MB、GB(1KB = 2^10 B = 1024B,1MB = 2^20 B = 1048576B)
- 每个存储单元必须有一个固定的内存地址
时钟频率
- 时钟脉冲的频率又称为主频
- 单位:Hz、MHz、GHz
1.2 微处理器的发展
Intel微处理器发展历程
- Intel 4004:世界上第一块微处理器芯片(4位)
- Intel 8008:第一个8位通用微处理器
- Intel 8080/8085:成熟的8位微处理器
- Intel 8086/80286:16位微处理器
- IA32架构:32位微处理器(80386、80486、Pentium系列等)
- IA64位微处理器:2000年Itanium推出,标志Intel进入64位时代
CISC vs RISC
- CISC(复杂指令系统计算机):指令长度不等、执行时间不等、指令类型多、有些指令长且复杂、寻址方式复杂、内存定位复杂、采用微程序结构
- RISC(精简指令集计算机):
- 长度尽可能相等
- 执行时间尽可能相同
- 指令类型尽可能减少
- 缩短指令长度,规范指令格式
- 寻址方式简化,简化访问内存操作
- 增加通用寄存器,简化处理器结构
- 使用VLSI技术,增强处理器的并行处理能力
第2章 微型计算机系统基础
2.1 指令系统
程序设计语言
- 机器语言:机器能直接识别的程序语言(二进制代码)
- 汇编语言:用约定的文字、符号和数字表示指令(汇编指令),需通过汇编程序翻译成机器语言
- 高级语言:接近数学语言,通过编译程序或解释程序翻译为机器语言
处理器体系结构
- 指令集体系结构(ISA):CPU物理硬件和上层软件之间的接口
- 系列计算机:具有相同的基本指令系统和基本体系结构,但具有不同组成和实现的一系列不同型号的机器
2.2 计算机中的数据表示与编码
2.2.1 数与数制
常用数制:二进制、八进制、十进制、十六进制
数制转换
- r进制数转换为十进制数:按位权展开后相加
- 十进制数转换为r进制数:
- 整数部分:除r取余法
- 小数部分:乘r取整法
- 二进制与八进制/十六进制转换:每3位/4位二进制对应1位八进制/十六进制
2.2.2 数据格式
定点数表示方法
- 定点纯小数:小数点固定在数值部分的最高位之前
- 定点纯整数:小数点固定在数值部分的最后面
浮点数表示法
- 由两部分构成:阶码和尾数
- 阶码:指数部分,决定浮点数的表示范围
- 尾数:表示数值的有效数字,是纯小数,决定浮点数的精度
- 规范化浮点数:尾数部分为纯小数,尾数第一位不为0
- IEEE 754标准:规定了32位浮点数和64位浮点数的标准格式
2.2.3 二进制数的编码及运算
机器码与真值
- 机器码:一个数在机器(计算机)中的表示形式
- 真值:一般书写表示的实际数值数据
无符号数
- 机器码中所有位均作为数值位处理
- 表示范围:0 ≤ N ≤ 2^n - 1
- 最常见的无符号整数是地址,双字长数据的低位字也是无符号整数
有符号数
- 用机器码的最高位来表示其正负符号(0表示正数,1表示负数)
- 常用机器码:原码、反码、补码
- 大多数微机采用补码编码
原码
- 正数的原码就是它本身
- 负数的原码:符号位取1,数值部分是真值的绝对值
- 缺点:+0和-0的原码不同,加减运算复杂
反码
- 正数的反码就是它本身
- 负数的反码:符号位取1,数值部分按位取反
补码
- 核心思想:用补码表示时,可以把负数转换为正数,减法转换为加法
- 正数的补码就是它本身
- 负数的补码:符号位取1,数值部分按位取反后末位加1
- 优点:+0和-0的补码形式相同(0只有一种表示形式)
- 表示范围:-2^(n-1) ~ 2^(n-1) - 1
补码运算
- [X + Y]补 = [X]补 + [Y]补
- [X - Y]补 = [X]补 + [-Y]补
- 特点:
- 进行加法运算时,把符号位和数值位一起进行运算(若符号位有进位,则丢掉)
- 减法运算可以转换为加法运算,不必专门配减法器,大大简化了硬件设计
- 无符号数和有符号数的运算是兼容的
溢出检测
- 单符号位法:最高有效位产生进位而符号位无进位时,产生正溢出;反之产生负溢出
- 双符号位法(变形补码/模4补码):符号位出现"01"表示正溢出,"10"表示负溢出
2.2.4 十进制数的编码及运算
BCD码(二进制编码的十进制数)
- 最常见:8421BCD码
- 非压缩BCD码:一字节中仅存放1位十进制数的BCD码,低4位表示相应十进制数位,高4位没有意义
- 压缩BCD码:一字节中存放2位十进制数的BCD码
BCD码加减运算规则
- 两个BCD码相加,如果和小于或等于9,则不需要修正
- 如果相加之和大于9,则需加6修正
2.2.5 ASCII字符代码
ASCII码组成
- 32个控制字符:编码值0~31(如回车CR、换行LF)
- 空格字符SP:编码值32
- 删除控制码DEL:编码值127
- 94个可印刷字符
2.3 微型计算机硬件系统组成
2.3.1 微处理器与微型计算机
基本概念
- 微处理器(μP/MP):将运算器和控制器集成在一起的中央处理器部件
- CPU:巨型机、大型机和服务器的中央处理器
- MPU(Microprocessing Unit):微处理器
- 微型计算机(μC/MC):以微处理器为核心,配上内存储器、输入/输出接口电路及系统总线所组成的计算机
- 微型计算机系统(μCS/MCS):以微型计算机为中心,配以相应的外围设备、电源、辅助电路以及系统软件所构成的计算机系统
微处理器结构模型关键部件
- ALU:运算、移位,参与运算的数一个来自累加器A,另一个来自内部数据总线
- 寄存器阵列:用于存放数据和运算结果,由若干通用/专用寄存器组成
- 数据寄存器:暂时存放CPU和内存之间数据交换的数据
- PC(程序计数器):存放下一条将要执行的指令地址,取出地址后自动加一
- AR(地址寄存器):存放操作数或正要取出的指令地址,PC中取出的地址会先送入AR中进行操作
- 标志信号(F/FR/PSW):用来存放执行指令结果或状态的标志信号
2.3.2 微处理器中主要的寄存器
CPU通过寄存器来存放指令、数据和地址
六类基本寄存器
- 指令寄存器(IR):保存当前正在执行的一条指令
- 程序计数器(PC):指出下一条将要执行的指令在主存储器中的地址
- 程序执行前,将程序首地址送入PC
- CPU自动递增PC内容
- 遇到转移指令时,下一条指令的地址由转移指令的地址码字段来指定,而不是顺序递增
- 地址寄存器(AR):保存CPU当前所访问的主存单元的地址
- 数据寄存器(DR/数据缓冲寄存器):作为CPU和主存、外设之间信息传输的中转站,弥补速度差异
- 通用寄存器(R0~Rn):为运算器提供工作区,暂时保存操作数或运算结果,可用作地址指示器、变址寄存器、堆栈指示器等
- 程序状态字寄存器(PSW):保存当前各种运算状态条件及程序的工作方式
- 标志位:进/借位标志(C)、溢出标志(O)、结果为零标志(Z)、结果为负标志(N)、符号标志(S)等
2.3.3 微型计算机中的存储器与地址分配
内存组织
- 内存按字节来组织,每字节有一个地址
- CPU访问内存需要给出:地址 + 读/写操作 + 数据(写操作时)
I/O端口编址方式
- I/O端口:能够被CPU直接访问的寄存器(数据端口、状态端口、控制端口)
- 统一编址:I/O端口和内存储器统一编址,从内存空间中划出一个子空间给I/O端口,用访问内存的指令对I/O端口进行操作
- 独立编址(单独编址):内存和I/O端口地址空间各自独立,对I/O端口的操作使用专门的输入/输出指令(I/O指令)
- Intel系列机普遍采用I/O端口单独编址方式
堆栈
- 定义:按**后进先出(LIFO)**原则进行存取的存储结构
- 用途:保存返回地址、保存断点地址、保护现场和恢复现场
- 子程序调用和中断处理都需要使用堆栈
2.4 输入/输出系统
2.4.1 信息交换方式
1. 程序查询方式
- CPU首先检查外设是否"准备好",若没有准备好,则CPU重复查询其状态,直至外设准备好才能进行数据传送
- 缺点:CPU花费大量时间在状态查询中,效率低
2. 中断控制方式
- 外围设备用来"主动"通知CPU,报告它是否已进入准备就绪状态
- CPU不必花费时间进行循环测试,从而节省了CPU宝贵的时间
- 当CPU响应中断时,暂停运行正在执行的程序(主程序),转去执行I/O操作程序(中断服务子程序/中断处理子程序),结束后返回原程序继续执行
3. 直接存储器存取方式(DMA)
- 完全由硬件执行I/O交换的方式
- DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,直接在内存和外围设备之间进行
- 优点:数据传送速度很高,传送速率仅受到内存访问时间的限制
- 适用:主存和高速外围设备之间大批量数据交换
4. 通道方式
- 通道:具有特殊功能的处理器(输入/输出处理器),分担CPU的一部分功能,实现对外围设备的统一管理
5. 外围处理机方式(PPU)
- 通道方式的进一步发展
- 外围基本上独立于主机工作,结构更接近于一般的处理机,甚至就是微小型计算机
2.4.2 程序中断方式
中断的基本思想
- 主程序只是在设备数据准备就绪时,才去处理进行数据交换
- 在速度较慢的外围设备准备数据时,CPU照常执行自己的主程序
- CPU和外围设备的一些操作是并行进行的
中断源
- 能够引发中断的事件称为中断源
- 内部中断源:计算溢出、指令的单步运行、执行特定的中断指令等
- 外部中断源:外设的输入/输出请求、定时时间到、电源掉电、设备故障等
中断处理过程
- 中断请求:中断源向CPU发出中断请求
- 中断响应:CPU暂停当前程序的执行,转去执行相应的中断处理程序
- 保护断点:保存被打断的程序中紧接当前指令的下一条指令的地址
- 保护现场:保存被打断程序中CPU内部各个寄存器(包括标志寄存器)的值
- 识别中断源:找到中断源服务程序入口地址
- 中断处理:执行中断服务子程序
- 中断返回:返回被中断程序继续执行,包括恢复现场和恢复断点两部分工作(堆栈)
中断响应特点
- 由CPU的中断允许触发器开启中断
- CPU在现行指令结束后响应中断
- CPU在指令执行周期的最后一个时钟周期(T状态)才采样检测中断请求信号线(INTR)是否有中断请求信号,若有且开启中断,才会开始处理中断
中断系统的功能
- 进入中断和退出中断
- 对某些中断进行屏蔽,并在必要时开放
- 进行优先权排序
- 提供中断嵌套的能力
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Valproate!
评论
