JP4605871B2 - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP4605871B2
JP4605871B2 JP2000255318A JP2000255318A JP4605871B2 JP 4605871 B2 JP4605871 B2 JP 4605871B2 JP 2000255318 A JP2000255318 A JP 2000255318A JP 2000255318 A JP2000255318 A JP 2000255318A JP 4605871 B2 JP4605871 B2 JP 4605871B2
Authority
JP
Japan
Prior art keywords
memory
microprocessor
stack pointer
signal
contents
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.)
Expired - Fee Related
Application number
JP2000255318A
Other languages
English (en)
Other versions
JP2002073418A (ja
Inventor
睦博 内藤
和明 溝口
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2000255318A priority Critical patent/JP4605871B2/ja
Priority to US09/791,874 priority patent/US6647475B2/en
Publication of JP2002073418A publication Critical patent/JP2002073418A/ja
Application granted granted Critical
Publication of JP4605871B2 publication Critical patent/JP4605871B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、メモリアクセスを許可/禁止する機能を備えたマイクロプロセッサに関する。
【0002】
【従来の技術】
携帯電話などの電子機器では、ローエンドのマイクロプロセッサが用いられている。例えばウエブサイトから携帯電話にダウンロードしたプログラム(以下、アプリケーションプログラム)を実行すると、ユーザが設定したデータが不本意に書き換えられることもあり得る。ハイエンドのマイクロプロセッサを用いた場合には、メインプログラム(例えばOS)を特権レベルとして、メモリライトアクセス権や実行命令にレベルを付けることにより、アプリケーションプログラムによるデータ破壊を防止することができる。
【0003】
【発明が解決しようとする課題】
しかし、ローエンドマイクロプロセッサをハイエンドマイクロプロセッサに置き換えると、コスト高になるとともに、開発済のOSを含むソフトウエアを最初から構築し直したり、ハードウエアシステムを変更したりする必要がある。また、OSの記憶容量が膨大になる。
【0004】
本発明の目的は、このような問題点に鑑み、簡単なハードウエア構成を付加することにより特定プログラムによるメモリアクセスを許可/禁止することが可能なマイクロプロセッサを提供することにある。
【0005】
【課題を解決するための手段及びその作用効果】
本発明によるマイクロプロセッサでは、スタックポインタと、該スタックポインタの内容を設定値と比較しその結果に応じてメモリアクセスを許可/禁止する信号を出力するアクセス許可/禁止判定回路とを有する。
【0006】
このマイクロプロセッサによれば、スタックの深さに応じてメモリアクセスが許可又は禁止されるので、例えば、予め格納されているメインプログラム実行時にはスタックポインタ値が所定値より小さく、ユーザの操作により追加されたアプリケーションプログラムの実行開始時にはスタックポインタ値が該所定値になるようにすることにより、メインプログラム実行時にはユーザがデータをアクセスでき、アプリケーションプログラム実行時にはこのデータをアクセスできないようにすることができる。
【0007】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【0008】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【0009】
[第1実施形態]
図1は、本発明の第1実施形態のマイクロプロセッサ10の概略ブロック図である。
【0010】
マイクロプロセッサ10はローエンドであり、例えば、データバス幅及びアドレスバス幅はそれぞれ16ビット及び32ビットであって携帯電話に用いられる。
【0011】
CPU11は、演算回路、レジスタファイル及び制御回路を備えて、各種演算及び制御を行なう。マイクロプロセッサ10には、RAM12及びRAM13が内蔵されている。CPU11と、RAM12及びRAM13との間は、アドレスバス14及びデータバス15で接続されている。例えばアドレスADRの最上位ビットが‘1’のとき、RAM12がイネーブル状態、RAM13がディセーブル状態になり、これが‘0’のとき、RAM12がディセーブル状態、RAM13がイネーブル状態になる。
【0012】
CPU11は、RAM12又はRAM13に書き込みを行なう場合、ライト要求信号WRを高レベルにする。CPU11のライト要求信号出力端WRは、アンドゲート16の一方の入力端及びRAM13のライトイネーブル信号入力端WEに接続されている。RAM12のライトイネーブル信号入力端WEには、アンドゲート16の出力端が接続されている。
【0013】
CPU11は、プログラムカウンタPC及びプログラムステータス(レジスタ)PSを備えている。CPU11は、上記レジスタファイル内のレジスタとしてスタックポインタ18を備えているが、図1では便宜上、スタックポインタ18がCPU11の外部に記載されている(他図も同様)。
【0014】
CPU11は、割込ルーチン又はサブルーチンを実行する際に、本来の処理の前処理として、スタックポインタ18の内容SPVで指定されるスタック領域131のアドレスに、プログラムカウンタPCの内容を格納(退避)し、スタックポインタ18の内容SPVをインクリメントし、同様に、スタックポインタ18の内容SPVで指定されるスタック領域131のアドレスに、プログラムステータスPSの内容を格納し、スタックポインタ18の内容SPVをインクリメントする。
【0015】
CPU11は、割込ルーチン又はサブルーチンから元のプログラムに戻る際に、後処理として上記の場合と逆に、スタックポインタ18の内容SPVをデクリメントし、スタックポインタ18の内容SPVで指定されるスタック領域131のアドレスからデータを読み出してこれをプログラムステータスPSに格納(復帰)し、同様に、スタックポインタ18の内容SPVをデクリメントし、スタックポインタ18の内容SPVで指定されるスタック領域131のアドレスからデータを読み出してこれをプログラムカウンタPCに格納する。
【0016】
比較器17は、スタックポインタ値SPVと、予め設定されているアドレス値ADR1とを比較し、SPV≧ADR1であれば比較結果CPを高レベルにし、そうでなければ比較結果CPを低レベルにする。この比較結果CPは、インバータ19を介してアンドゲート16の他方の入力端に供給される。
【0017】
RAM12には、ユーザが設定したモードや電話番号などのデータが書き込まれている。RAM13は、スタック領域131とワークエリアとからなる。
【0018】
マイクロプロセッサ10内の不図示のプログラムメモリには、例えば図2に示すようなプログラムが格納されている。メインプログラム30は、初期設定ルーチン31と、入力情報に応じた処理を行なう実行制御プログラム33とを備えている。サブルーチン34及び35は任意のルーチンで利用可能である。アプリケーション設定ルーチン36は、アプリケーションプログラム37に対し初期設定を行いこれを実行する。アプリケーションプログラム37は、例えばウエブサイトからダウンロードされたものである。
【0019】
次に、上記の如く構成された本第1実施形態の動作を説明する。
【0020】
図3(A)は、スタックポインタ値SPVの変化を示している。
【0021】
SPVの初期値はH8000_0000である。ここに、先頭のHは16進数であることを示し、アンダーバー_は16ビットの区切りを示している。ADR1はH8000_0004である。
【0022】
例えば、ユーザが携帯電話のキーを操作し、これにより実行制御プログラム33でサブルーチンコール命令CALL APSETが実行されると、アプリケーション設定ルーチン36へ移り、その前処理で上述のようにスタック領域131にプログラムカウンタPC及びプログラムステータスPSの内容が格納されて、スタックポインタ値SPVがH8000_0002になる。アプリケーション設定ルーチン36の本処理でサブルーチンコール命令CALL APRIが実行されると、アプリケーションプログラム37へ移り、その前処理で上述のようにスタック領域131にプログラムカウンタPC及びプログラムステータスPSの内容が格納されて、スタックポインタ値SPVがH8000_0004になる。
【0023】
これにより、比較結果CPが図3(B)に示す如く高レベルとなり、ライト要求信号WRのレベルによらずアンドゲート16の出力が低レベルとなる。したがって、アプリケーションプログラム37においてRAM13の内容を書き換えることは可能であるが、RAM12の内容を書き換えることはできない。これにより、ユーザが設定したデータがアプリケーションプログラム37の実行により不本意に書き換えられるのが防止される。
【0024】
アプリケーションプログラム37の後処理において、スタック領域131に退避されている内容がCPU11のプログラムステータスPS及びプログラムカウンタPCに復帰されて、スタックポインタ値SPVがH8000_0002になり、比較結果CPが低レベルに戻って、RAM12の内容を書き換え可能になる。アプリケーションプログラム37の処理が終了し、CALL APRIの次の命令が実行される。アプリケーション設定ルーチン36の後処理において、上記同様に、スタック領域131に退避されている内容がCPU11のプログラムステータスPS及びプログラムカウンタPCに復帰され、スタックポインタ値SPVがH8000_0000になる。アプリケーション設定ルーチン36の処理が終了し、CALL APSETの次の命令が実行される。
【0025】
[第2実施形態]
図4は、本発明の第2実施形態のマイクロプロセッサ10Aの概略ブロック図である。
【0026】
RAM12は、アプリケーションプログラムで書き換えが禁止されている領域121と、書き換えが許可されている領域122とからなる。アドレスADRが書込保護領域121のアドレス範囲内であるかどうかがアドレス範囲判定回路20で判定され、範囲内であると判定されると、アドレス範囲判定回路20の出力が高レベルとなる。この出力は、アンドゲート16Aに供給される。
【0027】
マイクロプロセッサ10Aの他の構成は、上記第1実施形態と同一である。
【0028】
本第2実施形態によれば、書込保護領域121がアドレス指定され、かつ、SPV≧ADR1であるとき、書込保護領域121への書き込みが禁止される。
【0029】
[第3実施形態]
図5は、本発明の第3実施形態のマイクロプロセッサ10Bの概略ブロック図である。
【0030】
このマイクロプロセッサ10Bでは、CPU11のライト要求信号出力端WRとアンドゲート16Aの出力端とがイクスクルーシブオアゲート21の一方及び他方の入力端に接続され、イクスクルーシブオアゲート21の出力端がCPU11の割込要求信号入力端IRQに接続されている。また、基準値ADR1を設定するレジスタ22がマイクロプロセッサ10Bに備えられており、この内容を変えることにより、アプリケーションプログラムで書込保護領域121を書き換え可能にすることができる。
【0031】
他の点は上記第2実施形態と同一である。
【0032】
RAM12及びRAM13のライトイネーブル信号WEが共に低レベル又は高レベルのときには、割込要求信号IRQが低レベルである。RAM13のライトイネーブル信号WEが高レベルでRAM12のライトイネーブル信号WEが低レベルのときには、割込要求信号IRQが高レベルとなり、その遷移の際に、CPU11に対し割込要求が行なわれる。CPU11はこれに応答して、例えば携帯電話の表示パネルに、書込保護領域121に対する書き込みがアプリケーションプログラムにより実行されようとしたができなかったために処理が正常に実行されないことを表示する。ユーザがこの書き込みを許可したいと判断した場合には、キーを操作してレジスタ22の内容を例えばH8000_1000に変えることにより、書き換え可能にする。
【0033】
[第4実施形態]
図6は、本発明の第4実施形態のマイクロプロセッサ10Cの概略ブロック図である。
【0034】
この第4実施形態では、RAM12Aがマイクロプロセッサ10Cに外付けされている。その他の点は上記第3実施形態と同一である。
【図面の簡単な説明】
【図1】本発明の第1実施形態のマイクロプロセッサの概略ブロック図である。
【図2】図1のマイクロプロセッサに格納されているプログラムの概略説明図である。
【図3】スタックポインタ値SPVの変化を示す図である。
【図4】本発明の第2実施形態のマイクロプロセッサの概略ブロック図である。
【図5】本発明の第3実施形態のマイクロプロセッサの概略ブロック図である。
【図6】本発明の第4実施形態のマイクロプロセッサの概略ブロック図である。
【符号の説明】
10、10A〜10D マイクロプロセッサ
11 CPU
12、12A、13 RAM
121 書込保護領域
122 書込許可領域
131 スタック領域
14 アドレスバス
15 データバス
16、16A アンドゲート
17 比較器
18 スタックポインタ
19 インバータ
20 アドレス範囲判定回路
21 イクスクルーシブオアゲート
22 レジスタ
30 メインプログラム
31 初期設定ルーチン
32 状態確認ルーチン
33 実行制御プログラム
34、35 サブルーチン
36 アプリケーション設定ルーチン
37 アプリケーションプログラム
WR ライト要求信号
WE ライトイネーブル信号
ADR アドレス
DAT データ
CP 比較結果
PC プログラムカウンタ
PS プログラムステータス

Claims (6)

  1. スタックポインタと、
    スタック領域が設定される第1メモリと、
    保護領域を含む第2メモリと、
    該スタックポインタの内容を設定値と比較しその結果に応じて該第2メモリに対するメモリアクセスを許可/禁止する信号を出力するアクセス許可/禁止判定回路と、
    を有することを特徴とするマイクロプロセッサ。
  2. 上記アクセス許可/禁止判定回路は、アドレスバス上のアドレス値が所定範囲内の値であるときに、上記比較結果に応じてメモリアクセスを許可/禁止する信号を出力することを特徴とする請求項1記載のマイクロプロセッサ。
  3. 上記アクセス許可/禁止判定回路は、
    上記スタックポインタの内容を上記設定値と比較する比較回路と、
    該比較回路の比較結果に応じて、該第2メモリのライトイネーブル信号を有効/無効にすることによりメモリへの書き込みを許可/禁止する信号を出力する論理回路と、
    を有することを特徴とする請求項1記載のマイクロプロセッサ。
  4. 上記アクセス許可/禁止判定回路は、
    上記スタックポインタの内容を上記設定値と比較する比較回路と、
    該比較回路の比較結果に応じて、該第2メモリのリードイネーブル信号を有効/無効にすることにより該第2メモリからの読み出しを許可/禁止する信号を出力する論理回路と、
    を有することを特徴とする請求項1記載のマイクロプロセッサ。
  5. スタックポインタと、
    スタック領域が設定されるメモリと、
    該スタックポインタの内容を設定値と比較しその結果に応じて外部メモリに対するメモリアクセスを許可/禁止する信号を出力するアクセス許可/禁止判定回路と、
    を有することを特徴とするマイクロプロセッサ。
  6. 上記メモリアクセスを許可/禁止する信号が上記第1メモリに供給されないことを特徴とする請求項1に記載のマイクロプロセッサ。
JP2000255318A 2000-08-25 2000-08-25 マイクロプロセッサ Expired - Fee Related JP4605871B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000255318A JP4605871B2 (ja) 2000-08-25 2000-08-25 マイクロプロセッサ
US09/791,874 US6647475B2 (en) 2000-08-25 2001-02-26 Processor capable of enabling/disabling memory access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000255318A JP4605871B2 (ja) 2000-08-25 2000-08-25 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2002073418A JP2002073418A (ja) 2002-03-12
JP4605871B2 true JP4605871B2 (ja) 2011-01-05

Family

ID=18744130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000255318A Expired - Fee Related JP4605871B2 (ja) 2000-08-25 2000-08-25 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US6647475B2 (ja)
JP (1) JP4605871B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013556A (ja) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
WO2004015553A1 (en) 2002-08-13 2004-02-19 Nokia Corporation Computer architecture for executing a program in a secure of insecure mode
US8587600B1 (en) * 2005-05-02 2013-11-19 Advanced Micro Devices, Inc. System and method for cache-based compressed display data storage
US8944822B2 (en) * 2005-07-22 2015-02-03 Appareo Systems, Llc Synchronized video and synthetic visualization system and method
US7848698B2 (en) 2005-07-22 2010-12-07 Appareo Systems Llc Flight training and synthetic flight simulation system and method
US9047717B2 (en) 2006-09-25 2015-06-02 Appareo Systems, Llc Fleet operations quality management system and automatic multi-generational data caching and recovery
US8116922B2 (en) 2006-09-25 2012-02-14 Appareo Systems, Llc Method for resolving ground level errors in simulations
US8565943B2 (en) * 2006-09-25 2013-10-22 Appereo Systems, LLC Fleet operations quality management system
JP5756413B2 (ja) * 2012-01-18 2015-07-29 オークマ株式会社 制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6375446A (ja) * 1986-09-15 1988-04-05 ウィリアムズ インターナショナル コーポレーション 小型冷房装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6175446A (ja) * 1984-09-20 1986-04-17 Fujitsu Ltd アドレス比較方式
JPH0484224A (ja) * 1990-07-26 1992-03-17 Nec Corp スタックエリア保護回路
JPH05100847A (ja) 1991-10-07 1993-04-23 Nec Ibaraki Ltd 情報処理装置のメモリ保護方式
JPH05224953A (ja) * 1992-02-07 1993-09-03 Matsushita Electric Ind Co Ltd 割込み制御装置及び方法
JPH09167117A (ja) * 1995-12-15 1997-06-24 Hitachi Ltd マイクロコンピュータおよびこれを用いたリアルタイムシステム
JPH09293020A (ja) * 1996-04-26 1997-11-11 Oki Electric Ind Co Ltd インターフェース回路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6375446A (ja) * 1986-09-15 1988-04-05 ウィリアムズ インターナショナル コーポレーション 小型冷房装置

Also Published As

Publication number Publication date
US6647475B2 (en) 2003-11-11
JP2002073418A (ja) 2002-03-12
US20020026567A1 (en) 2002-02-28

Similar Documents

Publication Publication Date Title
JP3710671B2 (ja) 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
EP1913511B1 (en) A secure terminal, a routine and a method of protecting a secret key
JP3520102B2 (ja) マイクロコンピュータ
JP4605871B2 (ja) マイクロプロセッサ
US8789169B2 (en) Microcomputer having a protection function in a register
JP2727527B2 (ja) 不揮発性メモリ領域の保護方法及び回路
JP2001075941A (ja) フラッシュメモリ内蔵マイクロコンピュータおよびその動作方法
US5564036A (en) Memory protective circuit
JP3082701B2 (ja) メモリ保護装置およびメモリ保護方法
JPH11237983A (ja) ワンチップマイコンおよびこのワンチップマイコンにおけるブート領域アクセスのためのエントリー方法
KR20060119923A (ko) 두 메모리 사이의 보안성 데이터 전송
JPS6074059A (ja) 記憶装置アクセス制御方式
EP0350917A2 (en) Personal computer system capable of preventing contention in memory address space
JP3039479B2 (ja) 拡張bios保護システム
JPH10240623A (ja) 読み出し保護機能付きマイクロコンピュータ
JPH0293746A (ja) 電子機器
JP3047839B2 (ja) シングルチップ・マイクロコンピュータ
JPH0844697A (ja) メモリ内蔵マイコンのセキュリティ方式
JPH01261760A (ja) コンピュータ装置
JP2003006047A (ja) 1チップマイクロコンピュータ及びそれを用いたicカード
JPH06139084A (ja) 情報処理装置
JPH03144751A (ja) メモリ誤書き込み防止装置
JP2005235071A (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体
JP2000099402A (ja) マイクロコンピュータ
JPH0363854A (ja) データプロテクト回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070720

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101005

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101005

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees