同时多线程体系Cache设计与优化研究综述

上传人:仙*** 文档编号:60809374 上传时间:2022-03-09 格式:DOC 页数:10 大小:628.50KB
返回 下载 相关 举报
同时多线程体系Cache设计与优化研究综述_第1页
第1页 / 共10页
同时多线程体系Cache设计与优化研究综述_第2页
第2页 / 共10页
同时多线程体系Cache设计与优化研究综述_第3页
第3页 / 共10页
点击查看更多>>
资源描述
同时多线程体系Cache设计与优化研究综述摘要:在现代计算机系统中,Cache的设计对整体性能有着重要的影响。同时多线程体系中,多个线程的资源共享产生了Cache冲突问题,为了保证处理器的吞吐率,要设计一个合理的Cache结构,并进行Cache的参数进行优化的配置。本文描述了超长指令字处理器中Cache的结构,主要包括Cache的映射方法和管理方法,并利用空间压缩技术提高了Cache的容量和利用率,利用Cache的参数配置方法减少能量的消耗。关键词:同时多线程;VILW;Cache冲突;Cache优化1 引言在现代计算机系统中,对存储器的设计基本上都是基于层次存储体系的基本原理,大部分的存储系统可以分为四个层次:寄存器、高速缓存(Cache)、主存和外存,其中高速缓存有效地解决了处理速度和存储速度的匹配问题,成为现在计算机中的一种重要的存储技术,因此Cache的设计对计算机整体的性能有重要的影响。随着微处理器体系结构技术的不断发展,从单一指令流中开发指令级并行性已经变得越来越困难,指令发射窗口、寄存器文件等部件的设计复杂度随着规模的增大而呈指数增长,而它们带来的实际效果并不明显,因此SMT和CMP等开发任务级并行性的技术受到研究人员的关注。SMT技术是指在同一个处理器上虚拟多个逻辑处理器,每个逻辑处理器上运行一个任务(线程),但它们同时共享一套执行部件。SMT能够利用流水线上由于指令并行性不足、Cache失效等问题产生的间隙,从而提升处理器的实际性能。超长指令字(VILW)1处理器能够同时发射多条指令,其指令调度完全依赖于编译器,硬件较简单,得益于编译技术的进步,这类处理器目前在高性能微处理器领域比较流行。尽管如此,VLIW处理器尚未发挥出全部潜力,其障碍不仅来源于程序本身,还在于诸多动态因素,如Cache失效等,SMT技术能够帮助VLIW处理器减小上述障碍的影响,使其更有效地利用资源,从而提高处理器的实际性能。多个线程之间的资源共享能够提高功能单元的利用率,随着线程数的增加,处理器的吞吐率会增高,同时线程之间的资源共享也使得各线程拥有的资源相对减少,单个线程的性能下降。线程间的资源竞争体现在两个方面,一是计算单元的竞争,另一方面是存储资源Cache的竞争,Cache的竞争比较复杂,也比较难解决。多线程的资源共享使得Cache的冲突失效显著增加,冲突失效的增多不仅加大了各级Cache的负担,还会降低处理器的吞吐率,而降低冲突失效的有效方法是增大Cache的组相联度,但是在Cache容量不变的情况下,增加组相联度将不可避免地增大容量失效率,因此同时多线程体系的情况下Cache的配置是十分复杂的事情。2 VILW体系的Cache结构设计2.1 VILW的分布式结构在VLIW体系中,连接线延迟是当前和今后制约处理器速度的重要因素,解决这个问题的一个途径是将处理器划分成叫做机群的半独立功能单元,每个机群由本地的寄存器文件,一个机群由一个本地寄存器文件和一些功能单元的集合,当L1数据Cache是集中式的时候称这个结构为局部分布式体系结构2。在机群内的本地通信速度要比机群间的通信快,因此分配给不同机群的指令要保证最小的全局通信量和最高的负载均衡效果。图1是一个半分布式的机群的配置图,它不仅解决了连接线延迟的问题,还可以减少电源的消耗。图1 局部分布式体系结构与门延迟相比,连接线延迟成为制约速度的决定因素,通过集中的L1数据Cache很难使所有的机群都能快速访问到,Cache只能距离其中的几个机群近一点,不能满足所有的速度要求,因此分布式的数据Cache成为影响微处理器性能的关键。将L1数据Cache分割成不同的小模块,将一个模块分配给一个机群,这样访问本地的Cache模块速度会快一点。图2是这样的全分布式的机群配置图。图2 全分布式体系结构2.2 L1 Cache映射方法数据Cache的分布式模式同时产生的问题有如何将L1数据Cache分割成不同的Cache模块,数据如何映射到这些Cache模块,新的Cache一致性问题产生,也需要一个机制来保证一致性。超标量处理器在运行时确定要发射的指令条数,静态调度的超标量处理器必须检查要发射的指令间以及已发射的指令间的相关性,在静态调度的处理器(例如VLIW)上,编译器的支持可以减少由于数据冲突带来的停顿,编译器生成代码的效率直接影响整体的性能,同时需要调度指令使本地Cache访问的比例大一点。Sanchez和Gonzalez提出了一种将L1数据Cache分割成小模块并将Cache模块分配给机群的方法,为了保证Cache一致性,采用了基于Snoop的Cache一致性协议。MultiWLIW用数据依赖图来表示循环,采用摆动模调度(Swing Module Scheduling)对每个节点排序,模调度中,所有循环体的调度结果相同,而且按照一个固定的启动间距依次启动,启动间距(Initiation Interval)是指一个循环体启动于上一循环体结束之前,相邻两个循环体的启动时刻差。模调度的结果由装入(prolog)、核心(kernel)和排空(epilog)三个部分组成,在装入部分,前若干个循环体以II为间隔依次启动,随之出现一个重复模式,即核心,其长度等于II,核心反复执行那个直到所有循环体都被启动,离开核心后进入排空部分,直到循环执行完毕。图中3(a)的循环经过模调度后,所得调度结果如图3(b)所示,每个循环体的调度程度为3II,虚线框内的是核心。图3 摆动模调度图4是使用模调度算法的调度流程,这个算法每次调度一条指令,如果机群的集合里没有一个有足够的资源去执行指令,也就是指令不能调度在任何一个机群上,这个时候II增加并且重新开始调度过程。如果有多个机群可以选择,可以通过排序的方法查找全局通信量最小的那个。图4 使用模调度算法的调度流程另一种分割L1数据Cache的方法是通过字交错的方式,每个Cache模块根据数据地址和交错因子包含一些内存块,如下图所示,在4个机群和8个字的cahce结构中,交错因子是1个字,Cache的0和4映射到cluster1,1和5映射到cluster2,依次类推。图5 L1Cache的字交错的方式在这样体系结构中,编译技术是增加本地命中率的关键因素,相关技术已经提升了平均27%的本地访问率,还可以通过Attraction Buffer来进一步提高本地访问率,如下图所示,cluster1上的指令在访问a3的时候将整个远程的块都传送过来,下次再访问a7的时候就可以本地访问。图5在这种结构中,指令的调度算法可以分为以下几个步骤:1.获取存储访问的信息,为了增加本地访问,需要知道各个机群上的存储指令数量。2.通过循环的展开可以提高模调度的性能,增加本地chache访问。如果编译器支持将指令调度给合适的机群,所有的存储访问将有可能都被本地访问。编译器根据循环中的存储指令数、机群数和交错因数来确定最优展开因数(OUF),编译器通常从1,N(按照机群数展开),OUF中选择一个。3.确定延迟时间。存储指令的延迟都是不确定的,可以根据命中延迟、缺失延迟来进行调度。通过不断计算运行时间和空闲时间的比值的函数,找到最高的比值,再改变其中一个指令的延迟,重新计算剩下的比值。4.通过摆动模调度算法进行排序.5.确定机群和调度。机群调度的顺序是先调度指令决定的最优机群,然后是按照最小的通信量和负载排序,最后是有空位第一个机群。存储指令的调度必须保证一致性,如果不按照原程序的顺序来访问同一地址的内容,就会发生不一致问题,可以通过增加限制来解决这个问题。在给指令分配机群的时候,编译器建立存储依赖的集合,将具有存储依赖的指令分配给同一个机群。2.3编译器管理的L0 Cache这种结构下具有集中的L1数据Cache,每个机群都有自己的L0高速缓冲区,这些缓冲区的大小都是有限的,编译器要采用灵活的机制将关键数据映射到缓冲区里,并要保证数据不会超过缓冲区的容量。有两种L1到L0的映射方式,一种是线性的映射,L1中连续的一段数据映射到L0缓冲区中,另一种是交错的映射方式,将L1分为若干块,不连续的块映射到L0 Cache中。L0和L1 Cache采用写通技术简化了替换管理,保证了一致性3。图6 编译器管理的L0 Cache3 同时多线程的Cache冲突SMT技术能够利用流水线上由于指令级并行性不足、Cache失效等问题产生的空发射槽,从而提升处理器的实际性能。从计算单元的角度来看,线程间的共享使得更多的指令被发生出去,提高了计算单元的利用率和系统吞吐率。但是,从存储系统的角度来看,各线程对存储单元的竞争可能导致存储系统的抖动,从而成为系统的瓶颈,而线程间的Cache冲突是产生这一瓶颈的主要原因。为了更有效得利用处理器资源,研究人员已经分别在微体系结构、编译和操作系统三个层次上提出了多种提高取指单元吞吐率的方法,除了基于编译器静态优化程序、数据存储放置的方法外,其他两类方法则分别利用调度线程和调整资源分配等方法降低Cache抖动。一般而言,取指单元的流水线级数越多,发生无效取指的可能性就越大。对于同时多线程处理器,无效的取指不仅意味着能量的浪费,也加剧了程序Cache的冲突。为了减少无效取指,需要提出一种适合同时多线程处理器的取指模式4。若处理器采用了指令字压缩技术,将取指单元从程序Cache获取的内容称为取指包,而将从取指包内解压出来的指令字称为执行包。假设处理器的发射带宽为4,取指流水线深度为3,并且分支延迟槽的数目也是3.取指流水线在流水站1发出程序Cache访问,而流水站2则等待程序Cache的信号。在T时刻,处理器执行了一个分支操作,该指令所在的取指包为n,而分支目标为m。除了分支操作所在的执行包,该取指包内还有三个执行包,硬件将用四个周期将这些执行包解压出来。此时取指单元中各流水站保存地址如表第一行所示。在T+1时刻,分支目标进入取指单元的第一站,而地址n+3被作废,其他流水站内的地址保持不变。在T+3时刻,取指单元内原本保存的地址均被作废5。至此,取指单元已经获取到了分支目标的内容。节拍流水站1流水站2流水站3Tn+3n+2n+1T+1mn+2n+1T+2m+1mn+1T+3m+2m+1m在当前商业超长指令处理器的取指单元中,新的指令地址来源于分支指令和地址产生单元本身。一级程序Cache接受这个地址,并读出相应地址的Tag、有效位和指令。根据读出的Tag和有效位,一级程序Cache决定是否访问下级存储层次。此时整个流水线(取指、译码、执行等)进入停顿状态,直到一级程序Cache给出控制信号,指示其接收指令。由于取指单元与译码、执行等单元存在同步关系,因而也称这种模式为阻塞模式。非阻塞模式取指单元模型在等待指令字过程中允许译码和执行等流水站继续前进,当执行单元执行完毕一个执行包时,若取指单元尚在等待,则地址产生模块产生的地址先送到地址缓冲。取指单元流水线流动时,若地址缓冲非空,则用缓冲内的地址进行取指。非阻塞模式的取指单元能够隐藏程序存储器的延迟,从而提高处理器的性能。当处理器运行同一个程序时,虽然非阻塞模式的取指单元增加了一个地址缓冲,但地址缓冲内的地址仅根据取指流水线的流动而移位。因此上述两种取指单元的行为是完全相同的(包括无效地址的产生及作废过程),即两者的访问地址序列完全相同。因此,非阻塞模式的取指单元一方面提高了超长指令字处理器的性能,另一方面也加大了程序存储器的压力。在同时多线程处理器中,采用这种取指单元将引发更多的程序Cache冲突。为了降低程序Cache的冲突,有一种能够减少访问地址序列的方法,该方法允许在地址缓冲内进行地址作废,由于地址缓冲内的地址尚未进入取指流水线,因此将这种模式命名为早期地址作废模式。通过尽可能早地完成地址作废,这种模式减少了取指单元向程序Cache发送无效取指请求的几率,即降低了访问地址序列的长度。由此,它减少了程序Cache的动态功耗,而且还能提高取指的效率,这对于同时多线程处理器尤为重要。为了实现具有早期地址作废能力的取指流水线,若流水站正在等待程序Cache发送指令,则该站处于阻塞状态。通常,超长指令处理器的Cache访问是不能取消或中止的。因此,当流水站处于阻塞状态时,即使该站的地址是无效地址也无需作废。若一个流水站不处于阻塞状态,则该站是否能够移动不仅取决于自身是否保存了最早的分支目标,还取决于该站下级的状态。以图的情况为例,若Tx时刻程序Cache在处理地址n+1时发生等待,此时地址n+2和n+3分别在流水站1和缓冲1内,则当执行单元执行分支操作时,由于允许无效地址的作废,因此地址n+3将被作废,而分支目标地址m进入缓冲1。在接下来的时间内,流水站1的地址n+2被作废,而流水站2内的地址n+1则由于程序Cache的操作无法取消而不能被作废。从这段时间内发出的访问地址来看,早期地址作废模式仅发出了地址为n+1的访问,而前两种模式还发出了地址为n+2的访问。节拍缓冲1流水站1流水站2流水站3Txn+3n+2n+1Tx +1mn+2n+1Tx +2m+1mn+14 优化Cache配置方法4.1 Cache性能分析为了对Cache缺失率进行深入的研究,从而更好地设计Cache,把所有的缺失可以总结为以下的部分6:1.强制缺失:对块的第一次访问一定不在Cache中,所以该块必须被调入到Cache中,即使Cache的容量是无限大,强制缺失也是必然会发生的。2.容量缺失:如果Cache容纳不了一个程序执行所需要的所有块,将会发生容量缺失,某些块将被从Cache中替换,在随后需要使用的时候再次调入。3.冲突:如果块未采用全相联放置策略,冲突缺失将会发生,如果有太多的冲突块映射到同一组中,产生冲突,则某一块将可能从Cache中替换,在随后需要使用的时候再次调入。最简单的降低缺失率的办法是利用空间局部性原理,增加块容量,过大的块在降低强制缺失的同时,也会增加缺失代价。降低容量缺失的方法是增大Cache的容量,大容量的Cache潜在的缺点是命中时间长,而且价格高,功耗比较大。增加相联度能明显地降低冲突缺失,但较大的相联度也会造成命中时间增大。使用两级的Cache也可以降低缺失率,第一级Cache就可以小到足以跟上快速的CPU的时钟周期,而第二级的Cache能够大到足以支持对存储器进行的大多数访问。多处理器通过指令级和线程级的并行,提高了运行性能和效率,Cache的性能直接影响着程序的执行性能,尤其是L2 Cache的缺失会严重影响整体的性能。L2 Cache失效有强制缺失、共享数据的容量缺失、私有数据的容量缺失三种类型。在对L2 Cache的分析中,用CSEQ(d, n)来表示在一个长度为n的环形访问序列,具有n个不同Cache块,图所示的是有5个环形序列的Cache访问顺序7。图7 环形Cache访问顺序这里使用著名的3Cs模型对Cache的缺失进行分类,为了简化条件,仅研究全相联Cache的情况,通过程序单线程执行的L2 Cache缺失情况来推测多线程处理器执行的情况,由上面提到的环形序列,可以计算出Cache的缺失率:如果同时多个线程在不同的处理器核心上运行,对一个线程的记录会受到其他线程的影响,于是将L2 Cache的引用根据地址分为两种类型:共享数据和私有数据。使用cseqprivate(d,n)和cseqshared(d,n)来代替原来的cseq(d,n)。例如ABCDA中A是共享的,使用的计数器是cseqshared(4,5)。在多个线程运行的情况下,有些强制缺失会因为其他线程的访问而转变为命中,例如有四个共享数据b1、b2、b3和b4,一个线程单独运行的时候会发生四次强制缺失,当有另一个线程运行的时候,可能会读取一些数据,因此第一个线程的强制缺失可能会变成命中,因此需要对前面的缺失率进行修正:4.2 Cache参数配置对于不同的应用程序,可以通过调整Cache参数来减少能量的消耗,因此Cache优化技术需要在保证程序执行性能的基础上尽可能的节省能量。调整Cache的总大小、块大小和相联度这些参数对于特定的应用程序可以节省平均60%的能量消耗。目前的一些方法是通过遍历所有的Cache的参数组合来寻找一个最佳的配置,Platune是一个查找一个层次Cache上的最佳配置的完全遍历的框架,用它来查找的参数组合情况不能太多,否则对于一个很小的程序也需要一到三天的时间,因此必须有减少需要探测的配置空间。Zhang的方法研究Cache三个参数(Cache总大小、块大小和相联度)的影响大小,通过固定其中的两个参数,变化第三个参数可以得到一组缺失率和能量消耗小都比以前小的配置。这个方法可以应用在一层的Cache体系上,通过参数调整可以节省40%的Cache消耗能量。当Zhang的方法应用在两层的Cache上时,会发现效果很差,于是改进的TacT方法产生了。TcaT方法最初将Cache参数设置为最小,先确定第一次层Cache大小,然后是第二层。然后按照次序确定第一层和第二层的块大小和相联度,这个方法首先确定指令Cache的配置,然后再确定数据Cache的配置。而TECH方法认为的探测顺序将会影响到最终的结果,它的方法和TcaT不同,它是按照从最后一层到第一层Cache的顺序进行的8。对所有的Cache的参数组合方式进行遍历并不是一个好的方案,这样会花费很多的时间,检查一个小的范围会是一个合适的选择,图9显示了一种叫做TECH-CYCLES的方案,它同时考虑到了程序运行的时钟数和能量消耗,例如从P点开始进行查找,程序需要C个时钟数和P的能量,可以选择的点有A、B、D,所有可以选择的点的时钟数和能量都要比P点的低,例如不能选择F、H、G,当选择了A点的时候,下次选择的点就要比A点的要低,直到所有的参数都被检查过后,最终的点就被认为是最佳的配置。图9 TECH-CYCLES方案示意图图10表示的是查找一个Cache参数配置的流程,S2表示二级Cache的总大小,S1表示一级Cache的总大小,L2表示二级Cache的块大小,L1表示一级Cache的块大小,A2表示二级Cache的相联度,A1表示一级Cache的相联度。分别用MIN和MAX表示最小和最大值,一个参数增长为原来的2倍或者减少为原来的一半,当一个参数变化的时候,其他的都保持不变。CurrConf中保存着当前配置的6个参数值,从S2开始检测,每次循环将S2变为原来的一半,S2的值确定后,再依次决定S1、L2、L1、A2和A1的值,BestConf中保存最佳的配置,在发现新的更好的配置的时候,都会更新它的值,在分析完所有的参数后,就能得到最佳的参数配置9。图10查找Cache参数配置的流程5 Cache空间压缩技术Cache的设计中需要考虑到访问延迟和能量消耗,设计者需要将数据的读取和标志位的比较分开。L1 Cache的大小会影响访问时间和失效率,增加容量会增加访问时间,较小容量会增加失效率,需要设计一种不影响访问时间的空间压缩技术。在L1 Cache中不能使用复杂的压缩技术,从Cache中解压数据会增加时钟周期,从而增加Cache的访问延迟。例如一个Cache块在压缩的时候,对高位的字节没有加密,这样一个Cache块就由加密和未加密的两种字组成。每个字在Cache块中的偏移量都要根据前一个字来决定,这样在读取一个字的时候就要重新计算偏移量,因此在L1 Cache上的压缩技术不应当更新字节偏移量,这样的压缩技术被称为限制性压缩技术10。实验发现L1 Cache中很大比例的字都是窄的字,在一些块中只有1个或2个常规大小的字。很多压缩技术都是应用在主存或者L2Cache上,这样通过增加容量增加了命中次数,对整理的性能影响不是很大。限制性压缩技术中的窄字可以用16位来表示,通过符号为扩展可以还原成原来的值。一种方式称为AWN,当一个Cache块中的所有字都是窄字的时候对这个块进行压缩,这个Cache块也被称为窄的Cache块。一个物理Cache块可以包含一个正常的Cache块或者最多两个窄的Cache块,如下图11所示。图11下图表示的是增加了标志位的物理Cache块,通过宽度位width bit来区分一个Cache块是普通Cache块还是窄的Cache块,用0来表示普通的Cache块,用1来表示窄的Cache块,宽度位设置为1后,会从Cache块中的两个位置同时读取字,如果没有设置,将读取一个正常的字。AWN采用LRU的Cache替换策略,但做了一定的修改。由于最近最少使用的Cache块可能是窄的或者是普通的Cache块,对于他们要采用不同的替换规则。对于普通的Cache块,一个块的使用情况和物理Cache块的使用情况相同,但对于窄的Cache块,一个物理块中会包含两个窄的块,其中任何一个窄的块最近被使用到,那么整个物理块都应该是最近使用过的,不能被替换掉,这样可以保证AWN技术的性能不比普通的Cache差。图12将一个普通的块写入到窄的Cache块的时候,就会出现问题,这样的情况并不是很多,实验表明仅有2%左右,将一个普通块写入到窄的Cache块的写操作发生时,先将窄的Cache块的数据读出来放到普通的Cache块中,根据LRU会替换一些块,最后将普通的块写入,这样的情况相当于一次Cache缺失。在AWN中的一个物理Cache块中,要求所有的字都是窄字才能使整个Cache块成为窄的Cache块,由于普通字的数量比例很低,这样并没有充分利用空间。AHS(Additional Half-Word Storage)通过增加额外的存储空间和存储标志位来保存普通大小字比窄的字多出来的半个字,这样每个物理Cache块可以保存一个窄的字和一个普通的字,读取增加的半个字和读取整个数据的时间可以重叠起来进行,并不会增加数据访问的延迟。AWN和AHS都增加了标志位的比较,同时增加了L1 Cache上的命中率。对于AWN来说,数据读取的过程和普通Cache相似,但在标志位上多消耗了一点能量。总体来说,L1 Cache上的缺失率下降了,在L2 Cache上的能量消耗会下降,整个系统的能量消耗比以前是下降的。前面提到的AWN和AHS技术都需要增加标志位和进行标志位的比较,有一种方法可以减少增加的标志位所占用的空间和减少标志位的比较11。通过实验发现,一个Cache分组内的地址标志位的前几位都是一样的,因此对于一个物理Cache块,不用提供全部的地址标志位。例如一个普通的Cache块的地址是22位的,AWN和AHS用了24个标志位,其中20个是前面的高位标志位,还有两个2位的低位标志位,如果这个块保存了两个窄的Cache块,那么他们的高20位的都是相同的,通过OATS(Optimizing Address Tags)技术,标志位的比较只用比较2位。6 总结本文主要就同时多线程体系中多个线程的资源共享产生Cache冲突问题展开讨论,在超长指令字处理器体系中设计了局部分布式和全分布式的Cache结构模型,主要包括Cache的映射方法、管理方法和指令的调度方法。通过提高取指单元吞吐率的方法减少同时多线程体系中Cache的冲突。在对Cache的几种缺失进行分析后,对Cache参数进行优化的配置减少能量的消耗,利用空间压缩技术提高了Cache的容量和利用率。参考文献1李祖松,许先超,胡伟武,唐志敏. 同时多微线程体系结构研究. 计算机研究与发展,2007,44(5):768774.2 Enric Gibert, Jesus Sanchez. Antonio Gonzalez. Distributed Data Cache Designs for Clustered VLIW Processors. IEEE TRANSACTIONS ON COMPUTERS, VOL. 54, NO. 10, OCTOBER 2005.3 Li Ou, Xubin (Ben) He, Martha J. Kosa. A Unied Multiple-Level Cache for High Performance Storage Systems. Proceedings of the 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.4 Chuanjun Zhang. Balanced Cache: Reducing Conflict Misses of Direct-Mapped Caches through Programmable Decoders. Proceedings of the 33rd International Symposium on Computer Architecture.5 万江华,陈书明. 一种提高同时多线程 VLIW处理器中取指单元吞吐率的方法. 计算机工程与科学. 2007,29(6).6 Xiaoyu Yao,Jun Wang. Toward Effective NIC Caching: A Hierarchical Data Cache Architecture for iSCSI Storage Servers. Proceedings of the 2005 International Conference on Parallel Processing.7Fengguang Song, Shirley Moore, Jack Dongarra. L2 Cache Modeling for Scientic Applications on Chip Multi-Processors. 2007 International Conference on Parallel Processing.8 Abel Guilhermino Silva Filho, Pablo Viana, Edna Barros, Manoel Eusebio Lima. Tuning Mechanism for Two-Level Cache Hierarchy Intended for Instruction Caches and Low Energy Consumption. Proceedings of the 18th International Symposium on Computer Architecture and High Performance Computing.9 Pierre G. Paulin, Chuck Pilkington, Michel Langevin, Essaid Bensoudane,Damien Lyonnard, Olivier Benny, Bruno Lavigueur, David Lo, Giovanni Beltrame,Vincent Gagn, Gabriela Nicolescu. Parallel Programming Models for a Multiprocessor SoC Platform Applied to Networking and Multimedia. IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 14, NO. 7, JULY 2006.10 Radu Teodorescu,Josep Torrellas. Prototyping Architectural Support for Program Rollback Using FPGAs. Proceedings of the 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.11 万江华,陈书明. MOS I:一种基于超长指令字处理器的同时多线程微体系结构. 计算机学报. 2006,29(3).12 刘利,李文龙,陈或,李胜梅,汤志忠. 软件流水中隐藏存储延迟的方法. 件学报. 2005,16(10).10
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!