协处理器系统以及带辅助运算功能的外部存储装置的制作方法

文档序号:6409123阅读:445来源:国知局
专利名称:协处理器系统以及带辅助运算功能的外部存储装置的制作方法
技术领域
本发明涉及一种协处理器系统以及带辅助运算功能的外部存储装置,尤其涉及这样一种协处理器系统和带辅助运算功能的外部存储装置,在外部存储装置的存储器中存储有程序,该外部存储装置可灵活脱卸地装在诸如游戏机、图像处理装置之类信息处理装置中,外部存储装置中所设的处理器与信息处理装置中所设的处理器协同动作。
例如,1994年3月22日将专利申请公开的特开平6-79093号公报揭示了一例这种协处理器系统。该现有技术简单而言,如

图1所示,信息处理装置主机的CPU1与称为“马里奥芯片”(マリオチツプ)的另一CPU2存取ROM3的程序,CPU1按照程序执行信息处理。该现有技术中,用以使CPU1动作的程序由ROM3传送至RAM4加以存储(下行加载)。然后,CPU1通过直接存取传送至RAM4的程序进行处理,来间接处理ROM3的程序。另一方面,马里奥芯片2在不向RAM4传送期间(即CPU1不存取ROM3期间),对ROM3进行直接存取,执行程序。
此外,图2所示的并行处理装置也可以作为一种协处理器系统,但图2所示系统的总线控制器5是分别切换使第1CPU6a和第2CPU6b与ROM7连接,藉此使所需的程序从ROM7下行加载至第1RAM8a或第2RAM8b的。而且,CPU6a和CPU6b由时钟信号发生器9提供共同的时钟信号。CPU6a或CPU6b又分别根据相同时钟信号同时(或同步)地执行相应RAM8a或RAM8b所存储的程序。具体来说,图2系统的两个CPU6a和CPU6b不是在相同的机器工作周期期间直接存取ROM7,执行ROM7程序,而是先将程序传送至对应的RAM8a、8b一下,再在RAM8a、8b上直接处理(存取),因而两个CPU6a、6b不是在相同动作周期期间直接存取ROM7。
图1现有技术中,马里奥芯片2动作时,ROM3就被马里奥芯片2所占用,这样,要使CPU1与马里奥芯片2同时动作,就需要RAM4这种另外的存储器。因而,在程序编制方面有以下诸多制约。(1)必须根据CPU1和马里奥芯片2各自的总体结构,分别为它们准备程序。(2)ROM3内装入CPU1用的程序时,需要如上所述对它下行加载,因而必须把该程序写入到一系列ROM地址。(3)RAM4的容量不足时,无法加载CPU1所需的全部程序,必须将它分割,对每个分割程序块进行加载,在(3)情况下,必须预先将转移、子程序写入每一分割程序块,即便是相同的子程序也需设置于每一分割程序块,因而ROM容量浪费较多。
图2现有技术,除了上述图1现有技术的问题(3)以外,还需要RAM8a、RAM8b,因而器件个数增多,系统整体成本高。而且,为RAM8a、RAM8b低成本的目的而采用存储容量小的RAM的话,就不得不将ROM7的程序数据每次分作RAM最大存储容量频繁进行传送,因而CPU6a、6b的程序处理频繁地被中断,数据传送的等待时间增大,使用户在该期间处于等待状态,妨碍程序的高速处理。
为此,本发明的主要目的在于提供一种对程序无制约,可以在整体上高速化的协处理器系统。
本发明另一目的在于提供一种对程序无制约,可以从整体上使信息处理装置的动作高速化的带辅助运算功能的外部存储装置。
本发明再一目的在于提供这样一种协处理器系统和带辅助运算功能的外部存储装置,即总体结构共同的两个处理器可共用程序存储器,两个处理器通过非同步且直接地执行程序存储器的程序,不必采用转送程序用的RAM,便能够以低成本构成作高速处理。
本发明的协处理器系统包括根据程序在第一周期时间内进行运算处理的第一处理器(18);与第一处理器的总体结构相同,并且根据程序在短于第一周期时间的第二周期时间内进行运算处理的第二处理器(34);向第一处理器提供第一周期时间基准即第一时钟信号的第一时钟信号供给装置(23,25);向第二处理器提供第二周期时间基准即第二时钟信号的第二时钟信号供给装置(23,216);可以由第二处理器存取、高速读出,并且存储有第一处理器和第二处理器直接存取周期程序的程序存储器(22);在长于程序存储器存取时间但短于第一周期时间的第一期间内允许第一处理器向程序存储器直接存取,而在第一周期时间与第一期间之差的第二期间内允许第二处理器向所述程序存储器直接存取的存取控制装置(35,54,60,52)。
本发明的带辅助运算功能的外部存储装置,可灵活脱卸地装在信息处理装置中,该信息处理装置包括根据程序在第一周期时间内进行运算处理的第一处理器(18),以及向所述第一处理器提供第一周期时间基准即第一时钟信号的第一时钟信号供给装置(23,25),所述外部存储装置则包括与第一处理器的总体结构相同,并且根据程序在短于第一周期时间的第二周期时间内进行运算处理的第二处理器(34);向第二处理器提供第二周期时间基准即第二时钟信号的第二时钟信号供给装置(23,216);可以由第二处理器存取、高速读出,并且存储有第一处理器和第二处理器直接存取周期程序的程序存储器(22);在长于程序存储器存取时间但短于第一周期时间的第一期间内允许第一处理器向程序存储器直接存取,而在第一周期时间与第一期间之差的第二期间内允许第二处理器向所述程序存储器直接存取的存取控制装置(35,54,60,52)。
例如,信号SSYNC规定第一期间和第二期间。具体来说,信号SSYNC为高电平时为第一期间,而低电平时为第二期间。第一期间当中,第一处理器直接存取程序存储器,按照其程序数据执行运算处理。第二期间当中,第二处理器直接存取程序存储器,按照其程序数据执行运算处理。由于第一处理器和第二处理器总体结构相同,具有程序互换性,所以通过两处理器都直接存取程序存储器,可以执行运算处理。
按照本发明,就象是一个CPU(处理器)在进行串行处理那样编制出的程序,只要稍加修改,便可以变为两个CPU(处理器)进行并行处理用的程序。而且,不对程序下行加载,所以没必要将程序写入一系列的ROM地址。也没有必要将相同子程序存储到每一分割程序块,这样就不会造成ROM容量的浪费。所以在程序编制方面没有制约。
按照本发明,用于下行加载程序的RAM也不再需要,所以系统整体的成本变低。此外,在先行发售的信息处理装置不具有下行加载程序用的RAM的情况下,采用现有技术不能提升处理能力,但采用本发明带辅助运算功能的外部存储装置的话,就可以以比较低价格使系统整体的信息处理能力得到升级。
本发明上述目的以及其它目的和特征可以从参照附图进行的下述说明当中进一步清楚。
图1是简略示意一例现有技术的框图。
图2是简略示意另一侧现有技术的框图。
图3是示意本发明一实施例的框图。
图4是示意图3实施例从S-CPU看到的存储器映像的说明图。
图5是示意图3实施例从C-CPU看到的存储器映像的说明图。
图6是示意图3实施例的协处理器的框图。
图7是详示图3实施例协处理器一部分的框图。
图8是详示图3实施例协处理器另一部分的框图。
图9是详示图7实施例M-ROM时序器的框图。
图10是示意按图9实施例对M-ROM存取的状态说明图。
图11是详示图7实施例B-RAM时序器(I-RAM时序器)的框图。
图12是示意按图11实施例对B-RAM存取的状态说明图。
图13是示意按图11实施例对I-RAM存取的状态说明图。
图14是示意图7实施例SCPUIF的框图。
图15是详示图7实施例SCPUIF一部分的框图。
图16是详示图7实施例SCPUIF另一部分的框图。
图17是详示图7实施例时钟信号发生器的框图。
图18是示意一例图17实施例时钟信号发生器所产生的各个定时信号或时钟信号的说明图。
图19是示意另一例图17实施例时钟信号发生器所产生的各个定时信号或时钟信号的说明图。
图20是示意实施例中S-CPU起动C-CPU时的动作的流程图。
图21是示意实施例中S-CPU停止C-CPU时的动作的流程图。
图22是示意实施例中S-CPU对C-CPU进行NMI中断时的动作的流程图。
图23是示意实施例中S-CPU对C-CPU进行IRQ中断时的动作的流程图。
图24是示意实施例中C-CPU修改S-CPU的NMI向量时的动作的流程图。
图25是示意实施例中C-CPU对S-CPU进行IRQ中断时的动作的流程图。
图26是示意实施例中加速模式动作的流程图。
图27是示意按照图26动作的系统作分布处理的状态说明图。
图28是示意实施例中混合处理模式动作的流程图。
图29是示意按照图28动作的系统作分布处理的状态说明图。
图30是示意实施例中替代处理模式动作的流程图。
图31是示意按照图30动作的系统作分布处理的状态说明图。
以下揭示的实施例中,本发明用于游戏系统。但需要预先说明的是,本发明不只用于游戏系统,也可以用于图像处理系统和其他相同的信息处理系统。
图3是本发明一实施例的协处理器系统框图。图3所示的作为协处理器系统一例的游戏系统10,包括主机12,和作为例如由64脚连接器16脱卸自如装在该主机12上的带辅助运算功能的外部存储装置一例的插卡14。主机12包括作为主机一侧处理器的S-CPU18,和PPU(图像处理单元)。S-CPU18按照插卡14中含的M-ROM22中预先存储的程序动作。S-CPU18上连接工作RAM(W-RAM24)。主机12还包含振荡器23,该振荡器23输出的约21MHz的基本时钟信号Z21M提供给时钟信号发生器25。时钟信号发生器25包括分频器,由该分频器对基本时钟信号Z21M进行八分频,得到约2.68MHz的系统时钟信号SYSCK,提供给S-CPU18。PPU20在S-CPU18的控制之下,与V-RAM26协同动作执行图像修理,向监视器28提供视频信号,从而在监视器28的屏幕上显示游戏图像。另外,主机12的S-CPU18、PPU20的一般动作其本身已经公知,而且与本发明无直接关系,因此这里省略详细说明。
插卡14除上述M-ROM22以外,还包括协处理器30和B-RAM32。协处理器30则包括用来达到辅助运算功能的CPU内核C-CPU34,存取控制电路35,I-RAM36,以及时钟信号发生器216。B-RAM32是由例如锂电池等作为后备支持的RAM,具有例如4M位的存储容量。I-RAM36由例如16K位的SRAM构成。B-RAM32和I-RAM36均起到S-CPU18和和C-CPU34的外部RAM的作用。另外,M-ROM22由例如最大达64M位的掩膜ROM构成,该ROM中存储有游戏程序。M-ROM22的存取时间有一例是字长16位时约120纳秒(字长8位时约60纳秒)。
S-CPU18和C-CPU34采用的是与例如西方设计公司(WDC)制造的“65C816”这种相同的CPU内核。但本实施例中,C-CPU34的工作频率是10.73MHz,S-CPU18的工作频率是2.68MHz(或3.58MHz)。换言之,S-CPU18和C-CPU34采用相同内核,所以以相同的结构动作。具体来说,具有程序互换性,不过就工作速度而言,C-CPU34的工作速度比起S-CPU18工作速度最高达4倍。8位CPU的S-CPU18其周期时间在2.68MHz时约为372纳秒,8位CPU的C-CPU34其周期时间在10.37MHz时约为93纳秒。另一方面,M-ROM22的存取时间如上所述,16位字长时约为120纳秒,因而M-ROM22的存取时间按8位换算比C-CPU34的周期时间短。因此,以下实施例中利用这类时间差,把足以存取M-ROM22并由此读出程序数据的例如186纳秒分配给S-CPU18,也同样分配给C-CPU34 186纳秒,从而使得S-CPU18与C-CPU34实际上能够同时对M-ROM22存取。而且,分配给C-CPU34的186纳秒是C-CPU34的周期时间的2倍,所以C-CPU34在186秒期间动作两次。
另外,实施例的游戏系统10中,S-CPU18、W-RAM24和协处理器30(即C-CPU34)用地址总线38连接,S-CPU18、PPU20、W-RAM24和协处理器30(即C-CPU34)用数据总线40连接。协处理器30(即C-CPU34)与M-ROM22用地址总线42和数据总线44连接,协处理器30(即C-CPU34)与B-RAM32用地址总线46和数据总线48连接。地址总线38为24位,数据总线40为8位,地址总线42为23位,数据总线44为16位,地址总线46为19位,数据总线48为8位。而且,S-CPU18与C-CPU34是通过相同存取控制电路35存取M-ROM22或B-RAM32的。所以,对于S-CPU18和C-CPU34来说,如图4和图5所示,除了只有S-CPU18能够存取的W-RAM24的地址空间外,都分配相同的例如24位地址空间。如上所述,各CPU虽为8位,但利用存储排切换技术,可有24位地址空间。具体来说,图4示出的是从S-CPU18看到的存储器映像,而图5示出的是从C-CPU34看到的存储器映像,两个处理器的存储变换是相同的。但I-RAM36的地址变换,S-CPU18与C-CPU34多少有些不同。本实施例中设法使S-CPU18在“**3000h—**37FFh”上可以存取I-RAM36,而C-CPU34则在“**0000h—**07FFh”和“**3000h—**37FFh”上可以存取I-RAM36。另外,“**”是指“00h—3Fh”存储排和“80h—BFh”存储排。
另外,S-CPU18对各存储器22、32和36的存取与C-CPU34对各存储器22、32和36的存取都是由接收来自时钟信号发生器216的信号SSYNC(SSSYNC)的存取控制电路35控制的。该存取控制电路35包括后面述及的M-ROM时序器54、B-RAM时序器98和I-RAM时序器,它们的动作后面叙述。
图6—图8是协处理器30的框图。协处理器30包括与C-CPU34相连的地址译码器50。地址译码器50对S-CPU18和C-CPU34两者的地址译码。所以,地址译码器50接收S-CPU18的地址数据SA和C-CPU34的地址数据CA。地址译码器50的输出如后面所述提供作为种种寄存器的起动信号或时钟信号。另外,地址译码器50还从C-CPU34接收该C-CPU34从M-ROM22读出程序数据用的信号CRWB(“B”是反相,“ ̄”的意思,以下同)。
M-ROMSMMC52进行M-ROM22(图3)存储排切换的同时,切换S-CPU18和C-CPU34的存取。为此,M-ROMSMMC52接收S-CPU18的地址数据SA和C-CPU34的地址数据CA,以及S-CPU18的数据SD和C-CPU34的数据CD,同时还接收M-ROM时序器54来的信号TMSA。
图3存取控制电路35所含的M-ROM时序器54如图9详示的那样,包含有地址译码器56和58。地址译码器56对S-CPU18的地址数据SA译码,当地址数据SA命中图4中示出的M-ROM22的预定存取地址时,输出高电平信号SMHIT。地址译码器58对C-CPU34的地址数据CA译码,当地址数据CA命中图5中示出的M-ROM22的预定存取地址时,输出高电平信号CMHIT。信号SMHIT提供给“与”门60的输入端,对该“与”门60的另一输入端,提供为S-CPU18存取M-ROM22而确定的定时信号SSYNC(后面图18或图19中述及)。该“与”门60的输出作为信号TMSA送给上述M-ROMSMMC52。因而,在M-ROMSMMC52中,该信号TMSA为高电平时S-CPU18的地址SA便有效,低电压时C-CPU18的地址SA便有效。这样便可将有效的地址SA或CA提供给M-ROM22的地址输入MA(图7)。
地址译码器56的输出还提供给“与”门62的一输入端,对“与”门62的另一输入端提供的是S-CPU18读出M-ROM22时为低电平的信号SCPURDB。因而,“与”门62的输出信号SMRDOUT在S-CPU18应读出M-ROM22时便成为高电平。信号SMRDOUT可从M-ROM22读出,送至锁存/缓冲器64(图7),用于将数据输出端MD所输出的程序数据输入S-CPU18的数据总线SD。图7的锁存器/缓冲器64包含与数据输出端MD连接的锁存器66,前述信号SSYNC提供作为该锁存器66的锁存信号。锁存器66的高8位和低8位分别提供给三态缓冲器68主70。“与”门72和74的输出分别提供作为三态缓冲器68和70的控制输入。对“与”门72和74的一输入端分别提供上述信号SMRDOUT,对“与”门72的另一输入端则提供S-CPU18地址SA的最低有效位SA0,对“与”门74的另一端输入则提供最低有效位SA0的反相信号。因而,最低有效位SA0为低电平时便从三态缓冲器70输出M-ROM22数据的低8位MD0—MD7,最低有效位SA0为高电平时便从三态缓冲器68输出M-ROM22数据的高8位MD8-MD15后,分别输入S-CPU18的数据总线SD。
图9中,上述信号CMHIT提供给“与非”门76的一输入端,对该“与非”门76的另一输入端则提供上述“与”门60输出的信号TMSA。“与非”门电路176的输出为信号RDY,该信号RDY起着用以停止C-CPU34的信号的作用。具体来说,信号RDY为低电平时C-CPU34便处于待机状态。因而,C-CPU34和S-CPU18都存取M-ROM22时,信号RDY变为低电平,作为信号CRDY提供给C-CPU34。C-CPU34相应地便处于待机状态。由此,S-CPU18与C-CPU34同时存取M-ROM22或B-RAM32时,C-CPU34处于待机状态,S-CPU18的存取优先。而且,S-CPU18的存取结束后,C-CPU34的待机状态便解除,C-CPU34对M-ROM22或B-RAM32进行存取。因此,S-CPU18和C-CPU34对M-ROM22或B-RAM32按非同步的两相进行存取是可行的,S-CPU18和C-CPU34可以同时执行一个存储器(即M-ROM22)所存储的程序。
而且,“与”门60输出的信号TMSA的反相信号,地址译码器58输出的信号CMHIT,和C-CPU34应读出M-ROM22时为高电平的信号CRWB分别提供给“与”门78的3个输入端。因而,S-CPU18不存取M-ROM22时,该“与”门78就响应信号CMHIT,在C-CPU34应从M-ROM22读出数据时输出高电平的信号CMRD-OUT。信号CMRDOUT送至锁存/缓冲器80(图7),用以将M-ROM22输出的程序数据输入C-CPU34的数据总线CD。图7的锁存/缓冲器80包含有与M-ROM22的数据输出端MD相连接的锁存器82,信号CSYNC(后面述及)提供作为该锁存器82的锁存信号。锁存器82的高8位和低8位分别提供给三态缓冲器84和86。三态缓冲器84和86的控制输入分别由“与”门88和90的输出提供。对“与”门88和90的一输入端分别提供上述信号CMRDOUT,对“与”门88的另一输入端提供C-CPU34地址CA的最低有效位CA0,对“与”门90另一输入端提供最低有效位CA0的反相信号。因而,最低有效位CA0低电平时从三态缓冲器86输出M-ROM22数据的低8位MD0—MD7,最低有效位CA0为高电平时从三态缓冲器84输出M-ROM22数据的高8位MD8—MD15后,分别输入C-CPU34的数据总线CD。
前述信号CSYNC是表示C-CPU34应从M-ROM22读出数据,并将读出的数据锁存至锁存器82的定时的信号,可由“与”门92输出。具体来说,将信号CRWB、信号CMHIT、地址CA的最低有效位CA0的反相信号,和时钟信号PH12提供给“与”门92的4个输入端。时钟信号PH12如图18或图19所示,具有用于C-CPU34的频率,例如为10.73MHz的时钟信号。因而,信号CSYNC当C-CPU34存取M-ROM22时变为高电平输出,而当低电平时锁存器82就锁存由M-ROM22数据总线MD提供的16位程序数据。
由图4和图5的存储器映像可知,S-CPU18和C-CPU34共享M-ROM22的整个区域,不论何时都可以非同步地存取M-ROM22。这时对存取M-ROM22进行仲裁的是M-ROM时序器54。若图9的M-ROM时序器54的“与”门60有信号TMSA输出,图8的M-ROMSMMC52就使来自S-CPU18的地址SA有效。因而,此时如果C-CPU34命中M-ROM22地址的话,“与非”门76就有信号RDY输出,所以如图10(B)或(C)所示,在信号TMSA高电平期间,C-CPU34便等着对M-ROM22进行存取。因此,C-CPU34在信号TMSA变为低电平,从而信号RDY变为高电平时,就可以存取M-ROM22。这样,S-CPU18和C-CPU34就可以如图10(C)所示,按照非同步的两相(两种状态)存取M-ROM22。
另外,在如图10(A)所示,只有C-CPU34存取M-ROM22时,C-CPU34的工作频率根据时钟信号PH12,是10.73MHz。但在如图10(B)或(C)所示S-CPU18和C-CPU34一起按两相存取M-ROM22时,S-CPU18存取M-ROM22期间C-CPU34处于等待状态,所以C-CPU34的工作频率为5.37MHz。可S-CPU18的工作频率按照系统时钟信号SYSCK,通常设定为2.68MHz。
图8所示的B-RAMSMMC94和I-RAMSMMC96都具有与先前说明的M-ROMSMMC52相同的功能。具体来说,B-RAMSMM-C94对B-RAM32(图3)的存储排进行切换的同时,对S-CPU18和C-CPU34也进行切换。为此,B-RAMSMMC94不仅接S-CPU18的地址数据SA和C-CPU34的地址数据CA,以及S-CPU18的数据SD和C-CPU34的数据CD,还接收来自B-RAM时序器98的信号TBSA。
I-RAMSMMC96对I-RAM36(图3)的存储排进行切换的同时,对S-CPU18和C-CPU34也进行切换。为此,I-RAMSMMC96不仅接收S-CPU18的地址数据SA和C-CPU34的地址数据CA,以及S-CPU18的数据SD和C-CPU34的数据CD,还接收来自I-RAM时序器10的信号TISA。
图3存取控制电路35所含的B-RAM时序器98与I-RAM时序器100具有相同的电路构成,如图11详示的那样,包含有地址译码器102和104。地址译码器102对S-CPU18的地址数据SA译码,若地址数据SA命中B-RAM32的预定存取地址,就输出高电平信号SBHIT。地址译码器104对C-CPU34的地址数据CA译码,若地址数据CA命中B-RAM32的预定存取地址,就输出高电平信号CBHIT。信号SBHIT提供给“与”门106的一输入端,对该“与”门106的另一输入端则提供先前说明的定时信号SSYNC,该信号用于确定S-CPU18可以存取B-RAM32的时间。该“与”门106的输出作为信号TBSA送至B-RAMSMMC94。因而,该信号TBSA高电平时,就为S-CPU18存取B-RAM32的时间。具体来说,信号TBSA高电平时,B-RAMSMMC94就将S-CPU18输出的地址SA送给B-RAM32的地址输入端BA,而低电平时则将C-CPU34输出的地址CA送给地址输入端BA。
地址译码器102的输出还提供给“与”门108的一输入端,对“与”门108的另一输入端则提供S-CPU18读出B-RAM32时为低电平的信号SCPURDB。因而,“与”门108的输出信号SBRDOUT,在S-CPU18应读出B-RAM32时为高电平,在向B-RAM32写入数据时为低电平。信号SBRDOUT提供给锁存/缓冲器110(图8),用于将B-RAM32的数据端子BD输出的数据输入S-CPU18的数据总线SD。图8的锁存/缓冲器110包含有与数据端子BD连接的锁存器112,前述信号SSYNC提供作为该锁存/缓冲器112的锁存信号。锁存器112接收B-RAM32的8位输出数据,响应信号SSYNC将它锁存。锁存器112的输出送给三态缓冲器114。而且,B-RAM32的8位输出数据照原样送给三态缓冲器116。B-RAM时序器98输出的信号SBRDOUT和信号CBRDOUT(后面述及)分别提供作为三态缓冲器114和116的控制输入。因而,信号SBRDOUT高电平时便由三态缓冲器114输出B-RAM32的输出数据。同样,信号CBRDOUT高电平时便由三态缓冲器116输出B-RAM32的输出数据,再分别输入S-CPU18的数据总线SD和C-CPU34的数据总线CD。
图11的上述信号CMHIT提供给“与非”门118的一输入端,对该“与非”门118的另一输入端则提供来自“与”门106的信号TB-SA。“与非”门106的输出为RDY,该信号RDY起着用以停止C-CPU34的信号的作用。具体来说,信号RDY低电平时C-CPU34处于待机状态。因此,C-CPU34和S-CPU18都存取B-RAM32时,信号RDY便变为低电平,作为信号CRDY提供给C-CPU34。C-CPU34相应地变为待机状态。
而且,“与”门106输出的信号TBSA的反相信号,地址译码器104输出的信号CBHIT,和C-CPU34写入时为低电平、读出时为高电平的信号CRWB分别送给“与”门120的三个输入端。因而,当S-CPU18不存取B-RAM32时,该“与”门120便响应信号CBHIT,输出高电平的信号CBRDOUT。信号CBRDOUT如前所述提供给三态缓冲器116作为控制信号。
如先前说明过的那样,I-RAM时序器100与B-RAM时存器98也相同,因而,这里省略了I-RAM时序器100的详细说明。不过,图11中利用括号图示了图11电路用作I-RAM时序器100时所接收或输出的信号。
图3存取控制电路35所包含的I-RAM时序器100输出的信号SIRDOUT提供给锁存/缓冲器122(图8),用以将来自I-RAM36的数据输入S-CPU18的数据总线SD。图8锁存/缓冲器122包含有接收I-RAM30读出数据IRD的锁存器124,前述信号SSYNC提供作为该锁存器124的锁存信号。锁存器124接收I-RAM36的8位输出数据,响应信号SSYNC对它进行锁存。锁存器124的输出提供给三态缓冲器126。而且,I-RAM36的8位输出数据照原样提供给三态缓冲器128。I-RAM时序器100输出的信号SIRDOUT和信号CIRDOUT分别提供作为三态缓冲器126和128的控制输入。因而,信号SIRDOUT高电平时便由三态缓冲器126输出I-RAM36的输出数据。同样,信号CIRDOUT高电平时便由三态缓冲器128输出I-RAM36的输出数据,再分别输入S-CPU18的数据总线SD和C-CPU34的数据总线CD。
至B-RAM32和I-RAM36的写入数据分别由选择器130和132选择。具体来说,选择器130接收来自S-CPU18数据总线SD的8位数据和来自C-CPU34数据总线CD的8位数据。B-RAM时序器98输出的信号RDY提供作为选择器130的选择信号。也就是说,信号RDY低电平时选择器130便选择S-CPU18来的写入数据,提供给B-RAM32,信号RDY高电平时选择器130便选择C-CPU34来的写入数据,提供给B-RAM32。同样,选择器132接收来自S-CPU18数据总线SD的8位数据和来自C-CPU34数据总线CD的8位数据。I-RAM时序器100输出的信号RDY提供作为选择器132的选择信号。也就是说,信号RDY低电平时选择器132便选择S-CPU18来的写入数据,提供给I-RAM36,信号RDY高电平时选择器132便选择C-CPU34来的写入数据,提供给I-RAM36。
由图4和图5的存储器映像可知,S-CPU18和C-CPU34共享B-RAM32的整个区域,不论何时都可以非同步地存取B-RAM32。这时对B-RAM32存取进行仲裁的是B-RAM时序器98。若图11的B-RAM时序器98的“与”门106有高电平信号TBSA输出,图8的B-RAMSSC94中就使S-CPU18来的地址SA有效。因此,这时如果C-CPU34命中B-RAM32地址的话,便从“与非”门118输出信号RDY,所以如图12(B)和(C)所示,在信号TMSA高电平期间,C-CPU34等着对B-RAM32进行存取。因而,信号RDY低电平,并且信号TMSA也低电平时,C-CPU34可以存取B-RAM32。这样,S-CPU18和C-CPU34就可以完全按两相对B-RAM32进行存取。
另外,在如图12(A)所示只有C-CPU34存取B-RAM32时,C-CPU34的工作频率按照时钟信号PH12为5.37MHz。但在如图12(B)或(C)所示,S-CPU18和C-CPU34一起以两相存取B-RAM32时,C-CPU34的工作频率为2.68MHz。此外,S-CPU18的工作频率按照系统时钟信号SYSCK,通常设定为2.68MHz。
同样,由图4和图5的存储器映像可知,S-CPU18和C-CPU34可以存取I-RAM36的整个区域,不论何时都可以非同步地存取I-RAM36。此时对I-RAM36存取进行仲裁的是I-RAM时序器100。若图11的I-RAM时序器100的“与”门电路106有高电平信号TI-SA输出,图8的I-RAMSMMC96中就使S-CPU18来的地址SA有效。因此,这时如果C-CPU34命中I-RAM36地址的话,就从“与非”门电路118输出信号RDY,所以如图13(B)所示,在信号TISA高电平期间C-CPU34等着对I-RAM36进行存取。因而,信号RDY低电平,并且信号TISA也低电平时,C-CPU34就可以存取I-RAM36。这样,S-CPU18和C-CPU34就可以完全按两相对I-RAM36进行存取。
另外,在如图13(A)所示只有C-CPU34存取I-RAM36时,C-CPU34的工作频率按照时钟信号为10.73MHz。但在如图13(B)所示,S-CPU18与C-CPU34一起以两相存取I-RAM36时,C-CPU34的工作频率变为5.37MHz。不过,S-CPU18的工作频率按照系统时钟信号SYSCK,通常设定为2.68MHz。
回到图7,SCPUIF134有时在S-CPU18与C-CPU34之间互相提供中断IRQ,有时从S-CPU18提供给C-CPU34复位信号、中断NMI,或者有时在S-CPU18与C-CPU34之间互相提供向量。为此,该SCPUIF134接收S-CPU18的地址SA和数据SD,以及C-CPU34的地址CA和数据CD。
该SCPUIF134详细示于图14—图16中。如图15所示,它包括接收S-CPU18数据低8位SD0—SD7的最高有效位SD7的C-CPU控制寄存器136,接收高端第三位SD5的C-CPU控制寄存器138,接收高端第四位SD4的C—CPU控制寄存器140,以及接收低端4位SD3—SD0的C-CPU控制寄存器142。此外还包括分别接收数据SD0—SD7全部各位的译码器144和146,以及向量寄存器148、150、152、154、156和158。后面述及的时钟信号发生器216输出的S-CPU18用的系统时钟信号SYSCK经反相器160反相,提供作为全部这些C-CPU控制寄存器、译码器以及向量寄存器136—158的时钟信号。
图7地址译码器50输出的,S-CPU18写入控制C-CPU34用的控制信号的定时信号CCNTW提供作为C-CPU控制寄存器136—142的起动信号。图7地址译码器50输出的,S-CPU18写入控制中断用的控制信号的定时信号SIFW以及SICW提供作为译码器144和146的起动信号。图7地址译码器50输出的,S-CPU18写入复位向量用的定时信号RVLW和RVHW提供作为复位向量寄存器148以及150的起动信号。图7地址译码器50输出的,S-CPU18写入NMI向量用的定时信号CNVLW和CNVHW提供作为NMI向量寄存器152和154的起动信号。此外,图7地址译码器50输出的,S-CPU18写入IRQ向量的定时信号CIVLW和CIVHW提供作为IRQ向量寄存器156和158的起动信号。
此外,如图16所示,SCPUIF134还包括接收来自C-CPU34的数据CD其低8位CD7—CD0中最高有效位CD7的S-CPU控制寄存器162,以及接收低8位CD7—CD0中CD6—CD0等7位的S-CPU控制寄存器164。数据CD的低8位CD7—CD0还提供给两个译码器160和168,以及四个向量寄存器170、172、174和176。时钟信号发生器216输出的C-CPU34用的时钟信号PH12经反相器178反相后,提供作为这些寄存器和译码器162—176的时钟信号。
图7地址译码器50输出的,C-CPU34写入控制S-CPU18用的控制信号的定时信号SCNTW,提供作为S-CPU18控制寄存器162和164的起动信号。图7地址译码器50输出的,C-CPU34写入用于控制S-CPU34来的中断的控制信号的定时信号CIEW和CICW,提供作为译码器166的起动信号。图7地址译码器50输出的,C-CPU34写入NMI向量用的定时信号SNVLW和SNVHW,提供作为NMI向量寄存器170和172的起动信号。图7地址译码器50输出的,C-CPU34写入IRQ向量用的定时信号SIVLW和SIVHW,提供作为IRQ向量寄存器174和176的起动信号。
C—CPU控制寄存器136的输出Q,同译码器166输出的用于许可从C-CPU34对S-CPU18进行IRQ中断的信号SIRQEN一起提供给“与”门180后,由该“与”门180输出一信号CIRQ,用来由S-CPU18向C-CPU34加IRQ中断。另外,C-CPU控制寄存器136由译码器168输出的用来结束S-CPU18发出的IRQ中断的信号SIRQCL复位。C-CPU控制寄存器138的输出Q照原样输出作为S-CPU18使C-CPU34复位用的信号CRES。D-FF140的输出Q,同译码器166输出的用于许可从C-CPU34对S-CPU18进行NMI中断的信号SNMIEN一起提供给“与”门182后,由该“与”门182输出一信号CNMI,用来向C-CPU34加NMI中断。另外,D-FF140由译码器168输出的用来结束NMI中断的信号SNMICL复位。C-CPU控制寄存器142输出用于从S-CPU18提供给C-CPU34的4位信号SMEG3—SMEG0。这4位信号是为了表示中断处理的状态而采用的,例如S-CPU18向C-CPU34加NMI中断的同时,在C—CPU控制寄存器142的SMEG3—SMEG0中写入0,由此使可以知道向C-CPU34加了0号NMI中断。若采用SMEG3—SMEG0 4位的话可以表示0—15的数字,因而S-CPU18可以向C-CPU34加16种NMI中断。同样,IRQ中断的时候若采用SMEG3—SMEG0,便可以加16种IRQ中断。
S-CPU控制寄存器162的输出,同译码器144输出的用于许可从S-CPU18对C-CPU34进行IRQ中断的信号CIRQEN一起提供给“与”门184,该“与”门184输出一信号SIRQ,用于由C-CPU34向S-CPU18加IRQ中断。另外,S-CPU控制寄存器162由译码器144输出的用于结束来自C-CPU34的IRQ中断的信号CIRQCL来复位。S-CPU控制寄存器164输出用于由C-CPU34提供给S-CPU18的4位信号CMEG3—CMEG0。这4位信号是用来表示中断处理状态的,例如,C-CPU34向S-CPU18加IRQ中断的同时,在S-CPU控制寄存器164的CMEG3—CMEG0中写入0,由此可知向S-CPU18加了0号IRQ中断。若采用CMEG3—CMEG0 4位,可表示0—15的数字,因而C-CPU34可以向S-CPU18加16种IRQ中断。同样,如后面所述,C-CPU34修改S-CPU18的NMI向量时采用CMEG3—CMEG0的话,可以对16种NMI向量进行修改。
另外,“与”门180和182的输出经过缓冲器186和188,而且C-CPU控制寄存器142的输出经过缓冲器190后,输出作为至S-CPU18的数据SD7—SD0。复位向量寄存器148和150的输出经过缓冲器192和194后,作为复位向量数据RVL7—RVL0和RVH7—RVH0,输出至数据SD7—SD0。NMI向量寄存器152和154的输出通过缓冲器196和198后,作为NMI向量数据CN-VL7—CNVL0和CNVH7—CNVH0输出至数据SD7—SD0。IRQ向量寄存器156和158的输出通过缓冲器200和202后,作为IRQ向量数据CIVL7—CIVL0和CIVH7—CIVH0,输出至数据SD7—SD0。
而且,“与”门184的输出通过缓冲器204,S-CPU18控制寄存器164的输出经过缓冲器206后,输出作为至C-CPU34的数据CD7—CD0。NMI向量寄存器170和172的输出通过缓冲器208和210后,作为NMI向量数据SNVL7—SNVL0和SNVH7—SNVH0,输出至数据CD7—CD0。IRQ向量寄存器174和176的输出通过缓冲器212和214后,作为IRQ向量数据SIVL7—SIVL0和SIVH7—SIVH0,输出至数据CD7—CD0。
如图7所示的时钟信号发生器216接收基本振荡器23(图3)传来的频率约为21MHz的基本时钟信号,形成S-CPU18及C-CPU34所需的系统时钟信号SYSCK及时钟信号PHI20等。参照图17,时钟信号发生器216接收基本时钟信号Z21M,使其通过缓冲存储器218,作为图18或图19所示那样的时钟信号21M输出。时钟信号21M在提供给D-FF220及222的时钟信号输入端的同时,经反相器226倒相后,提供给D-FF224的时钟信号输入端。又将系统复位信号RES提供给D-FF-220—224的各复位输入端。经缓冲存储器228,对D-FF220的数据输入端提供来自时钟信号发生器25(图3)的基本系统时钟信号ZSYSCK,而D-FF220的输出提供给D-FF-222的数据输入端。D-FF222的输出Q与D-FF220的输出Q的倒相信号一起送给“与”门230。“与”门230的输出倒相后送至“与”门232的一输入端,另一输入端供以D-FF224的输出Q的倒相信号。而D-FF224的输出Q通过缓冲存储器234、作为图18或图9所示的那样的时钟信号PH12输出。亦即,时钟信号PH12是基本时钟脉冲信号21M的2分频信号。
基本系统时钟信号ZSYSSK经缓冲存储器228,作为图18或图19所示那样的系统时钟信号SYSCK输出。
“与”门230的输出供给D-FF236的数据输入端。该D-FF236的复位输入,与其他D-FF238、240及242相同,由系统复位信号RES提供。而且,作为这些D-FF236—242的时钟信号输入,提供时钟信号PH12。来自缓冲存储器228的系统时钟信号SYSCK经倒相后输入“与”门224及226的一输入端,该“与”门224及226的另一输入端接收D-FF240的输出Q。“与”门224的输出供给D-FF-238作数据输入。在S-CPU18从M-ROM22读出程序数据时成为低电平的信号SCPURDB以及在S-CPU18对B-RAM32或I-RAM36读出数据时成为低电平,而写入数据时成为高电平的SCPUWRD分别倒相,与此同时,D-FF238的输出Q提供给“或”门248。D-FF236的输出Q与“与”门246的输出一起,经“或”门250,提供给D-FF240的输入端。D-FF240的输出Q和“或”门28的输出一起提供到“与”门252的K输入端,“与”门252的输出与“或”门250的输出一起输入“或”门254。“或”门254的输出提供给D-FF242的数据输入端。
D-FF242的输出Q在S-CPU18以3.58MHz工作时,作为允许S-CPU18存取存储器22、32或36的信号SSSYNC输出,同时D-FF242的输出Q作为允许S-CPU18存取存储器22、32或36的定时信号SSYNC输出。亦即,信号SSYNC如图18或图19所示,具有比系统时钟信号SYSCK(在图18或图19以SYSCK-FAST或SYSCK-SLOWS表示)的后缘略为超前的后缘,信号SSSYNC具有与SSYNC前缘同步的前缘,且持续相当于基本时钟信号21M的两个周期后再出现后缘。
这样由时钟信号发生器216形成S-CPU18的动作时钟信号SYSCK及C-CPU34的动作时钟信号PH12,同时,形成允许或禁止S-CPU18及C-CPU34存取存储器22、32或36的信号SSYNC(或SSSYNC)。
为了使系统时钟信号SYSCK与时钟信号PH12对好相位,使用基本时钟信号21M,如图18或图19所示,时钟信号SYSCK能与该信号21M取得同步是在SYSCK-FAST或SYSCK-SLOW时。S-CPU18在该时钟信号SYSCK-FAST或SYSCK-SLOW的后缘读入从存储器22、32或36读出的数据。因而,在S-CPU18存取这些存储器时间,必须超前于该时钟信号SYSCK的后缘。于是,在图17的时钟信号发生器216中,信号SSYNC或SSSYNC的后缘存在于较时钟脉冲信号SYSCK的后缘超前的地方。又,S-CPU18以3.58MHz工作时,如图19所示,时钟信号SYSCK的相位发生变化,因此,一旦使用信号SSYNC作为允许S-CPU18存取的信号,有时就会发生与读入数据的前后动作周期相重迭。于是采用如图19所示的,高电平持续时间比信号SSYNC中的短的信号SSSYNC。
于是,如前所述,在该信号SSYNC(SSSYNC)的高电平时间里允许S-CPU18存取存储器,在低电平时间里允许C-CPU34存取存储器,由此,S-CPU18及C-CPU34可以实质上同时以两相存取各存储器22、32或36。
这里参照图20—图25,对S-CPU18与C-CPU34通过SCPUIF134的相互作用加以说明。
S-CPU18在使C-CPU34起动时,如图20的步骤S1所示,S-CPU18用数据SD0—SD7,在复位向量寄存器148及150设定想要使C-CPU34执行的程序的起始地址。然后,在步骤S2中,在C-CPU控制寄存器138用数据位SD5设定“1”。相应地、从C-CPU控制寄存器138输出高电平的C-CPU复位信号CRES,如图7所示,该信号送给C-CPU34,C-CPU34的复位被解除。而且,C-CPU34相应地存取M-ROM22,从复位向量寄存器148及150指定的M-ROM22的起始地址开始执行程序。
如图21所示,S-CPU18使C-CPU34停止时,S-CPU18用数据位SD5在C-CPU控制寄存器138上设定“0”。相应地,从C-CPU控制寄存器138输出低电平的C-CPU复位信号CRES,如图7所示该信号送给C-CPU34,C-CPU复位。
S-CPU18对C-CPU34执行不可屏蔽中断(NMI)时,如图22的步骤S4所示,S-CPU18用数据SD0—SD7在NMI向量寄存器152及154设定M-ROM22存储NMI程序的起始地址。然后,在步骤S6中,在C-CPU控制寄存器140上用数据位SD4设定“1”。相应地,从C-CPU控制寄存器140输出高电平的C-CPU中断信号CNMI,如图7所示供给C-CPU34,使C-CPU34中断起动。而C-CPU34相应存取M-ROM22,根据NMI向量寄存器152及154指定的M-ROM22的起始地址执行NMI中断程序。
S-CPU18对C-CPU34执行IRQ中断时,如图23的步骤S7所示,S-CPU18用数据SD0—SD7在IRQ向量寄存器156及158设定M-ROM22存储IRQ程序的起始地址。然后,在步骤S8,在C-CPU控制寄存器136上用数据位SD7设定“1”。相应地、从C-CPU控制寄存器136输出高电平的C-CPU中断信号CIRQ,如图7所示提供给C-CPU34,使C-CPU34中断起动。而且,相应地,C-CPU34存取M-ROM22,根据IRQ向量寄存器156及158指定的M-ROM22的起始地址执行IRQ中断程序。
接着,C-CPU34改变S-CPU18的NMI向量时,如图24的步骤S10所示,C-CPU34用数据CD0—CD7,在NMI向量寄存器170及172上设定M-ROM22存储NMI程序的起始地址。然后,在步骤S11,在S-CPU控制寄存器162上用数据位CD4设定“1”。相应地,S-CPU18中断时被读出的NMI向量地址从M-ROM22内转换到NMI向量寄存器170与172。而且,S-CPU18根据已施力NMI中断的状况,存取M-ROM22,从NMI向量寄存器170及172指定的M-ROM的起始地址开始执行NMI中断。
然后,C-CPU34对S-CPU18实行IRQ中断时,如图25的步骤S12所示,由数据CD0—CD7在IRQ向量寄存器174及176设定M-ROM22存储IRQ程序的起始地址。然后,在步骤S13,由数据位CD7在S-CPU控制寄存器162设定“1”,相应地,从S-CPU控制寄存器162输出高电平的S-CPU中断信号SIRQ,该信号送给S-CPU18,使S-CPU18中断起动。而且,S-CPU18相应地存取M-ROM22,根据IRQ向量寄存器174及176指定的M-ROM22的起始地址开始执行IRQ中断程序。
在实施例的游戏系统10中,协处理器30的C-CPU34,主要是在(a)加速模式;(b)混合处理模式;(c)代行处理模式中发挥其作用。
(a)加速模式在这一模式中,如图26所示,C-CPU34被置于停止状态。然后,在步骤S101,S-CPU18用数据SD0—SD7在复位向量寄存器148及150设定想让C-CPU34执行的程序的起始地址。然后,在步骤S102,S-CPU18用数据位SD5在C-CPU控制寄存器138上设定“1”。相应地,从C-CPU控制寄存器138输出高电平的C-CPU复位信号CRES,该信号送给C-CPU34,C-CPU34的复位被解除。从而,在图26的步骤S201,C-CPU34存取M-ROM22,根据指定的M-ROM22的起始地址执行程序。
在步骤S202,C-CPU34为了将程序执行结果送给S-CPU18,用数据位CD7在S-CPU控制寄存器162上设定“1”。相应地,从S-CPU控制寄存器162及“与”门184输出高电平的S-CPU中断信号SIRQ,该信号送给S-CPU18,对S-CPU18进行中断。
S-CPU18执行步骤S103、S104及S105直到在步骤S6检测出上述IRQ为止。亦即,S-CPU18,为了能够执行来自C-CPU34的IRQ中断,在步骤S103,首先使INT起动寄存器144起动。相应地,从该寄存器144输出信号CIRQEN,该信号如图16所示,送给“与”门184。因而,通过该“与”门后,如上所述,可以由C-CPU34对S-CPU18进行IRQ中断。然后,在步骤S104,S-CPU18移至主机12内的W-RAM24,等待C-CPU34来的IRQ中断(程序等待)。
在步骤S106,检测出C-CPU34来的IRQ,接收C-CPU34处理的结果后,在步骤S107,S-CPU18用数据位SD5在C-CPU控制寄存器138设定“0”。相应地,从C-CPU控制寄存器138输出低电平的C-CPU复位信号CRES,这信号供给C-CPU34,使C-CPU34复位,处于停止状态。
在这样的加速模式中,如图27所示,由C-CPU34处理费时间的子程序(例如碰撞判定、3D座标运算等),从而S-CPU18可以以极高速度执行总体处理。
(b)混合处理模式在这种情况下,如同在图28的步骤S211,C-CPU34进行着并行处理(执行别的程序)。然后,如图28的步骤S111所示,S-CPU18用数据SD0—SD7在NMI向量寄存器152及154设定M-ROM22存储NMI程序的起始地址。然后,在步骤S112,在C-CPU控制寄存器140用数据位SD4设定“1”。相应地,从C-CPU控制寄存器140输出高电平的C-CPU中断信号CNMI,该信号送给C-CPU34,使C-CPU34中断起动。而且,在步骤S212,C-CPU34读入中断标志,在步骤S213检查是否有来自S-CPU18的NMI中断。一旦检测到来自S-CPU18的NMI中断,在步骤S214、C-CPU34即执行前面说明过的加速处理。
为了将程序执行结果送到S-CPU18,在步骤S215,C-CPU34借助于数据位CD7在S-CPU控制寄存器162设定“1”。相应地,从S-CPU控制寄存器162及“与”门184输出高电平的S-CPU中断信号SIRQ,该信号送给S-CPU18,使S-CPU18中断。亦即,S-CPU18根据指定的M-ROM22的起始地址执行IRQ中断程序。
在步骤S116,S-CPU18在检测出上述IRQ之前执行步骤S113、S114及S115。亦即,为了使来自C-CPU34的IRQ中断成为可能,S-CPU18首先在步骤S113使INT起动寄存器144起动。相应地,该寄存器144输出信号CIRQEN、该信号供给图16所示的“与”门184,从而,通过该“与”门184后如上所述,可以由C-CPU34给S-CPU18以IRQ中断。然后,在步骤S114 S-CPU18移至主机12内的W-RAM24,等待来自C-CPU34的IRQ中断(程序等待)。
在步骤S115,S-CPU18读取中断标志,在步骤S116检测出C-CPU34来的IRQ。在步骤S117,S-CPU18返回主程序。又,在步骤S216,C-CPU34恢复为先前S-CPU18来的中断所中止的并行处理(执行别的程序)。
这样的混合处理模式,特别是在并行处理时,协处理器(C-CPU34)有余量,两个处理器S-CPU18及C-CPU34的处理速度想要取得平衡的情况下,以及对于处理频度较高的S-CPU18一侧的子程序(各种运算子程序;旋转、扩大、缩小参数的计算等)是有效的。亦即,即使两CPU并行处理时也可以将C-CPU34作为S-CPU18的加速器起动,因此,两CPU的处理速度可以取得平衡。
(c)代行处理模式在这一模式,如图30所示,在步骤S221 C-CPU34处于停止状态。然后,在步骤S121,S-CPU18用数据SD0—SD7在复位向量寄存器148及150设定想要让C-CPU34执行的程序的起始地址。然后,在步骤122,S-CPU18在C-CPU控制寄存器138上用数据位SD5设定“1”。C-CPU控制寄存器138向应输出高电平的C-CPU复位信号CRES,该信号送给C-CPU34,C-CPU34的复位被解除。因而,在图30的步骤S222,C-CPU34存取M-ROM22,根据指定的M-ROM22的起始地址执行程序。
然后,S-CPU18按步骤S123及步骤S124执行DMA。这时,C-CPU34取代S-CPU18执行程序(代行处理)。
为了将程序执行结果送到C-CPU34,在步骤S223,C-CPU34用数据位CD7在S-CPU控制寄存器162设定“1”。相应地,从S-CPU控制寄存器162及“与”门 184输出高电平的S-CPU中断信号SIRQ,该信号提供给S-CPU18,使S-CPU18中断。
在步骤S128,S-CPU18在检测出上述IRQ之前执行步骤S125、S126及S127。亦即,为了使来自C-CPU34的IRQ中断成为可能,首先,在步骤S125 S-CPU18使INT起动寄存器114起动。相应地,从该寄存器144输出信号CIRQEN,该信号输送给图16所示的“与”门184。因而,通过该“与”门184后,如上所示,可以由C-CPU34给S-CPU18 IRQ中断。然后,在步骤S126,S-CPU18移至主机12内的W-RAM24,等待C-CPU34来的IRQ中断(程序等待)。
在步骤S127,S-CPU18读取中断标志,在步骤S128检测出来自C-CPU34的IRQ,接收到C-CPU34的处理结果后,在步骤S129,S-CPU18用数据位SD5在C-CPU控制寄存器138上设定“0”。相应地,从C-CPU34控制寄存器138输出低电平的C-CPU复位信号CRES,该信号送给C-CPU34,使C-CPU34复位,处于停止状态(步骤S224)。
在这样的代行处理模式中,如图31所示,S-CPU18在DMA时停止,因而,一向串行的处理由C-CPU34代行,从而可望大幅度提高总体处理速度。因此,这种代行处理模式对于例如压缩图像的展开、动画等,反复进行与DMA平行处理的子程序特别有效。
而且,在上述实施例中,M-ROM22、B-RAM32及I-RAM36等存储器的存取时间,不仅比S-CPU18,即使与C-CPU34的周期时间相比,也是短的。也就是说,存储器的存取速度比S-CPU18和C-CPU34的动作速度快。但是,不需要所有的存储器都满足这一条件,只要两个CPU以及可能为处理器存取的存储器满足这一条件即可。
权利要求
1.一种协处理器系统,其特征在于包括根据程序在第一周期时间内进行运算处理的第一处理器(18);与所述第一处理器的结构相同,并根据程序在短于所述第一周期时间的第二周期时间内进行运算处理的第二处理器(34);将所述第一周期时间的基准第一时钟信号提供给所述第一处理器的第一时钟信号供给装置(23,25);将所述第二周期时间的基准第二时钟信号提供给所述第二处理器的第二时钟信号供给装置(23,216);所述第二处理器可以存取和高速读出,并且存储第一处理器和所述第二处理器直接存取周期程序的程序存储器(22);以及存取控制装置(35,54,60,52),该存取控制装置在长于所述程序存储器存取时间但短于所述第一周期时间的第一期间允许所述第一处理器对所述程序存储器直接存取,而在所述第一周期时间与所述第一期间之差的第二期间则允许所述第二处理器对所述程序存储器直接存取。
2.如权利要求1所述的协处理器系统,其特征在于,所述存取控制装置包括信号输出装置(216,60),该装置在所述第一期间所述第一处理器有存取要求(SMHIT)时,输出第一电平信号,而在所述第一期间所述第一处理器没有存取要求时,输出第二电平信号;响应所述第一电平信号,将所述第一处理器来的地址提供给所述程序存储器的地址输入(MA)的地址切换装置(52)。
3.如权利要求2所述的协处理器系统,其特征在于,所述地址切换装置响应所述第二电平信号,将所述第二处理器来的地址提供给所述程序存储器的所述地址输入(MA)。
4.如权利要求1至3任一项所述的协处理器系统,其特征在于包括将由所述程序存储器读出的程序数据提供给所述第一处理器的数据总线(SD)的第一数据锁存器;以及向所述第一数据锁存器提供与所述第一时钟信号相应规定的第一锁存信号(SSYNC)的第一锁存信号供给装置(216)。
5.如权利要求4所述的协处理器系统,其特征在于,所述第一锁存信号的后缘处于比所述第一时钟信号后缘超前的相位。
6.一种带辅助运算功能的外部存储装置,可脱卸自如地装在信息处理装置上,该信息处理装置包括根据程序在第一周期时间内运算处理的第一处理器(18);将所述第一周期时间的基准第一时钟信号提供给所述第一处理器的第一时钟信号供给装置(23,25),其特征在于,带辅助运算功能的外部存储装置包括与所述第一处理器的结构相同,并根据程序在短于所述第一周期时间的第二周期时间内进行运算处理的第二处理器(34);将所述第二周期时间的基准第二时钟信号提供给所述第二处理器的第二时钟信号供给装置(23,216);所述第二处理器可以存取和高速读出,并存储第一处理器和所述第二处理器直接存取周期程序的程序存储器(22);以及存取控制装置(35,54,60,52),该存取控制装置在长于所述程序存储器存取时间但短于所述第一周期时间的第一期间,允许所述第一处理器对所述程序存储器直接存取,而在所述第一周期时间与所述第一期间之差的第二期间,允许所述第二处理器对所述程序存储器直接存取。
7.如权利要求6所述的带辅助运算功能的外部存储装置,其特征在于,所述存取控制装置包括信号输出装置(216,60),在所述第一期间所述第一处理器有存取要求时输出第一电平信号,而在所述第一期间所述第一处理器没有存取要求时输出第二电平信号;响应所述第一电平信号将所述第一处理器来的地址提供给所述程序存储器的地址输入(MA)的地址切换装置(52)。
8.如权利要求2所述的带辅助运算功能的外部存储装置,其特征在于,所述地址切换装置响应所述第二电平信号,将所述第二处理器来的地址提供给所述程序存储器的所述地址输入(MA)。
9.如权利要求6至8任一项所述的带辅助运算功能的外部存储装置,其特征在于包括将所述程序存储器读出的程序数据提供给所述第一处理器数据总线的第一数据锁存器(66);以及向所述第一数据锁存器提供与所述第一时钟信号相应规定的第一锁存信号(SSYNC)的第一锁存信号供给装置(216)。
10.如权利要求9所述的带辅助运算功能的外部存储装置,其特征在于,所述第一锁存信号的后缘位于比所述第一时钟信号后缘超前的相位。
11.如权利要求6所述的带辅助运算功能的外部存储装置,其特征在于,所述存取控制装置包括一起始地址寄存器,所述第二处理器开始执行所述程序存储器所存储的程序时,用于指定其起始地址,所述程序存储器使所述第一处理器执行的第一程序与所述第二处理器执行的第二程序混合存储,所述外部存储装置还包括中断处理装置,该中断处理装置从所述起始地址寄存器所指定的地址开始执行所述第二程序,在第二程序执行当中,所述第一处理器需要存取时,通过中断第二程序的执行,并且将中断的地址加载到起始地址寄存器,在第一处理器存取结束之后,再从起始地址寄存器所指定的地址开始,执行第二程序。
12.如权利要求6所述的带辅助运算功能的外部存储装置,其特征在于,所述第二处理器包含有临时保存所述第二程序执行得到的处理结果的内部寄存器,所述外部存储装置还包括用于保留所述内部寄存器所保存的结果的保留存储器,所述第二处理器执行所述第二程序当中,执行新的第二程序时,将所述内部寄存器的保存结果保留在所述保留存储器中,所述新的第二程序执行结束以后,将所述保留存储器所保留的结果送回所述内部寄存器,从而可以再度执行所述第二程序。
13.一种使信息处理装置高速工作的方法,该信息处理装置包括一具有第一周期时间,存取程序存储器,按照该程序动作的第一处理器,其特征在于,设有与所述第一处理器具有程序互换性,并且具有比所述第一周期时间短的第二周期时间的第二处理器;所述程序存储器采用存取时间小于或等于所述第二周期时间的程序存储器;所述第一处理器为存取所述程序存储器而确保时间长于或等于第一周期时间;使所述第二处理器可以在所述第一处理器存取所述程序存储器剩余的时间内存取所述程序存储器;由此,使得所述第一处理器和所述第二处理器实际上可以同时存取所述程序存储器,使所述信息处理装置高速化。
全文摘要
游戏系统10包括游戏机主机12的S-CPU18和插卡14的C-CPU34,两CPU由相同CPU内核构成,并具有相同存储器映像。插卡14的M-ROM22的存取时间比C-CPU34的周期时间短,C-CPU34的周期时间比S-CPU18的周期时间短。允许S-CPU18对M-ROM22存取的时间由信号SSYNC设定成比M-ROM22的存取时间长但比S-CPU18的周期时间短。因而信号SSYNC允许C-CPU34在宽余时间内存取M-ROM22,两CPU在原有存储容量的情况下实际上同时以两相存取。
文档编号G06F9/38GK1124856SQ95107288
公开日1996年6月19日 申请日期1995年7月4日 优先权日1994年7月4日
发明者高桥豊文, 田中登志雄, 寺川英明 申请人:任天堂株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1