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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
内容をシステムの外部より容易にコピーされない事を目
的とする。 【構成】 CPUのプログラムのコピーをプロテクトす
る方法に於いて、ROM内蔵のカスタムCPUを設計す
る際に、ライトステートマシン内蔵のメモリーを使う事
を前提に、例えばフラッシュROM等を使う事を前提に
して、また、メモリー(ROM)にはプログラムしか存
在させない事も前提としてメモリー(ROM)のアウト
プットイネーブル信号をCPUのプログラムカウンター
によるインストラクションフェッチサイクル信号にのみ
イネーブルできるようにしたカスタムCPUである。ま
た、加うるにROMへステータスをリードできるコマン
ドを与えた後のサイクル等でもアウトプットイネーブル
とするカスタムCPUである。
Description
ソフトのコピーのプロテクトをする方法、及びカスタム
CPUに関する。
Mなどに格納されているため、特にROMは不揮発性な
のでいとも簡単に読み出してコピーされた。そこでRO
MをCPUチップと一緒にパッケイジ化をしたり、CP
Uチップと一緒に1チップ化をしたりしてICレベルの
パターン化を行ったり、またバッテイリーバックアップ
をしたRAMの搭載をしたりしてしていた。これらはチ
ップやパッケージの開封時に配線パターンや電池を破壊
したりして物理的に壊れるようになっており、ROMや
RAMだけを取り出し触れないようにすることによりコ
ピーのプロテテクトを行っていた。
しROMへのプログラムの書き込みは、マスクROMだ
とマスクROMのパターンを作ってからパッケージに封
入し、またチップが出来てから内容の確認のため読み出
してみてベリファイチェックを行う必要があるといった
問題点があった。またイレーザプルなROMの場合はパ
ッケージに封入してから書き込む方法もとられ、この場
合も読み出してみてベリファイチェックを行う必要があ
った。またROMの代わりにRAMなどを搭載した場合
も、RAMに書き込んだあと、読み出してみてベリファ
イチェックを行う必要があった。
が正しく書き込まれているか確認のための読み出し手段
が、必ず必要であった。そして一般にそれらの読み出し
手段は、読み出しの手順が特異であるのみで、即ち特別
に設けた信号に特別な電圧をかけるといった特異な手順
がとられ、メーカーなら可能な方法だが一般には少し難
しいといった程度の手法であるに過ぎなかった。しかし
一方、特殊ではあるが製造工程の中で行える容易な手段
である事がメーカーと言えども必要でもあった。しか
し、同時にこの秘密にされた読み出し手段や方法が知れ
てしまうと、コピープロテクトの意味が無くなるので、
一方では手順が簡単でいとも容易であってはいけないと
言う矛盾した問題点でもあった。
ムチェックのみのチエックといった簡単な方法では製造
工程の信頼性が確保できないと言う理由から、直接デー
タを読み出す方法がとられていた。しかし読み出すには
違いないが、間接的な読み出しの中間的なチェック方法
の一つである、書き込み時のライトモデイファイリード
のように書き込みながらデータバスにはデータを読み出
す事なく読み出し照合のみをとり、その照合結果のみを
ステータス信号として保存し、その後ROMのステータ
ス信号のみを外部に読み出せるようにした、ライトステ
ータスマシンを内蔵したメモリーもあった。
外部へ読み出す事はないがプロテクトを目的とした物で
はなく、書き込みの効率化のための物であった。したが
ってROM内には、一般的な通常のリード/ライトが可
能なデータエリアの存在を当然想定しており、従ってそ
のデータエリアとしてのリードアクセスが可能であっ
た。このことは通常のプログラムでのリード行為である
メモリーダンププログラムによる読み出しも可能である
事を意味し、プロテクトにはならないと言う問題点があ
った。
ころは、プログラムエリアにプログラムを書くことは当
然できるが、ROMに書いたデータのチエックのための
直接のリードを必要としない方法で、しかし何らかの手
段でベリファイチェックは必要なのでチエックを可能と
しながらも、ROMの内容をチップの外部に読み出す事
なく、チエックを可能とする方法で、かつインストラク
ションフェッチサイクルでは読み出せるが、通常のオペ
ランドデータを読み出すリードマシンサイクルでは読み
出せない方法、即ちダンププログラムでも内容を読み出
せないROMシステムを提供する事を目的とする。
グラムエリアをデータとみなして読み出す事が出来なく
すること。またベリファイなどで直接メモリーのデータ
を外へ読み出す手段を無くし、アドレスバスやデータバ
スを1チップの外部より制御または監視してトレースし
ていればROMの内容を把握出来ると言ったことが出来
ないようにすることである。
め、フラッシュメモリーなどで採用されているROM内
部のライトステートマシンが書き込みコマンドを受け付
ける事により、書き込みデータの自動的な書き込みサイ
クルの生成と同時にライトステータスマシンの内部で自
動的なデータの読み出しと照合サイクルを行いその照合
結果のみをステータスとしてステータスレジスターに残
す方法を採用する事を前提とする。
を持ったROMを用いて、直接メモリーの中のデータを
読み出さなくともチェックが出来るメモリーを用いる事
を前提にし、かつ、このプロテテクトしたいメモリーに
はプログラムしか存在させない事も前提とする。またC
PUがメモリーのプログラム領域をアクセスするのはプ
ログラムカウンターによるインストラクションのフェッ
チサイクルのみであることに着目する。即ち、プログラ
ム領域はデータ領域では無いので、データとしてはリー
ドアクセスを必要としない領域である事に注目する。そ
して、この領域のROMへのライトは出来るが、インス
トラクションフェッチサイクル以外の通常のリードアク
セスが出来ないようにしても差し支え無いようにする。
例えば、CPUが持つインストラクションフェッチサイ
クル信号でのみプログラムエリアのメモリーをアクセス
できるようにする。
のステータスのリードも、ライトコマンドを与える時に
次のリードサイクルはステータスリードができるサイク
ルであることを前提に、前記インストラクションフェッ
チサイクル以外に、加うるに、ステータスのリードサイ
クルでも強制的にメモリーのアウトプットをイネーブル
するようにする。尚、ライトステータスマシンからのス
テータスのリードは、ライトコマンド以外のその他のコ
マンドを与えた場合でも可能となる例があるので、例え
ばステータスリードコマンドや、消去コマンド等を与え
た後も次のサイクルはステータスをリードできる状態に
なるので、これらのコマンドを与えた後のサイクルでも
強制的にメモリーのアウトプットをイネーブルするよう
にする。
クルがあり、その1つはインストラクションフェッチサ
イクルであり、他はエキュスキュートサイクルである。
即ち、インストラクションフェッチサイクルはオペコー
ドとオペランドをメモリーよりリードする行為であり、
他のエクスキュートサイクルは必要なデータをデータエ
リアのメモリーよりリードする行為である。同じリード
サイクルでもCPUのサイクルでは別れている。
ョンフェッチサイクルでのみアクセスされるようになっ
ているので、これ以外ではアクセスできなくとも差し支
えない。尚、データエリアは別途別ROMに分けて設け
てあるので、なんら差し支えない。またこのプログラム
エリアのROMへプログラムを書き込むときは、通常の
RAMと同様にライト可能となっているが、ROMのラ
イトステートマシンへのコマンドの与え方は、コマンド
が一連の2つのコマンドシーケンスで出来ていて、例え
ば1サイクル目はコマンドの種別を書き込みであり、2
サイクル目はステータスの読みとなっている。このコマ
ンドのROMへの書き込む行為はプログラムの書き込み
以外はバグで無い限り行わないし、仮に行ってもステー
タスがリードされるのみで、ROMの内容が外に読み出
せる事は無い。
ードに関するROMチップへのアクセス時のアウトプッ
トイネーブルは、コマンドライトに続くリードの間のみ
アウトプットイネーブル信号が出るように限定してある
ので、ROMのデータが読み出される心配は無い。
記す。第1実施例のブロック図を図1に記す。この図を
もとに以下に説明する。ROMはライトステータスマシ
ンを備えたフラッシュメモリー(ROM)を用いること
とする。またこのフラシュメモリー(ROM)には、プ
ログラムのみを記憶させるエリアとする。尚、6800
0系のCPUにはプロッセサーステータスとしてファン
クションコードFC0,FC1,FC2が用意されてお
り、この信号がFC0=0,FC1=1、FC2=0の
時、CPUのサイクルタイプはユーザープログラムエリ
アをアクセスするサイクルであることを意味している。
2をデコードしてインストラクションフェッチサイクル
信号(00)とし、このインストラクションフェッチサ
イクル信号(00)とCPUのR/W信号(07)のラ
イト信号とをANDをとりインストラクションフェッチ
アウトプットイネーブル信号(01)とし、このインス
トラクションフェッチアウトプットイネーブル信号(0
1)をROMのOE入力端子のORゲートの一方の入力
とする。
のプログラムエリアの割り当てられたアドレス空間のア
ドレスをデコードしたアドレスデコード信号(03)
と、CPUのアドレスストローブAS信号(10)とを
ANDをとりROMのチップセレクト信号(02)と
し、ROMのCS入力端子に入力する。
とデータバスD0〜D15には、それぞれCPUのアド
レスA1〜A23とデータD0〜D16を入れる。
ンドのデータコードをデコードしてコマンドデコード信
号(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入力信号とす
る。
出口には双方向バッファーを設け、外部へのライト方向
のゲートコントロー少信号は、CPUのR/W信号(0
7)のライト信号でアクティブとする。また、外部から
のリード方向のゲートコントロール信号は、このROM
のチップセレクト信け(02)のネガティブ信号とCP
UのR/W信号(07)のリード信号とのANDをと
り、データバスリードイネーブル信号(08)とし、こ
のデータバスリードイネーブル信号(08)でアクティ
ブとする。またCPUのプロッセサーステータス信号の
ファンクションコードFC0,FC1,FC2の信号
は、外部から回り込んでこの信号を強制的にコントロー
ル出来ないように、バッファーBF0,BF1,BF2
を設けて外部へ出力する。
ライトコマンドを想定してあるが、その他のステータス
をリードできるコマンドを複数種類デコードしてコマン
ドデコード信号(04)としても良い。また、ライトコ
マンドや消去コマンドを与える時は、必要に応じて書き
込み電源VPPを与えるものとする。
Mのアウトプットイネーブル信号(06)は、CPUの
インストラクションフェッチサイクル信号(01)と、
ステータスリード信号(09)によってのみアウトプッ
トイネーブルされるので、その他のデータアクセスリー
ドではアウトプットイネーブルされる事は無い。従って
別途設けたダンププログラムを動作させて、このプロテ
クトされたプログラムエリアを読み出す事が出来ない。
信号は、ROMのリード/ライトにかかわらず、またイ
ンストラクションフェッチサイクル、またはノーマルな
データアクセスにかかわらず、割り当てられたアドレス
空間をセレクトされたときイネーブルとなる。このとき
CPUのR/W信号(07)のライトでコマンドのライ
トも可能となる。但し、間違ってデータをライトしよう
とした場合、そのデータがコマンドに該当するものはコ
マンドと見なされ、コマンドに該当しないものは無視さ
れる形となる。
BF7は、内部ROMであるフラシュメモリー以外の外
部のメモリーがアクセスされた時にのみイネーブルとな
り、内部のメモリー即ちフラシュメモリーのデータがス
ルーで外部に抜けて出る事は無い。また、CPUのプロ
セサーステータス信号FC0〜FC2にはそれぞれバッ
ファーBF1〜BF2があることにより、外部より強制
的にこれらの信号をコントロールする事が出来ない。従
って、外部よりあたかもインストラクションフェッチサ
イクルであるかのごとく、内部のROMのアウトプット
イネーブル信号を強制的にイネーブルとすることが出来
ないので、ROMの内容を取り出す事は出来ない。
ブル信号 02;ROMのチップセレクト信号 03;アドレスデコード信号 04;コマンドデコード信号 05;ステータスリードコマンド信号 06;ROMアウトプットイネーブル信号 07;CPUのR/W信号 08;データバスリードイネーブル信号 09;ステータスリード信号 10;アドレスストローブAS信号 BF0〜BF2;バッファー DBF0〜DBF7;データバスバッファー
Claims (3)
- 【請求項1】 CPUが持っているインストラクション
フェッチサイクルを表す信号を用い、プログラムソフト
を格納したメモリーをアクセスする際に、そのメモリー
のアウトプットイネーブル信号をインストラクションフ
ェッチサイクルを表す信号でイネーブルするようにした
メモリーアクセス手段を持ったコンピューターシステ
ム。 - 【請求項2】 請求項1記載コンピューターシステムを
用いたメモリーを内蔵した1チップCPUに於いて、イ
ンストラクションフェッチサイクルを表す信号とデータ
バスをバッファーを通して1チップCPUの外部に信号
を出すようにし、かつ1チップCPUの内部のプログラ
ムソフトを格納したメモリーをアクセスする時はデータ
バスのバッファーをディスエーブルするようにした1チ
ップCPU。 - 【請求項3】 メモリーへの書き込みをライトステータ
スマシンにコマンドを与える事で行う機能を持ったRO
Mを用い、インストラクションフェッチサイクル時以外
に、ROMのステータスを読み出すコマンドをライトス
テータスマシンに与える時にもROMがアウトプットイ
ネーブルされROMのステータスが読み出せるようにし
た請求項1、2記載の1チップCPU。
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)
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 | 情報処理装置、情報処理方法、ならびに、プログラム |
-
1995
- 1995-07-20 JP JP7215119A patent/JPH0934795A/ja not_active Ceased
Cited By (5)
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 |