PowerPC E300处理器核超详细介绍

    这个是我在网上找到的一篇文章,是翻译的风河mpc83xx系列的说明书而来的,文章中很细致的讲解了PowerPC e300内核的结构,想要看懂u-boot启动的Stage1段代码,或想了解启动时e300处理器的初始化过程,此文非常值得一读。特在此处略加介绍,并放出下载在我的资源中,地址如下:http://download.csdn.net/source/3518360,与大家共享。

    PowerPc E300内核是由原始MPC603e PowerPC微处理器派生设计出来的,该文主要介绍e300内核的详细信息,提供其主要功能单元的结构图,并介绍其各单元的交互。它是一个精简指令集RISC处理器,实现了PowerPC系统结构的32位部分,定义了32位有效地址,8、16和32位整型数据类以及32、64位浮点数据类。

    E300核是一个超标量处理器,它每个时钟可发出和撤回3条指令,指令可不按程序顺序执行以提高性能。它集成了5个执行单元:整数单元IU、浮点数单元FPU、转移处理单元(BPU Branch Processing Unit)、取/存单元LSU和系统寄存器单元SRU。并行执行5条指令的能力和具有快速执行时间的简单指令的使用使得基于e300的系统有很高的效率和吞吐率。整型指令大多数在一个时钟周期内执行完成,FPU是流水处理,每个时钟周期可发出并完成一条单精度乘法-加法指令。E300核为所有单精度和双精度浮点运算中的绝大多数值的表现和所有的舍入模式提供硬件支持。下图为其内核结构图:

    E300核为指令和数据提供独立的片上32K字节、8路、组相联(set-associative)、物理寻址的高速缓存、以及片上指令和MMU。MMU包括具有64个表项、双路、组相联、数据和指令变换后缓存(DTLB和ITLB),为按需分页(demand-paged)、虚拟存储器、地址变换和变长块变换提供支持。

    E300还支持块地址转换BAT,它是由两个独立的IBAT和DBAT阵列,每个阵列有8对BAT,这在保护访问和为存储器访问、I/O访问提供基于段、块和页的变换等方面提供了很大的灵活性。在块变换期间,将有效地址和BAT阵列中的所有8个表项同时比较,根据PowerPC系统结构,若有效地址在TLB和BAT阵列中都命中,BAT变换取得优先。

    作为统一系统总线(CSB Coherent System Bus)的一部分,E300核有一条可选的32或64位的数据总线和一条32位的地址总线。核接口协议允许多个主设备通过一个中央外部仲裁器竞争系统资源。在正常操作期间,e300核提供一个三态(已修改、互斥、无效)一致性协议,该协议是四态(已修改、互斥、共享、无效)MESI协议的一个子集。但是e300数据cache包含一个可编程的MESI扩展,它支持共享cache一致性(cache coherency)状态,两种协议同时在包含四态高速缓存的系统中一致的运行。

    上面的图显示了执行单元-IU、FPU、BPU、LSU和SRU是如何独立和并行工作的,它所提供的地址变换和保护机制包括ITLB、DTLB和I/DBAT阵列。指令的取得和发出由指令单元处理,用于高速缓存或外部存储器访问的地址变换由MMU处理。

    全文接下来主要阐述了PowerPC的体系结构及其实现,体系结构包括了处理器单元:指令单元IU,独立的执行单元(整型单元、浮点单元FPU、取存单元LSU、系统寄存器单元SRU等),完成单元CU,存储器子系统支持(MMU、Cache Unit),总线接口单元BIU以及系统支持功能(电源管理、时基/递减器、JTAG接口、时钟增频器)。体系结构的实现则包括了一下方面内容:

    1、寄存器模型,有用户级UISA寄存器和管理模式OEA寄存器,包括了32个GPR、32个FPR、特殊目的寄存器SPR和一些多功能寄存器,另外,每个核还有自己的硬件实现寄存器集合HID。关键的包括MSR、SR、SPR、DAR、IABR等;

    2、指令集及寻址模式,所有的PowerPC指令都被编码为单字(32位)操作码,寻址指令就在上面的执行单元中包含;

    3、Cache实现,PowerPC系统结构未定义cache实现的硬件,e300核以页或块为基础控制存储器访问模式,包括写回/写直达模式、高速缓存禁止模式和存储器一致性;

    4、中断模型,PowerPC系统结构支持四种类型的中断:同步精确、同步非精确、异步可屏蔽和异步不可屏蔽;

    5、存储器管理,主要就是靠MMU;

    6、指令定时,e300核是一个流水超标量处理器核,所以指令定时的方式提高了指令流的吞吐率;

    7、总线接口单元,系统总线CSB用于处理器核与外围逻辑的接口,e300提供的核接口包括一条32位地址总线、一条32/64位的数据总线和56个控制与信息信号。

文章的最后,还介绍了e300核与G2_LE核的差别,值得一读。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页