PowerPC處理器原理介紹.ppt_第1頁
PowerPC處理器原理介紹.ppt_第2頁
PowerPC處理器原理介紹.ppt_第3頁
PowerPC處理器原理介紹.ppt_第4頁
PowerPC處理器原理介紹.ppt_第5頁
已閱讀5頁,還剩123頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、PowerPC處理器原理,何賓 2009.10,PowerPC處理器原理,本章主要介紹PowerPC405嵌入式處理器的結(jié)構(gòu),其主 要內(nèi)容包括: 1)PowerPC處理器結(jié)構(gòu); 2)PowerPC處理器的寄存器; 3)PowerPC處理器I/O接口; 4)PowrPC處理器的OCM控制器; 5)PowerPC處理器的APU控制器。 這幾部分內(nèi)容是PowerPC處理器基本原理的核心,也 是設(shè)計人員使用PowerPC405嵌入式處理器進行SOPC設(shè)計 的基礎(chǔ)。,PowerPC處理器結(jié)構(gòu),PowerPC處理器為32位的PowerPC嵌入式環(huán)境體系 結(jié)構(gòu)(embedded environment ar

2、chitecture),該結(jié)構(gòu)來源 于PowerPC體系結(jié)構(gòu)。Virtex-II Pro使用PowerPC405D5結(jié) 構(gòu),Virtex-4使用PowerPC405F6結(jié)構(gòu)。 本章的處理器塊(processor blcok)是指連接PPC405 D5或者PPC405F6核,片上存儲器邏輯(on-chip memory logic,OCM),輔助處理器單元(Auxiliary Processor Unit,APU),相關(guān)邏輯和接口的處理器集合。,PowerPC處理器結(jié)構(gòu),PowerPC處理器結(jié)構(gòu)所提供的軟件模型保證了在實現(xiàn) PowerPC系列微處理器上的兼容要求。PowerPC體系結(jié)構(gòu) 定義的參

3、數(shù)保證了在應(yīng)用程序級上的處理器實現(xiàn)上的兼 容。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,PowerPC處理器是定點處理器,它與PowerPC UISA兼容。PowerPC405 VEA和OEA支持大部分都可以用來實現(xiàn)PowerPC405 Book-E的結(jié)構(gòu)。圖3.1給出了PowerPC處理器的結(jié)構(gòu)圖。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,1、中央處理單元(CPU) PowerPC處理器采用了5級流水,包括:取指,譯 碼,執(zhí)行,回寫和加載回寫;取指隊列用于存放指令, 由三部分組成:兩個預(yù)取緩沖區(qū)和一

4、個譯碼緩沖區(qū)。取 指和譯碼邏輯可以同時處理兩條分支。 PowerPC處理器有單線程(single-issue)執(zhí)行單元, 包含通用寄存器GPR,算術(shù)邏輯單元ALU和乘-加單元 MAC。執(zhí)行單元支持在硬件內(nèi)所有的32位PowerPC UISA指令。不支持浮點操作。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,2、異常處理邏輯 異常被分為兩類:緊急的和非緊急的;PowerPC405處 理用于處理異常(19種可能的異常),這些異常包括:錯 誤條件,內(nèi)部定時器,調(diào)試事件和外部中斷控制器EIC接 口。 每一類異常都有保存/恢復(fù)寄存器。SRR0和SRR1用于 非緊急中斷,SRR2和SRR3用

5、于緊急中斷。圖3.1 PowerPC 處理器的內(nèi)部結(jié)構(gòu),PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,3. 存儲器管理單元包括: 1)轉(zhuǎn)換4GB邏輯地址空間到物理地址空間; 2)獨立控制指令轉(zhuǎn)換和保護,以及數(shù)據(jù)轉(zhuǎn)換和保護; 3)對TLB的奇偶檢測和報告; 4)使用轉(zhuǎn)換機制進行頁面級訪問控制; 5)軟件控制的頁面替換策略; 6)為每個虛擬存儲器區(qū)域的完全寫入,緩沖能力,用 戶定義的 0,保護和段(WIU0GE)存儲屬性控制; 7)實模式下的32個128M空間的WIUOGE存儲屬性控 制;適用區(qū)域的額外保護控制; TLB用于控制地址轉(zhuǎn)換和保護。其工作原理MicroBlaze 處理器的T

6、LB基本一致。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,4、指令和數(shù)據(jù)緩存 PowerPC處理器通過指令緩存單元ICU和數(shù)據(jù)緩存單 元DCU訪問存儲器。每個緩存單元包括: 1)PLB主接口 2)緩存陣列 3)緩存控制器; 對于CPU來說,對指令和數(shù)據(jù)緩存的命中是單周期的 存儲器訪問。處理緩存缺失,就是通過PLB向其它PLB設(shè) 備發(fā)出請求,比如外部存儲器控制器。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,緩存控制器采用了最近使用的LRU的緩存行替換策略 。即緩存行被填充時,最近經(jīng)常訪問的緩存行被保留,而 其它均被替換。 指令緩存的功能包括:16KB,雙向級關(guān)聯(lián)(

7、2-way set associative);奇偶檢測和報告(只有Virtex-4);每緩存 行8字(32字節(jié));提取行緩沖區(qū);提供了來自提取行緩 沖區(qū)的取指命中;下一個順序行的可編程預(yù)取到提取行緩 沖區(qū);非緩存指令的可編程預(yù)?。喝校?字)/半行(4 字);提取行滿時,非阻塞訪問。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,數(shù)據(jù)緩存的功能包括: 1)16KB,雙向級關(guān)聯(lián)(2-way set associative); 2)奇偶檢測和報告(只有Virtex-4); 3)每緩存行8字(32字節(jié)); 4)讀、寫線緩沖區(qū); 5)提供從/到線緩沖行的加載和存儲命中; 6)可編程的加載和

8、存儲緩存行分配; 7)在緩存行滿時的操作數(shù)推進(Operand forward)邏 輯; 8)在緩存行滿并且刷新時的非阻塞訪問。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,5、定時器資源 PowerPC405處理器包含一個64位的基準時間和3個定 時器。 基準時間通過使用CPU 時鐘或者外部時鐘源,同步進 行時間的增加。定時器使用基準時間同步增加。 PowerPC處理器支持三種類型的定時器: 1)可編程間隔的定時器; 2)固定間隔的定時器; 3)看門狗定時器;,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,6、調(diào)試 PowerPC405處理器調(diào)試資源包括特殊調(diào)試模型

9、,在 硬件和軟件開發(fā)過程中,支持各種類型調(diào)試。這些調(diào)試包 括: 1)內(nèi)部調(diào)試模式:ROM監(jiān)控程序和軟件調(diào)試器 2)外部調(diào)試模式:JTAG調(diào)試器 3)調(diào)試等待模式:處理器停下來允許服務(wù)中斷 4)實時跟蹤模式:事件觸發(fā)用于實時跟蹤,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,7、PowerPC處理器接口,包括: 1)處理器本地總線 處理器本地總線PLB接口提供一個32位地址和3個64 位數(shù)據(jù)總線與數(shù)據(jù)緩存和指令緩存連接。其中的兩個64 位總線連接到數(shù)據(jù)緩存單元,一個支持讀操作,另一個 支持寫操作;另一個連接到指令緩存單元。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,2

10、)設(shè)備控制寄存器 設(shè)備控制寄存器(device control register,DCR)支持 與片上寄存器的連接用于設(shè)備控制。軟件通過使用mfdcr 和mtdcr指令來訪問這些寄存器。 3)時鐘和電源管理 時鐘和電源管理接口支持幾種時鐘分配和電源管理的 方法。 4)JT AG端口 JTAG端口接口支持與外部幾種調(diào)試工具的連接。使用 JTAG測試訪問端口,調(diào)試工具能單步運行處理器和查看 內(nèi)部處理器的狀態(tài),這樣可以方便軟件調(diào)試。,PowerPC處理器結(jié)構(gòu)PowerPC處理器體系結(jié)構(gòu)概述,5)片上中斷控制器 片上中斷控制器接口是一個外部的中斷控制器,它 與來自片上或外部的中斷源輸入連接,并且使用一

11、對中 斷信號(緊急和不緊急的)將其傳遞給處理器。異步中 斷源包括外部信號,JTAG和調(diào)試單元和其它片上外設(shè)。 6)片上存儲器控制器 一個片上存儲器OCM接口支持在性能級上,將額外 的能被訪問的、與緩存陣列匹配的存儲器連接到指令和 數(shù)據(jù)緩存。,PowerPC處理器結(jié)構(gòu)PowerPC軟件結(jié)構(gòu)概述,PowerPC處理器結(jié)構(gòu)是一個有32位子集的,64位的體 系結(jié)構(gòu)。 PowerPC 體系結(jié)構(gòu)分為三個級別。通過對體系結(jié)構(gòu)以 這種方式進行劃分,為實現(xiàn)可以選擇價格/性能比平衡的 復(fù)雜性級別留出了空間,同時還保持了實現(xiàn)間的代碼兼容 性。,PowerPC處理器結(jié)構(gòu)PowerPC軟件結(jié)構(gòu)概述,1、用戶指令集體系結(jié)

12、構(gòu)(UISA) 定義了通用于所有 PowerPC 實現(xiàn)的用戶指令和寄存 器的基本集合。這些是非特權(quán)指令,為大多數(shù)程序所用。 2、虛擬環(huán)境體系結(jié)構(gòu)(VEA) 定義了常規(guī)應(yīng)用軟件要求之外的附加的用戶級功能, 比如高速緩存管理、原子操作和用戶級計時器支持。雖然 這些操作也是非特權(quán)的,但是程序通常還是通過操作系統(tǒng) 調(diào)用來訪問這些函數(shù)。 3、操作環(huán)境體系結(jié)構(gòu) (OEA) 定義了操作系統(tǒng)級需要和使用的操作。其中包括用 于內(nèi)存管理、異常向量處理、特權(quán)寄存器訪問、特權(quán)計時 器訪問的函數(shù)。該體系結(jié)構(gòu)中詳細說明了對各種系統(tǒng)服務(wù) 和功能的直接硬件支持。,PowerPC處理器結(jié)構(gòu)PowerPC軟件結(jié)構(gòu)概述,Power

13、PC嵌入式環(huán)境體系結(jié)構(gòu)的特點有: 為嵌入式軟件環(huán)境進行了存儲器管理的優(yōu)化 為性能優(yōu)化和存儲器控制的緩存管理指令 用于控制存儲器系統(tǒng)行為的存儲屬性 用于控制調(diào)試資源控制,定時器資源,中斷,實時模 式存儲屬性,存儲器管理工具和其它結(jié)構(gòu)的處理器資 源,PowerPC處理器結(jié)構(gòu)PowerPC軟件結(jié)構(gòu)概述,一個設(shè)備控制器寄存器地址空間用于管理片上外設(shè), 比如存儲器控制 一個雙級中斷結(jié)構(gòu)和中斷控制指令 多重定時器資源 調(diào)試資源,能夠進行硬件和軟件調(diào)試功能比如指令斷 點,數(shù)據(jù)斷點和程序的單步執(zhí)行。,PowerPC處理器結(jié)構(gòu)PowerPC軟件結(jié)構(gòu)概述,PowerPC處理器增持實模式和虛擬模式兩種地址轉(zhuǎn)換 模式

14、。在實模式下,程序直接尋址物理存儲器;在虛擬模 式下,程序地址虛擬存儲器和虛擬存儲器的地址通過處理 器轉(zhuǎn)換為物理存儲器的地址。這使程序可以訪問更大的地 址空間。 通過加載和存儲指令支持數(shù)據(jù)尋址,其尋址模式有: 1)通過立即索引的寄存器間接尋址; 2)通過索引的寄存器間接尋址; 3)寄存器間接尋址。,PowerPC處理器結(jié)構(gòu)PowerPC軟件結(jié)構(gòu)概述,在分支指令中使用下面的分支尋址模式中的一種: 1)相對分支(分支相對當前指令的地址); 2)絕對分支(分支在存儲器中的絕對地址); 3)連接寄存器分支(分支地址保存在連接寄存器中); 4)計數(shù)寄存器分支(分支地址保存在計數(shù)寄存器中).,PowerP

15、C處理器結(jié)構(gòu)-PowerPC 寄存器,PowerPC 的寄存器分為兩類: 1)用戶寄存器; 2)特權(quán)寄存器;,PowerPC處理器結(jié)構(gòu)-PowerPC 寄存器,1、通用寄存器(GPR) 用戶指令集體系結(jié)構(gòu)規(guī)定,所有實現(xiàn)都有 32 個 GPR (從GPR0 到 GPR31)。GPR 是所有整數(shù)操作的源和目 的,也是所有加載/存儲操作的地址操作數(shù)的源。GPR 還 提供對 SPR 的訪問。所有 GRP 都是可用的,只有一種情 況例外:在某些指令中,GPR0 只是代表數(shù)值 0,而不會 去查找 GPR0 的內(nèi)容。,PowerPC處理器結(jié)構(gòu)-PowerPC 寄存器,2、專用寄存器(SPR)組 用戶級的SP

16、R組包括SPRG4-SPRG7,需要系統(tǒng)服務(wù) 的支持才可以由應(yīng)用程序讀寫的 SPR 包括時基(Time Base)和其他各種可能支持的計時器。,PowerPC處理器結(jié)構(gòu)-PowerPC 寄存器,3、鏈接寄存器(Link Register,LR) 這個寄存器存放的是函數(shù)調(diào)用結(jié)束處的返回地址。 某些轉(zhuǎn)移指令可以自動加載 LR 到轉(zhuǎn)移之后的指令。每個 轉(zhuǎn)移指令編碼中都有一個 LK 位。如果 LK 為 1,轉(zhuǎn)移指 令就會將程序計數(shù)器移為 LR 中的地址。而且,條件轉(zhuǎn)移 指令 bclr 轉(zhuǎn)移到 LR 中的值。 4、定點異常寄存器(Fixed-Point Exception Register,XER) 這

17、個寄存器存放整數(shù)運算操作的進位以及溢出信息。 它還存放某些整數(shù)運算操作的進位輸入以及加載和存儲指 令( lswx 和 stswx )中傳輸?shù)淖止?jié)數(shù)。,PowerPC處理器結(jié)構(gòu)-PowerPC 寄存器,5、計數(shù)寄存器(Count Register,CTR) 這個寄存器中存放了一個循環(huán)計數(shù)器,會隨特定轉(zhuǎn)移 操作而遞減。條件轉(zhuǎn)移指令 bcctr 轉(zhuǎn)移到 CTR 中的值。 6、條件寄存器(Condition Register,CR) 這個寄存器分為八個字段,每個字段 4 位。,PowerPC處理器結(jié)構(gòu)-特權(quán)寄存器,1、機器狀態(tài)寄存器(Machine State Register,MSR) MSR包含了

18、那些控制處理器運行狀態(tài)的位域,這些位 只能被特許的軟件訪問 2、核配置寄存器(Core Configuration Register,CCR) 該寄存器在Vitex-4以上版本有,CCR寄存器的一些額 外的控制比特用于使能奇偶校驗。CCR1用于使能奇偶錯 誤插入用于硬件調(diào)試。MCSR寄存器包含狀態(tài)信息用來確 定指令緩存、數(shù)據(jù)緩存或TLB的奇偶錯誤源。,PowerPC處理器結(jié)構(gòu)-特權(quán)寄存器,3、異常處理寄存器(Exception-Handling Register)組 包括EVPR、ESR、DEAR、SR0-SR3、MCSR寄存器。 4、存儲器管理寄存器(Memory Management Re

19、gister)組 MMR寄存器組包括PID、ZPR寄存器。,PowerPC處理器結(jié)構(gòu)-特權(quán)寄存器,5、存儲器屬性控制寄存器(Storage-Attribute Control Register)組 SACR寄存器組包括DCCR、DCWR、ICCR、SGR、SLER、SU0R寄存器。 6、調(diào)試寄存器(Debug Register,DR)組 DR組包括DBSR、DBCR0、DBCR1、DAC1、DAC2、 DVC1、DVC2、IAC1、IAC2、IAC3、IAC4、ICDBR寄存 器。 7、定時器寄存器(Timer Registers)組 TR組包括TCR、TSR、PIT寄存器。,PowerPC處

20、理器結(jié)構(gòu)-特權(quán)寄存器,8、處理器版本寄存器(Processor Version Register,PVR) PVR 是一個 32 位只讀寄存器,標識處理器的版本和 修訂級別。處理器版本由PowerPC 體系結(jié)構(gòu)過程分配。修 訂級別由實現(xiàn)定義。需要有特權(quán)才能訪問 PVR,所以應(yīng)用 程序只能在操作系統(tǒng)函數(shù)的幫助下才可以確定處理器版本。 9、基準時間寄存器(Time-Base Register,TBR) TBR由TBRH和TBRL寄存器構(gòu)成,PowerPC處理器結(jié)構(gòu)-共有寄存器組,專用寄存器(SPR)組 SPR組包括SPRG0-SPRG7,SPR 給出處理器核心內(nèi)部 資源的狀態(tài)并對其進行控制。不需要

21、系統(tǒng)服務(wù)的支持就可 以由應(yīng)用程序讀寫的 SPR 包括計數(shù)寄存器(Count Register)、鏈接寄存器(Link Register)和整型異常寄存 器(Integer Exception Register)。,PowerPC處理器I/O接口,該部分的I/O接口包括: 1)時鐘和電源管理接口; 2)CPU控制接口; 3)復(fù)位接口; 4)指令側(cè)的PLB接口; 5)數(shù)據(jù)側(cè)的PLB接口; 6)設(shè)備控制寄存器接口; 7)內(nèi)部設(shè)備控制寄存器接口; 8)外部DCR總線接口;,PowerPC處理器I/O接口,9)外部中斷控制器接口; 10)PPC405 JTAG接口; 11)調(diào)試接口; 12)跟蹤接口;

22、13)處理器版本寄存器接口; 14)額外的FPGA指定信號等。,PowerPC處理器I/O接口,PowerPC處理器的I/O接口的信號命名格式為: PREFIX1PREFIX2SIGNAME1SIGNAME2NEG(m:n) PREFIX1,PREFIX2:為大寫的前綴,用于標識信號源。 這個前綴后者是一個單元(比如CPU),或者是一種類型 的接口(比如,DCR)。當指明的是處理器塊時,為輸出 信號;否則為輸入信號。 下面給出前綴的含義: 1)SIGNAME1:指明信號的基本功能 2)SIGNAME2:指明信號的第二個功能 3)NEG:可選,表明信號低有效 4)M:N:可選,表明是一個總線信號

23、,PowerPC處理器I/O接口-時鐘和電源管理接口,1、CPM接口功能及信號 時鐘和電源管理接口(clock and power management, CPM)接口使能對電源敏感的應(yīng)用,通過外部邏輯來控制 處理器時鐘。OCM控制器從處理器核獨立的提供時鐘。 此外,Virtex-4器件的PowerPC405處理器也為APU和 DCR使用獨立的時鐘。 PowerPC405的CPM分為三個時鐘域: 1)核 2)定時器 3)JTAG,PowerPC處理器I/O接口-時鐘和電源管理接口,當產(chǎn)生下面的事件時,處理器從休眠模式被喚醒: 1)定時器中斷或定時器復(fù)位 2)確認芯片復(fù)位或系統(tǒng)復(fù)位請求 3)確認

24、一個外部中斷或緊急中斷輸入 4)確認DBGC405DEBUGHALT芯片輸入信號 圖3.2給出了CPM接口塊的符號,表3.1給出了CPM接口 I/O信號的功能描述。,PowerPC處理器I/O接口-時鐘和電源管理接口,PowerPC處理器I/O接口-時鐘和電源管理接口,PowerPC處理器I/O接口-在系統(tǒng)設(shè)計時對時鐘域的考慮,使用PowerPC405處理器的嵌入式系統(tǒng)的高級觀點和內(nèi) 核連接總線結(jié)構(gòu)包括: 1)PowerPC處理器; 2)處理器本地總線(Processor Local Bus,PLB)外 設(shè); 3)指令側(cè)和數(shù)據(jù)側(cè)的片上存儲器控制器(On-Chip Memory Controll

25、er,OCM); 4)設(shè)備控制寄存器(Device Control Register,DCR) 外設(shè); 5)開關(guān)結(jié)構(gòu)模塊(Fabric Co-Processor Module,F(xiàn)CM) (Virtex-4),PowerPC處理器I/O接口-在系統(tǒng)設(shè)計時對時鐘域的考慮,下面的時鐘(使用與處理器時鐘一定的比例關(guān)系)用 于和內(nèi)核塊進行通信: CPMC405CLOCK:主處理器塊時鐘 PLBCLK:基本的PLB I/O總線時鐘 BRAMISOCMCLK:用于指令側(cè)的OCM控制器的參考時鐘 BRAMDSOCMCLK:用于數(shù)據(jù)側(cè)的OCM控制器的參考時鐘 CPMFCMCLK:用于APU控制器的參考時鐘 CP

26、MDCRCLK:用于外部DCR總線的參考時鐘,PowerPC處理器I/O接口-在系統(tǒng)設(shè)計時對時鐘域的考慮,PowerPC處理器支持多時鐘域。使用多個DCM和 BUFG元件用來創(chuàng)建和驅(qū)動時鐘域。時鐘域包括: 1)PLB時鐘, 2)FCM時鐘, 3)DCR時鐘, 4)OCM時鐘。,PowerPC處理器I/O接口-CPU控制接口,CPU控制接口基本上用來提供CPU的建立到PowerPC405 處理器的信息。 它也用于報告在PowerPC405處理器內(nèi)的機器檢查狀態(tài) 的識別。 圖3.3給出了CPU控制器接口塊符號,表3.2給出了CPU 控制接口的信號描述。,PowerPC處理器I/O接口-CPU控制接

27、口,PowerPC處理器I/O接口-復(fù)位接口,復(fù)位導(dǎo)致處理器模塊執(zhí)行初始化操作。處理器能夠 識別三種類型的復(fù)位: 1)處理器復(fù)位:只影響處理器模塊,包括內(nèi)核執(zhí)行單 元,緩存單元,DCR和OCM。 2)芯片復(fù)位:影響處理器模塊和其他所有的片上的外 設(shè) 3)系統(tǒng)復(fù)位:影響處理器芯片,所有的其它外設(shè)或者 與處理器連接的外部設(shè)備,其影響范圍取決于系統(tǒng)實現(xiàn)。 上電復(fù)位(POR)是一種形式的復(fù)位。,PowerPC處理器I/O接口-復(fù)位接口,輸入信號被提供給出理器模塊用于各種復(fù)位類型。 信號被用于復(fù)位處理器模塊和在調(diào)試狀態(tài)寄存器 (DBSRMRR)中,記錄復(fù)位的類型。 處理器為每種復(fù)位類型產(chǎn)生復(fù)位請求輸出信

28、號。 外部的復(fù)位邏輯能處理這些輸出信號,并且為處理 器產(chǎn)生合適的復(fù)位信號。 當處理器塊請求復(fù)位時,并不產(chǎn)生復(fù)位行為。只有 當外部邏輯確認了合適的復(fù)位輸入信號后,才發(fā)生復(fù)位 行為。 圖3.4給出了復(fù)位接口的塊符號,表3.3給出了復(fù)位接 口的I/O信號。,PowerPC處理器I/O接口-復(fù)位接口,PowerPC處理器I/O接口-指令側(cè)的PLB接口,指令側(cè)的PLB接口(instruction processor local bus, ISPLB)使能PowerPC405指令緩存單元(instruction cache unit,ICU)從與PLB相連的任何存儲器設(shè)備加載(讀)指 令。ICU不能寫存儲

29、器。 加載請求由ICU產(chǎn)生,并且和PLB接口通信。當訪問 缺失的指令緩存或者訪問的存儲器位置是非緩存的,則產(chǎn) 生加載請求。加載指令由PLB的從設(shè)備通過PLB接口返回 到ICU。送到ICU的指令可以是任意順序的,當ICU從PLB 從設(shè)備中接收到指令時,它們被放在ICU填充緩沖區(qū)內(nèi)。,PowerPC處理器I/O接口-指令側(cè)的PLB接口,指令側(cè)的PLB接口提供了預(yù)?。╬refetch)和地址流水 (address pipelining)的功能。預(yù)取是指請求8個字的緩存 行要求,它是按順序跟在當前8字取請求后。ICU能將先 前的取指請求和一個預(yù)取請求重疊,這個過程就叫做地址 流水,使在從設(shè)備正在返回和

30、第一個地址相關(guān)的數(shù)據(jù)時, 第二個地址能出現(xiàn)在PLB從設(shè)備上。 圖3.5給出了指令側(cè)的PLB接口的塊符,PowerPC處理器I/O接口-指令側(cè)的PLB接口,PowerPC處理器I/O接口-指令側(cè)的PLB接口,PowerPC處理器I/O接口-數(shù)據(jù)側(cè)的PLB接口,數(shù)據(jù)側(cè)的PLB接口(data-side processor local bus, DSPLB)使能PowerPC405數(shù)據(jù)緩存單元(DCU)加載 (讀)從和存儲(寫)數(shù)據(jù)到任何與PLB連接的存儲器 設(shè)備。該接口有一個專用的32位地址總線輸出,一個專 用的64位讀數(shù)據(jù)總線輸入,一個專用的64位寫數(shù)據(jù)總線 輸出。該總線也支持32位的操作。該總線

31、能在每個PLB 周期傳輸一個數(shù)據(jù)。,PowerPC處理器I/O接口-數(shù)據(jù)側(cè)的PLB接口,DCU產(chǎn)生數(shù)據(jù)訪問請求,并且通過PLB接口通信。當 訪問缺失的數(shù)據(jù)緩存或者訪問的存儲器位置是非緩存的, 則產(chǎn)生加載請求。加載指令由PLB的從設(shè)備通過PLB接口 返回到DCU。送到DCU的指令可以是任意順序的,當 DCU從PLB從設(shè)備中接收到指令時,它們被放在DCU填充 緩沖區(qū)內(nèi)。,PowerPC處理器I/O接口-數(shù)據(jù)側(cè)的PLB接口,DCU能將先前的取指請求和一個預(yù)取請求重疊,這個 過程就叫做地址流水,使在從設(shè)備正在返回和第一個地址 相關(guān)的數(shù)據(jù)時,第二個地址能出現(xiàn)在PLB從設(shè)備上。 DSPLB支持非對齊訪問。

32、如果操作數(shù)超過字邊界或者 緩存行邊界,處理器自動分解訪問非對齊的操作數(shù)到兩個 數(shù)據(jù)訪問請求。,PowerPC處理器I/O接口-數(shù)據(jù)側(cè)的PLB接口,圖3.6給出了數(shù)據(jù)側(cè)PLB接口的塊符號,表3.5給出了 數(shù)據(jù)側(cè)PLB接口的信號,PowerPC處理器I/O接口-數(shù)據(jù)側(cè)的PLB接口,PowerPC處理器I/O接口-數(shù)據(jù)側(cè)的PLB接口,PowerPC處理器I/O接口-設(shè)備控制寄存器接口,設(shè)備控制寄存器(device-control register,DCR)接口提 供了一種機制,用于處理器模塊初始化和控制在同一 FPGA芯片上的外設(shè)。比如:為總線接口單元BIU的存儲 器傳輸特性和地址分配,可以使用DC

33、R通過軟件來配置。 可以使用PowerPC的mfdcr和mtdcr指令來訪問DCR寄存器。 這些指令所用的尋址不是使用存儲器映射的,因此不 會對OCM/PLB存儲器的尋址產(chǎn)生影響。DCR被定義在10 比特,字對齊的范圍內(nèi)。,PowerPC處理器I/O接口-設(shè)備控制寄存器接口,存在下面類型的DCR接口: 1)PowerPC內(nèi)部的設(shè)備控制寄存器接口 2)通用DCR總線接口 3)專用的EMAC DCR總線接口(Virtex-4 FX),PowerPC處理器I/O接口-內(nèi)部的DCR接口,PowerPC處理器塊包含了一些內(nèi)部的DCR,這些DCR 能用于為處理器塊內(nèi)的功能單元控制,配置,保持狀態(tài)。 這些D

34、CR使用內(nèi)部的DCR總線訪問,它與外部的DCR總 線訪問的DCR寄存器共享地址范圍。,PowerPC處理器I/O接口-內(nèi)部的DCR接口,在Virtex-II Pro和Virtex-4 FX處理器中均有下面兩個 包含DCR控制器的功能單元: 1)數(shù)據(jù)側(cè)的OCM控制器DSOCM,包含DSCNTL和 DSARC寄存器 2)指令側(cè)的OCM控制器ISOCM,包含ISCNTL, ISARC,ISINIT和ISFILL寄存器,PowerPC處理器I/O接口-內(nèi)部的DCR接口,除此之外,在Virtex-4 FX處理器中還包含下面兩個包 含DCR控制器的功能單元: 1)APU控制器,包含APUCFG和UDICF

35、G控制器 2)以太網(wǎng)MAC DCR總線接口(與硬件EMAC控制器 固定連接)包含RDYstatus,cntlReg,dataRegLSW和 RegMSW寄存器。,表3.6給出了DCR地址偏移量,PowerPC處理器I/O接口-內(nèi)部的DCR接口,PowerPC處理器I/O接口-外部的DCR接口,內(nèi)核連接(coreconnect)總線外設(shè)的DCR接口組成包括以下: 1)10比特的地址總線 2)獨立的32位輸入和輸出數(shù)據(jù)總線 3)獨立的讀和寫控制信號 4)一個讀/寫應(yīng)答信號,PowerPC處理器I/O接口-外部的DCR接口,此外,在Virtex-4 FX器件有一個時鐘相關(guān)的 CPMDCRCLK接口D

36、CR較較喜歡的實現(xiàn)方式是作為一個 分布的,復(fù)用的鏈。鏈上的每一個外設(shè)的DCR數(shù)據(jù)輸入和 前一個鏈上的外設(shè)的DCR數(shù)據(jù)輸出連接。 圖3.7給出了Virtex-II Pro外部DCR接口的塊符號。表 3.7給出了外部DCR接口的信號。 Virtex-4的信號與Virtex-II Pro信號功能一樣,不同的 是Virtex-4 FX信號名字的前綴是EXTD,不是C405。 圖3.8給出了DCR鏈的結(jié)構(gòu)圖。,PowerPC處理器I/O接口-外部的DCR接口,PowerPC處理器I/O接口-外部的DCR接口,PowerPC處理器I/O接口-外部的DCR接口,PowerPC處理器I/O接口-外部中斷控制器

37、接口,PowerPC嵌入式環(huán)境結(jié)構(gòu)定義了兩類中斷:緊急和非緊急的。 用于處理外部緊急中斷的中斷句柄在異常向量偏移0 x100的地方。 用于處理外部非緊急中斷的中斷句柄在異常向量偏移0 x200的地方。 當同時發(fā)生這兩類中斷時,處理器將優(yōu)先處理緊急中斷。緊急中斷使用SRR2和SRR3寄存器,非緊急中斷使用SRR0和SRR1寄存器。緊急中斷可以打斷一個非緊急中斷句柄。,PowerPC處理器I/O接口-外部中斷控制器接口,到處理器的外部邏輯可以用來產(chǎn)生這兩類中斷。外部 中斷控制器(External Interrupt Controller,EIC)來管理中斷 源。一旦外部中斷請求被確認,EIC必須保

38、持信號被確 認,直到軟件不在確認為止。這通常是寫入到EIC外設(shè)邏 輯的DCR來實現(xiàn)的。 通過使用MSR寄存器內(nèi)的比特位,軟件能使能/禁止 外部中斷: 1)MSREE控制非緊急中斷。寫1使能,否則禁止。 2)MSRCE控制緊急中斷。寫1使能,否則禁止。 圖3.9給出了EIC接口塊符號,表3.8給出了EIC接口的信 號,PowerPC處理器I/O接口-外部中斷控制器接口,PowerPC處理器I/O接口-PPC405 JTAG調(diào)試端口,powerPC405有一個JTAG接口用于支持軟件調(diào)試。許多調(diào)試器,比如IBM的RISCWatch,Wind River的SingleStep和Xilinx EDK的

39、GNU調(diào)試器,都使用了JTAG接口。 象其它PPC405的信號一樣,設(shè)計者也要定義JTAG接口到外部的連接。由于這些連接只能通過可編程的互聯(lián)實現(xiàn),因此在PPC405 JTAG接口使用前,必須配置FPGA。,PowerPC處理器I/O接口-PPC405 JTAG調(diào)試端口,PPC405的JTAG可以通過FPGA本身的JTAG端口連 接,也可通過可編程的I/O連接。至于采用什么連接方 式,取決于軟件調(diào)試器的要求。 圖3.10給出了JTAG接口塊符號,表3.9給出了JTAG 接口的信號描述。,PowerPC處理器I/O接口-PPC405 JTAG調(diào)試端口,PowerPC處理器I/O接口-PPC405

40、JTAG調(diào)試端口,PowerPC處理器I/O接口-PPC405 JTAG調(diào)試端口,1、通過可編程I/O直接連接PPC405 JTAG邏輯 最簡單的訪問PPC405 JTAG邏輯的方法是將處理器核 的JTAG信號直接連接到可編程I/O引腳。 對于有多個PPC405核的芯片,用戶可以將每個核的 JTAG單獨的直接連接到可編程I/O引腳。 另一種方法是將PPC405使用鏈進行連接,即公用 TMS,TCK,TRST信號,將下一個核的輸入TDI和上一個核 的TDO連接,最后一個核的TDO的輸出連接到可編程I/O 引腳上。,PowerPC處理器I/O接口-PPC405 JTAG調(diào)試端口,2、通過專用的芯片

41、JTAG邏輯連接PPC405 JTAG邏輯 另一種方法是使用芯片專用的JTAG引腳將多個 PPC405和JTAGPPC通過JTAG鏈連接到一起。,PowerPC處理器I/O接口-調(diào)試接口,調(diào)試器接口使能一個外部的調(diào)試器工具,在外部調(diào)試 模式下來操作PowerPC405處理器調(diào)試資源。 該模式能改變一個程序的運行,并且提供了調(diào)試系統(tǒng) 硬件和軟件的能力。該模式支持處理器的啟動和停止,單 步指令的執(zhí)行,設(shè)置斷點和監(jiān)視處理器狀態(tài)。 圖3.11給出了調(diào)試接口的塊符號,表3.10給出了調(diào)試 接口的信號描述。,PowerPC處理器I/O接口-調(diào)試接口,PowerPC處理器I/O接口-調(diào)試接口,PowerPC

42、處理器I/O接口-跟蹤接口,當處理器工作在實時跟蹤調(diào)試模式時,使用跟蹤接口。 該模式支持實時跟蹤處理器所執(zhí)行的指令流。在這種模式 下,調(diào)試事件用來引起外部觸發(fā)事件。一個外部的跟蹤工 具使用觸發(fā)器事件來控制跟蹤信息的搜集。在跟蹤接口上 的跟蹤信息的廣播將獨立引起外部觸發(fā)事件。實時跟蹤模 式不影響處理器性能。 實時跟蹤模式總是使能。然而,只有當內(nèi)部調(diào)試模式 和外部調(diào)試模式禁止時,才能產(chǎn)生觸發(fā)器事件。當使能調(diào) 試時,將阻塞觸發(fā)器事件。 圖3.12給出了跟蹤調(diào)試塊符號,表3.11給出了跟蹤調(diào) 試接口的信號,PowerPC處理器I/O接口-跟蹤接口,PowerPC處理器I/O接口-跟蹤接口,PowerP

43、C處理器I/O接口-處理器版本寄存器接口,Virtex-4 PowerPC塊提供用戶訪問處理器版本寄存器 (Processor Version Register,PVR)中8比特的功能。 其中一個目的是在多處理器系統(tǒng)中識別不同的處理 器,或者編碼一些處理器環(huán)境不同的描述,使類屬代碼 可以基于這個編碼來調(diào)整其運行。 圖3.13給出了PVR接口的塊符號,表3.12給出了PVR 接口的I/O信號。,PowerPC處理器I/O接口-處理器版本寄存器接口,PowerPC處理器I/O接口-處理器版本寄存器接口,PowerPC處理器I/O接口-額外的FPGA指定信號,圖3.14給出了額外的FPGA信號的接口

44、塊符號,表3.13給出了額外I/O信號的功能,PowerPC處理器OCM控制器,片上存儲器(On-Chip Memory,OCM)控制器是一個專用的接口,用于連接FPGA的BRAM和PPC405核的OCM信號。OCM控制器提供了非緩存的對指令側(cè)和數(shù)據(jù)側(cè)存儲器空間的訪問。 數(shù)據(jù)側(cè)的接口支持32位雙向的存儲器空間,指令側(cè)的接口支持64位單向德存儲器空間。不象PLB接口,OCM控制器不需要總線仲裁來訪問FPGA的結(jié)構(gòu)(fabric)資源。 在Virtex-II Pro中,DSOCM和ISOCM控制器設(shè)計與BRAM以固定延遲指標接口。 在Virtex-4中,DSOCM控制器有一個增強的特性通過額外的信

45、號來支持存儲器映射的外設(shè)。,PowerPC處理器OCM控制器-OCM控制器特點,下面給出OCM控制器的特點,首先介紹DSOCM和 ISOCM的特點,然后再分別介紹各自獨有的特點。 1)DSCOM和ISOCM的共同特點 在FPGA內(nèi)的處理器塊和BRAM之間,存在獨立的指 令和數(shù)據(jù)存儲器接口,在指令側(cè)和數(shù)據(jù)側(cè)接口到外部存 儲器之間不需要PLB仲裁。,PowerPC處理器OCM控制器-OCM控制器特點,專用的接口到DCR總線,用于ISOCM和DSCOM控制器。 在處理器塊內(nèi)的專用的DCR總線循環(huán)用于OCM控制器。 在DSOCM和ISOCM控制器內(nèi)的FPGA可配置的DCR寄 存器地址。 為DSOCM和

46、ISOCM分配了獨立的16MB的邏輯存儲器 空間。 為指令側(cè)和數(shù)據(jù)側(cè)接口提供了多周期模式選擇。多周 期操作使用N:1的處理器到BRAM的比例系數(shù) Virtex-4可選擇的自動時鐘比例檢測,消除了必須編程 控制比例系數(shù)的操作,PowerPC處理器OCM控制器 -OCM控制器特點,2)DSCOM的特點 32比特的讀數(shù)據(jù)總線和32位的寫數(shù)據(jù)總線 支持字節(jié)寫訪問DSBRAM 雙端口DSBRAM的第二個端口可用于從FPGA接口讀/寫操作 到DSBRAM端口的22位地址 DCR寄存器:DSCNTL,DSARC Virtex-4支持為讀/寫數(shù)據(jù)傳輸可變的延遲,PowerPC處理器OCM控制器 -OCM控制器

47、特點,3)ISOCM的特點 ISOCM接口包含64位只讀端口用于指令加載和32位讀 /寫端口來初始化或測試ISBRAM。 64位只讀數(shù)據(jù)總線(2個BRAM周期) 對于Virtex-II Pro,使用DCR指令的32位寫總線;對 Virtex-4,使用DCR指令的32位讀和寫總線分離的21位到 ISBRAM的只讀和只寫地址 DCR寄存器:ISCNTL,ISARC,ISINIT,ISFILL 兩個可用方法來設(shè)置ISBRAM內(nèi)容: 使用DCR來訪問32位數(shù)據(jù)寫總線 在FPGA配置時,初始化ISBRAM,PowerPC處理器OCM控制器-OCM控制器的操作,OCM控制器分成兩塊,一塊用于ISOCM接口

48、,另一 塊用于DSOCM接口。圖3.15給出了OCM控制器接口。,PowerPC處理器OCM控制器-OCM DCR控制寄存器,1)在DSOCM中有DSARC和DSCNTL兩個寄存器; 2)在ISOCM中有ISARC,ISCNTL,ISINIT和ISFILL四個寄存器。 在使用DSOCM/ISOCM寄存器前,DSARC/ISARC,DSCNTL/ISCNTL控制寄存器必須被初始化。有兩種方法來初始化這些寄存器: 1) 使用DCR匯編指令(mtdcr,mfdcr)訪問所有六個OCM控制寄存器。 2) 在處理器模塊指定相關(guān)的輸入端口。,PowerPC處理器OCM控制器-OCM DCR控制寄存器,IS

49、INIT/ISFILL寄存器用于指令側(cè)的OCM存儲器的內(nèi) 容初始化和軟件調(diào)試。 1)在Virtex-II pro,在系統(tǒng)初始化時,使用ISINIT和 ISFILL寄存器,允許處理器寫指令到ISOCM存儲器陣列 2)在Virtex-4,使用ISINIT和ISFILL寄存器,允許處 理器寫/讀指令到ISOCM存儲器陣列,PowerPC處理器OCM控制器,2、DSOCM控制器加載/存取操作 DSOCM控制器,在一個加載指令時,接受來自處理 器的一個地址和相關(guān)的控制信號,然后傳遞一個有效的地 址到DSOCM的FPGA結(jié)構(gòu)或BRAM接口。對于存取指令, 來自處理器的有效地址,伴隨著存儲數(shù)據(jù)和相關(guān)的控制信

50、 號。DSOCM控制器在地址最高8位執(zhí)行指令譯碼來確定是 加載/存儲指令。 對于DSOCM連接非存儲器外設(shè),設(shè)計者必須知道 OCM特定的行為:執(zhí)行重排序和旁路存儲數(shù)據(jù)。,PowerPC處理器OCM控制器,3、ISOCM控制器取指操作 在取指周期,ISOCM控制器接受來自處理器的一個 地址和相關(guān)的控制信號,并將有效地址傳遞到ISOCM接 口。在FPGA配置時,存儲在BRAM的指令能加載到 ISOCM??捎玫钠渌椒ㄊ?,使用DCR總線上的ISINIT 和ISFILL寄存器,處理器能加載ISOCM空間。,PowerPC處理器OCM控制器,這兒存在從處理器塊到訪問指令側(cè)存儲器的兩個數(shù)據(jù)通路: 主64位

51、只讀端口用于指令加載。由于該端口為64位寬度,所以一次可以取出兩條指令 第2個32位端口用于存儲器初始化和軟件調(diào)試。 圖3.16(a)給出了Virtex-4 DSOCM接口圖,圖3.16(b)給出了Virtex-II pro DSOCM接口圖。,PowerPC處理器OCM控制器,PowerPC處理器OCM控制器,圖3.17(a) 給出了Virtex-II pro ISOCM接口圖,圖 3.16(b) 給出了Virtex-4 ISOCM接口,PowerPC處理器OCM控制器,圖3.18給出了DSOCM接口和BRAM的連接關(guān)系。,PowerPC處理器OCM控制器-OCM的編程模型,應(yīng)用程序讀/寫訪

52、問OCM控制器內(nèi)的DCR寄存器。一 般使用匯編指令mtdcr和mfdcr來完成對DCR控制寄存器的 訪問。 3.3.3.1 OCM的寄存器 1、DSARC/ISARC寄存器 該寄存器定義了ISOCM和DSOCM存儲器位置的最高8位。,PowerPC處理器OCM控制器-OCM的寄存器,1、DSARC/ISARC寄存器 該寄存器定義了ISOCM和DSOCM存儲器位置的最高 8位。,PowerPC處理器OCM控制器-OCM的寄存器,2、DSCNTL寄存器 表3.14給出該寄存器的含義 3、ISCNTL寄存器 含義和DSCNTL基本一樣。,PowerPC處理器OCM控制器-DCR寫訪問,ISINIT為

53、22位的寄存器,映射到DCR寫數(shù)據(jù)總線D8- D29位。存儲器接口的寫地址為A8-A29,A29用來控制 ISOCMBRAMMODDWRITEEN和 ISOCMBRAMEVENWRITEEN信號。每當ISFILL寄存器 被寫時,32位的指令就寫到了BRAM中。,PowerPC處理器OCM控制器-DCR寫訪問,1、如果讀取ISINIT寄存器 1)對于Virtex-II pro,A8-A29映射到讀數(shù)據(jù)總線的 D0-D21位 2)對于Virtex-4,如果ISENTL設(shè)置為1,A8-A29映射 到讀數(shù)據(jù)總線的D8-D29位。如果ISENTL設(shè)置為1,與 Virtex-II pro一樣 2、如果讀取

54、ISFILL寄存器 1)對于Virtex-II pro,保存在ISFILL寄存器的內(nèi)容將返 回作為DCR讀數(shù)據(jù) 2)對于Virtex-4,如果ISCNTL的第2位設(shè)置為1,被 ISINIT寄存器尋址的ISOCM的真正的內(nèi)容將要被加載,否 則保存在ISFILL寄存器的內(nèi)容將返回作為DCR讀數(shù)據(jù)。,PowerPC處理器APU控制器,輔助處理器單元(Auxiliary Processor Unit,APU)控 制器允許設(shè)計者使用定制的指令來擴展PPC405本身的指 令集。 這些定制的指令集被FPGA結(jié)構(gòu)協(xié)處理器模塊(Fabric Co-processor Module,F(xiàn)CM)執(zhí)行。這使得在特定應(yīng)用

55、程 序函數(shù)和處理器流水之間有更緊密的集成。 圖3.19給出了PPC405,APU控制器和FCM模塊之間的 流水線流程。,PowerPC處理器APU控制器,PowerPC處理器APU控制器,APU的兩個功能: 1)在PowerPC時鐘和FCM接口時鐘之間進行同步; 2)解碼FCM指令,并且通知CPU所需要的CPU資源。 一個浮點單元FPU是FCM的一個很好的例子。在FCM FPU情況下,APU控制器能解碼所有的PowerPC浮點指令。,PowerPC處理器APU控制器-FCM指令處理,APU控制器或者FCM能完成FCM指令解碼。 在使用APU控制器前,必須配置PowerPC MSR寄存 器。表3.15給出了與APU相關(guān)的MSR位域。,PowerPC處理器APU控制器-自治和非自治的指令,1)自治指令 這類型的指令不阻礙PowerPC流水線。它們是典型的 發(fā)射后不管指令,即不需要返回任何狀態(tài)或數(shù)據(jù)給處理器 流水線。比如一個用戶定義的UDI_FCM_Read指令,F(xiàn)CM 寄存器加載GPR寄存器組中其中一個寄存器的值,但不返 回任何值給處理器。,PowerPC處理器APU控制器-自治和非自治的指令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論