重点1:Flynn分类法
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流SISD | 控制部分:一个 处理器:一个 主存储模块:一个 |
单处理器系统 | |
单指令流多数据流SIMD | 控制部分:一个 处理器:多个 主存模块:多个 |
各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理机 超级向量处理机 |
多指令单数据流MISD | 控制部分:多个 处理器:一个 主存模块:多个 |
被证明不可能,至少不实际 | 目前没有 |
多指令多数据流MIMD | 控制部分:多个 处理器:多个 主存模块:多个 |
能够实现作业、任务、指令等各级全面并行 | 多处理机系统 多计算机 |
重点2:简单指令集RISC与复杂指令集CISC
复杂指令集CISC | 简单指令集RISC | |
---|---|---|
指令 | 数量多 使用频率差别大 可变长格式 |
数量少 使用频率接近 定长格式 大部分为单周期指令 操作寄存器 只有Load和Store操作内存 |
寻址方式 | 支持多种 | 支持方式少 |
实现方式 | 微程序控制技术(微码) | 增加了通用寄存器 硬布线逻辑控制为主 适合采用流水线 |
其它 | 研制周期长 | 优化编译,有效支持高级语言 |
重点3:存储系统
要点1:冯诺依曼结构与哈佛结构
1、冯诺依曼结果
冯诺依曼结构也称为普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。其特点包括:
(1)一般用于PC处理器。
(2)指令与数据存储器合并在一起。
(3)指令与数据都通过相同的数据总线传输。
2、哈佛结构
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。其特点包括:
(1)一般用于嵌入式系统处理器(DSP)。
(2)指令与数据分开存储,可以并行读取,有较高数据的吞吐率。
(3)有4条总线,包括指令和数据的数据总线和地址总线。
要点2:层次化存储结构
1、缓存Cache
(1)缓存的功能是提高CPU数据输入输出的速率,使得CPU与存储系统之间的处理速度尽可能的相匹配。
(2)在计算机的存储系统体系中,Cache是访问速度最快的层次。
(3)使用Cache改善系统性能的依据是程序的局部性原理。
如果以h代表对Cache的访问命中率,T1表示Cache的周期时间,T2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为T3,则:
�3=ℎ×�1+(1−ℎ)×�2 ,其中,1-h又称为失效率(未命中率)。
2、局部性原理
(1)时间局部性:指程序中的某条指令一旦执行,不就以后该指令可能再次执行,典型原因是由于程序中存在着大量的循环。
(2)空间局部性:指一旦程序访问了某个存储单元,不久以后其附近的存储单元也将被访问,即程序在一段时间内所访问的地址
(3)工作集理论:工作集是进程运行时被频繁访问的页面集合。
3、主存的分类
(1)随机存取存储器
- DRAM(Dynamic RAM,动态RAM),SDRAM;
- SRAM(Static RAM,静态RAM)。
(2)只读存储器
- MROM(Mask ROM,掩模式ROM);
- PROM(Programmable ROM,一次可编程ROM);
- EPROM(Erasable PROM,可擦除的PROM);
- 闪存(Flash Memory)。
要点3:磁盘结构与参数
要点4:寻道时间计算
存取时间寻道时间等待时间存取时间=寻道时间+等待时间
注意,寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
平均存取时间(Average Access Time)是指磁头找到指定数据的平均时间,通常它是硬盘平均寻道时间和平均潜伏时间(等待时间)之和,平均存取时间最能代表硬盘找到某一数据所用的时间,数值越小越好。
要点5:磁盘调度算法
访问磁盘的时间由3部分构成,它们是寻道(查找数据所在的磁道)时间、等待(旋转等待扇区)时间和数据传输时间,其中寻道时间(查找时间)是决定因素。
1、FCFS(First Come First Service)(或称FIFO)算法。
2、SSTF(Shortest Seek Time First,最短寻道时间优先)算法:其要求访问的磁道距当前磁头所在的磁道距离最近,以使每次寻道的时间最短;这种模式有高度局部化的倾向,会推迟一些请求的服务,甚至引起无限拖延(即饥饿现象)。
3、SCAN(电梯)算法:不仅考虑到欲访问的磁道与当前磁道的距离,而且优先考虑的是磁头的当前移动方向,是在磁头前进方向上的最短查找时间优先算法。
4、N-SCAN(N步SCAN)算法:扫描期间只对那些在扫描开始前已等待服务的请求提供服务,在服务期间,新到达的请求即使在磁头前进方向上也得不到服务,直到下一个新扫描周期开始。
5、C-SCAN(循环扫描)算法:是单向服务的N步SCAN算法,其规定磁头单向移动,彻底消除了对两端磁道请求的不公平。
重点4:流水线
要点1:概念
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各个部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
一条指令的执行过程可以分解为取指、分析和执行三步;流水线周期为执行时间最长的一段。
流水线计算公式为:
条指令执行时间(指令条数)流水线周期1条指令执行时间+(指令条数−1)×流水线周期
理论公式:
(�1+�2+⋯+��)+(�−1)×∆�
实践公式:
�×∆�+(�−1)×∆�
流水线吞吐率(Though Put Rate, TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量,计算流水线吞吐率的最基本的公式如下:
指令条数流水线执行时间��=指令条数/流水线执行时间
流水线最大吞吐率
�����=1/∆�
流水线加速比是指同样完成一批任务,不使用流水线所用的时间与使用流水线所用的时间之比,计算公式为:
不使用流水线执行时间使用流水线执行时间�=不使用流水线执行时间/使用流水线执行时间
重点5:总线
一条总线同一时刻仅允许一个设备发送,但允许多个设备接收,所以总线是半双工模式。
总线分类有以下几种:
- 数据总线(Data Bus):在CPU和RAM之间来回传送需要处理或是需要储存的数据。
- 地址总线(Address Bus):用来指定在RAM中储存的数据的地址。
- 控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号传送到周边设备,一般常见的为USB Bus和1394 Bus。
重点6:嵌入式系统开发与设计
要点1:芯片
1、DSP
DSP芯片也称为数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各个数字信号处理算法。
2、SoC
System on Chip,即片上系统,从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲,SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么Soc就是包括大脑、心脏、眼睛和手的系统。
3、MPU
微处理器(MPU)是构成微机的核心部件,也可以说是微机的心脏,它起到控制整个微型计算机工作的作用,产生控制信号对相应的部件进行控制,并执行相应的操作。
4、MCU
微控制单元(Microcontroller Unit,MCU)又称为单片微型计算机(Single Chip Microcomputer)或者单片机,是把中央处理器的频率与规格适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
要点2:交叉开发环境
要点3:系统初始化过程
1、片级初始化
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所需要的工作状态,这是一个纯硬件的初始化过程。
2、板级初始化
完成嵌入式微处理器意外的其他硬件设备的初始化,另外还需要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境,这是一个同时包含软硬件两部分的初始化过程。
3、系统初始化
该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包括加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等;最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。
重点7:校验码
要点1:奇偶校验
奇偶校验码的编码方式是由若干位有效信息(如一个字节)再加上一个二进制位(检验位)组成校验码。奇偶校验可以检查1位的错误且不可纠错。
奇校验:整个校验码(有效信息和校验位)中“1”的个数为奇数。
偶校验:整个校验码(有效信息和校验位)中“1”的个数为偶数。
要点2:循环校验码CRC
CRC的编码方法是在K位信息吗之后拼接R位校验码,应用CRC码的关键是如何从K位信息位简便地得到R位校验位(编码)以及如何从K+R位信息码判断是否出错。CRC的校验可检错但不可纠错。
要点3:海明校验码
海明校验码的原理是在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个就校验组中,当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据。计算公式为:
2�≥�+�+1