JP3995883B2 - マルチタスク・システムのためのメモリ保護システム - Google Patents
マルチタスク・システムのためのメモリ保護システム Download PDFInfo
- Publication number
- JP3995883B2 JP3995883B2 JP2000539423A JP2000539423A JP3995883B2 JP 3995883 B2 JP3995883 B2 JP 3995883B2 JP 2000539423 A JP2000539423 A JP 2000539423A JP 2000539423 A JP2000539423 A JP 2000539423A JP 3995883 B2 JP3995883 B2 JP 3995883B2
- Authority
- JP
- Japan
- Prior art keywords
- address bits
- processor
- upper address
- memory
- application
- 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
Links
- 238000001514 detection method Methods 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 29
- 238000012546 transfer Methods 0.000 claims description 16
- 230000006378 damage Effects 0.000 claims description 3
- 230000002401 inhibitory effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 240000007320 Pinus strobus Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/1425—Protection 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/1441—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
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)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、マルチタスク・システムのためのメモリ保護システムに関する。特に、本発明は、アプリケーションが別のアプリケーションのためのデータを記憶するメモリ・セグメントへ書込むことを防止するシステムに関する。また、本発明のメモリ保護システムは、1つのアプリケーションが別のアプリケーションのメモリ・セグメントへの書込みを試みる時点を検出する。
【0001】
課題
マルチタスク・システムは、コンピューティング技術において広く知られている。マルチタスク・システムにおいては、プロセッサによって多数のアプリケーションが同時に実行される。マルチタスク・システムの利点は、多数の機能を実施するのに要するリソースの量を最小化するため単一のプロセッサが同時に多数の機能を実施できることである。
【0002】
典型的なマルチタスク・システムは、プロセッサと、プロセッサに関連するメモリ、及び、アプリケーションの処理スケジュールをたてると共にメモリに対するデータの読出し及び書込みを管理するオペレーティング・システムを必要とする。当該システムは、複数のアプリケーションを走らせる。各アプリケーションは、予め定めた時間量だけプロセッサにより実行される。アプリケーションの実行の結果として得るデータは、メモリへ書込まれて将来の使用のため格納される。プロセッサは、格納されたデータを用いて、後におけるアプリケーションの実行を再開する。マルチタスク・システムは、第1のアプリケーションが第2のアプリケーションのデータに重ね書きすることを防止するメモリ保護方式を含む。さもなければ、アプリケーションの一方又は両方に対するデータが壊され、アプリケーションが動かないことになる。このようなプロセッサの一例は、インテル社による386DXプロセッサ・マニュアルに記載されるような386DXプロセッサである。
【0003】
マルチタスク・システムの一例は、パーソナル・コンピュータ上で走るウインドウズ・オペレーティング・システムである。ウインドウズ・オペレーティング・システムにおいて開かれる各ウインドウは、そのときシステムにより走らせられている別のソフトウエア・アプリケーションである。当該オペレーティング・システムは、予め定めた時間量だけ各アプリケーションを実行する中央処理装置において各アプリケーションに対する処理時間をスケジュール化する。結果として得るデータは、将来使用されるようにランダム・アクセス・メモリ(RAM)に格納される。ウインドウズ・システムにおいては、オペレーティング・システムが、1つのアプリケーションに対するデータを記憶しているRAMの1つの場所へ別のアプリケーションがデータを書込むことを防止するメモリ管理方式を備える。
【0004】
マルチタスク・システムは、マイクロプロセッサを用いて更に小さなスケールで動作させられる。より小さなマルチタスク・システムの一例は、流量計を流れる流体の異なる特性を監視して複数のアプリケーションを同時に実行するマイクロプロセッサである。このようなマルチタスク・システムのオペレーティング・システムは、一般に、マイクロプロセッサの能力に依存して、厳密なシステム動作に限定される。これらの小さなシステムにおいては、プロセッサと関連するメモリは、一般に、複数のセグメントに分割される。各メモリ・セグメントは、オペレーティング・システムにより要求されるメモリ管理を簡単にするため1つのアプリケーションに対するデータを格納する。1つのアプリケーションが別のアプリケーションのデータを格納するメモリ・セグメントへデータを書込むことを防止することが課題である。
【0005】
このような課題に対処するため、幾つかのマイクロプロセッサは、内部又は外部のメモリ保護機構を設けて、アプリケーションがその割当てられたメモリ・セグメント外のアドレスへデータを書込むことを防止する。しかし、メモリ保護機構を備えるマイクロプロセッサは非常に高価であり、かつ単一のマイクロプロセッサよりも複雑な回路を有する。コストと設計の配慮から、メモリ保護システムを持たない高価でないマイクロプロセッサを使用することが望ましい。従って、当技術分野には、メモリ保護機構を備えないマイクロプロセッサを含むマルチタスク・システムにメモリ保護を提供する、安価且つ簡単な方式に対する要求が存在する。
【0006】
解決法
上記及び他の問題は、プロセッサが制御するマルチタスク・システムに対するメモリ保護システムに関する本発明により解決され、当技術分野における進歩が達成される。本発明によれば、プロセッサにより実行されるソフトウエアと該プロセッサの外にある回路との組合わせによって、メモリ保護システムが提供される。本発明は、内部メモリ保護能力を持たないプロセッサと関連して使用されるべき、比較的簡単且つ安価なメモリ保護システムを提供する。
【0007】
マルチタスク・システムは、マイクロプロセッサと、該マイクロプロセッサと関連するメモリと、オペレーティング・システムとを備える。メモリにおける各場所は、n個の下位アドレス・ビットとm個の上位アドレス・ビットとにより規定される。該メモリは複数のメモリ・セグメントへ分割され、各セグメントはm個の上位アドレス・ビットの一義的な組合わせにより規定される。プロセッサにより実行されている各アプリケーションには、当該アプリケーションに対するデータを格納する1つのメモリ・セグメントが割当てられる。オペレーティング・システムはプロセッサによるアプリケーションの実行を管理する。
【0008】
本発明によると、メモリ保護システムは、メモリ・アドレス・レジスタと、該メモリ・レジスタからメモリへ延びる上位アドレス・バスと、プロセッサからメモリへ延びる下位アドレス・バスと、誤り検出回路とを備える。メモリ・レジスタはm個のビットを格納する。マイクロプロセッサによりアプリケーションが実行される前に、アプリケーションのメモリ・セグメントに対するm個の上位アドレス・ビットがメモリ・レジスタへ書込まれる。アプリケーションが実行されている間に、メモリ・レジスタに格納されたm個の上位ビットが上位アドレス・バスを介してメモリへ送られる。メモリ・レジスタからのm個の上位アドレス・ビットの伝送は、アプリケーションがその割当てられたメモリ・セグメントの外にあるアドレスへの書込みを防止する。
【0009】
各アプリケーションは、全ゼロのような定数に等しくセットされたm個の上位アドレス・ビットとn個の下位アドレス・ビットとを持つ、読出し/書込み操作のためのアドレスを生成するようにコンパイルされる。m個の上位アドレス・ビットは誤り検出のため用いられ、n個の下位アドレス・ビットはアプリケーションの割当てられたメモリ・セグメントにおける記憶場所を示す。
【0010】
アプリケーションにより生成されるn個の下位アドレス・ビットは、下位アドレス・バスを介してメモリへ伝送される。このn個の下位アドレス・ビットは、メモリ・レジスタからのm個のアドレス・ビットと組合わされてアプリケーションの割当てられたメモリ・セグメントにおける記憶場所を指定する。結果として生じるアドレスが読出し/書込み操作を行うために用いられる。
【0011】
メモリ・レジスタからのm個の上位アドレス・ビットは選択されたアプリケーションがその割当てられたメモリ・セグメント外での読出し/書込み操作を防止するけれども、選択されたアプリケーションは、或る条件下では、その割当てられたメモリ・セグメント外での読出し/書込み操作を試みることがある。こうした条件の1つは、アプリケーションがそのメモリ・セグメントの容量を越えてデータを格納することを必要とするスタック・オーバーフロー誤りである。データを格納するために、アプリケーションは、その割当てられたメモリ・セグメント外のアドレスへの書込みを試みて、定数に等しくないm個の上位アドレス・ビットを持つアドレスを生成する。しかし、メモリ・レジスタからのm個の上位アドレス・ビットと生成されたn個の下位アドレス・ビットとの組合わせは、有効データを含むアプリケーションの割当てられたメモリ・セグメントにおけるアドレスとなる。読出し/書込み操作が進行すると、選択されたアプリケーションに対する有効データが壊されることになる。
【0012】
アプリケーションの割当てられたメモリ・セグメントにおける有効データが壊されるのを防ぐため、誤り検出回路は、アプリケーションにより生成されるm個の上位アドレス・ビットが定数に等しいか否かを決定する。生成されたm個の上位アドレス・ビットが定数に等しくなければ、本発明は誤り信号を生成する。この誤り信号に応答して読出し/書込み操作を停止することができ、又は、誤り信号により誤り割込みを行うことができる。
【0013】
メモリ・レジスタにおける誤りは、アプリケーションの実行が完了した後にオペレーティング・システムによって検出される。メモリ・レジスタにおけるm個の上位アドレス・ビットは、オペレーティング・システムにより読出される。メモリ・レジスタからのm個の上位アドレス・ビットは、完了したアプリケーションのメモリ・セグメントを規定するm個の上位アドレス・ビットと比較される。完了したアプリケーションとメモリ・レジスタとのm個の上位アドレス・ビットが等しくなければ、オペレーティング・システムは誤り割込みを生成する。このテストは、メモリ・レジスタにおける誤動作によってはデータが壊されなかったことを保証する。
【0014】
発明の態様
本発明の1つの態様は、複数のアプリケーションを実行するプロセッサに接続されたメモリに格納されたデータの破壊を防止するメモリ保護システムであって、前記複数のアプリケーションの各々が、m個の上位アドレス・ビットの一義的な組合わせにより識別される前記メモリの複数のセグメントの1つにデータを格納し、前記プロセッサが、前記メモリの複数の前記セグメントの前記1つをアクセスするアドレスを生成し、且つ、前記プロセッサが、そのとき実行されているアプリケーションがメモリ・アクセスを要求するのに応答して前記アドレスを1つのアドレス・バスへ印加するメモリ保護システムを含み、該メモリ保護システムは、
前記プロセッサから、そのとき実行されている前記アプリケーションに対するm個の上位アドレス・ビットの前記一義的な組合わせを受取り、そのとき実行されている前記アプリケーションに対するデータを格納する前記複数のセグメントの前記1つを識別するm個の上位アドレス・ビットの前記一義的な組合わせを格納するメモリ・レジスタと、
前記複数のアプリケーションの1つが前記プロセッサにより実行されていることを示す第1の信号に応答して、前記m個の上位アドレス・ビットを前記メモリ・レジスタから前記メモリへ選択的に印加すると共に、前記プロセッサにより生成され、オペレーティング・システムが該プロセッサにより実行されていることを示す第2の信号の受取りに応答して前記アドレス・バスへ印加される前記m個の上位アドレス・ビットを選択的に印加するマルチプレクサと、
前記プロセッサにより前記アドレス・バスへ印加されるm個の上位アドレス・ビットを受取り、前記データ転送を行うため前記プロセッサにより前記アドレス・バスへ印加された前記m個の上位アドレス・ビットにおける誤りを検出し、該m個の上位アドレス・ビットにおける前記誤りの検出に応答して誤り信号を生成する検出回路と、
を備えることを特徴とする。
【0015】
前記検出回路から前記誤り信号を受取る禁止回路が、生成されている前記誤り信号に応答して前記データ転送を禁止することが好ましい。
前記検出回路からの前記誤り信号が前記プロセッサへ伝送され、該プロセッサが前記誤り信号の受取りに応答して誤り割込みを実行することが好ましい。
【0016】
前記検出回路が、前記1つのアプリケーションの実行期間に前記プロセッサにより生成されるm個の上位アドレス・ビットを、そのとき実行されている前記アプリケーションに対するデータを格納する前記メモリにおける前記複数のセグメントの前記1つを識別する前記m個の上位アドレス・ビットと比較する比較回路を備えることを特徴とすることが好ましい。
【0017】
前記比較回路が前記メモリ・レジスタから前記m個の上位アドレス・ビットを受取ることが好ましい。
前記比較回路が、実行中の前記オペレーティング・システムに応答して使用禁止されることが好ましい。
【0018】
本発明の他の態様は、プロセッサに接続されたメモリの複数のセグメントに格納されたデータの破壊を防止する方法であって、前記複数のセグメントの各々はm個の上位アドレス・ビットの一義的な組合わせにより識別され、前記複数のセグメントの各々は、前記プロセッサにより実行されている前記複数のアプリケーションの別の1つに対するデータを格納するものであり、前記プロセッサが、データ転送に対する必要に応答して前記データ転送のためのアドレスを生成し、該アドレスを1つのアドレス・バスへ印加する防止方法を含む。該防止方法は、
前記プロセッサが前記アプリケーションの実行を開始するのに応答して、前記複数のアプリケーションのそのとき実行されている1つに対するm個の上位アドレス・ビットを前記プロセッサから受取るステップと、
受取られた前記m個の上位アドレス・ビットをメモリ・レジスタに格納するステップと、
前記プロセッサが前記複数のアプリケーションのそのとき実行されている前記1つに対する前記データ転送を実行するのに応答して、前記メモリ・レジスタに格納された前記m個の上位アドレス・ビットを前記メモリへ印加するステップと、
前記プロセッサにより前記アドレス・バスへ印加された前記データ転送のためのn個の下位アドレス・ビットを前記メモリへ伝送するステップと、
前記データ転送のため前記プロセッサにより前記メモリ・バスへ印加された前記アドレスの前記m個の上位アドレス・ビットにおける誤りを検出するステップと、
前記誤りの検出に応答して誤り信号を生成するステップと、
を備えることを特徴とする。
【0019】
前記誤り信号の生成に応答して前記データ転送を禁止することが好ましい。
前記誤り信号を前記プロセッサへ伝送することが好ましい。
前記誤り信号の受取りに応答して前記プロセッサにおいて誤り割込みを生成することが好ましい。
【0020】
前記誤りを検出する前記ステップが、前記データ転送のため前記プロセッサにより前記アドレス・バスへ印加されるm個の上位アドレス・ビットを、前記複数のアプリケーションのそのとき実行されている前記1つに対するデータを格納する前記複数のセグメントの前記1つを識別する前記m個の上位アドレス・ビットと比較するステップを含むことが好ましい。
【0021】
前記検出するステップが、前記m個の上位アドレス・ビットを格納するメモリ・レジスタから前記m個の上位アドレス・ビットを受取るステップを更に備えることを特徴とすることが好ましい。
【0022】
実行中のオペレーティング・システムに応答して前記プロセッサにより前記アドレス・バスへ印加される前記m個の上位アドレス・ビットを伝送することが好ましい。
【0023】
実行中の前記オペレーティング・システムに応答して前記誤り検出を禁止することが好ましい。
詳細な記述
図1は、本発明のメモリ保護機構を備えるマルチタスク・システム100の望ましい実施の形態を示している。プロセッサ101は複数のアプリケーションに対する指令を実行する。指令は読出し専用メモリ(ROM)150に格納される。プロセッサ101は、バス151によりROM150に接続されるデータ・バス104を介してROM150から指令を受取る。RAM120のようなメモリが、複数のアプリケーションの各々を実行するため必要なデータを格納するようにプロセッサ101と関連させられる。RAM120における各アドレスは、m個の上位アドレス・ビットとn個の下位アドレス・ビットとにより規定される。RAM120は望ましい実施の形態においては64キロバイトのメモリであるが、本発明は任意のサイズのメモリを用い得るようスケーリングすることが可能である。
【0024】
メモリ・レジスタ102はmビットを格納し、m個の経路112〜114によりマルチプレクサ130に接続される。望ましい実施の形態において、メモリ・レジスタ102はプロセッサ101の内部にある。しかし、メモリ・レジスタ102をプロセッサ101の外部に置いてもよい。保護信号は、アプリケーション又はオペレーティング・システムが実行されているかどうかを示すため、メモリ・レジスタ102により経路115上に出力される。望ましい実施の形態においては、オペレーティング・システムが実行されているとき、保護信号は経路115においてハイ、即ち1である。アプリケーションが実行されているとき、経路115上の保護信号はロー、即ち0である。望ましい実施の形態においては、経路115上の保護信号はマルチプレクサ130がどの経路をRAM120に接続するかを決定する。ハイの保護信号は、オペレーティング・システムが実行されているとき誤り検出回路を不動作状態にし、誤り信号が生成されることを防止する。
【0025】
保護信号が経路115上でローであるとき、マルチプレクサ130は、メモリ・レジスタ102からのm個の経路112〜114をそれぞれm個の上位アドレス線122〜124に接続する。経路115上の保護信号がハイであるとき、マルチプレクサ130は、バス105からのm個の経路106〜108をm個の上位アドレス線122〜124に接続する。バス105はアドレス・バス121から分岐し、m個の上位アドレス・ビットをプロセッサ101から経路106〜108を介してマルチプレクサ130へ直接与える。m個の経路109〜111は、バス105からm個の上位アドレス・ビットを受取り、m個の上位アドレス・ビットをマルチタスク・システム100の誤り検出回路へ印加する。
【0026】
データ・バス104はプロセッサ101をRAM120と接続しており、データをプロセッサ101とRAM120との間で転送する。RAM120により行われるデータ操作の形式は、プロセッサ101から読出し/書込み経路103を介してRAM120へ伝送される読出し/書込み信号により決定される。或るアドレスのn個の下位アドレス・ビットは、プロセッサ101により下位アドレス・バス121を介してRAM120へ伝送される。m個の上位アドレス線122〜124により表わされる上位アドレス・バスは、m個の上位アドレス・ビットをマルチプレクサ130からRAM120へ与える。望ましい実施の形態においては、下位アドレス・バス121は或るアドレスの13個の下位ビットを運び、上位アドレス・バスは65キロバイト・メモリにおける16ビット・アドレスの3つの上位アドレス・ビットを運ぶ。しかし、n個の下位アドレス・ビットとm個の上位アドレス・ビットの数は、異なる設計パラメータにより動作するよう変更することができる。
【0027】
誤り検出回路は、プロセッサ101により実行されているアプリケーションによる、割当てられたメモリ・セグメント外でのデータの読出し/書込みの試みを検出する。アプリケーションがその割当てられたメモリ・セグメント外での読出し/書込みを試みるならば、誤り検出回路は誤り信号を生成する。誤り信号の生成は、データ操作を実施不能にするか、あるいは、プロセッサ101へ伝送されて、アプリケーションが読出し/書込み操作を完了することを防止する誤り割込みを生じさせる。
【0028】
ソフトウエア・アプリケーションは、定数に等しいm個の上位アドレス・ビットを持つ読出し/書込み操作のためのメモリ・アドレスを生成するようにコンパイルされる。誤り検出回路は、m個の上位アドレス・ビットが当該定数に等しいかどうかを決定する。m個の上位アドレス・ビットと当該定数とが等しくないとき、誤り検出回路により誤り信号が生成される。
【0029】
望ましい実施の形態においては、アプリケーションにより生成されるm個の上位アドレス・ビットの各々に対する定数は0である。誤り検出回路は、m個のビットのどれかが1である時点を検出する。誤り検出回路は、ORゲート131、133、135と、ラッチ132と、インバータ134とを備える。ORゲート131は、プロセッサ101からm個の経路109〜111を介してm個の上位アドレス・ビットを受取り、経路140を介して信号を印加する。ラッチ132は、ORゲート131からの信号を経路140を介して受取り、プロセッサ101からのアドレス有効信号を経路141を介して受取る。アドレス有効信号は、アプリケーションがメモリ・アドレスの生成を完了したならば、プロセッサ101によりラッチ141へ送られる。ラッチ132は、経路142を介してORゲート133へ信号を送る。ORゲート133は、経路115を介して保護信号を受取り、ラッチ132から経路142を介して信号を受取る。ORゲート133からの出力信号は、経路143上をプロセッサ101へ送られる。経路147は経路143から分岐し、ORゲート133からの信号をインバータ134へ印加する。反転された信号は経路146を介してORゲート135へ送られる。ORゲート135は、経路146上で信号を受取り、経路144を介してチップ選択信号を受取る。ORゲート135から結果として生じた信号は、経路145を介してRAM120へ印加される。
【0030】
アプリケーションが無効アドレスを生成するならば、誤り検出回路は以下のように動作する。ORゲート131がm個の経路109〜111から信号を受取る。受取られた信号の少なくとも1つが1を表わすハイであり、ハイの信号が経路140を介してラッチ132へ印加される。ラッチ132は、経路141を介してプロセッサ101からハイのアドレス有効信号を受取ることにより、ハイの信号を出力するようにセットされる。有効アドレス信号は、アプリケーションが読出し/書込み操作に対するアドレスの生成を完了したことを示す。経路140を介するハイ信号の受取りはラッチ132をストローブし、経路142にローの信号を印加させる。ORゲート133は、プロセッサ101から経路115上でローの保護信号を受取り、ラッチ132から経路142上でローの信号を受取る。保護信号115はローであり、プロセッサ101によりアプリケーションが実行されていることを示す。このローの保護信号115は、ORゲート133によりローのラッチ信号へOR出力される。結果として得られるローの信号は、ローの誤り信号としてプロセッサ101へ経路142上で送られる。経路147は経路143から分岐し、ローの信号をインバータ134へ印加する。インバータ134からのハイの信号は、ORゲート135へ印加される。読出し/書込み操作を完了させるローのチップ選択信号は、経路144を介してORゲート135により受取られる。ORゲート135は、ローのチップ選択信号とハイの信号とをOR処理する。ハイの信号が経路145を介してRAM120へ送られる。このハイの信号は、読出し/書込み操作が完了されることを防止する。
【0031】
アプリケーションにより生成されるアドレスから誤りが生じなければ、誤り検出回路は以下のように動作する。ORゲート131がm個の経路109〜111から信号を受取る。受取られた全ての信号はローであり、ローの信号が経路140を介してラッチ132へ印加される。ラッチ132は、経路141を介してプロセッサ101からハイの有効信号を受取ることにより、ハイの信号を出力するようにセットされる。ローの信号が経路140上で受取られるので、経路142上の信号を、生成されたアドレスに誤りがないことを示すハイに維持する。ORゲート133は、経路115を介してプロセッサ101からローの保護信号を受取り、経路142を介してラッチ132からハイの信号を受取る。ローの保護信号115は、ORゲート133により経路142からのハイのラッチ信号に対してOR処理される。結果として生じるハイの信号は経路143を介してプロセッサ101へ送られ、アドレスが有効であることを示す。経路147は経路143から分岐し、ハイの信号をインバータ134へ印加する。インバータ134からローの信号がORゲート135へ印加される。読出し/書込み操作を完了させるローのチップ選択信号は、経路144を介してORゲート135により受取られる。ORゲート135は、ローのチップ選択信号とローの信号とをOR処理する。結果として得るローの信号は、ORゲート135により経路145を介してRAM120へ送られる。このローの信号は読出し/書込み操作を完了させる。
【0032】
図2は、本発明の代替的な実施の形態を示している。マルチタスク・システム200はマルチタスク・システム100と同じ要素からなるが、ORゲート131の前側に誤り検出回路に付加される、「より大きな」の比較器202を規定する論理ユニットと、「より小さな」の比較器203を規定する論理ユニットとを有する。バス105は、少なくともm個の上位アドレス・ビットを誤り検出回路に与える。n個の下位アドレス・ビットの全て又はその一部もまた、誤り検出回路へ与えられる。「より大きな」の比較器202は、経路210上で少なくともm個の上位アドレス・ビットを受取り、「より小さな」の比較器203は、経路211上で少なくともm個の上位アドレス・ビットを受取る。メモリ・レジスタ102からのm個の上位アドレス・ビットは、バス213上で誤り検出回路へ送られる。「より大きな」の比較器202は経路214を介してバス213からm個の上位アドレス・ビットを受取り、「より小さな」の比較器203は経路215を介してバス213からm個の上位アドレス・ビットを受取る。「より大きな」の比較器202は信号を経路205を介してORゲート131へ印加し、「より小さな」の比較器203は信号を経路206を介してORゲート131へ印加する。
【0033】
代替的な実施の形態においては、アプリケーションにより生成される各アドレスのm個の上位アドレス・ビットは、アプリケーションに対するデータを格納するメモリ・セグメントを規定するm個の上位アドレス・ビットの一義的な組合わせに等しい。代替的な実施の形態で生成することができる3つの形式のアドレス、即ち、アプリケーション・メモリ・セグメントにおける最下位アドレスより小さいアドレス、アプリケーション・メモリ・セグメント間のアドレス、及びアプリケーションのメモリ・セグメントの最上位アドレスより大きいアドレスが存在する。生成されたアドレスがアプリケーション・メモリ・セグメントの最上位アドレスより大きいか、あるいはアプリケーション・メモリ・セグメントの最下位アドレスより小さいときに、誤りが生じる。
【0034】
メモリ・セグメントの最下位アドレスより小さなアドレスが生成されるとき、誤り検出回路は以下のように動作する。生成されたm個の上位アドレス・ビットは、経路210を介して「より大きな」の比較器202により受取られる。メモリ・レジスタ102からのm個の上位アドレス・ビットは、経路214を介して「より小さな」の比較器202により受取られる。「より大きな」の比較器203は、生成されたm個の上位アドレス・ビットとメモリ・レジスタ102からのm個の上位アドレス・ビットとを比較する。生成されたm個の上位アドレス・ビットはメモリ・レジスタのm個の上位アドレス・ビットより小さいので、ローの信号が経路205を介してORゲート131へ送られる。このローの信号は、生成されたアドレスがメモリ・セグメントの最上位アドレスより小さく且つ有効アドレスであることを示す。生成されたm個の上位アドレス・ビットは、経路211を介して「より小さな」の比較器203により受取られる。メモリ・レジスタ102からのm個の上位アドレス・ビットは、経路215を介して「より小さな」の比較器203により受取られる。「より小さな」の比較器203は、生成されたm個の上位アドレス・ビットとメモリ・レジスタ102からのm個の上位アドレス・ビットとを比較する。生成されたm個の上位アドレス・ビットはメモリ・レジスタのm個の上位アドレス・ビットより小さく、ハイの信号が経路206を介してORゲート131へ送られる。このハイの信号は、生成されたアドレスがアドレス・セグメントにおける最下位アドレスと無効アドレスより小さいことを示す。経路205からのハイの信号と経路204からのローの信号とが、ORゲート131によりOR処理される。結果として生じるハイの信号は経路140上に送られ、誤り検出回路の残りの部分は、図1において先に述べた如く、誤りに対する操作を完了する。
【0035】
メモリ・セグメントにおける最上位アドレスより大きなアドレスが生成されるとき、誤り検出回路は以下のように動作する。生成されるm個の上位アドレス・ビットは、経路210を介して「より大きな」の比較器202により受取られる。メモリ・レジスタ102からのm個の上位アドレス・ビットは、経路214を介して「より大きな」の比較器202により受取られる。「より大きな」の比較器202は、生成されたm個の上位アドレス・ビットとメモリ・レジスタ102からのm個の上位アドレス・ビットとを比較する。生成されたm個の上位アドレス・ビットはメモリ・レジスタのm個の上位アドレス・ビットより大きく、ハイの信号が経路205を介してORゲート131へ送られる。このハイの信号は、生成されたm個のアドレスが最上位のメモリ・セグメント・アドレスと無効アドレスより大きいことを示す。また、生成されたm個の上位アドレス・ビットは、経路211を介して「より小さな」の比較器203により受取られる。メモリ・レジスタ102からのm個の上位アドレス・ビットは、経路215を介して「より小さな」の比較器203により受取られる。「より小さな」の比較器203は、生成されたm個の上位アドレス・ビットとメモリ・レジスタ102からのm個の上位アドレス・ビットとを比較する。生成されたm個の上位アドレス・ビットはメモリ・レジスタのm個の上位アドレス・ビットより大きく、ローの信号が経路206を介してORゲート131へ送られる。このローの信号は、生成されたアドレスが最下位メモリ・セグメント・アドレスより大きいことを示す。経路205からのハイの信号と経路206からのローの信号とはOR処理される。結果として得るハイの信号は経路140上で送られ、誤り検出回路の残りの部分は、図1において先に述べたように、誤りに対する操作を完了する。
【0036】
最下位メモリ・セグメント・アドレスより大きく且つ最上位メモリ・セグメント・アドレスより小さなアドレスが生成されるとき、誤り検出回路は以下のように動作する。生成されたm個の上位アドレス・ビットは、経路210を介して「より大きな」の比較器202により受取られる。メモリ・レジスタ102からのm個の上位アドレス・ビットは、経路214を介して「より大きな」の比較器202により受取られる。「より大きな」の比較器202は、生成されたm個の上位アドレス・ビットとメモリ・レジスタ102からのm個の上位アドレス・ビットとを比較する。生成されたm個の上位アドレス・ビットは、メモリ・レジスタのm個の上位アドレス・ビットより小さく、ローの信号が経路205上でORゲート131へ送られる。このローの信号は、生成されたアドレスが最上位セグメント・アドレスより小さく且つ有効アドレスであることを示す。また、生成されたm個の上位アドレス・ビットも、経路211を介して「より小さな」の比較器203により受取られる。メモリ・レジスタ102からのm個の上位アドレス・ビットは、経路215を介して「より小さな」の比較器203により受取られる。「より小さな」の比較器203は、生成されたm個の上位アドレス・ビットとメモリ・レジスタ102からのm個の上位アドレス・ビットとを比較する。生成されたm個の上位アドレス・ビットはメモリ・レジスタのm個の上位アドレス・ビットより小さく、ローの信号が経路206上をORゲート131へ送られる。このローの信号は、生成されたアドレスが最下位セグメント・アドレスより大きく且つ有効アドレスであることを示す。経路205からのローの信号と経路204からのローの信号とがOR処理される。結果として得るローの信号が経路140上で送られ、誤り検出回路の残りの部分は、図1において先に述べたように、適切な生成アドレスに対する動作を完了する。
【0037】
図3は、複数のセグメント300〜307へ分割されるRAM120を示す。セグメント300〜307の各々は、m個の上位アドレス・ビットの一義的な組合わせにより規定される。要求されるmビットの数は、メモリにおけるセグメント数により決定される。例えば、RAM120は64キロバイトであり、8つのセグメントに分割される。mは3に等しく、各セグメントは上位3ビットの一義的な組合わせで規定される。この例においては、セグメント300〜307の上位3ビットは、それぞれ000、001、010、011、100、101、110及び111である。
【0038】
マルチタスク・システム100は、プロセッサ101により実行されるオペレーティング・システムと複数のアプリケーションA〜Gとを走らせる。各アプリケーションA〜Gとオペレーティング・システムは、図3に示されるように、RAM120のセグメント300〜307の1つにデータを格納する。本発明は、定数にセットされたm個の上位アドレス・ビットを有する、データ操作のためのアドレスを生成するように、各アプリケーションがコンパイルされることを必要とする。例えば、アプリケーションA〜Gは、望ましい実施の形態においては、m個の上位アドレス・ビットが0であるアドレスを生成する。本発明におけるオペレーティング・システムは、本発明におけるアプリケーションA〜Gの実行をスケジューリングすると共に、メモリ全体にアクセスしてデータをアプリケーション間で転送する。
【0039】
本発明によるメモリ保護機構を備えるマルチタスク・システムの動作の概要が、図4に示される。プロセス400は、アプリケーションA〜Gの1つを実行するようにオペレーティング・システムがシステムを初期設定するステップ401から始まる。ステップ402において、アプリケーションAのような選択されたアプリケーションがプロセッサ101により実行される。オペレーティング・システムは、ステップ403において、メモリ・レジスタ102におけるm個の上位アドレス・ビットがアプリケーションAのm個の上位アドレス・ビットと等しいことを検査する。アプリケーションA〜Gがプロセッサ101により実行される毎に、プロセス400が反復される。
【0040】
ステップ401においてオペレーティング・システムにより行われるマルチタスク・システム100の初期設定は、図5におけるプロセス500によって示される。第一に、オペレーティング・システムはステップ501において、実行されるべきアプリケーション、例えばアプリケーションAを選択する。ステップ502において、アプリケーションAに対するデータを格納するため割当てられるメモリ・セグメントのm個の上位アドレス・ビット001が、オペレーティング・システムによりメモリ・レジスタ102へ書込まれる。ステップ503において、保護信号115がローにセットされ、アプリケーションAがプロセッサ101により実行されていることを示す。次いで、プロセス500は、図4におけるプロセス400のステップ401へ戻る。
【0041】
図6は、プロセス400のステップ402においてアプリケーションAを実行するプロセス600を示す。プロセス600は、アプリケーションAが実行されているステップ601で始まる。ステップ602において、アプリケーションAはRAM120に対する読出し/書込み操作を行わなければならない。ステップ603において、読出し/書込み操作を行うため、アドレスがアプリケーションAにより生成される。生成されたアドレスは、定数にセットされるm個の上位アドレス・ビットを有する。望ましい実施の形態においては、m個の上位アドレス・ビットの各々は0である。生成されたn個の下位アドレス・ビットは、ステップ604において下位アドレス・バス121を介してRAM120へ送られる。読出し/書込み操作のためのアドレスのm個の上位ビットは、経路122〜124により表わされる上位アドレス・バスを介してメモリ・レジスタ102からRAM120に入力される。
【0042】
ステップ603において生成されたm個の上位アドレス・ビットは、ステップ605において、プロセッサ101によりバス105と経路109〜111とを介して誤り検出回路へ送られる。誤り検出回路は無効アドレスが生成されたかどうかを決定する。読出し/書込み操作はステップ606において完了する。プロセス600は、アプリケーションの実行が完了したかどうかを決定するステップ607において完了される。アプリケーションの実行が完了しなければ、ステップ607が、ステップ601から始まるプロセス600を反復する。実行が完了されると、プロセス600は図4のプロセス400のステップ402へ戻る。
【0043】
誤り検出回路は、ステップ605においてm個の上位アドレス・ビットを受取り、図7に示されるプロセス700を完了する。プロセス700は、プロセス600において実行されているアプリケーションのためのデータを格納するメモリ・セグメントにおけるデータを保護する。メモリ・レジスタ102は、実行されているアプリケーションのメモリ・セグメントのための固有のmビットを伝送し、アプリケーションがそのメモリ・セグメント外でデータを書込むことを防止する。スタック・オーバーフロー誤りのような或る条件に応答して、アプリケーションは、そのメモリ・セグメント外のアドレスを生成しようと試みる。しかし、無効アドレスからのnビットとメモリ・レジスタ102からのmビットとの組合わせが、有効データを含む、アプリケーションのメモリ・セグメント内のアドレスを生成する。誤り検出回路は、無効の上位アドレス・ビットを検出して、アプリケーションのメモリ・セグメントにおける有効データの破壊を防止するためデータ操作を禁止しなければならない。
【0044】
プロセス700は、m個の上位ビットが定数に等しいかどうかを決定するステップ701から始まる。望ましい実施の形態においては、アプリケーションにより生成されたmビットがそれぞれゼロであり、誤り検出回路はゼロに等しくないビットを検出する。m個のビットが定数に等しければ、プロセス700は図6に示されるプロセス600のステップ605へ戻る。m個の上位アドレス・ビットが当該定数に等しくなければ、プロセス700はステップ702において誤り信号を生成する。誤り信号に応答して、ステップ703はチップ選択信号を禁止状態にして読出し/書込み操作を止め、アプリケーションのメモリ・セグメントにおけるデータの破壊を防止する。望ましい実施の形態においては、ステップ701〜703は、図1において先に述べた如き誤り検出回路により実行される。
【0045】
図7のステップ704において、ステップ702で生成された誤り信号がプロセッサ101へ送られる。ステップ705において、プロセッサ101は誤り割込みを生じ、あるいは、誤り信号の受取りに応答して誤りフラグをセットする。プロセッサ101の応答はオペレーティング・システムにより決定され、本発明の製造者の設計上の選択である。誤り回復は本発明の範囲に含まれないため、ステップ703及びステップ704からの誤り回復については論述しない。
【0046】
図8は、プロセス400のステップ403においてオペレーティング・システムにより実行される誤り検出プロセス800を示す。まず、保護信号115はステップ801においてハイの信号へセットされ、オペレーティング・システムが実行中であることを示す。ステップ802において、メモリ・レジスタ102がオペレーティング・システムにより読出される。ステップ803においてオペレーティング・システムにより、メモリ・レジスタ102から読出されるm個の上位アドレス・ビットが、完了したアプリケーションのメモリ・セグメントに対するm個の上位アドレス・ビットと比較される。m個の上位アドレス・ビットが等しくなければ、ステップ804において誤り信号がオペレーティング・システムにより生成される。さもなければ、プロセス800は図4のプロセス400のステップ403へ戻る。
【0047】
本発明は、マルチタスク・システムにおけるメモリ保護の提供に関するものである。本明細書では特定の例が例示的に開示されているが、当業者であれば、請求項に含まれる代替的なメモリ保護システムを文言とおり又は均等論の下で設計できることができよう。
【図面の簡単な説明】
【図1】 本発明のメモリ保護機構を備えたプロセッサ制御マルチタスク・システムの一つの望ましい実施の形態を示すブロック図である。
【図2】 本発明のメモリ保護機構を備えたプロセッサ制御マルチタスク・システムの代替的な実施の形態を示すブロック図である。
【図3】 複数のセグメントに分割された、マルチタスク・システムにおけるメモリを示すブロック図である。
【図4】 図1の望ましい実施の形態の動作の概要を示すフロー図である。
【図5】 アプリケーションを望ましい実施の形態において実行するよう用意するプロセスのフロー図である。
【図6】 望ましい実施の形態におけるアプリケーション実行期間での読出し/書込み操作を実行するプロセスのフロー図である。
【図7】 望ましい実施の形態においてアプリケーションが無効アドレスを生成したかどうかを決定するプロセスのフロー図である。
【図8】 望ましい実施の形態においてアプリケーションの実行が完了した後にメモリ・レジスタに格納されたm個の上位アドレス・ビットの変化を検出するプロセスのフロー図である。
Claims (14)
- 複数のアプリケーション(A〜G)を実行するプロセッサ(101)に接続されたメモリ(120)に格納されたデータのデータ転送期間における破壊を防止するメモリ保護システム(100)であって、
前記複数のアプリケーション(A〜G)の各々が、m個の上位アドレス・ビットの一義的な組み合わせにより識別される前記メモリ(120)の複数のセグメント(300〜307)のうちの1つのセグメントにデータを格納し、
前記プロセッサ(101)が、前記複数のアプリケーションのうちの1つのアプリケーションを実行して、前記メモリの前記複数のセグメントのうちの前記1つのセグメントをアクセスするための、m個の上位アドレス・ビットとn個の下位アドレス・ビットとを含むアドレスを生成して前記n個の下位アドレス・ビットを下位アドレス・バス(121)に印加するよう動作し、
前記n個の下位アドレス・ビットが前記複数のセグメントのうちの前記1つのセグメントにおける記憶場所を示すメモリ保護システムにおいて、
前記プロセッサから前記m個の上位アドレス・ビットを受取って前記m個の上位アドレス・ビットを格納するメモリ・レジスタ(102)であって、前記m個の上位アドレス・ビットは、前記複数のアプリケーション(A〜G)のうちの前記1つのアプリケーションに対するデータを格納するために前記複数のセグメント(300〜307)のうちの前記1つのセグメントを識別するメモリ・レジスタ(102)と、
前記m個の上位アドレス・ビットを前記メモリ・レジスタ(102)及び前記プロセッサ(101)から受け取り、前記複数のアプリケーションのうちの前記1つのアプリケーションを前記プロセッサ(101)が実行していることを示す第1の信号に応答して、前記メモリ・レジスタ(102)からの前記m個の上位アドレス・ビットを上位アドレス・バスへ選択的に印加すると共に、前記プロセッサ(101)がオペレーティング・システムを実行していることを示す第2の信号の受取りに応答して、前記プロセッサ(101)からの前記m個の上位アドレス・ビットを前記上位アドレス・バスへ選択的に印加するマルチプレクサ(130)であって、前記複数のアプリケーションのうちの前記1つのアプリケーションは、前記プロセッサによって実行されるとき、定数に等しい前記m個の上位アドレス・ビットを生成するものであるマルチプレクサ(130)と、
前記プロセッサから前記m個の上位アドレス・ビットを受取り、前記プロセッサ(101)からの前記m個の上位アドレス・ビットが前記定数に等しくないことを決定して、該決定に応答して誤り信号を生成する誤り検出回路と、
を備えることを特徴とするメモリ保護システム(100)。 - 前記誤り検出回路から前記誤り信号を受取り、前記誤り信号に応答して前記データ転送を禁止する禁止回路(134〜135)を更に備えることを特徴とする、請求項1記載のシステム(100)。
- 前記誤り信号が前記プロセッサ(101)へ伝送され、該プロセッサが前記誤り信号の受取りに応答して誤り割込みを実行する、請求項1記載のシステム(100)。
- 前記誤り検出回路(132)が、前記1つのアプリケーションの実行期間に前記プロセッサ(101)からの前記m個の上位アドレス・ビットを比較することを特徴とする、請求項1記載のシステム(100)。
- 前記誤り検出回路が前記メモリ・レジスタ(102)から前記m個の上位アドレス・ビットを受取る、請求項1記載のシステム(200)。
- 前記誤り検出回路が、オペレーティング・システムが前記プロセッサによって実行されていることに応答して使用禁止される、請求項1記載のシステム(200)。
- 複数のアプリケーション(A〜G)を実行するプロセッサ(101)に接続されたメモリ(120)に格納されたデータの、アプリケーション(A)の実行期間におけるデータ転送での破壊を防止する方法(600、700)であって、
前記複数のアプリケーションのそれぞれが、m個の上位アドレス・ビットの一義的な組み合わせにより識別される前記メモリの複数のセグメント(300〜307)のうちの1つのセグメントにデータを記憶し、
前記プロセッサが、前記アプリケーション(A)を実行して(601)、データ転送の必要に応答して前記メモリの前記複数のセグメントのうちの前記1つのセグメントをアクセスするための、m個の上位アドレス・ビットとn個の下位アドレス・ビットとを含むアドレスを生成し、前記n個の下位アドレス・ビットを下位アドレス・バス(121)に印加して前記メモリに伝送する(604)よう動作し、
前記n個の下位アドレス・ビットが前記複数のセグメントのうちの前記1つのセグメントにおける記憶場所を示す方法において、
前記アプリケーションを実行して、定数に等しい前記m個の上位アドレス・ビットを生成するステップ(603)と、
前記プロセッサが前記アプリケーションの実行を開始したのに応答して、前記複数のアプリケーション(A〜G)のうちのそのとき実行されているアプリケーションのデータを記憶するために前記複数のセグメント(300〜302)のうちの1つのセグメントを識別する、前記プロセッサによって生成される前記m個の上位アドレス・ビットをメモリ・レジスタにおいて受取って記憶するステップと、
前記プロセッサが前記複数のアプリケーションのうちの前記1つのアプリケーションを実行しているとき、前記メモリ・レジスタ(102)に記憶された前記m個の上位アドレス・ビットを選択して上位アドレス・バス(122〜124)に印加するステップと、
前記プロセッサがオペレーティング・システムを実行しているとき、前記プロセッサ(101)によって生成された前記m個の上位アドレス・ビットを選択して上位アドレス・バス(122〜124)に印加するステップと、
前記プロセッサ(101)によって生成された前記m個の上位アドレス・ビットを誤り検出回路に印加するステップ(605)と、
前記プロセッサ(101)によって生成された前記m個の上位アドレス・ビットが前記定数に等しいか否かを決定するステップ(701)と、
前記プロセッサ(101)によって生成された前記m個の上位アドレス・ビットが前記定数に等しくない場合に誤り信号を生成するステップ(702)と、
を備えることを特徴とする方法。 - 前記誤り信号の生成に応答して前記データ転送を禁止するステップ(703)を更に備えることを特徴とする、請求項7記載の方法。
- 前記誤り信号を前記プロセッサ(101)へ伝送するステップ(704)を更に備えることを特徴とする、請求項7記載の方法。
- 前記誤り信号の受取りに応答して前記プロセッサ(101)において誤り割込みを生成するステップ(705)を更に備えることを特徴とする、請求項9記載の方法。
- 前記m個の上位アドレス・ビットが前記定数に等しいか否かを決定するステップ(701)が、前記プロセッサによる前記アプリケーションの実行期間において、前記m個の上位アドレス・ビットが前記定数に等しいか否かを決定するステップを含む、請求項7記載の方法(400)。
- 前記m個の上位アドレス・ビットを誤り検出回路に印加するステップが、前記m個の上位アドレス・ビットを格納するメモリ・レジスタ(102)から前記m個の上位アドレス・ビットを印加するステップを更に備えることを特徴とする、請求項7記載の方法(400)。
- 前記m個の上位アドレス・ビットを誤り検出回路に印加するステップが、前記プロセッサ(101)からの前記m個の上位アドレス・ビットを印加するステップを更に備えることを特徴とする、請求項7記載の方法(400)。
- 前記プロセッサによるオペレーティング・システムの実行に応答して前記誤り検出回路を使用禁止するステップを更に備えることを特徴とする、請求項7記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/991,422 | 1997-12-16 | ||
US08/991,422 US5995750A (en) | 1997-12-16 | 1997-12-16 | Memory protection system for a multi-tasking system |
PCT/US1998/025953 WO1999031595A1 (en) | 1997-12-16 | 1998-12-07 | Memory protection system for a multi-tasking system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002508569A JP2002508569A (ja) | 2002-03-19 |
JP3995883B2 true JP3995883B2 (ja) | 2007-10-24 |
Family
ID=25537200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000539423A Expired - Fee Related JP3995883B2 (ja) | 1997-12-16 | 1998-12-07 | マルチタスク・システムのためのメモリ保護システム |
Country Status (10)
Country | Link |
---|---|
US (1) | US5995750A (ja) |
EP (1) | EP1023666B1 (ja) |
JP (1) | JP3995883B2 (ja) |
CN (1) | CN1169056C (ja) |
AR (1) | AR014124A1 (ja) |
AU (1) | AU1715099A (ja) |
DE (1) | DE69817852T2 (ja) |
HK (1) | HK1032647A1 (ja) |
MY (1) | MY117539A (ja) |
WO (1) | WO1999031595A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6460121B1 (en) * | 1998-09-14 | 2002-10-01 | Compaq Information Technologies Group, L.P. | Method for providing an atomic memory read using a compare-exchange instruction primitive |
US6883171B1 (en) * | 1999-06-02 | 2005-04-19 | Microsoft Corporation | Dynamic address windowing on a PCI bus |
US7631160B2 (en) * | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US6798711B2 (en) * | 2002-03-19 | 2004-09-28 | Micron Technology, Inc. | Memory with address management |
US7523455B2 (en) * | 2002-05-03 | 2009-04-21 | Hewlett-Packard Development Company, L.P. | Method and system for application managed context switching |
EP1820093B1 (de) * | 2004-10-25 | 2018-08-15 | Robert Bosch Gmbh | Verfahren und einrichtung zum umschalten in einem computersystem mit mindestens zwei ausführungseinheiten |
US7783896B2 (en) * | 2005-09-06 | 2010-08-24 | Research In Motion Limited | System and method for management of plaintext data in a mobile data processing device |
US20130166922A1 (en) * | 2011-12-23 | 2013-06-27 | Ati Technologies Ulc | Method and system for frame buffer protection |
US8788727B1 (en) * | 2013-01-10 | 2014-07-22 | Agilent Technologies, Inc. | Electronic system subject to memory overflow condition |
US10387139B2 (en) * | 2017-07-25 | 2019-08-20 | Aurora Labs Ltd. | Opportunistic software updates during select operational modes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2902402B2 (ja) * | 1987-09-30 | 1999-06-07 | 三菱電機株式会社 | データ処理装置 |
JPH01219982A (ja) * | 1988-02-29 | 1989-09-01 | Hitachi Maxell Ltd | Icカード |
US5280614A (en) * | 1990-08-21 | 1994-01-18 | International Business Machines Corporation | Apparatus and method for controlling access to data using domains |
US5539899A (en) * | 1992-04-03 | 1996-07-23 | International Business Machines Corporation | System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage |
US5590351A (en) * | 1994-01-21 | 1996-12-31 | Advanced Micro Devices, Inc. | Superscalar execution unit for sequential instruction pointer updates and segment limit checks |
US5440710A (en) * | 1994-03-08 | 1995-08-08 | Exponential Technology, Inc. | Emulation of segment bounds checking using paging with sub-page validity |
US5577219A (en) * | 1994-05-02 | 1996-11-19 | Intel Corporation | Method and apparatus for preforming memory segment limit violation checks |
JPH08272625A (ja) * | 1995-03-29 | 1996-10-18 | Toshiba Corp | マルチプログラム実行制御装置及び方法 |
US5787492A (en) * | 1996-04-09 | 1998-07-28 | International Business Machines Corporation | Address limit check apparatus with conditional carry logic |
-
1997
- 1997-12-16 US US08/991,422 patent/US5995750A/en not_active Expired - Lifetime
-
1998
- 1998-12-04 MY MYPI98005494A patent/MY117539A/en unknown
- 1998-12-07 JP JP2000539423A patent/JP3995883B2/ja not_active Expired - Fee Related
- 1998-12-07 DE DE69817852T patent/DE69817852T2/de not_active Expired - Lifetime
- 1998-12-07 AU AU17150/99A patent/AU1715099A/en not_active Abandoned
- 1998-12-07 EP EP98961968A patent/EP1023666B1/en not_active Expired - Lifetime
- 1998-12-07 CN CNB98812274XA patent/CN1169056C/zh not_active Expired - Lifetime
- 1998-12-07 WO PCT/US1998/025953 patent/WO1999031595A1/en active IP Right Grant
- 1998-12-16 AR ARP980106402A patent/AR014124A1/es active IP Right Grant
-
2001
- 2001-05-08 HK HK01103220A patent/HK1032647A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
MY117539A (en) | 2004-07-31 |
CN1169056C (zh) | 2004-09-29 |
EP1023666B1 (en) | 2003-09-03 |
AR014124A1 (es) | 2001-02-07 |
CN1282430A (zh) | 2001-01-31 |
JP2002508569A (ja) | 2002-03-19 |
DE69817852T2 (de) | 2004-05-06 |
AU1715099A (en) | 1999-07-05 |
US5995750A (en) | 1999-11-30 |
WO1999031595A1 (en) | 1999-06-24 |
DE69817852D1 (de) | 2003-10-09 |
HK1032647A1 (en) | 2001-07-27 |
EP1023666A1 (en) | 2000-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2024444C (en) | Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media | |
US4038645A (en) | Non-translatable storage protection control system | |
EP0306702B1 (en) | Virtual input/output commands | |
US5606662A (en) | Auto DRAM parity enable/disable mechanism | |
JP4395425B2 (ja) | 破損データ値を処理するためのデータ処理装置と方法 | |
JPS6046744B2 (ja) | コンピュ−タ・オペレ−テングシステムの機密保護装置 | |
JPH0345407B2 (ja) | ||
US5671231A (en) | Method and apparatus for performing cache snoop testing on a cache system | |
US3988714A (en) | Computer input/output apparatus for providing notification of and distinguishing among various kinds of errors | |
US4050094A (en) | Translator lookahead controls | |
JP3995883B2 (ja) | マルチタスク・システムのためのメモリ保護システム | |
FI87283C (fi) | Distribuerat kontrollminnesordarkitektur | |
US4035779A (en) | Supervisor address key control system | |
US4393459A (en) | Status reporting with ancillary data | |
US6421765B1 (en) | Method and apparatus for selecting functional space in a low pin count memory device | |
US4093986A (en) | Address translation with storage protection | |
US4042913A (en) | Address key register load/store instruction system | |
US6260132B1 (en) | Method and apparatus for secure address re-mapping | |
US4037207A (en) | System for controlling address keys under interrupt conditions | |
US5586336A (en) | Microcomputer capable of monitoring internal resources from external | |
US5793991A (en) | Method of equalizing loads on a computer bus | |
US6526496B1 (en) | Burst instruction alignment method apparatus and method therefor | |
JPH0467215B2 (ja) | ||
EP0432807A2 (en) | Microprocessor having internal cache memory | |
JPH0319573B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050617 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050916 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050927 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051213 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070404 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070605 |
|
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: 20070703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070801 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
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: 20100810 Year of fee payment: 3 |
|
S802 | Written request for registration of partial abandonment of right |
Free format text: JAPANESE INTERMEDIATE CODE: R311802 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130810 Year of fee payment: 6 |
|
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 |
|
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 |