<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í)間:2011-05-06 來(lái)源:電子產(chǎn)品世界 收藏

  汽車(chē)多媒體系統面臨著(zhù)嚴峻的技術(shù)挑戰:如何在漫長(cháng)的整個(gè)產(chǎn)品壽命周期中實(shí)現系統的可升級性?轎車(chē)和卡車(chē)的壽命通常都在十年以上。這就使汽車(chē)多媒體系統難以跟上消費電子產(chǎn)品和移動(dòng)通信標準迅速變化的步伐。在大多數情況下,只更新多媒體軟件是不夠的,甚至是不可能的。

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

  許多應用,尤其是多媒體編解碼器,還需要提高計算性能。然而,為將來(lái)的使用而設計具有“后備”計算能力的系統,既不經(jīng)濟,在技術(shù)上也不可行,因為許多技術(shù)變化是根本無(wú)法預見(jiàn)的。

  一種解決方案是以某種方式隨軟件一起升級計算平臺,使系統經(jīng)過(guò)升級能夠為附加的軟件處理負荷提供足夠的計算能力。您如果使用 ® Virtex®-5 FXT器件構建系統,就可以為處理器的輔助處理單元 (APU) 增加專(zhuān)用的計算操作,從而為設計賦予更高的計算能力。

  Missing Link電子公司致力于打造可重新配置的平臺,以便將經(jīng)久耐用的汽車(chē)和航天電子設備與迅速變化的消費和移動(dòng)通信市場(chǎng)掛起勾來(lái)。我們相信,在 Virtex-5 FXT器件中,處理器的APU是塊寶。它為嵌入式系統設計人員提供的計算能力,在傳統上只有自行定制ASSP器件的“大戶(hù)”才有幸享用。既然賽靈思用戶(hù)現在擁有這般可用資源,我們認為每個(gè)人都應該利用APU來(lái)優(yōu)化自己的設計。

  通過(guò)APU擴展指令集的基本原理設計人員想優(yōu)化嵌入式系統時(shí),通常是設法擴展處于設計核心位置的微處理器的指令集,以此來(lái)達到優(yōu)化目的。從傳統上講這是最佳方案,因為嵌入式系統的復雜性在于設計的軟件部分。您也可以增加專(zhuān)用的硬件模塊,直截了當地為設計賦予新功能。

  不過(guò),您可能會(huì )發(fā)現,增加指令的方法在彌補硬件變化方面具有某些顯著(zhù)的優(yōu)越性,并且在一定程度上易于為設計人員所實(shí)現。例如,通過(guò)擴展指令,您可以更精細地優(yōu)化設計。另外,擴展指令集通常不會(huì )干擾存儲器訪(fǎng)問(wèn),因此具有優(yōu)化系統整體性能的可能性。盡管有個(gè)人、公司和學(xué)術(shù)研究機構發(fā)表過(guò)有關(guān)論著(zhù),然而對于不熟悉這種技法的任何人來(lái)說(shuō),擴展指令集都可能看似一種“魔術(shù)”。但實(shí)際上,這并非那么復雜。請試想您如何通過(guò)APU接口向處理器的指令集增加某些相當簡(jiǎn)單的指令,以此來(lái)優(yōu)化Virtex-5 FXT設計。

  一般而言,要擴展嵌入式微處理器的指令集,您需要明白您是要進(jìn)行軟硬件兩方面修改。首先,您要為系統增加硬件模塊,以完成專(zhuān)門(mén)的計算。這些計算是在 FPGA 結構中并行執行,而不是在軟件中依次執行。用賽靈思公司的話(huà)來(lái)說(shuō),這些硬件模塊稱(chēng)為“結構協(xié)處理模塊”,即FCM。您可以用VHDL或Verilog語(yǔ)言編寫(xiě)這些FCM,它們將在Virtex-5 FXT器件的FPGA結構中終結。您可以將一個(gè)或多個(gè)FCM連接到PowerPC處理器的APU接口。

  下一步是調整軟件代碼,以便啟用增加的指令。您有兩種可選方法(假定您在用C語(yǔ)言編程)。第一種方法是修改C編譯器,令其自動(dòng)利用附加指令可施展功效的情形。我們把這種方法留給學(xué)術(shù)界和致力于A(yíng)SSP的某些人。

  第二種方法較為簡(jiǎn)潔,不必觸及編譯器,而是使用所謂編譯器認識的函數。也就是說(shuō),我們要在軟件代碼中手動(dòng)調用一個(gè)能使用這些附加指令的C宏或C函數。

  無(wú)論使用哪種方法,我們都必須調整匯編器,使其支持新指令。幸好,賽靈思公司在嵌入式開(kāi)發(fā)套件 (EDK) 中包括了PowerPC的編譯器和匯編器,它們已經(jīng)支持這些附加指令。PowerPC遇到這些新指令時(shí),迅速察覺(jué)它們不是其原指令集的組成部分,進(jìn)而將它們交給APU予以處理。賽靈思公司已將APU配置成解譯這些指令,為相應的FCM提供運算元數據,然后讓FCM執行計算。

  如果這一步妥善完成,則軟件在運行時(shí)需要的指令就會(huì )較少。因此,我們無(wú)需提高CPU的時(shí)鐘頻率(這可能造成其他麻煩),就可以從設計中獲得更多計算能力。

  之所以使用APU,而不是通過(guò)PLB總線(xiàn)將硬件模塊連接到微處理器,主要是因為PowerPC處理器與APU/FCM之間的較大帶寬和較短延遲。另一優(yōu)越性在于,系統需要通過(guò)PLB總線(xiàn)來(lái)快速訪(fǎng)問(wèn)外設,而APU不依賴(lài)CPU對外設的接口,因此不會(huì )增加PLB總線(xiàn)的負擔。

  APU為PowerPC與FCM之間提供多種接口方式。我們可以使用某種“加載存儲指令”法,也可以使用“用戶(hù)定義指令”(UDI) 法。賽靈思公司 的《用戶(hù)指南》UG200 的第12章詳細介紹了這些技法。

  我們在示例中將使用UDI法,因為這種方法可以最大限度地控制系統,從而實(shí)現最高性能。

  示例設計描述

  我們用增加一條UDI的方法擴展了PowerPC處理器的指令集,以執行復數乘法運算,這對于許多多媒體解碼系統來(lái)說(shuō)是一種簡(jiǎn)便易行的優(yōu)化方法。EDK圖顯示了總體設計,包括如何通過(guò)APU將復數乘法器的FCM連接到PowerPC處理器,以及軟件如何運用FCM。

  我們選擇復數乘法作為示例,是因其在流式媒體數據解碼方面具有廣泛的適用性,也是因其能夠明確說(shuō)明如何通過(guò)增加專(zhuān)用指令來(lái)利用 APU。

 


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

關(guān)鍵詞: Xilinx 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>