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

在多个并行的前端管道之间保持数据的同步的系统和方法技术方案

技术编号:2885432 阅读:160 留言:0更新日期:2012-04-11 18:40
本文叙述了一种对通过多个并行操作的前端管道(410)传播的信息保持同步的系统和方法。概括来说,这些多个管道因某个阻塞条件(460)而变得不同步,通过清理两个前端管道以及通过在不同时段有选择地将这些前端管道(410)从它们的阻塞条件中释放(470),重新建立同步。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及电子学领域。更具体来说,本专利技术涉及一种对通过多个并行管道传播的信息保持同步的系统和方法。早期的微处理器包含被安排成能顺着指令管道顺序地处理指令的电路。为了提高效率,更新的微处理器(称为“管道式微处理器”)已经被设计成同时对几个指令操作。这是通过重叠在指令管道的各“前端”阶段(即最初几个处理阶段)所执行的诸操作以及在指令管道的各“后端”阶段(即最后几个处理阶段)所执行的诸操作而实现的。此外,还可以将所选择的处理阶段划分成若干子阶段,以进一步提高性能,正如在管道程度很深的微处理器(如位于美国加州Santa Clara的英特尔公司生产的Pentium Pro或Pentium Ⅱ处理器)中的那样。直到现在,对多前端管道的需求还没有表现出来。目前,微处理器中缺少多前端管道的原因可能是复杂性或者与体系结构的不适应性。如果两个或更多并行的前端管道在运行(即执行它们自己的任务但是针对的是相同的指令指针“IP”),这些前端管道的每个对应阶段都必须在有效性和信息内容上匹配。所以,要求前端管道保持相互之间的同步关系。如果要实行多前端管道,则支持前端管道的逻辑结构的大小有可能会使它们不能被安置在互相非常邻近的位置。这会导致从一个前端管道向另一个传输事件时的延迟。“事件”的例子可包括(1)阻塞条件,它中止信息(例如一个或多个指令指针“IP”)在这些前端管道中的传播,直到该阻塞条件被撤销;或者(2)清理条件,它通常导致在某前端管道的各前端阶段中留下的所有信息被无效掉。由于事件是先由一个前端管道检测到、再由另一个检测到的,在一个前端管道中的信息会变得与该另一个前端管道的相应信息不一致。这样,这些前端管道就会变得不同步。所以,最好能提供一种保持多个前端管道的各前端阶段的同步、并在某个可能导致前端管道暂时变得彼此之间不同步的事件发生之后提供同步方案的系统和方法。在一个实施例中,描述了一种对通过多个并行操作的前端管道传播的信息保持同步的方法。概括来说,这些前端管道因某个事件而变得彼此之间不同步。之后,执行若干操作,使这些前端管道彼此之间同步。通过以下对本专利技术实施例的详细说明,本专利技术的特点和优点将变得显而易见,其中附图说明图1是以适合处理多个并行前端管道的微处理器实现的电子系统的框图。图2是图1的微处理器中的多指令管道的前端部分的框图。图3是在图1的微处理器内部实现的、用于重新同步图2的多个并行前端管道的逻辑电路的框图。图4是为保持多个并行前端管道之间的信息的同步而执行的操作步骤的示意性流程图。图5是响应第一前端管道中起源的TLB_MISS阻塞条件的图4的同步方案的示意性实施例。图6是响应第二前端管道中起源的MIQ_FULL阻塞条件的图4的同步方案的示意性实施例。图7是响应第一前端管道中起源的ICACHE_MISS阻塞条件的图4的同步方案的示意性实施例。图8是响应转移目标缓冲器(BTB)预测与ICACHE_MISS阻塞条件的组合的图4的同步方案的示意性实施例。本说明书描述一种对通过多个并行操作的指令管道的各前端阶段传播的信息进行同步的系统和方法。概括来说,这些多个管道因某个阻塞条件而变得不同步,通过清理(flushing)两个前端管道以及通过在不同时段有选择地将这些前端管道从它们的阻塞条件中释放,重新建立同步。本文中经常用若干术语来描述某些硬件和特征。例如,“微处理器”是具有信息处理功能的单一集成电路(IC)的部件或多IC的部件。“电子系统”在广义上被定义为特征是有微处理器的任何产品,诸如任何类型的计算机(例如桌面机、膝上型、手体式、服务器等等)、无线电话和任何其它外设。“信号线路”在广义上被定义为任何信息载体,诸如一路或多路电线、总线(bus traces)、光纤以及无线通信频道。“信息”包括数据、有效性和/或地址(例如指令指针“IP”)和/或控制(例如操作码)。IP“较年轻”和“较老”,分别用来表示某IP是在另一个IP之前还是之后插入同一个前端管道中的。参看图1,该图显示了具有本专利技术特点的电子系统100的示意性实施例。电子系统100包括至少一个与信号线150(诸如适合芯片集的处理机总线)相连的微处理器110。微处理器110包含的第一电路120和第二电路130,前者用于控制通过图2的第一(增强模式“EM”)前端管道(称为“第一前端管道”)200的前端阶段的信息的传播,后者用于控制通过图2的第二(英特尔值引擎“IVE”)前端管道(称为“第二前端管道”)250的各前端阶段的信息的传播。第一和第二电路120和130通过如图3中所述的接口140连接在一起。如图中虚线所示,在电子系统100中可以考虑实现“n”个微处理器(n是正整数)。如图1中所示,第一电路120包括至少一个或多个信息存储单元121(例如指令高速缓存“I-cache”和/或翻译后备缓冲器“TLB”)和一个历史队列122。历史队列122用于向第一前端管道200某选定处理阶段(诸如下面在图2中所说明的“IPG”阶段)的IP插入。尽管图中未予表示,历史队列122的一个实施例包含一个多路转换器和一个存储单元。多路转换器包含至少两个输入-其中一个输入被配置成接收未排队的IP,另一个输入与该存储单元相连。多路转换器的选择,由第一电路120根据阻塞条件的激活或去激活来控制。存储单元可以包含一个缓冲器,缓冲器中含有选定个数的比基准IP更年轻的IP。这便于历史队列122保存一个前端管道阶段中的至少两个周期的信息。第二电路130包括按指令提取单元(IFU)操作的电路、转移目标缓冲器(BTB)和溢出缓冲器131。IIP阶段连续地生成一连串排列好的(aligned)、向前穿过第二前端管道250的IP。BTB单元除了转移预测这个主要职责外,还处理同步。溢出缓冲器131临时存储最后一个时钟周期中“FE3”阶段的信息输出,如图2中所示。溢出缓冲器131提供了一种检索过早“溢出”(即传播出)图2的第二前端管道250的信息的手段。这些电路120和130与图2的前端管道200和250相对应,它们相隔的一段物理距离,会导致涉及一个前端管道的某个事件(例如阻塞、清理等等)一直要到下一个时钟周期才能被另一个前端管道检测到。这导致这些前端管道变得异步,并且-如下文所述-要求有电路和相应方法来重新同步这些前端管道。现在参看图2,该图显示了第一前端管道200和第二前端管道250二者中的各阶段。在一个实施例中,第一前端管道200的处理阶段包括输入指令指针(IIP)阶段210、指令指针生成(IPG)阶段220、提取(FET)阶段230和滚动(ROT)阶段240。在IIP阶段210期间,指令指针(IP)被生成并插入第一前端管道200,供以后用于从存储单元(诸如I-cache、TLB和/或任何其它类型的存储器)获取信息。在IPG阶段220期间,图1的微处理器110可以在向FET阶段230传送期间置换比IIP阶段210中的当前IP更老的IP。这种替换通常要从历史队列122提供,以避免发生盖写条件-如图5中所示,当第一前端管道200即使在被阻塞之后也能接受新数据时,就会发生盖写条件。这就便于在发生阻塞条件期间落后第二前端管道250一个时钟周期的第一前端管道200变得更加容易与第二前端管道250重新同步。在F本文档来自技高网...

【技术保护点】
一种方法,包含的各步骤是: 沿多个前端管道推进相应的信息,多个前端管道是并行和互相同步的; 多个前端管道每个经历一个事件,该事件导致多个前端管道变得互相不同步; 执行多个操作来使多个前端管道互相同步。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:KN穆尔蒂NA蔡迪DS沙TY耶
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1