CN106372011B - 用于pcie ssd控制器的高性能主机队列监控器 - Google Patents
用于pcie ssd控制器的高性能主机队列监控器 Download PDFInfo
- Publication number
- CN106372011B CN106372011B CN201610592944.1A CN201610592944A CN106372011B CN 106372011 B CN106372011 B CN 106372011B CN 201610592944 A CN201610592944 A CN 201610592944A CN 106372011 B CN106372011 B CN 106372011B
- Authority
- CN
- China
- Prior art keywords
- queue
- range
- queues
- ready
- processing
- 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
Images
Classifications
-
- 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
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种用于PCIE SSD控制器的高性能主机队列监控器。本发明提供一种存储器***,其可以包括:多个队列;队列预备指示器,其适于将多个队列分组为预先定义数量的队列范围,每个队列范围具有与其相关的队列范围预备信号,以及当与队列范围预备信号相关的队列范围中的每个队列预备以处理时,将队列范围预备信号设定为预备;以及队列处理定序器,其适于基于队列范围预备信号确定预备以处理的队列范围,以及处理在确定为预备以处理的队列范围内的队列。
Description
相关申请的交叉引用
本申请要求于2015年7月24日提交的申请号为62/196,849的美国临时申请的权益,其全文内容通过引用并入本文。
技术领域
本公开的示例性实施例涉及一种存储器***及其操作方法。
背景技术
计算机环境范式已经转变为可随时随地使用的普适计算***。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器***。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置不具有活动部件,所以它们提供了优良的稳定性、耐久性、高信息存取速度以及低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
主机接口被引入能够支持大量主机队列的SSD控制器中。在存储器装置中存在对于改进的队列处理和队列管理的需要。
发明内容
本发明的方面包括存储器***,存储器***可以包括:多个队列;队列预备指示器,其适于将多个队列分组为预先定义数量的队列范围,每个队列范围具有与其相关的队列范围预备信号,以及当与队列范围预备信号相关的队列范围中的每个队列预备以处理时,将队列范围预备信号设定为预备;以及队列处理定序器,其适于基于队列范围预备 信号确定预备以处理的队列范围,以及处理在确定为预备以处理的队列范围内的队列。
本发明的进一步的方面包括方法。方法可以包括:利用队列预备指示器将多个队列分组为预先定义数量的队列范围,每个队列范围具有与其相关的队列范围预备信号;当在与队列范围预备信号相关的队列范围中的每个队列预备以处理时,利用队列预备指示器将队列范围预备信号设定为预备;基于队列范围预备信号,利用队列处理定序器来确定预备以处理的队列范围;以及处理在确定为预备以处理的队列范围内的队列。
本发明的附加方面包括存储器装置。存储器装置可以包括:多个队列;队列预备指示器,其配置为将多个队列分组为预先定义数量的队列范围,每个队列范围具有与其相关的队列范围预备信号,以及当与队列范围预备信号相关的队列范围中的每个队列预备以处理时,将队列范围预备信号设定为预备;以及队列处理定序器,其配置为基于队列范围预备信号确定预备以处理的队列范围,以及处理在确定为预备以处理的队列范围内的队列。
附图说明
图1是示意性示出根据本发明的实施例的存储器***的框图。
图2是示出根据本发明的实施例的存储器***的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是根据本发明的方面的示例性队列监控***的图。
图5是根据本发明的方面的示例性状态转换的图。
图6是根据本发明的方面的用于队列监控和管理的方法中的步骤的流程图。
图7是根据本发明的方面的队列范围的图。
具体实施方式
以下将参照附图对各个实施例进行更详细的描述。然而,本发明 可以不同的形式呈现并且不应解释为限于本文阐述的实施例。相反,这些实施例被提供使得本公开将是彻底且完整的,并将向本领域技术人员充分传达本发明的范围。在整个公开中,遍及本发明的各个附图和实施例中相似的参考标记指代相似的部件。
本发明可以大量方式来实现,包括作为过程、设备、***、物体的组合、在计算机可读存储介质上体现的计算机编程产品和/或处理器,例如适于执行存储在联接至该处理器的存储器上和/或由联接至该处理器的存储器提供的指令的处理器。在本说明书中,这些实施或本发明可以采用的任何其它形式可以称为技术。通常地,公开的过程的步骤的顺序在本发明的范围内可以改变。除非另有声明,否则诸如描述为适于执行任务的诸如处理器或存储器的组件可以实施为暂时适于在给定时间执行任务的一般组件或被制造为执行任务的特殊组件。如本文所使用的,术语“处理器”指代一个或多个装置、电路和/或适于处理数据的处理核,例如计算机编程指令。
在下文,与示出本发明的原理的附图一起提供了本发明的一个或多个实施例的详细描述。结合这些实施例来描述本发明,但是本发明并不限于任何实施例。本发明的范围仅由权利要求限定并且本发明涵盖大量替换、修改和等同。为了提供对本发明的透彻的理解,以下描述中阐述了大量具体细节。为了示例的目的提供这些细节并且本发明可以根据权利要求来实施而无需这些具体细节中一些或全部。为了清楚的目的,没有具体描述与本发明涉及的技术领域中已知的技术材料,以便本发明不会不必要地模糊。
图1是示意性示出根据本发明的实施例的存储器***10的框图。
参照图1,存储器***10可以包括存储器控制器100和半导体存储器装置200。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个 或多个擦除、编程和读取操作。半导体存储器装置200可以通过输入/输出线来接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电力线接收电力PWR并通过控制线接收控制信号CTRL。控制信号可以包括命令锁存启动(CLE)信号、地址锁存启动(ALE)信号、芯片启动(CE)信号、写入启动(WE)信号、读取启动(RE)信号等。
存储器控制器100和半导体存储器装置200可以集成在单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以集成在诸如固态驱动器(SSD)的单个半导体装置中。固态驱动器可以包括用于将数据存储于其中的存储装置。当在SSD中使用半导体存储器***10时,联接至存储器***10的主机(未示出)的操作速度可以显著提高。
存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以集成在单个半导体装置中以配置诸如个人计算机存储卡国际协会(PCMCIA)的PC卡、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型尺寸版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)和通用闪速存储(UFS)的存储卡。
对于另一个示例,存储器***10可以被提供为包括诸如以下的电子装置的各种元件中的一种:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒子、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录 器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和传输信息的装置、家庭网络的电子装置中的一种、计算机网络的电子装置中的一种、远程信息处理网络的电子装置中的一种、无线射频识别(RFID)装置或计算***的元件装置。
图2是示出根据本发明的实施例的存储器***的细节框图。例如,图2的存储器***可以描述图1中示出的存储器***10。
参照图2,存储器***10可以包括存储器控制器100和半导体存储器装置200。存储器***10可以响应于来自主机装置的请求来操作,并且特别地存储待由主机装置存取的数据。
主机装置可以利用各种电子装置的任何一种来实现。在一些实施例中,主机装置可以包括诸如台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器和数字视频播放器的电子装置。在一些实施例中,主机装置可以包括诸如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和便携式游戏机的便携式电子装置。
存储器装置200可以存储待由主机装置存取的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的易失性存储器装置或者诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和电阻式RAM(RRAM)的非易失性存储器装置来实现。
控制器100可以控制数据在存储器装置200中的存储。例如,控制器100可以响应于来自主机装置的请求控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供至主机装置,并且将从主机装置提供的数据存储到存储器装置200中。
控制器100可以包括通过总线160联接的存储单元110、控制单元120、错误校正码(ECC)单元130、主机接口140和存储器接口150。
存储单元110可以用作存储器***10和控制器100的工作存储器,并且存储用于驱动存储器***10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储单元110可以存储由控制器100和存储器装置200使用的用于诸如读取、写入、编程和擦除操作的数据。
存储单元110可以利用易失性存储器来实现。存储单元110可以利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。如上所述,存储单元110可以存储主机装置用于存储器装置200中的用于读取和写入操作的数据。为了存储数据,存储单元110可以包括编程存储器、数据存储器、写入缓冲区、读取缓冲区、映射缓冲区等。
控制单元120可以响应于来自主机装置的写入请求或读取请求控制存储器***10的一般操作以及用于存储器装置200的写入操作或读取操作。控制单元120可以驱动称为闪存转换层(FTL)的固件以控制存储器***10的一般操作。例如,FTL可以执行诸如逻辑至物理(L2P)映射、耗损均衡、垃圾收集和坏块处理的操作。L2P映射被称为逻辑区块地址(LBA)。
ECC单元130可以在读取操作期间检测并且校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正的错误位的阈值时,ECC单元130可以不校正错误位,并且可以输出指示校正错误位失败的错误校正失败信号。
在一些实施例中,ECC单元130可以基于诸如低密度奇偶校验(LDPC)码、博斯-乔德里-霍昆格姆(BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(RS)码、卷积码、递归***码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制来执行错误校正操作。ECC单元130可以包括用于错误校正操作的所有电路、 ***或装置。
主机接口140可以通过诸如通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-E)、小型计算机***接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和集成驱动电子设备(IDE)的各种接口协议中的一种或多种来与主机装置通信。
存储器接口150可以提供控制器100和存储器装置200之间的接口以允许控制器100响应于来自主机装置的请求控制存储器装置200。存储器接口150可以在CPU 120的控制下产生用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 120的控制下产生用于存储器的控制信号并且处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、页面缓冲区250、列解码器260和输入/输出电路270。存储器单元阵列210可以包括多个存储块211并且可以存储数据于其中。电压生成电路230、行解码器240、页面缓冲区250、列解码器260和输入/输出电路270形成用于存储器单元阵列210的***电路。***电路可以执行存储器单元阵列210的编程、读取或擦除操作。控制电路220可以控制***电路。
电压生成电路230可以生成具有各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的具有各种电平的操作电压。
行解码器240可以连接至电压生成电路230和多个存储块211。行解码器240可以响应于由控制电路220生成的行地址RADD在多个存储块211中选择至少一个存储块,并且将由电压生成电路230提供的操作电压传输至在多个存储块211中选择的存储块。
页面缓冲区250通过位线BL(未示出)连接至存储器单元阵列210。 页面缓冲区250可以响应于由控制电路220生成的页面缓冲控制信号利用正电压为位线BL预先充电、在编程操作中传输数据至选择的存储块/在读取操作中从选择的存储块接收数据或者临时存储传输的数据。
列解码器260可以传输数据至页面缓冲区250/从页面缓冲区250接收数据或者传输数据至输入/输出电路270/从输入/输出电路270接收数据。
输入/输出电路270可以将传输自外部装置(例如,存储器控制器100)的命令和地址传输至控制电路220,将来自外部装置的数据传输至列解码器260或者将来自列解码器260的数据通过输入/输出电路270输出至外部装置。
控制电路220可以响应于命令和地址控制***电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中示出的存储器单元阵列210的存储块211。
参照图3,存储块211可以包括分别联接至位线BL0至BLm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可以串联地联接在选择晶体管DST和SST之间。存储器单元MC0至MCn-1中的每个可以由每个单元中存储多位数据信息的多层单元(MLC)形成。单元串221可以分别电联接至对应的位线BL0至BLm-1。
在一些实施例中,存储块211可以包括NAND类型的闪速存储器单元。然而,存储块211不限于NAND闪速存储器,而是可以包括NOR类型的闪速存储器、其中结合两种或更多种类型的存储器单元的混合闪速存储器和其中控制器嵌入存储器芯片内的1-NAND闪速存储器。
作为高通量和性能评估标准,高速PCI(PCIe)作为存储接口为NAND闪速存储器提供优化的解决方法。在PCIe上的主机接口被引入SSD控制器设计以最大化性能,诸如NVMe、SOP等。这些接口具有支 持大量主机队列的能力。例如,NVMe可以支持高达65536个主机提交队列(SQ)和完成队列(CQ)。更多的主机队列可以改进性能和时延,但是监控所有这些队列并且执行仲裁产生了对SSD控制器较大的开销和时延。本申请所公开的是使时延最小化同时维持对于支持多个仲裁机制的灵活性的高性能主机队列监控方案的示例。
参照图4,示出了主机队列监控器***40的图。***40可以包括PCIe总线400、队列存取解码器402、多个队列状态机403(例如,队列0状态机404、队列1状态机406、......、队列N状态机408等,在所示的示例中“N”表示队列状态机的总数量减1)、队列预备指示器410和队列处理定序器412。
PCIe 400可以发出命令以访问基址寄存器(BAR)。队列存取解码器402可以配置为基于BAR基址来解码PCIe BAR存取命令并且映射命令至该命令应用于其的正确队列状态机。多个队列状态机403可以各自与队列相关,可以指示当前的队列状态并且激活如下所述的队列预备指示器410。队列预备指示器410可以提供网络以合并来自队列状态机403的队列预备信号并且向队列处理定序器412提供指示。队列处理定序器412可以接收来自队列预备指示器410的请求、执行仲裁并且处理激活队列。
对于PCIe上的主机协议,BAR是用于主机操作并且管理主机队列的位置。例如,在NVMe的情况下,对由BAR指向的装置存储器的门铃(例如,PCIe存储器写入命令)被写入以通知装置被***SQ中或者在CQ中被消耗的新条目(entry)的数量。队列存取解码器402可以配置为限制对主机队列的PCIe事务并且过滤掉与队列管理无关的事务。队列存取解码器402还可以配置为映射地址到事务应用于其的对应的队列,并且将请求发送到对应的队列状态机以更新队列状态。因此,多个队列状态机403可以被配置,以便多个队列状态机403的一部分被指定用于SQ并且多个队列状态机403的一部分被指定用于CQ。
接下来参照图5,示出了预备状态500、空闲状态502和无效状态504之间的队列状态机状态转换的图50。如果队列状态机接收来自队列存取解码器402的请求,则其将进入预备状态500并且通知队列预备指示器410。其将在队列处理定序器412完成处理对应的主机队列之后返回到空闲状态502。例如,队列处理定序器412可以当在SQ中有未解决的命令时提取来自该队列的命令,并且将该SQ的队列状态机转换到空闲状态502。状态机在队列被创建(“创建Q”)以后仅可用于接收门铃。如果接收到删除Q的命令,则状态机将进入无效状态504。
接下来参照图6,示出了队列管理的步骤的流程图60。在步骤600处,预先定义数量的队列被分组为预先定义数量的队列范围。一定数量的队列可以由队列预备指示器410分组为队列范围。尽管使用术语“队列”,但是步骤600的分组也可以对队列状态机进行分组,因为每个队列状态机可以与多个队列中的一个相关,和/或对由队列状态机生成的队列预备信号进行分组。当多个队列状态机403的每个队列状态机可以提供一个预备信号时,如果控制器需要支持大量的队列,则可能存在成千的预备信号。为了处理大量的队列,本申请公开了用以将预备信号传到队列处理定序器412的层次化拓扑结构。
图7是队列预备指示器的示例图70。队列预备指示器可以使用树形搜索类型算法,并且可以减少识别哪个列队显著具有未解决的命令的操作的数量。其将预先定义数量的队列预备信号分组在一起。例如,在一个分组中的队列的数量可以是32或64,其是AHB/AXI协议的典型数量,尽管本领域的技术人员将从本申请的公开认识到待被分组的队列的其它的适当的数量。图7示出利用32位AHB/AXI总线实现的1024个队列的示例性拓扑结构。队列范围700用于队列0-31、队列范围702用于队列32-63、队列范围704用于队列64-95、队列范围706用于队列960-991,以及队列范围708用于队列992-1023,其中在队列范围704和706之间的队列范围被省略以为了描述的简便起见。对于多于1024个队 列,例如需要更高一级以结合多个队列范围信号的预备信号。例如,三级的逻辑可以支持高达32768个队列。
在步骤602处,当队列范围预备以处理时,将队列范围预备信号设为预备。每个队列范围可以具有与其相关的队列范围预备信号。例如,队列范围预备信号可以通过队列预备指示器410设为预备。当队列范围中的每个队列都预备以处理时,队列范围预备信号可以设为预备。例如,如果在队列范围700中的每个队列都预备以处理,则用于队列范围700的队列范围预备信号可以设为预备并且范围预备信号可以在710处输出。可替换的,如果在队列范围702中除一个队列(例如,队列63)以外的所有队列都预备,则用于队列范围702的队列范围预备信号不设为预备并且没有预备信号被输出,以便队列范围702不被处理,直到在队列范围702中的所有队列都预备。
在步骤604处,读取队列范围预备信号并且获取预备以处理的队列范围。例如,可以通过队列预备指示器410存储队列范围预备信号并且可以读取范围预备信号并且可以通过队列处理定序器412获取预备以处理的队列范围。队列处理定序器412可以是具有AHB/AXI总线的嵌入式处理器。通过队列处理定序器412(例如,经由输出710),队列范围预备信号和队列预备信号(用于每个各自队列的预备信号)两者可以是可存取的。
在步骤606处,确定队列范围以处理并且选择确定的队列范围的队列以处理,并且在步骤608处,处理选择的队列。可以确定队列范围并且可以通过队列处理定序器412选择队列。可以通过队列处理定序器412处理选择的队列。可以通过诸如轮询和/或加权轮询的各种仲裁机制来设定(例如,以固件形式)并且执行确定和选择进程,并且该固件可以支持多个主机协议。
为说明目的,以下定义两个参数。
N=在队列预备指示器410中的层次的数量。
M=总线宽度。
在***中支持的队列的最大数量=M^N。
根据以前的搜索算法,为了支持M^N个队列,定序器需要读取高达M^N次队列状态以定位用于处理的队列。因此,操作的最大数量为X=M^N。
然而,根据本申请公开的队列监控***,定序器412仅读取每个层次的M位并且搜索该层次的这些M位以确定哪个分支来执行下一个搜索级别。因此,全部操作的最大数量为Y=N+M*N。
例如,在具有1024个队列的***中,N为2并且M为32。因此,以前的***具有X=1024的操作的最大数量,而本申请公开的监控***具有Y=66的操作的最大数量。同样地,对于32768个队列,N为3并且M为32。因此X为32768,而Y为99。
尽管已经为清楚理解的目的详细描述了前述实施例,但是本发明不限于提供的细节。存在实施本发明的许多可替代的方式。公开的实施例是说明性的而非限制性的。
Claims (14)
1.一种存储器***,其包括:
多个队列;
队列预备指示器,其适于:
将所述多个队列分组为预先定义数量的队列范围,所述多个队列的每个队列位于所述预先定义数量的队列范围的单个队列范围中,每个队列范围具有与其相关的队列范围预备信号;以及
当与队列范围预备信号相关的所述队列范围中的所有队列预备以处理时,将所述队列范围预备信号设定为预备;以及
队列处理定序器,其适于:
基于所述队列范围预备信号确定预备以处理的队列范围;以及
处理在确定为预备以处理的所述队列范围内的队列。
2.根据权利要求1所述的存储器***,其中所述队列处理定序器进一步适于将与所处理的队列相关的队列状态机转换到空闲状态。
3.根据权利要求1所述的存储器***,其进一步包括队列存取解码器,其适于接收来自PCIe总线,即高速***组件互连总线的事务。
4.根据权利要求3所述的存储器***,其中所述队列存取解码器进一步适于过滤掉与队列管理无关的事务。
5.根据权利要求1所述的存储器***,其进一步包括多个队列状态机,每个队列状态机与所述多个队列中的一个相关。
6.根据权利要求1所述的存储器***,其中每个队列范围中的队列的数量为32。
7.根据权利要求1所述的存储器***,其中每个队列范围中的队列的数量为64。
8.一种操作存储器***的方法,其包括:
利用队列预备指示器将多个队列分组为预先定义数量的队列范围,所述多个队列的每个队列位于所述预先定义数量的队列范围的单个队列范围中,每个队列范围具有与其相关的队列范围预备信号;
当在与队列范围预备信号相关的所述队列范围中的所有队列预备以处理时,利用所述队列预备指示器将所述队列范围预备信号设定为预备;
基于所述队列范围预备信号,利用队列处理定序器确定预备以处理的队列范围;以及
处理在确定为预备以处理的所述队列范围内的队列。
9.根据权利要求8所述的方法,其进一步包括将与所处理的队列相关的队列状态机转换至空闲状态。
10.根据权利要求8所述的方法,其进一步包括利用队列存取解码器接收来自PCIe总线,即高速***组件互连总线的事务。
11.根据权利要求10所述的方法,其进一步包括利用所述队列存取解码器过滤与队列管理无关的事务。
12.根据权利要求8所述的方法,其进一步包括多个队列状态机,每个队列状态机与所述多个队列中的一个相关。
13.根据权利要求8所述的方法,其中每个队列范围中的队列的数量为32。
14.根据权利要求8所述的方法,其中每个队列范围中的队列的数量为64。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562196849P | 2015-07-24 | 2015-07-24 | |
US62/196,849 | 2015-07-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106372011A CN106372011A (zh) | 2017-02-01 |
CN106372011B true CN106372011B (zh) | 2020-10-30 |
Family
ID=57837555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610592944.1A Active CN106372011B (zh) | 2015-07-24 | 2016-07-25 | 用于pcie ssd控制器的高性能主机队列监控器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10089255B2 (zh) |
CN (1) | CN106372011B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3635634A1 (en) * | 2017-06-05 | 2020-04-15 | Kioxia Corporation | Memory card, host device, memory card connector, and memory card adapter |
US10558367B2 (en) | 2018-03-08 | 2020-02-11 | Western Digital Technologies, Inc. | Adaptive transaction layer packet for latency balancing |
US10740000B2 (en) | 2018-03-08 | 2020-08-11 | Western Digital Technologies, Inc. | Adaptive transaction layer packet for latency balancing |
US11720280B2 (en) | 2019-12-17 | 2023-08-08 | Western Digital Technologies, Inc. | Storage system and method for improving utilization of a communication channel between a host and the storage system |
US11487449B2 (en) | 2021-02-22 | 2022-11-01 | Western Digital Technologies, Inc. | Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns |
CN114721978B (zh) * | 2022-03-04 | 2023-08-25 | 成都储迅科技有限责任公司 | 一种加快Nand Flash控制命令执行速度的方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
US6501757B1 (en) * | 2000-02-29 | 2002-12-31 | Centre For Development Of Telematics | ATM switch |
US20040123013A1 (en) * | 2002-12-19 | 2004-06-24 | Clayton Shawn Adam | Direct memory access controller system |
CN1777147A (zh) * | 2005-12-09 | 2006-05-24 | 清华大学 | 支持多队列的共享缓存动态门限早期丢弃装置 |
CN101206633A (zh) * | 2006-12-19 | 2008-06-25 | 国际商业机器公司 | 用事务协议和共享存储器在主机***间通信的***和方法 |
CN103176746A (zh) * | 2011-09-06 | 2013-06-26 | 西部数据技术公司 | 用于数据存储***中增强的控制器架构的***和方法 |
CN104281413A (zh) * | 2013-07-10 | 2015-01-14 | 群联电子股份有限公司 | 命令队列管理方法、存储器控制器及存储器储存装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8375301B2 (en) * | 2005-07-15 | 2013-02-12 | Barco N.V. | Network displays and method of their operation |
US8489940B2 (en) * | 2010-04-16 | 2013-07-16 | Netapp, Inc. | Methods and apparatus for managing asynchronous dependent I/O for a virtual fibre channel target |
US20140068218A1 (en) | 2012-08-31 | 2014-03-06 | Shinya IEMURA | Storage device and communication method |
KR20140113176A (ko) * | 2013-03-15 | 2014-09-24 | 삼성전자주식회사 | 매핑 정보 업데이트 방법 및 이를 이용한 메모리 시스템 |
TWI503841B (zh) * | 2013-04-26 | 2015-10-11 | Phison Electronics Corp | 寫入方法、記憶體控制器與記憶體儲存裝置 |
US9400614B2 (en) | 2013-12-05 | 2016-07-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for programmable sequencer for processing I/O for various PCIe disk drives |
-
2016
- 2016-07-25 US US15/219,222 patent/US10089255B2/en active Active
- 2016-07-25 CN CN201610592944.1A patent/CN106372011B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
US6501757B1 (en) * | 2000-02-29 | 2002-12-31 | Centre For Development Of Telematics | ATM switch |
US20040123013A1 (en) * | 2002-12-19 | 2004-06-24 | Clayton Shawn Adam | Direct memory access controller system |
CN1777147A (zh) * | 2005-12-09 | 2006-05-24 | 清华大学 | 支持多队列的共享缓存动态门限早期丢弃装置 |
CN101206633A (zh) * | 2006-12-19 | 2008-06-25 | 国际商业机器公司 | 用事务协议和共享存储器在主机***间通信的***和方法 |
CN103176746A (zh) * | 2011-09-06 | 2013-06-26 | 西部数据技术公司 | 用于数据存储***中增强的控制器架构的***和方法 |
CN104281413A (zh) * | 2013-07-10 | 2015-01-14 | 群联电子股份有限公司 | 命令队列管理方法、存储器控制器及存储器储存装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106372011A (zh) | 2017-02-01 |
US10089255B2 (en) | 2018-10-02 |
US20170024333A1 (en) | 2017-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10535410B2 (en) | Hybrid read disturb count management | |
CN106372004B (zh) | 用于ssd控制器的可编程协议独立bar存储器 | |
US10180805B2 (en) | Memory system and operating method thereof | |
CN106155585B (zh) | 自适应读取干扰收回策略 | |
CN107731259B (zh) | 最佳读取参考电压的存储器***及其操作方法 | |
US20160313946A1 (en) | Controller adaptation to memory program suspend-resume | |
US10296452B2 (en) | Data separation by delaying hot block garbage collection | |
US10102146B2 (en) | Memory system and operating method for improving rebuild efficiency | |
CN106372011B (zh) | 用于pcie ssd控制器的高性能主机队列监控器 | |
CN106445749B (zh) | 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小 | |
CN107544925B (zh) | 存储器***及加速引导时间的方法 | |
CN110750380B (zh) | 具有奇偶校验高速缓存方案的存储器***以及操作方法 | |
US11036627B2 (en) | Self-management memory system and operating method thereof | |
US9946644B2 (en) | Memory system and operating method thereof | |
CN110277124B (zh) | 具有混合解码方案的存储器***及其操作方法 | |
US11449357B2 (en) | Configurable integrated circuit to support new capability | |
CN112416298A (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
US11087846B1 (en) | Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder | |
US11204839B2 (en) | Memory system with low-latency read recovery and method of operating the memory system | |
US11356123B2 (en) | Memory system with low-complexity decoding and method of operating such memory system | |
US20210223987A1 (en) | Controller with smart scheduling and method of operating the controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |