执行单元内的数据转发系统和方法

文档序号:6592940阅读:183来源:国知局
专利名称:执行单元内的数据转发系统和方法
技术领域
本发明大体上涉及执行单元内的数据转发系统及方法。
背景技术
在常规处理器中,指令的执行可能需要若干阶段。在程序序列内,依赖于数据的 指令通常经分离以允许用于经由所述阶段中的每一者处理第一指令及用于在执行使用来 自第一指令的结果的第二指令之前将结果写入到寄存器的时间。在此例子中,可使用若干 不依赖于数据的指令来分离指令序列内的依赖于数据的指令,以允许用于产生结果且于在 执行后续指令时需要所述结果之前存储所述结果的时间。通过使用不依赖于数据的指令 来分离依赖于数据的指令,可通过允许处理器管线在或接近容量下操作而减少管线暂停 (pipeline stall)。现代编译器试图通过以无序方式执行指令来减少执行管线单元暂停。确切地说, 将不依赖于数据的指令及/或准备好执行的指令放置在尚未准备好的指令(亦即,可为依 赖于数据的指令,其中尚未根据另一执行指令确定所述数据)之前。通常,可使用编译器应 用程序来辨别所述依赖于数据的指令,且可在程序序列内组织指令以通过在程序序列内将 依赖于数据的指令与对应的数据产生指令间隔开来减少管线暂停。

发明内容
在特定实施例中,揭示一种方法,所述方法包括在执行单元处的同写阶段期间将 与来自第一指令的执行的待写入到寄存器堆的结果相关联的写入识别符与同具有多个执 行单元的交错式多线程(IMT)处理器内的执行管线处的第二指令相关联的读取识别符比 较。当写入识别符与读取识别符匹配时,所述方法进一步包括将结果存储在执行单元的本 机存储器处以用于由执行单元在后续读取阶段中使用。在另一特定实施例中,揭示一种方法,所述方法包括根据与第一指令包相关联的 第一地址确定与第二指令包相关联的第二地址。检查数据单元的加法器的进位位以确定是 否确定第二地址跨越与多路高速缓冲存储器相关联的高速缓冲存储器线的边界。当不跨越 边界时,存取多路高速缓冲存储器以使用根据先前标记阵列查找操作确定的与第一地址相 关联的标记阵列数据及翻译旁视缓冲器(TLB)查找数据从第二地址检索数据。在再一特定实施例中,揭示一种多线程处理器,所述多线程处理器包括具有用于 存储一个或一个以上数据值的本机存储器的执行单元。所述执行单元进一步包括逻辑电 路,所述逻辑电路适于确定与读取操作相关联的读取地址是否与同先前回写操作相关联的 回写地址匹配。所述逻辑电路适于在读取地址与回写地址匹配时将所述一个或一个以上数 据值存储在本机存储器处。在又一特定实施例中,揭示一种处理器,所述处理器包括用于将与来自第一指令 包的执行的待写入到寄存器堆的结果相关联的写入识别符与同具有多个执行单元的交错 式多线程(IMT)处理器内的执行管线处的第二指令包相关联的读取识别符比较的装置。所述处理器进一步包括用于在写入识别符与读取识别符匹配时将结果选择性地本机存储在 执行单元处以用于在执行第二指令包时使用的装置。通过具有数据转发逻辑及本机存储器的处理器的实施例提供的一个特定优点在 于可本机存储来自第指令的执行的结果且在执行第二指令时使用所述结果,而不执行寄 存器读取堆操作。可通过选择性地略过寄存器读取堆操作而减少寄存器堆电力消耗。提供的另一特定优点在于当第二指令的第二地址与同第一指令的第一地址相同 的高速缓冲存储器线相关联时,可选择性地略过标记阵列查找操作。在此实例中,可略过针 对第二地址的标记阵列查找操作,且可再用根据与第一地址相关联的先前查找操作确定的 标记阵列信息。可通过选择性地略过标记阵列查找操作而减少总电力消耗。提供的又一特定优点在于相同逻辑电路可用于选择性地转发数据及选择性地略 过标记阵列查找及TLB查找操作。另外,汇编器或编译器可用于排列指令包以产生用于转 发数据(亦即,槽内转发)、用于再用标记阵列信息(亦即,略过标记阵列查找操作)及用于 选择性地略过TLB查找操作的机会。所述数据的转发及标记查找及/或TLB查找操作的选 择性略过可减少读取操作的总数目,从而减少总电力消耗。本发明的其它方面、优点及特征将在审阅包括以下部分的整个申请案后变得显而 易见“


”、“具体实施方式
”及“权利要求书”。

图1为包括适于转发数据的执行单元的系统的特定说明性实施例的框图;图2为适于转发数据的执行单元的特定说明性实施例的框图;图3为包括具有数据转发逻辑电路及标记阵列查找/翻译旁视缓冲器(TLB)查找 略过逻辑电路的共享控制单元的系统的特定实施例的框图;图4为包括适于选择性地转发数据且选择性地略过标记阵列查找及翻译旁视缓 冲器(TLB)操作的可编程逻辑电路(PLC)的处理器的特定实施例的框图;图5为执行管线内适于转发数据的过程的说明性实施例的时序图;图6为执行管线内的转发逻辑电路的特定说明性实例的图;图7为执行管线内适于略过标记阵列查找操作的过程的说明性实施例的时序图;图8为适于选择性地转发数据且选择性地略过标记阵列查找或翻译旁视缓冲器 (TLB)查找操作的系统的特定说明性实施例的框图;图9为在执行单元内转发数据的方法的特定说明性实施例的流程图;图10为选择性地略过标记阵列查找操作的方法的特定说明性实施例的流程图;图11为选择性地略过标记阵列查找操作及/或翻译旁视缓冲器(TLB)查找操作 的方法的特定说明性实施例的流程图;及图12为包括具有转发逻辑电路及查找略过逻辑电路的执行单元的通信装置的特 定说明性实施例的框图。
具体实施例方式图1为包括具有转发逻辑电路及本机存储器的至少一个执行单元的处理系统100 的特定说明性实施例的框图。处理系统100包括适于经由总线接口 104而与指令高速缓冲存储器106及数据高速缓冲存储器112通信的存储器102。指令高速缓冲存储器106通过 总线110而耦合到序列器114。另外,序列器114适于接收可从中断寄存器接收的中断(例 如,通用中断116)。序列器114还耦合到管理程序控制寄存器132及全局控制寄存器134。在特定实施例中,指令高速缓冲存储器106经由多个当前指令寄存器而耦合到序 列器114,所述多个当前指令寄存器可耦合到总线110且与处理系统100的特定线程相关 联。在特定实施例中,处理系统100为包括六个线程的交错式多线程处理器。序列器114耦合到第一指令执行单元118、第二指令执行单元120、第三指令执行 单元122及第四指令执行单元124。每一指令执行单元118、120、122及IM可经由第二总 线1 而耦合到通用寄存器堆126。通用寄存器堆1 还可经由第三总线130而耦合到序 列器114、数据高速缓冲存储器112及存储器102。管理程序控制寄存器132及全局控制寄 存器134可存储可由序列器114内的控制逻辑存取以确定是否接受中断且控制指令的执行 的位。第一执行单元118包括转发逻辑电路136及本机存储器138。第二执行单元120 包括转发逻辑电路140及本机存储器142。第三执行单元122包括转发逻辑电路144及本 机存储器146。第四执行单元IM包括转发逻辑电路148及本机存储器150。尽管执行单元 118、120、122及IM中的每一者经指示为包括转发逻辑(亦即,分别为转发逻辑136、140、 144及148),但应理解,在特定实施例中,转发逻辑(例如,转发逻辑136)可由其它执行单 元(例如,执行单元120、122及124)共享。举例来说,在特定实施例中,执行单元118可包 括转发逻辑136及本机存储器138,且其它执行单元120、122及IM可包括本机存储器142、 146及150且可共享转发逻辑136。在特定实施例中,执行单元118、120、122及124中的一 者或一者以上可共享本机存储器。举例来说,执行单元118与120可共亨本机存储器138, 而执行单元122与IM可共亨本机存储器146。在另一特定实例中,转发逻辑136可在执行 单元118的外部且可与执行单元118、120、122及124通信,如关于图4中所说明的控制单 元406及执行单元408、410、412及414所展示。在特定实施例中,处理系统100适于接收可由执行单元118、120、122及IM执行 的第一指令包,且接收依赖于来自第一指令包的结果的第二指令包。第一指令包可包括可 提供到执行单元118、120、122及124的四个指令。执行单元118、120、122及124可经由多 个阶段来处理来自第一指令包的指令,所述多个阶段包括解码阶段、寄存器堆存取阶段、多 次执行阶段及回写阶段。在回写阶段处,执行单元118的转发逻辑136可确定第二指令包 的读取地址与第一指令包的回写地址匹配,且可将数据回写到通用寄存器堆126并将数据 本机存储在存储器138处。在替代实施例中,执行单元118可对每一所接收的指令包的指 令的至少一部分进行解码,以确定每一指令的读取地址及回写地址。转发逻辑电路136可 适于将第二包的读取地址与第一指令包的回写地址比较,且将数据转发控制信号发送到其 它执行单元(例如,指令执行单元120、122及124)以本机存储数据(亦即,在相应本机存 储器142、146或150处)。可从存储器138、142、146或150检索数据以用于在执行来自第 二(后续)指令包的指令时使用。在特定实例中,转发逻辑电路136可检测到第二指令包的指令使用来自第一指令 包的结果。确切地说,第一指令将数据写入到与第二指令读取数据的位置相同的位置。在 此实例中,转发逻辑电路136适于确定第一指令包内的指令的结果由第二指令包内的指令利用。作为说明性非限制实例,转发逻辑电路136可经由指令高速缓冲存储器106或序列 器114而接收来自能够存取将来的指令的控制逻辑电路(未图示)的信号;或转发逻辑电 路136可检测第一包中的可由汇编器、编译器、序列器114或其它电路设置的转发指示符 (例如,指定的位);或转发逻辑电路136可至少部分响应于指令类型而预测指令的结果的 使用。在另一实施例中,转发逻辑电路136可能可配置以在第一模式中操作以本机存储所 有指令结果用于由后续指令使用,或在第二模式中操作而不存储指令结果。除经由总线1 而将结果写入到通用寄存器堆126之外,转发逻辑电路136使得执行单元118将执行的结 果存储在本机存储器138中。当将来自第二指令包的依赖于数据的指令提供到执行单元 118时,转发逻辑电路136使执行单元118略过寄存器读取操作且存取存储在本机存储器 138中的结果,并在执行来自第二指令包的指令时利用所述结果。因此,执行单元118利用 转发逻辑电路136来减少对通用寄存器堆126的读取操作的数目。通过编译指令包以便将依赖于数据的指令在程序序列内的邻近包中排序,经编译 的应用程序可通过利用执行单元118、120、122及124的转发逻辑电路136、140、144及148 来增强电力节省。可将由较早指令产生的数据存储在本机存储器138、142、146或150处 (例如,缓冲器、锁存器或触发器、本机寄存器或其它存储器元件处)以在不执行针对邻近 包的寄存器读取的情况下由邻近包使用。在可在不邻近的包之间转发数据的说明性实施例 中,本机存储器138、142、146或150可包括一个或一个以上寄存器,用于在处理一个或一个 以上介入包时进行数据的临时本机存储。确切地说,通过在邻近指令包中对依赖于数据的 指令排序,编译器增加数据转发的可能,借此增加所略过的读取操作的数目并减少总电力 消耗。在特定实例中,执行单元118包括用以将操作数(及/或数据)从一个指令包转 发到下一指令包的转发逻辑电路136。所述数据转发减少了寄存器读取堆操作的总数目,且 减少了总寄存器堆电力消耗。下文在表1中提供一对依赖于数据的指令包的实例。表1 数据转发实例。Il第一指令包{R7 6 = VALIGNB (R9 8,R7 6,#2)R15:14+ = VDMPY(R13 12, R7:6) << l:satRl = R21R3 = ADD(R0,#8)}//第二指令包{R15:14 = VASRff (R15 14, #3)//缩放输出R17:16+ = VDMPY(R13 12, R7:6) << l:satRlO = MEMW (Rl++#4) // 负载系数}在此实例中,除了由执行单元在执行与第一指令包相关联的VALIGNB指令时产生 的存储在寄存器对R7:6处的值由执行单元在执行与第二包相关联的VDMPY指令时使用之外,所执行的特定指令与本发明无关。在特定实例中,汇编器或编译器可排列所述指令以便 在同一执行槽(例如,执行单元118)中执行VALIGNB与后续的VDMPY两者。另外,汇编器 或编译器可将第二指令包排列为在程序序列内紧跟在第一指令包之后。图2为包括具有转发逻辑电路220及存储器222的执行单元202的系统200的一 部分的框图。系统200包括在执行单元202的外部且具有多个存储器位置208、210、212、 214,216及218的存储器装置204。存储器位置208、210、212、214、216及218中的每一者可 与对于执行单元202来说可经由总线206存取的存储器地址相关联。一般来说,存储器位 置208、210、212、214、216及218与执行单元202通过不同长度的总线迹线而分离。另外, 由执行单元202对存储器204内的特定存储器位置进行的每一存取消耗电力。一般来说, 执行单元202适于接收指令,对指令进行解码,存取存储器204的寄存器堆以检索数据,使 用所检索的数据执行指令,且将数据回写到存储器204。执行单元202包括转发逻辑电路220及本机存储器222。转发逻辑电路220适于 检测通过特定指令的执行而产生的数据将在执行程序序列中的下一指令时使用的例子。在 此例子中,执行单元202适于利用转发逻辑220来将来自第一指令的执行的结果存储在本 机存储器222中。执行单元202可略过寄存器堆读取操作或存储器读取操作,且在执行下一 指令期间利用存储在本机存储器222中的数据,借此避免存储器读取操作且节约电力。一 般来说,通过减少总存储器存取,可通过选择性地避免耗散电力的存储器读取操作而节约 电力消耗。图3为包括具有数据转发逻辑电路306及查找略过逻辑电路308的共享控制单 元304的系统300的框图。系统300包括耦合到共享控制单元304的指令高速缓冲存储 器302。共享控制单元304耦合到服务单元314、存储器单元316及数据单元318。共享控 制单元304还耦合到与指令单元310通信的来源寄存器堆312。指令单元310与数据单元 318也经由耦合到存储器324(例如,多路高速缓冲存储器)的总线单元322而通信。服务 单元314、存储器单元316及数据单元318耦合到目的地寄存器堆320。在特定说明性实施例中,系统300接收可由数据单元318执行以产生结果的指令 包。共享控制单元304适于利用数据转发逻辑电路306来确定结果是否将由后续指令包使 用。共享控制单元304适于与服务单元314、存储器单元316及数据单元318通信以略过 后续寄存器读取堆操作。另外,共亨控制单元304适于与数据单元314通信以指示数据单 元314将结果存储在本机存储器(例如,图2中所说明的存储器222或图1中所说明的本 机存储器138、142、146及150)中。共享控制单元304还适于控制服务单元314、存储器单 元316及数据单元318以在执行后续指令包时利用本机存储的数据。在特定实施例中,服 务单元314、存储器单元316及数据单元318组合执行类似于由图1中所描绘的执行单元 118、120、122及124执行的操作的处理操作。在另一特定实施例中,共享控制单元304适于利用查找略过逻辑电路308来(例 如)当与第一指令相关联的第一存储器地址与同第二指令相关联的第二存储器地址在存 储器内的同一高速缓冲存储器线内时确定是否略过标记阵列查找操作。在特定实例中,系 统300可正在“自动递增地址”模式中操作,其中数据单元318可确定第一存储器地址且可 基于第一存储器地址而计算第二存储器地址。举例来说,数据单元318可确定第一存储器 地址(A)且计算出第二存储器地址(A+8)。在此特定实例中,数据单元318接收与第一指令包相关联的至少一个指令。数据单元318适于确定与指令相关联的存储器地址且计算第二 存储器地址。在特定实例中,存储器地址可为与η-路高速缓冲存储器内的物理存储器地址有 关的虚拟存储器地址。在此实例中,数据单元318可通过执行翻译旁视缓冲器(TLB)查找 操作来执行虚拟地址到物理地址翻译以确定物理存储器地址。数据单元318可执行标记阵 列查找操作以识别标记数据,所述标记数据识别数据阵列内的与物理存储器地址有关的一 路。数据单元318可使用标记数据及物理存储器地址信息从η-路高速缓冲存储器检索数 据。可将标记数据(包括与多路高速缓冲存储器相关联的一路)以第二存储器地址存储在 本机存储器处。当检索第二存储器地址以用于由数据单元318使用时,数据单元318可确 定第二存储器地址与第一存储器地址是否在同一高速缓冲存储器线内。当第一存储器地 址及第二存储器地址与η-路高速缓冲存储器内的同一高速缓冲存储器线相关联时,查找 略过逻辑电路308适于指示数据单元318略过后续标记阵列查找操作,且使用来自第一存 储器地址的路来存取η-路高速缓冲存储器处的与第二存储器地址相关联的数据。如果第 一存储器地址及第二存储器地址与η-路高速缓冲存储器内的不同高速缓冲存储器线相关 联,则查找略过逻辑电路308适于指示数据单元318执行标记阵列查找操作而不执行翻译 旁视缓冲器(TLB)查找操作。如果数据单元318确定第二存储器地址跨越页边界(亦即, 超过页大小),则查找略过逻辑电路308指示数据单元318执行TLB查找操作及标记阵列查 找操作以确定与第二存储器地址相关联的物理地址及标记数据。在特定实例中,η-路高速缓冲存储器的页具有大于高速缓冲存储器线的大小。举 例来说,高速缓冲存储器线可包括32个字节,且页可为大约4096个位(大约41Λ)。在此例 子中,如果自动递增地址递增8个字节,则可在自动递增地址计算前进到下一高速缓冲存 储器线(假定在顺序操作中存取高速缓冲存储器线)之前将标记阵列数据再用三次,且可 (例如)在需要执行另一 TLB查找操作之前将来自第一 TLB查找操作的页翻译再用许多次 (亦即,大约511次)。确切地说,如果由后续指令存取的存储器地址同与先前存储器存取相同的高速缓 冲存储器线相关联,则针对后续存储器地址,可再用先前标记阵列查找操作中所获得的标 记阵列数据,因此避免后续标记阵列查找操作。在另一特定实例中,通过仅在跨越页边界时 选择性地执行TLB查找操作,可通过减少存取TLB的次数而减少总电力消耗。图4为处器器系统400的框图。处理器系统400包括耦合到控制单元406的指令 单元402及中断寄存器404。控制单元406耦合到多个执行单元408、410、412及414。执 行单元408、410、412及414中的每一者可分别包括本机存储器似6、似8、430及432。控制单元406包括解码器416、控制寄存器堆418、通用寄存器堆420、可编程逻辑 控制器(PLC)电路422及硅中除错器(in-silicon debugger) (ISDB)电路424。ISDB电路 似4提供可用于在处理器系统400运行时对软件进行除错的基于联合测试行动组(JTAG)的 硬件除错器。在特定实施例中,ISDB电路似4支持个别线程除错,允许线程执行的中止且 允许指令及数据存储器(包括控制寄存器堆418及通用寄存器堆420)的观测及变更。在特定说明性实施例中,解码器416接收指令并对指令进行解码。解码器416将 与经解码的指令有关的数据传送到PLC电路422,PLC电路422可包括用于检测第一指令包 何时产生将由指令包序列中的第二指令包利用的结果的逻辑。在检测到顺序指令包之间的所述数据依赖性之后,PLC电路422适于产生对于执行单元408、410、412及414中的正执行 数据产生指令的至少一者的控制信号以将结果存储在相应本机存储器似6、似8、430或432 处。PLC 422适于控制通用寄存器堆420及解码器416以将依赖于数据的指令从后续指令 包路由到选定执行单元(例如,执行单元408),以使得执行单元可在执行后续指令时利用 本机存储的数据(亦即,存储在本机存储器似6处的数据)。在此实例中,PLC 422还可控 制执行单元408及总线434以在本机存储结果时防止执行单元408存取存储器(例如,通 用寄存器堆420)以检索结果。在特定实例中,执行单元408可从控制单元406接收数据产生指令,执行所述指 令,且将结果回写到通用寄存器堆420。执行单元408也可响应于从控制单元406的PLC 422接收的控制信号而将结果存储在本机存储器426中。执行单元408可从控制单元406 接收利用来自本机存储器4 的所存储的结果的下一指令。执行单元408可存取本机存储 器426以检索所存储的结果并使用所检索的结果执行下一指令。在此特定实例中,执行单 元408可在不从通用寄存器堆420读回结果的情况下执行下一指令,借此略过寄存器读取 堆操作并节约电力。在另一特定实施例中,控制单元406适于选择性地再用根据标记阵列查找操作确 定的标记阵列数据。举例来说,当使用自动递增特征根据第一地址计算第二地址时,PLC422 可检查进位位以确定第二地址何时与不同于第一地址的高速缓冲存储器线相关联。举例 来说,如果高速缓冲存储器线为32个字节宽,则第二地址的第五位表示一进位位。当进位 位改变时,第二地址与高速缓冲存储器内的下一高速缓冲存储器线相关联。一般来说,PLC 422指示执行单元408、410、412及414再用来自先前标记阵列查找操作的标记阵列数据,直 到所述进位位指示第二地址与不同于第一指令的高速缓冲存储器线相关联为止。在此例子 中,P LC 422使执行单元408、410、412及414执行新的标记阵列查找操作而不执行翻译旁 视缓冲器(TLB)查找操作。在再一特定实施例中,控制单元406适于选择性地执行翻译旁视缓冲器(TLB)查 找操作。确切地说,PLC 422可检查来自第二存储器地址的计算的进位位以确定所计算的 存储器地址何时指示已跨越页边界。举例来说,如果存储器阵列的页大小为大约4096个位 (亦即,4kb),则第二存储器地址的第十一位可表示一进位位。因此,当第二存储器地址的第 i^一位改变时,跨越页边界且PLC 422使执行单元408、410、412或414中的一者起始TLB查 找操作,TLB查找操作之后可为标记阵列查找操作。在此实例中,标记阵列查找操作比TLB 查找操作频繁地发生。PLC 422适于选择性地略过标记阵列查找操作与TLB查找操作中的 一者或两者,从而减少总电力消耗。图5为包括数据转发逻辑的执行单元的指令循环500的特定实例的图。一般来说, 从特定线程的观点来看,指令循环500表示执行单元的多个阶段。执行单元通常在一个或 一个以上阶段期间处理数据及指令,所述一个或一个以上阶段包括回写阶段502、解码阶段 504、寄存器读取阶段506、一个或一个以上执行阶段508、510及512,及第二回写阶段514。 应理解,指令循环500仅包括一个回写阶段(回写阶段514)且接着执行循环重复(在解码 阶段504处开始)。出于论述的目的说明回写阶段502。通常,在516处,在回写阶段502处,将来自先前所执行的指令的结果回写到寄存 器(例如,通用寄存器堆)。在518处,接收下一指令包(其可包括一到四个指令)并将所接收的包的读取识别符与同写入到寄存器的写入结果相关联的写入识别符比较。当读取识 别符与写入识别符匹配时,将写入结果本机存储在执行单元处(在520处),且将写入结果 回写于寄存器处(在516处)。在此例子中,在522处,可略过寄存器读取(在506处)且 可使用本机存储在执行单元处的数据。在5M处,使用寄存器读取阶段(506)期间所读取 的数据或本机存储在执行单元处的数据中的至少一者执行指令。因此,当读取识别符与写 入识别符匹配时(在518处),可略过寄存器读取阶段(在506处)且可利用本机存储的数 据,因此允许数据转发。在特定说明性实施例中,图5中所说明的执行单元阶段504、506、508、510、512及 514表示交错式多线程处理器内的执行单元的循环。另外,回写阶段502表示先前指令的执 行循环的最后阶段。在不在读取堆阶段506处执行寄存器读取堆操作的情况下,可从执行 单元处的本机存储器检索(在522处)来自先前指令的数据,且可在5M处(亦即,在所述 一个或一个以上执行阶段508、510及512期间)将所述数据与下一指令一起处理。在特定 说明性实施例中,阶段504、516、508、510、512及514中的每一者可表示执行特定操作的时 钟循环。图6为处理器的执行单元内的数据转发逻辑600的特定说明性实施例的框图。在 此例子中,关于回写阶段602、解码阶段604及读取寄存器堆阶段606来说明数据转发逻辑 600。在说明性实施例中,数据转发逻辑600表示多个槽中的单个处理槽(例如,代表性槽 2),其可使用寄存器堆的代表性寄存器“S”及“T”来处理读取及写入操作。关于回写阶段602,转发逻辑600包括比较器608及610、逻辑OR门611、反相器 614及616、逻辑AND门618及620,及寄存器堆612。转发逻辑600还包括转发启用触发器 电路636及转发数据触发器电路638。比较器608接收下一包寄存器“S” (Rs)读取识别符 信息622及当前包写入识别符信息6M作为输入,且提供耦合到反相器614的输入的输出。 反相器614的输出耦合到逻辑AND门618的第一输入,且逻辑AND门618的第二输入耦合 到槽2寄存器“S”读取启用(S2RSRdEn)输入632。逻辑AND门618还包括耦合到寄存器堆 612的槽2寄存器的输出。比较器610接收下一包寄存器“T”(Rt)读取识别符信息626(其 可与下一包读取识别符信息622相同)及当前包写入识别符信息628,并提供经由反相器 616而耦合到逻辑AND门620的输入的输出。逻辑AND门620还在第二输入处接收槽2寄 存器“T”读取启用(s2RtRdEn)输入634,且提供耦合到寄存器堆612的槽2寄存器的输出。 比较器608及610的输出也经提供作为到转发启用触发器636的输入及作为到逻辑OR门 611的输入,逻辑OR门611提供到转发数据触发器638的启用输入。转发数据触发器638 还接收来自执行单元数据回写630的数据。在转发逻辑600的解码阶段604处,提供转发启用触发器636的输出作为到第二 转发启用触发器640的输入且作为到第二转发数据触发器642的启用输入。转发数据触发 器638提供到第二转发数据触发器642的数据输入。在读取寄存器堆阶段606处,第二转发启用触发器640将转发启用信号提供到第 一多路复用器644的选择输入且提供到第二多路复用器646的选择输入。第一多路复用器 644接收第一输入处的经转发的数据及第二输入处的寄存器(s)数据且提供输出648,输出 648载运用于在执行下一指令包时使用的经转发的数据或寄存器(s)数据。第二多路复用 器646接收第一输入处的经转发的数据及第二输入处的寄存器(t)数据且提供输出650,输出650载运用于在执行下一指令包时使用的经转发的数据或寄存器(t)数据。一般来说,比较器608适于接收下一包读取识别符信息622及当前包写入识别符 信息624。比较器610适于接收下一包读取识别符信息6 及当前包写入识别符信息628。 当下一包读取识别符622及6 中的一者与当前包写入识别符6M及6 中的一者匹配时, 识别匹配的比较器(例如,比较器608及610中的一者)在其输出处提供逻辑一(1)值,从 而启用转发数据触发器638并经由相应反相器614或616及相应逻辑AND门618或620而 关闭对应寄存器读取启用。在特定说明性实施例中,当下一包读取识别符622与当前包写入识别符信息6M 匹配时,比较器608提供逻辑高输出作为到转发数据触发器638的输入。反相器614使逻 辑高输出反相且提供逻辑低值作为到逻辑AND门618的输入,从而停用对寄存器堆612的 槽2寄存器(s)读取启用。转发数据触发器638经由回写输入630而接收来自执行单元的 数据并存储所述数据。在解码阶段604期间,将数据转发到第二转发数据触发器642。将经 转发的数据提供到第一多路复用器644及第二多路复用器646,且基于来自第二转发启用 触发器640的输出而将经转发的数据选择性地提供到第一输出648及第二输出650中的一 者。第二转发启用触发器640可将比较器608的输出提供到第一多路复用器644,且将比较 器610的输出提供到第二多路复用器646以选择来自第二转发数据触发器642的经转发的 数据或寄存器数据中的一者。转发逻辑600适于基于读取/写入识别符匹配而选择性地启用寄存器读取操作。 转发逻辑600还可用于选择性地高速缓存与存储器地址相关联的标记阵列数据(例如,路 信息)以供在后续指令中再用。在特定实例中,转发逻辑600或类似逻辑可适于检查与所计 算的地址相关联的进位位,以确定所计算的地址何时与下一高速缓冲存储器线相关联(亦 即,导致标记阵列查找操作且略过翻译旁视缓冲器(TLB)查找操作)。在另一特定实例中, 转发逻辑或类似逻辑可适于检查与所计算的地址相关联的进位位,以确定所计算的地址何 时跨越页边界(亦即,导致翻译旁视缓冲器(TLB)查找操作及标记阵列查找操作)。当转发 逻辑600或类似逻辑确定标记阵列数据仍有效(亦即,第一存储器地址与第二存储器地址 的高速缓冲存储器线相同)时,可将标记阵列数据锁存于数据锁存器(例如,转发数据触发 器638及64 处以供在存取第二存储器位置时使用,而不执行TLB查找操作及/或标记阵 列查找操作。图7为包括数据转发逻辑且适于选择性地略过查找操作的执行单元的指令循环 700的特定实例的图。指令循环700通常包括多个阶段,包括回写阶段702、解码阶段704、 寄存器读取阶段706、一个或一个以上执行阶段708、710及712、及第二回写阶段714。应理 解,指令循环700仪包括一个回写阶段(回写阶段714)且接着执行循环重复(在解码阶段 704处开始)。出于论述的目的说明回写阶段702。—般来说,在先前指令的执行的执行阶段(例如,执行阶段708)处,可计算第一存 储器地址及第二存储器地址,且可将第二存储器地址存储在本机存储器(例如,图1中所说 明的本机存储器138)处。在716处,在回写阶段702期间,将来自先前所执行的指令的结果 回写到高速缓冲存储器地址或寄存器(例如,通用寄存器堆)。在718处,可从本机存储器 检索第二存储器地址。在720处,检验与第二存储器地址相关联的一个或一个以上进位位 的值,以确定所述一个或一个以上进位位是否指示归因于自动递增操作的经进位值。如果所述一个或一个以上进位位中的第一进位位的值不指示第二存储器地址与不同于第一存 储器地址的高速缓冲存储器线相关联,则在722处,略过翻译旁视缓冲器(TLB)查找操作及 标记阵列查找操作,且使用先前标记阵列值从存储器检索数据。如果所述一个或一个以上 进位位的第一进位位的值指示经进位值且所述一个或一个以上进位位中的第二进位位不 指示经进位值,例如,当第二存储器地址同与先前存储器地址相同的页内的不同高速缓冲 存储器线相关联时,在7M处,略过TLB查找操作但执行标记阵列查找操作以检索用于从存 储器检索数据的标记阵列值。如果所述一个或一个以上进位位中的每一者指示一进位值, 则如7 处所指示执行TLB查找操作及标记阵列查找操作。在特定实例中,可略过标记阵列查找操作且可使用根据先前标记阵列查找操作确 定的标记阵列数据来存取存储器内的地址。确切地说,可在不查找标记阵列数据且不执行 TLB查找操作的情况下使用标记阵列数据来存取存储器地址。在特定说明性实施例中,图7中所说明的阶段704、706、708、710、712及714可表 示交错式多线程处理器内的执行单元的阶段。另外,在特定实施例中,阶段704、706、708、 710,712及714可表示时钟循环。图8为包括具有控制单元806的电路装置802的系统800的特定说明性实施例的 框图,控制单元806用于分别使用本机存储器809及811在执行单元808及810内选择性地 转发数据。控制单元806还适于选择性地略过与标记阵列拟6或与翻译旁视缓冲器(TLB) 单元862有关的查找操作。在特定实例中,控制单元806可通过在所计算的地址在与先前 所计算的地址相同的高速缓冲存储器线内或相同的页内时转发来自先前查找操作的标记 阵列信息及/或翻译旁视缓冲器(TLB)信息而略过标记阵列拟6处的查找操作、TLB单元 862处的查找操作或其任何组合。一般来说,电路装置802包括数据单元804,数据单元804与控制单元806、与总线 单元812及与联合翻译旁视缓冲器(TLB)单元813通信。总线单元812与层级2紧密耦合 存储器(TCM)/高速缓冲存储器858通信。控制单元806还与第一执行单元808、第二执行 单元810、指令单元814及硅中除错器(ISDB)单元818通信。指令单元814与联合TLB单 元813及与ISDB单元818通信。电路装置802还包括嵌入式迹线单元(EU) 820及存储器 内建式自测试(BIST)或可测试性设计(DFT)单元822。ISDB单元818、EU 820及存储器 BIST单元822提供用于对在电路装置802处操作的软件进行测试及除错的装置。控制单元806包括寄存器堆836及838、控制逻辑电路840、中断控制电路842、控 制寄存器844及指令解码器848。一般来说,控制单元806对线程进行调度且向指令单元 (IU) 814请求指令,且对指令进行解码并向以下三个执行单元发出指令数据单元804 (分 别为执行槽1830及执行槽083 、执行单元808,及执行单元810。指令单元814包括指令 翻译旁视缓冲器(ITLB) 864、指令地址产生单元866、指令控制寄存器868、指令包对准电路 870及指令高速缓冲存储器872。指令单元(IU) 814可为负责从主存储器或从指令高速缓 冲存储器872取出指令且负责将所取出的指令提供到控制单元806的处理器管线的前端。数据单元804包括含有可高速缓存的数据的数据阵列824。在特定实施例中,数 据阵列拟4可为排列于16子阵列存储器组(每一组包括16个16路的集合)中的多路数 据阵列。子阵列内的每一存储器位置可适于存储双字或8字节的数据。在特定实例中,子 阵列可含有256个双字(亦即,16X16个双字)。数据单元804还包括用于存储与数据阵列拟4相关联的物理标记的标记阵列826。在特定实施例中,标记阵列拟6为静态随机存取 存储器(SRAM)。数据单元804还包括适于存储与高速缓冲存储器线相关联的状态的状态 阵列828。在特定实例中,状态阵列8 供应用于响应于高速缓存未命中事件(cache miss event)的替换的高速缓冲存储器路。数据单元804还包括通常执行加载及存储操作的执行 单元(槽1)830及执行单元(槽0)832。数据单元804包括用于控制数据单元804的操作 的控制电路834。—般来说,数据单元804与控制单元806通信以接收用于在执行单元830及832 处执行的指令。数据单元804还与总线单元812通信以用于总线服务请求且与联合TLB单 元813通信以用于联合TLB-主存储器单元翻译。总线单元812包括总线队列单元850、层级2标记阵列854、异步先入先出(FIFO) 单元852及层级2接口 856。层级2接口 856与层级2TCM/高速缓冲存储器858通信。联 合TLB单元813包括控制寄存器860及包括64个条目的联合TLB表862。在特定说明性实施例中,控制单元806接收第一指令包及第二指令包。控制单元 806可将来自第一指令包的指令提供到执行单元808以用于执行。执行单元808可执行来 自第一指令包的第一指令,且确定与第一指令相关联的第一地址。在特定实例中,执行单 元808可基于第一指令而计算第一虚拟地址,且可基于第一虚拟地址而计算第二虚拟地址 (亦即,经由自动递增特征)。执行单元808可经由控制单元808而与数据单元804通信, 以经由TLB单元813而执行翻译旁视缓冲器(TLB)查找操作。数据单元804可通过与TLB 单元813通信而控制TLB查找操作,且还可经由标记阵列拟6而执行标记阵列查找操作以 确定多路存储器(例如,数据阵列824)内的一路。可经由控制单元806而将TLB页翻译信 息及标记阵列数据提供到执行单元808。控制单元806可指示执行单元808将标记阵列信 息及/或TLB页翻译信息存储在存储器809处。执行单元808可基于标记阵列信息而从存 储器位置检索数据。在特定实例中,如果第二虚拟地址同与第一虚拟地址相同的高速缓冲存储器线相 关联,则执行单元808可使用来自存储器809的所存储的标记阵列信息而直接存取物理存 储器(例如,数据阵列拟4),而不执行标记阵列查找操作且不执行TLB页翻译。在特定实 施例中,控制单元806处的控制逻辑电路840可指示执行单元808使用所存储的标记阵列 信息。如果第二虚拟地址同与第一虚拟地址不同的高速缓冲存储器线相关联,则执行单元 808可经由控制单元806而与数据单元804通信以执行标记阵列查找操作以确定与第二虚 拟地址有关的标记信息,而不执行TLB查找操作(亦即,不执行虚拟页到物理页翻译)。在特定说明性实施例中,执行单元808及810包括用于确定何时略过标记阵列查 找及/或TLB查找操作的存储器阵列查找略过逻辑电路,例如图3中所说明的查找略过逻 辑电路308。在另一特定说明性实施例中,控制逻辑电路840可控制执行单元808及810选 择性地略过标记阵列查找、TLB查找或其任何组合。另外,执行单元808及810可包括数据 转发逻辑电路,例如图1中所说明的转发逻辑电路136。在特定说明性实施例中,控制逻辑 电路840适于通过控制执行单元808及810将数据存储在相应存储器809及811处而将来 自第一指令的数据选择性地转发到第二指令以用于在执行后续指令时使用。图9为数据转发方法的特定说明性实施例的框图。在902处,在执行单元处的回 写阶段期间,将与待写入到寄存器堆的数据相关联的写入识别符与具有多个执行单元的交错式多线程处理器内的执行管线的后续读取阶段的读取识别符比较。进行到904,如果写入 识别符不与读取识别符匹配,则方法前进到906且将由第一指令包的执行产生的数据写入 到寄存器堆处的一位置,而不将数据本机存储在执行单元处。或者,如果在904处写入识别 符确实与读取识别符匹配,则方法前进到908且将数据写入到寄存器堆并将数据本机存储 在执行单元处以用于由执行单元在后续读取阶段中使用。前进到910,方法包括从本机存储 位置或从寄存器堆位置检索数据。移动到912,方法包括使用所检索的数据执行后续读取阶 段。在特定实例中,方法包括在执行单元处使用本机存储在执行单元处的数据而执行指令 包。方法在914处终止。在特定实例中,方法可包括识别数据中所包括的一个或一个以上零值位以确定写 入识别符是否与读取识别符匹配。基于所述零值位,方法可包括产生用于减少到执行单元 内与所述一个或一个以上零值位相关联的数据路径的电力的指示符。在另一特定实例中, 方法包括将多路高速缓冲存储器的与数据单元相关联的高速缓冲存储器线地址与同写入 识别符相关联的高速缓冲存储器线地址比较,且当与写入识别符相关联的高速缓冲存储器 线地址与同数据单元相关联的高速缓冲存储器线地址匹配时,从多路高速缓冲存储器检索 数据而不读取翻译旁视缓冲器(TLB)标记。图10为选择性地略过标记阵列查找操作的方法的特定说明性实施例的框图。在 1002处,使用自动递增特征根据第一存储器地址计算第二存储器地址。继续到1004,检查 与第二存储器地址相关联的第一进位位。在说明性实施例中,为了确定第二地址是否在与 第一地址相同的高速缓冲存储器线内,进位位为与高速缓冲存储器线的大小相关联的地址
位。举例来说,在具有低序位0000、0001...... 0111的连续地址处于单个高速缓冲存储器
线内但具有低序位1000的下一连续地址处于不同高速缓冲存储器线中的情况下,那么从0 改变到1的位(亦即,第四最低有效地址位)为在1004处检查的进位位。继续所述实例, 当通过自动递增第一地址而产生第二地址时,如果第四最低有效地址位改变值,那么指示 进位值。在1006处,如果第一进位位指示一进位值,则方法前进到1008且执行标记阵列查 找操作以检索与第二存储器地址相关联的标记阵列信息。进行到1010,将标记阵列信息存 储在本机存储器处。移动到1012,使用标记阵列信息从高速缓冲存储器检索数据。返回到1006,如果第一进位位并不指示一进位值,则方法前进到1014且从本机存 储器检索标记阵列信息,其中标记阵列信息是在先前标记阵列查找操作(例如,与第一存 储器地址相关联的查找操作)期间被识别。方法在1016处终止。图11为选择性地略过(绕过)标记阵列查找操作、翻译旁视缓冲器(TLB)查找 操作或其任何组合的方法的特定说明性实施例的流程图。在1102处,执行TLB查找操作 以将虚拟存储器地址翻译成物理存储器地址。继续到1104,执行标记阵列查找操作以确定 与物理地址相关联的标记信息。进行到1106,将标记阵列信息存储在本机存储器处。前进 到1108,接收使用自动递增特征根据第一存储器地址计算的第二存储器地址。在特定实例 中,可通过递增第一存储器地址而根据第一存储器地址计算第二存储器地址。继续到1110, 检查与第二存储器地址相关联的高速缓冲存储器线进位位以识别进位值(亦即,进位位的 值)。在特定实例中,进位位可为(例如)与32位高速缓冲存储器有关的第五地址位。如 果在1112处高速缓冲存储器线进位位不指示进位值,则方法前进到1114且检索存储在本 机存储器处的标记信息。继续到1116,基于所检索的标记信息而从存储器处的第二存储器地址检索数据。返回到1112,如果高速缓冲存储器线进位位指示一进位值,则方法前进到 1118且检查页边界进位位以识别进位值。在1120处,如果页边界进位位指示一进位值,则 方法返回到1102且执行TLB查找操作以将存储器地址翻译成物理地址。返回到1120,如果 页边界位不指示进位值,则方法前进到1104且执行标记阵列查找操作以确定与物理地址 相关联的标记信息,而不执行TLB查找操作。图12为包括处理器的代表性无线通信装置1200的框图,所述处理器包括用于选 择性地略过寄存器读取操作及/或翻译旁视缓冲器(TLB)查找操作的逻辑电路。无线通信 装置1200可包括数字信号处理器(DSP) 1210,其包括与一个或一个以上执行单元1268通信 的数据转发/查找略过逻辑电路1264。所述一个或一个以上执行单元1268中的每一者包 括本机存储器1270。数据转发/查找略过逻辑电路1264可操作以控制执行单元1268通过 将数据本机存储在本机存储器1270中而转发数据以供由后续指令包使用。无线通信装置 1200还包括DSP 1210可存取的存储器1232。数据转发/查找略过逻辑电路1264还适于 控制执行单元1268利用先前所确定的标记阵列信息(来自与不同存储器地址相关联的先 前标记阵列查找操作)来略过翻译旁视缓冲器(TLB)查找操作与标记阵列查找操作两者。 可使用先前所确定的标记阵列信息来存取存储器(例如,存储器1232),而不执行另一标记 阵列查找操作。在另一特定实施例中,可使用根据先前TLB查找操作确定的关于第一地址 的页翻译信息来执行标记阵列查找操作,而不执行另一 TLB查找操作,如关于图1到图11 所描述。在特定实施例中,数据转发及/或TLB查找略过逻辑电路1264可提供数据转发功 能性、标记阵列查找略过功能性、TLB查找略过功能性或其任何组合。在特定实施例中,无线通信装置1200可包括数据转发电路与查找略过逻辑电路 两者。在另一特定实施例中,无线通信装置1200可仅包括数据转发电路。在再一特定实施 例中,可包括查找略过逻辑电路。在又一特定实施例中,适于确定是否转发数据的逻辑电路 还可用于确定是否略过标记阵列查找操作、TLB查找操作或其任何组合。图12还展示耦合到数字信号处理器1210且耦合到显示器12 的显示器控制器 12沈。编码器/解码器(CODEC) 1234也可耦合到数字信号处理器1210。扬声器1236及麦 克风1238可耦合到CODEC 1234。图12还指示无线控制器1240可耦合到数字信号处理器1210且耦合到无线天线 1242。在特定实施例中,输入装置1230及电源1244耦合到芯片上系统1222。此外,在特定 实施例中,如图12中所说明,显示器12 、输入装置1230、扬声器1236、麦克风1238、无线 天线1242及电源1244在芯片上系统1222的外部。然而,每一者耦合到芯片上系统1222
的一组件。应理解,尽管数据转发及/或TLB查找略过逻辑电路1264、所述一个或一个以上执 行单元1268及本机存储器1270被描绘为数字信号处理器1210的分离组件,但数据转发及 /或TLB查找略过逻辑电路1沈4、所述一个或一个以上执行单元1268及本机存储器1270 可整合到其它处理组件中,例如无线控制器1M0、CODEC 1234、显示器控制器12 、其它处 理组件(例如,通用处理器(未图示))或其任何组合。所属领域的技术人员应进一步了解,结合本文中所揭示的实施例而描述的各种说 明性逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为 了清楚地说明硬件与软件的此互换性,上文已大体上在功能性方面描述了各种说明性组件、块、配置、模块、电路及步骤。将所述功能性实施为硬件还是软件取决于特定应用及强加 于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以变化的方式实施所描 述的功能性,但所述实施决策不应被解释为会引起偏离本发明的范围。结合本文中所揭示的实施例而描述的方法或算法的步骤可直接在硬件中、由处理 器执行的软件模块中或所述两者的组合中实施。软件模块可驻存在RAM存储器、快闪存储 器、ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM 或此项技术中已知的任何其它形式的存储媒体中。将示范性存储媒体耦合到处理器,以使 得所述处理器可从所述存储媒体读取信息,并可将信息写入到所述存储媒体。在替代方案 中,存储媒体可与处理器成一体式。处理器及存储媒体可驻存在ASIC中。ASIC可驻存在计 算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻存在计算装置 或用户终端中。提供对所揭示的实施例的先前描述以使得任何所属领域的技术人员能够制造或 使用所揭示的实施例。对于所属领域的技术人员来说,对这些实施例的各种修改将显而易 见,且可在不偏离本发明的精神或范围的情况下将本文中所界定的一般原理应用于其它实 施例。因此,本发明不希望限于本文中所展示的实施例,而是应符合与如随附权利要求书所 界定的原理及新颖特征一致的可能的最广泛范围。
权利要求
1.一种方法,其包含在执行单元处的回写阶段期间,将与来自第一指令的执行的待写入到寄存器堆的结果 相关联的写入识别符与同具有多个执行单元的交错式多线程(IMT)处理器内的执行管线 处的第二指令相关联的读取识别符比较;以及当所述写入识别符与所述读取识别符匹配时,将所述结果存储在所述执行单元的本机 存储器处以供所述执行单元在后续读取阶段中使用。
2.根据权利要求1所述的方法,其中当所述写入识别符不与所述读取识别符匹配时, 所述方法进一步包含将所述结果写入到所述寄存器堆而不将所述结果存储在所述本机存 储器处。
3.根据权利要求1所述的方法,其进一步包含使用存储在所述本机存储器处的所述结 果在所述执行单元处执行指令包。
4.根据权利要求1所述的方法,其进一步包含识别所述写入识别符中所包括的一个或一个以上零值位;以及产生用于减少到所述执行单元内与所述一个或一个以上零值位相关联的数据路径的 电力的指示符。
5.根据权利要求1所述的方法,其进一步包含当所述写入识别符与所述读取识别符匹配时,产生数据转发启用输出指示符;以及响应于所述数据转发启用输出指示符而选择性地停用寄存器堆的槽。
6.根据权利要求5所述的方法,其进一步包含产生与所述数据转发启用输出指示符有关的选择信号;以及将来自所述寄存器堆的输出或来自所述本机存储器的所述结果中的一者选择性地提 供到所述执行单元以供在执行所述第二指令时使用。
7.根据权利要求1所述的方法,其进一步包含检查根据所述第一指令的第一存储器地址计算的所述第二指令的第二存储器地址的 进位位,以确定所述第二存储器地址及所述第一存储器地址是否与高速缓冲存储器线相关 联;以及当与所述第二存储器地址相关联的第二高速缓冲存储器线地址与同所述第一存储器 地址相关联的第一高速缓冲存储器线地址匹配时,从多路高速缓冲存储器检索数据而不执 行标记阵列查找操作。
8.一种方法,其包含根据与第一指令包相关联的第一地址确定与第二指令包相关联的第二地址;检查数据单元的加法器的进位位以确定是否确定所述第二地址跨越了与多路高速缓 冲存储器相关联的高速缓冲存储器线的边界;以及当未跨越所述边界时,存取所述多路高速缓冲存储器以使用根据先前标记阵列查找操 作确定的与所述第一地址相关联的标记阵列数据及翻译旁视缓冲器(TLB)查找数据从所 述第二地址检索数据。
9.根据权利要求8所述的方法,其中当跨越高速缓冲存储器线边界时,所述方法进一 步包含执行标记阵列查找操作以确定与所述第二指令相关联的标记阵列信息而不执行翻 译旁视缓冲器(TLB)查找操作。
10.根据权利要求9所述的方法,其进一步包含使用所述标记阵列信息从所述多路高 速缓冲存储器读取数据。
11.根据权利要求8所述的方法,其中所述第一地址包含第一存储器读取地址,且所述 第二地址包含第二存储器读取地址。
12.根据权利要求8所述的方法,其进一步包含将所述第二地址与同根据执行所述第一指令包而确定的结果相关联的第一写入地址 比较;以及当所述第一写入地址与所述第二地址匹配时,将所述结果存储在执行单元内的本机存 储器处以供在执行所述第二指令包时使用。
13.根据权利要求12所述的方法,其进一步包含从所述本机存储器检索所述结果;以及使用所述所检索的结果执行所述第二指令包。
14.根据权利要求8所述的方法,其中当跨越页边界时,所述方法进一步包含执行翻译旁视缓冲器(TLB)查找操作以将所述第二地址转换成与所述多路高速缓冲存储器相关联的物理地址;执行标记阵列查找操作以确定标记信息;以及基于所述标记信息及所述物理地址而存取存储器。
15.根据权利要求8所述的方法,其中使用相对寻址根据所述第一地址确定所述第二 地址。
16.一种多线程处理器,其包含执行单元,其包含本机存储器,其用于存储一个或一个以上数据值;以及逻辑电路,其适于确定与读取操作相关联的读取地址是否与同先前回写操作相关联的 回写地址匹配,所述逻辑电路适于在所述读取地址与所述回写地址匹配时将所述一个或一 个以上数据值存储在所述本机存储器处。
17.根据权利要求16所述的多线程处理器,其中所述逻辑电路适于从所述执行单元外 部的存储器的一存储器位置读取数据,当所述读取地址不与所述回写地址匹配时,所述存 储器位置对应于所述读取地址。
18.根据权利要求16所述的多线程处理器,其中所述执行单元包含多个执行阶段,所 述多个执行阶段包括回写阶段、解码阶段及读取寄存器堆阶段。
19.根据权利要求18所述的多线程处理器,其中所述逻辑电路包含一个或一个以上比 较器,所述一个或一个以上比较器适于将读取地址信息与写入地址信息比较且产生用于选 择性地启用数据转发的结果。
20.根据权利要求16所述的多线程处理器,其中所述本机存储器包含所述执行单元内 的一个或一个以上数据锁存器。
21.根据权利要求20所述的多线程处理器,其中所述一个或一个以上数据锁存器由数 据转发逻辑电路选择性地激活以选择性地启用数据转发。
22.根据权利要求16所述的多线程处理器,其进一步包含第二逻辑电路,所述第二逻 辑电路适于在与指令相关联的读取地址的至少一部分与同先前指令相关联的读取地址的一部分匹配时,在不执行标记阵列查找操作的情况下确定多路高速缓冲存储器内的一存储 器地址。
23.一种处理器,其包含用于将与来自第一指令包的执行的待写入到寄存器堆的结果相关联的写入识别符与 同具有多个执行单元的交错式多线程(IMT)处理器内的执行管线处的第二指令包相关联 的读取识别符比较的装置;以及用于在所述写入识别符与所述读取识别符匹配时将所述结果选择性地本机存储在执 行单元处以供在执行所述第二指令包时使用的装置。
24.根据权利要求23所述的处理器,其进一步包含用于根据与所述第一指令包相关联的第一地址确定与所述第二指令包相关联的第二 地址的装置;用于检查数据单元的加法器的进位位以确定是否确定所述第二地址跨越了与多路高 速缓冲存储器相关联的高速缓冲存储器线的高速缓冲存储器线边界的装置;以及用于在不存取翻译旁视缓冲器(TLB)或标记阵列的情况下使用与所述第一地址相关 联的本机存储的物理地址数据及路数据将虚拟地址转换成与所述多路高速缓冲存储器相 关联的物理地址的装置。
25.根据权利要求23所述的处理器,其中所述用于将与来自第一指令包的执行的待写 入到寄存器堆的结果相关联的写入识别符与同第二指令包相关联的读取识别符比较的装 置包含第一比较器,其适于接收所述写入识别符及所述读取识别符,且提供指示所述写入识 别符与所述读取识别符是否匹配的第一输出;第二比较器,其适于接收所述写入识别符及第二读取识别符,且提供指示所述写入识 别符与所述第二读取识别符是否匹配的第二输出;以及逻辑电路,其适于基于所述第一输出及所述第二输出而将本机存储的数据或寄存器数 据中的一者选择性地提供到所述执行单元以供在执行所述第二指令包时使用。
全文摘要
在一实施例中,揭示一种方法,所述方法包括在执行单元处的回写阶段期间将与来自第一指令的执行的待写入到寄存器堆的结果相关联的写入识别符与同具有多个执行单元的交错式多线程(IMT)处理器内的执行管线处的第二指令相关联的读取识别符比较。当所述写入识别符与所述读取识别符匹配时,所述方法进一步包括将所述结果存储在所述执行单元的本机存储器处以供所述执行单元在后续读取阶段中使用。
文档编号G06F9/34GK102089742SQ200980106466
公开日2011年6月8日 申请日期2009年2月3日 优先权日2008年2月26日
发明者卢奇安·科德雷斯库, 王琳, 苏雷什·K·文库马汉提 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1