描述了一个利用两个指令集的数据处理系统,两个指令集控制使用处理器核(2)的全N位数据通路。一个指令集是一32位指令集,而另一个是一16位指令集。两个指令集都是永久地配备的,而且具有相关的指令译码硬件。(*该技术在2015年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及数据处理领域。更具体地说,本专利技术涉及利用多个程序指令字集的数据处理。数据处理系统利用一在程序指令字的控制下进行操作的处理器核,这些指令字在译码时用于产生控制信号以控制该处理器核的不同单元以执行必须的功能,从而实现在程序指令字中规定的处理。典型的处理器核具有给定位宽度的数据通路,该宽度限制了对应一给定的指令可以操纵的数据字的长度。在数据处理领域,数据通路的宽度的增加一直是一个趋势,即逐渐从8位的体系结构转移到16位, 32位和64位的体系结构。在随着数据通路宽度增加的同时,指令集中的可能的指令的数目(在CISC和RISC策略中)以及这些指令的位长度也在增加。比如已经从16位指令集的16位体系结构转移到32位指令集的32位体系结构。随着向增加结构的宽度的迁移,一个问题是维护为以前各代机器所编写的程序软件的向后兼容。解决这一问题的一个途径是提供具有兼容模式的新系统。比如,数字设备公司(Digital Equipment Corporation)的VAX11计算机具有能对较早的PDP11计算机的指令进行译码的兼容模式。尽管这一方法允许使用较早的程序软件,然而这种使用并未充分利用所运行的新处理设备中的所提高的能力,即当系统实际上具有支持32位的运算的硬件时,可能只使用到多级16位运算。与结构的宽度的改变相关的另一问题是使用新的增加的位宽度指令集的计算机程序的大小趋于增加(32位的程序指令字所占的存储空间是16位程序指令字的两倍)。尽管在程序大小的增加在一定程度上为指令所抵销,因为新的指令指定的一个操作在以前可能需要多于一个的短指令,但是这一增加程序大小的趋势仍然存在。对付这一问题的一个方案是让用户能有效地指定它们的指令集。国际商用机器公司(International Business Machins Corporation)制造的IBM370计算机包括了一个可写的控制存储器,使用该控制存储器,用户可以建立它们自己的指令集,将指令程序字与所希望的处理器核的不同部分的操作进行映射。尽管这一方案提供了很好的灵活性,但难以产生高速度的操作,而且可写的控制存储器占据了很大的集成电路区域,因此有些不利。而且,设计一个有效的所说的指令集对用户来说是一个很重的负担。众所周知,在提供的系统中,一个指令集具有不同长度的程序指令字。这一方案的一个例子是由MOS工艺制造的6502微处理器。这一处理器使用8位的操作码,操作码后跟可变数目的操作数字节。在确定操作数和执行指令之前首先要对操作码进行译码。与固定的已知长度的程序指令字(即操作码和任意操作数)相比,这就要求多次存储器访问,而且是对系统性能的很大限制。从本专利技术提供的处理数据的装置可看到其一个特点,所述装置包括一个处理器核,它具有N位的数据通路,并且响应多个核控制信号;第一译码装置,它用于对来自一第一永久指令集(permanentinstruction set)的X位程序指令字进行译码,从而产生所述核控制信号,以触发使用所述N位的数据通路的处理;第二译码装置,它用于对来自一第二永久指令集(permanentinstruction set)的Y位程序指令字进行译码,从而产生所述核控制信号,以触发使用所述N位的数据通路的处理,Y小于X;并且一个指令集切换装置,它用于在接收到程序指令字时选择使用所述第一译码装置的第一处理模式,或者在接收到程序指令字时选择使用所述第二译码装置的第二处理模式。本专利技术认识到,在一个具有一宽标准的X位指令集和N位数据通路的系统中(比如一个操作在32位的数据通路的32位的指令集),在通常的编程中并未充分用到X位指令集的性能。这一情况的一个例子就是32位的转移指令。该转移指令可能使用很少用到的32兆字节的范围。从而,在大多数情况下,这种转移仅用于少数指令,并且32位指令的大多数位不携带任何信息。大多数使用32位指令集的程序通常具有低的代码密度,并且使用的程序存储空间多于所需要的。本专利技术通过提供一个单独的永久的Y位指令集而解决这一问题,其中Y小于X,该指令集仍然操作在全N位数据通路上。因此,使用到了N位的数据通路的性能,同时对于那些不要求该X位指令集的复杂性的应用来说,其代码密度得到提高。在具有两个永久指令集的装置中存在一个协同作用。通过使用制造商有效地实现的两个指令集(在诸如相对定时十分关键的RISC处理器的高性能系统中,这很重要)以及不牺牲N位数据通路的使用,允许使用者具有一种灵活性,以改变他们所使用的指令集来适应程序的环境。这种结构的另一优点是,在使用Y位指令集运行时,由于在每单位时间中运行较少字节的程序代码,因此对于存储程序码的存储系统的数据传输能力的要求就不十分高。这样就降低了复杂性及其成本。本专利技术也朝着与本领域的正常趋势相反的方向发展。这一趋势就是随着每一代新处理器的出现,要将更多的指令加入到该指令集中,为了适应这种要求,该指令集变得更宽了。相反,本专利技术是以一宽的复杂的指令集开始的,然后添加一较狭窄的指令集(以较少的空间用于大量的指令)以用于不要求宽指令集的整个范围的情况。应该认识到,第一指令集和第二指令集可以完全是独立的。然而,在本专利技术的较佳实施例中,所述第二指令集提供了所述第一指令集所提供的操作的一个子集。只要第二指令集是第一指令集的一个子集,由于处理器核的硬件单元可以实现得更易于适应两个指令集,因此就允许更高效的操作。当将一个增加了位长度的程序指令字的一个指令集已添加到一个现有的程序指令集中时,有可能要求来自两个指令集的程序指令字是正交的。然而,该指令集切换装置使得可以避免这一限制,而且允许系统中所述第二指令集非正交于所述第一指令集。自由使用非正交指令集使得系统设计者的任务变得容易了,而且实现了本专利技术的另一特色,即能够更高效地处理指令集的设计。该指令集切换装置可以是一个由手动干预进行控制的硬件型切换设备。然而,在本专利技术的较佳实施例中,所述指令集切换装置由响应一个指令集标志的装置构成,在用户的程序控制下,所述指令集标志是可设置的。在软件控制下,能够使用指令集切换装置在第一指令集和第二指令集之间进行切换是相当有益的。比如,对于大多数程序,为了提高代码密度程序员可以使用具有Y位程序指令字的第二指令集,而对于那些要求利用第一指令集的增加的能力和复杂性的程序的一小部分可以暂时切换到具有X位程序指令字的第一指令集。对两个独立的指令集的支持可能会对系统引入另外的复杂性。在本专利技术的较佳实施例中,所述处理器核包括一个程序状态寄存器(用于存储当前适当的处理状态数据)和一个保存程序状态寄存器,当出现一个程序异常而引起执行一个异常处理程序时所述保存程序状态寄存器用于存储与一个主程序有关的处理状态数据,所述指令集标志是所述处理状态数据的一部分。将指令集标志作为编程状态数据的一部分就保证了当发生一个异常时对该标志进行保存。以此方式,一个异常处理程序就能够处理两个处理模式的异常,并且允许它访问在保存程序状态寄存器中的所保存的指令集标志(如果在处理该异常中它十分重要的话)。而且,使得该异常处理程序能够使用任一指令集以提高设计约束所要求的速度或代码密度。为了处理不同指令集的不同的位长度,本专利技术的较佳实施例在所述的处理器核中包括一个程序计数器寄存器和一本文档来自技高网...
【技术保护点】
一种处理数据的装置,所述装置包括: 一个处理器核,它具有N位数据通路,并且响应多个核控制信号; 第一译码装置,它用于对一第一永久指令集的X位程序指令字进行译码以产生所述核控制信号,来触发利用所述N位数据通路的处理; 第二译码装置,它用于对一第二永久指令集的Y位程序指令字进行译码以产生所述核控制信号,来触发利用所述N位数据通路的处理,Y小于X;以及 一个指令集切换装置,它用于在接收到程序指令字时选择使用所述第一译码装置的一第一处理模式,或者在接收到程序指令字时选择使用所述第二译码装置的一第二处理模式。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:DV贾加,
申请(专利权)人:ARM有限公司,
类型:发明
国别省市:GB[英国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。