亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        LT-SP2匯編器的設(shè)計與實現(xiàn)*

        2012-07-25 03:20:22佘增輝樊曉椏
        微處理機 2012年3期
        關(guān)鍵詞:指令集標(biāo)號體系結(jié)構(gòu)

        佘增輝,樊曉椏,張 萌

        (西北工業(yè)大學(xué)計算機學(xué)院,西安710129)

        1 概述

        在媒體應(yīng)用、信號處理和科學(xué)計算等領(lǐng)域,以密集計算為典型特征的流應(yīng)用[1]正成為微處理器面對的一類主要負載。十多年來,國際學(xué)術(shù)界和工業(yè)界涌現(xiàn)出了多種流體系結(jié)構(gòu)和流處理器,典型的結(jié)構(gòu)有 Imagine、Merrimac、CELL、RAW、TRIPS、STORM系列高性能DSP、NVIDIA的GPU和AMD流處理器等。LT-SP2是一款面向流應(yīng)用的多核流處理器體系結(jié)構(gòu),能對大規(guī)模數(shù)據(jù)進行并行處理。LT-SP2采用兩級流編程模型,流級(Stream)和核心級(Kernel)。Stream級程序主要進行程序控制和資源分配,Kernel級程序則進行高度的并行計算。兩級編程模型能夠有效地把訪存和計算分離開來,保證了計算所需的數(shù)據(jù)帶寬。

        基于LT-SP2采用的兩級編程模型,流應(yīng)用程序的運行需要兩級編譯器[2]提供支持。流應(yīng)用程序采用高級語言編寫,然后經(jīng)過Stream級編譯器和Kernel級編譯器兩級編譯生成目標(biāo)二進制在LTSP2流計算平臺上運行。所論述的匯編器作為Kernel級編譯器的一部分,負責(zé)Kernel級程序的指令調(diào)度和寄存器分配,在LT-SP2的研究中具有重要意義。在航天應(yīng)用領(lǐng)域,空間粒子輻射能夠引起存儲器粒子翻轉(zhuǎn)[3]等錯誤,大大降低了系統(tǒng)的安全性。LT-SP2匯編器通過引入冗余備份和校驗機制,提升了計算系統(tǒng)的容錯性能。首先介紹了LT-SP2的體系結(jié)構(gòu)與指令集,然后進一步討論LTSP2匯編器的設(shè)計與實現(xiàn)問題,最后對實驗結(jié)果進行了分析。

        2 LT-SP2流體系結(jié)構(gòu)與指令集

        2.1 LT-SP2流體系結(jié)構(gòu)

        針對流應(yīng)用具有的豐富并行性、多層次局域性和數(shù)據(jù)訪問可預(yù)知性等特點,LT-SP2體系結(jié)構(gòu)充分挖掘數(shù)據(jù)級并行[4]和優(yōu)化存儲結(jié)構(gòu),提出了一種處理大規(guī)模并行計算問題的高效解決方案。圖1為LT-SP2流體系結(jié)構(gòu)頂層框圖,其主要構(gòu)件可以分成7個部分,分別是主處理器(Host Processor)、片上主存(Main Memory)、I/O控制器(I/O Controller)、流控制器(Stream Controller)、流寄存器文件(Stream Register File,SRF)、特殊寄存器文件和四個短向量計算簇(Short Vector Cluster,SVC)。

        圖1 LT-SP2流體系結(jié)構(gòu)頂層框圖

        主處理器和四個短向量計算簇是LT-SP2流體系架構(gòu)的主要計算部件。主處理器控制流級程序的運行,完成流的定義、流的加載和調(diào)用核心程序。短向量計算簇(SVC)內(nèi)部構(gòu)件包括向量load-store單元(Vector Load/Store Unit,VLSU),向量簡單定點計算部件(Vector Simple Integer Unit,VSIU),向量復(fù)雜定點計算部件(Vector Complex Integer Unit,VCIU),向量置換部件(Vector Permute Unit,VPU),向量浮點計算部件(Vector Floating-Point Unit,VFPU)和向量寄存器文件(Vector Register File,VRF)。四個短向量計算簇以協(xié)處理器的方式工作,通過執(zhí)行核心級程序完成大批量的并行計算任務(wù)。

        為了有效解決流計算中對高數(shù)據(jù)吞吐率的要求,LT-SP2流體系結(jié)構(gòu)定義了軟件參與管理的三級存儲層次,從里到外依次是SVC內(nèi)部向量寄存器VRF、片上流寄存器 SRF、片上主存儲器M.M。在LT-SP2上開發(fā)流應(yīng)用程序時,首先在通用計算機上用高級語言編寫流應(yīng)用程序,然后通過交叉編譯和匯編,生成目標(biāo)平臺上可運行的二進制代碼,最后下載到LT-SP2流計算平臺上運行。

        2.2 LT-SP2指令集分析

        LT-SP2指令集屬于精簡指令集,擁有數(shù)量豐富的運算類指令,而控制轉(zhuǎn)移類指令相對較少。

        LT-SP2采用短向量的SIMD技術(shù),一條指令可以同時對多個數(shù)據(jù)元素執(zhí)行同一種操作,指令集具有高度的數(shù)據(jù)并行性。指令集定義了32個128位寬的向量寄存器(V0~V31)和32個128位寬的標(biāo)量寄存器(R0~R31),所有的數(shù)據(jù)通路和執(zhí)行部件寬度也為128位。根據(jù)數(shù)據(jù)元素位數(shù)的不同,可實現(xiàn)對16個8bit的數(shù)據(jù)元素,8個16bit的數(shù)據(jù)元素,以及4個32bit的數(shù)據(jù)元素執(zhí)行同一操作。

        指令操作數(shù)尋址模式比較簡單,只有寄存器變址尋址和立即數(shù)尋址。LT-SP2指令集是一種典型的Load/Store類指令,數(shù)據(jù)只有通過Load類指令從外部存儲器加載進向量寄存器,通過Store類指令存回外部存儲器。所有的運算類指令都面向向量寄存器進行操作,指令的源操作數(shù)來源于片上的向量寄存器堆或者指令中的立即數(shù),多數(shù)指令有四個操作數(shù),三個源操作數(shù)和一個目的操作數(shù)。SRF組織結(jié)構(gòu)分成了4個獨立的Bank存儲空間,對目標(biāo)端的4個SVC單元獨立編址,對主處理器端統(tǒng)一編址。

        指令二進制編碼采用32位,最低位是校驗位,可以歸納成如圖2所示的三種格式。

        圖2 LT-SP2指令格式

        3 LT-SP2匯編器的設(shè)計

        LT-SP2匯編器的設(shè)計目標(biāo)是實現(xiàn)對LT-SP2短向量指令集的全面支持,允許多種操作數(shù)模式,引入冗余備份和校驗機制來提高系統(tǒng)的容錯性能。

        3.1 匯編器框架設(shè)計

        通過對LT-SP2體系結(jié)構(gòu)以及匯編器功能進行分析,LT-SP2匯編器的主要框架設(shè)計如圖3。匯編器包含常用的功能模塊,如詞法語法分析器[5]、符號表管理、錯誤處理和目標(biāo)代碼生成器等。在語義處理和代碼生成器之間引入操作模式管理,實現(xiàn)對多種操作數(shù)寬度的運算支持。校驗碼產(chǎn)生器用于生成目標(biāo)二進制碼中的校驗位信息。代碼冗余模塊對關(guān)鍵代碼段進行冗余備份,保證關(guān)鍵代碼在校驗出錯的情況下能正確執(zhí)行。

        圖3 LT-SP2匯編器總體框架設(shè)計

        3.2 多種操作數(shù)模式支持

        LT-SP2的寄存器寬度為128位,匯編器支持字節(jié)(8bit)、半字(16bit)和字(32bit)3種操作數(shù)模式。例如add vD,vA,vB實現(xiàn)將vA和vB相應(yīng)位置上的數(shù)據(jù)相加,結(jié)果存至vD的對應(yīng)位置上,vA、vB和vD均為128位寬度。通過匯編器編譯后一條add指令能夠?qū)崿F(xiàn)16個8bit、8個16bit或4個32bit操作數(shù)的并行加法,擴展了指令集功能。

        3.3 冗余備份和校驗機制

        LT-SP2主要面向媒體應(yīng)用、信號處理和科學(xué)計算等領(lǐng)域中的超大規(guī)模計算難題。為了將應(yīng)用范圍擴大到航天或航空領(lǐng)域,需解決存儲器中的粒子翻轉(zhuǎn)問題,保證代碼在平臺上正確執(zhí)行。冗余備份和校驗機制的引入能夠在一定程度上提高系統(tǒng)的安全性。

        LT-SP2匯編器中冗余備份和校驗機制的主要設(shè)計思想是:對匯編源程序中的關(guān)鍵代碼段進行冗余備份,在進行校驗出錯的情況下能恢復(fù)出備份的正確代碼,以達到提高系統(tǒng)整體安全性的目的。

        4 LT-SP2匯編器的實現(xiàn)

        匯編器的實現(xiàn)通常有兩種方式,一種是移植已有的成熟匯編器源碼,另一種是采用編譯程序自動構(gòu)造工具輔助設(shè)計[6]。LT-SP2匯編器采用第二種實現(xiàn)方式,運用編譯程序自動構(gòu)造工具 flex和bison[7]生成部分代碼。

        4.1 匯編器工作流程

        根據(jù)以上設(shè)計,實現(xiàn)的匯編器工作流程如圖4所示。

        詞法和語法分析階段主要識別關(guān)鍵字、特殊寄存器、操作數(shù)和各種符號定義,過濾掉所有的注釋語句和完成源匯編程序代碼行的計數(shù),并進行相應(yīng)的語義處理。labelNode鏈表存儲新定義的標(biāo)號,refNode鏈表存儲未提前定義的標(biāo)號引用。遇到新標(biāo)號定義時,掃描labelNode表,若已經(jīng)定義,表示標(biāo)號重復(fù)定義錯誤,否則將新標(biāo)號加入labelNode表,并掃描refNode表回填先前引用,回填結(jié)束后刪除該引用節(jié)點。遇到新引用標(biāo)號時,掃描labelNode表,若已提前定義,則直接進行代碼生成,否則加入refNode表,待標(biāo)號定義時回填。在目標(biāo)代碼生成之前進行冗余備份與校驗碼生成。

        圖4 LT-SP2匯編器工作流程

        4.2 冗余備份和校驗機制的實現(xiàn)

        冗余備份和校驗機制的具體實現(xiàn)方式是采用雙度冗余與奇偶校驗相結(jié)合,其中雙度冗余中只對關(guān)鍵代碼段實行隔行備份,實現(xiàn)原理如圖5所示。

        圖5 冗余和校驗機制實現(xiàn)

        首先判斷程序段是否為關(guān)鍵代碼,是關(guān)鍵代碼則進行奇偶校驗。若存儲器中的指令出現(xiàn)粒子翻轉(zhuǎn)則出現(xiàn)校驗錯誤,啟用冗余恢復(fù)機制,執(zhí)行PC+1所指向的備份指令;若校驗正確則執(zhí)行當(dāng)前代碼,將PC+2指向下一條執(zhí)行指令。PC為程序計數(shù)器[8],存放現(xiàn)行指令的地址。匯編器在進行匯編時對關(guān)鍵代碼段進行兩次代碼生成,并產(chǎn)生帶有校驗位的二進制碼。

        4.3 錯誤處理

        匯編器應(yīng)具有較強的查錯和改錯能力,并能以簡明的形式向用戶報告錯誤的性質(zhì)以及出現(xiàn)的具體位置。LT-SP2的錯誤處理過程被嵌入到匯編程序處理的各個階段,能正確報告詞法、語法和語義錯誤等。當(dāng)識別詞法和語法錯誤時由詞法分析器和語法分析器報告錯誤類型及錯誤位置。語義錯誤的處理在語法自動翻譯時進行,識別操作數(shù)超出范圍等語義上的錯誤。在匯編程序處理的末尾階段掃描ref-Node表,如鏈表非空,表示有引用節(jié)點未定義,報告引用標(biāo)號未定義錯誤。

        5 實驗結(jié)果與分析

        根據(jù)以上設(shè)計,在LT-SP2流計算平臺下,最終實現(xiàn)了一款全面支持LT-SP2指令集的核級匯編器。實驗設(shè)計分為兩個部分,分別測試匯編器的功能正確性和對系統(tǒng)容錯能力的支持程度。首先,按照流計算兩級編程模型,在平臺上流化了一批并行計算程序,例如FIR濾波、拉普拉斯邊緣檢測、矩陣乘法和向量點積等。實驗結(jié)果顯示所編寫的核心級源程序經(jīng)過LT-SP2匯編器匯編后下載到目標(biāo)平臺上能正確運行,驗證了匯編器功能的正確性。其次,通過對關(guān)鍵代碼段的執(zhí)行結(jié)果統(tǒng)計,系統(tǒng)能夠有效地對奇偶校驗出錯的代碼行進行恢復(fù),體現(xiàn)了匯編器的健壯性。

        6 結(jié)束語

        針對LT-SP2流計算體系結(jié)構(gòu),討論了流處理器設(shè)計中LT-SP2匯編器的構(gòu)造原理。此匯編器屬于交叉匯編器,匯編過程在宿主機上進行,產(chǎn)生的機器碼在LT-SP2流計算平臺上運行。匯編器的研究簡化了流處理器測試程序的編制,加速了流應(yīng)用程序的開發(fā)進度。經(jīng)測試表明,LT-SP2匯編器功能正確,冗余備份和校驗機制的引入提高了系統(tǒng)的整體容錯性能。下一步的工作重點將是對匯編器進行功能改進,優(yōu)化代碼執(zhí)行的效率,以及采用高級的編碼校驗機制,進一步提高系統(tǒng)的容錯性能。所論述的LT-SP2匯編器設(shè)計方法對流處理器研究中核級匯編器的研發(fā)具有重要參考價值。

        [1] Scott Rixner.Stream Processor Architecture[M].Boston:Kluwer Academic Publishers,2001.

        [2] 張春元,文梅,伍楠,等.流體系結(jié)構(gòu)技術(shù)發(fā)展探討[J].國防科技大學(xué)學(xué)報,2009,31(5):1-5.

        [3] 辛明瑞.面向空間應(yīng)用的容錯RISC處理器體系結(jié)構(gòu)研究[D].西安:西北工業(yè)大學(xué),2006.

        [4] MPC7410/MPC7400 RISC Microprocessor User’s Manual[M].Freescale Semiconductor,Inc,2002.

        [5] Alfred V Aho,Monica S Lam,Ravi Sethi,等.編譯原理:Principles,Techniques,and Tools(第2版)[M].北京:機械工業(yè)出版社,2009.

        [6] 陳惠斌,劉春林,胡定磊.一種快速構(gòu)造匯編器的方法及其應(yīng)用[J].計算機工程與科學(xué),2006,28(6):131-134.

        [7] John Levine.Flex&bison(影印版)[M].南京:東南大學(xué),2010.

        [8] Bryant R E,O’Hallaron D R,龔奕利,雷迎春譯.深入理解計算機系統(tǒng)(第2版)[M].北京:機械工業(yè)出版社,2010.

        猜你喜歡
        指令集標(biāo)號體系結(jié)構(gòu)
        3DNow指令集被Linux淘汰
        電腦報(2021年49期)2021-01-06 18:36:55
        非連通圖2D3,4∪G的優(yōu)美標(biāo)號
        基于粒計算的武器裝備體系結(jié)構(gòu)超網(wǎng)絡(luò)模型
        作戰(zhàn)體系結(jié)構(gòu)穩(wěn)定性突變分析
        實時微測量系統(tǒng)指令集及解析算法
        基于DODAF的裝備體系結(jié)構(gòu)設(shè)計
        基于云計算的航天器控制系統(tǒng)自組織體系結(jié)構(gòu)
        非連通圖D3,4∪G的優(yōu)美標(biāo)號
        非連通圖(P1∨Pm)∪C4n∪P2的優(yōu)美性
        什么是AMD64
        粗大猛烈进出高潮视频大全| 亚欧视频无码在线观看| 国产成人精品a视频一区| 色又黄又爽18禁免费网站现观看| 一本色道久久88加勒比综合| 口爆吞精美臀国产在线| 精品女人一区二区三区| 亚洲国产精品成人一区二区三区 | 日韩精品一区二区亚洲观看av| 精品久久人妻av中文字幕| 久久精品一区一区二区乱码| 精品国产一区二区三区av新片| 国产一区二区视频免费| 精品高朝久久久久9999| 国产免费牲交视频| 免费人成年激情视频在线观看 | 中文字幕日本一区二区在线观看 | 亚洲天堂免费av在线观看| 中文字幕精品亚洲二区| 日韩精品一区二区三区中文9| 欧美成人a视频免费专区| 天天综合色中文字幕在线视频| 一亚洲一区二区中文字幕| 一区二区三区精彩视频在线观看| 又色又爽又黄的视频网站| 看全色黄大黄大色免费久久| 免费在线观看视频专区| 日韩av在线亚洲女同| 一本色道无码不卡在线观看| 少妇仑乱a毛片| 久久久久99精品成人片试看| 久久国产精品二国产精品| 美女扒开内裤让男生桶| 国产区精品| 亚色中文字幕| 国产av一区仑乱久久精品| 日本久久久精品免费免费理论| 日本一区二区视频高清| 午夜被窝精品国产亚洲av香蕉| 精品一区二区在线观看免费视频| 国产一区二区三区亚洲|