1.1 嵌入式计算机系统概述
1、计算机硬件
【1】基本的计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成
运算器:对数据进行加工处理,主要完成算术和逻辑运算
控制器:从主存中取出指令进行分析,以控制计算机各个部件
存储器:分内部存储器(内存、主存)和外部存储器(外存、辅存)
注:内存速度块、容量小,用于临时存储运行程序;外存容量大、速度慢,可以长期保存信息
寄存器:CPU中的存储器件,用来存放少量数据、正在执行的指令
【2】主机:CPU和主存储器的有机组合,I/O位于主机之外
2、计算机软件
【1】软件分为系统软件、中间件、应用软件
系统软件:管理系统的硬件和软件资源
应用软件:解决应用领域的具体问题
中间件:管理计算资源和网络通信,提供通信处理、事务处理、Web服务、安全、跨平台等服务
3、计算机分类
【1】个人移动设备:智能手机、平板电脑
【2】桌面计算机
【3】服务器
【4】集群/仓库级计算机
【5】超级计算机
【6】嵌入式计算机
1.2 数据表示
1.2.1 进位计数制及转换
1)十进制计数法与二进制计数法的相互转换
【1】十进制数转换二进制数时,整数部分和小数部分分别转换,然后再合并。
【2】十进制整数转化二进制整数 ”除2取余“,小数转换 ”乘2取整“
1.2.2 数值型数据的表示
1、原码、反码、补码、移码
1)原码表示
最高位是符号位,0表示正号,1表示负号
2)反码表示
正数的反码与原码相同,负数的反码则是其绝对值按位求反
3)补码表示
正数的补码、原码、反码都相同,负数的补码则等于其反码的末尾加1
4)移码表示
如果机器字长为 n,在偏移量为 2^n-1时,只要将补码的符号位取反便可获得相应的移码表示。
2、定点数和浮点数
1)定点数
表示数据时小数点的位置固定不变
2)浮点数
小数点位置不固定的数,能表示更大的范围
1.2.3 其他数据表示
1、ASCII码
A的ASCII码是65
2、校验码
【1】奇偶校验码
检测数据传输过程中是否发送错误
奇校验:原始码流+校验位,总共有奇数个1
偶校验:原始码流+校验位,总共有偶数个1
校验码只有一位,要么是0要么是1,可以放在码流前面也可以放在后面
实例:
【2】海明码
在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错
【3】循环冗余码
利用多项式为k个数据位产生r个校验位来进行编码,编码长度为k+r
CRC的代码格式
1.3 计算机硬件组成原理及主要部件功能
1.3.1 中央处理单元
中央处理单元(CPU)是计算机系统的核心部件,负责获取指令、对指令进行译码并加以执行
1、CPU的功能
(1)程序控制
(2)操作控制
(3)时间控制
(4)数据处理
此外,CPU还需要对系统内部和外部的中断(异常)做出响应,并做出响应处理
2、CPU的组成
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成
1)运算器
运算器由算术逻辑单元、累加寄存器、数据缓冲寄存器和状态条件寄存器
有如下两个功能
(1)执行所有的算数运算,加减乘除
(2)执行所有的逻辑运算并进行逻辑测试,与或非
运算器中各组件的功能
(1)算数逻辑单元(ALU):负责处理数据,实现算数运算和逻辑运算
(2)累加寄存器(AC):为ALU提供工作区,ALU运算结果放到AC里面
(3)数据缓冲寄存器(DR):作为CPU和内存外部设备之间数据传送的中转站
(4)状态条件寄存器(PSW):保存由算术指令和逻辑指令运行或测试的结果
2)控制器
运算器只能完成运算,控制器用于控制整个CPU工作,保证程序正常执行,能正常处理异常事件。
控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑
(1)指令寄存器(IR):当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据IR内容产生各种指令控制其他组件工作
(2)程序计数器(PC):具有寄存信息和计数两种功能,又称指令计数器
(3)地址寄存器(AR):保存当前CPU所访问的内存单元地址
(4)指令译码器(ID):指令包含操作码和地址码。对指令中的操作码字段进行分析,向控制器发出具体的控制信号
3)寄存器组
分为专用寄存器和通用寄存器
运算器和控制器中的寄存器都是专用寄存器
3、多核CPU
内核,CPU最重要的部分,CPU所有的计算、接收/存储指令、处理数据都是由内核执行
多核CP优点:可满足用户同时进行多任务处理的要求
单核多线程CPU是交替地转换多个任务
1.3.2 存储器
CPU内部的通用寄存器组和Cache(高速缓存)
CPU外部的Cache、主板上的主存储器、主板外的在线磁盘存储器以及离线
1、存储器的分类
1)按存储器所在位置分类
(1)内存:也被称为主存,存放机器当前运行所需要的程序和数据,向CPU提供信息,相较于外存,特点是容量小、速度快
(2)外存:也被称为辅存,如磁盘,存放当前不参加运行的大量信息,在需要时调入内存
2)按存储器的构成材料分类
分为磁存储器、半导体存储器、光存储器
(1)磁存储器:用磁性介质做成,如磁盘
(2)半导体存储器:根据所选器件又分为双极型、MOS型;根据数据是否需要刷新又分为静态和动态
(3)光存储器:利用光学方法读写数据,如光盘
3)按存储器工作方式分类
(1)读/写存储器:既能读取数据也能存入数据的存储器;随机存储器又分静态随机存储器(SRAM)和动态随机存储器(DRAM),SRAM比DRAM更快
(2)只读存储器:仅能读取的存储器,根据写入的方式又分ROM、PROM、EPROM、EEPROM
【1】固定只读存储器(ROM):内容只能读出,不能改变,存放系统程序BIOS和用于微程序控制
【2】可编程的只读寄存器(PROM):内容可由用户一次性写入,写入后不可再修改
【3】可擦除可编程的只读存储器(EPROM):既可以读出,也可以写入,写入后还可以再修改;改写方法:紫外线照射擦去信息,再用电子设备写入信息
【4】电擦除可编程的只读存储器(EEPROM):与EPROM类似,改写方法是用电擦除
【5】闪存(Flash Memory):非易失性存储器,基于EEPROM
注:存储在ROM设备中的程序通常称为固件
4)按访问方式分类
分为按地址访问的存储器和按内容访问的存储器
5)按寻址方式分类
分为随机存储器、顺序存储器、直接存储器
(1)随机存储器(RAM):可对任何存储单元存入或读取数据,访问时间都是相同的
(2)顺序存储器(SAM):访问数据所需要的时间与数据所在的位置有关,例如磁带
(3)直接存储器(DAM):介于随机存取和顺序存取之间的一种寻址方式。磁盘是直接存储器,对磁道的寻址是随机的,而在一个磁道内则是顺序寻址。
2、相联存储器
相联存储器是一种按内容访问的存储器。
工作原理:把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一个单元进行比较,找出存储器中所有与关键字相同的数据字,适合信息的检索与更新。
(1)输入检索寄存器:用来存放检索的内容(关键字)
(2)屏蔽寄存器:用来屏蔽那些不参与检索的字段
(3)比较器:将检索的关键字与存储体的每个单元进行比较
相联存储器可用在高速缓冲存储器中,在虚拟存储器中用来作为段表、页表或块表存储器
3、高速缓存
高速缓存(Cache)由快速半导体制成,用来存放当前最活跃的程序和数据,内容是主存局部域的副本
1)高速缓存的组成
Cache存储器中的控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中,否则没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块
在多级Cache计算机中,Cache分为一级、二级、三级等,CPU访存时首先查找L1 Cache,如果不命中,则访问L2 Cache,直到所有级别的Cache都不命中,才能访问主存。
L1 Cache的速度要快,以赶上CPU的主频
2)高速缓存中的地址映像方法
在CPU工作时,送出去的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换成Cache存储器的地址,这种地址的转换被称为地址映像。Cache有三种地址映像的方法:
(1)直接映像:主存的块与Cache的块关系是固定的
这种映像方式下,由于主存中的块只能存放在Cache存储器的相同块号中,只要主存地址中的主存区号与Cache中的主存区号一样,表明Cache能够命中,命中后,主存地址中的区内块号立即可得到要访问的Cache存储器的块,块内地址就是主存地址中给出的低位地址
优点:地址变换简单
缺点:灵活性差,不同区号中块号相同的块无法同时调入Cache存储器
(2)全相联映像:主存与Cache存储器均分成大小相同的块
这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中
优点:主存的块调入Cache的位置不受限制
缺点:无法从主存块号中直接获取Cache的块号,变换比较复杂,速度比较慢
3)替换算法
(1)随机替换算法
(2)先进先出算法
(3)近期最少使用算法
(4)优化替换算法
4)Cache性能分析
Cache设计的目标是在成本允许的条件下达到较高的命中率
1.3.3 总线
总线是指计算机设备和设备之间传输信息的公共数据通道,重要特征是总线上所有设备共享
1、总线的分类
按照所传输的信号类型可将总线分为数据总线、地址总线、控制总线
(1)数据总线(DB):用来传送数据信息,是双向的,CPU既可以通过DB从内存或输入设备读数据,也可以通过DB将内部数据送至内存或输出设备。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的位数
(2)地址总线(AB):用于传送CPU发出的地址信息,是单向的。目的是指明与CPU交换信息的内存单元或I/O设备
(3)控制总线(CB):用于传送控制信号、时序信号和状态信息等。
1.3.4 输入输出控制
从硬件角度看,输入/输出(I/O)设备是电子芯片、导线、电源、电子控制设备、电机等组成的物理设备,从软件角度只关注输入/输出设备的编程接口。
1、I/O设备概述
可将I/O设备分为块设备和字符设备两类。
块设备把信息存放在固定大小的块中,每个块都有自己的地址,独立于其他块,可寻址,如磁盘、USB闪存
字符设备以字符为单位接收或发送一个字符流,字符设备不可以寻址,如打印机、网卡、鼠标键盘
CPU于I/O设备控制器中的寄存器或数据缓冲器如何通信?
(1)为每个控制器分配一个I/O端口号,所有控制器可以形成一个I/O端口空间,这些信息存放在内存中,一般程序不能访问。
(2)将所有控制器的寄存器映射到内存空间,每个设备的寄存器都有一个唯一的地址。这种被称为内存映射I/O。
CPU无论是从内存还是I/O设备读取数据,都需要把地址放到地址总线上,然后向控制总线传递一个读信号,还要用一条信号线来表示是从内存还是I/O读取数据。
2、程序控制方式
程序控制I/O是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。分为无条件传送和程序查询方式两种情况
(1)无条件传送:此情况下,外设都是准备好的,可以无条件随时接收CPU发来的输出数据,也能无条件随时向CPU输入数据
(2)程序查询方式:通过CPU执行程序来查询外设状态,判断外设是否准备好接收数据或向CPU输入数据。
缺点:降低了CPU的效率、对外部的突发事件无法做成及时响应
3、中断方式
在中断方式下,I/O设备工作时CPU不再等待,进行其他操作,当I/O设备完成后,通过一个硬件中断信号通知CPU,CPU再来处理接下来的工作
利用中断方式完成数据的输入/输出过程:当系统与外设交换数据时,CPU无需等待也不必去查询I/O设备的状态,而是去处理其他任务。当I/O设备准备好,发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。
在系统中具有多个中断源的情况下,常用的处理方法有多中断信号线法、中断软件查询法、菊花链法、总线仲裁法和中断向量表法。
(1)多中断信号线法:每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求
(2)中断软件查询法:当CPU检测到一个中断请求后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。
(3)菊花链法:软件查询缺陷在于花费时间太多。菊花链法实际上是一种硬件查询法。所有的I/O设备共享一根中断请求线,而中断确认信号则以链式在各模块间相连,当CPU检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在I/O模块间传递,直到发出请求的模块,该模块则把它的ID送往数据线由CPU读取
(4)总线仲裁法:一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可以由总线仲裁机制来裁定谁可以发出中断请求信号。当CPU发出中断响应信号后,该设备即把自己的ID发往数据线
(5)中断向量表法:中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号后,由中断控制器确认其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时中断控制器把中断信号提交给CPU。
在中断优先级控制系统中,给最紧迫的中断源分配高的优先级,而给那些要求相对不紧迫的中断源分配低一些的优先级,在进行优先级控制时有两种情况
(1)不同优先级的多个中断源同时提出中断请求时,CPU应优先响应优先级最高的中断源
(2)当CPU正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求,CPU应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束后再回到原来的中断服务,称为中断嵌套。
4、DMA方式
在计算机与外设交换数据的过程中,无论是无条件传送1、利用查询方式还是利用中断方式传送,都需要由CPU通过执行程序来实现,这就限制了数据的传输速度
直接内存存取(DMA)是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备之间传送一个数据块的过程中,不需要CPU的干涉,只需要将CPU在过程中开始启动与过程结束时的处理,实际操作由DMA硬件直接完成,CPU在此期间可做别的事。
5、输入/输出处理机
通道是一个具有特殊功能的处理机,分担了CPU的部分功能,可实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。通道方式大大提高了CPU的工作效率,然而这种工作效率的提高是以增加更多的硬件为代价的。
外围处理机是通道方式的进一步发展。PPU是专用处理机,根据主机的I/O命令,完成对外设数据的输入/输出。
1.4 计算机体系结构
1.4.1 CISC和RISC
CISC和RISC是指令集发展的两种途径
1)复杂指令集计算机(CISC)的基本思想是进一步增强原指令的功能,用更复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大、复杂。大多数计算机都属于CISC
CISC的主要弊端
(1)指令集过于庞杂
(2)微程序计数是CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,这就需要多个CPU周期,从而降低了机器的处理速度
(3)由于指令系统过于庞大,使高级语言编译程序选择目标指令的范围很大,难以优化编译使之生成高效的目标代码
(4)CISC强调完善的中断控制,导致动作繁多、设计复杂、研制周期长
(5)CISC给芯片设计带来更多困难,成本提高而成品率降低
2)精简指令集计算机(RISC)的基本思想是通过减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令执行速度,采用硬布线控制逻辑优化编译程序。
RISC的关键技术如下
(1)重叠寄存器窗口技术
(2)优化编译技术
(3)超流水线及超标量技术
(4)硬布线逻辑与微程序相结合
1.4.2 流水线技术和超标量
1)指令控制方式有顺序方式、重叠方式、流水方式
(1)顺序方式:各条机器指令之间顺序串行地执行,执行完一条指令后才能取下一条指令。优点:控制简单;缺点:速度慢
(2)重叠方式:在解释第k条指令地操作完成之前就可以开始解释第k+1条指令
(3)流水方式:模仿工业生产过程的流水线。流水技术把并行性或并发性嵌入到计算机系统,把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效的工作
2)流水线的种类
(1)从流水级别上,分部件级、处理机级、系统级
(2)从流水的功能上,分单功能流水线、多功能流水线
(3)从流水的连接上,分静态流水线、动态流水线
(4)从流水是否有反馈回路,分线性流水、非线性流水
(5)从流水的流动顺序,分同步流水线、异步流水线
(6)从流水线数据表示,分标量流水线、向量流水线
3)流水的相关处理
流水时机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器的“先写后读”的要求,这就出现了相关。
相关包含指令相关、访存操作数相关以及通用寄存器组相关等。最多影响流水线的某些段推后工作,并不会改动指令内容,被称为局部性相关。两种解决方法:推后法、通路法
转移指令与它后面的指令之间存在关联,使之不能同时解释。可能会改变指令内容,称为全局性相关。3种解决办法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理
4)超标量
通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI(每条指令需要的机器周期数),实质是以空间换取时间
1.4.3 多处理机、并行处理、分布处理
并行性包括同时性和并发性。同时性指两个或两个以上事件在同一时刻发生,并发性指两个或两个以上事件在同一时间间隔内连续发生。
多处理机系统由多台处理机组成的系统,每台处理机都有自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。
1.4.4 冯.诺伊曼结构与哈佛结构
1、冯.诺伊曼结构
也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构,它俩宽度相同
特点:
(1)单处理机结构,机器以运算器为中心
(2)指令和数据一样可以参与运算
(3)数据以二进制表示
(4)指令由操作码和操作数组成
(5)指令顺序执行
2、哈佛结构
指令存储器与数据存储器是分开的,分别拥有独立的总线
特点:
可以同时从指令存储器和数据存储器中读取信息
1.5 可靠性与系统性能评测基础知识
1.5.1 诊断与容错
元器件的可靠性分为3个阶段,开始阶段,元器件处于不稳定期,失效率较高;在第二阶段,元器件进入正常期,失效率最低;在第三阶段,元器件开始老化,失效率重新提高。
可靠性是指从它开始运行(t=0)到某时刻t这段时间内能正常运行的概率,用R(t)表示;失效率是指单位时间内失效的元器件数与元器件总数的比例,用λ 表示,二者关系为
计算机的RAS是指可靠性R、可用性A和可维修性S这3个指标衡量一个计算机系统。
1.5.2 系统可靠性分析评价
常见的系统可靠性数学模型
(1)串联系统
(2)并联系统
(3)N模冗余系统
1.5.3 计算机系统性能评测方法
性能评测常用方法:
(1)时钟频率
(2)指令执行速度
(3)等效指令速度法
(4)数据处理速率
(5)核心程序法