CN118280404A - 读取存储设备存储器的系统、方法和装置 - Google Patents

读取存储设备存储器的系统、方法和装置 Download PDF

Info

Publication number
CN118280404A
CN118280404A CN202410374104.2A CN202410374104A CN118280404A CN 118280404 A CN118280404 A CN 118280404A CN 202410374104 A CN202410374104 A CN 202410374104A CN 118280404 A CN118280404 A CN 118280404A
Authority
CN
China
Prior art keywords
length
read
count value
value
read burst
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
CN202410374104.2A
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.)
Yingren Technology Co ltd
Original Assignee
Yingren Technology Co ltd
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 Yingren Technology Co ltd filed Critical Yingren Technology Co ltd
Publication of CN118280404A publication Critical patent/CN118280404A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Dram (AREA)

Abstract

本文披露了用于在读取操作期间控制存储设备的输出的系统、方法和设备。所述方法包括:测量来自存储设备的连续的第一和第二读取突发之间的时间间隔的长度,所述第一和第二读取突发分别响应于所述存储设备接收到的第一和第二读取命令;根据所述长度生成状态码,其中当所述长度为零时,所述状态码具有第一值,当所述长度等于或小于阈值时间长度但非零时,所述状态码具有第二值,并且当所述长度大于所述阈值时间长度时,所述状态码具有第三值;以及根据所述状态码控制所述存储设备的输出。

Description

读取存储设备存储器的系统、方法和装置
技术领域
本发明总体上涉及存储设备,特别是涉及用于读取存储设备的存储器的系统、方法和装置。
背景技术
有许多类型的动态随机存取存储器(DRAM)。其中一种被称为双倍数据速率DRAM(DDR DRAM),通过对电子数据和时钟信号的时序进行更严格的控制,使得更高的传输速率成为可能。DDR DRAM符合联合电子器件工程委员会(JEDEC)制定的行业标准电气和协议标准。根据JEDEC规范,DDR DRAM接口利用真实数据选通信号(DQS_t)和互补数据选通信号(DQS_c)来对数据(DQ)进行采样。该对信号也被称为差分信号对。具体而言,在对DDR DRAM进行读取操作期间,DQS_t和DQS_c的差分信号被用于从DDR DRAM对DQ进行采样。差分信号对被提供给控制器的差分接收器。当DQS_t和DQS_c处于不同电平时,已知的差分信号从差分接收器输出。当DQ被传输时,DQS_t和DQS_c差分切换。然而,当接口空闲时,DQS_t和DQS_c可能保持在相同的电平,这使得它们不是差分的。此时,差分接收器可能具有未知的输出,这可能会扰乱其下游数字逻辑。因此,当DQS_t和DQS_c处于相同电平时,关断差分接收器的输出(这意味着将差分接收器的输出设置为固定值)是有用的,而当DQS_t和DQS_c差分切换时,允许差分接收器的输出表示DQ。
数据选通信号通常包括可编程的前导码部分、数据读取期和后导码部分。可编程前导码部分可以为接收设备提供可编程的定时窗口,以在信号上存在已知/有效电平时启用数据捕获电路,从而避免数据捕获电路的错误触发。在可编程前导码部分之后和数据读取期期间,数据选通信号在高低电平转换之间切换,同时伴随时钟信号以传输数据。数据读取期的最后一次转换之后的时间称为后导码部分。因此,在对DDR DRAM进行读取操作期间,DQS_t和DQS_c在前导码部分和后导码部分中的切换不用于对DQ进行采样。也就是说,并非每次DQS_t或DQS_c的切换都用于对DQ进行采样。此外,不同的DRAM协议具有不同的前导码和后导码模式,因此设计能够支持所有模式的控制器是具有挑战性的。为了简化下游数字逻辑,丢弃未用于对DQ进行采样的切换是有用的。
此外,DDR DRAM在读取操作期间通常可在突发读取模式下工作。在突发读取模式下,地址可以在DDR DRAM内按顺序生成,以响应由控制器提供给DDR DRAM的读取命令,并且在接收到读取命令和寻址初始地址之后,数据将被连续读出,以响应在内部按顺序生成的地址,而无需主机提供所有读出数据的地址。在接收到读取命令后将触发读取突发。即,在读取延迟(指从提供读取命令到读出数据的第一位可以使用之间的延迟)之后,将开始以突发长度(指在控制器向DDR DRAM提供读取命令后从DDR DRAM连续读出的数据量)从DDRDRAM读取数据的过程,以响应读取命令。在两个连续的读取突发之间可能存在间隙,间隙的存在可能导致某些前导码部分被截断或某些后导码部分被合并。因此,如何在读取突发之间存在间隙的情况下关断差分接收器的不需要的输出变得更加困难。
发明内容
本发明提供了用于读取存储设备的存储器的系统、方法和装置,其可以支持具有不同前导码和后导码模式的不同协议。
本文公开了一种方法,包括:测量来自存储设备的存储器的第一读取突发和第二读取突发之间的时间间隔的长度,其中第一读取突发和第二读取突发是连续的,第一读取突发响应于存储器接收到的第一读取命令,第二读取突发响应于存储器接收到的第二读取命令;根据长度生成状态码,其中当长度为零时,状态码具有第一值,当长度等于或小于阈值时间长度但非零时,状态码具有第二值,并且当长度大于阈值时间长度时,状态码具有第三值;以及根据状态码控制存储设备的输出。
在一个方面中,控制输出包括将输出设置为固定值。
在一个方面中,输出来自存储设备中的差分接收器。
在一个方面中,长度基于第一读取命令和第二读取命令之间的时间间隔来测量。
在一个方面中,该方法还包括将状态码入队到队列中。
在一个方面中,该方法还包括在根据状态码控制存储设备的输出之后,将状态码从队列中出队。
在一个方面中,存储器是闪存或动态随机存取存储器(DRAM)。
在一个方面中,该方法还包括根据状态码确定时间段,并在时间段内将输出设置为固定值;其中时间段在第一读取突发和第二读取突发之间。
在一个方面中,输出来自存储设备中的差分接收器,并且该方法还包括:在差分接收器的输入的每次切换时,基于状态码和计数器的当前计数值将计数器设置为下一个计数值,其中(A)当当前计数值为第一预定义数且状态码具有第一值时,下一个计数值为第二读取突发的长度;(B)当当前计数值为第一预定义数且状态码具有第二值时,下一个计数值为第二读取突发的长度加上固定阈值时间长度;(C)当当前计数值为第一预定义数且状态码具有第三值时,下一个计数值为第二预定义数;(D)当当前计数值为第二预定义数时,下一个计数值为第二读取突发的长度;以及(E)当当前计数值既不是第一预定义数也不是第二预定义数时,下一个计数值为当前计数值减去一个步长。时间段从第一读取突发的结束开始,并在下一个计数值不大于第二读取突发的长度且不等于第二预定义数时结束。
在一个方面中,第二读取突发的长度为4个时钟周期或8个时钟周期。
在一个方面中,固定阈值时间长度为1个时钟周期。
在一个方面中,第一预定义数为1,第二预定义数为0。
本文公开了一种控制器,其被配置为:测量来自存储设备的存储器的第一读取突发和第二读取突发之间的时间间隔的长度,其中第一读取突发和第二读取突发是连续的,第一读取突发响应于存储器接收到的第一读取命令,第二读取突发响应于存储器接收到的第二读取命令;根据长度生成状态码,其中当长度为零时,状态码具有第一值,当长度等于或小于阈值时间长度但非零时,状态码具有第二值,并且当长度大于阈值时间长度时,状态码具有第三值;以及根据状态码控制存储设备的输出。
在一个方面中,控制器还被配置为将输出设置为固定值。
在一个方面中,输出来自存储设备中的差分接收器。
在一个方面中,控制器还被配置为根据状态码确定时间段,并在时间段内将输出设置为固定值;其中时间段在第一读取突发和第二读取突发之间。
在一个方面中,控制器包括被配置为对时间段进行计数的计数器,输出来自存储设备中的差分接收器,并且控制器还被配置为:在差分接收器的输入的每次切换时,基于状态码和计数器的当前计数值将计数器设置为下一个计数值;其中(A)当当前计数值为第一预定义数且状态码具有第一值时,下一个计数值为第二读取突发的长度;(B)当当前计数值为第一预定义数且状态码具有第二值时,下一个计数值为第二读取突发的长度加上固定阈值时间长度;(C)当当前计数值为第一预定义数且状态码具有第三值时,下一个计数值为第二预定义数;(D)当当前计数值为第二预定义数时,下一个计数值为第二读取突发的长度;以及(E)当当前计数值既不是第一预定义数也不是第二预定义数时,下一个计数值为当前计数值减去一个步长。时间段从第一读取突发的结束开始,并在下一个计数值不大于第二读取突发的长度且不等于第二预定义数时结束。
本文公开了一种系统,其包括上述的任何一个控制器,其中该系统是固态驱动器(SSD)、闪存驱动器、主板、处理器、计算机、服务器、游戏设备或移动设备。
本文公开了一种非瞬时性机器可读介质,其上记录有信息,其中该信息在被硬件处理器系统读取时,使得硬件处理器系统执行上述的任何一种方法。
附图说明
图1A是存储设备的简化框图。
图1B是图1A中的存储设备的控制器的简化框图。
图2是在图1A中的存储设备的存储器的读取操作中使用的信号的时序图。
图3是在图1A中的存储设备的存储器的读取操作中使用的信号的时序图。
图4是在图1A中的存储设备的存储器的读取操作中使用的信号的时序图。
图5是根据一个实施方式的在读取操作期间控制存储设备的输出的方法的流程图。
图6是根据一个实施方式的生成状态码的时序图。
图7是根据一个实施方式的用于控制差分接收器的输出的信号的时序图。
图8是根据一个实施方式的用于控制差分接收器的输出的信号的时序图。
图9是根据一个实施方式的用于控制差分接收器的输出的信号的时序图。
图10是根据一个实施方式的用于控制差分接收器的输出的信号的时序图。
图11根据一个实施方式示出了基于状态码的计数值的变化。
图12是根据一个实施方式的控制器的框图。
图13是根据一个实施方式的系统的框图。
具体实施方式
现在将参考附图详细描述根据本发明的具体实施方式。在各个图中,相同的元件用相同的附图标记表示以保持一致性。
为了便于理解本发明,在具体实施方式的描述之前,将在下面定义一些术语。
在本文中以及在权利要求书中,后缀“_t”和“_c”用于表示差分信号对的真值和补值。例如,CK_t和CK_c是一对差分时钟信号,其中CK_t是真时钟信号,CK_c是补时钟信号。又如,DQS_t和DQS_c是一对差分数据选通信号,其中DQS_t是真数据选通信号,DQS_c是补数据选通信号。
在本文中以及在权利要求书中,术语“队列”是指以序列方式维护的元素的集合,可以通过在序列的一端添加元素和在序列的另一端移除元素来进行修改。按照惯例,用于添加元素的序列的一端可称为队列的尾部,用于移除元素的一端可称为队列的头部,类似于人们排队等待货物或服务时使用的词语。在本文中以及在权利要求书中,术语“入队”是指在序列的一端(尾部)添加元素的操作,术语“出队”是指从序列的另一端(头部)移除元素的操作。入队和出队操作使队列成为先进先出(FIFO)数据结构,其中添加到队列中的第一个元素将是第一个被移除的元素。
在本文中以及在权利要求书中,术语“长度”是指在相应时间段内测量的时钟周期数,而不是绝对时间,除非另有说明。例如,读取突发长度为4意味着读取突发长度为4个时钟周期。再如一个例子,前导码长度为2意味着前导码长度为2个时钟周期。
在本说明书中以及在权利要求书中,术语“读取命令”是指由控制器发出的用于启动对存储设备的存储器的突发读取访问的命令。
在本文中以及在权利要求书中,术语“读取延迟”(RL)是指可以用时钟周期来衡量的在提供读取命令和读出数据的第一位可用之间的延迟。例如,当RL设置为11时,即RL=11,数据在读取命令被提供给存储设备的存储器后的11个时钟周期从存储设备的存储器输出。
在本文中以及在权利要求书中,术语“读取突发”是指在RL之后,响应于单个读取命令,以突发长度从存储设备的存储器连续读取数据的过程,术语“连续的读取突发”是指两个读取突发之间没有其他读取突发,但它们之间可能有时间间隔。
在本文中以及在权利要求书中,术语“突发长度”是指在提供单个读取命令后从存储设备读取的数据量,以时钟周期为单位。例如,当突发长度为4时,响应于单个读取命令,将连续读出4个时钟周期的数据。
本发明提供了用于读取存储设备的存储器的系统、方法和设备。在本文中以及在权利要求书中,存储设备可以是用于存储、传送或提取数据或信息的任何类型的计算硬件。存储设备至少包括一个存储器。存储设备可以将存储器和控制器集成在同一芯片中。存储设备可以是计算机、服务器或计算设备的内部或外部设备。存储设备的示例可以包括但不限于各种类型的动态随机存取存储器(DRAM)模块,如同步DRAM(SDRAM)模块和双倍数据速率DRAM(DDR DRAM)模块、闪存模块以及它们的组合。其中,DDR DRAM已经从双倍数据速率1(DDR1)发展到DDR2、DDR3、DDR4、DDR5等。在下文中,DDR4 DRAM被用作示例来描述根据本发明的在读取操作期间控制存储设备输出的技术。然而,根据本发明的各种实施方式的技术也可以用于其他类型的存储设备。
图1A示意性地示出了根据一个实施方式的存储设备1000的简化框图。存储设备1000包括存储器100(例如,DDR4 DRAM 100)、存储器控制器200以及用于在存储器100和存储器控制器200之间传输信号的接口300。有四类信号,即时钟信号、控制信号、地址信号和数据信号。图1A中仅示出了在存储器100上执行读取操作时的信号。还可能有其他信号,如复位信号。在下文中,术语“存储器”和术语“DDR4 DRAM”可以互换使用。存储器绝不局限于DDR4 DRAM。
图1A中所示的信号将在此简要介绍。时钟信号包括真时钟CK_t和补时钟CK_c,用于为DDR4 DRAM 100的内部定时同步提供差分时钟输入。所有控制和地址信号在CK_t的上升(正)边沿和CK_c的下降(负)边沿的交叉处进行采样。控制信号包括时钟使能CKE、片选CS、激活命令ACT、行地址选通RAS、列地址选通CAS和写使能WE。当CKE处于高电平时,内部时钟信号被激活。在DDR4 DRAM 100的读取操作期间,CKE始终处于高电平。当CS处于低电平时,整个DDR4 DRAM 100被使能,当CS处于高电平时,整个DDR4 DRAM 100被禁用。因此,在DDR4 DRAM 100的读取操作期间,CS始终处于低电平。当CKE处于高电平且CS处于低电平时,ACT、RAS、CAS和WE共同构成DDR4 DRAM 100的命令信号集,用于选择诸如读取、写入、激活和刷新等命令。例如,当ACT处于高电平、RAS处于高电平、CAS处于低电平且WE处于高电平时,选择读取命令;当ACT处于高电平、RAS处于高电平、CAS处于低电平且WE处于低电平时,选择写入命令。地址信号包括存储体组地址(bank group address)BG和存储体地址(bankaddress)BA。BG和BA用于提供要从DDR4 DRAM 100读取/写入的数据的物理地址。数据信号包括数据信号DQ和数据选通信号DQS_t和DQS_c。在DDR4 DRAM 100的读取操作期间,DQS_t和DQS_c的差分信号用于对DQ进行采样,并且当DQ被传输时,DQS_t和DQS_c差分地翻转。当DQS_t和DQS_c处于不同电平时,差分信号从存储器控制器200中的差分接收器输出。如图1A所示,除了数据信号之外,其他信号都是由存储器控制器200驱动的单向信号。
图1B示出,存储器控制器200包括差分接收器,该差分接收器接收DQS_t和DQS_c的差分信号。根据一个实施方式,并如下文详细描述的,存储器控制器200可以关断差分接收器的输出Rec_O的不需要的部分,例如,使用与门。
图2示意性地示出了根据一个实施方式,在图1A的DDR4 DRAM 100的读取操作中使用的信号的时序图。如图所示,时钟信号CK_t是一个周期性方波信号,其占空比基本上等于50%,周期长度为T,时钟信号CK_c与时钟信号CK_t互补。命令、存储体组地址BG和存储体地址BA信号在CK_t的上升沿和CK_c的下降沿的交叉处进行采样。具体地,第一读取命令201以及与第一读取命令201对应的存储体组地址BG和存储体地址BA信号(即BGa和存储体Col_n)在T0处CK_t的上升沿和CK_c的下降沿的交叉处被采样,第二读取命令202以及与第二读取命令202对应的BG和BA信号(即BGb和存储体Col_b)在T4处CK_t的上升沿和CK_c的下降沿的交叉处被采样。因此,第一读取命令201和第二读取命令202之间的时间间隔tCCD_S为4个时钟周期(tCCD_S=4)。
DDR4 DRAM 100的读取操作以读取突发模式执行。读取突发模式意味着,当寻址初始地址并完成读取操作时,可以在不重新寻址的情况下读取初始地址之后的连续地址的数据,从而节省时间并提高读取性能。具体地,当第一读取命令201以及地址BGa和Bank Col_n被提供给DDR4 DRAM 100时,在读取延迟RL(在本例中RL=11)之后,响应于第一读取命令201,将从DDR4 DRAM 100连续读出具有突发长度的数据(即数据D0n至D0n+3);当第二读取命令202以及地址BGb和Bank Col_b被提供给DDR4 DRAM 100时,在读取延迟RL之后,响应于第二读取命令202,将从DDR4 DRAM 100连续读出具有突发长度的数据(即数据D0b至D0b+3)。在此,响应于第一读取命令201的读取突发被称为第一读取突发301,响应于第二读取命令202的读取突发被称为第二读取突发302。在图2所示的示例中,第一读取突发301和第二读取突发302之间的时间间隔22的长度为2,第一读取突发301的长度21和第二读取突发302的长度23也都为2。
在DDR4 DRAM 100中,数据选通信号DQS_t和DQS_c的差分信号用于对数据DQ进行采样,并且当DQ被传输时,DQS_t和DQS_c差分地翻转。数据选通信号包括具有由tRPRE表示的长度的可编程前导码部分、数据读取期以及具有由tRPST表示的长度的后导码部分。数据读取期对应于位于前导码部分和后导码部分之间的时间段。在图2所示的示例中,长度tRPRE(也称为前导码长度)为1,长度tRPST(也称为后导码长度)为1/2。由于第一读取突发301和第二读取突发302之间的时间间隔22的长度为2,因此时间间隔22的长度大于前导码长度tRPRE。如图2所示,在T13至T14之间的时间段内,数据选通信号DQS_t和DQS_c处于相同的电平。因此,用于输出数据选通信号DQS_t和DQS_c的差分信号的差分接收器在T13至T14之间的时间段内可能具有未知的输出。避免差分接收器的这种未知输出可以避免其下游数字逻辑的中断。
图3示意性地示出了,根据一个实施方式,在图1A的DDR4 DRAM 100的读取操作中使用的信号的时序图。图3的时序图与图2的时序图的区别仅在于某些信号参数具有不同的值,因此将省略对相同部分的详细描述以避免重复。具体而言,在图3所示的示例中,第一读取命令201和第二读取命令202之间的时间间隔tCCD_S/L为5(tCCD_S/L=5),第一读取突发301的长度21和第二读取突发302的长度23均为4,第一读取突发301和第二读取突发302之间的时间间隔22的长度为1。因此,时间间隔22的长度等于前导码长度tRPRE。如图3所示,数据选通信号DQS_t和DQS_c总是从第一读取突发301的开始到第二读取突发302的结束差分地翻转。然而,在第一读取突发301和第二读取突发302之间的时间间隔22期间仍然存在前导码翻转。在时间间隔22期间阻断差分接收器的输出可以简化下游的数字逻辑。
图4示意性地示出了,根据一个实施方式,在图1A的DDR4 DRAM 100的读取操作中使用的信号的时序图。图4的时序图与图2的时序图的区别仅在于某些信号参数具有不同的值,因此将省略对相同部分的详细描述以避免重复。具体而言,在图4所示的示例中,前导码长度tRPRE为2,第一读取突发301的长度21和第二读取突发302的长度23均为4,第一读取突发301和第二读取突发302之间的时间间隔22的长度为0。如图4所示,数据选通信号DQS_t和DQS_c总是从第一读取突发301的开始到第二读取突发302的结束差分地翻转。此外,由于第一读取突发301和第二读取突发302之间的时间间隔22为0,因此在第一读取突发301和第二读取突发302之间不存在前导码翻转。因此,在本实施方式中,不需要特别控制差分接收器的输出。
图2至图4所示的实施方式代表三种不同的情况,其中存储器控制器200中的差分接收器的输出可能需要被控制。鉴于这些情况,本发明的一个方面提供了一种在读取操作期间控制存储设备的输出的方法500。该方法不仅能够关断差分接收器的输出的不需要的部分,而且还支持具有不同前导码和后导码模式的不同DRAM协议。如图5所示,方法500包括步骤S501至S503,下面将对其进行详细描述。
在步骤S501中,测量第一读取突发和第二读取突发之间的时间间隔的长度,其中第一读取突发和第二读取突发是连续的(即,在第一读取突发和第二读取突发之间没有其他读取突发)。第一读取突发是响应于DDR4DRAM 100接收到的第一读取命令,第二读取突发是响应于DDR4 DRAM 100接收到的第二读取命令。具体地,第一读取突发是指响应于第一读取命令,在读取延迟之后,从DDR4 DRAM 100连续读取具有第一突发长度的数据的过程,第二读取突发是指响应于第二读取命令,在读取延迟之后,从DDR4 DRAM 100连续读取具有第二突发长度的数据的过程。
例如,对于图2所示的情况1,第一读取突发对应于在T11至T13期间从DDR DRAM100读取数据D0n至D0n+3,第二读取突发对应于在T15至T17期间从DDR DRAM 100读取数据D0b至D0b+3,时间间隔的长度为2。再如,对于图3所示的情况2,第一读取突发对应于在T11至T15期间从DDR DRAM 100读取数据D0n至D0n+7,第二读取突发对应于在T16至T20期间从DDR DRAM 100读取数据D0b至D0b+7,时间间隔的长度为1。又如,对于图4所示的情况3,第一读取突发对应于在T11至T15期间从DDR DRAM 100读取数据D0n至D0n+7,第二读取突发对应于在T16至T20期间从DDR DRAM 100读取数据D0b至D0b+7,时间间隔的长度为1。
在一个实施方式中,方法500可以在步骤S501之前还包括确定第一读取命令和第二读取命令之间的时间间隔的步骤。然后,在步骤S501中,基于第一读取命令和第二读取命令之间的时间间隔来测量第一读取突发和第二读取突发之间的时间间隔的长度。每个读取命令包括具有初始地址和其他标准参数的突发长度。例如,第一读取命令包括第一突发长度,第二读取命令包括第二突发长度。在一个实施方式中,第一读取突发和第二读取突发之间的时间间隔的长度可以通过从第一读取命令和第二读取命令之间的时间间隔中减去第一突发长度来获得。例如,在图2的情况1中,第一读取命令和第二读取命令之间的时间间隔tCCD_S为4,第一突发长度为2,因此第一读取突发和第二读取突发之间的时间间隔22的长度为2(=4-2)。再如,在图3的情况2中,第一读取命令和第二读取命令之间的时间间隔tCCD_S/L为5,第一突发长度为4,因此第一读取突发和第二读取突发之间的时间间隔22的长度为1(=5-4)。又如,在图4的情况3中,第一读取命令和第二读取命令之间的时间间隔tCCD_S为4,第一突发长度为4,因此第一读取突发和第二读取突发之间的时间间隔22的长度为0(=4-4)。
在步骤S502中,根据步骤S501中确定的时间间隔的长度生成状态码。在本发明实施方式中,状态码设置为针对不同长度的时间间隔具有3个不同的值。具体地,当长度为零时状态码具有第一值,当长度等于或小于阈值时间长度但为非零时状态码具有第二值,当长度大于阈值时间长度时状态码具有第三值。在一个实施方式中,阈值时间长度可以设置为前导码长度。例如,对于上述的情况1和情况3,阈值时间长度可以为4,对于上述的情况2,阈值时间长度可以为5。此外,在一个实施方式中,第一值可以设置为3,第二值可以设置为2,第三值可以设置为1。应当注意,第一值、第二值和第三值也可以是任何其他值,只要它们彼此不同即可。
图6示意性地示出了根据一个实施方式生成状态码的时序图。如图6所示,在发出第一读取命令201之后,确定第二读取命令202是否在两个读取命令之间的最小间隔时间加上前导码长度的时间内到达。如果第二读取命令202未在上述时间内到达,则第一读取命令201和第二读取命令202之间的时间间隔必须大于前导码长度。两个读取命令之间的最小间隔通常是读取突发长度,例如4或8个时钟周期。在第二读取命令202到达之后以及响应于第一读取命令的第一读取突发到达之前,确定响应于第一读取命令201和第二读取命令202的两个读取突发之间的时间间隔,并相应地生成表示两个读取突发之间的时间间隔的状态码。
在本实施方式中,当两个读取突发之间的时间间隔为零时,生成状态码3;当两个读取突发之间的时间间隔等于或小于前导码长度且非零时,生成状态码2;当两个读取突发之间的时间间隔大于前导码长度时,生成状态码1。然后,将状态码入队到队列中(例如,推入FIFO)。对于后续的读取命令203和204等,以类似的方式生成状态码并将其入队到队列中。由于本实施方式中假设前导码长度为1个时钟周期,因此针对0间隔生成状态码3,针对1间隔(即1个时钟周期间隔)生成状态码2,针对+1间隔(即超过1个时钟周期间隔)生成状态码3,如图6所示。尽管在本实施方式中针对三个不同的间隔生成状态码3、2和1,但是状态码可以采用任何其他值,只要它们彼此不同即可。因此,本发明不限于值3、2和1。
在步骤S503中,根据步骤S502中生成的状态码控制存储设备的输出。在一个实施方式中,可以根据状态码确定时间段,然后在该时间段内将存储设备的差分接收器的输出设置为固定值,其中该时间段位于第一读取突发和第二读取突发之间。例如,可以通过禁用差分接收器的输出来将差分接收器的输出设置为固定的低电平。
在一个实施方式中,可以根据状态码确定时间段,然后根据状态码控制存储设备中差分接收器的输出。在本实施方式中,可以使用计数器来计数根据状态码确定的时间段。具体地,在差分接收器的输入的每次翻转时,根据状态码和计数器的当前计数值将计数器设置为下一个计数值。在一个示例中,(A)当当前计数值为第一预定义数且状态码具有第一值时,下一个计数值为第二读取突发的长度;(B)当当前计数值为第一预定义数且状态码具有第二值时,下一个计数值为第二读取突发的长度加上固定阈值时间长度;(C)当当前计数值为第一预定义数且状态码具有第三值时,下一个计数值为第二预定义数;(D)当当前计数值为第二预定义数时,下一个计数值为第二读取突发的长度;以及(E)当当前计数值既不是第一预定义数也不是第二预定义数时,下一个计数值为当前计数值减去步长。在本示例中,时间段从第一读取突发的结束开始,并在下一个计数值不大于第二读取突发的长度且不等于第二预定义数时结束。步长可以为1,但也可以是任何其他正值。图11示出了根据上述描述,基于状态码计数值如何变化。
接下来,为了进一步解释步骤S503,将参考图7至图10详细描述使用计数器和状态码的组合控制DDR DRAM的差分接收器的输出的示例(示例A至D)。图7至图10分别示意性地示出了示例A至D中数据选通信号DQS和DQSB、计数器值Con、状态码State_C、接收器输出Rec_O、接收器使能Rec_E和门控接收器输出Gated_Rec_O的时序图。
关于示例A至C,读取突发长度为4。计数器初始化为0,然后在前导码部分期间DQS的翻转时计数器值变为4。接下来,在Rec_O的翻转时计数器值减1。当计数器值达到1时,从队列中出队状态码。然后,根据状态码的值确定计数器的下一个值。具体地,在示例A中,状态码的值为3,即两个连续的读取突发之间没有时间间隔,计数器的下一个值变为4。在示例B中,状态码的值为2,即两个连续的读取突发之间的时间间隔等于或小于前导码长度但非零,由于第二读取突发的前导码翻转需要额外计数一次,计数器的下一个值变为5。在示例C中,状态码的值为1,即两个连续的读取突发之间的时间间隔大于前导码长度,计数器的下一个值变为0。当计数器值大于4或等于0时,将Rec_E设置为低电平,从而关断差分接收器的输出。例如,在图8和图9中,在由24表示的时间段内,差分接收器的输出被关断。具体地,在该时间段内,差分接收器的输出被设置为低电平。
关于示例D,与示例A至C不同,读取突发长度为8个时钟周期。计数器也初始化为零,然后在前导码部分期间DQS的翻转时计数器值变为8。接下来,在Rec_O的翻转时计数器值减1。当计数器值达到1时,从队列中出队状态码。然后,根据状态码的值确定计数器的下一个值。当状态码的值为3时,即两个连续的读取突发之间没有时间间隔,计数器的下一个值为8。当状态码的值为2时,即两个连续的读取突发之间的时间间隔等于或小于前导码长度但非零,考虑到第二读取突发的前导码翻转,计数器的下一个值为9。当状态码的值为1时,即两个连续的读取突发之间的时间间隔大于前导码长度,计数器的下一个值为0。当计数器的值大于8或等于0时,将Rec_E设置为低电平,从而关断差分接收器的输出。例如,在图10中,在由24表示的时间段内,差分接收器的输出被关断。
本发明的一个方面提供了一种控制器。在一个实施方式中,该控制器被配置为测量来自存储器存储设备的第一读取突发和第二读取突发之间的时间间隔的长度,其中第一读取突发和第二读取突发是连续的,第一读取突发是响应于存储器接收到的第一读取命令,第二读取突发是响应于存储器接收到的第二读取命令。例如,第一读取突发和第二读取突发是图2所示的第一读取突发301和第二读取突发302,时间间隔的长度是图2所示的时间间隔22的长度。
在一个实施方式中,该控制器还被配置为根据时间间隔的长度生成状态码,其中当长度为零时状态码具有第一值,当长度等于或小于阈值时间长度但非零时状态码具有第二值,当长度大于阈值时间长度时状态码具有第三值。例如,当长度为零时,生成状态码3;当长度等于或小于1(本例中阈值时间长度为1)且非零时,生成状态码2;当长度大于1时,生成状态码1,如图6所示。
在一个实施方式中,该控制器还被配置为根据状态码控制存储设备的输出。在一个实施方式中,该控制器可以被配置为将存储设备的输出设置为固定值。在一个实施方式中,输出可以来自存储设备中的差分接收器,并且该控制器被配置为将差分接收器的输出设置为固定值。在一个实施方式中,输出可以来自存储设备中的差分接收器,并且该控制器可以被配置为根据状态码确定时间段,并在该时间段内将差分接收器的输出设置为固定值,其中该时间段位于第一读取突发和第二读取突发之间。
在一个实施方式中,该控制器可以是图12所示的控制器1100。控制器1100包括逻辑1101和可选的计数器1102。逻辑1101被配置为执行以下操作中的至少一个:测量来自存储设备的存储器的第一读取突发和第二读取突发之间的时间间隔的长度;根据长度生成状态码;根据状态码确定时间段;在存储设备中差分接收器的输入的每次翻转时,根据状态码和计数器的当前计数值将计数器设置为下一个计数值;以及根据状态码控制差分接收器的输出。这种逻辑可以通过硬件、固件、软件或其组合来实现。
计数器1102被配置为计数时间段,其中,该时间段从第一读取突发的结束处开始,并在下一个计数值不大于第二读取突发的长度且不等于第二预定义数时结束。在一个实施方式中,计数器的下一个计数值基于状态码和计数器的当前计数值以如下方式确定:(A)当当前计数值为第一预定义数且状态码具有第一值时,下一个计数值为第二读取突发的长度;(B)当当前计数值为第一预定义数且状态码具有第二值时,下一个计数值为第二读取突发的长度加上固定阈值时间长度;(C)当当前计数值为第一预定义数且状态码具有第三值时,下一个计数值为第二预定义数;(D)当当前计数值为第二预定义数时,下一个计数值为第二读取突发的长度;以及(E)当当前计数值既不是第一预定义数也不是第二预定义数时,下一个计数值为当前计数值减去一个步长。例如,第一预定义数可以为1,第二预定义数可以为0。同时,应当注意到,(E)中提到的步长优选为1,但也可以是任何其他正值。
本发明的一个方面提供了一个系统1200。如图13所示,系统1200包括控制器1100。控制器1100可以是上述各种实施实施方式中的任何一个控制器。例如,系统1200可以是固态驱动器(SSD)、闪存驱动器、母板、处理器、计算机、服务器、游戏设备或移动设备。
本发明的一个方面提供了一种非暂时性机器可读介质。非暂时性机器可读介质存储信息,当由硬件处理器系统读取时,使得硬件处理器系统执行上述各种实施方式中的任何一种方法。机器可读介质可以是计算机可读介质、处理器可读介质或具有计算机可读程序代码的计算机可用介质。本领域技术人员可以理解,实现上述实施方式所需的其他指令和数据也可以存储在机器可读介质上。存储在机器可读介质上的指令可以由硬件处理器系统执行,以实现相应的操作或任务。
虽然本文已经公开了各种方面和实施方式,但是本领域技术人员将意识到其他方面和实施方式。本文公开的各种方面和实施方式仅为说明的目的而非旨在限制,真正的保护范围和精神由权利要求指出。

Claims (22)

1.一种在读取操作期间控制存储设备的输出的方法,其特征在于,包括:
测量来自存储设备的存储器的第一读取突发和第二读取突发之间的时间间隔的长度,其中所述第一读取突发和所述第二读取突发是连续的,所述第一读取突发是响应于所述存储器接收到的第一读取命令,并且所述第二读取突发是响应于所述存储器接收到的第二读取命令;
根据所述长度生成状态码,其中当所述长度为零时,所述状态码具有第一值,当所述长度等于或小于阈值时间长度但非零时,所述状态码具有第二值,并且当所述长度大于所述阈值时间长度时,所述状态码具有第三值;以及
根据所述状态码控制所述存储设备的输出。
2.如权利要求1所述的方法,其特征在于,控制所述输出包括将所述输出设置为固定值。
3.如权利要求1所述的方法,其特征在于,所述输出来自所述存储设备中的差分接收器。
4.如权利要求1所述的方法,其特征在于,所述长度基于所述第一读取命令和所述第二读取命令之间的时间间隔来测量。
5.如权利要求1所述的方法,其特征在于,还包括将所述状态码入队到队列中。
6.如权利要求5所述的方法,其特征在于,还包括在根据所述状态码控制所述存储设备的输出之后,将所述状态码从所述队列中移出。
7.如权利要求1所述的方法,其特征在于,所述存储器是闪存或动态随机存取存储器(DRAM)。
8.如权利要求2所述的方法,其特征在于,还包括根据所述状态码确定时间段,并在所述时间段内将所述输出设置为所述固定值;其中所述时间段在所述第一读取突发和所述第二读取突发之间。
9.如权利要求8所述的方法,其特征在于,所述输出来自所述存储设备中的差分接收器,并且所述方法还包括:
在所述差分接收器的输入的每次切换时,基于所述状态码和计数器的当前计数值将计数器设置为下一个计数值,
其中(A)当所述当前计数值为第一预定义数并且所述状态码具有所述第一值时,所述下一个计数值是所述第二读取突发的长度;(B)当所述当前计数值为所述第一预定义数并且所述状态码具有所述第二值时,所述下一个计数值是所述第二读取突发的长度加上所述固定阈值时间长度;(C)当所述当前计数值为所述第一预定义数并且所述状态码具有所述第三值时,所述下一个计数值是第二预定义数;(D)当所述当前计数值为所述第二预定义数时,所述下一个计数值是所述第二读取突发的长度;以及(E)当所述当前计数值既不是所述第一预定义数也不是所述第二预定义数时,所述下一个计数值是所述当前计数值减去一个步长;
其中所述时间段开始于所述第一读取突发的结束,并在所述下一个计数值不大于所述第二读取突发的长度且不等于所述第二预定义数时结束。
10.如权利要求9所述的方法,其特征在于,所述第二读取突发的长度是4个时钟周期或8个时钟周期。
11.如权利要求9所述的方法,其特征在于,所述固定阈值时间长度是1个时钟周期。
12.如权利要求9所述的方法,其特征在于,所述第一预定义数是1,并且所述第二预定义数是0。
13.一种控制器,其特征在于,配置为:
测量来自存储设备的存储器的第一读取突发和第二读取突发之间的时间间隔的长度,其中所述第一读取突发和所述第二读取突发是连续的,所述第一读取突发是响应于所述存储器接收到的第一读取命令,并且所述第二读取突发是响应于所述存储器接收到的第二读取命令;
根据所述长度生成状态码,其中当所述长度为零时,所述状态码具有第一值,当所述长度等于或小于阈值时间长度但非零时,所述状态码具有第二值,并且当所述长度大于所述阈值时间长度时,所述状态码具有第三值;以及
根据所述状态码控制所述存储设备的输出。
14.如权利要求13所述的控制器,其特征在于,所述控制器还被配置为将所述输出设置为固定值。
15.如权利要求13所述的控制器,其特征在于,所述输出来自所述存储设备中的差分接收器。
16.如权利要求13所述的控制器,其特征在于,所述控制器还被配置为根据所述状态码确定时间段,并在所述时间段内将所述输出设置为固定值;其中所述时间段在所述第一读取突发和所述第二读取突发之间。
17.如权利要求15所述的控制器,其特征在于,所述控制器包括配置为计数所述时间段的计数器,所述输出来自所述存储设备中的差分接收器,并且所述控制器还被配置为:在所述差分接收器的输入的每次切换时,基于所述状态码和所述计数器的当前计数值将所述计数器设置为下一个计数值,
其中(A)当所述当前计数值为第一预定义数并且所述状态码具有所述第一值时,所述下一个计数值是所述第二读取突发的长度;(B)当所述当前计数值为所述第一预定义数并且所述状态码具有所述第二值时,所述下一个计数值是所述第二读取突发的长度加上固定阈值时间长度;(C)当所述当前计数值为所述第一预定义数并且所述状态码具有所述第三值时,所述下一个计数值是第二预定义数;(D)当所述当前计数值为所述第二预定义数时,所述下一个计数值是所述第二读取突发的长度;以及(E)当所述当前计数值既不是所述第一预定义数也不是所述第二预定义数时,所述下一个计数值是所述当前计数值减去一个步长;
其中所述时间段开始于所述第一读取突发的结束,并在所述下一个计数值不大于所述第二读取突发的长度且不等于所述第二预定义数时结束。
18.一种在读取操作期间控制存储设备的输出的系统,包括如权利要求13所述的控制器,其中,所述系统是固态驱动器(SSD)、闪存驱动器、母板、处理器、计算机、服务器、游戏设备或移动设备。
19.一种非瞬时性机器可读介质,其上记录有信息,其特征在于,当所述信息被硬件处理器系统读取时,使所述硬件处理器系统执行如权利要求1所述的方法。
20.如权利要求19所述的非瞬时性机器可读介质,其特征在于,当所述信息被所述硬件处理器系统读取时,还使所述硬件处理器系统将所述输出设置为固定值。
21.如权利要求20所述的非瞬时性机器可读介质,其特征在于,当所述信息被所述硬件处理器系统读取时,还使所述硬件处理器系统执行以下操作:根据所述状态码确定时间段,并在所述时间段内将所述输出设置为所述固定值;并且其中所述时间段在所述第一读取突发和所述第二读取突发之间。
22.如权利要求21所述的非瞬时性机器可读介质,其特征在于,所述输出来自所述存储设备中的差分接收器,并且当所述信息被所述硬件处理器系统读取时,还使所述硬件处理器系统执行以下操作:
在所述差分接收器的输入的每次切换时,基于所述状态码和计数器的当前计数值将计数器设置为下一个计数值,
其中(A)当所述当前计数值为第一预定义数并且所述状态码具有所述第一值时,所述下一个计数值是所述第二读取突发的长度;(B)当所述当前计数值为所述第一预定义数并且所述状态码具有所述第二值时,所述下一个计数值是所述第二读取突发的长度加上所述固定阈值时间长度;(C)当所述当前计数值为所述第一预定义数并且所述状态码具有所述第三值时,所述下一个计数值是第二预定义数;(D)当所述当前计数值为所述第二预定义数时,所述下一个计数值是所述第二读取突发的长度;以及(E)当所述当前计数值既不是所述第一预定义数也不是所述第二预定义数时,所述下一个计数值是所述当前计数值减去一个步长;并且
其中所述时间段开始于所述第一读取突发的结束,并在所述下一个计数值不大于所述第二读取突发的长度且不等于所述第二预定义数时结束。
CN202410374104.2A 2023-04-13 2024-03-29 读取存储设备存储器的系统、方法和装置 Pending CN118280404A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202318134266A 2023-04-13 2023-04-13
US18/134,266 2023-04-13

Publications (1)

Publication Number Publication Date
CN118280404A true CN118280404A (zh) 2024-07-02

Family

ID=91645477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410374104.2A Pending CN118280404A (zh) 2023-04-13 2024-03-29 读取存储设备存储器的系统、方法和装置

Country Status (1)

Country Link
CN (1) CN118280404A (zh)

Similar Documents

Publication Publication Date Title
CN111124998B (zh) 片上系统、其操作方法及包括该片上系统的电子设备
US11150686B2 (en) Apparatuses for reducing clock path power consumption in low power dynamic random access memory
US6445642B2 (en) Synchronous double data rate DRAM
KR100885388B1 (ko) 이배속 데이터, 다중-비트 기록을 위한 데이터 스트로브 동기화 회로 및 방법
JP2007525766A (ja) マルチポートメモリシステムにおける衝突検出
CN110800058A (zh) 用于使用共享地址路径在存取存储器排组的同时刷新另一存储器排组的系统和方法
US9218860B2 (en) Multiple data rate memory with read timing information
US10665286B2 (en) Pseudo static random access memory and control method thereof
EP0468141A2 (en) Memory
US20180294022A1 (en) Semiconductor device and method of operation
US20210295894A1 (en) Dram, memory controller and associated training method
US9406357B2 (en) Data capture system and method, and memory controllers and devices
CN111414324A (zh) 半导体系统
US7042777B2 (en) Memory device with non-variable write latency
CN113870914A (zh) 存储装置、包括其的半导体系统及其操作方法
CN118280404A (zh) 读取存储设备存储器的系统、方法和装置
US20120269017A1 (en) Delay circuit and latency control circuit of memory, and signal delay method thereof
US7782707B2 (en) Semiconductor memory device
US7652936B2 (en) Signal sampling apparatus and method for DRAM memory
JP4234126B2 (ja) メモリ、メモリ・アクセス制御方法
US6011728A (en) Synchronous memory with read and write mode
CN111556994B (zh) 命令控制系统、车辆、命令控制方法及非瞬态计算机可读介质
US20150380070A1 (en) Latch circuit and input/output device including the same
US20230266894A1 (en) Memory control apparatus, method for controlling memory control apparatus, and storage medium
WO2024077800A1 (zh) 时钟生成电路及存储器

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination