CN115885344A - 用于确定性处理器的确定性近计算存储器以及存储器单元与处理单元之间的增强数据移动 - Google Patents

用于确定性处理器的确定性近计算存储器以及存储器单元与处理单元之间的增强数据移动 Download PDF

Info

Publication number
CN115885344A
CN115885344A CN202180050028.4A CN202180050028A CN115885344A CN 115885344 A CN115885344 A CN 115885344A CN 202180050028 A CN202180050028 A CN 202180050028A CN 115885344 A CN115885344 A CN 115885344A
Authority
CN
China
Prior art keywords
memory
deterministic
data
processor
computation
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
Application number
CN202180050028.4A
Other languages
English (en)
Inventor
迪内希·马赫什瓦里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Groq Inc
Original Assignee
Groq Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Groq Inc filed Critical Groq Inc
Publication of CN115885344A publication Critical patent/CN115885344A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

一种确定性装置,包括:与确定性处理器通信上耦接并接近确定性处理器的确定性近计算存储器。确定性近计算存储器包括多个数据存储体,多个数据存储体具有用于每个数据存储体的全局存储器地址空间、控制总线、数据输入总线和数据输出总线。确定性处理器被配置成经由控制总线发起对多个数据存储体中数据集的检索。检索到的数据集包括经由数据输出总线传递到确定性处理器的多个流寄存器上的数据存储体中选定数据存储体的至少一行。

Description

用于确定性处理器的确定性近计算存储器以及存储器单元与 处理单元之间的增强数据移动
相关申请的交叉引用
本申请要求2020年6月16日提交的题为“System and Method for Enhanced DataMovement between Memory Devices and Processing Devices”的美国临时专利申请序列号63/039,982以及2020年7月2日提交的题为“Deterministic,High Density,HighBandwidth,Near-Compute Memory for Deterministic Processor”的美国临时专利申请序列号63/047,800的权益和优先权,这两个美国临时专利申请在此通过引用整体并入。
技术领域
本公开内容总体上涉及计算机处理器和存储器结构,并且更具体地,涉及用于确定性处理器的确定性近计算存储器以及存储器单元与处理单元之间的增强数据移动。
背景技术
深度学习模型现在可以识别图像,理解自然语言,玩游戏,并使系统决策(例如,设备放置和索引)自动化。张量算子例如矩阵乘法和高维卷积是深度学习模型的基本构建块。大型机器学习和高性能计算任务需要大量的计算存储器带宽和计算存储器密度。然而,就功耗而言,以高代价才达到这种存储器容量。需要更高效的存储器子系统。
当前的中央处理单元(CPU)和图形处理单元(GPU)架构不是确定性的,并且使用无序(OOO)、推测执行和其他技术来努力改进性能。广义地说,推测执行是一种执行模型,在这种执行模型中指令可以被取出并进入流水线,并且甚至在甚至不确定知道它们将确实需要执行(根据程序的控制流)的情况下开始执行。该术语也通常用于特指流水线的执行阶段中的推测执行。
另一方面,OOO执行是一种执行模型,在该执行模型中指令可以按可能不同于程序顺序的顺序执行。然而,指令仍然按程序顺序重试,使得程序的观察到的行为与由程序员直观预期的行为相同。这反过来需要与计算单元访问时间兼容和具有高位密度的存储器子系统以支持大的工作负载。
这种存储器子系统包括支持高随机存取的静态随机存取存储器(SRAM)高速缓存(例如,L1和L2)以及支持具有高带宽的大状态空间(即,存储容量)以填充高速缓存的大型动态随机存取存储器(DRAM)存储器的层次结构。对于大型任务,当状态空间被交换到高速缓存中时,主存储器的带宽成为限制因素。
DRAM存储器是随机事务速率(RTR)存储器的实施方式之一。包括RTR存储器的以下公开内容将被理解为DRAM和其他RTR类型的存储器。
RTR表示可以在存储器子系统上执行的完全随机存储器访问(读取或写入)的数目,并且与对于事务正在访问的位数(事务位宽)无关。RTR将以每秒百万个事务或MT/s来测量。
传统CPU/GPU存储器子系统要求如下:(a)具有L1高速缓存的高RTR高速缓存,其与计算单元访问时间兼容;(b)用于任务状态空间的高位密度主存储器;(c)从主存储器到高速缓存存储器的高带宽;(d)低每位成本的主存储器,其可扩展到可变量的存储器。在图(FIG.)1和图2中示出了传统的CPU/GPU存储器层次结构。依赖于多级高速缓存的分层存储器子系统本质上效率很低。
DRAM存储器的演进已经是对上述要求的响应。重点已经是在每包每位的低成本下的大密度,其中每一代CPU高速缓存的密度和带宽都在增加。然而,在过去几十年中,RTR大概保持相同——约50ns(即20MHz的访问频率)。
DRAM被组织成对于每个芯片的许多存储体。在任何时候都只有一定数目的存储体可以活动。在每个存储体中,核大约每50ns(或以20MHz的访问频率)访问被锁存到锁存读出放大器中的大的行,例如(1至8)KB。由读出放大器的相关列访问的寻址字以例如200MHz至500MHz锁存到芯片数据缓冲器中。然后,该字以高得多的频率例如今天的1.6GHz至3.2GHz从较窄的芯片数据总线流出。
机器学习模型变得越来越大,并且工作负载在权重和工作状态方面越来越需要大的状态空间。对于自然语言处理(NLP)、推荐模型、语言翻译和其他类似的模型,随着模型大小的增加,运算强度似乎饱和(收敛到恒定的值)。
相比之下,对于计算机视觉(CV)模型,随着模型大小的增加,运算强度保持增加(因为计算要求保持增加)。算术强度(也被称为运算强度)是总浮点运算(由给定的内核或应用执行的运算数目)与存储器流量(在内核或应用的执行期间发生的存储器传输的字节数目)的比率。
因此,对存储器子系统的要求是高存储器容量和存储器的高带宽,以与在合理时间内完成这些任务所需的高计算密度平衡。
发明内容
张量流处理器(TSP)架构是确定性的,并且因此存储器访问也是确定性的。考虑到由TSP架构实现的空前的计算密度,对于机器学习(ML)模型的必要操作强度,TSP架构还支持空前的存储器带宽。
作为单核架构,TSP设备支持极高带宽的芯片范围数据路径,其允许芯片中的所有计算元件直接访问全局存储器空间,而无需高速缓存层次结构。
TSP被独特地定位成能够使用动态随机存取存储器(DRAM)、磁阻随机存取存储器(MRAM)、或非闪速存储器等作为近计算存储器,以在没有高速缓存层次结构的情况下直接进行计算。
考虑到TSP存储器访问的简单要求,通过使用DRAM作为近计算存储器,TSP架构能够简化DRAM架构,同时相对于现有DRAM架构改进DRAM的带宽、并发性、功率和每位成本。
与现有的占主导地位的商用图形处理单元(GPU)相比,TSP已经证明每个晶体管的计算密度更好了约七倍,并且显著改进了存储器带宽。
平衡这样的大型任务的存储器容量与高计算密度(例如TSP架构的计算密度)建议使用高密度存储器(例如DRAM)作为优选计算存储器。
然而,确定性的TSP架构唯一地允许使用诸如DRAM的存储器(以及甚至诸如MRAM、或非闪速存储器等的慢速非易失性存储器(NVM)),其在随机存取方面慢得多,但是确实能够以低得多的位成本实现极高的每器件密度,以用作近计算存储器。这再加上TSP架构的高带宽全局数据路径与堆叠技术相匹配允许将高密度存储器(例如DRAM)直接耦接至TSP单核中的计算单元。结果是极高密度的计算引擎耦接至具有极高带宽数据路径的极高密度的近计算存储器,从而实现在计算密度、存储器带宽和存储器密度方面平衡的设备。这允许使用数量明显较少的设备来完成大型任务,从而导致显著较小的附件(例如主机处理器、存储装置、联网、功率子系统等)的使用和相应较低的能量消耗。
由于许多现代高性能精简指令集计算机(RISC)、复杂指令集计算机(CISC)和图形处理单元(GPU)架构是不确定性的,因此它们不能直接使用DRAM,原因是有效随机事务速率(RTR)太慢(例如,对应于40ns的行周期时间(tRC)的约25M RTR/s)——这些架构需要高速缓存层次结构,其中高速缓存提供所需的RTR。此外,由于这些竞争架构使用大量核,并且没有像TSP那样的高带宽全局数据路径,因此它们不能使用高带宽堆叠技术来访问作为全局可寻址空间的DRAM。全局数据路径意味着切换网络基本上专门位于处理器管芯上。全局可寻址空间意味着处理器可以全局访问每个存储器地址,而不管数据被存储在哪个存储体中。
因此,现有技术的RISC、CISC和GPU架构可以针对每个核仅使用一组存储体,而不能作为全局存储器。此外,因为现有技术的DRAM RTR太低,所以DRAM存储体不能用作层次结构中的本地高速缓存。
一个实施方式涉及确定性处理器和确定性近计算存储器。通过示例的方式,确定性近计算存储器与单核确定性TSP通信上耦接,并被放置在距离单核确定性TSP的限定邻近区域内。确定性近计算存储器包括多个数据存储体,多个数据存储体具有用于每个存储体的全局存储器地址空间、控制总线、数据输入总线和数据输出总线。确定性处理器(例如,单核确定性TSP)被配置成经由控制总线发起对多个数据存储体中数据集的检索。检索到的数据集包括经由数据输出总线传递到确定性处理器的多个流寄存器上的数据存储体中选定数据存储体的至少一行。
另一实施方式涉及一种近计算存储器设备,该近计算存储器设备包括多个存储器存储体,每个存储器存储体具有用于存储数据的多个行。每个存储器存储体能够由处理器(例如,单核确定性TSP)独立且并发地寻址,以用于将第一数据写入到多个存储器存储体的第一选定存储体中的选定行,以及用于从多个存储器存储体的第二选定存储体中的选定行读取第二数据。在需要第二数据到达处理器的一个或更多个计算元件之前的预定时间段读取第二数据,并且在第一选定存储体的已知刷新之前或之后写入第一数据。
在一个实施方式中,本公开内容还涉及一种使用耦接至确定性近计算存储器的至少一个确定性处理器进行确定性计算的方法,该方法包括:将据集存储在确定性近计算存储器的多个数据存储体中,多个数据存储体具有用于每个数据存储体的全局存储器地址空间、控制总线、数据输入总线和数据输出总线;以及经由控制总线发起使用全局存储器地址对多个数据存储体中数据集的检索,检索到的数据集包括经由数据输出总线传递到确定性处理器的多个流寄存器上的数据存储体中选定数据存储体的至少一行。
本公开内容还涉及一种用于布置处理器和存储器集成电路的接口连接和组装关系以实现设备之间的增强数据通信的方法。本公开内容还提供了用于减少当使用其他组装方法时由于信号在电路之间长距离传输而导致的信号完整性劣化的方法。本公开内容促进了对高密度存储器的高带宽访问。
附图说明
图(FIG.)1描绘了计算机系统的现有技术典型中央处理单元/通用单元(CPU/GPU)存储器层次结构。
图2示出了在商业中使用的具有大量核的计算机系统的现有技术典型CPU/GPU存储器层次结构。
图3A示出了常规芯片的核的二维(2D)网格。
图3B示出了根据一些实施方式的张量流处理器(TSP)中的区块的功能切片布置。
图4描绘了根据一些实施方式的TSP中的片上网络中的行内的组织和数据流动。
图5示出了根据一些实施方式的Groq TSP的14nm ASIC实现的管芯照片。
图6描绘了根据一些实施方式的Groq TSP的流寄存器,其被编号以示出其在超通道内的功能切片之间的位置。
图7示出了根据一些实施方式的Groq TSP的超通道内的交错指令执行和数据流动。
图8描绘了根据一些实施方式的使用Groq TSP的硅通孔(TSV)连接两个TSP芯片的片外近计算存储器的面对面(F2F)实施方式。
图9A示出了根据一些实施方式的使用二维半(2.5D)配置中的无源中介层连接至片外近计算动态随机存取存储器(DRAM)的单个Groq TSP芯片。
图9B示出了根据一些实施方式的使用2.5D配置中的无源中介层连接至片外近计算DRAM的多个Groq TSP芯片。
图10A示出了根据一些实施方式的使用三维(3D)配置中的有源中介层连接至片外近计算DRAM的单个Groq TSP芯片。
图10B示出了根据一些实施方式的使用3D配置中的有源中介层连接至片外近计算DRAM的多个Groq TSP芯片。
图11A描绘了现有技术DRAM架构。
图11B示出了根据一些实施方式的Groq TSP芯片的专有DRAM架构,其被配置成用于同时对DRAM的多个存储体进行并发全局访问。
图12描绘了根据一些实施方式的TSP芯片中的交换执行模块(SXM),其提供可以使用选择命令组合的北(上)和南(下)移位操作的组合。
图13示出了根据一些实施方式的与TSP配置的另一实施方式兼容使用的DRAM架构。
图14描绘了根据一些实施方式的从TSP芯片经由数据输入/输出(I/O)子系统配置的多个引脚对DRAM核的全局访问。
图15是示出根据一些实施方式的被布置成适合于多芯片模块(MCM)封装的集成处理器管芯实例的示例,其中处理器管芯实例与存储器管芯面对面组装。
图16是示出根据一些实施方式的使用至少一个处理器进行确定性计算的方法的流程图,所述至少一个处理器包括耦接至片外确定性近计算存储器单元的单核确定性TSP。
图17A是根据一些实施方式的适合于使得所要求保护的公开内容的实施方式能够在商业中使用的计算机系统的示例抽象图。
图17B是根据一些实施方式的适合于使得所要求保护的公开内容的实施方式能够在商业中使用的计算机系统的另一抽象图。
图18示出了根据在商业中使用的所要求保护的公开内容的一个实施方式的示例机器学习处理器。
附图仅出于说明目的描绘了本公开内容的实施方式。本领域技术人员将从以下描述中容易地认识到,在不脱离本文中描述的本公开内容的原理或所指出的益处的情况下,可以采用本文中示出的结构和方法的替选实施方式。
具体实施方式
仅为了提供知识和理解,附图和具体实施方式表示至少一个实施方式。为了使具体实施方式的长度最小化,虽然各种特征、结构或特性可以在单个实施方式中一起描述,但是它们也可以在没有被写到的其他实施方式中使用。由这样的实施方式和/或示例公开的这些元件和模块、过程、机器、系统、制造或组成中的任一个的变型都容易在商业中使用。附图和具体实施方式隐含地或明确地表示了在商业中使用的至少一个实施方式的优点和改进。
在附图和具体实施方式中,可以描述许多具体细节,以实现至少一个实施方式。本文中公开的任何实施方式表示所要求保护的公开内容的有形形式。为了不降低该具体实施方式中的实施方式和/或示例的重要性,为了呈现和说明的目的,可以组合和不详细说明本领域技术人员已知的一些元件。为了不降低这些实施方式和/或示例的重要性,一些公知的过程、机器、系统、制造或组成没有详细写到。然而,技术人员可以在没有这些具体细节或其等同物的情况下在商业中使用这些实施方式和/或示例。因此,具体实施方式集中于实现任何实施方式的发明要素。在该具体实施方式以单数形式提及一些元件的情况下,在附图中可以描绘多于一个元件,并且相同的元件用相同的附图标记来标记。
根据本公开内容的实施方式,处理器平面包括可从加利福尼亚州,山景城的Groq公司购得的Groq张量流处理器(TSP)。应当理解,尽管本文中描述的许多实施方式使用TSP作为优选处理器,但是在商业应用中也可以使用其他确定性处理器。图3A示出了常规芯片的核的2D网格。图3B示出了根据一些实施方式的Groq TSP中的区块的功能切片布置。
Groq TSP使用平铺的微架构,该微架构允许编译器将向量大小缩放至它们表示的基本张量形状。张量计算使用流处理模型来执行,其中计算元件按函数在空间上进行布置,以利用张量流过时的数据流动局部性。这种新颖的方法实现了比现有技术的图形处理单元(GPU)显著更好的性能,其中使用一个批量大小每秒20.4K样本图像(IPS)的初始ResNet-50图像分类结果——与其他商用现代GPU和加速器相比提高了大约四倍。
ResNet-50是用于卷积神经网络(CNN或ConvNet)的图像分类的预训练深度学习模型,卷积神经网络是一类最适用于分析视觉图象的深度神经网络。ResNet-50有50层深,并且在来自ImageNet数据库的1000个类别的百万个图像上进行训练。此外,该模型具有超过23百万个可训练参数,这表明了使其更好用于图像识别的深度架构。
某些核架构元件将Groq TSP设置为与GPU和加速器分开。如图3A中所示,在常规的芯片多处理器(CMP)中,每个“区块”是使用片上网络互连以在核之间交换数据的独立的核。指令执行在几个阶段上进行:(i)指令取出(IF),(ii)指令解码(ID),(iii)在算术逻辑单元(ALU)上执行(EX),(iv)存储器访问(MEM),以及(v)写回(WB)以更新通用寄存器(GPR)中的结果。
如图3B中所示,与常规多核相比,在常规多核中每个区块是功能单元的异质集合,但是为全局同质的,Groq TSP将其转化为具有局部功能同质性,但是在整个芯片内的(全局)异质性。
更具体而言,TSP将图3A中的核的同质二维(2D)网格重组为图3B中所示的功能切片微架构。在这种方法中,每个区块实现特定的功能,并且在2D片上网格的Y维上被垂直堆叠成特定的“切片”。TSP根据它们各自的功能分解图3A中的核的基本元件:指令控制和调度(例如,经由指令控制单元(ICU))、存储器(MEM)、整数(INT)算术、浮点单元(FPU)算术和网络(NET)接口,如由在图3B的顶部的切片标签所示。2D片上网格的每一行包含所有功能切片的截面(参见图4)。
在该组织中,每个功能切片由特定于其片上作用的指令序列独立控制。例如,MEM切片支持读和写,但不一定支持加法或乘法,对于一些典型的机器学习(ML)算法例如线性回归算法,加法或乘法通常在算术功能切片(例如,向量执行模块(VXM)和矩阵执行模块(MXM)切片)中执行。
所有功能切片的区块执行相同的指令流——单指令多数据(SIMD)指令。因此,公共指令解码和调度逻辑可以被分解成它自己的区块(即,ICU),并且将正常的指令执行流水线分解成两个区域:(i)指令取出、解码和打包,以及(ii)操作数读取、执行和写回。这种方法将存储器子系统与检索其操作数和存放结果的功能单元分离。
在一个实施方式中,每个功能切片实现跨越每个切片的区块的20级向量流水线,其中每个区块产生320元素最大向量长度的16个元素。当数据流动经过不同的功能类型时,这种组织自然地分解垂直维度上的指令流动以及水平维度上的数据流动。利用这种处理器组织,指令执行由不同的区块来进行:当(垂直流动)调度的指令与调度的指令正在其上操作的(水平流动)操作数数据相交时,在ICU中的指令取出和解码,以及在功能切片的每个区块处的操作数解码、执行和写回。应当理解,对“垂直”和“水平”或“北”、“南”、“东”和“西”的引用是结合附图中所示的图示来使用的,是仅旨在帮助读者的抽象,并且不应被推断为技术限制。并行通道和流
每个切片的SIMD执行的数据并行性经由被称为并行通道的编程抽象来提供。这些并行通道对应于数据向量的元素、许多ML框架(例如TensorFlow)共有的抽象。
在Groq TSP模型中,指令从ICU向北流向功能切片,而数据(操作数和结果)主要在功能切片之间向东和向西流动。向量内的任何通道间数据移动都使用片上网络切片。
如图3和图5中所示,片上网络被实现为具有X-Y-X维度顺序路由的区块的X维度网格和Y维度网格。
每个指令指定第一跳方向(东或西),因此存储器指令语义具有地址和数据流动方向二者(参见图4)。流通过MEM在X维度上路由,并使用SXM的排列器和通道移位器在Y维度上路由以垂直移动数据元素。SXM的排列器实现了排列函数,该排列函数是当布置的顺序很重要时确定集合中的可能布置的数目的数学技术。常见的数学问题涉及以一定顺序从项集合中选择仅几个项。
MEM和SXM分别由于流数据在X维度和Y维度上流动而提供了流数据的确定性路由。利用Groq TSP架构,功能切片以生产者消费者的方式与数据的流交互。也就是说,它们消耗来自流的操作数,并产生结果到(可能不同的)流上,如组装线操作符(功能切片)和传送带(流)。
从概念上讲,功能切片是固定的,并且数据跨处理元件流动,如图4中所示。当数据流过切片时,每个功能单元可以可选地拦截数据操作数并计算结果(如果功能单元是如算术逻辑单元(ALU)的处理元件),或者如果功能单元是切换元件,则可以在网络上的通道之间移动数据。
流提供了编程抽象,并且是数据在功能切片之间流动的管道。与GPR不同,功能切片在跨芯片向东或向西(水平)流动的并行数据的流上操作。携带操作数的水平流动的流拦截垂直(向北)流动的指令(参见图4),以在功能切片上的计算单元处执行计算。编译器精确地维护芯片的架构状态,并使用该知识来确保指令正确地拦截其流操作数。
流是在硬件上通过芯片范围的流寄存器文件(SR)实现的。它们在架构上是可见的,并在切片之间传输操作数和结果。常见的软件模式涉及从一个或更多个MEM切片中读取操作数数据,然后,随后由下游算术切片消耗并对该操作数数据进行操作。然后,将运算的结果产生到另一个流上,使得可以将它们写回到存储器或传递到后续的计算单元。例如,Z=X+Y运算可能需要四条指令:读S1、X和读S2、Y在两个MEM切片上执行,并向内指向ALU切片,以执行加法S1、S2、S3。最后,结果经由写S3,Z存储回到存储器。流表示N个元素的集合,其由每个功能切片以SIMD方式操作。
GROQ TSP架构概述
Groq TSP架构在硬件软件接口上做出了一些深思熟虑的权衡,将与调度相关联的复杂性推到编译器中。具体来说,编译器需要精确地调度指令,以正确和效率高地使用硬件。有时,这可能涉及选择可以在硬件上实现算法或元运算的几种方法中的一种。消除了多问题执行单元的动态指令调度的控制复杂性使ICU是相对小的,占不到芯片面积的3%。
编译器访问覆盖在TSP框图(参见图5)上的320个通道编程抽象,其中片上网格中的每个区块以SIMD方式对16个通道进行操作。16个通道的单元可以被称为“超通道”,其是在芯片上所有功能切片的截面和计算的最小粒度。因此,超通道表示16个元素的架构的最小向量长度,minVL。同样地,形成功能切片的20个区块的垂直组合(参见图5)产生20x16=320个元素的最大向量长度,maxVL。
编译器访问在芯片上的144个独立的指令队列(即ICU):(a)包括两个独立的2DMAC(多重累积)阵列的向西MXM的6个;(b)用于通过重新布置向量元素进行超通道内和通道间切换的向西SXM的14个;(c)包括静态随机存取存储器(SRAM)的44个并行存储器切片的向西MEM的44个;(d)每个通道包括16个向量ALU的VXM的16个;(e)向东MEM——包括SRAM的44个并行存储器切片的44个;(f)向东SXM的14个;以及(g)包括两个独立的2D MAC阵列的向东MXM的6个,而每个指令队列每个周期可以发出一个或更多个指令,并且编译器对每个指令队列中的程序顺序具有显式控制。
编译器访问每个通道的64个逻辑流。例如,需要32个逻辑流来对每个通道的16minVL进行操作,以用于以32条流向东和32条流向西移动芯片上的操作数或结果,如图4中所示。
编译器访问全局共享SRAM的220兆字节,该SRAM递送每个通道32个字节的流带宽和对模型参数的低时延访问。例如,MEM可以读取,并且MXM可以在小于40个周期内将400K权重安装到所有4个320x320阵列中,包括SRAM和片上网络传输延迟。
流由标识符(0、…、31)和方向二者指定,例如,in(28)指定流28向内,而out(24)是朝向芯片的外部边缘的流24。流的方向可以指定为向内(朝向芯片平分)或向外(朝向芯片的外部边缘),或者可以将方向指定为向东或向西,如图4和图6中所示。
如图4中所示,在空间上组织超通道的组件。TSP的指令集架构(ISA)定义了跨越五个不同功能区域的指令。由MEM切片呈现的分区全局地址空间(PGAS)为向量提供了存储器语义,以将从SRAM寻址并以朝向功能切片的数据流动的方向加载到架构上可见的流中,旨在对它们进行操作。
第一功能区域(即ICU)提供了利用IFetch指令的显式指令取出、以及使用Sync指令和Notify指令执行参与的功能切片之间的芯片范围的屏障同步的切片间同步。重复NOP(no-op)指令允许精确地逐周期控制指令间延迟;例如,当使用中间NOP调度两个运算A和B时,编译器具有周期准确的控制,使得N个周期将它们分开,例如,OpA NOP(N)OpB。
第二功能区域(即VXM)由用于逐点算术运算的每个通道中的ALU的4x4网格组成。
第三功能区域(即MXM)由对例如INT8或FP16数据类型进行操作的四个独立的2DMAC阵列组成。
片上数据移动将第四功能区域(即SXM)用于通过重新布置向量元素进行超通道内和通道间切换。SXM类似于图3中的用于在核之间进行通信的NET接口。MEM和SXM一起协同工作,以形成片上网络的X-Y维度。
第五功能区域(即片上MEM模块的东半球和西半球)包括SRAM的44个并行切片,并且提供充分利用每个东或西方向上的32条流所需的存储器访问并发性。每个切片提供13位的16字节存储器字的物理寻址,对于片上SRAM的总共220兆字节,每个字节映射到通道。
另外的第六功能区域包括芯片到芯片(C2C)模块,所述模块被配置成提供用于在一对芯片之间交换320字节向量的发送和接收原语。第一TSP实现(参见图5)具有在30Gbps下操作的总共16x 4个链路,每个针对片外引脚带宽的16 x 4x 30Gbps x 2方向=3.84Tb/s(每秒太字节)的总片外带宽,其可以灵活划分以支持大规模系统的TSP的高半径互连网络。在该模块中还处理外围组件快速互连(PCIe)Gen4的主机接口。主机接口提供了轻量级的直接存储器访问(DMA)引擎以将模型安放到TSP存储器上,并为启动模型执行提供了入口点。主机接口还提供了用于向主机传递中断的通用机制,例如,如果观察到多位存储器错误,则这可能是必要的。
表I
每个功能切片的指令的总结。
Figure BPA0000334554370000121
/>
Figure BPA0000334554370000131
/>
Figure BPA0000334554370000141
在不同的功能切片上执行的指令序列可以被链接以创建更复杂的动作,而不需要将中间结果写回到存储器。这允许在全带宽和最低时延下高效处理流。
并行流编程模型
机器学习算法通常对具有指定数据类型(例如,INT8、FP16等)的系数的向量进行操作。这些向量可以被解释为对底层数据的抽象,其元素可以通过相同的运算以SIMD方式进行处理。Groq TSP对有时被组织成2阶张量的向量进行操作,并依赖于降低图形编译器将较高阶张量变换为2阶张量。
Groq TSP的编程模型是生产者消费者模型,其中每个功能切片用作一个或更多个流的消费者和生产者。当从主存储器读取向量时,给向量提供流标识符(0、…、31)和方向:向东或向西。一旦向量被读取到流寄存器中,它就是流,并在以下意义上在给定方向上“流动”:给定在坐标x0,x1,x2(其中空间坐标在流动方向上增加)处的空间相邻的功能切片,然后在给定时间ti处,表示切片x1处的流s1的向量可以作为操作数由该切片访问。类似地,在x0和x2处的切片将访问相同的流寄存器的不同的流值。在接下来的周期ti+1中,值s1要么传播到x2处的功能切片,要么值s1用周期t处的由x1处的切片产生的结果r1重写。类似地,存在以在时间ti处要由坐标x0处的功能单元消耗的流值s0将在下一个周期ti+1中可用于x1处的切片(没有x0重写在时间ti处的值)。流操作数被朝向消耗它们并产生结果流的切片引导。流不断地跨芯片流动,用作切片相互通信的方式。图6提供了组合以支持该编程模型的功能单元和流寄存器的交错的图形描绘。
交错指令执行
在TSP编程模型中,在给定的编译器调度时间t处,在功能切片上发出指令,并对流供应的操作数向量(最多320个元素的流供应的操作数向量)执行SIMD运算,在结果流上产生相同长度的向量。在微架构级别,320个元素的SIMD指令跨切片中的区块的垂直堆叠被流水线化。也就是说,在调度时间t处,指令将被发出到切片的最底部的区块(对应于操作数/结果向量的前16个元素超通道)。在随后的周期中,指令将被向北传播到切片中的下一个区块,其又在操作数向量的下一个16个元素超通道上执行指令。这个过程逐周期继续,直到该过程遍历了切片中的所有20个区块。上述垂直指令流水线化的组合、以及对操作数和指令在精确时间重合的需要得到了SIMD操作数和结果数据的空间“交错”,如图7中所描绘的。如所示的,单个320字节的向量正沿着流向东移动。
片上存储器
片上存储器通过从表示为MEMi的MEM切片读取地址来为每个功能切片供应操作数。存储器被划分成两个半球(参见图5),每个半球具有编号为0到43的44个切片。
切片MEM0最靠近VXM,并且切片MEM43最接近SXM。每个MEM切片包括在垂直堆叠中布置的20个区块,从而产生每个切片2.5兆字节的容量、或者片上的所有88个切片的220兆字节,所有88个切片提供所需的存储器并发性,以在每个周期为每个通道供应32个操作数。
存储器切片被划分成16字节的字,每个字跨超通道分布,并且每个字的每个字节占据输入通道或输出特性的通道。也就是说,字节0是通道0,字节1是通道1,等等。每个区块产生向量的16部分,它与来自下面相邻区块的16个元素连接起来。指令跨切片中的所有20个区块以逐周期交错的方式执行:指令在访问切片中的每个区块的20个周期的跨度内向北流动。
MEM切片提供了分区全局共享地址空间的编程抽象,其中地址空间统一地横跨88个切片。每个MEM切片都包含伪双端口SRAM,假设它们不是针对同一存储体,它们可以同时为一对读请求和写请求提供服务。因此,公开存储体位,使得编译器能够高效且适当地管理底层SRAM。这允许编译器利用176路存储器并发性中的所有88个切片——88个切片中的每个切片具有2个存储体——来读取操作数到流或从流中存储结果。
为了使流并发性最大化,编译器将张量的并发流操作数的存储器分配到单独的MEM切片中——当流传播通过MEM切片时,它们在通往MXM的途中“拾取”来自MEM切片的操作数。这种细粒度的存储器管理要求在ISA中公开各种级别的存储器并发性,从而允许编译器显式地调度每个MEM切片中的各个存储体。
在本公开内容的实施方式中,同时从一个存储体读取操作数,并且将结果写入到同一切片中的另一个存储体。
常规的CPU依赖于存储器层次结构来隐式地在高速缓存之间移动数据以为加载/存储操作提供服务。高速缓存层次结构在数据路径中引入反应性代理,其使数据路径中的不期望的不可预测性或不确定性提供存储器层次结构中的顺序上一致的存储器事务的错觉。
与常规的CPU不同,Groq TSP的MEM系统提供了存储器管理的薄层,其用于在逐操作的基础上识别存储器并发性。
近计算片外存储器
计算机系统的性能通常受到存储器通道带宽的限制,但是在封装的严格引脚和功率约束下,进一步增加带宽是具有挑战性的。为了在这些约束下进一步提高性能,提出了紧密集成处理功能的各种存储器中处理(或存储器中功能)的架构,例如,其中动态随机存取存储器(DRAM)器件使用二维半(2.5D)和/或三维(3D)堆叠技术。
在一个实施方式中,Groq TSP架构提供了新的存储器解决方案,以满足处理实现现代人工智能(AI)系统所需的不断增加的数据量的需要。
在本公开内容的实施方式中,图8描绘了使用硅通孔(TSV)技术连接两个TSP芯片的面对面(F2F)片外近计算存储器。存储器部件不限于DRAM,而是可以包括SRAM或其他非易失性存储器(NVM),例如3D或非存储器、与非存储器、闪速存储器、3D交叉点存储器(可从美光科技获得的相变存储器)、下一代铁电存储器或纳米管RAM。
逻辑管芯包括用于将TSP与DRAM部件(未示出)对接的行缓冲器。DRAM部件还具有阵列核和行解码器。在DRAM部件的读取操作期间,行解码器选择一行阵列核,并将所选行中的整个行从DRAM部件传输到逻辑管芯上的行缓冲器。需要注意的是,DRAM部件不包括列解码器,因为系统在每个R/W周期期间读和写整个行。在一个实施方式中,逻辑管芯优选地通过TSV耦接至DRAM存储体,并且在F2F配置中耦接至TSP。
在一个实施方式中,存储器平面包括3D或非存储器,该3D或非存储器具有分层位于逻辑平面的表面的顶部上并且直接耦接至逻辑平面的表面的导体。在本实施方式中,逻辑平面通过至少一个TSV耦接至处理器平面。这种类型的存储器可以直接堆叠在逻辑平面或处理器平面的顶部上。
在一个实施方式中,处理器平面和逻辑平面使用晶片堆叠技术位于F2F关系中。更具体地说,具有处理器平面逻辑的晶片优选地使用已知的晶片接合和减薄技术与具有逻辑平面的晶片融合。依靠范德瓦尔力来确保晶片之间的电连接,使不同晶片上的导体保持物理接触。在本实施方式中,存储器平面使用多个TSV耦接至逻辑。
在本公开内容的实施方式中,图9A示出了使用2.5D配置中的无源中介层连接至片外近计算DRAM的单个TSP芯片。无源2.5D中介层平面包括TSP与DRAM之间的电连接。
在本公开内容的实施方式中,图9B描绘了使用2.5D配置中的无源中介层连接至片外近计算DRAM的多个TSP芯片。
在本公开内容的实施方式中,图10A示出了使用3D配置中的有源中介层连接至片外近计算DRAM的单个TSP芯片。除了TSP、SRAM块和DRAM之间的电连接外,有源3D中介层还包括多个SRAM块。
在本公开内容的实施方式中,图10A示出了使用3D配置中的有源中介层连接至片外近计算DRAM的多个TSP芯片。除了TSP、SRAM块和DRAM之间的电连接外,有源3D中介层还包括多个SRAM块。
术语“近计算”是指片外存储器,无论是DRAM还是NVM在逻辑上以大量带宽、确定性访问时间和全局地址空间进行操作,并且与片上SRAM类似执行。片外存储器具有由处理器可访问的全局地址空间。近计算存储器包括提供在处理器的控制下的大量互连容量的技术。
图11A描绘了现有技术的DRAM架构。由于低RTR,这种架构具有用作非确定性处理器的高速缓存或近计算存储器的有限功能。
确定性的TSP架构使存储器访问模式也是确定性的——也就是说,不需要高RTR存储器。这允许使用低随机事务速率(RTR)存储器(例如,DRAM存储体等)作为近计算存储器。有利地,并发访问的多个DRAM存储体提供了高RTR存储器的性能等价。
在一个实施方式中,图11B示出了处理器的存储器架构,其被配置成用于同时对存储器阵列的多个存储体的并发全局访问。
在一个实施方式中,存储器阵列包括多于四个存储体的DRAM存储体。通常,这种存储体优选地在与逻辑管芯或处理器管芯不同的工艺节点处制造,以利用为每个管芯提供最佳功率、面积和性能的工艺节点参数。
为了获得提供在TSP上的计算单元的需要带宽,存储器使得多个存储体能够同时活动。
在传统的DRAM访问中大部分的功率是花费的数据路径遍历和输入/输出(I/O)路径。
在本实施方式中,实现具有全局并发地址空间的近计算RTR存储器产生TSP芯片中的显著降低的功率消耗和显著降低的功率损耗。实际上,将低RTR(例如,DRAM)近计算存储器放置成与处理器紧密接近使消耗的功率最小化,因为与传统的DRAM处理器拓扑相比,它使信号必须行进的距离最小化。使功率最小化的一个原因是短迹线呈现较低的电容加载。另一个原因是,短迹线需要更少的缓冲器来确保信号的完整性。又一个原因是,由于在存储器集成电路器件上存在较少的逻辑,因此存在较少的随着结温度增加将以其他方式导致电阻增加的热。
通过使用SXM模块(图4的SXM模块)来提供通道间切换机制,以允许任何计算元件(MXM或VXM)从任何超通道访问在RTR存储器或片上SRAM存储体中的任何存储体存储器元件中驻留的任何请求数据,从而在超通道之间促进全局存储器访问。
更具体地说,SXM包含了用于数据元素的转置、排列、移位和旋转的几个功能。总的来说,这些操作用于执行与ML工作负载共同的张量重塑运算,并实现图3中的NET切片的功能。片上数据移动是通过在两个维度上路由数据来实现的:在使用流寄存器在SRAM与每个超通道内的功能单元之间往复移动的X维度上水平传播流,并且在SXM用于在南北方向上移动数据的Y维度上垂直传播流。
SXM提供了执行用于向北和向南二者的移位指令的通道移位器的两个集合。通道移位器通常成对分配,因为向量通常向上或向下移位,并且从(i)向北移位、(ii)向南移位或(iii)未移位的数据元素中选择期望的元素,如在图12中更详细地所示。另外,SXM提供了排列指令,该排列指令采用编程双射来重新映射类似索引流集上的320个通道,每个超通道一个。
SXM内的分配器切片被用于任意地重新映射每个超通道内的16个通道。当流通过分配器时,它们可以在全带宽下重新映射,或者零填充任一个或所有16个元素。这为共同的张量运算例如零填充或重新布置4x4滤波器的元素提供了非常高效的机制。
转置张量的维度是对张量数据类型的一种相当常见的操作。TSP支持被组织为16个流的256个元素的二维转置,每个流具有16个元素。转置操作接受16个传入流,并产生16个输出流,其中行和列被交换。这允许TSP高效地将数据从16字节的MEM字移动到16个不同的MEM切片中,其中它们现在可以寻址。存在片上SXM的两个实例,一个实例在每个半球中(参见图5)。每个可以发出两个转置指令,从而产生最多四个同时转置的16x16操作。
DRAM架构实施方式
图13示出了示出与TSP配置兼容使用的DRAM架构的实施方式,其中片上存储器在TSP管芯上被最小化,使得计算资源可以被扩展,或者减少芯片尺寸。使用较少的片上存储器(其优选地是SRAM),DRAM部件提供近计算存储器。
图14示出了一种用于将高容量存储器耦接至TSP上的确定性调度的高带宽全局数据路径的方法。经由数据I/O子系统上的多个引脚提供从TSP芯片到DRAM的全局访问。
数据缓冲器中的数据位数不需要等于数据引脚数,并且具有是数据引脚数两倍、四倍或八倍(或更多)宽的缓冲器允许两倍、四倍、八倍或更多地增加数据速率。
为了更好地理解TSP与片外DRAM之间的相互作用,综述了片上SRAM的功能。
片上SRAM通过从表示为MEMi的MEM切片中读取地址来为每个功能切片供应操作数。存储器被划分成两个半球(参见图5),每个半球具有编号为0到43的44个切片。
切片MEM0最靠近VXM,并且MEM43最接近SXM。每个MEM切片包括在垂直堆叠中布置的20个区块,从而产生每个切片2.5兆字节的容量、或者片上的所有88个切片的220兆字节。
88个切片提供存储器并发性,以在每个周期为每个通道供应32个操作数。存储器切片被划分成16个字节的字,每个字跨超通道分布,并且每个字的每个字节占据输入通道或输出特性的通道。也就是说,字节0是通道0,字节1是通道1,等等。每个区块产生向量的16部分,它与来自下面相邻区块的16个元素连接起来。指令跨切片中的所有20个区块以逐周期交错的方式执行(如图7中所示),并且指令在访问切片中的每个区块的20个周期的跨度内向北流动。
例如,可以假定核时钟的工作频率为1GHz。由每个MEM半球的东和西边缘上的每个MEM接口输出的流寄存器带宽B可以使功能单元被充分馈送有数据操作数,以使功能单元的峰值算术容量饱和。流寄存器提供了20TiB/s的读(操作数)和写(结果)带宽的组合容量,如等式1中所示。
因此,对于流寄存器,所需的带宽为:
B=109/秒x 2方向×32字节/通道×320通道=20TiB/s (等式1)
注意,一个TiB(太字节)包含1024个字节,其与二进制兆兆字节相同。TiB类似于但不等于普通的兆兆字节,即1TiB=1.09951兆兆字节。
由于SRAM存储体在流寄存器与SRAM单元之间往复移动数据,因此SRAM带宽M必须超过流带宽B。片上存储器的SRAM带宽在等式2中给出。
M=109/秒x2半球x 44切片/半球x2存储体/切片x 320字节/周期=55TiB/s(等式2)
因此,针对对于片上的所有88个切片,容量为220兆字节的片上存储器,获得55TiB/s的存储器带宽,或者在仅使用SRAM的每个半球中获得27.5TiB/秒的SRAM带宽。
指令取出消耗144x16的最大SRAM带宽,或2.1TiB/s的最大指令取出带宽。每个MEM半球从其25.61TiB/s的SRAM带宽中输出20TiB/s的流带宽,其满足了跨所有功能切片的2.1TiB/s的最大指令发出速率。由于5.61TiB/s的SRAM带宽和2.1TiB/s的指令取出带宽,这仍然剩下25TiB/s的SRAM带宽,从其中为操作数和结果提供18.63TiB/s的流寄存器带宽服务。
如果片外近计算DRAM被附接至TSP芯片,如图14中所示,则每个DRAM存储体在40ns时钟周期内每行提供1KiB。行数据可以直接放在流上,或者可以读取到中介层或TSP上的1KB寄存器文件/SRAM缓冲器中,以用于支持类似的访问/使用模式,就像其在SRAM访问的当前实施方式中所做的那样。
片上存储器的55TiB/s的片上存储器带宽(如在等式12中计算)可以与片上的所有88个切片的220兆字节的容量进行比较,其中得到32GB存储器容量的单个片外近计算DRAM管芯具有约256TiB/s的带宽。因此,在存储器容量和带宽二者方面都有了实质性的改进。
单个DRAM存储器可以使用中介层实施方式即无源中介层(图9A至图9B)或有源中介层(图10A至图10B)附接至TSP芯片。使用中介层实施方式,至少一个片外近计算DRAM可以附接至多个TSP芯片。在其他实施方式中,多个DRAM管芯可以使用无源中介层或有源中介层来堆叠以及附接或耦接至多个TSP芯片。
在一个实施方式中,在图14中示出了DRAM的低功率版本。在此,读出放大器被直接附接至行I/O,并且不需要逻辑层或数据缓冲器。
在一个实施方式中,中介层或TSP上的SRAM被用作缓冲器。如果是这种情况,则行内容可以跨多个SRAM宏分布,以启用并发SRAM加载。
生态系统
在现有技术中,在DRAM中读取的每一行都是破坏性的,因为它在关闭行时需要将相同的内容读取和写回到行。
在本公开内容的一个实施方式中,假设TSP是确定性的,在DRAM中读取的每一行都是没有破坏性的,因为每一行如果与关闭行对齐就可以写入新的数据。这在降低功率的同时能够实现增强的性能。
类似地,现有技术DRAM需要以周期性的间隔刷新行内容。
在本公开内容的一个实施方式中,假设TSP是确定性的,TSP可以确定性地写入新数据或刷新现有数据到DRAM的行。这能够实现较高的写入带宽和更好的管理刷新功能。利用新数据的刷新功能需要访问加载有新数据的DRAM写入寄存器。
本公开内容的某些实施方式涉及确定性近计算存储器装置,该存储器装置包括:具有单核确定性处理器的至少一个处理器;以及片外确定性近计算存储器单元(例如,DRAM),其与TSP通信上耦接并放置在距离TSP的限定邻近区域内。片外确定性近计算存储器单元包括具有公共全局存储器访问、公共控制总线和公共数据输出总线的多个数据存储体。
在一个实施方式中,单核确定性处理器
Figure BPA0000334554370000221
被配置成经由公共控制总线发起使用公共全局存储器访问对多个数据存储体中数据集(例如数据行)的检索,经由公共数据输出总线将检索到的数据集传递到TSP的至少一个流寄存器上。
通过以确定性的方式访问从片外确定性近计算存储器单元到TSP的至少一个流寄存器上的数据行,片外确定性近计算存储器单元不需要列解码器,因为TSP只访问行。利用片外存储器的确定性架构,TSP可以在需要数据集到达TSP的计算元件之前的预定时间段从片外存储器上传流寄存器。因此,有利地,片外确定性近计算存储器单元可以实现为慢密集型存储器,该慢密集型存储器因为时延可以由编译器管理并且可以通过增加可以在片外存储器处同时访问以馈给TSP的超通道的几个行来增加带宽而运行起来更便宜。
TSP包括多个区块,其中每个区块被配置成用于特定的计算函数,并且被堆叠成TSP的2D片上网格的第一维度上的相应切片。区块的第一子集被堆叠成VXM切片,VXM切片包括被配置成用于一个或更多个逐点算术运算的多个ALU。区块的第二子集被堆叠成MXM切片,MXM切片包括被配置成对整数或浮点数据类型进行操作的多个2D MACC阵列。区块的第三子集被堆叠成SXM切片,SXM切片被配置成通过重新布置向量元素来实现片上数据移动。区块的第四子集被堆叠成片上内部MEM模块的东和西半球,其包括SRAM的多个并行切片,并且被配置成为在向东方向上流向东半球或替选地在向西方向上流向西半球的多个数据流提供存储器访问并发性。区块的第五子集被堆叠成切片间ICU,其被配置成提供利用取出指令的显式指令取出,以及使用同步指令和通知指令执行参与切片之间的芯片范围屏障同步的切片间同步,其中重复NOP(no-op)指令允许精确的逐周期控制指令间延迟。MEM模块可以保留几个MEM切片用作指令调度切片,其中机器编码的指令被存储并供应在流上,以在执行指令的不同切片上为取出指令提供服务。
片外确定性近计算存储器单元包括用于存储写操作的行缓冲器,该行缓冲器被配置成将写操作延迟到片外确定性近计算存储器单元。片外确定性近计算存储器单元的多个数据存储体被配置成同时将数据集直接检索到行缓冲器中。TSP的至少一个流寄存器被配置成使来自行缓冲器的数据集以朝向切片的数据流动方向被加载,旨在根据由TSP发起的一个或更多个指令在下一个时钟周期上对请求的数据集进行操作。
在一些实施方式中,对片外确定性近计算存储器单元的公共全局存储器访问包括使用多个SXM提供通道间切换机制,以允许TSP的任何计算元件从任何超通道访问驻留在片外确定性近计算存储器单元上或驻留在多个SRAM存储体上的任何请求的数据。片外确定性近计算存储器单元的数据存储体可以被配置成可由TSP的不同计算单元并发访问。东和西方向中的每个上的TSP中的多个数据流的存储器并发级别可以由确定性近计算存储器装置的电源配置和由被配置成防止确定性近计算存储器装置的过热的功率损耗来限制。
在一些实施方式中,高RTR存储器是片外确定性近计算存储器单元的一部分。在这样的情况下,公共数据输出总线的多个并发数据线将TSP与高RTR存储器耦接,以用于将检索到的数据集从高RTR存储器传递到TSP的至少一个流寄存器。
给定确定性访问模式,TSP还可以将片外确定性近计算存储器单元(例如,DRAM)视为有机会读和写每行位置的循环读/写访问介质。片外确定性近计算存储器单元的行地址线被耦接至时钟。行地址线被配置成从TSP接收行地址,并且根据循环介质访问递增每个时钟周期,直到行地址在没有明确寻址的情况下循环回为止。这种模式允许甚至进一步的功率降低和性能改进,同时隐式地并入了刷新支持。
在一些实施方式中,TSP包括多个SRAM存储体,多个SRAM存储体被配置成在TSP的至少一个流寄存器与SRAM存储体之间往复移动数据,其中与SRAM存储体相关联的带宽超过与至少一个流寄存器相关联的带宽。
较低功率和较高密度SRAM的架构和用途优化
上面提到的概念也可以用于增加密度,同时还减少SRAM的功率和面积/MB,而无论是在TSP管芯上还是在有源中介层上。
更具体地说,在一个实施方式中,代替使用x128b高性能(1GHz至2GHz)宏,管芯上SRAM被组织为较宽的字(例如,大约1KB)的宏,以较低的速度(例如,500MHz)运行并且从而也允许较高的密度/mm2和较低的功率。然后,输出被直接读取到流上或者寄存器文件或SRAM缓冲器中。
其他相关公开内容
以上公开的确定性处理器的确定性近计算存储器增强了存储器单元与处理单元之间的数据移动。现在更详细地参考本公开内容,在计算机系统中,对存储器的低时延访问对于处理器架构是重要的,因为当时延低时,系统的性能会更好。物理设置在距离处理器设备的限定邻近区域内的密集存储器设备有助于使在将存储器设备与处理器设备分开的距离较大时的较大的通信延迟最小化。本公开内容中描述的实施方式的益处是,减少存储器设备与处理器设备之间的物理距离,并且减少通信时延。
除了改进的系统性能之外,本公开内容中描述的实施方式的另一个益处是,当具有低时延和高带宽的足够存储器可用于根据本公开内容配置的处理器时,减少了使存储器与处理器集成的需要。这导致了存储器单元与处理单元之间的数据移动的增强。
现有技术的处理器设备通常集成快速存储器存储体,例如SRAM、一个或更多个层次级别中的高速缓存存储器、非易失性存储器、嵌入式或非嵌入式DRAM等。
对这种集成的存储器元件的减少的需要扩展了处理器设备的计算性能或成本方面的其他改进的机会。本公开内容的关键特征是实现密集近计算存储器与被配置成改进性能的处理器元件之间的高事务速率,即使当在减少与处理器设备集成的存储器的量的反直觉方面的上下文中实现时也是如此。
如上所述,存储器到处理器接口的性能的衡量是RTR,它是存储器事务中的随机性程度的衡量。RTR表示每单位时间发出到存储器元件或子系统的随机存储器地址的数目。
出于示例性目的,上述本公开内容的示例基于特定类型的存储器,即DRAM。然而,本公开内容适用于任何类型的存储器,并且在本示例中使用DRAM仅仅只是为了促进对本公开内容的描述。
DRAM存储体在通过常规的外部接口通道对接时通常具有低RTR,即使在DRAM模块内部有可以在适当的条件下允许高RTR的宽的数据行也是如此。在现有技术的计算机系统中,可以由编译器容纳行访问之间的DRAM的低RTR,该编译器优化读和写操作的序列,以尽可能地将它们聚合成较少数量的行访问。
然而,如在上述实施方式中所解释的,由于在TSP与DRAM之间的大量的多个并发行访问,片外近计算DRAM包括高RTR行。
作为本公开内容的实施方式的示例,与DRAM管芯面对面连接的处理器管芯可以实现近似每平方毫米每秒5万亿位(5TiB/s/mm2)的海量数据带宽。例如,TSV互连可以是直接的铜到铜接合,该铜到铜接合将实现与常规2D封装相比互连密度高约200倍,与微凸块技术相比密度增加多于15倍,以及与微凸块相比较好互连效率多于3倍。TSV接口可以是直接管芯到管芯铜互连,其是非常灵活的“有源上有源”芯片堆叠技术。
如上面所公开的,本公开内容中描述的实施方式显著地减少了访问DRAM的数据路径开销,增加了带宽和可访问的存储器密度。编译器可以对存储器访问进行排序,以使DRAM模块中的高RTR行访问的益处最大化。
在一个实施方式中,存在以三明治的方式与处理器管芯配对的一个DRAM管芯,其中DRAM/处理器管芯三明治中的一个或更多个彼此堆叠,以在封装中提供极高的计算密度。在本公开内容的另一个实施方式中,DRAM管芯的堆叠与处理器配对,然后这些堆叠中的一个或更多个可以一起堆叠在单个封装中。
当处理器架构被配置成使用DRAM作为本地存储器时,它们从本公开内容中描述的实施方式中获益最大。
当对存储器读和写访问进行排序以最好地利用DRAM模块中的行数据布置的高RTR属性时,本公开内容的实施方式更有效。
在本公开内容中描述的实施方式的情况下,功率要求较低,因为数据缓冲器路由线路较短。在本公开内容中描述的实施方式的情况下,可以显著减少在处理器管芯上用于嵌入式高速缓存或SRAM存储装置的面积。面积的这种减少仍然越来越重要,因为在较新的工艺节点中,存储器设备的面积往往比逻辑或计算设备的面积缩小得更慢,从而导致存储器成为总处理器管芯大小的越来越大的比例。
因此,本公开内容提供了实质性的成本效益,其在市场区隔中具有甚至更大的重要性,其中产品需要更大量的存储器才能达到所需的系统性能水平。
在两个管芯可以以面对面布置的方式连接——其中以5微米的间距连接——的工艺技术中,管芯之间可用的带宽可以高达5TiB/s/mm2。在间距为1微米的更高级的工艺节点中,带宽将为125TiB/s/mm2
如图14中所示,DRAM的架构包括具有在读出放大器中终止的位线列的存储位阵列,它们通常集成在与存储位阵列相同的管芯上。
在某些配置(未示出)中,具有存储阵列的几个DRAM管芯被连接,以共享位于该组管芯中的仅一个管芯上的读出放大器。
DRAM存储体中的位线列可以进行多路复用,这降低了阵列的高度,并且增加了宽度。由于拓扑或制造的原因,可以进行位线多路复用来改变DRAM存储体的长宽比。在本公开内容中描述的实施方式的上下文中,位线列的增加的数目增加了在到处理器芯片的接口处可用的带宽。
用于生产DRAM芯片的半导体制造生产线的制造改进继续增加密度和降低成本,而没有限制SRAM的可扩缩性的障碍。即使对处理器使用相同的接口布置,可用的存储器密度也将会随着DRAM制造持续改进而增加。
行缓冲器的位置对于本公开内容中描述的实施方式可以是重要的。
在一个实施方式中,处理器芯片将被定制为与一个或更多个DRAM管芯以堆叠的方式对接,如以高带宽存储器(HBM)堆叠设置管芯一样。在这种配置中,DRAM管芯将与以前相同,其中通过HBM边缘接口进行通信。
F2F连接比面对背(F2B)和背对背连接(B2B)更好,原因是对于F2B和B2B芯片堆叠,因为F2F连接提供了较低阻抗连接的机会。配电网络要求供应路径为低阻抗,通常远小于1欧姆。
因此,在一个实施方式中,处理器和DRAM管芯布局被定制,以实现F2F连接,而不是F2B连接。
在本公开内容的实施方式中,在将HBM存储器芯片堆叠在处理器管芯的顶部上的情况下,可能只在包括在堆叠中的逻辑芯片上,在例如DRAM管芯与处理器芯片之间的位置处有读出放大器。这个堆叠中的DRAM管芯将只有数据位存储单元的阵列。
在替选实施方式中,读出放大器可以集成到处理器芯片中,使得逻辑芯片不必要。
在又一个实施方式中,可能存在位于逻辑芯片中的SRAM缓冲器。
这些不同实施方式中的每一个都提供了一定的优点。例如,如果将逻辑芯片包括在堆叠中,则制造可测试性可能会更容易,因为堆叠中的所有存储器都可以在附接处理器之前适当地进行测试。
逻辑芯片的成本可能低于同一区域的其他管芯,因为逻辑芯片可以使用较旧的、较低成本的制造技术来制造。在没有本公开内容中描述的实施方式的情况下,逻辑芯片通常在F2F部署中没有连接至DRAM;通常逻辑芯片使用TSV结构连接F2B或B2B。在处理器包括逻辑芯片功能的实施方式中,在F2F部署中将处理器连接至DRAM管芯是特别有益的。
在处理器存储器配置中,系统带宽不受DRAM存储体访问带宽的限制。DRAM存储体通常在200MHz至300MHz下运行。带宽限制器是读出放大器与数据缓冲器之间的延迟(图14)。
对于8-DRAM管芯或15-DRAM管芯的堆叠,例如,主要的带宽限制因素是可用的TSV带宽,而不是F2F带宽。本公开内容中描述的实施方式不需要DRAM外部接口的改进,并且本公开内容中描述的实施方式不需要增加TSV结构的数量。
相反,本公开内容中所述的实施方式受益于较宽的行缓冲器,其中逻辑芯片驱动TSV。
在一个实施方式中,逻辑芯片通常使用旧一代的工艺技术来实现,因此该逻辑芯片是便宜的,并且在一些实施方式中,可能期望将该逻辑芯片与处理器芯片结合使用。
在一个实施方式中,逻辑芯片功能可以集成到处理器芯片中。
在一个实施方式中,存在放置在每个存储器管芯上的存储体和读出放大器。
在一个实施方式中,读出放大器仅位于逻辑管芯上。
在一个实施方式中,读出放大器被放置在处理器管芯上。
在一个实施方式中,SRAM缓冲器位于逻辑芯片上。
在一个实施方式中,读出放大器从存储器存储体中拉出并放在处理器或存储器逻辑芯片上。为了进一步提高密度,存储器存储体面积被增加以包括将由读出放大器使用的面积。
测试
仍然期望测试整个管芯堆叠。可以使用冗余块或冗余管芯来实现高产量。
另一种方法是实现存储器冗余以实现良好的制造产量,而不是使用预先测试的已知良好的管芯来组装堆叠。使用这种方法,存储器阵列设备将仍然需要在组装或部分组装的堆叠中通过充分完成存储器阵列功能以完成测试程序的逻辑芯片进行测试。
逻辑芯片可以使用较便宜的较旧的半导体制造工艺技术来制造。可以集成到逻辑芯片上的便宜区域中的功能在使用更新、更先进、更昂贵的半导体制造工艺技术的处理器芯片或存储器阵列上实现可能在经济上并不可行。
当需要在与处理器管芯组装之前使用可选的逻辑管芯堆叠来测试存储器阵列时,在存储器阵列或逻辑管芯上需要读出放大器。
最后的组装步骤是将处理器管芯连接至逻辑管芯。在本公开内容的优选实施方式中,处理器管芯的顶部或面被连接至逻辑芯片的顶部或面。
在一个实施方式中,通过将F2F DRAM逻辑芯片连接至TSP来将存储器阵列管芯堆叠连接至逻辑管芯(未示出)。
在本实施方式中,DRAM核具有600MHz时钟;I/O逻辑被布置有到TSP的DRAM逻辑芯片。SRAM缓冲器被放在DRAM逻辑芯片的顶部上,并且行缓冲器在行中随机寻址。
在一个实施方式中,每个DRAM存储体中的每一行可以具有4K字节的容量,因此当DRAM I/O行被打开到数据缓冲器中时,一次读出4位、8位、16位或32位的数据。
DRAM对访问模式的敏感性
也称为低功耗DDR同步DRAM或LPDDR SDRAM的LPDDR(低功耗双倍数据速率的缩写)是消耗更少功率并且针对移动计算机的一种类型的双倍数据速率同步DRAM。它也被称为移动DDR,并且被缩写为mDDR。
现场可编程门阵列(FPGA)外部存储器(通常是DRAM(或任何RTR存储器))的有效带宽对访问模式极其敏感。每当存储器访问不规则并且特定于应用的优化不可用或在设计时间方面成本太高时,处理数千个未完成的错误的非阻塞高速缓存(误优化的存储器系统)可以动态地改进带宽利用率。然而,它们需要在处理器端具有宽数据端口的存储器控制器,并且不能充分利用具有在片上系统(SoC)设备上常见的多个窄端口的存储器接口。此外,由于它们的范围限于单个存储器请求,它们生成的访问模式可能会导致频繁的DRAM行冲突,这进一步降低了DRAM带宽。
一种解决方案是向存储器控制器生成可变长度的突发。
因此,通过使存储器访问在本地更加按顺序,DRAM行冲突的数量被最小化,并且通过在每个请求的基础上调整突发长度,带宽浪费也被最小化。
存储器管理测试电路
目前的纳米SoC设计通常嵌入了许多对许多不同的硬件生产缺陷极其敏感的存储器。这些缺陷影响了三个关键的生产和盈利目标:质量、产量和可靠性。然而,目前存在将帮助制造商生产可靠、高产量、高质量的SoC设备的可用的解决方案。
多年来,内置自测试(BIST)已经在大多数嵌入式存储器中实现。当前在市场上有几种良好的BIST生成工具。BIST解决方案帮助制造商达到质量目标,并被实现以在两个级别上处理质量问题。
在生产级别上,大多数SoC制造商都试图实现100%的故障覆盖,以交付高质量的SoC。然而,提高芯片复杂性导致了生产缺陷的复杂性的增加。为了达到在这个级别上增加的故障覆盖的目标,芯片设计者需要实现复杂的BIST算法。
混合可编程合成BIST是一种新的BIST架构,它结合了BIST算法合成以及BIST可编程性。这种新的架构可以实现自定义的高连线的BIST算法。它允许设计者选择在生产测试器上使用可编程性特性来改进算法。在低硅成本下,这种架构满足质量要求。
产量是另一个关心的问题。存储器技术中增加大小、密度和复杂性会导致更高的缺陷密度和产量的降低。在存储器测试期间的存储器缺陷检测之后,将硬件激光修复步骤添加到生产流程中,以提高存储器产量。激光修复会引起极长的测试时间和额外的硬件成本,在硅级别和在生产级别二者处,其中都需要额外的激光设备。
一种具有成本和时间效益的解决方案是内置自修复(BISR)。BISR由用紧邻功能存储器可用的备用列替换硅上有缺陷的存储器列构成。BISR在列、行、块或位级别上实现。使用非易失性块来存储存储器重新配置提高存储器生产产量。
所有芯片制造商也都考虑了可靠性方面。高存储器大小和高端存储器技术经常导致在产品寿命期间出现的越来越多的缺陷。处理这样的缺陷难以置信地昂贵,因为它们意味着要在现场进行调试。BISR解决方案允许在现场测试存储器,并且用没有缺陷的冗余块替换有缺陷的存储器块。如果存储器包含关键内容,则透明的BISR允许测试和替换有缺陷的块,而不会丢失原始存储器内容。确保了在现场更高的产品可靠性的这种解决方案在低硅成本下可用。
在一个实施方式中,Groq TSP DRAM单元包括BISR。
更具体地说,在一个实施方式中,BISR可以通过映射到总线的树结构来实现,并且通过用触发器隔离数据流来选通以在不同时间使用DRAM的不同部分。
在一个实施方式中,BISR可以:(a)在本地管理数据流;(b)创建本地流;(c)考虑到一个单独的流,或者如果需要块段制作几个较小的管道,在必要时,通过类比具有许多入口和出口的管道结构以在最高级别用管道传送来创建分层流。
如上面所公开的,还可以使用存储器突发模式(例如,动态随机存取存储器(DRAM))来进一步提高在不同深度的最大传输速率,即在位时钟的两个边缘上传输数据的最大传输速率。
例如,对于移动DDR(并且缩写为mDDR),最小突发大小为4,而对于LPDDR(低功耗双倍数据速率),最小突发大小为16。
更专门化的RTR(例如,DRAM)从行内管理突发大小,并将数据存取到缓冲器中。
例如,如果将一定数量的字节放在字缓冲器中以快速流出,则4DDR/53200存储器意味着在数据总线中每个位支持3200百万次转换,因此如果数据在位时钟的两个边缘上传输,则数据速率为3.2GiB/s。
连接性描述
当处理器数据信号被连接至存储器存储体地址以及具有最高带宽、最低时延、使用最小数目的中间逻辑元件的数据路径的数据输入和数据输出时,近计算存储器是最有效的。
例如,存储器管芯被附接至处理器管芯,并且在存储器管芯与处理器管芯之间连接数万或数十万或数百万数据信号。存储器管芯上的所有存储体上的所有列都具有从存储器存储体输入和输出到处理器管芯数据总线布线和寄存器的短的直接路径。
更具体地说,从逻辑的角度来看,在一个实施方式中,存储器存储体输出行的列将与特定流进行对接。
更具体地说,从逻辑的角度来看,在另一个实施方式中,存储器存储体行输出的列连接至处理器管芯上的多路复用器切换网络(例如,多路复用器/解多路复用器或纵横开关),其又将数据引导到一个流或另一个网络。
更具体地说,从物理的角度来看,在一个实施方式中,通过使用硅通孔(TSV)接合连接的信号来实现面对背管芯附接布置。
更具体地说,从物理的角度来看,在另一个实施方式中,通过使用TSV接合连接的信号来实现面对面管芯附接布置。
更具体地说,从物理的角度来看,在又一个实施方式中,通过使用微凸块接合连接的信号来实现面对面管芯附接布置。微凸块接合(MBB)方法确保了集成电路(IC)电极与电路基板电极之间的微顺序直接结合。MBB由三个元素组成:带有凸块的IC芯片、电路基板和接合用粘合剂。所涂敷的粘合剂的接合力实现了IC上的凸块之间的电连接。
在一些实施方式中,从物理的角度来看,通过使用混合接合焊盘连接的信号来实现面对面管芯附接布置。术语“混合接合”不精确地是指对热压缩接合的任何替选方案,其将金属互连与一些其他形式的接合相组合。在一个或更多个实施方式中,“混合接合”包括粘合剂。在一个或更多个其他实施方式中,“混合接合”涉及各种互连金属,例如铜(Cu)、铟(In)和银(AG)。
在一些其他实施方式中,从物理的角度来看,通过使用中介层上的导电迹线连接的信号来实现中介层布置,以将存储器管芯上的端子连接至处理器管芯上的端子。
处理器存储器通信特征
第一管芯包括可以独立寻址的多个存储器存储体,被附接至包括处理元件的第二管芯。
在一个实施方式中,处理器是确定性的。在另一个实施方式中,处理器是不是确定性的。
处理器管芯上的数据信号或寄存器提供了基本上连续独立的连接。
在存储器管芯上,为了寻址存储器管芯的每个存储体上的输入或寄存器,处理器管芯上的数据信号或寄存器基本上连续地连接至存储器管芯上的存储器存储体输入或寄存器。
在处理器管芯上,处理器管芯上的数据信号或寄存器从存储器管芯上的存储器存储体输出或寄存器基本上连续地连接。
对数据信号进行过滤或传输数据信号的多路复用器切换网络只位于处理器管芯上。存储器存储体行输出连接至处理器管芯上的多路复用器切换网络(例如多路复用器/解多路复用器或纵横开关),其又将数据引导到一个流或另一个网络。
近计算存储器特征
存储器设备包括多个存储器存储体,其中每个存储体具有用于存储数据的多个行。每个存储器存储体可由处理器寻址,以用于将数据写入到选定存储体中的选定行以及用于从选定存储体中的选定行读取数据,其中在需要数据到达处理器的计算元件之前的预定时间段读取数据,并且在不与存储器刷新相一致的预定时间段将数据写入到存储器。
过程流程
图16是示出根据一些实施方式的确定性计算的方法1600的流程图,其包括耦接至片外确定性近计算存储器单元的单核确定性处理器。单核确定性处理器可以是系统的一部分,该系统还包括至少一个计算机处理器(例如,主机服务器)以及用于存储计算机可执行指令的非暂态计算机可读存储介质。单核确定性处理器可以是TSP。方法1600可以由在至少一个计算机处理器上操作的编译器发起。编译器可以利用单核确定性处理器的模型(例如,机器学习模型)作为其输入,并且输出用于配置单核确定性处理器的操作的指令。
单核确定性处理器将数据集存储1610在片外确定性近计算存储器单元的多个数据存储体中,多个数据存储体具有公共全局存储器访问、公共控制总线和公共数据输出总线。单核确定性处理器经由公共控制总线发起1620使用公共全局存储器访问对多个数据存储体中数据集的检索,经由公共数据输出总线将检索到的数据集传递到单核确定性处理器的至少一个流寄存器上。
在一些实施方式中,单核确定性处理器通过在每个请求的基础上调整突发长度以使带宽浪费最小化来顺序地访问片外确定性近计算存储器单元。另外或替选地,可以经由片外确定性近计算存储器单元的数据输入/输出(I/O)子系统上的多个引脚将全局访问从单核确定性处理器提供至片外确定性近计算存储器单元。
到处理器/程序的数据/指令
虽然“数据”和“信息”经常互换使用(例如,“数据处理”和“信息处理”),但是术语“数据(datum)”(复数“数据(data)”)通常表示事实的值的表示(例如,物理量例如线中的电流的测量或黄金的价格)、或问题的答案(例如,“是”或“否”),而术语“信息”通常表示具有结构的数据集(通常由“数据结构”表示的)。在商业中,数据结构用于将用作特定机器的电子设备转换为制造商的制品(参见re Lowry,32F.3d 1579[CAFC,1994])。数据和信息是物理对象,例如在数字电路或电子部件中用两个电压水平实现的二进制数据(“位”,通常用“0”和“1”表示)。例如,数据可以实现为电、磁、光或声信号或状态;量子态,例如实现“量子位”的粒子自旋;或原子或分子的物理状态。所有这些数据和信息当启用时都会被存储、访问、传输、组合、比较或以其他方式作用于需要和消耗能量的动作。
如本文中所使用的,术语“工艺”表示人工的有限有序的物理动作集(也由“操作”或“步骤”表示的“动作”),以产生至少一个结果。一些类型的动作包括转换和运输。动作是对一种或更多种自然科学定律或人工技术定律的技术应用。动作经常改变机器的物理状态、数据和信息的结构的物理状态或物质的组成的物理状态。两个或更多个动作几乎可以在同一时间发生,或者如果工艺产生相同的结果,则一个动作可以在另一个动作之前或之后发生。对包括工艺的物理动作和/或转换的描述通常用动名词短语(或其语义等同物)集表示,这些动名词短语通常前面有能指“…的步骤”(例如,“一种工艺包括测量、转换、划分、然后分配的步骤”)。能指“算法”、“方法”、“过程”、“(子)例程”、“协议”、“配方”和“技术”通常与“工艺”互换使用,并且35 U.S.C.100将“方法”定义为一种类型的工艺,其根据成文法,在35 U.S.C.101下总是可获得专利权。如在本文中使用的,术语“线程”表示整个工艺的子集。工艺可以被划分为多个线程,多个线程可以同时使用或几乎同时使用。
如在本文中使用的,术语“规则”表示具有至少一个逻辑测试的过程(例如,通过“如果测试是真的,则进行过程”表示的)。如在本文中使用的,“语法”是用于确定信息结构的规则集。许多形式的知识、学习、技能和风格都作为过程和/或规则——客观地——被编写、结构化和启用——例如,知识和学习作为知识编程语言中的功能。
如在本文中使用的,术语“部件”(也由“零件”表示,并且当在专利文本或图中描述时通常由“元件”表示)表示用于与其他部件组合实现过程的物理对象。例如,电子部件用于影响一个或更多个电磁或量子粒子/波(例如电子、光子)或准粒子(例如电子空穴、声子、磁域)及其相关联的场或信号的物理状态的过程。电子部件具有至少两个连接点,这些连接点被附接至导电部件,通常是导电线或线路,或光纤,其中一个导电部件端被附接至该部件,并且另一端被附接至另一部件,通常作为具有电流或光子流动的电路的一部分。存在至少三种类型的电气部件:无源、有源和机电。无源电子部件通常不会将能量引入到电路中——这样的部件包括电阻器、忆阻器、电容器、磁性电感器、晶体、约瑟夫森结、换能器、传感器、天线、波导等。有源电子部件需要能量源,并且可以将能量注入到电路中——这样的部件包括半导体(例如二极管、晶体管、光电器件)、真空管、电池、电源、显示器(例如发光二极管(LED)、液晶显示器(LCD)、灯、阴极射线管(CRT)、等离子显示器等)。机电部件使用机械力和结构影响电流流动——这样的部件包括开关、继电器、保护装置(例如保险丝、断路器)、散热器、风扇、线缆、电线、端子、连接器和印刷电路板。
如在本文中使用的,术语“网络表”是包括电路的部件和部件之间的电连接的规范。重点应用于集成电路的仿真程序(SPICE)电路仿真程序的编程语言通常用来指定网络表。在电路设计的上下文中,术语“实例”表示每次在网络表中指定部件。
在商业中作为商品的最重要的部件之一是集成电路及其相应的抽象。如本文中所使用的,术语“集成电路”表示在半导体材料(例如硅或砷化镓)的小基板(因此使用能指“芯片”)上的一组连接的电子部件,其中部件被制造在一个或更多个层上。“集成电路”的其他能指包括“单片集成电路”、“IC”、“芯片”、“微芯片”和“SoC”。集成电路类型的示例包括门/逻辑阵列、处理器、存储器、接口芯片、功率控制器和运算放大器。如在电子电路设计中使用的术语“单元”表示一个或更多个部件的规格,例如,被连接以用作逻辑门的一组晶体管。单元通常存储在数据库中,以供电路设计者和设计过程访问。
如在本文中使用的,术语“模块”表示对数据和信息起作用的有形结构。例如,术语“模块”可以表示转换数据和信息的过程,例如,包括计算机程序(下面定义)的过程。术语“模块”也可以表示一个或更多个相互连接的电子部件,例如数字逻辑器件。包括模块的过程——如果在编程语言(下面定义),例如系统C或Verilog中指定——也可以转换为转换数据和信息的电子部件的结构的规范,其产生与过程相同的结果。这最后一句话来自于修改后的邱奇图灵论题,它被简单地表示为“无论什么都可以通过(可获得专利权的)过程和处理器进行转换,都可以通过(可获得专利权的)等效模块集进行转换。”,而不是只删除“(可获得专利权的)”中的一个的双重思想。
模块是永久结构化的(例如,具有不可改变连接的电路)、临时结构化的(例如,可通过数据集进行改变的电路或过程),或这两种结构化形式的组合。可以制造永久结构化的模块,例如,使用专用集成电路(“ASIC”),例如算术逻辑单元(“ALU”)、可编程逻辑阵列(“PLA”)或只读存储器(“ROM”),所有这些通常都在制造期间被结构化。例如,永久结构化的模块可以包括集成电路。临时结构化的模块可以例如使用现场可编程门阵列(FPGA,例如,由Xilink或英特尔的Altera销售的)、随机存取存储器(RAM)或微处理器进行制造。例如,使用数据作为存储输出数据和信息的RAM或ROM中的地址来转换数据和信息。可以将临时结构化的模块嵌入在永久结构化的模块中(例如,将FPGA嵌入到ASIC中)。
临时结构化的模块可以在多个时间段期间被结构化。例如,包括一个或更多个模块的处理器使其模块首先由制造商在工厂处进行结构化,然后当在商业中使用时进一步由用户结构化。处理器可以在第一时间段期间包括一个或更多个模块集,然后在第二时间段期间被重构化为包括一个或更多个模块的不同集合。以永久结构化的形式、临时结构化的形式或两种形式的组合制造或实现模块的决定取决于商业问题,例如成本、时间考虑、资源限制、关税、维护需求、国家知识产权法律和/或特定的设计目标[事实]。使用模块的方式及其功能主要与制造或实现模块的物理形式无关。这最后一句话也来自于修改后的邱奇图灵论题。
如本文中所使用的,术语“处理器”表示在商业中使用的有形数据和信息处理机器,其使用至少一个过程对数据和信息进行物理转换、传输和/或传送。处理器由一个或更多个模块,例如中央处理单元(“CPU”)模块;输入/输出(“I/O”)模块、存储器控制模块、网络控制模块和/或其他模块组成。术语“处理器”也可以表示一个或更多个处理器,或者一个或更多个具有多个计算核/CPU的处理器、专用处理器(例如,图形处理器或信号处理器)及其组合。在两个或更多个处理器相互作用的情况下,处理器中的一个或更多个可以相对于其他处理器的位置进行远程定位。在术语“处理器”在另一个上下文中使用例如“化学处理器”的情况下,它将在该上下文中被表示和定义。
处理器可以包括例如数字逻辑电路系统(例如,二进制逻辑门),和/或模拟电路系统(例如,运算放大器)。处理器还可以使用光信号处理、脱氧核糖核酸(DNA)转换、量子操作、微流控逻辑处理或技术的组合,例如光电处理器。对于用二进制数据结构化的数据和信息,可以使用与、或和非逻辑运算(及其衍生物,例如与非、或非和异或运算)转换数据和信息的任何处理器也可以使用布尔逻辑的任何函数转换数据和信息。处理器例如模拟处理器,诸如人工神经网络也可以转换数据和信息。没有科学证据表明,这些技术处理器中的任一个正在使用等同于人类大脑的生物电结构和过程的任何过程或结构来处理、存储和检索数据和信息。
一个或更多个处理器还可以在“云计算”或“时间共享”环境中使用过程,其中多个远程计算机的时间和资源由与计算机进行通信的多个用户或处理器共享。例如,一组处理器可以使用在分布式或远程系统处可用的至少一个过程,这些处理器使用通信网络(例如,因特网或以太网)并且使用一个或更多个指定的网络接口(下面定义的“接口”)(例如,表示与远程过程进行通信的函数和数据结构的应用程序接口(“API”))。
如本文中所使用的,除了存储器(例如,通过使用与非或者或非运算的触发器结构化的存储器)以外,术语“计算机”和“计算机系统”(下面进一步定义的)还包括至少一个处理器,例如,其使用可以包括晶体管的电子门对数据和信息执行运算,例如(但不限于)布尔逻辑运算。可以执行逻辑与、或和非运算(或其等同物)的任何处理器都是图灵完整的和计算通用的[事实]。计算机可以包括在没有人工干预的情况下例如执行输入信号、转换信号和输出信号的过程的简单结构,例如,包括I/O模块、CPU模块和存储器。
如在本文中使用的,术语“编程语言”表示用于指定供模块、处理器和计算机使用的操作和数据集的结构化语法。编程语言包括汇编指令、指令集架构指令、机器指令、机器依赖指令、微代码、固件指令、状态设置数据或者以如下一个或更多个高级语言的任何组合编写的源代码或目标代码:例如,C编程语言和类似的通用编程语言(例如Fortran、Basic、Javascript、PHP、Python、C++)、知识编程语言(例如Lisp、Smalltalk、Prolog或CycL)、电子结构编程语言(例如VHDL、Verilog、SPICE或系统C)、文本编程语言(例如SGML、HTML或XML)或视听编程语言(例如SVG、MathML、X3D/VRML或MIDI)、以及任何未来的等效编程语言。如在本文中使用的,术语“源代码”表示使用编程语言以文本形式指定的指令和数据集。在因特网上,例如从诸如Github的源代码库中可以获得大量用于实现任何所要求保护的公开内容的源代码。
如在本文中使用的,术语“程序”(也称为“应用程序”)表示对模块、处理器或计算机进行结构化以用做“特定机器”的一个或更多个过程和数据结构(参见re Alappat,33F3d 1526[CAFC,1991])。程序的一个用途是对一个或更多个计算机例如独立的客户端或服务器计算机、或者一个或更多个模块、或者一个或更多个这样的计算机或模块的系统进行结构化。如本文中使用的,术语“计算机应用”表示实现特定用途,例如实现文本处理操作或对一组数据进行加密的程序。如在本文中所使用的,术语“固件”表示通常对处理器或计算机进行结构化的一种类型的程序,其中固件在大小上比典型的应用程序小,并且通常不太容易可以被计算机的用户访问或修改。计算机程序和固件通常使用以编程语言例如C编写的源代码指定。模块、电路、处理器、程序和计算机可以例如使用系统C编程语言在多个抽象层次处指定,并且具有在统一商用代码(参见U.C.C.第二条,第1部分)下作为应纳税物品,在商业中作为产品的价值。
程序从数据和信息设备或存储系统被传输到计算机或计算机系统的一个或更多个存储器中。计算机系统通常具有用于读取用于传输程序的存储介质的设备,以及/或者具有通过网络接收程序的接口设备。这种传输在一般的计算机解释部分中进行讨论。
示例计算机系统架构
图17A是根据一些实施方式的适合于实现所要求保护的公开内容的实施方式的计算机系统的示例抽象图。
在图17A中,计算机系统1710的结构通常包括至少一个计算机1714,它经由总线子系统1712与外围设备进行通信。通常,计算机包括处理器(例如,微处理器、图形处理单元、或数字信号处理器)、或其电子处理等同物,例如ASIC或FPGA。通常,外围设备包括包含存储器子系统1726和文件存储子系统1728的存储子系统1724、用户接口输入设备1722、用户接口输出设备1720和/或网络接口子系统1716。输入和输出设备能够与计算机系统1710进行直接和远程用户交互。计算机系统能够使用至少一个输出设备和/或网络接口子系统进行重要的后处理活动。
计算机系统可以结构化为服务器、客户端、工作站、大型机、个人电脑(PC)、平板PC、机顶盒(SIB)、个人数字助理(PDA)、蜂窝电话、智能手机、web设备、机架安装的“刀片”、一体机、电视、游戏站、网络路由器、交换机或桥接器、或具有指定要由该机器采取的动作的指令的任何数据处理机器。如在本文中使用的,术语“服务器”是指通常为另一计算机或处理器执行过程并将数据和信息发送至另一计算机或处理器的计算机或处理器。
计算机系统通常被部分地结构化有至少一个操作系统程序,例如微软的Windows、太阳微系统的Solaris、苹果电脑的MacOs和iOS、谷歌的Android、Linux和/或Unix。计算机系统通常包括基本输入/输出系统(BIOS)和处理器固件。由处理器使用操作系统、BIOS和固件来对连接至处理器的任何子系统和接口进行结构化并控制连接至处理器的任何子系统和接口。实现这些操作系统的典型处理器包括:来自英特尔的奔腾、安腾和Xeon处理器;来自高级微设备公司的Opteron和Athlon处理器;来自亚马逊的Graviton处理器;来自IBM的POWER处理器;来自Oracle公司的SPARC处理器;以及来自ARM控股公司的ARM处理器。
本公开内容的任何实施方式既不限于用程序结构化的电子数字逻辑计算机,也不限于电子可编程器件。例如,所要求保护的实施方式可以使用光学计算机、量子计算机、模拟计算机等。此外,在只表示单个计算机系统或单个机器的情况下,使用这些术语的单数形式也可以表示单独或联合使用过程的计算机系统或机器的任何结构。由于计算机和网络的不断变化的性质,在图17A中描绘的计算机系统1710的描述仅旨在作为示例。计算机系统1710的许多其他结构具有除图17A中描绘的计算机系统以外的部件。
网络接口子系统1716提供到外部网络的接口,包括到通信网络1718的接口,并且经由通信网络1718耦接至其他计算机系统或机器中的相应接口设备。通信网络1718可以包括许多互连的计算机系统、机器和物理通信连接(由“链路”表示)。这些通信链路可以是有线链路、光学链路、无线链路(例如,使用WiFi或蓝牙协议)、或用于信息通信的任何其他物理设备。通信网络1718可以是任何合适的计算机网络,例如诸如因特网的广域网、和/或诸如以太网的局域到广域网。通信网络是有线的和/或无线的,并且许多通信网络使用加密和解密过程,例如与虚拟专用网络一起可用。通信网络使用一个或更多个通信接口,这些通信接口从其他系统接收数据,并将数据发送至其他系统。通信接口的实施方式通常包括以太网卡、调制解调器(例如,电话、卫星、有线电视或集成服务数字网络(ISDN))、(异步)数字用户线(DSL)单元、火线接口、通用串行总线(USB)接口等。通信算法(“协议”)可以使用如下一种或更多种通信语言指定:例如超文本传输协议(HTTP)、传输控制协议/因特网协议(TCP/IP)、实时传输协议/实时流传输协议(RTP/RTSP)、网间分组交换(IPX)协议和/或用户数据报协议(UDP)。
用户接口输入设备1722可以包括字母数字键盘、小键盘、指向设备例如鼠标、轨迹球、拨动开关、触控板、触控笔、图形平板、诸如条形码阅读器的光学扫描器、显示设备的触摸屏电子设备、音频输入设备例如语音识别系统或麦克风、眼睛注视识别、脑波模式识别、光学字符识别系统和其他类型的输入设备。这种设备通过电线或无线地连接至计算机系统。通常,术语“输入设备”表示将数据和信息传输到计算机系统1710中或通信网络1718上的所有可能类型的设备和过程。用户接口输入设备通常使得用户能够选择出现在某些类型的用户接口输出设备例如显示子系统上的对象、图标、文本等。
用户接口出设备1720可以包括显示子系统、打印机、传真机或诸如音频和触觉设备的非视觉通信设备。显示子系统可以包括CRT、诸如LCD的平板设备、图像投影设备或用于创建可见刺激的一些其他设备,例如虚拟现实系统。显示子系统还可以提供非视觉刺激,例如经由音频输出、香气产生或能触知/触觉输出(例如,振动和力)设备。通常,术语“输出设备”表示将数据和信息从计算机系统1710传输到用户或另一机器或计算机系统的所有可能类型的设备和过程。这些设备通过电线或无线地连接至计算机系统。注意,一些设备将数据和信息传输到计算机中以及从计算机中传输出,例如,在用户的手上产生振动和力同时也结合传感器来测量手的位置和移动的触觉设备。人体工程学和符号学科学的技术应用被用于提高用户与本文中所公开的任何过程和计算机交互的效率,例如与使用上述输入或输出设备中的任何一个的电路的设计和制造有关的任何交互。
存储器子系统1726通常包括几个存储器,其包括用于在程序执行期间存储指令和数据的主RAM 1730(或其他易失性存储设备)和在其中存储固定指令的ROM 1732。文件存储子系统1728为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光盘驱动器、诸如USB驱动器的闪速存储器或可移动介质盒。如果计算机系统1710包括执行光学字符识别的输入设备,则对于打印在物理对象(例如纸张)上的文本和符号,其可以用作存储程序和数据文件的设备。由一些实施方式使用的数据库和模块可以由文件存储子系统1728来存储。
总线子系统1712提供了用于在计算机系统1710的各个部件和子系统之间传输数据和信息的设备。尽管总线子系统1712被描绘为单条总线,但是该总线子系统的替选实施方式可以使用多条总线。例如,使用RAM的主存储器可以使用DMA系统直接与文件存储系统进行通信。
图17B是根据一些实施方式的适合于实现所要求保护的公开内容的实施方式的计算机系统的另一个抽象图。图17B描绘了存储器1740,例如与文件存储子系统1728和/或网络接口子系统1716(例如经由总线子系统1712)相关联的非暂态处理器可读数据和信息存储介质,并且可以包括指定电路设计的数据结构。存储器640可以是硬盘、软盘、CD-ROM、光学介质、可移动介质盒或者以易失性或非易失性形式存储计算机可读数据(例如,可以由光学字符识别系统处理的物理对象(例如纸张)上的文本和符号)的任何其他介质。从这种存储器进出处理器传输的程序可以转换为通过介质(例如网络、连接器、电线或电路轨迹作为电脉冲);或通过介质(例如,空间或大气作为声信号或作为其中电磁波谱的波长长于红外光的电磁辐射)传播的物理信号。
图18示出了根据一个实施方式的示例机器学习处理器。机器学习处理器1800(又名,人工智能(AI)处理器)可以包括存储器和算术单元,其被优化用于将输入数据与机器学习应用(例如,训练或推理)的权重集(例如,经训练或正在训练)相乘和相加。例如,机器学习处理器1800包括用于对向量(即,一维值阵列)执行操作的VXM 1810。系统的其他元件对称地布置在VXM 1810的任一侧上,以优化处理速度。例如,VXM 1810与MEM 1811至1812、SXM1813至1814相邻,以控制数据路由、数据格式和呈现控制器(或数值解释模块(NIM))1815至1816以及MXM 1817至1818。例如,ICU 1820控制跨块1810至1818的数据流动以及操作执行。机器学习处理器1800包括诸如芯片到芯片(C2C)电路1823至1824以及外部通信电路(例如,PCIe)1821的通信电路。例如,机器学习处理器1800还可以包括芯片控制单元(CCU)1822,以控制引导操作、时钟重置和其他低级设置操作。
在机器学习处理器中,速度和功耗的权衡可能与在典型的微处理器架构中不同,因为机器学习处理器可以执行多得多的算术运算,例如向量和矩阵乘法。因此,与典型的微处理器相比,上述本公开内容的实施方式可能导致意外的大的功耗降低。在一个实施方式中,数据存储模块可以跨机器学习处理器1800在广泛的应用中实现,以降低功耗。例如,根据上述实施方式的数据存储模块可以广泛地用于MXM和VXM单元,以降低例如芯片的功耗。有利地,一旦实现,可以分析处理器以确定位更频繁或不经常切换的位置。例如,基于使用统计数据,可以修改数据存储模块,以例如通过将以较高频率变化的位与多位触发器(MBFF)相关联以及将不经常变化的位和/或处于关键处理路径中的位与较低阶MBFF或单位触发器(SBFF)相关联来降低功耗。例如,对数据存储模块定义的变化可能使数据存储模块的所有实例跨整个处理器变化,从而公布并增加功耗的降低。
示例语义配置
能指“商业解决方案”仅在以下段落内表示特定技术领域(并且因此是不可抢占的——参见Bilski):电子结构、指定机器的过程、可制造电路(及其邱奇图灵等同物)、或应用科学和/或技术以在商业中用于解决未满足的技术需要的物质组成。
能指“抽象”(当在本文中公开的任何启用实施方式的专利权利要求中用于新的商业解决方案——该商业解决方案是一个或更多个自然法则(参见Benson)的科学使用,并解决技术问题{参见Diehr}以在商业中使用——或对用于商业的现有解决方案进行改进{参见Diehr}——时)——是由本发明人(参见MPEP 2111.01(第9版,2017年08月修订版))如下精确定义的:
a)新的商业解决方案是“抽象的”,如果它不是新颖的(例如,它在同等的现有技术(参见Alice)中是公知的和/或使用同等的现有技术的解决方案在科学、工程或商业上长期流行(参见Bilski)),并且因此新的商业解决方案在35 U.S.C.102下是不能取得专利的,例如,因为“难以理解”(参见韦氏词典对“抽象”的定义)商业解决方案与同等现有技术解决方案有何不同;或者
b)新的商业解决方案是“抽象的”,如果现有的现有技术包括至少一个相似现有技术解决方案(参见KSR),或者现有的现有技术包括至少两个可以由技术人员(通常称为本领域普通技术人员(PHOSITA),参见MPEP 2141至2144(第9版,2017年08月修订版))组合以相当于新的商业解决方案的现有技术出版物(参见Alice),并且因此新的商业解决方案在35U.S.C.103下是不能取得专利的,例如,因为“难以理解”新的商业解决方案与现有的现有技术的PHOSITA组合/应用有何不同;或者
c)新的商业解决方案是“抽象的”,如果它没有被公开有使它实践的描述,因为不足的指导存在于描述中,或者因为只描述了通用实现(参见Mayo)而没有指定的部件、参数或功能,使得PHOSITA无法实例化在商业中使用的新解决方案的实施方式,例如,不需要由PHOSITA执行特殊编程(参见Katz)(或,例如电路设计),并且因此新的商业解决方案在35U.S.C.112下是不能取得专利的,例如,因为“难以理解”如何在商业中使用新的商业解决方案的任何实施方式。
结论
具体实施方式表示本文中单独描述的各个特征、结构、功能或特性,以及两个或更多个这样的特征、结构、功能或特性的任何组合,在一定程度上,这些特征、结构、功能或特性或者其组合由具体实施方式根据技术人员的知识和理解整体实现,而不管这些特征、结构、功能或特性或其组合是否解决本文中公开的任何问题,并且不限于本专利权利要求书的范围。当本公开内容的实施方式包括特定特征、结构、功能或特性时,结合本公开内容的另一实施方式(无论是否明确描述)使用这样的特征、结构、功能或特性,例如作为另一特征、结构、功能或特性的替代物都在技术人员的知识和理解内。
鉴于具体实施方式,技术人员将理解,可以实现本公开内容的任何实施方式的许多变型,例如本文中描述的元件的功能和结构,同时与本公开内容的实施方式一样有用。本公开内容的实施方式的一个或更多个元件可以替代另一个实施方式中的一个或更多个元件,将如技术人员理解的那样。关于本公开内容的任何实施方式的文字表明其在商业中的使用,从而使得其他技术人员能够在商业中类似地使用本公开内容的这个实施方式。
该具体实施方式被适当地编写以提供知识和理解。它既不详尽也不限制所描述的精确结构,而是应当符合与所公开的原则和特征一致的最广泛的范围。但不限于,在本专利申请中描述、表示或通过引用并入(或明确并入)的所有等同物均被具体地并入到具体实施方式中。另外,关于本公开内容的任何一个实施方式描述、表示或并入的所有变型也可以包括在任何其他实施方式中。任何这样的变型都包括当前已知的变型以及未来的变型两者,例如,用于实现的任何元素都包括提供相同功能的未来等同元素,而不管未来等同元素的结构如何。
所要求保护的公开内容及其实施方式的集合的范围旨在通过所附权利要求及其等同物来定义和判断。具体实施方式包括所附权利要求,其中每个权利要求作为单独的要求保护的公开内容而独立。任何实施方式都可以具有比在权利要求中明确指定的更多的结构和特征。
最后,主要出于可读性和指导目的而选择本说明书中使用的语言,并且它可能没有被选择以描绘或限定本发明的主题。因此,本公开内容的范围旨在不受该详细描述的限制,而是受基于此对申请发出的任何权利要求的限制。因此,实施方式的公开内容旨在说明,而非限制本公开内容的范围,该范围在所附权利要求中阐述。

Claims (33)

1.一种确定性装置,包括:
与确定性处理器通信上耦接并接近所述确定性处理器的确定性近计算存储器,所述确定性近计算存储器包括多个数据存储体,所述多个数据存储体具有用于每个数据存储体的全局存储器地址空间、控制总线、数据输入总线和数据输出总线;以及
所述确定性处理器,其被配置成经由所述控制总线发起对所述多个数据存储体中数据集的检索,检索到的数据集包括经由所述数据输出总线传递到所述确定性处理器的多个流寄存器上的所述数据存储体中选定数据存储体的至少一行。
2.根据权利要求1所述的确定性装置,其中,所述确定性处理器还被配置成经由所述控制总线发起另一数据集到所述多个数据存储体的写入,所述另一数据集包括经由所述数据输入总线从所述确定性处理器的流寄存器传递的所述多个数据存储体中选定数据存储体的一行或更多行。
3.根据权利要求1所述的确定性装置,其中,所述确定性处理器还包括切换执行模块(SXM),所述切换执行模块被配置成通过重新布置检索到的数据集来实现片上数据移动。
4.根据权利要求1所述的确定性装置,其中:
所述确定性近计算存储器的多个数据存储体被布置在第一集成电路设备上;以及
所述确定性处理器被布置在第二集成电路设备上。
5.根据权利要求4所述的确定性装置,其中,所述第一集成电路设备被定位成接近所述第二集成电路设备。
6.根据权利要求4所述的确定性装置,其中,所述第一集成电路设备和所述第二集成电路设备定位在中介层上。
7.根据权利要求4所述的确定性装置,其中,所述第一集成电路设备和所述第二集成电路设备以面对面配置定位。
8.根据权利要求4所述的确定性装置,其中,所述第一集成电路设备和所述第二集成电路设备以面对面配置定位,其中,所述第一集成电路设备与所述第二集成电路设备之间的互连选自由以下组成的组:微凸块接合、混合接合和硅通孔(TSV)接合。
9.根据权利要求4所述的确定性装置,其中,所述第一集成电路设备和所述第二集成电路设备以面对背配置定位,其中,所述第一集成电路设备与所述第二集成电路设备之间的互连由硅通孔(TSV)接合形成。
10.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器的存储器阵列选自由以下组成的组:动态随机存取存储器、静态随机存取存储器、磁阻随机存取存储器、或非存储器、与非存储器、闪速存储器、相变存储器、铁电存储器和纳米管随机存取存储器。
11.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器的至少一个存储器存储体在第一集成电路设备上具有存储器阵列,所述存储器阵列耦接至第二集成电路设备上的读出放大器集。
12.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器的至少一个存储器存储体包括存储器阵列和读出放大器集。
13.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器的至少一个存储器存储体是低随机事务速率(RTR)动态随机存取存储器(DRAM)。
14.根据权利要求1所述的确定性装置,还包括:
作为所述确定性近计算存储器的一部分的低随机事务速率(RTR)存储器;以及
所述处理器与所述RTR存储器之间的所述数据输出总线的多条并发数据线,所述多条并发数据线用于将检索到的数据集从所述低RTR存储器传递到所述处理器。
15.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器包括被配置成具有所述全局存储器地址空间的低随机事务速率(RTR)存储器,以用于降低所述确定性装置的功率消耗和功率损耗。
16.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器包括低随机事务速率(RTR)存储器,其被配置为能够并发访问的多个动态随机存取存储器(DRAM)存储体。
17.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器被配置成用于同时对所述多个数据存储体进行并发全局访问。
18.根据权利要求1所述的确定性装置,其中,所述确定性近计算存储器包括用于存储写操作的行缓冲器,所述行缓冲器被配置成延迟对所述确定性近计算存储器的所述写操作。
19.根据权利要求18所述的确定性装置,其中:
所述多个数据存储体被配置成同时将所述数据集直接检索到所述行缓冲器中;以及
所述流寄存器中的至少一个被配置成使来自所述行缓冲器的所述数据集以朝向切片的数据流动方向被加载,旨在根据由所述确定性处理器发起的一个或更多个指令在下一个时钟周期上对所请求的数据集进行操作。
20.根据权利要求1所述的确定性装置,其中,所述全局存储器地址空间被配置成使用所述确定性处理器的多个切换执行模块(SXM)来提供通道间切换机制,以用于允许所述确定性处理器的任何计算元件从任何超通道访问驻留在所述确定性近计算存储器上或驻留在多个静态随机存取存储器(SRAM)存储体上的任何请求数据。
21.根据权利要求1所述的确定性装置,还包括用于对数据信号进行过滤的多路复用器切换网络,所述多路复用器切换网络基本上专门位于所述确定性处理器的管芯上,并且所述确定性近计算存储器的存储器存储体行输出连接至所述多路复用器切换网络。
22.根据权利要求21所述的确定性装置,其中,所述多路复用器切换网络还包括所述管芯上的纵横开关,由此所述纵横开关将数据引导到所述确定性处理器上的至少一个流。
23.根据权利要求1所述的确定性装置,其中,所述确定性处理器经由无源中介层耦接至所述确定性近计算存储器。
24.根据权利要求1所述的确定性装置,其中,所述确定性处理器经由有源中介层耦接至所述确定性近计算存储器。
25.根据权利要求1所述的确定性装置,还包括多个确定性处理器,所述多个确定性处理器经由无源中介层耦接至所述确定性近计算存储器。
26.根据权利要求1所述的确定性装置,还包括多个确定性处理器,所述多个确定性处理器经由有源中介层耦接至所述确定性近计算存储器。
27.一种使用耦接至确定性近计算存储器的确定性处理器进行确定性计算的方法,所述方法包括:
将数据集存储在所述确定性近计算存储器的多个数据存储体中,所述多个数据存储体具有用于每个数据存储体的全局存储器地址空间、控制总线、数据输入总线和数据输出总线;以及
经由所述控制总线发起使用所述全局存储器地址对所述多个数据存储体中数据集的检索,检索到的数据集包括经由所述数据输出总线传递到所述确定性处理器的多个流寄存器上的所述数据存储体中选定数据存储体的至少一行。
28.根据权利要求27所述的方法,还包括:
通过在每个请求的基础上调整突发长度以使带宽浪费最小化来顺序地访问所述确定性近计算存储器。
29.根据权利要求27所述的方法,还包括:
经由与所述确定性近计算存储器的集成电路设备相关联的数据输入/输出(I/O)子系统上的多个引脚提供从所述确定性处理器到所述确定性近计算存储器的全局访问。
30.一种近计算存储器设备,包括:
多个存储器存储体,每个存储器存储体具有用于存储数据的多个行,每个存储器存储体能够由处理器独立且并发地寻址,以用于将第一数据写入到所述多个存储器存储体的第一选定存储体中的选定行,以及用于从所述多个存储器存储体的第二选定存储体中的选定行读取第二数据,
其中,在需要所述第二数据到达所述处理器的一个或更多个计算元件之前的预定时间段读取所述第二数据,并且在所述第一选定存储体的已知刷新之前或之后写入所述第一数据。
31.根据权利要求30所述的近计算存储器设备,其中,所述近计算存储器设备以确定性方式操作。
32.根据权利要求30所述的近计算存储器设备,其中,所述多个存储器存储体具有耦接至所述处理器的单个确定性核的公共全局存储器访问、公共控制总线和公共数据输出总线。
33.根据权利要求30所述的近计算存储器设备,其中,所述多个存储器存储体包括能够由所述处理器的至少单个确定性核访问的全局存储器。
CN202180050028.4A 2020-06-16 2021-06-15 用于确定性处理器的确定性近计算存储器以及存储器单元与处理单元之间的增强数据移动 Pending CN115885344A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063039982P 2020-06-16 2020-06-16
US63/039,982 2020-06-16
US202063047800P 2020-07-02 2020-07-02
US63/047,800 2020-07-02
PCT/US2021/037488 WO2021257609A2 (en) 2020-06-16 2021-06-15 Deterministic near-compute memory for deterministic processor and enhanced data movement between memory units and processing units

Publications (1)

Publication Number Publication Date
CN115885344A true CN115885344A (zh) 2023-03-31

Family

ID=79268741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180050028.4A Pending CN115885344A (zh) 2020-06-16 2021-06-15 用于确定性处理器的确定性近计算存储器以及存储器单元与处理单元之间的增强数据移动

Country Status (4)

Country Link
US (1) US20230115494A1 (zh)
EP (1) EP4165637A2 (zh)
CN (1) CN115885344A (zh)
WO (1) WO2021257609A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116243872A (zh) * 2023-05-12 2023-06-09 南京砺算科技有限公司 一种私有内存分配寻址方法、装置、图形处理器及介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220044107A1 (en) * 2020-08-06 2022-02-10 Micron Technology, Inc. Optimized sensor fusion in deep learning accelerator with integrated random access memory
WO2023163954A1 (en) * 2022-02-22 2023-08-31 Groq, Inc. Die-to-die dense packaging of deterministic streaming processors

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3579461B2 (ja) * 1993-10-15 2004-10-20 株式会社ルネサステクノロジ データ処理システム及びデータ処理装置
US8595459B2 (en) * 2004-11-29 2013-11-26 Rambus Inc. Micro-threaded memory
US20100314730A1 (en) * 2009-06-16 2010-12-16 Broadcom Corporation Stacked hybrid interposer through silicon via (TSV) package
US8645589B2 (en) * 2009-08-03 2014-02-04 National Instruments Corporation Methods for data acquisition systems in real time applications
US20200098692A1 (en) * 2018-09-26 2020-03-26 Intel Corporation Microelectronic assemblies having non-rectilinear arrangements

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116243872A (zh) * 2023-05-12 2023-06-09 南京砺算科技有限公司 一种私有内存分配寻址方法、装置、图形处理器及介质

Also Published As

Publication number Publication date
WO2021257609A3 (en) 2022-01-27
EP4165637A2 (en) 2023-04-19
US20230115494A1 (en) 2023-04-13
WO2021257609A2 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
US20230115494A1 (en) Deterministic near-compute memory for deterministic processor and enhanced data movement between memory units and processing units
US11893424B2 (en) Training a neural network using a non-homogenous set of reconfigurable processors
US7937558B2 (en) Processing system with interspersed processors and communication elements
US11886931B2 (en) Inter-node execution of configuration files on reconfigurable processors using network interface controller (NIC) buffers
US11392740B2 (en) Dataflow function offload to reconfigurable processors
US11782856B2 (en) Compile time instrumentation of data flow graphs
US11182264B1 (en) Intra-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS)
US20220058034A1 (en) Runtime Patching of Configuration Files
Cheng et al. Emerging monolithic 3D integration: Opportunities and challenges from the computer system perspective
Shao et al. Simba: scaling deep-learning inference with chiplet-based architecture
TW202227979A (zh) 用於檢測串流相容及廣播相容的資料存取型樣的編譯時邏輯
TW202230129A (zh) 用於檢測串流相容和廣播相容的資料存取型樣之編譯時邏輯
US20230409395A1 (en) Runtime Virtualization of Reconfigurable Data Flow Resources
Woo et al. Pragmatic integration of an SRAM row cache in heterogeneous 3-D DRAM architecture using TSV
TWI792773B (zh) 用於可重配置處理器即服務(RPaaS)的節點內基於緩衝器的串流
US20230297527A1 (en) Direct Access to Reconfigurable Processor Memory
US20230024670A1 (en) Deterministic memory for tensor streaming processors
Gao Scalable Near-Data Processing Systems for Data-Intensive Applications
Egawa et al. Design and early evaluation of a 3-D die stacked chip multi-vector processor
Russo Adaptation of High Performance and High Capacity Reconfigurable Systems to OpenCL Programming Environments
Tang Hardware Modeling and Efficient Architectural Exploration for Machine Learning Accelerators
WO2023163954A1 (en) Die-to-die dense packaging of deterministic streaming processors
WO2022133043A1 (en) Runtime execution of configuration files on reconfigurable processors with varying configuration granularity
WO2023034221A1 (en) Scale computing in deterministic cloud environments
CN116881615A (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