CN109299024A - 协调存储器命令的方法和高带宽存储器系统 - Google Patents
协调存储器命令的方法和高带宽存储器系统 Download PDFInfo
- Publication number
- CN109299024A CN109299024A CN201810602179.6A CN201810602179A CN109299024A CN 109299024 A CN109299024 A CN 109299024A CN 201810602179 A CN201810602179 A CN 201810602179A CN 109299024 A CN109299024 A CN 109299024A
- Authority
- CN
- China
- Prior art keywords
- memory controller
- memory
- order
- coordination
- host
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000001514 detection method Methods 0.000 claims abstract description 7
- 238000012790 confirmation Methods 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000011156 evaluation Methods 0.000 claims description 7
- 102100020800 DNA damage-regulated autophagy modulator protein 1 Human genes 0.000 description 43
- 101000931929 Homo sapiens DNA damage-regulated autophagy modulator protein 1 Proteins 0.000 description 43
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002513 implantation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/366—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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/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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
- Dram (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
本发明提供一种在高带宽存储器HBM+系统中协调存储器命令的方法,方法包含将主机存储器控制器命令从主机存储器控制器发送到存储器,在协调存储器控制器处接收主机存储器控制器命令,将主机存储器控制器命令从协调存储器控制器转发到存储器,以及由协调存储器控制器基于主机存储器控制器命令来调度协调存储器控制器命令。
Description
相关申请案的交叉参考
本申请案主张2017年7月25日提交的第62/536,919号美国临时专利申请的优先权和权益,所述申请的内容通过引用以其全文引用的方式并入本文中。
技术领域
本公开的一些实施例大体上涉及存储器带宽管理,且还可涉及一种包含HBM逻辑裸片上的处理器和存储器控制器的高带宽存储器(high-bandwidth memory;HBM)系统,以及在HBM中处理的方法。
背景技术
图1为高带宽存储器HBM+系统的方块图。
参考图1,常规HBM系统可大体上使用单个主控器,所述主控器大体上为用于控制相应存储器的HBM外存储器主机控制器。
然而,在HBM+系统100中,单个从装置(例如主存储器,其可以是易失性存储器,如动态随机存取存储器(dynamic random access memory;DRAM)裸片上的DRAM)110可具有两个存储器控制器120作为主控器。两个主装置可为HBM外存储器控制器120a,以及定位在HBM160的HBM逻辑裸片140上的HBM上存储器控制器120b。HBM逻辑裸片140可与3D堆栈存储器(其为HBM 160)的底层相对应,而DRAM裸片110可与HBM 160的上层中的一个相对应。HBM逻辑裸片140可使用可由处理器(PU)170指示以控制DRAM裸片110的“近”存储器控制器(“near”memory controller;NMC)120b来控制DRAM裸片110。
HBM外存储器控制器120a可称为主机存储器控制器120a(例如中央处理单元(central processing unit;CPU)、图形处理单元(graphics processing unit;GPU)或加速处理单元(accelerated processing unit;APU)130的主机存储器控制器120a)。HBM上存储器控制器120b可称为协调存储器控制器120b,且可定位在HBM逻辑裸片140上。
由于其远程地定位在相比于协调存储器控制器120b更远离DRAM裸片110的位置处,因此主机存储器控制器120a也可被称为远程存储器控制器,或被称为“远”存储器控制器(“far”memory controller;FMC)。由于其接近于DRAM裸片110,因此协调存储器控制器120b可被称为本地存储器控制器,或“近”存储器控制器(NMC)120b。应注意,主机存储器控制器120a和协调存储器控制器120b中的任一个或两个可由一般存储器控制器来表示。
此外,主机存储器控制器120a和协调存储器控制器120b可异步通信。因此,当主机存储器控制器120a和协调存储器控制器120b两者意图同时对DRAM 110进行存取时,可能产生问题。
对由通过在其它领域中(例如在使用基于事务的协议的系统芯片(system-on-a-chip;SOC)中,如高级可扩展接口(advanced extensible interface;AXI))的两个不同的存储器控制器两者尝试并行存取所引起的冲突的潜在解决方案可包含使用总线仲裁器作为中央仲裁器/集中式控制器。总线仲裁器可决定将允许哪一总线主控器来控制总线以用于每一总线循环,且可跟踪所有组件的状态。因此,两个不同存储器控制器可向总线仲裁器寻求对存取存储器的权限,且总线仲裁器可对存储器控制器中的一个授予权限(即在一时刻授予对仅单个主控器的存取以实现所选主控器与从装置之间的通信而不受未选主控器的干扰)。在其之后,所选被授予存取的存储器控制器可对存储器进行存取,及/或存储器可对存储器控制器作出响应。
然而,以上潜在解决方案并不可适用于HBM+系统100。不同于基于事务的协议,HBM不支持信号交换操作,意味着不存在从HBM 160到任何存储器控制器120的反馈信号。此外,常规HBM的HBM逻辑裸片不能够在HBM逻辑裸片内专门执行计算功能。
此外,不同于基于事务的协议,HBM不支持非确定性时序,意味着一旦主机存储器控制器120a向HBM 160发送请求,那么主机存储器控制器120a便期望HBM 160在确定时间量内作出响应。即,如果存储器控制器120中的一个发送出命令或请求,那么HBM 160必须在给定的时间量内(例如在约三十纳秒内)作出响应以确保HBM 160正确地提供请求数据。
以上信息仅用于增进对本公开的实施例的背景技术的理解,且因此可含有不形成现有技术的信息。
发明内容
本公开的一些实施例提供一种用于在高带宽存储器HBM+系统中协调存储器命令的系统和方法。
根据一些实施例,提供一种在高带宽存储器HBM+系统中协调存储器命令的方法,所述方法包含将主机存储器控制器命令从主机存储器控制器发送到存储器,在协调存储器控制器处接收主机存储器控制器命令,将主机存储器控制器命令从协调存储器控制器转发到存储器,以及由协调存储器控制器基于主机存储器控制器命令来调度协调存储器控制器命令。
基于主机存储器控制器命令来调度协调存储器控制器命令可包含将主机存储器控制器命令与存在于协调存储器控制器命令队列中的协调存储器控制器命令进行比较,以及基于所述比较来调整对协调存储器控制器命令的调度。
将主机存储器控制器命令与协调存储器控制器命令进行比较可包含确定主机存储器控制器命令和协调存储器控制器命令是否被调度以用于存储器的公共存储体,且所述方法可还包含当主机存储器控制器命令和协调存储器控制器命令被调度以用于公共存储体时,阻止将额外存储器命令从主机存储器控制器发送到公共存储体直到协调存储器控制器命令指示为已处理。
所述方法可还包含在主机存储器控制器与协调存储器控制器之间建立配置合约,所述配置合约包含将由主机存储器控制器和协调存储器控制器遵循的公共地址映射方案,从而使得主机存储器控制器和协调存储器控制器两者在解码相同地址时将指向存储器内部的相同位置。
所述方法可还包含将来自主机存储器控制器的存储器内处理(process-in-memory;PIM)命令作为主机存储器控制器命令发送,由主机存储器控制器监测在协调存储器控制器与主机存储器控制器之间的数据总线,以及在监测期间检测来自协调存储器控制器、指示PIM命令是否已处理的PIM完成确认。
所述方法可还包含使用协调存储器控制器来确定处理PIM命令的估算剩余时间,使用PIM完成确认来指示尚未处理的PIM命令,使用PIM完成确认来指示估算剩余时间,且将PIM完成确认从协调存储器控制器发送到主机存储器控制器。
确定估算剩余时间可包含扫描协调存储器控制器中的协调存储器控制器命令队列,确定在协调存储器控制器命令队列中未决的未决存储器命令,确定未决存储器命令中的每一个的估算时间量,以及对估算时间量求和以确定估算剩余时间。
所述方法可还包含将超时值与PIM命令相关联,确定PIM命令未在与超时值相对应的时间量内处理,以及阻止从主机存储器控制器发送存储器请求。
所述方法可还包含由主机存储器控制器通过发送轮询命令以请求指示处理PIM命令的估算剩余时间的PIM完成确认来轮询协调存储器控制器,其中所述轮询命令致使协调存储器控制器发送PIM完成确认较早于协调存储器控制器将已经以其它方式发送PIM完成确认。
所述方法可还包含由主机存储器控制器设置在指示PIM命令的优先级的轮询命令中的优先级字段,确定PIM命令未在与超时值相对应的时间量内处理,由主机存储器控制器改变优先级字段以增加PIM命令的优先级,由协调存储器控制器将PIM命令在协调存储器控制器命令队列中向上移动,以及在其它存储器命令之前处理PIM命令。
根据一些实施例,提供一种高带宽存储器HBM+系统,所述系统包含协调存储器控制器、主机存储器控制器、存储器、处理器,所述处理器配置成执行在由处理器执行时致使处理器进行以下操作的指令:将主机存储器控制器命令从主机存储器控制器发送到存储器;在协调存储器控制器处接收主机存储器控制器命令;将主机存储器控制器命令从协调存储器控制器转发到存储器;以及由协调存储器控制器基于主机存储器控制器命令来调度协调存储器控制器命令。
处理器可配置成通过将主机存储器控制器命令与存在于协调存储器控制器命令队列中的协调存储器控制器命令进行比较,且通过基于所述比较来调整对协调存储器控制器命令的调度,从而基于主机存储器控制器命令来调度协调存储器控制器命令。
处理器可配置成通过确定主机存储器控制器命令和协调存储器控制器命令是否被调度以用于存储器的公共存储体,从而将主机存储器控制器命令与协调存储器控制器命令进行比较,且在由处理器执行时,所述指令可还致使处理器在主机存储器控制器命令和协调存储器控制器命令被调度以用于公共存储体时阻止将额外存储器命令从主机存储器控制器发送到公共存储体直到协调存储器控制器命令指示为已处理。
在由处理器执行时,所述指令可还致使处理器在主机存储器控制器与协调存储器控制器之间建立配置合约,所述配置合约包含将由主机存储器控制器和协调存储器控制器遵循的公共地址映射方案,从而使得主机存储器控制器和协调存储器控制器两者在解码相同地址时将指向存储器内部的相同位置。
在由处理器执行时,所述指令可还致使处理器将来自主机存储器控制器的存储器内处理(PIM)命令作为主机存储器控制器命令发送,由主机存储器控制器监测在协调存储器控制器与主机存储器控制器之间的数据总线,以及在监测期间检测来自协调存储器控制器、指示PIM命令是否已处理的PIM完成确认。
在由处理器执行时,所述指令可还致使处理器使用协调存储器控制器来确定处理PIM命令的估算剩余时间,使用PIM完成确认来指示PIM命令尚未处理,使用PIM完成确认来指示估算剩余时间,以及将PIM完成确认从协调存储器控制器发送到主机存储器控制器。
在由处理器执行时,所述指令可还致使处理器使超时值与PIM命令相关联,确定PIM命令未在与超时值相对应的时间量内处理,以及阻止从主机存储器控制器发送存储器请求。
在由处理器执行时,所述指令可还致使处理器使用主机存储器控制器以通过发送轮询命令以请求指示处理PIM命令的估算剩余时间的PIM完成确认来轮询协调存储器控制器,其中所述轮询命令致使协调存储器控制器发送PIM完成确认较早于协调存储器控制器将已经以其它方式发送PIM完成确认。
在由处理器执行时,所述指令可还致使处理器通过主机存储器控制器设置在指示PIM命令的优先级的轮询命令中的优先级字段,确定PIM命令未在与超时值相对应的时间量内处理,由主机存储器控制器改变优先级字段以增加PIM命令的优先级,由协调存储器控制器将PIM命令在协调存储器控制器命令队列中向上移动,以及在其它存储器命令之前处理PIM命令。
根据一些实施例,提供一种HBM+系统,包含:HBM,包含DRAM裸片(包含DRAM)和包含处理器以及协调存储器控制器(包含比较器、调度器以及命令队列)的逻辑裸片;以及主机存储器控制器,与HBM分离且配置成将存储器命令发送到DRAM裸片上的DRAM,其中所述协调存储器控制器配置成接收存储器命令,且将存储器命令转发到DRAM裸片上的DRAM,其中所述比较器配置成将来自协调存储器控制器的另一存储器命令与来自主机存储器控制器的存储器命令进行比较,且其中所述调度器配置成根据由比较器进行的比较在命令队列中调度存储器命令。
因此,所描述的实施例提供用于协调两个或大于两个存储器控制器以用于改进HBM+系统的性能的技术。
附图说明
根据结合附图进行的以下描述可更详细地理解一些实施例,其中:
图1为高带宽存储器HBM+系统的方块图。
图2为根据本公开的实施例的高带宽存储器HBM+系统的详细微架构的方块图。
图3为描绘PIM完成确认的传送的时序图。
图4为描绘响应于轮询命令的PIM完成确认的传送的时序图。
附图标号说明
100:HBM+系统;
110:DRAM裸片;
120a:HBM外存储器控制器;
120b:HBM上存储器控制器;
130:加速处理单元;
140:HBM逻辑裸片;
160、260:高带宽存储器;
170:处理器;
200:HBM+系统;
210:动态随机存取存储器;
220a:主机存储器控制器;
220b:协调存储器控制器;
230:主机;
252:行的命令地址(Row_CA);
254:列的命令地址(Col_CA);
256:实际行命令地址;
258:实际列命令地址;
262:PIM命令地址;
264:PIM解码器;
268:DRAM完成状态指示符;
270:处理器;
275:调度器;
277:命令地址解码器;
278:比较器;
280:命令队列;
282:MUX;
284:DQ总线;
286:PIM完成状态寄存器;
288:PIM完成确认产生器;
292:估算器;
300、400:时序图;
310:PIM命令;
320:PIM时间间隔/PIM_ACK时间;
330:PIM完成确认;
410:轮询命令;
420:tPIM_POLL时间。
具体实施方式
本发明概念的特征和实现所述特征的方法可通过参考实施例的以下详细描述和附图而更易于理解。下文中,将参考附图更详细地描述实施例,在所述附图中,相同参考标号通篇指代相同元件。然而,本发明可以各种不同形式实施,且不应理解为受限于仅本文中说明的实施例。相反,将这些实施例作为实例来提供以使得本发明将透彻且完整,且将向本领域的技术人员充分地传达本发明的各方面和特征。因此,可能并不描述对于本领域一般技术人员对本发明的各方面和特征的完全理解非必要的过程、元件以及技术。除非另外指出,否则相同参考标号贯穿附图和书面描述表示相同元件,且因此将不重复其描述。在图中,为清楚起见,可能放大元件、层以及区域的相对尺寸。
在以下描述中,出于解释的目的,阐述许多特定细节以提供对各种实施例的透彻理解。然而,显而易知,可在不具有这些具体细节或具有一或多种等效布置的情况下实践各种实施例。在其它情况下,以方块图的形式绘示众所周知的结构和装置以免不必要地混淆各种实施例。
应理解,当将元件、层、区域或组件称为在另一元件、层、区域或组件“上”、“连接到”或“耦合到”另一元件、层、区域或组件时,其可直接在另一元件、层、区域或组件上、连接到或耦合到另一元件、层、区域或组件,或可存在一或多个介入元件、层、区域或组件。然而,“直接连接/直接耦合”是指一个组件直接连接或耦合另一组件而不具有中间组件。同时,可类似地理解描述组件之间的关系的其它表达,如在组件“之间”、“紧接在组件之间”或“邻接于”组件和“紧邻”组件。另外,还将理解,当元件或层称为在两个元件或两个层“之间”时,其可以是仅元件或层在两个元件或两个层之间,或也可存在一或多个介入元件或介入层。
本文中使用的术语仅出于描述特定实施例的目的,且并不意图限制本发明。如本文中所使用,除非上下文另作明确指示,否则单数形式“一(a/an)”意图也包含复数形式。将进一步理解,术语“包括(comprises/comprising)”、“具有(have/having)”、“包含(includes/including)”当在本说明书中使用时,表示所陈述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一或多个其它特征、整体、步骤、操作、元件、组件和/或其群组的存在或添加。如本文中所使用,术语“和/或”包含相关联的所列项中的一或多个的任何以及所有组合。
如本文中所使用,术语“基本上”、“约”、“大约”以及类似术语用作近似的术语且不用作程度的术语,且意图考虑将由本领域一般技术人员识别的测量值或计算值中的固有偏差。如本文中所使用,“约”或“大约”包含所陈述值且意味着在偏差的可接受范围内,对于特定值,如由本领域一般技术人员中的一个所确定,考虑相关测量和与特定数量的测量相关的误差(即测量系统的限制)。举例来说,“约”可意味着在一或多个标准差内,或在所陈述值的±30%、20%、10%、5%内。此外,当描述本发明的实施例时,使用“可”是指“本发明的一或多个实施例”。如本文中所使用,术语“使用(use/using/used)”可分别视为与术语“利用(utilize/utilizing/utilized)”同义。此外,术语“示范性”意图指实例或说明。
当某一实例实施例可以不同方式实施时,特定处理次序可与所描述次序不同地执行。举例来说,两个连续描述的过程可基本上同时执行或以与所描述次序相反的次序执行。
在本文中参考实施例和/或中间结构的示意性说明的截面说明来描述各种实施例。如此,应预期到作为例如制造技术和/或公差的结果而与说明的形状的差异。此外,出于描述根据本公开的概念的实施例的目的,本文中所公开的特定结构或功能性描述仅为说明性的。因此,本文中所公开的实施例不应理解为受限于区域的特定说明形状,而是包含由(例如)制造引起的形状偏差。举例来说,示出为矩形的植入区域通常将具有圆形或弯曲特征和/或植入物浓度在其边缘上的梯度,而不是从植入区域到非植入区域的二元变化。同样,通过植入形成的埋入区域可在埋入区域与发生植入所在的表面之间的区域中产生一些植入。因此,图中所示出的区域本质上为示意性的且其形状并不意图示出装置的区域的实际形状且并不意图为限制性的。
本文中所描述的电子(electronic/electric)装置和/或根据本发明的实施例的任何其它相关装置或组件可利用任何合适的硬件、固件(例如专用集成电路)、软件,或软件、固件以及硬件的组合来实施。举例来说,这些装置的各种组件可在一个集成电路(integrated circuit;IC)芯片上或在独立IC芯片上形成。此外,这些装置的各种组件可在柔性印刷电路膜、载带封装(tape carrier package;TCP)、印刷电路板(printed circuitboard;PCB)上实施或在一个衬底上形成。此外,这些装置的各种组件可以是在在一或多个计算装置中的一或多个处理器上运行、执行计算机程序指令以及与其它系统组件相互作用以用于执行本文中所描述的各种功能的进程或线程。将计算机程序指令存储在可使用例如随机存取存储器(random access memory;RAM)的标准存储器装置在计算装置中实施的存储器中。计算机程序指令也可存储在例如CD-ROM、闪存驱动器或类似物的其它非暂时性电脑可读媒体中。此外,本领域的技术人员应认识到可将各种计算装置的功能组合或集成到单个计算装置中,或可将特定计算装置的功能分布于一或多个其它计算装置上而不脱离本发明的示范性实施例的精神和范围。
除非另外定义,否则本文中所使用的所有术语(包含技术和科学术语)具有本发明所属领域的普通技术人员所通常理解的相同意义。将进一步理解,术语(例如常用词典中所定义的那些术语)应被解释为具有与其在相关技术的上下文和/或本说明书中的含义一致的含义,且不应在理想化或过分形式化的意义上进行解释,除非在本文中这样明确定义。
图2为根据本公开的实施例的高带宽存储器HBM+系统的详细微架构的方块图。
参考图2,在HBM+系统200的上下文中,本公开的实施例提供一种用于协调主机存储器控制器220a与协调存储器控制器220b的活动的系统和方法。因此,可正确地调度处理型存储器活动(DRAM和存储器内处理(PIM)活动)以确保功能性正确性,从而改进存储器系统的性能。
在本发明实施例的HBM+系统200中,协调存储器控制器220b充当用于DRAM 210的次级主控器,且主机存储器控制器220a充当初级主控器。协调存储器控制器220b可拦截被引导到DRAM 210的主机存储器控制器命令,且可将主机存储器控制器命令从主机存储器控制器220a整体转发到DRAM 210,从而使得DRAM 210能够以预期方式响应主机存储器控制器220a。
当接收来自主机存储器控制器220a的主机存储器控制器命令时,协调存储器控制器220b可使用调度器275来调度协调存储器控制器命令。如果将来自不同存储器控制器220a或220b的存储器命令发送到DRAM 210的不同DRAM存储体,那么不同存储器命令彼此独立。然而,当来自不同存储器控制器220a或220b的竞争性存储器命令被调度以用于DRAM210的相同DRAM存储体时,所述竞争性存储器命令可能发生冲突,其可能不利地影响系统性能。
为了避免由冲突性存储器命令所引起的问题,协调存储器控制器220b可使用来自主机存储器控制器220a的主机存储器控制器命令以调整对协调存储器控制器220b的调度决策。举例来说,可为主机存储器控制器命令给定比协调存储器控制器命令更高的优先级。因此,协调存储器控制器220b的调度器275可围绕或基于根据配置合约的主机存储器控制器命令对发送到DRAM 210的DRAM命令进行调度,从而允许来自主机存储器控制器220a的正常DRAM请求以使得DRAM 210如由主机存储器控制器220a所期望地响应主机存储器控制器220a。即,建立一组公共规则的配置合约的公共规则可以由协调存储器控制器220b和主机存储器控制器220a遵循以根据所建立的、议定地址映射方案来避免存储体冲突,如下文将进一步论述。
协调存储器控制器220b的调度器275可通过使用比较器278以将来自主机存储器控制器220a的命令与协调存储器控制器220b的命令队列280进行比较,以及通过基于比较的结果来调整或确定所调度的命令以执行调度。因此,当存在来自两个存储器控制器220a或220b的冲突性命令时,存储器控制器220a或220b中的一个可等待竞争性命令完成。协调存储器控制器220b的比较器278可将两组命令(例如一组来自协调存储器控制器220b,且另一组来自主机存储器控制器220a)进行比较。当协调存储器控制器220b确定将两组命令调度到DRAM 210的相同存储体时,随后协调存储器控制器220b可等待直到主机存储器控制器命令完成,且可在其之后使用调度器275来调度与协调存储器控制器220b相对应的命令。
或者,因为主机存储器控制器220a可用作初级主控器,所以在协调存储器控制器220b将大体上意识到到由主机存储器控制器220a发送什么请求时,协调存储器控制器220b的调度器275可负责避免存储体冲突。举例来说,主机存储器控制器220a可将存储器内处理(PIM)请求发送到DRAM 210的第一存储体,且可阻止将其它命令发送到相同的第一存储体,直到协调存储器控制器220b完成对与第一存储体相对应的PIM的处理,从而确保功能性正确性,同时降低协调存储器控制器220b的调度复杂度和资源需求。
因此,主机存储器控制器220a与协调存储器控制器220b之间的配置合约确保功能性正确性且避免存储体冲突,同时保护HBM接口和协议。另外,来自主机230的正常存储器请求可始终按需要进行。
如上文所论述,对于特定地址,主机存储器控制器220a和协调存储器控制器220b中的每一个可使用公共地址映射方案以正确地定位或指向DRAM 210内部的实际相应位置。因为DRAM 210组织成信道,随后是存储体,且随后是行和列,所以不同类型的地址映射方案可用于确定DRAM 210中与特定地址相对应的位置。根据配置合约,主机存储器控制器220a和协调存储器控制器220b可使用相同地址映射方案,从而确保没有“误解”存储器请求。
根据地址映射方案,主机存储器控制器220a可发送出行的命令地址(Row_CA)252和列的命令地址(Col_CA)254。随后,协调存储器控制器220b可基于协调存储器控制器220b的命令地址解码器277来确定由来自主机存储器控制器220a的命令所指示的内容。随后,协调存储器控制器220b的命令地址解码器277可确定实际行命令地址256和/或实际列命令地址258,或可确定与PIM命令地址262相对应的命令。
如果命令并不与PIM命令相对应,那么便在比较器278中进行比较,且将输入的Row_CA 256和Col_CA 258与命令队列280内的命令进行比较。基于所述比较,协调存储器控制器220b的调度器275可调整对命令队列280内部的命令的调度。在本实施例中,命令队列280中的命令与激活命令(activation command;ACT)、读取命令(read command;RD)、写入命令(write command;WR)以及预充电命令(precharge command;PRE)相对应,所述命令表示DRAM 210可理解的命令。与每一命令相对应可以是指示“准备好”(R)或“未准备好”(N)的状态指示符,其可由调度器275使用以确定可在何时调度命令。
或者,主机存储器控制器220a可试图发送PIM命令/PIM请求,如与一般DRAM存取命令有区别。在由协调存储器控制器220b的命令地址解码器277执行解码操作之后,如果命令为正常DRAM命令,那么所述命令将直接转发到DRAM 210。相反,如果将由协调存储器控制器220b接收到的命令翻译成PIM命令,那么PIM命令可进一步由PIM解码器264解码,且可在命令队列280内部进行处理(例如来自命令地址解码器277,PIM命令可被翻译成PIM命令地址(PIM_CA)262,且可发送到PIM解码器264以使得PIM解码器264可向命令队列280发送解码PIM命令)。
图3为描绘PIM完成确认的传送的时序图300。
参考图2和图3,因为协调存储器控制器220b为次级主控器,所以在试图调度命令时,协调存储器控制器220b可具有较低优先级。因此,协调存储器控制器220b可耗费较长时间量来执行其操作且完成其调度命令。因为在协调存储器控制器220b中的处理是非确定性的,且因为协调存储器控制器220b可能未在确定时间内完成PIM命令(因为PIM命令可能由来自作为初级主控器的主机存储器控制器220a的正常存储器请求延迟),所以协调存储器控制器220b可明确告知主机存储器控制器220a任何PIM请求/PIM命令的状态。
因此,在从主机存储器控制器220a发送PIM命令310之后,主机存储器控制器220a便每PIM时间间隔/PIM_ACK时间(tPIM)320(其可以是与HBM+系统200的恒定数量的时钟循环相对应的时间间隔)可监听或可监测数据总线(DQ总线)284一次(其可与同步双数据速率(DDR)相对应)。主机存储器控制器220a可继续监测DQ总线284以检测可指示PIM命令310的处理是否已完成的PIM完成确认/PIM确认消息封包(PIM_ACK)330。PIM完成确认330可由协调存储器控制器220b的PIM完成确认产生器288产生。
在DQ总线284上,协调存储器控制器220b可响应包含与PIM完成确认330相对应的信息的封包。PIM完成确认330可由协调存储器控制器220b在采样时间发送(例如每PIM时间间隔320发送一次)。PIM完成确认330可具现化为256位消息,其中一位与完成状态位相对应,所述完成状态位可由协调存储器控制器220b的PIM完成状态寄存器286来设置且可在相关DRAM活动完成时设置。当PIM完成确认330的完成状态位指示为假时,那么主机存储器控制器220a可继续监听DQ总线284。然而,如果PIM完成确认330指示完成状态位为真,那么主机存储器控制器220a可意识到所发送PIM命令310已完成且标记为成功。
另外,PIM完成确认330的剩余位中的一些或全部可用于提供直到完成的估算时间剩余(例如当PIM完成确认330的完成状态位指示PIM命令310的完成尚未出现时)。举例来说,协调存储器控制器220b可包含估算器292以估算直到PIM命令310完成的估算时间剩余。因为协调存储器控制器220b可意识到其内部操作的状态,所以协调存储器控制器220b的估算器292可通过扫描命令队列280、确定命令队列280中的未决命令中的每一个的所估算时间量以及对所估算时间量一起求和来估算协调存储器控制器220b期望多少额外的时间来完成PIM命令310。之后,可在完成相关DRAM活动时设置PIM完成状态寄存器286,如可由DRAM完成状态指示符268所指示。因此,协调存储器控制器220b可以PIM完成确认330中所指示的估算剩余时间响应主机存储器控制器220a。
因此,尽管可保护HBM接口和协议不浪费命令总线带宽,但由于将封包放置在DQ总线284上以用于每一PIM时间间隔320指示PIM命令310的完成,所以可能使用一些额外DQ总线带宽。
图4为描绘响应于轮询命令的PIM完成确认的传送的时序图400。
参考图2和图4,如果由协调存储器控制器220b发送的PIM完成确认330中所指示的估算剩余时间期望为低,那么主机230便可使用主机存储器控制器220a以使用轮询命令(PIM_POLL)410主动地轮询PIM完成状态,从而使得主机存储器控制器220a能够具有对处理PIM命令310所剩余时间的更精确理解。
在接收到轮询命令410之后,协调存储器控制器220b将返回PIM完成确认330(例如在tPIM_POLL时间420内,其可以是比PIM时间间隔320更频繁发生的时间间隔)。因此,主机存储器控制器220a可使用由协调存储器控制器220b发送的非请求PIM完成确认330(其仅每PIM时间间隔320出现一次)、以比所期望的更快发生的速率接收关于PIM命令310的所期望完成的信息,如上文所论述。举例来说,基于HBM系统的现行规格,PIM时间间隔320可估算为超过约50纳秒,而tPIM_POLL时间420可估算为约三纳秒。因为样本完成时间为约50纳秒,且因为所估算剩余时间可能偶尔极短,所以可能并不适合于等待额外50纳秒来接收实际确认状态。因此,轮询命令410可改进HBM+系统200的效率和性能。
由主动轮询提供的权益为服务样本完成时间,同时还使得主机存储器控制器220a能够更快速地接收确认状态。然而,因为新命令可用于实施主动轮询,所以额外命令总线带宽可用于实施新命令。
至于上文所论述的PIM完成确认330和轮询命令410,来自DRAM 210的数据路径可由多路复用器(MUX)282来控制。MUX 282可将数据从DRAM 210发送回到主机存储器控制器220a,或可将数据发送回到协调存储器控制器220b内部的处理器270。当将数据用于协调存储器控制器220b的内部操作时,所述数据可被引导到处理器270。然而,当数据是对主机存储器控制器220a的响应时,接下来所述数据可被引导到主机存储器控制器220a。DQ总线284可用于传送一般数据或PIM完成确认330。
尽管可保护HBM接口和协议,且尽管可确保按需要进行来自主机的一般存储器app请求(因为协调存储器控制器220b具有较低优先级),但相应命令可能完成得比合适的情况更慢。此外,可使用解码来自主机存储器控制器220a的命令的额外循环。
根据本发明的实施例,可将给定PIM命令310的优先级设置为允许PIM命令310在所需时间内完成。设置优先级的这类优先级信息可嵌入于PIM命令310中和/或轮询命令410中。
举例来说,为了避免协调存储器控制器220b始终未能完成对PIM命令310的处理的情形,主机存储器控制器220a可作出合适的调度决策和/或将优先级信息发送到协调存储器控制器220b。因为作为次级主控器的协调存储器控制器220b可通常围绕主机存储器控制器命令调度,所以主机存储器控制器220a持续地发送命令的情形可防止协调存储器控制器220b能够调度操作以用于协调存储器控制器220b的PIM命令。因此,每一PIM命令310可与超时值相关联。如果在达到超时值之后(例如在已经过足够的时间量之后),由主机存储器控制器220a接收到的PIM完成确认330仍为假,接下来主机存储器控制器220a可中止向HBM信道发送一般存储器请求,从而为协调存储器控制器220b提供调度无序PIM命令310的机会,从而使得PIM命令310能够完成。
此外,协调存储器控制器220b可调度无序PIM命令310以用于改进性能,其可致使发生在PIM命令310中的较晚请求的命令之后的较早请求的PIM命令310中的一些的执行。在PIM命令310中,优先级字段可由主机存储器控制器220a来设置以使得协调存储器控制器220b可执行具有相对较高优先级的PIM命令。即,主机存储器控制器220a可设置优先级字段以使得协调存储器控制器220b在解码优先级字段时将知道协调存储器控制器220b是否应立即执行此PIM命令310。
此外,在轮询命令410中可存在优先级的字段。因此,主机存储器控制器220a可改变先前所发出PIM命令310的优先级。举例来说,当协调存储器控制器220b可能开始执行具有较高优先级的PIM命令时,如果主机存储器控制器220a发现PIM命令310耗费不可接受地长的时间量来完成,那么主机存储器控制器220a可通过使用优先级字段逐步增加PIM命令310的优先级以使得PIM命令310更快速地完成。
因此,上文描述的本公开的实施例提供高带宽存储器HBM+系统。
前述说明实例实施例,且不应理解为对其限制。尽管已描述几个实例实施例,但本领域技术人员将容易了解,在实质上不脱离实例实施例的新颖教示和优势的情况下,对实例实施例的许多修改是可能的。因此,所有这类修改意图包含在如所附权利要求书中限定的实例实施例的范围内。在权利要求书中,装置加功能条款(means-plus-functionclause)意图涵盖在本文中描述为执行所述功能的结构,且不仅涵盖结构等效物而且涵盖等效结构。因此,应理解,前述说明实例实施例且不应理解为受限于所公开的特定实施例,且对所公开的实例实施例以及其它实例实施例的修改意图包含在所附权利要求书的范围内。本发明概念由以下权利要求书限定,其中权利要求书的等效物将包含在其中。
Claims (20)
1.一种在高带宽存储器系统中协调存储器命令的方法,其特征在于,所述方法包括:
将主机存储器控制器命令从主机存储器控制器发送到存储器;
在协调存储器控制器处接收所述主机存储器控制器命令;
将所述主机存储器控制器命令从所述协调存储器控制器转发到所述存储器;以及
由所述协调存储器控制器基于所述主机存储器控制器命令来调度协调存储器控制器命令。
2.根据权利要求1所述的方法,其特征在于,基于所述主机存储器控制器命令来调度所述协调存储器控制器命令包括:
将所述主机存储器控制器命令与存在于协调存储器控制器命令队列中的所述协调存储器控制器命令进行比较;以及
基于所述比较来调整对所述协调存储器控制器命令的调度。
3.根据权利要求2所述的方法,其特征在于,所述将所述主机存储器控制器命令与所述协调存储器控制器命令进行比较包括:确定所述主机存储器控制器命令和所述协调存储器控制器命令是否被调度以用于存储器的公共存储体,所述方法还包括在所述主机存储器控制器命令和所述协调存储器控制器命令被调度以用于所述公共存储体时,阻止将额外存储器命令从所述主机存储器控制器发送到所述公共存储体直到所述协调存储器控制器命令指示为已处理。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括在所述主机存储器控制器与所述协调存储器控制器之间建立配置合约,所述配置合约包括将由所述主机存储器控制器和所述协调存储器控制器遵循的公共地址映射方案,从而使得所述主机存储器控制器和所述协调存储器控制器两者在解码相同地址时将指向所述存储器内部的相同位置。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将来自所述主机存储器控制器的存储器内处理命令作为所述主机存储器控制器命令发送;
由所述主机存储器控制器监测所述协调存储器控制器与所述主机存储器控制器之间的数据总线;以及
在所述监测期间,检测来自所述协调存储器控制器、指示所述存储器内处理命令是否已处理的存储器内处理完成确认。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
使用所述协调存储器控制器来确定处理所述存储器内处理命令的估算剩余时间;
使用所述存储器内处理完成确认来指示尚未处理的所述存储器内处理命令;
使用所述存储器内处理完成确认来指示所述估算剩余时间;以及
将所述存储器内处理完成确认从所述协调存储器控制器发送到所述主机存储器控制器。
7.根据权利要求6所述的方法,其特征在于,所述确定所述估算剩余时间包括:
扫描所述协调存储器控制器中的协调存储器控制器命令队列;
确定在所述协调存储器控制器命令队列中未决的未决存储器命令;
确定所述未决存储器命令中的每一个的估算时间量;以及
对所述估算时间量求和以确定所述估算剩余时间。
8.根据权利要求6所述的方法,其特征在于,还包括:
将超时值与所述存储器内处理命令相关联;
确定所述存储器内处理命令未在与所述超时值相对应的时间量内处理;以及
阻止从所述主机存储器控制器发送存储器请求。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:由所述主机存储器控制器通过发送轮询命令以请求指示处理所述存储器内处理命令的估算剩余时间的所述存储器内处理完成确认来轮询所述协调存储器控制器,其中所述轮询命令致使所述协调存储器控制器发送所述存储器内处理完成确认较早于所述协调存储器控制器将已经以其它方式发送所述存储器内处理完成确认。
10.根据权利要求9所述的方法,其特征在于,还包括:
由所述主机存储器控制器设置在指示所述存储器内处理命令的优先级的所述轮询命令中的优先级字段;
确定所述存储器内处理命令未在与所述超时值相对应的时间量内处理;
由所述主机存储器控制器改变所述优先级字段以增加所述存储器内处理命令的优先级;
由所述协调存储器控制器将所述存储器内处理命令在协调存储器控制器命令队列中向上移动;以及
在其它存储器命令之前处理所述存储器内处理命令。
11.一种高带宽存储器系统,其特征在于,所述系统包括:
协调存储器控制器;
主机存储器控制器;
存储器;
处理器,配置成执行在由所述处理器执行时致使所述处理器进行以下操作的指令:
将主机存储器控制器命令从所述主机存储器控制器发送到所述存储器;
在所述协调存储器控制器处接收所述主机存储器控制器命令;
将所述主机存储器控制器命令从所述协调存储器控制器转发到所述存储器;以及
由所述协调存储器控制器基于所述主机存储器控制器命令来调度协调存储器控制器命令。
12.根据权利要求11所述的系统,其特征在于,所述处理器配置成通过将所述主机存储器控制器命令与存在于协调存储器控制器命令队列中的所述协调存储器控制器命令进行比较,且通过基于所述比较来调整对所述协调存储器控制器命令的调度,从而基于所述主机存储器控制器命令来调度所述协调存储器控制器命令。
13.根据权利要求12所述的系统,其特征在于,所述处理器配置成通过确定所述主机存储器控制器命令和所述协调存储器控制器命令是否被调度以用于所述存储器的公共存储体,从而将所述主机存储器控制器命令与所述协调存储器控制器命令进行比较,
以及其中在由所述处理器执行时,所述指令还致使所述处理器在所述主机存储器控制器命令和所述协调存储器控制器命令被调度以用于所述公共存储体时,阻止将额外存储器命令从所述主机存储器控制器发送到所述公共存储体直到所述协调存储器控制器命令指示为已处理。
14.根据权利要求11所述的系统,其特征在于,在由所述处理器执行时,所述指令还致使所述处理器在所述主机存储器控制器与所述协调存储器控制器之间建立配置合约,所述配置合约包括将由所述主机存储器控制器和所述协调存储器控制器遵循的公共地址映射方案,从而使得所述主机存储器控制器和所述协调存储器控制器两者在解码相同地址时将指向所述存储器内部的相同位置。
15.根据权利要求11所述的系统,其特征在于,在由所述处理器执行时,所述指令还致使所述处理器:
将来自所述主机存储器控制器的存储器内处理命令作为所述主机存储器控制器命令发送;
由所述主机存储器控制器监测所述协调存储器控制器与所述主机存储器控制器之间的数据总线;以及
在所述监测期间,检测来自所述协调存储器控制器、指示所述存储器内处理命令是否已处理的存储器内处理完成确认。
16.根据权利要求15所述的系统,其特征在于,在由所述处理器执行时,所述指令还致使所述处理器:
使用所述协调存储器控制器来确定处理所述存储器内处理命令的估算剩余时间;
使用所述存储器内处理完成确认来指示尚未处理的所述存储器内处理命令;
使用所述存储器内处理完成确认来指示所述估算剩余时间;以及
将所述存储器内处理完成确认从所述协调存储器控制器发送到所述主机存储器控制器。
17.根据权利要求16所述的系统,其特征在于,在由所述处理器执行时,所述指令还致使所述处理器:
将超时值与所述存储器内处理命令相关联;
确定所述存储器内处理命令未在与所述超时值相对应的时间量内处理;以及
阻止从所述主机存储器控制器发送存储器请求。
18.根据权利要求15所述的系统,其特征在于,在由所述处理器执行时,所述指令还致使所述处理器使用所述主机存储器控制器以通过发送轮询命令以请求指示处理所述存储器内处理命令的估算剩余时间的所述存储器内处理完成确认来轮询所述协调存储器控制器,其中所述轮询命令致使所述协调存储器控制器发送所述存储器内处理完成确认较早于所述协调存储器控制器将已经以其它方式发送所述存储器内处理完成确认。
19.根据权利要求18所述的系统,其特征在于,在由所述处理器执行时,所述指令还致使所述处理器:
由所述主机存储器控制器设置在指示所述存储器内处理命令的优先级的所述轮询命令中的优先级字段;
确定所述存储器内处理命令未在与超时值相对应的时间量内处理;
由所述主机存储器控制器改变所述优先级字段以增加所述存储器内处理命令的优先级;
由所述协调存储器控制器将所述存储器内处理命令在协调存储器控制器命令队列中向上移动;以及
在其它存储器命令之前处理所述存储器内处理命令。
20.一种高带宽存储器系统,其特征在于,包括:
高带宽存储器,包括:
动态随机存取存储器裸片,包括动态随机存取存储器;以及
的逻辑裸片,包括处理器以及包括比较器、调度器以及命令队列的协调存储器控制器;以及
主机存储器控制器,与所述高带宽存储器分离且配置成将存储器命令发送到所述动态随机存取存储器裸片上的所述动态随机存取存储器;
其中所述协调存储器控制器配置成接收所述存储器命令,且将所述存储器命令转发到所述动态随机存取存储器裸片上的所述动态随机存取存储器,
其中所述比较器配置成将来自所述协调存储器控制器的另一存储器命令与来自所述主机存储器控制器的所述存储器命令进行比较,以及
其中所述调度器配置成根据由所述比较器进行的比较在所述命令队列中调度所述存储器命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762536919P | 2017-07-25 | 2017-07-25 | |
US62/536,919 | 2017-07-25 | ||
US15/723,014 US10437482B2 (en) | 2017-07-25 | 2017-10-02 | Coordinated near-far memory controller for process-in-HBM |
US15/723,014 | 2017-10-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109299024A true CN109299024A (zh) | 2019-02-01 |
CN109299024B CN109299024B (zh) | 2024-01-05 |
Family
ID=65037952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810602179.6A Active CN109299024B (zh) | 2017-07-25 | 2018-06-12 | 协调存储器命令的方法和高带宽存储器系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10437482B2 (zh) |
JP (1) | JP6974260B2 (zh) |
KR (1) | KR102265600B1 (zh) |
CN (1) | CN109299024B (zh) |
TW (1) | TWI771407B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143257A (zh) * | 2019-12-02 | 2020-05-12 | 深圳市奥拓电子股份有限公司 | Ddr仲裁控制器、视频缓存装置及视频处理系统 |
CN111913652A (zh) * | 2019-05-10 | 2020-11-10 | 爱思开海力士有限公司 | 包括处理电路的存储器件、存储器控制器和存储系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9997232B2 (en) * | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US11016667B1 (en) * | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
DE102020105628A1 (de) | 2019-03-11 | 2020-09-17 | Samsung Electronics Co., Ltd. | Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung |
CN111679785A (zh) | 2019-03-11 | 2020-09-18 | 三星电子株式会社 | 用于处理操作的存储器装置及其操作方法、数据处理系统 |
CN111459864B (zh) | 2020-04-02 | 2021-11-30 | 深圳朗田亩半导体科技有限公司 | 一种存储器件及其制造方法 |
US11907575B2 (en) * | 2021-02-08 | 2024-02-20 | Samsung Electronics Co., Ltd. | Memory controller and memory control method |
US11609879B2 (en) * | 2021-02-26 | 2023-03-21 | Nvidia Corporation | Techniques for configuring parallel processors for different application domains |
US11947835B2 (en) * | 2021-09-21 | 2024-04-02 | Black Sesame Technologies Inc. | High-performance on-chip memory controller |
US20230205706A1 (en) * | 2021-12-23 | 2023-06-29 | Advanced Micro Devices, Inc. | Approach for managing near-memory processing commands and non-near-memory processing commands in a memory controller |
WO2023128479A1 (ko) * | 2021-12-30 | 2023-07-06 | 주식회사 엘엑스세미콘 | 메모리 제어 시스템 및 메모리 제어 기능을 갖는 디스플레이 디바이스 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639817A (zh) * | 2009-03-13 | 2010-02-03 | 青岛海信信芯科技有限公司 | 一种存储器的控制方法、存储器控制器和存储器控制系统 |
CN102483712A (zh) * | 2009-08-21 | 2012-05-30 | 国际商业机器公司 | 在存储器控制器处对命令进行有效调度的系统和方法 |
US20150293709A1 (en) * | 2014-04-14 | 2015-10-15 | Microsoft Corporation | Fine-grained bandwidth provisioning in a memory controller |
CN105339917A (zh) * | 2013-05-30 | 2016-02-17 | 惠普发展公司,有限责任合伙企业 | 访问存储器中数据的分离的存储器控制器 |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
US20170060788A1 (en) * | 2015-08-27 | 2017-03-02 | Samsung Electronics Co., Ltd. | High performance transaction-based memory systems |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877558B2 (en) | 2007-08-13 | 2011-01-25 | Advanced Micro Devices, Inc. | Memory controller prioritization scheme |
US8266393B2 (en) | 2008-06-04 | 2012-09-11 | Microsoft Corporation | Coordination among multiple memory controllers |
US8854387B2 (en) | 2010-12-22 | 2014-10-07 | Advanced Micro Devices, Inc. | Bundle-based CPU/GPU memory controller coordination mechanism |
EP2761472B1 (en) | 2011-09-30 | 2020-04-01 | Intel Corporation | Memory channel that supports near memory and far memory access |
CN103946826B (zh) | 2011-09-30 | 2019-05-31 | 英特尔公司 | 用于在公共存储器通道上实现多级存储器层级的设备和方法 |
US9852090B2 (en) | 2013-12-11 | 2017-12-26 | Adesto Technologies Corporation | Serial memory device alert of an external host to completion of an internally self-timed operation |
US9632775B2 (en) | 2014-02-11 | 2017-04-25 | Apple Inc. | Completion time prediction for vector instructions |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
US10152421B2 (en) * | 2015-11-23 | 2018-12-11 | Intel Corporation | Instruction and logic for cache control operations |
-
2017
- 2017-10-02 US US15/723,014 patent/US10437482B2/en active Active
-
2018
- 2018-04-05 KR KR1020180039769A patent/KR102265600B1/ko active IP Right Grant
- 2018-04-17 TW TW107113069A patent/TWI771407B/zh active
- 2018-06-12 CN CN201810602179.6A patent/CN109299024B/zh active Active
- 2018-06-15 JP JP2018114778A patent/JP6974260B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639817A (zh) * | 2009-03-13 | 2010-02-03 | 青岛海信信芯科技有限公司 | 一种存储器的控制方法、存储器控制器和存储器控制系统 |
CN102483712A (zh) * | 2009-08-21 | 2012-05-30 | 国际商业机器公司 | 在存储器控制器处对命令进行有效调度的系统和方法 |
CN105339917A (zh) * | 2013-05-30 | 2016-02-17 | 惠普发展公司,有限责任合伙企业 | 访问存储器中数据的分离的存储器控制器 |
US20150293709A1 (en) * | 2014-04-14 | 2015-10-15 | Microsoft Corporation | Fine-grained bandwidth provisioning in a memory controller |
CN106233269A (zh) * | 2014-04-14 | 2016-12-14 | 微软技术许可有限责任公司 | 在存储器控制器中的精细粒度带宽供应 |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
US20170060788A1 (en) * | 2015-08-27 | 2017-03-02 | Samsung Electronics Co., Ltd. | High performance transaction-based memory systems |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913652A (zh) * | 2019-05-10 | 2020-11-10 | 爱思开海力士有限公司 | 包括处理电路的存储器件、存储器控制器和存储系统 |
CN111913652B (zh) * | 2019-05-10 | 2024-03-15 | 爱思开海力士有限公司 | 包括处理电路的存储器件、存储器控制器和存储系统 |
CN111143257A (zh) * | 2019-12-02 | 2020-05-12 | 深圳市奥拓电子股份有限公司 | Ddr仲裁控制器、视频缓存装置及视频处理系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2019029004A (ja) | 2019-02-21 |
JP6974260B2 (ja) | 2021-12-01 |
KR102265600B1 (ko) | 2021-06-17 |
US20190034097A1 (en) | 2019-01-31 |
TW201908981A (zh) | 2019-03-01 |
US10437482B2 (en) | 2019-10-08 |
TWI771407B (zh) | 2022-07-21 |
KR20190011662A (ko) | 2019-02-07 |
CN109299024B (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299024A (zh) | 协调存储器命令的方法和高带宽存储器系统 | |
JP6955478B2 (ja) | 高帯域メモリシステム | |
CN104781756B (zh) | 管理处理器的功率状态 | |
KR102380670B1 (ko) | 메모리 제어기에서의 세분화된 대역폭 프로비저닝 | |
EP2686774B1 (en) | Memory interface | |
WO2011126625A3 (en) | Scheduling memory access requests using predicted memory timing and state information | |
WO2010013189A3 (en) | Data processing circuit with arbitration between a plurality of queues | |
KR20090046609A (ko) | 프로세서 및 메모리 제어 방법 | |
Hassan | On the off-chip memory latency of real-time systems: Is ddr dram really the best option? | |
CN103914412B (zh) | 用于存储设备中的流量优先化的方法,存储设备以及存储系统 | |
RU2014138139A (ru) | Система управления технологическим процессом, периферийное устройство для использования в ней (варианты) и способ планирования действий | |
US11593174B2 (en) | Systems and methods for scheduling programs for dedicated execution on a quantum processor | |
TW201022948A (en) | Methods for preventing transaction collisions on a bus and computer system utilizing the same | |
EP2904765B1 (en) | Method and apparatus using high-efficiency atomic operations | |
US20170075827A1 (en) | I/o command id collision avoidance in a memory device | |
US7765349B1 (en) | Apparatus and method for arbitrating heterogeneous agents in on-chip busses | |
CN111414775A (zh) | 一种rfid标签接入的多阅读器防碰撞方法、装置和设备 | |
US20140164834A1 (en) | Apparatus and a method for memory testing by a programmable circuit in a safety critical system | |
US10289467B2 (en) | Error coordination message for a blade device having a logical processor in another system firmware domain | |
US11294832B2 (en) | Systems and methods for queuing device management configuration requests | |
CN116775231A (zh) | 业务处理方法、业务处理装置、电子设备和存储介质 | |
CN109031192B (zh) | 对象定位方法、对象定位装置和电子设备 | |
US11620083B2 (en) | Method for implementing predictable latency mode feature in SSD, and non-volatile memory (NVM) based storage device | |
US8453016B2 (en) | Methods and systems for managing response data in an information handling system | |
JP2018005851A (ja) | 電子装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |