CN116569151A - 多通道存储器系统 - Google Patents
多通道存储器系统 Download PDFInfo
- Publication number
- CN116569151A CN116569151A CN202180081063.2A CN202180081063A CN116569151A CN 116569151 A CN116569151 A CN 116569151A CN 202180081063 A CN202180081063 A CN 202180081063A CN 116569151 A CN116569151 A CN 116569151A
- Authority
- CN
- China
- Prior art keywords
- memory
- chiplet
- interface
- data
- devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/1004—Compatibility, e.g. with legacy hardware
-
- 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
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
一种系统,其包含存储器控制器小芯片,所述存储器控制器小芯片具有被配置成将所述存储器控制器小芯片耦合到第一和第二存储器装置的存储器接口。所述存储器接口包含:第一和第二存储器通道,其具有相应数据宽度且被配置成将所述存储器控制器小芯片的第一和第二I/O接口耦合到具有至少等于组合的第一和第二存储器通道宽度的数据通道宽度的所述第一存储器装置的接口,其中所述第一和第二存储器通道具有独立的命令/地址(CA)路径;以及第三和第四存储器通道,其具有相应的数据宽度且被配置成将所述存储器控制器小芯片的第三和第四I/O接口耦合到具有至少等于组合的第三和第四存储器通道宽度的数据通道宽度的所述第二存储器装置的接口,其中所述第三和第四存储器通道具有独立的CA路径。
Description
申请优先权
本申请要求2020年10月20日提交的第17/075,182号美国申请的优先权,所述美国申请的全文以引用的方式并入本文中。
关于政府支持的声明
本发明是在美国政府的支持下根据DARPA授予的第HR00111890003号协议完成的。美国政府对这项发明拥有某些权利。
背景技术
小芯片是一种用于集成各种处理功能性的新兴技术。通常,小芯片系统由离散模块(各自被称为“小芯片”)构成,所述离散模块集成在中介层上,并且在许多实例中视需要经由一或多个已建立的网络互连,以向系统提供所要功能性。中介层和所包含的小芯片可封装在一起,以便于与较大系统的其它组件互连。每一小芯片可包含一或多个个别集成电路或“芯片”(IC),其可能与离散电路组件组合,且共同耦合到相应的衬底以便于附接到中介层。系统中的大多数或所有小芯片将个别地被配置成用于经由所述一或多个已建立的网络通信。
小芯片作为系统的个别模块的配置不同于此系统在含有一个衬底(例如,单个裸片)上的相异装置块(例如,知识产权(IP)块)的单个芯片上实施,例如芯片上系统(SoC),或集成在印刷电路板(PCB)上的多个离散封装装置。一般来说,小芯片提供比离散封装装置更好的性能(例如,较低的功耗、缩短的时延等),且小芯片提供比单裸片芯片更大的生产效益。这些生产效益可包含更高的良率或减少的开发成本和时间。
小芯片系统可包含例如一或多个应用(或处理器)小芯片和一或多个支持小芯片。此处,应用小芯片与支持小芯片之间的区别只是对小芯片系统可能的设计情境的参考。因此,举例来说,合成视觉小芯片系统可包含(仅借助于实例)用以产生合成视觉输出的应用小芯片,以及例如存储器控制器小芯片、传感器接口小芯片或通信小芯片等支持小芯片。在典型的用例中,合成视觉设计者可设计应用小芯片并从其它方获取支持小芯片。因此,由于避免设计和生产支持小芯片中所体现的功能性,因此减少了设计支出(例如,在时间或复杂性方面)。小芯片还支持原本可能很困难的IP块的紧密集成,例如使用不同的处理技术或使用不同的特征大小(或利用不同的接触技术或间距)制造的IP块。因此,可以模块化方式组装具有不同物理、电气或通信特性的多个IC或IC组合件,以提供实现所要功能性的组合件。小芯片系统还可促进调适以适应小芯片系统将被并入到的不同较大系统的需要。在一实例中,IC或其它组合件可针对特定功能在功率、速度或产热方面进行优化-正如传感器可能发生的情况-相比于在单个裸片上尝试与其它装置集成,可更容易地与其它装置集成。此外,通过减小裸片的整体大小,小芯片的良率往往高于更复杂的单裸片装置的良率。
附图说明
在不一定按比例绘制的图式中,相似标号可以在不同视图中描述类似组件。具有不同字母后缀的相似标号可表示类似组件的不同例项。图式以实例的方式大体示出本文中所论述的各个实施例。
图1A-1B示出根据本文中所描述的一些实例的小芯片系统的实例。
图2是根据本文中所描述的一些实例的存储器控制器小芯片的实例的框图。
图3示出根据本文中所描述的一些实例具有用于将存储器控制器连接到随机存取存储器的存储器接口的小芯片系统的实例。
图4A-4B示出根据本文中所描述的一些实例与小芯片系统存取随机存取存储器的操作相关联的时序图的实例。
图5示出根据本文中所描述的一些实例的小芯片系统的随机存取存储器带宽的表。
图6示出根据本文中所描述的一些实例用于操作小芯片系统中的存储器控制器的过程的实例。
图7示出根据本文中所描述的一些实例用于制造小芯片系统的过程的实例。
图8是根据本文中所描述的一些实例的示例机器的框图。
具体实施方式
下文描述的图1提供小芯片系统和在其中操作的组件的实例。本公开的实例是针对增加此些小芯片系统中的随机存取存储器装置的带宽或利用率。在一实例中,小芯片系统包含存储器控制器小芯片,其例如通过一或多个存储器通道耦合到例如一或多个双数据速率同步随机存取存储器(DDR SDRAM)装置等一组一或多个存储器装置。如本文稍后更详细描述,存储器控制器可被配置成建立选定宽度的独立的存储器通道,所述选定宽度的独立的存储器通道耦合到具有是存储器通道的选定宽度的至少两倍的宽度的存储器接口。此形式的存储器系统可经实施以便于并行存取相应的相对较小存储器区从而尤其在较小随机存储器存取的情况下提供增强的存储器系统性能。
举例来说,存储器控制器可被配置成执行随机存取存储器操作(下文中“存储器存取操作”)来存取存储器装置。此些存储器存取操作可包含用以激活存储器装置中的存储器阵列的行的一或多个命令,继之以用以将数据写入到被激活行或从被激活行读取数据的命令。一些存储器装置要求,在执行行激活和第一读取或写入命令之后,激活存储器装置中的新的行,然后执行或处理后续读取或写入命令。然而,对存储器装置的存取通常由指定可限制行激活命令发布到装置的速率的定时要求的协议规定。在DDR SDRAM装置的情况下,此些协议包含行激活到行激活(下文中,“激活到激活”)延迟要求,其规定在发布第一行激活命令之后在发布第二或后续行激活命令之前必定到期的最小时间长度。遵守此激活到激活延迟要求可能导致存储器通道或与存储器通道相关联的用于与存储器装置通信的数据总线上的闲置数据循环。此些闲置循环可例如在存储器存取操作针对比存储器装置的预取大小(例如,响应于单个存储器存取操作预取的字节的数目)少的字节时生成。在小芯片系统的上下文中,此些闲置循环可能减小由存储器装置提供的可用带宽,借此降低存储器装置利用率。
图1A和1B示出根据一实施例的小芯片系统110的实例。图1A是安装在外围板105上的小芯片系统110的表示,所述外围板可例如通过外围组件互连高速(PCIe)连接到更广的计算机系统。小芯片系统110包含封装衬底115、中介层120和四个小芯片,即:应用小芯片125、主机接口小芯片135、存储器控制器小芯片140和存储器装置小芯片150。其它系统可包含许多额外小芯片以提供额外功能性,如将从以下论述中显而易见。小芯片系统110的封装示出有封盖或覆盖件165,但可使用用于小芯片系统的其它封装技术和结构。图1B是为了清楚起见标记小芯片系统中的组件的框图。
应用小芯片125示出为包含芯片上网络(NOC)130以支持用于小芯片间通信的小芯片网络155。在实例实施例中,NOC 130可包含在应用小芯片125上。在一实例中,NOC 130可响应于选定的支持小芯片(例如,小芯片135、140和150)而限定,因此使设计者能够为NOC130选择适当数目的小芯片网络连接或开关。在一实例中,NOC 130可位于单独的小芯片上乃至中介层120内。在如本文所论述的实例中,NOC 130实施小芯片协议接口(CPI)网络。
CPI是基于包的网络,其支持虚拟通道,以实现小芯片之间灵活的高速交互。CPI实现从小芯片内网络到小芯片网络155的桥接。举例来说,先进可扩展接口(AXI)是设计芯片内通信的广泛使用的规范。然而,AXI规范涵盖大量的物理设计选项,例如物理通道的数目、信号定时、功率等。在单个芯片内,选择这些选项通常是为了满足例如功耗、速度等设计目标。然而,为了实现小芯片系统的灵活性,使用例如CPI等适配器在可在各种小芯片中实施的各种AXI设计选项之间进行介接。通过实现物理通道到虚拟通道的映射且利用包化协议囊封基于时间的信令,CPI跨小芯片网络155桥接小芯片内网络。
CPI可使用多种不同的物理层来发射包。物理层可包含简单的导电连接,或可包含驱动器以增加电压,或以其它方式促进在较长距离上发射信号。一个此物理层的实例可包含先进接口总线(AIB),其在各种实例中可在中介层120中实施。AIB使用具有转发时钟的源同步数据传递来发射和接收数据。以单数据速率(SDR)或双数据速率(DDR)相对于所发射时钟跨AIB传递包。AIB支持各种通道宽度。当在SDR模式中操作时,AIB通道宽度为20位的倍数(20、40、60……),并且对于DDR模式,AIB通道宽度为40位的倍数:(40、80、120……)。AIB通道宽度包含发射和接收信号两者。通道可被配置成具有对称数目的发射(TX)和接收(RX)输入/输出(I/O),或者具有非对称数目的发射器和接收器(例如,所有发射器或所有接收器)。通道可取决于哪一小芯片提供主时钟而充当AIB主控装置或从属装置。AIB I/O单元支持三个计时模式:异步(即,非计时)、SDR和DDR。在各种实例中,非计时模式用于时钟和一些控制信号。SDR模式可使用专用的仅SDR I/O单元,或双重用途SDR/DDR I/O单元。
在一实例中,CPI包协议(例如,点到点或可路由)可在AIB通道内使用对称的接收和发射I/O单元。CPI串流协议允许更灵活地利用AIB I/O单元。在一实例中,用于串流模式的AIB通道可将I/O单元配置为全部为TX、全部为RX,或者一半为TX且一半为RX。CPI包协议可在SDR或DDR操作模式中使用AIB通道。在一实例中,AIB通道针对SDR模式以80个I/O单元(即,40个TX和40个RX)的增量配置,且针对DDR模式以40个I/O单元的增量配置。CPI串流协议可在SDR或DDR操作模式下使用AIB通道。此处,在一实例中,AIB通道针对SDR和DDR模式两者以40个I/O单元为增量。在一实例中,向每一AIB通道指派唯一的接口识别符。识别符在CPI复位和初始化期间使用以确定跨邻近小芯片的配对AIB通道。在一实例中,接口识别符为包括七位小芯片识别符、七位列识别符和六位链路识别符的20位值。AIB物理层使用AIB带外移位寄存器来发射接口识别符。使用移位寄存器的位32-51跨AIB接口在两个方向上传递20位接口识别符。
AIB将堆叠的一组AIB通道限定为AIB通道列。AIB通道列具有一定数目的AIB通道,外加辅助通道。辅助通道含有用于AIB初始化的信号。列内的所有AIB通道(辅助通道除外)具有相同配置(例如,全部为TX、全部为RX,或一半为TX一半为RX,以及具有相同数目个数据I/O信号)。在一实例中,从与AUX通道相邻的AIB通道开始,以连续递增次序对AIB通道进行编号。邻近于AUX的AIB通道被限定为AIB通道0。
通常,个别小芯片上的CPI接口可包含串行化-反串行化(SERDES)硬件。SERDES互连非常适用于需要高速信令以及低信号计数的情境。然而,对于多路复用和解复用、错误检测或校正(例如,使用块层级循环冗余检查(CRC))、链路层级重试或前向错误校正,SERDES可能会引起额外的功耗和更长的时延。然而,当低时延或能量消耗是超短距离小芯片到小芯片互连的主要关注点时,可利用时钟速率允许以最少时延进行数据传递的并行接口。CPI包含用于使这些超短距离小芯片互连中的时延和能量消耗两者最小化的元件。
对于流控制,CPI采用基于信用的技术。例如应用小芯片125等接收方向例如存储器控制器小芯片140等发送方提供表示可用缓冲器的信用。在一实例中,CPI接收方包含用于给定发射时间单位的每一虚拟通道的缓冲器。因此,如果CPI接收方在时间上支持五个消息和单个虚拟通道,则接收方具有布置成五行的五个缓冲器(例如,每一单位时间一行)。如果支持四个虚拟通道,则接收方具有布置成五行的二十个缓冲器。每一缓冲器保持一个CPI包的有效负载。
当发送方向接收方发射时,发送方基于发射而使可用信用递减。一旦接收方的所有信用已消耗,发送方就停止向接收方发送包。这确保接收方始终具有可用缓冲器来存储发射。
当接收方处理接收到的包并释放缓冲器时,接收方将可用缓冲空间传送回到发送方。随后,发送方可使用此信用返回以允许发射额外信息。
还示出了小芯片网状网络160,其使用直接小芯片到小芯片技术,而不需要NOC130。小芯片网状网络160可在CPI或另一小芯片到小芯片协议中实施。小芯片网状网络160通常启用小芯片的管线,其中一个小芯片充当到管线的接口,而管线中的其它小芯片仅与自身介接。
另外,专用装置接口,例如一或多个工业标准存储器接口145(例如,同步存储器接口,比如DDR5、DDR6),也可用于互连小芯片。小芯片系统或个别小芯片连接到外部装置(例如,较大系统可经由所要接口(例如,PCIE接口)。在一实例中,可经由主机接口小芯片135实施此外部接口,在所描绘的实例中,所述主机接口小芯片提供小芯片系统110外部的PCIE接口。在行业中的惯例或标准已汇聚在此些专用接口145上时,通常采用此接口。将存储器控制器小芯片140连接到动态随机存取存储器(DRAM)存储器装置150的双数据速率(DDR)接口145的所示出实例是基于此工业惯例且根据本文中所描述的技术而增强。
在多种可能的支持小芯片中,存储器控制器小芯片140很可能存在于小芯片系统110中,这是归因于几乎无所不在地使用存储装置来进行计算机处理以及存储器装置的复杂的当前技术发展水平。因此,使用由其它设计者生产的存储器装置小芯片150和存储器控制器小芯片140使小芯片系统设计者能够获得由成熟生产商生产的稳健的产品。通常,存储器控制器小芯片140提供存储器装置特定接口来读取、写入或擦除数据。存储器控制器小芯片140经常可提供额外特征,例如错误检测、错误校正、维护操作或原子操作执行。对于一些类型的存储器,维护操作往往特定针对存储器装置150,例如NAND快闪或存储类存储器中的垃圾收集、NAND快闪存储器中的温度调整(例如,交叉温度管理)。在一实例中,维护操作可包含逻辑到物理(L2P)映射或管理,以在数据的物理与逻辑表示之间提供间接层级。在例如DRAM等其它类型的存储器中,例如刷新等一些存储器操作可在一些时间由主机处理器或存储器控制器控制,并且在其它时间由DRAM存储器装置或与一或多个DRAM装置相关联的逻辑控制,所述逻辑例如接口芯片(在一实例中,缓冲器)。
原子操作是例如可由存储器控制器小芯片140执行的数据操纵。在其它小芯片系统中,原子操作可由其它小芯片执行。举例来说,可由应用小芯片125在命令中指定“增量”的原子操作,所述命令包含存储器地址并且可能包含增量值。在接收到命令后,存储器控制器小芯片140从指定的存储器地址检索数字,使所述数字递增命令中所指定的量,并存储结果。在成功完成后,存储器控制器小芯片140向应用小芯片125提供命令成功的指示。原子操作避免了跨小芯片网络160发射数据,从而缩短执行此些命令的时延。
原子操作可被分类为内置原子或可编程(例如,自定义)原子。内置原子是在硬件中不变地实施的一组有限的操作。可编程原子是可在存储器控制器小芯片140的可编程原子单元(PAU)(例如,自定义原子单元(CAU))上执行的小程序。图1示出论述PAU的存储器控制器小芯片的实例。
存储器装置小芯片150可以是或包含易失性存储器装置或非易失性存储器的任何组合。易失性存储器装置的实例包含(但不限于)随机存取存储器(RAM)-例如DRAM、同步DRAM(SDRAM)、图形双数据速率类型6SDRAM(GDDR6 SDRAM)等等。非易失性存储器装置的实例包含(但不限于)与非(NAND)型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)、铁电RAM(FeRAM)等等。所示出的实例包含作为小芯片的存储器装置150,然而,存储器装置150可驻留在其它地方,例如在外围板105上的不同封装中。对于许多应用,可提供多个存储器装置小芯片。在一实例中,这些存储器装置小芯片可各自实施一或多种存储技术。在一实例中,存储器小芯片可包含不同技术的多个堆叠存储器裸片,例如一或多个SRAM装置与一或多个DRAM装置堆叠或以其它方式通信。存储器控制器140还可用以协调小芯片系统110中的多个存储器小芯片之间的操作;例如,在高速缓存存储装置的一或多个层级中利用一或多个存储器小芯片,以及使用一或多个额外存储器小芯片作为主存储器。小芯片系统110还可包含多个存储器控制器140,如可用于为单独的处理器、传感器、网络等提供存储器控制功能性。例如小芯片系统110等小芯片架构在允许适应不同的存储器存储技术方面提供优点;并且经由更新的小芯片配置提供不同的存储器接口,而无需重新设计系统结构的其余部分。
图2示出根据一实施例的存储器控制器小芯片205的实例的组件。存储器控制器小芯片205包含高速缓存210、高速缓存控制器215、裸片外存储器控制器220(例如,用于与裸片外存储器275通信)、网络通信接口225(例如,用于与小芯片网络285介接且与其它小芯片通信),以及一组原子和合并单元250。此组的成员可包含例如写入合并单元255、存储器危险单元260、内置原子单元265或PAU 270。各个组件是按逻辑说明的,且未必是它们将会被实施的方式。举例来说,内置原子单元265有可能包括沿着到裸片外存储器的路径的不同装置。举例来说,内置原子单元265可处于存储器小芯片上的接口装置/缓冲器中,如上文所论述。相比之下,可编程原子单元270可在存储器控制器小芯片205上的单独处理器中实施(但在各种实例中,可在其它位置中实施,例如在存储器小芯片上实施)。
裸片外存储器控制器220直接耦合到裸片外存储器275(例如,经由总线或其它通信连接),以提供往来于例如裸片外存储器275和裸片外存储器280等所述一或多个裸片外存储器的写入操作和读取操作。在所描绘的实例中,裸片外存储器控制器220还经耦合以供输出到原子和合并单元250,以及输入到高速缓存控制器215(例如,存储器侧高速缓存控制器)。
在实例配置中,高速缓存控制器215直接耦合到高速缓存210,并且可耦合到网络通信接口225以进行输入(例如传入读取或写入请求),并经耦合以用于到裸片外存储器控制器220的输出。
网络通信接口225包含包解码器230、网络输入队列235、包编码器240和网络输出队列245以支持基于包的小芯片网络285,例如CPI。小芯片网络285可提供处理器、存储器控制器、混合线程处理器、可配置处理电路或通信接口之间的包路由。在此基于包的通信系统中,每一包通常包含目的地和源寻址,以及任何数据有效负载或指令。在一实例中,取决于配置,小芯片网络285可实施为具有折叠Clos配置的交叉开关的集合,或提供额外连接的网状网络。
在各种实例中,小芯片网络285可为异步开关结构的部分。此处,数据包可沿着各种路径中的任一个路由,使得取决于路由,任何所选数据包可在多个不同时间中的任何时间到达所寻址的目的地。此外,小芯片网络285可至少部分地实施为同步通信网络,例如同步网状通信网络。经审慎考虑,例如根据本公开使用通信网络的两种配置。
存储器控制器小芯片205可接收具有例如源地址、读取请求和物理地址的包。作为响应,裸片外存储器控制器220或高速缓存控制器215将从指定的物理地址(其可在裸片外存储器275中或高速缓存210中)读取数据,且汇编含有所请求数据的到源地址的响应包。类似地,存储器控制器小芯片205可接收具有源地址、写入请求和物理地址的包。作为响应,存储器控制器小芯片205将把数据写入到指定的物理地址(其可在高速缓存210中或裸片外存储器275或280中),且汇编含有所述数据被存储到存储器的确认的到源地址的响应包。
因此,在可能的情况下,存储器控制器小芯片205可经由小芯片网络285接收读取和写入请求,且使用与高速缓存210介接的高速缓存控制器215来处理所述请求。如果高速缓存控制器215无法处置所述请求,则裸片外存储器控制器220通过与裸片外存储器275或280、原子和合并单元250或两者通信来处理所述请求。如上所述,高速缓存的一或多个层级还可在裸片外存储器275或280中实施;且在一些此类实例中可由高速缓存控制器215直接存取。由裸片外存储器控制器220读取的数据可由高速缓存控制器215高速缓存在高速缓存210中以供稍后使用。
原子和合并单元250经耦合以(作为输入)接收裸片外存储器控制器220的输出,并将输出提供到高速缓存210、网络通信接口225或直接提供到小芯片网络285。存储器危险单元260、写入合并单元255和内置(例如,预定)原子单元265可各自被实施为具有其它组合逻辑电路系统(例如,加法器、移位器、比较器、AND门、OR门、XOR门或其任何合适的组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。PAU 270可实施为一或多个处理器核心或控制电路系统,以及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数和其它数据,或可实施为处理器。
写入合并单元255接收读取数据和请求数据,并且合并请求数据和读取数据以创建具有读取数据和将在响应或返回数据包中使用的源地址的单个单元。写入合并单元255将合并的数据提供到高速缓存210的写入端口(或等效地,提供到高速缓存控制器215以写入到高速缓存210)。任选地,写入合并单元255将合并的数据提供到网络通信接口225以编码且准备响应或返回数据包以供在小芯片网络285上发射。
当请求数据用于内置原子操作时,内置原子单元265从写入合并单元255或直接从裸片外存储器控制器220接收请求和读取数据。执行原子操作,且使用写入合并单元255将所得数据写入到高速缓存210,或提供到网络通信接口225以编码且准备响应或返回数据包以供在小芯片网络285上发射。
内置原子单元265处理预定义原子操作,例如提取并递增或比较并交换。在一实例中,这些操作对大小为32字节或更小的单个存储器位置执行简单的读取-修改-写入操作。从经由小芯片网络285发射的请求包起始原子存储器操作。请求包具有物理地址、原子运算符类型、操作数大小,并且任选地具有至多32字节的数据。原子操作对高速缓存210的高速缓冲存储器行执行读取-修改-写入,从而在必要时填充高速缓冲存储器。原子运算符响应可为简单的完成响应,或具有多达32字节的数据的响应。实例原子存储器运算符包含提取并AND、提取并OR、提取并XOR、提取并加、提取并减、提取并递增、提取并递减、提取并最小、提取并最大、提取并交换,以及比较并交换。在各种实例实施例中,支持32位和64位操作以及对16或32字节的数据的操作。本文中所公开的方法还与支持较大或较小操作和较多或较少数据的硬件兼容。
内置原子操作还可涉及对关于所请求数据的“标准”原子操作的请求,例如相对简单的单循环整数原子,例如提取并递增或比较并交换,其处理量将与不涉及原子操作的常规存储器读取或写入操作相同。对于这些操作,高速缓存控制器215通常可通过(在硬件中)设定危险位来预留高速缓存210中的高速缓存行,使得高速缓存行在处于过渡时无法被另一进程读取。从裸片外存储器275或高速缓存210获得数据,并将所述数据提供到内置原子操作单元265以执行所请求的原子操作。在原子操作之后,除了将所得数据提供到包编码器240以对传出数据包进行编码从而在小芯片网络285上发射之外,内置原子操作单元265还将所得数据提供到写入合并单元255,所述写入合并单元还将把所得数据写入到高速缓存210。在将所得数据写入到高速缓存210之后,存储器危险单元260将清除所设定的任何相应危险位。
PAU 270实现可编程原子操作(也称为“自定义原子操作”)的高性能(高处理量和低时延),其与内置原子操作的性能相当。代替于执行多个存储器存取,响应于原子操作请求指定可编程原子操作和存储器地址,存储器控制器小芯片205中的电路系统将原子操作请求传递到PAU 270,并设定存储在存储器危险寄存器中的对应于原子操作中所使用的存储器行的存储器地址的危险位,以确保不对所述存储器行执行其它操作(读取、写入或原子),然后在原子操作完成后清除所述危险位。为执行可编程原子操作的PAU 270提供的额外直接数据路径允许额外的写入操作,而不会受到由通信网络的带宽强加的任何限制,且不会增加通信网络的任何拥塞。
PAU 270包含多线程处理器,例如基于RISC-V ISA的多线程处理器,其具有一或多个处理器核心,并且进一步具有用于执行可编程原子操作的扩展指令集。当具备用于执行可编程原子操作的扩展指令集时,PAU 270可体现为一或多个混合线程处理器。在一些实例实施例中,PAU 270提供桶式轮循瞬时线程切换以维持较高的每时钟指令速率。
可编程原子操作可由PAU 270执行,其涉及对关于所请求数据的可编程原子操作的请求。用户可准备编程代码以提供此些可编程原子操作。举例来说,可编程原子操作可以是相对简单的多循环操作,例如浮点加法,或可以是相对复杂的多指令操作,例如布隆过滤器插入(Bloom filter insert)。可编程原子操作可与预定原子操作相同或不同,只要它们是由用户而不是系统供应商限定的。对于这些操作,高速缓存控制器215可通过(在硬件中)设定危险位来预留高速缓存210中的高速缓存行,使得高速缓存行在处于过渡时无法被另一进程读取。从高速缓存210或者裸片外存储器275或280获得数据,且将所述数据提供到PAU 270以执行所请求的可编程原子操作。在原子操作之后,PAU 270将把所得数据提供到网络通信接口225以直接对具有所得数据的传出数据包进行编码以供在小芯片网络285上发射。此外,PAU 270将把所得数据提供到高速缓存控制器215,所述高速缓存控制器还将把所得数据写入到高速缓存210。在将所得数据写入到高速缓存210之后,高速缓存控制电路215将清除所设定的任何相应危险位。
在以下论述中,将依据存储器读取操作描述本公开的实例。此些论述和本文中所描述的技术同样适用于存储器写入操作。
如本文所描述,由一些存储器装置的存储器存取协议规定的激活到激活延迟或定时要求可能导致闲置数据循环,所述闲置数据循环减小或限制用于与装置通信的存储器通道的带宽或利用率。激活到激活延迟要求可能限制存储器控制器可将存储器存取操作发射到存储器装置的速率。在一实例中,DDR存储器存取协议包含不同存储器组行到行(或不同存储器组激活到激活)延迟(tRRD),其指示存储器控制器在发布用以激活存储器阵列中的行的第一行激活命令之后在控制器可发布用以存取不同组中的另一行的后续行激活命令之前必须等待的时间长度。所述时间长度可表现为一或多个闲置循环,在所述一或多个闲置循环中,存储器控制器不能够经由存储器通道的数据总线接收或发射数据。在各种实例中,存储器控制器可通过减少闲置循环的量或通过等效地增加存储器通道的已利用数据循环与闲置数据循环的比率来改进存储器装置的可用带宽或利用率。
本公开的实例包含方法、系统、存储器接口和装置,其通过使用将单独的数据和命令/地址输入提供到具有工业标准存储器接口的多个存储器装置(例如两个存储器装置)的不同子部分(例如,不同半部)的存储器控制器来改进小芯片系统中存储器装置的可用带宽。例如GDDR6 SDRAM装置等一些存储器装置常规地以16位通道宽度(即,在“x16模式”中)独立地操作;但具有在某一模式中操作的能力(所述模式在GDDR6装置的情况下被称为“蛤壳模式”),在该模式中,命令/地址(“CA”)在两个存储器装置之间共享以允许每一存储器装置以8位通道(即,在“x8模式”中)操作。出于当前论述的目的,将GDDR6操作用作新主题的实例,但本文中所描述的技术可视需要应用于其它工业标准接口。
在GDDR6蛤壳模式的实例中,当存在四个单独的x8数据通道时,x16模式装置的CA信号分布到每一存储器装置。因此,当数据通道为x8位时,归因于共享的CA信号,读取是在所述两个存储器装置之间划分的16个循序地址的读取。虽然通过启用x8蛤壳模式获得一些优点,但归因于由共享的CA信号产生的循序读取,存储器存取不是独立的,且因此可能是低效的,尤其是对于较小随机存储器存取。
为了解决此低效,本说明书阐述一种被配置成将独立的数据和CA信号提供到较宽工业标准存储器接口的相应子部分的存储器控制器。在一实例中,存储器控制器的四个独立的8位硬件存储器通道经由常规x16 GDDR6接口连接到例如GDDR6 SDRAM装置等两个存储器装置。每一存储器装置提供可配置以作为两个8位通道(下文中“x8模式”)操作来存取装置的独立的(例如,可独立寻址的)存储器阵列的两个可独立寻址的I/O接口。
硬件存储器通道包含被配置成根据规定的存储器接口协议将存储器控制器耦合或连接到存储器装置的任何电路。在一实例中,硬件存储器通道包含信号、编码和解码电路、调节电路、安置在存储器控制器小芯片上的导电迹线、存储器接口小芯片,或另一小芯片系统组件。在另一实例中,硬件存储器通道包含由这些电路在存储器控制器和存储器装置之间建立的逻辑连接。在各种实例中,存储器装置的可独立寻址的I/O接口(下文中,“装置I/O接口”包含任何电路,其与存储器装置相关联或集成于存储器装置内以允许并行或同时(例如,在激活到激活周期或tRRD延迟内)存取存储器装置的独立的存储器阵列或其它细分部。每一8位硬件存储器通道使用例如用于经由8位通道将单独的列地址信号传导到I/O接口的单独或相异的一组电导体或迹线(下文中,“信号”或“信号线”)连接到配置于x8模式中的装置I/O接口。
在一实例中,所述两个存储器装置各自被配置成在内部预取从存储器控制器接收或由存储器控制器发布的每一存储器存取操作的指定数目字节的数据(例如,行激活命令继之以读取命令)。举例来说,每一存储器装置响应于接收到激活和读取存储器行的命令而预取64字节的数据。预取数据的一半分配到每一存储器装置的每一装置I/O接口,使得举例来说,由每一接口响应于从存储器控制器接收的每一存储器存取操作提供32字节的数据。
如果存储器控制器例如在具有两个独立x16通道(或I/O)接口配置模式的标准GDDR6配置中那样使用常规x16硬件存储器通道耦合到存储器装置,则在各种实例中,存储器控制器在两个16字节数据突发中从每一装置I/O接口接收预取数据。如果存储器存取操作的数据大小小于或等于分配到每一装置I/O接口的预取数据的大小,则存储器存取操作通常在满足存储器装置的激活到激活延迟之前完成。然而,存储器控制器直至满足存储器装置的激活到激活延迟才可作为新的存储器存取操作的一部分将新的行激活和读取命令发布到所述装置。因此,将存储器控制器连接到存储器装置的硬件存储器通道的数据总线将在存储器装置用以处理后续行激活和读取命令(例如,激活到激活延迟到期之后时钟循环上发布的命令)的时间期间保持闲置。存储器控制器或存储器装置能够在此闲置时间期间传递数据将是有利的。
如果存储器控制器例如在GDDR6两个独立x8通道或I/O配置模式中那样使用x8硬件存储器通道耦合到存储器装置,则存储器控制器在四个8字节数据突发中接收每一通道的预取数据。此配置中的数据传递比x16配置中的数据传递花费更多循环来完成。然而,用于经由x8通道传递数据的额外时间增加了通道被利用直至可自激活到激活延迟到期时发布的后续存储器存取操作获得数据的概率。因此,对于相同组的存储器存取操作,x8通道经历比x16通道少的闲置循环。使用四个8位硬件存储器通道,使得两个存储器装置的每一x8装置I/O接口经由四个通道耦合到存储器控制器,以同时处理或服务于存储器存取操作(例如,并行地或在激活到激活周期或tRRD延迟内),产生高于耦合到存储器装置的x16装置I/O接口的两个x16存储器通道的随机存取带宽的总计随机存储器存取带宽。在一实例中,使用所有四个8位硬件存储器通道来同时处理或服务于8、16或32字节存储器存取操作产生比两个x16存储器通道的随机存取带宽大且在一些情况下是其两倍的总计随机存储器存取带宽。
图3示出根据本文中所描述的一些实例具有存储器控制器305以及用于将存储器控制器连接到存储器装置340和355的GDDR6物理接口390的小芯片系统300的实例。小芯片系统300可以是例如小芯片系统110等较大的小芯片系统的组件。在一实例中,小芯片系统300被配置成例如经由存储器控制器305的操作提供对例如存储器装置150或裸片外存储器275和280等一或多个存储器装置的存取。GDDR6物理接口390是到存储器装置340和355的标准或常规GDDR6接口(例如,支持或实施GDDR6存储器装置协议的接口)。在各种实例中,GDDR6物理接口390包含到存储器装置340和355的每一通道或独立的存储器区域的可独立寻址的接口。
存储器控制器305是存储器控制器140、205或220的实例。在一实例中,存储器控制器305至少包含四组独立或相异的地址引脚。在各种实例中,每一组地址引脚包含例如用于基于GDDR6的SDRAM存储器装置的一组列地址引脚,且可被配置成将地址和命令信号发射到存储器接口310。在一实例中,每一组地址引脚用于同时(例如,在激活到激活周期或tRRD延迟周期内独立地)将不同地址和命令信号发射到存储器接口310。在另一实例中,存储器控制器305包含每一组地址引脚的独立的时钟和数据引脚。在又一实例中,存储器控制器305包含被配置成经由所述至少四组可独立寻址的地址引脚中的一或多个发射存储器存取命令的一或多个硬件电路或软件应用。在一实例中,硬件电路或软件应用被配置成同时(例如,在激活到激活周期或tRRD延迟周期内)将相异的存储器存取命令发射到每一组可独立寻址的地址引脚。在一实例中,存储器存取命令可被配置成存取存储器装置中的存储器的不同或不相关区域。在一实例中,存储器存取命令可被配置成存取存储器装置的不同存储阵列中的存储器的相关或有关区域。在又一实例中,存储器控制器根据不同时钟或时钟循环发布存储器存取命令,使得连续发布的命令可在不同时钟循环中交错。举例来说,存储器控制器可在另一发布的存储器存取命令的激活到激活延迟周期内发布一或多个存储器存取命令。
存储器控制器305可包含(尤其)存储器接口310。如图3所示,存储器接口310可包含通道组件315和总线信号370、375、380和385。在一实例中,通道组件315包含一组四个可独立寻址的通道组件320、325、330和335。
在一实例中,通道组件315包含一或多个硬件电路或软件应用以使存储器接口310能够将存储器控制器305耦合到存储器装置340和355。在另一实例中,通道组件315包含定时电路、信号调节电路和数字逻辑电路,其根据用于与存储器装置介接的协议的定时、信令和逻辑或序列要求将由存储器控制器305生成的存储器存取信号耦合到存储器装置340和355。在一实例中,此协议包含用于激活到激活操作的定时或延迟准则(下文中,“tRRD”或“tRRD延迟”)。在另一实例中,此协议包含用于介接GDDR6存储器装置(例如SDRAM装置)且与之通信的工业标准协议。
在一实例中,每一通道组件320、325、330和335包含专用定时电路、信号调节电路和数字逻辑电路,其根据用于与存储器装置介接的协议的定时、信令和逻辑或序列要求将由存储器控制器305生成的存储器存取信号耦合到存储器装置340和355。每一通道组件320、325、330和335可物理上或逻辑上耦合到存储器控制器305上的单独的I/O接口或引脚。
总线信号370、375、380和385包含导电迹线,例如小芯片衬底或中介层上的金属迹线,其将存储器装置的I/O接口物理上连接到存储器接口310。在一实例中,总线信号370包含一组数据导体(下文中,“数据信号”)DATA_0和一组地址导体(下文中,“地址信号”)CA_0,其连接到通道组件320和存储器装置340的CHANNEL_A 345以形成第一硬件存储器通道。在另一实例中,总线信号375包含数据信号DATA_1、地址信号CA_1,其连接到通道组件325和存储器装置355的CHANNEL_A 365以形成第二硬件存储器通道。在另一实例中,总线信号380包含一组数据信号DATA_2、一组地址信号CA_2,其连接到通道组件330和存储器装置340的CHANNEL_B 350以形成第三硬件存储器通道。在又一实例中,信号导体385包含一组数据信号DATA_3、一组地址信号CA_3,其连接到通道组件335和存储器装置355的CHANNEL_B 360以形成第四硬件存储器通道。在一实例中,每一组数据信号形成例如8位宽数据总线等具有指定数据宽度的数据总线,以供经由存储器接口310传送数据。地址信号被配置成将存储器存取命令和地址信息从存储器控制器305传送到存储器装置340和355。在一些实例中,每一硬件存储器通道包含时钟信号(例如,CLK_0、CLK_1、CLK_2或CLK_3)以实现硬件存储器通道之间的独立定时。在较具体实例中,时钟信号用于使对存储器装置的存取同步。每一组数据、地址和时钟信号独立于其它组数据、地址和时钟信号或与之电隔离,使得在激活到激活周期或tRRD延迟周期内,第一硬件存储器通道可传送独立于由第二组硬件存储器通道传送的第二存储器存取命令的存储器存取命令。
在各种实例中,存储器装置340和355包含任何组的两个或两个以上存储器装置,其到达被配置成例如经由GDDR6物理接口390提供对每一存储器装置的两个可独立寻址的存储器区(例如CHANNEL_A 345和CHANNEL_B 350或CHANNEL_A 365和CHANNEL_B 360)的存取,以提供对存储器装置的存储器阵列的存储器读取、写入或修改存取。在一实例中,每一存储器装置340和355被配置成将到存储器装置的每一可独立寻址区的接口的数据总线宽度从第一总线宽度(例如16位)调整到第二总线宽度(例如8位)。
在一些实例中,存储器装置340和355在蛤壳配置中配置,其中一个装置安装在另一装置的顶部上使得装置共享总线信号(例如,地址和命令信号),例如GDDR6规范中所指定。在此配置中,存储器接口310将单独的芯片选择或芯片启用信号提供到每一存储器装置。存储器控制器被配置成使用芯片选择和共享总线信号针对CHANNEL_A345和CHANNEL_B350或CHANNEL_A 365和CHANNEL_B 360向每一个发布可独立寻址的存储器存取命令。
图4A-4B示出根据本文中所描述的一些实例用于存取随机存取存储器的时序图的实例。
图4A示出由被配置成经由16位硬件存储器通道与存储器装置(例如GDDR6装置)介接的存储器控制器执行的存储器读取操作的时序图。在一实例中,由耦合到16位装置I/O接口或存储器装置的硬件存储器通道的存储器控制器执行存储器操作。如图4A所示,第一存储器读取操作包含在时间T0处发布的第一行激活命令405,继之以第一读取命令410。存储器装置响应于接收第一行激活405和第一读取命令410在第一和第二数据16字节突发415和420中提供32字节的数据。存储器控制器在例如由GDDR6装置协议或规范的tRRD定时要求规定的激活到激活延迟425之后的时间T1处发布第二存储器读取操作。第二读取操作包含第二行激活命令430,继之以第二读取命令435。第二存储器读取操作中请求的数据在延迟450之后的时间T2处开始的两个16字节数据突发440和445中提供。延迟450指示其中16位装置存储器通道的数据总线或耦合到存储器装置的16位装置I/O接口的硬件存储器通道的数据总线为闲置或不传达数据的一或多个循环。
图4B示出由例如存储器控制器140、205或305等存储器控制器执行以读取存储器装置的存储器区域的存储器读取操作的时序图。在各种实例中,存储器读取操作经执行以经由8位硬件存储器通道存取读取GDDR6装置的存储器区域,如本文所描述。在一实例中,根据本文中所描述的技术经由存储器装置的8位装置I/O接口服务于存储器操作。如图4B所示,存储器控制器发布第一存储器读取操作,其包含在时间T3处发布的第一行激活命令455,继之以第一读取命令460。存储器装置响应于接收第一行激活455和第一读取命令460而在第一和第二数据8字节突发465和470中提供16字节的数据。第二存储器读取命令471在激活到激活延迟475到期之前在时间T4处发布,以获得与第一存储器读取操作相关联的剩余16字节的数据。在一实例中,激活到激活延迟475是与激活到激活延迟425相同的定时延迟。存储器装置在8字节数据突发472和473中提供剩余16字节的数据。例如GDDR6装置协议或规范的tRRD定时要求所规定,在激活到激活延迟475之后在时间T4处发布第二存储器读取操作。第二读取操作包含第二行激活命令480,继之以第三读取命令485。第二存储器读取操作中请求的数据在时间T6处开始的两个8字节数据突发490和495中提供。值得注意的是,数据总线上的闲置循环的数目归因于响应于第二读取命令471提供的数据突发472和473而减小。数据总线的此增加的利用率使例如用于例如图3中的描述的使用四个8位存储器接口执行的小存储器读取操作的总计可用GDDR6存储器带宽增加。
图5示出根据本文中所描述的一些实例的小芯片系统的随机存取存储器带宽的表500。更确切地说,图5示出例如本文中所描述的GDDR6装置等一对存储器装置的随机存储器存取带宽,所述存储器装置使用两个16位通道与存储器控制器介接以处理例如本文中所描述的存储器存取操作。图5还示出使用四个8位通道与存储器控制器介接以处理例如本文中描述的存储器存取操作的一对存储器装置的随机存储器存取带宽。如图5所示,四个8位通道配置的随机存储器存取带宽是用于32字节(例如,GDDR6装置的每一通道的标准完美大小)或更小的存储器存取数据大小的两个16位通道配置的随机存储器存取带宽的两倍。
图6示出根据本文中所描述的一些实例用于操作存储器控制器的过程600的实例。在一实例中,过程600由存储器控制器(例如存储器控制器305)执行以经由到一对存储器装置(例如本文中所描述的基于GDDR6的装置)的存储器接口(例如接口310)处理存储器存取操作。在一实例中,存储器接口包含四个8位硬件存储器通道,其各自连接有例如中描述的GDDR6物理接口390或存储器装置的8位接口。每一8位硬件存储器通道具有例如用于在存储器控制器到存储器装置之间传达存储器存取命令或地址的独立或相异的列存取线。
在605处,存储器控制器获得存取两个存储器装置的存储器的请求。在一实例中,所述请求包含读取、写入或修改所述两个存储器装置的存储器的一或多个字节的一或多个请求。在一些实例中,所述请求从一或多个小芯片获得,所述一或多个小芯片经由小芯片网络耦合到包含存储器控制器的存储器控制器小芯片。在各种实例中,存储器装置包含GDDR6装置,其各自包含两个或两个以上可独立寻址的硬件存储器通道。
在610处,存储器控制器生成例如经由或通过硬件接口310存取存储器装置的存储器存取命令。在一些实例中,存储器存取命令包含一或多个行激活、读取或写入命令。在一实例中,生成存储器存取命令包含将存储器存取请求划分为行激活和读取或写入命令的一或多个集合,以及分配每一命令集合以供并行或独立地发射到存储器装置。在一实例中,存储器存取请求划分为四个存储器存取命令集合,其中每一命令集合包含行激活命令和一或多个存储器读取或存储器写入命令。此外,在一些实例中,每一存储器存取命令集合包含用于经由将所述对存储器装置耦合到存储器控制器的四个硬件存储器通道中的一个独立地存取存储器装置的地址信息。
在615处,存储器控制器经由存储器接口将每一存储器存取命令集合发射到存储器装置。在一实例中,发射存储器存取命令集合包含经由第一硬件存储器通道发射行激活命令,继之以经由同一通道发射存储器读取命令以例如读取32字节或更小的数据大小。发射存储器存取命令集合还可包含响应于发射读取命令,例如经由包含第一组字节的所请求数据的8位数据总线接收所述一或多个数据突发。此发射可进一步包含经由第一存储器通道发射第二读取命令以获得包含第二组字节的所请求数据的另外一或多个数据突发,其中第二读取命令在存储器装置的激活到激活延迟到期之前发射。此发射可接着包含在激活到激活延迟到期之后将第二存储器存取命令集合发射到第一存储器通道。在各种实例中,存储器控制器将四个或更多个存储器存取命令集合并行地(例如,在同一时钟循环内,或在存储器存取命令集合中的任一个中的任一个的激活到激活tRRD延迟内)发射到存储器装置,如本文所描述。在一实例中,每一存储器存取命令集合包含不同于或独立于与存储器存取命令的其它集合相关联的列地址的列地址。
过程600可进一步包含适于实施本文中所描述的技术的任何额外步骤。在一实例中,过程600包含确定一组存储器存取操作是针对小于或等于32字节的数据大小,以及响应于所述确定生成和发射存储器存取命令以经由四个可独立寻址的8位通道执行存储器存取操作。在一实例中,此发射包含经由共享总线发射地址和命令信息,同时使用单独的芯片选择或芯片启用信号来存取每一存储器装置或将所述命令导引到每一存储器装置。
图7示出根据本文中所描述的一些实例用于制造基于小芯片的系统的过程700的实例。在705处,形成到两个存储器装置的硬件接口,例如存储器接口310。硬件接口包含用于将存储器控制器小芯片耦合到所述两个存储器装置(例如,两个GDDR6存储器装置,例如存储器装置340和355)的四个硬件存储器通道。每一硬件存储器通道包含相异或独立的列地址和数据信号或线的集合,使得列地址或数据信号不在通道之间共享。在一些实例中,每一硬件存储器通道包含相异的时钟信号。在一些实例中,每一硬件存储器通道包含数据总线(例如,数据信号或数据线),其总线宽度至多为与针对所述两个存储器装置的装置存储器通道完美的字节的四分之一一样多的位。在一实例中,针对每一装置存储器通道预取32字节,且每一硬件存储器通道的总线宽度为8位。在710处,每一硬件存储器通道耦合到所述对RAM装置的装置存储器,使得一个硬件存储器通道耦合到一个装置存储器通道。在一实例中,每一装置存储器通道耦合到唯一列地址信号集合。在715处,例如通过将每一硬件存储器通道连接到存储器控制器或存储器控制器小芯片的相异I/O接口而将存储器控制器或存储器控制器小芯片耦合或连接到硬件接口。在一实例中,存储器控制器或存储器控制器小芯片包含用于连接到硬件接口的硬件存储器通道的至少四个I/O接口。在一些实例中,每一I/O接口包含例如用于发射存储器存取命令和地址信息的一组唯一或一组电隔离的列地址引脚。在其它实例中,每一I/O接口包含例如用于在存储器控制器和所述对存储器装置之间交换数据以及用于使此些交换同步的一组唯一或电隔离的数据和时钟引脚。在720处,所述两个存储器装置被配置成使用8位装置I/O接口与硬件接口介接,如本文所描述。在一实例中,存储器装置被配置成通过硬件接口的物理电路或互连件或通过存储器控制器根据存储器装置的规范的操作而提供8位装置I/O接口。
图8示出可在其上实施本文所论述的技术(例如,方法)中的任何一或多种的实例机器800的框图。如本文中所描述,实例可包含机器800中的逻辑或若干组件或机制,或者可由其操作。电路系统(例如,处理电路系统)是在包含硬件的机器800的有形实体中实施的电路集合(例如,简单电路、门、逻辑等)。电路系统成员资格可随时间推移而为灵活的。电路系统包含可在操作时单独或以组合方式执行指定操作的成员。在一实例中,可以不可改变地设计电路系统的硬件以实行特定操作(例如,硬连线)。在一实例中,电路系统的硬件可包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包含以物理方式修改(例如,不变的大量粒子的磁、电、可移动放置等)以编码特定操作的指令的机器可读介质。在连接物理组件时,硬件构成的基础电性质例如从绝缘体改变成导体,或反之亦然。指令使嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接以硬件创建电路系统的成员以在操作中时实行特定操作的部分。相应地,在一实例中,机器可读介质元件是电路系统的一部分或在装置操作时以通信方式耦合到电路系统的其它组件。在一实例中,物理组件中的任一个可在一个以上电路系统的一个以上成员中使用。举例来说,在操作下,执行单元可在一个时间点处用于第一电路系统的第一电路中,并且由第一电路系统中的第二电路再使用,或在不同时间处由第二电路系统中的第三电路再使用。相对于机器800的这些组件的额外实例如下。
在替代实施例中,机器800可以充当独立的装置或可以连接(例如,联网)到其它机器。在联网部署中,机器800可在服务器-客户端网络环境中作为服务器机器、客户端机器或两者操作。在一实例中,机器800可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器800可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”也应被视为包含个别地或联合地执行指令集(或多个指令集)以执行本文中所论述的方法中的任一或多个(例如,云计算、软件即服务(SaaS)、其它计算机丛集配置)的任何机器集合。
机器(例如,计算机系统)800可包含硬件处理器802(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器804、静态存储器(例如,用于固件、微码、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等的存储器或存储装置)806,以及大容量存储装置808(例如,硬盘驱动器、磁带机、快闪存储装置或其它块装置),其中的一些或全部可经由互链路(例如,总线)830彼此通信。机器800可进一步包含显示单元810、文数字输入装置812(例如,键盘)和用户界面(UI)导航装置814(例如,鼠标)。在一实例中,显示单元810、输入装置812和UI导航装置814可以是触摸屏显示器。机器800可另外包含存储装置(例如,驱动单元)808、信号生成装置818(例如,扬声器)、网络接口装置820,以及一或多个传感器816,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器800可包含输出控制器828,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
处理器802、主存储器804、静态存储器806或大容量存储装置808的寄存器可为或包含机器可读介质822,在其上存储体现本文中所描述的技术或功能中的任何一或多个或被其利用的数据结构或指令824(例如,软件)的一或多个集合。指令824还可在其由机器800执行期间完全或至少部分驻留在处理器802、主存储器804、静态存储器806或大容量存储装置808的寄存器中的任一个内。在一实例中,硬件处理器802、主存储器804、静态存储器806或大容量存储装置808中的一个或任何组合可构成机器可读介质822。虽然机器可读介质822示出为单个介质,但术语“机器可读介质”可包含被配置成存储所述一或多个指令824的单个介质或多个介质(例如,集中式或分布式数据库,或相关联高速缓存及服务器)。
术语“机器可读介质”可包含能够存储、编码或携载供机器800执行的指令且致使机器800执行本公开的技术中的任何一或多种或能够存储、编码或携载由此些指令使用或与此些指令相关联的数据结构的任何介质。非限制性机器可读介质实例可包含固态存储器、光学介质、磁性介质和信号(例如,射频信号、其它基于光子的信号、声音信号等)。在一实例中,非暂时性机器可读介质包括具有多个粒子的机器可读介质,所述粒子具有不变(例如,静止)质量,且因此为物质组成。因此,非暂时性机器可读介质是不包含暂时性传播信号的机器可读介质。非暂时性机器可读介质的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可移式盘;磁光盘;以及CD-ROM和DVD-ROM盘。
在一实例中,存储或以其它方式提供在机器可读介质822上的信息可表示指令824,例如指令824本身或可从其导出指令824的格式。可从其导出指令824的此格式可包含源代码、已编码指令(例如,呈压缩或加密形式)、已封装指令(例如,拆分成多个封装)等。表示机器可读介质822中的指令824的信息可由处理电路系统处理到指令中以实施本文中所论述的操作中的任一个。举例来说,从信息(例如,由处理电路系统处理)导出指令824可包含:编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态地或静态地链接)、编码、解码、加密、解密、封包、解封包或以其它方式将信息操纵到指令824中。
在一实例中,指令824的导出可包含对信息的汇编、编译或解译(例如,由处理电路系统)以从由机器可读介质822提供的一些中间或预处理格式创建指令824。当以多个部分提供信息时,可组合、解封装和修改所述信息以创建指令824。举例来说,信息可在一个或若干个远程服务器上的多个压缩源代码封装(或目标代码,或二进制可执行代码等)中。源代码封装可在经由网络传输时被加密,并且在必要时被解密、解压缩、汇编(例如,链接),并且在本地机器处被编译或解译(例如,为库、独立的可执行程序等),并且由本地机器执行。
指令824可使用发射介质经由网络接口装置820利用若干传递协议(例如,帧中继、因特网协议(IP)、发射控制协议(TCP)、用户数据报协议(UDP)、超文本传递协议(HTTP)等)中的任一个在通信网络826上进一步发射或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝式网络)、普通老式电话(POTS)网络和无线数据网络(例如,被称为的电气电子工程师学会(IEEE)802.11标准系列、被称为/>的IEEE 802.16标准系列)、IEEE 802.15.4标准系列、对等(P2P)网络等等。在一实例中,网络接口装置820可以包含一或多个物理插口(例如,以太网、同轴或电话插口)或者一或多个天线以连接到通信网络826。在一实例中,网络接口装置820可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种进行无线通信。术语“发射介质”应被认为包含能够存储、编码或携载指令以供由机器800执行的任何无形介质,且包含数字或模拟通信信号或其它无形介质以有助于此类软件的通信。发射介质是机器可读介质。
在前述说明书中,已描述本公开的一些实例实施方案。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的更广范围和精神的情况下对本公开作出各种修改。因此,说明书和图式应在说明性意义上而非限制性意义上看待。以下是本公开的实施方案的实例的非穷尽性列举。
实例1是一种小芯片系统,所述小芯片系统包括:存储器控制器小芯片,其包含被配置成将所述存储器控制器小芯片耦合到第一和第二存储器装置的存储器接口电路,所述存储器接口电路包括:第一和第二存储器通道,其具有相应数据宽度且被配置成分别将所述存储器控制器小芯片的第一和第二输入-输出(I/O)接口耦合到具有至少等于组合的第一和第二存储器通道宽度的数据通道宽度的所述第一存储器装置的接口,其中所述第一和第二存储器通道具有独立的命令/地址(CA)路径;以及第三和第四存储器通道,其具有相应的数据宽度且被配置成分别将所述存储器控制器小芯片的第三和第四I/O接口耦合到具有至少等于组合的第三和第四存储器通道宽度的数据通道宽度的所述第二存储器装置的接口,其中所述第三和第四存储器通道具有独立的CA路径,所述独立的CA路径进一步独立于所述第一和第二存储器通道CA路径。
在实例2中,实例1的主题包含,其中所述第一和第二存储器装置包含图形双数据速率(GDDR)装置,所述图形双数据速率装置被配置成响应于所述第一或第二存储器装置的任一个的所述接口处接收的存储器存取操作预取至少32字节的数据。
在实例3中,实例2的主题包含,其中所述存储器存取操作包括行激活命令和列读取命令。
在实例4中,实例1-3的主题包含,其中所述系统进一步包括存储器控制器小芯片,所述存储器控制器小芯片被配置成经由所述存储器接口电路将独立寻址的存储器存取命令发射到工业标准存储器接口。
在实例5中,实例1-4的主题包含,其中所述存储器控制器小芯片被配置成在激活到激活延迟周期内将至少三个行激活命令发布到所述第一和第二存储器装置,其中每一行激活命令寻址到所述第一或第二存储器装置中的不同存储器组。
在实例6中,实例1-5的主题包含,其中所述系统进一步包括包含所述第一和第二存储器装置的存储器小芯片。
在实例7中,实例1-6的主题包含,其中所述存储器接口电路进一步将单独的时钟信号耦合到每一可独立寻址的存储器通道。
在实例8中,实例1-7的主题包含,其中每一所接收存储器存取操作经由所述第一或第二存储器装置的接口传送的字节的数目是由所述第一或第二存储器装置响应于所述第一或第二存储器装置的所述接口处接收的所述存储器操作预取的字节的数目的一半。
实例9是一种小芯片系统,所述小芯片系统包括:存储器控制器小芯片;第一和第二存储器装置,其被配置成耦合到所述存储器控制器小芯片的I/O接口,其中:所述第一和第二存储器装置中的每一个包含用于提供对每一存储器装置的独立部分的存取的两个可独立寻址的存储器接口,且所述I/O接口包含用于将所述第一和第二存储器装置耦合到存储器控制器小芯片的至少四个可独立寻址的存储器通道;以及中介层,其被配置成将每一可独立寻址的存储器通道耦合到所述第一和第二存储器装置的单独的存储器接口;其中所述第一和第二存储器装置被配置成针对所述可独立寻址的存储器接口处接收的每一存储器存取操作经由每一可独立寻址的存储器接口传送指定数目的字节,其中所述第一和第二存储器装置被配置成所述可独立寻址的存储器接口处接收的每一存储器存取操作预取所述指定数目的字节的两倍。
在实例10中,实例9的主题包含,其中所述第一和第二存储器装置包含图形双数据速率(GDDR)装置,所述图形双数据速率装置被配置成响应于每一可独立寻址的存储器接口处接收的存储器存取操作预取至少32字节的数据。
在实例11中,实例10的主题包含,其中所述存储器存取操作包括行激活命令和列读取命令。
在实例12中,实例9-11的主题包含,其中所述可独立寻址的存储器接口为工业标准GDDR6存储器接口,且所述存储器控制器小芯片被配置成经由所述IO接口将独立寻址的存储器存取命令发射到所述工业标准存储器接口。
在实例13中,实例9-12的主题包含,其中所述存储器控制器小芯片被配置成在激活到激活延迟周期内将至少三个行激活命令发布到所述第一和第二存储器装置,且每一行激活命令寻址到所述第一或第二存储器装置中的不同存储器组。
在实例14中,实例9-13的主题包含,包含所述第一和第二存储器装置的存储器小芯片。
在实例15中,实例9-14的主题包含,其中所述小芯片系统被配置成使用所述I/O接口将单独的时钟信号耦合到每一可独立寻址的存储器通道。
实例16是一种系统,所述系统包括:具有共同地址和命令信号的第一和第二存储器装置,其中每一存储器装置具有第一数据宽度,且所述第一和第二装置被配置成共同地提供具有第二数据宽度的存储器接口,所述第二数据宽度具有与所述第一数据宽度的两倍一样多的位;以及存储器控制器小芯片,其被配置成发布使用具有四个存储器通道的I/O接口存取所述第一和第二存储器装置的命令,其中所述存储器控制器被配置成经由每一存储器通道发布存取每一存储器装置的可独立寻址区的可独立寻址的命令。
在实例17中,实例16的主题包含,被配置成将来自所述存储器控制器的单独的芯片选择信号耦合到每一存储器装置的中介层,其中所述存储器控制器小芯片进一步被配置成使用所述芯片选择信号在工业标准行激活到行激活定时延迟周期内发布存取每一存储器装置的所述可独立寻址区的两个或两个以上可独立寻址的命令。
在实例18中,实例16-17的主题包含,其中所述第一和第二存储器装置为被配置成在8位模式中操作的GDDR6存储器装置。
在实例19中,实例16-18的主题包含,其中所述存储器接口为工业标准存储器接口。
在实例20中,实例16-19的主题包含,其中所述系统进一步包括包含所述第一和第二存储器装置的存储器小芯片。
实例21是包含指令的至少一个机器可读介质,所述指令在由处理电路系统执行时致使所述处理电路系统执行操作以实施实例1-20中的任一个。
实例22是一种设备,其包括用以实施实例1-20中的任一个的构件。
实例23是一种用以实施实例1-20中的任一个的系统。
实例24是一种用以实施实例1-20中的任一个的方法。
这些非限制性实例可以任何排列或组合进行组合。
Claims (20)
1.一种小芯片系统,其包括:
存储器控制器小芯片,其包含被配置成将所述存储器控制器小芯片耦合到第一和第二存储器装置的存储器接口电路,所述存储器接口电路包括:
第一和第二存储器通道,其具有相应数据宽度且被配置成分别将所述存储器控制器小芯片的第一和第二输入-输出(I/O)接口耦合到具有至少等于组合的第一和第二存储器通道宽度的数据通道宽度的所述第一存储器装置的接口,其中所述第一和第二存储器通道具有独立的命令/地址(CA)路径;以及
第三和第四存储器通道,其具有相应数据宽度且被配置成分别将所述存储器控制器小芯片的第三和第四I/O接口耦合到具有至少等于组合的第三和第四存储器通道宽度的数据通道宽度的所述第二存储器装置的接口,其中所述第三和第四存储器通道具有独立的CA路径,所述独立的CA路径进一步独立于所述第一和第二存储器通道CA路径。
2.根据权利要求1所述的系统,其中所述第一和第二存储器装置包含图形双数据速率(GDDR)装置,所述图形双数据速率装置被配置成响应于所述第一或第二存储器装置的任一个的所述接口处接收的存储器存取操作预取至少32字节的数据。
3.根据权利要求2所述的系统,其中所述存储器存取操作包括行激活命令和列读取命令。
4.根据权利要求1所述的系统,其中所述系统进一步包括存储器控制器小芯片,所述存储器控制器小芯片被配置成经由所述存储器接口电路将独立寻址的存储器存取命令发射到工业标准存储器接口。
5.根据权利要求1所述的系统,其中所述存储器控制器小芯片被配置成在激活到激活延迟周期内将至少三个行激活命令发布到所述第一和第二存储器装置,其中每一行激活命令寻址到所述第一或第二存储器装置中的不同存储器组。
6.根据权利要求1所述的系统,其中所述系统进一步包括包含所述第一和第二存储器装置的存储器小芯片。
7.根据权利要求1所述的系统,其中所述存储器接口电路进一步将单独的时钟信号耦合到每一可独立寻址的存储器通道。
8.根据权利要求1所述的系统,其中每一所接收存储器存取操作经由所述第一或第二存储器装置的接口传送的字节的数目是由所述第一或第二存储器装置响应于所述第一或第二存储器装置的所述接口处接收的所述存储器操作预取的字节的数目的一半。
9.一种小芯片系统,其包括:
存储器控制器小芯片;
第一和第二存储器装置,其被配置成耦合到所述存储器控制器小芯片的I/O接口,其中:
所述第一和第二存储器装置中的每一个包含用于提供对每一存储器装置的独立部分的存取的两个可独立寻址的存储器接口,且
所述I/O接口包含用于将所述第一和第二存储器装置耦合到存储器控制器小芯片的至少四个可独立寻址的存储器通道;以及
中介层,其被配置成将每一可独立寻址的存储器通道耦合到所述第一和第二存储器装置的单独的存储器接口;
其中所述第一和第二存储器装置被配置成针对所述可独立寻址的存储器接口处接收的每一存储器存取操作经由每一可独立寻址的存储器接口传送指定数目的字节,其中所述第一和第二存储器装置被配置成所述可独立寻址的存储器接口处接收的每一存储器存取操作预取所述指定数目的字节的两倍。
10.根据权利要求9所述的小芯片系统,其中所述第一和第二存储器装置包含图形双数据速率(GDDR)装置,所述图形双数据速率装置被配置成响应于每一可独立寻址的存储器接口处接收的存储器存取操作预取至少32字节的数据。
11.根据权利要求10所述的小芯片系统,其中所述存储器存取操作包括行激活命令和列读取命令。
12.根据权利要求9所述的小芯片系统,其中所述可独立寻址的存储器接口为工业标准GDDR6存储器接口,且所述存储器控制器小芯片被配置成经由所述IO接口将独立寻址的存储器存取命令发射到所述工业标准存储器接口。
13.根据权利要求9所述的小芯片系统,其中所述存储器控制器小芯片被配置成在激活到激活延迟周期内将至少三个行激活命令发布到所述第一和第二存储器装置,且每一行激活命令寻址到所述第一或第二存储器装置中的不同存储器组。
14.根据权利要求9所述的小芯片系统,其进一步包括包含第一和第二存储器装置的存储器小芯片。
15.根据权利要求9所述的小芯片系统,其中所述小芯片系统被配置成使用所述I/O接口将单独的时钟信号耦合到每一可独立寻址的存储器通道。
16.一种系统,其包括:
具有共同地址和命令信号的第一和第二存储器装置,其中每一存储器装置具有第一数据宽度,且所述第一和第二装置被配置成共同地提供具有第二数据宽度的存储器接口,所述第二数据宽度具有与所述第一数据宽度的两倍一样多的位;以及
存储器控制器小芯片,其被配置成使用具有四个存储器通道的I/O接口发布存取所述第一和第二存储器装置的命令,其中所述存储器控制器被配置成经由每一存储器通道发布存取每一存储器装置的可独立寻址区的可独立寻址的命令。
17.根据权利要求16所述的系统,其进一步包括被配置成将来自所述存储器控制器的单独的芯片选择信号耦合到每一存储器装置的中介层,其中所述存储器控制器小芯片进一步被配置成使用所述芯片选择信号在工业标准行激活到行激活定时延迟周期内发布存取每一存储器装置的所述可独立寻址区的两个或两个以上可独立寻址的命令。
18.根据权利要求16所述的系统,其中所述第一和第二存储器装置是被配置成在8位模式中操作的GDDR6存储器装置。
19.根据权利要求16所述的系统,其中所述存储器接口是工业标准存储器接口。
20.根据权利要求16所述的系统,其中所述系统进一步包括包含所述第一和第二存储器装置的存储器小芯片。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202017075182A | 2020-10-20 | 2020-10-20 | |
US17/075,182 | 2020-10-20 | ||
PCT/US2021/053812 WO2022115167A2 (en) | 2020-10-20 | 2021-10-06 | Multiple channel memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116569151A true CN116569151A (zh) | 2023-08-08 |
Family
ID=81756318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180081063.2A Pending CN116569151A (zh) | 2020-10-20 | 2021-10-06 | 多通道存储器系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116569151A (zh) |
WO (1) | WO2022115167A2 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9971733B1 (en) * | 2014-12-04 | 2018-05-15 | Altera Corporation | Scalable 2.5D interface circuitry |
US10303545B1 (en) * | 2017-11-30 | 2019-05-28 | International Business Machines Corporation | High efficiency redundant array of independent memory |
WO2020117700A1 (en) * | 2018-12-03 | 2020-06-11 | Rambus Inc. | Dram interface mode with improved channel integrity and efficiency at high signaling rates |
EP3931703A4 (en) * | 2019-02-28 | 2022-05-11 | Rambus Inc. | QUAD CHANNEL DRAM |
US10803548B2 (en) * | 2019-03-15 | 2020-10-13 | Intel Corporation | Disaggregation of SOC architecture |
-
2021
- 2021-10-06 WO PCT/US2021/053812 patent/WO2022115167A2/en active Application Filing
- 2021-10-06 CN CN202180081063.2A patent/CN116569151A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022115167A3 (en) | 2022-08-25 |
WO2022115167A2 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693690B2 (en) | Method of completing a programmable atomic transaction by ensuring memory locks are cleared | |
CN114385250B (zh) | 小芯片系统内的小芯片i/o信道的初始化定序 | |
CN116325690A (zh) | 用于对多个元素进行编码的单个字段 | |
US11789885B2 (en) | Ordered delivery of data packets based on type of path information in each packet | |
CN114385240A (zh) | 组织可编程原子单元指令存储器的方法 | |
CN116636189A (zh) | 用于网络装置中的缓冲包的包仲裁 | |
US11658922B2 (en) | Optional path ordering in packet-based network | |
US11797311B2 (en) | Asynchronous pipeline merging using long vector arbitration | |
CN116261849A (zh) | 组合写入启用掩码和信用返回字段 | |
US11868300B2 (en) | Deferred communications over a synchronous interface | |
CN116250218A (zh) | 用于基于信用值的流控的早期信用值返回 | |
US11650876B2 (en) | Payload parity protection for a synchronous interface | |
CN114385538B (zh) | 电路中的管线合并 | |
CN116569151A (zh) | 多通道存储器系统 | |
US11488643B2 (en) | Method for configuring multiple input-output channels | |
US20220121487A1 (en) | Thread scheduling control and memory splitting in a barrel processor | |
CN114385238A (zh) | 减小存储器控制器中的存储器操作的时延 |
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 |