包括主機命令隊列的存儲器控制器及操作其的方法
【專利摘要】公開了一種存儲器控制器,包括:主機接口,適用于將來自主機的多個主機命令排隊在主機命令隊列中;狀態(tài)寄存器,適用于儲存分別與所述多個主機命令相對應(yīng)的就緒設(shè)定位;存儲器命令發(fā)生單元,適用于產(chǎn)生分別與排隊的主機命令相對應(yīng)的存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;以及存儲器命令執(zhí)行單元,適用于響應(yīng)于排隊的存儲器命令來執(zhí)行操作。存儲器命令執(zhí)行單元從存儲器命令隊列獲取與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息,并基于獲取的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位。
【專利說明】包括主機命令隊列的存儲器控制器及操作其的方法
[0001]相關(guān)申請的交叉引用
[0002]本申請要求2015年4月3日向韓國知識產(chǎn)權(quán)局提交的申請?zhí)枮?0-2015-0047633的韓國專利申請的優(yōu)先權(quán),其全部公開內(nèi)容通過引用整體合并于此。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及一種電子器件,更具體地,涉及一種包括主機命令隊列的存儲器控制器及操作其的方法。
【背景技術(shù)】
[0004]半導(dǎo)體存儲器件使用諸如硅(Si)、鍺(Ge)、砷化鎵(GaAs)和磷化銦(InP)的半導(dǎo)體。半導(dǎo)體存儲器件通常分類為易失性存儲器件和非易失性存儲器件。
[0005]在無恒定的電源的情況下,易失性存儲器件不能維持儲存的數(shù)據(jù)。易失性存儲器件的示例包括:靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)和同步DRAM(SDRAM)等。即便在無恒定的電源的情況下,非易失性存儲器件仍能夠維持它們儲存的數(shù)據(jù)。非易失性存儲器件包括:只讀存儲器(R0M)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦除可編程ROM (EEPROM)、閃速存儲器、相變RAM(PRAM)、磁性RAM(MRAM)、電阻式RAM(RRAM)、鐵電RAM(FRAM)等。閃速存儲器通常劃分為或非(NOR)型和與非(NAND)型。
[0006]存儲器控制器響應(yīng)于主機命令來產(chǎn)生存儲器命令,并控制半導(dǎo)體存儲器件來執(zhí)行產(chǎn)生的存儲器命令。存儲器控制器包括用于將主機命令排隊的主機命令隊列。主機命令隊列可以由存儲器控制器之內(nèi)的RAM組成。
【發(fā)明內(nèi)容】
[0007]本發(fā)明試圖提供具有改善的操作速度的存儲器控制器及操作其的方法。
[0008]本發(fā)明的一個示例性實施例提供一種存儲器控制器,包括:主機命令隊列;主機接口,適用于將來自主機的多個主機命令排隊在主機命令隊列中;狀態(tài)寄存器,適用于儲存分別與多個主機命令相對應(yīng)的就緒設(shè)定位(ready set bit),其中,就緒設(shè)定位中的每個指示多個主機命令中的對應(yīng)的一個是否是就緒的且可得到的;存儲器命令隊列;存儲器命令發(fā)生單元,適用于產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;以及存儲器命令執(zhí)行單元,適用于響應(yīng)于排隊的存儲器命令來執(zhí)行操作。存儲器命令執(zhí)行單元可以從存儲器命令隊列獲取與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息,并基于獲取的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位。
[0009]主機接口可以響應(yīng)于來自主機的就緒狀態(tài)請求來將就緒設(shè)定位輸出到主機。
[0010]存儲器控制器可以接收針對多個主機命令的由主機選擇的一部分的執(zhí)行命令。
[0011]主機接口還可以從主機接收分別與多個主機命令相對應(yīng)的多個任務(wù)ID。
[0012]就緒設(shè)定位可以分別對應(yīng)于任務(wù)ID。
[0013]存儲器命令發(fā)生單元還可以將分別與排隊的主機命令相對應(yīng)的任務(wù)ID和存儲器命令一起排隊在存儲器命令隊列中。
[0014]存儲器命令執(zhí)行單元可以從存儲器命令隊列檢測與執(zhí)行過的存儲器命令相對應(yīng)的任務(wù)ID,并根據(jù)獲取的狀態(tài)更新信息來更新狀態(tài)寄存器之內(nèi)的與檢測到的任務(wù)ID相對應(yīng)的就緒設(shè)定位。
[0015]本發(fā)明的另一個示例性實施例提供一種操作存儲器控制器的方法,包括:將來自主機的多個主機命令排隊在主機命令隊列中;將分別與多個主機命令相對應(yīng)的就緒設(shè)定位提供給狀態(tài)寄存器;產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;響應(yīng)于排隊的存儲器命令來執(zhí)行操作;根據(jù)與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位;以及響應(yīng)于來自主機的就緒狀態(tài)請求來將就緒設(shè)定位輸出到主機。
[0016]本發(fā)明的又一個示例性實施例提供一種存儲器控制器,包括:主機命令隊列;主機接口,適用于將來自主機的多個主機命令和分別與多個主機命令相對應(yīng)的任務(wù)ID排隊在主機命令隊列中;狀態(tài)寄存器,適用于儲存分別與任務(wù)ID相對應(yīng)的就緒設(shè)定位;存儲器命令隊列;存儲器命令發(fā)生單元,適用于產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;以及存儲器命令執(zhí)行單元,適用于響應(yīng)于排隊的存儲器命令來執(zhí)行操作。存儲器命令執(zhí)行單元可以從存儲器命令隊列獲取與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息,并基于獲取的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位。
[0017]根據(jù)本發(fā)明的示例性實施例,提供了具有改善的操作速度的存儲器控制器及其操作方法。
[0018]前述的概要僅是說明性的,并在任何方面都不意在為限制性的。除了以上描述的說明性的方面、實施例和特征之外,通過參考附圖以及下面的詳細描述,進一步的方面、實施例和特征將變得明顯。
【附圖說明】
[0019]通過參照附圖來詳細地描述本發(fā)明的實施例,本發(fā)明的以上的和其他的特征和優(yōu)點對于本領(lǐng)域技術(shù)人員來說將變得更加明顯,在附圖中:
[0020]圖1是圖示根據(jù)本發(fā)明的一個示例性實施例的存儲器控制器的框圖;
[0021]圖2是圖示圖1的半導(dǎo)體存儲器件的框圖;
[0022]圖3是圖示根據(jù)本發(fā)明的一個示例性實施例的操作存儲器控制器的方法的流程圖;
[0023]圖4是用于圖示從存儲器命令隊列輸出存儲器命令的過程的示圖;
[0024]圖5是圖示根據(jù)本發(fā)明的一個示例性實施例的輸出圖1的狀態(tài)寄存器的就緒設(shè)定位的過程的流程圖;
[0025]圖6是圖示根據(jù)本發(fā)明的一個示例性實施例的響應(yīng)于來自主機的執(zhí)行命令而操作存儲器控制器的方法的流程圖;
[0026]圖7是圖示圖3中的步驟S150的流程圖;以及
[0027]圖8是圖示用于實施圖1的存儲器控制器的示例性實施例的框圖。
【具體實施方式】
[0028]在下文中,將參照附圖來詳細地描述本發(fā)明的示例性實施例。在以下的描述中,應(yīng)當(dāng)注意的是,僅將解釋用于理解根據(jù)本發(fā)明的操作所必需的部分,且將省略對其他部分的解釋以免混淆本發(fā)明的主旨。然而,本發(fā)明不局限于本文中所描述的示例性實施例,并且可以以其他形式來詳細說明。本示例性實施例被提供以詳細地描述本發(fā)明使得本領(lǐng)域技術(shù)人員可以輕易地掌握本發(fā)明的技術(shù)主旨。
[0029]貫穿本說明書和所附權(quán)利要求書,當(dāng)描述為元件“耦接”到另一個元件時,該元件可以“直接耦接”到另一個元件或通過第三元件“電耦接”到另一個元件。貫穿本說明書和所附權(quán)利要求書,除非另外地明確陳述,否則詞“包括”(“comprise”及諸如“comprises”或“comprising”的變種)將被理解為暗含包括所述元件但不排除其他任何元件。
[0030]圖1是圖示根據(jù)本發(fā)明的一個示例性實施例的存儲器控制器100的框圖。
[0031]參見圖1,存儲器控制器100可以包括:主機接口 110、存儲器命令發(fā)生單元120、存儲器命令執(zhí)行單元130、RAM 140、主機命令隊列HCQ、存儲器命令隊列MCQ和狀態(tài)寄存器SRG0
[0032]主機接口 110可以與主機Host通信。主機接口 110可以在存儲器命令發(fā)生單元120的控制下執(zhí)行操作。主機接口 110可以包括用于執(zhí)行主機Host與存儲器控制器100之間的數(shù)據(jù)交換的協(xié)議。作為示例性實施例,主機接口 110可以通過各種接口協(xié)議(諸如,通用串行總線(USB)協(xié)議、多媒體卡(MMC)協(xié)議、外圍部件互連(PCI)協(xié)議、PC1-快速(PC1-E)協(xié)議、高級技術(shù)附件(ATA)協(xié)議、串行ATA協(xié)議、并行ATA協(xié)議、小型計算機小接口(SCSI)協(xié)議、增強型小磁盤接口(ESDI)協(xié)議、集成驅(qū)動電路(IDE)協(xié)議以及私有協(xié)議)中的一種或更多種來與主機Host通信。
[0033]主機接口 110可以從主機Host接收多個主機命令HCMDl到HCMDm。主機接口 110可以將接收到的主機命令HCMDl到HCMDm排隊在主機命令隊列HCQ中。多個主機命令HCMDl到HCMDm可以是用于訪問半導(dǎo)體存儲器件200的命令。例如,主機命令可以是用于讀取儲存在半導(dǎo)體存儲器件200中的數(shù)據(jù)的主機讀取命令。例如,主機命令可以是用于將數(shù)據(jù)儲存在半導(dǎo)體存儲器件200中的主機編程命令。
[0034]可以維持排隊在主機命令隊列HCQ中的主機命令HCMDl到HCMDm,直到從主機Host接收到執(zhí)行命令。之后將描述該執(zhí)行命令。
[0035]主機Host可以在傳送每個主機命令時傳送對應(yīng)的邏輯塊地址。主機接口 110可以將與對應(yīng)的主機命令相關(guān)的邏輯塊地址儲存在RAM 140中。
[0036]在一個示例性實施例中,主機Host可以在傳送每個主機命令時將每個主機命令和任務(wù)ID —起傳送。任務(wù)ID可以是用于識別主機命令HCMDl到HCMDm中的每個的信息。在這種情形下,主機接口 110可以將任務(wù)ID連同對應(yīng)的主機命令排隊在主機命令隊列HCQ中。在圖1中,第一主機命令HCMDl到第m主機命令HCMDm可以分別對應(yīng)于第一任務(wù)ID到第m任務(wù)ID。第一主機命令HCMDl和第一任務(wù)ID TKIDl可以包括在第一主機命令集HCSl中。第二主機命令HCMD2和第二任務(wù)ID TKID2可以包括在第二主機命令集HCS2中。第三主機命令HCMD3和第三任務(wù)ID TKID3可以包括在第三主機命令集HCS3中。第m主機命令HCMDm和第m任務(wù)ID TKIDm可以包括在第m主機命令集HCSm中。第一主機命令集HCSl到第m主機命令集HCSm可以根據(jù)先進先出原則而排隊在主機命令隊列HCQ中。
[0037]狀態(tài)寄存器SRG可以儲存就緒設(shè)定位RSBl到RSBm??梢酝ㄟ^存儲器命令發(fā)生器120來初始化就緒設(shè)定位RSBl到RSBm。第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm可以通過初始化而具有第一設(shè)定值(例如,邏輯值“O”)。
[0038]在一個示例性實施例中,第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm可以包括在位映射圖中以分別對應(yīng)于第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm??梢岳斫鉃闋顟B(tài)寄存器SRG可以儲存具有比m大的數(shù)目的就緒設(shè)定位。狀態(tài)寄存器SRG可以儲存與從主機Host可得到的任務(wù)ID同樣多的就緒設(shè)定位。
[0039]主機接口 110可以響應(yīng)于來自主機Host的就緒狀態(tài)請求信號RSR來將儲存在狀態(tài)寄存器SRG中的就緒設(shè)定位RSBl到RSBm輸出到主機Host。主機Host可以基于就緒設(shè)定位RSBl到RSBm來確定存儲器控制器100準(zhǔn)備好執(zhí)行主機命令HCMDl到HCMDm中的哪個。相應(yīng)地,在存儲器控制器100準(zhǔn)備好分別執(zhí)行主機命令HCMDl到HCMDm之后,需要立即更新就緒設(shè)定位RSBl到RSBm。主機Host可以通過查閱就緒設(shè)定位RSBl到RSBm來選擇第一主機命令HCMDl到HCMDm中的一些主機命令,并將針對選定的主機命令的執(zhí)行命令傳送到存儲系統(tǒng)100。存儲器控制器100可以響應(yīng)于執(zhí)行命令來執(zhí)行從第一主機命令HCMDl到第m主機命令HCMDm中選擇的主機命令。
[0040]存儲器命令發(fā)生單元120可以控制存儲器控制器100的常規(guī)操作。存儲器命令發(fā)生單元120可以執(zhí)行閃速轉(zhuǎn)換層的功能。存儲器命令發(fā)生單元120可以將映射表MPT加載到RAM 140,以及可以基于映射表MPT來執(zhí)行閃速轉(zhuǎn)換層的功能。
[0041]當(dāng)主機命令HCMDl到HCMDm排隊在主機命令隊列HCQ中時,存儲器命令發(fā)生單元120可以產(chǎn)生針對每個主機命令的存儲器命令。對于單個主機命令,可能需要一個或更多個存儲器命令。例如,當(dāng)主機命令是針對特定邏輯塊地址的主機讀取命令時,可能需要儲存物理塊地址與邏輯塊地址之間的映射信息的映射表MPT。當(dāng)映射表MPT不包括邏輯塊地址與物理塊地址之間的映射信息時,存儲器命令發(fā)生單元120可以產(chǎn)生用于從半導(dǎo)體存儲器件200讀取對應(yīng)的映射信息的存儲器命令。例如,為了獲取關(guān)于選定的邏輯塊地址的映射信息,存儲器命令發(fā)生單元120可以產(chǎn)生用于讀取半導(dǎo)體存儲器件200之內(nèi)的一個頁的存儲器讀取命令。在這種情形下,該頁可以儲存關(guān)于選定的邏輯塊地址的映射信息。對于另一個示例,為了獲取關(guān)于選定的邏輯塊地址的映射信息,存儲器命令發(fā)生單元120可以產(chǎn)生用于讀取半導(dǎo)體存儲器件200之內(nèi)的兩個或更多個頁的存儲器讀取命令。在這種情形下,兩個或更多個頁可以儲存關(guān)于選定的邏輯塊地址的映射信息。此外,可以理解,存儲器命令發(fā)生單元120可以產(chǎn)生用于準(zhǔn)備主機命令隊列HCQ之內(nèi)的每個主機命令的執(zhí)行的各種存儲器命令。
[0042]根據(jù)本發(fā)明的一個示例性實施例,存儲器命令發(fā)生單元120可以產(chǎn)生與產(chǎn)生的存儲器命令相對應(yīng)的狀態(tài)更新信息STUP。當(dāng)狀態(tài)更新信息STUP包括第一設(shè)定值時,在執(zhí)行對應(yīng)的存儲器命令之后可以不更新狀態(tài)寄存器SRG。當(dāng)狀態(tài)更新信息STUP包括第二設(shè)定值時,在執(zhí)行對應(yīng)的存儲器命令之后可以更新狀態(tài)寄存器SRG。在下文中,為了方便,第一設(shè)定值被例示為邏輯值“0”,而第二設(shè)定值被例示為邏輯值“ I ”。
[0043]存儲器命令發(fā)生單元120可以將產(chǎn)生的存儲器命令和狀態(tài)更新信息STUP排隊在存儲器命令隊列MCQ中。在一個示例性實施例中,存儲器命令發(fā)生單元120可以將產(chǎn)生的存儲器命令、主機命令HCMDl到HCMDm中與存儲器命令相對應(yīng)的一個主機命令的任務(wù)ID以及狀態(tài)更新信息STUP作為單個存儲器命令集MCS來排隊在存儲器命令隊列MCQ中。存儲器命令隊列MCQ可以根據(jù)先入先出原則來輸入/輸出數(shù)據(jù)。
[0044]在圖1中,第一存儲器命令集MCSl到第五存儲器命令集MCS5可以排隊在存儲器命令隊列MCQ的首地址HD與尾地址TL之間。假定第一存儲器命令MCMDl對應(yīng)于第一主機命令HCMDl。在第一主機命令集HCSl中,第一主機命令HCMDl具有第一任務(wù)ID TKIDl。例如,第一存儲器命令MCMDl可以與第一任務(wù)ID TKIDl以及具有邏輯值“ I”的狀態(tài)更新信息STUP排隊在一起。
[0045]假定第二存儲器命令MCMD2到第四存儲器命令MCMD4對應(yīng)于第二主機命令HCMD2。SP,為了執(zhí)行第二主機命令HCMD2,可以產(chǎn)生第二存儲器命令MCMD2到第四存儲器命令MCMD4。在第二主機命令集HCS2中,第二主機命令HCMD2具有第二任務(wù)ID TKID2。第二存儲器命令MCMD2到第四存儲器命令MCMD4中的每個可以與第二任務(wù)ID TKID2以及狀態(tài)更新信息STUP排隊在一起。例如,與第二存儲器命令MCMD2到第四存儲器命令MCMD4之中的在最后時間排隊的存儲器命令MCMD4相對應(yīng)的狀態(tài)更新信息STUP可以具有邏輯值“ I ”。例如,與第二存儲器命令MCMD2到第四存儲器命令MCMD4之中的剩余的存儲器命令MCMD2和MCMD3相對應(yīng)的狀態(tài)更新信息STUP可以具有邏輯值“O”。
[0046]假定第五存儲器命令MCMD5對應(yīng)于第三主機命令HCMD3。例如,第五存儲器命令MCMD5可以與第三任務(wù)ID TKID3以及具有邏輯值“I”的狀態(tài)更新信息STUP排隊在一起。
[0047]如上所述,可以產(chǎn)生針對第一主機命令集HCSl到第m主機命令集HCSm的存儲器命令集MCSl到MCS5,且存儲器命令集可以排隊在存儲器命令隊列MCQ中。
[0048]存儲器命令執(zhí)行單元130可以執(zhí)行儲存在存儲器命令隊列MCQ中的存儲器命令。存儲器命令隊列MCQ之內(nèi)的第一存儲器命令集MCSl到第五存儲器命令集MCS5可以順序地輸出。存儲器命令執(zhí)行單元130可以將每個存儲器命令提供給半導(dǎo)體存儲器件200,以及可以接收對存儲器命令的響應(yīng)。當(dāng)存儲器命令是針對半導(dǎo)體存儲器件200之內(nèi)的頁的存儲器讀取命令時,半導(dǎo)體存儲器件200可以將儲存在選定的頁中的數(shù)據(jù)輸出作為響應(yīng)。在這種情形下,存儲器命令執(zhí)行單元130可以將從半導(dǎo)體存儲器件200接收的數(shù)據(jù)作為映射信息來更新在映射表MPT中。
[0049]根據(jù)本發(fā)明的一個示例性實施例,存儲器命令執(zhí)行單元130可以執(zhí)行從存儲器命令隊列MCQ輸出的存儲器命令,然后可以查閱與針對其的操作完成的存儲器命令相對應(yīng)的狀態(tài)更新信息STUP??梢圆殚啺▓?zhí)行過的存儲器命令的存儲器命令集的狀態(tài)更新信息STUP。存儲器命令執(zhí)行單元130可以根據(jù)查閱到的狀態(tài)更新信息STUP來更新就緒設(shè)定位RSBl到RSBm中與針對其的操作完成的存儲器命令相對應(yīng)的一個就緒設(shè)定位。更具體地,可以輸出單個存儲器命令集,以及半導(dǎo)體存儲器件200可以響應(yīng)于包括在輸出的存儲器命令集中的存儲器命令來執(zhí)行操作。當(dāng)包括在輸出的存儲器命令集中的狀態(tài)更新信息STUP是邏輯值“I”時,存儲器命令執(zhí)行單元130可以更新狀態(tài)寄存器SRG中的包括在輸出的存儲器命令集中的任務(wù)ID的就緒設(shè)定位。
[0050]例如,可以從存儲器命令隊列MCQ輸出第一存儲器命令集MCS1。半導(dǎo)體存儲器件200可以響應(yīng)于第一存儲器命令MCMDI來執(zhí)行操作。當(dāng)響應(yīng)于第一存儲器命令MCMDI的操作完成時,存儲器命令執(zhí)行單元130可以通過查閱第一存儲器命令集MCSl中具有邏輯值“I”的狀態(tài)更新信息STUP來更新與第一任務(wù)ID TKIDl相對應(yīng)的第一就緒設(shè)定位RSBl。例如,存儲器命令執(zhí)行單元130可以更新狀態(tài)寄存器SRG,使得第一就緒設(shè)定位RSBl具有邏輯值“I”。
[0051]然后,可以從存儲器命令隊列MCQ輸出第二存儲器命令集MCS2。半導(dǎo)體存儲器件200可以響應(yīng)于第二存儲器命令MCMD2來執(zhí)行操作。第二存儲器命令集MCS2中的狀態(tài)更新信息STUP具有邏輯值“O”。存儲器命令執(zhí)行單元130可以不更新狀態(tài)寄存器SRG??梢詮拇鎯ζ髅铌犃蠱CQ輸出第三存儲器命令集MCS3。在半導(dǎo)體存儲器件200完成響應(yīng)于第三存儲器命令MCMD3的操作之后,根據(jù)第三存儲器命令集MCS3中的具有邏輯值“O”的狀態(tài)更新信息STUP,可以不更新狀態(tài)寄存器SRG。可以從存儲器命令隊列MCQ輸出第四存儲器命令集MCS4。半導(dǎo)體存儲器件200可以響應(yīng)于第四存儲器命令MCMD4來執(zhí)行操作。第四存儲器命令集MCS4可以包括具有邏輯值“I”的狀態(tài)更新信息STUP。第四存儲器命令集MCS4可以包括第二任務(wù)ID TKID2。存儲器命令執(zhí)行單元130可以基于第四存儲器命令集MCS4中的具有邏輯值“I”的狀態(tài)更新信息STUP來更新狀態(tài)寄存器SRG,使得與第二任務(wù)ID TKID2相對應(yīng)的第二就緒設(shè)定位RSB2具有邏輯值“ I ”。結(jié)果,在響應(yīng)于針對第二主機命令HCMD2的所有存儲器命令MCMD2到MCMD4的操作完成之后,可以更新對應(yīng)的就緒設(shè)定位RSB2。
[0052]在一個示例性實施例中,存儲器命令隊列MCQ可以被提供為獨立于存儲器命令發(fā)生單元120的單個硬件模塊。
[0053]為了與本發(fā)明的一個示例性實施例相比較,假定存儲器命令發(fā)生單元120更新狀態(tài)寄存器SRG的就緒設(shè)定位RSBl到RSBm。在半導(dǎo)體存儲器件200完成響應(yīng)于存儲器命令的操作之后,存儲器命令執(zhí)行單元130可以產(chǎn)生例如中斷信號,并將與存儲器命令相對應(yīng)的操作的完成告知存儲器命令發(fā)生單元120。存儲器命令發(fā)生單元120可以響應(yīng)于中斷信號來停止正在進行的操作(其已經(jīng)開始執(zhí)行),確定對應(yīng)的就緒設(shè)定位,以及更新確定的就緒設(shè)定位。中斷信號的重復(fù)產(chǎn)生可以降低存儲器命令發(fā)生單元120的速度。
[0054]根據(jù)一個示例性實施例,在存儲器命令發(fā)生單元120產(chǎn)生存儲器命令之后,可以在不妨礙存儲器命令發(fā)生單元120的情況下更新狀態(tài)寄存器SRG中的對應(yīng)的就緒設(shè)定位。為了此目的,存儲器命令發(fā)生單元120可以將狀態(tài)更新信息STUP與存儲器命令一起排隊在存儲器命令隊列MCQ中。在半導(dǎo)體存儲器件200完成響應(yīng)于存儲器命令的操作之后,存儲器命令執(zhí)行單元130可以基于對應(yīng)的狀態(tài)更新信息STUP來更新狀態(tài)寄存器SRG中的對應(yīng)的就緒設(shè)定位。相應(yīng)地,可以改善存儲器命令發(fā)生單元120和存儲器控制器100的操作速度。
[0055]圖2是圖示圖1的半導(dǎo)體存儲器件200的框圖。
[0056]參見圖2,半導(dǎo)體存儲器件200可以包括:存儲單元陣列210以及用于驅(qū)動存儲單元陣列210的外圍電路220。半導(dǎo)體存儲器件200可以在存儲器控制器100的控制下執(zhí)行操作。存儲單元陣列210可以包括第一存儲塊BLKl到第z存儲塊BLKz。第一存儲塊BLKl到第z存儲塊BLKz中的每個可以包括第一頁PGl到第η頁PGn。第一頁PGl到第η頁PGn中的每個可以包括多個存儲單元。
[0057]外圍電路220可以控制存儲單元陣列210。外圍電路220可以在存儲器控制器100的控制下執(zhí)行操作。外圍電路220可以響應(yīng)于來自存儲器控制器100的存儲器命令來將數(shù)據(jù)編程在存儲單元陣列210中、從存儲單元陣列210讀取數(shù)據(jù)或擦除存儲單元陣列210的數(shù)據(jù)。
[0058]在一個示例性實施例中,可以以頁為單位來執(zhí)行半導(dǎo)體存儲器件200的讀取操作和編程操作。在編程操作期間,外圍電路220可以從存儲器控制器100接收存儲器命令、物理塊地址和數(shù)據(jù)??梢酝ㄟ^物理塊地址選擇一個存儲塊以及包括在該一個存儲塊中的一個頁。外圍電路220可以將數(shù)據(jù)編程到選定的頁中。在讀取操作期間,外圍電路220可以從存儲器控制器100接收存儲器命令和物理塊地址。可以通過物理塊地址選擇一個存儲塊以及包括在該一個存儲塊中的一個頁。外圍電路220可以從選定的頁讀取數(shù)據(jù),并將讀取的數(shù)據(jù)輸出到存儲器控制器100。
[0059]在一個示例性實施例中,半導(dǎo)體存儲器件200可以是閃速存儲器件。
[0060]圖3是圖示根據(jù)本發(fā)明的一個示例性實施例的存儲器控制器100的操作方法的流程圖。圖4是圖示從存儲器命令隊列MCQ輸出存儲器命令的過程的示圖。
[0061]參見圖1和圖3,在步驟SllO處,可以將來自主機Host的多個主機命令HCMDl到HCMDm排隊在主機命令隊列HCQ中。在一個示例性實施例中,也可以將分別與排隊的主機命令相對應(yīng)的任務(wù)ID排隊在主機命令隊列HCQ中。排隊的主機命令和對應(yīng)的任務(wù)ID可以分別形成主機命令集HCS。
[0062]然后,可以對多個主機命令HCMDl到HCMDm中的每個執(zhí)行準(zhǔn)備操作。
[0063]在步驟S120,可以產(chǎn)生與每個主機命令相對應(yīng)的存儲器命令和狀態(tài)更新信息STUP。狀態(tài)更新信息STUP可以指示在響應(yīng)于存儲器命令的操作完成之后是否更新狀態(tài)寄存器SRG。存儲器命令發(fā)生單元120可以產(chǎn)生針對主機命令隊列HCQ中的每個主機命令的操作的一個或更多個存儲器命令。例如,當(dāng)與主機命令一起輸入的、與主機命令相對應(yīng)的邏輯塊地址不在映射表MPT中時,存儲器命令發(fā)生單元120可以產(chǎn)生用于從半導(dǎo)體存儲器件200獲取關(guān)于邏輯塊地址的映射信息的一個或更多個存儲器命令。在這種情形下,存儲器命令可以是存儲器讀取命令。
[0064]當(dāng)產(chǎn)生存儲器命令時,存儲器命令發(fā)生單元120可以產(chǎn)生與存儲器命令相對應(yīng)的狀態(tài)更新信息STUP。
[0065]在步驟S130,可以將產(chǎn)生的存儲器命令和對應(yīng)的狀態(tài)更新信息STUP排隊在存儲器命令隊列MCQ中。在圖1中,可以將第一存儲器命令MCMDl到第五存儲器命令MCMD5以及分別與第一存儲器命令MCMDl到第五存儲器命令MCMD5相對應(yīng)的狀態(tài)更新信息STUP順序地排隊在存儲器命令隊列MCQ中。例如,第一存儲器命令MCMDl可以具有具有邏輯值“I”的狀態(tài)更新信息STUP,第二存儲器命令MCMD2和第三存儲器命令MCMD3可以具有具有邏輯值“O”的狀態(tài)更新信息STUP,以及第四存儲器命令MCMD4和第五存儲器命令MCMD5可以具有具有邏輯值“I”的狀態(tài)更新信息STUP。
[0066]盡管在圖1中未圖示,但也可以將與剩余的主機命令HCMD4到HCMDm相對應(yīng)的存儲器命令排隊在存儲器命令隊列MCQ中。
[0067]在一個示例性實施例中,可以將分別與主機命令隊列HCQ中的排隊的主機命令相對應(yīng)的且因此分別與存儲器命令隊列MCQ中的排隊的存儲器命令相對應(yīng)的任務(wù)ID排隊在存儲器命令隊列MCQ中。排隊的存儲器命令、對應(yīng)的狀態(tài)更新信息STUP以及對應(yīng)的任務(wù)ID可以分別形成存儲器命令集MCS。
[0068]例如,第一存儲器命令MCMDl可以對應(yīng)于第一主機命令HCMDl。第一存儲器命令集MCSl可以包括第一存儲器命令MCMDl、第一任務(wù)ID TKIDl以及具有邏輯值“I”的狀態(tài)更新信息STUP。第二存儲器命令MCMD2到第四存儲器命令MCMD4可以對應(yīng)于第二主機命令HCMD2。第二主機命令HCMD2可以具有第二任務(wù)ID TKID2。第二存儲器命令MCMD2、第二任務(wù)ID TKID2以及具有邏輯值“O”的狀態(tài)更新信息STUP可以作為第二存儲器命令集MCS2來排隊。第三存儲器命令MCMD3、第二任務(wù)ID TKID2以及具有邏輯值“O”的狀態(tài)更新信息STUP可以作為第三存儲器命令集MCS3來排隊。第四存儲器命令MCMD4、第二任務(wù)ID TKID2以及具有邏輯值“I”的狀態(tài)更新信息STUP可以作為第四存儲器命令集MCS4來排隊。第五存儲器命令MCMD5可以對應(yīng)于第三主機命令HCMD3。第五存儲器命令MCMD5、第三任務(wù)IDTKID3以及具有邏輯值“I”的狀態(tài)更新信息STUP可以作為第五存儲器命令集MCS5來排隊。
[0069]在步驟S130之后,每當(dāng)響應(yīng)于排隊的存儲器命令的一個或更多個操作完成時可以根據(jù)存儲器命令隊列MCQ中的對應(yīng)的狀態(tài)更新信息STUP的值來選擇性地更新狀態(tài)寄存器SRG,而不妨礙存儲器命令發(fā)生單元120。
[0070]在步驟S140,可以執(zhí)行響應(yīng)于從存儲器命令隊列MCQ輸出的存儲器命令的操作。存儲器命令執(zhí)行單元130可以基于先進先出原則,根據(jù)包括在存儲器命令隊列MCQ的第一存儲器命令集MCSl到第五存儲器命令集MCS5中的存儲器命令來順序地執(zhí)行操作。
[0071]圖4是用于圖示從存儲器命令隊列MCQ輸出存儲器命令的過程的示圖。參見圖4,存儲器命令執(zhí)行單元130可以根據(jù)儲存在存儲器命令隊列MCQ的首地址HD與尾地址TL之間的第一存儲器命令集MCSl到第五存儲器命令集MCS5中包括的存儲器命令來順序地執(zhí)行操作。存儲器命令執(zhí)行單元130可以從存儲器命令發(fā)生單元120獲取首地址HD和尾地址TL,并基于先進先出原則,根據(jù)包括在存儲器命令隊列MCQ的第一存儲器命令集MCSl到第五存儲器命令集MCS5中的存儲器命令來順序地執(zhí)行操作。
[0072]重新參見圖3,在步驟S150處,可以根據(jù)與響應(yīng)于其的一個或更多個操作完成的存儲器命令相對應(yīng)的狀態(tài)更新信息STUP來更新對應(yīng)的主機命令的就緒設(shè)定位。
[0073]當(dāng)與完成的存儲器命令相對應(yīng)的狀態(tài)更新信息具有邏輯值“I”時,可以更新對應(yīng)的主機命令的就緒設(shè)定位。當(dāng)與完成的存儲器命令相對應(yīng)的狀態(tài)更新信息具有邏輯值“O”時,可以不更新對應(yīng)的主機命令的就緒設(shè)定位。
[0074]在一個示例性實施例中,可以根據(jù)對應(yīng)的狀態(tài)更新信息STUP來更新與包括在存儲器命令隊列MCQ的各個存儲器命令集MCS中的任務(wù)ID相對應(yīng)的第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm。例如,當(dāng)響應(yīng)于第一存儲器命令集MCSl (其包括第一存儲器命令MCMDl、對應(yīng)的狀態(tài)更新信息STUP和第一任務(wù)ID TKID1)中的第一存儲器命令MCMDl的操作完成時,可以根據(jù)具有值“I”的對應(yīng)的狀態(tài)更新信息STUP來將與第一任務(wù)ID TKIDl相對應(yīng)的第一就緒設(shè)定位RSBl更新為邏輯值“ I ”。當(dāng)與第二存儲器命令集MCS2和第三存儲器命令集MCS3相對應(yīng)的操作完成時,可以根據(jù)第二存儲器命令集MCS2和第三存儲器命令集MCS3中的具有邏輯值“O”的狀態(tài)更新信息STUP來將與第二任務(wù)ID TKID2相對應(yīng)的第二就緒設(shè)定位RSB2維持為邏輯值“O”。當(dāng)與第四存儲器命令集MCS4相對應(yīng)的操作完成時,可以根據(jù)第四存儲器命令集MCS4中的具有邏輯值“I”的狀態(tài)更新信息STUP來將與第二任務(wù)ID TKID2相對應(yīng)的第二就緒設(shè)定位RSB2更新為邏輯值“ I ”。即,可以在與第二就緒設(shè)定位RSB2相對應(yīng)的第二主機命令HCMD2就緒且可得到時將第二就緒設(shè)定位RSB2更新為邏輯值“I”。當(dāng)與第五存儲器命令集MCS5相對應(yīng)的操作完成時,可以根據(jù)第五存儲器命令集MCS5中的具有邏輯值“I”的狀態(tài)更新信息STUP來將與第三任務(wù)ID TKID3相對應(yīng)的第三就緒設(shè)定位RSB3更新為邏輯值“ I ”。
[0075]根據(jù)本發(fā)明的示例性實施例,可以將狀態(tài)更新信息STUP與存儲器命令一起排隊在存儲器命令隊列MCQ中。然后,每當(dāng)響應(yīng)于排隊的存儲器命令的一個或更多個操作完成時,可以根據(jù)存儲器命令隊列MCQ中的對應(yīng)的狀態(tài)更新信息STUP的值來選擇性地更新狀態(tài)寄存器SRG,而不妨礙存儲器命令發(fā)生單元120。相應(yīng)地,可以改善存儲器命令發(fā)生單元120和存儲器控制器100的操作速度。
[0076]圖5是圖示根據(jù)本發(fā)明的一個示例性實施例的將圖1中示出的狀態(tài)寄存器SRG中的就緒設(shè)定位RSBl到RSBm輸出的過程的流程圖。
[0077]參見圖1和圖5,在步驟S210處,存儲器控制器100可以從主機Host接收用于查詢就緒設(shè)定位RSBl到RSBm的就緒狀態(tài)請求信號RSR。在步驟S220處,主機接口 110可以將儲存在狀態(tài)寄存器SRG中的就緒設(shè)定位RSBl到RSBm輸出到主機Host。
[0078]如參照圖3的步驟S150所描述的,可以根據(jù)對應(yīng)的狀態(tài)更新信息STUP來更新與存儲器命令隊列MCQ的第一存儲器命令集MCSl到第m存儲器命令集MCSm中包括的第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm相對應(yīng)的第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm。同樣如參照圖1所描述的,第一主機命令HCMDl到第m主機命令HCMDm可以分別對應(yīng)于第一任務(wù)ID到第m任務(wù)ID。因此,第一主機命令HCMDl到第m主機命令HCMDm、第一存儲器命令MCMDl到第m存儲器命令MCMDm、狀態(tài)更新信息STUP以及第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm可以分別通過第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm而相互對應(yīng)。通過在步驟S220處從主機接口 110傳送的第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm,主機Host可以確定第一主機命令HCMDl到第m主機命令HCMDm中的哪一個是就緒的且可得到的。
[0079]主機Host可以根據(jù)在步驟S220處接收到的第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm來輸出針對從第一主機命令HCMDl到第m主機命令HCMDm中選擇的主機命令的執(zhí)行命令。在一個示例性實施例中,執(zhí)行命令可以包括用于識別與就緒且可得到的第一主機命令HCMDl到第m主機命令HCMDm中的一個或更多個相對應(yīng)的第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm的信息,且可以根據(jù)該信息的邏輯值來選擇第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm0
[0080]圖6是圖示根據(jù)本發(fā)明的一個示例性實施例的響應(yīng)于來自主機Host的執(zhí)行命令來操作存儲器控制器100的方法的流程圖。
[0081]參見圖1和圖6,在步驟S310處,存儲器控制器100可以從主機Host接收執(zhí)行命令。執(zhí)行命令可以包括用于識別與就緒且可得到的第一主機命令HCMDl到第m主機命令HCMDm中的一個或更多個相對應(yīng)的第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm的信息。通過執(zhí)行命令,可以從第一主機命令HCMDl到第m主機命令HCMDm選擇一個或更多個就緒且可得到的主機命令。
[0082]在步驟S320處,存儲器命令發(fā)生單元120可以響應(yīng)于執(zhí)行命令來產(chǎn)生與選定的主機命令相對應(yīng)的存儲器命令,且可以將產(chǎn)生的存儲器命令排隊在存儲器命令隊列MCQ中。
[0083]存儲器命令發(fā)生單元120可以執(zhí)行閃速轉(zhuǎn)換層的功能。存儲器命令發(fā)生單元120可以通過查閱映射表MPT來將每個主機命令的邏輯塊地址轉(zhuǎn)換為物理塊地址。當(dāng)存儲器命令被儲存在存儲器命令隊列MCQ中時,存儲器命令發(fā)生單元120可以將與存儲器命令相關(guān)的對應(yīng)的物理塊地址儲存在RAM 140中。
[0084]在步驟S330處,存儲器命令執(zhí)行單元130可以基于先進先出原則,根據(jù)存儲器命令隊列MCQ的存儲器命令集中包括的存儲器命令來順序地執(zhí)行操作。存儲器命令執(zhí)行單元130可以將每個存儲器命令和與存儲器命令相關(guān)的儲存在RAM 140中的物理塊地址一起傳送給半導(dǎo)體存儲器件200。當(dāng)存儲器命令是存儲器讀取命令時,可以接收儲存在半導(dǎo)體存儲器件200中的數(shù)據(jù)。當(dāng)存儲器命令是存儲器編程命令時,存儲器命令執(zhí)行單元130可以將要編程的數(shù)據(jù)傳送到半導(dǎo)體存儲器件200。
[0085]圖7是圖示圖3的步驟S150的流程圖。如參照圖3的步驟S150所描述的,可以根據(jù)對應(yīng)的狀態(tài)更新信息STUP來更新與存儲器命令隊列MCQ的第一存儲器命令集MCSl到第m存儲器命令集MCSm中包括的第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm相對應(yīng)的第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm。同樣如以上所描述的,第一主機命令HCMDl到第m主機命令HCMDm、第一存儲器命令MCMDl到第m存儲器命令MCMDm、狀態(tài)更新信息STUP以及第一就緒設(shè)定位RSBl到第m就緒設(shè)定位RSBm可以分別通過第一任務(wù)ID TKIDl到第m任務(wù)ID TKIDm而相互對應(yīng)。
[0086]參見圖1和圖7,在步驟S151處,存儲器命令執(zhí)行單元130可以從存儲器命令隊列MCQ獲取與響應(yīng)于其的一個或更多個操作完成的存儲器命令相對應(yīng)的狀態(tài)更新信息STUP。例如,當(dāng)響應(yīng)于第一存儲器命令集MCSl (其包括第一存儲器命令MCMDl、對應(yīng)的狀態(tài)更新信息STUP和第一任務(wù)ID TKID1)中的第一存儲器命令MCMDl的操作完成時,可以獲取具有邏輯值“ I ”的對應(yīng)的狀態(tài)更新信息STUP。當(dāng)響應(yīng)于第二存儲器命令集MCS2 (其包括第二存儲器命令MCMD2、對應(yīng)的狀態(tài)更新信息STUP和第二任務(wù)ID TKID2)中的第二存儲器命令MCMD2的操作完成時,可以獲取具有邏輯值“O”的對應(yīng)的狀態(tài)更新信息STUP。
[0087]在步驟S152處,存儲器命令執(zhí)行單元130可以判斷獲取的狀態(tài)更新信息STUP是否具有邏輯值“I”。當(dāng)獲取的狀態(tài)更新信息STUP具有邏輯值“I” (在步驟S152處,“是”)時,存儲器命令執(zhí)行單元130可以在步驟S153處將對應(yīng)的主機命令的就緒設(shè)定位更新為第二設(shè)定值(例如,邏輯值“I”)。例如,在響應(yīng)于第一存儲器命令集MCSl中的第一存儲器命令MCMDl的操作完成之后,可以根據(jù)狀態(tài)更新信息STUP (其對應(yīng)于第一存儲器命令MCMDl且具有邏輯值“I”)來將第一就緒設(shè)定位RSBl更新為第二設(shè)定值。當(dāng)獲取的狀態(tài)更新信息STUP具有邏輯值“O” (在步驟S152處,“否”)時,存儲器命令執(zhí)行單元130可以在步驟S154處將對應(yīng)的主機命令的就緒設(shè)定位更新為第二設(shè)定值(例如,邏輯值“I”)。在響應(yīng)于第二存儲器命令集MCS2中的第二存儲器命令MCMD2的操作完成之后,可以根據(jù)狀態(tài)更新信息STUP (其對應(yīng)于第二存儲器命令MCMD2且具有邏輯值“O”)來將第二就緒設(shè)定位RSB2維持為第一設(shè)定值。
[0088]圖8是圖示用于實施圖1的存儲器控制器100的示例性實施例1200的框圖。
[0089]參見圖8,控制器1200可以包括:隨機存取存儲器(RAM) 1210、處理單元1220、主機接口 1230、存儲器接口 1240和錯誤校正塊1250。
[0090]處理單元1220可以控制控制器1200的常規(guī)操作。RAM 1210可以用作處理單元1220的操作存儲器、圖1的半導(dǎo)體存儲器件200與圖1的主機Host之間的高速緩沖存儲器以及半導(dǎo)體存儲器件200與主機Host之間的緩沖存儲器之中的一種或更多種。處理單元1220和RAM 1210可以執(zhí)行圖1的存儲器命令發(fā)生單元120的功能。例如,處理單元1220可以通過將編程命令、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)等加載到RAM 1210并執(zhí)行加載的數(shù)據(jù)來執(zhí)行存儲器命令發(fā)生單元120的功能。
[0091]此外,RAM 1210可以用作圖1的RAM 140。雖然圖8圖示提供了一個RAM 1210,但可以提供兩個或更多個RAM。
[0092]主機接口 1230可以包括用于執(zhí)行主機與控制器1200之間的數(shù)據(jù)交換的協(xié)議。主機接口 1230可以執(zhí)行圖1的主機接口 110的功能。
[0093]存儲器接口 1240與半導(dǎo)體存儲器件200接口。錯誤校正塊1250可以通過使用錯誤校正碼來校正從半導(dǎo)體存儲器件200讀取的數(shù)據(jù)的錯誤。存儲器接口 1240和錯誤校正塊1250可以執(zhí)行圖1的存儲器命令執(zhí)行單元130的功能。
[0094]根據(jù)本發(fā)明的一個示例性實施例,可以將狀態(tài)更新信息STUP與存儲器命令MCMD一起排隊在存儲器命令隊列MCQ中。然后,每當(dāng)針對每個存儲器命令的操作完成時,可以根據(jù)對應(yīng)的狀態(tài)更新信息STUP來選擇性地更新狀態(tài)寄存器SRG中的就緒設(shè)定位RSB,而不妨礙存儲器命令發(fā)生單元。相應(yīng)地,可以改善存儲器命令發(fā)生單元和存儲器控制器的操作速度。
[0095]如上所述,在附圖和說明書中已經(jīng)公開了實施例。本文中所使用的特定術(shù)語是為了說明,而不限制如權(quán)利要求書中所限定的本發(fā)明的范圍。相應(yīng)地,本領(lǐng)域技術(shù)人員將理解,在不脫離本公開的范圍和精神的情況下,可以做出各種變型和其他示例。因此,本發(fā)明的范圍將由所附權(quán)利要求書的技術(shù)主旨來限定。
[0096]通過以上實施例可以看出,本發(fā)明提供以下技術(shù)方案。
[0097]技術(shù)方案1.一種存儲器控制器,包括:
[0098]主機命令隊列;
[0099]主機接口,適用于將來自主機的多個主機命令排隊在主機命令隊列中;
[0100]狀態(tài)寄存器,適用于儲存分別對應(yīng)于所述多個主機命令的就緒設(shè)定位,其中,就緒設(shè)定位中的每個指示所述多個主機命令中的對應(yīng)的一個是否是就緒的且可得到的;
[0101]存儲器命令隊列;
[0102]存儲器命令發(fā)生單元,適用于產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;以及
[0103]存儲器命令執(zhí)行單元,適用于響應(yīng)于排隊的存儲器命令來執(zhí)行操作,
[0104]其中,存儲器命令執(zhí)行單元從存儲器命令隊列獲取與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息,并基于獲取的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位。
[0105]技術(shù)方案2.如技術(shù)方案I所述的存儲器控制器,其中,主機接口響應(yīng)于來自主機的就緒狀態(tài)請求來將就緒設(shè)定位輸出到主機。
[0106]技術(shù)方案3.如技術(shù)方案2所述的存儲器控制器,其中,存儲器控制器接收針對主機命令中的由主機選擇的一些主機命令的執(zhí)行命令。
[0107]技術(shù)方案4.如技術(shù)方案3所述的存儲器控制器,其中,存儲器命令發(fā)生單元響應(yīng)于執(zhí)行命令來產(chǎn)生用于執(zhí)行選定的主機命令的多個存儲器命令,并將產(chǎn)生的所述多個存儲器命令排隊在存儲器命令隊列中。
[0108]技術(shù)方案5.如技術(shù)方案4所述的存儲器控制器,其中,存儲器命令執(zhí)行單元響應(yīng)于排隊的存儲器命令來執(zhí)行操作。
[0109]技術(shù)方案6.如技術(shù)方案I所述的存儲器控制器,其中,主機接口還從主機接收分別與所述多個主機命令相對應(yīng)的多個任務(wù)ID。
[0110]技術(shù)方案7.如技術(shù)方案6所述的存儲器控制器,其中,主機接口還將所述多個主機命令與對應(yīng)的任務(wù)ID —起排隊在主機命令隊列中。
[0111]技術(shù)方案8.如技術(shù)方案6所述的存儲器控制器,其中,就緒設(shè)定位分別對應(yīng)于任務(wù)ID0
[0112]技術(shù)方案9.如技術(shù)方案8所述的存儲器控制器,其中,存儲器命令發(fā)生單元還將分別與排隊的主機命令相對應(yīng)的任務(wù)ID和存儲器命令一起排隊在存儲器命令隊列中。
[0113]技術(shù)方案10.如技術(shù)方案9所述的存儲器控制器,其中,存儲器命令執(zhí)行單元從存儲器命令隊列檢測與執(zhí)行過的存儲器命令相對應(yīng)的任務(wù)ID,并根據(jù)獲取的狀態(tài)更新信息來更新狀態(tài)寄存器之內(nèi)的與檢測到的任務(wù)ID相對應(yīng)的就緒設(shè)定位。
[0114]技術(shù)方案11.一種操作存儲器控制器的方法,包括:
[0115]將來自主機的多個主機命令排隊在主機命令隊列中;
[0116]將分別與所述多個主機命令相對應(yīng)的就緒設(shè)定位提供給狀態(tài)寄存器;
[0117]產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;
[0118]響應(yīng)于排隊的存儲器命令來執(zhí)行操作;
[0119]根據(jù)與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位;
[0120]響應(yīng)于來自主機的就緒狀態(tài)請求來將就緒設(shè)定位輸出到主機。
[0121]技術(shù)方案12.如技術(shù)方案11所述的方法,其中,就緒設(shè)定位中的每個指示所述多個主機命令中的對應(yīng)的一個是否是就緒的且可得到的。
[0122]技術(shù)方案13.如技術(shù)方案11所述的方法,還包括:接收針對主機命令中的由主機選擇的一些主機命令的執(zhí)行命令。
[0123]技術(shù)方案14.如技術(shù)方案13所述的方法,還包括:響應(yīng)于執(zhí)行命令來產(chǎn)生分別與選定的主機命令相對應(yīng)的存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中。
[0124]技術(shù)方案15.如技術(shù)方案11所述的方法,還包括:從主機接收分別與所述多個主機命令相對應(yīng)的多個任務(wù)ID。
[0125]技術(shù)方案16.如技術(shù)方案15所述的方法,其中,將所述多個主機命令排隊包括:將所述多個主機命令與對應(yīng)的任務(wù)ID —起排隊在主機命令隊列中。
[0126]技術(shù)方案17.如技術(shù)方案15所述的方法,其中,就緒設(shè)定位分別對應(yīng)于任務(wù)ID。
[0127]技術(shù)方案18.如技術(shù)方案17所述的方法,其中,將狀態(tài)更新信息排隊包括:將分別與排隊的主機命令相對應(yīng)的任務(wù)ID和存儲器命令一起排隊在存儲器命令隊列中。
[0128]技術(shù)方案19.如技術(shù)方案18所述的方法,其中,更新就緒設(shè)定位包括:
[0129]從存儲器命令隊列檢測與執(zhí)行過的存儲器命令相對應(yīng)的任務(wù)ID ;以及
[0130]根據(jù)與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息來更新狀態(tài)寄存器之內(nèi)的與檢測到的任務(wù)ID相對應(yīng)的就緒設(shè)定位。
[0131]技術(shù)方案20.—種存儲器控制器,包括:
[0132]主機命令隊列;
[0133]主機接口,適用于將來自主機的多個主機命令以及分別與所述多個主機命令相對應(yīng)的任務(wù)ID排隊在主機命令隊列中;
[0134]狀態(tài)寄存器,適用于儲存分別與任務(wù)ID相對應(yīng)的就緒設(shè)定位;
[0135]存儲器命令隊列;
[0136]存儲器命令發(fā)生單元,適用于產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;以及
[0137]存儲器命令執(zhí)行單元,適用于響應(yīng)于排隊的存儲器命令來執(zhí)行操作,
[0138]其中,存儲器命令執(zhí)行單元從存儲器命令隊列獲取與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息,并基于獲取的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位。
【主權(quán)項】
1.一種存儲器控制器,包括: 主機命令隊列; 主機接口,適用于將來自主機的多個主機命令排隊在主機命令隊列中; 狀態(tài)寄存器,適用于儲存分別對應(yīng)于所述多個主機命令的就緒設(shè)定位,其中,就緒設(shè)定位中的每個指示所述多個主機命令中的對應(yīng)的一個是否是就緒的且可得到的; 存儲器命令隊列; 存儲器命令發(fā)生單元,適用于產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;以及 存儲器命令執(zhí)行單元,適用于響應(yīng)于排隊的存儲器命令來執(zhí)行操作, 其中,存儲器命令執(zhí)行單元從存儲器命令隊列獲取與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息,并基于獲取的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位。2.如權(quán)利要求1所述的存儲器控制器,其中,主機接口響應(yīng)于來自主機的就緒狀態(tài)請求來將就緒設(shè)定位輸出到主機。3.如權(quán)利要求2所述的存儲器控制器,其中,存儲器控制器接收針對主機命令中的由主機選擇的一些主機命令的執(zhí)行命令。4.如權(quán)利要求3所述的存儲器控制器,其中,存儲器命令發(fā)生單元響應(yīng)于執(zhí)行命令來產(chǎn)生用于執(zhí)行選定的主機命令的多個存儲器命令,并將產(chǎn)生的所述多個存儲器命令排隊在存儲器命令隊列中。5.如權(quán)利要求4所述的存儲器控制器,其中,存儲器命令執(zhí)行單元響應(yīng)于排隊的存儲器命令來執(zhí)行操作。6.如權(quán)利要求1所述的存儲器控制器,其中,主機接口還從主機接收分別與所述多個主機命令相對應(yīng)的多個任務(wù)ID。7.如權(quán)利要求6所述的存儲器控制器,其中,主機接口還將所述多個主機命令與對應(yīng)的任務(wù)ID —起排隊在主機命令隊列中。8.如權(quán)利要求6所述的存儲器控制器,其中,就緒設(shè)定位分別對應(yīng)于任務(wù)ID。9.一種操作存儲器控制器的方法,包括: 將來自主機的多個主機命令排隊在主機命令隊列中; 將分別與所述多個主機命令相對應(yīng)的就緒設(shè)定位提供給狀態(tài)寄存器; 產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中; 響應(yīng)于排隊的存儲器命令來執(zhí)行操作; 根據(jù)與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位; 響應(yīng)于來自主機的就緒狀態(tài)請求來將就緒設(shè)定位輸出到主機。10.一種存儲器控制器,包括: 主機命令隊列; 主機接口,適用于將來自主機的多個主機命令以及分別與所述多個主機命令相對應(yīng)的任務(wù)ID排隊在主機命令隊列中; 狀態(tài)寄存器,適用于儲存分別與任務(wù)ID相對應(yīng)的就緒設(shè)定位; 存儲器命令隊列; 存儲器命令發(fā)生單元,適用于產(chǎn)生存儲器命令和狀態(tài)更新信息并將其排隊在存儲器命令隊列中;以及 存儲器命令執(zhí)行單元,適用于響應(yīng)于排隊的存儲器命令來執(zhí)行操作, 其中,存儲器命令執(zhí)行單元從存儲器命令隊列獲取與執(zhí)行過的存儲器命令相對應(yīng)的狀態(tài)更新信息,并基于獲取的狀態(tài)更新信息來更新與執(zhí)行過的存儲器命令相對應(yīng)的主機命令的就緒設(shè)定位。
【文檔編號】G06F3/06GK106055267SQ201510586430
【公開日】2016年10月26日
【申請日】2015年9月15日
【發(fā)明人】姜芝娟
【申請人】愛思開海力士有限公司