命令供给装置的制作方法

文档序号:6553119阅读:163来源:国知局
专利名称:命令供给装置的制作方法
技术领域
本发明涉及介于主存储装置与中央处理装置之间、将从主存储装置读出的命令向中央处理装置供给的命令供给装置,特别涉及在通过循环反复供给命令的情况下、即使省略向主存储装置的访问也能够供给命令的命令供给装置。
背景技术
以往,有介于主存储装置与中央处理装置之间、将从主存储装置读出的命令向中央处理装置供给的命令供给装置。
命令供给装置为了将从主存储装置读出的命令高效地供给到中央处理装置中,具有循环用命令缓冲器与通常用命令缓冲器。并且,在供给循环块的命令的情况下,省略向主存储装置的访问,从循环用命令缓冲器供给到中央处理装置中(参照例如专利文献1)。
所谓的“循环用命令缓冲器”,是指存储循环块的缓冲器。
所谓的“循环块”,是指通过循环反复供给的命令列。
所谓的“通常用命令缓冲器”,是指存储通常块的缓冲器。
所谓的“通常块”,是指循环块以外的命令列。
专利文献1日本特开昭63-314644号公报但是,在上述以往的技术中,由于仅通过循环用命令缓冲器供给循环块的命令,所以在循环块由多个命令构成的情况下,需要预先较大地确保循环用命令缓冲器的容量。结果,如果循环用命令缓冲器的容量较大,则有硬件量也增大的问题。进而,如果为了对应多个循环而具有多个循环用命令缓冲器,则有硬件量更显著地增大的问题。

发明内容
所以,本发明是鉴于上述问题而做出的,目的是提供一种以较少的硬件量高效地供给形成循环的命令列的命令供给装置。
为了达到上述目的,本发明的命令供给装置,(a)是将从主存储装置读出的命令供给到中央处理装置的命令供给装置,具备(b)第1缓冲器,在将保存在上述主存储装置中的命令列中的、反复供给到上述中央处理装置的第1命令列再次供给到上述中央处理装置之前,存储作为上述第1命令列的起始部分的第1部分命令列;(c)第2缓冲器,在将上述第1命令列反复供给到上述中央处理装置时,一边将存储在上述第1缓冲器中的上述第1部分命令列供给到上述中央处理装置,一边存储后续于上述第1部分命令列的第2部分命令列;(d)选择机构,如果将上述第1部分命令列的全部供给到上述中央处理装置,则从存储在上述第2缓冲器中的第2部分命令列开始,将上述第1部分命令列的后续命令供给到上述中央处理装置。
由此,与将循环块的命令列存储到一个缓冲器中的情况相比,能够分开存储到两个缓冲器中,只要这些缓冲器没有全部被更新,就能够不更新而再利用存储在缓冲器中的命令列。并且,通过将循环的后半部分在循环执行时在后台保存到缓冲器中,即使不将循环整体总是保持在缓冲器中,在循环时也与全部保持在缓冲器中的状态等同,能够供给高效率的命令。
例如,将8语句量的命令各一半存储到两个缓冲器中,即使一个缓冲器被更新,如果另一个缓冲器没有被更新,也能够不更新而再利用存储在另一个缓冲器中的4语句量的命令。并且,不将8语句量的命令从主存储装置再次读出,而仅将更新后的4语句的命令从主存储装置再次读出就可以,也能够缩短访问主存储装置的时间。
此外,(a)上述命令供给装置也可以还(b)具备第3缓冲器,在将保存在上述主存储装置中的命令列中的、在上述第1命令列以外反复供给到上述中央处理装置的第2命令列再次供给到上述中央处理装置之前,存储作为上述第2命令列的起始部分的第3部分命令列;(c)在将上述第2命令列反复供给到上述中央处理装置时,一边将存储在上述第3缓冲器中的上述第3部分命令列供给到上述中央处理装置,一边将后续于上述第3部分命令列的第4部分命令列存储到上述第2缓冲器中;(d)上述选择机构,如果将上述第3部分命令列的全部供给到上述中央处理装置,则从存储在上述第2缓冲器中的第4部分命令列开始,将上述第3部分命令列的后续命令供给到上述中央处理装置。
由此,能够将在供给形成循环的第1命令列以外的第2命令列时使用的缓冲器、和存储与作为第1命令列的起始部分的部分命令列结合的部分命令列的缓冲器共用。在此情况下,能够不进行缓冲器的追加而高效地供给包括更多个命令的命令列。
另外,本发明不仅可以作为命令供给装置实现,也可以作为控制命令供给装置的方法(以下称作命令供给方法)等实现。此外,也可以作为装入了由命令供给装置提供的功能(以下称作命令供给功能)的LSI、将命令供给功能形成在FPGA、CPLD等的可编程逻辑设备中的IP核心(以下称作命令供给核心)、以及记录了命令供给核心的记录介质等实现。
发明的效果以上,根据有关本发明的命令供给装置,对于循环用命令缓冲器的容量以上的循环块,也能够省略向主存储装置的访问、高效地供给命令。并且,在具有多个循环用命令缓冲器的情况下,能够抑制硬件量的增加。进而,通过省略向主存储装置的访问,能够避免对主存储装置的访问等待,能够提高中央处理装置的执行处理的性能。此外,能够降低对主存储装置的访问频率,能够抑制消耗电力的增大。


图1是表示实施方式1的命令供给装置的结构的图。
图2是表示在实施方式1的命令供给装置中从主存储装置取出命令时的处理的图。
图3是表示保存在主存储装置中的命令列的一例的图。
图4A是表示实施方式1的命令供给装置的动作例的第1图。
图4B是表示实施方式1的命令供给装置的动作例的第2图。
图4C是表示实施方式1的命令供给装置的动作例的第3图。
图4D是表示实施方式1的命令供给装置的动作例的第4图。
图5A是表示实施方式1的命令供给装置的动作例的第5图。
图5B是表示实施方式1的命令供给装置的动作例的第6图。
图5C是表示实施方式1的命令供给装置的动作例的第7图。
图5D是表示实施方式1的命令供给装置的动作例的第8图。
图6A是表示实施方式1的命令供给装置的动作例的第9图。
图6B是表示实施方式1的命令供给装置的动作例的第10图。
图6C是表示实施方式1的命令供给装置的动作例的第11图。
图6D是表示实施方式1的命令供给装置的动作例的第12图。
图7A是表示实施方式1的命令供给装置的动作例的第13图。
图7B是表示实施方式1的命令供给装置的动作例的第14图。
图8是表示实施方式2的命令供给装置的结构的图。
图9是表示在实施方式2的命令供给装置中从主存储装置取出命令时的处理的图。
图10A是表示实施方式2的命令供给装置的动作例的第1图。
图10B是表示实施方式2的命令供给装置的动作例的第2图。
图10C是表示实施方式2的命令供给装置的动作例的第3图。
图10D是表示实施方式2的命令供给装置的动作例的第4图。
图10E是表示实施方式2的命令供给装置的动作例的第5图。
图10F是表示实施方式2的命令供给装置的动作例的第6图。
图10G是表示实施方式2的命令供给装置的动作例的第7图。
图10H是表示实施方式2的命令供给装置的动作例的第8图。
图11A是表示实施方式2的命令供给装置的动作例的第9图。
图11B是表示实施方式2的命令供给装置的动作例的第10图。
图11C是表示实施方式2的命令供给装置的动作例的第11图。
图11D是表示实施方式2的命令供给装置的动作例的第12图。
图11E是表示实施方式2的命令供给装置的动作例的第13图。
图11F是表示实施方式2的命令供给装置的动作例的第14图。
图11G是表示实施方式2的命令供给装置的动作例的第15图。
图11H是表示实施方式2的命令供给装置的动作例的第16图。
图12A是表示实施方式2的命令供给装置的动作例的第17图。
图12B是表示实施方式2的命令供给装置的动作例的第18图。
标号说明1主存储装置10、20中央处理装置100、200微处理器101、201命令供给装置111、211存储器接口112、212通常用命令缓冲器113循环用命令缓冲器114循环用命令缓冲器115结合用命令缓冲器116、216选择回路213阈值寄存器
具体实施例方式
(实施方式1)以下,参照附图对有关本发明的实施方式1进行说明。
本发明的实施方式1的命令供给装置一边将经由存储器接口从主存储装置先读出的命令存储到缓冲器中,一边将命令从存储在缓冲器中的命令列供给到中央处理装置中。此时,对于通过循环反复供给命令的命令列(以下称作循环块)以外的命令列(以下称作通常块),存储到通常用命令缓冲器中。此外,对于循环块,分割而存储到循环用命令缓冲器与结合用命令缓冲器中。并且,其特征在于,在将循环块的命令供给到中央处理装置中的情况下,将结合了存储在循环用命令缓冲器与结合用命令缓冲器中的命令列后的命令列供给到中央处理装置中。
所谓的“通常块”,是指保存在主存储装置中的命令列中的循环块以外的块。
所谓的“循环块”,是指保存在主存储装置中的命令列中的、保存有重复执行的命令的块。
按照以上这些方面,对本发明的实施方式1的命令供给装置进行说明。
首先,对实施方式1的命令供给装置的结构进行说明。
如图1所示,命令供给装置101根据一起安装在微处理器100中的中央处理装置10的指示,从与微处理器100连接的主存储装置1读出命令,供给到中央处理装置10中。这里,作为一例,具备存储器接口111、通常用命令缓冲器112、循环用命令缓冲器113、循环用命令缓冲器114、结合用命令缓冲器115、以及选择回路116等。
存储器接口111根据来自中央处理装置10的指示,从主存储装置1读出命令,将读出的命令存储到通常用命令缓冲器112、循环用命令缓冲器113、循环用命令缓冲器114、结合用命令缓冲器115的某一个中。
通常用命令缓冲器112是将从通常块读出的命令存储4语句量的缓冲器。
循环用命令缓冲器113是将从循环块读出的命令存储4语句量的缓冲器。
循环用命令缓冲器114是将从循环块读出的命令存储4语句量的缓冲器。
结合用命令缓冲器115与循环用命令缓冲器113及循环用命令缓冲器114的某一个结合。在与循环用命令缓冲器113结合的情况下,将存储在循环用命令缓冲器113中的命令列的后续命令存储4语句的量。在与循环用命令缓冲器114结合的情况下,将存储在循环用命令缓冲器114中的命令列的后续命令存储4语句的量。
选择回路116根据来自中央处理装置10的指示,将通常用命令缓冲器112、循环用命令缓冲器113、循环用命令缓冲器114、结合用命令缓冲器115的某一个选择为命令的供给源。
接着,对在实施方式1中的命令供给装置中从主存储装置取出命令时的处理进行说明。
如图2所示,命令供给装置101在从中央处理装置10接受到指示的情况下(步骤S101是),估计空循环(步骤S102是),从通常用命令缓冲器112、循环用命令缓冲器113、114、结合用命令缓冲器115之中,在接受到指示的缓冲器中有空白的情况下(步骤S103是),从主存储装置1取出命令(步骤S104)。
另外,没有接受到指示的缓冲器为指示等待状态。
接着,对中央处理装置10和命令供给装置101的动作进行说明。
这里,如图3所示,作为保存在主存储装置1中的命令列,以由通常块121、123、125、循环块122、循环块124构成的命令列为一例进行说明。
通常块121由从上朝下排列的命令列(I#1~I#7、LSI#1)构成。
I#1~I#7是循环存储命令、分支命令以外的命令。
LSI#1是表示循环块122从I#8开始的循环存储命令。
循环块122由从上朝下排列的命令列(I#8~I#13、BI#1)构成。
I#8~I#13是循环存储命令、分支命令以外的命令。
BI#1是分支到I#8的带条件的分支命令。
通常块123由从上朝下排列的命令列(I#14~I#21、LSI#2)构成。
I#14~I#21是循环存储命令、分支命令以外的命令。
LSI#2是表示循环块124从I#22开始的循环存储命令。
循环块124由从上朝下排列的命令列(I#22~I#26、BI#2)构成。
I#22~I#26是循环存储命令、分支命令以外的命令。
BI#2是分支到I#22的带条件的分支命令。
通常块125由从上朝下排列的命令列(I#27~I#32)构成。
I#27~I#32是循环存储命令、分支命令以外的命令。
所谓的“循环存储命令”,例如由下述的命令所示,是表示循环块从由label指定的地址开始的命令。
Loopstore label,buff另外,根据buff值指定存储从循环块读出的命令的缓冲器。这里,在buff值为0的情况下,存储到循环用命令缓冲器113中,在buff值为1的情况下,存储到循环用命令缓冲器114中。
另外,对于LSI#1,是buff值为0的情况,中央处理装置10对命令供给装置101指示循环块122的起始部分存储在循环用命令缓冲器113中。
此外,对于LSI#2,是buff值为1的情况,中央处理装置10对命令供给装置101指示循环块124的起始部分存储在循环用命令缓冲器114中。
接着,对中央处理装置10的动作进行说明。
中央处理装置10在执行作为一例而举出的命令列(参照图3)时,根据下述(1)~(6)的情况进行处理。
(1)中央处理装置10在执行通常块的命令的情况下,对存储器接口111指示存储到通常用命令缓冲器112中。进而,对选择回路116指示将通常用命令缓冲器112选择为命令的供给源。
(2)中央处理装置10在执行循环存储命令的情况下,在没有进行向通常用命令缓冲器112的存储时,对存储器接 111指示从由循环存储命令指定的循环块的起始将一定量的命令存储到由循环存储命令指定的循环用命令缓冲器中。
(3)中央处理装置10除了反复供给的情况以外,在通过分支命令的执行来执行从循环用命令缓冲器供给的命令的情况下,对存储器接口111指示将存储在该循环用命令缓冲器中的命令列的后续命令存储到结合用命令缓冲器115中。
(4)中央处理装置10在从循环用命令缓冲器供给了全部的命令的情况下,对选择回路116指示将结合用命令缓冲器115选择为后续的命令的供给源。
(5)中央处理装置10除了反复供给的情况,在执行从结合用命令缓冲器115供给的命令的情况下,对存储器接口111指示将存储在结合用命令缓冲器115中的命令列的后续的命令存储到通常用命令缓冲器112中。
(6)中央处理装置10在执行分支命令而分支到由该分支命令指定的地址的情况下,对选择回路116指示选择存储由该地址指定的命令的循环用命令缓冲器。另一方面,在不分支而从结合用命令缓冲器115供给了全部的命令的情况下,对选择回路116指示将通常用命令缓冲器112选择为后续的命令的供给源。
接着,对命令供给装置101的动作进行说明。
命令供给装置101根据来自中央处理装置10的指示,各结构要素如下述那样动作。
存储器接口111从主存储装置1读出命令,将读出的命令存储到通常用命令缓冲器112、循环用命令缓冲器113、循环用命令缓冲器114及结合用命令缓冲器115的某一个中。
选择回路116选择通常用命令缓冲器112、循环用命令缓冲器113、循环用命令缓冲器114及结合用命令缓冲器115的某一个作为命令的供给源。
并且,被选择为命令的供给源的缓冲器将存储在该缓冲器中的命令经由选择回路116供给到中央处理装置10中。
这里,使用作为一例而举出的命令列(参照图3),对中央处理装置10和命令供给装置101的动作进行说明。
如图4A~图7B所示,命令供给装置101进行对应于下述(1)~(12)的情况的处理。
(1)中央处理装置10在执行通常块121的命令的情况下,对存储器接口111指示将通常块121的命令列(I#1~I#7、LSI#1)存储到通常用命令缓冲器112中。然后,对选择回路116指示将通常用命令缓冲器112选择为命令的供给源。
对应于此,存储器接口111访问主存储装置1,从主存储装置1读出命令列(I#1~I#7、LSI#1),存储到通常用命令缓冲器112中。进而,选择回路116将通常用命令缓冲器112选择为命令的供给源。并且,通常用命令缓冲器112经由选择回路116对中央处理装置10供给命令列(I#1~I#7、LSI#1)(参照图4A)。
(2)中央处理装置10除了通过分支命令反复供给的情况,在执行循环块122的命令的情况下,对存储器接口111指示将命令列(I#8~I#14)存储到通常用命令缓冲器112中。然后,对选择回路116指示将通常用命令缓冲器112选择为命令的供给源。此外,在执行循环存储命令(LSI#1)的情况下,根据循环存储命令(LSI#1)的buff值为0,对存储器接口111指示将由循环存储命令(LSI#1)指定的循环块122的起始部分的命令列(I#8~I#11)存储到循环用命令缓冲器113中。
对应于此,存储器接口111访问主存储装置1,从主存储装置1读出命令列(I#8~I#14),存储到通常用命令缓冲器112中。进而,选择回路116将通常用命令缓冲器112选择为命令的供给源。并且,通常用命令缓冲器112经由选择回路116对中央处理装置10供给命令列(I#8~BI#1)。与此同时,在后台读出由循环存储命令(LSI#1)指定的循环块122的起始部分的命令列(I#8~I#11),将读出的命令列(I#8~I#11)存储到循环用命令缓冲器113中(参照图4B、图4C)。
(3)中央处理装置10在执行分支命令(BI#1)而分支到循环块122的开始地址的情况下,对存储器接口111指示将存储在循环用命令缓冲器113中的命令列(I#8~I#11)的后续命令(I#12~I#14)存储到结合用命令缓冲器115中。然后,对选择回路116指示将循环用命令缓冲器113选择为命令的供给源。
对应于此,存储器接口111访问主存储装置1,从主存储装置1读出命令列(I#12~I#14),存储到结合用命令缓冲器115中。进而,选择回路116将循环用命令缓冲器113选择为命令的供给源。并且,通循环用命令缓冲器113经由选择回路116对中央处理装置10供给命令列(I#8~I#11)(参照图4D)。
(4)中央处理装置10在从循环用命令缓冲器113供给了全部的命令的情况下,对选择回路116指示将结合用命令缓冲器115选择为后续的命令的供给源。
对应于此,选择回路116将结合用命令缓冲器115选择为命令的供给源。结合用命令缓冲器115经由选择回路116对中央处理装置10供给命令列(I#12~I#14)(参照图5A)。
(5)中央处理装置10在向结合用命令缓冲器115的命令的存储结束的情况下,对存储器接口111指示将存储在结合用命令缓冲器115中的命令列(I#12~I#14)的后续命令(I#15~I#17)存储到通常用命令缓冲器112中。
对应于此,存储器接口111访问主存储装置1,将命令列(I#15~I#18)从主存储装置1读出,存储到通常用命令缓冲器112中(参照图5B)。
(6)中央处理装置10在执行分支命令(BI#1)、不分支到循环块122的开始地址而从结合用命令缓冲器115供给了全部的命令(I#12~I#14)的情况下,对选择回路116指示将通常用命令缓冲器112选择为后续的命令的供给源。
对应于此,选择回路116将通常用命令缓冲器112选择为命令的供给源。并且,通常用命令缓冲器112经由选择回路116对中央处理装置10供给命令列(I#15~I#18)(参照图5C)。
(7)中央处理装置10在执行通常块123的命令的情况下,对存储器接口111指示将通常块123的命令列(I#19~I#21、LSI#2)存储到通常用命令缓冲器112中。然后,对选择回路116指示将通常用命令缓冲器112选择为命令的供给源。
对应于此,存储器接口111访问主存储装置1,从主存储装置1读出命令列(I#19~I#21、LSI#2),存储到通常用命令缓冲器112中。进而,选择回路116将通常用命令缓冲器112选择为命令的供给源。并且,通常用命令缓冲器112经由选择回路116对中央处理装置10供给命令列(I#19~I#21、LSI#2)(参照图5D)。
(8)中央处理装置10除了通过分支命令反复供给的情况,在执行循环块124的命令的情况下,对存储器接口111指示将命令列(I#22~I#28)存储到通常用命令缓冲器112中。然后,对选择回路116指示将通常用命令缓冲器112选择为命令的供给源。此外,在执行循环存储命令(LSI#2)的情况下,中央处理装置10根据循环存储命令(LSI#2)的buff值为1,对存储器接口111指示将由循环存储命令(LSI#2)指定的循环块124的起始部分的命令列(I#22~I#25)存储到循环用命令缓冲器114中。
对应于此,存储器接口111访问主存储装置1,从主存储装置1读出命令列(I#22~I#25),存储到通常用命令缓冲器112中。进而,选择回路116将通常用命令缓冲器112选择为命令的供给源。并且,通常用命令缓冲器112经由选择回路116对中央处理装置10供给命令列(I#22~I#25)。与此同时,在后台读出由循环存储命令(LSI#2)指定的循环块124的起始部分的命令列(I#22~I#25),将读出的命令列(I#22~I#25)存储到循环用命令缓冲器114中(参照图6A、图6B)。
(9)中央处理装置10在执行分支命令(BI#2)而分支到循环块124的开始地址的情况下,对存储器接口111指示将存储在循环用命令缓冲器114中的命令列(I#22~I#25)的后续命令(I#26~I#28)存储到结合用命令缓冲器115中。然后,对选择回路116指示将循环用命令缓冲器113选择为命令的供给源。
对应于此,存储器接口111访问主存储装置1,从主存储装置1读出命令列(I#26~I#28),存储到结合用命令缓冲器115中。进而,选择回路116将循环用命令缓冲器113选择为命令的供给源。并且,循环用命令缓冲器114经由选择回路116对中央处理装置10供给命令列(I#22~I#25)(参照图6C)。
(10)中央处理装置10在从循环用命令缓冲器114供给了全部的命令的情况下,对选择回路116指示将结合用命令缓冲器115选择为后续的命令的供给源。
对应于此,选择回路116将结合用命令缓冲器115选择为命令的供给源。结合用命令缓冲器115经由选择回路116对中央处理装置10供给命令列(I#26~I#28)(参照图6D)。
(11)中央处理装置10在向结合用命令缓冲器115的命令的存储结束的情况下,对存储器接口111指示将存储在结合用命令缓冲器115中的命令列(I#26~I#28)的后续命令(I#29~I#32)存储到通常用命令缓冲器112中。
对应于此,存储器接口111访问主存储装置1,将命令列(I#29~I#32)从主存储装置1读出,存储到通常用命令缓冲器112中(参照图7A)。
(12)中央处理装置10在执行分支命令(BI#2)、不分支到循环块124的开始地址而从结合用命令缓冲器115供给了全部的命令(I#26~I#28)的情况下,对选择回路116指示将通常用命令缓冲器112选择为后续的命令的供给源。
对应于此,选择回路116将通常用命令缓冲器112选择为命令的供给源。并且,通常用命令缓冲器112经由选择回路116对中央处理装置10供给命令列(I#29~I#32)(参照图7B)。
由以上说明,根据本发明的实施方式1的命令供给装置,与将循环块的命令列存储到一个缓冲器中的情况相比,能够分开存储到两个以上的缓冲器中,这些缓冲器只要没有全部被更新,就能够再利用没有更新而存储在缓冲器中的命令列。并且,通过在循环执行时在后台将循环的后半部分保存到缓冲器中,即使不总是将循环整体保持在缓冲器中,在循环时也与全部保持在缓冲器中的状态等同,能够供给高效率的命令。
例如,将8语句量的命令各一半存储到两个缓冲器中,即使其中的一个缓冲器被更新,如果另一个缓冲器没有被更新,也可以不更新而再利用存储在另一个缓冲器中的4语句量的命令。并且,不用将8语句量的命令从主存储装置再次读出,而只要将更新后的4语句量的命令从主存储装置再次读出就可以,访问主存储装置的时间也能够缩短。并且,在对循环用命令缓冲器及结合用命令缓冲器的合计语句数即8语句以下的循环块反复供给时,能够不访问主存储装置而供给循环块的命令。
同样,在代替结合用命令缓冲器而使用另一个循环用命令缓冲器的情况下,在对8语句以下的循环块反复供给时,也能够不访问主存储装置而供给循环块的命令。
另外,对8语句的两个循环块,为了在循环中不访问主存储装置而供给,在以往的结构中,需要设置两个8语句量的循环用命令缓冲器,需要共计16语句量的命令缓冲器。相对于此,在本发明的实施方式1中,利用循环用命令缓冲器112、循环用命令缓冲器114及结合用命令缓冲器115的共计12语句量的命令缓冲器,能够实现等同的功能,能够以更少的硬件量对循环块高效地供给命令。
(实施方式2)接着,参照附图对有关本发明的实施方式2进行说明。另外,对于与实施方式1相同的结构省略说明。
本发明的实施方式2的命令供给装置与命令供给装置101(参照图1)相比,不具备结合用命令缓冲器115而具备兼用作通常用命令缓冲器112与结合用命令缓冲器115的通常用命令缓冲器这一点不同。
具体而言,实施方式2中的通常命令缓冲器在供给通常块的命令的情况下如通常用命令缓冲器112那样发挥功能,在供给循环块的命令的情况下,如结合用命令缓冲器115那样发挥功能。
按照以上的方面,对有关本发明的实施方式2的命令供给装置进行说明。
首先,对有关本发明的实施方式2的命令供给装置的结构进行说明。
如图8所示,命令供给装置201与命令供给装置101(参照图1)相比,下述(1)~(5)的方面不同。
(1)代替存储器接口111而具备存储器接口211。
存储器接口211根据来自中央处理装置20的指示,从主存储装置1读出命令,将读出的命令存储到通常用命令缓冲器212、循环用命令缓冲器213的某一个中。
(2)代替通常用命令缓冲器112而具备通常用命令缓冲器212。
通常用命令缓冲器212在供给通常块的命令的情况下,如通常用命令缓冲器112那样将从通常块读出的命令存储4语句量。此外,在供给循环块的命令的情况下,如结合用命令缓冲器115那样将存储在循环用命令缓冲器213中的命令列的后续命令存储4语句量。
(3)代替选择回路116而具备选择回路216。
选择回路216根据来自中央处理装置10的指示,将通常用命令缓冲器212、循环用命令缓冲器213的某一个选择为命令的供给源。
(4)新具备阈值寄存器213。
阈值寄存器213保持有在通常用命令缓冲器212供给循环块的命令中、在判断通常用命令缓冲器212的空白区域的容量是否达到预定的容量时参照的阈值。
(5)不具备循环用命令缓冲器114、结合用命令缓冲器115在命令供给装置201中,由于只存在1个循环用命令缓冲器,所以忽视循环存储命令的buff值、即选择缓冲器的信息。
接着,对在实施方式2的命令供给装置中从主存储装置取出命令时的处理进行说明。
如图9所示,通常用命令缓冲器212在将存储在循环用命令缓冲器113中的命令列的后续命令供给之中的情况下(步骤S201是),在伴随着供给的缓冲器的空白区域超过预定的阈值(这里为2语句量)之前(步骤S202),不存储新的命令。
接着,对中央处理装置20的动作进行说明。
中央处理装置20在执行在实施方式1中作为一例举出的命令列(参照图3)时,根据下述(1)~(5)的情况进行处理。
(1)中央处理装置20在执行通常块的命令的情况下,对存储器接口211指示存储到通常用命令缓冲器212中。进而,对选择回路216指示将通常用命令缓冲器212选择为命令的供给源。
(2)中央处理装置20在执行循环存储命令的情况下,在没有进行向通常用命令缓冲器212的存储时,对存储器接口211指示从由循环存储命令指定的循环块的起始将一定量的命令存储到循环用命令缓冲器113中。
(3)中央处理装置20在通过分支命令的执行来执行从循环用命令缓冲器113供给的命令的情况下,对存储器接口211指示将存储在该循环用命令缓冲器113中的命令列的后续命令存储到通常用命令缓冲器212中。
(4)中央处理装置20在从循环用命令缓冲器供给了全部的命令的情况下,对选择回路216指示将通常用命令缓冲器212选择为后续的命令的供给源。
(5)中央处理装置20在执行分支命令而分支到由该分支命令指定的地址的情况下,对选择回路216指示选择循环用命令缓冲器113。另一方面,在不分支而从通常用命令缓冲器112供给其余的命令的情况下,对存储器接口211指示将存储在通常用命令缓冲器212中的命令列的后续命令存储到通常用命令缓冲器212中。
接着,对命令供给装置201的动作进行说明。
命令供给装置201通过接受到来自中央处理装置20的指示的存储器接口211,从主存储装置1先读出命令,将读出的命令存储到通常用命令缓冲器212、循环用命令缓冲器113的某一个中。此外,在选择回路216中,将通常用命令缓冲器212和循环用命令缓冲器113的某一个选择为命令的供给源。并且,被选择为命令的供给源的缓冲器将存储在该缓冲器中的命令经由选择回路216供给到中央处理装置20中。
另外,通常用命令缓冲器212在供给循环块的命令的过程中,如果通过供给命令而产生的空白容量超过保持在阈值寄存器213中的阈值,则再开始从主存储装置1读出后续的命令并存储的处理。
并且,通常用命令缓冲器212在供给循环块的命令的情况下,即在对循环供给用命令缓冲器113供给后续命令的情况下,即使随着命令的供给而在自身的缓冲器中出现空白区域,在该空白区域超过其阈值(例如为两个语句)之前,也不从主存储装置1读出并保存新的命令。由此,将后续命令继续保持在循环供给用命令缓冲器113中。
这里,使用作为一例而举出的命令列(参照图3),对中央处理装置20和命令供给装置201的动作进行说明。
如图10A~图12B所示,命令供给装置201进行对应于下述(1)~(12)的情况的处理。
(1)中央处理装置20在执行通常块121的命令的情况下,对存储器接口211指示将通常块121的命令列(I#1~I#7、LSI#1)存储到通常用命令缓冲器212中。然后,对选择回路216指示将通常用命令缓冲器212选择为命令的供给源。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#1~I#7、LSI#1),存储到通常用命令缓冲器212中。进而,选择回路216将通常用命令缓冲器212选择为命令的供给源。并且,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#1~I#7、LSI#1)(参照图10A)。
(2)中央处理装置20除了通过分支命令反复供给的情况,在执行循环块122的命令的情况下,对存储器接口211指示将命令列(I#8~I#14)存储到通常用命令缓冲器212中。然后,对选择回路216指示将通常用命令缓冲器212选择为命令的供给源。此外,在执行循环存储命令(LSI#1)的情况下,对存储器接口211指示将由循环存储命令(LSI#1)指定的循环块122的起始部分的命令列(I#8~I#11)存储到循环用命令缓冲器113中。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#8~I#14),存储到通常用命令缓冲器212中。进而,选择回路216将通常用命令缓冲器212选择为命令的供给源。并且,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#8~I#11)。与此同时,在后台读出由循环存储命令(LSI#1)指定的循环块122的起始部分的命令列(I#8~I#11),将读出的命令列(I#8~I#11)存储到循环用命令缓冲器113中(参照图10B、图10C)。
(3)中央处理装置20在执行分支命令(BI#1)而分支到循环块122的开始地址的情况下,对存储器接口211指示将存储在循环用命令缓冲器113中的命令列(I#8~I#11)的后续命令(I#12~I#14)存储到通常用命令缓冲器212中。然后,对选择回路216指示将循环用命令缓冲器113选择为命令的供给源。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#12~I#14),存储到通常用命令缓冲器112中。进而,选择回路216将循环用命令缓冲器113选择为命令的供给源。并且,循环用命令缓冲器113经由选择回路216对中央处理装置20供给命令列(I#8~I#11)(参照图10D)。
(4)中央处理装置20在从循环用命令缓冲器113供给了全部的命令的情况下,对选择回路216指示将通常用命令缓冲器212选择为后续的命令的供给源。
对应于此,选择回路216将通常用命令缓冲器212选择为命令的供给源。通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#12、I#13)(参照图10E)。
进而,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令。此时,由于通过对中央处理装置20供给命令而产生的通常用命令缓冲器212的空白区域超过了阈值,所以对存储器接口211指示将存储在通常用命令缓冲器212中的命令列(I#12~I#14)的后续命令(I#15、I#16)存储到通常用命令缓冲器212中。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#15、I#16),存储到通常用命令缓冲器212中(参照图10F)。
(5)中央处理装置20在执行分支命令(BI#1)而分支到循环块122的开始地址的情况下,对选择回路216指示将循环用命令缓冲器113选择为命令的供给源。然后,对存储器接口211指示将存储在循环用命令缓冲器113中的命令列(I#8~I#11)的后续命令(I#12、I#13)存储到通常用命令缓冲器212中。
对应于此,选择回路216将循环用命令缓冲器113选择为命令的供给源。进而,循环用命令缓冲器113经由选择回路216对中央处理装置20供给命令列(I#8~I#11)。接着,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#12、I#13),存储到通常用命令缓冲器212中(参照图10G)。
(6)中央处理装置20在执行分支命令(BI#1)、不分支到循环块122的开始地址而从通常用命令缓冲器212供给了全部的命令(I#12~I#14)的情况下,对存储器接口211指示将存储在通常用命令缓冲器212中的命令列(I#12~I#14)的后续命令(I#15~I#18)存储到通常用命令缓冲器212中。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#15~I#18),存储到通常用命令缓冲器212中。并且,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#15~I#18)(参照图10H、图11A)。
(7)中央处理装置20在执行通常块121的命令的情况下,对存储器接口211指示将通常块121的命令列(I#19~I#21、LSI#2)存储到通常用命令缓冲器212中。然后,对选择回路216指示将通常用命令缓冲器212选择为命令的供给源。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#19~I#21、LSI#2),存储到通常用命令缓冲器212中。进而,选择回路216将通常用命令缓冲器212选择为命令的供给源。并且,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#19~I#21、LSI#2)(参照图11B)。
(8)中央处理装置20除了通过分支命令反复供给的情况,在执行循环块124的命令的情况下,对存储器接口211指示将命令列(I#22~I#25)存储到通常用命令缓冲器212中。然后,对选择回路216指示将通常用命令缓冲器212选择为命令的供给源。此外,在执行循环存储命令(LSI#2)的情况下,对存储器接口211指示将由循环存储命令(LSI#2)指定的循环块124的起始部分的命令列(I#22~I#25)存储到循环用命令缓冲器113中。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#22~I#25),存储到通常用命令缓冲器212中。进而,选择回路216将通常用命令缓冲器212选择为命令的供给源。并且,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#22~BI#2)。与此同时,在后台读出由循环存储命令(LSI#2)指定的循环块124的起始部分的命令列(I#22~I#25),将读出的命令列(I#22~I#25)存储到循环用命令缓冲器113中(参照图11C、图11D)。
(9)中央处理装置20在执行分支命令(BI#2)而分支到循环块124的开始地址的情况下,对存储器接口211指示将存储在循环用命令缓冲器113中的命令列(I#22~I#25)的后续命令(I#26~I#28)存储到通常用命令缓冲器212中。然后,对选择回路216指示将循环用命令缓冲器113选择为命令的供给源。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#26~I#28),存储到通常用命令缓冲器212中。进而,选择回路216将循环用命令缓冲器113选择为命令的供给源。并且,循环用命令缓冲器113经由选择回路216对中央处理装置20供给命令列(I#22~I#25)(参照图11E)。
(10)中央处理装置20在从循环用命令缓冲器113供给了全部的命令的情况下,对选择回路216指示将通常用命令缓冲器212选择为后续的命令的供给源。
对应于此,选择回路216将通常用命令缓冲器212选择为命令的供给源。通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#26、BI#2)(参照图11F)。
进而,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令。此时,由于通过对中央处理装置20供给命令而产生的通常用命令缓冲器212的空白区域没有超过阈值,所以不对存储器接口211指示将存储在通常用命令缓冲器212中的命令列(I#26~I#28)的后续命令(I#29、I#30)存储到通常用命令缓冲器212中所产生的空白区域中(参照图11G)。
(11)中央处理装置20在执行分支命令(BI#2)而分支到循环块124的开始地址的情况下,对选择回路216指示将循环用命令缓冲器113选择为命令的供给源。
对应于此,选择回路216将循环用命令缓冲器113选择为命令的供给源。进而,循环用命令缓冲器113经由选择回路216对中央处理装置20供给命令列(I#22~I#25)(参照图11H)。
(12)中央处理装置20在执行分支命令(BI#2)、不分支到循环块122的开始地址而从通常用命令缓冲器212供给了全部的命令(I#26~I#28)的情况下,对存储器接口211指示将存储在通常用命令缓冲器212中的命令列(I#26~I#28)的后续命令(I#29~I#32)存储到通常用命令缓冲器212中。
对应于此,存储器接口211访问主存储装置1,从主存储装置1读出命令列(I#29~I#32),存储到通常用命令缓冲器212中。接着,通常用命令缓冲器212经由选择回路216对中央处理装置20供给命令列(I#29~I#32)(参照图12A、图12B)。
由以上说明,根据命令供给装置20I,对于6语句以下的循环块,不访问主存储装置1也可以供给重复命令。
例如,在通过以往的结构实现等同的结果的情况下,需要与存储4语句量的通常用命令缓冲器另外地需要存储6语句量的命令的循环用命令缓冲器。即,合计需要存储10语句量的命令的缓冲器。
但是,根据命令供给装置201,通过有效地利用存储4语句量的通常用命令缓冲器212,能够将6语句量中的4语句量的命令存储到循环用命令缓冲器113中,将其余两个语句量的命令存储到通常用命令缓冲器212中。即,不需要设置将6语句量的循环块一起存储的循环用命令缓冲器,仅需要存储4语句量的命令的通常用命令缓冲器212、和存储4语句量的循环用命令缓冲器113,需要存储合计8语句量的命令的缓冲器。并且,如果与以往的结构相比,则能够削减两个语句量的缓冲器。
(其他)另外,保持在阈值寄存器213中的阈值也可以通过程序设定。此外,也可以在通常用命令缓冲器212的容量内设定。随之,可以供给与程序的指定相匹配的命令。并且,通过增大该阈值,对于循环块的命令,分配的容量变大,能够高效地供给。相反,对于后续于该循环块的命令列,被分配的容量变小,有能够与该循环块一起存储到通常用命令缓冲器212中的命令数变少的权衡。
另外,命令供给装置也可以通过全定制LSI(Large ScaleIntegration)实现。此外,也可以通过ASIC(Application SpecificIntegrated Circuit)等那样的半定制LSI实现。此外,也可以通过FPGA(Field Programmable Gate Array)、CPLD(Complex ProgrammableLogic Device)等那样的可编程逻辑设备实现。此外,也可以作为可动态改写回路结构的动态重构设备实现。
进而,将构成命令供给装置的1至2以上的功能形成在这些LSI上的设计数据,也可以是通过VHDL(Very high speed integrated circuitHardware Description Language)、Verilog-HDL、SystemC等那样的硬件记述语言记述的程序(以下称作HDL程序)。此外,也可以做成将HDL程序逻辑合成而得到的门级的网表。此外,也可以做成在门级的网表中附加了配置信息、过程条件等的微单元信息。此外,也可以做成规定了尺寸、定时等的掩码数据。
进而,设计数据也可以记录到光学记录介质(例如CD-ROM等)、磁记录介质(例如硬盘等)、光磁记录介质(例如MO等)、半导体存储器(例如RAM等)等那样的计算机可读取的记录介质中,以使其能够被组装系统等那样的硬件系统中。并且,经由记录介质被读取到其他硬件系统中的设计数据也可以经由下载线缆而下载到可编程逻辑设备中。
此外,设计数据也可以保持在传送路径上的硬件系统中,以便能够经由网络等那样的传送路径被其他硬件系统取得。进而,从硬件系统经由传送路径被取得到其他硬件系统中的设计数据也可以经由下载线缆被下载到可编程逻辑设备中。
或者,被逻辑合成、配置、配线的设计数据也可以记录在串行ROM中,以使其在通电时能够被传送给FPGA。并且,记录在串行ROM中的设计数据也可以在通电时直接被下载到FPGA中。
工业实用性本发明可以作为将从主存储装置读出的命令向中央处理装置供给的命令供给装置等、特别是作为不增加循环用命令缓冲器的容量而对更多个命令的循环不进行向主存储装置的访问而进行命令供给的命令供给装置等使用。
权利要求
1.一种命令供给装置,将从主存储装置读出的命令供给到中央处理装置,其特征在于,具备第1缓冲器,在将保存在上述主存储装置中的命令列中的、反复供给到上述中央处理装置的第1命令列再次供给到上述中央处理装置之前,存储作为上述第1命令列的起始部分的第1部分命令列;第2缓冲器,在将上述第1命令列反复供给到上述中央处理装置时,一边将存储在上述第1缓冲器中的上述第1部分命令列供给到上述中央处理装置,一边存储后续于上述第1部分命令列的第2部分命令列;以及选择机构,如果将上述第1部分命令列的全部供给到上述中央处理装置,则从存储在上述第2缓冲器中的第2部分命令列开始,将上述第1部分命令列的后续命令供给到上述中央处理装置。
2.如权利要求1所述的命令供给装置,其特征在于,上述命令供给装置还,具备第3缓冲器,在将保存在上述主存储装置中的命令列中的、在上述第1命令列以外反复供给到上述中央处理装置的第2命令列再次供给到上述中央处理装置之前,存储作为上述第2命令列的起始部分的第3部分命令列;在将上述第2命令列反复供给到上述中央处理装置时,一边将存储在上述第3缓冲器中的上述第3部分命令列供给到上述中央处理装置,一边将后续于上述第3部分命令列的第4部分命令列存储到上述第2缓冲器中;上述选择机构,如果将上述第3部分命令列的全部供给到上述中央处理装置,则从存储在上述第2缓冲器中的第4部分命令列开始,将上述第3部分命令列的后续命令供给到上述中央处理装置。
3.如权利要求2所述的命令供给装置,其特征在于,在上述主存储装置中保存有第1命令,含有上述第1命令列的所在、和指定将上述第1部分命令列存储到上述第1缓冲器中的信息;第2命令,含有上述第2命令列的所在、和指定将上述第3部分命令列存储到上述第3缓冲器中的信息;上述命令供给装置还,从执行了上述第1命令后的上述中央处理装置接受基于包含在上述第1命令中的信息的指示,将上述第1部分命令列存储到上述第1缓冲器中,从执行了上述第2命令后的上述中央处理装置接受基于包含在上述第2命令中的信息的指示,将上述第3部分命令列存储到上述第3缓冲器中。
4.如权利要求2所述的命令供给装置,其特征在于,上述命令供给装置还具备第4缓冲器,在将保存在上述主存储装置中的命令列供给到上述中央处理装置时依次存储;上述选择机构除了反复供给到上述中央处理装置的情况以外,将保存在上述第4缓冲器中的命令列依次供给到上述中央处理装置。
5.如权利要求1所述的命令供给装置,其特征在于,上述命令供给装置除了将上述第1命令列反复供给到上述中央处理装置的情况以外,在将保存在上述主存储装置中的命令列供给到上述中央处理装置的情况下,依次存储到上述第2缓冲器中。
6.如权利要求5所述的命令供给装置,其特征在于,上述命令供给装置还在将存储在上述第2缓冲器中的第2部分命令列供给到上述中央处理装置的期间,在通过将上述第2部分命令列供给到上述中央处理装置而在上述第2缓冲器中产生的空白容量超过预定的容量之前,不将上述第2部分命令列的后续命令存储到上述第2缓冲器中。
7.如权利要求6所述的命令供给装置,其特征在于,上述命令供给装置还具备保持上述预定的容量的寄存器;根据来自上述中央处理装置的指示,设定上述预定的容量,保持在上述寄存器中。
8.一种命令供给控制方法,控制具备第1缓冲器和第2缓冲器并将从主存储装置读出的命令供给到中央处理装置的命令供给装置,其特征在于,将保存于上述主存储装置中的命令列中的、反复供给到上述中央处理装置的第1命令列再次供给到上述中央处理装置之前,将作为上述第1命令列的起始部分的第1部分命令列存储到上述第1缓冲器中;在将上述第1命令列反复供给到上述中央处理装置时,一边将存储在上述第1缓冲器中的上述第1部分命令列供给到上述中央处理装置,一边将后续于上述第1部分命令列的第2部分命令列存储到上述第2缓冲器中;如果将上述第1部分命令列的全部供给到上述中央处理装置,则从存储在第2缓冲器中的第2部分命令列开始,将上述第1部分命令列的后续命令供给上述中央处理装置。
全文摘要
本发明提供一种以较少的硬件量高效地供给形成循环的命令列的命令供给装置。命令供给装置(101)具备循环用命令缓冲器(113),在将保存在主存储装置(1)中的命令列中的、反复供给到中央处理装置(10)的第1命令列再次供给到中央处理装置(10)之前,存储作为第1命令列的起始部分的第1部分命令列;结合用命令缓冲器(115),在将第1命令列反复供给到中央处理装置(10)时,一边将存储在循环用命令缓冲器(113)中的第1部分命令列供给到中央处理装置(10),一边存储后续于第1部分命令列的第2部分命令列;以及选择回路(116),如果将第1部分命令列的全部供给到中央处理装置(10),则从存储在结合用命令缓冲器(115)中的第2部分命令列开始,将第1部分命令列的后续命令供给到中央处理装置(10)。
文档编号G06F9/38GK101065725SQ20058004053
公开日2007年10月31日 申请日期2005年5月9日 优先权日2004年11月25日
发明者小椋里 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1