JP2001222423A - 半導体記憶装置およびプログラム判別システム - Google Patents

半導体記憶装置およびプログラム判別システム

Info

Publication number
JP2001222423A
JP2001222423A JP2000034485A JP2000034485A JP2001222423A JP 2001222423 A JP2001222423 A JP 2001222423A JP 2000034485 A JP2000034485 A JP 2000034485A JP 2000034485 A JP2000034485 A JP 2000034485A JP 2001222423 A JP2001222423 A JP 2001222423A
Authority
JP
Japan
Prior art keywords
program
data
program data
output
control signal
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.)
Granted
Application number
JP2000034485A
Other languages
English (en)
Other versions
JP4594475B2 (ja
Inventor
Masaru Shimomura
勝 下村
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
Priority to JP2000034485A priority Critical patent/JP4594475B2/ja
Priority to TW089126552A priority patent/TW509844B/zh
Priority to CN01104578.7A priority patent/CN1309356A/zh
Publication of JP2001222423A publication Critical patent/JP2001222423A/ja
Application granted granted Critical
Publication of JP4594475B2 publication Critical patent/JP4594475B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【構成】 プログラムROMに含まれる出力データ処理
部24の演算器28は、プログラムデータ記憶部から読
み出された第1プログラムデータの下位4ビットD0〜
D3と、同じくプログラムROMに含まれるコード記憶
部26に設定されている4ビットのアドレス演算コード
d0〜d3とを演算し、演算結果D0´〜D3´を出力
する。選択器30がD0〜D3をD0´〜D3´に置き
換え、したがって、出力データ処理部24からは、D0
´〜D3´+D4〜D7の合計8ビットの第2プログラ
ムデータが出力される。 【効果】 プログラムデータだけを復元しても、出力デ
ータ処理部24やコード記憶部26がない場合、プログ
ラムデータの修飾処理が実行できないので、プログラム
を実行することはできない。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は半導体記憶装置お
よびそれを用いるプログラム判別システムに関し、特に
たとえばゲーム機用カートリッジのような、プログラム
を記憶しているROM等の半導体記憶装置とそのプログ
ラム判別システムに関する。
【0002】
【従来の技術】たとえばゲーム機用カートリッジは、ゲ
ームプログラムをROMのような半導体記憶装置に書き
込んでおき、使用に際して、ゲーム機本体に装着され
る。特にこのようなゲーム機用カートリッジの場合、記
憶内容であるゲームプログラムを不正にコピーした偽物
が横行する。
【0003】そこで、本件出願人は、先に、たとえば特
開平2−31256号公報[G06F 12/14]に
開示したように、真偽を判別して、真正なカートリッジ
ではない場合、プログラムメモリへのアクセスを禁止す
るようにすることによって、ゲームプログラムや他のプ
ログラムの不正な複製やデータの改変を防止できるシス
テムを提案した。
【0004】この先行技術は、「アドレスデコード方
式」を用いて、プログラムメモリから実際に読み出した
データを用いて真偽を判別するようにしているので、一
定以上の高い信頼性で、偽物を排除できる。
【0005】
【発明が解決しようとする課題】しかしながら、上で挙
げた先行技術では、多数のアドレスをデコードする必要
があるので、ゲート数が多くなり、チップサイズが大き
くなってしまうばかりでなく、デコードすべきアドレス
が解析されてしまえば、不正利用のプロテクト効果を失
うというさらに解決すべき問題があった。
【0006】それゆえに、この発明の主たる目的は、解
析を困難にしてプロテクト効果を長続きさせることがで
きる、半導体記憶装置およびそれを用いるプログラム判
別システムを提供することである。
【0007】
【課題を解決するための手段】この発明に従った半導体
記憶装置は、中央処理装置によって実行されるプログラ
ムデータを固定的に記憶するとともに、指定されたアド
レスデータに従ってプログラムデータを出力する半導体
記憶装置であって、プログラムデータを固定的に記憶す
るプログラムデータ記憶手段、データ演算コードを発生
するコード発生手段、およびアドレスデータに従ってプ
ログラムデータ記憶手段から読み出された第1プログラ
ムデータを受ける出力データ処理手段を備え、出力デー
タ処理手段は、制御信号が与えられたときにデータ演算
コードに基づいて第1プログラムデータの少なくとも一
部に演算を施した新たな第2プログラムデータを出力
し、制御信号が与えられないときに第1プログラムデー
タを出力する、半導体記憶装置である。
【0008】具体的には、出力データ処理手段は、第1
プログラムデータの少なくとも一部とデータ演算コード
とを演算して第2プログラムデータを出力することがで
きる演算手段、および制御信号が与えられたとき第2プ
ログラムデータを出力しかつ制御信号が与えられないと
き第1プログラムデータを出力する選択器を備える。
【0009】この場合、演算手段はそれぞれ異なる種類
の演算を実行できるかつそれぞれが第1プログラムデー
タおよびデータ演算コードを受けてそれぞれ異なる第2
プログラムデータを出力することができる複数の演算器
を含み、コード発生手段はさらに複数の演算器のいずれ
かを選択する演算器選択コードを発生し、選択器は演算
器選択コードによって選択された演算器に関連する第2
プログラムデータ、または第1プログラムデータを選択
するようにしてもよい。
【0010】この発明の他の局面では、半導体記憶装置
は、プログラムデータを固定的に記憶するプログラムデ
ータ記憶手段、データ演算コードを発生するコード発生
手段、およびプログラム記憶手段から出力された第1プ
ログラムデータを受ける出力データ処理手段を備え、出
力データ処理手段は、中央処理装置から制御信号が与え
られたときにデータ演算コードに基づいて第1プログラ
ムデータの少なくとも一部に第1の演算を施した新たな
第2プログラムデータを出力し、制御信号が与えられな
いときにデータ演算コードに基づいて第1プログラムデ
ータの少なくとも一部に第1の演算とは異なる第2の演
算を施した新たな第3プログラムデータを出力する、半
導体記憶装置である。
【0011】このとき、出力データ処理手段の第1およ
び第2の演算のいずれか一方は、第1プログラムデータ
を、中央処理装置で正規に実行すべきプログラムデータ
に変換する。
【0012】この発明に従ったプログラム判別システム
は、プログラムデータを固定的に記憶するプログラム記
憶装置と、プログラム記憶装置からプログラムデータを
読み出してプログラムを実行するとともにプログラムが
正規のものであるか否かを判別する中央処理装置とを備
えたプログラム判別システムであって、プログラム記憶
装置は、プログラムデータを固定的に記憶するプログラ
ムデータ記憶手段、データ演算コードを発生するコード
発生手段、および中央処理装置から出力されたアドレス
データに従ってプログラム記憶手段から読み出された第
1プログラムデータを受ける出力データ処理手段を備
え、出力データ処理手段は、中央処理装置から制御信号
が与えられたときにデータ演算コードに基づいて第1プ
ログラムデータの少なくとも一部に演算を施した新たな
第2プログラムデータを出力してその第2プログラムデ
ータを中央処理装置に与え、制御信号が与えられないと
きに第1プログラムデータを中央処理装置に与え、中央
処理装置は、プログラム記憶装置の出力データ処理手段
に制御信号を与える制御信号付与手段、制御信号を与え
た直後にアドレスデータを出力してプログラムデータ記
憶手段に与えるアドレス入力手段、および第2プログラ
ムデータと予め設定されているチェックデータとが所定
の関係にあるか否かを判断してプログラム記憶装置の真
偽を判別する判断手段を備える。
【0013】中央処理装置は、判断手段の判断の結果が
偽のプログラム記憶装置であることを示すとき、プログ
ラムを強制的に終了させるプログラム強制終了手段をさ
らに備える。
【0014】
【作用】半導体記憶装置においては、プログラムデータ
記憶手段から読み出された特別プログラムデータに応答
して中央処理装置から出力される制御信号が出力データ
処理手段に与えられたとき、出力データ処理手段は、コ
ード発生手段からのデータ演算コードに基づいて第1プ
ログラムデータの全ビットまたは一部のビットに演算を
施した第2プログラムデータを出力して、その第2プロ
グラムデータをたとえば中央処理装置に与える。具体的
には、出力データ処理手段の演算手段が第1プログラム
データとデータ演算コードとを演算して第2プログラム
データを出力し、選択器が制御信号に応答して第2プロ
グラムデータを出力する。したがって、出力データ処理
手段からは、制御信号に応答して、中央処理装置から出
力されたアドレスデータに従って読み出された第1プロ
グラムデータではなく、その第1プログラムデータを修
飾処理した第2プログラムデータが出力される。
【0015】中央処理装置では、第2プログラムデータ
が予め設定してあるチェックデータと一致するかどうか
判断手段で判断する。両データが一致すると、判断手段
は、そのときの半導体記憶装置(プログラムROM)が
真正なものであると判断する。両データが不一致のとき
には、半導体記憶装置は偽物であるので、プログラムを
強制的に終了する。
【0016】したがって、プログラムデータ記憶手段に
格納されているすべてのプログラムデータをコピーした
としても、この発明の出力データ処理手段がない場合に
は、プログラムチェックの結果偽物と判断されるので、
プログラムの実行は不可能である。
【0017】なお、出力データ処理手段にそれぞれ異な
る種類の演算を実行できる複数の演算器を設けた場合に
は、選択器はコード発生手段から出力される演算器選択
コードによって選択された演算器からの第2プログラム
データを選択することになる。
【0018】また、制御信号があるとき第1プログラム
データを第1の演算で処理した第2プログラムデータを
出力し、制御信号がないとき第1プログラムデータを第
2の演算で処理した結果である第3プログラムデータを
出力するようにしてもよい。この場合、出力データ処理
手段の第1および第2の演算のいずれか一方が、第1プ
ログラムデータを中央処理装置で正規に実行すべきプロ
グラムデータに変換する。つまり、第2プログラムデー
タまたは第3プログラムデータが正規のプログラムデー
タである。
【0019】
【発明の効果】この発明によれば、プログラムデータ記
憶手段のすべてのプログラムデータをコピーしただけで
は、出力データ処理手段における演算手段や演算コード
などのすべての要素が解析できなければ、そのプログラ
ムデータを真正品と同様には実行できないので、プログ
ラムの不正利用を有効に防止できる。
【0020】また、演算手段における演算の種類やデー
タ演算コードあるいは演算器を指定する演算器選択コー
ドなどの要素を機種毎にあるいはバージョン毎に変更す
るようにすれば、ある1つのプログラム記憶装置の全要
素が解析できたとしても、その解析結果を別のプログラ
ム記憶装置にそのまま適用できないので、不正に利用し
ようとする者は、変更の都度新たに解析する必要があ
る。解析に膨大な時間と設備が必要なことを考えれば、
この発明によって、プログラムの不正利用を実質的にで
きなくすることができる。
【0021】この発明の上述の目的,その他の目的,特
徴,および利点は、図面を参照して行う以下の実施例の
詳細な説明から一層明らかとなろう。
【0022】
【実施例】図1に示すこの発明の一実施例の情報処理装
置10は、中央処理装置であるCPU12を含み、この
CPU12に、出力装置である表示装置14および入力
装置である操作入力装置16が接続される。情報処理装
置10はプログラム判別システムを構成し、その情報処
理装置10がゲーム装置である場合、操作入力装置16
はゲームコントローラであり、ジョイスティックや十字
キーあるいは各種操作ボタンを含み、ゲーム装置に搭載
されたCPU12は、そのような操作入力装置16の操
作に応答して、プログラムROM18に記憶されている
ゲームプログラムを処理することによって、たとえばテ
レビジョンモニタや液晶ディスプレイである表示装置1
4にゲーム画像を表示する。なお、CPU12に接続さ
れたワークメモリ20は、たとえばCPU12の内部R
AMや外付けRAM等で構成され、上述のプログラム処
理の過程において必要に応じて利用されるとともに、後
述のプログラム真偽判別のためのチェック用プログラム
およびチェックデータを一時的に格納するために利用さ
れる。ワークメモリ20とCPU12の内部RAMとを
利用することで、プログラムの解析をより困難にするこ
とができる。
【0023】半導体記憶装置あるいはプログラム記憶装
置として機能するプログラムROM18は、たとえばP
ROM,フラッシュROM,EPROM,EEPROM
等のプログラムデータを固定的に記憶しておく読出し専
用半導体メモリである。このプログラムROM18は、
従来のプログラムROMと呼ばれるものに相当するメモ
リコアであるプログラムデータ記憶部22に加えて、さ
らに出力データ処理部24およびコード記憶部26を含
む。そして、この実施例では、プログラムデータ記憶部
22,出力データ処理部24およびコード記憶部26
は、同じ半導体チップ上に設けられる。そして、アドレ
スバスを通じてCPU12から出力されたアドレスデー
タはプログラムデータ記憶部22に与えられる。プログ
ラムデータ記憶部22は、そのアドレスデータに従って
プログラムデータを読み出し、出力データ処理部24に
与える。出力データ処理部24は、プログラムデータ記
憶部22から読み出されたプログラムデータを処理し
て、それをデータバスを通してCPU12に出力する。
【0024】なお、出力データ処理部24は、後に説明
するように、制御バスを通じてCPU12から与えられ
る制御信号とコード記憶部26から与えられるコード
(データ)とに基づいて、出力プログラムデータを処理
する。
【0025】図2に出力データ処理部24の具体的な一
例が示される。図2に示すように、出力データ処理部2
4は、演算手段として機能する演算器28と、選択器3
0とを含む。演算器28は、プログラムROM18のチ
ップ内に形成されたもので、たとえば乗算器,除算器,
減算器,加算器,シフトレジスタあるいはその他の簡単
な論理演算器(たとえばAND,NAND,OR,NO
R,EX-OR等)である。
【0026】プログラムデータ記憶部22から読み出さ
れたたとえば8ビットの第1プログラムデータD0〜D
7内の上位4ビットD4〜D7はそのまま選択器30の
出力データと合成され、下位4ビットD0〜D3は演算
器28の一方入力および選択器30の一方入力(Y)と
して与えられる。演算器28の他方入力には、コード発
生手段として機能するコード記憶部26に設定されてい
る4ビットのデータ演算コードd0〜d3が与えられ
る。演算器28は、2つの入力について上述の種類のい
ずれかの演算を実行し、その出力が選択器30の他方入
力(X)として与えられる。たとえば演算器28がAN
Dであった場合、演算器28は、データ演算コードd0
〜d3と下位4ビットD0〜D3との論理積の結果D0
´〜D3´を出力して選択器30の上述の他方入力に与
える。
【0027】選択器30には、先に述べた制御信号、た
とえば書き込み信号がCPU12から与えられる。した
がって、選択器30は、その制御信号すなわち書き込み
信号に応答して他方入力(X)を選択し、第1プログラ
ムデータD0〜D7内の下位4ビットD0〜D3を演算
結果D0´〜D3´に置き換えて出力する。プログラム
データ記憶部22から読み出された第1プログラムデー
タD0〜D7の上位4ビットD4〜D7は上述のように
そのまま選択器30の出力に結合されているので、結果
的に、選択器30すなわち出力データ処理部24から
は、D0´〜D3´+D4〜D7の合計8ビットの第2
プログラムデータが出力される。
【0028】なお、CPU12から書き込み信号が選択
器30に与えられていないときには、選択器30では、
一方入力(Y)が選択されているので、プログラムデー
タの下位4ビットD0〜D3がそのまま選択器30から
出力され、結果的に、出力データ処理部24からは、D
0〜D3+D4〜D7の合計8ビットのプログラムデー
タすなわち第1プログラムデータがそのまま出力され
る。
【0029】このようにして、後述の図5のステップS
12では、CPU12へは、第1プログラムデータD0
〜D7ではなく、第2プログラムデータD0´〜D3´
+D4〜D7が出力される。一方、出力データ処理部2
4がない偽プログラムROMの場合には、プログラムデ
ータ記憶部22から読み出されたままの第1プログラム
データD0〜D7がCPU12へ出力される。したがっ
て、前者の場合にCPU12へ入力される第2プログラ
ムデータは予め設定しているチェックデータと一致する
が、後者の場合の第1プログラムデータはチェックデー
タと一致しない。
【0030】なお、図2の実施例では、プログラムデー
タの下位4ビットだけを演算器28において演算コード
と演算し、上位4ビットはそのまま出力するようにし
た。しかしながら、第1プログラムデータの全8ビット
を演算器28で演算するようにしてもよい。この場合、
図2において括弧書きで示されているように、プログラ
ムデータ記憶部22から読み出したままの第1プログラ
ムデータD0〜D7の全8ビットがそのまま演算器28
の一方入力に与えられ、他方入力にはコード記憶部26
からの8ビットのデータ演算コードd0〜d7が与えら
れる。したがって、演算器28からは、すべてのビット
が修飾処理された第2プログラムデータD0'〜D7'が
出力され、この第2プログラムデータD0'〜D7'が選
択器30の入力(X)として与えられ、選択器30の入
力(Y)としては第1プログラムデータD0〜D7が与
えられる。したがって、選択器30からは、制御信号が
あるとき第2プログラムデータD0'〜D7'が出力さ
れ、制御信号がないとき第1プログラムデータD0〜D
7が出力される。したがって、図5のステップS13で
は、第2プログラムデータD0'〜D7'の適否が判断さ
れる。
【0031】図1のCPU12は、図3に示すメモリマ
ップを有し、たとえば「0000h〜DFFFh」のメ
モリ空間がプログラムROM18に割り当てられたプロ
グラム領域であり、「E000h〜FFFFh」がワー
クメモリ20に割り当てられたワーク領域である。
【0032】プログラムROM18のプログラムデータ
記憶部22は上述のプログラム領域の一部であり、プロ
グラム領域には、さらにプログラム常駐エリア,チェッ
ク用プログラムエリアおよびチェック開始命令エリアが
設定されている。チェック用プログラムエリアに格納さ
れているチェック用プログラムは、後述の図4および図
5のフロー図で実現できるものである。
【0033】また、チェック用プログラムには、1つま
たは複数のチェックデータが設定されている。このチェ
ックデータは、チェック用プログラムを実行したときの
結果が示すデータと比較してプログラムの真偽を判別す
るためのデータである。たとえば、この実施例では、プ
ログラムの真偽を1回だけチェックする場合について説
明するので、図3に図示するようにチェック用プログラ
ム内に1つのチェックデータを設定しているが、単一の
チェックデータを利用するチェック用プログラムを起動
させるチェック開始命令を本体プログラム(たとえばゲ
ームプログラム)内の複数箇所に設定したり、複数のチ
ェックデータを利用する複数のチェック用プログラムを
それぞれ起動させるチェック開始命令を複数箇所に設定
することによって、プログラムの真偽を複数回チェック
させて、プログラムの解析の困難性を高めることができ
る。
【0034】さらに、チェック用プログラムが比較的小
さい(たとえば数から数十バイト)場合には、チェック
開始命令の代わりに、本体プログラム内の複数箇所にチ
ェック用プログラムを設定することが、チェック用プロ
グラムの解析の困難性を高める上でより好ましい。
【0035】図4を参照して、情報処理装置10(図
1)の電源(図示せず)をオンすると、CPU12によ
って、ステップS1がまず実行される。このステップS
1では、CPU12は、プログラムROM18(図1)
の出力データ処理部24から出力されるプログラムデー
タを読み込む。このとき、このとき、CPU12は制御
信号を出力していないので、出力データ処理部24から
は、プログラムデータ記憶部22から出力された第1プ
ログラムデータ前記がそのまま出力される。CPU12
は、その第1プログラムデータを読み込む。そして、そ
の第1プログラムデータがプログラムの真偽チェックの
実行を指示する特別プログラムデータであるかどうか
が、ステップS2で判断される。
【0036】ステップS2で“NO”、つまりそのとき
のプログラムデータが真偽チェックを命令するものでな
かったときは、ステップS3でそのときのプログラムデ
ータに従った処理を実行する。ステップS3の後ステッ
プS4において、CPU12は、プログラムの終了かど
うかを判断し、もし“YES”であればそのまま終了
し、“NO”であれば、先のステップS1に戻る。この
ようにして、ステップS1〜S4を繰り返すことによ
り、プログラムデータ記憶部22に記憶されているプロ
グラムを順次実行する。この状態においては、アドレス
処理部22の選択器30には制御信号(たとえば書き込
み信号)が付与されていないので、選択器30では入力
(Y)が選択された状態で保持されている。したがっ
て、CPU12から出力された第1プログラムデータが
そのままプログラム記憶部22に与えられる。
【0037】ステップS1〜S4を繰り返すことによっ
てプログラムに含まれる各命令を順次実行している途中
に、チェック用プログラムを実行するための命令がCP
U12に入力されると、そのことがステップS2で判断
されて、ステップS5に進む。その命令すなわち特別プ
ログラムデータが図3に示すようにたとえばアドレス
「030Eh」に設定されている場合には、CPU12
は、アドレスがこの「030Eh」まできたときに、ス
テップS5に進むことになる。
【0038】ステップS5では、CPU12は、図2に
示すプログラム領域に設定されているチェック用プログ
ラムおよびチェックデータを読み込んで、ワークメモリ
20に書き込む(複製する)。したがって、ステップS
6は、ワークメモリ20に複製されたチェック用プログ
ラムおよびチェックデータに従って、実行される。ただ
し、このワークメモリ20に複製されたチェック用プロ
グラムは、チェック終了後、ワークメモリ20から消去
される。
【0039】ステップS6のサブルーチンの詳細を図5
に示す。図5のステップS11では、CPU12は、ま
ず、制御バスを介して制御信号を発生して、図1に示す
プログラムROM18に含まれる出力データ処理部24
を能動化する。具体的には、CPU12は、制御バスを
通してプログラムROM18の選択器30に書き込み信
号(制御信号)を与える。ROM内のプログラムを実行
中に書き込み信号がROM(読出し専用メモリ)に与え
られることは通常ないので、その信号をプログラムRO
M18に出力することによって、出力データ処理部24
の選択器30における入力(X)を選択させることにし
ている。このステップS11が制御信号付与手段を構成
する。
【0040】続くステップS12では、CPU12は、
プログラムROM18のプログラムデータ記憶部22を
読み出すためのアドレスデータを出力する。つまり、ス
テップS11で制御信号を出力した直後に、アドレス入
力手段として機能するステップS12で任意のアドレス
データがCPU12からアドレスバスを通してプログラ
ムデータ記憶部22に入力される。プログラムデータ記
憶部22は、そのアドレスデータに従ってプログラムデ
ータを読出し、それを出力データ処理部24に与える。
出力データ処理部24には先に制御信号が与えられてい
るので、出力データ処理部24は、第1プログラムを先
に図2実施例で説明したようにして処理し、その処理結
果である第2プログラムデータをCPU12に与えるこ
とになる。
【0041】そして、ステップS13では、CPU12
は、出力データ処理部24で処理された第2プログラム
データが正しい値であるかどうか判断する。すなわち、
ステップS13は判断手段を構成し、ワークメモリ20
に読み出されているチェックデータと、そのときの第2
プログラムデータとが比較され、両者が一致するかどう
か判断する。出力データ処理部24で所定の法則に従っ
て処理された第2プログラムデータは、予め設定してい
るチェックデータと一致する筈である。したがって、こ
の場合、“YES”となる。しかしながら、出力データ
処理部24が設けられていない偽物のプログラムROM
である場合、または出力データ処理部24に相当するも
のが存在していても出力プログラムデータ処理が所定の
法則に則っていない偽物プログラムROMの場合には、
このステップS13では“NO”と判断される。
【0042】そして、ステップS13で“YES”と判
断された真正プログラムROMの場合には、通常のプロ
グラム処理にリターンする。他方、“NO”と判断され
た偽プログラムROMの場合、次のステップS14にお
いて、CPU12は、表示装置14(図1)にたとえば
「このプログラムROM(カートリッジ)は偽物であ
り、本機では使用できません。」のような警告メッセー
ジを表示するとともに、ステップS15でプログラムを
強制的に終了する。したがって、偽物の場合、それ以上
のプログラムの続行処理が不可能となる。つまり、ステ
ップS14およびS15がプログラム強制終了手段に該
当する。
【0043】なお、上の説明では、判断手段であるステ
ップS13で、第2プログラムデータと予め設定してい
るチェックデータとが一致するかどうか比較している
が、両者が必ずしも一致する必要はなく、両者が予め設
定している所定の関係にあればよい。たとえば、一方が
他方に比べて一定数だけ大きいかまたは小さいかの関
係、あるいは一方(および/または他方)に一定の演算
を施したとき両者が一致する関係、あるいは両者の絶対
値が等しい関係等、任意の所定関係を設定することがで
きる。
【0044】図2実施例においても、プログラムデータ
は適宜の設備を用いればプログラムデータ記憶部22か
ら完全な形でプログラムデータを読出し、それをコピー
できる。しかしながら、図2実施例では、プログラムデ
ータ記憶部22からプログラムデータを吸い上げてプロ
グラムデータを復元するだけでは、そのプログラムデー
タを真正品と同様には、実行できない。
【0045】つまり、プログラムデータだけを復元して
も、このプログラムROM18のプログラムデータを不
正に利用する者のメモリに出力データ処理部24やコー
ド記憶部26がない場合、プログラムチェックを指示す
るプログラムデータが読み出されても、上述のプログラ
ムデータの修飾処理が実行できないので、未修飾の第1
プログラムデータD0〜D7がそのままCPU12に入
力される。したがって、そのチェック命令があっても、
第1プログラムデータD0〜D7がそのままCPU12
に入力されることになる。この場合の第1プログラムデ
ータは、図2実施例で得られた第2プログラムデータD
0´〜D3+D4〜D7とは異なる。したがって、ステ
ップS13で予め設定されているチェックデータとの比
較において、不一致となってしまう。この不一致の判別
結果が得られると、ステップS13で“NO”が判断さ
れるので、プログラムが強制的に終了されてしまう。
【0046】そのようなプログラムの強制終了を回避す
るようにするためには、図4のステップS2でチェック
開始を指令する特別プログラムデータおよびそれのプロ
グラムステップ(アドレス)を解析し、さらに演算器2
8における演算の種類やデータ演算コードおよびチェッ
クプログラムに設定するチェックデータ(図2)等のす
べての要素を解析しなければならない。たとえばマスク
ROM等でプログラムROM18を作った場合、そのよ
うな解析は困難で、解析にはかなり大掛かりな設備と長
時間を要する。他方、演算器における演算の種類やデー
タ演算コード等の要素をたとえばプログラムROMの機
種、ゲームカートリッジでいえばゲームタイトル毎、さ
らには同じ機種(ゲームタイトル)でもバージョン毎に
変更するようにすれば、ある1つのプログラムROMの
全てのセキュリティ要素が解析されたとしても、その解
析結果を別のプログラムROMにそのまま適用できない
ので、不正に利用しようとする者は、その都度新たに全
要素を解析する必要がある。したがって、この実施例に
よれば、解析に膨大な時間や費用がかかることを考慮す
れば、プログラムROMの不正利用を実質的にできなく
することができる。
【0047】図6は図2実施例の変形例であり、図6実
施例では、出力データ処理部24の演算手段は、複数
(n個)の演算器281〜28nを含む。各演算器28
1〜28nのそれぞれの一方入力にプログラムデータ記
憶部22から読み出された第1プログラムデータの下位
4ビットD0〜D3が与えられ、それぞれの他方入力に
は、コード記憶部26から出力される4ビットのデータ
演算コードd0〜d3が共通に与えられる。さらに、コ
ード記憶部26に設定されている演算器選択コードc0
〜cXが制御信号とともに、選択器30に与えられる。
演算器選択コードc0〜cXのビット数は、演算器の個
数nに応じて設定され、4つの演算器28がある場合に
は、2ビットであり、8つの場合は3ビットでよい。そ
して、演算器選択コードc0〜cXは、複数の演算器2
81〜28nのいずれか1つを選択するように設定され
ている。
【0048】図6実施例においても各演算器281〜2
8nは図2実施例の演算器28と同様にプログラムデー
タを演算ないし修飾するので、このプログラムデータ演
算の具体的な説明は省略するが、図6実施例では、演算
器281〜28nのそれぞれが異なる種類の演算を実行
するように設定される。したがって、たとえばプログラ
ムROMの機種(ゲームタイトル)毎に、あるいはバー
ジョン毎に、演算器選択コードc0〜cXによって異な
る演算器を選択するようにすると、図2で説明したプロ
グラムの解析の困難性が一層増す。したがって、不正利
用をさらに困難にする。
【0049】この図6の実施例では、さらに別の利点が
ある。すなわち、図2実施例のように1つのチップに1
つの演算器だけを形成しておき、機種やバージョンによ
ってその演算器を変更する場合、プログラムROMがた
とえばマスクROMであるときには、演算器の変更の都
度、焼き付けマスクを変更しなければならない。これに
対して、図6実施例のように、複数の演算器281〜2
8nを組み込んでおけば、演算器選択コードを変えるだ
けで、演算器すなわち演算の種類を選択できる。他方、
演算器選択コードは、データ演算コードと同じ焼き付け
工程で設定できるので、図6実施例では、演算器を変更
する場合に、プログラムROMを安価に作れる。
【0050】図6実施例においても、選択器30は、制
御信号が与えられているときには入力(X)を選択し、
与えられていないときには入力(Y)を選択するので、
制御信号の有無に応じて、第1プログラムデータまたは
第2プログラムデータが出力される。また、図6におい
ても第1プログラムデータD0〜D7のすべてのビット
を修飾処理する場合を括弧書きで示す。ただし、その動
作は、先の図2実施例の説明から容易に理解されるであ
ろうから、ここでは省略する。
【0051】なお、上述の実施例では、出力データ処理
部24からは制御信号があるとき演算器28(281〜
28n)で一部または全部を演算したプログラムデータ
(第2プログラムデータ)を出力し、制御信号がないと
きプログラムデータ記憶部22から読み出されたプログ
ラムデータ(第1プログラムデータ)そのままを選択し
て出力するようにしている。しかしながら、制御信号が
ないとき、第1プログラムデータに対して第2プログラ
ムデータとは異なる第2の演算を施した第3プログラム
データを出力するようにしてもよい。
【0052】このような実施例が図7に示される。図7
実施例では、図2実施例と同様の演算器28や選択器3
0の他に、第2演算器28'が出力データ処理部24に
設けられる。そして、演算器28および28'のそれぞ
れの一方入力には、プログラムデータ記憶部22から読
み出したプログラムデータD0〜D7(第1プログラム
データ)の下位4ビットD0〜D3がそのまま与えられ
る。演算器28および28'の他方入力には、コード記
憶部26に設定されている4ビットのデータ演算コード
d0〜d3が共通的に与えられる。演算器28および2
8'は、互いに異なる第1の種類の演算および第2の種
類の演算を実行できるようにされている。
【0053】演算器28は、データ演算コードd0〜d
3と下位4ビットD0〜D3との第1の演算結果D0'
〜D3'を出力して選択器30の入力(X)に与える。
演算器28'は、データ演算コードd0〜d3と下位4
ビットD0〜D3との第2の演算結果D0''〜D3''を
出力して選択器30の入力(Y)に与える。このような
演算器28および28'からの入力D0'〜D3'または
D0''〜D3''が選択器30によって選択される。
【0054】選択器30には、制御信号、たとえば書き
込み信号がCPU12から与えられるとともに、コード
記憶部26に記憶されている演算器選択コードc0〜c
Xが与えられる。したがって、選択器30は、その制御
信号があるときには、演算器28の出力すなわち入力
(X)を選択し、その演算器28によって処理された下
位4ビットのプログラムデータD0'〜D3'を出力す
る。選択器30は、また、制御信号がないときには、演
算器28'の出力すなわち入力(Y)を選択し、その演
算器28'によって処理された下位4ビットのプログラ
ムデータD0''〜D3''を出力する。
【0055】他方、第1プログラムデータD0〜D7の
上位4ビットD4〜D7がそのまま選択器30の出力に
結合されているので、結果的に、制御信号があるときに
は、選択器30すなわち出力データ処理部24からは、
D0'〜D3'+D4〜D7の合計8ビットのプログラム
データ(第2プログラムデータ)が出力され、制御信号
がないときには、選択器30すなわち出力データ処理部
24からは、D0''〜D3''+D4〜D7の合計8ビッ
トのプログラムデータ(第3プログラムデータ)が出力
される。
【0056】ただし、この図7の実施例においても、図
7に括弧書きしたように、プログラムデータD0〜D7
のすべてのビットを演算器28および演算器28'によ
って演算するようにしてもよい。
【0057】図7実施例では、プログラムデータ記憶部
22から読み出された第1プログラムデータD0〜D7
は、CPU12が正規に実行しようとするプログラムデ
ータではない。つまり、第1プログラムデータは、偽の
プログラムデータに過ぎない。そして、第1演算器28
および第2演算器28'のいずれか一方が、CPU12
によって正規に実行されるべき第2プログラムデータま
たは第3プログラムデータになるように、第1プログラ
ムデータD0〜D7を変更ないし変換することになる。
つまり、第2プログラムデータまたは第3プログラムデ
ータのいずれか一方が正しいプログラムデータである。
【0058】図7実施例では、プログラムを不正利用し
ようとする場合、第1演算器28だけでなく第2演算器
28'についても解析する必要があり、解析の困難性を
さらに増大させる。
【0059】上述の実施例は、プログラムROM18に
出力データ処理部24を設け、プログラムデータ記憶部
22から読み出されたプログラムデータを加工ないし修
飾するものであった。しかしながら、同様の考え方をプ
ログラムデータ記憶部22に与えられるアドレスデータ
に適用し、プログラムデータとともにアドレスデータも
加工ないし修飾処理することも可能である。
【0060】そのようにするための実施例では、プログ
ラムROM18には、プログラムデータ記憶部22の他
に、図1実施例に示す出力データ処理部24およびコー
ド記憶部26を含み、さらに、CPU12からアドレス
バスを介して出力されるアドレスデータを受け、そのア
ドレスデータに所定の処理を施すアドレス処理部(図示
せず)を設ける。このアドレス処理部は、具体的には、
上で説明した出力データ処理部24と同様の動作を実行
して、CPU12から出力されてプログラムデータ記憶
部22に与えるべきアドレスデータを処理ないし修飾す
る。この場合、CPU12からの制御信号は、出力デー
タ処理部24およびアドレス処理部の両方に与えられ、
図5のステップS11で出力データ処理部24およびア
ドレス処理部がともに能動化される。そして、アドレス
処理部では、CPU12から出力されるアドレスデータ
を加工または修飾して、プログラムデータ記憶部22に
与える。したがって、図5のステップS13でCPU1
2に入力されるのは、アドレス処理部で処理されたアド
レスデータに従ってプログラムデータ記憶部22から読
み出されかつ出力データ処理部24で処理されたプログ
ラムデータである。
【0061】なお、いずれの実施例においても、コード
発生手段としてプログラムROM18と同じチップに形
成されたコード記憶部26を用いている。しかしなが
ら、このコード発生手段は、任意のコード(データ)を
演算手段に与えられるものであればよく、たとえばディ
ップスイッチ等によって任意のデータを与える構成や任
意のデータを外部から書き換え可能に記憶する外付けの
フラッシュROMなどに置き換えてもよい。
【0062】さらに、上述の実施例では、偽プログラム
であった場合にはプログラムの実行を直ちに強制終了さ
せたが、たとえば、一定時間後に強制終了させたり、ゲ
ームの場合には、キャラクタのパラメータを書き換えた
り、ゲームのバックアップデータを消去したり、ゲーム
を初期の状態に戻したりするような処理にすることもで
きる。
【図面の簡単な説明】
【図1】この発明の一実施例を示すブロック図である。
【図2】図1実施例の出力データ処理部の一例を示すブ
ロック図である。
【図3】図1におけるCPUのメモリマップを示す図解
図である。
【図4】図1実施例の動作を示すフロー図である。
【図5】図4フロー図のチェック用プログラムを示すフ
ロー図である。
【図6】出力データ処理部の変形例を示すブロック図で
ある。
【図7】出力データ処理部の他の変形例を示すブロック
図である。
【符号の説明】
10 …情報処理装置 12 …CPU 18 …プログラムROM 20 …ワークメモリ 22 …プログラムデータ記憶部 24 …出力データ処理部 26 …コード記憶部 28,281〜28n,28´ …演算器 30 …選択器

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】中央処理装置によって実行されるプログラ
    ムデータを固定的に記憶するとともに、指定されたアド
    レスデータに従ってプログラムデータを出力する半導体
    記憶装置であって、前記プログラムデータを固定的に記
    憶するプログラムデータ記憶手段、データ演算コードを
    発生するコード発生手段、および前記アドレスデータに
    従って前記プログラムデータ記憶手段から読み出された
    第1プログラムデータを受ける出力データ処理手段を備
    え、 前記出力データ処理手段は、前記中央処理装置から制御
    信号が与えられたときに前記データ演算コードに基づい
    て前記第1プログラムデータの少なくとも一部に演算を
    施した新たな第2プログラムデータを出力し、前記制御
    信号が与えられないときに前記第1プログラムデータを
    出力する、半導体記憶装置。
  2. 【請求項2】前記出力データ処理手段は、前記第1プロ
    グラムデータの少なくとも一部と前記データ演算コード
    とを演算して前記第2プログラムデータを出力するため
    の演算手段、および前記制御信号が与えられたときに前
    記第2プログラムデータを出力しかつ前記制御信号が与
    えられないときに前記第1プログラムデータを出力する
    選択器を備える、請求項1記載の半導体記憶装置。
  3. 【請求項3】前記演算手段はそれぞれ異なる種類の演算
    を実行できるかつそれぞれが前記第1プログラムデータ
    および前記データ演算コードを受けてそれぞれ異なる前
    記第2プログラムデータを出力するための複数の演算器
    を含み、 前記コード発生手段はさらに前記複数の演算器のいずれ
    かを選択する演算器選択コードを発生し、 前記選択器は前記演算器選択コードによって選択された
    演算器に関連する前記第2プログラムデータまたは前記
    第1プログラムデータを選択する、請求項2記載の半導
    体記憶装置。
  4. 【請求項4】前記プログラムデータ記憶手段は、前記中
    央処理装置によってプログラムの実行中に前記制御信号
    を出力することを命令する特別プログラムデータを含
    む、請求項1ないし3のいずれかに記載の半導体記憶装
    置。
  5. 【請求項5】前記プログラムデータ記憶手段,前記コー
    ド発生手段および前記出力データ処理手段は単一の半導
    体チップ上に搭載される、請求項1ないし4のいずれか
    に記載の半導体記憶装置。
  6. 【請求項6】前記プログラムデータ記憶手段および前記
    コード発生手段はフラッシュメモリで構成される、請求
    項1ないし5のいずれかに記載の半導体記憶装置。
  7. 【請求項7】中央処理装置によって実行されるプログラ
    ムデータを固定的に記憶するとともに、指定されたアド
    レスデータに従ってプログラムデータを出力する半導体
    記憶装置であって、 前記プログラムデータを記憶するプログラムデータ記憶
    手段、 データ演算コードを発生するコード発生手段、および前
    記アドレスデータに従って前記プログラムデータ記憶手
    段から読み出された第1プログラムデータを受ける出力
    データ処理手段を備え、 前記出力データ処理手段は、前記中央処理装置から制御
    信号が与えられたときに前記データ演算コードに基づい
    て前記第1プログラムデータの少なくとも一部に第1の
    演算を施した新たな第2プログラムデータを出力し、前
    記制御信号が与えられないときに前記データ演算コード
    に基づいて前記第1プログラムデータの少なくとも一部
    に前記第1の演算とは異なる第2の演算を施した新たな
    第3プログラムデータを出力する、半導体記憶装置。
  8. 【請求項8】前記出力データ処理手段の第1および第2
    の演算のいずれか一方は、前記第1プログラムデータを
    前記中央処理装置で正規に実行すべきプログラムデータ
    に変換する、請求項7記載の半導体記憶装置。
  9. 【請求項9】プログラムデータを固定的に記憶するプロ
    グラム記憶装置と、前記プログラム記憶装置からプログ
    ラムデータを読み出してプログラムを実行するとともに
    前記プログラムが正規のものであるか否かを判別する中
    央処理装置とを備えたプログラム判別システムであっ
    て、 前記プログラム記憶装置は、 前記プログラムデータを固定的に記憶するプログラムデ
    ータ記憶手段、 データ演算コードを発生するコード発生手段、および前
    記中央処理装置から出力されるアドレスデータに従って
    前記プログラムデータ記憶手段から読み出された第1プ
    ログラムデータを受ける出力データ処理手段を備え、 前記出力データ処理手段は、前記中央処理装置から制御
    信号が与えられたときに前記データ演算コードに基づい
    て前記第1プログラムデータの少なくとも一部に演算を
    施した新たな第2プログラムデータを出力してその第2
    プログラムデータを前記中央処理装置に与え、前記制御
    信号が与えられないときに前記第1プログラムデータを
    前記中央処理装置に与え、 前記中央処理装置は、 前記出力データ処理手段に前記制御信号を与える制御信
    号付与手段、 前記制御信号を与えた直後にアドレスデータを出力して
    前記プログラムデータ記憶手段に与えるアドレス出力手
    段、および前記第2プログラムデータと予め設定されて
    いるチェックデータとが所定の関係にあるか否かを判断
    して前記プログラム記憶装置の真偽を判別する判断手段
    を備える、プログラム判別システム。
  10. 【請求項10】前記制御信号付与手段は、前記プログラ
    ム記憶手段に予め設定している特別プログラムを含み、
    前記特別プログラムが読み出されたタイミングで前記制
    御信号を付与する、請求項9記載のプログラム判別シス
    テム。
  11. 【請求項11】前記中央処理装置は、前記判断手段の判
    断の結果が偽のプログラム記憶装置であることを示すと
    き、プログラムを強制的に終了させるプログラム強制終
    了手段をさらに備える、請求項9または10記載のプロ
    グラム判別システム。
JP2000034485A 2000-02-14 2000-02-14 プログラム判別システム Expired - Lifetime JP4594475B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000034485A JP4594475B2 (ja) 2000-02-14 2000-02-14 プログラム判別システム
TW089126552A TW509844B (en) 2000-02-14 2000-12-13 Semiconductor memory device and program discrimination system
CN01104578.7A CN1309356A (zh) 2000-02-14 2001-02-14 半导体存储器和程序判别系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000034485A JP4594475B2 (ja) 2000-02-14 2000-02-14 プログラム判別システム

Publications (2)

Publication Number Publication Date
JP2001222423A true JP2001222423A (ja) 2001-08-17
JP4594475B2 JP4594475B2 (ja) 2010-12-08

Family

ID=18558823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000034485A Expired - Lifetime JP4594475B2 (ja) 2000-02-14 2000-02-14 プログラム判別システム

Country Status (3)

Country Link
JP (1) JP4594475B2 (ja)
CN (1) CN1309356A (ja)
TW (1) TW509844B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511354A (ja) * 2008-02-01 2011-04-07 トムソン ライセンシング コピー防止機能付きソフトウェアカートリッジ

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS638937A (ja) * 1986-06-30 1988-01-14 Nec Corp シングルチツプマイクロコンピユ−タ
JPH0231256A (ja) * 1988-07-21 1990-02-01 Nintendo Co Ltd 外部メモリとそれを用いる情報処理装置
JPH02212952A (ja) * 1989-02-14 1990-08-24 Fujitsu Ltd メモリアクセス制御方式
JPH03237235A (ja) * 1990-02-13 1991-10-23 Nissan Motor Co Ltd エンジン出力制御装置
JPH0436834A (ja) * 1990-05-31 1992-02-06 Sharp Corp ワンチップマイクロコンピュータ
JPH04102920A (ja) * 1990-08-22 1992-04-03 Nec Corp 情報処理装置
JPH0644141A (ja) * 1992-07-24 1994-02-18 Nec Corp メモリ情報読出方式
JPH07141153A (ja) * 1993-06-25 1995-06-02 J T:Kk 制御装置
JPH0844553A (ja) * 1994-08-03 1996-02-16 Nri & Ncc Co Ltd 公開部分と非公開部分を有するソフトウェアを複数ユーザに使用させるシステム
JPH08110876A (ja) * 1994-10-11 1996-04-30 Hitachi Maxell Ltd 増設メモリ装置
JPH09282234A (ja) * 1996-04-12 1997-10-31 Kawasaki Steel Corp コピー防止機能付rom
JPH10240519A (ja) * 1997-02-27 1998-09-11 Takasago Electric Ind Co Ltd 電子遊戯機用制御装置
JPH11272570A (ja) * 1998-03-24 1999-10-08 Nec Ic Microcomput Syst Ltd 半導体集積回路

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS638937A (ja) * 1986-06-30 1988-01-14 Nec Corp シングルチツプマイクロコンピユ−タ
JPH0231256A (ja) * 1988-07-21 1990-02-01 Nintendo Co Ltd 外部メモリとそれを用いる情報処理装置
JPH02212952A (ja) * 1989-02-14 1990-08-24 Fujitsu Ltd メモリアクセス制御方式
JPH03237235A (ja) * 1990-02-13 1991-10-23 Nissan Motor Co Ltd エンジン出力制御装置
JPH0436834A (ja) * 1990-05-31 1992-02-06 Sharp Corp ワンチップマイクロコンピュータ
JPH04102920A (ja) * 1990-08-22 1992-04-03 Nec Corp 情報処理装置
JPH0644141A (ja) * 1992-07-24 1994-02-18 Nec Corp メモリ情報読出方式
JPH07141153A (ja) * 1993-06-25 1995-06-02 J T:Kk 制御装置
JPH0844553A (ja) * 1994-08-03 1996-02-16 Nri & Ncc Co Ltd 公開部分と非公開部分を有するソフトウェアを複数ユーザに使用させるシステム
JPH08110876A (ja) * 1994-10-11 1996-04-30 Hitachi Maxell Ltd 増設メモリ装置
JPH09282234A (ja) * 1996-04-12 1997-10-31 Kawasaki Steel Corp コピー防止機能付rom
JPH10240519A (ja) * 1997-02-27 1998-09-11 Takasago Electric Ind Co Ltd 電子遊戯機用制御装置
JPH11272570A (ja) * 1998-03-24 1999-10-08 Nec Ic Microcomput Syst Ltd 半導体集積回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511354A (ja) * 2008-02-01 2011-04-07 トムソン ライセンシング コピー防止機能付きソフトウェアカートリッジ

Also Published As

Publication number Publication date
TW509844B (en) 2002-11-11
CN1309356A (zh) 2001-08-22
JP4594475B2 (ja) 2010-12-08

Similar Documents

Publication Publication Date Title
JP2883784B2 (ja) マイクロコンピュータ
JP2001209531A (ja) 半導体記憶装置およびプログラム判別システム
US20070234244A1 (en) System and method for checking equivalence between descriptions
JP2001222423A (ja) 半導体記憶装置およびプログラム判別システム
US4507743A (en) Calculation system utilizing definable keys
WO2006040798A1 (ja) 半導体集積回路装置および電子システム
US20060155975A1 (en) Method and apparatus for processing conditonal branch instructions
KR960024927A (ko) 퍼지 논리 규칙을 평가하는 데이타 처리 시스템 및 그 방법
JPH0934796A (ja) メモリ
US5233697A (en) PLC processor and PLC
JP3024719B2 (ja) プログラマブルコントローラの演算処理方法
WO2004049142A1 (en) Microcontroller and assigned method for processing the programming of the microcontroller
US11514167B2 (en) Computer system having firmware verification mechanism and firmware verification method of the same
JP2002082800A (ja) プログラム実行装置及び方法
JP2000194556A (ja) 命令ルックアヘッドシステムおよびハ―ドウェア
JP3221421B2 (ja) 情報処理装置の試験方法およびそのプログラムを記憶した記憶媒体
JP3351165B2 (ja) プログラマブル・コントローラ及びプログラマブル・コントローラのプログラム変更方法
JP2548706B2 (ja) 文書処理装置
JPH05241853A (ja) プログラマブルコントローラ
JPH0535499A (ja) データ処理装置及びデータ処理方法
CN117520044A (zh) 一种数据校验方法、装置、设备及存储介质
JPH1021191A (ja) 情報処理装置のコマンド履歴管理装置
JPH0945100A (ja) 不揮発性メモリの試験方法及びその試験装置
JPH08179992A (ja) 複製防止装置
JP2005157740A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100824

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100917

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4594475

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term