JP2820938B2 - 外部メモリとそれを用いる情報処理装置 - Google Patents

外部メモリとそれを用いる情報処理装置

Info

Publication number
JP2820938B2
JP2820938B2 JP63182694A JP18269488A JP2820938B2 JP 2820938 B2 JP2820938 B2 JP 2820938B2 JP 63182694 A JP63182694 A JP 63182694A JP 18269488 A JP18269488 A JP 18269488A JP 2820938 B2 JP2820938 B2 JP 2820938B2
Authority
JP
Japan
Prior art keywords
memory
data
address
program
external memory
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 - Lifetime
Application number
JP63182694A
Other languages
English (en)
Other versions
JPH0231256A (ja
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
Priority to JP63182694A priority Critical patent/JP2820938B2/ja
Publication of JPH0231256A publication Critical patent/JPH0231256A/ja
Application granted granted Critical
Publication of JP2820938B2 publication Critical patent/JP2820938B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は外部メモリとそれを用いる情報処理装置に
関する。より特定的には、この発明は、パーソナルコン
ピュータやビデオゲーム装置等の情報処理装置に対して
着脱自在に装着される、外部メモリとそれを用いる情報
処理装置に関する。
〔従来技術〕
情報処理装置に装着される外部メモリに記録ないし記
憶されている情報は、本来の正常な使用状態では、その
情報処理装置によって自由にアクセスされ得る。
〔発明が解決しようとする課題〕
しかしながら、従来のいずれの外部メモリにおいて
も、本来の正常な使用状態ではない場合、たとえばプロ
グラムの不正複製の目的でも読み出し可能であった。そ
のため、プログラムの不正使用等を防止し、その秘密性
を厳格に保持する方法がなかった。
すなわち、従来の外部メモリにおいて、その外部メモ
リが真正なものであるかどうかをチェックする方法が、
たとえば、昭和61年12月27日,昭和62年1月9日,また
は昭和62年4月16日付でそれぞれ出願公開された特開昭
61−296433号,特開昭62−3331号,または特開昭62−82
987号公報等において開示されている。これらの公報に
開示されている技術では、情報処理装置本体と外部メモ
リの両方に同じマイクロプロセサを装着しておき、その
2つのマイクロプロセサの間で所定の演算を行ないその
結果を逐一比較することによって、外部メモリがその情
報処理装置に対して使用を許可された真正なものである
かどうかをチェックする。
しかしながら、このような方法によっても、なお、外
部メモリが本来の使用状態で使用されていない場合のプ
ログラムの読み出しを禁止することはできなかった。
一方、たとえば昭和58年12月5日付で手段公開された
特開昭58−208849号には、プログラムワード無断読取防
止装置が開示されている。
この従来技術では、ROMのようなメモリ(1)に、プ
ログラム実行中にデータプロセサユニット(15)が取り
出すべき次の命令に関連する追加情報を蓄積するための
スペース(14)を形成しておく。そして、データプロセ
サユニット(15)がメモリ(1)をアドレスしたとき、
第1命令およびそれに関連する追加情報が読み出され、
追加情報は比較ユニット(3)に与えられる。続いて、
メモリ(1)から第2命令が取り出されると、その第2
命令内の最上位4ビットが、比較ユニット(3)によっ
て、第1命令とともに読み出されかつ先に与えられてい
る追加情報と比較される。正しいシーケンスでメモリ
(1)がアクセスされていれば、比較結果が「正」とな
り、そうでない場合には、「負」の比較結果が出力され
る。
比較結果が「正」の場合には、正確な命令がデータプ
ロセサユニット(15)に与えられる。比較結果が「負」
の場合、選択ユニット(7)によってメモリ(1)から
の命令がデータ源(8)からの妨害データに置換され
て、選択ユニット(7)出力端子(F)に出力される。
この従来技術では、先に挙げた従来技術に比べて、メ
モリからのプログラムワードの不正読み出しに対するプ
ロテクトが一層強化される。しかしながら、この従来技
術では、スペース(14)に相当するメモリ容量が増大す
る、という欠点がある。すなわち、従来技術では、全て
のプログラムワードに対して個々に付加情報をスペース
(14)に蓄積しておく必要があり、たとえば最上位4ビ
ットだけを付加情報として記憶しておくにしても、かな
り膨大な付加情報のためのメモリが要ることになる。ゲ
ームプログラムが長大化した場合この弊害は特に顕著で
ある。
さらに、従来技術では、メモリ(1)(14)がともに
何らかの方法で複製されてしまった場合、つまり或る程
度プロテクトが破られてしまった場合、それ以上の保護
の方法がない。
それゆえに、この発明の主たる目的は、メモリ容量を
大幅に増大させることなく、しかも一層堅固に、プログ
ラムの不正読み出しを防止することができる、外部メモ
リおよび情報処理装置を提供することである。
〔課題を解決するための手段〕
この発明に従った外部メモリ(10)は、システムクロ
ックに応じて動作するユーザプログラムをストアするた
めの第1のメモリ(42)、第1のメモリを管理するため
の管理プログラムをストアするための第2のメモリ(3
8)、ユーザプログラムのnステップ毎(nは2以上の
整数)に、ユーザプログラムの実行に関連するデータを
予めストアする第3のメモリ(86)、システムクロック
をn分周した信号に基づいて第3のメモリからデータを
読み出す読み出し手段(82,80)および、第1のメモリ
から読み出されるデータと第3のメモリから読み出され
るデータとが所定の関係にあるか否か判断するための判
断手段(88)を備え、判断手段が所定の関係にないと判
断したとき第1のメモリへのアクセスが禁止される、外
部メモリである。
この発明に従った情報処理装置は、システムクロック
に応じて動作するユーザプログラムをストアするための
第1のメモリ(42)、第1のメモリを管理するための管
理プログラムをストアするための第2のメモリ(38)、
およびユーザプログラムのnステップ毎に、ユーザプロ
グラムの実行に関連するデータを予めストアする第3の
メモリ(86)を含む外部メモリ(10)、および外部メモ
リが装着され、第1のメモリのユーザプログラムに従っ
て動作する情報処理手段(14,22)を備え、外部メモリ
は、さらに、システムクロックをn分周した信号に基づ
いて第3のメモリからデータを読み出す読み出し手段
(82,80)、第1のメモリから読み出されるデータと第
3のメモリから読み出されるデータとが所定の関係にあ
るか否か判断するための判断手段(88)、および判断手
段が所定の関係にないと判断したとき第1のメモリへの
アクセスを禁止する手段(58)を含む、情報処理装置で
ある。
〔作用〕
第3のメモリには、第1のメモリのユーザプログラム
のnステップ毎(nは2以上の整数)の実行に関連する
データ、たとえばそのユーザプログラムの各プログラム
ステップのアドレスおよび/またはそのアドレス内のデ
ータが予めストアされる。好ましくは、そのようなデー
タはそれぞれ1ビットのデータとしてストアされる。外
部メモリが情報処理手段に装着されると、第2のメモリ
がアクセスされて、まず、管理プログラムが実行され、
その管理プログラムの実行によってモニタモードが設定
される。このモニタモードにおいて、第1のメモリか
ら、ユーザプログラムの各プログラムステップのアドレ
スおよび/またはそのアドレス内のデータがシステムク
ロックに応じて逐次読み出される。好ましくは、これら
のデータのたとえば1ビットが、判断手段に与えられ
る。一方、第3のメモリに予めストアされているデータ
が、読み出し手段によって、ユーザプログラムのnステ
ップ毎に、つまりシステムクロックのn分周した信号に
基づいて、読み出されて判断手段に与えられる。判断手
段では、このようにして与えられる2つのデータを比較
して、たとえば両者が一致しているか否かのように、両
者が所定の関係にあるか否かを判断する。もし、判断手
段において、不一致ないし異常を検出すると、たとえば
プロテクトプロセサのような禁止手段によって、第1の
メモリへのアクセスが禁止される。
〔発明の効果〕
この発明によれば、外部メモリが情報処理装置に装着
されたとき、情報処理装置から第1のメモリにアクセス
する前に、そのユーザプログラムの実行の許否が判断さ
れるので、正当に使用が許可されていない本来の正常な
使用状態でない場合にその外部メモリ内のデータや情報
を読み出したりすることはできない。したがって、この
発明によれば、外部メモリの秘密性が極めて厳格に保持
され得る。
また、判断手段によって判断すべきデータが、第1の
メモリのユーザプログラムの実行ないし進行に関連する
データであるので、従来の「チェックサム」などの方法
に比べて、非常に高い信頼性がある。すなわち、「チェ
ックサム」は、ユーザプログラムが実際に進行しなくて
も可能であり、したがって、この方法では、その結果は
完全には信頼できるものとはならない。これに対して、
この発明に従えば、判断手段で判断すべきデータとし
て、第1のメモリから実際に読み出されたデータが付与
されるので、その結果は非常に具体的でかつ信頼性が高
いものとなる。したがって、この発明によれば、たとえ
ばゲームのためのプログラムやコンピュータ通信のため
のプログラム等の各種情報の不正複製やデータの改変を
防止できるので、秘密性が要求される部の記憶等に非常
に有利な外部メモリが得られる。
さらに、特開昭58−208849号の従来技術と比較した場
合、従来技術では全てのプログラムワード(ステップ)
について付加情報を記憶しておくため、メモリ容量が大
幅に増加するのに対し、この発明では、ユーザプログラ
ムのnステップ(nは2以上の整数)毎に第3のメモリ
にデータをストアしておけばよいので、単純にプログラ
ムステップ数のn分の1の容量で足りるため、メモリ容
量の増加がさほど大きくなくてもよく、全体として、従
来技術に比べて、安価になる。
また、この発明では、第1のメモリおよび第3のメモ
リが共に複製された場合であっても、「n」の値が分か
らなければ完全に複製することはできないが、従来技術
では、この「n」に相当する別のプロテクト手段がない
ので、プログラムと付加情報とが複製されてしまえばプ
ロテクトが破られてしまう。つまり、この発明は、従来
技術に比べて、一層堅固にプログラムをプロテクトする
ことができる。
この発明の上述の目的,その他の目的,特徴および利
点は、図面を参照して行う以下の実施例の詳細な説明か
ら一層明らかとなろう。
〔実施例〕
第1図に示す実施例の外部メモリ10は、接続コネクタ
12によって、第2図に示す情報処理装置すなわちこの実
施例ではゲーム機本体14に装着される。
第2図に参照して、ゲーム機本体14には、コントロー
ラ16aおよび16bが接続されるとともに、テレビジョン受
像機ないしCRT18が接続される。本体14の基板20上に
は、外部メモリ10に予めストアされているプログラムに
従ってゲームの進行を制御するためのマイクロプロセサ
22が装着される。このマイクロプロセサ22に、I/Oイン
タフェース24を通して上述のコントローラ16a,16bおよ
びCRT18が接続される。基板20上には、さらに、PPU(Pi
cture Processing Unit:画像処理ユニット)26,プロテ
クトプロセサ28およびクロック発振器30が接続される。
このようなゲーム機本体14は、たとえば「ファミリーコ
ンピュータ」(商標)あるいは「任天堂エンターテイメ
ントシステム(Nintendo Entertaiment System:NES」
(商標)としてよく知られている。
マイクロプロセサ22としては、たとえば、任天堂株式
会社製の集積回路“2A03"が、PPU26としては、たとえ
ば、任天堂株式会社製の集積回路“2C03"がそれぞれ利
用され得る。また、プロテクトプロセサ28は、たとえ
ば、任天堂株式会社製の集積回路“10NES"のような4ビ
ットのマイクロプロセサによって構成され得る。
マイクロプロセサ22,PPU26およびプロテクトプロセサ
28は、基板20上に形成された導電パターンを通して、接
続コネクタ36のそれぞれの接続端子に接続される。この
接続コネクタ36がおよび前述の接続コネクタ12によっ
て、本体14に上述の外部メモリ10が装着されるのであ
る。
第1図を参照して、外部メモリ10には、モニタROM38
が設けられ、このモニタROM38は、たとえば128Kビット
の容量を有し、接続コネクタ12を介して、14ビットのア
ドレス端子A0〜A13に接続されるとともに、8ビットの
データ端子D0〜D7に接続される。このモニタROM38は、
そのイネーブル端子CEにバンクコントローラ40からのイ
ネーブル信号が与えられることによって、能動化され
る。そして、モニタROM38は、ユーザROM42に記録されて
いるユーザプログラムの保護およびそれの管理を行うと
ともに、セキュリティ機能を起動し実行するためのモニ
タモードのためのプログラムを含む。
ユーザROM42は、たとえば1Mビットの容量を有し、ユ
ーザモードのための上述のユーザプログラムを含むとと
もに、本体14(第2図)の性質に応じて、ゲームデータ
や通信制御データ等の本来の使用目的のためのプログラ
ムをストアする。このユーザROM42は、上述の14ビット
のアドレス端子A0〜A13および8ビットのデータ端子D0
〜D7に接続されるとともに、バンクコントローラ40から
のバンク指定データを受けるように、3ビットのアドレ
ス端子A14〜A16に接続される。なお、ユーザROM42もま
た、そのイネーブル端子CEに与えられるバンクコントロ
ーラ40からのイネーブル信号によって能動化される。
第3図を参照して、本体14(第2図)に含まれるマイ
クロプロセサ22のアドレス空間は、それが8ビットのマ
イクロプロセサであるため、“FFFF"〜“0000"であり、
この限られたアドレス空間によって大容量のユーザROM4
2をアクセスする場合、このユーザROM42を複数のバンク
に分割して、それぞれのバンク毎にアクセスする。その
ようなバンクを選択するのが上述のバンクコントローラ
40である。ユーザROM42が128Kビット毎のバンクに分割
される場合には、ユーザROM42はバンク0〜バンク7を
含み、256Kビット毎のバンクに分割される場合には、バ
ンク0〜バンク3を含む。バンクコントローラ40はバン
クレジスタ44で保持されたバンクデータに基づいて、ユ
ーザROM42のバンクを選択的に切り換える。
ただし、バンクコントローラ40は、リセット検出回路
46によってリセット操作がされたことを検出した場合あ
るいは電源投入リセットがあった場合には、必ず、モニ
タROM38を本体14のマイクロプロセサ22らアクセス可能
なバンクとして指定する。
バンクレジスタ44は、データバスを介して与えられる
バンクデータの内下位1ビットが“0"のとき、アドレス
空間“C000"〜“FFFF"(ただし、16進表示)でモニタRO
M38のメモリ空間を指定し、かつ“8000"〜“BFFF"で一
時的にユーザROM42を指定する。このように、モニタモ
ードにおいてもアドレス空間“8000"“BFFF"で、一時的
または瞬間的にユーザROM42を選択可能にするのは、ユ
ーザROM42の或るデータの比較データとして利用してい
るためである。また、バンクレジスタ44は、バンクデー
タの下位1ビットが“1"のとき、アドレス空間“8000"
〜“FFFF"でユーザROM42のいずれか1つまたは2つのバ
ンクを定常的に指定する。
リセット検出回路46は、第4図に示すようにD形フリ
ップフロップ(以下「D−FF」)48a〜48cおよび50a〜5
0cをそれぞれ3つずつ縦続接続したシフトレジスタ48お
よび50と、インバータ51と、ANDゲート52と、NORゲート
53と、ORゲート54を含む。
そして、シフトレジスタ48および50には、たとえば1.
778MHzのシステムクロックφ2がそれぞれのデータ入力
Dとして与えられる。各D−FF48a〜48cおよび50a〜50c
には、シフトクロックとして、たとえば3.58MHzのクロ
ックCLKが直接またはインバータ51を介して与えられ
る。したがって、システムクロックφ2またはその遅延
されたデータが、クロックCLKの立ち上がりでD−FF48a
〜48cに書き込まれ、クロックCKLの立ち下がりでD−FF
50a〜50cに書き込まれる。
システムクロックφ2が正常に与えられている場合
は、第5図(C)ないし(H)に示すようになるので、
ANDゲート52およびNORゲート53のいずれも、オール“1"
または“0"を検出しない。したがって、ORゲート54はリ
セット検出信号を出力しない。
一方、システムクロックφ2が3クロック期間以上欠
落して、たとえばローレベルになると、D−FF48a〜48c
および50a〜50cの全ての出力がローレベルになる。した
がって、NORゲート53かつしたがってORゲート54からハ
イレベルのリセット検出信号が出力される。
システムクロックφ2が3クロック期間以上欠落して
ハイレベルになると、第5図において2点鎖線で示すよ
うに、D−FF48a〜48cおよび50a〜50cの全ての出力がハ
イレベルになる。したがって、ANDゲート52かつしたが
ってORゲート54からハイレベルのリセット検出信号が出
力される。
このようにして、リセット検出信号46では、システム
クロックφ2が上述のように3回連続して欠落すると、
リセット操作がかけられた等によって、システムがリセ
ット状態にあるとして検出する。この検出出力がORゲー
ト54から出力される。したがって、第1図に示すORゲー
ト56からは、電源投入時のリセット信号PWRSTまたはリ
セット検出回路46で検出したリセット信号を出力する。
ORゲート56からのリセット信号はプロテクトプロセサ
58に与えられる。このプロテクトプロセサ58は、先に説
明した第2図のプロテクトプロセサ28と同じであり、先
に引用した特開昭61−296433号,特開昭62−3331号ある
いは特開昭62−82987号に開示されていると同様の演算
ないし計算を行い、この外部メモリ10がゲーム機本体14
に対して装着が許可された真正なものであるかどうかを
判断する。しかしながら、この発明においては、この点
は重要ではないので、ここではその詳細な説明は省略す
る。
暗号レジスタ60は前述のバンクコントローラ40を進め
るための特定のコードをストアするためのレジスタであ
り、そのコードはモニタROM38からセットされる。
また、ファンクションレジスタ62は管理プログラムを
実行するモニタモードからユーザプログラムを実行する
ユーザモードへの切り換えを行うためのレジスタであ
る。このレジスタ62は、たとえば電源投入時またはリセ
ット検出時にオール“0"が設定され、その下位1ビット
(D0)が“0"のときモニタROM38を指定し、“1"のとき
ユーザROM42を指定する。
モニタROM38がユーザROM42のワーキングエリアにファ
ンクションレジスタ62およびバンクレジスタ44のレジス
タアドレスをセットするので、ユーザROM42において、
間接的にこの2つのレジスタアドレスを知ることがで
き、ユーザがこのレジスタアドレスを自由にセットでき
る。しかしながら、ユーザがユーザROM42をセットして
も、ファンクションレジスタ62によってユーザモードか
らモニタモードに切り換えることはできない。すなわ
ち、モニタモードの実行の後でしか、ユーザモードには
移行できない。これによって、モニタモードにおける後
述のチェックを受けないでユーザROM42のユーザプログ
ラムを実行することは、不可能である。このことも、セ
キュリティの一環として有効である。
なお、前述のバンクレジスタ44,暗号レジスタ60およ
びファンクションレジスタ62は、ともに、レジスタアド
レスデコーダ64によって能動化される。すなわち、レジ
スタアドレスデコーダ64は、外部メモリ10の能動化信号
ROMSEL(=A15・φ2)および15ビットのアドレス端子A
0〜A14のアドレスデータを受け、そのアドレスデータを
デコードして、それぞれのレジスタ44,60および62を指
定し、そのときモニタROM38から必要なデータないしコ
ードがその指定されたレジスタにセットされる。
次に、この実施例の特徴の一つであるアドレス・デー
タコンパレータ(以下「ADコンパレータ」と略称する)
66について説明する。なお、以下に「AD」と云うとき
は、一般的なアナログ/ディジタルの意味ではなく、ア
ドレス・データを意味するものとして理解されたい。
ADコンパレータ66には、14ビットのアドレス端子A0〜
A13および8ビットのデータ端子D0〜D7が接続されると
ともに、1つのアドレス端子A14ならびに本体14からこ
の外部メモリ10を能動化するための信号ROMSELが与えら
れる。さらに、このADコンパレータ66には、システムク
ロックφ2が与えられる。簡単にいえば、このADコンパ
レータ66は、起動時に、アドレス端子A0〜A13のアドレ
スデータとデータ端子D0〜D7のデータとを、システムク
ロックφ2のn分周のクロックレートでサンプリング
し、そのそれぞれを予めストアしているデータと比較
し、1ビットでも不一致が発生すると上述の各レジスタ
44,60よび62の書き換えを禁止するとともに、プロテク
トプロセサ58に不一致の信号を送る。
第6図を参照して、ADコンパレータ66はアドレス端子
A0〜A13およびイネーブル信号ROMSELを受けるアドレス
バスデータラッチ68、およびデータ端子D0〜D7からのデ
ータを受けるデータバスデータラッチ70を含む。これら
ラッチ68および70は対応のANDゲート72および74によっ
てそのラッチタイミングが制御される。また、先に説明
したように、ADコンパレータ66はA0〜A13のアドレスデ
ータとD0〜D7のデータをシステムクロックφ2のn分周
のクロックレートでサンプリングするため、アドレスデ
ータとデータをサンプリングする手段であるラッチ68と
ラッチ70には、特に第6図には示されていないが、シス
テムクロックφ2のn分周のクロック、たとえばPHI2カ
ウンタ80の出力が与えられる。そして、アドレスバスデ
ータラッチ68に取り込まれたアドレスデータはスタート
アドレス比較器76に与えられる。
スタートアドレス比較器76には、さらに、比較スター
トアドレス発生器78から16ビットのスタートアドレスが
与えられる。そして、スタートアドレス比較器76に含ま
れる比較器76aによって、アドレスバスデータラッチ68
にラッチされたアドレスがその比較スタートアドレスと
一致するかどうかを判断し、一致すると、フリップフロ
ップ76bがセットされる。そのため、アドレスバスデー
タラッチ68にラッチされたアドレスデータが比較スター
トアドレス発生器78に予め設定されたスタートアドレス
と一致したとき、フリップフロップ76bからカウンタイ
ネーブル信号が出力される。
カウンタイネーブル信号はPHI2カウンタ80に与えられ
る。このPHI2カウンタ80はシステムクロックφ2および
その遅延された信号φ2DLをそのカウント入力として受
け、システムクロックφ2をステップデータ発生器82で
設定されるステップ数n毎に分周した信号φ2/nを出力
する。そして、このPHI2カウンタからの分周されたクロ
ック信号φ2/nがADメモリアドレスカウンタ84のカウン
ト入力として与えられる。
ADメモリ86は、たとえば1K×2ビットの容量を有し、
1K×1ビットがアドレス記憶領域86aとして、また他の1
K×1ビットがデータ記憶領域86bとしてそれぞれ規定さ
れる。このADメモリ86には、ユーザROM42にストアされ
るユーザプログラムが実際に進行した場合に得られるス
テップデータ発生器82に設定されたステップ数n毎の10
24プログラムステップ分のアドレスデータおよびそのア
ドレス内のデータのそれぞれ1ビットがそれぞれの領域
86aおよび86bに書き込まれる。このようなアドレスデー
タおよびデータは、ユーザROM42にストアされるユーザ
プログラムをたとえばパーソナルコンピュータ等でシュ
ミレートすることによって、ユーザプログラムができた
段階で予め知ることができる。そして、このADメモリ86
のアドレスが、ADメモリアドレスカウンタ84からのアド
レスデータA0〜A9によって指定される。したがって、AD
メモリアドレスカウンタ84のアドレス指定毎に、ADメモ
リ86からADアドレスおよびADデータがアドレス・データ
比較器88の一方入力Aとして与えられる。
一方、アドレスバスデータセレクタ90が設けられ、こ
のアドレスバスデータセレクタ90は、アドレスバスデー
タラッチ68からのアドレスデータを受けるとともに、ア
ドレスセレクタデータ発生器92からのセレクタデータを
受ける。アドレスセレクタデータ発生器92は、15ビット
のアドレス端子A0〜A14のいずれのビットを比較ビット
として採用するかを表すセレクタデータを発生するもの
であり、したがってアドレスバスデータセレクタ90から
は、その指定されたビットアドレスデータがアドレス・
データ比較器88に与えられる。
同じように、データバスデータセレクタ94が設けら
れ、このデータバスセレクタ94には、データセレクタデ
ータ発生器96から、データ端子D0〜D7のどのビットを比
較ビットとして採用するかを表すデータが与えられる。
したがって、データバスデータセレクタ94からは、その
指定されたビットのデータが出力され、そのデータビッ
トは、先のアドレスバスデータセレクタ90からのアドレ
スデータビットとともに、アドレス・データ比較器88の
他方入力Bに与えられる。
比較タイミングコントローラ98は、前述のシステムク
ロックφ2およびその遅延信号φ2DLを受け、主に、ア
ドレス・データ比較器88における比較タイミングを規定
する比較ストローブ信号を出力する。したがって、アド
レス・データ比較器88では、比較タイミングコントロー
ラ98からの比較ストローブ信号が与えられる都度、アド
レスバスデータセレクタ90から出力されたアドレスデー
タビットおよびデータデータセレクタ94から出力される
データビットを、ADメモリ86に予めストアされていてか
つ読み出されたADアドレスおよびADデータと比較する。
アドレス・データ比較器88によって両入力AおよびB
の不一致が検出されると、このアドレス・データ比較器
88から、ADコンパレータ66(第1図)の端子R21を通し
て、プロテクトプロセサ58(第1図)およびバンクレジ
スタ44およびファンクションレジスタ62に対して不一致
信号が与えられる。応じて、このプロテクトプロセサ58
はその出力端子R12から、本体14に含まれるマイクロプ
ロセサ22にADエラー信号K2Cを出力する。それによって
本体14のマイクロプロセサ22は、この外部メモリ10を能
動化するイネーブル信号ROMSELを禁止し、それによって
外部メモリ10が不能動状態に強制される。
また、ADコンパレータ66からの不一致信号によって、
バンクレジスタ44およびファンクションレジスタ62が不
能動化される。バンクコントローラ40がユーザROM42の
バンクを指定するのが禁止される。
なお、第6図のADコンパレータ66を示すブロック図に
おいて、二重枠で示されるブロック78,82,92および96
は、製造段階で設定された値を他人が解析するのを困難
にするために、第1図に示す各レジスタ44,60および62
とともに、イオン注入法によって書き込まれたROMまた
はいわゆる「ワンタイムROM」が用いられる。したがっ
て、これらの回路78,82,92および96に不正使用者が適当
なデータを書き込むことはできない。
そして、上述の「ワンタイムROM」へのプリセット値
をユーザROM42の種類に応じて適宜設定することによっ
て、プリセット値の異なる外部メモリとの互換を禁止
し、それによってユーザROM42だけを入れ換えて使用す
るような、不正使用が確実に防止できる。
リセット検出回路46(第1図)からのリセット信号が
ある場合あるいは電源投入リセット信号PWRSTがある場
合に、ORゲート56からリセット信号が出力され、応じ
て、第7図に示す動作がスタートする。すなわち、ORゲ
ート56からリセット信号がプロテクトプロセサ58に与え
られ、プロテクトプロセサ58と本体側のプロテクトプロ
セサ28との間でデータの授受(通信)が行われ、その通
信が正常であれば、プロテクトプロセサ58から端子R20
を通してADコンパレータ66に対してスタート指令が与え
られる。この状態では、バンクコントローラ40は、モニ
タROM38を指定し、したがってマイクロプロセサ22(第
2図)はモニタROM38に予めストアされている管理プロ
グラムを実行する。
以下、図7のフロー図を用いて実施例の動作を説明す
るが、図7におけるステップS1〜S3およびステップS11
〜S17はマイクロプロセサ22によるソフトウェア処理を
示したものであり、ステップS4〜S10は図1および図6
に図示されたハードウェア回路の動作を併せて示したも
のであることに注意されたい。
最初のステップS1において、モニタROM38のプログラ
ムに従って初期設定定が行われる。具体的には、バンク
レジスタ44,暗号レジスタ60およびファンクションレジ
スタ62に、その管理プログラムに予め設定されている初
期データが設定される。すなわち、モニタROM38の管理
プログラムによるモニタモードを指定するために、ファ
ンクションレジスタ62およびバンクレジスタ44のそれぞ
れの下位1ビツトに“0"が設定される。
続くステップS2において、本体14のマイクロプロセサ
22が、モニタROM38のプログラムで決まる所定のアドレ
スから管理プログラムをスタートさせるスタートトリガ
を発生する。応じて、ステップS3において、その管理プ
ログラムが実行され、モニタモードとなる。以降、マイ
クロプロセサ22が、モニタROM38あるいはユーザROM42に
与えるアドレスとして、比較スタートアドレス発生器78
で予め設定されているスタートアドレスを発生すると、
カウンタイネーブル信号がPHI2カウンタ84に与えられ
る。
一方、ステップS3の管理プログラムの実行と同期的
に、図1および図6図示のハードウェア回路は、ステッ
プS4において、前述のアドレス・データ(AD)比較動作
を実行する。すなわち、バンクコントローラ40は、先に
説明したように、リセット信号に応答して、まず、モニ
タROM38がマイクロプロセサ22によってアクセス可能な
ように、そのモニタROM38を選択する。さらに、このAD
比較動作においてユーザROM42のアドレスおよびデータ
を読み出すために、バンクコントローラ40によって、ユ
ーザROM42の所定のバンクを指定することができる。た
とえば、前述のようにバンクレジスタ44に与えられたバ
ンクデータの内下位1ビットが“0"のとき、アドレス空
間“8000"〜“BFFF"でユーザROM42の所定のバンクを指
定して、ユーザROM42のデータを比較データとして利用
可能にする。
このようにして、モニタROM38あるいはユーザROM42の
アドレスデータおよびデータが、アドレス端子A0〜A14
およびデータ端子D0〜D7を通して、ADコンパレータ66内
のラッチ68および70に与えられる。このユーザROM42の
アドレスデータおよびデータの出力に同期してステップ
S4のAD比較動作がスタートし、ADメモリ86に予め設定さ
れているアドレスおよびデータのそれぞれ1ビットのデ
ータと、アドレスバスデータセレクタ90およびデータバ
スデータセレクタ94によって特定されるそれそれ1ビツ
トのアドレスおよびデータが、アドレス・データ比較器
88によって比較される。
その比較の結果、ステップS5において、両入力Aおよ
びBが一致していると判断すると、ステップS6において
ADコンパレータ66内のADメモリアドレスカウンタ84のカ
ウント値Nが歩進される。
そして、ステップS7においてそのカウント値Nが最大
値に達しなければ、ステップS4ないしS6が繰り返し実行
される。
そして、ステップS7においてADメモリアドレスカウン
タ84のカウント値Nが最大値に達したことを検出する
と、すなわちADメモリ86に設定されているアドレスおよ
びデータの全ての比較が終了すると、ステップS8にいて
OK信号を出力する。このOK信号がADコンパレータ66の端
子R12からプロテクトプロセサ58に与えられ、プロテク
トプロセサ58からはマイクロブロセサ22に対してAD比較
動作が全て終了したことを表す信号KD0が出力される。
したがって、その後、マイクロプロセサ22によって、フ
ァンクションレジスタ62のデータを書き換えることが可
能となる。マイクロプロセサ22は、さらにバンクコント
ローラ40を制御することによって、図3のマイクロプロ
セサ空間のC000〜FFFFに割り当てられるバンクをモニタ
ROM38からユーザROM42へ切り換えること、すなわちモニ
タモードからユーザモードへ切り換えることができる。
もし、ステップS5においてAD比較動作の結果、データ
の不一致または異常が検出されると、ADコンパレータ66
から、次のステップS9において、プロテクトプロセサ58
に対して不一致信号が与えられる。すなわち、ADコンパ
レータ66の端子R13を“0"とし、端子R21を“1"とする。
応じて、このプロテクトプロセサ58から、エラー信号K2
Cが本体14のマイクロプロセサ22に与えられる。
ステップS10において、マイクロプロセサ22による周
辺メモリ(少なくとも外部メモリ10や必要に応じて別に
付けられているメモリや内部メモリ)に対する書き込み
モードおよび/または読み出しモードが禁止される。こ
れによって、外部メモリ10が不正なものであった場合、
マイクロプロセサ22からユーザROM42へアクセスが禁止
されることになる。
ステップS11において周辺メモリのチェック(たとえ
ばその周辺メモリの書込み/読出しのチェック)が行わ
れる。その後、ステップS12において周辺メモリが正常
であると判断されると、マイクロプロセサ22はバンクコ
ントローラ40を制御して、マイクロプロセサアドレス空
間のC000〜FFFFにユーザROM42のバンク割り当てる。こ
れにより、ユーザモードへ移行する。
なお、ステップS12において周辺メモリの不良が判断
されると、ステップS14においてエラーメッセージを表
示するなどのエラー処理が行われる。
そして、ステップS15において、ユーザROM42に予めス
トアされているユーザプログラムを実行する。これによ
って、それ以後、外部メモリ10の本来の使用目的である
ユーザプログラムの実行が可能になる。そして、ユーザ
プログラムの実行中にステップS16においてリセット信
号が検出されると、ステップS14に後続するステップS17
においてリセットが検出されるときと同じように、先の
ステップS1に戻り、上述の動作が再び実行される。
以上の説明において、ステップS4〜S10のAD比較動作
はハードウェア的に行われるものであって、ステップS1
〜S3とステップS11〜S17のソフトウェア的処理と同時に
処理される。したがって、上述のステップS2の処理に基
づいてAD比較が起動された後は、ステップS3とステップ
S11〜S17のソフトウェア処理中のいずれの時点であって
も、スタートアドレス比較器78にスタートアドレスが検
出されれば、その瞬間にAD比較動作が開始される。
なお、正規の外部メモリ10であることが検出された後
であっても、ユーザプログラムの実行中に外部メモリ10
のプロテクトプロセサ58および本体14のプロテクトプロ
セサ28のいずれか一方が演算処理結果の不一致を検出す
ると、本体14のプロテクトプロセサ28がマイクロプロセ
サ22の書き込みモードおよび/または読み出しモードを
禁止する。このように、正規の外部メモリであることが
検出された後に、プロテクトプロセサ28および58のいず
れかが異常を検出する場合としては、前述のAD比較動作
が実行された後に、ユーザROM42のデータを複製するた
めに、外部メモリ10を本体から取り外してプログラムデ
ータを出力(ダンプ)することが考えられる。しかしな
がら、この実施例におけるように、外部メモリ10と本体
14との両方にプロテクトプロセサ58および28を設け、か
つAD比較動作後も常にそれによるチェックを行うように
すれば、外部メモリ10を本体14から取り外して、たとえ
ばROMリーダにかけても、ユーザROM42を読み出すことは
できず、したがって、ユーザROM42の複製が完全に防止
できる。
なお、外部メモリ10は、より好ましくは、第1図図示
の各回路部分が1チップLSIで構成される。そうすれ
ば、ユーザROM42だけを基板から取り外して複製したり
することは全く不可能となり、また接続コネクタ12を別
の情報処理装置を用いて直接アクセスすることもでき
い。したがって、完全なプロテクトが実現できる。
また、上述の実施例では、電源投入時またはリセット
検出時にモニタROM38の管理プロテクトプロセサに基づ
いてモニタモードを実行し、モニタモードで、正規の外
部メモリ10であることすなわちユーザROM42とモニタROM
38およびADコンパレータ66とが所定の関係にあることを
判断した後、ユーザROM42に切り換えてより一層完全な
セキュリティのためにプロテクトプロセサ58および28に
よるプロテクト動作を実行した。しかしながら、この発
明は、このような実施例に限らず、プロテクトプロセサ
28および58を用いないものにも適用できることはいうま
でもない。この場合でも、モニタROM42およびADコンパ
レータ66と所定の関係にないユーザROM42に交換されて
接続されても、その不正使用を確実に排除できる。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すブロック図である。 第2図は第1図実施例の外部メモリが装着され得るゲー
ム機の一例を示すブロック図である。 第3図は本体のマイクロプロセサのアドレス空間と外部
メモリのモニタROMおよびユーザROMのバンクとの関係を
示す図解図である。 第4図はリセット検出回路の一例を示す回路図である。 第5図は第4図図示のリセット検出回路の動作を説明す
るタイミング図である。 第6図はADコンパレータの一例を示す詳細なブロック図
である。 第7図はシステム全体の動作を示すフロー図である。 図において、10は外部メモリ、14は本体、24はマイクロ
プロセサ、28および58はプロテクトプロセサ、38はモニ
タROM、40はバンクコントローラ、42はユーザROM、66は
ADコンパレータを示す。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 12/14 G06F 9/06

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】システムクロックに応じて動作するユーザ
    プログラムをストアするための第1のメモリ、 前記第1のメモリを管理するための管理プログラムをス
    トアするための第2のメモリ、 前記第1のメモリの前記ユーザプログラムのnステップ
    毎(nは2以上の整数)に、前記ユーザプログラムの実
    行に関連するデータを予めストアする第3のメモリ、 前記システムクロックをn分周した信号に基づいて前記
    第3のメモリからデータを読み出す読み出し手段、およ
    び 前記第1のメモリから読み出されるデータと前記第3の
    メモリから読み出される前記データとが所定の関係にあ
    るか否かを判断するための判断手段を備え、 前記判断手段が前記所定の関係にないと判断したとき前
    記第1のメモリへのアクセスが禁止される、外部メモ
    リ。
  2. 【請求項2】前記ユーザプログラムは複数のプログラム
    ステップを有し、 第3のメモリには前記ユーザプログラムの一部のプログ
    ラムステップについて前記データがストアされていて、 前記第1のメモリから読み出された前記データのうち前
    記一部のプログラムステップについての前記データを前
    記判断手段に与えるためのデータ付与手段を備える、特
    許請求の範囲第1項記載の外部メモリ。
  3. 【請求項3】前記第3のメモリには前記データとして前
    記第1のメモリのアドレスおよびそのアドレス内のデー
    タの少なくとも一方に相当するデータがストアされてい
    て、前記第1のメモリから読み出された前記データはそ
    のアドレスおよびそのアドレス内のデータの少なくとも
    一方を含む、特許請求の範囲第2項記載の外部メモリ。
  4. 【請求項4】前記それぞれのデータは、前記第1のメモ
    リのそれぞれ複数ビットのアドレスおよびそのアドレス
    内のデータのうち所定の1つまたは2つ以上のビットか
    らなる、特許請求の範囲第3項記載の外部メモリ。
  5. 【請求項5】前記データ付与手段は、前記第1のメモリ
    から読み出されたそれぞれ複数ビットの前記第1のメモ
    リのアドレスおよびそのアドレス内のデータのうち前記
    所定の1つまたは2つ以上のビットを選択的に前記判断
    手段に付与する手段を含む、特許請求の範囲第4項記載
    の外部メモリ。
  6. 【請求項6】前記外部メモリは情報処理装置に着脱自在
    に構成され、前記情報処理装置のリセット状態を検出す
    るリセット検出手段をさらに備え、 前記第1のメモリは相対的に小さな記憶容量毎に分割さ
    れた複数のバンクで構成された、相対的に大きな記憶容
    量を有し、 前記第2のメモリは相対的に小さな記憶容量を有し、 前記判断手段は前記リセット検出手段の検出出力に応答
    して判断動作を開始し、さらに 前記リセット検出手段のリセット検出出力に応答して前
    記第2のメモリを選択し、前記判断出力が前記所定の関
    係にあることを判断したことに応答して前記第1のメモ
    リのいずれかの前記バンクへのアクセスを可能にするバ
    ンク制御手段を備える、特許請求の範囲第1項記載の外
    部メモリ。
  7. 【請求項7】システムクロックに応じて動作するユーザ
    プログラムをストアするための第1のメモリ、前記第1
    のメモリを管理するための管理プログラムをストアする
    ための第2のメモリ、および前記ユーザプログラムのn
    ステップ毎(nは2以上の整数)に、前記ユーザプログ
    ラムの実行に関連するデータを予めストアする第3のメ
    モリを含む外部メモリ、および 前記外部メモリが装着され、前記第1のメモリの前記ユ
    ーザプログラムに従って動作する情報処理手段を備え、 前記外部メモリは、さらに、前記システムクロックをn
    分周した信号に基づいて前記第3のメモリからデータを
    読み出す読み出し手段、前記第1のメモリから読み出さ
    れるデータと前記第3のメモリから読み出される前記デ
    ータとが所定の関係にあるか否か判断するための判断手
    段、および前記判断手段が前記所定の関係にないと判断
    したとき前記第1のメモリへのアクセスを禁止する手段
    を含む、情報処理装置。
JP63182694A 1988-07-21 1988-07-21 外部メモリとそれを用いる情報処理装置 Expired - Lifetime JP2820938B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63182694A JP2820938B2 (ja) 1988-07-21 1988-07-21 外部メモリとそれを用いる情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63182694A JP2820938B2 (ja) 1988-07-21 1988-07-21 外部メモリとそれを用いる情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP7239334A Division JP2739197B2 (ja) 1995-07-20 1995-07-20 複製防止装置

Publications (2)

Publication Number Publication Date
JPH0231256A JPH0231256A (ja) 1990-02-01
JP2820938B2 true JP2820938B2 (ja) 1998-11-05

Family

ID=16122801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63182694A Expired - Lifetime JP2820938B2 (ja) 1988-07-21 1988-07-21 外部メモリとそれを用いる情報処理装置

Country Status (1)

Country Link
JP (1) JP2820938B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2509733Y2 (ja) * 1990-01-12 1996-09-04 曙ブレーキ工業株式会社 ブレ―キ液圧制御装置
DE4032784A1 (de) * 1990-03-23 1991-09-26 Bosch Gmbh Robert Hydraulische zweikreisbremsanlge
DE4010410A1 (de) * 1990-03-31 1991-10-02 Bosch Gmbh Robert Hydraulische zweikreisbremsanlage
JPH06161902A (ja) * 1992-11-26 1994-06-10 Nintendo Co Ltd 補助記憶媒体の真偽判別装置およびそれに用い られる補助記憶装置
JP2001209531A (ja) * 2000-01-25 2001-08-03 Nintendo Co Ltd 半導体記憶装置およびプログラム判別システム
JP4594475B2 (ja) * 2000-02-14 2010-12-08 任天堂株式会社 プログラム判別システム
JP4827395B2 (ja) * 2004-09-30 2011-11-30 キヤノン株式会社 情報処理装置およびデータ管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442486A (en) * 1981-11-25 1984-04-10 U.S. Philips Corporation Protected programmable apparatus
NL8201847A (nl) * 1982-05-06 1983-12-01 Philips Nv Inrichting voor het beschermen tegen onbevoegd uitlezen van in een geheugen te memoriseren programmawoorden.
JPH0330916Y2 (ja) * 1986-01-17 1991-06-28

Also Published As

Publication number Publication date
JPH0231256A (ja) 1990-02-01

Similar Documents

Publication Publication Date Title
EP0851358B1 (en) Processing system security
KR100929870B1 (ko) 컴퓨터 시스템의 바이오스 보안 유지방법
KR100543268B1 (ko) 컴퓨터 시스템의 보안성을 향상시키는 보안용 코프로세서
JPH0855023A (ja) データ処理システムおよびその方法
JP3343998B2 (ja) 制御装置
US6141774A (en) Peripheral device with access control
EP0602867A1 (en) An apparatus for securing a system platform
JP2820938B2 (ja) 外部メモリとそれを用いる情報処理装置
JPH07141153A (ja) 制御装置
WO1993002419A1 (en) Protection system for computers
JP2739197B2 (ja) 複製防止装置
JPH0695971A (ja) データ保存回路
JP4114004B2 (ja) 半導体集積回路
JP2738375B2 (ja) ビデオゲームシステム、情報処理装置、及びそのソフトウエア貯蔵手段
JPH08235073A (ja) マイクロコンピュータ
JP3918089B2 (ja) メモリ保護回路
JP3501130B2 (ja) 制御装置
JPS6329859A (ja) 記憶保護装置
JP3404354B2 (ja) インサーキットエミュレータ及び不正アクセス検出方法
JP2000030000A (ja) 電子機器装置
SU1453408A1 (ru) Устройство дл отладки микропроцессорной системы
JP4236808B2 (ja) 不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法
JPS63189946A (ja) メモリ書き込みプロテクト回路
JPS62251833A (ja) 計算機システム
JPH02238536A (ja) 記憶保護回路

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20080828

Year of fee payment: 10

EXPY Cancellation because of completion of term