<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 處理器系列之PowerPC指令集

處理器系列之PowerPC指令集

作者: 時(shí)間:2018-01-12 來(lái)源:網(wǎng)絡(luò ) 收藏

  對  體系結構家族樹(shù)的所有分支來(lái)說(shuō), 體系結構和應用級編程模型是通用的。

本文引用地址:http://dyxdggzs.com/article/201801/374368.htm

   體系結構是一種精減指令集計算機(Reduced Instruction Set Computer,RISC)體系結構,定義了 200 多條指令。PowerPC 之所以是 RISC,原因在于大部分指令在一個(gè)單一的周期內執行,而且通常只執行一個(gè)單一的操作(比如將內存加載到寄存器,或者將寄存器數據存儲到內存)。

  PowerPC 體系結構分為三個(gè)級別(或者說(shuō)是“book”)。通過(guò)對體系結構以這種方式進(jìn)行劃分,為實(shí)現可以選擇價(jià)格/性能比平衡的復雜性級別留出了空間,同時(shí)還保持了實(shí)現間的代碼兼容性。

  Book I. 用戶(hù)指令集體系結構

  定義了通用于所有 PowerPC 實(shí)現的用戶(hù)指令和寄存器的基本集合。這些是非特權指令,為大多數程序所用。

  Book II. 虛擬環(huán)境體系結構

  定義了常規應用軟件要求之外的附加的用戶(hù)級功能,比如高速緩存管理、原子操作和用戶(hù)級計時(shí)器支持。雖然這些操作也是非特權的,但是程序通常還是通過(guò)操作系統調用來(lái)訪(fǎng)問(wèn)這些函數。

  Book III. 操作環(huán)境體系結構

  定義了操作系統級需要和使用的操作。其中包括用于內存管理、異常向量處理、特權寄存器訪(fǎng)問(wèn)、特權計時(shí)器訪(fǎng)問(wèn)的函數。Book III 中詳細說(shuō)明了對各種系統服務(wù)和功能的直接硬件支持。

  從最初的 PowerPC 體系結構的開(kāi)發(fā)開(kāi)始,就根據特定的市場(chǎng)需求而發(fā)生分支。當前,PowerPC 體系結構家族樹(shù)有兩個(gè)活躍的分支,分別是PowerPC AS體系結構和 PowerPC Book E體系結構。PowerPC AS 體系結構是 IBM 為了滿(mǎn)足它的 eServer pSeries UNIX 和 Linux 服務(wù)器產(chǎn)品家族及它的 eServer iSeries 企業(yè)服務(wù)器產(chǎn)品家族的具體需要而定義的(參閱 參考資料中的鏈接以獲得更多資料)。PowerPC Book E 體系結構,也被稱(chēng)為 Book E,是 IBM 和 Motorola 為滿(mǎn)足嵌入式市場(chǎng)的特定需求而合作推出的。PowerPC AS 所采用的原始 PowerPC 體系結構與 Book E 所采用的擴展之間的主要區別大部分集中于 Book III 區域中。

  在這些衍生的體系結構中還有一些適當的應用級擴展,這些擴展大部分與具體應用的場(chǎng)合相關(guān),但是 PowerPC AS 和 PowerPC Book E 共享在 PowerPC 體系結構的 Book I 中定義的基本指令集。雖然三種體系結構主要在操作系統級別上表現出不同,但它們在很大程度上具備應用級的兼容性。

  PowerPC 最初定義了同時(shí)對 32 位和 64 位實(shí)現的支持,可以讓 32 位的應用程序運行于 64 位系統之上。在 IBM pSeries 和 iSeries 服務(wù)器上使用的 PowerPC AS 系統現在只提供體系結構的 64 位實(shí)現,新的 64 位應用程序和遺留的 32 位的應用程序可以運行于同一個(gè)系統之上。PowerPC Book E 體系結構同時(shí)有 32 位實(shí)現和 64 位實(shí)現,64 位實(shí)現也完全兼容 32 位 PowerPC 應用程序。這兩種體系結構都具備與 PowerPC Book I 指令和寄存器的完全兼容性,同時(shí)提供了對內存管理、異常和中斷、計時(shí)器支持和調試支持等各方面的系統級擴展。

  POWER 的自然歷史

  POWER 和 PowerPC 微有著(zhù)漫長(cháng)而傳奇的歷史,最初是 IBM 801,其后是 POWER、RS64 和 PowerPC 芯片系列(這些并不是線(xiàn)性發(fā)展的)。每個(gè)芯片家族都對計算世界有自己強有力的影響,從游戲控制臺到主機,從數字手表到高端工作站,到處都得到了應用。欲了解全部歷史,請閱讀“ 人類(lèi)的 POWER:IBM 的芯片制造歷史”。

  最初的 PowerPC 體系結構仍是 PowerPC AS 和 PowerPC Book E 的主要組成部分,并仍保持了其完整性,表現出了令人信服的應用級兼容性。

  PowerPC 應用程序編程模型

  當用到不只一種類(lèi)型的 PowerPC 時(shí),開(kāi)發(fā)人員應時(shí)刻謹記處理內存的方式存在一些差異。

  PowerPC 存儲模型

  PowerPC 體系結構本身支持字節(8 位)、半字(16 位)、字(32 位) 和雙字(64 位) 數據類(lèi)型。

  PowerPC 實(shí)現還可以處理最長(cháng) 128 字節的多字節字符串操作。32 位 PowerPC 實(shí)現支持 4-gigabyte 的有效地址空間,而 64 位 PowerPC 實(shí)現支持 16-exabyte 的有效地址空間。所有存儲都可以字節尋址。

  對于錯位數據訪(fǎng)問(wèn)來(lái)說(shuō),不同的產(chǎn)品家族提供了不同的校準支持,有一些是以處理異常的方式,其他的是通過(guò)硬件中的一步或者多步操作來(lái)處理訪(fǎng)問(wèn)。

  最高位字節在最前(Big-endian)還是最低位字節在最前(little-endian)?

  PowerPC、PowerPC AS 以及早期的 IBM PowerPC 4xx 家族大部分是字節排列順序最高位在最前的機器,這就意味著(zhù)對半字、字以及雙字訪(fǎng)問(wèn)來(lái)說(shuō),最重要的字節(most-significant byte,MSB)位于最低的地址。各實(shí)現對最低位在最前的字節排列順序方式的支持不同。PowerPC 和 PowerPC AS 提供了最小限度的支持,而 4xx 家族為最低位字節在最前的存儲提供了更為健壯的支持。Book E 是字節排列順序無(wú)關(guān)的,因為 Book E 體系結構完全支持這兩種訪(fǎng)問(wèn)方法。

  PowerPC 應用級寄存器

  PowerPC 的應用級寄存器分為三類(lèi):通用寄存器(general-purpose register,GPR)、浮點(diǎn)寄存器(floating-point register [FPR] 和浮點(diǎn)狀態(tài)和控制寄存器 [Floating-Point Status and Control Register,FPSCR])和專(zhuān)用寄存器(special-purpose register,SPR)。讓我們來(lái)分別看一下這三類(lèi)寄存器。

  通用寄存器(GPR)

  用戶(hù)指令集體系結構(Book I)規定,所有實(shí)現都有 32 個(gè) GPR(從GPR0 到 GPR31)。GPR 是所有整數操作的源和目的,也是所有加載/存儲操作的地址操作數的源。GPR 還提供對 SPR 的訪(fǎng)問(wèn)。所有 GRP 都是可用的,只有一種情況例外:在某些指令中,GPR0 只是代表數值 0,而不會(huì )去查找 GPR0 的內容。

  浮點(diǎn)寄存器(FPR)

  Book I 規定,所有實(shí)現都有 32 個(gè) FPR(從 FPR0 到 FPR31)。FPR 是所有浮點(diǎn)操作的源和目的操作數,可以存放 32 位和 64 位的有符號和無(wú)符號整數,以及單精度和雙精度浮點(diǎn)數。FPR 還提供對 FPSCR 的訪(fǎng)問(wèn)。

  注意,嵌入式微處理器實(shí)現時(shí)經(jīng)常不提供對浮點(diǎn)指令集的直接硬件支持,或者只是提供一個(gè)附加浮點(diǎn)硬件的接口。很多嵌入式應用程序很少或者根本不需要浮點(diǎn)算法,而當需要的時(shí)候,對 PowerPC 浮點(diǎn)指令執行進(jìn)行軟件仿真就足夠了。在嵌入式微處理器中,硬件中省去浮點(diǎn)(支持)而為實(shí)現帶來(lái)的芯片面積和功率的減少是至關(guān)重要的。

  浮點(diǎn)狀態(tài)和控制寄存器(FPSCR)捕獲浮點(diǎn)操作的狀態(tài)和異常結果,FPSCR 還具有控制位,以支持特定的異常類(lèi)型和對四種舍入模式之一的選擇。對 FPSCR 的訪(fǎng)問(wèn)要通過(guò) FPR。

  專(zhuān)用寄存器(SPR)

  SPR 給出處理器核心內部資源的狀態(tài)并對其進(jìn)行控制。不需要系統服務(wù)的支持就可以由應用程序讀寫(xiě)的 SPR 包括計數寄存器(Count Register)、鏈接寄存器(Link Register)和整型異常寄存器(Integer Exception Register)。需要系統服務(wù)的支持才可以由應用程序讀寫(xiě)的 SPR 包括時(shí)基(Time Base)和其他各種可能支持的計時(shí)器。

  指令地址寄存器(Instruction Address Register,IAR)

  這個(gè)寄存器就是程序員們所熟知的 程序計數器或者 指令指針。它是當前指令的地址。這實(shí)際上是一個(gè)偽寄存器,用戶(hù)只能通過(guò)“branch and link”指令才能直接使用這個(gè)寄存器。IAR 主要是由調試器使用,顯示將要被執行的下一條指令。

  鏈接寄存器(Link Register,LR)

  這個(gè)寄存器存放的是函數調用結束處的返回地址。某些轉移指令可以自動(dòng)加載 LR 到轉移之后的指令。每個(gè)轉移指令編碼中都有一個(gè) LK 位。如果 LK 為 1,轉移指令就會(huì )將程序計數器移為 LR 中的地址。而且,條件轉移指令 bclr 轉移到 LR 中的值。

  定點(diǎn)異常寄存器(Fixed-Point Exception Register,XER)

  這個(gè)寄存器存放整數運算操作的進(jìn)位以及溢出信息。它還存放某些整數運算操作的進(jìn)位輸入以及加載和存儲指令( lswx 和 stswx )中傳輸的字節數。

  計數寄存器(Count Register,CTR)

  這個(gè)寄存器中存放了一個(gè)循環(huán)計數器,會(huì )隨特定轉移操作而遞減。條件轉移指令 bcctr 轉移到 CTR 中的值。

  條件寄存器(Condition Register,CR)

  這個(gè)寄存器分為八個(gè)字段,每個(gè)字段 4 位。很多 PowerPC 指令將指令的第 31 位編碼為 Rc 位,有一些指令要求 Rc 值等于 1。當 Rc 等于 1 且進(jìn)行整數操作時(shí),CR 字段 0 被設置來(lái)表示指令操作的結果:相等(Equal, EQ),大于(Greater Than, GT),小于(Less Than, LT),以及和溢出(Summary Overflow, SO)。當 Rc 等于 1 且進(jìn)行浮點(diǎn)操作時(shí),CR 字段 1 被設置用來(lái)表示 FPSCR 中異常狀態(tài)位的狀態(tài):FX、FEX、VX 和 OX。任何一個(gè) CR 字段都可以是整數或者浮點(diǎn)比較指令的目標。CR 字段 0 還被設置用來(lái)表示條件存儲指令( stwcx 或者stdcx ) 的結果。還有一組指令可以操縱特定的 CR 位、特定的 CR 字段或者整個(gè) CR,通常為了測試而將幾個(gè)條件組合到同一個(gè)位中。

  處理器版本寄存器(Processor Version Register,PVR)

  PVR 是一個(gè) 32 位只讀寄存器,標識處理器的版本和修訂級別。處理器版本由 PowerPC 體系結構過(guò)程分配。修訂級別由實(shí)現定義。需要有特權才能訪(fǎng)問(wèn) PVR,所以應用程序只能在操作系統函數的幫助下才可以確定處理器版本。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: 處理器 PowerPC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>