快闪存储器控制器及使用于快闪存储器控制器的方法与流程
未命名
08-03
阅读:92
评论:0

背景技术:
::2.一般来说,当接收到一主机装置所发送的一修剪命令(trimcommand)时,一传统的存储器控制器可以执行该修剪命令的即时修剪操作。然而,这样对于使用者而言,其需要等待更长的时间段来结束或完成上述的即时修剪操作。或者,传统的存储器控制器也可以执行背景修剪操作,该背景修剪操作由于可以在背景执行,对于使用者而言,其无需等待更长的时间,然而,一旦涉及到其他操作,例如擦除或是写入操作,操作上将变得更加复杂。技术实现要素:3.因此,本发明的目的之一在于提供一种快闪存储器控制器及方法,其能够减少结束或完成一修剪命令的操作的等待时间,以解决上述的问题。4.根据本发明的实施例,提供了一种外部耦接到主机装置和快闪存储器的快闪存储器控制器。快闪存储器控制器包括第一输入/输出接口电路、总线、第二输入/输出接口电路和多核心处理器。第一输入/输出接口电路耦接于主机装置与快闪存储器控制器的总线之间。第二输入/输出接口电路耦接总线与快闪存储器。多核心处理器具有多个处理单元,每一个处理单元耦接至总线,并用来:接收主机装置所发送并通过第一输入/输出接口电路和总线所传送的一修剪命令和逻辑区块地址范围(logicalblockaddress(lba)range,简称为lba范围);根据该lba范围的多个部分、该多个处理单元的一数量、该修剪命令的多个操作的多个类型及该多个操作的多个执行周期数中的至少一个,将该修剪命令的该多个操作分成n个执行绪(thread);使用该多个处理单元分别执行该n个执行绪;以及最大化该多个处理单元为忙碌的一执行周期数(numberofexecutioncycles);其中该n个执行绪包括以下执行绪中的至少一个:一第一执行绪,用来检查在该快闪存储器中所储存的一逻辑对实体地址映射表中所记录的该lba范围的一状态;一第二执行绪,用来配置一直接存储器存取先进先出缓冲器;一第三执行绪,用来配置该快闪存储器的一先进先出缓冲器;一第四执行绪,用来执行一直接存储器存取服务,该直接存储器存取服务用来将该lba范围的数据与一对应的有效页计数数据(validpagecount(vpc)data,以下简称为vpc数据)从该快闪存储器载入到该直接存储器存取先进先出缓冲器;一第五执行绪,用来执行一存储器服务,该存储器服务用来将该快闪存储器中的该lba范围的该数据和该对应的vpc数据载入到该快闪存储器的该先进先出缓冲器中;以及,一第六执行绪,用来执行一修剪操作,通过将该对应的vpc数据依次递减1来以擦除该lba范围的该数据并更新该对应的vpc数据。5.根据本发明的实施例,提供了一种用于外部耦接到主机装置和快闪存储器的快闪存储器控制器的方法。该方法包括:提供一第一输入/输出接口电路,耦接于该主机装置与该快闪存储器控制器的一总线之间;提供一第二输入/输出接口电路,耦接于该总线及该快闪存储器;提供具有多个处理单元的一多核心处理器,每一个处理单元耦接到该总线;接收该主机装置所发送并通过该第一输入/输出接口电路和该总线所传输的一修剪命令与一lba范围;根据该lba范围的多个部分、该多个处理单元的一数量、该修剪命令的多个操作的多个类型及该多个操作的多个执行周期数中的至少一个,将该修剪命令的该多个操作分成n个执行绪(thread);使用该多个处理单元分别执行该n个执行绪;以及,最大化该多个处理单元为忙碌的一执行周期数(numberofexecutioncycles);其中该n个执行绪包括以下执行绪中的至少一个:一第一执行绪,用来检查在该快闪存储器中所储存的一逻辑对实体地址映射表中所记录的该lba范围的一状态;一第二执行绪,用来配置一直接存储器存取先进先出缓冲器;一第三执行绪,用来配置该快闪存储器的一先进先出缓冲器;一第四执行绪,用来执行一直接存储器存取服务,该直接存储器存取服务用来将该lba范围的数据与一对应的vpc数据从该快闪存储器载入到该直接存储器存取先进先出缓冲器;一第五执行绪,用来执行一存储器服务,该存储器服务用来将该快闪存储器中的该lba范围的该数据和该对应的vpc数据载入到该快闪存储器的该先进先出缓冲器中;以及,一第六执行绪,用来执行一修剪操作,通过将该对应的vpc数据依次递减1来以擦除该lba范围的该数据并更新该对应的vpc数据。附图说明6.图1为本发明一实施例的一储存装置的示意图。7.图2为本发明一实施例图1中的控制器的操作流程图。8.图3为本发明另一实施例图1中的控制器的操作的流程图。9.图4为本发明一实施例图1中的控制器的操作的范例的流程图。10.图5为本发明另一实施例图1中的控制器的操作的另一范例的流程图。11.【符号说明】12.100:储存装置13.101:主机装置14.105:快闪存储器控制器15.110:快闪存储器16.110_1~110_n:记忆单元17.1051:第一输入/输出接口电路18.1052:第二输入/输出接口电路19.1053:缓冲存储器20.1054:只读存储器21.1055:多核心处理器具体实施方式22.本发明旨在于提供储存装置和相应的对称多处理(symmetricmultiprocessing,smp)方法的技术解决方案,其能够同时使用多个处理单元来对多个不同的逻辑区块地址范围(logicalblockaddress(lba)range,以下简称为lba范围)执行一修剪命令(trimcommand)或一数据集管理命令操作的多个不同的部分/任务(task)/执行绪(thread),以尽量减少该修剪命令的一等待时间。该多个处理电路可以被安排为对于多个不同的执行周期中多个不同的操作作为不同的角色,使得所有或几乎所有的处理单元都可以在一或多个相同的执行周期中位于忙碌状态,从而提高数据处理的效能。在一优选实施例中,本发明所提供的方法的目标系尽量令没有任何一个处理单元位于空闲状态,该方法可以尽可能地最大化令几乎所有处理单元都位于忙碌状态的一执行周期数。23.图1为本发明一实施例的储存装置100的示意图。该储存装置100可以是固态驱动器(solidstatedrive,ssd)并且包括一快闪存储器控制器105和一快闪存储器110。该快闪存储器控制器105外部耦接到一主机装置101和该快闪存储器110。该主机装置101可以是一手机、一平板电脑或一个人电脑,例如桌上型电脑或笔记型电脑(但不限定)。该快闪存储器控制器105被设置用来为读取、写入或存取该快闪存储器110,而该快闪存储器110被设置用来储存资讯和数据。24.该快闪存储器110包括多个记忆单元110_1~110_n,其中n可以是任意整数,每一个记忆单元可以是一快闪存储器晶片(或裸晶片)。该储存装置100另包括用于快取缓存数据的一挥发性存储器元件,其中该挥发性存储器元件优选地可以是一动态随机存取存储器(dram),该挥发性存储器元件在被供电时可以用来储存或缓冲来自该快闪存储器110的数据,下列的描述说明系以不具备挥发性存储器的储存装置100的架构为例进行说明,然而,这并非是本发明的限制。该快闪存储器控制器105包括一第一输入/输出接口电路1051、一第二输入/输出接口电路1052、一总线、由诸如中央处理单元(cpu)等多个处理单元cpu_0~cpu_3(但不限定)所形成的一多核心处理器1055、一缓冲存储器1053例如sram以及一储存有程序码的只读存储器(rom)1054。该缓冲存储器1053可以通过使用一静态随机存取存储器来实现,并且可以作为数据快取(cache)以用来储存来自该主机装置101或来自于该快闪存储器110的少量数据与资讯。每一个处理单元cpu_0~cpu_3可以被安排用来执行所获取到的程序码来控制该快闪存储器110的存取;再者,在其他实施例中,一处理单元也可以执行不储存在只读存储器1054中的一或多个程序码。该第一输入/输出接口电路1051耦接在该总线和该主机装置101之间,并用于传输从该主机装置101发送到该多核心处理器1055的一特定命令(例如读取、写入、擦除或修剪),并且其用来将指示出该特定命令的多个操作是否结束或完成的一回报讯号传回到该主机装置101,其中该回报讯号是由该多核心处理器1055所产生。该第二输入/输出接口电路1052耦接在该总线和该快闪存储器110之间,该第二输入/输出接口电路1052包括一错误更正码(errorcorrectioncode,ecc)电路(并未显示于图中)以执行一数据保护及/或一数据错误更正。该多个处理单元cpu_0~cpu_3以及该缓冲存储器1053分别耦接至该总线。应注意的是,该快闪存储器控制器105的电路结构并非是本发明的限制。25.在本实施例,该主机装置101可以向该快闪存储器控制器105发送一命令(或称为主机命令)与一或多个对应的逻辑地址,例如是逻辑区块地址(lba)。该快闪存储器控制器105接收该命令和一或多个对应的逻辑地址,并用来将该命令转译为一存储器操作命令(简称为一操作命令),以及接着根据该操作命令来并通过该第二输入/输出接口电路1052来控制该快闪存储器110读取、写入/编程在该快闪存储器110内的一或多个特定实体地址的一或多个数据页,逻辑地址和实体地址之间的多个映射关系可以被储存在一逻辑对实体地址映射表(logical-to-physical(l2p)addressmappingtable,可以被简称为l2p映射表),该l2p映射表可以被储存于该快闪存储器110内的一记忆单元中。此外,该快闪存储器110也储存有一有效页计数表(validpagecount(vpc)table,简称为vpc表),该vpc表记录每一个实体区块的有效页的个数。该主机装置101可以通过该第一输入/输出接口电路1051和该总线将一修剪命令和一对应的地址范围(lba范围)传送到该快闪存储器控制器105。当接收到该修剪命令和诸如一特定lba(或多个地址)的一lba范围时,该快闪存储器控制器105会从该快闪存储器110读取出该特定lba的l2p映射资讯,从该l2p映射表中擦除掉该l2p映射资讯,并基于该特定多个lba来获得一对应的实体区块,接着该快闪存储器控制器105从该快闪存储器110中读取出该对应的实体区块的有效页计数(vpc)资讯(例如一vpc值),接着令该vpc值减1以更新该vpc值,最后将更新后的该l2p映射表和更新后的值写回至该快闪存储器110,以完成或结束该修剪命令的操作。26.在本实施例中,当该多核心处理器1055接收到从该主机装置101所发送并通过该第一输入/输出接口电路1051和该总线所传输的一修剪命令(数据集管理命令)时,该多核心处理器1055被设置用来使用一或多个不同的处理单元来分别执行与该修剪命令有关的多个不同操作,举例来说,该修剪命令可以被安排用来修剪一lba范围,例如是连续的或不连续的lba范围,例如lba范围r1~r4。一个lba范围包括有一个或多个逻辑区块的一个或多个连续的/不连续的地址,而不同的lba范围的大小可以相同或也可以是不相同。当该多核心处理器1055接收到该修剪命令时,该多核心处理器1055会将与该修剪命令有相关的所有操作分类为n个任务/执行绪,一个任务/执行绪可以由一个特定的处理单元所发起和执行来结束或完成属于该任务/执行绪的一个或多个相应的操作,也就是说,属于同一个修剪命令的操作可以被分割并分离成多个任务/执行绪,该些任务/执行绪可以被单独或独立地执行,举例来说,该多核心处理器1055可以根据多个操作的不同的类型及/或对应的执行时间段(例如执行周期的个数)将该修剪命令的多个操作分类或分离为多个不同的任务。27.举例来说,在第一场景例子中,假设该多核心处理器1055包括有四个处理单元cpu_0~cpu_3,且该多核心处理器1055会根据不同的操作的类型将与该修剪命令相关联的所有可能操作分类为多个任务/执行绪,例如,下表显示了第一个场景例子:28.周期/单元cpu_0cpu_1cpu_2cpu_3c0t0:r1闲置闲置闲置c1t0:r2t2:r1闲置闲置c2t0:r3t2:r2t4:r1闲置c3t0:r4t1:r3t4:r2t5:r1c4闲置t2:r4t3:r3t5:r2c5闲置闲置t4:r4t5:r3c6闲置闲置闲置t5:r429.c0~c6表示不同的执行周期,t0~t5表示不同的执行绪。t0是检查储存在该快闪存储器110中的该l2p映射表中所记录的一相应的lba范围/部分的状态的一执行绪。t1是配置一直接存储器存取先进先出缓冲器给该lba范围/部分的数据及/或与该lba范围/部分有关联的对应的vpc数据的一执行绪。t2是配置一nand型快闪存储器的先进先出缓冲器给该lba范围/部分的数据及/或该对应的vpc数据的一执行绪,其中该nand型快闪存储器的先进先出缓冲器例如是位于该快闪存储器110内的所配出的一储存空间/单元。t3是一直接存储器存取服务的执行绪,该直接存储器存取服务用来从该快闪存储器110将该lba范围/部分及/或该对应的vpc数据、l2p映射表及/或vpc表的部分数据或整个l2p映射表及/或vpc表的数据载入至动态随机存取存储器的先进先出缓冲器。t4是该nand型快闪存储器服务的一执行绪,其用来从该快闪存储器110将该lba范围/部分的数据及/或对应的vpc数据、l2p映射表及/或vpc表的部分数据或整个l2p映射表及/或vpc表的数据载入至该nand型快闪存储器的先进先出缓冲器。t5是执行修剪操作以擦除该lba范围/部分的数据并更新将被重写回该快闪存储器110的相应的vpc数据的一执行绪。30.应注意的是,该多核心处理器1055可以根据所支持的处理单元的总数、快闪存储器晶片的数量及/或预期或实际的系统效能来决定出所分类的执行绪的个数与类型,上述的执行绪t0~t5的例子并非是本技术的限制。31.在第一个场景例子中,该处理单元cpu_0被安排对于不同的lba范围r1~r4执行该执行绪t0,该处理单元cpu_1被安排用来执行该执行绪t1或t2以配置相应的先进先出缓冲器给不同的lba范围r1~r4,该处理单元cpu_2被安排用来执行该执行绪t3或t4以从储存在快闪存储器110中的该l2p映射表将相应的数据载入至配置给不同的lba范围r1~r4的先进先出缓冲器中,以及该处理单元cpu_3被安排用来执行该执行绪t5以执行修剪操作,对于不同的lba范围r1~r4更新lba范围/部分的数据与vpc数据。32.一开始,在执行周期c0期间,只有处理单元cpu_0位于忙碌状态并对于该lba范围r1执行该执行绪t0,其他的处理单元则可能位于空闲状态。在执行周期c1期间,该处理单元cpu_0对于该lba范围r2执行该执行绪t0,该处理单元cpu_1对于lba范围r1执行该执行绪t2,该处理单元cpu_2和cpu_3则是空闲状态。在执行周期c2期间,该处理单元cpu_0对于lba范围r3执行该执行绪t0,该处理单元cpu_1对于lba范围r2执行该执行绪t2,该处理单元cpu_2对于lba范围r1执行该执行绪t4,该处理单元cpu_3则是空闲状态。在执行周期c3期间,该处理单元cpu_0对于lba范围r4执行该执行绪t0,该处理单元cpu_1对于lba范围r2执行该执行绪t2,该处理单元cpu_2对于lba范围r2执行该执行绪t4,而该处理单元cpu_3对于lba范围r1执行该执行绪t5,此时没有处理单元是空闲状态。在执行周期c4期间,执行绪t0已经结束,该处理单元cpu_0位于空闲状态,该处理单元cpu_1对于lba范围r4执行该执行绪t2,该处理单元cpu_2对于lba范围r3执行该执行绪t3,该处理单元cpu_3对于lba范围r2执行该执行绪t5。在执行周期c5期间,执行绪t1或t2已经结束,该处理单元cpu_1位于空闲状态,该处理单元cpu_2对于lba范围r4执行该执行绪t4,该处理单元cpu_3对于lba范围r3执行该执行绪t5。在执行周期c6期间,执行绪t3或t4已经结束,该处理单元cpu_2位于空闲状态,该处理单元cpu_3对于lba范围r4执行该执行绪t5。接着,在执行周期c6之后,该修剪命令的操作完成。33.也就是说,对于lba范围r1执行该修剪命令而言,检查lba范围r1的状态的操作、配置一nand型快闪存储器先进先出缓冲器给lba范围r1的操作、从该快闪存储器110将lba范围r1的数据载入到该nand型快闪存储器先进先出缓冲器的操作以及修剪lba范围r1的数据和更新对应的vpc数据的操作均可以分别由不同的处理单元cpu所执行。类似地,对于每一个lba范围执行该修剪命令而言,相同的修剪命令的多个操作也可以由多个不同的处理单元cpu所共享并执行。相较于传统的方案需要更多的执行周期来结束或完成上述的修剪命令的相同操作,本发明所提供的方法可以显著减少执行这样的修剪命令时的等待时间,需要说明的是,不同的执行绪的执行等待时间可以是相同的或也可以是不相同的,并且可以只需要一个执行周期就可以完成或是需要多个执行周期来完成,此均并非是本发明的限制。34.此外,在其他实施例中,考虑到某些执行绪可能需要较多的执行周期来完成/结束其操作,因此该多核心处理器1055可以被安排为进一步将一特定任务/执行绪分割为多个子任务或子执行绪,其中每一个子执行绪的操作可以在一个执行周期内完成,而接着该多核心处理器1055会分配不同的处理单元来分别处理和执行这样子执行绪,例如,下表显示了本发明的第二个场景例子:35.周期/单元cpu_0cpu_1cpu_2cpu_3c0t0:r1闲置闲置闲置c1t0:r2t2:r1闲置闲置c2t0:r3t2:r2t4-1:r1闲置c3t0:r4t1:r3t4-2:r1闲置c4t3-1:r3t2:r4t4-3:r1t3-2:r3c5t4-1:r2t4-2:r2t4-3:r2t5-1:r1c6t5-2:r1t4-1:r4t4-2:r4t4-3:r4c7t5-1:r2t5-2:r2t5-1:r3t5-1:r4c8闲置闲置t5-2:r3t5-2:r436.在上述例子中,执行绪t4对于一特定lba范围的执行时间段例如可能需要三个执行周期(但不限定),而该多核心处理器1055会用来将属于同一执行绪t4的操作分割为三个子执行绪的三个操作。对于执行绪t3来说,该执行绪t3对于该特定lba范围的执行时间段例如可能需要两个执行周期(但不限定),因此该多核心处理器1055会将属于同一执行绪t3的操作分割成两个子执行绪的两个操作。类似地,对于执行绪t5来说,执行绪t5对于特定lba范围的执行时间段例如可能需要两个执行周期(但不限定),因此该多核心处理器1055将属于同一分割执行绪t5的操作分割为两个子执行绪的两个操作。此均并非是本发明的限制。37.在第二个例子中,一开始在执行周期c0期间,只有处理单元cpu_0位于忙碌状态并对于lba范围r1发起并执行该执行绪t0,其他的处理单元位于空闲状态。在执行周期c1期间,该处理单元cpu_0对于lba范围r2执行该执行绪t0,该处理单元cpu_1对于lba范围r1执行该执行绪t2,在这个情况下,处理单元cpu_2与cpu_3均位于空闲状态。38.在执行周期c2中,该处理单元cpu_0对于lba范围r3执行该执行绪t0,该处理单元cpu_1对于lba范围r2执行该执行绪t2,该多核心处理器1055对于lba范围r1系将该执行绪t4的操作分为三个子执行绪t4-1、t4-2和t4-3,因此在这个情况下,该处理单元cpu_2对于lba范围r1执行该子执行绪t4-1,该处理单元cpu_3是空闲状态,该些子执行绪t4-1、t4-2与t4-3可以在不同的执行周期由同一个处理单元所执行,或者也可以在一或多个相同的执行周期中由多个不同的处理单元所分别执行,也或者可以部分是在一或多个相同的执行周期中由多个不同的处理单元所执行,而部分是在不相同的执行周期中所执行。39.在执行周期c3期间,该处理单元cpu_0对于lba范围r4执行该执行绪t0,该处理单元cpu_1对于lba范围r3执行该执行绪t1,而该处理单元cpu_2对于lba范围r1执行该子执行绪t4-2,该处理单元cpu_3则是空闲状态。在执行周期c4期间,对于lba范围r3的执行绪t3会被分为两个子执行绪t3-1和t3-2,该处理单元cpu_0对于lba范围r3执行该子执行绪t3-1,该处理单元cpu_1对于lba范围r4执行该执行绪t2,该处理单元cpu_2对于lba范围r1执行该子执行绪t4-3,该处理单元cpu_3对于lba范围r3执行该子执行绪t3-2,也就是说,属于同一执行绪t3的子执行绪t3-1和t3-2的操作是分别由不同的处理单元cpu_0和cpu_3在同一执行周期c4内所执行。在执行周期c5期间,该多核心处理器1055亦将对于lba范围r2的该执行绪t4的操作分割为三个子执行绪t4-1、t4-2与t4-3,以及该多核心处理器1055将对于lba范围r1的执行绪t5的操作分为两个子执行绪t5-1和t5-2,该处理单元cpu_0对于lba范围r2执行该子执行绪t4-1,该处理单元cpu_1对于lba范围r2执行该子执行绪t4-2,该处理单元cpu_2对于lba范围r2执行该子执行绪t4-3,而该处理单元cpu_3对于lba范围r1执行该子执行绪t5-1,也就是说,对lba范围r2的三个子执行绪t4-1、t4-2与t4-3的各别操作可以在同一个执行周期c5内分别由不同的处理单元所执行。40.在执行周期c6期间,该多核心处理器1055将对于lba范围r4的执行绪t4的操作分割为三个子执行绪t4-1、t4-2和t4-3,该处理单元cpu_0对于lba范围r1执行该子执行绪t5-2,该处理单元cpu_1对于lba范围r4执行该子执行绪t4-1,该处理单元cpu_2对于lba范围r4执行该子执行绪t4-2,而该处理单元cpu_3对于lba范围r4执行该子执行绪t4-3。在执行周期c7期间,该多核心处理器1055将对于lba范围r2的执行绪t5的操作分割为两个子执行绪t5-1和t5-2,也将对于lba范围r3的执行绪t5的操作分割为另外两个子执行绪t5-1t5-2,以及也将对于lba范围r4的执行绪t5的操作分为另外两个子执行绪t5-1和t5-2,该处理单元cpu_0对于lba范围r2执行该子执行绪t5-1,该处理单元cpu_1对于lba范围r2执行该子执行绪t5-2,该处理单元cpu_2对于lba范围r3执行该子执行绪t5-1,该处理单元cpu_3对于lba范围r4执行该子执行绪t5-1。接着,在执行周期c8期间,该处理单元cpu_0和cpu_1变为空闲状态,而该处理单元cpu_2对于lba范围r3执行该子执行绪t5-2,该处理单元cpu_3对于lba范围r4执行该子执行绪t5-2。接着,在执行周期c8之后,完成本实施例中的修剪命令的操作。如此一来,即使某些执行绪可能需要更多的执行周期才能够完成其操作,然而本案中的多核心处理器1055可以将其相应的操作分割为多个不同的子执行绪,该些不同的子执行绪可以由不同的处理单元所分别执行,从而可以显著减少整个修剪命令的执行时间。41.图2是本发明一实施例图1中的该快闪存储器控制器105的操作流程图。倘若大体上可达到相同的结果,并不需要一定照图2所示的流程中的步骤顺序来进行,且第所2示的步骤不一定要连续进行,亦即其他步骤亦可插入其中;详细的流程步骤系说明于下:42.步骤s200:开始;43.步骤s205,对于一特定lba范围执行该执行绪t0,检查该l2p映射表中该lba范围的状态;44.步骤s210:决定使用直接存储器存取服务或nand型快闪存储器服务;如果选择了直接存储器存取服务,则流程进行到步骤s215a;否则,如果选择了nand型快闪存储器服务,则流程进行到步骤s215b;45.步骤s215a:对于该特定lba范围执行该执行绪t1,以配置一动态随机存取存储器的先进先出缓冲器;46.步骤s215b:对于该特定lba范围执行该执行绪t2,以配置一nand型快闪存储器的缓冲器,该缓冲器可以位于快闪存储器110内部;47.步骤s220a:执行该执行绪t3以执行动态随机存取存储器的服务,将该特定lba范围的数据和vpc数据从该快闪存储器110载入到外接于该快闪存储器110与该快闪存储器控制器105的一动态随机存取存储器中,以使该动态随机存取存储器可以缓存相应的lba数据和vpc数据;48.步骤s220b:执行该执行绪t4以执行nand型快闪存储器服务,将该特定lba范围的数据和vpc数据从该快闪存储器110的一或多个储存页或一或多个区块载入到该nand型快闪存储器的缓冲器中,以使nand型快闪存储器的缓冲器可以暂时缓存对应的lba数据和vpc数据;49.步骤s225:执行该执行绪t5以修剪该特定lba范围的lba资讯以更新对应的vpc数据,并接着将更新后的资讯/数据写回该快闪存储器110;50.步骤s230:判断该特定lba范围是否为最后一个lba范围(或最后一个区块);如果该特定lba范围是最后一个lba范围,则流程进行到步骤s235,否则,流程进行到步骤s205,以处理另一个或下一个lba范围;以及51.步骤s235:结束。52.在一些实施例中,因应于多个快闪存储器通道,上述不同的执行绪可以由该多核心处理器1055聚合或合并为单一个执行绪。图3是本发明的一实施例图1中的该快闪存储器控制器105的操作流程图,例如,该快闪存储器110可以包括多个通道(例如8个通道),而该快闪存储器控制器105可以通过不同的通道来分别存取该快闪存储器110,在本实例中,上述执行绪t0、t1与t2可以被合并为一个较大的执行绪mt0,该执行绪t3和t5可以被合并为另一个较大的执行绪mt1,以及分别对于8个不同通道的8组执行绪t4和t5可以分别被合并为8个较大的执行绪mt2~mt9,也就是说,例如,配置存在有8个nand型快闪存储器的先进先出缓冲器以分别缓存从该快闪存储器110的储存空间所读取出的各个lba的数据与vpc数据,而该快闪存储器控制器105可以同时通过该8个通道来分别存取该8个nand型快闪存储器的先进先出缓冲器。倘若大体上可达到相同的结果,并不需要一定照图3所示的流程中的步骤顺序来进行,且图3所示的步骤不一定要连续进行,亦即其他步骤亦可插入其中;详细的流程步骤系说明于下:53.步骤s300:开始;54.步骤s305:对于一特定lba范围执行该合并执行绪mt0,以检查该在l2p映射表中的该特定lba范围的状态、配置动态随机存取存储器的先进先出缓冲器以及配置该nand型快闪存储器的先进先出缓冲器;55.步骤s310:决定使用直接存储器存取服务或nand型快闪存储器服务;如果选择了直接存储器存取服务,则流程进行到步骤s315;否则,如果选择了nand型快闪存储器服务,则流程进行到步骤s320;56.步骤s315:对于该特定lba范围执行该合并执行绪mt1,将该特定lba范围的数据和vpc数据从该快闪存储器110载入到动态随机存取存储器中,动态随机存取存储器可以是外接于该快闪存储器110和该快闪存储器控制器105,使得该动态随机存取存储器可以缓存对应的lba数据和vpc数据,以及修剪该特定lba范围的lba资讯以更新对应的vpc数据,并接着将更新后的资讯/数据写回该快闪存储器110;57.步骤s320:对于该特定lba范围执行该些合并执行绪mt2~mt9,以将该特定lba范围的数据和vpc数据从该快闪存储器110的一或多个储存页或一或多个区块载入至该nand型快闪存储器的缓冲器中,使得该nand型快闪存储器的缓冲器可以暂时缓存对应的lba数据和vpc数据,以及修剪该特定lba范围的lba资讯以更新对应的vpc数据,并接着将更新后的资讯/数据写回该快闪存储器110;58.步骤s325:判断该特定lba范围是否为最后一个lba范围(或最后一个区块);如果特定的lba范围是最后一个lba范围,则流程进行到步骤s330,否则,流程进行到步骤s305,以处理另一个或下一个lba范围;以及59.步骤s330:结束。60.应当注意的是,在一些实施例中,处理单元的数量可以小于所有执行绪的数量。61.图4及图5分别是本发明的其他实施例图1中该快闪存储器控制器105的操作的不同场景例子的流程示意图。倘若大体上可达到相同的结果,并不需要一定照图4与图5所示的流程中的步骤顺序来进行,且图4与图5所示的步骤不一定要连续进行,亦即其他步骤亦可插入其中;详细的流程步骤系说明于下:62.步骤s400:开始;63.步骤s405:对于一特定lba范围执行一子操作,以检查该特定lba范围在该l2p映射表中的状态;64.步骤s410:对于该特定lba范围执行一子操作,以配置或分配直接存储器存取先进先出缓冲器;65.步骤s415:对于该特定lba范围执行一子操作,以配置nand型快闪存储器的缓冲器,该缓冲器可位于快闪存储器110的内部;66.步骤s420:执行一子操作以执行直接存储器存取服务,将该特定lba范围的数据和vpc数据从该快闪存储器110载入到外部耦接于该快闪存储器110和该快闪存储器控制器105的一储存装置中,使得该储存装置可以缓存相应的lba数据和vpc数据;67.步骤s425:执行一子操作以执行nand型快闪存储器服务,将该快闪存储器110的一或多个储存页或一或多个区块中的该特定lba范围的数据和vpc数据载入到该nand型快闪存储器缓冲器中,以便该nand型快闪存储器缓冲器可以暂时缓存相应的lba数据和vpc数据;68.步骤s430:执行一子操作以修剪该特定lba范围的lba资讯以更新对应的vpc数据,接着将更新后的资讯/数据写回该快闪存储器110;69.步骤s435:判断该特定lba范围是否为最后一个lba范围(或最后一区块);如果该特定lba范围是最后一个lba范围,则流程进行到步骤s440,否则,流程进行到步骤s400,处理另一个或下一个lba范围;70.步骤s440:修剪快取存储器中缓存的lba数据;71.步骤s445:修剪操作完成;以及72.步骤s450:结束。73.值得注意的是,步骤s405、步骤s410、步骤s415、步骤s420、步骤s425和步骤s430可以形成为由图1中的该快闪存储器控制器105所操作的一多处理操作;然而,这并非是本发明的限制。此外,步骤s405、步骤s410和步骤s415中的子操作,亦即检查lba范围的状态、分配直接存储器存取先进先出缓冲器与分配nand型快闪存储器缓冲器等,均可以由同一个执行绪或任务所执行。步骤s420和步骤s430中的子操作可以被合并为同一个执行绪中,步骤s425和步骤s430中的子操作可以被合并到另一个单独的执行绪中。这些实施例变型均落入本发明的范畴。74.图5中的流程步骤说明于下:75.步骤s500:开始;76.步骤s505a:对于一特定lba范围执行一子操作,检查该特定lba范围在该l2p映射表中的状态;77.步骤s505b:对于该特定lba范围执行一子操作,以配置直接存储器存取先进先出缓存;78.步骤s505c:对于该特定lba范围执行一子操作,以配置nand型快闪存储器先进先出缓冲器;其中步骤s505a、步骤s505b、步骤s505c的三个子操作可以合并归类到同一个执行绪中;79.步骤s510a:执行一子操作以执行直接存储器存取服务,将该特定lba范围的数据和vpc数据从该快闪存储器110载入到外部耦接于该快闪存储器110和快闪存储器控制器105的一储存装置中,使得该储存装置可以缓存相应的lba数据和vpc数据;80.步骤s510b:执行一子操作以修剪该特定lba范围的lba资讯以更新对应的vpc数据,接着将更新后的资讯/数据写回该快闪存储器110;其中步骤s510a和步骤s510b中的两个子操作可以合并归类到同一个执行绪中;81.步骤s515a:执行一子操作以执行nand型快闪存储器服务,将该特定lba范围的数据和vpc数据从该快闪存储器110的一或多个储存页或一或多个区块载入到该nand型快闪存储器缓冲器中,以便nand型快闪存储器缓冲器可以暂时缓存相应的lba数据和vpc数据;82.步骤s515b:执行一子操作以修剪该特定lba范围的lba资讯以更新对应的vpc数据,接着将更新后的资讯/数据写回该快闪存储器110;其中步骤s515a和步骤s515b中的两个子操作可以合并归类到同一个执行绪中;83.步骤s520:判断该特定lba范围是否为最后一个lba范围(或最后一个区块);如果该特定lba范围是最后一个lba范围,则流程进行到步骤s525,否则,流程进行到步骤s500,处理另一个或下一个lba范围;84.步骤s525:修剪快取存储器所储存的lba数据;85.步骤s530:修剪操作完成;以及86.步骤s535:结束。87.需要说明的是,步骤s515a和步骤s515b可以合并归类到同一个执行绪中,并且可以分别扩展并应用到例如8个通道等多个通道,图5显示出了8组的步骤s515a和步骤s515b,其分别与快闪存储器的8个不同通道有关,然而,这并非是本发明的限制。88.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12当前第1页12
技术特征:
1.一种快闪存储器控制器,用于外接于一主机装置与一快闪存储器,包括有:一第一输入/输出接口电路,耦接在该主机装置与该快闪存储器控制器的一总线之间;该总线;一第二输入/输出接口电路,耦接于该总线与该快闪存储器;以及一多核心处理器,具有多个处理单元,每一个处理单元耦接到该总线,并用来:接收该主机装置所发送并通过该第一输入/输出接口电路和该总线所传输的一修剪命令(trim command)与一逻辑区块地址范围;根据该逻辑区块地址范围的多个部分、该多个处理单元的一数量、该修剪命令的多个操作的多个类型及该多个操作的多个执行周期数中的至少一个,将该修剪命令的该多个操作分成n个执行绪(thread);使用该多个处理单元分别执行该n个执行绪;以及最大化该多个处理单元为忙碌的一执行周期数(number of execution cycles);其中该n个执行绪包括以下执行绪中的至少一个:一第一执行绪,用来检查在该快闪存储器中所储存的一逻辑对实体地址映射表中所记录的该逻辑区块地址范围的一状态;一第二执行绪,用来配置一直接存储器存取先进先出缓冲器;一第三执行绪,用来配置该快闪存储器的一先进先出缓冲器;一第四执行绪,用来执行一直接存储器存取服务,该直接存储器存取服务用来将该逻辑区块地址范围的数据与一对应的有效页计数数据从该快闪存储器载入到该直接存储器存取先进先出缓冲器;一第五执行绪,用来执行一存储器服务,该存储器服务用来将该快闪存储器中的该逻辑区块地址范围的该数据和该对应的有效页计数数据载入到该快闪存储器的该先进先出缓冲器中;以及,一第六执行绪,用来执行一修剪操作,通过将该对应的有效页计数数据依次递减1来以擦除该逻辑区块地址范围的该数据并更新该对应的有效页计数数据。2.如权利要求1所述的快闪存储器控制器,其特征在于,该多个处理单元的一数量系等于n的值,而该多核心处理器用于分别分配一个执行绪给每一个处理单元。3.如权利要求1所述的快闪存储器控制器,其特征在于,该多个处理单元的一数量小于n的值。4.如权利要求1所述的快闪存储器控制器,其特征在于,该多核心处理器系将一个执行绪分割为多个子执行绪,该多个子执行绪会在同一执行周期内由多个不同的处理单元所执行。5.如权利要求4所述的快闪存储器控制器,其特征在于,被分割的该执行绪是该第四执行绪、该第五执行绪或该第六执行绪。6.如权利要求1所述的快闪存储器控制器,其特征在于,该多核心处理器系将一个执行绪分割为多个子执行绪,该多个子执行绪会由单一个处理单元在多个不同的执行周期期间所执行。7.如权利要求6所述的快闪存储器控制器,其特征在于,被分割的该执行绪是该第四执行绪、该第五执行绪或该第六执行绪。8.如权利要求1所述的快闪存储器控制器,其特征在于,该多核心处理器系将多个执行绪合并为一较大的执行绪,该较大的执行绪系由单一个处理单元在连续的执行周期期间所执行。
9.如权利要求8所述的快闪存储器控制器,其特征在于,被合并的该多个执行绪是一组该第一执行绪、该第二执行绪和该第三执行绪的组合、一组该第四执行绪和该第六执行绪的组合或是一组该第五执行绪与该第六执行绪的组合。10.如权利要求1所述的快闪存储器控制器,其特征在于,该快闪存储器控制器通过多个通道耦接于该快闪存储器,并且该多核心处理器将每一个通道的多个执行绪合并为由单一个处理单元在连续执行周期期间所执行的一较大的执行绪,以及被合并的该多个执行绪是一组该第五执行绪与该第六执行绪的组合。11.一种使用于一快闪存储器控制器的方法,该快闪存储器控制器外部耦接于一主机装置与一快闪存储器的方法,该方法包括有:提供一第一输入/输出接口电路,耦接于该主机装置与该快闪存储器控制器的一总线之间;提供一第二输入/输出接口电路,耦接于该总线及该快闪存储器;提供具有多个处理单元的一多核心处理器,每一个处理单元耦接到该总线;接收该主机装置所发送并通过该第一输入/输出接口电路和该总线所传输的一修剪命令与一逻辑区块地址范围;根据该逻辑区块地址范围的多个部分、该多个处理单元的一数量、该修剪命令的多个操作的多个类型及该多个操作的多个执行周期数中的至少一个,将该修剪命令的该多个操作分成n个执行绪(thread);使用该多个处理单元分别执行该n个执行绪;以及最大化该多个处理单元为忙碌的一执行周期数(number of execution cycles);其中该n个执行绪包括以下执行绪中的至少一个:一第一执行绪,用来检查在该快闪存储器中所储存的一逻辑对实体地址映射表中所记录的该逻辑区块地址范围的一状态;一第二执行绪,用来配置一直接存储器存取先进先出缓冲器;一第三执行绪,用来配置该快闪存储器的一先进先出缓冲器;一第四执行绪,用来执行一直接存储器存取服务,该直接存储器存取服务用来将该逻辑区块地址范围的数据与一对应的有效页计数数据从该快闪存储器载入到该直接存储器存取先进先出缓冲器;一第五执行绪,用来执行一存储器服务,该存储器服务用来将该快闪存储器中的该逻辑区块地址范围的该数据和该对应的有效页计数数据载入到该快闪存储器的该先进先出缓冲器中;以及,一第六执行绪,用来执行一修剪操作,通过将该对应的有效页计数数据依次递减1来以擦除该逻辑区块地址范围的该数据并更新该对应的有效页计数数据。12.如权利要求11所述的方法,其特征在于,该多个处理单元的一数量系等于n的值,并且该方法另包括有:分别分配一个执行绪给每一个处理单元。13.如权利要求11所述的方法,其特征在于,该多个处理单元的一数量小于n的值。14.如权利要求11所述的方法,其特征在于,另包括:将一个执行绪分割为多个子执行绪,该多个子执行绪会在同一执行周期内由多个不同的处理单元所执行。15.如权利要求14所述的方法,其特征在于,被分割的该执行绪是该第四执行绪、该第五执行绪或该第六执行绪。
16.如权利要求11所述的方法,其特征在于,另包括:将一个执行绪分割为多个子执行绪,该多个子执行绪会由单一个处理单元在多个不同的执行周期期间所执行。17.如权利要求16所述的方法,其特征在于,被分割的该执行绪是该第四执行绪、该第五执行绪或该第六执行绪。18.如权利要求11所述的方法,其特征在于,另包括:将多个执行绪合并为一较大的执行绪,该较大的执行绪系由单一个处理单元在连续的执行周期期间所执行。19.如权利要求18所述的方法,其特征在于,被合并的该多个执行绪是一组该第一执行绪、该第二执行绪和该第三执行绪的组合、一组该第四执行绪和该第六执行绪的组合或是一组该第五执行绪与该第六执行绪的组合。20.如权利要求11所述的方法,其特征在于,该快闪存储器控制器通过多个通道耦接于该快闪存储器,并且该方法另包括:将每一个通道的多个执行绪合并为由单一个处理单元在连续执行周期期间所执行的一较大的执行绪,以及被合并的该多个执行绪是一组该第五执行绪与该第六执行绪的组合。
技术总结
本发明涉及一种快闪存储器控制器及使用于快闪存储器控制器的方法。该控制器用于外部耦接到主机装置和快闪存储器的方法,包括:提供具有多个处理单元的多核心处理器;接收主机装置发送的修剪命令和逻辑区块地址范围;根据处理单元的数量、多个操作的类型、多个操作的执行周期数以及逻辑区块地址范围的部分中的至少一个,将修剪命令的多个操作分成N个执行绪;使用处理单元分别执行N个执行绪;最大化该多个处理单元为忙碌的一执行周期数。多个处理单元为忙碌的一执行周期数。多个处理单元为忙碌的一执行周期数。
技术研发人员:洪文琦 邱皇智
受保护的技术使用者:慧荣科技股份有限公司
技术研发日:2022.10.28
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:导电特征及半导体元件的制备方法与流程 下一篇:一种基于集成学习的异常订单检测方法