数据解码方法和系统的制作方法

文档序号:7531855阅读:232来源:国知局
专利名称:数据解码方法和系统的制作方法
技术领域
本发明是关于经受数据压缩操作和被压缩图象数据的解压缩的数据解码方法和数据解码系统。特别是本发明是关于在使用微机的游戏机等中使用的压缩数据解码方法和解码系统。
图2给出了与先有技术相关的使用微机的游戏机的一般方框图。在图中,游戏机包括游戏机主体1,一程序盒2和一CRT显示器3。游戏机主体包括具有CPU10的微机,直接存储器存取的控制器(DMAC)11,用来作为CPU10的工作区域的随机存取的存储器(RAM)12,图象处理单元(PPU)13和视频存储器(VRAM)14。此外,系统总线15与CPU10、DMAC11、RAM12和PPU13连接。
例如,PPU13与CRT显示3的垂直和水平扫描操作同步地读出一帧(一屏)的图象数据。这一帧图象数据写入VRAM14的一图象区域和用来通过VRAM来在CRT显示器3上显示相关的图象。当一帧的图象被用来显示时,另一帧图象数据被临时地写入在VRAM14的另外一个区域,这样写入的一帧数据被顺序地用来显示另外一个相关的图象。
当使用游戏机时,程序盒2被插入到由游戏机主体上提供的一个槽内(在图中未示出)。该盒2包括ROM20和RAM21。游戏的操作程序被事先写在ROM20,RAM21被用来存储、例如游戏操作的过程、游戏的得分结果等,并且把电池作为RAM21的备用电源。
近来,对这样的游戏机提出新的要求,例如在CRT上显示电影图象,这样在ROM、例如在

图1示出的程序盒2的ROM20中存储的数据量就非常大,ROM应该有非常大的存储容量以存储这样大的数据,为了减少所需的ROM的容量,图象数据或类似的数据在存入ROM之前要被压缩。
如果图象数据或类似的数据被压缩和然后存入程序盒2的ROM20内,游戏机主体1的CPU10被用来解码或恢复已经被压缩的并且存储在ROM20中的图象数据。特别是,DMAC11把数据从程序盒2的ROM2传送到RAM12。这样CPU10使用RAM12作为工作区域对在RAM12中的数据进行解码,然后发送这样解码的数据到PPU13,解过码的数据然后被用来在CRT3上显示相关的图象。
然而,在该方法当中,在CRT上显示相关的诸图象以前需要时间传送和解码已压缩的数据,这样就存在显示相关图象的延迟时间。
日本公开专利申请NO4286289公开了一个解码器电路,电影图象数据被压缩,然后存储在CD-ROM中。当显示电影图象时,解码器电路再现和译码被压缩和被存储的数据为原始的图象数据,这样获得的原始数据然后用来显示电影。
该公开的解码器电路配备有一工作ROM,用于从CD-ROM中传出压缩的数据;-DSP,用于对以DMA方式从工作RAM中已经传送的数据进行最初解码操作;一工作RAM,已经进行最初解码操作的数据以DMA的方式传送到该工作ROM;-PPU,在该工作RAM的数据以DMA的方式传送到PPU,而PPU对所传送的数据进行第二次解码操作;和-DMAC,用以以DMA方式执行传送操作,已经作为恢复被压缩的数据的结果所获得的数据然后从PPU中获得。
然而,该解码器电路以DMA方式把从CD-ROM读出的数据以DMA方式传送到工作RAM,然后在工作RAM的数据进而以DMA的方式传送到DSP,然后,DSP解码这样传送的数据和这样被解码的数据进而以DMA的方式传送到工作RAM,这样以DMA方式传送大量的操作和需要执行非常复杂的控制操作。
本发明的目的是提供一个系统,使用该系统能够消除上述的问题,特别是,它能够明显地取消解码操作所需的时间和这样防止了显示图象的时间延迟。这样,可以平滑地执行图象显示操作。
本发明的另一个目的是提供一个解码方法和解码系统,借助可以获得数据,作为被执行的存取操作的结果,该存取操作是直接从程序盒解码的。
本发明的译码方法包括以下的步骤a)当存取记录介质去读压缩数据时,使译码电路进入译码模式,在所说的译码模式中,所说的译码电路读出和译码所说的压缩数据和提供译码数据;b)当所说的译码电路已经处理了预定数量的压缩数据量时,使所说的译码电路进入通过模式,在所说的通过模式中,所说的译码电路从所说的记录介质读取数据,但对这样读出的数据不执行任何操作,按原样提供数据,本发明的数据解码电路包括地址产生电路,对一给定地址进行增量或减量而产生地址;译码器,根据所说地址产生电路所提供的地址从记录介质中读出压缩数据,对这样读出的数据进行解码和输出这样恢复的数据;一地址开关电路,选取所说地址产生电路所提供的电址和由外部地址总线提供的地址中的一个,输出这样选取的地址;一数据开关电路,用于选取所说记录介质提供的数据和由所说译码器提供的数据中的一个,输出这样选取的数据到数据总线;所说的译码电路进入通过模式和译码模式中的一个,在所说的通过模式中,输入数据被原样地输出,在所说的译码模式中,输入的压缩数据被解码和这样被解码的数据被输出;和当相关于所说记录介质的地址是从外部给出时,所说的译码器电路进入所说的通过模式和这样从所说记录介质中读出的数据被输出到所说的数据总线,和当相关于所说记录介质的地址是从所说的地址产生电路所给出时,所说的译码器电路进入所说的译码器模式,这样从所说的记录介质读出压缩的数据,对数据进行译码和输出这样译码的数据到所说的数据总线。
最好是在所说的译码器电路中,由此所提供的数据量是事先设定的和所说的译码器电路已经提供了所说的数据量时所说的译码器电路进入所说的通过模式。
最好该译码器电路还包括一个内部存储;和一变换存储器,用于任意地设置包括相关于所说内部存储器地址的地址变换;其中所说的数据一电路从所说的内部存储器的数据,记录介质的数据和所说译码器中的数据中选出一个。
最好是一压缩数据的开始地址被预先设定;所说的译码电路输出译码的数据和仅当一地址和给定的所说的开始地址相同时才读出压缩的数据;和当一地址和不是给定的开始地址相同时,所说的译码器电路进入通过模式。
最好是所说的记录介质存储压缩数据和非压缩数据;所说压缩数据和非压缩数据的开始地址是预先设定的;当给出预先设定的地址时,所说的译码器电路开始读取所说压缩和非压缩数据和对该数据进行解码;在第一个读周期,或在最初的多个读周期中,所说的译码电路输出所说的非压缩数据,然后输出作为译码所说压缩数据结果而获得的数据。
根据本发明的另一个数据解码器电路包括一地址产生电路,对给定地址进行增量或减量而产生地址;一译码器,用于根据由所说地址产生电路所提供的地址从一记录介质中读出压缩的数据,对这样读出的数据进行译码和输出这样恢复的数据;一地址开关电路,用于选取由所说地址产生电路提供的地址和由外部地址总线提供的地址中的一个,和输出这样选中的地址;一数据开关电路,用于从所说的记录介质所提供的数据和由所说译码器提供的数据当中选出一个,和输出这样选出的数据到数据总线;和一检测电路,用于检测通过所说地址总线的地址流;当执行DMA作时,所说的译码电路被预先设定去执行恢复操作;当所说检测电路检查到相关于所说DMA作地址时,由所说地址产生电路提供的地址作为该地址,依照该地址数据从所说记录介质中读出,这样读出的压缩的数据被译码,和被输出到所说的数据总线;当所说的检测电路并不检测相关于所DMA操作地址时,通过所说地址总线提供的地址被用来作为该此地址,依照该此地址数据从所说的记录介质中读出,这样读出的数据被原封不动地输出到所说的数据总线。
最好是根据给出的指令去进入所说的译码模式,当检测出的给定地址相关部分不是所说的记录介质时,所说的译码电路从所说记录介质读取压缩的数据和开始恢复数据;和当检测给出DMA开始指令时,所说的译码器电路输出这样译码的数据。
依本发明的另一个数据译码器电路包括一地址产生电路,对一给定地址进行增量或减量而产生地址;一译码器,用于根据由所说地址产生电路提供的地址从记录介质中读出压缩的数据,对这样读出的数据进行解码和输出这样恢复的数据;一地址开关电路,用于选取由所说地址产生电路提供的地址和由外部地址总线提供的地址中的一个,和输出这样选取的地址;
一数据开关电路,用于选取由所说记录介质提供的数据和由所说译码器提供的数据中的一个,输出这样选取的数据到数据总线;和一检测电路,用于检测通过所说地址总线的地址;所说的译码器电路进入通过模式和译码模式之一,在所说的通过模式中,输入数据被原样输出,在所说的译码模式中,输入压缩的数据被解码和这样被解码的数据被输出;和响应给定指令进入所说解码模式,当检测到一给定地址的相关部分不是所说的记录介质时,所说的译码器电路从所说的记录介质读出压缩的数据和开始恢复该数据;当确定到给定的地址与预先设定的地址一致时,所说的译码器电路输出这样的译码数据;和当确定给定地址与所说预先设定的地址不一致时,所说的译码器电路进入所说的通过模式。
依本发明的另一个数据解码器电路包括第一组寄存器,其中读出的压缩的数据地址被设定;一控制寄存器,用于控制具有分别预先设置优先权顺序大量译码操作的开始,所说的大量译码操作相关于所说大量寄存器;第二组寄存器,其中相关于所说第一组大量寄存器的分别每一个的传送量被设定。
第一和第二地址产生电路,对为给定地址进行增量或减量而产生地址;第一和第二存储电路,用于根据由所说第一组和第二组地址产生电路的地址输出存储从记录介质读出的压缩的数据;
一译码器,用于根据由所说地址产生电路提供的地址从记录介质中读出压缩的数据,对这样读出的数据进行译码,和输出这样恢复的数据;一地址开关电路,用于选取由所说的第一组或第二组地址产生电路所提供的地址和从外部地址总线提供的地址中的一个,和输出这样选出的地址;一数据开关电路,用于从由所说记录介质提供的数据和由所说的译码器提供的数据中选出一个,和输出这样选出的数据到数据总线;所说译码器电路进入通过模式和译码模式中的一个,在所说的通过模式中,输入的数据原样被输出,在译码模式中,输入压缩的数据被译码和这样译码的数据被输出;当地址是由所说的外部地址总线所提供时,所说的译码电路进入所说通过模式;当地址是由所说第一组或第二组地址产生电路所提供时,所说的译码器进入所说的译码模式;这样,响应所说大量译码操作开始的诸指令,相关于高优先权顺序的地址在所说第一组地址产生电路中被设置,然后根据由所说第一组地址产生电路提供的地址,压缩的数据从所说的记录介质中读出和然后存储在所说第一存储装置,这样存储的数据被读出和由所说的译码器加以译码。
当所说第一存储装置满时,所说第二存储地址产生电路从随后优先权顺序的相关的地址中提供该地址,依照这样提供的地址压缩的数据从所说记录介质中然后被读出和然后被存储在所说第二存储装置。
这样,在相关第一指定地址的相关的数据传送量已经输出以后,在顺序的恢复操作中,所说译码器开始从所说的第二存储装置中读取数据,所说第二地址产生电路继续先前产生的地址而产生新地址,使用这样产生的地址所说记录介质中读出压缩的数据,这样读出的数据然后被存入所说的第二存储装置,然后,当第二存储装置满时,所说第一组地址产生电路从相关于顺序的优先权顺序的一地址中提供地址,依照这样提供的地址压缩的数据然后从所说记录介质中被读出和然后被存放在第一存储装置中。
最好是所说第一和第二存储装置包括FIFO存储器。然而,该第一和第二存储装置可以包括FIFO存储器和寄存器。
当结合附图阅读详细的描述时本发明的其它器地和进一步的特点将变得更为明显。
图1给出了使用微机的现有技术的游戏机的一般方框图;图2给出了本发明的第一,二,三,四,五,六实施例中每一个使用微机的游戏机的实例的一般方框图;图3给出了本发明第一实施例的译码器电路的方框图;图4A给出了包括相关在没有进行变换更改以前的在第一实施例的译码器电路的的内部RAM地址的地址映象。
和图4B给出了对此进行变换(映象)更改的相同的地址映象;图5给出了在第一实施例的译码电路所执行的处理程序的流程图6给出了本发明第二实施例的译码器电路的方框图;图7给出了在第二实施例的译码器电路中执行的处理程序的流程图;图8A,8B,8C,8D,8E,8F,8G和8H给出了在第二实施例的译码电路的DMA操作开始的时序图;图9A,9B,9C,9D,9E,9F和9G给出了在第二实施例的译码电路的DMA操作的时序图;图10给出了本发明第三实施例的译码器电路的方框图;图11给出了在第三实施例的译码器电路中执行的处理程序的流程图;图12A,12B,12C,12D,12E,和12F给出了在第三实施例译码电路中的DMA操作的时序图;图13给出了本发明第四实施例的译码器电路的方框图;图14给出了本发明第五实施例的译码器电路的方框图;图15给出了在第五实施例的译码器电路中执行处理程序的流程图;图16给出了本发明第六实施例的译码器电路的方框图;图17A,17B,17C,17D,17E和17F给出了在第六实施例的译码器电路的DMA操作的时序图;图18给出了在第六实施例使用的ROM的结构;和图19给出了本发明的第一,二,三,四,五和六中每一个使用微机的游戏机另一个实例的一般方框图。
参看图2,使用微机的游戏机,作为本发明的第一,二,三,四,五和六实施例的每一个的一般配置将给于详细地描述。在图2中,那些与图1中使用相同的参考号被用来表示相应的部件。
类似于图1所示的相关的现有技术的游戏机,依本发明的游戏机包括游戏机主体1,程序盒2和CRT显示器3。
类似于相关现有技术的游戏机,游戏机主体包括包含CPU10的微机,一DMAC11,一工作RAM2,一PPU13和VRAM14。此外,CPU,DMAC11,RAM12,和PPU13连接在系统总线15上。
例如,PPU13与CRT显示3的垂直和水平扫描操作同步地读出一帧(一屏幕)图象数据。该帧图象数据定入VRAM的一图象区域和然后通过VRAM14被用来在CRT显示器13上显示相关的图象。当该帧图象数据正在被用来显示时,另一帧图象数据被临时地写入VRAM中14中的另一个图象区域,这样被写入的一帧图象数据被随后使用来显示另外一个相关的图象。
当游戏机使用时,近而程序盒被插入到在游戏机主体1所提供的一个槽内(在图中未视出)。该盒2包括译码器电路23和ROM20和RAM21。没有被压缩的游戏操作程序和压缩的图象数据被事先写入ROM20,和RAM被用来存储,例如,程序操作的过程,游戏计分结果等以及具有电池作为RAM21的备用电源。
在译码器电路23中,它可以在通过模式和译码模式中变化,在通过模式中,译码电路23原样输出输入的数据。在译码模式中,译码器电路23译码或恢复输入的压缩的数据和然后实时输出这样的数据。特别是,在通过模式中,译码器电路23对ROM20进行存取,读出数据和然后输出这样读出的数据到游戏机主体)的系统总线15,在译码模式中,译码器电路23从ROM20中读取压缩的数据和对这样读出的数据进行译码。然后,译码器电路23输出这样译码的数据到游戏机主体1的系统总线15,模式变换的操作是作为CPL10执行存取操作的结果而执行的。
参看图3,将描述本发明的第一实施例的译码器电路23。
译码器电路23包括译码器230,用于对压缩的数据进行译码;一地址产生电路231,用于产生由译码器230使用的地址,以从在ROM230中读出压缩的数据,和能由CPU10自由地存取的小容量RAM232。RAM232是一个存储器,它总是由译码器电路23外部地加以存取。
此外,映象电路232变换上述RAM232的地址为ROM20的任意地址。一内部寄存器234提供一存储区域,用来存储压缩的数据的第一个地址;控制寄存器区域;状态寄存器区域等。内部寄存器是存储器,它总是能被外部地加以存取。
控制电路235控制整个译码器电路23。一传送量计数器23b在开始译码操作以后对传送的数据量进行计数,一结束检测电路237检测预先设置的传送量和传送量计数器23b的计数值的一致,这样结束译码操作。
地址译码器电路238输出一芯片选取信号以选取ROM20或电池后备的RAM21。地址开关电路239包括多路器,该电路239根据译码器230的输出选取从地址产生电路231的地址输出或系统总线15的系统地址总线的输出,和提供从两输出中选取的一个到ROM20的ROM20地址总线,上述的从地址产生电路231的地址输出是一个用来从ROM20中读取数据的地址输出和提供数据到译码器230。
数据开关电路240包括一个多路器。该电路240从ROM20来的数据,从内部RAM232来的数据,从译码器230来的数据和从内部寄存器234来的数据中选取一个。该电路240然后提供这样选取的数据到系统总线15的系统数据总线。缓冲器电路241对到系统数据总线的输入状态和到系统数据总线的输出状态之间进行切换。
在第一个实施例当中,当提供电源时,译码器电路23是在通过模式,在该模式中ROM20能被存取,和这样数据能原样读出,即在ROM20中所存储的模式读出。在这时,译码器电路23的地址开关电路239选取从系统总线15的系统地址总线转送的地址,并且把该地址送到ROM20。近而,数据开关电路240输出不是ROM20的数据总是内部RAM232的数据到系统总线15的系统总线。该状态是CPU10能对ROM20进行正常存储器存取操作的状态。
下面将描述对存储在ROM内的压缩的数据进行译码操作。
游戏机主体1的CPU10在其初始化例程中读出处理程序以从ROM20中执行DMA转送操作,和把这样读出的程序写入到译码器23的内部RAM232。近而,为了交换ROM20的任意RCM地址的程序CPU10近而在译码器23的内部寄存器234内写入RAM232的地址,在该地址下该程序是这样写入的。
依照此程序译码的数据的DMA转送操被执行,该此处理程序将结合图5一般地加以描述。
当译码操作开始时,一译码地址被写入译码器电路23的内部寄存器234和这样的译码准备在S1中执行。在S2中,译码的开始位写入器部寄存器234,译码器230开始译码操作,和数据传送量被设定。然后在S3中,执行对DMA控制器11的设定和开始地址和传送量被在其内设定。在S4,这确定是否译码的数据已经准备了用于作为被执行的译码操的结果被传送。如果确定译码的数据已经被准备,在S5内开始DMA操作。然后,确定DMA传送操作在S6内被停止,当前的操作结果。
参看图4a和4b,将描述在内部RAM232内的变换状态。在变换更改执行以前,RAM232的地址是位于如图4A所示的不同于ROM20其它部分的一区域。处理程序的地址位于地址映象内的程序区(在映象的上半部分)。处理程序被复制到内部RAM232。然后内部RAM232的地址被设置在译码器电路23的内部寄存器234内使得内部RAM232的地址被映象为ROM2的地址。在影象更改执行以后,地址图如图4B所示。
作为结果,当CPU10依照图4B所示的地址映象执行存取操作时,当企图对相关于在ROM20的处理程序的地址进行存取时,CPU10自动地存取相关于内部RAM232的地址。这样,CPU10存取内部RAM232和以此读出处理程序,该程序按上述方法复制到内部存储器232。这样,没有使用CPU10改变地址,CPU10自动地存取内部的RAM232和读出处理程序。这样,在译码操作期间,虽然CPU10不能接存取ROM20和这样不能直接地读存储在ROM20中的处理程序,但是CPU10读存储在内部RAM232中的处理程序。
事实上对存储ROM20的压缩数据进行译码开始时,从译码器电路23读出的数据仅仅是解码的数据,在ROM20中的处理程序不被直接读出。为了读取处理程序,如上所述,处理程序被移到另外的区域例如内部RAM232,和这样CPU10能从此读取处理程序。在译码器电路23没有内部RAM或类似存储器的情况下,处理程序可以替换地复制到工作RAM12内,和处理程序可以由此被读出。
如果处理程序出现在译码器电路23的内部RAM232中,甚至在译码器电路进入译码模式后CPU10能从内部RAM232中获得诸指令。因此,很明显,该状况和CPU10直接从RAM20直接获得指令的状况相同。
现在描述特定的操作CPU10写要被译码的压缩的数据的开始地址和要被传送的数据量入译码电路23的内部存储器234。然后,CPU10写译码的开始位入译码器电路23的内部寄存器234的控制寄存器区域和命令译码电路23开始译码操作。然后,以预定的方式执行DMAC11的设定。
在进入开始译码操作以后,译码器电路23需要时间去进入译码器电路23连续输出译码的数据的状态。因此在DMA传送译码的数据之前,这就需要通过读取内部寄存器234的状态寄存器的区域,以确定是否译码器230已经结束了输出的准备,如果输出准备已经结束,CPU16命令游戏机主体1的DMAC11去开始DMA传送操作。
然而,这可能是这种情况,在由CPU10已经提供了译码开始诸指令之后,在CPU10所需要的时间内以预定的方式完成对DMAC11的进行设定时,译码器电路23可以完成译码数据输出准备工作。在这种情况下,没有必要读取内部寄存器234的状态寄存器区域。
当译码器电路23开始译码操作时,电路23进入了译码模式,在译码器电路23内部的地址开关电路239选取地址产生电路231的地址输出,并且把该地址输出提供到与ROM20相关的地址总线。近而,数据开关电路240不是选取译码器230的输出数据,就是选取内部RAM232的数据,和将选取的数据提供给外部系统总线15的系统数据总线。
地址产生电路231是连续地对压缩的数据开始地址进行地址的增量,该开始地址是预先写入到内部寄存器234,根据从译码器230提供的指令和不断地输出它。译码器230这样使用地址产生电路231,从ROM20中读取压缩的数据和然后对压缩的数据进行译码。如果数据输出准备工作已经完成,指示数据输出准备完成的状态位在内部寄存器234中被设置。当DMA传送工作然后开始时,然后译码器电路23根据数据读出信号提供译码的数据到外部系统总线15的系统数据总线。传送量计数器236对数据传送量加以升数,当译码操作开始时,传送量计数器236的计数值被重置为零。
结束检测电路237使用预先写入在内部寄存器234内传送量和传送量计数器236的计数值去检测传输操作的结果。如果传送操作的结束这样被检测出,控制电路235结束译码模式并使译码器电路23返回到通过模式。
在预先设置数据的传送完成后,DMA的传送操作停止。在结束DMA传送操作后,依照处理程序来决定DMA传送操作结束,依照处理操作的操作被结束了。然而,该DMA传送操作完成的决定不是必需需要的。
在第一个实施例中,在程序盒2的内部配有译码器电路23。从程序盒22传送到游戏机主体1的数据是作为对压缩数据进行译码的结果而获得的数据。因此,数据传送能以这样方式进行,在该方式中,明显的存在ROM中的非压缩的数据被传送,因此游戏机主体1的配置可以是和相关的现有技术的游戏机主体的配置是相同的,译码操作和与此相关的传送操作是在译码器电路23内单独的进行的,这正如上所述。作为结果,CPU10可以完全不考虑译码操作和相关的数据传输操作,作为结果,不发生图象显示延迟和可以平滑地执行图象显示。
此外,从程序盒2读出的数据是作为对ROM20中的压缩的数据进行译码或恢复的结果而获得的数据,压缩的数据并不直接与非压缩的初始数据的地址相关。作为结果,从程序盒2的ROM20中复制数据是非常困难的,这样,可以防止非法的复制。
现在参看图6描述本发明的第二实施例的译码器电路,在图6中,和第一实施例的译码器中的标号相同的标号被使用表示相应的元件。
和上述第一实施例类似,根据由地址产生电路231所产生的地址,从ROM20中读出压缩的数据。这样读出的压缩数据被存储在FIFO的存储器242中。这样存储在FIFO存储器242内的压缩的数据被提供给译码器230,该译码器对这样提供的压缩的数据进行解码或恢复。
CPU10对ROM进行存取和从ROM20内读取压缩的数据。在第二实施例的译码器电路23恢复这样读出的压缩的数据,然后使用DMA操作传送恢复的数据到游戏机主体1。为此目的,CPU10通过系统总线把这传送初始地址数据传到译码器电路23的地址寄存器243,这样传送初始地址数据指示在ROM20的地址,从该地址压缩的数据应被读出;被恢复和被传送到游戏机主体1。提供给地址寄存器组243的这样传送的初始地址数据然后被写在地址寄存器组中。
地址寄存器组243是由大量的寄存器组成作为DMAC11选择地适当地使用的预定的大量DMA通道,和以此改善了传输效率。传送初始地址的数据由CPU10来提供,借以使用在大量DMA通道当中的DMA通道来执行DMA传送操作,这样提供的传送初始地址数据然后被写入在大量寄存器中相关于上述DMA道的那个寄存器。这样,传送大量初始地址的数据被分别写入地址寄存器组243中的大量寄存器。这样写入的传送初始地址数据通过多路器243a被传送到地址产生电路231。
类似地,CPU10把指示要由DMA操作传送的数据量的传送量数据提供到译码器电路23的内部寄存器244,并且把数据的传送量写在其中,寄存器组244是由大量的寄存器组成用于预定的大量DMA信道,CPU10提供数据传送量用于使用在大量DMA信道中的一DMA信道来执行DMA传送操作。这样提供的传送量数据被写入在大量的寄存器当中相关于上述DMA信道的那个寄存器。这样,大量数据传送送量的数据被分别写入寄存器组244的大量寄存器内。这样写入的要被传输的数据量然后通过多路器244a提供给检测电路237。
在译码操作开始以后要传送的数据量由传送量计数器236加以计数和计数器236的计数值被提供给结束检测电路237。
通过确定由寄存器组244提供的传送量和计数器237的计数值一致,结束检测电路确定,译码操作结束。
上述寄存器243和244所具有的地址和在译码器电路23外面的游戏机主体1的DMA控制器11的传送初始地址寄存器和传送量寄存器的内容一样。寄存器组243和244是对此仅能执行写操作的寄存器。因此,当CPU10企图从DMAC11的地址寄存器或传送量寄存器中读取数据和这样提供了相关的地址时,从DMAC11的寄存器和译码器电路23的寄存器中读出数据冲突就被防止了。
在第二实施例的译码器电路23包括总线使用检测电路245,用来检测作为作为监示通过系统地址总线的数据流的结果的DMA操作的执行。这样从游戏机主体1的CPU10提供的数据受到监视。近而,译码器电路23确定是否由系统地址总线的数据所指出的诸地址和特定的诸地址一致。
现在描述在第二实施例中的译码器23的操作。
按图7所示,游戏机主体1的CPU10执行初始化设定,以恢复存储在ROM20中的图象数据和使用DMA操作传送恢复的图象数据。
在S10中,在多个DMA通道中的DMA通道在译码器电23的内部寄存器234中没设定,通过这些通道可执行所希望的恢复操作,反当该设置值应当改变时才执行该设定。
在步骤S11中,在DMAC11中传送初始地址,传送目标地址和指示传送量的数据。在这时,和在DMAC11中设定相同的传送初始地址和传送量数据被写入到传送初始地址寄存器组243和传送量寄存器组244,在正常的DMA操作中传送初始地址被增量或减量。然而,使用DMA通道执行恢复操作的DMA传送操作的传送初始地址既不增量也不减量而是固定的。为了使这样的操作能被执行,该DMAC11要被适当地设置。
CPU10应当固定被使用的地址以执行由数据恢复操作所伴随的存储器存取操作。地址产生电路231以适合在ROM20中的压缩的数据的数据密度的方式增加该固定的地址,这里可能是这种情况,这存在着这种可能性,为获得原始数据对ROM20进行存取操作,而同时由数据恢复操相伴的存储器存取操作也被正在执行,在这种情况下,这就有必要确定,是否当前执行的存储器存取操作是由数据恢复操作相伴的操作。通过维持仅提供给如上所述的压缩数据的开始地址,这就可能确定,当前执行的存储器存取操作是由数据恢复操作相伴的操作。依此,当DMA操作执行时,该操作是使用硬件开始的,并且具有高的优先仅和不必数据恢复操作所伴随和当CPU正执行数据传送操作时,这就需要固定要被使用的地址以使存储器存取操作伴随着数据恢复操作。
在使用单个DMA通道的执行单个DMA操作的情况下,译码器电路23应当仅有一个传送初始地址寄存器和一个传送量寄存器。此外,可能会有这样的情况,其中设置传送初始地址的地址是与设置数据传送量信息的地址相同。在该情况下,在DMAC11中设置传送初始地址数据和数据传送量信息能够依照预定的步骤加以执行,同样,译码器电路23可具有这样的功能,使得依照同样预定的步骤使用译码器23能够自动地检测和获得传送初始地址数据和数据传送量信息。
在S12,然后,CPU10命令DMAC11开始DMA操作,在该实施例中,CPU10能指定使用大量DMA通道的DMA操作。使用大量DMA通道的所执行的DMA传送操作可以包括以固定的方式执行恢复操作和一般简单DMA传送操作的DMA操作。近而,当DMAC11接到DMA操作开始的诸指命时,DMAC要求CPU10允许使用总线。在CPU10把总线交给DMAC11以后,DMAC11开始DMA操作。
当DMA操作被开始时,开始写操作开始命令到DMAC11的一预定顺序由CPU连续地执行,因此,为了预先检测DMA操作的开始,译码器电路23检测被提供给DMAC11的操作开始指令作为检测数据通过系统地址总线的结果。该检测可以由检测命令DMA操作开始的某个特定地址例如CPU10写命令到DMAC11的控制寄存器的地址加以执行。
在该第二个实施例中,在译码操作真实开始之前也可能由CPU10提供指示要被使用的DMA通道的数据或者由CPU从ROM20中得到相同的数据。在这种情况下,译码器电路23能预先地知道要被使用的DMA通道。
如果没有这样特定的地址,通过检测预定的设置顺序的一预定步的开始,使DMA操作的开始能被检测到,如果没有一个用来作为DMA操作的通道是预先的恢复操作所使用而设定的DMA通道,那末译码器电路23不开始任何操作。
参看图8A,8B,8C,8D,8E,8F,8G和8H,在第二实施例中使用译码器电路23的DMA操作将被描述。
如图8A所示由CPU10提供的一地址启动信号是低电平,数据即在地址总线上产生的数据是有效的,在图8F示出的译码器电路23输出的地址指示相关于ROM20被连接到译码器电路23的地址在图8H示出的译码器输入数据是响应由外部系统地址总线或内部地址产生电路231提供的与ROM20相关的地址而由ROM提供的数据。
在图8A-8H的时序图内,在DMAC11已经命令DMA操作开始以后,执行一个指令恢复周期和这样作为如图8B所示的作为ROM地址被送到系统地址总线上的结果ROM数据从ROM20被提供到如图8E所示的系统数据总线。然后,执行DMA操作和这样译码的数据被提供到如图8E所示的系统数据总线。上述的指令恢复取决于当前被使用的DMA操作开始步骤的系统和这里可能出现指令恢复被省略的情况。
在该时序图内,实线箭头指示一个周期,在该周期内使用外部系统地址总线所提供的地址进行数据输出,虚线箭头指示一个周期,在该周期内使用内部地址产生电路231提供的地址进行输出。
在第二实施例的译码器电路23的操作将被描述。
译码器电路23可以检测DMA操作的开始,用以检测从CPU10提供到DMAC11的操作开始命令来进行恢复操作。如果如此,恢复操作的一DMA通道从预定的大量的DMA通道中选出。使用大量DMA通道的预定的DMA操作具有为此目地而预先分别设定的预定的优先权顺序。要被这样选出的DMA通道是一个在恢复操作中的大量DMA通道中具有最高优先权顺序的一个。然后,与这样选出DMA通道相关的传送初始地址通过多路器243a从传送初始地址寄存器组243被提供到地址产生电路231。这样,地址产生电路的一地址被设定。这样译码操作开始了。然后,传送量寄存器组244,按如上所述提供与选出的该DMA通道相关的寄存器的输出。
一控制寄存器包括在诸内部寄存器234中和控制着多路器243a和244a的操作。这样,依靠预定的优先权顺序控制着诸译码操作的开始。
在DMA操作已经开始后的瞬间,被在图8H指示为压缩的数据的一压缩的数据项按照地址产生电路231所提供的地址ROM20中被读出,这样读出的数据被写入到FIFO的存储器242,译码器230从FIFO存储器242中读出数据和对它进行译码,这样译码的数据被提供到如图8E所示的系统数据总线。然后,译码器电路23再次进入通过模式和这样输出到ROM20的地址包括了通过外部系统地址总线所提供的诸地址。译码器23进入通过模式的时间由图8G的实线箭头指出。
在DMA操作的每一个存储器存取同期开始时,译码器这样进入通过模式。然后,总线使用检测电路245这样使用一地址,该地址是由CPU10所提供和流过系统地址总线。地址使用检测电路245这样确定是否这样获得的地址是否与如上述选取的DMA通道相关的预先设定的传送初始地址相同。这就是,是否这样获得的地址与在DMA操作开始时从传送初始地址寄存器组243当中预先选出的一寄存器所提供的地址相同。如果从系统地址总线获得的地址与选出的传送初始地址相同,数据选取开关240选取从译码器230来的数据和输出该数据。与此同时,依照地址产生电路231的地址,从ROM20中随后被读出压缩的数据项(在图8H中的压缩的数据2)。
如果从系统地地址总线获得的地址不与选出的传送初始地址相同,译码器电路23进入通过模式。由系统地址总线提供的该地址被用来对ROM20进行存取。数据开关电路240选取这样从ROM20读出的数据。从ROM20读出的数据被原样提供到系统数据总线,即,缺乏恢复操作,这样游戏机主体1能够从ROM20的数据,如果首先应当执行的DMA操作是通常的DMA操作和没有恢复操作的DMA操作,译码器电路23的译码操作被停止和在通过的模式下执行DMA操作。
结束检测电路237确定传送量计数器236的计数值与传送量寄存器组244的值相一致。这样,电路237确定使用当前DMA通道的译码操作的结束。
在上述的第一个实施例中,当存储在ROM20中的压缩的数据的译码开始时,从译码器电路23中读出的数据仅仅是译码的数据,在ROM20中的处理程序并不能被读出。为了读处理程序,处理程序被移到另一个区域和CPU10才能读处理程序。为此目的,译码器电路23具有一个内部的RAM232,并且把处理程序复制到内部的RAM,在第一个实施例中执行内部RAM的指令恢复。
与此相对照,在第二实施例的译码器电路23中,在DMA操作读周期的开始时通过系统地址总线从CPU10发送的一地址被使用和在译码模式和通过模式之间要执行一适当的选取。作为结果,当处理程序从ROM20中读出时间,译码电路23进入通过模式。这样,就不需要复制存在ROM20当中处理程序或类似的程序到译码电路23。
此外,上述的方法可以应用到DMA传送操作被执行的情况,在情况中DMA传送操作的开始并不受软件的控制。这样的一个传送操作是例如这样一个操作,当显示操作的一些参数随着一图象信号例如NTSC,PAL等等的每一个水平同步信号被传送到PPU13时该传送操作被执行。这样的DMA操作由每个水平同步信号开始,和比由软件开始的其它DMA操作有较高的优先权顺序,并且在中断较低优先权顺序的其它DMA操作之后应当被执行。
译码器电路23通过总线使用检测电路245监视在DMA操作的每一个存储器存取周期的流过系统地地址总线的地址。当上述的具有较高优先权顺序的DMA操作要求被执行时,DMAC11可以提供不同于先前为DMA操作而设置的地址数据的地址数据以进行恢复操作。总线使用检测电路245然后检测当前通过系统地址总线的地址数据是不同于预先设置的地址数据。作为结果,译码器电路23进入通过模式和DMAC11按相关的地址对ROM进行存取,和执行上述的DMA操作,该DMA操作的开始并不受软件的控制。
参看图9A,9B,9C,9D,9E,9F和9G,这样的操作将被再次地加以描述。在为此例的这些图形所示的操作中,恢复操作的DMA操作被执行和这样译码的数据被提供到如图9D所示的系统数据总线。然后,指示为DMA2地址并且不同于预定的传送初始地址(DMA1地址)的地址数据被提供到如图9A所示的系统地址总线。作为结果,恢复操作的这样执行的DMA操作被中断和开始一个有较高优先权顺序的另一个DMA操作,根据另一个DMA操作的开始,译码器电路23进入通过模式和ROM数据直接提供给如图9A所示的系统数据总线。实事上,当由总线使用检测电路234检测的地址数据不同于所期望的数据时,数据开关电路240选取从ROM20来的数据和这样从ROM20来的数据提供给系统数据总线。
同样,在上述的DMA译码操作中,当译码器电路23的结束检测电路237确定传送量计数器236的计数值和传送量寄存器组244值一致,译码器电路23确定,使用DMA通道的当前译码操作已经结束。
在译码器23已经完成了预先设置的数据传送量的译码之后,译码器电路23初始化FIFO存储器。然后,传送初始地址寄存器组243提供与-DMA通道相关的寄存器的传送初始地址,在诸DMA通道中该通道是预先设置的并且具有的优先权顺序在最高的一个之后。译码器23在地址产生电路231设定这样的地址。
然后使用这样的地址按,如上所述译码器电路从ROM20中读取相关压缩的数据的第一项,和并写这样读出的压缩的数据到FIFO存储器242。译码器230然后从FIFO存储器242中读取这样写的压缩的数据和对其进行译码,这样被译码的数据提供给系统数据总线。近而,传送量寄存器组244已提供相关的寄存器的传送量数据到具有随后优先权顺序的该DMA通道,如果FIFO存储器242已经满,将停止从ROM20中读取的数据和执行译码的数据瞬间的DMA传送。这样,以类似于第一DMAC11设定情况的方式,使用DMA通道的当前的DMA操作被执行。然后,类似地,顺序地执行使用DMA通道进行恢复操作的所有DMA操作。这样,译码器电路23完成预定的译码操作。
这也可能是被使用的DMA通道仅仅是一个单独的通道的情况,在使用该单独DMA通道进行DMA操作时这不存在着可能性使任何其它DMA操作被插入。在这种情况下,在由CPU10提供监视地址数据的DMA操作中就没有必要在每个存储器存取周期的开始插入通过模式。因为在恢复的DMA操作时这不必由CPU10提供监视地址数据,也不必要由CPU去维持一地址的地址数据作为开始传送初始地址。
在第二个实施例中,在CPU10提供了DMA操作开始指令之后,译码器电路23开始从ROM20中读取压缩的数据,恢复它和DMA传送它,然而这会出现这种情况,在CPU10提供了DMA操作开始指令以后,该情况要求译码器立即输出译码的数据。在这种情况下,在CPU10提供DMA操作开始指令之前,这就需要开始从ROM20中读取压缩的数据,恢复它和DMA传送它。在本发明的第三个实施例的译码器电路23以这样的方式执行译码操作。
参看图10,11和12A,12B,12C,12D,12E和12F描述第三实施例中的译码电路23。
参看图10,在第三个实施例中,和图6所示的配置不同的是,一第二地址产生电路246,一多路器250,用于从两个地址产生电路246和231所提供的地址数据中选出一个和提供选出地址,一用于存储从ROM20来的数据的数据寄存器。
参看图11描述第三实施例的操作。
在S5中,与第二实施例类似,在预定的大量的DMA通道中,进行恢复并进行DMA操作而使用的诸DMA通道被设定在译码器电路23的内部寄存器234中。仅当初始化设定和改变初始设定值时才应该做此设定。
然后,在S16中,CPU10设定传送初始地址,传送目的地址和在DMAC中与传送量有关的数据。在这时,与设置在DMAC11中的数据相同的传送量初始地址数据和传送量数据被写入到传送初始地址寄存器组243和传送量寄存器组244,和第二例的情况相类似,在通常的DMA传送操作中,传送初始地址被增量或减量。然而,在使用DMA通道和执行恢复操作的DMA操作的传送初始地址即不被增量也不被减量,而是固定的,为了使这样的操作被执行,DMAC11要适当地加以设置。
然后,在S16A,CPU10把当前要被使用的DMA通道写入译码器电路23的内部寄存器,在S17,CPU对除ROM20之外的预定部分进行存取,然后,在S18中,CPU10命令DMA操作的开始。
如上所述,在16A,CPU10把当前要被使用的DMA通道写入在S16A中的译码器电路23的内部寄存器234。这样写入的DMA通道可以包括不进行恢复操作的通常的DMA通道。译码器电路23确定是滞内部寄存器234具有恢复操作的DMA通道。如果内部寄存器234具有恢复操作的DMA通道,译码器电路开始相关于压缩的数据的恢复操作。特别是,在恢复操作的DMA通道当中,具有最高优先权顺号的DMA通道的传送初始地址由传送初始地址寄存器组243的相关寄存器提供到地址产生电路231作为开始地址。近而,具有优先权顺号在最高优先权顺号之后的DMA通道的传送初始地址由传送初始地址寄存器组243的一相关的寄存器提供给第二地址产生电路246作为另外一个开始地址,如果在内部寄存器234内没有恢复操作的DMA通道,没译码操作开始,近而,这里仅仅存在一个恢复操作的DMA通道,没有数据设置在第二地址产生电路246内。
然后,CPU10对除ROM区域之外的预定部分存取预定的次数。
存取ROM区域意指按指示ROM20的地址进行存取,在上述依本发明的实施例中,当CPU存取ROM区域时,CPU并不总是直接存取ROM20,但是CPU对包括在译码器230内的缓冲存储器和由此从中读出译码的数据,译码器230对一定量的压缩数据进行译码和存储这样译码的数据到缓冲存储器,当这样存储的译码的数据被读出时,译码器230对随后的定量的压缩数据进行译码和存储译码的数据到缓冲存储器。
在图12A-12F所示的操作中,除ROM20以外的预定部分即被指为在图12B的非ROM也址被存取一次。该系统决定对除ROM20以外的预定部分所进行存取的次数。在CPU对除ROM20以外的预定部分进行存取的期间,译码器电路23使用预先设定在地址产生电路231中的开始地址,从ROM20中读取必要要的压缩的数据和然后开始对这样读出的压缩的数据进行译码。译码器电路23尽可能长的进行译码操作。当译码器电路23已经完成了对这样读出量的压缩的数据的译码操作时,译码操作停止直到随后一定量的压缩的数据从ROM20中读出。
当译码器电路23已经检测到由CPU10提供的DMA操作开始指令时,在开始检测DMA操作开始指令提供到真实DMA操作开的结束这段时间内,译码器电路23可以使用预先设置在地址产生电路231预先设定的开始地址,从ROM20中读出压缩的数据,和然后写这样读出的数据到FIFO存储器242在这段时间内是否这样数据读出应当被执行取决于被使用的数据译码器系统,在提供DMA操作开始指令之后,在真实开始DMA操作所需时是很短的情况下,这样压缩的数据的读出操作并不能被执行,在这样的情况,这就需要预先从ROM20中读出预定量的压缩数据。
译码器230从FIFO存储器242中读出压缩的数据和开始对压缩的数据进行译码。然后,到ROM20的一地址输出被返回,从内部地址产生电路231的一输出转到从外部系统地址总线的输出。当DMA操作的读周期开始时、这就决定是否从CPU10提供的地址数据是预先设定的相关于恢复操作的DMA通道的传送初始地址。如果由CPU提供的地址是预先设定的传送初始地址,数据开关电路241选取从译码器230来的数据和输出这样译码的数据,对ROM20的地址输出改变为地址产生电路231的输出是瞬时完成的。然后,随后量的压缩的数据从ROM20中读出和上述的操作被重复。
如果在上述的操作中FIFO存储器满,当对ROM20进行存取时译码器电路23使用第二地址产生电路246。这样,译码器电路23从ROM20中读出压缩的数据,和写这样读出的数据到数据寄存器247。在数据寄存器满时。写入数据寄存器24下的数据停止。在恢复的DMA操作实际开始之前这样写入数据寄存器247的数据对于准备预先的译码的数据来说是必要的。
在完成预先设置的数据传送量的译码以后,译码器电路23初始化FIFO存储器242,和设置第二地址产生电路246的当前地址到第一地址产生电路231。传送量寄存器组244的输出是在预先设置的诸DMA通道当中相关于恢复的DMA通道的一寄存器的输出,该寄存器具有最高的优先权顺序。当压缩的数据随后从ROM20中读出的时候,第一地址产生电路231提供一地址和这样读出的数据被写入FIFO存储器242。
当译码器电路23已经完成了预先设置的数据传送量的译码时,通过一当前DMA通道的DMA操作正在进行。在由当前恢复操作伴随的DMA操作和由随后恢复操作伴随的另一个DMA操作之间的时间差是很短的情况时,这就要求在由随后恢复操作伴随的DMA操作开始之前去读取压缩的数据和对此进行译码。
为此目的,译码器电路23读出预先从ROM20中读出的压缩的数据和然后写入数据寄存器247和对它进行译码。当写入到数据寄存器247的数据已经完全地被译码以后,译码器230从FIFO存储器241中读出压缩的数据和对它进行译码。
当当前执行的DMA操作是最后的一个和这里没有要随后执行DMA操作的情况下如果FIFO存储器242满,从ROM20读出压缩的数据还没有执行,该压缩数据的读出本是和在DMA操作的译码器230中读出的译码的数据同时执行的。这样,当使用DMA通道以进行恢复的所有的操作已经完成时,译码器电路23结束译码操作。
在该第三实施例中在由恢复操作伴随的DMA操作开始之前译码器电路23的操作已经开始了。在作为CPU10对除ROM20以外的预定部分进行存取的作为结果的产生时间里压缩的数据能预先从ROM20中读出。这样就可能在DMA开始以前预先地准备要被译码的数据。近而,该第二地址产生电路246和预先从ROM20中读出压缩的数据的数据寄存器247可以配置在译码器电路23内部。这样,当使用一DMA通道执行译码操作的期间该FIFO存储器242满时,地址产生电路246和寄存器247可以被使用和这样为随后DMA操作而从ROM20中读出的压缩的压缩的数据能被写入到寄存器247中。这样,当当前DMA操作已经结束时,使用存储在寄存器247中的数据执行为随后DMA操作的译码操作。作为结果,这就可能缩短使用DMA通道的顺序DMA操作之间的时间间隔,这样,译码器电路23能够执行随后的DMA操作而对译码不要被额外的准备时间。
参看图13,本发明第四个实施例的译码器将被描述。
如图13所示,在第四个实施例中,所提供的第二个FIFO存储器248代替了在第二实施例中所提供的数据寄存器247,在该实施例中,当执行由第一恢复操作伴随的DMA操作时,由优先权低于最高一个的恢复操作伴随的DMA操作的开始地址设置在第二地址产生电路246。
当由第恢复操作伴随的DMA操作的执行期间第一个FIFO存储器242满时,第二地址产生电路246和第二FIFO存储器248被使用以用来为随后的DMA操作存储从ROM20中读出的压缩的数据。当当前DMA操作完成时和随后的DMA操作开始时,第二地址产生电路246被连续地使用和这样从ROM20读出的压缩数据被写入第二FIFO存储器248。当第二FIFO存储器248及第二地址产生电路246这样被连续地使用以进行随后的DMA操作,第一FIFO存储器242被清零和第一和第二地址产生电路231和246的功能随着第一和第二FIFO存储器242和248的功能之间的切换而切换。
在这一例中,优先权在最高优先权随后的优先权(第二最好优先权)所伴随的DMA操作的一开始地址被设置在第一地址产生电路246中。译码器从第二FIFO存储器248中读出压缩的数据和对该压缩的数据进行译码。
如果随后的DMA操作是一个不由恢复操作所伴随的操作,译码器电路230并不提供译码的数据,这样,译码操作停止直到由随后恢复操作伴随的DMA操作开始。
当随后恢复操作伴随的DMA操作开始时,译码操作重新开始,同时第二地址产生电路246被使用以产生地址,压缩的数据被读出和然后写入到第二个FIFO存储器248。当压缩的数据在往其里边写时如果FIFO存储器满,第一地址产生电路然后被使用和这样压缩的数据从ROM20中读出,因为随后的DMA操作是存储在第一FIFO存储器242中以进行随后的译码操作。
然后,当由当前恢复操作伴随的DMA操作已经完成时,第一和第二地址产生电路231和246的功能随着第一和第二FIFO存储器242和248之间的功能切换而切换。
如果,在此时,由随后恢复操作伴随的DMA操作是由最后恢复操作所伴随的该DMA操作,第二地址产生电路246和第二FIFO存储器248并不使用。
这样,在第四实施例中,第一地址产生电路246和第一FIFO存储器242,和第二地址产生电路246和第二FIFO存储器248是交替地使用。作为结果,这样可以容易地控制数据的读取和存储操作。
事实上,在该寄存器和一个单独的FIFD存储器一块使用的情况和使用两个FIFO存储器的情况加以比较,当第一个恢复操在一块的DMA操作已经结束时,由第二地址产生电路提供的当前地址是一地址,该地址已是事先获得的DMA操作和随后恢复操作的开始地址。这样事先获得的地址应当被设置在第一地址产生电路内。然后,译码操作应以这样的方式被执行,在该方式中,在寄存器存储的数据首先被译码,在它被译码以后,存储在FIFO存储器中的数据被译码,这样,对译码操作而言所要求的控制操作是复杂的。
然而,与此相对比,在第四个实施例中使用两个FIFO存储器的情况下,为了相同的目地仅需要在两个地址产生电路和两个FIFO存储器之间折的切换。依此,控制方法可以简化。
每一个上述的实施例均是一DMA操作的实施例。然而,本发明也应用这样的实施例,该实施例使用了通常存储器存放方法,在该实施例中CPU10以执行软件程序的通常方式执行存取操作。参看图14将要描述的第五个实施例是使用一通常存储方法的实施例。
如图14所示,在第五个实施例中,提供了一个开始地址寄存器250,在该开始地址寄存器中设置有要被恢复的压缩的数据的开始地址。CPU10把在传送操作中使用的开始地址写入开始地址寄存器250。该开始地址寄存器250然后提供开始地址到地址产生电路231。CPU10对ROM进行存取,从中读出压缩的数据,使数据被译码和被传送。数据传送量由CPU通过软件加以控制。作为结果,不提供检测结束译码的装置。然而,这也是可能的,类似于其它实施例,去监视当前的传送量和通过预定的电路自动地结束译码操作。
参看图15,在第五个实施例中在CPU10的控制下由译码电路23执行的数据读出,译码和传送操作将被描述,当CPU10企图使压缩的数据被译码和最终传送到CPU10时,在S20,CPU10把压缩数据一开始地址写入到译码器电路23的一开始地址寄存器50。然而,在S21,CPU10命令译码器电路23开始译码。
作为结果,译码器电路23开始译码和首先设置存储在开始地址寄存器250的开始地址到地址产生电路231。译码器电路23监视系统地址总线和确定是否CPU10对除ROM20以上的任何部分进行存取。在S22,CPU10对除ROM20以外的预定部分进行存取。
当确定如果CPU10对除ROM区域以外的预定部分进行存取时,译码器电路23使用由地址产生电路231提供的开始地址和从ROM20中读取压缩的数据。这样读出的压缩数据然后写入到FIFO存储器242。在S23,译码器230从FIFO存储器242读取压缩的数据,对其进行译码和输出译码的数据到系统数据总线。在预定的时间过去以后,CPU10开始从系统数据总线读取译码的数据,该预定的时间是译码器译码压缩的数据和能够提供译码的数据到系统数据总线所需的时间。在CPU10通过存取缓冲器开始从译码器230包括的缓冲存储器读出译码的数据之前,这不需要CPU10执行涉及数据译码和传送的操作。
从ROM20读出的压缩数据使用的地址仅是那些从预先设定开始地址开始的地址、在译码操作开始以后,译码器电路23总是监视系统地址总线和确定是否在开始地址寄存器250中存储的开始地址出现。仅当在开始地址寄存器250存储的开始地址在系统地址总线上存在时,译码器电路23提供译码的数据。这样如果甚至在译码操作期间CPU10企图对ROM20进行存取时,CPU10可以向系统地址总线提供不同于存储在开始地址寄存器250的开始地址。作为结果,译码器电路23停止提供译码的数据到系统数据总线和这样系统数据总线能用来传送直接从ROM20读出的数据。
当CPU10已经结束从系统数据总线读取预定量的译码的数据时,CPU10译码器电路23停止译码。然而,当使用该译码器电路23时,在上述译码操作时CPU10能直接存取ROM2。依此,这就可能,当它要求停止当前译码操作和然后开始随后的译码操作,一新的开始地址可以设置在开始地址寄存器250中。作为结果,当然译码操作是自动地停止和使用这样设置新地址的随后的译码操作自动开始。这样,没有停止当前译码操作的特殊操作是需要被执行。
在上述的一些实施例中,压缩的数据由CPU10从ROM20中读出既不先于检测DMA操作开始指令,也不先于为从中读出译码的数据而对译码器23的缓冲存储器进行存取。在预定的时间内在译码操作已经执行完后,不是执行DMA操作式是由CPU10执行译码器的缓冲存储器的存取操作和缓冲存储器中读取数据,和译码的数据被提供。然而,这可能出现这种情况,这不可能提供使预先从ROM20中读取压缩的数据和对其进行译码的所需的时间,在这种情况下,将参考图16详细描述的第六实施例的译码器电路23将是非常有用的。
如图16所示,在第六实施例中,数据开关电路249被附加提供给在图6示出的第二实施例的配置,数据开关电路249从通过ROM数据总线从ROM20提供的两个字节数据之间选取一个字节数据。
在第六个实施例中,初始化设置仅仅是设置DMAC11,存在ROM20的数据具有结构例如如图18所示的结构,特别是,数据的第一和第三字节是非压缩的数据,和第二,第四和所有字据的字节是压缩的数据。该实施例的必要条件是,译码器电路23在每一个DMA存取周期读取的数据量大于在每一个DMA周期从译码器电路23中读出的数据量。例如,在DMA操作时,在每一个周期一字节的数据从译码器电路23传送出,而在每一个周期中译码器电路23能从ROM2D中读出1.5到2个字节的数据。在该实施例中,ROM20的ROM数据总线的总线宽度是两个字节和系统数据总线的总线宽度是一个字节。
当CPU10在DMAC11中设置传送初始地址,传送目的地址和传送量时,同样的传送量初始地址和传送量分别被设置在对应各自DMA通常的传送初始地址寄存器组234和传送量寄存器组244。然后,CPU10命令OMAC11开始DMA操作和使DMA操作开始。
译码器电路23通过监视系统地址总线的结果检测DMA操作的开始,译码器电路23然后把预先设定的诸传送初始地址中的一个设定给地址产生电路231和在从ROM20来的具有如图18所示结构的大量字节中读取两个字节数据(如图17F所示的压缩的数据1)。这些两字节的数据是一个字节非压缩的数据和一个字节压缩的数据,这如图18所示,这样读出的两字节的数据中的第二字节数据被写入FIFO存储器242。这第二字节的数据是如图18所示的压缩的数据。译码器230从FIFO存储242中读出该字节的压缩的数据和对其进行译码,第一字节数据,即非压缩的数据通过数据开关电路249提供给系统数据总线。
在随后的DMA周期,第三和第四字节的如图18所示的数据从ROM20中读出,该第三字节数据,即非压缩字节数据和第二字节数据一样通过数据开关电路249被提供给系统数据总线。第四和第五压缩数据字节被写入到FIFO存储器242。在这时,译码器电路23已经准备了在随后DMA周期要被提供的译码的数据。因此,在从第三个DMA周期开始的每一个DMA周期内,译码器230提供如图17C所示的译码的数据。
这样,在该第六实施例中,当提供系统数据总线上的数据开始时可以开始译码的操作。
作为结果,译码器电路23的控制是非常简单的,事实上,在上述的情况下,在译码器230的缓冲存储器的译码的数据被读出之前,译码器电路读出压缩的数据。这样,这就需要CPU对除ROM区域之外预定部分进行存取。在第六实施例中,这样额外的操作并不需要被执行,近而,在CPU对ROM区域进行存取以读取译码的数据之前并不需要读取压缩的数据。依此,在执行DMA操作以前这并不需要在译码器的电路内去写要被当前使用的DMA通道。
然而,由压缩数据表示的初始数据量取决于当前被使用的系统,在图18所示压缩数据的数据结构仅仅是一个实例。图17A-17F所示的操作顺序的变化对压缩的数据的数据结构而言可以被认为是适当的。近而,第六实施例的概念也可以应用到使用数据传送方法的译码器系统,在该方法中,CPU10对译码器230的缓冲存储器进行存取而不使用DMA方法。
在上述的实施例中,译码器电路23是包括在如图2所示的程序盒内。然而,这也可能使译码器电路23在如图19所示的游戏机主体1内,在图19所示的实施例中,和图1所示相关现有技术的程序盒相同的程序盒包含有ROM20和含有后背电池22的RAM。DMAC11使程序数据和要被传送的压缩的数据从ROM20到译码器电路23。译码器电路23可以具有和上述实施例的配置相同的配置。译码器电路23可以通过模式和译码模式的两种模式进行操作。在通过模式中输入数据以同输入数据模式相同的格式输出。特别是,在通过模式中,译码器电路23对ROM进行存取,并由此读出数据和以这样读出的数据格式相同的格式把数据提供给系统总线15,在译码模式中,输入压缩的数据被译码和然后实时输出。特别是,在译码模式中,译码器电路23对ROM20进行存取,并且从中读出压缩的数据,对其进行译码和提供这样译码的数据到系统总线15。按CPU10对ROM区存取的结果执行通过模式和译码模式之间的变化。特别是,按如上所示提供特定的数据到系统总线10。
这样,当游戏机主体1包括依本发明的译码器电路23,程序盒2具有的配置和相关现有技术的配置相同。依此,这就有可能维持程序盒的低成本。
如上所述,依照本发明,当作为压缩的数据的译码的结果而获得的数据被成功的传送,CPU10仅仅操作好象直接存取ROM20,因为对压缩的数据的译码操作是由译码器电路单独地执行的。这样CPU可以完全不考虑传送压缩的数据到工作RAM的时间和对压缩的数据进行译码所需的时间,这样图象显示可以无延迟的平滑的执行。
因此,即使在相当多的时间被用来对压缩的数据进行译码的情况,该时间仍可以不予考虑,这是因为操作是由译码器电路单独地进行的。依此,尽管在这种情况,程序盒能具有在ROM20中减少了存储容量的压缩的数据。
近而,如果数据传送量不预先地设置,在预定的量的数据已经被译码和传送以后,这就需要使译码器电路23停止当前译码操作和这样进入通过模式。然而,依照本发明,通过设置必要的数据传送量,必要数据量的译码和传送的完成是由译码器电路23自动地检测的和译码器电路23自动地进入到通过模式。
此外,依照本发明,译码器电路23具有内部RAM232和RAM232的地址是位于ROM20的地址映象位置。依此,在译码模式中,CPU10通过一操作从RAM232中读出处理程序,该操作和CPU10从ROM20读取算是程序的操作相同。这样,就不必需使用工作RAM去执行处理程序,这样,操作程序可以简单地维持。
此外,在相关的现有技术中,在译码器电路已经进入了译码模式,这就不可能直接对ROM进行存取和这就不可能去执行设置存储在ROM20中的DMA设定软件程序。依此,这就必需使用除ROM20以外的存储器,该存储器连到译码器电路,以执行存储在另一个存储器内的DMA设定软件程序。然而,在本发明的第一实施例中,DMA设定程序被复制到在译码器电路内的内部RAM和指示内部RAM的一地址区域作为ROM区域的一部分被映象,作为结果,在此可以执行DMA设定程序。依此,这就没有必要执行存在存储器内的设定程序,该存储器并不以系统的译码器电路相连接。近而,在本发明的另外一个实施例中,这也没有必要执行存在存储器中的DMA设定程序,该存储器不连到系统的译码器电路。因此,仅仅通过执行DMA设定和指定一译码操作,可以容易地执行译码数据的DMA传送。
此外,甚至当译码操作时,当不同于指定地址的另一地址被给出时,译码器电路23进入通过模式。使用这样的操作,CPU10能获得除了译码的数据之外的数据。依此,在恢复数据的DMA操作期间另一个具有较高优先权顺序的DMA操作被要求,这就可能执行诸DMA操作,包括以混合的方式执行恢复数据的DMA操作和另一个通常的DMA操作,作为结果,这很容易地使用译码器电路23。
如上所述,在译码器电路已进入译码模以后,这就不可能对ROM20进行直接存取和这也不可能执行存在ROM20中的存储器存取设定软件程序。依此,这就必需使用除了ROM20之外的连接到译码器电路的一存储器,以执行存在这另外一个存储器内的存储器传送设定软件程序。然而在本发明的第五和第六个实施例中,甚至在译码器电路已经进入译码模式以后仍然可以从连接到译码器电路的ROM20中恢复命令。这样,可以执行存在ROM20中的存储器存取设定程序,这是因为根据监视流过系统地址总线上的地址数据结果,译码模式和通过模式的变化可以在译码器电路23中的自动地执行,作为结果,CPU10可以控制通过和译码模式的改变和维持通过模必要的时间而能执行存在ROM20中的存储器设定程序和这样CPU10可以对ROM20进行存取。这样,甚至当译码操作期间,也不限制由CPU10执行的ROM存取操作。(然而,如上所述,这就须要在每一个译码的数据传送周期获得相关的地址)。
这样,使用硬件例如译器电路的实时数据译码能被容易地完成。
此外,如果当前使用的系统是这样一个系统,在该系统中,在译码的数据输出被命令以前这里没有预先从ROM20中读出压缩的数据的准备时间,合作例如图16所示的第六实施例的配置的配置可以容易地执行译码操作。
在本发明并不局限于上述的实施例,在不脱离本发明的范围的情况下可以做出各种变化和修改。
权利要求
1.一数据译码方法,包括以下步骤a)当对记录介质(20)进行存取以读取压缩的数据时,对译码电路(23)进行初始化使其进入译码模式,所说的译码电路读取和译码所说的压缩的数据和提供压缩的数据;和b)当所说的译码电路已经处理了预定量的压缩的数据时,对所说的译码电路进行初始化并使其进入通过模式,所说的译码电路从所说的记录介质读取数据但不对从所说记录介质读出的所说数据进行操作,提供从所说记录介质中读出的所说数据。
2.一数据译码器电路包括一地址产生电路(231),用于产生地址作为对给定地址的增量或减量的结果;一译码器电路(230),根据所说译码器产生的地址从记录介质(20)读取压缩的数据,所说的译码器对所说压缩的数据进行译码以提供恢复的数据和输出所说恢复的数据;一地址开关电路(239),它从由所说的地址产生电路提供的一地址和由外部地址总线提供的一地址中选出一个,和输出所说选出的地址;一数据开关电路(240),用于从所说记录介质提供的数据和从所说的译码器提供的数据中选出一个,和输出所选出的数据到数据总线;所说的译码器电路(23)进入通过模式和译码模式之一,在所说的通过模式中输入数据以输入的形式被输出,在所说的译码模式中输入压缩的数据被译码和输出;和当所说记录介质的地址是由外部提供时,所说记录介质进入所说通过模式,从所说记录介质读出的数据被输出到所说数据总线,和当所说记录介质的地址是从所说地址产生电路所给出时,所说译码器电路进入所说译码模式,从所说记录介质中读出压缩的数据,译码所说压缩的数据和输出所说译码的数据到所说的数据线。
3.权利要求2的数据译码器电路,其中,从所说译码器电路(23)要被提供的数据量是预先设定的,当所说译码器电路已经提供了所说数据量时所说译码器电路进入所说通过模式。
4.权利要求2的数据译码器电路,进而包括一内部存储器(232);和一地址映象电路(233),用于任意地设定包括所说内部存储器地址的地址映象;所说数据开关电路从所说内部存储器、所说记录介质和所说译码器中的一个选出数据。
5.权利要求2的数据译码器电路,其中,一压缩数据的开始地址被预先设定在所说译码器电路(23)内;仅当地址和给定的地址相同时,所说的译码器电路输出译码的数据和从所说记录介质中读取压缩的数据;和当地址和所说开始地址不同时,所说译码器电路进入通过模式;
6.权利要求2的数据译码器电路;其中,所说记录介质(20)存储压缩的数据和非压缩的数据;所说压缩数据的一开始地址和非压缩数据的开始地址是预先设定的;和当给出预先设定的地址时,所说译码器电路开始读取所说压缩的数据和非压缩的数据;在第一读周期和最初多个读周期的一个中,所说译码器电路输出所说非压缩的数据,顺序地输出因对压缩数据译码而获得的数据;
7.数据译码器电路,包括一地址产生电路(231),对给定地址进行增量或减量而产生地址;一译码器(230),根据由所说地址产生电路提供的地址从记录介质读取压缩的数据,所说译码器对所说压缩的数据进行译码和提供恢复的数据和输出所说恢复的数据;一地址开关电路(239),它从由所说地址产生电路提供的地址和从外部地址总线提供的地址中选出一个和输出所说选出的地址;一数据开关电路(240),它从由所说记录介质提供的数据和由所说译码器提供的数据中选出一个,和输出所说选出的数据到一数据总线;和一检测电路(245),检测通过所说地址总线的地址;当执行DMA操作时,所说译码器电路(23)被设置去执行恢复操作;所说的检测电路检测所说DMA操作的地址,由所说地址产生产电路用来作为地址而提供的地址,依该地址数据从所说的记录介质中读出,所说恢复的数据被输出到所说的数据总线;在所说检测电路没有检测所说DMA操作地址时,通过所说地址总线提供的地址被用来作为地址,依此地址,数据从所说介质中读出,所说读出的数据被输出到所说数据总线作为从所说记录介质的读出。
8.权利要求7的数据译码器电路,其中,当检测到除所说记录介质以外的其它部分的给定地址时,响应进入所说译码模式的诸指令,所说的译码器电路从所说的记录介质读出压缩的数据和开始恢复所说压缩的数据以提供译码的数据;和当检测到DMA操作开始指令时,所说译码器电路输出所说译码的数据。
9.数据译码器电路包括一地址产生电路(231)对给定地址进行增量或减量而产生地址;一译码器电路(230),用于根据所说地址产生电路所提供的地址从一记录介质中读出压缩的数据,所说的译码器对所说的压缩的数据进行译码以提供作为译码数据的恢复数据和输出所说的恢复的数据;一地址开关电路(239),它从由地址产生电路提供一地址和从外部地址总线提供一地址中选取一个和输出这样选取的地址;一数据开关电路(240),它从由所说的记录介质提供的数据和由所说译码器提供的数据中选取一个和输出所选取的数据;和一检测电路(245),用于检测在所说地址总线内所选取的地址;所说译码器电路(23)操作在通过模式和译码模式这两个模式中的一个,在所说的通过模式中,输入数据以输入形式被输出,在所说的译码模式中,输入压缩的数据被译码和所说被译码的数据被输出;和响应在所说译码模式中操作的指令,根据检测到的除所说记录介质以外的其它预定部分的给定地址,所说的译码器电路从所说记录介中读出的压缩的数据和恢复所说的压缩的数据;一旦给定地址和预先设定地址的一致,所说译码器输出所说译码的数据;和一旦给定地址和预先设定的地址的不一致,所说译码器电路操作在所说的通过模式。
10.一数据译码器电路,包括第一组寄存器(243),其中读压缩的数据的诸地址被设置;一控制寄存器(234),用于控制具有预先设定的优先权顺序的大量译码操作的开始,所说的大量译码操作对应着所说大量寄存器的各自的一些;第二组寄存器(244),其中对应所说第一组大量寄存器的各自的一些,要被传送的预定的数据量被设定;根据一给定地直一的增量或减量之一,所说的第一和第二地址产生电路(231,246)输出地址;第一和第二存储装置(242,247;242,248)根据第一和第二地址产生电路输出的地址存储从记录介质中读出的压缩数据;一译码器(230),用于根据由所说地址产生电路提供的地址从一记录介质中读出压缩的数据;所说译码器电路对所说的压缩的数据进行译码以提供恢复的数据作为译码的数据和输出这样恢复的数据;一地址开关电路(239),它从由所说第一和第二地址产生电路提供的一地址和由一外部地址总线提供的一地址中选出一个,和输出所说选出的地址;一数据开关电路(240),用于从所说记录介质提供的数据和由所说译码器提供的数据中选出一个,和输出这样选出的数据到一数据总线;所说的译码器电路(23)在通过模式和译码模式的两个模式中的一个进行操作,在所说的通过模式中,输入数据以输入的形式被输出,在所说译码的模式中,输入压缩的数据被译码和所说被译码的数据被输出;当地址是由所说外部地址总线提供时,所说的译码器操作在通过模式;当一地址是由所说第一和第二地址产生电路之一所提供时,所说的译码器电路操作在所说的译码器模式中,为了响应所说大量译码操作的开始诸指令,根据由所说第一地址产生电路提供的地址、具有一优先权顺序的一地址被设定在所说第一地址产生电路,所说的压缩的数据从所说的记录介质中读出和存储在所说的第一存储装置内,所说存储的数据被所说的译码器读出和加以译码。根据第一存储装置达到满容量时,所说的第二地址产生电路从优先权顺序在所说优先权顺序后面的一地址中提供诸地址,根据所提供的地址,所说被压缩的数据从所说的记录介质中读出和存储在所说第二存储装置中,这样,在第一指定的地址已经输出预定传送量的数据以后,在随后恢复操作中,所说的译码器开始从所说第二存储装置以数据,所说第二地址产生电路连续地产生诸地址,压缩的数据从所说记录介质被读出,所说读出的数据被存储在所说第二存储装置中,根据所说第二存储装置达到满容量,所说第一地址产生电路从随后的优先权顺序的一地址中提供满地址,根据所提供的地址,压缩的数据从所说的记录介质中读出和存储在所说的第一存储装置中。
11.权利要求11的数据译码器电路,其中,所说的第一和第二存储装置包括FIFO存储器(242,248)。
12.权利要求10的数据译码器电路,其中,所说第一和第二存储装置包括FIFO存储器(242)和一寄存器(247)。
全文摘要
一地址产生电路(231)产生一地址,根据地址产生电路产生的地址一译码器(230)从一记录介质(20)读出压缩的数据并且对这样读出的数据进行译码,一地址开关电路(239)选取由地址产生电路提供的地址和从外部地址总线提供的地址中的一个,一数据开关电路(240)选取由记录介质提供的数据和由译码器提供的数据中的一个,译码器电路(23)进行通过模式和译码模式中的一个,在通过模式中输入数据原样被输出,在译码模式中,输入压缩的数据被译码和这样被译码的数据被输出。
文档编号H03M7/30GK1131360SQ9511310
公开日1996年9月18日 申请日期1995年12月8日 优先权日1994年12月9日
发明者笠忠则 申请人:株式会社理光
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1