CN102043588A - 数据读取方法、闪存控制器与闪存储存系统 - Google Patents
数据读取方法、闪存控制器与闪存储存系统 Download PDFInfo
- Publication number
- CN102043588A CN102043588A CN2009101757662A CN200910175766A CN102043588A CN 102043588 A CN102043588 A CN 102043588A CN 2009101757662 A CN2009101757662 A CN 2009101757662A CN 200910175766 A CN200910175766 A CN 200910175766A CN 102043588 A CN102043588 A CN 102043588A
- Authority
- CN
- China
- Prior art keywords
- main frame
- reading command
- frame reading
- data
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供了一种数据读取方法、闪存控制器与闪存储存系统,适用于从多个闪存模组中读取主机系统欲存取的数据。本数据读取方法包括从主机系统中接收关于多个主机读取指令的指令排序信息,其中每一主机读取指令对应电性连接至闪存模组的数据输入/输出总线的其中之一。本数据读取方法也包括依据主机读取指令所对应的数据输入/输出总线来重新排列主机读取指令与产生下达指令顺序,并且依据此下达指令顺序从主机系统中依序地接收与处理主机读取指令,同时预读取第二主机读取指令的数据。基此,本数据读取方法可有效地缩短执行主机读取指令的时间。
Description
技术领域
本发明涉及一种用于闪存的数据读取方法,尤其涉及一种用于从多个闪存模组中读取数据的数据读取方法以及使用此方法的闪存控制器与闪存储存系统。
背景技术
由于闪存(Flash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特性,最适合使用于由电池供电的可携式电子产品上。例如,固态硬盘就是一种以NAND闪存作为储存媒体的储存装置,并且已广泛配置于笔记型电脑中作为主要的储存装置。
一般来说,当主机系统欲读取储存在闪存储存装置中的数据时,闪存储存装置的控制电路会依据来自于主机系统的主机读取指令通过闪存接口从闪存芯片中读取对应的数据,之后,控制电路再将所读取的数据经由连接器传送给主机系统。在此,从闪存芯片中读取数据的部分称为内部数据传输(transfer),而将数据传送给主机系统的部分称为外部传输。
随着传输技术的发展,使得连接器的传输速度已大幅提升,例如,序列先进附件(Serial Advanced Technology Attachment,SATA)连接器已可达到每秒15亿位(Gigabit,Gb),甚至每秒30Gb。然而,在上述内部数据传输的速度低于连接器的速度下,整体储存的效能仍无法有效改善,因此如何缩短执行主机读取指令的时间是本领域技术人员所致力的目标。
发明内容
本发明提供一种数据读取方法以及使用此方法的闪存控制器与闪存储存系统,其能够有效地缩短执行来自于主机系统的多个主机读取指令的时间。
本发明范例实施例提供一种数据读取方法,适用于由一闪存控制器处理来自于一主机系统的多个主机读取指令以从多个闪存模组中读取对应这些主机读取指令的数据,其中闪存控制器分别地经由多条数据输入/输出总线电性连接至闪存模组并且每一闪存模组具有多个实体区块。本数据读取方法包括配置多个逻辑区块,其中逻辑区块对映闪存模组中的部分实体区块。本数据读取方法也包括从主机系统中接收关于这些主机读取指令的指令排序信息,其中每一主机读取指令对应逻辑区块的其中之一且每一逻辑区块对应数据输入/输出总线的其中之一。本数据读取方法也包括依据主机读取指令所对应的数据输入/输出总线来重新排列主机读取指令的顺序与产生下达指令顺序,以及将所产生的下达指令顺序传送给主机系统。本数据读取方法还包括依据此下达指令顺序从主机系统中依序地接收主机读取指令并且依据主机读取指令从闪存模组中读取对应这些主机读取指令的数据。
本发明范例实施例提供一种闪存控制器,用于处理来自于一主机系统的多个主机读取指令以从多个闪存模组中读取对应这些主机读取指令的数据,其中每一闪存模组具有多个实体区块。本闪存控制器包括微处理器单元、闪存接口单元、主机接口单元与存储器管理单元。闪存接口单元是电性连接至微处理器单元,并且用以经由多条数据输入/输出总线电性连接至这些闪存模组。主机接口单元是电性连接至微处理器单元,并且用以连接主机系统。存储器管理单元是电性连接至微处理器单元,并且用以配置多个逻辑区块,其中这些逻辑区块对映闪存模组中的部分实体区块。在此,存储器管理单元经由主机接口单元从主机系统中接收关于这些主机读取指令的指令排序信息,其中每一主机读取指令对应这些逻辑区块的其中之一且每一逻辑区块对应这些数据输入/输出总线的其中之一。并且,存储器管理单元依据这些主机读取指令所对应的数据输入/输出总线来重新排列这些主机读取指令的顺序与产生一下达指令顺序,并且将所产生的下达指令顺序传送给主机系统。再者,存储器管理单元依据此下达指令顺序经由主机接口单元从主机系统中依序地接收这些主机读取指令并且依据这些主机读取指令经由闪存接口单元从闪存模组中读取对应这些主机读取指令的数据。
本发明范例实施例提供一种闪存储存系统,其包括闪存芯片、闪存控制器与连接器。闪存芯片具有多个闪存模组,并且每一闪存模组具有多个实体区块。闪存控制器经由多条数据输入/输出总线电性连接至这些闪存模组,并且用以配置多个逻辑区块,其中这这些逻辑区块对映闪存模组中的部分实体区块。连接器是电性连接至闪存控制器并且用以电性连接一主机系统。在此,闪存控制器经由连接器从主机系统中接收关于多个主机读取指令的指令排序信息,其中每一主机读取指令对应这些逻辑区块的其中之一且每一逻辑区块对应这些数据输入/输出总线的其中之一。并且,闪存控制器依据这些主机读取指令所对应的数据输入/输出总线来重新排列这些主机读取指令的顺序与产生一下达指令顺序,并且将所产生的下达指令顺序传送给主机系统。再者,闪存控制器依据该下达指令顺序经由连接器从主机系统中依序地接收这些主机读取指令并且依据这些主机读取指令经由数据输入/输出总线从闪存模组中读取对应这些主机读取指令的数据。
基于上述,本发明范例实施例可大幅地缩短执行多个主机读取指令的时间,由此有效地提升闪存储存装置的效能。
为让本发明上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A为本发明第一范例实施例的使用闪存储存装置的主机系统的示意图。
图1B为本发明范例实施例的电脑、输入/输出装置与闪存储存装置的示意图。
图1C为本发明另一范例实施例的主机系统与闪存储存装置的示意图。
图1D为图1A所示的闪存储存装置100的概要方块图。
图2为本发明另一范例实施例的闪存控制器的概要方块图。
图3A为本发明第一范例实施例的闪存芯片的方块图。
图3B为本发明第一范例实施例的记录逻辑区块与实体区块之间的对映示意图。
图4为本发明第一范例实施例的逻辑区块与实体区块的对映范例示意图。
图5A与图5B为本发明第一范例实施例的存储器管理单元重新排列主机读取指令以产生下达指令顺序的范例示意图。
图6为本发明第一范例实施例闪存控制器执行数据读取方法的流程图。
图7A、图7B与图7C为本发明第二范例实施例的存储器管理单元重新排列主机读取指令以产生下达指令顺序的范例示意图。
图8A、图8B与图8C为本发明第二范例实施例的存储器管理单元重新排列主机读取指令以产生下达指令顺序的范例示意图。
图9为本发明第二范例实施例的闪存控制器执行数据读取方法的流程图。
主要附图标记说明:
1000:主机系统; 1100:电脑;
1102:微处理器; 1104:随机存取存储器;
1106:输入/输出装置;1108:系统总线;
1110:数据传输接口; 1202:鼠标;
1204:键盘; 1206:显示器;
1208:打印机; 1212:随身碟;
1214:记忆卡; 1216:固态硬盘;
1310:数字相机; 1312:SD卡;
1314:MMC卡; 1316:记忆棒;
1318:CF卡; 1320:嵌入式储存装置;
100:闪存储存装置; 102:连接器;
104、104’:闪存控制器; 106:闪存芯片;
122:第0闪存模组;
122-(0)~122(N)、124-(0)~124-(N):实体区块;
124:第1闪存模组; 132:第0数据输入/输出总线;
134:第1数据输入/输出总线; 202:微处理器单元;
204:存储器管理单元; 206:主机接口单元;
208:闪存接口单元; 210:缓冲存储器;
250:转换层; 270:逻辑区块-逻辑区域对映表;
260-(0)、260-(1):逻辑区块-实体区块对映表;
292:错误校正单元; 294:电源管理单元;
302:系统区; 304:数据区;
306:备用区; 308:取代区;
350-(0)~350-(H):逻辑区块; 360-(0)~360-(1):逻辑区域;
CM1:第1主机读取指令; CM2:第2主机读取指令;
CM3:第3主机读取指令; CM4:第4主机读取指令;
S601、S603、S605、S607、S609、S611、S613、S615、S617、S619:
数据读取步骤;
S901、S903、S905、S907、S909、S911、S913、S915、S917、S919:数据读取步骤。
具体实施方式
闪存储存装置一般而言包括闪存芯片与控制器(亦称,控制电路)。通常闪存储存装置会与主机系统一起使用,以使主机系统可将数据写入至闪存储存装置或从闪存储存装置中读取数据。另外,也有闪存储存装置是包括嵌入式闪存与可执行于主机系统上以实质地作为此嵌入式闪存的控制器的软体。
图1A为本发明第一范例实施例的使用闪存储存装置的主机系统的示意图。图1B为本发明范例实施例的电脑、输入/输出装置与闪存储存装置的示意图。
请参照图1A,主机系统1000包括电脑1100与输入/输出(input/output,I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(randomaccess memory,RAM)1104、系统总线1108以及数据传输接口1110。输入/输出装置1106包括如图1B所示的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,闪存储存装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的处理主机系统1000可将数据写入至闪存储存装置100或从闪存储存装置100中读取数据。例如,闪存储存装置100可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘(Solid StateDrive,SSD)1216。
一般而言,主机系统1000可实质地为可储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中,主机系统1000也可以是数字相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。图1C为本发明另一范例实施例的主机系统与闪存储存装置的示意图。例如,在主机系统为数字相机1310时,闪存储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图1D为图1A所示的闪存储存装置100的概要方块图。
请参照图1D,闪存储存装置100包括连接器102、闪存控制器104与闪存芯片106。
连接器102是电性连接至闪存控制器104并且用以电性连接至主机系统1000。在本范例实施例中,连接器102为序列先进附件(Serial AdvancedTechnology Attachment,SATA)连接器。然而,本发明不限于此,在本发明另一范例实施例中,连接器102可以是其他适合的连接器。
闪存控制器104会执行以硬件型式或韧体型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在闪存芯片106中进行数据的写入、读取与抹除等运作。闪存控制器104包括微处理器单元202、存储器管理单元204、主机接口单元206、闪存接口单元208与缓冲存储器210。
微处理器单元202为闪存控制器104的主控单元,用以与存储器管理单元204、主机接口单元206、闪存接口单元208与缓冲存储器210等协同合作以进行闪存储存装置100的各种运作。
存储器管理单元204是电性连接至微处理器单元202,用以执行根据本范例实施例的数据读取机制与区块管理机制,存储器管理单元204的运作将于以下配合图式作详细说明。
在本范例实施例中,存储器管理单元204是以一韧体型式实作在闪存控制器104中。例如,将包括多个控制指令的存储器管理单元204烧录至一程序存储器(例如,只读存储器(Read Only Memory,ROM))中并且将此程序存储器嵌入在闪存控制器104中,当闪存储存装置100运作时,存储器管理单元204的多个控制指令会由微处理器单元202来执行以完成根据本发明实施例的数据读取机制与区块管理机制。
在本发明另一范例实施例中,存储器管理单元204的控制指令也可以程序代码型式储存于闪存芯片106的特定区域(例如,闪存芯片中专用于存放系统数据的系统区)中。同样的,当闪存储存装置100运作时,存储器管理单元204的多个控制指令会由微处理器单元202来执行。此外,在本发明另一范例实施例中,存储器管理单元204也可以一硬件型式实作在闪存控制器104中。
主机接口单元206是电性连接至微处理器单元202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口单元206来传送至微处理器单元202。在本范例实施例中,主机接口单元206是对应连接器204为SATA接口。然而,必须了解的是本发明不限于此,主机接口单元206也可以是其他适合的数据传输接口。
闪存接口单元208是电性连接至微处理器单元202并且用以存取闪存芯片106。也就是说,欲写入至闪存芯片106的数据会经由闪存接口单元208转换为闪存芯片106所能接受的格式。
缓冲存储器210是电性连接至微处理器单元202并且用以暂存来自于主机系统1000的数据与指令或来自于闪存芯片106的数据。值得一提的是,在本范例实施例中,缓冲存储器210是配置在闪存控制器104中,然而,本发明不限于此,缓冲存储器210也可不配置在闪存控制器104中。
在本发明另一范例实施例中,闪存控制器也可还包括其他功能模组。图2为本发明另一范例实施例的闪存控制器的概要方块图。
请参照图2,除了微处理器单元202、存储器管理单元204、主机接口单元206与、闪存接口单元208与缓冲存储器210之外,闪存控制器104′还包括错误校正单元292与电源管理单元294。
错误校正单元292是电性连接至微处理器单元202并且用以执行一错误校正程序以确保数据的正确性。具体来说,当主机接口单元206从主机系统1000中接收到主机写入指令时,错误校正单元292会为对应此主机写入指令的写入数据产生对应的错误检查与校正码(Error Checking andCorrecting Code,ECC Code),并且存储器管理单元204会将此写入数据与对应的错误校正码写入至闪存芯片106中。而,当主机接口单元206从主机系统1000中接收到主机读取指令时,存储器管理单元204会从闪存芯片106中读取对应此主机读取指令的数据及其错误校正码,并且错误校正单元292会依据此错误校正码对所读取的数据执行错误校正。
电源管理单元294是电性连接至微处理器单元202并且用以控制闪存储存装置100的电源。
闪存芯片106是电性连接至闪存控制器104并且用以储存数据。闪存芯片106包括第0闪存模组122与第1闪存模组124。第0闪存模组122具有实体区块122-(0)~122-(N),并且第1闪存模组124具有实体区块124-(0)~124-(N)。实体区块为抹除的最小单位。也就是,每一实体区块含有最小数目的一并被抹除的存储单元。每一实体区块具有数个实体页面(page)。在本范例实施例中,实体页面为程序化的最小单元。换言之,实体页面为写入数据或读取数据的最小单元。每一实体页面通常包括使用者数据区与冗余区。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误检查与校正码)。在本范例实施例中,第0闪存模组122与第1闪存模组124为多层存储单元(Multi Level Cell,MLC)NAND闪存模组。然而,本发明不限于此,第0闪存模组122与第1闪存模组124也可是单层存储单元(Single Level Cell,SLC)NAND闪存模组。
值得一提的是,由于闪存的存储单元仅能从“1”程序化为“0”,因此要更新实体区块内的数据时必须先抹除实体区块内的数据。然而,闪存的写入是以页面为单位,而抹除是以实体区块为单位,所以在本范例实施例中,实体区块会以轮替方式来储存数据。
图3A为本发明第一范例实施例的闪存芯片的方块图。必须了解的是,在此描述闪存的实体区块的运作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体区块是逻辑上的概念。也就是说,闪存的实体区块的实际位置并未改变,而是逻辑上对闪存的实体区块进行操作。
请参照图3A,存储器管理单元204会将实体区块122-(0)~122-(N)与实体区块124-(0)~124-(N)分组为逻辑地分组为系统区(system area)302、数据区(data area)304、备用区(spare area)306与取代区(replacement area)308。
逻辑上属于系统区302的实体区块122-(0)~122-(S)与实体区块124-(0)~124-(S)是用以记录提供给闪存控制器104的系统数据,此系统数据包括关于闪存芯片的制造商与型号、每一闪存模组的区域数、每一区域的实体区块的数目、每一实体区块的实体页面数等。因此,在一般存取状态下,主机系统1000是无法存取系统区中的实体区块。
逻辑上属于数据区304的实体区块122-(S+1)~~122-(D)与实体区块124-(S+1)~124-(D)是用以储存主机系统1000所写入的数据。一般来说,数据区304的实体区块为主机系统1000存取的逻辑区块所对映的实体区块。也就是说,数据区的实体区块为储存有效数据的实体区块。
逻辑上属于备用区306的实体区块122-(D+1)~~122-(A)与实体区块124-(D+1)~124-(A)是用以轮替数据区中的实体区块,因此在备用区306中的实体区块为空或可使用的单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区304与备用区306的实体区块会以轮替方式来储存主机系统1000对闪存储存装置100写入的数据。
逻辑上属于取代区308中的实体区块122-(A+1)~122-(N)与实体区块124-(A+1)~124-(N)是替代实体区块。例如,闪存芯片106于出厂时会预留4%的实体区块作为更换使用。也就是说,当系统区302、数据区304与备用区306中的实体区块损毁时,预留于取代区308中的实体区块可用以取代损坏的实体区块(即,坏实体区块(bad block))。因此,倘若取代区308中仍存有可用的实体区块且发生实体区块损毁时,内存管理单元204会从取代区308中提取可用的实体区块来更换损毁的实体区块。倘若取代区308中无可用的实体区块且发生实体区块损毁时,则闪存储存装置100将会被宣告为写入保护(write protect),而无法再写入数据。因此,在一般存取状态下,主机系统1000是无法存取取代区中的实体区块。
必须了解的是,在闪存储存装置100的运作中,实体区块122-(0)~122-(N)与实体区块124-(0)~124-(N)被分组为系统区302、数据区304、备用区306与取代区308的分组关系会动态地变动。也就是说,当存储器管理单元204将数据写入至原本属于备用区306的实体区块(例如,实体区块122-(D+1))后,此实体区块会被关联为数据区304。或者,当数据区304(或备用区306)中的实体区块损坏时而被取代区308的实体区块取代时,则此来自于取代区308的实体区块会被关联为数据区304(或备用区304)。
例如,当闪存储存装置100接受到主机系统1000的主机写入指令而欲更新(或写入)数据至数据区中某一实体区块的某一页面时,存储器管理单元204会从备用区中提取一实体区块并且将欲被更新的实体区块中的有效旧数据与欲写入的新数据写入至从备用区中提取的实体区块的页面中,并且将已写入有效旧数据与新数据的实体区块逻辑地关联为数据区,并且将数据区中欲被更新的实体区块进行抹除并逻辑地关联为备用区。
为了能够让主机系统1000能够顺利地存取以轮替方式储存数据的实体区块,闪存储存装置100会提供逻辑区块给主机系统1000,并且记录逻辑区块与实体区块之间的对映关系。
图3B为本发明第一范例实施例的记录逻辑区块与实体区块之间的对映示意图。
请参照图3B,闪存控制器104会配置逻辑区块350-(0)~350-(H)给主机系统1000来进行存取,并且提供转换层250来将逻辑区块350-(0)~350-(H)对映至闪存芯片106的数据区304的实体区块122-(S+1)~122-(D)与实体区块124-(S+1)~124-(D)。必须了解的是,如上所述,实体区块122-(0)~122-(N)与实体区块124-(0)~124-(N)被分组为系统区302、数据区304、备用区306与取代区308的分组关系会随着闪存装置100的运作动态地变动,因此,逻辑区块350-(0)~350-(H)与实体区块122-(S+1)~122-(D)和实体区块124-(S+1)~124-(D)之间的对映关系也会动态地改变。例如,在逻辑区块350-(0)对映数据区304的实体区块122-(S+1)的例子中,倘若主机系统1000欲更新实体区块122-(S+1)中的数据时,存储器管理单元204从备用区306中提取实体区块122-(D+1)以将数据写入至实体区块122-(D+1),并且将实体区块122-(D+1)关联为数据区304及将实体区块122-(S+1)关联为备用区306。此时,逻辑区块350-(0)会变成对映实体区块122-(D+1)。
在本范例实施例中,转换层250具有逻辑区块-实体区块对映表(logicalblock-physical block mapping table)以记录逻辑区块所对映的实体区块。并且,主机系统1000仅需在所提供的逻辑区块350-(0)~350-(H)上存取数据,而闪存控制器104会依据逻辑区块-实体区块对映表来在实体区块中实际地写入与读取数据。例如,每一逻辑区块350-(0)~350-(H)会包括多个逻辑页面,且每一逻辑页面是由多个逻辑扇区所组成,其中这些逻辑扇区就是主机系统1000的存取单位,因此当主机系统1000在这些逻辑扇区中存取数据时,闪存控制器104就可依据所存取的逻辑扇区所属的逻辑区块来在实体区块中实际地存取数据。
此外,值得一提的是,逻辑区块-实体区块对映表会被储存于闪存芯片106中(例如,系统区中),并且在闪存储存装置100运作期间,逻辑区块-实体区块对映表会被载入至缓冲存储器210中以使得存储器管理单元204能够读取与更新逻辑区块-实体区块对映表。然而,在缓冲存储器210的储存空间有限下,缓冲存储器210无法暂存记录所有逻辑区块的对映关系的逻辑区块-实体区块对映表。因此,在本范例实施例中存储器管理单元204会将逻辑区块350-(0)~350-(H)分组为逻辑区域(logical zone)360-(0)与360-(1),并且为逻辑区域360-(0)与360-(1)分别地配置逻辑区块-实体区块对映表260-(0)~260-(1)。具体来说,在逻辑区块350-(0)~350-(H)中逻辑区块350-(0)~350-(G)会被分组为逻辑区域360-(0)并且逻辑区块350(G+1)~350-(H)会被分组为逻辑区域360-(1),其中逻辑区块350-(0)~350-(G)的对映信息会被记录在逻辑区块-实体区块对映表260-(0)中,而逻辑区块350(G+1)~350-(H)对映信息会被记录在逻辑区块-实体区块对映表260-(1)。也就是说,每一逻辑区块会属于其中一个逻辑区域,并且存储器管理单元204将逻辑区块的对映关系分别地记录在其所属逻辑区域的逻辑区块-实体区块对映表中。基于此,当主机系统1000欲存取某一逻辑区块时,存储器管理单元204会依据欲存取的逻辑区块所属的逻辑区域来从闪存芯片106中载入对应的逻辑区块-实体区块对映表至缓冲存储器210,并且依据对应的逻辑区块-实体区块对映表来进行数据的存取。之后,当需存取另一逻辑区域的逻辑区块时,存储器管理单元204会将目前使用的逻辑区块-实体区块对映表回存至闪存芯片106中并载入对应的另一逻辑区块-实体区块对映表至缓冲存储器210。基于此,可避免缓冲存储器210无法储存所有逻辑区块的对映关系的问题。必须了解的是,在本范例实施例中,虽然是将逻辑区块区分为两个逻辑区域来作说明,然而本发明不限于此,上述逻辑区域的数目可为任意数目。
为能够识别每一逻辑区块所对映的逻辑区域,在本范例实施例中,转换层250包括逻辑区块-逻辑区域对映表270以记录逻辑区块与逻辑区域之间的对映关系。例如,逻辑区块-逻辑区域对映表270会被储存在闪存芯片106中(例如,系统区中),并且在闪存储存装置100运作时,存储器管理单元204会将逻辑区块-逻辑区域对映表270载入至缓冲存储器210并且依据逻辑区块-逻辑区域对映表270来载入对应的逻辑区块-实体区块对映表。另外,在闪存储存装置1oo准备停止运作时,存储器管理单元204会将逻辑区块-逻辑区域对映表270回存至闪存芯片106中。值得一提的是,在本范例实施例中,存储器管理单元204是通过维护逻辑区块-逻辑区域对映表270来记录逻辑区块与逻辑区域的对映关系,然而在本发明另一范例实施例中,存储器管理单元204也可通过一数学运算式来判断逻辑区块所属的逻辑区域,或者使用逻辑区块-实体区块对映表来记录逻辑区块所属的逻辑区域。
图4为本发明第一范例实施例的逻辑区块与实体区块的对映范例示意图。在本范例实施例中,在第0闪存模组122与闪存控制器104之间配置有第0数据输入/输出总线132,且在第1闪存模组124与闪存控制器104之间配置有第1数据输入/输出总线134,也就是说,闪存控制器104是经由第0数据输入/输出总线132来存取实体区块122-(0)~122-(N),并且是经由第1数据输入/输出总线134来存取实体区块124-(0)~124-(N)。特别是,第0数据输入/输出总线132与第1数据输入/输出总线134是彼此独立,因此闪存控制器104能够同时使用第0数据输入/输出总线132与第1数据输入/输出总线134来存取第0闪存模组122与第1闪存模组124。
例如,在主机系统1000欲读取逻辑区块350-(0)中的数据且目前逻辑区块350-(0)是对映实体区块122-(S+1)的例子中,当存储器管理单元204从主机系统1000接收到主机读取指令时,存储器管理单元204会依据主机读取指令中的信息判断此主机读取指令是对应逻辑区块350-(0)并且依据逻辑区块350-(0)所属的逻辑区域对应的逻辑区块-实体区块对映表(例如,逻辑区块-实体区块对映表260-0)而识别逻辑区块350-(0)是对映实体区块122-(S+1)。此外,由于实体区块122-(S+1)是属于第0闪存模组122,因此存储器管理单元204会判断此主机读取指令是对应第0数据输入/输出总线132,也就是说,存储器管理单元204会经由第0数据输入/输出总线132来读取此主机读取指令欲读取的数据。
值得一提的是,在本发明范例实施例中,当主机系统1000欲下达多个主机读取指令时,主机系统1000会先传送关于这些主机读取指令的指令排序信息。通过此指令排序信息,存储器管理单元204会依据所有主机读取指令所对应的逻辑区块与所对应的数据输入/输出总线来重新排列这些主机读取指令的顺序以产生下达指令顺序,并且将所产生的下达指令顺序回应给主机系统1000。之后,主机系统1000会依照所接收到的下达指令顺序来传送这些主机读取指令。
例如,主机系统1000会使用原生指令排序(Native Command Queuing,NCQ)来传送关于多个主机读取指令的指令排序信息。在使用NCQ协定来传送关于多个主机读取指令的指令排序信息的例子中,连接器102与主机接口单元206是支援NCQ协定,并且主机系统1000与闪存控制器104之间是经由连接器102与主机接口单元206以NCQ协定来传送主机读取指令。
特别是,在本范例实施例中,存储器管理单元204会依据下达指令顺序经由第0数据输入/输出总线132与第1数据输入/输出总线134同时读取对应两个主机读取指令的数据。以下将以一数据读取范例来详细说明存储器管理单元204如何依据所有主机读取指令所对应的数据输入/输出总线来重新排列这些主机读取指令的顺序,并且同时读取对应两个主机读取指令的数据。
在此数据读取范例中,主机系统1000传送指令排序信息给闪存储存装置100,其中此指令排序信息是指示主机系统1000欲下达多个主机读取指令,其中包括欲读取逻辑区块350-(0)中的数据的第1主机读取指令CM1、欲读取逻辑区块350-(1)中的数据的第2主机读取指令CM2、欲读取逻辑区块350-(G+1)中的数据的第3主机读取指令CM3与欲读取逻辑区块350-(G+2)的第4主机读取指令CM4。在此,假设逻辑区块350-(0)是对映实体区块122-(S+1)、逻辑区块350-(1)是对映实体区块122-(S+2)、逻辑区块350-(G+1)是对映实体区块124-(S+1)且逻辑区块350-(G+2)是对映实体区块124-(S+2)(如图4所示)。
图5A与图5B为本发明第一范例实施例的存储器管理单元重新排列主机读取指令以产生下达指令顺序的范例示意图。
当闪存控制器104经由连接器102接收包含依序以第1主机读取指令CM1、第2主机读取指令CM2、第3主机读取指令CM3与第4主机读取指令CM4为传送顺序(如图5A所示)的指令排序信息时,存储器管理单元204会依据此指令排序信息中这些主机读取指令对应的逻辑区块和记录于转换层250中的信息(例如,逻辑区块-实体区块对映表)来识别第1主机读取指令CM1是对应第0数据输入/输出总线132、第2主机读取指令CM2是对应第0数据输入/输出总线132、第3主机读取指令CM3是对应第1数据输入/输出总线134且第4主机读取指令CM4是对应第1数据输入/输出总线134。也就是说,存储器管理单元204需经由第0数据输入/输出总线132来读取第1主机读取指令CM1与第2主机读取指令CM2欲读取的数据,并且需经由第1数据输入/输出总线134来读取第3主机读取指令CM3与第4主机读取指令CM4欲读取的数据。
如上所述,由于闪存控制器104可同时使用第0数据输入/输出总线132与第1数据输入/输出总线134来存取第0闪存模组122与第1闪存模组124,因此存储器管理单元204会将对应不同的数据输入/输出总线的主机读取指令接续排列,由此通过经由多条数据输入/输出总线同步地读取数据来缩短执行读取指令的时间。
例如,如图5B所示,在此数据读取范例中,存储器管理单元204会以第1主机读取指令CM1、第3主机读取指令CM3、第2主机读取指令CM2与第4主机读取指令CM4的顺序来产生下达指令顺序,并将所产生的下达指令顺序传送给主机系统1000,其中对应第1主机读取指令CM1与第3主机读取指令CM3的数据可被从闪存芯片106中同步地读取,而对应第2主机读取指令CM2与第4主机读取指令CM4的数据可被从闪存芯片106中同步地读取。
之后,当主机系统1000接收到此下达指令顺序时,主机系统1000会先下达第1主机读取指令CM1,并且存储器管理单元204会开始处理第1主机读取指令CM1以依据对应的逻辑区块350-(0)经由第0数据输入/输出总线132从实体区块122-(S+1)中来读取数据。特别是,在处理第1主机读取指令CM1的同时,存储器管理单元204会经由第1数据输入/输出总线134来读取第3主机读取指令CM3欲读取的数据(即,储存在逻辑区块350-(G+1)所对应的实体区块124-(S+1)中的数据)。更详细来说,虽然主机系统1000仅下达第1主机读取指令CM1,然而依据下达指令顺序存储器管理单元204已得知下一个指令为第3主机读取指令CM3且第1数据输入/输出总线134是处于闲置状态,因此存储器管理单元204会在处理第1主机读取指令CM1时同步地读取对应第3主机读取指令CM3的数据。
之后,当存储器管理单元204将对应第1主机读取指令CM1的数据传送给主机系统1000后,主机系统1000会下达下一个指令(即,第3主机读取指令CM3),此时存储器管理单元204会直接地将对应第3主机读取指令CM3的数据传送给主机系统1000,而无需再从闪存芯片106中读取数据。
接着,在主机系统1000接收到对应第3主机读取指令CM3的数据后,主机系统1000会下达下一个指令(即,第2主机读取指令CM2),并且存储器管理单元204会开始处理第2主机读取指令CM2以依据对应的逻辑区块350-(1)经由第0数据输入/输出总线132从实体区块122-(S+2)中来读取数据。类似地,在处理第2主机读取指令CM2的同时,存储器管理单元204会经由第1数据输入/输出总线134来读取对应第4主机读取指令CM4欲读取的数据(即,储存在逻辑区块350-(G+2)所对应的实体区块124-(S+2)中的数据)。
之后,当存储器管理单元204将对应第2主机读取指令CM2的数据传送给主机系统1000后,主机系统1000会下达下一个指令(即,第4主机读取指令CM4),此时存储器管理单元204会直接地将对应第4主机读取指令CM4的数据传送给主机系统1000,而无需再从闪存芯片106中读取数据。
在此范例中,存储器管理单元204会重新排列主机读取指令的传送顺序,并且在执行第1主机读取指令CM1时同时预先读取对应第3主机读取指令CM3的数据以及在执行第2主机读取指令CM2时同时预先读取对应第4主机读取指令CM4的数据。例如,存储器管理单元204会在处理第一(即,目前)主机读取指令(例如,第1主机读取指令CM1与第2主机读取指令CM2)时预先读取对应第二(即,后续)主机读取指令的数据(例如,第3主机读取指令CM3与第4主机读取指令CM4)并将预先读取的数据暂存于缓冲存储器210中。之后,当接收到第二主机读取指令时,则直接地从缓冲存储器210中将对应的数据传送给主机系统1000,由此可大幅缩短执行主机读取指令的时间。
图6为本发明第一范例实施例所绘示闪存控制器执行数据读取方法的流程图。
请参照图6,首先,在步骤S601中闪存控制器104会从主机系统1000中接收关于欲传送的多个主机读取指令的指令排序信息。接着,在步骤S603中闪存控制器104会依据每一主机读取指令所对应的逻辑区块判断每一主机读取指令所对应的数据输入/输出总线。具体来说,在步骤S601中闪存控制器104是使用NCQ协定从主机系统1000中接收指令排序信息,以获知主机系统1000欲传送的多个主机读取指令的指令排序数据。然而,必须了解的是,本发明不限于此,在本发明另一范例实施例中,闪存控制器104也可使用其他适当的方式从主机系统1000中接收关于欲传送的多个主机读取指令的指令排序信息。
在步骤S605中闪存控制器104会依据每一主机读取指令所对应的数据输入/输出总线来产生下达指令顺序,并且在步骤S607中将所产生的下达指令顺序传送给主机系统1000。
之后,在步骤S609中闪存控制器104会依据下达指令顺序从主机系统1000中接收主机读取指令,并且在步骤S611中判断所接收到的主机读取指令对应的数据是否已暂存于缓冲存储器210中。
倘若所接收到的主机读取指令对应的数据已暂存于缓冲存储器210中时,则在步骤S613中从缓冲存储器210中将主机读取指令对应的数据传送给主机系统1000,并且在步骤S615判断是否已执行主机系统1000欲传送的所有主机读取指令。倘若已执行所有主机读取指令时,则结束图6的流程;反之,则执行步骤S609来继续接收下一个主机读取指令。
倘若所接收到的主机读取指令对应的数据未暂存于缓冲存储器210中时,则在步骤S617中从闪存芯片106中读取对应此主机读取指令的数据并且依据下达指令顺序同时读取对应其他主机读取指令的数据。具体来说,在步骤S617中,闪存控制器104在处理第一主机读取指令时会依据下达指令顺序来预先读取对应第二主机读取指令的数据,其中这些第二主机读取指令所对的数据输入/输出总线是不同于第一主机读取指令所对应的数据输入/输出总线。也就是说,闪存控制器104会利用处理第一主机读取指令的期间使用其他闲置的数据输入/输出总线来预先读取对应第二主机读取指令的数据。
在步骤S619中将对应第一主机读取指令的数据传送给主机系统1000并且将预先读取的数据暂存于缓冲存储器210中。接着,闪存控制器104会执行步骤S615。
本发明第二范例实施例的闪存储存装置与主机系统本质上是相同于第一范例实施例的闪存储存装置与主机系统,其中差异在于第二范例实施例的存储器管理单元会以不同的方式来重新排列主机系统欲传送的主机读取指令的传送顺序。以下将配合第一范例实施例的图1A、图1D、图3A、图3B与图4来描述第二范例实施例。
在第一范例实施例中,闪存控制器104的存储器管理单元204会从主机系统1000中接收关于主机读取指令的指令排序信息并依据主机读取指令所对应的数据输入/输出总线来产生下达指令顺序,由此通过同步地通过多条数据输入/输出总线预先读取第二主机读取指令的数据来缩短执行主机读取指令的时间。除了依据主机读取指令所对应的数据输入/输出总线来产生下达指令顺序之外,在本发明第二范例实施例中存储器管理单元204更会依据主机读取指令所对应的逻辑区块所属的逻辑区域来产生下达指令顺序,以更缩短执行主机读取指令的时间。
具体来说,如上所述,逻辑区块350-(0)~350-(H)会被分组为逻辑区域360-(0)与逻辑区域360-(1),并且存储器管理单元204会为每一逻辑区域配置独立的逻辑区块-实体区块对映表。因此,当主机系统1000存取属于不同逻辑区域的逻辑区块时,存储器管理单元204需从闪存芯片106中载入对应的逻辑区块-实体区块对映表,因此若在执行多笔主机读取指令时,能够减少不同逻辑区块-实体区块对映表之间的切换,将能够有效缩短执行主机读取指令的时间。
以下将以一数据读取范例来详细说明在第二范例实施例中存储器管理单元204如何依据所有主机读取指令所对应的逻辑区块、所对应的数据输入/输出总线以及所对应的逻辑区域来重新排列这些主机读取指令的顺序,并且同时读取对应两个主机读取指令的数据。
在此数据读取范例中,主机系统1000传送指令排序信息给闪存储存装置100,其中此指令排序信息是指示主机系统1000欲下达多个主机读取指令,其中包括欲读取逻辑区块350-(0)中的数据的第1主机读取指令CM1、欲读取逻辑区块350-(1)中的数据的第2主机读取指令CM2、欲读取逻辑区块350-(G+1)中的数据的第3主机读取指令CM3与欲读取逻辑区块350-(G+2)的第4主机读取指令CM4。在此,假设逻辑区块350-(0)是对映实体区块122-(S+1)、逻辑区块350-(1)是对映实体区块122-(S+2)、逻辑区块350-(G+1)是对映实体区块124-(S+1)且逻辑区块350-(G+2)是对映实体区块124-(S+2),其中逻辑区块350-(0)与逻辑区块350-(1)是属于逻辑区域360-(0)且逻辑区块350-(G+1)与逻辑区块350-(G+2)是属于逻辑区域360-(1)(如图4所示)。此外,假设目前载入于缓冲存储器210中的逻辑区块-实体区块对映表是对应逻辑区域360-(1)的逻辑区块-实体区块对映表260-(1)。
图7A、图7B与图7C为本发明第二范例实施例的存储器管理单元重新排列主机读取指令以产生下达指令顺序的范例示意图。
当闪存控制器104接收到以第1主机读取指令CM1、第2主机读取指令CM2、第3主机读取指令CM3与第4主机读取指令CM4为顺序(如图7A所示)的指令排序信息时,存储器管理单元204会依据此指令排序信息中这些主机读取指令对应的逻辑区块和记录于转换层250中的信息(例如,逻辑区块-实体区块对映表)来识别第1主机读取指令CM1是对应第0数据输入/输出总线132、第2主机读取指令CM2是对应第0数据输入/输出总线132、第3主机读取指令CM3是对应第1数据输入/输出总线134且第4主机读取指令CM4是对应第1数据输入/输出总线134。也就是说,存储器管理单元204需经由第0数据输入/输出总线132来读取第1主机读取指令CM1与第2主机读取指令CM2欲读取的数据,并且需经由第1数据输入/输出总线134来读取第3主机读取指令CM3与第4主机读取指令CM4欲读取的数据。
例如,如图7B所示,存储器管理单元204会先依据主机读取指令所对应的数据输入/输出总线以第1主机读取指令CM1、第3主机读取指令CM3、第2主机读取指令CM2与第4主机读取指令CM4的顺序来排列主机系统1000欲发送的主机读取指令,其中对应第1主机读取指令CM1与第3主机读取指令CM3的数据可被从闪存芯片106中同步地读取,而对应第2主机读取指令CM2与第4主机读取指令CM4的数据可被从闪存芯片106中同步地读取。
接着,存储器管理单元204会再依据目前暂存于缓冲存储器中的逻辑区块-实体区块对映表来调整预期的下达指令顺序。例如,目前暂存于缓冲存储器中的逻辑区块-实体区块对映表是对应逻辑区域360-(1)的逻辑区块-实体区块对映表260-(1),因此在第1主机读取指令CM1与第3主机读取指令CM3中存储器管理单元204会优先处理对应逻辑区域360-(1)的第3主机读取指令CM3,再处理第1主机读取指令CM1。之后,当处理第1主机读取指令CM1时,载入于缓冲存储器中的逻辑区块-实体区块对映表260-(1)将会被切换为对应逻辑区域360-(0)的逻辑区块-实体区块对映表260-(0),因此,在处理第1主机读取指令CM1之后,相较于第4主机读取指令CM4,存储器管理单元204会优先处理对应逻辑区域360-(0)的第2主机读取指令CM2。基此,如图7C所示,存储器管理单元204会以第3主机读取指令CM3、第1主机读取指令CM1、第2主机读取指令CM2与第4主机读取指令CM4的顺序来产生下达指令顺序,并且将所产生的下达指令顺序传送给主机系统1000。
之后,当主机系统1000接收到此下达指令顺序时,主机系统1000会先发送第3主机读取指令CM3,并且存储器管理单元204会开始处理第3主机读取指令CM3以依据对应的逻辑区块350-(G+1)经由第1数据输入/输出总线134从实体区块124-(S+1)中来读取数据。并且,在处理第3主机读取指令CM3的同时,存储器管理单元204会经由第0数据输入/输出总线132来读取对应第1主机读取指令CM1欲读取的数据(即,储存在逻辑区块350-(0)所对应之实体区块122-(S+1)中的数据)。期间,存储器管理单元204先依据已载入于缓冲存储器210的逻辑区块-实体区块对映表260-(1)来获取相关的对映信息,并且之后关闭逻辑区块-实体区块对映表260-(1)与载入逻辑区块-实体区块对映表260-(0)来获取相关的对映信息。
之后,当存储器管理单元204将对应第3主机读取指令CM3的数据传送给主机系统1000后,主机系统1000会下达下一个指令(即,第1主机读取指令CM1),此时存储器管理单元204会直接地从缓冲存储器210中将对应第1主机读取指令CM1的数据传送给主机系统1000,而无需再从闪存芯片106中读取数据。
在主机系统1000接收到第1主机读取指令CM1的数据后,主机系统1000会发送下一个指令(即,第2主机读取指令CM2),并且存储器管理单元204会开始处理第2主机读取指令CM2以依据对应的逻辑区块350-(1)经由第0数据输入/输出总线132从实体区块122-(S+2)中来读取数据。类似地,在处理第2主机读取指令CM2的同时,存储器管理单元204会经由第1数据输入/输出总线134来读取对应第4主机读取指令CM4欲读取的数据(即,储存在逻辑区块350-(G+2)所对应之实体区块124-(S+2)中的数据)。期间,存储器管理单元204先依据已载入于缓冲存储器210的逻辑区块-实体区块对映表260-(0)来获取相关的对映信息,并且之后关闭逻辑区块-实体区块对映表260-(0)与载入逻辑区块-实体区块对映表260-(1)来获取相关的对映信息。
之后,当存储器管理单元204将对应第2主机读取指令CM2的数据传送给主机系统1000后,主机系统1000会下达下一个指令(即,第4主机读取指令CM4),此时存储器管理单元204会立即将对应第4主机读取指令CM4的数据传送给主机系统1000。
值得一提的是,在上述数据读取范例中,对应同一数据输入/输出总线的逻辑区块是属于同一逻辑区域,然而本发明不限于此,在本发明另一范例实施例中,对应不同数据输入/输出总线的逻辑区块也可以是属于同一逻辑区域。图8A、图8B与图8C为本发明第二范例实施例的存储器管理单元重新排列主机读取指令以产生下达指令顺序的范例示意图。例如,在逻辑区块350-(0)与逻辑区块350-(G+1)是属于逻辑区域360-(0)且逻辑区块350-(1)与逻辑区块350-(G+2)是属于逻辑区域360-(1)的另一范例实施例中,假设在上述数据读取范例中存储器管理单元204先依据主机读取指令所对应的数据输入/输出总线将主机系统1000所传送的多笔主机读取指令的顺序(如图8A所示)以第1主机读取指令CM1、第3主机读取指令CM3、第2主机读取指令CM2与第4主机读取指令CM4的顺序(如图8B所示)来排列之后,由于目前载入于缓冲存储器中的逻辑区块-实体区块对映表是对应逻辑区域360-(1)的逻辑区块-实体区块对映表260-(1),因此存储器管理单元204会预期优先处理对应逻辑区域360-(1)的第2主机读取指令CM2或第4主机读取指令CM4。基于此,在对应第1主机读取指令CM1与第3主机读取指令CM3的数据可被从闪存芯片106中同步地读取,而对应第2主机读取指令CM2与第4主机读取指令CM4的数据可被从闪存芯片106中同步地读取的情况下,例如,存储器管理单元204会以第2主机读取指令CM2、第4主机读取指令CM4、第1主机读取指令CM1与第3主机读取指令CM3的顺序(如图8C所示)来产生下达指令顺序。基此,存储器管理单元204仅需于处理第1主机读取指令CM1时关闭逻辑区块-实体区块对映表260-(1)与载入逻辑区块-实体区块对映表260-(0)来获取相关的对映信息。
基于上述,在本发明第二范例实施例中,存储器管理单元204还依据每一主机读取指令所对应的逻辑区域来产生下达指令顺序,因此可减少切换逻辑区块-实体区块对映表的次数,而更缩短执行主机读取指令的时间。
图9为本发明第二范例实施例的闪存控制器执行数据读取方法的流程图。
请参照图9,图9中的步骤S901、S903、S907、S909、S911、S913、S915、S917与S919是相同于图6中的步骤S601、S603、S607、S609、S611、S613、S615、S617与S619,在此不再重复说明。图9与图6的差异在于闪存控制器104会依据每一主机读取指令所对应的数据输入/输出总线以及所对应的逻辑区域来产生下达指令顺序(S905)。
值得一提的是,尽管上述范例实施例是以两个闪存模组与两条数据输入/输出总线来进行说明,然而本发明不限于此,闪存模组与数据输入/输出总线的数目可以是任意数目。
综上所述,根据本发明范例实施例的数据读取方法通过接收关于主机读取指令的指令排序信息以及依据主机读取指令所对应的数据输入/输出汇流来重新排列多个主机读取指令的传送顺序,并且经由多条数据输入/输出总线来同步地读取与预读取对应不同主机读取指令的数据,由此可大幅度地缩短执行主机读取指令的时间。此外,在本发明另一范例实施例中,除了依据主机读取指令所对应的数据输入/输出汇流之外,根据本发明范例实施例的数据读取方法还依据主机读取指令所对应的逻辑区域来重新排列多个主机读取指令的发送顺序,由此可减少切换逻辑区块-实体区块对映表的次数,进而缩短执行主机读取指令的时间。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (25)
1.一种数据读取方法,适用于由一闪存控制器处理来自于一主机系统的多个主机读取指令以从多个闪存模组中读取对应所述主机读取指令的数据,其中该闪存控制器分别地经由多条数据输入/输出总线电性连接至所述闪存模组并且每一所述闪存模组具有多个实体区块,该数据读取方法包括:
配置多个逻辑区块,其中所述逻辑区块对映所述闪存模组中的部份所述实体区块;
从该主机系统中接收关于所述主机读取指令的一指令排序信息,其中每一所述主机读取指令对应所述逻辑区块的其中之一且每一所述逻辑区块对应所述数据输入/输出总线的其中之一;
依据所述主机读取指令所对应的所述数据输入/输出总线来重新排列所述主机读取指令的顺序与产生一下达指令顺序;
将该下达指令顺序传送给该主机系统;以及
依据该下达指令顺序从该主机系统中依序地接收所述主机读取指令并且依据所述主机读取指令从所述闪存模组中读取对应所述主机读取指令的数据。
2.根据权利要求1所述的数据读取方法,其中从该主机系统中接收关于所述主机读取指令的指令排序信息的步骤包括:使用一原生指令排序NCQ协定从该主机系统中接收关于所述主机读取指令的指令排序信息。
3.根据权利要求1所述的数据读取方法,其中依据该下达指令顺序从该主机系统中依序地接收所述主机读取指令并且依据所述主机读取指令从所述闪存模组中读取对应所述主机读取指令的数据的步骤包括:
当从该主机系统中接收到所述主机读取指令中的一第一主机读取指令时,经由所述数据输入/输出总线从所述闪存模组中同步地读取对应该第一主机读取指令的数据和所述主机读取指令中的至少一第二主机读取指令的数据,其中该第一主机读取指令和该至少一第二主机读取指令是对应所述数据输入/输出总线中不同的数据输入/输出总线;以及
将对应该第一主机读取指令的数据传送给该主机系统。
4.根据权利要求3所述的数据读取方法,还包括将对应该至少一第二主机读取指令的数据暂存于该闪存控制器的一缓冲存储器中。
5.根据权利要求4所述的数据读取方法,其中依据该下达指令顺序从该主机系统中依序地接收所述主机读取指令并且依据所述主机读取指令从所述闪存模组中读取对应所述主机读取指令的数据的步骤还包括:
当从该主机系统中接收到该至少一第二主机读取指令时,从该缓冲存储器中将对应该至少一第二主机读取指令的数据传送给该主机系统。
6.根据权利要求4所述的数据读取方法,还包括:
将所述逻辑区块分组为多个逻辑区域,以及为每一所述逻辑区域配置一逻辑区块-实体区块对映表,其中每一所述逻辑区块对应所述逻辑区块-实体区块对映表的其中之一;以及
载入所述逻辑区块-实体区块对映表的其中之一至该缓冲存储器中。
7.根据权利要求6所述的数据读取方法,其中依据所述主机读取指令所对应的所述数据输入/输出总线重新排列所述主机读取指令的顺序与产生该下达指令顺序的步骤包括:
依据所述主机读取指令所对应的所述数据输入/输出总线与所述逻辑区域来重新排列所述主机读取指令的顺序与产生该下达指令顺序。
8.根据权利要求7所述的数据读取方法,其中依据所述主机读取指令所对应的所述数据输入/输出总线与所述逻辑区域来重新排列所述主机读取指令的顺序与产生该下达指令顺序的步骤包括:
在该下达指令顺序中优先安排所述主机读取指令中的至少一主机读取指令,其中该至少一主机读取指令所对应的逻辑区块是对应被载入于该缓冲存储器中的逻辑区块-实体区块对映表。
9.一种闪存控制器,用于处理来自于一主机系统的多个主机读取指令以从多个闪存模组中读取对应所述主机读取指令的数据,其中每一所述闪存模组具有多个实体区块,该闪存控制器包括:
一微处理器单元;
一闪存接口单元,电性连接至该微处理器单元,用以经由多条数据输入/输出总线电性连接至所述闪存模组;
一主机接口单元,电性连接至该微处理器单元,用以连接该主机系统;以及
一存储器管理单元,电性连接至该微处理器单元,用以配置多个逻辑区块,其中所述逻辑区块对映所述闪存模组中的部分所述实体区块,
其中该存储器管理单元经由该主机接口单元从该主机系统中接收关于所述主机读取指令的一指令排序信息,其中每一所述主机读取指令对应所述逻辑区块的其中之一且每一所述逻辑区块对应所述数据输入/输出总线的其中之一,
其中该存储器管理单元依据所述主机读取指令所对应的所述数据输入/输出总线来重新排列所述主机读取指令的顺序与产生一下达指令顺序,并且将该下达指令顺序传送给该主机系统,
其中该存储器管理单元依据该下达指令顺序经由该主机接口单元从该主机系统中依序地接收所述主机读取指令并且依据所述主机读取指令经由该闪存接口单元从所述闪存模组中读取对应所述主机读取指令的数据。
10.根据权利要求9所述的闪存控制器,其中该主机接口单元为支援一原生指令排序NCQ协定。
11.根据权利要求9所述的闪存控制器,其中当该主机接口单元从该主机系统中接收到所述主机读取指令中的一第一主机读取指令时,该存储器管理单元经由所述数据输入/输出总线从所述闪存模组中同步地读取对应该第一主机读取指令的数据和所述主机读取指令中的至少一第二主机读取指令的数据并且将对应该第一主机读取指令的数据传送给该主机系统,
其中该第一主机读取指令和该至少一第二主机读取指令是对应所述数据输入/输出总线中不同的数据输入/输出总线。
12.根据权利要求11所述的闪存控制器,还包括一缓冲存储器,电性连接至该微处理器单元,其中该存储器管理单元将对应该至少一第二主机读取指令的数据暂存于该缓冲存储器中。
13.根据权利要求12所述的闪存控制器,其中当该存储器管理单元从该主机系统中接收到该至少一第二主机读取指令时,该存储器管理单元从该缓冲存储器中将对应该至少一第二主机读取指令的数据传送给该主机系统。
14.根据权利要求12所述的闪存控制器,其中该存储器管理单元将所述逻辑区块分组为多个逻辑区域,并且为每一所述逻辑区域配置一逻辑区块-实体区块对映表,其中每一所述逻辑区块对应所述逻辑区块-实体区块对映表的其中之一,
其中该存储器管理单元载入所述逻辑区块-实体区块对映表的其中之一至该缓冲存储器。
15.根据权利要求14所述的闪存控制器,其中该存储器管理单元还依据所述主机读取指令所对应的所述数据输入/输出总线与所述逻辑区域来重新排列所述主机读取指令的顺序与产生该下达指令顺序。
16.根据权利要求15所述的闪存控制器,其中该存储器管理单元在该下达指令顺序中优先安排所述主机读取指令中的至少一主机读取指令,其中该至少一主机读取指令所对应的逻辑区块是对应被载入于该缓冲存储器中的逻辑区块-实体区块对映表。
17.一种闪存储存系统,包括:
一闪存芯片,具有多个闪存模组,并且每一所述闪存模组具有多个实体区块;
一闪存控制器,经由多条数据输入/输出总线电性连接至所述闪存模组,用以配置多个逻辑区块,其中所述逻辑区块对映所述闪存模组中的部分所述实体区块;以及
一连接器,电性连接至该闪存控制器并且用以电性连接一主机系统,
其中该闪存控制器经由该连接器从该主机系统中接收关于多个主机读取指令的一指令排序信息,其中每一所述主机读取指令对应所述逻辑区块的其中之一且每一所述逻辑区块对应所述数据输入/输出总线的其中之一,
其中该闪存控制器依据所述主机读取指令所对应的所述数据输入/输出总线来重新排列所述主机读取指令的顺序与产生一下达指令顺序,并且将该下达指令顺序传送给该主机系统,
其中该闪存控制器依据该下达指令顺序经由该连接器从该主机系统中依序地接收所述主机读取指令并且依据所述主机读取指令经由所述数据输入/输出总线从所述闪存模组中读取对应所述主机读取指令的数据。
18.根据权利要求17所述的闪存储存系统,其中该连接器为支援一原生指令排序NCQ协定。
19.根据权利要求17所述的闪存储存系统,其中当该闪存控制器从该主机系统中接收到所述主机读取指令中的一第一主机读取指令时,闪存控制器经由所述数据输入/输出总线从所述闪存模组中同步地读取对应该第一主机读取指令的数据和所述主机读取指令中的至少一第二主机读取指令的数据并且将对应该第一主机读取指令的数据传送给该主机系统,
其中该第一主机读取指令和该至少一第二主机读取指令是对应所述数据输入/输出总线中不同的数据输入/输出总线。
20.根据权利要求19所述的闪存储存系统,还包括一缓冲存储器,其中该闪存控制器将对应该至少一第二主机读取指令的数据暂存于该缓冲存储器中。
21.根据权利要求20所述的闪存储存系统,其中当该闪存控制器从该主机系统中接收到该至少一第二主机读取指令时,该闪存控制器从该缓冲存储器中将对应该至少一第二主机读取指令的数据传送给该主机系统。
22.根据权利要求20所述的闪存储存系统,其中该闪存控制器将所述逻辑区块分组为多个逻辑区域,并且为每一所述逻辑区域配置一逻辑区块-实体区块对映表,其中每一所述逻辑区块对应所述逻辑区块-实体区块对映表的其中之一,
其中该闪存控制器载入所述逻辑区块-实体区块对映表的其中之一至该缓冲存储器。
23.根据权利要求22所述的闪存储存系统,其中该闪存控制器还依据所述主机读取指令所对应的所述数据输入/输出总线与所述逻辑区域来重新排列所述主机读取指令的顺序与产生该下达指令顺序。
24.根据权利要求23所述的闪存储存系统,其中该闪存控制器在该下达指令顺序中优先安排所述主机读取指令中的至少一主机读取指令,其中该至少一主机读取指令所对应的逻辑区块是对应暂存于该缓冲存储器中的逻辑区块-实体区块对映表。
25.根据权利要求20所述的闪存储存系统,其中该缓冲存储器配置在该闪存控制器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910175766A CN102043588B (zh) | 2009-10-13 | 2009-10-13 | 数据读取方法、闪存控制器与闪存储存系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910175766A CN102043588B (zh) | 2009-10-13 | 2009-10-13 | 数据读取方法、闪存控制器与闪存储存系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043588A true CN102043588A (zh) | 2011-05-04 |
CN102043588B CN102043588B (zh) | 2012-10-17 |
Family
ID=43909752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910175766A Active CN102043588B (zh) | 2009-10-13 | 2009-10-13 | 数据读取方法、闪存控制器与闪存储存系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043588B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535912A (zh) * | 2019-07-29 | 2019-12-03 | 宜鼎国际股份有限公司 | 可远程控制电子设备执行程序的系统及方法 |
CN111324282A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286135A (zh) * | 2007-04-11 | 2008-10-15 | 宇瞻科技股份有限公司 | 闪存的二维数据写入方法及装置 |
-
2009
- 2009-10-13 CN CN200910175766A patent/CN102043588B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324282A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
CN110535912A (zh) * | 2019-07-29 | 2019-12-03 | 宜鼎国际股份有限公司 | 可远程控制电子设备执行程序的系统及方法 |
CN110535912B (zh) * | 2019-07-29 | 2023-11-07 | 宜鼎国际股份有限公司 | 可远程控制电子设备执行程序的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102043588B (zh) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI454906B (zh) | 資料讀取方法、快閃記憶體控制器與儲存系統 | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
CN103377129B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN101625897A (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101527169A (zh) | 闪存数据写入方法及其控制器 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
CN101425338A (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN102129353A (zh) | 闪存储存系统、闪存控制器与数据写入方法 | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
CN102800357A (zh) | 程序码载入与存取方法、存储器控制器与存储器储存装置 | |
CN102053920B (zh) | 数据写入方法及闪存控制器与闪存存储系统 | |
CN102043588B (zh) | 数据读取方法、闪存控制器与闪存储存系统 | |
CN102650971B (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存系统及控制器 | |
CN102841853B (zh) | 存储器管理表处理方法、存储器控制器与存储器储存装置 | |
CN102467459B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102543183B (zh) | 数据写入方法、存储器控制器与储存装置 | |
CN102467460B (zh) | 资料管理方法、存储器控制器与存储器储存装置 | |
CN102110056B (zh) | 闪存管理方法、闪存控制器与闪存存储系统 | |
CN101872318A (zh) | 用于快闪记忆体的资料存取方法及其储存系统与控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |