專利名稱::一種讀數(shù)據(jù)的方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及存儲
技術(shù)領(lǐng)域:
,特別涉及一種讀數(shù)據(jù)的方法、裝置和系統(tǒng)。
背景技術(shù):
:與非門閃存(NANDFlash)是一種非易失性隨機(jī)訪問存儲介質(zhì),其特點(diǎn)是斷電后數(shù)據(jù)不消失,因此可以作為外部存儲器使用。NANDFlash分為S單層式儲存單元(SingleLevelCell,SLC)和多層式儲存單元(MultiLevelCell,MLC)。SLC芯片中,每個存儲單元只存放1比特(Bit)的數(shù)據(jù),MLC芯片中,每個儲存單元可以存放2Bit或更多Bit的數(shù)據(jù)。對NANDFlash的操作最主要有讀、寫和刪除。NANDFlash的讀、寫或刪除,都需要命令來指示,這些命令都是以比特(Byte)為單位發(fā)布;命令是不同于數(shù)據(jù)的,所以命令要有使能信號;基于NANDFlash只有一組數(shù)據(jù)總線,并且總線的幅度只有8位或16位,地址和數(shù)據(jù)要共用這一組數(shù)據(jù)總線,所以就會有地址使能信號;另外,數(shù)據(jù)讀寫要有讀寫控制信號,所以會有讀使能信號和寫使能信號,NANDFlash的主要引腳及說明如表1所示表1<table>tableseeoriginaldocumentpage4</column></row><table>NANDFlash器件通常由內(nèi)部寄存器和存儲矩陣組成,以一種NANDFlash器件為例存儲矩陣包含1024個塊(Block),每個Block包含16頁(Page),每個Page包含512+16個比特(byte),其中的16byte為專有數(shù)據(jù);每種NANDFlash芯片的存儲矩陣大小定義可以不同,上述NANDFlash以528個byte組成一個Page,16個Page組成一個Block,由1024個Block組成Flash存儲器。在每頁中512bytes用于存儲數(shù)據(jù),16bytes用于存放糾錯碼(ErrorCorrectionCode,ECC)數(shù)據(jù)校驗(yàn)碼。由于NANDFlash地址、命令和數(shù)據(jù)的輸入輸出(Input/Output,I/O)通道是復(fù)用的,從NANDFlash中讀取數(shù)據(jù)的過程為先發(fā)送一個時鐘周期的讀命令i,然后發(fā)送五個時鐘周期的讀地址,然后發(fā)送一個時鐘周期的讀命令2,然后經(jīng)過一段時間的潛伏期(tR),最后讀出數(shù)據(jù)(data)。如圖1所示,為單片NANDFlash讀取過程示意圖,橫向?yàn)闀r間軸,表示了R/B端口,I/O端口,RE弁端口的信息發(fā)送狀況,單片NANDFlash讀速率=數(shù)據(jù)量/(發(fā)命令時間tCMD+發(fā)地址時間tADDR+讀潛伏期tR+讀出數(shù)據(jù)時間tDATA),以讀時鐘周期為30ns為例SLC器件單片讀速率=4224Bytes/(7*30ns+25ms+4224*30ns)=27.7MB/s;MLC器件單片讀速率=4224Bytes/(7*30ns+60jus+4224*30ns)=22.5MB/s。為了提高NANDFlash的讀寫速度,通??梢圆捎矛F(xiàn)場可編程門陣列器件(FieldProgrammableGatesArray,FPGA)連接4個通道的NANDFlash控制器,每個控制器控制完成4片NANDFlash的讀寫。在讀數(shù)據(jù)的時候4片NANDFlash對I/O通道使用是串行的,即第一片讀數(shù)據(jù)完成之后,再讀第二片數(shù)據(jù);讀完第二片數(shù)據(jù)后,再讀第三片數(shù)據(jù);讀完第三片數(shù)據(jù)后,再讀第四片數(shù)據(jù),依此類推。多片NANDFlash的讀取流程,如圖2所示,橫向?yàn)闀r間軸,從上到下依次表示,#端口,1/0端口,RE弁端口的信息發(fā)送狀況。假設(shè)FPGA使用高級技術(shù)附加裝置(AdvancedTechnologyAttachment,ATA)接口(外部接口速度最大為133MB/s)的數(shù)據(jù)輸入速率為133MB/s,典型的SLC器件單通道讀速率為27.7MB/s,如果四個通道一起讀數(shù)據(jù),則讀速率為27.7MB/s*4=110MB/s;典型的MLC器件單通道讀速率為22.5MB/s,如果四個通道一起讀數(shù)據(jù),則讀速率為22.5MB/s*4=90MB/s。用了較長的時間,I/O通道傳輸數(shù)據(jù)時兩次讀數(shù)據(jù)之間,也會等待潛伏期,導(dǎo)致i/o通道利用率較低,讀取速率低。
發(fā)明內(nèi)容本發(fā)明實(shí)施例要解決的技術(shù)問題是提供一種讀數(shù)據(jù)的方法、裝置和系統(tǒng),提高讀取速率。為解決上述技術(shù)問題,本發(fā)明所提供的讀數(shù)據(jù)方法實(shí)施例可以通過以下技術(shù)方案實(shí)現(xiàn)本發(fā)明實(shí)施例提供一種讀數(shù)據(jù)方法,包括向第一閃存片發(fā)送第一讀命令,接收到所述第一讀命令的響應(yīng)后,讀所述第一讀命令指向的數(shù)據(jù);在所述向第一閃存片發(fā)送第一讀命令之后,讀所述第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;接收到所述第二讀命令的響應(yīng),且所述讀第一讀命令指向的數(shù)據(jù)完成后,讀所述第二讀命令指向的數(shù)據(jù)。本發(fā)明實(shí)施例還提供一種讀數(shù)據(jù)裝置,包括讀命令發(fā)送單元,用于向第一閃存片發(fā)送第一讀命令,在所述向第一閃存片發(fā)送第一讀命令之后,讀所述第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;響應(yīng)接收單元,用于接收所述第一讀命令的響應(yīng),接收第二讀命令的響應(yīng);數(shù)據(jù)讀取單元,用于接收到所述第一讀命令的響應(yīng)后,讀所述第一讀命令指向的數(shù)據(jù);接收到所述第二讀命令的響應(yīng),且所述讀第一讀命令指向的數(shù)據(jù)完成后,讀所述第二讀命令指向的數(shù)據(jù)。本發(fā)明實(shí)施例再提供一種讀數(shù)據(jù)系統(tǒng),包括讀取控制器、與非門閃存存儲器,所述與非門閃存存儲器包括第一閃存片,第二閃存片;其特征在于,所述讀取控制器,用于向第一閃存片發(fā)送第一讀命令,接收到所述第一讀命令的響應(yīng)后,讀所述第一讀命令指向的數(shù)據(jù);在所述向第一閃存片發(fā)送第一讀命令之后,所述讀第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;接收到所述第二讀命令的響應(yīng),且所述讀第一讀命令指向的數(shù)據(jù)完成后,讀所述第二讀命令指向的數(shù)據(jù)。上述技術(shù)方案具有如下有益效果通過在第一讀命令與讀上述第一讀命令指向的數(shù)據(jù)之間,發(fā)送第二讀命令,復(fù)用了讀潛伏期,兩次讀數(shù)據(jù)之間不再有讀潛伏期,提高了I/0通道利用率,從而提高讀取速率。為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖l為現(xiàn)有技術(shù)讀一片閃存片流程示意圖2為現(xiàn)有^l支術(shù)讀四片閃存片流程示意圖3為本發(fā)明方法實(shí)施例一流程示意圖4為本發(fā)明方法實(shí)施例二流程示意圖5為本發(fā)明方法實(shí)施例二讀閃存片流程示意圖6為本發(fā)明方法實(shí)施例二的一個應(yīng)用場景示意圖7為本發(fā)明實(shí)施例三裝置結(jié)構(gòu)示意圖8為本發(fā)明實(shí)施例四系統(tǒng)結(jié)構(gòu)示意圖。具體實(shí)施例方式本發(fā)明實(shí)施例要解決的技術(shù)問題是提供一種讀數(shù)據(jù)的方法、裝置和系統(tǒng),提高讀取速率。實(shí)施例一,如圖3所示,本發(fā)明實(shí)施例提供了一種讀數(shù)據(jù)的方法,包括步驟301:向第一閃存片發(fā)送第一讀命令;接收上述第一讀命令的響應(yīng);第一讀命令可以為發(fā)送的讀取請求消息,該讀取請求消息包括讀命令和讀地址;步驟302:在上述向第一閃存片發(fā)送第一讀命令之后,讀上述第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;接收到上述第二讀命令的響應(yīng);上述向第二閃存片發(fā)送第二讀命令可以是連續(xù)向三片第二閃存片分別發(fā)送第二讀命令;7步驟303:接收到上述第一讀命令的響應(yīng)后,讀上述第一讀命令指向的數(shù)據(jù);上述接收到上述第一讀命令的響應(yīng)后,讀上述第一讀命令指向的數(shù)據(jù);的具體方法可以為第一閃存片接收到第一讀命令后,發(fā)送R/B^信號來響應(yīng)第一讀命令,R/B弁信號為就緒(ready)狀態(tài),則可以發(fā)送RE弁信號讀出該片F(xiàn)lash中的數(shù)據(jù);步驟304:接收到上述第二讀命令的響應(yīng),且上述讀第一讀命令指向的數(shù)據(jù)完成后,讀第二讀命令指向的數(shù)據(jù)。第二閃存片中數(shù)據(jù)的讀取方法與第一閃存片的讀取方法是相同的。上述方法的執(zhí)行主體可以為控制數(shù)據(jù)讀取的各種設(shè)備,或者設(shè)備中負(fù)責(zé)數(shù)據(jù)讀取控制的模塊;為了表述方便,稱一次讀取過程中,發(fā)送的一條讀命令為第一讀命令,其指向的閃存片為第一閃存片;上述第一讀命令的下一條讀命令為第二讀命令,第二讀命令指向的閃存片為第二閃存片;可以理解的是,第二讀命令可以有多條,第二閃存片可以有與第二讀命令一樣多的片數(shù)。上述方法,通過在第一讀命令與讀上述第一讀命令指向的數(shù)據(jù)之間,發(fā)送第二讀命令,復(fù)用了讀潛伏期,兩次讀數(shù)據(jù)之間不再有讀潛伏期,提高了I/0通道利用率,從而提高讀取速率。實(shí)施例二,作為應(yīng)用實(shí)施例一方法的一個例子,本發(fā)明實(shí)施例還提供了一種讀數(shù)據(jù)的方法,本實(shí)施例中,將從四片閃存片(第一閃存片l、第二閃存片2、第三閃存片3、第四閃存片4)中依次讀數(shù)據(jù);如圖4所示,包括以下步驟步驟401:向閃存片l發(fā)第一讀命令和第一讀地址,然后等待閃存片l的R/B^J信號響應(yīng);步驟402:在等待閃存片1的R/B弁—l信號響應(yīng)期間,依次向閃存片2、閃存片3、閃存片4分別發(fā)送讀命令和讀地址(這些讀命令可以依次分別為第二讀命令、第三讀命令和第四讀命令;這些讀地址可以標(biāo)記為第二讀地址、第三讀地址和第四讀地址),然后等待閃存片2、閃存片3、閃存片4的R/B弁—2、R/B#_3、R/B#—4信號響應(yīng);由于tR的時間遠(yuǎn)大于發(fā)讀命令和讀地址的時間,所以4片閃存片發(fā)送讀命令和讀地址完成后,tR應(yīng)該還沒有完成(tR—般為20000ns左右而發(fā)送讀命令和讀地址200ns左右,也就是說理論上一般可以連續(xù)向100片閃存片發(fā)送讀命令和讀地址)當(dāng)然由于讀數(shù)據(jù)的控制裝置的型號不同,tR也可以有很多種,但是一般都遠(yuǎn)大于發(fā)送讀命令和讀地址所需要的時間。一次連續(xù)發(fā)送多少個讀命令和讀地址可以根據(jù)本次讀取數(shù)據(jù)需要讀取的片數(shù)來確定,如果需要讀取的閃存片有非常多個,一次連續(xù)發(fā)送讀命令和讀地址的時間超過了潛伏期的時間,也可以分成幾次來讀取,每次讀取的方法,與本實(shí)施例的方法相同。步驟403:接收到閃存片1返回的R/B弁一1信號為就緒(ready)狀態(tài)時,向第一閃存片發(fā)送RE弁—l信號讀出該片F(xiàn)lash中的數(shù)據(jù);步驟404:閃存片2返回R/B弁—2信號的時間可能在讀閃存片l的數(shù)據(jù)的時候,此時不發(fā)RE弁信號,直到閃存片l的數(shù)據(jù)讀取完成后,向閃存片2發(fā)送RE弁信號讀出該片F(xiàn)lash中的數(shù)據(jù);同理,讀取閃存片3、閃存片4的數(shù)據(jù);上述方法實(shí)現(xiàn)過程還可以一并參閱圖5,圖5中顯示前三片閃存的讀取過程,在上述方法實(shí)施例中,一片的RE弁信號發(fā)送完成后再發(fā)送下一片的RE弁信號;由于復(fù)用了讀潛伏期,這樣從總體來看,1/0輸出的數(shù)據(jù)基本可以占滿I/0帶寬,從而提高了讀速率。如圖6所示,以上述方法的一個應(yīng)用場景為例,!/沒系統(tǒng)的主才幾601(HOST)通過高級4支術(shù)附加裝置(AdvancedTechnologyAttachment,ATA)接口和與非門閃存控制器602(NANDFlashControler)連接,來讀取與非門閃存603(NANDFlash)的數(shù)據(jù),由于ATA接口最大的傳輸速率是133MB/s,每片與非門閃存603(NANDFlash)的最大讀寫帶寬為40MB/s,當(dāng)NANDFlash采用30ns的讀周期和寫周期讀寫數(shù)據(jù)的時候,帶寬就是33.33MB/s。為了提高系統(tǒng)的速率,采用4個NANDFlash通道并行處理,每個通道的NANDFlash相互獨(dú)立,因此NANDFlash端的理論最大帶寬即33.33舉4二133MB/s?;贔PGA的NANDFlash控制器用于接收ATA端的指令來控制NANDFlash。如果采用現(xiàn)有技術(shù)的方式讀NANDFlash,根據(jù)前面的介紹,對于典型的SLC器件四個通道一起讀數(shù)據(jù),理論讀速率為27.7^48/3*4=110,/8;對于典型的MLC器件四個通道一起讀凝:據(jù),理論讀速率為22.5MB/s5^4=90MB/s。-使用上述實(shí)施例的方法后每個通道NANDFlash讀速率-數(shù)據(jù)量/(發(fā)命令時間tCMD+發(fā)地址時9間tADDR+讀潛伏期tR+讀出數(shù)據(jù)時間tDATA),對于典型的SLC器件讀速率=4片*4224Bytes/(7*30ns+25jas+4224承30ns承4片)=31.75MB/s,那么四個通道一起讀數(shù)據(jù),理論讀速率為31.75MBW4427MB/s;對于典型的MLC器件讀速率=4片*4224Bytes/(7*30ns+60jas+4224*30ns*4#)=29.7MB/s,那么四個通道一起讀數(shù)據(jù),理論讀速率為29.7MB/s+4418MB/s。使用本發(fā)明實(shí)施例的方法,提高了數(shù)據(jù)的讀取速度。實(shí)施例三,如圖7所示,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)讀取裝置,包括讀命令發(fā)送單元701,用于向第一閃存片發(fā)送第一讀命令,在上述向第一閃存片發(fā)送讀命令之后,讀上述第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;響應(yīng)接收單元702,用于接收上述第一讀命令的響應(yīng),接收第二讀命令的響應(yīng);數(shù)據(jù)讀取單元703,用于接收到上述第一讀命令的響應(yīng)后,讀上述第一讀命令指向的數(shù)據(jù);接收到上述第二讀命令的響應(yīng),且上述讀第一讀命令指向的數(shù)據(jù)完成后,讀第二讀命令指向的數(shù)據(jù)??蛇x地,上述讀命令發(fā)送單元702向第二閃存片發(fā)送第二讀命令后,讀命令發(fā)送單元702還可以繼續(xù)向第三閃存片分別發(fā)送第三讀命令。上述裝置,通過在第一讀命令與讀上述第一讀命令指向的數(shù)據(jù)之間,發(fā)送第二讀命令,復(fù)用了讀潛伏期,兩次讀數(shù)據(jù)之間不再有讀潛伏期,提高了I/0通道利用率,從而提高讀取速率。實(shí)施例四,如圖8所示,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)讀取系統(tǒng),包括讀取控制器801、與非門閃存存儲器802,上述與非門閃存存儲器802包括第一閃存片,第二閃存片;其中,讀取控制器801,用于向第一閃存片發(fā)送第一讀命令,接收到上述第一讀命令的響應(yīng)后,讀上述第一讀命令指向的數(shù)據(jù);在上述向第一閃存片發(fā)送讀命令之后,上述讀第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;接收到上述第二讀命令的響應(yīng),且上述讀第一讀命令指向的數(shù)據(jù)完成后,讀第二讀命令指向的數(shù)據(jù)。可選地,上述讀取控制器801向第二閃存片發(fā)送第二讀命令后,還包括繼續(xù)向第三閃存片分別發(fā)送第三讀命令。上述系統(tǒng),通過在第一讀命令與讀上述第一讀命令指向的數(shù)據(jù)之間,發(fā)送第二讀命令,復(fù)用了讀潛伏期,兩次讀數(shù)據(jù)之間不再有讀潛伏期,提高了I/0通道利用率,從而提高讀取速率。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或
技術(shù)領(lǐng)域:
內(nèi)所公知的任意其它形式的存儲介質(zhì)中。以上對本發(fā)明實(shí)施例所提供的一種讀數(shù)據(jù)的方法、裝置和系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。權(quán)利要求1、一種讀數(shù)據(jù)方法,其特征在于,包括向第一閃存片發(fā)送第一讀命令,接收到所述第一讀命令的響應(yīng)后,讀所述第一讀命令指向的數(shù)據(jù);在所述向第一閃存片發(fā)送第一讀命令之后,讀所述第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;接收到所述第二讀命令的響應(yīng),且所述讀第一讀命令指向的數(shù)據(jù)完成后,讀所述第二讀命令指向的數(shù)據(jù)。2、根據(jù)權(quán)利要求l所述方法,其特征在于,讀所述第一讀命令指向的數(shù)據(jù)之前,還向第三閃存片發(fā)送第三讀命令。3、根據(jù)權(quán)利要求2所述方法,其特征在于,所述第一閃存片和第二閃存片是與非門閃存NANDFlash片。4、一種數(shù)據(jù)讀取裝置,其特征在于,包括讀命令發(fā)送單元,用于向第一閃存片發(fā)送第一讀命令,在所述向第一閃存片發(fā)送第一讀命令之后,讀所述第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;響應(yīng)接收單元,用于接收所述第一讀命令的響應(yīng),接收第二讀命令的響應(yīng);數(shù)據(jù)讀取單元,用于接收到所述第一讀命令的響應(yīng)后,讀所述第一讀命令指向的數(shù)據(jù);接收到所述第二讀命令的響應(yīng),且所述讀第一讀命令指向的數(shù)據(jù)完成后,讀所述第二讀命令指向的數(shù)據(jù)。5、根據(jù)權(quán)利要求4所述裝置,其特征在于,讀所述第一讀命令指向的數(shù)據(jù)之前,所述讀命令發(fā)送單元還向第三閃存片發(fā)送第三讀命令。6、根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述第一閃存片和所述第二閃存片是與非門閃存NANDFlash片。7、一種數(shù)據(jù)讀取系統(tǒng),包括讀取控制器、與非門閃存存儲器,所述與非門閃存存儲器包括第一閃存片,第二閃存片;其特征在于,所述讀取控制器,用于向第一閃存片發(fā)送第一讀命令,接收到所述第一讀命令的響應(yīng)后,讀所述第一讀命令指向的數(shù)據(jù);在所述向第一閃存片發(fā)送第一讀命令之后,所述讀第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;接收到所述第二讀命令的響應(yīng),且所述讀第一讀命令指向的數(shù)據(jù)完成后,讀所述第二讀命令指向的數(shù)據(jù)。8、根據(jù)權(quán)利要求7所述系統(tǒng),其特征在于,讀所述第一讀命令指向的數(shù)據(jù)之前,所述讀取控制器還向第三閃存片發(fā)送第三讀命令。9、根據(jù)權(quán)利要求8所述系統(tǒng),其特征在于,所述第一閃存片和所述第二閃存片是與非門閃存NANDFlash片。全文摘要本發(fā)明實(shí)施例公開了一種讀數(shù)據(jù)的方法、裝置和系統(tǒng);其中讀數(shù)據(jù)方法的實(shí)現(xiàn)可以為向第一閃存片發(fā)送第一讀命令,接收到所述第一讀命令的響應(yīng)后,讀所述第一讀命令指向的數(shù)據(jù);在所述向第一閃存片發(fā)送第一讀命令之后,讀所述第一讀命令指向的數(shù)據(jù)之前,向第二閃存片發(fā)送第二讀命令;接收到所述第二讀命令的響應(yīng),且所述讀第一讀命令指向的數(shù)據(jù)完成后,讀所述第二讀命令指向的數(shù)據(jù)。上述實(shí)施方式具有如下有益效果通過在第一讀命令與讀上述第一讀命令指向的數(shù)據(jù)之間,發(fā)送第二讀命令,復(fù)用了讀潛伏期,兩次讀數(shù)據(jù)之間不再有讀潛伏期,提高了I/O通道利用率,從而提高讀取速率。文檔編號G06F13/20GK101515221SQ200910119499公開日2009年8月26日申請日期2009年3月17日優(yōu)先權(quán)日2009年3月17日發(fā)明者周建華申請人:成都市華為賽門鐵克科技有限公司