带有指令高速缓冲存储器的处理器.pdf

上传人:b*** 文档编号:1067829 上传时间:2018-03-29 格式:PDF 页数:20 大小:530.51KB
返回 下载 相关 举报
摘要
申请专利号:

CN97190850.8

申请日:

1997.05.14

公开号:

CN1197519A

公开日:

1998.10.28

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 9/28申请日:19970514授权公告日:20040407终止日期:20130514|||专利权的转移IPC(主分类):G06F 9/28变更事项:专利权人变更前权利人:NXP股份有限公司变更后权利人:倪泰软件有限公司变更事项:地址变更前权利人:荷兰艾恩德霍芬变更后权利人:美国特拉华州登记生效日:20120322|||专利权的转移IPC(主分类):G06F 9/28变更事项:专利权人变更前权利人:特莱麦迪雅技术公司变更后权利人:飞利浦半导体公司变更事项:地址变更前权利人:美国.加利福尼亚州变更后权利人:美国纽约登记生效日:20110804|||专利权的转移IPC(主分类):G06F 9/28变更事项:专利权人变更前权利人:飞利浦半导体公司变更后权利人:NXP股份有限公司变更事项:地址变更前权利人:美国纽约变更后权利人:荷兰艾恩德霍芬登记生效日:20110804|||授权|||著录事项变更变更项目:申请人 地址变更前:皇家菲利浦电子有限公司 荷兰艾恩德霍芬变更后:特莱麦迪雅技术公司 美国加利福尼亚州||||||申请人菲利浦电子有限公司皇家菲利浦电子有限公司|||公开

IPC分类号:

G06F9/28; G06F9/30; G06F12/04

主分类号:

G06F9/28; G06F9/30; G06F12/04

申请人:

菲利浦电子有限公司;

发明人:

M·安; E·雅各布斯; H·哈姆帕普拉姆; 李彦志

地址:

荷兰艾恩德霍芬

优先权:

1996.05.15 US 08/648,333; 1996.05.15 US 08/649,732

专利代理机构:

中国专利代理(香港)有限公司

代理人:

王勇;陈景峻

PDF下载: PDF下载
内容摘要

指令高速缓冲存储器具有输入总线与输出总线,输入总线接收供存储在指令高速缓冲存储器中的位,输出总线包括用于并行输出指令的位的一组平行线路。为了简化高速缓冲存储器的配置,在该组平行线路上的指令位的输出次序不同于经由输入总线接收这些位的逻辑次序。在加载进高速缓冲存储器之前,混洗指令字的位。然后在从高速缓冲存储器读出这些字时,读线路便不需要交叉。

权利要求书

1: 一种计算机处理器,包括 -具有一条输入总线与一条输出总线的指令高速缓冲存储器,该输 入总线接收供存储在该指令高速缓冲存储器中的指令的位,该输出总线 包括用于并行输出一条指令的位的一组线路,在该线路组上的指令的位 的空间输出次序不同于经由输入总线接收这些位的输入次序; -带有耦合在该输出总线上的指令输入端的用于接收该指令的位 的处理单元。
2: 按照权利要求1的计算机处理器,其中该指令高速缓冲存储器包 括一组存储器体,该指令包括多个位的字,该输入总线用于一次输入一 个存储体中的相应的字,以及其中该输出总线在其上输出来自一组存储 体中的一个存储体的指令字的连续的位的各线路是被该输出总线在其 上输出来自该组存储体的其它存储体的其它指令字的对应位的线路交 错的。
3: 按照权利要求2的计算机处理器,其中的指令包括若干输出字 节,连续的输出字节是在来自该组平行线路的空间连续的线路组上输出 的,以及其中一个输出字节的各位是由不同的存储体供给的。
4: 按照权利要求3的计算机处理器,其中各存储体包括用于各输出 字节的RAM列,该RAM列被组织成m组,其中m是表示一个输出字 中的字节数的整数,单个组中没有两列在同一存储体中。
5: 按照权利要求4的计算机处理器,包括m列多路复用器,各列多 路复用器进行操作将一位从各自的组中的各RAM列多路传输到该输出 字中。
6: 按照权利要求2至5中任何一项的计算机处理器,其中该指令高 速缓冲存储器用于存储n条指令,其中n为一整数变量,各存储体包含 来自n条指令中各条的至少一个相应的位。
7: 为按照权利要求1至6中任何一项的计算机处理器生成指令的方 法,包括下述步骤 -接收编译程序与/或连接程序产生的经过编译与连接的目标模 块, -混洗该经过编译与连接的目标模块以产生写入该指令高速缓冲 存储器中的第二目标模块,使得该第二目标模块的位以这些位出现在该 经过编译与连接的目标模块的次序依次地出现在该组平行线路上。
8: 按照权利要求7的方法,存储体组中的存储体的数目为2的幂, 其中在所述混洗步骤中,将来自在该编译与连接目标模块中具有相应的 第一位地址的该编译与连接的目标模块的各位放置在该第二目标模块 中的相应的第二位地址上,该相应的第二位地址为将该相应的第一位地 址逻辑旋转对应于所述幂的位位置数。
9: 按照权利要求7或8的方法,包括将该第二目标模块写入该指令 存储器的步骤。
10: 按照权利要求7、8或9的方法,该指令存储器包括一个主存储 器及一个高速缓冲存储器,该组存储体是包含在该高速缓冲存储器中 的。
11: 存储在计算机可读的介质上的用于执行权利要求7至10中任何 一项的方法的计算机软件。
12: 编程为执行按照权利要求7至10中任何一项的方法的计算机。
13: 按照权利要求2至6中任何一项的计算机处理器,其中该指令为 双字格式的,该指令高速缓冲存储器包括另一组与该存储体组的组织方 式相同的存储体,该存储体组与另一存储体组两者都布置在一个栈中, 用于分别输出双字格式的第一与第二字。

说明书


带有指令高速缓冲 存储器的处理器

    本发明涉及带有指令高速缓冲存储器的计算机处理器及为这种计算机处理器生成指令的方法。

    本发明更具体地涉及VLIW(超长指令字)处理器及具体涉及这种处理器的指令格式以及处理这种指令格式的装置与方法。

    VLIW处理器具有包含多个发布栏(issue slot)的指令字。该处理器还包含多个功能单元。各功能单元用于执行给定类型的一组操作。各功能单元与RISC的类似之处在于它能以流水线方式在各机器周期中起动指令。各发布栏用于保持各自的操作。同一指令字中的所有操作是在处理器的单一周期中在功能单元上并行开始的。从而VLIW实现细粒度的并行性。

    从而,VLIW机器上的指令通常包含多个操作。在传统机器上,各操作可称作一条独立的指令。然而,在VLIW机器中,各指令是由多个操作或no-op(空操作)构成的。

    和传统处理器相同,VLIW处理器使用诸如盘驱动器等存储设备来存储供在处理器上执行的指令流。VLIW处理器和传统处理器一样也能利用高速缓冲存储器来存储对处理器具有高带宽可存取性的指令流片段。

    VLIW机器中的指令是由程序员或编译程序从这些操作中建立的。从而VLIW处理器中的调度是受软件控制地。

    可将VLIW处理器与诸如矢量处理器及超标量处理器等其它类型的并行处理器比较如下。矢量处理器具有同时在多个数据项上执行的单一操作。超标量处理器与VLIW处理器一样实现细粒度并行性,但与VLIW处理器不同,超标量处理器在硬件中调度操作。

    由于长指令字,VLIW处理器具有严重的高速缓冲存储器使用问题。尤其是,大的代码长度导致高速缓冲存储器不能命中,即需要的指令不在高速缓冲存储器中的情况。大的代码长度还需要较高的主存储器带宽将代码从主存储器传送到高速缓冲存储器。

    有关本申请的技术背景的进一步信息可在这里通过引用引入的本专利申请的发明人申请的并转让给同一申请人(申请人参照号PHA23122)的共同未决专利申请及以下先有申请中找到,通过引用将它们包含在此:-1992年12月29日提交的美国申请(序列号为998,090)(PHA21,777),其中示出用于实现细粒度并行性的VLIW处理器体系结构;-1993年10月25日提交的美国申请(序列号为142,648)(PHA1205),其中示出保护位的使用;以及-1994年12月30日提交的美国申请(序列号为366,958)(PHA21,932),其中示出与VLIW体系结构一起使用的寄存器文件存储器。

    本发明的目的为简化高速缓冲存储器配置。

    本发明的另一目的为提供产生混洗位流的方法,该位流允许简化的高速缓冲存储器配置。

    本发明提供权利要求1中所述的计算机处理器。这便有可能独立地布置输入总线与输出总线以便满足分别对主存储器与处理单元的连接要求。从而采用了简化高速缓冲存储器配置的混洗位流。该高速缓冲存储器存储混洗指令流并将位从存储装置多路传输到总线上以便解开位的混洗。多条线路从存储装置引向总线。这些线路不互相交叉。

    本发明还涉及权利要求7中所述的方法。编译程序与/或连接程序生成经过编译与连接的目标模块并接收代码用于混合(swizzling)该编译与连接的软件以产生第二目标模块。从采用不交叉的输出总线线路的高速缓冲存储器结构的高速缓冲存储器中读取时,第二目标模块适合于解开混合(deswizzle)。

    下面参照附图用非限制性实例的方式描述本发明,附图中:

    图1a示出采用本发明的压缩指令格式的处理器。

    图1b示出图1a的处理器的CPU的更多细节。

    图2a~2e示出指令在高速缓冲存储器中的可能位置。

    图3展示按照本发明的代码编译与连接。

    图4为压缩与混洗模块的流程图。

    图5扩充图4的框902。

    图6a为展示输入端上的指令高速缓冲存储器103的操作的示意图。

    图6b为展示输出端上的一部分指令高速缓冲存储器103的操作的示意图。

    图7为展示输出端上的指令高速缓冲存储器104的操作的示意图。

    图8展示解压缩过程。

    图1a示出按照本发明的处理器的一般结构。按照本发明的微处理器包含CPU102、指令高速缓冲存储器103及数据高速缓冲存储器105。CPU用高带宽总线连接在高速缓冲存储器上。微处理器还包含存储指令流的存储器104。

    将高速缓冲存储器103构造成具有512位的双字。字中的各个字节是可寻址的,但位不能。字节为8位长。最好双字能在单个时钟周期中作为单字存取。

    指令流作为压缩格式的指令存储。压缩格式既用在存储器104也用在高速缓冲存储器103中。

    图1b示出按照本发明的VLIW处理器的更多细节。处理器包含多端口寄存器文件存储器150、若干功能单元151、152、153、…及指令发布寄存器152。多端口寄存器文件存储器存储来自功能单元的结果及用于功能单元的操作数。指令发布寄存器包含多个发布栏用于包含要在单个时钟周期中在功能单元151、152、153、…上并行开始的操作。解压缩单元155将来自指令高速缓冲存储器103的压缩的指令转换成IIR 154可用的形式。

    简言之,压缩的指令包含指定该压缩的指令要使用的发布栏的格式字段。为了提高检索效率,将格式位存储在与这些格式位相关的指令的前面的指令中。这便允许了指令检索的流水作业。对于N个发布栏的机器有2*N个格式位,组织成N个2位的组,各组对应于一个发布栏。一组中的位指定是否要使用对应的发布栏以及指令中该发布栏的操作占用的操作长度。

    图3示出源代码如何变成可加载的压缩目标模块的图。首先源代码801必须经编译程度802编译以建立第一组目标模块803。这些模块由连接程序804连接以建立第二类型的目标模块805。然后在806上压缩与混洗这一模块以产生可加载模块807。

    可采用任何标准编译程序或连接程序。目标模块II包含若干标准数据结构。其中包含:首部;全程与局部符号表;重定位信息参照表;分段表;及调试信息,其中的一些是由压缩与混洗模块807使用的。目标模块II还具有分区,其中包含要处理的指令所在的正文分区及记录该正文的出处源文件的源分区。

    图4中示出压缩与混洗模块的高层流程图。在901上,读入目标模块II。在902上处理正文分区。在903上处理其它分段。在904上更新首部。在905上输出该目标模块。

    图5扩充框902。在1001上获得参照表,即重定位信息。在1002上,收集分支目标,因为它们不要压缩。在1003上,软件检验判定源分区中有无更多的文件。如果有,便在1004上检索对应于下一文件的部分。然后在1005上压缩该部分。在1006上,更新源分区中的文件信息。在1007上,更新局部符号表。

    一旦源分区中不再有文件,便在1008上更新全程符号表。然后在1009上,更新下一正文段中的地址参照。然后在1010上实行256位混洗。下面将讨论这种混洗的动机。

    图8扩充框1005。首先在1101上判定是否有其它指令要压缩。如果有,便在1102上检索下一条指令。随后在1103上压缩该指令中的各操作并在1108上更新散布表(scatter table)。散布表为新的数据结构,用作压缩与混洗的结果,下面将对其进一步说明。然后在1104,组合一条指令中的所有操作及下一随后指令的格式位。如果当前指令中包含地址,随后在1105上必须更新参照表中的重定位信息。在1106上,收集更新正文段中的地址参照所需的信息。在1107上,将压缩的指令附加在输出位串的尾部并将控制返回给框1101。当不再有指令时,控制返回到框1006。

    可将用作本发明的压缩与混洗的结果的散布表说明如下。

    参照表包含指令流所使用的地址的单元表及列出在这些单元上的实际地址的对应表。压缩代码时以及加载它时,必须更新这些地址。从而,在这些时间上使用参照表以便更新。

    然而,在压缩与混洗代码时,是将地址的实际位互相分离并重新排序的。因此,散布表为参照表中的各地址列出各位所在位置。在较佳实施例中该表列出位字段的宽度、从源文本中地址的对应变址的偏移量、来自目的文本中的地址中的对应变址的对应偏移量。

    当加载目标模块III以便在处理器上运行时,即使在解开这些位的混洗以前散布表也容许更新列出在参照表中的地址。

    为了VLIW处理器处理如上所述压缩的指令,必须解压缩指令。解压缩之后,指令将填入具有N个发布栏的指令寄存器中,在较佳实施例的情况中N为5。图9为解压缩过程的示意图。指令来自存储器1201,即来自主存储器104或指令高速缓冲存储器105之一。在1203解压缩之前,指令必须在1201解开混洗,这将在下面进一步说明。在1203解压缩之后,指令便能进入CPU1204。位混合

    当指令为诸如512位双字长时,高速缓冲存储器结构变复杂了。为了简化芯片的配置,混合指令的位是有利的。这里混合(swizzle)与混洗(shuffle)两词用来表示同一事物。以下是混合位的算法。

    for(k=0;k<4;k=k+1)

    for(i=0;i<8;i=i+1)

    for(j=0;j<8;j=j+1)

    begin

         word_shuffled[k*64+j*8+i]=

              word_unshuffled[(4*i+k)*8+j]

    end其中i、j与k为整数下标;word_shuffled为用于存储混洗的字的位的矩阵;而word_unshuffled则为用于存储未混洗的字的位的矩阵。

    在这一方法中,在数组“word_shuffled”中写入一位的下标为从数组“word_unshuffled”中读出该位处的下标的三位逻辑旋转。(在n位逻辑旋转中将下标的位向高位位置移位n位并将下标的n个最高位放在n个最低位位置上)。为此后描述的情况选择了n=3位旋转的特定选择,其中从高速缓冲存储器中读取位的空间次序为从8(=2n,n=3)个不同存储体中的循环位交错。

    高速缓冲存储器结构

    图6a示出在VLIW指令的高效处理中有用的高速缓冲存储器结构的输入端上的操作。这一高速缓冲存储器包含16个各2k字节的存储体601~616。这些存储体共用一条输入总线617。这些高速缓冲存储器分成两个栈。左边的栈称作“低的”而右边的栈则称作“高的”。

    高速缓冲存储器每次只能在一个存储体中取输入,从而每次只有4个字节。寻址确定正在填充哪一存储体中的哪4个字节。对于要存储在高速缓冲存储器中的各512位的字,各存储体中存储4个字节。所示的各存储体中的阴影部分表示用于加载一个给定的字的各存储体的对应部分。这些阴影部分只是为了说明。任何给定的字都可加载进这些存储体的对应部分的任何组中。

    按照上述算法混合之后,混合的字的4个顺序字节部分按照次序608、616、606、614、604、612、602、610、607、615、605、613、603、611、601、609加载进存储体中。加载混合的字的4字节部分的次序是用表示存储体的框中的罗马数字表示的。

    图6b示出如何从高速缓冲存储器中读出混合字。图6b中只示出低栈的存储体的阴影部分。高的部分是类似的。各阴影部分601a~608a具有32位。这些位是用所示的连接加载在称作bus256low的输出总线上的,即以下述次序:608a~位0,607a~位0,…,601a~位0;608a~位1,607a~位1,…,601a~位1;…;608a~位31,607a~位31,…,601a~位31。利用这些连接自动将字解开混合到其正确的位次序。

    线路束620、621、…、622一起构成输出bus256low。这些线路不交叉地通过高速缓冲存储器到输出端。

    在输出端上,高速缓冲存储器看上去象图7。在控制单元704通过保证这些位在上面规定的输出次序的移位网络703的控制下从栈低701与栈高702中读出这些位。以这一方式,不用束620、621、…622与类似的线路交叉便能保证512位字的整个输出。

    总结:本发明提供了在计算机处理器中使用的指令高速缓冲存储器,其包括:

    用于存储一个指令流的各个位的装置,这些位是预混洗的;以及

    用于将这些位从存储装置多路传输到总线上以便解开这些位的混洗的装置,该多路传输装置包括从存储装置引导到总线上的多条线路,这些线路不互相交叉。指令流最好是双字格式;而该高速缓冲存储器包括第一栈用于存储来自双字格式的第一字,以及包括第二栈用于存储来自双字格式的第二字。

    最好将栈组织成存储体,并且对于输出总线上的一个输出字节的每一位有一个存储体。多路复用器装置可进行操作从各存储体传送一位以便建立一个输出字节。

    高速缓冲存储器最好是用来存储n条指令的,其中n为一整数变量,而各存储体包含来自该n条指令中各条的至少一个相应的位。各存储体包含一个输出字的各字节的RAM列。将这些RAM列组织成m个组,其中m为表示输出字中的字节数的整数,各相应组包含该输出字的各位的相应RAM列,单个组中没有两个RAM列在同一存储体中。该多路复用器装置包括m列多路复用器,各列多路复用器可进行操作将来自各自的组中的各RAM列的一位多路传输到输出字中。

    在一个实施例中,指令高速缓冲存储器包括8个存储体的第一与第二栈,各存储体包括1位64个RAM单元的8个RAM,RAM列被组织成8个RAM列的组,第一个栈用于存储双字输出的较低阶位,第二栈用于存储双字输出的较高阶位。多路传输装置进行操作将来自各自的组中的各RAM列的一位多路传输到输出字中。

    高速缓冲存储器最好包括第一与第二总线,第一总线用于输出输出字的较低阶位而第二总线则用于输出输出字的较高阶位。作为位混洗的结果,第一与第二总线的线路可无交叉地位于处理器的同一平面上。

    为了为计算机处理器生成指令流,提供了存储在计算机存储介质中的用于生成混合指令的计算机软件,包括:-用于接收由编译程序与/或连接程序产生的经过编译与连接的目标模块的代码,这一目标模块是存储在计算机存储介质中的;以及-用于混合该经过编译与连接的软件以产生第二目标模块的代码,该第二目标模块适合于在采用其输出总线线路不交叉的高速缓冲存储器结构从高速缓冲存储器读取时被解开混合。用于混合的代码最好生成存储在计算机存储介质中的散布表,用于存储所混洗的指令的位相对于这些位的出处指令的位置。

    以这一方法,本发明提供了存储在计算机存储介质中的位流,该位流至少包含供在计算机处理器上执行并存储在计算机存储介质中的一个指令的一部分,该部分包含许多位,这些位是在混洗次序中的,该混洗的次序允许计算机处理器的简化芯片配置。作为示例,该指令具有512位。

带有指令高速缓冲存储器的处理器.pdf_第1页
第1页 / 共20页
带有指令高速缓冲存储器的处理器.pdf_第2页
第2页 / 共20页
带有指令高速缓冲存储器的处理器.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《带有指令高速缓冲存储器的处理器.pdf》由会员分享,可在线阅读,更多相关《带有指令高速缓冲存储器的处理器.pdf(20页珍藏版)》请在专利查询网上搜索。

指令高速缓冲存储器具有输入总线与输出总线,输入总线接收供存储在指令高速缓冲存储器中的位,输出总线包括用于并行输出指令的位的一组平行线路。为了简化高速缓冲存储器的配置,在该组平行线路上的指令位的输出次序不同于经由输入总线接收这些位的逻辑次序。在加载进高速缓冲存储器之前,混洗指令字的位。然后在从高速缓冲存储器读出这些字时,读线路便不需要交叉。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1