CN1767502A - 由多核心处理器执行的更新指令 - Google Patents
由多核心处理器执行的更新指令 Download PDFInfo
- Publication number
- CN1767502A CN1767502A CNA2005101291363A CN200510129136A CN1767502A CN 1767502 A CN1767502 A CN 1767502A CN A2005101291363 A CNA2005101291363 A CN A2005101291363A CN 200510129136 A CN200510129136 A CN 200510129136A CN 1767502 A CN1767502 A CN 1767502A
- Authority
- CN
- China
- Prior art keywords
- core
- programme
- processing core
- thread
- subclass
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
概括地说,在一个方面本公开描述了一种方法,该方法包括:在包括集成于单硅片上的多个可编程处理核心的处理器接收执行指令,选择所述至少一个所述核心子集,并且加载至少部分执行指令到所述核心子集,而至少一个其它核心继续处理接收的分组。
Description
技术领域
本发明涉及由多核心处理器执行的更新处理指令,包括相关的方法、计算机程序产品以及网络转发装置。
背景技术
网络使计算机与其它的设备之间可以进行通信。例如,网络可以传送表示视频、音频、电子邮件等的数据。通常,通过网络发送的数据划分成称为分组的较小的报文。以此类推,分组非常像投入邮箱的信封。一个分组通常包括“净荷”和“首部”。分组的“净荷”类似于信封中的信件。分组的“首部”非常像写在信封上的信息。首部可包括帮助网络设备对分组进行适当处理的信息。例如,首部可以包括标识分组目的地的地址。
一个给定的分组在到达其目的地之前可以“跳”越许多不同的中间网络转发装置(如“路由器”、“桥接器”和/或“交换机”)。这些中间装置通常执行各种分组处理操作。例如,中间装置通常执行分组分类来确定如何将分组进一步向其目的地转发或确定要提供的服务的质量。
这些中间装置被精心设计为可以快速处理网络上传来的日益增长的大量业务。一些体系结构使用“硬布线”逻辑如专用集成电路(ASICs)来执行分组处理过程。虽然ASIC可以高速操作,但可以证明,改变ASIC操作以便例如使其适应网络协议变化是困难的。
其它体系结构采用称为网络处理器的可编程装置。网络处理器使软件程序员可以快速地对网络处理器操作进行重新编程。一些网络处理器的特征在于积聚分组处理计算能力的多处理核心。这些核心可以并行处理分组。例如,一个核心确定如何将分组进一步朝其目的地转发,而不同的核心则确定如何转发另一个分组。这使网络处理器在保持可编程的同时获得可与ASIC匹敌的速度。
发明内容
根据本发明的一个方面,一种方法,包括:在包括集成在单硅片上的多个可编程处理核心的处理器接收执行指令;选择含至少一个所述可编程处理核心的第一子集;和加载至少部分所述执行指令到可编程处理核心的所述第一子集,而至少一个不属于所述第一子集的可编程处理核心继续处理接收的分组。
根据本发明的另一个方面,一种方法,包括:一个如下所述的迭代过程:使集成在单硅片上的一组多个可编程处理核心之一从分组处理操作中释放;由这一个可编程处理核心更新执行指令,而其余所述可编程处理核心中的至少一个继续处理接收的分组。
根据本发明的又一个方面,一种计算机程序产品,布置在计算机可读介质中,所述程序包括使处理器执行包括如下操作的指令:在一个包括集成于单硅片上的多个可编程处理核心的处理器接收执行指令;选择含至少一个所述可编程处理核心的第一子集;以及加载至少部分执行指令到可编程处理核心的所述第一子集,而至少一个不属于所述第一子集的可编程处理核心继续处理接收的分组。
根据本发明的再一个方面,一种计算机程序产品,布置在计算机可读介质中,该程序包括使处理器执行如下构成一个迭代过程的操作的指令:使集成在单硅片上的一组多个可编程处理核心之一从分组处理操作中释放;由该释放的可编程处理核心更新执行指令,而其余所述可编程处理核心中的至少一个继续处理接收的分组。
根据本发明的还有一个方面,一个网络转发装置,包括:一个交换结构;以及通过所述交换结构连接的多个线路卡,其中各所述线路卡包括:至少一个PHY;至少一个具有集成在单硅片上的多个可编程处理核心的处理器;以及由所述至少一个处理器执行,以执行构成迭代过程的如下操作的指令:使集成在单硅片上的一组多个可编程处理核心之一从分组处理操作中释放;由可编程处理核心更新执行指令,而其余所述可编程处理核心中的至少一个继续处理接收的分组。
附图说明
图1A-1C是说明网络处理器软件更新的的框图。
图2是示例分组处理体系结构的框图。
图3A-3F是说明更新由处理器核心执行的指令的框图。
图4是更新由处理器核心执行的指令的过程的流程图。
图5是网络处理器的示例体系结构的框图。
图6是网络转发装置的示例体系结构的框图。
具体实施方式
网络处理器的可编程性质允许网络操作者可以通过改变所执行的指令来改变操作。这可以延长包括网络处理器的装置的“市场时间(time inmarket)”。就是说,网络处理器可以被重新编程而不是被替换掉。然而,为了重新编程而使网络装置暂时离线会使现有装置中断,并且可能使大量分组被丢弃。本文介绍的是允许网络处理器可以在没有对现有装置产生重大干扰或丢弃大量分组的情况下重新编程的技术。也就是说,在软件升级过程中,网络处理器可以在分组转发系统中继续执行它的任务。
例如,图1A-1C说明对所部署的结合网络处理器106的网络转发装置104(例如路由器或交换机)的远程更新。如图所示,网络处理器106包括多个可编程处理核心108a-108n。为了更新这些核心108a-108n所执行的指令,远程装置100在一系列分组110a-110z中传输更新指令110。处理器106(或其它实体)可以从网络业务中提取这些分组,并将其重新组合成更新指令110。
如图1A-1C中所示,处理器106可以使核心108a-108n中的一个核心从分组处理操作中暂时释放,更新该核心的软件,重新激活该核心,并对其余核心108a-108n重复该过程。例如,在图1A中,在核心108b和108n继续处理接收分组的同时处理器106释放108a并对其进行更新。同样,在图1B和1C中,处理器106分别释放核心108b和108n并对其进行更新。
如图1A-1C所示的方法可用于各种硬件和软件体系结构。例如,图3A-3F显示了对执行如图2所示示例分组处理流水线的核心的软件更新。
图2所示的示例分组处理流水线的特点在于具有含线程150、152a-152n、154、156和158的集合。线程的特点在于具有与其余线程无关的执行上下文(例如程序计数器、寄存器值等)。给定的核心108可以支持一个线程或多个线程,核心108可以在所述多个线程之间切换。
如所示,该流水线包括一个或多个接收线程150,这些线程装配接收到的分组并将其存储在存储器中。接收线程150随后使对应于该分组的条目入队151。分组处理线程152a-152n的集合可使用队列151条目并且处理相应的分组。分组处理过程可包括各种操作,例如各种查表操作(例如,在路由表中的LPM(最长前缀匹配)查找)、应用服务质量(QoS)、修改分组内容(例如,将分组的媒体接入控制(MAC)目的地地址改为下一跳的地址),如此等等。线程152也可以响应于巨大的业务需求选择性地丢弃分组,例如,采用随机早期检测(RED)算法。
在执行其操作之后,分组处理线程152为队列管理器154使对应于分组的条目入队153。队列管理器154将条目分类到一组出口队列(没有示出)中,例如,其中某个给定的出口队列代表输出分组将经由其转发的输出接口。调度器158线程基于例如循环方案、优先级方案或者其它方案来选择要服务的出口队列。队列管理器154将调度器158选择来进行服务的出口队列中的分组条目转发到发送线程156,该发送线程156通过例如交换结构将分组发送到确定的输出接口。
线程150-158可以以各种方式分布在各核心上。例如,一个核心108a可以执行一组接收线程150,而另一个核心108b可只执行发送线程156。或者,不同类型的线程可以在同一核心108上运行。例如,核心108c可以同时执行调度器158线程和队列管理154线程。
如上所述,可以通过改变由核心执行的指令来对网络处理器重新编程。例如,分组处理线程152可以修改为提供新的服务,反应变更的协议或新的协议,或利用更新的实现。如图3A-3F所示,处理器106可以通过暂时“卸载(off-loading)”给定核心的分组处理操作来执行“即时”软件更新,更新核心的代码,然后在经过更新的核心上重新开始分组处理操作。如图3A-3F所示,这可以是当对提供线程的每个核心进行更新时重复进行的迭代过程。
在图3A-3F所示的示例软件体系结构中,多个线程112通过按锁步的有序序列依次处理接收分组来保持分组顺序(以接收顺序发送分组)。在所示实现方案中,锁步的序列通过一种信号方案来维护,该方案中每个线程112在完成对一个分组的操作之前等待来自前一个线程的信号。例如,如所示,线程112a从队列中取出并处理分组114a,同时在进行针对下一个排队的分组114b的操作之前,线程112b等待来自线程112a的信号。如所示,线程序列可以跨越多个核心108a-108b。
同一核心108内多个线程之间的信令可以各种方式来执行(例如,通过在一个共享控制和状态寄存器或其它共享存储器中设标志来执行)。核心108上的信令也可以例如使用硬件核心间信令机制的各种方式来执行(如下所述)。
如图3A所示,线程序列中使用的核心108a-108c构成的序列可以不是硬编码的,而是由数据118确定。例如,表格118可以指示要发信号通知的下一个核心(例如,提供线程序列中的下一个线程的下一个核心)。例如,该核心中的最后一个线程可以读取表格118来确定要发信号通知的下一个核心。例如,如所示,线程112d可以访问表格118,在该表格中查找线程112d核心108a的标识符(“108a”),并基于查找结果108a,向下一个核心108b发信号,通知其处理下一个入队的151分组。如图3B所示,线程序列在核心108b中继续。如所示,由核心108b中最后一个线程112h执行的查表操作118b使线程序列“绕”回核心108a。
在图3A和图3B中,核心108c免于分组处理任务。如图3C所示,当核心108c被释放时,由核心108c线程执行的指令可由控制处理器或线程120更新,而核心108a-108b的线程112a-112h继续分组处理操作。
由表格118提供的核心序列提供在不同的若干组核心之间分布线程序列的灵活性。例如,在图3D中,(例如由控制处理器120)改变表格“链接”118b和118c,核心108a的线程就可以从分组处理操作中释放。也就是说,一旦某核心从由表格118标识的核心系列中删除,则当针对以前接收的分组的任何正在进行的操作一结束,该核心就会从分组操作中释放。随后,核心108a可从控制处理器120接收一个“退出”信号,使核心108a刷新其高速缓存。使核心108a暂时从其分组处理任务中释放使处理器120能够更新核心108a的软件110。同样地,在图3E中,通过改变表格“链接”118a和118c,可以从线程序列中删除核心108b的线程,从而允许更新核心108b的软件110。最后,如图3F所示,核心108a-108c已经接收到了软件更新110。
为使说明简洁,图3A-3F仅显示了三个核心108a-108c,然而,此过程可以对N个核心重复。
如图3A-3F中所示,有时,一些核心可以执行“未更新的”代码,而其它核心执行更新的指令110。为避免中断,更新指令应该是后向兼容且至少暂时在旧框架中有效。例如,更新指令110应该继续参与用于仂调对旧代码中使用的临界段(critical section)的访问的线程间信令(例如,暂时需要对共享资源进行独占访问的若干指令集),直到每一个核心都运行了更新软件110为止。另外,在所有参与核心108都被更新之前,不应该启动已更新软件110的新临界区。例如,更新代码可以等待由控制处理器120设置的指示对核心108的更新已经完成的信号(例如,由核心108方法或访问的START_CRITICAL_SECTION标志)。
图3A-3F所示的实现方案允许核心软件升级继续,同时保持用于保持分组顺序的锁步分组处理方案。然而,核心更新方法可用于其它体系结构。例如,软件体系结构可采用“线程池”方法来代替线程序列。在线程池方案中,当线程完成或者被分配用于处理一个分组时,在可用线城池中添加和删除该线程。也就是说,取代锁步处理,分组在到达时通过分配的线程来进行处理,分组排序以后由流水线中的线程强制执行。为了在线程池实现方案更新核心指令,处理器106可以通过从可用线程池中删除核心的线程来释放该核心。一旦核心的线程被删除,就可以更新该核心的软件。在更新之后,可以使该核心的线程返回到线程池中,随后对不同的核心重复所述过程。
图4显示可由多核心处理器执行以更新核心软件的过程。如所示,处理器106接收新的软件指令170。该指令可以从本地装置接收(例如,通过到已连接管理设备的外围部件互连(PCI)总线连接)。或者,指令可以在发送到网络处理器的控制面分组内接收。这种分组可以是因特网协议(IP)分组,该分组具有结合网络处理器的网络节点的因特网仂议目的地址。除这些指令外,分组可以识别该节点内要更新的特定网络处理器,或者可能识别要更新的那些核心(例如,不同的核心可以接收不同的软件)。如所示,处理过程重复执行如下步骤:释放172、更新174以及连续恢复各核心的分组处理操作176。该过程可能作用于多个核心子集,而不是作用于各个核心。例如,在多个核心可以共享公用控制存储器的情况下,,该过程可以一次释放并更新一个完整的核心子集。在任一情况下,分组处理可以在其余核心中继续。
可以对图4所示示例过程实施多种变化。例如,网络处理器可能配置为永久使一个冗余核心处于空闲。或者,当发生更新时网络处理器可以释放一个“擦除(scratch)”核心空闲。
上述技术可用于各种各样的核心体系结构。例如,图5显示了多核心网络处理器106的一个示例。所示网络处理器106为Intel因特网交换网络处理器(IXP)。其它网络处理器的特征在于其设计不同。
所示网络处理器106的特征在于具有集成于单一半导体硅片上的一组处理核心108。每一个核心108可以是为分组处理定制的精简指令集计算(RISC)处理器。例如,核心108不一定提供通用处理器的指令集通常提供的浮点或者整数除法指令。各个核心108可执行多个线程。例如,一个核心108可以存储用于不同线程的多个程序计数器和其它上下文数据。核心108可以通过共享资源(例如同步随机存取存储器(SRAM)或者动态随机存取存储器(DRAM))与其它核心108通信。或者,核心108可以通过直接连线到相邻核心204的相邻寄存器进行通信,或者可以通过可将信号路由到非相邻核心的CAP(CSR接入代理)进行通信。
如所示,网络处理器106的特征还在于具有至少一个接口204,所述接口可以在处理器106和其它网络组件之间传送分组。例如,网络处理器106的特征可以是具有交换结构接口204(例如,公用交换机接口(CSIX)),该接口允许处理器106将分组发送到与上述交换结构连接的其它处理器或者电路。处理器106的特征还可以是允许处理器106与物理层(PHY)和/或链路层装置(如媒体接入控制器(MAC)或成帧器装置)通信的接口204(如系统分组接口(SPI)接口)。处理器106还包括接口208(如PCI总线接口),用于与例如主机或其它网络处理器通信。
如所示,处理器106还包括由核心108共享的其它组件,如散列引擎、内部暂存器和提供对外部共享存储器的存取的存储控制器206、212。网络处理器106还包括一个通用处理器210(如StrongARMXScale),它通常被编程来执行网络操作所设计的“控制面”任务。然而,通用处理器210还可以处理“数据面”任务。
通用处理器210可以处理更新核心的软件的任务(例如,充当图3A-3F中的控制处理器120)。例如,通用处理器210可以执行来自控制面分组的更新指令并将这些更新指令下载到核心控制存储器。每个核心可能具有其自己的控制存储器。或者,多个核心108可以共享一个公用控制存储器。通用处理器210可以执行其它任务。例如,如诸如图3A-3F中显示的方案中,该通用处理器可以维护和调整核心序列表格118,以从分组处理操作中删除核心或将核心插入分组处理操作。这样的表格118可以存储在由网络处理器106访问的SRAM(同步随机存取存储器)中。虽然描述为由通用处理器210执行,但并不要求由通用处理器210执行这些操作。例如,这些任务可由一个核心108或者一个外部代理来执行。
图6显示了一个网络转发装置,它可以使用上述核心更新方法。如所示,该装置的特征在于具有通过交换结构310(例如,纵横制交换结构或共享存储交换结构)互连的一组线路卡300(“刀片”)。例如,该交换结构可符合CSIX或其它交换结构技术如HypeTransport、Infiniband、PCI、Packet-Over-SONET、RapidIO和/或UTOPIA(ATM的通用测试和操作PHY接口)。
各个线路卡(例如300a)可包括一个或多个处理网络连接上的通信的物理层(PHY)装置302(例如,光PHY、有线PHY和无线PHY)。这些PHY在由不同网络媒体传送的物理信号和数字系统使用的比特(例如,若干“0”和“1”)之间进行转换。线路卡300还可以包括可执行有关帧的诸如检错和/或纠错之类操作的成帧器装置304(例如,以太网、同步光网(SONET)、高级数据链路(HDLC)成帧器装置或其它“层2”装置)。所示线路卡300还可以包括一个或多个对通过PHY302接收的分组执行分组处理操作的网络处理器306,并且通过交换结构310将所述分组导向提供用于转发分组的出口接口的线路卡。可能的是由网络处理器306而非成帧器装置304来执行“层2”任务。
尽管图5和图6描述的是网络处理器以,及结合了网络处理器的装置的特定示例,但所述技术也可以实现于各种包括设计与所示不同的处理器和网络装置的体系结构中。另外,所述技术还可以用于各种各样的网络装置(如路由器、交换机、桥接器、集线器、业务生成器等)中。术语分组可适用于IP(因特网协议)数据报、TCP(传输控制协议)段、ATM(异步传输模式)小区、以太网帧以及其它仂议数据单元。
所述技术可以用硬件、软件或二者的组合来实现。所述技术最好用计算机程序如高级过程或面向对象编程语言来实现。必要时,所述程序可以用汇编或机器语言来实现,所述语言可以是编译型或解释型的。
其它实施例属于如下权利要求范围。
Claims (21)
1.一种方法,包括:
在包括集成在单硅片上的多个可编程处理核心的处理器接收执行指令;
选择含至少一个所述可编程处理核心的第一子集;和
加载至少部分所述执行指令到可编程处理核心的所述第一子集,而至少一个不属于所述第一子集的可编程处理核心继续处理接收的分组。
2.如权利要求1所述的方法,还包括:
选择含至少一个所述可编程处理核心的第二子集;和
加载所述执行指令到可编程处理核心的所述第二子集,而至少一个不属于所述第二子集的可编程处理核心继续处理接收的分组。
3.如权利要求1所述的方法,还包括:在加载之前停止可编程处理核心的所选第一子集中正在进行的分组处理操作。
4.如权利要求1所述的方法,其中:
所述可编程处理核心提供多个分组处理线程;以及
从线程池中分配一个所述数据分组处理线程来执行针对分组的操作;以及
还包括从所述线程池中删除所述第一子集中的可编程处理核心的线程。
5.如权利要求1所述的方法,其中:
由所述核心提供的一序列线程从至少一个队列检索分组来进行处理,该序列从一个核心的含至少一个线程的子序列进入另一个核心的含至少一个线程的子序列;以及
其中所述线程序列由标识所述序列中至少下一个核心的数据指定。
6.如权利要求1所述的方法,其中所述接收执行指令包括接收因特网协议分组,所述因特网协议分组具有结合所述可编程处理核心的网络节点的因特网协议目的地址和包括所述执行指令的净荷。
7.一种方法,包括:
一个如下所述的迭代过程:
使集成在单硅片上的一组多个可编程处理核心之一从分组处理操作中释放;
由这一个可编程处理核心更新执行指令,而其余所述可编程处理核心中的至少一个继续处理接收的分组。
8.如权利要求7中所述的方法,
还包括维护标识一个核心序列的数据;
其中所述释放一个可编程处理核心的步骤包括在所述更新前从所述核心序列中删除该核心;以及
还包括在所述更新后将该核心插入所述核心序列中。
9.如权利要求6所述的方法,还包括:
在所述迭代过程完成之后设置一个数据值。
10.一个计算机程序产品,布置在计算机可读介质中,所述程序包括使处理器执行包括如下操作的指令:
在一个包括集成于单硅片上的多个可编程处理核心的处理器接收执行指令;
选择含至少一个所述可编程处理核心的第一子集;以及
加载至少部分执行指令到可编程处理核心的所述第一子集,而至少一个不属于所述第一子集的可编程处理核心继续处理接收的分组。
11.如权利要求10所述的计算机程序,其中所述操作还包括:
选择含至少一个所述可编程处理核心的第二子集;以及
加载执行指令到可编程处理核心的所述第二子集,而至少一个不属于所述第二子集的可编程处理核心继续处理接收的分组。
12.如权利要求10所述的计算机程序,其中所述操作还包括在所述加载前使可编程处理核心的所选第一子集从处理分组中释放。
13.如权利要求10所述的计算机程序,其中:
所述可编程处理核心提供多个分组处理线程;以及
从线程池中被分配用于处理分组的一个所述线程;以及
所述操作还包括从所述线程池中删除所述第一子集中可编程处理核心的线程。
14.如权利要求10所述的计算机程序,其中:
由所述核心提供的一序列线程从至少一个队列检索分组来进行处理,该序列从一个核心的含至少一个线程的子序列进入另一个核心的含至少一个线程的子序列;以及
所述线程序列由标识所述序列中至少下一个核心的数据指定。
15.如权利要求10所述的计算机程序,其中所述接收执行指令包括接收因特网协议分组,所述因特网协议分组具有结合所述可编程处理核心的网络节点的因特网协议目的地址和包括所述执行指令的净荷。
16.一种计算机程序产品,布置在计算机可读介质中,该程序包括使处理器执行如下构成一个迭代过程的操作的指令:
使集成在单硅片上的一组多个可编程处理核心之一从分组处理操作中释放;
由该释放的可编程处理核心更新执行指令,而其余所述可编程处理核心中的至少一个继续处理接收的分组。
17.如权利要求16所述的计算机程序,其中:
所述操作还包括维护标识一个核心序列的数据;
其中所述释放一个可编程处理核心的步骤包括在所述更新前从所述核心序列中删除该核心;以及
所述操作还包括在所述更新后将该核心插入所述核心序列中。
18.如权利要求16所述的计算机程序,其中所述操作还包括:
在所述迭代过程完成之后设置一个数据值。
19.一个网络转发装置,包括:
一个交换结构;以及
通过所述交换结构连接的多个线路卡,其中各所述线路卡包括:
至少一个PHY;
至少一个具有集成在单硅片上的多个可编程处理核心的处理器;以及
由所述至少一个处理器执行,以执行构成迭代过程的如下操作的指令:
使集成在单硅片上的一组多个可编程处理核心之一从分组处理操作中释放;
由可编程处理核心更新执行指令,而其余所述可编程处理核心中的至少一个继续处理接收的分组。
20.如权利要求19所述的装置,其中所述操作还包括:
维护标识一个核心序列的数据;以及
所述释放一个可编程处理核心的步骤包括在所述更新前从核心序列中删除该核心以及在所述更新后将该核心插入所述核心序列中。
21.如权利要求19所述的装置,其中所述操作还包括在所述迭代过程完成之后设置一个数据值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/954,326 US8015392B2 (en) | 2004-09-29 | 2004-09-29 | Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets |
US10/954326 | 2004-09-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1767502A true CN1767502A (zh) | 2006-05-03 |
Family
ID=35515630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101291363A Pending CN1767502A (zh) | 2004-09-29 | 2005-09-28 | 由多核心处理器执行的更新指令 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8015392B2 (zh) |
CN (1) | CN1767502A (zh) |
WO (1) | WO2006039596A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697128A (zh) * | 2009-10-10 | 2010-04-21 | 中兴通讯股份有限公司 | 版本升级方法和装置 |
CN104239732A (zh) * | 2014-09-24 | 2014-12-24 | 湖南大学 | 一种运行于多核计算机平台的并行通用序列的比对方法 |
CN104901901A (zh) * | 2014-03-07 | 2015-09-09 | 深圳市中兴微电子技术有限公司 | 一种微引擎及其处理报文的方法 |
CN105408860A (zh) * | 2013-09-06 | 2016-03-16 | 华为技术有限公司 | 多线程异步处理器系统和方法 |
CN106850749A (zh) * | 2016-12-26 | 2017-06-13 | 联想(北京)有限公司 | 一种在线更新内核的方法及装置、电子设备 |
CN107810477A (zh) * | 2015-06-26 | 2018-03-16 | 微软技术许可有限责任公司 | 解码的指令的重复使用 |
CN109562928A (zh) * | 2016-03-27 | 2019-04-02 | 吉尔巴科公司 | 具有集成控制电子器件的燃料分配器 |
CN110134101A (zh) * | 2018-02-09 | 2019-08-16 | 罗伯特·博世有限公司 | 用于车辆中可更换组件的灵活更换的电子控制单元 |
US11048517B2 (en) | 2015-06-26 | 2021-06-29 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8015392B2 (en) | 2004-09-29 | 2011-09-06 | Intel Corporation | Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets |
US8209492B2 (en) | 2005-06-14 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Systems and methods of accessing common registers in a multi-core processor |
US8194690B1 (en) * | 2006-05-24 | 2012-06-05 | Tilera Corporation | Packet processing in a parallel processing environment |
US8713574B2 (en) * | 2006-06-05 | 2014-04-29 | International Business Machines Corporation | Soft co-processors to provide a software service function off-load architecture in a multi-core processing environment |
CN100458707C (zh) * | 2007-04-05 | 2009-02-04 | 杭州华三通信技术有限公司 | 实现用户配置的方法、系统及主核和从核 |
US8059650B2 (en) * | 2007-10-31 | 2011-11-15 | Aruba Networks, Inc. | Hardware based parallel processing cores with multiple threads and multiple pipeline stages |
US8386664B2 (en) * | 2008-05-22 | 2013-02-26 | International Business Machines Corporation | Reducing runtime coherency checking with global data flow analysis |
US8281295B2 (en) * | 2008-05-23 | 2012-10-02 | International Business Machines Corporation | Computer analysis and runtime coherency checking |
CN101304322B (zh) * | 2008-06-30 | 2010-07-28 | 杭州华三通信技术有限公司 | 一种网络设备和报文转发方法 |
US8285670B2 (en) * | 2008-07-22 | 2012-10-09 | International Business Machines Corporation | Dynamically maintaining coherency within live ranges of direct buffers |
US8789065B2 (en) | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US8490111B2 (en) * | 2011-04-16 | 2013-07-16 | Throughputer, Inc. | Efficient network and memory architecture for multi-core data processing system |
US10031888B2 (en) * | 2011-02-17 | 2018-07-24 | Hyperion Core, Inc. | Parallel memory systems |
US9448847B2 (en) | 2011-07-15 | 2016-09-20 | Throughputer, Inc. | Concurrent program execution optimization |
US9030947B2 (en) * | 2012-10-12 | 2015-05-12 | Futurewei Technologies, Inc. | Methods for zero loss and nonstop packet processing during system software upgrades |
CN103197968B (zh) * | 2013-03-18 | 2016-03-30 | 焦点科技股份有限公司 | 一种融合同步异步特点的线程池处理方法及系统 |
US20160266894A1 (en) * | 2015-03-11 | 2016-09-15 | Cavium, Inc. | Systems and methods for live upgrade and update of firmware on an embedded networking device |
US20160301632A1 (en) * | 2015-04-08 | 2016-10-13 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for burst based packet processing |
US10275278B2 (en) * | 2016-09-14 | 2019-04-30 | Salesforce.Com, Inc. | Stream processing task deployment using precompiled libraries |
CN108270813B (zh) * | 2016-12-30 | 2021-02-12 | 华为技术有限公司 | 一种异构多协议栈方法、装置及系统 |
FR3084500B1 (fr) * | 2018-07-26 | 2020-07-03 | Thales | Procede et dispositif electronique d'installation logicielles avioniques sur une plateforme comprenant un processeur multicoeurs, programme d'ordinateur et systeme electronique associes |
WO2020024207A1 (zh) * | 2018-08-02 | 2020-02-06 | 华为技术有限公司 | 处理业务请求的方法、装置与存储系统 |
CN109117260B (zh) * | 2018-08-30 | 2021-01-01 | 百度在线网络技术(北京)有限公司 | 一种任务调度方法、装置、设备和介质 |
CN111045476B (zh) * | 2019-12-18 | 2021-07-27 | 湖南国科微电子股份有限公司 | 多核cpu系统下时序波形控制方法、系统、设备及介质 |
CN113364705B (zh) * | 2020-03-06 | 2022-06-17 | 烽火通信科技股份有限公司 | 一种协议报文的处理方法及系统 |
US12075074B2 (en) * | 2021-09-24 | 2024-08-27 | Apple Inc. | Systems and methods for multi-core image encoding |
US12026506B2 (en) | 2022-07-08 | 2024-07-02 | Sk Hynix Nand Product Solutions Corp. | Methods and systems for updating device firmware while maintaining state and connectivity |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696920A (en) | 1992-09-07 | 1997-12-09 | Sharp Kabushiki Kaisha | Stand-alone data driven type information processor |
JP3160149B2 (ja) * | 1994-05-13 | 2001-04-23 | 株式会社日立製作所 | ディスク制御装置の無停止プログラム変更方法およびディスク制御装置 |
JPH07311749A (ja) * | 1994-05-19 | 1995-11-28 | Toshiba Corp | マルチプロセッサシステム及びカーネル置換方法 |
US6172990B1 (en) | 1997-06-19 | 2001-01-09 | Xaqti Corporation | Media access control micro-RISC stream processor and method for implementing the same |
WO2001027753A2 (en) * | 1999-10-12 | 2001-04-19 | Scientific-Atlanta, Inc. | Method and apparatus for loading software into a plurality of processors |
US6550020B1 (en) * | 2000-01-10 | 2003-04-15 | International Business Machines Corporation | Method and system for dynamically configuring a central processing unit with multiple processing cores |
EP1160666A3 (en) | 2000-04-27 | 2005-03-23 | Ncr International Inc. | Switching versions of software in a system background |
US20030158759A1 (en) | 2002-01-24 | 2003-08-21 | Robert Kannenberg | Method of modifying software by defining business rules |
US6959372B1 (en) * | 2002-02-19 | 2005-10-25 | Cogent Chipware Inc. | Processor cluster architecture and associated parallel processing methods |
US7076609B2 (en) | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
US20050022173A1 (en) * | 2003-05-30 | 2005-01-27 | Codito Technologies Private Limited | Method and system for allocation of special purpose computing resources in a multiprocessor system |
US7516451B2 (en) * | 2004-08-31 | 2009-04-07 | Innopath Software, Inc. | Maintaining mobile device electronic files including using difference files when upgrading |
US20060101257A1 (en) * | 2004-09-07 | 2006-05-11 | Frans Sijstermans | System and method to provide a processor with dynamic instruction set and decoder |
US8015392B2 (en) | 2004-09-29 | 2011-09-06 | Intel Corporation | Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets |
US7689784B2 (en) * | 2005-03-18 | 2010-03-30 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic linking program overlay |
-
2004
- 2004-09-29 US US10/954,326 patent/US8015392B2/en not_active Expired - Fee Related
-
2005
- 2005-09-28 CN CNA2005101291363A patent/CN1767502A/zh active Pending
- 2005-09-29 WO PCT/US2005/035376 patent/WO2006039596A1/en active Application Filing
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697128A (zh) * | 2009-10-10 | 2010-04-21 | 中兴通讯股份有限公司 | 版本升级方法和装置 |
WO2010145346A1 (zh) * | 2009-10-10 | 2010-12-23 | 中兴通讯股份有限公司 | 版本升级方法和装置 |
CN105408860A (zh) * | 2013-09-06 | 2016-03-16 | 华为技术有限公司 | 多线程异步处理器系统和方法 |
CN105408860B (zh) * | 2013-09-06 | 2017-11-17 | 华为技术有限公司 | 多线程异步处理器系统和方法 |
CN104901901A (zh) * | 2014-03-07 | 2015-09-09 | 深圳市中兴微电子技术有限公司 | 一种微引擎及其处理报文的方法 |
WO2015131445A1 (zh) * | 2014-03-07 | 2015-09-11 | 深圳市中兴微电子技术有限公司 | 一种微引擎及其处理报文的方法、计算机存储介质 |
CN104901901B (zh) * | 2014-03-07 | 2019-03-12 | 深圳市中兴微电子技术有限公司 | 一种微引擎及其处理报文的方法 |
CN104239732A (zh) * | 2014-09-24 | 2014-12-24 | 湖南大学 | 一种运行于多核计算机平台的并行通用序列的比对方法 |
CN107810477A (zh) * | 2015-06-26 | 2018-03-16 | 微软技术许可有限责任公司 | 解码的指令的重复使用 |
CN107810477B (zh) * | 2015-06-26 | 2021-04-23 | 微软技术许可有限责任公司 | 解码的指令的重复使用 |
US11048517B2 (en) | 2015-06-26 | 2021-06-29 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
CN109562928A (zh) * | 2016-03-27 | 2019-04-02 | 吉尔巴科公司 | 具有集成控制电子器件的燃料分配器 |
US10679456B2 (en) | 2016-03-27 | 2020-06-09 | Gilbarco, Inc. | Fuel dispenser having integrated control electronics |
CN109562928B (zh) * | 2016-03-27 | 2021-09-28 | 吉尔巴科公司 | 具有集成控制电子器件的燃料分配器 |
CN106850749A (zh) * | 2016-12-26 | 2017-06-13 | 联想(北京)有限公司 | 一种在线更新内核的方法及装置、电子设备 |
CN110134101A (zh) * | 2018-02-09 | 2019-08-16 | 罗伯特·博世有限公司 | 用于车辆中可更换组件的灵活更换的电子控制单元 |
Also Published As
Publication number | Publication date |
---|---|
US8015392B2 (en) | 2011-09-06 |
WO2006039596A1 (en) | 2006-04-13 |
US20060070054A1 (en) | 2006-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1767502A (zh) | 由多核心处理器执行的更新指令 | |
CN1801775A (zh) | 流分配 | |
US9307054B2 (en) | Intelligent network interface system and method for accelerated protocol processing | |
US7313142B2 (en) | Packet processing device | |
JP3734704B2 (ja) | パケット分類エンジン | |
US7382787B1 (en) | Packet routing and switching device | |
CN1219384C (zh) | 多播传输的方法及设备 | |
US20110083000A1 (en) | Data processing architectures for packet handling | |
US20030099254A1 (en) | Systems and methods for interfacing asynchronous and non-asynchronous data media | |
JP2002538733A (ja) | 高性能ネットワークインターフェース | |
US20030231627A1 (en) | Arbitration logic for assigning input packet to available thread of a multi-threaded multi-engine network processor | |
JP2003526269A (ja) | 内部プロセッサメモリ領域を用いる高速データ処理 | |
JP2002524005A (ja) | 通信を高速化するインテリジェントネットワークインタフェース装置及びシステム | |
CN1679282A (zh) | Tcp卸载的系统和方法 | |
CN1802836A (zh) | 网络协议卸载引擎存储器管理 | |
US20020174316A1 (en) | Dynamic resource management and allocation in a distributed processing device | |
WO2006074047A1 (en) | Providing access to data shared by packet processing threads | |
US7552232B2 (en) | Speculative method and system for rapid data communications | |
US7039054B2 (en) | Method and apparatus for header splitting/splicing and automating recovery of transmit resources on a per-transmit granularity | |
CN1801812A (zh) | 高性能传输控制协议syn队列的实现 | |
US20040246956A1 (en) | Parallel packet receiving, routing and forwarding | |
JP2005216283A (ja) | シングル・チップ・プロトコル・コンバーター | |
US6826180B1 (en) | Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor | |
US6798778B1 (en) | Communication packet processor with a look-up engine and content-addressable memory for updating context information for a core processor | |
EP1290831B1 (en) | Communication packet processor with a look-up engine to retrieve context information for a core processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060503 |