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

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

Info

Publication number
JPH0231256A
JPH0231256A JP63182694A JP18269488A JPH0231256A JP H0231256 A JPH0231256 A JP H0231256A JP 63182694 A JP63182694 A JP 63182694A JP 18269488 A JP18269488 A JP 18269488A JP H0231256 A JPH0231256 A JP H0231256A
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.)
Granted
Application number
JP63182694A
Other languages
English (en)
Other versions
JP2820938B2 (ja
Inventor
Kunihiro Tanaka
邦寛 田中
Katsuya Nakagawa
克也 中川
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野] この発明は外部メモリとそれを用いる情報処理装置に関
する。より特定的には、この発明は、パーソナルコンピ
ュータやビデオゲーム装置等の情報処理装置に対して着
脱自在に装着される、外部メモリとそれを用いる情報処
理装置に関する。
〔従来技術〕
情報処理装置に装着される外部メモリに記録ないし記憶
されている情報は、本来の正常な使用状態では、その情
報処理装置によって自由にアクセスされ得る。
〔発明が解決しようとする課題〕
しかしながら、従来のいずれの外部メモリにおいても、
本来の正常な使用状態ではない場合、たとえばプログラ
ムの不正複製の目的でも読み出し可能であった。そのた
め、プログラムの不正使用等を防止し、その秘密性を厳
格に保持する方法がなかった。
すなわち、従来の外部メモリにおいて、その外部メモリ
が真正なものであるかどうかをチエツクする方法が、た
とえば、昭和61年12月27日、昭和62年1月9日
、または昭和62年4月16日付でそれぞれ出願公開さ
れた特開昭61−296433号、特開昭62−333
1号、または特開昭62−82987号公報等において
開示されている。これらの公報に開示されている技術で
は、情報処理装置本体と外部メモリの両方に同じマイク
ロプロセサを装着しておき、その2つのマイクロプロセ
サの間で所定の演算を行ないその結果を逐一比較するこ
とによって、外部メモリがその情報処理装置に対して使
用を許可された真正なものであるかどうかをチエツクす
る。
しかしながら、このような方法によっても、なお、外部
メモリが本来の使用状態で使用されていない場合のプロ
グラムの読み出しを禁止することはできなかった。
それゆえに、この発明の主たる目的は、外部メモリの本
来の正常な使用状態ではない場合のプロダラムの読み出
しを有効に防止し得る、外部メモリを提供することであ
る。
〔課題を解決するための手段〕
この発明に従った外部メモリ(10)は、本来の使用目
的によって決まるユーザプログラムをストアするための
第1のメモリ(42L第1のメモリを管理するための管
理プログラムをストアするための第2のメモリ(38L
第1のメモリのユーザプログラムの実行に関連するデー
タを予めストアする第3のメモリ(66,86)、およ
び第2のメモリの管理プログラムに従って第1のメモリ
から読み出されるデータと第3のメモリに予めストアさ
れているデータとが所定の関係にあるか否か判断するた
めの判断手段(66,88)を備え、判断手段が所定の
関係にないと判断したとき第1のメモリへのアクセスが
禁止される、外部メモリである。
また、この発明に従った情報処理装置は、んらいの使用
目的によって決まるユーザプログラムをストアするため
の第1のメモリ(42L第1のメモリを管理するための
管理プログラムをストアするための第2のメモリ(3B
)、第1のメモリのユーザプログラムの実行に関連する
データを予めストアする第3のメモリ(66,86)を
含む外部メモリ(10)、および外部メモリが装着され
、第1のメモリの前記ユーザプログラムに従って動作す
る情報処理手段(14,22)を備え、外部メモリは、
さらに第2のメモリの管理プログラムに従って第1のメ
モリから読み出されるデータと第3のメモリから読み出
されるデータとが所定の関係にあるか否か判断するため
の判断手段(88)を含み、情報処理手段は判断手段が
所定の関係にないと判断したとき第1のメモリへのアク
セスを禁止する手段(22)を含む。
〔作用〕
第3のメモリには、第1のメモリのユーザプログラムの
実行に関連するデータ、たとえばそのユーザプログラム
の各プログラムステップのアドレスおよび/またはその
アドレス内のデータが予めストアされる。好ましくは、
そのようなデータはそれぞれ1ビツトのデータとしてス
トアされる。
外部メモリが情報処理手段に装着されると、第2のメモ
リのがアクセスされて、まず、管理プログラムが実行さ
れ、その管理プログラムの実行に従って、第1のメモリ
から、ユーザプログラムの各プログラムステップのアド
レスおよび/またはそのアドレス内のデータが逐次読み
出される。好ましくは、これらのデータのたとえば1ビ
ツトが、判断手段に与えられる。このとき、一方、第3
のメモリに予めストアされている上述のデータが逐次読
み出されて判断手段に与えられる。判断手段では、この
ようにして与えられる2つのデータを比較して、たとえ
ば両者が一致しているが否かのように、両者が所定の関
係にあるが否かを判断する。もし、判断手段において、
不一致ないし異常を検出すると、たとえば情報処理手段
の作用ないし制御によって、第1のメモリへのアクセス
が禁止される。
〔発明の効果〕
この発明によれば、外部メモリが情報処理装置に装着さ
れたとき、情報処理装置から第1のメモリにアクセスす
る前に、そのユーザプログラムの実行の許否が判断され
るので、正当に使用が許可されていない本来の正常な使
用状態でない場合にその外部メモリ内のデータや情報を
読み出したりすることはできない。したがって、この発
明によれば、外部メモリの秘密性が極めて厳格に保持さ
れ得る。
また、判断手段によって判断すべきデータが、第1のメ
モリのユーザプログラムの実行ないし進行に関連するデ
ータであるので、従来の「チエツクサム」などの方法に
比べて、非常に高い信頼性がある。すなわち、「チエツ
クサム」は、ユーザプログラムが実際に進行しなくても
可能であり、したがって、この方法では、その結果は完
全には信頼できるものとはならない。これに対して、こ
の発明に従えば、判断手段で判断すべきデータとして、
管理プログラムの実行によって第1のメモリから実際に
読み出されたデータが付与されるので、その結果は非常
に具体的でがっ信頼性が高いものとなる。したがって、
この発明によれば、たとえばゲームのためのプログラム
やコンピュータ通信のためのプログラム等の各種情報の
不正複製やデータの改変を防止できるので、秘密性が要
求される部の記憶等に非常に有利な外部メモリが得られ
る。
この発明の上述の目的、その他の目的、特徴および利点
は、図面を参照して行う以下の実施例の詳細な説明から
一層明らかとなろう。
C実施例〕 第1図に示す実施例の外部メモリ10は、接続コネクタ
12によって、第2図に示す情報処理装置すなわちこの
実施例ではゲーム機本体14に装着される。
第2図を参照して、ゲーム機本体14には、コントロー
ラ16aおよび16bが接続されるとともに、テレビジ
ョン受像機ないしCRTlBが接続される。本体14の
基板20上には、外部メモリ10に予めストアされてい
るプログラムに従ってゲームの進行を制御するためのマ
イクロプロセサ22が装着される。このマイクロプロセ
サ22に、I10インタフェース24を通して上述のコ
ントローラ16a、16bおよびCRTlBが接続され
る。基板20上には、さらに、PPU(Picture
 Processing 1Jnit:画像処理ユニッ
ト)26、プロテクトプロセサ28およびクロック発振
器30が接続される。このようなゲーム機本体14は、
たとえば「ファミリーコンピュータ」 (商標)あるい
は[任天堂エンターテイメントシステム(Ninten
do Entertaiment System: N
 E S J  (商標)としてよ(知られている。
マイクロプロセサ22としては、たとえば、任天堂株式
会社製の集積回路“2AO3”が、PP026としては
、たとえば、任天堂株式会社製の集積回路“2CO3”
がそれぞれ利用され得る。
また、プロテクトプロセサ28は、たとえば、任天堂株
式会社製の集積回路“l0NEs”のような4ビツトの
マイクロプロセサによって構成され得る。
マイクロプロセサ22.PPU26およびプロテクトプ
ロセサ28は、基板20上に形成された導電パターンを
通して、接続コネクタ36のそれぞれの接続端子に接続
される。この接続コネクタ36がおよび前述の接続コネ
クタ12によって、本体14に上述の外部メモリ10が
装着されるのである。
第1図を参照して、外部メモリIOには、モニタROM
3 Bが設けられ、このモニタROM3 Bは、たとえ
ば128にビットの容量を有し、接続コネクタ12を介
して、14ビツトのアドレス端子AO−A13に接続さ
れる゛とともに、8ビツトのデータ端子Do−D7に接
続される。このモニタROM3Bは、そのイネーブル端
子CEにバンクコントローラ40からのイネーブル信号
が与えられることによって、能動化される。そして、モ
ニタROM38は、ユーザROM42に記録されている
ユーザプログラムの保護およびそれの管理を行うととも
に、セキュリティ機能を起動し実行するためのモニタモ
ードのためのプログラムを含む。
ユーザROM42は、たとえば1Mビットの容量を有し
、ユーザモードのための上述のユーザプログラムを含む
とともに、本体14(第2図)の性質に応じて、ゲーム
データや通信制御データ等の本来の使用目的のためのプ
ログラムをストアする。このユーザROM42は、上述
の14ビツトのアドレス端子AO−A13および8ビツ
トのデータ端子DO〜D7に接続されるとともに、バン
クコントローラ40からのバンク指定データを受けるよ
うに、3ビツトのアドレス端子A14〜A16に接続さ
れる。なお、ユーザROM42もまた、そのイネーブル
端子CEに与えられるバンクコントローラ40からのイ
ネーブル信号によって能動化される。
第3図を参照して、本体14(第2図)に含まれるマイ
クロプロセサ22のアドレス空間は、それが8ビツトの
マイクロプロセサであるため、“。
FFFF”〜“oooo”であり、この限られたアドレ
ス空間によって大容量のユーザROM42をアクセスす
る場合、このユーザROM42を複数のバンクに分割し
て、それぞれのバンク毎にアクセスする。そのようなバ
ンクを選択するのが上述のバンクコントローラ40であ
る。ニー+y R0M42が128にビット毎のバンク
に分割される場合には、ユーザROM42はバンク0〜
バンク7を含み、256にビット毎のバンクに分割され
る場合には、バンク0〜バンク3を含む。バンクコント
ローラ40はバンクレジスタ44で保持されたバンクデ
ータに基づいて、ユーザROM42のバンクを選択的に
切り換える。
ただし、バンクコントローラ40は、リセット検出回路
46によってリセット操作がされたことを検出した場合
あるいは電源投入リセットがあった場合には、必ず、モ
ニタROM3Bを本体14のマイクロプロセサ22から
アクセス可能なバンクとして指定する。
バンクレジスタ44は、データバスを介して与えられる
バンクデータの内下位1ビットが“O”のとき、アドレ
ス空間“C000”〜“FFFF(ただし、16進表示
)でモニタROM38のメモリ空間を指定し、かつ“8
000”〜“BFFF”で−時的にユーザROM42を
指定する。
このように、モニタモードにおいてもアドレス空間“8
000”〜″BFFF”で、−時的または瞬間的にユー
ザROM42を選択可能にするのは、ユーザROM42
の成るデータを比較データとして利用しているためであ
る。また、バンクレジスタ44は、バンクデータの下位
1ビツトが“1”のとき、アドレス空間“8000”〜
″FFFF”でユーザROM42のいずれか1つまたは
2つのバンクを定常的に指定する。
リセット検出回路46は、第4図に示すようにD形フリ
ップフロップ(以下rD−FF、)48a〜48cおよ
び50a〜50cをそれぞれ3つずつ縦続接続したシフ
トレジスタ48および50と、インバータ51と、AN
Dゲート52と、NORゲート53と、ORゲート54
とを含む。
そして、シフトレジスタ48および50には、たとえば
1.778MHzのシステムクロ・ツクφ2がそれぞれ
のデータ人力りとして与えられる。
各D−FF48a 〜48cおよび50a〜50cには
、シフトクロックとして、たとえば3.58MHzのク
ロックCLKが直接またはインバータ51を介して与え
られる。したがって、システムクロックφ2またはその
遅延されたデータが、クロックCLKの立ち上がりでD
−FF48a〜48Cに書き込まれ、クロックCLKの
立ち下がりでD−FF50a〜50cに書き込まれる。
システムクロックφ2が正常に与えられている場合は、
第5図(C)ないしくH)に示すようになるので、AN
Dゲート52およびNORゲート53のいずれも、オー
ル“1”または0”を検出しない。したがって、ORゲ
ート54はリセット検出信号を出力しない。
一方、システムクロックφ2が3クロック期間以上欠落
して、たとえばローレベルになると、D−FF48a 
〜48cおよび50a〜50Cの全ての出力がローレベ
ルになる。したがって、N。
Rゲート53かつしたがってORゲート54からハイレ
ベルのリセット検出信号が出力される。
システムクロックφ2が3クロック期間以上欠落してハ
イレベルになると、第5図において2点鎖線で示すよう
に、D−FF48a〜48cおよび50a〜50cの全
ての出力がハイレベルになる。したがって、ANDゲー
ト52かつしたがってORゲート54からハイレベルの
リセット検出信号が出力される。
このようにして、リセット検出回路46では、システム
クロックφ2が上述のように3回連続して欠落すると、
リセット操作がかけられた等によって、システムがリセ
ット状態にあるとして検出する。この検出出力がORゲ
ート54から出力される。したがって、第1図に示すO
Rゲート56からは、電源投入時のリセット信号PWR
3Tまたはリセット検出回路46で検出したリセット信
号を出力する。
ORゲート56からのリセット信号はプロテクトプロセ
サ58に与えられる。このプロテクトプロセサ58は、
先に説明した第2図のプロテクトプロセサ28と同じで
あり、先に引用した特開昭61−296433号、特開
昭62〜3331号あるいは特開昭62−82987号
に開示されてい乞と同様の演算ないし計算を行い、この
外部メモリ10がゲーム機本体14に対して装着が許可
された真正なものであるかどうかを判断する。しかしな
がら、この発明においては、この点は重要ではないので
、ここではその詳細な説明は省略する。
暗号レジスタ60は前述のバンクコントローラ40を進
めるための特定のコードをストアするためのレジスタで
あり、そのコードはモニタROM38からセットされる
また、ファンクションレジスタ62は管理プログラムを
実行するモニタモードからユーザプログラムを実行する
ユーザモードへの切り換えを行うためのレジスタである
。このレジスタ62は、たとえば電源投入時またはリセ
ット検出時にオール“0′”が設定され、その下位1ビ
ツト(Do)が°“0”のときモニタROM38を指定
し、l”のときユーザROM42を指定する。
モニタROM3BがユーザROM42のワーキングエリ
アにファンクションレジスタ62およびバンクレジスタ
44のレジスタアドレスをセットするので、ユーザRO
M42において、間接的にこの2つのレジスタアドレス
を知ることができ、ユーザがこのレジスタアドレスを自
由にセットできる。しかしながら、ユーザがユーザRO
M42をセットしても、ファンクションレジスタ62に
よってユーザモードからモニタモードに切り換えること
はできない。すなわち、モニタモードの実行の後でしか
、ユーザモードには移行できない。
これによって、モニタモードにおける後述のチエツクを
受けないでユーザROM42のユーザプログラムを実行
することは、不可能である。このことも、セキュリティ
の一環として有効である。
なお、前述のバンクレジスタ44.暗号レジスタ60お
よびファンクションレジスタ62は、ともに、レジスタ
アドレスデコーダ64によって能動化される。すなわち
、レジスタアドレスデコーダ64は、外部メモIJ 1
0の能動化信号ROM5EL(=A15・φ2)および
15ビツトのアドレス端子AO〜A14のアドレスデー
タを受け、そのアドレスデータをデコードして、それぞ
れのレジスタ44.60および62を指定し、そのとき
モニタROM3 Bから必要なデータないしコードがそ
の指定されたレジスタにセットされる。
次に、この実施例の特徴の一つであるアドレス・データ
コンパレータ(以下rADコンパレータ」と略称する)
66について説明する。なお、以下にrADJと云うと
きは、−船釣なアナログ/ディジタルの意味ではなく、
アドレス・データを意味するものとして理解されたい。
ADコンパレータ66には、14ビツトのアドレス端子
AO−A13および8ビツトのデータ端子DO〜D7が
接続されるとともに、1つのアドレス端子A14ならび
に本体14からこの外部メモリ10を能動化するための
信号ROM5ELが与えられる。さらに、このADコン
パレータ66には、システムクロックφ2が与えられる
。簡単にいえば、このADコンパレータ66は、起動時
に、アドレス端子AO−A13のアドレスデータとデー
タ端子DO〜D7のデータとを、システムクロックφ2
のn分周のクロックレートでサンプリングし、そのそれ
ぞれを予めストアしているデータと比較し、1ビツトで
も不一致が発生すると上述の各レジスタ44.60およ
び62の書き換えを禁止するとともに、プロテクトプロ
セサ58に不一致の信号を送る。
第6図を参照して、ADコンパレータ66はアドレス端
子AO−A13およびイネーブル信号ROM5ELを受
けるアドレスバスデータラッチ68、およびデータ端子
DO−07からのデータを受けるデータバスデークラッ
チ70を含む。これらラッチ68および7oは対応のA
NDゲート72および74によってそのラッチタイミン
グが制御される。アドレスバスデータラッチ68に取り
込まれたアドレスデータはスタートアドレス比較器76
に与えられる。
スタートアドレス比較器76には、さらに、比較スター
トアドレス発生器78から16ビツトのスタートアドレ
スが与えられる。そして、スタートアドレス比較器76
に含まれる比較器76aによって、アドレスバスデータ
ラッチ68にラッチされたアドレスがその比較スタート
アドレスと一致するかどうかを判断し、一致すると、フ
リップフロップ76bがセットされる。そのため、アド
レスバスデータラッチ68にラッチされたアドレスデー
タが比較スタートアドレス発生器78に予め設定された
スタートアドレスと一致したとき、フリップフロップ7
6bからカウンタイネーブル信号が出力される。
カウンタイネーブル信号はP H12カウンタ80に与
えられる。このPHI2カウンタ80はシステムクロッ
クφ2およびその遅延された信号φ2DLをそのカウン
ト入力として受け、システムクロックφ2をステップデ
ータ発生器82で設定されるステップ数n毎に分周した
信号φ2 / nを出力する。そして、このPH12カ
ウンタからの分周されたクロック信号φ2 / nがA
Dメモリアドレスカウンタ84のカウント入力として与
えられる。
ADメモリ86は、たとえばIK×2ビットの容量を有
し、IK×1ビットがアドレス記憶領域86aとして、
また他のIK×1ビットがデータ記憶領域86bとして
それぞれ規定される。このADメモリ86には、ユーザ
ROM42にストアされるユーザプログラムが実際に進
行した場合に得られるステップデータ発生器82に設定
されたステップ数n毎の1024プログラムステツプ分
のアドレスデータおよびそのアドレス内のデータのそれ
ぞれ1ビツトがそれぞれの領域86aおよび86bに書
き込まれる。このようなアドレスデータおよびデータは
、ユーザROM42にストアされるユーザプログラムを
たとえばパーソナルコンピュータ等でシュミレートする
ことによって、ユーザプログラムができた段階で予め知
ることができる。そして、このADメモリ86のアドレ
スが、ADメモリアドレスカウンタ84からのアドレス
データAO−A9によって指定される。したがって、A
Dメモリアドレスカウンタ84のアドレス指定毎に、A
Dメモリ86からADアドレスおよびADデータがアド
レス・データ比較器88の一方入力Aとして与えられる
一方、アドレスバスデータセレクタ9oが設けられ、こ
のアドレスバスデータセレクタ90は、アドレスバスデ
ータラッチ6日からのアドレスデータを受けるとともに
、アドレスセレクタデータ発生器92からのセレクタデ
ータを受ける。アドレスセレクタデータ発生器92は、
15ビツトのアドレス端子AO−A14のいずれのビッ
トを比較ビットとして採用するかを表すセレクタデータ
を発生するものであり、したがってアドレスバスデータ
セレクタ90からは、その指定されたビットのアドレス
データがアドレス・データ比較器88に与えられる。
同じように、データバスデータセレクタ94が設けられ
、このデータバスデータセレクタ94には、データセレ
クタデータ発生器96から、データ端子Do−D7のど
のビットを比較ビットとして採用するかを表すデータが
与えられる。しだがって、データバスデータセレクタ9
4からは、その指定されたビットのデータが出力され、
そのデータビットは、先のアドレスバスデータセレクタ
90からのアドレスデータビットとともに、アドレス・
データ比較器88の他方人力Bに与えられる。
比較タイミングコントローラ98は、前M (7) シ
ステムクロックφ2およびその遅延信号φ2DLを受け
、主に、アドレス・データ比較器88における比較タイ
ミングを規定する比較ストローブ信号を出力する。した
がって、アドレス・データ比較器88では、比較タイミ
ングコントローラ98からの比較ストローブ信号が与え
られる都度、アドレスバスデータセレクタ90から出力
されたアドレスデータビットおよびデータバスデータセ
レクタ94から出力されるデータビットを、ADメモリ
86に予めストアされていてかつ読み出されたADアド
レスおよびADデータと比較する。
アドレス・データ比較器88によって両人力AおよびB
の不一致が検出されると、このアドレス・データ比較器
88から、ADコンパレータ66(第1図)の端子R2
1を通して、プロテクトプロセサ58(第1図)および
バンクレジスタ44およびファンクションレジスタ62
に対して不一致信号が与えられる。応じて、このプロテ
クトプロセサ58はその出力端子R12から、本体14
に含まれるマイクロプロセサ22にADエラー信号に2
Cを出力する。それによって本体14のマイクロプロセ
サ22は、この外部メモリ10を能動化するイネーブル
信号ROM5ELを禁止し、それによって外部メモリ1
0が不能動状態に強制される。
また、ADコンパレータ66からの不一致信号によって
、バンクレジスタ44およびファンクションレジスタ6
2が不能動化される。バンクコントローラ40がユーザ
ROM42のバンクを指定するのが禁止される。
なお、第6図のADコンパレータ66を示すブロック図
において、二重枠で示されるブロック7B、82.92
および96は、製造段階で設定された値を他人が解析す
るのを困難にするために、第1図に示す各レジスタ44
.60および62とともに、イオン注入法によって書き
込まれたROMまたはいわゆる「ワンタイムROMJが
用いられる。したがって、これらの回路78,82.9
2および96に不正使用者が適当なデータを書き込むこ
とはできない。
そして、上述の「ワンタイムROMJへのプリセット値
をユーザROM42の種類に応じて適宜設定することに
よって、プリセット値の異なる外部メモリとの互換を禁
止し、それによってユーザROM42だけを入れ換えて
使用するような、不正使用が確実に防止できる。
リセット検出回路46(第1図)からのリセット信号が
ある場合あるいは電源投入リセット信号PWR3Tがあ
る場合に、ORゲート56からリセット信号が出力され
、応じて、第7図に示す動作がスタートする。すなわち
、ORゲート56からリセット信号がプロテクトプロセ
サ58に与えられ、プロテクトプロセサ58と本体側の
プロテクトプロセサ28との間でデータの授受(通信)
が行われ、その通信が正常であれば、プロテクトプロセ
サ58から端子R20を通してADコンパレータ66に
対してスタート指令が与えられる。
この状態では、バンクコントローラ40は、モニタRO
M38を指定し、したがってマイクロプロセサ22(第
2図)はモニタROM38に予めストアされている管理
プログラムを実行する。
すなわち、最初のステップS1において、モニタROM
3Bのプログラムに従って初期設定が行われる。具体的
には、バンクレジスタ44.暗号レジスタ60およびフ
ァンクションレジスタ62に、その管理プログラムに予
め設定されている初期データが設定される。すなわち、
モニタROM38の管理プログラムによるモニタモード
を指定するために、ファンクションレジスタ66および
バンクレジスタ44のそれぞれの下位1ビツトに“0”
が設定される。
続くステップS2において、本体14のマイクロプロセ
サ22が、モニタROM3Bのプログラムで決まる所定
のアドレスから管理プログラムをスタートさせるトリガ
を発生する。応じてステップS3においてその管理プロ
グラムが実行され、モニタモードとなる。このとき、モ
ニタROM38の指定アドレスがADコンパレータ66
内のスタートアドレス比較器74.に与えられ、そのス
タートアドレスが比較スタートアドレス発生器78で予
め設定されているスタートアドレスになると、カウンタ
イネーブル信号がPHI2カウンタ84に与えられ、ス
テップS4において、前述のアドレス・データ(AD)
比較動作が実行される。
すなわち、マイクロプロセサ22はモニタROM38の
プログラムに従って、ADコンパレータ66のステップ
データ発生器82に設定されているステップ数nずつ飛
ばして瞬間的にユーザROM42のアドレスを順次指定
してそのアドレスのデータを読み出す。すなわち、バン
クコントローラ40は、リセット信号に応答してまずモ
ニタROM38がマイクロプロセサ22によってアクセ
ス可能なようにこのモニタROM38を選択し、一連の
AD比較動作が終了した後に、ユーザROM42の必要
なバンクに切り換える。しかしながら、このAD比較動
作においてユーザROM42のアドレスおよびデータを
読み出すときには、このバンクコントローラ40によっ
て、瞬間的にユーザROM42の所定のバンクを指定す
ることができる。このようにして読み出されたアドレス
データおよびデータが、アドレス端子AO−A14およ
びデータ端子DO〜D7を通して、ADコンパレータ6
6内のラッチ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に設定されているアドレ
スおよびデータの全ての比較が終了すると、ステップS
8においてOK倍信号出力する。このOK倍信号ADコ
ンパレータ66の端子R12からプロテクトプロセサ5
8に与えられ、プロテクトプロセサ58からはマイクロ
プロセサ22に対してAD比較動作が全て終了したこと
を表す信号KDOが出力される。したがって、マイクロ
プロセサ22は、その後、ファンクシランレジスタ62
のデータを書き換え、それによってバンクコントローラ
40によるモニタROM3BからユーザROM42への
バンク切り換えすなわちモニタモードからユーザモード
の切り換えを可能にする。
もし、ステップS5においてAD比較動作の結果、デー
タの不一致または異常が検出されると、ADコンパレー
タ66から、次のステップS9において、プロテクトプ
ロセサ58に対して不一致信号が与えられる。すなわち
、ADコンパレータ66の端子R13を“O″とし、端
子R21を“1”とする。応じて、このプロテクトプロ
セサ58から、エラー信号に2Cが本体14のマイクロ
プロセサ22に与えられる。
マイクロプロセサ22は、ステップSIOにおいて、周
辺メモリ(少なくとも外部メモリ10や必要に応じて別
に付けられているメモリや内部メモリ10)に対する書
き込みモードおよび/または読み出しモードを禁止する
。これによって、外部メモリ10が不正なものであった
場合、マイクロプロセサ22からユーザROM42への
アクセスが禁止されることになる。
先のステップS8において、OK倍信号出力されると、
ステップSllにおいて周辺メモリのチエツク(たとえ
ばその周辺メモリの書き込み/読み出しのチエツク)が
行われる。その後、ステップS12において周辺メモリ
が正常であると判断すると、マイクロプロセサ22はバ
ンクコントローラ40を制御して、モニタROM38か
らユーザROM42にバンクを切り換える。すなわち、
マイクロプロセサ22はバンクコントローラ40ヘユー
ザROM42のバンク切り換えデータを設定し、それ以
後はマイクロプロセサ22のアドレス空間で指定できる
アドレスが、連続的にユーザROM42のものとなる。
なお、ステップ312において周辺メモリの不良が判断
されると、ステップ314においてエラーメツセージを
表示するなどのエラー処理が行われる。
そして、ステップ515において、ユーザROM42に
予めストアされているユーザプログラムを実行する。こ
れによって、それ以後、外部メモリlOの本来の使用目
的であるユーザプログラムの実行が可能になる。そして
、ユーザプログラムの実行中にステップS16において
リセット信号が検出されると、ステップS14に後続す
るステップ317においてリセットが検出されるときと
同じように、先のステップSlに戻り、上述の動作が再
び実行される。
なお、正規の外部メモリ10であることが検出された後
であっても、ユーザプログラムの実行中に外部メモリ1
0のプロテクトプロセサ5日および本体14のプロテク
トプロセサ28のいずれか一方が演算処理結果の不一致
を検出すると、本体14のプロテクトプロセサ28がマ
イクロプロセサ22の書き込みモードおよび/または読
み出しモードを禁止する。このように、正規の外部メモ
リであることが検出された後に、プロテクトプロセサ2
8および58のいずれかが異常を検出する場合としては
、前述のAD比較動作が実行された後に、ユーザROM
42のデータを復製するために、外部メモリ10を本体
から取り外してプログラムデータを出力(ダンプ)する
ことが考えられる。しかしながら、この実施例における
ように、外部メモリlOと本体14との両方にプロテク
トプロセサ58および28を設け、かつAD比較動作後
も常にそれによるチエツクを行うようにすれば、外部メ
モリ10を本体14から取り外して、たとえばROMリ
ーグにかけても、ユーザROM42を読み出すことはで
きず、したがって、ユーザROM42の複製が完全に防
止できる。
なお、外部メモリlOは、より好ましくは、第1図図示
の各回路部分が1チツプLSIで構成される。そうすれ
ば、ユーザROM42だけを基板から取り外して複製し
たりすることは全く不可能となり、また接続コネクタ1
2を別の情報処理装置を用いて直接アクセスすることも
できない。したがって、完全なプロテクトが実現できる
また、上述の実施例では、電源投入時またはリセット検
出時にモニタROM38の管理プロテクトプロセサに基
づいてモニタモードを実行し、モニタモードで、正規の
外部メモリ10であることすなわちユーザROM42と
モニタROM3BおよびADコンパレータ66とが所定
の関係にあることを判断した後、ユーザROM42に切
り換えてより一層完全なセキュリティのためにプロテク
トプロセサ58および28によるプロテクト動作を実行
した。しかしながら、この発明は、このような実施例に
限らず、プロテクトプロセサ28および5日を用いない
ものにも適用できることはいうまでもない。この場合で
も、モニタROM42およびADコンパレータ66と所
定の関係にないユーザROM42に交換されて接続され
ても、その不正使用を確実に排除できる。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すブロック図である。 第2図は第1図実施例の外部メモリが装着され得るゲー
ム機の一例を示すブロック図である。 第3図は本体のマイクロプロセサのアドレス空間と外部
メモリのモニタROMおよびユーザROMのバンクとの
関係を示す図解図である。 第4図はリセット検出回路の一例を示す回路図である。 第5図は第4図図示のリセ7)検出回路の動作を説明す
るタイミング図である。 第6図はADコンパレータの一例を示す詳細なブロック
図である。 第7図はシステム全体の動作を示−すフロー図である。 図において、10は外部メモリ、14は本体、24はマ
イクロプロセサ、28および58はプロテクトプロセサ
、38はモニタROM、40はバンクコントローラ、4
2はユーザROM、66はADコンパレータを示す。 特許出願人    任天堂株式会社 代理人 弁理士 山 1) 義 人 第 図 第 図

Claims (1)

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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5156449A (en) * 1990-03-31 1992-10-20 Robert Bosch Gmbh Hydraulic dual-circuit brake system
US5165764A (en) * 1990-01-12 1992-11-24 Katsuka Miyake Braking hydraulic pressure control device
US5180215A (en) * 1990-03-23 1993-01-19 Robert Bosch Gmbh Hydraulic dual-circuit brake system
US5550999A (en) * 1992-11-26 1996-08-27 Nintendo Co., Ltd. Information processing system which can check secondary storage medium having prescribed relation therewith and secondary storage device therefor
JP2001222423A (ja) * 2000-02-14 2001-08-17 Nintendo Co Ltd 半導体記憶装置およびプログラム判別システム
US6578132B1 (en) 2000-01-25 2003-06-10 Nintendo Co., Ltd. Semiconductor storage device and program authenticity determining system
JP2006099512A (ja) * 2004-09-30 2006-04-13 Canon Inc 画像処理装置およびデータ管理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58101349A (ja) * 1981-11-25 1983-06-16 ザ・マグナボツクス・コンパニ− プログラム・メモリ識別方法及びデ−タ処理システム
JPS58208849A (ja) * 1982-05-06 1983-12-05 エヌ・ベ−・フイリツプス・フル−イランペンフアブリケン プログラム・ワ−ド無断読取防止装置
JPS62117650U (ja) * 1986-01-17 1987-07-25

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58101349A (ja) * 1981-11-25 1983-06-16 ザ・マグナボツクス・コンパニ− プログラム・メモリ識別方法及びデ−タ処理システム
JPS58208849A (ja) * 1982-05-06 1983-12-05 エヌ・ベ−・フイリツプス・フル−イランペンフアブリケン プログラム・ワ−ド無断読取防止装置
JPS62117650U (ja) * 1986-01-17 1987-07-25

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165764A (en) * 1990-01-12 1992-11-24 Katsuka Miyake Braking hydraulic pressure control device
US5180215A (en) * 1990-03-23 1993-01-19 Robert Bosch Gmbh Hydraulic dual-circuit brake system
US5156449A (en) * 1990-03-31 1992-10-20 Robert Bosch Gmbh Hydraulic dual-circuit brake system
US5550999A (en) * 1992-11-26 1996-08-27 Nintendo Co., Ltd. Information processing system which can check secondary storage medium having prescribed relation therewith and secondary storage device therefor
CN1067168C (zh) * 1992-11-26 2001-06-13 任天堂株式会社 一种可判别辅助存储媒体真伪的信息处理装置
US6578132B1 (en) 2000-01-25 2003-06-10 Nintendo Co., Ltd. Semiconductor storage device and program authenticity determining system
DE10103222B4 (de) * 2000-01-25 2008-11-20 Nintendo Co., Ltd. Halbleiter-Speichereinrichtung und Programm-Unterscheidungssystem
JP2001222423A (ja) * 2000-02-14 2001-08-17 Nintendo Co Ltd 半導体記憶装置およびプログラム判別システム
JP4594475B2 (ja) * 2000-02-14 2010-12-08 任天堂株式会社 プログラム判別システム
JP2006099512A (ja) * 2004-09-30 2006-04-13 Canon Inc 画像処理装置およびデータ管理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Also Published As

Publication number Publication date
JP2820938B2 (ja) 1998-11-05

Similar Documents

Publication Publication Date Title
US9311255B2 (en) Multi-layer content protecting microcontroller
US8341475B2 (en) Microprocessor comprising signature means for detecting an attack by error injection
US6622184B1 (en) Information processing system
JPH0713873A (ja) チップ・カードのキーを保護する装置
US7454169B2 (en) Method and apparatus for use in securing an electronic device such as a cell phone
JP2006505798A (ja) 機密保護走査試験のための方法および装置
JP2003510684A (ja) プログラム実行を保護するための方法
KR100578459B1 (ko) 예측 불가능 마이크로프로세서 또는 마이크로컴퓨터
JPH0231256A (ja) 外部メモリとそれを用いる情報処理装置
JP2003299862A (ja) 遊技機制御用チップ及び遊技機制御方法
JPH08185361A (ja) 半導体集積回路装置
US20060265570A1 (en) Secured coprocessor comprising means for preventing access to a unit of the coprocessor
JP2000148594A (ja) Romデータの読み出しプロテクト回路
JP2739197B2 (ja) 複製防止装置
JPH0695971A (ja) データ保存回路
JP2738375B2 (ja) ビデオゲームシステム、情報処理装置、及びそのソフトウエア貯蔵手段
JPH0475137A (ja) データ処理装置
JPH0540836A (ja) シングルチツプマイクロコンピユータ
JP3404354B2 (ja) インサーキットエミュレータ及び不正アクセス検出方法
JP4114004B2 (ja) 半導体集積回路
JP2000030000A (ja) 電子機器装置
JPH10275139A (ja) 1チップマイクロコンピュータのテスト方法及び1チップマイクロコンピュータ
CN116203886A (zh) 一种应用于fpga的高安全电路
JPS60150150A (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