CN109964209A - 使用可变长度列命令的低功率存储器子系统 - Google Patents
使用可变长度列命令的低功率存储器子系统 Download PDFInfo
- Publication number
- CN109964209A CN109964209A CN201780069532.2A CN201780069532A CN109964209A CN 109964209 A CN109964209 A CN 109964209A CN 201780069532 A CN201780069532 A CN 201780069532A CN 109964209 A CN109964209 A CN 109964209A
- Authority
- CN
- China
- Prior art keywords
- length
- variable
- order
- data blocks
- column
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
- G11C7/08—Control thereof
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/18—Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2227—Standby or low power modes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Dram (AREA)
Abstract
系统和方法涉及降低包括处理器子系统和存储器子系统的处理系统的功率消耗和/或改善该处理系统的性能。可变长度列命令被使用以取代指向存储器子系统的存储体的同一页面的多个列命令。基于对指向同一页面的多个访问的检测将可变长度列命令提供给存储器子系统。存储器子系统被配置成在接收到可变长度列命令之际执行由该可变长度列命令指示的对应多个访问。
Description
相关申请的交叉引用
本专利申请要求于2016年11月11日提交的题为“LOW POWER MEMORY SUB-SYSTEMUSING VARIABLE LENGTH COLUMN COMMAND(使用可变长度列命令的低功率存储器子系统)”的美国临时专利申请No.62/420954的权益,该临时申请待决并且已被转让给本申请受让人并由此通过援引明确地整体纳入于此。
公开领域
所公开的各方面涉及处理系统。更具体地,示例性方面涉及使用可变长度列命令来降低功率消耗和/或改善性能。
背景
处理系统可包括协助存储位置,诸如包括主存储器的存储器子系统。对于具有大存储容量的主存储器实现,例如,使用动态随机存取存储器(DRAM)技术的双数据率(DDR)实现,存储器子系统可以在片外实现,例如,被集成到与访问存储器子系统的一个或多个处理器被集成到其上的处理器芯片或片上系统(SoC)不同的存储器芯片上。
存储器系统中的功耗是众所周知的一个挑战。本领域中已知有用于降低存储器中的功耗的若干技术,诸如电压调节。例如,通过考虑联合电子器件工程委员会(JEDEC)标准中针对低功率DDR(LPDDR)的若干世代或版本规定的供电电压可看出电压调节的趋势。针对LPDDR1的供电电压VDD是1.8V;针对LPDDR2和LPDDR3的供电电压VDD是1.2V;针对LPDDR4的供电电压VDD是1.1V。然而,对于将来的各世代(例如,LPDDR5以及之后),用于进一步进行电压调节的范围是有限的,因为如果供电电压持续降低,可能观察到由于存储器外围输入/输出(IO)电路系统的刷新操作和性能所施加的限制而引起的性能降级。因而,可通过进一步进行电压调节达成的任何功率效率增益可能被性能和质量降级而抵消。
为了降低功率消耗,为命令总线引入了单数据速率(SDR)模式,以用于在SoC和存储器子系统之间传送命令和地址事务,因为命令总线与数据总线相比曾被视为利用更低的带宽。然而,在SDR模式中,命令总线的带宽利用率被视为在上涨,例如在诸如游戏、视频回放和利用主设备或处理器(诸如SoC和DRAM上的图形处理单元(GPU)或多媒体控制器)之间的大数据传输的其他多媒体应用之类的应用的情形中。这是因为在常规实现中,针对数据块的每次传输将单独的列命令(例如,对于支持x8数据接口的DDR设备为16或32字节;或者对于支持x16数据接口的DDR设备为32或64字节)从SoC发送到存储器子系统中的DRAM。然而,此类应用中所传送的数据总量可能具有大得多的尺寸,例如,跨越整行或整页且有时跨越多行或多页,即使列命令是针对每个较小的数据块尺寸被发送的。
因而,可以看出,常规实现可能涉及被从SoC传送到存储器子系统的大量列命令,其中多个列命令指向DRAM的存储体的同一行或同一页内的不同列。在SoC和存储器子系统之间传送的多个列命令导致用于读/写操作的列命令的增加了的功率消耗或冗余。特别是当工业采用诸如LPDDR5及更高版本(其被设计为支持3.2至4GHz范围内的速度)等更新的标准时,由于多个列命令的增加的传输而导致的功率消耗开始发挥更显著的作用。
由于越来越需要降低处理系统中的功率消耗,特别是在先进技术节点(例如,7nm技术,这些技术可被视为用于诸如物联网和采用DRAM的更新的世代(诸如LPDDR5)的其他连通设备等系统)处,还可以看到要降低在SoC和存储器子系统之间的命令总线的功率消耗的对应需求。
概述
本发明的示例性方面包括涉及降低包括处理器子系统或SoC以及包括存储器(诸如DRAM)的存储器子系统的处理系统的功率消耗和/或改善上述处理系统的性能的系统和方法。在一些方面,可变长度列命令被用来取代指向例如DRAM的存储体的同一行或同一页的多个列命令。基于对指向同一行或同一页的多个访问的检测由SoC提供可变长度列命令。存储器子系统被配置成在接收到可变长度列命令之际执行由该可变长度列命令指示的对应多个访问。在SoC和存储器子系统之间的命令总线上传送可变长度列命令与多个列命令的对应传输相比消耗更少的功率。此外,针对存储体的特定行或页传送可变长度列命令减少了在此之前可以将后续命令传送到例如不同存储体的时间历时,这改善了性能。
附图简述
给出附图以帮助对本发明的各方面进行描述,且提供附图仅用于解说各方面而非对其进行限定。
图1A-C解说了常规处理系统的各方面。
图2A-D解说了根据本公开的示例性方面的示例性处理系统中的可变长度列命令的各实现。
图3A-E解说了常规处理系统和根据本公开的示例性方面配置的示例性处理系统中的命令序列的各实现的对比。
图4解说了根据本公开的示例性方面的与存储器子系统中的可变长度列命令的实现有关的流程图。
图5是示出其中可有利地采用本公开的诸方面的示例性无线通信系统的框图。
详细描述
在以下针对本发明的具体方面的描述和有关附图中公开了本发明的各方面。可构想出替换性方面而不背离本发明的范围。另外,本发明中众所周知的元素将不被详细描述或将被省去以免湮没本发明的相关细节。
措辞“示例性”在本文中用于意指“用作示例、实例、或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。类似地,术语“本发明的诸方面”并不要求本发明的所有方面都包括所讨论的特征、优点或操作模式。
本文所用的术语是仅出于描述特定方面的目的,而不意在限制本发明的诸方面。如本文中所使用的,单数形式的“一”、“某”和“该”旨在也包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括”、“具有”、“包含”和/或“含有”在本文中使用时指明所陈述的特征、整数、步骤、操作、要素、和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、要素、组件和/或其群组的存在或添加。
此外,许多方面以由例如计算设备的元件执行的动作序列的形式来描述。将认识到,本文中所描述的各种动作能由专用电路(例如,专用集成电路(ASIC))、由正被一个或多个处理器执行的程序指令、或由这两者的组合来执行。另外,本文中所描述的这些动作序列可被认为是完全体现在任何形式的计算机可读存储介质内,该计算机可读存储介质内存储有一经执行就将使相关联的处理器执行本文中所描述的功能性的对应计算机指令集。由此,本发明的各个方面可以用数种不同的形式来体现,所有这些形式都已被构想落在所要求保护的主题内容的范围内。另外,对于本文中描述的每一方面,任何此类方面的对应形式可在本文中被描述为例如“被配置成执行所描述的动作的逻辑”。
本公开的示例性方面涉及降低包括处理器子系统或SoC以及包括存储器(诸如DRAM)的存储器子系统的处理系统中的功率消耗。在一些方面,可变长度列命令被用来取代指向例如DRAM的存储体的同一行或同一页的多个列命令。基于对指向同一行或同一页的多个访问的检测由SoC提供可变长度列命令。存储器子系统被配置成在接收到可变长度列命令之际执行由该可变长度列命令指示的对应多个访问。在SoC和存储器子系统之间的命令总线上传送可变长度列命令相比多个列命令的传输而言消耗更少的功率。此外,针对存储体的特定行或页传送可变长度列命令减少了在此之前可以将后续命令传送到例如不同存储体的时间历时。因而,在可变长度列命令的示例性使用中还可以实现性能改善。
在图1A中,解说了常规处理系统100,其中片上系统(SoC)120被耦合到存储器子系统130(在图1B中更详细地示出)。SoC 120可以包括一个或多个处理元件,为了示例性解说的目的,其中的处理元件104a-e被代表性地示为多媒体(MM)处理器104a、系统处理器104b、图形处理单元(GPU)104c、调制器-解调器(调制解调器)104d、和应用处理器104e。即使未被明确地解说,也可以存在各种其他处理器或处理元件,诸如数字信号处理器、多核中央处理单元(CPU)等。处理元件104a-e可以被连接到存储器控制器108。处理元件104a-e可作出对访问存储器子系统130中的一个或多个存储体的请求,并且存储器控制器108控制这些访问请求。例如,存储器控制器108可以包括仲裁器152,例如用于在从处理元件104a-e接收的各种请求之间进行仲裁,并且在命令事务队列154中将它们排队。命令调度器156可以从命令事务队列154中的事务中进行选择,以向未决请求中的一者或多者准予存储器访问(例如,每个时钟周期)。
附加地,在存储器子系统130中的DRAM的情形中,如本领域中已知的,存储器单元的周期性刷新是必需的,并且刷新计数器162可以向命令调度器156提供周期性消息以向存储器子系统130提供刷新命令。来自命令调度器156的事务被传送到存储器接口110,该存储器接口110可以包括用于命令的物理层模块,如CA PHY块110a所示。要为某些请求(例如,写入命令)传送的对应数据在数据缓冲器158中被排队,并且在数据管理块160对所选事务的控制下,数据被提供给用于数据的物理层模块,如存储器接口110中的DQ PHY块110b所示。经由DQ PHY块110b和数据管理块160从存储器子系统130接收的数据(例如,读取数据)也可以在被提供给作出请求的处理元件104a-e之前按照特定实现被放置在相同的数据缓冲器158或不同的数据缓冲器中。各种其他控制逻辑和功能块可以存在于存储器控制器108中并且更一般地存在于SoC 120中,但是这些与本公开没有密切关系,并由此在本文中没有被进一步详细地讨论。
两条总线被示为用于在SoC 120和存储器子系统130之间传送命令和数据-命令总线(也被称为CA)114和数据总线(也被称为DQ)112,命令总线用于将地址、命令等从SoC120传送到存储器子系统130,数据总线可以是双向总线,以用于将写入数据从SoC 120传送到存储器子系统130并且在SoC 120处接收来自存储器子系统130的读取数据。
现在参考图1B,更详细地示出了存储器子系统130的常规实现。存储器子系统130可以包括DRAM,其具有集体由附图标记180示出的多个存储体。每个存储体180可以被布置为具有多个行和多个列的存储器阵列。在DRAM技术中,行也被称为页面。每个行或页(其可以是例如2KB)可以包括多个(例如,16或32字节的、跨越对应数量的列的)数据块。例如经由CA总线114接收的写入命令可以包括被示为CA[5:0]的命令地址以及其他成分,命令地址由控制逻辑170的命令地址解码器172解码以向锁存器176提供目标数据块的列地址。列解码器177选择针对目标数据块要被访问的特定列。相应地,行地址复用器174将针对特定命令而待激活的目标存储体180的行或页地址提供给行地址解码器和锁存器175。在常规实现中,页面的每个数据块被按以上所描述的方式写入单独的事务中。为简洁起见,从本文中的讨论中省略了可能存在的存储器子系统130的各种其他组件(例如,读取锁存器、写入数据FIFO等),这些组件与本公开并不特别相关。
现在结合地参考图1A-B,在从命令事务队列154中的未决请求中进行选择时,命令调度器156可以应用各种策略、算法、命令事务队列154的重排序等,以使某些请求优先于其他请求,而并非例如总是遵循先进先出类型的办法。在一个示例中,除了其他策略之外,命令调度器156可以应用“打开页面策略”,其中如果存储体180的目标页(或行)已被打开以服务先前或当前请求,则指向该打开的页面的未决请求可以被优待。这样,打开的页面在被关闭之前可以被访问以进行不止是访问请求的服务。对于展现出空间局部性(即,可能具有在存储体的同一页面内的目标地址)的存储器访问请求,打开页面策略可以改善性能并且还改善功率效率,因为对页面的重复且高耗电的打开(激活)和关闭可被减少。
存储体180的每一页面可包括若干数据块,例如,每个数据块的比特长度为16或32字节。在常规实现中,对存储体的页面的写入操作按照要被写入的每个数据块的列命令来被提供。利用打开页面策略,如果多个数据块被定为目标,则对应多个列命令由命令调度器156选择并且被背靠背地提供(也被称为列命令的突发)。
例如,结合地参考图1A和1C,示出了在SoC 120和存储器子系统130之间的CA总线114上被发送的列命令的突发。具体地,为了执行写入操作,通过发送被示为ACT1和ACT2命令的激活命令来首先激活被定为目标的特定存储体。(例如,两个周期的)写入命令随后被发送(被示为重复达两个周期的WR1),接着是对应的列命令(被示为重复达两个周期的CAS2),以用于写入每个数据块(例如,在DQ总线112上被发送的DAT1-DAT8)。针对被列命令的突发定为目标的每个数据块(例如,同一页面内的多个数据块)重复写入命令和列命令。这些多个列命令中的每一个列命令(例如,后跟CAS2命令的WR1命令)不仅在CA总线114上消耗功率,而且对于伴随电路系统(如在图1A-B中针对SoC 120和存储器子系统130所示和描述的)也消耗功率。
为了减少上述功率消耗,在各示例性方面公开了一种可变长度列命令。取代多个常规列命令的突发,每个常规列命令指向存储体的同一页面的单个数据块,可变长度列命令可被用来使写入操作指向被多个列命令定为目标的多个数据块。在各示例性方面,与被用来在常规处理系统100中完成相同任务的多个列命令相比,对于CA总线114上的传输以及SoC和存储器子系统上的对应电路系统两者而言可变长度列命令消耗更少的功率。
参考图2A,示出了被配置成实现示例性可变长度列命令的示例性处理系统200。处理系统200的一些组件可以被类似地配置为以上所讨论的处理系统100的各组件,并因此为了简洁起见,将不再重复类似组件的详尽细节。相反,以下讨论将主要针对涉及处理系统200中的可变长度列命令的示例性特征。
由此,处理系统200被示为包括SoC 220和存储器子系统230,带有处理元件204a-e(其可以类似于图1A的相配对的处理元件104a-e)。SoC 220被示为包括存储器控制器208,其中存储器控制器208包括仲裁器252、命令事务队列254、刷新计数器262、数据缓冲器258和数据管理块260,它们可以分别具有与图1A的仲裁器152、命令事务队列154、刷新计数器162、数据缓冲器158和数据管理块160类似的功能性。在一个方面,可以根据以下各示例性方面来配置命令依赖性和可变长度检查器256。
命令依赖性和可变长度检查器256可以被配置成检查命令事务队列254中的依赖性,诸如针对可指向相同存储体的同一页面但是指向不同数据块(并且更具体地,在某些方面指向毗邻数据块)的两个或更多个命令。如果此类依赖性被找到,则该两个或更多个命令被示例性可变长度列命令(其示例格式将参考图2C-D讨论)代替。
当由命令依赖性和可变长度检查器256生成以取代该两个或更多个命令时,可变长度列命令可以被提供给存储器接口210的CA PHY块210a,以便在CA总线214上被传送到存储器子系统230。诸如DQ总线212和DQ PHY块210b等其余方面可以被类似地配置为DQ总线112和DQ PHY块110b,并由此本文中将不再进一步详细讨论。
现在参考图2B,示出了存储器子系统230,其可以被配置成支持在CA总线214上接收到的可变长度列命令。在存储器子系统230中,存储体280、行地址复用器274、以及行地址解码器和锁存器275在一些方面可以类似于图1A的存储体180、行地址复用器174、以及行地址解码器和锁存器175。然而,控制逻辑270可以根据各示例性方面来被配置,以适应被配置成解码可变长度列命令的命令地址复用器和解码器272。在一个示例中,可变长度列命令可以为两个或更多个列地址提供突发长度扩展以便也被访问,并且命令地址复用器和解码器272可以包括用于递增要被提供以激活由该突发长度扩展指定的多个数据块的列地址的计数器。相应地,列地址计数器/锁存器276可以在接收到要被激活的多个数据块的列地址之际通过列解码器277激活对应的列地址,以用于服务可变长度列命令。换言之,在接收到可变长度列命令之际,例如与计数器相关联的逻辑可以启用对多个列地址的访问(一种原本在常规实现中将具有所需单独的列命令的过程)。相应地,在各示例性方面中,可以基于单个可变长度列命令来服务多个数据块。
现在结合地参考图2A-C,示出了使用可变长度列地址的示例命令序列。使用ACT1和ACT2命令随后激活存储体280的预期存储体如下。在图2C中,单个写入命令序列被提供,其包括两个周期WR1命令、两个周期CAS2命令、和两个周期CAS3命令。从激活到CAS命令,可能存在DRAM术语中的被称为RAS到CAS延迟(trcd)的时间段或时间延迟。命令CAS3可以具有在图2D中描述的格式。当命令地址复用器和解码器272观察到CAS3命令格式时,命令地址复用器和解码器272被配置成识别示例性可变长度列命令已被提供并且突发长度扩展被从CAS3命令导出。如先前提到的计数器可接着基于突发长度扩展和数据块尺寸来递增列地址。相应地,多组数据块DAT1-DAT8在DQ总线212上被发送,以便使用包括两个周期WR1、CAS2、CAS3命令(而非图1C中讨论的常规实现中所使用的多个(两个周期)命令WR1、CAS2以实现相同的效果)的单个序列来被写入目标存储体280。
参考图2D,示出了示例性CAS3命令的样本格式。对于可变长度列命令,CA[5:0]的位置3中的位或CA[3]被设置为有效(或“1”),而对于常规列地址命令(例如,CAS2),CA总线214中的CA[3]位不被设置(或被设置为“0”)。当CA[3]对于CAS3命令有效时,对应的突发长度扩展(BLE)字段还被提供值,例如0-63。在一示例中,值为63的突发长度扩展使用6位(即64)提供最多64个可能值,并且具有32字节的数据块尺寸,提供列命令以访问64*32字节=2KB,这可能是整个页面尺寸。因而,在一个示例中,利用单个可变长度列命令,整个页面可被定为目标,该单个可变长度列命令可以替换64个单独的列地址命令(例如,常规的CAS2命令),这可以达到常规实现中的相同效果。
现在参考图3A,示出了用于访问多个存储体的数据块的示例命令序列300,以展示示例性可变长度列命令的又一个方面。具体地,命令序列300的命令1-8指向与存储体B0的行0(P0)的列地址C0-C7相对应的数据块,并且命令9-11指向与另一存储体B1的行0(P0)中的列地址C0-C2相对应的数据块。
参考图3B-C,示出了例如在CA总线114之上的处理系统100中的命令序列300的常规实现。在图3B中参考任意时刻T来解说时间线,以利用图3C中所示的时间线和伴随假设的细节来示出命令序列300中的命令1-11在CA总线114之上的进展。如结合地参考图3B-C可以观察到的,在指向存储体B0的命令1-8被发送出之后,在存储体B1可被激活之前针对存储体B1的预充电序列被发起。具体地,在用于存储体B0的末尾写入命令(命令8)的前沿在时间t+56被发出之后;用于该命令8的末尾数据块的对应传输在时间t+83发生在数据DQ总线112上。然而,用于存储体B1的预充电命令只能在命令8的后沿之后(即在时间t+60)被发出。用于存储体B1的命令序列可随后被发起,其中存储体B1、行0的DQ总线112上的数据传输跟随命令9在时间t+145处发起。因而可以看出,在用于命令8的末尾数据块出现在时间t+83之后,存在62个时钟周期的时间延迟,直到当存储体B1、行0的数据传输开始时的时间t+145为止,在此期间DQ总线112保持空闲。这是DQ总线112基于DRAM的常规实现而必须保持空闲的所需时间,该DRAM的常规实现针对命令1-11中的每一个命令使用传统的CAS2列命令。
作为对比,图3D-E示出了命令序列300的示例性实现,例如,在CA总线214之上的使用可变长度列命令的处理系统200中。在图3D中再次参考任意时刻T来解说时间线,以利用图3D中所示的时间线和伴随假设的细节来示出命令序列300中的命令1-11在CA总线214之上的进展。如结合地参考图3D-E可以观察到的,使用CAS3的指向存储体B0的单个可变长度列命令可以代替分别发送命令1-8中的每一个命令的传统实现。这意味着DQ总线212上的对应数据传输可以跟随命令1在时间t+21开始并继续直到时间t+85;但是,用于预充电存储体B1的命令可以在命令1已被发送出之后直接在时间t+6开始,而无需等待当针对存储体B0的数据传输结束时的时间t+85。相应地,存储体B1将在到存储体B0的数据传输在时间t+85结束以前被预充电,这意味着DQ总线112上的到存储体B1的数据传输可以早在时间t+91开始,从而提供自针对存储体B0的数据传输结束时以来的仅仅6个周期的时钟延迟(与62个周期等待时间成对比,在此期间对于命令序列300的常规实现,DQ总线112必须保持空闲)。
应当领会,各方面包括用于执行本文中所公开的过程、功能和/或算法的各种方法。图4解说了用于实现在存储器子系统230处接收的可变长度列命令的示例方法400。
例如,在框402中,在CA总线214上接收的列地址CA[5:0]由命令地址复用器和解码器272解码,例如用于确定CA[3]是否被设置。
在框404中,命令地址复用器和解码器272可以确定操作是针对常规写入还是常规读取以及CA[3]是否在采样时间(即,当CS-L为高时(参见图2D))被设置。
如果框404中的判定结果为否,则在框406中,命令CAS2可以被采样,并且方法400可以返回到使用CAS2命令的常规处理。
如果框404中的判定结果为是,则在框408中,命令地址复用器和解码器272可以提取关于用于执行可变长度列命令的起始列地址的信息,并且在框410中,确定对应存储体中要被持续访问的数据块的块长度扩展或数目。
本领域技术人员将领会,信息和信号可使用各种不同技术和技艺中的任何一种来表示。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
此外,本领域技术人员将领会,结合本文中所公开的方面描述的各种解说性逻辑块、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本发明的范围。
结合本文所公开的各方面描述的方法、序列和/或算法可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域内已知的任何其他形式的存储介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。替换地,存储介质可被整合到处理器。
相应地,本发明的一个方面可以包括计算机可读介质,该计算机可读介质包含用于使用可变长度列命令来降低处理系统中的功率消耗的方法。相应地,本发明并不限于所解说的示例且任何用于执行本文所描述的功能性的手段均被包括在本发明的各方面中。
图5解说了其中可有利地采用本公开的各方面的示例性无线通信系统500。出于解说目的,图5示出了三个远程单元520、530和550以及两个基站540。在图5中,远程单元520被示为移动电话,远程单元530被示为便携式计算机,而远程单元550被示为无线本地环路系统中的固定位置远程单元。例如,远程单元可以被集成到机顶盒、服务器、音乐播放器、视频播放器、娱乐单元、导航设备、个人数字助理(PDA)、固定位置数据单元、计算机、膝上型设备、平板、通信设备、移动电话、或其他类似设备中。尽管图5解说了根据本公开的教导的远程单元,但本公开并不限于这些所解说的示例性单元。本公开的各方面可适于用在包括有源集成电路系统(包括存储器和用于测试和表征的片上电路系统)的任何设备中。
上述公开的设备和方法通常被设计并被配置在存储在计算机可读介质上的GDSII和GERBER计算机文件中。这些文件进而被提供给制造处理者,这些制造处理者基于这些文件来制造器件。结果得到的产品是半导体晶片,其随后被切割为半导体管芯并被封装成半导体芯片。这些芯片随后被用在以上描述的设备中。
尽管前述公开示出了本发明的解说性方面,但是应当注意,可对本文作出各种改变和修改而不脱离如由所附权利要求限定的本发明的范围。根据本文中所描述的本发明的各方面的方法权利要求中的功能、步骤和/或动作不一定要以任何特定次序执行。此外,尽管本发明的要素可能是以单数来描述或主张权利的,但是复数也是已料想了的,除非显式地声明了限定于单数。
Claims (30)
1.一种执行存储器访问的方法,所述方法包括:
在存储器子系统处从处理器子系统接收可变长度列命令;
从所述可变长度列命令确定所述存储器子系统的存储体的要被访问的两个或更多个数据块的数目;以及
响应于所述可变长度列命令来持续地访问所述存储体的所述数目的两个或更多个数据块。
2.根据权利要求1所述的方法,其特征在于,所述两个或更多个数据块彼此毗邻。
3.根据权利要求1所述的方法,其特征在于,所述两个或更多个数据块是所述存储体的同一页面的一部分。
4.根据权利要求1所述的方法,其特征在于,所述可变长度列命令由所述处理器子系统提供以代替涉及访问所述两个或更多个数据块的两个或更多个列命令。
5.根据权利要求1所述的方法,其特征在于,进一步包括从所述可变长度列命令确定指示要被访问的所述两个或更多个数据块的突发长度扩展。
6.根据权利要求5所述的方法,其特征在于,进一步包括基于所述两个或更多个数据块的突发长度扩展和尺寸来递增用于确定与所述两个或更多个数据块相对应的列地址的计数器。
7.根据权利要求1所述的方法,其特征在于,进一步包括在所述可变长度列命令由所述存储器子系统完全接收之前,关闭基于所述可变长度列命令而被激活的所述两个或更多个数据块中的一者或多者。
8.根据权利要求1所述的方法,其特征在于,所述存储器子系统包括动态随机存取存储器(DRAM)。
9.一种装置,包括:
存储器子系统,其中所述存储器子系统包括:
命令地址复用器和解码器,其被配置成从处理器子系统接收可变长度列命令,以及从所述可变长度列命令确定所述存储器子系统的存储体的要被访问的两个或更多个数据块的数目;以及
逻辑,其被配置成响应于所述可变长度列命令来持续地访问所述存储体的所述数目的两个或更多个数据块。
10.根据权利要求9所述的装置,其特征在于,所述两个或更多个数据块彼此毗邻。
11.根据权利要求9所述的装置,其特征在于,所述两个或更多个数据块是所述存储体的同一页面的一部分。
12.根据权利要求9所述的装置,其特征在于,所述可变长度列命令由所述处理器子系统提供以代替涉及访问所述两个或更多个数据块的两个或更多个列命令。
13.根据权利要求9所述的装置,其特征在于,所述命令地址复用器和解码器被进一步配置成从所述可变长度列命令确定被配置成指示要被访问的所述两个或更多个数据块的突发长度扩展。
14.根据权利要求13所述的装备,其特征在于,所述命令地址复用器和解码器进一步包括计数器,其中所述计数器被配置成基于所述两个或更多个数据块的突发长度扩展和尺寸来递增与所述两个或更多个数据块相对应的列地址。
15.根据权利要求9所述的装置,其特征在于,所述存储器子系统进一步包括被配置成进行以下操作的逻辑:在所述可变长度列命令在所述存储器子系统处被完全接收之前,关闭基于所述可变长度列命令而被激活的所述两个或更多个数据块中的一者或多者。
16.根据权利要求9所述的装置,其特征在于,所述装置被集成到从包括以下各项的组中选择的设备中:机顶盒、服务器、音乐播放器、视频播放器、娱乐单元、导航设备、个人数字助理(PDA)、固定位置数据单元、计算机、膝上型设备、平板、通信设备以及移动电话。
17.一种装备,包括:
用于在存储器子系统处从处理器子系统接收可变长度列命令的装置;
用于从所述可变长度列命令确定所述存储器子系统的存储体的要被访问的两个或更多个数据块的数目的装置;以及
用于响应于所述可变长度列命令来持续地访问所述存储体的所述数目的两个或更多个数据块的装置。
18.根据权利要求17所述的装备,其特征在于,所述两个或更多个数据块彼此毗邻。
19.根据权利要求17所述的装备,其特征在于,所述两个或更多个数据块是所述存储体的同一页面的一部分。
20.根据权利要求17所述的装备,其特征在于,所述可变长度列命令由所述处理器子系统提供以代替涉及访问所述两个或更多个数据块的两个或更多个列命令。
21.根据权利要求17所述的装备,其特征在于,进一步包括用于从所述可变长度列命令确定指示要被访问的所述两个或更多个数据块的突发长度扩展的装置。
22.根据权利要求21所述的装备,其特征在于,进一步包括用于基于所述两个或更多个数据块的突发长度扩展和尺寸来确定与所述两个或更多个数据块相对应的列地址的装置。
23.根据权利要求21所述的装备,其特征在于,进一步包括用于在所述可变长度列命令由所述存储器子系统完全接收之前,关闭基于所述可变长度列命令而被激活的所述两个或更多个数据块中的一者或多者的装置。
24.一种执行存储器访问的方法,所述方法包括:
在处理器子系统的存储器控制器中确定用于访问存储器子系统的两个或更多个列命令指向存储体的同一页面的两个或更多个数据块;以及
对于指向所述存储体的同一页面的两个或更多个数据块的所述两个或更多个列命令,用可变长度命令替换所述两个或更多个列命令,以持续地访问所述同一页面的两个或更多个数据块。
25.根据权利要求24所述的方法,其特征在于,进一步包括基于检查所述存储器控制器中的命令事务队列中的依赖性,确定用于访问存储器子系统的所述两个或更多个列命令指向所述存储体的同一页面的两个或更多个数据块。
26.根据权利要求24所述的方法,其特征在于,所述两个或更多个数据块为至少以下之一:彼此毗邻或属于所述存储体的同一页面。
27.根据权利要求24所述的方法,其特征在于,进一步包括在所述可变长度命令中提供指示要被访问的所述两个或更多个数据块的突发长度扩展。
28.根据权利要求27所述的方法,其特征在于,与所述两个或更多个数据块相对应的列地址基于所述两个或更多个数据块的突发长度扩展和尺寸。
29.根据权利要求24所述的方法,其特征在于,进一步包括提供用于在所述可变长度命令由所述处理器子系统完全传送之前,关闭基于所述可变长度命令而待激活的所述两个或更多个数据块中的一者或多者的命令。
30.根据权利要求24所述的方法,其特征在于,所述存储器子系统包括动态随机存取存储器(DRAM)。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662420954P | 2016-11-11 | 2016-11-11 | |
US62/420,954 | 2016-11-11 | ||
US15/808,718 | 2017-11-09 | ||
US15/808,718 US20180137050A1 (en) | 2016-11-11 | 2017-11-09 | Low power memory sub-system using variable length column command |
PCT/US2017/061266 WO2018089880A1 (en) | 2016-11-11 | 2017-11-13 | Low power memory sub-system using variable length column command |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109964209A true CN109964209A (zh) | 2019-07-02 |
Family
ID=62107159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780069532.2A Pending CN109964209A (zh) | 2016-11-11 | 2017-11-13 | 使用可变长度列命令的低功率存储器子系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180137050A1 (zh) |
EP (1) | EP3539002A1 (zh) |
CN (1) | CN109964209A (zh) |
WO (1) | WO2018089880A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749793A (zh) * | 2019-10-31 | 2021-05-04 | 爱思开海力士有限公司 | 用于神经网络的算术设备 |
US11922295B2 (en) | 2019-10-31 | 2024-03-05 | SK Hynix Inc. | Arithmetic devices for neural network |
US11954457B2 (en) | 2019-10-31 | 2024-04-09 | SK Hynix Inc. | Arithmetic devices for neural network including a function storage circuit and an activation function circuit |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795830B2 (en) | 2018-07-20 | 2020-10-06 | Qualcomm Incorporated | Write access control for double data rate write-x/datacopy0 commands |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0164805B1 (ko) * | 1995-12-22 | 1999-02-01 | 김광호 | 버스트 모드를 지원하는 내부 컬럼 어드레스 발생 회로 |
US5657281A (en) * | 1996-03-11 | 1997-08-12 | Cirrus Logic, Inc. | Systems and methods for implementing inter-device cell replacements |
US5963481A (en) * | 1998-06-30 | 1999-10-05 | Enhanced Memory Systems, Inc. | Embedded enhanced DRAM, and associated method |
US6415374B1 (en) * | 2000-03-16 | 2002-07-02 | Mosel Vitelic, Inc. | System and method for supporting sequential burst counts in double data rate (DDR) synchronous dynamic random access memories (SDRAM) |
US20040076044A1 (en) * | 2002-07-09 | 2004-04-22 | Farshid Nowshadi | Method and system for improving access latency of multiple bank devices |
US7543102B2 (en) * | 2005-04-18 | 2009-06-02 | University Of Maryland | System and method for performing multi-rank command scheduling in DDR SDRAM memory systems |
US8219786B1 (en) * | 2007-03-20 | 2012-07-10 | Nvidia Corporation | Request coalescing for instruction streams |
US8060705B2 (en) * | 2007-12-14 | 2011-11-15 | Qimonda Ag | Method and apparatus for using a variable page length in a memory |
US20130132704A1 (en) * | 2010-09-10 | 2013-05-23 | Rambus Inc. | Memory controller and method for tuned address mapping |
US10020036B2 (en) * | 2012-12-12 | 2018-07-10 | Nvidia Corporation | Address bit remapping scheme to reduce access granularity of DRAM accesses |
-
2017
- 2017-11-09 US US15/808,718 patent/US20180137050A1/en not_active Abandoned
- 2017-11-13 EP EP17805072.0A patent/EP3539002A1/en not_active Withdrawn
- 2017-11-13 CN CN201780069532.2A patent/CN109964209A/zh active Pending
- 2017-11-13 WO PCT/US2017/061266 patent/WO2018089880A1/en unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749793A (zh) * | 2019-10-31 | 2021-05-04 | 爱思开海力士有限公司 | 用于神经网络的算术设备 |
US11915125B2 (en) | 2019-10-31 | 2024-02-27 | SK Hynix Inc. | Arithmetic devices for neural network |
US11922295B2 (en) | 2019-10-31 | 2024-03-05 | SK Hynix Inc. | Arithmetic devices for neural network |
US11954457B2 (en) | 2019-10-31 | 2024-04-09 | SK Hynix Inc. | Arithmetic devices for neural network including a function storage circuit and an activation function circuit |
Also Published As
Publication number | Publication date |
---|---|
WO2018089880A1 (en) | 2018-05-17 |
US20180137050A1 (en) | 2018-05-17 |
EP3539002A1 (en) | 2019-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9740431B2 (en) | Memory controller and method for interleaving DRAM and MRAM accesses | |
US20210089237A1 (en) | Memory component having internal read-modify-write operation | |
CN103680594B (zh) | 降低写失败的存储器件、包括该存储器件的系统及其方法 | |
US9343127B1 (en) | Memory device having an adaptable number of open rows | |
KR101528659B1 (ko) | 가변 메모리 리프레시 장치들 및 방법들 | |
KR20190030578A (ko) | 고대역 메모리 시스템을 위한 준-동기식 프로토콜 | |
CN105518784B (zh) | 具有用于高可靠性操作的存储控制器的数据处理器和方法 | |
CN109964209A (zh) | 使用可变长度列命令的低功率存储器子系统 | |
Sekiguchi et al. | 1-Tbyte/s 1-Gbit DRAM architecture using 3-D interconnect for high-throughput computing | |
US20120079180A1 (en) | DRAM Controller and a method for command controlling | |
CN112558744A (zh) | 用于减少用于刷新存储器模块上的存储器设备的功耗的方法和装置 | |
US20120030396A1 (en) | Decoupled Memory Modules: Building High-Bandwidth Memory Systems from Low-Speed Dynamic Random Access Memory Devices | |
US10394724B2 (en) | Low power data transfer for memory subsystem using data pattern checker to determine when to suppress transfers based on specific patterns | |
TW201201018A (en) | Memory banking system and method to increase memory bandwidth via parallel read and write operations | |
CN116320064A (zh) | 对数据分组的多个段执行操作的方法和装置 | |
WO2018128714A1 (en) | Partial page access in a low power memory system | |
CN113900818A (zh) | Ddr存储器数据读写调度方法和装置 | |
CN117099075A (zh) | 针对长突发长度的存储器数据传送的双倍取得 | |
US20240070093A1 (en) | Asymmetric Read-Write Sequence for Interconnected Dies | |
US11928039B1 (en) | Data-transfer test mode | |
US20230333928A1 (en) | Storage and access of metadata within selective dynamic random access memory (dram) devices | |
CN117672334A (zh) | 独立模式 | |
TWI409816B (zh) | 解決單埠靜態隨機存取記憶體之請求衝突的系統及方法 | |
Lim et al. | Novel Memory Controllers for Latency Reduction of Dual-port SDRAM | |
NAYAK | SDR Synchronous Dynamic Random Access Memory Controller Using Adaptive Bank Management |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190702 |
|
WD01 | Invention patent application deemed withdrawn after publication |