CN102473115A - 用于高效数据处理的装置和方法 - Google Patents
用于高效数据处理的装置和方法 Download PDFInfo
- Publication number
- CN102473115A CN102473115A CN2010800355051A CN201080035505A CN102473115A CN 102473115 A CN102473115 A CN 102473115A CN 2010800355051 A CN2010800355051 A CN 2010800355051A CN 201080035505 A CN201080035505 A CN 201080035505A CN 102473115 A CN102473115 A CN 102473115A
- Authority
- CN
- China
- Prior art keywords
- nextport
- hardware component
- task
- data
- component nextport
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 title claims abstract description 45
- 230000015654 memory Effects 0.000 claims description 35
- 230000015572 biosynthetic process Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims description 3
- 230000000295 complement effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000005055 memory storage Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241000760358 Enodes Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Advance Control (AREA)
Abstract
高效数据处理装置和方法包括由软件进行预编程的硬件组件。每一个硬件组件触发其它组件来完成其任务。在完成最后的预编程的硬件任务之后,硬件组件发出软件中断。
Description
技术领域
概括地说,本发明涉及数据处理,具体地说,涉及用于在通信系统中较高效地利用硬件处理数据的技术。
背景技术
一般而言,通信系统中的数据处理功能使用软件来实现多种任务。这类软件通常为特定硬件操作提供信息。因此,软件和硬件之间必须密切交互,因此在一些实例中,需要分多步实施特定任务。对软件的依赖性带来大量弊端,包括增加了延时、浪费带宽、增加系统微处理器上的处理负载等等。于是,需要较高效的用于处理数据的方法来对现有范例所导致的弊端加以改进或消除,其中,需要硬件和提供绝大多数用于控制该硬件的信息的软件之间密切交互。
发明内容
为了对一个或多个方面有一个基本的理解,下面给出了这些方面的简单概括。该概括部分不是对所有预期方面的详尽概述,其既不是要确定所有方面的关键或重要组成元素也不是描绘任何或所有方面的保护范围。其唯一目的是用简单的形式呈现一个或多个方面的一些概念,以此作为后面的详细说明的前奏。
根据一些方面,一种数据处理方法包括:由第一硬件组件接收用于执行第一任务集的指令,其中所述第一硬件组件具有与其相关联的第一任务队列;由第二硬件组件接收用于执行第二任务集的指令,其中所述第二硬件具有与其相关联的第二任务队列;在所述第一硬件组件处接收触发消息以执行所述第一任务集;在完成所述第一任务集之后,由所述第一硬件组件向所述第二硬件组件发送触发消息,以执行所述第二任务集。
根据一些方面,一种数据处理装置包括:处理器;第一存储器;第二存储器;具有与其相关联的第一任务队列的第一硬件组件;具有与其相关联的第二任务队列的第二硬件组件,其中,将多个任务预先存储在所述第一任务队列中,将多个第二任务预先存储在所述第二任务队列中,所述第一硬件组件用于接收触发以便开始执行所述多个第一任务,并向所述第二硬件组件发出触发以便开始执行所述多个第二任务。
为了实现前述和有关的目的,一个或多个方面包括下文所完全描述和权利要求书中具体指出的特征。下文描述和附图详细描述了一个或多个方面的某些示例性特征。但是,这些特征仅仅说明可采用这些各个方面之基本原理的各种方法中的一些方法,并且该描述旨在包括所有这些方面及其等同物。
附图说明
下面将结合附图描述所公开的方面,所述附图提供对所公开的方面的解释说明而并不是限制这些方面,其中,相同的标号表示相同的元件,其中:
图1描述了根据各个公开的方面的无线通信系统;
图2描述了根据各个公开的方面的用户设备和节点B;
图3描述了根据各个公开的方面的接收机;
图4中的数据流图描述了根据各个公开的方面的数据处理操作过程;
图5是根据各个公开的方面的简化的系统示意图;
图6中的数据流图描述了根据各个公开的方面的数据处理操作过程;
图7是描述了根据各个公开的方面的数据处理操作过程的流程图;
图8是描述了根据各个公开的方面的门限处理操作过程的流程图;
图9是描述了根据各个公开的方面,实现模板化处理的系统图;
图10是描述了根据各个公开的方面,实现多个存储池的系统图;
图11描述了根据各个公开的方面的协议数据单元存储;
图12是描述了根据各个公开的方面,解释说明数据处理和存储的简化框图;
图13是描述了典型无线设备的框图;
图14是描述了根据各个公开的方面的示例性无线设备的框图;
图15是根据各个公开的方面,实现小型处理器的简化框图;
图16是描述了根据各个公开的方面的利用小型处理器的处理数据方法的流程图;
图17是根据各个公开的方面,实现拷贝引擎的框图;
图18描述了根据各个公开的方面的示例性数据帧。
具体实施方式
现在参照附图描述各个方面。在下面的描述中,为便于解释,给出了大量具体细节,以便提供对一个或多个方面的全面理解。然而,很明显,也可以不用这些具体细节来实现这些方面。
如本申请中所用的,术语“组件”、“模块”、“系统”等意在包括与计算机相关的实体,例如但并不仅限于硬件、固件、硬件和软件的组合、软件或执行中的软件。举例而言,组件可以是但并不限于是:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。作为举例说明,计算设备上运行的应用和计算设备都可以是组件。一个或多个组件可以位于执行中的进程和/或线程中,组件可以位于一个计算机中和/或分布于两个或多个计算机中。另外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质中执行。这些组件可以诸如依照包含一个或多个数据分组的信号的方式通过本地和/或远程进程进行通信(例如,来自一个组件的数据,该组件以信号的方式与本地系统、分布式系统和/或通过诸如互联网之类的网络与其它系统中的另一个组件进行交互)。
此外,本申请中结合终端描述了各个方面,该终端可以是有线终端或无线终端。终端还可以叫做系统、设备、用户单元、用户站、移动站、移动台、移动设备、远方站、远程终端、接入终端、用户终端、终端、通信设备、用户代理、用户装置或用户设备(UE)。无线终端可以是蜂窝电话、卫星电话、无绳电话、会话发起协议(SIP)电话、无线本地环路(WLL)站、个人数字助理(PDA)、具有无线连接能力的手持式设备、计算设备或其它与无线调制解调器连接的处理设备。此外,本申请中结合基站描述了各个方面。基站可以用于与无线终端通信,并且也可以称为接入点、节点B或一些其它术语。
此外,术语“或”意为包含性的“或”而不是排除性的“或”。也就是说,除非另有说明或从上下文中明确得知,否则用语“X采用A或B”意为任何的自然的包含性排列。也就是说,下面情况中的任何一个都满足用语“X采用A或B”,即:X采用A;X采用B;或X采用A且B。另外,本申请中和所附权利要求中所用的冠词“一”和“一个”,除非另有说明或从上下文中明确指出为单数形式,否则一般解释为“一个或多个”。
本申请描述的技术可以用于各种无线通信系统,例如CDMA、TDMA、FDMA、OFDMA、SC-FDMA和其它系统。术语“系统”和“网络”通常互换使用。CDMA系统可以实现例如通用陆地无线接入(UTRA)、cdma2000等之类的无线技术。UTRA包括宽带-CDMA(W-CDMA)和CDMA的其它变体。此外,cdma2000涵盖IS-2000、IS-95和IS-856标准。TDMA系统可以实现诸如全球移动通信系统(GSM)之类的无线技术。OFDMA系统可以实现例如演进UTRA(E-UTRA)、超移动宽带(UMB)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、Flash-OFDM等之类的无线技术。UTRA和E-UTRA是全球移动电信系统(UMTS)的一部分。3GPP长期演进(LTE)是使用E-UTRA的UMTS的版本,其在下行链路上采用OFDMA而在上行链路上采用SC-FDMA。UTRA、E-UTRA、UMTS、LTE和GSM在来自名为“第三代合作伙伴计划”(3GPP)的组织的文件中进行了描述。另外,cdma 2000和UMB在来自名为“第三代合作伙伴计划2”(3GPP2)的组织的文件中进行了描述。此外,这些无线通信系统还可以包括通常使用不成对的未经许可的频谱的对等(例如,移动台对移动台)自组(ad hoc)网络系统、802.xx无线LAN、蓝牙和任何其它短距离或长距离的无线通信技术。
下面将围绕包括多个设备、组件、模块等的系统来表现各个方面或特征。应该理解和意识到,各种系统可以包括另外的设备、组件、模块等,和/或不包括结合附图而讨论的所有设备、组件、模块等。这些方法的组合也是可以使用的。
图1示出了无线通信系统100,其包括:(i)无线接入网(RAN)120,其支持用户设备(UE)的无线通信;以及(ii)网络实体,其执行用以支持通信服务的各种功能。RAN 120可以包括任何数量的节点B以及任何数量的无线网络控制器(RNC)。为了简单起见,图1中只示出一个节点B 130和一个RNC 132。节点B一般是与UE通信的固定站,且还可以称为演进节点B、基站、接入点等等。RNC 132连接到一组节点B,并为其控制下的节点B提供协调和控制。
网络协议(IP)网关140支持UE的数据服务,并且也可以称为服务GPRS支持节点或网关GPRS支持节点(SGSN或GGSN)、接入网关(AGW)、分组数据服务节点(PDSN)等。IP网关140负责为UE建立、维护和终止数据会话,并且可以进一步为UE分配动态IP地址。IP网关140连接到数据网150,该数据网150可以包括核心网、因特网等等。IP网关140能够通过数据网150与诸如服务器160之类的各种实体通信。无线系统100可以包括图1中未示出的其它网络实体。
UE 110可以与RAN 120通信以便与其它实体(例如服务器160)交换数据。UE 110可以是固定的或移动的,且还可以称为移动站、终端、用户单元、站等等。UE 110可以是蜂窝电话、个人数字助理(PDA)、无线通信设备、无线调制解调器、手持设备、膝上型计算机等等。UE 110通过空中接口(例如下行链路和上行链路)与节点B 120通信。下行链路(或前向链路)指的是从节点B到UE的通信链路,反向链路(或上行链路)指的是从UE到节点B的通信链路。本申请中所描述的技术可以用于下行链路和上行链路上的数据传输。
在一些方面,UE 110可以通过有线连接(如图1中所示)或无线连接与终端装置(TE)设备112连接。UE 110可以用于提供或支持TE设备112的无线数据服务。TE设备112可以是膝上型计算机、PDA或一些其它的计算设备。
图2示出了图1中的UE 110和节点B 130的示例性设计的框图。在这个示例性设计中,UE 110包括数据处理器210、外部存储器260、无线发射机(TMTR)252、无线接收机(RCVR)254。数据处理器210包括控制器/处理器220、发射处理器230、接收处理器240以及内部存储器250。总线212有助于处理器220、230和240和存储器250之间的数据传送。数据处理器210可以实现在专用集成电路(ASIC)上,存储器260可以在该ASIC的外部。
对于上行链路上的数据发送,发射处理器230根据一组协议处理业务数据并提供输出数据。无线发射机252可以调整(例如,转换为模拟、过滤、放大和上变频)输出数据并生成上行链路信号,该上行链路信号可以发射给节点B 230。对于下行链路上的数据接收,无线接收机254可以调整(例如,过滤、放大、下变频和数字化)从节点B 230接收到的下行链路信号并提供接收数据。接收处理器240根据一组协议处理所接收到的数据并提供业务数据。控制器/处理器220可以指导UE 110处的各个单元的操作。内部存储器250可以存储处理器220、230和240的程序代码和数据。外部存储器260为用于UE 110的数据和程序代码提供大容量存储。
图2还示出了节点B 130的示例性设计的框图。无线发射机/接收机264可以支持与UE 110和其它UE的无线通信。控制器/处理器270可以处理用于针对下行链路上的数据发送和上行链路上的数据接收的数据。控制器/处理器270还可以执行用于与UE的通信的各种功能。存储器272可以存储节点B 130的数据和程序代码。通信(Comm)单元274可以支持与其它网络实体的通信。
图3描述了接收机300的示例性设计,该接收机可以是UE 110的一部分。接收机300包括:外部存储器310,其用于提供数据的大容量存储;接收处理器320,其用于处理接收到的数据;以及内部存储器340,其用于存储处理后的数据。接收处理器320和内部存储器340可以实现在ASIC 312上。
在接收处理器320内,RX PHY处理器322可以从发射机(例如,节点B 130)接收PHY帧,根据由RAN使用的无线技术(例如,CDMA 20001X或1xEV-DO或LTE)来处理接收到的PHY帧,并提供接收到的帧。数据处理器324进一步处理(例如,解码、译码以及解帧(de-frame))所接收到的帧。
数据传递通常包括三个任务。第一,从一些位置(例如外部存储器310)移进数据。然后,由硬件对数据进行处理,并将其移回。数据移动器336可以被配置为从一个位置向另一个位置移进数据,并在硬件加速器334处理之后将数据移回。处理器/控制器330可以被配置为控制硬件加速器334和数据移动器336的操作。
图4是描述了在软件和硬件中发生的典型的数据处理操作的数据流图。如图4所示,软件组件402与一个或多个硬件组件(例如第一硬件组件404和第二硬件组件406)通过接口连接。如步骤408处所描述的,软件组件402可以向第一硬件组件404发出第一组指令。所述指令可以包括用于执行一个或多个任务的指令。然后,如步骤410处所描述的,第一硬件组件404对该组初始的指令进行响应。为了开始与第二硬件组件406的处理,软件组件402可以向第二硬件组件406发送一组指令(如412处所描述的),并且等待响应(如414处所描述的)。每次执行一个任务,软件402必须向指定的硬件组件发出一条或一组指令并等待响应(如416、418、420和422处所描述的)。
在图4中所描述的方法中,软件中断必须用在每个硬件任务或每组任务之后。也就是说,在完成所提供的指令之后,硬件组件必须向软件发送中断。这些中断可能开销很大,因为程序上下文必须被停止,并重新编译以执行中断,然后再恢复硬件处理。此外,中断经常变成锁定的,从而导致直到该中断锁退出之前的一段延迟时段。
图5是解释说明各个公开的方面的简化框图。处理器502可以被配置为控制各个硬件组件的操作,例如第一硬件组件504和第二硬件组件506。如图4中所示,第一硬件组件504和第二硬件组件506中每个可以是专用硬件块,例如,数据移动器或硬件加速器。处理器502上可以存储有软件,该软件用于指示该硬件组件执行各种任务。
第一硬件组件504和第二硬件组件506可以相互通信地耦合。于是,这些组件可以相互提供信息而不中断处理器502上存储的软件。例如,第一硬件组件504和第二硬件组件506可以被预编程以执行由处理器502指示的一个或多个任务。下面在图6中进一步详细描述这一处理过程。
如图6中所描述的,处理器502可以与第一硬件组件504和第二硬件组件506通过接口连接。根据一些方面,第一硬件组件504可以适合于将数据从各种源(例如外部存储器)移动到本地缓冲器(例如,数据移动器)。第二硬件组件506可以是自定义的硬件块,例如,数据加速器。
如610处所描述的,处理器502可以向第一硬件组件504发出第一组命令以执行多个任务。举个例子,处理器502可以指示硬件组件504从外部存储位置移进数据块。然后,处理器502可以对第二硬件组件506编程以执行多个任务,如612处所描述的。举个例子,处理器502可以指示第二硬件组件506对由第一硬件组件504移入的数据块进行操作。虽然第一硬件组件和第二硬件组件可以被预编程以执行指定的任务,但是,操作直到处理器502发送触发消息才会开始,如614处所描述的。
一旦接收到触发消息,第一硬件组件504可以开始执行预编程的任务。根据一些方面,最后的指令可以指导第一硬件组件向第二硬件组件504发送触发消息,如616处所描述的。该触发可以是,例如硬件中断。如步骤618、620和622处所描述的,每个硬件组件在完成它自己的处理后,触发其它组件执行指令。在这一处理中不需要软件中断。当处理完最后的指令时,处理该最后的指令的硬件组件(这里是第一硬件组件)可以随后向处理器502发送中断,如624处所描述的。如图6中所描述的,可以显著减少软件中断的数量。在一些方面,只需要单个软件中断。
图7是根据各个公开的方面,进一步详细描述了数据处理操作的流程图。如702处所描述的,软件组件可以对两个或更多个硬件组件进行编程。对硬件组件进行编程可以包括提供要由每个硬件组件执行的一系列指令。该系列指令可以存储在与硬件组件相关联的任务队列中。根据一些方面,多于一个的硬件组件可以共享单个任务队列,其中,每个硬件组件的指令是交织在一起的。
根据示例性的方面,两个或多个硬件组件可以包括数据移动器和硬件加速器。替代或除了数据移动器和硬件加速器,还可以使用其它硬件组件。虽然下面要结合数据移动器和硬件加速器来描述图7中所描述的其余处理,但是应该注意的是,这仅仅是示例性的。
如上所述,每个硬件组件可以与其任务队列关联。于是,每个数据移动器和硬件加速器各具有与其关联的任务队列。这些任务队列可以由软件事先配置。与硬件加速器相关联的任务队列可以由软件控制的写指针来选通。与硬件加速器关联的读指针也可以由硬件控制。
当需要执行被编程的任务时,软件组件可以向数据移动器发送触发信号,如704处所描述的。一旦接收到该触发信号,数据移动器可以执行其第一任务,如706处所描述的。举个例子,数据移动器可被指示从外部存储位置读取第一数据块,并将该数据移入内部存储位置。数据存储器还可被指示向与硬件加速器关联的写指针寄存器写入,从而触发硬件加速器开始执行其被分配的指令。数据移动器还可被指示暂停处理直到接收到一事件为止。
当从数据移动器接收到触发后,硬件加速器可以开始执行其指令,如708处所描述的。这可以包括:例如,对由数据移动器载入的数据执行各种类型的操作。当完成经排队的任务后,硬件加速器可以发出硬件中断,该硬件中断触发数据移动器继续执行操作,如710处所描述的。当接收到触发后,数据移动器可以确定其是否还有额外的任务要完成,如712处所描述的。如果有,则处理回到步骤706。如果数据移动器没有额外的任务要执行,它可以向软件发送中断,如714处所描述的。使数据移动器和硬件加速器能够通过硬件中断相互触发,这降低了中断延时并减少了上下文切换的次数。此外,数据移动器和硬件加速器得到了较高效地利用,从而减少了总体延时。
如上所述,硬件组件(例如,硬件加速器和数据移动器)可以由软件预编程以执行多个任务。在特定硬件加速器的情况下,加速器的输出的长度可以是随机的。但是,由于数据移动器也可以被预编程,数据移出(move-out)指令通常是针对移动加速器的最坏情况输出来编写的。这样的配置会对带宽造成不必要的浪费,这是因为在大多数时间内输出长度会小于预编程的长度。
根据本发明的装置和方法的一些方面,可以定义能够适应硬件加速器的大部分普通输出的数据长度的门限。在一些方面,可优选地是,将门限定义为使得硬件加速器的所有输出中的大部分不会超过该门限。但是,门限可以根据任何其它需要的参数来配置。举个例子,门限可以被配置为使得加速器的所有输出中至少预定百分比的输出不会超过该门限,或者使得加速器的至少一部分输出不会超过该门限。图8是进一步详细解释说明门限处理的流程图。
如810处所描述的,硬件组件(例如,硬件加速器)根据预编程的指令接收并处理数据。当完成处理后,硬件加速器判断指令的结果是否超过预定的门限,如812处所描述的,所述结果是要由第二硬件组件(例如,数据移动器)输出的结果。更具体地,硬件加速器可以包括由软件预配置的门限判定模块。该门限可以针对由硬件加速器所处理的数据的尺寸来设置最大值。
如814处所描述的,如果超过门限,则硬件加速器可以生成中断以指示移出任务未被充分设定(under provisioned)。也就是说,该中断指示在数据移动器中经预编程的数据移出尺寸不足够大以适应硬件加速器刚刚处理完的数据。当接收到中断后,软件可以读出超过所编程的数据移出尺寸之外的多余数据,如816处所描述的。硬件加速器可以在这一中断期间暂停,并且可以在一旦该中断退出时由软件给予“运行(go)”指令。然后,处理可以继续进行。举个例子,硬件加速器或软件组件可以向数据移动器发送触发器,并且该数据移动器可以根据所预编程的指令而移出数据,如818处所描述的。如果在步骤812判定没有超过门限,则处理还可以在步骤818处继续进行,其中,数据移动器按照预编程地那样将数据移出到主存储器。
根据一些方面,可以自适应地调整参照图8而描述的门限。举个例子,如果在给定时间段内,由于未充分设定的数据移出指令而导致的中断的频率较大,那么软件可以增大门限的大小。同样地,如果在给定时间段内,没有接收到大量中断,则可以减小门限的大小。因此,可以给软件配置定时器和计数器,该定时器和计数器用于记录接收到的由于未充分设定的数据移出指令而造成的所有中断。对移出的数据的量进行控制的同时提供一种用于解决设定不充分的机制,能够降低功率开销和系统总线带宽。另外,可以通过获取较少次数的中断来降低软件复杂度。此外,可以通过将异常情况传递给软件进行处理来保持硬件简单。自适应地调整门限可以帮助确保在维持较低中断率且避免不必要地移出数据之间实现良好的权衡。
根据一些方面,可以将通常在软件中执行的操作移到硬件以便缩减软件处理和减少等待时间以及降低总线带宽的使用。举个例子,硬件加速器可以配置有用以处理数据帧报头的逻辑单元。典型地,硬件只是对数据译码,然后将数据转发给软件做进一步处理。然后,软件将数据转发回具有用于处理该数据的指令的硬件。这可以缩减软件处理、减少等待时间并降低总线带宽。
在一些示例性方面中,举个例子,硬件加速器可以配置有用以解析数据帧报头,将该报头与多个预定模板进行比较,并根据该报头确定下一个处理步骤的逻辑单元。只有当没找到报头匹配时或者需要模板重配置时,才需要软件交互。
图9是可以在其中实施模板处理的环境的示例。如图9中所示,由控制处理器920控制的硬件加速器922可以接收输入数据,并通过过滤模块922处理该输入数据。过滤模块922可以将其输出提供给一个或多个处理器914、存储器916或接口918-1到918-N。存储器916可以是内部或外部存储器。接口918-1到918-N可以提供到外部设备的连接,例如到膝上型电脑、PDA或任何外部电子设备的连接。举个例子,接口918-1到918-N可以包括USB端口、蓝牙、SDIO、SDCC或其它有线或无线接口。
过滤模块922可以包括多个预定模板,其可以用于做出关于应该将输出数据路由到何处的路由决定。举个例子,加密数据可以由硬件加速器912接收并被译码。根据编程在过滤模块922中的模板,可以通过接口918-1到918-N将译码数据转发到处理器914、存储器916或外部设备。根据一些方面,处理器914可以用作针对更复杂的操作的后备过滤器,这些操作可能是硬件加速器912难以处理的。
根据一些方面,每个业务模板可以包括一个或多个参数以及针对每个参数的特定值。每个参数可以对应于IP、TCP、UDP或一些其它协议的报头的特定字段。举个例子,IP参数可以包括源地址、目的地址、地址范围和协议。TCP或UDP参数可以包括源端口、目的端口和端口范围。业务模板指定每个参数在报头中的位置。因此,硬件加速器不必确切了解使用中的协议。而是,该硬件执行报头与模板参数的匹配。
举个例子,业务模板可以定义为检测针对目标端口x且在IPv4分组中发送的TCP帧。该模板可以包括三个参数,其可设置如下:版本=IPv4,协议=TCP,以及目标端口=x。一般而言,任何协议报头中的任何字段都可以用作业务模板参数。可以定义任何数量的模板,并且每个模板可以与任意组参数关联。不同的模板可以针对不同的应用、套接字等来定义,并且可以用不同的参数集来定义。
每个模板还可以与当存在匹配时要执行的动作和当不存在匹配时要执行的动作相关联。当接收到数据帧后,则将接收到的帧的值与模板的特定值进行比较。如果所接收到的值与特定值匹配则声明匹配,否则声明不匹配。如果定义为不匹配,则硬件可以发出软件中断,然后软件可以处理该帧。
如本申请中所述,数据处理典型地包括:从第一位置移入数据、对数据进行操作,并移回数据。典型地,在低成本、高延时存储器中定义单个大的存储池。从这个高延时存储池移入数据,对数据进行操作,然后将数据移回存储池。但是,最近被访问过的数据会被经常重用。因此,在每次访问之后将数据移回高延时存储池会不必要地增加系统总线带宽。根据本发明的装置和方法的一些方面,可以在物理存储器中定义多个存储池。存储分配可以基于可用的最佳存储池,或依赖于数据有可能被访问的频率。
图10是依照一些方面,实现多个存储池的系统1000的示例。系统1000可以包括ASIC 910,后者包括低延时存储器1012、处理器1014、数据移动器1016和硬件加速器1018。还可以提供高延时存储器1020。虽然将低延时存储器912描绘为内部存储器,高延时存储器1020描绘为外部存储器,但是这一配置仅仅是示例性的。两个存储器中的一个或两个可以是内部的或外部的。处理器1004可以包括:存储控制器1022,其控制对高延时存储器1020和低延时存储器1012的访问。如果大部分操作采用低延时存储器1012,则能够较高效地处理数据。于是,可以将存储控制器1022配置为限制对高延时存储器1020的访问次数。
在普通的操作中,数据移动器1020可以配置为将数据移入和移出,例如,在高延时存储器1020和低延时存储器912之间。依照一些示例性的方面,硬件加速器1018可以配置为对直接来自低延时存储器1012的数据进行操作。举个例子,在一些方面,只要有可用空间就可以将数据维护在低延时存储器1012中。在其它方面,可以根据诸如服务质量要求、通信信道特性和/或其它因素之类的特定的数据传输特性,来在低延时存储器1012中存储并维护数据。
如果提供多个存储池则可以降低硬件开销,这是因为可以定义小而快速的池和大而慢速的池。此外,系统总线带宽和功率可被降低。
根据一些方面,硬件和软件两者都可以访问存储在低延时存储器1012中的数据。可以由硬件加速器1018处理有效载荷,以便确保实现低延时访问。低延时存储器1012可以放置在接近硬件加速器1018的地方。这样一来,数据传送不需要跨越系统总线,从而节省功率和系统总线带宽。
当处理数据时,数据在通过数据栈传递的同时经常会被拷贝多次以便简化每层处的实现(例如,当移除报头时、复用来自多个流的数据、分段/重组等)。根据本发明的装置和方法的一些方面,通过可以使数据留在同一位置并使不同的层对相同的数据进行操作,来防止重复拷贝。无论每个数据操作指令是由硬件还是由软件执行,该数据操作指令都可以指向同一位置,例如本地硬件缓冲器。举个例子,在执行完UMTS译码之后,可以将译码后的数据拷贝回本地存储器,例如本地硬件缓冲器。在软件通过评估协议报头而串接有效载荷之后,软件可以指示硬件加速器执行TCP校验和(checksum)计算或PPP成帧。在这一处理期间,数据不需要从外部存储位置来回移动。
对于数据传输,根据所采用的协议而典型地将数据帧划分为较小的单元。于是,相关的有效载荷通常被划分到多个传输中。为每个单元典型地分配存储块,并且形成这些单元的链接列表,以在向更高层传递该链接列表时将有效载荷串接到更大的数据单元中。
图11描述了对接收到的分组数据单元的典型存储分配。如图11中所示,输入数据帧1100可以包括多个协议数据单元(PDU),每个PDU包括报头(H1、H2、H3)和有效载荷(P1、P2、P3)。典型地,将该数据帧划分为多个段,其中,每个段存储在单独的数据服务存储(DSM)单元中。如图11中所示,PDU1(H1+P1)存储在第一DSM单元1104中,PDU2(H2+P2)存储在第二DSM单元1106中,PDU3(H3+P3)存储在第三DSM单元1108中。
由于各种原因,以这种方式存储数据是低效的。举个例子,每个DSM单元包括其自身的报头H,这增加了开销。另外,DSM池中的每个DSM单元是相同尺寸的。这样一来,当PDU小于预配置的DSM单元尺寸时会浪费空间。如1104和1108处所描述的,在PDU之后添加填充数据P以填满DSM单元。此外,为了稍后串接经分段的PDU,必须维护链接列表,以使得该列表指出每个PDU存储的位置以及该PDU与其它PDU如何相关。
根据本发明的装置和方法的一些示例性方面,可以通过去除报头并从而针对更高层而直接串接连续的有效载荷,将从不同传输接收到的数据按每信道地汇聚成较大块的连续存储。这可带来应用数据一致性以及由于串接而降低的对额外存储分配的需求。此外,由于缩减了填充开销、存储分配操作和存储开销,存储器会得以简化。
如上所述,当硬件接收经加密的数据帧时,将该帧译码,然后转发给硬件用于进一步处理。根据一些示例性方面,硬件组件(例如,硬件加速器)可以进一步配置为在不将帧转发给软件的情况下串接相关的有效载荷。
图12是解释说明了根据一些方面的数据处理和存储的简化框图。如图12中所示,输入数据帧1201可以包括多个协议数据单元,每个协议数据单元包括报头和有效载荷。划分单元1202可以配置为处理输入数据帧1201。处理包括:例如,将报头和有效载荷分开。报头(H1、H2、H3)可以连同指向相关联的有效载荷的指针一起存储在存储器1203中。
然后,硬件串接逻辑单元1204可以将有效载荷进行组合并将它们存储在单个DSM中。划分单元1202和硬件串接逻辑单元1204可以由软件逻辑单元1206编程和/或控制。举个例子,软件逻辑单元1206可以对划分单元1202进行编程以移除报头并生成指针信息。另外,软件逻辑单元1206可以指导串接逻辑单元1204获取特定的有效载荷或报头。
根据一些方面,来自多个传输的数据可以组合在单个DSM中。数据一旦存储到DSM就可以被传向其它层,即便DSM还没有满。另外,可以将数据添加到DSM单元的末端。
当接收到数据时,典型地不将报头和有效载荷分开。而是,报头和有效载荷典型地存储在一起。但是,大部分对于如何处理分组的决策只基于分组报头。根据本发明的装置和方法的一些方面,只有报头可以从一层移动到另一层。因此,只有当需要有效载荷用于处理时才可以移动有效载荷,从而提升了有效载荷数据一致性和高速缓存效率,并降低了总线利用。
在典型的无线设备中,主处理器处理所有的调制解调器相关的功能。图13是描述了典型配置的框图。主处理器1304通过多个总线1306与硬件1308通信地耦合。存储器1302用于存储由硬件1308操作的数据。在工作中,无论何时主处理器1304向硬件1308发出指令,该指令都必须穿越多个总线1306。此外,硬件1308必须在完成每个指令后向主处理器1304回发软件中断。穿越总线并发出软件中断增加了大量的处理延时。
依照各个示例性的方面,可以在靠近硬件的位置提供小型处理器,从而降低延时。图14是描述这一配置的框图。主处理器1404通过多个总线1406与硬件1408通信地耦合。存储器1402用于存储由硬件1408处理的数据。
在靠近硬件1408的位置提供小型处理器1410。小型处理器1410可以是能与主处理器1404访问相同存储器1402的灵活可编程的处理器。可以将小型处理器1410进行编程以便与硬件1408直接交互。可以将小型处理器1410编程为指导硬件1408执行诸如报头提取、加密、译码、数据移动、连续存储、IP过滤、报头插入、PPP成帧之类的任务和/或其它任务。
根据一些方面,当在无线设备处接收到新信息时,主处理器1404可以指导小型处理器1410开始处理数据并将硬件1408处理后的结果存储到存储器1402中。因此,硬件在每个任务之后不再需要中断回到主处理器1414。另外,由于小型处理器1410是可编程的,所以,当处理要求发生变化时可以容易地将其重编程。举个例子,如果空中接口有变化,或者如果有新的协议版本可用,则可以将小型处理器1410重编程以实现该变化。
依照图14中所描述的配置,相比纯软件实现而言,延时得以降低。另外,中断、存储访问和总线延时也可得以降低。此外,功耗也可得以降低,这是由于相比在纯软件应用中,小型处理器可以在距离硬件存储器更近的地方实现。
根据一些方面,主处理器和小型处理器两者都可以访问一个或多个专用硬件块。这在图15中有所描述。主处理器1502和小型处理器1504中的每个都与多个专用硬件块通信地耦合。这多个专用块包括第一硬件块1506、第二硬件块1508和第三硬件块1510。这些硬件块包括:例如,硬件加速器、数据移动器、加密引擎、译码引擎和/或任何其它专用硬件块。
主处理器1502和小型处理器1504中的每个可同时访问硬件块1504、1506和1508中的不同的一个。这使得实现并行处理。举个例子,主处理器1502可以配置为访问专用于译码的第一硬件块1506,而小型处理器1504可以配置为同时访问专用于加密的第二硬件块1508。从而,上行链路和下行链路处理能够同时进行。
小型处理器(例如,图15中所描述的小型处理器1504)可能无法处理复杂任务。举个例子,当处理分组重传时,在判定序列号何时翻转方面涉及复杂的逻辑单元。根据一些方面,主处理器可以配置为小型处理器的后备,并处理那些不能被小型处理器正确处理的复杂任务。图16是描述用于处理这一复杂逻辑单元的处理的流程图。
如1602处所描述的,当小型处理器接收到要处理的数据时开始处理。根据一些方面,小型处理器可以编程为总是利用预定的处理方法处理特定类型的任务。因此,如1604处所描述的,小型处理器可以配置为指示硬件利用第一种处理方法处理数据。举个例子,在判定序列号是否应该翻转的情况下,小型处理器可以配置为总是假设序列号不翻转。
如1606处所描述的,主存储器接收由硬件处理的数据。主存储器还可以接收对于数据是如何处理的指示。如1608处所描述的,主处理器确定数据是否被正确地处理。如果是,则主处理器单单将数据转发到其目的地,例如存储器,如1610处所描述的。但是,如果主处理器检测到数据没有被正确地处理,则该主处理器可以反转硬件所执行的动作,并对硬件重编程以正确地处理数据,如612处所描述的。
在典型的数据移动操作中,处理器对数据移动器进行编程以对每个要移动的数据块执行拷贝任务。根据各个示例性的方面,可以在靠近硬件的位置包括拷贝引擎。图17是包含拷贝引擎的系统1700的框图。系统1700包括数据移动器1702、主存储器1704、拷贝引擎1710、拷贝引擎存储器1706和硬件1708。拷贝引擎1710可以编程为直接在硬件1708上运行以助于拷贝和/或数据移动操作。拷贝引擎1710可与其自身专用的存储器1706相关联,该专用的存储器1706降低了与存储且获取来自主存储器1704的数据相关联的延时。数据移动器1702可以编程为从拷贝引擎存储器1706获取数据并将其存储在主存储器1704中。
由于包括了拷贝引擎,所以允许比特级粒度支持具有比特级宽度的协议。另外,可以通过允许利用单个编程任务来将均匀散布的源数据拷贝到均匀散布的目标位置,从而降低编程开销。此外,拷贝引擎可以用于由软件所采用的任何类型的操作,例如,报头提取和插入、数据串接或分段、字节/字对齐、以及用于数据处理的常规数据移动任务。
根据一些方面,拷贝引擎1710可以编程为在单个任务中从多个PDU拷贝数据。如图18中所描述的,数据帧可以包括多个PDU,每个PDU包括报头(H1、H2和H3)、有效载荷(P1、P2、P3)。报头和有效载荷的尺寸可以事先知道,并且拷贝引擎可以被编程为知道这些尺寸。举个例子,如图18中所描述的,所有报头(例如,报头1802)的尺寸都为X,而所有有效载荷(例如,有效载荷1804)的尺寸均为Y。拷贝引擎可以编程为根据对于报头的尺寸及有效载荷的尺寸的知识来在单个任务中拷贝N个报头和N个有效载荷。
用于执行本申请所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,可以实现或执行结合本申请所公开实施例而描述的各种示例性的逻辑单元、逻辑框、模块和电路。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合、或者任何其它此种结构。此外,至少一个处理器可以包括一个或多个可用于执行上述一个或多个步骤和/或动作的一个或多个模块。
此外,结合本申请所公开的方面而描述的方法或者算法的步骤和/或动作可直接体现为硬件、由处理器执行的软件模块或二者的组合中。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域已知的任何其它形式的存储介质中。一种示例存储介质可以耦接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。或者,存储介质也可以是处理器的组成部分。此外,在一些方面,处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户终端中。或者,处理器和存储介质也可以作为分立组件存在于用户终端中。另外,在一些方面,方法或算法的步骤和/或动作可以作为一个或任何组合或集合的代码和/或指令位于机器可读介质和/或计算机可读介质上,后两种介质可以包括到计算机程序产品中。
在一个或多个方面,本申请所述功能可以用硬件、软件、固件或其任意组合来实现。当使用软件实现时,可以将这些功能作为一个或多个指令或代码存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。通过示例而不是限制的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储介质或其它磁存储设备、或者能够用于携带或存储指令或数据结构形式的期望程序代码并能够由计算机接入的任何其它介质。此外,任何连接可以适当地称作计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或其它远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所述介质的定义中。如本申请所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(CD)、激光盘、光盘、数字通用光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
虽然前面公开讨论了示例性的方面和/或实施例,但是需要注意的是在不脱离所附权利要求中定义的所描述的方面和/或实施例的保护范围的条件下,可以做出各种改变和修改。此外,虽然以单数形式描述或声明了所描述的方面和/或实施例的元素,但是除非明确说明限制为单数,否则复数形式也是可以预期的。此外,除非另有说明,否则任何方面和/或实施例的全部或一部分可以与任何其它方面和/或实施例的全部或一部分一起使用。
Claims (23)
1.一种数据处理方法,包括:
由第一硬件组件接收用于执行第一任务集的指令,其中,所述第一硬件组件具有与其相关联的第一任务队列;
由第二硬件组件接收用于执行第二任务集的指令,其中,所述第二硬件组件具有与其相关联的第二任务队列;
在所述第一硬件组件处接收触发消息以执行所述第一任务集;
在完成所述第一任务集之后,由所述第一硬件组件向所述第二硬件组件发送触发消息,以执行所述第二任务集。
2.根据权利要求1所述的方法,其中,所述第一任务集包括从第一存储器中读取数据块并将所述数据块存储在第二存储器中的任务。
3.根据权利要求2所述的方法,其中,所述第二任务集包括处理在所述第二存储器中存储的所述数据块的任务。
4.根据权利要求1所述的方法,其中,所述第一硬件组件通过移动与所述第二任务队列相关联的写指针来触发所述第二硬件组件。
5.根据权利要求1所述的方法,还包括:
在完成所述第二任务集之后,由所述第二硬件组件向所述第一硬件组件发送触发消息;
由所述第一硬件组件判断在所述第一任务队列中是否还存在任何其它任务;
如果在所述第一任务队列中不存在其它任务,则向软件组件发送软件中断。
6.根据权利要求3所述的方法,还包括:
由所述第二硬件组件确定所处理的数据块的长度何时超过门限长度,其中,所述门限长度小于所处理的数据的最大可能长度;
由所述第二硬件组件生成指示所处理的数据块的长度超过所述门限长度的软件中断。
7.根据权利要求6所述的方法,还包括:
由软件组件移动所述数据块中超过所述门限长度的一部分;
由所述软件组件触发所述第一硬件组件来移动所述数据块中的其余部分。
8.根据权利要求6所述的方法,其中,根据所述软件中断的频率来动态地调整所述门限长度。
9.根据权利要求3所述的方法,还包括:
向所述第二硬件组件提供业务模板,其中,所述业务模板包括用于所述第二硬件组件采取动作的条件集。
10.根据权利要求9所述的方法,其中,所述第二硬件组件将所述数据块与所述业务模板进行比较。
11.根据权利要求10所述的方法,其中,当所述数据块与所述业务模板中的所述条件集中的一个条件相匹配时,所述第二硬件组件对所述数据块采取动作。
12.根据权利要求10所述的方法,其中,当所述数据块与所述业务模板中的所述条件集中的任何一个条件都不匹配时,所述第二硬件组件向软件模块发送所述数据块。
13.一种数据处理装置,包括:
处理器;
第一存储器;
第二存储器;
第一硬件组件,具有与其相关联的第一任务队列;
第二硬件组件,具有与其相关联的第二任务队列;
其中,将多个任务预先存储在所述第一任务队列中,将多个第二任务预先存储在所述第二任务队列中,所述第一硬件组件用于接收触发以开始执行所述多个第一任务,并用于向所述第二硬件组件发出触发以执行所述多个第二任务。
14.根据权利要求13所述的数据处理装置,其中,所述多个第一任务中的至少一个第一任务是从第一存储器中读取数据块并将所述数据块存储在所述第二存储器中的任务。
15.根据权利要求14所述的数据处理装置,其中,所述多个第二任务中的至少一个第二任务是处理在所述第二存储器中存储的所述数据块的任务。
16.根据权利要求13所述的数据处理装置,其中,所述第一硬件组件是数据移动器。
17.根据权利要求13所述的数据处理装置,其中,所述第二硬件组件是硬件加速器。
18.根据权利要求15所述的数据处理装置,其中,所述第二硬件组件包括比较器,该比较器用于将所处理的数据块的长度与门限长度进行比较,
并且其中,当所处理的数据块的长度大于所述门限长度时,所述第二硬件组件生成软件中断。
19.根据权利要求18所述的数据处理装置,其中,根据所述软件中断的频率来动态地调整所述门限长度。
20.根据权利要求15所述的数据处理装置,还包括具有条件集的业务模板,其中,
所述第二硬件组件将所述数据块与所述业务模板进行比较。
21.至少一个处理器,包括:
第一模块,用于通过第一硬件组件接收用于执行第一任务集的指令;
第二模块,用于通过第二硬件组件接收用于执行第二任务集的指令;
第三模块,用于接收触发消息以执行所述第一任务集;
第四模块,用于从所述第一硬件组件向所述第二硬件组件发出触发消息以执行所述第二任务集。
22.一种在计算机可读介质上记录的计算机程序,包括:
由第一硬件组件接收用于执行第一任务集的指令;
由第二硬件组件接收用于执行第二任务集的指令;
接收触发消息以执行所述第一任务集;
从所述第一硬件组件向所述第二硬件组件发出触发消息以执行所述第二任务集。
23.一种装置,包括:
用于通过第一硬件组件接收用于执行第一任务集的指令的模块,其中所述第一硬件组件具有与其相关联的第一任务队列;
用于通过第二硬件组件接收用于执行第二任务集的指令的模块,其中所述第二硬件组件具有与其相关联的第二任务队列;
用于在所述第一硬件组件处接收触发消息以执行所述第一任务集的模块;
在完成所述第一任务集之后,用于通过所述第一硬件组件向所述第二硬件组件发送触发消息以执行所述第二任务集的模块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/540,749 | 2009-08-13 | ||
US12/540,749 US9038073B2 (en) | 2009-08-13 | 2009-08-13 | Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts |
PCT/US2010/045517 WO2011020053A1 (en) | 2009-08-13 | 2010-08-13 | Apparatus and method for efficient data processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102473115A true CN102473115A (zh) | 2012-05-23 |
CN102473115B CN102473115B (zh) | 2015-04-22 |
Family
ID=42813197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080035505.1A Expired - Fee Related CN102473115B (zh) | 2009-08-13 | 2010-08-13 | 用于高效数据处理的装置和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9038073B2 (zh) |
EP (1) | EP2465033A1 (zh) |
JP (1) | JP5734977B2 (zh) |
KR (1) | KR101344886B1 (zh) |
CN (1) | CN102473115B (zh) |
WO (1) | WO2011020053A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268280A (zh) * | 2017-01-04 | 2018-07-10 | 三星电子株式会社 | 半导体装置的处理器及其操作方法 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100182970A1 (en) * | 2009-01-21 | 2010-07-22 | Qualcomm Incorporated | Multiple Subscriptions Using a Single Air-Interface Resource |
US8788782B2 (en) * | 2009-08-13 | 2014-07-22 | Qualcomm Incorporated | Apparatus and method for memory management and efficient data processing |
US20110041128A1 (en) * | 2009-08-13 | 2011-02-17 | Mathias Kohlenz | Apparatus and Method for Distributed Data Processing |
US8762532B2 (en) * | 2009-08-13 | 2014-06-24 | Qualcomm Incorporated | Apparatus and method for efficient memory allocation |
US9645823B2 (en) | 2011-03-03 | 2017-05-09 | Hewlett-Packard Development Company, L.P. | Hardware controller to choose selected hardware entity and to execute instructions in relation to selected hardware entity |
US9189283B2 (en) * | 2011-03-03 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Task launching on hardware resource for client |
US8738830B2 (en) | 2011-03-03 | 2014-05-27 | Hewlett-Packard Development Company, L.P. | Hardware interrupt processing circuit |
US9996394B2 (en) * | 2012-03-01 | 2018-06-12 | Microsoft Technology Licensing, Llc | Scheduling accelerator tasks on accelerators using graphs |
US9880852B2 (en) * | 2012-12-27 | 2018-01-30 | Intel Corporation | Programmable hardware accelerators in CPU |
US9575722B2 (en) * | 2013-03-14 | 2017-02-21 | International Business Machines Corporation | Software interface for a specialized hardward device |
US10339081B2 (en) | 2015-05-09 | 2019-07-02 | Medtronic, Inc. | Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set |
KR102324436B1 (ko) | 2017-03-29 | 2021-11-10 | 삼성전자 주식회사 | 테더링 방법 및 이를 구현하는 전자 장치 |
US11005771B2 (en) | 2017-10-16 | 2021-05-11 | Mellanox Technologies, Ltd. | Computational accelerator for packet payload operations |
US11502948B2 (en) | 2017-10-16 | 2022-11-15 | Mellanox Technologies, Ltd. | Computational accelerator for storage operations |
US10841243B2 (en) | 2017-11-08 | 2020-11-17 | Mellanox Technologies, Ltd. | NIC with programmable pipeline |
US10708240B2 (en) | 2017-12-14 | 2020-07-07 | Mellanox Technologies, Ltd. | Offloading communication security operations to a network interface controller |
US10430246B2 (en) | 2018-01-18 | 2019-10-01 | International Business Machines Corporation | Virtualized and synchronous access to hardware accelerators |
US11216370B2 (en) * | 2018-02-20 | 2022-01-04 | Medtronic, Inc. | Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set |
US10824469B2 (en) * | 2018-11-28 | 2020-11-03 | Mellanox Technologies, Ltd. | Reordering avoidance for flows during transition between slow-path handling and fast-path handling |
US11184439B2 (en) | 2019-04-01 | 2021-11-23 | Mellanox Technologies, Ltd. | Communication with accelerator via RDMA-based network adapter |
US11996166B2 (en) * | 2019-08-29 | 2024-05-28 | Advanced Micro Devices, Inc. | Adaptable allocation of SRAM based on power |
CN111124686B (zh) * | 2019-12-27 | 2022-06-24 | 深圳云天励飞技术股份有限公司 | 资源调度方法、装置及相关设备 |
US11340791B2 (en) * | 2020-01-14 | 2022-05-24 | Arm Limited | Apparatus and method for handling delivery of data from a source to one or more destinations |
IL276538B2 (en) | 2020-08-05 | 2023-08-01 | Mellanox Technologies Ltd | A cryptographic device for data communication |
CN114095153A (zh) | 2020-08-05 | 2022-02-25 | 迈络思科技有限公司 | 密码数据通信装置 |
US11934658B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Enhanced storage protocol emulation in a peripheral device |
US12117948B2 (en) | 2022-10-31 | 2024-10-15 | Mellanox Technologies, Ltd. | Data processing unit with transparent root complex |
US12007921B2 (en) | 2022-11-02 | 2024-06-11 | Mellanox Technologies, Ltd. | Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4980824A (en) * | 1986-10-29 | 1990-12-25 | United Technologies Corporation | Event driven executive |
CN1120197A (zh) * | 1993-09-20 | 1996-04-10 | 国际商业机器公司 | 一种多重处理系统的可定标的系统中断结构 |
US20020062352A1 (en) * | 2000-11-22 | 2002-05-23 | Shigehiro Asano | Multiprocessor system and control method thereof |
Family Cites Families (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4338673A (en) * | 1978-12-05 | 1982-07-06 | Compugraphic Corporation | Phototypesetting system and method |
US4463418A (en) | 1981-06-30 | 1984-07-31 | International Business Machines Corporation | Error correction from remote data processor by communication and reconstruction of processor status storage disk |
US4709332A (en) * | 1984-10-05 | 1987-11-24 | North Shore University Hospital | High speed image data processing |
JPS6373356A (ja) | 1986-09-16 | 1988-04-02 | Fujitsu Ltd | プロセツサ間通信方式 |
JPH01314368A (ja) | 1988-06-14 | 1989-12-19 | Nec Corp | マルチプロセッサシステムにおける指令実行終了判定方式 |
US5214652A (en) * | 1991-03-26 | 1993-05-25 | International Business Machines Corporation | Alternate processor continuation of task of failed processor |
JPH05120125A (ja) | 1991-07-05 | 1993-05-18 | Oki Electric Ind Co Ltd | データ処理装置 |
JPH05274279A (ja) | 1992-03-30 | 1993-10-22 | Hitachi Ltd | 並列処理装置及び方法 |
US5471488A (en) * | 1994-04-05 | 1995-11-28 | International Business Machines Corporation | Clock fault detection circuit |
US5642501A (en) * | 1994-07-26 | 1997-06-24 | Novell, Inc. | Computer method and apparatus for asynchronous ordered operations |
EP0716370A3 (en) * | 1994-12-06 | 2005-02-16 | International Business Machines Corporation | A disk access method for delivering multimedia and video information on demand over wide area networks |
US5832262A (en) * | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
US5721739A (en) * | 1995-12-14 | 1998-02-24 | Fairchild Semiconductor Corporation | Method for detecting read errors, correcting single-bit read errors and reporting multiple-bit read errors |
US5850526A (en) * | 1996-02-07 | 1998-12-15 | Kingston Technology Co. | LAN station for determining the destination LAN station is capable of decompressing by comparing destination address to block of addresses assigned by a LAN manufacturer |
US5797043A (en) * | 1996-03-13 | 1998-08-18 | Diamond Multimedia Systems, Inc. | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
US5870394A (en) * | 1996-07-23 | 1999-02-09 | Northern Telecom Limited | Method and apparatus for reassembly of data packets into messages in an asynchronous transfer mode communications system |
US5996058A (en) * | 1996-08-19 | 1999-11-30 | Samsung Electronics Company, Ltd. | System and method for handling software interrupts with argument passing |
US6055619A (en) * | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
JP3714441B2 (ja) * | 1997-04-28 | 2005-11-09 | 松下電器産業株式会社 | サーバシステムとそのプロトコル処理方法 |
JPH11110286A (ja) | 1997-09-29 | 1999-04-23 | Murata Mach Ltd | 通信端末装置 |
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6836838B1 (en) * | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
US6285404B1 (en) * | 1998-08-03 | 2001-09-04 | Ati Technologies Inc. | Systolic video encoding system |
US6611891B1 (en) * | 1998-11-23 | 2003-08-26 | Advanced Micro Devices, Inc. | Computer resource configuration mechanism across a multi-pipe communication link |
US6421751B1 (en) * | 1998-11-23 | 2002-07-16 | Advanced Micro Devices, Inc. | Detecting a no-tags-free condition in a computer system having multiple outstanding transactions |
JP3450735B2 (ja) | 1999-01-29 | 2003-09-29 | 株式会社山武 | 処理装置 |
US6542537B1 (en) * | 1999-03-09 | 2003-04-01 | Conexant Systems, Inc. | Reduction of CPU burden in monitoring data for escape sequences |
US6708233B1 (en) * | 1999-03-25 | 2004-03-16 | Microsoft Corporation | Method and apparatus for direct buffering of a stream of variable-length data |
US6768992B1 (en) * | 1999-05-17 | 2004-07-27 | Lynne G. Jolitz | Term addressable memory of an accelerator system and method |
JP2001101010A (ja) | 1999-09-30 | 2001-04-13 | Hitachi Ltd | 仮想機械最適化方法 |
US6457042B1 (en) * | 1999-09-30 | 2002-09-24 | International Business Machines Corporation | Dynamic construction of complex execution environments |
JP3516634B2 (ja) * | 2000-05-30 | 2004-04-05 | 日本電気株式会社 | サーキットエミュレーション装置及びサーキットエミュレーション装置における多重化方法 |
WO2003009140A2 (en) * | 2001-07-20 | 2003-01-30 | Altaworks Corporation | System and method for adaptive threshold determination for performance metrics |
ATE381059T1 (de) | 2001-10-31 | 2007-12-15 | Aplix Corp | System zum ausführen von zwischenkode, methode zum ausführen von zwischenkode, und computerprogrammprodukt zum ausführen von zwischenkode |
US6993602B2 (en) * | 2002-01-29 | 2006-01-31 | Intel Corporation | Configuring queues based on a given parameter |
US6826653B2 (en) * | 2002-02-06 | 2004-11-30 | Hewlett-Packard Development Company, L.P. | Block data mover adapted to contain faults in a partitioned multiprocessor system |
JP2003233403A (ja) | 2002-02-06 | 2003-08-22 | Toshiba Corp | 制御装置およびプログラミング装置 |
US6720893B2 (en) * | 2002-02-22 | 2004-04-13 | International Business Machines Corporation | Programmable output control of compressed data from encoder |
US6985974B1 (en) * | 2002-04-08 | 2006-01-10 | Marvell Semiconductor Israel Ltd. | Memory interface controller for a network device |
US7512128B2 (en) * | 2002-06-12 | 2009-03-31 | Sun Microsystems, Inc. | System and method for a multi-packet data link layer data transmission |
US7142540B2 (en) * | 2002-07-18 | 2006-11-28 | Sun Microsystems, Inc. | Method and apparatus for zero-copy receive buffer management |
JP4317403B2 (ja) * | 2002-08-09 | 2009-08-19 | パナソニック株式会社 | ヘッダ圧縮装置及びヘッダ圧縮方法 |
US6898664B2 (en) * | 2002-08-28 | 2005-05-24 | Hewlett-Packard Development Company, L.P. | Optimizing performance for a storage device within a computer system |
US7269171B2 (en) * | 2002-09-24 | 2007-09-11 | Sun Microsystems, Inc. | Multi-data receive processing according to a data communication protocol |
US6944754B2 (en) * | 2002-10-02 | 2005-09-13 | Wisconsin Alumni Research Foundation | Method and apparatus for parallel execution of computer software using a distilled program |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7870431B2 (en) * | 2002-10-18 | 2011-01-11 | Computer Associates Think, Inc. | Transaction tracer |
US20040088498A1 (en) * | 2002-10-31 | 2004-05-06 | International Business Machines Corporation | System and method for preferred memory affinity |
US7400581B2 (en) * | 2003-03-03 | 2008-07-15 | Sun Microsystems, Inc. | Load-balancing utilizing one or more threads of execution for implementing a protocol stack |
US7330991B2 (en) * | 2003-05-15 | 2008-02-12 | Lsi Logic Corporation | Method and/or apparatus for paging to a dynamic memory array |
CN100411317C (zh) * | 2003-07-08 | 2008-08-13 | 联想(北京)有限公司 | 一种提高无线网络信道传输效率的方法 |
JP2005122257A (ja) | 2003-10-14 | 2005-05-12 | Seiko Epson Corp | 画像処理装置、及び電子機器 |
US7586948B2 (en) * | 2003-12-24 | 2009-09-08 | Agere Systems Inc. | Packet sub-frame structure for selective acknowledgment |
KR100651344B1 (ko) * | 2004-02-19 | 2006-11-29 | 삼성전자주식회사 | 고속 순방향 패킷 접속 방식을 사용하는 이동 통신시스템에서 데이터 처리 속도를 향상시키는 방법 및 그이동통신시스템 |
US7783769B2 (en) * | 2004-03-31 | 2010-08-24 | Intel Corporation | Accelerated TCP (Transport Control Protocol) stack processing |
JP2005322032A (ja) | 2004-05-10 | 2005-11-17 | Matsushita Electric Ind Co Ltd | 受信フレーム処理装置 |
US7636857B2 (en) * | 2004-05-24 | 2009-12-22 | Interdigital Technology Corporation | Data-mover controller with plural registers for supporting ciphering operations |
NZ552760A (en) | 2004-07-06 | 2008-09-26 | Ntt Docomo Inc | Message transmission system and message transmission method |
US20060034167A1 (en) * | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | Communication resource reservation system for improved messaging performance |
CN1747444A (zh) * | 2004-09-10 | 2006-03-15 | 国际商业机器公司 | 数据处理系统网络中从主机单元分担数据流的方法及引擎 |
US7743376B2 (en) * | 2004-09-13 | 2010-06-22 | Broadcom Corporation | Method and apparatus for managing tasks in a multiprocessor system |
US7590150B1 (en) * | 2004-09-30 | 2009-09-15 | Ceterus Networks, Inc. | Method and apparatus for transport of multiple TDM and data clients over multiple variable data rate streams |
US8438265B2 (en) * | 2004-11-04 | 2013-05-07 | International Business Machines Corporation | Method of offloading iSCSI PDU corruption-detection digest generation from a host processing unit, and related iSCSI offload engine |
US7987272B2 (en) * | 2004-12-06 | 2011-07-26 | Cisco Technology, Inc. | Performing message payload processing functions in a network element on behalf of an application |
US7395385B2 (en) * | 2005-02-12 | 2008-07-01 | Broadcom Corporation | Memory management for a mobile multimedia processor |
CN100432957C (zh) | 2005-02-12 | 2008-11-12 | 美国博通公司 | 一种管理存储器的方法 |
US7373475B2 (en) * | 2005-06-21 | 2008-05-13 | Intel Corporation | Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures |
JP2007026095A (ja) * | 2005-07-15 | 2007-02-01 | Matsushita Electric Ind Co Ltd | 並列演算装置 |
JP2007026094A (ja) * | 2005-07-15 | 2007-02-01 | Matsushita Electric Ind Co Ltd | 実行装置およびアプリケーションプログラム |
US20070033356A1 (en) * | 2005-08-03 | 2007-02-08 | Boris Erlikhman | System for Enabling Secure and Automatic Data Backup and Instant Recovery |
US7558929B2 (en) * | 2005-09-29 | 2009-07-07 | International Business Machines Corporation | Instant copy of data in a cache memory via an atomic command |
GB0519981D0 (en) * | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US20070136402A1 (en) * | 2005-11-30 | 2007-06-14 | International Business Machines Corporation | Automatic prediction of future out of memory exceptions in a garbage collected virtual machine |
US7889762B2 (en) * | 2006-01-19 | 2011-02-15 | Intel-Ne, Inc. | Apparatus and method for in-line insertion and removal of markers |
US7889668B2 (en) * | 2006-02-03 | 2011-02-15 | British Telecommunications Public Limited Company | Method of operating a network |
US8279910B2 (en) * | 2006-03-02 | 2012-10-02 | Qualcomm Incorporated | Method and apparatus for code space search in a receiver |
US20070250681A1 (en) * | 2006-04-10 | 2007-10-25 | International Business Machines Corporation | Independent programmable operation sequence processor for vector processing |
US9032127B2 (en) * | 2006-09-14 | 2015-05-12 | Hewlett-Packard Development Company, L.P. | Method of balancing I/O device interrupt service loading in a computer system |
US8438365B2 (en) * | 2006-10-06 | 2013-05-07 | Calos Fund Limited Liability Company | Efficient data loading in a data-parallel processor |
CN101165655A (zh) | 2006-10-20 | 2008-04-23 | 国际商业机器公司 | 多处理器计算系统及其任务分配方法 |
US7856033B2 (en) * | 2006-11-14 | 2010-12-21 | Lantiq Deutschland Gmbh | Methods and systems for adaptive communication |
WO2008073024A1 (en) * | 2006-12-14 | 2008-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for alignment of protocol data units in a wireless communication system |
US8019055B2 (en) * | 2007-01-19 | 2011-09-13 | Nokia Corporation | Media instant messaging for mobile device |
US20080235477A1 (en) * | 2007-03-19 | 2008-09-25 | Rawson Andrew R | Coherent data mover |
US20080250212A1 (en) * | 2007-04-09 | 2008-10-09 | Ati Technologies Ulc | Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information |
US8416788B2 (en) * | 2007-04-26 | 2013-04-09 | Microsoft Corporation | Compression of data packets while maintaining endpoint-to-endpoint authentication |
US7697535B2 (en) * | 2007-07-11 | 2010-04-13 | Bhaskar Patel | Error resilient protocol data unit boundary detection |
JP2009043234A (ja) | 2007-07-17 | 2009-02-26 | Ricoh Co Ltd | データ処理装置及びデータ処理方法 |
KR101540129B1 (ko) * | 2007-07-20 | 2015-07-28 | 퀄컴 인코포레이티드 | 원격 액세스 진단 디바이스 및 이의 방법들 |
KR101405975B1 (ko) * | 2007-07-23 | 2014-06-12 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
US8295306B2 (en) * | 2007-08-28 | 2012-10-23 | Cisco Technologies, Inc. | Layer-4 transparent secure transport protocol for end-to-end application protection |
WO2009044382A2 (en) * | 2007-10-05 | 2009-04-09 | Nxp B.V. | Method, system and apparatus for extended rate/range communication of multimedia data over coaxial cable network |
US7890314B2 (en) * | 2007-12-05 | 2011-02-15 | Seagate Technology Llc | Method for modeling performance of embedded processors having combined cache and memory hierarchy |
US20090183161A1 (en) * | 2008-01-16 | 2009-07-16 | Pasi Kolinummi | Co-processor for stream data processing |
US8321651B2 (en) * | 2008-04-02 | 2012-11-27 | Qualcomm Incorporated | System and method for memory allocation in embedded or wireless communication systems |
US20090300629A1 (en) * | 2008-06-02 | 2009-12-03 | Mois Navon | Scheduling of Multiple Tasks in a System Including Multiple Computing Elements |
US20100011375A1 (en) * | 2008-07-14 | 2010-01-14 | Safenet, Inc. | Zero-install IP security |
US8864560B2 (en) * | 2008-07-16 | 2014-10-21 | Commscope, Inc. Of North Carolina | Water-blocking vent panel and air filter therefor |
US8185897B2 (en) * | 2008-09-30 | 2012-05-22 | Verizon Patent And Licensing Inc. | Task management system |
US8902805B2 (en) * | 2008-10-24 | 2014-12-02 | Qualcomm Incorporated | Cell relay packet routing |
US9554417B2 (en) | 2008-12-24 | 2017-01-24 | Qualcomm Incorporated | Optimized header for efficient processing of data packets |
US8532056B2 (en) * | 2009-04-13 | 2013-09-10 | Qualcomm Incorporated | Device mobility for split-cell relay networks |
US7996564B2 (en) * | 2009-04-16 | 2011-08-09 | International Business Machines Corporation | Remote asynchronous data mover |
US8170027B2 (en) * | 2009-05-26 | 2012-05-01 | Qualcomm Incorporated | Apparatus and method for supporting higher data rates on links with variable frame sizes |
US8762532B2 (en) * | 2009-08-13 | 2014-06-24 | Qualcomm Incorporated | Apparatus and method for efficient memory allocation |
US8788782B2 (en) * | 2009-08-13 | 2014-07-22 | Qualcomm Incorporated | Apparatus and method for memory management and efficient data processing |
US20110041128A1 (en) * | 2009-08-13 | 2011-02-17 | Mathias Kohlenz | Apparatus and Method for Distributed Data Processing |
-
2009
- 2009-08-13 US US12/540,749 patent/US9038073B2/en not_active Expired - Fee Related
-
2010
- 2010-08-13 WO PCT/US2010/045517 patent/WO2011020053A1/en active Application Filing
- 2010-08-13 JP JP2012524915A patent/JP5734977B2/ja not_active Expired - Fee Related
- 2010-08-13 KR KR1020127006536A patent/KR101344886B1/ko not_active IP Right Cessation
- 2010-08-13 CN CN201080035505.1A patent/CN102473115B/zh not_active Expired - Fee Related
- 2010-08-13 EP EP10748172A patent/EP2465033A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4980824A (en) * | 1986-10-29 | 1990-12-25 | United Technologies Corporation | Event driven executive |
CN1120197A (zh) * | 1993-09-20 | 1996-04-10 | 国际商业机器公司 | 一种多重处理系统的可定标的系统中断结构 |
US20020062352A1 (en) * | 2000-11-22 | 2002-05-23 | Shigehiro Asano | Multiprocessor system and control method thereof |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268280A (zh) * | 2017-01-04 | 2018-07-10 | 三星电子株式会社 | 半导体装置的处理器及其操作方法 |
CN108268280B (zh) * | 2017-01-04 | 2023-07-21 | 三星电子株式会社 | 半导体装置的处理器及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101344886B1 (ko) | 2013-12-26 |
CN102473115B (zh) | 2015-04-22 |
US9038073B2 (en) | 2015-05-19 |
JP5734977B2 (ja) | 2015-06-17 |
JP2013502015A (ja) | 2013-01-17 |
WO2011020053A1 (en) | 2011-02-17 |
KR20120062770A (ko) | 2012-06-14 |
US20110041127A1 (en) | 2011-02-17 |
EP2465033A1 (en) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102473115A (zh) | 用于高效数据处理的装置和方法 | |
CN102473117A (zh) | 用于存储器管理和高效数据处理的装置和方法 | |
US9830289B2 (en) | Methods and apparatus for aggregating packet transfer over a virtual bus interface | |
US7877481B2 (en) | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory | |
US7924708B2 (en) | Method and apparatus for flow control initialization | |
CN1698337B (zh) | 利用卸载单元处理tcp连接数据的方法 | |
US10789110B2 (en) | Methods and apparatus for correcting out-of-order data transactions between processors | |
US8359420B2 (en) | External memory based FIFO apparatus | |
US20080039055A1 (en) | Configurable Protocol Engine | |
US8504744B2 (en) | Lock-less buffer management scheme for telecommunication network applications | |
US11347567B2 (en) | Methods and apparatus for multiplexing data flows via a single data structure | |
JP4415023B2 (ja) | Pppマルチリンクをサポートするシステムにおけるマルチキャストトラフィックフォーワーディング装置及び制御方法 | |
EP3584978B1 (en) | Technique for storing softbits | |
US8077644B2 (en) | Data transfer in a computing device | |
US9176912B2 (en) | Processor to message-based network interface using speculative techniques | |
CN104484307B (zh) | 一种基于节点控制器fpga原型验证中的降频方法 | |
CN100391200C (zh) | 一种数据传送方法 | |
JP2007043580A (ja) | 通信装置及びデータ受信方法 | |
US20190238485A1 (en) | Transmitting credits between accounting channels | |
CN101715210B (zh) | Mac层hspa数据组装的方法及装置 | |
CN102065484B (zh) | 用于混合自动重传请求合并的数据存储方法和装置 | |
CN106453312A (zh) | 一种基于时隙的工业无线网络mac协议设计方法 | |
CN104901904A (zh) | 从pcie加速子卡到主机的数据传输方法及装置 | |
US20070055956A1 (en) | Data transfer management method, software and system | |
CN114698028A (zh) | 数据传输方法、装置、设备、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150422 Termination date: 20170813 |