掌桥专利:专业的专利平台
掌桥专利
首页

用于通过串行数据通信接口执行系统和电源管理的方法

文献发布时间:2023-06-19 18:32:25


用于通过串行数据通信接口执行系统和电源管理的方法

背景技术

技术领域

本文所述的实施方案涉及计算系统领域,并且更具体地涉及在设备之间高效地传输数据。

相关技术描述

用户将各种外围设备连接到主机计算设备用于商业和娱乐目的。此类外围设备的示例包括便携式数据存储设备、多媒体设备、打印机、扫描仪、相机等。主机设备的一些示例包括台式计算机、膝上型计算机或平板计算机、智能电话和车辆中的多媒体系统。在许多应用中,接口已经支持外围设备的连接和稍后的重新连接。在许多设计中,接口使用双向信号总线用于主机计算设备与外围设备之间的数据传输。

一般来讲,通信协议确定控制信号的格式、所使用的电压电平,以及跨信号总线传输的信号的定时。主机计算设备和外围设备中的每一者上的接口内的逻辑支持多种通信协议中的所选择的一种。当跨信号总线传输数据时,外围设备消耗功率。由于每一代通信协议通常支持较大的带宽,功耗也会增加。

鉴于上述内容,需要用于在设备之间高效地传输数据的方法和机制。

发明内容

设想了用于在设备之间高效地传输数据的系统和方法。在各种实施方案中,发射器和接收器在彼此之间具有一条或多条数据线。发射器接收待输送到接收器的多位数据。发射器中的控制逻辑将所接收的多位数据编码成一系列脉冲。所编码的脉冲表示所接收的数据。发射器将所编码的脉冲发送到接收器。在一些实施方案中,发射器在单条数据线上发送所编码的脉冲。因此,发射器接收并行的多位数据,并且脉冲将所接收的数据编码成串行数据。在各种实施方案中,接收器接收串行脉冲编码数据,并且接收器中的控制逻辑对所接收的数据进行解码。通过对所接收的串行数据进行解码,接收器的控制逻辑重新创建由发射器较早接收的并行多位数据。接收器中的控制逻辑将所解码的多位数据发送到处理逻辑。

在一些实施方案中,电源管理单元确定发射器和接收器何时去激活或以其他方式使一条或多条数据线断电。在一个实施方案中,发射器和接收器使彼此之间的两条数据线中的一条数据线断电,这降低了功耗。在一些实施方案中,发射器和接收器在数据传输期间在数据传输模式和另一较小的空闲模式之间转变。代替在数据被接收时传输数据直到所有接收到的数据被传输,发射器将所接收的数据存储在一个或多个缓冲器中。当空闲的时间间隔结束时,从缓冲器中的一个缓冲器读取数据并且在另一时间间隔内将其传输到接收器。重复该过程,直到传输所有数据。

在一些实施方案中,当发射器和接收器在彼此之间输送所编码的脉冲时,发射器和接收器使用电压余量。该电压余量提供了更进一步的功耗降低。在一个实施方案中,空闲电压电平比电源电压电平大电压余量。在一个实施方案中,数据传输电压电平比空闲电压电平大电压余量。因此,当输送所编码的脉冲时,不使用接地参考电压电平与电源电压电平之间的全电压摆动。在一些实施方案中,接口支持主/从架构,诸如用于连接设备的通用串行总线(USB)标准串行总线协议。在其他实施方案中,使用另一通信协议。

参考以下描述和附图将另外理解这些和其他实施方案。

附图说明

通过结合附图参考以下描述,可更好地理解方法和机制的上文和另外的优点,在附图中:

图1是数据传输的一个实施方案的框图。

图2是符号生成表的一个实施方案的框图。

图3是数据传输的一个实施方案的框图。

图4是用于在设备之间高效地传输数据的方法的一个实施方案的流程图。

图5是用于在设备之间高效地传输数据的方法的一个实施方案的流程图。

图6是计算系统的一个实施方案的框图。

图7是用于在设备之间高效地传输数据的方法的一个实施方案的流程图。

图8是设备之间的数据线上的信号波形的一个实施方案的框图。

图9是用于在设备之间传输数据的接口的一个实施方案的框图。

图10是用于在设备之间传输数据的接口的一个实施方案的框图。

图11是用于在设备之间高效地传输数据的方法的一个实施方案的流程图。

图12是用于在设备之间高效地传输数据的方法的一个实施方案的流程图。

图13是用于在设备之间传输数据的接口的一个实施方案的框图。

图14是由符号生成表使用的符号映射的一个实施方案的框图。

图15是由符号生成表使用的符号映射的一个实施方案的框图。

虽然本公开中所述的实施方案可受各种修改形式和另选形式的影响,但是其具体实施方案在附图中以举例的方式示出并将在本文详细描述。然而,应当理解,附图和对其的具体实施方式不旨在将实施方案限制为所公开的特定形式,而相反,本发明旨在涵盖落入所附权利要求书的实质和范围内的所有修改、等同物和另选方案。如在整个本专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而非强制的意义(即,意味着必须)使用字词“可”。类似地,字词“包括”意味着包括但不限于。

各种单元、电路或其他部件可被描述为“被配置为”实行一个或多个任务。在此类上下文中,“被配置为”是一般意味着“具有”在操作期间实行一个或多个任务的“电路”的结构的宽泛表述。如此,即使在单元/电路/部件当前未接通时,单元/电路/部件也可被配置为执行任务。通常,形成与“被配置为”对应的结构的电路可包括硬件电路。类似地,为了描述中方便,可将各种单元/电路/部件描述为执行一个或多个任务。此类描述应当被解释为包括短语“被配置为”。表述被配置为实行一个或多个任务的单元/电路/部件明确地旨在对该单元/电路/部件不调用35U.S.C.§112(f)。

具体实施方式

在以下描述中,阐述了许多具体细节以提供对本公开中描述的实施方案的透彻理解。然而,本领域的普通技术人员应当认识到,可在没有这些具体细节的情况下实践实施方案。在一些实例中,为了便于例示且避免模糊实施方案的描述,尚未详细示出众所周知的电路、结构和技术。

参考图1,示出了数据传输100的一个实施方案的概括框图。在各种实施方案中,发射器110接收并行多位数据102,并且将串行数据118作为所编码的脉冲输送到接收器120。串行数据118的所编码的脉冲表示在发射器110的多个引脚上接收的并行多位数据102。在一些实施方案中,接收器120从所接收的串行数据118生成并行多位数据128,并且将数据128输送到外部处理逻辑(未示出)。在一个实施方案中,发射器110和接收器120中的每一者分别包括脉冲编码逻辑112和脉冲编码逻辑122。脉冲编码逻辑112和脉冲编码逻辑122中的每一者由硬件诸如电路,或者由软件诸如固件,或硬件和软件的组合来实现。

脉冲编码逻辑112包括编码器114,用于从所接收的并行数据102生成串行数据118作为所编码的脉冲。在一个实施方案中,串行数据118中的所编码的脉冲包括符号,其中每个符号表示并行多位数据102的一部分。每个符号使用特定数量的脉冲来表示并行数据。在一个实施方案中,具有三个脉冲的符号指示特定的2-位状态,而具有两个脉冲的另一符号指示不同的2-位状态,依此类推。在其他实施方案中,其他数量的脉冲和并行位也是可能的并且可以设想。在一些实施方案中,发射器110在单条数据线上将符号作为数据118发送到接收器120。

在各种实施方案中,脉冲编码逻辑122的解码器126接收串行数据118的符号,并且将每个符号转换成并行多位数据128的一部分。通过对串行数据118的所接收的符号进行解码,解码器126将并行多位102重新创建为并行多位数据128。在一个实施方案中,解码器126将符号彼此区分开,对特定符号中的脉冲数量进行计数,并且将脉冲数量映射到特定数量的并行位。在一个实施方案中,解码器126对特定符号中的一个脉冲进行计数,并且将一个脉冲的计数映射到特定的2-位状态。发射器110与接收器120之间的数据传输使用符号来表示并行数据,其中在脉冲与数据位之间没有一对一的关系。相反,不同数量的脉冲用于表示相同数量的并行位。在一个实施方案中,并行的2个位能够表示4个状态。发射器110不是发送4个串行位,而是发送0至3个脉冲范围内的多个脉冲,以表示2个并行位的4个状态中的一种状态。在其他实施方案中,使用用于表示并行位的其他数量的并行位和脉冲。

在一些实施方案中,发射器110与接收器120之间的一条或多条数据线为双向数据线。为了支持数据的双向传输,脉冲编码逻辑112使用具有解码器126的等效功能性的解码器116。类似地,脉冲编码逻辑122使用编码器124,该编码器具有编码器114的等效功能性。在一些实施方案中,发射器110和接收器120支持主/从架构,诸如用于连接设备的通用串行总线(USB)标准串行总线协议。在其他实施方案中,使用另一通信协议。

虽然上文描述了使用电压电平的脉冲来指示正在传输的数据的先前的引脚状态与当前引脚状态之间的映射,但在其他实施方案中,I/O接口的逻辑使用其他事件。例如,代替使用电压电平的脉冲,在其他实施方案中,逻辑使用物理线路上的固定频率电压载波信号中的一者来指示开/关切换和幅移键控、磁耦合或电感耦合、静电或电容耦合、光耦合以及能够传输事件的无线比率接口。

现在转向图2,示出了符号生成表150(或表150)的一个实施方案的概括框图。在例示的实施方案中,符号生成表150将2-位先前引脚状态映射到2-位当前引脚状态。在各种实施方案中,表150基于在时间间隔期间在单条数据信号线上接收到的脉冲的数量来执行映射。然而,在其他实施方案中,另一数量的并行位用于引脚状态。虽然在表150中示出了特定的映射,但在其他实施方案中,另一种映射是可能的并且可以设想。

发射器和接收器使用表150和符号映射160以支持并行多位数据作为串行数据在单条数据线上传输。在各种实施方案中,发射器和接收器中的每一者使用表150和符号映射160的副本。发射器基于各种条件来确定到了发送数据的时间。当发射器具有待发送到接收器的并行多位数据时,发射器将并行多位数据划分成连续的部分或区段。每个区段具有当前引脚状态。在一个实施方案中,每个区段具有2个位。在其他实施方案中,每个区段具有另一数量的并行的多个位。

发射器保持先前引脚状态,该先前引脚状态是先前的数据传输期间的当前引脚状态。使用表150,发射器的控制逻辑基于先前引脚状态标识表150的行,并且基于当前引脚状态来标识列。对于待发送的初始2个位,先前的引脚状态是在较早的数据传输期间使用的状态,或者是发射器和接收器中的每者已知的默认引脚状态。逻辑使用所得的符号和符号映射160来确定在时间间隔内待发送的脉冲的数量,并且脉冲的数量表示当前引脚状态。

符号“2'b”表示2-位二进制值,并且如图所示,当先前的引脚状态是2'b01并且待发送的当前引脚状态是2'b10时,发射器的控制逻辑基于先前的引脚状态从表150的顶部选择第二行。控制逻辑基于当前引脚状态从表150左侧选择第三列,并且标识符号“D”。控制逻辑使用符号映射160来确定符号“D”表示将在串行数据线上发送到接收器的3个脉冲的计数。在一些实施方案中,发射器在时间间隔内发送3个脉冲以指示符号“D”。

在一个实施方案中,当发射器在时间间隔期间没有发送脉冲时,当前引脚状态等于先前引脚状态。该映射由符号映射160的顶部行以及表150中的符号“A”表示。符号映射160将无脉冲或零脉冲映射到符号“A”。当发射器在时间间隔期间发送一个脉冲时,仅当前引脚状态的特定位改变。在一些实施方案中,特定位是表150中指示为“b1”的最低有效位。在其他实施方案中,特定位是表150中指示为“b0”的最高有效位。

接收器的控制逻辑对时间间隔内的所接收的脉冲数量进行计数,并且使用符号映射160来确定符号。接收器的控制逻辑基于先前的引脚状态来选择表150的行,并且基于从映射160读取的符号来选择列。所选择的列提供当前引脚状态。控制逻辑将当前引脚状态发送到数据存储装置和处理逻辑中的一者或多者。

参考图3,示出了数据传输200的一个实施方案的概括框图。在各种实施方案中,发射器210和接收器230在彼此之间具有一条或多条数据线。虽然通信协议在发射器210与接收器230之间使用多条数据线,但在一些实施方案中,使用单条数据线,而其他一条或多条数据线被去激活或以其他方式断电。在一个实施方案中,发射器210和接收器230使用单个激活的(上电的)数据线在彼此之间传输数据220。发射器210从外部处理逻辑(未示出)接收数据202和数据204,并且发送数据220作为所接收的数据202和数据204的表示。接收器230接收数据220,并且将所接收的数据220解码或映射为数据202和数据204。接收器将所解码的数据作为数据240和数据242发送到外部处理逻辑(未示出)。

发射器210包括控制逻辑(或逻辑214)、用于存储所接收的数据202和204的缓冲器216,以及用于与接收器230传输数据220的接口212。类似地,接收器230包括控制逻辑(或逻辑234)、用于存储所接收的数据240和242的缓冲器236,以及用于与发射器210传输数据220的接口232。逻辑214和逻辑234中的每一者由硬件诸如控制电路以及软件诸如固件和软件应用程序中的一者或多者来实现。缓冲器216和缓冲器236中的每一者用触发器、各种类型的随机存取存储器(RAM)中的一者、内容可寻址存储器(CAM)或其他部件来实现。在一些实施方案中,发射器210和接收器230在彼此之间使用激活的双向数据线,因此有时,发射器210将数据发送到接收器230,并且在其他时候,接收器230将数据发送到发射器210。当接收器230将数据发送到发射器210时,在一个实施方案中,接收器230在双向数据线上接收数据240和数据242,并且类似地,发射器在双向数据线上发送数据202和数据204。在其他实施方案中,发射器210和接收器230中的每一者在其他数据线(未示出)上传输数据。

逻辑214和逻辑234分别确定发射器210和接收器230的操作模式。当逻辑214和逻辑234确定操作模式为数据传输模式时,逻辑214和逻辑234确定待传输的数据的源。发射器210的一个源是被接收到的数据202和数据204。另一个源是存储在缓冲器216中的数据。逻辑214基于操作模式诸如数据传输模式和功率高效数据传输模式在两个源之间进行选择。类似地,接收器230的一个源是被接收到的数据240和数据204。另一个源是存储在缓冲器236中的数据。

当发射器210在数据传输模式下操作时,逻辑214确定在时间间隔内待传输的数据的当前状态。时间间隔的一个示例是时间间隔250。示出了三个电压-时间图,每个图各自用于输入数据202和输入数据204,并且一个图用于发射器210与接收器230之间的数据220。在一些实施方案中,时间间隔250是被确定为足以传输数据并且具有被正确解译以便在接收器230处存储或使用的数据的持续时间。例如,将在时间间隔250中发送的数据是将在多个时间间隔内传输的全部数据的子集或一部分。在一个实施方案中,发射器210可以传输1千兆字节(GB)的总数据,但是对于每个时间间隔250传输2个位(二进制数字)。当发射器210和接收器230中的每一者能够在90纳秒(ns)时间间隔期间在彼此之间传输2-位状态时,时间间隔250为90ns。在这样的实施方案中,逻辑214确定当前状态。在一个实施方案中,数据的源是具有值2'b10的所接收的数据202和204,其中“2'b”表示2-位二进制值。

除了当前状态之外,逻辑214还确定先前状态。先前状态是紧接在当前时间间隔之前的先前时间间隔的当前状态。在当前时间间隔为初始时间间隔时,先前状态为默认初始状态。在一个示例中,默认初始状态为2b'00。在其他实施方案中,其他数据大小、时间间隔持续时间和初始状态是可能的并且可以设想。为了在单条数据线上发送所接收的数据202和204,逻辑214使用当前状态和先前状态中的每一者来确定将作为数据220发送到接收器230的脉冲的数量。在一个实施方案中,逻辑214使用状态表,该状态表基于在时间间隔250内作为数据220接收的脉冲数量将先前状态映射到当前状态。在各种实施方案中,接收器230的逻辑234使用相同的状态表,以便对所接收的脉冲进行解码。在各种实施方案中,逻辑214和逻辑234中的每一者还存储先前状态的副本。

在一个实施方案中,逻辑214和逻辑234中的每一者存储2'b00的先前状态,并且逻辑214确定所接收的数据202和204的当前状态为2'b11。例如,在时间t1,数据202转变为布尔值“1”或逻辑高电平,并且在稍后的时间t3,数据204转变为布尔值“1”,这也是逻辑低电平。使用先前状态2'b00、当前状态2'b11,以及(图2的)状态表诸如先前的表150,逻辑214确定在时间间隔250过去之前应当将3个脉冲作为数据220发送到接收器230。在一个实施方案中,每个唯一数量的脉冲对应于用于映射或解码到2-位当前状态的符号。在一个实施方案中,3个脉冲指示符号D,2个脉冲指示符号C,并且一个脉冲指示符号B。然而,在其他实施方案中,除了状态的另一个大小之外,还使用映射和脉冲数量的另一组合。

在一个实施方案中,响应于数据202在时间t1的第一数据转变,在时间t2生成符号D的第一脉冲。因此,在开始生成脉冲之前,逻辑214不等待固定延迟来确定数据202和数据204的每个可能的数据转变。在一个实施方案中,响应于数据204在时间t3的第二数据转变,在时间t4生成符号D的第三脉冲。数据202和数据204上的最后的数据转变的时间量、脉冲宽度以及脉冲之间的延迟根据设计的不同而不同,并且每一者用于确定时间间隔250。在各种实施方案中,逻辑234使用2'b00的先前状态、所接收的3个脉冲和状态表来确定当前状态为2'b11。逻辑234要么将2'b11的当前状态作为数据242和数据144发送,要么将当前状态存储在缓冲器236中。

在下一个时间间隔250中,在一个实施方案中,逻辑214和逻辑234中的每一者存储先前状态2'11,并且逻辑214确定所接收的数据202和204的当前状态。在时间t5,数据204转变,这使得在时间t6生成第一脉冲。在时间t7的数据202的转变确定待发送的符号,诸如符号C,该符号还确定待生成并且发送到接收器230的脉冲的最终数量。以类似的方式,在第三时间间隔250中,逻辑214确定当前状态由符号B或单个脉冲表示,这由接收器230的逻辑234解码或重新映射。

现在参见图4,示出了用于在设备之间高效地传输数据的方法300的一个实施方案的概括流程图。为了讨论的目的,以顺序次序示出该实施方案中(以及图5、图7和图11至图12中)的步骤。然而,在其他实施方案中,一些步骤可以与所示次序不同的次序发生,一些步骤可同时实行,一些步骤可与其他步骤组合,并且一些步骤可不存在。

发射器和接收器的I/O接口的逻辑将发射器和接收器转变为数据传输模式(框302)。在各种实施方案中,发射器是主机计算设备和外围设备的I/O接口中的一者,并且类似地,接收器是主机计算设备和外围设备中的另一者。在一些实施方案中,发射器和接收器使用串行数据通信协议彼此通信。在各种实施方案中,通信协议确定在特定时间哪个设备是发射器。I/O接口的逻辑基于以下各项中的一项或多项来确定到了从空闲模式转变到数据传输模式的时间:确定时间间隔已经过去;确定用于传输的数据量超过阈值;以及从发射器和接收器中的一者或多者的处理逻辑接收指示转变的控制信号。

I/O接口的逻辑确定发射器和接收器的脉冲编码数据的默认状态(框304)。默认状态也称为初始状态。在下面的描述中,发射器和接收器以2-位状态传输数据,但使用单条数据信号线。在其他实施方案中,使用另一数量的位和另一数量的数据线。另外,在其他实施方案中,逻辑和数据信号线的数量被复制以提供发射器与接收器之间的总线。在各种实施方案中,发射器和接收器存储数据的初始状态,该初始状态是预先确定的默认状态。该初始状态用作将从发射器传输到接收器的第一状态的先前状态。

在确定数据的初始状态之后,发射器逻辑开启定时器以测量时间间隔(框306)。在所接收的数据上发生最后一次数据转变的时间量、脉冲宽度以及脉冲之间的延迟因设计的不同而不同,并且每一者用于确定时间间隔的持续时间。在一个实施方案中,接收器逻辑不开启定时器来测量相同的时间间隔,直到从发射器接收到数据转变。在该时间间隔期间,发射器将并行多位数据编码成串行数据作为一系列脉冲(框308)。在一个实施方案中,发射器基于所接收的当前状态和所存储的先前状态来确定脉冲的数量(或计数)。在一个实施方案中,发射器使用与(图2的)表150等效的符号生成表。发射器向接收器发送串行数据,诸如脉冲数量(框310)。

在接收器处所测量的时间间隔期间,接收器逻辑对从发射器接收的脉冲编码数据中的脉冲数量进行计数(框312)。在一些实施方案中,脉冲以上升沿开始,而在其他实施方案中,脉冲以下降沿开始。当上升沿用于指示脉冲的开始时,应当指出,最后一个脉冲可以上升沿开始,但下降沿可以出现在时间间隔之外。然而,在一些实施方案中,接收器逻辑仍然对最后一个脉冲进行计数。类似地,当下降沿用于指示脉冲的开始时,当在第二时间间隔完成之后出现最后一个脉冲的对应的上升沿时,接收器逻辑仍对最后一个脉冲进行计数。

如果接收器I/O接口的逻辑确定时间间隔尚未过去(条件框314的“否”分支),则方法300的控制流程返回到框312,其中逻辑继续对任何接收到的脉冲进行计数。如果接收器I/O接口的逻辑确定第二时间间隔已经过去(条件框314的“是”分支),则逻辑对表示并行数据的串行数据进行解码(框316)。在一个实施方案中,逻辑基于脉冲计数和先前状态来确定数据的当前状态。例如,逻辑使用脉冲数量来将先前状态映射到当前状态。在各种实施方案中,逻辑通过使用与(图2的)表150等效的表来确定映射。

在一个实施方案中,无脉冲的计数指示当前状态等于先前状态。类似地,逻辑确定一个脉冲的计数仅指示2-位数据状态中的特定的一个改变,而逻辑则确定两个脉冲的计数仅指示2-位数据状态中的另一者改变。例如,如果先前状态是2'b01,其中“2'b”指示两位二进制值,则在一个实施方案中,逻辑确定一个脉冲的计数指示当前状态为2'b00,其中只有最低有效位改变。以类似的方式,逻辑确定两个脉冲的计数指示当前状态为2'b11,其中只有最高有效位改变。在该示例中,逻辑确定零计数指示没有改变,因此当前状态为2'b01,并且三个脉冲的计数指示两个位都改变,因此当前状态为2'b10。

接收器逻辑将当前状态发送到接收器处的处理逻辑和/或数据存储装置(框318)。如果I/O接口确定数据传输模式尚未结束(条件框320的“否”分支),则方法300的控制流程返回到框306,在该框中,重启定时器以测量时间间隔。否则,如果I/O接口确定数据传输模式已经结束(条件框320的“是”分支),则I/O接口将发射器和接收器中的每一者转变为另一操作模式,诸如空闲模式(框322)。

现在参见图5,示出了用于在设备之间高效地传输数据的方法400的一个实施方案的概括流程图。设备的接口的逻辑在主机计算设备与外围设备之间操作双向信号线(框402)。数据传输基于数据传输模式、空闲模式或其他模式发生。数据线等效于物理线路,其触点与其他触点或焊盘连接,以在主机计算设备与外围设备之间形成电短路。接口逻辑以硬件诸如电路、软件或硬件和软件的组合来实现。在各种实施方案中,接口逻辑支持串行数据通信协议。

如果发射器和接收器中的一者或多者的逻辑没有接收到在功率高效模式下操作的指示(条件框404的“否”分支),则方法400的控制流程返回到框402,在该框中,接口保持当前操作模式。在一些实施方案中,接口基于时间间隔、从电源管理单元接收的指示或其他项来确定到了转变到功率高效模式的时间。如果发射器和接收器中的一者或多者的逻辑接收到在功率高效模式下操作的指示(条件框404的“是”分支),则接口在存储数据时在空闲模式下操作双向数据信号线(框406)。当双向数据线保持在恒定的电压电平时,接口将所接收的数据存储在对应的缓冲器中,而不是在接收到数据时在双向数据线上发送数据。

如果接口没有确定到了结束空闲模式的时间(条件框408的“否”分支),则方法400的控制流程返回到框406,在该框中,接口保持空闲模式,同时存储所接收的数据。从该空闲模式转变到数据传输模式的条件包括以下各项中的一项或多项:确定时间间隔已经过去;确定在该空闲模式期间存储的数据量超过阈值;以及从设备的处理逻辑接收指示转变的控制信号。如果接口确定到了结束空闲模式的时间(条件框408的“是”分支),则接口通过在设备之间发送所存储的数据在数据传输模式下操作双向数据信号线(框410)。

用于从该数据传输模式转变的条件包括以下各项中的一项或多项:确定时间间隔已经过去;确定在该数据传输模式期间传输的数据量超过阈值;以及接收指示从设备的处理逻辑转变的控制信号。在各种实施方案中,接口生成一系列脉冲,如前所述。接收逻辑将单条数据信号线上的脉冲转换为两个或更多个数据信号。当通信协议是USB串行数据通信协议时,接收逻辑将脉冲转换为两个数据信号。

如果接口没有确定到了结束数据传输模式的时间(条件框412的“否”分支),则方法400的控制流程返回到框410,在该框中,接口保持数据传输模式。如果接口确定到了结束数据传输模式的时间(条件框412的“是”分支),但功率高效模式尚未结束(条件框414的“否”分支),则方法400的控制流程返回到框406,在该框中,接口在存储数据时在空闲模式下操作双向数据信号线。如果接口确定到了结束数据传输模式的时间(条件框412的“是”分支),并且功率高效模式已经结束(条件框414的“是”分支),则方法400的控制流程返回到框402,在该框中,接口基于当前操作模式而不是功率高效模式来操作双向信号线。

参考图6,示出了计算系统500的一个实施方案的概括框图。在各种实施方案中,计算系统500包括具有用于连接到外围设备540A至540B的接口和用于与存储器562通信的存储器接口560的处理器复合体510。例如,在一些实施方案中,处理器复合体510包括用于与外围设备540A至540B的I/O接口542A至542B通信的输入/输出(I/O)接口530A至530B。为了便于说明,在图5中未示出时钟源,诸如锁相环(PLL)、中断控制器、功率管理器等。还应当指出,计算系统500的部件的数量(以及图5中所示的那些计算系统的子部件的数量,诸如在处理器复合体510内)在不同实施方案中可以不同。例如,在一些实施方案中,计算系统500使用通信结构550(或多个结构550)在附加的输入/输出(I/O)接口530C与具有对应的I/O接口542C的附加的外围设备540C之间路由数据。在此类实施方案中,处理器复合体510包括用于与结构550通信的结构接口单元512。在其他实施方案中,计算系统500不包括结构550和I/O接口530C。

在各种实施方案中,计算系统500被包括在各种主机计算设备中的一者内。主机计算设备的示例是台式计算机、膝上型计算机或笔记本计算机或平板计算机、智能电话、车辆中的多媒体系统等。术语“处理器复合体”用于表示使用本地存储装置诸如共享高速缓存存储器子系统并且能够一起处理工作负载的一个或多个处理器内核的配置。如图所示,处理器复合体510与一个或多个外围设备,诸如外围设备540A至540C通信。外围设备540A至540C的示例是便携式数据存储设备、多媒体设备、打印机、扫描仪、相机和摄像机、键盘、操纵杆等。

对于许多应用程序,不需要访问和安装供处理器复合体510与外围设备540A至540C通信的设备驱动程序。I/O接口530A至530C和542A至542C已经支持外围设备540A至540C的连接和以后的重新连接。在各种实施方案中,I/O接口530A至530C和542A至542C支持串行数据通信协议,诸如用于连接具有分布式实时控制和安全性的设备的通用串行总线(USB)标准串行总线协议。虽然USB协议使用两条数据线,但在一些实施方案中,I/O接口530A至530C和542A至542C中的一者或多者使用单条数据信号线,而数据线中的一条数据线被去激活或以其他方式断电。如一个示例中所示,I/O接口530B和542B经由单条数据信号线576通信,而数据线578被去激活。在各种实施方案中,当接口具有并行的多位数据以在单条数据线上传输时,接口将并行数据编码为串行数据,诸如一系列脉冲。

在数据传输模式期间,I/O接口530B和542B中的任一者是此时的发射器570,将单条数据信号线576上的一系列一个或多个脉冲发送到接收器580。如图所示,在一个实施方案中,发射器570在两个单独的数据信号线上接收如数据1 572和数据2 574所示的两个数据信号。然而,发射器570在单条数据信号线576上将一系列一个或多个脉冲发送到接收器580。接收器580检测该单条数据信号线576上的脉冲,并且将它们转换成两个分开的数据线上的两个数字信号,诸如数据1 582和数据2 584。应当指出,虽然在例示的实施方案中从左到右示出了数据传输,但在其他实施方案中,数据传输将数据从右传输到左,因为I/O接口530A至530C和542A至542C支持双向数据通信。

在一个实施方案中,I/O接口530A至530C和542A至542C支持多种操作模式,诸如数据传输模式、空闲模式和较低功率空闲模式。对于空闲模式和较低功率空闲模式中的每一者,I/O接口530A至530C和542A至542C在对应的单条数据信号线上保持恒定的电压电平。例如,发射器570和接收器580中的每一者在单条数据线576上保持恒定的电压电平。较低功率空闲模式使用小于空闲模式的第二电压电平的第一电压电平。在一个实施方案中,发射器570和接收器580中的每一者的电源电压为4.0伏,并且第一电压电平大于或等于4.0伏并且小于4.15伏。在此,在该实施方案中,使用0.15伏的电压余量。第二电压电平等于电源电压和电压余量之和,或4.15伏。因此,当使用较低功率空闲模式时,进一步降低了功耗。

数据传输模式使用第二电压电平和大于该第二电压电平的第三电压电平中的每一者。例如,数据传输模式使用4.15伏的第二电压电平和等于电源电压和两倍电压余量之和的第三电压电平,或4.30伏。在单条数据线576上从发射器570发送到接收器580的一个或多个脉冲具有在4.15伏与4.30伏之间转变的电压电平。因此,在转变到数据传输模式之前,接口530A至530C和外围设备540A至540C最先从较低功率空闲模式转变到空闲模式,然后从空闲模式转变到数据传输模式。

在一些实施方案中,存储器接口560使用至少一个存储器控制器和至少一个高速缓存用于片外存储器562,诸如同步DRAM(SDRAM)。存储器接口560将存储器请求存储在请求队列中,使用任何数量的存储器端口,并且使用能够使用用于与存储器信道对接的多种协议中的一种或多种来与存储器562对接的电路,这些存储器信道用于与存储器设备(未示出)对接。存储器562存储一个或多个应用程序、基本操作系统(OS),并且有时存储虚拟(客户)OS。基本OS的各部分的副本由处理器520A至520B中的一个或多个处理器执行。除了在应用程序执行期间生成的结果数据和中间数据之外,存储器562还存储应用程序的源数据。

在一些实施方案中,处理器520A至520B使用均匀架构。例如,处理器520A至520B中的每一者是通用处理器,诸如中央处理单元(CPU),其利用电路来根据预定义的通用指令集执行指令。选择各种指令集架构(ISA)中的任何一种。在一些实施方案中,处理器520A至520B内的每个内核支持软件进程的一个或多个线程的无序执行,并且包括多级流水线。在其他实施方案中,处理器520A至520B中的一个或多个处理器支持指令的有序执行。在一些实施方案中,处理器520A至520B包括用于获取指令、解码指令、执行依赖性检查、执行操作数标识符的寄存器重命名和执行指令的单元。处理器520A至520B可以支持各种操作系统的执行。

在其他实施方案中,处理器520A至520B使用异构架构。在此类实施方案中,处理器520A至520B中的一个或多个处理器是高度并行的数据架构处理器,而不是CPU。在一些实施方案中,处理器520A至520B的这些其他处理器使用单指令多数据(SIMD)内核。SIMD内核的示例为图形处理单元(GPU)、数字信号处理(DSP)内核或其他。在各种实施方案中,处理器520A至520B中的每一个处理器使用一个或多个内核以及一个或多个级别的高速缓存存储器子系统。

在各种实施方案中,不同类型的流量独立地流动通过结构550。通过允许单个物理结构总线包括多个重叠虚拟信道或专用源缓冲区和目的缓冲区来实现独立流动,每个虚拟信道都携带不同类型的流量。每个信道独立地进行流量控制,而不依赖于不同信道中的事务。结构5110也可以是基于分组的,并且可以是分级的,其中具有网桥、交叉开关、点到点或其他互连器。

现在参见图7,示出了用于在设备之间高效地传输数据的方法600的一个实施方案的概括流程图。设备的接口的逻辑在接口的数据线上以第一电压电平在较低功率空闲模式下操作主机计算设备与外围设备之间的双向信号线(框602)。如前所述,数据线等效于物理线路,其触点与其他触点或焊盘连接,以在主机计算设备与外围设备之间形成电短路。接口逻辑以硬件诸如电路、软件或者硬件和软件的组合来实现。在各种实施方案中,接口逻辑支持串行数据通信协议。

虽然通信协议使用一个以上的数据信号线,但在一些实施方案中,接口逻辑使用电压电平高于主机计算设备的接口逻辑和外围逻辑的接口逻辑所使用的电源电压电平的单条数据信号线。在各种实施方案中,较高电压电平中的每一者比电源电压电平大整数倍电压余量。单条数据信号线上的较高电压电平产生脉冲,这些脉冲由接收逻辑转换成单独的数据信号。在一些实施方案中,较低功率空闲模式的第一电压电平等于电源电压电平。在其他实施方案中,较低功率空闲模式的第一电压电平等于电源电压电平与小于电压余量的电压电平之和。在一个示例中,电源电压电平为4.0伏并且电压余量为0.15伏。因此,在较低功率空闲模式下,接口逻辑在设备之间的单条数据信号线上保持大于或等于4.0伏并且小于4.15伏的电压电平。

如果接口没有确定到了转变到数据传输模式的时间(条件框604的“否”分支),则方法600的控制流程返回到框602,在该框中,接口保持较低功率空闲模式。在一些实施方案中,接口基于时间间隔来确定到了转变到另一模式的时间。在其他实施方案中,接口基于所存储的用于传输的数据量超过阈值来确定到了转变到另一模式的时间。在其他实施方案中,接口基于从设备的处理逻辑接收到指示转变的控制信号来确定到了转变到另一模式的时间。

如果接口确定到了转变到数据传输模式的时间(条件框604的“是”分支),则接口以大于第一电压电平的第二电压电平在空闲模式下操作双向数据信号线(框606)。如前所述,较低功率空闲模式的第一电压电平等于电源电压电平与小于电压余量的电压电平之和。在一个示例中,电源电压电平为4.0伏并且电压余量为0.15伏。因此,在较低功率空闲模式下,接口逻辑在设备之间的单条数据信号线上保持大于或等于4.0伏并且小于4.15伏的电压电平。在一个实施方案中,第二电压电平等于电源电压电平和电压余量之和。使用值的先前示例,第二电压电平是4.0伏与0.15伏之和,或4.15伏。

如果接口没有确定到了结束空闲模式的时间(条件框608的“否”分支),则方法600的控制流程返回到框606,在该框中,接口保持空闲模式。如前所述,用于转变到另一模式的条件包括以下各项中的一项或多项:确定时间间隔已经过去;确定所存储的用于传输的数据量超过阈值;以及从设备的处理逻辑接收指示转变的控制信号。如果接口确定到了结束空闲模式的时间(条件框608的“是”分支),则接口以介于第二电压电平与第二电压电平和电压余量之和之间的一系列脉冲在数据传输模式下操作双向数据信号线(框610)。使用值的先前示例,接口生成介于4.15伏与4.30伏之间的一系列脉冲。接收逻辑将单条数据信号线上的脉冲转换成待存储在缓冲器中的两个或多个数据信号。当通信协议是USB串行数据通信协议时,接收逻辑将脉冲转换为两个数据信号。

如果接口没有确定到了结束数据传输模式的时间(条件框612的“否”分支),则方法600的控制流程返回到框610,在该框中,接口保持数据传输模式。从数据传输模式转变的条件包括以下各项中的一项或多项:确定时间间隔已经过去;确定所传输的数据量超过阈值;以及从设备的处理逻辑接收指示转换的控制信号。如果接口确定到了结束数据传输模式的时间(条件框612的“是”分支),则方法600的控制流程返回到框602,在该框中,接口在较低功率空闲模式下操作。

现在转向图8,示出了信号波形700的概括框图。在一个实施方案中,时间间隔710表示空闲模式的持续时间,而时间间隔720表示双向数据线上的数据传输的持续时间。示出了双向数据线上的信号的电压电平。在空闲模式期间,诸如在每个时间间隔710期间,双向数据线保持在恒定的电压电平。在第一数据传输周期诸如第一时间间隔720期间,数据作为一系列脉冲被发送。代替使用接地参考电压电平来测量脉冲,使用在先前的空闲模式期间使用的相同的恒定电压电平。电压余量730被添加到空闲模式的电压电平以指示脉冲。相反,在第二数据传输周期期间,诸如第二时间间隔720期间,数据再次作为一系列脉冲被发送。代替使用接地参考电压电平来测量脉冲,使用在先前的空闲模式期间使用的相同的恒定电压电平。从空闲模式的电压电平中去除电压余量730以指示脉冲。

现在转向图9,示出了主机计算设备(或接口800)的I/O接口800的概括框图。在数据传输模式期间,编解码器874接收来自主计算设备的处理逻辑的数据,诸如数据线870和数据线872上的数据。当通信协议是USB串行数据通信协议时,接口800接收两个数据信号。在其他实施方案中,使用另一通信协议和另一数量的数据信号线。在一些实施方案中,在数据信号线870和数据信号线872上接收的数据是差分信号,并且编解码器874将这些信号转换成数字信号,这些数字信号被存储在缓冲器878中,以供以后用于调度数据传输。如图所示,接口800接收电源电压802,该电源电压由电压升压804诸如降压升压转换器增加,以提供电压电平806。在一些实施方案中,电源电压802为4.0伏,并且电压电平806比电源电压802大两倍电压余量。当电压余量为0.15伏时,电压电平806为4.30伏。在一些实施方案中,增加电源电压电平802以产生电压电平806是可编程的。

在一个实施方案中,电容器808被选择为具有大的值以去除电压电平806上的电压变化。例如,在一些实施方案中,电容器808具有5至60微法的电容。在一个实施方案中,接口800包括电路元件,该电路元件包括开关810并且具有连接到输入节点807的输入节点,并且具有连接到输出节点809的输出节点。该电路元件在输入节点807上接收电压电平806,并且在输出节点809上提供电压电平840。在一个实施方案中,该系列开关810包括多个串联连接的开关,用于基于输入节点807上的电压电平806在输出节点809上生成脉冲。此外,开关810基于从延迟脉冲调制器(DPM)876到控制电路的输入在输出节点809上生成脉冲。在例示的实施方案中,开关812至816的控制电路包括开关818和开关820。然而,在其他实施方案中,使用各种其他类型的控制电路。在一个实施方案中,开关810的多个串联连接的开关由场效应晶体管(FET)实现。虽然示出了三个晶体管812、814和816,但在其他实施方案中,使用了其他数量的晶体管。在一个实施方案中,n-型晶体管812(或nfet 812)始终被启用或始终被导通,并且包括用于过流保护(OCP)的多种电路中的一者。在例示的实施方案中,nfet 814被开关818启用和禁用,并且pfet 816被开关820启用和禁用。在各种实施方案中,开关818和开关820也由晶体管实现。开关818和开关820从延迟脉冲调制器876接收输入值。

在各种实施方案中,开关810的输出节点809经由外部单条数据信号线连接到外部外围设备。在各种实施方案中,复制接口800,并且数据信号线是主机计算设备与外围设备之间的外部双向总线的多条数据信号线中的一条数据信号线。为了便于说明,未示出保护电路和降噪电路,诸如无源器件,如二极管、电阻器和电容器。开关810的输入节点807,诸如开关812的端子,接收电压电平806。使用先前示例的值,开关812接收4.30伏。当接口800在空闲模式下操作时,开关818禁用nfet 814,这断开开关814,并且使电压电平806驱动电流通过电感器830的串联连接的电感器832至836。虽然示出了三个电感器,但在其他实施方案中,电感器830包括另一数量的电感器。电感器830减小电流波纹并且提高有效输出阻抗。电感器830响应于流动通过电感器830的电流的任何快速变化(时间变化率)而增加其电压,并且减小pfet 816的有效栅极-源极电压。当脉冲出现在连接到外部外围设备的单条数据信号线上时,电感器830的电压的增加还限制了从输入节点807上的电压电平806流动到输出节点809上的电压电平840的电流的变化。

此外,当接口800在空闲模式下操作时,开关820选择运算放大器852的输出作为pfet 816的控制输入。pfet 816的控制输入是pfet 816的栅极端子。运算放大器852将电压电平840与小于可变电压源850的值的电压电平806进行比较。当接口800在空闲模式下操作时,电压源850被设置为电压余量或0.15伏。因此,运算放大器的输入为4.30伏,该电压为电压电平806的值,小于0.15伏,或为4.15伏。当输出节点809上的电压电平840等于运算放大器852的另一输入的值或为4.15伏时,运算放大器852不放大差值。当接口800在较低功率空闲模式下操作时,在一个实施方案中,逻辑将可编程电压源850设置为0.25伏,而不是0.15伏,这使得运算放大器852以提供4.05伏的电压电平840的方式控制开关816。因此,接口800在较低功率空闲模式期间相比于在空闲模式期间消耗更少的功率。在其他实施方案中,逻辑将可编程电压源850设置为各种其他电压电平。

当接口800在数据传输模式下操作时,开关818启用(闭合)开关816,这使信号绕过电感器830并且在输出节点809上生成具有介于电压电平806(或在一个示例中为4.30伏)与电源电压和电压余量之和(或在一个示例中为4.15伏)之间的值的一系列脉冲。在单条数据信号线上将脉冲从输出节点809发送到外部外围设备。当接口800在接收模式下操作时,在开关810的输出节点809上接收到脉冲并且这些脉冲由运算放大器860接收。在各种实施方案中,运算放大器860相比于电感器830具有更快的响应。因此,运算放大器860相比于电感器830更快地处理输出节点809上的所接收的脉冲。

在接收模式下,开关818禁用(断开)开关814并且将pfet 816的栅极端子连接到延迟脉冲调制器876的控制输出端,而不是运算放大器852的输出端。运算放大器860将所接收的脉冲与电压电平806(或在一个示例中为4.30伏)进行比较。延迟脉冲调制器876和编解码器874中的一者或多者诸如使用先前针对状态表150(图2)描述的映射来将脉冲转换为数字数据信号。经转换的数据被存储在缓冲器878中,以供稍后传输到主机计算设备的处理逻辑。

现在转向图10,示出了外围设备(或接口900)的I/O接口900的概括框图。在各种实施方案中,接口900包括先前描述的接口800(图9)的部件中的许多部件。然而,在一个实施方案中,接口900不使用升压器,可编程电压源950的极性与电压源850的极性相反,并且开关912、914和916的顺序与开关812、814和816的顺序相反。开关912包括反向电流保护(RCP)电路,而不是开关812所使用的过保护电路(OCP)。使用电源电压和电压余量的较早示例值,接口900生成用于数据传输的介于4.0伏与4.15伏之间的脉冲,而不是如接口800所生成的介于4.15伏与4.30伏之间。运算放大器960将在单条数据信号线上从外部主机计算设备接收到的脉冲与电源电压902(或在一个示例中为4.0伏)进行比较。运算放大器960的这种比较与接口800的运算放大器860所执行的将所接收的脉冲与电源电压和两倍电压余量(或在一个示例中为4.3伏)之和的比较形成对比。

在一些实施方案中,在数据信号线970和数据信号线972上接收的数据是差分信号,并且编解码器974将这些信号转换成数字信号,这些数字信号被存储在缓冲器978中,以供以后用于调度数据传输。如图所示,接口900接收电源电压902。在一些实施方案中,电源电压902为4.0伏,并且在空闲操作模式期间,电压电平906比电源电压902大电压余量,该电压余量也被外部主机计算设备使用。当电压余量为0.15伏时,当接口900在空闲模式下操作时,开关输出节点909(或输出节点909)上的电压电平906为4.15伏。在一个实施方案中,电容器908被选择为具有大的值以去除电源电压902上的电压变化。例如,在一些实施方案中,电容器908具有5至90微法的电容。

在一个实施方案中,接口900包括电路元件,该电路元件包括开关910并且具有连接到输入节点907的输入节点,并且具有连接到输出节点909的输出节点。该电路元件在输入节点907上接收电源电压902,并且在输出节点909上提供电压电平906。在一个实施方案中,该系列开关910包括多个串联连接的开关,用于基于从延迟脉冲调制器976到控制电路的输入生成脉冲。类似于接口500,接口900中的开关由晶体管实现。虽然示出了三个晶体管912、914和916,但在其他实施方案中,使用其他数量的晶体管。在例示的实施方案中,开关912至916的控制电路包括开关918和开关920。然而,在其他实施方案中,使用各种其他类型的控制电路。

在一个实施方案中,n-型晶体管912(或nfet 912)始终被启用或始终导通。在例示的实施方案中,nfet 914被开关918单独启用和禁用,并且pfet916被开关920单独启用和禁用。在各种实施方案中,开关918和开关920也由晶体管实现。开关918和开关920从延迟脉冲调制器976接收输入值。在各种实施方案中,开关910的输出节点909经由外部单条数据信号线连接到外部主机计算设备。在各种实施方案中,复制接口900,并且数据信号线是主机计算设备与外围设备之间的外部双向总线的多条数据信号线中的一条数据信号线。为了便于说明,未示出保护电路和降噪电路,诸如无源器件,如二极管、电阻器和电容器。开关910的开关输入节点907(或输入节点907),诸如开关912的端子,接收电源电压902。使用先前示例的值,当接口900在空闲模式下操作时,开关912在输入节点907上接收4.0伏,并且开关916在输出节点909上提供4.15伏。

当接口900在空闲模式下操作时,开关918禁用nfet 914,这断开开关914,并且使输入电压电平906驱动电流通过电感器930的串联连接的电感器932至936。虽然示出了三个电感器,但在其他实施方案中,电感器930包括另一数量的电感器。电感器930减小电流波纹并且提高有效输出阻抗。电感器930响应于流动通过电感器930的电流的任何快速变化(时间变化率)而增加其电压,并且减小pfet 916的有效栅极-源极电压。当脉冲出现在连接到外部主机计算设备的单条数据信号线上时,电感器930的电压的增加还限制了从电压电平906流动到电源电压902的电流的变化。

此外,当接口900在空闲模式下操作时,开关920选择运算放大器952的输出作为pfet 916的控制输入。pfet 916的控制输入是pfet 916的栅极端子。运算放大器952将电压电平906与电源电压902和可变电压源950之和进行比较。在一个实施方案中,当接口900在空闲模式下操作时,电压源950被设置为电压余量或0.15伏。因此,当使用先前示例的值时,运算放大器952的输入为4.0伏与0.15伏之和,或为4.15伏。当电压电平906等于该总和或4.15伏时,运算放大器952不放大差值。如先前针对接口500所述,当接口900在较低功率空闲模式下操作时,在一个实施方案中,逻辑将可编程电压源950设置为0.05伏,而不是0.15伏,这使得运算放大器952以提供4.05伏的电压电平906的方式控制开关916。因此,接口900在较低功率空闲模式期间相比于在空闲模式期间消耗更少的功率。在其他实施方案中,逻辑将可编程电压源950设置为各种其他电压电平。

当接口900在数据传输模式下操作时,开关918启用(闭合)开关916,这使信号绕过电感器930并且在输出节点909上生成具有介于电源电压(或在一个示例中为4.0伏)与电源电压和电压余量之和(或在一个示例中为4.15伏)之间的值的一系列脉冲。脉冲在单条数据信号线上从输出节点909被发送到外部主机计算设备。当接口900在接收模式下操作时,由运算放大器960接收脉冲。在各种实施方案中,运算放大器960相比于电感器930具有更快的响应。因此,运算放大器960相比于电感器930更快地处理输出节点909上的所接收的脉冲。

在接收模式下,开关918禁用(断开)开关914并且将pfet 916的栅极端子连接到延迟脉冲调制器976的控制输出端,而不是运算放大器952的输出端。运算放大器960将所接收的脉冲与电源电压902(或在一个示例中为4.0伏)进行比较。延迟脉冲调制器976和编解码器974中的一者或多者诸如使用先前针对状态表200(图2)描述的映射来将脉冲转换为数字数据信号。经转换的数据被存储在缓冲器978中,以供以后传输到外围设备的处理逻辑。

方法1000和方法1100中的每一种方法描述了主机计算设备和外围设备的接口(当这些接口在多个空闲模式中的任一个空闲模式下或正在传输数据时)。当接收数据时,使用先前针对接口800和接口900描述的步骤。现在参见图11,示出了用于在设备之间高效地传输数据的方法1000的一个实施方案的概括流程图。用于双向信号线的主机计算设备的接口逻辑接收电源电压电平(框1002)。升压转换器生成比电源电平大两倍电压余量的第一电压电平(框1004)。在一个实施方案中,升压转换器是直流(DC)到DC降压升压转换器。

接口逻辑的一系列开关在输入节点处接收第一电压电平(框1006)。在一个实施方案中,该系列开关是两个或更多个串联连接的晶体管,诸如场效应晶体管(FET)。开关中的一个开关以电并联配置与一个或多个串联连接的电感器连接。当该开关闭合时,电信号流动通过该开关,而不是流动通过串联连接的电感器。如果主机计算设备的操作模式为较低功率空闲模式(条件框1008的“较低功率空闲模式”分支),则主机计算设备的接口生成介于电源电压电平与电源电压和小于电压余量的电压电平之和之间的第二电压电平(框1010)。如前所述,使用值的先前示例,接口生成第二电压电平作为大于或等于4.0伏并且小于4.15伏的电压电平。接口在接口的输出端处保持第二电压电平(框1012)。

如果主机计算设备的操作模式为空闲模式(条件框1008的“空闲模式”分支),则接口生成比电源电压电平大电压余量的第三电压电平(框1014)。如前所述,使用值的先前示例,接口生成作为4.0伏与0.15伏之和或4.15伏的第三电压电平。接口在接口的输出端处保持第三电压电平(框1016)。

如果主机计算设备的操作模式为数据传输模式(条件框1008的“数据传输模式”分支),则接口基于电源电压电平和待传输的数据生成第一系列脉冲(框1018)。在一个实施方案中,延迟脉冲调制器从缓冲器检索数据。数据先前由编解码器从两个单独的模拟差分信号转换为单个数字信号,并且该单个数字信号或脉冲的表示被存储在缓冲器中。延迟脉冲调制器将脉冲发送到该系列开关的控制电路。

在一个实施方案中,该系列开关中的一个开关以并联配置与一个或多个串联连接的电感器连接。在任一空闲模式期间,该开关断开,这使信号被路由通过一个或多个串联连接的电感器。在数据传输模式期间,该开关闭合,这使信号绕过一个或多个串联连接的电感器。该系列开关基于待传输的数据生成介于第二电压电平与第三电压电平之间的第二系列脉冲(框1020)。第二系列脉冲还取决于控制电路。使用值的先前示例,接口生成介于4.15伏与4.30伏之间的一系列脉冲。接收逻辑将单条数据信号线上的脉冲转换成待存储在缓冲器中的两个或多个数据信号。当通信协议是USB串行数据通信协议时,接收逻辑将脉冲转换为两个数据信号。

现在参见图12,示出了用于在设备之间高效地传输数据的方法1100的一个实施方案的概括流程图。用于双向信号线的外围设备的接口逻辑接收电源电压电平(框1102)。接口逻辑的一系列开关在输入节点处接收第一电压电平(框1104)。在各种实施方案中,该系列开关具有对应的主机计算设备中的一系列开关的镜像配置。如果外围设备的操作模式是较低功率空闲模式(条件框1106的“较低功率空闲模式”分支),则接口生成介于电源电压电平与电源电压和小于电压余量的电压电平之和之间的第一电压电平(框1108)。如前所述,使用值的先前示例,外围设备的接口生成第一电压电平作为大于或等于4.0伏并且小于4.15伏的电压电平。接口在接口的输出端处保持第一电压电平(框1110)。

如果主机计算设备的操作模式为空闲模式(条件框1108的“空闲模式”分支),则接口生成比电源电压电平大电压余量的第二电压电平(框1112)。如前所述,使用值的先前示例,接口生成作为4.0伏与0.15伏之和或4.15伏的第三电压电平。接口在接口的输出端处保持第二电压电平(框1114)。

如果主机计算设备的操作模式为数据传输模式(条件框1108的“数据传输模式”分支),则接口基于电源电压电平和待传输的数据生成第一系列脉冲(框1116)。该系列开关基于待传输的数据生成介于电源电压电平与第二电压电平之间的第二脉冲系列(框1118)。第二系列脉冲还取决于控制电路。使用值的先前示例,外围设备的接口生成介于4.0伏与4.15伏之间的一系列脉冲。接收逻辑将单条数据信号线上的脉冲转换成待存储在缓冲器中的两个或多个数据信号。当通信协议是USB串行数据通信协议时,接收逻辑将脉冲转换为两个数据信号。

现在转向图13,示出了主机计算设备与外围设备之间的I/O接口1200的概括框图。I/O接口1200也可称为接口1200。在例示的实施方案中,主机计算设备显示在左边,而外围设备显示在右边。然而,在其他实施方案中,该放置被颠倒并且部件被切换。如图所示,主机计算设备和外围设备跨引脚1210与引脚1240之间以及引脚1212与引脚1242之间的信号线进行通信。在一个实施方案中,引脚1210与引脚1240之间的信号线以脉冲的形式传输数据,而引脚1212与引脚1242之间的信号线传输接地参考电压电平。在各种实施方案中,接口1200包括先前描述的接口800和接口900(图9和图10)的部件中的许多部件。

在一些实施方案中,电源电压1202为4.0伏,并且不使用升压器。类似于前面针对接口800描述的电感器830,电感器1204减小电流波纹并且提升有效输出阻抗。电感器1204响应于流动通过电感器1204的电流的任何快速变化(时间变化率)而增加其电压。当脉冲出现在引脚1210与引脚1240之间的单条数据信号线上时,电感器1204的电压增加还限制了从电源电压1202流动到节点1206上的电压电平的电流变化。电感器1234具有与电感器1204类似的行为。电容器1208是交流(AC)耦合电容器。电容器1208耦合节点1206与延迟脉冲调制器1220和延迟脉冲调制器1222之间的AC信号。电容器1208防止直流(DC)信号通过,而只允许AC信号通过。电容器1238具有与电容器1208类似的行为。

主机计算设备包括传输延迟脉冲调制器(DPM)1220和接收DPM1222。在数据传输模式期间,编解码器(未示出)从主机计算设备的处理逻辑接收数据。如前所述,在一些实施方案中,使用USB串行数据通信协议。在一个实施方案中,主机计算设备的处理逻辑向编解码器提供差分信号,该编解码器将信号转换为数字信号。传输DPM 1220将数字信号作为脉冲在节点1206上输送。

简要地参考(图1和图3的)数据传输100和数据传输200,在一个实施方案中,发射器继续发送脉冲,但在一些实施方案中,发射器发送正脉冲和负脉冲两者,而不是仅发送正脉冲。在图14至图15中提供了这些脉冲的示例。在一个实施方案中,接口1200的传输DPM1220接收数据,诸如(图3的)数据202和数据204,并且输送正脉冲和负脉冲两者。外围设备中的控制逻辑将来自传输DPM 1220的一系列正脉冲和负脉冲解译为符号。在一个实施方案中,外围设备中的控制逻辑使用符号生成表150(图2)来将2-位先前引脚状态映射到2-位当前引脚状态。表150基于在时间间隔期间在单条数据信号线上接收的正脉冲和负脉冲的数量和顺序来执行映射。外围设备中的传输DPM 1250具有与传输DPM 1220类似的行为。

当主机计算设备在接收模式下操作时,在节点1206上接收脉冲并且由接收DPM1222接收脉冲。在各种实施方案中,接收DPM 1222和任何输入电路(未示出)诸如一个或多个缓冲器、运算放大器或其他输入电路相比于电感器1204具有更快的响应。因此,接收DPM1222相比于电感器1204更快地处理节点1206上的所接收的脉冲。接收DPM 1222和任何编解码器(未示出)中的一者或多者将脉冲转换为数字数据信号,诸如使用如先前针对(图2的)状态表150所述的映射。在一实施方案中,经转换的数据被存储在缓冲器中,以供以后传输到主机计算设备的处理逻辑。在各种实施方案中,外围设备中的接收DPM 1252具有与接收DPM 1222类似的行为。

现在转向图14,示出了符号映射1300的一个实施方案的概括框图。在各种实施方案中,符号映射1300与(图2的)相同的表150一起使用,但符号映射1300与(图2的)符号映射160不同。与符号映射160不同,符号映射1300使用正脉冲和负脉冲两者,而不是仅使用正脉冲。在一个实施方案中,利用(图12的)接口1200的发射器和接收器也使用表150和符号映射1300来支持并行多位数据作为串行数据在单条数据线上传输。在各种实施方案中,发射器和接收器中的每一者使用表150和符号映射1300的副本。发射器基于各种条件来确定到了发送数据的时间。当发射器具有待发送到接收器的并行多位数据时,发射器将并行多位数据划分成连续的部分或区段。每个区段具有当前引脚状态。在一个实施方案中,每个区段具有2个位。在其他实施方案中,每个区段具有另一数量的并行的多个位。

发射器保持先前引脚状态,该先前引脚状态是先前的数据传输期间的当前引脚状态。使用表150,发射器的控制逻辑基于先前引脚状态标识表150的行,并且基于当前引脚状态来标识列。发射器的逻辑使用所得的符号和符号映射1300来确定将在时间间隔内发送的正脉冲和负脉冲的数量和顺序,以表示当前引脚状态。例如,当先前引脚状态为2'b01并且待发送的当前引脚状态为2'b10时,发射器的控制逻辑使用表150来标识符号“D”。控制逻辑使用符号映射1300来确定符号“D”,该符号表示正脉冲后跟负脉冲的组合的3次迭代,以在串行数据线上发送到接收器。另选地,符号“D”表示负脉冲后跟正脉冲的3次迭代,以在串行数据线上发送到接收器。接收器包括用于解译所接收的符号“D”的多种检测电路中的一者。在一些实施方案中,符号“D”的另选表示用于允许附加的边带数据与串行数据线上的数据传输同时发送。类似地,符号“B”和“C”具有将用于边带数据传输的另选表示。

在一个实施方案中,当发射器在时间间隔期间没有发送脉冲时,当前引脚状态等于先前引脚状态。该映射由符号映射1300的顶行以及表150中的符号“A”表示。符号映射1300将无脉冲或零脉冲映射到符号“A”。当发射器在时间间隔期间发送映射到符号“B”的一个脉冲时,仅当前引脚状态的特定位改变。在一些实施方案中,特定位是表150中指示为“b1”的最低有效位。在其他实施方案中,特定位是表150中指示为“b0”的最高有效位。在一些实施方案中,(图4的)方法300使用符号映射1300而不是符号映射160来转换在串行数据线上传输的数据。另外,在一个实施方案中,计算系统500使用符号映射1300在串行数据线上进行数据传输。

现在转向图15,示出了符号映射1400的一个实施方案的概括框图。在各种实施方案中,符号映射1400与(图2的)相同的表150一起使用。类似于符号映射1300,符号映射1400使用正脉冲和负脉冲两者,而不是仅使用正脉冲。在一个实施方案中,利用(图12的)接口1200的发射器和接收器也使用表150和符号映射1400来支持并行多位数据作为串行数据在单条数据线上传输。在一个实施方案中,至少符号映射1400的符号“D”不同于符号映射1300的对应的符号“D”。例如,符号映射1400的符号“D”的一个示例使用两个正脉冲,如符号“C”,但这两个正脉冲被两个连续的负脉冲分开。在其他实施方案中,符号映射1400的一个或多个其他符号不同于符号映射1300的对应的符号。类似于符号映射1300,符号映射1400使用符号的另选表示。在一个实施方案中,另选符号表示允许附加的边带数据与串行数据线上的数据传输同时发送。在一些实施方案中,(图4的)方法300使用符号映射1400而不是符号映射160或符号映射1300来转换在串行数据线上传输的数据。另外,在一个实施方案中,计算系统500使用符号映射1400在串行数据线上进行数据传输。

在各种实施方案中,软件应用程序的程序指令可用于实施先前所描述的方法和/或机制。程序指令可以高级编程语言(诸如C)来描述硬件的行为。另选地,可使用硬件设计语言(HDL),诸如Verilog。程序指令可存储在非暂态计算机可读存储介质上。许多类型的存储介质是可用的。在使用期间可由计算机访问存储介质,以将程序指令和附带数据提供给计算机用于程序执行。在一些实施方案中,合成工具读取程序指令,以便产生包括来自合成库的门列表的网表。

应当强调的是,上述实施方案仅是具体实施的非限制性示例。一旦充分了解了上面的公开,许多变型和修改对于本领域的技术人员而言将变得显而易见。本公开旨在使以下权利要求书被阐释为包含所有此类变型和修改。

相关技术
  • 同步串行通信接口的通信方法及该同步串行通信接口
  • 同步串行通信接口的通信方法及该同步串行通信接口
技术分类

06120115606583