[go: up one dir, main page]

CN1286021C - 半导体存储器及其地址控制方法、程序判别系统和方法 - Google Patents

半导体存储器及其地址控制方法、程序判别系统和方法 Download PDF

Info

Publication number
CN1286021C
CN1286021C CNB011033037A CN01103303A CN1286021C CN 1286021 C CN1286021 C CN 1286021C CN B011033037 A CNB011033037 A CN B011033037A CN 01103303 A CN01103303 A CN 01103303A CN 1286021 C CN1286021 C CN 1286021C
Authority
CN
China
Prior art keywords
address
address date
program
processing unit
central processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB011033037A
Other languages
English (en)
Other versions
CN1316697A (zh
Inventor
下村胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of CN1316697A publication Critical patent/CN1316697A/zh
Application granted granted Critical
Publication of CN1286021C publication Critical patent/CN1286021C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

提供新颖的半导体存储器和使用它的程序判别系统以及相应方法。提供难于剖析并具有长期保护效果的半导体存储器和使用它的程序判别系统以及相应方法。本发明揭示一种半导体存储器和使用它的程序判别系统以及相应方法。所述半导体存储器包含程序ROM,包含在这种程序ROM中的地址处理单元的运算器对来自CPU的地址总线的第1地址数据的后8位A0-A7与设定包含在相同程序ROM中的码存储器的8位的地址运算码a0-a7进行运算,并输出运算结果A0’-A7’。选择将A0-A7置换成A0’-A7’,因此从地址处理单元输出A0’-A7’+A8-A15的共计16位的第2地址数据。

Description

半导体存储器及其地址控制方法、程序判别系统和方法
技术领域
本发明涉及半导体存储器和使用它的程序判别系统,特别涉及例如游戏机用的盒式盘片(cartridge)那样的存储程序的ROM等的半导体存储器和程序判别系统。
背景技术
例如,在将游戏机程序写入到ROM那样的半导体存储器中使用时,将游戏机用的盒式盘片安装在游戏机主体中。特别,对于这种游戏机用的盒式盘片,到处可见非法复制其存储内容的程序的盗版盘片。
因此,本申请人如在先的日本特开平2-31256号公报[G06F 12/14]所公开的那样,建议了一种能判别真假的系统,这种系统在不是正版的盒式盘片的场合,能借助于禁止访问程序存储区域,防止游戏程序和其它程序的非法复制以及数据改变。
在这种以往的技术中,因用“地址解码方式”,并用从程序存储器实际读出的数据判别真假,所以有相当高的可靠性,能排除盗版磁盘。
但是,在前述以往的技术中,因必须对多个地址进行解码,所以不仅门电路个数增加、芯片尺寸增大,而且如分析解码所有地址,则有进一步要解决失去非法利用的防护效果的问题。
发明内容
因此,本发明的主要目的是提供新颖的半导体存储器和使用它的程序判别系统。
本发明的另一个目的是提供难于剖析并具有长期保护效果的半导体存储器和使用它的程序判别系统。
本发明的半导体存储器,固定地存储由中央处理器执行的程序数据,并输出按照指定地址数据的地址的程序数据,包括:
固定地存储所述程序数据的程序数据存储器;
发生地址运算码的码发生装置;
接受由所述中央处理器输出的第1地址数据的地址处理装置;以及
输出来自所述程序数据存储器的程序数据的输出装置,
所述地址处理装置在有来自所述中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序数据存储器,在没有来自所述中央处理器的控制信号时,将所述第1地址数据提供给所述程序数据存储器,
所述程序数据存储器根据所述地址处理装置所提供的第1地址数据或第2地址数据向所述输出装置提供程序数据,
所述输出装置输出所述程序数据。
具体地说,地址处理装置包括
用于对第1地址数据的至少一部分与地址运算码进行运算,并输出第2地址数据的运算装置,和
在提供控制信号时输出第2地址数据,并在不提供控制信号时输出第1地址数据的选择器。
这种场合,运算装置包括能分别执行不同种类的运算,并且各自接受第1地址数据以及地址运算码,分别输出不同的第2地址数据用的多个运算器,
码发生装置还发生选择多个运算器中的任意一个的运算器选择码,
选择器也可以选择与根据运算器选择码选择的运算器相关的第2地址数据或者第1地址数据。
本发明另一个方面的半导体存储器包括
存储所述程序数据的程序数据存储器;
发生地址运算码的码发生装置;
接受由所述中央处理器输出的第1地址数据的地址处理装置;以及
输出来自所述程序数据存储器的程序数据的输出装置,
所述地址处理装置在有来自所述中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行第1运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序数据存储器,在没有来自所述中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行与所述第1运算不同的第2运算后输出新的第3地址数据,并将这种第3地址数据提供给所述程序数据存储器,
所述程序数据存储器根据所述地址处理装置所提供的所述第2地址数据或第3地址数据向所述输出装置提供程序数据,
所述输出装置输出所述程序数据。
这时,地址处理装置的第1和第2运算的任何一方,将第1地址数据变换成用于输出应该在中央处理器中正规执行的程序数据的地址数据。
本发明的程序判别系统,包括固定存储程序数据的读出专用的程序存储器,和从程序存储器读出程序数据并执行程序、同时判别程序是否正规的中央处理器,
所述程序存储器包括:
固定地存储所述程序数据的程序数据存储器;
发生地址运算码的码发生装置;
接受由所述中央处理器输出的第1地址数据的地址处理装置;以及
输出来自所述程序数据存储器的程序数据的输出装置,
所述地址处理装置在有来自中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序数据存储器,在没有提供来自中央处理器的控制信号时,将所述第1地址数据提供给所述程序数据存储器,
所述程序数据存储器根据所述地址处理装置所提供的第1地址数据或第2地址数据向所述输出装置提供程序数据,
所述输出装置输出所述程序数据,
所述中央处理器包括:
将所述控制信号提供给所述地址处理装置的控制信号提供装置;
紧接着提供所述控制信号,输出所述第1地址数据并提供给所述地址处理装置的地址输出装置;和
判断按照所述第2地址数据从所述程序数据存储器读出的程序数据与预先设定的检查数据是否一致,并判断所述程序存储器的真假的判断装置。
中央处理器还包括在判断装置的判断结果为假的程序存储器时,强制地结束程序的程序强制结束装置。
在半导体存储器中,在应答于从程序数据存储器读出的特别程序数据、将从中央处理器输出的控制信号提供给地址处理装置时,地址处理装置根据来自码发生装置的地址运算码,输出对第1地址数据的全部位或者一部分位进行运算的第2地址数据,并将这种第2地址数据提供给程序数据存储器。具体地说,地址处理装置的运算装置对第1地址数据和地址运算码进行运算,并输出第2地址数据,选择器应答于控制信号输出第2地址数据。因此,从程序数据存储器应答于控制信号,不是根据从中央处理器输出的第1地址数据,而是由根据从地址处理装置输出的第2地址数据指定的地址,读出程序数据。
在中央处理器中,用判断装置判断按照第2地址数据读出的程序数据是否与预先设定的检查数据一致。如果两个数据一致,则判断装置判断这时的半导体存储器(程序ROM)是真的,如果两个数据不一致,则判断装置判断这时的半导体存储器是假的,并强制地结束程序。
因此,即使复制存储在程序数据存储器中的全部程序数据,在没有本发明的地址处理装置的场合,也因为判断程序检查的结果为假,所以不可能执行程序。
此外,在地址处理装置中分别设置能执行不同种类运算的多个运算器的场合,选择器选择第2地址数据,这种第2地址数据来自基于由码发生装置输出的运算器选择码选择的运算器。
此外也可以,当有控制信号时,输出用第1运算处理第1地址数据后的第2地址数据,当没有控制信号时,输出用第2运算处理第1地址数据后的结果的第3地址数据。这种场合,地址处理装置的第1和第2运算的任何一方,将第1地址变换成应该用中央处理器执行的用于输出程序数据的正规的地址数据。
采用本发明,则如果仅复制程序数据存储器的全部的程序数据,不能分析地址处理装置中的运算装置和运算码等的全部的要素,则因不能与真品相同地执行这种程序数据,所以能有效地防止程序的非法使用。
此外,如果对于每个不同的机种或者版本变更指定运算装置中的运算的种类和地址运算码或者运算器的运算选择码等的要素,则即使能分析某1个程序存储器的全部要素,也因不能使这种分析结果原样地适用于其它的程序存储器,所以非法利用者有必要对每次变更重新分析,如果考虑到分析需要很多的时间和设备,则采用本发明能做到实质上不能进行程序的非法使用。
本发明提供一种半导体存储器的地址控制方法,所述半导体存储器包含固定地存储由中央处理器执行的程序数据的程序ROM,所述方法包括下述步骤:
发生地址运算码;
在有来自中央处理器的控制信号时,根据所述地址运算码,对由所述中央处理器输出的第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序ROM;
在没有来自中央处理器的控制信号时,将所述第1地址数据提供给所述程序ROM。
本发明还提供一种半导体存储器的地址控制方法,所述半导体存储器包含固定地存储由中央处理器执行的程序数据的程序ROM,所述方法包括下述步骤:
发生地址运算码;
在有来自所述中央处理器的控制信号时,根据所述地址运算码,对由所述中央处理器输出的第1地址数据的一部分进行第1运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序ROM;
在没有来自所述中央处理器的控制器信号时,根据所述地址运算码,对所述第1地址数据的一部分进行与所述第1运算不同的第2运算后输出新的第3地址数据,并将这种第3地址数据提供给所述程序ROM。
本发明又提供一种信息处理装置的程序判别方法,所述信息处理装置包括固定存储程序数据的读出专用的程序存储器,和从所述程序存储器读出程序数据并执行程序的中央处理器,所述方法包括下述步骤:
(a)发生地址运算码;
(b)从所述中央处理器输出控制信号;
(c)紧接着所述步骤(b)从所述中央处理器输出第1地址;
(d)在有控制信号时,根据所述地址运算码,对第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序存储器;
在没有所述控制信号时,将所述第1地址数据提供给所述程序存储器;
(e)在所述中央处理器中,判断按照所述第2地址数据从所述程序存储器读出的程序数据与预先设定的检查数据是否为一致。
附图说明
下面,参照附图对本发明的实施例详细地进行说明,以便进一步明确本发明的前述目的、特征和优点。
图1表示本发明一实施例的方框图。
图2表示图1实施例的地址处理单元一例的方框图。
图3表示图1中的CPU的存储器映射的图解图。
图4是表示图1实施例的动作的流程图。
图5是表示图4流程图中检查用程序的流程图。
图6表示地址处理单元的变形例的方框图。
图7表示地址处理单元的另一变形例的方框图。
图8表示本发明的另一实施例的方框图。
具体实施方式
图1所示的本发明一实施例的信息处理装置10包含作为中央处理器的CPU12,并将作为输出装置的显示器14和作为输入装置的操作输入装置16连接到这种CPU12中。信息处理装置10构成程序判别系统,在这种信息处理装置为游戏处理器的场合,操作输入装置16是游戏控制器,并包括操纵杆和十字键或者各种操作按钮,游戏处理器即CPU12应答于这种操作输入装置16借助于处理存储在程序ROM18中的游戏程序,将游戏图像显示在例如电视监视器和液晶显示器的显示器14上。此外,用例如RAM等构成与CPU12连接的工作存储器20,在前述的程序处理过程中,根据需要被使用,同时为了暂时地存储用于判别后述程序的真假的检查用程序和检查数据而被使用。
用作为半导体存储器或者程序存储器程序ROM18是预先固定地存储例如PROM、快速ROM、EPROM、EEPROM等的程序数据的读出专用半导体存储器。这种程序ROM18,在相当于以往称为程序ROM的存储器核心部分的程序数据存储器之外,还包括地址处理单元24和码存储器26。此外,在本实施例中,将程序数据存储器22、地址处理单元24和码存储器26设置在同一的半导体芯片上。此外,利用地址处理单元24处理通过地址总线从CPU12输出的地址数据,并将这种被处理后的地址提供给程序数据存储器22。程序数据存储器22按照利用地址处理单元24处理后的地址,读出程序数据,并通过数据总线将其输出到CPU12中。
此外,如后所述,地址处理单元24根据通过控制总线由CPU12供给的控制信号和由码存储器26供给的码(数据),对地址进行处理。
图2示出了地址处理单元24的具体的一例。如图2所示,地址处理单元24包括作为运算装置的运算器28和选择器30。运算器28形成于程序ROM18的芯片内,是例如乘法器、除法器、减法器、加法器、移位寄存器或者其它简单的逻辑运算器(例如AND、NAND、OR、NOR、EXOR等)。
从CPU12输出的例如16位的第1地址数据A0-A15的上8位A8-A15与原样的选择器30的输出数据A0’-A7’合成,下8位A0-A7用作为运算器28的一方输入和选择器30的一方输入(X)。将设定在用作为码发生装置的码存储器26的8位地址运算码a0-a7提供给运算器28的另一方的输入。运算器28对2个输入执行前述种类的任何一种运算,并将其输出供给为选择器30的另一方输入(Y)。例如在运算器28为AND的场合,运算器28输出地址运算码a0-a7与下8位A0-A7的逻辑积的结果A0’-A7’,并提供给选择器30的前述的一方输入。
将前述的控制信号、例如写入信号从CPU12提供给选择器30。因此,选择器30应答于这种控制信号、即写入信号,将地址数据的下8位A0-A7置换成运算结果A0’-A7’并输出。另一方面,如前所述因原样地将地址数据A0-A15的上8位A8-A15结合在选择器30的输出上,所以其结果从选择器30、即地址处理单元24输出A0’-A7’+A8-A15的共计16位的第2地址数据。
这样,因为将由地址处理单元24修饰处理的第2地址数据输入到程序数据存储器22(参照图1)中,所以在后述的图5的步骤S12中,从程序数据存储器22读出不是第1地址数据A0-A15,而是从第2地址数据A0’-A7’+A8-A15所示的地址读出程序数据。在没有假程序ROM的场合,地址处理单元24从第1地址数据A0-A15所示的地址读出程序数据。因此,因为从程序数据存储器22读出的程序数据不同,所以前者场合读出的程序数据虽然与预先设定的检查数据一致,但是后者场合的程序数据与检查数据不一致。
此外,在图2所实施例中,仅在运算器28中将地址数据的下8位与运算码进行运算,上8位原样地输出。因此,也可以用运算器28对第1地址数据的全部16位进行运算。这种场合,如图2中括号所示的的那样,将地址数据A0-A15的全部16位原样地提供给运算器28的一方输入,将来自码存储器26的16位的地址运算码a0-a15提供给另一方的输入。因此,从运算器28输出修饰处理全部位后的第2地址数据A0’-A15’,将这种第2地址数据A0’-A15’供给为选择器30的一方输入(X),将由CPU12输出的第1地址数据A0-A15供给为选择器30的另一方输入(Y)。因此,在有控制信号时,从选择器30输出第1地址数据A0’-A15’,在没有控制信号时,输出第2地址数据A0-A15。因此,在图5的步骤S13中,判断是否适合从用地址数据A0’-A15’指定的地址读出的程序数据。
图1的CPU12具有图3所示的存储器映射,例如“0000h~DFFFh”的存储器空间是分配给程序ROM18的程序区域,“E000h~FFFFh”是分配给工作存储器20的工作区域。
程序ROM18的程序数据存储器22是前述程序区域的一部分,在程序区域中还进一步设定程序常驻区域、检查用程序区域和检查开始命令区域。用后述的图4和图5的流程图能实现存储在检查用程序区域中的检查用程序。
此外,在检查用程序中设定1个或者多个检查数据。这种检查数据是与执行检查用程序时的结果所示的数据进行比较,用于判别程序的真假的数据。例如,在本实施例中,因为仅对1次检查程序的真假的场合进行说明,所以如图3所示,虽然在检查用程序内设定1个检查数据,但借助于将使利用单一的检查数据的检查用程序起动的检查开始命令设定在主体程序(例如游戏程序)内的多个地方,并在多个地方设定分别使利用多个检查数据的多个检查用程序起动的检查开始命令,能多次检查程序的真假,并能增加程序分析的困难性。
此外,在检查用程序比较小(例如几到几十字节)的场合,在主体程序内的多个地方设定检查用程序来代替检查开始命令,也能进一步增加检查用程序分析的困难性。
参照图4,一接通信息处理装置10(图1)的电源(未图示),则CPU12首先执行步骤S1。在这种步骤S1中,CPU12读入存储在程序ROM18(图1)的程序数据存储器22中的程序数据。在步骤S2,判断读入的程序数据是否为指示程序的真假检查执行的特别程序数据。
如果在步骤S2中为“否”,即这时的程序数据并不是命令真假检查的数据时,在步骤S3按照这时的程序数据进行处理。在步骤S3的后面步骤S4中,CPU12判断程序是否结束,如果是“是”,则原样地结束,如果是“否”,则返回到前面的步骤S1。这样,借助于重复步骤S1-S4,依次地执行存储在程序数据存储器22中的程序。在这种状态中,因为在地址处理单元22的选择器30中没有赋予控制信号(例如写入信号),所以在选择器30中用选择的状态保持输入X,因此,将由CPU12输出的第1地址数据原样地提供给程序存储器22。
借助于重复步骤S1-S4,在依次地执行包含在程序中的各个命令中,将用于执行检查用程序的命令一输入到CPU12,就在步骤S2对其进行判断,并进入到步骤S5。如图3所示,将这种命令、即特别程序数据设定为例如地址“030Eh”的场合,CPU12在地址到达“030Eh”时,进入到步骤S5。在步骤S5,CPU12读入设定在图2所示的程序区域中的检查用程序和检查数据,并写入到工作存储器20中(进行复制)。因此,按照复制在工作存储器20中的检查用程序和检查数据,执行步骤S6。但是,复制在这种工作存储器20中的检查用程序在检查结束后从工作存储器中消失。
图5示出了步骤S6的子程序的细节。在图5的步骤S11中,CPU12首先通过控制总线发生控制信号,使包含在图1所示的程序ROM18中的地址处理单元24能动。具体地说,CPU12通过控制总线将写入的信号(控制信号)提供给程序ROM18的选择器30。因为通常在执行ROM内的程序时,不将写入的信号提供给ROM(读出专用存储器),所以借助于将这种信号输出到程序ROM18中,选择地址处理单元24的选择器30中的输入Y。这种步骤S11构成控制信号提供装置。
但是,在不仅将前述的写入信号作为控制信号,而且在CPU12执行程序ROM18的程序数据存储器22的特定地址时,也可以将控制信号提供给选择30。这种场合虽然未图示,但也可以采用下述的结构,即在设置逐次比较从CPU12通过地址总线输出的地址数据与这种特定地址的比较器,并且用这种地址比较器检测出2个地址一致时,将控制信号提供给选择器30。
接着,在步骤S12中,CPU12输出用于读出程序ROM18的程序数据存储器22的地址数据(第1地址数据)。也就是说,在步骤S11紧接着输出控制信号后,在用作地址输入装置的步骤S12中,虽然从CPU12通过地址总线将ROM地址输入到地址处理单元24中,但是在地址处理单元24中,如前述图2的实施例所述进行处理这种第1地址,将这种处理结果地址(第2地址数据)提供给程序ROM18。
接着,在步骤S13中,按照在地址处理单元24处理后的第2地址数据,判断从程序数据存储器22读出的程序数据是否为正确的值。也就是说,步骤S13构成判断装置,比较工作存储器20中读出的检查数据与这时的程序数据,并判断两者是否一致。从按照地址处理单元24规定的法则处理的地址读出的程序数据,应该与预先设定的检查数据一致。因此,这种场合,为“是”。但是,在没有设置地址处理单元24的假的程序ROM的场合,或者即使存在与地址处理单元24相当东西,但是不按照地址处理规定的法则的假的程序ROM的场合,在这种步骤S13判断为“否”。
接着,在步骤S13判断为“是”的真的程序ROM的场合,返回到通常的程序处理。另一方面,在判断为“否”的假的程序ROM的场合,在接着的步骤S14中,CPU12在显示器14上显示例如“该程序ROM(盘片:cartridge)是盗版的,不能在本机上使用”那样的警告消息,同时在步骤S15强制地结束程序。因此,在假的场合,不能进行其后的程序的继续处理。也就是说,步骤S14和S15相当于程序强制结束装置。
此外,如前所述,在作为判断装置的步骤S13中,虽然比较按照第2地址数据读出的程序数据与预先设定的检查数据是否一致,但是两者不必要一定一致,也可以是两者预先设定的规定的关系。例如,一方比另一方仅大一定的数或者小一定的数的关系,或者对一方(和/或者另一方)进行一定的运算时两者一致的关系,或者两者的绝对值相等的关系等,能设定成任意规定的关系。
在图2的实施例中,程序数据如果用合适的设备,那么也能用完整的形式从程序数据存储器22读出程序数据,并能对其进行复制。但是,在图2的实施例中,从程序数据存储器22仅能提取程序数据并对程序数据进行复原,而不能与真的相同地执行这种程序数据。
也就是说,即使仅复原程序数据,但在非法利用这种程序ROM18的程序数据的存储器中没有地址处理单元24和码存储器26的场合,即使读出指示程序检查的程序数据,也因不能执行前述的地址修饰处理,所以未修饰的第1地址数据A0-A15原样地输入到程序数据存储器22中。因此,即使有这种检查命令,也能从在第1地址数据A0-A15指定的地址读出程序数据。这种场合的程序数据与从用图2实施例得到的第2地址数据A0’-A7’+A8-A15指定的地址读出的程序数据不同。因此,在步骤S13与预先设定的检查数据比较中,成为不一致。因为一得到这种不一致的判别结果,就在步骤S13判断为“否”,所以强制地结束程序。
为了避免这种程序的强制结束,在图4的步骤S2中分析指令检查开始的特别程序数据及其程序步骤(地址),并且必须进一步分析设定在运算器28中的运算的种类和地址运算码以及检查程序中的检查数据(图2)等全部要素。例如在用屏蔽ROM等作为程序ROM18的场合,这种分析是困难的,并且在分析中需要相当大的设备和长的时间。另一方面,因为如果变更运算器中的运算的种类和地址运算码等的要素,例如程序ROM的机种、游戏盘片中的每个游戏名称,此外,即使是相同的机种(游戏名称)也要变更每个版本,那么即使分析了某个程序ROM的全部要素,这种分析结果也不能原样地适用于其它的程序ROM,所以对于非法利用者来说,有必要每次重新分析全部要素。因此,采用这种实施例,如果考虑到分析所要的大量的时间和费用,则能实质上做到不能非法使用程序ROM。
图6是图2实施例的变形例,在图6的实施例中,地址处理单元24的运算装置包括多个(n个)运算器281-28n。将来自地址总线的地址数据的下8位A0-A7提供给各个运算器281-28n的各自的一方输入,将由码存储器26输出的8位地址运算码a0-a7共同地提供给各自的另一方输入。此外,将设定在码存储器26中的运算器选择码c0-cX与控制信号一起提供给选择器30。对应于运算器的个数n,设定运算器选择码c0-cX的位数,在有4个运算器28的场合是2位,在8个的场合可以是3位。此外,设定运算器选择码c0-cX,以便选择多个运算器281-28n中的任何一个。
在图6的实施例中,因为各个运算器281-28n与图2的实施例的运算器28相同对地址进行运算和修饰,所以省略地址运算的具体说明,但在图6的实施例中,设定各个运算器281-28n,以便执行不同种类的运算。因此,如果对于例如每个程序ROM的机种(游戏名称)、或者每个版本,根据运算器选择码c0-cX选择不同的运算器,则进一步增加图2说明的程序分析的困难性。因此,使非法利用更困难。
在这种图6的实施例中,还有其它的优点。即如图2的实施例所示,在1个芯片上仅形成1个运算器,在根据机种和版本变更这种运算器的场合,当程序ROM是例如屏蔽ROM时,每次运算器的变更都必须变更烧结屏蔽。对此,如图6所示,如果预先组合多个运算器281-28n,则能仅变化运算器选择码,就能选择运算器、即运算的种类。另一方面,因运算器选择码能用与地址运算码相同的烧结工序设定,所以在图6的实施例中,在变更运算器的场合,能廉价地制作程序ROM。
在图6的实施例中,也因选择器30在供给控制信号时选择输入X,在不供给控制信号时选择输入Y,所以对应于控制信号的有无,输出第1地址数据或者第2地址数据。此外,在图6中,也用括号示出了修饰处理地址数据A0-A15的全部位的场合。其中,这种动作因为由前述图2的实施例的说明容易地理解,所以省略其说明。
此外,在前述的实施例中,由地址处理单元24输出,在有控制信号时,用运算器28(281-28n)运算一部分或者全部后的地址数据(第2地址数据),在没有控制信号时,原样地选择并输出由CPU12供给的地址数据(第1地址数据)。其中,也可以在没有控制信号时,也可以输出对第1地址数据进行与第2地址数据不同的第2运算后的第3地址数据。
图7示出了这种实施例。在图7的实施例中,除设置与图2的实施例相同的运算器28和选择器30外,还在地址处理单元24中设置第2运算器28’。此外,在运算器28和28’的各自的一方输入上原样地供给来自CPU12的地址总线的地址数据A0-A15(第1地址数据)的下8位A0-A7。在运算器28和运算器28’的各自的另一方输入上共同地供给在码存储器26中设定的8位的地址运算码a0-a7。运算器28和28’能执行相互不同的第1种类的运算和第2种类的运算。
运算器28输出地址运算码a0-a7与下8位A0-A7的第1运算结果A0’-A7’,并提供给选择器30的一方输入X。运算器28’输出地址运算码a0-a7与下8位A0-A7的第2运算结果A0”-A7”,并提供给选择器30的另一方输入Y。由选择器30选择这种来自运算器28和28’的输入A0’-A7’或者A0”-A7”。
由CPU12将控制信号、例如写入信号提供给选择器30,同时提供给存储在码存储器26中的运算器选择码c0-cX。因此,选择器30在有这种控制信号时,选择运算器28的输出、即输入X,并输出由这种运算器28处理的下8位的地址数据A0’-A7’。此外,选择器30在没有这种控制信号时,选择运算器28’的输出、即输入Y,并输出由这种运算器28’处理的下8位的地址数据A0”-A7”。
另一方面,因为使地址数据A0-A15的上8位A8-A15原样地与选择器30的输出结合,所以其结果在有控制信号时,从选择器30、即地址处理单元24输出A0’-A7’+A8-A15的共计16位的地址数据(第2地址数据),在没有控制信号时,从选择器30、即地址处理单元24输出A0”-A7”+A8-A15的共计16位的地址数据(第3地址数据)。
其中,在这种图7的实施例中也可以如图7中的括号所示,根据运算器28和运算器28’,对地址数据A0-A15的全部位进行运算。
在图7的实施例中,来自CPU12的第1地址数据A0-A15不是正确读出CPU12正规执行的程序数据的地址数据。即,第1地址数据不过是假的地址数据。并且,第1运算器28和第2运算器28’的任何一方变更乃至变换第1地址数据A0-A15,以便正确的读出CPU12正规执行的程序数据。即,第2地址数据或者第3地址数据的中一方是正确的地址数据。
在图7的实施例中,在非法使用程序的场合,不仅对第1运算器28,而且对第2运算器28’也必须要分析,进一步增加了分析的困难性。
前述的实施例是在程序ROM18中设置地址处理单元24,加工乃至修饰提供给程序数据存储器22的地址的例子。但是,同样的考虑方法适用于从程序数据存储器22读出的程序数据,也能加工乃至修饰地址数据和输出程序数据。
图8示出了这种实施例。详细地说,在图8的实施例中,在程序ROM18中除程序数据存储器22外,包括图1所示的地址处理单元24和码存储器26,此外,设置接受由程序数据存储器22输出的程序数据并对这种程序数据进行规定的处理的输出数据处理单元32。具体地说,输出数据处理单元32执行与前述说明了的地址处理单元24相同的动作,处理乃至修饰由程序数据存储器22读出的程序数据。这种场合,将来自CPU12的控制信号提供给地址处理单元24和输出数据处理单元32,在图5的步骤S11中使地址处理单元24和输出数据处理单元32能动。
此外,在前述实施例中,都使用在与作为码发生装置的程序ROM18相同的芯片上形成的码存储器26。但是,这种码发生装置只要将任意的码(数据)提供给运算装置就可,也可以置换成例如利用直立式开关等提供任意数据的结构和从外部能换写存储任意数据的外附的刷新ROM等。
此外,在前述的实施例中,在假的程序的场合,虽然直接地结束程序的执行,但是在例如一定时间后强制结束,或者在游戏的场合换写主人公的参数,或者消去游戏的后备数据时,也能进行返回到游戏开始的状态的处理。
虽然详细地对本发明进行说明和图示,但这是作为简单的图解和一例而用,因此显然不能理解为一种限定,本发明的精神和范围仅由所附的权利要求来限定。

Claims (14)

1.一种半导体存储器,固定地存储由中央处理器执行的程序数据,并输出按照指定地址数据的地址的程序数据,其特征在于,包括:
固定地存储所述程序数据的程序数据存储器;
发生地址运算码的码发生装置;
接受由所述中央处理器输出的第1地址数据的地址处理装置;以及
输出来自所述程序数据存储器的程序数据的输出装置,
所述地址处理装置在有来自所述中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序数据存储器,在没有来自所述中央处理器的控制信号时,将所述第1地址数据提供给所述程序数据存储器,
所述程序数据存储器根据所述地址处理装置所提供的第1地址数据或第2地址数据向所述输出装置提供程序数据,
所述输出装置输出所述程序数据。
2.如权利要求1所述的半导体存储器,其特征在于,
所述地址处理装置包括:
用于对所述第1地址数据的至少一部分与所述地址运算码进行运算,并输出所述第2地址数据的运算装置;和
在提供所述控制信号时输出所述第2地址数据,并在不提供所述控制信号时输出所述第1地址数据的选择器。
3.如权利要求2所述的半导体存储器,其特征在于,
所述运算装置包括能分别执行不同种类的运算,并且各自接受所述第1地址数据以及所述地址运算码,分别输出不同的所述第2地址数据用的多个运算器,
所述码发生装置还发生选择所述多个运算器中的任意一个的运算器选择码,
所述选择器选择与根据所述运算器选择码选择的运算器相关的所述第2地址数据或者第1地址数据。
4.如权利要求1至3任一项所述的半导体存储器,其特征在于,
所述程序数据存储器包含命令根据所述中央处理器在程序执行中输出所述控制信号的特别程序数据。
5.如权利要求1所述的半导体存储器,其特征在于,
将所述程序数据存储器、所述码发生装置和所述地址处理装置,装载在单个半导体芯片上。
6.如权利要求1所述的半导体存储器,其特征在于,
用高速缓冲存储器,构成所述程序数据存储器和所述码发生装置。
7.一种半导体存储器,固定地存储由中央处理器执行的程序数据,并输出按照指定的地址数据的地址的程序数据,其特征在于,包括:
存储所述程序数据的程序数据存储器;
发生地址运算码的码发生装置;
接受由所述中央处理器输出的第1地址数据的地址处理装置;以及
输出来自所述程序数据存储器的程序数据的输出装置,
所述地址处理装置在有来自所述中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行第1运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序数据存储器,在没有来自所述中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行与所述第1运算不同的第2运算后输出新的第3地址数据,并将这种第3地址数据提供给所述程序数据存储器,
所述程序数据存储器根据所述地址处理装置所提供的所述第2地址数据或第3地址数据向所述输出装置提供程序数据,
所述输出装置输出所述程序数据。
8.如权利要求7所述的半导体存储器,其特征在于,
所述地址处理装置的第1和第2运算的任何一方,将所述第1地址数据变换成用于应该在所述中央处理器中正规执行并输出程序数据的地址数据。
9.一种程序判别系统,包括固定存储程序数据的读出专用的程序存储器,和从所述程序存储器读出程序数据并执行程序、同时判别所述程序是否正规的中央处理器,其特征在于,
所述程序存储器包括:
固定地存储所述程序数据的程序数据存储器;
发生地址运算码的码发生装置;
接受由所述中央处理器输出的第1地址数据的地址处理装置;以及
输出来自所述程序数据存储器的程序数据的输出装置,
所述地址处理装置在有来自中央处理器的控制信号时,根据所述地址运算码,对所述第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序数据存储器,在没有提供来自中央处理器的控制信号时,将所述第1地址数据提供给所述程序数据存储器,
所述程序数据存储器根据所述地址处理装置所提供的第1地址数据或第2地址数据向所述输出装置提供程序数据,
所述输出装置输出所述程序数据,
所述中央处理器包括:
将所述控制信号提供给所述地址处理装置的控制信号提供装置;
紧接着提供所述控制信号,输出所述第1地址数据并提供给所述地址处理装置的地址输出装置;和
判断按照所述第2地址数据从所述程序数据存储器读出的程序数据与预先设定的检查数据是否一致,并判断所述程序存储器的真假的判断装置。
10.如权利要求9所述的程序判别系统,其特征在于,
所述控制信号提供装置包含在所述程序存储器中预先设定的程序,并在读出所述程序时提供所述控制信号。
11.如权利要求9或10所述的程序判别系统,其特征在于,
所述中央处理器还包括在所述判断装置的判断结果为假的程序存储器时,强制地结束程序的程序强制结束装置。
12.一种半导体存储器的地址控制方法,所述半导体存储器包含固定地存储由中央处理器执行的程序数据的程序ROM,其特征在于,所述方法包括下述步骤:
发生地址运算码;
在有来自中央处理器的控制信号时,根据所述地址运算码,对由所述中央处理器输出的第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序ROM;
在没有来自中央处理器的控制信号时,将所述第1地址数据提供给所述程序ROM。
13.一种半导体存储器的地址控制方法,所述半导体存储器包含固定地存储由中央处理器执行的程序数据的程序ROM,其特征在于,所述方法包括下述步骤:
发生地址运算码;
在有来自所述中央处理器的控制信号时,根据所述地址运算码,对由所述中央处理器输出的第1地址数据的一部分进行第1运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序ROM;
在没有来自所述中央处理器的控制器信号时,根据所述地址运算码,对所述第1地址数据的一部分进行与所述第1运算不同的第2运算后输出新的第3地址数据,并将这种第3地址数据提供给所述程序ROM。
14.一种信息处理装置的程序判别方法,所述信息处理装置包括固定存储程序数据的读出专用的程序存储器,和从所述程序存储器读出程序数据并执行程序的中央处理器,其特征在于,所述方法包括下述步骤:
(a)发生地址运算码;
(b)从所述中央处理器输出控制信号;
(c)紧接着所述步骤(b)从所述中央处理器输出第1地址;
(d)在有控制信号时,根据所述地址运算码,对第1地址数据的一部分进行运算后输出新的第2地址数据,并将这种第2地址数据提供给所述程序存储器;
在没有所述控制信号时,将所述第1地址数据提供给所述程序存储器;
(e)在所述中央处理器中,判断按照所述第2地址数据从所述程序存储器读出的程序数据与预先设定的检查数据是否为一致。
CNB011033037A 2000-01-25 2001-01-22 半导体存储器及其地址控制方法、程序判别系统和方法 Expired - Fee Related CN1286021C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000015227A JP2001209531A (ja) 2000-01-25 2000-01-25 半導体記憶装置およびプログラム判別システム
JP015227/00 2000-01-25
JP015227/2000 2000-01-25

Publications (2)

Publication Number Publication Date
CN1316697A CN1316697A (zh) 2001-10-10
CN1286021C true CN1286021C (zh) 2006-11-22

Family

ID=18542560

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011033037A Expired - Fee Related CN1286021C (zh) 2000-01-25 2001-01-22 半导体存储器及其地址控制方法、程序判别系统和方法

Country Status (7)

Country Link
US (1) US6578132B1 (zh)
JP (1) JP2001209531A (zh)
KR (1) KR100591444B1 (zh)
CN (1) CN1286021C (zh)
DE (1) DE10103222B4 (zh)
GB (1) GB2366025B (zh)
TW (1) TW587210B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10115118A1 (de) * 2001-03-27 2002-10-10 Philips Corp Intellectual Pty Verfahren zur Übertragung von Daten über einen Datenbus
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
US7350081B1 (en) 2002-04-29 2008-03-25 Best Robert M Secure execution of downloaded software
TWI243994B (en) * 2003-09-08 2005-11-21 Mediatek Inc Method and apparatus for protecting a specific memory section
JP4364077B2 (ja) * 2004-06-30 2009-11-11 富士通株式会社 演算装置及び演算装置の制御方法
US11266911B1 (en) 2020-09-21 2022-03-08 Nintendo Co., Ltd. Systems and method for identifying modified program data

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2820938B2 (ja) 1988-07-21 1998-11-05 任天堂株式会社 外部メモリとそれを用いる情報処理装置
JP2885600B2 (ja) * 1993-03-29 1999-04-26 株式会社東芝 半導体集積回路
JP3625340B2 (ja) * 1996-09-19 2005-03-02 株式会社東芝 セキュリティシステム
JPH1165936A (ja) * 1997-06-12 1999-03-09 Oki Micro Design Miyazaki:Kk メモリ装置
KR100253310B1 (ko) * 1997-08-26 2000-05-01 김영환 반도체 메모리 장치의 프로그램 데이타 보호 회로
KR100253328B1 (ko) * 1997-09-30 2000-05-01 김영환 메모리의 데이터 보호회로
JP3793629B2 (ja) * 1997-10-30 2006-07-05 沖電気工業株式会社 メモリカードとメモリカード装置
KR100295647B1 (ko) * 1998-03-28 2001-08-07 김영환 메모리데이터보호회로
JP2000082010A (ja) * 1998-09-04 2000-03-21 Sharp Corp アドレス変換を有するデータ処理方法および装置
KR200312371Y1 (ko) * 1998-10-29 2003-07-16 주식회사 하이닉스반도체 불휘발성 메모리의 프로그램 프로텍션장치

Also Published As

Publication number Publication date
GB2366025B (en) 2004-07-21
CN1316697A (zh) 2001-10-10
TW587210B (en) 2004-05-11
GB0101741D0 (en) 2001-03-07
KR100591444B1 (ko) 2006-06-22
DE10103222B4 (de) 2008-11-20
DE10103222A1 (de) 2001-07-26
JP2001209531A (ja) 2001-08-03
KR20010076275A (ko) 2001-08-11
US6578132B1 (en) 2003-06-10
GB2366025A (en) 2002-02-27

Similar Documents

Publication Publication Date Title
CN86102265A (zh) 随机存取存贮器的快速功能测试法及其系统
CN1522405A (zh) 数据处理设备和同步数据处理设备中的第一与第二处理装置的方法
CN1196524A (zh) 存储器存取控制电路
CN1320465C (zh) 数据载体的微处理器电路及组织存取内存数据的方法
CN1495620A (zh) 有加密部分或外部接口的半导体器件及内容再生方法
CN1286021C (zh) 半导体存储器及其地址控制方法、程序判别系统和方法
CN1567362A (zh) 动态逻辑分区并控制访问权限的ic智能卡及其实现方法
CN1288566C (zh) 写入控制器结构中nv存储器的方法和系统
CN1252140A (zh) 采用存储器监视信号出现预定断点条件的数字电路
US20090027407A1 (en) Data access tool for programmable graphics hardware
CN1172228C (zh) 数据处理装置及其数据处理方法
CN1148656C (zh) 面向线程的调试
US6600493B1 (en) Allocating memory based on memory device organization
CN1295778C (zh) 一种验证芯片硬件行为与软件模拟行为的一致性的方法
JP2003299862A (ja) 遊技機制御用チップ及び遊技機制御方法
CN1532713A (zh) 非易失性存储器的存取控制系统
CN115630054A (zh) 一种数据修复的方法、装置及电子设备
CN112416733A (zh) 一种内存检测方法、内存检测装置及智能设备
US20090119424A1 (en) Method for storing data
CN1189901A (zh) 使得固化程序能够改变的方法和装置
CN1619512A (zh) 微型计算机
US20080059730A1 (en) Firmware component modification
US12086899B2 (en) Graphics processing unit with selective two-level binning
CN1749908A (zh) 信息处理设备
KR102774893B1 (ko) 전자 장치 및 이의 제어 방법

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061122

Termination date: 20130122

CF01 Termination of patent right due to non-payment of annual fee