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核的差別,值得一讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章