RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用內(nèi)存加速存儲(chǔ)訪問速度

SSDFans ? 來源:SSDFans ? 2024-12-19 10:54 ? 次閱讀

本篇文章是首爾大學(xué)發(fā)表在FAST 2023上的文章。隨著閃存容量的增加,邏輯地址到物理地址的映射表項(xiàng)也相應(yīng)增加。映射表項(xiàng)通常存放在設(shè)備控制器中的SRAM來加速訪問。然而由于成本問題SRAM一直無法增長,這使得其中只能存放很少量的數(shù)據(jù)表項(xiàng)。而為了解決這一問題,現(xiàn)有工作使用部分主機(jī)端內(nèi)存(high performance booster, HPB)來緩存映射表項(xiàng)。然而文章中發(fā)現(xiàn),現(xiàn)有的HPB管理策略并不能夠很好的提升用戶體驗(yàn)。這是因?yàn)楝F(xiàn)有的管理策略通??赡軙?huì)將前臺(tái)應(yīng)用的表項(xiàng)剔除。而為了解決這一問題,本文設(shè)計(jì)提出HPBvalve技術(shù)來盡量緩存前臺(tái)應(yīng)用的映射表項(xiàng)。通過在搭建的真實(shí)平臺(tái)上的驗(yàn)證,該技術(shù)能夠很好的提升用戶體驗(yàn)。

背景

當(dāng)主機(jī)下發(fā)請求時(shí)會(huì)附上邏輯地址,UFS收到請求后會(huì)在閃存轉(zhuǎn)換層(FTL)進(jìn)行地址轉(zhuǎn)換,將邏輯地址轉(zhuǎn)換為物理地址,如圖1所示。記錄從邏輯地址到物理地址映射信息的稱之為映射表項(xiàng)。而為了加速這一過程,UFS中通常配備一個(gè)較小的SRAM用于緩存常用的映射表項(xiàng)。然而隨著閃存的迅速發(fā)展,SRAM空間越發(fā)不夠存儲(chǔ)經(jīng)常訪問的表項(xiàng)。例如對于1TB的UFS設(shè)備配備512KB SRAM,則只有0.0005%的表項(xiàng)能夠緩存在其中。顯然這遠(yuǎn)遠(yuǎn)不夠。而為了緩解這一問題,現(xiàn)有工作提出使用部分主機(jī)內(nèi)存(HPB)來緩存映射表項(xiàng)。相較于SRAM來說,主機(jī)能夠提供較大的內(nèi)存,從而緩存更多的映射表項(xiàng)來加速訪問。

067d3f74-bccf-11ef-8732-92fbcf53809c.png

動(dòng)機(jī)

為了展示映射表項(xiàng)對用戶體驗(yàn)的影響,文章中在搭建的平臺(tái)上做了很多實(shí)驗(yàn)。平臺(tái)將在實(shí)驗(yàn)部分介紹。其中設(shè)備容量為1TB,設(shè)備SRAM為512KB,HPB大小為256MB。OPTIMAL為所有映射表項(xiàng)都命中在設(shè)備SRAM的情況。應(yīng)用啟動(dòng)時(shí)間和加載時(shí)間作為衡量用戶體驗(yàn)的指標(biāo)。

圖2展示了映射表項(xiàng)訪問確實(shí)對用戶感知延遲的影響。從中我們可以得出三個(gè)結(jié)論:

通過對比OPTIMAL和其他兩個(gè)可以看出,啟動(dòng)延遲和加載延遲都得到了較為明顯的提升。從絕對值來看,分別是220ms和183ms,已經(jīng)是用戶可感知的延遲。

通過比較UFS和UFS+HPB可以發(fā)現(xiàn),盡管HPB能夠提供較大的容量,然而現(xiàn)有的管理策略并不能夠利用其很好的提升用戶體驗(yàn)。

HPB從主機(jī)端借用了較多的內(nèi)存反而會(huì)使得主機(jī)內(nèi)存壓力增加。

0699eba6-bccf-11ef-8732-92fbcf53809c.png

圖3中進(jìn)一步分析了HPB中前臺(tái)應(yīng)用和后臺(tái)應(yīng)用中映射表項(xiàng)的命中情況。從圖中我們可以看出前臺(tái)應(yīng)用的映射表項(xiàng)缺失情況比后臺(tái)應(yīng)用更加嚴(yán)重,這是因?yàn)椋?)傳統(tǒng)HPB采用基于計(jì)數(shù)的取映射表項(xiàng)策略。而后臺(tái)應(yīng)用比前臺(tái)應(yīng)用會(huì)下發(fā)更多的讀請求,這使得后臺(tái)應(yīng)用的映射表項(xiàng)的讀取計(jì)數(shù)通常比前臺(tái)應(yīng)用的高。因此會(huì)更傾向于將后臺(tái)應(yīng)用的映射表項(xiàng)取到HPB中。2)傳統(tǒng)HPB采用基于時(shí)間的映射表項(xiàng)剔除策略。然而當(dāng)用戶切換應(yīng)用并使用一段時(shí)間后,剛才使用應(yīng)用的映射表項(xiàng)也將會(huì)被剔除。這導(dǎo)致用戶再切換回來后映射表項(xiàng)缺失,影響用戶體驗(yàn)。

074513be-bccf-11ef-8732-92fbcf53809c.png

圖4和圖5分析了HPB無法很好預(yù)測哪些表項(xiàng)會(huì)被使用的原因。這是因?yàn)樵趹?yīng)用啟動(dòng)的時(shí)候,會(huì)有大量隨機(jī)的I/O請求,并且覆蓋很大的邏輯地址空間。這使得很難提高表項(xiàng)命中率。

075ee44c-bccf-11ef-8732-92fbcf53809c.png

0781ec9e-bccf-11ef-8732-92fbcf53809c.png

圖6探索了HPB大小對用戶體驗(yàn)的影響。從中我們可以發(fā)現(xiàn)最佳的HPB大小隨著應(yīng)用不同而不同。同時(shí)隨著HPB的大小增加,前臺(tái)應(yīng)用下發(fā)的讀取請求也在增加。這是因?yàn)镠PB分配過多內(nèi)存導(dǎo)致內(nèi)存壓力過大,會(huì)殺掉一些應(yīng)用。當(dāng)這些應(yīng)用(cold state)之后再被訪問的時(shí)候不僅啟動(dòng)時(shí)間增加,而且需要下發(fā)更多的讀取請求,如表1所示。圖7展示的是隨著HPB大小的增加,越來越多的應(yīng)用會(huì)被殺掉。

079311a4-bccf-11ef-8732-92fbcf53809c.png

07ac2a5e-bccf-11ef-8732-92fbcf53809c.png

07c98e82-bccf-11ef-8732-92fbcf53809c.png

設(shè)計(jì)

為了解決上述問題,文章中提出了HPBvalve(Hvalve),如圖8所示。Hvalve包含了五個(gè)部分。其中app-detector和mem-detector分別用于判斷應(yīng)用是否為前臺(tái)應(yīng)用、應(yīng)用狀態(tài)變化和內(nèi)存壓力情況。FG profiler維護(hù)了近期使用應(yīng)用會(huì)訪問的映射表項(xiàng),用于預(yù)取映射表項(xiàng)。L2P manager用于單獨(dú)管理前臺(tái)應(yīng)用的映射表項(xiàng)。HPB regulator用于根據(jù)內(nèi)存壓力情況調(diào)整HPB大小,避免過多應(yīng)用被殺掉。

087704f4-bccf-11ef-8732-92fbcf53809c.png

1. 前臺(tái)/后臺(tái)應(yīng)用識(shí)別:Hvalve在bio結(jié)構(gòu)體中創(chuàng)建新的變量UID,用于記錄下發(fā)請求所屬的應(yīng)用。當(dāng)bio創(chuàng)建請求的時(shí)候,UID也會(huì)集成在請求中。同時(shí)app detector會(huì)通過安卓活動(dòng)任務(wù)管理器(android activity task manager)來檢測是否有新的前臺(tái)應(yīng)用啟動(dòng)。如果有一個(gè)新的前臺(tái)應(yīng)用啟動(dòng)時(shí),將該應(yīng)用的UID傳遞給HPB。這樣HPB可以將該UID與請求中攜帶的UID進(jìn)行比較,從而判斷應(yīng)用是否為前臺(tái)應(yīng)用。

2. L2P management:Hvalve維護(hù)了三個(gè)LRU鏈表,分別用戶記錄活躍前臺(tái)應(yīng)用、非活躍前臺(tái)應(yīng)用和后臺(tái)應(yīng)用的映射表項(xiàng)。當(dāng)新的前臺(tái)應(yīng)用啟動(dòng)時(shí),會(huì)將之前的前臺(tái)應(yīng)用表項(xiàng)降級到非活躍前臺(tái)應(yīng)用鏈表中。當(dāng)需要剔除表項(xiàng)的時(shí)候優(yōu)先提出后臺(tái)應(yīng)用表項(xiàng),然后是非活躍前臺(tái)應(yīng)用表項(xiàng)。而前臺(tái)應(yīng)用表項(xiàng)不會(huì)被剔除。

09208e34-bccf-11ef-8732-92fbcf53809c.png

3. Hvalve緩存策略:1)其中依舊延續(xù)傳統(tǒng)的基于訪問計(jì)數(shù)的方式來緩存經(jīng)常被訪問的表項(xiàng)。2)對于前臺(tái)應(yīng)用緩存表項(xiàng)未命中時(shí),立即將該表項(xiàng)取到HPB中。3)根據(jù)FG profiler預(yù)取表項(xiàng)。

4. 前臺(tái)應(yīng)用分析和預(yù)?。簣D9展示了FG-profiler中記錄的信息。FG-profiler記錄近期訪問應(yīng)用的映射表項(xiàng)。同時(shí)根據(jù)app detector基于安卓活躍任務(wù)管理器發(fā)出的應(yīng)用啟動(dòng)開始和啟動(dòng)結(jié)束信號(hào),可以將映射表項(xiàng)分為啟動(dòng)表項(xiàng)和運(yùn)行表項(xiàng)。當(dāng)一個(gè)應(yīng)用被切換為前臺(tái)應(yīng)用的時(shí)候,hvalve會(huì)先判斷該應(yīng)用對應(yīng)的映射表項(xiàng)是否記錄在FG-profiler中。如果在,則將記錄的映射表項(xiàng)預(yù)取到HPB中,以加速訪問,如圖10所示。

09429542-bccf-11ef-8732-92fbcf53809c.png

096086e2-bccf-11ef-8732-92fbcf53809c.png

5. HPB大小動(dòng)態(tài)調(diào)整:mem-detector時(shí)刻監(jiān)測LMKD。當(dāng)內(nèi)存不足激活LMKD殺進(jìn)程時(shí),mem-detector會(huì)將將要?dú)⒌舻倪M(jìn)程UID傳送給HPB-regulator。HPB-regulator會(huì)判斷該應(yīng)用在FG-profiler中是否有記錄,如果沒有說明不是近期訪問過的應(yīng)用,則直接殺掉。如果有,則會(huì)根據(jù)LMKD需要釋放內(nèi)存的大小剔除HPB中的表項(xiàng)。優(yōu)先提出后臺(tái)應(yīng)用表項(xiàng),然后是非活躍應(yīng)用表項(xiàng)。如果剔除之后內(nèi)存仍然不足,則需要重新喚醒LMKD選取應(yīng)用殺掉。該過程如圖11所示。

0977b42a-bccf-11ef-8732-92fbcf53809c.png

實(shí)驗(yàn)

該文章為了探尋HPB不同方面的影響,自己搭建了一個(gè)平臺(tái),如圖12所示。其中使用高性能SSD作為主要存儲(chǔ),同時(shí)簡單實(shí)現(xiàn)了HPB的管理策略,來進(jìn)行映射表項(xiàng)的存取。應(yīng)用場景也如圖12所示。

09949a18-bccf-11ef-8732-92fbcf53809c.png

性能:性能提升如圖13所示。Hvalve相較于UFS和UFS+HPB均有所改善,并且接近OPTIMAL的場景。

09b6379a-bccf-11ef-8732-92fbcf53809c.png

表項(xiàng)未命中模式:圖14展示了前臺(tái)應(yīng)用表項(xiàng)缺失隨著運(yùn)行時(shí)間的分布。可以看出Hvalve很好的控制住了在應(yīng)用剛運(yùn)行時(shí)候的缺失率高的問題。

09d18ce8-bccf-11ef-8732-92fbcf53809c.png

命中率:圖15展示了Hvalve的命中率情況。相較于HPB-only,Hvalve很好的提升了應(yīng)用冷啟動(dòng)時(shí)的映射表項(xiàng)命中率。

09fccba6-bccf-11ef-8732-92fbcf53809c.png

HPB大小動(dòng)態(tài)調(diào)整效果:圖16展示了Hvalve動(dòng)態(tài)調(diào)整對前臺(tái)應(yīng)用的影響??梢钥闯鯤valve相較于傳統(tǒng)的HPB管理策略減少了被殺掉的應(yīng)用,同時(shí)很好的保護(hù)了高優(yōu)先級的應(yīng)用,減少了應(yīng)用下發(fā)的讀請求數(shù)量。圖17可以觀察到HPB大小動(dòng)態(tài)調(diào)整的過程。

0a0ff2c6-bccf-11ef-8732-92fbcf53809c.png

0a286ebe-bccf-11ef-8732-92fbcf53809c.png

總結(jié)

為了提高HPB的使用效率從而提升用戶體驗(yàn),本文在自己搭建的平臺(tái)上深入的分析了當(dāng)前HPB管理策略存在的問題,并在此基礎(chǔ)上設(shè)計(jì)了Hvalve。Hvalve通過對前臺(tái)應(yīng)用映射表項(xiàng)的識(shí)別和管理,提高了前臺(tái)應(yīng)用的訪問速度,提升用戶體驗(yàn)。同時(shí)根據(jù)內(nèi)存壓力動(dòng)態(tài)調(diào)整HPB大小,避免導(dǎo)致內(nèi)存壓力過大而殺掉過多的應(yīng)用,影響用戶體驗(yàn)。實(shí)驗(yàn)結(jié)果顯示,Hvalve提升了用戶前臺(tái)應(yīng)用表項(xiàng)的命中率,減少了被殺掉的應(yīng)用,提升了用戶體驗(yàn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4296

    瀏覽量

    85797
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    767

    瀏覽量

    114674
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3019

    瀏覽量

    74001

原文標(biāo)題:手機(jī)訪問卡頓,看如何使用內(nèi)存加速存儲(chǔ)訪問速度!

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    內(nèi)存擴(kuò)展CXL加速發(fā)展,繁榮AI存儲(chǔ)

    電子發(fā)燒友網(wǎng)報(bào)道(文/黃晶晶)CXL即Compute Express Link,是一種全新的互連協(xié)議,為各種處理器包括CPU、GPU、FPGA、加速器和存儲(chǔ)設(shè)備提供統(tǒng)一接口標(biāo)準(zhǔn),可以有效解決內(nèi)存
    的頭像 發(fā)表于 08-18 00:02 ?4853次閱讀
    <b class='flag-5'>內(nèi)存</b>擴(kuò)展CXL<b class='flag-5'>加速</b>發(fā)展,繁榮AI<b class='flag-5'>存儲(chǔ)</b>

    內(nèi)存儲(chǔ)器的特點(diǎn)是速度快成本低容量小對嗎

    內(nèi)存儲(chǔ)器,通常指的是計(jì)算機(jī)系統(tǒng)中的隨機(jī)存取存儲(chǔ)器(RAM),是計(jì)算機(jī)硬件的重要組成部分。它負(fù)責(zé)存儲(chǔ)計(jì)算機(jī)運(yùn)行時(shí)的數(shù)據(jù)和程序,以便處理器快速訪問。內(nèi)存
    的頭像 發(fā)表于 10-14 10:05 ?589次閱讀

    內(nèi)存儲(chǔ)器由什么組成

    內(nèi)存儲(chǔ)器,通常稱為內(nèi)存或RAM(隨機(jī)存取存儲(chǔ)器),是計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)數(shù)據(jù)和程序的硬件組件。它是計(jì)算機(jī)運(yùn)行時(shí)的主要工作區(qū)域,因?yàn)镃PU(中央處理單元)直接從
    的頭像 發(fā)表于 10-14 09:58 ?501次閱讀

    內(nèi)存儲(chǔ)器主要用來存儲(chǔ)什么

    內(nèi)存儲(chǔ)器(內(nèi)部存儲(chǔ)器)是計(jì)算機(jī)硬件的重要組成部分,它直接與中央處理器(CPU)相連,用于存儲(chǔ)正在運(yùn)行的程序和當(dāng)前處理的數(shù)據(jù)。內(nèi)存儲(chǔ)器的容量、速度
    的頭像 發(fā)表于 10-14 09:55 ?615次閱讀

    內(nèi)存儲(chǔ)器分為隨機(jī)存儲(chǔ)器和什么

    內(nèi)存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中用于臨時(shí)存儲(chǔ)數(shù)據(jù)和程序的關(guān)鍵部件,它直接影響到計(jì)算機(jī)的運(yùn)行速度和性能。內(nèi)存儲(chǔ)器主要分為兩大類:隨機(jī)存儲(chǔ)器(RAM,Ra
    的頭像 發(fā)表于 10-14 09:54 ?893次閱讀

    隨機(jī)內(nèi)存儲(chǔ)器的特點(diǎn)有哪些

    運(yùn)行時(shí)的主要存儲(chǔ)器,因?yàn)樗峁┝丝焖俚臄?shù)據(jù)訪問速度,這對于執(zhí)行程序和處理數(shù)據(jù)至關(guān)重要。 隨機(jī)存取存儲(chǔ)器的特點(diǎn) 快速訪問
    的頭像 發(fā)表于 10-14 09:51 ?434次閱讀

    存儲(chǔ)器中訪問速度最快的是什么

    在探討存儲(chǔ)器中訪問速度最快的是哪一種時(shí),我們首先需要了解計(jì)算機(jī)存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)以及各類存儲(chǔ)器的特性和功能。計(jì)算機(jī)
    的頭像 發(fā)表于 10-12 17:01 ?1774次閱讀

    恒訊科技分析:香港服務(wù)器網(wǎng)站訪問速度如何才能達(dá)到最快?

    ,能夠智能化地監(jiān)控網(wǎng)絡(luò)的當(dāng)前狀態(tài),自動(dòng)選擇接入一條最優(yōu)的網(wǎng)絡(luò)線路,這樣能夠避免網(wǎng)絡(luò)高峰時(shí)期對網(wǎng)站的訪問造成不穩(wěn)定的因素,而且也能讓客戶群體訪問網(wǎng)站的速度更快。 3、使用CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))
    的頭像 發(fā)表于 10-08 13:28 ?184次閱讀

    影響內(nèi)存延遲的因素有哪些

    內(nèi)存延遲是指等待對系統(tǒng)內(nèi)存存儲(chǔ)數(shù)據(jù)的訪問完成時(shí)引起的延期,它是衡量內(nèi)存響應(yīng)速度的重要指標(biāo)。影響
    的頭像 發(fā)表于 09-04 11:46 ?1438次閱讀

    Jtti:新加坡云服務(wù)器運(yùn)行內(nèi)存存儲(chǔ)內(nèi)存有何區(qū)別?

    新加坡云服務(wù)器 的運(yùn)行內(nèi)存(RAM)和存儲(chǔ)內(nèi)存在功能、速度、用途等方面有所區(qū)別。以下是它們的主要差異: 一、功能: 運(yùn)行內(nèi)存(RAM):主要
    的頭像 發(fā)表于 06-25 14:26 ?482次閱讀

    集成32GB HBM2e內(nèi)存,AMD Alveo V80加速卡助力傳感器處理、存儲(chǔ)壓縮等

    電子發(fā)燒友網(wǎng)報(bào)道(文/黃晶晶)日前,AMD推出Alveo V80加速卡,Versal FPGA自適應(yīng)SoC搭配HBM,可處理計(jì)算以及內(nèi)存密集型的工作負(fù)載,用于高性能計(jì)算、數(shù)據(jù)分析、金融科技、存儲(chǔ)壓縮
    的頭像 發(fā)表于 06-05 16:16 ?2122次閱讀
    集成32GB HBM2e<b class='flag-5'>內(nèi)存</b>,AMD Alveo V80<b class='flag-5'>加速</b>卡助力傳感器處理、<b class='flag-5'>存儲(chǔ)</b>壓縮等

    加速度傳感器原理及其應(yīng)用

    常見的加速度傳感器工作原理有三種:壓電原理、電容原理和微機(jī)電系統(tǒng)(MEMS)原理。 1.壓電原理:壓電加速度傳感器通過壓電材料的壓電效應(yīng)來測量加速度。當(dāng)受到力或加速度時(shí),壓電材料會(huì)產(chǎn)生
    的頭像 發(fā)表于 01-05 08:39 ?1740次閱讀
    <b class='flag-5'>加速度</b>傳感器原理及其應(yīng)用

    ADXL345的x軸測出的加速度是離心加速度嗎?

    請問當(dāng)ADXL345安放在一個(gè)旋轉(zhuǎn)物體的圓周上,而且ADXL345的x軸指向旋轉(zhuǎn)物體的圓心,ADXL345的x軸測出的加速度是離心加速度么?
    發(fā)表于 01-01 08:16

    兩軸加速度計(jì)和三軸加速度計(jì)的使用區(qū)別?

    有個(gè)問題請教一下:在靜態(tài)測量的情況下,兩軸的加速度計(jì)在測得X、Y軸上的加速度后,是不是就可以根據(jù)這兩個(gè)值和重力加速度g算出Z軸方向的加速度,這樣的話XYZ三個(gè)方向的角度也可以推導(dǎo)出來。
    發(fā)表于 12-29 06:06

    ug內(nèi)部錯(cuò)誤,內(nèi)存訪問違例怎么解決

    ug內(nèi)部錯(cuò)誤,內(nèi)存訪問違例怎么解決 內(nèi)部錯(cuò)誤和內(nèi)存訪問違例是編程中常見的問題,它們可能會(huì)導(dǎo)致應(yīng)用程序崩潰、數(shù)據(jù)丟失或系統(tǒng)不穩(wěn)定。在本文中,我將詳細(xì)解釋內(nèi)部錯(cuò)誤和
    的頭像 發(fā)表于 12-27 16:27 ?6264次閱讀
    RM新时代网站-首页