一种加快游戏机rom读取速度的方法及装置的制作方法

文档序号:1604370阅读:280来源:国知局

专利名称::一种加快游戏机rom读取速度的方法及装置的制作方法
技术领域
:本发明是有关于计算机技术,且特别有关于加快存储器存取速度的方法及装置。
背景技术
:随着游戏机(gameconsole)的设计上的不同,其游戏软件的储存媒体亦有所不同。举例来说,Playstation2游戏机及Xbox游戏机的游戏软件储存在光盘片(compactdisk)上,GameBoy的游戏软件则储存在屏蔽只读存储器(maskROM)或ROM芯片中。ROM芯片的存取速度足以让游戏机直接从游戏卡内的ROM芯片中读取并顺畅地执行某些游戏程序,不需要将游戏程序加载至主存储器。然而,ROM芯片的存取速度仍然远不及随机存取存储器(Random-AccessMemory,简称RAM)。数据量大的游戏的执行速度却会因ROM芯片的存取速度过慢而受限。但是扩充游戏机的主存储器则会增加成本。
发明内容有鉴于此,本发明的目的在提供加快游戏机ROM读取速度的方法及装置。基于上述目的,本发明实施例提供一种加快游戏机ROM读取速度的方法,包括下列步骤读取一程序的原始码;读取上述原始码中一个或一个以上的区段的定义信息;上述定义信息包含区段信息以指示每一区段的范围,及地址信息以指示每一区段对应的一主存储器的一地址;根据上述区段信息及上述地址信息以编译上述程序的原始码以产生该程序的可执行文件,使得一处理器执行上述可执行文件中的指令时,上述一个或一个以上的区段的可执行文件码从一非易失性存储器被加载至该主存储器的各个对应地址,并且从该主存储器中输入上述处理器以执行,而上述可执行文件的其余指令则从上述非易失性存储器输入上述处理器以执行。另外,本发明实施例提供一种加快游戏机ROM读取速度的装置,包含一编译器及一连结器。该编译器读取一程序的原始码中一个或一个以上的区段的定义信息。上述定义信息包含区段信息以指示每一区段的范围及地址信息以指示每一区段对应的一主存储器的一地址。上述编译器根据上述区段信息及上述地址信息以编译上述程序的原始码以产生该程序的目的码。该连结器根据上述目的码及上述定义信息以产生上述程序的可执行文件,使得一处理器执行上述可执行文件中的指令时,上述一个或一个以上的区段的可执行码从一非易失性存储器被加载至该主存储器的各个对应地址,并且从该主存储器中输入上述处理器以执行,而上述可执行文件的其余指令则从上述非易失性存储器输入上述处理器以执行。图1以说明加快游戏机ROM读取速度的方法的一实施例;图2显示一程序原始码及可执行文件的实例;图3显示移动指令的作业流程实例;图4显示执行上述可执行文件的一游戏机的结构示意图;以及图5显示加快游戏机ROM读取速度的装置的一实施例。符号说明1处理器;2主存储器;3连接接口;4非易失性存储器;200程序原始码;210区段;2U巻标;212程序代码;213巻标;220区段;221巻标;222程序代码;223巻标;230指令;240指令;250可执行文件;251移动指令;210A区段;220A区段;230A指令;240A指令;210B区段;220B区段;400游戏机;500加快游戏机ROM读取速度的装置;501编辑器;502编译器;503连结器。具体实施例方式以下说明是本发明的较佳实施例。其目的是要举例说明本发明一般性的原则,不应视为本发明的限制,本发明的范围当以申请专利范围所界定的为准。以下提出加快游戏机ROM读取速度的方法及装置,用以提供一机制使程序设计人员在设计程序时能够规划程序执行期间的存储器管理。亦即,上述机制使开发出来的程序本身能管理其执行期间由何处被输入至处理器以执行。第一实施例参照图1以说明加快游戏机ROM读取速度的方法的一实施例。首先,由一软件设计者使用例如C、C++、java、或其它程序语言以编辑一程序(步骤SIOO),并设定在该程序中程序代码区段(section)的定义信息(sectiondefinition)(步骤S102),用以指示该程序中一个或一个以上的程序代码区段将要被加载一计算机装置的一主存储器被执行。该软件研发系统可以包含编辑器(editoi")、编译器(compiler)及连结器(linker),并提供一程序语言规格以描述上述定义信息。上述定义信息可以包含区段信息以指示每一区段的范围,以及地址信息以指示每一区段对应的一主存储器的一地址。在上述程序的原始码编辑完成时,软件研发系统根据上述定义信息以编译(compile)该程序的原始码来产生该程序的可执行文件(executablefile)。上述可执行文件为游戏软件。然而此方法也可以运用于其它各种软件。软件研发系统根据上述定义信息以产生至少一移动指令,用以移动上述一个或一个以上的区段至上述主存储器(步骤S104),并根据上述定义信息以转换上述原始码中的符号地址(symboladdress)成为上述主存储器上的一逻辑地址(logicaladdress)或实体地址(physicaladdress)(步骤S106)。借此,即使上述一个或一个以上的区段被复制到上述主存储器,也可以被上述可执行文件的其余指令所参考。图2显示一程序原始码及可执行文件的实例。程序原始码200包含程序代码区段210及220。巻标211及213分别用来标示区段210的开始及结尾位置。区段210的程序代码212包含其对应的主存储器地址RAM—ADDRESS,其值为OxlO,并且包含符号地址SECTION—1。上述信息构成区段2i0的定义信息。而区段220的定义信息则包含巻标221及223,分别用来标示区段220的幵始及结尾位置,以及区段220对应的主存储器地址RAM—ADDRESS=0x1024及程序代码222的符号地址SECTION—2。区段210及220皆是程序指令,且包含定义信息(包含RAM—ADDRESS,C—CODE—IN—RAM一START及C—CODE—IN—RAM—END)。程序原始码200经过编译后的可执行文件(executablefile)需包含210及220编译后的指令(图2中的210A及220A),而且可以不含上述定义信息。执行期间程序代码区段210A及220A复制到主存储器。须要了解的是,任一程序原始码的定义信息可以定义二个以上或以下的区段。区段的大小可以任意设定或调整。举例来说,一区段可以包含一个或一个以上的函式(function)或子程序(subroutine)。一个函式或子程序也可以包含一个或一个以上的区段。程序原始码200还包含区段210及220之外的第i指令230参照至区段210的符号地址SECTION—1及第j指令240参照至区段220的符号地址SECTION—2。其中i及j为正整数。须要了解的是,程序原始码200可以有更多的指令参考至区段210及220的地址以请求执行区段210及220。程序原始码200经过编译后产生可执行文件250。可执行文件250接着写入至非易失性存储器(nonvolatilememory),例如只读存储器芯片(readonlymemorychip)。第i指令230及第j指令240分别被转换成指令230A及240A,且其中的符号地址SECTI0N一1及SECTION—2分别被转换成区段210及220对应的主存储器地址0x10及0x1024。程序代码区段210A及220A是依据区段210及220经过编译后产生的程序代码,例如可以是机械码(machinecode)。区段210A及220A可以保留上述定义信息或以客制化的移动指令程序代码取代上述定义信息。移动指令251则是根据上述定义信息而产生,用以复制区段210A及220A至一主存储器以执行。移动指令251可以在可执行文件250开始执行时加载区段210A及220A,或者在需要执行区段210A或220A时才个别加载需要执行的区段。软件研发系统可以根据各别区段的定义信息以客制化移动指令。或由共同的移动指令以根据各别区段的定义信息将各区段加载主存储器以执行。图3显示移动指令251的作业流程实例。当一计算机装置执行移动指令251时会进行下列步骤首先,取得一区段在该非易失性存储器中的开始位置,例如巻标211或221所在地址(经过连结器处理后,211或221的地址都已经确定)(步骤S300),再取得该区段的结尾位置,例如巻标213或223所在地址(经过连结器处理后,213或223的地址都已经确定)(步骤S302)。根据上述开始位置及结尾位置以计算该区段的数据量大小(步骤S304)。判别区段的大小是否为0字节(byte)(步骤S306)。如是,结束移动指令251的执行。如否,取得该区段在该非易失性存储器的地址,例如符号地址SECTI0N_1及SECTI0N一2经过转换后的地址(步骤S308)以及在上述计算机装置的主存储器中的目的地址,例如0x10及0x1024(步骤S310),并且把上述区段加载上述主存储器的该目的地址(步骤S312)。可以在一处理器的指令集中以一指令或复数指令来实作上述从一非易失性存储器加载上述一个或一个以上的区段至该主存储器的作业。须要了解的是,如果区段210A及220A不保留上述定义信息,区段210A及220A也可以各别包含客制化的移动指令,如上述步骤S308S312—般地,分别将210A及220A加载主存储器。可执行文件250接着写入至非易失性存储器(nonvolatilememory),例如只读存储器芯片(readonlymemorychip)、闪存(flashmemory)、可抹除程序化只读存储器(erasableprogrammableROM,简称EPROM)、电子式可抹除程序化只读存储器(electricallyerasableprogrammableR0M,简称EEPROM)等。图4显示执行上述可执行文件的一游戏机400的结构示意图。可执行文件250写入至非易失性存储器4以构成可携式储存装置。非易失性存储器4连接于游戏机400的连接接口3。处理器1耦接于主存储器2及连接接口3。主存储器2可以由随机存取存储器构成,例如静态随机存取存储器(StaticRandoniAccessMemory)或动态随机存取存储器(DynamicRandomAccessMemory,简称DRAM)。当游戏机400开机时,处理器1可以直接读取并执行非易失性存储器4中的程序。如图3所示,根据移动指令251,处理器1可以在可执行文件250开始执行时加载区段210A及220A。或者,处理器1可以在需要执行区段210A或220A时才个别加载需要执行的区段。处理器1在执行可执行文件250时,从非易失性存储器4输入可执行文件250的区段210A及220A以外的其余指令(例如230A及240A)至处理器1以执行,并且从非易失性存储器4加载上述可执行文件250中的区段210A及220A至主存储器2的各个对应地址,并从该主存储器2中输入区段210A及220A中的指令至处理器l以执行。执行期间搬到主存储器的是210A及220A,而不是230A及240A。230A及240A可以呼叫210B及220B。举例来说,区段210A的对应地址为主存储器2中的0x10字节地址。处理器1将区段210A加载至主存储器2中的0x10字节地址成为区段210B。亦即,在主存储器2的上述地址上开始加载区段210A。同理,处理器l也可以将区段220A加载至主存储器2中的0x1024字节地址,成为区段220B。指令230A及240A仍然可以参照主存储器2中的对应地址以执行区段210B及220B。每个在主存储器2中的区段在执行结束后皆会将执行控制权回传至非易失性存储器4上的指令,例如指令230A及240A、呼叫该区段的其它子程序(subroutine),使处理器1继续执行非易失性存储器250中的指令。第二实施例图5显示加快游戏机ROM读取速度的装置500。在加快游戏机ROM读取速度的装置500中,编辑器501产生一程序原始码,并设定其中的程序代码一个或一个以上的区段的定义信息。上述定义信息包含区段信息以指示每一区段的范围,及地址信息以指示每一区段对应的一主存储器的一地址。上述区段信息可以包含上述一个或一个以上的区段的每一个的开始地址及结尾地址。编译器502读取上述程序的原始码中一个或一个以上的区段的定义信息根据上述区段信息及上述地址信息以编译上述程序的原始码以产生该程序的目的码(objectcode)。上述编译器根据上述定义信息于上述目的码中产生至少一移动指令,用以移动上述一个或一个以上的区段至一计算机装置的主存储器。连结器503根据上述目的码及上述定义信息以产生上述程序的可执行文件。上述原始码中包含一符号地址以参考至上述一个或一个以上的区段的其中一个。上述连结器根据上述地址信息以转换上述符号地址成为上述主存储器上的一逻辑地址。上述一个或一个以上的区段经过编译及连结后产生上述一个或一个以上的可执行码区段。储存上述可执行文件于一非易失性存储器。当上述可执行文件加载至包含一处理器及一主存储器的一计算机装置时,该处理器执行上述可执行文件中的指令,上述一个或一个以上的可执行码区段从一非易失性存储器被加载至该主存储器的各个对应地址,并且从该主存储器中输入上述处理器以执行,而上述可执行文件的其余指令则从上述非易失性存储器输入上述处理器以执行。因此,利用上述方法可以将非易失性存储器中需时常执行的指令加载至主存储器,其它指令则维持在非易失性存储器中。需要加载主存储器的指令则可以由程序设计者在设计时就决定好了。利用上述定义信息可以界定任何大小范围的程序区段。虽然本发明己以较佳实施例揭露如上,然其并非用以限定本发明,任何所属
技术领域
中具有通常知识,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视权利要求书所界定的为准。权利要求1.一种加快游戏机ROM读取速度的方法,包括下列步骤读取一程序的原始码;读取上述原始码中一个或一个以上的区段的定义信息,其中上述定义信息包含区段信息以指示每一区段的范围及地址信息以指示每一区段对应的一主存储器的一地址;以及根据上述区段信息及上述地址信息以编译上述程序的原始码以产生该程序的可执行文件,使得一处理器执行上述可执行文件中的指令时,上述一个或一个以上的区段的可执行文件码从一非易失性存储器被加载至该主存储器的各个对应地址,并且从该主存储器中输入上述处理器以执行,而上述可执行文件的其余指令则从上述非易失性存储器输入上述处理器以执行。2.如权利要求1所述的方法,其中,还包含在上述编译步骤中,根据上述定义信息于上述可执行文件中产生至少一移动指令以移动上述一个或一个以上的区段的可执行码至上述主存储器。3.如权利要求1所述的方法,其中,上述原始码中包含一符号地址以参考至上述一个或一个以上的区段的其中一个,还包含根据上述地址信息以转换上述符号地址成为上述主存储器上的一逻辑地址或实体地址。4.如权利要求1所述的方法,还包含提供一程序语言规格以描述上述定义信息。5.如权利要求1所述的方法,还包含提供一指令集的一指令以执行上述从一非易失性存储器加载上述一个或一个以上的区段的可执行码至该主存储器的作业。6.如权利要求4所述的方法,其中上述区段信息包含上述一个或一个以上的区段的每一个的开始地址及结尾地址。7.—种加快游戏机ROM读取速度的装置,包含一编译器,读取一程序的原始码中一个或一个以上的区段的定义信息,其中上述定义信息包含区段信息以指示每一区段的范围及地址信息以指示每一区段对应的一主存储器的一地址,以及根据上述区段信息及上述地址信息以编译上述程序的原始码以产生该程序的目的码;以及一连结器,根据上述目的码及上述定义信息以产生上述程序的可执行文件,使得一处理器执行上述可执行文件中的指令时,上述一个或一个以上的区段的可执行码从一非易失性存储器被加载至该主存储器的各个对应地址,并且从该主存储器中输入上述处理器以执行,而上述可执行文件的其余指令则从上述非易失性存储器输入上述处理器以执行。8.如权利要求7所述的装置,其中,上述编译器根据上述定义信息于上述目的码中产生至少一移动指令以移动上述一个或一个以上的区段至上述主存储器。9.如权利要求7所述的装置,其中,上述原始码中包含一符号地址以参考至上述一个或一个以上的区段的其中一个,上述连结器根据上述地址信息以转换上述符号地址成为上述主存储器上的一逻辑地址或实体地址。10.如权利要求7所述的装置,其中上述区段信息包含上述一个或一个以上的区段的每一个的开始地址及结尾地址。11.如权利要求7所述的装置,还包含提供一指令集的一指令以执行上述从一非易失性存储器加载上述一个或一个以上的区段的可执行码至该主存储器的作业。全文摘要本发明是一种加快游戏机ROM读取速度的方法及装置,读取一程序原始码中一个或一个以上的区段的定义信息;该定义信息用以指示每一区段的范围,及指示每一区段对应的一主存储器的一地址;根据上述定义信息以编译上述程序的原始码以产生该程序的可执行文件,使得一处理器执行上述可执行文件中的指令时,上述一个或一个以上的区段的可执行文件码从一非易失性存储器被加载至该主存储器的各个对应地址,并且从该主存储器中输入上述处理器以执行,而上述可执行文件的其余指令则从上述非易失性存储器输入上述处理器以执行。文档编号A63F13/10GK101320331SQ20071010893公开日2008年12月10日申请日期2007年6月7日优先权日2007年6月7日发明者巍张申请人:华邦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1