装置组件之间的内存资源共享的通讯协定的制作方法

文档序号:6348151阅读:242来源:国知局
专利名称:装置组件之间的内存资源共享的通讯协定的制作方法
技术领域
本发明有关于装置组件之间的内存资源共享和通讯。
背景技术
现代的计算装置是由许多独立的智能组件所组成,这些组件实现多种各别的功能并且在整体的计算装置内交互作用。例如,应用程序处理器和图像处理器相互作用以提供内容到系统显示器。每一独立的智能组件通常有不同程度的智能和组件特有的本地资源, 例如内存资源。众所周知,由于采用总线架构,从而允许传输计算装置集成电路之间的资料对于内存传输运作,直接内存存取(Direct Memory Access ;DMA)控制器可用于减轻总线的监督和中央处理单元(Central Processor Unit ;CPU)的内存传输运作,当内存传输正在进行时,可让CPU执行其他功能。随着计算装置变得更加复杂和装置内存资源变得更加分散,便期望有在组件之间共享内存资源的有效的通讯方法。

发明内容
在一装置中,例如行动电话,在组件(例如集成电路)之间能够共享内存资源,每一集成电路各自具有其内存资源,这可通过在组件之间提供互连以及构建通过该互连发送以开启内存存取运作的交易单元来实现。该方法也可用于允许装置组件之间一定程度的通讯。根据本发明,提供一种运用需要存取内存映射资源的启动组件的方法,当装置具有(i)多个处理组件和(ii)互连该多个组件的总线,包括通过该总线上的连接,从需要存取内存映射资源的该启动组件朝向具有内存映射资源的该装置的目标组件发送多个交易单元(TU)以建立一通道;该多个TU包括一个或多个配置TU,每一配置TU具有该通道的配置参数;通过该通道,从该启动组件,发送内存存取请求至该目标组件,该内存存取请求TU 具有内存存取请求。根据本发明的另一实施例,提供用于装置的第一组件,该装置中具有多个组件以及具有实体连接到该多个组件中的每一个的总线,包括第一处理器;连接器,用于连接至该总线,使得该第一组件具有实体连接至该总线;该第一处理器可操作成通过该总线上的连接,发送多个交易单元至第二组件,并具有实体连接至该总线,以建立一通道;该第二组件具有处理器与内存,该多个TU包括一个或多个配置TU,每一配置TU具有该通道的配置参数;通过该通道,发送内存存取请求TU至该第二组件,该内存存取请求TU具有内存存取请求。根据本发明的另一实施例,提供一种用于在具有多个处理组件的装置中促进共享内存映射的资源的方法,包括通过互连该装置的该多个组件的总线上的连接,从需要存取内存映射资源的该装置的启动组件朝向具有内存映射资源的该装置的目标组件发送多个交易单元(TU);该多个TU包括一个或多个配置TU,每一配置TU具有该通道的配置参数;通过该通道,从该启动组件发送内存存取请求至该目标组件,该内存存取请求TU具有内存存取请求。根据本发明的另一实施例,提供一种具有多个组件的装置,包括第一组件,具有第一处理器;第二组件,具有第二处理器和内存;总线;该第一组件和该第二组件具有实体连接至该总线;该第一处理器可操作成通过该总线上的连接,发送多个交易单元(TU)至具有实体连接至该总线之第二组件,以建立一通道,该多个TU包括一个或多个配置TU,每一配置TU具有该通道的配置参数;以及通过该通道,发送内存存取请求至该第二组件,该内存存取请求TU具有内存存取请求。


以下图式说明本发明的实施例。图1为本发明的装置,适合运作的示意图;图2为协定堆叠的示意图,可用于图1的装置中;图3为于图1的装置中,内存空间的示意图;图4为图1的部分装置的运作示意图;以及图5至9为于图1的装置中,交易单元通讯的示意图。
具体实施例方式大概来说,装置组件的相互连接可能会以点对点方式和/或作为部分网络。在每一组件中,可能会有一些智能(例如,该组件是CPU或DSP或具有状态机)需要存取内部和外部内存以及输入/输出(input/output ; 10)资源。例如,CPU通过内部总线架构可以发出读取和写入周期,这通常是并行的(例如,在AXI总线架构),以便存取本地内存和IO资源。此外,CPU能对其他外部装置的远端资源发出请求,这些外部装置可能是围绕着不同的内部总线结构(例如0CP)。此处所述之协定是适合于输送内部系统芯片(SoC)总线交易, 用于存取外部装置的远端内存映射的资源,外部装置可能有不同的内部SoC总线架构。该协定定义了交易单元(TU),交易单元通过点对点的实体链接而可被封装在传输层中。如图1所示,一个示范装置10 (是一个手机)可能有第一处理组件20,是一应用程序处理器(application processor ;AP)集成电路(integrated circuit ;IC),该第一处理组件20连接到第二个处理组件50,该第二个处理组件50是为一通过点对点总线60的图像多媒体IC (graphics multimedia IC ;GMIC)。每一组件都有一连接器23、53,允许连接到总线上。总线60可为连接组件之间的并列或串列通道。组件20有一控制总线60的总线控制器22,以及一显示控制器M和一摄像机控制器28。一个点对点连线沈连接该显示控制器M至显示器30,而第二点对点连线32连接该摄像机控制器28至摄像机;34。组件20 也具有和系统内存38连接的点对点连线36以及和基频/射频集成电路(baseband/radio frequency integrated circuit ;BB/RFIC) 42 连接的点对点连接 40。组件50具有一控制总线60的总线控制器52。组件50也具有和本地内存58连接的点对点连接。例如,通过总线60之通讯可通过在本技术领域中容易理解的分层开放系统互连参考模型(0SI模型),、或通过类似的网络或点对点互连而达成。例如,可实施五层结构以允许启动组件(即组件20或50的其中之一)直接存取目标组件(组件20或50的另一者)的内存资源。该分层架构如图2所示,其中L1-L4所标示的层大致对应该OSI模型之分层1至4层所提供的功能性。对内存资源所需的远端存取可以通过构建一层L5作为处理器介面模拟 (processor interface emulation ;PIE)协定层来实现,。相较于OSI模型,在本说明书之层L5可以假设为对应于OSI模型的层L4之上所实现的硬件或软件的功能性。类似于OSI模型,每一连续的层提供一介面,以处理位在该接口的上方和下方以阶层排列的层,以允许在层与层之间传递数据和命令。该PIE协定层L5被设计成一个独立的封装层,能与传输层L4通讯,以实现交易。通过呼叫传输层L4功能以及传递数据至传输层L4,该PIE协定将启动一交易。回应于此请求,传输层L4使用网络层L3所提供之设备, 网络层L3依次接着利用较低层所提供的设备。由图1可知,如果组件20的子组件(例如显示控制器24)希望存取在组件50之本地内存58中的内存区块,组件20可以启动内存存取运作-因此可称为启动组件,同时组件50可称为目标组件。假设在组件20里的内部总线结构为AXI,则来自显示控制器的请求将会在组件20内显示为AXI总线交易(即,作为按照AXI总线协定的内存存取请求)。在组件20内的PIE层L5 (可以是总线控制器22的一部分)会接收此AXI总线请求并转换为 PIE交易,然后使用层L4-L1通过总线60来传输。组件50内相应的PIE层L5会解译到达的PIE交易,并将其转换成其自身内部的总线请求(即作为按照其自身的总线协定的内存存取请求)。因此,如果组件50是围绕着OCP总线结构设计,而不是AXI总线结构,则组件 50内之该PIE层L5将从内存存取请求撷取数值并使用这些数值用以制订OCP总线请求。 以这种方式,通过在组件20上面执行的应用程序,目标组件50之内存区块将有效地被视为启动组件20之内存地址空间的区块。同样地,由于组件50作为启动端,系统内存38中的内存区块可以被视为组件50内之内存区块。如熟习本技术领域的技术人员所了解的,每一内存区块通常是一内存的逻辑区块,其映射至实体内存位置。熟习本技术领域的技术人员还会进一步了解到的是,内存资源在组件中不必本身为内存,而可以是任何数据存储设备(例如寄存器)。图3描述了一例子,说明内存映射使用组件20作为启动组件。具体来说,内存映射区段(aperture) 58A于组件50的本地地址空间内映射到PIE内存地址空间70内的区段 70A。然后,该区段70A在PIE内存地址空间映射到组件20之系统内存38内的区段38A。 PIE内存地址空间70表示一虚拟地址空间,有利于启动内存地址空间和目标内存地址空间之间的映像。PIE内存空间70是一抽象概念,用于辅助内存映射,而且不对应任何实体内存位置。启动组件20和目标组件50两者与PIE内存空间70交互作用,经由PIE区段70A,以完成从该目标组件之内存区段58A到启动组件之内存区段38A之映射。因此,在组件50之内存58中,一个指定的地址可能在组件20之内存38中有不同的地址,以及又在PIE内存空间70有一不同的地址。可分别在AP 20和GMIC 50采用配置寄存器90和100,以任何适当方式,达到让内存能映射至PIE内存空间。因此,很明显的可以了解,于该启动组件及目标组件之间的地址转换(address translation)或内存映射均可通过PIE内存空间70达成,而在该启动组件的内存38内之本地地址与该目标组件的内存58内的远端地址之间相互转换。在启动(即本地)、目标(即远程)或PIE地址空间中通过地址或大小所定义的内存区块可以被考虑作为内存区段。每一区段代表一连续的内存地址区块,从一组件映射到
另一组件。请参照图1所示,装置10运用协定,通过点对点总线60,以建立AP 20与GMIC 50 之间的连接。然后通过该连接,该PIE协定可被用来建立一个或多个通道,而每一通道具有一个或多个区段。更具体地说,通过范例,请参照图4,可于AP 20与GMIC 50之间经由网络协定的层Li、L2和L3通过该点对点总线,以建立三个连接80A、80B、80C。层L4可以建立一端口,以终止在各组件的各连接。具体来说,端口 82A、84A可分别终止AP 20与GMIC 50 的连接80A,同时,端口 82B、84B可终止连接80B,端口 82C、84C可终止连接80C。这些网络连接中的每一连接可支援不同的通讯类别(traffic class)(即每一连接可能有不同的连接参数,例如时延)。然后,AP 20之该PIE协定可将每一节点(86A、86B、86C)分别与每一端口(82A、82B、82C)相关联。同样地,GMIC 50的PIE协定GMIC 50可将每一节点(88A、 88B、88C)分别与每一端口(84A、84B、84C)相关联。为了通过一链接,使本地组件能存取远程组件之内存资源,本地组件之一节点成为一启动端节点而远程组件之一节点成为一目标节点。因此,节点(如节点86A)可为启动端节点、目标节点(如节点86B)或启动与目标节点两者(如节点86C)。启动端节点可通过连接发送请求到目标节点,以建立一通道,而且可于该通道内视需要地建立一个或多个区段。具体来说,以下将做更充分地说明,该启动端节点(如节点86C)可以把交易单元(TU)通过连接与配置参数传送到目标节点(88C),以设立一通道(通道90)和区段。通过TU所接收到的该配置参数存储在配置寄存器92、94里。 因此,指定的通道具有与其相关联的特定启动端节点(如节点AP 20的86C)和特定目标节点(如GMIC 50的88C)。此外,每一连接最多可支持两个通道,每一方向具有一通道,使得在单一连接中,一节点(例如,节点86c)在一通道上可以作为启动端节点而在第二个通道上作为目标节点。如果单一通道上定义有多个区段,则每一区段将共享相同的通道参数。如上文所建议的,组件之间的通讯的达成可通过交易单元(TU)的使用,将该PIE 协定层L5传递至传输层L4,以达到从启动组件发送到目标组件。在一般情况下,通过实体层传送之前,在L5的协定数据单元(PDU)可被称为信息,它可被分成多个段(即L4 PDU)、 数据包(即L3 PDU)和帧(即L2 PDU)。PIE信息是由交易单元组成。大致描绘合适的交易单元格式,如图5所示。该交易单元110之第一字节(byte)分为类型112栏位,用于存储TU,和一标签114栏位,用于存储交易代码。交易单元110的其余部分是由可能存在的可选信息组成并取决于交易单元110之类型112而变化。例如,如果TU 110为延伸类型 (extended type),则一个可选的交易单元110第二字节可以代表一 Ext_Type栏位116,用于存储TU。该类型栏位112用于识别交易单元110的目的。支持的交易单元类型可能包括如表ι所示。表 权利要求
1.一种运用需要存取内存映射资源的启动组件的方法,当装置具有(i)多个处理组件和(ii)互连该多个组件的总线时,包括通过在该总线上的连接,从需要存取内存映射资源的该启动组件朝向具有内存映射资源的装置的目标组件发送多个交易单元(TU),以建立一通道;该多个TU包括一个或多个配置TU,每一配置TU具有用于该通道的配置参数;以及从该启动组件通过该通道朝该目标组件发送内存存取请求,该内存存取请求TU具有内存存取请求。
2.如权利要求1所述的方法,还包括根据该启动组件的总线协定从该启动组件的子组件接收子组件内存存取请求,以及从该子组件内存存取请求制定该内存存取请求TU。
3.如权利要求1所述的方法,还包括在每一TU的类型栏位中指示每一 TU的交易类型。
4.如权利要求3所述的方法,其中,该类型栏位指示为读取请求。
5.如权利要求4所述的方法,其中,该读取请求为直接读取请求和间接读取请求的其中之一。
6.如权利要求5所述的方法,其中,该读取请求为内存读取请求和配置参数读取请求的其中之一。
7.如权利要求3所述的方法,其中,该类型栏位指示为写入请求。
8.如权利要求7所述的方法,其中,该写入请求为直接写入请求和间接写入请求的其中之一。
9.如权利要求8所述的方法,其中,该写入请求为内存写入请求和配置参数写入请求的其中之一。
10.如权利要求3所述的方法,还包括在每一该TU的标签栏位中的标签。
11.如权利要求10所述的方法,还包括监督该启动组件,用于具有等效于该标签的标签的该通道上的回应TU。
12.如权利要求11所述的方法,其中,该内存请求TU指示为写入请求,以及该回应TU 的类型栏位指示为认可。
13.如权利要求11所述的方法,其中,该内存请求TU指示为读取请求,以及该回应TU 的类型栏位指示为读取回应。
14.如权利要求3所述的方法,还包括每一指定TU为配置TU或内存存取请求,在该指定TU的长度字段中包含该指定TU的有效负载的长度。
15.如权利要求2所述的方法,其中,从该子组件内存存取请求制定该内存存取请求TU 包括在本地地址空间与介面内存地址空间之间的映像,以及其中发送一个或多个配置TU 包括发送具有配置值的配置TU,以允许在该介面内存地址空间与该目标组件的本地地址空间之间的映像。
16.如权利要求15所述的方法,其中,发送一个或多个配置TU包括发送配置TU,该配置TU具有表示为介面地址空间的启始地址的配置值以及表示为长度的配置值。
17.如权利要求16所述的方法,其中,该启始内存地址为间接读取请求或间接写入请求的其中之一的启始内存地址,以及该长度为间接读取请求或间接写入请求的该其中之一的内存区段的长度。
18.如权利要求16所述的方法,其中,该启始内存地址为用于该接口内存地址空间中的内存区段的启始内存地址,以用于直接写入和读取请求,以及该长度为该区段的长度。
19.如权利要求1所述的法,其中,该通道是第一通道而该多个配置TU是第一多个配置TU以建立该第一通道,该第一通道用于从该启动组件朝该目标组件发送内存存取请求, 以及还包括通过该连接发送多个TU以建立第二通道该第二通道用于从该目标组件朝该启动组件发送内存存取请求。
20.用于一装置的第一组件,该装置具有多个组件和具有实体连接至该多个组件的每一组件的总线,该第一组件包括第一处理器;连接器,连接至该总线,使得该第一组件具有实体连接至该总线;该第一处理器操作为通过该总线上的连接,发送多个交易单元(TU)至具有实体连接到该总线的第二组件, 以建立一通道,一类型的该第二组件具有处理器与内存,该多个TU包括一个或多个配置 TU,,每一配置TU具有用于该通道的配置参数;以及通过该通道,发送内存存取请求TU至该第二组件,该内存存取请求TU具有内存存取请求。
21.如权利要求20所述的第一组件,其中,该第一处理器也可根据该第一组件的内部总线协定将内存存取请求转换到内存存取请求TU。
22.如权利要求21所述的第一组件,其中,该第一处理器根据该第一组件的内部总线协定将内存存取请求转换到内存存取请求TU时,在该第一组件的本地地址空间与介面内存地址空间之间映射,以及其中该第一处理器在发送一个或多个配置TU时,也可操作成发送具有配置值的配置TU以允许该介面内存地址空间与在第二组件的本地地址空间之间映射。
23.如权利要求22所述的第一组件,其中,该第一处理器还可操作成建立具有类型栏位的每一该配置TU,该类型栏位指示每一该配置TU为一配置TU ;以及建立具有类型栏位的该内存存取请求TU,该类型栏位指示该内存存取请求TU为一内存存取请求TU。
24.一种用于在具有多个处理组件的装置中促进内存映射资源共享的方法,包括通过互连该装置的该多个组件的总线上的连接,从需要存取内存映射资源的该装置的启动组件朝向具有内存映射资源的该装置的目标组件发送多个交易单元(TU),以建立一通道;该多个TU包括一个或多个配置TU,每一配置TU具有该通道的配置参数;通过该通道,从该启动组件发送内存存取请求至该目标组件,该内存存取请求TU具有内存存取请求。
25.如权利要求M所述的方法,还包括根据该启动组件的总线协定,从该启动组件的子组件接收子组件内存存取请求,以及从该子组件内存存取请求制定该内存存取请求TU。
26.如权利要求25所述的方法还包括接收于该目标组件的该内存存取请求,以及从该内存存取请求TU撷取数值,根据该目标组件的总线协定,以制定本地内存存取请求。
27.如权利要求25所述的方法还包括回应于接收该内存存取请求TU,从该目标组件发送回应TU至该启动组件。
28.一种具有多个组件的装置,包括第一组件,具有第一处理器; 第二组件,具有第二处理器与内存; 总线;该第一组件与该第二组件,具有实体连接至该总线; 该第一处理器可操作成通过该总线上的连接,发送多个交易单元(TU)至该第二组件,以建立一通道,该多个 TU包括一个或多个配置TU,每一配置TU具有用于该通道的配置参数;通过该通道,发送内存存取请求TU至该第二组件,该内存存取请求TU具有内存存取请求。
全文摘要
在一装置中(例如行动电话),在例如集成电路的组件之间的内存资源能够共享,其中每个集成电路具有其内存资源。这可通过在组件之间提供互连以及构建通过该互连发送以开启内存存取运作的交易单元来实现。该方法也可用来允许用于装置组件之间一定程度的通讯。
文档编号G06F12/00GK102292714SQ201080005029
公开日2011年12月21日 申请日期2010年1月20日 优先权日2009年1月21日
发明者F·普尔比加拉齐, M·阿列克西克 申请人:Ati技术无限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1