北京邮电大学 信通院 计算机原理与应用笔记(一)

(从零开始的小白学习生活)


课程内容

微处理器指令系统接口应用与开发
微处理器
Intel 8086处理器
Arm处理器
Arm Cortex-M4
Arm处理器
1. 指令系统特点
2. 寻址方式
3. 核心指令
4. 汇编程序设计
1. 输入/输出接口基础
2. 接口设计
3. 异常和中断
4. 常用总线
Cortex-M4编程

第一章

微处理器,微型计算机,微型计算机系统

  • 微处理器:运算器+控制器,也称CPU
  • 微型计算机(微机):总线把I/O接口、运算器、控制器(CPU)和RAM、ROM(存储器)组合
  • 单片机 / 单板机 / 多板机
  • 微型计算机系统:微机+外设设备+系统软件

三者关系用图片表示如下:
关系示意图

微处理器(CPU)

CPU的功能(微型计算机的核心部件)

  1. 进行算术和逻辑运算(算术逻辑单元ALU
  2. 暂存少量数据(累加器AC、通用寄存器组RS、程序计数器PC、标志寄存器FR、堆栈指针SP
  3. 对指令译码并执行(指令译码器ID、指令寄存器IR、控制逻辑阵列PLA
  4. 与存储器、外设进行数据交换(地址寄存器MAR、数据寄存器MDR、总线BUS
  5. 提供整个系统的定时和控制信号(总线BUS
  6. 响应其他部件发出的中断请求(BUS

各部件的功能

  • 算术逻辑单元ALU:算术运算、逻辑运算(不同系统的ALU功能差别很大)
  • 累加器AC & 通用寄存器组RS:保存数据
  • 程序计数器PC:存放下一条指令的地址,并每次自动+1(控制程序执行的顺序)
  • 堆栈指针SP:存放栈顶地址
  • 标志寄存器FR:存放执行结果的特征、处理器状态
  • 区分:指令寄存器IR地址寄存器MAR数据寄存器MDR

指令流水线

  • 传统CPU执行程序的过程:取指令与执行指令串行进行
  • 流水线处理方式:各个部件并行工作,若干条指令的不同执行阶段可以并行执行
  1. 好处
  • 提高了执行效率
  • 降低了对存储器的存取速度的要求
  1. 分类
  • 二级流水线:取指令+执行指令
  • 三级流水线:取指令+译码指令+执行指令
  • 六级流水线:(1)取指令(2)译码指令(3)计算操作数地址
    (4)取操作数(5)执行指令(6)写操作数

示意图:
流水线示意图

  1. 备注
  • 流水线的级别实质上代表了上图矩形之间重叠的程度
  • 流水线级数并不是越多越好

超标量技术

  • 标量CPU:具有一条通用的指令执行流水线的处理器
  • 超标量CPU:具有两条及以上的指令执行流水线的处理器,可同时执行2条或2条以上指令的处理器

CISC 与 RISC 技术

CISCRISC
全称复杂指令集计算机精简指令集计算机
英文Complex Instruction Set ComputerReduced Instruction Set Computer
特点硬件(处理器)复杂,软件简单,芯片成本高硬件简单,软件(编译器)复杂,芯片成本高
高级语言支持硬件完成软件完成
指令集指令集庞大,长度不同简单的单周期指令,长度相同
寄存器数目寄存器较少寄存器较多

微型计算机

两大结构

  1. 冯诺依曼结构(即普林斯顿结构)
    冯诺依曼结构
  • 由运算器、存储器、控制器、输入和输出设备5大部分组成;
  • 数据和程序都以二进制代码形式表示,且不加区别地存放在同一个存储器中,由统一总线访问,统一编址;
  • 由控制器从存储器中依次取出指令并执行(存储程序原理)。
  • 缺点:数据和指令的存取无法同时进行。
  1. 哈佛结构
    哈佛结构
  • 指令和数据分开存储,便于并行处理;
  • 独立的地址和数据总线。

微型计算机组成

冯诺依曼计算机结构示意图:
冯诺依曼计算机结构

  1. 总线
  • 计算机系统各功能模块间传递信息的公共通道;
  • 一般由总线控制器、总线发送器、总线接收器以及一组导线组成;
  • 在微型计算机中,根据总线的位置和应用场合,将总线分为:片内总线、片总线(局部总线)、内总线(系统总线)和外总线(通信总线)。
  • 系统总线包括:
数据总线DB地址总线AB控制总线CB
方向CPU与其他部件双向由CPU单向送出CPU与其他部件双向
作用传输数据传输地址传输控制信号
备注条数是每个单元可以存储数字的位数条数是可以寻址的单元的位数
  • 通过与系统总线相连,各功能部件之间的关系 转变为 各部件面向系统总线的单一关系
  • 为系统功能的扩展、更新和产品的标准化、通用性提供了良好的基础。
  1. 存储器
  • 按照存储器与CPU的关系,分为内存储器(主存)和外存储器(辅存)。
  • 内存储器:CPU直接随机存取,速度快,体积小,集成度高,外部电路简单,容量较小;
  • 外存储器:不能由CPU直接访问,速度慢,容量大,成本低,数据能长期保存。
  • 为协调速度、容量、成本之间的关系,目前各类计算机广泛采用由高速缓冲存储器、内存储器和外存储器组成的 三级存储结构
  • 分层的存储器系统:
  • 0层:CPU内部存储器 速度最快,数量少
  • 1层:高速缓冲存储器CACHE(1级,2级)静态RAM(SRAM)
  • 2层:主存储器 动态RAM(DRAM)
  • 3层:大容量的磁盘存储器,虚拟存储技术
  • 4层:保留需长期存储暂时不用的数据,磁盘或光盘
  1. 输入/输出设备
  • 除主机(CPU和内存)以外的其他机电或电子设备统称 外部设备/外围设备 ,简称 外设
  • 由于外设的结构、工作原理、速度、信号形式等各不相同,所以不能直接挂接到系统总线上,而要通过输入/输出适配器,即I/O接口

微型计算机的分类

  • 结构形式来分:
  1. 单片机:将CPU、一定容量的存储器、I/O接口及时钟发生器集成在一块芯片上的单芯片式微型计算机,又被称为微控制器
  2. 单板机:将微处理器、一定容量的存储器、输入/输出接口。简单的外设(键盘、LED显示器)、辅助设备通过总线装在一块印刷电路板上的微型计算机。
  3. 系统机(多板微型计算机):将单板机模块、存储器模块、I/O接口等模块组装在一块主机板上,通过主机板上的系统总线和各种外设适配器连接键盘、显示器、打印机、光驱、软硬盘驱动器,再配上电源……个人计算机就是多板微型计算机系统。
  • 数据总线宽度(即一次操作中所能传送的二进制位数的最大值)来分:4位、8位、32位、64位机。

  • 应用来分:通用机(适应性强)和专用机(有效、经济、快速)

微型计算机系统

微机系统示意图

微型计算机系统的性能指标

  • 字长:字长越长,有效位数越多,精度越高。
  • 主存容量
  • 主频
  • 运算速度
  • 系统可靠性:平均无障碍时间、可维护性、可用性
  • 系统兼容性
  • 性能价格比

嵌入式系统及ARM处理器体系

嵌入式系统特征

  • 软件硬件可裁剪
  • 软件要求固件化
  • 适用于对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统

对比

ARM体系

从ARMv7架构开始以Cortex命名,并分成三个系列:

  • Cortex-A 应用处理器:面向移动计算、智能手机、服务器等应用的高端处理器。
  • Cortex-R 实时处理器
  • Cortex-M 微控制器

计算机中数的表示与编码

十进制、二进制、八进制、十六进制的相互转换

注意事项:

  • 二进制数字后面加B,八进制加O,十六进制加H,十进制加D或者不加;
  • 数码的个数称为基数R,逢R进一;
  • 小数点右移一位相当于乘基数R,反之相当于除以R。

数制之间的转换:

  • R进制数转换为十进制数:“按权展,求并和”
  • 十进制数转换为R进制数:
    • 整数部分的转换:“除R取余”,先除出来的余数是低位,从下往上抄
    • 小数部分的转换:“乘R取整”,先乘出来的整数是高位,从上往下抄
  • 二进制与八进制、十六进制之间的转换:分割成三位和四位

带符号数的表示

真值:机器数所代表的实际数值,一般写成十进制数的形式。

原码:最高位是符号位,正数为0,负数为1,其余位为数值位,代表数字的绝对值,按照二进制的常规形式进行转换。

反码:正数的反码与原码相同,负数的反码为它的绝对值的正数的原码全部按位取反(包括符号位)。

补码:正数的补码与原码相同,负数的补码为它的反码+1。


由反码/补码求真值

  • 正数的原码=反码=补码=二进制数,直接按权展求并和即可得到真值。
  • 负数反码求真值:若是负数(最高位为1),按位取反转换为十进制,得到绝对值,再对该十进制数取负即可。
  • 负数补码求真值
  • 若是负数(最高位为1),按位取反转换为十进制,+1,得到绝对值,再对该十进制取负即可。(求反加一,加符号位)
  • 即:[[x]补]补 = x

原码和补码的特点对比

原码补码
(1)简单,直观;
(2)0的表示不唯一,有+0和-0两种形式;
(3)加减法运算复杂。
(1)0的补码只有一个;
(2)加减法运算方便;
(3)机器字长为n,则补码表示的整数范围为-2^(n-1) ~ 2^(n-1)-1

注:对于八位来说,0的补码是00000000,-128的补码是10000000。

即:在反码的表示体系中,+0和-0是重合的,而补码反码的表示范围向右整体平移了一个单位,11111111作为反码表示-0,作为补码却表示-1;10000000作为反码表示-127,作为补码却表示-128。

如下表所示:

真值原码反码补码
+0000000000000000000000000
-0100000001111111100000000
-1100000011111111011111111
+127011111110111111101111111
-127111111111000000010000001
-128//10000000

补码的运算

  • 原理:[A]补 + [B]补 = [A+B]补
  • 注意只有正数的补码等于原码!!!
  • 加完之后记得把补码还原成真值!!!
  • 需要判断是否发生溢出:如果带符号数的运算超出了计算机可以表示的范围,产生不正确的答案,则发生溢出。只有同符号的数相加才会发生溢出。
  • 正向溢出和负向溢出
  • 注:溢出的原因是计算机的位长限制,当数值位的进位达到符号位时,若把多出来的最左边一位作为符号位,和仍然是正确的答案。
  • 可以通过扩展数的位数防止溢出。正数扩展,高位全部加0,负数扩展,高位全部加1。

八位纯小数的补码:

由下表可见规律:

真值原码补码
+120000110000001100
+12/1280.0001100
-121000110011110100
-12/1281.1110100

即:m除以2^7的补码,等于m的补码在符号位右边加一个小数点,即:整数部分的个位是符号位。

补码的表示范围是:-1 ~ +127/128


移码

  • 又称:余码、增码或偏移二进制码。
  • 与补码的关系:符号位相反,数值位相同。

数的定点表示与浮点表示(针对小数)

  • 定点表示:小数点的位置是固定不变的。运算简便,但表示范围小。
  • 浮点表示:小数点的位置是浮动的。表示范围大,精度高,但运算复杂,成本高。

原理:一个二进制数可以表示为一个纯整数/小数与一个2的整数次幂的乘积的形式,即N = (2 ^ p) * S(类似于十进制的科学计数法)。其中S表示了N的全部有效数字,称之为N的尾数;P指明了小数点的位置,称之为N的阶码。2称为阶码的底。

  • 定点:P=0
  • 浮点:P≠0,且可在一定范围内取值。二进制浮点表示:B = ±S * (2 ^ ±P),在机器中表示的形式为:

浮点数在机器中的表示

  • 浮点数常采用规格化表示法:使数值最高位为有效数值位。对于原码表示的尾数,使其最高位为1;对于补码表示的尾数,使尾数最高数值位与符号位不同。
  • 浮点数的精度取决于尾数的位数,数值范围取决于阶码的位数。

大小端模式

  • 小端模式:内存的低地址存数据的低位,内存的高地址存数据的高位
  • 大端模式:内存的高地址存数据的低位,内存的低地址存数据的高位
  • 不同端模式的处理器在进行数据传递时必须要考虑端模式的不同
  • ARM可以自由设置大端或者小端存储
  • 在网络上传输数据时,TCP/IP协议规定了在网络上必须采用网络字节顺序,也就是大端模式

计算机中常用的编码

BCD码:又称“二-十进制码”,用4位二进制数表示1位十进制数。

BCD码与二进制数之间不能直接进行转换,必须把BCD码转换为十进制数之后,再转换为二进制数。反之同样。

ASCII码:标准ASCII码采用7位编码,表示128种字符。最高位(第8位)可以加奇偶校验位。

汉字的编码

  • 汉字信息在系统内传送的过程就是汉字代码转换的过程。

  • 汉字输入码(外码)、汉字内部码(内码)、汉字输出码(字形码)

  • 汉字交换码(国标码字符集:GB2312-80)

  • 国标码字符集中的任何一个图形、符号及汉字都是用两个7位字节表示的。

  • 内码是将国标码两字节的最高位都置1形成的,以便与西文ASCII码相区别。

  • 例如:00110000 00100001->10110000 10100001

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林西河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值