專利名稱::寫緩沖檢測器、寫入數(shù)據(jù)的尋址方法、并行通道寫入方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,特別涉及一種具有寫緩沖檢測器(BufferDetector)的固態(tài)硬盤控制器、寫入數(shù)據(jù)的尋址方法和并行通道寫入方法。
背景技術(shù):
:閃存技術(shù)的快速發(fā)展,將使得閃存存儲器(快閃存儲器)成為外存儲器(secondarymemory)的主導設(shè)備。相對于傳統(tǒng)的硬盤,閃存存儲器具有以下的主要優(yōu)勢低功耗、抗沖擊能力、高存儲密度、非易失性、較快的訪問速度。目前閃存技術(shù)可以分為兩類N0R閃存存儲器和NAND閃存存儲器。NOR型擁有獨立的數(shù)據(jù)線和地址線,能隨機讀取,可以單字節(jié)編程,但不能單字節(jié)擦除。但擦除時間較長,單位成本較高,可直接從閃存上讀取代碼并執(zhí)行,適用于嵌入式系統(tǒng)上代碼的存儲;NAND型數(shù)據(jù)和地址采用同一總線,串行工作。以頁為單位進行讀和編程以塊為單位進行擦除。擦除時間相對于NOR型較短,單位成本較低。適用于存儲系統(tǒng)上數(shù)據(jù)的存儲。相對于傳統(tǒng)硬盤,閃存存儲技術(shù)器具體固有的缺陷不能直接改寫閃存存儲器中的數(shù)據(jù)(writebeforeerase)、較長的擦除時間(約1.5ms)、有限的擦除次數(shù)(單層式存儲(SLC)通??梢圆脸?0萬次,多層式存儲(MLC)通??梢圆脸?萬次)。為了解決上述缺陷,閃存存儲器的控制器往往需要設(shè)計至少三個模塊閃存轉(zhuǎn)換層(FlashTranslationLayer)、垃圾回收(GarbageCollection)及磨損均衡(WearLever)。FlashTranslationLayer(FTL)用于實現(xiàn)從邏輯地址到物理地址的映射,如果需要改寫,原先數(shù)據(jù)的物理頁將被標記為無效狀態(tài)(Invalid),F(xiàn)TL尋找到新的物理頁,將新的數(shù)據(jù)寫入,并更新邏輯地址與物理地址的映射關(guān)系。根據(jù)映射粒度的粗細,F(xiàn)TL通??梢苑譃轫搶哟无D(zhuǎn)換(pagelevel)、塊層次轉(zhuǎn)換(blocklevel)、混合轉(zhuǎn)換(hybridlevel)。頁層次是任意邏輯地址到物理地址的映射,因此相當靈活,可以充分利用存儲器的空間,盡可能延遲垃圾回收操作。但其最大的缺點是需要存儲所有頁對應(yīng)的映射關(guān)系(addressmappinginformation),需要占用大量的RAM空間。以IG字節(jié)的閃存為例,就需要8M字節(jié)的RAM。塊層次是邏輯塊地址到物理塊地址的映射,所以每一個邏輯地址只能映射到其所在邏輯塊對應(yīng)的物理塊,而其對應(yīng)的物理頁地址則由該邏輯地址在塊內(nèi)的偏移量來決定(通常邏輯地址與物理地址塊在塊內(nèi)的偏移量是一致的)。顯然塊層次轉(zhuǎn)換不及頁層次轉(zhuǎn)換靈活,轉(zhuǎn)換速度也不及頁層次轉(zhuǎn)換但其只需要存儲塊地址的映射信息。混合轉(zhuǎn)換則結(jié)合了兩種基本轉(zhuǎn)換的特點,RAM中仍然存儲塊映射信息,但在每個塊內(nèi)頁的映射是自由的,而塊內(nèi)的映射信息則存儲在閃存存儲器中頁的非數(shù)據(jù)區(qū)域(spacearea),所以混合型的地址映射靈活度介于頁和塊映射之間,但在映射復雜度和映射速度上是較慢的。一種基于需求的cache頁映射轉(zhuǎn)換層(DFTL:AFlashTranslationLayerEmployingDemand-basedSelectiveCachingofPage-levelAddressMappings)白勺出,是為了充分利用頁轉(zhuǎn)換層的優(yōu)勢并解決其固有的缺點,通過LRU算法將部分最常用的頁映射信息存儲于RAM中(cachemappingtable(CMT)),以減少RAM的需求;將其他大量的頁映射信息存儲于閃存存儲器中,并在RAM中為閃存存儲器中的地址映射信息維護映射言>l、lt弓丨(GlobalTranslationDirectory(GTD))。目前閃存存儲器在連續(xù)訪問下的讀寫、隨機訪問的讀(sequentialread/write和randomread)都有很好的性能,但是在隨機訪問下的寫性能(randomwrite)成為了一個瓶頸。有文獻指出隨機寫性能的局限來自兩個方面有限的通道(通道)利用率以及隨機寫所產(chǎn)生的更多的垃圾回收過程(FullMerges)。為了判定訪問數(shù)據(jù)的連續(xù)性和隨機性,本領(lǐng)域技術(shù)人員提出了Locality-AwareSectorTranslationforNAND閃存存儲器-BasedstorageSystems(LAST)。其方法是簡單的判斷每次數(shù)據(jù)請求的長度并與LAST設(shè)定的閾值相比較,小于閾值的判定為隨機訪問(randomaccess)大于則為時序訪問(sequentialaccess)。對于隨機訪問和連續(xù)訪問LAST采用了不同的映射機制。然而當小于閾值長度的請求具有連續(xù)性時,LAST會將連續(xù)性誤判為隨機性。但是如果閾值過小,又容易將隨機訪問漏判。因此LAST具有其固有的局限性。垃圾回收目前是在一個層(plane)上對于不同的塊進行操作(當前技術(shù)的發(fā)展正在嘗試在一個Die上進行),將一個或者多個使用過的塊中的有效頁(validpage)復制到另外塊的空頁中,并將被復制的頁標記為無效頁(這個過程伴隨著頁映射信息的更新)。被復制的塊中將不存在有效頁,并將該塊用于做擦除操作(erase),從而得到新的空塊(freeblock),整個過程稱為合并(Merge)。垃圾回收包含三種基本合并過程交換(直接)合并(SwitchMerge)、部分(PartialMerge)以及滿合并(FullMerge)。SwitchMerge的代價最小,因為待擦除的塊中不含有有效頁,因此不需要額外的讀寫操作,直接擦除即可;PartialMerge其次,一些有效頁需要復制;FullMerge代價最大,需要復制的有效頁數(shù)目等于一個塊中頁的總數(shù)目(BlockSize),因此將帶來更多額外的讀寫操作。因為擦除時間較長,且擦除次數(shù)有限,所以合理的垃圾回收策略很重要?;谏鲜龇治?,現(xiàn)有技術(shù)至少存在以下問題1、LAST算法無法準確判斷數(shù)據(jù)訪問的連續(xù)性和隨機性;2、由于現(xiàn)有技術(shù)無法準確判斷數(shù)據(jù)訪問的連續(xù)性和隨機性,因此就無法根據(jù)判斷的結(jié)果,采用不同的寫入方式;3、隨機訪問下的寫性能無法滿足要求。
發(fā)明內(nèi)容本發(fā)明解決的問題是提出了一種固態(tài)硬盤控制器、寫入數(shù)據(jù)的尋址方法和并行通道寫入方法,實現(xiàn)了對數(shù)據(jù)的地址特征的準確判斷,分別緩存連續(xù)地址數(shù)據(jù)和隨機地址數(shù)據(jù),并且基于上述不同的數(shù)據(jù)類型寫入不同的尋址策略,并且提高了隨機數(shù)據(jù)的寫速度。為解決上述問題,本發(fā)明提供一種寫緩沖檢測器,包括地址減法器,用于將當前頁地址與前一頁地址進行減法運算,所述地址減法器包括前一頁地址寄存器和當前頁地址寄存器,所述前一頁地址寄存器用于存儲前一頁的數(shù)據(jù)和地址,所述當前頁地址寄存器用于存儲當前頁的數(shù)據(jù)和地址;連續(xù)數(shù)據(jù)緩沖器,其大小設(shè)定為參數(shù),用于將可能判定為連續(xù)性訪問的數(shù)據(jù)進行緩存,若所述連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)長度達到設(shè)定的參數(shù),則判定所述連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)為連續(xù)性數(shù)據(jù);隨機數(shù)據(jù)緩沖器,用于緩存隨機訪問的數(shù)據(jù)??蛇x地,所述寫緩沖檢測器具有隨機模式、連續(xù)模式和判定模式。可選地,當所述寫緩沖控制器處于連續(xù)模式時,若所述地址減法器的結(jié)果為1時,將所述寫緩沖檢測器將維持所述連續(xù)模式,且不需要再將前一頁地址寄存器中的數(shù)據(jù)存入連續(xù)數(shù)據(jù)緩沖器;若地址減法器的結(jié)果不為1,則所述寫緩沖檢測器將進入隨機模式。可選地,當所述寫緩沖控制器處于隨機模式時,若地址減法器的結(jié)果為1,則所述若地址減法器的值為1,寫緩沖控制進入判定模式,且前一頁地址寄存器中的數(shù)據(jù)和地址被存入連續(xù)緩數(shù)據(jù)沖器,等待進一步的判定;若地址減法器的結(jié)果不為1,寫緩沖控制維持在隨機模式,并將前一頁地址寄存器中的數(shù)據(jù)和地址存入隨機數(shù)據(jù)緩沖器,且判斷是否需要將隨機數(shù)據(jù)緩沖器的數(shù)據(jù)寫入閃存存儲器。可選地,當所述寫緩沖控制器處于判定模式時,若地址減法器的結(jié)果為1,將前一頁地址寄存器中的數(shù)據(jù)和地址存入連續(xù)數(shù)據(jù)緩沖器,且判斷連續(xù)數(shù)據(jù)緩沖器是否已滿,若是,則將連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)以連續(xù)寫方式寫入閃存存儲器,所述寫緩沖控制器進入連續(xù)模式;若所述地址減法器的結(jié)果不為1,連續(xù)數(shù)據(jù)緩沖器以及前一頁地址寄存器中的數(shù)據(jù)會被判定為隨機數(shù)據(jù),并以隨機寫方式寫入閃存存儲器。本發(fā)明還提供一種寫入數(shù)據(jù)的物理尋址方法,當該數(shù)據(jù)為連續(xù)性數(shù)據(jù)時,在一個塊內(nèi),按照物理地址的順序?qū)⑦B續(xù)性數(shù)據(jù)寫入;當一個塊的連續(xù)性數(shù)據(jù)被寫滿后,搜索新的空塊;當一個塊的連續(xù)性數(shù)據(jù)未被寫滿時,該塊處于被保護的狀態(tài);當該數(shù)據(jù)為隨機性數(shù)據(jù)時,跳過連續(xù)性數(shù)據(jù)所在的塊,搜索任意一個空的頁,將數(shù)據(jù)輸入所述空的頁。相應(yīng)地,針對隨機性訪問數(shù)據(jù)本發(fā)明還提供一種可選擇的并行通道寫入方法,并行使用多個狀態(tài)為有效的通道,將數(shù)據(jù)存入閃存存儲器??蛇x地,當寫緩沖器處于隨機模式時,若地址減法器的結(jié)果不為1時,且若隨機數(shù)據(jù)緩沖器中的數(shù)據(jù)項目有效的通道數(shù)目,則采用上述方法。可選地,當寫緩沖器處于判定模式時,若地址減法器的值不為1時,則連續(xù)數(shù)據(jù)緩沖器和前一頁地址寄存器中的數(shù)據(jù)被判斷為隨機寫入的數(shù)據(jù),則采用上述方法。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點通過設(shè)置寫緩沖檢測器,對要寫入的數(shù)據(jù)的地址特征進行準確判斷,防止誤判或漏判;基于寫緩沖檢測器的結(jié)果,對不同類型的數(shù)據(jù)采用不同的寫入尋址方式,可以減少垃圾回收的開銷,從而提高寫數(shù)據(jù)的性能。另一方面,針對隨機性數(shù)據(jù)采用的多通道并行寫入方法,充分利用閃存不同的通道可以并行操作的特點,進一步提高隨機性數(shù)據(jù)的寫性能。圖1是包含有本發(fā)明的基于寫緩沖檢測器的固態(tài)硬盤控制器的系統(tǒng)結(jié)構(gòu)示意圖;圖2是本發(fā)明所涉及的寫緩沖檢測器的結(jié)構(gòu)框圖3是圖2的寫緩沖檢測器的三種工作模式轉(zhuǎn)換關(guān)系圖;圖4是本發(fā)明的寫緩沖檢測器對數(shù)據(jù)寫入的程序流程簡圖;圖5是本發(fā)明的連續(xù)數(shù)據(jù)尋址方法示意圖;圖6是本發(fā)明的隨機寫入數(shù)據(jù)尋址方法示意圖;圖7是本發(fā)明提出的“可選擇的多通道并行寫入方法”的結(jié)構(gòu)示意圖;圖8是本發(fā)明提出的“可選擇并行多通道技術(shù)”的工作流程圖。具體實施例方式本發(fā)明是一種基于寫緩沖檢測器的閃存轉(zhuǎn)換層的設(shè)計方法,主要用于實現(xiàn)對寫數(shù)據(jù)的地址特征的準確判斷,分別緩存連續(xù)地址數(shù)據(jù)和隨機地址數(shù)據(jù)。針對不同的數(shù)據(jù)類型采用不同的寫入策略。因為隨機數(shù)據(jù)的寫是目前閃存性能上的瓶頸,本發(fā)明提出了可選擇的并行多通道技術(shù),以有效的提升隨機數(shù)據(jù)的寫性能。以下結(jié)合具體的實施例對本發(fā)明的技術(shù)方案進行詳細的說明。為了更好地參考本發(fā)明的技術(shù)方案,請結(jié)合圖1所示的包含有本發(fā)明的寫緩沖檢測器的系統(tǒng)結(jié)構(gòu)示意圖。上層文件系統(tǒng)100通過控制器200、頁轉(zhuǎn)換層300和閃存存儲器400。所述控制器200包括寫緩沖檢測器(BufferDetector)201、地址映射信息緩存表(CMT,CacheMappingTable)202、通道203。所述寫緩沖檢測器201包括連續(xù)數(shù)據(jù)緩沖器2011、隨機數(shù)據(jù)緩沖器2012和地址減法器2013,其中所述地址減法器2013,用于將當前頁地址與前一頁地址進行減法運算,所述地址減法器2013包括前一頁地址寄存器和當前頁地址寄存器,所述前一頁地址寄存器用于存儲前一頁的數(shù)據(jù)和地址,所述當前頁地址寄存器用于存儲當前頁的數(shù)據(jù)和地址;連續(xù)數(shù)據(jù)緩沖器2011,其大小設(shè)定為參數(shù)kquential-Buffer-Size,用于將可能判定為連續(xù)性訪問的數(shù)據(jù)進行緩存,若所述連續(xù)數(shù)據(jù)緩沖器2011中的數(shù)據(jù)長度達到設(shè)定的參數(shù),則判定所述連續(xù)數(shù)據(jù)緩沖器2011中的數(shù)據(jù)為連續(xù)性數(shù)據(jù);隨機數(shù)據(jù)緩沖器2012,用于緩存隨機訪問的數(shù)據(jù)。包401是閃存存儲器400器中存儲層次的最高層,每個包401與通道203中的一個通道相連,并可以被包401內(nèi)的不同芯片(Die)401所共享。每個包401包括多個芯片4011,每個芯片4011包括多個層4012,每個層4012包括多個寄存器4013和塊4014,每個塊4014內(nèi)包括多個頁4015。在閃存存儲器控制器的基礎(chǔ)上,本發(fā)明增加了寫緩沖檢測器(BufferDetector)201的硬件結(jié)構(gòu)。當上層文件系統(tǒng)100的請求為讀時,本發(fā)明會先確認在寫緩沖檢測器201中是否含有該讀請求的數(shù)據(jù),若命中,直接從寫緩沖檢測器201中讀取;若不能命中,則訪問控制器200中的地址映射信息緩存表202,若命中,則從閃存存儲器400中讀取相應(yīng)的數(shù)據(jù)。若不能命中,則從閃存存儲器400中獲得相應(yīng)的映射信息,完成讀數(shù)據(jù)的功能。而當上層文件系統(tǒng)100的請求為寫時,本發(fā)明先確認會在寫緩沖檢測器201中是否含有該寫請求的數(shù)據(jù),若命中,直接在寫緩沖檢測器201中更新該數(shù)據(jù);若不能命中,則將該數(shù)據(jù)及地址緩存于寫緩沖檢測器201中等待數(shù)據(jù)地址連續(xù)性的判斷,并根據(jù)判斷的不同結(jié)果做不同的處理。圖2所示的是寫緩沖檢測器的硬件組成,其中連續(xù)數(shù)據(jù)緩沖器2011和隨機數(shù)據(jù)緩沖器2012分別由一組寄存器實現(xiàn)。地址減法器由兩個寄存器構(gòu)成,如圖所示,連續(xù)數(shù)據(jù)緩沖器2011中存放數(shù)據(jù)的邏輯地址是連續(xù)的,而隨機數(shù)據(jù)緩沖器2012中存放數(shù)據(jù)的邏輯地址是隨機的。圖3所示為寫緩沖檢測器三種工作模式的轉(zhuǎn)換關(guān)系圖,在連續(xù)模式下,說明寫入的數(shù)據(jù)已經(jīng)被判定為連續(xù)訪問的數(shù)據(jù),當?shù)刂窚p法器的結(jié)果為1時,將維持該模式,且不需要再將前一頁地址寄存器中的數(shù)據(jù)存入連續(xù)數(shù)據(jù)緩沖器。若不為1,寫緩沖檢測器將進入隨機模式。在隨機模式下,若地址減法器的值為1,寫緩沖檢測器進入判定模式,且前一頁地址寄存器中的數(shù)據(jù)和地址被存入連續(xù)緩數(shù)據(jù)沖器,等待進一步的判定。若不為1,將寫緩沖檢測器維持在隨機模式,并將前一頁地址寄存器中的數(shù)據(jù)和地址存入隨機數(shù)據(jù)緩沖器且判斷是否需要將隨機數(shù)據(jù)緩沖器的數(shù)據(jù)寫入閃存存儲器。在判定模式下,若地址減法器的值為1,將前一頁地址寄存器中的數(shù)據(jù)和地址存入連續(xù)數(shù)據(jù)存儲器,且判斷連續(xù)數(shù)據(jù)存儲器是否已滿,若是,則寫入閃存存儲器,并進入連續(xù)模式。若不為1,連續(xù)數(shù)據(jù)存儲器以及前一頁地址寄存器中的數(shù)據(jù)會被判定為隨機數(shù)據(jù),并以隨機寫方式寫入閃存存儲器,盡管這些數(shù)據(jù)前后地址差值為1,但其數(shù)據(jù)長度達不到判定的參數(shù)(連續(xù)數(shù)據(jù)存儲器中設(shè)定的參數(shù))。圖4所示為寫緩沖檢測器的工作流程圖。寫緩沖檢測器的初始狀態(tài)設(shè)置為隨機模式。當?shù)絹硪粋€新的頁(page,閃存存儲器最小的讀寫單元)的數(shù)據(jù)(該數(shù)據(jù)對應(yīng)的地址不在寫緩沖檢測器的所有寄存器中,即不會在寫緩沖檢測器中直接更新)時,該頁的內(nèi)容(包括數(shù)據(jù)和地址)存儲于前一頁地址寄存器中,地址減法器將前一頁地址寄存器中對應(yīng)數(shù)據(jù)的地址與前一頁地址寄存器中對應(yīng)數(shù)據(jù)的地址作減法。如果當前寫緩沖檢測器處于連續(xù)模式(說明之前的數(shù)據(jù)已經(jīng)判定為連續(xù)型的數(shù)據(jù),且連續(xù)數(shù)據(jù)存儲器中的數(shù)據(jù)已經(jīng)通過連續(xù)數(shù)據(jù)的寫入方式寫入了閃存存儲器),若地址減法器的值為1,維持連續(xù)模式,則將前一頁地址寄存器中的數(shù)據(jù)以連續(xù)寫入方式寫入閃存存儲器,并將前一頁地址寄存器中的內(nèi)容拷入前一頁地址寄存器中(地址減法器的更新);若地址減法器的值不為1,說明當前數(shù)據(jù)的連續(xù)性被打破,仍然將前一頁地址寄存器中的數(shù)據(jù)以連續(xù)寫入的方式寫入閃存存儲器(盡管前一頁地址寄存器與前一頁地址寄存器中地址的連續(xù)性被打破,但前一頁地址寄存器中的數(shù)據(jù)與其之前的數(shù)據(jù)仍然能保持連續(xù)性,因此是本次以連續(xù)方式寫入的最后一個數(shù)據(jù)),更新地址減法器(前一頁地址寄存器拷入前一頁地址寄存器),將寫緩沖檢測器切換為隨機模式。如果寫緩沖檢測器處于判定模式(判定指對連續(xù)性的判定,說明此時連續(xù)數(shù)據(jù)存儲器的狀態(tài)既不空也不滿,連續(xù)數(shù)據(jù)存儲器中存在正在等待判定的數(shù)據(jù),且尚未達到判定閾值“kquential-Buffer-Size”的值),若地址減法器的值為1,將前一頁地址寄存器中的內(nèi)容拷入連續(xù)數(shù)據(jù)存儲器中,判斷連續(xù)數(shù)據(jù)存儲器是否已滿,若是則將寫緩沖檢測器切換為連續(xù)模式,且將連續(xù)數(shù)據(jù)存儲器中的數(shù)據(jù)以連續(xù)寫入數(shù)據(jù)的方式寫入閃存存儲器;若地址減法器的值不為1,則將寫緩沖檢測器切換為隨機模式,并在每個通道上以隨機寫入數(shù)據(jù)的方式將連續(xù)數(shù)據(jù)存儲器中的數(shù)據(jù)寫入閃存存儲器。如果寫緩沖檢測器處于隨機模式,若地址減法器的值為1,將寫緩沖檢測器切入判定模式,并將前一頁地址寄存器中的內(nèi)容拷入連續(xù)數(shù)據(jù)存儲器中,等待進一步的判定;若地址減法器的值不為1,將前一頁地址寄存器拷入隨機數(shù)據(jù)緩沖器,判斷當前隨機數(shù)據(jù)緩沖器中的數(shù)據(jù)記錄是否達到了當前可以使用的通道的數(shù)目,若是則每個通道上以隨機寫入數(shù)據(jù)的方式將連續(xù)數(shù)據(jù)存儲器中的數(shù)據(jù)寫入閃存存儲器。當該數(shù)據(jù)為連續(xù)性數(shù)據(jù)時,在一個塊內(nèi),按照物理地址的順序?qū)⑦B續(xù)性數(shù)據(jù)寫入;當一個塊的連續(xù)性數(shù)據(jù)被寫滿后,搜索新的空塊;當一個塊的連續(xù)性數(shù)據(jù)未被寫滿時,該塊處于被保護的狀態(tài);當該數(shù)據(jù)為隨機性數(shù)據(jù)時,跳過連續(xù)性數(shù)據(jù)所在的塊,搜索任意一個空的頁,將數(shù)據(jù)輸入所述空的頁。圖5是本發(fā)明的連續(xù)數(shù)據(jù)寫入方法尋址示意圖,變量Addr_P0inter_kquential用于存儲前一數(shù)據(jù)的物理地址,在一個塊內(nèi)部,連續(xù)性寫入方式總是保持物理地址的順序性。當一個塊寫滿后,只能搜索一個新的空塊作為被寫入的物理塊。Addr_P0inter_Sequential的作用域是整個閃存存儲器。圖6所示為本發(fā)明提出的一種隨機寫入數(shù)據(jù)的尋址方法,該方法說明在一個通道內(nèi)部如何獲取一個空的頁。變量Addr_P0inter_Rand0m是一個包含通道總數(shù)個元素的數(shù)組,Addr_Pointer_Random[i]是與第i個通道對應(yīng)的元素。Addr_Pointer_Random[i]用于記錄前一個隨機寫入數(shù)據(jù)的物理地址,Addr_Pointer_Random_Temp[i]用于搜尋當前需要隨機寫入的數(shù)據(jù)的物理地址,Addr_Pointer_Random_Temp[i]只要能搜索一個空的頁就行,不管該頁所在的塊是否是空塊。當Addr_P0inter_Rand0m_Temp[i]發(fā)現(xiàn)所搜尋的塊是Addr_Pointer_Sequential所處的物理塊時,將跳過當前被搜尋的塊,以實現(xiàn)對連續(xù)性寫入的保護。相應(yīng)地,本發(fā)明還提供一種選擇性并行通道寫入方法,并行使用多個狀態(tài)為有效的通道,將數(shù)據(jù)存入閃存存儲器。圖7所示為本發(fā)明提出的“可選擇并行多通道技術(shù)”的硬件示意圖。其中展現(xiàn)了一種當前各個通道可能狀態(tài)的實例通道3、通道4、通道5、通道7和通道8為可用通道,通道1、通道2、通道6和通道7為不可用通道。被寫入的數(shù)據(jù)并不局限于如圖所示的隨機數(shù)據(jù)緩沖器2012中的數(shù)據(jù),也可以是連續(xù)數(shù)據(jù)存儲器中被判定為隨機性的數(shù)據(jù),甚至可以是針對其他不同應(yīng)用而要寫入的數(shù)據(jù)。每一個通道狀態(tài)的規(guī)定,包括使用與限制使用的條件也不是限制的。圖8是本發(fā)明提出的“可選擇并行多通道技術(shù)”的工作流程圖。注意圖8所給出的只是針對閃存存儲器多通道技術(shù)的一種具體的實現(xiàn)法案,我們在通道所對應(yīng)的包中不能找到可以寫入的空頁時,將該通道暫停使用,標記為invalid,在做完相應(yīng)的垃圾回收策略后,通道的狀態(tài)可以被重置,應(yīng)用者可以有其他的限定狀態(tài)的方式。初始化時可以使用的通道數(shù)目等于通道的總數(shù)。寫入時,本發(fā)明一次性利用最大可以使用的通道數(shù)目并發(fā)寫入(在寫入時通道的狀態(tài)可能發(fā)生變化),直到所有的數(shù)據(jù)全部寫入。綜上,本發(fā)明通過設(shè)置寫緩沖檢測器,對要寫入的數(shù)據(jù)的地址特征進行準確判斷,防止誤判或漏判;基于寫緩沖檢測器的結(jié)果,對不同類型的數(shù)據(jù)采用不同的寫入尋址方式,可以減少垃圾回收的開銷,從而提高寫數(shù)據(jù)的性能。另一方面,針對隨機性數(shù)據(jù)采用的多通道并行寫入方法,充分利用閃存不同的通道可以并行操作的特點,進一步提高隨機性數(shù)據(jù)的寫性能本發(fā)明的保護范圍并不以上述實施方式為限,但凡本領(lǐng)域普通技術(shù)人員根據(jù)本發(fā)明所揭示內(nèi)容所作的等效修飾或變化,皆應(yīng)納入權(quán)利要求書中記載的保護范圍。權(quán)利要求1.一種寫緩沖檢測器,其特征在于,包括地址減法器,用于將當前頁地址與前一頁地址進行減法運算,所述地址減法器包括前一頁地址寄存器和當前頁地址寄存器,所述前一頁地址寄存器用于存儲前一頁的數(shù)據(jù)和地址,所述當前頁地址寄存器用于存儲當前頁的數(shù)據(jù)和地址;連續(xù)數(shù)據(jù)緩沖器,其大小設(shè)定為參數(shù)kquential-Buffer-Size,用于將可能判定為連續(xù)性訪問的數(shù)據(jù)進行緩存,若所述連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)長度達到設(shè)定的參數(shù),則判定所述連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)為連續(xù)性數(shù)據(jù);隨機數(shù)據(jù)緩沖器,用于緩存隨機訪問的數(shù)據(jù)。2.如權(quán)利要求1所述的寫緩沖檢測器,其特征在于,所述寫緩沖檢測器具有隨機模式、連續(xù)模式和判定模式。3.如權(quán)利要求2所述的寫緩沖檢測器,其特征在于,當所述寫緩沖控制器處于連續(xù)模式時,若所述地址減法器的結(jié)果為1時,將所述寫緩沖檢測器將維持所述連續(xù)模式,且不需要再將前一頁地址寄存器中的數(shù)據(jù)存入連續(xù)數(shù)據(jù)緩沖器;若地址減法器的結(jié)果不為1,則所述寫緩沖檢測器將進入隨機模式。4.如權(quán)利要求2所述的寫緩沖檢測器,其特征在于,當所述寫緩沖控制器處于隨機模式時,若地址減法器的結(jié)果為1,則寫緩沖控制進入判定模式,且前一頁地址寄存器中的數(shù)據(jù)和地址被存入連續(xù)緩數(shù)據(jù)沖器,等待進一步的判定;若地址減法器的結(jié)果不為1,寫緩沖控制維持在隨機模式,并將前一頁地址寄存器中的數(shù)據(jù)和地址存入隨機數(shù)據(jù)緩沖器,且判斷是否需要將隨機數(shù)據(jù)緩沖器的數(shù)據(jù)寫入閃存存儲器。5.如權(quán)利要求2所述的寫緩沖檢測器,其特征在于,當所述寫緩沖控制器處于判定模式時,若地址減法器的結(jié)果為1,將前一頁地址寄存器中的數(shù)據(jù)和地址存入連續(xù)數(shù)據(jù)緩沖器,且判斷連續(xù)數(shù)據(jù)緩沖器是否已滿,若是,則將連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)以連續(xù)寫方式寫入閃存存儲器,所述寫緩沖控制器進入連續(xù)模式;若所述地址減法器的結(jié)果不為1,連續(xù)數(shù)據(jù)緩沖器以及前一頁地址寄存器中的數(shù)據(jù)會被判定為隨機數(shù)據(jù),并以隨機寫方式寫入閃存存儲器。6.一種寫入數(shù)據(jù)的物理尋址方法,其特征在于,當該數(shù)據(jù)為連續(xù)性數(shù)據(jù)時,在一個塊內(nèi),按照物理地址的順序?qū)⑦B續(xù)性數(shù)據(jù)寫入;當一個塊的連續(xù)性數(shù)據(jù)被寫滿后,搜索新的空塊;當一個塊的連續(xù)性數(shù)據(jù)未被寫滿時,該塊處于被保護的狀態(tài);當該數(shù)據(jù)為隨機性數(shù)據(jù)時,跳過連續(xù)性數(shù)據(jù)所在的塊,搜索任意一個空的頁,將數(shù)據(jù)輸入所述空的頁。7.一種可選擇的并行通道寫入方法,其特征在于,并行使用多個狀態(tài)為有效的通道,將數(shù)據(jù)存入閃存存儲器。8.如權(quán)利要求7所述的可選擇的并行通道寫入方法,其特征在于,當寫緩沖器處于隨機模式時,若地址減法器的結(jié)果不為1時,且若隨機數(shù)據(jù)緩沖器中的數(shù)據(jù)項目達到有效的通道數(shù)目,則采用上述方法。9.如權(quán)利要求7所述的可選擇的并行通道寫入方法,其特征在于,當寫緩沖器處于判定模式時,若地址減法器的值不為1時,則連續(xù)數(shù)據(jù)緩沖器和前一頁地址寄存器中的數(shù)據(jù)被判斷為隨機寫入的數(shù)據(jù),則采用上述方法。全文摘要本發(fā)明提供了一種基于寫緩沖檢測器的固態(tài)硬盤(SSD)控制器、寫入數(shù)據(jù)的尋址方法和可選擇的并行通道寫入方法,實現(xiàn)了對數(shù)據(jù)的地址特征的準確判斷,分別緩存連續(xù)地址數(shù)據(jù)和隨機地址數(shù)據(jù),基于上述不同數(shù)據(jù)類型寫入不同的寫入策略,提高了隨機數(shù)據(jù)的寫速度。該寫緩沖檢測器包括地址減法器,用于將當前頁地址與前一頁地址進行減法運算,該地址減法器包括前一頁地址寄存器和當前頁地址寄存器,該前一頁地址寄存器用于存儲前一頁的數(shù)據(jù)和地址,該當前頁地址寄存器用于存儲當前頁的數(shù)據(jù)和地址;連續(xù)數(shù)據(jù)緩沖器,其大小設(shè)定為參數(shù)Sequential-Buffer-Size,用于將可能判定為連續(xù)性訪問的數(shù)據(jù)進行緩存,若該連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)長度達到設(shè)定的參數(shù),則判定該連續(xù)數(shù)據(jù)緩沖器中的數(shù)據(jù)為連續(xù)性數(shù)據(jù);隨機數(shù)據(jù)緩沖器,用于緩存隨機訪問的數(shù)據(jù)。文檔編號G06F12/08GK102521160SQ20111043669公開日2012年6月27日申請日期2011年12月22日優(yōu)先權(quán)日2011年12月22日發(fā)明者周鴻,蔣江申請人:上海交通大學