JPH0934795A - Cpuプログラムのコピープロテクト法 - Google Patents

Cpuプログラムのコピープロテクト法

Info

Publication number
JPH0934795A
JPH0934795A JP7215119A JP21511995A JPH0934795A JP H0934795 A JPH0934795 A JP H0934795A JP 7215119 A JP7215119 A JP 7215119A JP 21511995 A JP21511995 A JP 21511995A JP H0934795 A JPH0934795 A JP H0934795A
Authority
JP
Japan
Prior art keywords
signal
rom
read
memory
output
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.)
Ceased
Application number
JP7215119A
Other languages
English (en)
Inventor
Shunji Kayano
俊二 柏野
Yoshitaka Nakagawa
良孝 中川
Yukiya Kitani
友喜也 木谷
Hiroshi Kawagishi
弘志 河岸
Atsushi Inaba
敦志 稲葉
Tetsuya Katou
鉄也 河▲とう▼
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.)
NASUKA KK
Original Assignee
NASUKA KK
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 NASUKA KK filed Critical NASUKA KK
Priority to JP7215119A priority Critical patent/JPH0934795A/ja
Publication of JPH0934795A publication Critical patent/JPH0934795A/ja
Ceased legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【目的】 コンピュターシステムに於いて、メモリーの
内容をシステムの外部より容易にコピーされない事を目
的とする。 【構成】 CPUのプログラムのコピーをプロテクトす
る方法に於いて、ROM内蔵のカスタムCPUを設計す
る際に、ライトステートマシン内蔵のメモリーを使う事
を前提に、例えばフラッシュROM等を使う事を前提に
して、また、メモリー(ROM)にはプログラムしか存
在させない事も前提としてメモリー(ROM)のアウト
プットイネーブル信号をCPUのプログラムカウンター
によるインストラクションフェッチサイクル信号にのみ
イネーブルできるようにしたカスタムCPUである。ま
た、加うるにROMへステータスをリードできるコマン
ドを与えた後のサイクル等でもアウトプットイネーブル
とするカスタムCPUである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】ゲーム機などに於けるプログラム
ソフトのコピーのプロテクトをする方法、及びカスタム
CPUに関する。
【0002】
【従来の技術】通常、プログラムソフトはROMやRA
Mなどに格納されているため、特にROMは不揮発性な
のでいとも簡単に読み出してコピーされた。そこでRO
MをCPUチップと一緒にパッケイジ化をしたり、CP
Uチップと一緒に1チップ化をしたりしてICレベルの
パターン化を行ったり、またバッテイリーバックアップ
をしたRAMの搭載をしたりしてしていた。これらはチ
ップやパッケージの開封時に配線パターンや電池を破壊
したりして物理的に壊れるようになっており、ROMや
RAMだけを取り出し触れないようにすることによりコ
ピーのプロテテクトを行っていた。
【0002】それはそれなりに目的を達成したが、しか
しROMへのプログラムの書き込みは、マスクROMだ
とマスクROMのパターンを作ってからパッケージに封
入し、またチップが出来てから内容の確認のため読み出
してみてベリファイチェックを行う必要があるといった
問題点があった。またイレーザプルなROMの場合はパ
ッケージに封入してから書き込む方法もとられ、この場
合も読み出してみてベリファイチェックを行う必要があ
った。またROMの代わりにRAMなどを搭載した場合
も、RAMに書き込んだあと、読み出してみてベリファ
イチェックを行う必要があった。
【0003】このように製造の段階で、書き込んだ内容
が正しく書き込まれているか確認のための読み出し手段
が、必ず必要であった。そして一般にそれらの読み出し
手段は、読み出しの手順が特異であるのみで、即ち特別
に設けた信号に特別な電圧をかけるといった特異な手順
がとられ、メーカーなら可能な方法だが一般には少し難
しいといった程度の手法であるに過ぎなかった。しかし
一方、特殊ではあるが製造工程の中で行える容易な手段
である事がメーカーと言えども必要でもあった。しか
し、同時にこの秘密にされた読み出し手段や方法が知れ
てしまうと、コピープロテクトの意味が無くなるので、
一方では手順が簡単でいとも容易であってはいけないと
言う矛盾した問題点でもあった。
【0004】例えば、ベリファイチェックが間接的にサ
ムチェックのみのチエックといった簡単な方法では製造
工程の信頼性が確保できないと言う理由から、直接デー
タを読み出す方法がとられていた。しかし読み出すには
違いないが、間接的な読み出しの中間的なチェック方法
の一つである、書き込み時のライトモデイファイリード
のように書き込みながらデータバスにはデータを読み出
す事なく読み出し照合のみをとり、その照合結果のみを
ステータス信号として保存し、その後ROMのステータ
ス信号のみを外部に読み出せるようにした、ライトステ
ータスマシンを内蔵したメモリーもあった。
【0005】しかし、この手法はデータを直接ROMの
外部へ読み出す事はないがプロテクトを目的とした物で
はなく、書き込みの効率化のための物であった。したが
ってROM内には、一般的な通常のリード/ライトが可
能なデータエリアの存在を当然想定しており、従ってそ
のデータエリアとしてのリードアクセスが可能であっ
た。このことは通常のプログラムでのリード行為である
メモリーダンププログラムによる読み出しも可能である
事を意味し、プロテクトにはならないと言う問題点があ
った。
【0006】
【発明が解決しようとする課題】本発明の課題とすると
ころは、プログラムエリアにプログラムを書くことは当
然できるが、ROMに書いたデータのチエックのための
直接のリードを必要としない方法で、しかし何らかの手
段でベリファイチェックは必要なのでチエックを可能と
しながらも、ROMの内容をチップの外部に読み出す事
なく、チエックを可能とする方法で、かつインストラク
ションフェッチサイクルでは読み出せるが、通常のオペ
ランドデータを読み出すリードマシンサイクルでは読み
出せない方法、即ちダンププログラムでも内容を読み出
せないROMシステムを提供する事を目的とする。
【0007】詳細には、ダンププログラム等によりプロ
グラムエリアをデータとみなして読み出す事が出来なく
すること。またベリファイなどで直接メモリーのデータ
を外へ読み出す手段を無くし、アドレスバスやデータバ
スを1チップの外部より制御または監視してトレースし
ていればROMの内容を把握出来ると言ったことが出来
ないようにすることである。
【0008】
【課題を解決するための手段】上記問題点を解決するた
め、フラッシュメモリーなどで採用されているROM内
部のライトステートマシンが書き込みコマンドを受け付
ける事により、書き込みデータの自動的な書き込みサイ
クルの生成と同時にライトステータスマシンの内部で自
動的なデータの読み出しと照合サイクルを行いその照合
結果のみをステータスとしてステータスレジスターに残
す方法を採用する事を前提とする。
【0009】本発明はこのようなライトステートマシン
を持ったROMを用いて、直接メモリーの中のデータを
読み出さなくともチェックが出来るメモリーを用いる事
を前提にし、かつ、このプロテテクトしたいメモリーに
はプログラムしか存在させない事も前提とする。またC
PUがメモリーのプログラム領域をアクセスするのはプ
ログラムカウンターによるインストラクションのフェッ
チサイクルのみであることに着目する。即ち、プログラ
ム領域はデータ領域では無いので、データとしてはリー
ドアクセスを必要としない領域である事に注目する。そ
して、この領域のROMへのライトは出来るが、インス
トラクションフェッチサイクル以外の通常のリードアク
セスが出来ないようにしても差し支え無いようにする。
例えば、CPUが持つインストラクションフェッチサイ
クル信号でのみプログラムエリアのメモリーをアクセス
できるようにする。
【0010】尚、ROMの内部のライトステートマシン
のステータスのリードも、ライトコマンドを与える時に
次のリードサイクルはステータスリードができるサイク
ルであることを前提に、前記インストラクションフェッ
チサイクル以外に、加うるに、ステータスのリードサイ
クルでも強制的にメモリーのアウトプットをイネーブル
するようにする。尚、ライトステータスマシンからのス
テータスのリードは、ライトコマンド以外のその他のコ
マンドを与えた場合でも可能となる例があるので、例え
ばステータスリードコマンドや、消去コマンド等を与え
た後も次のサイクルはステータスをリードできる状態に
なるので、これらのコマンドを与えた後のサイクルでも
強制的にメモリーのアウトプットをイネーブルするよう
にする。
【0011】
【作用】インストラクションサイクルには、2種のサイ
クルがあり、その1つはインストラクションフェッチサ
イクルであり、他はエキュスキュートサイクルである。
即ち、インストラクションフェッチサイクルはオペコー
ドとオペランドをメモリーよりリードする行為であり、
他のエクスキュートサイクルは必要なデータをデータエ
リアのメモリーよりリードする行為である。同じリード
サイクルでもCPUのサイクルでは別れている。
【0012】即ち、プログラムエリアはインストラクシ
ョンフェッチサイクルでのみアクセスされるようになっ
ているので、これ以外ではアクセスできなくとも差し支
えない。尚、データエリアは別途別ROMに分けて設け
てあるので、なんら差し支えない。またこのプログラム
エリアのROMへプログラムを書き込むときは、通常の
RAMと同様にライト可能となっているが、ROMのラ
イトステートマシンへのコマンドの与え方は、コマンド
が一連の2つのコマンドシーケンスで出来ていて、例え
ば1サイクル目はコマンドの種別を書き込みであり、2
サイクル目はステータスの読みとなっている。このコマ
ンドのROMへの書き込む行為はプログラムの書き込み
以外はバグで無い限り行わないし、仮に行ってもステー
タスがリードされるのみで、ROMの内容が外に読み出
せる事は無い。
【0013】即ち、このコマンドのステータスなどのリ
ードに関するROMチップへのアクセス時のアウトプッ
トイネーブルは、コマンドライトに続くリードの間のみ
アウトプットイネーブル信号が出るように限定してある
ので、ROMのデータが読み出される心配は無い。
【0014】
【実施例】68000系のCPUを例に以下に実施例を
記す。第1実施例のブロック図を図1に記す。この図を
もとに以下に説明する。ROMはライトステータスマシ
ンを備えたフラッシュメモリー(ROM)を用いること
とする。またこのフラシュメモリー(ROM)には、プ
ログラムのみを記憶させるエリアとする。尚、6800
0系のCPUにはプロッセサーステータスとしてファン
クションコードFC0,FC1,FC2が用意されてお
り、この信号がFC0=0,FC1=1、FC2=0の
時、CPUのサイクルタイプはユーザープログラムエリ
アをアクセスするサイクルであることを意味している。
【0015】そこで、このステータス信号FC0,1,
2をデコードしてインストラクションフェッチサイクル
信号(00)とし、このインストラクションフェッチサ
イクル信号(00)とCPUのR/W信号(07)のラ
イト信号とをANDをとりインストラクションフェッチ
アウトプットイネーブル信号(01)とし、このインス
トラクションフェッチアウトプットイネーブル信号(0
1)をROMのOE入力端子のORゲートの一方の入力
とする。
【0016】また、ROMのCS端子には、このROM
のプログラムエリアの割り当てられたアドレス空間のア
ドレスをデコードしたアドレスデコード信号(03)
と、CPUのアドレスストローブAS信号(10)とを
ANDをとりROMのチップセレクト信号(02)と
し、ROMのCS入力端子に入力する。
【0017】また、ROMのアドレスバスA1〜A23
とデータバスD0〜D15には、それぞれCPUのアド
レスA1〜A23とデータD0〜D16を入れる。
【0018】また、ROMにプログラムを書き込むコマ
ンドのデータコードをデコードしてコマンドデコード信
号(04)とし、このコマンドデコード信号(04)信
号とCPUのR/W信号(07)のライト信号とをAN
Dをとり、ステータスリードコマンド信号(05)と
し、このステータスリードコマンド信号(05)をDタ
イプのフリップフロップのDタイプの入力とする。また
DフリップフロップのT入力にはROMのチップセレク
ト信号(02)と同じ信号の後縁エッジでトリガーがか
かるように入力する。そしてそのDフリップフロップの
ネガティブ出力のQバー出力信号をステータスリード信
号(09)とし、このステータスリード信号(09)を
前記ROMのOE入力端子のORゲートの他方の入力と
し、ORゲートの出力信号をROMアウトプットイネー
ブル信号(06)信けとし、ROMのOE入力信号とす
る。
【0019】また、データバスD0〜D15の外部への
出口には双方向バッファーを設け、外部へのライト方向
のゲートコントロー少信号は、CPUのR/W信号(0
7)のライト信号でアクティブとする。また、外部から
のリード方向のゲートコントロール信号は、このROM
のチップセレクト信け(02)のネガティブ信号とCP
UのR/W信号(07)のリード信号とのANDをと
り、データバスリードイネーブル信号(08)とし、こ
のデータバスリードイネーブル信号(08)でアクティ
ブとする。またCPUのプロッセサーステータス信号の
ファンクションコードFC0,FC1,FC2の信号
は、外部から回り込んでこの信号を強制的にコントロー
ル出来ないように、バッファーBF0,BF1,BF2
を設けて外部へ出力する。
【0020】尚、本実施例では、コマンドのデコードは
ライトコマンドを想定してあるが、その他のステータス
をリードできるコマンドを複数種類デコードしてコマン
ドデコード信号(04)としても良い。また、ライトコ
マンドや消去コマンドを与える時は、必要に応じて書き
込み電源VPPを与えるものとする。
【0021】
【発明の効果】以上のように構成することにより、RO
Mのアウトプットイネーブル信号(06)は、CPUの
インストラクションフェッチサイクル信号(01)と、
ステータスリード信号(09)によってのみアウトプッ
トイネーブルされるので、その他のデータアクセスリー
ドではアウトプットイネーブルされる事は無い。従って
別途設けたダンププログラムを動作させて、このプロテ
クトされたプログラムエリアを読み出す事が出来ない。
【0022】また、ROMのチップセレクト信号とWE
信号は、ROMのリード/ライトにかかわらず、またイ
ンストラクションフェッチサイクル、またはノーマルな
データアクセスにかかわらず、割り当てられたアドレス
空間をセレクトされたときイネーブルとなる。このとき
CPUのR/W信号(07)のライトでコマンドのライ
トも可能となる。但し、間違ってデータをライトしよう
とした場合、そのデータがコマンドに該当するものはコ
マンドと見なされ、コマンドに該当しないものは無視さ
れる形となる。
【0023】また、データバスバッファーDBF0〜D
BF7は、内部ROMであるフラシュメモリー以外の外
部のメモリーがアクセスされた時にのみイネーブルとな
り、内部のメモリー即ちフラシュメモリーのデータがス
ルーで外部に抜けて出る事は無い。また、CPUのプロ
セサーステータス信号FC0〜FC2にはそれぞれバッ
ファーBF1〜BF2があることにより、外部より強制
的にこれらの信号をコントロールする事が出来ない。従
って、外部よりあたかもインストラクションフェッチサ
イクルであるかのごとく、内部のROMのアウトプット
イネーブル信号を強制的にイネーブルとすることが出来
ないので、ROMの内容を取り出す事は出来ない。
【図面の簡単な説明】
【図1】 第1実施例の回路ブロック図
【符号の説明】
00;インストラクションフェッチサイクル信号 01;インストラクションフェッチアウトプットイネー
ブル信号 02;ROMのチップセレクト信号 03;アドレスデコード信号 04;コマンドデコード信号 05;ステータスリードコマンド信号 06;ROMアウトプットイネーブル信号 07;CPUのR/W信号 08;データバスリードイネーブル信号 09;ステータスリード信号 10;アドレスストローブAS信号 BF0〜BF2;バッファー DBF0〜DBF7;データバスバッファー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 河▲とう▼ 鉄也 石川県金沢市新神田3丁目2番27号

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 CPUが持っているインストラクション
    フェッチサイクルを表す信号を用い、プログラムソフト
    を格納したメモリーをアクセスする際に、そのメモリー
    のアウトプットイネーブル信号をインストラクションフ
    ェッチサイクルを表す信号でイネーブルするようにした
    メモリーアクセス手段を持ったコンピューターシステ
    ム。
  2. 【請求項2】 請求項1記載コンピューターシステムを
    用いたメモリーを内蔵した1チップCPUに於いて、イ
    ンストラクションフェッチサイクルを表す信号とデータ
    バスをバッファーを通して1チップCPUの外部に信号
    を出すようにし、かつ1チップCPUの内部のプログラ
    ムソフトを格納したメモリーをアクセスする時はデータ
    バスのバッファーをディスエーブルするようにした1チ
    ップCPU。
  3. 【請求項3】 メモリーへの書き込みをライトステータ
    スマシンにコマンドを与える事で行う機能を持ったRO
    Mを用い、インストラクションフェッチサイクル時以外
    に、ROMのステータスを読み出すコマンドをライトス
    テータスマシンに与える時にもROMがアウトプットイ
    ネーブルされROMのステータスが読み出せるようにし
    た請求項1、2記載の1チップCPU。
JP7215119A 1995-07-20 1995-07-20 Cpuプログラムのコピープロテクト法 Ceased JPH0934795A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7215119A JPH0934795A (ja) 1995-07-20 1995-07-20 Cpuプログラムのコピープロテクト法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7215119A JPH0934795A (ja) 1995-07-20 1995-07-20 Cpuプログラムのコピープロテクト法

Publications (1)

Publication Number Publication Date
JPH0934795A true JPH0934795A (ja) 1997-02-07

Family

ID=16667061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7215119A Ceased JPH0934795A (ja) 1995-07-20 1995-07-20 Cpuプログラムのコピープロテクト法

Country Status (1)

Country Link
JP (1) JPH0934795A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005285053A (ja) * 2004-03-31 2005-10-13 Kawasaki Microelectronics Kk マイクロコントローラ
JP2007242029A (ja) * 2007-03-26 2007-09-20 Le Tekku:Kk 遊技機制御用マイクロコンピュータチップにおけるプログラム解読防止回路
JP2009223611A (ja) * 2008-03-17 2009-10-01 Konami Digital Entertainment Co Ltd 情報処理装置、情報処理方法、ならびに、プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005285053A (ja) * 2004-03-31 2005-10-13 Kawasaki Microelectronics Kk マイクロコントローラ
JP4546127B2 (ja) * 2004-03-31 2010-09-15 川崎マイクロエレクトロニクス株式会社 マイクロコントローラ
JP2007242029A (ja) * 2007-03-26 2007-09-20 Le Tekku:Kk 遊技機制御用マイクロコンピュータチップにおけるプログラム解読防止回路
JP4523613B2 (ja) * 2007-03-26 2010-08-11 株式会社エルイーテック 遊技機制御用マイクロコンピュータチップにおけるプログラム解読防止回路
JP2009223611A (ja) * 2008-03-17 2009-10-01 Konami Digital Entertainment Co Ltd 情報処理装置、情報処理方法、ならびに、プログラム

Similar Documents

Publication Publication Date Title
JP2788590B2 (ja) メモリの保護装置及びアドレスの発生方法
EP0417889B1 (en) Protection method and apparatus for computer system
US5187792A (en) Method and apparatus for selectively reclaiming a portion of RAM in a personal computer system
US4710866A (en) Method and apparatus for validating prefetched instruction
US5263168A (en) Circuitry for automatically entering and terminating an initialization mode in a data processing system in response to a control signal
EP1324190B1 (en) Data processing system having a read-modify-write unit
KR100335785B1 (ko) 데이타처리명령의실행
CN108351826A (zh) 监视处理器的操作
US20050097398A1 (en) Program debug method and apparatus
US4757445A (en) Method and apparatus for validating prefetched instruction
US6922666B2 (en) Method and data processing system for performing atomic multiple word reads
JPH0934795A (ja) Cpuプログラムのコピープロテクト法
US20010049794A1 (en) Write protection software for programmable chip
US5924124A (en) Software programmable bus disable system
US5970237A (en) Device to assist software emulation of hardware functions
EP0155275B1 (en) Prefetch validation
JP3039479B2 (ja) 拡張bios保護システム
JP3166667B2 (ja) エミュレーション用マイクロコンピュータ
CN112417528A (zh) 用来管理支持数据存储的安全程序库的方法与电子装置
JPS59172044A (ja) 命令制御方式
JPH0683986A (ja) シングルチップ・マイクロコンピュータ
CN101379471A (zh) 具有时间效率的嵌入式eeprom/处理器控制方法
JP2003330800A (ja) 半導体集積回路
JP2004185356A (ja) デバッグ装置
KR20040047399A (ko) 메모리 영역 억세스 제어 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050902

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051003

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20060217