首页> 中国专利> 基于已存储数据或空闲空间的FIFO缓冲器

基于已存储数据或空闲空间的FIFO缓冲器

摘要

提供了用于可变精度先进先出(FIFO)缓冲器(VPFB)的系统、方法和计算机可读介质,VPFB基于存储在该VPFB中的当前数据量和/或基于VPFB的当前可用存储器空间量来动态地改变要存储在该VPFB中的数据量。当前不可用存储器空间(或当前可用存储器空间)用于选择要存储在VPFB中的下一个数据块的大小。

著录项

  • 公开/公告号CN112714904A

    专利类型发明专利

  • 公开/公告日2021-04-27

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201880094985.5

  • 发明设计人 潘燕杰;姜勇;李源源;Y·张;

    申请日2018-09-27

  • 分类号G06F5/06(20060101);G06F3/06(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人黄嵩泉;何焜

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:44:55

说明书

技术领域

本文讨论的实施例涉及计算,并且特别地,涉及对无线通信技术具有特定应用的先进先出(FIFO)存储器。

背景技术

先进先出(FIFO)是一种队列处理技术,其涉及根据时间和优先级对数据进行组织和操纵,其中数据在先来先服务的基础上处理。FIFO缓冲器可以实现为单独的存储器设备,也可以实现为用于高速缓存无法由预期的设备或应用立即处理的接收到的数据的保留存储器空间。FIFO缓冲器的一些示例用途包括存储接收到的视频(像素)数据行,缓冲来自用于软件应用的通用异步收发机(UART)的数据;缓冲从SDRAM接口接收或要发送到SDRAM接口的数据,跨不同芯片或设备的时钟域(例如,其中数据以第一时钟速率生成,然后发送到以比第一时钟速率更快或慢的第二时钟速率运行的设备);缓冲要调制的数字数据以通过有线或空中接口传输;以及缓冲经采样并量化的模拟信号以解调成数字数据。

在大多数情况下,FIFO缓冲器不完全填满,尽管在某些情况下,FIFO缓冲器可能已满。例如,用于无线通信的FIFO缓冲器可能由于突然突发的数据或在复杂的系统(例如,软件定义的无线电(SDR)和/或5G网络节点)无法及时处理出队和/或数据处理而填满(或变得“泛滥”)。通常,当FIFO缓冲器已满时,输入的数据将被丢弃或丢失。但是,丢失数据通常需要重新传输数据,并且因此增加递送等待时间并降低服务质量。

一种避免数据丢失的常规解决方案包括为FIFO缓冲器分配大的存储器空间,以使FIFO缓冲器可以满足潜在的最坏情况的存储器需求。为了避免丢弃数据,常规系统倾向于为其FIFO缓冲器保留大量存储器。但是,为FIFO缓冲器保留大量存储器有若干缺点。第一个缺点在于,大缓冲器导致低效率的存储器利用,因为为FIFO缓冲器保留的存储器空间无法用于其他应用。第二个缺点在于,较大的缓冲器增加封装尺寸和/或生产成本,因为较大的存储器可能需要更大的架构复杂性、功耗和板/封装空间。考虑到这些缺点,并且由于FIFO缓冲器通常不会变满,因此为FIFO缓冲器保留如此大量的存储器可能是浪费的,尤其是对于存储器空间有限的系统(例如,FPGA)。

避免数据丢失的第二种常规解决方案包括在将数据发送到接收设备之前在发送/传输设备处压缩数据。在该解决方案中,由于经压缩数据的大小小于未经压缩数据的大小,因此在发生数据丢失之前,可以将更多数据存储在FIFO缓冲器中。然而,数据压缩通常很复杂并且可能导致计算等待时间。此外,如果任何数据在传输过程中损坏,则经压缩数据的整个区块或块可能损坏,这可能导致附加的数据重新传输。此外,在一些情况下(诸如5G系统),数据可能非常难以压缩或无法压缩。

避免数据丢失的第三种常规解决方案包括采用流控制机制,以在接收缓冲器已满(或几乎已满)时停止数据传输,并在接收缓冲器已空(或几乎为空)时恢复数据传输。但是,流控制机制消耗大量的处理资源和/或处理时间,并且因此,使用该解决方案可能由于数据传输中断而导致附加的网络等待时间。

附图说明

通过下列具体实施方式并结合所附附图,可容易地理解实施例。为了便于该描述,类似的附图标记指示类似的结构元件。在所附附图的图中,以示例方式而不以限制方式图示出实施例。

图1图示出根据各实施例的本公开的示例基于已存储数据或空闲空间的FIFO缓冲器。

图2图示出当量化精度为16位和8位时相对于原始信噪比(SNR)的SNR差的曲线图,以及当量化精度为4位时相对于原始SNR的SNR差的曲线图。

图3图示出当量化精度为4位时原始位误差率(BER)与量化后的BER的曲线图。

图4图示出用于实践如本文所讨论的基于已存储数据或空闲空间的FIFO实施例的各方面的示例过程。

图5图示出用于实践如本文所讨论的可变精度FIFO实施例的各方面的另一示例过程。

图6图示出示出现有FIFO管理过程和可变精度FIFO过程的数据丢失率与FIFO缓冲器大小限制的曲线图。

图7图示出可用于实践本文所讨论的实施例的现场可编程门阵列设备。

图8图示出可用于实践本文所讨论的实施例的通信电路系统的示例。

图9图示出根据各实施例的多协议基带处理器。

图10图示出根据各实施例的数字基带子系统的组件。

图11图示出根据各实施例的数字信号处理器(DSP)子系统。

图12图示出根据各实施例的加速器子系统的组件。

图13图示出可以包括在图12的加速器子系统中的示例数据结构和寄存器。

图14图示出根据各实施例的图13的索引寄存器的操作方面以及循环存储器缓冲器控制结构的操作。

图15示出了描述图12的加速器子系统的操作的一些方面的示例过程。

图16图示出根据各实施例的计算机平台的示例实现方式。

图17图示出根据各实施例的示出可能在网络与物联网(IoT)网络之间存在的互连的布置。

图18图示出根据各实施例的示例域拓扑;

图19图示出根据各实施例的与多个IoT设备通信的示例云计算网络或云。

图20图示出根据各实施例的与IoT设备或IoT雾的网格网络通信的云计算网络或云的布置。

具体实施方式

公开的实施例提供了一种基于已存储数据或空闲空间的可变精度FIFO缓冲器(VPFB),VPFB基于存储在VPFB中的当前数据量和/或基于VPFB的当前可用存储器空间量来动态地改变要存储在VPFB中的数据的大小。特别地,当前不可用的存储器空间(或当前可用的存储器空间)用于选择要存储在VPFB中的下一个数据块的大小。VPFB可以在无线通信系统中使用,并且为了易于理解,本公开描述了在无线通信的情况下VPFB的各种实施例。然而,本文所讨论的各种实施例不限于此,并且可以在利用FIFO缓冲器或其他类似缓冲器(例如,循环缓冲器等)的任何其他计算系统或上下文中使用。

下列具体实施方式参考了所附附图。可在不同附图中使用相同的附图标记来标识相同的或类似的元素。在下列描述中,出于解释而非限制的目的,阐述了诸如特定结构、架构、接口、技术等的具体细节,以便提供对所要求保护的发明的各方面的透彻理解。然而,对受益于本公开的本领域技术人员将显而易见的是,可在脱离这些具体细节的其他示例中实施的所要求保护的发明的各方面。在某些实例中,省略了对公知的设备、电路和方法的描述,以免因不必要的细节而使本发明的描述模糊。

将使用本领域技术人员通常所采用的术语来描述说明性实施例的各方面,以将他们工作的实质内容传达给本领域的其他技术人员。然而,对本领域技术人员将显而易见的是,可仅利用所描述方面中的一些来实施替代实施例。出于解释的目的,阐述了具体的数量、材料以及配置,以便提供对说明性实施例的透彻理解。然而,对本领域技术人员将显而易见的是,可在没有这些具体细节的情况下实施替代实施例。在其他实例中,省略或简化了公知的特征以免使说明性实施例模糊。

进一步地,各操作将被描述为多个分立的操作,进而将以最有助于理解说明性实施例的方式描述这些操作;然而,描述的次序不应当被解释为暗示这些操作必然依赖于次序。具体而言,这些操作不必以展示的次序执行。

示例实施例可被描述为被描绘为流程表、流程图、数据流程图、结构图或框图的过程。虽然流程表可将操作描述为顺序过程,但是可并行地、并发地或同时执行这些操作中的许多操作。另外,可重新布置操作的次序。过程可能会在其操作被完成时被终止,但也可具有未被包含在(多个)图中的附加操作。过程可对应于方法、函数、程序、子例程、子程序等等。当过程对应于函数时,该过程的终止可能对应于该函数返回到调用函数和/或主函数。

示例实施例可在计算机可执行指令的一般上下文中被描述,该计算机可执行指令诸如,由前述电路系统中的一个或多个电路系统执行的程序代码、软件模块和/或功能过程。这些程序代码、软件模块和/或功能过程可包括执行特定任务或实现特定数据类型的例程、程序、对象、组件、数据结构等。本文中所描述的程序代码、软件模块和/或功能过程可使用现有硬件在现有通信网络中实现。例如,本文中所讨论的程序代码、软件模块和/或功能过程可使用现有硬件在现有网络元件或控制节点处实现。

I.可变精度FIFO缓冲器的实施例

图1示出了根据各实施例的示例可变精度FIFO缓冲器(VPFB)100。VPFB 100是数据库对象、数据结构或电子电路(例如,硬件移位寄存器、FPGA等),其被配置为存储多个块105(为了清楚,并非图1中的所有块105都被标记)。在图1的示例中,VPFB 100当前存储数据块1到块S-1 105,经由输入110将块S写入到VPFB 100中(或“入队”)并且已经由输出115将块0从VPFB中读出(或“出队”)。像典型的FIFO缓冲器一样,VPFB 100在先来先服务的基础上存储和处理块105,其中按接收和存储在VPFB 100中的顺序对块105进行入队和出队。在该示例中,块0首先被接收并存储在VPFB 100中,并且是从VPFB 100中读出的第一块105。根据由控制器150提供的指令或命令,将各个块入队并出队。

在一些实施例中,可以使用诸如静态随机存取存储器(SRAM)、触发器、锁存器或任何其他合适的存储/存储器电路系统之类的移位寄存器来实现VPFB 100。在这些实施例中,控制器150可以是微处理器、应用处理器或一些其他合适的处理设备。在一些实施例中,可以使用诸如固定或动态长度阵列、链表、双链表、双端队列(双队列)等之类的队列数据结构来实现VPFB 100。在这些实施例中,控制器150可以是由合适的处理设备执行的控制逻辑或程序代码。

在这些实施例中的任一个中,控制器150从VPFB索引122读取指针,该指针包括指示在何处读取数据块105的指针字段135和在何处写入数据块105的指针字段140。在该示例中,存储在写入指针字段140中的值是要存储(入队)在VPFB 100中的下一个块105(例如,图1中的块S)的位置的存储器地址,并且存储在读取指针字段135中的值是要从VPFB 100(例如,图1中的块0)中读出(出队)的块105的位置的存储器地址。这包括从指针字段读取写指针以确定要在其中写入新块S的存储器位置,并且读取读指针以确定要从中读取块0的存储器位置。

当控制器150被告知要写入VPFB 100中的新块105(例如,图1中的块S)的到来时,控制器150读取写指针字段140的值,并控制新块105在VPFB 100中在写指针字段140指示的存储器位置处的存储。在将新块105存储在VPFB 100中之后(或与将新块105存储在VPFB100中同时),控制器150改变写指针字段140的值以(例如,通过递增写指针字段140中的值)指示用于写入下一个数据块105的下一个存储器位置。当控制器150被告知块105(例如,图1中的块0)要被读出VPFB 100时,控制器150读取读指针字段135的值,并控制由读指针字段135指示的存储器位置处的块105从VPFB 100的输出。在从VPFB 100中读取出块105之后(或者与从VPFB 100读取出块105同时),控制器150改变读指针字段135的值以(例如,通过递减读指针字段135中的值)指示要从其读取下一个数据块105的下一个存储器位置。在各实施例中,控制器150可以根据读时钟周期从VPFB 100中读取出多个块105(即,“数据区块”),并且可以根据写时钟周期将多个块105(即,“数据区块”)写入VPFB 100中,该写时钟周期可以与读时钟周期不同。

每个块105可以具有任何合适的大小或长度L,其可以取决于应用。每个块105的长度L表示该块中的数据量。例如,L可以表示多个位、多个字节、一个或多个十进制数字或十六进制数字等。在典型的FIFO缓冲器实现中,每个块105的长度L是均匀且固定的。换句话说,存储在常规FIFO缓冲器中的每个块具有相同的大小和长度。另外,常规FIFO缓冲器具有固定的大小或深度,这意味着,如果FIFO缓冲器已满或几乎已满,则丢弃为了存储在常规FIFO缓冲器中而到达的新块。

根据各实施例,块105具有可变长度L,这意味着各个块105可以具有与VPFB 100中的其他块105不同的大小。在各实施例中,控制器150基于存储在VPFB 100中的当前数据量(或占用的存储器空间)和/或基于VPFB 100中的当前可用存储器空间量来动态地改变要存储在VPFB 100中的每个块105的大小(即,数据量)。特别地,VPFB 100的当前不可用的存储器空间(或当前可用的存储器空间)被用来选择要存储在VPFB 100中的下一个数据块105的大小。为了改变要存储在VPFB 100中的块105的大小(或改变数据的大小),控制器150被配置为基于VPFB 100的当前不可用的存储器空间(或当前可用的存储器空间)来选择块105的大小(例如,块105的位数)。在这些实施例中,随着VPFB 100中可用的存储器空间量减少(或随着VPFB 100中当前占用的空间量增加)选择供存储在VPFB100中的块105的大小(或位数)减小。另外,随着VPFB 100中可用的存储器空间量增加(或随着VPFB 100中当前占用的空间量减小)选择供存储在VPFB 100中的块105的大小(或数据的位数)增大。在一些实施例中,可以在将所选择的数据(或位)存储在VPFB 100中之前丢弃未选择的数据(或位)。被选择存储在VPFB 100中的位数以及选择供存储在VPFB 100中的的特定位取决于应用,并且随实施例而变化。这些实施例的各方面将在下文中更详细地讨论。

在第一示例用例中,VPFB 100可以是用于缓冲键盘输入或触摸屏输入的循环缓冲器。在该示例中,每个块105可以二进制、十进制、十六进制、八进制或某种其他合适的格式表示单个美国信息交换标准代码(ASCII)字符。常规的循环缓冲器具有固定大小(或固定数量的存储器位置),并且新的传入数据块覆盖存储在先前写入的存储器位置中的数据。在常规的键盘循环缓冲器中,当写指针即将到达读指针时,该缓冲器将停止记录键击(或手势)并发出错误,因为控制器无法响应新的传入数据。在实施例中,控制器150被配置为根据VPFB 100的当前可用的存储器空间(或当前不可用的存储器空间)选择用于表示每个ASCII字符的位数。其中,ASCII字符所存储的位数少于用于表示该字符的位数,可以使用适当的自动校正应用基于先前的字符等来预测适当的字符。

在第二示例用例中,VPFB 100可以被实现在接收器设备中并且被用于缓冲模拟信号的样本。模拟信号可以是经由空中(OTA)信道到达无线接收器的无线射频(RF)信号、通过有线连接到达网络接口控制器(NIC)的RF或光信号、经由无线或有线接口到达接收器的待被转换成声音的电子音频信号。在该示例中,每个块105可以表示模拟信号的样本,以及4位(0.5字节)、8位(1字节)或16位(2字节)。当VPFB 100用于模拟信号应用时,控制器150被配置为根据VPFB 100的当前可用的存储器大小(当前占用的存储器空间)来选择采样的模拟信号的量化精度。当模拟信号到达接收器时,对模拟信号进行采样和量化。在一些实施例中,控制器150可以实现或操作量化算法以选择量化精度,或者控制器150可以指示量化器(例如,接收器的模数转换器)选择量化精度。在其他实施例中,单独的量化器或量化功能被配置为基于采样的模拟信号来生成量化值(例如,第一位数),并且控制器150被配置为当将量化值存储在VPFB 100中时改变量化精度。在这些实施例中,控制器150被配置为通过从要存储在VPFB100中的量化值(例如,第二位数)中选择位来改变量化精度。在一些实施例中,所选择的位可以随机选择,而在其他实施例中,可以根据VPFB 100中可用的空间(或不可用的空间)的大小或数量来选择量化值的不同预定义部分。术语“采样”指代在不同时间将模拟信号转换成多个数据点的过程,而术语“量化”指代在给定样本中使用的数据点数。“量化精度”中的术语“精度”指代采样后的量化。换句话说,量化精度是用于表示量化样本的位数。

在实施例中,控制器150根据VPFB 100的当前可用(或不可用)存储器来选择量化精度。作为示例,量化精度(位数)N可以是4、8或16位。如果VPFB中没有剩余空间,则控制器150将降低量化精度并且仅存储量化数据的一些较高位。当获得新的量化数据并且当前占用的存储器小于第一阈值(例如,存储器大小限制或VPFB的最大容量的50%)时,则可以使用N个位来表示样本并且全部N个位存储在VPFB中。在当前占用的存储器大于等于第一阈值且小于第二阈值(例如,存储器大小限制或VPFB的最大容量的75%)时,则可以使用N/2个位表示样本,并且将更高(更大)的N/2个位存储在VPFB中。在当前占用的存储器大于等于第二阈值且未完全填充时,则可以使用N/4个位表示样本,并且将更高(更大)的N/4个位存储在VPFB中。如果在新量化数据到达接收器时VPFB已满,则丢失或丢弃新量化数据。以此方式,VPFB 100在大多数数据泛滥情况下不丢弃数据,同时使用的存储器空间比常规FIFO缓冲器实现更少。与常规的丢失解决方案相比,并且在给定典型的FIFO缓冲器大小/空间限制的情况下,本文的实施例显著降低了数据丢失率,并且因此减少了递送等待时间并提高了传输效率。此外,当与常规的FIFO缓冲器大小/空间相比时,本文的实施例能够在使用小得多的存储器大小/空间分配的同时实现降低的丢失率。特别地,仿真结果表明,当实现本文讨论的实施例时,仅需要常规FIFO缓冲器大小的28%。

通常,较低的量化精度将降低信噪比(SNR)并增加位误差率(BER)。然而,当很好地选择低量化精度时,SNR和/或BER的影响被认为是微不足道的。接收到的模拟信号的原始SNR(表示为SNR

如果量化精度为N位(其中N位用于表示样本),则将引入一些量化误差,该量化误差可被视为噪声(具有功率N

量化后的SNR可用等式3表示。

等式3得出等式4。

其中

在等式4中,Δ(dB)是原始SNR(SNR

SNR

将等式4和等式5结合,得出等式6。

图2示出了曲线图201和202。曲线图201示出了当N为8位时(图2中的线205)和当N为16位时(图2中的线210)相对于原始SNR(SNR

图3示出了当N为4位时(图3中的线310),原始BER(图3中的线305)相对于量化之后的BER的曲线图300。曲线图300以加性高斯白噪声(AWGN)中的64-QAM的理论BER为例,以示出SNR降级对BER的影响。如曲线图300所示,对于线310和线305,BER都随着SNR

基于曲线图201、202和300,降低的量化精度可能不会对信号重建产生负面影响,这意味着可以在解调和解码之后正确恢复数据。本文所讨论的VPFB实施例利用该原理以便通过减少FIFO缓冲器所需的存储器空间量并减少当缓冲器已满(或几乎已满)时丢弃的数据块的数量来提高FIFO缓冲器效率。最小化FIFO缓冲器所需的存储器空间量可以使其他应用利用该存储器空间并降低缓冲器管理的复杂性。减少丢弃的数据块的数量节省联网资源和/或信令资源,因为允许将更多的数据块存储在FIFO缓冲器中,在从FIFO缓冲器中读取出数据后,需要进行较少的数据重新传输以正确地重建数据。

图4示出了根据各实施例的示例VPFB过程400。出于说明的目的,过程400的各种操作被描述为是由图1的控制器150相对于图1的VPFB 100执行的。过程400是在其中VPFB 100在模拟接收器中实现的上下文中描述的,然而,过程400的各方面可以应用于其他用例。此外,尽管图4图示操作的特定示例和次序,但所描绘的操作次序不应当被解释为以任何方式限制实施例的范围。相反,所描绘的操作可被重排序、被分成附加的操作、被组合、和/或一起被省略,同时仍保持在本公开的精神和范围内。

过程400开始于操作405,其中控制器150确定量化数据(例如,包括N个位的新块105)是否已经到达以供存储在VPFB 100中。如果在操作405,控制器105确定没有数据到达以供存储在VPFB 100中,则控制器150循环返回以执行操作405并继续监测要存储在VPFB100中的新数据。如果在操作405,控制器105确定数据已到达以供存储在VPFB 100中,控制器150进行到操作410,确定VPFB 100中存储的当前数据量(“CurrentOccupiedSize(当前占用的大小)”)是否等于VPFB 100的大小阈值(“FifoSizeLimit(Fifo大小限制)”)。在一些实施例中,FifoSizeLimit可以是VPFB 100的最大容量(例如,“FifoTotalSize(Fifo总容量)”),或者可以设置为“几乎满”的百分比,诸如VPFB 100的最大容量的90%-99%。

如果在操作410处,控制器105确定CurrentOccupiedSize等于FifoSizeLimit,则控制器150进行到操作413以丢弃数据块105,并且然后返回到操作405以监测新的数据块105。在操作410中,控制器105确定CurrentOccupiedSize不等于FifoSizeLimit,然后控制器150进行到操作415以确定CurrentOccupiedSize是否大于等于第一阈值。在图4的示例中,第一阈值是FifoTotalSize的百分比(例如,50%),其表示为“T1*FifoTotalSize”。在其他实施例中,第一阈值可以是FifoSizeLimit的百分比。在其他实施例中,可以将第一阈值设置为预定值或者可以基于应用参数来动态设置第一阈值。

如果在操作415处,控制器105确定CurrentOccupiedSize不大于等于第一阈值(即,CurrentOccupiedSize小于第一阈值),则控制器150进行到操作420以控制全部N个位在VPFB 100中的存储,然后返回以执行操作405。如果在操作415处,控制器105确定CurrentOccupiedSize大于等于第一阈值,则控制器150进行到操作425以确定CurrentOccupiedSize是否大于等于第二阈值。在图4的示例中,第二阈值是FifoTotalSize的百分比(例如,75%),其表示为“T2*FifoTotalSize”。在其他实施例中,第二阈值可以是FifoSizeLimit的百分比。在其他实施例中,可以将第二阈值设置为预定值或者可以基于应用参数来动态设置第二阈值。

如果在操作425处,控制器105确定CurrentOccupiedSize不大于等于第二阈值(即,CurrentOccupiedSize小于第二阈值并且大于第一阈值),则控制器150进行到操作430以控制一半数据(N/2位数)在VPFB 100中的存储,然后返回以执行操作405。如果在操作425处,控制器105确定CurrentOccupiedSize大于等于第二阈值,则控制器150进行到操作430以控制四分之一数据(N/4位数)在VPFB 100中的存储,然后返回以执行操作405。

图5示出了根据各实施例的另一个示例VPFB过程500。出于说明的目的,过程500的各种操作被描述为是由图1的控制器150相对于图1的VPFB 100执行的。过程500是在其中VPFB 100在模拟接收器中实现的上下文中描述的,然而,过程500的各方面可以应用于其他用例。此外,尽管图5图示操作的特定示例和次序,但所描绘的操作次序不应当被解释为以任何方式限制实施例的范围。相反,所描绘的操作可被重排序、被分成附加的操作、被组合、和/或一起被省略,同时仍保持在本公开的精神和范围内。

过程500开始于操作505,其中控制器150确定量化数据(例如,包括N个位的新块105)是否已经到达以供存储在VPFB 100中。如果在操作505,控制器105确定没有数据到达以供存储在VPFB 100中,则控制器150循环返回以执行操作505并继续监测要存储在VPFB100中的新数据。如果在操作505处,控制器105确定数据已到达以供存储在VPFB 100中,控制器150进行到操作510,确定VPFB 100中的当前可用的存储器空间量(“CurrentFreeSpace(当前空闲空间)”)是否小于等于VPFB 100的空闲空间阈值(“FifoAlmostEmpty(Fifo几乎空)”)。在一些实施例中,FifoAlmostEmpty可以基于VPFB 100的最大容量(例如,“FifoTotalSize”),或者可以设置为“几乎空”的百分比,诸如VPFB 100的最大容量的1%-10%。

如果在操作510处,控制器105确定CurrentFreeSpace小于等于FifoAlmostEmpty,则控制器150进行到操作513以丢弃数据块105,并且然后返回到操作505以监测要存储在VPFB 100中的新的数据块105。在操作510处,控制器105确定CurrentFreeSpace大于(或不小于等于)FifoAlmostEmpty,然后控制器150进行到操作515以确定CurrentFreeSpace是否小于等于第一阈值。在图5的示例中,第一阈值是FifoTotalSize的百分比(例如,50%),其表示为“T1*FifoTotalSize”。在其他实施例中,第一阈值可以是FifoSizeLimit的百分比。在其他实施例中,可以将第一阈值设置为预定值或者可以基于应用参数来动态设置第一阈值。在替代实施例中(图5未示出),过程500中的第一阈值可以是过程400的第一阈值的变体的另一第一阈值,其中控制器150将确定CurrentFreeSpace是否大于等于第一阈值。在该实施例中,另一个第一阈值可以是1减去过程400的第一阈值(例如,1-(T1*FifoTotalSize))。

如果在操作515处,控制器105确定CurrentFreeSpace不小于等于第一阈值(即,CurrentFreeSpace大于第一阈值),则控制器150进行到操作520以控制全部N个位在VPFB100中的存储,然后返回以执行操作505。如果在操作515处,控制器105确定CurrentFreeSpace小于等于第一阈值,则控制器150进行到操作525以确定CurrentFreeSpace是否小于等于第二阈值。在图5的示例中,第二阈值是FifoTotalSize的百分比(例如,25%),其表示为“T2*FifoTotalSize”。在其他实施例中,第二阈值可以是FifoSizeLimit的百分比。在其他实施例中,可以将第二阈值设置为预定值或者可以基于应用参数来动态设置第二阈值。在替代实施例中(图5未示出),过程500中的第二阈值可以是过程400的第二阈值的变体的另一第二阈值,其中控制器150将确定CurrentFreeSpace是否大于等于第二阈值。在该实施例中,另一个第二阈值可以是1减去过程400的第二阈值(例如,1-(T2*FifoTotalSize))。

如果在操作525处,控制器105确定CurrentFreeSpace不小于等于第二阈值(即,CurrentFreeSpace大于第二阈值并且小于第一阈值),则控制器150进行到操作530以控制一半数据(N/2位数)在VPFB 100中的存储,然后返回以执行操作505。如果在操作525处,控制器105确定CurrentFreeSpace小于等于第二阈值,则控制器150进行到操作535以控制四分之一数据(N/4位数)在VPFB 100中的存储,然后返回以执行操作505。

图6图示出示出现有FIFO管理过程和VPFB过程的数据丢失率与FIFO缓冲器大小限制的曲线图600。曲线图600是基于利用常规FIFO缓冲器过程和VPFB过程400/500的FIFO缓冲器的仿真。在仿真中,常规的FIFO包括当FIFO缓冲器已满且没有可变精度选择机制时丢弃传入数据块的丢弃策略,而VPFB过程包括可变精度选择,如先前关于图4的过程400和/或图5的过程500所讨论。仿真VPFB过程的选择策略包括50%的T1和75%的T2。仿真的结果如表1所示。

表1:VPFB程序与常规FIFP程序仿真结果

产生表1结果的仿真包括恒定的数据到达速率或160每秒比特(bps)的数据写入速率(R_in);遵循泊松分布的平均160bps的数据处理速率或数据读取速率(R_out);16位的量化数据(即,数据块大小/长度)。对于表1中列出的每种FIFO缓冲器大小,该仿真包括1000次试验。每次试验运行100,000秒(即,27.777778小时),并且表1中列出的每个结果平均为1000次试验。

表1中的数据丢失率定义为每个要写入FIFO缓冲器的块的数据块丢失数,并且可以表示为等式7。

在等式7中,DDR是以百分比表示的数据丢失率;T

从图6的表1和曲线图600可以看出,对于两种FIFO缓冲器管理机制,数据丢失率随着FIFO缓冲器大小的增加而减小。结果表明,与常规的FIFO缓冲器数据丢弃策略相比,对于给定的FIFO缓冲器大小限制,VPFB程序将数据丢弃率大大降低了80%以上。如表1和曲线图600所示,为了实现0%的数据丢弃率(即,不丢弃任何数据块105),现有的FIFO缓冲器丢弃策略要求FIFO缓冲器的FifoTotalSize约为57,600位(例如,表1中的FIFO缓冲器大小限制为3600x 16位)或7,200字节。相反,VPFB过程仅需要大约16,000位的FifoTotalSize(例如,表1中FIFO缓冲器大小限制为1000x 16位)或2,000字节。因此,使用VPFB过程的FifoTotalSize大约是使用常规丢弃策略的现有FIFO缓冲器的28%。换句话说,VPFB过程可以通过将FIFO缓冲器的大小减少70%以上来节省存储资源。

II.示例实现

图7图示出可用于实践本文所讨论的实施例的FPGA 700。图7所示的组件是出于说明目的而示出的并且可以包括图7未示出的其他组件,或者可以根据功能将图7所示的元件替代地分组。

如图所示,FPGA 700与图1的控制器150和主机平台750通信地耦合,其中FPGA 700用于实现先前讨论的VPFB 100(并且可以操作图4和5的VPFB过程400和500中的一者或两者)。在该示例中,控制器150包括时钟151,并且主机750包括时钟751,其中时钟151的时钟速率与时钟速率或时钟751不同(例如,比时钟速率或时钟751快或慢)。要由VPFB 100存储的数据跨控制器150和主机750的时钟域。

FPGA 700包括写时钟线(WClock)、写数据有效线(WDV)、写数据线(WD)、数据满线(满)、几乎满线(AF)、数据空线(空)和几乎空线(AE),每条线都连接到控制器150。FPGA 700还包括连接到主机750的读时钟线(RClock)、读使能线(RE)和读数据线(RD)。为了将数据写入VPFB 100,时钟151的时钟脉冲被输入到WDV,并且块S被放置在WD上。为了从VPFB 100读取数据,基于时钟751的时钟脉冲将RE设置为高,并且在RD上从VPFB 100拉出块105。在一些实施例中,可以根据时钟151的时钟周期将多个块105写入VPFB 100(例如,“数据突发”),并且可以根据时钟751的时钟周期从VPFB 100读取多个块(例如,“数据区块”)。例如,如果时钟751具有60赫兹(Hz)的频率,则每个时钟周期可以将16个块105写入VPFB 100。

FPGA 700可以包括一个或多个可配置逻辑块(CLB)或包含查找表(LUT)和触发器的逻辑单元、一个或多个存储器单元(例如,块随机存取存储器(BRAM))、数字信号处理(DSP)片、串行数据收发机、输入/输出(I/O)块和/或其他类似组件。在该示例中,FPGA 700的CLB加载有适当的逻辑,以根据VPFB过程400或500选择数据块105的数据大小(块长度)。加载到FPGA 700的逻辑可以使用适当的硬件描述语言(HDL)来开发,诸如寄存器-传输逻辑(RTL)、超高速集成电路(VHSIC)HDL(VHDL)、Verilog等。

到达块105的数据大小(块长度)可以基于通过满、AF、空和/或AE发送的信号。在实施例中,可以在时钟151的每个时钟周期或响应于来自控制器150的请求,将满、AF、空和/或AE信号发送到控制器150。当VPFB 100处于满容量时(即,不能再将更多数据存储在VPFB100中)在满上发送信号,并且当VPFB 100包括预定数量的块105时可以在AF上发送信号。此外,当VPFB 100完全为空(即,没有数据存储在VPFB 100中)在空上发送信号,并且当VPFB100包括预定数量的块105(其中AF大于AE)时可以在AE上发送信号。在图7的示例中,可以基于先前讨论的T1或T2值来设置AF和/或AE的值(块105的数量)。

图8图示出可用于实践本文所讨论的实施例的通信电路系统800的示例。图8所示的组件是出于说明目的而示出的并且可以包括图8未示出的其他组件,或者可以根据功能将图8所示的元件替代地分组。

通信电路系统800包括协议处理电路系统805,该协议处理电路系统805操作或实现一个或多个无线通信协议的各种协议层/实体。在一个示例中,当通信电路系统800是蜂窝射频通信系统(诸如毫米波(mmWave)通信电路系统或某种其他合适的蜂窝通信电路系统)时,协议处理电路系统805可操作长期演进(LTE)协议实体和/或第五代(5G)/新无线电(NR)协议实体。在该示例中,协议处理电路系统805将操作介质接入控制(MAC)、无线电链路控制(RLC)、分组数据收敛协议(PDCP)、服务数据适配协议(SDAP)、无线电资源控制(RRC)和非接入层(NAS)功能。在另一个示例中,当通信电路系统800是WiFi通信系统时,协议处理电路系统805可操作一个或多个基于IEEE的协议。在该示例中,协议处理电路系统805将操作MAC和逻辑链路控制(LLC)功能。

协议处理电路系统805可包括用于存储针对操作协议功能的程序代码和数据信息的一个或多个存储器结构(未示出)以及用于执行该程序代码并使用该数据信息执行各种操作的一个或多个处理核(未示出)。协议处理电路系统805可以包括控制电路(未示出)的一个或多个实例,以提供用于基带电路系统810、传输电路系统815、接收电路系统820和/或射频(RF)电路系统825的控制功能。

通信电路系统800还包括基带电路系统810,该基带电路系统810实现物理层(PHY)功能,该物理层功能包括混合自动重传请求(HARQ)功能、加扰和/或解扰、译码(编码)和/或解码、层映射和/或解映射、调制码元映射、收到码元和/或位度量确定、多天线端口预编码和/或解码(其可包括时-空、空-频或空间译码中的一者或多者)、参考信号生成和/或检测、前置序列生成和/或解码、同步序列生成和/或检测、控制信道信号盲解码、射频移位以及其他相关功能等。调制/解调功能可包括快速傅里叶变换(FFT)、预编码、星座映射/解映射功能。译码(编码)/解码功能可包括卷积译码、咬尾卷积译码、turbo译码、Viterbi译码、或低密度奇偶校验(LDPC)译码。调制/解调和编码器/解码器功能的实施例不限于这些示例,并且在其他实施例中可包括其他合适的功能。

基带处理电路系统810和/或协议处理电路系统805可以与应用平台(图8未示出)对接,以用于基带信号的生成和处理以及用于控制RF电路系统825的操作。基带电路系统810可处置经由RF电路系统825实现与一个或多个无线电网络的通信的各种无线电控制功能。基带电路系统810可包括电路系统,该电路系统诸如但不限于一个或多个单核或多核处理器(例如,一个或多个基带处理器)或控制逻辑,用于(例如,经由Rx电路系统820)处理从RF电路系统825的接收信号路径接收的基带信号并生成(例如,经由Tx电路系统815)RF电路系统825的传输信号路径的基带信号。基带电路系统810可以包括多协议基带处理器900,其在图9中更详细地描述。

通信电路系统800还包括传输(Tx)电路系统815和接收(Rx)电路系统820。Tx电路系统815被配置为将数字基带信号转换为模拟信号以供通过RF电路系统825进行传输。为此,在一个实施例中,Tx电路系统815包括各种组件,诸如数模转换器(DAC)、模拟基带电路系统、上变频电路系统以及滤波和放大电路系统。在另一个实施例中,Tx电路系统815可包括数字传输电路系统和输出电路系统。Rx电路系统820被配置为将由RF电路系统825接收的模拟信号转换为用于提供给基带电路系统810的数字基带信号。为此,在一个实施例中,Rx电路系统820包括并行接收电路系统和/或组合接收电路系统的一个或多个实例。并行接收电路系统和组合接收电路系统的实例可包括中频(IF)下变频电路系统、IF处理电路系统、基带下变频电路系统、基带处理电路系统和模数转换器(ADC)电路系统。

通信电路系统800还包括用于实现通过非固态介质使用经调制的电磁辐射而与无线网络的通信的射频(RF)电路系统825。RF电路系统825包括接收信号路径,该接收信号路径可包括用于将模拟RF信号(例如,现有的或所接收的经调制的波形)经由Rx电路系统820转换为要提供给基带电路系统810的数字基带信号的电路系统。RF电路系统825还包括传输信号路径,该传输信号路径可包括被配置成用于以下操作的电路系统:经由Tx电路系统815转换由基带电路系统810提供的数字基带信号以被转换为将经由天线阵列830被放大和传输的模拟RF信号(例如,经调制的波形)。

RF电路系统825可包括无线电链电路系统的一个或多个实例,其可包括一个或多个滤波器、功率放大器、低噪声放大器、可编程移相器和电源(未示出)。射频电路系统825也可以包括功率组合和分配电路系统。功率组合和分配电路系统可以双向操作,使得同一物理电路系统可以被配置为在设备正在传输时用作功率分配器,而在设备正在接收时用作功率组合器。在一些实施例中,功率组合和分配电路系统可以包括全部或部分分离的电路系统,以在设备正在发送时执行功率分配而在设备正在接收时执行功率组合。功率组合和分配电路系统可包括无源电路系统,该无源电路系统包括布置在树中的一个或多个双向功率分配器/组合器。在一些实施例中,功率组合和分配电路系统可以包括有源电路系统,该有源电路系统包括放大器电路。

根据各实施例,基带电路系统810可以实现VPFB 100并操作VPFB过程400/500以缓冲将被提供给RF电路系统825的数字基带信号的样本和/或缓冲由RF电路系统825产生的数字基带信号的样本。数字基带样本可以是同相和正交(I/Q)样本等。在这些实施例中,样本被存储在VPFB 100中,并且基带电路系统810基于存储在VPFB 100中的当前数据量或VPFB100中的当前可用的空间来选择样本的量化精度,如先前参考图1-图6所讨论。

通信电路系统800还包括天线阵列830。天线阵列830包括一个或多个天线元件。天线阵列830可以是多个微带天线或制造在一个或多个印刷电路板的表面上的印刷天线。天线阵列830能以各种形状被形成为金属箔的贴片(例如,贴片天线),并且可使用金属传输线等与RF电路系统825耦合。

图9图示出根据各实施例的多协议基带处理器900。多协议基带处理器900还可以支持一个以上无线协议(例如,E-UTRAN或其他WMAN、WLAN、WPAN等)的无线电通信,并且在此类情况下,基带处理器900可以被称为“多模式基带处理器”。如图所示,基带处理器900包括经由互连子系统965耦合至CPU子系统970、音频子系统975和接口子系统980的一个或多个数字基带系统940。一个或多个数字基带子系统940也经由互连子系统945耦合至一个或多个数字基带接口960和一个或多个混合信号基带子系统935。

互连子系统965和945每个可以包括总线点对点连接和芯片上网络(NOC)结构中的每个总线中的一个或多个。音频子系统975可以包括用于压缩/解压缩和回声消除的各种元件,并且在其他实施例中可以包括其他合适的处理元件。这些元件可以包括数字信号处理电路系统、缓冲存储器、程序存储器、语音处理加速器电路系统、数据转换器电路系统(诸如模数转换器电路系统和数模转换器电路系统)和包括一个或多个放大器和滤波器的模拟电路系统。混合信号基带子系统935包括IF接口、模拟IF子系统、下变频器和上变频器子系统、模拟基带子系统、数据转换器子系统、合成器和控制子系统。根据各实施例,一个或多个数字基带子系统940实现VPFB 100,如图10所示。

图10示出了根据第一实施例的数字基带子系统1001的组件,以及根据第二实施例的数字基带子系统1002的组件。数字基带子系统1001和/或1002对应于图9的一个或多个数字基带系统940。此外,图9的多协议基带处理器900可包括基带处理子系统1001和1002的一者或两者。

基带处理子系统1001包括DSP子系统1005、互连子系统1035、引导加载器子系统1010、共享存储器子系统1015、数字I/O子系统1020、数字基带接口子系统1025和音频子系统1030中的每一个的一者或多者。引导加载器子系统1010包括数字逻辑电路系统,该数字逻辑电路系统被配置为执行程序存储器的配置以及与一个或多个DSP子系统1005的每一个相关联的运行状态。一个或多个DSP子系统1005的每一个的程序存储器的配置包括加载来自基带处理子系统1001外部的存储电路系统(图10未示出)的可执行程序代码。与一个或多个DSP子系统1005中的每一个相关联的运行状态的配置可以包括以下操作中的一者或多者:将可以并入一个或多个DSP子系统1005中的每一个的至少一个DSP核心的状态设置为在其中不运行的状态,将可以并入一个或多个DSP子系统1005中的每一个的至少一个DSP核心的状态设置为从预定的存储器位置开始执行程序代码的状态。

共享存储器子系统1015包括只读存储器(ROM)、静态随机存取存储器(SRAM)、嵌入式动态随机存取存储器(eDRAM)和/或非易失性随机存取存储器(NVRAM)中的一者或多者。数字I/O子系统1020包括一个或多个串行接口和/或一个或多个并行接口。一个或多个串行接口的示例可以包括I2C、SPI和/或其他1、2或3线串行接口。一个或多个并行接口的示例可以包括通用输入输出(GPIO)、寄存器存取接口和/或直接存储器存取(DMA)。在数字I/O子系统1020中实现的寄存器存取接口可以允许基带处理子系统1001/1002外部的微处理器核读取和/或写入控制寄存器和数据寄存器以及存储器。在数字I/O子系统1020中实现的DMA逻辑电路系统可以允许在包括基带处理子系统1001内部和外部的存储器位置在内的存储器位置之间传输连续的数据块(例如,数据块105)。

数字基带接口子系统1025提供数字基带样本在基带处理子系统1001与RF电路系统825之间和/或在基带处理子系统1001与基带处理子系统1001外部的混合信号基带子系统之间的传输。根据各实施例中,数字基带样本从FIFO缓冲器(例如,VPFB 100)被传输到RF电路系统825或外部混合信号基带子系统,或者从RF电路系统825或外部混合信号基带子系统传输,并且样本的量化精度可以基于FIFO缓冲器的当前大小而改变。由数字基带接口子系统1025传输的数字基带样本的示例可以包括同相和正交(I/Q)样本等。

基带处理子系统1002包括加速器子系统1045、缓冲存储器1050、互连子系统1035、音频子系统1030、共享存储器子系统1015、数字I/O子系统1020、控制器子系统1040和数字基带接口子系统1025。基带处理子系统1002的类似标记的项与关于基带处理子系统1001所描述的相同。

控制器子系统1040包括控制和状态寄存器以及控制状态机中的每一者的一个或多个。可以经由寄存器接口访问控制和状态寄存器,并且可以提供以下一项或多项:控制状态机的启动和停止操作、将控制状态机重置为默认状态、配置可选的处理功能、配置中断的产生以及报告操作的状态。在实施例中,控制状态机的每一个可以控制一个或多个加速器子系统1045中的每一个的操作序列。

根据各实施例,基带处理子系统1001/1002的共享存储器子系统1015或基带处理子系统1002的缓冲存储器1050实现了先前讨论的VPFB 100。在这些实施例中,共享存储器子系统1015的存储器空间或区域被用于FIFO缓冲器。在这些实施例中,至少一个DSP子系统1005接收要存储在FIFO缓冲器中的数据块105(例如,量化数据样本)、基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中可用的当前空闲空间量来选择要存储在FIFO缓冲器中的所接收的数据块105的大小(例如,量化数据样本的位数);以及控制具有选定大小的数据块105(例如,量化数据样本)在FIFO缓冲器中的存储。

图11图示出根据各实施例的可以使用的数字信号处理器(DSP)子系统1100。DSP子系统1100对应于图10的基带处理子系统1001的DSP子系统1005。DSP子系统1100包括DSP核心子系统1105、本地存储器1110、直接存储器存取(DMA)子系统1115、加速器子系统1120、外部接口子系统1125、电源管理单元1130和互连子系统1135。

本地存储器1110包括各种存储设备,诸如ROM、SRAM和/或eDRAM。DMA子系统1115提供寄存器和控制状态机电路系统,该寄存器和控制状态机电路系统适于在包括数字信号处理器子系统1100内部和外部的存储器位置在内的存储器位置之间传输数据块。外部接口子系统1125提供DSP子系统1100外部的微处理器系统对存储器、控制寄存器和状态寄存器的访问,它们可以在DSP子系统1100中实现。外部接口子系统1125在DMA子系统1115和/或DSP核心子系统1105的控制下,在本地存储器1110与DSP子系统1100外部的存储之间提供数据传输。

根据各实施例,本地存储器1110实现先前讨论的VPFB 100。在这些实施例中,本地存储器1110的存储器空间或区域被用于FIFO缓冲器,并且DSP核心子系统1105接收要存储在FIFO缓冲器中的数据块105(例如,量化数据样本)、基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中可用的当前空闲空间量来选择要存储在FIFO缓冲器中的所接收数据块105的大小(例如,量化数据样本的位数);以及控制具有选定大小的数据块105(例如,量化数据样本)在FIFO缓冲器中的存储。

图12示出了根据第一实施例的加速器子系统1201的组件,以及根据第二实施例的加速器子系统1202的组件。加速器子系统1201和1202可以对应于图10的加速器子系统1045和/或图11的加速器子系统1120。

加速器子系统1201和1202包括控制状态机1205、控制寄存器1210、暂存式存储器1225和计算引擎1230。加速器子系统1201包括数据流接口1235,而加速器子系统1202包括存储器接口1220。

控制寄存器1210配置和控制加速器子系统1200的操作。加速器子系统1200的操作包括以下一项或多项操作:通过启用寄存器位来启用或禁用操作;通过写入暂停寄存器位来暂停正在进行中的操作;提供参数以配置计算操作;提供存储器地址信息以标识一个或多个控制和数据结构的位置;配置中断的生成或其他控制功能。

控制状态机1205控制加速器子系统1201/1202的操作序列。此类操作序列可以包括以下一项或多项:配置、激活和停用存储器接口1220、计算引擎1230、暂存式存储器1225和(加速器子系统1201的)数据流接口1235中的每一者的一个或多个。控制状态机1205基于写入控制寄存器1210中包含的控制位的控制信息来开始和停止操作的执行。控制状态机1205还更新控制寄存器1210中包含的状态位的值。为了执行加速器子系统1201/1202的一个或多个配置操作和报告结果或状态信息,控制状态机可以访问存储在加速器子系统1201/1202内部或外部的存储器中的数据结构。

计算引擎1230是被配置成用于执行一个或多个预定计算操作的逻辑电路元件。计算操作可以具有可配置的参数,并且可以被配置成以配置的序列操作。在实施例中,计算引擎1230包括用于存储一个或多个操作状态和中间结果的存储元件。

暂存式存储器1225提供数据在SRAM、eDRAM、寄存器文件(可以包括触发器或锁存器)、FIFO存储器或某个其他合适的数据存储结构中的一者或多者中的存储。根据各实施例,暂存式存储器1225的FIFO存储器是根据先前讨论的VPFB过程400和/或500操作的VPFB100。在这些实施例中,控制状态机1205或一个或多个计算引擎1230对应于控制器150。

参考加速器子系统1201,数据流接口1235包括被配置成用于执行输入和输出功能的电路系统。在实施例中,数据流接口1235包括一个或多个数据信号以将输入或输出数据作为一个或多个并行位来传输。在实施例中,数据流接口1235包括一个或多个使能信号,每个使能信号指示何时在相对应的一组数据信号上呈现有效数据。在实施例中,数据流接口1235包括一个或多个流控制信号,每个流控制信号指示是否有空间可用于接收缓冲器中的数据。

参照加速器子系统1202,存储器接口1220提供对包含在加速器子系统1202中的存储的访问,该存储可以包括存储器和寄存器,使得加速器子系统1202外部的子系统可以向此类存储读取和写入数据。存储器接口1220还提供用于访问加速器子系统1202外部的存储的装置,该存储可以包括一个或多个存储器和寄存器,使得可以在存储器接口1220的控制下将数据读取或写入此类存储。

图13图示出可以包括在图12的加速器子系统1201或1202中的示例数据结构和寄存器1300。每个寄存器1300包括可由微处理器或DSP设备(例如,图10的DSP子系统1005)读取和/或写入的一组位,并且可以映射到微处理器或DSP设备的存储器或输入-输出地址空间中的一个或多个位置。在实施例中,位组可以被实现为触发器或锁存器。可以将包含在寄存器1300内的位分组为一个或多个字段,每个字段包含一个或多个位。如图所示,寄存器包括缓冲器索引寄存器1322、缓冲器控制寄存器1320、存储器指针寄存器1315、中断控制寄存器1310、状态寄存器1305和控制寄存器1301。

控制寄存器1301包括用于使能操作的字段/位和用于中止正在进行的操作的字段/位。状态寄存器1305包括指示加速器子系统1201/1202的当前内部状态的一个或多个字段。中断控制寄存器1310包括一个或多个中断控制字段,该字段的设置配置是否在加速器子系统1201/1202内发生事件时生成中断。事件可包括成功完成处理步骤和发生处理错误。

存储器指针寄存器1315包括一个或多个字段,每个字段的值确定数据结构的存储器中的地址,该数据结构包括用于加速器子系统1201/1202的配置信息。存储器指针寄存器1315还包括字段,该字段的值指示缓冲器控制块列表1330在存储器中的地址。

缓冲控制寄存器1320包括配置包含在缓冲器控制块列表1330内的多个缓冲控制块1325的字段。缓冲器控制块列表1330可以存储在存储器中并且可以包含加速器子系统1201/1202的配置信息。缓冲器索引寄存器1322包括一个或多个字段,该一个或多个字段可以指示包含在缓冲器控制块列表1330内的一个或多个缓冲器控制块1325的状态。每个缓冲器控制块1325可以包括指示相对应存储器缓冲器1335的存储器中的地址的字段。

根据各实施例,一个或多个寄存器1300、1305、1310、1315、1320和1322的所述字段可根据所述寄存器字段分组到寄存器中以及寄存器相对于地址空间的顺序可选地以任意方式布置。

图14图示出根据各实施例的图13的索引寄存器的操作方面以及循环存储器缓冲器控制结构的操作。图14中类似编号的项与关于图13所描述的项相同。在该示例中,缓冲器控制块列表1330包括在存储器中连续布置的X个缓冲器控制块1325,其中X是数字。缓冲器控制块1325从0索引到X-1,并形成有序循环列表(例如,循环缓冲器或循环FIFO缓冲器),使得对于0≤k≤N-2的k的所有值,索引为k+1的缓冲器控制块1325继索引为k的缓冲器控制块1325之后,并且索引为0的缓冲器控制块1325继索引为X-1的缓冲器控制块1325之后。

根据各实施例,缓冲器控制块列表1330被分成两组缓冲器控制块1325。根据所描述的循环索引方案,每组包括一组连续索引的缓冲器控制块1325。当加速器子系统1201/1202被配置为处于运行状态时,第一组缓冲器控制块1325可以被认为是硬件子系统可独占的,而第二组可以被认为是在相关联处理器上运行的软件可独占的。

缓冲器索引寄存器1322包括第一指针字段(指针字段1)1435,其指示属于第一组的第一缓冲器控制块1325的索引。缓冲器索引寄存器1322还包括第二指针字段(指针字段2)1440,其指示属于第二组的第一缓冲器控制块1325的索引。以此方式,通过缓冲器索引寄存器1322中包含的索引的值来确定将缓冲器控制块1425划分为第一组和第二组。如果指针字段1 1335将递增1模N,则缓冲器控制块1425将从第一组列表的前面移除并移动到第二组列表的末尾。如果指针字段2 1340将递增1模N,则缓冲器控制块1425将从第二组列表的前面移除并添加到第一组列表的末尾。

图15示出了描述图12的加速器子系统1201/1202的操作的一些方面的示例过程1500。过程1500可以被加速器子系统1201/1202用来处理存储器缓冲器,诸如先前所讨论的VPFB 100。此外,尽管图15图示操作的特定示例和次序,但所描绘的操作次序不应当被解释为以任何方式限制实施例的范围。相反,所描绘的操作可被重排序、被分成附加的操作、被组合、和/或一起被省略,同时仍保持在本公开的精神和范围内。

过程1500在操作1501开始,在操作1501中状态机(例如,图12的控制状态机1205)确定启用标志是否被置位以及缓冲器是否可用。状态机保持在决策状态1501中,直到同时存在被置位的启用标志以及要处理的可用缓冲器过程1500。缓冲器可以是先前所讨论的VPFB 100。

当启用标志被置位且缓冲器可用于处理时,状态机转换到操作1505以开始处理缓冲器。中止标志1530的置位使状态机返回执行操作1501的决定。加速器子系统1201/1202在启动过程状态1505的而同时启动对存储器缓冲器的处理,然后转换到操作1510以确定该过程是否完成。

加速器子系统1201/1202在进行存储器缓冲器处理的同时仍保持在决策状态1510,并在处理完成时(或在完成存储器缓冲器处理之后)转换为操作151以更新硬件指针。在更新硬件指针状态1515中时,加速器子系统1201/1202更新指针寄存器以指示存储器缓冲器处理完成,并立即或随后转换到操作1520以产生中断。当处于产生中断状态1520时,加速器子系统1201/1202产生指示存储器缓冲器处理完成的中断。可以通过设置控制寄存器位来启用或禁用中断的产生,如先前所讨论的。然后,加速器子系统1201/1202从产生中断状态1520转换回操作1501,以重复过程1500。

图16图示根据各实施例的平台1600(也被称为“设备1600”、“装置2000”等等)的示例。平台1600可适合作为本文所讨论的任何计算机设备使用。平台1600还可被实现在服务器计算机系统或本文中所讨论的某个其他元件、设备或系统中,或者被实现为服务器计算机系统或本文中所讨论的某个其他元件、设备或系统。平台1600可包括示例中示出的组件的任何组合。平台1600的组件可被实现为集成电路(IC)、集成电路的部分,分立电子器件,或者在计算机平台1600中适配的其他模块、逻辑、硬件、软件、固件或其组合,或者被实现为以其他方式结合在更大的系统的机架内的组件。图16的示例旨在示出计算机平台1600的组件的高级视图。然而,可省略所示出的组件中的一些组件,可存在附加的组件,并且所示出的组件的不同布置可在其他实现方式中发生。

平台1600包括处理器电路系统1602。处理器电路系统1602包括电路系统,诸如但不限于一个或多个处理器核以及以下一个或多个:高速缓存存储器、低压差电压调节器(LDO)、中断控制器、串行接口(诸如,串行外围接口(SPI)、集成电路间(I

处理器电路系统1602的(多个)处理器可包括例如一个或多个处理器核(CPU)、一个或多个应用处理器、一个或多个图形处理单元(GPU)、一个或多个精简指令集计算(RISC)处理器、一个或多个Acorn RISC机器(ARM)处理器、一个或多个复杂指令集计算(CISC)处理器、一个或多个数字信号处理器(DSP)、一个或多个FPGA、一个或多个PLD、一个或多个ASIC、一个或多个基带处理器、一个或多个射频集成电路(RFIC)、一个或多个微处理器或控制器、或其任何合适的组合。处理器电路系统1602的处理器(或核)可与存储器/存储耦合或者可包括存储器/存储,并且可被配置成用于执行存储器/存储中所存储的指令以使得各种应用或操作系统能够在平台1600上运行。在一些实施例中,处理器电路系统1602可以是用于根据本文中的各实施例进行操作的专用处理器/控制器。

作为示例,处理器电路系统1602可包括可从加利福尼亚州圣克拉拉市的

另外或替代地,处理器电路系统1602可包括诸如但不限于以下各项的电路系统:一个或多个FPD(诸如FPGA等等);PLD(诸如CPLD、HCPLD等等);ASIC(诸如结构化ASIC等等);PSoC;等等。在此类实施例中,处理器电路系统1602的电路系统可包括逻辑块或逻辑结构以及其他互连的资源,逻辑块或逻辑结构以及其他互连的资源可被编程为执行各种功能,诸如,本文中所讨论的各实施例的过程、方法、功能等。在此类实施例中,处理器电路系统1602的电路可包括用于将逻辑块、逻辑结构、数据等存储在LUT等等中的存储器单元(例如,EPROM、EEPROM、闪存、静态存储器(例如,SRAM、反熔丝等)。

处理器电路系统1602可通过互连1606(例如,总线)来与系统存储器电路系统1604通信。可使用任何数量的存储器设备来提供给定量的系统存储器。作为示例,存储器电路系统1604可以是根据联合电子器件工程委员会(JEDEC)设计的随机存取存储器(RAM)、动态RAM(DRAM)、和/或同步DRAM(SDRAM),该JEDEC设计诸如,DDR或移动DDR标准(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4)。存储器电路系统1604还可包括非易失性存储器(NVM),诸如,高速电可擦除存储器(统称为“闪存”)、相变RAM(PRAM)、电阻存储器(诸如,磁阻随机存取存储器(MRAM))等,并且可包含来自

存储器电路系统1604的各个存储器设备可被实现为焊入式封装的集成电路、插口式存储器模块、以及插入式存储器卡。存储器电路系统1604可被实现为任何数量的不同封装类型,诸如单管芯封装(SDP)、双管芯封装(DDP)或四管芯封装(Q17P)。在一些示例中,这些设备可以直接焊接到主板上,以提供较低轮廓的解决方案,而在其他示例中,设备被配置为一个或多个存储器模块,这些存储器模块进而通过给定的连接器耦合至主板。可使用任何数量的其他存储器实现方式,诸如其他类型的存储器模块,例如,不同种类的双列直插存储器模块(DIMM),包括但不限于microDIMM(微DIMM)或MiniDIMM(迷你DIMM)。存储器电路系统1604。在实施例中,存储器电路系统920可与处理器电路系统1602被设置在同一管芯或封装(例如,同一SoC、同一SiP、或与处理器电路系统1602被焊接在同一MCP上)上或者同一管芯或封装中。

为了提供对信息(诸如数据、应用、操作系统(OS)等等)的持久性存储,存储电路系统1608也可经由互连1602耦合至处理器电路系统1606。在示例中,存储电路系统1608可经由固态盘驱动器(SSDD)来实现。可用于存储电路系统1608的其他设备包括闪存卡(诸如SD卡、microSD卡、xD图片卡,等等)和USB闪存驱动器。在低功率实现方式中,存储电路系统1608可以是与处理器电路系统1602相关联的管芯上存储器或寄存器。然而,在一些示例中,存储电路系统1608可使用微硬盘驱动器(HDD)来实现。进一步地,除所描述的技术之外或替代所描述的技术,可将任何数量的新技术用于存储电路系统1608,这些新技术诸如阻变存储器、相变存储器、全息存储器或化学存储器,等等。

存储器电路系统1604和存储电路系统1608存储用于实现本文中公开的技术的软件、固件或硬件命令形式的指令1682。可采用指令1682来存储编程指令的工作副本和/或永久副本,这些编程指令用于平台1600的各组件(例如,驱动器等)、平台1600的操作系统的操作、一个或多个应用和/或用于执行本文中所讨论的实施例(诸如由图4-图5或图15所描绘的一个或多个操作等等),这些工作副本和/或永久副本统称为“计算逻辑”或“模块”。可由(多个)处理器电路系统1602支持的汇编程序指令或可被编译成此类指令(例如,指令1670)的高级语言来实现各种元件。编程指令的永久副本可在工厂中或在现场通过例如分发介质(未示出)、通过通信接口(例如,从分发服务器(未示出))、和/或空中下载(OTA)被置于存储电路系统1608的持久性存储设备中。

虽然指令1682被示出为存储器电路系统1604和存储电路系统1608中所包括的代码块,但应当理解,这些代码块中的任何代码块能以硬连线电路来代替,例如,被构建成FPGA、ASIC或某个其他合适的电路系统。例如,在处理器电路系统1602包括(例如,基于FPGA的)硬件加速器以及处理器核的情况下,硬件加速器(例如,FPGA单元)可被预配置有前述的计算逻辑(例如,预配置有适当的位流)以执行先前所讨论的功能中的一些或全部(代替采用要由(多个)处理器核执行的编程指令)。

存储器电路系统1604和/或存储电路系统1608可存储操作系统(OS)的程序代码,该操作系统可以是通用OS或为计算平台1600专门编写的并被定制成用于计算平台1600的OS。OS可包括操作以控制特定设备的一个或多个驱动器,这些特定设备被嵌入在平台1600中、被附连至平台1600、或以其他方式与平台1600通信地耦合。驱动器可包括允许平台的其他组件与各种输入/输出(I/O)设备交互或控制各种I/O设备的各个驱动器,这些I/O设备可存在于平台1600内或连接至平台1600。例如,驱动器可包括用于控制和允许对显示设备的访问的显示驱动器、用于控制和允许对平台1600的触摸屏接口的访问的触摸屏驱动器、用于获取传感器电路系统1621的传感器读数并且控制和允许对传感器电路系统1621的访问的传感器驱动器、用于获取EMC 1622的致动器位置和/或控制和允许对EMC 1622的访问的EMC驱动器、用于控制和允许对嵌入式图像捕捉设备的访问的相机驱动器、用于控制和允许对一个或多个音频设备的访问的音频驱动器。OS还可包括为一个或多个应用提供程序代码和/或软件组件以获得并使用来自安全执行环境(SEE)、可信执行环境(TEE)、和/或平台1600的管理引擎(未示出)的数据的一个或多个库、API、固件、中间件、软件等。

在示例中,经由存储器电路系统1604、存储电路系统1608或处理器电路系统1602提供的指令1682/1670可具体化为非瞬态机器可读介质1660,该非瞬态机器可读介质1660包括用于指示处理器电路系统1602执行平台1600中的电子操作的代码。处理器电路系统1602可通过互连1606访问非瞬态机器可读介质1660。例如,非瞬态机器可读介质1660可由针对图16的存储电路系统1608所描述的设备来具体化,或者可包括特定的存储单元,诸如光盘、闪存驱动器或任何数量的其他硬件设备。非瞬态机器可读介质1660可包括用于指示处理器电路系统1602执行例如像先前(参照例如,图4-图5和图15)描绘的操作和功能的(多个)流程图和(多个)框图而描述的特定的动作序列或动作流的指令1682。在进一步的示例中,机器可读介质也包括任何有形介质,该有形介质能够存储、编码或携带供由机器执行并且使机器执行本公开方法中的任何一种或多种方法的指令,或者该有形介质能够储存、编码或携带由此类指令利用或与此类指令相关联的数据结构。“机器可读介质”因此可包括但不限于固态存储器、光学介质和磁介质。机器可读介质的特定示例包括非易失性存储器,作为示例,包括但不限于:半导体存储器设备(例如,EPROM、EEPROM)和闪存存储器设备;诸如内部硬盘及可移除盘之类的磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。可使用传输介质,经由网络接口设备,利用多种传输协议中的任何一种协议(例如,HTTP),进一步通过通信网络来传输或接收由机器可读介质具体化的指令。在替代实施例中,相反地可将编程指令设置在多个计算机可读非瞬态存储介质。在另外的其他实施例中,可将编程指令设置在计算机可读的瞬态存储介质(诸如信号)上。

可以利用一种或多种计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质例如可以是但不限于,电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。在本文档的上下文中,计算机可用或计算机可读介质可以是包含、存储、传递、传播、或传输用于由指令执行系统、装置或设备使用的或结合指令执行系统、装置或设备一起使用的程序的任何介质。计算机可读介质可包括传播的数据信号以及随其体现在基带中或作为载波的一部分的计算机可读程序代码。可使用任何适当的介质来传输计算机可用程序代码,适当的介质包括但不限于无线、线缆、光纤电缆、射频等。

用于执行本公开的操作(例如,指令1682、1670)的计算机程序代码能以一种或多种编程语言的任何组合来编写,这些编程语言包括:面向对象的编程语言,诸如Python、Ruby、Scala、Smalltalk、Java

组件可通过互连1606进行通信。互连1606可包括任何数量的技术,包括工业标准架构(ISA)、扩展ISA(EISA)、外围组件互连(PCI)、外围组件互连扩展(PCIx)、PCI快速(PCIe)或任何数量的其他技术。互连1606可以是例如在基于SoC的系统中使用的专有总线。其他总线系统可被包括,诸如I

互连1606将处理器电路系统1602耦合至通信电路系统800以用于与其他设备通信。通信电路系统800包括前面讨论的有关图8-图15的各种组件。在各实施例中,通信电路系统800与平台1600的应用电路系统(例如,处理器电路系统1602、存储器电路系统1604、和存储电路系统1608的组合)对接以用于生成并处理信号并且用于控制收发机1611和1612的操作。收发机1611和1612可以是RF电路系统825或包括先前讨论的RF电路系统825的各方面。

收发机1611(也被称为“网格收发机”)用于与其他网格或雾设备1664通信。网格收发机1611可使用任何数量的频率和协议,诸如,IEEE 802.15.4标准下的2.4千兆赫兹(GHz)传输,使用如由

网格收发机1611可使用用于不同范围的通信的多种标准或无线电(例如,RF电路系统825)来进行通信。例如,平台1600可使用基于BLE的或另一低功率无线电的本地收发机与靠近的/接近的(例如,在约10米内的)设备通信以节省功率。更远的(例如,在约50米内的)网格设备1664可通过ZigBee或其他中间功率无线电而达到。这两种通信技术能以不同的功率水平通过单个无线电发生,或者可通过分开的收发机而发生,分开的收发机例如使用BLE的本地收发机和分开的使用ZigBee的网格收发机。

可包括无线网络收发机1612(也被称为“云收发机”等等)以经由本地网络协议或广域网协议与云1601中的设备或服务通信。无线网络收发机1612包括一个或多个无线电(例如,RF电路系统825)以与云1601中的设备通信。云1601可与先前所讨论的云302相同或类似。无线网络收发机1612可以是遵循IEEE 802.15.4或IEEE 802.15.4g标准等的LPWA收发机,诸如本文中所讨论的那些无线网络收发机。平台1600可使用由Semtech和LoRa联盟开发的LoRaWAN

除了针对如本文中所描述的网格收发机1611和无线网络收发机1612而提及的系统之外,还可使用任何数量的其他无线电通信和协议。例如,无线电收发机1611和1612可包括使用扩展频谱(SPA/SAS)通信以实现高速通信的LTE或其他蜂窝收发机。进一步地,可使用任何数量的其他协议,诸如用于中速通信和供应网络通信的

收发机1611和1612可包括符合下列无线电通信技术和/或标准(中的任何一个或多个无线电通信技术和/或标准和/或可根据其进行操作的无线电,包括但不限于:全球移动通信系统(GSM)无线电通信技术、通用分组无线电服务(GPRS)无线电通信技术、GSM演进的增强数据速率(EDGE)无线电通信技术、和/或第三代合作伙伴计划(3GPP)无线电通信技术,例如,通用移动电信系统(UMTS)、多媒体接入自由(FOMA)、3GPP长期演进(LTE)、3GPP长期演进高级(LTE高级)、码分多址2000(CDMA2000)、蜂窝数字分组数据(CDPD)、Mobitex、第三代(3G)、电路交换数据(CSD)、高速电路交换数据(HSCSD)、通用移动电信系统(第三代)(UMTS(3G))、宽带码分多址(通用移动电信系统)(W-CDMA(UMTS))、高速分组接入(HSPA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入加(HSPA+)、通用移动电信系统-时分双工(UMTS-TDD)、时分-码分多址(TD-CDMA)、时分-同步码分多址(TD-CDMA)、第三代合作伙伴计划第8版(前-第4代)(3GPP Rel.8(Pre-4G))、3GPP Rel.9(第三代合作伙伴计划第9版)、3GPP Rel.10(第三代合作伙伴计划第10版)、3GPP Rel.11(第三代合作伙伴计划第11版)、3GPP Rel.12(第三代合作伙伴计划第12版)、3GPP Rel.13(第三代合作伙伴计划第13版)、3GPP Rel.14(第三代合作伙伴计划第14版)、3GPP Rel.15(第三代合作伙伴计划第15版)、3GPP Rel.16(第三代合作伙伴计划第16版)、3GPP Rel.17(第三代合作伙伴计划第17版)以及后续版本(诸如第18版、第19版等)、3GPP 5G、3GPP LTEExtra、LTE-Advanced Pro、LTE许可辅助接入(LAA)、MuLTEfire、UMTS陆地无线电接入(UTRA)、演进UMTS陆地无线电接入(E-UTRA)、长期演进高级(第4代)(LTE高级(4G))、cdmaOne(2G)、码分多址2000(第三代)(CDMA2000(3G))、演进数据优化或仅演进数据(EV-DO)、高级移动电话系统(第1代))(AMPS(1G))、总接入通信系统/扩展总接入通信系统(TACS/ETACS)、数字AMPS(第二代)(D-AMPS(2G))、按键通话(PTT)、移动电话系统(MTS)、改进的移动电话系统(IMTS)、高级移动电话系统(AMTS)、OLT(挪威语为Offentlig LandmobilTelefoni,公共陆地移动电话)、MTD(Mobiltelefonisystem D的瑞典语缩写,或移动电话系统D)、公共自动陆地移动(Autotel/PALM)、ARP(芬兰语为Autoradiopuhelin,“汽车无线电话”)、NMT(北欧移动电话)、NTT的高容量版本(日本电报和电话)(Hicap)、蜂窝数字分组数据(CDPD)、Mobitex、DataTAC、集成数字增强网络(iDEN)、个人数字蜂窝(PDC)、电路交换数据(CSD)、个人手持电话系统(PHS)、宽带集成数字增强网络(WiDEN)、iBurst、非许可移动接入(UMA),也称为3GPP通用接入网络,或GAN标准)、蓝牙(r)、蓝牙低能量(BLE)、基于IEEE802.15.4的协议(例如,低功率无线个域网(6LoWPAN)上的IPv6、WirelessHART、MiWi、Thread、IS100.11a等)、WiFi-direct(WiFi-直连)、ANT/ANT+、Z波、3GPP设备到设备(D2D)或邻近服务(ProSe)、通用即插即用(UPnP)、低功率广域网(LPWAN)、长距离广域网(LoRA)或由Semtech和LoRa联盟开发的LoRaWAN

网络接口电路系统/控制器(NIC)1616可被包括以使用标准网络接口协议提供至云1601或至其他设备(诸如,网格设备1664)的有线通信。标准网络接口协议可包括以太网、通过GRE隧道的以太网、通过多协议标签交换(MPLS)的以太网、通过USB的以太网,或者可基于其他类型的网络协议,诸如控制器区域网络(CAN)、局部互连网络(LIN)、设备网(DeviceNet)、控制网(ControlNet)、数据高速公路+、PROFIBUS或PROFINET,等等。可使用物理连接、经由NIC 1616提供去往/来自平台1600的网络连接性,物理连接可以是电气的(例如,“铜互连”)或光学的。物理连接还包括合适的输入连接器(例如,端口、插座、插槽等)和输出连接器(例如,插头、引脚等)。NIC 1616可包括一个或多个专用处理器和/或FPGA以使用前述网络接口协议中的一个或多个进行通信。在一些实现方式中,NIC 1616可包括多个控制器以使用相同或不同的协议提供到其他网络的连接性。例如,平台1600可包括提供通过以太网到云的连接的第一NIC 1616和提供通过另一类型的网络到其他设备的通信的第二NIC 1616。

互连1606可将处理器电路系统1602耦合至外部接口1618(也被称为“I/O接口电路系统”等等),该外部接口1618用于连接外部设备或子系统。如本文中所使用,术语“接口电路系统”可指提供两个或更多个组件或设备之间的信息交换的电路系统,是该电路系统的部分,或者包括该电路系统。术语“接口电路系统”可指一个或多个硬件接口,例如,总线、输入/输出(I/O)接口、外围组件接口、网络接口卡等等。外部设备尤其包括传感器电路系统1621、EMC 1622、和定位电路系统1645。

传感器电路系统1621可包括其目的为检测其环境中的事件或其环境的改变并将关于检测到的事件的信息(传感器数据)发送到其他设备、模块、子系统等的设备、模块或子系统。此类传感器1621的示例尤其包括:惯性测量单元(IMU),包括加速度计、陀螺仪、和/或磁力计;微机电系统(MEMS)或纳机电系统(NEMS),包括3轴加速度计、3轴陀螺仪和/或磁力计;液位传感器;流量传感器;温度传感器(例如,热敏电阻);压力传感器;气压传感器;重力仪;高度计;图像捕捉设备(例如,相机);光检测和测距(LiDAR)传感器;接近度传感器(例如,红外辐射检测器等等)、深度传感器、环境光传感器,超声波收发机;话筒;等等。

外部接口1618将平台1600连接至电机设备(EMC)1624,允许平台1600改变其状态、位置和/或取向,或者移动或控制机制或系统。EMC1622可包括一个或多个功率开关、继电器(包括电机继电器(EMR)和固态继电器(SSR))、致动器(例如,阀致动器等)、可听语音生成器、视觉警告设备、电机(例如,DC电机、步进电机等)、轮、推进器、螺旋桨、爪、夹具、挂钩、和/或其他类似的电机组件。在实施例中,平台1600可被配置成用于基于一个或多个捕捉到的事件和/或从服务提供商和/或各种客户端系统接收到的指令或控制信号来操作一个或多个EMC 1622。在一些实施例中,传感器电路系统1621和EMC 1622可以对应于参考图20所讨论的传感器2028。

定位电路系统1645包括用于接收由全球导航卫星系统(GNSS)的定位网络传输/广播的信号并对其进行解码。导航卫星星座(或GNSS)的示例包括美国的全球定位系统(GPS)、俄罗斯的全球导航系统(GLONASS)、欧盟的伽利略系统、中国的北斗导航卫星系统、区域导航系统或GNSS增强系统(例如,利用印度星座(NAVIC)、日本的准天顶卫星系统(QZSS)、法国的多普勒轨道成像和卫星综合无线电定位(DORIS)等进行的导航)等等。定位电路系统1645包括与定位网络(诸如导航卫星星座节点)的组件通信的各种硬件元件(例如,包括诸如交换机、滤波器、放大器、天线元件等等之类的用于促进OTA通信的硬件设备)。在一些实施例中,定位电路系统1645可包括用于定位、导航和定时的微技术(Micro-PNT)IC,其使用主定时时钟来执行位置跟踪/估计而无需GNSS辅助。定位电路系统1645也可以是通信电路系统800的部分或者与通信电路系统800交互以与定位网络的节点和组件通信。定位电路系统1645还可向应用电路提供位置数据和/或时间数据,应用电路可使用该数据使操作与各种基础设施装备(例如,无线电基站)同步以用于逐向道路导航等等。

在一些示例中,各种输入/输出(I/O)设备可存在于平台1600内或连接至平台2000,I/O设备是指图16中的输入设备电路系统1686和输出设备电路系统1684。输入设备电路系统1686和输出设备电路系统1684包括被设计成用于实现用户与平台1600的交互的一个或多个用户接口以及被设计成用于实现外围组件与平台1600的交互的外围组件接口。输入设备电路系统886可包括用于接受输入的任何实体或虚拟装置,输入设备电路系统886尤其包括一个或多个实体或虚拟按钮(例如,重置按钮)、物理键盘、小键盘、鼠标、触摸板、触摸屏、话筒、扫描仪、头戴式耳机,等等。

可包括输出设备电路系统1684,以示出信息或以其他方式传达信息,诸如传感器读数、(多个)致动器位置、或其他类似信息。输出设备电路系统1684可包括任何数量的音频或视觉显示器和/或音频或视觉显示器的任何组合,尤其包括具有从平台1600的操作生成或产生的字符、图形、多媒体对象等的输出的一个或多个简单的视觉输出/指示器(例如,二进制状态指示器(例如,发光二极管(LED))和多字符视觉输出/或更复杂的输出,诸如显示设备或触摸屏(例如,液晶显示器(LCD)、LED显示器、量子点显示器、投影仪等)。输出设备电路系统1684还可包括扬声器或其他发声设备、(多个)打印机等等。在一些实施例中,传感器电路系统1621可被用作输入设备电路系统1686(例如,图像捕捉设备、运动捕捉设备等等),并且一个或多个EMC 1622可被用作输出设备电路系统1684(例如,用于提供触觉反馈等的致动器)。在另一示例中,近场通信(NFC)电路系统可被包括以读取电子标签和/或与另一启用NFC的设备通信,该NFC电路系统包括与天线元件耦合的NFC控制器并且包括处理设备。外围组件接口可包括但不限于非易失性存储器端口、通用串行总线(USB)端口、音频插孔、电源接口等。

电池1624可耦合至平台200来为平台1600供电,电池1624可在其中平台1600不处于固定位置的实施例中使用。电池1624可以是锂离子电池、铅酸汽车电池、金属-空气电池(诸如锌-空气电池、铝-空气电池、锂-空气电池)、锂聚合物电池,等等。在其中平台1600被安装在固定位置的实施例中,平台1600可具有耦合至电网的电源。在这些实施例中,平台1600可包括功率三通电路系统,该功率三通电路系统用于提供汲取自网络电缆的电功率以使用单个电缆提供到平台1600的功率供给和数据连接性两者。

可在平台1600中包括功率管理集成电路系统(PMIC)1626来跟踪电池1624的充电状态(SoCh)并控制对平台1600的充电。PMIC 1626可用于监测电池1624的其他参数(诸如电池1624的健康状态(SoH)和功能状态(SoF))以提供故障预测。PMIC 1626可包括电压调节器、电涌保护器、功率警报检测电路系统。功率警报检测电路系统可检测掉电(欠压)和电涌(过压)状况中的一者或多者。PMIC 1626可通过互连1606将关于电池1624的信息传达至处理器电路系统1602。PMIC 1626还可包括允许处理器电路系统1602直接监测电池1624的电压或来自电池1624的电流的模数(ADC)转换器。电池参数可用于确定平台1600可执行的动作,诸如传输频率、网格网络操作、感测频率,等等。作为示例,PMIC 1626可以是电池监测集成电路,诸如来自线性技术公司(Linear Technologies)的LTC4020或LTC2990、来自亚利桑那州的凤凰城的安森美半导体公司(ON Semiconductor)的ADT7488A、或来自德克萨斯州达拉斯的德州仪器公司的UCD90xxx族的IC。

功率块1628或耦合至电网的其他电源可与PMIC 1626耦合以对电池1624充电。在一些示例中,功率块1628能以无线功率接收器来代替以例如通过平台1600中的环形天线来无线地获得功率。PMIC 1626中可包括无线电池充电电路,诸如来自加利福尼亚州的苗比达市的线性技术公司的LTC4020芯片,等等。所选择的特定的充电电路取决于电池1624的尺寸,并因此取决于所要求的电流。可使用由无线充电联盟(Airfuel Alliance)颁布的Airfuel标准、由无线电力协会(Wireless Power Consortium)颁布的Qi无线充电标准、由无线电力联盟(Alliance for Wireless Power)颁布的Rezence充电标准等等来执行充电。

III.示例系统概述

物联网(IoT)是这样的概念,其中,大量计算设备互连至彼此并互连至因特网,以便在非常低的级别上提供功能和数据采集。本文中所使用,IoT设备可包括执行功能(诸如感测或控制,等等)、与其他IoT设备和范围更广的网络(诸如因特网)进行通信的半自主设备。IoT设备常在存储器、尺寸或功能方面受限,从而允许部署较大数量的设备,以实现与较少数量的较大设备类似的成本。然而,IoT设备可以是智能电话、膝上型设备、平板设备、或PC、或其他较大的设备。而且,IoT设备可以是虚拟设备,诸如智能电话或其他计算设备上的应用。IoT设备可包括IoT网关,这些IoT网关用于将IoT设备耦合至其他IoT设备并耦合至云应用,以进行数据存储、过程控制,等等。

IoT设备的网络可包括商用和家用自动化设备,诸如给水系统、配电系统、管道控制系统、工厂控制系统、灯开关、恒温器、锁、相机、警报、运动传感器,等等。IoT设备可以是通过远程计算机、服务器和其他系统可访问的,从而例如控制系统或访问数据。

因特网的未来增长可涉及非常大量的IoT设备。相应地,如本文所描述的,用于未来因特网的大量创新解决了所有这些层无障碍地增长、发现并制造能访问的经连接资源以及支持隐藏并划分所连接资源的能力的需求。可使用任何数量的网络协议和通信标准,其中,每种协议和标准被设计成解决特定的目标。此外,协议是支持无论地点、时间或空间而进行操作的人类能访问服务的结构的部分。这些创新包括服务交付和相关联的基础结构,诸如硬件和软件。可根据在服务水平和服务交付协议中指定的服务质量(QoS)条款来提供服务。IoT设备和网络的使用在连接性的异构网络(包括图1和图2中描绘的有线和无线技术的组合)中呈现出数个新的挑战。

图17示出了根据各实施例的布置1700,其示出了可能存在于因特网与IoT网络之间的互连。互连可将较小的网络1702(小到单独的IoT设备1704)耦合至因特网100的光纤主干1706。为了简化该图,并非每一个设备1704或其他对象都被标记。

在图1中,顶级提供者(其可被称为层1提供者1708)通过因特网的光纤主干耦合至诸如次级或层2提供者1710之类的其他提供者。在一个示例中,层2提供者1710可例如通过进一步的光纤链路、通过微波通信1714或通过其他通信技术耦合至LTE蜂窝网络的塔1712。塔1712可通过LTE通信链路116、例如通过中央节点118耦合至包括IoT设备1704的网格网络。各个IoT设备1704之间的通信也可基于LTE或NR通信链路1716。在另一示例中,高速上行链路120可将层2提供者1710耦合至网关(GW)1720。数个IoT设备1704可与GW 1720进行通信,并且可通过GW 1720(例如,通过蓝牙低能量(BLE)链路1722)彼此通信。

光纤主干1706可将诸如层3提供者124之类的较低层级的服务提供者耦合至因特网。层3提供者1724可被认为是从层2服务提供者购买到光纤主干1710的访问并将将访问提供给企业GW 1726和其他消费者的一般因特网服务提供商(ISP)。从企业GW 1726,可以使用无线局域网(WLAN)通过

层3提供者1724还可通过协调器设备1736提供对网格网络1734的访问,协调器设备1736使用任何数量的通信链路与层3提供者1724进行通信,这些通信链路诸如LTE蜂窝链路、LPWA链路、或基于IEEE 802.15.4标准(诸如

IoT设备1704可以是任何对象、设备、传感器、或“物”,这些对象、设备、传感器、或“物”与使得这些对象、设备、传感器、或“物”能够捕捉和/或记录与事件相关联的数据并且能够在很少的用户干预或没有用户干预的情况下通过网络向一个或多个其他设备传达此类数据的硬件和/或软件组件一起被嵌入。例如,在各实施例中,IoT设备1704可以是非生物设备,诸如自主传感器、计量器、仪表、图像捕捉设备、话筒、机器型通信(MTC)设备、机器对机器(M2M)设备、发光设备、发声设备、音频和/或视频回放设备、机电设备(例如,开关、致动器等)等等。在一些实施例中,IoT设备1970可以是生物设备(诸如监测植入物、生物传感器、生物芯片等)。在其他实施例中,IoT设备1704可以是嵌入在计算机系统中并且与计算机系统的通信电路系统耦合的计算机设备。在此类实施例中,IoT设备1704可以是芯片上系统(SoC)、通用集成电路系统卡(UICC)、嵌入式UICC(eUICC)等,并且计算机系统可以是移动台(例如,智能手机)或用户设备、膝上型PC、可穿戴设备(例如,智能手表、健身跟踪器等)、“智能”装置(例如,电视、冰箱、安全系统等)等。如本文中所使用,术语“计算机设备”可描述能够顺序地且自动地执行算术或逻辑操作序列、被装备成用于将数据记录/存储在机器可读介质上并且传送和接收来自通信网络中的一个或多个其他设备的数据的任何物理硬件设备。计算机设备可被认为与计算机、计算平台、计算设备等同义,并且可在此后时不时地被称为计算机、计算平台、计算设备等。术语“计算机系统”可包括任何类型经互连的电子设备、计算机设备、或其组件。另外,术语“计算机系统”和/或“系统”可指计算机的彼此通信地耦合的各种组件。此外,术语“计算机系统”和/或“系统”可指彼此通信地耦合并且被配置成用于共享计算和/或联网资源的多个计算机设备和/或多个计算系统。

IoT设备1704中的每个可包括一个或多个存储器设备和一个或多个处理器以捕获和储存/记录数据。IoT设备1704中的每个可包括适当的通信电路系统(例如,(多个)收发机、调制解调器、天线元件等),以传输(例如,传送和接收)所捕获的和储存的/记录的数据。进一步地,每个IoT设备1704可包括用于使用附加的协议和频率进行通信的其他收发机。无线通信协议可以是由IoT设备1704实现以与其他设备进行通信的任何适当的标准化规则或指令集,包括用于对数据进行打包/拆包的指令、对信号进行调制/解调的指令,用于协议栈的实现方式的指令等等。例如,IoT设备1704可以包括通信电路系统,该通信电路系统可配置为根据一个或多个人对人(P2P)或个人区域网(PAN)协议(例如,基于IEEE 802.15.4的协议,包括ZigBee、通过低功耗无线个域网的IPv6(6LoWPAN)、WirelessHART、MiWi、Thread等;WiFi-direct(WiFi直连);蓝牙/BLE协议;ANT协议;Z-波(Z-Wave);LTE D2D或ProSe;UPnP等);可配置为使用一种或多种LAN和/或WLAN协议(例如,基于Wi-Fi的协议或IEEE 802.11协议(诸如IEEE 802.16协议))进行通信;一个或多个蜂窝通信协议(例如,LTE/LTE-A、UMTS、GSM、EDGE、Wi-MAX等);等等。在实施例中,塔1712、GW 1720、1726和1730、协调器设备136等中的一者或多者也可以与本文中特别是参考图5-图11所描述的实施例结合。

技术和网络可实现设备和网络的指数级增长。随着此类技术增长,可在无需直接的人类干预的情况下开发网络以供进行自管理、功能进化和协同。因此,技术将使得网络在没有集中式控制系统的情况下起作用。本文中所描述的技术可超越当前能力使网络管理和操作功能自动化。

图18示出了根据各实施例的示例域拓扑1800,其可以用于通过主干链路1802耦合到GW 1804的多个IoT网络。类似标记的项如关于图17所描述。进一步地,为了简化该图,不是每一个设备1804或通信链路1716、1722、1728或1732都被标记。主干链路1802可包括任何数量的有线或无线技术,并且可以是局域网(LAN)、广域网(WAN)或互联网的部分。类似于图17,在实施例中,IoT设备1804/1704、GW 1804等中的一者或多者可以与本文中所描述的实施例结合。

网络拓扑结构1800可包括任何数量的多种类型的IoT网络,诸如使用BLE链路1722的网格网络1806。其他IoT网络可被呈现为包括WLAN网络1808、蜂窝网络1810以及LPWA网络1812。如本文中所描述,这些IoT网络中的每一者都可为新的开发提供机会。例如,IoT设备1704之间的(诸如通过主干链路1802的)通信可受分散化系统保护以用于认证、授权和记账(AAA)。在分散化AAA系统中,可跨互连的异构基础结构实现分布式支付、信贷、审计、授权和认证系统。这允许系统和网络迈向自主操作。

在这些类型的自主操作中,机器甚至可订立人力资源合约,并且与其他机器网络商议伙伴关系。这可允许针对概括的计划服务水平协议实现共同目标和均衡的服务交付,并且实现提供计量、测量、可追溯性和可跟踪性的解决方案。新供应链结构和方法的产生可在没有任何人类参与的情况下使大量服务能够被产生、被挖掘价值以及坍塌。

IoT网络可进一步通过将感测技术(诸如声、光、电子通信量、面部和模式识别、嗅觉、振动)集成到自主组织中而进一步被增强。对传感系统的集成可允许对于针对合同服务目标、基于编排和服务质量(QoS)的分群以及资源融合的服务交付的系统性和自主的通信和协调。

网格网络1806可由执行串联式数据-信息变换的系统来增强。例如,包括多链路网络的处理资源的自形成的链能以高效的方式分布原始数据向信息的变换、在资产和资源之间进行区分的能力以及对每一者的相关联的管理。此外,可插入基于基础结构和资源的恰当组件的信任和服务索引以改善数据完整性、质量、保证,并递送数据置信度的度量。

WLAN网络1808可使用执行标准转换的系统以提供多标准连接性,从而实现使用不同协议进行通信的IoT设备1704。进一步的系统可提供跨多标准基础结构的无缝的互连接性,该多标准基础结构包括可见的因特网资源和隐藏的因特网资源。蜂窝网络1810中的通信可由卸载数据的系统、将通信延伸至更远程的设备的系统或卸载数据的系统和将通信延伸至更远程的设备的系统两者来增强。LPWA网络1812可包括执行非网际(IP)至IP互连、寻址和路由的系统。

图19示出了根据各实施例的与多个物联网(IoT)设备通信的示例云计算网络或云1901的布置1900。云1901可表示因特网、一个或多个蜂窝网络、局域网(LAN)或广域网(WAN)(包括用于公司或组织的专用和/或企业网络)、或其组合。云1901可对应于图16的云1601。用于此类通信系统的组件可以至少部分地取决于选择的网络和/或环境的类型。用于经由此类网络进行通信的协议和组件是已知的,本文将不详细地讨论。然而,应当理解,云1901可与拥有或控制提供网络相关服务所必需的装备和其他元件的网络操作者相关联,诸如一个或多个基站或接入点、以及用于路由数字数据或电话呼叫的一个或多个服务器(例如,核心网络或骨干网络)。

图19中IoT设备可以与参考图17-图18所讨论的IoT设备1704相同或类似。IoT设备可包括以各种组合(诸如IoT群组1906)分组的任何数量的不同类型的设备,这些设备可包括为特定用户、消费者、组织等提供一个或多个服务的IoT设备。服务提供商可将IoT设备以IoT群组1906部署到特定区域(例如,地理位置、建筑物等),以便提供一个或多个服务。在一个示例中,IoT群组306可以是交通控制组,其中IoT群组1906中的IoT设备可以包括交通信号灯、交通流监测器、相机、天气传感器等,以为特定市政或其他类似实体提供交通控制服务和交通分析服务。类似于图17-图18,在实施例中,IoT设备1914-1924、GW 1910等中的一者或多者可以与本文中特别是参考图1-图16所描述的实施例结合。例如,在一些实施例中,IoT群组1906或本文所讨论的IoT群组中的任一者可包括参考图1-图16所讨论的组件、设备、系统。

IoT群组1906或其他子组可通过无线链路1908(诸如LPWA链路等等)与云1901通信。进一步地,有线或无线子网1912可允许IoT设备诸如通过局域网、无线局域网等等来彼此通信。IoT设备可使用诸如GW1910之类的另一设备来与云1901进行通信。IoT设备的其他群组可包括远程气象站1914、本地信息终端1916、警报系统1918、自动化柜员机1920、警报面板1922或移动车辆(诸如应急车辆1924或其他车辆1926),等等。这些IoT设备中的每一者可以与其他IoT设备、与服务器1904或两者进行通信。

如从图19可见,大量IoT设备可通过云1901进行通信。这可允许不同的IoT设备自主地请求信息或将信息提供给其他设备。例如,IoT群组1906可从能在没有人类干预的情况下提供预报的一组远程气象站1914请求当前的天气预报。进一步地,可由自动化柜员机1920向应急车辆1924警告盗窃在进行中。当应急车辆1924朝自动化柜员机1920行进时,它可访问交通控制组1906以请求清空该位置,例如,通过在足够的时间内亮起红灯以阻止交叉路口处的交叉交通流,以使应急车辆1924能够畅通无阻地进入该交叉路口。

在另一个示例中,IoT群组1906可以是工业控制组(也称为“连接工厂”、“工业4.0”组等),其中IoT群组1906中的IoT设备可以包括具有嵌入式IoT设备的机器或设备、制造工厂内的射频识别(RFID)读取器、相机、客户端计算机设备等以为特定的制造商或工厂运营商提供生产控制、自我优化或分散的任务管理服务、分析服务等。在该示例中,IoT群组1906可以经由GW 1910和云1901与服务器1904通信以提供所捕获的数据,该捕获的数据可以用于向制造商或工厂运营商提供性能监测和分析。另外,IoT群组1906中的IoT设备可以彼此通信,和/或与其他IoT群组的其他IoT设备通信,以自行决定并尽可能自动地执行其任务。

IoT设备的集群(诸如图19所描绘的IoT群组)可被装备成与其他IoT设备以及与云1901通信。这可允许IoT设备在多个设备之间形成自组织(ad-hoc)网络,从而允许它们充当单个设备,该单个设备可被称为雾设备。参考图20对这进行进一步讨论。

图20示出了根据各实施例的云计算网络或者与IoT设备的网格网络通信的云2001的布置2000,该网格网络可被称为雾设备2020或雾2020,其在云2001的边缘处操作。云2001可以与图16的云1601和图19的云1901相同或类似。类似标记的项如关于图17-图19所描述。在此示例中,雾2020是交叉路口处的IoT设备群组。雾2020可根据OpenFog联盟(OFC)、开放连接性基金会

在实施例中,雾计算系统(诸如雾2020)可以是涉及用于将云计算功能带至更靠近于数据生成方或消费方的机制,其中各种网络设备在它们的原生架构上运行云应用逻辑。雾计算系统可用于在将数据路由至中央云计算服务的同时对该数据执行低等待时间计算/聚合,以用于执行重型计算或计算上繁重的任务。另一方面,边缘云计算将人类操作的、自愿性的资源(诸如台式PC、平板、智能电话、纳米数据中心)合并为云。在各实现方式中,边缘云中的资源可以处于距IoT设备2004一跳到两跳的接近度内,这可引起与处理数据有关的开销降低并且可减少网络等待时间。

在一些实施例中,雾2020可以是IoT设备2004和/或联网设备(诸如路由器和交换机)与在它们的原生架构上运行云应用逻辑的高计算性能和能力的合并。雾资源可以由云供应商来制造、管理和部署,并且可以利用高速的可靠的链路来互连。而且,当与边缘系统比较时,雾资源可以驻留在更远离于网络的边缘处,但是当与中央云基础设施相比时,雾资源驻留在更靠近于网络的边缘处。雾设备用于有效地处置由边缘资源卸载的计算密集型任务。

在实施例中,雾2020可在云2001的边缘处操作。在一些实施例中,在云2001的边缘处操作的雾2020可与云2001的边缘网络重叠或者可被归入到云2001的边缘网络中。在一些实施例中,云2001的边缘网络可与雾2020重叠,或者可成为雾2020的部分。此外,雾2020可以是包括边缘层和雾层的边缘-雾网络。边缘-雾网络的边缘层包括松散耦合的、自愿性的、以及人类操作的资源(例如,前述边缘设备)的集合。雾层驻留在边缘层之上,并且是诸如本文所讨论的那些之类的联网设备的合并。

数据可被捕捉、被存储/被记录、并在IoT设备2004之间被传递。对通信量流的分析以及控制方案可由聚合器2026实现,该聚合器2026通过网格网络与IoT设备2004进行通信并且彼此通信。通过经由网格网络与IoT设备2004以及聚合器2006通信的GW 310,可将数据上传至云2001,并且可从云2001接收命令。不像传统的云计算模型,在一些实现方式中,云2001可具有很少的计算能力或不具有计算能力,并且仅充当用于对由雾2020记录和处理的数据进行归档的储存库。在这些实现方式中,云2001使数据存储系统集中化,并且提供向数据提供可靠性,并提供由雾2020中的计算设备和/或边缘设备对数据的接入。处于架构的核心处,数据存储可由前述边缘-雾网络的边缘层和雾层两者访问。

类似于图17-图19,在实施例中,IoT设备2004、聚合器2026等中的一者或多者可以与本文中特别是参考图1-16所描述的实施例结合。例如,在一些实施例中,雾2020或本文所讨论的设备群组中的任一者可包括参考图8-图16所讨论的组件、设备、系统。

可在雾2020中使用任何数量的通信链路。例如,与IEEE 802.15.4兼容的短距链路2008可提供邻近于交叉路口的IoT设备之间的局部通信。例如,与LPWA标准兼容的长距链路2010可提供IoT设备与GW 2010之间的通信。为了简化该图,并非每一个通信链路2008或2010都用附图标记进行标记。

雾2020可被认为是大规模互连的网络,其中大量IoT设备例如通过通信链路2008及2010彼此通信。可使用由开放连接基金会

来自任何IoT设备的通信可以沿着IoT设备中的任何设备之间的最方便的路径传递以到达GW 310。在这些网络中,互连的数量可以提供大量的冗余,从而甚至在丢失大量IoT设备的情况下也允许维持通信。

并非所有的IoT设备都可以是雾2020的永久性构件。在图20的示例中,三个瞬态IoT设备加入雾2020、第一移动设备2012、第二移动设备2014、以及第三移动设备2016。可将雾2020作为位于云2001的边缘处的单个设备呈现给云2001中的客户端(诸如服务器2004)。在此示例中,控制与雾2020中的特定资源的通信可在不标识雾2020内的任何特定IoT设备2004的情况下进行。相应地,如果任何IoT设备2004出现故障,其他IoT设备2004可能能够发现和控制资源。例如,IoT设备2004可以被布线使得允许任何一个IoT设备2004控制其他IoT设备2004的测量、输入、输出等。聚合器2026也可提供对IoT设备2004的控制以及雾2020的其他功能中的冗余。

在一些示例中,可使用命令性编程风格来配置IoT设备,例如,每个IoT设备具有特定功能和通信伙伴。然而,形成雾2020的IoT设备可以以说明性编程风格配置,从而允许IoT设备重新配置它们的操作和通信,诸如响应于条件、查询和设备故障来确定所需的资源。这可作为瞬态IoT设备(诸如设备2010、2014、2016)加入雾2020来执行。当瞬态或移动IoT设备进入或离开雾2002时,雾2020可能重新配置自身以包括这些设备。这可以通过形成设备2012和2014以及第三移动设备2016的临时群组以控制或以其他方式与IoT设备2004通信来执行。如果设备2012、2014中的一者或两者是自主的,则该临时群组可以向设备2012、2014提供指令。当瞬态设备2012、2014和2016离开雾2020的附近时,雾2020可重新配置其自身以从网络消除那些IoT设备。雾2020还可以将其自身划分为功能单元,诸如IoT设备2004和邻近特定区域或地理特征的其他IoT设备,或者执行特定功能的其他IoT设备。这种类型的组合可实现使用来自雾2020的资源的较大IoT构造的形成。

如由雾2020所图示,IoT网络的有机发展对于使IoT实现方式的效用、可用性和弹性最大化至关重要。进一步地,示例指示了改善信任并由此提高安全性的战略的有用性。设备的局部标识在实现中可能是重要的,因为身份的分散确保不能利用中央权限来允许模仿可能存在于IoT网络内的对象。进一步地,局部标识减少了通信开销和等待时间。

参照根据本公开的多个实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本公开。将会理解,可以由计算机程序指令来实现流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合。可将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器来生产机器,使得经由计算机或其他可编程数据处理装置的处理器执行的这些指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。

也可将这些计算机程序指令存储在可指示计算机或其他可编程数据处理装置按特定方式运作的计算机可读介质中,使得该计算机可读介质中所存储的这些指令生产制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的指令装置。

也可将计算机程序指令加载到计算机或其他可编程数据处理装置上以使一系列操作步骤在该计算机或其他可编程装置上被执行从而产生计算机实现的过程,使得在该计算机或其他可编程装置上执行的这些指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的过程。

附图中的流程图和框图图示出根据本公开的各实施例的系统、方法和计算机程序产品的可能的实现方式的架构、功能和操作。就这一点而言,流程图或框图中的每个框可表示包括用于实现指定的(多个)逻辑功能的一条或多条可执行指令的模块、代码段或代码的部分。应当注意,在一些替代实现方式中,框中所标注的功能可不按图中所标注的次序发生。例如,取决于所涉及的功能,实际上,可基本上同时地执行连续地示出的两个框,或者有时可按相反的次序来执行这些框。也将注意,可以由执行指定的功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合。

本文中所使用的术语仅出于描述特定实施例的目的,并且不旨在限制本公开。如本文中所使用,单数形式的“一”(“a”、“an”)和“该”(“the”)旨在也包括复数形式,除非上下文另外清楚地指示。还将理解,当在本说明书中使用术语“包括”(“comprise”和/或“comprising”)时,其指定所陈述的特征、整数、步骤、操作、元件、和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件、和/或其群组的存在或添加。

出于本公开的目的,短语“A和/或B”意指(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。说明书可使用短语“在实施例中”或“在一些实施例中”,其可各自指代相同或不同实施例中的一个或多个实施例。此外,如相对于本公开的实施例所使用的术语“包含”、“包括”、“具有”等是同义的。

本文中使用术语“耦合的”、“通信地耦合的”及其派生词。术语“耦合的”可意指两个或更多个元件彼此处于直接的物理或电连接,可意指两个或更多个元件间接地彼此接触但仍彼此协作或交互,和/或可意指一个或多个其他元件被耦合或连接在被称为彼此耦合的元件之间。术语“直接耦合”可意指两个或更多个元件彼此直接接触。术语“通信地耦合的”可意指两个或更多个元件可通过通信装置彼此接触,通过通信装置包括通过线或其他互连连接、通过无线通信信道或墨迹等等。

如本文中所使用,术语“电路系统”是指被配置成用于执行电子设备中的特定功能的电路或具有多个电路的系统。电路或电路的系统可以是指被配置成用于提供所描述的功能的硬件组件、是这些硬件组件的部分或者包括这些硬件组件,这些硬件组件诸如逻辑电路、处理器(共享的、专用的或组)和/或存储器(共享的、专用的或组)、专用集成电路(ASIC)、现场可编程器件(FPD)(例如,现场可编程门阵列(FPGA))、可编程逻辑器件(PLD)、复杂PLD(CPLD)、高容量PLD(HCPLD)、结构化ASIC、或可编程芯片上系统(SoC)、数字信号处理器(DSP)等。另外,术语“电路系统”也可指代一个或多个硬件元件与程序代码的组合,用于执行该程序代码的功能。一些类型的电路系统可执行一个或多个软件或固件程序,以提供所描述的功能中的至少一些。此类硬件元件与程序代码的组合可被称为特定类型的电路系统。

如本文中所使用,术语“处理器电路系统”是指以下各项、是以下各项的部分、或包括以下各项:能够顺序地且自动地执行一系列算术或逻辑操作或者记录、存储和/或传输数字数据的电路、和/或能够执行计算机可执行指令(诸如程序代码、软件模块和/或功能进程)或以其他方式对计算机可执行指令进行操作的任何其他设备。如本文中所使用,术语“模块”是被封装到电路板、SoC、封装中系统(SiP)等之上的被配置成用于计算机系统内的基本功能的独立的电子电路。术语“模块”可指以下各项,是以下各项的部分,或者可包括以下各项:执行提供所描述功能的一个或多个软件或固件程序、组合逻辑电路和/或其他合适的组件的FPD、ASIC、处理器(共享的、专用的或成组的)和/或存储器(共享的、专用的或成组的)。

如本文中所使用,术语“进行实例化(instantiate)”、“实例化(instantiation)”或类似术语可指对实例的创建,并且“实例(instance)”可指对象的具体发生,例如,对象可在程序代码的执行期间发生。如本文中所使用,术语“资源”是指物理或虚拟设备、计算环境中的物理或虚拟组件、和/或特定设备中的物理或虚拟组件,诸如计算机设备、机械设备、存储器空间、处理器/CPU时间、处理器/CPU使用、处理器和加速器负载、硬件时间或使用、电功率、输入/输出操作、端口或网络插槽、信道/链路分配、吞吐量、存储器使用、存储、网络、数据库和应用、工作负荷单元等等。如本文中所使用,术语“信道”可指用于传递数据或数据流的任何有形或无形传输介质。术语“信道”可与“通信信道”、“数据通信信道”、“传输信道”、“数据传输信道”、“接入信道”、“数据访问信道”、“链路”、“数据链路”、“载波”、“射频载波”、和/或表示传达数据所通过的路径或介质的任何其他类似术语同义,和/或等同于这些术语。另外,术语“链路”可指两个设备之间出于传送和接收信息目的的连接。

如本文中所使用,术语“计算机系统”是指任何类型互连的电子设备、计算机设备、或其组件。另外,术语“计算机系统”和/或“系统”可指计算机的彼此通信地耦合的各种组件。此外,术语“计算机系统”和/或“系统”可指彼此通信地耦合并且被配置成用于共享计算和/或联网资源的多个计算机设备和/或多个计算系统。如本文中所使用,术语“装置”或“计算机装置”等等是指具有程序代码(例如,软件或固件)的专门被设计成用于提供特定计算资源的计算机设备或计算机系统。“虚拟装置”是用于由使计算机装置虚拟化或模仿计算机装置或者以其他方式专用于提供特定的计算资源的、由装配有管理程序的设备实现的虚拟机镜像。

可将实施例实现为计算机进程、计算系统,或者实现为诸如计算机可读介质的计算机程序产品之类的制品。计算机程序产品可以是计算机存储介质,该计算机存储介质可由计算机系统读取并对计算机程序指令编码以执行计算机进程。

所附权利要求书中的所有装置或步骤以及功能元件的对应的结构、材料、动作及等效物旨在包括与具体地要求保护的其他要求保护的元件组合执行功能的任何结构、材料或动作。已出于说明和描述的目的呈现了本公开的描述,但是该描述不旨在是穷举性的,也不限于按所公开形式的本公开。在不背离本公开的范围和精神的情况下,许多修改和变型对普通技术人员将是显而易见的。选择并描述实施例,以便最好地解释本公开的原理和实际应用,并且以便使其他本领域普通技术人员能够理解对具有适用于所构想的特定使用的各种修改的实施例的公开。

以下提供一些非限制性示例。以下示例涉及进一步的实施例。可在一个或多个实施例中的任何地方使用示例中的细节。本文中所描述的(多个)设备的所有任选特征也可相对于方法或过程来实现。

示例1包括集成电路,包括:存储器电路系统,该存储器电路系统被实现为先进先出(FIFO)缓冲器;以及通信地与存储器电路系统耦合的控制器,该控制器控制所接收的数据在FIFO缓冲器中的存储,并基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中的当前可用的空闲空间量来改变要存储在FIFO缓冲器中的所接收的数据的大小。

示例2包括示例1和/或本文的一些其他示例的IC,其中,控制器响应于接收到要存储在FIFO缓冲器中的数据片段而确定是否改变要存储在FIFO缓冲器中的数据的大小。

示例3包括示例1-2和/或本文的一些其他示例的IC,其中,控制器用于:在存储在FIFO缓冲器中的当前数据量超出FIFO缓冲器的大小阈值时,丢弃要存储在FIFO缓冲器中的新数据片段。

示例4包括示例1-2和/或本文的一些其他示例的IC,其中,控制器用于:在当前空闲空间量小于FIFO缓冲器的空闲空间阈值量时,丢弃要存储在FIFO缓冲器中的新数据片段。

示例5包括示例1-4和/或本文的一些其他示例的IC,其中,为了改变要存储在FIFO缓冲器中的数据的大小,控制器用于:当FIFO缓冲器中存储的当前数据量小于第一阈值时,控制整个新数据片段在FIFO缓冲器中的存储;或者当FIFO缓冲器中的当前空闲空间量大于另一个第一阈值时,控制整个新数据片段在FIFO缓冲器中的存储。

示例6包括示例5和/或本文的一些其他示例的IC,其中,为了改变要存储在FIFO缓冲器中的数据的大小,控制器用于:当FIFO缓冲器中存储的当前数据量大于等于第一阈值且小于第二阈值时,控制新数据片段的第一部分在FIFO缓冲器中的存储;或者当FIFO缓冲器中的当前空闲空间量小于等于另一个第一阈值并且大于另一个第二阈值时,控制新数据片段的第一部分在FIFO缓冲器中的存储。

示例7包括示例6和/或本文的一些其他示例的IC,其中,第二部分的大小小于第一部分的大小,并且为了改变要存储在FIFO缓冲器中的数据的大小,控制器用于:当存储在FIFO缓冲器中的当前数据量大于等于第二阈值并且小于FIFO缓冲器的大小阈值时,控制新数据片段的第二部分在FIFO缓冲器中的存储;或者当FIFO缓冲器中的当前空闲空间量小于等于另一个第二阈值并且大于FIFO缓冲器的空闲空间阈值量时,控制新数据片段的第二部分在FIFO缓冲器中的存储。

示例8包括示例7和/或本文的一些其他示例的IC,其中,数据片段是包括N个位的字,第一部分的大小是N/2而第二部分的大小是N/4。

示例9包括示例8和/或本文的一些其他示例的IC,其中,N表示模拟信号的量化精度。

示例10包括示例7-9和/或本文的一些其他示例的IC,其中,第一阈值是FIFO缓冲器的大小阈值的50%,而第二阈值是FIFO缓冲器的大小阈值的75%。

示例11包括示例1-10和/或本文的一些其他示例的IC,其中,IC是现场可编程门阵列(FPGA)。

示例12包括示例1-10和/或本文的一些其他示例的IC,其中,IC是基带处理器,并且其中存储器电路系统是基带处理器的封装内存储器设备。

示例13包括一个或多个包括指令的计算机可读介质(CRM),其中,基带电路系统的一个或多个处理器对指令的执行使得基带电路系统用于:获得要存储在先进先出(FIFO)缓冲器中的量化数据样本;基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中的当前可用的空闲空间量来选择要存储在FIFO缓冲器中的量化数据样本的位数;以及控制选定数量的位在FIFO缓冲器中的存储。

示例14包括示例13和/或本文一些其他示例的一个或多个CRM,其中,指令的执行使得基带电路系统用于:响应于接收到量化数据样本,确定是否选择要存储在FIFO缓冲器中的位数。

示例15包括示例13-14和/或本文一些其他示例的一个或多个CRM,其中,指令的执行使得基带电路系统用于:当存储在FIFO缓冲器中的当前数据量小于第一阈值时,选择要存储在FIFO缓冲器中的量化数据样本的所有位;当存储在FIFO缓冲器中的当前数据量大于等于第一阈值并且小于第二阈值时,选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当存储在FIFO缓冲器中的当前数据量大于第二阈值并且小于FIFO缓冲器的大小阈值时,选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;以及当存储在FIFO缓冲器中的当前数据量超过FIFO缓冲器的大小阈值时,丢弃量化数据样本。

示例16包括示例13-14和/或本文一些其他示例的一个或多个CRM,其中,指令的执行使得基带电路系统用于:当FIFO缓冲器中的当前空闲空间量大于第一阈值时,选择要存储在FIFO缓冲器中的量化数据样本的所有位;当FIFO缓冲器中的当前空闲空间量小于等于第一阈值并且大于第二阈值时,选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当FIFO缓冲器中的当前空闲空间量小于等于第二阈值并且大于FIFO缓冲器的空闲空间阈值量时,选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;以及在该当前空闲空间量小于等于FIFO缓冲器的空闲空间阈值量时,丢弃量化数据样本。

示例17包括示例15-16和/或本文的一些其他示例的一个或多个CRM,其中,量化数据样本表示模拟信号的样本,并且位数表示模拟信号的量化精度。

示例18包括示例15-16和/或本文的一些其他示例的一个或多个CRM,其中,FIFO缓冲器在基带处理器的封装内存储器设备中实现。

示例19包括一种通信电路系统,该通信电路系统包括:耦合到天线阵列的射频(RF)电路系统;以及与RF电路系统通信耦合的基带电路系统,其中,基带电路系统被配置为:获得量化数据样本;确定存储在先进先出(FIFO)缓冲器中的当前数据量或FIFO缓冲器中的当前可用的空闲空间量;基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中的当前空闲空间量,选择要存储在FIFO缓冲器中的量化数据样本的位数;以及将选定数量的位存储在FIFO缓冲器中。

示例20包括示例19和/或本文一些其他示例的通信电路系统,其中,基带电路系统被配置为:响应于从RF电路系统接收到量化数据样本,确定是否选择要存储在FIFO缓冲器中的位数。

示例21包括示例19-20和/或本文一些其他示例的通信电路系统,其中,基带电路系统被配置为:当存储在FIFO缓冲器中的当前数据量小于第一阈值时,选择要存储在FIFO缓冲器中的量化数据样本的所有位;当存储在FIFO缓冲器中的当前数据量大于等于第一阈值并且小于第二阈值时,选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当存储在FIFO缓冲器中的当前数据量大于等于第二阈值并且小于FIFO缓冲器的大小阈值时,选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;当存储在FIFO缓冲器中的当前数据量超过FIFO缓冲器的大小阈值时,丢弃量化数据样本。

示例22包括示例19-20和/或本文一些其他示例的通信电路系统,其中,基带电路系统被配置为:当FIFO缓冲器中的当前空闲空间量大于第一阈值时,选择要存储在FIFO缓冲器中的量化数据样本的所有位;当存储在FIFO缓冲器中的当前空闲空间量小于等于第一阈值并且大于第二阈值时,选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当FIFO缓冲器中的当前空闲空间量小于等于第二阈值并且大于FIFO缓冲器的空闲空间阈值量时,选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;在该当前空闲空间量小于等于FIFO缓冲器的空闲空间阈值量时,丢弃量化数据样本。

示例23包括示例21-22和/或本文的一些其他示例的通信电路系统,其中,基带电路系统被配置为生成量化数据样本,并在传输信号路径上将量化数据样本提供给RF电路系统,并且其中,量化数据样本表示数字基带信号的样本,并且位数表示数字基带信号的量化精度。

示例24包括示例21-22和/或本文的一些其他示例的通信电路系统,其中基带电路系统被配置为从RF电路系统接收量化数据样本,并且其中量化数据样本表示模拟信号的样本,并且位数表示模拟信号的量化精度。

示例25包括示例21-22和/或本文的一些其他示例的通信电路系统,其中,FIFO缓冲器在基带电路系统的暂存式存储器设备中实现。

示例26包括一种方法,该方法包括:接收或使得接收要存储在先进先出(FIFO)缓冲器中的数据;基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中可用的当前空闲空间量来改变或使得改变所接收的要存储在FIFO缓冲器中的数据的大小;以及将或使得将大小改变的数据存储在FIFO缓冲器中。

示例27包括示例26和/或本文的一些其他示例的方法,进一步包括:响应于接收到要存储在FIFO缓冲器中的数据片段而确定或使得确定是否改变要存储在FIFO缓冲器中的数据的大小。

示例28包括示例26-27和/或本文的一些其他示例的方法,进一步包括:在存储在FIFO缓冲器中的当前数据量超出FIFO缓冲器的大小阈值时,丢弃或使得丢弃要存储在FIFO缓冲器中的新数据片段。

示例29包括示例26-27和/或本文的一些其他示例的方法,进一步包括:在当前空闲空间量小于FIFO缓冲器的空闲空间阈值量时,丢弃或使得丢弃要存储在FIFO缓冲器中的新数据片段。

示例30包括示例26-29和/或本文的一些其他示例的方法,其中,改变要存储在FIFO缓冲器中的数据的大小包括:当FIFO缓冲器中存储的当前数据量小于第一阈值时,将或使得将整个新数据片段存储在FIFO缓冲器中;或者当FIFO缓冲器中的当前空闲空间量大于另一个第一阈值时,将或使得将整个新数据片段存储在FIFO缓冲器中。

示例31包括示例30和/或本文的一些其他示例的方法,其中,改变要存储在FIFO缓冲器中的数据的大小包括:当FIFO缓冲器中存储的当前数据量大于等于第一阈值并且小于第二阈值时,将或使得将新数据片段的第一部分存储在FIFO缓冲器中;或者当FIFO缓冲器中的当前空闲空间量小于等于另一个第一阈值并且大于另一个第二阈值时,将或使得将新数据片段的第一部分存储在FIFO缓冲器中。

示例32包括示例31和/或本文的一些其他示例的方法,其中,第二部分的大小小于第一部分的大小,并且改变要存储在FIFO缓冲器中的数据的大小包括:当存储在FIFO缓冲器中的当前数据量大于等于第二阈值并且小于FIFO缓冲器的大小阈值时,将或使得将新数据片段的第二部分存储在FIFO缓冲器中;或者当FIFO缓冲器中的当前空闲空间量小于等于另一个第二阈值并且大于FIFO缓冲器的空闲空间阈值量时,将或使得将新数据片段的第二部分存储在FIFO缓冲器中。

示例33包括示例32和/或本文的一些其他示例的方法,其中,数据片段是包括N个位的字,第一部分的大小是N/2而第二部分的大小是N/4。

示例34包括示例33和/或本文的一些其他示例的方法,其中N表示模拟信号的量化精度。

示例35包括示例32-34和/或本文的一些其他示例的方法,其中,第一阈值是FIFO缓冲器的大小阈值的50%,而第二阈值是FIFO缓冲器的大小阈值的75%。

示例36包括一种或多种包括指令的计算机可读介质,其中,由现场可编程门阵列(FPGA)执行指令使得FPGA执行示例26-35的方法。

示例37包括一种或多种包括指令的计算机可读介质,其中,由基带处理器执行指令使得基带处理器执行示例26-35的方法。

示例38包括一种方法,该方法包括:获取或使得获取要存储在先进先出(FIFO)缓冲器中的量化数据样本;基于或使得基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中可用的当前空闲空间量来选择要存储在FIFO缓冲器中的量化数据样本的位数;以及将或使得将选定数量的位存储在FIFO缓冲器中。

示例39包括示例38和/或本文一些其他示例的方法,进一步包括:响应于接收到量化数据样本,确定或使得确定是否选择要存储在FIFO缓冲器中的位数。

示例40包括示例38-39和/或本文一些其他示例的方法,进一步包括:当存储在FIFO缓冲器中的当前数据量小于第一阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的所有位;当存储在FIFO缓冲器中的当前数据量大于等于第一阈值并且小于第二阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当存储在FIFO缓冲器中的当前数据量大于第二阈值并且小于FIFO缓冲器的大小阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;以及当存储在FIFO缓冲器中的当前数据量超过FIFO缓冲器的大小阈值时,丢弃或使得丢弃量化数据样本。

示例41包括示例38-39和/或本文一些其他示例的方法,进一步包括:当FIFO缓冲器中的当前空闲空间量大于第一阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的所有位;当FIFO缓冲器中的当前空闲空间量小于等于第一阈值并且大于第二阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当FIFO缓冲器中的当前空闲空间量小于第二阈值并且大于FIFO缓冲器的空闲空间阈值量时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;以及在该当前空闲空间量小于等于FIFO缓冲器的空闲空间阈值量时,丢弃量化数据样本。

示例42包括示例40-41和/或本文的一些其他示例的方法,其中,量化数据样本表示模拟信号的样本,并且位数表示模拟信号的量化精度。

示例43包括一种或多种包括指令的计算机可读介质,其中,由基带处理器执行指令使得基带处理器执行示例38-42的方法。

示例44包括一种方法,该方法包括:获取或使得获取量化数据样本;确定或使得确定存储在先进先出(FIFO)缓冲器中的当前数据量或FIFO缓冲器中的当前可用的空闲空间量;基于或使得基于存储在FIFO缓冲器中的当前数据量或FIFO缓冲器中的当前空闲空间量来选择要存储在FIFO缓冲器中的量化数据样本的位数;以及将或使得将选定数量的位存储在FIFO缓冲器中。

示例45包括示例44和/或本文一些其他示例的方法,进一步包括:响应于从射频(RF)电路系统接收到量化数据样本或者响应于由基带电路系统生成量化数据样本,确定或使得确定是否选择要存储在FIFO缓冲器中的位数。

示例46包括示例44-45和/或本文一些其他示例的方法,进一步包括:当存储在FIFO缓冲器中的当前数据量小于第一阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的所有位;当存储在FIFO缓冲器中的当前数据量大于等于第一阈值并且小于第二阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当存储在FIFO缓冲器中的当前数据量大于等于第二阈值并且小于FIFO缓冲器的大小阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;以及当存储在FIFO缓冲器中的当前数据量超过FIFO缓冲器的大小阈值时,丢弃或使得丢弃量化数据样本。

示例47包括示例44-45和/或本文一些其他示例的方法,进一步包括:当FIFO缓冲器中的当前空闲空间量大于第一阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的所有位;当FIFO缓冲器中的当前空闲空间量小于等于第一阈值并且大于第二阈值时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的一半;当FIFO缓冲器中的当前空闲空间量小于第二阈值并且大于FIFO缓冲器的空闲空间阈值量时,选择或使得选择要存储在FIFO缓冲器中的量化数据样本的位数的四分之一;以及在该当前空闲空间量小于等于FIFO缓冲器的空闲空间阈值量时,丢弃或使得丢弃量化数据样本。

示例48包括示例46-47和/或本文的一些其他示例的方法,进一步包括:生成或使得生成量化数据样本;以及在或使得在传输信号路径上将量化数据样本提供给RF电路系统,并且其中,量化数据样本表示数字基带信号的样本,并且位数表示数字基带信号的量化精度。

示例49包括示例46-47和/或本文的一些其他示例的方法,进一步包括:从RF电路系统接收或使得接收量化数据样本,并且其中量化数据样本表示模拟信号的样本,并且位数表示模拟信号的量化精度。

示例50包括一种或多种包括指令的计算机可读介质,其中,由基带处理器执行指令使得基带处理器执行示例44-49的方法。

示例51包括一种设备,该设备包括用于执行示例1-50中任一项中所描述的或与示例1-50中任一项有关的方法、或本文所描述的其他方法或过程的一个或多个要素的装置。

示例52包括一种设备,该设备包括逻辑、模块或电路系统,以执行示例1-50中任一项中所描述的或与示例1-50中任一项有关的方法、或本文所描述的其他方法或过程的一个或多个要素的装置。

示例53包括如在示例1-50中任一项中所描述的或与示例1-50中的任一项有关的方法、技术、或过程,或包括其部分或片段。

示例54包括一种设备,该设备包括:一个或多个处理器;以及一个或多个计算机可读介质,包括指令,这些指令在由一个或多个处理器执行时使得该一个或多个处理器执行如在示例1-50中任一项中所描述的或与示例1-50中的任一项有关的方法、技术、或过程,或执行其部分。示例55包括如在示例1-50中任一项中所描述的或与示例1-50中的任一项有关的信号,或包括其部分或片段。示例56包括如本文中所示和所描述的无线网络中的信号。示例57包括如示例1-50中任一项所描述的或与示例1-50中任一项有关的消息、数据报、帧、分组和/或协议数据单元(PDU),或包括其部分或片段。示例58包括如本文中所示和所描述的无线网络中的通信方法。示例59包括用于提供如本文中所示和所描述的无线通信的系统。示例60包括用于提供如本文中所示和所描述的无线通信的设备。

一个或多个实现方式的前述描述提供了各示例实施例的说明和描述,但不旨在是穷举的且不旨在将实施例的范围限制于所公开的精确形式。根据以上教导,修改和变型是可能的,或者可从各实施例的实施获取。在为了描述本公开的示例实施例而陈述特定细节的情况下,对本领域普通技术人员应当显而易见的是,可以在没有这些特定细节或在这些特定细节变化情况下实施本公开。描述因此被视为是说明性的而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号