CN116324753A - 用于配置多个输入-输出信道的方法 - Google Patents
用于配置多个输入-输出信道的方法 Download PDFInfo
- Publication number
- CN116324753A CN116324753A CN202180064746.7A CN202180064746A CN116324753A CN 116324753 A CN116324753 A CN 116324753A CN 202180064746 A CN202180064746 A CN 202180064746A CN 116324753 A CN116324753 A CN 116324753A
- Authority
- CN
- China
- Prior art keywords
- chiplet
- column
- channels
- channel
- columns
- 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
Images
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
-
- 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/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/1069—I/O lines read out arrangements
-
- 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/1096—Write circuits, e.g. I/O line write drivers
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/52—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
- H01L23/538—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames the interconnection structure between a plurality of semiconductor chips being formed on, or in, insulating substrates
- H01L23/5382—Adaptable interconnections, e.g. for engineering changes
-
- 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/105—Aspects related to pads, pins or terminals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Microcomputers (AREA)
Abstract
一种系统包括:包含多个导电互连件的中介层;布置在所述中介层上且通过所述中介层互连的多个小芯片;每个小芯片包含裸片到裸片物理层接口,其包含用以接合所述中介层的所述互连件的一或多个衬垫;并且其中至少一个小芯片包含多个输入‑输出信道,所述信道组织成至少一个列且按某一次序布置在所述小芯片的外围处,从而形成用以接合所述中介层的所述互连件的裸片到裸片物理层接口,其中所述列的所述信道的所述次序是可编程的。
Description
优先权申请
本申请案要求2020年8月31日申请的第17/007,876号美国申请案的优先权,所述美国申请以全文引用的方式并入本文中。
政府权利
本发明是根据美国国防部高级研究计划局(DARPA)授予的协议号HR0011180003在美国政府的支持下进行的。美国政府拥有本发明的某些权利。
技术领域
本公开的实施例大体上涉及基于小芯片的系统,且更具体地说涉及用于初始化或配置此类小芯片和此类系统中的其它组件的方法。
背景技术
小芯片是用于集成各种处理功能性的新兴技术。通常,小芯片系统由集成在中介层上且封装在一起的离散芯片(例如,不同衬底或裸片上的集成电路(IC))构成。这种布置不同于单芯片(例如,IC),所述单芯片在一个衬底(例如,单个裸片)上含有不同装置块(例如,知识产权(IP)块),例如芯片上系统(SoC),或集成在板上的离散封装装置。一般来说,小芯片提供比离散封装装置更好的性能(例如,更低的功耗、缩短的时延等),且小芯片提供比单裸片芯片更大的生产效益。这些生产效益可包含更高的良率或减少的开发成本和时间。
小芯片系统大体上由一或多个应用小芯片和支持小芯片组成。此处,应用小芯片与支持小芯片之间的区别只是对小芯片系统可能的设计情境的参考。因此,例如,合成视觉小芯片系统可包含用于产生合成视觉输出的应用小芯片以及支持小芯片,例如存储器控制器小芯片、传感器接口小芯片或通信小芯片。在典型的用例中,合成视觉设计者可设计应用小芯片并且从其它方获取支持小芯片。因此,由于避免设计和生产支持小芯片中所包含的功能性,减少了设计支出(例如,就时间或复杂度方面而言)。小芯片还支持IP块的紧密集成,否则可能很难实现,例如使用不同特征大小的那些IP块。因此,例如,在上一代制造期间设计的具有较大特征大小的装置,或特征大小针对功率、速度或产热进行优化(例如,针对传感器应用)的那些装置可与具有不同特征大小的装置集成,比尝试在单个裸片上集成更容易。此外,通过减小裸片的整体大小,小芯片的良率往往高于更复杂的单裸片装置的良率。
附图说明
在不一定按比例绘制的附图中,相似的数字在不同视图中可描述类似的组件。具有不同字母后缀的相似编号可表示类似组件的不同例子。附图以实例的方式概括地绘示了本文档中所论述的各种实施例。
图1A-1B说明根据本文中所描述的一些实例的小芯片系统的实例。
图2为根据本文中所描述的一些实例的存储器控制器小芯片的实例的框图。
图3为说明根据本文中所描述的一些实例的基于小芯片的芯片上系统(SoC)装置的实例的框图。
图4为说明根据本文中所描述的一些实例的基于小芯片的SoC装置的另一实例的框图。
图5为根据本文中所描述的一些实例的小芯片的列能力寄存器的实例的图式。
图6为根据本文中所描述的一些实例的小芯片的列配置寄存器的实例的图式。
图7为根据本文中所描述的一些实例的小芯片的信道能力寄存器的实例的图式。
图8为根据本文中所描述的一些实例的小芯片的信道配置寄存器的实例的图式。
图9为根据本文中所描述的一些实例的小芯片的用以配置计算装置的输入-输出信道的方法的流程图。
图10为根据本文中所描述的一些实例的示例机器的框图。
具体实施方式
本公开的实施例涉及初始化包含小芯片的电子系统。所述系统可包含各自执行不同功能的小芯片,或所述小芯片可执行同一功能,但将多个小芯片配置在一起(例如,以实施功能的并行性)会产生较高性能解决方案。小芯片可布置在紧密封装矩阵中而以最小占据面积产生较高性能功能块。在小芯片系统的上下文内,对齐小芯片的输入-输出(I/O)时可能会出现问题。
图1A和1B说明小芯片系统110的实例。图1A是安装在外围板105上的小芯片系统110的表示,所述外围板可例如通过外围组件互连高速(PCIe)连接到更广泛的计算机系统。小芯片系统110包含封装衬底115、中介层120和四个小芯片:应用小芯片125、主机接口小芯片135、存储器控制器小芯片140和存储器装置小芯片150。中介层120包含连接到小芯片的导电互连件。小芯片系统110的封装说明为具有盖165,但可使用用于封装的其它覆盖技术。图1B是为了清楚起见标记小芯片系统中的组件的框图。
应用小芯片125被说明为包含支持小芯片间通信网络或小芯片网络155的芯片上网络(NOC)130。NOC 130通常包含于应用小芯片125上,因为其通常在选择支持小芯片(例如,小芯片135、140和150)之后产生,因此使得设计者能够选择用于NOC 130的适当数目的小芯片网络连接或交换机。在实例中,NOC 130可位于单独小芯片上,或甚至位于中介层120内。在实例中,NOC 130实施小芯片协议接口(CPI)网络。
CPI网络是分组网络,其支持虚拟信道,以实现小芯片之间灵活且高速的交互。CPI实现了从小芯片内网络到小芯片网络155的桥接。例如,高级可扩展接口(AXI)是设计芯片内通信的广泛使用的规范。然而,AXI规范涵盖大量的物理设计选项,例如物理信道的数目、信号定时、功率等。在单个芯片内,通常选择这些选项以满足设计目标,例如功率消耗、速度等。为了实现小芯片系统的灵活性,CPI用作配接器以在可跨越各种小芯片使用的各种AXI设计选项之间介接。通过实现物理信道到虚拟信道的映射且利用分组化协议包封基于时间的信令,CPI跨越小芯片网络155桥接小芯片内网络。
CPI可使用多种不同的物理层来传输分组。物理层可包含简单的导电连接或包含驱动器以在较长距离上传输信号或驱动较大负载。一个此类物理层的实例可包含实施于中介层120中的高级接口总线(AIB)。AIB使用具有转发时钟的源同步数据传送来传输和接收数据。以单数据速率(SDR)或双数据速率(DDR)相对于所传输时钟跨AIB传递分组。AIB支持各种信道宽度。当在SDR模式下操作时,AIB信道宽度为20位的倍数(20、40、60、……),并且对于DDR模式,AIB信道宽度为40位的倍数:(40、80、120、……)。AIB信道宽度包含传输和接收信号两者。信道可经配置以具有对称数目的传输(TX)和接收(RX)输入/输出(I/O),或者具有非对称数目的传输器和接收器(例如,所有传输器或所有接收器)。AIB信道可充当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信道,加上可用于带外信令的辅助(AUX)信道。辅助信道含有用于AIB初始化的信号。列内的所有AIB信道(辅助信道除外)具有相同配置(例如,全部为TX、全部为RX,或一半为TX一半为RX,以及具有相同数目个数据I/O信号)。在实例中,从与AUX信道相邻的AIB信道开始,以连续递增次序对AIB信道进行编号。与AUX相邻的AIB信道被限定为AIB信道零。
一般来说,个别小芯片的CPI接口可包含串行化-去串行化(SERDES)硬件。SERDES互连非常适用于需要高速信令以及低信号计数的情境。然而,对于多路复用和解复用、错误检测或校正(例如,使用块级循环冗余校验(CRC))、链路级重试或前向错误校正,SERDES可能会引起额外的功耗和更长的时延。对于低时延或能耗为主要关注点的超短距离小芯片到小芯片互连,具有允许数据传送具有最小时延的时钟速率的并行接口可为较佳解决方案。CPI包含用于使这些超短距离小芯片互连的时延和能耗两者最小化的元件。
对于流控制,CPI采用基于信用的技术。例如应用小芯片125的CPI接收方向例如存储器控制器小芯片140的CPI发送方提供表示可用缓冲器的信用。在实例中,CPI接收方包含用于给定传输时间单位的每个虚拟信道的缓冲器。因此,如果CPI接收方在时间上支持五个消息和单个虚拟信道,则接收方具有布置成五行的五个缓冲器(例如,每个单位时间一行)。如果支持四个虚拟信道,那么CPI接收方具有布置成五行的二十个缓冲器。每个缓冲器经设定大小以保持一个CPI分组的有效负载。
当CPI发送方向CPI接收方进行传输时,发送方基于传输而使可用信用递减。一旦接收方的所有信用消耗完,发送方就停止向接收方发送分组。这确保接收方始终具有可用缓冲器以存储传输。
当接收方处理接收到的分组并释放缓冲器时,接收方将可用缓冲空间传送回到发送方。此信用返回可随后由发送方使用以传输额外信息。
图1A和1B中还说明了小芯片网状网络160,其使用直接小芯片到小芯片技术,而不需要NOC 130。小芯片网状网络160可在CPI或另一小芯片到小芯片协议中实施。小芯片网状网络160通常实现小芯片流水线,其中一个小芯片充当到流水线的接口,而流水线接口中的其它小芯片仅与自身介接。
另外,专用装置接口可用于互连小芯片。专用装置接口的一些实例包含存储器接口145和包含SPI总线178和SPI控制器176的串行外围接口(SPI)。专用装置接口可用于将小芯片连接到外部装置;例如提供用于应用小芯片125的板105外部的PCIE接口的主机接口小芯片135。当行业中的惯例或标准已经汇聚在此类专用接口145上时,通常使用此类接口。将存储器控制器小芯片140连接到动态随机存取存储器(DRAM)存储器装置小芯片150的双数据速率(DDR)接口145的所说明实例是此类行业惯例的实例。
在多种可能的支持小芯片中,存储器控制器小芯片140可能存在于小芯片系统110中,这是因为几乎无所不在地使用存储来进行计算机处理以及对存储器使用复杂先进技术。因此,使用由其它设计者产生的存储器装置小芯片150和存储器控制器小芯片140使小芯片系统设计者能够获得由成熟生产商生产的稳健的产品。通常,存储器控制器小芯片140提供存储器装置特定接口来读取、写入或擦除数据。通常,存储器控制器小芯片140可提供额外特征,例如错误检测、错误校正、维护操作或原子操作执行。维护操作往往特定于存储器装置小芯片150,例如NAND快闪或存储类存储器中的垃圾收集、NAND快闪存储器中的温度调整(例如,交叉温度管理)。在实例中,维护操作可包含逻辑到物理(L2P)映射或管理,以在数据的物理与逻辑表示之间提供间接层级。
原子操作为由存储器控制器小芯片140执行的数据操纵。例如,可由应用小芯片125在命令中指定“增量”的原子操作,所述命令包含存储器地址并且可能包含增量值。在接收到命令后,存储器控制器小芯片140从指定存储器地址检索数字,使所述数字递增命令中指定的量,并存储结果。在成功完成后,存储器控制器小芯片140向应用小芯片125提供命令成功的指示。原子操作避免了跨小芯片网络160传输数据,从而减少执行此类命令的时延。
原子操作可分为内置原子或可编程(例如,自定义)原子。内置原子是在硬件中不变地实施的一组有限的操作。可编程原子是可在存储器控制器小芯片140的可编程原子单元(PAU)(例如,自定义原子单元(CAU))上运行的小程序。关于图2描述实施PAU的存储器控制器小芯片140的实例。
存储器装置小芯片150可为或可包含易失性存储器装置或非易失性存储器的任何组合。易失性存储器装置的实例包含但不限于随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)和图形双数据速率类型6SDRAM(GDDR6 SDRAM)。非易失性存储器装置的实例包含但不限于与非(NAND)型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)和铁电RAM(FeRAM)。图1A和1B的所说明实例包含作为小芯片的存储器装置150,然而,存储器装置150可驻存在其它地方,如在板105上的不同封装中。
图2说明根据实施例的存储器控制器小芯片205的实例的组件。存储器控制器小芯片205包含高速缓冲存储器210、高速缓存控制器215、裸片外存储器控制器220(例如,用于与裸片外存储器275通信)、网络通信接口225(例如,用于与小芯片网络280介接且与其它小芯片通信),以及一组原子和合并操作250。此集合的成员可包含写入合并单元255、危险单元(260)、内置原子单元265或PAU 270。各种组件是按逻辑说明的,并且它们未必会被实施。例如,内置原子单元265有可能包括沿着到裸片外存储器的路径的不同装置。相比之下,可编程原子操作270有可能实施于存储器控制器小芯片205上的单独处理器中。
裸片外存储器控制器220直接耦合到裸片外存储器275(例如,经由总线或其它通信连接)以将写入操作和读取操作提供到裸片外存储器275和从裸片外存储器提供写入操作和读取操作。裸片外存储器控制器220还针对输出耦合到原子和合并操作单元250,并且针对输入耦合到高速缓存控制器215(例如,存储器侧高速缓存控制器)。存储器控制器220还可包含通过SPI总线278耦合到存储器装置的SPI 277的串行外围接口(SPI)控制器276。
高速缓存控制器215直接耦合到高速缓冲存储器210,且还耦合到网络通信接口225以用于输入(例如传入读取或写入请求)且耦合到裸片外存储器控制器220以用于输出。
网络通信接口225包含分组解码器230、网络输入队列235、分组编码器240和网络输出队列245以支持基于分组的小芯片网络280(例如,CPI网络)。小芯片网络280可提供处理器、存储器控制器、混合线程处理器、可配置处理电路或通信接口之间和当中的分组路由。在此类基于分组的通信系统中,每个分组通常包含目的地和源寻址,以及任何数据有效负载或指令。在实例中,取决于配置,小芯片网络280可实施为具有折叠Clos配置的交叉开关的集合,或提供额外连接的网状网络。小芯片网络280可为异步交换结构的部分。在此实例中,数据分组可沿着各种路径中的任一者路由,使得任何所选数据分组可在多个不同时间中的任何时间到达所寻址的目的地,这取决于路由。小芯片网络280可实施为同步通信网络,例如同步网状通信网络。任何和所有此类通信网络被视为等效的且在本公开的范围内。
存储器控制器小芯片205可接收具有源地址、读取请求和物理地址的分组。作为响应,裸片外存储器控制器220或高速缓存控制器215将从指定物理地址(其可在裸片外存储器275或高速缓冲存储器210中)读取数据,并将响应分组汇编成含有所请求数据的源地址。类似地,存储器控制器小芯片205可接收具有源地址、写入请求和物理地址的分组。作为响应,存储器控制器小芯片205将数据写入到指定物理地址(其可在裸片外存储器275或高速缓冲存储器210中),并将响应分组汇编成含有数据被存储到存储器的确认的源地址。
因此,存储器控制器小芯片205可经由小芯片网络280接收读取和写入请求,且使用与高速缓冲存储器210介接的高速缓存控制器215来处理所述请求。如果高速缓存控制器215无法处置所述请求,那么裸片外存储器控制器220通过与裸片外存储器275、原子和合并操作250或这两者通信来处置所述请求。由裸片外存储器控制器220读取的数据可由高速缓存控制器215存储在高速缓冲存储器210中以供后续使用。
原子和合并操作250被耦合以(作为输入)接收裸片外存储器控制器220的输出,并将输出提供到高速缓冲存储器210、网络通信接口225或直接提供到小芯片网络280。存储器危险清除(复位)单元260、写入合并单元265和内置(例如,预定)原子操作单元265可各自被实施为具有其它组合逻辑电路系统(例如加法器、移位器、比较器、与门、或门、异或门或其任何合适的组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。PAU 270可实施为一或多个处理器核心或控制电路系统,以及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数和其它数据,或可实施为处理器。
写入合并单元255接收读取数据和请求数据,并且合并请求数据和读取数据以产生具有读取数据和将在响应或返回数据分组中使用的源地址的单个单元。写入合并单元255将合并的数据提供到高速缓冲存储器210的写入端口(或等效地,提供到高速缓存控制器215以写入到高速缓冲存储器210)。任选地,写入合并单元255将合并的数据提供到网络通信接口225以编码且准备响应或返回数据分组以在小芯片网络280上进行传输。
当请求数据用于内置原子操作时,内置原子操作单元265从写入合并单元265或直接从裸片外存储器控制器220接收请求和读取数据。执行原子操作,且使用写入合并单元255,将所得数据写入到高速缓冲存储器210,或提供到网络通信接口225以编码和准备响应或返回数据分组以供在小芯片网络280上进行传输。
内置原子操作单元265处置预定义原子操作,如提取并递增或比较并交换。在实例中,这些操作对大小为32字节或更小的单个存储器位置执行简单的读取-修改-写入操作。从通过小芯片网络280传输的请求分组发起原子存储器操作。请求分组具有物理地址、原子操作符类型、操作数大小,并且任选地具有至多32字节的数据。原子操作对高速缓冲存储器210的高速缓冲存储器行执行读取-修改-写入,从而在必要时填充所述高速缓冲存储器。原子运算符响应可为简单的完成响应,或具有至多32字节的数据的响应。示例原子存储器运算符包含提取并与、提取并或、提取并异或、提取并加、提取并减、提取并递增、提取并递减、提取并最小、提取并最大、提取并交换和比较并交换。在各种示例实施例中,支持32位和64位操作以及对16或32字节的数据的操作。本文中所公开的方法还与支持较大或较小操作和较多或较少数据的硬件兼容。
内置原子操作还可涉及对关于所请求数据的“标准”原子操作的请求,例如相对简单的单周期整数原子(例如,提取并递增或比较并交换),其吞吐量将与不涉及原子操作的常规存储器读取或写入操作相同。对于这些操作,高速缓存控制器215通常通过(在硬件中)设定危险位来保留高速缓冲存储器210中的高速缓存行,使得高速缓存行在转变时无法被另一过程读取。从裸片外存储器275或高速缓冲存储器210获得数据,并将所述数据提供到内置原子操作单元265以执行所请求的原子操作。在原子操作后,除将所得数据提供到数据分组编码器240以对传出数据分组进行编码以供在小芯片网络280上传输之外,内置原子操作单元265还将所得数据提供到写入合并单元255,所述写入合并单元还将所得数据写入到高速缓冲存储器电路210。在将所得数据写入到高速缓冲存储器210后,存储器危险清除单元260将清除所设定的任何对应危险位。
PAU 270实现了可编程原子操作(也称为“自定义原子操作”)的高性能(高吞吐量和低时延),其与内置原子操作的性能相当。并非执行多个存储器存取,响应于指定可编程原子操作和存储器地址的原子操作请求,存储器控制器小芯片205中的电路系统将原子操作请求传送到PAU 270且设定存储在存储器危险寄存器中的对应于原子操作中使用的存储器行的存储器地址的危险位,以确保不对所述存储器行执行其它操作(读取、写入或原子)。接着在完成原子操作后清除危险位。为执行可编程原子操作的PAU 270提供的额外直接数据路径允许额外的写入操作,而不会受到由通信网络的带宽施加的任何限制,并且不会增加通信网络的任何拥塞。
PAU 270包含具有一或多个处理器核心的基于RISC-V指令集架构(RISC-V ISA)的多线程处理器,且可进一步具有扩展指令集以用于执行可编程原子操作。当具备用于执行可编程原子操作的扩展指令集时,PAU 270可体现为一或多个混合线程处理器。在一些示例实施例中,PAU 270提供桶式轮循瞬时线程切换以维持较高的每时钟指令速率。
可编程原子操作可由PAU 270执行,所述可编程原子操作涉及对关于所请求数据的可编程原子操作的请求。用户可准备编程代码以提供此类可编程原子操作。例如,可编程原子操作可以是相对简单的多循环操作,例如浮点加法,或可以是相对复杂的多指令操作,例如布隆过滤器插入(Bloom filter insert)。可编程原子操作可与预定原子操作相同或不同,只要它们是由用户而不是系统供应商定义的。对于这些操作,高速缓存控制器215可通过(在硬件中)设定危险位来保留高速缓冲存储器210中的高速缓存行,使得高速缓存行在转变时无法被另一过程读取。从裸片外存储器275或高速缓冲存储器210获得数据,且将所述数据提供到PAU 270以执行所请求的可编程原子操作。在原子操作后,PAU 270将所得数据提供到网络通信接口225以直接编码具有所得数据的传出数据分组以供在小芯片网络280上传输。此外,PAU 270将所得数据提供到高速缓存控制器215,所述高速缓存控制器还将所得数据写入到高速缓冲存储器210。在将所得数据写入到高速缓冲存储器210之后,高速缓存控制电路215将清除所设定的任何对应危险位。
针对可编程原子操作所采用的方式是提供多个通用的自定义原子请求类型,其可经由小芯片网络280从如处理器或其它系统组件的起始源发送到存储器控制器小芯片205。高速缓存控制器215和裸片外存储器控制器220将请求标识为自定义原子请求且将所述请求转发到PAU 270。在代表性实施例中,PAU 270:(1)是能够高效地执行用户定义的原子操作的可编程处理元件;(2)可对存储器、算术和逻辑操作以及控制流决策执行加载和存储;并且(3)可利用具有一组新的专用指令的RISC-V ISA来促进与高速缓冲存储器和裸片外存储器控制器215、220的交互,从而以原子方式执行用户定义的操作。应注意,RISC-V ISA含有支持高级语言操作符和数据类型的完整指令集。PAU 270可利用RISC-V ISA,但通常会支持更有限的指令集和有限的寄存器文件大小,以在包含在存储器控制器小芯片205内时减小单元的裸片大小。
如上文所提及,存储器危险清除单元260将清除所设定的任何危险位。在将读取数据写入到高速缓冲存储器210之前,存储器危险清除单元260将清除所保留高速缓存行的所设定的危险位。因此,当写入合并单元255接收到请求和读取数据时,存储器危险清除单元260可将复位或清除信号传输到高速缓冲存储器210以复位所保留高速缓存行的所设定的存储器危险位。此外,复位此危险位还将释放涉及所指定(或所保留)的高速缓存行的未决读取或写入请求,从而将未决读取或写入请求提供到入站请求多路复用器以供选择和处理。
例如图1A的小芯片系统110等小芯片系统可包含许多小芯片,并且小芯片可布置在紧密封装的矩阵中以产生占用面积最小的较高性能功能块。为了促进小芯片之间的通信,小芯片包含多个输入-输出(I/O)信道。I/O信道可在多个协议和结构(例如,AIB信道)中的任一者中实施,以在小芯片之间提供通信信道。在实例中,I/O信道可由一个小芯片的计算元件(例如,存储器控制器小芯片)用以存取第二小芯片的存储器(其可例如将数据存储在实施一或多个存储器存储技术的一或多个存储器裸片中)。存储器请求将从第一小芯片的计算元件流动到第二小芯片,且对存储器请求的响应将在相反方向上从第二小芯片流动回到第一小芯片。I/O信道在小芯片的外围处布置在信道列中,并且延伸到经配置以耦合到中介层上的导电互连件的接触件(例如,衬垫),从而形成裸片到裸片物理层接口。一组硬件寄存器包含在小芯片中,以支持通过软件配置小芯片的信道和信道列中的一者或两者以实现互操作性。
可使用初始化过程来配置小芯片。可使用硬件或软件执行初始化过程。在一些实例中,在系统复位之后使用例如SPI的专用接口执行初始化。SPI总线包含四种信号:串行时钟(SCLK)、主输出从属输入(POSI)、主输入从属输出(PISO)和从属选择(SS)。在SCLK数据的每个时钟循环期间,可使用POSI和PISO线传输数据以将数据移位到小芯片的寄存器中。
在一些实例中,小芯片中的一者可充当SPI主小芯片或管理小芯片的SPI。SPI主小芯片可为包含PCIe接口的小芯片。SPI主小芯片经由SPI总线连接到其它小芯片以对硬件寄存器进行写入从而配置I/O信道列。一旦SPI SCLK启动并运行并且相关联的一或多个复位被取消断言,SPI主小芯片就可以存取其它小芯片的寄存器。
在一些实例中,写入到小芯片的硬件寄存器中的配置数据可来自与小芯片系统分离的装置的主机处理器。在主机处理器上运行的软件可读取并写入映射到小芯片系统的PCIe的存储器映射输入-输出(MMIO)空间。主机处理器可使用将MMIO地址空间映射到SPI主小芯片的接口的PCIe事务来提供配置数据。在一些实例中,到SPI主小芯片的接口是外部接口并且配置数据可直接写入到SPI主小芯片。
图3为说明基于小芯片的系统310的部分的实例,包含由两个外围小芯片314A、314B界定的中心小芯片312。小芯片中的每一者可使用多个I/O信道。数个信道可“绑定”在一起或组合以形成更宽的接口或更宽的信道。另外,数个信道可“联合”或成组在一起成为多个I/O信道列。中心小芯片312展示小芯片的各侧上的列,其中信道标记为(AUX、CH0、CH1、……、CHn)。外围小芯片314A、314B中的每一者展示具有与中心小芯片的列相同的指定信道的列。描述中对“中心”小芯片和“外围”小芯片的引用旨在清楚地描述接口的I/O信道在何处重新编程;并且不包含关于此类小芯片在基于小芯片的系统中的配置、功能或物理位置的其它暗示。在基于小芯片的系统中,任何或所有小芯片都可配置有寄存器和/或其它电路系统,提供I/O信道在小芯片上的可编程配置。例如,根据下文论述,可实施中心小芯片以在一或多个侧上提供I/O信道的可编程性;而可实施与中心小芯片通信的外围小芯片以在中心小芯片的额外侧上的接口处提供可编程性。
图3示出外围小芯片可能需要相对于一或多个中心小芯片旋转以允许使用中心小芯片的所有四个侧。外围小芯片的列和信道中的一者或两者可能需要从原始定向反转,以与中心小芯片312的信道对齐。在图3中,可以看出,图式的左侧上的外围小芯片314A应从原始定向反转,使得信道与中心小芯片312的信道匹配。当互连件经反转时,希望有一种方法可以让软件正确地重新定向硬件中的接口。图3为简化框图,且实际小芯片系统可包含许多小芯片。如上文所指出,存储器控制器小芯片是可在多个(或所有)侧上具有I/O信道接口(如针对小芯片312、412A和412B所描绘)的小芯片的一个实例。在存储器控制器小芯片的实例中,一些示例配置会在一或多个侧上具有行业标准存储器接口;以及如上文所描述,在一或多个侧上具有可编程信道I/O接口。
图4为说明小芯片系统410的另一示例实施例的框图。实例展示两个中心小芯片412A、412B和两个外围小芯片414A和414B。中心和外围小芯片中的每一者在小芯片的一侧上具有两个信道列。在图式中,可以看出,需要反转右侧的小芯片414B的列的两个信道,用于与中心小芯片310B的右侧边缘上的列互连。
列的I/O的单个信道(例如,CHn)形成最小接口组件或单元,并且单个信道包含载送RX和TX信号的多个接收(RX)和传输(TX)线。单个列包含多个I/O信道。在列内,多个信道可绑定在一起以形成更宽的信道接口。例如,列的CH0和CH1可绑定在一起以形成宽为信道中的一者的两倍的信道。
为了促进反转列并将多个单位经大小设定的信道绑定成更宽的信道,小芯片包含一组基于硬件的、软件可存取的寄存器。信道硬件的能力可使用寄存器传送到软件,并且信道和列可由软件使用寄存器进行配置。寄存器可包含在图3所示的小芯片列和信道交换逻辑电路系统316中。在小芯片的列和信道交换逻辑电路系统中,存在与I/O信道列相关联的一组能力和配置寄存器,以及与列的信道相关联的一组能力和配置寄存器。图5-8说明能力和配置寄存器的一些实例。
图5为列能力寄存器570的实例的图式。小芯片的每个列可包含列能力寄存器570。列能力寄存器包含列反转能力(RevC)字段。可用指示列的信道的次序可反转(例如,因为列连接到支持信道反转的交换逻辑电路系统)的值对RevC字段进行写入。当配置小芯片的列时,软件可读取RevC字段,RevC字段指示列反转可用。
图6为列配置寄存器672的实例的图式。小芯片的每个列可包含列配置寄存器672。列配置寄存器672包含列反转启用字段(RevEn)。启用列反转启用字段启用列的信道的反转。在图3的例子中,启用外围小芯片314A的列的列反转启用字段反转所述列中的信道的次序以与中心小芯片312的左侧列的信道匹配。
返回到图5,列能力寄存器570还可包含多列反转能力(多列RevC)字段。多列反转能力字段指示列是否连接到交换逻辑电路系统以支持数个列的多列反转。在一些实例中,多列反转能力字段为位向量。如果位向量的位经设定,则这指示列支持跨数个列的多列反转,等于列的数目等于所设定的位位置加一。例如,如果设定多列反转能力字段的位位置二的位,则这指示列支持跨三个列的反转。
返回到图6,列配置寄存器672包含要反转列数目启用(No.Col.RevEn)字段以启用小芯片的多个列的反转。在图4的实例中,要反转列数目启用可用于反转右侧外围小芯片414B中的列的信道的次序,从而匹配中心小芯片412B的右侧边缘的列的信道。应注意,中心小芯片412B的右侧边缘的列包含接口A(IPA)和接口B(IPB)。右侧外围小芯片414B的两个列需要一起反转,以便接口正确地对齐。单独地反转列的次序而非一起反转两个列的次序会引起不正确的接口对齐。
返回到图6,在一些实例中,将值N写入到要反转列数目启用反转小芯片的N个列,从对应于列配置寄存器的列和所述列之前的N-1列开始,其中N为正整数。例如,将值2写入到外围小芯片414B的列1的要反转列数目启用字段一起反转列2和列1两者。当多于一个列的信道成组在一起时,这可能是有用的。
信道反转的方法可以扩展到少于一整个信道列的反转。反转能力寄存器和反转启用寄存器可扩展以包含寄存器中的字段,以选择性地反转列内的信道的子集而不是整个列。这可能有助于反转在多个小芯片上延伸的一列的一或多个部分。
如本文中先前所解释,小芯片的逻辑电路系统包含与列的信道相关联的能力和配置寄存器。这些能力和配置寄存器用于将多个单位经大小设定的信道一起绑定成更宽的信道。
图7为可编程信道能力寄存器774的实例的图式。在某些实例中,小芯片的每个信道包含信道能力寄存器774。信道能力寄存器774包含信道绑定能力字段。信道绑定能力字段可为位向量。设定位向量的位指示信道支持跨等于位向量的位位置加一的数目的信道的绑定。
图8为可编程信道配置寄存器876的实例的图式。在某些实例中,小芯片的每个信道包含信道配置寄存器876。信道配置寄存器876包含指示要一起绑定成信道接口的信道数目的要绑定信道数目字段。在某些实例中,将值X写入到要绑定信道数目字段将对应于信道配置寄存器876的信道和其上指定的X-1信道绑定成X个单位经大小设定的信道的一个信道接口,其中X为大于一的正整数。在某些实例中,所绑定的信道的数目可延伸超出一个列的信道。以此方式,多个列的信道中的信道可绑定成更宽的信道接口。
图9为由电路或系统执行以配置基于小芯片的系统的小芯片的I/O信道的方法900的实例的流程图。小芯片的I/O信道布置为小芯片的列。在905处,设定系统的第一小芯片的列的信道的次序。信道的次序可设定为默认配置。根据第一小芯片的信道的布置编程系统的第二小芯片。在910处,读取第二小芯片的列的列能力寄存器以确定列的信道的次序是否可反转,以改变第二小芯片的列的信道的次序从而匹配第一小芯片的列的信道的次序。在915处,对第二小芯片的列的列配置寄存器进行写入,以反转列的信道的次序从而匹配第一小芯片的列的信道的次序。
在一些实例中,反转第二小芯片的列的信道的次序以匹配第一小芯片的列的信道的次序。在一些实例中,将第一小芯片的多个信道编程为将多个信道绑定在一起作为更宽的信道接口。将第二小芯片的多个信道一起绑定为匹配第一小芯片的更宽信道接口。
图10说明可对其实施本文中所论述的一或多种技术(例如,方法)的示例机器1000的框图。如本文中所描述,实例可包含机器1000中的逻辑或数个组件或机制,或可由其操作。电路系统(例如,处理电路系统)是在机器1000的有形实体中实施的电路集合,其包含硬件(例如,简单电路、门、逻辑等)。电路系统成员资格可随时间推移而变得灵活。电路系统包含可在操作时单独或以组合形式进行指定操作的成员。在实例中,电路系统的硬件可被永恒地设计成执行特定操作(例如,硬接线)。在实例中,电路的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的机器可读媒体。在连接物理组件时,硬件构成的基础电学性质例如从绝缘体变成导体,或从导体变成绝缘体。指令使得嵌入式硬件(例如,执行单元或加载机制)能够经由可变连接在硬件中创建电路系统的成员,以在操作时实行特定操作的部分。因此,在实例中,机器可读媒体元件是电路系统的一部分或在装置操作时以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一者可用于多于一个电路系统中的多于一个成员中。例如,在操作下,执行单元可在一个时间点用于第一电路系统的第一电路,且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。下面是关于机器1000的这些组件的额外实例。
在替代实施例中,机器1000可用作独立装置,或可连接(例如,联网)到其它机器。在联网部署中,机器1000可在服务器-客户端网络环境中用作服务器机器、客户端机器或这两者。在实例中,机器1000可在对等(P2P)(或其它分布式)网络环境中用作对等机器。机器1000可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定待由所述机器采取的动作的指令的任何机器。另外,虽然仅示出单个机器,但术语“机器”也应被视为包含个别地或共同地执行一个指令集(或多个指令集)以执行本文中所论述的任何一或多种方法(例如,云计算、软件即服务(SaaS)、其它计算机集群配置)的任何机器集合。
机器(例如,计算机系统)1000可包含硬件处理器1002(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器1004、静态存储器(例如,固件、微码的存储器或存储装置、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等)1006,以及大容量存储装置1008(例如,硬盘驱动器、磁带机、快闪存储装置或其它块装置),其中的一些或全部可经由互联件(例如,总线)1030彼此通信。机器1000可进一步包含显示单元1010、字母数字输入装置1012(例如,键盘)和用户界面(UI)导航装置1014(例如,鼠标)。在实例中,显示单元1010、输入装置1012和UI导航装置1014可为触摸屏显示器。机器1000可另外包含存储装置(例如,驱动单元)1008、信号产生装置1018(例如,扬声器)、网络接口装置1020和一或多个传感器1016,例如全球定位系统(GPS)传感器、指南针、加速计或其它传感器。机器1000可包含输出控制器1028,例如串行(例如,通用串行总线(USB))、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
处理器1002、主存储器1004、静态存储器1006或大容量存储装置1008的寄存器可为或包含机器可读媒体1022,其上存储有一或多组数据结构或指令1024(例如,软件),所述数据结构或指令体现本文中所描述的任何一或多种技术或功能或被其利用。指令1024还可在其由机器1000执行期间完全或至少部分地停留在处理器1002、主存储器1004、静态存储器1006或大容量存储装置1008的寄存器中的任一者内。在实例中,硬件处理器1002、主存储器1004、静态存储器1006或大容量存储装置1008中的一者或任何组合可构成机器可读媒体1022。虽然机器可读媒体1022说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令1024的单个媒体或多个媒体(例如,集中式或分布式数据库,和/或相关联的高速缓冲存储器和服务器)。
术语“机器可读媒体”可包含能够存储、编码或载送用于由机器1000执行且使得机器1000执行本公开的任何一或多种技术的指令,或能够存储、编码或载送由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器、光学媒体、磁性媒体和信号(例如,射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量,且因此为物质组成。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。
在实例中,存储或以其它方式提供在机器可读媒体1022上的信息可表示指令1024,例如指令1024本身或可从其导出指令1024的格式。可从其导出指令1024的此格式可包含源代码、经编码指令(例如,呈压缩或加密形式)、经封包指令(例如,拆分成多个数据包)等。表示机器可读媒体1022中的指令1024的信息可由处理电路系统处理到指令中以实施本文中所论述的操作中的任一个。例如,从信息(例如,由处理电路系统处理)导出指令1024可包含:编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态地或静态地链接)、编码、解码、加密、解密、封包、解封包或以其它方式将信息操纵到指令1024中。
在实例中,指令1024的导出可包含对信息的组合、编译或解译(例如,通过处理电路系统)以从由机器可读媒体1022提供的一些中间或预处理格式产生指令1024。在提供在多个部分中时,可组合、解封包和修改信息以产生指令1024。例如,信息可在一或若干个远程服务器上的多个经压缩源代码数据包(或目标代码,或二进制可执行代码等)中。源代码数据包可在通过网络传输时被加密,并且在必要时被解密、解压缩、组合(例如,链接),并且在本地机器处被编译或解译(例如,到库、独立可执行文件等中),并且由本地机器执行。
指令1024可进一步利用数个传送协议中的任一个(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)经由网络接口装置1020使用传输媒体通过通信网络1026传输或接收。示例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通传统电话(POTS)网络和无线数据网络(例如,称为的电气电子工程师学会(IEEE)802.11系列标准、称为/>的IEEE 802.16系列标准)、IEEE 802.15.4系列标准、对等(P2P)网络等。在实例中,网络接口装置1020可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络1026。在实例中,网络接口装置1020可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个无线地通信。术语“传输媒体”应视为包含能够存储、编码或载送指令用于由机器1000执行的指令的任何无形媒体,且包含数字或模拟通信信号或用以促进这种软件的通信的其它无形媒体。传输媒体是机器可读媒体。
在前述说明书中,已描述本公开的一些示例实施方案。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和附图应被视为说明性的而非限制性的。下文为本公开的实施方案的实例的非穷尽性列表。
实例1包含主题(例如系统),其包括中介层和布置在所述中介层上的多个小芯片。所述中介层包含多个导电互连件,且所述多个小芯片经由所述中介层互连。每个小芯片包含裸片到裸片接口,其包含用以接合所述中介层的所述互连件的一或多个衬垫。至少一个小芯片包含多个输入-输出信道,所述多个输入-输出信道组织成至少一个列并按某一次序布置在所述小芯片的外围处,从而形成裸片到裸片接口以接合所述中介层的所述互连件,且所述列的所述信道的所述次序是可编程的。
在实例2中,根据实例1所述的主题任选地包含小芯片,其包含多个列,所述小芯片的所述列的所述信道可绑定在一起以形成包含多个组合式信道的信道接口。
在实例3中,根据实例2所述的主题任选地包含小芯片,其包含用于每个信道的可编程信道能力寄存器,所述信道能力寄存器包含信道绑定能力字段,其为位向量,指示所述信道支持跨所述位向量所指示的数目的信道的绑定。
在实例4中,根据实例2和3中的一者或两者所述的主题任选地包含小芯片,其包含用于每个信道的可编程信道配置寄存器,所述信道配置寄存器包含可写入绑定字段,用以指示要一起绑定成更宽的组合式信道接口的信道数目。
在实例5中,根据实例4所述的主题任选地包含信道配置寄存器,其包含可写入绑定字段,所述可写入绑定字段指示多个列中要一起绑定成跨越所述多个列的组合式信道接口的信道数目。
在实例6中,根据实例5所述的主题任选地包含小芯片,其中给所述小芯片的所述信道编号,并且将值X写入到所述信道配置寄存器中将第X信道与编号小于X的信道组合成所述组合式信道,其中X为大于一的正整数。
在实例7中,根据实例1至6中的一者或任何组合所述的主题任选地包含小芯片,其包含用于每个列的可编程列能力寄存器,所述列能力寄存器包含:列反转能力字段,可写入所述列反转能力字段以指示所述列的所述信道的所述次序是可反转的;并且其中所述小芯片的所述信道可一起成组为跨越多个列的信道。
在实例8中,根据实例7所述的主题任选地包含小芯片,其具有列能力寄存器,所述列能力寄存器包含多列反转能力字段,其为位向量,指示所述列支持跨所述位向量所指示的数目的列的多列反转。
在实例9中,根据实例7和8中的一者或两者所述的主题任选地包含小芯片,其包含用于每个列的列配置寄存器,所述列配置寄存器包含经配置以启用所述列的所述信道的所述次序的反转的列反转启用字段。
在实例10中,根据实例9所述的主题任选地包含列配置寄存器,所述列配置寄存器包含要反转列数目字段,其经配置以启用所述要反转列数目字段所指示的数目的列的反转。
在实例11中,根据实例10所述的主题任选地包含小芯片,其中给所述小芯片的所述列编号,并且将值N写入到所述要反转列数目字段反转所述小芯片的所述列和所述小芯片的N-1降低编号列的所述次序,其中N为大于一的正整数。
实例12包含主题(例如方法)或可任选地与实例1至11中的一者或任何组合进行组合以包含此主题,包括设定基于小芯片的系统的多个小芯片中的第一小芯片的列的信道的次序,其中所述多个小芯片中的一或多者包含布置在所述小芯片的外围处的字段可配置输入-输出信道;以及编程所述多个小芯片中的第二小芯片以将所述第二小芯片的列的信道的次序改变为匹配所述第一小芯片的所述列的信道的所述次序。
在实例13中,根据实例12所述的主题任选地包含读取所述第二小芯片的列的列能力寄存器以确定所述列的所述信道的所述次序是否可反转;以及对所述第二小芯片的所述列的列配置寄存器进行写入以反转所述列的所述信道的所述次序。
在实例14中,根据实例12和13中的一者或两者所述的主题任选地包含读取列的列能力寄存器以确定所述列是否支持多列反转;以及对列配置寄存器进行写入以反转所述第二小芯片的多个列的信道的次序从而匹配所述第一小芯片的多个列的信道的次序。
在实例15中,根据实例12至14中的一者或任何组合所述的主题任选地包含读取所述第二小芯片的所述列的信道的信道能力寄存器以确定所述信道是否支持与另一信道的绑定;以及对所述信道的信道配置寄存器进行写入,以将所述信道与所述第二小芯片的一或多个其它信道绑定成组合式信道接口。
在实例16中,根据实例15所述的主题任选地包含对所述第二小芯片的多个信道的信道配置寄存器进行写入,以将所述多个信道绑定成多个列中包含的组合式信道;以及对列配置寄存器进行写入,以反转所述多个列的信道的所述次序。
在实例17中,根据实例15和16中的一者或两者所述的主题任选地包含将值X写入到所述信道配置寄存器中将所述信道与X-1个其它信道组合成所述组合式信道,其中X为大于一的正整数。
实例18可包含主题(或可任选地与实例1至17中的一者或任何组合进行组合以包含此主题),例如包含指令的机器可读媒体,所述指令在由系统执行时使得所述系统执行包括以下各项的操作:设定所述系统的多个小芯片中的第一小芯片的列的信道的次序,其中所述多个小芯片中的一或多个小芯片包含在所述小芯片的外围处布置成一或多个列的输入-输出信道;以及将值写入到所述多个小芯片中的第二小芯片的列配置寄存器以反转所述第二小芯片的列的信道的次序从而匹配所述第一小芯片的所述列的信道的所述次序。
在实例19中,根据实例18所述的主题任选地包含机器可读媒体,其包含使得所述系统执行包含以下各项的操作的指令:将值写入到所述第一小芯片的信道配置寄存器以将所述第一小芯片的所述列的信道绑定成所述第一小芯片的组合式信道;以及将值写入到所述第二小芯片的信道配置寄存器以将所述第二小芯片的所述列的一或多个次序经反转信道绑定成所述第二小芯片的组合式信道,从而形成与所述第一小芯片的所述组合式信道的接口。
在实例20中,根据实例18和19中的一者或两者所述的主题任选地包含读取所述第二小芯片的列能力寄存器以确定所述列是否支持多列反转;以及将值写入到所述列配置寄存器以反转所述第二小芯片的多个列的信道的次序从而匹配所述第一小芯片的多个列的信道的次序。
实例21可包含主题(例如,存储器控制器小芯片)或可任选地与实例1至20中的一者或任何组合进行组合以包含此主题,包括支撑衬底,其包含小芯片物理接口,所述小芯片物理接口包含多个接触件,所述多个接触件间隔开且经配置以接合包含多个导电互连件的中介层上的相应导电互连件;以及处理电路系统,其包含支撑于所述衬底上的一或多个处理器,所述存储器控制器小芯片经配置以对存储器阵列执行存储器操作。所述小芯片接口包含组织成至少一个列且按所选次序的多个输入-输出信道,其中所述列的所述信道的所述次序是可编程的。
在实例22中,根据实例21所述的主题任选地包含小芯片,其包含多个列,所述小芯片的所述列的所述信道可绑定在一起以形成包含多个组合式信道的信道接口。
在实例23中,根据实例21和22中的一者或两者所述的主题任选地包含处理电路系统,其包括用于每个信道的可编程信道能力寄存器。
这些非限制性实例可以任何排列或组合进行组合。
Claims (23)
1.一种系统,其包括:
包含多个导电互连件的中介层;
布置在所述中介层上且经由所述中介层互连的多个小芯片,每个小芯片包含裸片到裸片接口,所述裸片到裸片接口包含用以接合所述中介层的所述互连件的一或多个衬垫;并且
其中至少一个小芯片包含组织成至少一个列且按某一次序布置在所述至少一个小芯片的外围处的多个输入-输出信道,从而形成用以接合所述中介层的所述互连件的所述裸片到裸片接口,其中所述列的所述输入-输出信道的所述次序是可编程的。
2.根据权利要求1所述的系统,其中所述至少一个小芯片包含多个列,并且其中所述小芯片的所述列的所述信道能绑定在一起以形成包含多个组合式信道的信道接口。
3.根据权利要求2所述的系统,其中所述至少一个小芯片包含用于每个信道的可编程信道能力寄存器,所述信道能力寄存器包含信道绑定能力字段,其为位向量,指示所述信道支持跨所述位向量所指示的数目的信道的绑定。
4.根据权利要求2所述的系统,其中所述至少一个小芯片包含用于每个信道的可编程信道配置寄存器,所述信道配置寄存器包含可写入绑定字段,用以指示要一起绑定成更宽的组合式信道接口的信道数目。
5.根据权利要求4所述的系统,其中所述可写入绑定字段指示多个列中要一起绑定成跨越所述多个列的组合式信道接口的信道数目。
6.根据权利要求5所述的系统,其中给所述至少一个小芯片的所述信道编号,并且将值X写入到所述信道配置寄存器中会将第X信道与编号小于X的信道组合成所述组合式信道,其中X为大于一的正整数。
7.根据权利要求1所述的系统,其中所述至少一个小芯片包含用于每个列的可编程列能力寄存器,所述列能力寄存器包含:
列反转能力字段,能写入所述列反转能力字段以指示所述列的所述信道的所述次序是可反转的;并且
其中所述小芯片的所述信道能一起成组为跨越多个列的信道。
8.根据权利要求7所述的系统,其中所述列能力寄存器包含多列反转能力字段,其为位向量,指示所述列支持跨所述位向量所指示的数目的列的多列反转。
9.根据权利要求7所述的系统,其中所述至少一个小芯片包含用于每个列的列配置寄存器,所述列配置寄存器包含经配置以启用所述列的所述信道的所述次序的反转的列反转启用字段。
10.根据权利要求9所述的系统,其中所述列配置寄存器包含要反转列数目字段,其经配置以启用所述要反转列数目字段所指示的数目的列的反转。
11.根据权利要求10所述的系统,其中给所述至少一个小芯片的所述列编号,并且将值N写入到所述要反转列数目字段反转所述小芯片的所述列和所述小芯片的N-1降低编号列的所述次序,其中N为大于一的正整数。
12.一种方法,其包括:
设定基于小芯片的系统的多个小芯片中的第一小芯片的列的输入-输出信道的次序,其中所述多个小芯片中的一或多者包含布置在所述小芯片的外围处的字段可配置输入-输出信道;以及
编程所述多个小芯片中的第二小芯片以将所述第二小芯片的列的输入-输出信道的次序改变为匹配所述第一小芯片的所述列的输入-输出信道的所述次序。
13.根据权利要求12所述的方法,其中所述改变所述第二小芯片的列的输入-输出信道的所述次序包含:
读取所述第二小芯片的列的列能力寄存器以确定所述列的所述输入-输出信道的所述次序是否可反转;以及
对所述第二小芯片的所述列的列配置寄存器进行写入以反转所述列的所述输入-输出信道的所述次序。
14.根据权利要求12所述的方法,其中所述改变所述第二小芯片的所述列的输入-输出信道的所述次序包含:
读取列的列能力寄存器以确定所述列是否支持多列反转;以及
对列配置寄存器进行写入以反转所述第二小芯片的多个列的输入-输出信道的次序从而匹配所述第一小芯片的多个列的输入-输出信道的次序。
15.根据权利要求12所述的方法,其中所述编程所述第二小芯片包含:
读取所述第二小芯片的所述列的信道的信道能力寄存器以确定所述信道是否支持与另一信道的绑定;以及
对所述信道的信道配置寄存器进行写入,以将所述信道与所述第二小芯片的一或多个其它信道绑定成组合式信道接口。
16.根据权利要求15所述的方法,其中所述编程所述第二小芯片包含:
对所述第二小芯片的多个信道的信道配置寄存器进行写入,以将所述多个信道绑定成多个列中包含的组合式信道;以及
对列配置寄存器进行写入,以反转所述多个列的信道的所述次序。
17.根据权利要求15所述的方法,其中将值X写入到所述信道配置寄存器中会将所述信道与X-1个其它信道组合成所述组合式信道,其中X为大于一的正整数。
18.一种包含指令的非暂时性机器可读媒体,所述指令在由系统执行时使得所述系统执行包括以下各项的操作:
设定所述系统的多个小芯片中的第一小芯片的列的信道的次序,其中所述多个小芯片中的一或多个小芯片包含在所述小芯片的外围处布置成一或多个列的输入-输出信道;以及
将值写入到所述多个小芯片中的第二小芯片的列配置寄存器以反转所述第二小芯片的列的信道的次序从而匹配所述第一小芯片的所述列的信道的所述次序。
19.根据权利要求18所述的非暂时性机器可读媒体,其包含使得所述系统执行包含以下各项的操作的指令:
将值写入到所述第一小芯片的信道配置寄存器以将所述第一小芯片的所述列的信道绑定成所述第一小芯片的组合式信道;以及
将值写入到所述第二小芯片的信道配置寄存器以将所述第二小芯片的所述列的一或多个次序经反转信道绑定成所述第二小芯片的组合式信道,从而形成与所述第一小芯片的所述组合式信道的接口。
20.根据权利要求18所述的非暂时性机器可读媒体,其包含使得所述系统执行包含以下各项的操作的指令:
读取所述第二小芯片的列能力寄存器以确定所述列是否支持多列反转;以及
将值写入到所述列配置寄存器以反转所述第二小芯片的多个列的信道的次序从而匹配所述第一小芯片的多个列的信道的次序。
21.一种存储器控制器小芯片,其包括:
支撑衬底,其包含小芯片物理接口,所述小芯片物理接口包含多个接触件,所述多个接触件间隔开且经配置以接合包含多个导电互连件的中介层上的相应导电互连件;
处理电路系统,其包含支撑于所述衬底上的一或多个处理器,所述存储器控制器小芯片经配置以对存储器阵列执行存储器操作;并且
其中所述小芯片接口包含组织成至少一个列且按所选次序的多个输入-输出信道,其中所述列的所述信道的所述次序是可编程的。
22.根据权利要求21所述的存储器控制器小芯片,其中所述小芯片包含多个列,并且其中所述小芯片的所述列的所述信道能绑定在一起以形成包含多个组合式信道的信道接口。
23.根据权利要求21所述的存储器控制器小芯片,其中所述处理电路系统包括用于每个信道的可编程信道能力寄存器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/007,876 US11488643B2 (en) | 2020-08-31 | 2020-08-31 | Method for configuring multiple input-output channels |
US17/007,876 | 2020-08-31 | ||
PCT/US2021/039786 WO2022046284A1 (en) | 2020-08-31 | 2021-06-30 | Method for configuring multiple input-output channels |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116324753A true CN116324753A (zh) | 2023-06-23 |
Family
ID=80353688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180064746.7A Pending CN116324753A (zh) | 2020-08-31 | 2021-06-30 | 用于配置多个输入-输出信道的方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11488643B2 (zh) |
CN (1) | CN116324753A (zh) |
WO (1) | WO2022046284A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270708A1 (en) | 2007-04-30 | 2008-10-30 | Craig Warner | System and Method for Achieving Cache Coherency Within Multiprocessor Computer System |
KR20140024593A (ko) * | 2012-08-20 | 2014-03-03 | 에스케이하이닉스 주식회사 | 시스템 패키지 |
KR20160143014A (ko) | 2015-06-04 | 2016-12-14 | 에스케이하이닉스 주식회사 | 메모리 칩 및 이를 포함하는 적층형 반도체 장치 |
KR102512017B1 (ko) | 2016-10-07 | 2023-03-17 | 엑셀시스 코포레이션 | 직접-접합된 네이티브 상호접속부 및 능동 베이스 다이 |
US10915271B2 (en) | 2018-01-29 | 2021-02-09 | Micron Technology, Inc. | Memory controller with programmable atomic operations |
US10528513B1 (en) * | 2018-04-30 | 2020-01-07 | Xilinx, Inc. | Circuit for and method of providing a programmable connector of an integrated circuit device |
US10700046B2 (en) | 2018-08-07 | 2020-06-30 | Bae Systems Information And Electronic Systems Integration Inc. | Multi-chip hybrid system-in-package for providing interoperability and other enhanced features to high complexity integrated circuits |
US11610862B2 (en) | 2018-09-28 | 2023-03-21 | Intel Corporation | Semiconductor packages with chiplets coupled to a memory device |
US10707169B1 (en) | 2018-12-28 | 2020-07-07 | Intel Corporation | Ceramic interposers for on-die interconnects |
-
2020
- 2020-08-31 US US17/007,876 patent/US11488643B2/en active Active
-
2021
- 2021-06-30 CN CN202180064746.7A patent/CN116324753A/zh active Pending
- 2021-06-30 WO PCT/US2021/039786 patent/WO2022046284A1/en active Application Filing
-
2022
- 2022-10-07 US US17/962,253 patent/US20230033822A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230033822A1 (en) | 2023-02-02 |
US11488643B2 (en) | 2022-11-01 |
WO2022046284A1 (en) | 2022-03-03 |
US20220068324A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11777864B2 (en) | Transparent packet splitting and recombining | |
CN114385250B (zh) | 小芯片系统内的小芯片i/o信道的初始化定序 | |
CN116325690A (zh) | 用于对多个元素进行编码的单个字段 | |
CN116235487A (zh) | 多协议标头处理 | |
CN114385240A (zh) | 组织可编程原子单元指令存储器的方法 | |
US11797311B2 (en) | Asynchronous pipeline merging using long vector arbitration | |
CN116636189A (zh) | 用于网络装置中的缓冲包的包仲裁 | |
CN114385241A (zh) | 完成可编程原子事务的方法 | |
US11868300B2 (en) | Deferred communications over a synchronous interface | |
CN116261849A (zh) | 组合写入启用掩码和信用返回字段 | |
CN116324747A (zh) | 基于每个分组中的路径信息类型进行数据分组的有序传递 | |
CN116325693A (zh) | 基于分组的网络中的可选路径排序 | |
CN114385236A (zh) | 传递可编程原子操作符到存储器控制器 | |
CN114385237B (zh) | 用于低时延寄存器错误校正的方法和设备及机器可读介质 | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
CN114385538B (zh) | 电路中的管线合并 | |
US20220121612A1 (en) | Static identifiers for a synchronous interface | |
CN116529721A (zh) | 按需可编程原子内核加载 | |
CN116685942A (zh) | 在处理器中重用飞行中寄存器数据 | |
CN116569156A (zh) | 同步接口的有效负载奇偶校验保护 | |
US11488643B2 (en) | Method for configuring multiple input-output channels | |
CN116635824A (zh) | 桶式处理器中的线程调度控制及存储器分割 | |
CN116569151A (zh) | 多通道存储器系统 | |
CN114385239A (zh) | 桶式处理器中的线程执行控制 | |
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 |