CN117099075A - 针对长突发长度的存储器数据传送的双倍取得 - Google Patents
针对长突发长度的存储器数据传送的双倍取得 Download PDFInfo
- Publication number
- CN117099075A CN117099075A CN202280026243.5A CN202280026243A CN117099075A CN 117099075 A CN117099075 A CN 117099075A CN 202280026243 A CN202280026243 A CN 202280026243A CN 117099075 A CN117099075 A CN 117099075A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- transfer
- memory device
- transmission
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 368
- 238000012546 transfer Methods 0.000 title claims abstract description 218
- 230000005540 biological transmission Effects 0.000 claims abstract description 102
- 230000004044 response Effects 0.000 claims abstract description 38
- 239000000872 buffer Substances 0.000 claims description 18
- 230000003111 delayed effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 50
- 238000000034 method Methods 0.000 description 36
- 238000003860 storage Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000008878 coupling Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 6
- 230000000630 rising effect Effects 0.000 description 6
- 230000011664 signaling Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- UGFAIRIUMAVXCW-UHFFFAOYSA-N Carbon monoxide Chemical compound [O+]#[C-] UGFAIRIUMAVXCW-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 229910002092 carbon dioxide Inorganic materials 0.000 description 1
- 239000001569 carbon dioxide Substances 0.000 description 1
- 229910002091 carbon monoxide Inorganic materials 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
-
- 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/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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
- 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/408—Address 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/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/106—Data output latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- 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
- 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/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- 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/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/107—Serial-parallel conversion of data or prefetch
-
- 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/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/108—Wide data ports
-
- 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/2281—Timing of a read operation
-
- 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/229—Timing of a write operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1093—Input synchronization
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Dram (AREA)
Abstract
针对数据取得访问N/2个数据比特的存储器设备,并且该存储器设备用于响应于读取命令而通过长度为M的数据突发传送N个比特,该存储器设备访问相同存储体两次以访问N个比特。与从两个不同的存储体访问N/2个比特相反,存储器设备访问单个存储体两次。存储器设备可以控制数据传送的时序,以使得能够针对读取命令将所有N个数据比特发送到存储器控制器。存储器设备可以将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送来发送。
Description
优先权要求
本申请根据35 U.S.C.§365(c)要求享有于2021年6月2日提交的题为“DOUBLEFETCH FOR LONG BURST LENGTH MEMORY DATA TRANSFER”的美国申请第17/336,996号的优先权,该美国申请的全部内容并入本文。
技术领域
描述总体上涉及存储器***,并且更具体地,描述涉及存储器设备数据取得(datafetch)。
背景技术
诸如动态随机存取存储器(DRAM)设备之类的存储器设备具有布置成存储体(bank)和存储体组的存储器阵列。不同存储体的使用对于存储器设备的性能来说是重要的,使得***能够并行地访问存储器设备的可单独寻址的部分和可单独访问的部分。随着数据速率的提高,存储器设备和主机之间的数据传送可以比从阵列访问数据显著更快。
目前的DRAM设备还可以具有信号线的不同配置以与数据总线接合。常见接口包括x4(4条DQ(数据)信号线)、x8(8条DQ信号线)和x16(16条DQ信号线)。在目前的实现方式中,x16设备使用存储器阵列和信号线作为两个x8半部,其中数据的一半来自一侧,并且数据的另一半来自另一侧。这样的实现方式高效地将存储体的数量减少了一半,减少了针对主机从并行资源执行访问的选项,并且对***吞吐量具有负面影响。
x16设备目前仅在单列***(single rank system)中被使用的事实加剧了吞吐量问题,这进一步减少了主机交织业务以尝试维持最大存储器带宽利用的能力。
图1是并行地从多个存储体取得数据的***的现有技术示例的框图。***100包括连接到主机120的存储器设备110。存储器设备110的示例包括被组织为8个存储体组(BG)的32个存储体,每个BG有4个存储体。当被用作x8设备时,DQ[0:7]用于提供单个通道,其中8个BG乘4个存储体可供主机访问。当被用作x16设备时,存储器设备110仅有一个具有DQ[0:15]的通道,其中4个BG乘4个存储体可供主机使用(其中,两个存储体并行地被用作单个存储体资源)。因此,存储器设备110并行地从不同存储体组中的存储体取得用于读取的数据。如示出的,如果选择BG[1]的存储体[2],则BG[5]被视为BG[1]的部分,其中针对DQ[0:7]的数据来自BG[1]存储体[2],并且针对DQ[8:15]的数据来自BG[5]存储体[2]。
***100示出了BL16(突发长度16)的突发。因此,每次读取的256比特将从阵列访问并且从存储器设备110发送到主机120,其中从每个存储体并行取得128比特,并且通过DQ信号线的总数的一半发送。并行地访问来自两个存储体的128比特数据以通过BL16获得x16所需的256比特的需要意味着主机120将仅看到16个可单独寻址的存储体,从而减少了可用于并行访问的资源。
附图说明
以下描述包括对具有通过实现方式的示例的方式给出的图示的附图的讨论。应当通过示例而非限制的方式来理解附图。如本文所使用的,对一个或多个示例的引用应被理解为描述包括在本发明的至少一种实现方式中的特定特征、结构或特性。本文中出现的诸如“在一个示例中”或“在替代示例中”之类的短语提供了本发明的实现方式的示例,并且不一定全部指代相同实现方式。然而,这些短语也不一定是相互排斥的。
图1是从多个存储体并行取得数据的***的现有技术示例的框图。
图2是其中通过多次读取来从存储器存储体访问数据的***的示例的框图。
图3A是利用针对读取事务的连续访问来从单个存储体取得数据的***的示例的框图。
图3B是利用针对写入事务的连续访问来将数据写入单个存储体的***的示例的框图。
图4A-图4D是利用多次访问来从存储体访问数据并且控制突发传送时序的示例的时序图。
图5是用于利用连续访问来从存储体访问数据的过程的示例的流程图。
图6是其中可以实现具有突发时序控制的单次存储体访问的存储器子***的示例的框图。
图7是其中可以实现具有突发时序控制的单次存储体访问的计算***的示例的框图。
图8是其中可以实现具有突发时序控制的单次存储体访问的移动设备的示例的框图。
以下是对特定细节和实现方式的描述,包括对附图的非限制性描述,附图可以描绘一些或全部示例,以及其他潜在的实现方式。
具体实施方式
如本文所述,针对其中数据取得访问数据传送所需比特的一半的存储器设备,该存储器设备通过两次连续访问从相同存储体访问所有比特,而不是从两个并行存储体各自访问比特的一半。在一个示例中,两次连续的访问是读取访问。读取访问指代从存储器阵列读取数据的读取操作。写入访问指代将数据存储在存储器阵列中的写入操作。
一次取得将访问N/2个数据比特并且用于读取的总数据传送是N个数据比特。存储器设备可以访问相同存储体两次来访问N个数据比特,并且基于访问相同存储体两次来控制数据传送的时序。响应于读取命令,存储器设备将通过长度为M的数据突发传送N个数据比特,从而利用对存储体的连续N/2比特访问来从相同存储体访问所有N个数据比特,而不是从两个不同存储体访问N/2个比特。存储器设备可以控制数据传送的时序,以使得能够针对读取命令将所有N个数据比特发送到存储器控制器。存储器设备可以在完整数据突发的两个半部分中发送数据。因此,存储器设备发送数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送。两次传送可以是连续的,或者可以与来自不同存储器访问事务的数据交织。
图2是其中通过多次读取来从存储器存储体访问数据的***的示例的框图。***200示出了耦合到主机的存储器。主机210表示主机计算***。主机210包括诸如处理器212和存储器控制器220之类的主机硬件。主机硬件还包括硬件互连和驱动器/接收机硬件以提供主机210和存储器240之间的互连。存储器240包括并行存储器资源,即,存储体[0:B-1]。存储器控制器220控制对存储器240的访问。在一个示例中,存储器240表示低功率双倍数据速率(LPDDR)动态随机存取存储器(DRAM)设备。
主机硬件支持主机软件在主机210上的执行。主机软件可以包括主机OS(操作***)214。主机OS214表示其他软件将在其下执行的软件平台。主机OS214提供控制以实现与硬件互连的接合以耦合到存储器设备240。
在执行期间,主机OS214提供用于访问存储器的请求。请求可以直接来自主机OS软件,并且可以是通过API(应用编程接口)或者用于在主机OS214下执行的程序的其他机制的请求以请求存储器访问。响应于主机存储器访问请求,存储器控制器220将针对存储器资源的基于主机的寻址映射到存储器240的物理地址位置。
在一个示例中,存储器控制器220包括命令控制(CMD CTRL)222以生成用于访问存储器240的命令。存储器控制器220包括调度器224以调度由命令控制222生成的命令的发送。在一个示例中,调度器224包括用于调度命令的配置或者编程,所述调度命令是基于与存储器240进行数据传送的时序、基于存储器240如何使用存储体[0:B-1]来存储数据的。在一个示例中,存储器240响应于读取命令而两次访问单个存储体,或者响应于写入命令而两次写入单个存储体。数据突发之间使用的延迟可以留下可以交织来自其他访问事务的数据的时间段。
调度器224使得存储器控制器220能够基于将响应于读取命令而从存储器240接收到读取数据260的时序来调度读取命令和其他命令。在一个示例中,调度器224将基于时序来对命令重新排序以确保数据总线的利用。在一个示例中,调度器224基于由存储器240发送部分数据突发的预期时序延迟来调度命令以交织数据。在一个示例中,调度器224基于由于利用对存储器240中的相同存储体进行背靠背写入(back-to-back write)而将数据的两个部分写入相同存储体而导致的写入时序来调度命令。读取命令将针对存储器240的选定存储体,期望通过两个内部操作进行读取以在存储器240内两次取得数据。类似地,写入命令将针对存储器240的选定存储体,期望通过两个内部操作进行写入以在存储器240内两次写入数据。调度器224将基于时序延迟来调度命令,该时序延迟由存储器240使用以响应于读取命令而返回数据。调度器224将基于存储器240响应于写入命令而执行两次内部写入而导致的时序延迟来调度命令。
***200示出了存储器控制器220中用于控制发送数据突发的时序的时序控制(CTRL)226。在传统实现方式中,响应于读取命令而从存储器阵列访问的数据一旦被访问就被发送到存储器控制器。因此,在传统实现方式中,数据在被访问时就准备好被发送,并且一旦准备好就发送该数据。时序控制226通过延迟从数据阵列访问的数据被发送的时间来管理发送突发的延迟,从而在数据在传统上本应准备好被发送的时间之后的一定延迟之后发送数据。在一个示例中,时序控制226可以管理在发送第一数据突发之前的延迟。在一个示例中,时序控制226可以管理在发送第二数据突发之前的延迟。在一个示例中,时序控制226可以管理在发送第一数据突发之前的延迟并且管理在发送第二数据突发之前的延迟。
主机210包括I/O(输入/输出)230以与存储器240互连。存储器240包括对应的I/O250。C/A(命令/地址)232表示包括信号线的接口硬件,该接口硬件用于使得存储器控制器220能够向存储器240发送命令。C/A 252表示接口硬件,该接口硬件包括用于存储器240接收由存储器控制器220的命令控制222发出的命令的信号线。
D[0:X-1]表示接口硬件,该接口硬件包括使得主机210和存储器240能够交换与命令相关联的数据的信号线。D[0:X-1]表示具有X条数据(DQ)线的数据总线,其中I/O 230和I/O 250包括到数据总线的接口或者接口硬件。接口硬件可以指代为数据接口。C/A 232和C/A 252表示到命令总线的接口,该接口可以指代为命令接口。针对写入命令,I/O 230将驱动数据总线。针对读取命令,I/O 250将驱动数据总线。
存储器240包括控制器242,该控制器242表示在存储器处的用于接收和处理来自主机210的命令的控制器或者控制逻辑或者控制硬件。控制器242生成内部命令或者内部操作以执行从存储器控制器220接收的命令。响应于读取命令,控制器242生成用于从存储体[0:B-1]访问读取(RD)数据260的操作。
考虑一个示例,其中存储器240表示与双倍数据速率版本5(DDR5)或者其他DDR标准兼容的动态随机存取存储器(DRAM)设备,其中X等于16。在这样的示例中,存储器240将表示DDR5x16 DRAM设备。传统上,B等于32,并且存储体[0:31](8个存储体组乘以每个存储体组的4个存储体)将可用于x4设备和x8设备中的存储器控制器220。在传统的x16设备中,存储器控制器220将仅看到每个设备16个存储体(4个存储体组乘以每个存储体组的4个存储体)。
传统的x16配置由于仅16个存储体可被存储器控制器220访问而受到有限的性能的影响,与此相反,在一个示例中,存储器240访问相同存储体两次以生成读取数据260,并且在分开的突发上划分数据。分开的突发使得存储器240能够控制读取数据260的输出的时序。在一个示例中,控制器242控制输出突发的第一半部分或者输出突发的第二半部分的时序。
存储器240的操作使得能够使用x16配置或者其他配置,所述x16配置或者其他配置针对每个读取命令传送比取得操作访问的数据更多的数据,而不会遭受传统的性能损失。能够在不损失性能的情况下使用x16设备,可以允许较低容量的***配置,从而可以节省成本。在一个示例中,控制器242可以响应于读取命令而对相同存储体执行两次连续的取得以获得数据传送所需的数据的总量。针对数据传送的数据总量的不同的半部分,对相同存储体执行背靠背取得的能力可以使得***200能够维持所有B个存储体,而不是向存储器控制器220呈现B/2个存储体。
在一个示例中,存储器240对总共N个数据比特中的N/2个比特执行第一取得。控制器242可以响应于来自存储器控制器220的读取命令来生成第一取得。在一个示例中,控制器242还响应于读取命令而生成第二取得操作,以在适当的相同存储体时序延迟(例如,长为tCCD_L或者CAS到CAS(列地址选通)延迟)之后使得对被寻址的存储体进行第二取得。在一个示例中,控制器242响应于读取命令而仅生成单个取得操作,并且存储器控制器220发送第二读取命令以使得进行从相同存储体的附加的取得。应当理解,这样的操作将使用附加的存储器通道带宽,这在一些实现方式中可能是不期望的。
在***200中,即使当取得仅生成数据传送所需的数据的一半时,存储器控制器220也可以看到所有B个存储体。参考上面的示例,如果X是16并且B是32,则存储器控制器220将看到所有32个存储体,并且控制器242可以管理从选择存储体的两次取得以获得读取数据260。与一旦数据被访问就以两个突发来发送数据相反,控制器242将管理两个半突发中的一个或两个半突发的时序,以将读取数据260发送到存储器控制器220。
在所有存储体可用的情况下,当控制器242管理数据传送突发以改进带宽利用时,***200的性能相对于从存储体并行访问数据的***得到改进。考虑到每次访问仅激活存储体的一半数量,***200相对于传统***实现方式可以具有较低的功率。
在一个示例中,存储器240包括缓冲器270以缓冲读取数据260。应当理解,取决于控制器242如何管理内部操作的时序和数据突发的时序,缓冲器270可以是可选的。缓冲器270可以使得存储器240能够暂时保持读取数据260以延迟数据的第一半突发的时序。在一个示例中,缓冲器270可以利用当前存储器设备中存在的数据路径中的缓冲来实现。缓冲器270可以允许控制器242管理在取得延迟和传送延迟之间的时序偏移。
***200具体示出了读取数据260。应当理解,如果读取导致从相同存储体的两次取得,则写入事务将导致对相同存储体的两次写入操作。在一个示例中,存储器控制器220以连续突发(例如,M个传输周期)连续地发送所有写入数据。在这样的实现方式中,存储器240将包括缓冲器270或者其他缓冲器来保持写入数据,以使得能够对相同存储体进行两次连续的内部写入操作。在一个示例中,存储器控制器220不是同时发送所有数据,而是将写入数据作为数据的两个分开的半突发发送,类似于关于存储器240以两个半突发发送读取数据所描述的。为了将数据作为两个部分或者两个块(chunk)发送,存储器控制器220将需要管理向存储器240发送写入数据的时序。这样的实现方式会增加存储器控制器220的调度的复杂度。在任一实现方式中,是通过存储器控制器220控制数据的第二半部分的时序,还是一次发送所有数据并且让存储器240缓冲写入数据,***200可以导致读取时延和写入时延之间的时序偏移。
图3A是利用针对读取事务的连续访问来从单个存储体取得数据的***的示例的框图。***302示出了根据***200的示例的***。***302包括连接到主机320的存储器设备310。存储器设备310的示例包括被组织为8个BG、每个BG有4个存储体的32个存储体。
当用作x16设备时,存储器设备310具有可供主机使用的8个BG乘以4个存储体。32个存储体的可用性与仅向主机320呈现16个存储体的传统x16设备架构形成对比。存储器的性能可以直接与主机320的存储器控制器可用的存储体数量相关,尤其是在较高数据速率的情况下。与数据传送速率相比,存储体循环时间非常慢。因此,并行访问多个存储体以允许并行循环多个存储体,每个存储体在时间上与其他存储体有偏移,以维持完整的数据速率。
存储器设备310通过响应于来自主机320的单个读取命令两次访问存储体来从单个存储体取得用于读取的数据。如所示出的,如果选择了BG[1]的存储体[2],则通过取得330-1和330-2仅访问该存储体,这与***100中所示的其中BG[5]将被视为BG[1]的一部分的传统方法形成对比。因此,在***302中,针对DQ[0:15]的数据来自BG[1]存储体[2],其中利用取得330-1来访问第一8个循环的数据比特(BL[0:7],突发的第一半部分),并且利用取得330-2来访问第二8个循环的数据比特(BL[8:15],突发的第二半部分)。
***302示出了BL16的突发,在突发的第一半部分之前具有可选的延迟332,并且在突发的第一半部分和突发的第二半部分之间具有可选的延迟334。在一个示例中,存储器设备310在每次读取时从阵列访问256比特并且将这256比特作为两个部分发送到主机320。突发的第一半部分发送利用取得330-1从BG[1]存储体[2]取得的128比特,其中从DQ[0:15]中的每一个取得8数据比特,即,在传送的每个循环中从每个DQ取得一比特。因此,对于256比特数据传送,存储器设备310可以通过BL8针对16DQ比特在每次取得时访问128比特,并且从相同存储体执行两次。
在一个示例中,存储器设备310是与来自JEDEC(联合电子设备工程委员会,现在的JEDEC固态技术协会)的双倍数据速率版本5(DDR5)标准兼容的DRAM(动态随机存取存储器)设备。DDR5 DRAM以x4、x8和x16的形式产生,其中每个设备在DRAM设备和主机320的存储器控制器之间分别具有4个、8个和16个数据信号。典型地,x4和x8实现方式被用于服务器计算机中,并且客户端计算机总体上使用x8或者x16设备。***302可以改变DDR5 x16 DRAM设备的架构,从而以较低的功率提供较高的性能。***302的应用不限于与DDR5 DRAM设备一起使用。***302的应用不限于具有32个存储体的设备。
图3B是利用针对写入事务的连续访问来将数据写入单个存储体的***的示例的框图。***304示出了根据***200的示例的***。***304示出了用于写入事务的***302的示例。***304包括连接到主机320的存储器设备310。存储器设备310的示例包括被组织为8个BG、每个BG有4个存储体的32个存储体。
存储器设备310从主机320接收与写入命令相关联的写入数据。存储器设备310将通过响应于来自主机320的单个写入命令访问单个存储体两次来将用于写入的数据写入到该单个存储体。如所示出的,如果选择BG[1]的存储体[2],则通过写入350-1和350-2仅访问该存储体。因此,在***304中,来自DQ[0:15]的数据进入BG[1]存储体[2],其中利用写入350-1来写入第一8个循环的数据比特(BL[0:7],突发的第一半部分),并且利用写入350-2来写入第二8个循环的数据比特(BL[8:15],突发的第二半部分)。
***300示出了BL16的突发,在突发的第一半部分和突发的第二半部分之间具有可选的延迟352。在一个示例中,主机320在每次写入时发送256比特,并且存储器设备310将256比特写入阵列作为两个内部操作。突发的第一半部分根据写入命令的标准时序发送128比特。在一个示例中,突发的第二半部分在第一半部分之后立即发送128比特(即,没有延迟352)。在一个示例中,突发的第二半部分发生在非零延迟352之后,其中主机320可以控制第二128比特的传送的时序。
在一个示例中,存储器设备310包括缓冲器340以缓冲来自主机320的写入数据。在一个示例中,存储器设备310缓冲写入数据以允许在写入350-1和写入350-2之间有足够的时间以允许背靠背写入BG[1]存储体[2]。
图4A-图4D是利用多次访问来从存储体访问数据并且控制突发传送时序的示例的时序图。示图402、示图404、示图406和示图408表示针对存储器设备的不同传送选项的时序图。时序图可以应用于***200的示例或者***302的示例。根据不同的示例,***可以控制数据传送的时序以允许将数据从单个访问发送到相同存储体。
参照图4A,示图402示出了一旦数据被访问并且准备好就发生第一数据传送,并且在第一数据传送和第二数据传送之间存在延迟。时钟410表示时钟信号,其中数据传送发生在上升时钟沿和下降时钟沿上。命令(CMD)总线422表示从主机到存储器设备的命令。命令总线422示出了来自主机存储器控制器的读取命令(RD)。
在经过如时间间隔所示的一定时间后,存储器设备生成如命令(CMD)432所示的内部命令。在一个示例中,存储器设备响应于读取命令而生成两个不同的内部操作,如RD1和RD2所示。延迟430表示RD1和RD2之间的延迟。延迟430至少是对相同存储体的背靠背访问之间所要求的最小延迟。
在一个示例中,存储器设备通过启用数据传送来控制读取数据的传输。传送442表示启用数据传送。在示图402中,一旦第一读取数据被RD1访问,传送442就被启用,并且存储器设备在DQ(数据)总线452上发送数据的第一部分,如第一传送所示出的。在一个示例中,第一传送是总共BL16中的BL8。相同的操作流程可以以不同的突发长度运行。
延迟430示出了RDl和RD2之间的延迟。在一个示例中,一旦在RD1之后第一传送的数据已经准备好,存储器设备就发送该数据。在一个示例中,一旦在RD2之后第二传送的数据已经准备好,存储器设备就发送该数据。延迟462表示第一传送和第二传送之间的延迟。
作为示例,示图402在DQ总线452下方示出了突发长度的时间。在一个示例中,如果第一传送被认为是在BL8-0的时隙中发送,则***可以控制延迟430来生成RD2,以使得第二传送的数据在BL8-4处准备就绪,其中BL8-1、BL8-2和BL8-3在第一传送和第二传送之间。在一个示例中,读取延迟的时序和传送的时序允许时序如所示地制定。在一个示例中,存储器设备内部控件可以控制第二读取操作的时序以对齐如所示的时序。
如传送442所示,在一个示例中,一旦RD1发生并且数据准备好,存储器设备就启用第一传送的传送,并且一旦RD2发生并且数据准备好,存储器设备就启用第二传送的传送。
应当理解,数据的第一半部分具有最佳时延,但是如果传送之间的延迟取决于数据速率,则第二数据的时序可以导致复杂的时序。在一个示例中,内部控制器将需要基于传送的数据速率来控制第二内部读取操作的时序。
参照图4B,示图404示出了保持用于第一数据传送的数据以使第一数据传送与第二数据传送对齐。时钟410表示时钟信号,其中数据传送发生在上升时钟沿和下降时钟沿上。命令(CMD)总线422表示从主机到存储器设备的命令。命令总线422示出了来自主机存储器控制器的读取命令(RD)。
在经过如时间间隔所示的一定时间后,存储器设备生成如命令(CMD)432所示的内部命令。在一个示例中,存储器设备响应于读取命令而生成两个不同的内部操作,如RD1和RD2所示。延迟430表示RD1和RD2之间的延迟。延迟430至少是对相同存储体的背靠背访问之间所要求的最小延迟。
在一个示例中,存储器设备通过启用数据传送来控制读取数据的传输。传送444表示启用数据传送。在示图404中,在时隙BL8-0期间,一旦出现RD1,就可以认为用于第一传送的数据已准备好。与一旦第一读取数据被RD1访问就发送第一传送相反,传送444被禁用,并且存储器设备在延迟464期间保持数据的第一部分。
如示图404所示,延迟464在BL8-0、BL8-1和BL8-2期间保持第一数据传送。存储器设备可以在BL8-3处启用传送,如传送444所示,使得存储器设备在BL8-3期间在DQ(数据)总线454上发送第一数据传送。在一个示例中,第一传送是总共BL16中的BL8。相同的操作流程可以以不同的突发长度运行。
延迟430示出了RD1和RD2之间的延迟。在一个示例中,存储器设备启用数据传送以触发第一传送的发送,从而使得恰好在RD2导致第二传送的数据准备好发送时第一传送结束。传送444可以保持启用,并且一旦第二传送的数据准备好,存储器设备就发送第二传送,如DQ总线454上所示出的。因此,可以接连地或者连续地发送第一传送和第二传送,而没有数据总线上的延迟。
应当理解,保持第一传送的数据以使第一传送与第二传送对齐对于存储器控制器来说具有最低的复杂度,因为将存在连续的BL16突发。然而,复杂度的减少是以第一传送的较高时延为代价的。
参照图4C,示图406示出了保持用于第一数据传送的数据以将第一数据传送和第二数据传送与数据交织模式对齐。时钟410表示时钟信号,其中数据传送发生在时钟上升沿和时钟下降沿上。命令(CMD)总线422表示从主机到存储器设备的命令。命令总线422示出了来自主机存储器控制器的读取命令(RD)。
在经过如时间间隔所示的一定时间后,存储器设备生成如命令(CMD)432所示的内部命令。在一个示例中,存储器设备响应于读取命令而生成两个不同的内部操作,如RD1和RD2所示。延迟430表示RD1和RD2之间的延迟。延迟430至少是对相同存储体的背靠背访问之间所要求的最小延迟。
在一个示例中,存储器设备通过启用数据传送来控制读取数据的传输。传送444表示启用数据传送。在示图406中,在时隙BL8-0期间,一旦出现RD1,就可以认为用于第一传送的数据已准备好。与一旦第一读取数据被RD1访问就发送第一传送相反,传送446被禁用,并且存储器设备在延迟466期间保持数据的第一部分。
如示图406所示,延迟466在BL8-0和BL8-1期间保持第一数据传送。存储器设备可以在BL8-2处启用传送,如传送446所示,使得存储器设备在BL8-2期间在DQ(数据)总线456上发送第一数据传送。在一个示例中,第一传送是总共BL16中的BL8。相同的操作流程可以以不同的突发长度运行。
延迟430示出了RDl和RD2之间的延迟。在一个示例中,存储器设备启用数据的传送以触发第一传送的发送,使得第一传送在BL8-3处结束,从而在第一传送和第二传送之间具有BL8的时序延迟或者间隙。BL8间隙可以使得存储器控制器能够利用BL8时隙调度不同的数据访问,从而交织用于传送的数据。在RD2使得第二传送的数据准备好发送时,存储器设备可以在BL8-4期间,在第二传送的数据准备好后立即发送该数据。传送446示出了在BL8-2期间启用发送第一传送、在发送之前在延迟466期间保持数据、并且一旦第二数据准备好就在BL8-4处启用第二传送。延迟468可以是BL8传送时段,如示图406所示,或者可以是某种其他时间窗口。
参考图4D,示图408示出了主机发送第二读取命令以使第二传送发生。时钟410表示时钟信号,其中数据传送发生在上升时钟沿和下降时钟沿上。命令(CMD)总线424表示从主机到存储器设备的命令。命令总线424示出了来自主机存储器控制器的读取命令(READ1)。
在经过如时间间隔所示的一定时间后,存储器设备生成如命令(CMD)432所示的内部命令。在一个示例中,存储器设备响应于读取命令而仅生成一个内部操作,如RD1所示。因此,为了使得存储器设备执行RD2所示的第二读取或者取得操作,主机的存储器控制器在命令总线424上发送第二读取命令,如READ2所示。延迟430表示RD1和RD2之间的延迟。延迟430至少是对相同存储体的背靠背访问之间所要求的最小延迟。
传送448表示启用第一数据和第二数据的传送。在一个示例中,第一数据的传送可以根据示图402、示图404或者示图406的任何示例。示图408简单地示出了来自主机的第二读取命令可以被利用来触发内部操作RD2,该内部操作RD2然后导致第二传送的数据在BL8-4处准备好传送。
针对示图402、示图404、示图406和示图408,考虑了用于DDR5设备的示例。DDR5设备对于来自相同存储体的背靠背访问具有指定的延迟。延迟必须至少为tCCD_L,该tCCD_L对于DDR5设备约为5ns(纳秒)。在DDR5设备的较高速度下,5ns延迟比在数据总线的16比特上传送数据所花费的时间要长得多。数据总线上的BL8时段在4800数据速率下仅花费1.66ns,或者在6400数据速率下仅花费1.25ns。DDR5的tCCD_L时间分别是BL8传送时段的3倍和4倍,这将导致传送的第一半部分和第二半部分之间存在较大间隙。在一个示例中,***可以延长延迟430以使得延迟大于tCCD_L。
示图402、示图404、示图406和示图408的不同示例允许第一数据传送的延迟、第二数据传送的延迟、或者第一数据传送和第二数据传送两者的延迟与数据对齐以获得更高的总线利用。留下交织间隙使得存储器控制器能够在第一传送和第二传送之间具有传送窗口,以在第一传送和第二传送之间交织来自另一存储体的BL8或者M/2数据突发。
示图406的操作提供了复杂度和时延之间的折衷。制定数据传送的时机以提供适当大小的间隙来交织来自另一访问操作的数据的能力减少了初始传送延迟,并且允许良好的数据总线利用。当存储器设备具有允许这种时序间隙的本机延迟时,已经使用了这种方法。在示图406中,***引入延迟来提供交织间隙,因为数据访问和数据传送的本机延迟不会提供交织间隙。
在一个示例中,延迟430的时序可以通过配置来设置(例如,通过模式寄存器设置来编程)。在一个示例中,延迟430可以基于数据速率来编程。在一个示例中,延迟466可以通过配置来设置(例如,通过模式寄存器设置来编程)。在一个示例中,延迟466可以基于数据速率来编程。因此,数据速率的选择可以伴随设置延迟时序以控制延迟430或者延迟466、或者延迟430和延迟466两者以制定第一数据传送和第二数据传送的时机。
图5是用于利用连续访问来从存储体访问数据的过程的示例的流程图。过程500表示当单次访问没有生成用于数据传送的足够数据时,基于对存储体的连续访问来访问数据和传送数据的过程的示例。过程500表示可以由根据***200或者***302的***执行的过程的示例。
在一个示例中,在502处,主机向存储器设备发送读取命令。在504处,存储器设备生成对存储器设备的选定存储体的内部读取操作。在506处,存储器设备可以在内部操作之间提供延迟用于对相同存储体的背靠背读取访问。
在一个示例中,如果主机要在基于单独的主机读取命令的内部读取操作之间引起延迟,则主机将发送两个命令以引起两个内部操作。在一个示例中,如果在508“是”分支处存在新的主机读取命令,则在510处,主机将第二读取命令发送到存储器设备。如果在508“否”分支处不存在新的主机读取命令,或者如果存在新的主机读取命令则响应于第二主机读取,则在512处,存储器设备生成对相同存储体的第二内部读取操作。
在一个示例中,在506处访问第一存储体并且进入用于背靠背访问的延迟之后,在514处,存储器设备可以确定是否准备好发送第一取得数据突发。该确定可以是根据配置(例如,模式寄存器设置)或者编程来确定何时发送第一数据突发以进行所期望的数据传送。如果数据准备就绪并且在516“是”分支处存储器设备确定传送准备就绪,则在520处,存储器设备可以发送第一数据突发。然后,存储器设备等待第二内部操作。在一个示例中,如果数据准备就绪并且在516“否”分支处存储器设备确定第一传送未准备就绪,则在518处,存储器设备缓冲数据,并且等待传送,在514处继续确定第一数据突发是否应该被发送。
在一个示例中,响应于在512处存储器设备生成第二内部读取操作,在522处存储器设备可以确定是否准备好发送第二取得数据突发。该确定可以根据配置(例如,模式寄存器设置)或者编程来确定何时发送第一数据突发以进行期望的数据传送。如果数据准备好并且在524“是”分支处存储器设备确定传送已准备好,则在528处,存储器设备可以发送第二数据突发。然后读取操作完成并且过程500完成。在一个示例中,如果数据已准备好并且存储器设备在524“否”分支处确定第二传送未准备好,则在526处存储器设备缓冲数据,并且等待传送,在522处继续确定第一数据突发是否应该被发送。
图6是其中可以实现具有突发时序控制的单次存储体访问的存储器子***的示例的框图。***600包括计算设备中的处理器和存储器子***的元件。***600是根据***200或者***302的示例的***的示例。
在一个示例中,对存储器设备640的存储器阵列660的访问仅访问存储器640和存储器控制器620之间的完整数据传送所需要的数据的一半。存储器设备640的控制器650可以包括读取控制(CTRL)690以管理发送数据传送以供读取的时序。控制器650将访问存储器阵列660的相同存储体两次以访问访问事务所需要的全部数据量。根据本文的任何示例,读取控制690可以管理内部操作的时序,以将来自两个内部访问的数据对齐并且作为完整数据突发的两个部分进行传送。虽然未具体示出写入控制,但写入控制将补充读取控制以管理写入操作的时序。在一个示例中,存储器控制器620包括时序控制(CTRL)692以使得调度器630能够基于数据传送的时序来调度命令。
处理器610表示可以执行操作***(OS)和应用的计算平台的处理单元,处理单元可以被统称为主机或者存储器的用户。OS和应用执行导致存储器访问的操作。处理器610可以包括一个或多个单独的处理器。每个单独的处理器可以包括单个处理单元、多核心处理单元或者其组合。处理单元可以是诸如CPU(中央处理单元)之类的主处理器、诸如GPU(图形处理单元)之类的***处理器或其组合。存储器访问也可以由诸如网络控制器或者硬盘控制器之类的设备发起。这样的设备可以与一些***中的处理器集成,或者通过总线(例如,快速PCI)附接到处理器,或这二者的组合。***600可以被实现为SOC(片上***),或者以独立组件来实现。
对存储器设备的引用可以应用于不同的存储器类型。存储器设备通常指代易失性存储器技术。易失性存储器是指如果到设备的电力中断,则其状态(以及存储在其中的数据)是不确定的存储器。非易失性存储器指代即使到设备的电力中断,其状态也是确定的存储器。动态易失性存储器要求刷新设备中存储的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或者一些变型(例如,同步DRAM(SDRAM))。本文描述的存储器子***可以与多种存储器技术(例如,DDR4(双倍数据速率版本4,JESD79-4,最初由JEDEC(联合电子设备工程委员会,现在的JEDEC固态技术协会)于2012年9月发布)、LPDDR4(低功率DDR版本4,JESD209-4,最初由JEDEC于2014年8月发布)、WIO2(宽I/O 2(WideIO2),JESD229-2,最初由JEDEC于2014年8月发布)、HBM(高带宽存储器DRAM,JESD235A,最初由JEDEC于2015年11月发布)、DDR5(DDR版本5,最初由JEDEC于2020年7月发布)、LPDDR5(LPDDR版本5,JESD209-5,最初由JEDEC于2019年2月发布)、HBM2((HBM版本2),目前由JEDEC讨论)或其他存储器技术或存储器技术的组合,以及基于此类规范的衍生或者扩展的技术)兼容。
存储器控制器620表示用于***600的一个或多个存储器控制器电路或者设备。存储器控制器620表示响应于处理器610执行的操作而生成存储器访问命令的控制逻辑。存储器控制器620访问一个或多个存储器设备640。存储器设备640可以是根据以上指代的任何一个的DRAM设备。在一个示例中,存储器设备640被组织和管理为不同的通道,其中每个通道耦合到总线和信号线,这些总线和信号线并行耦合到多个存储器设备。每个通道均可独立操作。因此,每个通道被独立访问和控制,并且每个通道的时序、数据传送、命令和地址交换以及其他操作都是分开的。耦合可以指代电耦合、通信耦合、物理耦合或者这些的组合。物理耦合可以包括直接接触。电耦合包括允许组件之间的电流流动、或者允许组件之间的信号传送、或者两者的接口或互连。通信耦合包括使得组件能够交换数据的连接(包括有线的或者无线的)。
在一个示例中,针对每个通道的设置由单独的模式寄存器或者其他寄存器设置来控制。在一个示例中,每个存储器控制器620管理单独的存储器通道,尽管***600可以被配置为具有由单个控制器管理的多个通道,或者在单个通道上具有多个控制器。在一个示例中,存储器控制器620是主机处理器610的部分(例如,逻辑在与处理器相同的管芯上实现或者在与处理器相同的封装空间中实现)。
存储器控制器620包括I/O接口逻辑622以耦合到存储器总线(例如,上文指代的存储器通道)。I/O接口逻辑622(以及存储器设备640的I/O接口逻辑642)可以包括引脚、焊盘、连接器、信号线、迹线、或者导线、或者用于连接设备的其他硬件、或者这些的组合。I/O接口逻辑622可以包括硬件接口。如所示出的,I/O接口逻辑622至少包括用于信号线的驱动器/收发机。通常,集成电路接口内的导线与焊盘、引脚或者连接器耦合以在设备之间接合信号线或者迹线或者其他导线。I/O接口逻辑622可以包括驱动器、接收机、收发机、或者终端、或者其他电路***或者电路***的组合,以在设备之间的信号线上交换信号。信号的交换包括发送或者接收中的至少一种。虽然示出为将I/O622从存储器控制器620耦合到存储器设备640的I/O 642,但是应当理解,在并行访问存储器设备640的组的***600的实现方式中,多个存储器设备可以包括到存储器控制器620的相同接口的I/O接口。在包括一个或多个存储器模块670的***600的实现方式中,除了存储器设备本身上的接口硬件之外,I/O 642还可以包括存储器模块的接口硬件。其他存储器控制器620将包括到其他存储器设备640的单独接口。
存储器控制器620和存储器设备640之间的总线可以被实现为将存储器控制器620耦合到存储器设备640的多条信号线。总线典型地可以至少包括时钟(CLK)632、命令/地址(CMD)634和写入数据(DQ)和读取数据(DQ)636,以及零个或多个其他信号线638。在一个示例中,存储器控制器620和存储器之间的总线或者连接可以称为存储器总线。在一个示例中,存储器总线是多点总线。用于CMD的信号线可以称为“C/A总线”(或者ADD/CMD总线,或者指示命令(C或者CMD)和地址(A或者ADD)信息传送的某种其他名称),并且用于写入DQ和读取DQ的信号线可以被称为“数据总线”。在一个示例中,独立通道具有不同的时钟信号、C/A总线、数据总线和其他信号线。因此,***600可以被认为具有多个“总线”,在这个意义上,独立的接口路径可以被认为是单独的总线。应当理解,除了明确示出的线之外,总线还可以包括选通信令线、警报线、辅助线、或者其他信号线中的至少一种、或者其组合。还应当理解,串行总线技术可以用于存储器控制器620和存储器设备640之间的连接。串行总线技术的一个示例是在单个差分信号对上在每个方向上利用嵌入式时钟进行8B10B编码和高速数据传送。在一个示例中,CMD 634表示与多个存储器设备并行共享的信号线。在一个示例中,多个存储器设备共享CMD 634的编码命令信号线,并且每个存储器设备具有单独的芯片选择(CS_n)信号线以选择各个存储器设备。
应当理解,在***600的示例中,存储器控制器620和存储器设备640之间的总线包括辅助命令总线CMD 634和用于承载写入和读取数据的辅助总线DQ 636。在一个示例中,数据总线可以包括用于读取数据和用于写入/命令数据的双向线。在另一示例中,辅助总线DQ636可以包括用于从主机向存储器写入数据的单向写入信号线,并且可以包括用于从存储器向主机读取数据的单向线。根据所选择的存储器技术和***设计,其他信号638可以伴随总线或者子总线(例如,选通线DQS)。基于***600的设计或者实现方式(如果设计支持多种实现方式),数据总线可以对每个存储器设备640具有更多或更少的带宽。例如,数据总线可以支持具有x4接口、x8接口、x16接口或者其他接口的存储器设备。约定“xW”,其中W是指代存储器设备640的接口的接口大小或者宽度的整数,该整数表示与存储器控制器620交换数据的信号线的数量。存储器设备的接口大小是关于***600中每个通道可以同时使用多少个存储器设备或者多少个存储器设备并行耦合到相同信号线的控制因素。在一个示例中,高带宽存储器设备、宽接口设备或者堆叠式存储器配置或者其组合可以实现更宽的接口(例如,x128接口、x256接口、x512接口、x1024接口或者其他数据总线接口宽度)。
在一个示例中,存储器设备640和存储器控制器620通过数据总线以突发或者连续数据传送的序列来交换数据。突发与多个传送周期相对应,传送周期与总线频率相关。在一个示例中,传送周期可以是发生在相同时钟或者选通信号边沿(例如,上升沿)上的传送的整个时钟周期。在一个示例中,每个时钟周期(其指代***时钟的周期)被分成多个单位间隔(UI),其中每个UI是传送周期。例如,双倍数据速率传送在时钟信号的两个边沿(例如,上升沿和下降沿)触发。突发可以持续配置数量的UI(其可以是存储在寄存器中的配置)或者可以是即时触发的。例如,八个连续传送时段的序列可以被认为是突发长度八(BL8),并且每个存储器设备640可以在每个UI上传送数据。因此,在BL8上操作的x8存储器设备可以传送64比特数据(8条数据信号线乘以突发期间每条线传送的8个数据比特)。应当理解,这个简单的示例仅是说明而不是限制性的。
存储器设备640表示***600的存储器资源。在一个示例中,每个存储器设备640是单独的存储器管芯。在一个示例中,每个存储器设备640可以与每个设备或者管芯的多个(例如,2个)通道接合。每个存储器设备640包括I/O接口逻辑642,I/O接口逻辑642具有由设备的实现方式确定的带宽(例如,x16或者x8或者某种其他接口带宽)。I/O接口逻辑642使得存储器设备能够与存储器控制器620接合。I/O接口逻辑642可以包括硬件接口,并且可以与存储器控制器的I/O 622一致,但是是在存储器设备端。在一个示例中,多个存储器设备640并行连接到相同的命令总线和数据总线。在另一示例中,多个存储器设备640并行连接到相同的命令总线,并且连接到不同的数据总线。例如,***600可以配置有并行耦合的多个存储器设备640,每个存储器设备响应命令,并且访问每个存储器设备内部的存储器资源660。对于写入操作,单个存储器设备640可以写入整个数据字的一部分,并且对于读取操作,单个存储器设备640可以取得整个数据字的部分。该字的其余比特将由其他存储器设备并行提供或者接收。
在一个示例中,存储器设备640直接设置在计算设备的主板或者主机***平台(例如,其上设置有处理器610的PCB(印刷电路板))上。在一个示例中,存储器设备640可以被组织成存储器模块670。在一个示例中,存储器模块670表示双列直插式存储器模块(DIMM)。在一个示例中,存储器模块670表示多个存储器设备的其他组织共享访问或者控制电路***的至少一部分,该访问或者控制电路***可以是与主机***平台分离的电路、分离的设备或者分离的板。存储器模块670可以包括多个存储器设备640,并且存储器模块可以包括对设置在其上的到所包括的存储器设备的多个单独通道的支持。在另一示例中,存储器设备640可以例如通过诸如多芯片模块(MCM)、封装上封装、硅通孔(TSV)或者其他技术或者其组合之类的技术并入与存储器控制器620相同的封装中。类似地,在一个示例中,多个存储器设备640可以并入存储器模块670中,存储器模块670本身可以并入与存储器控制器620相同的封装中。应当意识到,对于这些和其他实现方式,存储器控制器620可以是主机处理器610的部分。
存储器设备640各自包括一个或多个存储器阵列660。存储器阵列660表示数据的可寻址存储器位置或者存储位置。典型地,存储器阵列660作为数据行被管理,通过字线(行)和位线(行内的各个比特)控制来访问。存储器阵列660可以被组织为存储器的单独的通道、列(rank)和存储体。通道可以指代到存储器设备640内的存储位置的独立控制路径。列可以指代并行地跨多个存储器设备(例如,不同设备内的相同行地址)的公共位置。存储体可以指代存储器设备640内的存储器位置的子阵列。在一个示例中,存储器的存储体被划分为子存储体,其中共享电路***(例如,驱动器、信号线、控制逻辑)的至少一部分用于子存储体,从而允许单独寻址和访问。应当理解,存储器位置的通道、列、存储体、子存储体、存储体组或者其他组织以及组织的组合在它们对物理资源的应用中可以重叠。例如,可以通过特定通道作为特定存储体访问相同的物理存储器位置,该特定存储体也可以属于列。因此,存储器资源的组织将以包容性而非排他性的方式来理解。
在一个示例中,存储器设备640包括一个或多个寄存器646。寄存器646表示为存储器设备的操作提供配置或者设置的一个或多个存储设备或者存储位置。在一个示例中,寄存器646可以为存储器设备640提供存储位置以存储供存储器控制器620访问的数据,作为控制或者管理操作的一部分。在一个示例中,寄存器646包括一个或多个模式寄存器。在一个示例中,寄存器646包括一个或多个多用途寄存器。寄存器646内的位置的配置可以将存储器设备640配置为在不同的“模式”下操作,其中命令信息可以基于模式来触发存储器设备640内的不同操作。另外地或可替代地,不同的模式还可以根据模式从地址信息或者其他信号线触发不同的操作。寄存器646的设置可以指示I/O设置的配置(例如,时序、终止或者ODT(管芯上终止)646、驱动器配置或者其他I/O设置)。
在一个示例中,存储器设备640包括ODT 644作为与I/O 642相关联的接口硬件的一部分。ODT 644可以如上所述被配置,并且提供用于将阻抗施加到指定信号线的接口的设置。在一个示例中,ODT 644应用于DQ信号线。在一个示例中,ODT 644应用于命令信号线。在一个示例中,ODT 644应用于地址信号线。在一个示例中,ODT 644可以应用于前述的任意组合。可以基于存储器设备是访问操作的选定目标还是非目标设备来改变ODT设置。ODT 644设置可以影响端接线路上信令的时序和反射。对ODT 644的仔细控制可以通过所施加的阻抗和负载的改进的匹配来实现更高速的操作。ODT 644可以应用于I/O接口642、622的指定信号线(例如,ODT用于DQ线或者ODT用于C/A线),并且不一定应用于所有信号线。
存储器设备640包括控制器650,该控制器650表示存储器设备内的用于控制存储器设备内的内部操作的控制逻辑。例如,控制器650对存储器控制器620发送的命令进行解码并且生成内部操作以执行或者满足命令。控制器650可以被称为内部控制器,并且与主机的存储器控制器620分离。控制器650可以基于寄存器646确定选择什么模式,并且基于所选择的模式来配置用于访问存储器资源660的操作或者其他操作的内部执行。控制器650生成控制信号来控制存储器设备640内的比特的路由,从而为所选择的模式提供适当的接口并且将命令引导至适当的存储器位置或者地址。控制器650包括命令逻辑652,该命令逻辑652可以对在命令和地址信号线上接收到的命令编码进行解码。因此,命令逻辑652可以是或者包括命令解码器。利用命令逻辑652,存储器设备可以识别命令并且生成内部操作来执行所请求的命令。
再次参考存储器控制器620,存储器控制器620包括命令(CMD)逻辑624,该CMD逻辑624表示生成命令以发送到存储器设备640的逻辑或者电路***。命令的生成可以指代调度之前的命令,或者对准备好要发送的排队的命令的准备。总体上,存储器子***中的信令包括命令内或者伴随命令的地址信息,以指示或者选择存储器设备应在其中执行命令的一个或多个存储器位置。响应于针对存储器设备640的事务的调度,存储器控制器620可以经由I/O 622发出命令以使得存储器设备640执行命令。在一个示例中,存储器设备640的控制器650接收并且解码经由I/O 642从存储器控制器620接收的命令和地址信息。基于接收到的命令和地址信息,控制器650可以控制存储器设备640内的逻辑和电路***的操作的时序以执行命令。控制器650负责遵守存储器设备640内的标准或者规范(例如,时序和信令要求)。存储器控制器620可以通过访问调度和控制来实现对标准或者规范的遵从。
存储器控制器620包括调度器630,该调度器630表示用于生成事务并且对事务进行排序以发送到存储器设备640的逻辑或者电路***。从一个角度来看,存储器控制器620的主要功能可以被认为是调度存储器访问和对存储器设备640的其他事务。这种调度可以包括生成事务本身以实现处理器610对数据的请求并且维持数据的完整性(例如,利用与刷新相关的命令)。事务可以包括一个或多个命令,并且导致在一个或多个时序周期(例如,时钟周期或者单位间隔)上传送命令或者数据或者两者。事务可以用于访问,例如,读取或者写入或者相关的命令或其组合,并且其他事务可以包括用于配置、设置、数据完整性的存储器管理命令或者其他命令或其组合。
存储器控制器620典型地包括诸如调度器630之类的逻辑,以允许对事务进行选择和排序以改进***600的性能。因此,存储器控制器620可以选择应以何种次序将未完成的事务中的哪些发送到存储器设备640,这典型地是通过比简单的先进先出算法复杂得多的逻辑来实现的。存储器控制器620管理事务到存储器设备640的传输,并且管理与事务相关联的时序。在一个示例中,事务具有确定性时序,该确定性时序可以由存储器控制器620管理并且用于确定如何利用调度器630来调度事务。
在一个示例中,存储器控制器620包括刷新(REF)逻辑626。刷新逻辑626可以用于易失性的并且需要被刷新以保持确定性状态的存储器资源。在一个示例中,刷新逻辑626指示用于刷新的位置以及要执行的刷新的类型。刷新逻辑626可以触发存储器设备640内的自刷新,或者通过发送刷新命令来执行外部刷新(可以成为自动刷新命令),或其组合。在一个示例中,存储器设备640内的控制器650包括刷新逻辑654以在存储器设备640内应用刷新。在一个示例中,刷新逻辑654生成内部操作以根据从存储器控制器620接收的外部刷新来执行刷新。刷新逻辑654可以确定刷新是否针对存储器设备640,以及响应于该命令要刷新什么存储器资源660。
图7是其中可以实现具有突发时序控制的单次存储体访问的计算***的示例的框图。***700表示根据本文任何示例的计算设备,并且可以是膝上型计算机、台式计算机、平板计算机、服务器、游戏或者娱乐控制***、嵌入式计算设备或者其他电子设备。***700是根据***200或者***302的示例的***的示例。
在一个示例中,对存储器730的访问仅访问存储器730和存储器控制器722之间的完整数据传送所需要的数据的一半。存储器730可以包括读取(RD)控制(CTRL)790以管理发送数据传送以供读取的时序。存储器730将访问其存储器阵列的相同存储体两次以访问访问事务所需要的全部数据量。根据本文的任何示例,读取控制790可以管理内部操作的时序,以将来自两个内部访问的数据对齐并且作为完整数据突发的两个部分进行传送。尽管未具体示出写入控制,但写入控制将补充读取控制以管理写入操作的时序。在一个示例中,存储器控制器722包括读取(RD)控制(CTRL)792以使得能够基于数据传送的时序来调度命令。
***700包括处理器710,该处理器710可以包括任何类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核心、或者其他处理硬件、或者其组合,以为***700提供指令的处理或者执行。处理器710可以是主机处理器设备。处理器710控制***700的整体操作,并且可以是或者包括一个或多个可编程通用或者专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)或者此类设备的组合。
***700包括引导/配置716,该引导/配置716表示用于存储引导码(例如,基本输入/输出***(BIOS))、配置设置、安全硬件(例如,可信平台模块(TPM))或者在主机OS外部操作的其他***级硬件的存储装置。引导/配置716可以包括非易失性存储设备(例如,只读存储器(ROM)、闪速存储器或者其他存储器设备)。
在一个示例中,***700包括耦合到处理器710的接口712,该接口712可以表示用于需要更高带宽连接的***组件(例如,存储器子***720或者图形接口组件740)的更高速接口或者高吞吐量接口。接口712表示接口电路,该接口电路可以是独立组件或者集成到处理器管芯上。接口712可以作为电路集成到处理器管芯上或者作为组件集成到片上***上。在存在的情况下,图形接口740与图形组件接合以向***700的用户提供视觉显示。图形接口740可以是独立组件或者集成到处理器管芯或者片上***上。在一个示例中,图形接口740可以驱动向用户提供输出的高清(HD)显示器或者超高清(UHD)显示器。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口740基于存储器730中存储的数据或者基于处理器710执行的操作或者两者来生成显示。
存储器子***720表示***700的主存储器,并且提供用于由处理器710执行的代码或者要在执行例程中使用的数据值的存储装置。存储器子***720可以包括一种或多种随机存取存储器(RAM)(例如,DRAM、3DXP(三维交叉点)、或者其他存储器设备、或者此类设备的组合)。存储器730存储和托管操作***(OS)732以及其他事物,以提供用于执行***700中的指令的软件平台。另外地,应用734可以从存储器730在OS 732的软件平台上执行。应用734表示具有自己的操作逻辑来执行对一个或多个功能的执行的程序。进程736表示向OS 732或者一个或多个应用734或者其组合提供辅助功能的代理或者例程。OS 732、应用734和进程736提供软件逻辑来为***700提供功能。在一个示例中,存储器子***720包括存储器控制器722,该存储器控制器722是用于生成命令并且向存储器730发出命令的存储器控制器。应当理解,存储器控制器722可以是处理器710的物理部分或者接口712的物理部分。例如,存储器控制器722可以是集成存储器控制器,其集成到具有处理器710的电路上(例如,集成到处理器管芯或者片上***上)。
虽然没有具体示出,但是应当理解,***700可以包括设备之间的一个或多个总线或者总线***(例如,存储器总线、图形总线、接口总线等)。总线或者其他信号线可以将组件通信地或者电耦合在一起,或者将组件通信地且电耦合。总线可以包括物理通信线、点对点连接、桥接器、适配器、控制器或者其他电路***或其组合。总线可以包括例如***总线、***组件互连(PCI)总线、超传输或行业标准架构(ISA)总线、小型计算机***接口(SCSI)总线、通用串行总线(USB)或者其他总线中的一种或多种或其组合。
在一个示例中,***700包括接口714,该接口714可以耦合到接口712。接口714可以是比接口712低速的接口。在一个示例中,接口714表示接口电路,该接口电路可以包括独立组件和集成电路***。在一个示例中,多个用户接口组件或者***组件或者两者耦合到接口714。网络接口750向***700提供通过一个或多个网络与远程设备(例如,服务器或者其他计算设备)通信的能力。网络接口750可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)、或者其他基于有线或者无线标准的接口或者专有的接口。网络接口750可以与远程设备交换数据,这可以包括发送存储在存储器中的数据或者接收要存储在存储器中的数据。
在一个示例中,***700包括一个或多个输入/输出(I/O)接口760。I/O接口760可以包括一个或多个接口组件,用户通过该一个或多个接口组件与***700交互(例如,音频、字母数字、触觉/触摸或者其他接合)。***接口770可以包括上面未具体提及的任何硬件接口。***设备总体上指代的是依赖地连接到***700的设备。依赖连接是其中***700提供在其上执行操作并且与用户交互的软件平台或者硬件平台或两者的连接。
在一个示例中,***700包括用于以非易失性方式存储数据的存储子***780。在一个示例中,在某些***实现方式中,存储子***780的至少某些组件可以与存储器子***720的组件重叠。存储子***780包括存储设备784,该存储设备784可以是或者包括用于以非易失性方式存储大量数据的任何常规介质(例如,一个或多个磁性、固态、NAND、3DXP或者基于光学的盘,或其组合)。存储设备784以持久状态保持代码或者指令和数据786(即,尽管到***700的电力中断,但仍保持该值)。存储设备784一般可以被认为是“存储器”,尽管存储器730典型地是向处理器710提供指令的执行或者操作存储器。尽管存储设备784是非易失性的,但是存储器730可以包括易失性存储器(即,如果到***700的电力中断,则数据的值或者状态是不确定的)。在一个示例中,存储子***780包括控制器782以与存储设备784接合。在一个示例中,控制器782是接口714或者处理器710的物理部分,或者可以包括处理器710和接口714两者中的电路或者逻辑。
电源702向***700的组件提供电力。更具体地,电源702典型地与***700中的一个或多个电源供应704接合以向***700的组件提供电力。在一个示例中,电源供应704包括AC到DC(交流电到直流电)适配器以***墙壁插座。这种AC电力可以是可再生能源(例如,太阳能)电源702。在一个示例中,电源702包括DC电源(例如,外部AC到DC转换器)。在一个示例中,电源702或者电源供应704包括无线充电硬件以经由与充电场的接近度进行充电。在一个示例中,电源702可以包括内部电池或者燃料电池源。
图8是其中可以实现具有突发时序控制的单次存储体访问的移动设备的示例的框图。***800表示移动计算设备(例如,计算平板计算机、移动电话或者智能手机、可穿戴计算设备、或者其他移动设备、或者嵌入式计算设备)。应当理解,***800中总体上示出了组件中的某些组件,并且并未示出这种设备的所有组件。
***800是根据***200或者***302的示例的***的示例。在一个示例中,对存储器862的访问仅访问存储器862和存储器控制器864之间的完整数据传送所需要的数据的一半。存储器862可以包括读取(RD)控制(CTRL)892以管理发送数据传送以供读取的时序。存储器862将访问其存储器阵列的相同存储体两次以访问访问事务所需要的全部数据量。根据本文的任何示例,读取控制892可以管理内部操作的时序,以将来自两个内部访问的数据对齐并且作为完整数据突发的两个部分来传送。尽管未具体示出写入控制,但是写入控制将补充读取控制以管理写入操作的时序。在一个示例中,存储器控制器864包括读取(RD)控制(CTRL)894以使得能够基于数据传送的时序来调度命令。
***800包括处理器810,该处理器810执行***800的主要处理操作。处理器810可以是主机处理器设备。处理器810可以包括一个或多个物理设备(例如,微处理器、应用处理器、微控制器、可编程逻辑器件或者其他处理单元)。由处理器810执行的处理操作包括在其上执行应用和设备功能的操作平台或者操作***的执行。处理操作包括与人类用户或者与其他设备的I/O(输入/输出)相关的操作、与功率管理相关的操作、与将***800连接到另一设备相关的操作或者其组合。处理操作还可以包括与音频I/O、显示I/O、或者其他接合相关的操作或者其组合。处理器810可以执行存储在存储器中的数据。处理器810可以写入或者编辑存储在存储器中的数据。
在一个示例中,***800包括一个或多个传感器812。传感器812表示嵌入式传感器或者到外部传感器的接口或者其组合。传感器812使得***800能够监视或者检测其中实现***800的环境或者设备的一种或多种状况。传感器812可以包括环境传感器(例如,温度传感器、运动检测器、光检测器、相机、化学传感器(例如,一氧化碳、二氧化碳或者其他化学传感器))、压力传感器、加速度计、陀螺仪、医学或者生理学传感器(例如,生物传感器、心率监视器或者用于检测生理属性的其他传感器)、或者其他传感器或者其组合。传感器812还可以包括用于生物计量***的传感器(例如,指纹识别***、面部检测或者识别***、或者检测或者识别用户特征的其他***)。传感器812应当被广义地理解,并且不限于可以与***800一起实现的许多不同类型的传感器。在一个示例中,一个或多个传感器812经由与处理器810集成的前端电路耦合到处理器810。在一个示例中,一个或多个传感器812经由***800的另一组件耦合到处理器810。
在一个示例中,***800包括音频子***820,该音频子***820表示与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)组件。音频功能可以包括扬声器或者耳机输出以及麦克风输入。用于此类功能的设备可以集成到***800中,或者连接到***800。在一个示例中,用户通过提供由处理器810接收和处理的音频命令来与***800交互。
显示子***830表示提供视觉显示以呈现给用户的硬件(例如,显示设备)和软件组件(例如,驱动程序)。在一个示例中,显示器包括供用户与计算设备交互的触觉组件或者触摸屏元件。显示子***830包括显示接口832,该显示接口832包括用于向用户提供显示的特定屏幕或者硬件设备。在一个示例中,显示接口832包括与处理器810分离的逻辑(例如,图形处理器)以执行与显示器相关的至少一些处理。在一个示例中,显示子***830包括向用户提供输出和输入两者的触摸屏设备。在一个示例中,显示子***830包括向用户提供输出的高清(HD)或者超高清(UHD)显示器。在一个示例中,显示子***包括或者驱动触摸屏显示器。在一个示例中,显示子***830基于存储在存储器中的数据或者基于由处理器810执行的操作或者两者来生成显示信息。
I/O控制器840表示与和用户的交互相关的硬件设备和软件组件。I/O控制器840可以操作来管理作为音频子***820或者显示子***830或者两者的一部分的硬件。另外地,I/O控制器840示出了用于连接到***800的附加的设备的连接点,用户可以通过该连接点与***交互。例如,可以附接到***800的设备可以包括麦克风设备、扬声器或者立体声***、视频***或者其他显示设备、键盘或者小键盘设备、按钮/开关、或者用于特定应用的其他I/O设备(例如,读卡器或者其他设备)。
如上所述,I/O控制器840可以与音频子***820或者显示子***830或者两者交互。例如,通过麦克风或者其他音频设备的输入可以为***800的一个或多个应用或者功能提供输入或者命令。另外地,代替显示输出或者除了显示输出之外,可以提供音频输出。在另一示例中,如果显示子***包括触摸屏,则显示设备还用作输入设备,其可以至少部分地由I/O控制器840管理。***800上还可以存在附加的按钮或者开关以提供由I/O控制器840管理的I/O功能。
在一个示例中,I/O控制器840管理设备(例如,加速度计、相机、光传感器或者其他环境传感器、陀螺仪、全球定位***(GPS)或者可以包括在***800中的其他硬件或者传感器812)。输入可以是直接用户交互的一部分,也可以向***提供环境输入以影响其操作(例如,过滤噪声、调整显示器以进行亮度检测、为相机应用闪光灯或者其他特征)。
在一个示例中,***800包括管理电池电力使用、电池充电以及与功率节约操作相关的特征的功率管理850。功率管理850管理来自电源852的电力,该电源852向***800的组件提供电力。在一个示例中,电源852包括AC到DC(交流电到直流电)适配器以***墙壁插座。这种AC电力可以是可再生能源(例如,太阳能、基于运动的电力)。在一个示例中,电源852仅包括DC电力,该DC电力可以由DC电源(例如,外部AC到DC转换器)提供。在一个示例中,电源852包括无线充电硬件以经由与充电场的接近度进行充电。在一个示例中,电源852可以包括内部电池或者燃料电池源。
存储器子***860包括用于在***800中存储信息的存储器设备862。存储器子***860可以包括非易失性的(如果对到存储器设备的电力被中断,则状态不会改变)存储器设备或者易失性的(如果到存储器设备的电力被中断,则状态是不确定的)存储器设备,或其组合。存储器862可以存储应用数据、用户数据、音乐、照片、文档或其他数据,以及与***800的应用和功能的执行相关的***数据(无论是长期的还是临时的)。在一个示例中,存储器子***860包括存储器控制器864(存储器控制器864也可以被认为是***800的控件的一部分,并且可以潜在地被认为是处理器810的部分)。存储器控制器864包括调度器,该调度器用于生成命令和发出命令来控制对存储器设备862的访问。
连接性870包括硬件设备(例如,无线的或者有线的连接器和通信硬件,或者有线的和无线的硬件的组合)和软件组件(例如,驱动程序、协议栈)以使得***800能够与外部设备通信。外部设备可以是单独的设备(例如,其他计算设备、无线接入点或基站),以及***设备(例如,耳机、打印机或其他设备)。在一个示例中,***800与外部设备交换数据以存储在存储器中或者显示在显示设备上。交换的数据可以包括要存储在存储器中的数据,或者已经存储在存储器中的数据,以读取、写入或者编辑数据。
连接性870可以包括多种不同类型的连接性。概括地说,***800被示出为具有蜂窝连接性872和无线连接性874。蜂窝连接性872总体上指代的是由无线载波提供的(例如,经由GSM(全球移动通信***)或者其变型或者衍生物、CDMA(码分多址)或者其变型或者衍生物、TDM(时分复用)或者其变型或者衍生物、LTE(长期演进,也称为“4G”)、5G或其他蜂窝服务标准提供的)蜂窝网络连接性。无线连接性874指代的是非蜂窝的无线连接性,并且可以包括个域网(例如,蓝牙)、局域网(例如,WiFi)、或者广域网(例如,WiMax)、或者其他无线通信、或其组合。无线通信指代通过非固体介质使用经调制的电磁辐射来传送数据。有线通信通过固体通信介质进行。
***连接880包括硬件接口和连接器,以及软件组件(例如,驱动程序、协议栈)以进行***连接。应当理解,***800既可以是其他计算设备的***设备(“到”882),也可以具有与其连接的***设备(“从”884)。***800通常具有“对接(docking)”连接器以连接到其他计算设备以用于诸如管理(例如,下载、上传、改变、同步)***800上的内容之类的目的。另外地,对接连接器可以允许***800连接到某些***设备,这些***设备允许***800控制内容输出(例如,到视听或者其他***的内容输出)。
除了专有对接连接器或者其他专有连接硬件之外,***800还可以经由通用或者基于标准的连接器进行***连接880。常见类型可以包括通用串行总线(USB)连接器(可以包括多种不同硬件接口中的任何一个)、显示端口(DisplayPort)(包括迷你显示端口(MiniDisplayPort,MDP))、高清晰度多媒体接口(High Definition MultimediaInterface,HDMI)或者其他类型。
通常,关于本文的描述,在一个示例中,存储器设备包括:硬件接口,该硬件接口耦合到存储器控制器,其中响应于来自存储器控制器的读取命令,硬件接口用于通过突发长度M传送N个数据比特;具有多个存储体的存储器阵列,多个存储体包括针对读取命令被选择用于读取访问的选定存储体,其中对选定存储体的读取访问用于从选定存储体访问N/2个数据比特;以及控制硬件,其中响应于读取命令,控制硬件用于:触发对选定存储体的两次读取访问以从选定存储体访问N个数据比特,并且使得硬件接口将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送来发送。
在存储器设备的一个示例中,控制硬件用于:一旦从选定存储体访问第一N/2数据比特部分,就使得硬件接口发送第一传送;以及一旦从选定存储体访问第二N/2数据比特部分,就在延迟之后发送第二传送。根据存储器设备的任何前述示例,在一个示例中,控制硬件用于:在发送第二传送之前延迟传送,以将第一传送与第二传送之间的延迟延长为大于tCCD_L延迟的时段。根据存储器设备的任一前述示例,在一个示例中,控制硬件用于:在发送第一传送之前延迟第一传送。根据存储器设备的任一前述示例,在一个示例中,延迟包括第一传送的延迟,以在第一传送与第二传送之间没有延迟的情况下连续地发送第一传送和第二传送。根据存储器设备的任何前述示例,在一个示例中,延迟包括第一传送的延迟,以在第一传送与第二传送之间留下传送窗口,以在第一传送与第二传送之间交织来自多个存储体中的另一存储体的第三N/2数据比特部分。根据存储器设备的任一前述示例,在一个示例中,存储器设备还包括:缓冲器,该缓冲器用于在延迟期间保持第一N/2数据比特部分。根据存储器设备的任一前述示例,在一个示例中,控制硬件用于:响应于来自存储器控制器的读取命令而生成针对选定存储体的两个内部读取访问操作。根据存储器设备的任一前述示例,在一个示例中,存储器设备包括与低功率双倍数据速率(LPDDR)标准兼容的动态随机存取存储器(DRAM)设备。根据存储器设备的任一前述示例,在一个示例中,N是256比特。根据存储器设备的任一前述示例,在一个示例中,M是32。
通常,关于本文的描述,在一个示例中,一种***包括:耦合到存储器控制器的存储器设备,该存储器控制器包括调度器,该调度器用于:基于存储器设备将数据作为第一传送和第二传送来发送,来调度读取命令以及其他命令;其中,存储器设备包括根据前述两段中的任意示例的存储器设备。
通常,关于本文的描述,在一个示例中,存储器控制器包括:耦合至存储器设备的数据接口,该数据接口用于响应于读取命令而通过突发长度M接收N个数据比特;耦合至存储器设备的命令接口,该命令接口用于向存储器设备发送读取命令以读取存储器设备的多个存储体中的选定存储体,其中存储器设备对选定存储体的读取访问用于从选定存储体访问N/2个数据比特,其中存储器设备用于对选定存储体执行两次读取访问以访问N个数据比特;以及调度器,该调度器用于:基于存储器设备将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送发送到数据接口,来调度读取命令以及其他命令。
在存储器控制器的一个示例中,调度器用于:基于存储器设备一旦从选定存储体访问第一N/2数据比特部分就发送第一传送,并且一旦从选定存储体访问第二N/2数据比特部分就在延迟之后发送第二传送,来调度读取命令以及其他命令。根据存储器控制器的任一前述示例,在一个示例中,调度器用于:基于存储器设备将第一传送与第二传送之间的延迟延长为大于tCCD_L延迟的时段,来调度读取命令以及其他命令。根据存储器控制器的任一前述示例,在一个示例中,调度器用于:基于存储器设备延迟第一传送以在第一传送与第二传送之间没有延迟的情况下连续地发送第一传送和第二传送,来调度读取命令以及其他命令。根据存储器控制器的任一前述示例,在一个示例中,调度器用于:基于存储器设备延迟第一传送以在第一传送与第二传送之间留下传送窗口,来调度读取命令以及其他命令;以及其中存储器控制器用于:将另一读取命令调度到多个存储体中的另一个存储体,以在第一传送和第二传送之间交织第三N/2数据比特部分。根据存储器控制器的任一前述示例,在一个示例中,调度器用于:将第二读取命令调度到选定存储体,以触发由存储器设备进行两次连续读取访问。根据存储器控制器的任一前述示例,在一个示例中,存储器设备包括与低功率双倍数据率(LPDDR)标准兼容的动态随机存取存储器(DRAM)设备。根据存储器控制器的任一前述示例,在一个示例中,N是256比特。根据存储器控制器的任一前述示例,在一个示例中,M是32。
通常,关于本文的描述,在一个示例中,一种***包括:耦合到存储器控制器的存储器设备,该存储器设备包括:具有多个存储体的存储器阵列,该多个存储体包括针对来自存储器控制器的读取命令被选择用于读取访问的选定存储体,其中对选定存储体的读取访问用于从选定存储体访问N/2个数据比特;以及控制硬件,其中,响应于读取命令,控制硬件用于:触发对选定存储体的两次读取访问,以从选定存储体访问N个数据比特;其中,存储器设备用于:将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送来发送;其中,存储器控制器包括根据前述两段中任一示例的存储器控制器。
通常,关于本文的描述,在一个示例中,一种方法包括:从存储器控制器接收针对存储器设备的选定存储体的读取命令,其中存储器设备用于通过突发长度M传送N个数据比特,其中对选定存储体的读取访问用于从选定存储体访问N/2个数据比特;响应于读取命令,触发对选定存储体的两次读取访问以从选定存储体访问N个数据比特;将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送来发送。
在该方法的一个示例中,控制硬件用于使硬件接口发送数据作为第一传送包括:一旦从选定存储体访问第一N/2数据比特部分,就发送第一传送,并且一旦从选定存储体访问第二N/2数据比特部分,就在延迟之后发送第二传送。根据该方法的任一前述示例,在一个示例中,发送数据包括在发送第二传送之前延迟传送,以将第一传送与第二传送之间的延迟延长为大于tCCD_L延迟的时段。根据该方法的任一前述示例,在一个示例中,发送数据包括在发送第一传送之前延迟第一传送。根据该方法的任一前述示例,在一个示例中,延迟包括第一传送的延迟,以在第一传送与第二传送之间没有延迟的情况下连续地发送第一传送和第二传送。根据该方法的任何前述示例,在一个示例中,延迟包括第一传送的延迟,以在第一传送与第二传送之间留下传送窗口,以在第一传送与第二传送之间交织来自多个存储体中的另一存储体的第三N/2数据比特部分。根据该方法的任一前述示例,在一个示例中,该方法还包括:在延迟期间缓冲第一N/2数据比特部分。根据该方法的任一前述示例,在一个示例中,控制硬件用于:响应于来自存储器控制器的读取命令来生成针对选定存储体的两个内部读取访问操作。根据该方法的任一前述示例,在一个示例中,存储器设备包括与低功率双倍数据速率(LPDDR)标准兼容的动态随机存取存储器(DRAM)设备。根据该方法的任一前述示例,在一个示例中,N是256比特。根据该方法的任一前述示例,在一个示例中,M是32。
通常,关于本文的描述,在一个示例中,一种方法包括:从存储器控制器向存储器设备发送读取命令以读取存储器设备的多个存储体中的选定存储体,其中存储器设备对选定存储体的读取访问用于从选定存储体访问N/2个数据比特,其中存储器设备用于对选定存储体执行两次读取访问以访问N/2个数据比特;基于存储器设备将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送发送到数据接口,来调用读取命令以及其他命令;以及响应于读取命令而通过突发长度M接收N个数据比特。
在该方法的一个示例中,调度包括:基于存储器设备一旦从选定存储体访问第一N/2数据比特部分就发送第一传送,并且一旦从选定存储体访问第二N/2数据比特部分就在延迟之后发送第二传送,来调用读取命令以及其他命令。根据该方法的任一前述示例,在一个示例中,调度包括:基于存储器设备将第一传送与第二传送之间的延迟延长为大于tCCD_L延迟的时段,来调用读取命令以及其他命令。根据该方法的任何前述示例,在一个示例中,调度包括:基于存储器设备延迟第一传送以在第一传送和第二传送之间没有延迟的情况下连续地发送第一传送和第二传送,来调用读取命令以及其他命令。根据该方法的任一前述示例,在一个示例中,调度包括:基于存储器设备延迟第一传送以在第一传送与第二传送之间留下传送窗口,来调用读取命令以及其他命令;以及将另一读取命令调度到多个存储体中的另一个存储体以在第一传送和第二传送之间交织第三N/2数据比特部分。根据该方法的任一前述示例,在一个示例中,调度包括将第二读取命令调度到选定存储体,以触发由存储器设备进行两次连续读取访问。根据该方法的任一前述示例,在一个示例中,存储器设备包括与低功率双倍数据率(LPDDR)标准兼容的动态随机存取存储器(DRAM)设备。根据该方法的任一前述示例,在一个示例中,N是256比特。根据该方法的任一前述示例,在一个示例中,M是32。
本文所示的流程图提供了各种过程动作的序列的示例。流程图可以指示要由软件或固件例程执行的操作以及物理操作。流程图可以说明有限状态机(FSM)的状态的实现方式的示例,其可以以硬件和/或软件来实现。尽管以特定序列或者次序示出,但除非另有说明,否则可以修改动作的次序。因此,所示的图应当仅被理解为示例,并且该过程可以以不同的次序执行,并且一些动作可以并行地执行。另外地,可以省略一个或多个动作;因此,并非所有实现方式都会执行所有动作。
就本文描述的各种操作或功能而言,可以将各种操作或描述或定义为软件代码、指令、配置和/或数据。内容可以是直接可执行的(“对象”或“可执行”形式)、源代码或差异代码(“增量”或“补丁”代码)。本文所描述的软件内容可以经由其上存储有内容的制品来提供,或者经由操作通信接口以经由通信接口发送数据的方法来提供。机器可读存储介质可以使机器执行所描述的功能或操作,并且包括以机器(例如,计算设备、电子***等)可访问的形式存储信息的任何机制,例如,可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪速存储器设备等)。通信接口包括与硬连线、无线、光学等介质中的任一介质接合以与另一设备通信的任何机制,例如,存储器总线接口、处理器总线接口、互联网连接、磁盘控制器等。可以通过提供配置参数和/或发送信号来配置通信接口,以准备通信接口来提供描述软件内容的数据信号。可以经由发送到通信接口的一个或多个命令或信号来访问通信接口。
本文描述的各种组件可以是用于执行所描述的操作或功能的单元。本文描述的每个组件包括软件、硬件或者这些软件和硬件的组合。这些组件可以实现为软件模块、硬件模块、特殊用途硬件(例如,专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路***等。
除了本文所描述的之外,可以对本发明的公开内容和实现方式进行各种修改而不脱离其范围。因此,本文中的说明和示例应当被解释为说明性的而非限制性的。本发明的范围应仅通过参考所附权利要求书来衡量。
Claims (24)
1.一种存储器设备,包括:
硬件接口,所述硬件接口耦合到存储器控制器,其中,响应于来自所述存储器控制器的读取命令,所述硬件接口用于通过突发长度M传送N个数据比特;
具有多个存储体的存储器阵列,所述多个存储体包括针对所述读取命令被选择用于读取访问的选定存储体,其中,对所述选定存储体的所述读取访问用于从所述选定存储体访问N/2个数据比特;以及
控制硬件,其中,响应于所述读取命令,所述控制硬件用于:触发对所述选定存储体的两次读取访问以从所述选定存储体访问N个数据比特,并且使得所述硬件接口将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送来发送。
2.根据权利要求1所述的存储器设备,其中,所述控制硬件用于:一旦从所述选定存储体访问所述第一N/2数据比特部分,就使得所述硬件接口发送所述第一传送;以及一旦从所述选定存储体访问所述第二N/2数据比特部分,就在延迟之后发送所述第二传送。
3.根据权利要求1或2所述的存储器设备,其中,所述控制硬件用于:在发送所述第二传送之前延迟所述传送,以将所述第一传送与所述第二传送之间的延迟延长为大于tCCD_L延迟的时段。
4.根据权利要求1至3中任一项所述的存储器设备,其中,所述控制硬件用于:在发送所述第一传送之前延迟所述第一传送。
5.根据权利要求4所述的存储器设备,其中,所述延迟包括所述第一传送的延迟,以在所述第一传送与所述第二传送之间没有延迟的情况下连续地发送所述第一传送和所述第二传送。
6.根据权利要求4所述的存储器设备,其中,所述延迟包括所述第一传送的延迟,以在所述第一传送与所述第二传送之间留下传送窗口,以在所述第一传送与所述第二传送之间交织来自所述多个存储体中的另一存储体的第三N/2数据比特部分。
7.根据权利要求4所述的存储器设备,还包括:
缓冲器,所述缓冲器用于在所述延迟期间保持所述第一N/2数据比特部分。
8.根据权利要求1至7中任一项所述的存储器设备,其中,所述控制硬件用于:响应于来自所述存储器控制器的所述读取命令而生成针对所述选定存储体的两个内部读取访问操作。
9.根据权利要求1至8中任一项所述的存储器设备,其中,所述存储器设备包括与低功率双倍数据速率(LPDDR)标准兼容的动态随机存取存储器(DRAM)设备。
10.根据权利要求9所述的存储器设备,其中,N为256比特。
11.根据权利要求9所述的存储器设备,其中,M为32。
12.一种存储器控制器,包括:
耦合至存储器设备的数据接口,所述数据接口用于响应于读取命令而通过突发长度M接收N个数据比特;
耦合至所述存储器设备的命令接口,所述命令接口用于向所述存储器设备发送所述读取命令以读取所述存储器设备的多个存储体中的选定存储体,其中,所述存储器设备对所述选定存储体的读取访问用于从所述选定存储体访问N/2个数据比特,其中,所述存储器设备用于对所述选定存储体执行两次读取访问以访问所述N个数据比特;以及
调度器,所述调度器用于:基于所述存储器设备将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送发送到所述数据接口,来调度所述读取命令以及其他命令。
13.根据权利要求12所述的存储器控制器,其中,所述调度器用于:基于所述存储器设备一旦从所述选定存储体访问所述第一N/2数据比特部分就发送所述第一传送,并且一旦从所述选定存储体访问所述第二N/2数据比特部分就在延迟之后发送所述第二传送,来调度所述读取命令以及其他命令。
14.根据权利要求12或13所述的存储器控制器,其中,所述调度器用于:基于所述存储器设备将所述第一传送与所述第二传送之间的延迟延长为大于tCCD_L延迟的时段,来调度所述读取命令以及其他命令。
15.根据权利要求12至14中任一项所述的存储器控制器,其中,所述调度器用于:基于所述存储器设备延迟所述第一传送以在所述第一传送与所述第二传送之间没有延迟的情况下连续地发送所述第一传送和所述第二传送,来调度所述读取命令以及其他命令。
16.根据权利要求12至15中任一项所述的存储器控制器,其中,所述调度器用于:基于所述存储器设备延迟所述第一传送以在所述第一传送与所述第二传送之间留下传送窗口,来调度所述读取命令以及其他命令;以及
其中,所述存储器控制器用于:将另一读取命令调度到所述多个存储体中的另一存储体,以在所述第一传送与所述第二传送之间交织第三N/2数据比特部分。
17.根据权利要求12至16中任一项所述的存储器控制器,其中,所述调度器用于:将第二读取命令调度到所述选定存储体,以触发由所述存储器设备进行两次连续读取访问。
18.根据权利要求12至17中任一项所述的存储器控制器,其中,所述存储器设备包括与低功率双倍数据速率(LPDDR)标准兼容的动态随机存取存储器(DRAM)设备。
19.根据权利要求18所述的存储器控制器,其中,N为256比特并且M为32。
20.一种用于存储数据的***,包括:
存储器设备,所述存储器设备耦合至存储器控制器,所述存储器设备与所述存储器控制器通过突发长度M交换N个数据比特,所述存储器设备包括:
具有多个存储体的存储器阵列,所述多个存储体包括针对来自所述存储器控制器的读取命令被选择用于读取访问的选定存储体,其中,对所述选定存储体的所述读取访问用于从所述选定存储体访问N/2个数据比特;以及
控制硬件,其中,响应于所述读取命令,所述控制硬件用于:触发对所述选定存储体的两次读取访问以从所述选定存储体访问N个数据比特;
其中,所述存储器设备用于:将数据作为第一N/2数据比特部分的突发长度M/2的第一传送和第二N/2数据比特部分的突发长度M/2的第二传送来发送;以及
所述存储器控制器,包括:
调度器,所述调度器用于:基于所述存储器设备将数据作为所述第一传送和所述第二传送来发送,来调度所述读取命令以及其他命令。
21.根据权利要求20所述的***,其中,所述存储器设备用于:一旦从所述选定存储体访问所述第一N/2数据比特部分,就发送所述第一传送;以及一旦从所述选定存储体访问所述第二N/2数据比特部分,就在延迟之后发送所述第二传送。
22.根据权利要求20或21所述的***,其中,所述存储器设备用于:在发送所述第二传送之前延迟所述传送,以将所述第一传送与所述第二传送之间的延迟延长为大于tCCD_L延迟的时段。
23.根据权利要求20至22中任一项所述的***,其中,所述存储器设备还包括:
缓冲器,所述缓冲器用于在发送所述第一传送之前在所述第一传送的延迟期间保持所述第一N/2数据比特部分;
其中,所述延迟包括所述第一传送的延迟,以在所述第一传送与所述第二传送之间没有延迟的情况下连续地发送所述第一传送和所述第二传送。
24.根据权利要求20至23中任一项所述的***,其中,所述存储器设备还包括:
缓冲器,所述缓冲器用于在发送所述第一传送之前在所述第一传送的延迟期间保持所述第一N/2数据比特部分;
其中,所述延迟包括所述第一传送的延迟,以在所述第一传送与所述第二传送之间留下传送窗口,以在所述第一传送与所述第二传送之间交织来自所述多个存储体中的另一存储体的第三N/2数据比特部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/336,996 | 2021-06-02 | ||
US17/336,996 US20210286561A1 (en) | 2021-06-02 | 2021-06-02 | Double fetch for long burst length memory data transfer |
PCT/US2022/020646 WO2022256067A1 (en) | 2021-06-02 | 2022-03-16 | Double fetch for long burst length memory data transfer |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117099075A true CN117099075A (zh) | 2023-11-21 |
Family
ID=77664651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280026243.5A Pending CN117099075A (zh) | 2021-06-02 | 2022-03-16 | 针对长突发长度的存储器数据传送的双倍取得 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210286561A1 (zh) |
CN (1) | CN117099075A (zh) |
DE (1) | DE112022000954T5 (zh) |
NL (1) | NL2031713B1 (zh) |
WO (1) | WO2022256067A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021041041A1 (en) * | 2019-08-23 | 2021-03-04 | Rambus Inc. | Hierarchical bank group timing |
US20210286561A1 (en) * | 2021-06-02 | 2021-09-16 | Intel Corporation | Double fetch for long burst length memory data transfer |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102079939B1 (ko) * | 2013-06-04 | 2020-02-21 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 명령어 스케줄링 방법 |
US9870325B2 (en) * | 2015-05-19 | 2018-01-16 | Intel Corporation | Common die implementation for memory devices with independent interface paths |
US10566040B2 (en) * | 2016-07-29 | 2020-02-18 | Micron Technology, Inc. | Variable page size architecture |
KR102412609B1 (ko) * | 2017-11-03 | 2022-06-23 | 삼성전자주식회사 | 내부 커맨드에 따른 어드레스에 대한 저장 및 출력 제어를 수행하는 메모리 장치 및 그 동작방법 |
US10372330B1 (en) * | 2018-06-28 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods for configurable memory array bank architectures |
US20210286561A1 (en) * | 2021-06-02 | 2021-09-16 | Intel Corporation | Double fetch for long burst length memory data transfer |
-
2021
- 2021-06-02 US US17/336,996 patent/US20210286561A1/en active Pending
-
2022
- 2022-03-16 DE DE112022000954.3T patent/DE112022000954T5/de active Pending
- 2022-03-16 WO PCT/US2022/020646 patent/WO2022256067A1/en active Application Filing
- 2022-03-16 CN CN202280026243.5A patent/CN117099075A/zh active Pending
- 2022-04-26 NL NL2031713A patent/NL2031713B1/en active
Also Published As
Publication number | Publication date |
---|---|
WO2022256067A1 (en) | 2022-12-08 |
NL2031713B1 (en) | 2023-05-25 |
US20210286561A1 (en) | 2021-09-16 |
DE112022000954T5 (de) | 2024-01-04 |
NL2031713A (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7456083B2 (ja) | ロウハンマ緩和のホスト支援のためのリフレッシュコマンド制御 | |
US10755753B2 (en) | Memory device with flexible internal data write control circuitry | |
CN109313617B (zh) | 负载减少的非易失性存储器接口 | |
US10482947B2 (en) | Integrated error checking and correction (ECC) in byte mode memory devices | |
TWI721003B (zh) | 記憶體裝置及用於記憶體管理的系統 | |
CN110023914B (zh) | 用于重复写入存储器的可编程数据样式 | |
CN109478177B (zh) | 双数据率命令总线 | |
JP2020166832A5 (zh) | ||
US20180096719A1 (en) | Staggering initiation of refresh in a group of memory devices | |
CN109582596B (zh) | 从具有不同读取和写入定时的模式寄存器进行读取 | |
CN109661654B (zh) | 存储器中的差错校验和纠正码的扩展应用 | |
US20150003172A1 (en) | Memory module including buffer chip controlling refresh operation of memory devices | |
US20180121123A1 (en) | Efficiently training memory device chip select control | |
US11200113B2 (en) | Auto-increment write count for nonvolatile memory | |
KR20210098831A (ko) | 비휘발성 메모리에서의 구성가능한 기입 커맨드 지연 | |
NL2031713B1 (en) | Double fetch for long burst length memory data transfer | |
NL2032114B1 (en) | Closed loop compressed connector pin | |
JP2021149931A (ja) | 双方向性の情報チャンネルのドリフトを監視するための単方向性の情報チャネル | |
US20220393682A1 (en) | Unidirectional command bus phase drift compensation | |
US20230333928A1 (en) | Storage and access of metadata within selective dynamic random access memory (dram) devices | |
KR20230043692A (ko) | 메모리 모듈 데이터 폭의 유연한 구성을 위한 인에이블링 로직 | |
CN116343845A (zh) | 用于高频通信中的串扰减少的封装布线 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |