[go: up one dir, main page]

JPH11167526A - メモリリード・ライト方法及びメモリリード・ライト装置 - Google Patents

メモリリード・ライト方法及びメモリリード・ライト装置

Info

Publication number
JPH11167526A
JPH11167526A JP9332741A JP33274197A JPH11167526A JP H11167526 A JPH11167526 A JP H11167526A JP 9332741 A JP9332741 A JP 9332741A JP 33274197 A JP33274197 A JP 33274197A JP H11167526 A JPH11167526 A JP H11167526A
Authority
JP
Japan
Prior art keywords
memory
data
cpu
bus
scramble
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.)
Pending
Application number
JP9332741A
Other languages
English (en)
Inventor
Yasuhisa Oshima
靖久 大嶋
Shigeru Suzuki
鈴木  茂
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.)
Tamura Electric Works Ltd
Original Assignee
Tamura Electric Works 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 Tamura Electric Works Ltd filed Critical Tamura Electric Works Ltd
Priority to JP9332741A priority Critical patent/JPH11167526A/ja
Publication of JPH11167526A publication Critical patent/JPH11167526A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 メモリに格納されたプログラムの第三者によ
る解読を防止し、プログラムの不正改造を阻止する。 【解決手段】 CPU1とメモリ(SRAM3及びフラ
ッシュメモリ4)との間に、データバスのスクランブル
及びディスクランブルを行うデータスクランブル/ディ
スクランブル回路5を設ける。また、CPU1とメモリ
との間に、アドレスバスのスクランブルを行うアドレス
スクランブル回路6を設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリに対しデー
タの書き込みを行うメモリリード・ライト方法及びその
装置に関する。
【0002】
【従来の技術】一般にCPUにROMやRAMなどのメ
モリを接続する場合、メモリにはCPUからのアドレス
バスが、上位の例えばアドレスビット線AB15から下
位のアドレスビット線AB0まで順番に接続される。ま
た、データバスについても、上位の例えばデータビット
線DB7から下位のデータビット線DB0まで順番に接
続される。したがって、上記メモリにプログラムが格納
されている場合は、そのプログラムはメモリの下位アド
レスから上位アドレスの方向へ順番に格納される。
【0003】
【発明が解決しようとする課題】このようにメモリのプ
ログラムは、下位アドレスから上位アドレスの方向へ順
番に格納されるため、上記メモリに対し上記CPUと同
様なアドレス順序で接続される例えばROMライタやイ
ンサーキットエミュレータなどを使用することにより、
上記メモリのプログラムは容易に読み出すことができ
る。こうしてメモリから読み出されたプログラムは第三
者により解析され、そのプログラムが第三者により不正
に書き替えされる恐れがあるという問題があった。した
がって本発明は、メモリに格納されたプログラムの第三
者による解析を防止し、プログラムの不正改造を阻止す
ることを目的とする。
【0004】
【課題を解決するための手段】このような課題を解決す
るために本発明は、CPUと、アドレスバス及びデータ
バスからなるバスを介しCPUに接続されるメモリとか
らなり、CPUはメモリに対しバスを介してデータの書
き込みを行うメモリリード・ライト装置において、CP
Uがメモリにデータを書き込む際にはバスを通常のパタ
ーンと異なるパターンに切り替える第1のステップと、
CPUがメモリからデータを読み出す際にはバスを通常
のパターンに復旧する第2のステップとを有するメモリ
リード・ライト方法である。また、CPUとメモリとの
間に、CPUがメモリにデータを書き込む際にデータバ
スを通常のパターンと異なるパターンに切り替える第1
のスクランブル回路と、CPUがメモリからデータを読
み出す際にデータバスを通常のパターンに復旧する第2
のディスクランブル回路とを設けたものである。また、
CPUがメモリにデータを書き込む際にアドレスバスを
通常のパターンと異なるパターンに切り替える第2のス
クランブル回路及びCPUがメモリからデータを読み出
す際にアドレスバスを通常のパターンに復旧する第2の
ディスクランブル回路の少なくとも一方を設けたもので
ある。また、CPUとメモリとの間に、前記第1のスク
ランブル回路と第1のディスクランブル回路とを設ける
と共に、第2のスクランブル回路及び第2のディスクラ
ンブル回路の少なくとも一方を設けたものである。ま
た、メモリにプログラムデータを書き込む書き込み手段
と、CPUとメモリとの間に設けられバス切替を行うス
クランブル回路とを設け、CPUはプログラムデータを
受信すると所定のパターンに基づきスクランブル回路に
バスの切替を行わせるとともに、書き込み手段によりス
クランブル回路を介しメモリにプログラムデータを書き
込ませるものである。
【0005】
【発明の実施の形態】以下、本発明について図面を参照
して説明する。図1は、本発明に係るメモリリード・ラ
イト装置の構成を示すブロック図である。同図におい
て、この装置は、CPU1と、ROM2と、データが書
き込まれる際にスクランブルの対象となるSRAM3及
びフラッシュメモリ4等のスクランブル対象メモリと、
CPU1とスクランブル対象メモリとの間に接続されデ
ータバスDBのスクランブル及びディスクランブルを行
うデータスクランブル/ディスクランブル回路5及びア
ドレスバスABのスクランブルを行うアドレススクラン
ブル回路6からなるスクランブル回路7とから構成され
る。
【0006】ここで、図示しないROMライタにより、
ROM2に、本装置のリセット直後に起動され本装置の
イニシャライズ(初期化処理)を行うプログラム,SR
AM3などのスクランブル対象メモリのバスにスクラン
ブルをかけるためのプログラム及びSRAM3等にアプ
リケーションプログラムをダウンロードするためのプロ
グラムを格納し、そのR0M2をCPU1やSRAM3
などが搭載される基板(図示省略)に実装した後、その
基板とパソコンなどのダウンロード装置である上位装置
8とを接続し、基板に電源を投入する。この場合、CP
U1は電源供給されてリセットされそのリセットが解除
された直後に、まずROM2のプログラムを実行して装
置の初期化処理を行った後、フラッシュメモリ4にプロ
グラムが書き込み済みか否かをチェックし、初期状態で
はフラッシュメモリ4にはプログラムが格納されていな
いことからプログラムダウンロード待ち状態に移行す
る。その後、CPU1は、後述するスクランブルキーレ
ジスタにスクランブル値を設定してSRAM3またはフ
ラッシュメモリ4へのバスに対しスクランブルをかけ
る。
【0007】即ち、スクランブル回路7内のデータスク
ランブル/ディスクランブル回路5及びアドレススクラ
ンブル回路6に対し、それぞれスクランブル値を設定す
ることによりデータバスDBの一部及びアドレスバスA
Bの一部にスクランブルをかけさせスクランブルデータ
バスSQDB及びスクランブルアドレスバスSQABと
してSRAM3またはフラッシュメモリ4のデータ端子
DT及びアドレス端子ADに接続させるようにする。そ
してその後、CPU1はフラッシュメモリ4の非スクラ
ンブルエリアに上記スクランブル値を書き込む。なお、
既にフラッシュメモリ4にスクランブル値が設定されて
いる場合はこの設定値を読み出してスクランブルキーレ
ジスタに設定する。こうしたスクランブル処理の後、C
PU1は引き続きROM2のプログラムを実行し上位装
置8からダウンロードされるアプリケーションプログラ
ムを受信すると、一部にスクランブルがかけられたバス
を介しまずSRAM3へそのプログラムデータを順次書
き込む。その後、CPU1はSRAM3のアプリケーシ
ョンプログラムをフラッシュメモリ4にコピーするとと
もに、そのフラッシュメモリ4のプログラムを実行しア
プリケーション処理を行う。
【0008】図2はアドレススクランブル回路6の一例
を示す回路図であり、この回路6はスクランブルキーレ
ジスタ6Aと、バス接続切替部6Bとからなる。なお、
バス接続切替部6Bは、アンドゲート81〜84と、オ
アゲート85,86とから構成される。スクランブルキ
ーレジスタ6Aは、上記のリセット信号RESETの入
力によりリセット直後は、出力端子SEL1,SEL2
はそれぞれHレベル(即ち、「1」),Lレベル(即ち
「0」)となっている。
【0009】なお、このスクランブルキーレジスタ6A
の出力端子SEL1はバス接続切替部6Bのアンドゲー
ト81,83の一方の入力端子に、また、スクランブル
キーレジスタ6Aの出力端子SEL2はバス接続切替部
6Bのアンドゲート82,84の一方の入力端子に接続
されている。ここで、図2に示すように、CPU1から
のアドレスバスABのうち最上位のアドレスビット線A
Bnがアンドゲート81,82の他方の入力端子に、ま
た次位のアドレスビット線ABn−1がアンドゲート8
3,84の他方の入力端子に接続されるように構成され
ているため、各アドレスビット線ABn,ABn−1が
それぞれ「0」,「0」の場合は、各アンドゲート81
〜84の出力は「0」となり、したがってオアゲート8
5,86を経由してSRAM3またはフラッシュメモリ
4に出力される対応のスクランブルアドレスビット線S
QABn,SQABn−1もそれぞれ「0」,「0」と
なる。
【0010】また、各アドレスビット線ABn,ABn
−1がそれぞれ「0」,「1」の場合は、リセット直後
にはスクランブルキーレジスタ6Aの出力端子SEL
1,SEL2はそれぞれ「1」,「0」であることか
ら、各アンドゲート81〜84のうちアンドゲート83
の出力のみが「1」となり、従ってこれと接続されるオ
アゲート86の出力が「1」となり、この結果、SRA
M3またはフラッシュメモリ4に出力される対応のスク
ランブルアドレスビット線SQABn,SQABn−1
はそれぞれ「0」,「1」となる。また、各アドレスビ
ット線ABn,ABn−1がそれぞれ「1」,「0」の
場合は、リセット直後にはアンドゲート81の出力のみ
が「1」となり、したがってオアゲート85,86を経
由してSRAM3またはフラッシュメモリ4に出力され
る対応のスクランブルアドレスビット線SQABn,S
QABn−1はそれぞれ「1」,「0」となる。
【0011】さらに、各アドレスビット線ABn,AB
n−1がそれぞれ「1」,「1」の場合は、リセット直
後にはアンドゲート81,83の各出力のみが「1」と
なり、したがってオアゲート85,86を経由してSR
AM3またはフラッシュメモリ4に出力される対応のス
クランブルアドレスビット線SQABn,SQABn−
1はそれぞれ「1」,「1」となる。このように、リセ
ット直後には、CPU1から出力される各アドレスビッ
ト線ABn,ABn−1の値に応じた値がそれぞれスク
ランブルアドレスビット線SQABn,SQABn−1
からSRAM3またはフラッシュメモリ4に出力され
る。
【0012】ここで、リセット直後にCPU1がアドレ
スバスABによりスクランブルキーレジスタ6Aを指定
するとともに、この指定したスクランブルキーレジスタ
6Aに対しデータバスDBを介して所定値を設定し、そ
の出力端子SEL1,SEL2がそれぞれ「0」,
「1」となったとすると、各アドレスビット線ABn,
ABn−1がそれぞれ「0」,「0」の場合は、対応の
スクランブルアドレスビット線SQABn,SQABn
−1はそれぞれ「0」,「0」となるが、各アドレスビ
ット線ABn,ABn−1がそれぞれ「0」,「1」の
場合は、アンドゲート84の出力のみが「1」となり、
従ってこれと接続されるオアゲート85の出力が「1」
となることから、SRAM3またはフラッシュメモリ4
に出力される対応のスクランブルアドレスビット線SQ
ABn,SQABn−1はそれぞれ「1」,「0」とな
る。
【0013】また、各アドレスビット線ABn,ABn
−1がそれぞれ「1」,「0」の場合は、アンドゲート
82の出力のみが「1」となり、従ってこれと接続され
るオアゲート86の出力が「1」となることから、RA
M3またはフラッシュメモリ4に出力される対応のスク
ランブルアドレスビット線SQABn,SQABn−1
はそれぞれ「0」,「1」となる。このように、リセッ
ト直後にスクランブルキーレジスタ6Aに所定値を設定
することにより、CPU1から出力されるアドレスビッ
ト線ABnがSRAM3またはフラッシュメモリ4に入
力されるスクランブルアドレスビット線SQABn−1
に切り替えられ、CPU1から出力されるアドレスビッ
ト線ABn−1がSRAM3またはフラッシュメモリ4
に入力されるスクランブルアドレスビット線SQABn
に切り替えられる。
【0014】したがって、CPU1がアドレスビット線
ABnによりSRAM3またはフラッシュメモリ4へ書
き込むプログラムデータは、SRAM3またはフラッシ
ュメモリ4のスクランブルアドレスビット線SQABn
−1に対応するエリアに書き込まれる。また、CPU1
がアドレスビット線ABn−1によりSRAM3または
フラッシュメモリ4へ書き込むプログラムデータは、S
RAM3またはフラッシュメモリ4のスクランブルアド
レスビット線SQABnに対応するエリアに書き込まれ
る。この結果、こうしてフラッシュメモリ4に書き込ま
れたプログラムデータを第三者がアドレスバスAB及び
データバスDBを介して読み出したとしても、フラッシ
ュメモリ4からは、例えば連続すべきプログラムが分断
されて別のプログラムがそれに続くといったようなラン
ダムなプログラムデータが読み出されるため、第三者に
よるプログラム解析が不可能になる。
【0015】なお、図2の例では、CPU1からのアド
レスバスABの各アドレスビット線AB0〜ABnのう
ち上位のアドレスビット線ABn,ABn−1について
スクランブルをかけ、他のアドレスビット線AB0〜A
Bn−2についてはスクランブルをかけずにSRAM3
またはフラッシュメモリ4に直接接続した例について説
明したが、全てのアドレスビット線AB0〜ABnにつ
いてスクランブルをかけるようにしてもよい。
【0016】次に、図3は図1に示すデータスクランブ
ル/ディスクランブル回路5の具体的な構成を示す回路
図である。この回路5はスクランブルキーレジスタ5A
と、バス接続切替部5Bとからなる。なお、バス接続切
替部6Bは、スクランブル回路5B1及びディスクラン
ブル回路5B2などから構成される。スクランブル回路
5B1は、アンドゲート51〜54と、オアゲート5
5,56と、ゲート回路57,58とから構成される。
また、ディスクランブル回路5B2は、アンドゲート6
1〜64と、オアゲート65,66と、ゲート回路6
7,68とから構成される。
【0017】また、バス接続切替部6B内のゲート回路
71は、SRAM3またはフラッシュメモリ4へのデー
タ書き込み時にCPU1から「L」レベル(=「0」)
のチップセレクト信号CSが出力されたときに「0」を
出力してスクランブル回路5B1の各ゲート回路57,
58に与え各ゲート回路57,58をオンさせることに
より、信号を通過させるものである。また、バス接続切
替部6B内のゲート回路72は、SRAM3またはフラ
ッシュメモリ4のデータ読み出し時にCPU1からそれ
ぞれ「L」レベル(=「0」)のチップセレクト信号C
S及びリード信号RDが出力されたときに「0」を出力
してディスクランブル回路5B2の各ゲート回路67,
68に与え各ゲート回路67,68をオンさせることに
より、信号を通過させるものである。なお、スクランブ
ルキーレジスタ5Aは、図2のアドレススクランブル回
路6のスクランブルキーレジスタ6Aと同様、リセット
信号RESETの入力によりリセット直後は、出力端子
SEL1,SEL2はそれぞれ「1」,「0」となって
いる。
【0018】また、スクランブルキーレジスタ5Aの出
力端子SEL1はスクランブル回路5B1のアンドゲー
ト51,53及びディスクランブル回路5B2のアンド
ゲート61,63の一方の入力端子に、また、スクラン
ブルキーレジスタ5Aの出力端子SEL2はスクランブ
ル回路5B1のアンドゲート52,54及びディスクラ
ンブル回路5B2のアンドゲート62,64の一方の入
力端子に接続されている。ここで、図3に示すように、
CPU1からのデータバスDBのうち最上位のデータビ
ット線DBnがアンドゲート51,52の他方の入力端
子に、また次位のデータビット線DBn−1がアンドゲ
ート53,54の他方の入力端子に接続されるように構
成されているため、CPU1がSRAM3またはフラッ
シュメモリ4を選択してデータバスDBを介しデータを
書き込む際に各データビット線DBn,DBn−1がそ
れぞれ「0」,「0」の場合は、各アンドゲート51〜
54の出力は「0」となり、したがってオアゲート5
5,56及びゲート回路57,58を経由してSRAM
3またはフラッシュメモリ4に出力される対応のスクラ
ンブルデータビット線SQDBn,SQDBn−1もそ
れぞれ「0」,「0」となる。
【0019】また、各データビット線DBn,DBn−
1がそれぞれ「0」,「1」の場合は、リセット直後に
はスクランブルキーレジスタ5Aの出力端子SEL1,
SEL2はそれぞれ「1」,「0」であることから、各
アンドゲート51〜54のうちアンドゲート53の出力
のみが「1」となり、従ってこれと接続されるオアゲー
ト56の出力が「1」となり、この結果、SRAM3ま
たはフラッシュメモリ4に出力される対応のスクランブ
ルデータビット線SQDBn,SQDBn−1もそれぞ
れ「0」,「1」となる。また、各データビット線DB
n,DBn−1がそれぞれ「1」,「0」の場合は、リ
セット直後にはアンドゲート51の出力のみが「1」と
なり、従って対応のスクランブルデータビット線SQD
Bn,SQDBn−1もそれぞれ「1」,「0」とな
る。さらに、各データビット線DBn,DBn−1がそ
れぞれ「1」,「1」の場合は、リセット直後にはアン
ドゲート51,53の各出力のみが「1」となり、従っ
て対応のスクランブルデータビット線SQDBn,SQ
DBn−1はそれぞれ「1」,「1」となる。このよう
にリセット直後にはスクランブル回路5B1は機能せ
ず、CPU1がデータバスDBを介してデータを出力す
る場合は、各データビット線DBn,DBn−1の値に
応じた値がそれぞれスクランブルデータビット線SQD
Bn,SQDBn−1からSRAM3またはフラッシュ
メモリ4に出力される。
【0020】そして、リセット直後にSRAM3または
フラッシュメモリ4から各スクランブルデータビット線
SQDBn,SQDBn−1を介してデータを読み出し
たときにスクランブルデータビット線SQDBn,SQ
DBn−1がそれぞれ「0」,「0」の場合は、ディス
クランブル回路5B2の各アンドゲート61〜64の出
力は「0」となり、したがってオアゲート65,66及
びゲート回路67,68を経由してCPU1に出力され
る対応のデータビット線DBn,DBn−1もそれぞれ
「0」,「0」となる。
【0021】また、各スクランブルデータビット線SQ
DBn,SQDBn−1がそれぞれ「0」,「1」の場
合は、リセット直後にはアンドゲート63の出力のみが
「1」となり、従ってこれと接続されるオアゲート66
の出力も「1」になることから、CPU1に出力される
対応のデータビット線DBn,DBn−1もそれぞれ
「0」,「1」となる。また、各スクランブルデータビ
ット線SQDBn,SQDBn−1がそれぞれ「1」,
「0」の場合は、リセット直後にはアンドゲート61の
出力のみが「1」となり、従ってこれと接続されるオア
ゲート65の出力も「1」になることから、対応のデー
タビット線DBn,DBn−1もそれぞれ「1」,
「0」となる。さらに、各スクランブルデータビット線
SQDBn,SQDBn−1がそれぞれ「1」,「1」
の場合は、リセット直後にはアンドゲート61,63の
各出力のみが「1」となり、したがって対応のデータビ
ット線DBn,DBn−1はそれぞれ「1」,「1」と
なる。このようにリセット直後にはディスクランブル回
路5B2も機能せず、CPU1がSRAM3またはフラ
ッシュメモリ4からデータを入力する場合は、各スクラ
ンブルデータビット線SQDBn,SQDBn−1の値
に応じた値がそれぞれデータビット線DBn,DBn−
1からCPU1に出力される。
【0022】ここで、リセット直後にCPU1がアドレ
スバスABによりスクランブルキーレジスタ5Aを指定
するとともに、この指定したスクランブルキーレジスタ
5Aに対しデータバスDBを介して所定値を設定し、そ
の出力端子SEL1,SEL2がそれぞれ「0」,
「1」となったとすると、各データビット線DBn,D
Bn−1がそれぞれ「0」,「0」の場合は、スクラン
ブル回路5B1の対応のスクランブルデータビット線S
QDBn,SQDBn−1はそれぞれ「0」,「0」と
なるが、各データビット線DBn,DBn−1がそれぞ
れ「0」,「1」の場合は、アンドゲート54の出力の
みが「1」となり、従ってこれと接続されるオアゲート
55の出力が「1」になることからゲート回路57,5
8を経由してSRAM3またはフラッシュメモリ4に出
力される対応のスクランブルデータビット線SQDB
n,SQDBn−1は、それぞれ「1」,「0」とな
る。
【0023】また、各データビット線DBn,DBn−
1がそれぞれ「1」,「0」の場合は、アンドゲート5
2の出力のみが「1」となり、従ってこれと接続される
オアゲート56の出力が「1」になることからゲート回
路57,58を経由してSRAM3またはフラッシュメ
モリ4に出力される対応のスクランブルデータビット線
SQDBn,SQDBn−1はそれぞれ「0」,「1」
となる。このようにして、リセット直後にスクランブル
キーレジスタ5Aに所定値を設定しスクランブル回路5
B1を機能させることにより、CPU1から出力される
データビット線DBnを経由するデータはスクランブル
データビット線SQDBn−1を経由してSRAM3ま
たはフラッシュメモリ4に格納されると共に、CPU1
から出力されるデータビット線DBn−1を経由するデ
ータはクランブルデータビット線SQDBnを経由して
RAM3またはフラッシュメモリ4に格納される。この
結果、例えばフラッシュメモリ4に書き込まれたプログ
ラムデータを読み出したとしても、フラッシュメモリ4
にはCPU1から出力されるデータとは異なるスクラン
ブルされたプログラムデータが格納されているため、第
三者による解読が不可能になる。
【0024】また、こうしたスクランブルデータをSR
AM3またはフラッシュメモリ4から各スクランブルデ
ータビット線SQDBn,SQDBn−1を介して読み
出したときにスクランブルデータビット線SQDBn,
SQDBn−1がそれぞれ「0」,「1」の場合は、デ
ィスクランブル回路5B2の各アンドゲート61〜64
のうち、アンドゲート64の出力のみが「1」となり、
従ってこれと接続されるオアゲート65の出力が「1」
になることからゲート回路67,68を介してCPU1
に出力される対応のデータビット線DBn,DBn−1
がそれぞれ「1」,「0」となる。また、各スクランブ
ルデータビット線SQDBn,SQDBn−1がそれぞ
れ「1」,「0」の場合は、ディスクランブル回路5B
2のアンドゲート62の出力のみが「1」となり、従っ
てこれと接続されるオアゲート66の出力が「1」とな
ることから対応のデータビット線DBn,DBn−1は
それぞれ「0」,「1」となる。
【0025】このようにしてCPU1からスクランブル
回路5B1を介してSRAM3またはフラッシュメモリ
4に書き込まれたデータは、ディスクランブル回路5B
2により復元されてCPU1に出力される。なお、図3
の例では、CPU1からのデータバスDBの各データビ
ット線DB0〜DBnのうち上位のデータビット線DB
n,DBn−1についてスクランブル/ディスクランブ
ル処理を行い、他のデータビット線DB0〜DBn−2
については上記のスクランブル/ディスクランブル処理
を行わないようにしているが、全てのデータビット線D
B0〜DBnについてスクランブル/ディスクランブル
処理を行うようにしてもよい。
【0026】次に図5(a)は、CPU1と、SRAM
3またはフラッシュメモリ4との間を18本のアドレス
線からなるアドレスバスABで接続して、そのうちスク
ランブルされるアドレスビット線をAB12〜AB15
とした場合の例を示す図である。この場合、0番地から
FFFH(16進)番地までの4Kバイトの領域は非ス
クランブルエリアとなり、この非スクランブルエリアに
はリセット時の飛び先アドレスや上述のイニシャライズ
プログラムを格納する。また、1000H(16進)番
地以降の領域はスクランブルエリアであり、そのスクラ
ンブルエリアには、ダウンロードされたアプリケーショ
ンプログラムを格納する。また、図5(b)は、CPU
1とメモリ間を8本のデータ線からなるデータバスDB
で接続し、そのうちスクランブルされるデータビット線
をDB4〜DB7の4ビットとした場合の例を示す図で
ある。
【0027】上記の図5(a)に示すエリア構成を実現
する場合、図4に示すように、図3のデータスクランブ
ル/ディスクランブル回路5に対し、アドレスバスをデ
コードするデコーダ5Cを付加する。このデコーダ5C
は、アドレスバスABのうち非スクランブルエリアを検
出するもので、その出力をオアゲート73及びアンドゲ
ート74の一方の入力端子に接続する。一方、オアゲー
ト73及びアンドゲート74の他方の入力端子には、ス
クランブルキーレジスタ5Aの各出力端子SEL1,S
EL2を各個に接続する。そして、オアゲート73の出
力はスクランブル回路5B1のアンドゲート51,53
及びディスクランブル回路5B2のアンドゲート61,
63の一方の入力端子に、また、アンドゲート74の出
力はスクランブル回路5B1のアンドゲート52,54
及びディスクランブル回路5B2のアンドゲート62,
64の一方の入力端子にそれぞれ接続する。
【0028】このように構成することで、CPU1がデ
ータをスクランブルするためにスクランブルキーレジス
タ5Aに所定値を設定し、その出力SEL1,SEL2
が「0」,「1」となった場合でも、デコーダ5Cが非
スクランブルエリアを検出して「1」になると、オアゲ
ート73及びアンドゲート74の各出力はともに「1」
となり、したがってスクランブル回路5B1によるデー
タビット線DBn,DBn−1のスクランブルは行われ
ずにそのままメモリに書き込まれる。また、メモリから
読み出したデータについても、ディスクランブル回路5
B2によるディスクランブルは行われずにそのままCP
U1へ伝達することができる。
【0029】このように、アドレスデコーダ2により非
スクランブルエリアを検出するとともに、検出した非ス
クランブルエリアのデータについてはスクランブル/デ
ィスクランブル処理を行わないようにしたものである。
この結果、その非スクランブルエリアをフラッシュメモ
リ4の一部に割り当てるとともに、そのエリアにイニシ
ャライズプログラムやロードプログラムを格納して図1
のROM2のように使用することができ、したがってR
OM2を省略することができる。
【0030】なお、本実施の形態では、スクランブルキ
ーレジスタ5A,6Aに所定のスクランブル値を設定し
てアドレスのスクランブル処理及びデータのスクランブ
ル/ディスクランブル処理を行っているが、この場合、
スクランブルキーレジスタ5A,6Aに固定の設定値の
他に2バイトの他のデータを設定しないと設定が不可能
になるようにしてスクランブルキーレジスタに対するラ
イトプロテクトを強化するようにしても良い。また、リ
セット後にタイマを起動しそのタイマの一定時間内以外
は設定禁止とするようにしても良い。
【0031】
【発明の効果】以上説明したように本発明によれば、C
PUとメモリとの間に、CPUがメモリにデータを書き
込む際にデータバスを通常のパターンと異なるパターン
に切り替えるスクランブル回路と、CPUがメモリから
データを読み出す際にデータバスを上記異なるパターン
から通常のパターンに復旧するディスクランブル回路と
を設けるようにしたので、メモリからデータが読み出さ
れる際には第三者により解読が不可能なデータが読み出
され、この結果、メモリに格納されたプログラムの第三
者による不正改造を阻止することができる。また、デー
タ書き込み時にアドレスバスを通常のパターンと異なる
パターンに切り替えるスクランブル回路とデータ読み出
し時にアドレスバスを通常のパターンに復旧するディス
クランブル回路の少なくとも一方を設けるようにしたの
で、同様に第三者によるメモリデータの解読を不可とす
ることができる。また、メモリにプログラムデータを書
き込む書き込み手段と、バス切替を行うスクランブル回
路とを設け、CPUはプログラムデータを受信すると所
定のパターンに基づきスクランブル回路にバスの切替を
行わせるとともに、書き込み手段によりスクランブル回
路を介しメモリにプログラムデータを書き込ませるよう
にしたので、メモリには第三者に解読不可能なスクラン
ブルデータが書き込まれ、その結果、メモリのデータを
読み出したとしても、第三者による解読が不可能とな
り、したがってメモリに格納されたプログラムの第三者
による不正改造を阻止できる。
【図面の簡単な説明】
【図1】 本発明に係るメモリリード・ライト装置の構
成を示すブロック図である。
【図2】 上記装置内のアドレススクランブル回路の構
成を示す回路図である。
【図3】 上記装置内のデータスクランブル/ディスク
ランブル回路の構成を示す回路図である。
【図4】 上記データスクランブル/ディスクランブル
回路の他の構成例を示す回路図である。
【図5】 上記装置のアドレススクランブル,データク
ランブルの他の例を示す図である。
【符号の説明】
1…CPU、2…ROM、3…SRAM、4…フラッシ
ュメモリ、5…データスクランブル/ディスクランブル
回路、5A,6A…スクランブルキーレジスタ、5B,
6B…バス接続切替部、5B1…スクランブル回路、5
B2…ディスクランブル回路、5C…デコーダ。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 CPUと、アドレスバス及びデータバス
    からなるバスを介し前記CPUに接続されるメモリとか
    らなり、前記CPUは前記メモリに対し前記バスを介し
    てデータの書き込みを行うメモリリード・ライト装置に
    おいて、 CPUがメモリにデータを書き込む際には所定の条件に
    応じ前記バスを通常のパターンと異なるパターンに切り
    替える第1のステップと、CPUがメモリからデータを
    読み出す際には前記バスを通常のパターンに復旧する第
    2のステップとを有することを特徴とするメモリリード
    ・ライト方法。
  2. 【請求項2】 CPUと、アドレスバス及びデータバス
    からなるバスを介し前記CPUに接続されるメモリとか
    らなり、前記CPUは前記メモリに対し前記バスを介し
    てデータの書き込みを行うメモリリード・ライト装置に
    おいて、 前記CPUとメモリとの間に、CPUがメモリにデータ
    を書き込む際に前記データバスを所定の条件に応じ通常
    のパターンと異なるパターンに切り替える第1のスクラ
    ンブル回路と、CPUがメモリからデータを読み出す際
    に前記データバスを通常のパターンに復旧する第1のデ
    ィスクランブル回路とを備えたことを特徴とするメモリ
    リード・ライト装置。
  3. 【請求項3】 CPUと、アドレスバス及びデータバス
    からなるバスを介し前記CPUに接続されるメモリとか
    らなり、前記CPUは前記メモリに対し前記バスを介し
    てデータの書き込みを行うメモリリード・ライト装置に
    おいて、 前記CPUとメモリとの間に、CPUがメモリにデータ
    を書き込む際に前記アドレスバスを所定の条件に応じ通
    常のパターンと異なるパターンに切り替えるスクランブ
    ル回路及びCPUがメモリからデータを読み出す際に前
    記アドレスバスを通常のパターンに復旧するディスクラ
    ンブル回路の少なくとも一方を備えたことを特徴とする
    メモリリード・ライト装置。
  4. 【請求項4】 請求項2において、 前記CPUとメモリとの間に、CPUがメモリにデータ
    を書き込む際に前記アドレスバスを所定の条件に応じ通
    常のパターンと異なるパターンに切り替える第2のスク
    ランブル回路及びCPUがメモリからデータを読み出す
    際に前記アドレスバスを通常のパターンに復旧する第2
    のディスクランブル回路の少なくとも一方を備えたこと
    を特徴とするメモリリード・ライト装置。
  5. 【請求項5】 CPUと、アドレスバス及びデータバス
    からなるバスを介し前記CPUに接続されるメモリとか
    らなり、前記CPUは前記メモリに対し前記バスを介し
    てデータの書き込みを行うメモリリード・ライト装置に
    おいて、 前記メモリにプログラムデータを書き込む書き込み手段
    と、 前記CPUとメモリとの間に設けられバス切替を行うス
    クランブル回路とを備え、前記CPUは前記プログラム
    データを受信すると所定のパターンに基づき前記スクラ
    ンブル回路に前記バスの切替を行わせるとともに、前記
    書き込み手段により該スクランブル回路を介し前記メモ
    リにプログラムデータを書き込ませることを特徴とする
    メモリリード・ライト装置。
JP9332741A 1997-12-03 1997-12-03 メモリリード・ライト方法及びメモリリード・ライト装置 Pending JPH11167526A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9332741A JPH11167526A (ja) 1997-12-03 1997-12-03 メモリリード・ライト方法及びメモリリード・ライト装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9332741A JPH11167526A (ja) 1997-12-03 1997-12-03 メモリリード・ライト方法及びメモリリード・ライト装置

Publications (1)

Publication Number Publication Date
JPH11167526A true JPH11167526A (ja) 1999-06-22

Family

ID=18258346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9332741A Pending JPH11167526A (ja) 1997-12-03 1997-12-03 メモリリード・ライト方法及びメモリリード・ライト装置

Country Status (1)

Country Link
JP (1) JPH11167526A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244925A (ja) * 2001-02-19 2002-08-30 Sony Corp 半導体回路およびデータ処理方法
JP2003500786A (ja) * 1999-05-12 2003-01-07 ギーゼッケ ウント デフリエント ゲーエムベーハー アドレスのスクランブリング機能付きメモリアレー
US8141057B2 (en) 2001-02-16 2012-03-20 Sony Corporation Data processing apparatus and associated method
US8230234B2 (en) 2007-08-06 2012-07-24 Samsung Electronics Co., Ltd. Semiconductor memory devices that are resistant to power attacks and methods of operating semiconductor memory devices that are resistant to power attacks

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003500786A (ja) * 1999-05-12 2003-01-07 ギーゼッケ ウント デフリエント ゲーエムベーハー アドレスのスクランブリング機能付きメモリアレー
US8141057B2 (en) 2001-02-16 2012-03-20 Sony Corporation Data processing apparatus and associated method
JP2002244925A (ja) * 2001-02-19 2002-08-30 Sony Corp 半導体回路およびデータ処理方法
US8230234B2 (en) 2007-08-06 2012-07-24 Samsung Electronics Co., Ltd. Semiconductor memory devices that are resistant to power attacks and methods of operating semiconductor memory devices that are resistant to power attacks

Similar Documents

Publication Publication Date Title
US5214697A (en) Program execution apparatus for ensuring security of a program
JPH01296361A (ja) メモリカード
US4523271A (en) Software protection method and apparatus
US4306289A (en) Digital computer having code conversion apparatus for an encrypted program
US4525599A (en) Software protection methods and apparatus
US7930562B2 (en) Method of and apparatus for reproducing information, and security module
US5802541A (en) Method and apparatus in a data processing system for using chip selects to perform a memory management function
EP0137995A2 (en) Single-chip microcomputer with encryptable function on program memory
JPS59139200A (ja) 固定記憶装置用保護装置
JPH0156413B2 (ja)
KR960004734B1 (ko) 정보 보호방법 및 정보기억미디어
JPH08185361A (ja) 半導体集積回路装置
JPH11167526A (ja) メモリリード・ライト方法及びメモリリード・ライト装置
US6665782B2 (en) Method and apparatus for preventing unauthorized access of memory devices
US5153921A (en) Microcomputer
JP2000235523A (ja) 電子式データ処理用回路装置
JP2820938B2 (ja) 外部メモリとそれを用いる情報処理装置
US6915247B1 (en) Computer system
JP3705255B2 (ja) 半導体装置及びそれを用いたインサーキットエミュレータ
US5894515A (en) Random access memory device having inconsistent write-in and read-out data
US6715079B1 (en) Method and system for soft modem protection
JPH02128266A (ja) 保護機能付レジスタ
JPS61173341A (ja) マイクロコンピユ−タ−における防護プログラムを不正使用から防護するための方法とその装置
JPS63279341A (ja) メモリ集積回路
JP2739197B2 (ja) 複製防止装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20040506

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060207