CN116340250A - 分立图形的加速器结构 - Google Patents
分立图形的加速器结构 Download PDFInfo
- Publication number
- CN116340250A CN116340250A CN202211613553.5A CN202211613553A CN116340250A CN 116340250 A CN116340250 A CN 116340250A CN 202211613553 A CN202211613553 A CN 202211613553A CN 116340250 A CN116340250 A CN 116340250A
- Authority
- CN
- China
- Prior art keywords
- memory
- request
- host
- request type
- soc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 377
- 239000004744 fabric Substances 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 50
- 238000000034 method Methods 0.000 claims description 14
- 230000036961 partial effect Effects 0.000 claims description 9
- 230000008878 coupling Effects 0.000 claims description 8
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 238000009877 rendering Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 description 67
- 238000004891 communication Methods 0.000 description 38
- 230000002093 peripheral effect Effects 0.000 description 24
- 238000007726 management method Methods 0.000 description 19
- 238000013461 design Methods 0.000 description 18
- 239000003795 chemical substances by application Substances 0.000 description 15
- 238000012546 transfer Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 11
- 238000013403 standard screening design Methods 0.000 description 11
- 230000005291 magnetic effect Effects 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 10
- 239000004065 semiconductor Substances 0.000 description 10
- 230000009977 dual effect Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000004043 responsiveness Effects 0.000 description 6
- 238000005286 illumination Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005355 Hall effect Effects 0.000 description 2
- 239000011449 brick Substances 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 239000005400 gorilla glass Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003678 scratch resistant effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
- 229910000859 α-Fe Inorganic materials 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
Abstract
公开了用于分立图形的加速器结构。一种系统,该系统包括:分立图形片上系统(SoC),耦合到主机处理器单元,该SoC包括结构,该结构包括用于对来自计算引擎的请求进行解码的处置器电路系统,该处置器电路系统用于基于该请求中包括的操作码来对请求进行路由,处置器配置成用于对来自由计算引擎在请求中使用的操作码集合的操作码进行解码,其中操作码集合包括与以下各项相对应的操作码:第一写入请求类型和第一读取请求类型,其中第一写入请求类型和第一读取请求类型的请求被路由到主机存储器或图形存储器;以及第二写入请求类型和第二读取请求类型,其中第二写入请求类型和第二读取请求类型的请求用于被路由到边带网络。
Description
背景技术
计算系统可包括分立图形系统,其中图形处理单元(graphics processing unit,GPU)与中央处理单元(central processing unit,CPU)分开。使用分立图形的系统可包括由GPU使用的存储器,该存储器与CPU使用的系统存储器不同。片上系统(system-on-chip,SoC)是一种集成电路,其将不同组件(诸如传统上与基于处理器的系统相关联的组件)组合成单个芯片,或者在一些应用中,将不同组件组合在少量互连的芯片中。在一些系统中,GPU可由SoC实现。
附图说明
图1图示出根据某些实施例的具有分立图形的系统的包括加速器结构的系统。
图2图示出根据某些实施例的计算请求/响应处置器和计算引擎。
图3图示出根据某些实施例的存储器桥接器和存储器子系统。
图4图示出根据某些实施例的边带桥接器、处置器和网络。
图5图示出根据某些实施例的从计算引擎到存储器子系统的请求的流程。
图6图示出根据某些实施例的从计算引擎到边带网络的请求的流程。
图7图示出根据某些实施例的从计算引擎到主机存储器的请求的流程。
图8图示出根据某些实施例的从计算引擎到加速器存储器的请求的流程。
图9图示出根据某些实施例的从计算引擎到输入/输出(input/output,I/O)设备的请求的流程。
图10图示出根据某些实施例的示例计算机系统。
图11图示出根据各种实施例的计算系统中存在的组件的框图。
图12图示出根据各种实施例的另一个计算系统的框图。
各附图中相似的附图标记和命名指示相似的要素。
具体实施方式
图1图示出根据某些实施例的包括分立图形片上系统(system on achip,SoC)102的系统100,该片上系统102包括加速器结构104。SoC 102与主机处理单元106(例如,中央处理单元或其他合适的处理器,本文也称为主机)和图形存储器108耦合。SoC 102可实现与主机处理单元106分开的图形处理单元(GPU)(例如,在不同的芯片和/或封装上)。主机处理单元106也与系统存储器110耦合。SoC 102进一步包括计算引擎112(其也可以称为图形引擎或渲染引擎)、图形设备114、存储器子系统116和边带网络118。在各种实施例中,分立图形SoC 102可包括单个半导体芯片或多个半导体芯片,例如在公共封装中或驻留在同一电路板上。例如,计算引擎112可以由第一芯片实现,SoC的一个或多个其他组件(或其部分)中的一个或多个可在一个或多个额外的芯片上,或者图示组件可以在多个芯片之间拆分。
用于分立图形的现有SoC加速器结构通常非常庞大和繁琐。结构可能存在各种缺点(诸如高逻辑门计数、大功耗、复杂的协议语义、高调试复杂性或昂贵的实现方式),使其对各种系统没有吸引力。
本公开的各种实施例提供了加速器结构104。在各种实施例中,结构104可以是高速、功率高效、非相干和/或可缩放的。该结构可以支持计算引擎112与图形存储器108之间的事务,计算引擎112与主机存储器(例如,系统存储器110)之间的事务,SoC上的代理(例如,耦合到边带网络118的SoC代理)或耦合到(例如,I/O设备)的代理与图形存储器108之间的事务,计算引擎112与耦合到边带网络118的SoC代理之间的事务,和/或主机(例如,主机处理单元106)与图形存储器108之间的事务。
结构104可支持计算引擎112的有限的优化操作码集合。这些操作码允许计算引擎与SoC 102的其他设备组件(例如,耦合到边带网络118的组件)、主机的存储器(例如,系统存储器110)和SoC的本地存储器(例如,图形存储器108)进行通信。在一个示例中,计算引擎112用于经由结构104发送的通信的操作码集合包括五个指令的操作码:用于写入图形存储器108或系统存储器110的64字节全缓存行写入(本文称为“NSWF”),用于写入图形存储器108或系统存储器110的64字节部分写入(本文称为“NSW”),用于从图形存储器108或系统存储器110读取的64字节读取请求(本文称为“NSRDF”),写入耦合到边带网络118的设备的存储器(例如,寄存器)的区域读取请求(本文称为“PORTIN”),以及从耦合到边带网络118的设备的存储器读取的寄存器写入请求(本文称为“PORTOUT”)。各种实施例可包括主机I/O桥接器119,该桥接器在主机与图形存储器108之间进行通信,以及将计算引擎针对系统存储器110发送的事务传送到主机。
各种实施例可以提供这样的结构104,该结构104提供一个或多个技术优势,诸如占用相对少量的芯片面积、低功率利用、简单的协议语义、或与分立图形系统以前的结构相比低的调试复杂性。
图1提供了加速器结构104的高级概述。加速器结构104的基本构建块被称为信道120(例如,120A、120B)。每个信道具有到计算引擎112的链路,本文称为计算链路122(例如,122A、122B)。每个信道具有到存储器子系统116的链路,本文称为本地存储器链路124(例如,124A,124B),用于本地存储器事务(例如,源自SoC 102处的存储器事务)。在一些实施例中,信道中的一个或多个信道可具有一个或多个其他链路,诸如用于涉及主机或I/O设备132的事务的主结构链路126,用于边带(例如,funnyIO)事务的边带链路128,以及用于主机和I/O设备与图形存储器108的事务的主机和I/O存储器链路130。每个信道120都是模块化且自洽的,因此加速器结构104可以基于存储器配置和SoC流来进行缩放(例如,可以向加速器结构104添加额外的信道120)。在描绘的示例中,结构104包括两个信道120A和120B。信道120A具有全部五个上述的链路(例如,122A、124A、126、128和130),而信道120B仅具有默认链路(例如,122B、124B)。
计算引擎112可以执行与SoC 102的图形功能相关的任何合适的计算操作,诸如渲染操作(例如,着色、照明、纹理等)。计算引擎112也可以称为图形引擎或渲染引擎。在各种实施例中,计算引擎112可以包括多个模块化执行单元(execution unit,EU)切片来处理数据。
存储器子系统116可以耦合到信道120的任何数量的存储器链路(例如124、130)。存储器子系统可以包括连接到图形存储器108的任何数量的存储器控制器和存储器PHY。在一些实施例中,特定的存储器控制器和PHY可以耦合到图形存储器108各自的存储器设备。
图形存储器108可以包括任何合适类型的存储器,诸如双数据速率(dual datarate,DDR)存储器,诸如低功率DDR(low-power DDR,LPDDR)或图形DDR(graphics DDR,GDDR)(或其他合适的存储器,包括本文描述的任何类型的存储器)。在一些实施例中,图形存储器108与SoC 102永久地或可移除地耦合。
图形设备114可能负责SoC 102与主机接口。例如,图形设备114可以按顺序排列主机事务,并可确保消息排序(例如,PCIe排序)。此类主机事务可包括例如,配置事务、存储器事务或I/O事务。
主机I/O桥接器119可以处置主机或I/O设备与图形存储器108之间的事务,以及计算引擎112与主机存储器(例如,系统存储器110)之间的事务。桥接器119可以执行以下操作,诸如主结构链路126的链路管理、协议转换、消息排序(例如,强制PCIe排序)、在消息准备好被发送到其目的地之前通过请求和响应(response,Rsp)FIFO的消息缓冲、写入碎片化和响应合并、以及时钟跨越(例如,桥接器119可以在由计算请求/响应处置器和/或存储器桥接器使用的第一时钟域与由主结构(例如,包括主结构链路126和图形设备114)使用的第二时钟域之间转换信号时钟)。
如本文所述,特定链路的链路管理可包括以下功能中的任何一项或多项:初始化链路、为链路提供功率管理(例如,在链路不使用时使链路掉电)、信用管理(例如,跟踪待处理和/或飞行中的事务数量)、带宽管理(例如,应用反向压力)、时钟管理(例如,为链路提供时钟)或其他合适的链路管理操作。
由桥接器119执行的协议转换可包括将由计算引擎112接收的通信(例如,读取和写入请求(诸如NSWF、NSW和NsRdF请求))从由计算引擎112使用的第一协议(例如,本文称为计算协议)(例如,管芯中接口(in-die interface,IDI)、PCIe、加速器缓存相干互连(CacheCoherent Interconnect for Accelerator,CCIX)、计算快速链路(Compute ExpressLink,CXL)或其他合适的协议)转换为主结构链路126的第二协议(本文称为主结构协议)(例如,PCIe、集成片上系统结构(integrated on-chip system fabric,IOSF)、NVLink、超路径互连(Ultra Path Interconnect,UPI)或其他合适的协议)),并且然后将转换后的通信转发到图形设备114(例如,向主机)。同样,桥接器119可以接收来自主机的、(例如,经由图形设备114)响应于计算引擎112发送到主机的存储器请求的通信(例如,完成),并且将其从主结构协议转换为计算引擎112的协议,然后在发送到计算引擎112的途中将通信发送到计算请求/响应处置器136。
由桥接器执行的协议转换还可包括将从图形设备114(其可以是例如,从主机处理单元106或I/O设备132)接收的通信从主结构协议转换为存储器桥接器134A的第二协议(例如,计算协议),反之亦然(用于从存储器桥接器134A到主机或I/O设备132的通信)。
桥接器119还可以保持与从图形设备114接收的消息协议相关联的消息排序限制。例如,这可包括防止某些消息传递其他消息。例如,发布的请求可能不允许传递之前发布的请求,但可能能够传递之前未发布的读取请求或之前的完成。另一个示例是,未发布的请求可能不被允许传递之前发布的请求,但可能传递也可能无法传递之前未发布的读取请求或完成请求(取决于实现方式)。又另一个示例是,完成请求可能不被允许传递之前发布的请求,可能被允许传递之前未发布的读取请求,并且可能被允许也可能不被允许传递之前的完成(取决于实现方式)。在各种实施例中,可以为桥接器119配置严格与宽松的排序。事务的排序可能有助于避免存储器危险(例如,写入后写入、读取后写入等)。
桥接器119还可执行写入碎片化和响应合并。例如,计算协议和用于与存储器子系统116通信的协议(本文称为存储器协议)可支持特定大小(例如,64字节)边界的随机字节启用,而主结构协议(例如,PCIe)可只支持不同大小(例如,8字节)边界的随机字节启用。为了弥合两个协议之间的差异,来自计算引擎112的具有随机字节启用的写入可以被拆分为主结构链路126上的八个单独的写入,并且来自主结构链路的相对应八个响应可以被合并到被发送到计算引擎的单个响应中。
如上所述,主机I/O桥接器119可接收来自主机的读指令和写指令。这些指令可包括特定于产品细分的高效主机操作码,以供主机传送至图形存储器108。例如,此类指令可包括,例如,与32比特寻址的读取(MRd32)、64比特寻址的读取(MRd64)、32比特寻址的写入(MWr32)或64比特寻址的写入(MWr64)相对应的操作码。
主机I/O桥接器119可以简化从主机到图形存储器108的通信量(与在其他不包括主机I/O桥接器的SoC中一样,来自主机的通信量在被发送到图形存储器之前可通过计算引擎)。桥接器119可以处置来自主机的部分写入和读取以及解码事务(例如,确定事务应该转到图形存储器108还是计算引擎112)。
在一些实施例中,主机I/O桥接器119(和计算请求/响应处置器)可包括图形存储器108的虚拟到物理地址映射(以便将主机或I/O设备132提供的虚拟地址转译为图形存储器108的物理地址)。在一些实施例中,主机I/O桥接器119还可以实现输入-输出存储器管理单元(input-output memory management unit,IOMMU)事务的至少一部分,以将由计算引擎提供的虚拟地址转译为系统存储器110的物理地址。
在各种实施例中,主机I/O桥接器119还可以包括用于实现事务安全性的逻辑(例如,用于确定事务是否被允许,并且如果不被允许,则阻止事务)。例如,主机I/O桥接器119可基于安全属性来过滤出事务,并且如果安全属性不正确,则返回零完成或不受支持的请求消息,或者如果安全检查通过,则将事务传递给存储器桥接器134A或计算请求/响应处置器136。
存储器桥接器134(例如,134A、134B、134C)可以接收来自相应实体(例如,119、136、138)的请求,并将这些请求传到相应链路(例如,130、124A、124B)以传递到存储器子系统116。存储器桥接器134也可以在其相应的链路上接收响应,并将响应朝向其目的地转发回给相应的实体。
存储器桥接器134可以对其与存储器子系统116的相应链路(例如,130、124A、124B)执行链路管理。存储器桥接器134也可以为接收的消息提供协议转换。例如,在发送到存储器子系统116之前,存储器桥接器134中的一个或多个可接收计算协议中的请求,并将请求转译为存储器协议(例如,聚合存储器结构(converged memory fabric,CMF)、高级可扩展接口(advanced eXtensible interface,AXI)或其他合适的存储器协议)。同样,存储器桥接器134可接收存储器协议中的响应,并在传输响应之前将响应转译为计算协议。
存储器桥接器134还可以包括请求和响应FIFO以及用于控制请求和响应的传输的仲裁逻辑。
存储器桥接器134B将在下面结合图3更详细地描述。其他存储器桥接器134A、134C可包括存储器桥接器134B的任何合适特性,也可以任何合适的方式有所不同。例如,存储器桥接器134A可包括为主机与图形存储器108之间的通信量配置的一个或多个缓冲区,而存储器桥接器134B和134C包括为计算引擎112与图形存储器108之间的通信量配置的缓冲区。
边带网络118可以包括连接SoC 102的各个组件的辅助低速网络。边带网络118可以由计算引擎112通过计算请求/响应处置器136、边带桥接器140和边带处置器142到达。计算引擎112可发出事务,以访问耦合到边带网络118的各种组件的寄存器空间(例如,配置此类组件)。
SoC 102的任何合适组件可以耦合到边带网络118,并可由计算引擎112到达。SoC代理的各种示例(尽管没有显示与该代理的连接)可包括调试逻辑、图形设备114、串行外围接口(serial peripheral interface,SPI)控制器、闪存设备控制器、C型端口(例如,用于虚拟现实(virtual reality,VR)子系统)、显示控制器、音频控制器、遥测控制器、功率管理控制器、安全模块(例如,CSC安全模块)或其他合适的电路系统。
边带处置器142可以执行链路管理和协议处置操作以用于与边带网络118和配置逻辑148的通信。边带桥接器140可以将由计算引擎提供的地址解码为边带网络118的物理地址(例如,目标组件的寄存器地址)。边带桥接器140还可以执行协议转换,用于将由计算引擎在计算协议中发送的消息转换为边带网络中使用的协议(本文称为边带协议)(例如,高级外围总线(advanced peripheral bus,APB)、IOSF-SB或其他合适的协议)。边带桥接器还可以在由计算请求/响应处置器136使用的第一时钟域与边带处置器142、寄存器I/F处置器144和寄存器146使用的第二时钟域之间转换信号的时钟。边带桥接器140结合图4更详细的描述。
除了信道120外,加速器结构104可包括用于配置、状态和性能统计的寄存器146。这些寄存器可以通过边带处置器以及通过测试接入点(test access point,TAP)149访问。TAP可包括用于促进SoC 102的测试的电路系统(例如,状态机和移位寄存器)。例如,结构104可支持跟踪分组化,并经由调试结构(其可以耦合到寄存器146)转移到调试代理。这可提供可通过安全机制访问的特殊调试特征,以手动将事务注入主机或图形存储器108(因此事务看起来像是例如,来自主机或计算引擎112)。在各种实施例中,TAP 149可用于在测试期间形成事务(例如,图形存储器108或系统存储器110的读取命令和写入命令),并向外部监测系统提供结果。
如上所述,SoC中的各种组件可能是不同时钟域的一部分,以不同的频率运行。虽然SoC 102的时钟域可以以任何适当的方式排列,但在一个示例中,计算引擎112、请求响应处置器136和138、存储器桥接器134、主机I/O桥接器119、边带桥接器140和存储器子系统116的电路系统位于第一时钟域(高速时钟);主机I/O桥接器119和图形设备114的其他电路系统位于第二时钟域(主结构时钟);边带桥接器140、边带处置器142、寄存器I/F处置器144和寄存器146的其他电路系统位于第三时钟域(边带时钟);TAP 149的电路系统位于第四时钟域(TAP时钟),以及调试结构的电路系统可位于第五时钟域(调试结构时钟)。
尽管本文的各种图可以说明与特定协议(例如,PCIe、IOSF、PSF等)兼容的组件,但本公开的实施例考虑使用任何其他合适的通信协议的组件。因此,标有特定协议的特定组件可以被理解为对此类型组件的更广泛公开。
图2图示出根据某些实施例的计算请求/响应处置器136和计算引擎112。处置器136的任何组件也可能存在于处置器138中,尽管处置器138可被实现使得其不必将通信量转向和转出主机I/O桥接器119或边带桥接器140(例如,计算引擎112可以只使用信道120B以供与图形存储器108的事务)。
计算引擎112包括各种信号的信号信道。信号信道可以与到处置器136的链路(例如,122A)耦合。在描述的实施例中,信号信道包括请求信用(req信用)、请求、请求数据(req数据)、请求数据信用(req数据信用)、响应信用(rsp信用)、响应、数据和完成数据信用。在包括多个信道120的实施例中,计算引擎112可包括每个信道120的信号信道的集合(例如,类似于图2所示的集合)。
处置器136包括请求处置器202和响应处置器204。请求处置器202接收来自计算引擎112的请求,并将其转发给适当的实体。在一个实施例中,结构104支持计算引擎112请求的五个操作码的集合(如上所述),但是其他实施例考虑不同的指令集。
NSWF可以表示64字节全缓存行写入,其中所有写入启用都置位为“1”。此事务可被发出给图形存储器108或主机。NSW可表示64字节部分写入(例如,在每个字节粒度上部分写入启用)。此事务也可被发出给图形存储器108或主机。NSRDF可表示64字节读取请求,并且也可以被发出给图形存储器108或主机。PORTIN可表示对边带网络118的寄存器空间的读取请求,并且PORTOUT可表示对边带网络118的寄存器空间的写入请求。在其他实施例中,各种读取和写入命令可指定不同大小的读取或写入(例如,32字节、128字节等)。
如果请求是PORTIN或PORTOUT,则请求可以被发送到边带桥接器140;如果请求是NSW、NSWF(其中这些请求中的任何一个在图中表示为NSW*)或NSRDF,并且请求的地址对应于主机,则请求可以被发送到主机I/O桥接器119;如果请求是NSW、NSWF或NSRDF,并且请求的地址对应于图形存储器108,则请求可以被发送到存储器桥接器134B。
请求信号信道可指定与期望的读取命令(例如,NSRDF、PORTIN)或写入命令(NSW、NSWF、PORTOUT)相对应的操作码。如果请求是写入请求(诸如NSW、NSWF或PORTOUT),Req数据信号信道可包括数据。Req信用信号信道用于传输指示额外请求信用可用的信号(例如,计算引擎112可能只能发送一定数量的请求,直到信用被接收,表明额外的请求可被发送)。类似地,Req数据信用信号信道用于传输指示额外请求数据信用可用的信号。由操作码解码器205解码的请求可以被存储在各自的FIFO中。例如,读取请求(例如,NSRDF和PORTIN)可以被存储在读取请求fifo 206中,并且写入请求(例如,NSW、NSWF、PORTOUT)可以被存储在写入请求fifo 208中。
Req数据可以通过操作码解码器205进行解码,并被存储在一个或多个FIFO中。在描述的实施例中,Req数据信号信道可用于传输请求数据的最低有效(least significant,LS)区块或最高有效(most significant,MS)区块。例如,每个区块可包括64字节请求的32个字节(但是本文考虑其他大小)。Req数据的数据宽度可以是32字节,因此与请求相关联的数据在2个周期内被发送(在一些实施例中,数据不必在连续周期中被发送)。LS区块被存储在FIFO 210中,并且MS区块被存储在FIFO 212中。FIFO 206、208、210和212可具有相关联的信用管理逻辑,该逻辑在操作开始时初始化信用,并在耗尽来自FIFO的请求时返回信用。
请求仲裁器214可以控制由请求处置器发送出的请求(和相关联的请求数据)的流程。虽然可以使用任何合适的仲裁政策,但在一个实施例中,读取和写入使用轮询策略进行仲裁。只有当64B数据的两个一半都可用时,写入才能进行仲裁。一旦请求通过仲裁器,它将被传递给操作码解码器215,该操作码解码器215基于其操作码以及memsteer值来路由请求(其中值为1表示事务以图形存储器108为目的地,而值为0表示事务以主机为目的地)。如果操作码指示PORTIN或PORTOUT,则请求将经由链路216被路由到边带桥接器(无论memsteer的值如何)。如果操作码指示NSRDF、NSW或NSWF,那么如果对memsteer进行置位,则它经由链路220路由到存储器桥接器134B,如果没有对memsteer进行置位,则它经由链路218路由到I/O桥接器119。
计算引擎可以跟踪与主机存储器和图形存储器相对应的存储器范围。当计算引擎生成存储器请求时,地址可以根据范围检查,并且请求的memsteer值可以相应地由计算引擎112进行置位。
响应处置器204从图形存储器108、主机存储器(例如,系统存储器110)和边带网络118接收响应(用于写入命令)和数据完成(用于读取命令)。响应和完成采用任何适当的仲裁策略进行仲裁。在一个实施例中,响应和完成由仲裁器222和224使用加权轮询策略进行仲裁,其中图形存储器108具有最高权重,主机具有第二高权重,而边带网络118具有最低权重。仲裁后,响应和完成被发送给适当的实体(例如,在这种情况下,计算引擎112),并且完成在数据信号信道上被发送。响应处置器204的信用管理逻辑跟踪计算引擎FIFO中的可用资源,以便防止覆写之前的数据(当响应或完成耗尽时,计算引擎112可发送响应信用和完成数据信用信号)。
处置器136可包括无序结构段。不保证排序,因此请求方(例如,计算引擎112)有责任避免相同的地址冲突。
图3图示出根据某些实施例的存储器桥接器134B和存储器子系统116。在描述的实施例中,存储器桥接器134B包括协议转换器302和304、读取FIFO 306、写入FIFO 308、数据FIFO 310、读取/写入信用计数器312、链路初始化逻辑314、响应FIFO 316、完成FIFO 318、响应完成信用逻辑320、仲裁器322和复用器324。
协议转换器302可以将传入请求的协议(例如,计算协议)转换为存储器子系统116使用的协议(例如,存储器协议)。相反,协议转换器304可以将传出完成或响应的协议(例如,存储器协议)转换为计算引擎112使用的协议(例如,计算协议)。
在请求路径上,读取FIFO 306可以存储读取请求(例如,NSRDF请求),写入FIFO308可以存储写入请求(例如,NSW或NSWF请求),并且数据FIFO 310可以存储与请求相关联的数据(例如,写入数据)。请求可以由仲裁器322进行仲裁(例如,使用轮询或其他合适的策略),然后在请求被仲裁器322选择时与请求数据(例如,写入数据)一起传递通过复用器324。如果没有信用可用,信用计数器312可阻止仲裁器322发送额外的请求,直到信用从存储器子系统116被返回。
在返回路径上,响应(例如,表示写入完成)和完成(例如,包括读取数据)从存储器子系统116接收。由于响应和完成是存储器链路124A和计算链路122A中的单独信道,因此不需要仲裁。响应和完成由协议转换器304从存储器协议转换为计算协议,然后被转发到计算引擎112。
桥接器134B与存储器子系统116的存储器端口326之间的存储器链路124A包括请求、请求数据(req_data)、响应(Wr_rsp)和完成(Rd_cpl)信道(类似于计算链路122A,但是计算协议与存储器协议之间的字段及其定义可能有所不同)。存储器链路124A还包括请求有效(req_valid)、读取/写入信用返回(rd/wr_credit_return)、链路请求状态(link_req_state)、链路响应状态(link_rsp_state)和响应/完成信用返回(response/completion_credit_return,rsp/cpl_credit_return)信号。各种信用信号和逻辑的使用方式可能与本文描述的其他信用信号类似(例如,以确保存储器桥接器134B和存储器端口326上的存储元素不会溢出)。
存储器桥接器134B还具有链路初始化逻辑314,用于设置存储器链路124A并与存储器子系统116交换信用。存储器桥接器134B也可能是无序的结构段。
图4图示出根据某些实施例的边带桥接器140、边带处置器142和边带网络118。如上所述,计算引擎112可以访问耦合到边带网络118的SoC代理的寄存器空间。在一些实施例中,这可以通过funnyIO事务来完成。边带桥接器140接收funnyIO事务(或其他边带事务),并将其路由到边带网络118上的各种SoC代理,接收来自SoC代理的完成,并将其发送到计算请求/响应处置器136以供返回到计算引擎112。边带桥接器140包括地址解码和映射信息,以计算目的地SoC代理和寄存器偏移详细信息。
边带桥接器140负责从计算引擎112中提取数分组的字段,并为边带网络118形成相对应的分组(反之亦然,对于从边带网络返回计算引擎112的分组)。因此,在出口端,边带桥接器140可以将请求排队,然后使用协议转换器和地址范围解码器402将请求从计算协议转译为边带协议。同样,在入口端,入口有限状态机和协议转换器404可以将来自边带网络的响应和完成转译回为计算协议,以供计算引擎112使用。
边带桥接器140可包括时钟跨越逻辑,用于在高速时钟域与边带时钟域之间传输数据。边带桥接器140还可包括链路管理逻辑,用于设置和管理边带链路406。
FunnyIO事务通常需要严格排序,由于这些不是高带宽事务,因此在一些实施例中,排序可以通过将未完成事务的数量限制为一个来确保。
如上所述,边带处置器142可以为与边带网络118和配置逻辑148的通信执行链路管理和协议处置操作。边带处置器142还可以在边带网络118与边带桥接器140之间提供接口。
图5图示出根据某些实施例的从计算引擎112到图形存储器108的请求的流程。无论请求是被发送到信道120A的请求/响应处置器136还是被发送到信道120B的请求/响应处置器138,流程都可能相同。在502处,读取(例如,NSRDF)或写入(例如,NSW、NSWF)请求在计算协议中从计算引擎112发送到请求/响应处置器136(或138)。在504处,请求被转发到存储器桥接器134B(或134C)。请求被转译成存储器协议,然后被发送到存储器子系统116。在508处,存储器子系统用存储器协议中的响应或完成来响应于存储器桥接器134B(或134C)。在510处,存储器桥接器134B(或134C)将响应或完成转译为计算协议,然后将其发送到请求/响应处置器136(或138)。在512处,响应或完成被发送到计算引擎112。
图6图示出根据某些实施例的从计算引擎112到边带网络的请求的流程。在602处,读取(例如,PORTIN)或写入(例如,PORTOUT)在计算协议中从计算引擎112发送到请求/响应处置器136。在604处,请求被转发到边带桥接器140。边带桥接器140可以将请求转译为边带网络使用的协议。在606处,请求然后被转发到被请求作为目标的(一个或多个)寄存器(例如,SoC代理的寄存器)。在608处,边带完成从寄存器被发送到边带桥接器140。边带桥接器140可以将边带完成转译为计算协议中的响应或完成。然后在610处,响应或完成被发送到请求/响应处置器136。响应或完成然后被发送到计算引擎112。
图7图示出根据某些实施例的从计算引擎112到主机存储器的请求的流程。在702处,计算引擎将计算协议中的读取(例如,NSRDF)或写入(例如,NSW、NSWF)请求发送到请求/响应处置器136。在704处,请求被转发到主机I/O桥接器119。在706处,桥接器119将请求转译为主结构协议,然后将请求发送到图形设备114。然后,在708处图形设备114将请求转发到PCIe通信元件。然后,PCIe通信元件将PCIe协议(或其他合适的通信协议)中的请求发送到主机(例如,主机处理单元106),以供由主机存储器(例如,系统存储器110)执行。
在712处,主机向PCIe通信元件发送PCIe协议中的完成或完成数据。在714处,PCIe通信元件将主结构协议中的完成或完成数据发送到图形设备114。在716处,请求被转发到主机I/O桥接器119。在718处主机I/O桥接器119将完成或完成数据转译为计算协议中的响应或完成,并将其传输到请求/响应处置器136。在720处响应或完成然后被发送到计算引擎112。
图8图示出根据某些实施例的从主机到图形存储器108的请求的流程。在802处,主机通过PCIe协议(或其他合适的通信协议)向PCIe通信元件发送存储器读取或写入请求。然后,PCIe通信元件将主结构协议中的存储器读取或写入请求发送到图形设备114。在806处,存储器读取或写入请求被转发到主机I/O桥接器119。在808处主机I/O桥接器119将请求转换为计算协议,然后将请求发送到存储器桥接器134A。在810处存储器桥接器134A将请求转换为存储器协议,并且将请求发送到存储器子系统。
在812处,存储器子系统将存储器协议中的响应或完成发送到存储器桥接器134A。在814处存储器桥接器可以将响应或完成转换为计算协议,并将其发送到主机I/O桥接器119。在816处主机I/O桥接器将响应或完成转换为主结构协议中的完成或完成数据,并将其发送到图形设备114,在818处该图像设备114将消息转发到PCIe通信元件。在820处,在PCIe协议中完成或完成数据然后被发送到主机。
图9图示出根据某些实施例的从输入/输出(input/output,I/O)设备132到图形存储器108的请求的流程。在一些实施例中,I/O设备132可以与SoC 102可移除地耦合。例如,I/O设备可以是通用串行总线设备或其他合适的设备。
在902处,主结构中的存储器读取或写入请求从I/O设备132被发送到图形设备114。在904处,存储器读取或写入请求被转发到主机I/O桥接器119。在906处主机I/O桥接器119将请求转换为计算协议,然后将请求发送到存储器桥接器134A。存储器桥接器134A将请求转换为存储器协议,并且将请求发送到存储器子系统116。
在910处存储器子系统116可向存储器桥接器134A发送存储器协议中的响应或完成。在912处存储器桥接器134A然后将计算协议中的响应或完成发送到主机I/O桥接器119。在914处,桥接器119将响应或完成转换为主结构协议中的完成或完成数据,并将其发送到图形设备114。在916处,完成或完成数据被发送到I/O设备132。
图10-12描述了可以实现本文所述各种实施例的示例系统。例如,描述的系统中的任一个(或其一个或多个组件)都可以被包括在系统100中。例如,CPU 1002或处理器1110可代表可能与SoC 102耦合的主机处理单元106,并且系统存储器设备1007可代表系统存储器110(或图形存储器108)的示例。另一个示例是,GPU 1215和/或视频编解码器1220可以被包括在SoC 102中。
图10图示出根据某些实施例的计算机系统1000的组件。系统1000包括耦合到外部输入/输出(I/O)控制器1004的中央处理单元(central processing unit,CPU)1002、存储设备1006(诸如固态驱动器(solid state drive,SSD)或双内联存储器模块(dual inlinememory module,DIMM)),以及系统存储器设备1007。在操作期间,数据可以在存储设备1006和/或系统存储器设备1007与CPU 1002之间传输。在各种实施例中,涉及存储设备1006或系统存储器设备1007的特定存储器访问操作(例如,读取和写入操作)可以由处理器1008执行的操作系统和/或其他软件应用发出。
CPU 1002可以包括处理器1008,诸如微处理器、嵌入式处理器、数字信号处理器(digital signal processor,DSP)、网络处理器、手持式处理器、应用处理器、协处理器、SoC、或用于执行代码(例如,软件指令)的其他设备。在描述的实施例中,处理器1008包括两个处理元件(在描述的实施例中,核心1014A和1014B),其中可包括非对称处理元件或对称处理元件。然而,处理器可包括可以是对称的或非对称的、任何数量的处理元件。CPU 1002本文可以称为主机计算设备(但是主机计算设备可能是可操作向存储设备1006发出存储器访问命令的任何合适的计算设备)。
在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或能够保持处理器的诸如执行状态或体系结构状态之类的状态的任何其他元件。换言之,在一个实施例中,处理元件是指能够独立地与代码(诸如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器槽)典型地是指集成电路,该集成电路潜在地包括任何数量的其他处理元件,诸如,核心或硬件线程。
核心1014(例如,1014A或1014B)可以指代位于集成电路上的能够维持独立体系结构状态的逻辑,其中每个独立维持的体系结构状态与至少一些专用执行资源相关联。硬件线程通常可指位于集成电路上的、能够维持独立的体系结构状态的任何逻辑,其中独立维持的体系结构状态共享对执行资源的访问。正如所见,当某些资源是共享的而其他资源专用于体系结构状态时,硬件线程与核心的术语之间的界线重叠。但核心和硬件线程常常被操作系统视为单独的逻辑处理器,其中,操作系统能够分别在每一个逻辑处理器上调度操作。
在各种实施例中,处理元件还可包括一个或多个算术逻辑单元(arithmeticlogic unit,ALU)、浮点单元(floating point unit,FPU)、缓存、指令管线、中断处置硬件、寄存器或用于促进处理元件的操作的其他硬件。
在一些实施例中,处理器1008可包括处理器单元,诸如处理器核心、图形处理单元、硬件加速器、现场可编程门阵列、神经网络处理单元、人工智能处理单元、推断引擎、数据处理单元或基础设施处理单元。
I/O控制器1010是集成的I/O控制器,其包括用于在CPU 1002与I/O设备之间通信数据的逻辑。在其他实施例中,I/O控制器1010可位于与CPU1002不同的芯片上。I/O设备可指能够将数据传输到电子系统(诸如CPU 1002)和/或从电子系统接收数据的任何合适设备。例如,I/O设备可包括音频/视频(audio/video,A/V)设备控制器,诸如图形加速器或音频控制器;数据存储设备控制器,诸如闪存存储器设备、磁性存储盘或光学存储盘控制器;无线收发器;网络处理器;网络接口控制器;或另一输入设备(诸如监测器、打印机、鼠标、键盘或扫描仪)的控制器;或其他合适的设备。在特定实施例中,I/O设备可包括通过I/O控制器1010与CPU 1002耦合的存储设备1006。
I/O设备可以使用任何合适的信令协议与CPU 1002的I/O控制器1010通信,信令协议诸如外围组件互连(peripheral component interconnect,PCI)、PCI快速(PCIe)、通用串行总线(Universal Serial Bus,USB)、串行附接SCSI(Serial Attached SCSI,SAS)、串行ATA(SATA)、光纤信道(FC)、IEEE802.3、IEEE 802.11或其他当前或未来的信令协议。在特定实施例中,I/O控制器1010和相关联的I/O设备可以根据逻辑设备接口规范(诸如非易失性存储器快速(Non-Volatile Memory Express,NVMe)(例如,如www.nvmexpress.org/specifications/上可用的一个或多个规范所描述)或高级主机控制器接口(AdvancedHost Controller Interface,AHCI)(例如,由一个或多个AHCI规范所描述的,诸如http://www.intel.com/content/www/us/en/io/serial-ata/serial-ata-ahci-spec-rev1-3-1.html处可用的串行ATA AHCI:规范,修订版1.3.1)传送数据和命令。在各种实施例中,耦合到I/O控制器1010的I/O设备可位于片外(例如,与CPU 1002不在同一芯片上),也可以与CPU 1002集成在同一芯片上。
CPU存储器控制器1012是集成存储器控制器,其控制进出一个或多个系统存储器设备1007的数据的流。CPU存储器控制器1012可包括可操作以从系统存储器设备1007读取、向系统存储器设备1007写入或请求来自系统存储器设备1007的其他操作的逻辑。在各种实施例中,CPU存储器控制器1012可从核心1014和/或I/O控制器1010接收写入请求,并且可以将这些请求中指定的数据提供给系统存储器设备1007以供存储在其中。CPU存储器控制器1012还可以从系统存储器设备1007读取数据并将读取的数据提供给I/O控制器1010或核心1014。在操作期间,CPU存储器控制器1012可发出包括系统存储器设备1007的一个或多个地址的命令以便从存储器读取数据或将数据写入存储器(或执行其他操作)。在一些实施例中,CPU存储器控制器1012可以与CPU 1002在相同的芯片上实现,而在其他实施例中,CPU存储器控制器1012可以与CPU 1002在不同的芯片上实现。I/O控制器1010可以执行关于一个或多个存储设备1006类似的操作。
CPU 1002也可以通过外部I/O控制器1004耦合到一个或多个其他I/O设备。在特定实施例中,外部I/O控制器1004可以将存储设备1006与CPU1002耦合。外部I/O控制器1004可包括用于管理一个或多个CPU 1002与I/O设备之间数据的流的逻辑。在特定实施例中,外部I/O控制器1004与CPU 1002一起位于主板上。外部I/O控制器1004可以使用点到点或其他接口与CPU 1002的组件交换信息。
系统存储器设备1007可以存储任何合适的数据,诸如由处理器1008使用的数据,以提供计算机系统1000的功能。例如,与被执行的程序相关联的数据或由核心1014访问的文件可以被存储在系统存储器设备1007中。因此,系统存储器设备1007可包括系统存储器,其存储由核心1014执行或以其他方式使用的数据和/或指令序列。在各种实施例中,即使在系统存储器设备1007的功率被移除后,系统存储器设备1007可存储保持其状态的临时数据、持久数据(例如,用户的文件或指令序列)或两者的组合。系统存储器设备1007可以专用于特定的CPU 1002,也可以与计算机系统1000的其他设备(例如,一个或多个其他处理器或其他设备)共享。
在各种实施例中,系统存储器设备1007可包括包含任意数量存储器分区的存储器、存储器设备控制器和其他支持逻辑(未示出)。存储器分区可包括非易失性存储器和/或易失性存储器。
非易失性存储器是不需要功率来维持介质存储的数据的状态的存储介质,因此即使功率中断到容纳存储器的设备,非易失性存储器也可具有确定状态。非易失性存储器的非限制性示例包括以下各项中的任一个或其组合:3D交叉点存储器、相变存储器(例如,在存储器单元中使用硫代玻璃相变材料的存储器)、铁电存储器、硅-氧化物-氮化物-氧化物-硅(silicon-oxide-nitride-oxide-silicon,SONOS)存储器、聚合物存储器(例如,铁电聚合物存储器)、铁电晶体管随机存取存储器(ferroelectric transistor random accessmemory,Fe-TRAM)奥式存储器、抗铁电存储器、纳米线存储器、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、忆阻器、单级或多级相变存储器(Phase Change Memory,PCM)、自旋霍尔效应磁RAM(Spin Hall EffectMagnetic RAM,SHE-MRAM)和自旋转移扭矩磁RAM(Spin Transfer Torque Magnetic RAM,STTRAM)、电阻式存储器、包含忆阻器技术的磁阻随机存取存储器(magnetoresistiverandom access memory,MRAM)存储器,包括金属氧化物基座、氧空位基座和导电桥随机存取存储器(conductive bridge Random Access Memory,CB-RAM)的电阻式存储器、基于自旋电子磁结存储器的设备、基于磁隧道穿结(magnetic tunneling junction,MTJ)的设备、基于DW(Domain Wall,畴壁)和SOT(Spin Orbit Transfer,自旋轨道转移)的设备、基于晶闸管的存储器设备、或者上述各项中任何项的组合或其他存储器。
易失性存储器是需要功率来保持由该介质存储的数据的状态的存储介质(因此易失性存储器是在功率被中断到(容纳存储器的)设备的情况下其状态(以及由此其中所存储的数据)不确定的存储器)。动态易失性存储器要求对设备中所存储的数据进行刷新以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或某种变型(诸如同步DRAM(synchronous DRAM,SDRAM))。本文描述的存储器子系统可与一些存储器技术兼容,诸如DDR3(双数据速率版本3,最初由JEDEC(Joint Electronic Device EngineeringCouncil,联合电子设备工程理事会)于2007年6月27日发布,目前发布21版),DDR4(DDR版本4,由JEDEC于2012年9月发布的JESD79-4初始规范),DDR4E(DDR版本4扩展,目前在由JEDEC进行讨论),LPDDR3(低功率DDR版本3,JESD209-3B,由JEDEC于2013年8月发布),LPDDR4(低功率双数据率(LOW POWER DOUBLE DATA RATE,LPDDR)版本4,JESD209-4,最初由JEDEC于2014年8月发布),WIO2(宽I/O 2(WideIO2),JESD229-2,最初由JEDEC于2014年8月发布),HBM(高带宽存储器DRAM(HIGH BANDWIDTH MEMORY DRAM),JESD325,最初由JEDEC于2013年10月发布),DDR5(DDR版本5,目前在由JEDEC进行讨论),HBM2(HBM版本2)最初由JEDEC在2020年1月发布,或其他存储器技术或存储器技术的组合,以及基于此类规范的变型或扩展的技术。
存储设备1006可以存储任何合适的数据,诸如由处理器1008使用的数据,以提供计算机系统1000的功能。例如,与被执行的程序相关联的数据或由核心1014和1014B访问的文件可以被存储在存储设备1006中。因此,在一些实施例中,存储设备1006可以存储由核心1014A和1014B执行或以其他方式使用的数据和/或指令序列。在各种实施例中,甚至即使在移除对存储设备1006的功率后,存储设备1006可以存储保持其状态的持久数据(例如,用户的文件或软件应用代码)。存储设备1006可以专用于CPU 1002,也可以与计算机系统1000的其他设备(例如,另一个CPU或其他设备)共享。
在各种实施例中,存储设备1006可包括磁盘驱动器(例如,固态驱动器);存储卡;通用串行总线(USB)驱动器;双内联存储器模块(DIMM),诸如非易失性DIMM(Non-VolatileDIMM,NVDIMM);集成在诸如智能手机、相机或媒体播放器之类的设备中的存储;或其他合适的大容量存储设备。
在特定的实施例中,半导体芯片可以具体化在半导体封装中。在各种实施例中,半导体封装可包括包含一个或多个半导体芯片(也称为管芯)的外壳。封装也可以包括用于连接到外部电路的接触引脚或引线。
在一些实施例中,系统1000的所有或部分元件都驻留在(或耦合到)同一个电路板上(例如,主板)。在各种实施例中,元件之间可能存在任何合适的分区。例如,CPU 1002中描述的元素可能位于单个管芯(例如,片上)或封装上,或者CPU 1002的任何元件都可能位于片外或封装外。类似地,存储设备1006中描述的元件可能位于单个芯片或多个芯片上。在各种实施例中,存储设备1006和计算主机(例如,CPU 1002)可能位于同一电路板或同一设备上,并且在其他实施例中,存储设备1006和计算主机可能位于不同的电路板或设备上。
系统1000的组件可以以任何合适的方式耦合在一起。例如,总线可以将组件中的任何组件耦合在一起。总线可以包括任何已知的互连,诸如多点分支(multi-drop)总线、网状互连、环形互连、点到点互连、串行互连、并行总线、相干(例如,缓存相干)总线、分层协议体系结构、差分总线和射电收发器逻辑(Gunning transceiver logic,GTL)总线。在各种实施例中,集成的I/O子系统包括系统1000的不同组件(诸如核心1014、一个或多个CPU存储器控制器1012、I/O控制器1010、集成I/O设备、直接存储器存取(direct memory access,DMA)逻辑(未示出)等)之间的点到点复用逻辑。在各种实施例中,计算机系统1000的组件可以通过一个或多个网络耦合在一起,该网络包括任意数量的介于中间的网络节点(诸如路由器、交换机或其他计算设备)。例如,计算主机(例如,CPU 1002)和存储设备1006可以通过网络进行通信耦合。
尽管未描绘,系统1000可使用电池和/或电源插座连接器和相关联的系统来接收功率,使用显示器输出由CPU 1002提供的数据,或使用网络接口允许CPU 1002通过网络通信。在各种实施例中,电池、电源插座连接器、显示器和/或网络接口可以通信耦合到CPU1002。可以使用其他功率源,诸如可再生能源(例如,基于太阳能或运动的功率)。
现在参考图11,描绘了根据某些实施例的可用作主机设备或外围设备(或其可包括主机设备和一个或多个外围设备两者)的计算机系统中存在的组件的框图。如图11中所示,系统1100包括组件的任一组合。这些组件可被实现为IC、IC的部分、分立的电子器件,或适于处于计算机系统中的其他模块、逻辑、硬件、软件、固件或其组合;或被实现为以其他方式被并入在计算机系统的底盘内的组件。还注意,图11的框图意图示出计算机系统的很多组件的高级视图。然而,应当理解,在其他实现方式中,可以省略所示出组件中的一些组件,可以存在额外的组件,并且可以发生所示出的组件的不同布置。因此,上述公开可以在下文图示或描述的互连中的一个或多个互连的任意部分中实现。
如在图11中所见,在一个实施例中,处理器1110包括微处理器、多核心处理器、多线程处理器、超低电压处理器、嵌入式处理器,或其他已知处理元件。在所示出的实现中,处理器1110充当主处理单元以及用于与系统1100的各种组件中的许多组件进行通信的中央枢纽。作为一个示例,处理器1110被实现为片上系统(system on a chip,SoC)。作为特定的说明性示例,处理器1110包括基于体系结构核心TM的处理器,诸如,i3、i5、i7,或可从位于美国加利福尼亚州圣克拉拉市的英特尔公司得到的另一个此类处理器。然而,在其他实施例中,可替代地存在诸如可从加利福尼亚州桑尼威尔的超微半导体有限公司(Advanced Micro Device,AMD)获得的、来自加利福尼亚州桑尼威尔的MIPS技术公司的基于MIPS的设计的、许可自ARM控股公司或其客户或它们的被许可方或采用者的基于ARM的设计之类的其他低功率处理器,诸如苹果A5/A6处理器、高通骁龙处理器或TI OMAP处理器。注意,这类处理器的客户版本中的许多都经过修改和变化,然而,它们可支持或识别执行由处理器许可方提出的定义算法的特定指令集。此处,微体系结构实现方式可以有所不同,但是处理器的体系结构功能通常是一致的。下文将进一步讨论关于一个实现方式中的处理器1110的体系结构和操作的某些细节,以提供说明性示例。
在一个实施例中,处理器1110与系统存储器1115通信。作为说明性示例,其在实施例中可以经由多个存储器设备实现以提供给定量的系统存储器。作为示例,存储器可以根据基于联合电子设备工程委员会(Joint Electron Devices Engineering Council,JEDEC)低功率双倍数据速率(low power double data rate,LPDDR)的设计,诸如根据(2009年4月公布的)JEDEC JESD 209-2E的当前的LPDDR 2标准、或将提供对LPDDR 2的扩展以增加带宽的被称为LPDDR 3或LPDDR 4的下一代LPDDR标准。在各实现方式中,各个存储器设备可以具有不同的封装类型,诸如单管芯封装(single die package,SDP)、双管芯封装(dual die package,DDP)或四管芯封装(quad die package,QDP)。在一些实施例中,这些设备被直接焊接到主板上,以提供较薄型的解决方案,而在其他实施例中,设备被配置为一个或多个存储器模块,这些存储器模块进而通过给定的连接器耦合至主板。并且当然,其他存储器实现方式也是可能的,诸如其他类型的存储器模块,例如,不同种类的双列直插存储器模块(dual inline memory module,DIMM),包括但不限于microDIMM(微DIMM)或MiniDIMM(迷你DIMM)。在特定说明性实施例中,存储器的大小可设定在2GB与16GB之间,并且存储器可被配置成经由球栅阵列(ball grid array,BGA)焊接到主板上的DDR3LM封装或者LPDDR2或LPDDR3存储器。
为提供对诸如数据、应用、一个或多个操作系统等之类的信息的持续存储,大容量存储装置1120还可耦合到处理器1110。在各实施例中,为了实现更轻薄的系统设计以及为了提高系统响应性,可以经由SSD实现该大容量存储装置。然而,在其他实施例中,大容量存储装置可以主要使用具有较小量SSD存储装置充当SSD缓存的硬盘驱动器(hard diskdrive,HDD)来实现,以在掉电事件期间实现上下文状态和其他此类信息的非易失性存储,从而在重新启动系统活动时可以发生快速上电。如图11所示,闪存设备1122可以例如经由串行外围接口(SPI)被耦合至处理器1110。该闪存设备可以提供对系统软件以及系统的其他固件的非易失性存储,系统软件包括基本输入/输出软件(basic input/outputsoftware,BIOS)。
在各实施例中,系统的大容量存储装置可由SSD单独地实现或作为具有SSD缓存的盘驱动器、光驱动器或其他驱动器来实现。在一些实施例中,大容量存储装置连同恢复(restore,RST)缓存模块一起被实现为SSD或HDD。在各种实现方式中,该HDD提供320GB-4兆兆字节(terabyte,TB)之间的存储,而当RST缓存由具有24GB-256GB容量的SSD来实现时会更多。注意,此类SSD缓存可以被配置为单级缓存(single level cache,SLC)或多级缓存(multi-level cache,MLC)选项,以提供适当的响应性级别。在仅SSD选项中,模块可容纳在各种位置中,诸如在mSATA或NGFF插槽中。作为示例,SSD的容量范围为120GB-1TB。
系统1100内可以存在各种输入/输出(I/O)设备。在图11的实施例中具体示出的是显示器1124,显示器1224可以是被配置于底盘的机盖部分内的高清晰度LCD或LED面板。此显示面板还可以提供触摸屏1125,例如,该触摸屏1125外部地适配在显示面板上,使得经由用户与此触摸屏的交互,用户输入可被提供到系统以实现所需操作,例如,操作关于信息的显示、信息的访问等。在一个实施例中,显示器1124可以经由显示互连被耦合至处理器1110,该显示互连可被实现为高性能图形互连。触摸屏1125可以经由另一互连被耦合至处理器1110,在实施例中,该另一互连可以是I2C互连。如图11中进一步所示,除触摸屏1125之外,通过触摸进行的用户输入也可以经由触板1130发生,触板1130可以配置在底盘内,并且还可以耦合到与触摸屏1125相同的I2C互连。
显示面板能以多种模式操作。在第一模式中,显示面板可被布置为透明状态,在透明状态下,显示面板对可见光是透明的。在各种实施例中,显示面板的大部分可以是除外围边框之外的显示器。当系统以笔记本模式操作并且显示面板以透明状态操作时,用户可以查看显示面板上呈现的信息,同时还能够查看显示器后面的对象。此外,显示在显示面板上的信息可以被位于显示器后面的用户查看。或者,显示面板的操作状态可以是可见光不透过显示面板的不透明状态。
在平板模式中,系统被折叠闭合使得显示面板的后显示表面停留在使其向外面向用户的位置,同时基座面板的底部表面被安置于平面上或由用户持握。在操作的平板模式中,后显示表面扮演显示器和用户界面的角色,因为该表面可具有触摸屏功能并且可执行诸如平板设备之类的常规触摸屏设备的其他已知功能。为此,显示面板可包括设置在触摸屏层与前显示表面之间的透明度调整层。在一些实施例中,透明度调整层可以是电致变色层(electrochromic layer,EC)、LCD层、或EC和LCD层的组合。
在各种实施例中,显示器可具有不同大小,例如,11.6”或13.3"的屏幕,并且可具有16:9的高宽比,以及至少300尼特的亮度。此外,显示器可具有全高清(HD)分辨率(至少1920x 1080p),与嵌入式显示端口(embedded display port,eDP)兼容,并且是具有面板自刷新功能的低功率面板。
至于触摸屏能力,系统可提供多点触控电容式并且是有至少五指能力的显示多点触控面板。并且在一些实施例中,显示器可以是有十指能力。在一个实施例中,触摸屏被容纳于耐损伤和耐刮擦玻璃和涂层(例如,Gorilla玻璃TM或Gorilla玻璃2TM)内以实现降低摩擦来减少“手指烧伤”并避免“手指跳跃(finger skipping)”。为了提供增强的触控体验和响应性,在一些实现方式中,触控面板具有诸如在缩放期间每静态视图少于两帧(30Hz)的多点触控功能,以及每帧(30Hz)少于1cm且具有200ms(手指到指点器(pointer)的延迟)的单点触控功能。在一些实现方式中,显示器支持具有与面板表面齐平的最小屏幕边框并且在使用多点触控时具有有限的I/O干扰的边到边(edge-to-edge)玻璃。
出于感知计算和其他目的,各种传感器可以存在于系统内,并且能以不同的方式被耦合到处理器1110。某些惯性传感器和环境传感器可通过传感器中枢1140(例如经由I2C互连)耦合到处理器1110。在图11中示出的实施例中,这些传感器可以包括加速度计1141、环境光传感器(ambient light sensor,ALS)1142、罗盘1143以及陀螺仪1144。其他环境传感器可包括一个或多个热传感器1146,在一些实施例中,这些热传感器1146经由系统管理总线(SM总线)总线耦合至处理器1110。
通过使用存在于平台中的各种惯性传感器和环境传感器,可实现许多不同的用例。这些用例支持高级计算操作(包括感知计算),并且还允许增强功率管理/电池寿命、安全性和系统响应性。
例如,对于功率管理/电池寿命问题,至少部分地基于来自环境光传感器的信息,来确定平台位置中的环境光条件,并因此来控制显示强度。因此,在某些光线条件下,操作显示器所消耗的功率会降低。
至于安全操作,基于从传感器获取的上下文信息(诸如,位置信息)可确定是否允许用户访问某个安全文档。例如,可允许用户在工作地点或家庭位置访问此类文档。然而,当平台存在于公共位置时,则禁止用户访问此类文档。在一个实施例中,该确定基于位置信息,例如,经由地标的GPS传感器或相机识别来确定。其他安全操作可包括提供彼此近距离内的设备的配对,例如,本文所述的便携式平台和用户的桌面型计算机、移动电话等。在一些实现方式中,当这些设备如此配对时,经由近场通信实现某一共享。然而,当设备超过某一范围时,此类共享可能被禁用。此外,当将如本文所述的平台与智能手机配对时,警报可被配置为当设备在公共位置时彼此移动超过预定距离时被触发。相比之下,当这些经配对的设备处于安全位置(例如,工作地点或家庭位置)时,设备可超过此预定限制而不触发此类警报。
响应性还可以使用传感器信息来增强。例如,即使当平台处于低功率状态时,传感器也仍旧能以相对低的频率运行。因此,平台位置的任何变化,例如,由惯性传感器、GPS传感器等确定。如果没有此类改变被注册,则会发生到诸如Wi-FiTM访问点或类似无线使能器之类的先前无线中枢的快速连接,因为在这种情形中不需要扫描可用无线网络资源。因此,实现从低功率状态唤醒时的更高水平的响应性。
将理解,可使用经由本文所描述的平台内所集成的传感器获得的传感器信息来实现许多其他用例,并且以上示例仅是出于例示的目的。使用如本文所描述的系统,感知计算系统可允许附加替代输入形式,包括姿势识别,并使系统能够感测用户操作和意图。
在一些实施例中,也可以存在一个或多个红外线或其他热感测元件,或用于感测用户的存在或移动的任何其他元件。此类感测元件可包括多个不同的元件,这些元件一起工作、按顺序工作或两者都。例如,感测元件包括提供诸如光或声音投射之类的初始感测,接着是通过例如飞行相机或图案化光相机的超音速时间来感测姿势检测的元件。
同样在一些实施例中,系统包括用于产生照明线的光生成器。在一些实施例中,该照明线提供关于虚拟边界的视觉提示,该虚拟边界即空间内的虚构或虚拟位置,在该位置中,用户通过或突破该虚拟边界或平面的动作被解释为意图与计算系统接合。在一些实施例中,该照明线可随着计算系统转变成关于用户的不同状态时而改变颜色。该照明线可被用于向用户提供空间内虚拟边界的视觉提示,并且可被系统用于确定关于用户的计算机状态的转变,包括确定用户何时希望与计算机接合。
在一些实施例中,计算机感测用户位置并操作以将通过虚拟边界的用户的手的移动解释为指示用户要与计算机接合的意图的姿势。在一些实施例中,在用户通过虚拟线或平面之际,由光生成器生成的光可改变,由此将视觉反馈提供给用户,即用户已进入用于提供姿势以向计算机提供输入的区域。
显示屏可以提供关于用户的计算机状态的转变的视觉指示。在一些实施例中,提供处于第一状态的第一屏幕,其中用户的存在由系统诸如通过对感测元件中的一个或多个的使用来感测。
在一些实现方式中,系统用于诸如通过面部识别来感测用户身份。此处,在第二状态下,可提供到第二屏幕的转变,其中计算系统已识别用户身份,其中该第二屏幕将视觉反馈提供给用户,即用户已转变为新的状态。到第三屏幕的转变可以在第三状态下发生,在该第三状态中用户已经确认对用户的识别。
在一些实施例中,计算系统可使用转变机构来确定对于用户的虚拟边界的位置,其中虚拟边界的位置可随用户和环境变化。计算系统可生成用于指示与系统接合的虚拟边界的光(诸如照明线)。在一些实施例中,计算系统可以处于等待状态,并且可以产生第一颜色的光。计算系统可以诸如通过使用感测元件感测用户的存在和移动来检测用户是否已经越过虚拟边界。
在一些实施例中,如果检测到用户已经越过虚拟边界(诸如用户的手比虚拟边界线更靠近计算系统),则计算系统可以转变到用于从用户接收姿势输入的状态,其中用于指示转变的机构可以包括指示虚拟边界的光改变为第二颜色。
在一些实施例中,计算系统可接着确定是否检测到姿势移动。如果检测到了姿势移动,那么计算系统可继续进行姿势识别过程,这可包括对来自姿势数据库的数据的使用,该姿势数据库可驻留在计算设备的存储器中或能以其他方式被计算设备访问。
如果识别到了用户的姿势,那么计算系统可响应于输入来执行功能,并且如果用户位于虚拟边界内,则返回以接收附加姿势。在一些实施例中,如果没有识别到姿势,那么计算系统可转变为错误状态,其中用于指示错误状态的机构可包括指示虚拟边界的光改变为第三颜色,并且如果用户在用于与计算系统接合的虚拟边界内,则系统返回以接收附加姿势。
如以上所提及的,在其他实施例中,系统可被配置为可转换平板系统,该可转换平板系统可在至少两种不同的模式中使用,平板模式和笔记本模式。此类可转换系统可具有两个面板,即显示面板和基座面板,使得在平板模式中两个面板彼此堆叠地设置。在平板模式中,显示面板朝外并且可提供常规平板中存在的触摸屏功能。在笔记本模式中,可将两个面板布置为在打开的蛤壳式配置中。
在各种实施例中,加速度计可以是具有至少50Hz的数据速率的3轴加速度计。还可包括陀螺仪,其可以是3轴陀螺仪。此外,还可配备电子罗盘/磁力计。而且,可提供一个或多个邻近度传感器(例如,以在机盖打开期间感测何时有人接近(或不接近)系统并调整功率/性能以延长电池寿命)。对于某些操作系统的传感器融合功能(包括加速度计、陀螺仪和罗盘)可以提供增强的特征。此外,经由具有实时时钟(real-time clock,RTC)的传感器中枢,可在系统的剩余部分处于低功率状态时实现来自传感器机构的唤醒以接收传感器输入。
在一些实施例中,内部机盖/显示器打开开关或传感器用于指示机盖何时闭合/打开,并且可被用于将系统置于连接待机(Connected Standby)状态或自动地从连接待机状态唤醒。其他系统传感器可包括用于内部处理器、存储器和皮肤温度监测的ACPI传感器,以能够基于感测到的参数来改变处理器和系统操作状态。
图11中还可见,各种外围设备可以耦合至处理器1110。在所示的实施例中,可以通过嵌入式控制器1135来耦合各个组件。此类组件可包括(例如,经由PS2接口耦合的)键盘1136、风扇1137以及热传感器1139。在一些实施例中,触板1130还可以经由PS2接口耦合至EC 1135。另外,安全处理器(诸如,符合可信计算组(Trusted Computing Group,TCG)可信平台模块(trusted platform module,TPM)规范版本1.2(2003年10月2日)的TPM 1138)也可以经由此LPC互连来耦合到处理器1110。然而,应理解,本公开的范围不限于此方面,并且安全信息的安全处理和存储可以在另一受保护位置中,诸如安全协处理器中的静态随机存取存储器(SRAM),或者作为仅在通过安全飞地(secure enclave,SE)处理器模式被保护时才被解密的经加密的数据二进制大对象(blob)。
在特定实现方式中,外围端口可包括高清媒体接口(high definition mediainterface,HDMI)连接器(该连接器可具有不同的形状因子,诸如全大小、迷你大小或微型的);一个或多个USB端口,诸如根据通用串行总线(USB)修订版3.2规范(2017年9月)的全大小外部端口,其中当系统处于连接待机状态并插入到AC墙壁功率中时,至少一个USB端口被供电以对USB设备(诸如智能电话)充电。另外,可提供一个或多个雷电TM(ThunderboltTM)端口。其他端口可以包括可从外部访问的读卡器,诸如,全大小SD-XC读卡器和/或用于WWAN的SIM读卡器(例如,8针脚读卡器)。对于音频,可以存在具有立体声和麦克风能力(例如,组合功能)的3.5mm插孔,其具有对插孔检测的支持(例如,仅支持使用机盖中的麦克风的耳机,或在线缆中具有麦克风的耳机)。在一些实施例中,此插孔可在立体声耳机与立体声麦克风输入之间重定任务。此外,还可以提供电源插孔以耦合到AC砖(brick)。
系统1100能以各种方式(包括以无线方式)与外部设备通信。在图11中示出的实施例中,存在各种无线模块,其中的每一个无线模块都可以对应于针对特定的无线通信协议而配置的无线电装置。用于在短距离(诸如,近场)内进行无线通信的一种方式可以经由近场通信(NFC)单元1145,在一个实施例中,该NFC单元1145可以经由SM总线与处理器1110进行通信。注意,经由该NFC单元1145,彼此紧邻的设备可以进行通信。例如,通过将两个设备以紧密关系适配在一起并使得能够传输诸如标识信息、支付信息、数据(诸如图像数据等)之类的信息,用户可以使得系统1100能够与诸如用户的智能电话之类的另一便携式设备通信。还可以使用NFC系统来执行无线功率传输。
使用本文所描述的NFC单元,用户可通过利用设备中的一个或多个设备的线圈之间的耦合而使此类设备边对边地相碰并将此类设备并排放置以用于近场通信功能(诸如近场通信和无线功率传输(wireless power transfer,WPT))。更具体地,实施例可提供具有战略性塑形和放置的铁氧体材料的设备,以提供线圈的更好的耦合。每个线圈具有与其相关联的电感系数,该电感系数可结合系统的电阻、电容和其他特征来选择以实现系统的公共谐振频率。
如图11中进一步所见,附加的无线单元可包括其他短距离无线引擎,包括WLAN单元1150和蓝牙单元1152。通过使用WLAN单元1150,可以实现符合给定的电气与电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)1102.11标准的Wi-FiTM通信,而经由蓝牙单元1152,可以进行利用蓝牙协议的短距离通信。这些单元可以经由例如USB链路或通用异步接收发送器(universal asynchronous receiver transmitter,UART)链路来与处理器1110通信。或者,这些单元可以经由根据以下协议的互连耦合到处理器1110:根据外围组件互连快速TM(Peripheral Component Interconnect ExpressTM,PCIeTM)协议,例如根据PCI快速TM规范基础规范版本3.0(2007年1月17日发布);或根据另一此类协议,诸如串行数据输入/输出(serial data input/output,SDIO)标准。当然,这些外围设备(其可以被配置在一个或多个插入式卡上)之间的实际物理连接可以通过适用于主板的NGFF连接器的方式。
另外,无线广域通信(例如,根据蜂窝式或其他无线广域协议)可以经由WWAN单元1156进行,该WWAN单元1156进而可以耦合到订户身份模块(subscriber identity module,SIM)1157。另外,为了允许接收并使用位置信息,还可以存在GPS模块1155。注意,在图11中示出的实施例中,WWAN单元1156和诸如相机模块1154之类的集成捕捉设备可以经由给定的USB协议(诸如USB 2.0或3.0链路)或UART或I2C协议进行通信。同样,这些单元的实际物理连接可以经由将NGFF插件卡适配到主板上配置的NGFF连接器。
在特定实施例中,可例如使用支持Windows 8CS的WIFITM802.11ac解决方案(例如,向后兼容IEEE 802.11abgn的附加卡)来模块化地提供无线功能。该卡可以被配置在在内部插槽中(例如,经由NGFF适配器)。附加模块可提供蓝牙能力(例如,具有向后兼容性的蓝牙4.0)以及无线显示功能。此外,NFC支持可以经由单独的设备或多功能设备提供,并且可被定位在例如底盘的右前部以便于访问。又另一附加模块可以是可以提供对3G/4G/LTE和GPS的支持的WWAN设备。该模块可以被实现在内部(例如,NGFF)插槽中。可为WiFiTM、蓝牙、WWAN、NFC和GPS提供集成天线支持,从而实现从WiFiTM到WWAN无线电、根据无线千兆规范(2010年7月)的无线千兆(wireless gigabit,WiGig)的无缝切换,反之亦然。
如以上所描述的,集成相机可被并入机盖中。作为一个示例,该相机可以是高分辨率相机,例如,具有至少2.0百万像素(megapixel,MP)的分辨率并扩展到6.0MP及以上。
为了提供音频输入和输出,可以经由数字信号处理器(DSP)1160来实现音频处理器,DSP 1160可以经由高清晰度音频(high definition audio,HDA)链路来耦合到处理器1110。类似地,DSP 1160可以与集成的编码器/解码器(coder/decoder,CODEC)和放大器1162进行通信,该集成的编解码器和放大器1162进而可以耦合至可以在底盘内实现的输出扬声器1163。类似地,放大器和CODEC 1162可被耦合以从话筒1165接收音频输入,在实施例中,该话筒1165可以经由双阵列话筒(诸如,数字话筒阵列)来实现,以提供高质量音频输入从而实现对系统内的各种操作的语音激活的控制。另外注意,可以将音频输出从放大器/CODEC 1162提供到头戴式耳机插孔1164。虽然在图11的实施例中利用这些特定组件示出,但应理解本公开的范围不限于此方面。
在特定实施例中,数字音频编解码器和放大器能够驱动立体声头戴式耳机插孔、立体声麦克风插孔、内部麦克风阵列和立体声扬声器。在不同的实现方式中,编解码器可以集成到音频DSP中,或者经由HD音频路径耦合到外围控制器中枢(peripheral controllerhub,PCH)。在一些实现方式中,除了集成立体声扬声器之外,还可以提供一个或多个低音扬声器,并且扬声器解决方案可以支持DTS音频。
在一些实施例中,处理器1110可由外部电压调节器(voltage regulator,VR)以及集成在处理器管芯内的被称为完全集成电压调节器(fully integrated voltageregulator,FIVR)的多个内部电压调节器来供电。在处理器中对多个FIVR的使用使得能够将组件分组到分开的功率平面中,使得功率由FIVR调节并且由FIVR仅提供给组中的那些组件。在功率管理期间,当处理器被置于某个低功率状态时,一个FIVR的给定的功率平面可被掉电或断电,而另一FIVR的另一功率平面保持为活动的或完全供电的。
处理器中的功率控制可以引起增强的功率节省。例如,可以在核心之间动态地分配功率,各个核心可以改变频率/电压,并且多个深度低功率状态可以被提供以实现非常低的功耗。此外,对核心或独立核心部分的动态控制可以通过在组件不被使用时使其断电来提供降低的功耗。
在不同的实现方式中,诸如TPM之类的安全模块可被集成到处理器中,或者可以是诸如TPM 2.0设备之类的分立设备。通过使用集成安全模块(也称为平台信任技术(Platform Trust Technology,PTT)),可启用BIOS/固件来披露用于某些安全特征的硬件特征,包括安全指令、安全引导、 防盗技术、/>身份保护技术、/>可信执行技术(Trusted Execution Technology,TXT)和/>可管理性引擎技术、以及诸如安全键盘和显示器之类的安全用户接口。
接下来转到图12,示出了根据某些实施例的可用作主机设备或外围设备(或可包括主机设备和一个或多个外围设备两者)的示例计算系统的另一框图。作为特定的说明性示例,SoC 1200被包括在用户装备(user equipment,UE)中。在一个实施例中,UE是指由最终用户用于通信的任何设备,诸如,手持式电话、智能电话、平板、超薄笔记本、具有宽带适配器的笔记本,或任何其他类似的通信设备。UE通常连接到基站或节点,该基站或节点本质上潜在地与GSM网络中的移动站(mobile station,MS)相对应。
此处,SoC 1200包括2个核心——1206和1207。类似于上述讨论,核心1206和1207可符合指令集体系结构,诸如,基于体系结构酷睿(CoreTM)的处理器、超微半导体TM公司(Advanced Micro Devices,AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计,或它们的客户,以及它们的被许可方或采纳方。核心1206和1207耦合至缓存控件1208,该缓存控件1208与总线接口单元1209和L2缓存1210相关联以与系统1200的其他部分通信。互连1212包括潜在地实现所描述公开的一个或多个方面的芯片上互连,诸如IOSF、AMBA或以上所讨论的其他互连。
互连1212提供到其他组件的通信信道,其他组件诸如,用于为订户身份模块(SIM)卡提供接口的SIM 1230、用于保存供核心1206和1207执行以初始化和引导SoC 1200的引导代码的引导ROM 1235、用于为外部存储器(例如,DRAM 1260)提供接口的SDRAM控制器1240、用于为非易失性存储器(例如,闪存1265)提供接口的闪存控制器1245、用于为外围设备提供接口的外围控件1250(例如,串行外围接口)、用于显示和接收输入(例如,触控实现的输入)的视频编解码器1220和视频接口1225、用于执行图形相关的计算的GPU 1215等等。这些接口中的任何一者可包括本文中所描述公开的多个方面。
另外,系统图示出用于通信的外围设备,诸如,蓝牙模块1270、3G调制解调器1275、GPS 1280以及Wi-Fi 1285。注意,如上文所述,UE包括用于通信的无线电装置。结果,这些外围通信模块不都是需要的。然而,在UE中,将包括用于外部通信的某种形式的无线电装置。
尽管附图描绘了特定的计算机系统,但各种实施例的概念适用于任何合适的集成电路和其他逻辑设备。可以使用本公开的教导的设备的示例包括桌面型计算机系统、服务器计算机系统、存储系统、手持式设备、平板、其他薄笔记本、片上系统(SOC)设备和嵌入式应用。手持式设备的一些示例包括蜂窝电话、数码相机、媒体播放器、个人数字助理(personal digital assistant,PDA)和手持式PC。嵌入式应用可包括例如微控制器、数字信号处理器(digital signal processor,DSP)、SOC、网络计算机(network computer,NetPC)、机顶盒、网络中枢、广域网(wide area network,WAN)交换机、或可执行以下教导的功能和操作的任何其他系统。本公开的各种实施例可以在任何合适的计算环境中使用,诸如个人计算设备、服务器、大型机、云计算服务提供商基础设施、数据中心、通信服务提供商基础设施(例如,演进型分组核心的一个或多个部分),或包括一组计算设备的其他环境。
设计可以经历从创建到仿真到制造的各阶段。表示设计的数据可以以数种方式来表示该设计。首先,如在仿真中有用的,可使用硬件描述语言(hardware descriptionlanguage,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对象自身可以作为输入被提供至制造系统软件,以得到所描述的硬件。
在设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。存储器或者磁或光存储装置(诸如,盘)可以是用于存储经由光波或电波来传输的信息的机器可读介质,这些光波或电波被调制或以其他方式被生成以传输此类信息。当指示或携载代码或设计的电载波被传输时,在电信号的复制、缓冲或重新传输被执行的意义上,新副本被制成。因此,通信提供商或网络提供商可以在有形机器可读介质上至少临时地存储具体化本公开的实施例的技术的物品(诸如,被编码到载波中的信息)。
在各实施例中,可以将存储设计的表示的介质提供给制造系统(例如,能够制造集成电路和/或相关组件的半导体制造系统)。设计表示可指令系统制造能够执行上文所描述的功能的任何组合的设备。例如,设计表示可以指导系统关于要制造的设备的关于制造哪些组件、应当如何将组件耦合在一起、应当将组件放置在设备上的何处、和/或关于其他合适的规范。
如本文中所使用或如附图中所描绘的模块是指硬件、软件、和/或固件的任何组合。作为示例,模块包括与非暂态介质相关联的诸如微控制器之类的硬件,该非暂态介质用于存储适于由该微控制器执行的代码。因此,在一个实施例中,对模块的引用是指被专门配置成用于识别和/或执行要被保持在非暂态介质上的代码的硬件。此外,在另一实施例中,模块的使用是指包括代码的非暂态介质,该代码具体地适于由微控制器执行以执行预定的操作。并且如可以被推断,在又一实施例中,术语模块(在此示例中)可以指微控制器和非暂态介质的组合。通常,被图示为分开的模块的边界常常变化并且潜在地重叠。例如,第一模块和第二模块可共享硬件、软件、固件、或它们的组合,同时潜在地保留某个独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其他硬件。
可使用逻辑来实现所描述的流程中的任一个或者附图的各种组件、以上各项的子组件、或本文中所描述的其他实体或组件的功能。“逻辑”可以指代硬件、固件、软件和/或其中每一个的组合以执行一个或多个功能。在各实施例中,逻辑可以包括微处理器或可操作以执行软件指令的其他处理元件、诸如专用集成电路(application specific integratedcircuit,ASIC)之类的分立的逻辑、诸如现场可编程门阵列(field programmable gatearray,FPGA)的经编程的逻辑器件、包含指令的存储设备、逻辑器件的组合(例如,如将在印刷电路板上发现的)、或其他合适的硬件和/或软件。逻辑可包括一个或多个门电路或其他电路组件。在一些实施例中,逻辑还可以完全地具体化为软件。软件可被具体化为记录在非暂态计算机可读存储介质上的软件封装、代码、指令、指令集和/或数据。固件可被具体化为被硬编码(例如,是非易失性的)在存储设备中的代码、指令或指令集、和/或数据。
在一个实施例中,使用短语‘用于’或‘被配置成’指的是安排、合在一起、制造、提供销售、进口和/或设计装置、硬件、逻辑或元件以执行指定或所确定的任务。在该示例中,如果不是正在操作的装置或其元件被设计、耦合、和/或互连以执行所指定的任务,则该装置或其元件仍然‘被配置成用于’执行所指定的任务。作为纯说明性示例,在操作期间,逻辑门可提供0或1。但‘被配置成用于’向时钟提供使能信号的逻辑门并非包括可提供1或0的每一潜在的逻辑门。相反,该逻辑门是以在操作期间1或0的输出用于启用时钟的某种方式被耦合的逻辑门。再次注意,使用术语‘被配置成用于’不要求操作,而是关注于装置、硬件、和/或元件的潜在状态,其中在该潜在状态中,该装置、硬件和/或元件被设计成在该装置、硬件和/或元件正在操作时执行特定任务。
此外,在一个实施例中,使用短语‘能够/能够用于’和/或‘能操作以用于’指的是某个装置、逻辑、硬件、和/或元件按此类方式被设计:该方式使得能够以指定方式使用该装置、逻辑、硬件、和/或元件。如以上所注意,在一个实施例中,用于、能够、或可操作以用于的使用是指装置、逻辑、硬件、和/或元件的潜在状态,其中该装置、逻辑、硬件、和/或元件不是正在操作,而是以此类方式被设计以使得能够以指定方式使用装置。
如本文中所使用,值包括数字、状态、逻辑状态、或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值、或逻辑的值的使用也被称为1和0,这简单地表示了二进制逻辑状态。例如,1指的是高逻辑电平,并且0指的是低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元可以能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中的值的其他表示。例如,十进制数10还可以被表示为二进制值1010和十六进制字母A。因此,值包括能够被保持在计算机系统中的信息的任何表示。
而且,状态可由值或值的部分来表示。作为示例,诸如逻辑1之类的第一值可以表示默认或初始状态,而诸如逻辑0之类的第二值可以表示非默认状态。此外,在一个实施例中,术语重置和置位分别指的是默认和经更新的值或状态。例如,默认值潜在地包括高逻辑值(即,重置),而经更新的值潜在地包括低逻辑值(即,置位)。注意,可以利用值的任何组合来表示任何数量的状态。
以上所阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在机器可访问、机器可读、计算机可访问、或计算机可读介质上、可以由处理元件执行的指令或代码来实现。机器可访问/可读介质包括提供(即,存储和/或传输)机器(诸如计算机或电子系统)可读形式的信息的任何机制。例如,机器可访问介质包括:随机存取存储器(random-accessmemory,RAM),诸如静态RAM(static RAM,SRAM)或动态RAM(dynamic RAM,DRAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声存储设备;用于保持从暂态(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其它形式的存储设备等等,这些暂态信号与可从其接收信息的非暂态介质相区别。
用于对逻辑进行编程以执行本公开的实施例的指令可被存储在系统中的存储器(诸如,DRAM、缓存、闪存、或其他存储装置)内。此外,指令可以经由网络或借助于其他计算机可读介质被分发。因此,机器可读介质可包括用于以机器(例如,计算机)可读形式存储或传输信息的任何机制,但不限于:软盘、光盘、致密盘只读存储器(Compact Disc,Read-OnlyMemory,CD-ROM)、以及磁光盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁卡或光卡、闪存、或在通过因特网经由电、光、声、或其他形式的传播信号(例如,载波、红外信号、数字信号等)传输信息时使用的有形机器可读存储。因此,计算机可读介质包括适用于以机器(例如,计算机)可读形式存储或传输电子指令或信息的任何类型的有形机器可读介质。
贯穿本说明书,对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”在贯穿本说明书的各个位置的出现不一定全部指代同一个实施例。此外,在一个或多个实施例中,可以以任何合适的方式来组合特定的特征、结构或特性。
在上述说明书中,已经参考特定示例性实施例给出了具体实施方式。然而,将显而易见的是,可对这些实现方式作出各种修改和改变,而不背离如所附权利要求所述的本公开的更宽泛的精神和范围。因此,应当认为说明书和附图是说明性的而不是限制性的。此外,实施例和其他示例性语言的上述使用不一定是指同一实施例或同一示例,而是可以指不同和独特的实施例,并且可能指同一实施例。
示例1包括一种系统,该系统包括:分立图形片上系统(SoC),耦合到主机处理器单元,该SoC包括结构,该结构包括用于对来自计算引擎的请求进行解码的处置器电路系统,该处置器电路系统用于至少部分基于该请求中包括的操作码来将该请求朝向耦合到SoC的图形存储器、耦合到主机处理器单元的主机存储器或SoC的边带网络中的一个进行路由,处置器被配置成用于对来自由计算引擎在请求中使用的操作码集合的操作码进行解码,其中操作码集合包括与以下各项相对应的操作码:第一写入请求类型和第一读取请求类型,其中第一写入请求类型和第一读取请求类型的请求被路由到主机存储器或图形存储器;以及第二写入请求类型和第二读取请求类型,其中第二写入请求类型和第二读取请求类型的请求用于被路由到边带网络。
示例2包括示例1的主题,并且其中操作码集合包括与第三写入请求类型相对应的操作码,其中第三写入请求类型的请求用于被路由到主机存储器或图形存储器,其中第三写入请求类型指定部分写入请求并且第一写入请求类型指定全写入请求。
示例3包括示例1和2中任一项的主题,并且其中操作码集合被限制为与第一写入请求类型、第二写入请求类型和第三写入请求类型以及第一读取请求类型和第二读取请求类型相对应的操作码。
示例4包括示例1-3中任一项的主题,并且其中结构包括第二处置器电路系统,用于对来自计算引擎的第二请求进行解码,其中第二处置器被配置成用于将包含与第一写入请求类型和第二读取请求类型相对应的操作码的请求仅朝向图形存储器而不朝向主机存储器进行路由。
示例5包括示例1-4中任一项的主题,并且其中结构包括耦合在处置器电路系统与存储器子系统之间的第一链路以及耦合在第二处置器电路系统与存储器子系统之间的第二链路,存储器子系统用于耦合到图形存储器。
示例6包括示例1-5中任一项的主题,并且其中结构包括耦合在桥接器电路系统与存储器子系统之间的第三链路,其中桥接器电路系统用于将从主机处理单元接收的读取和写入请求传送到图形存储器。
示例7包括示例1-6中任一项的主题,并且其中该结构进一步包括耦合到处置器电路系统的桥接器电路系统,该桥接器电路系统用于从处置器电路系统接收第一写入请求类型和第一读取请求类型的第一请求并且将该第一请求传向主机处理单元。
示例8包括示例1-7中任一项的主题,并且其中桥接器电路系统用于将第一请求从由计算引擎使用的第一协议转译为由SoC的第二结构使用的第二协议。
示例9包括示例1-8中任一项的主题,并且其中桥接器电路系统用于从主机处理单元接收读取和写入请求并且将该读取和写入请求发向图形存储器。
示例10包括示例1-9中任一项的主题,并且其中桥接器电路系统用于从可移除地耦合到SoC的输入/输出设备接收请求并且将该请求发向图形存储器。
示例11包括示例1-10中任一项的主题,并且其中该结构进一步包括耦合到处置器电路系统的第二桥接器电路系统,该第二桥接器电路系统用于从处置器电路系统接收第二写入请求类型和第二读取请求类型的第二请求并且将该第二请求传向边带网络。
示例12包括示例1-11中任一项的主题,并且其中第二写入请求类型的请求包括存储用于SoC的代理的配置数据的寄存器的地址。
示例13包括示例1-12中任一项的主题,并且其中SoC进一步包括计算引擎。
示例14包括示例1-13中任一项的主题,并且进一步包括图形存储器。
示例15包括示例1-14中任一项的主题,并且进一步包括主机处理器单元。
示例16包括示例1-15中任一项的主题,并且进一步包括通信地耦合到主机处理器单元的电池、通信地耦合到主机处理器单元的显示器、或者通信地耦合到主机处理器单元的网络接口。
示例17包括一种装置,该装置包括:计算引擎,用于执行分立图形片上系统(SoC)的渲染操作,该计算引擎包括用于以下各项的电路系统:发出对耦合到SoC的图形存储器的第一请求,该对图形存储器的第一请求包括与写入操作相对应的第一操作码;发出对耦合到SoC的图形存储器的第二请求,该对图形存储器的第二请求包括与读取操作相对应的第二操作码;发出对与耦合到SoC的主机处理单元耦合的主机存储器的第一请求,对主机存储器的第一请求包括第一操作码;发出对主机存储器的第二请求,第二请求包括第二操作码;发出对SoC的边带网络的第一请求,对边带网络的第一请求包括与写入操作相对应的第三操作码;以及发出对SoC的边带网络的第二请求,对边带网络的第二请求包括与读取操作相对应的第四操作码。
示例18包括示例17的主题,并且其中计算引擎的电路系统用于将对图形存储器的第一请求和第二请求、对主机存储器的第一请求和第二请求以及对边带网络的第一请求和第二请求通过第一链路发送到SoC的结构,并且其中计算引擎的电路系统用于将对图形存储器的第三请求通过第二链路发送到专用于对图形存储器的请求的SoC的结构,对图形存储器的第三请求包括第一操作码。
示例19包括示例17的主题,并且其中计算引擎的的电路系统用于发出具有与第三写入请求类型相对应的操作码的指令,其中第三写入请求类型的请求用于被路由到主机存储器或图形存储器,其中第三写入请求类型指定部分写入请求并且第一写入请求类型指定全写入请求。
示例20包括示例17-19中任一项的主题,并且其中可由SoC的结构上的计算引擎使用的操作码集合被限制为与第一、第二和第三写入请求类型以及第一和第二读取请求类型相对应的操作码。
示例21包括示例17-20中任一项的主题,并且其中SoC的结构包括:第一处置器电路系统,用于将包含与第一写入请求类型和第二读取请求类型相对应的操作码的请求仅朝向图形存储器和主机存储器路由;第二处置器电路系统,用于对来自计算引擎的第二请求进行解码,其中第二处置器电路系统被配置成用于将包含与第一写入请求类型和第二读取请求类型相对应的操作码的请求仅朝向图形存储器而不朝向主机存储器路由。
示例22包括示例17-21中任一项的主题,并且其中结构包括耦合在处置器电路系统与存储器子系统之间的第一链路以及耦合在第二处置器电路系统与存储器子系统之间的第二链路,存储器子系统用于耦合到图形存储器。
示例23包括示例17-22中任一项的主题,并且其中结构包括耦合在桥接器电路系统与存储器子系统之间的第三链路,其中桥接器电路系统用于将从主机处理单元接收的读取和写入请求传送到图形存储器。
示例24包括示例17-23中任一项的主题,并且其中该结构进一步包括耦合到处置器电路系统的桥接器电路系统,该桥接器电路系统用于从处置器电路系统接收第一写入请求类型和第一读取请求类型的第一请求并且将该第一请求传向主机处理单元。
示例25包括示例17-24中任一项的主题,并且其中桥接器电路系统用于将第一请求从由计算引擎使用的第一协议转译为由SoC的第二结构使用的第二协议。
示例26包括示例17-25中任一项的主题,并且其中桥接器电路系统用于从主机处理单元接收读取和写入请求并且将该读取和写入请求发向图形存储器。
示例27包括示例17-26中任一项的主题,并且其中桥接器电路系统用于从可移除地耦合到SoC的输入/输出设备接收请求并且将该请求发向图形存储器。
示例28包括示例17-27中任一项的主题,并且其中该结构进一步包括耦合到处置器电路系统的第二桥接器电路系统,该第二桥接器电路系统用于从处置器电路系统接收第二写入请求类型和第二读取请求类型的第二请求并且将该第二请求传向边带网络。
示例29包括示例17-28中任一项的主题,并且其中第二写入请求类型的请求包括存储用于SoC的代理的配置数据的寄存器的地址。
示例30包括示例17-29中任一项的主题,并且进一步包括图形存储器。
示例31包括示例17-30中任一项的主题,并且进一步包括主机处理器单元。
示例32包括示例17-31中任一项的主题,并且进一步包括通信地耦合到主机处理器单元的电池、通信地耦合到主机处理器单元的显示器、或者通信地耦合到主机处理器单元的网络接口。
示例33包括一种方法,该方法包括:形成耦合到主机处理器单元的分立图形片上系统(SoC),该SoC包括结构,该结构包括用于对来自计算引擎的请求进行解码的处置器电路系统,该处置器电路系统用于至少部分基于该请求中包括的操作码来将该请求朝向耦合到SoC的图形存储器、耦合到主机处理器单元的主机存储器或SoC的边带网络中的一个进行路由,处置器被配置成用于对来自由计算引擎在请求中使用的操作码集合的操作码进行解码,其中操作码集合包括与以下各项相对应的操作码:第一写入请求类型和第一读取请求类型,其中第一写入请求类型和第一读取请求类型的请求被路由到主机存储器或图形存储器;以及第二写入请求类型和第二读取请求类型,其中第二写入请求类型和第二读取请求类型的请求用于被路由到边带网络。
示例34包括示例33的主题,并且进一步包括将SoC耦合到图形存储器。
示例35包括示例33和34中任一项的主题,并且其中操作码集合包括与第三写入请求类型相对应的操作码,其中第三写入请求类型的请求用于被路由到主机存储器或图形存储器,其中第三写入请求类型指定部分写入请求并且第一写入请求类型指定全写入请求。
示例36包括示例33-35中任一项的主题,并且其中操作码集合被限制为与第一写入请求类型、第二写入请求类型和第三写入请求类型以及第一读取请求类型和第二读取请求类型相对应的操作码。
示例37包括示例33-36中任一项的主题,并且其中结构包括第二处置器电路系统,用于对来自计算引擎的第二请求进行解码,其中第二处置器被配置成用于将包含与第一写入请求类型和第二读取请求类型相对应的操作码的请求仅朝向图形存储器而不朝向主机存储器进行路由。
示例38包括示例33-37中任一项的主题,并且其中结构包括耦合在处置器电路系统与存储器子系统之间的第一链路以及在第二处置器电路系统与存储器子系统之间的第二链路,存储器子系统用于耦合到图形存储器。
示例39包括示例33-38中任一项的主题,并且其中结构包括耦合在桥接器电路系统与存储器子系统之间的第三链路,其中桥接器电路系统用于将从主机处理单元接收的读取和写入请求传送到图形存储器。
示例40包括示例33-39中任一项的主题,并且其中该结构进一步包括耦合到处置器电路系统的桥接器电路系统,该桥接器电路系统用于从处置器电路系统接收第一写入请求类型和第一读取请求类型的第一请求并且将该第一请求传向主机处理单元。
示例41包括示例33-40中任一项的主题,并且其中桥接器电路系统用于将第一请求从由计算引擎使用的第一协议转译为由SoC的第二结构使用的第二协议。
示例42包括示例33-41中任一项的主题,并且其中桥接器电路系统用于从主机处理单元接收读取和写入请求并且将该读取和写入请求发向图形存储器。
示例43包括示例33-42中任一项的主题,并且其中桥接器电路系统用于从可移除地耦合到SoC的输入/输出设备接收请求并且将该请求发向到图形存储器。
示例44包括示例33-43中任一项的主题,并且其中该结构进一步包括耦合到处置器电路系统的第二桥接器电路系统,该第二桥接器电路系统用于从处置器电路系统接收第二写入请求类型和第二读取请求类型的第二请求并将该第二请求传向边带网络。
示例45包括示例33-44中任一项的主题,并且其中第二写入请求类型的请求包括存储用于SoC的代理的配置数据的寄存器的地址。
示例46包括示例33-45中任一项的主题,并且其中SoC进一步包括计算引擎。
示例47包括示例33-46中任一项的主题,并且进一步包括将图形存储器耦合到SoC。
示例48包括示例33-47中任一项的主题,并且进一步包括将主机处理器单元耦合到SoC。
示例49包括示例33-48中任一项的主题,并且进一步包括将电池、显示器或网络接口通信地耦合到主机处理器单元。
Claims (25)
1.一种系统,包括:
分立图形片上系统SoC,用于耦合到主机处理器单元,所述SoC包括:
结构,所述结构包括用于对来自计算引擎的请求进行解码的处置器电路系统,所述处置器电路系统用于至少部分基于所述请求中包括的操作码来将所述请求朝向耦合到所述SoC的图形存储器、耦合到所述主机处理器单元的主机存储器或所述SoC的边带网络中的一个进行路由,所述处置器被配置成用于对来自由所述计算引擎在请求中使用的操作码集合的操作码进行解码,其中所述操作码集合包括与以下各项相对应的操作码:
第一写入请求类型和第一读取请求类型,其中所述第一写入请求类型和所述第一读取请求类型的请求被路由到所述主机存储器或所述图形存储器;以及
第二写入请求类型和第二读取请求类型,其中所述第二写入请求类型和所述第二读取请求类型的请求被路由到所述边带网络。
2.如权利要求1所述的系统,其中所述操作码集合包括与第三写入请求类型相对应的操作码,其中所述第三写入请求类型的请求被路由到所述主机存储器或所述图形存储器,其中所述第三写入请求类型指定部分写入请求并且所述第一写入请求类型指定全写入请求。
3.如权利要求2所述的系统,其中所述操作码集合被限制为与所述第一写入请求类型、所述第二写入请求类型和所述第三写入请求类型以及所述第一读取请求类型和所述第二读取请求类型相对应的操作码。
4.如权利要求1所述的系统,其中所述结构包括第二处置器电路系统,用于对来自所述计算引擎的第二请求进行解码,其中所述第二处置器被配置成用于将包含与所述第一写入请求类型和所述第二读取请求类型相对应的操作码的请求仅朝向所述图形存储器而不朝向所述主机存储器进行路由。
5.如权利要求4所述的系统,其中所述结构包括耦合在所述处置器电路系统与存储器子系统之间的第一链路以及耦合在所述第二处置器电路系统与所述存储器子系统之间的第二链路,所述存储器子系统耦合到所述图形存储器。
6.如权利要求5所述的系统,其中所述结构包括耦合在桥接器电路系统与所述存储器子系统之间的第三链路,其中所述桥接器电路系统用于将从所述主机处理单元接收的读取和写入请求传送到所述图形存储器。
7.如权利要求1所述的系统,其中所述结构进一步包括耦合到所述处置器电路系统的桥接器电路系统,所述桥接器电路系统用于从所述处置器电路系统接收所述第一写入请求类型和所述第一读取请求类型的第一请求并且将所述第一请求传送到所述主机处理单元。
8.如权利要求7所述的系统,其中所述桥接器电路系统用于将所述第一请求从由所述计算引擎使用的第一协议转译为由所述SoC的第二结构使用的第二协议。
9.如权利要求7所述的系统,其中所述桥接器电路系统用于从所述主机处理单元接收读取和写入请求并且将所述读取和写入请求发向所述图形存储器。
10.如权利要求7所述的系统,其中所述桥接器电路系统用于从能移除地耦合到所述SoC的输入/输出设备接收请求并且将所述请求发向所述图形存储器。
11.如权利要求7所述的系统,其中所述结构进一步包括耦合到所述处置器电路系统的第二桥接器电路系统,所述第二桥接器电路系统用于从所述处置器电路系统接收所述第二写入请求类型和所述第二读取请求类型的第二请求并且将所述第二请求传向所述边带网络。
12.如权利要求1所述的系统,其中所述第二写入请求类型的请求包括存储用于所述SoC的代理的配置数据的寄存器的地址。
13.如权利要求1所述的系统,其中所述SoC进一步包括所述计算引擎。
14.如权利要求1所述的系统,进一步包括所述图形存储器。
15.如权利要求1所述的系统,进一步包括所述主机处理器单元。
16.如权利要求15所述的系统,进一步包括通信地耦合到所述主机处理器单元的电池、通信地耦合到所述主机处理器单元的显示器、或者通信地耦合到所述主机处理器单元的网络接口。
17.一种装置,包括:
计算引擎,用于执行分立图形片上系统SoC的渲染操作,所述计算引擎包括用于以下各项的电路系统:
发出对耦合到所述SoC的图形存储器的第一请求,所述对所述图形存储器的第一请求包括与写入操作相对应的第一操作码;
发出对耦合到所述SoC的图形存储器的第二请求,所述对所述图形存储器的第二请求包括与读取操作相对应的第二操作码;
发出对与耦合到所述SoC的主机处理单元耦合的主机存储器的第一请求,对所述主机存储器的第一请求包括所述第一操作码;
发出对所述主机存储器的第二请求,所述第二请求包括所述第二操作码;
发出对所述SoC的边带网络的第一请求,所述对所述边带网络的第一请求包括与写入操作相对应的第三操作码;以及
发出对所述SoC的所述边带网络的第二请求,所述对所述边带网络的第二请求包括与读取操作相对应的第四操作码。
18.如权利要求17所述的装置,其中所述计算引擎的所述电路系统用于将对所述图形存储器的所述第一请求和所述第二请求、对所述主机存储器的所述第一请求和所述第二请求以及对所述边带网络的所述第一请求和所述第二请求通过第一链路发送到所述SoC的结构,并且其中所述计算引擎的所述电路系统用于将对所述图形存储器的第三请求通过第二链路发送到专用于对所述图形存储器的请求的所述SoC的结构,所述对所述图形存储器的第三请求包括所述第一操作码。
19.一种方法,包括:
形成耦合到主机处理器单元的分立图形片上系统SoC,所述SoC包括:
结构,所述结构包括用于对来自计算引擎的请求进行解码的处置器电路系统,所述处置器电路系统用于至少部分基于所述请求中包括的操作码来将所述请求朝向耦合到所述SoC的图形存储器、耦合到所述主机处理器单元的主机存储器或所述SoC的边带网络中的一个进行路由,所述处置器被配置成用于对来自由所述计算引擎在请求中使用的操作码集合的操作码进行解码,其中所述操作码集合包括与以下各项相对应的操作码:
第一写入请求类型和第一读取请求类型,其中所述第一写入请求类型和所述第一读取请求类型的请求被路由到所述主机存储器或所述图形存储器;以及
第二写入请求类型和第二读取请求类型,其中所述第二写入请求类型和所述第二读取请求类型的请求被路由到所述边带网络。
20.如权利要求19所述的方法,进一步包括将所述SoC耦合到所述图形存储器。
21.如权利要求19所述的方法,并且其中所述操作码集合包括与第三写入请求类型相对应的操作码,其中所述第三写入请求类型的请求被路由到所述主机存储器或所述图形存储器,其中所述第三写入请求类型指定部分写入请求并且所述第一写入请求类型指定全写入请求。
22.如权利要求21所述的方法,并且其中所述操作码集合被限制为与所述第一写入请求类型、所述第二写入请求类型和所述第三写入请求类型以及所述第一读取请求类型和所述第二读取请求类型相对应的操作码。
23.如权利要求19所述的方法,并且其中所述结构包括第二处置器电路系统,用于对来自所述计算引擎的第二请求进行解码,其中所述第二处置器被配置成用于将包含与所述第一写入请求类型和所述第二读取请求类型相对应的操作码的请求仅朝向所述图形存储器而不朝向所述主机存储器进行路由。
24.如权利要求23所述的方法,并且其中所述结构包括耦合在所述处置器电路系统与存储器子系统之间的第一链路以及耦合在所述第二处置器电路系统与所述存储器子系统之间的第二链路,所述存储器子系统耦合到所述图形存储器。
25.如权利要求24所述的方法,并且其中所述结构包括耦合在桥接器电路系统与所述存储器子系统之间的第三链路,其中所述桥接器电路系统用于将从所述主机处理单元接收的读取和写入请求传送到所述图形存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/561,197 US20220113967A1 (en) | 2021-12-23 | 2021-12-23 | Accelerator fabric for discrete graphics |
US17/561,197 | 2021-12-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116340250A true CN116340250A (zh) | 2023-06-27 |
Family
ID=81079011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211613553.5A Pending CN116340250A (zh) | 2021-12-23 | 2022-12-15 | 分立图形的加速器结构 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220113967A1 (zh) |
CN (1) | CN116340250A (zh) |
DE (1) | DE102022129397A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539820B (zh) * | 2024-01-10 | 2024-05-03 | 芯动微电子科技(武汉)有限公司 | 一种PCIe Switch与SoC的互联系统及方法 |
-
2021
- 2021-12-23 US US17/561,197 patent/US20220113967A1/en active Pending
-
2022
- 2022-11-08 DE DE102022129397.1A patent/DE102022129397A1/de active Pending
- 2022-12-15 CN CN202211613553.5A patent/CN116340250A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022129397A1 (de) | 2023-06-29 |
US20220113967A1 (en) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109891399B (zh) | 在相同的物理串行总线集线器上产生多个虚拟串行总线集线器实例的装置和方法 | |
TWI524184B (zh) | 用於在分散式記憶體組織架構中處理位址衝突之方法、設備及系統 | |
CN107409056B (zh) | 用于促进数据通信的装置、系统、方法和设备 | |
KR102074018B1 (ko) | 저전력 상태로의 포트 진입을 동기화하기 위한 시스템, 방법 및 장치 | |
JP6286551B2 (ja) | 処理要素構成のための装置、デバイス構成のための装置および方法、高速デバイス構成のための装置、プログラム、並びに、非一時的コンピュータ可読ストレージ媒体 | |
KR101565357B1 (ko) | 타임아웃을 처리하기 위한 시스템, 방법 및 장치 | |
TWI514191B (zh) | 以安全屬性限制cpu異動的方法、設備及系統 | |
WO2018125501A1 (en) | APPARATUSES AND METHODS FOR MULTILANE UNIVERSAL SERIAL BUS (USB2) COMMUNICATION OVER EMBEDDED UNIVERSAL SERIAL BUS (eUSB2) | |
CN108701109A (zh) | 用于计算机扩展总线的插件机制的方法、装置和系统 | |
KR101710595B1 (ko) | 집적된 클럭 차동 버퍼링 | |
CN109074341B (zh) | 减少引脚计数接口 | |
EP4109281B1 (en) | Peer-to-peer link sharing for upstream communications from xpus to a host processor | |
EP4141680A1 (en) | Debug data communication system for multiple chips | |
CN116368477A (zh) | 使用具有电路切换的增强型重定时器对计算设备的分解 | |
CN116340248A (zh) | 芯片上的多小芯片系统的互连网络 | |
TWI736559B (zh) | 用以針對實體層裝置的組件傳輸資料之控制器 | |
CN116340250A (zh) | 分立图形的加速器结构 | |
US20220121594A1 (en) | Soc architecture to reduce memory bandwidth bottlenecks and facilitate power management | |
EP4243064A1 (en) | Modular low latency electrical sequence for die-to-die interface | |
US20220120967A1 (en) | Low-loss waveguide with undercut |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |