<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      大家好,我是五月。

      前言

      FTL(Flash Translation Layer),即閃存轉(zhuǎn)換層,是各種存儲(chǔ)設(shè)備的核心算法,作用是將Host傳下來的邏輯地址轉(zhuǎn)換成物理地址,也就是映射。

      可以說,地址映射是FTL最原始最基本的功能。

       

      為什么需要映射

      NAND Flash最大的問題就是不能像內(nèi)存一樣隨意寫入。

      根據(jù)Flash的特性能知道,寫入page之前需要先將所在的Block擦除。

      按照這種準(zhǔn)則,市面上出現(xiàn)的Flash根本不能使用,其一,性能會(huì)很差,瓶頸限制在塊擦除上,其二,持續(xù)不斷對(duì)同一Block擦除,會(huì)導(dǎo)致Block在短時(shí)間內(nèi)磨損,很容易造成存儲(chǔ)數(shù)據(jù)丟失。

      映射的觀念出來后,數(shù)據(jù)不會(huì)直愣愣的寫入原來的page頁(yè)/Block塊,而是重新映射到新的page頁(yè)/Block塊中,按照這個(gè)思路引導(dǎo),F(xiàn)lash中所有的存儲(chǔ)空間都可以按照這種page/Block映射方式進(jìn)行管理。

      用戶肉眼看到的,是連續(xù)的邏輯地址組成的空間,實(shí)際在Flash當(dāng)中,一段數(shù)據(jù)的存儲(chǔ)很有可能是不連續(xù)的。

      映射種類

      首先要知道,映射種類有仨:

      1. 塊映射
      2. 頁(yè)映射
      3. 混合映射(塊映射+頁(yè)映射)

      塊映射

      以Block為映射單位,一個(gè)邏輯塊可以映射到任何的物理塊上,所以塊內(nèi)每一頁(yè)的偏移不變。

      還需要映射表來記錄邏輯塊和物理塊之間的映射關(guān)系。

      優(yōu)點(diǎn):因?yàn)橛成浔碇恍枰獕K的映射,所以映射表所占空間小。

      缺點(diǎn):性能差。如果用戶要操作一個(gè)邏輯頁(yè)的話,就需要把整個(gè)塊的數(shù)據(jù)讀取出來,再修改邏輯頁(yè),再寫入flash當(dāng)中,所以小尺寸數(shù)據(jù)寫性能極差。

      頁(yè)映射

      以page為映射粒度,一個(gè)邏輯頁(yè)可以映射到任何的物理頁(yè)上,所以塊內(nèi)每一頁(yè)的偏移變化多端。

      需要映射表來記錄每一邏輯頁(yè)與物理頁(yè)之間的映射關(guān)系。

      優(yōu)點(diǎn):用戶可隨時(shí)操作某一邏輯頁(yè),直接將數(shù)據(jù)寫進(jìn)對(duì)應(yīng)物理頁(yè),方便快捷,性能極好。

      缺點(diǎn):由于每一邏輯頁(yè)與物理頁(yè)都有一張映射表,并且頁(yè)的數(shù)量遠(yuǎn)遠(yuǎn)要比塊的數(shù)量多得多,所以映射表所占空間極大。

      用個(gè)例子就很好理解了:

      假設(shè)有個(gè)256G的Flash,page大小為4KB,那么一共就有64M(256G/4KB)個(gè)page,也就是說需要64M個(gè)映射表,假設(shè)每個(gè)映射表占用4個(gè)字節(jié),那么整個(gè)映射表大小就為64M*4 = 256M。

      一般來說,整個(gè)映射表的大小不宜超過Flash容量的千分之一。

      混合映射

      混合映射是塊映射和頁(yè)映射的混合產(chǎn)物,外面經(jīng)常說的Hybird level mapping就是說的它。

      一個(gè)邏輯塊可以映射到任何的物理塊上,塊內(nèi)采用頁(yè)映射方式,塊內(nèi)邏輯頁(yè)可以映射到對(duì)應(yīng)物理塊內(nèi)任何物理頁(yè)上。

      市面上大部分用的映射方式都是Hybird映射方式。

      HyBird的映射操分為兩級(jí):

      第一級(jí)是data_log,數(shù)據(jù)以page的維度寫入log,這個(gè)log一般是SLC;

      第一級(jí)是data_Block,當(dāng)data_log寫滿后,數(shù)據(jù)會(huì)合并到data_Block中。

      data_log由于數(shù)量有限,可以采用頁(yè)映射的方式寫入數(shù)據(jù),data_Block容量比較大,所以采用塊映射的方式寫入。

      所以在性能和所占空間都介于塊映射和頁(yè)映射之間。

      以下是不同映射之間的比較:

       

      映射原理

      Host是通過發(fā)送邏輯地址 LBA 來訪問Flash的,每一個(gè)LBA大小為 1Sec。

      每一個(gè)Sec大小各有不同,有512B、4KB、8KB,業(yè)內(nèi)常稱為一包數(shù)據(jù),大部分情況下都是512B。

      因?yàn)镻C端操作磁盤的方式,都是以Sec的方式發(fā)送命令的,操作其他存儲(chǔ)設(shè)備比如U盤,SD卡也是一樣,不會(huì)改變。

      寫過程

      Flash是以page為單位進(jìn)行寫的,所以Host發(fā)送的 LAB+數(shù)據(jù)并不會(huì)立馬就寫進(jìn)入,而是會(huì)先在Dbuf緩存起來,直到湊成了1page的數(shù)據(jù)量,才會(huì)寫進(jìn)Flash中。

      用戶每寫入1page數(shù)據(jù),F(xiàn)TL會(huì)先去找映射,看看LBA有沒有對(duì)應(yīng)的映射關(guān)系,如果沒有找到,就會(huì)找一個(gè)物理頁(yè)吧用戶數(shù)據(jù)寫入,同時(shí)新建一條映射。

      那么,用戶邏輯地址和物理地址的一條映射就生成了。

      每寫入一個(gè)邏輯頁(yè),就會(huì)有一條映射表產(chǎn)生或者更新。

      讀過程

      用戶讀取某一個(gè)區(qū)域,發(fā)送LBA進(jìn)行訪問時(shí),F(xiàn)TL就會(huì)先在映射表池里找呀找,找到與LBA對(duì)應(yīng)的映射表,F(xiàn)TL就知道要在Flash的哪個(gè)物理頁(yè)把數(shù)據(jù)讀出來了。

      如果讀過程沒有找到映射表,那么讀取過程失敗。

      映射表位置

      DRAM

      大多數(shù)存儲(chǔ)設(shè)備都有板載DRAM,映射表就能存儲(chǔ)在DRAM上

      作用:可以快速訪問映射表,快速讀寫

      缺點(diǎn):隨著映射表越來越多,所占DRAM就會(huì)越來越大,提高了成本和功耗。

       

      Flash

      后來的主流是映射表大部分被存在于Flash中,當(dāng)下要用的小部分映射表存于DRAM中。

      作用:降低成本和功耗,還可以避免掉電帶來的映射信息損失,另外Flash空間很大,映射表想放多少放多少。

      Host發(fā)送LBA的時(shí)候,F(xiàn)TL會(huì)先在DRAM中尋找,如果沒有找到對(duì)應(yīng)的映射表,就會(huì)去Flash中讀取映射表,再根據(jù)映射關(guān)系操作對(duì)應(yīng)的物理頁(yè)。

      缺點(diǎn):需要讀取兩次Flash,一次映射表,一次用戶數(shù)據(jù),底層帶寬減小了,對(duì)于隨機(jī)操作來說,就顯得效率低了一點(diǎn)。

       

      映射表更新

      隨著映射表的增加、刪除、覆蓋,到了某個(gè)時(shí)刻就要把映射表寫進(jìn)Flash保存起來,避免掉電時(shí)發(fā)生大量映射表丟失。

      時(shí)不時(shí)將映射表寫進(jìn)Flash,就算發(fā)生了突然的異常掉電,丟失的也只是小部分映關(guān)系,后面還能通過重建映射表恢復(fù)回來。

      映射表的寫入時(shí)刻

      1. 新生的映射表數(shù)量積累到一定的閾值
      2. 用戶寫入的數(shù)據(jù)量積累到一定的閾值
      3. 空閑閃存塊的剩余數(shù)量達(dá)到一定的閾值

      寫入策略

      1. 全部更新

      將所有的映射表,無論是新產(chǎn)生的還是原先就有的,全部一股腦寫入Flash中。

      優(yōu)點(diǎn):固件實(shí)現(xiàn)簡(jiǎn)單,不用去考慮哪些映射表是新的,哪些是原本就有的。

      缺點(diǎn):寫入數(shù)據(jù)量多,影響性能和延時(shí),還會(huì)增加寫入放大。

      2. 增量更新

      只把新產(chǎn)生的映射表寫入Flash中。

      優(yōu)點(diǎn):新增寫入的數(shù)據(jù)量少,性能好,時(shí)效高。

      缺點(diǎn):固件實(shí)現(xiàn)復(fù)雜,還得區(qū)分那么那么些是新增的映射表,哪些是被覆蓋的。

      選擇哪種寫入決策,應(yīng)根據(jù)硬件架構(gòu),結(jié)合實(shí)際情況考慮。

      好了,這次先寫到這兒,祝各位生活愉快。

       

      posted on 2023-06-27 17:24  五月525  閱讀(214)  評(píng)論(0)    收藏  舉報(bào)



      主站蜘蛛池模板: 天堂在线精品亚洲综合网| 色猫咪av在线观看| 精品少妇av蜜臀av| 娇妻玩4p被三个男人伺候 | 国产99视频精品免费视频36 | 国产精品亚洲二区亚瑟| 精品偷拍被偷拍在线观看 | 国产片av在线观看国语| 中文字幕日韩一区二区不卡| 十八禁午夜福利免费网站| 性xxxx搡xxxxx搡欧美| 亚洲精品成人片在线观看精品字幕 | 另类 专区 欧美 制服| 色吊丝免费av一区二区| 亚洲人午夜精品射精日韩| 国产首页一区二区不卡| 国产AV大陆精品一区二区三区| 天堂网av成人在线观看| 欧美亚洲国产日韩电影在线| 国产精品久久蜜臀av| 欧美精品在线观看视频| 亚洲爆乳少妇无码激情| 欧美国产日产一区二区| 成人网站免费在线观看| 亚洲成av人片一区二区| 亚洲一区在线成人av| 国产精品亚洲av三区色| 精品亚洲没码中文字幕| 亚洲精品日韩中文字幕| 国产国产成人精品久久蜜| 男女真人国产牲交a做片野外| 国产精品综合一区二区三区| 国产成人片无码视频| 无码电影在线观看一区二区三区| 无码激情亚洲一区| 国产av一区二区麻豆熟女| 日韩大片高清播放器| 午夜福利yw在线观看2020| 精品无码久久久久久尤物 | 高清中文字幕国产精品| 国产精品午夜福利资源|