无端口通用设备(软件管理通用设备)的制作方法

文档序号:6495108阅读:161来源:国知局
无端口通用设备(软件管理通用设备)的制作方法
【专利摘要】本申请公开了用于在无需集成的管理器硬件的情况下,使用无端口通用设备(NGD)或者其它无端口硬件来耦接处理设备,以便访问串行数据总线上的组件的系统。使用NGD,处理设备可以使用串行数据总线上的可用的未使用带宽,与耦接到串行数据总线的组件(所述组件包括具有管理器硬件的处理设备)进行通信。公开了各种变更和实施例。
【专利说明】无端口通用设备(软件管理通用设备)
[0001]相关申请的交叉引用
[0002]本申请要求享有于2011年4月29日提交的、律师案卷号N0.111475P1、标题为“INN0N-P0RTED GENERIC DEVICE (SOFTWARE MANAGED GENERIC DEVICE) ” 的美国临时专利申请N0.61/481,047的优先权,为了全部目的,通过引用的方式将该美国临时专利申请的全部内容并入本文。
【背景技术】
[0003]在移动设备(例如,移动电话、平板计算机或者其它个人电子设备)中可以使用诸如串行低功耗芯片间媒体总线(SUMbus)之类的串行数据总线,使得在单个数据总线上可以进行音频、数据、总线和设备控制。数据总线上的组件与一个或多个“端口”相关联,这些“端口”具有用于访问数据总线上的数据信道的总线的逻辑地址。处理设备可以使用管理器硬件来启动数据总线并且执行数据总线管理(例如,设置端口之间的数据信道)。但是,这种设置限制了其它处理设备与数据总线上的组件进行通信的能力。

【发明内容】

[0004]本发明的实施例提供了在无需集成的管理器硬件的情况下,使用无端口通用设备(NGD)或者其它无端口硬件将处理设备耦接到串行数据总线的系统。使用NGD,处理设备可以使用串行数据总线上的可用的未使用带宽,与耦接到串行数据总线的组件(所述组件包括具有管理器硬件的处理设备)进行通信。
[0005]根据本发明,第一示例性系统包括数据总线,所述数据总线被配置为提供:通过多个端口进行数据通信、以及消息能力。该系统还包括:管理器,所述与所述数据总线相耦接并且被配置为管理所述数据总线;第一处理设备,所述第一处理设备与所述管理器相耦接;第二处理设备;以及通信设备,所述通信设备与所述第二处理设备和所述数据总线相耦接。所述通信设备不包括所述数据总线的端口,所述通信设备被配置为:使用所述数据总线的所述消息能力,来传输来自所述第二处理设备的信息。
[0006]第一示例性系统可以包括以下其它特征中的一个或多个。所述通信设备被配置为:使用所述数据总线的所述消息能力,与所述第一处理设备进行通信。至少一个组件与所述数据总线相耦接。所述通信设备被配置为:使用所述数据总线的所述消息能力,与所述至少一个组件进行通信。所述通信设备被配置为:使用所述数据总线的所述消息能力,写入所述至少一个组件的寄存器。所述通信设备被配置为:使用所述数据总线的所述消息能力,从所述至少一个组件的寄存器进行读取。所述通信设备被配置为:使用所述数据总线的所述消息能力,向所述管理器传输针对数据信道的请求。所述数据总线包括SUMbus。所述通信设备包括无端口通用设备。所述通信设备包括第一通信设备,所述系统还包括耦接在所述数据总线与第三处理设备之间的第二通信设备。所述第二通信设备被配置为使用所述数据总线的所述消息能力,传输来自所述第三处理设备的信息。
[0007]根据本发明,第一示例性方法包括:接收要求访问与数据总线相耦接的组件的请求;确定访问所述数据总线需要对所述数据总线的数据信道进行分配;使用不具有所述数据总线上的端口的通信设备来传输数据的第一集合。所述数据的第一集合是使用所述数据总线的消息传送能力来传输的。该方法还包括:分配所述数据总线的所述数据信道;向所述组件传输数据的第二集合。所述数据的第二集合是使用所述数据总线的所述数据信道来传输的。
[0008]第一示例性方法可以包括以下其它特征中的一个或多个。所述数据总线包括SLIMbus。所述数据的第一集合包括指示所述组件的标识的数据。所述数据的第一集合包括指示被请求的带宽的数据。从所述组件接收数据的第三集合,所述数据的第三集合是使用所述数据总线的所述数据信道来传输的。向请求实体传输所述数据的第三集合。向请求实体传输确认。所述通信设备是无端口通用设备。
[0009]根据本发明,第二示例性方法包括:从请求实体接收请求。该请求要求访问与数据总线相耦接的组件。该方法还包括:使用不具有所述数据总线上的端口的通信设备,向所述组件传输数据的第一集合。所述数据的第一集合是使用所述数据总线的消息传送能力来传输的。该方法还包括:使用所述通信设备,从所述组件接收数据的第二集合;向所述请求实体传输消息。所述消息是至少部分地基于所述数据的第二集合。
[0010]第二示例性方法可以包括以下其它特征中的一个或多个特征。所述数据的第一集合包括:指示向所述组件的寄存器写入的值的信息。所述数据的第二集合包括:指示所述组件的寄存器的值的信息。所述通信设备包括无端口通用设备。
[0011]根据本发明,第二示例性系统可以包括数据总线,所述数据总线被配置为提供:通过多个端口进行数据通信、以及消息能力。该系统还包括:管理器,所述管理器与所述数据总线相耦接并且被配置为管理所述数据总线;第一处理设备,所述第一处理设备与第一通信设备相耦接;第二处理设备,所述第二处理设备与第二通信设备相耦接。所述第一通信设备和所述第二通信设备与所述数据总线相耦接。所述第一通信设备和所述第二通信设备不包括所述数据总线的端口。所述第一通信设备被配置为:使用所述数据总线的所述消息能力,通过所述第二通信设备向所述第二处理设备传输来自所述第一处理设备的信息。
[0012]第二示例性系统可以包括以下其它特征中的一个或多个特征。与所述数据总线相耦接的至少一个组件被配置为:使用所述数据总线的所述消息能力,从所述第一通信设备接收数据。所述第一通信设备被配置为:使用所述数据总线的所述消息能力,写入所述至少一个组件的寄存器。所述第一通信设备被配置为:使用所述数据总线的所述消息能力,从所述至少一个组件的寄存器进行读取。所述第一通信设备被配置为:使用所述数据总线的所述消息能力,向所述管理器传输针对数据信道的请求。所述第一通信设备和所述第二通信设备是无端口通用设备。
[0013]根据本发明,一种示例性装置包括:用于接收要求访问与数据总线相耦接的组件的请求的模块;用于确定访问所述数据总线需要对所述数据总线的数据信道进行分配的模块;用于使用不具有所述数据总线上的端口的通信设备来传输数据的第一集合的模块。所述数据的第一集合是使用所述数据总线的消息传送能力来传输的。该装置还包括:用于分配所述数据总线的所述数据信道的模块;用于向所述组件传输数据的第二集合的模块。所述数据的第二集合是使用所述数据总线的所述数据信道来传输的。
[0014]该示例性装置可以包括以下其它特征中的一个或多个。所述数据总线包括SLIMbus。所述用于通信的模块被配置为:将指示所述组件的标识的数据包括到所述数据的第一集合中。所述通信单元被配置为:将指示被请求的带宽的数据包括到所述数据的第一集合中。用于从所述组件接收数据的第三集合的模块,其中所述数据的第三集合是使用所述数据总线的所述数据信道来传输的。用于向请求实体传输所述数据的第三集合的模块。用于向请求实体传输确认的模块。所述通信设备包括无端口通用设备。
[0015]根据本发明,第一示例性非临时性计算机可读介质包括被配置为使处理器执行以下操作的指令:接收要求访问与数据总线相耦接的组件的请求;确定访问所述数据总线需要对所述数据总线的数据信道进行分配;使用不具有所述数据总线上的端口的通信设备来传输数据的第一集合。所述数据的第一集合是使用所述数据总线的消息传送能力来传输的。所述指令还被配置为使所述处理器分配所述数据总线的所述数据信道;向所述组件传输数据的第二集合。所述数据的第二集合是使用所述数据总线的所述数据信道来传输的。
[0016]所述第一示例性非临时性计算机可读介质可以包括以下其它特征中的一个或多个。所述数据总线包括SUMbus。所述指令被配置为使所述处理器将指示所述组件的标识的数据包括到所述数据的第一集合中。所述指令还被配置为使所述处理器将指示被请求的带宽的数据包括到所述数据的第一集合中。被配置为使所述处理器能够通过所述数据总线的所述数据信道,从所述组件接收数据的第三集合的指令。被配置为使所述处理器向请求实体传输所述数据的第三集合的指令。被配置为使所述处理器向请求实体传输确认的指令。所述通信设备是无端口通用设备。
[0017]根据本发明,第二非临时性计算机可读介质包括被配置为使处理器从请求实体接收请求的指令。所述请求要求访问与数据总线相耦接的组件。所述指令还被配置为使所述处理器执行下面操作:使用不具有所述数据总线上的端口的通信设备,向所述组件传输数据的第一集合,其中所述数据的第一集合是使用所述数据总线的消息传送能力来进行传输的;使用所述通信设备,从所述组件接收数据的第二集合;向所述请求实体传输消息。所述消息是至少部分地基于所述数据的第二集合。
[0018]所述第二示例性非临时性计算机可读介质可以包括以下其它特征中的一个或多个。所述指令被配置为使所述处理器将指示向所述组件的寄存器写入的值的信息,包括到所述数据的第一集合中。所述指令被配置为使所述处理器根据所述数据的第二集合,来确定指示所述组件的寄存器的值的信息。所述通信设备包括无端口通用设备。
[0019]与传统的技术相比,通过本发明的方式实现了众多的好处。例如,在另外的处理设备中不需要冗余的管理器硬件,从而简化了硬件和减少了费用。另外,NGD的使用允许其它处理设备在串行数据总线上进行通信,而无需强迫具有管理器硬件的处理设备充当“中间人”,将来自其它处理设备的通信中继到串行数据总线。此外,由于NGD可以另外使用串行数据总线上的未使用带宽,因此增加了串行数据总线的整体效率。结合下面的文字和附图来更详细地描述本发明的这些和其它实施例及其很多优点和特征。
【专利附图】

【附图说明】
[0020]通过参照下面的附图,可以获得对各个实施例的本质和优点的进一步理解。在附图中,相似的组件或特征可以具有相同的附图标记。此外,相同类型的各个组件可以通过在附图标记之后加上虚线、以及用于区分相似组件的第二标记来进行区分。如果在说明书中仅使用了第一附图标记,则该描述可应用于具有相同的第一附图标记的任何一个相似组件,而不管第二附图标记。
[0021]图1是具有数据总线架构的示例系统的简化框图。
[0022]图2是用于向不与数据总线相连接的处理设备提供访问总线组件的示例系统的图示说明。
[0023]图3是根据本发明的一个实施例,具有与无端口通用设备(NGD)硬件相耦接的处理设备的数据总线架构的实施例的图示说明。
[0024]图4是描绘一种使用NGD硬件来提供访问数据总线上的组件的过程的实施例的方框流程图。
[0025]图5是根据本发明的一个实施例,描绘用于使用不具有数据总线上的端口的通信设备,在该数据总线上传输信息的方法的简化流程图。
[0026]图6是根据本发明的另一个实施例,描绘用于使用不具有数据总线上的端口的通信设备,在该数据总线上传输信息的方法的简化流程图。
【具体实施方式】
[0027]诸如串行低功耗芯片间媒体总线(SUMbus)之类的串行数据总线可以包括管理器硬件,以执行对数据总线的各种管理功能,例如,启动数据总线、分配数据信道等等。该管理器硬件可以被集成到处理设备(例如,中央处理单元(CPU)、微控制器(MCU)、数字信号处理器(DSP)、专用集成电路(ASIC)或者其它处理单元)中,启用该处理设备以便在串行数据总线上与各种组件进行通信及其它操作。
[0028]但是,当尝试允许第二处理设备与数据总线上的组件进行通信时,会出现困难。这通常是使用两种方法中的一种方法来解决的。在第一方法中,经由第一处理设备与第二处理设备之间的通信链路,第二处理设备通过第一处理设备(该第一处理设备具有管理器硬件)与组件进行通信。问题是,第一处理设备充当为用于对数据进行中继的“中间人”,该第一处理设备可能用完第一处理器的处理功率和带宽。在第二方法中,第二处理设备能够简单地接管作为数据总线的管理器。但是,在该情况下,第二处理设备将需要其自己的与数据总线相连接的管理器硬件。这可能增加系统的费用,特别是在具有被启用以与数据总线上的组件进行通信的几个处理设备的系统中。
[0029]本申请所描述的本发明的实施例提供了一种改进系统,该系统可以使用无端口通用设备(NGD)或者其它无端口硬件将第二处理设备耦接到数据总线。为了清楚起见,如本申请所描述的“无端口 ”设备或者“不具有端口 ”的设备是不具有数据总线上的逻辑端口从而不具有访问该数据总线的数据信道的能力的设备。NGD不具有端口并且不包括管理器硬件的功能,这样简化了硬件并减少了费用。使用NGD,第二处理设备可以使用数据总线上的可用的未使用带宽(例如,消息信道)来与耦接到数据总线的组件(该组件包括第一处理设备)进行通信。
[0030]通过这种方式启用第二处理设备进行通信,可以向数据总线提供新的功能。第二处理设备可以直接读取和/或写入与数据总线相耦接的组件上的寄存器。另外,第二处理设备可以包含具有端口的单独数据传输硬件,其中所述具有端口的单独数据传输硬件可以使用数据总线上的数据信道。在该情况下,第二处理设备可以使用NGD与第一处理设备进行通信,请求在数据总线上建立数据信道,并且第一处理设备可以使用管理器硬件来建立所请求的数据信道。这允许第二处理设备使用数据信道在数据总线上传输数据。此外,NGD可以被很多处理设备使用,能够使三个或更多个处理设备在数据总线上进行通信。
[0031]在整个公开内容中讨论了数据总线。下面的示例关注SUMbus串行数据总线的使用。但是,应当理解的是,类似的原理可以应用于其它形式的数据总线。
[0032]图1描绘了示例系统100的简化框图,其中系统100包括诸如串行低功耗芯片间媒体总线(SLIMbus)之类的数据总线。可以在移动设备中使用这种数据总线,使得音频、数据、总线和/或设备控制可以发生在单一数据总线上。这种数据总线可以允许多个音频和/或数据信道使用相同的数据总线。此外,在一些实施例中,可以在相同的时间,支持针对不同音频信道的不同采样速率。系统100包括处理设备110 (其包括I/O接口 112、组帧器114和管理器116)、数据线120、时钟线130以及组件140。
[0033]处理设备110可以是中央处理单元(CPU)、数字信号处理器(DSP)、状态机、微控制器(MCU)或者其它控制器、专用集成电路(ASIC)、状态机、查询表等等。为了功率优化或者其它因素的目的,系统可能使用多个处理设备110。处理设备110可以对包括数据线120和时钟线130的数据总线进行管理。在一些实施例中,数据总线是SUMbus。处理设备110可以包括I/O接口 112。I/O接口 112可以提供对数据总线的管理服务,控制该总线的帧层,对使用处理设备110而实现的消息协议进行监测,和/或对处理设备110的重置进行管理。处理设备110可以存储和/或存取指令,这些指令可以被包含在多种形式的非临时性计算机可读介质中的任一种上。这些指令可以由处理器执行,并且这些指令可以使处理器执行各种功能。例如,本申请所描述的方法的各种步骤可以被存储成指令,并由处理设备110来执行。
[0034]处理设备110的组帧器114可以用作时钟线130上被驱动的时钟信号的源。这样一来,可以将组帧器114所提供的时钟信号提供给与时钟线130相连接的所有设备和组件140。组帧器114可以具有进入多种时钟模式(例如,活动时钟模式和暂停的时钟模式)的能力。当处于活动时钟模式时,组帧器114可以向时钟线130提供活动时钟信号。当处于活动时钟模式时,处理设备110和/或组件140可以通过数据总线来发送数据帧。在暂停的时钟模式中,组帧器114可以将时钟线130保持在单一稳定状态(使得时钟线130的逻辑值不发生改变)。在暂停的时钟模式中,可以将时钟线130保持在逻辑值I。当处于暂停的时钟模式时,可以不使用数据总线来发送数据帧。组帧器114还可以在数据线120上向与该数据总线相连接的其它组件140发送引导和组帧信道(统称为“组帧信息”)。该组帧信息可以用于建立总线的时分复用(TDM)帧结构,和/或向与总线相连接的其它设备和组件140传输该信息以便建立同步。
[0035]管理器116可以负责启动数据总线,并且执行数据总线管理。总线管理可以包括:与总线相连接的设备和组件140的列举、总线配置和/或动态信道分配。该管理器还可以包括总线上的端口 118或逻辑地址,以帮助启用管理器以执行数据总线管理。如果多个管理器与数据总线相连接,则在给定的时间,只准许一个管理器活动。虽然将I/O接口 112、组帧器114和管理器116描绘成处理设备110的一部分(或者由处理设备110执行),但是一些实施例提供了:这些组件中的一些或全部组件是分别与数据总线相连接的单独组件。例如,虽然在系统100中,管理器116与组巾贞器114位于相同的处理设备110中,但在一些实施例中,管理器116和组帧器114可以位于与数据总线相连接的分开的物理组件中。
[0036]图1描绘了与数据线120和时钟线130相连接的三个组件140_1、140_2、140-N。这里,“组件”是与数据总线相连接的设备的通用术语。组件140通常提供诸如模数转换(ADC)或数模转换(DAC)之类的各种应用功能。举例而言,诸如组件140-1之类的组件可以是通用处理器,例如,与麦克风相连接的CPU或DSP。当通用处理器从麦克风接收到信息时,可以对信息进行数字化、分析,如果要将该数据发送给与数据总线相连接的一个或多个其它设备和/或组件140,则使用数据总线进行发送。虽然所描绘的系统100的实施例示出了三个组件140,但是应当理解的是,可以将更多或更少个组件与数据总线相连接。
[0037]为了简单起见,仅示出了组件140-2中的其它细节。组件140可以包含各种子组件,例如,I/o接口 142和通用设备144。该子组件可以准许组件140-2通过数据总线进行通信,分别接收和分析来自某个其它设备的数据。例如,通用设备144可以允许与诸如输入设备150之类的设备交换(例如,发送和/或接收)数据。该通用设备可以包括端口 146或者数据总线上的逻辑地址,从而帮助实现数据交换。在组件140-1和140-N中可能存在类似的细节。
[0038]组件140和处理设备110可以与并入到总线上的一个或多个端口 118、146相关联。在每个设备上可以使用任意数量(例如,32、64等等)的端口,如数据总线的标准所指示的。端口是总线的逻辑地址(其具有与数据总线的相应物理连接),用于访问与数据总线相关联的数据信道。换句话说,端口是去往数据信道的逻辑终端,可以在两个端口之间建立数据信道,其中这两个端口可以动态地并且逻辑地与数据信道相连接。这些端口提供:可以通过例如TDM在数据总线上协调通信的机制。例如,可以在各个时间,为各个端口分配不同的TDM时隙。这些时隙可以是均匀的或者非均匀的。此外,根据给定的端口在给定的时间是源还是目的地,这些时隙从相应的数据总线提供数据的源或者采样。最后,如下面进一步详细讨论的,一些设备可以与数据总线相连接,但是不具有相应的逻辑地址,因此没有端口。这种无端口设备可以被配置为在数据总线的消息信道上进行通信。
[0039]虽然将图1中所示的I/O接口 112和142示出为与具有端口的设备相关联,但I/O接口 112和142也可以与任意数量的通用设备、NGD或者端口(包括零个设备和/或端口)相关联。在I/O接口 112或142不与设备或端口相关联的情况下,与数据总线相关联的组帧器114仍然可以继续向总线组件提供时钟信号。
[0040]如图1中所示的数据总线(例如,SLIMbus)可以使用多点分支总线拓扑结构进行操作,在这种情况下,总线信号对于总线上的所有组件来说是通用的。为了防止总线上的组件之间的干扰,对数据总线进行配置,使得在任何给定的时刻,仅仅一个发射机设备在总线上进行通信。可以通过仲裁过程和/或其它冲突避免机制,来强制实行这种约束。
[0041]虽然上面的描述提供了关于数据总线(例如,SUMbus)上的设备和组件140如何进行通信的基本介绍,但应当理解的是,可能存在额外的组件,但为了简单起见,没有示出这些组件。例如,处理设备110和组件140可以具有一个或多个消息缓冲器,以便对要使用数据总线进行发送的数据进行缓存,和/或对经由数据总线进行接收的数据进行缓存。可以在关于所使用的数据总线的具体形式的规范中找到其它信息。例如,由移动工业处理器接口(MIPI)联盟公布的SUMbus规范的版本1.01提供了关于SUMbus系统的实现方式的其它信息。[0042]系统100的数据总线使用同步、双线总线来在与时钟线和数据线相连接的组件之间分发数据。如上面所讨论的,数据总线可以使用TDM方案,以允许多个接收和发送设备使用该数据总线,并通过该数据总线进行通信。这里,如使用数据总线在时间中分布的数据的组织结构被称为“帧结构”。数据总线(如果SUMbus的话)的帧结构可以具有五个子部分:单元、时隙、帧、子帧和超帧。“单元”指代使用数据总线传输的数据的最小细分。由两个连续的正边界来限定单元,一个单元保存单比特的信息。“时隙”是指四个连续的单元。因此,时隙包含四比特的信息。这些比特是从最高有效位到最低有效位(例如,最高有效位在左边)。将“帧”定义成192个连续时隙。帧的第一时隙是控制空间时隙,所述控制空间时隙包含四比特帧同步符号(还叫做帧同步数据)。通过二进制序列“1011”来表示该帧同步符号。类似地,每个帧的时隙96还可以是包含四比特的组帧信息的控制空间时隙。该帧同步数据和32比特的组帧信息用于对总线进行同步。为了接收所有32比特的组帧信息,可以从8个连续帧的时隙96读取数据。这八个连续帧被称为“超帧”。这样,八个连续的帧包括单个超帧。
[0043]如果与数据总线相连的设备丢失了同步,则设备可能不能够读取超帧。参见SUMbus,已经设计了容限量,在该情况下,如果单个帧同步时隙不是如所期望的,那么仍然可以适当地读取超帧的数据。但是,如果第二连续帧同步时隙是错误的,那么该设备将不能读取超帧中的数据。
[0044]将“子帧”定义为帧结构的分割部分,其中在该位置处,控制空间和数据空间是交织的。不管怎样,将第一时隙分配给控制空间。子帧可能不具有单一、固定的长度。相反,子帧长度可以在各种预先定义的长度之间变化。参见SLIMbus,该长度也许可编程为6、8、24或者32个连续时隙(B卩,24、32、96或者128个单元)。在SUMbus中,可以基于诸如在该时刻的SLIMbus所支持的应用的数据流需求之类的因素,对子帧配置进行动态地改变。
[0045]使用该拓扑,客户端应用160可以通过处理设备110,实现对数据总线上的任何组件140的访问。客户端应用160可以包括各种功能中的任一种,例如,可能需要对与总线相连接的一个或多个组件140进行访问的音乐回放、音频记录、数据传输等等。例如,如果客户端应用160是音频记录应用,输入设备150是麦克风,则客户端应用160可以通过向处理设备110传输对访问输入设备150的需求,来访问输入设备150。使用管理器116的处理设备安排要在数据总线上建立的数据信道,以便访问输入设备150,并根据该数据总线的规范向组件140-2传输请求。在从处理设备110接收到请求之后,组件140-2可以从输入设备150接收模拟音频输入,使用通用设备144 (其可以是ADC)将模拟音频输入转换成数字格式。一旦具有数字格式,组件140就可以通过数据总线,使用I/O接口 142将来自输入设备的数据传输回处理设备110。最后,处理设备110可以随后向客户端应用160提供数据。因此,客户端应用160通过处理设备110,获得对总线组件140的访问。
[0046]图2描绘了用于向不与数据总线相连接的第二处理设备110-2提供访问总线组件140的示例系统200。为了功率优化或者其它因素,在系统中可以使用多个处理设备110。在该配置中,第一处理设备110-1与数据总线相连接,第二处理设备110-2通过单独的通信链路220与第一处理设备110-1相连接。处理设备110可以使用诸如高速芯片间(HSIC)、高速同步串行接口(HIS)、串行外设接口(SPI)、PCI Express (PCIe)和/或其它单元之类的接口,通过该通信链路220,进行处理器间通信(IPC)。[0047]在该系统200中,第二处理设备110-2与数据总线之间的所有数据和通信必须流经通信链路220,其中第一处理设备110-1将信息中继到数据总线。在图2中,图1的处理设备110的管理器116的硬件和软件组件被表示成单独的组件:管理器硬件216和管理器软件217。管理器硬件216可以与第一处理设备110-1物理地分离,或者物理地合并到第一处理设备110-1中。例如,管理器软件217可以是在第一处理设备110-1上运行以便通过管理器硬件216来执行数据总线的管理职责的驱动器。客户端应用230和第二处理设备110-2可以与管理器软件217进行通信,以便执行需要访问数据总线的某些功能。
[0048]虽然通信链路220使第二处理设备110-2能够访问数据总线,但是需要第一处理设备110-1充当“中间人”,将来自第二处理设备110-2的数据中继到数据总线。例如,如果在访问第二处理设备110-2的情况下的客户端应用230-2想要访问数据总线上的组件140,那么客户端应用230-2必须使第二处理设备110-2对第一处理设备110-1的管理器软件217进行请求,以在数据总线上建立数据信道,从而发送和接收去往和来自组件140的数据。随后,通过第一处理设备110-1将所有数据经由通信链路220中继到第二处理设备110-2。此外,即使在可能不需要建立数据信道的情形下(例如,向组件140的寄存器发送消息和/或对组件140的寄存器进行控制),第二处理设备110-2还必须通过第一处理设备110-1对彳目息进行中继。
[0049]在替代的配置(没有示出)中,第二处理设备110-2可以直接连接到数据总线。但是,根据常规方法,第二处理设备110-2将包括管理器软件217和管理器硬件216,对第一处理设备110-1中的相应元件进行复制。在该配置中,如果在访问第二处理设备110-2情况下的客户端应用230-2想要与数据总线上的组件140进行通信,那么第二处理设备110-2可以负责管理数据总线。根据所涉及的数据总线的类型,需要执行某些过程,以便将这些职责从第一处理设备110-1转给第二处理设备110-2。
[0050]图3根据一个实施例,描绘了用于向第二处理设备110-2提供访问总线组件140的改进系统300。在该系统300中,第二处理设备110-2可以通过不具有端口的设备与数据总线和/或第一处理设备110-1进行通信,从而简化了硬件,其中所述不具有端口的设备可以包括不具有组帧器114或管理器116的特殊功能的通用设备,以便进一步简化。该设备可以包括连接到数据总线的无端口通用设备(NGD)硬件320,而不是通过处理设备110之间的通信链路。这种配置通过下面方式提高了效率:使第二处理设备110-2在不必通过第一处理设备对信息进行中继的情况下能够访问数据总线。其还使用与标准管理器硬件216相比更简单且更便宜的NGD硬件320。
[0051]在该系统300中,第二处理设备可以包括卫星软件310。卫星软件310可以是通过与管理器软件217控制管理器硬件216相似的方式,控制NGD硬件320的驱动或其它程序。但是,与管理器软件217相比,卫星软件310可以更加简单得多,这取决于所期望的功能,因为卫星软件310可能不需要管理器软件217中的很多管理功能。因此,与管理器软件217相比,卫星软件310可以更加小型并且需要更少的处理资源。
[0052]类似地,由于NGD硬件320不需要(并且确实可能不能够)执行管理器硬件216所需要的功能,所以与管理器硬件216相比,N⑶硬件320可以简单得多。因为N⑶硬件320在数据总线上是“无端口的”,所以NGD硬件320可能不具有在数据总线上的用于访问数据信道的被分配的端口。但是,N⑶硬件320可以使用数据总线上的可用的未使用带宽,能够使第二处理设备110-2与数据总线上的第一处理设备110-1和其它组件140进行通信。例如,SLIMbus具有消息传送能力(例如,消息信道)(与任何数据信道都不同),这种能力可以使第二处理设备110-2能够通过NGD硬件320在SUMbus上发送消息。因此,NGD硬件320可能只需要在数据总线上进行基本消息传送的能力,以便提供第二处理设备110-2充分地访问数据总线。虽然NGD硬件320可能不具有在数据总线上的、用于访问数据信道的、被分配的端口,但是其消息传送能力可以包括用于经由消息传送信道来访问数据的地址。
[0053]通过使用数据总线,第二处理设备110-2可以与第一处理设备110-1进行通信,而无需这两个处理设备110之间的单独通信链路。例如,可以通过实现关于数据总线的消息传送能力的某些协议,在处理设备110之间交换IPC信息。在2011年4月2日提交的、标题为 “METHOD FOR CONCURRENT SLIMBUS ACCESS FROM MULTIPLE SOFTWARE CONTEXTS” 的美国专利申请号N0.61,471,106中描述了这些技术的示例,故以引用方式将该美国专利申请的全部内容并入本文。
[0054]通过使第二处理设备110-2能够通过NGD硬件320直接与数据总线进行通信,第一处理设备110-1不再需要对数据总线上的从第二处理设备110-2到其它组件和/或设备(包括可能不具有组帧器和/或管理器能力的处理设备)的通信进行中继。这样可以有助于节省带宽和处理功率。例如,第二处理设备110-2可以使用NGD硬件320,来使用数据总线上的消息传送信道向第一处理设备110-1指示:第二处理设备110-2需要在数据总线上建立数据信道以便与特定的组件140进行通信。在第一处理设备110-1使用管理器软件217和管理器硬件216来创建所请求的数据信道之后,第二处理设备110-2随后自由地通过数据总线与相应组件140进行直接通信。不再需要第一处理设备110-1对任何额外信息进行中继。因为NGD硬件320可能不具有数据传输能力,所以第二处理设备110-2可以通过使用通信地链接到数据总线的单独数据传输硬件(没有示出),通过数据信道进行通信。
[0055]在不需要管理器软件217和/或管理器硬件216建立数据信道或者执行类似的管理功能的实例中,可以不需要第一处理设备110-1使第二处理设备110-2能够与组件140进行通信。例如,在使用SUMbus的实施例中,第二处理设备110-2可以使用SUMbus消息,通过NGD硬件320,直接地对组件140的寄存器发命令和/或进行控制。这些能力回避了第二处理设备110-2与第一处理设备110-1 —起进行通信的需要。
[0056]虽然图3描绘了具有两个处理设备110的系统300,但是其它实施例可以包括更多的处理设备110。每个额外的处理设备110可以包括:用于访问数据总线以及与组件140和其它处理设备110进行通信的NGD硬件320和卫星软件310。这种配置将使每个处理设备110能够访问第一处理设备110-1以执行管理器功能(例如,建立数据信道),如上所述。因此,可以将上面的技术外推到包括具有多个处理设备110的系统。因此,通过N⑶硬件320与数据总线相连接的任意数量的处理设备110可以被配置为使用数据总线的消息传送能力进行相互通信以及与连接到数据总线的组件140进行通信。
[0057]转到图4,进一步参照图1至图3,图4示出了通过使用NGD硬件320来提供客户端应用230-2访问数据总线上的组件140的简化过程400。但是,过程400只是示例并且非限制性的。例如,可以通过对模块进行增加、删除、重新排列、组合和/或并发地执行,来改变过程400。对如图所示和如上所述的过程400的其它改变是有可能的。
[0058]可以由与NGD硬件320相连接的处理设备110用软件(或者在计算机可读介质上存储的其它指令)执行的过程400,可以开始于方框405,其中在方框405中,接收用于访问组件140的请求。如上面所讨论的,可以从客户端应用230向卫星软件310传输该请求。此外,该请求可以不是用于访问组件140的显式呼叫,但是该请求可以被卫星软件310理解成请求该访问。在方框410处,判断是否需要数据信道。换言之,判断是否必须咨询管理器116。卫星软件310可以基于该请求和数据总线的已知规范来进行判断。
[0059]如果不需要数据信道,则在方框415处,通过NGD硬件320向组件140发送消息传送数据。在方框420处,接收相应的答复。如上面所讨论的,该答复可以包括:对寄存器值被改变和/或寄存器值的读数及其它的确认。最后,在方框425处,向进行该请求的应用提供相应响应。
[0060]另一方面,如果客户端应用(或者其它请求实体)所接收的请求需要数据信道,则向管理器116进行相应的请求。通过数据总线上的消息传送信道,使用NGD硬件320向管理器116发送请求,其中管理器116可以与处理设备110相关联。该请求可以包括指示被请求的组件的多种信息:所期望的带宽、用于数据传输的时间长度和/或要传输的数据量等等。一旦管理器116分配了相应的数据信道,则在方框435处,从管理器116接收答复和/或确认。
[0061]使用所分配的数据信道,通过数据总线上的数据信道,对去往和/或来自相应组件140的数据进行传输。如上面所指示的,因为N⑶硬件320可能不具有数据传输能力,所以可以通过使用单独数据传输硬件来实现这种通信。在方框445处,向应用提供相应的数据。该数据可以包括:对成功数据传输的确认、和/或从组件140传输的数据等等。
[0062]图5是根据本发明的一个实施例,描绘用于使用不具有数据总线(例如,SLIMbus)上的端口的通信设备(例如,N⑶硬件320),在该数据总线上传输信息的方法的简化流程图。例如,可以使用图3的系统300的各种组件(例如,处理设备110、NGD硬件320、卫星软件310、管理器硬件116和/或管理器软件217)来执行该方法。
[0063]参见图5,在方框510处,接收要求访问与数据总线相耦接的组件140的请求。例如,该请求可以是由客户端应用230-2向执行卫星软件310的处理设备110-2、专用电路(例如,专用集成电路(ASIC))、更大系统的硬件和/或软件组件或者类似的单元进行的。此外,所请求的访问可以包括:能够访问去往和/或来自组件140的流数据。该方法还包括:在方框520处,确定该访问需要对数据总线的数据信道进行分配。如本申请所讨论的,数据总线可以提供众多的数据信道,其中可以使用TDM技术在总线上分配这些数据信道,如通过管理器软件217和/或管理器硬件216所提供的。接收请求的组件(例如,处理设备110)可以基于众多因素中的任何一种(例如,请求的类型、大小、时序和/或源),来确定:访问需要对数据信道进行分配。
[0064]该方法还包括:在方框530处,使用数据总线的消息传送能力,传输数据的第一集合。例如,可以由第一处理设备110-2使用NGD硬件320、ASIC、硬件和/或软件组件、或者其它无端口的通信单元,通过数据总线向具有管理器硬件216和/或管理器软件217的第二处理设备110-1进行该传输。数据的第一集合可以包括多种信息中的任一种信息,这些信息可以用于为组件140与处理设备110之间的、经由数据总线的后续通信分配数据信道。相应地,数据的第一集合可以包括:例如,组件140的标识、被请求的带宽、要传输的(估计的和实际的)数据量、用于通信的被请求的时间段和/或其它有关信息。根据一些实施例,处理设备110-2可以使用NGD硬件320和卫星软件310,来访问数据总线的消息传送信道上的消息,并且在数据总线的消息传送信道上发送消息。这可以包括:另外访问为消息传送所分配的信道的未使用部分,从而增加消息传送信道的使用和效率。
[0065]继续图5的方法,在方框540处,分配数据总线的数据信道。该分配可以由管理器硬件116、管理器软件217和/或用于对组件140与耦接到NGD硬件320的处理设备110-2之间的数据总线的数据信道进行管理的其它单元来执行。如先前所陈述的,因为NGD硬件320可能不具有数据传输能力,所以可以建立数据信道,使得在组件140和与NGD硬件320分开的处理设备110-2的数据传输硬件之间传输数据。
[0066]最后,在方框550处,使用该数据信道,向所述组件传输数据的第二集合。根据所期望的功能和原始数据传输请求,数据的第二集合可以包括多种信息中的任一种信息,其中一旦分配了数据信道,数据的第二集合就可以由处理设备110-2通过数据传输硬件和/或其它数据通信单元向所述组件进行传输。可选地,可以使用数据信道,从组件140向处理设备110-2传输数据的第三集合,例如,向处理设备110-2传输确认。可以在组件140与处理设备110-2 (或者其它请求实体)之间传输各种其它类型的数据,如系统的功能、数据信道的带宽和/或类似的考虑因素所规定的。
[0067]应当理解的是,图5中所描绘的特定方框提供了:使用不具有数据总线上的端口的通信设备(例如,NGD硬件320)的特定方法。还可以根据替代的实施例来执行其它顺序的步骤。例如,本发明的替代实施例可以执行具有不同顺序的上面所概括的步骤。此外,图5中所描绘的各个步骤可以包括多个子步骤,其中可以按照对各步骤适当的多种顺序来执行所述多个子步骤。此外,可以根据具体的应用,增加或者删除另外的步骤。本领域任何普通技术人员将意识到很多其它的变型、修改和改变。
[0068]图6是根据本发明的另一个实施例,描绘用于使用不具有数据总线(例如,SLIMbus)上的端口的通信设备(例如,NGD硬件320),在该数据总线上传输信息的方法的简化流程图。例如,可以使用诸如具有NGD硬件320和卫星软件310的处理设备110,来执行该方法。
[0069]该方法可以开始于方框610,其中在方框610处,接收要求访问与数据总线相耦接的组件140的请求。类似于图5的方法,可以由例如客户端应用230-2向使用卫星软件310或者类似单元的处理设备110-2进行请求,如围绕图5所描述的。但是,这里,该请求可以是不同的。不是需要对数据信道进行分配的、针对访问组件140的请求,而是,该请求可以是直接访问该组件。
[0070]在方框620处,NGD硬件320或者类似的无端口通信单元使用数据总线的消息传送能力,向组件140传输数据的第一集合。在不需要数据信道的情况下,在该实施例中的数据的第一集合可以与如围绕图5的方法所描述的数据的第一集合不同。例如,不是包括可以用于建立数据信道的数据,而是数据的第一集合可以包括:用于确定设备的寄存器的值的请求,或者指示向组件140的寄存器写入的值的信息(包括寄存器和/或寄存器值的指示)。作为回报,在方框630处,使用NGD硬件320或者用于接收数据的类似单元,从组件140接收数据的第二集合。例如,数据的第二集合可以是组件140的寄存器的值、和/或已经成功写入组件140的寄存器的值的指示。
[0071 ] 最后,在方框640处,基于数据的第二集合,使用卫星软件310、ASIC、软件和/或硬件或者其它这种单元,向请求实体传输消息。例如,该请求实体可以是请求读取数据总线上的组件140的寄存器值的客户端应用230-2。在处理设备110-2所执行的卫星软件310接收到请求之后,该卫星软件310可以使用NGD硬件320,利用数据总线的消息传送信道向所期望的组件140进行传输。组件140可以返回寄存器值,卫星软件310可以将该值和/或基于该值的消息向客户端应用230-2进行中继。
[0072]应当理解的是,图6中所示的特定方框提供了:使用不具有数据总线上的端口的通信设备(例如,NGD硬件320)的特定方法。还可以根据替代的实施例来执行其它顺序的步骤。例如,本发明的替代实施例可以执行具有不同顺序的上面所概括的步骤。此外,图6中所描绘的各个步骤可以包括多个子步骤,其中可以按照对各步骤适当的多种顺序来执行所述多个子步骤。此外,可以根据具体的应用,增加或者删除另外的步骤。本领域任何一名普通技术人员将意识到很多其它的变型、修改和改变。
[0073]虽然上面的公开内容讨论了使用NGD硬件的系统和技术,但是也可以类似地使用其它通信设备。这些通信设备可以不具有端口,从而简化了所需要的硬件。作为补充或替代,这些通信设备可以不包括组帧器和/或管理器能力,这样可以甚至进一步简化硬件。这些硬件上的简化也可以引起相对较低的成本。
[0074]还可以采用其它技术。
【权利要求】
1.一种系统,包括: 数据总线,其被配置为提供: 通过多个端口进行数据通信,以及 消息能力; 管理器,该管理器与所述数据总线相耦接,并且被配置为管理所述数据总线; 第一处理设备,所述第一处理设备与所述管理器相耦接; 第二处理设备;以及 通信设备,所述通信设备与所述第二处理设备和所述数据总线相耦接,其中: 所述通信设备不包括所述数据总线的端口;以及 所述通信设备被配置为使用所述数据总线的所述消息能力来传输来自所述第二处理设备的信息。
2.根据权利要求1所述的系统,其中,所述通信设备被配置为:使用所述数据总线的所述消息能力,与所述第一处理设备进行通信。
3.根据权利要求1所述的系统,还包括: 与所述数据总线相耦接的至少一个组件。
4.根据权利要求3所述的系统,其中,所述通信设备被配置为:使用所述数据总线的所述消息能力,与所述至少一个组件进行通信。
5.根据权利要求4所述的系统,其中,所述通信设备被配置为:使用所述数据总线的所述消息能力,写入所述至少一个组件的寄存器。
6.根据权利要求4所述的系统,其中,所述通信设备被配置为:使用所述数据总线的所述消息能力,从所述至少一个组件的寄存器进行读取。
7.根据权利要求3所述的系统,其中,所述通信设备被配置为:使用所述数据总线的所述消息能力,向所述管理器传输针对数据信道的请求。
8.根据权利要求1所述的系统,其中,所述数据总线包括。
9.根据权利要求1所述的系统,其中,所述通信设备包括无端口通用设备。
10.根据权利要求1所述的系统,其中,所述通信设备包括第一通信设备,所述系统还包括耦接在所述数据总线与第三处理设备之间的第二通信设备,其中所述第二通信设备被配置为使用所述数据总线的所述消息能力,来传输来自所述第三处理设备的信息。
11.一种方法,包括: 接收要求访问与数据总线相耦接的组件的请求; 确定访问所述数据总线需要对所述数据总线的数据信道进行分配; 使用不具有所述数据总线上的端口的通信设备来传输数据的第一集合,其中所述数据的第一集合是使用所述数据总线的消息传送能力来传输的; 分配所述数据总线的所述数据信道;以及 向所述组件传输数据的第二集合,其中所述数据的第二集合是使用所述数据总线的所述数据信道来传输的。
12.根据权利要求11所述的方法,其中,所述数据总线包括SLIMbus。
13.根据权利要求11所述的方法,其中,所述数据的第一集合包括指示所述组件的标识的数据。
14.根据权利要求11所述的方法,其中,所述数据的第一集合包括指示被请求的带宽的数据。
15.根据权利要求11所述的方法,还包括: 从所述组件接收数据的第三集合,其中所述数据的第三集合是使用所述数据总线的所述数据信道来传输的。
16.根据权利要求15所述的方法,还包括: 向请求实体传输所述数据的第三集合。
17.根据权利要求15所述的方法,还包括: 向请求实体传输确认。
18.根据权利要求11所述的方法,其中,所述通信设备是无端口通用设备。
19.一种方法,包括: 从请求实体接收请求,其中所述请求要求访问与数据总线相耦接的组件; 使用不具有所述数据总线上的端口的通信设备,向所述组件传输数据的第一集合,其中,所述数据的第一集合是使用所述数据总线的消息传送能力来传输的; 使用所述通信设备,从所述组件接收数据的第二集合;以及 向所述请求实体传输消息,其中所述消息是至少部分地基于所述数据的第二集合。`
20.根据权利要求19所述的方法,其中,所述数据的第一集合包括:指示向所述组件的寄存器写入的值的信息。
21.根据权利要求19所述的方法,其中,所述数据的第二集合包括:指示所述组件的寄存器的值的信息。
22.根据权利要求19所述的方法,其中,所述通信设备包括无端口通用设备。
23.—种系统,包括: 数据总线,所述数据总线被配置为提供: 通过多个端口进行数据通信,以及 消息能力; 管理器,所述管理器与所述数据总线相耦接并且被配置为管理所述数据总线; 第一处理设备,所述第一处理设备与第一通信设备相耦接;以及 第二处理设备,所述第二处理设备与第二通信设备相耦接; 其中: 所述第一通信设备和所述第二通信设备与所述数据总线相耦接; 所述第一通信设备和所述第二通信设备不包括所述数据总线的端口 ;并且所述第一通信设备被配置为:使用所述数据总线的所述消息能力,通过所述第二通信设备向所述第二处理设备传输来自所述第一处理设备的信息。
24.根据权利要求23所述的系统,还包括: 与所述数据总线相耦接的至少一个组件,所述至少一个组件被配置为:使用所述数据总线的所述消息能力从所述第一通信设备接收数据。
25.根据权利要求24所述的系统,其中,所述第一通信设备被配置为:使用所述数据总线的所述消息能力来写入所述至少一个组件的寄存器。
26.根据权利要求24所述的系统,其中,所述第一通信设备被配置为:使用所述数据总线的所述消息能力,从所述至少一个组件的寄存器进行读取。
27.根据权利要求23所述的系统,其中,所述第一通信设备被配置为:使用所述数据总线的所述消息能力,向所述管理器传输针对数据信道的请求。
28.根据权利要求23所述的系统,其中,所述第一通信设备和所述第二通信设备是无端口通用设备。
29.一种装置,包括: 用于接收要求访问与数据总线相耦接的组件的请求的模块; 用于确定访问所述数据总线需要对所述数据总线的数据信道进行分配的模块; 用于使用不具有所述数据总线上的端口的通信设备来传输数据的第一集合的模块,其中所述数据的第一集合是使用所述数据总线的消息传送能力来进行传输的; 用于分配所述数据总线的所述数据信道的模块; 用于向所述组件传输数据的第二集合的模块,其中所述数据的第二集合是使用所述数据总线的所述数据信道来传输的。
30.根据权利要求29所述的装置,其中,所述数据总线包括SUMbus。
31.根据权利要求29所述的装置,其中,所述用于通信的模块被配置为:将指示所述组件的标识的数据包括到所述数据的第一集合中。
32.根据权利要求29所述的装置,其中,所述用于通信的模块被配置为:将指示被请求的带宽的数据包括到所述数据的 第一集合中。
33.根据权利要求29所述的装置,还包括: 用于从所述组件接收数据的第三集合的模块,其中所述数据的第三集合是使用所述数据总线的所述数据信道来传输的。
34.根据权利要求33所述的装置,还包括: 用于向请求实体传输所述数据的第三集合的模块。
35.根据权利要求33所述的装置,还包括: 用于向请求实体传输确认的模块。
36.根据权利要求29所述的装置,其中,所述通信设备包括无端口通用设备。
37.一种包括指令的非临时性计算机可读介质,其中所述指令被配置为使处理器执行以下操作: 接收要求访问与数据总线相耦接的组件的请求; 确定访问所述数据总线需要对所述数据总线的数据信道进行分配; 使用不具有所述数据总线上的端口的通信设备来传输数据的第一集合,其中所述数据的第一集合是使用所述数据总线的消息传送能力来进行传输的; 分配所述数据总线的所述数据信道;以及 向所述组件传输数据的第二集合,其中所述数据的第二集合是使用所述数据总线的所述数据信道来进行传输的。
38.根据权利要求37所述的非临时性计算机可读介质,其中,所述数据总线包括SUMbus。
39.根据权利要求37所述的非临时性计算机可读介质,其中,所述指令被配置为使所述处理器将指示所述组件的标识的数据包括到所述数据的第一集合中。
40.根据权利要求37所述的非临时性计算机可读介质,其中,所述指令被配置为使所述处理器将指示被请求的带宽的数据包括到所述数据的第一集合中。
41.根据权利要求37所述的非临时性计算机可读介质,还包括: 被配置为使所述处理器能够经由所述数据总线的所述数据信道从所述组件接收数据的第三集合的指令。
42.根据权利要求41所述的非临时性计算机可读介质,还包括: 被配置为使所述处理器向请求实体传输所述数据的第三集合的指令。
43.根据权利要求41所述的非临时性计算机可读介质,还包括: 被配置为使所述处理器向请求实体传输确认的指令。
44.根据权利要求37所述的非临时性计算机可读介质,其中,所述通信设备是无端口通用设备。
45.一种包括指令的非临时性计算机可读介质,其中所述指令被配置为使处理器执行以下操作: 从请求实体接收请求,其中所述请求要求访问与数据总线相耦接的组件; 使用不具有所述数据总线上的端口的通信设备向所述组件传输数据的第一集合,其中所述数据的第一集合是使用所述数据总线的消息传送能力来进行传输的; 使用所述通信设备,从所述组件接收数据的第二集合;以及` 向所述请求实体传输消息,其中所述消息是至少部分地基于所述数据的第二集合。
46.根据权利要求45所述的非临时性计算机可读介质,其中,所述指令被配置为使所述处理器将指示向所述组件的寄存器写入的值的信息包括到所述数据的第一集合中。
47.根据权利要求45所述的非临时性计算机可读介质,其中,所述指令被配置为使所述处理器根据所述数据的第二集合来确定指示所述组件的寄存器的值的信息。
48.根据权利要求45所述的非临时性计算机可读介质,其中,所述通信设备包括无端口通用设备。
【文档编号】G06F13/42GK103502966SQ201280021218
【公开日】2014年1月8日 申请日期:2012年4月27日 优先权日:2011年4月29日
【发明者】H·G·格鲁贝尔, J·阿塞奥, M·哈里哈兰, S·莫汉, M·A·兰德古思 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1