多个独立的芯片上互连件的制作方法

文档序号:31868934发布日期:2022-10-21 17:55阅读:54来源:国知局
多个独立的芯片上互连件的制作方法

1.本文所描述的实施方案涉及芯片上系统(soc)集成电路,并且更具体地,涉及soc中的部件之间的互连件。


背景技术:

2.芯片上系统(soc)集成电路(ic)通常包括用作系统的中央处理单元(cpu)的一个或多个处理器,以及各种其它部件,诸如存储器控制器和外围部件。额外部件可包括在soc中以形成给定设备。然而,随着可在集成电路管芯上实现的晶体管的数目的持续增加,在给定soc上并入更多处理器和其它部件是可能的,并且因此减少了形成给定设备所需的其它部件的数目。
3.增加soc上的处理器和其它离散部件的数目对于提高性能是可取的。另外,可通过减少除soc之外的形成设备所需的其它部件的数目来在设备中实现成本节省。如果将整个系统的更大部分并入到soc中,那么设备可能更紧凑(尺寸更小)。可通过将更多的部件并入到soc中来实现整个设备的功耗降低。
4.另一方面,增加soc上处理器和其它部件的数目增加了存储器控制器和部件之间的带宽需求,并且可能会超过用于在soc上通信的互连件,这可能导致延迟增加。可用带宽的缺乏和延迟的增加可能会减少预期通过将部件并入到soc中而实现的性能益处。
附图说明
5.以下详细描述参考附图,现在对这些附图进行简要描述。
6.图1是包括将代理互连的多个网络的一个实施方案的系统的框图。
7.图2是使用环形拓扑的网络的一个实施方案的框图。
8.图3是使用网状拓扑的网络的一个实施方案的框图。
9.图4是使用树形拓扑的网络的一个实施方案的框图。
10.图5是具有用于一个实施方案的多个网络的芯片上系统(soc)的一个实施方案的框图。
11.图6是示出用于一个实施方案的图5中所展示的独立网络中的一个独立网络的芯片上系统(soc)的一个实施方案的框图。
12.图7是示出用于一个实施方案的图5中所展示的独立网络中的另一个独立网络的芯片上系统(soc)的一个实施方案的框图。
13.图8是示出用于一个实施方案的图5中所展示的独立网络中的又一个独立网络的芯片上系统(soc)的一个实施方案的框图。
14.图9是包括两个半导体管芯的多管芯系统的一个实施方案的框图。
15.图10是输入/输出(i/o)集群的一个实施方案的框图。
16.图11是处理器集群的一个实施方案的框图。
17.图12是示出虚拟信道和业务类型以及图5至图8中所展示的网络的一对表,其中该
对表用于一个实施方案。
18.图13是示出在网络上发起事务的一个实施方案的流程图。
19.图14是系统的一个实施方案的框图。
20.图15是计算机可访问存储介质的一个实施方案的框图。
21.尽管本公开中所述的实施方案可受各种修改形式和另选形式的影响,但其具体实施方案在附图中以举例的方式示出并将在本文中详细描述。然而,应当理解,附图和对其的具体实施方式不旨在将实施方案限制为所公开的特定形式,而相反,本发明旨在涵盖落入所附权利要求书的实质和范围内的所有修改、等同物和另选方案。本文所使用的标题仅用于组织目的,并不旨在用于限制说明书的范围。
具体实施方式
22.在实施方案中,芯片上系统(soc)可包括多个独立网络。网络可以是物理独立的(例如,具有形成网络的专用导线和其它电路)和逻辑独立的(例如,由soc中的代理发起的通信可在逻辑上定义为在多个网络中的所选网络上传输,并且可不受在其它网络上传输的影响)。在一些实施方案中,可包括网络交换机以在给定网络上传输分组。网络交换机可以是网络的物理部分(例如,每个网络可能具有专用网络交换机)。在其它实施方案中,网络交换机可在物理独立的网络之间共享,并且因此可确保在网络中的一个网络上接收到的通信保持在该网络上。
23.通过提供物理和逻辑独立的网络,可经由不同网络上的并行通信来实现高带宽。另外,可在不同网络上传输不同的业务,并且因此可以针对给定类型的业务优化给定网络。例如,诸如soc中的中央处理单元(cpu)的处理器可能对存储器延迟敏感,并且可以高速缓存预期在处理器和存储器之间相干的数据。因此,可提供cpu网络,在该cpu网络上,系统中的cpu和存储器控制器是代理。可以优化cpu网络以提供低延迟。例如,在实施方案中,可能存在用于低延迟请求和批量请求的虚拟信道。与批量请求相比,低延迟请求在结构周围由存储器控制器转发时更受青睐。cpu网络还可支持与被定义为进行相干通信的消息和协议的高速缓存相干性。另一网络可以是输入/输出(i/o)网络。此网络可由各种外围设备(“外围设备(peripheral)”)使用以与存储器通信。网络可支持外围设备所需的带宽,并且还可以支持高速缓存相干性。然而,i/o业务有时可能具有比cpu业务显著更高的延迟。通过将i/o业务与从cpu到存储器业务分离,i/o业务对cpu业务造成的影响可能更小。cpu还可作为i/o网络上的代理而包括在内,用于管理相干性并且与外围设备通信。在实施方案中,又一网络可以是松弛次序网络。cpu和i/o网络可能都支持这些网络上的通信之间的排序模型,这些模型提供了cpu和外围设备所期望的排序。然而,松弛次序网络可以是非相干的,并且可能不会执行很多的排序约束。松弛次序网络可由图形处理单元(gpu)使用以与存储器控制器通信。因此,gpu可在网络中具有专用带宽,并且可能不受cpu和/或外围设备所需的排序的限制。其它实施方案可根据需要采用上述网络的任何子集和/或任何额外网络。
24.网络交换机可以是被配置为接收网络上的通信并且在通信目的地的方向上转发网络上的通信的电路。例如,由处理器发起的通信可被传输到控制映射到通信地址的存储器的存储器控制器。在每个网络交换机处,可将通信向前传输到存储器控制器。如果通信是读取,则存储器控制器可将数据传送回源,并且每个网络交换机可向源转发网络上的数据。
在实施方案中,网络可支持多个虚拟信道。网络交换机可采用专用于每个虚拟信道的资源(例如,缓冲区),使得虚拟信道上的通信可以保持逻辑独立。网络交换机还可以采用仲裁电路以在缓冲的通信中进行选择以在网络上转发。虚拟信道可以是物理上共享网络但逻辑上独立于网络的信道(例如,一个虚拟信道中的通信不阻挡另一虚拟信道上的通信的前进)。
25.代理通常可以是可在网络上发起和/或收集通信的任何设备(例如,处理器、外围设备、存储器控制器等)。源代理生成(发起)通信,并且目的地代理接收(收集)通信。给定代理可以是用于某些通信的源代理和用于其它通信的目的地代理。
26.现在转向附图,图1是示出物理和逻辑独立的网络的通用图。图2至图4是各种网络拓扑的示例。图5是具有多个物理和逻辑独立的网络的soc的示例。图6至图8为更加清楚起见而分别示出图5的各种网络。图9是包括两个半导体管芯的系统的框图,其示出网络到soc的多个实例的可扩展性。图10和图11是更详细地展示的示例代理。图12展示各种虚拟信道和通信类型以及虚拟信道和通信类型所适用的图5中的网络。图13是示出方法的流程图,并且图14和图15是示例性系统和计算机可访问存储介质实施方案。以下描述将基于附图提供进一步的细节。
27.图1是包括将代理互连的多个网络的一个实施方案的系统的框图。在图1中,示出代理10a、10b和10c,但是在各种实施方案中可包括任何数目的代理。代理10a至10b耦合到网络12a,并且代理10a和10c耦合到网络12b。同样,在各种实施方案中,可包括任何数目的网络12a至12b。网络12a包括多个网络交换机,这些网络交换机包括网络交换机14aa、14ab、14am和14an(统称为网络交换机14a);并且,类似地,网络12b包括多个网络交换机,这些网络交换机包括网络交换机14ba、14bb、14bm和14bn(统称为网络交换机14b)。不同网络12a至12b可包括不同数目的网络交换机14a至14b。另外,网络12a至12b包括物理上分离的连接(“导线”、“总线”或“互连件”),它们在图1中示出为各个箭头。
28.由于每个网络12a至12b具有其自身的物理和逻辑分离的互连件和网络交换机,因此网络12a至12b是物理和逻辑分离的。网络12a上的通信不受网络12b上的通信的影响,并且反之亦然。甚至各个网络12a至12b中的互连件上的带宽也是分离且独立的。
29.任选地,代理10a至10c可包括或者可耦合到网络接口电路(分别为附图标记16a至16c)。一些代理10a至10c可包括或者可耦合到网络接口16a至16c,而其它代理10a至10c可能不包括或者可能不耦合到网络接口16a至16c。网络接口16a至16c可被配置为代表对应代理10a至10c在网络12a至12b上传输和接收业务。网络接口16a至16c可被配置为转换或修改由对应代理10a至10c发出的通信以符合网络12a至12b的协议/格式,并且移除修改或将接收到的通信转换为由代理10a至10c使用的协议/格式。因此,网络接口16a至16c可用于未专门设计成直接与网络12a至12b介接的代理10a至10c。在一些情况下,代理10a至10c可在多于一个网络上通信(例如,代理10a在图1中的两个网络12a至12b上通信)。对应网络接口16a可被配置为根据每个通信被分配到哪个网络12a至12b来分离由代理10a发布到网络12a至12b的业务;并且网络接口16a可被配置为组合从网络12a至12b接收到的用于对应代理10a的业务。可使用用于确定网络12a至12b将承载给定通信的任何机制(例如,在各种实施方案中,基于通信类型、用于通信的目的地代理10b至10c、地址等)。
30.由于网络接口电路是任选的并且许多对于直接支持网络12a至12b的代理来说是不需要的,因此为了简单起见,将在其余附图中省略网络接口电路。然而,应当理解,网络接
口电路可由任何代理或代理子集甚至所有代理用于任何所示出的实施方案中。
31.在实施方案中,图1的系统可实施为soc,并且图1中所示出的部件可形成在单个半导体衬底管芯上。包括在soc中的电路可包括多个代理10a至10c和耦合到多个代理10a至10c的多个网络交换机14a至14b。多个网络交换机14a至14b互连以形成多个物理和逻辑独立的网络12a至12b。
32.由于网络12a至12b是物理和逻辑独立的,因此不同网络可具有不同的拓扑。例如,给定网络可具有环形、网状、树形、星形、完全连接的一组网络交换机(例如,网络中的交换机彼此直接连接)、具有耦合到总线的多个代理的共享总线等,或任何一个或多个拓扑的混合。每个网络12a至12b可采用例如提供该网络所期望的带宽和延迟属性或提供该网络的任何期望属性的拓扑。因此,通常,soc可包括根据第一拓扑构造的第一网络和根据与第一拓扑不同的第二拓扑构造的第二网络。
33.图2至图4示出示例性拓扑。图2是使用环形拓扑来耦合代理10a至10c的网络的一个实施方案的框图。在图2的示例中,环由网络交换机14aa至14ah形成。代理10a耦合到网络交换机14aa;代理10b耦合到网络交换机14ab;并且代理10c耦合到网络交换机14ae。
34.在环形拓扑中,每个网络交换机14aa至14ah可连接到其它两个网络交换机14aa至14ah,并且交换机形成环,使得任何网络交换机14aa至14ah可通过在环上在其它网络交换机的方向上传输通信来到达环中的任何其它网络交换机。给定通信可通过环中的一个或多个中间网络交换机以到达目标网络交换机。当给定网络交换机14aa至14ah接收到来自环上的相邻网络交换机14aa至14ah的通信时,给定网络交换机可检查通信以确定给定网络交换机所耦合到的代理10a至10c中是不是通信的目的地。如果是,则给定网络交换机可终止通信并将通信转发到代理。如果不是,则给定网络交换机可将通信转发到环上的下一网络交换机(例如,与给定网络交换机相邻并且不是给定网络交换机从中接收通信的相邻网络交换机的其它网络交换机14aa至14ah)。到给定网络交换机的相邻网络交换机可以是当给定网络交换机可直接传输通信且通信不经过任何中间网络交换机时的网络交换机。
35.图3是使用网状拓扑来耦合代理10a至10p的网络的一个实施方案的框图。如图3中所展示,网络可包括网络交换机14aa至14ah。每个网络交换机14aa至14ah耦合到两个或更多个其它网络交换机。例如,网络交换机14aa耦合到网络交换机14ab和14ae;网络交换机14ab耦合到网络交换机14aa、14af和14ac;等,如图3中所示出。因此,网状网络中的不同网络交换机可耦合到不同数目的其它网络交换机。此外,虽然图3的实施方案具有相对对称的结构,但是其它网状网络可以是不对称的,例如,取决于预期在网络上普遍存在的不同业务模式。在每个网络交换机14aa至14ah处,接收到的通信的一个或多个属性可用于确定接收网络交换机14aa至14ah将向其传输通信的相邻网络交换机14aa至14ah(除非接收网络交换机14aa至14ah所耦合到的代理10a至10p是通信的目的地,在这种情况下,接收网络交换机14aa至14ah可终止网络上的通信并且将其提供给目的地代理10a至10p)。例如,在实施方案中,网络交换机14aa至14ah可在系统初始化时编程以基于各种属性对通信进行路由。
36.在实施方案中,可以基于目的地代理对通信进行路由。路由可被配置为在网状拓扑中可支持的源和目的地代理之间通过最少数目的网络交换机(“最短路径”)来传送通信。替代地,给定源代理到给定目的地代理的不同通信可采用不同路径通过网状网络。例如,可以在较短路径上传输延迟敏感通信,而不太关键的通信可以采用另一路径以避免消耗短路
径上的带宽,其中该另一路径例如在使用期间可能负载较轻。
37.图3可以是部分连接的网状网络的示例:至少一些通信可通过网状网络中的一个或多个中间网络交换机。完全连接的网状网络可具有从每个网络交换机到每个其它网络交换机的连接,并且因此可以在不经过任何中间网络交换机的情况下传输任何通信。在各种实施方案中,可使用任何级别的互连性。
38.图4是使用树形拓扑来耦合代理10a至10e的网络的一个实施方案的框图。在该示例中,网络交换机14aa至14ag互连以形成树。树是分层网络的一种形式,其中存在耦合到代理10a至10e的边缘网络交换机(例如,图4中的14aa、14ab、14ac、14ad和14ag)和仅耦合到其它网络交换机的中间网络交换机(例如,图4中的14ae和14af)。例如,当特定代理通常是由其它代理发出的通信的目的地或通常是通信的源代理时,可使用树形网络。因此,例如,图4的树形网络可用于作为通信的主要源或目的地的代理10e。例如,代理10e可以是存储器控制器,其常常是存储器事务的目的地。
39.在其它实施方案中,可使用许多其它可能的拓扑。例如,星形拓扑在网络的“中心”具有源/目的地代理,并且其它代理可直接或通过一系列网络交换机耦合到中心代理。类似于树形拓扑,在中心代理常常是通信源或目的地的情况下,可使用星形拓扑。可使用共享总线拓扑,并且可使用任何拓扑中的两个或更多个拓扑的混合。
40.图5是具有用于一个实施方案的多个网络的芯片上系统(soc)20的一个实施方案的框图。在图5的实施方案中,soc 20包括多个处理器集群(p集群)22a至22b、多个输入/输出(i/o)集群24a至24d、多个存储器控制器26a至26d和多个图形处理单元(gpu)28a至28d。如名称(soc)所暗示,图5中所示出的部件(在该实施方案中除了存储器30a至30d之外)可集成到单个半导体管芯或“芯片”上。然而,其它实施方案可采用以任何期望的方式耦合或封装的两个或更多个管芯。另外,虽然在图5的示例中展示特定数目的p集群22a至22b、i/o集群24a至24d、存储器控制器26a至26d和gpu 28a至28d,但是任何上述部件的数目和布置可变化并且可大于或小于图5中所展示的数目。存储器30a至30d耦合到soc 20,并且更具体地,分别耦合到存储器控制器26a至26d,如图5中所展示。
41.在所示出的实施方案中,soc 20包括由如图5中所展示的多个网络交换机32、34和36形成的三个物理和逻辑独立的网络以及它们之间的互连件,示出为网络交换机和其它部件之间的箭头。其它实施方案可包括更多或更少的网络。例如,网络交换机32、34和36可以是类似于上文关于图1至图4所描述的网络交换机14a至14b的网络交换机的实例。多个网络交换机32、34和36耦合到多个p集群22a至22b、多个gpu 28a至28d、多个存储器控制器26a至25b和多个i/o集群24a至24d,如图5中所展示。p集群22a至22b、gpu 28a至28b、存储器控制器26a至26b和i/o集群24a至24d都可以是在soc 20的各种网络上通信的代理的示例。可以根据需要包括其它代理。
42.在图5中,中央处理单元(cpu)网络由多个网络交换机(例如,网络交换机32)的第一子集以及它们之间的互连件形成,该互连件示出为短虚线/长虚线,如附图标记38。cpu网络耦合p集群22a至22b和存储器控制器26a至26d。i/o网络由多个网络交换机(例如,网络交换机34)的第二子集以及它们之间的互连件形成,该互连件示出为实线,如附图标记40。i/o网络耦合p集群22a至22b、i/o集群24a至24d和存储器控制器26a至26b。松弛次序网络由多个网络交换机(例如,网络交换机36)的第三子集以及它们之间的互连件形成,该互连件示
出为短虚线,如附图标记42。松弛次序网络耦合gpu 28a至28d和存储器控制器26a至26d。在实施方案中,松弛次序网络也可耦合i/o集群24a至24d中的所选集群。如上所述,cpu网络、i/o网络和松弛次序网络彼此独立(例如,逻辑和物理独立)。在实施方案中,cpu网络和i/o网络上的协议支持高速缓存相干性(例如,网络是相干的)。松弛次序网络可能不支持高速缓存相干性(例如,网络是非相干的)。与cpu网络和i/o网络相比,松弛次序网络还具有减少的排序约束。例如,在实施方案中,针对每个网络定义一组虚拟信道和虚拟信道内的子信道。对于cpu和i/o网络,可对在相同源和目的地代理之间以及相同虚拟信道和子信道中的通信进行排序。对于松弛次序网络,可对相同源和目的地代理之间的通信进行排序。在实施方案中,可仅对相同源和目的地代理之间到相同地址(以给定粒度,例如高速缓存块)的通信进行排序。因为在松弛次序网络上执行的排序不太严格,所以可实现平均更高的带宽,因为例如如果较年轻的事务准备在较老的事务之前完成,那么可准许事务无序地完成。
43.在各种实施方案中,网络交换机32、34和36之间的互连件可以具有任何形式和配置。例如,在一个实施方案中,互连件可以是点对点的单向链路(例如,总线或串行链路)。分组可在链路上传输,其中分组格式可包括指示分组在其中行进的虚拟信道和子信道的数据、存储器地址、源和目的地代理标识符、数据(如果适当的话)等。多个分组可以形成给定的事务。事务可以是源代理和目标代理之间的完整通信。例如,读取事务可包括从源代理到目标代理的读取请求分组、在事务相干情况下的高速缓存代理和目标代理和/或源代理之间的一个或多个相干消息分组、从目标代理到源代理的数据响应分组以及可能的从源代理到目标代理的完成分组,这取决于协议。写入事务可包括从源代理到目标代理的写入请求分组、在事务相干情况下的与读取事务一样的一个或多个相干消息分组以及可能的从目标代理到源代理的完成分组。在实施方案中,写入数据可包括在写入请求分组中,或者可在单独的写入数据分组中从源代理传输到目标代理。
44.在实施方案中,图5中的代理的布置可指示形成soc 20的半导体管芯上的代理的物理布置。也就是说,图5可被视为半导体管芯的表面区域,且图5中的各种部件的位置可近似于它们在该区域内的物理位置。因此,例如,i/o集群24a至24d可布置在由soc 20的顶部表示的半导体管芯区域中(如图5中所定向)。p集群22a至22b可布置在由soc 20中位于i/o集群24a至24d的布置下方它们之间的部分表示的区域中,如图5中所定向。gpu 24a至28d可居中定位并且朝向由soc 20的底部表示的区域延伸,如图5中所定向。存储器控制器26a至26d可布置在由soc 20的右侧和左侧表示的区域上,如图5中所定向。
45.在实施方案中,soc 20可被设计为直接耦合到soc 20的一个或多个其它实例,将实例上的给定网络耦合为逻辑上的一个网络,在该网络上,一个管芯上的代理可通过网络以与该代理在同一管芯上的另一代理内通信相同的方式与不同管芯上的代理进行逻辑通信。虽然延迟可能不同,但是可以以相同的方式执行通信。因此,如图5中所示出,网络延伸到soc 20的底部,如图5中所定向。图5中未展示的接口电路(例如,串行器/解串器(serdes)电路)可用于跨管芯边界与另一管芯通信。因此,网络能够扩展到两个或更多个半导体管芯。例如,两个或更多个半导体管芯可配置为单个系统,其中多个半导体管芯的存在对于在单个系统上执行的软件是透明的。在实施方案中,可使管芯到管芯通信中的延迟最小化,使得与作为对多管芯系统的软件透明性的一个方面的管芯内通信相比,管芯到管芯通信通常不会产生显著的额外延迟。在其它实施方案中,网络可以是仅在管芯内通信的封闭网络。
46.如上所述,不同网络可具有不同的拓扑。在图5的实施方案中,例如,cpu和i/o网络实施环形拓扑,并且松弛次序可实施网状拓扑。然而,在其它实施方案中,可使用其它拓扑。图6、图7和图8示出包括不同网络的soc 30的部分:cpu(图6)、i/o(图7)和松弛次序(图8)。如图6和图7中可见,网络交换机32和34在耦合到另一管芯上的对应交换机时分别形成环。如果仅使用单个管芯,则可在soc 20的底部处的两个网络交换机32或34之间进行连接,如图6和图7中所定向(例如,经由soc 20的引脚上的外部连接)。替代地,底部的两个网络交换机32或34之间可具有可在单个管芯配置中使用的链路,或者网络可使用菊花链拓扑进行操作。
47.类似地,在图8中,展示网络交换机36在gpu 28a至28d与存储器控制器26a至26d之间的网状拓扑中的连接。如前所述,在实施方案中,i/o集群24a至24d中的一个或多个还可耦合到松弛次序网络。例如,包括视频外围设备(例如,显示控制器、存储器缩放器/旋转器、视频编码器/解码器等)的i/o集群24a至24d可针对视频数据访问松弛次序网络。
48.如图8中所定向的soc 30的底部附近的网络交换机36可包含可路由到soc 30的另一实例的连接,从而允许网状网络在多个管芯上延伸,如上文关于cpu和i/o网络所讨论。在单管芯配置中,可以不使用延伸到芯片外的路径。图9是两个管芯系统的框图,其中每个网络延伸跨过两个soc管芯20a至20b,形成逻辑上相同的网络,即使它们延伸跨过两个管芯。为了简单起见,在图9中已经移除了网络交换机32、34和36,并且松弛次序网络已经简化为线,但是在一个实施方案中可以是网状网络。i/o网络44被展示为实线,cpu网络46被展示为交替的长虚线和短虚线,并且松弛次序网络48被展示为虚线。网络44和46的环形结构也在图9中显而易见。虽然图9中展示了两个管芯,但是其它实施方案可采用多于两个管芯。在各种实施方案中,网络可以菊花链连接在一起,通过每一管芯对之间的点对点链路或任何其它连接结构完全连接。
49.在实施方案中,i/o网络与cpu网络的物理分离可帮助系统提供处理器集群22a至22b的低延迟存储器访问,因为i/o业务可以被委托给i/o网络。网络使用相同的存储器控制器来访问存储器,因此存储器控制器可被设计成在一定程度上相比于来自i/o网络的存储器业务更青睐来自cpu网络的存储器业务。处理器集群22a至22b也可以是i/o网络的一部分,以便访问i/o集群24a至24d中的设备空间(例如,利用编程的输入/输出(pio)事务)。然而,由处理器集群22a至22b发起的存储器事务可通过cpu网络传输。因此,cpu集群22a至22b可以是耦合到多个物理和逻辑独立的网络中的至少两个网络的代理的示例。该代理可被配置为生成待传输的事务,并且基于事务的类型(例如,存储器或pio)来选择多个物理和逻辑独立的网络中的至少两个网络中的用于在其上传输事务的一个网络。
50.各种网络可包括不同数目的物理信道和/或虚拟信道。例如,i/o网络可具有多个请求信道和完成信道,而cpu网络可具有一个请求信道和一个完成信道(反之亦可)。可以任何期望的方式(例如,按请求的类型,按请求的优先级,平衡跨物理信道的带宽等)确定当存在多于一个请求时在给定请求信道上传输的请求。类似地,i/o和cpu网络可包括窥探虚拟信道以承载窥探请求,但松弛次序网络可能不包括窥探虚拟信道,因为它在此实施方案中是非相干的。
51.图10是更详细地示出的输入/输出(i/o)集群24a的一个实施方案的框图。其它i/o集群24b至24d可为类似的。在图10的实施方案中,i/o集群24a包括外围设备50和52、外围接
口控制器54、本地互连件56和桥接件58。外围设备52可耦合到外部部件60。外围接口控制器54可耦合到外围接口62。桥接件58可耦合到网络交换机34(或耦合到与网络交换机34耦合的网络接口)。
52.外围设备50和52可包括包含在soc 20中的任何额外硬件功能集(例如,除了cpu、gpu和存储器控制器之外)。例如,外围设备50和52可包括视频外围设备,例如被配置为处理来自相机或其它图像传感器的图像捕获数据的图像信号处理器、视频编码器/解码器、缩放器、旋转器、混合器、显示控制器等。外围设备可包括音频外围设备,例如麦克风、扬声器、到麦克风和扬声器的接口、音频处理器、数字信号处理器、混频器等。外围设备可包括联网外围设备,例如媒体访问控制器(mac)。外围设备可包括其它类型的存储器控制器,例如非易失性存储器控制器。一些外围设备52可包括芯片上部件和芯片外部件60。外围接口控制器54可包括用于soc 20外部的各种接口62的接口控制器,该接口控制器包含例如通用串行总线(usb)、包含pci express(pcie)的外围部件互连(pci)、串行和并行端口等的接口。
53.本地互连件56可以是各种外围设备50、52和54在其上通信的互连件。本地互连件56可不同于图5中所展示的系统范围互连件(例如,cpu、i/o和松弛网络)。桥接件58可被配置为将本地互连件上的通信转换为系统范围互连件上的通信,并且反之亦可。在实施方案中,桥接件58可耦合到网络交换机34中的一个。桥接件58还可管理从外围设备50、52和54发出的事务之间的排序。例如,桥接件58可使用网络上支持的高速缓存相干性协议来确保代表外围设备50、52和54等的事务的排序。不同外围设备50、52和54可具有不同的排序要求,并且桥接件58可被配置为适应不同的要求。在一些实施方案中,桥接件58也可实施各种性能增强特征。例如,桥接件58可为给定请求预取数据。桥接件58可捕获来自外围设备50、52和54的一个或多个事务所针对的高速缓存块的相干副本(例如,处于独占状态),以允许事务在本地完成并强制执行排序。桥接件58可推测性地捕获后续事务所针对的一个或多个高速缓存块的独占副本,且可在成功维持独占状态直到后续事务可完成为止(例如,在满足先前事务的任何排序约束之后)的情况下使用高速缓存块来完成后续事务。因此,在实施方案中,高速缓存块内的多个请求可从高速缓存的副本得到服务。可在2021年4月5日提交的美国临时专利申请第63/170,868号、2021年4月16日提交的第63/175,868号和2021年4月16日提交的第63/175,877号中找到各种细节。这些专利申请以全文引用的方式并入本文中。如果任何并入的材料与本文明确阐述的材料发生冲突,则以本文明确阐述的材料为准。
54.图11是处理器集群22a的一个实施方案的框图。其它实施方案可以是类似的。在图10的实施方案中,处理器集群22a包括耦合到最后一级高速缓存(llc)72的一个或多个处理器70。llc 72可包含接口电路以介接到网络交换机32和34以根据需要在cpu网络和i/o网络上传输事务。
55.处理器70可包括被配置为执行在由处理器70实施的指令集架构中定义的指令的任何电路和/或微码。处理器70可具有任何微架构实施方案、性能和功率特性等。例如,处理器可按顺序执行、乱序执行、超标量、超流水线等。
56.处理器70内的llc 72和任何高速缓存可具有任何容量和配置,例如设置关联、直接映射或完全关联。高速缓存块大小可以是任何期望的大小(例如,32字节、64字节、128字节等)。高速缓存块可以是llc 70中的分配和解除分配的单元。另外,在此实施方案中,高速缓存块可以是维持相干性的单元。在一些情况下,高速缓存块也可称为高速缓存线。在实施
方案中,分布式的、基于目录的相干性方案可用系统中的每个存储器控制器26处的相干性点来实施,其中相干性点应用于在存储器控制器处映射到的存储器地址。目录可跟踪高速缓存在任何相干代理中的高速缓存块的状态。相干性方案能够在可能的多个半导体管芯上扩展到许多存储器控制器。例如,相干性方案可采用以下特征中的一个或多个:用于在相干和存储代理处进行窥探过滤和竞争解析的精确目录;在存储器代理处确定的排序点(访问次序),串行化点在相干代理和存储器代理之间迁移;在请求相干代理时的次级完成(无效确认)集,使用由存储器代理提供的完成计数进行跟踪;通过由存储器代理提供的目录状态在相干代理处处理的填充/窥探和窥探/victim-ack竞争解析;不同的主要/次要共享状态,以辅助竞争解析并将飞行窥探限制到相同的地址/目标;相干代理处对冲突窥探的吸收,以避免死锁而不需要额外的否定确认/冲突/重试消息或动作;串行化最小化(每个访问者一个额外消息延迟以通过冲突链转移所有权);消息最小化(直接在相关代理之间传递消息,并且没有用以处理冲突/竞争的额外消息(例如,没有消息返回存储器代理);存储条件,在因竞争失败时不会过度失效;独占所有权请求,旨在以最小化的数据传送(仅在脏的情况下)和相关高速缓存/目录状态来修改整个高速缓存线;用以处理能够高速缓存的流和不能高速缓存的流(例如,3跳和4跳协议)的不同的窥探返回和窥探转发消息类型。可在2020年9月11日提交的美国临时专利申请第63/077,371号中找到另外的细节。本专利申请以全文引用的方式并入本文中。如果任何并入的材料与本文明确阐述的材料发生冲突,则以本文明确阐述的材料为准。
57.图12是示出虚拟信道和业务类型以及图5至图8中所展示的网络的一对表80和82,其中该对表用于一个实施方案。如表80所展示,虚拟信道可包括批量虚拟信道、低延迟(llt)虚拟信道、实时(r)t虚拟信道和非dram消息的虚拟信道(vcp)。批量虚拟信道可以是用于存储器访问的默认虚拟信道。例如,批量虚拟信道可接收比llt和rt虚拟信道更低质量的服务。llt虚拟信道可用于高性能操作需要低延迟的存储器事务。rt虚拟信道可用于具有用于正确操作(例如,视频流)的延迟和/或带宽要求的存储器事务。vcp信道可用于分离未指向存储器的业务,以防止干扰存储器事务。
58.在实施方案中,可以在所有三个网络(cpu、i/o和松弛次序)上支持批量和llt虚拟信道。rt虚拟信道可能在i/o网络上受支持,但在cpu或松弛次序网络上可能不受支持。类似地,vcp虚拟信道可能在i/o网络上受支持,但在cpu或松弛次序网络上可能不受支持。在实施方案中,vcp虚拟信道可仅针对以该网络上的网络交换机为目标的事务(例如,针对配置)而在cpu和松弛次序网络上受支持,并且因此可能在正常操作期间不被使用。因此,如表80示出,不同网络可支持不同数目的虚拟信道。
59.表82示出了各种业务类型以及哪些网络承载该业务类型。业务类型可包括相干存储器业务、非相干存储器业务、实时(rt)存储器业务和vcp(非存储器)业务。cpu和i/o网络都可以承载相干业务。在实施方案中,由处理器集群22a至22b发起的相干存储器业务可承载在cpu网络上,而i/o网络可承载由i/o集群24a至24d发起的相干存储器业务。非相干存储器业务可承载在松弛次序网络上,并且rt和vcp业务可承载在i/o网络上。
60.图13是说明在网络上发起事务的方法的一个实施方案的流程图。在一个实施方案中,代理可生成待传输的事务(框90)。事务将在多个物理和逻辑独立的网络中的一个网络上传输。根据第一拓扑来构造多个物理和逻辑独立的网络中的第一网络,并且根据与第一
拓扑不同的第二拓扑来构造多个物理和逻辑独立的网络中的第二网络。基于事务的类型来选择多个物理和逻辑独立的网络中的用于在其上传输事务的一个网络(框92)。例如,处理器集群22a至22b可在cpu网络上传输相干存储器业务,并且在i/o网络上传输pio业务。在实施方案中,代理可基于事务的除类型之外的一个或多个属性而选择虚拟信道,该虚拟信道是在多个物理和逻辑独立的网络中的所选网络上受支持的多个虚拟信道中的虚拟信道(框94)。例如,cpu可选择用于存储器事务的子集的llt虚拟信道(例如,作为高速缓存未命中的最老存储器事务,或者高速缓存未命中的数目达到阈值数目,此后可选择批量信道)。gpu可基于需要数据的紧急性而在llt和批量虚拟信道之间进行选择。视频设备可根据需要使用rt虚拟信道(例如,显示控制器可在rt虚拟信道上发出帧数据读取)。可选择用于不是存储器事务的事务的vcp虚拟信道。代理可在所选网络和虚拟信道上传输事务分组。在实施方案中,不同虚拟信道中的事务分组可采用不同路径通过网络。在实施方案中,事务分组可基于事务分组的类型(例如,请求与响应)而采用不同路径。在实施方案中,不同虚拟信道和不同类型的事务都可以支持不同路径。其它实施方案可采用事务分组的一个或多个额外属性来确定这些分组通过网络的路径。以另一种方式来看,形成网络的网络交换机可基于虚拟信道、类型或任何其它属性来路由不同的分组。不同的路径可指在网络交换机之间穿过至少一个未在另一路径上穿过的段,即使使用不同路径的事务分组正从同一源行进到同一目的地。使用不同的路径可实现网络中的负载平衡和/或事务延迟减小。
61.计算机系统
62.接下来转向图14,其展示了系统700的一个实施方案的框图。在例示的实施方案中,系统700包括耦合到一个或多个外围设备704和外部存储器702的芯片上系统(soc)20的至少一个实例。提供了电源(pmu)708,其向soc 10供应供电电压以及向存储器702和/或外围设备154供应一个或多个供电电压。在一些实施方案中,可包括soc 20的多于一个实例(并且也可包括多于一个存储器702)。在实施方案中,存储器702可包括图5中所示出的存储器30a至30d。
63.根据系统700的类型,外围设备704可包括任何期望的电路。例如,在一个实施方案中,系统704可以是移动设备(例如,个人数字助理(pda)、智能电话等),并且外围设备704可包括用于各种类型的无线通信的设备,诸如wi-fi、蓝牙、蜂窝、全球定位系统等。外围设备704还可包括额外存储装置,该额外存储装置包括ram存储装置、固态存储装置或磁盘存储装置。外围设备704可包括用户接口设备,诸如显示屏,其包括触摸显示屏或多触摸显示屏、键盘或其它输入设备、麦克风、扬声器等。在其它实施方案中,系统700可为任何类型的计算系统(例如,台式个人计算机、膝上型电脑、工作站、网络机顶盒等)。
64.外部存储器702可包括任何类型的存储器。例如,外部存储器702可为sram、动态ram(dram)(诸如同步dram(sdram))、双倍数据速率(ddr、ddr2、ddr3等)sdram、rambus dram、低功率版本的ddr dram(例如,lpddr、mddr等)等等。外部存储器702可包括存储器设备可被安装到的一个或多个存储器模块,诸如单列直插存储器模块(simm)、双列直插存储器模块(dimm)等。替代地,外部存储器702可包括以芯片上芯片或封装上封装具体实施被安装在soc 20上的一个或多个存储器设备。
65.如图所示,系统700被展示为具有在广泛领域中的应用。例如,系统700可用作台式计算机710、膝上型计算机720、平板电脑730、蜂窝或移动电话740或电视750(或耦合到电视
的机顶盒)的芯片、电路、部件等的一部分。还示出了智能手表和健康监测设备760。在一些实施方案中,智能手表可包括各种通用计算相关功能。例如,智能手表可提供对电子邮件、手机服务、用户日历等的访问。在各种实施方案中,健康监测设备可以是专用医疗设备或以其他方式包括专用的健康相关功能。例如,健康监测设备可监测用户的生命体征、跟踪用户与其他用户的接近度以用于流行病学社交距离的目的、联系人跟踪、在发生健康危机的情况下向紧急服务部门提供通信等。在各种实施方案中,上述智能手表可包括或可不包括一些或任何健康监测相关功能。还设想了其他可穿戴设备,诸如围绕颈部佩戴的设备、可植入人体中的设备、被设计成提供增强和/或虚拟现实体验的眼镜,等等。
66.系统700还可用作基于云的服务770的一部分。例如,先前提及的设备和/或其他设备可访问云端中的计算资源(即,远程定位的硬件和/或软件资源)。更进一步地,系统700可用于家庭的除先前提到的那些设备之外的一个或多个设备中。例如,家用电器可监测和检测值得注意的情况。例如,家中的各种设备(例如,冰箱、冷却系统等)可监测设备的状态,并且在检测到特定事件的情况下向房主(或例如维修机构)提供警报。另选地,恒温器可监测家中的温度,并且可基于由房主对各种情况的反应历史来自动化调整加热/冷却系统。图14中还示出了系统700对各种交通运输方式的应用。例如,系统700可用于飞机、火车、公共汽车、出租用汽车、私人汽车、从私人船只到游轮的水运船、(用于出租或私有的)小型摩托车等的控制和/或娱乐系统。在各种情况下,系统700可用于提供自动化引导(例如,自驾驶车辆)、一般系统控制等。这些任何许多其他实施方案都是可能的并且被设想到的。需注意,图14中所示出的设备和应用仅为例示性的,并非旨在进行限制。其他设备是可能的并且被设想到的。
67.计算机可读存储介质
68.现在转向图15,其展示了计算机可读存储介质800的一个实施方案的框图。一般来讲,计算机可访问存储介质可包括在使用期间能够被计算机访问以向计算机提供指令和/或数据的任何存储介质。例如,计算机可访问存储介质可包括诸如磁性或光学介质的存储介质,例如,盘(固定或可拆卸)、带、cd-rom、dvd-rom、cd-r、cd-rw、dvd-r、dvd-rw或蓝光。存储介质还可包括易失性或非易失性存储器介质,诸如ram(例如,同步动态ram(sdram)、rambus dram(rdram)、静态ram(sram)等)、rom或闪存存储器。存储介质可被物理地包括在存储介质将指令/数据提供至其的计算机内。另选地,存储介质可连接至计算机。例如,存储介质可通过网络或无线链路诸如网络附接存储装置而被连接至计算机。存储介质可通过外围接口诸如通用串行总线(usb)而被连接。通常,计算机可访问存储介质800可以非暂态方式存储数据,其中非暂态在该上下文中可指不通过信号传输指令/数据。例如,非暂态存储装置可为易失性的(并且响应于断电而可能会丢失所存储的指令/数据)或为非易失性的。
69.图15中的计算机可访问存储介质800可存储代表soc 20的数据库804。通常,数据库804可以是可以由程序读取并且直接或间接使用以制造包括soc 20的硬件的数据库。例如,数据库可以是诸如verilog或vhdl的高级设计语言(hdl)中硬件功能的行为级别描述或寄存器传送级别(rtl)描述。可通过合成工具读取该描述,合成工具可合成该描述以产生包括来自合成库的门电路列表的网表。网表包括一组门电路,其还表示包括soc 20的硬件的功能。然后可放置并路由网表,以产生用于描述要应用到掩模的几何形状的数据集。然后可以在各种半导体制造步骤中使用掩模以产生对应于soc 20的半导体电路。替代地,根据需
要,计算机可访问存储介质800上的数据库804可以是网表(具有或不具有合成库)或数据集。
70.虽然计算机可访问存储介质800存储soc 10的表示,但是其它实施方案可根据需要承载soc 20的任何部分的表示,包括图5中所展示的部件的任何子集。数据库804可表示上述任何部分。
71.在实施方案中,一种系统包括多个处理器集群、多个存储器控制器、多个图形处理单元、多个代理,和耦合到多个处理器集群、多个图形处理单元、多个存储器控制器和多个代理的多个网络交换机。给定处理器集群包括一个或多个处理器。存储器控制器被配置为控制对存储器设备的访问。多个网络交换机的第一子集互连以在多个处理器集群和多个存储器控制器之间形成中央处理单元(cpu)网络。多个网络交换机的第二子集互连以在多个处理器集群、多个代理和多个存储器控制器之间形成输入/输出(i/o)网络。多个网络交换机的第三子集互连以在多个图形处理单元、多个代理中的所选代理和多个存储器控制器之间形成松弛次序网络。cpu网络、i/o网络和松弛次序网络彼此独立。cpu网络和i/o网络是相干的。与cpu网络和i/o网络相比,松弛次序网络是非相干的并且具有减少的排序约束。在实施方案中,cpu网络、i/o网络和松弛次序网络中的至少一者具有数个物理信道,数目与cpu网络、i/o网络和松弛次序网络中的另一者上的物理信道数目不同。在实施方案中,cpu网络是环形网络。在实施方案中,i/o网络是环形网络。在实施方案中,松弛次序网络是网状网络。在实施方案中,多个代理中的第一代理包括包括多个外围设备的i/o集群。在实施方案中,i/o集群进一步包括耦合到多个外围设备并且进一步耦合到第二子集中的第一网络交换机的桥接件。在实施方案中,系统进一步包括网络接口电路,该网络接口电路被配置为将来自给定代理的通信转换为用于cpu网络、i/o网络和松弛次序网络的给定网络的通信,其中网络接口电路耦合到给定网络中的多个网络交换机中的一个网络交换机。
72.在实施方案中,芯片上系统(soc)包括其上形成有电路的半导体管芯。该电路包括多个代理和耦合到多个代理的多个网络交换机。多个网络交换机互连以形成多个物理和逻辑独立的网络。根据第一拓扑来构造多个物理和逻辑独立的网络中的第一网络,并且根据与第一拓扑不同的第二拓扑来构造多个物理和逻辑独立的网络中的第二网络。在实施方案中,第一拓扑是环形拓扑。在实施方案中,第二拓扑是网状拓扑。在实施方案中,在第一网络上执行相干性。在实施方案中,第二网络是松弛次序网络。在实施方案中,多个物理和逻辑独立的网络中的至少一个网络实施第一数目的物理信道,并且多个物理和逻辑独立的网络中的至少另一个网络实施第二数目的物理信道,其中第一数目与第二数目不同。在实施方案中,第一网络包括一个或多个第一虚拟信道,并且第二网络包括一个或多个第二虚拟信道。一个或多个第一虚拟信道中的至少一个第一虚拟信道与一个或多个第二虚拟信道不同。在实施方案中,soc进一步包括网络接口电路,该网络接口电路被配置为将来自多个代理中的给定代理的通信转换为多个物理和逻辑独立的网络中的给定网络的通信。网络接口电路耦合到给定网络中的多个网络交换机中的一个网络交换机。在实施方案中,多个代理中的第一代理耦合到多个物理和逻辑独立的网络中的至少两个网络。第一代理被配置为生成待传输的事务。第一代理被配置为基于事务的类型来选择多个物理和逻辑独立的网络中的至少两个网络中的用于在其上传输事务的一个网络。在实施方案中,至少两个网络中的一个网络是在其上传输i/o事务的i/o网络。
73.在实施方案中,一种方法包括在耦合到多个物理和逻辑独立的网络的代理中生成事务,其中根据第一拓扑来构造多个物理和逻辑独立的网络中的第一网络,并且根据与第一拓扑不同的第二拓扑来构造多个物理和逻辑独立的网络中的第二网络;并且基于事务的类型而选择多个物理和逻辑独立的网络中的用于在其上传输事务的一个网络。在实施方案中,该方法进一步包括基于事务的除类型之外的一个或多个属性而选择多个物理和逻辑独立的网络中的一个网络上支持的多个虚拟信道中的虚拟信道。
74.本公开包括对“实施方案”或“实施方案”的组(例如,“一些实施方案”或“各种实施方案”)的引用。实施方案是所公开概念的不同具体实施或实例。对“实施方案”、“一个实施方案”、“特定实施方案”等的引用并不一定是指相同的实施方案。设想了大量可能的实施方案,包括具体公开的那些,以及落入本公开的实质或范围内的修改或替代。
75.本公开可讨论可由所公开的实施方案产生的潜在优点。并非所有这些实施方案的具体实施都将必然表现出任何或所有潜在优点。特定实施方式是否实现了优点取决于许多因素,其中一些因素在本公开的范围之外。事实上,存在许多原因导致落入权利要求范围内的具体实施可能不表现出任何所公开的优点中的一些或全部。例如,特定具体实施可包括在本公开的范围之外的其他电路,结合所公开的实施方案中的一个实施方案,该其他电路否定或减弱一个或多个所公开的优点。此外,特定具体实施(例如,具体实施技术或工具)的次优设计执行也可能否定或减弱所公开的优点。即使假设有技术的具体实施,优点的实现仍可取决于其他因素,诸如部署具体实施的环境情况。例如,提供给特定具体实施的输入可防止本公开中解决的一个或多个问题在特定场合发生,结果可能无法实现其解决方案的益处。考虑到本公开外部的可能因素的存在,本文所述的任何潜在优点都不应理解为是为了证明侵权行为而必须满足的权利要求限制。相反,此类潜在优点的识别旨在示出受益于本公开的设计者可用的一种或多种改进类型。永久性地描述此类优点(例如,陈述特定优点“可能出现”)并非旨在传达关于此类优点实际上是否可被实现的疑问,而是认识到此类优点的实现通常取决于附加因素的技术现实。
76.除非另行指出,否则实施方案是非限制性的。也就是说,所公开的实施方案并非旨在限制基于本公开起草的权利要求的范围,即使仅针对特定特征描述单个示例的情况下也是如此。本发明所公开的实施方案旨在为示例性的而非限制性的,而无需在本发明中进行任何相反的陈述。因此本技术意在允许涵盖所公开实施方案的权利要求、以及此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
77.例如,本技术中的特征可以任何合适的方式组合。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地讲,参照所附权利要求,从属权利要求的特征在适当的情况下可与其他从属权利要求的特征组合,包括从属于其他独立权利要求的权利要求。类似地,在适当的情况下,可组合来自相应独立权利要求的特征。
78.因此,虽然所附从属权利要求可撰写成使得每个从属权利要求从属于单个其他权利要求,但也可设想附加从属关系。可设想符合本公开的从属特征的任何组合,并且这些组合可在本专利申请或另一专利申请中受权利要求书保护。简而言之,组合不限于所附权利要求中具体列举的那些。
79.在适当的情况下,还预期以一种格式或法定类型(例如,装置)起草的权利要求旨
在支持另一种格式或法定类型(例如,方法)的对应权利要求。
80.因为本公开是法律文件,所以各种术语和短语可受到管理和司法解释的约束。特此给出公告,以下段落以及贯穿本公开提供的定义将用于确定如何解释基于本公开起草的权利要求。
81.除非上下文另有明确规定,否则对单数形式的项目的引用(即,前面有“一个”、“一种”或“该”的名词或名词短语)旨在表示“一个或多个”。因此,在不伴随上下文的情况下,对权利要求中的“项目”的引用并不排除该项目的附加实例。“多个”项目是指两个或更多个项目的集合。
82.本文使用术语“可以”用于允许的意义上(即,具有潜在可能的,能够的),而不是在强制意义上(即必须)。
83.术语“包含”和“包括”及其形式是开放式的,并且意指“包括但不限于”。
84.当在本公开中相对于选项列表使用术语“或”时,除非上下文另有提供,否则一般将理解为以包含性意义使用。因此,表述“x或y”等同于“x或y,或两者”,因此涵盖1)x但不是y,2)y但不是x,以及3)x和y两者。另一方面,短语诸如“x或y中的任一者,但不是两者都”使得清楚“或”以排他性意义使用。
85.表述“w、x、y或z,或它们的任何组合”或“...w、x、y和z中的至少一者”旨在涵盖涉及最多至该集合中元件总数的单个元件的所有可能性。例如,给定集合[w,x,y,z],这些短语涵盖集合中的任何单个元素(例如,w但不是x、y或z)、任何两个元素(例如,w和x,但不是y或z)、任何三个元素(例如,w、x和y,但不是z)以及所有四个元素。短语“...w、x、y和z中的至少一者”因此是指集合[w,x,y,z]中的至少一个元素,从而涵盖该元素列表中的所有可能的组合。该短语不应被解释为要求存在w的至少一个实例、x的至少一个实例、y的至少一个实例和z的至少一个实例。
[0086]
在本公开中,各种“标签”可先于名词或名词短语。除非上下文另有提供,否则用于特征(例如,“第一电路”、“第二电路”、“特定电路”、“给定电路”等)的不同标签是指特征的不同实例。另外,除非另有说明,否则标签“第一”、“第二”和“第三”在应用于特征时并不暗示任何类型的排序(例如,空间、时间、逻辑等)。
[0087]
短语“基于”或用于描述影响确定的一个或多个因素。此术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于b确定a”。此短语指定b是用于确定a的因素或者b影响a的确定。此短语并不排除a的确定也可基于某个其他因素诸如c。此短语也旨在覆盖a仅基于b来确定的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”是同义的。
[0088]
短语“响应于”和“响应”描述了触发效应的一个或多个因素。该短语不排除附加因素可影响或以其他方式触发效应的可能性,这些因素与指定因素联合使用或独立于指定因素。也就是说,效果可以仅仅响应于这些因素,或者可以响应于指定的因素以及其他未指定的因素。考虑短语“响应于b执行a”。该短语指定b是触发a的执行或触发a的特定结果的因素。该短语不排除执行a也可能响应于某些其他因素,诸如c。该短语也不排除执行a可响应于b和c而联合执行。此短语也旨在覆盖a仅响应于b而执行的实施方案。如本文所用,短语“响应”与短语“至少部分地响应于”是同义的。类似地,短语“响应于”与短语“至少部分地响应于”是同义的。
[0089]
在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被说成“被配置为”执行某个任务,即使该结构当前并非正被操作。因此,被描述或表述为“被配置为”执行某个任务的实体指代用于实施该任务的物理的事物,诸如设备、电路、具有处理器单元的系统和存储有可执行程序指令的存储器等。此短语在本文中不被用于指代无形的事物。
[0090]
在一些情况下,各种单元/电路/部件在本文中可被描述为执行一组任务或操作。应当理解,这些实体“被配置为”执行那些任务/操作,即使没有具体指出。
[0091]
术语“被配置为”并不旨在意指“可配置为”。例如,未编程的fpga不会被认为是“被配置为”执行特定功能。然而,该未编程的fpga可以“可配置为”执行该功能。在适当编程之后,fpga然后可认为“被配置为”执行特定功能。
[0092]
出于基于本公开的美国专利申请的目的,在权利要求中陈述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素不援引35u.s.c.
§
112(f)。如果申请人在基于本公开的美国专利申请的申请过程中想要援引112(f)部分,则其将使用“用于[执行功能]的装置”结构来表述权利要求的要素。
[0093]
在本公开中可描述不同的“电路”。这些电路或“电路”构成硬件,该硬件包括各种类型的电路元件,诸如组合逻辑、时钟存储设备(例如,触发器、寄存器、锁存器等)、有限状态机、存储器(例如,随机存取存储器、嵌入式动态随机存取存储器)、可编程逻辑阵列等。电路可为定制设计的,或取自标准库。在各种实施方式中,电路可以视情况包括数字部件、模拟部件或两者的组合。某些类型的电路可通常被称为“单元”(例如,解码单元、算术逻辑单元(alu)、功能单元、存储器管理单元(mmu)等)。此类单元也指电路或电路。
[0094]
因此,在附图中示出并在本文中描述的所公开的电路/单元/部件和其他元件包括硬件元件,诸如前面段落中描述的那些硬件元件。在许多情况下,硬件元件在特定电路中的内部布置可通过描述该电路的功能来指定。例如,特定的“解码单元”可被描述为执行“处理指令的操作码并将该指令路由到多个功能单元中的一个或多个”的功能,这意味着解码单元“被配置为”执行该功能。对于计算机领域的技术人员而言,该功能规范足以暗示用于电路的一组可能的结构。
[0095]
在各种实施方案中,如前面段落中所讨论的,电路、单元和由它们被配置为实现的功能或操作限定的其他元件,相对于彼此的布置和此类电路/单元/部件以及它们进行交互的方式形成硬件的微架构定义,该硬件最终在集成电路中制造或被编程到fpga中以形成微架构定义的物理具体实施。因此,微架构定义被本领域的技术人员认为是可导出许多物理具体实施的结构,所有这些物理具体实施均落入由微架构定义所描述的更广泛的结构中。即,具有根据本公开提供的微架构定义的技术人员可在没有过度实验的情况下并且利用普通技术人员的应用,通过以硬件描述语言(hdl)诸如verilog或vhdl编码电路/单元/部件的描述来实现该结构。hdl描述常常以可显现为功能性的方式来表达。但是对于本领域的技术人员而言,该hdl描述是用于将电路、单元或部件的结构转换为下一级具体实施细节的方式。此类hdl描述可采用以下形式:行为代码(其通常为不可合成的)、寄存器传输语言(rtl)代码(其与行为代码相比通常为可合成的)、或结构代码(例如,指定逻辑门及其连接性的网
表)。可针对为给定集成电路制造技术设计的单元库来顺序地合成hdl描述,并可出于定时、功率和其他原因而被修改,以获得被传输到工厂以生成掩模并最终产生集成电路的最终的设计数据库。一些硬件电路或其部分也可在示意图编辑器中被定制设计并与合成电路一起被捕获到集成电路设计中。该集成电路可包括晶体管和其它电路元件(例如,无源元件,诸如电容器、电阻器、电感器等),以及晶体管和电路元件之间的互连件。一些实施方案可实现耦接在一起的多个集成电路,以实现硬件电路,和/或可在一些实施方案中使用离散元件。另选地,hdl设计可被合成为可编程逻辑阵列诸如现场可编程门阵列(fpga)并且可在fpga中实现。一组电路的设计与这些电路的后续低级具体实施之间的这种解耦通常导致这样的情形:其中电路或逻辑设计者从来不指定超出对电路被配置为做什么的描述的用于低级具体实施的一组特定结构,因为该过程是在电路实施过程的不同阶段执行的。
[0096]
可使用电路元件的许多不同低级组合来实现电路的相同规格的事实导致该电路的大量等效结构。如所指出的那样,这些低级电路具体实施可根据制造技术、被选择用于制造集成电路的铸造厂、为特定项目提供的单元库等的变化而变化。在许多情况下,通过不同设计工具或方法进行的产生这些不同具体实施的选择可以是任意的。
[0097]
此外,对于给定实施方案,电路的特定功能规范的单个具体实施通常包括大量设备(例如,数百万个晶体管)。因此,该信息的剪切体积使得提供用于实现单个实施方案的低级结构的完整叙述是不切实际的,更不用说大量等同的可能具体实施。为此,本公开描述了使用工业中常用的功能简写的电路的结构。
[0098]
一旦充分了解了上面的公开,许多变型和修改对于本领域的技术人员而言将变得显而易见。本公开旨在使以下权利要求书被阐释为包含所有此类变型和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1