搜档网
当前位置:搜档网 › ARM2体系结构

ARM2体系结构

ARM2体系结构
ARM2体系结构

第2章 ARM体系结构

本章介绍ARM7TDMI程序员模型、工作模式与工作状态、ARM和Thumb状态的寄存器组织、存储器组织结构、异常以及协处理器接口等一些基本概念。本章还讲述了ARM的编程基础,如:ARM微处理器的基本工作原理、程序设计相关的基本技术细节等。

2.1 ARM7TDMI程序员模型

ARM7TDMI是目前应用最广泛的ARM内核。它由74209个晶体管组成,通常采用0.35μm 制作工艺,最高时钟为66MHz,最快速度为60MIPS,耗电87mw。ARM7TDMI处理器是采用32位地址寻址,支持片内调试(JTAG),支持断点调试(EMBEDDED ICE),具有乘法运算器和三级指令流水线的32位整数RISC处理器。

掌握ARM7TDMI的工作性能和使用方法,使用者首先要从程序员编程的角度了解ARM7TDMI内核。

2.1.1内核概述

ARM7TDMI内核的基本结构如图2.1所示。ARM7TDMI内核由扫描、指令译码和控制逻辑和ALU组成。

图2.1 ARM7TDMI内核的基本结构

其中, 指令译码和控制逻辑包括指令流水线(Instruction Pipeline)、Thumb指令译码器(Thumb Instruction Decoder),ALU包含寄存器组(Register Bank)、32*8乘法器(Multiplier)、桶形移位器(Barrel shifter)和32位的运算器(32bit ALU)。

2.1.2译码器与控制逻辑

指令译码和控制逻辑包括指令流水线、Thumb指令译码器。

流水线技术是将每条指令分解为多步来执行,流水线方式是指把一个处理过程分解成若干个子过程,每个子过程可以与其他子过程同时进行,实现几条指令并行处理,以加速程序运行过程的技术。

流水线技术是通过增加计算机硬件来实现的,每条由各自独立的电路来处理,每完成一步,就进到下步,而前一步则处理后续指令。采用流水线技术后,处理器并没有加速单条指令的执行,每条指令的操作步骤也不能少,由于多条指令的不同操作步骤同时执行,因而从总体上加快了指令流执行速度,缩短了程序执行时间。

在计算机的体系结构中,处理器包含指令部件I和指令执行部件E。指令部件I负责完成指令取指、指令译码,指令执行部件E负责完成功能运算、结果保存。计算机执行程序是按顺序执行的。在一条指令中,可以分为三个部分,如图2.2所示:

图2.2 指令执行过程

为了提高CPU的工作效率,ARM的控制器设计完全采用硬布线实现。如图 2.3所示,ARM把若干条指令在执行时间上重叠起来,使机器的执行速度大大加快。

从图2.3可以看出,指令部件完成第1条指令取指后,交给指令译码部件;指令部件进行第2条指令的取指。同理,译码部件完成第1条指令译码后,交给指令执行部件;指令译码继续完成第2条指令的译码。指令的整个执行过程相当于工业生产线上的流水作业,这种指令的处理机制称作指令流水线。

到目前为止,ARM核处理器的流水机制分为三级流水线、五级流水线和六级流水线(ARM11为八级流水线)。ARM7采用三级流水线结构,分别是取指、译码和执行。ARM9采用的是五级流水线结构,分别是取指、译码、执行、存储和回写。ARM10采用的是六级流水线结构。

指令流水线遇到执行“跳转指令”时,指令流水线不能继续执行,自动清空指令流水线(如重新建立指令流水线需要2个或2个以上的指令周期),指令流水线需要重新建立。为提高指令执行效率,ARM在指令设计上基本每条指令都采用条件执行。执行含有条件的指令时,如条件不满足,相当指令一条NOP指令,指令流水线不清空。

ARM7TDMI执行使用 3 级流水线,第一级从内存中取回的指令,第二级开始译码,而第三级实际执行。因此,程序计数器指针总是超出当前执行的指令两个指令,参见图 2.3(在为分支指令计算偏移量时必须计算在内)。

在分支时ARM7TDMI将多花2个指令周期(因为流水线需要重新添满)。所以最好利用条件执行指令来避免浪费周期。例如:

...

CMP R0,#0

BEQ finish1

MOV R1,#1

MOV R2,#2

finish1

...

ARM7TDMI条件指令可以使系统执行更为有效:

...

CMP R0,#0

MOVNE R1,#1

MOVNE R2,#2

...

Thumb指令译码器。由于ARM内部只有一个32位运算器,为节约存储器空间,减少代码的存储空间,Thumb指令是将32位指令按照16位格式进行存储,在执行过程中,Thumb 指令译码器把16位格式的指令还原成32位运算器能够执行的32位指令。

2.1.3运算器

ALU包含寄存器组、32*8乘法器、桶形移位器和32位的运算器。本节简单介绍乘法器、桶形移位器和32位的运算器。寄存器组将2.3节中介绍。

(1)32位的加法器

运算器不仅要实现加法运算,还必须实现指令集的所有指令。它包括访问存储器的地址计算、跳转地址计算和位逻辑运算功能,ARM内核不采用微程序译码方式执行,采用完全的硬布线逻辑实现。

(2)桶形移位器

ARM7TDMI的运算指令包括两个操作数,第一个是寄存器,第二个可以是寄存器、立即数、或者是寄存器、立即数经过移位运算产生的操作数。桶形移位器采用交叉开关,提供实现移位的硬件设备,减少数据的延时,提高指令的执行速度。

(3)32*8乘法器

ARM7TDMI支持64位结果乘法指令以及乘加指令。乘法器是由硬件布线逻辑实现的,它采用著名的Booth改进电路,提高了乘法运行速度。

2.1.4内核接口信号

ARM7TDMI总线接口信号分为时钟信号、中断请求信号、总线控制信号、调试信号、边界扫描信号、处理器模式与状态信号、存储器接口信号、协处理器接口信号和电源等9类。下面介绍各类主要信号:

1.时钟信号:

(1)MCLK(memory clock)

输入信号。ARM7TDMI、存储器及系统其它部件在MCLK时钟的控制下运行。为获得地址原始的MCLK低电平定时信号,ALE须用MCLK的下降沿驱动成高电平信号,用MCLK的上升沿驱动成低电平信号。ALE可以简单地反向MCLK 信号得到,但是从MCLK得到ALE有延时,须特别注意。

(2)nWAIT(not wait)

nWAIT是由存储器或者外部设备给出的信号,可以用于延长总线周期。当访问低速存储器或设备时,处理器将把访问时间延长若干个时钟周期,以等待低速存储器和设备的响应。在ARM7TDMI内部,nWAIT与MCLK进行“与”操作,当nWAIT为高时,ARM7TDMI在MCLK的

控制下运行。在任何的多周期存储器访问时,nWAIT低电平保持到最终得到数据锁存。(3)ECLK(external clock)

ECLK是内核的输出信号,由MCLK扩展生成。当调试内核时,ECLK是由TCK产生的DCLK 信号。

2.中断请求信号:

(1)nIRQ(not interrupt request)

低电平有效。如果nIRQ为低电平,将产生IRQ中断。

(2)nFIQ(not fast interrupt requests)

低电平有效。如果nFIQ为低电平将产生FIQ中断。

(3)ISYNC(synchronous interrupt)

如果nIRQ和nFIQ与ARM核时钟同步,ISYNC为低电平;如果ISYNC为高电平,要求nIRQ和nFIQ与ARM核时钟进行同步。

3.总线控制信号:

(1)nRESET(not reset)

nRESET为低电平导致正在执行的指令非正常执行。nRESET为低电平时,处理器在复位处执行指令的虚拟预取。如nRESET一直为低,处理器执行内部周期,同时地址自动从复位处增值,最终地址会产生溢出,地址为0。当nRESET在低电平保持2个或2个以上时钟周期后,恢复为高电平一个时钟周期,ARM7TDMI将从地址0×00重新开始执行。

(2)HIGHZ(high impedance)

HIGHZ信号为高电平表示HIGHZ指令被加载到TAP控制器。

(3)nENIN(not enable input)

在写周期,nENIN 与nENOUT共同控制数据总线。在简单的系统中,nENIN 为低,nENOUT 不定义。在一些较复杂的应用系统中,nENIN允许外部系统操纵。当外部设备驱动总线时,nENIN可用于信号延时。

(4)nENOUT( not enable output)

在数据写周期,nENOUT一直保持低电平。在共享总线应用中,nENOUT信号可用作辅助仲裁。

(5)ABE(address bus enable)

ABE输入为低电平,强迫地址总线进入高阻状态。MAS[1:0]、nRW、LOCK、 nOPC 和 nTRANS 信号也有类似的情况。如果系统不要求禁止地址驱动,ABE应接到高电平。

(6)APE(address pipeline enable)

当APE为高电平表示总线处于流水线方式,当APE为低电平,表示总线处于非流水线方式。APE的电平要保持到存储器控制信号指明另一个非顺序访问结束。地址总线、LOCK、nRW、MAS[1..0]、nOPC、和nTRANS与APE共同作用,以确定总线周期的类型。

系统可能包含DRAM和SRAM以及ROM。为适应不同地址周期的需要,在MCLK 为低时APE可以变换。APE信号控制ARM7TDMI的地址总线可以在流水线方式或非流水线方式下操作。APE 信号的输入可以控制ARM7TDMI的地址总线形成流水线或取消流水线。APE信号影响A[31:0]、nRW、 MAS[1:0]、 LOCK、nOPC 和 nTRANS信号。作为地址译码的结果,APE由被访问的存储体驱动,APE信号需要保持到另一个非顺序访问周期。通常,在同类存储器的猝发顺序访问中,APE保持为同一电平。在只包含SRAM 和 ROM的系统中,在产生要求的地址时,APE总是保持低电平;许多应用系统包含DRAM 和 SRAM/ROM,为适应不同的地址定时要求,在MCLK 的低电平相位内,APE可以安全改变。

(7)ALE(adress latch enable)

在非顺序周期里,地址译码需要加入一个等待状态,用于控制地址输出的锁存器,通常地址信号需要稳定,直到周期结束。ALE为高电平,系统地址将保持不变。它的作用与MAS[1:0], nRW, LOCK, nOPC和 nTRANS信号类似。

(8)DBE(data bus enable)

在单向或双向总线数据输出时,DBE应为高电平。DBE为低电平时,双向数据总线进入高阻状态,单向数据输出总线为高阻,无数据输出。

(9)TBE(test bus enable)

TBE是ARM7TDMI输出控制信号,通常TBE总是保持为高电平。TBE控制信号在测试时使用。当TBE为低电平时,数据总线D[31:0]、地址总线 A[31:0]、 LOCK、MAS[1:0]、 nRW、nTRANS 和 nOPC被强制为高阻状态。由于TBE没有与之相关的扫描单元,因此允许外部信号在扫描测试期间被置为高阻状态。

4.调试信号:

(1)BREAKPT(breakpoint)

为了调试程序,BREAKPT信号允许外部设备停止处理器正在执行的程序。BREAKPT为高,引起当前存储器访问的中断。如对存储器的访问是取指,指令到达指令流水线,ARM7TDMI 进入调试状态;如对存储器的访问是存取数据,当前指令执行完成,ARM7TDMI进入调试状态。BREAKPT信号允许扩充ICE类型的内部断点。

(2)nEXEC(not executed)

如果本条指令的条件码检验没有通过,指令在ALU中不被被执行,处理器内核通过该信号,告诉外部设备。

(3)DBGRQ( debug request)

当DBGRQ为高电平,ARM7TDMI在执行完当前指令后,进入调试状态。DBGRQ信号允许外部设备强制ARM7TDMI进入调试状态,使得ICE(在线仿真器)可以提供调试功能。

(4)DBGRQI(internal debug request)

DBGRQI信号是由外部信号DBGRQ与当前ARM7TDMI 的调试控制寄存器第一位共同产生。当DBGRQ 变化时,DBGRQI延时一会也发生变化。调试控制寄存器第一位被写入时,DBGRQI信号在TCK下降沿处改变。

5.边界扫描信号:

(1)TDI(test dada input)

给扫描链提供串行数据。

(2)TDO(test dada output)

接收来自扫描链的串行数据。

6.处理器模式与状态信号:

(1)nM[4..0](not processor mode)

标识处理器内部状态的工作模式,是CPSR中M[4..0]内容的反映。

(2)TBIT(Thumb bit)

TBIT信号与状态寄存器中T位逻辑相同。处理器执行Thumb指令时,TBIT信号为高电平;处理器执行ARM指令时,TBIT信号为低电平。

7.存储器接口信号:

(1)A[31..0](adress bus)

A[31..0]指出访问内存的32位地址。ARM7TDMI可以访问4G的线性地址空间。在整个存储器周期,SRAM和ROM的地址都要求保持稳定。

处理器给出的是一个字节地址,但是指令地址总是字(4字节)或半字(2字节)。数据可以是任意字节。注意:当取字指令时,A[1:0]未定义。当取半字指令时,A[0]未定义。(2)D[31..0](data bus)

处理器与外部存储器之间的数据传输总线。在读周期,输入数据在MCLK的下降沿前准备好;在写周期,输出数据在MCLK的下降沿前准备好。

(3)DIN[31:0]和DOUT[31:0]

ARM7TDMI还提供单向数据输入总线DIN[31:0]和数据输出总线DOUT[31:0]。单向总线应用于嵌入式ASIC电路内部,多数系统对外部存储器需要双向数据总线。配置外部数据总线使用BUSEN(data bus configuration)信号。

(4)nMREQ(not memory request)

当nMREQ为低电平时,表示下面的周期处理器要求进行存储器访问。该信号在第一周期有效,并保持到第二周期。

(5)SEQ(sequential address)

输出信号。下一个存储器周期的地址与上一次存储器访问地址相关时,SEQ变为高电平。在ARM状态,新地址可以是相同的字或下一个字的地址;在Thumb状态,新地址可以是相同的半字或下一个半字的地址。该信号与低位地址线配合指示下一个周期可使用快速存储器模式(DRAM的页模式),或表明旁路地址转换系统。

(6)nRW(not read/write)

读写信号。当nRW为高电平,表明在进行存储器写操作,nRW为低表明在进行存储器读操作。nRW可用于保护页面写入存储器管理。

(7)MAS[1..0]

MAS[1:0]用于描述数据总线的传送数据宽度。MAS[00]表示访问一个字节,MAS[01]表示访问一个半字,MAS[10]表示访问一个字,MAS[11]无定义。

ARM7TDMI可以进行字节、半字和字操作,该信号用于表明操作数据的类型。如,使用STRH 指令保存一个半字或字节时,ARM7TDMI在总线上广播一个半字或字节的地址,存储器系统对A[1:0]进行译码,确定只写半字或者字节,存储系统可以完全不理会半字或全字的需要。在DRAM系统里,实现译码的方法是将存储器分为四个体,产生独立的nCAS0、nCAS1、nCAS2、nCAS3列地址选通信号。

(8)BL[3..0]

ARM7TDMI可以进行字节、半字和字访问,为了使ARM7TDMI与存储器的连接更为方便,BL[0]、BL[1]、BL[2]和BL[3]分别用于锁定D[7..0]、D[15..8]、D[23..16]和 D[31..24] 上的数据。BL[3:0]在存储器访问周期为高电平。

(9)nTRANS (not memory translate)

该信号用于通知存储管理硬件,下面的访问地址发生变化。nTRANS信号可以指示处理器处于用户模式还是处于特权模式,nTRANS为低电平表明处理器处于用户模式,nTRANS为高电平表明处理器处于非用户模式。nTRANS由ABE、ALE 和 APE 信号产生。nTRANS可用于保护用户的系统页面,或支持完整的用户与系统映射隔离。

(10)ABORT(memory abort)

ABORT信号由存储系统发出,用于通知不允许处理器的访问请求。当前的地址转换单元能够处理ARM7TDMI地址总线,ARM7TDMI可以运行虚拟存储器系统。处理器的输入信号ABORT 能够用于告知ARM7TDMI的存储器页面管理失效。

8.协处理器接口信号

(1)nCPI(not co_processor instruction)

当协处理器执行指令时,ARM7TDMI将nCPI输出低电平,并等待协处理器在CPA 和 CPB 信号线上的响应。

(2)CPA(co_processor absent)

执行ARM7TDMI通过nCPI请求的指令时,协处理器将CPA信号置为低电平。如果CPA 是低电平,ARM7TDMI处于等待状态,一直等到完成协处理器的指令。

(3)CPB(co_processor busy)

当协处理器准备开始工作时,将CPB置为低电平。 ARM7TDMI在nCPI 为低的周期采样CPB 。

9.电源

(1)VDD(power supply)

电源信号。

(2)VSS(ground)

地线。

2.2工作模式与工作状态

2.2.1工作状态

从编程的角度讲,ARM7TDMI微处理器内核的工作状态有ARM和Thumb两种状态,处理器可以随时在两种状态之间进行切换。处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。

为兼容数据总线宽度为16位的应用系统,ARM体系结构除支持执行效率很高的32位ARM 指令集以外,同时支持16位的Thumb指令集。Thumb指令集是ARM指令集的一个子集,允许指令编码为16位的长度。与等价的32位代码相比较,Thumb指令集在保留32代码优势的同时,大大的节省了系统的存储空间。

特别指出,Thumb指令集为16位的指令长度,但是,Thumb指令集中的数据处理指令的操作数是32位,指令地址也是32位。ARM指令都是有条件执行的,大多数的Thumb指令是无条件执行。在指令编码上,Thumb指令减少了ARM指令的条件码域;由于大多数的Thumb 数据处理指令的目的寄存器与其中一个源寄存器相同,Thumb指令在指令编码时由三操作数改为两操作数。

在ARM状态,处理器执行32位ARM指令,使用的是32位字对齐存储结构;Thumb状态,是ARM的存储压缩指令集,Thumb指令以16位形式存储,使用的是16位半字对齐存储结构,处理器执行时还原为32位的指令执行。

所有的Thumb指令都有对应的ARM指令,而且Thumb的程序员模型也对应于ARM的程序员模型,在应用程序的编写过程中,Thumb子程序和ARM子程序就可以互相调用。当处理器在执行ARM程序段时,称ARM处理器处于ARM工作状态,当处理器在执行Thumb程序段时,称ARM处理器处于Thumb工作状态。

由于Thumb指令的长度为16位,即只用ARM指令一半的位数来实现同样的功能,所以,要实现特定的程序功能时,所需的Thumb指令的条数较ARM指令稍多。

ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间相互切换。但ARM微处理器在开始执行代码时,应该处于ARM状态。操作数寄存器的状态位(位

0)标识ARM微处理器所处的工作状态。ARM微处理器的工作状态切换的方法有:

1.进入Thumb状态

执行BX指令,操作数寄存器的状态位(位0)为1时,可以使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换回Thumb状态。

2.进入ARM状态

执行BX指令,操作数寄存器的状态位(位0)为0时,可以使微处理器从Thumb状态切换到ARM状态。此外,在进入异常处理时,处理器自动切换到ARM状态。这种情况下,当前PC存放在异常模式的连接寄存器中,并从异常向量地址开始执行程序。

2.2.2 ARM的工作模式

ARM结构支持七种工作模式,用户模式(usr)、系统模式(sys)、和五种异常模式(Exceptions)。其中,异常模式里包括快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、数据访问终止模式(abt)和未定义指令中止模式(und)。七种工作模式分别为:☆用户模式(usr):ARM处理器正常的程序执行状态,运行应用程序的普通模式;

☆快速中断模式(fiq):用于高速数据传输或通道处理,fiq在触发快速中断请求(fiq)时进入。

☆外部中断模式(irq):在触发中断请求(irq)时进入,用于通用的中断处理。

☆管理模式(svc):在系统复位或执行一个软件中断(SWI)指令时进入,操作系统使用的保护模式。

☆数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护等。

☆系统模式(sys):运行具有特权的操作系统任务。

☆未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

除用户模式外的其它六种模式都称为特权模式。其中除用户模式和系统模式以外的五种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。为确保从用户模式进入异常模式的可靠性,每种模式都有一些特定的附加寄存器。

fiq模式与irq模式之间具有很大区别,fiq模式必须尽快处理,处理结束后离开这个模式。irq模式可以被fiq模式所中断,但irq模式不能中断fiq模式。为使fiq模式响应更快,fiq模式具有更多的影子(shadow)寄存器,处理器为irq模式配置多个影子寄存器。fiq模式必须禁用中断。如果一个中断例程必须重新启用中断,应该使用irq模式而不是fiq 模式。

ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下。当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。

2.3. ARM和Thumb状态的寄存器组织

ARM结构支持2类寄存器,包括状态寄存器和通用寄存器。ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器,均为32位的寄存器,这些寄存器被分为若干个组(BANK),不能同时被访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。

ARM共支持七种工作模式,每种工作模式只能使用十六个通用寄存器。在任何时候,ARM 可以访问通用寄存器R0~R14、程序计数器PC、一个或两个状态寄存器。

2.3.1通用寄存器

ARM处理器有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、程序计数器和1至2个状态寄存器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。由于处理器的每种运行模式均有自己独立的物理寄存器,ARM采用寄存器名称_的方法来区分不同的物理寄存器。如R14_,mode可为以下几种模式之一:usr、fiq、irq、svc、abt、und。由于R14、R14_fiq、R14_irq、和R14_svc在带连接的分支指令时起的作用,有时被称为“连接”寄存器。

1.ARM状态下的寄存器组织

通用寄存器包括R0~R15,可以分为三类:未分组寄存器R0~R7;分组寄存器R8~R14;程序计数器PC(R15)。

寄存器R0到寄存器R7是通用寄存器,可以用作任何目的。ARM处理器在寄存器使用上是高度灵活的。在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,它们不被系统派作它用。在进行中断或异常处理运行模式转换时,如果处理器在不同的运行模式下使用相同的物理寄存器,可能会造成寄存器中数据的破坏。因此,在进行程序设计时,对寄存器的使用应引起足够重视。

通常,寄存器R8到R12是通用寄存器,访问寄存器R8_usr~R12_usr。但是在切换到fiq模式的时候,R8~R14是分组寄存器,寄存器对应两个不同的物理寄存器,使用它们的

影子寄存器。程序每次访问的物理寄存器与处理器当前的运行模式有关,当使用fiq模式时,访问寄存器R8_fiq~R12_fiq。

对于R13、R14来说,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。

在ARM状态下,任何时刻可以访问16个通用寄存器和一到两个状态寄存器。在非用户模式(特权模式)下,则访问特定模式的分组寄存器,图2.4标明了在每一种运行模式下允许访问的寄存器。

2.3.2 Thumb状态下的寄存器组织

Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。同时,在每一种特权模式下都有一组SP、LR和SPSR。图2.5给出ARM与Thumb状态下的寄存器组织。

图2.5 ARM与Thumb寄存器结构

ARM状态与Thumb状态下的寄存器组织的关系是:

☆Thumb状态下和ARM状态下的R0~R7是相同的;

☆Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的;

☆Thumb状态下的SP对应于ARM状态下的R13;

☆Thumb状态下的LR对应于ARM状态下的R14;

在Thumb状态下,寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器,将其用作快速的暂存器。使用带特殊变量的MOV指令,数据可以在寄存器R0~R7和寄存器R8~R15之间进行传送;寄存器R8~R15的值可以使用CMP和ADD指令进行比较或加上寄存器R0~R7中的值。

2.3.3程序计数器

R15是程序计数器PC。当前的PC值不是当前正在执行指令的PC值。由于ARM采用流水线结构,在读到的PC值时,ARM核已经读取了后面的指令,对于ARM7现在读到的PC值是当前执行指令的PC+8(三级流水线)。

寄存器R15是32位通用寄存器,主要作用是程序计数器PC。寄存器R15的格式为:

在ARM状态下,[1:0]位为00,即PC的0和1位是0,[31:2]位用于保存PC;在Thumb 状态下,[0]位为0,位[31:1]用于保存PC;PC的[0]位是0。

由于ARM体系结构采用了多级流水线技术,对于ARM7指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节。R15用作通用寄存器时,使用上有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。

两种工作状态之间通过指令完成切换。ARM指令集和Thumb指令集均有处理器状态的切换指令。操作数寄存器的状态位(位0)标识ARM微处理器的工作状态。

当操作数寄存器的状态位(位0)为1时,执行BX指令,使处理器切换到Thumb状态。在处理器进行异常处理时,把PC指针放入异常模式连接寄存器LR中,处理器切换到ARM 状态。并从异常向量地址开始执行程序。

当处理器处于Thumb状态时发生异常(如irq、fiq、undef、abort、swi等),则异常处理返回时,ARM状态自动切换回Thumb状态。

2.3.4程序状态寄存器

状态寄存器用于标识CPU的工作状态及程序的运行状态。状态寄存器有两种,一种称作当前程序状态寄存器CPSR(Current Program Status Register),另一种称作备份程序状态寄存器SPSR(Saved Program Status Register)。CPSR可在任何运行模式下被访问,CPSR 中含有条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。

每一种异常模式运行时都有一个专用的物理状态寄存器SPSR,应当注意,当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。应当注意的是:用户模式、系统模式与异常模式不同,不需要保留当前的状态,没有备份程序状态寄存器,所以在这两种模式下不能访问SPSR。

表2.1给出条件码标志(Condition Code Flags)的含义。

31 30 29 28 27 7 6 5 4 3 2 1 0

按内容分类,状态寄存器PSR包括三个部分:条件标志位[31..27]、控制位[7..0]和保留位[26..8]。N、Z、C、V均称作条件码标志位,其内容可因算术或逻辑运算的结果被改变。条件标志位可以决定某条指令的条件执行。条件码标志位的具体含义如下:

1.N标志位,又称负数(Negative)标志。当用两个补码表示的带符号数进行运算时,N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零。

2.Z标志位,又称零(Zero)标志。Z=1 表示运算的结果为零;Z=0表示运算的结果为非零。3.C标志位,又称进位(Carry)标志。可以有4种方法设置C的值:

(1)加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0;

(2)减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),C=0,否则C=1;

(3)对于包含移位操作的非加/减运算指令,C为移出值的最后一位;

(4)对于其他的非加/减运算指令,C的值通常不改变。

4.V标志位,又称溢出(overflow)标志。V值改变有2种情况:

(1)对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。

(2)对于其他的非加/减运算指令,V值通常不改变。

5.Q标志位。在ARM v5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。在其他版本的处理器中,Q标志位无定义。

状态寄存器PSR(CPSR、SPSR)的低8位称为控制位(即I、F、T和M[4..0]位)。当发生异常时这些位可以被改变。如果处理器运行在特权模式,这些位也可以由程序修改。使用MSR指令是设置控制位允许或者禁止的方法之一。(但应避免使用MSR指令改变T位。)控制位的具体作用如下:

1.控制位

中断禁止位I(Interrupt)、F(Fast):I=1,禁止IRQ中断;F=1,禁止FIQ中断。

T标志位:该位反映处理器的运行状态。ARM体系结构v5及以上的版本的T系列处理器,T=1时,程序运行于Thumb状态,T=0运行于ARM状态;对于ARM体系结构v5及以上的版本的非T系列处理器,T=1时,执行下一条指令将引起未定义的指令异常;T=0时,表示运行于ARM状态。

2.当前处理器模式标志位

运行模式位M[4:0]:M0、M1、M2、M3、M4是模式位,决定了处理器的运行模式。表2.2给出处理器模式位的有效组合以及与在各种模式下可访问的寄存器。

由表2.2可知,运行模式位的有效组合只有7种,其他的组合结果会导致处理器进入一个不可恢复的状态。

PSR中的[26..8]位为保留位,在改变PSR中的条件码标志位或者控制位时,特别注意不要改变保留位,在程序中也不要使用保留位来存储数据。保留位可能用于ARM其它版本的

扩展。

2.3.5连接寄存器

R14称作子程序连接寄存器(Subroutine Link Register)或连接寄存器LR。在执行BL子程序调用指令时,从R14中得到R15(程序计数器PC)的备份。R14还可以用作通用寄存器,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。

通常,寄存器R14专门用于保存返回断点地址。当执行带连接的分支的时候,把返回地址存储到R14中。同样在程序第一次运行的时候,把退出地址保存在R14中。

寄存器R14常用在如下的情况:在每一种运行模式下,都可用R14保存子程序的返回地址,当用BL或BLX指令调用子程序时,将PC的当前值拷贝给R14,执行完子程序后,又将R14的值拷贝回PC,即可完成子程序的调用返回。以上的描述可用指令完成:

1.执行以下任意一条指令:

MOV PC,LR

BX LR

2.在子程序入口处,用以下指令将R14存入堆栈:

STMFD SP!,{,LR}

与之对应,使用以下指令可以完成子程序返回:

LDMFD SP!,{,PC}

2.3.6堆栈指针寄存器

在ARM指令中,R13习惯上用作堆栈指针SP,寄存器R13典型作用是操作系统堆栈指针,也可作为一个通用寄存器,而其他的寄存器也可作为堆栈指针。但是在Thumb指令集中,某些指令强制要求使用R13作为堆栈指针。

在用户应用程序的初始化部分,一般要求初始化各种模式下的R13,使其指向该运行模式的堆栈空间,这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证异常发生后程序的正常执行。

2.4存储器组织结构

2.4.1 数据类型和存储数据格式

(1)ARM的数据类型

ARM体系结构存储器的存储格式有字(Word)、半字(Half-Word)、字节(Byte)三种数据类型。处理器给出的是一个字节地址,但是表示可以是字、半字或者是字节,ARM用MAS[1:0]描述访问存储器数据宽度。存储格式的定义如下:

字(Word):在ARM体系结构中,字的长度为32位,需要4字节对齐(地址的低两位为00);在16位处理器体系结构中,字的长度一般为16位。

半字(Half-Word):在ARM体系结构中,半字的长度为16位,需要2字节对齐,(地址的最低位为0),与16位处理器体系结构中字的长度一致。

字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。

表2.3 给出数据格式的表示方法,从存储器中完成读一个字节或半字时,存储系统无需知道处理器是访问半字或字。

ARM7TDMI访问存储器时,在总线上广播一个半字或字节的地址。存储器系统通过对A[1:0]进行译码,确定访问内容是字、半字或字节。如,使用STRH保存一个半字或字节时,ARM7TDMI 在总线上广播一个半字或字节的地址。存储器系统对A[1:0]进行译码,确定只写字或者半字。在DRAM系统存储器分为四个体,每个体都有一个独立的列地址选通信号nCAS0、nCAS1、nCAS2和nCAS3。图2.6 给出独立的列地址选通信号产生方法。

图2.6 存储体访问信号的产生

2.存储器格式

第零字节到第三字节存储的是第一个字数据,第四个字节到第七个字节存储的是第二个字数据,依次类推。同样是四个字节表示一个字,ARM存储格式有两种格式的字数据,即大端格式和小端格式。其定义如下:

小端格式:在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如表2.4所示。字节从高到低顺序为:字节3..字节0,一个字的位表示为[31..0]。

字地址

...

2

1

大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如表2.5所示:

字地址

...

2

1

多数芯片厂家配置了大端格式和小端格式两种存储格式,缺省值为小端格式。

当处理器被配置成小端模式时,存储系统的0字节由nCAS0选通,与数据总线的D[7:0] 连接。nCAS1信号选通数据线D[15:8],nCAS2信号选通数据线D[23:16],nCAS3信号选通数据线D[31:24]。如果系统被配置成大端模式时,存储系统的0字节连接到数据总线的D[31:24]。

以STRH指令执行为例,使用STRH保存一个半字或字节时,ARM7TDMI在总线上广播一个半字或字节的地址。存储器系统对A[1:0]进行译码,确定只写字或者半字。在DRAM系统里实现译码的方法是分为四个体,产生独立的列地址选通信号nCAS0、nCAS1、nCAS2、nCAS3。

2.4.2数据总线类型

ARM7TDMI的存储器接口总线包括32位地址总线、32位外部数据总线和控制信号线。

ARM7TDMI同时提供双向数据总线D[31:0]、单向数据输入总线DIN[31:0]和数据输出总线DOUT[31:0]。由于ASIC设计方法禁止使用双向数据总线,单向总线通常应用于嵌入式ASIC 电路内部。

图2.7 存储器访问

1.数据宽度

数据可以被分为字、半字和字节,存储器可能需要多个等待周期。为使ARM7TDMI与半字的存储系统连接方便,输入的数据和指令以字节为单位进行锁存。

BL[3:0]是输入信号,它包含BL[3] 、BL[2] 、BL[1]和BL[0]四个控制信号线,分别控

制锁存数据总线D[31:24] 、 D[23:16] 、D[15:8]和D[7:0]上的当前数据。当BL[3]高电平,表示MCLK的下降沿数据被锁存在D[31:24]上;当BL[2]高电平,表示MCLK的下降沿数据被锁存在D[23:16]上;当BL[1]高电平,表示MCLK的下降沿数据被锁存在D[15:8]上;当BL[0]高电平,表示MCLK的下降沿数据被锁存在D[7:0]上。

在32位的整字存储系统中,BL[3:0]恒为高电平,在半字宽的存储器系统中,BL[3:0]

用于锁存从存储器中读出的数据。

如果系统使用16位的存储器,访问一个字需要占用两个时钟周期。在第一个周期,从存储器上获得D[15:0]的数据,BL[1:0]信号都为高,数据在MCLK的下降沿锁存到处理器中;在第二个周期,从存储器上获得D[31:16]的数据,BL[3:2]为高,数据在MCLK的下降沿锁存到处理器中。由于在半字宽的存储器系统中访问一个字需要两个存储器周期,nWAIT信号用于延长内部处理器时钟,nWAIT信号不影响数据锁存。

多数系统与外部存储器连接需要双向数据总线。ARM7TDMI是一个IP核,可能与内部的存储器构成一个ARM芯片,还可能进行外部的存储器扩展。所以ARM7TDMI还提供单向数据输入总线DIN[31:0]和数据输出总线DOUT[31:0]。

单向总线应用于嵌入式ASIC电路内部,多数系统对外部存储器需要双向数据总线。配置外部数据总线使用BUSEN(data bus configuration)信号。

2.双向数据总线

当BUSEN输入为低电平,选择双向数据总线。DIN[31:0] 和 DOUT[31:0]的缓冲器非法,DIN[31:0]上的数据无效。当BUSEN为低电平时,DOUT[31:0]的数据被强行置为0x00000000,ARM7TDMI具有双向数据总线D[31:0]。在多数情况下,ARM从存储器读数据,总线被配置成输入状态。在写周期,ARM7TDMI输出数据。

图2.8 双周期存储器访问时序

3.单向数据总线

当BUSEN信号为高电平,选用单向数据总线,同时双向总线D[31:0]断开,所有的指令和数据都由单向总线DIN[31:0]输入数据总线和DOUT[31:0]输出数据总线给出。

单向数据的时序与双向总线的状态类似。在MCLK的下降沿,数据被设置和保持。在这种配置下,输出数据由DOUT[31:0]给出。当处理器完成一个存储周期时,总线上的数据发生变化。

为获得地址原始的MCLK低电平定时信号,ALE须用MCLK的下降沿驱动成高电平信号,用MCLK的上升沿驱动成低电平信号。ALE可以简单地将MCLK信号反向产生,由MCLK得到ALE信号有延时,须认真控制。

许多应用系统包含DRAM 和 SRAM/ROM。为适应不同的地址定时要求,在MCLK的低电平相位内,APE可以安全改变。当进行非顺序访问时,为允许对地址进行译码,大多数系统的定时加入一个强制的等待状态。作为地址译码的结果,对被访问的特定存储体APE被驱动为正确值。APE的电平要保持到存储器控制信号指明另一个非顺序访问结束。

图2.9 写总线时序

ARM7TDMI 还有另外的控制信号nENIN,它允许外部系统管理三态总线。在简单的系统中,nENIN 接到低电平。

ARM7TDMI 还有一个TBE的控制信号。 TBE通常在测试时使用,不用时必须接为高电平。当TBE接到低电平时,强制所有输出为高阻状态。这如同DBE和ABE都接到低电平时,数据总线、地址总线以及其它由ABE控制的信号线都变为高阻状态一样。但是,TBE上没有扫描核。TBE独立于扫描数据,它可以在扫描测试期间被驱动为高阻状态。

2.4.4 ARM7TDMI总线访问周期

ARM7TDMI的存储器访问时序中有四种N、S、I 和 C类型的总线周期。即:非顺序周期、顺序周期、内部周期和协处理器寄存器传送周期。总线周期的类型由nMREQ与SEQ 信号确定,如表2.6所示。

表2.6总线周期的类型

各种类型的周期必须至少与 ARM 的时钟周期一样长。

在非顺序存储周期,ARM7TDMI使用与前面周期无关地址传送数据。在顺序存储周期,ARM7TDMI使用与前面周期相同、或一个字、或半个字的地址传送数据。ARM7TDMI只有在非顺序周期和顺序周期才能进行存储器访问。

内部周期,ARM7TDMI完成一个内部功能,不需要进行数据传送,不进行指令预取。

协处理器的寄存器传送周期, ARM7TDMI使用数据总线与一个协处理器进行数据通信,不进行存储系统访问。

1.非顺序存储周期(N周期)

请求从某个特定地址读数据、或向某个特定地址传送数据, 即向某个地址读数据、或写数据,称为非顺序存储周期,也称为N 周期。

非顺序存储周期强调的是ARM内核当前访问的地址与前一个周期使用的地址不关联(非顺序访问),它是 ARM 访问一个非顺序的内存位置的周期。N周期是最小周期长度的两倍(主要因为 DRAM 在内存访问是非顺序时要求更长的访问协议)。设置N周期的目的是为了访问DRAM存储器的需要。在DRAM的访问过程中,需要分别给出行地址和列地址,所以N周期比其它周期长。

在N周期,需要地址转换,以在其他周期存储器管理器中降低功率消耗,避免传输延迟处理器所使用的周期类型。

当进行非顺序访问时,为允许对地址进行译码,大多数系统的定时加入一个强制的等待状态。地址译码正确值驱动被访问的特定存储体APE。

图2.10 非顺序存储周期

2.顺序存储周期

在存储器访问中,大约有75%的访问是顺序访问,为提高系统的效率,ARM设计了顺序访问。如果系统的时钟较快,一个时钟周期不能完成新地址的译码,需要插入一个等待周期。

请求向、或者从某个地址传送数据,即向某个地址写、或读数据,ARM内核当前访问的地址与前一个总线周期使用的地址相关(顺序),如相同、多2字节或多4字节,称为顺序周期,或者S 周期。如图2.12所示,顺序周期是 ARM 访问一个顺序的内存位置的周期。S周期在N 周期之后时,其地址与I周期使用的地址相同,且S周期地址总是比在N周期地址大一个字或者半个字。

为协调整个访问,处理器时钟必须延长。S 周期通常访问时间最短,偶尔也会被伸展成N 周期的长度(即在从一个内存“行”的最后一个字移动到下一行的第一个字的时候)。

总线存储器访问控制信号SEQ有效表明下一个总线访问是顺序访问。顺序访问地址由ARM内核中的地址增值器产生,同时给出SEQ有效信号,地址信号和SEQ在前半时钟周期已经有效,存储器有充分时间进行准备。

随机存储器通常是由动态存储器DRAM构成,DRAM的地址由行地址和列地址组成,DRAM

地址线只能分时接收行地址和列地址,ARM通过总线行选通信号nRAS和列选通信号nCAS对两个部分地址进行锁存。

顺序访问通常在一个行中,行地址与上一个访问的行地址相同,不需要再给出,那么下一个地址只需要给出列地址。因此,顺序访问比非顺序访问要快许多。S 周期通常访问时间最短,偶尔也会被伸展成 N 周期的长度(即在从一个内存“行”的最后一个字移动到下一行的第一个字的时候),在由静态RAM和ROM构成的存储系统中,地址在整个存储周期中都被

锁存。

图2.11 存储器周期

图2.12顺序存储周期

3.内部周期

I 周期称为内部周期,表明ARM正在执行内部功能。ARM 在I 周期不允许访问内存单元,或传送一个字到/从一个协处理器,但可以广播一个字到/从一个协处理器。

4.协处理器周期

C 周期称为协处理器的寄存器传送周期,是ARM 与一个协处理器之间在数据总线(对于无缓存的ARM)或协处理器总线(对于有缓存的ARM)上传送一个字的周期。

2.4.3指令预取与代码自修改

ARM处理器在执行当前指令的同时,允许从存储器预取当前指令后面的若干条指令,存放到处理器的指令流水线中,不同型号的ARM处理器指令流水线深度不同,ARM7TDMI为3条指令,ARM9为5条指令等等。根据处理器的ARM或Thumb状态,ARM7TDMI确定执行32-位或16-位指令预取。

当前指令执行后,如果产生异常,程序跳到异常处理程序执行,指令流水线清空;如果执行跳转指令,指令流水线也清空。

TBIT信号输出处理器的状态。如果TBIT为低电平,处理器处于ARM状态,预取32位指令;TBIT为高电平,处理器处于THUMB状态,预取16位指令。

MAS[1:0]位表明预取数据的宽度。处理器在ARM状态,32位指令由数据线D[31:0]预取。处理器在Thumb状态,16位指令由数据线D[31:16]或 D[15:0]预取。预取16位指令时,ARM7TDMI忽略另外一半没有使用的数据总线。BUSEN信号为低电平,表示使用双向数据总线进行指令预取;BUSEN信号为高,表示使用单向数据总线,数据在DIN[31:0]相应的一半总线上预取。

代码自修改是指程序在执行过程中,ARM处理器允许程序修改自身的指令代码。在进行代码自修改时可能发生一些问题,如预取指令与存储器中修改后的指令不同,会产生执行结果错误;同样,如果数据存储指令修改存储器中的指令,也会产生错误。

2.4.4 AMBA接口(Advanced Microcontroller Bus Architecture)

AMBA接口是开放的总线标准,它独立于处理器技术,能为SoC系统接口设计提供解决方案。目前,AMBA有三种方式AHB(Advanced High-performanced Bus)、APB(Aadvanced Peripheral Bus)和ASB(Advanced System Bus)。AHB是用于连接高性能模块的接口总线,支持单个数据传送和猝发方式的数据传送。APB 是用于连接高性能模块的接口总线,支持猝发方式的数据传送。ASB是用于连接低性能模块的接口总线。

2.5异常(Exceptions)

当正常执行的程序流程发生暂时停止时,称为异常。例如处理一个外部的中断请求,系统执行完当前指令后可以执行异常处理程序,处理异常前,当前的处理器状态必须保留,当异常处理完成后,当前的程序可以继续执行。

处理器允许多个异常同时发生,处理器将按固定的优先级对异常进行处理。ARM体系结构中的异常与中断的概念类似,但不完全等同。

除用户模式外,其余的所有6种模式称为非用户模式,或特权模式(Privileged Modes);七种模式中除去用户模式和系统模式以外的5种模式又称为异常模式(Exception Modes)。异常模式常用于处理中断或异常,以及需要访问受保护的系统资源等。

在处理每种异常时,通过相应硬件向量进行响应。

ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。

用户模式下的应用程序不能直接对处理器模式进行切换,但是应用程序可以产生异常,在异常处理过程中,进行处理器的模式切换。

2.5.1 异常类型及其处理过程

1.快速中断请求FIQ(Fast Interrupt Request)

(1)定义

当处理器的快速中断请求引脚FIQ有效时,即外部通过对处理器上的nFIQ引脚输入低电平申请FIQ。当CPSR中的位F=0时,表示允许产生FIQ异常。

(2)响应条件

若将CPSR的F位置为1,则会禁止FIQ中断,若将CPSR的F位清零,处理器会在指令执行时检查FIQ的输入。注意只有在特权模式下才能改变F位的状态。

框架结构的文献综述

【内容摘要】:框架结构是由梁和柱组成承重体系的结构。主梁、柱和基础构成平面框架,各平 面框架再由联系梁连接起来而形成框架体系。随着建筑业的发展,目前多层和高层建筑逐渐增多。 人们可以根据自己的喜好充分利用其使用空间,满足了使用者在使用上的不同要求。因此,框架结构房屋越来越多的受到人们的青睐。 【关键词】:框架结构、混凝土、应力、抗震、框架梁 一、引言 框架结构是指由梁和柱刚接而成承重体系的结构,即由梁和柱组成框架结构共同承受使用过程中 出现的水平荷载和竖向荷载。钢筋混凝土框架结构是由楼板、梁、柱及基础四种承重构件组成的。 由主梁、柱与基础构成平面框架,各平面框架再由 连续梁连接起来形成空间结构体系。 该结构形式,可形成较大的内部空间,能灵活的布置建筑平面,并具有传力明确、延性、抗震 性和整体性好的优点,因此,无论是在工业建筑还是民用建筑中,框架结构都是一种常用的结构 形式。 二、主题部分 1.框架结构的概念 框架结构是指由梁和柱以钢筋相连接而成,构成承重体系的结构,即由梁和柱组成框架共同抵抗使用 过程中出现的水平荷载和竖向荷载。框架结构的房屋墙体不承重,仅起到围护和分隔作用, 一般用预制的加气混凝土、膨胀珍珠岩、空心砖或多孔砖、浮石、蛭石、陶粒等轻质板材砌筑或 装配而成。 框架结构又称构架式结构。房屋的框架按跨数分有单跨、多跨;按层数分有单层、多层;按立面 构成分为对称、不对称;按所用材料分为钢框架、混凝土框架、胶合木结构框架或钢与钢筋混凝土混合 框架等。其中最常用的是混凝土框架(现浇整体式、装配式、装配整体式,也可根据需要 施加预应力,主要是对梁或板)、钢框架。装配式、装配整体式混凝土框架和钢框架适合大规模 工业化施工,效率较高,工程质量较好。 2.框架结构的优缺点 (1)框架结构的主要优点: 空间分隔灵活,自重轻,有利于抗震,节省材料;具有可以较灵活地配合建筑平面布置的优点, 利于安排需要较大空间的建筑结构;框架结构的梁、柱构件易于标准化、定型化,便于采用装配 整体式结构,以缩短施工工期;采用现浇混凝土框架时,结构的整体性、刚度较好,设计处理好 也能达到较好的抗震效果,而且可以把梁或柱浇注成各种需要的截面形状。 (2)框架结构的缺点为:

企业标准体系标准体系结构图

--WORD格式--可编辑-- 企业标准化工作导则标准体系表 适用的法律、法规、行政规章、规范性文件和方针政策文件的编排结构 适用的法律、法规、行政规章、规范性文件和方针政策文件结构图,如图所示适用的法律、法规、行政规章、规范性文件和方针政策文件一览表,见表 A.1 。 适用的法律、法规、行政规章、规范性文件和方针政策文件 1 标准化 2 经济 3 安全 4 环境 5 质量 6 计量 7 电力建设 8 电力生产 9 信息化10 其他 1.1标准 2.1经济 3.1安全 4.1环境 5.1质量 6.1计量 7.1 电力建设 8.1 电力生产 9.1信息化10.1其他化法律法律法律法律法律法律法律法律法律法律 1.2标准 2.2经济 3.2安全 4.2环境 5.2质量 6.2计量 7.2 电力建设 8.2 电力生产 9.2信息化10.2其他化法规法规法规法规法规法规法规法规法规法规 1.3标准 2.3经济 3.3安全 4.3环境 5.3质量 6.3计量 7.3 电力建设 8.3 电力生产 9.3信息化10.3其他化行政行政规行政规行政规行政规行政规行政规章行政规章行政规章行政规章 规章章章章章章7.4 电力建设8.4 电力生产9.4信息化10.4其他1.4标准 2.4经济 3.4安全 4.4环境 5.4质量 6.4计量规范性文件规范性文件规范性文规范性文化规范化规范规范性规范性规范性规范性7.5 电力建设8.5 电力生产件件 性文件性文件文件文件文件文件方针政策文方针政策文9.5信息化10.5其他1.5标准 2.5经济 3.5安全 4.5环境 5.5质量 6.5计量件件方针政策方针政策化方针方针政方针政方针政方针政方针政文件文件 政策文策文件策文件策文件策文件策文件 件 图 A.1 适用的法律、法规、行政规章、规范性文件和方针政策文件结构图

软件体系结构KWIC实验

《软件体系结构》 实验:软件体系结构风格之应用

一、实验目的 通过KWIC 实例分析,理解和掌握软件体系结构风格设计与实现。 二、实验内容 多种软件风格设计与实现之KWIC 实例: 1.采用主/子程序体系结构风格实现KWIC 关键词索引系统 2.采用面向对象体系架构风格实现KWIC 关键词索引系统 3.采用管道过滤 体系架构风格实现KWIC 关键词索引系统 4.采用事件过程调用体系架构风格实现KWIC 关键词索引系统 三、实验要求与实验环境 熟练掌握基于主/子程序体系结构风格的KWIC 关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC 关键词索引系统设计与实现。选做基于管道过滤体系架构风格的KWIC 关键词索引系统;选做基于事件过程调用体系架构 风格的KWIC 关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等 内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC 机,所需软件Win2003/XP 、UML 工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0 等。 四、实验操作 1、采用主/子程序体系结构风格实现KWIC 关键词索引系统 主程序/子程序风格(Main Program/Subroutine Style)将系统组织成层次结构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调度各子程 序的执行。各子程序又是一个局部的控制器,调度其子程序的执行。设计词汇表:主程序main(), 子程序shift(), sort() 方法,方法的调用,返回构件和连接件类型:

软件体系结构综述

软件体系结构研究综述 班级:软件092 学号:17 姓名:陈世华摘要: 近年来,软件体系结构逐渐成为软件工程领域的研究热点以及大型软件系统与软件产品线开发中的关键技术之一.归纳了软件体系结构技术发展过程及其主要研究方向.在分析了典型的软件体系结构概念之后,给出了软件体系结构的定义.通过总结软件体系结构领域的若干研究活动,提出了软件体系结构研究的两大思路,并从7个方面介绍了软件体系结构研究进展.探讨了软件体系结构研究中的不足之处,并分析其原因.作为总结,给出了软件体系结构领域最有前途的发展趋势. 关键词: 软件体系结构;基于体系结构的软件开发;软件体系结构描述语言;软件体系结构描述方法;软件体系结构演化;软件体系结构发现;软件体系结构分析;软件体系结构验证;特定域软件体系结构(DSSA) Abstract: Software architecture (SA) is emerging as one of the primary research areas in software engineering recently and one of the key technologies to the development of large-scale software-intensive system and software product line system. The history and the major direction of SA are summarized, and the concept of SA is brought up based on analyzing and comparing the several classical definitions about SA. Based on summing up the activities about SA, two categories of study about SA are extracted out, and the advancements of researches on SA are subsequently introduced from seven aspects. Additionally, some disadvantages of study on SA are discussed, and the causes are explained at the same time. Finally, it is concluded with some significantly promising tendency about research on SA. Key words: software architecture; architecture-based development; architecture description language; architectural representation and description; architectural evolution and reuse; architectural discovery; architectural analysis; architectural verification and evaluation; domain-specific software architecture (DSSA)

HSE管理体系标准的基本框架-基本结构(通用版)

( 管理体系 ) 单位:_________________________ 姓名:_________________________ 日期:_________________________ 精品文档 / Word文档 / 文字可改 HSE管理体系标准的基本框架- 基本结构(通用版) Safety management system is the general term for safety management methods that keep pace with the times. In different periods, the same enterprise must have different management systems.

HSE管理体系标准的基本框架-基本结构 (通用版) 为了对HSE管理体系的基本框架有一个初步了解,首先比较一下英荷壳牌石油集团公司(Shell),挪威国家石油集团公司(Statoil)和中国石油天然气集团公司(CNPC)三个公司的HSE管理体系的基本要素,它们分别示于图1、图2和图3。 图1皇家英荷壳牌石油集团公司HSE管理体系结构 图2挪威国家石油集团公司HSE管理体系结构 图3CNPC健康、安全与环境管理体系要素 通过比较我们可以看出在上面三个大型石油集团公司的HSE管理体系的结构框架中,虽有用语和要素数目等方面有差别,但关键要素和基本内容是相同的,并在结构上具有以下几个特点:1)是按“戴明”模式建立的,具有质量管理体系的特点,是一

个持续循环和不断改进的结构,即“计划—实施—检查—持续改进”的结构。 2)由若干个“要素”组成。关键要素主要有:领导和承诺,方针和战略目标,组织机构、资源和文件,风险评估和管理,计划,实施和监测,评审和审核等。 3)各“要素”不是孤立的,而是密切相关的。这些要素中,领导和承诺是核心,方针和战略目标是方向,组织机构、资源和文件作为支持,计划、实施、检查、改进是循环链过程。 4)框架结构根据实际情况作适当调整。 云博创意设计 MzYunBo Creative Design Co., Ltd.

软件体系结构风格研究分析

软件体系结构风格研究分析 软件体系结构风格研究,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。 20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。 软件体系结构风格分析 最初的软件体系结构是Mainframe结构——客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Inter的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。 Garlan和Shaw将通用软件体系结构风格总结为以下几类:

1.数据流风格:批处理序列;管道/过滤器。 2.调用/返回风格:主程序/子程序;面向对象风格;层次结构。 3.独立构件风格:进程通讯;事件系统。 4.虚拟机风格:解释器;基于规则的系统。 5.仓库风格:数据库系统;超文本系统;黑板系统。C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点: (1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消 息交换机制来实现的;(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。 2.数据抽象和面向对象风格。目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。面向对象的系统有许多的优点: (1)因为对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其他的对象。(2)设计者可将一些数据存取操作的

软件体系结构总结

第一章:1、软件体系结构的定义 国内普遍看法: 体系结构=构件+连接件+约束 2、软件体系结构涉及哪几种结构: 1、模块结构(Module) 系统如何被构造为一组代码或数据单元的决策 2、构件和连接件结构(Component-And-Connector,C&C) 系统如何被设计为一组具有运行时行为(构件)和交互(连接件)的元素 3、分配结构(Allocation) 展示如何将来自于模块结构或C&C结构的单元映射到非软件结构(硬件、开发组和文件系统) 3、视图视点模型 视点(View point) ISO/IEC 42010:2007 (IEEE-Std-1471-2000)中规定:视点是一个有关单个视图的规格说明。 视图是基于某一视点对整个系统的一种表达。一个视图可由一个或多个架构模型组成 架构模型 架构意义上的图及其文字描述(如软件架构结构图) 视图模型 一个视图是关于整个系统某一方面的表达,一个视图模型则是指一组用来构建 4、软件体系结构核心原模型 1、构件是具有某种功能的可复用的软件结构单元,表示了系统中主要的计算元素和数据存储。 2.连接件(Connector):表示构件之间的交互并实现构件 之间的连接

特性:1)方向性2)角色3)激发性4)响应特征 第二章 1、软件功能需求、质量属性需求、约束分别对软件架构产生的影响 功能性需求:系统必须实现的功能,以及系统在运行时接收外部激励时所做出的行为或响应。 质量属性需求:这些需求对功能或整个产品的质量描述。 约束:一种零度自由的设计决策,如使用特定的编程语言。 质量原意是指好的程度,与目标吻合的程度,在软件工程领域,目标自然就是需求。 对任何系统而言,能按照功能需求正确执行应是对其最基本的要求。 正确性是指软件按照需求正确执行任务的能力,这无疑是第一重要的软件质量属性。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量。 系统或软件架构的相关视图的集合,这样一组从不同视角表达系统的视图组合在一起构成对系统比较完整的表达

IEC 62443标准体系结构

IEC 62443标准体系结构 2007年,IEC/TC65/ W G 10与ISA 99成立联合工作组,共同制定IEC 62443系列标准。2011年5月,IEC/TC65年会决定整合IEC 62443标准结构,并从14个部分文档调整到12个,以优化工业控制系统信息安全标准体系。同时,为与I EC/TC65的工作范围相对应,IEC 62443系列标准名称由《工业通信网络网络与系统信息安全》改为《工业过程测量、控制和自动化网络与系统信息安全》。 lEC 62443系列标准目前分为通用、信息安全程序、系统技术和部件技术4个部分,共包含12个文档,每个文档描述工业控制系统信息安全的不同方面。 IEC 62443标准结构如下所示。 一、第一部分 第1部分描述了信息安全的通用方面,作为IEC 62443其他部分的基础。 IEC 62443-1-1术语、概念和模型:为其余各部分标准定义了基

本的概念和模型,从而更好地理解工业控制系统的信息安全。 ●IEC 62443-1-2术语和缩略语:包含了该系列标准中用到的全 部术语和缩略语列表。 ●IEC 62443-1-3系统信息安全符合性度量:包含建立定量系统 信息安全符合性度量体系所必要的要求,提供系统目标、系 统设计和最终达到的信息安全保障等级。 二、第二部分 第2部分主要针对用户的信息安全程序。它包括整个信息安全系统的管理、人员和程序设计方面,是用户在建立其信息安全程序时需要考虑的。 IEC 62443-2-1建立工业自动化和控制系统信息安全程序:描述了建立网络信息安全管理系统所要求的元素和工作流程,以及针对如何实现各元素要求的指南。 ●IEC 62443-2-2运行工业自动化和控制系统信息安全程序:描 述了在项目已设计完成并实施后如何运行信息安全程序,包 括量测项目有效性的度量体系的定义和应用。 ●IEC 62443-2-3工业自动化和控制系统环境中的补丁更新管 理 ●IEC 62443-2-4对工业自动化控制系统制造商信息安全政策 与实践的认证。 三、第三部分 第3部分针对系统集成商保护系统所需的技术性信息安全要求。

综合模块化航空电子系统软件体系结构综述

第30卷 第10期航 空 学 报 Vol 130No 110 2009年 10月ACTA A ERONAU TICA ET ASTRONAU TICA SIN ICA Oct. 2009 收稿日期:2008208228;修订日期:2008211218 基金项目:总装备部预研基金(9140A17020307JB3201);空军工程 大学工程学院优秀博士论文创新基金(BC07003) 通讯作者:褚文奎E 2mail :chuwenkui @1261com 文章编号:100026893(2009)1021912206 综合模块化航空电子系统软件体系结构综述 褚文奎,张凤鸣,樊晓光 (空军工程大学工程学院,陕西西安 710038) Overvie w on Soft w are Architecture of Integrated Modular Avionic Systems Chu Wenkui ,Zhang Fengming ,Fan Xiaoguang (Institute of Engineering ,Air Force Engineering University ,Xi ’an 710038,China ) 摘 要:作为降低系统生命周期费用(L CC )、控制软件复杂性、提高软件复用程度的重要手段之一,软件体系结构已成为航空计算领域的一个主要研究方向。阐述了综合模块化航空电子(IMA )的理念,分析了推动 IMA 产生和发展的主要因素。总结了ARINC 653,ASAAC ,GOA 以及F 222通用综合处理机(CIP )上的软件 体系结构研究成果,并讨论了IMA 软件体系结构需要解决的若干问题及其发展趋势。在此基础上,对中国综合航电软件体系结构研究提出了一些见解。 关键词:综合模块化航空电子;软件体系结构;开放式系统;软件工程;军事工程中图分类号:V247;TP31115 文献标识码:A Abstract :As an important means to decrease system life cycle cost (L CC ),control software complexity ,and improve the extent of software reuse ,software architecture has been a mainstream research direction in the aeronautical computer field.This article expatiates the concept of integrated modular avionics (IMA ).Three major factors are analyzed which promote the development of IMA architecture.IMA software architectures presented by ARINC specifications 653,ASAAC ,GOA ,and F 222common integrated processor (CIP )are summarized.Discussion about some problems to be solved and the development trend is made for IMA soft 2ware architecture.Finally ,some views are presented about IMA software architecture research in China.K ey w ords :integrated modular avionics (IMA );software architecture ;open systems ;software engineering ;military engineering 军用航空电子系统(以下简称:航电)是现代 战机的“中枢神经”,承载了战机的绝大部分任务,比如电子战、通信导航识别(CN I )系统等,是决定战机作战效能的重要因素。 F 222的航电综合了硬件资源,重新划分了任务功能,标志着战机的航电结构正式演变为综合式。在此基础上,F 235将航电硬件综合推进到传感器一级,并用统一航电网络取代F 222中的多种数据总线,航电综合化程度进一步提高[1]。 与此同时,航电软件化的概念逐渐凸现。F 222上由软件实现的航电功能高达80%,软件代码达到170万行,但在F 235中,这一数字刷新为800多万行。这表明,软件已经成为航电开发和实现现代化的重要手段[2] 。 航电综合化和软件化引申的一个重要问题是如何合理组织航电上的软件,使之既能够减少生 命周期费用(Life Cycle Co st ,L CC )和系统复杂度,同时又能在既定的约束条件下增强航电软件的复用性和经济可负担性。此即是航电软件体系结构研究的主要内容。 1 综合模块化航空电子 111 综合模块化航空电子理念 综合模块化航空电子(Integrated Modular Avi 2onics ,IMA )(注:该结构在国内一般称为综合航 电)是目前航电结构发展的最高层次,旨在降低飞机LCC 、提高航电功能和性能以及解决软件升级、硬件老化等问题。与联合式航电“各子系统软硬件专用、功能独立”的理念不同,IMA 本质上是一个高度开放的分布式实时计算系统,致力于支持不同关键级别的航电任务程序[3]。其理念概括如下: (1)系统综合化。IMA 最大限度地推进系 统综合,形成硬件核心处理平台、射频传感器共享;高度融合各种传感器信息,结果为多个应用程

软件体系结构课后作业及答案

1、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。 2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的 答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。 3、为什么要研究软件体系结构? 答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。 2.软件体系结构代表了早期的设计决策成果。 3.软件体系结构可以作为一种可变换的模型。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 答:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器); 连接件(connector)是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制(constrain):用于对构件和连接件的语义说明。 5、在软件体系结构的研究和应用中,你认为还有哪些不足之处? 答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)ADL繁多,缺乏同意的ADL的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。 (6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 1、选择一个规模合适的系统,为其建立“4+1”模型。 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。 过程视图(Process View),捕捉设计的并发和同步特征。 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。 开发视图(Development View),描述了在开发环境中软件的静态组织结构。 架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(use cases)或场景(scenarios)来说明,从而形成了第五个视图。

冯诺依曼体系结构发展综述

冯·诺依曼体系结构发展综述 摘要:本文介绍了冯·诺依曼体系结构的诞生和发展,探讨了制约现代计算机进一步发展的主要因素。指出基础硬件IC生产技术的极限和冯·诺依曼体系结构的缺陷将成为计算机发展的两大瓶颈。调查了现在为了突破冯·诺依曼体系瓶颈各国科学家做出的努力,总结了现在正在研究发展中的几种非冯·诺依曼体系结构计算机。 关键词:冯·诺依曼体系结构;计算机;局限;发展 1冯·诺依曼体系的诞生和发展 1.1冯·诺依曼体系结构概述 众所周知,第一台计算机是诞生于1946年的ENIAC。作为第一台计算机的研制者,数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。该体系结构在创立70年后的今天仍然指导着计算机的制造,冯·诺依曼由此被称为“计算机之父”。对冯体系结构的传承与突破也记载着计算机的发展进程。[1] 1.2冯·诺依曼提下的发展动向 作为经久不哀的经典理论,冯·诺依曼系结构的优点是逻辑清晰、结构简单、实现成本低,缺点是存储的指令和数据共享一条总线,信息流的传输成为限制计算机性能的瓶颈,串行执行指令的方式影响了指令的执行速度。基于该理论的特点,对冯·诺依曼体系结构的三原则的演变角度分析计算机的发展动向。[2] 1.2.1二进制逻辑的演变 计算机诞生前,人类对计算机的逻辑并无清晰的概念,计算机采用什么进制一度成为科学家争论的焦点。基于人类的习惯,计算机采用十进制似乎更符合人类规范,能更好地为人类服务。但是,冯·诺依曼以电子设备存在二种稳态为依据提出了以二进制逻辑作为计算机逻辑基础,沿用至今。取决进制使用的关键在于基本稳态数量,人类普遍有十根手指,十种基本稳态造成了人类使用十进制这一现象。计算机的制造元器件如二极管等,普遍具有通断、高电平低电平、充放电等二种稳态,故而计算机内采用二进制。目前,科学家研究的新型计算机如生物计算机、量子计算机等,其制造元件使用生物分子和量子等,具备的基本稳态数量很多,其内部采用的进制也必然不同。在生物、量子等前沿科技的推动下,未来将很有可能制造出采用十进制的计算机。

软件体系结构期末复习题

软件体系结构期末 复习题

《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。 2、“4+1”视图模型从5个不同的视角包括: 逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 3、构件:是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。 连接件:表示构件之间的交互。 配置:表示构件和连接件的拓扑逻辑和约束。 端口:表示构件和外部环境的交互点。 角色:定义了该连接交互的参与者。 4、画出“4+1”视图模型图,分析各部分的原理和功能。 5、软件体系结构风格: 是描述某一特定应用领域中系统组织方式的惯用模式。

6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、吞吐量、一致性和兼容性等属性。软件体系结构由组件、连接件和属性组成。 7、分层系统的优点有: 1)支持基于抽象程度递增的系统设计,使设计者能够把一个复杂系统按递增的步骤进行分解; 2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3)支持重用。只要提供的服务接口定义不变,同一层的不同实现能够交换使用。这样,就能够定义一组标准的接口,而允许各种不同的实现方法。 8、分层系统的缺点有: 1)并不是每个系统都能够很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2)很难找到一个合适的、正确的层次抽象方法。 9、 B/S体系结构的优点有什么? 答:1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。

系统体系结构风格

实验报告 课程名称软件体系结构 实验项目名称系统体系结构风格实现班级与班级代码09软件工程1班 实验室名称(或课室) 3-402 专业软件工程 任课教师贺卫国 学号:09251104139 姓名:王颖异 实验日期:2012年10 月20日 广东商学院教务处制

姓名王颖异实验报告成绩 评语: 指导教师(签名) 年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

系统体系结构风格实现 一、实验目的 1、理解软件体系结构基本概念。 2、进一步了解主要的软件体系结构风格,如主程序与子过程风格、 解释器风格、C/S 风格、B/S 风格、分层风格、面向对象风格、Web服务软件体系结构等等。 3、通过实际案例来实现某种软件体系结构风格,培养按照体系结 构的思维方式分析软件的能力。 二、实验环境 一台带有浏览器,能够访问因特网的计算机;字处理软件;XML 处理器等。 三、实验内容 1、自选模块,说明其体系结构 根据上次实验所选的模块,简要说明该模块或者整个系统的体系结构,以及自身需要实现或者改进的功能。

该系统实现了用户网上搜索信息,订票,以及网上支付功能,到时用户只需携带有效证件去机场办理登机牌即可,但网上支付功能有效时间为一小时,超过一小时还未用网银及时支付的话订单将会自动取消。 2、实现 对上述需要实现或者需要改进的功能的构件或者核心源代码进行分析说明;如果不需要编码,则对实现措施和最后结果进行说明。 3、构件库

(1)搜索当前流行的构件库,并介绍这些构件库目前的使用现状和未来发展目标。 REBOOT(Reuse Based on Object-Oriented Technology,基于面向对象技术的复用)构件模型是基于已有构件的一种刻面分类和检索模型。REBOOT是欧盟信息技术计划ESPRIT中的一个项目,目标是研究、开发以及推广复用驱动和面向对象的软件技术,是90年代初期国际上比较出名的构件库之一,由一个存储构件的复用库以及一组支持构件生产、考察、分类、选择、评估和适配的复用工具组成。JBCLMS是国家“九五”重点科技攻关项目——“软件工程环境(青鸟CASE)工业化生产技术及系统(JB/SEIMS)的研究开发”中的核心组成部分之一。JBCLMS是一个基于Internet的软件资产库管理系统,具体特点有下:可以存储和管理广义的构件,采用数据库管理系统存储构件描述信息,文件系统存储构件实体。提供关键词、刻面、规约等多种检索方式。采用“用户—人员组—构件子库—构件”四级模式来实现用户在构件库中的职责和权限。提供基于数据仓库技术的构件反馈机制,为用户选取构件提供辅助分析。 Agora是CMU SEI开发的一个构件搜索引擎。Agora通过对Web页面的搜索来获取构件URL等相关信息,采用和普通搜索引擎相同的方式管理构件信息。除了利用Spider技术在Web页面上搜索构件外,Agora 也允许构件开发者将他们开发的构件直接在Agora服务器上注册。 4、进一步说明实验优缺点 (a)阐述实验的优点,列出实验中你认为做得不错的地方。

计算机体系结构综述

体系结构高性能的追求 计算机体系结构是选择并相互连接硬件组件的一门科学和艺术,在人们不断探索研究的过程中,一直在追求计算机的功能、性能、功率以及花费的高度协调,以期达到各方面的最佳状态,在花费、能量、可用性的抑制下,实现计算机的多功能、高性能、低功率、少花费的一个新时代。 根据当前体系结构的发展现状,要实现以上全部要求的一台计算机,还存在着诸多的限制条件,包括逻辑上的以及硬件上的。本篇综述针对2008年的ISCA会议上的几篇论文,经过仔细研读,深刻剖析,这些文章将现在计算机体系结构发展遇到的各种瓶颈列出,并给出了相关的意见及可行的解决方案。 计算机的体系结构范围很广,定义也很宽泛,它包含了指令集的设计、组织、硬件与软件的边界问题等等,同时涉及了应用程序、技术、并行性、编程语言、接口、编译、操作系统等很多方面。作为各项技术发展的中心,体系结构一直在不断地朝前发展。 纵观计算机体系结构一路发展的历史,从60年代中期以前,最早的体系结构发展的早期时代,计算机系统的硬件发展很快,通用硬件已经很普遍,但是软件的发展却很滞后,刚刚起步,还没有通用软件的概念。从60年代中期到70年代中期,体系结构有了很大进步。多道程序、多用户系统引入了人机交互的新概念,开创了计算机应用的新境界,使硬件和软件的配合上了一个新的层次,但是此时的软件由于个体化特性很难维护,出现了“软件危机”。从20世纪70年代中期开始,分布式系统开始出现并流行,极大地增加了系统的复杂性,出现了微处理器并获得了广泛应用。如今计算机的体系结构发展已经进入了第四代,硬件和软件得到了极大的综合利用,迅速地从集中的主机环境转变成分布的客户机/服务器(或浏览器/服务器)环境,新的技术不断涌现出来。尽管如此,计算机在总体上、功能上需要解决的问题仍然存在。随着RISC技术、Cache等创新技术的发展,不仅仅在专业领域,越来越多的PC机也在向此靠拢。在每一次进步与创新的同时使组件的成本降到最低成为最需要考虑的问题。 此次会议上发表的几篇论文,分别从以下几个方面对计算机体系结构的发展与改进进行了探究。 一、新一代服务器的发展 在《Understanding and Designing New Server Architectures for Emerging Warehouse-Computing Environments》一文中,提出了一个改善服务器性能的方案。这篇论文旨在试图理解和为新兴的“仓库计算”环境设计下一代服务器。文中有两个主要的

软件体系结构风格的研究

软件体系结构风格的研究 [摘要] 本文对几种经典的软件体系结构风格进行了具体的阐述,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。 [关键词] 软件体系结构软件体系结构风格三层C/S软件体系结构 20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。 一、软件体系结构风格分析 最初的软件体系结构是Mainframe结构——客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Internet的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。 Garlan和Shaw将通用软件体系结构风格总结为以下几类: 下面将介绍几种主要和经典的体系结构风格和它们的优缺点。 C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点: 2.数据抽象和面向对象风格。

目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。 面向对象的系统有许多的优点: 3.基于事件的隐式调用风格。基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用。隐式调用系统的主要优点有:(1)为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。(2)为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其他构件的接口。隐式调用系统的主要缺点有:①构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其他构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。②数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。③既然过程的语义必须依赖于被触发事件的上下文约束,关于

ARM体系结构综述

第一编ARM编程模式 1. Thumb指令集是ARM指令集的重编码的子集,相较于ARM指令集,Thumb指令集有两个不足: 1)Thumb的代码执行相同的任务需要相较ARM代码更多的指令数,故不适合一些要求最大化执行时间效率的程序; 2)Thumb中不包含一些异常处理需要使用的代码,故不适用编写一些高层次的异常处理代码 2. ARM是一个RISC(精简指令集计算机),包含以下一些特性: 1) 一个大型统一的寄存器表 2) load/store结构,即所有数据操作都仅基于寄存器,而非直接基于内存; 3) 简单寻址模式,即所有load/store寻址仅依靠寄存器内容和指令域决定; 4) 统一和定长的指令格式,简化了指令的解码。 3. ARM有七种处理器模式,分别为:User(用户模式,即正常指令执行模式),FIQ(快速中断模式),IRQ(通用中断处理模式),Supervisor(超级用户模式,即操作系统保护模式),Abort(中止模式,实现内存或虚拟内存的保护),Undefined(未定义模式),System(系统模式,执行特权的系统进程)。模式之间的切换可以通过软件控制或外部的中断或异常引起。 4. 正常的应用程序均在User(用户模式)下运行,此时无法获取一些受限的系统资源,也不可以任意切换处理器模式,除非有异常发生。 5. 除了User外的其他六个均为特权模式,他们可以获取各类系统资源,并能实现相互切换。其中除System外的五个为异常模式。 6. ARM总计拥有37个寄存器,其中31个通用的32-bit寄存器,还有6个32-bit状态寄存器。而在任意时刻,仅有其中的16个通用寄存器是可见的。 7. ARM体系结构中可见的寄存器为R0-R15,可分成三类:未堆积(unbanked)寄存器R0-R7,堆积(banked)寄存器R8-R14和程序计数器R15。 8. R0-R7为所有模式共享,所有模式共用这8个寄存器。 9. R8-R14为堆积寄存器,其又分成两类。一类是R8-R12,分为两组,一组是FIQ模式专用,另一组是其他六种模式共用。另一类是R13和R14,分为六组,分别是User和System共用一组,其他五种异常处理器模式各保有一组R13和R14。R13和R14一般都用来做特殊的用途,其中R13为堆栈指针(SP);R14为链接寄存器,有两种特殊的功能,一种是发生子程序调用时保存子程序返回地址,另一种是异常发生时保存异常返回地址。 10. PC(R15)保存的是程序计数器,为当前指令的地址+8字节。同时,由于ARM指令是字对齐的,所以PC的最低两个位bit[0:1]一般为0。一个例外是当STR或者STM指令保存

软件体系结构与设计模式__策略模式

软件体系结构与设计模式 ---------策略模式策略模式(别名:政策) 策略模式是一个很简单的模式,也是一个很常用的模式。它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式应用的原则就是: 找到系统中变化的部分,将变化的部分同其它稳定的部分隔开。 面向接口编程,而不要面向实现编程 优先考虑使用对象组合,而不是类继承。 一、概述 策略模式是处理算法的不同变体的一种成熟模式,策略模式通过接口或抽象类封装算法的标识,即在接口中定义一个抽象方法,实现该接口的类将实现接口中的抽象方法。 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。 策略模式让算法独立于使用它的客户而独立变化。减少了各种算法类与使用算法类之间的耦合。 在策略模式中,封装算法标识的接口称作策略,实现该接口的类称作具体策略。 二、策略模式的结构与使用 (一)策略模式的结构中包括三种角色: 1、抽象策略角色(Strategy) 2、具体策略角色(Concrete Strategy) 3、环境角色(Context) 下图2-1为策略模式的UML类图表示

图2-1策略模式的UML类图 (二)策略模式的结构的描述与使用 下面的例子利用策略模式在排序对象中封装了不同的排序算法,这样以便允许客户端动态的替换排序策略(包括Quick sort、Shell sort和Merge sort)。 1.抽象策略(Strategy) : // "Strategy" abstract class Sort Strategy { // Methods abstract public void Sort( ArrayList list ); } 2.具体策略(Concrete Strategy): (1) // "ConcreteStrategy" class QuickSort : SortStrategy { // Methods public override void Sort(ArrayList list ) { list.Sort(); Console.WriteLine("QuickSorted list "); } } (2) // "ConcreteStrategy" class ShellSort : SortStrategy { // Methods public override void Sort(ArrayList list ) { list.ShellSort(); Console.WriteLine("ShellSorted list "); } }

相关主题