亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于硬盤驅(qū)動器的邏輯塊地址映射的制作方法

文檔序號:10488881閱讀:255來源:國知局
用于硬盤驅(qū)動器的邏輯塊地址映射的制作方法
【專利摘要】一種方法可以包括將數(shù)據(jù)寫入到硬驅(qū)動器。在一些示例中,所述方法可以包括:由范圍分配器模塊接收用于寫入數(shù)據(jù)的命令。該命令可以包括由主機(jī)所指定的邏輯塊地址(LBA)和數(shù)據(jù)。所述方法還可以包括:由范圍分配器模塊將主機(jī)所指定的LBA映射為驅(qū)動器LBA。所述方法還可以包括:從范圍分配器模塊發(fā)送用于在驅(qū)動器LBA處寫入數(shù)據(jù)的命令。
【專利說明】用于硬盤驅(qū)動器的邏輯塊地址映射
[0001 ]本申請要求2015年2月2日提交的第62/110,892號美國臨時申請的優(yōu)先權(quán),通過引用將其全部內(nèi)容并入本文。
技術(shù)領(lǐng)域
[0002]本公開涉及疊瓦式(shingled)磁記錄硬盤驅(qū)動器。
【背景技術(shù)】
[0003]硬盤驅(qū)動器(HDD)的疊瓦式磁記錄(SMR)區(qū)域限制了將數(shù)據(jù)寫入到其當(dāng)前位置的能力。這種限制歸因于SMR區(qū)域的大小以及將數(shù)據(jù)讀取和寫入到SMR區(qū)域的軌道中的磁頭。磁頭比其寫入的目標(biāo)軌道寬度更寬,這導(dǎo)致了HDD中的SMR區(qū)的重寫性能的問題。對區(qū)(zone)內(nèi)的軌道進(jìn)行重寫,使得磁頭經(jīng)過相鄰軌道,這可能使得相鄰軌道中的數(shù)據(jù)被覆寫(overwrite)。重寫在前的軌道可能使得HDD為了重寫單個區(qū)段或軌道而對區(qū)的大部分進(jìn)行重寫。因此,與其它類型的HDD相比,SMR HDD可能具有降低的寫入性能。

【發(fā)明內(nèi)容】

[0004]在一個示例中,本公開針對一種方法,其可以包括:由在主機(jī)設(shè)備處運(yùn)行的范圍(extent)分配器模塊接收用于寫入數(shù)據(jù)的命令。所述命令可以包括主機(jī)所指定的邏輯塊地址(LBA)和數(shù)據(jù)。所述方法還可以包括:由范圍分配器模塊將主機(jī)所指定的LBA映射為驅(qū)動器LBA。所述方法還可以包括:將用于在驅(qū)動器LBA處寫入數(shù)據(jù)的命令從范圍分配器模塊發(fā)送到硬驅(qū)動器(hard drive) ο
[0005]在另一示例中,本公開針對一種方法,其可以包括:由在硬驅(qū)動器處運(yùn)行的范圍分配器模塊接收用于寫入數(shù)據(jù)的命令。所述命令可以包括主機(jī)所指定的邏輯塊地址(LBA)和數(shù)據(jù)。所述方法還可以包括:由范圍分配器模塊將主機(jī)所指定的LBA映射為驅(qū)動器物理塊地址(PBA)。驅(qū)動器PBA可以對應(yīng)于當(dāng)前與寫入指針相關(guān)聯(lián)的地址。所述方法還可以包括:將用于在驅(qū)動器PBA處寫入數(shù)據(jù)的命令從范圍分配器模塊發(fā)送到硬驅(qū)動器的硬件引擎。
[0006]在一個示例中,本公開針對一種設(shè)備,其可以包括:至少一個處理器;以及范圍分配器模塊,其可由所述至少一個處理器操作。范圍分配器模塊可以接收用于寫入數(shù)據(jù)的命令。所述命令可以包括主機(jī)所指定的邏輯塊地址(LBA)和數(shù)據(jù)。范圍分配器模塊可以將主機(jī)所指定的LBA映射為驅(qū)動器LBA。范圍分配器模塊也可以將用于在驅(qū)動器LBA處寫入數(shù)據(jù)的命令發(fā)送到硬驅(qū)動器。
[0007]在另一示例中,本公開針對一種設(shè)備,其可以包括接口、硬件引擎和控制器。所述控制器可以包括:至少一個處理器;以及范圍分配器模塊,其可由所述至少一個處理器操作。范圍分配器模塊可以經(jīng)由接口接收用于寫入數(shù)據(jù)的命令。所述命令可以包括主機(jī)所指定的邏輯塊地址(LBA)和數(shù)據(jù)。范圍分配器模塊可以將主機(jī)所指定的LBA映射為驅(qū)動器物理塊地址(PBA)。驅(qū)動器PBA對應(yīng)于當(dāng)前與寫入指針相關(guān)聯(lián)的地址。范圍分配器模塊也可以將用于在驅(qū)動器PBA處寫入數(shù)據(jù)的命令發(fā)送到硬件引擎。
[0008]在附圖和以下描述中闡述本公開的一個或多個示例的細(xì)節(jié)。根據(jù)描述和附圖以及根據(jù)權(quán)利要求,本公開的其它特征、目的和優(yōu)點(diǎn)將顯而易見。
【附圖說明】
[0009]圖1是示出根據(jù)本公開的一個或多個技術(shù)的、硬驅(qū)動器可以充當(dāng)主機(jī)設(shè)備的存儲設(shè)備的示例存儲環(huán)境的概念性和示意性框圖。
[0010]圖2是示出根據(jù)本公開的一個或多個技術(shù)的、示例范圍分配器系統(tǒng)的概念性和示意性框圖。
[0011]圖3是示出根據(jù)本公開的一個或多個技術(shù)的、SMRHDD的示例區(qū)的概念性和示意性框圖。
[0012]圖4是示出根據(jù)本公開的一個或多個技術(shù)的、用于將數(shù)據(jù)存儲到SMRHDD的示例技術(shù)的流程圖。
[0013]圖5是示出根據(jù)本公開的一個或多個技術(shù)的、用于從SMRHDD讀取數(shù)據(jù)的示例技術(shù)的流程圖。
【具體實(shí)施方式】
[0014]本公開描述了用于管理疊瓦式磁記錄(SMR)硬盤設(shè)備(HDD)中的寫入的技術(shù)。例如,SMR HDD可以被配置為循序地將數(shù)據(jù)寫入到SMR HDD的各個區(qū)中,使得SMR HDD將區(qū)看作好像區(qū)是“僅附接的(append-only)”,并且典型地在將數(shù)據(jù)重寫到特定邏輯塊地址(LBA)時不覆寫現(xiàn)有的數(shù)據(jù)軌道。SMR HDD可以維持與每個區(qū)相關(guān)聯(lián)的寫入指針,寫入指針對應(yīng)于用于下一寫入的區(qū)內(nèi)的位置,不管下一寫入是到先前使用的LBA(即先前寫入的)還是新的LBA(即先前未寫入的)。此外,主機(jī)、SMR HDD或二者可以維持當(dāng)將數(shù)據(jù)寫入到SMR HDD時由主機(jī)所使用的LBA與數(shù)據(jù)實(shí)際寫入的物理塊地址(PBA)之間的映射。如果將數(shù)據(jù)寫入到先前使用的LBA,則可以更新LBA,以映射到由寫入指針?biāo)甘镜南乱籔BA,而不是映射到對于先前寫入操作所使用的PBA。以此方式,本公開的技術(shù)可以在從操作系統(tǒng)(OS)隱藏提供提高的寫入性能的SMR HDD的“僅附接的”寫入特性的同時,提高SMR HDD的寫入性能。
[0015]圖1是示出根據(jù)本公開的一個或多個技術(shù)的硬驅(qū)動器可以充當(dāng)主機(jī)設(shè)備的存儲設(shè)備的示例存儲環(huán)境的概念性和示意性框圖。例如,主機(jī)設(shè)備4可以利用在硬驅(qū)動器6中所包含的非易失性存儲器設(shè)備來存儲和取回(retrieve)數(shù)據(jù)。在一些示例中,存儲環(huán)境2可以包括可以操作為存儲陣列的多個存儲設(shè)備,諸如硬驅(qū)動器6。例如,存儲環(huán)境2可以包括被配置作為廉價(jià)/獨(dú)立盤冗余陣列(RAID)的多個硬驅(qū)動器6,該多個硬驅(qū)動器6集體充當(dāng)主機(jī)設(shè)備4的大容量存儲設(shè)備。雖然本公開的技術(shù)一般地涉及存儲環(huán)境2和硬驅(qū)動器6,但可以在利用數(shù)據(jù)的軌道的任何存儲環(huán)境中執(zhí)行在此所描述的技術(shù)。
[0016]存儲環(huán)境2可以包括主機(jī)設(shè)備4,該主機(jī)設(shè)備4可以向和/或從一個或多個存儲設(shè)備(諸如硬驅(qū)動器6)存儲和/或取回?cái)?shù)據(jù)。如圖1所示,主機(jī)設(shè)備4可以經(jīng)由接口 14與硬驅(qū)動器6進(jìn)行通信。主機(jī)設(shè)備4可以包括任何各種各樣的設(shè)備,包括計(jì)算機(jī)服務(wù)器、網(wǎng)絡(luò)附連存儲(NAS)單元、臺式計(jì)算機(jī)、筆記本(S卩,膝上型)計(jì)算機(jī)、平板計(jì)算機(jī)、機(jī)頂盒、電話手機(jī)(諸如,所謂的“智能”電話、所謂的“智能”板)、電視、相機(jī)、顯示設(shè)備、數(shù)字媒體播放器、視頻游戲控制臺、視頻流設(shè)備等。典型地,主機(jī)設(shè)備4包括具有處理單元的任何設(shè)備,該處理單元可以指代任何形式的能夠處理數(shù)據(jù)的硬件,并且可以包括通用處理單元(諸如,中央處理單元(CPU))、專用硬件(諸如,專用集成電路(ASIC))、可配置硬件(諸如,現(xiàn)場可編程門陣列(FPGA))或通過軟件指令、微代碼、固件等方式配置的任何其它形式的處理單元。為了執(zhí)行本公開的技術(shù)的目的,主機(jī)設(shè)備4可以經(jīng)由范圍分配器模塊16和接口 14,將讀取命令和寫入命令發(fā)送到控制器8,以便對存儲到SMR區(qū)域的數(shù)據(jù)進(jìn)行讀取和重寫。僅為了易于說明,下面將范圍分配器模塊16描述為被包含在主機(jī)4上。然而,硬驅(qū)動器6可以包括范圍分配器模塊
17。在一些示例中,主機(jī)4和硬驅(qū)動器6可以各自包括范圍分配器模塊16、17。
[0017]如圖1所示,硬驅(qū)動器6可以包括控制器8、高速緩存(cache)9、硬件引擎10、數(shù)據(jù)存儲設(shè)備12和接口 14。在一些示例中,為了易于說明的目的,硬驅(qū)動器6可以包括在圖1中未示出的附加組件。例如,硬驅(qū)動器6可以包括:功率傳送組件,例如包括電容器、超級電容器或電池;硬驅(qū)動器6的組件機(jī)械地附連(attached)到其上的印制電路板(PCB),并且所述印制電路板(PCB)包括將硬驅(qū)動器6的組件進(jìn)行電氣互連的導(dǎo)電跡線(trace);等等。在一些示例中,硬驅(qū)動器6的物理尺寸和連接器配置可以符合一個或多個標(biāo)準(zhǔn)外形因素。一些示例標(biāo)準(zhǔn)外形因素包括但不限于3.5”HDD,2.5”HDD或I.8”HDD。
[0018]在一些示例中,高速緩存9可以存儲用于在硬驅(qū)動器6的操作期間進(jìn)行處理的信息。在一些示例中,高速緩存9是臨時存儲器,這意味著高速緩存9的主要目的不是長期存儲。硬驅(qū)動器6上的高速緩存9可以作為易失性存儲器被配置用于信息的短期存儲,并且因而如果斷電的話不保留所存儲的內(nèi)容。易失性存儲器的示例包括隨機(jī)存取存儲器(RAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)以及其它形式的本領(lǐng)域公知的易失性存儲器。
[0019]數(shù)據(jù)存儲裝置12可以被配置為存儲比高速緩存9更大量的信息。數(shù)據(jù)存儲裝置12可以作為非易失性存儲器空間進(jìn)一步被配置用于信息的長期存儲,并且在通電/斷電周期之后保留信息。非易失性存儲器的示例包括磁硬盤、光盤、軟盤、閃存或電可編程存儲器(EPROM)或電可擦除可編程存儲器(EEPROM)的形式。數(shù)據(jù)存儲裝置12可以是硬驅(qū)動器6中的一個或多個磁碟盤(platter),每個碟盤包含數(shù)據(jù)的一個或多個軌道的一個或多個區(qū)域。
[0020]硬驅(qū)動器6包括控制器8,該控制器8可以管理硬驅(qū)動器6的一個或多個操作??刂破?可以經(jīng)由接口 14和范圍分配器模塊16與主機(jī)設(shè)備4進(jìn)行接口連接(interface)??刂破?可以對將數(shù)據(jù)存儲到可經(jīng)由硬件引擎10訪問的數(shù)據(jù)存儲裝置12以及從所述數(shù)據(jù)存儲裝置12取回?cái)?shù)據(jù)進(jìn)行管理。作為一個示例,控制器8可以管理去往和來自存儲器設(shè)備(例如,硬盤驅(qū)動器碟盤)的寫入和讀取。在一些示例中,控制器8可以是硬件控制器。在其它示例中,可以將控制器8作為軟件控制器實(shí)現(xiàn)到硬驅(qū)動器6中。
[0021]在這方面,主機(jī)4可以與各種硬件引擎(諸如硬件引擎10)進(jìn)行接口連接,以與各種傳感器進(jìn)行交互。主機(jī)4可以執(zhí)行諸如上述的操作系統(tǒng)之類的軟件,以管理主機(jī)4與硬件引擎10之間的交互。操作系統(tǒng)可以在其中的每個核有效地表示不同CPU的多核CPU的背景下執(zhí)行仲裁,以確定哪些CPU可以訪問硬件引擎10。操作系統(tǒng)還可以在單個CPU的背景下執(zhí)行隊(duì)列管理,以解決硬驅(qū)動器6的硬件引擎10應(yīng)當(dāng)如何處理由主機(jī)4發(fā)出的各種事件(諸如,硬驅(qū)動器6的示例中的讀取命令和寫入命令)。
[0022]在圖1的示例中,硬驅(qū)動器6包括硬件引擎10,該硬件引擎10可以表示負(fù)責(zé)與存儲介質(zhì)進(jìn)行接口連接的硬件。在基于碟盤的硬驅(qū)動器的背景下,硬件引擎10可以表示磁讀取/寫入頭以及用于配置、驅(qū)動和處理由磁讀取/寫入頭所感測到的信號的附隨硬件。
[0023]硬驅(qū)動器6可以包括接口 14,以用于與主機(jī)設(shè)備4進(jìn)行接口連接。接口 14可以包括以下的一個或兩個:用于與主機(jī)設(shè)備4交換數(shù)據(jù)的數(shù)據(jù)總線,用于與主機(jī)設(shè)備4交換命令的控制總線。接口 14可以根據(jù)任何合適的協(xié)議進(jìn)行運(yùn)作。例如,接口 14可以根據(jù)以下協(xié)議中的一個或多個來運(yùn)作:高級技術(shù)附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纖通道、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、串行附連SCSI (SAS)、外圍組件互連(PCI)和PCI高速(PCIe)。將接口 14的電連接體(例如,數(shù)據(jù)總線、控制總線或二者)電連接到控制器8,以提供主機(jī)設(shè)備4與控制器8之間的電連接,使得數(shù)據(jù)得以在主機(jī)設(shè)備4與控制器8之間進(jìn)行交換。在一些示例中,接口 14的電連接體還可以允許硬驅(qū)動器6從主機(jī)設(shè)備4接收功率。
[0024]在一些示例中,硬驅(qū)動器6可以是SMR HDD。在SMR中,HDD數(shù)據(jù)軌道可以部分地重疊先前寫入的數(shù)據(jù)軌道,通過將軌道更靠近地封裝在一起來增加硬驅(qū)動器6的存儲容量。在一些示例中,硬驅(qū)動器6可以分區(qū)為多個區(qū)。每個區(qū)可以包括若干數(shù)據(jù)軌道,并且每個軌道可以包括若干扇區(qū)。在一些示例中,硬驅(qū)動器6可以嘗試將數(shù)據(jù)寫入到已經(jīng)被寫入的數(shù)據(jù)軌道。由于寫入頭(write head)可能比軌道更寬,因此寫入頭也可能覆寫相鄰軌道,這樣可能使得硬驅(qū)動器6對區(qū)的大部分進(jìn)行重寫。因此,硬驅(qū)動器6的寫入性能可能受損。
[0025]為了改進(jìn)寫入性能,硬驅(qū)動器6可以被配置為將寫入到硬盤6的任何數(shù)據(jù)附接到最新近(recently)寫入的數(shù)據(jù)的結(jié)尾,這樣可以使得硬驅(qū)動器6表現(xiàn)為“僅附接的”。不管數(shù)據(jù)是重寫到驅(qū)動器還是第一次寫入到驅(qū)動器,通過將數(shù)據(jù)附接到先前所寫入的數(shù)據(jù)的結(jié)尾,本公開的技術(shù)可以使能提高的寫入性能,這是因?yàn)橛豺?qū)動器6可以花費(fèi)更少的時間來重寫大量數(shù)據(jù)。然而,通過使得每個區(qū)作為用于寫入數(shù)據(jù)的“僅附接的”區(qū)來運(yùn)作,硬驅(qū)動器6和/或主機(jī)4可能不能重寫到同一 LBA,這是因?yàn)閷懭氲酵?LBA典型地造成數(shù)據(jù)將被寫入在同一物理塊地址處,這在SMR HDD中一般導(dǎo)致覆寫其它先前所寫入的軌道。主機(jī)4可以經(jīng)由接口 14將寫入命令發(fā)送到控制器8。在一些示例中,主機(jī)4可以將數(shù)據(jù)塊和LBA發(fā)送到控制器8??刂破?可以解譯LBA,并且使用映射函數(shù)將LBA轉(zhuǎn)換為PBA??刂破?可以使得數(shù)據(jù)在硬驅(qū)動器6上寫入在與主機(jī)4所發(fā)送的LBA相關(guān)聯(lián)的PBA處。在一些示例中,主機(jī)4可以將命令發(fā)送到控制器8,以便控制器8使得寫入頭將數(shù)據(jù)寫入到數(shù)據(jù)已經(jīng)寫入的LBA(例如,以覆寫該LBA處的數(shù)據(jù))。在一些示例中,控制器8可以使得硬驅(qū)動器6重寫與主機(jī)4所利用的LBA相關(guān)聯(lián)的數(shù)據(jù)。因?yàn)樵赟MR中寫入頭典型地比軌道更寬,所以控制器8可以命令寫入頭覆寫鄰近軌道,這覆寫了鄰近軌道中所存儲的數(shù)據(jù),并且可能導(dǎo)致數(shù)據(jù)丟失。為了緩解數(shù)據(jù)丟失,鄰近軌道中所存儲的數(shù)據(jù)可以首先被讀取并且然后寫入到碟盤的另一區(qū)塊,使得在寫入新的數(shù)據(jù)之后,被移動的數(shù)據(jù)可以被讀取并且寫入回到先前存儲數(shù)據(jù)的軌道。
[0026]為了減少SMR硬驅(qū)動器中典型要求的附加讀取和寫入操作,本公開的技術(shù)可以使得主機(jī)4和/或硬驅(qū)動器6能夠管理數(shù)據(jù)存儲裝置12中的數(shù)據(jù)的軌道上的寫入命令。例如,硬驅(qū)動器6可以被配置為以順序方式將數(shù)據(jù)寫入到軌道,使得硬驅(qū)動器6可以被配置為寫入到新的PBA,而不是重用與主機(jī)4所利用的LBA相關(guān)聯(lián)的先前PBA。然而,寫入到下一可用PBA可能導(dǎo)致由主機(jī)4所利用的LBA與由硬驅(qū)動器6所寫入的PBA之間的映射方案的不匹配。
[0027]范圍分配器模塊16、17可以被配置為管理由主機(jī)4所利用的LBA以及由控制器8所利用的LBA。范圍分配器模塊16可以包括映射表,以將由主機(jī)4所利用的LBA( “主機(jī)LBA”)映射為由控制器8所利用的LBA( “驅(qū)動器LBA”),或反之亦然。例如,范圍分配器模塊16可以從主機(jī)4接收寫入命令,并且檢查映射表,以確定對于在前的(pr1r)寫入是否已經(jīng)被寫入到主機(jī)LBA 4上。范圍分配器模塊16可以確定與寫入指針相關(guān)聯(lián)的驅(qū)動器LBA,并且將主機(jī)LBA映射為驅(qū)動器LBA。范圍分配器模塊16可以發(fā)出用于在驅(qū)動器LBA處寫入數(shù)據(jù)的寫入命令。
[0028]范圍分配器模塊17可以包括映射表,以將由主機(jī)4所利用的LBA(“主機(jī)LBA”)映射為由硬驅(qū)動器6所寫入的PBA(“驅(qū)動器PBA”)。例如,范圍分配器模塊17可以從主機(jī)4接收寫入命令,并且檢查映射表,以確定硬驅(qū)動器6先前是否寫入到主機(jī)LBA。范圍分配器模塊17可以確定與寫入指針相關(guān)聯(lián)的驅(qū)動器PBA,并且將主機(jī)LBA映射為驅(qū)動器PBA。范圍分配器模塊17可以發(fā)出使得寫入頭在與主機(jī)LBA相關(guān)聯(lián)的驅(qū)動器PBA處寫入數(shù)據(jù)的寫入命令。
[0029]通過循序地寫入數(shù)據(jù)并且將硬驅(qū)動器6看作“僅附接的”,本公開的技術(shù)與其它SMRHDD相比,可以提高硬驅(qū)動器6的性能。通過將硬驅(qū)動器6看作“僅附接的”,硬驅(qū)動器6不覆寫硬驅(qū)動器6上所存儲的有效數(shù)據(jù)。如果硬驅(qū)動器6在原始PBA處而不是由范圍分配器模塊16、17所映射的PBA處寫入數(shù)據(jù),則硬驅(qū)動器6可以避免必須重寫另外會被覆寫的數(shù)據(jù)。因此,硬驅(qū)動器6可以執(zhí)行比傳統(tǒng)SMR HDD更快的寫入。此外,通過管理由主機(jī)4所利用的LBA與驅(qū)動器LBA或驅(qū)動器PBA之間的映射,范圍分配器模塊16、17可以從OS中隱藏硬驅(qū)動器6的“僅附接的”性質(zhì)。因?yàn)榉秶峙淦髂K16可以管理對于將數(shù)據(jù)寫入到硬驅(qū)動器6以及從硬驅(qū)動器6讀取數(shù)據(jù)所需的信息,所以本公開的技術(shù)可以使得主機(jī)4能夠在使用傳統(tǒng)SMR HDD的同時受益于提高的SMR HDD寫入速度。
[0030]圖2是示出根據(jù)本公開的一個或多個技術(shù)的示例范圍分配器系統(tǒng)的概念性和示意性框圖。范圍分配器系統(tǒng)24可以包括范圍分配器管理模塊25和范圍分配器模塊20A-20N(統(tǒng)稱為“范圍分配器模塊20” ) ο可以在主機(jī)4和/或硬驅(qū)動器6上包含范圍分配器管理模塊25。類似地,可以在主機(jī)4和/或硬驅(qū)動器6上包含范圍分配器模塊20。在一些示例中,范圍分配器系統(tǒng)24包括一個范圍分配器模塊20。然而,在一些示例中,范圍分配器系統(tǒng)24包括一個以上范圍分配器模塊20。例如,對于硬驅(qū)動器6的每一個區(qū),主機(jī)4和/或硬驅(qū)動器6可以包含一個范圍分配器模塊20。
[0031]范圍分配器管理模塊25可以管理一個或多個范圍分配器模塊20,其中的每一個與硬驅(qū)動器6的至少一個相應(yīng)區(qū)相關(guān)聯(lián)。例如,如果主機(jī)4發(fā)送用于在特定主機(jī)LBA處寫入數(shù)據(jù)的命令,則范圍分配器管理模塊25可以詢問指明哪個主機(jī)LBA對應(yīng)于哪個區(qū)的查找表,以便確定將數(shù)據(jù)寫入到哪個區(qū)。在確定特定主機(jī)LBA對應(yīng)于硬驅(qū)動器6的哪個區(qū)之后,范圍分配器管理模塊25可以將寫入命令從主機(jī)4轉(zhuǎn)發(fā)到對于相應(yīng)區(qū)的相應(yīng)范圍分配器模塊20。
[0032]在一些示例中,范圍分配器管理模塊25可以跨越多個硬驅(qū)動器6管理各個區(qū)。例如,范圍分配器管理模塊25可以包括查找表,該查找表包括每個硬驅(qū)動器6以及對于每個相應(yīng)硬驅(qū)動器6的每個區(qū)。如果主機(jī)4發(fā)送用于將數(shù)據(jù)寫入到特定主機(jī)LBA的命令,則范圍分配器管理模塊25可以詢問查找表,以標(biāo)識硬驅(qū)動器6以及對應(yīng)于該特定主機(jī)LBA的區(qū)。在標(biāo)識硬驅(qū)動器6以及對應(yīng)于該特定主機(jī)LBA的區(qū)之后,范圍分配器管理模塊25可以將寫入命令從主機(jī)4轉(zhuǎn)發(fā)到被配置為管理所標(biāo)識的硬驅(qū)動器6和區(qū)的數(shù)據(jù)的相應(yīng)范圍分配器模塊20。
[0033]圖2的范圍分配器模塊20可以對應(yīng)于圖1的范圍分配器模塊16或范圍分配器模塊17。每個范圍分配器模塊20A-20N可以包括相應(yīng)映射表22A-22N(統(tǒng)稱為“映射表22”)。雖然映射表22在圖2中被不出為包括用于各個主機(jī)LBA的多個行,但在實(shí)現(xiàn)方式中,映射表22典型地包括用于每個主機(jī)LBA的單個行,并且根據(jù)需要來更新驅(qū)動器LBA值,而不是在映射表22中添加新的行。為了說明的目的并且為了簡化本公開的技術(shù)的描述,映射表22包括用于各個主機(jī)LBA和驅(qū)動器LBA的多個行。范圍分配器模塊20可以通過從主機(jī)4接收讀取命令和寫入命令并且向硬驅(qū)動器6發(fā)出讀取命令和寫入命令,來促進(jìn)主機(jī)4與硬驅(qū)動器6之間的數(shù)據(jù)的寫入和讀取。正如將參照圖3所描述的,范圍分配器模塊20還可以使得元數(shù)據(jù)被寫入到硬驅(qū)動器6。
[0034]為了易于說明,將參照范圍分配器模塊20A描述范圍分配器模塊20。在一些示例中,范圍分配器模塊20A可以被包含在主機(jī)4上(例如,在范圍分配器模塊20A對應(yīng)于圖1的范圍分配器模塊16的示例中)。主機(jī)4可以發(fā)出用于在由主機(jī)所利用的特定LBA(例如,塊1)(又被稱為主機(jī)LBA)處寫入數(shù)據(jù)的寫入命令。主機(jī)4可以通過調(diào)用“PUT”函數(shù)來發(fā)送寫入命令,該函數(shù)的參數(shù)可以包括將要被寫入到硬驅(qū)動器6的數(shù)據(jù)以及主機(jī)LBA。范圍分配器模塊20A可以從主機(jī)4接收寫入命令。范圍分配器模塊20A可以基于在映射表22A中存儲的數(shù)據(jù),確定數(shù)據(jù)是否先前已經(jīng)寫入到主機(jī)LBA。
[0035]映射表22A可以包括多個行和列。在一些示例中,映射表22A可以包括列“主機(jī)LBA”和“驅(qū)動器LBA”。主機(jī)LBA可以表示由主機(jī)4所利用的LBA,而驅(qū)動器LBA可以表示由硬驅(qū)動器6上的控制器8所利用的LBA?;谟成浔?2A,范圍分配器模塊20A可以將主機(jī)LBA轉(zhuǎn)譯(translate)為驅(qū)動器LBA。因此,主機(jī)4可以發(fā)送寫入命令,范圍分配器模塊20A可以將主機(jī)LBA映射為驅(qū)動器LBA,并且范圍分配器模塊20A可以發(fā)出寫入命令,使得硬驅(qū)動器6可以以順序方式寫入數(shù)據(jù)。由范圍分配器模塊20A所發(fā)出的寫入命令可以包括將要寫入的數(shù)據(jù)、指定將要在硬驅(qū)動器6上的何處寫入數(shù)據(jù)的驅(qū)動器LBA以及將要寫入的數(shù)據(jù)的長度。
[0036]控制器8可以從范圍分配器模塊20A接收寫入命令,使得寫入頭在區(qū)中的下一PBA處寫入數(shù)據(jù),并且返回與PBA相關(guān)聯(lián)的驅(qū)動器LBA。例如,在主機(jī)4第一次發(fā)送用于在主機(jī)LBAI處寫入數(shù)據(jù)的寫入命令時,范圍分配器模塊20A可以從主機(jī)4接收用于在主機(jī)LBA I處寫入數(shù)據(jù)的寫入命令,并且確定對應(yīng)的驅(qū)動器LBA。范圍分配器模塊20A可以通過確定當(dāng)前與區(qū)的寫入指針相關(guān)聯(lián)的地址,來確定下一可用的驅(qū)動器LBA。當(dāng)前與給定區(qū)的寫入指針相關(guān)聯(lián)的地址還可以被稱為下一寫入地址。
[0037]在示出的示例中,區(qū)的寫入指針指向驅(qū)動器LBAI。范圍分配器模塊20A可以更新映射表22A,以記錄對應(yīng)的主機(jī)LBA和驅(qū)動器LBA,并且可以將命令發(fā)送到控制器8,以將數(shù)據(jù)寫入到驅(qū)動器LBA I。在一些示例中,范圍分配器模塊20A可能確定映射表22A不包括與主機(jī)LBA對應(yīng)的項(xiàng),并且可能在映射表22A中創(chuàng)建新的項(xiàng),以記錄對應(yīng)的主機(jī)LBA和驅(qū)動器LBAt^U如,范圍分配器模塊20A可以詢問映射表22A,以確定映射表22A是否包括主機(jī)LBA I的項(xiàng)。如果映射表22A不包括與主機(jī)LBA I對應(yīng)的項(xiàng),則范圍分配器模塊20A可以在映射表22A中創(chuàng)建對于主機(jī)LBA I和對應(yīng)的驅(qū)動器LBA的新項(xiàng)。在一些示例中,范圍分配器模塊20A可以將寫入命令發(fā)送到控制器8,然后更新映射表22A,并且響應(yīng)于接收到在其處控制器8實(shí)際寫入數(shù)據(jù)的驅(qū)動器LBA的指示而更新映射表22A,以將主機(jī)LBA映射為由控制器8所指示的驅(qū)動器LBA??刂破?可以將驅(qū)動器LBA I轉(zhuǎn)換為驅(qū)動器PBA,并且命令寫入頭在對應(yīng)的PBA處寫入數(shù)據(jù)。
[0038]主機(jī)4可以第一次發(fā)送用于在主機(jī)LBA2處寫入數(shù)據(jù)的命令?;诋?dāng)前與區(qū)寫入指針相關(guān)聯(lián)的地址,范圍分配器模塊20A可以將主機(jī)LBA 2映射為驅(qū)動器LBA 2。范圍分配器模塊20A可以發(fā)出使得在驅(qū)動器LBA 2處寫入數(shù)據(jù)的寫入命令。在寫入數(shù)據(jù)之后,可以更新區(qū)寫入指針,以指向硬驅(qū)動器6上的下一可用的驅(qū)動器LBA(例如,驅(qū)動器LBA 3)。類似地,范圍分配器模塊20A可以從主機(jī)4接收用于在LBA 3處寫入數(shù)據(jù)的命令。范圍分配器模塊20A可以檢查映射表22A,確定主機(jī)LBA 3還未被寫入,并且將主機(jī)LBA 3映射為與區(qū)寫入指針相關(guān)聯(lián)的驅(qū)動器LBA(例如,驅(qū)動器LBA3)。范圍分配器模塊20A可以將命令發(fā)送到控制器8,以便控制器8使得寫入頭在相關(guān)聯(lián)驅(qū)動器LBA處寫入數(shù)據(jù)。對于控制器8所接收的每個寫入命令,控制器8可以將驅(qū)動器LBA轉(zhuǎn)譯為PBA,并且使得硬驅(qū)動器6在特定PBA處寫入數(shù)據(jù)。例如,控制器8可以向硬件引擎發(fā)送使得寫入頭寫入數(shù)據(jù)的命令。
[0039]主機(jī)4可以第二次發(fā)送用于將數(shù)據(jù)寫入到主機(jī)LBA I的命令。然而,因?yàn)橛豺?qū)動器6被配置為將數(shù)據(jù)附接到最新近寫入的數(shù)據(jù)的結(jié)尾,所以范圍分配器模塊20A可以被配置為將主機(jī)LBA重新映射為與當(dāng)前與寫入指針相關(guān)聯(lián)的地址對應(yīng)的新的驅(qū)動器LBA。在示出的示例中,在主機(jī)4第二次發(fā)送用于在主機(jī)LBA I處寫入數(shù)據(jù)的寫入命令時,范圍分配器模塊20A可以確定寫入指針對應(yīng)于驅(qū)動器LBA4。因此,范圍分配器模塊20A可以將主機(jī)LBAl重新映射為驅(qū)動器LBA4。在一些示例中,范圍分配器模塊20A可以確定映射表22A已經(jīng)包括與主機(jī)LBA對應(yīng)的項(xiàng),并且可以更新映射表22A中的現(xiàn)有項(xiàng),以將主機(jī)LBA映射為新的驅(qū)動器LBA。例如,范圍分配器模塊20A可以詢問映射表22A,以確定映射表22A是否包括主機(jī)LBAl的項(xiàng)。如果映射表22A包括主機(jī)LBAl的項(xiàng),則范圍分配器模塊20A可以將主機(jī)LBAl的現(xiàn)有映射從驅(qū)動器LBAl更新為驅(qū)動器LBA 4。在一些示例中,范圍分配器模塊20A可以在映射表22A中創(chuàng)建新的項(xiàng),以用于主機(jī)LBA與驅(qū)動器LBA之間的更新的映射。例如,范圍分配器模塊20A可以在映射表22A中創(chuàng)建將主機(jī)LBA I映射為驅(qū)動器LBA 4的新的行,并且刪除在前的映射或者將在前的映射標(biāo)記為無效。
[0040]范圍分配器模塊20A可以將用于在更新的驅(qū)動器LBA4處寫入數(shù)據(jù)的命令發(fā)送到控制器8??刂破?可以向硬件引擎發(fā)送命令,使得硬驅(qū)動器6在與驅(qū)動器LBA 4相關(guān)聯(lián)的PBA處寫入數(shù)據(jù)。通過在當(dāng)前與寫入指針相關(guān)聯(lián)的地址處附接數(shù)據(jù),硬驅(qū)動器6的性能對于其它SMR HDD可以得到提高,這是因?yàn)椋捎卩徑壍啦话行?shù)據(jù),因此在當(dāng)前與寫入指針相關(guān)聯(lián)的地址處寫入數(shù)據(jù)不會覆寫硬驅(qū)動器6上所存儲的其它有效數(shù)據(jù),使得硬驅(qū)動器6能夠避免必須重寫在硬驅(qū)動器6在原始PBA處而不是更新的PBA處寫入數(shù)據(jù)的情況下會被覆寫的數(shù)據(jù)。此外,范圍分配器模塊20A可以通過管理主機(jī)LBA與驅(qū)動器LBA之間的映射,從OS隱藏硬驅(qū)動器6的“僅附接的”寫入。
[0041]在第二次嘗試寫入到主機(jī)LBA塊I之后,主機(jī)4可以發(fā)送用于在主機(jī)LBA 4處寫入數(shù)據(jù)的寫入命令。范圍分配器模塊20A可以檢查映射表22A,并且確定:由于映射表22A中不存在對于主機(jī)LBA 4的現(xiàn)有項(xiàng),因此主機(jī)LBA 4先前未被寫入。范圍分配器模塊20A可以執(zhí)行查找,以確定與寫入指針相關(guān)聯(lián)的當(dāng)前驅(qū)動器LBA,以基于所述查找而確定區(qū)的寫入指針與驅(qū)動器LBA 5對應(yīng),并且將主機(jī)LBA 4映射為驅(qū)動器LBA 5。范圍分配器模塊20A可以發(fā)出使得控制器8在驅(qū)動器LBA 5處寫入數(shù)據(jù)的寫入命令。在寫入數(shù)據(jù)之后,范圍分配器模塊20A可以將寫入指針的值更新為下一可用的驅(qū)動器LBA的值(例如,驅(qū)動器LBA 6)。
[0042]主機(jī)4可以發(fā)送用于將數(shù)據(jù)寫入到先前已經(jīng)寫入數(shù)據(jù)的主機(jī)LBA的附加命令。例如,在嘗試寫入主機(jī)LBA 1-6之后,主機(jī)4可以發(fā)送用于在主機(jī)LBA 2處重寫數(shù)據(jù)的命令。范圍分配器模塊20A可以檢查映射表22A,并且確定主機(jī)LBA 2過去已經(jīng)被寫入(S卩,因?yàn)橛成浔?2A內(nèi)存在主機(jī)LBA 2的項(xiàng),并且該項(xiàng)并未被標(biāo)記為無效)。范圍分配器模塊20A并不是將數(shù)據(jù)寫入到驅(qū)動器LBA 2,而是可以確定當(dāng)前與寫入指針相關(guān)聯(lián)的地址(S卩,由寫入指針?biāo)鎯Φ腖BA),并且將主機(jī)LBA 2映射為當(dāng)前與寫入指針相關(guān)聯(lián)的地址(例如,映射表22A所示的驅(qū)動器LBA 8)。在該示例中,范圍分配器模塊20A可以確定下一可用的驅(qū)動器LBA是驅(qū)動器LBA 8,并且可以更新映射表22A,以示出主機(jī)LBA 2在驅(qū)動器LBA 8處寫入到硬驅(qū)動器6。
[0043]范圍分配器模塊20A可以繼續(xù)從主機(jī)4接收寫入命令,并且確定每個命令的主機(jī)LBA是否為第一次寫入或者主機(jī)LBA過去是否已被使用。范圍分配器模塊20A可以確定與寫入指針相關(guān)聯(lián)的驅(qū)動器LBA,并且將主機(jī)LBA映射為與寫入指針相關(guān)聯(lián)的驅(qū)動器LBA。范圍分配器模塊20A可以發(fā)出寫入命令,并且將數(shù)據(jù)和更新的驅(qū)動器LBA傳遞到控制器8,使得能夠在所確定的驅(qū)動器LBA處將數(shù)據(jù)寫入到硬驅(qū)動器6。
[0044]在一些示例中,范圍分配器模塊20A管理相應(yīng)區(qū)30的寫入指針。在一些示例中,范圍分配器模塊20A可以通過詢問映射表22A來確定寫入指針的值,以確定映射表22A中所記錄的最大主機(jī)LBA,并且將寫入指針設(shè)定為下一可用的(S卩,下一未使用的)驅(qū)動器LBA。例如,范圍分配器模塊20A可以詢問映射表22A,確定映射表22A中所記錄的最末的驅(qū)動器LBA是驅(qū)動器LBA 13,并且將寫入指針設(shè)定為下一未使用的驅(qū)動器LBA(S卩,驅(qū)動器LBA 14)。在一些示例中,寫入指針包括由主機(jī)4或硬驅(qū)動器6所管理的存儲器中所存儲的整數(shù)。例如,在范圍分配器模塊20A將主機(jī)LBA映射為特定驅(qū)動器LBA并且硬驅(qū)動器6將數(shù)據(jù)寫入到該特定驅(qū)動器LBA之后,范圍分配器模塊20A可以將存儲器中所存儲的整數(shù)更新為與硬驅(qū)動器6上的下一未使用的驅(qū)動器LBA對應(yīng)的數(shù)字。
[0045]主機(jī)4可以發(fā)送用于讀取在給定的主機(jī)LBA處存儲的數(shù)據(jù)的讀取命令。范圍分配器模塊20A可以接收命令,并且可以基于映射表22A來確定與主機(jī)LBA相關(guān)聯(lián)的當(dāng)前驅(qū)動器LBA。范圍分配器模塊20A可以將具有最新近的驅(qū)動器LBA的讀取命令發(fā)送到控制器8??刂破?可以從范圍分配器模塊20A接收該讀取命令,并且使得與該驅(qū)動器LBA相關(guān)聯(lián)的數(shù)據(jù)得以讀取。
[0046]在一些示例中,范圍分配器模塊20A可以被包含在硬驅(qū)動器6內(nèi)而不是主機(jī)4內(nèi),諸如在控制器8包含范圍分配器模塊17的示例中,如圖1所示。在該示例中,范圍分配器模塊20A可以從主機(jī)4接收主機(jī)LBA,并且將主機(jī)LBA映射為驅(qū)動器I3BA。在該示例中,映射表22將包括列“主機(jī)LBA”和“驅(qū)動器PBA”。例如,范圍分配器模塊20A可以詢問映射表22A,以確定映射表22A是否包括對于特定主機(jī)LBA的項(xiàng)。如果主機(jī)4發(fā)送用于將數(shù)據(jù)寫入到已經(jīng)被寫入的特定主機(jī)LBA的命令,則范圍分配器模塊20A可以將主機(jī)LBA重新映射為新的PBA,該新的PBA對應(yīng)于當(dāng)前與寫入數(shù)據(jù)的特定區(qū)的區(qū)寫入指針相關(guān)聯(lián)的地址。范圍分配器模塊20A可以通過更新映射表22A中的現(xiàn)有項(xiàng)或者通過在映射表22A中創(chuàng)建新的項(xiàng)并且將現(xiàn)有映射標(biāo)記為陳舊或無效的,來將主機(jī)LBA重新映射為新的PBA。范圍分配器模塊20A可以發(fā)送包括該新的PBA的寫入命令,以便控制器8使得數(shù)據(jù)在該新的PBA處被寫入到硬驅(qū)動器6。類似地,主機(jī)4可以將包括主機(jī)LBA的讀取命令發(fā)送到范圍分配器模塊20A。范圍分配器模塊20A可以確定與主機(jī)4所指定的特定LBA相關(guān)聯(lián)的PBA,并且發(fā)出使得數(shù)據(jù)從該P(yáng)BA被讀取的讀取命令。硬驅(qū)動器6上的范圍分配器模塊20A還可以維持硬驅(qū)動器6上的相應(yīng)區(qū)的寫入指針。例如,范圍分配器模塊20A可以通過以下操作來確定寫入指針:詢問映射表22A,確定在映射表22A中所記錄的最大驅(qū)動器PBA,并且將寫入指針設(shè)定為下一寫入的PBA。在一些示例中,范圍分配器模塊20A可以通過在存儲器中存儲與硬驅(qū)動器6上的下一未使用的PBA對應(yīng)的整數(shù)來維持寫入指針。
[0047]圖3是示出根據(jù)本公開的一個或多個技術(shù)的SMRHDD的示例區(qū)的概念性和示意性框圖。雖然圖3中僅示出單個區(qū),但硬盤6可以包括任何數(shù)量的區(qū)30。在一些示例中,硬驅(qū)動器6的每個區(qū)30可以存在一個范圍分配器模塊20。每個區(qū)30與對應(yīng)于區(qū)30內(nèi)用于下一寫入的位置的相應(yīng)寫入指針相關(guān)聯(lián)。在一些示例中,主機(jī)4或硬驅(qū)動器6可以包括范圍分配器管理模塊25,該范圍分配器管理模塊25確定哪個范圍分配器模塊20將從主機(jī)4接收寫入命令。范圍分配器管理模塊25可以包括查找表,該查找表包括每個硬驅(qū)動器6、范圍分配器模塊20以及與每個硬驅(qū)動器6和范圍分配器模塊20相關(guān)聯(lián)的主機(jī)LBA的區(qū)間(range)。范圍分配器管理模塊25可以從主機(jī)4接收寫入命令,確定哪個范圍分配器模塊20應(yīng)當(dāng)接收寫入命令,并且將寫入命令轉(zhuǎn)發(fā)到相應(yīng)范圍分配器模塊20。當(dāng)特定范圍分配器模塊20從主機(jī)4接收到用于在其相應(yīng)區(qū)30中的主機(jī)LBA處寫入數(shù)據(jù)的命令時,范圍分配器模塊20可以使用如參照圖2所描述的映射表22,將從主機(jī)4接收到的主機(jī)LBA轉(zhuǎn)譯為驅(qū)動器LBA。
[0048]在一些示例中,區(qū)30包括多個范圍32、多個元數(shù)據(jù)34以及概要元數(shù)據(jù)35。每個范圍32包括來自主機(jī)4的與相應(yīng)寫入命令對應(yīng)的數(shù)據(jù)。元數(shù)據(jù)34的每個區(qū)段(sect1n)提供關(guān)于相應(yīng)范圍32的信息。在一些示例中,元數(shù)據(jù)34包括相關(guān)聯(lián)的范圍32的驅(qū)動器LBA 36(例如,由范圍分配器模塊20所映射的LBA)、范圍的長度或大小37(例如,位的數(shù)量)以及一個或多個后向指針38。一個或多個后向指針38可以指定與不同數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)34的集合的位置。在一些示例中,元數(shù)據(jù)34可以包括在范圍32內(nèi)所包含的數(shù)據(jù)的校驗(yàn)和。元數(shù)據(jù)34可以包括更多或更少類別的信息。元數(shù)據(jù)34可以是固定大小。然而,元數(shù)據(jù)34在大小方面可以是可變的。
[0049]概要元數(shù)據(jù)35可以包括在被指明為存儲多個元數(shù)據(jù)34集合的硬驅(qū)動器6的特定部分內(nèi)所存儲的元數(shù)據(jù)集合。概要元數(shù)據(jù)35可以包括關(guān)于區(qū)30中的每個范圍32的信息,諸如相應(yīng)驅(qū)動器LBA 36,PBA 39和數(shù)據(jù)長度37。數(shù)據(jù)長度37指定數(shù)據(jù)的大小(例如,數(shù)據(jù)的字節(jié)的數(shù)量、用于存儲數(shù)據(jù)的塊的數(shù)量等)。
[0050]在操作中,范圍分配器模塊20可以向控制器8發(fā)送包含數(shù)據(jù)和驅(qū)動器LBA的寫入命令,以便控制器8使得數(shù)據(jù)被寫入到區(qū)30中的范圍32。范圍分配器模塊20還可以命令控制器8將元數(shù)據(jù)34寫入到相應(yīng)區(qū)??刂破?可以使寫入頭在每一范圍32之后寫入元數(shù)據(jù)34,使得每一范圍32具有對應(yīng)區(qū)段的元數(shù)據(jù)34。在一些示例中,范圍分配器模塊20使元數(shù)據(jù)34被附接到區(qū)30,從而使得元數(shù)據(jù)34可以緊接地位于其相應(yīng)范圍32之后。
[0051]元數(shù)據(jù)34可以允許硬驅(qū)動器6和/或主機(jī)4確定在硬驅(qū)動器6上何處寫入范圍32。如圖3所示,在一些示例中,每個元數(shù)據(jù)34為固定大小,并且元數(shù)據(jù)包括范圍32的驅(qū)動器LBA36和大小37。因此,主機(jī)4和/或硬驅(qū)動器6可以計(jì)算范圍32的開始位置以及在前的元數(shù)據(jù)34的位置。在一些示例中,一個或多個后向指針38可以加速發(fā)現(xiàn)更早的元數(shù)據(jù)34。一個或多個后向指針38可以指向先前寫入的元數(shù)據(jù)34或范圍32,這可以允許主機(jī)4或控制器8確定元數(shù)據(jù)34的先前一個區(qū)段(或多個區(qū)段)位于何處,而無需計(jì)算位置。因此,主機(jī)4或控制器8可以更高效地確定在前的范圍32位于何處。
[0052]控制器8可以在預(yù)定數(shù)量的范圍32之后寫入概要元數(shù)據(jù)35。在一些示例中,控制器8可以在被指明為存儲多個元數(shù)據(jù)36集合的硬驅(qū)動器6的部分中(諸如,在相應(yīng)區(qū)30的結(jié)尾處)寫入概要元數(shù)據(jù)35。概要元數(shù)據(jù)35可以使得主機(jī)4或硬驅(qū)動器6能夠確定區(qū)30上的每一范圍32的驅(qū)動器LBA、PBA和大小,而無需讀取整個區(qū)30。
[0053]在一些示例中,可能需要重建映射表22,并且范圍分配器模塊20可以基于元數(shù)據(jù)來確定哪個驅(qū)動器LBA對應(yīng)于給定的主機(jī)LBA。由于典型地循序?qū)懭朐獢?shù)據(jù),因此當(dāng)前與特定主機(jī)LBA對應(yīng)的元數(shù)據(jù)可以是對于在該特定主機(jī)LBA處存儲的數(shù)據(jù)的最新近寫入的元數(shù)據(jù)。范圍分配器模塊20可以至少通過確定哪個驅(qū)動器LBA被包含在對于在特定主機(jī)LBA處寫入的數(shù)據(jù)的最新近寫入的元數(shù)據(jù)中,來確定哪個驅(qū)動器LBA對應(yīng)于該特定主機(jī)LBA。例如,如果范圍分配器模塊20將主機(jī)LBA I映射為驅(qū)動器LBA I,并且稍后將主機(jī)LBA I重新映射為驅(qū)動器LBA 4,則范圍分配器模塊20可以通過確定哪個元數(shù)據(jù)集合是最新近寫入的、詢問對應(yīng)于主機(jī)LBA I的當(dāng)前元數(shù)據(jù),來確定與主機(jī)LBA I相關(guān)聯(lián)的哪個元數(shù)據(jù)集合是與主機(jī)LBAI相關(guān)聯(lián)的當(dāng)前元數(shù)據(jù),并且確定該元數(shù)據(jù)包含驅(qū)動器LBA 4。
[0054]范圍分配器模塊20可以輔助硬驅(qū)動器6的垃圾收集。例如,對特定主機(jī)LBA進(jìn)行重寫數(shù)據(jù),可以使得硬驅(qū)動器6上的數(shù)據(jù)變?yōu)殛惻f或無效的。此外,映射表22可能包括陳舊或無效的項(xiàng)。例如,如果特定主機(jī)LBA被寫入超過一次,則僅僅該主機(jī)LBA與驅(qū)動器LBA(或驅(qū)動器PBA)之間的最新近映射是有效的。主機(jī)4和/或控制器8可以通過以下操作來執(zhí)行垃圾收集:將映射表22中的主機(jī)LBA的至少一部分重新映射為驅(qū)動器LBA(或驅(qū)動器I3BA)的連續(xù)區(qū)段,并且使硬驅(qū)動器6的寫入頭在區(qū)30內(nèi)的連續(xù)塊中重寫相應(yīng)數(shù)據(jù)。
[0055]圖4是示出根據(jù)本公開的一個或多個技術(shù)的用于將數(shù)據(jù)存儲到SMRHDD的示例技術(shù)的流程圖。為了說明的目的,將參考圖1的硬驅(qū)動器6、圖2的范圍分配器模塊20和圖3的區(qū)30來描述圖4所示的示例性技術(shù),但可以通過硬件或軟件的任何組合來使用所述技術(shù)。
[0056]在一些示例中,范圍分配器模塊20可以從主機(jī)4接收寫入命令(42)。寫入命令可以包括數(shù)據(jù)塊和主機(jī)LBA。在一些示例中,主機(jī)4可以發(fā)送對于已經(jīng)被寫入的主機(jī)LBA的寫入命令。范圍分配器模塊20可以檢查映射表22,以確定主機(jī)LBA是否已經(jīng)被寫入。
[0057]范圍分配器模塊20可以將從主機(jī)4接收到的主機(jī)LBA映射為驅(qū)動器LBA(44)。例如,范圍分配器模塊20可以詢問映射表22,并且確定映射表22是否包括對于由主機(jī)4所指定的特定主機(jī)LBA的項(xiàng)。如果映射表22包括對于由主機(jī)4所指定的特定主機(jī)LBA的項(xiàng),則范圍分配器模塊20可以將主機(jī)LBA與驅(qū)動器LBA之間的映射更新為當(dāng)前與寫入指針相關(guān)聯(lián)的地址。如果映射表22不包括對于由主機(jī)4所指定的特定主機(jī)LBA的項(xiàng),則范圍分配器模塊20可以在映射表22中創(chuàng)建將由主機(jī)4所指定的主機(jī)LBA映射為當(dāng)前與寫入指針相關(guān)聯(lián)的地址的項(xiàng)。在一些示例中,范圍分配器模塊20可以基于硬驅(qū)動器6的相應(yīng)區(qū)的寫入指針,確定哪個驅(qū)動器LBA將映射為主機(jī)LBA。
[0058]范圍分配器模塊20可以通過詢問映射表22來確定當(dāng)前與寫入指針相關(guān)聯(lián)的地址,以確定下一未使用的驅(qū)動器LBA(S卩,尚未被寫入的最小驅(qū)動器LBA)。在一些示例中,寫入指針可以包括存儲器中所存儲的整數(shù),并且范圍分配器模塊20可以在每一個寫入之后增加該整數(shù),使得該整數(shù)對應(yīng)于下一未使用的驅(qū)動器LBA。在一些示例中,寫入指針對應(yīng)于下一未使用的驅(qū)動器PBA(即,尚未寫入的最小驅(qū)動器PBA)。
[0059]在一些示例中,范圍分配器模塊20可以將從主機(jī)4接收到的主機(jī)LBA映射為驅(qū)動器PBAt^U如,范圍分配器模塊20可以詢問映射表22,并且確定映射表22是否包括對于由主機(jī)4所指定的特定主機(jī)LBA的項(xiàng)。如果映射表22包括對于由主機(jī)4所指定的特定主機(jī)LBA的項(xiàng),則范圍分配器模塊20可以將特定主機(jī)LBA重新映射為當(dāng)前與寫入指針相關(guān)聯(lián)的地址。如果映射表22不包括對于由主機(jī)4所指定的特定主機(jī)LBA的項(xiàng),則范圍分配器模塊20可以創(chuàng)建將由主機(jī)4所指定的特定主機(jī)LBA映射為由寫入指針?biāo)甘镜腜BA的項(xiàng)。
[0060]范圍分配器模塊20可以向硬驅(qū)動器6發(fā)送包括由主機(jī)4所指定的數(shù)據(jù)以及被映射為主機(jī)4所指定的主機(jī)LBA的驅(qū)動器LBA的寫入命令(46)。寫入命令可以使得硬驅(qū)動器6將數(shù)據(jù)寫入到由范圍分配器模塊20所確定的驅(qū)動器LBA。在硬驅(qū)動器6包括范圍分配器模塊20的實(shí)例中,控制器8可以從主機(jī)4接收寫入命令。范圍分配器模塊20可以將主機(jī)LBA映射為對應(yīng)的驅(qū)動器LBA或驅(qū)動器PBA,可以維持指示下一未使用的塊地址的寫入指針,并且可以將主機(jī)LBA映射為當(dāng)前與寫入指針相關(guān)聯(lián)的地址。由于寫入指針指向下一未使用的塊,所以范圍分配器模塊20以順序方式將主機(jī)LBA映射為對應(yīng)的驅(qū)動器LBA或驅(qū)動器PBA。因此,硬驅(qū)動器6可以循序地寫入數(shù)據(jù),這樣可以減少必須重寫的數(shù)據(jù)量,并且提高硬驅(qū)動器6的寫入性能。
[0061]范圍分配器模塊20可以向控制器8發(fā)送用于將元數(shù)據(jù)34寫入到硬驅(qū)動器6的命令
(48)。在一些示例中,控制器8可以使得寫入頭在緊隨數(shù)據(jù)的位置中在每一范圍32之后將元數(shù)據(jù)34寫入到硬驅(qū)動器6。元數(shù)據(jù)34可以包括與數(shù)據(jù)對應(yīng)的驅(qū)動器LBA、數(shù)據(jù)長度和對元數(shù)據(jù)34的至少一個在前區(qū)段的一個或多個后向指針,以及被寫入到范圍32的數(shù)據(jù)的校驗(yàn)和。元數(shù)據(jù)34可以使得硬驅(qū)動器6和/或主機(jī)4能夠確定在硬驅(qū)動器6上何處寫入范圍32。在一些示例中,主機(jī)4和/或硬驅(qū)動器6可以基于元數(shù)據(jù)34的大小、驅(qū)動器LBA 36和范圍32的大小37,確定范圍32的開始位置和在前的元數(shù)據(jù)34的位置。
[0062]范圍分配器模塊20可以向控制器8發(fā)送用于將概要元數(shù)據(jù)寫入到硬驅(qū)動器6的命令(50)。在一些示例中,概要元數(shù)據(jù)可以包括對于每個數(shù)據(jù)的范圍的驅(qū)動器LBA、PBA以及數(shù)據(jù)長度。在一些示例中,范圍分配器模塊20可以使得概要元數(shù)據(jù)被寫入在區(qū)30的結(jié)尾處。概要元數(shù)據(jù)可以使得主機(jī)4和/或硬驅(qū)動器6能夠在未讀取整個區(qū)30的情況下確定區(qū)30上的每一個范圍32的驅(qū)動器LBA、PBA和大小。
[0063]圖5是示出根據(jù)本公開的一個或多個技術(shù)的用于從SMRHDD讀取數(shù)據(jù)的示例方法的流程圖。為了說明的目的,將參考圖1的硬驅(qū)動器6、圖2的范圍分配器模塊20和圖3的區(qū)30來描述圖5所示的示例性技術(shù),但可以通過硬件或軟件的任何組合來使用所述技術(shù)。
[0064]在一些示例中,主機(jī)4可以發(fā)送用于從特定主機(jī)LBA讀取數(shù)據(jù)的讀取命令。范圍分配器模塊20可以從主機(jī)4接收該讀取命令(62)。讀取命令可以包括指定主機(jī)4想要接收哪個數(shù)據(jù)塊的主機(jī)LBA。
[0065]范圍分配器模塊20可以確定與主機(jī)4所指定的LBA相關(guān)聯(lián)的驅(qū)動器LBA(64)。例如,范圍分配器模塊20可以詢問映射表22,以確定哪個驅(qū)動器LBA先前被映射為主機(jī)LBA。在一些示例中,映射表22可以包括對于由主機(jī)4所指定的LBA的多個項(xiàng)。范圍分配器模塊20可以通過確定項(xiàng)是否已經(jīng)被標(biāo)記為無效或陳舊或者通過確定哪個項(xiàng)將主機(jī)LBA映射為最大驅(qū)動器LBA,來確定哪個項(xiàng)包括當(dāng)前映射。在一些示例中,范圍分配器模塊20可以確定與主機(jī)4所指定的LBA相關(guān)聯(lián)的驅(qū)動器PBA。例如,范圍分配器模塊20可以詢問映射表22,以確定哪個驅(qū)動器PBA先前被映射為主機(jī)LBA。如果映射表22包括對于主機(jī)LBA的多個項(xiàng),則范圍分配器模塊20可以通過確定項(xiàng)是否已經(jīng)被標(biāo)記為陳舊或無效或者通過確定哪個項(xiàng)將主機(jī)LBA映射為最大驅(qū)動器PBA,來確定哪個項(xiàng)包括當(dāng)前映射。
[0066]范圍分配器模塊20可以向硬驅(qū)動器6發(fā)送用于在與主機(jī)LBA相關(guān)聯(lián)的驅(qū)動器LBA處讀取數(shù)據(jù)的讀取命令(66)。在一些示例中,該讀取命令可以包括驅(qū)動器LBA。在一些示例中,該讀取命令可以包括驅(qū)動器PBA。硬驅(qū)動器6可以接收用于從特定驅(qū)動器LBA或驅(qū)動器PBA讀取數(shù)據(jù)的命令,并且將該數(shù)據(jù)返回給主機(jī)4。
[0067]可以至少部分地以硬件、軟件、固件或其任何組合來實(shí)現(xiàn)本公開中所描述的技術(shù)。例如,所描述的技術(shù)的各個方面可以被實(shí)現(xiàn)在一個或多個處理單元內(nèi),包括一個或多個微處理器單元、數(shù)字信號處理單元(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或任何其它等同集成電路或分立式邏輯電路以及這些組件的任何組合。術(shù)語“處理單元”或“處理電路”一般可以單獨(dú)地指代任何前述邏輯電路、或者指代與其它邏輯電路組合的任何前述邏輯電路、或者指代任何其它等同電路。包括硬件的控制單元也可以執(zhí)行本公開的技術(shù)中的一個或多個。
[0068]可以在同一設(shè)備內(nèi)或在分離的設(shè)備內(nèi)實(shí)現(xiàn)這樣的硬件、軟件和固件,以支持本公開中所描述的各種技術(shù)。此外,可以將任何所描述的單元、模塊或組件實(shí)現(xiàn)在一起,或者將其分離地實(shí)現(xiàn)為分立式但可協(xié)作的邏輯器件。將不同特征描述為模塊或單元意圖強(qiáng)調(diào)不同的功能方面,并不一定暗指這些模塊或單元必須實(shí)現(xiàn)為分離的硬件、固件或軟件組件。相反,與一個或多個模塊或單元相關(guān)聯(lián)的功能可以由分離的硬件、固件或軟件組件執(zhí)行,或集成在公共的或分離的硬件、固件或軟件組件內(nèi)。
[0069]還可以在包含用指令編碼的計(jì)算機(jī)可讀存儲介質(zhì)的制造物(articleofmanufacture)中體現(xiàn)或編碼本公開中所描述的技術(shù)。例如在由一個或多個處理單元執(zhí)行計(jì)算機(jī)可讀存儲介質(zhì)中所包含或編碼的指令時,嵌入或編碼在包含編碼的計(jì)算機(jī)可讀存儲介質(zhì)的制造物中的指令,可以使得一個或多個可編程處理單元或其它處理單元實(shí)現(xiàn)在此所描述的技術(shù)中的一個或多個。計(jì)算機(jī)可讀存儲介質(zhì)可以包括隨機(jī)存取存儲器(RAM)、只讀存儲器(R0M)、可編程只讀存儲器(PROM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、閃存、硬盤、壓縮盤ROM(CD-ROM)、軟盤、盒帶、磁介質(zhì)、光學(xué)介質(zhì)或其它計(jì)算機(jī)可讀介質(zhì)。在一些示例中,制造物可以包括一個或多個計(jì)算機(jī)可讀存儲介質(zhì)。
[0070]在一些示例中,計(jì)算機(jī)可讀存儲介質(zhì)可以包括非瞬時介質(zhì)。術(shù)語“非瞬時”可以指示存儲介質(zhì)未被體現(xiàn)在載波或傳播的信號中。在某些示例中,非瞬時存儲介質(zhì)可以(例如,在RAM或高速緩存中)存儲能夠隨時間改變的數(shù)據(jù)。
[0071]已經(jīng)描述了本公開的各個示例??紤]所描述的系統(tǒng)、操作或功能的任何組合。這些和其它示例處于所附權(quán)利要求的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種方法,包括: 由在主機(jī)設(shè)備處運(yùn)行的范圍分配器模塊接收用于寫入數(shù)據(jù)的命令,其中該命令包含主機(jī)所指定的邏輯塊地址LBA和數(shù)據(jù); 由范圍分配器模塊將主機(jī)所指定的LBA映射為驅(qū)動器LBA;以及 將用于在驅(qū)動器LBA處寫入數(shù)據(jù)的命令從范圍分配器模塊發(fā)送到硬驅(qū)動器。2.如權(quán)利要求1所述的方法,還包括: 由范圍分配器模塊確定先前是否已經(jīng)寫入主機(jī)所指定的LBA;以及響應(yīng)于確定先前已經(jīng)寫入主機(jī)所指定的LBA,由范圍分配器模塊更新現(xiàn)有的映射,使得主機(jī)所指定的LBA與更新的驅(qū)動器LBA對應(yīng)。3.如權(quán)利要求1所述的方法,還包括: 由范圍分配器模塊確定先前是否已經(jīng)寫入主機(jī)所指定的LBA;以及響應(yīng)于確定先前尚未寫入主機(jī)所指定的LBA,由范圍分配器模塊創(chuàng)建新的映射,使得主機(jī)所指定的LBA與驅(qū)動器LBA對應(yīng)。4.如權(quán)利要求1所述的方法,其中,將主機(jī)所指定的LBA映射為驅(qū)動器LBA包括: 基于寫入指針,確定下一寫入地址; 由范圍分配器模塊確定映射表是否包含主機(jī)所指定的LBA以及與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器LBA;以及 由范圍分配器模塊更新映射表,使得映射表包含主機(jī)所指定的LBA以及對應(yīng)的驅(qū)動器LBA,其中對應(yīng)的驅(qū)動器LBA與下一寫入地址相關(guān)聯(lián)。5.如權(quán)利要求1所述的方法,還包括: 由范圍分配器模塊將用于寫入與數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的命令發(fā)送到控制器,其中元數(shù)據(jù)集合包含與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器LBA、數(shù)據(jù)的長度以及至少一個后向指針,其中所述至少一個后向指針中的每一個后向指針指定與不同數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的相應(yīng)位置。6.如權(quán)利要求1所述的方法,還包括: 由范圍分配器管理模塊接收用于寫入數(shù)據(jù)的命令; 由范圍分配器管理模塊基于主機(jī)所指定的LBA,標(biāo)識多個范圍分配器模塊之中的一個范圍分配器模塊,其中多個范圍分配器模塊之中的每一個范圍分配器模塊管理在硬驅(qū)動器的多個區(qū)中的相應(yīng)區(qū)處所存儲的數(shù)據(jù);以及 將用于寫入數(shù)據(jù)的命令從范圍分配器管理模塊發(fā)送到所述一個范圍分配器模塊。7.如權(quán)利要求1所述的方法,還包括: 由范圍分配器模塊將用于寫入與數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的命令發(fā)送到控制器,其中元數(shù)據(jù)集合包含與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器LBA以及數(shù)據(jù)的長度,其中將元數(shù)據(jù)集合存儲在被指明為存儲多個元數(shù)據(jù)集合的硬驅(qū)動器的特定部分內(nèi),并且其中將多個元數(shù)據(jù)集合循序地存儲在驅(qū)動器的特定部分內(nèi)。8.如權(quán)利要求1所述的方法,還包括: 由范圍分配器模塊將用于讀取與數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的命令發(fā)送到控制器,其中元數(shù)據(jù)包含與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器LBA; 由范圍分配器模塊確定與數(shù)據(jù)相關(guān)聯(lián)的哪個元數(shù)據(jù)集合是相應(yīng)數(shù)據(jù)的當(dāng)前元數(shù)據(jù)集合;以及 由范圍分配器模塊基于確定哪個元數(shù)據(jù)集合是相應(yīng)數(shù)據(jù)的當(dāng)前元數(shù)據(jù)集合,來更新主機(jī)所指定的LBA與驅(qū)動器LBA的映射。9.一種方法,包括: 由在硬驅(qū)動器處運(yùn)行的范圍分配器模塊接收用于寫入數(shù)據(jù)的命令,其中該命令包含主機(jī)所指定的邏輯塊地址LBA和數(shù)據(jù); 由范圍分配器模塊將主機(jī)所指定的LBA映射為驅(qū)動器物理塊地址PBA,其中驅(qū)動器PBA對應(yīng)于當(dāng)前與寫入指針相關(guān)聯(lián)的地址;以及 將用于在驅(qū)動器PBA處寫入數(shù)據(jù)的命令從范圍分配器模塊發(fā)送到硬驅(qū)動器的硬件引擎。10.如權(quán)利要求9所述的方法,還包括: 由范圍分配器模塊確定先前是否已經(jīng)寫入主機(jī)所指定的LBA;以及響應(yīng)于確定先前已經(jīng)寫入主機(jī)所指定的LBA,由范圍分配器模塊更新現(xiàn)有的映射,使得主機(jī)所指定的LBA與更新的驅(qū)動器PBA對應(yīng)。11.如權(quán)利要求9所述的方法,還包括: 由范圍分配器模塊確定先前是否已經(jīng)寫入主機(jī)所指定的LBA;以及響應(yīng)于確定先前尚未寫入主機(jī)所指定的LBA,由范圍分配器模塊創(chuàng)建新的映射,使得主機(jī)所指定的LBA對應(yīng)于驅(qū)動器PBA。12.如權(quán)利要求9所述的方法,其中,將主機(jī)所指定的LBA映射為驅(qū)動器PBA包括: 基于寫入指針,確定下一寫入地址; 由范圍分配器模塊確定映射表是否包含主機(jī)所指定的LBA以及與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器PBA;以及 由范圍分配器模塊更新映射表,使得映射表包含主機(jī)所指定的LBA以及對應(yīng)的驅(qū)動器PBA,其中對應(yīng)的驅(qū)動器PBA與下一寫入地址相關(guān)聯(lián)。13.如權(quán)利要求9所述的方法,還包括: 由范圍分配器模塊將用于寫入與數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的命令發(fā)送到控制器,其中元數(shù)據(jù)集合包含與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器PBA、數(shù)據(jù)的長度以及至少一個后向指針,其中所述至少一個后向指針中的每一個后向指針指定與不同數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的相應(yīng)位置。14.如權(quán)利要求9所述的方法,還包括: 由范圍分配器管理模塊接收用于寫入數(shù)據(jù)的命令; 由范圍分配器管理模塊基于主機(jī)所指定的LBA,標(biāo)識多個范圍分配器模塊之中的一個范圍分配器模塊,其中多個范圍分配器模塊之中的每一個范圍分配器模塊管理在硬驅(qū)動器的多個區(qū)中的相應(yīng)區(qū)處所存儲的數(shù)據(jù);以及 將用于寫入數(shù)據(jù)的命令從范圍分配器管理模塊發(fā)送到所述一個相應(yīng)范圍分配器模塊。15.如權(quán)利要求9所述的方法,還包括: 由范圍分配器模塊將用于寫入與數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的命令發(fā)送到控制器,其中元數(shù)據(jù)集合包含與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器PBA以及數(shù)據(jù)的長度,其中將元數(shù)據(jù)集合存儲在被指明為存儲多個元數(shù)據(jù)集合的驅(qū)動器的特定部分內(nèi),并且其中將多個元數(shù)據(jù)集合循序地存儲在驅(qū)動器的特定部分內(nèi)。16.如權(quán)利要求9所述的方法,還包括: 由范圍分配器模塊將用于讀取與數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)集合的命令發(fā)送到控制器,其中元數(shù)據(jù)包含與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器PBA; 由范圍分配器模塊確定與數(shù)據(jù)相關(guān)聯(lián)的哪個元數(shù)據(jù)集合是相應(yīng)數(shù)據(jù)的當(dāng)前元數(shù)據(jù)集合;以及 由范圍分配器模塊基于確定哪個元數(shù)據(jù)集合是相應(yīng)數(shù)據(jù)的當(dāng)前元數(shù)據(jù)集合,來更新主機(jī)所指定的LBA與驅(qū)動器PBA的映射。17.—種設(shè)備,包括: 至少一個處理器;以及 范圍分配器模塊,其可由至少一個處理器操作,并且被配置為: 接收用于寫入數(shù)據(jù)的命令,其中該命令包含主機(jī)所指定的邏輯塊地址LBA和數(shù)據(jù); 將主機(jī)所指定的LBA映射為驅(qū)動器LBA;以及 將用于在驅(qū)動器LBA處寫入數(shù)據(jù)的命令發(fā)送到硬驅(qū)動器。18.如權(quán)利要求17所述的設(shè)備,其中,范圍分配器模塊進(jìn)一步被配置為: 基于寫入指針,確定下一寫入地址; 確定映射表是否包含主機(jī)所指定的LBA以及與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器LBA;以及 更新映射表以包含主機(jī)所指定的LBA以及對應(yīng)的驅(qū)動器LBA,其中對應(yīng)的驅(qū)動器LBA與下一寫入地址相關(guān)聯(lián)。19.一種設(shè)備,包括: 接口; 硬件引擎;以及 控制器,包括: 至少一個處理器;以及 范圍分配器模塊,其可由至少一個處理器操作,并且被配置為: 經(jīng)由接口接收用于寫入數(shù)據(jù)的命令,其中該命令包含主機(jī)所指定的邏輯塊地址LBA和數(shù)據(jù); 將主機(jī)所指定的LBA映射為驅(qū)動器物理塊地址PBA,其中驅(qū)動器PBA對應(yīng)于當(dāng)前與寫入指針相關(guān)聯(lián)的地址;以及 將用于在驅(qū)動器PBA處寫入數(shù)據(jù)的命令發(fā)送到硬件引擎。20.如權(quán)利要求19所述的設(shè)備,其中,范圍分配器模塊進(jìn)一步被配置為通過至少被配置為進(jìn)行以下操作來將主機(jī)所指定的LBA映射為驅(qū)動器PBA: 基于寫入指針,確定下一寫入地址; 確定映射表是否包含主機(jī)所指定的LBA以及與主機(jī)所指定的LBA相關(guān)聯(lián)的驅(qū)動器PBA;以及 更新映射表以包含主機(jī)所指定的LBA以及對應(yīng)的驅(qū)動器I3BA,其中對應(yīng)的驅(qū)動器PBA與下一寫入地址相關(guān)聯(lián)。
【文檔編號】G06F12/10GK105843753SQ201610074218
【公開日】2016年8月10日
【申請日】2016年2月2日
【發(fā)明人】Z.Z.班迪克, C.蓋約特, A.C.曼扎內(nèi)爾斯, N.沃特金斯
【申請人】Hgst荷蘭公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1