JPH0475137A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH0475137A
JPH0475137A JP2189781A JP18978190A JPH0475137A JP H0475137 A JPH0475137 A JP H0475137A JP 2189781 A JP2189781 A JP 2189781A JP 18978190 A JP18978190 A JP 18978190A JP H0475137 A JPH0475137 A JP H0475137A
Authority
JP
Japan
Prior art keywords
instruction
code
register
program
code conversion
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
JP2189781A
Other languages
English (en)
Inventor
Hiroshi Takeda
博 武田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2189781A priority Critical patent/JPH0475137A/ja
Publication of JPH0475137A publication Critical patent/JPH0475137A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、データ処理技術さらにはマイクロコンピュ
ータシステムにおけるプログラムの機密保護に適用して
特に有効な技術に関し、例えばマイクロプロセッサの命
令解読方式に利用して有効な技術に関する。
[従来の技術] 従来のマイクロプロセッサは、ROM (リード・オン
リ・メモリ)やRAM (ランダム・アクセス・メモリ
)のような半導体メモリに格納されたプログラムの命令
コードを順次読み出してきて、それをそのまま内部の命
令レジスタに取り込む。そして、取り込んだ命令を命令
デコーダで解読したり、命令コードに対応したマイクロ
アドレスを形成してマイクロプログラムの入ったROM
をアクセスして制御語を読み出してデコードすることで
制御信号を形成し、この制御信号で実行ユニットを動作
させて命令を実行する方式が一般的であった([株コ朝
倉書店、1981年6月30日発行、「集積回路応用ハ
ンドブック」第405頁〜第449頁参照)。
[発明が解決しようとする課題] シングルチップマイコンのように、プログラムを格納す
るメモリがプロセッサと同一のチップ上に内蔵されてい
るものにあっては、チップ外部への命令コードの読出し
を禁止することで秘密の保護を図ることができる。とこ
ろが、内部にプログラム用のメモリを有しないマイクロ
プロセッサにあっては、命令コードが公開されているた
め外部のROMに格納されているプログラムが容易に解
読されてしまい、秘密の保護が図れない。また、プログ
ラム自身が解読されなかったとしても、所望のプログラ
ムの入ったROMと差し換えるだけでシステムが動作さ
れてしまう。そのため、多大の費用と時間をかけて開発
したシステムの模倣を簡単に許してしまうという問題点
があった。
そこで、本出願人は、外部のメモリがら読み出された命
令コードを取り込んで保持するマイクロプロセッサ内の
命令レジスタの前段に命令コードの変換手段を設け、か
っこのコード変換手段をプログラム可能な構成にしてお
き、ユーザごとにコード変換方式を変更できるようにし
た発明を開発して、提案した(特開昭63−26653
3)。
この発明は、上記先願発明の改良に関し、その目的はマ
イクロプロセッサの汎用性を損なうことなく、より効果
的にプログラムの盗用を防止して、ソフトウェアの機密
保護を図ることにある。
この発明の前記ならびにそのほかの目的と新規な特徴に
ついては、本明細書の記述および添附図面から明らかに
なるであろう。
[課題を解決するための手段] 本願において開示される発明のうち代表的なものの概要
を説明すれば、下記のとおりである。
すなわち、命令レジスタの直前にコード変換手段を設け
るとともに、コード変換手段による変換を行なうか否か
を信号によって制御可能な構成とし、コード変換手段の
有効/無効もしくはコード変換方式そのものをプログラ
ムの進行に応じてダイナミックに変化させるようにした
ものである。
[作用コ 上記した手段によれば、外部メモリに格納されるプログ
ラムを構成する命令コードは予め逆変換されて格納され
ているため、コードの変換方式が分からなければ全く意
味不明なものとなり、しがもマイクロプロセッサの動作
中ダイナミックにコード変換されるためより一層命令コ
ードの解読が困難になり、単にプログラムを模倣したり
ROMを差し換えてもマイクロプロセッサ内のバードウ
ウェアもしくはファームウェアによるコード変換方式と
のマツチングがない限り、正しい命令が実行されなくな
って、プログラムの盗用を防止して、ソフトウェアの機
密保護を図るという上記目的を達成することができる。
[実施例] 以下、本発明をマイクロプロセッサに適用した場合の一
実施例を説明する。
マイクロプロセッサ10内には、外部データバス20を
介して、ROMのようなプログラムが格納されたメモリ
30から読み出された命令コードを取り込んで保持する
命令レジスタ13と、この命令レジスタ13に取り込ま
れた命令コードを解読して適当な制御信号を形成する制
御部14とを有している。制御部14から出力される制
御信号によって各種汎用レジスタや演算論理ユニット、
アキュームレータ等の専用レジスタからなる実行ユニッ
ト15が動作され、読み込まれた命令に対応する処理が
実行される。上記制御部14は、ランダムロジック回路
または命令コードに対応したマイクロ命令群からなるマ
イクロプログラムが格納されたROM (マイクロプロ
グラムROM)により構成される。
この実施例では、上記命令レジスタ13の前段に、例え
ば論理ゲートや切換回路等からなるコード変換手段11
が設けられている。また、このコード変換手段11に対
応して変換を行なうか否かを指定するためのフリップフ
ロップのような指定手段12が設けられている。この指
定手段12は外部端子16からの信号もしくは制御部1
4からの制御信号によって「1」または「0」の設定が
可能にされており、指定手段12が「1」に設定される
とその出力信号によって上記コード変換手段11がデー
タバス20から取り込まれた命令コ−ドを変換して命令
レジスタ13に供給し、指定手段12が「0」に設定さ
れていると、命令コードをそのまま命令レジスタ13に
格納するようになっている。
ここで、制御部14のハードウェアもしくはマイクロプ
ログラムが、同種のすべてのマイクロプロセッサにおい
て共通であるとすると、命令レジスタ13に入る最終的
な命令コードはすべて同一であることを要する。
そこで、この実施例のマイクロプロセッサを使用したシ
ステムでは、命令レジスタ13に入る本来の命令コード
に対してコード変換手段11で実行される変換とは逆の
変換を施したコードを用いて予め作製したプログラムを
、外部のメモリ3゜内に入れておくことにより所望の命
令を実行させるようになっている。これによって、外部
のROM等に入っている命令コードを調べただけではプ
ログラムを解読することが困難となり、ユーザプログラ
ムの機密保護が図れる。
しかもこの実施例では、上記指定手段12の設定状態を
プログラム実行中にダイナミックに変化させるようにな
っている。
その具体的な手法としては、制御部14内にアドレスレ
ジスタと比較器とを設け、外部へ出力された命令フェッ
チアドレスがアドレスレジスタに設定されたアドレス範
囲に入っているか常時比較器でチエツクし、所定のアド
レス範囲内の命令をフェッチしたときにのみ指定手段1
2の状態を書き換えてコード変換器11により命令コー
ドの変換を行なわせる方法がある。
上記指定手段12の設定状態をプログラム実行中にダイ
ナミックに変化させる他の方法としては、指定手段12
を切り換える専用の命令(非公開)を用意し、プログラ
ム中に適宜その命令を挿入しておいて、指定手段12を
ランダムに書き換える方法、あるいは制御部14内に命
令サイクルを計数するカウンタを設け、周期的に指定手
段12を書き換えてコード変換器11を有効にしたり無
効にしたりする方法がある。
さらに、他の手法としては、制御部14で命令を解読し
、フェッチした命令コードのうちインストラクションコ
ードのみコード変換し、オペランドやデータはコード変
換しないように指定手段12を書き換える純ソフトウェ
ア的な方法が考えられる。
もちろん、チップに設けられた外部端子16を用いて外
部から随時指定手段12を設定し直す信号を入れるよう
にしてもよい。
第2図には、上記コード変換手段11の構成例が示され
ている。
第2図(A)は最も単純な例であって、命令コードがn
ビット構成である場合にはn個のEORゲート01〜O
nと一つのフリップフロップFFOとによりコード変換
手段11が構成されている。
この実施例では、フリップフロップFFOが「1」に設
定されていると入力されたコードが反転されて出力され
、フリップフロップFFOが「0」に設定されていると
入力されたコードはそのままの論理状態で命令レジスタ
3に供給される。
第2図(B)では、一つのフリップフロップFFOと、
各ビットごとに相補的に動作される一対のバッフyBF
11.BFl 2〜BFn l、BFn2が設けられて
おり、フリップフロップFFOが「1」に設定されると
、バッファBF12〜BFn2が能動状態にされて、入
力されたビットB〜Bnを入れ換えて命令レジスタへ供
給する。
第2図(C)の実施例では、各ビット81〜Bnが入力
される論理ゲートG1=Gnに対応されたフリップフロ
ップFFI〜FFnからなるレジスタが指定手段12と
して設けられており、このレジスタ12の設定状態に応
じたコード変換が実行可能にされている。すなわち、対
応するフリップフロップが「0」に設定されている論理
ゲートは入力ビットを強制的に「0」に固定して出力し
、フリップフロップが「1」に設定されていると入力ビ
ットをそのまま出力して命令レジスタへ供給する。これ
によって入力されたコードはレジスタ12の設定内容が
異なると全く別のコードに変換される。
なお、第2図(C)の実施例では、全ビットについて同
一種類の論理ゲートを用いているが、各ビットごとに異
なる論理ゲートを用いてもよい。
一方、上記設定手段12としては、フリップフロップの
他、例えばEPROM素子もしくはEEPROMEPR
OM素子ROM素子のようなプログラム可能な不揮発性
素子を使用してもよい。その場合、メーカにおいて上記
不揮発性素子にデータを書き込んでもよいし、ユーザに
おいて書き込むようにしてもよい。
また、コード変換手段11を第2図(A)〜(C)に示
すような論理ゲート回路の代わりに、演算論理ユニット
で構成し、制御部14内のマイクロプログラムその他の
ファームウェアにより、演算論理ユニットでの演算の種
類を指定してやるようにしてもよい。しかも、演算の種
類を指定するレジスタを設け、メーカに対してもプログ
ラムの機密を保護したいと望むユーザに対しては、演算
器において可能な演算の種類のみを情報として与え、不
揮発性レジスタへの書込みをユーザに委ねることによっ
て、より信頼性の高い機密保護が可能となる。
さらに、制御部14が書替え可能なEPROMで構成さ
れているような場合には、マイクロプログラムROM内
にキーワードを入れておいて、レジスタ12として揮発
性レジスタを使用し、システムの立上り時等にマイクロ
プログラムROM内のキーコードをレジスタ12に入れ
るように構成してもよい。
さらに、コード変換手段11と命令レジスタ13との間
に複数個の命令コードが格納可能なファーストイン・フ
ァーストアウト方式のキャッシュメモリを設けてもよい
このようにすれば、命令レジスタ13内に取り込まれた
命令を解読して実行している間に、その命令に続く次の
命令コードを外部のメモリから読み出してコード変換手
段11によりコード変換し、それをキャッシュレジスタ
に貯えておくようにすることにより、コード変換に要す
る時間が無視できるようになり、コード変換手段を有し
ない従来のマイクロプロセッサとほぼ同等の命令実行速
度を得ることができる。
以上説明したように上記実施例においては、命令レジス
タの直前にコード変換手段を設けるとともに、コード変
換手段による変換を行なうか否か信号によって制御可能
な構成とし、コード変換手段の有効/無効もしくはコー
ド変換方式そのものをプログラムの進行に応じてダイナ
ミックに変化させるようにしたので、外部メモリに格納
されるプログラムを構成する命令コードは予め逆変換さ
れて格納されているため、全く意味不明なものとなり、
しかもマイクロプロセッサの動作中ダイナミックにコー
ド変換されるためより一層命令コードの解読が困難にな
り、単にプログラムを模倣したりROMを差し換えても
マイクロプロセッサ内のハードウェアもしくはファーム
ウェアによるコード変換方式とのマツチングがない限り
、正しい命令が実行されなくなって、プログラムの盗用
が防止され、ソフトウェアの機密保護が図られるように
なるいう効果がある。
以上本発明者によってなされた発明を実施例に基づき具
体的に説明したが、本発明は上記実施例に限定されるも
のではなく、その要旨を逸脱しない範囲で種々変更可能
であることはいうまでもない。例えば、上記実施例では
、ダイナミックなコード変換を行なうためコード変換手
段11が論理ゲートまたは演算器で構成されていると説
明したが、それに限定されるものではない。例えば、コ
ード変換手段を、PLA(プログラマブル・ロジック・
アレイ)やプログラム可能なROMを用いて構成するこ
ともできる。
また、コード変換手段を、第2図(B)のように複数の
信号経路の切換えを行なうバッファ回路で構成する代わ
りにスイッチ素子もしはくマスクスライス法による配線
形成による切換えで命令コードのビット配列を変更して
伝送するようにしてもよい。
以上の説明では主として本発明者によってなされた発明
をその背景となった利用分野であるマイクロプロセッサ
に適用したものについて説明したが、この発明はそれに
限定されるものでなく、外部拡張可能なシングルチップ
マイコンその他命令を取り込んで実行するデータ処理装
置一般に利用することができる。
[発明の効果] 本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば下記のとおりである
すなわち、ユーザごとにコード変換方式を変更できるの
で、命令コードをユーザごとに異ならしめることが可能
となるとともに、プログラム実行中ダイナミックにコー
ド変換方式を変更することができ、これによってマイク
ロプロセッサの汎用性を損なうことなく、プログラムの
盗用を防止して、ソフトウェアの機密保護を図ることが
できる。
【図面の簡単な説明】
第1図は、本発明に係るマイクロプロセッサの一実施例
を示すブロック図、 第2図(A)、(B)、(c)は、コード変換手段の構
成例を示す論理回路図である。 10・・・・マイクロプロセッサ、20・・・・外部デ
ータバス、13・・・・命令レジスタ、14・・・・制
御部、15・・・・実行ユニット、11・・・・コード
変換手段。 第  1  図 第  2 図 に)

Claims (1)

  1. 【特許請求の範囲】 1、外部のメモリから読み出された命令コードを取り込
    んで保持する命令レジスタの前段に設けられたコード変
    換手段と、該コード変換手段の有効/無効もしくは命令
    コードの変換方式を指定するための指定手段とを備えて
    なることを特徴とするデータ処理装置。 2、上記指定手段は、プログラム実行中に制御部から供
    給される制御信号によって設定状態が変更されるように
    構成されてなることを特徴とする請求項1記載のデータ
    処理装置。3、上記指定手段の設定状態を外部から変更
    させるための外部端子を備えてなることを特徴とする請
    求項1記載のデータ処理装置。
JP2189781A 1990-07-18 1990-07-18 データ処理装置 Pending JPH0475137A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2189781A JPH0475137A (ja) 1990-07-18 1990-07-18 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2189781A JPH0475137A (ja) 1990-07-18 1990-07-18 データ処理装置

Publications (1)

Publication Number Publication Date
JPH0475137A true JPH0475137A (ja) 1992-03-10

Family

ID=16247099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2189781A Pending JPH0475137A (ja) 1990-07-18 1990-07-18 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0475137A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007520811A (ja) * 2004-01-13 2007-07-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 実行可能コードの復号化に用いる方法およびこれに関連する装置
US7278029B2 (en) 1996-09-03 2007-10-02 Hitachi, Ltd. Program writable IC card and method thereof
JPWO2009011035A1 (ja) * 2007-07-17 2010-09-09 パイオニア株式会社 立寄り場所候補情報登録装置、立寄り場所候補情報登録方法、立寄り場所候補情報登録プログラム及び記憶媒体
US8841827B2 (en) 2010-09-29 2014-09-23 Ngk Spark Plug Co., Ltd. Spark plug with improved resistance to spark-induced erosion of the ground electrode tip
JP2015523635A (ja) * 2012-05-25 2015-08-13 コーニンクレッカ フィリップス エヌ ヴェ プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7278029B2 (en) 1996-09-03 2007-10-02 Hitachi, Ltd. Program writable IC card and method thereof
JP2007520811A (ja) * 2004-01-13 2007-07-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 実行可能コードの復号化に用いる方法およびこれに関連する装置
JP4751835B2 (ja) * 2004-01-13 2011-08-17 エヌエックスピー ビー ヴィ 実行可能コードの復号化に用いる方法およびこれに関連する装置
JPWO2009011035A1 (ja) * 2007-07-17 2010-09-09 パイオニア株式会社 立寄り場所候補情報登録装置、立寄り場所候補情報登録方法、立寄り場所候補情報登録プログラム及び記憶媒体
US8841827B2 (en) 2010-09-29 2014-09-23 Ngk Spark Plug Co., Ltd. Spark plug with improved resistance to spark-induced erosion of the ground electrode tip
JP2015523635A (ja) * 2012-05-25 2015-08-13 コーニンクレッカ フィリップス エヌ ヴェ プログラムのリバースエンジニアリング及び/又は改竄に対する保護のための方法、システム及び装置

Similar Documents

Publication Publication Date Title
US5237616A (en) Secure computer system having privileged and unprivileged memories
US5446864A (en) System and method for protecting contents of microcontroller memory by providing scrambled data in response to an unauthorized read access without alteration of the memory contents
KR0138697B1 (ko) 마이크로컴퓨터
KR19980071365A (ko) 메모리 액세스 제어회로
US20050257016A1 (en) Digital signal controller secure memory partitioning
US20090144511A1 (en) Enhanced Microprocessor or Microcontroller
JP2007249323A (ja) マイクロコンピュータ
TW556081B (en) Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
JPH0475137A (ja) データ処理装置
KR950009687B1 (ko) 프로그램어블 로직 콘트롤러용 고속 래더명령 처리장치
JPS63266533A (ja) デ−タ処理装置
JP3234959B2 (ja) マイクロコンピュータおよびこれを内蔵するカード
JP3882628B2 (ja) メモリ制御装置及びシリアルメモリ
JP2624249B2 (ja) 模倣防止機能付プロセッサ
EP0503498A2 (en) Single-chip microcomputer with program/data memory flag
US5924124A (en) Software programmable bus disable system
JPH02128266A (ja) 保護機能付レジスタ
KR100468615B1 (ko) 내부 프로그램 코드 보호 장치
JP4236808B2 (ja) 不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法
JP4546127B2 (ja) マイクロコントローラ
KR20080044652A (ko) Cpu에서의 스택을 이용한 디버깅 방법
JP4702004B2 (ja) マイクロコンピュータ
JPH04107630A (ja) 中央処理装置
JPH06139084A (ja) 情報処理装置
JPH0991267A (ja) 不揮発性メモリのデータ書き込み装置