微处理器、操作处理执行方法和记录介质的制作方法

文档序号:6416298阅读:127来源:国知局
专利名称:微处理器、操作处理执行方法和记录介质的制作方法
技术领域
本发明一般涉及微处理器,操作处理执行方法和记录介质,更具体地涉及到能对应于微码执行操作处理的微处理器,操作处理执行方法,以及计算机可读记录介质。
近来,微处理器的操作速度和集成密度有了相当大的提高。这种提高导致个人计算机、便携式终端设备之类的硬件技术的提高,以及个人计算机之类的信息处理技术的提高。
然而,由于当今信息处理技术方面的发展,操作处理系统本身已变得高速和复杂。因此,如象高速缓存(Cache)这类存储部件的带宽增加,而每次带宽的增加要求重新设计硬件和软件。
与此相应,存在一种需求以实现能够在短时间内被开发的微处理器,即使操作处理系统本身变得高速与复杂,也无需增加象Cache这种存储部件的带宽。
以下给出对典型的常规微处理器的描述,这种微处理器根据是指令码的微码执行预定的操作处理。


图1显示了常规超长指令字(VLIW)型微处理器的硬件结构。
因为需要以高速执行大量的操作处理,图1所示的微处理器由许多执行流水线处理,并且按并行执行操作处理的流水线构成。每个流水线由操作指令读取部件311,操作指令解码部件312,数据读取部件313,操作处理执行部件314,以及操作结果写入部件315构成。由于此常规微处理器是由许多流水线构成,就每个操作处理指令而言,由多个流水线执行一些复杂的操作处理指令,水平向的进展得以实行。
例如,在微处理器是由4种流水线301,302,303和304所构成的情况下,如图1所示,每个流水线的操作结果被写入存储部件305,而且该操作结果被另外的流水线,经过存储部件305读出,以致数据可在流水线之间传送。另外,如果在流水线向存储部件305写操作的过程中有冲突,由写仲裁部件306执行仲裁处理以避免冲突的发生。
下面,将给出每个部件的功能说明,这些部件形成具有上面所说结构的微处理器的流水线。
操作指令读取部件311具有读取(取指)微码的功能,微码包括信息以及处理指令。信息用以指示操作处理所须输入和输出数据的传送内容。处理指令指的是隶属操作处理一条流水线的指令。
操作指令解码部件312具有对由操作指令读取部件311读出的微码进行解码的功能。
数据读取部件313,有根据指示输入和输出数据传送内容的信息,从存储部件305读取为操作处理所必需的输入数据的功能。上述信息包含在由操作指令解码部件312解码的微码中。
操作处理执行部件314,具有根据由操作指令解码部件312解码的处理指令,和由数据读取部件313读取的输入数据,执行预定操作的功能。在常规的微处理器中,操作处理执行部件314包含单操作单元的资源。另外,使用单个操作单元资源的基本指令称做精简指令集计算机(RISC)类指令。
操作结果写入部件315,具有在存储部件305中写入操作处理执行部件314的操作结果的功能。
另一方面,图2是表示复杂指令集计算机(CISC)类微处理器的操作处理的时间关系图。
CISC类型的微处理器能够处理复杂的高级功能操作处理的处理指令,如象乘法和除法以及串操作。换句话说,CISC类型的微处理器通过使一个处理指令执行多个RISC类型的指令,而能减少需要执行的指令总数。
现将对图2示例的CISC类型微处理器的处理过程予以说明,其中指令″a″和指令″b″的处理指令要被执行,在图2中,Fa和Fb分别表示处理指令″a″和″b″的取指周期时间;D(1)到D(4)分别表示在处理指令″a″期间RISC类指令的解码时间,D(5)到D(8)分别表示在处理指令″b″期间RISC类指令的解码时间;R(1)到R(4)分别表示执行处理指令″a″所需的输入数据的读出时间,R(5)到R(8)分别表示执行处理指令″b″所需的输入数据的读出时间;E(1)到E(4)分别表示在处理指令″a″期间RISC类指令的执行时间,E(5)到E(8)分别表示在处理指令″b″期间RISC类指令的执行时间;W(1)到W(4)分别表示在处理指令″a″期间RISC类指令的操作结果的写入时间,而W(5)到W(8)分别表示在处理指令“b”期间RISC类指令的操作结果的写入时间。另外,为方便起见,假定每个处理指令“a和”“b”例如由4个RISC类指令构成。
CISC类型的微处理器以4个周期(Fa)取处理指令“a”,并且在处理指令“a”的期间,对每个RISC类型的指令按所示顺序执行解码处理(D(1)到(4),读处理(R(1)到R(4)),指令执行处理(E(1)到(E(4))以及写处理(W(1)到W(4))。因此,如图2所示,以11个周期结束对处理指令“a”的处理。
另外,在取出处理指令“a”以后,作解码处理(D(1)到D(4))的同时,CISC类型的微处理器取下一处理指令“b”(Fb),并且在处理指令“b”的期间对每个RISC类型的指令,按所示顺序执行解码处理(D(5)到D(8),读处理(R(5)到R(8)),指令执行处理(E(5)到E(8))以及写处理(W(5)到W(8))。因此,如图2所示,处理指令“a”和处理指令“b”的处理以总共15个周期完成。
按照CISC类型的微处理器,每指令的周期(CPI),通过一个处理指令执行多个RISC类指令而变得很长。但是在整个程序期间执行的指令数可以减少。
另一方面,图3是一时间图,显示RISC类型微处理器的操作过程。
RISC类型的微处理器被设计,以使用软件技术来补偿低级硬件功能。当执行以高级语言写的程序时,RISC类型的处理器依靠减少频繁出现的基础指令的执行周期数,可以执行高速处理,换言之,一个处理指令的内容完全由RISC类指令形成,或者预先被划分成RISC类指令,以便CPI能够减少。
下面将对图3示例的RISC类型微处理器的处理过程给予说明,其中RISC类指令(1)到(8)要被执行。在图3中,F(1)到F(8)分别表示RISC类指令(1)到(8)的取指周期时间;D(1)到D(8)分别表示RISC类指令(1)到(8)的解码时间;R(1)到R(8)分别表示执行RISC类指令(1)到(8)所要求的读时间;E(1)到E(8)分别表示RISC类指令(1)到(8)的执行时间;而W(1)到W(8)分别表示RISC类指令(1)到(8)的操作结果写入时间。
RISC类型的微处理器取RISC类指令(1)(F(1)),并就RISC类指令(1)按所示顺序执行解码处理(D(1))读处理(R(1)),指令执行处理(E(1))以及写处理(W(1)),所以,如图3中所示RISC类指令(1)的处理过程以5个周期结束。
另外,在取指RISC类指令(1)之后作解码处理(D(1))的同时,RISC类型微处理器取指下一条RISC类指令(2),并就RISC类指令(2)按所示顺序执行解码处理(D(2)),读处理(R(2)),指令执行处理(E(2))以及写处理(W(2))。此后,对于RISC类指令(3)到(8),类似的处理(F(3)到F(8),D(3)到D(8),R(3)到R(8),E(3)到E(8)和W(3)到W(8)被执行。因此,RISC类指令(1)到(8)的处理如图3所显示的,以总共12个周期完成。
相应地,通过完全以RISC类指令构成一条处理指令的内容,在RISC类型微处理器的处理过程中能减少CPI。
然而,常规的微处理器会有这样的问题由于指令系统的高级和复杂微码变得冗长,同时由于操作处理流水线的并行排列,如象Cache这样的存储部件的带宽增加。
另外,虽然常规的CISC类型微处理器通过以许多RISC类指令形成一条高级处理指令,如图2所示能够减少处理指令的数目,然而存在CPI增加的问题。另一方面,如图3所示,虽然通过简化处理指令使一条处理指令预先分成多个RISC类型指令,常规RISC类型的微处理器能减少CPI,然而出现处理指令数目增加的问题。所以,在常规CISC类型微处理器中遇到的问题与在常规RISC类型微处理器中遇到的问题是彼此相反的。
此外,在常规的微处理器中,一操作单元资源的操作结果存储在如像寄存器的存储部件中,并且通过对此存储部件的访问同下一操作单元资源交换数据。为此,为了确保在写时间到存储部件操作结果变成确定的时间与此数据被访问时间之间,常规的微处理器要求最小的间隔是一周期或稍多,并且在此最小周期数中不得执行操作处理。
再者,当一处理指令包含多个RISC类指令,并且一RISC类指令的操作结果不被用做另一RISC类指令的输入时,常规微处理器按RISC类指令的输入顺序将RISC类指令的操作结果写入存储部件。因而,随后的RISC类指令被保持,直到前面的RISC类指令的操作处理结束,而且在此期间产生流水线的失速(stall),因此使得在最小周期数中不能执行操作处理。
还有,在流水线对存储部件写入期间发生冲突的情况下,常规的微处理器在写仲裁部件中执行写仲裁处理以避免冲突。然而,当流水线并行排列时,存在仲裁处理的控制变得复杂的问题。
换言之,常规微处理器从存储部件读输入数据以及执行预定的操作处理,但是输入数据未被保留。为此,如果需要同样的输入数据必需再读一次。因而影响了操作处理的有效执行。另外,常规的微处理器还有这样的问题被重新读出的输入数据因执行其它操作处理而改变。
常规微处理器还存在这样的问题随着并行排列的流水线数目的增加,硬件的规模增加以及功耗增大。
因此,本发明的一个目是提供新的有用的微处理器,操作处理执行方法以及记录介质,通过它们上面所说的问题可被排除。
本发明的另一个更具体的目的是提供微处理器,操作处理执行方法和计算机可读记录介质,它们能够对付复杂而高级的操作处理指令(处理指令)而不必扩充微码的长度,能够依靠操作处理指令使操作处理有效地执行,并且降低硬件规模又减少功率消耗。
本发明还有一目的是提供微处理器以便能执行至少有一精简指令集计算机(RISC)类指令的处理指令。其特征在于指令解码装置(对应于后面所说实施例的操作指令解码部件3)用以对微码进行解码,微码中包含指示输入和输出数据传送内容信息和指示处理指令存储位置的地址信息;数据读取装置(对应于后面所说实施例的数据读出部件4)用以根据由所说指令解码装置解码的指示输入和输出数据传送内容信息读取输入数据,以及根据地址信息读取处理指令;还有操作处理执行装置(对应于后面所说实施例的操作处理执行部件7),提供一个或多个操作单元资源(对应于后面所说实施例的操作单元资源36,37,38,42,43,44,45,63,64,65,77,78,79,80),以能根据由所说数据读取装置读入的输入数据和处理指令执行操作处理。
按照本发明以这种方式构造的微处理器,可以根据用以表示形成微码的处理指令的存储位置的地址信息,读取处理指令。从而使其能够对付复杂而又高级的操作处理指令,且无需扩展微码的长度。
另外,按照本发明的微处理器中用以执行操作处理的微码,包含表示处理指令存储位置的地址信息。因此,它可以使微码缩到最短并使用固定的长度,即使是操作处理是很复杂的情况之下。所以,按照本发明的微处理器通过减小微码的长度能够降低象指令Cache等存储部件的容量。
上述微处理器其可能的特征在于微码可由至少一条RISC类指令直接替代表示处理指令存储位置的地址信息来实现。
例如,在处理指令是一基本指令(RISC类指令)的情况下,较之于表示处理指令的存储位置的地址信息解码处理指令,该指令没有那么复杂。而微码的字宽度和位宽度将不增加。因此,可以直接以RISC类指令当成处理指令。
为此,按照本发明的微处理器执行RISC类指令,无需根据地址信息读出处理指令,并能有效地执行操作处理。
上述微处理器另外的特征在于处理指令存储装置(对应于后述实施例的查找表(LUT)6)能够任意地构造处理指令;输入和输出数据存储装置(对应于后述实施例的存储部件5),用以存储所说操作处理执行装置的操作结果以及能随意设置输入数据,这里所说的数据读取装置,根据表示处理指令存储位置的地址信息访问所说处理指令存储装置,读出对应的处理指令,并根据表示输入和输出数据传送内容的信息,进一步从所说输入和输出数据存储装置读取输入数据。
按照本发明的微处理器,预定的处理指令来自与地址信息对应的处理指令存储装置,并且按照此处理指令执行操作处理。另外,依靠采用可改写的RAM构造处理指令存储装置,可让用户随意指定复杂的处理指令,从而使它能容易地对付今后还能进一步增加的复杂而高级的操作处理。
还有,由于处理指令存储装置的提供,用户能随意指定复杂的处理指令,按照本发明的微处理器,依靠修改处理指令存储装置能够容易地对付版本的改变,没有必要修改复杂的控制程序。同时,它能更容易保证应用程序的兼容性。
上述微处理器可能具有的特征在于所说的操作处理执行装置包含许多操作单元资源(对应于后面所述实施例的操作单元资源36,37,38,42,43,44,45,63,64,65,77,78,79和80),通过在所说处理指令存储装置中修改处理指令,它们能被随意连接。这里一操作单元资源的操作结果直接用做下一操作单元资源的输入。
上述微处理器可能特征在于所说操作处理执行装置包含直通通路(对应于后述实施例中图14所示直通通路),该直通通路对不进一步要求操作单元资源的处理传送输入数据,这里直通通路的输出结果直接用做下一操作单元资源的输入。
按照本发明的微处理器,操作处理执行装置中使用操作单元资源的指令序列以及使用的操作单元资源的数量可由用户任意地改变。而且,在不使用操作单元资源时,经由直通通路所传送的输入和输出数据,它可以有效地执行操作处理。
上面的微处理器其特征可能还在于所说的操作处理执行装置,当一操作单元资源的操作结果直接用做下一操作单元资源的输入时,仅仅输出对应于处理指令的最终操作单元资源的操作结果。
按照本发明的微处理器,它能使用一操作单元资源的操作结果直接作为下一操作单元资源的输入。结果,以输入和输出数据存储装置的操作结果交换得以减少,从而避免访问输入和输出数据存储装置的冲突。
上述微处理器可能的特征在于所说的操作处理执行装置以并行方式执行处理指令中提供的RISC类指令,并且按操作处理结束的次序输出操作结果,与操作处理的执行次序无关。
按照本发明的微处理器,按向操作处理执行装置输入操作处理指令的次序并行地执行操作处理(按操作处理指令的输入次序执行操作处理,在下文称其为有序执行(in-order execution)),且还按操作处理结束的次序将操作的结果写入输入和输出数据存储装置(按操作处理结束的次序写操作结果,在下文称其为乱序输出(out-of-orderoutput))。
虽然常规微处理器类似于本发明产生有序执行,而操作结果按操作处理指令输入次序写入输入和输出数据存储装置,与操作处理的结束无关。(按操作处理指令的输入次序写操作结果,在下文称其为有序输出(in-order output))。
相应地,由于本发明的微处理器是按操作处理结束的顺序写操作结果到输入和输出数据存储装置,不需要让前面结束的操作处理等待,它可以让一操作处理指令领先于另外的运行,从而使它能在最少的周期数目内执行操作处理。
上面所说的微处理器其特征可能在于在所说操作处理执行装置中,每个操作单元资源具有多端口的结构(对应于后面所说的实施例的写部件46,47,48和49),以独立地输出操作结果。
按照本发明的微处理器,它可以避免操作单元资源写操作结果的冲突。
上述微处理器其特征可能在于如果存在许多具有同样功能的操作单元资源,所说操作处理执行装置使用具有同样功能的其它操作单元资源,执行冲突解决处理。许多RISC类型的指令包含在一条处理指令中,当RISC类型指令并行执行时产生操作单元资源的冲突。
按照本发明的微处理器,通过分配许多具有相同功能并且安排在相同流水线中的操作单元资源,能够相对于操作处理指令执行冲突解决处理。
上面所说的微处理器其特征在于在所说输入和输出数据存储装置中存储所说操作结果的同时,第一通路(对应于后面所述实施例的存储部件51),对应于所说操作处理执行装置执行的处理指令,把最终操作单元资源的操作结果直接通知所说数据读取装置;第二通路(对应于后述实施例的存储部件51)在锁存所说操作结果后,将所说的操作结果通知所说的数据读入装置。当使用所说的下一个处理指令的操作结果时,这里所说的数据读入装置从所说第一和第二通路之一读取操作结果,而不是从所说输入和输出数据存储装置读取结果。
按照本发明的微处理器,第一通路把操作结果直接通知给数据读取装置,而在锁存此操作结果以后,第二通路把操作结果通知数据读取装置,为此,不需要经输入和输出数据存储装置交换操作结果,而且操作处理能以最少的周期数来执行。
上述微处理器其特征还可能在于第三通路(对应于后面所述实施例的锁存61,71,72,73和74)在锁存由所说数据读取装置读出的输入数据以后,通知在所说操作处理执行装置中的操作单元资源,当再使用所说的输入数据时,这里所说的操作处理执行装置从所说第三通路读取输入数据。
本发明的微处理器锁存从例如寄存器,Cache和存储器这些输入输出数据存储装置输入的数据。于是,它用不着再次输入所输入的数据,并且在操作单元资源操作期间此输入数据能被重新使用。因此,本发明的微处理器即使在输入数据被其它操作处理所重写的情况下,在重写之前也能使用输入数据。
上述微处理器其特征还可能在于第四通路(对应于后面所述实施例中图24、25A和25B所示的直通通路)把由所说数据读取装置读出的输入数据直接通知给所说操作处理执行装置中的操作单元资源,这里所说的操作处理执行装置使用来自所说第三和第四通路之一的输入数据。
按照本发明的微处理器,它能够使锁定来自输入和输出数据存储装置的输入和输出数据所必需的操作处理延时为最小。
上述微处理器其特征可能在于锁定的输入数据,在所说操作处理执行装置的每个操作单元资源中是可以使用的。
上述微处理器的特征可能在于所说的数据读取装置具有带多端口结构的输入端口,用以从所说的输入和输出数据存储装置输入输入数据,并且同时给每个操作单元资源供应这些输入数据。
按照本发明的微处理器,其用以输入数据的输入端口具有多端口结构,并且所需的输入数据能被同时输入。因此,不需要从输入和输出数据存储装置重复地读输入数据,并且执行操作处理所要求的时间减为最小。
上面所述的微处理器其特征可能还在于许多流水线(对应于后述实施例中的流水线11,11a以及11n)能对应于微码执行操作处理。
按照本发明的微处理器,依靠提供许多流水线能执行相应于微码的操作处理而能有效地执行操作处理。
本发明还有一个目的是提供一微处理器,能够执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于许多操作单元资源(对应于后述实施例中的操作单元资源36,37,38,42,43,44,45,63,64,65,77,78,79和80)能够根据输入数据和处理指令执行操作处理,并且通过修改处理指令而任意地连接,这里一操作单元资源的操作结果用做下一操作单元资源的输入,不需要进行暂存。
该微处理器其特征可能还在于一直通通路(对应于后述实施例中图14所示的直通通路)对于不进一步要求操作单元资源的处理,它传送输入数据。这里直通通路的输出结果直接用做下一操作单元资源的输入。
按照本发明的微处理器,在操作处理执行装置中其中被采用的操作单元资源的顺序和使用的操作单元资源的数量可由用户任意改变。此外,当不使用操作单元资源时,靠经直通通路传送输入和输出数据能够有效地执行操作处理。
微处理器可能的特征在于当一操作单元资源的操作结果不进行暂存,直接用做下一操作单元资源的输入时,仅对对应于处理指令的最后操作单元资源的操作结果输出。
按照本发明的微处理器,它能够直接使用一操作单元资源的操作结果做为下一操作单元资源的输入。因而,减少了以输入和输出数据存储装置的操作结果的交换,从而避免访问输入和输出数据存储装置的冲突。
本发明的另外目的是提供能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令的微处理器,其特征在于操作处理执行装置并行执行处理指令中提供的RISC类型指令,并且按操作处理结束的顺序输出操作结果,与操作处理执行顺序无关。
按照本发明的微处理器,按向操作处理执行装置输入操作处理指令的次序,并行地执行操作处理(此后,按操作处理指令输入的次序执行操作处理被称做有序执行),而且,操作的结果按操作处理结束的次序写入输入和输出数据存储装置(按操作处理结束的顺序写入操作结果在下文称其谓乱序输出)。
虽然常规的微处理器类似于本发明进行有序执行,而操作结果按操作处理指令输入的顺序写入输入和输出数据存储装置,与操作处理的结束无关(按操作处理指令的输入次序写操作结果在下文被称作有序输出)。
相应地,因为本发明的微处理器按操作处理结束的次序写操作结果到输入和输出数据存储装置,不会让前面结束的操作处理等待,可以使一操作处理指令先于另外的进行。从而使其可在最少的周期数内执行操作处理。
本发明还有另外的目的是提供能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令的微处理器,其特征在于许多操作单元资源根据输入数据和处理指令执行操作处理。这里每个所说操作单元资源具有多端口结构,独立地输出操作结果。
按照本发明的微处理器,它能够避免写操作单元资源的操作结果时的冲突。
本发明再一个目的是提供一操作处理执行方法,使微处理器能够执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于一指令解码步骤,对包含指出输入和输出数据传送内容信息和地址信息的微码进行解码,该地址信息表示处理指令的存储位置;一数据读取步骤,根据表示所说指令解码步骤解码的输入和输出数据传送内容的信息读取输入数据,并根据地址信息读取处理指令;一操作处理执行步骤,提供一个或多个操作单元资源使能够根据所说数据读取装置读出的输入数据及处理指令,执行操作处理。
按照本发明的操作处理执行方法,微处理器能根据地址信息读取处理指令。此地址信息表示形成微码的处理指令的存储位置。因此,无需扩展微码,它能对付复杂而高级的操作处理指令。
本发明的另一目的是提供一微处理器,其特征在于指令解码装置用以对微码解码;操作处理执行装置包含许多操作单元资源,能并行执行操作处理,并且操作处理执行装置多于所说的指令解码装置。这里在所说的操作处理执行装置中,操作单元资源的操作顺序是可变化的。
微处理器可能的特征在于所说的许多操作单元资源是由不同的操作单元构成。
按照本发明的微处理器,可以通过改变操作单元资源的操作次序,以实现各种的操作指令。另外,依靠使用能执行并行功能的操作单元资源,它能够实现流水线处理和并行操作处理,从而实现象DSP(数字信号处理器)的高速操作,以及象多处理器的高速操作。再则,靠形成的不同的操作单元资源,使用最少数目的操作单元,大约为RISC类型微处理器中使用的操作单元的数目,使其可以实现并行或流水线处理。
本发明还有另一目的是提供微处理器,其特征在于指令解码装置以解码由基本指令码和操作标志(ID)构成的微码,其中的ID指示一扩展指令码的存储位置;操作处理执行装置,根据由所说指令解码装置解码的操作指令,通过选择操作单元资源以执行操作处理。这里流水线处理的执行通过基本指令码选择第一操作单元资源并通过扩展指令码选择下一操作单元资源。
按照本发明的微处理器,它能提供足够的时间范围以解码执行复杂操作(象CISC类型那样)的微码。所以,执行复杂操作的微码的第一操作和象RISC类型指令的简单操作,两者能被立即地执行,类似于RISC类型微处理器的情况。
本发明还有的目的是提供的微处理器能使用许多操作单元资源解码一微码,其特征在于根据空闲内部资源在操作单元资源中,有自动分配输入和输出的功能,这里所说的功能要求在微码中所指定的操作单元资源之间没有输入和输出。
微处理器可能的特征在于一操作单元资源的输出直接连到另一操作单元资源的输入,此操作单元是用于下一操作的。从而排除了在操作单元资源之间为输入和输出操作结果使用输入和输出装置的需要。
换句话说,由于没有对输入和输出数据存储装置的暂时性写入,变得不需要在微码中包含进输入和输出数据存储装置的唯一号码,微码可相应的缩短。
此唯一号码指的是表示输入数据和输出数据存储位置的地址信息。如图6所示其中给出了微码的结构,即使对应于相同的操作,VLIW要求微码包含地址信息,用以指示处理指令中对每个操作的输入和输出数据的存储位置。另一方面,在本发明中,在处理指令的操作过程中不对输入和输出数据存储装置进行临时性写入。因此,本发明不要求微码中包含用以在操作期间指示输入和输出数据存储位置的地址信息。换句话说,按照本发明可以使包含在微码中的仅仅是地址信息,它以处理指令为单元指示输入和输出数据。
本发明的另一目的是提供一微处理器结构,使微处理器能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于指令解码装置,用以对微码解码。微码中包含指示输入和输出数据传送内容的信息,以及表示处理指令存储位置的地址信息;数据读取装置,用以根据指示由所说指令解码装置解码的输入和输出数据传送内容的信息读取输入数据,以及根据地址信息读取处理指令;还有操作处理执行装置,用以提供一个或多个操作单元资源,根据由所说数据读取装置读出的输入数据和处理指令,能够执行操作处理。
按照本发明的微处理器结构,它能根据表示形成微码的处理指令的存储位置的地址信息读取处理指令。因而,它能够对付复杂而高级的操作处理指令,无需扩展微码。
本发明还有另外的目的是提供在权利要求28中所陈述的计算机可读记录介质,以存储电路信息,该信息以硬件描述语言写成并涉及到微处理器能够执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于第一数据区,存储与用于解码微码的指令解码装置有关的电路信息。微码中包含指示输入和输出数据传送内容的信息,以及表示处理指令的存储位置的地址信息;第二数据区,存储与数据读取装置有关的电路信息。数据读取装置根据指示所说指令解码装置解码的输入和输出数据转换内容信息,读取输入数据,以及根据地址信息读取处理指令;还有第三数据区,存储与操作处理执行装置有关的电路信息。操作处理执行装置提供一个或多个操作单元资源,以能够根据由所说数据读入装置读取的输入数据和处理指令执行操作处理。
按照本发明的记录介质,计算机系统能根据地址信息读出处理指令。该地址信息指出处理指令的存储位置,而该处理指令根据电路信息形成微码。所以,可以设计一微处理器,它能够对付复杂而高级的操作处理指令,不必扩展该微码。
本发明另外的目的和更多的特点,结合附图阅读下面的详细说明,将会得到了解。
图1是显示常规VLIW类型微处理器结构的图;图2用以解释指令的数目缩减;图3用以解释CPI的缩减;图4给出按照本发明的微处理器的实施例;图5是显示微码结构的图;图6是微码结构对照图;图7显示微处理器采用的操作处理执行方法的流程图;图8是显示微处理器的操作处理的图;图9的图显示了CPI和指令数目的缩减;图10的图显示操作处理执行部件能够执行RISC类型的指令;图11是一时间图以解释图10所示的操作处理过程;图12的图显示能够执行MAC类型指令的操作处理执行部件;图13的时间图用以解释图12所示的操作处理过程;
图14显示了本发明的操作处理执行部件;图15的时间图用以解释图14所示的操作处理过程;图16是表示由图12所示操作处理执行部件执行操作处理指令“(Product-sum operation乘-加操作)→(move data传送数据)”的操作处理情况的时间图;图17是表示由图14所示操作处理执行部件执行操作处理指令“(乘-加操作)→(传送数据)”的操作处理情况的时间图;图18显示了按本发明的流水线结构图;图19是说明用图18所示微处理器的流水线结构重复执行MAC类型指令情况的时间图;图20是说明用常规微处理器的流水线结构重复执行MAC类型指令情况的时间图;图21显示了发生在图18所示的微处理器的流水线结构中操作单元资源的冲突时的冲突解决处理;图22给出微处理器的硬件结构,通过转交操作结果能降低操作处理时间;图23是说明由图22所示微处理器执行操作处理指令情况的时间图;图24给出微处理器的硬件结构,通过不重复请求输入数据能降低操作处理时间;图25A和25B给出采用图24所示的硬件结构的微处理器的结构图;图26给出一微处理器,它具有许多按并行连接的流水线,它们分别具有图18所示微处理器的流水线结构;以及图27给出一计算机系统,它从本发明的计算机可读记录介质读取电路信息。
参照附图,以下将给出按照本发明的微处理器的实施例的说明。
图4给出了按照本发明的微处理器的结构。
在图4中,因为需要以高速执行大量的操作处理,本实施例的微处理器包含流水线11,操作指令输入部件1,存储部件5,查找表(LUT)6,输出控制部件9,和输出部件10。流水线11包含操作指令读取部件2,操作指令解码部件3,数据读取部件4,操作处理执行部件7,和操作结果写入部件8。操作指令输入部件1相对于流水线11输入微码。存储部件5存储操作结果。LUT6存储操作处理指令码。输出控制部件9和输出部件10被用来输出存储在存储部件5中的操作结果之类,利用按并行执行操作处理的流水线处理,操作处理被有效地执行,LUT6由象RAM之类的存储器构成,并能由用户任意地设置。
具有上述结构的微处理器形成的流水线11之部件的功能将予以说明。
操作指令读取部件2具有读取(取指)微码的功能,该微码由指示为操作处理所需的输入和输出数据的传送内容的信息以及地址信息组成。地址信息(此地址信息以后将被称作操作ID)指示处理指令或处理指令的存储位置。
操作指令解码部件3具有对操作指令读取部件2读出的微码解码的功能。
数据读取部件4,具有根据指示微码的输入和输出数据传送内容的信息,从存储部件5读取为操作处理所需的输入数据的功能,这里的微码是在操作指令解码部件3中被解码的,并且在微码包含操作ID的情况下,还有根据操作ID指示的地址,从LUT6读取处理指令的功能。
操作处理执行部件7包含加、减、乘、除,以及乘加之类的许多操作单元资源,而且具有根据由数据读取部件4读出的处理指令和输入数据,执行预定的操作功能。
操作结果写入部件8具有在存储部件5中,根据指示输出数据存储位置的地址,写入由操作处理执行部件7执行操作处理的操作结果的功能,此输出数据经操作处理执行部件7从数据读入部件4获得。
具有上面所说结构和功能的微处理器,能够根据形成微码的操作ID读出处理指令。因此,从而实现短的微码的同时,它能对付复杂而高级的操作处理指令码。
其次,参看图5,对图4所示的微处理器中执行操作处理的微码给予说明。
如图5上面部分所示,例如,常规的微码由处理指令(以RISC类型指令组合的)和输入及输出数据构成。但由于处理指令的复杂性和高级,随着微码的扩展,操作处理信息在微码中可能不能足够地分配和提供。
因此,为在本微处理器实施例中执行操作处理,构成的微码中包含如图5下部所示的操作ID,使得即使是复杂的操作处理也能缩短微码,如上所述,LUT6的地址信息以操作ID来表示,而复杂而高级的处理指令被存储在LUT6中。
因为微码由操作ID和指示输入和输出数据传送内容的信息构成,本微处理器实施例能使用LUT6,并容易对付复杂的处理指令(受流水线操作处理的指令支配),该指令是由许多RISC类型的指令构成(仅使用一个操作单元资源的基本指令)。结果,本微处理器实施例能容易地对付今后进一步发展的复杂和高级的操作处理。
另外,通过如图5所示减缩微码,能够减小临时存储指令的指令Cache,再则,如图6所示,用于本发明的微码与常规使用的微码相比,在存储部件5中具有缩减了的位宽度和字宽度。
还有,在该微处理器实施例中,能够替代操作ID象常规情况下那样直接执行处理指令。例如,在处理指令是单个RISC类型指令的情况,由于微码将不因此而扩展,事实上替代操作码ID,RISC类型指令能被执行。另外,按照微码的尺寸,它能直接提供两个或多个RISC类指令。因此,本微处理器实施例不必访问LUT 6而能够有效地解码操作处理指令。
按照本发明的微处理器实施例的结构可包含指令解码装置,用以解码由基本指令码和指示扩展指令码存储位置的ID构成的微码,还有操作处理执行装置,用以根据所说指令解码装置解码的操作指令,由选择的操作单元资源执行操作处理,这里流水线处理靠基本指令码选择第一操作单元资源,以及靠扩展指令码选择下一个操作单元资源而得以执行。通过按这种方式设置微码,能够提供足够的时间范围以解码执行复杂操作(如象CISC类型的)的微码,因此,执行复杂操作的微码的第一操作及象RISC类指令的简单操作,两者能立即地执行,类似于RISC类型微处理器的情况。
图7和图8分别显示按照本发明的操作处理执行方法的实施例和一个操作处理的详细例,该例是图5所示的微码输入到图4所示微处理器的情况下所执行的操作处理。
当将微码输入到图4所示微处理器的流水线11时,该微码在步S1,被操作指令读取部件2读出,并被操作指令解码部件3解码。微码包含指示由地址信息形成的输入和输出数据传送内容的信息,该地址信息指示输出数据,输入数据①,输入数据②的存储位置,及例如图8所示的操作ID。
根据操作指令解码部件3中解码执行的结果,如果如图8所示其操作ID的判断位是“1”,步S2确定这样的操作ID是一RISC类型指令,反之,一步骤根据指示每个输入数据①和输入数据②的存储位置的地址,由数据读取部件4从存储部件5读取输入数据①和输入数据②,与此同时,步S1将指示输出数据存储位置的地址通知操作处理执行部件7。
在操作处理执行部件7中,由ALU23(加法器),这是例如对于RISC类指令的操作单元资源,在步S5执行加法处理,并根据指示输出数据存储位置的地址,将加法操作的结果存到存储部件5。
另一方面,如果在操作指令解码部件3中解码执行的结果,如图8所示其操作ID的判断位是“1”,步S2确定此操作ID是LUT 6的地址“X”(ID)。因此,步骤S4,由数据读取部件4根据地址“X”,读出处理指令。而且,步S3,由数据读取部件4根据指示每个输入数据①和输入数据②的存储位置的地址,从存储部件5读出输入数据①和输入数据②,结果,处理指令,输入数据①,输入数据②,以及指示输出数据存储位置的地址都通知给操作处理执行部件7。例如,如图8所示,LUT6中地址“X”处存储“MPY→SHF→ADD”’的处理指令。
在步S5,操作处理执行部件7和用相应于处理指令的操作单元资源的如乘法器(MPY)21,移位器(SHF)和加法器(ALU)23执行乘-加操作,并根据指示输出数据存储位置的地址,将操作结果存到存储部件5。
此微处理器实施例它能执行本操作处理执行方法的实施例,用户通过任意改变LUT6的内容能有效地执行操作处理。
另外,由于此微处理器实施例能在一条处理指令中执行许多RISC类型的指令,它能减少总体执行的指令数目。
接着,将给出当执行图9所示处理指令“a”和处理指令“b”时,此微处理器实施例的处理过程。在图9中,Fa表示处理指令“a”的取指周期时间,而Fb表示处理指令“b”的取指周期时间。Da表示处理指令“a”中RISC类指令的解码时间,而Db表示处理指令“b”中RISC类指令的解码时间。Ra表示处理指令“a”的输入数据和输出数据的读出时间,而Rb表示处理指令“b”的输入数据和输出数据的读出时间。E(1)到E(4)分别表示处理指令“a”过程中各RISC类指令的执行时间,而E(5)到E(8)分别表示处理指令“b”过程中各RISC类指令的执行时间。Wa表示处理指令“a”的处理结果的写时间,而Wb表示处理指令“b”的处理结果的写时间。为了方便,这里假定各个处理指令“a”和“b”都是以4个RISC类指令构成。
在此微处理器的实施例中,处理指令“a”在一个周期(Fa)内被取出,并且在处理指令“a”期间,按RISC类指令的次序执行解码处理(Da),读处理(Ra),指令执行处理(E(1)到E(4))以及写处理(Wa),使得处理指令“a”的处理如图9所示以8个周期结束。
另外,在取指处理指令“a”以后的解码处理(Da)的同时,此微处理器实施例,取指下一处理指令“b”。此后,在处理指令“b”期间,按RISC类指令的次序执行解码处理(Db),读处理(Rb),指令执行处理(E(5)到E(8)),以及写处理(Wb)。这样一来,处理指令“a”和处理指令“b”的处理,如图9所示,以总共9个周期结束。
通过使一个处理指令执行许多RISC类指令,此微处理器的实施例能降低整个程序期间执行的指令数,同时也减少了CPI如图2和图3的比较,因此,它能以最少的周期数执行操作处理。
下面,将更详细地说明由图4所示的微处理器实施例的操作处理执行部件7。
图10给出构成常规RISC类型微处理器的操作处理执行部件7a。
例如,当执行如图10所示操作处理指令(a+b)*b的操作处理时,RISC类型的微处理器把操作处理指令(a+b)*b分成指令①ALU(a+b)和指令②MPY(*b),并顺序执行这些操作处理。这里,指令①ALU(a+b)表示使用操作单元资源ALU33执行加法a+b,而指令②MPY(*b)表示指令①的操作结果和b的乘使用操作单元资源MPY31来执行。
如图11所示,RISC类型的微处理器以一个周期(F)取出指令①ALU(a+b),并对指令①ALU(a+b)顺序执行解码处理(D),读处理(R),指令执行处理(E)和写处理(W),从而指令①ALU(a+b)的处理以5个周期结束。
而且,因为根据指令①ALU(a+b)的操作结果,RISC型处理器执行指令②MPY(*b)的操作处理,在以一个周期(Fb)取下一指令②MPY(*b)之前,对于指令①ALU(a+b)执行处理(E)指令的同时,执行了一空周期(例如,产生流水线失速)。在取出指令②MPY(*b)以后,针对指令②MPY(*b)执行解码处理(D)。另外,在写处理(W),指令①ALU(a+b)的操作结果写到寄存器完成以后,读处理(R)执行,从寄存器读出此操作结果。此后,执行指令执行处理(E),以执行指令②MPY(*b),以及执行写处理(W)以便写指令②MPY(*b)的操作结果。所以,如图11所示,操作处理指令(a+b)*b的操作处理以总共8个周期结束。
图12显示一操作处理执行部件7b,它构成的常规微处理器具有MAC(乘-加)类型结构,如同数字信号处理器(DSP)。
例如,当执行如图12所示操作处理指令(a+b)*b的操作处理时,具有MAC类型结构的微处理器把操作处理指令(a+b)*b分成指令①ALU(a+b)和指令②MPY(*b),并依次执行操作处理。这里,指令①ALU(a+b)表示使用操作单元资源ALU35执行加法a+b,而指令②MPY(*b)表示指令①的操作结果和b的乘使用操作单元资源MPY34来执行。
如图13所示,具有MAC类型结构的微处理器以总共8个周期执行操作处理指令(a+b)*b的操作处理。操作处理指令(a+)*b的操作处理,与上面所说示于图11的时间图中的相同,对其的说明将省略。
因此,上面所说的两类常规微处理器都出现流水线的失速,而不能以最少的周期数执行操作处理。
下面,将对示于图14的操作处理执行部件7予以说明。构成此微处理器的实施例能够根据操作处理内容,以最少的周期数执行操作处理。
例如,当执行如图14所示操作处理指令(a+b)*b的操作处理时,此微处理器实施例中将操作处理指令(a+b)*b分成指令①ALU(a+b)和指令②MPY(*b),并依次执行操作处理。这里,指令①ALU(a+b)表示使用操作单元资源ALU38执行加法a+b,而指令②MPY(*b)表示使用操作单元资源MPY36执行指令①的操作结果与b的相乘。
如图15所示,此微处理器实施例中以一个周期(F)取出微码,微码包含表示操作处理指令(a+b)*b的操作ID以及输入和输出数据的地址信息。然后,解码处理(D)解码微码,还有读处理(R)读出执行操作处理指令(a+b)*b的操作ID和输入及输出数据。
在此微处理器实施例中,执行处理(EI)执行指令①ALU(a+b)的操作处理,但此指令①ALU(a+b)的操作结果不输出,而是将指令①ALU(a+b)的操作结果输入到图15所示的操作单元资源MPY36,并且执行处理(EII)跟着执行指令②MPY(*b)的操作处理。最后,执行写处理(W)以写指令②MPY(*b)的操作结果。所以,操作处理指令(a+b)*b的操作处理如图15所示,以总共6个周期完成。
在此微处理器实施例中,在同一流水线中执行复杂操作指令的指令被垂直地进展,于是,在同一流水线中它不需要访问保存中间操作结果的寄存器。另外,它能在流水线中交换操作结果。从而不会发生流水线的失速。所以,此微处理器实施例能根据操作处理的内容,以最少的周期数执行操作处理。
而且,此微处理器实施例通过任意改变LUT6的内容改变使用的操作单元资源的顺序和使用的操作单元资源的数量。再则,当不使用操作单元资源时,输入和输出数据是经直通通路传送。结果,它能有效地执行操作处理。
图16给出的时间图是对应这样的情况,例如,操作处理指令“(Product-sum operation乘-加操作)→(move data传送数据)”的操作处理由图12所示具有MAC类型结构的微处理器的操作处理执行部件7b所执行。更具体而言,例如下面的操作处理指令被执行。
mac r2,R1,r0;MAC(product-sum operation)MPY→SHF→ALUmov r4,r3;MOV(move data)through-path如图16所示,具有MAC类型结构的微处理器以一个周期(F)取出指令MAC。另外,针对指令MAC按MPY→SHF→ALU的次序执行解码处理(D),读处理(R)和执行处理(E)。而后,一写处理(W)写此处理的结果。因而,指令MAC的处理以总共7个周期完成。
另外,在MAC指令被取指以后,与对指令MAC进行解码处理(D)的同时,具有MAC类型结构的微处理器以一个周期(F)取出下一指令MOV。解码处理(D)和读处理(R)则针对指令MOV执行。但是因为具有MAC类型结构的微处理器进行有序输出,流水线的失速会发生,并且在对指令MAC的操作处理结束之前,指令MOV不能被执行。
总计2个周期的流水线失速结束以后,具有MAC类型结构的微处理器执行执行处理(E),以便执行指令MOV,并且接着经直通通路执行写处理(W)。结果,操作处理指令“(product-sum operation)→(move data)”如图16所示总共以8个周期结束操作处理。
因此,在具有MAC类型结构的微处理器中产生了总计2周期的流水线失速,而且根据操作处理的内容操作处理不能以最少的周期数来执行。
图17给出的时间图是对应这样的情况,例如,操作处理指令“(product-sum operation)→(move data)”的操作处理由图14所示微处理器实施例的操作处理执行部件7执行。更具体的是一类似于前面所说的示于图16的操作处理指令被执行。
如图17所示,此微处理器实施例中以一个周期(F)取指指令MAC。另外,根据此指令MAC,按MPY→SHF→ALU的顺序执行解码处理(D),该处理(R),以及执行处理(E),而后,写处理(W)写入操作结果。因此,指令MAC的处理以总共7周期结束。
另外,在指令MAC被取指以后,在对指令MAC解码处理(D)的同时,此微处理器实施例以一个周期(F)取下一指令MOV。根据指令MOV执行解码处理(D)和读处理(R)。
在此微处理器实施例中,能够恰当地输出通过以并行执行操作得到的操作结果,从而能够乱序输出。因此,流水线失速不会发生,而且能与指令MAC的操作处理并行执行指令MOV(执行一执行处理(E)),无需等待指令MAC的操作处理结束。
另外,在指令MOV被执行以后,此微处理器实施例按操作处理结束的顺序执行写处理(W)。因此,操作处理指令“(product-sum operation)→(move data)”的操作处理,如图14所示以总共7个周期结束。在操作处理指令“(product-sum operation)→(move data)”操作处理的情况下,指令MOV的操作处理结束先于指令MAC的操作处理,因此,由于乱序输出的结果,MOV指令的操作处理在指令MAC操作处理的前头。
因为此微处理器实施例中采用乱序输出,它能根据操作处理结束的顺序写操作结果,不需要让前面结束的操作处理等待。所以,在此微处理器实施例中,一操作指令能超前于,也就是越过另一操作处理指令,因而使得可以以最少的周期数执行操作处理。
图18显示此微处理器实施例的流水线结构。现在将说明在MAC类型操作处理指令被重复执行的这种情况下,流水线结构的微处理器实施例中的操作。此时,根据图19所示时间图,并与常规微处理器的操作比较。
如上所述并结合图1,如果常规微处理器是由四种流水线301,302,303和304构成,每个流水线301到304的操作结果被写进存储部件305,并经存储部件305读到其它流水线,从而能在流水线301到304之间交换数据。换言之,当一个操作单元资源的操作结果被下一操作单元资源使用时,常规微处理器总是通过存储部件305交换操作结果。
另外,当执行具有RISC类指令组合的指令时,此操作处理指令在每个流水线中水平地进展,并且此操作处理由并行的流水线执行。
图20是这种情况下的时间图,这时MAC类型操作处理指令由具有图1所示的流水线结构的常规微处理器重复地执行。更具体的是,图20所示的情况,下列操作处理指令被执行,例如指令①MAC;MPY(M(1))→SHF(S(1))→ALU(A(1))指令②MAC;MPY(M(2))→SHF(S(2))→ALU(A(2))如图20所示,在常规微处理器的流水线301中,指令①MAC的M(1)以一个周期(FI)被取指。另外,解码处理(DI)解码指令①MAC的M(1),读处理(RI)读必要的输入和输出数据,执行处理(EI)执行M(1)的操作,以及写处理(WI)在存储部件305中写M(1)的操作结果。因此,指令①MAC的M(1)的处理以5个周期结束。
接着,在常规微处理器的流水线302中,在对指令①MAC的M(1)进行执行处理(EI)的同时,指令①MAC的S(1)以一个周期(FII)被取指。另外,解码处理(DII)解码指令①MAC的S(1),并在写处理(WI)把指令①MAC的M(1)的操作结果写到存储部件305以后,读处理(RII)读出在存储部件305中的操作结果以及必需的输入和输出数据。再则,在常规的微处理器中,执行处理(EII)执行指令①MAC的S(1)的操作,以及写处理(WII)在存储部件305中写S(1)的操作结果。所以,指令①MAC的M(1)和S(1)的操作处理,如图20所示以总共8个周期结束。
最后,在常规微处理器的流水线301中,与指令①MAC的S(1)执行处理(EII)的同时,以一个周期(FI)取出指令①MAC的A(1)。另外,解码处理(DI)解码指令①MAC的A(1),并在写处理(WII)把指令①MAC的S(1)的操作结果写到存储部件305以后,读处理(RI)读存储部件305中的操作结果和必需的输入和输出数据。再则,在常规的微处理器中,执行处理(EI)执行指令①MAC的A(1)的操作,以及写处理(WI)在存储部件305中写A(1)的操作结果。所以,如图20所示,指令①MAC的M(1),S(1)和A(1)的操作处理总共以11个周期结束。指令②MAC的执行类似于上面所说的指令①MAC,而且,在指令①MAC的M(1)和指令①MAC的A(1)之间,流水线失速在流水线301中发生,为此被插入5个空周期。
所以,常规的微处理器根据操作处理的内容,不能以最少的周期数执行操作处理。
另一方面,如图18所示,依靠在一条流水线中包含许多操作单元资源,此实施例能够根据操作处理的内容,以最少的周期数执行操作处理。
在图18中,微处理器的流水线11的结构与图4中所示的相同。流水线11包含操作指令读取部件2,操作指令解码部件3,数据读取部件4,操作处理执行部件7,和操作结果写部件8。在一条流水线11中流水线处理以并行方式执行操作处理,以便有效地执行操作处理。为此,与图1所示的常规微处理器比较,此微处理器实施例通过减少流水线数目能减小硬件的规模,并且也降低了功率消耗。
在流水线11中,操作处理执行部件7由许多操作单元资源42,43,44和45构成,通过修改LUT6中的操作处理指令码,它们能被任意地连接。因此,靠修改LUT6,操作单元资源使用的次序以及操作单元资源所使用的数量能被任意地改变,从而使其能有效地执行操作处理。
另外,在流水线11中,操作结果写入部件8具有多端口结构,以独立地在存储部件5中写操作单元资源42,43,44和45的操作结果。同时,操作结果写入部件8对应于操作单元资源42,43,44和45,包含有写部件46,47,48和49,使用操作处理执行部件7的按序执行和乱序输出,它能避免写操作单元资源42,43,44和45的操作结果的冲突。
图19是这种情况下的时间图,此时MAC类型的操作处理指令,由具有图18所示结构的微处理器实施例重复地执行。更详细地,图19所示情况,其中下列操作处理指令被执行,例如指令①MAC;MPY(M(1))→SHF(S(1))→ALU(A(1))指令②MAC;MPY(M(2))→SHF(S(2))→ALU(A(2))
如图19所示,在微处理器实施例的流水线11中,指令①MAC的M(1),S(1)和A(1)以一个周期被取指。另外,解码处理(D)解码指令①MAC,读处理(R)为指令①MAC读取所必需的全部输入和输出数据以及由操作ID指示的地址。
例如,在操作单元资源42中,执行处理(E(1))执行指令①MAC的M(1)的操作。另外,操作单元资源42的操作结果,例如直接输入到下一操作单元资源43,以及一执行处理(E(2))在操作单元资源43中执行指令①MAC的S(1)的操作。而后,操作单元资源43的操作结果,例如直接输入到下一操作单元资源44,且执行处理(E(3))在操作单元资源44中执行指令①MAC的A(1)的操作。
最后,写处理(W),由写部件48在存储部件5中仅仅写入最终操作结果。因此,如图19所示,指令①MAC的M(1),S(1)和A(1)的操作处理总共在7个周期内完成。指令②MAC的执行类似于上面所说的指令①MAC。
所以,按照此微处理器实施例,不象常规微处理器,这里不产生流水线失速,而且它能以最少的周期数执行操作处理。
图21所示是以下情况下的时间图,这里此微处理器的实施例的流水线结构包括许多具有相同功能的操作单元资源,并且当操作处理指令被重复执行时,在操作单元资源之中产生冲突。更具体地是图21所示情况,此时下面的操作处理指令被执行,例如指令①OP1 r2,r1,r0;OP1MPY→SHF→ALU指令②OP2 r5,r4,r3;OP2MPY→ALU指令③OP3 r8,r7,r6;OP3SHF→MPY指令④OP4 r11,r10,r9;OP4MPY如图21所示,在此微处理器实施例的流水线11中,按此顺序指令①OP1以一周期(F)被取指,指令②OP2以一周期(F)被取指,指令③OP3以一周期(F)被取指,以及指令④OP4以一周期(F)被取指。
在取指指令①OP1以后,解码处理(D)解码指令①OP1,以及读处理(R)读出为指令①OP1所必需的全部输入和输出数据以及由操作ID指示的地址。解码处理(D)和读处理(R)根据指令②OP2,指令③OP3以及指令④OP4类似地被执行。
为指令①OP1所需的全部输入数据及由操作ID指示的处理指令被读出以后,此微处理器实施例在第4周期,利用操作单元资源MPY执行一执行处理(EI),以执行指令①OP1的操作,而且,操作单元资源MPY的操作结果直接输入到下一操作单元资源SHF。
执行处理(EII)在第5周期由操作单元资源SHP执行,以执行指令①OP1的操作。而且,操作单元资源SHF的操作结果直接输入到下一操作单元资源ALU。同时,在此第5周期,由操作单元资源MPY执行处理(EI)执行,以执行指令②OP2的操作,并且操作单元资源MPY的操作结果直接输入到下一操作单元资源ALU。然而,由于对该下一操作单元资源ALU产生冲突,操作单元资源MPY的操作结果,例如输入到具有相同功能的操作单元资源ALU′。
另外,一执行处理(EIII)在第6周期执行以由操作单元资源ALU执行指令①OP1的操作,而且,例如写部件46在第7周期执行写处理(WI),在存储部件5中写操作单元资源ALU的操作结果。同时,在第6周期执行一执行处理(EII),以由操作单元资源ALU′执行指令②OP2的操作,并且例如写部件46在第7周期执行写处理(WII),在存储部件5中写操作单元资源ALU′的操作结果。而且,同时在此第6周期,执行一执行处理(EI),由操作单元资源SHF执行指令③OP3的操作,并且操作单元资源SHF的操作结果直接输入到下一操作单元资源MPY。
另外,在第7周期,执行一执行处理(EII),通过操作单元资源MPY,执行指令③OP3的操作,并且例如写部件46,在第8周期执行写处理(WI),以在存储部件5中写入操作单元资源MPY的操作结果。同时,在第7周期执行执行处理(EI),通过例如具有与操作单元资源MPY同样功能的MPY′,执行指令④OP4的操作。接着在第8周期,例如写部件47执行写处理(WII),在存储部件5中写入操作单元资源MPY′的操作结果。
从而,此微处理器实施例如图21所示,能以总共8个周期完成指令①OP1,指令②OP2,指令③OP3和指令④OP4的操作处理。
因此,当操作单元资源的冲突产生或向存储部件5写操作结果的冲突产生时,流水线失速不会出现。结果,能够根据操作处理的内容,以最少的周期数执行操作处理。
图22给出按照本发明另一微处理器实施例的硬件结构,通过转交(forwarding)操作结果能够降低执行操作处理所要求的时间。
在图22中,除了图4所示的元件外,微处理器包含存储部件51。该存储部件51包含一个通路。用于在向存储部件5写入操作处理执行部件7的操作结果的同时,把操作处理执行部件7的操作结果直接传递到数据读取部件4。还包含一通路,用于在锁存此操作结果以后把此操作结果通知数据读取部件4。存储部件51以触发器52提供,它锁存转送的操作结果。还有一选择器53,它选择直接通知操作结果的通路或在锁存操作结果以后通知操作结果的通路。
在此微处理器实施例中,当在下一操作处理指令中使用前面操作处理指令的操作结果时,数据读取部件4从上面所说的通路之一中读取操作结果,而不使用在存储部件5中前面操作处理指令的操作结果。
因此,此微处理器实施例不要求存储部件5介入操作结果的交换,操作处理能以最少的周期数执行。
图23给出以下情况的时间图,此时指令①和指令②的操作处理例如由图22所示微处理器的操作处理执行部件7执行。更详细地是图23所示下列操作处理指令被执行的情况。
指令①MOV r2,r1;movmove指令②add r3,r0,r2;addadd如图23所示,此微处理器实施例用一个周期取指指令①。另外,执行解码处理(D)以解码指令①,执行读处理(R)以读出指令D的操作处理所必需的数据,还有执行执行处理(E)以执行该指令①。
接着,在取指指令①以后,对指令①解码处理(D)的同时,微处理器以一个周期(F)取指指令②,而后,执行解码处理(D)以解码指令②,及执行读处理(R)以读出指令②的操作处理所需的数据。因为指令②使用r2中的操作结果作为输入,而r2中写入了指令①的操作结果,数据读取部件4使用存储部件51中的通路,并依靠转送指令①的操作结果读取指令①的操作结果。
在此状态下,微处理器执行一执行处理(E)以执行指令①的操作处理,以及执行一写处理(W)以在存储部件5中写入指令②的操作结果。
图24显示按照本发明的微处理器的另一实施例的硬件结构,由于不需要输入和输出数据,能减少执行操作处理所需的时间。
在图24中,微处理器包括除了图22所示部件以外的一个锁存61和一个存储部件62,锁存61锁存由数据读取部件4读出的输入数据,以及存储部件62存储由锁存61所锁存的输入数据。因此,提供一通路经过锁存61和存储部件62,在操作处理执行部件7中,去通知输入数据到操作单元资源63,64和65。
当重新使用在操作处理执行部分7中曾经用过的输入数据时,该微处理器实施例可读取保存在上面所述通路中的输入数据,不必从存储部件5中读取输入数据。
因此,在本微处理器实施例中,在它操作期间使其它操作单元资源可重用操作单元资源的数据,不必从存储部件5中再读取输入数据,从而,减少了执行操作处理所需的时间,而且即使在由于其它操作处理重新要求的输入数据变化的情况下,仍可以用变化出现以前的输入数据。
另外,在图24所示的微处理器中,提供一直通通路,直接把由数据读取部件4读出的输入数据通知到操作处理执行部件7中的每个操作单元资源63,64和65。
而且,在操作处理执行部件7中的每个操作单元资源63,64和65,具有对输入数据多端口结构的输入端口。因此,操作单元资源63,64和65能同时地输入需要的输入数据,而且它不必重复地从存储部件5获得输入数据。因而,执行操作处理所需的时间,从这个观点看亦被减少。
图25A和25B显示了图24中微处理器的更详细的结构,此时操作处理被执行,使用从累加寄存器来的数据(累加类型数据)D15到D8,以及从通用目的寄存器来的数据D7到D0。
在图25A所示的微处理器中,在从通用目的寄存器读出数据D7到D0以后,将根据D7到D0在直通通路中经过选择器75a通知到操作单元资源77,同时通知到对应于操作单元资源78,79和80的每个锁存71,72和73,并且保持在图25A所示的锁存行中。
在该锁存行中,提供的锁存71,72和7 3与操作单元资源78,79和80相对应,而操作单元资源78,79和80当需要时可经相应的选择器75b,75c和75d读取数据。
此外,来自累加操作结果的存储部件比如累加寄存器的数据D15到D8被通知给直通线,以便提高吞吐量,并经过选择器76能被每个操作单元资源77到80所使用。
而且,通过使数据读取部件4的输入端口为多端口结构,操作单元资源77到80全部能同时地读取所需数据,且将不会发生关于数据读取部件4冲突引起的流水线失速。结果,可减少执行操作处理所需的时间。
图25A所示的微处理器,锁存来自存储部件5和6比如寄存器、高速缓存和存储器的输入数据。因此,不需要再次输入输入数据,并且在操作单元资源操作期间,能重新使用此输入数据。因此,即使输入数据被其它操作处理重写,微处理器能用重写以前的输入数据。
另一方面,在图25B所示的微处理器中,在从通用目的寄存器读出数据D7到D0以后,数据D7到D0在直通通路中经相应的选择器75a,75b,75c和75d被通知给操作单元资源77,78,79和80,且同时被通知给对应于操作单元资源78,79和80的每个锁存器71,72和73,且保存在图25B所示的锁存行中。
在这个锁存行中,提供的锁存71,72和73与操作单元资源78,79和80相对应,而操作单元资源78,79和80当需要时,可经相应的选择器75b,75c和75d读取数据。
此外,来自累加操作结果的存储部件,如象累加寄存器的数据D15到D8被通知给直通线,以便提高吞吐量,并经过选择器76能被每个操作单元资源77到80所使用。
而且,通过使数据读取部件4的输入端口为多端口结构,操作单元资源77到80全部能够同时地读取所需数据,且将不会发生关于数据读取部件4冲突引起的流水线失速。结果,可减少执行操作处理所需的时间。
图25B所示的微处理器使用的输入数据或来自锁存以后通知操作单元资源的通道,或来自直接通知操作单元资源的直通通道。因此,微处理器能使锁存来自存储器部件5和6的输入和输出数据所需的操作处理延迟为最小。
图26显示了按照本发明的微处理器实施例,其中具有图15所示微处理器流水线结构的很多流水线是并行连结的。
该微处理器实施例包括图18所示的流水线11,以及具有同流水线11相同功能的流水线11a,……11m,流水线11,11a……11m中每个按并行连结,以便能更有效地执行操作处理。这里,m是一任意整数。
下面,将给出按照本发明的计算机可读记录介质的实施例的说明。计算机可读记录介质存储了上面所述的本发明的任何微处理器结构的电路信息,这些电路信息通过例如如图27所示的计算机系统,从计算机可读记录介质中读出,且被用于设计微处理器。
本计算机可读记录介质实施例存储电路信息,该信息以硬件描述语言写成,并且与能够执行具有至少一种RISC类型指令的处理指令的微处理器有关,其特征在于第一数据区存储有关指令解码装置的电路信息,用以对微码进行解码,微码中包含指示输入和输出数据传送内容的信息和指示处理指令存储位置的地址信息。第二数据区存储有关数据读取装置的电路信息,用以根据指令解码装置解码指示输入和输出数据传送内容的信息,读取输入数据,并根据地址信息读取处理指令以及第三数据区存储有关操作处理执行装置的电路信息,提供一个或多个操作单元资源,能根据数据读取装置读入的输入数据和处理指令执行操作处理。
图27所示的计算机系统100包括一包含CPU的主体部件101及一磁盘驱动器单元等,显示器102响应主体部分101的一指令在显示屏102a上显示图象,键盘103用于向计算机系统100输入各种信息,鼠标104用来在显示器102的显示屏102a上指定一任意位置,以及调制解调器105用来访问外部数据库之类和下载在其它计算机系统中存储的程序之类。以硬件描述语言写的电路信息被存储在可移动的记录介质如盘110中,或者用象调制解调器105之类通信单元从其它计算机系统的记录介质106下载。该电路信息被输入到计算机系统100并被它编译,计算机系统100安装有编译器,根据用硬件描述语言写的电路信息,通过读取单元库信息,形成现场可编程门阵列(FPGA)程序或形成一实际电路的曝光数据和曝光图样,单元库信息为每种EPGA,每种制造设备,或每种在其中形成微处理器的半导体设备,如对CMOS为2.5μM线宽连线规则,由编译程序形成的曝光图样通过如分步相机(stepper)的曝光装置用来对象硅晶片这样半导体晶片上的光阻材料曝光,曝光的光阻材料被显影,并起掩模板的作用以便实现掺杂,形成P-型或n-型半导体,以及连接半导体电路的连线,如此方式根据记录介质中存储的电路信息形成了微处理器。存储电路信息的记录介质不限于便携的或可移动的记录介质,如IC卡存储器,软盘,磁光盘和CD-ROM,亦包括经过通信装置或通信部件象LAN和调制解调器连接的,计算机系统可存取的记录介质。
按照本发明的微处理器,可以根据地址信息(操作ID)读取处理指令,这些地址信息指示形成微码的处理指令的存储位置,因此,在减小微码尺度的同时能对付复杂和高级的操作处理指令。
此外,通过使用高级处理指令(由很多RISC类型指令形成一个处理指令)和使用指示,形成微码的处理指令的存储位置的地址信息(操作ID),本发明的微处理器能减少处理指令的数目,且同时减少了CPI。
而且,由于本发明的微处理器直接地用一个操作单元资源的操作结果作为下一个操作单元资源的输入,不必在寄存器之类中暂存操作结果,还不象常规的微处理器,在数据交换时不产生流水线失速,以及不需要根据流水线的失速插入空周期。因此,根据操作处理的内容可用最少的周期数执行操作处理。
而且,根据本发明的微处理器,在一个处理指令中包括很多RISC类型指令,以及操作的结果以操作处理结束的顺序被写到存储部件。不象常规的微处理器,其中后面的指令必须等待直到前面的指令结束操作处理,在本发明中,不会产生流水线失速,而且操作处理能用最少的周期数来实现。
另一方面,即使冲突出现在流水线给存储部件进行写动作时,本发明的微处理器,通过同一流水线中具有相同功能的操作单元资源中分配指令,以及利用操作结果输出的多端口结构能避免冲突。
此外,当从存储部件获得输入数据执行一预定的操作处理时,根据本发明的微处理器保留该输入数据,以便当它成为需要时,不再获取相同的输入数据。因此,可以有效地执行操作处理。
而且,按照本发明的微处理器,在同一流水线中包括很多操作单元资源,它们可由用户任意连接。因此,同常规的并行排列很多流水线的微处理器相比,它可以减小硬件的规模,也可以减小电源消耗。
因此,根据本发明,可实现一种微处理器,操作处理执行方法和记录介质,它们能够以最小尺寸的微码对付复杂和高级的操作处理指令,以及根据操作处理指令能有效地执行其中的操作处理。而且,本发明既能减少硬件的规模又能减小微处理器的功耗。
而且,本发明不限于这些实施例,在不脱离本发明范围的情况下,可作各种变化和修改。
权利要求
1.一种微处理器,它能执行至少具有一个精简指令集计算机-RISC-类指令的处理指令,其特征在于指令解码装置用以对微码进行解码,微码中包含指示输入和输出数据传送内容的信息和指示处理指令存储位置的地址信息;数据读取装置,用以根据所说指令解码装置解码的指示输入和输出数据传送内容的信息,读取输入数据,以及根据地址信息读取处理指令;以及操作处理执行装置,提供一个或多个操作单元资源,能根据所说数据读取装置读入的输入数据和处理指令执行操作处理。
2.根据权利要求1的微处理器,其特征在于微码可由至少一条RISC类指令直接替代表示处理指令存储位置的地址信息来实现。
3.根据权利要求1或2的微处理器,其特征还在于处理指令存储装置能够任意地构造处理指令;及输入和输出数据存储装置,用以存储所说操作处理执行装置的操作结果以及能随意设置的输入数据,所说的数据读取装置,根据表示处理指令存储位置的地址信息访问所说处理指令存储装置,读出对应的处理指令,并根据表示输入和输出数据传送内容的信息,进一步从所说输入和输出数据存储装置读取输入数据。
4.根据权利要求1到3任何一项的微处理器,其特征在于所说的操作处理执行装置包含许多操作单元资源,通过在所说处理指令存储装置中修改处理指令,它们能随意连接,操作单元资源之一的操作结果直接用做下一操作单元资源的输入。
5.根据权利要求4的微处理器,其特征在于所说操作处理执行装置包含直通通路,该直通通路对不进一步要求操作单元资源的处理传送输入数据,直通通路的输出结果,直接用做下一个操作单元资源的输入。
6.根据权利要求4或5的微处理器,其特征在于所说的操作处理执行装置,当一个操作单元资源的操作结果直接用作下一个操作单元资源的输入时,仅输出对应于处理指令的最终操作单元资源的操作结果。
7.根据权利要求1到6任何一项的微处理器,其特征在于所说的操作处理执行装置,以并行方式执行处理指令中提供的RISC类指令,并且按操作处理结束的次序输出操作结果,与操作处理的执行次序无关。
8.根据权利要求1到7任何一项的微处理器,其特征在于在所说的操作处理执行装置中,每个操作单元资源具有多端口的结构,以独立输操作结果。
9.根据权利要求1到8任何一项的微处理器,其特征在于所说的操作处理执行装置,如果存在许多具有同样功能的操作单元资源,用具有同样功能的其它操作单元资源,执行冲突解决处理,许多RISC类型的指令包括在一条处理指令中,当RISC类型指令并行执行时,产生操作单元资源的冲突。
10.根据权利要求3到9任何一项的微处理器,其特征还在于在所说输入和输出数据存储装置中存储所说操作结果的同时,第一通路对应于所说操作处理执行装置执行的处理指令,把最终操作单元资源的操作结果直接通知所说数据读取装置;以及第二通路在锁存所说操作结果后,将所说的操作结果通知所说的数据读入装置。当使用所说的下一个处理指令的操作结果时,所说的数据读入装置从所说第一和第二通路之一读取操作结果,而不是从所说输入和输出数据存储装置读取结果。
11.根据权利要求1到10任何一项的微处理器,其特征在于第三通路在锁存由所说数据读取装置读出的输入数据以后,通知在所说操作处理执行装置中的操作单元资源,再使用所说的输入数据时,所说的操作处理执行装置从所说第三通路读取输入数据。
12.根据权利要求11的微处理器,其特征在于第四通路把由所说数据读取装置读出的输入数据直接通知给所说操作处理执行装置中的操作单元资源,所说的操作处理执行装置,使用来自所说第三和第四通路之一的输入数据。
13.根据权利要求11或12的微处理器,其特征在于锁定的输入数据,在所说操作处理执行装置的每个操作单元资源中是可以使用的。
14.根据权利要求3到13中任何一项的微处理器,其特征在于所说的数据读取装置具有带多端口结构的输入端口,用以从所说的输入和输出数据存储装置输入输入数据,并且同时给每个操作单元资源供给这些输入数据。
15.根据权利要求1到14的任何一项微处理器,其特征还在于许多流水线能执行相应于微码的操作处理。
16.一种微处理器,能够执行至少具有一精简指令集计算机(RISC)类指令的处理指令,其特征在于许多操作单元资源,能够根据输入数据和处理指令执行操作处理,并且通过修改处理指令而能任意地连接,一操作单元资源的操作结果用作下一个操作单元资源的输入,不需要进行暂存。
17.根据权利要求16的微处理器,其特征还在于一直通通路对于不进一步要求操作单元资源的处理它传送输入数据,直通通路的输出结果直接用做下一操作单元资源的输入。
18.根据权利要求16或17的微处理器,其特征在于当一操作单元资源的操作结果不进行暂存,直接用做下一操作单元资源的输入时,仅对对应于处理指令的最后操作单元资源的操作结果输出。
19.一种微处理器,能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于操作处理执行装置并行执行处理指令中提供的RISC类指令,并且按操作处理结束的顺序输出操作结果,与操作处理执行顺序无关。
20.一种微处理器,能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于许多操作单元资源根据输入数据和处理指令执行操作处理,每个所说操作单元资源具有多端口结构,独立地输出操作结果。
21.一种操作处理执行方法,使微处理器能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于一指令解码步骤,对包含指示输入和输出数据传送内容信息和地址信息的微码进行解码,该地址信息表示处理指令的存储位置;一个数据读取步骤,根据表示所说指令解码步骤解码的输入和输出数据传送内容的信息读取输入数据,并根据地址信息读取处理指令;和一操作处理执行步骤,提供一个或多个操作单元资源,使能够根据所说数据读取装置读出的输入数据及处理指令,执行操作处理。
22.一种微处理器,其特征在于指令解码装置用以对微码解码;及一操作处理执行装置,包含许多操作单元资源,能并行执行操作处理,并且操作处理执行装置多于所说的指令解码装置,在所说的操作处理执行装置中,操作单元资源的操作顺序是可变的。
23.根据权利要求22的微处理器,其特征在于所说的许多操作单元资源是由不同的操作单元构成的。
24.一种微处理器,其特征在于指令解码装置解码由基本指令码和操作标志(ID)构成的微码,其中的ID指示一扩展指令码的存储位置;操作处理执行装置,根据由所说指令解码装置解码的操作指令,通过选择操作单元资源以执行操作处理,流水线处理的执行是通过基本指令码选择第一操作单元资源,并通过扩展指令码选择下一操作单元资源。
25.一种微处理器,能使用许多操作单元资源对一微码进行解码,其特征在于根据空闲的内部资源,在操作单元资源中,有自动分配输入和输出的功能,所说的功能要求在微码中所指定的操作单元资源之间没有输入和输出。
26.根据权利要求25的微处理器,其特征在于一操作单元资源的输出直接连到另一操作单元资源的输入,此操作单元是用于下一操作的,从而排除了在操作单元资源之间,为输入和输出操作结果,使用输入和输出装置的需要。
27.一种微处理器结构,使微处理器能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于指令解码装置,用以对微码解码。微码中包含指示输入和输出数据传送内容的信息,以及表示处理指令存储位置的地址信息;数据读取装置,用以根据指示由所说指令解码装置解码的输入和输出数据传送内容的信息读取输入数据,以及根据地址信息读取处理指令;及操作处理执行装置,用以提供一个或多个操作单元资源,根据由所说数据读取装置读出的输入数据和处理指令,能执行操作处理。
28.一种计算机可读记录介质,以存储电路信息,该信息以硬件描述语言写成,并涉及到微处理器能够执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其特征在于第一数据区,存储与用于解码微码的指令解码装置有关的电路信息,微码中包含指示输入和输出数据传送内容的信息,以及表示处理指令的存储位置的地址信息;第二数据区,存储与数据读取装置有关的电路信息、数据读取装置根据指示所说指令解码装置解码的输入和输出数据传送内容的信息,读取输入数据,以及根据地址信息读取处理指令;第三数据区,存储与操作处理执行装置有关的电路信息,操作处理执行装置提供一个或多个操作单元资源,以能够根据所说数据读入装置读取的输入数据和处理指令执行操作处理。
全文摘要
一微处理器,能执行至少具有一精简指令集计算机(RISC)类型指令的处理指令,其构成包括指令解码部分,用以对微码进行解码,微码中包括指示输入和输出数据传送内容的信息和指示处理指令存储位置的地址信息。一数据读取部分,用以根据指示由指令解码部分解码的输入和输出数据传送内容的信息读取输入数据,以及根据地址信息读取处理指令,还有操作处理执行部分,提供一个或多个操作单元资源,能根据数据读取部分读取的输入数据和处理指令执行操作处理。
文档编号G06F9/318GK1229211SQ99103668
公开日1999年9月22日 申请日期1999年3月11日 优先权日1998年3月12日
发明者田中律子, 野村佑司, 鹤田彻, 岩崎尚之 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1