JP4892414B2 - 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法 - Google Patents

制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法 Download PDF

Info

Publication number
JP4892414B2
JP4892414B2 JP2007155932A JP2007155932A JP4892414B2 JP 4892414 B2 JP4892414 B2 JP 4892414B2 JP 2007155932 A JP2007155932 A JP 2007155932A JP 2007155932 A JP2007155932 A JP 2007155932A JP 4892414 B2 JP4892414 B2 JP 4892414B2
Authority
JP
Japan
Prior art keywords
domain
address
storage medium
program
control circuit
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
JP2007155932A
Other languages
English (en)
Other versions
JP2008310460A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2007155932A priority Critical patent/JP4892414B2/ja
Priority to PCT/JP2008/055940 priority patent/WO2008152846A1/ja
Publication of JP2008310460A publication Critical patent/JP2008310460A/ja
Application granted granted Critical
Publication of JP4892414B2 publication Critical patent/JP4892414B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、消去および書き換え可能な記憶領域を持つ記憶媒体、特にフラッシュメモリなどの不揮発性記憶媒体の領域管理を行う制御回路、および前記制御回路を有する汎用または組込みシステム向け処理装置、および前記処理装置を有する組込みシステム、ならびに前記記憶媒体の領域管理方法に適用して有効な技術に関するものである。
PCや組込みシステムで広く利用されているフラッシュメモリは、半導体メモリの一種で、通常、データがブロック単位で管理されている。従って、データの読み出し、書き込み、消去を行う際には、このデータブロック毎に処理が行われることになる。
また、フラッシュメモリは、データを書き込む際には、通常、消去状態から書き込みが行われ、仮に元のデータに上書きを行うと、元のデータと書き込むデータとのANDまたはORをとった結果がフラッシュメモリ上に書き込まれる。従って、データブロックの更新を行いたい場合には、そのブロックをいったん消去してから更新データを書き戻す処理や、別のデータブロックに新たに書き込み、その後元のデータブロックを消去する等の処理が必要になる。
しかし、データを消去している最中に電源遮断等が発生した場合に、書き戻すべきデータやそのアドレスに関する情報が失われ、正しく更新することができなくなるという問題がある。これはフラッシュメモリを利用したシステムを構築する上での課題の一つとなっており、特開2006−323499号公報(特許文献1)、特開2006−39983号公報(特許文献2)、特開2005−258851号公報(特許文献3)、特開2004−310477号公報(特許文献4)、特開2004−265162号公報(特許文献5)等に見られるように様々な解決手段が提案されている。
しかしこれら解決手段は、主にメモリカードやUSBメモリ等の、フラッシュメモリをデータストレージとして利用する場合に有効な技術であるが、近年のようにフラッシュメモリを組込みシステム向けCPUやICカードチップなどに組み込んで利用する現状においては、必ずしも適しているとはいえない。
組込みシステム向けCPUやICカードチップで、フラッシュメモリのようなデータをブロック単位で管理する消去および書き換え可能な不揮発性メモリが利用される場合には、大規模化する組込みシステム向けソフトウェアのために、従来のEEPROMよりも大容量かつ安価なデバイスとして利用されることになる。その際には、フラッシュメモリは単にデータを格納するためだけのデバイスとしてではなく、ROMやRAMの置き換えとしてプログラムの実行に使用するデバイスとして期待されることになる。
特開2006−323499号公報 特開2006−39983号公報 特開2005−258851号公報 特開2004−310477号公報 特開2004−265162号公報
上記のような状況の中、組込みシステム向けCPUやICカードチップでフラッシュメモリを利用する場合は、上記のような電源遮断対策や、エラー訂正機能、書き換え回数の分散化など様々な技術が要求されることになっており、制御のためのソフトウェア、ハードウェアが肥大化する傾向にある。
また、このような記憶媒体としての可用性の確保という課題の他に、セキュリティ的にも考慮すべき課題が存在する。従来の組込みシステム向けCPUやICカードチップは、主に特定の用途で利用されることが主であったため、最低限のハードウェアリソース上で単一のアプリケーションが実行されるような場合がほとんどだった。しかしながら組込みシステムの複雑化や、ICカードの多目的用途への利用など、システムに対する要求は高まっており、組込みシステム向けCPUやICカードチップは、複数のアプリケーションが同時に動作するような場合についても考慮する必要が生じてきた。
通常、これらのアプリケーションは組込みシステム向けCPUやICカードチップ上で動作するOSにより排他的または協調的にシステムリソースを共有できるように制御することが期待されているが、消費電力や価格における性能的リソースに対する制限が厳しい組込みシステム向けCPUやICカードチップにおいては、複雑なソフトウェア処理を導入することができない場合が多い。しかしながら組込みシステム向けCPUやICカードチップにおけるセキュリティを考える上で、より低コストにハードウェアリソースの排他制御を可能にする仕組みは、システムの安全性を考慮する上で重要な課題である。
そこで、本発明の目的は、組込みシステム向けCPUやICカードチップにおいて用いられるフラッシュメモリなどの記憶媒体に対して、可用性を確保するための電源遮断対策などに加えて、複数のアプリケーション間で使用領域の排他制御や共用などの領域管理を行う制御回路、および前記制御回路を有する汎用または組込みシステム向け処理装置、および前記処理装置を有する組込みシステム、ならびに前記記憶媒体の領域管理方法を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、CPUと、消去および書き換え可能な記憶媒体とを有する処理装置において、該記憶媒体の所定の領域をドメインとして設定し、前記ドメインの管理およびプログラムが前記ドメインを利用する際のアクセス要件の管理を行う制御回路および領域管理方法であって、前記制御回路は、前記記憶媒体に前記ドメインの管理のための制御情報を設定するための第1のレジスタと、現在の処理対象である前記ドメインについての情報を保持する第2のレジスタとを有し、前記第1のレジスタの情報を用いて、前記記憶媒体上のアドレスに対して、該アドレスに割り当てられたデータ領域が属する前記ドメインについての前記制御情報を設定し、プログラムによる前記記憶媒体上のアドレスに割り当てられたデータ領域へのアクセスの際に、該アドレスに設定されている前記制御情報と、前記第2のレジスタの情報とに基づいて、該アクセスの可否を判断することを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、組込みシステム向けCPUやICカードチップなどにおいて、フラッシュメモリなどの記憶媒体をアプリケーションの実行に使用する場合、アプリケーションが、自身では設定変更等ができない個別の領域であるドメイン上でのみ動作することが可能となるため、あるアプリケーションの不正動作により、他のドメイン上のデータが破壊されたり、不正にアクセスされたりするおそれなく稼動することが可能となる。
また、仮想アドレスやデータ領域の多重化の仕組みを組み合わせることにより、電源遮断などの障害に対する可用性の確保も可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本発明の一実施の形態である処理装置、および当該処理装置に接続された記憶媒体の構成を表す図である。ICカード100は、入出力IF110と処理装置120とを有する構成となっている。ここでICカード100は、本発明の対象となる組込みシステムの代表的な一例であり、その形状、外部装置とのインタフェースの仕様、処理装置120の種類や、他の装置の有無などにより種々の組込みシステムに適用することができる。
入出力IF110は、ISO7816で規格化された物理的、電気的特性を有し、また同規格で定められたメッセージフォーマットでコマンドおよびデータの送受信を行うインタフェースである。組込みシステムにおける入出力IF110に相当するインタフェースはこれに限定される必要はなく、USB(Universal Serial Bus)やMMC(MultiMedia Card)、ATA(AT Attachment)等の規格に準拠したものや、PCI等の装置内のバスや、ISO14443で規格化されている非接触ICカードインタフェースやBluetooth、無線LAN等の物理的な端子を持たないインタフェースであってもよい。
入出力IF110は、VCC線111、リセット信号線(図中ではRSTと表記)112、クロック信号線(図中ではCLKと表記)113、GND線114、入出力線(図中ではI/Oと表記)115により処理装置120と接続されている。
処理装置120は、入出力IF110の制御回路であるUART制御回路121と、CPU122、RAM123、ROM124、コプロセッサ125、アドレス制御回路130を有し、これらは内部バス126により接続されている。またこの他にEEPROM140を有し、EEPROM140はアドレス制御回路130に接続される構成をとる。
処理装置120は、組込みシステムにおける処理装置群の代表例であり、これらの装置が1チップにモジュール化されていても、一つまたは複数のモジュールが別チップとして構成されていても、またそのような構成をとることにより各チップが複数のバスで接続されていてもよい。またEEPROM140は、フラッシュメモリに限らず、FeRAM、MRAM等の他の素子から構成されるデバイスであっても良く、またHDDのような磁気媒体であってもよい。またフラッシュメモリについても、NAND型、AND型、NOR型などの違いに依存しない。
ここでEEPROM140が、ある物理アドレスに対応したデータブロックの単位で読み出し、書き込み、消去を行うような、消去および書き換え可能な不揮発性記憶媒体である場合、EEPROM140上のデータブロック141は、当該データブロック141に割り当てられた制御情報151とデータ領域152とを有する。
制御情報151は、データブロック141の消去が指定された場合には消去操作の対象になってもよいが、アプリケーション等からデータブロック141にアクセスする際の読み出しと書き込みの対象にはならず、制御情報151の読み出しおよび書き込みは、後述するアドレス制御回路130が管理するレジスタを用いて行うことになる。制御情報151は、アドレスで参照される1バイトのデータ毎に割り当てられてもよいが、数KBからなるデータブロックや、数十KBからなるデータブロックを纏めたページブロック毎に割り当てられていてもよい。
アドレス制御回路130は、EEPROM140のドメイン管理を行うためのモジュールであり、ドメイン制御レジスタ131、仮想アドレス空間レジスタ132、ドメイン設定レジスタ133を有する。ここで、ドメインとは、アプリケーションが利用するEEPROM140上の個別の領域であり、原則として当該アプリケーション以外はアクセス等することができず、また、当該アプリケーション自身によっては設定変更等ができない領域のことを指す。ドメインの詳細については後述する。
アドレス制御回路130は、EEPROM140からの読み出し、書き込み、消去、プロテクト状態の管理、処理中の割り込み制御、アドレススクランブル、暗復号処理、エラー検知等の制御を行うためのモジュールを拡張したものであり、これらのモジュールの代りに実装されるものではなく、またこれらのモジュールの働きを制限するものでもない。また、アドレス制御回路130は、論理回路であってもよいが、CPUを含む構成や、処理により内部構成が変更可能なリコンフィギュアラブルな論理回路であってもよい。
ドメイン制御レジスタ131は、EEPROM140上のドメインへのアクセスを行う前に設定されるレジスタであり、現在処理中のドメインのドメイン番号134、アクセス種別135等が格納される。アクセス種別135は、CPU122がEEPROM140上のドメインに対して行う、読み出し、書き込み、消去といった操作に関する情報であり、プログラムカウンタの値、ドメイン番号134、後述するドメイン番号153に基づく判断により可能な場合には、現在実行中のアプリケーションから設定することができるレジスタである。
アドレス制御回路130は、EEPROM140上のドメインへのアクセスが発生した場合に、アクセス種別135と後述のドメイン種別フラグ156とに基づいて、指定されたアクセス種別135の内容が、対象のドメインのドメイン種別フラグ156に設定されているアクセスの要件を満たしているかどうかを判断する。この判断を、汎用的な処理を実行するCPU122に行わせないことにより、EEPROM140への不正アクセスを防止できるという効果を持つ。
ドメイン番号134は、あるドメインへ制御が受け渡される際に設定される値であり、現在処理中のドメイン自身と、当該ドメインの子ドメインの番号のみを設定することができる。アプリケーションがドメイン制御レジスタ131のドメイン番号134を変更する際に、現在のプログラムカウンタが参照しているEEPROM140上のアドレスに対応する制御情報151を読み出し、その中のドメイン番号153を参照する。ドメインおよびドメイン番号153の番号体系は、後述するように階層化されており、参照したドメイン番号153の値は、設定を変更しようとしているアプリケーションが格納されているドメインのドメイン番号であることから、ドメイン制御レジスタ131のドメイン番号134に設定された値と比較することでその関係を調べることができる。
例えばドメイン番号153が12bitの値を持ち、4bit毎に上位階層から順に1番目の階層のドメイン、2番目の階層のドメイン、3番目の階層のドメインを表す値として割り当てられている場合、ドメイン番号153が110hであれば、ドメイン番号134として設定可能な値は110hと、111h〜11Fhまでとなり、これ以外の値が設定された場合はエラーとなる。なお、ドメインの関係を判断する方式としてはこれに限定される必要はなく、アドレス制御回路130がドメインの関係を格納するテーブルを持ち、このテーブルの対応関係を元に判断する仕組みであってもよい。
仮想アドレス空間レジスタ132は、EEPROM140上のドメインによるアドレス空間を、別のEEPROM140のように見せかけるための仮想アドレス空間を実現するためのレジスタであり、開始アドレスと終端アドレスが格納される。
Java(登録商標)のような仮想アドレス上でプログラムを実行するOSにより組込みシステムが制御されている場合、JavaVMによるEEPROM140上のアドレスの動的な変換は、大きなオーバーヘッドになる。従って、EEPROM140上に形成されたアプリケーション毎に独立なドメインを別のEEPROM140のように見せかけ、個別のアドレス空間を持たせることができれば、物理アドレスが複雑に分散していても、そのことをOSが考慮する必要がなくなり、性能向上が見込めるという利点がある。特にEEPROM140の電源遮断対策やエラーブロックの代替処理を考慮する場合、論理アドレスと物理アドレスを一致させて管理することが難しくなるため、その効果はより大きくなる。
仮想アドレス空間レジスタ132は、制御情報151に格納されている後述するドメイン内アドレス155を読み出し、物理アドレスと仮想アドレスとのアドレス変換をハードウェア的に行う際に用いる仕組みである。仮想アドレス空間を使用しないためアドレス変換を行わない場合や、RAM123上にテーブルを持ち、CPU122がアドレス変換を行うような場合は有しなくてもよい。
ドメイン設定レジスタ133は、EEPROM140にデータを書き込む際に制御情報151として設定される値を保持する。通常、ドメイン設定レジスタ133は、EEPROM140の読み出しを行った際に、読み出したデータブロック141の制御情報151の内容によって自動的に更新されるため、あるデータブロック141に対して同じ制御情報151を書き込む場合は、一度読み出しを行った後に書き込みを行えばよい。
新しいドメインの生成などを行う際は、ドメイン設定レジスタ133に適切な情報を設定する必要があるが、その際には自分自身のドメインか、自分の子ドメインの情報のみ指定することができる。なお、後述する仮想アドレスによる運用を行っている場合には、自分自身のドメインについての制御情報151の変更を制限してもよい。これは仮想アドレスによるアドレス空間の制御を行っている場合には、親ドメインから割り当てられた仮想アドレスを子ドメインが変更すると障害の原因になるためである。
また、制御情報151として、自分自身のドメインの仮想アドレスと、自分の子ドメインのための仮想アドレスのように2つ以上の仮想アドレスを有するような構成をとることも可能であり、この場合は子ドメイン用の仮想アドレスを変更できるようにしてもよい。そうでない場合は、親ドメインから仮想アドレス空間で制御された子ドメインは、個別の仮想アドレス空間を持つ子ドメインを生成できない。アドレス制御回路130はこれらの情報を用いてEEPROM140へのアクセスが適切であるかどうかを判断する。
制御情報151は、ドメイン番号153、制御条件フラグ154、ドメイン内アドレス155から構成される。ここで、ドメイン番号153は、EEPROM140上の対象となるアドレスに割り当てられたデータ領域152が属するドメイン番号が格納される。また、制御条件フラグ154は、対象となるアドレスに対して指定されたドメインの制御条件を記載したフラグであり、ドメイン種別フラグ156、仮想アドレス運用フラグ157、裏アドレスフラグ158を有する。
ドメイン種別フラグ156は、ドメインへのアクセスの種類が格納され、例えば、読み出し可、読み出し・書き換え可、アクセス禁止の3つの状態が設定される。これらは、主に子ドメインからのアクセスに対するアクセスの可否を表すものであるが、フラグに割り当てるビット数を増やし、下位の全ドメインからのアクセスを許可したり、直下の子ドメインからのアクセスのみ許可したり、同じ親ドメインに属するドメインからのアクセスを許可したりなど、条件に応じて種々のアクセスの可否を設定することもできる。
ドメイン種別フラグ156に読み出し可が設定された領域は、設定された条件に基づき、アクセスが可能となる。これは親ドメインに存在する共有ライブラリにアクセスする際などに利用することができる。同様に、読み出し・書き換え可が設定された領域は、読み出しおよび書き換えが可能になる。これは各アプリケーション間でデータを共有したい場合などに用いることができる。アクセス禁止が設定された領域は、上述のような親ドメインではないドメインからのアクセスが禁止される。
仮想アドレス運用フラグ157は、ドメイン内でアプリケーション用にアドレス空間を割り当てるためのもので、このフラグが設定されている場合、対象のデータブロック141は、アプリケーションが各論理アドレスに対してアクセスする際に、ドメイン内アドレス155に記載されたアドレスであるかのように振る舞う。裏アドレスフラグ158は、前述の仮想アドレスによる運用が行われている場合で、データ領域152の多重化のために物理アドレスを重複して管理する場合において、どのアドレスに最新のデータが格納されているかを指し示すフラグである。
ドメイン内アドレス155は、仮想アドレス運用フラグ157を有効に設定することにより、仮想アドレスと物理アドレスとの間のアドレス変換が行われる場合に、対象の物理アドレスが論理的に指し示す仮想アドレスを格納するものである。仮想アドレスによる運用を必要としない場合は、制御条件フラグ154の中の仮想アドレス運用フラグ157、裏アドレスフラグ158、並びにドメイン内アドレス155のための領域は割り当てられなくてもよい。
以上に述べた構成により、アドレス制御回路130は、アドレス制御回路130内の上記各レジスタの情報と、各データ領域152に割り当てられた制御情報151とを用いることで、電源遮断や不正なコードが実行された場合でも、ドメイン毎に相互干渉することなくEEPROM140の制御を行うことを可能にし、かつ、OSからは柔軟に各ドメインの設定の変更を可能にする。
なお、制御情報151の格納位置は、データ領域152の先頭ではなく、末尾、他のデータブロック、別のメモリ上などに格納されていても構わない。また、制御情報151中のデータの並び順や、個々のデータサイズについても、図1に示した順序等に限られるものではない。
最近の組込みシステムでは、様々なソフトウェアモジュールが組み込まれ、それらを組込みシステム向けCPUのためのリアルタイムOSが制御するような構成をとるものが多い。携帯電話、車、HDDレコーダなどの装置がこれに該当する。また複数のアプリケーションが搭載されたICカードやSIMカード等も同様である。これらの各ソフトウェアモジュールは、別の工程で作成された後にシステムに組み込まれて動作するが、あるソフトウェアモジュールのバグや、ソフトウェアモジュールとOSとの間の設定の問題により、他のソフトウェアモジュールやOSに影響がおよび、システムが停止したり重要な情報が漏洩するなどの問題が起こり得る。
しかしながらソフトウェアモジュールやOSが独立に動作しながらも連携することを考慮すると、単純なアクセス制限だけのファイアーウォールでは十分ではない。特に、将来的にEEPROM140が非常に高速かつ長寿命化した場合、ROM124やRAM123の代りにEEPROM140だけでシステムが設計されることが考えられる。その場合に、EEPROM140のドメイン管理が求められることになる。
以下に、アドレス制御回路130が、アドレス制御回路130内の各レジスタの情報と制御情報151とを用いて、EEPROM140のドメイン管理を行う際の概要について説明する。
EEPROM140はドメインにより階層構造で管理され、対象のデータブロック141がどのドメインに属しているかの情報はドメイン番号153に格納される。OSの動作まで含めた組込みシステムでのEEPROM140の利用を想定する場合、通常、一つのアプリケーションが利用できるEEPROM140のアドレス空間は、OSによって割り当てられる。
OSは、ROM124またはEEPROM140に予め格納されており、通常は、ICカード100の発行後に、OSに対して動的にドメインが割り当てられることがないことから、OSに対して割り当てられるドメイン番号には0が割り当てられる。このように、ドメイン番号が0であるドメインはルートドメインとして動作し、唯一自分自身以外のドメインからは設定の変更ができないドメインになる。
図2は、本実施の形態におけるドメインの階層構造およびEEPROM140の領域との関係の例を表した図である。図2におけるドメイン#0(200)は、ルートドメインであり、通常はOSが管理するドメインとなる。このドメイン番号の情報は、対象となるEEPROM140内のアドレス空間#0(250)のドメイン番号153に格納される。図2の例では、EEPROM140全体がルートドメインに属している場合を表しているが、このアドレス空間は必ずしも一塊である必要はなく、EEPROM140内に偏在していても構わない。
このような構成のICカード100に対して新しいアプリケーションの追加を行うとき、OSは当該アプリケーションのために新規ドメインの作成を行う。ドメイン#0(200)を親として生成される新ドメインには、自ドメイン番号として使われていないドメイン番号が割り当てられる。ドメイン#1(210)、ドメイン#2(220)、ドメイン#3(230)はこのようにして作成されたドメインである。
ここで、アドレス空間#2(270)に割り当てられたドメイン#2(220)を例にとれば、このアドレス空間#2(270)に格納されたアプリケーションは、アドレス空間#2(270)内で実行されるが、他のアドレス空間へのアクセスは、当該アドレス空間に割り当てられたドメインのドメイン種別フラグ156により許可されていない限り行うことはできない。またドメイン#2(220)は、自分のドメインに子ドメインを作成することが可能である。ドメイン#2(220)のアドレス空間が、子ドメインを作るには十分な大きさの領域でない場合は、親ドメインであるドメイン#0(210)が、ドメイン#2(220)に追加の領域を割り当てることができる。
ドメイン#21(221)およびドメイン#22(222)は、ドメイン#2(220)を親とする、当該操作により生成されたドメインである。アドレス空間#21(271)およびアドレス空間#22(272)は、アドレス空間#2(270)と領域を共有しているが、これは、親ドメインからは子ドメインの領域を子ドメインの割り当て前と同じように操作できるが、子ドメイン#21(221)または子ドメイン#22(222)からは、親ドメイン#2(220)のドメイン種別フラグ156で許可されていない限り、自分自身のドメインのアドレス空間の範囲しか操作できないことを意味している。
上述したようなドメイン管理は、プログラムやデータを格納するために用いるEEPROM140や、フラッシュメモリのような書き換え可能な不揮発性のデバイスにおいて効果が大きいが、ROM124やRAM123の制御のために用いることも可能である。ROM124に上記のような仕組みを取り入れることの利点は、ROM124上にアプリケーション毎に個別のミドルウェアを搭載する場合、ROM124上のプログラムであっても、互いに影響を及ぼす可能性のある範囲を制限することができる点である。この点は、大規模化する組込みシステムの品質管理において意義があり、例えば認定が必要となるようなモジュールを組み込む場合において、その影響範囲を効果的に限定することができる。
RAM123に上記のような仕組みを取り入れることの利点は、アプリケーションのバグによるICカード100の障害をハードウェア的に防止できる点にある。例えば、ルートドメインから読み出し・書き込み可で作成されたスタックのためのドメインは、当該ドメイン管理により予め設定された領域を超えて操作することができなくできるため、スタックオーバーフローによる障害や不正な動作を回避できるという効果がある。
以下では、アドレス制御回路130と、アドレス制御回路130のための制御情報151を持つEEPROM140に関する動作の詳細な内容として、ルートドメインの設定、ドメインの追加、ドメインへのアクセス、ドメインの削除の各処理について、図3〜図6を用いて説明する。
まず、ルートドメインの設定処理の流れについて図3を用いて説明する。EEPROM140の初期状態においては、制御情報151の値は、EEPROM140の各データの初期値と同じく、全て00hまたはFFhとなっている。値が00hであるかFFhであるかは、EEPROM140の構造によって決定されるが、ルートドメインを表すドメイン番号の値は、障害時などの場合でも確実にルートドメインが認識されるようにすることを考慮した場合、EEPROM140の各データの初期値または消去後の値となっていることが望ましい。
EEPROM140にルートドメインを設定するソフトウェアは、まず、ルートドメインの設定処理が開始されると(ステップ301)、ドメイン制御レジスタ131にルートドメインの設定を行う(ステップ302)。ドメイン制御レジスタ131にルートドメインが設定されると、EEPROM140の全領域がアクセス可能となる。ただし、ドメイン制御レジスタ131の設定が行えるのは、ルートドメインにあるプログラムか、ROM124上にあるプログラムだけであり、ユーザプログラムが自分で変更できないことが望ましい。ROM124にあるプログラムに対しても制限を設けたい場合は、先に述べたROM124に対するドメイン管理を別途行えばよい。
次に、ルートドメインに設定したいアドレスからデータを読み込む(ステップ303)。この時、同時に対象アドレスの制御情報151の内容がドメイン設定レジスタ133に読み込まれる。次に、アドレス制御回路130は、現在のプログラムカウンタがROM124かルートドメインに属する領域を参照しているかどうかを確認する(ステップ304)。もしそうでなければ、エラー処理を実行する(ステップ309)。当該エラー処理の内容をソフトウェアで行う場合は、別途エラー状態設定のためのレジスタを用意し、NMI(Non−Maskable Interrupt)を発生させて処理してもよい。
プログラムカウンタが参照するアドレスが上記領域内にある場合、ルートドメインとして登録するドメイン番号153、および制御条件フラグ154とドメイン内アドレス155の値をドメイン設定レジスタ133に書き込み(ステップ305)、更新後のデータの書き込みを行う(ステップ306)。図3では、ステップ305においてドメイン番号153として0を指定しているが、これは一例としての設定であり、実際の設定はルートドメインの設定方法に依存する。このとき、併せて制御情報151も書き込まれ、当該アドレスが参照するデータブロック141のルートドメインとしての設定が完了する。なお、OSが一つだけのシステムでは、ルートドメインとなりうるアドレスを00hやFFh等の固定の値に制限した方が、安全性は向上する。
次に、他にルートドメインに設定したいアドレスがあるかどうかを確認する(ステップ307)。ある場合は、ステップ303からステップ306までの処理を繰り返し行う。他に設定するアドレスがない場合は処理を終了する(ステップ308)。なお、図3の処理の流れでは、簡単のために仮想アドレス運用フラグ157および裏アドレスフラグ158を無効に設定し、ドメイン内アドレス155は未設定の状態としている。仮想アドレス運用フラグ157および裏アドレスフラグ158を設定した場合の動作については、ドメインの追加処理において説明する。
上記のようなルートドメインの設定処理をEEPROM140の初期化処理の一部として行う場合、ステップ302からステップ307の一連の処理をハードウェアにより自動的に行ってもよい。この場合、対象のアドレスは読み出し単位毎にインクリメントまたはデクリメントされ、対象となる全ての領域へのルートドメインの設定が終わったことを、専用のレジスタへの設定又は割込みによりCPUに通知する構成とすることも可能である。
なお、ルートドメインの設定処理は、アドレス制御回路130だけではなく、ルートドメイン上で動作するOSとライブラリによる処理の連携により実現される。ここでアドレス制御回路130により実行されるべき処理はステップ304であり、その他の処理はOS等により実行する構成とすることも可能である。
次に、ドメインの追加処理の流れについて図4を用いて説明する。まず、アドレス制御回路130は、ドメインの追加処理が開始されると(ステップ401)、ドメイン制御レジスタ131に、親となるドメインを設定する(ステップ402)。ドメインの追加の際には、通常は、自分自身のドメインの下に子ドメインを作るので、ここでは自分自身のドメインを設定することになるが、当該処理がOSによりライブラリ化されている場合には、OSのあるルートドメインを設定することになる。
通常の実装では、当該処理はOSの機能として用意され、要求元のプログラムから呼び出されて実行することになる。このとき、システムの安全のために、当該処理を行うソフトウェアまたはハードウェアは、まず最初に呼び出し元のプログラムがルートドメインまたはその子ドメイン群に属するかどうかを判断する。要求元のプログラムが子ドメイン群に属する場合には、ドメイン制御レジスタ131の変更が許可されることになる。ここで、子ドメイン群とは、そのドメインの直接の全ての子ドメインと、当該各子ドメイン以下の全ての子ドメインの総称である。
子ドメイン群に属するかどうかの確認方法としては、現在のドメイン制御レジスタ131の内容を元に判断する方法や、呼び出し元のプログラムの完全性を確認する方法等がある。ここでのプログラムの完全性の確認は、対象となる子ドメインのプログラムのハッシュ値などをルートドメイン内で管理しておき、実行時に呼び出し元のプログラムから計算したハッシュ値とルートドメイン内で管理しているハッシュ値とを比較する方法等が考えられる。
これらの処理は、EEPROM140上に不正に格納されたプログラムに、ルートドメインに属するドメイン切り替えのためのソフトウェアまたはハードウェアを利用して不正にドメインの追加を行わせないために行う。組込みシステムの大規模化の中で、OSが逐次全てのストレージ領域の完全性を確認することは困難である。よって、当該ドメイン追加の仕組みと、ルートドメインによるドメイン内のプログラムおよびデータの完全性の確認を行う仕組みとを用いることで、検査するストレージ領域のサイズを小さくできるという効果がある。
次に、新規にドメインとして追加したいアドレスの範囲が、要求元のドメインに属しているかどうかを判断する(ステップ403)。なお、ここではドメインのサイズだけを指定し、実際のアドレス空間の範囲をOSが決定してもよい。この場合、OSはEEPROM140の消去状態を確認して、指定されたサイズのドメインの追加が可能かどうかを判断する。この場合、次のステップ404は省略してもよい。
次に、新規にドメインとして追加したいアドレスの範囲が、要求元のドメイン内で確保可能かを判断する(ステップ404)。ドメイン間の独立性の観点から、要求元のドメインに属する領域を除く他のドメインに属するアドレスの範囲から、新規のドメインのためのアドレスの範囲が割り当てられないことが望ましい。なお、アドレスの範囲が指定されている場合は、当該アドレスの範囲が空き領域であると見なして確保してもよいし、そのデータブロック141が消去状態でない場合にはエラーとしてもよい。空き領域のサイズなどの問題で領域を確保することができない場合はエラー処理(ステップ411)を行う。
ルートドメインと要求元のプログラムのドメイン内とに新規のドメインの追加のための十分な空き領域が確保できる場合は、そのアドレスを読み込む(ステップ405)。ここでプログラムカウンタがROM124かルートドメインに属す領域を参照しているかどうかを判断し(ステップ406)、そうでない場合はエラー処理を行う(ステップ411)。なお、要求元のプログラムによるドメイン追加処理の実行を許可する場合は、プログラムカウンタの参照先に要求元のプログラムのドメインを加えてもよい。
プログラムカウンタが上記領域を参照している場合は、ドメイン設定レジスタ133に、新規に追加するドメイン番号153、制御条件フラグ154、ドメイン内アドレス155の値を書き込み(ステップ407)、データの書き込みを行う(ステップ408)。このとき併せて制御情報151も書き込まれ、そのアドレスが参照するブロックのドメイン追加が完了する。
なお、図4では、ステップ407においてドメイン番号1が指定されているが、これは一例である。また、ドメイン番号を階層化しておき、その中で用いるべき番号が決定される仕組みであってもよい。例えば、ルートドメイン(ドメイン番号0)の子ドメインとなるのは、ドメイン番号1、11、21…のみとし、ドメイン番号2〜10、12〜20、22〜30、…は、その子ドメインの下にさらに子ドメインを作る場合に使用するというような仕組みにしてもよい。この場合、ドメインの階層を番号から判断できることから、ドメイン番号制御のためのテーブルを簡略化できるという効果があり、その整合性をハードウェアで制御することができるという効果がある。
以上の処理の後、他にドメインに設定したいアドレスがあるかどうかを確認する(ステップ409)。ある場合には、ステップ405からステップ408までの処理を繰り返し行う。他に設定するアドレスがない場合は処理を終了する(ステップ410)。終了時に行う処理として、サイズによって割り当てを行った場合は、要求元のプログラムにどのアドレスをドメインとして追加したかを報告するようにしてもよい。また、このようなEEPROM140へのドメインの追加処理を、ルートドメインが一括して管理するようにしてもよい。
なお、ドメインの追加処理は、アドレス制御回路130だけではなく、ルートドメイン上で動作するOSとライブラリによる処理の連携により実現される。ここでアドレス制御回路130により実行されるべき処理はステップ406であり、その他の処理はOS等により実行する構成とすることも可能である。
また、ステップ403とステップ404とに関しては、ドメインの構造が簡単な場合には、ハードウェアにより実現することも可能である。この場合、ステップ401を行う際に、ドメイン制御レジスタ131に、要求元のプログラムが属するドメインのドメイン番号を設定しておくことで実現できる。この際、例えば、ドメイン番号の体系を、前述のように最上位の数字が第1世代のドメイン番号、次の桁の数字が第2世代のドメイン番号というように階層管理しておけば、対象となるアドレスが要求元のプログラムが属するドメインの子ドメイン群に属するかどうかを、ドメイン番号の情報からOSが判断することができ、OSによるドメインの管理負荷が低減され、システムの安全性が向上するという効果がある。このような仕組みは後述するドメインの削除処理の際にも有効である。
次に、ドメイン追加処理において、仮想アドレス運用フラグ157を用いて仮想アドレスを割り当てる場合と、裏アドレスフラグ158を用いてデータの多重化を行う場合の処理について説明する。
仮想アドレスによるアドレス制御を行う場合は、仮想アドレス運用フラグ157の値を有効に設定する。この場合、OSはドメインの追加要求時に指定されたサイズを元に、割り当てるべき仮想アドレスをドメイン内アドレス155に設定する。このときの仮想アドレスは、OSにより制御しやすいようにEEPROM140の先頭アドレスから割り当ててもよい。
例えば、OSが、個々のプログラムがあたかもEEPROM140の全ての領域にアクセス可能であるかのように振る舞わせたい場合は、仮想アドレス空間の先頭アドレスは、EEPROM140の先頭物理アドレスと同じ値とすればよい。また、OSがプログラム毎に仮想アドレス空間を用意し、その中のあるアドレス空間がシステム上EEPROM140用として規定されているような場合は、その仮想アドレス空間のアドレスをそのままEEPROM140の仮想アドレスとして用いることができる。
また、フラッシュメモリの制御においては、同じ物理アドレスブロックへのアクセスが連続した場合に、そのアドレスブロックの消去回数が増大し、不良が発生しやすくなる場合がある。そこで、一定回数の書き換えが発生した場合に、対象の物理アドレスを入れ替えることで書き換え回数の分散を行うことができる。このような場合に、仮想アドレスによる運用を用いてもよい。この場合の仮想アドレスに対する物理アドレスは、シーケンシャルに割り当ててもよいし、ドメインのサイズに基づいて一様分布するアルゴリズム等を用いてもよい。
また、アドレス制御回路130とOSは、ドメインのサイズを要求されたサイズよりも大きい値にしておき、かつ初期状態では仮想アドレスを割り振らない領域を用意しておくことで、データ書き換えの際に当該領域へデータを書き込み、書き込み完了後に以前のデータを消すようにすることで、書き換え時に電源遮断が起きた場合に以前のデータや書き換え対象データが消失するというような障害に対する対策を行う仕組みであってもよい。
EEPROM140のサイズが大きくなるにつれて、EEPROM140のアドレス空間を管理することは困難になる。しかし、ドメイン管理により、書き換えが頻繁に起こる領域と、ほぼ読み出ししか発生しない領域とを別のドメインとして管理し、そのドメイン内でのみ有効となる仮想アドレスを割り当てることで、そのアドレス空間の管理負荷を大きく低減できるという効果がある。これは上記で例示した方法だけに限らず、仮想アドレスを用いる仕組み全般に対して有効である。
裏アドレスを用いてデータブロック141を多重化する場合は、裏アドレスフラグ158に有効な値を設定する。この場合、複数の物理アドレスに対して同一の仮想アドレスをドメイン内アドレス155に割り当て、同一の仮想アドレスを割り当てたデータブロック141に対しては、裏アドレスフラグ158により、書き換えを行う順番を設定する。
例えば、対象の仮想アドレスを2重化する場合、裏アドレスフラグ158は最低2bitの情報が必要である。この場合、同一の仮想アドレスに対応する複数のデータブロック141について、それぞれの裏アドレスフラグ158の値により01B(1)→10B(2)→11B(3)→01B(1)→…という順で、どちらのデータブロック141が最新のデータであるかを表すことになる。
この場合、初期状態で裏アドレスフラグ158に01Bと設定したデータブロック141と、10Bと設定したデータブロック141の2つを用意しておく。ここで、裏アドレスフラグ158が01Bと10Bの状態で書き換えが発生した場合は、古い方である01Bのデータブロック141へ書き換えを行い、書き換え後は対象のデータブロック141の裏アドレスフラグ158の値を11Bに更新する。また、裏アドレスフラグ158が01Bと10Bの状態で読み出しが発生した場合は、新しい方である10Bのデータブロック141を読み出す。
また、裏アドレスフラグ158が10Bと11Bの状態で書き換えが発生した場合は、古い方である10Bのデータブロック141へ書き換えを行い、書き換え後は対象のデータブロック141の裏アドレスフラグ158の値を01Bにラップさせて更新する。また、裏アドレスフラグ158が10Bと11Bの状態で読み出しが発生した場合は、新しい方である11Bのデータブロック141を読み出す。また、裏アドレスフラグ158が01Bと11Bの状態で書き換えが発生した場合は、古い方である11Bのデータブロック141へ書き換えを行い、書き換え後は対象のデータブロック141の裏アドレスフラグ158の値を10Bに更新する。また、裏アドレスフラグ158が01Bと11Bの状態で読み出しが発生した場合は、新しい方である01Bのデータブロック141を読み出す。
ここで、裏アドレスフラグ158の値が00B(0)の場合は、裏アドレスフラグ158が未設定であることを意味する。なお、これは初期状態または消去された状態のEEPROM140のデータの値が00Bである場合の例である。逆に、EEPROM140の消去状態の値が11Bである場合は、上記の説明において、裏アドレスフラグ158の値により、00B(0)→01B(1)→10B(2)→00B(0)→…という順で、どちらが最新のデータであるかを表すことになり、裏アドレスフラグ158が未設定である状態は11B(3)となる。
裏アドレスフラグ158が未設定である状態を上記のように判断するのは、データが消去された状態で電源遮断が発生した場合に、裏アドレスフラグ158の状態が有効であるのか無効であるのかを判別するためである。データ消去中の電源遮断等により、裏アドレスフラグ158の状態がクリアされてしまった場合、再起動後のチェックで、裏アドレスフラグ158が登録されているドメインであるにもかかわらず値が未設定状態であることによりエラーを検出することができる。また、ドメイン内のデータブロック141のドメイン内アドレス155を調べ、ドメイン内アドレスが重複していないデータブロック141を発見することで、裏アドレスフラグ158が未設定となっているデータブロック141が元々どの仮想アドレスに割り当てられていたかも把握することができ、当該データブロック141を再登録することも可能となる。
次に、ドメインへのアクセスの処理の流れについて図5を用いて説明する。ドメインへのアクセスとしては、読み出し、書き込み、削除などが考えられ、ドメインへのアクセスの管理としては、あるプログラムが別のドメイン上のプログラムおよびデータを自由に変更できないようにする仕組みと、データの共有や受け渡しのために制限付きで変更できるようにする仕組みとが必要になる。
アドレス制御回路130は、ドメインへのアクセスが発生すると(ステップ501)、まずアクセスしたいアドレスのデータブロック141を読み込み(ステップ502)、ドメイン種別フラグ156が設定されている場合は、アクセス要件(読み出し、書き込み等)を満たしているかどうかを判断する(ステップ503)。
アドレス制御回路130は、自分自身のドメイン以外のドメインへのアクセスが発生すると、アクセス先が親ドメインおよび同じ親ドメインを有するドメインである場合は、ドメイン種別フラグ156の設定に従い動作する。それ以外の場合は、ドメイン番号を、最上位の数字が第1世代のドメイン番号、次の桁の数字が第2世代のドメイン番号となるような体系により管理することで、アクセス先が同じルートドメインに属するか否かを判断することができる。なお、実際の運用では、データの書き換えは親ドメインからに限定することが望ましい。仮に同じ親ドメインを有する子ドメイン間でデータの共有やデータの受け渡しを行いたい場合は、親ドメインを経由して行うことが望ましい。
ドメインへのアクセスに際して、仮想アドレス運用フラグ157が有効に設定されているドメインへのアクセスの場合には、ドメイン内を検索し、対象のアドレスと一致するドメイン内アドレス155を持つデータブロック141を読み出す。また、裏アドレスフラグ158が有効に設定されているドメインへのアクセスの場合には、同じドメイン内アドレス155を持つデータブロック141を読み出し、前述した手順に従って最新のデータブロック141を判別し、当該データブロック141を読み出す。
アクセスの種類については、ドメイン制御レジスタ131内のアクセス種別135に設定され、アクセス種別135が読み出しである場合は、ドメイン種別フラグ156に”読み出し可”が設定されている必要があり、また、書き込みおよび消去である場合は、”読み出し・書き換え可”が設定されている必要がある。なお、アクセス元のドメインが、親ドメインまたはルートドメイン等の直系の上位ドメインである場合はこの限りではない。
この条件を満たしていない場合はエラー処理を行う(ステップ509)。条件を満たしている場合は、処理の種別により(ステップ504)、読み出しの場合は、要求元に読み出したデータを転送し(ステップ505)、処理を終了する(ステップ508)。また、書き換えの場合は、書き換えたいデータと読み出したデータの内容とをマージして書き込みを行い(ステップ506)、処理を終了する(ステップ508)。消去の場合は、データの消去処理を実行し(ステップ507)、処理を終了する(ステップ508)。
なお、ドメインへのアクセスの処理は、アドレス制御回路130だけではなく、ルートドメイン上で動作するOSとライブラリによる処理の連携により実現される。ここでアドレス制御回路130により実行されるべき処理はステップ503であり、その他の処理はOS等により実行する構成とすることも可能である。
次に、ドメインの削除処理の流れについて図6を用いて説明する。ドメインの追加によりEEPROM140に空き領域がなくなった場合や、ドメインが不要になった際に、ドメインを削除する処理が必要になる。ドメインを削除する場合(ステップ601)、まずOSは、ドメイン制御レジスタ131にルートドメインを設定する(ステップ602)。次に、削除の対象となるアドレスが、要求元のドメインの子ドメインに属するかどうかを判断する(ステップ603)。ドメインを削除する場合、ドメイン間の独立性を保つため、自分自身と、自分自身より上位のドメインを削除することができないようにするのが望ましい。要求元のドメインの子ドメインに属しない場合は、エラー処理を行う(ステップ610)。
要求元の子ドメインに属する場合は、現在のプログラムカウンタがROM124かルートドメインに属する領域を参照しているかどうかを確認する(ステップ604)。そうでない場合はエラー処理を行う(ステップ610)。なお、要求元のドメイン内の削除プログラムの実行を許可する場合は、プログラムカウンタの参照先に要求元のドメインを加えてもよい。現在のプログラムカウンタがROM124かルートドメインに属する領域を参照している場合は、対象のアドレスのデータを削除する(ステップ605)。
その後、ドメイン番号153として要求元のドメイン番号を指定し、さらに要求元のドメインの基準に従った制御条件フラグ154の内容を指定した情報をドメイン設定レジスタ133に書き込み(ステップ606)、内容を消去したデータを書き込む(ステップ607)。削除したドメインの領域は、通常親ドメインに戻ることになる。ここで、図6のステップ606に記載している設定内容は一例であり、これら設定は、削除したアドレスが属することになるドメインの設定に依存する。
ステップ607の処理後、他にも削除したいアドレスが存在するどうかを判断し(ステップ608)、存在する場合には、ステップ603〜ステップ607の処理を繰り返す。他に削除したいアドレスが存在しない場合には処理を終了する(ステップ609)。ドメインを削除する場合に削除対象となるのは、指定されたドメインだけではなく、指定されたドメインに属する子ドメインも含まれる。
なお、ドメインの削除処理は、アドレス制御回路130だけではなく、ルートドメイン上で動作するOSとライブラリによる処理の連携により実現される。ここでアドレス制御回路130により実行されるべき処理はステップ604であり、その他の処理はOS等により実行する構成とすることも可能である。
また、前述したように、ステップ603に関しては、ドメインの構造が簡単な場合には、ハードウェアにより実現することも可能である。この場合、ステップ601を行う際に、ドメイン制御レジスタ131に、要求元のプログラムが属するドメインのドメイン番号を設定しておくことで実現できる。この際、例えば、ドメイン番号の体系を、最上位の数字が第1世代のドメイン番号、次の桁の数字が第2世代のドメイン番号というように階層管理しておけば、対象となるアドレスが要求元のプログラムが属するドメインの子ドメイン群に属するかどうかを、ドメイン番号の情報からOSが判断することができ、OSによるドメインの管理負荷が低減され、システムの安全性が向上するという効果がある。
以上のように、組込みシステム向けCPUやICカードチップなどにおいて、フラッシュメモリなどの記憶媒体をアプリケーションの実行に使用する場合、記憶媒体の領域にドメインを定義して管理することにより、ドメイン上で稼動する各アプリケーションは、ドメインの設定によって許可されている範囲でしか記憶媒体の領域にアクセスできないようにすることが可能となる。さらに、ドメインを階層管理し、ドメインの設定は自分自身では変更できず、ルートドメインもしくは親ドメインによってしか変更できないため、ドメイン内のアプリケーションの不正動作により、他の領域上のデータが破壊されたり、不正にアクセスされたりするおそれがなく稼動することができる。
また、ドメイン管理の設定は、上述のように柔軟に行うことが可能なため、アプリケーション間でのデータの受け渡しや、ライブラリの共用など、アプリケーション間での領域の共用についての管理も行うことができる。さらに、上記のドメイン管理にさらに仮想アドレスによる運用や、データの二重化を行うことにより、データ書き換え時の電源遮断などの障害に対するデータの整合性の維持も可能となり、可用性の確保が図られる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、消去および書き換え可能な記憶領域を持つ記憶媒体、特にフラッシュメモリなどの不揮発性記憶媒体の領域管理を行う制御回路、および前記制御回路を有する汎用または組込みシステム向け処理装置、および前記処理装置を有する組込みシステム、ならびに前記記憶媒体の領域管理方法に利用可能である。
本発明の一実施の形態である処理装置、および当該処理装置に接続された記憶媒体の構成を表す図である。 本発明の一実施の形態におけるドメインの階層構造およびEEPROMの領域との関係の例を表した図である。 本発明の一実施の形態におけるルートドメインの設定処理の流れを表した図である。 本発明の一実施の形態におけるドメインの追加処理の流れを表した図である。 本発明の一実施の形態におけるドメインへのアクセスの際の処理の流れを表した図である。 本発明の一実施の形態におけるドメインの削除処理の流れを表した図である。
符号の説明
100…ICカード、110…入出力IF、111…VCC線、112…RST(リセット信号線)、113…CLK(クロック信号線)、114…GND線、115…I/O(入出力線)、120…処理装置、121…UART制御回路、122…CPU、123…RAM、124…ROM、125…コプロセッサ、126…内部バス、130…アドレス制御回路、131…ドメイン制御レジスタ、132…仮想アドレス空間レジスタ、133…ドメイン設定レジスタ、134…ドメイン番号、135…アクセス種別、140…EEPROM、141…データブロック、151…制御情報、152…データ領域、153…ドメイン番号、154…制御条件フラグ、155…ドメイン内アドレス、156…ドメイン種別フラグ、157…仮想アドレス運用フラグ、158…裏アドレスフラグ、
200…ドメイン#0、210…ドメイン#1、220…ドメイン#2、221…ドメイン#21、222…ドメイン#22、230…ドメイン#3、250…アドレス空間#0、270…アドレス空間#2、271…アドレス空間#21、272…アドレス空間#22。

Claims (20)

  1. CPUと、消去および書き換え可能な記憶媒体とを有する処理装置において、該記憶媒体の所定の領域をドメインとして設定し、前記ドメインの管理およびプログラムが前記ドメインを利用する際のアクセス要件の管理を行う制御回路であって、
    前記記憶媒体に前記ドメインの管理のための制御情報を設定するための第1のレジスタと、現在の処理対象である前記ドメインについての情報を保持する第2のレジスタとを有し、
    前記第1のレジスタの情報を用いて、前記記憶媒体上のアドレスに対して、該アドレスに割り当てられたデータ領域が属する前記ドメインについての前記制御情報を設定し、
    プログラムによる前記記憶媒体上のアドレスに割り当てられたデータ領域へのアクセスの際に、該アドレスに設定されている前記制御情報と、前記第2のレジスタの情報とに基づいて、該アクセスの可否を判断することを特徴とする制御回路。
  2. CPUと、消去および書き換え可能な記憶媒体とを有する処理装置において、該記憶媒体の所定の領域をドメインとして設定し、前記ドメインの管理およびプログラムが前記ドメインを利用する際のアクセス要件の管理を行う制御回路であって、
    前記記憶媒体に前記ドメインの管理のための制御情報を設定するための第1のレジスタと、現在の処理対象である前記ドメインについての情報を保持する第2のレジスタとを有し、
    前記第1のレジスタの情報を用いて、前記記憶媒体上のアドレスに対して、該アドレスに割り当てられたデータ領域が属する前記ドメインについての前記制御情報を設定し、
    プログラムによる前記記憶媒体上のアドレスに対する新たな前記ドメインの追加もしくは前記記憶媒体上のアドレスからの他の前記ドメインの削除の処理の際に、該アドレスに設定されている前記制御情報と、前記第2のレジスタの情報と、該プログラムの格納位置の情報とに基づいて、該処理の可否を判断することを特徴とする制御回路。
  3. 請求項1または2記載の制御回路において、
    プログラムが前記第1のレジスタおよび前記第2のレジスタの値を変更しようとする際に、該プログラムの格納位置の情報に基づいてその可否を判断することを特徴とする制御回路。
  4. 請求項1または3記載の制御回路において、
    前記ドメインを階層化して管理し、プログラムによる前記記憶媒体上のアドレスに割り当てられたデータ領域へのアクセスの際に、該プログラムが利用する前記ドメインと、該データ領域が属する前記ドメインとの親子関係に基づいて、該アクセスの可否を判断することを特徴とする制御回路。
  5. 請求項2または3記載の制御回路において、
    前記ドメインを階層化して管理し、プログラムによる前記記憶媒体上のアドレスに対する新たな前記ドメインの追加もしくは前記記憶媒体上のアドレスからの他の前記ドメインの削除の処理の際に、該プログラムが利用する前記ドメインと、該アドレスに割り当てられたデータ領域が属する前記ドメインとの親子関係に基づいて、該処理の可否を判断することを特徴とする制御回路。
  6. 請求項4記載の制御回路において、
    プログラムによる前記記憶媒体上のアドレスに割り当てられたデータ領域へのアクセスの際に、該プログラムが利用する前記ドメインの下位の前記ドメインに属するデータ領域へのアクセスは許可し、それ以外の前記ドメインに属するデータ領域へのアクセスについては、該データ領域に対応するアドレスに設定されている前記制御情報と、前記第2のレジスタの情報とに基づいて、該アクセスの可否を判断することを特徴とする制御回路。
  7. 請求項5記載の制御回路において、
    前記ドメインを階層化して管理し、プログラムによる前記記憶媒体上のアドレスに対する新たな前記ドメインの追加もしくは前記記憶媒体上のアドレスからの他の前記ドメインの削除の処理の際に、該プログラムが利用する前記ドメインの下位の新たな前記ドメインの追加もしくは下位の他の前記ドメインの削除は許可し、それ以外の新たな前記ドメインの追加もしくは他の前記ドメインの削除は許可しないことを特徴とする制御回路。
  8. 請求項4〜7のいずれか1項記載の制御回路において、
    各前記ドメインに付与する番号の体系により、各前記ドメイン間の親子関係を判別することを特徴とする制御回路。
  9. 請求項1〜8のいずれか1項記載の制御回路において、
    前記記憶媒体上のアドレスに対して仮想アドレスを割り当てることにより、プログラムからは、該仮想アドレスによって該アドレスに割り当てられたデータ領域にアクセスさせることを特徴とする制御回路。
  10. 請求項9記載の制御回路において、
    前記記憶媒体上の複数のアドレスに対して同一の仮想アドレスを割り当てることにより、該仮想アドレスによって特定されるデータ領域を多重化することを特徴とする制御回路。
  11. 請求項1〜10のいずれか1項記載の制御回路により設定された前記制御情報を格納していることを特徴とする消去および書き換え可能な記憶媒体。
  12. 請求項1〜10のいずれか1項記載の制御回路と、請求項11記載の消去および書き換え可能な記憶媒体とを有することを特徴とする処理装置。
  13. 請求項12記載の処理装置を有することを特徴とする組込みシステム。
  14. CPUと、消去および書き換え可能な記憶媒体とを有する処理装置が、該記憶媒体の所定の領域をドメインとして設定し、前記ドメインの管理およびプログラムが前記ドメインを利用する際のアクセス要件の管理を行う領域管理方法であって、
    前記処理装置は、前記記憶媒体上のアドレスに対して、該アドレスに割り当てられたデータ領域が属する前記ドメインについての制御情報を設定し、
    プログラムによる前記記憶媒体上のアドレスに割り当てられたデータ領域へのアクセスの際に、該アドレスに設定されている前記制御情報と、現在の処理対象である前記ドメインについての情報とに基づいて、該アクセスの可否を判断することを特徴とする領域管理方法。
  15. CPUと、消去および書き換え可能な記憶媒体とを有する処理装置が、該記憶媒体の所定の領域をドメインとして設定し、前記ドメインの管理およびプログラムが前記ドメインを利用する際のアクセス要件の管理を行う領域管理方法であって、
    前記処理装置は、前記記憶媒体上のアドレスに対して、該アドレスに割り当てられたデータ領域が属する前記ドメインについての制御情報を設定し、
    プログラムによる前記記憶媒体上のアドレスに対する新たな前記ドメインの追加もしくは前記記憶媒体上のアドレスからの他の前記ドメインの削除の処理の際に、該アドレスに設定されている前記制御情報と、現在の処理対象である前記ドメインについての情報と、該プログラムの格納位置の情報とに基づいて、該各処理の可否を判断することを特徴とする領域管理方法。
  16. 請求項14または15記載の領域管理方法において、
    前記処理装置は、プログラムが前記制御情報および現在の処理対象である前記ドメインについての情報を変更しようとする際に、該プログラムの格納位置の情報に基づいてその可否を判断することを特徴とする領域管理方法。
  17. 請求項14記載の領域管理方法において、
    前記処理装置は、前記ドメインを階層化して管理し、プログラムによる前記記憶媒体上のアドレスに割り当てられたデータ領域へのアクセスの際に、該プログラムが利用する前記ドメインと、該データ領域が属する前記ドメインとの親子関係に基づいて、該アクセスの可否を判断することを特徴とする領域管理方法。
  18. 請求項15記載の領域管理方法において、
    前記処理装置は、前記ドメインを階層化して管理し、プログラムによる前記記憶媒体上のアドレスに対する新たな前記ドメインの追加もしくは前記記憶媒体上のアドレスからの他の前記ドメインの削除の処理の際に、該プログラムが利用する前記ドメインと、該アドレスに割り当てられたデータ領域が属する前記ドメインとの親子関係に基づいて、該処理の可否を判断することを特徴とする領域管理方法。
  19. 請求項17記載の領域管理方法において、
    前記処理装置は、プログラムによる前記記憶媒体上のアドレスに割り当てられたデータ領域へのアクセスの際に、該プログラムが利用する前記ドメインの下位の前記ドメインに属するデータ領域へのアクセスは許可し、それ以外の前記ドメインに属するデータ領域へのアクセスについては、該データ領域に対応するアドレスに設定されている前記制御情報と、現在の処理対象である前記ドメインについての情報とに基づいて、該アクセスの可否を判断することを特徴とする領域管理方法。
  20. 請求項18記載の領域管理方法において、
    前記処理装置は、前記ドメインを階層化して管理し、プログラムによる前記記憶媒体上のアドレスに対する新たな前記ドメインの追加もしくは前記記憶媒体上のアドレスからの他の前記ドメインの削除の処理の際に、該プログラムが利用する前記ドメインの下位の新たな前記ドメインの追加もしくは下位の他の前記ドメインの削除は許可し、それ以外の新たな前記ドメインの追加もしくは他の前記ドメインの削除は許可しないことを特徴とする領域管理方法。
JP2007155932A 2007-06-13 2007-06-13 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法 Expired - Fee Related JP4892414B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007155932A JP4892414B2 (ja) 2007-06-13 2007-06-13 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
PCT/JP2008/055940 WO2008152846A1 (ja) 2007-06-13 2008-03-27 制御回路および処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007155932A JP4892414B2 (ja) 2007-06-13 2007-06-13 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法

Publications (2)

Publication Number Publication Date
JP2008310460A JP2008310460A (ja) 2008-12-25
JP4892414B2 true JP4892414B2 (ja) 2012-03-07

Family

ID=40129459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007155932A Expired - Fee Related JP4892414B2 (ja) 2007-06-13 2007-06-13 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法

Country Status (2)

Country Link
JP (1) JP4892414B2 (ja)
WO (1) WO2008152846A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5784656B2 (ja) * 2013-02-22 2015-09-24 株式会社東芝 マイクロプロセッサ
JP6232972B2 (ja) * 2013-11-25 2017-11-22 凸版印刷株式会社 可搬型電子媒体、及び入出力機能制御方法
JP7040053B2 (ja) * 2018-01-26 2022-03-23 大日本印刷株式会社 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2260004B (en) * 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
JP3607540B2 (ja) * 1999-08-18 2005-01-05 エヌイーシーシステムテクノロジー株式会社 プログラム単位メモリアクセス属性管理方式
JP2003242030A (ja) * 2001-12-14 2003-08-29 Matsushita Electric Ind Co Ltd メモリ管理装置及びメモリ管理方法
JP4591163B2 (ja) * 2005-04-07 2010-12-01 パナソニック株式会社 バスアクセス制御装置

Also Published As

Publication number Publication date
JP2008310460A (ja) 2008-12-25
WO2008152846A1 (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
US9467288B2 (en) Encryption key destruction for secure data erasure
JP6306578B2 (ja) メモリ保護装置及び保護方法
CN109634517B (zh) 进行存取管理的方法、记忆装置、电子装置和其控制器
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
CN109002706B (zh) 一种基于用户级页表的进程内数据隔离保护方法和系统
CN110908932B (zh) 数据处理装置及其数据保护方法
TW201931123A (zh) 記憶體系統及控制方法
EP2221830A1 (en) Memory device and wear leveling method thereof
US20090024820A1 (en) Memory Allocation For Crash Dump
TWI447580B (zh) 管理記憶體空間的方法、記憶體控制器與記憶體儲存裝置
US10565130B2 (en) Technologies for a memory encryption engine for multiple processor usages
KR20080075707A (ko) 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
KR100672996B1 (ko) 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치
JP2005158040A (ja) 変換索引バッファのレイジー・フラッシング
KR20040014971A (ko) 비휘발성 메모리의 제어방법
TWI489272B (zh) 保護資料的方法、記憶體控制器與記憶體儲存裝置
CN105808444A (zh) 存储装置及非易失性存储器的控制方法
CN101620652B (zh) 一种保护存储器数据的主板、计算机和方法
JP4892414B2 (ja) 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
JP5464226B2 (ja) 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
JP2014206967A (ja) 記憶装置
CN116225332A (zh) 存储管理方法、存储装置及嵌入式芯片
JP2016504695A (ja) 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム
US20200293659A1 (en) Electronic apparatus and control method of electronic apparatus
JP4972410B2 (ja) フラッシュメモリ内でのアクセスを制御するための方法、およびこのような方法の実施のためのシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090819

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100528

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: 20111122

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: 20111219

R150 Certificate of patent or registration of utility model

Ref document number: 4892414

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees