CN114995745A - 藉助于多阶段存储器映射队列以进行存取控制的方法以及相关设备 - Google Patents

藉助于多阶段存储器映射队列以进行存取控制的方法以及相关设备 Download PDF

Info

Publication number
CN114995745A
CN114995745A CN202210204015.4A CN202210204015A CN114995745A CN 114995745 A CN114995745 A CN 114995745A CN 202210204015 A CN202210204015 A CN 202210204015A CN 114995745 A CN114995745 A CN 114995745A
Authority
CN
China
Prior art keywords
memory
queue
controller
sub
processing circuit
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.)
Pending
Application number
CN202210204015.4A
Other languages
English (en)
Inventor
易城
汪开红
许胜一
曾依玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN114995745A publication Critical patent/CN114995745A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供藉助于一多阶段存储器映射队列以对一存储器装置进行存取控制的方法及相关设备。该方法包含:从一主机装置接收一第一主机指令;以及响应第一主机指令,利用控制器内的处理电路透过控制器的控制逻辑电路向非挥发性存储器发送一第一操作指令,并触发控制器内的一第一组次级处理电路透过多阶段存储器映射队列来操作和互动,以供为主机装置存取第一数据,其中处理电路以及第一组次级处理电路共享多阶段存储器映射队列,且使用多阶段存储器映射队列作为分别与多个阶段相关联的多个链接讯息队列,以供为链接处理架构进行讯息排队。

Description

藉助于多阶段存储器映射队列以进行存取控制的方法以及相 关设备
技术领域
本发明系相关于存储器控制,尤指一种藉助于多阶段(multi-phase)存储器映射(memory-mapped)队列以进行存取控制的方法以及相关设备诸如一存储器装置、其一存储器控制器以及一系统单芯片(system-on-chip,SoC)集成电路(integrated circuit,IC)等。
背景技术
存储器技术的发展使得各种可携式和非可携式存储器装置,诸如分别符合SD/MMC、CF、MS以及XD规格的记忆卡以及别符合UFS与EMMC规格的嵌入式储存装置等的广泛应用成为可能。改善这些存储器装置的存取控制一直是本领域需要解决的问题。
NAND快闪存储器可包括单阶细胞(single-level cell,简称SLC)以及多阶细胞(multiple-level cell,简称MLC)快闪存储器。在SLC快闪存储器中,用作为一存储器细胞(memory cell)的每个晶体管可以具有分别与逻辑值0和1对应的两个电荷值中的任一电荷值。相较之下,在MLC快闪存储器中,用作为一存储器细胞的每个晶体管的储存能力可以被充分地利用。MLC快闪存储器中的晶体管可以由比SLC快闪存储器中的晶体管更高的电压来驱动,并且不同的电压准位可以被利用来记录至少两位元的资讯(例如00、01、11或10)。理论上,MLC快闪存储器的记录密度可以达到SLC快闪存储器的记录密度的至少两倍,因此NAND快闪存储器制造商是偏好MLC快闪存储器的。
MLC快闪存储器的低成本以及大容量意味着它比SLC快闪存储器更可能被应用在存储器装置中。然而,MLC快闪存储器确实存在着不稳定的问题。为了确保对存储器装置中的快闪存储器的存取控制可以满足所要求的规格,快闪存储器的控制器可以配备有某些管理机制以妥善地管理数据存取。
然而,即使具备上述管理机制的存储器装置也可能具有某些缺陷。举例来说,硬件架构内多个功能方块,诸如硬件引擎,可以实现以供进行预定的处理操作。由于可藉由增加硬件引擎的数量以获得更可靠的结果,因此讯息队列的数量可能会对应地增加。如此一来,硬件架构可能变得非常复杂,而导致相关成本增加。因此,需要一种新颖的方法和相关的架构,以在没有副作用或较不可能带来副作用之状况下避免上述问题发生。
发明内容
本发明之一目的在于提供一种藉助于多阶段存储器映射队列以进行存取控制的方法以及相关设备诸如一存储器装置、其一存储器控制器、一SoC IC等,以解决上述的问题。
本发明的至少一实施例揭示了一种藉助于一多阶段(multi-phase)存储器映射(memory-mapped)队列以对一存储器装置进行存取控制的方法,该方法是可应用于(applicable to)该存储器装置的一控制器,该存储器装置包含该控制器和一非挥发性(non-volatile,NV)存储器,该非挥发性存储器包含至少一非挥发性存储器元件,该方法包含:从一主机装置接收一第一主机指令,其中该第一主机指令指出在一第一逻辑地址存取第一数据;以及响应该第一主机指令,利用该控制器内的一处理电路透过该控制器的一控制逻辑电路向该非挥发性存储器发送一第一操作指令,并触发该控制器内的一第一组次级(secondary)处理电路透过该多阶段存储器映射队列来操作和互动,以供为该主机装置存取该第一数据,其中该第一操作指令携带有与该第一逻辑地址相关联的一第一物理地址,以供指出该非挥发性存储器中的一储存位置,且该处理电路以及该第一组次级处理电路共享该多阶段存储器映射队列,并且使用该多阶段存储器映射队列作为分别与多个阶段相关联的多个链接(chained)讯息队列,以供为包含该处理电路以及该第一组次级处理电路的一链接处理架构进行讯息排队(message queuing)。
除了上述方法,本发明还提供一种存储器装置,且该存储器装置包含一非挥发性(non-volatile,NV)存储器以及一控制器。该非挥发性(non-volatile,NV)存储器用以储存资讯,其中该非挥发性存储器包含至少一非挥发性存储器元件。该控制器耦接至该非挥发性存储器,用以控制该存储器装置的操作,其中该控制器包含一处理电路、多个次级(secondary)处理电路以及一多阶段存储器映射队列。该处理电路用以依据来自一主机装置的多个主机指令来控制该控制器,以容许该主机装置透过该控制器存取该非挥发性存储器。该多个次级(secondary)处理电路,用以操作以作为多个硬件引擎。该多阶段存储器映射队列,耦接至该处理电路以及该多个次级处理电路,用以为该处理电路以及该多个次级处理电路进行讯息排队(message queuing)。例如:该控制器从该主机装置接收一第一主机指令,其中该第一主机指令指出在一第一逻辑地址存取第一数据,且该第一主机指令是该多个主机指令的其中之一;以及响应该第一主机指令,该控制器利用该处理电路透过该控制器的一控制逻辑电路向该非挥发性存储器发送一第一操作指令,并触发该多个次级处理电路中的一第一组次级处理电路透过该多阶段存储器映射队列来操作和互动,以供为该主机装置存取该第一数据,其中该第一操作指令携带有与该第一逻辑地址相关联的一第一物理地址,以供指出该非挥发性存储器中的一储存位置,且该处理电路以及该第一组次级处理电路共享该多阶段存储器映射队列,并且使用该多阶段存储器映射队列作为分别与多个阶段相关联的多个链接(chained)讯息队列,以供为包含该处理电路以及该第一组次级处理电路的一链接处理架构进行讯息排队。
除了上述方法,本发明还提供一种用于一存储器装置的控制器,该存储器装置包含该控制器以及一非挥发性存储器,该非挥发性存储器包含至少一非挥发性存储器元件,该控制器包含一处理电路、多个次级处理电路以及一多阶段存储器映射队列。该处理电路用以依据来自一主机装置的多个主机指令来控制该控制器,以容许该主机装置透过该控制器存取该非挥发性存储器。该多个次级处理电路,用以操作以作为多个硬件引擎。该多阶段存储器映射队列,耦接至该处理电路以及该多个次级处理电路,用以为该处理电路以及该多个次级处理电路进行讯息排队。例如:该控制器从该主机装置接收一第一主机指令,其中该第一主机指令指出在一第一逻辑地址存取第一数据,且该第一主机指令是该多个主机指令的其中之一;以及响应该第一主机指令,该控制器利用该处理电路透过该控制器的一控制逻辑电路向该非挥发性存储器发送一第一操作指令,并触发该多个次级处理电路中的一第一组次级处理电路透过该多阶段存储器映射队列来操作和互动,以供为该主机装置存取该第一数据,其中该第一操作指令携带有与该第一逻辑地址相关联的一第一物理地址,以供指出该非挥发性存储器中的一储存位置,且该处理电路以及该第一组次级处理电路共享该多阶段存储器映射队列,并且使用该多阶段存储器映射队列作为分别与多个阶段相关联的多个链接(chained)讯息队列,以供为包含该处理电路以及该第一组次级处理电路的一链接处理架构进行讯息排队。
本发明的方法和相关设备能确保该存储器装置能在各种情况下正确地操作,其中上述设备的例子包含:控制器以及存储器装置等,另外,本发明提供的方法及相关设备可以在没有副作用或较不可能带来副作用之状况下解决相关技术问题,因此可以降低相关成本。另外,本发明提供的方法及相关设备藉助于多阶段存储器映射队列,可以确保存储器装置对主机装置的实时响应(real-time response),进而提高整体性能。
附图说明
图1是依据本发明一实施例的一电子装置的示意图。
图2于其下半部依据本发明一实施例绘示用于进行一存储器装置诸如图1的存储器装置的存取控制的一多阶段(multi-phase)队列控制方案,其中为了更好的理解,图2于其上半部绘示一单阶段队列控制方案。
图3依据本发明一实施例绘示该方法的一传出队列尾部(outgoing queue tail,OQT)远端更新控制方案。
图4依据本发明一实施例绘示该方法的一阶段检查控制方案。
图5依据本发明一实施例绘示该方法的一混合控制方案。
图6依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的一系列操作前的一初始状态。
图7依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第一操作后的一第一中间状态。
图8依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第二操作后的一第二中间状态。
图9依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第三操作后的一第三中间状态。
图10依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第四操作后的一第四中间状态。
图11依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第五操作后的一第五中间状态。
图12依据本发明一实施例绘示该方法的一队列拆分与合并控制方案。
图13依据本发明一实施例绘示如图12所示的该队列拆分与合并控制方案的某些实施细节。
图14依据本发明一实施例绘示该方法的一多存储器域(multi-memory-domain)属性控制方案。
图15依据本发明另一实施例绘示该方法的一队列拆分与合并控制方案。
图16A依据本发明一实施例绘示该方法的一流程图的一第一部分。
图16B绘示该方法的该流程图的一第二部分。
符号说明
10:电子系统
50:主机装置
52:处理器
54:电源供应电路
100:存储器装置
110:存储器控制器
112:微处理器
112M:只读存储器(ROM)
112C:程式代码
114:控制逻辑电路
115:引擎电路
116:随机存取存储器(RAM)
116T:暂时表
118:传输接口电路
120:非挥发性(NV)存储器
122-1,122-2~122-N:非挥发性(NV)存储器元件
122T:非暂时表
MMRBUF,MMRBUF(0),MMRBUF(1),
MMRBUF(2),MMRBUF(3):存储器映射环形缓冲器
IQH0,IQH1,IQH2,IQH3:传入队列头部
OQT0,OQT1,OQT2,OQT3:传出队列尾部
S10,S11,S12,S12A,S12B,S12C,
S12D,S12E,S12F,S16,S17,S17A,
S17B,S17C,S17D,S17E,S17F:步骤
具体实施方式
本发明的实施例提供了一种藉助于一多阶段(multi-phase)存储器映射(memory-mapped)队列诸如一多阶段存储器映射讯息队列以对一存储器装置进行存取控制的方法以及相关设备。该设备可以代表其内实现有该多阶段存储器映射队列(诸如一或多个处理器/处理器核心与多个硬件引擎之间的讯息传递机制)的任一特定应用集成电路(application-specific integrated circuit,ASIC)产品,但本发明不以此为限。该设备可以包含具备集成电路(integrated circuit,IC)的电子装置的至少一部分(例如一部分或全部),在该集成电路中可实现该多阶段存储器映射队列。举例来说,该设备可以包含该电子设备的一部分诸如该存储器装置、其控制器等。又例如,该设备可以包含整个电子设备。又例如,该装置可以包含一系统单芯片(system-on-chip,SoC)集成电路诸如包括该控制器的系统单芯片集成电路。另外,本发明的某些控制方案提供以下特征:
(1)该多阶段存储器映射队列可以包含在一单存储器映射环形缓冲器内实现的多个链接讯息队列,其中该多个链接讯息队列中的每一链接讯息队列与分别对应于该多个链接讯息队列的多个阶段中的一阶段相关联,且该多阶段存储器映射队列对每一处理器或引擎用于排队(en-queuing)操作或离队(de-queuing)操作是透明的(transparent);
(2)该多阶段存储器映射队列的架构可予以变化,举例来说,本发明的方法和设备可以藉由在任一给定阶段拆分以及合并讯息流(message flow)来改变该多阶段存储器映射队列的一或多个讯息流;
(3)该多阶段存储器映射队列可以藉由弹性的多存储器域(multi-memorydomain)存取属性配置来设置或建立,举例来说,针对需要实现存储器映射队列的各种数据结构,本发明方法和设备可以动态地配置与存储器域相关联的存储器存取属性,诸如门铃、队列条目(entry)、队列主体(body)和数据缓冲器,其中存储器域存取属性可以在每队列基础(per queue base)或每讯息基础(per message base)上进行配置;以及
(4)针对存储器映射队列分布,本发明的方法和设备可以将引擎中的任一传入队列(incoming queue)或传出队列(outgoing queue)配置为链接或非链接队列,其中一请求讯息队列可以产生多个链接讯息和多个完成(completion)讯息到多个链接传出队列和多个完成传出队列;
其中上列特征中的一或多个可以被组合,但本发明不以此为限。藉由使用该多阶段存储器映射队列,本发明的方法和相关设备可以在没有副作用或较不可能带来副作用之状况下解决相关技术问题。
图1是依据本发明一实施例的一电子系统10的示意图,其中电子系统10包含一主机装置50和一存储器装置100。主机装置50可以包含至少一处理器(例如,一或多个处理器),其可被统称为处理器52,并且主机装置50可以进一步包含耦接到处理器52的一电源供应电路54。处理器52是被配置以控制主机装置50的操作,电源供应电路54是被配置以向处理器52和存储器装置100提供电源,并且向存储器装置100输出一或多个驱动电压。存储器装置100可以被配置以提供储存空间给主机装置50,并且从主机装置50取得一或多个驱动电压以作为存储器装置100的电源。主机装置50的例子可以包含(但不限于):一多功能行动电话、一可穿戴装置、一平板电脑以及个人电脑诸如桌上型电脑和笔记型电脑。存储器装置100的例子可以包含(但不限于):一可携式存储器装置(例如符合SD/MMC、CF、MS或XD规范的记忆卡)、一固态硬碟(solid state drives,SSD)以及各种不同的嵌入式储存装置诸如符合通用快闪存储器储存(Universal Flash Storage,简称UFS)标准或嵌入式MMC(eMMC)标准的嵌入式储存装置。依据本实施例,存储器装置100可以包含一控制器诸如一存储器控制器110和一非挥发性(non-volatile,简称NV)存储器120,其中,该控制器是被配置以控制存储器装置100的操作并存取NV存储器120,且NV存储器120是被配置以储存资讯。NV存储器120可以包含至少一NV存储器元件(例如一或多个NV存储器元件),诸如多个NV存储器元件122-1、122-2…以及122-N,其中「N」可以代表大于1的一正整数。举例来说,NV存储器120可以是快闪存储器,且多个NV存储器元件122-1、122-2,…以及122-N可以是多个快闪存储器芯片(chip)或多个快闪存储器裸晶(die),但是本发明不以此为限。另外,图1所示架构中的电子装置10、存储器装置100及该控制器诸如存储器控制器110可分别作为如前面所述之具备IC的该电子装置、该存储器装置及其控制器的例子。
如图1所示,存储器控制器110可以包含一处理电路诸如一微处理器112、一储存单元诸如一只读存储器(read-only memory,简称ROM)112M、一控制逻辑电路114、一引擎电路115(例如一数位信号处理(digital signal processing,DSP)引擎)、一随机存取存储器(random access memory,简称RAM)116以及一传输接口电路118,其中上列元件可以藉由一总线(bus)相互耦接。引擎电路115可以包含多个次级处理电路,并且该多个次级处理电路可以是硬件功能块(functional block),其可称为硬件引擎。这些硬件引擎诸如引擎#1、#2等可以包含一直接存储器存取(direct memory access,DMA)引擎、一压缩引擎、一解压缩引擎、一编码引擎(例如一编码器)、一解码引擎(例如一解码器)、一随机化引擎(例如一随机化器)以及一去随机化引擎(例如一去随机化器),但本发明不以此为限。例如该编码引擎(例如该编码器)以及该解码引擎(例如该解码器)可以整合到同一模块(诸如一编码与解码引擎)中,该随机化引擎(例如该随机化器)以及该去随机化引擎(例如该去随机化器)可以整合到同一模块(诸如一随机化与去随机化引擎)中,及/或该压缩引擎以及该解压缩引擎可以整合到同一模块(诸如一压缩与解压缩引擎)中。根据某些实施例,引擎电路115的一或多个子电路可以整合到控制逻辑电路114中。
在引擎电路115中,包含有该编码引擎(例如该编码器)和该解码引擎(例如该解码器)的一数据保护电路可以被配置以保护数据及/或进行错误更正(error correction),尤其,可以被配置为分别进行编码和解码操作,并且该随机化引擎(例如该随机化器)和该去随机化引擎(例如该去随机化器)可以被配置以分别进行随机化和去随机化操作。另外,该压缩引擎和该解压缩引擎可以被配置为分别进行压缩和解压缩操作。此外,该DMA引擎可以被配置为进行DMA操作。例如,在如主机装置50所请求来进行写入数据的期间,该DMA引擎可以藉由传输接口电路118对主机装置50中的某一存储器的一第一主机侧存储器区域进行DMA操作,以藉由传输接口电路118接收来自该第一主机侧存储器区域的数据。又例如,在如主机装置50所请求来进行读取数据的期间,该DMA引擎可藉由传输接口电路118对主机装置50中的该存储器的一第二主机侧存储器区域(其可以与第一主机侧存储器区域相同或不同)进行DMA操作,以藉由传输接口电路118将数据传送(例如回传(return))到该第二主机侧存储器区域。
RAM 116由一静态随机存取存储器(static random access memory,SRAM)实现,但本发明不以此为限。RAM 116可以被配置为向存储器控制器110提供内部储存空间。例如,RAM 116可以作为一缓冲存储器以缓冲数据。尤其RAM 116可以包含用作多阶段存储器映射队列MPMMQ的一存储器区域(例如一预定存储器区域),其可以作为上述多阶段存储器映射队列的例子,但本发明不以此为限。例如,多阶段存储器映射队列MPMMQ可以在存储器控制器110内的另一存储器中实现。另外,本实施例的ROM 112M用以储存程式代码112C,而微处理器112用以执行程序代码112C以控制对NV存储器120的存取。请注意,在某些例子中,程序代码112C可以储存在RAM 116或任何形式的存储器中。另外,传输接口电路118可符合一特定通信标准(诸如串列高级技术附件(Serial Advanced Technology Attachment,SATA)标准、通用串列总线(Universal Serial Bus,USB)标准、快捷外设组件互联(PeripheralComponent Interconnect Express,PCIe)标准、嵌入式多媒体卡(Embedded MultimediaCard,eMMC)标准、或通用快闪储存(Universal Flash Storage,UFS)标准),并且可以依据该特定通信标准进行通信。
在本实施例中,主机装置50可以藉由向存储器控制器110发送主机指令和对应的逻辑地址来存取存储器装置100。存储器控制器110接收主机指令及逻辑地址,并将主机指令转换为存储器操作指令(可简称为操作指令),并以操作指令控制NV存储器以对NV存储器120中具有物理地址的存储器单元(例如数据页)进行读取、写入/编程(programing)等,其中物理地址可与逻辑地址相关联。当存储器控制器110对多个NV存储器元件122-1、122-2、...和122-N中的任一NV存储器元件122-n(符号「n」可以代表在区间[1,N]中的任一整数)进行一抹除(erase)操作时,NV存储器装置122-n的多个区块中的至少一区块将被抹除,其中该多个区块中的每一区块可以包含多个页(例如数据页),以及存取操作(例如读取或写入)可以在一页或多页上进行。
关于存储器装置100的内部控制的一些实施细节可进一步描述如下。根据某些实施例,该处理电路诸如微处理器112可根据来自主机装置50的多个主机指令来控制存储器控制器110,以容许主机装置50藉由存储器控制器110来存取NV存储器120。存储器控制器110可以为主机装置50将数据储存到NV存储器120中,响应于来自主机装置50的一主机指令(例如该多个主机指令的其中之一)读取储存的数据,并且将从NV存储器120读取的数据提供给主机装置50。在NV存储器120诸如快闪存储器中,上述至少一个NV存储器元件(例如多个NV存储器元件122-1、122-2、...和122-N)可以包括多个区块,诸如NV存储器元件122-1中的第一组物理区块、NV存储器元件122-2中的第二组物理区块、...以及NV存储器元件122-N中的第N组物理区块。存储器控制器110可以被设计为适当地管理该多个区块诸如这些组物理区块(亦即,该第一组至该第N组物理区块;可称为N个物理区块组)。
存储器控制器110可以在至少一表诸如RAM 116中的至少一暂时表(例如一或多个暂时表)以及NV存储器120中的至少一非暂时表(例如一或多个非暂时表)记录、维护及/或更新针对区块管理的区块管理资讯,其中上述至少一暂时表可以统称为暂时表116T,而上述至少一非暂时表可以统称为非暂时表122T。暂时表116T可以包含非暂时表122T的至少一部分(例如一部分或全部)的暂时版本。举例来说,非暂时表122T可以包含至少一逻辑到物理(logical-to-physical,简称L2P)地址映射表(例如一个或多个L2P地址映射表),以供记录多个逻辑地址(例如指出多个逻辑区块的逻辑区块地址(logical block addresses,LBAs)以及指出在该多个逻辑区块的任一个逻辑区块中的多个逻辑页的逻辑页地址(logical page addresses,LPAs))以及多个物理地址(例如指出多个物理区块的物理区块地址(physical block addresses,PBAs)以及指出在该多个物理区块的任一个物理区块中的多个物理页的物理页地址(physical page addresses,PPAs))之间的映射关系,并且暂时表116T可以包含上述至少一L2P地址映射表的至少一子表(sub-table)(例如一或多个子表)的一暂时版本,其中存储器控制器110(例如微处理器112)可在主机装置50的主机端储存空间(例如逻辑地址)与存储器装置100内的NV存储器120的装置端储存空间(例如物理地址)之间进行双向地址转换,以便为主机装置50存取数据。为了更好的理解,非暂时表122T可被绘示于NV存储器元件122-1中,但本发明不以此为限。例如,非暂时表122T可以储存在多个NV存储器元件122-1、122-2、...和122-N中的一或多个NV存储器元件中。另外,当需要时,存储器控制器110可将暂时表116T备份至NV存储器120(例如,多个NV存储器元件122-1、122-2、...和122-N中的一或多个NV存储器元件)中的非暂时表122T,并且存储器控制器110可以将非暂时表122T的至少一部分(例如部分或全部)加载到RAM 116中以成为暂时表116T以供快速参考。
图2于其下半部依据本发明一实施例绘示用于进行一存储器装置诸如图1的存储器装置的存取控制的一多阶段(multi-phase)队列控制方案,其中为了更好的理解,图2于其上半部绘示一单阶段队列控制方案。该方法可以应用于图1所示的架构,例如,电子设备10、存储器设备100、存储器控制器110和微处理器112以及引擎电路115和多阶段存储器映射队列MPMMQ。存储器控制器110内的多阶段存储器映射队列MPMMQ可以通过一存储器映射环形缓冲器MMRBUF来实现,其中存储器映射环形缓冲器MMRBUF可以位于RAM 116内,但是本发明不限于此。
如图2上半部分所示,一讯息链可以用一处理器、多个引擎以及多个存储器映射环形缓冲器来实现,并且对于该多个存储器映射环形缓冲器的存储器映射环形缓冲器计数(count)等于四的情况,多个存储器映射环形缓冲器可以包含四个存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3),其中存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3)的每一个都可以视为一单阶段存储器映射环形缓冲器。当引擎计数增加时,存储器映射环形缓冲器计数可以对应地增加。因此,在引擎计数大于一百的情况下,存储器映射环形缓冲器计数也大于一百,这可能会导致相关成本增加。
如图2下半部分所示,本发明的方法和设备可以利用一单一存储器映射环形缓冲器诸如存储器映射环形缓冲器MMRBUF来代替该多个存储器映射环形缓冲器诸如存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)等,其中存储器映射环形缓冲器MMRBUF可以被视为一多阶段存储器映射环形缓冲器。存储器映射环形缓冲器MMRBUF可以包含分别对应多个阶段{Phase(x)}的多个子队列{SQ(x)},诸如分别对应阶段Phase(0)、Phase(1)、Phase(2)以及Phase(3)的子队列SQ(0)、SQ(1)、SQ(2)以及SQ(3)(分别标示为「Phase(0)的子队列SQ(0)」、「Phase(1)的子队列SQ(1)」、「Phase(2)的子队列SQ(2)」以及「Phase(3)的子队列SQ(3)」以求简明)。请注意,符号「x」可以表示落在区间[0,(X-1)]内的任何非负整数,符号「X」可以表示该多个子队列{SQ(x)}的子队列计数。当引擎计数增加时,子队列计数X可以对应地增加,但存储器映射环形缓冲器计数可以非常小,更具体地来说,可以等于1。因此,在引擎计数大于一百的情况下,存储器映射环形缓冲器计数非常有限,且因此可以节省相关成本。
虽然存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3)中的局部缓冲器可以分别用与子队列SQ(0)、SQ(1)、SQ(2)以及SQ(3)相同或相似的阴影型样(shading pattern)来说明,以供指出从处理器和引擎输出的讯息的储存位置,存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3)中的局部缓冲器不等同于子队列SQ(0)、SQ(1)、SQ(2)以及SQ(3)。请注意,在图2上半部分所示的单阶段队列控制方案中,存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3)的每一存储器映射环形缓冲器的整体总是存在的。另外,存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3)会独立地运行。例如,存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3)中的一个的操作不会影响存储器映射环形缓冲器MMRBUF(0)、MMRBUF(1)、MMRBUF(2)以及MMRBUF(3)中的另一个的操作。
该多阶段队列控制方案中的处理器和引擎#1、#2等可以分别代表在图1所示的架构中的该处理电路诸如微处理器112和次级处理电路诸如硬件引擎(或引擎#1、#2等),但本发明不以此为限。依据某些实施例,该多阶段队列控制方案中的处理器和引擎#1、#2等可以被取代为一或多个处理器/处理器核心及/或硬件引擎的各种组合中的任一组合,诸如一处理器核心和多个硬件引擎的组合、多个处理器核心和多个硬件引擎的组合、多个处理器核心的组合、多个硬件引擎的组合等。
针对多阶段存储器映射队列MPMMQ(例如存储器映射环形缓冲器MMRBUF)的设计规则的某些实现细节可以描述如下。根据某些实施例,对于该多阶段队列控制方案中的处理器或引擎#1、#2等中的任一引擎,相关联的传出队列(例如该多个子队列{SQ(x)}中的一个)永远不会外溢(overflow)。这是有保证的,因为当有至少一条目提前从传入队列离队(例如从传入队列输出)时,条目才会被排队至传出队列(例如,输入到传出队列)中。也就是说,该处理器或该任一引擎都可以按照以下规则运行:
(1)该处理器或该任一引擎的一传出队列尾部(outgoing queue tail,OQT)绝不能越过该处理器或该任一引擎的传入队列头部(incoming queue head,IQH);以及
(2)传入队列头部IQH(x)绝不能越过一上游处理器或引擎的传出队列尾部OQT(x-1)。针对以上两条规则中的前者:如果x>0,则引擎#x的传出队列尾部OQT(x)永远不会超过引擎#x的传入队列头部IQH(x);否则,当x=0时,该处理器的传出队列尾部OQT(0)永远不会超过该处理器的传入队列头部IQH(0)。尤其,该处理器或该任一引擎可以直接比较本地传出队列尾部和传入队列头部,诸如传出队列尾部OQT(x)以及传入队列头部IQH(x)。另外,针对以上两条规则中的后者:如果x>1,则引擎#x的传入队列头部IQH(x)永远不会超过上游引擎#(x-1)的传出队列尾部OQT(x-1);如果x=1,则引擎#1的传入队列头部IQH(1)永远不会越过上游处理器的传出队列尾部OQT(0);否则,当x=0时,该处理器的传入队列头部IQH(0)永远不会越过上游引擎#(X-1)的传出队列尾部OQT(X-1)。尤其,该处理器或该任一引擎可以依据分别在图3至5中示出的实施例中的任一个来操作。在后续的实施例中,传入队列头部IQH(x)诸如传入队列头部(简称IQH)IQH(0)、IQH(1)等以及传出队列尾部OQT(x)诸如传出队列尾部(简称OQT)OQT(0)、OQT(1)等可以分别写成IQH IQHx诸如IQH IQH0、IQH1等以及OQT OQTx诸如OQT OQT0、OQT1等,以求简明。
图3依据本发明一实施例绘示该方法的一传出队列尾远端更新控制方案。该处理器或该任一引擎可以远端地将OQT写入链中的下游引擎,而链接架构中的下游引擎可以将远端更新的OQT(例如该处理器或该任一引擎写入的OQT)作为传入队列尾部与下游引擎的本地IQH进行比较。举例来说:
(1)该处理器可以远端地将OQT OQT0写入链中的下游引擎#1,而链接架构中的下游引擎#1可以将远端更新的OQT OQT0作为传入队列尾部与下游引擎#1的本地IQH IQH1进行比较;
(2)引擎#1可以远端地将OQT OQT1写入链中下游引擎#2,而链接架构中的下游引擎#2可以将远端更新的OQT OQT1作为传入队列尾部与下游引擎#2的本地IQH IQH2进行比较;
(3)引擎#2可以远端地将OQT OQT2写入链中下游引擎#3,而链接架构中的下游引擎#3可以将远端更新的OQT OQT2作为传入队列尾部与下游引擎#3的本地IQH IQH3进行比较;以及
(4)引擎#3可以远端地将OQT OQT3写入链中下游处理器,而链接架构中的下游处理器可以将远端更新的OQT OQT3作为传入队列尾部与下游处理器的本地IQH IQH0进行比较;
但本发明不以此为限。为了简明起见,于本实施例中类似的内容在此不重复赘述。
图4依据本发明一实施例绘示该方法的一阶段检查控制方案。对于发送到链中传出队列的每条传出讯息,都有一阶段栏位,并且唯一的阶段栏位值与每一处理器或引擎相关联。尤其,该处理器或该任一引擎可以从链中的上游引擎读取传入队列条目,直到阶段栏位值改变,其中该读取可以是被征求的(solicited)(例如藉由中断(interrupt))或非被征求的(unsolicited)。如图4所示,被发送到传出队列诸如子队列SQ(0)的每条传出讯息的阶段栏位值可以等于「01」(标示为「Phase=‘01’」以求简明),被发送到传出队列诸如子队列SQ(1)的每条传出讯息的阶段栏位值可以等于「10」(标示为「Phase=‘10’」以求简明),被发送到传出队列诸如子队列SQ(2)的每条传出讯息的阶段栏位值可以等于「11」(标示为「Phase=‘11’」以求简明),并且被发送到传出队列诸如子队列SQ(3)的每条传出讯息的阶段栏位值可以等于「00」(标示为「Phase=‘00’」以求简明),但本发明不以此为限。为了简明起见,于本实施例中类似的内容在此不重复赘述。
图5依据本发明一实施例绘示该方法的一混合控制方案。该处理器或该任一引擎可以根据图3所示的OQT远端更新控制方案和图4所示的阶段检查控制方案中的一或多个控制方案进行操作。例如,该处理器和引擎#1、#2和#3的某些操作可以符合图4所示的OQT远端更新控制方案,并且胎处理器和引擎#1、#2和#3中的所有引擎可以依据图4所示的阶段检查控制方案进行操作,但本发明不以此为限。为了简明起见,于本实施例中类似的内容在此不重复赘述。
图6依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的一系列操作前的一初始状态。如图6所示,所有IQH和所有OQT都被设置为存储器映射环形缓冲器MMRBUF中的相同地址指标(pointer)(例如一起始地址)。此初始状态是任一队列或任一引擎中没有任何尚未处置的(outstanding)讯息(例如请求或完成)的逻辑状态,且该处理器保留所有条目。在这种状态下,除了处理器的OQT(例如OQT OQT0),没有任何可以移动的头部或尾部指标。
图7依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第一操作后的一第一中间状态。在该一或多个第一操作中,该处理器将四个条目排队(en-queue)至传到引擎#1的传出队列诸如子队列SQ(0)。
图8依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第二操作后的一第二中间状态。在该一或多个第二操作中,引擎#1从传入队列诸如子队列SQ(0)中离队(de-queue)三个条目以取得这三个条目,并将两个条目排队至传到引擎#2的传出队列中诸如子队列SQ(1)。
图9依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第三操作后的一第三中间状态。在该一或多个第三操作中,该处理器将十二个条目的排队至传到引擎#1的传出队列诸如子队列SQ(0),引擎#1从传入队列诸如子队列SQ(0)中离队(de-queue)十个条目以取得这十个条目,并将八个条目排队至传到引擎#2的输出队列诸如子队列SQ(1),并且引擎#2从传入队列诸如子队列SQ(1)中离队(de-queue)八个条目以取得这八个条目,并将五个条目排队至传到引擎#3的输出队列诸如子队列SQ(2)。
图10依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第四操作后的一第四中间状态。在该一或多个第四操作中,引擎#3从传入队列诸如子队列SQ(2)中离队四个条目以取得这四个条目,并将三个条目排队至传到该处理器的传出队列诸如子队列SQ(3)。
图11依据本发明一实施例绘示如图2所示的该多阶段队列控制方案的上述一系列操作中的一或多个第五操作后的一第五中间状态。在该一或多个第五操作中,该处理器从传入队列诸如子队列SQ(3)中离队两个条目以取得这两个条目。例如,该处理器或该任一引擎可以进行上述一系列操作中的额外操作。
图12依据本发明一实施例绘示该方法的一队列拆分与合并控制方案。为了更好的理解,子队列和相关局部讯息流的某些变化可以如图12中所示用一逻辑视图来解释。举例来说,子队列SQ(0)可视为一请求队列Q10,而子队列SQ(3)可视为一完成队列Q17。由于引擎#2被拆分为Y个引擎(例如符号「Y」可以代表大于一的正整数)诸如三个引擎#2.0、#2.1以及#2.2,引擎#1以及#2之间的局部讯息流在逻辑上可以拆分为三个局部讯息流,因此子队列SQ(1)可以在逻辑上拆分为对应的子队列诸如链接请求队列Q11~Q13,其中链接请求队列Q11~Q13的一些队列条目可以分别被标示为「0」、「1」以及「2」以供指出它们在从引擎#1到三个引擎#2.0、#2.1以及#2.2的三个局部讯息流上。相似地,由于引擎#2被拆分为Y个引擎诸如三个引擎#2.0、#2.1以及#2.2,引擎#2和#3之间的局部讯息流在逻辑上可以拆分为三个局部讯息流,因此子队列SQ(2)可以在逻辑上拆分为对应的子队列诸如链接请求队列Q14~Q16,其中链接请求队列Q14~Q16的一些队列条目可以分别被标示为「0」、「1」以及「2」以供指出它们在从三个引擎#2.0、#2.1以及#2.2到引擎#3的三个局部讯息流上。为了简明起见,于本实施例中类似的内容在此不重复赘述。
图13依据本发明一实施例绘示如图12所示的该队列拆分与合并控制方案的某些实施细节。和队列拆分与合并无关的子队列SQ(0)以及SQ(3)可以分别视为请求队列Q10和完成队列Q17。针对要实现队列拆分与合并,子队列SQ(1)可以被视为链接请求队列Q11~Q13的组合,而子队列SQ(2)可以被视为链接请求队列Q14~Q16的组合。链接请求队列Q11~Q13的各自的队列条目,诸如具有与子队列SQ(1)对应的阴影型样的队列条目中的分别标示为「0」、「1」以及「2」的队列条目,可以按照一预定的顺序(例如从引擎#1到三个引擎#2.0、#2.1以及#2.2的三个局部讯息流的顺序)轮流排列。此外,链接请求队列Q14~Q16的各自的队列条目,诸如具有与子队列SQ(2)对应的阴影型样的队列条目中的分别标示为「0」、「1」以及「2」的队列条目,可以按照一预定的顺序(例如从三个引擎#2.0、#2.1以及#2.2到引擎#3的三个局部讯息流的顺序)轮流排列。为了简明起见,于本实施例中类似的内容在此不重复赘述。
依据某些实施例,在拆分为1:Y的情况下(例如,引擎#2被拆分为Y个引擎),拆分阶段之前和合并阶段之后的队列条目可以被间隔(Y-1)。因此,这些阶段的队列尾部和队列头部是呈现着Y的增加量的。另外,对于拆分队列,队列尾部和队列头部也应该是呈现着Y的增加量的,但对于和同一个子队列SQ(x)相对应的拆分队列中的任何两个拆分队列,该任何两个拆分队列的各自的偏移量彼此不同。以图13所示的架构为例,具有和子队列SQ(0)相对应的阴影型样的队列条目和具有和子队列SQ(3)对应的阴影型样的队列条目可以被间隔(3-1)=2(例如,这些队列条目中的两个连续队列条目之间有两个空队列元素),并且OQT OQT(0)、OQT(1.0)、OQT(1.1)、OQT(1.2)、OQT(2.0)、OQT(2.1)、OQT(2.2)以及OQT(3)(分别标示为「OQT0」、「OQT1.0」、「OQT1.1」、「OQT1.2」、「OQT2.0」、「OQT2.1」、「OQT2.2」以及「OQT3」)中的任一OQT或IQH IQH(0)、IQH(1)、IQH(2.0)、IQH(2.1)、IQH(2.2)、IQH(3.0)、IQH(3.1)以及IQH(3.2)(分别标示为「IQH0」、「IQH1」、「IQH2.0」、「IQH2.1」、「IQH2.2」、「IQH3.0」、「IQH3.1」以及「IQH3.2」)中的任一IQH可以用三的增加量来增加。为了简明起见,于本实施例中类似的内容在此不重复赘述。
在该队列拆分与合并控制方案中,引擎#2可以作为在所有处理/次级处理电路中的被拆分的一处理/次级处理电路的例子,但本发明不以此为限。根据某些实施例,被拆分的该处理/次级处理电路及/或被拆分的处理/次级处理电路的数量可予以变化。举例来说,被拆分的该处理/次级处理电路可以是该处理器或引擎#1、#2等中的另一引擎。再举例来说,可能有不止一个处理/次级处理电路被拆分。
图14依据本发明一实施例绘示该方法的一多存储器域(multi-memory-domain)属性控制方案。一组存储器域可以用平面地址来映射,以及针对一处理/次级处理电路(诸如一处理器/处理器核心、一硬件(HW)引擎等)如何存取用于一组存储器域中的任何两个存储器域的属性的方式可能彼此不同。举例来说,该组存储器域可以包含:
(1)一门铃暂存器域(doorbell register domain,标示为「暂存器域」以求简明),其中处理/次级处理电路(例如处理器核心或硬件引擎)可以存取该门铃暂存器域中的门铃暂存器(标示为「门铃」以求简明)以供用于链接讯息;
(2)一讯息标头域(message header domain)(也可以称为队列条目域,因为讯息标头形成队列条目),其中处理/次级处理电路(例如处理器核心或硬件引擎)可以存取该讯息标头域中的队列条目诸如讯息标头(例如一请求讯息标头以及一完成讯息标头),并且用于这些队列条目的这个存储器域是藉由每队列暂存器(per queue register)在每队列基础(标示为「每队列」以求简明)上配置,举例来说,该讯息标头域的存储器可以是一同调域一级高速缓存(coherent domain level-one cache,L1$)、一同调域二级高速缓存(coherent domain level-two cache,L2$)等中的任一个或者非同调(non-coherent)数据/讯息存储器中的任一个;
(3)一讯息主体域(message body domain),其中处理/次级处理电路(例如处理器核心或硬件引擎)可以存取讯息主体域中的讯息主体(例如一请求讯息主体以及一完成讯息主体),并且用于一讯息的该讯息主体域应藉由讯息标头来设置或配置在每讯息基础(标示为「每讯息」以求简明)上,举例来说,该讯息主体域的存储器可以是一同调域一级高速缓存(L1$)、一同调域二级高速缓存(L2$)等中的任一个或者非同调数据/讯息存储器中的任一个;以及
(4)一讯息数据缓冲域,其中处理/次级处理电路(例如处理器核心或硬件引擎)可以存取该讯息数据缓冲域中的讯息数据缓冲器(例如多个来源数据缓冲器以及多个目的地(destination)数据缓冲器),以及该讯息数据缓冲域应设置或配置在一讯息标头或一讯息主体中的每分散收集列表(scatter gather list,简称SGL)元素基础(per SGL elementbase)(标示为「每SGL元素」以求简明)上;
但本发明不以此为限。举例来说,该请求讯息标头可以包含指向相关完成队列的一完成队列号(标示为「完成Q#」以求简明)、指向该请求讯息主体的一请求讯息主体地址、指向该完成讯息主体的一完成讯息主体地址、指向来源该多个数据缓冲器的一SGL地址、以及指向该多个目的地数据缓冲器的一SGL地址;并且该请求讯息主体可以包含指向该多个来源数据缓冲器的该SGL地址和指向该多个目的地数据缓冲器的该SGL地址。
图15依据本发明另一实施例绘示该方法的一队列拆分与合并控制方案。与图13所示的架构相比,某些局部讯息流可以被进一步拆分为更多的局部讯息流,且相关联的子队列也可以被对应地拆分。例如,子队列SQ(0)可以被视为请求队列Q10、Q20以及Q30的组合,子队列SQ(1)可以被视为链接请求队列Q11~Q13、Q21以及Q31的组合,且子队列SQ(2)可以被视为链接请求队列Q14~Q16以及完成队列Q22和Q32的组合,其中与队列拆分和合并无关的子队列SQ(3)可以被视为完成队列Q17。为了简明起见,于本实施例中类似的内容在此不重复赘述。
图16A以及图16B依据本发明一实施例分别绘示该方法的一流程图的一第一部分以及一第二部分,其中节点A以及B可以指出图16A和图16B的各个局部工作流程之间的连接。该方法可应用于图1所示的架构(例如电子装置10、存储器装置100、存储器控制器110及微处理器112),且可由存储器装置100的存储器控制器110(例如微处理器112)来执行。在如主机装置50所请求的一第一类存取操作(例如数据读取和数据写入中的一个)的期间,该处理电路诸如微处理器112和一第一组次级处理电路诸如引擎#1、#2等中的对应于第一类存取操作的一组引擎可共享多阶段存储器映射队列MPMMQ(例如存储器映射环形缓冲器MMRBUF),并使用多阶段存储器映射队列MPMMQ分别作为与多个阶段相关联的多个链接讯息队列(例如分别对应于该多个阶段{Phase(x)}的该多个子队列{SQ(x)},配置用于第一类存取操作),以供为包含该处理电路和该第一组次级处理电路的一链接处理架构进行讯息排队。另外,在如主机装置50所请求的一第二类存取操作(例如数据读取和数据写入其的另一个)的期间,该处理电路诸如微处理器112和一第二组次级处理电路诸如引擎#1、#2等中的对应于第二类存取操作的一组引擎可以共享多阶段存储器映射队列MPMMQ(例如存储器映射环形缓冲器MMRBUF),并且使用多阶段存储器映射队列MPMMQ分别作为与多个其它阶段相关联的多个其它链接讯息队列(例如分别对应于该多个阶段{Phase(x)}的该多个子队列{SQ(x)},配置用于第二类存取操作),以供为包含该处理电路和该第二组次级处理电路的另一链接处理架构进行讯息排队。
在步骤S10中,存储器控制器110(例如微处理器112)可判断是否接收到一主机指令(例如该多个主机指令中的一个)。若是,则进入步骤S11;若否,则进入步骤S10。
在步骤S11中,存储器控制器110(例如微处理器112)可判断该主机指令(亦即,如步骤S10中检测到的刚刚接收到的主机指令)是否为一主机读取指令。若是,则进入步骤S12;若否,则进入步骤S16。该主机读取指令可以指出在一第一逻辑地址读取数据。
在步骤S12中,响应该主机读取指令(亦即,如步骤S10和S11中检测到的刚刚接收到的主机读取指令),存储器控制器110(例如微处理器112)可以藉由控制逻辑电路114发送一第一操作指令(例如上述操作指令中的一个)诸如一读取指令至NV存储器120,并触发一第一组引擎藉由多阶段存储器映射队列MPMMQ(例如存储器映射环形缓冲器MMRBUF)来操作和互动,以供为主机装置50读取数据(例如,如主机装置50所请求的待读取数据),其中,该第一操作指令诸如该读取指令可以载有(carry)与该第一逻辑地址相关联的一第一物理地址,用以指出NV存储器120内的某一储存位置,且该第一物理地址可由存储器控制器110(例如微处理器112)依据上述至少一L2P地址映射表来决定。
例如,该第一组引擎可以包含该去随机化引擎(例如该去随机化器)、该解码引擎(例如该解码器)、该解压缩引擎和该DMA引擎,并且该处理电路诸如微处理器112以及某些次级处理电路诸如这些引擎可以形成类似于图2下半部分所示的多阶段队列控制方案的一链接处理架构,其中该多阶段队列控制方案中的该处理器和引擎#1、#2等可以分别代表微处理器112以及分别按照以上所列顺序排列的这些引擎,但本发明不以此为限。根据某些实施例,该第一组引擎和相关联的链接处理架构可予以变化。
在步骤S12A中,存储器控制器110(例如微处理器112)可以利用控制逻辑电路114来对NV存储器120进行读取,尤其,在NV存储器120的一个位置(例如从该第一物理地址开始的一物理地址范围内的某一物理地址)读取以从NV存储器120获得读取数据。
在步骤S12B中,存储器控制器110(例如微处理器112)可利用该去随机化引擎(例如该去随机化器)对该读取数据进行去随机化诸如去随机化操作以产生去随机化数据。
在步骤S12C中,存储器控制器110(例如微处理器112)可利用该解码引擎(例如该解码器)对该去随机化的数据进行解码诸如解码操作,以产生解码数据(例如错误修正后的数据诸如依据同位(parity)数据修正后的数据)。
在步骤S12D中,存储器控制器110(例如微处理器112)可利用该解压缩引擎对该解码数据进行解压缩诸如解压缩操作,以产生解压缩数据作为用来以被发送(例如回传)到主机装置50的数据的局部数据。
在步骤S12E中,存储器控制器110(例如微处理器112)可以利用该DMA引擎藉由传输接口电路118对主机装置50中的该存储器的该第二主机侧存储器区域进行DMA操作,以藉由传输接口电路118将该数据(例如,如主机装置50所请求的待读取数据)的该局部数据发送(例如回传)至该第二主机侧存储器区域。
在步骤S12F中,存储器控制器110(例如微处理器112)可以检查是否完成了对该数据(例如,如主机装置50所请求的待读取数据)的整体的数据读取。若是,则进入步骤S10;若否,则进入步骤S12A。
对于藉由包含步骤S12的子步骤(例如步骤S12A~S12F)的循环(loop)来进行的数据读取,包含用于数据读取的该多个链接讯息队列(例如配置用于数据读取的该多个子队列{SQ(x)})的多阶段存储器映射队列MPMMQ是在该单一存储器映射环形缓冲器诸如存储器映射环形缓冲器MMRBUF内实现,并且该多个链接讯息队列中的每个链接讯息队列都与该多个阶段(例如,该多个阶段{Phase(x)},配置用于数据读取)中的一个阶段相关联,其中该多阶段存储器映射队列对于该处理电路(例如微处理器112)以及对应于数据读取的这一组次级处理电路(例如该第一组引擎诸如该去随机化引擎、该解码引擎、该解压缩引擎和该DMA引擎)中的每一个在用于排队(en-queuing)操作或离队(de-queuing)操作是透明的(transparent)。在该处理电路和与数据读取对应的这一组次级处理电路中的至少一个电路(例如一或多个电路)的控制下,分别对应于该多个阶段{Phase(x)}的该多个子队列{SQ(x)}可被配置成具有动态地调整的队列长度,诸如子队列SQ(0)、SQ(1)等的各自的队列长度,以供被用来作为用于数据读取的该多个链接讯息队列。
在步骤S16中,存储器控制器110(例如微处理器112)可以判断该主机指令(亦即,如步骤S10中检测到的刚刚接收到的主机指令)是否为一主机写入指令。若是,则进入步骤S17;若否,则进入步骤S18。该主机写入指令可以指出在一第二逻辑地址写入数据。
在步骤S17中,响应该主机写入指令(亦即,如步骤S10和S16中检测到的刚刚接收到的主机写入指令),存储器控制器110(例如微处理器112)可以藉由控制逻辑电路114发送一第二操作指令(例如上述操作指令中的另一操作指令)诸如一写入指令至NV存储器120,并且触发第二组引擎藉由多阶段存储器映射队列MPMMQ(例如存储器映射环形缓冲器MMRBUF)来操作和互动,以供为主机装置50写入数据(例如,如主机装置50所请求的待写入数据),其中该第二操作指令诸如该写入指令可以载有与该第二逻辑地址相关联的一第二物理地址,用于指出NV存储器120内的某个储存位置,并且该第二物理地址可由存储器控制器110(例如微处理器112)决定。
举例来说,该第二组引擎可以包括该DMA引擎、该压缩引擎、该编码引擎(例如该编码器)和该随机化引擎(例如该随机化器),以及该处理电路诸如微处理器112以及某些次级处理电路诸如这些引擎可以形成类似于图2下半部分所示的多阶段队列控制方案的一链接处理架构,其中该多阶段队列控制方案中的该处理器和引擎#1、#2等可以分别代表微处理器112和分别按照以上所列顺序排列的这些引擎,但本发明不以此为限。根据某些实施例,该第二组引擎和相关联的链接处理架构可予以变化。
在步骤S17A中,存储器控制器110(例如微处理器112)可以利用该DMA引擎藉由传输接口电路118对主机装置50中的该存储器的该第一主机侧存储器区域进行DMA操作,以藉由传输接口电路118从该第一主机侧存储器区域接收数据(例如,如主机装置50所请求的待写入数据)的局部数据以作为接收的数据。
在步骤S17B中,存储器控制器110(例如微处理器112)可利用该压缩引擎对该接收的数据进行压缩诸如压缩操作以产生压缩数据。
在步骤S17C中,存储器控制器110(例如微处理器112)可利用该编码引擎(例如该编码器)对该压缩数据进行编码诸如编码操作,以产生编码数据(例如该接收的数据及其同位数据的组合)。
在步骤S17D中,存储器控制器110(例如微处理器112)可利用该随机化引擎(例如该随机化器)对该编码数据进行随机化诸如随机化操作以产生随机化数据。
在步骤S17E中,存储器控制器110(例如微处理器112)可利用控制逻辑电路114来进行编程,尤其,将该随机化数据编程至NV存储器120中。
在步骤S17F中,存储器控制器110(例如微处理器112)可以检查是否完成了对该数据(例如,如主机装置50所请求的待写入数据)的整体的数据写入。若是,则进入步骤S10;若否,则进入步骤S17A。
对于藉由包含步骤S17的子步骤(例如步骤S17A~S17F)的循环来进行的数据写入,包含用于数据写入的该多个链接讯息队列(例如配置用于数据写入的该多个子队列{SQ(x)})的多阶段存储器映射队列MPMMQ是在该单一存储器映射环形缓冲器诸如存储器映射环形缓冲器MMRBUF内实现,并且该多个链接讯息队列中的每个链接讯息队列都与该多个阶段(例如该多个阶段{Phase(x)},配置用于数据写入)中的一个阶段相关联,其中该多阶段存储器映射队列对于该处理电路(例如微处理器112)以及对应于数据写入的这一组次级处理电路(例如该第二组引擎诸如该DMA引擎、该压缩引擎、该编码引擎以及该随机化引擎)中的每一个在用于排队操作或离队操作是透明的(transparent)。在该处理电路和与数据写入对应的这一组次级处理电路中的至少一个电路(例如一或多个电路)的控制下,分别对应于该多个阶段{Phase(x)}的该多个子队列{SQ(x)}可被配置成具有动态地调整的队列长度,诸如子队列SQ(0)、SQ(1)等的各自的队列长度,以供被用来作为用于数据写入的该多个链接讯息队列。
在步骤S18中,存储器控制器110(例如微处理器112)可以进行其它处理。举例来说,当该主机指令(例如,如步骤S10中检测到的刚刚接收到的主机指令)是不同于该主机读取指令与该主机写入指令中的任一者的另一指令时,存储器控制器110(例如微处理器112)可以进行相关的操作。
为了更好的理解,该方法可以用图16A以及图16B所示的工作流程来说明,但本发明不以此为限。根据某些实施例,一或多个步骤可以在图16A以及图16B所示的工作流程中增加、删除或修改。
根据某些实施例,假设X=5,该多个子队列{SQ(x)}和相关的局部讯息流之间的某些关系可以描述如下:
(1)该处理电路(例如微处理器112)以及对应于数据读取的这一组次级处理电路(例如该第一组引擎)中的一第一次级处理电路(例如该去随机化引擎)之间的一初始局部讯息流可以通过对应于阶段Phase(0)的子队列SQ(0);
(2)该第一次级处理电路(例如该去随机化引擎)以及对应于数据读取的这一组次级处理电路(例如该第一组引擎)中的一第二次级处理电路(例如该解码引擎)之间的一第一局部讯息流可以通过对应于阶段Phase(1)的子队列SQ(1);
(3)该第二次级处理电路(例如该解码引擎)以及对应于数据读取的这一组次级处理电路(例如该第一组引擎)中的一第三次级处理电路(例如该解压缩引擎)之间的一第二局部讯息流可以通过对应于阶段Phase(2)的子队列SQ(2);
(4)该第三次级处理电路(例如该解压缩引擎)以及对应于数据读取的这一组次级处理电路(例如该第一组引擎)中的一第四次级处理电路(例如该DMA引擎)之间的一第三局部讯息流可以通过对应于阶段Phase(3)的子队列SQ(3);以及
(5)该第四次级处理电路(例如该DMA引擎)以及该处理电路(例如微处理器112)之间的一第四局部讯息流可以通过对应于阶段Phase(4)的子队列SQ(4);
但本发明不以此为限,为了简明起见,于这些实施例中类似的内容在此不重复赘述。
根据某些实施例,假设X=5,该多个子队列{SQ(x)}和相关的局部讯息流之间的某些关系可以描述如下:
(1)该处理电路(例如微处理器112)以及对应于数据写入的这一组次级处理电路(例如该第二组引擎)中的一第一次级处理电路(例如该DMA引擎)之间的一初始局部讯息流可以通过对应于阶段Phase(0)的子队列SQ(0);
(2)该第一次级处理电路(例如该DMA引擎)以及对应于数据写入的这一组次级处理电路(例如该第二组引擎)中的一第二次级处理电路(例如该压缩引擎)之间的一第一局部讯息流可以通过对应于阶段Phase(1)的子队列SQ(1);
(3)该第二次级处理电路(例如该压缩引擎)以及对应于数据写入的这一组次级处理电路(例如该第二组引擎)中的一第三次级处理电路(例如该编码引擎)之间的一第二局部讯息流可以通过对应于阶段Phase(2)的子队列SQ(2);
(4)该第三次级处理电路(例如该编码引擎)以及对应于数据写入的这一组次级处理电路(例如该第二组引擎)中的一第四次级处理电路(例如该随机化引擎)之间的一第三局部讯息流可以通过对应于阶段Phase(3)的子队列SQ(3);以及
(5)该第四次级处理电路(例如该随机化引擎)以及该处理电路(例如微处理器112)之间的一第四局部讯息流可以通过对应于阶段Phase(4)的子队列SQ(4);
但本发明不以此为限,为了简明起见,于这些实施例中类似的内容在此不重复赘述。
本发明的众多优点中的一个是,本发明的方法和设备可以降低对存储器大小的需求,例如,仅从一个相同大小的队列共享多个链接队列,因此当将一个X阶段队列与X个单阶段队列进行比较时,存储器需求可以变为1/X。这一点很重要,因为在大部分应用中,队列条目位于同调存储器域(coherent memory domain)中,每个条目都是一个快速缓存线(cacheline)。另外,本发明的方法和设备可以合并多个多阶段存储器映射队列,尤其,在讯息的某阶段用同步点来加上拆分与合并,这可以增加多个引擎的平行操作,进而减少整个讯息流的延迟(latency)。由于在一个复杂的SoC设计中典型地会存在多个存储器域,并且由于不同的存储器域可具有不同的存储器属性,因此在管理方面会非常复杂。本发明的方法和设备可以提供一种妥善地设计的高性能架构。为了实现存储器映射队列,四种数据结构可以是所需的,以供用于门铃暂存器、队列条目、讯息主体和数据缓冲器。随着各种应用、SoC装置运行状态、服务品质(quality of service,QoS)与性能要求,每一数据结构可能需要被动态地映射到某个存储器域。本发明的方法和设备可以利用通用分布式存储器队列系统来动态地配置与每个域相关联的存储器存取属性,以达到QoS与性能的目标。此外,对于一复杂的SoC装置,可能需要灵活地甚至动态地配置讯息流,尤其,取决于特定应用、QoS与性能要求以及装置状态。本发明的方法和设备可以为一引擎链接到多个引擎之间提供灵活度并在讯息流的不同级/阶段发送完成讯息。如此一来,可以提高整体的性能。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (13)

1.一种藉助于一多阶段(multi-phase)存储器映射(memory-mapped)队列以对一存储器装置进行存取控制的方法,该方法是可应用于(applicable to)该存储器装置的一控制器,该存储器装置包含该控制器和一非挥发性(non-volatile,NV)存储器,该非挥发性存储器包含至少一非挥发性存储器元件,该方法包含:
从一主机装置接收一第一主机指令,其中该第一主机指令指出在一第一逻辑地址存取第一数据;以及
响应该第一主机指令,利用该控制器内的一处理电路透过该控制器的一控制逻辑电路向该非挥发性存储器发送一第一操作指令,并触发该控制器内的一第一组次级(secondary)处理电路透过该多阶段存储器映射队列来操作和互动,以供为该主机装置存取该第一数据,其中该第一操作指令携带有与该第一逻辑地址相关联的一第一物理地址,以供指出该非挥发性存储器中的一储存位置,且该处理电路以及该第一组次级处理电路共享该多阶段存储器映射队列,并且使用该多阶段存储器映射队列作为分别与多个阶段相关联的多个链接(chained)讯息队列,以供为包含该处理电路以及该第一组次级处理电路的一链接处理架构进行讯息排队(message queuing)。
2.如权利要求1所述的方法,其特征在于包含该多个链接讯息队列的该多阶段存储器映射队列实现于一单一存储器映射环形缓冲器内。
3.如权利要求1所述的方法,其特征在于该多个链接讯息队列中的每一链接讯息队列是与该多个阶段中的一阶段相关联。
4.如权利要求1所述的方法,其特征在于对于该处理电路与该第一组次级处理电路中的每一个,该多阶段存储器映射队列用于排队(en-queuing)操作或离队(de-queuing)操作是透明的(transparent)。
5.如权利要求1所述的方法,其特征在于在该处理电路和该第一组次级处理电路中的至少一电路的控制下,分别对应于该多个阶段的多个子队列(sub-queue)被配置以具有动态地调整的队列长度,以供被用来作为该多个链接讯息队列。
6.如权利要求5所述的方法,其特征在于:
该第一组次级处理电路中的一第一次级处理电路和一第二次级处理电路之间的一第一局部讯息流(partial message flow)通过该多个子队列中的对应于一第一阶段的一第一子队列;以及
该第一组次级处理电路中的该第二次级处理电路和一第三次级处理电路之间的一第二局部讯息流通过该多个子队列中的对应于一第二阶段的一第二子队列。
7.如权利要求6所述的方法,其特征在于:
该处理电路与该第一次级处理电路之间的一局部讯息流通过该多个子队列中的对应于另一阶段的另一子队列。
8.如权利要求1所述的方法,其特征在于该第一组次级处理电路包含一直接存储器存取(direct memory access,DMA)引擎、一解码引擎以及一去随机化引擎。
9.如权利要求1所述的方法,其特征在于该第一组次级处理电路包含一直接存储器存取(direct memory access,DMA)引擎、一编码引擎以及一随机化引擎。
10.如权利要求1所述的方法,其特征在于,还包含:
从该主机装置接收一第二主机指令,其中该第二主机指令指出在一第二逻辑地址存取第二数据;以及
响应该第二主机指令,利用该控制器内的该处理电路向该非挥发性存储器发送一第二操作指令,并触发该控制器内的一第二组次级处理电路透过该多阶段存储器映射队列来操作和互动,以供为该主机装置存取该第二数据,其中该第二操作指令携带有与该第二逻辑地址相关联的一第二物理地址,以供指出该非挥发性存储器中的另一储存位置,且该处理电路以及该第二组次级处理电路共享该多阶段存储器映射队列,并且使用该多阶段存储器映射队列作为分别与多个其它阶段相关联的多个其它链接讯息队列,以供为包含该处理电路以及该第二组次级处理电路的另一链接处理架构进行讯息排队。
11.一种依据如权利要求1所述的方法来操作之的统单芯片(system-on-chip,SoC)集成电路(integrated circuit,IC),其中该系统单芯片集成电路包含该控制器。
12.一种存储器装置,包含:
一非挥发性(non-volatile,NV)存储器,用以储存资讯,其中该非挥发性存储器包含至少一非挥发性存储器元件;以及
一控制器,耦接至该非挥发性存储器,用以控制该存储器装置的操作,其中该控制器包含:
一处理电路,用以依据来自一主机装置的多个主机指令来控制该控制器,以容许该主机装置透过该控制器存取该非挥发性存储器;
多个次级(secondary)处理电路,用以操作以作为多个硬件引擎;以及
一多阶段存储器映射队列,耦接至该处理电路以及该多个次级处理电路,用以为该处理电路以及该多个次级处理电路进行讯息排队(message queuing);
其中:
该控制器从该主机装置接收一第一主机指令,其中该第一主机指令指出在一第一逻辑地址存取第一数据,且该第一主机指令是该多个主机指令的其中之一;以及
响应该第一主机指令,该控制器利用该处理电路透过该控制器的一控制逻辑电路向该非挥发性存储器发送一第一操作指令,并触发该多个次级处理电路中的一第一组次级处理电路透过该多阶段存储器映射队列来操作和互动,以供为该主机装置存取该第一数据,其中该第一操作指令携带有与该第一逻辑地址相关联的一第一物理地址,以供指出该非挥发性存储器中的一储存位置,且该处理电路以及该第一组次级处理电路共享该多阶段存储器映射队列,并且使用该多阶段存储器映射队列作为分别与多个阶段相关联的多个链接(chained)讯息队列,以供为包含该处理电路以及该第一组次级处理电路的一链接处理架构进行讯息排队。
13.一种用于一存储器装置的控制器,该存储器装置包含该控制器以及一非挥发性(non-volatile,NV)存储器,该非挥发性存储器包含至少一非挥发性存储器元件,该控制器包含:
一处理电路,用以依据来自一主机装置的多个主机指令来控制该控制器,以容许该主机装置透过该控制器存取该非挥发性存储器;
多个次级(secondary)处理电路,用以操作以作为多个硬件引擎;以及
一多阶段存储器映射队列,耦接至该处理电路以及该多个次级处理电路,用以为该处理电路以及该多个次级处理电路进行讯息排队(message queuing);
其中:
该控制器从该主机装置接收一第一主机指令,其中该第一主机指令指出在一第一逻辑地址存取第一数据,且该第一主机指令是该多个主机指令的其中之一;以及
响应该第一主机指令,该控制器利用该处理电路透过该控制器的一控制逻辑电路向该非挥发性存储器发送一第一操作指令,并触发该多个次级处理电路中的一第一组次级处理电路透过该多阶段存储器映射队列来操作和互动,以供为该主机装置存取该第一数据,其中该第一操作指令携带有与该第一逻辑地址相关联的一第一物理地址,以供指出该非挥发性存储器中的一储存位置,且该处理电路以及该第一组次级处理电路共享该多阶段存储器映射队列,并且使用该多阶段存储器映射队列作为分别与多个阶段相关联的多个链接(chained)讯息队列,以供为包含该处理电路以及该第一组次级处理电路的一链接处理架构进行讯息排队。
CN202210204015.4A 2021-03-02 2022-03-02 藉助于多阶段存储器映射队列以进行存取控制的方法以及相关设备 Pending CN114995745A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202163155307P 2021-03-02 2021-03-02
US63/155,307 2021-03-02
US202163159950P 2021-03-11 2021-03-11
US63/159,950 2021-03-11
US17/515,570 2021-11-01
US17/515,570 US11630601B2 (en) 2021-03-02 2021-11-01 Memory and apparatus for performing access control with aid of multi-phase memory-mapped queue

Publications (1)

Publication Number Publication Date
CN114995745A true CN114995745A (zh) 2022-09-02

Family

ID=83023496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210204015.4A Pending CN114995745A (zh) 2021-03-02 2022-03-02 藉助于多阶段存储器映射队列以进行存取控制的方法以及相关设备

Country Status (3)

Country Link
US (1) US11630601B2 (zh)
CN (1) CN114995745A (zh)
TW (1) TWI820603B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11050427B1 (en) 2020-09-23 2021-06-29 Silicon Motion, Inc. Fractional frequency divider and flash memory controller
US20240061797A1 (en) * 2022-08-16 2024-02-22 Infineon Technologies Ag Methods and systems for accelerating pixel processing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271700B1 (en) * 2007-11-23 2012-09-18 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
US20100262979A1 (en) 2009-04-08 2010-10-14 Google Inc. Circular command queues for communication between a host and a data storage device
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
TWI493455B (zh) 2013-07-02 2015-07-21 Phison Electronics Corp 命令佇列管理方法、記憶體控制器及記憶體儲存裝置
CN111133416A (zh) * 2017-09-26 2020-05-08 英特尔公司 处理来自虚拟机命令的方法和装置
US10198299B1 (en) * 2017-10-30 2019-02-05 Vmware, Inc. Enabling live migration of virtual machines with passthrough PCI devices
US11392320B2 (en) * 2018-07-03 2022-07-19 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
US10992497B2 (en) 2018-11-26 2021-04-27 Arrcus Inc. Logical router comprising disaggregated network elements
US11016829B2 (en) * 2019-07-26 2021-05-25 Toshiba Memory Corporation Two-layered deterministic interprocess communication scheduler for input output determinism in solid state drives
JP7408357B2 (ja) * 2019-11-15 2024-01-05 キオクシア株式会社 メモリシステム及びその制御方法

Also Published As

Publication number Publication date
TW202236101A (zh) 2022-09-16
TWI820603B (zh) 2023-11-01
US11630601B2 (en) 2023-04-18
US20220283732A1 (en) 2022-09-08

Similar Documents

Publication Publication Date Title
US10963335B2 (en) Data storage device and adaptive data-reading method thereof
KR100708128B1 (ko) 낸드 플래시 메모리 제어 장치 및 방법
US10338846B2 (en) Method for reducing read buffer size requirements in NVMe based solid state drives
TWI820603B (zh) 藉助於多階段記憶體映射隊列以進行存取控制的方法、系統單晶片積體電路、記憶體裝置以及用於記憶體裝置的控制器
CN109815172B (zh) 设备控制器以及包括其的储存设备
US10866736B2 (en) Memory controller and data processing circuit with improved system efficiency
CN111045593B (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
US10048867B2 (en) Method to shorten hash chains in lempel-ziv compression of data with repetitive symbols
CN109558266B (zh) 主动错误更正失败处理方法
CN110806837A (zh) 数据处理系统及其操作方法
KR102645983B1 (ko) 오픈 채널 벡터 커맨드 실행
KR20220050407A (ko) 컨트롤러 및 컨트롤러의 동작방법
CN113377279A (zh) 数据存储装置与数据处理方法
US10268399B2 (en) Memory system using message monitoring and first and second namespaces
TWI820951B (zh) 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備
US20150212759A1 (en) Storage device with multiple processing units and data processing method
US9009389B2 (en) Memory management table processing method, memory controller, and memory storage apparatus
TWI596477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US9600363B2 (en) Data accessing method, memory controlling circuit unit and memory storage apparatus
US20210081133A1 (en) Memory system, controller and data transfer method
US9665480B2 (en) Memory management method, memory storage device and memory control circuit unit
US10102121B1 (en) Memory management method, memory control circuit unit and memory storage device
TWI676104B (zh) 記憶體控制器與資料儲存裝置
US20150046669A1 (en) Storage system and method for operating same
CN106326142A (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