【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的实施例涉及网络应用,尤其涉及针对网络应用的自动高速缓存生成。
技术介绍
网络处理器(NP)正作为高速通信路由器的核心元件浮现,并且它们被设计成专用于分组处理应用。这些应用通常具有严格的性能要求。例如,OC-192(10千兆比特/秒)POS(SONET分组)分组处理要求2800万分组/秒的吞吐量或4.57微秒/分组的服务时间用于最差情况下的发送和接收。另一方面,NP中用于外部存储器访问的等待时间通常大于最差情况服务时间。为了解决分组处理的独特难题(例如,在保持稳定性的同时针对最差情况话务使吞吐量最大并使等待时间最小),现代网络处理器通常具有高度并行的架构。例如,诸如Intel IXA NPU家族网络处理器(IXP)之类的某些网络处理器包括并行运行的多个微引擎(例如,有分组处理能力的可编程处理器),并且每个微引擎都支持多个硬件线程。因此,相关联的网络应用也是高度并行的,并通常是多线程的以补偿较长的存储器访问等待时间。只要有新分组到达,就由一新线程对该分组执行一系列任务(例如,分组的接收、路由表查找以及入队)。在这一并行编程范例中,对诸如共用存储器内的位置之类的全局资源的修改被临界段保护,以确保各线程之间的相互排他性和同步。每一临界段通常读取一资源,修改该资源并将其写回(RMW)。附图说明图1是示出多个线程的常规外部存储器访问的框图。如图1所示,如果要求一个以上线程修改同一临界数据,则如果每一线程都访问该外部存储器,就会导致对每一线程的等待时间恶化。参考图1,必须顺序执行线程101至104中的每一个。例如,线程102在线程102能够访问外部存储器的 ...
【技术保护点】
一种方法,包括:标识表示执行一个或多个外部存储器访问的多个线程的多条指令的候选,所述外部存储器访问具有实际相同的基地址;以及将伪指令和指令中的至少一个插入到对应于所标识的候选的指令流中,以便维护处理器的内容可寻址存储器(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[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。