第7章e300处理器内核概述mpc83xx中文手册.docx

上传人:b****4 文档编号:24316225 上传时间:2023-05-26 格式:DOCX 页数:59 大小:229.35KB
下载 相关 举报
第7章e300处理器内核概述mpc83xx中文手册.docx_第1页
第1页 / 共59页
第7章e300处理器内核概述mpc83xx中文手册.docx_第2页
第2页 / 共59页
第7章e300处理器内核概述mpc83xx中文手册.docx_第3页
第3页 / 共59页
第7章e300处理器内核概述mpc83xx中文手册.docx_第4页
第4页 / 共59页
第7章e300处理器内核概述mpc83xx中文手册.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

第7章e300处理器内核概述mpc83xx中文手册.docx

《第7章e300处理器内核概述mpc83xx中文手册.docx》由会员分享,可在线阅读,更多相关《第7章e300处理器内核概述mpc83xx中文手册.docx(59页珍藏版)》请在冰豆网上搜索。

第7章e300处理器内核概述mpc83xx中文手册.docx

第7章e300处理器内核概述mpc83xx中文手册

第七章e300处理器核概述

本章概述由原始MPC603ePowerPC微处理器设计派生出的嵌入式e300处理器核的特性。

e300核是PowerPC微处理器系列的一个实现。

在整个文档中,交替使用术语‘e300核’、‘核’和‘处理器’。

在描述实现特定(implementation-specific)的特性时使用术语e300c1,而在描述属于该处理器系列的特性时使用术语e300。

MPC8349E使用e300c1核。

7.1概述

本节介绍e300核的详细信息,提供显示其主要功能单元的结构图(见e300PowerPC核参考手册的字节序模式和字节顺序一章),并简要介绍这些单元是如何交互的。

说明e300核与源自MPC603e处理器的先前PowerPC实现的所有不同之处。

更多信息请参见e300PowerPC核参考手册。

e300核是该精简指令集计算(RISC)微处理器系列中的一个低功耗实现。

该核实现了PowerPC系统结构的32位部分,该部分定义了32位有效地址,8、16和32位整型数据类型,以及32和64位浮点数据类型。

e300核是一个超标量处理器,它每个时钟可以发出和撤回多达3条指令。

指令可以不按程序顺序执行,以提高性能,但该核使指令的执行看起来象顺序执行一样。

e300c1核集成了5个执行单元:

整数单元(IUintegerunit)、浮点数单元(FPUfloating-pointunit)、转移处理单元(BPUbranchprocessingunit)、取/存单元(LSUload/storeunit)和系统寄存器单元(SRUsystemregisterunit)。

并行执行5条指令的能力和具有快速执行时间的简单指令的使用使基于e300核的系统具有很高的效率和吞吐率。

绝大多数整型指令在一个时钟周期内执行完成。

在e300c1核上,FPU是流水处理的,这样每个时钟周期可以发出并完成一条单精度乘法-加法指令。

e300c1核为所有单精度和双精度浮点运算中的绝大多数值的表示和所有的舍入模式提供硬件支持。

图7-1表示了e300c1核的结构图。

图7-1e300核的结构图

e300c1核为指令和数据提供独立的片上32K字节、8路、组相联(set-associative)、物理寻址的高速缓存,以及片上指令和数据存贮器管理单元(MMUmemorymanagementunit)。

MMU包括具有64个表项、双路、组相联(set-associative)、数据和指令变换后援缓存(DTLB和ITLB),为按需分页(demand-paged)、虚拟存贮器、地址变换和变长块变换提供支持。

e300核还支持块地址变换(BATblockaddresstranslation),它使用两个独立的指令和数据块地址变换(IBAT和DBAT)阵列,每个阵列包括8对BAT,比G2核中的每种BAT类型的4对有所增加。

这种增加在保护访问和为存贮器访问和I/O访问提供基于段、块和页的变换等方面提供了更大的灵活性。

在块变换期间,将有效地址与BAT阵列中的所有8个表项同时进行比较。

根据PowerPC系统结构,如果有效地址在TLB和BAT阵列中都命中,BAT变换取得优先。

作为统一系统总线(CSB)的一部分,e300核有一条可选的32位或64位的数据总线和一条32位的地址总线。

核接口协议允许多个主设备通过一个中央外部仲裁器竞争系统资源。

在正常操作期间,e300核提供一个三态(已修改、互斥和无效)一致性协议(coherencyprotocol),该协议是四态(已修改/互斥/共享/无效)MESI协议的一个子集。

但是,e300数据cache包含一个可编程的MESI扩展,它支持共享cache一致性(cachecoherency)状态(与其他PowerPC处理器相似)。

两种协议同时在包含四态高速缓存的系统中一致的运行。

尽管e300核支持MESI,但在MPC8349E上并未实现。

e300核还支持存贮器访问的单拍和突发数据传输,支持内存映射的I/O操作。

真小端格式模式是e300核的另一个增强功能。

与PowerPC的高小端格式模式(只处理地址位)不同(e300上不再支持此模式),真小端格式模式实际处理来自存贮器的真小端格式模式指令和数据。

紧急中断是e300核中的一个新增中断,它具有比系统管理中断更高的优先级。

e300还改进了调试特性。

更多的详细信息参见7.3.8“调试特性”。

新增的SPRG中断处理寄存器为操作系统提供了更好的灵活性。

7.1.1特性

本节介绍e300核的主要特性:

●高性能、超标量微处理器核

⏹每个时钟发出和撤回多达3条指令(两条指令加上一条转移指令)

⏹每个时钟多达5条指令在执行

⏹绝大多数指令单周期执行完成

⏹流水化浮点单元(FPU),支持所有的单精度和双精度运算

●5个独立的执行单元和2个寄存器阵列

⏹以静态转移预测为特色的转移处理单元(BPU)

⏹e300c1中的一个32位整型单元

⏹完全符合IEEE754的FPU,用于单双精度运算

⏹取/存单元,用于数据高速缓存与通用寄存器(GPR)和浮点寄存器之间数据传输的

⏹执行状态寄存器(CR)、特殊目的寄存器(SPR)和整数加/比较指令的系统寄存器单元(SRU)。

加/比较指令也可以在IU中执行。

⏹32个32位GPR,用于整型操作数

⏹32个64位FPR,用于单双精度操作数

●极高的指令和数据吞吐率

⏹零周期转移处理能力(转移合并)

⏹对未解决的条件转移的可编程静态转移预测

⏹取指单元每个周期可以从指令高速缓存读取两条指令

⏹6个表项的指令队列(IQ)提供前瞻能力

⏹具有馈送转发功能的独立流水线减少了硬件中的数据相关

⏹带优先级的32K字节的数据cache和32K字节的指令cache——8路、组相联、物理寻址、PLRU替换算法。

⏹按页或块的可编程cache写回和写直达操作

⏹用于指令和数据cache加锁和保护的扩展特性

⏹执行CR前瞻操作的BPU

⏹4K字节页面大小、可变长块大小和256M字节段大小的地址变换设施

⏹64表项、双路、组相联的ITLB和DTLB

⏹8表项的数据和指令BAT阵列,提供128K字节到256M字节的块

⏹快速陷阱机制支持的软件表搜索操作和更新

⏹52位虚地址;32位实地址

●提高系统性能的设施

⏹一个到一致系统总线(CSB)的32或64位的事务拆分内部数据总线接口,支持突发传输

⏹支持CSB接口的一级地址流水

⏹真高位在前字节序模式(小端),与其他高位在前字节序(小端)设备兼容

⏹增加了紧急中断

⏹硬件支持未对齐的高位在前字节序(小端)访问

⏹可配置处理器总线倍频器,与MPC8349E集成处理器硬件规范一致

●集成的电源管理

⏹内部处理器/总线时钟倍频器比率

⏹三种省电模式:

doze,nap,和sleep

⏹内部功能单元空闲时的自动动态功率减少

⏹利用JTAG边界扫描能力的系统内(in-system)可测性和调试特性

e300特有而G2处理器没有的特性如下:

●增强的寄存器集

⏹e300核比G2多了一个HID0位

◆允许cache奇偶校验(ECPE)位,HID0[1],使e300核可以在检测到cache奇偶错误时启用机器检查中断捕获

●增强的高速缓存(cache)实现

⏹更大的32K字节、8路、组相联的指令和数据高速缓存

⏹对指令和数据高速缓存存贮器阵列执行全面的奇偶校验

⏹可锁定的L1指令和数据高速缓存——整个高速缓存或按单路,此时最多可达8路中的7路

⏹新的icbt指令支持指令高速缓存的初始化

⏹数据高速缓存支持四态MESI一致性协议(MPC8349E未实现)

⏹仅在关键载入完成之后才封锁指令高速缓存(允许重载命中)

⏹指令撤销机制支持(撤销命中)(hit-under-cancel)和(撤销不命中)(miss-under-cancel),改进了指令高速缓存的利用率

⏹可将紧急双字同时写入高速缓存和转发给请求单元,因而使载入延迟所造成的阻滞最小

⏹数据高速缓存队列共享使换出和监听推(snooppush)更高效

⏹考虑到一致性系统管理,规定了可选的数据高速缓存操作广播特性(由HID0[ABE]启用)。

除dcbz(dcbi,dcbf和dcbst)之外,所有的数据高速缓存控制指令都要求启用HID0[ABE]广播

⏹取指突发特性允许所有取自高速缓存禁止空间的指令在总线上作为突发事务执行

●中断

⏹e300核为非对齐小端(高位在前字节序)格式访问提供硬件支持。

除字符串和多字之外,非字边界的小端格式取/存访问在与大端格式访问相同的环境下产生中断

⏹e300核支持真小端格式模式,对从真小端格式系统的软件移植影响最小

⏹提供了一个新的输入中断信号,/core_cint,用于触发e300核上的紧急中断异常

●总线时钟——PLL配置信号包括7个用于设置和控制的信号:

pll_cfg[0:

6]

●增强的调试特性

⏹新的记录在DBCR和IBCR控制寄存器中的断点状态

⏹用于调试接口的两个新信号:

/stopped和/ext_halt

图7-1提供了e300核的结构图,显示了执行单元-IU、FPU、BPU、LSU和SRU是如何独立和并行工作的。

必须注意,这是一个概念图,不是试图说明这些特性是如何在该设备上物理实现的。

e300核提供地址变换和保护机制,包括ITLB、DTLB和指令与数据BAT阵列。

指令的取得和发出由指令单元处理。

用于高速缓存或外部存贮器访问的地址变换由MMU处理。

这两个单元在7.1.2“指令单元(IU)”和7.1.5.1“存贮器管理单元(MMU)”中有详细讨论。

7.1.2指令单元(InstructionUnit)

如图7-1所示,e300核指令单元包含取指单元、指令队列、分派单元和BPU,集中控制到执行单元的指令流。

指令单元根据顺序取指器和BPU的信息确定要读取的下一条指令的地址。

指令单元把从指令cache取得的指令送入指令队列。

BPU从取指器接收转移指令,并使用静态转移预测,以允许在计算条件转移的同时,从预测的指令流中取指。

BPU合并不受执行流水线中的指令影响的无条件转移指令和条件转移指令。

预测转移之后发出的指令在解决了转移以后才完成执行,从而保持了顺序执行程序模型。

如果其中的任何一条指令是转移指令,则进行指令译码,但不发出。

被FPU、IU、LSU和SRU执行的指令,被发出并允许它们推进到寄存器写回阶段。

在解决了正确预测的转移之后才允许写回,并按预测的路径继续执行。

如果转移预测错误,指令单元就清除所有预测路径上的指令,并发出正确路径上的指令。

7.1.2.1指令队列和分派单元

指令队列(IQ)如图7-1所示,它保存多达6条指令,在单周期内可以从指令单元装入最多2条指令。

只要IQ空间允许,取指单元可以不断装入指令。

指令从分派单元按每个时钟2条指令的最大速度被分派到它们各自的执行单元。

每个单元都有一个预约站,使得到IU、FPU、LSU和SRU的分派更加容易。

分派单元执行源和目的寄存器相关检查,确定分派顺序,并按要求禁止后续指令的分派。

关于指令分派的更详细情况参见7.3.6“指令定时”。

7.1.2.2转移处理单元(BPUBranchProcessingUnit)

BPU从取指单元接收转移指令,对条件转移执行CR前瞻操作,以尽快解决条件转移,达到在很多情况下的零周期转移的效果。

BPU使用指令编码中的一位预测条件转移的方向,所以当遇到未解决的条件转移指令时,在解决条件转移之前,核一直从预测的目标流中取指。

BPU包含一个用于计算转移目标地址的加法器和三个用户控制寄存器:

链接寄存器(LRlinkregister)、计数寄存器(CTRcountregister)和条件寄存器(CRconditionalregister)。

BPU计算子程序调用的返回指针。

对于某些确定类型的转移指令,BPU将返回指针保存在LR中。

LR还包括转移条件到链接寄存器(bclrxBranchConditionaltoLinkRegister)指令的转移目标地址。

CTR包含转移条件到计数寄存器(bcctrxBranchConditionaltoCountRegister)指令的转移目标地址。

LR和CTR的内容可以复制到GPR,或从GPR复制。

由于BPU使用专用的寄存器,而非GPR或FPR,所以转移指令的执行在很大程度上与整型或浮点指令的执行无关。

7.1.3独立的执行单元

PowerPC系统结构支持独立执行单元,允许处理器实现乱序指令执行。

例如,因为转移指令不依赖GPR或FPR,所以通常可以提前解决转移,消除了转移所带来的延迟。

下面几节介绍其他四个执行单元和完成单元。

7.1.3.1整型单元(IUIntegerUnit)

IU执行所有的整型指令。

IU一次执行一条整型指令,用它的算术逻辑单元(ALU)、乘法器、除法器和XER寄存器执行计算。

大多数整型指令为单周期指令。

32个GPR容纳整型操作数。

重命名寄存器的自动分配使争用GPR所带来的延迟最小。

当整型指令被完成单元处理完毕后,e300核将重命名寄存器的内容写入合适的GPR。

7.1.3.2浮点单元(FPUFloating-PointUnit)

FPU包括一个单精度乘法-加法阵列,以及浮点状态与控制寄存器。

乘法-加法阵列允许e300c1核高效率地刷新乘法和乘法-加法运算。

FPU是流水化的,这样可以接连不断地发出单精度和双精度指令。

32个FPR提供对浮点运算的支持。

重命名寄存器的自动分配使争用FPR所带来的延迟最小。

当浮点指令被完成单元处理完毕后,e300c1核将重命名寄存器的内容写入合适的FPR。

e300c1核硬件支持IEEE-754浮点数据类型(规格化、非规格化、NaN、零和无穷),消除了由软件中断程序带来的等待。

7.1.3.3取/存单元(LSULoad/StoreUnit)

LSU执行所有的取和存指令,并提供GPR、FPR和cache/存贮子系统之间的数据传输接口。

LSU计算有效地址,执行数据对位,并为取/存字符串和多字指令提供定序。

取和存指令按程序顺序发出和执行,但存贮器的访问可能不按顺序。

提供的同步指令强制进行严格排序。

在没有数据总线相关时,可高速缓存的取(load)可以不按顺序执行,最大吞吐率可达每个周期一条指令,总等待时间为两个周期。

从cache返回的数据一直保存在一个重命名寄存器中,直到完成逻辑将该值提交给GPR和FPR为止。

存(store)无法以预测的方式执行。

因此将其保存在存储队列中,直到完成逻辑发出信号,通知存操作将结束对存贮器的访问为止。

核执行存指令,最大吞吐率可达每个周期一条指令,总等待时间为三个周期。

执行实际取和存所需要的时间依赖于操作是否涉及cache、系统存贮器或I/O设备。

7.1.3.4系统寄存器单元(SRUSystemRegisterUnit)

SRU执行各种系统级的指令,包括条件寄存器逻辑运算和从/到特殊目的寄存器的传送指令。

它还执行整型加/比较指令。

为维护系统的状态,由SRU执行的大多数指令都是顺序完成的,即指令等待执行,直到所有先前发出的指令都被执行完成为止。

SRU执行的顺序完成指令的结果在指令完成之前是不可用的,或不能转发给后续指令的。

7.1.4完成单元(CompletionUnit)

完成单元从分派到执行一直按程序顺序跟踪指令,然后完成。

完成一条指令是让核确认该指令所引起的系统结构寄存器的变化。

按序完成确保在核必须从错误预测的转移或中断恢复时系统结构状态正确。

完成指令所需要的指令状态和其他信息保存在一个具有5个表项的FIFO完成队列中。

一旦一条指令从分派单元进入执行单元,就为该指令分配一个完成队列表项。

可用的完成队列表项是分派必需的资源。

如果没有完成队列表项可用,就停止分派。

从该队列,按顺序最多每个周期完成两条指令。

7.1.5存贮器子系统支持

e300核提供独立的指令和数据cache及MMU。

核还提供一个高效的处理器总线接口,以方便对主存和其他总线子系统的访问。

下面几节介绍存贮器子系统支持的功能。

7.1.5.1存贮器管理单元(MMUMemoryManagementUnit)

e300核MMU为指令和数据支持最多4PB(252)的虚拟存贮器和4GB(232)的物理存贮器(在系统结构规范中称为实际存贮器)。

MMU还按块或页控制这些空间的访问权限。

处理器维护每一页的引用和变化状态,辅助按需分页虚拟存贮器系统的实现。

注意,该设备需要软件辅助,以维护引用和变化状态。

实现了一个关键位,该位提供页表搜索操作之前的有关存贮器保护违例的信息。

LSU计算数据取和存的有效地址,执行到/从cache存贮器的数据对位,为取和存字符串和多字指令提供定序。

指令单元为取指计算有效地址(EA)。

生成EA之后,EA的高阶位被适当的MMU变换为物理地址位,EA的低阶位与物理地址上的相同,它指向片上cache,形成到四路组相联的标签阵列的索引。

变换地址以后,MMU将高阶物理地址位传给cache,cache完成查找。

对于高速缓存禁止的访问或cache未命中的访问,则将未变换的低阶地址位与变换了的高阶地址位拼接,然后存贮器单元和核接口利用形成的32位物理地址访问外部存贮器。

MMU还控制地址变换,实施保护层次。

保护层次由操作系统设置,与管理员/用户访问权限有关,也与访问是取还是存有关。

对于取指,IMMU在ITLB和IBAT阵列中寻找地址。

如果地址在它们两个中都命中,则使用IBAT阵列变换。

数据访问引起在DTLB和DBAT阵列中的查找。

在大多数情况下,变换在TLB中进行,获得的物理地址可以访问片上cache。

e300核比G2多实现了4个IBAT和4个DBAT表项。

如果EA未在TLB中命中,核为软件提供硬件辅助,执行对存贮器中的变换表的搜索。

硬件辅助具有以下特性:

●自动将未命中的有效地址存储在IMISS和DMISS中

●自动生成页表表项组(PTEGpage-tableentrygroup)的主和辅散列实地址,从HASH1和HASH2寄存器可以读取这些地址。

HASH数据由IMISS或DMISS寄存器的内容生成。

选择哪个寄存器与最后确认的命中(指令或数据)有关。

●自动生成所要搜索的页表的页表表项(PTEpagetableentry)的第一个字

●实页地址(RPArealpageaddress)寄存器与PTE的低字格式相匹配

●TLB访问指令(tlbli和tlbld)用于将地址变换装入指令或数据TLB

●GPR0-GPR3影子寄存器允许未命中代码的执行,而不破坏现有任何GPR的状态。

影子寄存器仅用于处理TLB未命中。

关于核的存贮器管理的更多信息,参见7.3.5.2“实现特定的存贮器管理”。

7.1.5.2高速缓存单元(CacheUnit)

e300c1核提供独立的、32K字节、四路、组相联的指令和数据cache。

Cache块为32字节长。

Cache使用写回策略,但e300核允许在页级和块级对可缓存性、写策略和存贮器一致性进行控制。

Cache使用伪LRU替换算法。

如图7-1所示,cache提供一个到取指单元和LSU的64位接口。

周边逻辑选择、组织请求的信息,并将信息转发到请求单元。

到cache的写操作可以按字节进行,每个周期都可以产生完整的读-修改-写操作。

取/存和取指单元为cache提供要取的数据或指令的地址。

如果cache命中,cache就返回两个字给请求单元。

因为数据cache标签是单口的,所以同时进行取/存和监听(snoop)访问会引起资源争用。

监听访问的优先级最高,因此首先访问标签。

如果监听访问与标签写重合,则重新进行监听,且必须重新仲裁cache访问。

由于监听访问,取或存被延迟到监听访问之后的一个时钟周期上执行。

e300核包括一条新的指令撤销扩展。

指令撤销扩展改善了撤销操作期间指令cache的利用率。

如果被撤销的取指在总线上是挂起的或活动的,它允许向cache或总线发出一条新的取指操作。

它支持撤销命中(hit-under-cancel)和撤销不命中(miss-under-cancel)取指操作。

7.1.6总线接口单元(BIUBusIntefaceUnit)

因为cache是片上写回cache,所以最常用的事务是突发读存贮器操作、突发写存贮器操作和单拍(非高速缓存的或写直达的)存贮器读和写操作。

还可能有仅地址操作、衍生的突发和单拍操作(例如被监听的全局存贮器操作和原子存贮器操作)、以及地址重试活动(例如被监听的读访问命中了一个修改了的cache块)。

存贮器访问可以发生在单拍(1-8字节)和4拍突发(32字节)数据传输过程中——如果将总线配置为64位的;和单拍(1-4字节)、2拍(8字节)和8拍(32字节)数据传输过程中——如果将总线配置为32位的。

地址和数据总线独立工作,支持流水处理和在存贮器访问期间拆分事务。

e300总线接口单元(BIU)已经被增强,允许一旦先前事务被准许使用数据总线,流水槽就立即变为可用(即尽快在数据占用开始的时候,而不是在数据占用完成以后),因而在支持它的系统中,总线利用率更高。

有时将其称之为1-1/2级流水线技术。

对核接口的访问通过一个外部仲裁机制进行授权,该机制允许设备争用总线所有权。

仲裁很灵活,允许将核集成到实现各种公平和总线驻停规程的系统中,以避免仲裁开销。

典型地,存贮器访问是弱序的,即操作顺序,包括取/存字符串和多字指令,不必按它们开始的顺序完成。

这种弱序使总线效率最大,但不会牺牲数据的一致性。

核允许读操作先于写操作(存在相关时除外,或在执行非高速缓存的访问的时候除外),支持写操作先于先前排队的读数据占用(例如,允许将监听推封装在读操作的地址和数据占用中)。

因为处理器可以动态优化取/存流量的运行时次序,所以提高了总体性能。

7.1.7系统支持功能

e300核实现了多个支持功能,包括电源管理、用于系统定时任务的时基/递减器寄存器,一个JTAG(基于IEEE1149.1)接口、硬件调试和一个锁相环(PLL)时钟倍频器。

下面几节介绍这些系统支持功能。

7.1.7.1电源管理

e300核提供四种电源模式,可以通过设置机器状态寄存器和硬件实现寄存器0(HID0)中适当的控制位进行选择。

当进入一种非满功率电源模式时,核将通过qreq信号请求进入,且仅在收到了确认(qack)之后才进入其他电源模式。

四种电源模式如下:

●满功率——这是e300核的缺省电源状态。

e300核全力供电,内部功能单元按处理器时钟全速工作。

如果启用动态电源管理模式,空闲的功能单元将自动进入低功耗状态,不会影响性能、软件执行或外部硬件。

●Doze——除时基/递减器寄存器和总线监听逻辑之外,e300核的所有功能单元都被禁用。

当处理器处于Doze模式时,外部异步中断、系统管理中断、递减器中断、硬或软复位或机器检查会把e300核带入满功率状态。

Doze模式中的核以满功率状态维护PLL,并与系统的外部时钟输入(sysclk)锁定,这样切换到满功率状态只需几个处理器时钟周期。

●Nap——Nap模式进一步减少电源消耗。

它禁用总线监听,只让时基寄存器和PLL处于供电状态。

在收到外部异步中断、系统管理中断、递减器中断、硬或软复位或机器检查输入(mcp)信号时,核才返回到满功率状态。

从Nap状

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1