当前位置:文档之家› 浙江大学-高级嵌入式体系结构大作业(综述 ARM、MIPS、ARM对比 得分:95)

浙江大学-高级嵌入式体系结构大作业(综述 ARM、MIPS、ARM对比 得分:95)

浙江大学-高级嵌入式体系结构大作业(综述 ARM、MIPS、ARM对比  得分:95)
浙江大学-高级嵌入式体系结构大作业(综述 ARM、MIPS、ARM对比  得分:95)

摘要

精简指令系统计算机的主要特点是CPU的指令集大大简化,尽量简化指令功能,只保留那些功能简单,能在一个节拍内执行完成指令。较复杂的功能用一段程序来实现,用简单的指令来提高机器的性能,特别是提高CPU执行程序的速度。这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。

本文着重讲述了采用RISC架构的ARM、MIPS、A VR三种微处理器在指令集、流水线、中断、存储器、总线接口的异同以及ARM、MIPS为了改善代码密度都提出了16位指令的异同。

关键词:精简指令集;ARM;MIPS;A VR

Absract

The main characteristics of RISC is the CPU instruction set and the instruction function are simplified greatly, retaining only the function is simple, can be executed within a period of instruction.With a program to implement complex functions, with simple instructions to improve the machine performance, especially improve the CPU program execution speed.The design idea of the number of instructions and addressing modes are made to streamline, make its implementation easier, parallel execution more excellent, and the compiler more efficient.

This paper focuses on the similarities and differences of the instruction set, pipeline, interrupts, memory, bus interface and the 16 bit instruction of three microprocessor (ARM,MIPS,A VR),whose architecture is RISC.

Key words: RISC; ARM;MIPS; A VR.

目录

第一章 RISC架构概述 (1)

1.1 精简指令系统思想的提出 (1)

1.2 RISC的典型特点 (2)

1.3 RISC思想精华 (2)

1.4 本文主要研究工作 (3)

第二章 RISC架构CPU指令集 (4)

2.1 寻址方式 (4)

2.2 指令操作 (6)

2.3 寄存器组 (8)

2.4 本章小结 (10)

第三章 RISC架构CPU流水线 (11)

3.1 ARM的流水线 (11)

3.2 MIPS的流水线 (12)

3.3 AVR的流水线 (13)

3.4 本章小结 (13)

第四章 RISC架构CPU中断设计 (14)

4.1 ARM的中断设计 (14)

4.2 MIPS的中断设计 (16)

4.3 AVR的中断设计 (17)

4.4 本章小结 (17)

第五章 RISC架构CPU存储器与总线接口设计 (18)

5.1 ARM的总线接口设计 (18)

5.2 MIPS的总线接口设计 (19)

5.3 AVR的总线接口设计 (19)

5.4 本章小结 (19)

第六章 RISC架构CPU 16指令集设计 (20)

6.1 ARM的16指令集设计 (20)

6.2 MIPS的16指令集设计 (20)

6.3 本章小结 (21)

总结 (22)

参考文献 (23)

第一章RISC架构概述

目前,指令系统的优化设计有两个截然相反的方向。一个是增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统来实现,这种计算机系统称为复杂指令系统计算机(Complex Instruction SetComputer ,CISC) 。另一个是80年代新发展起来的,尽量简化指令功能,只保留那些功能简单,能在一个节拍内执行完成指令,较复杂的功能用一段于程序来实现,这种计算机系统称为精简指令系统计算机(Reduced Instruction Set Computer,RISC)。

1.1 精简指令系统思想的提出

早在1964年IBM就推出了基于复杂指令集系统(CISC)架构的IBM360,但到70年代中期,随着计算机的指令系统日趋庞大,指令功能也日益复杂。这不但实现起来越来越困难,实际上也一定程度上降低了系统性能。

1979 年,美国加州大学伯克利分校对此进行研究。指出了CISC系统存在的诸多问题,并研发了RISC 指令架构。CISC存在的主要问题有以下三个方面:

1.20%与80%规律

CISC中,各种指令的使用频率相差很悬殊,大量的统计数字表明,大约有20%的指令使用频率较高,占据80%的处理器时间。有80%的指令只占用20%的处理器运行时间。只有三类指令的使用频率较高:数据传送类指令、算术运算类指令和程序控制类指令。

2.工艺发展引起的技术问题

CISC中,实现了大量的指令,控制逻辑很不规则,不能满足工艺的完整性要求;RISC 的控制逻辑简单,他所需要的大量通用寄存器是非常规则的,能好地满足工艺要求。

3.软硬件的功能划分

CISC中,通过增强指令功能,简化了软件,增加了硬件的复杂性。然而由于指令复杂,指令的运行时间必然很长,有可能导致程序的运行时间反而增加了。以Motorola公司典型的CISC32 位微处理器MC68020为例,基本的指令就超

7基于RISC的8位微控制器的研究与设计过100条,包含18种寻址方式,支持7种数据类型,指令字长短的只有一个单字(16bit),长的可以由11个单字组成。这样,必然使CPU控制部分的高度复杂化,使其占用了很大部分CPU 面积。

现在,RISC思想已经广被人们所接受,很多微处理器采用了RISC架构,一些典型的CISC处理也吸收了RISC设计的思想,如Intel公司的奔腾处理器。

1.2 RISC的典型特点

RISC架构是近代计算机体系结构发展史中的一个里程碑,但直到现在,RISC 仍然没有一个确切的定义。这里引用IEEE Michael Slater对RISC的定义:RISC 处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。按照Michael Slater的定义,RISC使流水线处理高效率执行,应具有如下特征:

(1)简单而统一格式的指令译码;

(2)大部分指令可以单周期执行完成;

(3)只有Load 和Store 指令可以访问存储器;

(4)采用延迟转移技术;

(5)采用Load 延迟技术;

(6)较多的寄存器;

(7)三地址指令格式。

1.3 RISC思想精华

复杂指令集(CISC)中的一条指令在精简指令集(RISC)中需要几条指令来执行,为何RISC 系统执行速度比CISC 快呢?一个程序所执行的时间可以用以下公式来计算:

P = CPI * I * T

其中:P 是执行这个程序所用的总的时间;CPI 是每条指令执行的平均周期数;

I是这个程序所需执行的总的指令条数;

T是时钟周期;

有关这些参数的统计数据见表1-1:

表 1.1 CISC RISC的CPI I T的比较

从以上参数比较中我们可以得出如下结论:

1. 指令平均执行周期数CPI

执行每条指令所需的平均时钟周期数与微控制器的结构有紧密的关系。由于CISC一般用微程序实现,一条指令通常需要好几个周期,复杂指令所需要的周期数更多。据统计,CISC 处理器中指令平均周期数CPI在4-6之间。而RISC一般是单周期指令,CPI近视为1,由于存在Load、Store指令及少数复杂指令,导致RISC机的平均执行周期数CPI大于1。

2. 总的指令条数I

CISC中一条复杂指令所完成的功能在RISC中可能需要几条指令才能实现。对于一个源程序,分别编译后生成的代码,RISC要比CISC的多。但复杂指令所使用的频率毕竟比较低,用的最多的仍然是RISC中所具有的简单指令。从上述统计结果也可以看出,RISC 的I长度只比CISC长30%~40%。

3. 时钟周期T

由于RISC机一般采用硬布线逻辑实现,指令实现的功能都比较简单,所以RISC机的工作主频一般要比CISC 处理器高,从而,RISC的T通常比CISC的小。查看表2.1,利用上述公式很容易算出,RISC 的速度大约要比CISC 快 3 倍。

其中最关键的是RISC指令平均执行周期数CPI减小了,这正是RISC设计思想的精华。

1.4 本文主要研究工作

本文通过对查看大量的有关ARM、MIPS、A VR这三种RISC架构CPU的资料,下文将着重从以下5个方面对此3种架构的CPU展开叙述。

1、这三种RISC架构的微处理器在寻址方式、指令操作、寄存器组这三个指令集方面有何相同和不同之处。

2、三种架构的流水线设计有何相同和不同之处。

3、三种架构的中断设计有何相同和不同之处。

4、三种架构的存储器和总线接口有何相同和不同之处。

5、MIPS和ARM为了改善代码密度都提出了16位指令,它们的16位指令集之间有什么不同,16位指令和32 位指令之间的关系如何。

第二章RISC架构CPU指令集

有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个指令周期才能实现,并且常常不被运行程序所采用。此外,处理器和主内存之间运行速度的差别也变得越来越大。在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。早期,这种指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、中央处理器的实现细节对于机器级程序是可见的。这边是精简指令集的起源。

说起指令集,当然包含指令的寻址方式、指令的操作以及寄存器组的三个方面。以下就将对3款RISC芯片在这三个方面做简要的对比。

2.1 寻址方式

2.1.1 ARM寻址方式

目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。

立即数寻址,也叫立即寻址,是一种特殊的寻址方式,操作数本身包含在指令中,只要取出指令也就取到了操作数。这个操作数叫做立即数,对应的寻址方式叫做立即寻址;

(2)寄存器寻址,寄存器寻址就是利用寄存器中的数值作为操作数,也称为寄存器直接寻址。

(3)寄存器间接寻址,寄存器间接寻址就是把寄存器中的值作为地址,再通过这个地址去取得操作数,操作数本身存放在存储器中。

(4)寄存器偏移寻址,是ARM指令集特有的寻址方式,它是在寄存器寻址得到操作数后再进行移位操作,得到最终的操作数。

(5)寄存器基址变址寻址,寄存器基址变址寻址又称为基址变址寻址,它是在寄存器间接寻址的基础上扩展来的。它将寄存器(该寄存器一般称作基址寄存器)中的值与指令中给出的地址偏移量相加,从而得到一个地址,通过这个地址取得操作数。

(6)多寄存器寻址,这种寻址方式可以一次完成多个寄存器值的传送。

(7)相对寻址,相对寻址是一种特殊的基址寻址,特殊性是它把程序计数器PC中的当前值作为基地址,语句中的地址标号作为偏移量,将两者相加之后得到操作数的地址。

(8)堆栈寻址,堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用堆栈指针(Stack Pointer,SP)指示当前的操作位置,堆栈指针总是指向栈顶。

(9)块拷贝寻址,块拷贝寻址用于寄存器数据的批量复制,它实现从由基址寄存器所指示的一片连续存储器到寄存器列表所指示的多个寄存器传送数据。块拷贝寻址与堆栈寻址有所类似。两者的区别在于:堆栈寻址中数据的存取是面向堆栈的,块拷贝寻址中数据的存取是面向寄存器指向的存储单元的。

2.1.2 MIPS寻址方式

MIPS硬件只支持一种寻址模式,即:寄存器基地址+ 立即数偏移量,且offset 必须在-32768~32767之间(16位),任何载入和存储机器指令都可以写成如下形式,可以使用任何寄存器作为目的操作数或源操作数。

lw $1,offset($2)

MIPS汇编器可以利用合成指令来支持多种寻址方式,这些寻址方式包括:

1、直接寻址(Direct):由数据标号或者外部变量名寻址;

2、直接+索引(Direct+index):偏移量加上由寄存器指定的标号地址;

3、常数(Constant):32位常数;

4、寄存器间接(Register Indirect):寄存器+偏移量(其中偏移量为0)。

5、另外,MIPS对数据的访问还有一种称为“全局指针gp相对寻址”的技术。

2.1.3 A VR寻址方式

A VR的部分指令及寻址方式:

(1)单寄存器寻址;

例:INC Rd ;操作:Rd←Rd+1

INC R5 ;将寄存器R5内容加1回放。

(2)双寄存器寻址;

例:ADD Rd,Rr ;操作:Rd←Rd+Rr

ADD R0,R1 ;将R0和R1寄存器内容相加,结果回放R0。

(3)I/O寄存器直接寻址;

例:IN Rd,P ;操作:Rd←P

IN R5,$3E ;读I/O 空间地址为$3E寄存器(SPH)的内容,放入寄存器R5。

(4)数据存储器空间直接寻址

例:LDS Rd,K ;操作:Rd←(K)

LDS R18,$100 ;读地址为$100的SRAM中内容,传送到R18中。

(5)数据存储器空间的寄存器间接寻址

例:LD Rd,Y ;操作:Rd←(Y),把以Y为指针的SRAM的内容送Rd

LD R16,Y ;设Y=$0567,即把SRAM地址为$0567的内容传送到R16中。

(6)程序存储器空间取常量寻址

例:LPM ;操作:R0←(Z),即把以Z为指针的程序存储器的内容送R0。

(7)程序存储器空间写数据寻址

例:SPM ;操作:(Z)←R1:R0,把R1:R0 内容写入以Z 为指针的程序存储器单元。

(8)程序存储器空间直接寻址

例:JMP $0100 ;操作:PC←$0100。程序计数器PC 的值设置为$0100,接下来执行程序存储器$0100 单元的指令代码。

(9)程序存储器空间相对寻址

例:RJMP $0100;操作:PC←PC+1+$0100。若当前指令地址为$0200

(PC=$0200),即把$0301 送程序计数器PC,接下来执行程序存储器$0301 单元的指令代码。

(10)数据存储器空间堆栈寄存器SP 间接寻址

例:PUSH R0 ;操作:STACK←R0;SP←SP-1。若当前SP=$10FF,先把寄存器R0 的内容送到SRAM 的$10FF 单元,再将SP 内容减1,即SP=$10FE。

此外,在CPU 响应中断和执行CALL 一类的子程序调用指令(SP = SP-2),以及执行中断返回IRET 和子程序返回RET 一类的子程序返回指令中(SP =

SP+2),都隐含着使用堆栈寄存器SP 间接寻址的方式。

2.2 指令操作

2.2.1 ARM指令

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。1985年,第一个ARM原型在英国剑桥诞生。ARM公司的特点是只设计芯片,而不生产。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。

ARM公司定义了6种主要的指令集体系结构版本。V1-V7。

ARM-V1:该版本的原型机是ARM1,没有用于商业产品。

ARM-V2:对V1版进行了扩展,包含了对32位结果的乘法指令和协处理器指令的支持。

ARM-V3:ARM公司第一个微处理器ARM6核心是版本3的,它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。

ARM-V4:当前应用最广泛的ARM指令集版本。

ARM7TDMI、ARM720T、ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。

ARMv-V4:ARM9E-S、ARM966E-S、ARM1020E、ARM 1022E以及XScale 是ARMv5TE的。ARM9EJ-S、ARM926EJ-S、ARM7EJ-S、ARM1026EJ-S是基于ARMv5EJ的。ARM10也采用。

其中后缀意义如下:

E:增强型DSP指令集。包括全部算法和16位乘法操作。

J:支持新的Java。

ARM-V6:采用ARMv6核的处理器是ARM11系列。ARM1136J(F)-S基于ARMv6主要特性有SIMD、Thumb、Jazelle、DBX、(VFP)、MMU。ARM1156T2(F)-S 基于ARMv6T2 主要特性有SIMD、Thumb-2、(VFP)、MPU。ARM1176JZ(F)-S

基于ARMv6KZ 在ARM1136EJ(F)-S 基础上增加MMU、TrustZone。ARM11 MPCore基于ARMv6K 在ARM1136EJ(F)-S基础上可以包括1-4 核SMP、MMU。

2.2.2 MIPS指令

MIPS只有三种指令格式:

1、R(register)类型的指令。该类型指令从寄存器堆(register file)中读取两个源操作数,计算结果写回寄存器堆。

Op Rs Rt Rd Shamt Funct

6bit 5bit 5bit 5bit 5bit 6bit

2、I(immediate)类型的指令。该类型指令使用一个16位的立即数作为一个源操作数。

Op Rs Rt Address/immediate

6bit 5bit 5bit 16bit

3、J(jump)类型的指令。该类型指令使用一个26位的立即数作为跳转的目标地址(target address)。

Op Target-address

6bit 26bit

2.2.3 A VR指令

以ATmega16为例,其共有131条指令,按功能可分为五大类,它们是:

A.算术和逻辑运算指令(28 条);

B.比较和跳转指令(36 条);

C.数据传送指令(35 条);

D.位操作和位测试指令(28 条);

E.MCU控制指令(4 条)。

A VR一条指令的长度大多数为16位,还有少部分为32位。

A VR的指令的一般格式为:

2.3 寄存器组

2.3.1 ARM的寄存器组

ARM体系中共有37个寄存器,其中31个通用32为寄存器(包括程序计数器PC),未分组寄存器R0-R7和分组寄存器R8-R14、程序计数器PC(R15),6个状态寄存器。寄存器组如下图所示。

其中R0 到R15 可以直接访问,R0 到R14 是通用寄存器,R13: 通常作堆栈指针(sp)。

每种处理器模式都有单独的堆栈,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间;Thumb中,某些指令强制性的要求使用R13作为堆栈指R14:子程序链接寄存器(Subroutine Link

Register ,LR),当执行BL子程序调用指令时,R14←R15(程序计数器PC),与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值,其他情况下,R14用作通用寄存器。

CPSR(Current Program StatusRegister)当前程序状态寄存器,CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。

5个SPSRs(Saved Program Status Register)程序状态保存寄存器,当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。由于用户模式和系统模式不属于异常模式,它们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。

2.3.2 MIPS的寄存器组

MIPS有32个通用寄存器($0-$31)

程序可以用的通用寄存器有32个:$0-$31,。其中两个的用法与其他不同。

$0不管存入什么值,永远返回0;$31永远由正常函数调用指令(jal)存放返回地址。

2.3.3 A VR的寄存器组

A VR单片机有32个通用I/O口,有PA~PD四组,每组都是8位。其主要的寄存器有DDRXn(X=A,B,C,D;n=0,2,…,7,下同),PORTXn和PINXn。

PA 寄存器:DDRA、PORTA、PORTA;

PB 寄存器:DDRB、PORTB、PORTB;

PC 寄存器:DDRC、PORTC、PORTC;

PD 寄存器:DDRD、PORTD、PORTD;

DDRX是方向寄存器,可读可写。在写操作时用于制定PX口是作为输入口还是输出口;在读操作时,从DDRX寄存器读出来的是端口的方向设定值。DDRX 寄存器的初始值为0x00。

PORTX是数据寄存器,可读写。在写操作时,从PORTX写入的数据存入内部锁存器,以确定端口的工作状态或者将写入的数据送到外部数据总线。PORTX 寄存器的初始值为0x00。

PINX用来访问端口X的逻辑值,且只允许读操作。从PINX读入的数据只是X口引脚的逻辑状态。其初始值为高阻态。

中断寄存器:状态寄存器SREG、.MCU 控制寄存器MCUCR、通用中断控制寄存器GICR

通用中断标志寄存器GIFR、T/C 中断屏蔽寄存器TIMSK、T/C 中断标志寄存器TIFR、定时器寄存器。

2.4 本章小结

ARM具有32位和64位指令体系,ARM局部64位,ARM指令中有4位的条件码,很类似与x86体系。MIPS是开放式的架构,用户可以在开发的内核中加入自己的指令。MIPS在MIPS IV也加入条件移位指令,来提高流水线的效率。ARM有前增量和后增量地址模式以及在访问存储器的自增/自减的load和store命令;而A VR由于性能应用场合等原因,其指令由16位指令以及少量的32位特殊指令组成,这种设计,不仅使对A VR的取指操作简单,提高了取指令的速度,同时也降低了在取指操作过程中的错误,提高了系统的可靠性。。

在寄存器上而言,由于MIPS内核中有32个寄存器(Register),而ARM只有16个,这种结构设计上的先天优势,决定了在同等性能表现下,MIPS的芯片面积和功耗会更小。ARM 有一组特殊用途寄存器cp0-cp15,可以使用MCR,MRC 等指令控制;相对应的,MIPS也有cp00-30,使用mfc0,mtc0指令控制。ARM 体系中有寄存器组,MIPS 有一个Hard-Wired-to-Zero寄存器,但ARM没有。

地址空间上,MIPS 起始地址是通常是0xbfc00000,会有4Mbyte的大小限制,但一般MIPS芯片都会采取一些方法解决这个问题;ARM没有这种问题;而对于A VR来说,采用的是哈佛结构的微处理器,其程序存储区和数据存储区互相独立,并具有不同的地址空间,A VR系列单片机的程序存储区覆盖范围从1KB~8MB。

在寻址方式上,ARM和A VR都采用多种不同的寻址方式来满足不同需求;而对于MIPS来说,只采用了“寄存器基地址+ 立即数偏移量”这一种寻址方式。

第三章RISC架构CPU流水线

采用流水线技术,一条指令被分解为m个子过程,若每个子过程的执行时间都一样,则利用此条流水线可将一条指令的执行时间T 由原来的T缩短为T/m,系统的时钟频率变为原来的m倍,同时系统的硬件利用率和数据吞吐率都得到了提高。实际应用中,各子过程的执行时间不可能完全相等,因此执行时间最长的子过程成为系统性能提升的瓶颈。

3.1 ARM的流水线

ARM7采用3级流水线,ARM9 采用5 线流水线,ARM10 采用6 级流水线,但是随着流水线深度的增加,指令的吞吐量提高了,每一段的工作量被消减了,使得处理器可以工作在更高的频率,同时也改善了性能,但系统延时(latency)也增加了,这是因为在内核执行一条指令前,需要更多的周期来填充流水线。并且,时钟频率的增加,指令执行周期也相应缩减了,这就要求减小指令执行周期的时间,也就对硬件设计带来了更大的要求。所以,流水线深度并不是越深越好。

ARM 流水线的一条指令只有在完全通过“执行”阶段才被处理。这句话很重要,也就是说,当处理器开始取第四条指令时,第一条指令才完成执行。我们如果不考虑流水线的设计,只看它的原理,其实是很简单的,他的复杂之处在于发生流水线冒险时,如何保证其工作得仍然很好。

流水线冒险一般分为控制冒险和数据冒险,而数据冒险一般可分为阻塞(即下一条指令依赖于前一条指令的结果)、分支和跳转、异常(异常和中断)。由于ARM 是硬件flush流水设计的,当发生冒险时,会暂停取指,然后清流水,(MIPS 解决冒险通常依赖于编译器,比如插入一条NOP指令及重新排列指令序列)。

这里我们再结合PC 的值的情况来分析一下流水线的工作原理。PC :程序计数器,之所以重提这个概念,是因为我们需要理解PC 的本来用意。在所有的流水线体系结构中,PC 总是指向当前正在执行的指令的地址加8 字节的地址,换句话说,PC 总是指向当前正在执行的指令再加 2 条指令的地址。再换句通俗点的话来说,PC 就是当程序处于指令执行阶段的时候的那个值。

3.2 MIPS的流水线

在MIPS中流水线技术需要依靠在组合逻辑中插入寄存器将数据通路打断的方式来实现。对于包含若干寄存器到寄存器路径的时序逻辑电路,任意两个寄存器之间路径延时的最大值称为关键路径。而该关键路径的延时就是时序逻辑电路时钟频率的最大限制因素。

MIPS五级流水线的执行过程为:取指(IF)、译码(ID)、执行(EX)、访问存储器(MEM)、写回(WB)。每两级之间均插入寄存器,将插在取指和译码阶段之间的寄存器称为IF/ID,将插在译码和执行阶段之间的寄存器称为ID/EX,将插在执行和访问存储器阶段之间的寄存器称为EX/MEM,将插在访问存储器和写回阶段之间的寄存器称为MEM/WB。MIPS五级流水线的数据通路如图下图所示。

在IF阶段,程序计数器计算下一周期的取值地址PC_next,同时按照PC的当前值从指令存储器中取出指令,并送到下个流水级;在ID阶段,对指令进行译码,根据操作码(opcode)和功能码(func)给出相应的控制信号,根据源寄存器标号(rs、rt)从寄存器堆中取出操作数或者根据立即数位(imm16)得到相应的操作数。MUX1 用来选择EX阶段的操作数(来自指令译码得到的数据,或者来自寄存器堆送来的数据,或者来自ID/EX、EX/MEM、MEM/WB 的旁路数据)。

在EX阶段,根据控制信号决定ALU 运算单元所进行的运算。执行某些运算时还需要对操作数进行预变换,如加法、减法等。最后需要将ALU运算单元的结果和一些控制信号送往下个流水级。

在MEM阶段,根据上一级传来的地址、数据和读写控制信号对主存进行读写操作。对于读操作(Load 类型指令),需要将主存返回的数据送到下个流水级。

在WB阶段,MUX2 选择将主存读出的数据或者ALU 的运算结果写回寄存器堆。

由此可见,在ID 阶段,起始点为指令存储器输出的指令或者ID/EX、

EX/MEM、MEM/WB 寄存器中的暂存数据,终点为MUX1 选出的EX 段操作数,耗时较长,存在逻辑拥堵。在EX 阶段,ALU 运算包含加法、减法、移位或

乘除法等操作,这些运算的逻辑单元比较复杂,所以ALU 单元也比较耗时,再加上操作数预变换,EX 阶段的耗时也较长。这两个阶段成为限制CPU工作频率的主要因素。

3.3 A VR的流水线

AVR单片机大多采用3级流水线设计,131条指令,大多数指令执行时间为单个时钟周期。在前一条指令执行的时候,就取出现行的指令,然后以一个周期执行指令。大大提高了CPU的运行速度。

3.4 本章小结

就三款CPU的流水线对比来说,A VR单片机采用较为固定的3级流水线;而对于经典的MIPS芯片来说,大多采用取指(IF)、译码(ID)、执行(EX)、访问存储器(MEM)、写回(WB)5级流水线设计。在这方面,变数较多的就属ARM 芯片了,ARM7采用3级流水线,ARM9 采用5线流水线,ARM10 采用 6 级流水线。

当然,流水线的深度并不是越深越好。随着流水线深度的增加,指令的吞吐量提高了,每一段的工作量被消减了,使得处理器可以工作在更高的频率,同时也改善了性能,但系统延时(latency)也增加了,这是因为在内核执行一条指令前,需要更多的周期来填充流水线。并且,时钟频率的增加,指令执行周期也相应缩减了,这就要求减小指令执行周期的时间,也就对硬件设计带来了更大的要求。所以,流水线深度并不是越深越好。

如果要用一句话来总结流水线那就是,适合自己应用场合、性能、功耗、稳定性等等要求的流水线才是好流水线。

第四章RISC架构CPU中断设计

计算机的中断系统能够加强CPU对多任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。中断是CPU

对系统发生的某个事件作出的一种反应。引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。

4.1 ARM的中断设计

当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。在进入异常中断处理程序时,要保存被中断的程序的执行现场。从异常中断处理程序退出时,要恢复被中断的程序的执行现场。ARM体系中通常在存储地址的低端固化了一个32字节的硬件中断向量表,用来指定各异常中断及其处理程序的对应关系。当一个异常出现以后,ARM微处理器会执行以下几步操作:

保存处理器当前状态、中断屏蔽位以及各条件标志位;

设置当前程序状态寄存器CPSR中相应的位;

将寄存器lr_mode设置成返回地址;

将程序计数器(PC)值设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序处执行。

在接收到中断请求以后,ARM处理器内核会自动执行以上四步,程序计数器PC总是跳转到相应的固定地址。从异常中断处理程序中返回包括下面两个基本操作:

恢复被屏蔽的程序的处理器状态;

返回到发生异常中断的指令的下一条指令处继续执行。

当异常中断发生时,程序计数器PC所指的位置对于各种不同的异常中断是不同的,同样,返回地址对于各种不同的异常中断也是不同的。例外的是,复位异

常中断处理程序不需要返回,因为整个应用系统是从复位异常中断处理程序开始执行的。

支持中断跳转的解析程序

解析程序的概念和作用

如前所述,ARM处理器响应中断的时候,总是从固定的地址开始的,而在高级语言环境下开发中断服务程序时,无法控制固定地址开始的跳转流程。为了使得上层应用程序与硬件中断跳转联系起来,需要编写一段中间的服务程序来进行连接。这样的服务程序常被称作中断解析程序。

每个异常中断对应一个4字节的空间,正好放置一条跳转指令或者向PC寄存器赋值的数据访问指令。理论上可以通过这两种指令直接使得程序跳转到对应的中断处理程序中去。但实际上由于函数地址值为未知和其它一些问题,并不这么做。这里给出一种常用的中断跳转流程如下图所示。

中断请求

PC跳转到固定地址

从起始固定地址跳转至用户自定义的固定地址

的内存区,其中存放着中断再跳转的解析程序

解析程序读取中断向量表得到中断函数目标地址

跳转至目标函数地址

ARM中的总线用于不同部件之间的通信。有两种不同类型的设备连接到总线:ARM处理器,它是总线的主设备,拥有对总线的仲裁权,可以通过同一总线主动发起数据传输请求;外围器件,是总线的从设备,在总线上是被动的,只能对主设备发出的一个传输请求做出反应。

4.2 MIPS的中断设计

MIPS中断(异常)处理步骤大概如下:设置或屏蔽相关寄存器;进入异常入口点取指;现场保护;异常分类处理;查找中断向量表调用ISR。

在MIPS中,中断、陷进、系统调用和任何可以中断程序正常执行流的情况都称之为异常。典型的MIPS R4k及以后的处理器用同一个中断入口地址处理冷启动和热启动,因此系统重置通常被看作是一种异常。

异常处理步骤:

(1)CPU分别设置EPC,指向重新启动的位置,设置C0_SR:EXL位迫使CPU 进入内核模式(高特权级)并且禁用中断,设置C0_CAUSE寄存器,使得软件能看到异常原因。地址异常时,也要设置BadV Addr寄存器。存储管理系统异常还要设置一些MMU寄存器。随后,CPU从异常入口点取指执行。例如,启动后

(C0_SR:BEV=0),所有其他异常的入口点(excNormalVec=0x80000180)。

(2)MIPS异常处理例程,①保存现场:在异常处理例程入口,需要保护被中断的程序的现场,存储寄存器的状态,保证关键状态不被覆盖。一般用k0和k1这两个寄存器索引一块内存区域,用来存储其他的寄存器。这块内存区域一般被称作中断栈(Interrupt Stack),用于存储寄存器状态,并且支持复杂的C等高级语言编写的异常处理例程。②处理异常:根据C0_CAUSE:ExcCode确定发生了什么类型的异常,然后调用OS定义的不同的函数处理。假设此时再其他异常的入口点(excNormalVec=0x80000180),若确定了是中断(C0_CAUSE:ExcCode=0),则进一步调用中断处理函数excIntStub;否则调用excStub。③准备返回:恢复现场,修改C0_SR,设置成安全模式(内核态,禁止异常),也就是异常发生后的模式;④从异常返回:控制权交给异常victim指令,将内核特权级恢复为较低的特权级。MIPS CPU提供了原子指令“eret”做这个工作:既清除C0_SR:EXL位,也将控制权返回给存储在EPC中的地址。

CPU核外部的事件,即从一些真正的“硬件连线”过来的输入信号,这些就是中断。中断用于使CPU的注意力转向某外部事件:OS的一个基本特征就是可以同时注意多个事件。中断是唯一独立于CPU正常指令流的异常条件。

中断处理过程:①使能全局中断(IE:Interrupt Enable),要想使能中断,则全局中断位C0_SR:IE必须置1,它是一个全局开关;②中断使能屏蔽(IM:Interrupt Mask),C0_SR[8-15]为中断屏蔽位,对应IM[0-7],这8个bit位决定了哪些中断源有请求时可以触发一个异常,实际上是对中断信号的使能开关。8个中断源中的6个(IM[2-7])可用于外部硬件设备中断,其他2个(IM[0-1])对应C0_CAUSE:IP[0-1],为软件中断屏蔽位。所谓中断源就是产生硬中断信号的PIC外接设备或者软中断。

软件体系结构

课程名称:软件体系结构 课程编号:C304 课程学分:2 适用学科:计算机应用技术 软件体系结构 Software Architecture 教学大纲 一、课程性质 本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。 二、课程教学目的 学生通过本课程的学习后,在概念上建立从体系结构看待软件系统的观念,理解体系结构设计的优劣对软件系统质量的影响;掌握软件体系结构的建模、评价与检测的方法,能够应用上述方法评价软件体系结构的质量。 三、课程教学基本内容及基本要求 第一章绪论(2学时) 1、软件体系结构概述 2、研究内容与方法 第二章软件体系结构建模理论(2学时) 1、软件体系结构描述语言ADL简介 2、时序逻辑描述语言LOTOS简介 3、实例研究:流媒体信道调度模型及描述

第三章软件体系结构一致性检测(2学时) 1、软件体系结构一致性 2、软件体系结构一致性测试算法 3、实例研究1-三层C/S结构一致性检测 第四章软件体系结构评价(4学时) 1、软件体系结构评价模型 2、软件体系结构性能评价 3、软件体系结构可靠性评价 4、实例研究基于C/S结构的视频点播系统性能研究 第五章软件体系结构案例分析(16学时) 1、COBAR体系结构简介 2、P2P体系结构简介 3、网格体系结构简介 四、本课程与其它课程的联系与分工 本课程的先修课程为《面向对象程序》及《分布式数据库》,通过上述课程的学习,使学生能够体会大型软件开发的基本过程,体会到软件开发中体系结构的重要性。 五、实践环节教学内容的安排与要求 结合本研究室的研究课题,评价软件体系结构的性能。 六、本课程课外练习的要求 结合自己的研究课题,建立软件体系结构的性能模型和可靠性模型,以实际系统为被背景评价软件体系的性能。

ARM嵌入式系统开发综述.

视听研究所 主页:论坛: 所有资料均收集于各网站。 若您认为有关资料不适合公开,请联系newvideo@https://www.doczj.com/doc/5217353863.html, 我们会第一时间删除。 感谢各位网友的无私奉献和支持! 加密时间:2008-2-1 获取更多权威电子书请登录 ARM 嵌入式系统开发综述 ARM 开发工程师入门宝典 获取更多权威电子书请登录 前言 嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个

系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件和软件两部分的开发,硬件部分主要包括选择合适的MCU 或者SOC 器件、存储器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。 嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS 等等。希望通过本文,能帮助初学者了解有关ARM 嵌入式系统开发流程。 获取更多权威电子书请登录 目录 前言 (2) 1 嵌入式开发平台 (4) 1.1 ARM的开发平台: (4) 1.2 器件选型 (7) 2 工具选择 (11) 3 编译和连接 (13) 3.1 RVCT的优化级别与优化方向 (16) 3.2 Multifile compilation (21) 3.3调试 (22)

浅谈几种常见的嵌入式处理器比较分析

浅谈几种常见的分析 前言 随着电子科学的不断发展,人们开始逐渐对数码产品有了更高的需求,这就促使了信息技术的不断发展。嵌入式系统的核心就是嵌入式处理器,它是控制、辅助嵌入式系统运行的硬件单元,其应用范围非常的广阔,它也具有很好的发展前景。那么,面对纷繁复杂的嵌入式处理器市场,我们该如何做出适合自己的选择呢?下面小编就对市场上常见的几种嵌入式处理器进行比较分析,希望可以对大家有所帮助(嵌入式处理器类型)。 (1)嵌入式ARM微处理器(嵌入式微处理器结构) ARM微处理器的由来与发展 ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器。它是一种高性能、低功耗的32位微处器,它被广泛应用于嵌入式系统中。基于ARM技术的微处理器应用

约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码像机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。 ARM微处理器的应用领域 ARM微处理器是目前应用领域非常广的处理器,到目前为止,ARM微处理器及技术的应用几乎已经遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,深入到各个领域。 1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM 以其高性能和低成本,在该领域的地位日益巩固。 3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP 的应用领域提出了挑战。

《软件体系结构》教学大纲

《软件体系结构》教学大纲 一、课程概述 《软件体系结构》是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为相同设计的抽象,为实现框架和构件的重用、基于体系结构的软件开发提供了有力的支持。 作为计算机科学与技术专业软件工程方向的重要专业课程,本课程主要系统地介绍软件体系结构的基本原理、方法和实践,全面反映软件体系结构研究和应用的最新进展。既讨论软件体系结构的基本理论知识,又介绍软件体系结构的设计和工业界应用实例,强调理论与实践相结合。 本课程的先修课程为“软件工程”。 二、课程目标 1.知道《软件体系结构》这门学科的性质、地位、研究范围、学科进展和未来方向等。2.理解该门学科的主要概念、基本原理和策略等。 3.掌握软件体系结构的建模方法、描述方法,通过对不同软件体系结构风格的掌握,能够采用正确的基于体系结构的软件开发。 4.能够把所学的原理应用到具体的实践中去,培养学生发现、分析和解决问题的能力等。 三、课程内容与教学要求 这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。这四个层次的一般涵义表述如下: 知道———是指对这门学科和教学现象的认知。 理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。 掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。

学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错。 教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。 本标准中打“*”号的内容可作为自学,教师可根据实际情况确定要求或不布置要求。 教学内容及教学要求表

网络体系结构

网络体系机构概念: 网络体系结构就是为了完成计算机之间的通信,把计算机互联的功能划分成有明确定义的层次,规定了同层次实体通信的协议及相邻层之间的接口服务。将这些同层实体通信的协议及 相邻层接口统称为网络体系结构。简单点说就,层和协议的集合称之为网络体系结构。(网 络体系结构实际上是研究网络协议的,网络协议是我们这本书的核心,计算机通信其实讲的 就是协议,这节课实际上是这本书的总纲它介绍了一些基本概念和原理。) 网络协议: 是计算机网络和分布系统中互相通信的对等实体间交换信息时所必须遵守的规则的集合。 (网络协议是计算机网络的核心,计算机网络有多个计算机节点和通信设备组成,他们直接 为什么可以通信呢!就是遵守相同的规定,在这个规定之下他们能够实现,数据通信和资源共享,像我们在社会中也是一样的,在交流的过程中也要选择一种语言,大家都能听的懂的语言,要么汉语,要么英语,这就是网络协议。)协议有以下三个要素。 语法(syntax):就是规定一些数据信息与控制信息的格式、编码(我们在传输数据的时候传 输有效信息同时也要传输一些控制信息,控制信息是对信息的一些解释和说明或者是对地址 信息和路由的一些辅助信息。编码是:比如我们在物理层传输一些比特序列,在传输的过程 中0和1用什么形式来表示,是模拟信号还是数字信号) 语义(semantics):包括用于协议和差错处理的控制信息。(主要是针对控制信息,那么控 制信息里面包含不同的内容,地址信息,检错,纠错等等,计算机阶段或者是设备节点当收 到一个信息的时候首先要做的事情就是对它的控制信息进行解析,知道它的地址是什么含义,这个信息是不是给自己的,是自己的进行接收,不是自己的要想办法转发,传输过程中是不 是有错误你要看的检错,纠错信息,要完成以定的检错,纠错计算才知道这个信息是不是正 确的信息,是不是发送方想要发送的,让后接收方送到正确信息时候接收,收到错误信息的 时候,是否要向发送方发一个应答,是否对数据中的数据进行纠错等,这些都是语义所以处 理的。) 时序(timing):包括速度匹配和排序。(网络中的设备速度是不一样的,有的设备传 输速度快,有的设备传输速度慢,所以在发送数据的时候要做一个速度匹配,发送的要知道 接收端的接受能力) 分成设计 为了降低协议设计的复杂性,网络体系结构采用层次化的结构,每一层都建立在其下一层之上,每一层的目的是为上一层提供服务,并且服务的具体实现细节对上一层屏蔽。(我们在 做一个工程或者一个项目的时候,对一个复杂的工程要想实现的话,最简单的办法就是把这 件事情分层,把一个大的问题,分层若干小的问题,分层也就是说要把计算机网络要完成的 功能分成不同的层,不同的层次完成不同的功能,这样吧复杂的问题简单化,当每个小问题 解决以后,复杂的问题也就解决了,所以说这就是分层好的好处。) 1.利于实现和维护(某个层次实现细节的变化不会对其他层产生影响) 2.各层之间相互独立,高层不必关心低层的实现细节,只要知道低层所提供的服务, 以及本层向上层所提供的服务即可。 3.易于标准化 OSI参考模型 oSI(Open System Interconnect),即互联。一般都叫OSI参考模型,是ISO()组织在1985年研究的模型。该标准定义了网络互连的七层框架(、、、、、和),即ISO。在这一框架 下进一步详细规定了每一层的功能,以实现环境中的互连性、和应用的可移植性。

嵌入式系统开发方法综述

嵌入式系统开发方法综述 刘丹 (机械工业仪器仪表综合技术经济研究所,北京市 100055)Liu Dan (Instrumentation Technology & Economy Institute, Beijing 100055) Development Methods of Embedded System Abstract: Embedded systems have particular properties, such as real-time, concurrency, distribution, high reliability,and etc., which lead to large challenges and urgent requirements for corresponding methods and tools when developing such systems. From the view of engineering practice, the paper summarizes what problems developers will face during embedded system design, and what main methods and technologies will be used for resolving such problems. These methods and technologies are called embedded system developing methods. Key words: Embedded System HW-SW Co-Design Method Formal Modeling Method Structural Design Method Object-Oriented Design Method 【摘 要】嵌入式系统的实时性、并发性、分布性和高可靠性等特点使得系统的开发面临巨大挑战,迫切需 要相应开发方法的指导和开发工具的支持。本文从工程实践角度出发,总结在嵌入式系统设计过程中,开发人员会面临哪些主要问题,以及为解决问题而产生哪些主要方法和技术。这些方法和技术被统称为嵌入式系统的开发方法。 【关键词】嵌入式系统 软硬件协同设计方法 形式化建模方法 结构化设计方法 面向对象设计方法 收稿日期:2008-08-01作者简介:刘丹(1977-),女,博士,毕业于中科院沈阳自动化研究所,现就职于机械工业仪器仪表综合技术经济研究所,主要从事工业自动化、控制网络的技术和标准化研究,现负责PROFIBUS PA产品的认证测试工作。 引言 嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用环境对功能、实时性、可靠性、成本、体积、功耗等严格约束的专用计算机系统。嵌入式系统的内容广泛,小到一个芯片,大到复杂的分布式系统都可以称为嵌入式系统,通常以SoC、单片机、单板机、多板式箱式结构、嵌入式PC等形式嵌入到信息家电、数字通信、工业控制、航空航天、医疗设施、军事电子等领域的设备或系统中,作为处理和控制的核心。 嵌入式系统的实时性、并发性、分布性和高可靠性等特点使得系统的开发面临巨大挑战,迫切需要相应的开发方法的指导和开发工具的支持。嵌入式系统开发方法的研究内容包括设计方法论、工程开发技术、以及相应辅助工具的开发。现代的系统开发是一个基于模型(model-based)的,从规约到实现的过程。模型是反映真实世界和系统实现两方面的抽象,帮助开发人员把握应用的最重要特性,是系统分析与验证的 基础,并为软件和硬件的实现要素提供表示视图。因此,系统模型设计在整个开发过程中最为重要。此外,任何工程开发技术都是在一定设计方法基础上提出一系列开发步骤,辅助工具则为这些设计方法和开发技术提供自动或半自动的工具支持。因此,设计方法决定了系统开发过程中的其它分析、验证、实现等方法,或者广义上说,系统的设计方法就是系统的开发方法。 本文从工程实践角度出发,总结在嵌入式系统设计过程中,开发人员会面临哪些主要问题,以及为解决问题而产生哪些主要方法和技术。这些方法和技术被统称为嵌入式系统的开发方法。 1 软硬件“分离”设计方法与软硬件协同设计方法 首先,用户或产品开发决策者要根据对产品性能、体积、开发成本以及上市时间等设计指标的评估,决定系统最终是以电路板式,还是以芯片式的形式实现。一般而言,对性能和体积要求不高,产品数量小,如1~几百个,但要求上市时间早的嵌入式系统,多采用电路板式实现;反之,系统体积小,产品数量大,但对上市时间要求比较松的嵌入式系统,多采用SoC芯片式实现。相应地,对于设计者而言,不同的实现形式一般应用不同的设计方法,包括软硬件“分离”设计和软硬件协同设计。 Review and Research

网络体系结构的基本原理

计算机网络由多个互连的结点组成,结点之间要不断地交换数据和控制信息,要做到有条不紊地交换数据,每个结点就必须遵守一整套合理而严谨的结构化管理体系.计算机网络就是按照高度结构化设计方法采用功能分层原理来实现的,即计算机网络体系结构的内容. 网络体系结构及协议的概念 网络体系和网络体系结构 网络体系(Network Architecture):是为了完成计算机间的通信合作,把每台计算机互连的功能划分成有明确定义的层次,并规定了同层次进程通信的协议及相邻之间的接口及服务. 网络体系结构:是指用分层研究方法定义的网络各层的功能,各层协议和接口的集合. 计算机网络体系结构 计算机的网络结构可以从网络体系结构,网络组织和网络配置三个方面来描述,网络组织是从网络的物理结构和网络的实现两方面来描述计算机网络;网络配置是从网络应用方面来描述计算机网络的布局,硬件,软件和和通信线路来描述计算机网络;网络体系结构是从功能让来描述计算机网络结构. 网络体系结构最早是由IBM公司在1974年提出的,名为SNA 计算机网络体系结构:是指计算机网络层次结构模型和各层协议的集合 结构化是指将一个复杂的系统设计问题分解成一个个容易处理的子问题,然后加以解决. 层次结构是指将一个复杂的系统设计问题分成层次分明的一组组容易处理的子问题,各层执行自己所承担的任务. 计算机网络结构采用结构化层次模型,有如下优点: 各层之间相互独立,即不需要知道低层的结构,只要知道是通过层间接口所提供的服务 灵活性好,是指只要接口不变就不会因层的变化(甚至是取消该层)而变化 各层采用最合适的技术实现而不影响其他层 有利于促进标准化,是因为每层的功能和提供的服务都已经有了精确的说明 网络协议 协议(Protocol) 网络中计算机的硬件和软件存在各种差异,为了保证相互通信及双方能够正确地接收信息,必须事先形成一种约定,即网络协议. 协议:是为实现网络中的数据交换而建立的规则标准或约定. 网络协议三要素:语法,语义,交换规则(或称时序/定时关系) 注:通信协议的特点是:层次性,可靠性和有效性. 实体(Entity) 实体:是通信时能发送和接收信息的任何软硬件设施 接口(Interface) 接口:是指网络分层结构中各相邻层之间的通信 开放系统互连参考模型(OSI/RM) OSI/RM参考模型 基本概述 为了实现不同厂家生产的计算机系统之间以及不同网络之间的数据通信,就必须遵循相同的网络体系结构模型,否则异种计算机就无法连接成网络,这种共同遵循的网络体系结构模型就是国际标准——开放系统互连参考模型,即OSI/RM. ISO 发布的最著名的ISO标准是ISO/IEC 7498,又称为X.200建议,将OSI/RM依据网络的整个功能划分成7个层次,以实现开放系统环境中的互连性(interconnection), 互操作性(interoperation)和应用的可移植性(portability). 分层原则 ISO将整个通信功能划分为7个层次,分层原则如下:

软件体系结构作业完整版

第一章: 1.根据自己的经验,谈谈对软件危机的看法。 软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 以下几个原因导致:(1)软件自身特点 (2)开发人员的弱点 (3)用户需求不明 (4)缺乏正确理论指导 (5)开发规模越来越大 (6)开发复杂度越来越高 可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影响。 软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了贡献。 2.什么是软件重用,软件重用的层次可以分为哪几个级别? 软件重用:是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。可以分为三个层次: (1)代码重用(2)设计结果重用(3)分析结果重用 3.什么是可重用构件?相对于普通的软件产品,对可重用构件有何特殊要求? 可充用构件表示软件重用过程中,可重用的软件构件元素。 可重用构件的特殊要求: (1)可重用构件应该具有功能上的独立性与完整性; (2)可重用构件应该具有较高的通用性; (3)可重用构件应该具有较高的灵活; (4)可重用构件应该具有严格的质量保证; (5)可重用构件应该具有较高的标准化程。 4.基于构件的软件开发的优势是什么?基于构件的软件开发面临哪些挑战和困难? 优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同一系统采用多个开发商提供的构件,它 们之间的兼容性可能是开发过程中所要面对的一个严峻的问题 挑战和困难: (1)在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题; (2)采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场上的竞争力;(3)第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。这些都是在购买第三方构件进行软件开发时无法回避的问题,因此需要对这些风险进行充分的估计。 5.简述3种应用最为广泛的构件技术规范COM、CORBA和EJB的各自特点。CORBA的特点: (1)实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。 (2)应用程序间的统一接口。

计算机体系结构重点总结

1、、Amdahl定律:某部件应用越频繁,当提高该部件性能时,整机性能也提高得越多;整机得性能加速不可能大于在原机器中除该部件外所有其它部件运行时间得百分比得倒数1/(1-F)。 F定义为采用先进高速部件得那部分程序在未采用先进高速部件得计算机上运行得时间占总时间得百分比,则F= 采用高速部件得任务在老计算机上运行得时间 整个任务在老计算机上运行得时间 同时将S定义为先进高速部件与老部件得性能,则 S= 老部件完成该功能得时间 先进高速部件完成该功能得时间 而采用了高速部件后整机性能提高比,即 Speedup = T old = 1 T new (1-F)+F/S 某种硬件增强技术,可使执行速度提高10倍,在采用增强技术得计算机上测出其使用率就是50%。根据Amdahl定律计算: ⑴采用增强技术后计算机性能加速比就是多少? ⑵未采用增强技术运行得部件在不采用增强技术得机器上运行时得时间比例。 2、(1)90/10局部性规则:程序花费90%得执行时间运行指令集中10%得指令代码。这就就是说在指令集中所有得指令只有10%指令就是常用得,而另外90%指令得使用率合起来只有10%。 (2)时间局部性:如果某一参数被引用,那它不久将再次被引用。这里指出了程序执行时在时间上得局部性 (3)空间局部性:如果某一参数被引用,那它附近得参数不久也将被引用。指出程序执行时地址空间上得局部性。 3、计算机得性能就是指在计算机上完成用户得应用任务所需得时间长短。完成同样任务所需得时间越短,计算机得性能越好。(考判断) 4、衡量计算机性能得参数:响应时间就是指计算机系统完成某一任务(程序)所花费得时间。 5、如果用速度来评价性能,我们称“高”为性能好;如果用响应时间来评价性能,我们称“短”为性能好。(考判断) 6、计算机整机性能分成两部分:一就是CPU执行程序得时间,二就是等待时间。 提高计算机性能就就是提高CPU性能与减少等待时间。 cpu性能因子CPI:每条指令得平均时钟周期数(clock cycles per instruction), CPI=CPU花费得时钟数/CPU执行得总指令数 CPUtime =指令数× CPI ×时钟周期==I× CPI ×τ 8、CPU性能因子:(1)时钟频率(f)(2)CPI(3)指令数(I) (考填空) CPU性能 =1/CPU time= f / ( I×CPI ) 计算机性能常用指标:(1)MIPS(million instruction per second)MIPS得意思就是每秒钟执行得百万条指令数。 MIPS= 指令数/ ( 执行时间×106 ) = 时钟频率 / ( CPI×106 ) =f / ( CPI×106 ) MFLOPS(million floating-point operation per second)每秒钟执行得百万个浮点操作数MFLOPS=浮点操作数 / 执行时间×106 10、工作负载基准程序(workload benchmark): (1)实际程序(2)核心基准程序(3)简单基准程序(4)合成基准程序 (考填空) 11、基准程序得一般设计原则: (1)具有代表性,反映用户得实际应用。 (2)不能对基准程序进行优化。 (3)复现性。能重复测试,其环境相同,结果能重复出现。(4)可移植性。系统相关性要小。 (5)紧凑性。基准程序不宜太庞大。 (6)成本-效率要高。 12、测量结果得统计与比较----性能报告:SPEC(system performance evaluation cooperative)基准程序 13、指令设计时主要以下几个方面来考虑: (考填空) ⑴应用范围;⑵指令得使用概率;⑶常用指令分析;⑷特殊指令设计。

(完整版)网络体系结构知识点总结

第二章网络体系结构和协议 1.网络体系结构是层次和协议的集合。 2.网络协议:通信双方在通信中必须遵守的规则。用来描述进程之间信息交换过程的一组 术语。 3.协议三要素:语法、语义和交换规则(时序、定时)。 a)语法:规定数据与控制信息的结构和格式。 b)语义:规定通信双方要发出何种控制信息、完成何种动作以及做出何种应答。 c)交换规则:规定事件实现顺序的详细说明。 4.分层设计 a)为了降低协议设计的复杂性,采用层次化结构。 b)每一层向其上层提供服务。 c)N层是N-1层的用户,是N+1层服务的提供者。 d)第N层和第N层通信,使用第N层协议。 e)实际传输数据的层次是物理层。 f)分层的优点: i.各层之间相互独立,高层不必关心底层的实现细节。 ii.有利于实现和维护,每个层次实现细节的变化不会对其它层次产生影响。 iii.易于实现标准化。 g)分层原则:每层功能明确,层数不宜太多也不能太少。 h)协议是水平的(对等层通信时遵守的规则) i)对等层:通信的不同计算机的相同层次。 j)接口:层与层之间通过接口提供服务。 k)服务:下层为上层提供服务 5.网络中进行通信的每一个节点都具有相同的分层结构,不同节点的相同层次具有相同的 功能,不同节点的相同层次通信使用相同的协议。 6.数据传输的过程 a)数据从发送端的最高层开始,自上而下逐层封装。 b)到达发送端的最底层,经过物理介质到达目的端。 c)目的端将接收到的数据自下而上逐层拆封。 d)由最高层将数据交给目标进程。 7.封装:在数据前面加上特定的协议头部。 8.层次和协议的关系:每层可能有若干个协议,一个协议主要只属于一个层次。 9.协议数据单元(PDU):对等层之间交换的信息报文。 10.网络服务:计算机网络提供的服务可以分为两种:面向连接服务和无连接服务。 11.OSI/RM(开放系统互联参考模型) a)应用层面向用户提供服务,最底层物理层,连接通信媒体实现数据传输。 b)上层通过接口向下层提出服务请求,下层通过接口向上层提供服务。 c)除物理层以外,其他层不直接通信。 d)只有物理层之间才通过传输介质进行真正的数据通信。 12.OSI的特点: a)每层的对应实体之间都通过各自的协议进行通信。 b)各计算机系统都有相同的层次结构。 c)不同系统的相应层次有相同的功能。 d)同一系统的各层之间通过接口联系。

浅谈几种常见的嵌入式处理器比较分析

浅谈几种常见的嵌入式处理器比较分析 前言 随着电子科学的不断发展,人们开始逐渐对数码产品有了更高的需求,这就促使了信息技术的不断发展。嵌入式系统的核心就是嵌入式处理器,它是控制、辅助嵌入式系统运行的硬件单元,其应用范围非常的广阔,它也具有很好的发展前景。那么,面对纷繁复杂的嵌入式处理器市场,我们该如何做出适合自己的选择呢?下面小编就对市场上常见的几种嵌入式处理器进行比较分析,希望可以对大家有所帮助(嵌入式处理器类型)。 (1)嵌入式ARM微处理器(嵌入式微处理器结构) ARM微处理器的由来与发展 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器。它是一种高性能、低功耗的32位微处器,它被广泛应用于嵌入式系统中。基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码像机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。 ARM微处理器的应用领域 ARM微处理器是目前应用领域非常广的处理器,到目前为止,ARM微处理器及技术的应用几乎已经遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,深入到各个领域。 1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。 3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。 4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。 基于RISC架构的ARM微处理器的特点 1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

嵌入式软件开发流程

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

浅谈几种常见的嵌入式处理器比较分析

浅谈几种常见的嵌入式处理器比较分析 The manuscript was revised on the evening of 2021

浅谈几种常见的分析 前言 随着电子科学的不断发展,人们开始逐渐对数码产品有了更高的需求,这就促使了信息技术的不断发展。嵌入式系统的核心就是嵌入式处理器,它是控制、辅助嵌入式系统运行的硬件单元,其应用范围非常的广阔,它也具有很好的发展前景。那么,面对纷繁复杂的嵌入式处理器市场,我们该如何做出适合自己的选择呢下面小编就对市场上常见的几种嵌入式处理器进行比较分析,希望可以对大家有所帮助(嵌入式处理器类型)。 (1)嵌入式ARM微处理器(嵌入式微处理器结构) ARM微处理器的由来与发展 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器。它是一种高性能、低功耗的32位微处器,它被广泛应用于嵌入式系统中。基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码像机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。 ARM微处理器的应用领域 ARM微处理器是目前应用领域非常广的处理器,到目前为止,ARM微处理器及技术的应用几乎已经遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,深入到各个领域。 1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。 3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。 4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。 基于RISC架构的ARM微处理器的特点 1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

嵌入式软件开发流程

嵌入式软件开发流程

————————————————————————————————作者:————————————————————————————————日期:

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式系统概述

1 嵌入式系统概述 嵌入式系统(Embedded System )也称嵌入式计算机系统。顾名思义,嵌入式系统是计算机的一种特殊形式,是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。嵌入式系统不仅和一般的PC 机上的应用系统不同,而且针对不同的具体应用而设计的嵌入式系统之间的差别也很大。嵌入式系统强调硬件和软件的协同性与整合性,软件和硬件可剪裁的,适用于应用系统对功能、可靠性、成本、体积、功耗和应用环境等有严格要求的专用计算机系统。 嵌入式系统特别强调“量身定做”的原则,开发人员往往需要针对某一种特殊用途开发出一个截然不同的嵌入式系统,其特点如下。 (1)嵌入式系统具有应用针对性 应用针对性是嵌入式系统的一个基本特征,体现这种应用针对性的首先是软件,软件实现特定应用所需要的功能,所以嵌入式系统应用中必定配置了专用的应用程序;其次是硬件,大多数嵌入式系统的硬件是针对应用专门设计的,但也有一些标准化的嵌入式硬件模块,采用标准模块可降低开发的技术难度和风险,缩短开发时间,但灵活性不足。 (2)嵌入式系统硬件扩展能力要求不高 硬件上,嵌入式系统作为一种专用的计算机系统,其功能、机械结构、安装要求比较固定,所以一般没有或仅有较少的扩展能力;软件上,嵌入式系统往往是一个设备固定组成部分,其软件功能由设备的需求决定,在相对较长的生命周期里,一般不需要对软件进行改动。但也有一些特例,比如现在的手机,尤其是安装有嵌入式操作系统的智能手机,软件安装、升级比较灵活,但相对于桌面计算机,其软件扩展能力还是相当弱。 (3)嵌入式系统操作系统精简 在现代的通用计算机中,没有操作系统是无法想象的,而在嵌入式计算机中情况则大第 章

嵌入式linux系统开发概述

嵌入式linux系统开发概述 作者:谷丰,[email=您可以通 过%3Ca%20href=]gufeng77@https://www.doczj.com/doc/5217353863.html,[/email]" target="_blank">您可以通过 gufeng77@https://www.doczj.com/doc/5217353863.html,和他联系 基于linux的嵌入式系统开发是一个很大的课题,涵盖了从硬件到软件设计的多个领域,由于linux的开源特性,导致开发中可以使用的软件和工具多不胜数,从最底层与系统硬件直接打交道的引导装载程序(bootloader),到linux操作系统的分发版(distribution),再到上层的图形用户界面(GUI)乃至应用程序(application),可供选择的软件实在是太多了,这对开发者来说是一种恩赐。但由于标准的不统一,对于刚刚步入这个领域的初学者来说,很难在短时间内全部了解和掌握它们。本文论述了嵌入式linux开发的基本模式和概念,给出了一些常用的软件和工具,旨在带领他们更快的走入这个奇妙的世界。 1 引导装载程序(bootloader) 引导装载程序通常是在任何硬件上执行的第一段代码,它的主要任务视装载设备的不同而不同。在台式机和笔记本这样的常规系统中,经常存在多个操作系统并存的情况,因此bootloader的主要作用就是选择系统使用何种操作系统来引导。常用的引导程序有LILO或GRUB,通常将它们装入硬盘的主引导记录(Master Boot Record)中,或者装入linux 驻留的磁盘的第一个扇区。 在嵌入式系统中,情况有些不同。首先,嵌入式设备通常需要经常地移 动,考虑到在移动过程中的震动,一般不会采用机械式结构设计的硬盘为存 储设备;而且从成本控制上说,硬盘的价格比较高,除非是需要大容量存储 的场合,硬盘不适合作为嵌入式设备的存储介质。目前采用得比较多的是闪 存设备,闪存设备是与存储设备功能类似的特殊芯片,而且它

相关主题
文本预览
相关文档 最新文档