当前位置: 首页 > 专利查询>英特尔公司专利>正文

网络应用内的自动高速缓存生成制造技术

技术编号:2842859 阅读:218 留言:0更新日期:2012-04-11 18:40
在此描述了在网络应用中的自动软件控制的高速缓存生成。在一个实施例中,标识表示执行一个或多个外部存储器访问的多个线程的多条指令的候选,其中该外部存储器访问具有基本相同的基地址。将一条或多条伪指令和/或指令插入到与所标识的候选相对应的指令流中,以维护处理器的内容可寻址存储器(CAM)和局部存储器(LM)中的至少一个的内容,并且修改外部存储器访问中的至少一个,以在无需执行各自的外部存储器访问的情况下访问该处理器的CAM和LM中的至少一个。同时还描述了其他方法和装置。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的实施例涉及网络应用,尤其涉及针对网络应用的自动高速缓存生成。
技术介绍
网络处理器(NP)正作为高速通信路由器的核心元件浮现,并且它们被设计成专用于分组处理应用。这些应用通常具有严格的性能要求。例如,OC-192(10千兆比特/秒)POS(SONET分组)分组处理要求2800万分组/秒的吞吐量或4.57微秒/分组的服务时间用于最差情况下的发送和接收。另一方面,NP中用于外部存储器访问的等待时间通常大于最差情况服务时间。为了解决分组处理的独特难题(例如,在保持稳定性的同时针对最差情况话务使吞吐量最大并使等待时间最小),现代网络处理器通常具有高度并行的架构。例如,诸如Intel IXA NPU家族网络处理器(IXP)之类的某些网络处理器包括并行运行的多个微引擎(例如,有分组处理能力的可编程处理器),并且每个微引擎都支持多个硬件线程。因此,相关联的网络应用也是高度并行的,并通常是多线程的以补偿较长的存储器访问等待时间。只要有新分组到达,就由一新线程对该分组执行一系列任务(例如,分组的接收、路由表查找以及入队)。在这一并行编程范例中,对诸如共用存储器内的位置之类的全局资源的修改被临界段保护,以确保各线程之间的相互排他性和同步。每一临界段通常读取一资源,修改该资源并将其写回(RMW)。附图说明图1是示出多个线程的常规外部存储器访问的框图。如图1所示,如果要求一个以上线程修改同一临界数据,则如果每一线程都访问该外部存储器,就会导致对每一线程的等待时间恶化。参考图1,必须顺序执行线程101至104中的每一个。例如,线程102在线程102能够访问外部存储器的同一位置之前必须等待线程101完成对外部存储器的读取、修改和写回操作。附图简述通过参考用来示出本专利技术实施例的以下描述和附图,能够更好地理解本专利技术。在附图中图1是示出一典型外部存储器访问的框图。图2是示出根据一个实施例的使用软件控制的高速缓存的外部存储器访问的示例的框图。图3是示出根据一个实施例的高速缓存机制的示例的框图。图4是示出根据另一实施例的高速缓存机制的示例的框图。图5是示出根据一个实施例的用于软件自动控制的高速缓存的进程的示例的流程图。图6至图8是示出根据一个实施例的软件控制的高速缓存操作的伪码的示例的框图。图9是示出根据一个实施例的表示高速缓存候选的进程的示例的流程图。图10至图12是示出根据一个实施例的软件控制的高速缓存操作的伪码的示例的框图。图13是示出根据一个实施例的使用软件控制的高速缓存的外部存储器访问的示例的框图。图14是示出根据一个实施例的CAM和LM的存储器分配的示例的框图。图15是示出根据一个实施例的用于软件自动控制的高速缓存的进程的示例的流程图。图16是示出根据一个实施例的用于在微引擎内维护CAM和/或LM的映像的进程的示例的流程图。图17是用于图16的进程示例的伪代码的示例的框图。图18是示出根据一个实施例的具有多个微引擎的处理器的示例的框图。图19是示出根据一个实施例的数据处理系统的示例的框图。 具体实施例方式在此将描述网络应用中的自动软件控制的高速缓存生成。在以下描述中,将阐明多个具体细节。然而可以理解,无需这些具体细节也能实现本专利技术的各实施例。在其他情况下,未详细示出公知的电路、结构和技术以免淡化对本专利技术的理解。以下详细描述的某些部分将按照对计算机存储器内的数据位的操作的算法和符号表示来提出。这些算法描述和表示可由数据处理
的普通技术人员用于将他们的工作主旨有效地传达给该领域其他技术人员。此处的算法通常被认为是可导致期望结果的自一致的操作序列。这些操作是要求对物理量进行物理处理的操作。在通常但非必须的情况下,这些量采用能被存储、传输、组合、比较以及处理的电或磁信号的形式。已证实有时为了方便起见,主要是鉴于常用的原因,可将这些信号称为比特、值、元素、符号、字符、项、数字等等。但应该记住的是,所有这些及类似的术语都与合适的物理量相关联,并且只是应用于这些量的方便的标记。除非另外特别指出,否则如可以从以下讨论中清楚的,可以理解,贯穿本说明书,使用诸如“处理”、“计算”、“演算”、“确定”或“显示”之类的术语的讨论指的是计算机系统或者类似的数据处理设备的动作和/或进程,这些设备将计算机系统的寄存器和存储器内被表示为物理(例如,电子)量的数据处理并变换成计算机系统存储器或寄存器或其他这类信息存储、传输或显示设备内类似地被表示为物理量的其他数据。本专利技术的实施例还涉及用于执行在此描述的操作的装置。装置可以是为了所需的目的特别构造的,或者可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这些计算机程序可以被存储在计算机可读存储介质内,计算机可读存储介质诸如但不限于包括软盘、光盘、CD-ROM和磁光盘的各类盘、只读存储器(ROM)、诸如动态RAM(DRAM)等随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、或者适于存储电子指令的任何类型的介质,并且上述存储组件的每一个都能耦合至计算机系统总线。此处提出的算法和显示本质上并不涉及任何特定的计算机或其他装置。可以结合根据此处的教示的程序使用各种通用系统,或者构造更专用的装置以执行这些方法可以被证明是方便的。用于这各种系统的结构将从如下的描述中变得显而易见。此外,将不会参考任何特定的编程语言来描述本专利技术的实施例。应该认识到,可以使用各种编程语言来实现对在此描述的本专利技术实施例的教示。机器可读介质包括用于存储或传输具有机器(例如,计算机)可读形式的信息的任何机制。例如,机器可读介质可以包括只读存储器(″ROM″);随机存取存储器(″RAM″);磁盘存储介质;光盘存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等等)等等。在一个实施例中,软件控制的高速缓存可用于通过将多个RMW操作折叠成单个读取和一个或多个修改来帮助减小等待时间的不利结果。因此,显著降低了外部存储器访问的次数,并有效地最小化了由线程间(围绕临界数据的)依赖性所导致的等待时间。图2是示出根据一个实施例的多个线程的外部存储器访问的示例的框图。外部存储器访问示例200包括含有线程201至204在内的多个线程。与图1所示的存储器访问类似,每个线程包括读取操作、修改操作和写入操作,这些操作被称为RMW操作。在一个实施例中,使用如下将详述的高速缓存机制将线程201至204的RMW操作合并或折叠成单个读取操作、一个或多个修改操作以及在末尾的单个写入操作。结果,显著减少了外部存储器访问的次数,并大幅减小由线程间依赖性所导致的等待时间。图3是示出根据一个实施例的高速缓存机制的示例的框图。在一个实施例中,高速缓存机制300可以在诸如Intel IXA NPU家族的网络处理器(IXP)等具有多个微引擎的处理器的一个微引擎中实现。例如,根据一个实施例,在诸如Intel IXA NPU家族的网络处理器(IXP)等具有多个微引擎的处理器的每个微引擎中,内容可寻址存储器(CAM)单元和局部存储器(LM)可以被组合以实现软件控制的高速缓存。微引擎中的CAM单元是内容可寻址存储器。CAM单元中的每一条目都存储高速缓存线本文档来自技高网
...

【技术保护点】
一种方法,包括:标识表示执行一个或多个外部存储器访问的多个线程的多条指令的候选,所述外部存储器访问具有实际相同的基地址;以及将伪指令和指令中的至少一个插入到对应于所标识的候选的指令流中,以便维护处理器的内容可寻址存储器(CA M)和局部存储器(LM)中的至少一个的内容,并且修改所述外部存储器访问中的至少一个以在无需执行各自的外部存储器访问的情况下访问所述处理器的CAM和LM中的至少一个。

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括标识表示执行一个或多个外部存储器访问的多个线程的多条指令的候选,所述外部存储器访问具有实际相同的基地址;以及将伪指令和指令中的至少一个插入到对应于所标识的候选的指令流中,以便维护处理器的内容可寻址存储器(CAM)和局部存储器(LM)中的至少一个的内容,并且修改所述外部存储器访问中的至少一个以在无需执行各自的外部存储器访问的情况下访问所述处理器的CAM和LM中的至少一个。2.如权利要求1所述的方法,其特征在于,还包括基于所述指令间的依赖关系将所述外部存储器访问的多条指令划分成一个或多个潜在候选集合;以及选择所述潜在候选集合之一作为所述候选,所述候选的指令满足预定的依赖关系。3.如权利要求2所述的方法,其特征在于,还包括将每个外部存储器访问的地址转换成具有基地址和偏移量的形式。4.如权利要求3所述的方法,其特征在于,所述基地址是所转换的地址的非恒定部分,而所述偏移量是恒定部分。5.如权利要求3所述的方法,其特征在于,还包括从所述潜在候选中筛除一个或多个不合格候选,其中所述不合格候选包括与其余的潜在候选不同的基地址。6.如权利要求3所述的方法,其特征在于,还包括将具有实际相同的基地址的多个潜在候选组合成单个候选,其中具有最多所述潜在候选的组被选为用于高速缓存的最终候选。7.如权利要求1所述的方法,其特征在于,所述标识候选还包括对每一所述外部存储器访问的地址执行前向复制变换;以及为每个线程执行全局值编号操作和恒定折叠操作中的至少一种。8.如权利要求3所述的方法,其特征在于,还包括对每个线程,在所述局部存储器内保留充足的空间以存储高速缓存线的数据部分;以及在每个所述外部存储器访问之前插入一高速缓存指令。9.如权利要求8所述的方法,其特征在于,还包括在所述CAM中查找每个外部存储器访问的基地址以确定所述CAM是否包括含有被查找的基地址的条目。10.如权利要求9所述的方法,其特征在于,如果所述CAM包括含有被查找的基地址的条目,则所述方法还包括基于所述CAM中含有被查找的基地址的条目确定所述局部存储器的偏移量;以及访问对来自所述局部存储器中由所确定的偏移量引用的条目的数据。11.如权利要求9所述的方法,其特征在于,如果所述CAM不包括含有被查找的基地址的条目,则所述方法还包括分配所述CAM中具有前一外部存储器访问的基地址的最少最近使用(LRU)条目。12.如权利要求11所述的方法,其特征在于,还包括将来自所述外部存储器的当前外部存储器访问的数据载入所述局部存储器中由所分配的LRU条目引用的条目;以及在所述CAM的LRU条目中存储所述当前外部存储器访问的基地址以代替所述前一外部存储器访问的基地址。13.如权利要求11所述的方法,其特征在于,还包括在所分配的LRU条目中检查所述前一外部存储器访问的基地址以确定所述基地址是否有效;以及将所述局部存储器中与所分配的LRU条目相对应的条目的数据复制到所述前一外部存储器访问的外部存储器基地址的位置。14.一种具有使得机器执行一方法的可执行码的计算机可读介质,所述方法包括标识表示执行一个或多个外部存储器访问的多个线程的多条指令的候选,所述外部存储器访问具有实际相同的基地址;以及将伪指令和指令中的至少一个插入到对应于所标识的候选的指令流中,以便维护处理器的内容可寻址存储器(CAM)和局部存储器(LM)中的至少一个的内容,并且修改所述外部存储器访问中的至少一个,以在无需执行各自的外部存储器访问的情况下访问所述处理器的CAM和LM中的至少一个。15.如权利要求14所述的计算机可读介质,其特征在于,所述方法还包括基于所述指令间的依赖关系将所述外部存储器访问的多条指令划分成一个或多个潜在候选集合;以及选择所述所述潜在候选集合之一作为所述候选,所述候选的指令满足预定的依赖关系。16.如权利要求15所述的计算机可读介质,其特征在于,所述方法还包括将每个外部存储器访问的地址转换成具有基地址和偏移量的形式。17.如权利要求15所述的计算机可读介质,其特征在于,所述方法还包括从所述潜在候选中筛除一个或多个不合格候...

【专利技术属性】
技术研发人员:戴金权L哈里森李龙黄波
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1