CN115529682A - 用于从xpus到主机处理器的上行通信的对等链路共享 - Google Patents

用于从xpus到主机处理器的上行通信的对等链路共享 Download PDF

Info

Publication number
CN115529682A
CN115529682A CN202210568151.1A CN202210568151A CN115529682A CN 115529682 A CN115529682 A CN 115529682A CN 202210568151 A CN202210568151 A CN 202210568151A CN 115529682 A CN115529682 A CN 115529682A
Authority
CN
China
Prior art keywords
link
host
xpu
over
processor unit
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
CN202210568151.1A
Other languages
English (en)
Inventor
拉胡尔·帕尔
纳扬·阿姆鲁特拉尔·苏塔尔
大卫·M·普弗
阿肖克·贾甘纳坦
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 CN115529682A publication Critical patent/CN115529682A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/20Manipulation of established connections
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • H04W72/1221Wireless traffic scheduling based on age of data to be sent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及用于从XPUS到主机处理器的上行通信的对等链路共享。一种处理器单元,包括:第一控制器,用于通过第一链路耦合到主机处理单元;第二控制器,用于通过第二链路耦合到第二处理器单元,其中第二处理器单元经由第三链路耦合到主机中央处理单元;以及电路,用于确定是通过第一链路还是经由第二处理单元通过第二链路向主机中央处理单元发送缓存一致请求。

Description

用于从XPUS到主机处理器的上行通信的对等链路共享
技术领域
本公开总体涉及计算机开发的领域,更具体而言,涉及用于从处理器单元(processor unit,XPU)到主机处理器的上行通信的对等链路共享。
背景技术
跨多个服务器的主机、存储器和处理器单元(XPU)解离是构建系统的一种方式,用于以成本划算并且功率效率高的方式交付高性能。
发明内容
根据本公开的实施例,提供了一种处理器单元,包括:第一控制器,用于通过第一链路耦合到主机处理单元;第二控制器,用于通过第二链路耦合到第二处理器单元,其中所述第二处理器单元经由第三链路耦合到所述主机处理单元;以及电路,用于确定是通过所述第一链路还是经由所述第二处理单元通过所述第二链路向所述主机处理单元发送缓存一致请求。
根据本公开的实施例,提供了一种方法,包括:由第一处理器单元通过第一链路与主机处理单元通信;由所述第一处理器单元通过第二链路与第二处理器单元通信,其中所述第二处理器单元经由第三链路耦合到所述主机处理单元;并且确定是通过所述第一链路还是经由所述第二处理单元通过所述第二链路向所述主机处理单元发送缓存一致请求。
根据本公开的实施例,提供了一种系统,包括用于执行如上所述的方法的装置。
根据本公开的实施例,提供了一种计算机程序产品,包括指令,所述指令在由处理器执行时使所述处理器执行如上所述的方法。
附图说明
图1是根据各种实施例用于从处理器单元(XPU)到主机处理器的上行通信的对等链路共享的计算系统的框图。
图2是示出根据各种实施例的上行通信的框图。
图3是根据各种实施例的XPU的体系结构的框图。
图4是根据各种实施例用于确定何时启用用于从XPU到主机处理器的上行通信的对等链路共享的图表。
图5是根据各种实施例的用于从XPU到主机处理器的上行通信的对等链路共享的流程。
图6图示了根据各种实施例的计算系统中存在的组件的框图。
图7图示了根据各种实施例的另一计算系统的框图。
在各幅图中相似的标号和命名指示相似的元素。
具体实施方式
图1是根据各种实施例用于从处理器单元(XPU)102(例如,102A至102F)到包括处理器(例如,CPU)的主机(104A或104B)的上行通信的对等链路共享的计算系统100的框图。在所描绘的实施例中,每个XPU 102经由对等链路106与每个其他XPU 102耦合。XPU 102也各自通过各主机链路108耦合到主机104A或104B。在所描绘的实施例中,XPU 102A、102B和102F各自经由各主机链路108连接到主机104A,并且XPU 102C、102D和102E各自经由各主机链路108连接到主机104B。在各种实施例中设想到了任何其他适当的连通性安排,例如一个或多个XPU仅连接到其他XPU的子集,一个或多个XPU不连接到任何主机104,每个XPU具有到每个主机104的专用链路108,任何组件之间的多个链路(例如,106、108),或者其他适当的连通性。主机104A和104B也可以经由链路110连接到彼此。在一些实施例中,系统100是缓存一致系统,提供跨XPU 102和一个或多个主机104的共享数据的统一性,其中数据可被存储在XPU和/或主机104的多个本地缓存中。
用于诸如人工智能(artificial intelligence,AI)训练和高性能计算(highperformance computing,HPC)(以及其他)之类的分段的各种环境(例如,数据中心)中的XPU部署可包括多XPU扩展系统(例如,系统100),其中每个主机处理器(例如,中央处理单元(central processing unit,CPU))可容宿多个XPU设备,这些设备也在其自身的扩展网络上直接附接到彼此。
在一些分段(例如,HPC)中,工作负载在主机(例如,104)的处理器(例如,CPU)和XPU集群(例如,XPU 102)上都有相当数量的计算并且存在大量的共享存储器访问,XPU集群和主机处理器之间的更高链路带宽是有利的。对驻留在主机104上(或者以其他方式通过主机可访问)的这种共享存储器的访问可能是跨XPU 102突发性的,从而使得XPU 102在任何时间点对到主机的链路(例如,主机链路108)的利用可能与另一XPU对到主机的链路的利用颇为不同。
本公开的各种实施例为多XPU扩展系统中的XPU 102提供了共享到主机104的上行带宽的能力,以便实现到主机104的存储器的更高的平均上行带宽。例如,一些实施例允许了XPU 102除了经由其自己到主机104的上行链路以外,还可以经由对等XPU到主机104的上行链路来访问主机存储器。XPU 102可以与多于一个对等XPU共享它到主机104的上行带宽。各种实施例可允许XPU 102确定何时机会性地利用其一个或多个对等XPU的上行带宽以高效地利用可用带宽。各种实施例允许了作为扩展集群的一部分的XPU能够动态地借用并且实现朝向主机处理器存储器的更高带宽,特别是当这种访问在性质上是突发性的时候。各种实施例可以在诸如HPC之类的用例中提供特别的益处,在这种用例中,存在通过共享存储器进行的频繁的图形处理单元(graphics processing unit,GPU)(其中GPU是XPU的一个示例)和CPU的交互,并且存储器占用空间在主机104的存储器中一般比个体XPU 102的存储器高。
处理器单元102可包括任何适当的处理或存储设备,例如硬件加速器、GPU、现场可编程门阵列、神经网络处理单元、人工智能处理单元、推理引擎、数据处理单元、或者基础设施处理单元、I/O设备、或者能够与其他XPU 102和一个或多个主机104通信的其他适当计算设备。
主机104可包括任何能够执行计算操作(例如,处理或存储操作)并且通过链路与一个或多个XPU 102进行通信的电子设备。在各种实施例中,主机104可包括处理器,例如CPU或其他处理器单元。在一些实施例中,计算设备还可包括支持体系结构,例如BIOS、存储器或I/O服务。在一些实施例中,主机104可包括服务器。
主机链路108可包括根据任何适当协议的链路,该协议使得XPU 102和主机104之间能够通信。链路可以指计算设备之间的逻辑连接,并且可以用通道的数目来定义(例如,16、8或4;表示为x16、x8或x4)。在一些实施例中,每个通道可包括发送路径和接收路径(每个路径包括单向差动对)。其他实施例可具有其他安排。
在各种实施例中,主机链路108是外围组件互连快速(Peripheral ComponentInterconnect Express,PCIe)链路(例如,如PCIe 5.0基本规范或者其他适当的PCIe规范中所定义的)。在各种实施例中,主机链路108可以是实现主机104之间的缓存一致性的链路。例如,在一些实施例中,主机链路108是计算快速链路(Compute Express LinkTM,CXL)(例如,如CXL 2.0规范或者其他适当的CXL规范中所定义的)。CXL是一种协议,用于设备(例如,XPU 102)和主机104的处理器(例如,CPU)之间通过PCIe链路的连接。CXL提供了设备(例如,XPU 102)和主机(例如,104)之间的共享一致可缓存存储器的益处。在一个实现方式中,在CXL链路上实现的带宽与在PCIe链路上可实现的带宽相似(例如,x16 Gen5 phy上的64GBps)。
XPU 102通过CXL向主机104发送的流量可以使用CXL.cache通道或者CXL.io通道来发送。CXL.cache流量允许了一致的可缓存语义(提供了主机104和XPU 102的存储器之间的一致性),而CXL.io使用常规PCIe语义来为设备提供非一致的加载/存储接口。主机104也可以使用第三通道(CXL.mem)使用存储器语义与它的存储器通信。在各种实施例中,从XPU102发送到主机104的上行流量(无论是直接通过XPU 102的主机链路108还是通过另一个XPU)包括缓存一致性事务,例如对主机104的存储器的读取或者写入。CXL.cache协议(或者其他链路协议)可将XPU 102和主机104之间的交互定义为若干个请求,其中每个请求具有至少一个关联的响应消息,有时还具有数据传送(例如,诸如64字节之类的存储器数据线)。
对等链路106也可包括根据任何适当协议的链路,该协议使得对等XPU 102之间能够通信。在各种实施例中,对等链路106也支持XPU 102之间的缓存一致性。在一些实施例中,对等链路106是高带宽扩展链路,例如
Figure BDA0003659109550000051
Xe链路或者
Figure BDA0003659109550000052
这个链路106可包括高带宽SERDES选项,以及对等XPU之间通过原生宽链路或者可以联动的多个链路的高带宽通信。
图2是示出根据各种实施例的上行通信的框图。该图描绘了向主机104A发送上行通信的XPU 102A。XPU 102A经由主机链路108A耦合到主机104A,并且经由对等链路106耦合到对等XPU 102B。XPU 102B经由主机链路108B耦合到主机104A。
XPU 102A通常可以经由数据路径202通过主机链路108A向主机104A发送通信(例如,写入或者读取由主机104A控制的存储器的请求,例如CXL.cache流量)。然而,在所描绘的实施例中,XPU 102A也可以通过数据路径204向主机104A发送这种通信,该数据路径包括对等链路106和对等XPU的主机链路108B。从而,XPU 102A可以经由对等链路106发送去主机104A的通信,并且对等XPU 102B可以经由主机链路108B提供去主机104A的该通信。
图3是根据各种实施例的XPU 102的体系结构300的框图。在各种实施例中,系统100中的每个XPU 102可具有所描绘的部分或者全部组件。在扩展系统中,(例如,如图1中所示),每个XPU 102可以经由三个不同的数据路径访问三种不同类型的系统存储器组件。首先,XPU 102可以经由内部存储器架构访问其自己的本地存储器(例如,设备存储器314或者与XPU 102耦合的其他本地存储器)。其次,XPU 102可以经由对等链路106访问对等XPU的存储器(例如,对等XPU的设备存储器314)。最后,XPU 102可以经由主机链路108访问主机104的存储器(例如,驻留在主机104上的存储器或者经由主机104可访问的其他存储器)。
设备存储器314或者主机104的存储器可以是任何适当类型的存储器,例如双数据速率(double data rate,DDR)、低功率双数据速率(low-power double data rate,LPDDR)、高带宽存储器(high bandwidth memory,HBM),或者其他适当的存储器。在一些实施例中,XPU 102上的高带宽片上网络(network on chip,NoC)可允许XPU 102实现期望的存储器带宽。在各种实施例中,设备存储器314可以集中或者分布在XPU 102上。
XPU引擎302可以生成缓存一致请求(例如,用于以缓存一致方式在系统100的地址空间中读取存储器或者写入存储器的请求)。在一些实施例中,XPU引擎302可以执行访问存储器的线程,并且该请求可以响应于该线程而被生成。该请求可被传递到存储器管理单元(memory management unit,MMU)304。MMU 304可以管理由XPU 102拥有的存储器。存储器管理单元(MMU)304可以为请求执行逻辑到物理地址转化。如果MMU 304不能执行地址转化(例如,因为存储器位于主机104处),则XPU 102可以向实体(例如,主机104的IOMMU)发送地址转化请求,并且接收作为响应的物理地址。MMU 304还可包括或者耦合到地址转化缓存(address translation cache,ATC),它可以缓存由XPU 102接收到的逻辑到物理地址转化(例如,以类似于转化后备缓冲器的方式)。
主机/设备存储器解复用器(demux)306可以确定所请求的存储器的位置,并且相应地路由该请求。如果存储器位于XPU 102或者对等XPU内(或者以其他方式被其拥有),则该请求被路由到本地/远程地址解复用器308。本地/远程地址解复用器308确定(例如,通过范围比较)存储器是在XPU 102的本地还是由对等XPU拥有。如果存储器在XPU 102的本地,则该请求通过复用器(mux)310被路由到设备存储器314。如果存储器被对等XPU所拥有,那么该请求被本地/远程地址解复用器308路由到对等链路控制器318,并且通过对等链路106被路由到对等XPU。复用器310还将通过对等链路106从对等XPU接收到的存储器请求和通过链路108从主机104接收到的存储器请求路由到设备存储器314。
为了使得XPU 102能够借入XPU规模集群可用的到主机104的更大的聚合上行带宽池(经由其他XPU的主机链路108),XPU 102的体系结构300包括一路径,该路径允许有条件地将目的地为主机104的出站流量(例如,诸如CXL.cache流量之类的存储器请求)转移到对等链路控制器318和对等链路106(以便通过对等XPU传输到主机)。体系结构300还包括一路径,该路径允许有条件地将入站流量从对等链路106和对等链路控制器318转移向主机链路控制器316和主机链路108(例如,当XPU正在为另一XPU向主机104转发流量时)。此路径可以穿过解复用器312,并且可以用标签326来标记。
控制器316和318可包括任何适当的电路,以设置和控制各个链路上的通信。在一些实施例中,主机链路控制器316可包括CXL.cache控制器。
由XPU引擎302生成的、以主机104为目的地的请求可以通过请求转移电路322。在正常条件下(例如,当主机链路108有充足的可用带宽时),到主机104的上行请求可以被从请求转移电路322发送到主机链路控制器316并且通过主机链路108被发送到主机104。在一些情形中,当链路108上的可用上行带宽较低时,目的地为主机104的流量可通过另一XPU被发送,从而该流量可由请求转移电路322发送至对等链路控制器318,并且标签324可被应用于该流量以指示出该流量是去往主机(host-bound)的。在各种实施例中,由请求转移电路322作出的关于是将上行流量路由到主机链路108还是路由到对等链路106的决定可以基于由带宽监视器320跟踪的可用上行带宽信息。关于这种决定的进一步细节将在下文描述。
在其对等链路106之一上接收来自另一XPU的流量的对等XPU可以检查(例如,使用解复用器312)该流量以确定它是否是去往主机的(例如,它是否具有去往主机标签324)。如果设置了该标签,那么对等XPU可以将该入站流量向其自己的主机链路108发送(而不是像对经由链路106从另一XPU接收的标准请求那样将其发送到其设备存储器314)以去到主机104。如果没有设置该标签,那么XPU可以确定该请求是来自对等XPU对其存储器的一部分的请求,并且将该请求发送到设备存储器314。
XPU 102可以支持任何相关的协议转换或者隧穿,以使得去往主机的请求能够通过对等链路106被发送。在各种实施例中,用于传达去往主机的流量的协议(例如,CXL.cache)可以是源排序的,从而实现了本文描述的流程,而不在对等链路106上引入额外的排序要求。
各种实施例可包括任何适当的电路,以在系统100中实现一致语义。例如,主机104可包括窥探过滤器,以跟踪XPU 102对来自主机104的存储器的存储器线的可能缓存。例如,主机104的窥探过滤器可以跟踪存储器访问,以确定存储器是否被修改,或者为了在缓存的存储器应当被无效时通知设备(例如,因为它已被主机104或者另一XPU 102修改)。
如上所述,到主机104的流量(例如,CXL.cache流量)可以是源排序的。在各种实施例中,主机的窥探过滤器按照连接到主机104的每个主机链路108跟踪缓存(例如,CXL 2.0规范只允许每个链路有一个CXL.cache使能设备)。从而,来自XPU 102的可缓存请求将被主机的窥探过滤器标记为被缓存在用来接收该请求的链路后面。因此,主机的窥探过滤器可能不区分哪个XPU 102已缓存了存储器线,而是只跟踪用来接收对该存储器线的请求的特定主机链路108。从而,如果来自一XPU的请求是通过另一XPU接收到的,则主机的窥探过滤器可能无法分辨哪个XPU已缓存了该请求中标识的存储器线。
由于主机的窥探过滤器按照每个主机链路108跟踪缓存,所以来自主机的、作为由XPU经由对等XPU发送的可缓存请求的后果的任何后来窥探都将被主机通过对等XPU的主机链路108发送。在各种实施例中,可以基于XPU用于主机104的存储器的缓存模型来处理这种窥视。
在一些实施例中,XPU的用于从主机104访问的存储器的缓存被布置在主机链路控制器316附近(这有时被称为浅层缓存模型)。例如,这种缓存可被用于流行的用例,例如对系统存储器的就地设备原子支持(例如,其中XPU主要对激发的原子操作使用可缓存语义,而对其他请求使用不可缓存/ReadCurrent语义)。在这种情况下,由XPU通过主机链路108发送的所有存储器访问请求(例如,CXL.cache请求)(包括它代表对等XPU发送的那些请求)都被缓存在这个XPU处。在这种情况下,XPU本身可以服务于它通过主机链路从主机接收到的所有窥探。在一些实施例中,XPU通过指示出XPU的缓存中的存储器线的状态来响应窥探和/或可以指示数据正被返回到主机104去到提供的数据缓冲器。
在各种实施例中,从主机104访问的存储器的缓存被布置在XPU内的更深处(例如,该缓存可以在其他设备存储器中,这可包括对等XPU的存储器)。在这种情况下,当XPU通过其主机链路108接收到窥探时,XPU可以确定该存储器线是由它自己还是对等XPU缓存的。在各种实施例中,XPU可以维护窥探过滤器(例如,在主机链路108附近),该过滤器跟踪对等XPU可能通过这个主机链路对主机104进行的任何可缓存访问。如果这个窥探过滤器指示出来自主机104的特定窥探需要被发送到对等XPU(例如,因为该对等XPU已缓存了存储器),则XPU将来自主机的窥探转换为通过对等链路使用的窥探语义以发送到对等XPU(例如,类似于XPU可能关于如下窥探使用的语义:这些窥探与由对等XPU缓存的其自身的存储器相关联)。
图4描绘了根据各种实施例用于确定何时启用用于从XPU 102到主机104的上行通信的对等链路共享的图表400。如前所述,请求转移电路322可确定XPU对主机104的请求是应当经由XPU自己的主机链路108还是经由其对等链路106通过另一XPU发送到主机104。
在各种实施例中,这个决定可基于由带宽监视器320跟踪的带宽可用性的一个或多个度量。可能影响是否通过对等XPU发送去往主机的请求的决定的带宽可用性的度量可包括以下各项中的一个或多个:XPU的主机链路108上的带宽可用性、到对等XPU的对等链路106上的带宽可用性、以及对等XPU的主机链路108上的带宽可用性。
在各种实施例中,对XPU自己的主机链路108上的带宽可用性的确定可以基于主机链路108上的上行方向的原始带宽利用率。例如,带宽监视器320可以基于观察到的请求的数目和/或请求的大小来确定特定时间点的带宽利用率、一段时间的平均带宽利用率或者其他原始带宽利用率度量。在一些实施例中,XPU的主机链路108上的带宽可用性是基于主机链路108的上行方向上的可用信用(credit)的(例如,链路层信用,例如CXL.cache通道上的链路层信用)。为了确定这一点,带宽监视器320可以跟踪可用上行信用(例如,CXL.cache信用)。低可用信用表明链路108由于可用带宽不足而出现背压。在一些实施例中,每个通道(例如,CXL.cache通道)使用信用来发送消息,并且从消息的接收者收集信用返回(当其处理了消息时该接收者可能返回信用)。通过跟踪一段时间的可用信用,带宽监视器320可以估计主机链路108上的可用上行带宽。
可以以任何适当的方式来确定对等链路106上到对等XPU的带宽可用性,例如上文对于主机链路108上的可用性描述的任何方式(例如,基于原始带宽利用率或者可用信用)。
可以以任何适当的方式来跟踪相应的对等XPU的主机链路108在上行方向上的带宽可用性。在一些实施例中,带宽监视器320可以基于对等XPU通过此XPU发送自己的去往主机的流量的速率来确定这个可用性。如果对等XPU在其自己的主机链路108上有充足的带宽可用,那么对等XPU就不会通过这个XPU发送它的去往主机的流量(或者将通过这个XPU发送很少的流量)。如果对等XPU在其自己的主机链路108上可用的带宽量较低,那么它可以开始通过一个或多个对等XPU发送其去往主机的请求的一部分。如果XPU检测到特定的对等XPU有充足的上行带宽可用,那么XPU可以以合理的速率通过对等XPU发送请求。如果XPU检测到特定对等XPU可用的上行带宽量较低,那么该XPU可以以更低的速率发送请求。从而,XPU可以基于它从对等XPU接收的去往主机的请求的数目来检测对等XPU的可用上行带宽。在替换实施例中,XPU 102可以周期性地向彼此发送消息,表明其各自的主机链路108上的可用带宽量。
图表400描绘了可由XPU的请求转移电路322实现的示例方案,用来确定是经由XPU的主机链路108还是经由对等XPU向主机104发送去往主机的请求。图表400包括关于XPU自己在其主机链路108上的上行可用带宽、XPU与特定对等XPU的对等链路可用带宽以及特定对等XPU在其主机链路上的上行可用带宽的各种值。
在该图表中,“X”代表不关心。从而,当XPU自己在其主机链路108上的可用上行带宽较高时,该XPU不经由其任何对等XPU发送去往主机的流量。如果XPU自己的上行可用带宽较低,但是去到对等XPU的对等链路上的可用带宽和该对等XPU在其主机链路108上的上行可用带宽较高,那么该XPU可以经由对等XPU以合理的速率发送去往主机的流量,以增大XPU向主机发送请求的带宽。如果XPU自己的上行可用带宽较低,并且去到对等XPU的对等链路上的可用带宽或者该对等XPU在其主机链路108上的上行可用带宽中的任一者(或者两者)较低,那么该XPU可以经由对等XPU以非常低的速率发送去往主机的流量(以便不淹没该另一XPU的主机链路)。
在各种实施例中,XPU通过对等XPU发送去往主机的请求的速率可以随着检测到的相关对等链路和/或对等XPU的主机链路的可用带宽的下降而减小。在各种实施例中,XPU可以跟踪其每个对等XPU的可用带宽,并且基于可用带宽针对每个对等XPU以不同的速率发送去往主机的请求。
图5是根据各种实施例的用于从XPU到主机处理器的上行通信的对等链路共享的流程。该流程从确定XPU 102的上行可用带宽是否较高开始。如果可用带宽较高,那么XPU可以在504处经由XPU的主机链路108发送与去往主机的请求。只要上行可用带宽保持较高,XPU就可以继续经由它自己的主机链路发送请求。一旦确定上行可用带宽不再高,流程就移动到506。
在506,确定在对等XPU处是否有大量的上行带宽可用。如果是,那么XPU 102可以在508处经由其自己的主机链路108发送一些去往主机的请求,并且在510处经由对等XPU以合理的速率发送其他去往主机的请求。如果在对等XPU处没有高带宽可用,那么XPU 102可以在512处经由其自己的主机链路108发送一些去往主机的请求,并且在514处经由对等XPU以低速率发送其他去往主机的请求。然后该流程可返回到502。
在一些实施例中,可以为每个对等XPU执行506的确定和随后的操作。在各种实施例中,XPU可以监视多个对等XPU的可用上行带宽,并且选择具有最大可用的上行带宽的对等XPU,并且将去往主机流量发送到所选择的对等XPU。XPU可以按任何适当的比率(例如,基于其可用的上行带宽)向任何数目的对等XPU发送去往主机的流量。XPU和对等XPU之间的可用带宽也可被用于确定向每个XPU发送多少去往主机的流量。
本文的附图中描述的流程只是代表在特定实施例中可能发生的操作。在其他实施例中,额外的操作可由本文描述的各种系统的组件执行。本公开的各种实施例设想到了任何适当的信令机制来实现本文描述的功能。附图中图示的一些操作可以在适当时被重复、组合、修改或者删除。此外,在不脱离特定实施例的范围的情况下,可以按任何适当的顺序执行操作。
本文阐述了许多具体细节,例如特定类型的处理器和系统配置的示例、特定的硬件结构以及特定的体系结构和微体系结构细节,以便提供对本公开的透彻理解。然而,本领域技术人员将会清楚,实践本公开并不需要使用这些具体细节。在其他情况中,没有详细描述公知的组件或方法,例如特定的和替换的处理器体系结构、用于描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、用代码对算法的特定表述、特定断电和门控技术/逻辑、以及计算机系统的其他特定操作细节,以避免不必要地模糊本公开。
本文描述的系统或者组件的任何部分都可被包括在能够发送和/或接收数据的设备内。例如,系统100的任何部分可被包括在计算设备中,例如主机104或者XPU 102,其中任一者可包括处理器、片上系统(system-on-a-chip,SoC)或者其他适当的电路。在一些实施例中,主机可包括任何适当的计算系统,该计算系统可操作来连接到外围设备,并且向外围设备发送数据和/或从外围设备接收数据。主机可包括一个或多个处理器和一个或多个端口。主机可包括或者耦合到任何其他适当的电路,例如存储器、互连、一个或多个通信控制器、或者其他适当的电路。
虽然本文的实施例是参考特定集成电路来描述的,例如计算平台或微处理器中的,但其他实施例适用于其他类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可被应用到也可受益于本文描述的特征的其他类型的电路或半导体器件。例如,所公开的实施例不限于特定的主机设备或者外围设备,而是可以适用于任何适当的主机或者外围设备,例如桌面型计算机系统、服务器计算机系统、手持设备、平板设备、其他薄型笔记本、片上系统(SoC)设备、以及嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(personal digital assistant,PDA)、以及手持PC。嵌入式应用通常包括微控制器、数字信号处理器(digital signal processor,DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(wide area network,WAN)交换机、或者能够执行下面教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而是也可涉及软件优化。
图6和图7描绘了其中可以实现本文描述的各种实施例的示例系统。例如,XPU 102或者主机104可包括图6或图7中描绘的任何一个或多个组件。
现在参考图6,描述了存在于计算机系统中的组件的框图,根据某些实施例,该计算机系统可以充当主机104或者XPU。如图6所示,系统600包括组件的任何组合。这些组件可被实现为IC、其一部分、分立的电子器件、或者在计算机系统中适配的其他模块、逻辑、硬件、软件、固件或者其组合,或者被实现为以其他方式包含在计算机系统的机壳内的组件。还要注意,图6的框图旨在示出计算机系统的许多组件的高级别视图。然而,要理解,在其他实现方式中,示出的一些组件可被省略,额外的组件可存在,并且示出的组件的不同布置可发生。因此,上文描述的公开内容可被实现在下文图示或描述的一个或多个互连的任何部分中。
如图6中可见,处理器610在一个实施例中包括微处理器、多核心处理器、多线程处理器、超低电压处理器、嵌入式处理器、或者其他已知的处理元件。在图示的实现方式中,处理器610充当主处理单元和中央中枢来与系统600的各种组件中的许多进行通信。作为一个示例,处理器610被实现为片上系统(SoC)。作为具体的说明性示例,处理器610包括可从加州圣克拉拉的英特尔公司获得的基于
Figure BDA0003659109550000131
Architecture CoreTM的处理器,例如i3、i5、i7或者另外的这种处理器。然而,其他低功率处理器,例如可从加州森尼维尔市的超微半导体公司(Advanced Micro Devices,Inc.,AMD)获得的那些、来自加州森尼维尔市的MIPS技术公司的基于MIPS的设计、从ARM控股有限公司或者其客户或者其被许可人或者采用者许可的基于ARM的设计,可取而代之存在于其他实施例中,例如苹果A5/A6处理器、高通骁龙处理器、或者TI OMAP处理器。注意,这种处理器的许多客户版本是经过修改和改变的;但是,它们可以支持或识别执行由处理器许可人阐述的定义算法的特定指令集。在这里,微体系结构实现可能有所不同,但处理器的体系结构功能通常是一致的。下面将进一步论述关于一个实现方式中的处理器610的体系结构和操作的某些细节,以提供说明性示例。
处理器610在一个实施例中与系统存储器615通信。作为说明性示例,其在一实施例中可经由多个存储器设备来实现,以提供给定量的系统存储器。作为示例,存储器可以按照基于联合电子器件工程委员会(Joint Electron Devices Engineering Council,JEDEC)低功率双数据速率(low power double data rate,LPDDR)的设计,例如根据JEDECJESD 209-2E(2009年4月发布)的当前LPDDR2标准,或者将提供对LPDDR2的扩展以增大带宽的要被称为LPDDR3或LPDDR4的下一代LPDDR标准。在各种实现方式中,个体存储器设备可具有不同封装类型,例如单片封装(single die package,SDP)、双片封装(dual diepackage,DDP)或者四片封装(quad die package,QDP)。这些设备在一些实施例中被直接焊接到主板上以提供更低轮廓的方案,而在其他实施例中,设备被配置为一个或多个存储器模块,这些存储器模块进而由给定的连接器耦合到主板。当然,其他存储器实现方式是可能的,例如其他类型的存储器模块,例如不同种类的双列直插式存储器模块(dual inlinememory module,DIMM),包括但不限于microDIMM、MiniDIMM。在特定的说明性实施例中,存储器的大小在2GB到16GB之间,并且可被配置为DDR3LM封装或者LPDDR2或LPDDR3存储器,其经由球栅阵列(ball grid array,BGA)被焊接到主板上。
为了提供对诸如数据、应用、一个或多个操作系统等等之类的信息的持续性存储,大容量存储装置620也可耦合到处理器610。在各种实施例中,为了实现更薄和更轻的系统设计,并且为了改善系统响应性,可以经由SSD来实现这种大容量存储装置。然而,在其他实施例中,可主要利用硬盘驱动器(hard disk drive,HDD)来实现大容量存储装置,其中较小量的SSD存储充当SSD缓存来使得能够在掉电事件期间对情境状态和其他这种信息进行非易失性存储,从而使得在系统活动重发起时可发生快速加电。图6中还示出的是,闪存设备622可耦合到处理器610,例如经由串行外围接口(serial peripheral interface,SPI)。这个闪存设备可提供对系统软件的非易失性存储,包括基本输入/输出软件(basic input/output software,BIOS)以及系统的其他固件。
在各种实施例中,系统的大容量存储装置由SSD单独实现,或者被实现为盘、光盘或者带有SSD缓存的其他驱动器。在一些实施例中,大容量存储装置被实现为SSD或者HDD连同恢复(restore,RST)缓存模块。在各种实现方式中,HDD提供320GB-4万亿字节(TB)及以上之间的存储,而RST缓存是用容量为24GB-256GB的SSD实现的。注意,这种SSD缓存可以被配置为单级别缓存(single level cache,SLC)或者多级别缓存(multi-level cache,MLC)选项,以提供适当水平的响应性。在仅限SSD的选项中,该模块可以被安置在各种位置,例如在mSATA或NGFF插槽中。作为示例,SSD具有从120GB-1TB不等的容量。
各种输入/输出(IO)设备可存在于系统600内。在图6的实施例中具体示出的是显示器624,其可以是被配置在机壳的盖子部分内的高清晰度LCD或LED面板。这个显示面板也可提供触摸屏625,例如,在显示面板上进行外部适配,从而使得经由用户与这个触摸屏的交互,可以向系统提供用户输入,以实现期望的操作,例如,关于信息的显示、信息的访问,等等。在一个实施例中,显示器624可经由显示互连耦合到处理器610,该显示互连可被实现为高性能图形互连。触摸屏625可经由另一互连耦合到处理器610,该另一互连在一实施例中可以是I2C互连。如图6中还示出的,除了触摸屏625以外,借由触摸的用户输入也可经由触摸板630发生,该触摸板可被配置在机壳内并且也可耦合到与触摸屏625相同的I2C互连。
显示面板可以在多种模式中操作。在第一模式中,显示面板可以被布置在透明状态中,其中显示面板对可见光是透明的。在各种实施例中,除了外围周围的边框,显示面板的大部分可以是显示器。当在笔记本模式中操作系统并且在透明状态中操作显示面板时,用户可以查看显示面板上呈现的信息,同时也能够查看显示器后面的物体。此外,显示面板上显示的信息可由位于显示器后面的用户查看。或者,显示面板的操作状态可以是不透明状态,其中可见光不会透过显示面板。
在平板模式中,当基板的底表面被搁在表面上或者被用户握持时,系统被折叠关闭,从而使得显示面板的背面显示表面停到一个位置,使得其向外面向用户。在平板操作模式中,背面显示表面发挥显示器和用户界面的作用,因为这个表面可具有触摸屏功能,并且可以执行传统触摸屏设备(例如平板设备)的其他已知功能。为此,显示面板可包括透明度调整层,该层被布置在触摸屏层和正面显示表面之间。在一些实施例中,透明度调整层可以是电致变色层(electrochromic,EC)、LCD层、或者EC和LCD层的组合。
在各种实施例中,显示器可具有不同的尺寸,例如11.6"或13.3"屏幕,并且可具有16:9纵横比,以及至少300尼特的亮度。另外,显示器可以具有全高清(high definition,HD)分辨率(至少1920x 1080p),与嵌入式显示端口(embedded display port,eDP)兼容,并且是具有面板自刷新的低功率面板。
至于触摸屏能力,该系统可以提供显示多点触摸面板,该面板是多点触摸电容器式的,并且是能够允许至少5个手指操作的。并且,在一些实施例中,该显示器可以是能够允许10个手指操作的。在一个实施例中,触摸屏被安置在一种防损和防刮的玻璃和涂层(例如,Gorilla GlassTM或者Gorilla Glass 2TM)内,以实现低摩擦,来减少“烧手指”并且避免“跳指”。为了提供增强的触摸体验和响应性,在一些实施例中,触摸面板具有多点触摸功能,例如在捏合缩放期间每个静态视图小于2帧(30Hz),以及有200ms(手指到指针的滞后)的每帧(30Hz)小于1cm的单点触摸功能。在一些实现方式中,显示器支持具有最小屏幕边框的无边界玻璃,该边框也与面板表面齐平,并且在使用多点触控时具有有限的IO干扰。
为了感知计算和其他的目的,各种传感器可存在于系统内并且可按不同的方式耦合到处理器610。某些惯性和环境传感器可通过传感器中枢640,例如经由I2C互连,耦合到处理器610。在图6所示的实施例中,这些传感器可包括加速度计641、环境光传感器(ambient light sensor,ALS)642、指南针643、以及陀螺仪644。其他环境传感器可包括一个或多个热传感器646,这些热传感器646在一些实施例中经由系统管理总线(SMBus)总线耦合到处理器610。
使用平台中存在的各种惯性和环境传感器,可以实现许多不同的用例。这些用例使得能够实现先进的计算操作(包括感知计算),并且还允许了关于功率管理/电池寿命、安全性和系统响应性方面的增强。
例如,关于功率管理/电池寿命问题,至少部分基于来自环境光传感器的信息,确定平台的位置的环境光条件并且相应地控制显示器的强度。从而,在某些光条件中,减少了操作显示器所消耗的功率。
至于安全性操作,基于从传感器获得的情境信息,例如位置信息,可以确定是否允许用户访问某些安全文档。例如,用户可能被允许在工作场所或者家庭位置访问这种文档。然而,当平台存在于公共位置时,用户被阻止访问这种文档。在一个实施例中,这种确定是基于位置信息的,例如,经由GPS传感器或者相机识别地标来确定的位置信息。其他安全性操作可包括提供彼此之间在接近范围内的设备的配对,例如,如本文所述的便携式平台和用户的桌面型计算机、移动电话,等等。在一些实现方式中,当这些设备被如此配对时,某些共享是经由近场通信实现的。然而,当这些设备超出一定范围时,这种共享可能被禁用。此外,当对如本文所述的平台和智能电话进行配对时,当这些设备在公共位置中时移动到彼此相距大于预定距离时,可以配置成触发警报。与之不同,当这些配对的设备处于安全位置时,例如工作场所或者家庭位置,这些设备可以超过这个预定的限制而不触发这种警报。
也可以利用传感器信息来增强响应性。例如,即使当平台处于低功率状态中时,也仍然可以使得传感器能够以相对低的频率运行。因此,确定了平台的位置的任何变化,例如,由惯性传感器、GPS传感器等等确定的变化。如果没有登记这种变化,就会发生与诸如Wi-FiTM接入点或者类似的无线使能器之类的先前无线中枢的更快连接,因为在这种情况下不需要扫描可用的无线网络资源。从而,实现了从低功率状态唤醒时的更高水平的响应性。
要理解,使用经由如本文所述的平台内的集成传感器获得的传感器信息可以实现许多其他用例,而上述示例只是为了说明的目的。使用如本文所述的系统,感知计算系统可以允许添加替换输入模式,包括手势识别,并且使得系统能够感测用户操作和意图。
在一些实施例中,可存在一个或多个红外或其他热感测元件,或者任何其他用于感测用户的存在或运动的元件。这种感测元件可包括一起工作、依次工作或者两者兼有的多个不同元件。例如,感测元件包括提供初始感测的元件,例如光或声音投射,然后是通过例如超声飞行时间相机或图案光相机进行手势检测的感测。
另外,在一些实施例中,系统包括光生成器来产生照明线。在一些实施例中,这条线提供了关于虚拟边界的视觉提示,即空间中的想象的或者虚拟的位置,其中用户通过或突破虚拟边界或平面的动作被解释为与计算系统接触的意图。在一些实施例中,照明线可以随着计算系统转变到与用户有关的不同状态而改变颜色。照明线可被用于为用户提供空间中的虚拟边界的视觉提示,并且可被系统用于确定计算机关于用户的状态的转换,包括确定用户何时希望与计算机接触。
在一些实施例中,计算机感测用户位置,并且进行操作来将用户的手穿过虚拟边界的运动解释为指示出用户与计算机接触的意图的手势。在一些实施例中,在用户通过虚拟线或平面时,由光生成器生成的光可以变化,从而向用户提供视觉反馈,指出用户已进入了用于提供手势来向计算机提供输入的区域。
显示屏可以提供计算系统关于用户的状态的转变的视觉指示。在一些实施例中,在第一状态中提供第一屏幕,在该状态中,用户的存在被系统感测到,例如通过使用一个或多个感测元件。
在一些实现方式中,系统起到感测用户身份的作用,例如通过面部识别。这里,可以在第二状态中提供向第二屏幕的转变,在该状态中,计算系统已识别了用户身份,其中这个第二屏幕向用户提供视觉反馈,指出用户已转变到新的状态。转变到第三屏幕可以在第三状态中发生,在该状态中,用户已确认了对用户的识别。
在一些实施例中,计算系统可以使用转变机制来为用户确定虚拟边界的位置,其中虚拟边界的位置可能随用户和情境而变化。计算系统可以生成光,例如照明线,以指示出用于与系统交互的虚拟边界。在一些实施例中,计算系统可以处于等待状态,并且光可以被以第一颜色产生。计算系统可以检测用户是否已到达越过了虚拟边界,例如通过使用感测元件来感测用户的存在和运动。
在一些实施例中,如果用户被检测到已经越过了虚拟边界(例如,用户的手比虚拟边界线更靠近计算系统),则计算系统可以转变到用于接收来自用户的手势输入的状态,其中指示出该转变的机制可包括指示虚拟边界的光变化到第二颜色。
在一些实施例中,计算系统然后可以确定是否检测到手势运动。如果检测到手势运动,则计算系统可以进行手势识别过程,这可包括使用来自手势数据库的数据,该数据库可以驻留在计算设备中的存储器中,或者可以被计算设备以其他方式访问。
如果用户的手势被识别,则计算系统可以响应于该输入而执行功能,并且如果用户在虚拟边界内,则返回以接收额外的手势。在一些实施例中,如果手势未被识别,则计算系统可以转变到差错状态中,其中指示出差错状态的机制可包括指示虚拟边界的光变化到第三颜色,并且如果用户在用于与计算系统接触的虚拟边界内,则系统返回以接收额外的手势。
如上所述,在其他实施例中,系统可被配置为可转换的平板系统,该系统可以在至少两种不同的模式中被使用,即平板模式和笔记本模式。该可转换系统可具有两个面板,即显示面板和底座面板,这样在平板模式中,这两个面板被布置成堆叠在彼此之上。在平板模式中,显示面板面朝外,并且可以提供传统平板设备中存在的触摸屏功能。在笔记本模式中,两个面板可以被布置成打开的蛤壳配置。
在各种实施例中,加速度计可以是3轴加速度计,其数据速率至少为50Hz。还可包括陀螺仪,它可以是3轴陀螺仪。此外,可以存在电子指南针/磁力计。另外,可以提供一个或多个接近传感器(例如,用于打开盖子,以感测人何时接近(或不接近)系统,并且调整功率/性能以延长电池寿命)。对于一些OS的传感器融合能力,包括加速计、陀螺仪和指南针,可提供增强的特征。此外,经由具有实时时钟(real-time clock,RTC)的传感器中枢,可以实现从传感器唤醒的机制,以实现在系统的其余部分处于低功率状态中时接收传感器输入。
在一些实施例中,内部盖子/显示器打开开关或传感器指示出盖子何时被关闭/打开,并且可被用于将系统置于连接待机状态中或者自动从连接待机状态唤醒。其他系统传感器可包括用于内部处理器、存储器和皮肤温度监视的ACPI传感器,以使得能够基于感测到的参数来改变处理器和系统操作状态。
在图6中还可以看到,各种外围设备可以耦合到处理器610。在示出的实施例中,各种组件可通过嵌入式控制器635被耦合。这种组件可包括键盘636(例如,经由PS2接口耦合)、风扇637、以及热传感器639。在一些实施例中,触摸板630也可经由PS2接口耦合到EC635。此外,一种安全性处理器,例如根据2003年10月2日的可信计算组(Trusted ComputingGroup,TCG)TPM规范版本1.2的可信平台模块(trusted platform module,TPM)638,也可以经由这个LPC互连耦合到处理器610。然而,要理解,本公开的范围在这方面不受限制,而安全处理和安全信息的存储可以在另一个受保护的位置,例如安全性协处理器中的静态随机访问存储器(static random access memory,SRAM),或者作为加密的数据块,这种数据块只有在受到安全隔区(secure enclave,SE)处理器模式保护时才会被解密。
在特定实现方式中,外围端口可包括高清晰度媒体接口(high definition mediainterface,HDMI)连接器(其可以具有不同的外形参数,例如全尺寸、迷你或者微型);一个或多个USB端口,例如根据通用串行总线(Universal Serial Bus,USB)修订版3.2规范(2017年9月)的全尺寸外部端口,当系统处于连接待机状态并且被插入到AC壁式电源中时,至少有一个被供电以用于USB设备(例如智能电话)的充电。此外,可以提供一个或多个ThunderboltTM端口。其他端口可包括外部可访问的读卡器,例如全尺寸SD-XC读卡器和/或用于WWAN的SIM卡读卡器(例如,8针读卡器)。对于音频,可存在具有立体声和麦克风能力(例如,组合功能)的3.5mm插孔,并且支持插孔检测(例如,只支持使用盖子中的麦克风的耳机或者在线缆中有麦克风的耳机)。在一些实施例中,这个插孔可以在立体声耳机和立体声麦克风输入之间重新分配任务。另外,可以提供电源插孔,以用于耦合到AC插座。
系统600可通过各种方式与外部设备进行通信,包括无线地进行通信。在图6所示的实施例中,存在各种无线模块,其中每一者可对应于被配置用于特定的无线通信协议的无线电装置。用于诸如近场之类的短距离中的无线通信的一种方式可经由近场通信(nearfield communication,NFC)单元645,该NFC单元在一个实施例中可经由SMBus与处理器610进行通信。注意,经由这个NFC单元645,彼此近邻的设备可以通信。例如,通过使两个设备紧密相关地适配在一起并且使得能够传送诸如识别信息、支付信息之类的信息、诸如图像数据之类的数据等等,用户可以使得系统600能够与另一个便携式设备(比如用户的智能电话)通信。也可以使用NFC系统执行无线电力传送。
使用本文描述的NFC单元,用户可以通过利用一个或多个这种设备的线圈之间的耦合,来将设备左右撞在一起以及将设备并排放在一起,以实现近场耦合功能(例如近场通信和无线电力传送(wireless power transfer,WPT))。更具体而言,实施例提供了具有战略地成形和放置的铁氧体材料的设备,以提供线圈的更好耦合。每个线圈具有与之相关联的电感,该电感可以协同系统的电阻性、电容性和其他特征一起被选择,以实现系统的共同谐振频率。
从图6中还可看出,额外的无线单元可包括其他短程无线引擎,包括WLAN单元650和蓝牙单元652。利用WLAN单元650,可以实现根据给定的电气与电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.11标准的Wi-FiTM通信,而经由蓝牙单元652,可发生经由蓝牙协议的短程通信。这些单元可经由例如USB链路或者通用异步接收器发送器(universal asynchronous receiver transmitter,UART)链路与处理器610通信。或者,这些单元可以根据外围组件互连快速TM(Peripheral ComponentInterconnect ExpressTM,PCIeTM)协议,例如,根据PCI快速TM规范基础规范版本3.0(2007年1月17日发布),或者另一这样的协议,例如串行数据输入/输出(serial data input/output,SDIO)标准,经由互连耦合到处理器610。当然,可被配置在一个或多个附加卡上的这些外围设备之间的实际物理连接可借由适配到主板的NGFF连接器。
此外,无线广域通信,例如根据蜂窝或其他无线广域协议的无线广域通信,可经由WWAN单元656发生,该WWAN单元进而可耦合到订户身份模块(subscriber identitymodule,SIM)657。此外,为了使能对位置信息的接收和使用,GPS模块655也可存在。注意,在图6所示的实施例中,WWAN单元656和诸如相机模块654之类的集成捕捉设备可经由诸如USB2.0或3.0链路之类的给定USB协议或者UART或I2C协议来通信。同样,这些单元的实际物理连接可以经由将NGFF附加卡适配到在主板上配置的NGFF连接器。
在特定实施例中,可以模块化地提供无线功能,例如,利用支持Windows 8CS的WiFiTM 802.11ac解决方案(例如,向后兼容IEEE 802.11abgn的附加卡)。这个卡可被配置在内部插槽中(例如,经由NGFF适配器)。额外的模块可以提供蓝牙能力(例如,有向后兼容性的蓝牙4.0),以及英特尔
Figure BDA0003659109550000221
无线显示功能。此外,可以经由单独的设备或者多功能设备提供NFC支持,并且作为示例可将其定位在机壳的右前部分中以便于触及。还有一个额外的模块可以是WWAN设备,它可以提供对3G/4G/LTE和GPS的支持。这个模块可被实现在内部(例如,NGFF)插槽中。可以为WiFiTM、蓝牙、WWAN、NFC和GPS提供集成天线支持,以实现从WiFiTM无缝转变到WWAN无线电,根据无线千兆比特规范(2010年7月)的无线千兆比特(wirelessgigabit,WiGig),反之亦然。
如上所述,可以在盖子中包含集成的相机。作为一个示例,这个相机可以是高分辨率相机,例如,具有至少2.0百万像素(megapixel,MP)的分辨率,并且扩展到6.0MP及以上。
为了提供音频输入和输出,可经由数字信号处理器(digital signal processor,DSP)660来实现音频处理器,该DSP可经由高清晰度音频(high definition audio,HDA)链路耦合到处理器610。类似地,DSP 660可与集成编码器/解码器(编解码器)及放大器662进行通信,该集成编码器/解码器及放大器进而可耦合到输出扬声器663,该输出扬声器可被实现在机壳内。类似地,放大器及编解码器662可被耦合以从麦克风665接收音频输入,该麦克风在一实施例中可经由双阵列麦克风(例如,数字麦克风阵列)来实现,以提供高质量音频输入,从而使能对系统内的各种操作的由语音激活的控制。还要注意,音频输出可从放大器/编解码器662被提供到耳机插孔664。虽然在图6的实施例中是以这些特定组件来示出的,但要理解本公开的范围在这个方面不受限制。
在特定实施例中,数字音频编解码器和放大器能够驱动立体声耳机插孔、立体声麦克风插孔、内部麦克风阵列以及立体声扬声器。在不同的实现方式中,编解码器可以被集成到音频DSP中,或者经由HD音频路径耦合到外围控制器中枢(peripheral controllerhub,PCH)。在一些实现方式中,除了集成的立体声扬声器以外,还可以提供一个或多个低音扬声器,并且扬声器方案可以支持DTS音频。
在一些实施例中,处理器610可以由外部电压调节器(voltage regulator,VR)和集成在处理器管芯内部的多个内部电压调节器(被称为全集成电压调节器(fullyintegrated voltage regulator,FIVR))供电。在处理器中使用多个FIVR允许将组件分组到分开的电力平面中,使得电力被FIVR调节并且只供应给群组中的那些组件。在功率管理期间,一个FIVR的给定电力平面在处理器被置于某个低功率状态中时可被掉电或断电,而另一FIVR的另一电力平面保持活跃,或者被完全供电。
处理器中的功率控制可以带来增强的省电。例如,功率可以在核心之间被动态分配,个体核心可以改变频率/电压,并且可以提供多个深度低功率状态,以实现非常低的功率消耗。此外,对核心或者独立核心部分的动态控制可以通过在组件不被使用时将其断电来提供功率消耗的降低。
在不同的实现方式中,诸如TPM之类的安全性模块可被集成到处理器中,或者可以是分立的设备,例如TPM 2.0设备。有了集成的安全性模块(也被称为平台信任技术(Platform Trust Technology,PTT)),可以使得BIOS/固件能够为某些安全性特征暴露某些硬件特征,包括安全指令、安全启动、英特尔
Figure BDA0003659109550000231
防盗技术、英特尔
Figure BDA0003659109550000232
身份保护技术、英特尔
Figure BDA0003659109550000234
可信执行技术(Trusted Execution Technology,TxT)以及英特尔
Figure BDA0003659109550000233
可管理性引擎技术以及诸如比如安全键盘和显示器之类的安全用户界面。
接下来转到图7,示出了根据某些实施例可充当主机104或者XPU 102的示例计算系统的另一个框图。作为具体说明性示例,SoC 700被包括在用户设备(user equipment,UE)中。在一个实施例中,UE指的是将被最终用户用来通信的任何设备,例如手持电话、智能电话、平板设备、超薄笔记本、具有宽带适配器的笔记本、或者任何其他类似的通信设备。经常,UE连接到基站或节点,这在性质上可能对应于GSM网络中的移动站(mobile station,MS)。
这里,SoC 700包括2个核心:706和707。与以上论述类似,核心706和707可符合指令集体系结构,例如基于英特尔
Figure BDA0003659109550000241
体系结构CoreTM的处理器、超微半导体公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计,或者它们的客户,以及它们的被许可者或采用者。核心706和707耦合到与总线接口单元709和L2缓存710相关联的缓存控制708以与系统700的其他部分通信。互连712包括片上互连,例如IOSF、AMBA或者上文论述的其他互连,它们可能实现描述的公开内容的一个或多个方面。
互连712提供到其他组件的通信信道,例如到订户身份模块(SubscriberIdentity Module,SIM)730以与SIM卡相对接,到引导rom735来保存引导代码供核心706和707执行以初始化和引导SoC 700,到SDRAM控制器740以与外部存储器(例如,DRAM 760)相对接,到闪存控制器745以与非易失性存储器(例如,闪存765)相对接,到外设控制750(例如串行外围接口)以与外设相对接,到视频编解码器720和视频接口725以显示和接收输入(例如触摸使能输入),到GPU 715以执行图形相关计算,等等。这些接口的任何一者可包含本文描述的公开内容的各方面。
此外,系统图示了用于通信的外设,例如蓝牙模块770、3G调制解调器775、GPS 780以及WiFi 785。注意,如上所述,UE包括用于通信的无线电装置。因此,这些外围通信模块不全都是必需的。然而,在UE中,要包括某种形式的无线电装置用于外部通信。
设计可经过从创建到仿真再到制造的各种阶段。表示设计的数据可通过若干种方式来表示该设计。首先,正如在仿真中有用的,可以利用硬件描述语言(hardwaredescription language,HDL)或者另外的功能性描述语言来表示硬件。此外,在设计过程的一些阶段可产生具有逻辑和/或晶体管门的电路级模型。此外,大多数设计在某个阶段达到表示各种设备在硬件模型中的物理放置的数据的级别。在使用传统半导体制造技术的情况下,表示硬件模型的数据可以是为用于生产集成电路的掩模指定各种特征在不同掩模层上的存在与否的数据。在一些实现方式中,这种数据可被存储在数据库文件格式中,例如图形数据系统II(Graphic Data System II,GDS II)、开放艺术作品系统交换标准(OpenArtwork System Interchange Standard,OASIS),或者类似格式。
在一些实现方式中,基于软件的硬件模型以及HDL和其他功能性描述语言对象可包括寄存器传送语言(register transfer language,RTL)文件,以及其他示例。这种对象可以是机器可解析的,从而使得设计工具可以接受HDL对象(或模型),针对描述的硬件的属性来解析HDL对象,并且从该对象确定物理电路和/或片上布局。设计工具的输出可被用于制造物理设备。例如,设计工具可以从HDL对象确定各种硬件和/或固件元素的配置,例如总线宽度、寄存器(包括大小和类型)、存储器块、物理链路路径、架构拓扑,以及将被实现来实现在HDL对象中建模的系统的其他属性。设计工具可包括用于确定片上系统(SoC)和其他硬件设备的拓扑和架构配置的工具。在一些情况中,HDL对象可被用作开发模型和设计文件的基础,这些模型和设计文件可以被制造设备用来制造所描述的硬件。实际上,HDL对象本身可作为输入被提供到制造系统软件以引起描述的硬件。
在设计的任何表示中,数据可被存储在任何形式的机器可读介质中。存储器或者诸如盘之类的磁存储装置或光存储装置可以是机器可读介质,用来存储经由光波或电波传输的信息,该光波或电波被调制或以其他方式生成来传输这种信息。当传输指示或携带代码或设计的电载波时,就执行电信号的拷贝、缓冲或重传而言,做出新的拷贝。从而,通信提供商或网络提供商可在有形机器可读介质上至少暂时地存储物品,例如被编码到载波中的信息,其体现本公开的实施例的技术。
本文使用的模块指的是硬件、软件和/或固件的任何组合。作为示例,模块包括硬件(例如微控制器),其与非暂态介质相关联来存储适合于被微控制器执行的代码。因此,在一个实施例中,提及模块指的是硬件,其被特别配置为识别和/或执行要被保存在非暂态介质上的代码。此外,在另一实施例中,对模块的使用指的是包括代码的非暂态介质,该代码特别适合于被微控制器执行来执行预定的操作。正如可以推断出的,在另外一个实施例中,术语模块(在此示例中)可以指微控制器和非暂态介质的组合。经常,被图示为分开的模块边界通常是变化的并且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或者其组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,对术语逻辑的使用包括硬件,例如晶体管、寄存器或其他硬件,例如可编程逻辑器件。
对短语“用来”或者“被配置为”的使用在一个实施例中指的是布置、装配、制造、许诺销售、进口和/或设计一种装置、硬件、逻辑或元件来执行指定或确定的任务。在此示例中,未在操作的装置或其元件仍“被配置为”执行指定的任务,如果它被设计、耦合和/或互连来执行所述指定任务的话。作为纯说明性示例,逻辑门在操作期间可以提供0或1。但“被配置为”向时钟提供使能信号的逻辑门并不包括可提供1或0的每一个可能的逻辑门。反而,逻辑门是以在操作期间1或0输出会使能时钟的某种方式耦合的那种。再次注意,对术语“被配置为”的使用并不要求操作,而是聚焦于装置、硬件和/或元件的潜在状态,其中在潜在状态中,装置、硬件和/或元件被设计为当该装置、硬件和/或元件在操作时,执行特定的任务。
此外,在一个实施例中对短语“能够”和/或“可操作来”的使用指的是某种装置、逻辑、硬件和/或元件被以使得能够以指定方式使用该装置、逻辑、硬件和/或元件的方式来设计。与上文一样,要注意,在一个实施例中对“用来”、“能够”或者“可操作来”的使用指的是装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件未在操作,但被以使得能够以指定方式使用装置的方式来设计。
本文使用的值包括数字、状态、逻辑状态或者二元逻辑状态的任何已知表示。经常,对逻辑电平、逻辑值或论理值的使用也被称为1和0,这简单地就是表示二元逻辑状态。例如,1指的是高逻辑电平,0指的是低逻辑电平。在一个实施例中,存储单元,例如晶体管或闪存单元,可能够保存单个逻辑值或多个逻辑值。然而,使用了计算机系统中的值的其他表示。例如,十进制数字十也可被表示为二进制值710和十六进制字母A。因此,值包括能够被保存在计算机系统中的信息的任何表示。
此外,状态可由值或值的部分来表示。作为示例,第一值,例如逻辑一,可表示默认或初始状态,而第二值,例如逻辑零,可表示非默认状态。此外,术语重置和设置在一个实施例中分别指的是默认的和更新后的值或状态。例如,默认值可能包括高逻辑值,即重置,而更新后的值可能包括低逻辑值,即设置。注意,值的任何组合可被利用来表示任何数目的状态。
上文记载的方法、硬件、软件、固件或代码的实施例可经由存储在机器可访问、机器可读、计算机可访问或者计算机可读介质上的可由处理元件执行的指令或代码来实现。非暂态机器可访问/可读介质包括以机器(例如计算机或电子系统)可读的形式提供(即,存储和/或传输)信息的任何非暂态机制。例如,非暂态机器可访问介质包括随机访问存储器(random-access memory,RAM),例如静态RAM(static RAM,SRAM)或动态RAM(dynamic RAM,DRAM);ROM;磁存储介质或光存储介质;闪存设备;电存储设备;光存储设备;声存储设备;或者用于保存从暂态(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等等,它们要与可从其接收信息的非暂态介质相区分。
用于将逻辑编程为执行本公开的实施例的指令可被存储在系统中的存储器内,例如DRAM、缓存、闪存或者其他存储装置。此外,可经由网络或借由其他计算机可读介质来分发指令。从而,机器可读介质可包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,但不限于是软盘,光盘,致密盘只读存储器(Compact Disc,Read-OnlyMemory,CD-ROM),以及磁光盘,只读存储器(Read-Only Memory,ROM),随机访问存储器(Random Access Memory,RAM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM),磁卡或光卡,闪存,或者在经由电的、光的、声的或者其他形式的传播信号(例如,载波、红外信号、数字信号,等等)通过互联网传输信息时使用的有形机器可读存储装置。因此,计算机可读介质包括适用于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有型机器可读介质。
本说明书中各处提及“一个实施例”或“一实施例”的意思是,联系该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。从而,短语“在一个实施例中”或“在一实施例中”在本说明书各处的出现不一定全都指的是同一实施例。此外,特定的特征、结构或特性在一个或多个实施例中可按任何适当的方式被组合。
示例1包括一种处理器单元,包括:第一控制器,用于通过第一链路耦合到主机处理单元;第二控制器,用于通过第二链路耦合到第二处理器单元,其中所述第二处理器单元经由第三链路耦合到所述主机处理单元;以及电路,用于确定是通过所述第一链路还是经由所述第二处理单元通过所述第二链路向所述主机处理单元发送缓存一致请求。
示例2包括如示例1所述的主题,并且其中,所述第一链路和所述第三链路各自是根据计算快速链路协议的链路。
示例3包括如示例1和2中的任何一者所述的主题,并且其中,所述电路基于所述第一链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
示例4包括如示例1-3中的任何一者所述的主题,并且其中,所述电路基于可用的链路信用的数目来确定所述第一链路上的可用上行带宽的量。
示例5包括如示例1-4中的任何一者所述的主题,并且其中,所述电路基于原始上行带宽度量来确定所述第一链路上的可用上行带宽的量。
示例6包括如示例1-5中的任何一者所述的主题,并且其中,所述电路基于所述第二链路上的可用带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
示例7包括如示例1-6中的任何一者所述的主题,并且其中,所述电路基于所述第三链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
示例8包括如示例1-7中的任何一者所述的主题,并且其中,所述电路基于由所述处理器单元从所述第二处理单元接收的去往主机的请求的数目,来确定所述第三链路上的可用上行带宽的量,其中,所述处理器单元通过所述第一链路向所述主机处理单元发送所述去往主机的请求。
示例9包括如示例1-8中的任何一者所述的主题,并且还包括第二电路,用于跟踪从所述第二处理器单元接收的针对所述主机处理单元的存储器的存储器请求;并且响应来自所述主机处理单元的与这种存储器相关联的窥探请求。
示例10包括如示例1-9中的任何一者所述的主题,其中,所述处理器单元和所述第二处理器单元各自是图形处理单元。
示例11包括一种方法,包括:由第一处理器单元通过第一链路与主机处理单元通信;由所述第一处理器单元通过第二链路与第二处理器单元通信,其中所述第二处理器单元经由第三链路耦合到所述主机处理单元;并且确定是通过所述第一链路还是经由所述第二处理单元通过所述第二链路向所述主机处理单元发送缓存一致请求。
示例12包括如示例11所述的主题,并且其中,所述第一链路和所述第三链路各自是根据计算快速链路协议的链路。
示例13包括如示例11和12中的任何一者所述的主题,并且还包括基于所述第一链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
示例14包括如示例11-13中的任何一者所述的主题,并且还包括基于可用的链路信用的数目来确定所述第一链路上的可用上行带宽的量。
示例15包括如示例11-14中的任何一者所述的主题,并且还包括基于原始上行带宽度量来确定所述第一链路上的可用上行带宽的量。
示例16包括如示例11-15中的任何一者所述的主题,并且还包括基于所述第二链路上的可用带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
示例17包括如示例11-16中的任何一者所述的主题,并且还包括基于所述第三链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
示例18包括如示例11-17中的任何一者所述的主题,并且还包括基于由所述处理器单元从所述第二处理单元接收的去往主机的请求的数目,来确定所述第三链路上的可用上行带宽的量,其中,所述处理器单元通过所述第一链路向所述主机处理单元发送所述去往主机的请求。
示例19包括如示例11-18中的任何一者所述的主题,并且还包括跟踪从所述第二处理器单元接收的针对所述主机处理单元的存储器的存储器请求;并且响应来自所述主机处理单元的与这种存储器相关联的窥探请求。
示例20包括如示例11-19中的任何一者所述的主题,并且其中,所述处理器单元和所述第二处理器单元各自是图形处理单元。
示例21包括一种系统,包括主机处理器单元;以及多个处理器单元,所述多个处理器单元中的一处理器单元经由第一链路耦合到所述主机处理器单元并且经由多个第二链路耦合到所述多个处理器单元中的其他处理器单元,所述其他处理器单元经由多个第三链路耦合到所述主机处理器单元;并且其中,所述处理器单元确定是通过所述第一链路还是经由所述其他处理单元之一通过所述第二链路之一向所述主机处理单元发送缓存一致请求。
示例22包括如示例21所述的主题,并且其中,所述第一链路和所述第三链路各自是根据计算快速链路协议的链路。
示例23包括如示例21和22中的任何一者所述的主题,并且其中,所述处理器单元基于所述第一链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路之一发送所述缓存一致请求。
示例24包括如示例21-23中的任何一者所述的主题,并且其中,所述处理器单元基于可用的链路信用的数目来确定所述第一链路上的可用上行带宽的量。
示例25包括如示例21-24中的任何一者所述的主题,并且其中,所述处理器单元基于原始上行带宽度量来确定所述第一链路上的可用上行带宽的量。
示例26包括如示例21-25中的任何一者所述的主题,并且其中,所述处理器单元基于所述第二链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路之一发送所述缓存一致请求。
示例27包括如示例21-26中的任何一者所述的主题,并且其中,所述处理器单元基于所述多个第三链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
示例28包括如示例21-27中的任何一者所述的主题,并且其中,所述处理器单元基于由所述处理器单元从所述第二处理单元接收的去往主机的请求的数目,来确定所述第三链路上的可用上行带宽的量,其中,所述处理器单元通过所述第一链路向所述主机处理单元发送所述去往主机的请求。
示例29包括如示例21-28中的任何一者所述的主题,并且其中,所述处理器单元经由所述其他处理器单元中的第一多个其他处理器单元向所述主机处理器单元发送多个缓存一致请求。
示例30包括如示例21-29中的任何一者所述的主题,并且其中,所述处理器单元跟踪从所述多个处理器单元中的第二处理器单元接收的存储器请求,所述存储器请求是针对所述主机处理单元的存储器的;并且响应来自所述主机处理单元的与这种存储器相关联的窥探请求。
示例31包括如示例21-30中的任何一者所述的主题,并且其中,所述处理器单元和所述第二处理器单元各自是图形处理单元。
示例32包括如示例21-31中的任何一者所述的主题,并且其中,所述处理器单元跟踪从所述多个处理器单元中的第二处理器单元接收的存储器请求,所述存储器请求是针对所述主机处理单元的存储器的;并且响应来自所述主机处理单元的与这种存储器相关联的窥探请求。
示例33包括其上存储有指令的至少一个非暂态机器可访问存储介质,所述指令当在机器上被执行时,使得所述机器执行如示例11-20中的任何一者所述的方法。
示例34包括一种系统,包括用于执行如示例11-20中的任何一者所述的方法的装置。
在前述说明书中,参考特定的示范性实施例给出了详细描述。然而,很明显,在不脱离如所附权利要求所记载的本公开的更宽精神和范围的情况下,可以对其进行各种修改和改变。因此,应从说明意义而不是限制意义上来看待说明书和附图。此外,前述对实施例和其他示范性语言的使用不一定指的是同一实施例或同一示例,而是可以指不同的以及有区别的实施例,以及可能相同的实施例。

Claims (22)

1.一种处理器单元,包括:
第一控制器,用于通过第一链路耦合到主机处理单元;
第二控制器,用于通过第二链路耦合到第二处理器单元,其中所述第二处理器单元经由第三链路耦合到所述主机处理单元;以及
电路,用于确定是通过所述第一链路还是经由所述第二处理单元通过所述第二链路向所述主机处理单元发送缓存一致请求。
2.如权利要求1所述的处理器单元,其中,所述第一链路和所述第三链路各自是根据计算快速链路协议的链路。
3.如权利要求1所述的处理器单元,其中,所述电路基于所述第一链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
4.如权利要求3所述的处理器单元,其中,所述电路基于可用的链路信用的数目来确定所述第一链路上的可用上行带宽的量。
5.如权利要求3所述的处理器单元,其中,所述电路基于原始上行带宽度量来确定所述第一链路上的可用上行带宽的量。
6.如权利要求1所述的处理器单元,其中,所述电路基于所述第二链路上的可用带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
7.如权利要求1所述的处理器单元,其中,所述电路基于所述第三链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
8.如权利要求7所述的处理器单元,其中,所述电路基于由所述处理器单元从所述第二处理单元接收的去往主机的请求的数目,来确定所述第三链路上的可用上行带宽的量,其中,所述处理器单元通过所述第一链路向所述主机处理单元发送所述去往主机的请求。
9.如权利要求1所述的处理器单元,还包括第二电路,用于:
跟踪从所述第二处理器单元接收的针对所述主机处理单元的存储器的存储器请求;并且
响应来自所述主机处理单元的与这种存储器相关联的窥探请求。
10.如权利要求1所述的处理器单元,其中,所述处理器单元和所述第二处理器单元各自是图形处理单元。
11.一种方法,包括:
由第一处理器单元通过第一链路与主机处理单元通信;
由所述第一处理器单元通过第二链路与第二处理器单元通信,其中所述第二处理器单元经由第三链路耦合到所述主机处理单元;并且
确定是通过所述第一链路还是经由所述第二处理单元通过所述第二链路向所述主机处理单元发送缓存一致请求。
12.如权利要求11所述的方法,还包括:基于所述第一链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
13.如权利要求12所述的方法,还包括:基于可用的链路信用的数目来确定所述第一链路上的可用上行带宽的量。
14.如权利要求12所述的方法,还包括:基于原始上行带宽度量来确定所述第一链路上的可用上行带宽的量。
15.如权利要求11所述的方法,还包括:基于所述第二链路上的可用带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
16.如权利要求11所述的方法,还包括:基于所述第三链路上的可用上行带宽的量来确定是通过所述第一链路还是通过所述第二链路发送所述缓存一致请求。
17.如权利要求11所述的方法,还包括:
基于从所述第二处理单元接收的去往主机的请求的数目来确定所述第三链路上的可用上行带宽的量;和
通过所述第一链路将所述去往主机的请求发送到所述主机处理单元。
18.如权利要求11所述的方法,还包括:
跟踪从所述第二处理器单元接收的针对所述主机处理单元的存储器的存储器请求;并且
响应来自所述主机处理单元的与这种存储器相关联的窥探请求。
19.如权利要求11所述的方法,其中,所述第一链路和所述第三链路各自是根据计算快速链路协议的链路。
20.如权利要求11所述的方法,其中,所述第一处理器单元和所述第二处理器单元各自是图形处理单元。
21.一种系统,包括用于执行如权利要求11-20中任一项所述的方法的装置。
22.一种计算机程序产品,包括指令,所述指令在由处理器执行时使所述处理器执行如权利要求11-20中任一项所述的方法。
CN202210568151.1A 2021-06-25 2022-05-24 用于从xpus到主机处理器的上行通信的对等链路共享 Pending CN115529682A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/359,321 US20210318980A1 (en) 2021-06-25 2021-06-25 Peer-to-peer link sharing for upstream communications from xpus to a host processor
US17/359,321 2021-06-25

Publications (1)

Publication Number Publication Date
CN115529682A true CN115529682A (zh) 2022-12-27

Family

ID=78006376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210568151.1A Pending CN115529682A (zh) 2021-06-25 2022-05-24 用于从xpus到主机处理器的上行通信的对等链路共享

Country Status (3)

Country Link
US (1) US20210318980A1 (zh)
EP (1) EP4109281B1 (zh)
CN (1) CN115529682A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11860797B2 (en) 2021-12-30 2024-01-02 Advanced Micro Devices, Inc. Peripheral device protocols in confidential compute architectures
US20220269433A1 (en) * 2022-02-28 2022-08-25 Rahul Pal System, method and apparatus for peer-to-peer communication
US20230306000A1 (en) * 2022-03-28 2023-09-28 Palantir Technologies Inc. Data asset sharing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180143932A1 (en) * 2016-11-21 2018-05-24 Intel Corporation Apparatuses and methods to spawn multiple virtual serial bus hub instances on a same physical serial bus hub
US20200379930A1 (en) * 2019-05-29 2020-12-03 Hewlett Packard Enterprise Development Lp System and method for transforming legacy sr-iov devices to appear as siov queue pairs using a management controller
US11416397B2 (en) * 2019-10-14 2022-08-16 Intel Corporation Global persistent flush
US11698879B2 (en) * 2019-12-06 2023-07-11 Intel Corporation Flexible on-die fabric interface

Also Published As

Publication number Publication date
EP4109281A1 (en) 2022-12-28
EP4109281B1 (en) 2024-05-01
US20210318980A1 (en) 2021-10-14

Similar Documents

Publication Publication Date Title
CN109891399B (zh) 在相同的物理串行总线集线器上产生多个虚拟串行总线集线器实例的装置和方法
CN106462208B (zh) Usb电力输送控制器共享
TWI524184B (zh) 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統
CN108089940B (zh) 处理超时的系统、方法和装置
JP6286551B2 (ja) 処理要素構成のための装置、デバイス構成のための装置および方法、高速デバイス構成のための装置、プログラム、並びに、非一時的コンピュータ可読ストレージ媒体
CN108027785B (zh) 用于对链路拆分进行去偏斜的方法、设备和系统
WO2017172195A1 (en) Method, apparatus, and system for plugin mechanism of computer extension bus
EP4109281A1 (en) Peer-to-peer link sharing for upstream communications from xpus to a host processor
KR101710595B1 (ko) 집적된 클럭 차동 버퍼링
CN115543905A (zh) 针对pcie进行sris模式选择的系统、方法和装置
CN110121703B (zh) 用于向量通信的系统和方法
US10969992B2 (en) Address translation for scalable linked devices
US11188492B2 (en) Enhanced serial peripheral interface (eSPI) port expander
CN112579496A (zh) 减少引脚计数接口
CN116368477A (zh) 使用具有电路切换的增强型重定时器对计算设备的分解
US20210389371A1 (en) Debug data communication system for multiple chips
CN109643577B (zh) 用于存储器训练的电参数的多维优化
TW201725516A (zh) 用以針對實體層裝置的組件傳輸資料之控制器
US20220113967A1 (en) Accelerator fabric for discrete graphics
CN116340248A (zh) 芯片上的多小芯片系统的互连网络
WO2017210143A1 (en) Method, apparatus, and system for cache coherency using a coarse directory
US11126554B2 (en) Prefetching write permissions into address translation cache
US20220199573A1 (en) Modular low latency electrical sequence for die-to-die interface
US20220121594A1 (en) Soc architecture to reduce memory bandwidth bottlenecks and facilitate power management
CN116264195A (zh) 阶梯封装和凹陷电路板

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication