第二章处理器和存储器组织_第1页
第二章处理器和存储器组织_第2页
第二章处理器和存储器组织_第3页
第二章处理器和存储器组织_第4页
第二章处理器和存储器组织_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章 处理器和存储器处理器和存储器 组组 织织本章内容:本章内容:u2.1 处理器中的结构单元处理器中的结构单元u2.2 嵌入式系统的处理器选择嵌入式系统的处理器选择u2.3 存储器设备存储器设备u2.4 嵌入式系统的存储器选择嵌入式系统的存储器选择u2.5 程序段和块的存储器分配及系统程序段和块的存储器分配及系统的的 存储器影射存储器影射u2.6 直接存储器访问()直接存储器访问() u2.7 处理器、存储器和处理器、存储器和I/O设备的接口设备的接口教学目的:教学目的:u了解嵌入式处理器的结构单元了解嵌入式处理器的结构单元u熟悉各类存储器设备及其应用熟悉各类存储器设备及其应用u掌握存

2、储器块的使用掌握存储器块的使用u掌握存储器影射的概念掌握存储器影射的概念u掌握掌握ROM的映像的映像u掌握直接存储器访问()掌握直接存储器访问()u掌握与存储器及设备的接口掌握与存储器及设备的接口u安排学时:安排学时:8学时。学时。2.1 处理器中的结构单元处理器中的结构单元u通用处理器中的结构单元通用处理器中的结构单元通用处理器结构单通用处理器结构单元元.docuCISC为控制器和处理器的特征为控制器和处理器的特征CISC处理器的处理器的特征特征.docuRISC为控制器和处理器的特征为控制器和处理器的特征RISC处理器的处理器的特征特征.doc名词解释名词解释u(1) 分支代价分支代价(b

3、ranch penalty)。如果在一个多级流水线。如果在一个多级流水线中碰到一条分支指令,则在流水线前面几级中执行的指令中碰到一条分支指令,则在流水线前面几级中执行的指令就是冗余的。当循环结束或者从例程返回后,这些指令必就是冗余的。当循环结束或者从例程返回后,这些指令必须重新执行。重新执行这些指令所需要的时间就称为分支须重新执行。重新执行这些指令所需要的时间就称为分支代价。代价。u(2) 数据依赖性代价数据依赖性代价(data dependency penalty)。假设在。假设在一个超标量操作中,有两个指令分别在两路中执行。并且一个超标量操作中,有两个指令分别在两路中执行。并且一条指令依赖

4、于另外一条指令的数据结果。这就是所谓的一条指令依赖于另外一条指令的数据结果。这就是所谓的不对准。因此,在将两条指令分别放置在不同的路中之前,不对准。因此,在将两条指令分别放置在不同的路中之前,它们是不对准的。此时,一条指令必须等待,直到另外一它们是不对准的。此时,一条指令必须等待,直到另外一条指令执行完后才能执行。等待的时间就是数据依赖性代条指令执行完后才能执行。等待的时间就是数据依赖性代价。价。流水线和超标量执行流水线和超标量执行假定1假设处理器指令周期是0.02ms(频率为50MHz),并且处理器在一个时钟周期内执行一条指令。如果不考虑其他高级处理单元,处理器的性能预期为50MIPS。假定

5、2假设处理器中有一个三级流水线,如ARM7中的流水线。我们暂时忽略分支的影响(称为分支代价)。三条指令将在一个时钟周期内处理完。不考虑超标量处理单元,只考虑流水线,处理器的最大预期性能为150MIPS。假定3假设有一个两路的超标量。先忽略未调整数据的影响(称为数据依赖性代价)。当具有三级流水线、两路超标量单元时,6条指令将在一个时钟周期内执行完。现在最高的性能是处理器周期的6倍,也就是300MIPS。2.2 嵌入式系统的处理器选择嵌入式系统的处理器选择u(1) 指令周期时间指令周期时间(instruction cycle time):这是处理器执行:这是处理器执行一条指令所需要的时间,对于工作

6、频率约为一条指令所需要的时间,对于工作频率约为12MHz的的8051处处理器来说约为理器来说约为1s;对于;对于C805125MHz为为40ns; ARM9 (3.3ns300MHz) 。u(2) 内部总线宽度内部总线宽度(internal bus width):ALU(数学或逻辑操数学或逻辑操作作)的一个操作数的位数等于总线宽度。当总线宽度为的一个操作数的位数等于总线宽度。当总线宽度为32位位时,其读写的整数宽度就为时,其读写的整数宽度就为32位,且执行速度比总线宽度为位,且执行速度比总线宽度为8时的速度快大约时的速度快大约4倍。倍。PowerPC 、MPC 604处理器和奔腾处理器和奔腾处

7、理器的内部总线宽度为处理器的内部总线宽度为64位。位。u(3) CISC或者或者RISC体系结构:体系结构:CISC或者或者RISC体系结构会体系结构会影响系统设计。影响系统设计。CISC具有用较少的寄存器处理复杂指令具有用较少的寄存器处理复杂指令和复杂数据集的能力。和复杂数据集的能力。RISC执行较简单的指令,每条指执行较简单的指令,每条指令只占用一个周期。具有令只占用一个周期。具有RISC实现的实现的CISC是说:对大多是说:对大多数指令而言,都具有在单个指令周期中执行的硬连线实现数指令而言,都具有在单个指令周期中执行的硬连线实现(如如ARM、80960和奔腾处理器和奔腾处理器)。u(4)

8、 程序计数器程序计数器(PC)及其复位值:及其复位值:PC的位数确定了处理器的位数确定了处理器可以访问的物理内存的最大空间。复位值告诉设计者,在可以访问的物理内存的最大空间。复位值告诉设计者,在运行系统复位和加电的程序应该存放在什么地方。运行系统复位和加电的程序应该存放在什么地方。u(5) 堆栈指针堆栈指针(stack pointer)及其初始复位值:堆栈指针及其初始复位值:堆栈指针保存存储在堆栈中数据的地址,并应在系统分配给堆栈使保存存储在堆栈中数据的地址,并应在系统分配给堆栈使用的地址范围之内。设计者需定义初始复位值;且必须在用的地址范围之内。设计者需定义初始复位值;且必须在两种存储器之间

9、进行选择:使用外部堆栈或使用内部堆栈。两种存储器之间进行选择:使用外部堆栈或使用内部堆栈。u(6) 片上存储器(片上存储器(RAM、寄存器文件、窗口、缓存、寄存器文件、窗口、缓存、ROM)。软件通过指令来启用处理器中的高速缓存,使得在)。软件通过指令来启用处理器中的高速缓存,使得在运行程序中某一部分时获得更高的性能;而同时又禁止程序中运行程序中某一部分时获得更高的性能;而同时又禁止程序中其余部分使用高速缓存,以降低功耗并将系统的能量需求最小其余部分使用高速缓存,以降低功耗并将系统的能量需求最小化。硬件应该选择一个具有多路缓存单元的处理器,这样就能化。硬件应该选择一个具有多路缓存单元的处理器,这

10、样就能够只激活一个高速缓存够只激活一个高速缓存(包含执行指令的一个子集时所需要的包含执行指令的一个子集时所需要的数据数据)。u(7) 外部中断外部中断(external interrupt):在处理器中有几个管脚,:在处理器中有几个管脚,外部电路可以通过这些管脚发送中断信号。外部电路可以通过这些管脚发送中断信号。u(8) 中断控制器中断控制器(interrupt controller):对服务程序优先级:对服务程序优先级进行编程,并分配向量地址。内部中断处理器在大多数应进行编程,并分配向量地址。内部中断处理器在大多数应用程序中都有很大的帮助。用程序中都有很大的帮助。u(9) 位操作指令位操作指

11、令(bit manipulation instruction):这些指:这些指令有助于简化端口和存储器地址中数据的处理。令有助于简化端口和存储器地址中数据的处理。u(10) 浮点处理器浮点处理器(float point processor):包含:包含FLPU和和FRS单元的处理器能够快速执行浮点运算。它们能够提高单元的处理器能够快速执行浮点运算。它们能够提高处理器的计算能力,适用于信号处理和复杂的控制应用。处理器的计算能力,适用于信号处理和复杂的控制应用。u(11) 多通道直接存储器访问多通道直接存储器访问(direct memory access,DMA)控制器:当有多个控制器:当有多个I

12、/O设备,并且一个设备,并且一个I/O设备需要设备需要快速访问一个多字节数据集时,系统存储器片上快速访问一个多字节数据集时,系统存储器片上DMA控控制器会有很大的帮助。制器会有很大的帮助。u(12) 片上片上MMU:当使用高速缓存、虚拟内存管理、内存:当使用高速缓存、虚拟内存管理、内存保护时需要这个单元。保护时需要这个单元。2.2 嵌入式系统总体结构嵌入式系统总体结构2.2.1 硬件层硬件层2.2.2 中间层中间层2.2.3 软件层软件层2.2.4 功能层功能层2.3 存储器设备存储器设备2.3.1 ROM:使用方法、形式和变种:使用方法、形式和变种2.3.2 RAM设备设备2.3.1 ROM

13、:使用方法、形式和变种:使用方法、形式和变种掩模掩模ROM(masked ROM),是一个具有),是一个具有r个输入个输入(A0Ar-1)和)和8个输出的时序电路,由芯片生产厂个输出的时序电路,由芯片生产厂家采用采用半导体工艺家采用采用半导体工艺“批量批量”生产出来的。生产出来的。EPROM、EEPROM和和OTP ROM EPROM和和EEPROM需要先擦除(写入需要先擦除(写入FF),后写),后写入数据。入数据。 OTP ROM是一次性写入的是一次性写入的ROM。FLASH ROMnFLASH ROM是一种是一种5V或或3V性质的性质的EEPROM,其擦除必须整块地擦除,然后再写入。其擦除

14、必须整块地擦除,然后再写入。nFLASH ROM的分类及特性的分类及特性。2.3.2 RAM设备设备nRAM的使用:的使用: 用来存储程序运行时的变量、存储堆栈、数据结构等。此用来存储程序运行时的变量、存储堆栈、数据结构等。此外环可作为输入外环可作为输入/输出缓存。输出缓存。nRAM的分类:的分类: SRAM(Static RAM) 静态静态RAM速度非常快,只要加电内容就不会消失。但他的基本存速度非常快,只要加电内容就不会消失。但他的基本存储电路是由储电路是由6个个MOS管组成管组成1位。集成度较低,功耗也较大。一般位。集成度较低,功耗也较大。一般高速缓冲存储器(高速缓冲存储器(Cache

15、memory)用它组成。)用它组成。 DRAM(Dynamic RAM) DRAM内容在断电后数秒之内自动消失,因此必须周期性的在内内容在断电后数秒之内自动消失,因此必须周期性的在内容消失之前进行刷新(容消失之前进行刷新(Refresh)。由于他的基本存储电路由一个)。由于他的基本存储电路由一个晶体管及一个电容组成,因此他的集成成本较低,另外耗电也少,晶体管及一个电容组成,因此他的集成成本较低,另外耗电也少,但是需要刷新电路。但是需要刷新电路。 静态静态RAM:同步突发:同步突发SRAM(synchronous burst SRAM, SB SRAM)、管道突发)、管道突发SRAM(pipel

16、ined burst SRAM, PB SRAM)等。)等。 动态动态RAM:快速页模式:快速页模式DRAM(fast page mode DRAM, FPM DRAM)、扩充数据输出)、扩充数据输出RAM(extended data output RAM, EDORAM)、同)、同步步DRAM(synchronous DRAM, SDRAM)、)、RDRAM(Rambus DRAM)、)、DRDRAM(direct Rambus DRAM)等。)等。 专用存储器芯片专用存储器芯片:铁电体:铁电体RAM(ferroeelectric RAM, FRAM)、双口)、双口RAM、先进先出存储器、先

17、进先出存储器(FIFO RAM)等。)等。2.4 嵌入式系统的存储器选择嵌入式系统的存储器选择u(1)成本:如果系统的随机存储器的容量不是很)成本:如果系统的随机存储器的容量不是很大,一般采用大,一般采用SRAM,反之,选择,反之,选择DRAM存储器。存储器。u(2)对于嵌入式处理器而言,有的嵌入式处理器)对于嵌入式处理器而言,有的嵌入式处理器芯片本身集成了芯片本身集成了DRAM控制器,这时选择控制器,这时选择DRAM是是一个比较好的方案。一般的,小规模的嵌入式系统一个比较好的方案。一般的,小规模的嵌入式系统不建议使用分离的不建议使用分离的DRAM控制器控制器DRAM的方案,的方案,因为这种方

18、案一方面增加系统的复杂性(电路板的因为这种方案一方面增加系统的复杂性(电路板的面积、故障率等);另一方面会增加系统的成本。面积、故障率等);另一方面会增加系统的成本。u(3)如果确实需要)如果确实需要DRAM,那么尽量使用带有,那么尽量使用带有DRAM控制器的嵌入式处理器,然后配合使用控制器的嵌入式处理器,然后配合使用DRAM。u(4)对于特别高速度的应用,可使用)对于特别高速度的应用,可使用SRAM。u(5)如果嵌入式系统对功耗很敏感,可使用)如果嵌入式系统对功耗很敏感,可使用SRAM,因为因为DRAM需要时刻刷新,消耗能量;而需要时刻刷新,消耗能量;而SRAM在在系统进入待机方式时,只需要

19、微小的待机电流就可系统进入待机方式时,只需要微小的待机电流就可以维持数据不丢失。以维持数据不丢失。q注意:注意:SRAM的平均功耗低,但是工作时功耗不一定低。的平均功耗低,但是工作时功耗不一定低。 作作 业业201. 请给出请给出SDRAM、RDRAM的定义,说明其各自的特点和区别。的定义,说明其各自的特点和区别。2. DRAM对读写有何要求?给出读写时序。对读写有何要求?给出读写时序。2.5 程序段和块的存储器分配及系统程序段和块的存储器分配及系统 的存储器影射的存储器影射2.5.1 各种存储器中的函数、过程、数据和堆栈各种存储器中的函数、过程、数据和堆栈2.5.2 不同数据结构和数据集合元

20、素的存储器块不同数据结构和数据集合元素的存储器块2.5.3 存储器映射存储器映射2.5.4 内部设备和内部设备和I/O设备在映射中的地址设备在映射中的地址2.5.1 各种存储器中的各种存储器中的函数、过程、数据和堆栈函数、过程、数据和堆栈2.5.2 不同数据结构和数据集合元素的存储器块不同数据结构和数据集合元素的存储器块n堆栈(堆栈(stack): u堆栈是一个按照堆栈是一个按照LIFO规则使规则使用的内存块。堆栈可以用来用的内存块。堆栈可以用来保存断点、传递数据,在多保存断点、传递数据,在多任务系统中,每个任务(线任务系统中,每个任务(线程)均有自己的堆栈,可用程)均有自己的堆栈,可用来存储

21、上下文来存储上下文(context)。u每个堆栈都有自己的堆栈指每个堆栈都有自己的堆栈指针,该指针总是指向栈顶。针,该指针总是指向栈顶。u堆栈定义的操作有:压栈、堆栈定义的操作有:压栈、退栈、获得存储空间(建退栈、获得存储空间(建立)、栈指针的越界检验。立)、栈指针的越界检验。n 数组数组(array)u数组是一个重要的数据结构。可用来存储有严格的顺序关数组是一个重要的数据结构。可用来存储有严格的顺序关系的一组数据。数组在内存中占有一个物理地址连续的存系的一组数据。数组在内存中占有一个物理地址连续的存储器块。储器块。u一般来讲,数组名就是指向该存储器块的指针。一般来讲,数组名就是指向该存储器块

22、的指针。u数组可以借助下标对其中的元素进行寻址。数组可以借助下标对其中的元素进行寻址。 n队列队列(queue):u队列是一个物理地址连续的存储器块,其中的数据元素总队列是一个物理地址连续的存储器块,其中的数据元素总是以是以FIFO的模式取回。使用队列数据结构,可以将数据的模式取回。使用队列数据结构,可以将数据通过网络传送到一个文件中或者打印机中。通过网络传送到一个文件中或者打印机中。u队列有两个指针。一个称为队尾指针,另一个称为队首指队列有两个指针。一个称为队尾指针,另一个称为队首指针,两个指针的差值是队列的当前长度。元素从队尾指针针,两个指针的差值是队列的当前长度。元素从队尾指针指向的位置

23、插入指向的位置插入(写操作写操作),每次增加元素后这个指针都应,每次增加元素后这个指针都应该增加;队首指针用来完成元素的删除该增加;队首指针用来完成元素的删除(读操作读操作)。每次删。每次删除元素后这个指针都应该增加。两个指针开始的时候都指除元素后这个指针都应该增加。两个指针开始的时候都指向存储器块中的起始地址。向存储器块中的起始地址。u对队列指针应该设立越界检验。对队列指针应该设立越界检验。u另外一种队列就是环形队列。另外一种队列就是环形队列。 n 管道管道(pipe) :u在分配给一个队列的普通存储器块中,当执行插入操作一在分配给一个队列的普通存储器块中,当执行插入操作一端的标识与执行删除

24、操作一端的目的标识不同时,通常称端的标识与执行删除操作一端的目的标识不同时,通常称这样的队列为管道。这个队列中有两个实体以某种方式相这样的队列为管道。这个队列中有两个实体以某种方式相连。例如,一个实体用来向队列中写连。例如,一个实体用来向队列中写(插入插入)元素,另一个元素,另一个实体用来从队列中读实体用来从队列中读(删除删除)元素。元素。u一个管道通常连接两个任务。一个管道通常连接两个任务。注意:注意:1.管道的数据传管道的数据传输有延迟。输有延迟。2.管道不适用于管道不适用于并发程序设计。并发程序设计。n 表表(table):u表是一个二维数组表是一个二维数组(矩阵矩阵),是分配了存储器块

25、的一个重要,是分配了存储器块的一个重要数据集合。表总是有一个基指针。它指向表的第数据集合。表总是有一个基指针。它指向表的第1列第列第1行行的第的第1个元素。存在两个索引,一个是列索引,一个是行个元素。存在两个索引,一个是列索引,一个是行索引。索引。u与数组相同,任何元素都可以通过三个地址与数组相同,任何元素都可以通过三个地址(表基址、列表基址、列索引和行索引索引和行索引)取回。当用表中的数值代替指针的时候,取回。当用表中的数值代替指针的时候,指令中使用的数值称为偏移指令中使用的数值称为偏移(displacement)。偏移可以是。偏移可以是一行或者一列。一行或者一列。u表的存放有按列存放或按行

26、存放两种。表的存放有按列存放或按行存放两种。n哈希表哈希表(hash table):u是一个键是一个键/值数据集合。哈希表的每一列都有一个键或者名字。相应的值数据集合。哈希表的每一列都有一个键或者名字。相应的数值或者对象在第数值或者对象在第2列。键可以存在于不连续的存储器地址中。查表的列。键可以存在于不连续的存储器地址中。查表的过程就像创建散列。如果表的第过程就像创建散列。如果表的第1列作为键列作为键(指向数值的指针指向数值的指针),第,第2列作列作为数值,我们称这样的表为查询表。为数值,我们称这样的表为查询表。u哈希表是一个分配了存储器块的数据集合,通常用作查询表。正如索引标哈希表是一个分配

27、了存储器块的数据集合,通常用作查询表。正如索引标识了数组元素一样,一个哈希键也标识了一个哈希元素。识了数组元素一样,一个哈希键也标识了一个哈希元素。 n 链表链表(list):u是一个具有多个存储器块的数据结构,每一个元素都有一个存储器块是一个具有多个存储器块的数据结构,每一个元素都有一个存储器块(物理地址不连续,但逻辑地址连续物理地址不连续,但逻辑地址连续)。链表具有顶。链表具有顶(头头)指针,指向链指针,指向链表开始处的存储器地址。存储器中的每一个链表元素也保存了指向下表开始处的存储器地址。存储器中的每一个链表元素也保存了指向下一个元素的指针。最后一个元素不指向任何地方。链表用来保存存储一

28、个元素的指针。最后一个元素不指向任何地方。链表用来保存存储器中不连续存储的对象。器中不连续存储的对象。u链表有单向链表和双向链表之分。链表有单向链表和双向链表之分。2.5.3 存储器映射存储器映射u右图给出了系统中具有右图给出了系统中具有Princeton结构时所需要结构时所需要的存储器区域和具有的存储器区域和具有Harvard结构时所需要的结构时所需要的存储器区域。存储器区域。u(1) 在在Princeton结构中,结构中,程序中的向量和指针、变程序中的向量和指针、变量、程序段和保存数据和量、程序段和保存数据和堆栈的存储器块都同一物堆栈的存储器块都同一物理存储中但具有不同的地理存储中但具有不

29、同的地址。址。u(2) 在在Harvard结构中,程结构中,程序段和保存数据和堆栈的序段和保存数据和堆栈的存储器块具有独立的地址存储器块具有独立的地址空间。控制信号和读写指空间。控制信号和读写指令也是分开的令也是分开的存储器分配映射的示例存储器分配映射的示例 n嵌入式系统示例嵌入式系统示例(借贷卡借贷卡)的存储器映射需要一个的存储器映射需要一个2KB的存储器。它还需要一个的存储器。它还需要一个256字节的字节的RAM,主要用于,主要用于堆栈。还需要堆栈。还需要512字节的字节的EEPROM,用来存储贷方或,用来存储贷方或者借方的余额,以及卡的前一次交易记录。因此这个者借方的余额,以及卡的前一次

30、交易记录。因此这个系统的存储器定位器或者链接脚本程序可以如下定义系统的存储器定位器或者链接脚本程序可以如下定义存储器映射。存储器映射。 1. Memory 2. ram : ORIGIN = 0 x10000, LENGTH = 256 3. eeprom : ORIGIN = 0 x20000, LENGTH = 512 4. rom : ORIGIN = 0 x00000, LENGTH = 2K 5. 嵌入式存储器子系统的设计考虑嵌入式存储器子系统的设计考虑n尽量使用存储密度大的存储器芯片尽量使用存储密度大的存储器芯片 n充分考虑嵌入式系统的功耗限制充分考虑嵌入式系统的功耗限制n成本考虑

31、,大多数嵌入式系统的存储器容量成本考虑,大多数嵌入式系统的存储器容量与软件的大小匹配。与软件的大小匹配。n扩展存储器考虑扩展存储器考虑q片上有存储器片上有存储器q片上无存储器片上无存储器q考虑综合成本(含电路板面积)考虑综合成本(含电路板面积)n嵌入式系统的存储器子系统通常设计成嵌入式系统的存储器子系统通常设计成模块结构模块结构,包括包括ROM子系统、子系统、RAM子系统等,每个子系统占子系统等,每个子系统占用一定的存储空间。用一定的存储空间。n一体化设计与分离式设计:一体化设计与分离式设计:嵌入式系统的存储器通嵌入式系统的存储器通常与系统主板设计在一起,而不设计成所谓常与系统主板设计在一起,

32、而不设计成所谓“内存内存条条”形式,原因是一方面嵌入式系统的内存通常是形式,原因是一方面嵌入式系统的内存通常是固定大小的;另一方面,一体结构可以提高系统的固定大小的;另一方面,一体结构可以提高系统的可靠性,因为嵌入式系统通常工作在恶劣环境、移可靠性,因为嵌入式系统通常工作在恶劣环境、移动环境中。动环境中。n关于嵌入式处理器的关于嵌入式处理器的中断向量表中断向量表,有两种设计方案:,有两种设计方案:一种方案是中断向量或中断处理程序的入口地址设一种方案是中断向量或中断处理程序的入口地址设置在置在ROM空间,一旦设置,运行中不再更改,如大空间,一旦设置,运行中不再更改,如大多数小规模的嵌入式处理器多

33、数小规模的嵌入式处理器/控制器采取这种方式;控制器采取这种方式;另外,也可以把中断向量设计在另外,也可以把中断向量设计在RAM空间。空间。n(2-1) 一个一个33的矩阵与另外一个的矩阵与另外一个32的矩阵相乘。如果的矩阵相乘。如果从一个寄存器到另外一个寄存器的数据传送需要从一个寄存器到另外一个寄存器的数据传送需要2ns,加,加法需要法需要20ns,乘法需要,乘法需要50ns,执行时间为多少?假设这,执行时间为多少?假设这些时间在具有些时间在具有MAC单元的单元的DSP中是相同的,中是相同的,MAC将起到将起到什么作用?什么作用?n(2-2) 一个数组具有一个数组具有10个整数,每个整数都是个

34、整数,每个整数都是32位的。令位的。令每个整数等于其在数组中的索引乘以每个整数等于其在数组中的索引乘以1024。令存储器中。令存储器中的基址为的基址为0 x4800。对于第。对于第0个、第个、第4个、第个、第9个元素,在个元素,在(a)big-endian模式和模式和(b)little-endian模式下将如何存储?模式下将如何存储?n(2-3) 我们可以假设嵌入式系统的存储器也是一个设备。我们可以假设嵌入式系统的存储器也是一个设备。列出这样说的理由列出这样说的理由(提示:利用访问控制寄存器和虚拟文提示:利用访问控制寄存器和虚拟文件和件和RAM磁盘设备的概念磁盘设备的概念)。n(2-4) 现在

35、高性能嵌入式系统或者使用现在高性能嵌入式系统或者使用RISC处理器,或者处理器,或者使用具有使用具有RISC核、代码最优化核、代码最优化CISC指令集的处理器。为指令集的处理器。为什么?什么?n(2-5) 存储器中的循环队列具有存储器中的循环队列具有100个字符,每个字符为个字符,每个字符为32位。包括两个队列指针在内,总共需要多少存储器空间?位。包括两个队列指针在内,总共需要多少存储器空间?2.6 直接存储器访问直接存储器访问I/O设备需要将其他系统的数据传送到系统的存储器地址上。设备需要将其他系统的数据传送到系统的存储器地址上。系统可能还需要将要传送到其他系统的数据传送到系统可能还需要将要

36、传送到其他系统的数据传送到I/O设备上。设备上。当多字节数据或者一个数据块需要在两个系统之间、在当多字节数据或者一个数据块需要在两个系统之间、在CPU不干预不干预(除了传送的开始和结束之外除了传送的开始和结束之外)的情况下进行传送时,需的情况下进行传送时,需要直接存储器访问要直接存储器访问(Direct Memory Access,DMA)。在在DMA操作中三种模式:操作中三种模式:u一次传送一个字节,然后放弃系统总线(主要用于测试和调试模式)一次传送一个字节,然后放弃系统总线(主要用于测试和调试模式)u一次进行一次进行burst传送,然后放弃系统总线。一次传送,然后放弃系统总线。一次burs

37、t传送可能是几个传送可能是几个KB。u进行批传送,并在传送完后放弃系统总线(一般在每次原子操作后,释进行批传送,并在传送完后放弃系统总线(一般在每次原子操作后,释放一次总线控制权,以让其他总线控制器有机会可以占有总线)放一次总线控制权,以让其他总线控制器有机会可以占有总线) 。 uDMA传送是在传送是在DMAC(DMA控制器控制器)的协助下进行的。的协助下进行的。由于由于DMAC只需要很少的处理器干预,因而提高了只需要很少的处理器干预,因而提高了I/O设备和系统存储器之间的数据传送效率。设备和系统存储器之间的数据传送效率。u在传送的过程中,系统地址和数据总线对于处理器来在传送的过程中,系统地址

38、和数据总线对于处理器来说是不可用的,而对于与说是不可用的,而对于与DMAC相连的相连的IO设备是可用设备是可用的(如计算机中,硬盘和系统存储器之间的数据传送的(如计算机中,硬盘和系统存储器之间的数据传送使用的是使用的是DMAC通道)。除了处理器之外,其他的设通道)。除了处理器之外,其他的设备也可以通过来获得系统存储器的使用权。备也可以通过来获得系统存储器的使用权。nDMAC可以为多个通道提供存储器访问。对于每一个通道的编程,有单独的寄存器组。在多通道DMAC的情况下,会有单独的中断信号。一个多通道DMAC提供来自系统存储器和两个(或者多个IO)设备的DMA操作。.接口技术接口技术2.3.3 嵌

39、入式系统的软硬件协同设计技术嵌入式系统的软硬件协同设计技术2.4 嵌入式系统开发过程嵌入式系统开发过程2.4.1 需求分析阶段需求分析阶段2.4.2 详细设计阶段详细设计阶段 2.4.3 实现阶段实现阶段 2.4.4 测试阶段测试阶段 需求分析系统测试系统实现详细设计概要设计详细设计嵌入式产品开发过程2.4.1 需求分析阶段需求分析阶段2.4.1.1 分析用户的需求分析用户的需求2.4.1.2 确定硬件软件确定硬件软件2.4.1.3 检查需求分析的结果检查需求分析的结果2.4.1.4 确定项目的约束条件确定项目的约束条件2.4.1.5 概要设计概要设计2.4.1.1 分析用户的需求分析用户的需

40、求1、分析用户对产品的需求、分析用户对产品的需求2、确认需求、确认需求3、罗列用户的需求、罗列用户的需求4、设计简单的需求表格、设计简单的需求表格5、需求的内部一致性、需求的内部一致性1、分析用户对产品的需求、分析用户对产品的需求n用户:一般用户、公司内部的市场部门等用户:一般用户、公司内部的市场部门等n需求指标:需求指标:n功能功能n价格价格n系统的尺寸和重量系统的尺寸和重量n功耗功耗n其他。其他。2、确认需求、确认需求n用户的表达方式用户的表达方式n 。n系统设计者的表达方式系统设计者的表达方式n 。n交互的一致性交互的一致性n 。3、罗列用户的需求、罗列用户的需求1/4(1)系统用于什么

41、任务?)系统用于什么任务?(2)系统从用户或其他源接收什么输入?)系统从用户或其他源接收什么输入?(3)系统从用户或其他源输出什么?)系统从用户或其他源输出什么?(4)用户想要如何同系统打交道?)用户想要如何同系统打交道?(5)系统的重量和体积如何?)系统的重量和体积如何?3、罗列用户的需求、罗列用户的需求2/4(6)系统连接何种外设?)系统连接何种外设?(7)系统是否需要运行某些现存的软件?)系统是否需要运行某些现存的软件?(8)系统处理哪种类型的数据?)系统处理哪种类型的数据?(9)系统是否要与别的系统通讯?)系统是否要与别的系统通讯?(10)系统是单机还是网络系统?)系统是单机还是网络系

42、统?3、罗列用户的需求、罗列用户的需求3/4(11)系统的响应时间是多少?)系统的响应时间是多少?(12)需要什么安全措施?)需要什么安全措施?(13)系统在什么样的环境下运行?)系统在什么样的环境下运行?(14)外部存储媒介和内存需要多大?)外部存储媒介和内存需要多大?(15)系统的可拆装性,可靠性和牢固性)系统的可拆装性,可靠性和牢固性的期望值是什么?的期望值是什么?3、罗列用户的需求、罗列用户的需求4/4(16)如何给系统供电?)如何给系统供电?(17)系统如何向用户通报故障?)系统如何向用户通报故障?(18)是否需要任何手动或机械代用装置?)是否需要任何手动或机械代用装置?(19)系统

43、是否将具有远程诊断或更正问题的功)系统是否将具有远程诊断或更正问题的功能?能?(20)其他问题)其他问题名称目的输入输出功能性能生产成本功耗物理尺寸和重量5、需求的内部一致性、需求的内部一致性(注注)n在写完需求以后,对它们的内部一致性进行在写完需求以后,对它们的内部一致性进行检查:检查:n是否忘记了给某个功能指定输入或输出?是否忘记了给某个功能指定输入或输出?n是否考虑了系统运行的所有方式?是否考虑了系统运行的所有方式?n是否有一些不切实际的要求?是否有一些不切实际的要求?n系统是否可以实现?系统是否可以实现?2.4.1.2 确定硬件软件确定硬件软件1、处理器选型2、总线的吞吐量3、操作系统

44、4、编程语言5、第三方软件或库函数6、第三方的硬件:开发板、评估板、OEM板7、其他。2.4.1.3 对需求的结果进行检查对需求的结果进行检查n原因原因q需求分析阶段可能会发生错误需求分析阶段可能会发生错误-走弯路走弯路n目的目的q资料的全面性、工作的细致性资料的全面性、工作的细致性n方法和内容方法和内容q干扰的信息(多余)干扰的信息(多余)q漏掉的信息(缺少)漏掉的信息(缺少)q超前的信息(一些需要在设计阶段才提出的信息)超前的信息(一些需要在设计阶段才提出的信息)q矛盾(相互制约)矛盾(相互制约)q模棱两可模棱两可q无法实现无法实现2.4.1.4 确定项目的约束条件确定项目的约束条件n约束

45、约束条件:条件:属于项目实施过程中的不利因素,指属于项目实施过程中的不利因素,指的是项目实施过程中限制项目按时圆满完成的内的是项目实施过程中限制项目按时圆满完成的内部和外部因素。部和外部因素。n约束条件约束条件 是否要满足项目的阶段性或竣工的工期限制?是否要满足项目的阶段性或竣工的工期限制?项目的部分或全体是否限制在一个固定的预算内?项目的部分或全体是否限制在一个固定的预算内?分派到该项目的最大人数是多少?分派到该项目的最大人数是多少?每个人员每周在此项目上能工作多少小时?每个人员每周在此项目上能工作多少小时?员工的技术知识和经验是否足够?员工的技术知识和经验是否足够?2.4.1.4 确定项目

46、的约束条件确定项目的约束条件n约束条件约束条件 2/2员工对要解决的问题是否熟悉?员工对要解决的问题是否熟悉?员工和关键的人才地处何处?员工和关键的人才地处何处?你是否必须要采用某种硬件?你是否必须要采用某种硬件?你是否必须要采用某种工具软件?你是否必须要采用某种工具软件?约束(限制)条件的考虑(注)约束(限制)条件的考虑(注)n约束随时都可能出现约束随时都可能出现n约束影响所选择的方法约束影响所选择的方法n约束会滋长新的约束约束会滋长新的约束n太多的约束将使进行中的项目成为不可能太多的约束将使进行中的项目成为不可能2.4.1.5 概要设计概要设计1、概要设计、概要设计-初步设计初步设计2、硬

47、件设计、硬件设计n功能设计功能设计n结构化设计结构化设计n物理设计物理设计3、软件设计、软件设计n功能分析与设计功能分析与设计n软件模块划分软件模块划分n模块开发与实现模块开发与实现2.4.2 详细设计阶段详细设计阶段n审查审查需求分析需求分析资料资料n体系结构体系结构/整体设计整体设计n硬件与软件划分硬件与软件划分n硬件与软件的设计次序硬件与软件的设计次序n硬件设计硬件设计n软件设计软件设计n检查设计检查设计2.4.2.1详细设计阶段-审查分析资料1.审查分析资料(来自需求分析阶段)q。2.审查约束条件(来自需求分析阶段)q。2.4.2.2详细设计阶段-体系结构设计n描述系统的功能如何实现是

48、体系结构设计的目的 。n决定因素1.系统是硬实时系统还是软实时系统2.操作系统是否需要嵌入3.物理系统的成本、尺寸和耗电量是否是产品成功的关键因素4.选择处理器和相关硬件5.其他2.4.2.3详细设计阶段-硬件与软件划分n决定哪些用硬件实现,哪些用软件实现?n例如:1.浮点运算2.网络通信控制器实现的功能3.软调制解调器/硬调制解调器4.软件压缩解压/硬件压缩解压图像2.4.2.4详细设计阶段-硬件与软件设计次序n方案1.先设计硬件2.先设计软件3.软硬件同时设计n根据项目的情况自由选择2.4.2.5详细设计阶段-硬件设计1.设计硬件子系统:top-down方法1.分成模块2.设计框图3.例:

49、CPU子系统、存储器子系统等2.定义硬件接口1.I/O端口2.硬件寄存器3.共享内存4.硬件中断5.存储器空间分配6.处理器的运行速度2.4.2.6详细设计阶段-软件设计1.设计软件子系统总体设计、模块设计2.定义软件接口模块接口、函数接口2.4.2.7详细设计阶段-检查设计n小项目q自己审查设计文档n中等项目q拿给同事朋友并向他们解释你的设计 n大型项目-审查会q设计者应作一个更正式的报告。由于这是一个设计审查会,召集一群人,主要由工程师组成,并尽可能包括一些对项目有不同看法角度的成员,如做市场的人员、最终用户 2.4.2.8详细设计阶段-设计自动化1.系统设计阶段很重要,系统设计与开发时间

50、之比1:22.系统的设计需要软件、硬件的综合知识3.容易出错-使用自动化工具2.4.2.10详细设计阶段-硬件平台简介n要求最好-多种评估方法q多个方案,选择最优n嵌入式系统硬件平台多样性,例如:q有ARM系列(目前有几十种基于ARM内核的处理器被使用)、qMotorolanPowerPC系列、nColdfire系列、nM.core系列等、nDragon Ball系列,qNEC公司的VR系列,qHitachi公司SH3,SH4系列等等 q其它2.4.3 实现阶段实现阶段1、选择开发平台。、选择开发平台。q硬件平台、嵌入式操作系统、开发硬件平台、嵌入式操作系统、开发语言、开发工具语言、开发工具2

51、、软件开发过程。、软件开发过程。3、开发阶段的文档。、开发阶段的文档。2.4.3.1 选择开发平台选择开发平台 1、科研开发阶段、科研开发阶段 选择硬件平台的考虑选择硬件平台的考虑1/2n处理器的处理速度处理器的处理速度 n项目的开发人员对选择的处理器是否项目的开发人员对选择的处理器是否熟悉熟悉n处理器上的处理器上的I/O功能是否满足系统的功能是否满足系统的要求要求n处理器的软件支持工具处理器的软件支持工具n处理器的调试支持处理器的调试支持n处理器制造商的支持可信度如何处理器制造商的支持可信度如何1、科研开发阶段、科研开发阶段 选择硬件部件的考虑选择硬件部件的考虑2/2n产品的需求量产品的需求

52、量q例如:例如:PC104和定制开发和定制开发n目标市场的机会如何目标市场的机会如何 q购买和自制购买和自制n软件对硬件的依赖程度软件对硬件的依赖程度q评估板的使用评估板的使用2、科研开发阶段、科研开发阶段 选择操作系统选择操作系统n嵌入式操作系统的功能,支持部件嵌入式操作系统的功能,支持部件n配套配套开发工具的支持开发工具的支持n操作系统的操作系统的移植难度移植难度n操作系统是否包括特殊的调试支持操作系统是否包括特殊的调试支持n操作系统的内存要求如何操作系统的内存要求如何n项目程序员是否熟悉此操作系统,主要指此项目程序员是否熟悉此操作系统,主要指此操作系统通常提供的操作系统通常提供的APIn

53、操作系统是否包括所有需要的部件操作系统是否包括所有需要的部件n操作系统是否有目标硬件的驱动程序操作系统是否有目标硬件的驱动程序n操作系统是否有可伸缩性操作系统是否有可伸缩性3、科研开发阶段、科研开发阶段 选择编程语言考虑选择编程语言考虑n软件开发人员最熟练的语言是哪种软件开发人员最熟练的语言是哪种n语言使用的广泛程度语言使用的广泛程度n语言的性能如何语言的性能如何n例如:例如:C语言、汇编语言、语言、汇编语言、Java,C+等等2.4.3.2科研开发阶段科研开发阶段-软件开发软件开发n嵌入式系统的软件开发过程嵌入式系统的软件开发过程n准备交叉开发环境准备交叉开发环境n编译和连接编译和连接n重定

54、位和下载重定位和下载n调试调试n在主机系统上验证软件在主机系统上验证软件n在目标系统上验证软件在目标系统上验证软件n代码优化代码优化-续续代码优化代码优化1/2n清除程序中的无用代码清除程序中的无用代码n清除为调试所引入的代码清除为调试所引入的代码 n避免使用大型的库例程避免使用大型的库例程 n避免使用递归式例程,因为它们需避免使用递归式例程,因为它们需要很大的堆栈要很大的堆栈n避免浮点操作避免浮点操作 代码优化代码优化2/2n优化算法优化算法乘法可以通过左移操作来完乘法可以通过左移操作来完成成 n将访问最频繁的变量声明为寄存器变量或将访问最频繁的变量声明为寄存器变量或自动变量自动变量 n只要

55、可能,尽量使用无符号数据类型只要可能,尽量使用无符号数据类型 n如果某个函数或例程消耗大量的计算时间,如果某个函数或例程消耗大量的计算时间,那么就将该函数或例程用汇编语言来编码那么就将该函数或例程用汇编语言来编码 n充分利用编译器提供的优化充分利用编译器提供的优化2.4.3.3科研开发阶段文档n技术文件目录技术文件目录n技术任务书技术任务书n技术方案报告技术方案报告n产品标准(草案)产品标准(草案)n技术条件(进厂)技术条件(进厂)n可靠性技术设计可靠性技术设计n技术设计说明书技术设计说明书n形式试验报告形式试验报告n试制报告试制报告文档文档1-技术文件目录技术文件目录n描述了所有的技术文件清

56、单文档文档2-技术任务书技术任务书n任务来源、设计依据n产品用途及使用范围n主要工作原理及硬软件分工n基本参数、主要功能、技术指标n总部局、主要部件概述n标准化综合要求n提出国内外同类产品水平比较n关键技术预测n开发周期估算 文档文档3-技术方案报告技术方案报告n描述了科研开发的技术方案n与实际的项目有关文档文档4-产品标准产品标准n产品范围产品范围n引用标准引用标准n基本参数及形式基本参数及形式n技术要求(功能、性能、影响量)技术要求(功能、性能、影响量)n试验方法(采用国际标准)试验方法(采用国际标准)n检验规则检验规则 文档文档5-技术条件(进厂)技术条件(进厂)n使用范围使用范围n技术

57、要求技术要求n试验方法试验方法 文档文档6-技术设计说明书技术设计说明书-硬件硬件n总体方案总体方案n产品结构产品结构n产品性能产品性能n电路工作原理分析、技巧、结构电路工作原理分析、技巧、结构n工艺合理性工艺合理性n主要故障鉴别方法主要故障鉴别方法文档文档6-技术设计说明书技术设计说明书-软件软件n总体方案及体系结构总体方案及体系结构n任务调度原理或总控流程说明任务调度原理或总控流程说明n各种功能的实现方法、处理流程或工各种功能的实现方法、处理流程或工作原理作原理n数据库说明、逻辑结构数据库说明、逻辑结构n数据格式说明数据格式说明n内存分配方案内存分配方案n各部分接口设计各部分接口设计n通用子程序和标准子程序设计通用子程序和标准子程序设计 文档文档7-形式试验报告形式试验报告文档文档8-试制总结试制总结1技术水平国际、国内、先进?2试制过程中出现的问题的解决措施3对没有达到技术任务书要求进行说明 2.4.4 测试阶段测试阶段1、测试的原因、测试的原因2、何时测试、何时测试3、测试内容、测试内容4、何时停止测试、何时停止测试5、选择测试用例、选择测试用例6、实时失败模式、实时失

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论