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

        ?

        多級共享緩存性能和安全性聯(lián)合改進(jìn)

        2022-11-23 11:31:04
        關(guān)鍵詞:基本塊線程內(nèi)存

        劉 洋

        (池州職業(yè)技術(shù)學(xué)院 教育系,安徽 池州 247000)

        高密度單核處理器因性能和功率問題而發(fā)展受限[1],為提高整體性能,多處理器系統(tǒng)芯片越來越多地用于電腦和服務(wù)器平臺[2]。典型的多核處理器系統(tǒng)在一個域的處理核心上并行運(yùn)行線程(也稱為線程級并行[3-4]),可能會引發(fā)對共享資源的競爭,從而降低芯片的性能[5-6]。在所有類型的資源競爭中,緩存競爭已被證明對整體芯片性能的影響最不利[7]。緩存競爭導(dǎo)致的不良結(jié)果主要是1個線程驅(qū)逐了屬于其他共同運(yùn)行線程的活動數(shù)據(jù)塊[8]。緩存競爭會增加額外的內(nèi)存訪問,導(dǎo)致性能下降。許多研究都集中在這個主題上,并且已經(jīng)設(shè)計(jì)了各種方法來減少競爭。然而,這些技術(shù)會增加巨大的運(yùn)行開銷。文獻(xiàn)[9-10]提出了一種緩存分區(qū)技術(shù),但存在一些效率低下的問題。Huang等人[11]建議在緩存架構(gòu)中使用元數(shù)據(jù),但硬件開銷非常大。在基于軟件的技術(shù)中,研究人員主要使用調(diào)度算法來減少緩存競爭。Zhuravlev等[8]提出的基于分離域的方法,具有高緩存缺失率的線程,往往會占用所有的緩存塊,從而影響性能。Sahneh等人[12]使用每周期指令數(shù)(IPC)作為檢測沖突線程的指標(biāo),提出的算法會反復(fù)檢查系統(tǒng)中每個域的IPC,導(dǎo)致效率較低。

        針對前人研究存在的缺點(diǎn),本文采用基于軟件的解決方案,不會增加硬件開銷。并且,在前人工作中,系統(tǒng)資源的可用性并沒有作為安全目標(biāo)直接在多級緩存中得到解決,因此將可用性作為本文研究安全性的重點(diǎn)。通過引入安全性和性能感知的線程映射,將線程映射到域的核心上,使線程之間的競爭最小化,改進(jìn)多級共享緩存處理器的性能和安全性問題。該方法的基本特點(diǎn)是簡單,開銷非常低。

        1 攻擊模型

        本文提出的緩存攻擊通過故意誘導(dǎo)緩存競爭,增加任務(wù)/線程在多核系統(tǒng)特定核心上的執(zhí)行時間,如圖1所示。該攻擊的關(guān)鍵特征是獨(dú)立訪問私有代碼/數(shù)據(jù)空間,將執(zhí)行時間延長5倍。

        圖1 本文提出的攻擊概念模型

        該攻擊包括正常任務(wù)、共享內(nèi)存、攻擊任務(wù)3部分。攻擊任務(wù)遵循算法1,實(shí)現(xiàn)緩存競爭攻擊。它在運(yùn)行時分配的內(nèi)存中執(zhí)行隨機(jī)訪問,以占用共享緩存,增加正常任務(wù)的缺失率。為度量攻擊任務(wù)成功攻擊所需的時間,定義了一個大于1 K的整數(shù)數(shù)組,并發(fā)出順序地址,將該數(shù)組的所有單元初始化為1個常量。該操作所需的時間(Δt)將被記錄為該操作的正常時間,即參考時間。然后,攻擊任務(wù)向數(shù)組發(fā)出隨機(jī)地址跟蹤,并再次捕獲時間。當(dāng)隨機(jī)訪問需要至少2倍時間訪問數(shù)組時,攻擊任務(wù)將此視為成功攻擊。為解決多級共享緩存的動態(tài)行為,攻擊任務(wù)每2個周期調(diào)用算法1。

        算法1:

        Function Attack_Algorithm():

        Allocate a memory of 1KB→ A[];

        Start_timer()→ t0;

        for i ← 1 to size of A[]do

        A[i]= ConstantInteger;

        end

        End_timer()→ t1;

        Δt=t1+ t0;

        for j ← 1 to 10 do

        Start_timer()→ t0;

        Tj←random trace of addresses to A[];

        For all addressesm∈Tj: A[m]++;

        End_timer()→ t1;

        if((t1-t0)≥ 2Δt)then

        Save theTj;

        Exit the For loop;/*attack successful*/

        end

        end

        if(attackhasnotbeensuccessful)then

        ReleaseArrayA[];

        CallAttack_Algorithm();

        end

        End Function

        本文已經(jīng)在一個Linux操作系統(tǒng)上實(shí)現(xiàn)了攻擊,該系統(tǒng)運(yùn)行的是Mibench套件[13]的不同應(yīng)用程序。然后,使用OProfile性能監(jiān)視工具[14]記錄應(yīng)用程序的執(zhí)行時間。如圖2所示,在出現(xiàn)提出的攻擊時,任務(wù)的原始執(zhí)行時間已經(jīng)延長。在這個實(shí)驗(yàn)中,使用500和5 000入口長度的數(shù)組來實(shí)現(xiàn)攻擊,相比500的數(shù)組,5 000的數(shù)組執(zhí)行時間更長,受到了更嚴(yán)重的延遲。這是因?yàn)檩^長的數(shù)組使攻擊任務(wù)有機(jī)會進(jìn)行更遠(yuǎn)的跳轉(zhuǎn)和更不可預(yù)測的地址模式。另一個觀察結(jié)果是,攻擊任務(wù)對應(yīng)用程序執(zhí)行時間的影響并不總是相同的。例如,在快速排序(qsort)和拼湊(sha)任務(wù)中,輸入長度為500和5 000的攻擊可以將執(zhí)行時間延長5倍。然而,在循環(huán)冗余檢查(crc32)基準(zhǔn)測試中,500和5 000的攻擊延長時間的倍數(shù)分別為1.5倍和2.5倍。這是由于crc32發(fā)布的擴(kuò)展地址比sha和qsort的少。

        圖2 不同基準(zhǔn)測試集下所提緩存攻擊對執(zhí)行時間的影響

        2 性能和安全性敏感的線程映射

        本節(jié)提出了一個線程映射算法來聯(lián)合改進(jìn)多級共享緩存的性能和安全性問題。該算法基于IPC的平均數(shù)量對每個域的核進(jìn)行動態(tài)線程映射/重映射。平均IPC是該域中所有運(yùn)行線程的算術(shù)平均值。假設(shè)1個域中存在1個緩存競爭,它將導(dǎo)致緩存意外的丟失,降低域的性能。具有競態(tài)條件的域顯示的IPC比無競態(tài)條件的其他域要低。將IPC1,IPC2,...,IPCm分別定義為多核系統(tǒng)中D1到Dm域的平均IPC。關(guān)于每個域的平均IPC,定義以下工作狀態(tài)(如圖3所示)。

        圖3 所提線程映射算法的狀態(tài)轉(zhuǎn)變

        狀態(tài)S1:一種正常的狀態(tài),所有域都工作,沒有緩存競爭。當(dāng)所有域的平均IPC大于預(yù)期的IPC閾值(即IPC1,IPC2,...,IPCm≥ThIPC)時,可以檢測到。

        狀態(tài)S2:在這種未充分利用狀態(tài)下,至少有一個域的平均IPC低于預(yù)期的IPC,即?i,使得滿足條件:IPCi

        狀態(tài)S3:在這種未充分利用狀態(tài)下,至少有一個域的平均IPC低于預(yù)期的IPC,即?i,使得滿足條件:IPCi

        該算法的目標(biāo)是保持域的平均IPC盡可能高。因此,該算法試圖在最大和最小平均IPC之間保持最小可能的差異。在這種狀態(tài)下,線程將基于Naive擴(kuò)散算法[3]分配到核心。

        在S1狀態(tài)下,算法反復(fù)檢查所有運(yùn)行域的平均IPCs,分別找到運(yùn)行域Di和Dj的平均IPCs最小值和最大值。檢查域Di的平均IPC,如果大于或等于預(yù)期的IPC閾值,ThIPC,算法保持S1狀態(tài)。否則,算法將根據(jù)Max(IPC)和Min(IPC)的差值移動到S2或S3狀態(tài)。算法2展示了算法的虛擬代碼,以及它在上述狀態(tài)下是如何工作的。輸入是線程和一個指定的采樣周期P。輸出是映射的線程。根據(jù)該算法,當(dāng)最大IPC和最小IPC差值小于閾值時,即Max(IPC)-Min(IPC)

        算法2:

        Input: Threads,P

        Output: Mapped threads

        Function Thread Mapping Algorithm():

        forAllthreadsthatarereadytorundo

        Schedule each thread with Naive spread algorithm;

        repeat

        Calculate averageIPCfor all domains;

        Di← domain with the minimumIPC;

        Dj← domain with the maximumIPC;

        if(IPC(Di)

        if(IPC(Dj)-IPC(Di)

        Freeze a random number of threads inDifor100K cycles;

        else

        Swap threadT1∈Diwith threadT2∈Dj;

        if(thisisthefifthmigrationofDi/Dj)then

        Terminate the threadDi/Dj;

        end

        end

        Wait forP;

        end

        untilallthreadsarefinished

        end

        End Function

        該算法試圖在競爭線程之間創(chuàng)建一個時間間隔,從而解決緩存競爭問題。線程在凍結(jié)期結(jié)束后再次被激活,并繼續(xù)運(yùn)行。該算法在凍結(jié)期間不執(zhí)行任何其他競爭,保持狀態(tài)S2,并在100K循環(huán)后返回狀態(tài)S1。另一方面,Di域和Dj域的IPCs 存在較大差異,即Max(IPC)-Min(IPC)≥Thδ,說明線程映射不合適。在這種情況下,提出的算法基于Naive擴(kuò)散,改變最初的線程映射。域Di中IPC最低的線程將被域Dj中IPC最大的線程所取代。

        該算法還跟蹤已遷移的線程,以檢查它們是否可能參與連續(xù)的遷移。對于給定線程,連續(xù)三次遷移將該線程放入警報(bào)列表,第五次遷移后,該線程將被終止。線程遷移完成后,算法返回狀態(tài)S1,繼續(xù)檢查所有域的平均IPCs。所提出的算法很簡單,且不需要硬件輔助,可以很好地提高基準(zhǔn)測試的性能,這將在下一節(jié)中得到展示。

        3 算法評估

        該算法使多級高速緩存系統(tǒng)在保持高性能的同時,對引入的攻擊具有魯棒性。為了進(jìn)一步研究這一問題,將本文提出的線程映射算法與SPEC CPU 2006基準(zhǔn)測試包中不同任務(wù)集下的分布式強(qiáng)度(DI)[11]、基于閾值(threshold-based)[11]、Naive集群(Naive-cluster)[3]和Naive分散(Naive-spread)[3]線程映射算法進(jìn)行了比較。

        3.1 在模擬中使用線程集

        使用Akula模擬器[3]進(jìn)行仿真,在仿真中考慮了不同的情況,研究了本文所提算法的優(yōu)缺點(diǎn)。所有情況都選擇SPEC CPU 2006基準(zhǔn)套件中的線程。在SPEC CPU 2006基準(zhǔn)測試套件中,線程可以細(xì)分為以下2類:高內(nèi)存需求(HI-MD);低內(nèi)存需求(LO-MD)。HI-MD和LO-MD線程的各種組合被用來形成線程集,以覆蓋自然和攻擊情況。為了研究內(nèi)存需求強(qiáng)度對性能的影響,定義了線程集以顯示4種不同級別的內(nèi)存需求:

        級別1:該線程集由6個HI-MD線程和2個LO-MD線程組成,作為內(nèi)存需求最高的集合。

        級別2:這個集合由5個HI-MD和3個LO-MD線程組成。

        級別3:這個集合由4個HI-MD和4個LO-MD線程組成。

        級別4:這個集合由3個HI-MD和5個LO-MD線程組成,作為內(nèi)存需求最低的集合。

        對于每個模擬實(shí)驗(yàn),從SPEC CPU 2006基準(zhǔn)測試套件中選擇10個不同的線程來滿足上述內(nèi)存需求。進(jìn)行了10次模擬,從Akula模擬器得到結(jié)果后,記錄最差和平均情況下的性能。結(jié)果需要計(jì)算算術(shù)平均值。

        3.2 實(shí)驗(yàn)結(jié)果和分析

        根據(jù)平均和最差情況下的性能退化(APD)這2個指標(biāo),對上述線程集的DI、基于閾值、Naive集群、Navie分散和本文提出的算法的性能進(jìn)行評估。性能退化因子指的是,與在單核芯片上運(yùn)行而不共享緩存相比,在多級共享緩存平臺上運(yùn)行的給定線程的性能退化情況。這里說的退化是由緩存競爭造成的。第i個線程的性能退化因子由式(1)計(jì)算。

        (1)

        用式(2)計(jì)算APD,即

        (2)

        式中:n是線程在芯片上運(yùn)行的核數(shù)。

        最壞情況下的性能下降是運(yùn)行在n個核上的線程的最大性能下降,用式(3)計(jì)算得

        (3)

        改善平均情況下性能退化有利于整個系統(tǒng),系統(tǒng)可提前關(guān)機(jī),節(jié)省功耗。改善最壞情況下的退化有利于服務(wù)質(zhì)量(QoS),因?yàn)楦偁幐兄{(diào)度程序提供了穩(wěn)定的執(zhí)行時間,以保證更好的應(yīng)用服務(wù)質(zhì)量(QoS)。

        為了評估所提算法的廣泛性,對表1中介紹的配置執(zhí)行了所有步驟。表2描述了在不同的內(nèi)存需求水平下,與其他4種映射算法相比,本文提出的算法在最差情況和平均情況下性能改善的百分比。由表2可以看出,本文提出的算法能夠很好地減少線程之間的競爭,提高性能,特別是在性能退化最差的情況下。所提出的映射算法比Navier集群算法平均高出78.2%,而相比DI算法,改善值低于10%。平均情況下,平均性能改進(jìn)(即退化減少)的趨勢與最差情況幾乎相同,所提出的算法比DI提高了31%。在一些罕見的情況下,所提出的映射并不是最佳解決方案,例如,在3級內(nèi)存需求中,DI的性能損失最低,在最差和平均情況下比本文所提算法的要好28%和7%。表2中分別對4種算法性能提高的平均值再進(jìn)行求平均,可以得出,在最差情況和平均情況下,系統(tǒng)整體性能分別提高了46.4%和55.9%。

        表1 模擬中的核和域的數(shù)量

        表2 所提線程映射算法性能的提高 %

        圖4~5分別顯示了所有5種算法在不同處理器中不同線程在最差和平均情況下的性能退化,表明本文所提的算法有了明顯的改進(jìn)。如圖6所示,評估了完成1個線程集所需的線程遷移數(shù)量。所提的算法所需的遷移梳理比DI算法少得多。在DI算法中,當(dāng)核數(shù)增加時,遷移會呈指數(shù)增長,而本文所提算法改善了這種情況。

        圖4 最差情況下的性能退化

        圖5 平均性能退化

        圖6 DI和所提算法所需的線程遷移數(shù)量

        4 安全分析

        假設(shè)數(shù)據(jù)緩存的總大小是n塊,受害線程占用了緩存的m個指令塊。當(dāng)受害線程執(zhí)行其目標(biāo)數(shù)據(jù)訪問(讀和寫)時,攻擊線程的行為是隨機(jī)的,使競爭最大化。攻擊線程在無限循環(huán)中不斷地運(yùn)行,試圖將隨機(jī)塊引入共享數(shù)據(jù)緩存。雖然受害線程對數(shù)據(jù)緩存進(jìn)行了有針對性的訪問,但攻擊線程試圖通過發(fā)出隨機(jī)訪問來指向同一個塊。

        受害線程運(yùn)行m個指令塊所需的平均時間為

        (4)

        式中:m是受害線程在指令緩存中準(zhǔn)備由本地核心執(zhí)行的指令塊的數(shù)量;ˉTblock是執(zhí)行一個指令塊所需的平均時間。

        將ˉTblock用式(5)表示為

        (5)

        (6)

        對于特定的i=j,受害者訪問第i塊數(shù)據(jù)緩存的概率為1,否則為0,即

        (7)

        由于攻擊隨機(jī)且一致地訪問所有數(shù)據(jù)緩存塊,因此訪問受害者已經(jīng)訪問過的同一個數(shù)據(jù)緩存塊的概率為

        (8)

        計(jì)算所有數(shù)據(jù)緩存塊在同一時間訪問的概率如式(9)所示。

        (9)

        式中:P(Att(Bi))、P(Vic(Bi))分別為攻擊和受害線程訪問數(shù)據(jù)緩存第i塊的概率。

        (10)

        (11)

        因此,受害線程中故意缺失的概率為

        (12)

        式中:P(Att(Bi))和P(Vic(Bi))是2個獨(dú)立的概率。

        將它們相乘,得到受害線程新的命中概率,即

        (13)

        在這種情況下,攻擊線程將有更多的機(jī)會將故意缺失注入到受害線程,實(shí)現(xiàn)成功攻擊的機(jī)會更高。

        使用Intel Pin工具進(jìn)行實(shí)驗(yàn),運(yùn)行了2個正常的程序,并計(jì)算了每個基本塊的指令數(shù)(跳躍指令作為最后一條指令的一系列指令)。圖7描述了5個不同程序中基本塊的數(shù)量和每個基本塊的平均指令數(shù)。雖然每個程序的基本塊的數(shù)量不同,但每個基本塊的平均指令數(shù)量都低于5條。幾乎有15%的指令需要訪問內(nèi)存,通過相同的測量工具計(jì)算,攻擊程序的這個百分比為30%。

        圖7 不同程序下基本塊數(shù)量和基本塊平均指令數(shù)

        5 結(jié)論

        1)為了延長特定線程的執(zhí)行時間,引入了一種新的攻擊方法,該方法獨(dú)立于訪問私有數(shù)據(jù)空間。這種攻擊可以將正常程序的執(zhí)行延遲5倍。

        2)提出了一種基于軟件的競爭感知線程映射算法來緩解緩存競爭,該算法根據(jù)IPC參數(shù)檢測同一域上的競線程,定期檢查系統(tǒng)狀態(tài)。與其他算法相比,它需要的線程遷移數(shù)量更少。

        3)平均和最壞情況下,系統(tǒng)整體性能分別提高了46.4%和55.9%,證實(shí)了所提的線程映射算法通過減少緩存競爭而顯著地節(jié)省了性能。并且,僅僅依靠任務(wù)遷移來減少競爭并不是一個有效的解決方案。

        4)通過闡述提出的緩存攻擊對受害線程性能的影響,對提出的攻擊進(jìn)行了全面的安全性分析。發(fā)現(xiàn)每個程序的基本塊的數(shù)量不同,但每個基本塊的平均指令數(shù)量都低于5條。

        猜你喜歡
        基本塊線程內(nèi)存
        基于級聯(lián)森林的控制流錯誤檢測優(yōu)化算法
        距離與權(quán)重相結(jié)合的導(dǎo)向式灰盒模糊測試方法
        一種檢測控制流錯誤的多層分段標(biāo)簽方法
        “春夏秋冬”的內(nèi)存
        淺談linux多線程協(xié)作
        基于內(nèi)存的地理信息訪問技術(shù)
        Linux線程實(shí)現(xiàn)技術(shù)研究
        改進(jìn)的CFCSS控制流檢測算法
        么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
        上網(wǎng)本為什么只有1GB?
        人妻熟妇乱系列| 国产精品av在线| 亚洲av无码av男人的天堂| 亚洲视频天堂| 亚洲综合原千岁中文字幕| 中文字幕一区二区三区四区| 成年站免费网站看v片在线| 久久无码高潮喷水| 欧洲亚洲色一区二区色99| 国产一区二区中文字幕在线观看 | 无码小电影在线观看网站免费| 欧美人与动人物牲交免费观看| 日本一区二区三区中文字幕最新| 老熟妇嗷嗷叫91九色| 亚洲自偷自拍另类第1页| 成人片黄网站色大片免费观看cn | 亚洲精品熟女乱色一区| 激情在线一区二区三区视频| 国产成人久久精品一区二区三区| 国产在线丝袜精品一区免费| 蜜桃视频在线免费观看一区二区| 中文字幕女优av在线| 初女破初的视频| 天天狠天天透天干天天| 国产av一区二区三区狼人香蕉| 成年丰满熟妇午夜免费视频 | 国产美女免费国产| 精品国产一区二区三区毛片| 色呦呦九九七七国产精品| 久久国产精品-国产精品| 甲状腺囊实性结节三级| 黑丝美腿国产在线观看| 日本另类αv欧美另类aⅴ| 亚欧国产女人天堂Av在线播放| 青青草视频国产在线观看| 青青草狠吊色在线视频| 怡红院免费的全部视频| 福利网在线| 女同一区二区三区在线观看 | 激情五月天伊人久久| 男女视频在线观看一区二区 |