專利名稱::Dram緩沖器管理裝置和方法
技術(shù)領(lǐng)域:
:本發(fā)明提出了一種Dram緩沖器管理裝置和方法,更詳細(xì)講,提出了一種無需添加額外的裝置就可以向Dram緩沖器應(yīng)用糾錯碼ECC(ErrorCorrectionCode)的Dram緩沖器管理裝置和方法。
背景技術(shù):
:存儲數(shù)據(jù)的存儲裝置有磁盤(magneticdisk),半導(dǎo)體存儲器等。因為存儲裝置根據(jù)種類各自具有不同的物理特性,所以需要與物理特性相對應(yīng)的管理方法?,F(xiàn)有存儲裝置中,磁盤被廣泛地使用,磁盤的特征為平均每千字節(jié)(kilobyte)需要數(shù)毫秒(millisecond)的讀寫時間。此外,磁盤的特征為,根據(jù)數(shù)據(jù)被存儲的物理性位置光標(biāo)到達(dá)的時間的不同,因此讀寫的時間也不同。最近,比起磁盤,讀寫時間短,電力消耗低,體積小的非易失性(non-volatile)存儲器在加速地替代磁盤。這是因為非易失性存儲器實現(xiàn)了大容量化而產(chǎn)生的效果。非易失性存儲器是可用電力進行讀取(read)、寫入(write)及擦除(erase)并在沒有電源的狀態(tài)下也可維持被存儲的數(shù)據(jù)的一種半導(dǎo)體存儲器裝置。對非易失性存儲器裝置存儲數(shù)據(jù)的過程,除了被叫作寫入以外還被叫作編程(programming)。具代表性的非易失性存儲器可為閃存(Flashmemory),閃存比現(xiàn)有的硬盤驅(qū)動器HDD(HardDiskDrive)體積小、電力消耗低,具有可提高讀取速度的優(yōu)點。最近,用于利用大容量閃存來替代HDD的固態(tài)硬盤SSD(SolidStateDisk)也已被提議出來。閃存的種類中,具代表性的為NAND方式的閃存和NOR方式的內(nèi)存等。NAND方式和NOR方式可根據(jù)信元(cell)陣列(array)的結(jié)構(gòu)和操作方式被區(qū)分。閃存通過多數(shù)的存儲器信元的排列來實現(xiàn),一個存儲器信元可存儲一個以上的數(shù)據(jù)比特。一個存儲器信元包括控制柵(controlgate)和浮柵(floatinggate),控制柵和浮柵的之間被插入絕緣體(insulator),并在控制柵和基片(substrate)之間也被插入絕緣體。此類非易失性存儲器通過一定的控制器實現(xiàn)管理,此外,根據(jù)此類控制器的性能,可決定非易失性存儲器的整體性能。因此,有必要對可有效地管理和控制存儲器的存儲器控制器來進行研究。
發(fā)明內(nèi)容技術(shù)課題本發(fā)明意在提供一種無需添加額外的裝置就可以向Dram緩沖器(Buffer)應(yīng)用糾錯碼ECC(ErrorCorrectionCode)的Dram緩沖器管理裝置和方法。技術(shù)方案根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置,包括ECC生成單元,其生成要在Dram緩沖器中記錄的數(shù)據(jù)的糾錯碼ECC;和記錄單元,其將所述數(shù)據(jù)和所述ECC記錄在所述Dram緩沖器中。此外,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法,包括以下步驟生成要在Dram緩沖器中記錄的數(shù)據(jù)的糾錯碼ECC;和將所述數(shù)據(jù)和所述ECC記錄在所述Dram緩沖器中。技術(shù)效果本發(fā)明通過生成要記錄在Dram緩沖器中的數(shù)據(jù)的糾錯碼ECC并將所述數(shù)據(jù)和所述糾錯碼一起存儲在Dram緩沖器中的Dram緩沖器管理裝置和方法,無需添加額外的裝置,就可以向Dram緩沖器(Buffer)應(yīng)用糾錯碼ECC。圖1是示出根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置的結(jié)構(gòu)的示圖;和圖2是示出根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法的流程圖。具體實施例方式下面,將參照附圖,對本發(fā)明的一個實施例進行詳細(xì)說明。但是,本發(fā)明并不受該實施例的限制或限定。各個附圖中展示出的相同的參考數(shù)字表示相同的結(jié)構(gòu)。一般情況下,對非易失性存儲器的編程(programming),可以頁(page)為單位執(zhí)行,擦除(erase)可以塊(block)為單位執(zhí)行。在這種情況下,塊可包括多個頁面。此外,管理非易失性存儲器的存儲器控制器,可向外部主機(host)或處理器(processor)提供邏輯地址(logicaladdress),并對非易失性存儲器提供物理地址(physicaladdress)。在這種情況下,存儲器控制器可利用物理地址來管理非易失性存儲器,并將物理地址轉(zhuǎn)換為邏輯地址。在此,執(zhí)行物理地址和邏輯地址的轉(zhuǎn)換的層也被稱為FTL(FlashTranslationLayer)。最近,由于企業(yè)(Enterprise)服務(wù)器市場中不斷增長的帶寬需求與電力消費的問題,使用固態(tài)硬盤SSD(SolidStateDisk)而不是HDD作為數(shù)據(jù)存儲裝置的方案正在積極實施。早期的SSD控制器,使用內(nèi)部存儲器作為數(shù)據(jù)緩沖器,但是最近的SSD控制器由于高速化需求,使用Dram作為數(shù)據(jù)緩沖器的情況越來越多。大部分的企業(yè)服務(wù)器,會因數(shù)據(jù)的穩(wěn)定性而使用應(yīng)用了高價的糾錯碼ECC(Err0rCorrectionCode)的Dram模塊作為系統(tǒng)總線的主存儲器。因此,在服務(wù)器中在要使用的SSD中將Dram用作緩沖器用途的話,為了數(shù)據(jù)的穩(wěn)定性,有必要使用應(yīng)用了ECC功能的Dram模塊。這時,ECCDram模塊額外具備在SODIMM內(nèi)額外存儲ECC的ECC專用Dram芯片的情況居多。不過,SSD具有以下特征,即實際上要使用到的緩沖器的大小相對來說不大,而且在費用方面也很難適應(yīng)一個以上的Dram芯片。此外,在額外的ECC專用Dram芯片導(dǎo)致的電力消耗方面,也難以在一個SSD磁盤內(nèi)使用額外的Dram芯片。在這方面,跟據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置,在在SSD等中將Dram用作數(shù)據(jù)緩沖器或緩存用途的情況下,對要記錄在Dram緩沖器中的數(shù)據(jù)生成ECC,并將所述數(shù)據(jù)與所述ECC—起記錄到Dram緩沖器中,由此無需使用額外的裝置,就可以對Dram數(shù)據(jù)應(yīng)用ECC方案。因此,以下將參照圖1對根據(jù)本發(fā)明的實施例的Dram管理裝置進行詳細(xì)說明。圖1是示出根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置的結(jié)構(gòu)的示圖。參照圖1,Dram緩沖器管理裝置110和Dram緩沖器120如圖所示。根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110,包括ECC生成單元111和記錄單元112。ECC生成單元111,生成要記錄入Dram緩沖器120中的數(shù)據(jù)的ECC。記錄單元112,將所述數(shù)據(jù)和所述ECC記錄在所述Dram緩沖器120中。此時,記錄單元112將所述數(shù)據(jù)和所述ECC記錄到Dram緩沖器120中時,會出現(xiàn)所述數(shù)據(jù)的大小及所述ECC的大小的和超過要記錄所述數(shù)據(jù)及所述ECC的Dram緩沖器120上的第一頁的大小的情況。于此,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110,可進一步包括表存儲單元(未示出),其存儲有將構(gòu)成所述Dram緩沖器120的至少一個頁(page)中相互連續(xù)的頁映射(mapping)到相互不同的條(bank)中的地址映射表(addressmappingtable)。在這一點上,跟據(jù)本發(fā)明的一個實施例,記錄單元112,當(dāng)所述數(shù)據(jù)的大小及所述ECC的大小的和超出要記錄所述數(shù)據(jù)及所述ECC的第一頁的大小時,參照所述地址映射表,將與所述第一頁連續(xù)的下一頁即第二頁生開(rawopen),并將所述數(shù)據(jù)及所述ECC中超過第一頁的大小的數(shù)據(jù)記錄在第二頁中。由此,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110,可以避免由于將所述ECC和所述數(shù)據(jù)一起發(fā)送至Dram緩沖器120而可能造成的發(fā)送帶寬損失。此外,根據(jù)本發(fā)名的一個實施例,Dram緩沖器管理裝置110可進一步包括讀取單元113、判斷單元114、糾錯單元115。讀取單元113,從Dram緩沖器120中讀取出所述數(shù)據(jù)和所述ECC。判斷單元114,基于讀取出的ECC,判斷讀取出的數(shù)據(jù)的錯誤發(fā)生與否。例如,判斷單元114,可基于ECC生成單元111為生成所述ECC所使用的算法,來生成讀取出的所述數(shù)據(jù)的ECC。然后,判斷單元114,可比較所述讀取出的ECC與所述讀取出的數(shù)據(jù)的相關(guān)ECC,來判斷所述讀取出的數(shù)據(jù)的錯誤發(fā)生與否。糾錯單元115,當(dāng)讀取出的數(shù)據(jù)發(fā)生錯誤時,糾正所述錯誤。在下面,將對根據(jù)本發(fā)明的Dram緩沖器管理裝置110舉例進行詳細(xì)說明。關(guān)于此,將使用把根據(jù)本發(fā)明的實施例的Dram緩沖器管理裝置110應(yīng)用到SSD中的例子。根據(jù)本發(fā)明的實施例的Dram緩沖器管理單元110,可以上包含在SSD控制器中的直ο一般來說,SSD控制器與Dram緩沖器120,可使用突發(fā)操作(BurstOperation)來進行數(shù)據(jù)的收發(fā)。S卩,SSD控制器可以以突發(fā)單位向Dram緩沖器120發(fā)送數(shù)據(jù)。與此相關(guān),假設(shè)SSD控制器以N突發(fā)單位向Dram緩沖器120發(fā)送數(shù)據(jù)。首先,將對SSD控制器向Dram緩沖器120中記錄數(shù)據(jù)的情況下的根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110的操作進行觀察。生成單元111,可以實時生成要向Dram緩沖器120發(fā)送的N突發(fā)的數(shù)據(jù)的ECC。然后,記錄單元112,繼N突發(fā)的數(shù)據(jù)之后將所述ECC發(fā)送至Dram緩沖器120,并將所述N突發(fā)的數(shù)據(jù)及上述ECC記錄在Dram緩沖器120中。即,當(dāng)所述ECC是M突發(fā)的數(shù)據(jù)時,記錄單元112,使所述N突發(fā)的數(shù)據(jù)及所述ECC被在同一突發(fā)操作中記錄到Dram緩沖器120中,由此可將N突發(fā)的數(shù)據(jù)發(fā)送結(jié)構(gòu)變更為N+M突發(fā)的數(shù)據(jù)發(fā)送結(jié)構(gòu)。結(jié)果,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110,可將從Dram緩沖器管理裝置110中向Dram緩沖器120發(fā)送的數(shù)據(jù)的基本突發(fā)單位增加相當(dāng)于所述ECC的大小,以一次的突發(fā)存取將所述數(shù)據(jù)和所述ECC存儲到一個Dram芯片中。在這個時候,Dram緩沖器管理裝置110,向所述數(shù)據(jù)中添加所述ECC發(fā)送至Dram緩沖器120,由此可能會出現(xiàn)一個突發(fā)發(fā)送使用Dram緩沖器120上的一個以上的頁的情況。換句話說,可能會發(fā)生所述數(shù)據(jù)的大小和所述ECC的大小的和超過要記錄所述數(shù)據(jù)和所述ECC的第一頁的大小的情況。與此相關(guān),根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110,可進一步包括表存儲單元(未示出),其存儲有將構(gòu)成所述Dram緩沖器120的至少一個頁中相互連續(xù)的頁映射到相互不同的條(bank)中的地址映射表。此時,記錄單元112,在所述數(shù)據(jù)的大小和所述ECC的大小的和超過所述第一頁的大小時,參照所述地址映射表,將與所述第一頁連續(xù)的、與所述第一頁和其他條映射的第二頁生開(rawopen)之后,將所述數(shù)據(jù)及所述ECC中超過第一頁的大小的數(shù)據(jù)記錄在所述第二頁中,由此,在Dram緩沖器110中,可以向Dram緩沖器發(fā)送突發(fā)而不會發(fā)生突發(fā)斷開。結(jié)果,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110,可使用所述地址映射表進行條交錯(BankInterleaving),由此,可以防止Dram緩沖器管理單元110與Dram緩沖器120之間的發(fā)送帶寬損耗。接下來,將對當(dāng)SSD控制器按前述的方法將記錄的數(shù)據(jù)從Dram緩沖器120中讀取出時,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理裝置110的操作進行說明。讀取單元113,可從Dram緩沖器120中以N+M突發(fā)讀取出所述數(shù)據(jù)和所述ECC。判斷單元114,實時檢查所述讀取出的ECC,并基于所述讀取出的ECC,判斷讀取出的所述數(shù)據(jù)是否發(fā)生錯誤以及錯誤比特的位置等。糾錯單元115,可在讀取出的數(shù)據(jù)發(fā)生錯誤時,從判斷單元114接受錯誤比特的位置信息或錯誤內(nèi)容信息等,來糾正所述錯誤。根據(jù)本發(fā)明的一個實施例,Dram緩沖器管理裝置110可進一步包括命令控制單元(未示出),其對從多個母帶(master)發(fā)送出的數(shù)據(jù)請求命令將所述請求命令的順序重新排列來使條可以交錯。所述命令控制單元,使當(dāng)前命令與下一命令之間可進行條交錯,在當(dāng)前命令的數(shù)據(jù)發(fā)送過程中可以提前知道對下一命令的生開,所以最終可以提高Dram緩沖器120的整體發(fā)送帶寬。圖2是示出根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法的流程圖。在步驟S210中,生成要在Dram緩沖器中記錄的數(shù)據(jù)的糾錯碼ECC。在步驟S220中,將所述數(shù)據(jù)和所述ECC記錄在所述Dram緩沖器中。此時,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法,當(dāng)從所述Dram緩沖器中讀取出了所述數(shù)據(jù)時,在步驟S220之后可進一步包括從所述Dram緩沖器中讀取出所述數(shù)據(jù)和所述ECC的步驟。然后,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法,可進一步包括基于讀取出的ECC判斷讀取出的數(shù)據(jù)的錯誤發(fā)生與否的步驟。然后,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法,可進一步包括當(dāng)讀取出的數(shù)據(jù)發(fā)生錯誤時糾正所述錯誤的步驟。此外,根據(jù)本發(fā)明的一個實施例,在步驟S220中可包括以下步驟,即判斷所述數(shù)據(jù)的大小及所述ECC的大小的和是否超出要記錄所述數(shù)據(jù)及所述ECC的第一頁的大小的步馬聚ο然后,在步驟S220中可包括以下步驟,當(dāng)所述數(shù)據(jù)的大小及所述ECC的大小的和超出所述第一頁的大小時,參照地址映射表將與所述第一頁連續(xù)的下一頁即第二頁生開(rawopen),并將所述數(shù)據(jù)及所述ECC中超出第一頁的大小的數(shù)據(jù)記錄在第二頁中的步驟。在這種情況下,所述地址映射表,是將構(gòu)成所述Dram緩沖器的至少一個頁中相互連續(xù)的頁映射到相互不同的條中的表。上面參照圖2對根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法進行了說明。在這里,根據(jù)本發(fā)明的一個實施例的Dram緩沖器管理方法與參照圖1說明的Dram緩沖器管理裝置的構(gòu)成相對應(yīng),因此在這里省略其詳細(xì)說明。根據(jù)本發(fā)明的示例性實施例的Dram緩沖器管理方法,可被記錄到包含由計算機執(zhí)行各種操作的程序指令的計算機可讀媒體中。該媒體還可包括,獨立的或結(jié)合的程序指令、數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)、表等。媒體和程序指令可專門為本發(fā)明的目的設(shè)計和創(chuàng)建,或為計算機軟件技術(shù)人員熟知而應(yīng)用。計算機可讀媒體的例子包括磁媒體(magneticmedia),如硬盤、軟盤和磁帶;光學(xué)媒體(opticalmedia),如CDROM、DVD;磁光媒體(magneto-opticalmedia),如光盤(flopticaldisk);和專門配置為存儲和執(zhí)行程序指令的硬件設(shè)備,如只讀存儲器(ROM)、隨機存取存儲器(RAM)等。程序指令的例子,既包括機器代碼,如由編譯器產(chǎn)生的,也包括含有可由計算機使用解釋程序執(zhí)行的更高級代碼的文件。所述硬件設(shè)備可配置為作為一個以上軟件模塊運行,以執(zhí)行上面所述的本發(fā)明的示例性實施例的操作,反之亦然。如上所示,本發(fā)明雖然已參照有限的實施例和附圖進行了說明,但是本發(fā)明并不局限于所述實施例,在本發(fā)明所屬領(lǐng)域中具備通常知識的人均可以從此記載中進行各種修改和變形。因此,本發(fā)明的范圍不受說明的實施例的局限或定義,而是由后附的權(quán)利要求范圍以及權(quán)利要求范圍等同內(nèi)容定義。權(quán)利要求1.一種Dram緩沖器管理裝置,包括ECC生成單元,其生成要在Dram緩沖器中記錄的數(shù)據(jù)的糾錯碼ECC;和記錄單元,其將所述數(shù)據(jù)和所述ECC記錄在所述Dram緩沖器中。2.如權(quán)利要求1所述的Dram緩沖器管理裝置,其進一步包括讀取單元,其從所述Dram緩沖器中讀取出所述數(shù)據(jù)和所述ECC;判斷單元,其基于讀取出的ECC,判斷讀取出的數(shù)據(jù)的錯誤發(fā)生與否;糾錯單元,當(dāng)讀取出的數(shù)據(jù)發(fā)生錯誤時,其糾正所述錯誤。3.如權(quán)利要求1所述的Dram緩沖器管理裝置,其進一步包括表存儲單元,其存儲有將構(gòu)成所述Dram緩沖器的至少一個頁中相互連續(xù)的頁映射到相互不同的條中的地址映射表。4.如權(quán)利要求3所述的Dram緩沖器管理裝置,其中,所述記錄單元,當(dāng)所述數(shù)據(jù)的大小及所述ECC的大小的和超出要記錄所述數(shù)據(jù)及所述ECC的第一頁的大小時,參照所述地址映射表將與所述第一頁連續(xù)的下一頁即第二頁生開(rawopen),并將所述數(shù)據(jù)及所述ECC中超過第一頁的大小的數(shù)據(jù)記錄在第二頁中。5.如權(quán)利要求1所述的Dram緩沖器管理裝置,其中,所述ECC生成單元,當(dāng)向所述Dram緩沖器以突發(fā)(burst)單位發(fā)送數(shù)據(jù)時,對每一個突發(fā)單位實時生成ECC,所述記錄單元,對每一個突發(fā)單位繼所述數(shù)據(jù)之后將所述ECC發(fā)送至所述Dram緩沖器。6.一種Dram緩沖器管理方法,包括以下步驟生成要在Dram緩沖器中記錄的數(shù)據(jù)的糾錯碼ECC;和將所述數(shù)據(jù)和所述ECC記錄在所述Dram緩沖器中。7.如權(quán)利要求6所述的Dram緩沖器管理方法,其進一步包括從所述Dram緩沖器中讀取出所述數(shù)據(jù)和所述ECC;基于讀取出的ECC,判斷讀取出的數(shù)據(jù)的錯誤發(fā)生與否;當(dāng)讀取出的數(shù)據(jù)發(fā)生錯誤時,糾正所述錯誤。8.如權(quán)利要求6所述的Dram緩沖器管理方法,其中,所述記錄步驟包括以下步驟判斷所述數(shù)據(jù)的大小及所述ECC的大小的和是否超出要記錄所述數(shù)據(jù)及所述ECC的第一頁的大??;當(dāng)所述數(shù)據(jù)的大小及所述ECC的大小的和超出所述第一頁的大小時,參照地址映射表將與所述第一頁連續(xù)的下一頁即第二頁生開(rawopen),并將所述數(shù)據(jù)及所述ECC中超出第一頁的大小的數(shù)據(jù)記錄在第二頁中,其中,所述地址映射表是將構(gòu)成所述Dram緩沖器的至少一個頁中相互連續(xù)的頁映射到相互不同的條中的表。9.一種存儲用于執(zhí)行權(quán)利要求6至8中任何一項所述方法的程序的計算機可讀記錄介質(zhì)。全文摘要提出了一種Dram緩沖器管理裝置和方法。提出的Dram緩沖器管理裝置和方法,生成Dram緩沖器中記錄的數(shù)據(jù)的糾錯碼ECC(ErrorCorrectionCode),將所述數(shù)據(jù)及所述ECC記錄在所述Dram緩沖器中。文檔編號G06F9/06GK102356382SQ200980158197公開日2012年2月15日申請日期2009年12月29日優(yōu)先權(quán)日2009年3月19日發(fā)明者鄭賢權(quán),金英官申請人:韓商英得聯(lián)股份有限公司