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

        ?

        基于多核ARM體系結(jié)構(gòu)的基礎函數(shù)優(yōu)化方法

        2018-05-30 01:26:13賀愛香顧乃杰蘇俊杰
        計算機工程 2018年5期
        關(guān)鍵詞:字符串體系結(jié)構(gòu)寄存器

        賀愛香,顧乃杰,蘇俊杰

        (1.中國科學技術(shù)大學 計算機科學與技術(shù)學院,合肥 230027; 2.安徽新華學院 信息工程學院,合肥 230088)

        0 概述

        隨著嵌入式系統(tǒng)的發(fā)展,多核ARM微處理器[1]因其體積小、功耗低、成本低、性能高等特點很快占領了移動通信市場領域。Android[2]是運行于ARM架構(gòu)處理器之上的一款開源操作系統(tǒng)軟件,據(jù)市場研究公司Gartner 2016年上半年最新統(tǒng)計數(shù)據(jù)顯示,Android市場占有率為近九成[3]。Bionic[4]是Android系統(tǒng)中以C語言構(gòu)建的基礎函數(shù)庫,為系統(tǒng)提供系統(tǒng)接口和擴展功能函數(shù)。在處理器的性能得到提高的情況下,程序充分利用處理器的性能,不但可以減少計算資源的浪費,還可以提高程序的響應速度,因此對Bionic庫基礎函數(shù)進行優(yōu)化對提升ARM平臺性能與用戶體驗有很大作用[5]。針對ARM體系結(jié)構(gòu)進行優(yōu)化是非常重要的工作,很多學者和研究人員利用各種優(yōu)化方法積極探索該問題。為了高效合理地使用寄存器和存儲器,提高程序的執(zhí)行效率,文獻[6]對ARM體系結(jié)構(gòu)提出了減小漢明距離、使用位操作指令、正確選擇流程控制語句和壓縮代碼密度等優(yōu)化方法。文獻[7]基于ARM嵌入式系統(tǒng)充分利用軟硬件資源,提出了循環(huán)展開、避免使用除法、利用條件執(zhí)行等C程序優(yōu)化方法。文獻[8]使用128位訪存指令、循環(huán)展開等方法,結(jié)合龍芯3A處理器將BLAS庫性能提高了6倍。文獻[9]對Bionic庫中的熱點函數(shù)進行了匯編優(yōu)化,使得Android系統(tǒng)整體性能得到了提升。

        基于以上研究,本文在對Bionic庫中字符串和內(nèi)存處理函數(shù)進行分析的同時,結(jié)合多核ARMv8體系結(jié)構(gòu)特征[10],提出不同的優(yōu)化方案,包括整字處理[11]、循環(huán)展開[12]、特殊指令[13]等優(yōu)化方法,使得Bionic庫中常用基礎函數(shù)的性能在ARM Cortex-A72平臺上有不同程度的提升。

        1 背景知識

        1.1 ARM體系結(jié)構(gòu)

        ARM是一類微處理器的統(tǒng)稱[14],基于ARM內(nèi)核的芯片統(tǒng)稱為ARM芯片。ARM體系結(jié)構(gòu)采用精簡指令集,具有定長指令、大量的寄存器、獨特的裝載/保存(Load/Store)等特點[15]。ARM公司從1991年推出ARM1處理器到現(xiàn)在,其體系結(jié)構(gòu)已經(jīng)從ARMv1發(fā)展到現(xiàn)在的ARMv8,每一個體系架構(gòu)版本都定義了一套指令集和相應的功能框架,并且每個結(jié)構(gòu)體系向后兼容,圖1為ARMv5至ARMv8的架構(gòu)比較[16]?;贏RMv8的體系結(jié)構(gòu)產(chǎn)品不僅主導了移動通信領域,而且在無人機控制系統(tǒng)[17]、汽車導航[18]、智能家居[19]等智能硬件控制系統(tǒng)中應用廣泛,本文是基于ARMv8最新架構(gòu)的研究。

        圖1 ARMv5至ARMv8架構(gòu)比較

        ARMv8提供一種更加清晰的架構(gòu),同時考慮到將來的發(fā)展趨勢采用一種全新的架構(gòu)來實現(xiàn),是目前最新的架構(gòu)[20]。ARMv8-A系列面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應用。ARMv8的架構(gòu)繼承以往ARMv7與之前處理器技術(shù)的基礎,除了支持現(xiàn)有的16 bit/32 bit的Thumb2指令集外,也向前兼容現(xiàn)有的A32(ARM 32 bit)指令集和NEON指令集,并擴充了現(xiàn)有的A32(ARM 32 bit)和T32(Thumb2 32 bit)指令集。ARMv8采用基于64 bit的AArch64架構(gòu),新增了A64(ARM 64 bit)指令集,解決了ARMv7架構(gòu)遺留的虛擬地址問題,定義了AArch64和AArch32兩套運行環(huán)境(稱作Execution state),分別執(zhí)行64 bit和32 bit指令集,軟件可以在需要的時候,切換Execution state。AArch64架構(gòu)使用新的概念(exception level),重新解釋了processor mode、privilege level等概念。在ARMv7安全擴展的基礎上,新增了CRYPTO(加密)模塊,支持安全相關(guān)的應用需求[21]。在ARMv7虛擬化擴展的基礎上,提供完整的虛擬化框架,從硬件上支持虛擬化[22]。其架構(gòu)框圖如圖2所示。

        圖2 ARM Cortex-A72處理器架構(gòu)

        1.2 NEON技術(shù)

        現(xiàn)代計算機2個大主流體系結(jié)構(gòu)為X86和ARM,為了高效利用硬件資源,均支持單指令多數(shù)據(jù)流 (Single Instruction Multiple Datastream,SIMD)技術(shù)[23]。NEON是ARM Cortex-A系列處理器新增的一個運算部件,使得每次運算可達到128位,擴展了SIMD,能更快速地處理多媒體數(shù)據(jù),使用戶體驗更流暢[24]。NEON具有128位寬的運算部件,可減少對內(nèi)存的訪問,從而提高數(shù)據(jù)處理速度。

        NEON指令可批處理SIMD;通過對齊和非對齊數(shù)據(jù)訪問,寄存器被視為同一數(shù)據(jù)類型的元素的矢量;數(shù)據(jù)類型可為8 位、16 位、32 位、64位有/無符號整型、32位單精度和64位雙精度浮點型;指令在所有通道中執(zhí)行同一操作。如圖3所示,顯示了UADD16 Q0,Q1,Q2指令操作,實現(xiàn)了對寄存器Q1和Q2中8路16 bit的并行相加,并將最后結(jié)果保存到R0中。

        圖3 8路16 bit整數(shù)加法運算

        1.3 Bionic

        Bionic是Google公司專為Android系統(tǒng)開發(fā)的基礎函數(shù)庫,提供C/C++標準庫功能。GNU/Linux以及其他類Unix系統(tǒng)的基礎函數(shù)庫最常用的就是Glibc。與Glibc相比,Bionic是輕量級C庫,大小僅為200 KB,是Glibc體積的一半,這意味著Bionic占用低內(nèi)存[25]。

        Bionic庫中包含字符串與內(nèi)存處理函數(shù)、數(shù)學計算函數(shù)、排序與查找、字符串加密等基礎工具型函數(shù)。本文通過大量實驗,著重優(yōu)化Bionic 庫中的memset、strcmp、strncmp、strcpy、strncpy、memcpy、memmove、strlen、strcat、strdup等函數(shù)。

        2 函數(shù)優(yōu)化

        針對多核ARMv8體系結(jié)構(gòu),考慮使用整字處理(合并字節(jié))、特殊指令、循環(huán)展開、指令調(diào)度等方法進行優(yōu)化。本節(jié)將探討如何使用這些優(yōu)化技術(shù),來實現(xiàn)Bionic庫中熱點函數(shù)的優(yōu)化。

        2.1 函數(shù)介紹

        在Bionic庫函數(shù)中,字符串是通過一段連續(xù)的內(nèi)存來表示,所以字符串的操作與內(nèi)存操作基本一致。兩者的區(qū)別在于字符串是用空字符’

        少妇人妻在线伊人春色| 亚洲性无码av在线| 午夜视频网址| 成年女人18毛片观看| 亚洲中文字幕av天堂自拍| 亚洲国产综合在线亚洲区亚洲av| 在线播放免费人成毛片乱码| 国产免费午夜a无码v视频| 国产h视频在线观看网站免费| 亚洲熟妇av一区二区三区hd| 熟女一区二区中文字幕| 亚洲中国精品精华液| 一本色道久久99一综合| 国产亚洲欧美精品一区| 免费看黄片视频在线观看| 亚洲自偷精品视频自拍| 欧洲日本一线二线三线区本庄铃| 69av视频在线| 亚洲精品在线一区二区| 亚洲av福利院在线观看 | 中文字幕精品一区二区三区| 国产精品无码久久久久久| 欧美日韩色| 国产精品二区三区在线观看| 久久精品国产99久久久| 中文字幕爆乳julia女教师| 91精品综合久久久久m3u8 | 99久久精品人妻少妇一| 日本精品无码一区二区三区久久久 | 拍摄av现场失控高潮数次| 亚洲黄片久久| 亚州终合人妖一区二区三区| 日本高清视频www| 日本手机在线| 人妻精品人妻一区二区三区四五 | 国产黑丝美腿在线观看| 免费观看黄网站在线播放| 亚洲AV乱码毛片在线播放| 天堂网日韩av在线播放一区| 国产熟妇按摩3p高潮大叫| 91爱爱视频|