计算机原理与嵌入式系统复习提纲

第一章

计算机发展历程

计算机的类型

  1. 微型计算机
  2. 服务器
  3. 嵌入式计算机
  4. 超级计算机

计算机系统的组成

  1. 硬件:构成计算机的物理部件
  2. 软件:按特定顺序组织的指令和数据集合
硬件组成
  1. 存储器(存储程序和数据,主/辅)(字节:基本单位,对应唯一物理地址PA,若干字节构成字–>计算机字长(包含位数,16,32,64);易失性)
  2. 运算器(构成:算术逻辑单元ALU,寄存器阵列)
  3. 控制器(构成:指令寄存器IR,指令译码器ID,操作控制器OC)
  4. 输入设备
  5. 输出设备
  6. (optional)互连的总线(数据总线DB双,地址总线AB单,控制总线CB)和适配器(I/O接口)
软件
  1. 系统软件(操作系统)
  2. 应用软件

计算机中数的表示方法

D,B,H(h)字母开头加0

位,字节,字,字长

有符号数,无符号数,数值编码(机器数,真值),编码表示方式(原码,反码,补码)(注意补码1000 0000映射-128)(前提:不溢出;溢出判断:次高位进位异或最高位进位等于1)

定点数和浮点数

浮点数:浮点数尾数+浮点数阶码 N= M × 2 e M\times 2^e M×2e

S e M

32位:1 8 23

64位:1 11 52

其他信息编码

BCD码:1. 压缩(正常4位)2. 非压缩(一个字节8位)

ASCII码(国际标准的7单位IRA码):128种(控制字符,阿拉伯数字,英文大小写字母,专用符号)

字符串:每个字节存放一个字符,字长多字节计算机,一个字可存放多个字符(由高位字节向低位字节顺序存放,由低位字节向高位字节顺序存放)

嵌入式系统

关键字:嵌入性,专用性,计算机系统

硬件包括:嵌入式微处理器(MPU),存储器,嵌入式外围设备,I/O接口

嵌入式微控制器(MCU)(单片机)

数字信号处理器(DSP):非嵌入式,嵌入式,定点DSP,浮点DSP

片上系统:SOC

软件包括:嵌入式操作系统,应用软件

第二章

计算机系统的基本机构与组成

计算机层次模型

指令系统(软件子层)–>微程序–>硬件子层

指令>微操作>微指令<微程序(指令)

RISC

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hvm1nSdy-1655171416333)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220528160508436.png)]

减少指令数量,复杂指令由简单指令构成,取消微程序,指令功能由硬核层实现

OS

功能:管理计算机硬件资源和用户作业,提供人机交互界面,多条用户命令和多种子程序调用接口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6XIN4HlK-1655171416334)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220528160809241.png)]

编程语言

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ScmV2Rby-1655171416334)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220528160848255.png)]

冯诺依曼模型机系统

CPU为核心,单总线系统,指令和数据使用同一条总线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZYh43rAs-1655171416334)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220528161113209.png)]

微程序设计思想

每一条机器指令编写成一个微程序

每一个微程序包含若干条微指令

每一条微指令对应一个或几个微操作命令

微操作

可由简单电路实现,可被多个指令复用

取指令,指令译码,寄存器的值给加法器,加法器完成运算,结果给寄存器,更新状态寄存器,PC=PC+n

微操作码+执行顺序控制位=微指令
一段由若干微指令编排而成微程序

模型机存储器子系统

存储器的组织和地址

字节 对应 物理地址(PA):计算机可访问的最小存储单元

总线宽度为32位,一次可传输一个字的数据

数据总线与存储体的链接方式(不同位数的计算机)

字的对齐:对准存放问题(16,32,64位计算机)

小端格式(小小大大),大端格式(小地址:尾部;大地址:头部)x86小端,Motorola大端

存储器操作:读出和写入(地址信号,命令(控制总线),数据总线,采样,存入寄存器);注意:连续数据读写(第一次读写时发送地址)

分级存储体系结构:外存(大容量,低成本,非易失)-内存(DRAM)-高速缓存(cache SRAM)-寄存器

模型机CPU子系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-49lWtbQV-1655171416335)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220528163701166.png)]

运算器

算术逻辑单元:加法器,移位寄存器,相应的控制逻辑

累加器:送入ALU的操作数和存储ALU的计算结果

暂存器:暂时存放ALU的操作数

标志寄存器:状态位,ALU运算后的状态或特征;控制位,对CPU的某些行为进行控制和管理

控制器

指令译码器:指令(操作码+地址码)

微程序控制器,硬连线控制器

控制器工作过程,取指,译码,CM,微操作译码器,执行顺序控制位

硬连线:速度快,电路复杂,不支持复杂指令

寄存器阵列

专用寄存器,通用寄存器

其他部件

地址和数据缓冲器,数据通道

模型机指令集和指令执行过程

指令:微指令(微程序级),机器指令(指令,CPU能识别和直接执行的二进制编码序列,操作码+操作数),宏指令(若干条机器指令)

指令系统:一台计算机中的所有指令的集合(指令集架构ISA,汇编指令)

指令集

操作码:ADD,SUB,AND,OR,NOR,LDR,STR,MOV,JMP,JX/JNX,CALL,RET,HLT

操作数:

Rd,Rs, Imm,Label

定长指令(32位机,32位长):一次取值取完整指令,限制立即数大小和类型,内存寻址无法直接给出内存单元地址:解决办法

寄存器间接寻址

基址加偏移量寻址

基址加索引寻址

指令周期:开始取值到完成指令操作的时间(RISC周期相同,单周期处理器)>CPU周期(总线周期)>T周期(时钟周期)

模型机指令执行流程

例如

源在后,目的在前

除了STR

STR 1 2 = 1 ->2

START:
	MOV R0, #0x000FF000
	LDR R1, [R3]
	ADD R1, R0, R1
	JO L2
	STR R0, [R3+#0x80]
L2: HLT

汇编程序 --> 机器语言程序 : 汇编

PC单位:字节

上述汇编程序在模型机中执行过程

程序入口地址装入PC

PC内容送入地址缓冲器,经地址译码器译码,寻址内存单元

PC+4

OC发出读信号,将机器码读出到数据总线

数据总线数据装入IR

ID译码,OC产生相应的控制信号

注意:CPU中的所有数据都在数据通道中传送,模型机属于多级串行作业(取指和存取操作数时间上错开,无冲突)

计算机体系结构的改进

CISC

指令数量多,功能丰富,可实现复杂操作

采用微程序控制器,控制器结构简单,规整

特点:(Intel8086,Motorola68020)

  1. 指令长度不一(取指需多个总线周期和多次总线操作)–不利于译码器设计,控制器复杂性和电路规模,不利于流水线,超标量
  2. 非Load/Store体系(算术和逻辑运算指令的操作数可以是存储数)
  3. MOVE操作(操作数同样可为存储器),但数据传送操作过程仍为两步,取+存
  4. 两操作数
  5. 指令功能强大,寻址方式多样,程序简洁

性能问题:微程序控制器的工作流程(串行作业,指令顺序读出微指令)

RISC

硬连线逻辑,减少指令数量,简化寻址方式,面向寄存器,Load/Store,长度一致,普遍支持三操作数,只能对寄存器数进行算术和逻辑运算,程序代码量较大

流水线技术

指令执行分解过程:取指,译码,取操作数,执行,回写(五级)

取指,译码,执行(三级)

模型机,多级串联作业,造成部件“窝工”

按操作步骤顺序进行排列部署,中间增加缓冲寄存器(流水线寄存器),构成流水线

时间重叠方式序贯执行:10个流水线周期(2:5),单条指令执行时间加长,同时假设:每一级所需处理时间相同(否则流水线周期受制于最慢的部件)

高效运行前提:保持畅通,不发生断流

三种冲突(冒险)

  1. 资源相关(结构相关)(冯诺伊曼,访问同一个存储器)(解决方法:后面一条指令等待一个节拍再启动(插入气泡或插入阻塞);采用哈佛结构)
  2. 数据相关(写后读RAW,写后写WAW,读后写WAR)(解决方法:定向推送(前一条指令执行结果通过专用通道直接推送给下一条),优化编译器(对前后指令进行检查,调整执行顺序))
  3. 控制相关(转移指令时后续已进入流水线的指令都应清空–>造成流水线断流,转移代价),减少转移代价的方法:增加电路,译码阶段提前计算转移目标地址;条件转移:转移预测技术,转移延迟槽(将转移目的指令移至转移延迟槽内),关键:预测是否转移,动态转移预测:根据指令过去的行为进行预测(用2bit对转移指令过去行为进行量化,11总是转移,00总是不转移,每发生一次转移权值++,使用BTB(转移目标缓冲器),收集和存储了近期所有转移指令的有关信息,按照查找表的形式进行组织(1024),取值,BTB中搜索,找到对应的转移指令,进行相应处理,根据实际行为打分,修改档案记录)
超标量和多发射技术

标量处理器(SISD):一条指令一次只能处理一个数据

向量处理器(阵列处理器,SIMD):一条指令完成一个向量计算

标量流水线

超标量处理器:多条标量流水线(空间并行,提高处理能力)

  1. 指令分发,同时执行(多发射技术)
  2. 配对检查,不同流水线上的指令不相干
  3. 可以使用不同类型的流水线(int, float)
超线程处理器

”窝工“没有完全消除(指令之间的相关性)

多任务计算机,进程(代码+计算机当前的状态)

早期:CPU运行时间被划分为多个时间片,进程作为作业调度和资源管理的基本单位

线程:能独立执行代码的最基本单位(每个进程(资源管理单位)有若干个线程,所有线程共享进程拥有的全部资源)单处理器同时只能执行一个线程

同时多线程技术(SMT),逻辑上的线程处理单元,并不是独自拥有所需的全部资源,多线程提升,单线程不升反降

多处理器计算机

共享内存,共享总线–数据交换,紧耦合多处理器系统

非对称多处理器计算机AMP,全对称多处理器计算机SMP

多计算机系统

局域网以及私有网络互联

松耦合系统,独立操作系统,自己的存储设备和I/O

通过LAN or SAN 共享外存,组成计算机集群

分布式计算机系统

全网统一的分布式操作系统,对用户的各种资源进行统一调度和管理

无主从之分,既合作又自治,协同工作

云计算

多核处理器

多个功能完整的CPU集成在一个芯片上,每个计算内核采用超标量和超流水线技术

多个内核采用片内总线或开关矩阵互联,片上多处理机器CMP

同构多核(所有内核数相同),异构多核(根据需求选配不同的内核)

多核处理器性能与任务并行性相关

安达尔定律:
S = 1 1 − a + a n a : 可 并 行 代 码 比 例 n : 节 点 数 S=\frac{1}{1-a+\frac{a}{n}} \quad a:可并行代码比例\quad n:节点数 S=1a+na1an:
核数,功耗,代价,实际效果间寻求平衡

Intel x86典型微处理器简介

Intel 8086

16位

ARM 嵌入式处理器简介

基础:ARM处理器,添加时钟,ADC,DAC,存储器,协处理器,DSP等形成嵌入式处理器芯片,属于SOC

RISC架构

条件码:N-负,Z-零,C-进位,V-溢出

第三章

概述

保存信息的电路

半导体存储器(RAM随机存取存储器,ROM只读存储器),磁介质存储器,光存储器

半导体

ROM–NVRAM非易失

特点:RAM易失性,ROM编程次数有限

磁介质

非易失

光存储器

只读,可记录

存储体系架构

二级,四级(寄存器(触发器)+cache(SRAM)+主存(DRAM+ROM)+辅存(磁介质:机械硬盘,固态硬盘)(联机,脱机))

接口标准

IDE,PATA,SCSI,SATA,SAS,SD–Micro SD。。。。

存储芯片的性能指标

存储容量:位数,字数,字节数

存储单元:存放机器字:字存储单元,字地址;存放字节的单元:字节存储单元,字节地址

容量=单元数*数据线位数

例:设地址线位数为n, 数据线位数为m, 则容量为: 2^n× m

例:2k*4

容量=2k*4,地址11,译码出来2k条字线

存取时间 T a T_a Ta:启动一次存储器操作到完成该操作所经历的时间

存取周期 T M T_M TM:连续启动两次独立的存储器操作所需间隔的最小时间

数据传送速率(带宽) B M B_M BM:例总线宽度为W, B M = W / T M B_M=W/T_M BM=W/TM

只读存储器

ROM,非易失性,EEPROM,Flash可在线编程读写,需要专门的写,擦除电平和时序

掩膜ROM

(固化数据,用户不能修改), 包含:存储矩阵,地址译码器,输出缓冲器(提高带负载能力,同时使系统总线与存储器隔离)

地址译码器:将输入的地址代码译成相应的控制信号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9LpQSW3c-1655171416335)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220602183732769.png)]

竖着的:字线(由地址信号译码成的控制线),输出代码:“字”,横着的:位线(数据线)

PROM

双极性熔丝结构

EPROM

采用叠栅注入MOS管SIMOS做存储单元

编程原理:雪崩击穿

擦除原理:用特定波长的紫外线照射

以位为单位进行擦写

控制栅和浮置栅,浮置栅保存电荷

EEPROM

以字节为单位擦除和重写

浮动栅与漏极之间有一层极薄的氧化硅(隧道区)

存储单元中附加了一个选通管

Flash

没有选通管

闪存,快擦写存储器,写入次数受限

NAND Flash NOR Flash

随机存取存储器

静态RAM(SRAM),动态RAM(DRAM)

SRAM:双稳态触发器,只要不掉电,信息不会丢失,优点:不需刷新,缺点:集成度低,功耗大,Cache

矩阵式排列,地址译码电路,行选择信号+列选择信号

DRAM:电容,电路简单,集成度高,问题:电容中电荷由于漏电会逐渐丢失,速度慢,需要刷新

存储单元由1个MOS管和1个小电容构成

存储器与CPU的连接

地址空间与存储器连接

地址空间:计算机中地址总线AB的宽度决定了存储器空间的最大寻址范围,按字编制,按字节编址(通常)

连接存储器芯片与CPU,根据CPU总线位数考虑,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vKRCfUUj-1655171416335)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220603145636838.png)]

连接时考虑如下问题:

  1. CPU总线的负载能力
  2. CPU时序与存储器存取速度间的配合
  3. 存储器的地址分配和片选
  4. 控制信号的连接

嵌入式微处理器自带存储器----如果需要更大容量的存储器,需要进行扩展

存储器的选择:

固化程序(非易失性的EEPROM,Flash),外部载入的程序(SRAM,DRAM)

扩展方式:

位扩展

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z25hNqm6-1655171416336)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220603153508685.png)]

字扩展

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q6R8R8jP-1655171416336)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220603153526854.png)]

复合扩展

嵌入式存储器系统设计

处理器内置小容量NOR Flash闪存和小容量SRAM

存在固定的地址空间预划分方案,连接外存需要据此设计地址线连接方式

扩展示例,连接1M*16bits的NOR Flash 地址线A[19:0]----ARM A[20:1]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e4aLLOWN-1655171416336)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220603154608844.png)]

内存条

采用内存条的原因

扩展性,互换性,灵活性,可维护性

内存条的组成

内存颗粒,SPD芯片,PCB电路板,引脚以及阻容元件

DDR

DDR SDRAM,时间上沿和下沿都进行一次对等的写或读操作

高速缓冲存储器(Cache)

Cache原理

存储器访问速度远远低于CPU时钟频率

原理:程序在一定时间段内通常只访问较小的地址空间

局部性:

时间:最近访问的信息很可能被再次访问,装入Cache

空间:最近访问信息的邻近信息可能被访问,将最近信息的邻近信息也装入到Cache

采用SRAM(速度快,无需刷新),摒弃DRAM

命中率:
h = N c / ( N c + N m ) N c 和 N m 是 C a c h e 和 主 存 的 存 取 次 数 1 − h 为 丢 失 率 h=N_c / (N_c +N_m)\quad N_c和N_m是Cache和主存的存取次数\\ 1-h为丢失率 h=Nc/(Nc+Nm)NcNmCache1h
影响Cache性能的因素:脱靶

提高性能的几种方法:增大Cache容量来降低丢失率,通过结构设计减少不命中次数,通过预取技术提高命中率

Cache的基本单元:行或者字块(line)包括:数据字段,标志字段,有效位字段,一致性控制位字段,替换控制位字段

主存是以字块为单位影响到Cache中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yNjw85ru-1655171416336)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220606160600786.png)]

解决问题:主存地址与缓存地址的影响及转换,按一定原则对Cache的内容进行替换

地址映射与转换

地址映射:主存–Cache,地址变换:CPU方位主存变为Cache

全相联映射方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uX1Tglt4-1655171416337)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220606161310597.png)]

主存中任意一个块都可以映射到Cache中任意一个块

地址变换:查找块表(主存块存入Cache中时,在一个存储主存块号和Cache块号映射关系的块表中进行登记)

特点:

  1. 主存中的块可映像到Cache的任意位置,Cache利用率高
  2. 对访问主存的地址与Tag中的地址逐一进行比较,电路的实现代价高

优点:Cache利用率高,不易产生冲突,命中率较高

缺点:比较和替换策略需硬件实现,电路复杂,速度低,成本高

直接相连映射

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jlwb2wYB-1655171416337)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220606162054833.png)]

主存空间分页,页内分块,主存中的块只能映射到Cache中一个特定块上

地址变换:取余,同时附加标志号T决定,访问主存地址形式:T C W

根据C找到块,比较T,相同则命中,根据W合成Cache地址,访问相应单元

特点:

存在冲突

优点:映射方式简单,速度快,硬件设备简单

缺点:替换操作频繁,命中率低

组相联映射方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8gZjukhK-1655171416337)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220606162836744.png)]

主存的块与Cache的组之间采用直接相联映射,组内各块采用全相联映射

主存地址s,u,W ,s为主存的页号,u为页内的块号,v为组内的块号

地址变换:找到组,比较组内s字段,相符则命中,取出v字段,取出w字段,组成Cache地址

特点:集中了优点

优点:块冲突概率比较低, 块利用率大幅度提高, 块失效率明
显降低

缺点:实现难度和造价要比直接映射高

Cache更新与替换策略

读取结构:贯穿读出(先送到Cache),旁路读出(同时向Cache和主存发出数据请求,没命中可以及时中断CPU对主存的请求)

写入更新策略:写通方式(二者都写),写回方式(只写Cache,设置修改标志位)

替换策略:随机,最不经常使用(LFU),先进先出,近期最少使用

虚拟存储器

基本思想:程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存,而把其他未被使用的部分保存在磁盘上

虚拟地址,由CPU的位数决定

物理地址,由内存决定

虚拟地址–>内存管理单元–>物理地址

地址变换:段式,页式,段页式

第四章

总线技术概述

总线(包含传输和管理信息的协议)

计算机系统内部或之间传输信息的公共信道

分散连接,总线连接

接口

作用:数据交换,协调不同种类的外部设备,起转换,缓冲速度匹配作用

总线和接口的区别和联系:电路单元之间的硬件电路,点到点连接和多点互联

基本特性:共享,分时

性能指标:总线频率,总线宽度,总线带宽=总线宽度/8总线频率管线数,同步方式,总线复用,信号线数,总线控制方式,寻址能力,总线的定时协议,负载能力

总线特性:机械特性,电气特性,功能特性和规程特性

总线的分类

五种方式:物理接口(电缆,主板,背板),总线信号传输类型(数据,地址,控制,电源),控制特性(同步,异步,半同步),通信方式(串行,并行)

位置分类

片内总线(CPU内),芯间总线(芯片总线,局部总线,CPU和外围芯片),内总线(系统总线,板级总线),外总线(I/O总线或通信总线,计算机之间或计算机与外设)

片上系统SoC,片上总线(AMBA),片外总线

总线多级分层结构,外部总线也可分层

功能分类

地址总线AB,单向,指定数据总线上数据的去向和来源,总线宽度决定最大存储器空间的寻址范围(DB+AB),也可用于I/O总线的寻址

数据总线DB,双向三态,通常与微处理字长相同

控制总线CB,既可单向也可双向

数据传输方式分类

串行,一根数据线(差分则两根)

并行,比特以成组的方式传输

时序控制方式分类

异步,独立时钟,或从数据中提取

同步,统一时钟,独立信号线传输时钟,SPI,I2C

复用方式分类

非复用

复用,不同时段传输不同类型的信号(AD,AB+DB),区分方式:约定,增加专用线标识

总线结构

单总线,双总线(CPU与存储器,CPU与I/O),三总线(添加存储器与I/O的DMA总线),四总线(增添了扩展总线)

总线仲裁

总线上的设备分为:主设备(具有控制总线能力的模块),从设备

集中式

总线仲裁器,分为,串行,并行,串并混合式

串行仲裁(菊花链仲裁),总线请求BR,总线允许BG,总线忙BB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oiw5J7AT-1655171416338)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220607190745974.png)]

特点:越靠近控制器的模块优先级越高,链形优先级存在传播延迟(模块数量少),可靠性低,结构简单,造价较低

并行仲裁(独立请求式仲裁)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fNlNuOj5-1655171416338)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220608141723045.png)]

特点:判优速度快,且与模块数无关,所需“请求线”和“允许线”较多

串并行混合式仲裁(多级仲裁)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wa1IgeLr-1655171416338)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220608141924788.png)]

先并行再串行,优先级由总线判决器内部逻辑确定,同一链路上各设备优先级由与总线判决器的远近程度确定

分布式

分散在各个部件或设备上,各个节点竞争使用权,不需要中心裁决器,每个设备将请求线上的合成信号取回分析

自举分布式仲裁

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0bAWpW2z-1655171416338)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220608142406296.png)]

注意优先级顺序的判断

电路基础:线与逻辑(全高为高,一低则低),判断多个输出引脚中是否有引脚信号变化

总线操作与时序

总线操作:通过总线进行信息交换的过程(读/写存储器周期,读/写I/O端口周期,DMA周期,终端周期)

总线周期:总线设备完成一次完整信息交换的时间

总线周期的四个阶段:

  1. 请求与仲裁阶段
  2. 寻址阶段
  3. 数据传输阶段
  4. 结束阶段

总线时序:总线操作过程中各信号在时间顺序上的配合关系,不同总线操作需要不同的总线时序予以配合

同步总线时序:数据传输由统一时标控制,规定的时间执行或完成规定的动作

异步总线时序:主从模块采用应答方式联络和协调工作,可分为:不互锁方式(STB固定时间,ACK固定时间),半互锁方式(主设备等待从设备ACK应答撤销STB,从设备不等待主设备应答),全互锁方式(主设备等待从设备ACK应答撤销STB,从设备等待主设备ACK应答撤销ACK);握手方式,STB,ACK,主从模块之间增加两条握手应答线,互锁方式应配合使用超时等待处理机制

半同步总线时序:对于大多数速度较快的传送对象,均按照同步方式定时(主存速度慢,采用插入一个时钟周期办法让CPU等待),增加Ready/wait状态信号线

周期分裂式总线时序:将一个传输周期(或总线周期)分解为两个子周期,寻址子周期,数据传送子周期(分离式操作,流水线分离)

片内总线AMBA

三种不同总线:AHB,ASB,APB

AHB总线的系统要素

主机,从机,仲裁器,译码器

特点:支持突发传输,支持分裂式操作,单周期总线主机移交,单一时钟沿操作,非三态的实现,可扩展至更宽的数据总线架构

AHB的数据传输过程

地址阶段,数据阶段

AHB流水线机制

流水线机制:地址信息和数据信息交叠

流水线

2级流水线:第n次传输的地址在第n-1次传输时被驱动到了地址总线上,驱动地址+驱动数据(从机不能响应时,被打断)

流水线分离

周期分裂式时序思想

地址和数据阶段分离

从机不能及时响应式,发送控制信号HSPLITx通知仲裁器

仲裁器检测出后,释放总线使用权

从机准备好后,发送控制信号HSPLITx重新传输,仲裁器根据优先级决定何时分配总线使用权

主机获得使用权后,继续操作

插入等待周期的数据传输:半同步时序HREADY#拉低,插入等待周期

突发传输:一次传输过程传输一个数据块而不是单个数据,突发传输类型信号HBURST[2:0],000 SINGLE单次传输,001 INCR未标识长度的地址递增式传输,010 WRAP4突发长度为4的地址循环递增式传输;突发传输的状态HTRANS[1:0]

ASB,APB,AXI,AMBA的不同版本

系统总线/外部总线

PCI
USB

输入/输出接口

输入/输出接口概述

必要性:CPU与外设交换信息(速度有较大差异,信号电平不一致,数据格式不同,时序不匹配)

功能:

设置数据缓冲,解决速度不匹配的问题

设置电平转换电路解决电平不一致的问题

设置信息转换逻辑满足各自格式要求

设置时序控制电路同步CPU和外设的工作

提供地址译码电路

提供I/O控制,读/写控制及中断控制等逻辑

I/O端口

指I/O接口电路中的各类寄存器以及它们的控制逻辑

设置以下几种端口:数据端口(数据缓冲),状态端口,命令/控制端口,/中断控制逻辑

I/O端口的编址方法

端口地址(端口号),两种:I/O端口和存储器统一编址,存储器映像的I/O方式(不设置专门的I/O指令,增加了地址译码电路的复杂性);I/O端口和存储器分开单独编址,I/O映像的I/O方式(单独编址,不占用存储空间,使用专门的IN/OUT指令访问I/O端口)

输入/输出接口的数据传送方式

I/O控制数据传送方式

  1. 程序控制方式,数据传送在程序控制下完成(无条件,条件)
  2. 中断方式
  3. DMA方式(硬件)

无条件传送(同步传送方式)

认为外设总是准备好,无需查询,输入需要缓冲器,输出需要锁存器

条件传送(查询传送,异步查询传送方式)

考虑外设的状态,大多数外设都是条件访问方式

特点:可靠性高,硬件接口相对简单,但CPU工作效率低,I/O相应速度慢

要求外设提供状态口和数据口,查询顺序由外设优先级确定

中断传送方式
  1. 提高了CPU的工作效率
  2. 外围设备具有申请服务的主动权
  3. CPU可以和外设并行工作
  4. 可适应实时系统对I/O处理的要求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J8okBkKo-1655171416339)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220609142543666.png)]

I/O端口状态的查询交给中断控制器完成(不是CPU)

异常处理机制描述中断技术

中断源命名:中断类型码或中断类型号

中断向量:中断服务子程序的入口地址,存放在存储器的特定区域,成为中断向量表

中断索引:系统根据中断类型码到中断向量表中获得中断向量的过程

中断处理过程:中断响应,中断处理,中断返回

中断优先级:软件查询(中断请求信号相“或”,选择的处理顺序体现了优先权),硬件排序,专用芯片管理(外设优先级排序)

中断嵌套

中断屏蔽

中断优先级管理:中断优先权编码电路:中断请求位和中断允许位同时为1时,该中断请求信号能传送至IRQ引脚;菊花链式优先权排队电路

直接存储器访问DMA方式

一般方式至少需要两个完整的总线周期,高速外设不合适

基本思路:在I/O接口与存储器之间直接进行数据传送,该电路在一个总线周期内能够同时发出内存单元和I/O端口的选择信号以及读/写信号

DMAC:DMA控制器

DMA写(I/O接口–>内存),DMA读相反

基本工作方式:单字节传输,块传输方式,请求传输方式

靠硬件实现数据传送,不能处理较复杂的事件

DMAC本身也是接口芯片,无法对接口寻址,一般设置多个通道,为多个外设提供DMA传送服务

串行接口
I2C

两线式串行总线(串行数据线SDA,串行时钟线SCL)

线与,外部上拉电阻

主从式通信方式,多主机总线

冲突,SCL线的同步,SDA线的仲裁(线与)

地址实现:串行发送地址,总线上每一个器件的地址的地址必须唯一

电气特性:单个IO引脚负载电容不能超过10pF,总负载电容不超过400pF

SPI

Mororola

至少需要四根线(单向传输时),MISO,MOSI,SCLK,CS

可以挂载一个主设备,多个从设备,但一个主设备只与一个从设备通信(低电平)

无应答机制,数据传输过程全都由主设备进行控制,成功与否没法直接验证

第五章

ARM体系结构与ARM处理器概述

微架构

微架构对应ISA的硬件实现方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bHUmBzqb-1655171416339)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220609151012424.png)]

哈佛结构:指令数据分别存储两个独立的存储模块,但共用一套公共总线

Cortex-M3/M4处理器结构

ARM-v7-M

三级流水线,哈佛结构

存储器管理特性

没有Cache或者TCM

4GB地址空间

支持小端或大端

可选位带,内置写缓冲,可选MPU,都支持非对准(非对齐)传送

存储器映射

所有Cortex-M系列存储器,都采用相同的存储器映射

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dgxy7tai-1655171416339)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220609153017479.png)]

总线系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OmWKOsyD-1655171416339)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220609153214232.png)]

I-Code和D-Code总线连接Code区,基于AHB-Lite总线协议32为总线,D-Code优先

AHB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uokoo5P6-1655171416340)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220609153527067.png)]

APB/PPB,32位APB总线,内核私有区域需要特权访问权限,连接调试组件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s348u7Vm-1655171416340)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220609153641369.png)]

DAP,调试访问端口,增强型APB,32位总线

Cortex-M3/M4编程模型

操作状态和操作模式

Thumb-2,16位,32位指令并存

两种操作状态:Thumb状态,调试状态

两种操作模式(运行模式):处理模式(中断服务程序,处理器具有特权访问等级),线程模式(分为特权线程模式和非特权线程模式)

两种访问等级:特权访问等级和非特权访问等级(对关键区域提供必要的保护安全模型,不能访问某些特殊寄存器)

启动后处于特权线程模式以及Thumb状态,可以设置CONTROL寄存器,无论是什么模式,在异常响应时都进入处理模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZnKinuzo-1655171416340)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220610154505095.png)]

常规寄存器

13个为32位通用寄存器,3个为堆栈指针,链接寄存器和程序计数器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGeZ2JJy-1655171416340)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220610154902842.png)]

R13,栈指针

双堆栈设计,主栈指针MSP,进程栈指针PSP

系统复位后,或处理模式,处理器使用MSP(默认),线程模式使用PSP,栈指针的使用可通过CONTROL寄存器设置

AAPCS规范堆栈采用双字对齐方式(8字节),(处理器32位,一般采用字对齐方式)

R14,链接寄存器

保存函数或子程序调用时的返回地址,异常处理时,保存一个名为EXC_RETURN特殊数值,指示异常处理结束时的异常/中断返回行为

R15,程序计数器

x86,不允许对CS代码段寄存器及IP指令指针进行写操作,程序转移或者过程调用只能通过专门的指令来实现

ARM,PC不仅可读而且可写,读PC地址返回的是当前指令地址加4(流水线的特性及处理器兼容的需要),PC作为代码地址,最低为总认为是0,写入指必须是奇数,最低位是“1”,表示其处于Thumb状态

特殊寄存器

没有映射到内存空间,只能用MSR/MRS指令通过名字对其访问

与特殊功能寄存器SFR不同,SFR一般用于I/O控制的寄存器

程序状态寄存器PSR

APSR,EPSR,IPSR

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qTkj0cKV-1655171416341)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220610160437922.png)]

堆栈

作用:保存被中断程序的下一条指令的地址,处理器状态(保护断点),保存寄存器内容(保存现场),实现参数传递,存储局部变量

类型:满(SP指向栈顶元素)递减(堆栈区由高地址向低地址生长)栈,每次PUSH时,SP指针减去4(堆栈操作自动对齐到字),POP加4

双字栈对齐模式,没有对齐的话自动插入一个空字

双堆栈结构:处理模式总是使用MSP,线程模式可以使用MSP或PSP,SRAM中建两个区域,一个为特权级,用作MSP,另一个为非特权级,用于PSP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2RYUeQDj-1655171416341)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220610162142342.png)]

用于堆栈的存储区需要事先做好规划,预留足够的空间,以防堆栈溢出

MSP初始值存在0x0000 0000,通常位于I-Code总线所连接的flash中,系统初始化程序完成MSP的初始化,PSP的初始化需要另外编程实现

Cortex-M处理器存储系统

位带操作

一次存储器操作只访问一个位

两个位段区域,SRAM最低1MB(0x2000 0000 - 0x200F FFFF),外设区域的最低1MB(0x4000 0000 - 0x400F FFFF)

可选项

位段区域特定存储单元的某一个位映射为一个位段别名地址

位段别名地址数据的LSB–位段区存储单元的某一个位

读->修改->写,位段操作可以帮助完成上述步骤,简化读位信息的过程,原子性(不被其他操作打断)

Cortex-M处理器的异常处理

异常优先级

3个固定的最高优先级(复位-3,NMI-2,硬件错误-1)以及256个可编程优先级

中断优先级由优先级寄存器控制,宽度为3-8位

优先级相同的异常同时产生,处理器优先处理异常类型号低的,称为“自然顺序优先级”

中断优先级分组,抢占优先级,子优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i0eGsHRg-1655171416341)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220610165615952.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7QH69mm-1655171416341)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220610170017015.png)]

异常处理流程

处理器接受异常请求,进入异常处理,执行异常处理程序,异常返回

第六章

T32指令格式

指令系统:每种计算机都有一组指令集供用户使用,这组指令集就称为计算机的指令系统

区分16位和32位指令:通过半字的最高5位区分

汇编语言(符号语言):用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址

通用语法

操作码 条件码(可选后缀) 指令宽度选择(可选后缀) 是否更新APSR(可选后缀) 目标操作数 源操作数(必须是寄存器) 第二源操作数(寄存器,立即数,经过偏移量计算的立即数和寄存器)

条件码后缀

EQ等于Z==1
NE不等于Z==0
CS产生进位C==1
CC进位为0C==0
MI负数N==1
PL整数或0N==0
VS溢出V==1
VC没有溢出V==0

T32指令集寻址方式

寻址:根据指令内容确定操作数地址的过程

寻址方式:如何寻找操作数的方法(数据寻址,指令寻址)

操作数的存放:操作数包含在指令中(立即数) I,包含在CPU的内部寄存器中 II,在存储器中(数据区和代码区) III

10种寻址方式

I 立即数寻址(一定范围限制)

II 寄存器寻址,寄存器移位寻址(MOV R0,R2,LSL #3;LSL,LSR,ASR,ROR,RRX,逻辑左移和算术左移相同)

III(数据区) 寄存器间接寻址(寄存器内容作为操作数地址),寄存器偏移寻址(基址,基址寄存器,偏移量),前变址寻址(!写回),后变址寻址(先寻址再写回),多寄存器寻址,堆栈寻址

III(代码区) PC相对寻址

Cortex-M3/M4指令集

数据传送指令 MOV

伪指令 =0x123456789

存储器访问指令 LDR STR(Load/Store体系)

堆栈操作 PUSH POP

算术运算指令,是否是用S后缀

逻辑算术指令

移位和循环指令

比较和测试指令

程序流控制指令

第七章

ARM汇编程序中的伪指令

伪指令不像机器指令那样在处理器运行期间由机器执行,而是汇编程序对源程序汇编期间由汇编程序处理

数据定义伪指令 DCB DCW

其他常用伪指令 AREA ENTRY EXPORT IMPORT END

ARM汇编语言程序设计

顺序结构
分支结构(CPSR寄存器)

HI 无符号数大于

LS 无符号数小于或等于

GT 带符号数大于

LE 带符号数小于或等于

LT 带符号数小于

B指令 B{条件} 目标地址 BL指令(R14(LR)保存)

循环结构

LOOP

子程序调用与返回

BL SUB

将子程序的返回地址放在LR寄存器中,同时将PC寄存器指向子程序的入口点

ARM汇编语言与C混合编程

汇编调用C函数代码段名称必须设为RESET

C语言和汇编语言混合编程

内联汇编

_asm

{

}

内嵌汇编

_asm void function(){…}

不能直接向PC赋值,程序跳转要使用B或者BL

第八章

嵌入式系统的开发设计与开发综述

开发环境:宿主机,目标机

IDE集成开发环境:KEIL MDK,uVision IDE

调试方式:模拟器方式,监控器方式(上位机,下位机),ICE方式(完全仿造调试目标CPU设计的仪器),OCD方式(调试目标内要有专门的JTAG电路模块)

嵌入式系统开发过程

需求分析

系统设计

系统实现

系统测试

系统发布

嵌入式系统软件开发:无OS(循环轮询架构,前后台(后台:循环轮询,前台:中断服务程序)),基于嵌入式OS的软件开发

ARM微处理器最小硬件系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1pwuyBAU-1655171416342)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220614090647121.png)]

复位:系统复位,电源复位(复位入口矢量固定在地址0x0000 0004),备份区复位

时钟树:由SYSCLK经分频/倍频得到各模块的工作时钟

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I9fHDHOe-1655171416342)(C:\Users\X\AppData\Roaming\Typora\typora-user-images\image-20220614091147309.png)]

址寻址(先寻址再写回),多寄存器寻址,堆栈寻址

III(代码区) PC相对寻址

Cortex-M3/M4指令集

数据传送指令 MOV

伪指令 =0x123456789

存储器访问指令 LDR STR(Load/Store体系)

堆栈操作 PUSH POP

算术运算指令,是否是用S后缀

逻辑算术指令

移位和循环指令

比较和测试指令

程序流控制指令

第七章

ARM汇编程序中的伪指令

伪指令不像机器指令那样在处理器运行期间由机器执行,而是汇编程序对源程序汇编期间由汇编程序处理

数据定义伪指令 DCB DCW

其他常用伪指令 AREA ENTRY EXPORT IMPORT END

ARM汇编语言程序设计

顺序结构
分支结构(CPSR寄存器)

HI 无符号数大于

LS 无符号数小于或等于

GT 带符号数大于

LE 带符号数小于或等于

LT 带符号数小于

B指令 B{条件} 目标地址 BL指令(R14(LR)保存)

循环结构

LOOP

子程序调用与返回

BL SUB

将子程序的返回地址放在LR寄存器中,同时将PC寄存器指向子程序的入口点

ARM汇编语言与C混合编程

汇编调用C函数代码段名称必须设为RESET

C语言和汇编语言混合编程

内联汇编

_asm

{

}

内嵌汇编

_asm void function(){…}

不能直接向PC赋值,程序跳转要使用B或者BL

第八章

嵌入式系统的开发设计与开发综述

开发环境:宿主机,目标机

IDE集成开发环境:KEIL MDK,uVision IDE

调试方式:模拟器方式,监控器方式(上位机,下位机),ICE方式(完全仿造调试目标CPU设计的仪器),OCD方式(调试目标内要有专门的JTAG电路模块)

嵌入式系统开发过程

需求分析

系统设计

系统实现

系统测试

系统发布

嵌入式系统软件开发:无OS(循环轮询架构,前后台(后台:循环轮询,前台:中断服务程序)),基于嵌入式OS的软件开发

ARM微处理器最小硬件系统

[外链图片转存中…(img-1pwuyBAU-1655171416342)]

复位:系统复位,电源复位(复位入口矢量固定在地址0x0000 0004),备份区复位

时钟树:由SYSCLK经分频/倍频得到各模块的工作时钟

[外链图片转存中…(img-I9fHDHOe-1655171416342)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值