裸露向量管线之间的链接的制作方法

文档序号:6539564阅读:152来源:国知局
裸露向量管线之间的链接的制作方法
【专利摘要】本发明涉及裸露向量管线之间的链接。各实施例包括一种用于在裸露管线处理元件中链接数据的方法。所述方法包括:将多指令字分隔成第一子指令和第二子指令;在所述裸露管线处理元件中接收所述第一子指令和所述第二子指令。所述方法还包括在第一时间发出所述第一子指令;在不同于所述第一时间的第二时间发出所述第二子指令,所述第二时间被偏移以考虑所述第二子指令对来自所述第一子指令的第一结果的依赖性;第一管线在第一时钟周期执行所述第一子指令以及将执行所述第一子指令的所述第一结果传送到与所述第一管线和第二管线相连的链接总线,在位于所述第一时钟周期之后且与所述第一管线中的锁存管线级的总数对应的第二时钟周期执行所述传送。
【专利说明】:口可以是数百个周期,其中包括认识到数据块或其它封装从主处理器的处理器核到1/字储器的通道的仲裁时间,以及将数据放入
、存储访问的向量处理器。支持对多个存储3增加。
里元件中链接数据的系统和方法。所述方法? ;在所述裸露管线处理元件中接收所述第芒第一时间发出所述第一子指令;在不同于所述第二时间被偏移以考虑所述第二子指第一管线在第一时钟周期执行所述第一子果传送到与所述第一管线和第二管线相连所述第一管线中的锁存管线级的总数对应3第二管线位于不同的寄存器文件空间内。丨勺管线,以使管线在所有必要的结果到达之执行链接。在一个实施例中,功能单元之间客中提供,该向量处理器具有编译器排定的.分解横向微编码指令(也称为“多指令字”)结果可用。各实施例不需要将指令分割成以便指示依赖管线中的指令何时可开始使I结果保存到寄存器的情况下,使来自一个通过传统的微处理器设计实现每次计算的-数器提供对向量寄存器元件的访问。向量亡件的索引关联,其中索引元件被用于指令?编译器或用户调节软错误。
-管线的链接结果的管线被暂停,直到可从泛实现,这组位指示指令必须等待哪些链接吉果在链接总线上被标记为有效,指令便可-在同一周期中启动,步伐一致地执行操作,I源存储器件,这些操作集使用有源存储器1)作为操作数。此外,提供处理,从而对有I作。具体而言,指令存储在有源存储器件皮提供给处理元件,以便由有源存储器件中可编程引擎,包括指令缓冲器、具有分支功8寄存器文件的混合物、多个用于在存储器以及多个用于各种数据类型的算术和逻辑1将虚拟地址转换为物理地址的地址转换功匕一加载/存储队列,以及用于与主处理器为在接收来自外部请求者(例如,主处理器器件的一部分的配置信息或指令加载到处時换,这些转换在执行已加载的指令之时计〔储器件从存储位置存取操作数并将操作数1址由加载指令生成并被处理元件转换为实#将具有内容(例如,操作数)的存储位置写二 108的功能的情况下,与计算机处理器102;包含要写入存储器106的数据和用于识别I控制器104在存储器106内的实地址处存32可以将虚拟地址映射到存储器106内的欠存储器106中的数据时更改。
卜几处理器102通信并且从计算机处理器102I指令以执行对将要写入存储器106的数据存储器106中将要写入数据的位置。存储句的实地址处存储数据。在一个实施例中,映射到存储器106中的实地址。如下面进堤供给存储器106,在此,处理元件108接收是可用于执行此处描述的处理的配置的一106、存储控制器104、处理元件108和计算'存储器106、存储控制器104、处理元件108茫中操作。在一个实施例中,存储器106、存处理器222相连。互联网络212提供快速的高带宽路径以实现器件的各部分(例如,处理元件、存储控制器和存储器)之间的通信,从而提供有源存储器的改进性能并缩短其延迟。
[0028]有源存储器件203包括存储库226、存储控制器228和处理元件230。在一个实施例中,处理元件230、存储库226和存储控制器228均位于互联网络212的同一侧,例如位于单个叠层内。通过将处理元件230与存储库226置于同一叠层内,在访问存储库226内的位置时缩短延迟,这样进一步提高性能。在一个实施例中,有源存储器204包括存储库214和通过互联网络212与处理元件210和处理元件218相连的存储控制器216。如图所示,处理元件218位于互联网络212的另一侧,与存储控制器216和存储库214不在一侧。在各实施例中,有源存储器件202、203和204包括多层层叠的可寻址存储元件。进一步地,叠层存储器可被分成存储库206、226和214,或者存储器件的三维分块区域,这些三维分块区域共享公共存储控制器和/或存储元件,并且能够将存储访问请求相互独立地提供给它们各自的存储域。
[0029]在各实施例中,处理元件、存储库和存储控制器可以通过适当的方式排列,具体取决于应用。例如,诸如处理元件218之类的一个或多个处理元件可以位于互联网络212的一侧,并且可以作为处理元件池执行操作,这些处理元件可用于访问与互联网络212相连的存储系统中的任何存储器。形成池的处理元件不限于访问特定的存储库,因此,可在从主处理器224接收命令时使用一个或多个元件。相应地,处理元件218可被配置为访问每个存储库206、226和214。在另一实施例中,诸如处理元件230之类的一个或多个处理元件作为包括存储库226和存储控制器228的叠层的一部分放置。在这样的配置中,处理元件230被配置为访问与互联网络212相连的存储库226,其中包括存储库206和214。在一个实施例中,诸如处理元件210之类的一个或多个处理元件被置于互联网络212的另一侧,与存储库206和存储控制器208不在一侧。在该配置中,处理元件210被配置为访问任何与互联网络212相连的存储器,其中包括存储库226和214。
[0030]在一个实施例中,计算机系统可以包括多个有源存储器件,例如有源存储器件202、203和204。此外,每个有源存储器件可以包括多个叠层,每个叠层包括存储库、存储控制器和关联的处理元件。在一个实例中,处理元件的数量可以大于存储库的数量。在另一实施例中,存储器件可以包括少于存储库的处理元件。在一个实施例中,处理元件形成池并可用于访问系统中的任何存储器。例如,存储器件可以包括16个存储库和存储控制器,但是仅包括八个处理元件。八个处理元件形成池,被用作访问与互联网络相连的任何存储库的资源。在另一实例中,存储器件可以是无源存储器件,其中该器件由与互联网络相连的有源存储器件的处理元件控制。
[0031]图3是实现有源存储器的一个示例性计算机系统300的示意图。计算机系统300包括电路板302、主处理器304、有源存储器件306和有源存储器件308。有源存储器件306、有源存储器件308和主处理器304位于电路板302上。如图所示,有源存储器件306和308的各部分被进行分解以示出计算机系统300的排列细节。有源存储器件306和308分别通过信号路径324和344与主处理器304通信。如图所示,有源存储器件306排列为多个层,其中基层311包括多个存储控制器310和处理元件312。例如,有源存储器件306包括存储层309,该层位于基层311上面,其中层309均具有多个存储元件。如图所示,基层311还包括互联网络346以实现器件中的存储器、存储控制器与处理元件之间的高带宽通信。这样,处理元件320提供指令加载、地址转巨迟、节省电力并释放主处理器304以执行置于基层331上的存储控制器328和处理,括被置于基层331上面的存储器件层329,I括互联网络346以实现器件内的存储器与有源存储器件306和有源存储器件308的二的存储器之间的通信。
括多个存储库332,其中每个存储库332包存储控制器328和处理元件330放置。示[叠层334,叠层334包括被置于存储控制器通信路径342提供处理元件330与存储库:件实例400,作为图1-3的处理元件之一的:理元件400)可位于有源存储器件(例如图,线序列裸露,以便编程器或编译器可以在
[0036]处理元件400支持指令集架构,包括针对许多数据类型的广泛算术功能。处理元件400的向量处理能力支持时间维度的单指令多数据(SMD),同时也支持空间维度的SIMD0指令缓冲器406保存指令(也称为“通道指令”),这些指令将针对分支被取回和按序执行。
[0037]在一个实施例中,每个通道指令包含9个子指令,用于在处理元件400内的各个单元中执行。迭代计数可以包括在通道指令内,它允许子指令重复执行到预定的次数(例如,达到32次)。这促进时间维度上的SMD。IXU408可以管理迭代计数并判定何时前进到下一指令或重复执行同一指令。在一个实施例中,ALU418的算术管线为64位宽,并且借助作为多个执行槽同时并行地执行小于64位的数据类型来支持空间SMD。例如,假设通道指令包括9个子指令,则这些子指令的执行可以在LCU408中实施,从而实现通道控制,在四个处理片中,每个处理片都包括ALU418和LSU420。VCR414和SCR416对可以根据处理片实现并且由每个ALU418和LSU420对访问。相应地,VCR414、SCR416、ALU418、LSU420以及关联的复用器被示为叠层,这些叠层具有四个元件以指示图4的实例中的4个处理片。
[0038]在处理片级,计算可以在浮点和定点数据类型上执行,这些计算例如在64位向量元件上以时间SMD的方式,以及在较窄的向量子元件(例如,可以是32位、16位或8位宽)上以时间和空间SMD的方式通过64位粒度实现。
[0039]处理元件400内的每个处理片包括存储访问管线(加载/存储管线)和算术管线。通过作为加载/存储管线的LSU420管理流可允许按向量数据元件或子元件计算一个地址。处理元件400提供执行关联的定点有效地址(B卩,虚拟地址)计算的能力。通过ALU418的算术管线可以包括稳定的浮点和定点运算组合以支持各种工作负荷。
[0040]LSU420可以支持与具有封装数据的寄存器之间进行例如8、4、2和I字节加载和存储操作以及4、2和I字节的加载和存储操作。
[0041]ALU可以支持寄存器文件之间的复制操作、对双精度(64位)和单精度(32位)浮点数据类型的算术、舍入和转换、比较以及最大化和最小化运算,以及对双字(64位)、字(32位)、半字(16位)以及字节(8位)的定点数据类型的算术、旋转/移位、比较、逻辑、前导零计数和I填充计数运算。
[0042]在一个实施例中,处理元件400内处理片的计算模型是具有VCR414和SCR416的向量单指令多数据(SMD)模型。VCR414可以支持多维寄存器,而SCR416支持单维寄存器。例如,VCR414可以包括16个带有32个元件的向量寄存器项,每个元件具有64位,SCR416可以包括16个带有I个元件的寄存器项,每个元件具有64位,但是也支持多种其它配置。可使用数量变化的执行槽,对相等数量的子元件执行操作,借此使子元件加在一起成为一个寄存器元件(VCR414或SCR416),在该实例中,此元件具有64位。执行槽的数量以及对应的向量子元件的数量取决于指令的数据类型。数据类型及各种格式大小的实例包括:具有双精度(64-位)和单精度(32-位)的浮点数据类型以及双字(64位)、字(32位)、半字(16位)以及字节(8位)的定点数据类型。
[0043]图5是具有提供管线之间操作数传送的链接总线502的示例性处理元件500的示意图。处理元件500包括第一管线504、第二管线506和第三管线508。在一个实施例中,管线504、506、508均具有六个级,其中管线表示图4的ALU418的裸露管线。在另一实施例中,管线504、506、508表示图4的LSU420的裸露管线。在一个实施例中,管线可以从指令上。在一个实施例中,在第一管线中执行的第一子指令的结果作为依赖于第一子指令奪二子指令具有源字段,该字段指示第二子艮作为输入。在一个实施例中,子指令可以:、526处或附近暂停。裸露向量管线的每个《赖子指令。链接总线502可以包括必要的线并且链路总线502具有三个对应的链接
-时间周期执行第一子指令,其中要由第二I。因此,在第一结果(例如“八”)被通过通信由第二管线506在第二时间周期执行。第匕然后当第一结果在链接总线502上可用沲例中,第一结果经由通信链路528被提供,第二子指令可由第二管线506执行并且产二寄存器文件518的第二结果。来自第二子1'间周期执行的第三子指令的操作数。如此行第一子指令。在方框610,第一管线将在第二时钟周期执行第一子指令的第一结果传送到与第一管线和第二管线相连的链接总线,其中第二时钟周期对应于第一管线中的锁存管线级的总数。在方框612,第二管线在第二时钟周期接收第二子指令,第二时钟周期位于第一时钟周期之后。在方框614,第二管线基于经由链接总线接收到第一结果,在第二时钟周期执行第二子指令。在方框616,执行子指令以经由链接总线提供依赖子指令的操作数的过程(类似于步骤604至614)可针对第二子指令(产生结果或操作数)和在第三管线上执行的第三子指令(依赖于该结果)重复。在一个实施例中,编译器接收多指令字并插入“nop”作为依赖于执行子指令的其它管线结果的管线指令。这样,当第一子指令在第一时钟周期在第一管线中执行时,第二管线在第一时钟周期执行nop。之后,例如在第二时钟周期,第二管线接收第一子指令的结果并执行第二子指令(而不是nop)。此外,第一子指令仍可以在第二时钟周期在第一管线处执行,其中索引计数到来自向量寄存器的第二元件输入,以便由第一管线再次执行第一指令。第一指令针对第二输入的结果然后经由链接总线502传送或者在第三时钟周期链接到第二管线,在第二管线处,使用该结果针对第二索引执行第二子指令。
[0047]需要指出,此处描述的链接方法和系统(例如,图6和7)在具有两个管线的系统中执行,其中这两个管线位于不同的寄存器文件空间内。不同的寄存器文件空间意味着在没有链接机制的实施例中,第一管线不能通过访问写入第二管线的寄存器文件,反之亦然(SP,两个管线无法访问彼此的数据集)。在使用链接机制的实施例中,结果数据经由链路总线直接被传送到另一管线,不需要将数据写入文件位置,这提高了指令执行速度。对于具有不同寄存器文件空间的实施例,结果数据被管线提供给另一管线,后者一般无权经由公共寄存器访问结果。在管线位于不同寄存器文件空间内的实施例中,管线针对与另一寄存器文件空间内的管线关联的寄存器文件只能执行读取功能。这样,链接机制允许在无法将数据写入不同寄存器文件空间的管线之间提供数据。
[0048]图7是用于在裸露管线处理元件中链接数据的示例性方法、计算机程序产品和系统的流程图700。在方框702,在裸露管线处理元件的指令缓冲器中接收多指令字,其中多指令字包括第一子指令和第二子指令。在方框704,第一管线接收要在第一时钟周期执行的第一子指令。在方框706,第二管线接收要在第一时钟周期之后的第二时钟周期执行的第二子指令。在方框708,第一管线在第一时钟周期执行第一子指令。在方框710,暂停在第一时钟周期执行第二子指令,其中第二子指令依赖于来自第一子指令的结果。当在管线处暂停子指令时,管线不在指令暂停的时钟周期执行指令。第二子指令可以在第二管线处暂停或者在第二管线之前暂停(例如,在位于504、506、508的锁存器级之后或者在管线前面的复用器544、546、548之前的锁存器中)。暂停可以通过对锁存器执行时钟门控,以便它们在管线解除暂停(离开已暂停状态)之前保持当前状态来实现。在方框712,第一管线将在第二时钟周期执行第一子指令的第一结果传送到与第一管线和第二管线连接的链接总线,其中第二时钟周期对应于第一管线中的锁存管线级的总数。在方框714,第二管线基于经由链接总线接收到第一结果,在第二时钟周期执行第二子指令。在方框716,执行子指令以经由链接总线提供依赖子指令的操作数的过程(类似于步骤704至714)可针对第二子指令(产生结果或操作数)和在第三管线上执行的第三子指令(依赖于所述结果)重复。
[0049]图8是硬件中执行在裸露管线处理元件中链接数据的方法的逻辑操作800的示意图。在方框802,启动在处理元件上执行的程序,其中第一多指令字(MIW)被从指令缓冲器因为依赖第二子指令的第二迭代结果而需5述的步骤序列。在方框818检测到第一子一 III是否包含分支指令,如果包含,则处爸代,然后在方框802取回第二 III。如果第缓冲器540中的第二 III取回并解码第三指令。类似地,如果第一 III不包含分支指?可用于从指令缓冲器540中的第二 III取1行其当前子指令的所有迭代。管线中的子I仅当子指令之间存在依赖性时,执行才被找I例并且并非旨在作为本发明的限制。如I在同样包括复数形式,除非上下文明确地灯吾“包括”和丨或“包含”指定了声明的特是并不排除一个或多个其他特征、整数、步
0
噪作以及所有功能性限定的装置或步骤的质,该计算机可读介质可以发送、传播或者者与其结合使用的程序。
以用任何适当的介质传输,包括一但不限合适的组合。
意组合来编写用于执行本发明的各个方面;括面向对象的程序设计语言一诸如拓妨、计语言一诸如“0”语言或类似的程序设计\部分地在用户计算机上执行、作为一个独詩呈计算机上执行、或者完全在远程计算机远程计算机可以通过任意种类的网络一包十算机,或者,可以连接到外部计算机(例如:置(系统)和计算机程序产品的流程图和/!图和/或框图的每个方框以及流程图和/'令实现。这些计算机程序指令可以提供给.装置的处理器,从而生产出一种机器,使得序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
【权利要求】
1.一种用于在裸露管线处理元件中链接数据的方法,所述方法包括: 将多指令字分隔成第一子指令和第二子指令; 在所述裸露管线处理元件中接收所述第一子指令和所述第二子指令; 在第一时间发出所述第一子指令; 在不同于所述第一时间的第二时间发出所述第二子指令,所述第二时间被偏移以考虑所述第二子指令对来自所述第一子指令的第一结果的依赖性; 由第一管线在第一时钟周期执行所述第一子指令; 由所述第一管线将执行所述第一子指令的所述第一结果传送到与所述第一管线和第二管线相连的链接总线,在位于所述第一时钟周期之后且与所述第一管线中的锁存管线级的总数对应的第二时钟周期执行所述传送,所述第一管线和第二管线位于不同的寄存器文件空间内; 由所述第二管线在所述第二时钟周期接收所述第二子指令;以及 由所述第二管线在所述第二时钟周期执行所述第二子指令,所述执行基于经由所述链接总线接收到所述第一结果。
2.根据权利要求1的方法,其中将所述多指令字分隔成所述第一子指令和所述第二子指令进一步包括:由编译 器将所述多指令字分隔成所述第一子指令和所述第二子指令。
3.根据权利要求2的方法,其中将所述多指令字分隔成所述第一子指令和所述第二子指令进一步包括:在所述第二管线在所述第二时钟周期执行所述第二子指令之前,插入无操作指令以便由所述第二管线在所述第一时钟周期执行,并且其中所述第一管线在所述第二时钟周期期间执行所述第一子指令的第二索引。
4.根据权利要求1的方法,其中发出所述第一子指令包括接收具有目的地字段的子指令,该目的地字段指示所述第二管线具有所述第一子指令的所述第一结果作为输入。
5.根据权利要求4的方法,其中发出所述第二子指令包括接收具有源字段的子指令,该源字段指示所述第二子指令具有来自所述第一管线的所述第一结果作为输入。
6.根据权利要求1的方法,其中分隔所述多指令字进一步包括将所述多指令字分隔成所述第一子指令、所述第二子指令和第三子指令;以及 所述方法还包括: 由所述第二管线将在第三时钟周期执行所述第二子指令的第二结果传送到与第三管线相连的所述链接总线,所述第三时钟周期对应于所述第二管线中的锁存管线级的总数; 在所述第三时钟周期接收所述第三子指令,所述第三时钟周期位于所述第二时钟周期之后;以及 由所述第三管线基于经由所述链接总线接收到所述第二结果而执行所述第三子指令。
7.根据权利要求1的方法,其中分隔所述多指令字进一步包括将所述多指令字分隔成所述第一子指令、所述第二子指令和第三子指令; 所述方法还包括: 在第三时钟周期接收所述第三子指令,所述第三时钟周期在所述第一时钟周期之后并且在所述第二时钟周期之前; 由第三管线执行所述第三子指令; 由所述第三管线将在第三时钟周期执行所述第三子指令的第二结果传送到与所述第三管线相连的所述链接总线,所述第三时钟周期对应于所述第三管线中的锁存管线级的总数;并且 其中由所述第二管线基于经由所述链接总线接收到所述第一结果而执行所述第二子指令进一步包括:基于经由所述链接总线接收到所述第一结果和第二结果而执行所述第二子指令。
8.一种用于在裸露管线处理元件中链接数据的系统,所述系统包括: 位于不同寄存器文件空间内的第一管线和第二管线,所述系统被配置为执行一种方法,所述方法包括: 将多指令字分隔成第一子指令和第二子指令; 在所述裸露管线处理元件中接收所述第一子指令和所述第二子指令; 在第一时间发出所述第一子指令; 在不同于所述第一时间的第二时 间发出所述第二子指令,所述第二时间被偏移以考虑所述第二子指令对来自所述第一子指令的第一结果的依赖性; 由第一管线在第一时钟周期执行所述第一子指令; 由所述第一管线将执行所述第一子指令的所述第一结果传送到与所述第一管线和第二管线相连的链接总线,在位于所述第一时钟周期之后且与所述第一管线中的锁存管线级的总数对应的第二时钟周期执行所述传送,所述第一管线和第二管线位于不同的寄存器文件空间内; 由所述第二管线在所述第二时钟周期接收所述第二子指令;以及 由所述第二管线在所述第二时钟周期执行所述第二子指令,所述执行基于经由所述链接总线接收到所述第一结果。
9.根据权利要求8的系统,其中将所述多指令字分隔成所述第一子指令和所述第二子指令进一步包括:由编译器将所述多指令字分隔成所述第一子指令和所述第二子指令。
10.根据权利要求9的系统,其中将所述多指令字分隔成所述第一子指令和所述第二子指令进一步包括:在所述第二管线在所述第二时钟周期执行所述第二子指令之前,插入无操作指令以便由所述第二管线在所述第一时钟周期执行,并且其中所述第一管线在所述第二时钟周期期间执行所述第一子指令的第二索引。
11.根据权利要求8的系统,其中发出所述第一子指令包括接收具有目的地字段的子指令,该目的地字段指示所述第二管线具有所述第一子指令的所述第一结果作为输入。
12.根据权利要求11的系统,其中发出所述第二子指令包括接收具有源字段的子指令,该源字段指示所述第二子指令具有来自所述第一管线的所述第一结果作为输入。
13.根据权利要求8的系统,其中分隔所述多指令字进一步包括将所述多指令字分隔成所述第一子指令、所述第二子指令和第三子指令;以及 所述方法还包括: 由所述第二管线将在第三时钟周期执行所述第二子指令的第二结果传送到与第三管线相连的所述链接总线,所述第三时钟周期对应于所述第二管线中的锁存管线级的总数; 在所述第三时钟周期接收所述第三子指令,所述第三时钟周期位于所述第二时钟周期之后;以及 由所述第三管线基于经由所述链接总线接收到所述第二结果而执行所述第三子指令。
14.根据权利要求8的系统,其中分隔所述多指令字进一步包括将所述多指令字分隔成所述第一子指令、所述第二子指令和第三子指令; 所述方法还包括: 在第三时钟周期接收所述第三子指令,所述第三时钟周期在所述第一时钟周期之后并且在所述第二时钟周期之前; 由第三管线执行所述第三子指令; 由所述第三管线将在第三时钟周期执行所述第三子指令的第二结果传送到与所述第三管线相连的所述链接总线,所述第三时钟周期对应于所述第三管线中的锁存管线级的总数;并且 其中由所述第二管线基于经由所述链接总线接收到所述第一结果而执行所述第二子指令进一步包括:基于经由所述链接总线接收到所述第一结果和第二结果而执行所述第二子指令。
15.一种用于在裸露管线处理元件中链接数据的方法,所述方法包括: 在所述裸露管线处理元件的指令缓冲器中接收多指令字,所述多指令字包括第一子指令和第二子指令; 由第一管线接收所述第一子指令; 由第二管线接收所述第二子指令,所述第一管线和第二管线位于不同的寄存器文件空间内; 由所述第一管线在第一时钟周期执行所述第一子指令; 在所述第一时钟周期暂停执行所述第二子指令,所述第二子指令依赖于来自所述第一子指令的第一结果; 由所述第一管线将执行所述第一子指令的所述第一结果传送到与所述第一管线和第二管线相连的链接总线,在位于所述第一时钟周期之后且与所述第一管线中的锁存管线级的总数对应的第二时钟周期执行所述传送;以及 由所述第二管线在所述第二时钟周期执行所述第二子指令,所述执行基于经由所述链接总线接收到所述第一结果。
16.根据权利要求15的方法,其中所述第二子指令包括源字段,该源字段指示所述第二子指令具有所述第一结果作为操作数,其中所述第二管线基于读取所述源字段而暂停执行所述第二子指令。
17.根据权利要求16的方法,其中所述第一子指令包括目的地字段,该目的地字段指示所述第二管线要接收所述链接总线上的所述第一结果。
18.根据权利要求15的方法,其中所述第二管线在所述第一时钟周期期间不执行任何指令。
19.根据权利要求15的方法,其中所述第一管线在所述第二时钟周期期间执行所述第一子指令的第二索引。
20.一种用于在裸露管线处理元件中链接数据的系统,所述系统包括: 指令缓冲器、位于不同寄存器文件空间内的第一管线和第二管线,所述系统被配置为执行一种方法,所述方法包括: 在所述裸露管线处理元件的指令缓冲器中接收多指令字,所述多指令字包括第一子指令和第二子指令; 由第一管线接收所述第一子指令; 由第二管线接收所述第二子指令,所述第一管线和第二管线位于不同的寄存器文件空间内; 由所述第一管线在第一时钟周期执行所述第一子指令; 在所述第一时钟周期暂停执行所述第二子指令,所述第二子指令依赖于来自所述第一子指令的第一结果; 由所述第一管线将执行所述第一子指令的所述第一结果传送到与所述第一管线和第二管线相连的链接总线,在位于所述第一时钟周期之后且与所述第一管线中的锁存管线级的总数对应的第二时钟周期执行所述传送;以及 由所述第二管线在所述第二时钟周期执行所述第二子指令,所述执行基于经由所述链接总线接收到所述第一结果。
21.根据权利要求20的系统,其中所述第二子指令包括源字段,该源字段指示所述第二子指令具有所述第一结果作为操作数,其中所述第二管线基于读取所述源字段而暂停执行所述第二子指令。
22.根据权利要求21的系统,其中所述第一子指令包括目的地字段,该目的地字段指示所述第二管线要接收所述链接总线上的所述第一结果。
23.根据权利要求20的系统,其中所述第二管线在所述第一时钟周期期间不执行任何指令。
24.根据权利要求20的系统,其中所述第一管线在所述第二时钟周期期间执行所述第一子指令的第二索引。
【文档编号】G06F13/40GK104049937SQ201410078424
【公开日】2014年9月17日 申请日期:2014年3月5日 优先权日:2013年3月12日
【发明者】T·W·福克斯, B·M·弗莱舍, H·M·雅各布森, R·奈尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1