<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 科伟奇电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=431 </link><title>ARM系列处理器体系结构简介</title><author>会飞的鱼</author><pubDate>2009/12/15 11:18:45</pubDate><description><![CDATA[<div style="line-height: 20pt">1、常用的嵌入式处理器有ARM、MIPS、PowerPC、X86、68K/Cold fire等，MIPS是Microprocessor without Inter-locked Pipeline Stages的缩写，是由MIPS技术公司开发的一种处理器内核标准。目前有32位和64位MIPS芯片。PowerPC是早期Motorola公司和IBM公司联合为Apple公司的MAC机开发的CPU芯片，商标权同时属于IBM和Motorola两家公司，并一度成为他们的主导产品。X86系列处理器起源于Intel架构的8080，然后发展出286、386、486直到现在的奔腾处理器乃至双核处理器等。从嵌入式市场来看，486DX也应该是和ARM、68K、MIPS和SuperH齐名的5大嵌入式处理器之一。Motorola 68K是出现比较早的一款嵌入式处理器，采用的是CISC结构。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ARM</span>是Advanced RISC Machines的缩写，顾名思义，ARM处理器自然也是一种典型的精简指令集处理器。</div>
<div style="line-height: 20pt">2、ARM处理器当前只要有6个系列产品：ARM7、ARM9、ARM9E、ARM10E、SecurCore及最新的ARM11系列。进一步的产品则来自于ARM公司的合作伙伴，如Intel公司的StrongARM产品和XScale微体系结构等，不过Intel公司已经于2006年将该架构出售给Marvell Technology Group Ltd了。ARM公司还把ARM IP Core提供给其它芯片设计公司用于设计ARM+DSP、ARM+FPGA等SOC结构的芯片</div>
<div style="line-height: 20pt">3、在ARM处理器内核中有多个功能模块可供生产厂商根据不同用户的不同要求来配置生产。这些模块分别用T、D、M、I、E、J、S等来表示，这些模块一般从处理器的内核版本上可以区分出来。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; T</span>：表示支持Thumb指令，说明该内核可从16位Thumb指令集扩充到32位ARM指令集。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D</span>：表示支持Debug，说明该内核中放置了用于调试的结构，通常它为一个边界扫描链JTAG，可使CPU进入调试模式，从而方便地进行断点设置、单步调试。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M</span>：表示Multiplier，说明处理器内部带有8位乘法器。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I</span>：表示Embedded ICE(内置仿真器) Logic，用于实现断点观测及变量观测的逻辑电路部分，其中的TAP控制器可接入到边界扫描链。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E</span>：表示DSP Enhancement，即增加了前导零处理和饱和运算等一些常用的DSP运算指令，极大地改善音视频处理程序的性能。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; J</span>：表示Jazelle DXB(Direct Bytecode eXecution)，这是ARM公司推出的Java加速解决方案。Jazelle不是一个简单的加速硬件，它是融入于处理器流水线之中的一项专门针对Java指令执行的硬件功能，使得CPU可以直接接收一部分Java指令，并加以译码执行。</div>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S</span>：表示可综合的软核softcore。</div>
<div style="line-height: 20pt">4、ARM7处理器：ARM7处理器采用了ARMV4T(冯-诺依曼)体系结构，这种体系结构将程序指令存储器和数据存储器合并在一起。主要特点就是程序和数据共用一个存储空间，程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置，采用单一的地址和数据总线，程序指令和数据的宽度相同。这样，处理器在执行指令时，必须先从存储器中取出指令进行译码，再取操作数执行运算。总体来说，ARM7体系结构具有三级流水线、空间统一的指令与数据Cache、平均功耗为0.6mW/MHz、时钟速度为66MHz、每条指令平均执行1.9个时钟周期等特性。其中的ARM710、ARM720和AEM740为内带Cache的ARM核。目前主流的ARM内核是ARM7TDMI、ARM7TDMI-S、ARM7EJ-S、ARM720T。通常来说，前两三年大部分手机基带部分的应用处理器基本上都以ARM7为主。还有很多的通信模块，如CDMA模块、GPRS模块和GPS模块中都含有ARM7处理器。</div>
<div style="line-height: 20pt">5、ARM9、ARM9E处理器：ARM9处理器采用ARMV4T(哈佛)体系结构。这种体系结构是一种将程序指令存储器和数据存储器分开的存储器结构，是一种并行体系结构。其主要特点是程序和数据存储在不同的存储空间中，即程序存储器和数据存储器。它们是两个相互独立的存储器，每个存储器独立编址、独立访问。与两个存储器相对应的是系统的4套总线，程序的数据总线和地址总线，数据的数据总线和地址总线。这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字和操作数，从而提高了执行速度，使数据的吞吐量提高了已一倍。又由于程序和数据存储器在两个分开的物理空间中，因而取指和执行能完全重叠。ARM采用五级流水线及分离的Cache结构，平均功耗为0.7mW/MHz。时钟速度为120~200MHz，每条指令平均执行1.5个时钟周期。其中，ARM920、ARM940和ARM9E处理器均为含有Cache的CPU内核，性能为132MIPS(120MHz时钟，3.3V供电)或200MIPS(200MHz时钟)。常用于无线设备、仪器仪表、联网设备、机顶盒设备、高端打印机以及数码相机等应用中。ARM9E内核在ARM内核的基础上增加了紧密耦合存储器的TCM及DSP部分。目前主流的ARM9内核是ARM920T、ARM922T、ARM940。主流的ARM9E内核有ARM926EJ-S、ARM946SJ-S、ARM966EJ-S等。目前市场上常见的PDA，比如说PocketPC中一般都是用ARM9处理器。</div>
<div style="line-height: 20pt">10、ARM10E处理器：ARM10E处理器采用ARMVST体系结构，可以分为6级流水线处理，采用指令与数据分离的Cache结构，平均功耗1000mW，时钟速度为300MHz，每条指令平均执行1.2个时钟周期。ARM10TDMI与所有的ARM核在二进制级代码中兼容，内带高速32*16MAC，预留DSP协处理器接口。其中的VFP10(向量浮点单元)为七级流水线结构。其中的ARM1020T处理器是由ARM10TDMI、32KB指令、数据Caches及MCU部分构成的。其系统时钟高达300MHz，指令Cache和数据Cache分别为32KB，数据宽度为64位，能够支持多种商用操作系统，适用于下一代高性能手持式因特网设备及数字式消费类应用。主流的ARM10内核是ARM1020E、ARM1022E，ARM1026EJ-S等。</div>
<div style="line-height: 20pt">11、SecurCore处理器：SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案，该系列处理器具有体积小、功耗低、代码密度大和性能高等特点。另外最为特别的就是该系列处理器提供了安全解决方案的支持。采用软内核技术，以提供最大限度的灵活性，以及防止外部对其进行扫描探测，提供面向智能卡的和低成本的存储保护单元MPU，可以灵活地集成用户自己的安全特性和其他的协处理器，目前含有SC100、SC110、SC200、SC210四种产品。</div>
<div style="line-height: 20pt">12、StrongARM处理器：StrongARM处理器采用ARMV4T的五级流水线体系结构。目前有SA110、SA1100、SA1110等3个版本。另外，Intel公司的基于ARMV5TE体系结构的XScale PXA27x系列处理器，与StrongARM相比，增加了I/D Cache，并且介入了部分DSP功能，更适合于移动多媒体应用。目前市场上的大部分智能手机的核心处理器就是XScale系列处理器。</div>
<div style="line-height: 20pt">13、ARM11处理器：ARM11处理器系列可以在使用130nm代工厂技术、小至2.2芯片面积和低至0.2mW/MHz的前提下达到高达500MHz的性能表现。ARM11采用的是8级流水线结构。ARM11处理器系列以众多消费产品市场为目标，推出了许多新的技术，包括针对媒体处理的SIMD，用以提高安全性能的TrustZone技术，智能能源管理(IEM)，以及需要非常高的、可升级的超过2600Dhrystone 2.1 MIPS性能的系统多处理技术。主要的ARM11处理器有ARM136JF-S、ARM1156T2F-S、ARM1176JZF-S、ARM11 MCORE等多种。</div>
<div style="line-height: 20pt">1.4 ARM处理器的工作模式</div>
<div style="line-height: 20pt">1、BSP：Board Support Package-板级支持包</div>
<div style="line-height: 20pt">2、正在执行Thumb指令集的处理器是工作在Thumb状态下的。同样，正在执行ARM指令集的处理器是工作在ARM状态下的。ARM状态下的处理器不能执行Thumb指令，在Thumb状态下的处理器也不能执行ARM指令。必须确保处理器不接受对当前来说为错误指令集的指令。每个指令集都包括切换处理器状态的指令。ARM处理器总是在ARM状态下开始执行代码。ARM处理器支持7种处理器模式，取决于体系结构版本。</div>
<div style="line-height: 20pt">3、ARM处理器共有7种运行模式，如下表所示：</div>
<table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="text-align: center; line-height: 20pt" align="center">处理器模式</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="text-align: center; line-height: 20pt" align="center">描述</div>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">用户模式(User, usr)</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">正常程序执行的模式</div>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">快速中断模式(FIQ, fiq)</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">用于高速数据传输和通道处理</div>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">外部中断模式(IRQ, irq)</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">用于通常的中断使用</div>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">特权模式(Supervisor, sve)</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">供操作系统使用的一种保护模式</div>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">数据访问中止模式(Abort, abt)</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">用于虚拟存储以及存储保护</div>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">未定义指令中止模式(Undefined, und)</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">用于支持通过软件仿真硬件的协处理器</div>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">系统模式(System, sys)</div>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #f0f0f0; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 213.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: windowtext 1pt solid; padding-top: 0cm" valign="top" width="284">
            <div style="line-height: 20pt">用于运行特权级的操作系统任务</div>
            </td>
        </tr>
    </tbody>
</table>
<div style="line-height: 20pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>除了用户模式外，其它6种处理器模式可以称为特权模式，在这些模式下，程序可以访问所有的系统资源，也可以任意的进行处理器模式的切换。其中除了系统模式外的其它5种特权模式又称为异常模式。处理器模式可以通过软件来切换，在ARM Linux操作系统中，只有运行在内核态的程序才有可能更改处理器模式，用户态的程序是不能访问受操作系统保护的系统资源的，更不能直接进行处理器模式的切换。当需要处理器模式切换的时候，用户态的程序可以中断，内核态的中断处理程序开始响应并作出处理。</div>]]></description></item></channel></rss>