CN110245107A - 用于提供用于加速器的结构的系统、装置和方法 - Google Patents

用于提供用于加速器的结构的系统、装置和方法 Download PDF

Info

Publication number
CN110245107A
CN110245107A CN201910104256.XA CN201910104256A CN110245107A CN 110245107 A CN110245107 A CN 110245107A CN 201910104256 A CN201910104256 A CN 201910104256A CN 110245107 A CN110245107 A CN 110245107A
Authority
CN
China
Prior art keywords
request
accelerator
memory
router
coupled
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
CN201910104256.XA
Other languages
English (en)
Inventor
L·帕普
R·D·阿德勒
A·K·斯里瓦斯塔瓦
A·阿南塔拉曼
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110245107A publication Critical patent/CN110245107A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0683Plurality of storage devices
    • 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)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)

Abstract

在一个实施例中,一种装置包括:加速器,其用于执行指令;加速器请求解码器,其耦合到加速器以执行对来自加速器的请求的第一级解码,并且基于第一级解码来指引请求,加速器请求解码器包括存储器映射,用于识别与本地存储器相关联的第一地址范围和与系统存储器相关联的第二地址范围;以及非相干请求路由器,其耦合到加速器请求解码器以接收来自加速器请求解码器的非相干请求,并且执行对非相干请求的第二级解码,非相干请求路由器用于将第一非相干请求路由至第一管芯的边带路由器,并且将第二非相干请求指引至计算管芯。描述并要求保护其他实施例。

Description

用于提供用于加速器的结构的系统、装置和方法
技术领域
实施例涉及互连电路,并且更具体地涉及用于耦合到加速器的结构。
背景技术
通用处理器的计算能力持续增加。在许多计算系统中,通过提供与这种通用处理器分开的加速器,可以增强专用操作的增加的指令吞吐量。通常,这些加速器可以适配在与通用处理器分开的电路板上。虽然这些加速器内的专用操作卸载来自通用处理器的带宽需求,但是将存储器和其他资源互连到这些加速器可能会很复杂。
附图说明
图1是根据本发明的实施例的系统的一部分的框图。
图2是根据实施例的用于传送配置请求的方法的高级别视图。
图3是根据实施例的用于加速器管芯与数据源之间的请求/响应协议的方法的高级别视图。
图4是根据实施例的用于处理从加速器控制单元向系统存储器发出的请求的方法的高级别视图。
图5是根据实施例的用于处理从计算管芯到加速器管芯的本地存储器的存储器请求的方法的高级别视图。
图6是根据实施例的用于处理本地存储器请求的方法的高级别视图。
图7是根据本发明的实施例的方法的流程图。
图8是可以使用实施例的示例系统的框图。
图9是根据本发明的实施例的系统的框图。
图10是根据本发明的另一实施例的系统的框图。
具体实施方式
在各种实施例中,提供了用于加速器的模块化系统结构。该模块化系统结构可以用于互连集成电路的各种组件,例如,加速器设备。这种集成电路可以包括多个加速器和其他电路,并且可以耦合到诸如存储器资源之类的系统资源。在特定实施例中,该集成电路可以在至少一个半导体管芯上实现,本文中称为加速器管芯。集成电路可以适配在工业标准计算机扩展卡上,例如,可以经由连接器(例如,所谓的M.2或下一代形状因子(NGFF)连接器)耦合到主板或其他系统电路板。
更具体地,如本文提供的系统结构可以设计为具有相比典型系统结构更快的开发时间和更低的成本。另外,通过避免基于环的拓扑和对在加速器本身附近执行的操作进行解码,该结构可以以降低的功耗进行操作。另外,存储器路由资源可以被配置为类似地消耗较低功率,因为通过本文执行的解码,执行不那么严格的路由操作。另外,系统结构可以被配置为高效地识别可以在本地以高带宽处理的本地存储器请求。相反,被指引至通用处理器的请求(即,非相干请求)可以通过结构的更加功率密集的部分。然而,由于以这种方式进行相对有限数量的事务,因此这些部分的大小和范围可能受到限制,从而降低复杂度和功耗。换言之,该结构被设计为实现高带宽结构连接以用于支持本地存储器事务,同时提供减少数量的电路以用于对远程事务的相对较低带宽处理。也就是说,由于设想在本地而不是远程处理更多的事务,所以提供了用于处理高带宽事务的更直接的路线,并且针对要遍历到通用处理器的路径的事务提供了有限量的电路。
现在参考图1,示出了根据本发明的实施例的系统的一部分的框图。如图1所示,系统100可以是任何类型的计算设备,其可以采用许多不同的形式,范围从小形状因子便携式计算机设备到诸如服务器计算机之类的较大型计算机设备。在任何情况下,如图1所示,系统100包括计算管芯110。作为示例,计算管芯110可以是多核心处理器或在诸如独立集成电路(IC)之类的给定半导体封装中实现的其他片上系统(SoC)。进而,计算管芯110耦合到加速器管芯120。在本文的实施例中,加速器管芯120可以存在于诸如加速器集成电路之类的另一半导体封装中。在本文的特定实施例中,加速器管芯120本身可以存在于加速器集成电路内,该加速器集成电路适配在单独的电路板上,例如,快速外围部件互连(PCIe)卡。进而,该卡耦合到系统电路板的NGFF连接器,例如,容纳计算管芯110的主板。
如所示出的,系统存储器115耦合到计算管芯110。这种系统存储器可以实现为动态随机存取存储器(DRAM),例如,实现为一个或多个双列直插式存储器模块(DIMM)。虽然计算管芯110与系统存储器115之间的存储器业务可以是相干的(因为关于计算管芯110的内部高速缓存来维护高速缓存相干性),但是注意系统存储器115本身(和计算管芯110)关于加速器管芯120和与加速器管芯120相关联的存储器保持非相干。
在图1的实施例中,加速器管芯120包括上游交换端口122,其可以通过一条或多条总线(例如,总线N)耦合到计算管芯110。在实施例中,上游交换端口122可以实现为具有x16链路的PCIe设备。进而,上游交换端口122经由另一总线(总线N+1)耦合到主可缩放结构(PSF)125。进而,PSF 125作为片上结构进行操作,以相应地对事务进行解码和路由。在实施例中,PSF 125可以实现为集成的片上可缩放结构(IOSF),其可以根据半导体制造商的给定规范来设计,以提供用于附接芯片内的组件(例如,知识产权(IP)块)的标准化管芯上互连协议。基于例如与来自计算管芯110的传入事务相关联的地址信息,可以将这些事务提供给多个虚拟交换端口1260,1中的一个。如所示出的,虚拟交换端口1260经由另一总线(总线N+2)耦合到PSF 125,而虚拟交换端口1261进而经由另一总线(总线N+3)耦合到PSF 125。
虚拟交换端口1260在下游耦合到加速器控制单元128。加速器控制单元128可以实现为所谓的胶合逻辑,其实现用于计算管芯110与加速器管芯120之间的通信的接口电路。更具体地,加速器控制单元128可以用于在计算管芯110与加速器管芯120之间提供配置和其他低带宽业务信息的目的。为此,加速器控制单元128经由边带路由器145耦合到加速器140。如进一步示出的,加速器控制单元128可以例如通过给定的片上互连(例如,IOSF互连)耦合到显示控制器130(显示控制器130进而可以耦合到显示器(为了便于图1中的图示,未示出))。加速器控制单元128还耦合到等时业务管理器132,等时业务管理器132还可以与显示控制器130通信。等时业务管理器132可以用于相对高速的主频带业务(例如,数据传输)。更具体地,如所示出的,等时业务管理器132经由不同的虚拟通道耦合到加速器控制单元128和显示控制器130,使得可以经由这些不同的虚拟通道(并且其可以具有不同的优先级)将有差别的业务指引至给定目的地和/或从给定源对有差别的业务进行指引。如进一步示出的,等时业务管理器132耦合到存储器路由器1354
如图1中进一步示出的,虚拟交换端口1261耦合到输入/输出(I/O)端口129,I/O端口129进而耦合到非相干请求路由器136。注意,I/O端口129可以被配置为将加速器非相干请求转换为用于经由PSF 125进行的通信的主协议,以使得请求能够在管芯间从加速器管芯120路由至计算管芯110。在本文的实施例中,非相干请求路由器136可以被配置为将上游请求路由至非相干目的地,即,系统存储器115。非相干请求路由器136可以包括地址映射。更具体地,该地址映射可以经由基本输入/输出系统(BIOS)或其他系统软件或固件来编程。在实施例中,该地址映射可以包括用于指示事务将被路由至何处的信息。更具体地,非相干请求路由器136包括映射信息,其用于指示:(i)要被指引至边带路由器以配置本地块的事务(基本上是低速业务)(为此,要被配置的每个片上代理的空间映射被编程到地址映射中);以及(ii)非相干的并且要被向上游路由至系统存储器115的事务,系统存储器115如本文描述地关于加速器管芯120维护非相干性。
利用该地址映射,非相干请求路由器136可以对传入的非相干请求进行解码,并且基于请求落入的地址范围对这些请求进行分类。因此,非相干请求路由器136朝向PSF 125路由事务以用于上游通信或将事务路由至边带路由器135。通常,可以将与针对系统存储器的存储器事务相对应的非相干请求转发到PSF 125。相反,可以经由边带路由器135将被指引至加速器管芯120内的组件的读取/写入配置事务发送到这些组件。
进而,边带路由器135可以耦合到加速器管芯120内的各种代理(为了便于图1中的图示,未示出连接)。作为示例,边带路由器135可以耦合到相异的代理,例如,功率管理代理和用于配置加速器芯片120的各种组件(例如,存储器控制器等)的一个或多个配置代理。因此,非相干请求路由器136可以经由边带路由器135路由配置类型事务和边带信息类型事务。
仍然参考图1,非相干请求路由器136还耦合到加速器请求映射器138。在本文的实施例中,加速器请求映射器138可以配置为管理被指引向非相干请求路由器136的请求。因为可能有多个请求被指引至相同的地址,这种请求可以通过存储在给定缓冲器(例如,先进先出(FIFO)缓冲器)中而在加速器请求映射器138内进行管理。注意,在这种方案中,读取请求可以绕过写入请求。
进而,加速器请求映射器138耦合到加速器请求解码器142,加速器请求解码器142进一步耦合到加速器140。加速器请求解码器142可以被配置为实现针对来自加速器140的上游事务的第一级事务解码。更具体地,加速器请求解码器142可以基于传入的系统地址被配置为将请求指引向本地存储器150或者例如耦合到计算管芯110的系统存储器115。因此,利用这种多级解码配置,在加速器140附近执行该第一级解码,从而避免需要更高功耗的互连结构,例如,环形拓扑。通过避免典型的环形结构,降低了维护和验证成本,同时确保加速器管芯120保持在允许的功率包络内。此外,通过其中加速器请求解码器142将本地高带宽请求指引至转换器144并且相反经由加速器请求映射器138指引上游请求的这种配置,有限数量的请求通过映射器138。因此,加速器请求映射器138可以配置有有限数量的有限状态机(FSM),从而降低复杂度和功耗。并且在这种多级事务解码的布置中,注意,非相干请求路由器136可以被配置为实现针对上游事务的第二级事务解码,以确定这样的事务是针对内部管芯目的地还是用于计算管芯110。
在实施例中,加速器140可以被配置为与计算管芯110结合地工作以加速特定功能。为此,计算管芯110可以将特定任务卸载到加速器140以释放其带宽用于其他工作负载。虽然本发明的范围不限于此方面,但是这样的专门任务或功能可以包括:3D图形渲染和游戏;将特定分辨率视频流从服务器传送到客户端设备;以及用于机器学习的面部识别应用等等。
对于关于本地存储器150的高带宽事务,加速器请求解码器142可以使用内部映射结构来识别多个通道中的给定的一个通道,在该通道上这些本地事务可以被指引向本地存储器150。在实施例中,加速器请求解码器142可以从加速器140接收核心到非核心(C2U)请求、C2U响应和C2U数据。对于C2U请求,加速器请求解码器142可以使用该请求的操作码来解码该事务是要被指引向本地存储器150还是要被指引向计算管芯110。如果事务被指引至计算管芯110,则该请求可以经由非相干请求路由器136(以及中间加速器请求映射器138)并且经由I/O端口129在上游方向上传递到计算管芯110。相反对于本地存储器请求,加速器请求解码器142包括散列引擎,用于基于给定的本地存储器事务的地址来执行存储器散列函数,以经由适当的存储器路由器(即,一个或多个路由器1450-1453)来路由事务。注意,在通过加速器请求解码器142内的内部存储器映射实现的对本地存储器请求的定向传送的情况下,存储器路由器145可以实现为轻量级交换机,具有降低的功耗和复杂度。在实施例中,存储器路由器145可以具有包括以下各项的特性:(i)对严格专用于存储器事务的有限CPU地址范围进行解码;(ii)将事务路由至特定的(预定的)存储器控制器;以及(iii)处理主要预期在一个方向上流动的业务。相反,常规地使用的一组复杂的路由器典型地涉及将“n”个源节点映射到“m”个目的地节点的以及与之相关联的配置,如果实现该网格类网络可能不期望地增加复杂度和功耗。更进一步地,加速器请求解码器142可以接收传入的响应(例如,来自本地存储器150),其可以以非核心到核心(U2C)响应的形式,并且适当地指引这些响应(例如,在多加速器管芯的情况下,指引至多个加速器中的给定的一个加速器)。加速器请求解码器142可以被配置为例如经由一组请求跟踪器来跟踪被指引向存储器的请求。
注意,虽然为了方便起见示出了单个加速器,但是在特定实施例中,多个加速器可以存在于给定的加速器管芯上。在不同的情况下,加速器140可以实现为图形引擎、媒体引擎、机器学习引擎或其他专用处理电路。作为加速器140是图形加速器的情况下的示例,加速器管芯120可以在分立图形卡上实现。在加速器140被实现为媒体加速器的情况下,这种实现方式可以通过视频编码/解码引擎的方式,例如,用于服务器实例化,例如,用于社交媒体公司。在加速器140是机器学习引擎的情况下,这种引擎可以用于深度学习应用中的人工智能/推理,并且其可以在用于服务提供商或其他的服务器的扩展卡中实现。
注意,在本文的实施例中,本地存储器150可以实现为管芯上存储器。在其他情况下,本地存储器可以实现为独立存储器设备,例如,耦合到加速器管芯120的双倍数据速率(DDR)或低功率DDR存储器(并且其可以适配在具有加速器管芯120的给定卡上)。
如图1中进一步示出的,加速器请求解码器142可以经由多个通道耦合到转换器144。在本文的实施例中,转换器144可以被配置为将从加速器请求解码器142接收的所谓的管芯内互连(IDI)事务转换为用于向多个存储器路由器(即,存储器路由器1450-1453)中的给定的一个存储器路由器通信的格式。注意,存储器路由器145可以被配置为从多个源接收输入并将输入路由至对应的存储器控制器146或相邻的存储器路由器145。在这方面,这样的存储器路由器可以包括地址映射,用于识别给定路由器负责的存储器的范围。
存储器路由器145可以被配置为遵循优先级请求(例如,虚拟通道请求),并且使用一种或多种仲裁技术来确定传入请求的优先级。进而,每个存储器路由器1450-1453可以经由对应的高带宽存储器互连(例如,以2千兆赫(GHz)的32字节(B))耦合到对应的存储器控制器1460-1463。进而,每个存储器控制器146可以经由对应的互连耦合到存储器150。更具体地,这种互连可以经由要被指引至本地存储器150内的特定通道的存储器150的I/O部分152耦合。应理解,虽然在图1的实施例中以此高级别示出,但是许多变化和替代是可能的。
现在参考图2,示出了根据实施例的用于传送配置请求的方法的高级别视图。更具体地,如图2所示,示出了根据实施例的用于执行加速器组件的配置的事务流程200。如所示出的,事务流程200经由核心210发出的配置请求(cfg)启动。注意,核心210可以是多核心处理器或其他SoC的通用处理核心,其可以在与加速器管芯分开的计算管芯中实现。并且应理解,核心210可以执行诸如BIOS、操作系统(OS)或启动配置操作的执行的其他系统软件之类的软件,在该实例中用于加速器组件。配置请求的一个示例可以是在启动时,加速器(例如,图形)驱动程序被加载至耦合到主应用处理器(例如,CPU或其他SoC)的系统存储器中。CPU调用这些驱动程序,并且这些驱动程序配置加速器芯片上的各个方面。作为示例,在PCIe设备枚举期间,PCIe驱动程序将总线、设备和功能编号分配给加速器卡上的PCIe设备中的每个PCIe设备。在此配置之后,每一个设备都知道其唯一标识号是什么,使得该设备可以声明定址到其的事务。作为另一示例,系统存储器中的显示驱动程序可以配置显示组件并在系统将向显示器渲染数据时启用这些显示组件。
仍然参考图2,在上游端口(USP)根复合体220处在加速器管芯中接收到该配置请求。在实施例中,该根复合体可以实现为PCIe设备,例如,PCIe交换端口。进而,根复合体220将该配置请求向下游指引至加速器芯片的主可缩放结构230。结构可以执行对该配置事务的结构解码。在实施例中,这种解码可以基于配置事务的总线设备功能(BDF)信息,以识别配置请求的目的地。出于讨论的目的,假设该解码指示配置事务要被指引至加速器管芯的特定加速器(加速器管芯可以包括一个或多个这样的加速器)。因此,PSF 230可以将配置请求转发到加速器控制单元250(其可以经由虚拟交换端口耦合到PSF),绕过I/O端口240。在实施例中,这种加速器控制单元可以在加速器本身内实现,或者可以耦合到加速器。在任何情况下,当在加速器控制单元250中接收到配置请求时,可以发生根据配置事务的各种配置操作以适当地针对所请求的布置配置加速器。应理解,虽然在图2的实施例中以此高级别示出,但是许多变化和替代是可能的。
现在参考图3,示出了用于加速器管芯与数据源(例如,系统存储器)之间的请求/响应协议的方法的高级别视图。更具体地,图3示出了用于执行从加速器310向系统存储器350(其可以是进而耦合到计算管芯的、计算设备的系统存储器)发出的存储器操作的事务流程300。因此,系统存储器350可以关于加速器管芯的加速器310非相干地维护。如所示出的,事务流程300经由加速器310发出存储器读取或写入操作(MemRd/write)而开始,该存储器读取或写入操作从加速器310发出,并且作为系统存储器请求被指引至I/O端口320。注意,虽然示出为在加速器310与I/O端口320之间的直接通信,但是这种请求可以通过中间结构,例如,请求解码器、映射器和/或路由器。在任何情况下,I/O端口310可以隐式地解码该请求并将其指引至PSF 330(在某些情况下,I/O端口320可以经由中间虚拟交换端口耦合到PSF 330)。进而,PSF 330可以将该请求识别为上游存储器请求并将其转发到根复合体340,该根复合体340可以被配置为将该请求指引至计算管芯的上游交换端口。进而,计算管芯可以处理该请求以确定其为被指引至系统存储器中的特定位置的存储器请求。因此,诸如集成存储器控制器之类的计算管芯的各种资源可以将请求指引至系统存储器以执行读取或写入操作。
假设存储器请求是读取请求。因此,系统存储器350可以获得所请求的数据并将其向下游提供回给请求者,即,加速器310。因此,如图3中进一步示出的,该响应可以向下游被指引通过根复合体340并且到达PSF 330,PSF 330进而可以执行结构解码以确定目的地。因此,PSF 330将响应指引至I/O端口320,I/O端口320进而将该响应路由回加速器310。在实施例中,注意,加速器管芯内的中间路由/映射/解码结构可以执行各种级别的解码,包括标签分析,用于确定该读取数据是要被指引至加速器310本身还是指引至另一位置,例如,加速器控制单元(加速器的加速器控制单元或耦合到加速器的加速器控制单元)。应理解,虽然在图3的实施例中以此高级别示出,但是许多变化和替代是可能的。
现在参考图4,示出了用于处理从加速器控制单元向系统存储器发出的请求的方法的高级别视图。更具体地,图4的事务流程400可以类似于图3的事务流程300而进行。然而,注意,请求不是从加速器本身发出,在这里请求从加速器控制单元410发出。并且进一步注意,请求直接通过I/O端口420并且被直接向上游指引至PSF 430。与事务流程300一样,从执行隐式解码的PSF 430,事务经由上游交换端口440向上游转发,并且到达系统存储器450。进而,来自系统存储器450的对应响应通过交换端口440并且经由PSF 430向下游流回,PSF 430执行对响应的结构解码以将其直接发送到加速器控制单元410。
现在参考图5,示出了根据实施例的用于处理从计算管芯到加速器管芯的本地存储器的存储器请求的方法的高级别视图。更具体地,如图5中示出的,事务流程500详细描述了用于处理存储器请求的方法,该存储器请求是从计算管芯的核心510发出的,该存储器请求被指引至加速器管芯的本地存储器。如所示出的,事务流程500经由核心510向下游向加速器管芯发出存储器请求而开始。更具体地,经由上游交换端口根复合体520接收该请求。根复合体520将该下游请求指引至PSF 530,PSF 530执行结构解码。利用识别该下游请求的该结构解码,注意,该请求被直接发送到加速器控制单元550(绕过I/O端口540)。进而,加速器控制单元550可以发出经由片上互连接收的存储器请求,作为根据特定虚拟通道(例如,虚拟通道0)具有给定优先级的请求。如所示出的,加速器控制单元550例如经由给定虚拟通道将该存储器请求转发到本地存储器560,本地存储器560进而执行存储器请求(例如,读取或写入操作)。
如所示出的,本地存储器560因此经由相同的虚拟通道发出存储器响应并将其指引至加速器控制单元550。在一些情况下,加速器控制单元550可以可选地修改该响应。例如,在虚拟化环境中,可以在将存储在本地存储器中的数据发送到系统(核心)之前修改该数据。例如,如果系统管理十个设备,每个设备可以具有相同的本地地址“0xab”,这意味着不同内容针对不同代理。然而,就系统而言,存在唯一的地址。因此,这些加速器单元将虚拟地址转换为物理地址,反之亦然。然后,加速器控制单元550向PSF 530发出作为上游完成的响应,PSF 530作为响应执行隐式解码以将完成向上游经由根复合体520指引至核心510。应理解,虽然在图5的实施例中以此高级别示出,但是许多变化和替代是可能的。
现在参考图6,示出了用于处理本地存储器请求的方法的高级别视图。更具体地,可以使用图6的事务流程600将本地存储器请求从加速器610传送到本地存储器670。如可见的,该加速器存储器请求被提供给加速器请求解码器620,加速器请求解码器620可以基于其本地映射来确定该请求被指引至本地存储器。因此,加速器请求解码器620例如经由转换器(为了便于图6中的图示,未示出)根据存储器请求的地址将请求转发到多个存储器路由器630中的特定的一个存储器路由器。进而,路由器630可以将请求转发到最接近的(例如,直接耦合的)存储器控制器640。如果由于某种原因,该存储器请求不是针对该特定存储器控制器拥有的存储器的一部分的,则从一个存储器控制器到另一存储器控制器的附加路由(如可见的,从第一存储器控制器640到第二存储器控制器650并且潜在地到第三存储器控制器660)可以发生。否则,存储器请求从存储器控制器640直接路由至本地存储器670以用于实现存储器请求(例如,读取请求)。因此,存储器数据可以经由适当的存储器控制器和路由器并且通过加速器请求解码器620传送回加速器610以供消耗。应理解,虽然在图6的实施例中以此高级别示出,但是许多变化和替代是可能的。
现在参考图7,示出了根据本发明的实施例的方法的流程图。更具体地,方法700是用于如本文描述地在加速器管芯的系统结构中执行对事务的多级解码的方法。因此,方法700可以由硬件电路、固件、软件和/或其组合来执行。如图7所示,方法700通过在加速器请求解码器中接收请求而开始(框710)。该加速器请求解码器可以与加速器紧密耦合以接收请求。接下来,在框720处,在加速器请求解码器中对该请求执行第一级解码。更具体地,请求的地址可以用于访问加速器请求解码器的存储器映射以识别请求的预期目标。
仍然参考图7,基于该第一级解码,在菱形框730处确定该请求是否被指引至本地存储器,即,与加速器管芯相关联的本地存储器(相干存储器)。如果是,则控制传递到框740,其中加速器请求解码器可以将请求映射到特定存储器路由器。更具体地,基于存储器映射,加速器请求解码器可以识别多个存储器路由器中的可以向其发送请求的一个存储器路由器。因此,控制传递到框745,其中将请求发送到该选定的存储器路由器。注意,加速器请求解码器可以在给定通道上发送该请求,该给定通道例如经由转换器耦合到选定的存储器路由器。接下来,确定接收请求的存储器路由器是否是用于处理请求的正确的存储器路由器(菱形框750)。在实施例中,每个存储器路由器可以包括地址范围寄存器,用于识别存储器路由器与其相关联的地址范围。如果确定其为正确的存储器路由器,则控制传递到框760,其中将请求发送到本地存储器。更具体地,存储器路由器可以将请求转发到对应的存储器控制器,该对应的存储器控制器进而可以向存储器发出请求,分配存储器控制器的跟踪资源以用于处理存储器返回等等。
相反,如果确定存储器路由器不是正确的路由器,则控制传递到框755,其中存储器路由器可以将请求转发到相邻的存储器路由器,使得可以在该相邻的存储器路由器中再次执行菱形框750处的确定。因此,菱形框750和框755处的操作的循环可以迭代地发生,直到找到正确的存储器路由器。
仍然参考图7,如果在菱形框730处确定接收到的请求不是本地存储器请求,则加速器请求解码器将请求指引至非相干请求路由器(框770)。注意,请求可以在被递送到非相干请求路由器之前通过中间结构,例如,加速器请求映射器。
在任何情况下,控制从框770传递到菱形框775以确定该请求是否是系统存储器请求,即,被指引至耦合到计算管芯的非相干系统存储器的请求,该计算管芯进而耦合到加速器管芯。如果是,则控制传递到框780,其中将请求向上游指引至计算管芯,在计算管芯处可以处理该请求,以指引请求用于在系统存储器中进行处理。
相反,如果确定该请求是本地事务(例如,配置或边带事务)而不是针对系统存储器,则控制从菱形框775传递到框785。在框785处,非相干请求路由器可以将请求指引至边带路由器。注意,这种边带路由器可以耦合到加速器管芯的各种代理,并且可以用于指引诸如配置事务、监视事务等之类的各种边带事务。因此,在框790处,边带路由器可以将请求路由至片上目的地,例如,请求被指引至的给定组件。注意,在某些情况下,该边带请求可以在被发送到目的地组件之前遍历多个边带路由器。应理解,虽然在图7的实施例中以此高级别示出,但是许多变化和替代是可能的。
如本文描述的实施例可以以各种各样的系统类型实现,范围从小型便携式设备到更大更复杂的计算设备。现在参考图8,示出了可以使用实施例的示例系统的框图。在图8的图示中,系统800可以是移动系统,例如,平板计算机、2:1平板电脑、平板手机、车载系统或其他系统。如所示出的,存在SoC 810,并且可以将SoC 810配置为作为设备的应用处理器来操作。SoC 810可以包括多个管芯,包括具有如本文描述的系统结构的计算管芯和加速器管芯。
各种设备可以耦合到SoC 810。在所示的图示中,存储器子系统包括闪速存储器840和耦合到SoC 810的DRAM 845。另外,触摸板820耦合到SoC 810以提供显示能力和经由触摸的用户输入,包括在触摸板820的显示器上提供虚拟键盘。为了提供有线网络连接,SoC810耦合到以太网接口830。外围中心825耦合到SoC 810以实现与各种外围设备的接合,例如,可以通过各种端口或其他连接器中的任何一种耦合到系统800。
除了SoC 810内的内部功率管理电路和功能之外,PMIC 880耦合到SoC 810以提供基于平台的功率管理,例如,基于系统是由电池890供电还是经由AC适配器895由AC电力供电。除了该基于电源的功率管理之外,PMIC 880还可以基于环境和使用条件来执行平台功率管理活动。更进一步地,PMIC 880可以将控制和状态信息传送到SoC 810,以在SoC 810内引起各种功率管理动作。
仍然参考图8,为了提供无线能力,WLAN单元850耦合到SoC 810并且进而耦合到天线855。在各种实现方式中,WLAN单元850可以根据一种或多种无线协议提供通信。如进一步示出的,多个传感器860可以耦合到SoC 810。这些传感器可以包括各种加速度计传感器、环境传感器和其他传感器,包括用户手势传感器。最后,音频编解码器865耦合到SoC 810以提供到音频输出设备870的接口。当然应理解,虽然在图8中以该特定实现方式示出,但是许多变化和替代是可能的。
现在参考图9,示出了根据本发明的实施例的系统的框图。如图9所示,多处理器系统900是点对点互连系统,并且包括经由点对点互连950耦合的第一处理器970和第二处理器980。如图9所示,处理器970和980中的每一个可以是多核心处理器,包括第一处理器核心和第二处理器核心(即,处理器核心974a和974b,以及处理器核心984a和984b),但是在处理器中潜在地存在更多的核心。
仍然参考图9,第一处理器970还包括存储器控制器中心(MCH)972和点对点(P-P)接口976和978。类似地,第二处理器980包括MCH 982和P-P接口986和988。如图9所示,MCH972和982将处理器耦合到相应的存储器,即,存储器932和存储器934,这些存储器可以是本地附接到相应处理器的系统存储器(例如,DRAM)的一部分。第一处理器970和第二处理器980可以分别经由P-P互连962和964耦合到芯片组990。如图9所示,芯片组990包括P-P接口994和998。
此外,芯片组990包括接口992,用于通过P-P互连939将芯片组990与高性能图形引擎938耦合。进而,芯片组990可以经由接口996耦合到第一总线916。如图9所示,各种输入/输出(I/O)设备914可以耦合到第一总线916,以及总线桥918将第一总线916耦合到第二总线920。第一总线916还可以耦合到加速器912,本地存储器915耦合到加速器912。加速器912可以包括用于执行如本文描述的多级解码的系统结构。在一个实施例中,各种设备可以耦合到第二总线920,包括例如键盘/鼠标922、通信设备926和数据存储单元928(例如,磁盘驱动器或可以包括代码930的其他大容量存储设备)。此外,音频I/O 924可以耦合到第二总线920。实施例可以并入其他类型的系统中,包括移动设备,例如,智能蜂窝电话、平板计算机、上网本、UltrabookTM等。
现在参考图10,示出了根据本发明的另一实施例的系统的框图。在图10的实施例中,系统1000是自主驾驶计算系统。因此,系统1000可以在提供某种级别的自主驾驶的车辆内实现。应理解,利用不同级别的自主驾驶控制,可以自主地在系统1000内执行不同级别的工作负载以自主地执行一些或所有驾驶任务。
如所示出的,系统1000包括处理器1010,其可以是通用多核心处理器或其他SoC。处理器1010可以包括多个管芯,包括具有如本文描述的系统结构的计算管芯和加速器管芯。在不同的实现方式中,可以实现多个这样的处理器以跨这些处理器灵活地分配自主驾驶工作负载。处理器1010接收由功率管理集成电路(PMIC)1040控制的功率。
系统1000还可以包括一个或多个现场可编程门阵列(FPGA)1015或可以向其卸载某些自主驾驶工作负载的其他可编程加速器。处理器1010还耦合到非易失性存储器1025,在实施例中,非易失性存储器1025可以实现为闪速存储器。为了提供与车辆内的其他组件的通信,处理器1010还耦合到交换结构1020,在实施例中,交换结构1020可以实现为以太网交换结构,该以太网交换结构进而可以耦合到车辆内的其他组件,包括显示组件、车辆信息娱乐系统等。更进一步地,处理器1010(和交换结构1020)还耦合到微控制器1050。
此外,为了实现与其他系统(包括其他车辆、道路系统、空中更新源、信息娱乐内容源、传感器数据通信等)的交互,处理器1010和MCU 1050可以耦合到一个或多个射频集成电路(RFIC)1060。在实施例中,RFIC 1060可以被配置为支持基于5G的规范,用于经由各种无线网络的、汽车数据和其他数据的通信。为此,RFIC 1060可以耦合到车辆的一个或多个天线10700-1070n
如图10中进一步示出的,系统1000可以包括多个传感器10300-1030n,其经由传感器中心1035向处理器1010提供传感器信息。虽然本发明的范围在实施例中不对此方面进行限制,但是这样的传感器可以包括激光雷达、超声波、雷达和光学传感器,以及其他传感器类型。当车辆运行时,这种传感器可以获得大量的传感器数据。传感器中心1035可以被配置为融合该数据中的至少一些以提供关于车辆的周围环境的信息,以提供给处理器1010。进而,处理器1010和/或FPGA 1015可以结合执行自主驾驶工作负载而使用该融合的传感器信息。应理解,虽然在图10的实施例中以此高级别示出,但是许多变化和替代是可能的。
以下示例涉及另外的实施例。
在一个示例中,一种装置,包括:加速器,其在第一管芯上形成,用于执行指令;加速器请求解码器,其耦合到加速器以执行对来自加速器的请求的第一级解码,并且基于第一级解码来指引请求,加速器请求解码器包括存储器映射,用于识别与本地存储器相关联的第一地址范围和与系统存储器相关联的第二地址范围;加速器请求映射器,其耦合到加速器请求解码器以跟踪非相干请求;以及非相干请求路由器,其耦合到加速器请求映射器以接收来自加速器请求映射器的非相干请求,并且执行对非相干请求的第二级解码,非相干请求路由器用于将第一非相干请求路由至第一管芯的边带路由器,并且将第二非相干请求指引至耦合到第一管芯的计算管芯。
在示例中,该装置还包括:转换器,其包括多个输入通道,用于接收来自加速器请求解码器的本地存储器请求,并且将本地存储器请求转换为用于向本地存储器通信的存储器格式。
在示例中,该装置还包括:多个存储器路由器,其耦合到转换器;以及多个存储器控制器,每个存储器控制器耦合到多个存储器路由器中的一个存储器路由器。
在示例中,加速器请求解码器用于对请求的地址执行存储器散列函数,以识别多个存储器路由器中的用于接收请求的目标存储器路由器。
在示例中,多个存储器路由器中的第一存储器路由器用于:将第一本地存储器请求路由至耦合到第一存储器路由器的第一存储器控制器,第一存储器路由器与第一存储器控制器耦合到的地址范围相关联;以及当第二存储器请求不是与第一存储器控制器耦合到的地址范围相关联的时,将第二存储器请求路由至耦合到第一存储器路由器的第二存储器路由器。
在示例中,该装置包括要被耦合到系统电路板的加速器设备,该加速器设备包括第一集成电路和一个或多个存储器集成电路,第一集成电路包括第一管芯,一个或多个存储器集成电路包括本地存储器。
在示例中,该装置还包括耦合到加速器的一个或多个核心,其中,一个或多个核心用于将至少一个专用功能卸载到加速器。
在另一示例中,一种方法,包括:在耦合到加速器的加速器请求解码器中接收来自加速器的请求;在加速器请求解码器中执行对请求的第一级解码;基于第一级解码,如果请求是相干请求,则将请求指引至与加速器相关联的本地存储器;以及基于第一级解码,如果请求是非相干请求,则将请求指引至非相干请求路由器。
在示例中,该方法还包括:在非相干请求路由器中执行对请求的第二级解码。
在示例中,该方法还包括:基于第二级解码,如果请求以系统存储器为目标,则将请求向上游指引至计算管芯;以及基于第二级解码,如果请求是配置请求或边带请求中的一个,则将请求指引至边带路由器。
在示例中,该方法还包括:当请求是配置请求或边带请求时,将请求从边带路由器路由至片上目的地代理。
在示例中,该方法还包括:当请求是相干请求时,基于第一级解码将请求映射到多个存储器路由器中的选定的存储器路由器。
在示例中,该方法还包括:如果请求不是与关联于选定的存储器路由器的地址范围相关联的,则将请求从选定的存储器路由器转发到相邻的存储器路由器。
在示例中,该方法还包括:经由耦合到选定的存储器路由器的第一存储器控制器将请求发送到本地存储器。
在另一示例中,一种包括指令的计算机可读介质,该指令用于执行以上示例中的任一示例的方法。
在另一示例中,一种包括数据的计算机可读介质,该数据要被至少一个机器用于制造至少一个集成电路以执行以上示例中的任一示例的方法。
在另一示例中,一种装置,包括用于执行以上示例中的任一示例的方法的单元。
在另一示例中,一种系统,包括:计算管芯,其包括一个或多个核心;系统存储器,其耦合到计算管芯,系统存储器要与计算管芯相干地被维护;加速器管芯,其耦合到计算管芯,加速器管芯包括:至少一个加速器;加速器请求解码器,其耦合到至少一个加速器以执行对来自至少一个加速器的请求的第一级解码,并且基于第一级解码来指引请求,加速器请求解码器包括存储器映射,用于识别与本地存储器相关联的第一地址范围和与系统存储器相关联的第二地址范围;以及非相干请求路由器,其耦合到加速器请求解码器以接收来自加速器请求解码器的非相干请求,并且执行对非相干请求的第二级解码;以及本地存储器,其耦合到加速器管芯,本地存储器要与加速器管芯相干地并且与计算管芯和系统存储器非相干地被维护。
在示例中,非相干请求路由器用于将第一非相干请求路由至加速器管芯的边带路由器,并且将第二非相干请求指引至计算管芯。
在示例中,该系统还包括:多个存储器路由器,其耦合到加速器请求解码器;以及多个存储器控制器,每个存储器控制器耦合到多个存储器路由器中的一个存储器路由器。
在示例中,加速器请求解码器用于对请求的地址执行存储器散列函数,以识别多个存储器路由器中的用于接收请求的目标存储器路由器。
在示例中,多个存储器路由器中的第一存储器路由器用于:将第一本地存储器请求路由至耦合到第一存储器路由器的第一存储器控制器,第一存储器路由器与第一存储器控制器耦合到的本地存储器的地址范围相关联;以及当第二存储器请求不是与第一存储器控制器耦合到的本地存储器的地址范围相关联的时,将第二存储器请求路由至耦合到第一存储器路由器的第二存储器路由器。
在示例中,该系统还包括加速器卡,该加速器卡包括加速器管芯和本地存储器,加速器卡经由物理连接器耦合到计算管芯。
应理解,以上示例的各种组合是可能的。
注意,术语“电路(circuit)”和“电路系统(circuitry)”在本文中可互换地使用。如本文所使用的,这些术语和术语“逻辑”用于单独地或以任何组合指代模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路和/或任何其他类型的物理硬件组件。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,相反,其他实施例可以涉及用于处理指令的其他类型的装置,或者包括响应于在计算设备上被执行而使设备执行本文描述的方法和技术中的一种或多种方法和技术的指令的一种或多种机器可读介质。
实施例可以以代码实现,并且可以存储在其上存储有指令的非暂时性存储介质上,该指令可以用于对系统进行编程以执行指令。实施例还可以以数据实现,并且可以存储在非暂时性存储介质上,该数据如果由至少一个机器使用,则使至少一个机器制造至少一个集成电路以执行一个或多个操作。更进一步的实施例可以以计算机可读存储介质实现,该计算机可读存储介质包括当制造到SoC或其他处理器中时用于配置SoC或其他处理器以执行一个或多个操作的信息。存储介质可以包括但不限于:任何类型的盘,包括软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)和磁光盘;半导体器件,例如,只读存储器(ROM)、随机存取存储器(RAM)(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM);磁卡或光卡或适用于存储电子指令的任何其他类型的介质。
虽然已经关于有限数量的实施例描述了本发明,但是本领域技术人员将从中意识到许多修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这些修改和变化。

Claims (21)

1.一种用于对集成电路的组件进行互连的装置,包括:
加速器,其在第一管芯上形成,用于执行指令;
加速器请求解码器,其耦合到所述加速器以执行对来自所述加速器的请求的第一级解码,并且基于所述第一级解码来指引所述请求,所述加速器请求解码器包括存储器映射,用于识别与本地存储器相关联的第一地址范围和与系统存储器相关联的第二地址范围;
加速器请求映射器,其耦合到所述加速器请求解码器以跟踪非相干请求;以及
非相干请求路由器,其耦合到所述加速器请求映射器以接收来自所述加速器请求映射器的所述非相干请求,并且执行对所述非相干请求的第二级解码,所述非相干请求路由器用于将第一非相干请求路由至所述第一管芯的边带路由器,并且将第二非相干请求指引至耦合到所述第一管芯的计算管芯。
2.如权利要求1所述的装置,还包括:转换器,其包括多个输入通道,用于接收来自所述加速器请求解码器的本地存储器请求,并且将所述本地存储器请求转换为用于向所述本地存储器通信的存储器格式。
3.如权利要求2所述的装置,还包括:
多个存储器路由器,其耦合到所述转换器;以及
多个存储器控制器,每个存储器控制器耦合到所述多个存储器路由器中的一个存储器路由器。
4.如权利要求3所述的装置,其中,所述加速器请求解码器用于对请求的地址执行存储器散列函数,以识别所述多个存储器路由器中的用于接收所述请求的目标存储器路由器。
5.如权利要求3所述的装置,其中,所述多个存储器路由器中的第一存储器路由器用于:
将第一本地存储器请求路由至耦合到所述第一存储器路由器的第一存储器控制器,所述第一存储器路由器与所述第一存储器控制器耦合到的地址范围相关联;以及
当第二存储器请求不是与所述第一存储器控制器耦合到的所述地址范围相关联的时,将所述第二存储器请求路由至耦合到所述第一存储器路由器的第二存储器路由器。
6.如权利要求1-5中任一项所述的装置,其中,所述装置包括要被耦合到系统电路板的加速器设备,所述加速器设备包括第一集成电路和一个或多个存储器集成电路,所述第一集成电路包括所述第一管芯,所述一个或多个存储器集成电路包括所述本地存储器。
7.如权利要求1-5中任一项所述的装置,还包括耦合到所述加速器的一个或多个核心,其中,所述一个或多个核心用于将至少一个专用功能卸载到所述加速器。
8.一种用于处理请求的方法,包括:
在耦合到加速器的加速器请求解码器中接收来自所述加速器的请求;
在所述加速器请求解码器中执行对所述请求的第一级解码;
基于所述第一级解码,如果所述请求是相干请求,则将所述请求指引至与所述加速器相关联的本地存储器;以及
基于所述第一级解码,如果所述请求是非相干请求,则将所述请求指引至非相干请求路由器。
9.如权利要求8所述的方法,还包括:在所述非相干请求路由器中执行对所述请求的第二级解码。
10.如权利要求9所述的方法,还包括:
基于所述第二级解码,如果所述请求以系统存储器为目标,则将所述请求向上游指引至计算管芯;以及
基于所述第二级解码,如果所述请求是配置请求或边带请求中的一个,则将所述请求指引至边带路由器。
11.如权利要求10所述的方法,还包括:当所述请求是所述配置请求或所述边带请求时,将所述请求从所述边带路由器路由至片上目的地代理。
12.如权利要求8所述的方法,还包括:当所述请求是所述相干请求时,基于所述第一级解码将所述请求映射到多个存储器路由器中的选定的存储器路由器。
13.如权利要求12所述的方法,还包括:如果所述请求不是与关联于所述选定的存储器路由器的地址范围相关联的,则将所述请求从所述选定的存储器路由器转发到相邻的存储器路由器。
14.如权利要求12所述的方法,还包括:经由耦合到所述选定的存储器路由器的第一存储器控制器将所述请求发送到所述本地存储器。
15.一种包括代码的机器可读介质,所述代码当被执行时,使得机器执行如权利要求8-14中任一项所述的方法。
16.一种用于对集成电路的组件进行互连的系统,包括:
计算管芯,其包括一个或多个核心;
系统存储器,其耦合到所述计算管芯,所述系统存储器要与所述计算管芯相干地被维护;
加速器管芯,其耦合到所述计算管芯,所述加速器管芯包括:至少一个加速器;加速器请求解码器,其耦合到所述至少一个加速器以执行对来自所述至少一个加速器的请求的第一级解码,并且基于所述第一级解码来指引所述请求,所述加速器请求解码器包括存储器映射,用于识别与本地存储器相关联的第一地址范围和与所述系统存储器相关联的第二地址范围;以及非相干请求路由器,其耦合到所述加速器请求解码器以接收来自所述加速器请求解码器的非相干请求,并且执行对所述非相干请求的第二级解码;以及
本地存储器,其耦合到所述加速器管芯,所述本地存储器要与所述加速器管芯相干地并且与所述计算管芯和所述系统存储器非相干地被维护。
17.如权利要求16所述的系统,其中,所述非相干请求路由器用于将第一非相干请求路由至所述加速器管芯的边带路由器,并且将第二非相干请求指引至所述计算管芯。
18.如权利要求16所述的系统,还包括:
多个存储器路由器,其耦合到所述加速器请求解码器;以及
多个存储器控制器,每个存储器控制器耦合到所述多个存储器路由器中的一个存储器路由器。
19.如权利要求18所述的系统,其中,所述加速器请求解码器用于对请求的地址执行存储器散列函数,以识别所述多个存储器路由器中的用于接收所述请求的目标存储器路由器。
20.如权利要求18所述的系统,其中,所述多个存储器路由器中的第一存储器路由器用于:
将第一本地存储器请求路由至耦合到所述第一存储器路由器的第一存储器控制器,所述第一存储器路由器与所述第一存储器控制器耦合到的所述本地存储器的地址范围相关联;以及
当第二存储器请求不是与所述第一存储器控制器耦合到的所述本地存储器的地址范围相关联的时,将所述第二存储器请求路由至耦合到所述第一存储器路由器的第二存储器路由器。
21.如权利要求16-20中任一项所述的系统,还包括加速器卡,所述加速器卡包括所述加速器管芯和所述本地存储器,所述加速器卡经由物理连接器耦合到所述计算管芯。
CN201910104256.XA 2018-03-08 2019-02-01 用于提供用于加速器的结构的系统、装置和方法 Pending CN110245107A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/915,476 2018-03-08
US15/915,476 US11231927B2 (en) 2018-03-08 2018-03-08 System, apparatus and method for providing a fabric for an accelerator

Publications (1)

Publication Number Publication Date
CN110245107A true CN110245107A (zh) 2019-09-17

Family

ID=65229556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910104256.XA Pending CN110245107A (zh) 2018-03-08 2019-02-01 用于提供用于加速器的结构的系统、装置和方法

Country Status (3)

Country Link
US (1) US11231927B2 (zh)
CN (1) CN110245107A (zh)
DE (1) DE102019101114A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347643B2 (en) 2018-06-29 2022-05-31 Intel Corporation Control logic and methods to map host-managed device memory to a system address space
US11914903B2 (en) * 2020-10-12 2024-02-27 Samsung Electronics Co., Ltd. Systems, methods, and devices for accelerators with virtualization and tiered memory
US11954345B2 (en) * 2021-12-03 2024-04-09 Samsung Electronics Co., Ltd. Two-level indexing for key-value persistent storage device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US9100348B2 (en) * 2011-10-03 2015-08-04 Intel Corporation Managing sideband routers in on-die system fabric
US10268583B2 (en) * 2012-10-22 2019-04-23 Intel Corporation High performance interconnect coherence protocol resolving conflict based on home transaction identifier different from requester transaction identifier
US9600431B2 (en) * 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US11061682B2 (en) * 2014-12-15 2021-07-13 Hyperion Core, Inc. Advanced processor architecture
US9891282B2 (en) 2015-12-24 2018-02-13 Intel Corporation Chip fabric interconnect quality on silicon
CN112506568A (zh) * 2016-12-31 2021-03-16 英特尔公司 用于异构计算的系统、方法和装置

Also Published As

Publication number Publication date
DE102019101114A1 (de) 2019-09-12
US20190042240A1 (en) 2019-02-07
US11231927B2 (en) 2022-01-25

Similar Documents

Publication Publication Date Title
US10334334B2 (en) Storage sled and techniques for a data center
CN106569727B (zh) 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法
CN109426648A (zh) 用于由智能网络接口控制器处理网络分组的技术
CN108804376B (zh) 一种基于gpu和fpga的小型异构处理系统
CN109154924A (zh) 多个上行链路端口设备
CN107111576A (zh) 发布的中断架构
Jun et al. Scalable multi-access flash store for big data analytics
US9632557B2 (en) Active state power management (ASPM) to reduce power consumption by PCI express components
CN110245107A (zh) 用于提供用于加速器的结构的系统、装置和方法
US10404800B2 (en) Caching network fabric for high performance computing
CN109582605A (zh) 通过PCIe的一致性存储器设备
US7577755B2 (en) Methods and apparatus for distributing system management signals
CN104657308A (zh) 一种用fpga实现的服务器硬件加速的方法
CN103873489A (zh) 具有PCIe接口的装置共享系统及方法
US20140281084A1 (en) Local bypass for in memory computing
CN100432972C (zh) 输入/输出集线器、输入/输出系统和使用它们的计算机系统
US7529953B1 (en) Communication bus power state management
US20130124786A1 (en) Memory module and memory controller for controlling a memory module
CN112035398B (zh) 一种系统级芯片SoC及适用于SoC的数据处理方法
US10445267B2 (en) Direct memory access (DMA) unit with address alignment
CN110023919A (zh) 用于处理结构中非投递式存储器写入事务的方法、装置和系统
US7418517B2 (en) Methods and apparatus for distributing system management signals
CN107533443A (zh) 在半导体器件中提供多个根
HeydariGorji et al. In-storage processing of I/O intensive applications on computational storage drives
Quintero et al. IBM Power Systems 775 for AIX and Linux HPC solution

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