CN109840224B - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN109840224B CN109840224B CN201811352493.XA CN201811352493A CN109840224B CN 109840224 B CN109840224 B CN 109840224B CN 201811352493 A CN201811352493 A CN 201811352493A CN 109840224 B CN109840224 B CN 109840224B
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- delay
- deferred
- controller
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种存储器系统,该存储器系统包括控制器,存储多个任务的开始时间戳,通过基于当前任务的结束时间戳和所述开始时间戳执行延迟检查操作来确定所述多个任务中的延迟任务,并且向所述延迟任务分配优先级。
Description
相关申请的交叉引用
本申请要求于2017年11月29日提交的申请号为10-2017-0161591的韩国申请的优先权,其全部内容通过引用并入本文。
技术领域
各个实施例总体涉及一种存储器系统,且更特别地,涉及一种包括非易失性存储器装置的存储器系统。
背景技术
存储器系统响应于写入请求存储由外部装置提供的数据。存储器系统还可响应于读取请求将存储的数据提供给外部装置。使用存储器系统的外部装置的示例包括计算机、数码相机、移动电话等。存储器系统可在外部装置的制造期间被嵌入在外部装置中,或者可被单独制造,并且然后连接到外部装置。
发明内容
在实施例中,存储器系统可包括:控制器,配置成存储多个任务的开始时间戳,通过基于开始时间戳和当前任务的结束时间戳执行延迟检查操作来确定任务中的延迟任务,并且向延迟任务分配优先级。
在实施例中,一种用于操作存储器系统的方法可包括:存储多个任务的开始时间戳;通过基于开始时间戳和当前任务的结束时间戳执行延迟检查操作来确定任务中的延迟任务;并且向延迟任务分配优先级。
在实施例中,一种存储器装置可包括:存储器装置;以及控制器,适于根据任务的优先级使任务在优先级队列和正常队列中排队,并且控制存储器装置以首先根据优先级队列中任务的排队顺序来执行操作,其次根据正常队列中任务的排队顺序来执行操作,其中在当前完成的任务的结束时间和正常队列中排队的任务的开始时间之间的差比预定时间更长时,控制器将在正常队列中排队的任务移动到优先级队列中并进行排队。
附图说明
通过参照附图描述本发明的各个实施例,本发明的上述和其它特征及优点对本发明所属领域的技术人员将变得更加显而易见,其中:
图1是示出根据实施例的存储器系统的示例的框图。
图2是示出根据实施例的用于操作图1的存储器系统的方法的示图。
图3是示出根据实施例的用于操作图1的存储器系统的方法的示图。
图4是示出根据实施例的用于操作图1的存储器系统的方法的流程图。
图5是示出根据实施例的用于操作图1的存储器系统的方法的流程图。
图6是示出根据实施例的包括固态驱动器(SSD)的数据处理系统的示图。
图7是示出根据实施例的包括存储器系统的数据处理系统的示图。
图8是示出根据实施例的包括存储器系统的数据处理系统的示图。
图9是示出根据实施例的包括存储器系统的网络系统的示图。
图10是示出根据实施例的包括在存储器系统中的非易失性存储器装置的框图。
具体实施方式
在下文中,将通过本发明的示例性实施例参照附图来描述根据本发明的存储器系统及其操作方法。然而,本发明可以不同的形式体现,并不应被解释为限制于本文所阐述的实施例。相反,提供这些实施例以详细地描述本发明至本发明所属领域的技术人员能够实施本发明的技术构思的程度。
将理解的是,本发明的实施例不限于附图中所示的细节,附图不一定按比例绘制,在一些情况下,可能夸大了比例以更清楚地描绘本发明的某些特征。虽然使用了特定术语,但是应当理解,所使用的术语仅用于描述特定实施例,而不旨在限制本发明的范围。
将进一步理解的是,当一个元件被称为“连接至”或“联接至”另一元件时,它可以直接在其它元件上、连接至或联接至其它元件,或可存在一个或多个中间元件。另外,也将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
当短语“……和……中的至少一个”在本文中与项目列表一起使用时,表示列表中的单个项目或列表中项目的任何组合。例如,“A、B和C中的至少一个”是指仅是A或仅是B或仅是C,或A、B和C的任何组合。
本文所使用的术语“或”是指两种或更多种替代物中的任一种,但不是两者或其任何组合。
如本文使用的,单数形式也旨在包括复数形式,除非上下文另有清楚地说明。将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并且不排除一个或多个其它元件的存在或添加。如本文使用的,术语“和/或”包括一个或多个相关的所列项目的任何一种组合和所有组合。
根据本公开,除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在以下描述中,为了提供本发明的彻底理解,阐述了许多具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意到的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有特别说明,否则结合一个实施例所描述的也被称为特征的元件可以被单独使用或与另一实施例的其它元件组合使用。
在下文中,将参照附图详细描述本发明的各个实施例。
图1是示出根据实施例的存储器系统100的框图。
存储器系统100可配置成响应于来自主机装置的写入请求来存储从外部主机装置提供的数据。而且,存储器系统100可配置成响应于来自主机装置的读取请求,将存储的数据提供给主机装置。
存储器系统100可由个人计算机存储卡国际协会(PCMCIA)卡、标准闪存(CF)卡、智能媒体卡、记忆棒、各种多媒体卡(MMC、eMMC、RS-MMC和MMC-Micro)、各种安全数字卡(SD、迷你-SD和微型-SD)、通用闪存(UFS)、固态驱动器(SSD)等来配置。
存储器系统100可包括控制器110和存储器装置120。
控制器110可控制存储器系统100的一般操作。控制器110可访问存储器装置120以处理来自主机装置的请求。而且,无论主机装置的请求如何,控制器110可访问存储器装置120以执行存储器系统100的内部管理操作或后台操作。对存储器装置120的访问可包括写入访问和读取访问。控制器110可通过控制存储器装置120的写入操作和读取操作来访问存储器装置120。控制器110可通过将内部操作以任务单元进行划分来处理内部操作。
控制器110可包括优先级队列PQ、正常队列NQ、时间戳(TS)记录电路111、延迟检查电路112和任务处理电路113。
优先级队列PQ和正常队列NQ可对待由任务处理电路113执行的多个任务进行排队。
任务处理电路113可根据任务的优先级和任务的生成顺序来执行在优先级队列PQ和正常队列NQ中排队的任务。详细地,可在正常队列NQ中排队的任务即正常任务之前执行在优先级队列PQ中排队的任务即高优先级任务。当优先级队列PQ中不存在高优先级任务时,任务处理电路113可执行正常任务。可根据高优先级任务在优先级队列PQ中排队的顺序来顺序地执行这些高优先级任务。可根据正常任务在正常队列NQ中排队的顺序来顺序地执行这些正常任务。可由主机装置分配或可根据控制器110的管理策略来分配任务的优先级。
当连续生成高优先级任务并因此延迟执行比高优先级任务更早生成的正常任务时,正常任务可被置于饥饿状态。如稍后将描述的,延迟检查电路112可通过延迟检查操作来防止任务的饥饿状态,从而防止存储器系统100的性能劣化。
TS记录电路111可存储在优先级队列PQ和正常队列NQ中排队的任务的开始时间戳RTS。开始时间戳RTS可表示对应任务的生成时间。
延迟检查电路112可通过将当前已完成执行的任务的结束时间戳和存储在TS记录电路111中的任务的开始时间戳RTS相比较,对尚未执行的任务执行延迟检查操作。可通过定时器在当前任务的结束时间生成结束时间戳。任务处理电路113可基于延迟检查操作的结果,优先执行尚未执行的任务中的延迟任务。
为了在基本上防止正常任务的饥饿状态,待执行延迟检查操作的任务可限于正常任务。也就是说,延迟检查电路112可通过将当前已完成执行的任务的结束时间戳和正常任务的开始时间戳RTS相比较来执行对正常任务的延迟检查操作。任务处理电路113可基于延迟检查操作的结果,优先执行尚未执行的正常任务中被延迟的正常任务。
详细地,在完成执行当前任务时,延迟检查电路112可通过将当前任务的结束时间戳和正常任务的各个开始时间戳RTS比较来计算正常任务的延迟时间。正常任务的延迟时间可以是当前任务的结束时间戳与对应正常任务的开始时间戳RTS之间的差。
延迟检查电路112可基于延迟时间来确定延迟的正常任务。延迟检查电路112可通过比较延迟时间和延迟阈值时间来确定延迟的正常任务。延迟检查电路112可确定延迟时间超过延迟阈值时间的正常任务被延迟。
任务处理电路113可使延迟的正常任务在优先级队列PQ中排队,并且可根据延迟的正常任务在优先级队列PQ中排队的顺序来执行延迟的正常任务。根据实施例,任务处理电路113可在高优先级任务之前执行通过延迟检查操作被确定为延迟的正常任务。当使延迟的正常任务在优先级队列PQ中排队时,任务处理电路113可从正常队列NQ中删除延迟的正常任务。
如果在延迟检查电路112的延迟检查操作中确定不存在延迟的正常任务,则任务处理电路113可根据任务的优先级和任务排队的顺序来执行在优先级队列PQ和正常队列NQ中排队的任务。
根据实施例,每当任务执行结束时,延迟检查电路112可执行延迟检查操作。当高优先级任务执行结束时或当正常任务执行结束时,可执行延迟检查操作。
根据实施例,在当前任务执行结束时,延迟检查电路112可基于当前任务的结束时间戳和当前任务的开始时间戳RTS选择性地执行延迟检查操作。
详细地,延迟检查电路112可基于当前任务的结束时间戳和当前任务的开始时间戳RTS来计算当前任务的执行时间。当前任务的执行时间可以是当前任务的结束时间戳与当前任务的开始时间戳RTS之间的差。
相继地,延迟检查电路112可通过比较当前任务的执行时间和检查阈值时间来选择性地执行延迟检查操作。详细地,在当前任务的执行时间超过检查阈值时间时,延迟检查电路112可执行延迟检查操作。在当前任务的执行时间未超过检查阈值时间时,延迟检查电路112可跳过延迟检查操作。当跳过延迟检查操作时,任务处理电路113可根据任务在优先级队列PQ和正常队列NQ中的每一个中排队的顺序来执行下一任务。
因此,延迟检查电路112可通过跳过延迟检查操作来调整由于延迟检查操作而引起的额外开销(overhead)。
根据实施例,每当高优先级任务或正常任务执行结束时,延迟检查电路112可根据上述方法确定是否执行延迟检查操作,并且可根据确定来选择性地执行延迟检查操作。
虽然未示出,但控制器110可进一步包括定时器,该定时器确定任务的开始时间戳RTS和结束时间戳,并且将确定的开始时间戳RTS和结束时间戳提供给TS记录电路111和延迟检查电路112。
控制器110可将任务分类为两个优先级等级中的任何一个,即高优先级任务和正常任务。然而,根据实施例,控制器110可通过将任务分类成至少三个优先级等级来执行任务。在这种情况下,通过延迟检查操作被确定为被延迟的任务可被调整为具有高于当前优先级的优先级等级,然后可被执行。
根据控制器110的控制,存储器装置120可存储从控制器110传输的数据,并且可读出所存储的数据并将读出的数据传输到控制器110。
存储器装置120可以是非易失性存储器装置。非易失性存储器装置可包括诸如NAND闪存或NOR闪存的闪速存储器、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)等。
存储器装置120可以是易失性存储器装置。易失性存储器装置可包括动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、静态随机存取存储器(SRAM)等。
虽然在图1中示出了存储器系统100包括一个存储器装置120,但是注意的是,包括在存储器系统100中的存储器装置的数量不限于此。
图2是根据实施例的用于操作存储器系统100的方法的示例。
参照图2,在步骤S21中,TS记录电路111可在生成第一任务T1至第四任务T4时记录其各自的开始时间戳RTS。图2所示的开始时间戳RTS可表示为相对值。第一任务T1和第二任务T2可以是高优先级任务。第三任务T3和第四任务T4可以是正常任务。
在步骤S22中,任务处理电路113可根据第一任务T1的优先级和排队的顺序来执行该第一任务T1。当第一任务T1执行结束时,延迟检查电路112可获得第一任务T1的结束时间戳CTS“28”。
在步骤S23中,延迟检查电路112可对作为正常任务的第三任务T3和第四任务T4执行延迟检查操作。延迟检查电路112可基于第一任务T1的结束时间戳CTS和第三任务T3及第四任务T4的开始时间戳RTS来计算延迟时间DS。延迟时间DS可以是第一任务T1的结束时间戳CTS与第三任务T3和第四任务T4的开始时间戳RTS之间的差。例如,第三任务T3的延迟时间DS可以是“16”,作为第一任务T1的结束时间戳CTS“28”与作为第三任务T3的开始时间戳RTS“12”之间的差。
延迟检查电路112可通过比较延迟时间DS和延迟阈值时间“15”来确定延迟任务。延迟检查电路112可确定延迟时间DS“16”超过延迟阈值时间“15”的第三任务T3被延迟。延迟检查电路112可确定延迟时间DS“13”未超过延迟阈值时间“15”的第四任务T4没有被延迟。
在步骤S24中,任务处理电路113可使延迟的第三任务T3在优先级队列PQ中排队。任务处理电路113可根据第三任务T3在优先级队列PQ中排队的顺序来执行第三任务T3。任务处理电路113可在执行优先级队列PQ中的所有高优先级任务之后执行第四任务T4。
图3是根据实施例的用于操作存储器系统100的方法的示例。
参照图3,在步骤S31中,TS记录电路111可在第一任务T1至第四任务T4生成时记录其各自的开始时间戳RTS。图3所示的开始时间戳RTS可表示为相对值。第一任务T1和第二任务T2可以是高优先级任务。第三任务T3和第四任务T4可以是正常任务。
在步骤S32中,任务处理电路113可根据第一任务T1的优先级及其生成顺序来执行第一任务T1。当第一任务T1执行结束时,延迟检查电路112可获得第一任务T1的结束时间戳CTS“28”。
在步骤S33中,延迟检查电路112可基于第一任务T1的结束时间戳CTS和第一任务T1的开始时间戳RTS来确定是否跳过延迟检查操作。详细地,延迟检查电路112可计算第一任务T1的结束时间戳CTS“28”和第一任务T1的开始时间戳RTS“1”之间的差,即“27”,作为第一任务T1的执行时间。延迟检查电路112可将第一任务T1的执行时间“27”与检查阈值时间“50”进行比较。因为第一任务T1的执行时间“27”未超过检查阈值时间“50”,所以延迟检查电路112可跳过延迟检查操作。
在步骤S34中,任务处理电路113可根据第二任务T2的优先级及其生成顺序来执行第二任务T2。当第二任务T2执行结束时,延迟检查电路112可获得第二任务T2的结束时间戳CTS“70”。
在步骤S35中,延迟检查电路112可基于第二任务T2的结束时间戳CTS和第二任务T2的开始时间戳RTS来确定是否跳过延迟检查操作。详细地,延迟检查电路112可计算第二任务T2的结束时间戳CTS“70”和第二任务T2的开始时间戳RTS“3”之间的差,即“67”,作为第二任务T2的执行时间。延迟检查电路112可将第二任务T2的执行时间“67”与检查阈值时间“50”进行比较。因为第二任务T2的执行时间“67”超过了检查阈值时间“50”,所以延迟检查电路112可执行延迟检查操作。
在步骤S36中,延迟检查电路112可对作为正常任务的第三任务T3和第四任务T4执行延迟检查操作。延迟检查电路112可基于第二任务T2的结束时间戳CTS和第三任务T3及第四任务T4的开始时间戳RTS来计算延迟时间DS。延迟时间DS可以是第二任务T2的结束时间戳CTS与第三任务T3及第四任务T4的开始时间戳RTS之间的差。例如,第三任务T3的延迟时间DS可以是“58”,作为第二任务T2的结束时间戳CTS“70”与作为第三任务T3的开始时间戳RTS“12”之间的差。
延迟检查电路112可通过比较延迟时间DS和延迟阈值时间“15”来确定延迟任务。延迟检查电路112可确定延迟时间DS超过延迟阈值时间“15”的第三任务T3和第四任务T4被延迟。
在步骤S37中,任务处理电路113可将延迟的第三任务T3和第四任务T4在优先级队列PQ中排队。任务处理电路113可根据第三任务T3和第四任务T4在优先级队列PQ中排队的顺序来执行第三任务T3和第四任务T4。
图4是根据实施例的用于操作图1的存储器系统100的方法的流程图的示例。
参照图4,在步骤S110中,TS记录电路111可存储所生成的任务的开始时间戳RTS。
在步骤S120中,任务处理电路113可执行任务。任务处理电路113可根据任务的优先级和任务排队的顺序来执行任务。
在步骤S130中,延迟检查电路112可通过基于开始时间戳RTS和当前任务的结束时间戳执行延迟检查操作来确定延迟任务。当执行延迟检查操作时,延迟检查电路112可通过比较结束时间戳和各个开始时间戳RTS来计算任务的延迟时间,并且可基于延迟时间来确定延迟的任务。延迟检查电路112可通过比较各个延迟时间和延迟阈值时间来确定延迟任务。延迟检查电路112可仅对正常任务执行延迟检查操作。
在步骤S140中,任务处理电路113可将优先级分配给延迟任务。任务处理电路113可使延迟任务在优先级队列PQ中排队,并且可根据延迟任务在优先级队列PQ中排队的顺序来执行延迟任务。
图5是根据实施例的用于操作图1的存储器系统100的方法的流程图的示例。
参照图5,在步骤S210中,TS记录电路111可存储所生成的任务的开始时间戳RTS。
在步骤S220中,任务处理电路113可执行任务。任务处理电路113可根据任务的优先级和任务排队的顺序来执行任务。
在步骤S230中,延迟检查电路112可基于当前任务的结束时间戳和当前任务的开始时间戳RTS来确定是否执行延迟检查操作。延迟检查电路112可通过计算当前任务的结束时间戳与当前任务的开始时间戳RTS之间的差作为当前任务的执行时间,并且比较执行时间和检查阈值时间,来确定是否执行延迟检查操作。在当前任务的执行时间超过检查阈值时间时,延迟检查电路112可确定执行延迟检查操作。在当前任务的执行时间比检查阈值时间短时,延迟检查电路112可确定跳过延迟检查操作。
在步骤S240中,可根据是否将执行延迟检查操作来继续该进程。在确定不执行延迟检查操作的情况下,进程可继续进行至步骤S220。在确定将执行延迟检查操作的情况下,进程可继续进行至步骤S250。
在步骤S250中,延迟检查电路112可通过基于开始时间戳RTS和当前任务的结束时间戳执行延迟检查操作来确定延迟任务。当执行延迟检查操作时,延迟检查电路112可通过比较结束时间戳和各个开始时间戳RTS来计算任务的延迟时间,并且可基于延迟时间来确定延迟任务。延迟检查电路112可通过比较各个延迟时间和延迟阈值时间来确定延迟任务。延迟检查电路112可仅对正常任务执行延迟检查操作。
在步骤S260中,任务处理电路113可将优先级分配给延迟的正常任务。任务处理电路113可使延迟的正常任务在优先级队列PQ中排队,并且可根据延迟任务在优先级队列PQ中排队的顺序来执行延迟任务。
图6是示出根据实施例的包括固态驱动器(SSD)1200的数据处理系统1000的示图。参照图6,数据处理系统1000可包括主机装置1100和SSD 1200。
SSD 1200可包括控制器1210、缓冲存储器装置1220、多个非易失性存储器装置1231至123n、电源1240、信号连接器1250和电源连接器1260。
控制器1210可控制SSD 1200的一般操作。控制器1210可包括图1所示的控制器110。
控制器1210可包括主机接口单元1211、控制单元1212、随机存取存储器1213、错误校正码(ECC)单元1214和存储器接口单元1215。
主机接口单元1211可通过信号连接器1250与主机装置1100交换信号SGL。信号SGL可包括命令、地址、数据等。主机接口单元1211可根据主机装置1100的协议来对主机装置1100和SSD 1200进行接口连接。例如,主机接口单元1211可通过诸如以下的标准接口协议中的任何一种与主机装置1100通信:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-E)和通用闪速存储(UFS)。
控制单元1212可分析和处理从主机装置1100接收的信号SGL。控制单元1212可根据用于驱动SDD 1200的固件或软件来控制内部功能块的操作。随机存取存储器1213可用作驱动这种固件或软件的工作存储器。
ECC单元1214可生成待被传输到非易失性存储器装置1231至123n中的数据的奇偶校验数据。生成的奇偶校验数据可与数据一起存储在非易失性存储器装置1231至123n中。ECC单元1214可基于奇偶校验数据来检测从非易失性存储器装置1231至123n中的至少一个读取的数据中的错误。如果检测到的错误在可校正范围内,ECC单元1214可校正检测到的错误。
存储器接口单元1215可根据控制单元1212的控制将诸如命令和地址的控制信号提供给非易失性存储器装置1231至123n中的至少一个。此外,存储器接口单元1215可根据控制单元1212的控制与非易失性存储器装置1231至123n中的至少一个交换数据。例如,存储器接口单元1215可将存储在缓冲存储器装置1220中的数据提供给非易失性存储器装置1231至123n中的至少一个,或者将从非易失性存储器装置1231至123n中的至少一个读取的数据提供给缓冲存储器装置1220。
缓冲存储器装置1220可临时存储待存储在非易失性存储器装置1231至123n中的至少一个中的数据。进一步地,缓冲存储器装置1220可临时存储从非易失性存储器装置1231至123n中的至少一个读取的数据。被临时存储在缓冲存储器装置1220中的数据可根据控制器1210的控制被传输到主机装置1100或非易失性存储器装置1231至123n中的至少一个。
非易失性存储器装置1231至123n可用作SSD 1200的存储介质。非易失性存储器装置1231至123n可分别通过多个通道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可联接到一个通道。联接到每一个通道的非易失性存储器装置可联接到相同的信号总线和数据总线。
电源1240可将通过电源连接器1260输入的电源PWR提供至SSD1200的内部。电源1240可包括辅助电源1241。当发生突然断电时,辅助电源1241可进行供电以使SSD 1200正常地结束。辅助电源1241可包括大容量电容器。
信号连接器1250可根据主机装置1100和SSD 1200之间的接口连接方案而通过各种类型的连接器配置。
电源连接器1260可根据主机装置1100的供电方案而通过各种类型的连接器配置。
图7是示出根据实施例的包括存储器系统2200的数据处理系统2000的示图。参照图7,数据处理系统2000可包括主机装置2100和存储器系统2200。
主机装置2100可以诸如印制电路板的板形式来配置。虽然未示出,但主机装置2100可包括用于执行主机装置的功能的内部功能块。
主机装置2100可包括诸如插座、插槽或连接器的连接端子2110。存储器系统2200可被安装到连接端子2110。
存储器系统2200可以诸如印制电路板的板形式来配置。存储器系统2200可表示存储器模块或存储卡。存储器系统2200可包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231和2232、电源管理集成电路(PMIC)2240和连接端子2250。
控制器2210可控制存储器系统2200的一般操作。控制器2210可以与图6所示的控制器1210相同的方式来配置。
缓冲存储器装置2220可临时存储待被存储在非易失性存储器装置2231和2232中的数据。进一步地,缓冲存储器装置2220可临时存储从非易失性存储器装置2231和2232读取的数据。被临时存储在缓冲存储器装置2220中的数据可根据控制器2210的控制被传输到主机装置2100或非易失性存储器装置2231和2232。
非易失性存储器装置2231和2232可用作存储器系统2200的存储介质。
PMIC 2240可将通过连接端子2250输入的电力提供到存储器系统2200的内部。PMIC 2240可根据控制器2210的控制来管理存储器系统2200的电力。
连接端子2250可联接到主机装置2100的连接端子2110。通过连接端子2250,诸如命令、地址、数据等的信号和电力可在主机装置2100与存储器系统2200之间传输。连接端子2250可根据主机装置2100与存储器系统2200之间的接口连接方案而被配置成各种类型。连接端子2250可被设置在存储器系统2200的任何一侧。
图8是示出根据实施例的包括存储器系统3200的数据处理系统3000的示图。参照图8,数据处理系统3000可包括主机装置3100和存储器系统3200。
主机装置3100可以诸如印制电路板的板形式来配置。虽然未示出,但主机装置3100可包括用于执行主机装置的功能的内部功能块。
存储器系统3200可以表面安装型封装的形式来配置。存储器系统3200可通过焊球3250安装到主机装置3100。存储器系统3200可包括控制器3210、缓冲存储器装置3220和非易失性存储器装置3230。
控制器3210可控制存储器系统3200的一般操作。控制器3210可以与图6所示的控制器1210相同的方式来配置。
缓冲存储器装置3220可临时存储待被存储在非易失性存储器装置3230中的数据。进一步地,缓冲存储器装置3220可临时存储从非易失性存储器装置3230读取的数据。被临时存储在缓冲存储器装置3220中的数据可根据控制器3210的控制被传输到主机装置3100或非易失性存储器装置3230。
非易失性存储器装置3230可用作存储器系统3200的存储介质。
图9是示出根据实施例的包括有存储器系统4200的网络系统4000的框图。参照图9,网络系统4000可包括通过网络4500联接的服务器系统4300和多个客户端系统4410至4430。
服务器系统4300可响应于来自多个客户端系统4410至4430的请求来服务数据。例如,服务器系统4300可存储从多个客户端系统4410至4430提供的数据。再例如,服务器系统4300可将数据提供给多个客户端系统4410至4430。
服务器系统4300可包括主机装置4100和存储器系统4200。存储器系统4200可由图1所示的存储器系统100、图6所示的存储器系统1200、图7所示的存储器系统2200或图8所示的存储器系统3200来配置。
图10是示出根据实施例的包括在存储器系统中的非易失性存储器装置300的框图。参照图10,非易失性存储器装置300可包括存储器单元阵列310、行解码器320、数据读取/写入块330、列解码器340、电压发生器350和控制逻辑360。
存储器单元阵列310可包括设置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域中的存储器单元MC。
行解码器320可通过字线WL1至WLm而与存储器单元阵列310联接。行解码器320可根据控制逻辑360的控制来进行操作。行解码器320可对从外部装置(未示出)提供的地址进行解码。行解码器320可基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器320可将从电压发生器350提供的字线电压提供给字线WL1至WLm。
数据读取/写入块330可通过位线BL1至BLn而与存储器单元阵列310联接。数据读取/写入块330可包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块330可根据控制逻辑360的控制来操作。数据读取/写入块330可根据操作模式用作写入驱动器或读出放大器。例如,数据读取/写入块330可用作写入驱动器,在写入操作中将从外部装置提供的数据存储在存储器单元阵列310中。又例如,数据读取/写入块330可用作读出放大器,在读取操作中从存储器单元阵列310读出数据。
列解码器340可根据控制逻辑360的控制来进行操作。列解码器340可对由外部装置提供的地址进行解码。列解码器340可基于解码结果将分别对应于位线BL1至BLn的数据读取/写入块330的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压发生器350可生成将用于非易失性存储器装置300的内部操作的电压。通过电压发生器350生成的电压可被施加到存储器单元阵列310的存储器单元。例如,可将在编程操作中生成的编程电压施加到待执行编程操作的存储器单元的字线。又例如,在擦除操作中生成的擦除电压可被施加到待执行擦除操作的存储器单元的阱区域。再例如,在读取操作中生成的读取电压可被施加到待执行读取操作的存储器单元的字线。
控制逻辑360可基于从外部装置提供的控制信号来控制非易失性存储器装置300的一般操作。例如,控制逻辑360可控制非易失性存储器装置300的操作,例如非易失性存储器装置300的读取操作、写入操作和擦除操作。
尽管上面已经描述了各个实施例,但是本领域技术人员将理解,所描述的实施例仅为示例。因此,本文所描述的存储器系统及其操作方法不应基于所描述的实施例而受到限制。
Claims (17)
1.一种存储器系统,包括:
控制器,存储多个任务的开始时间戳,通过基于当前任务的结束时间戳和所述开始时间戳选择性地执行延迟检查操作来确定所述多个任务中的延迟任务,并且向所述延迟任务分配优先级,
其中所述控制器通过计算所述当前任务的所述结束时间戳与所述开始时间戳之间的差作为所述当前任务的执行时间,并且比较所述执行时间和检查阈值时间来确定是否执行所述延迟检查操作。
2.根据权利要求1所述的存储器系统,其中当执行所述延迟检查操作时,所述控制器通过将所述结束时间戳和各个开始时间戳相比较来计算各个任务的延迟时间,并且基于所述延迟时间来确定所述延迟任务。
3.根据权利要求2所述的存储器系统,其中所述控制器通过将各个延迟时间和延迟阈值时间相比较来确定所述延迟任务。
4.根据权利要求1所述的存储器系统,其中所述控制器包括优先级队列,所述控制器将所述延迟任务插入到所述优先级队列中,并且根据所述延迟任务在所述优先级队列中排队的顺序来执行所述延迟任务。
5.根据权利要求4所述的存储器系统,其中所述控制器进一步包括正常队列,并且所述控制器优先于在所述正常队列中排队的正常任务,执行在所述优先级队列中排队的一个或多个高优先级任务。
6.根据权利要求5所述的存储器系统,其中当执行所述延迟检查操作时,所述控制器确定所述正常任务中的所述延迟任务。
7.根据权利要求1所述的存储器系统,其中当所述执行时间超过所述检查阈值时间时,所述控制器执行所述延迟检查操作。
8.根据权利要求1所述的存储器系统,其中当所述执行时间比所述检查阈值时间短时,所述控制器跳过所述延迟检查操作。
9.一种操作存储器系统的方法,包括:
存储多个任务的开始时间戳;
通过计算当前任务的结束时间戳与开始时间戳之间的差作为所述当前任务的执行时间,并且比较所述执行时间和检查阈值时间来确定是否执行延迟检查操作;
通过基于所述当前任务的所述结束时间戳和所述开始时间戳选择性地执行所述延迟检查操作来确定所述多个任务中的延迟任务;并且
向所述延迟任务分配优先级。
10.根据权利要求9所述的方法,其中执行所述延迟检查操作包括:
通过比较所述结束时间戳和各个开始时间戳来计算各个任务的延迟时间;并且
基于所述延迟时间确定所述延迟任务。
11.根据权利要求10所述的方法,其中确定所述延迟任务包括:
通过比较各个延迟时间和延迟阈值时间来确定所述延迟任务。
12.根据权利要求9所述的方法,进一步包括:
将所述延迟任务插入优先级队列中;并且
根据所述延迟任务在所述优先级队列中排队的顺序来执行所述延迟任务。
13.根据权利要求12所述的方法,进一步包括:
优先于在正常队列中排队的正常任务,执行在所述优先级队列中排队的一个或多个高优先级任务。
14.根据权利要求13所述的方法,其中确定所述延迟任务包括:
确定所述正常任务中的所述延迟任务。
15.根据权利要求9所述的方法,其中选择性地执行所述延迟检查操作包括:
当所述执行时间超过所述检查阈值时间时,执行所述延迟检查操作。
16.根据权利要求9所述的方法,其中选择性地执行所述延迟检查操作包括:
当所述执行时间比所述检查阈值时间短时,跳过所述延迟检查操作。
17.一种存储器装置,包括:
存储器装置;以及
控制器,根据任务的优先级使所述任务在优先级队列和正常队列中排队,并且控制所述存储器装置以首先根据所述任务在所述优先级队列中排队的顺序来执行操作,其次根据所述任务在所述正常队列中排队的顺序来执行操作,
其中在当前完成的任务的结束时间与在所述正常队列中排队的所述任务的开始时间之间的差比预定时间长时,所述控制器对所述正常队列中排队的任务选择性地执行延迟检查操作,并将在所述正常队列中排队的任务移动到所述优先级队列中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170161591A KR102527925B1 (ko) | 2017-11-29 | 2017-11-29 | 메모리 시스템 및 그것의 동작 방법 |
KR10-2017-0161591 | 2017-11-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840224A CN109840224A (zh) | 2019-06-04 |
CN109840224B true CN109840224B (zh) | 2023-10-20 |
Family
ID=66633162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811352493.XA Active CN109840224B (zh) | 2017-11-29 | 2018-11-14 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10838766B2 (zh) |
KR (1) | KR102527925B1 (zh) |
CN (1) | CN109840224B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6993580B2 (ja) * | 2018-08-03 | 2022-01-13 | 日本電信電話株式会社 | 制御システム及び制御方法 |
CN111934808B (zh) * | 2020-09-17 | 2021-02-02 | 中国航空制造技术研究院 | 基于高精度授时网络的多执行器协调控制系统和方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517867A (zh) * | 2003-01-07 | 2004-08-04 | 松下电器产业株式会社 | 进程调度装置、进程调度方法、程序以及记录媒体 |
CN1960315A (zh) * | 2005-10-31 | 2007-05-09 | 康佳集团股份有限公司 | 流媒体去抖动方法 |
CN101030181A (zh) * | 2006-02-28 | 2007-09-05 | 三星电子株式会社 | 按优先级的次序处理非易失性存储器的操作的设备和方法 |
CN102819505A (zh) * | 2011-06-01 | 2012-12-12 | 国际商业机器公司 | 光纤信道输入/输出数据路由系统和方法 |
CN103294533A (zh) * | 2012-10-30 | 2013-09-11 | 北京安天电子设备有限公司 | 任务流控制方法及系统 |
CN103366801A (zh) * | 2012-03-29 | 2013-10-23 | 三星电子株式会社 | 存储器装置及其操作方法 |
CN103716324A (zh) * | 2013-12-31 | 2014-04-09 | 重庆邮电大学 | 一种基于多智能体虚拟矿井风险行为实现系统及方法 |
CN104052926A (zh) * | 2013-03-14 | 2014-09-17 | Juki株式会社 | 图像处理装置以及图像处理方法 |
CN104137081A (zh) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | 偏移在先的高等待时间操作的存储器重排序队列 |
CN104346307A (zh) * | 2013-07-26 | 2015-02-11 | 英飞凌科技股份有限公司 | 用于直接存储器访问传输的系统和方法 |
WO2015030645A1 (en) * | 2013-08-29 | 2015-03-05 | Telefonaktiebolaget L M Ericsson (Publ) | Methods, computer program, computer program product and indexing systems for indexing or updating index |
CN106155781A (zh) * | 2015-04-08 | 2016-11-23 | 中国科学院软件研究所 | 一种多智能体平台中的实时任务调度方法 |
CN107066201A (zh) * | 2016-02-11 | 2017-08-18 | 爱思开海力士有限公司 | 数据存储装置及其方法 |
CN107122317A (zh) * | 2016-02-24 | 2017-09-01 | 爱思开海力士有限公司 | 数据存储装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000056989A (ja) * | 1998-08-03 | 2000-02-25 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | タスク設計方法 |
JP2004234643A (ja) * | 2003-01-07 | 2004-08-19 | Matsushita Electric Ind Co Ltd | プロセススケジューリング装置、プロセススケジューリング方法、プロセススケジューリングのためのプログラム、及びプロセススケジューリングのためのプログラムを記録した記録媒体 |
US8397236B2 (en) * | 2007-08-24 | 2013-03-12 | Virtualmetrix, Inc. | Credit based performance managment of computer systems |
JP5402226B2 (ja) * | 2009-05-13 | 2014-01-29 | 富士通株式会社 | 管理装置、情報処理システム、情報処理システムの制御プログラムおよび情報処理システムの制御方法 |
CN101833989A (zh) | 2010-05-27 | 2010-09-15 | 华为技术有限公司 | 多接口固态硬盘及其处理方法和系统 |
JP5613570B2 (ja) * | 2011-01-11 | 2014-10-22 | 株式会社日立システムズ | バッチジョブ遅延警告自動発報システムおよび自動発報方法、ならびにそのためのプログラム |
JP6191301B2 (ja) * | 2013-07-22 | 2017-09-06 | 富士通株式会社 | 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム |
KR101555927B1 (ko) * | 2013-09-16 | 2015-09-30 | (주)토탈소프트뱅크 | 프로세스 구간의 소요시간 측정을 통한 작업 지연 원인 분석방법 |
US9645744B2 (en) * | 2014-07-22 | 2017-05-09 | Sandisk Technologies Llc | Suspending and resuming non-volatile memory operations |
WO2018112344A1 (en) * | 2016-12-15 | 2018-06-21 | Ab Initio Technology Llc | Heterogeneous event queue |
-
2017
- 2017-11-29 KR KR1020170161591A patent/KR102527925B1/ko active IP Right Grant
-
2018
- 2018-06-21 US US16/014,703 patent/US10838766B2/en active Active
- 2018-11-14 CN CN201811352493.XA patent/CN109840224B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517867A (zh) * | 2003-01-07 | 2004-08-04 | 松下电器产业株式会社 | 进程调度装置、进程调度方法、程序以及记录媒体 |
CN1960315A (zh) * | 2005-10-31 | 2007-05-09 | 康佳集团股份有限公司 | 流媒体去抖动方法 |
CN101030181A (zh) * | 2006-02-28 | 2007-09-05 | 三星电子株式会社 | 按优先级的次序处理非易失性存储器的操作的设备和方法 |
CN102819505A (zh) * | 2011-06-01 | 2012-12-12 | 国际商业机器公司 | 光纤信道输入/输出数据路由系统和方法 |
CN104137081A (zh) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | 偏移在先的高等待时间操作的存储器重排序队列 |
CN103366801A (zh) * | 2012-03-29 | 2013-10-23 | 三星电子株式会社 | 存储器装置及其操作方法 |
CN103294533A (zh) * | 2012-10-30 | 2013-09-11 | 北京安天电子设备有限公司 | 任务流控制方法及系统 |
CN104052926A (zh) * | 2013-03-14 | 2014-09-17 | Juki株式会社 | 图像处理装置以及图像处理方法 |
CN104346307A (zh) * | 2013-07-26 | 2015-02-11 | 英飞凌科技股份有限公司 | 用于直接存储器访问传输的系统和方法 |
WO2015030645A1 (en) * | 2013-08-29 | 2015-03-05 | Telefonaktiebolaget L M Ericsson (Publ) | Methods, computer program, computer program product and indexing systems for indexing or updating index |
CN103716324A (zh) * | 2013-12-31 | 2014-04-09 | 重庆邮电大学 | 一种基于多智能体虚拟矿井风险行为实现系统及方法 |
CN106155781A (zh) * | 2015-04-08 | 2016-11-23 | 中国科学院软件研究所 | 一种多智能体平台中的实时任务调度方法 |
CN107066201A (zh) * | 2016-02-11 | 2017-08-18 | 爱思开海力士有限公司 | 数据存储装置及其方法 |
CN107122317A (zh) * | 2016-02-24 | 2017-09-01 | 爱思开海力士有限公司 | 数据存储装置 |
Also Published As
Publication number | Publication date |
---|---|
US10838766B2 (en) | 2020-11-17 |
KR102527925B1 (ko) | 2023-05-03 |
US20190163534A1 (en) | 2019-05-30 |
CN109840224A (zh) | 2019-06-04 |
KR20190062917A (ko) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838653B2 (en) | Electronic device and operating method thereof | |
CN110197696B (zh) | 电子装置、非暂时性计算机可读存储介质以及控制方法 | |
US20200042238A1 (en) | Data storage device, method of operating the same, and storage system having the same | |
US10698830B2 (en) | Obtaining data in a nonvolatile memory device through the use of descriptors | |
US10754552B2 (en) | Data storage device and operating method thereof | |
CN109960466B (zh) | 存储器系统及其操作方法 | |
US20230127204A1 (en) | Controller of memory system and operating method thereof | |
US11803307B2 (en) | Memory system and operating method thereof | |
CN109840224B (zh) | 存储器系统及其操作方法 | |
US11036493B2 (en) | Memory system and operating method thereof | |
US20200125285A1 (en) | Memory system and operating method thereof | |
KR102469098B1 (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치 | |
US11188485B2 (en) | Memory system and operating method thereof | |
KR102475688B1 (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그것의 동작 방법 | |
CN108417232B (zh) | 数据存储装置及其操作方法 | |
US11467910B2 (en) | Memory system re-performing access operation and operating method thereof | |
CN111352856B (zh) | 存储器系统及其操作方法 | |
US10776008B2 (en) | Memory system and operating method thereof | |
CN107863120B (zh) | 数据存储装置及其操作方法 | |
CN111309647B (zh) | 存储装置 | |
US20210223956A1 (en) | Memory system and data processing system including the same | |
US20200051647A1 (en) | Memory system with memory region read counts and a memory group read count and operating method thereof | |
US20190188144A1 (en) | Memory system and operating method thereof | |
CN111324302A (zh) | 数据存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |