国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對(duì)閃存下達(dá)程序化指令的方法、控制器與儲(chǔ)存系統(tǒng)的制作方法

      文檔序號(hào):6580326閱讀:220來源:國(guó)知局

      專利名稱::對(duì)閃存下達(dá)程序化指令的方法、控制器與儲(chǔ)存系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及一種對(duì)閃存下達(dá)程序化指令的方法以及使用此方法的閃存控制器與閃存儲(chǔ)存系統(tǒng)。
      背景技術(shù)
      :由于閃存(FlashMemory)具有數(shù)據(jù)非揮發(fā)性、省電、體積小與無機(jī)械結(jié)構(gòu)等的特性,最適合使用于可攜式電子產(chǎn)品上。例如,固態(tài)硬盤就是一種以NAND閃存作為儲(chǔ)存媒體的儲(chǔ)存裝置,并且已廣泛配置于筆記型計(jì)算機(jī)中作為主要的儲(chǔ)存裝置。圖1是圖示一般閃存儲(chǔ)存裝置的概要方塊圖。一般來說,當(dāng)主機(jī)系統(tǒng)110透過連接器122與閃存儲(chǔ)存裝置電性連接并且欲儲(chǔ)存數(shù)據(jù)至閃存儲(chǔ)存裝置120時(shí),寫入數(shù)據(jù)至閃存儲(chǔ)存裝置120的閃存模塊126的程序可區(qū)分為數(shù)據(jù)傳輸(transfer)以及數(shù)據(jù)程序化(program)兩個(gè)部分。具體來說,當(dāng)主機(jī)系統(tǒng)110欲在閃存儲(chǔ)存裝置120中儲(chǔ)存數(shù)據(jù)時(shí),閃存控制器124會(huì)通過數(shù)據(jù)輸入/輸出總線128將數(shù)據(jù)傳輸至閃存模塊126內(nèi)的緩沖區(qū)132,之后閃存模塊126會(huì)將緩沖區(qū)132內(nèi)的數(shù)據(jù)程序化至閃存模塊126的存儲(chǔ)器(即,儲(chǔ)存區(qū))134,其中在閃存模塊126將數(shù)據(jù)程序化至存儲(chǔ)器134的期間,閃存模塊126是處于一實(shí)際忙碌(busy)狀態(tài),且當(dāng)閃存模塊126處于實(shí)際忙碌狀態(tài)下閃存控制器124無法對(duì)其下達(dá)任何指令或傳輸任何數(shù)據(jù)。也就是說,閃存控制器124必須于閃存模塊126完成程序化后才能響應(yīng)主機(jī)系統(tǒng)110并處理主機(jī)系統(tǒng)110的下一個(gè)指令。具體來說,當(dāng)閃存控制器124從主機(jī)系統(tǒng)110接收到主機(jī)寫入指令與寫入數(shù)據(jù)而需將寫入數(shù)據(jù)寫入至閃存模塊126時(shí),閃存控制器124會(huì)通過數(shù)據(jù)輸入/輸出總線128下達(dá)程序化指令,而此程序化指令中的相關(guān)信息就會(huì)暫存于緩沖區(qū)132中。例如,此程序化指令是由“指令W1”、“實(shí)體地址”、“寫入數(shù)據(jù)”與“指令W2”等字符串所組成,其中閃存控制器124通過“指令W1”指示閃存模塊126準(zhǔn)備執(zhí)行程序化程序,通過“實(shí)體地址”指示閃存模塊126欲程序化的地址,通過“寫入數(shù)據(jù)”指示閃存模塊126欲程序化的數(shù)據(jù)以及通過“指令W2”指示閃存模塊126開始執(zhí)行程序化。因此,當(dāng)閃存模塊126根據(jù)程序化指令中的“指令W2”開始將緩沖區(qū)132內(nèi)的數(shù)據(jù)寫入至存儲(chǔ)器134時(shí),閃存控制器124需接收到來自于閃存模塊126的完成程序化的確認(rèn)(acknowledgement)信息后才會(huì)回復(fù)主機(jī)系統(tǒng)110,一般來說,當(dāng)主機(jī)系統(tǒng)下達(dá)指令到主機(jī)系統(tǒng)接收到確認(rèn)信息的時(shí)間稱為響應(yīng)時(shí)間(responsetime)。隨著傳輸技術(shù)的發(fā)展,使得連接器的傳輸速度已大幅提升,例如,序列先進(jìn)附件(SerialAdvancedTechnologyAttachment,SATA)連接器已可達(dá)到每秒15億位(Gigabit,Gb),甚至每秒30Gb。然而,上述程序化閃存的速度卻遠(yuǎn)低連接器的速度下,整體儲(chǔ)存的效能仍無法有效改善,因此如何縮短執(zhí)行主機(jī)寫入指令的時(shí)間是此領(lǐng)域技術(shù)人員所致力的目標(biāo)。
      發(fā)明內(nèi)容本發(fā)明提供一種下達(dá)程序化指令的方法,其能夠有效地縮短執(zhí)行主機(jī)寫入指令的時(shí)間。本發(fā)明提供一種閃存控制器,其能夠有效地縮短執(zhí)行主機(jī)寫入指令的時(shí)間。本發(fā)明提供一種閃存儲(chǔ)存系統(tǒng),能夠有效地縮短執(zhí)行主機(jī)寫入指令的時(shí)間。本發(fā)明范例實(shí)施例提出一種下達(dá)程序化指令的方法,用于將來自于一主機(jī)系統(tǒng)的數(shù)據(jù)寫入至一閃存芯片中。本下達(dá)程序化指令的方法包括提供一閃存控制器,以及由閃存控制器使用一原生指令排序(NativeCommandQueuing,NCQ)協(xié)議從主機(jī)系統(tǒng)中接收多個(gè)主機(jī)寫入指令。本下達(dá)程序化指令的方法也包括由閃存控制器依據(jù)主機(jī)寫入指令傳送一下達(dá)指令順序給主機(jī)系統(tǒng)。本下達(dá)程序化指令的方法還包括依據(jù)下達(dá)指令順序從主機(jī)系統(tǒng)中依序地接收主機(jī)寫入指令與對(duì)應(yīng)主機(jī)寫入指令的多個(gè)寫入數(shù)據(jù),并且分別地向閃存芯片下達(dá)一快取程序化指令以將寫入數(shù)據(jù)寫入至閃存芯片中。本發(fā)明范例實(shí)施例提出一種閃存控制器,用于將來自于一主機(jī)系統(tǒng)的數(shù)據(jù)寫入至一閃存芯片中。本閃存控制器包括一微處理器單元、一緩沖存儲(chǔ)器、一閃存接口單元、一主機(jī)接口單元與一內(nèi)存管理單元。閃存接口單元電性連接至微處理器單元,并且用以連接閃存芯片。緩沖存儲(chǔ)器電性連接至微處理器單元。主機(jī)接口單元電性連接至微處理器單元,并且用以連接上述主機(jī)系統(tǒng),其中主機(jī)接口單元支持NCQ協(xié)議。內(nèi)存管理單元電性連接至微處理單元,并且用以通過主機(jī)接口單元使用NCQ協(xié)議從主機(jī)系統(tǒng)中接收多個(gè)主機(jī)寫入指令。此外,內(nèi)存管理單元通過主機(jī)接口單元依據(jù)主機(jī)寫入指令傳送一下達(dá)指令順序給主機(jī)系統(tǒng)。再者,內(nèi)存管理單元透過主機(jī)接口單元依據(jù)下達(dá)指令順序從主機(jī)系統(tǒng)中依序地接收主機(jī)寫入指令與對(duì)應(yīng)主機(jī)寫入指令的多個(gè)寫入數(shù)據(jù),并且分別地向閃存芯片下達(dá)快取程序化指令以將寫入數(shù)據(jù)寫入至閃存芯片中。本發(fā)明范例實(shí)施例提出一種閃存儲(chǔ)存系統(tǒng),用于儲(chǔ)存來自于一主機(jī)系統(tǒng)的數(shù)據(jù)。本閃存儲(chǔ)存系統(tǒng)包括用以電性連接上述主機(jī)系統(tǒng)的一連接器、一閃存芯片以及一閃存控制器,其中連接器支持NCQ協(xié)議。閃存控制器電性連接至連接器與閃存芯片,并且用以通過連接器使用NCQ協(xié)議從主機(jī)系統(tǒng)中接收多個(gè)主機(jī)寫入指令。此外,閃存控制器依據(jù)主機(jī)寫入指令傳送一下達(dá)指令順序給主機(jī)系統(tǒng)。再者,閃存控制器透過連接器依據(jù)上述下達(dá)指令順序從主機(jī)系統(tǒng)中依序地接收主機(jī)寫入指令與對(duì)應(yīng)主機(jī)寫入指令的多個(gè)寫入數(shù)據(jù),并且分別地向閃存芯片下達(dá)一快取程序化指令以將寫入數(shù)據(jù)寫入至閃存芯片中?;谏鲜?,本發(fā)明范例實(shí)施例的下達(dá)程序化指令的方法、閃存控制器與閃存儲(chǔ)存系統(tǒng)能夠有效地縮短執(zhí)行主機(jī)寫入指令的時(shí)間,由此提升數(shù)據(jù)存取的效能。下面通過具體實(shí)施例并結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。圖1是圖示一般閃存儲(chǔ)存系統(tǒng)的概要方塊圖;圖2A是根據(jù)本發(fā)明實(shí)施例圖示使用閃存儲(chǔ)存裝置的主機(jī)系統(tǒng);圖2B是根據(jù)本發(fā)明范例實(shí)施例所圖示的計(jì)算機(jī)、輸入/輸出裝置與閃存儲(chǔ)存裝置的示意圖;圖2C是根據(jù)本發(fā)明另一范例實(shí)施例所圖示的主機(jī)系統(tǒng)與閃存儲(chǔ)存裝置的示意圖;圖2D是根據(jù)本發(fā)明范例實(shí)施例所圖示的閃存儲(chǔ)存裝置的概要方塊圖;圖3是根據(jù)本發(fā)明范例實(shí)施例所圖示的閃存晶粒的概要方塊圖;圖4A是根據(jù)本發(fā)明范例實(shí)施例所圖示的閃存控制器透過數(shù)據(jù)輸入/輸出總線下達(dá)快取程序化指令的范例示意圖;圖4B是根據(jù)圖4A所示的指令所圖示閃存芯片的運(yùn)作時(shí)序圖;圖5是根據(jù)本發(fā)明范例實(shí)施例所圖示的下達(dá)程序化指令的流程圖。附圖標(biāo)記說明110:主機(jī)系統(tǒng);120閃存儲(chǔ)存裝置;122連接器;124閃存控制器;126閃存模塊;128數(shù)據(jù)輸入/輸出總線;132緩沖區(qū);134存儲(chǔ)器;200閃存儲(chǔ)存裝置;202連接器;204閃存控制器;206微處理器單元;208:內(nèi)存管理單元;210:主機(jī)接口單元;212閃存接口單元;214:緩沖存儲(chǔ)器;220閃存芯片;290主機(jī)系統(tǒng);295總線;300第0閃存模塊;302第0數(shù)據(jù)輸入/輸出總線;310:第1閃存模塊;312第1數(shù)據(jù)輸入/輸出總線;320:第2閃存模塊;322第2數(shù)據(jù)輸入/輸出總線;330:第3閃存模塊;332第3數(shù)據(jù)輸入/輸出總線;340:第4閃存模塊;342第4數(shù)據(jù)輸入/輸出總線;350:第5閃存模塊;352第5數(shù)據(jù)輸入/輸出總線;360:第6閃存模塊;362第6數(shù)據(jù)輸入/輸出總線;370:第7閃存模塊;372第7數(shù)據(jù)輸入/輸出總線;400:第0閃存晶粒;402儲(chǔ)存區(qū);404第一緩沖區(qū);406第二緩沖區(qū);410第1閃存晶粒;420第2閃存晶粒;430第3閃存晶粒;440第4閃存晶粒;450第5閃存晶粒;460第6閃存晶粒;470第7閃存晶粒;480第8閃存晶粒;490第9閃存晶粒;500第10閃存晶粒;510第11閃存晶粒;520第12閃存晶粒;530第13閃存晶粒;540第14閃存晶粒;550第15閃存晶粒;1100:計(jì)算機(jī);1102:微處理器;1104隨機(jī)存取內(nèi)存;1106輸入/輸出裝置;1108系統(tǒng)總線;1110數(shù)據(jù)傳輸接口;1202鼠標(biāo);1204鍵盤;1206顯示器;1208打印機(jī);1212隨身碟;1214記憶卡;1216固態(tài)硬盤;1310數(shù)位相機(jī);1310aSD卡;1310bMMC卡;1310cCF卡;1310d記憶棒;1310e嵌入式儲(chǔ)存裝置;Wl、W2、W3指令;DUD2、D3數(shù)據(jù);ADD1、ADD2、ADD3實(shí)體地址;CM1、CM2、CM3、CM4、CM5、CM6、CM7、CM8、CM9指令;Tl、T2、T3數(shù)據(jù)傳輸;Bi、B2、B3忙碌時(shí)間;S501、S503、S505、S507、S509、S511、S513、S515、S517下達(dá)程序化指令的步驟。具體實(shí)施例方式閃存儲(chǔ)存裝置一般而言包括閃存芯片與控制器(也稱,控制電路)。通常閃存儲(chǔ)存裝置會(huì)與主機(jī)系統(tǒng)一起使用,以使主機(jī)系統(tǒng)可將數(shù)據(jù)寫入至閃存儲(chǔ)存裝置或從閃存儲(chǔ)存裝置中讀取數(shù)據(jù)。另外,也有閃存儲(chǔ)存裝置是包括嵌入式閃存與可執(zhí)行于主機(jī)系統(tǒng)上以實(shí)質(zhì)地作為此嵌入式閃存控制器的軟件。圖2A是根據(jù)本發(fā)明實(shí)施例圖示使用閃存儲(chǔ)存裝置的主機(jī)系統(tǒng)。請(qǐng)參照?qǐng)D2A,主機(jī)系統(tǒng)290—般包括計(jì)算機(jī)1100與輸入/輸出(teput/output,I/O)裝置1106。計(jì)算機(jī)1100包括微處理器1102、隨機(jī)存取內(nèi)存(randomaccessmemory,RAM)1104,系統(tǒng)總線1108以及數(shù)據(jù)傳輸接口1110。輸入/輸出裝置1106包括如圖2B的鼠標(biāo)1202、鍵盤1204、顯示器1206與打印機(jī)1208。必須了解的是,圖2B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可還包括其它裝置。在本發(fā)明實(shí)施例中閃存儲(chǔ)存裝置200是通過數(shù)據(jù)傳輸接口1110與主機(jī)系統(tǒng)290的其它組件電性連接。通過微處理器1102、隨機(jī)存取內(nèi)存1104與輸入/輸出裝置1106的處理可將數(shù)據(jù)寫入至閃存儲(chǔ)存裝置200或從閃存儲(chǔ)存裝置200中讀取數(shù)據(jù)。例如,閃存儲(chǔ)存裝置200可以是如圖2B所示的隨身碟1212、記憶卡1214或固態(tài)硬盤(SolidStateDrive,SSD)1216。一般而言,主機(jī)系統(tǒng)290可實(shí)質(zhì)地為可儲(chǔ)存數(shù)據(jù)的任意系統(tǒng)。雖然在本范例實(shí)施例中,主機(jī)系統(tǒng)290是以計(jì)算機(jī)系統(tǒng)來作說明,然而,在本發(fā)明另一范例實(shí)施例中主機(jī)系統(tǒng)290可以是數(shù)字相機(jī)、攝影機(jī)、通信裝置、音訊播放器或視訊播放器等系統(tǒng)。例如,在主機(jī)系統(tǒng)為數(shù)字相機(jī)(攝影機(jī))1310時(shí),閃存儲(chǔ)存裝置則為其所使用的SD卡1310a、MMC卡1310b、CF卡1310c、記憶棒(memorystick)1310d或嵌入式儲(chǔ)存裝置1310e(如圖2C所示)。嵌入式儲(chǔ)存裝置1310e包括嵌入式多媒體卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接于主機(jī)系統(tǒng)的基板上。圖2D是圖示圖2A所示閃存儲(chǔ)存裝置200的詳細(xì)方塊圖。請(qǐng)參照?qǐng)D2D,閃存儲(chǔ)存裝置200包括連接器202、閃存控制器204與閃存芯片220。連接器202是電性連接至閃存控制器204并且用以通過總線295連接主機(jī)系統(tǒng)290。在本范例實(shí)施例中,連接器202為序列先進(jìn)附件(SerialAdvancedTechnologyAttachment,SΑΤΑ)連接器。特別是,連接器202支持原生指令排序(NativeCommandQueuing,NCQ)協(xié)議,并且主機(jī)系統(tǒng)290與閃存控制器204之間是以NCQ協(xié)議來傳送寫入指令。具體來說,當(dāng)主機(jī)系統(tǒng)290與閃存控制器204之間以NCQ協(xié)議傳送主機(jī)寫入指令時(shí),主機(jī)系統(tǒng)290會(huì)先將欲發(fā)送的多個(gè)主機(jī)寫入指令一起傳送給閃存控制器204,并且閃存控制器204向主機(jī)系統(tǒng)290響應(yīng)其預(yù)期下達(dá)指令順序,特別是,在此過程中主機(jī)系統(tǒng)290僅傳送欲下達(dá)的指令給閃存控制器204,而不會(huì)傳送欲寫入的數(shù)據(jù)。之后,主機(jī)系統(tǒng)290依據(jù)閃存控制器204的響應(yīng)來傳送主機(jī)寫入指令與數(shù)據(jù),并且閃存控制器204于完成所有主機(jī)寫入指令后再響應(yīng)主機(jī)系統(tǒng)290每一個(gè)寫入指令的執(zhí)行狀態(tài)。特別是,當(dāng)發(fā)生程序化錯(cuò)誤(programfail)時(shí),主機(jī)系統(tǒng)290會(huì)根據(jù)閃存控制器204的回報(bào)信息(即,執(zhí)行狀態(tài))來將對(duì)應(yīng)發(fā)生程序化錯(cuò)誤的指令與數(shù)據(jù)重新傳送給閃存控制器204?;蛘撸诒景l(fā)明另一范例實(shí)施例中,當(dāng)發(fā)生程序化錯(cuò)誤(programfail)時(shí),主機(jī)系統(tǒng)290會(huì)將所有指令與數(shù)據(jù)重新傳送給閃存控制器204。此外,必須了解的是,在本發(fā)明范例實(shí)施例中,連接器202為支持NCQ的SATA連接器,然本發(fā)明不限于此,連接器202也可以是其它支持NCQ協(xié)議的連接器。閃存控制器204會(huì)執(zhí)行以硬件型式或韌體型式實(shí)作的多個(gè)邏輯閘或控制指令,并且根據(jù)主機(jī)系統(tǒng)290的指令在閃存芯片220中進(jìn)行數(shù)據(jù)的寫入、讀取與抹除等運(yùn)作。閃存控制器204包括微處理器單元206、內(nèi)存管理單元208、主機(jī)接口單元210、閃存接口單元212與緩沖存儲(chǔ)器214。微處理器單元206為閃存控制器204的主控單元,用以與內(nèi)存管理單元208、主機(jī)接口單元210、閃存接口單元212與緩沖存儲(chǔ)器214等協(xié)同合作以進(jìn)行閃存儲(chǔ)存裝置200的各種運(yùn)作。內(nèi)存管理單元208是電性連接至微處理器單元206,用以執(zhí)行根據(jù)本范例實(shí)施例的下達(dá)程序化指令與區(qū)塊管理機(jī)制,內(nèi)存管理單元208的運(yùn)作將于以下配合圖式作詳細(xì)說明。在本范例實(shí)施例中,內(nèi)存管理單元208是以一韌體型式實(shí)作在閃存控制器204中。例如,將包括多個(gè)控制指令的內(nèi)存管理單元208燒錄至一程序內(nèi)存(例如,只讀存儲(chǔ)器(ReadOnlyMemory,ROM))中并且將此程序內(nèi)存嵌入在閃存控制器204中,當(dāng)閃存儲(chǔ)存裝置200運(yùn)作時(shí),內(nèi)存管理單元208的多個(gè)控制指令會(huì)由微處理器單元206來執(zhí)行以完成根據(jù)本發(fā)明實(shí)施例的下達(dá)程序化指令與區(qū)塊管理機(jī)制。在本發(fā)明另一范例實(shí)施例中,內(nèi)存管理單元208的控制指令也可以程序代碼型式儲(chǔ)存于閃存芯片220的特定區(qū)域(例如,閃存芯片中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。同樣的,當(dāng)閃存儲(chǔ)存裝置200運(yùn)作時(shí),內(nèi)存管理單元208的多個(gè)控制指令會(huì)由微處理器單元206來執(zhí)行。此外,在本發(fā)明另一范例實(shí)施例中,內(nèi)存管理單元208也可以一硬件型式實(shí)作在閃存控制器204中。主機(jī)接口單元210是電性連接至微處理器單元206并且用以接收與識(shí)別主機(jī)系統(tǒng)290所傳送的指令與數(shù)據(jù)。也就是說,主機(jī)系統(tǒng)290所傳送的指令與數(shù)據(jù)會(huì)通過主機(jī)接口單元210來傳送至微處理器單元206。在本范例實(shí)施例中,主機(jī)接口單元210是對(duì)應(yīng)連接器202為SATA接口。然而,必須了解的是本發(fā)明不限于此,主機(jī)接口單元210也可以是其它適合的數(shù)據(jù)傳輸接口。閃存接口單元212是電性連接至微處理器單元206并且用以存取閃存芯片220。也就是說,欲寫入至閃存芯片220的數(shù)據(jù)會(huì)通過閃存接口單元212轉(zhuǎn)換為閃存芯片220所能接受的格式。緩沖存儲(chǔ)器214是電性連接至微處理器單元206并且用以暫存來自于主機(jī)系統(tǒng)290的數(shù)據(jù)與指令或來自于閃存芯片220的數(shù)據(jù)。此外,雖未圖示于本范例實(shí)施例中,但閃存控制器204也還包括錯(cuò)誤校正單元與電源管理單元等一般功能模塊。閃存芯片220是電性連接至閃存控制器204并且用以儲(chǔ)存數(shù)據(jù)。閃存芯片220包括第0閃存模塊300、第1閃存模塊310、第2閃存模塊320、第3閃存模塊330、第4閃存模塊340、第5閃存模塊350、第6閃存模塊360與第7閃存模塊370。在本范例實(shí)施例中,第0閃存模塊300、第1閃存模塊310、第2閃存模塊320、第3閃存模塊330、第4閃存模塊340、第5閃存模塊350、第6閃存模塊360與第7閃存模塊370為多層存儲(chǔ)器(MultiLevelCell,MLC)NAND閃存模塊。然而,本發(fā)明不限于此,第0閃存模塊300、第1閃存模塊310、第2閃存模塊320、第3閃存模塊330、第4閃存模塊340、第5閃存模塊350、第6閃存模塊360與第7閃存模塊370也可是單層存儲(chǔ)器(SingleLevelCell,SLC)NAND閃存模塊。在本范例實(shí)施例中,第0閃存模塊300、第1閃存模塊310、第2閃存模塊320、第3閃存模塊330、第4閃存模塊340、第5閃存模塊350、第6閃存模塊360與第7閃存模塊370是分別地電性連接至閃存控制器204。具體來說,閃存控制器204的閃存接口單元212分別地通過第0數(shù)據(jù)輸入/輸出總線(Datainput/outputbus)302、第1數(shù)據(jù)輸入/輸出總線312、第2數(shù)據(jù)輸入/輸出總線322、第3數(shù)據(jù)輸入/輸出總線332、第4數(shù)據(jù)輸入/輸出總線342、第5數(shù)據(jù)輸入/輸出總線352、第6數(shù)據(jù)輸入/輸出總線362與第7數(shù)據(jù)輸入/輸出總線372傳送數(shù)據(jù)給第0閃存模塊300、第1閃存模塊310、第2閃存模塊320、第3閃存模塊330、第4閃存模塊340、第5閃存模塊350、第6閃存模塊360與第7閃存模塊370。在本范例實(shí)施例中,第0閃存模塊300包括第0閃存晶粒(die)400與第1閃存晶粒410,第1閃存模塊310包括第2閃存晶粒420與第3閃存晶粒430,第2閃存模塊320包括第4閃存晶粒440與第5閃存晶粒450,第3閃存模塊330包括第6閃存晶粒460與第7閃存晶粒470,第4閃存模塊340包括第8閃存晶粒480與第9閃存晶粒490,第5閃存模塊350包括第10閃存晶粒500與第11閃存晶粒510,第6閃存模塊360包括第12閃存晶粒520與第13閃存晶粒530以及第7閃存模塊370包括第14閃存晶粒540與第15閃存晶粒550。值得一提的是,在本發(fā)明范例實(shí)施例中,第0閃存模塊300、第1閃存模塊310、第2閃存模塊320、第3閃存模塊330、第4閃存模塊340、第5閃存模塊350、第6閃存模塊360與第7閃存模塊370和閃存控制器204之間分別地配置第0數(shù)據(jù)輸入/輸出總線302、第1數(shù)據(jù)輸入/輸出總線312、第2數(shù)據(jù)輸入/輸出總線322、第3數(shù)據(jù)輸入/輸出總線332、第4數(shù)據(jù)輸入/輸出總線342、第5數(shù)據(jù)輸入/輸出總線352、第6數(shù)據(jù)輸入/輸出總線362與第7數(shù)據(jù)輸入/輸出總線372,因此內(nèi)存管理單元208會(huì)使用平行模式(parallelmode)同時(shí)通過多條數(shù)據(jù)輸入/輸出總線來傳送寫入數(shù)據(jù)至對(duì)應(yīng)的閃存模塊,以提升存取速度。此外,每一閃存模塊包括兩個(gè)閃存晶粒,因此內(nèi)存管理單元208會(huì)使用一交錯(cuò)模式(interleavemode)來將寫入數(shù)據(jù)交錯(cuò)地傳送至同一閃存模塊內(nèi)的兩個(gè)閃存晶粒,以更增加存取效能。更詳細(xì)來說,如上所述,在閃存晶粒中寫入數(shù)據(jù)的過程包括數(shù)據(jù)傳輸(transfer)以及數(shù)據(jù)程序化(program)兩個(gè)部分,而交錯(cuò)模式(interleavemode)就是在使用同一條數(shù)據(jù)輸入/輸出總線傳輸數(shù)據(jù)的兩個(gè)閃存晶粒的例子中,利用其中一個(gè)閃存晶粒正執(zhí)行數(shù)據(jù)程序化的期間傳送數(shù)據(jù)給另一個(gè)閃存晶粒。圖3是根據(jù)本發(fā)明范例實(shí)施例所圖示的閃存晶粒的概要方塊圖。在此,第0閃存晶粒400、第1閃存晶粒410、第2閃存晶粒420、第3閃存晶粒430、第4閃存晶粒440、第5閃存晶粒450、第6閃存晶粒460、第7閃存晶粒470、第8閃存晶粒480、第9閃存晶粒490、第10閃存晶粒500、第11閃存晶粒510、第12閃存晶粒520、第13閃存晶粒530、第14閃存晶粒540與第15閃存晶粒550的結(jié)構(gòu)與運(yùn)作方式皆相同,以下僅以第0閃存晶粒400來進(jìn)行說明。請(qǐng)參照?qǐng)D3,第0閃存晶粒400包括儲(chǔ)存區(qū)402、第一緩沖區(qū)404與第二緩沖區(qū)406。儲(chǔ)存區(qū)402包括多個(gè)實(shí)體區(qū)塊并且用以儲(chǔ)存數(shù)據(jù)。實(shí)體區(qū)塊為抹除的最小單位。亦即,每一實(shí)體區(qū)塊含有最小數(shù)目的一并被抹除的存儲(chǔ)器。每一實(shí)體區(qū)塊具有數(shù)個(gè)頁面(page)。在本范例實(shí)施例中,頁面為程序化的最小單元。換言之,頁面為寫入數(shù)據(jù)或讀取數(shù)據(jù)的最小單元。每一頁面通常包括使用者數(shù)據(jù)區(qū)與冗余區(qū)。使用者數(shù)據(jù)區(qū)用以儲(chǔ)存使用者的數(shù)據(jù),而冗余區(qū)用以儲(chǔ)存系統(tǒng)的數(shù)據(jù)(例如,錯(cuò)誤檢查與校正碼(ErrorCheckingandCorrectingCode,ECCCode)。值得一提的是,第0閃存晶粒400、第1閃存晶粒410、第2閃存晶粒420、第3閃存晶粒430、第4閃存晶粒440、第5閃存晶粒450、第6閃存晶粒460、第7閃存晶粒470、第8閃存晶粒480、第9閃存晶粒490、第10閃存晶粒500、第11閃存晶粒510、第12閃存晶粒520、第13閃存晶粒530、第14閃存晶粒540與第15閃存晶粒550中的實(shí)體區(qū)塊會(huì)被內(nèi)存管理單元208群組為多個(gè)實(shí)體單元來進(jìn)行數(shù)據(jù)的寫入、讀取與抹除。特別是每一實(shí)體單元是由多個(gè)閃存晶粒中的實(shí)體區(qū)塊所組成,因此內(nèi)存管理單元208會(huì)使用上述平行模式與交錯(cuò)模式來提升存取的速度。再者,由于閃存的存儲(chǔ)器僅能從“1”程序化為“0”,因此要更新實(shí)體區(qū)塊內(nèi)的數(shù)據(jù)時(shí)必須先抹除實(shí)體區(qū)塊內(nèi)的數(shù)據(jù)。然而,閃存的寫入是以頁面為單位,而抹除是以實(shí)體區(qū)塊為單位,所以儲(chǔ)存區(qū)402中的實(shí)體區(qū)塊會(huì)以輪替方式來儲(chǔ)存數(shù)據(jù)。具體來說,內(nèi)存管理單元208會(huì)將分組的實(shí)體單元邏輯地分組為系統(tǒng)區(qū)(systemarea)、數(shù)據(jù)區(qū)(dataarea)、備用區(qū)(sparearea)與取代區(qū)(replacementarea),其中分組為系統(tǒng)區(qū)的實(shí)體單元是用以儲(chǔ)存閃存儲(chǔ)存裝置的相關(guān)重要信息,而分組為取代區(qū)的實(shí)體單元是用以取代數(shù)據(jù)區(qū)或備用區(qū)中已損壞的實(shí)體單元,因此在一般存取狀態(tài)下,主機(jī)系統(tǒng)290是無法存取系統(tǒng)區(qū)與取代區(qū)中的實(shí)體單元。至于分組為數(shù)據(jù)區(qū)的實(shí)體單元中會(huì)儲(chǔ)存由主機(jī)寫入指令所寫入的數(shù)據(jù),而備用區(qū)中的實(shí)體單元是用以在執(zhí)行主機(jī)寫入指令時(shí)替換數(shù)據(jù)區(qū)中的實(shí)體單元。例如,當(dāng)閃存儲(chǔ)存裝置200接受到主機(jī)系統(tǒng)290的主機(jī)寫入指令而欲更新(或?qū)懭?數(shù)據(jù)至數(shù)據(jù)區(qū)中某一實(shí)體單元的某一頁面時(shí),內(nèi)存管理單元208會(huì)從備用區(qū)中提取一實(shí)體單元并且將欲被更新的實(shí)體單元中的有效舊數(shù)據(jù)與欲寫入的新數(shù)據(jù)寫入至從備用區(qū)中提取的實(shí)體單元中,并且將已寫入有效舊數(shù)據(jù)與新數(shù)據(jù)的實(shí)體單元邏輯地關(guān)聯(lián)為數(shù)據(jù)區(qū),并且將數(shù)據(jù)區(qū)中欲被更新的實(shí)體單元進(jìn)行抹除并邏輯地關(guān)聯(lián)為備用區(qū)。為了能夠讓主機(jī)系統(tǒng)290能夠順利地存取以輪替方式儲(chǔ)存數(shù)據(jù)的實(shí)體單元,閃存儲(chǔ)存裝置200會(huì)提供邏輯地址給主機(jī)系統(tǒng)290。也就是說,閃存儲(chǔ)存裝置200會(huì)通過在邏輯地址-實(shí)體地址對(duì)映表(logicaladdress-physicaladdressmappingtable)中記錄與更新邏輯地址與數(shù)據(jù)區(qū)的實(shí)體單元之間的對(duì)映關(guān)系來反映實(shí)體單元的輪替,所以主機(jī)系統(tǒng)290僅需要針對(duì)所提供邏輯地址進(jìn)行寫入而閃存儲(chǔ)存裝置200會(huì)依據(jù)邏輯地址-實(shí)體地址對(duì)映表對(duì)所對(duì)映的實(shí)體單元的實(shí)體地址進(jìn)行讀取或?qū)懭霐?shù)據(jù)。第一緩沖區(qū)404與第二緩沖區(qū)406是用以暫存閃存控制器204所傳送的數(shù)據(jù)。如上所述,在第0閃存晶粒400中寫入數(shù)據(jù)的過程包括數(shù)據(jù)傳輸以及數(shù)據(jù)程序化兩個(gè)部分。在數(shù)據(jù)傳輸?shù)牟糠郑W存控制器204會(huì)將欲寫入的數(shù)據(jù)傳輸至第一緩沖區(qū)404,并且之后,欲寫入的數(shù)據(jù)會(huì)被搬移至第二緩沖區(qū)406。而在數(shù)據(jù)程序化的部分,欲寫入的數(shù)據(jù)會(huì)從第二緩沖區(qū)406中寫入至儲(chǔ)存區(qū)402。在此,第一緩沖區(qū)404也稱為數(shù)據(jù)快取(datacache)區(qū),而第二緩沖區(qū)406也稱為快取緩沖(cachebuffer)區(qū),其中第一緩沖區(qū)404與第二緩沖區(qū)406可分別暫存一個(gè)頁面的寫入數(shù)據(jù)以對(duì)應(yīng)程序化單位(即,頁面)。具體來說,當(dāng)內(nèi)存管理單元208從主機(jī)系統(tǒng)290接收到主機(jī)寫入指令與寫入數(shù)據(jù)而需將寫入數(shù)據(jù)寫入至第0閃存晶粒400時(shí),內(nèi)存管理單元208會(huì)通過閃存接口單元212與數(shù)據(jù)輸入/輸出總線302下達(dá)程序化指令,而此程序化指令中的欲寫入的數(shù)據(jù)從緩沖存儲(chǔ)器214中被傳輸至第一緩沖區(qū)404,之后欲寫入的數(shù)據(jù)會(huì)從第一緩沖區(qū)404中被搬移至第二緩沖區(qū)406,最后,數(shù)據(jù)會(huì)從第二緩沖區(qū)406被程序化至儲(chǔ)存區(qū)402。特別是,在本范例實(shí)施例中,內(nèi)存管理單元208僅會(huì)使用是由“指令W1”、“實(shí)體地址”、“寫入數(shù)據(jù)”與“指令W3”等字符串所組成程序化指令來程序化數(shù)據(jù),其中內(nèi)存管理單元208通過“指令W1”指示第0閃存晶粒400準(zhǔn)備執(zhí)行程序化程序,通過“實(shí)體地址”指示第0閃存晶粒400欲程序化的實(shí)體地址,通過“寫入數(shù)據(jù)”指示第0閃存晶粒400欲程序化的數(shù)據(jù)以及通過“指令W3”指示第0閃存晶粒400開始執(zhí)行快取程序化(cacheprogram)。在此,當(dāng)使用程序化指令中的“指令W3”時(shí),閃存控制器204會(huì)于數(shù)據(jù)已從第一緩沖區(qū)404中被搬移第二緩沖區(qū)406時(shí)就接收到第0閃存晶粒400的確認(rèn)信息,而可處理下一個(gè)指令。例如,在閃存控制器204使用NCQ協(xié)議從主機(jī)系統(tǒng)290中接收到兩個(gè)連續(xù)主機(jī)寫入指令而需于第0閃存晶粒400的兩個(gè)頁面執(zhí)行程序化的例子中,由于第0閃存晶粒400具有兩個(gè)緩沖區(qū)(即,第一緩沖區(qū)404與第二緩沖區(qū)406),因此當(dāng)?shù)?閃存晶粒400已將第一個(gè)主機(jī)寫入指令的數(shù)據(jù)從第一緩沖區(qū)404搬移至第二緩沖區(qū)406之后,第一緩沖區(qū)404就可被清除并接收第二個(gè)主機(jī)寫入指令的數(shù)據(jù)。特別是,在第0閃存晶粒400正將第一個(gè)主機(jī)寫入指令的寫入數(shù)據(jù)從第二緩沖區(qū)406中程序化至儲(chǔ)存區(qū)402期間,第一緩沖區(qū)404可負(fù)責(zé)接收下一個(gè)程序化指令的寫入數(shù)據(jù)(即,第二個(gè)主機(jī)寫入指令的數(shù)據(jù))。也就是說,通過使用“指令W3”可使得內(nèi)存管理單元208在無需等待第0閃存晶粒400完成第一個(gè)主機(jī)寫入指令的程序化的情況下,就可繼續(xù)處理第二個(gè)主機(jī)寫入指令,并將第二個(gè)主機(jī)寫入指令的寫入數(shù)據(jù)傳輸至第一緩沖區(qū)404中。因此,第0閃存晶粒400可同時(shí)地執(zhí)行第一個(gè)主機(jī)寫入指令的寫入數(shù)據(jù)的數(shù)據(jù)程序化和第二個(gè)主機(jī)指令的寫入數(shù)據(jù)的數(shù)據(jù)傳輸,而縮短執(zhí)行主機(jī)寫入指令的時(shí)間。圖4A是根據(jù)本發(fā)明范例實(shí)施例所圖示的閃存控制器透過數(shù)據(jù)輸入/輸出總線下達(dá)快取程序化指令的范例示意圖,并且圖4B是根據(jù)圖4A所示的指令所圖示閃存芯片的運(yùn)作時(shí)序圖。在圖4A與圖4B的范例中,內(nèi)存管理單元208是使用NCQ協(xié)議從主機(jī)系統(tǒng)290中接收到3個(gè)主機(jī)寫入指令。在此,此3個(gè)主機(jī)寫入指令欲寫入的邏輯地址為連續(xù)的3個(gè)邏輯地址,并且內(nèi)存管理單元208會(huì)依據(jù)此些邏輯地址的順序來產(chǎn)生下達(dá)指令順序,以使主機(jī)系統(tǒng)290依據(jù)內(nèi)存管理單元208所產(chǎn)生的下達(dá)指令順序來下達(dá)此3個(gè)主機(jī)寫入指令,其中第1個(gè)主機(jī)寫入指令包括欲寫入的邏輯地址及欲寫入的數(shù)據(jù)D1,第2個(gè)主機(jī)寫入指令包括欲寫入的邏輯地址及欲寫入的數(shù)據(jù)D2,第3個(gè)主機(jī)寫入指令包括欲寫入的邏輯地址及欲寫入的數(shù)據(jù)D3,并且此3個(gè)主機(jī)寫入指令欲于寫入的邏輯地址是對(duì)映至第0閃存晶粒400的實(shí)體區(qū)塊。請(qǐng)參照?qǐng)D4A與圖4B,當(dāng)閃存控制器204的內(nèi)存管理單元208依據(jù)該下達(dá)指令順序接收到來自于主機(jī)系統(tǒng)290的第1個(gè)主機(jī)寫入指令及欲寫入的數(shù)據(jù)后,內(nèi)存管理單元208會(huì)依據(jù)第1個(gè)主機(jī)寫入指令中的邏輯地址與其欲寫入的數(shù)據(jù)Dl中向閃存芯片220下達(dá)由“指令Wl”、“ADD1”、“數(shù)據(jù)D1”與“指令W3”等字符串所組成的快取程序化指令(如圖4A所示的指令CM1、指令CM2、傳輸Tl與指令CM3),其中“ADD1”表示程序化數(shù)據(jù)的實(shí)體地址。也是就說,內(nèi)存管理單元208會(huì)依據(jù)邏輯地址-實(shí)體地址對(duì)映表將主機(jī)寫入指令中的邏輯地址所對(duì)映的實(shí)體地址傳送給第0閃存晶粒400(即,指令CM2),并且將數(shù)據(jù)Dl傳輸至第一緩沖區(qū)404(即,傳輸Tl)。之后,第0閃存晶粒400會(huì)依據(jù)快取程序化指令(即,指令CM3)將數(shù)據(jù)Dl從第一緩沖區(qū)404搬移至第二緩沖區(qū)406,并且在完成將數(shù)據(jù)Dl從第一緩沖區(qū)404搬移至第二緩沖區(qū)406之后,將數(shù)據(jù)Dl從第二緩沖區(qū)406中程序化至儲(chǔ)存區(qū)402。特別是,在第0閃存晶粒400開始執(zhí)行指令CM3時(shí),第0閃存晶粒400會(huì)處于一忙碌狀態(tài),并且在完成將數(shù)據(jù)Dl從第一緩沖區(qū)404搬移至第二緩沖區(qū)406之后即回復(fù)為一待命(ready)狀態(tài)(即,忙碌時(shí)間Bi)。在第0閃存晶粒400回復(fù)為待命狀態(tài)時(shí),內(nèi)存管理單元208會(huì)響應(yīng)主機(jī)系統(tǒng)290,從主機(jī)系統(tǒng)290中接收第2個(gè)主機(jī)寫入指令與數(shù)據(jù)D2,并且對(duì)第0閃存晶粒400下達(dá)由“指令W1”、“ADD2”、“數(shù)據(jù)D2”與“指令W3”等字符串所組成的快取程序化指令(如圖4A所示的指令CM4、指令CM5、傳輸T2與指令CM6)以將第2個(gè)主機(jī)寫入指令的數(shù)據(jù)D2傳輸至第一緩沖區(qū)404(即,傳輸T2)。此時(shí),數(shù)據(jù)Dl的數(shù)據(jù)程序化與數(shù)據(jù)D2的數(shù)據(jù)傳輸是同時(shí)地進(jìn)行。也就是說,由于第0閃存晶粒400中存有2個(gè)緩沖區(qū)(即,第一緩沖區(qū)404與第二緩沖區(qū)406),因此透過快取寫入指令來將欲寫入的數(shù)據(jù)從第一緩沖區(qū)404搬移至第二緩沖區(qū)406后,第二緩沖區(qū)406用于將數(shù)據(jù)程序化至儲(chǔ)存區(qū)402,而第一緩沖區(qū)406就可繼續(xù)從緩沖存儲(chǔ)器214中接收數(shù)據(jù)。接著,在傳輸數(shù)據(jù)D2之后,當(dāng)?shù)?閃存晶粒400完成數(shù)據(jù)Dl的數(shù)據(jù)程序化后,第0閃存晶粒400會(huì)依據(jù)指令CM6將數(shù)據(jù)D2從第一緩沖區(qū)404搬移至第二緩沖區(qū)406,并且在完成將數(shù)據(jù)D2從第一緩沖區(qū)404搬移至第二緩沖區(qū)406之后,將數(shù)據(jù)D2從第二緩沖區(qū)406中程序化至儲(chǔ)存區(qū)402。在第0閃存晶粒400開始執(zhí)行指令CM6時(shí),第0閃存晶粒400會(huì)處于忙碌狀態(tài),并且在完成將數(shù)據(jù)D2從第一緩沖區(qū)404搬移至第二緩沖區(qū)406之后即回復(fù)為待命狀態(tài)(即,忙碌時(shí)間B2)。類似地,在第0閃存晶粒400回復(fù)為待命狀態(tài)時(shí),內(nèi)存管理單元208會(huì)響應(yīng)主機(jī)系統(tǒng)290,從主機(jī)系統(tǒng)290中接收第3個(gè)主機(jī)寫入指令與數(shù)據(jù)D3,并且對(duì)第0閃存晶粒400下達(dá)由“指令Wl”、“ADD3”、“數(shù)據(jù)D3”與“指令W3”等字符串所組成的快取程序化指令(如圖4A所示的指令CM7、指令CM8、傳輸T3與指令CM9)以將第3個(gè)主機(jī)寫入指令的數(shù)據(jù)D3傳輸至第一緩沖區(qū)404(即,傳輸T3)。接著,在傳輸數(shù)據(jù)D3之后,當(dāng)?shù)?閃存晶粒400完成數(shù)據(jù)D2的數(shù)據(jù)程序化后,第0閃存晶粒400會(huì)依據(jù)指令CM9將數(shù)據(jù)D3從第一緩沖區(qū)404搬移至第二緩沖區(qū)406,并且在完成將數(shù)據(jù)D3從第一緩沖區(qū)404搬移至第二緩沖區(qū)406之后,將數(shù)據(jù)D3從第二緩沖區(qū)406中程序化至儲(chǔ)存區(qū)402。類似地,在第0閃存晶粒400開始執(zhí)行指令CM9時(shí),第0閃存晶粒400會(huì)處于忙碌狀態(tài),并且在完成將數(shù)據(jù)D3從第一緩沖區(qū)404搬移至第二緩沖區(qū)406之后即回復(fù)為待命狀態(tài)(即,忙碌時(shí)間B3)。值得一提的是,在內(nèi)存管理單元208從第0閃存晶粒400中收到回復(fù)為待命狀態(tài)的確認(rèn)信息中會(huì)包括快取狀態(tài)位與實(shí)際忙碌狀態(tài)位,其中快取狀態(tài)位是表示第0閃存晶粒400是否已準(zhǔn)備好再接收下一個(gè)寫入資料,而實(shí)際忙碌狀態(tài)位是表示第0閃存晶粒400目前是否正處于實(shí)際忙碌狀態(tài)。由此,閃存控制器204通過確認(rèn)信息中的信息可正確地判斷第0閃存晶粒400是否正在程序化數(shù)據(jù)。在圖4A與圖4B的范例中,在忙碌時(shí)間B3之后,雖然第0閃存晶粒400已回復(fù)處于待命狀態(tài),然由于內(nèi)存管理單元208已對(duì)此次通過NCQ協(xié)議所接收的所有主機(jī)寫入指令完成下達(dá)程序化指令的動(dòng)作,因此內(nèi)存管理單元208會(huì)持續(xù)確認(rèn)第0閃存晶粒400已完成所有數(shù)據(jù)的程序化(即,內(nèi)存管理單元208會(huì)確認(rèn)第0閃存晶粒400已處于非實(shí)際忙碌狀態(tài))之后,向主機(jī)系統(tǒng)290回復(fù)每一主機(jī)寫入指令的執(zhí)行狀態(tài)。圖5是根據(jù)本發(fā)明范例實(shí)施例所圖示的下達(dá)程序化指令的流程圖。請(qǐng)參照?qǐng)D5,首先,在步驟S501中閃存儲(chǔ)存裝置200從主機(jī)系統(tǒng)290中接收主機(jī)寫入指令。具體來說,在本范例實(shí)施例中,主機(jī)系統(tǒng)290是使用NCQ協(xié)議來傳送多個(gè)主機(jī)寫入指令(如圖4A所述的2個(gè)主機(jī)寫入指令)。因此,在步驟S501中閃存儲(chǔ)存裝置200會(huì)先接收到主機(jī)系統(tǒng)290預(yù)計(jì)下達(dá)的多個(gè)主機(jī)寫入指令。接著,在步驟S503中內(nèi)存管理單元208會(huì)依據(jù)所接收的主機(jī)寫入指令所對(duì)應(yīng)的邏輯地址來產(chǎn)生一下達(dá)指令順序。具體來說,在本實(shí)施例中,當(dāng)內(nèi)存管理單元208使用NCQ協(xié)議從主機(jī)系統(tǒng)290中接收到多個(gè)主機(jī)寫入指令時(shí),內(nèi)存管理單元208會(huì)依據(jù)主機(jī)寫入指令中的邏輯地址來排序以決定預(yù)期的執(zhí)行主機(jī)寫入指令的順序。值得一提的是,在本范例另一范例實(shí)施例中,內(nèi)存管理單元208也可不重新排列所接收到主機(jī)寫入指令的順序,而以主機(jī)系統(tǒng)290原本下達(dá)主機(jī)寫入指令的順序來產(chǎn)生下達(dá)指令順序。在步驟S505中內(nèi)存管理單元208會(huì)將所產(chǎn)生的下達(dá)指令順序傳送給主機(jī)系統(tǒng)。之后,在步驟S507中內(nèi)存管理單元208會(huì)依據(jù)下達(dá)指令順序一個(gè)接著一個(gè)地從主機(jī)系統(tǒng)290中接收此些主機(jī)寫入指令與對(duì)應(yīng)此些主機(jī)寫入指令的寫入數(shù)據(jù)。之后,在步驟S509中內(nèi)存管理單元208會(huì)向閃存芯片220下達(dá)快取程序化指令(例如,以“指令W1”、“實(shí)體地址”、“寫入數(shù)據(jù)”與“指令W3”等字符串所組成程序化指令)。之后,在步驟S511中內(nèi)存管理單元208會(huì)等候與接收閃存芯片220的確認(rèn)信息,并且在步驟S513中判斷是否已完成在步驟S501中主機(jī)系統(tǒng)290欲下達(dá)的所有主機(jī)寫入指令。倘若在步驟S513中判斷還未完成在步驟S501中主機(jī)系統(tǒng)290欲下達(dá)的所有主機(jī)寫入指令時(shí),則執(zhí)行步驟S507繼續(xù)接收下一個(gè)主機(jī)寫入指令。倘若在步驟S513中判斷已完成在步驟S501中主機(jī)系統(tǒng)290欲下達(dá)的所有主機(jī)寫入指令時(shí),則在步驟S515中判斷閃存芯片220是否處于實(shí)際忙碌狀態(tài)。倘若在步驟S515中判斷閃存芯片220非處于實(shí)際忙碌狀態(tài),則執(zhí)行步驟S517響應(yīng)主機(jī)系統(tǒng)290并結(jié)束圖5的流程,反之,則繼續(xù)執(zhí)行步驟S511?;谏鲜?,在使用NCQ協(xié)議來接收來自于主機(jī)系統(tǒng)290的多個(gè)主機(jī)寫入指令的例子中,內(nèi)存管理單元208會(huì)于此批依據(jù)NCQ協(xié)議所下達(dá)的所有主機(jī)寫入指令都執(zhí)行完成后,向主機(jī)系統(tǒng)290回報(bào)所有主機(jī)寫入指令的執(zhí)行狀態(tài)(例如,是否有發(fā)生程序化錯(cuò)誤)。特別是,內(nèi)存管理單元208會(huì)等候閃存芯片220從執(zhí)行最后一個(gè)主機(jī)寫入指令的實(shí)際忙碌狀態(tài)回復(fù)為待命狀態(tài)時(shí),才向主機(jī)系統(tǒng)290回報(bào)所有主機(jī)寫入指令的執(zhí)行狀態(tài)。綜上所述,本發(fā)明范例實(shí)施例的下達(dá)程序化指令方法僅使用快取程序化指令來對(duì)閃存芯片程序化,由此可大幅縮短執(zhí)行主機(jī)寫入指令的時(shí)間。此外,本發(fā)明范例實(shí)施例的下達(dá)程序化指令方法更利用NCQ協(xié)議來于主機(jī)系統(tǒng)與閃存儲(chǔ)存裝置之間傳送指令,由此可避免主機(jī)系統(tǒng)無法正確地判斷每一個(gè)主機(jī)寫入指令的實(shí)際執(zhí)行狀態(tài)。再者,在上述范例實(shí)施例中,更利用NCQ協(xié)議來依據(jù)主機(jī)寫入指令所欲寫入的邏輯地址來重新排列下達(dá)主機(jī)寫入指令的順序,由此可更縮短執(zhí)行主機(jī)寫入指令所需的時(shí)間。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。權(quán)利要求1.一種對(duì)閃存下達(dá)程序化指令的方法,用于將來自于一主機(jī)系統(tǒng)的數(shù)據(jù)寫入至一閃存芯片中,所述下達(dá)程序化指令的方法包括提供一閃存控制器;由所述閃存控制器使用一原生指令排序協(xié)議從所述主機(jī)系統(tǒng)中接收多個(gè)主機(jī)寫入指令;由所述閃存控制器依據(jù)所述主機(jī)寫入指令傳送一下達(dá)指令順序給所述主機(jī)系統(tǒng);以及依據(jù)所述下達(dá)指令順序從所述主機(jī)系統(tǒng)中依序地接收所述主機(jī)寫入指令與對(duì)應(yīng)所述主機(jī)寫入指令的多個(gè)寫入數(shù)據(jù),并且分別地向所述閃存芯片下達(dá)一快取程序化指令以將所述寫入數(shù)據(jù)寫入至所述閃存芯片中。2.根據(jù)權(quán)利要求1所述的對(duì)閃存下達(dá)程序化指令的方法,其中由所述閃存控制器依據(jù)所述主機(jī)寫入指令傳送所述下達(dá)指令順序給所述主機(jī)系統(tǒng)的步驟包括由所述閃存控制器依據(jù)所述主機(jī)系統(tǒng)下達(dá)所述主機(jī)寫入指令的順序來決定所述下達(dá)指令順序;以及將所述下達(dá)指令順序傳送所述主機(jī)系統(tǒng)。3.根據(jù)權(quán)利要求1所述的對(duì)閃存下達(dá)程序化指令的方法,其中由所述閃存控制器依據(jù)所述主機(jī)寫入指令傳送所述下達(dá)指令順序給所述主機(jī)系統(tǒng)的步驟包括由所述閃存控制器依據(jù)對(duì)應(yīng)所述主機(jī)寫入指令的多個(gè)邏輯地址來決定所述下達(dá)指令順序;以及將所述下達(dá)指令順序傳送所述主機(jī)系統(tǒng)。4.根據(jù)權(quán)利要求1所述的對(duì)閃存下達(dá)程序化指令的方法,還包括在所述閃存控制器完成所有所述主機(jī)寫入指令后傳送對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)給所述主機(jī)系統(tǒng)。5.根據(jù)權(quán)利要求4所述的對(duì)閃存下達(dá)程序化指令的方法,其中當(dāng)對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)之中包括至少一程序化錯(cuò)誤時(shí),則由所述閃存控制器從所述主機(jī)系統(tǒng)重新接收所述主機(jī)寫入指令之中對(duì)應(yīng)所述至少一程序化錯(cuò)誤的主機(jī)寫入指令與寫入數(shù)據(jù)。6.根據(jù)權(quán)利要求4所述的對(duì)閃存下達(dá)程序化指令的方法,其中當(dāng)對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)之中包括至少一程序化錯(cuò)誤時(shí),則由所述閃存控制器從所述主機(jī)系統(tǒng)重新接收所有所述主機(jī)寫入指令與所述寫入數(shù)據(jù)。7.根據(jù)權(quán)利要求1所述的對(duì)閃存下達(dá)程序化指令的方法,其中所述閃存芯片包括一第一緩沖區(qū)、一第二緩沖區(qū)與一儲(chǔ)存區(qū),其中依據(jù)所述下達(dá)指令順序從所述主機(jī)系統(tǒng)中依序地接收所述主機(jī)寫入指令與對(duì)應(yīng)所述主機(jī)寫入指令的所述寫入數(shù)據(jù),并且分別地向所述閃存芯片下達(dá)所述快取程序化指令以將所述寫入數(shù)據(jù)寫入至所述閃存芯片中的步驟包括從所述主機(jī)系統(tǒng)中接收所述主機(jī)寫入指令之中的一第一主機(jī)寫入指令以及所述寫入數(shù)據(jù)之中對(duì)應(yīng)所述第一主機(jī)寫入指令的一第一寫入數(shù)據(jù);由所述閃存控制器向所述閃存芯片下達(dá)所述快取程序化指令將所述第一寫入數(shù)據(jù)傳輸至所述第一緩沖區(qū),其中所述第一寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)并且從所述第二緩沖區(qū)被寫入至所述儲(chǔ)存區(qū);從所述主機(jī)系統(tǒng)中接收所述主機(jī)寫入指令之中的一第二主機(jī)寫入指令以及所述寫入數(shù)據(jù)之中對(duì)應(yīng)所述第二主機(jī)寫入指令的一第二寫入數(shù)據(jù);以及由所述閃存控制器向所述閃存芯片下達(dá)所述快取程序化指令以將所述第二寫入數(shù)據(jù)傳輸至所述第一緩沖區(qū),其中所述第二寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)并且從所述第二緩沖區(qū)被寫入至所述儲(chǔ)存區(qū),其中當(dāng)所述第一寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)之后,所述第二寫入數(shù)據(jù)被傳輸至所述第一緩沖區(qū)中。8.—種閃存控制器,用于將來自于一主機(jī)系統(tǒng)的數(shù)據(jù)寫入至一閃存芯片中,所述閃存控制器包括一微處理器單元;一緩沖存儲(chǔ)器,電性連接至所述微處理器單元;一閃存接口單元,電性連接至所述微處理器單元,用以連接所述閃存芯片;一主機(jī)接口單元,電性連接至所述微處理器單元,用以連接所述主機(jī)系統(tǒng),其中所述主機(jī)接口單元支持一原生指令排序協(xié)定;以及一內(nèi)存管理單元,電性連接至所述微處理器單元,用以通過所述主機(jī)接口單元使用所述原生指令排序協(xié)議從所述主機(jī)系統(tǒng)中接收多個(gè)主機(jī)寫入指令,其中所述內(nèi)存管理單元通過所述主機(jī)接口單元依據(jù)所述主機(jī)寫入指令傳送一下達(dá)指令順序給所述主機(jī)系統(tǒng),其中所述內(nèi)存管理單元透過所述主機(jī)接口單元依據(jù)所述下達(dá)指令順序從所述主機(jī)系統(tǒng)中依序地接收所述主機(jī)寫入指令與對(duì)應(yīng)所述主機(jī)寫入指令的多個(gè)寫入數(shù)據(jù),并且分別地向所述閃存芯片下達(dá)一快取程序化指令以將所述寫入數(shù)據(jù)寫入至所述閃存芯片中。9.根據(jù)權(quán)利要求8所述的閃存控制器,其中所述內(nèi)存管理單元依據(jù)所述主機(jī)系統(tǒng)下達(dá)所述主機(jī)寫入指令的順序來決定所述下達(dá)指令順序。10.根據(jù)權(quán)利要求8所述的閃存控制器,其中所述內(nèi)存管理單元依據(jù)對(duì)應(yīng)所述主機(jī)寫入指令的多個(gè)邏輯地址來決定所述下達(dá)指令順序。11.根據(jù)權(quán)利要求8所述的閃存控制器,其中所述內(nèi)存管理單元在完成所有所述主機(jī)寫入指令后傳送對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)給所述主機(jī)系統(tǒng)。12.根據(jù)權(quán)利要求11所述的閃存控制器,其中當(dāng)對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)之中包括至少一程序化錯(cuò)誤時(shí),則所述內(nèi)存管理單元從所述主機(jī)系統(tǒng)中重新接收所述主機(jī)寫入指令之中對(duì)應(yīng)所述至少一程序化錯(cuò)誤的主機(jī)寫入指令與寫入數(shù)據(jù)。13.根據(jù)權(quán)利要求11所述的閃存控制器,其中當(dāng)對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)之中包括至少一程序化錯(cuò)誤時(shí),則所述內(nèi)存管理單元從所述主機(jī)系統(tǒng)中重新接收所述主機(jī)寫入指令與所述寫入數(shù)據(jù)。14.根據(jù)權(quán)利要求11所述的閃存控制器,其中所述閃存芯片包括一第一緩沖區(qū)、一第二緩沖區(qū)與一儲(chǔ)存區(qū),其中所述內(nèi)存管理單元從所述主機(jī)系統(tǒng)中接收所述主機(jī)寫入指令之中的一第一主機(jī)寫入指令以及所述寫入數(shù)據(jù)之中對(duì)應(yīng)所述第一主機(jī)寫入指令的一第一寫入數(shù)據(jù),其中所述內(nèi)存管理單元向所述閃存芯片下達(dá)所述快取程序化指令將所述第一寫入數(shù)據(jù)從所述緩沖存儲(chǔ)器中傳輸至所述第一緩沖區(qū),其中所述第一寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)并且從所述第二緩沖區(qū)被寫入至所述儲(chǔ)存區(qū),其中所述內(nèi)存管理單元從所述主機(jī)系統(tǒng)中接收所述主機(jī)寫入指令之中的一第二主機(jī)寫入指令以及所述寫入數(shù)據(jù)之中對(duì)應(yīng)所述第二主機(jī)寫入指令的一第二寫入數(shù)據(jù),其中所述內(nèi)存管理單元向所述閃存芯片下達(dá)所述快取程序化指令以將所述第二寫入數(shù)據(jù)從所述緩沖存儲(chǔ)器中傳輸至所述第一緩沖區(qū),其中所述第二寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)并且從所述第二緩沖區(qū)被寫入至所述儲(chǔ)存區(qū),以及其中當(dāng)所述第一寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)之后,所述第二寫入數(shù)據(jù)被傳輸至所述第一緩沖區(qū)中。15.—種閃存儲(chǔ)存系統(tǒng),用于儲(chǔ)存來自于一主機(jī)系統(tǒng)的數(shù)據(jù),包括一連接器,用以電性連接所述主機(jī)系統(tǒng),其中所述連接器支持一原生指令排序協(xié)定;一閃存芯片;以及一閃存控制器,電性連接至所述連接器與所述閃存芯片,用以通過所述連接器使用所述原生指令排序協(xié)議從所述主機(jī)系統(tǒng)中接收多個(gè)主機(jī)寫入指令,其中所述閃存控制器依據(jù)所述主機(jī)寫入指令傳送一下達(dá)指令順序給所述主機(jī)系統(tǒng),其中所述閃存控制器通過所述連接器依據(jù)所述下達(dá)指令順序從所述主機(jī)系統(tǒng)中依序地接收所述主機(jī)寫入指令與對(duì)應(yīng)所述主機(jī)寫入指令的多個(gè)寫入數(shù)據(jù),并且分別地向所述閃存芯片下達(dá)一快取程序化指令以將所述寫入數(shù)據(jù)寫入至所述閃存芯片中。16.根據(jù)權(quán)利要求15所述的閃存儲(chǔ)存系統(tǒng),其中所述閃存控制器依據(jù)所述主機(jī)系統(tǒng)下達(dá)所述主機(jī)寫入指令的順序來決定所述下達(dá)指令順序。17.根據(jù)權(quán)利要求15所述的閃存儲(chǔ)存系統(tǒng),其中所述閃存控制器依據(jù)對(duì)應(yīng)所述主機(jī)寫入指令的多個(gè)邏輯地址來決定所述下達(dá)指令順序。18.根據(jù)權(quán)利要求15所述的閃存儲(chǔ)存系統(tǒng),其中所述閃存控制器在完成所有所述主機(jī)寫入指令后傳送對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)給所述主機(jī)系統(tǒng)。19.根據(jù)權(quán)利要求18所述的閃存儲(chǔ)存系統(tǒng),其中當(dāng)對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)之中包括至少一程序化錯(cuò)誤時(shí),則所述閃存控制器從所述主機(jī)系統(tǒng)中重新接收所述主機(jī)寫入指令之中對(duì)應(yīng)所述至少一程序化錯(cuò)誤的主機(jī)寫入指令與寫入數(shù)據(jù)。20.根據(jù)權(quán)利要求18所述的閃存儲(chǔ)存系統(tǒng),其中當(dāng)對(duì)應(yīng)所述主機(jī)寫入指令的執(zhí)行狀態(tài)之中包括至少一程序化錯(cuò)誤時(shí),則所述閃存控制器從所述主機(jī)系統(tǒng)中重新接收所述主機(jī)寫入指令與所述寫入數(shù)據(jù)。21.根據(jù)權(quán)利要求15所述的閃存儲(chǔ)存系統(tǒng),其中所述閃存芯片包括一第一緩沖區(qū)、一第二緩沖區(qū)與一儲(chǔ)存區(qū),其中所述閃存控制器從所述主機(jī)系統(tǒng)中接收所述主機(jī)寫入指令之中的一第一主機(jī)寫入指令以及所述寫入數(shù)據(jù)之中對(duì)應(yīng)所述第一主機(jī)寫入指令的一第一寫入數(shù)據(jù),其中所述閃存控制器向所述閃存芯片下達(dá)所述快取程序化指令將所述第一寫入數(shù)據(jù)從所述緩沖存儲(chǔ)器中傳輸至所述第一緩沖區(qū),其中所述第一寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)并且從所述第二緩沖區(qū)被寫入至所述儲(chǔ)存區(qū),其中所述閃存控制器從所述主機(jī)系統(tǒng)中接收所述主機(jī)寫入指令之中的一第二主機(jī)寫入指令以及所述寫入數(shù)據(jù)之中對(duì)應(yīng)所述第二主機(jī)寫入指令的一第二寫入數(shù)據(jù),其中所述閃存控制器向所述閃存芯片下達(dá)所述快取程序化指令以將所述第二寫入數(shù)據(jù)從所述緩沖存儲(chǔ)器中傳輸至所述第一緩沖區(qū),其中所述第二寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)并且從所述第二緩沖區(qū)被寫入至所述儲(chǔ)存區(qū),以及其中當(dāng)所述第一寫入數(shù)據(jù)從所述第一緩沖區(qū)被搬移至所述第二緩沖區(qū)之后,所述第二寫入數(shù)據(jù)被傳輸至所述第一緩沖區(qū)中。全文摘要本發(fā)明實(shí)施例提供了一種對(duì)閃存下達(dá)程序化指令的方法、控制器與儲(chǔ)存系統(tǒng),該方法用于將來自于主機(jī)系統(tǒng)的數(shù)據(jù)寫入至閃存芯片中。本方法包括使用原生指令排序(NativeCommandQueuing,NCQ)協(xié)議從主機(jī)系統(tǒng)接收多個(gè)主機(jī)寫入指令與對(duì)應(yīng)這些主機(jī)寫入指令的寫入數(shù)據(jù),并且向閃存芯片下達(dá)快取程序化指令以將寫入數(shù)據(jù)寫入至閃存芯片中?;?,通過僅使用快取程序化指令與原生指令排序協(xié)議來執(zhí)行數(shù)據(jù)的寫入可有效地縮短執(zhí)行主機(jī)寫入指令的時(shí)間。文檔編號(hào)G06F3/06GK102023811SQ20091017216公開日2011年4月20日申請(qǐng)日期2009年9月10日優(yōu)先權(quán)日2009年9月10日發(fā)明者葉志剛申請(qǐng)人:群聯(lián)電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1