更新时间:2024-07-01 21:35
ARM7系列处理器是英国ARM公司设计的主流嵌入式处理器 ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构; ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。 ARM7没有MMU。
ARM7系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。
ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了: 高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。 三级流水线:ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指、译码、执行。正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。
内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。
指令周期的改进:
loads指令和stores指令
指令周期数的改进最明显的是loads指令和stores指令。从ARM7到ARM9这两条指令的执行时间减少了30%。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结构不同所造成的。
(1)ARM9有独立的指令和数据存储器接口,允许处理器同时进行取指和读写数据。这叫作改进型哈佛结构。而ARM7只有数据存储器接口,它同时用来取指令和数据访问。
(2)5级流水线引入了独立的存储器和写回流水线,分别用来访问存储器和将结果写回寄存器。
以上两点实现了一个周期完成loads指令和stores指令。
互锁(interlocks)技术
当指令需要的数据因为以前的指令没有执行完而没有准备好就会产生管道自锁互锁。当管道互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。虽然这种技术会增加代码执行时间,但是为初期的设计者提供了巨大的方便。编译器以及汇编程序员可以通过重新设计代码的顺序或者其他方法来减少管道互锁的数量。
ARM7TDMI内核CPU在响应中断后会切换到异常模式下:FIQ中断是进入快中断模式,IRQ中断时进入中断模式(ARM7TDMI内核有7种模式:用户模式,系统模式,快中断模式,中断模式,管理模式,中止模式和未定义模式,其中后5种被称为异常模式。
中断处理过程,ARM7进入及退出快中断模式和中断模式的过程(中断响应过程)如下:
① 将下一条指令的地址复制到LR(R14)中(在ARM状态下)。
② 将CPSR复制到适当的SPSR(各种模式处CPSR是共用一个的,而SPSR在不同异常模式下是不同的)。
③ 根据异常将CPSR模式强制设为快中断模式或中断模式。
④ 强制PC从相关的异常向量处取指。(到此完成进入中断服务程序的动作)
⑤ 执行异常服务程序。
⑥ 将LR中的值减去偏移量后移入PC。ARM状态快中断模式和中断模式下这个偏移量为4,因为LR保存的是由于FIQ或IRQ占先面没有被执行的指令的地址。
⑦ 将SPSR的值复制回CPSR中。
⑧ 清零在入口置位的中断禁止标志。
一旦产生IRQ中断,微控制器会切换到IRQ模式,并且跳转到向量表0x0000018地址处执行程序。而一旦产生FIQ中断,微控制器会切换到FIQ模式,并且跳转到向量表0x000001C地址处执行程序。所示,在0x00000080处和0x0000001C处必须各有一条跳转指令,分别跳转的IRQ和FIQ中断处理的代码处。在0x00000000处的一般向量表称为异常向量表。
ARM7的中断向量表的前8个中断向量中,最后两个是IRQ和FIQ。可以从这两个中断向量跳转到相应的中断服务函数中去。在ARM7中,IRQ中断用的比较多。当产生一个IRQ中断之后,首先要保存当前工作状态的环境,然后将中断服务函数地址赋给PC,跳转到中断服务函数。执行完中断服务函数之后,再恢复中断前的工作状态环境,返回正常的工作模式。
ARM提供一系列内核、体系扩展、微处理器和系统芯片方案。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。典型的产品如下。
Thumb 是ARM体系结构的T变种,是一种新的指令体系,它是ARM技术的一大特色。 它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度 。 ARM7TDMI是第一个支持Thumb的核,支持Thumb的核仅仅是ARM体系结构的一种发展的扩展,所以编译器既可以编译Thumb代码,又可以编译ARM代码 支持Thumb的ARM体系结构的处理器状态可以方便的切换到Thumb状态,并在该状态下运行,在该状态下指令集是16位的。 与ARM指令集相比.Thumb指令集具有以下局限 完成相同的操作,Thumb指令通常需要更多的指令,因此在对系统运行时间要求苛刻的应用场合ARM指令集更为适合; Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是需使用ARM指令,这种限制决定了Thumb指令需要和ARM指令配合使用。
由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。
---ARM7:小型、快速、低能耗、集成式RISC内核,用于移动通信。
--ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。该产品的典型用途是数字蜂窝电话和硬盘驱动器。
ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存管理、写缓冲和JTAG。广泛应用于手持式计算、数据通信和消费类多媒体。
--ARM940T、920T系列:低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。应用于高级引擎管理、保安系统、顶置盒(STB)、便携计算机和高档打印机。
--StrongARM:性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,后来授权给Intel
SA110处理器、SA1100PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。
--ARM7500和ARM7500FE:高度集成的单芯片RISC计算机,基于一个缓存式ARM7 32位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;ARM7500FE则增加了一个浮点运算单元以及对EDODRAM的支持。特别适合电视顶置盒和网络计算机(NC)。