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

用于先行执行期间的存储器通信的装置制造方法及图纸

技术编号:2870196 阅读:116 留言:0更新日期:2012-04-11 18:40
一种系统,包含:    存储器;以及    连接到所述存储器的乱序处理器,所述乱序存储器包含:    至少一个执行单元;    至少一个连接到所述至少一个执行单元的高速缓冲存储器;    至少一个连接到所述至少一个高速缓冲存储器的地址源;和    连接到所述至少一个地址源的先行高速缓冲存储器。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及处理器体系结构,并且特别地,涉及具有类似于高速缓冲存储器结构的处理器体系结构,使得可以在先行执行期间进行存储器通信。
技术介绍
当今的高性能处理器通过实施乱序指令执行来容忍等待时间较长的操作。乱序执行机通过使等待时间较长的操作“不阻碍”在指令流中顺序靠后并且与其无关的操作来容忍较长的等待时间。为了实现这一点,处理器将操作缓冲到指令窗口中,该指令窗口的大小决定乱序机可以容忍的等待时间量。不幸的是,由于处理器和存储器速度之间的不断增长的差距,当今的处理器正面临不断增加的更长的等待时间。例如,引起高速缓冲存储器未命中(miss)于主存储器内的操作可能需要花费数百个处理器周期来完成执行。仅通过乱序执行来容忍这些等待时间已经变得很困难,因为它要求更大的指令窗口,而这会增加设计复杂度和功率消耗。为此,计算机体系结构设计师开发了软件和硬件的预取方法来容忍较长的存储器等待时间,下面讨论了其中的几种。存储器访问是研究人员长期关注的一种非常重要的等待时间较长的操作。高速缓冲存储器可以通过利用应用程序的时间和空间参考点来容忍存储器的等待时间。这种高速缓冲存储器等待时间的容忍已经得到了改善,这是通过允许它们处理多个未完成的未命中、并且在存在挂起的未命中时为高速缓冲存储器的命中(hit)进行服务而实现的。对于其中编译器可以静态地预测哪些存储器参考会引起高速缓冲存储器未命中的应用程序来说,软件预取技术是有效的。对于许多应用程序来说,这并不是一个琐碎的任务。这些技术还向应用程序中插入预取指令,增加了指令带宽需求。硬件预取技术使用动态信息来预测预取什么和何时预取。它们不需要任何指令带宽。不同的预取算法覆盖不同类型的访问模式。硬件预取的主要问题是可以覆盖不同类型访问模式的预取器的硬件费用和复杂性。另外,如果硬件预取器的准确度比较低的话,则高速缓冲存储器污染和不必要的带宽消耗会使性能降低。基于线程的预取技术使用多线程处理器上的空闲的线程环境来运行辅助主线程的线程。这些辅助的线程执行为主线程预取的代码。这些技术的主要缺点在于它们需要空闲的线程环境并分享资源(例如,取用和执行带宽),这些在处理器得到良好使用的时候通常是不可得的。先行执行首先是作为用于改善五阶段流水线的按顺序执行机的数据高速缓冲存储器性能的方法而被提出和评价的。它在容忍第一级数据高速缓冲存储器和指令高速缓冲存储器未命中上表现得很有效。按顺序执行不能容忍任何的高速缓冲存储器未命中,而乱序执行可以通过执行与该未命中无关的指令而容忍某个高速缓冲存储器的未命中的等待时间。相似地,乱序执行在没有大的、昂贵的指令窗口的情况下不能够容忍等待时间较长的存储器操作。已经提出了一种在等待时间较长的指令阻塞退出的时候执行将来指令的机制,该机制用于动态地将寄存器文卷的一部分分配给一个将在“主线程”停止的时候开始执行“将来线程”。这种机制要求部分硬件支持两种不同的环境。不幸的是,当资源被分给两个线程的时候,两个线程中的任何一个线程都不能利用机器的全部资源,这将减少将来线程的益处,并增多主线程的停止。在先行执行中,正常模式和先行模式都可以利用机器的全部资源,这帮助机器在先行模式期间进一步向前运行。最后,已经提出可以将依赖于等待时间较长的操作的指令从(相对较小的)调度窗口移走,并将其放置在(较大的)等待指令缓冲器(WIB)中,直到该操作得到完成,此时可将指令移回调度窗口。这结合了大指令窗口的容忍等待时间的好处和小调度窗口的快速周期时间的好处。但是,它仍然要求大的指令窗口(以及大的物理寄存器文卷),及其相关的费用。附图说明图1是根据本专利技术的一种实施方案的包含一种体系结构状态的处理系统的框图,该体系结构状态包含处理器寄存器和存储器。图2是根据本专利技术的一种实施方案的用于图1的处理系统的示例性处理器结构的详细框图,该处理器结构具有先行高速缓冲存储器结构。图3是根据本专利技术的一种实施方案的图2的先行高速缓冲存储器部件的详细的框图。图4是根据本专利技术的一种实施方案的用于图1的先行高速缓冲存储器的示例性标签阵列结构的详细框图。图5是根据本专利技术的一种实施方案的用于图1的先行高速缓冲存储器的示例性数据阵列结构的详细框图。图6是根据本专利技术的一种实施方案的使用先行执行模式来防止处理器中的阻塞的方法的详细流程图。具体实施例方式根据本专利技术的一种实施方案,为了容忍等待时间非常长的操作,可以使用先行执行来替代构建较大的指令窗口。代替使等待时间较长的操作“不阻碍”的操作(这要求把它和跟在它后面的指令缓冲到指令窗口),乱序执行处理器上的先行执行可以简单地将其丢弃出指令窗口。根据本专利技术的一种实施方案,当指令窗口被等待时间较长的操作所阻塞的时候,体系结构的寄存器文卷的状态可被按点检查。然后处理器可进入“先行模式”,并且可以发布用于阻塞操作的假的(即,无效的)结果,并且可以将该阻塞操作丢弃出指令窗口。然后可以取用、执行跟在阻塞操作后面的指令,并使该指令从指令窗口伪退出。“伪退出”意味着指令可以得到传统意义上的执行和完成,只是它们不更新体系结构的状态。当完成了阻塞指令窗口的等待时间较长的操作时,处理器可以重新进入“正常模式”,并且可以恢复按点检查的结构体系状态以及预取和重新执行以阻塞操作开始的指令。根据本专利技术的一种实施方案,按照先行执行模式的好处在于将受等待时间较长的操作阻塞的小指令窗口转变为无阻塞的窗口,使它具有更大的窗口的性能。可在先行模式期间取用和执行指令,来为数据和指令高速缓冲存储器创造非常准确的预取。这些好处是以适度的硬件成本为代价换来的,这一点将在后面得到描述。根据本专利技术的一种实施方案,只有在第二级(L2)高速缓冲存储器中未命中的存储器操作可以得到评价。但是,所有其它的实施方案可以在阻塞处理器中的指令窗口的任意等待时间较长的操作的时候被启动。根据本专利技术的一种实施方案,处理器可以是Intel体系结构32位(IA-32)指令集体系结构(ISA)处理器,该处理器由位于加利福尼亚的圣克拉拉的Intel公司制造。相应地,这里详细描述的所有微体系结构参数(例如指令窗口大小)以及IPC(每周期指令数)性能也是就微操作而言进行报道的。具体地,在基于具有128个条目的指令窗口的IntelPentium4处理器的基线机器模型中,目前的乱序执行机通常不能容忍较长的主存储器等待时间。但是,先行执行通常可以更好地容忍这些等待时间并且实现具有更大的指令窗口的机器的性能。一般情况下,具有理想的存储器等待时间的基线机器的IPC性能是0.52,而具有100%的第二级高速缓冲存储器命中率的机器的IPC是1.26。添加先行操作可以使基线机器的IPC增加22%到0.64,这位于具有384个条目的指令窗口的相同机器的IPC的1%之内。通常情况下,乱序执行通过调度那些不依赖于高速缓冲存储器的未命中操作来比按顺序执行更好地容忍高速缓冲存储器的未命中。乱序执行机使用两个窗口来实现这一点一个指令窗口和一个调度窗口。指令窗口可以保持所有已经得到译码、但尚未提交至体系结构状态的指令。大体上说,该指令窗口的主要目的是保证指令的按顺序退出,以便支持准确的异常事件。类似的,调度窗口可以保持指令窗口中的指令的一个子集。大体上说,调度窗口的主要目的是在每个周期对它的本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:J·W·斯塔克C·B·维尔克森O·穆特卢
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1