JP3605205B2 - データ処理装置および処理方法 - Google Patents
データ処理装置および処理方法 Download PDFInfo
- Publication number
- JP3605205B2 JP3605205B2 JP31296595A JP31296595A JP3605205B2 JP 3605205 B2 JP3605205 B2 JP 3605205B2 JP 31296595 A JP31296595 A JP 31296595A JP 31296595 A JP31296595 A JP 31296595A JP 3605205 B2 JP3605205 B2 JP 3605205B2
- Authority
- JP
- Japan
- Prior art keywords
- subsection
- main section
- memory address
- data processing
- address
- 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
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/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明はデータ処理の分野に関する。特に、本発明はデータメモリのさまざまな部分へのアクセスを制御するメモリマネジメントコントローラを有するデータ処理システムに関する。
【0002】
【従来の技術】
データメモリのさまざまな部分へのアクセスを制御するメモリマネジメントコントローラ/メモリマネジメントユニット/MMUを組み込んだデータ処理システムを提供することが知られている。所望しない限り別のタスクからのデータを変更することができないようにタスクを分離することが望ましいマルチタスク処理システムにおいてこのようなメモリマネジメントユニットは特に有用である。これにより1つのタスク内の問題が別のタスクへ広がってそれを改変することが抑制されるため信頼度が高まる。
【0003】
代表的なメインフレームコンピュータについてこのような保護を実施する場合、どのタスクが物理的メモリのどのエリアへのアクセスを有するかを定義するデータが中央処理装置の外部のランダムアクセスメモリに保持することができるページテーブル定義に記憶される。また、(アドバンストRISCマシン社製)ARM600等の集積回路にオンチップメモリマネジメントユニットを組み込むことができる。このようなオンチップ法ではメモリマネジメントユニットデータへのオフチップアクセスの必要性を回避することにより動作速度が増し中央処理装置コアを備えた集積回路の外部にデータメモリを付加することによる複雑化や費用の問題が回避される。中央処理装置コアを備えた集積回路の外部に付加回路素子を設ける必要性を回避することはサイズおよび費用が重要となる埋込コントローラ等の応用において特に重要である。
【0004】
メモリマネジメントユニットの設計における重要な要因はメモリアクセスを制御することができるアドレスリゾルーションである。例えば、システムのデータメモリは4kバイトセクションへ分割することができ、4kバイトセクション内の各アドレスへのアクセスは共通ベースで管理される、すなわち、各セクションについてそのセクションへのアクセスを有するタスクと提供されるアクセスのタイプとは別々に定義される。したがって、データメモリの各4kバイトセクションについて1組のアクセスコントロールパラメータを記憶する必要がある。
【0005】
データメモリを独立に管理することができる小さいサイズのセクションへ分割することによりデータメモリへのアクセス制御に高度のアドレスリゾルーションを提供することが望ましい場合もある。例えば、データメモリが直接マッピングされた入出力位置もしくは別々に処理すべきクリティカルコントロールパラメータを記憶するメモリセクションを表す場合にこのような小ブロックが適切である。このような状況に対処するには256バイトのセクションを有するリゾルーションとすることが望ましい。
【0006】
これとは対照的に、(例えば、プリンタ内のデータを定義するフォント等の)固定プログラム命令すなわちデータを記憶するリードオンリメモリへのアクセスの場合には、関連する大量のデータは粗いレベルのリゾルーションで制御できればよい。この場合、4Mバイトセクションでアクセスを制御するのが適切である。
【0007】
このような競合要求に対処する従来の方法はメモリマネジメントユニットにシステムの全アドレス空間内で所望される最小セクションサイズに対処できるリゾルーションを持たせることである、すなわち、いくつかのエリアを256バイトの細密なアドレスリゾルーションで制御する必要がある場合、全アドレス空間がこのようなリゾルーションで制御される。その結果、全アドレス空間に対するアクセスコントロールパラメータを保持するのに大量の記憶装置を必要とするという不利を招くことになる。大量のアクセスコントロールパラメータを記憶する必要性により必要な集積回路のサイズが増大するという不利を招くアクセスコントロールパラメータのオンチップ記憶の場合特にそうである。集積回路のサイズが増大すると(製造歩留りの低減により)集積回路のコストが増大しかつ(特に、回路サイズを低減するためにダイナミックメモリセルが使用される場合、付加回路素子を駆動する必要があるため)回路の消費電力が増大する。
【0008】
【発明が解決しようとする課題】
本発明はシステム全体のアクセスコントロールパラメータを処理するのに必要なデータ記憶装置の量を増大する不利を招くことなく別々に制御することができるデータメモリセクションのサイズの細密なアドレスリゾルーションの可能性を提供する問題に関連している。
【0009】
【課題を解決するための手段】
本発明の1つの局面からデータ処理装置が提供され、該装置は、
(i)データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶するデータメモリと、
(ii)前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生する手段と、
(iii)前記アクセス要求の処理を制御するメモリマネジメントコントローラと、
を具備し、
(iv)前記メモリマネジメントコントローラは前記アドレス空間を複数の固定サイズメインセクションへ分割し、各メインセクションは固定数のサブセクションを含みサブセクションサイズはメインセクション内で一定であって各メインセクションに対して独立に設定され、
(v)前記メモリマネジメントコントローラは各サブセクションに対して1つ以上のアクセスコントロールパラメータを記憶し、サブセクションの前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の処理が制御される。
【0010】
本発明は各メインセクション内に固定数の可変サイズサブセクションを設けることにより複雑さを増すという不利を招くことなく1つのアドレス空間内にアクセスコントロールの広範に異なるリゾルーションを提供できると認識するものである。この方法により、メインセクション内の固定数のサブセクションに対して小さいサブセクションサイズを使用すると、そのメインセクション内のアドレス空間の大きいエリアが全サブセクションの外側となって有効にアンマップされることを理解されたい。システム内でのこのような連続性の欠如はフィールド内のトレンドと衝突する。しかし、メインセクション内に固定数のサブセクションを設けると各メインセクションに対してどのリゾルーションが選択されるかに無関係にシステムが必要とするアクセスコントロールパラメータの数は一定となる。そのため細密なリゾルーションが選定される場合にアクセスコントロールパラメータに必要な大量の記憶装置が回避される。メモリマップの不連続性は通常欠点と見なされるが、アドレスが広がるトレンドにより利用可能なアドレス空間が大きく増大すれば、アドレス空間の浪費と見なされるものは問題とはならない。
【0011】
本発明は(例えば、構成が固定された埋込コントローラのように)システムの製作中に各メインセクション内のサブセクションのサイズが一定であるような状況で使用することができるが、各々が各メインセクションに対するサブセクションサイズを定義するデータを記憶する複数のメインセクションレジスタを具備する実施例により(例えば、インストールされるRAMサイズのさまざまなオプション等の)システム構成の変化に対処する柔軟性が高められる。
【0012】
サブセクションサイズを定義するデータをメインセクションレジスタ内に記憶することにより一層容易に変更できるようになる。
【0013】
アクセス要求を発生する手段は(例えば、ディスクドライブコントローラからのアクセス要求等の)任意数の形式をとることができることを理解されたい。しかし、前記アクセス要求を発生する手段が中央処理装置コアを具備する実施例に使用するのに本発明は特に適している。
【0014】
前記したように、サブセクションサイズを定義するデータを記憶するためのメインセクションレジスタを設けることができる。これらのメインセクションレジスタは、主要なハードウェアを再設計することなくサブセクションサイズの構成を変化することができるように、ディップスイッチ等の、固定ハードウェアエレメントにより書き込むことができる。しかし、実施例ではサブセクションサイズを定義する前記データはプログラム命令制御の元で前記メインセクションへ書き込まれる。
【0015】
プログラム制御の元でメインセクションレジスタへデータを書き込むことによりユーザは僅かな努力でシステムの構成において高度の柔軟性を有利に得ることができる。
【0016】
プログラム制御の元でメインセクションレジスタへ書き込むことができるようにする際の問題点はプログラム内のバグにより当面の物理的ハードウェア構成を表さない不適切なデータがこれらのメインセクションレジスタへ書き込まれる可能性があることである。メインセクションレジスタ内のデータはシステム全体の動作にとって重要でありデータのこのような改変により重大問点およびデータ損失を生じることがある。
【0017】
この可能性を低減するために、実施例には前記中央処理装置コアとのコプロセッサが含まれており、前記メインセクションレジスタの書き込みは前記コプロセッサにより実行されるプログラム命令の制御の元で行われる。
【0018】
中央処理装置コアではなくコプロセッサがメインセクションレジスタへの書き込みを行えるようにすることによりメインセクションレジスタデータが改変される可能性が低減される。コプロセッサは一般的に命令の明確に定義されたサブセットしか演算しないため、その演算におけるバグおよびメインセクションレジスタへの不適切な書き込みを行う可能性が低くなる。
【0019】
アドレス空間を分割する簡単で有利な方法は前記特定のメモリアドレス内の固定位置を有する1つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションを定義することである。
【0020】
当該メインセクションへマップするこのような固定位置メインセクションビットを有することにより特定のメモリアドレスを簡単にデコードして当該メインセクションしたがってこのメモリアドレスに対するサブセクションサイズを決定することができる。
【0021】
前記特定のメモリアドレス内の可変位置を有する1つ以上のサブセクションビットを与えて前記特定のメモリアドレスを含むサブセクションを定義することが好ましい。サブセクションのサイズが変動する場合には、このような可変位置サブセクションビットによりサブセクションは各メインセクションのアドレス空間内で隣接配置することができる。
【0022】
サブセクションビットが特定のメモリアドレス内で位置が変動する場合には、前記特定のメモリアドレスを含むメインセクションに対するサブセクションサイズに応じて前記特定のメモリアドレス内から前記デコードするサブセクションビットを選定するためのバレルシフタが特に効率的な実施例により提供される。
【0023】
サブセクションサイズに応じてサブセクションビットの高速選定を行うのにバレルシフターは特に適している。
【0024】
メモリマネジメントコントローラにより利用されるアクセスコントロールパラメータはプログラム実行中に修正できることが望ましい比較的ダイナミックなデータである。したがって、実施例により各々が各サブセクションに対する前記1つ以上のアクセスコントロールパラメータを記憶する複数のサブセクションレジスタが提供される。
【0025】
アクセスコントロールパラメータをダイナミックに修正することができる最も簡便な方法は前記1つ以上のアクセスコントロールパラメータがプログラム命令制御の元で前記サブセクションレジスタへ書き込まれるようにすることである。
【0026】
メインセクションレジスタ内に記憶されるデータとは対照的に、サブセクションレジスタ内のデータはデバイスの構成にとって重要性は低く規則的に修正される可能性が高い。したがって、前記中央処理装置コアにより実行されるプログラム命令の制御の元で前記サブセクションレジスタへの書き込みを行うことが望ましい。
【0027】
前記サブセクションレジスタが前記メインセクションビットおよび前記サブセクションビットに応答して前記特定のメモリアドレスに対する前記アクセスコントロールパラメータを読み取るようにアドレスされる実施例において所与特定のメモリアドレスに対する適切なサブセクションレジスタの選定を簡便に達成することができる。
【0028】
前記したように、本発明によりシステムのメモリマップへある程度の非連続性が導入される。したがって、未定義エリアへメモリアクセスがなされるという特有の危険性が存在する。この問題に対抗するために、実施例により任意のサブセクションの外側の特定のメモリアドレスへのアクセス要求を検出するアボート信号発生器が提供される。
【0029】
サブセクションの可変サイズによりアドレス空間のさまざまな部分がさまざまな構成において未定義とされる場合には、前記メインセクションビットが前記特定のメモリアドレスの最上位ビットとなり前記サブセクションビットは前記特定のメモリアドレスの下位ビットとなる実施例とされ、前記メインセクションビットおよび前記サブセクションビット間の前記特定メモリアドレスの任意のビットが設定されると前記アボート信号発生器によりアボート信号が発生される。
【0030】
ワイドなアドレスバスを有するプロセッサ内の大量のアドレス空間により1つ以上のメインセクションがリザーブされるシステムが提供される。このようなシステムでは、前記特定のメモリアドレスがリザーブされたメインセクション内にある場合に前記アボート信号発生器がアボート信号を発生することが望ましい。
【0031】
メモリマネジメントコントローラにより利用されるアクセスコントロールパラメータは多くの形式をとることができる。特に好ましいコントロールパラメータはライト要求をライトバッファ内にバッファできるかどうかを示すフラグ、ライト要求をキャッシュメモリへ書き込むことができるかどうかを示すフラグ、および所与のサブセクションへ特定タイプのアクセスを行うのにどのプロセッサ動作モードを許可すべきかを示すフラグを含んでいる。
【0032】
本発明は個別回路部品として実現することができる。しかし、前記したように、本発明は集積回路を含む実施例に使用するのに特に適している。このような実施例では、従来のメモリマネジメントユニットに較べて回路面積の節減が非常に著しい。
【0033】
本発明のもう1つの局面によりデータ処理方法が提供され、該方法は、
(i)データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶し、
(ii)前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生し、
(iii)メモリマネジメントコントローラにより前記アクセス要求の処理を制御する、ステップを含み、
(iv)前記メモリマネジメントコントローラにより前記アドレス空間は複数の固定サイズメインセクションへ分割され、各メインセクションは固定数のサブセクションを含みサブセクションサイズはメインセクション内で一定であって各メインセクションに対して独立に設定され、
(v)前記メモリマネジメントコントローラにより各サブセクションについて1つ以上のアクセスコントロールパラメータが記憶され、サブセクションに対する前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の処理が制御される。
【0034】
【発明の実施の形態】
図1に32ビットシステムに対するアドレス空間マップを示す。アドレス空間は8つの等サイズメインセクションすなわちチャンクへ分割される。8つのチャンクはChunk0からChunk7までである。本実施例では奇数番のチャンクはリザーブされる。最上位メインセクション(Chunk0)はメモリアドレス00000000から1FFFFFFF(16進)までである、すなわち、32Mバイトである。
【0035】
各チャンクは16のサブセクションすなわちグレインを含んでいる。グレインサイズはチャンク間で変動することがある、すなわちChunk0は256バイトの各グレインを含むことができ、Chunk2は1Mバイトのグレインを含んでいる。グレインはチャンク内の最下位アドレスから上へ連続的に伸びている。最上位グレインの頂部境界はそのチャンクのグレインサイズに従って位置が変動する。頂部グレインの最上位境界とチャンク内の最上位アドレス間のアドレス空間エリアは未使用かつ未保護である。
【0036】
図2にChunk0を2つの代替構成で示し、1つは256バイトグレインでありもう1つは1kバイトグレインである。256バイトグレインの場合には、最下位グレインはアドレス00000000から000000FFまでである。他のグレインはメモリ位置00000FFFにおける最上位グレインの最上位アドレスまで連続的に続く。このグレインサイズはここに記載する特定実施例によりサポートされる最小グレインサイズである。他の実施例ではより小さいグレインサイズが可能である。小さいグレインサイズは入出力アドレス空間に対処するメモリもしくは小型オンチップランダムアクセスメモリのチャンクに適切である。
【0037】
図2には各々が1kバイトのグレインサイズを有するグレインにより構成されたChunk0であるアドレス空間の同じメインセクションも示されている。この構成では、最下位グレインはアドレス00000000から000003FFまでである。最上グレイン内の最上位アドレスはメモリアドレス00003FFFである。アドレス空間の00004000および1FFFFFFF間のエリアは未使用かつ未保護である。
【0038】
図3にメモリマネジメントユニットの一部を示す。全体機能レベルにおいて、メモリマネジメントユニットは特定のアドレスva[31:0]を受信し当該アクセスがバッファ可能か、キャッシュ可能か、もしくはアボートすべきか、を示す信号をそのアドレスへ戻す。これを達成するために、メモリマネジメントユニットはデータ処理システムの状態を示すいくつかの入力も要求しこのような状態変数に依存する適切な出力を発生する。
【0039】
仮想アドレスva[31:29]の最上位3ビットにより仮想アドレスのあるチャンクが指定される。これらの3ビットは有効なチャンクのいずれがアクセスされているかを示す4ビット出力もしくは3ビットが図1に示すアドレス空間の1つのリザーブされたセクション内のアドレスを示す場合のチャンクアボート信号を発生するように働くチャンクデコーダ10へ入力される。有効なチャンクがアクセスされているものとすると、チャンクデコーダ10から出力されるビットの1つがハイとなる。これにより各々がそのチャンクに対するグレインサイズを示す3ビットコードを記憶する4つのチャンクレジスタ12の中の1つが選定される。選定されたチャンクレジスタ12に記憶されている3ビットコードはグレインデコーダ14へ通される。
【0040】
グレインデコーダ14はアクセスされるチャンクのグレインサイズを指定するその3ビット入力を取り込んでマッピングしその出力である8ビットラインの1つをロー値となるように制御する。グレインデコーダ14からの残りの7ビットライン出力はハイのままである。さまざまな3ビットチャンクレジスタコードをその対応するグレインサイズと共に表1に示す。
【0041】
【表1】
【0042】
グレインデコーダ14からの出力はバレルシフタ16へ送られる。ロー値を有するグレインデコーダ14からのビットライン出力は当該ビットラインに一緒に接続されたゲートを有するバレルシフタ16内の4個の電界効果型トランジスタをオン(すなわち、導電)とする。特定アドレスva[25:8]の18ビットが入力としてバレルシフタ16へ送られる。バレルシフタ16はこれらの18ビットの中から4ビットを出力として選定する。どの4ビットを選定するかはグレインデコーダ14からのどのビット出力がローであるかによって決まる。
【0043】
表1にグレインサイズが記載されており、選定される4ビットはアクセスされるアドレスに対するグレイン番号(Grain#)を表す。256バイトのグレインサイズについて考える。この場合、16のグレインにより占有される各チャンク内のアドレス空間はアドレスビットva[11:0]に対応するものである。これらのアドレスビットのうち、4ビットva[11:8]は16グレインのうちアドレスがその中にあるものを表し、8ビットva[7:0]は当該グレイン内の特定のメモリ位置を表す。したがって、バレルシフタ16により4ビットva[11:8]がグレイン番号として選定される。
【0044】
前記したオペレーションにより当該アドレスを含むチャンクを指定する4ビット出力がチャンクデコーダ10から発生され、当該グレインを与える4ビットグレイン番号がバレルシフタ16から発生される。したがって、メモリアドレス空間内の全てのグレインの中から、個別のグレインが識別されている。チャンクデコーダ10からの4ビットおよびバレルシフタ16からの4ビットが、1ブロックのグレインレジスタ20内の64個の4ビットレジスタから適切な1個を選定する、レジスタセレクタ18へ入力される。グレインレジスタブロック20内の各4ビットレジスタが当該メモリのグレインに対するアクセスコントロールパラメータを表す4ビットデータを記憶している。1ビットはそのグレイン内のデータがバッファ可能であるかを示し、1ビットはそのグレイン内のデータがキャッシュ可能であるかを示し、2ビットap[1:0]はそのグレイン内のデータへアクセスするのにシステムがどの動作モードでなければならないかを指定するのに使用されるフラグである。データがキャッシュ可能であるかバッファ可能であるかを示すフラグはメモリマネジメントユニットから直接出力される。フラグap[1:0]はモードデコーダ22へ送られてさらに処理される。
【0045】
モードデコーダ22は他にもいくつかのフラグ入力を受信する。チャンクデコーダ10からのチャンクアボート信号は特定アドレスva[31:0]がアドレス空間のリザーブされたチャンク内にあるかどうかを示す。フラグspvはプロセッサが現在スーパーバイザモードで作動しているかどうかを示す。フラグwNrはアクセスがリードアクセスであるかライトアクセスであるかを示す。フラグsおよびrがコプロセッサにより設定されてモードデコーダ22への他方の入力の処理方法を修正する能力がユーザへ提供される。表2にモードデコーダ22への入力をモードデコーダからのアボート信号出力へマッピングする様子を示す。
【0046】
【表2】
【0047】
表2にはチャンクアボート信号は含まれない。このチャンクアボート信号は他の入力から得られる結果とORされて全体アボート信号出力が発生される。
【0048】
グレインサイズを定義するチャンクレジスタ12の内容がコプロセッサの制御の元で汎用システムデータバスCdata[31:0]を介して設定される。グレインサイズはシステム構成の機能でありパワーアップによるシステムの初期化時のみ設定すればよい。この機能を実施するコプロセッサを使用すれば主中央処理装置コアが誤動作中にこれらの値を改変する可能性が低減される。
【0049】
これに対して、グレインレジスタ20に記憶されたアクセスコントロールパラメータは中央処理装置コアで実行されるプログラム命令によって変化し作動中にも変化することがある。したがって、グレインレジスタ20内に記憶されるアクセスコントロールパラメータは中央処理装置コアの制御の元で汎用データバスCdata[31:0]を介して設定される。
【0050】
32ビットメモリアドレス内のビットを使用してグレインサイズを変える様子を図4に示す。例Aは1kバイトグレインの場合を示す。この場合、0−9ビットはグレイン内のアドレスを表す。13−10ビットはグレイン番号を表す、すなわち、図3のバレルシフタ16により選定され出力されるのは13−10ビットである。最上位3ビット、31−29ビット、はチャンク番号を表す。28−14ビットはそのグレインサイズを有する各チャンク内のグレイン外側のアドレス空間を表し未使用未保護アドレス空間である。この未使用未保護アドレス空間へアクセスしようとする試みは検出されアボートとなる。
【0051】
図4の例Bは1つのグレインが1Mバイトのサイズを有する場合に対応する。この場合、19−0ビットはグレインアドレスに対応し23−20ビットはグレイン番号に対応する。チャンク番号はやはり最上位3ビット、31−29ビット、により与えられる。
【0052】
例Cは256バイトのグレインサイズに対応する。この場合、7−0ビットがグレインアドレスに対応し、11−8ビットがグレイン番号に対応し31−29ビットがチャンク番号に対応する。
【0053】
最後に、例Dは4Mバイトのグレインサイズに対応する。この場合、グレインアドレスは21ビットから0ビットまでであり、グレインアドレスは25−22ビットの中にありチャンクアドレスはやはり31−29ビット中にある。4Mバイトのグレインサイズは本実施例でサポートされる最大サイズであるが(表1参照)、チャンク内のアドレス空間はまだ完全には充填されない。28−26ビットは未使用である。
【0054】
図5に図3の回路の動作を示す。この場合、それぞれ256バイト、1kバイト、4Mバイト、および256kバイトのグレインサイズを有するチャンク0,2,4,および6によりメモリが構成される。これはチャンクレジスタ12内に記憶されたさまざまな3ビットコードを反映している(表1参照)。
【0055】
本実施例において、アドレス400039BC(16進)へのアクセスが試みられる。このアドレス(va[31:29])の最上位3ビットは010である。これはChunk2に対応する。チャンクデコーダ10はこれらの3ビットをデコードして001の3ビットコードをグレインデコーダ14へ出力するチャンクレジスタ12の中の適切なレジスタへアクセスする。
【0056】
グレインデコーダ14は3ビットコード001をデコードしてメモリアドレスva[13:10]の4ビットに対応するビットラインをローとする。したがって、これらの4ビットが全アドレスva[31:0]から選別されバレルシフタ16の出力は4ビットグレイン番号1110を有するようになる。
【0057】
チャンクデコーダ10の前記アクションおよびグレインデコーダ14とバレルシフタ16の組合せアクションによりチャンク番号およびグレイン番号がレジスタセレクタ18へ送られその(第2のチャンクに対応する)第2のバンクからレジスタ番号E(16進)が選出される。選定されたレジスタを黒で示す。次に選定されたグレインレジスタからの4つのアクセスコントロールパラメータが選定されたグレインレジスタから出力される。モードデコーダ22が選定されたグレインレジスタからの2ビットap[1:0]を受信し他の入力と共にデコードしてアボート信号を発生する。キャッシュ可能およびバッファ可能フラグは選定されたグレインレジスタから直接読み出される。
【0058】
図6にメモリアドレス00000919(16進)へのアクセスを示す。このアドレスはChunk0内にある。チャンクレジスタはChunk0に対する3ビットグレインサイズコード000を保持している。これはグレインデコーダ14によりデコードされてバレルシフタ16がva[11:8]ビットをグレイン番号として選定するようにされる。この場合、グレイン番号の4ビットは1001である。レジスタセレクタ18はチャンク仕様およびグレイン仕様に応答して第1バンクの16個のレジスタの中のChunk0に対応するレジスタ9を選定する。
【0059】
図7にアドレス830CE06Aへのアクセスを示す。このアドレスはChunk4内にある。Chunk4は4Mバイトのグレインサイズを有している。このグレインサイズはグレインデコーダ14へ送られる3ビットコード111により表される。グレインデコーダ14およびバレルシフタ16はグレイン番号を表す4ビットva[25:22]を一緒に選定する。これらのビットは1100である。したがって、グレイン番号およびチャンクによりグレインレジスタ20の第3バンクからグレインレジスタC(16進)が選定される。
【0060】
最後に、図8にアドレスC0078AF5へのメモリアクセスを示す。このアドレスはChunk6内にある。Chunk6のグレインサイズは256kバイトである。したがって、グレイン番号はva[21:18]ビット、すなわち0001、として選定される。1グレイン以内ではしたがって、グレインレジスタ20の第4バンクが選定される。
【0061】
図9に集積回路24を示す。集積回路24は中央処理装置コア26、メモリマネジメントユニット28、内部データキャッシュ30、ライトバッファ32およびコプロセッサ34を含んでいる。これらの機能ユニットはデータバスCdata[31:0]、仮想アドレスバスva[31:0]および物理的アドレスバスpa[31:0]により連結されている。中央処理装置コア26は仮想アドレスva[31:0]をメモリマネジメントユニット28へ通す。メモリマネジメントユニットは図3、図5、図6、図7および図8に関して検討したように仮想アドレスva[31:0]を分析する。この分析に応答して、メモリマネジメントユニット28はキャッシュ可能信号C、バッファ可能信号Bおよびアボート信号Aを出力する。キャッシュ可能信号Cは内部データキャッシュ30へ通される。バッファ可能信号Bはライトバッファ32へ通される。3つの信号は全て中央処理装置コア26へ通される。
【0062】
コプロセッサ34はデータバスCdata[31:0]に接続されていて通常のコプレッシング機能を実施しさらに初期化されるとシステムのグレインサイズ指定コードをチャンクレジスタ12へ書き込むことができるようにされる。
【0063】
図3に示すチャンクデコーダのチャンクアボート信号を発生するアクションにより実現されないチャンクへのメモリアクセスの試みが検出されアボートされる。
【0064】
メモリマネジメントユニット28は仮想アドレスの実アドレスへのマッピングも行う。
【0065】
図10に有効チャンク内のグレインの最上位アドレスとそのチャンクの頂部間のメモリアドレスへのメモリアクセスの試みを検出する機構を示す。このようなメモリアクセスはグレイン番号の頂部とチャンク番号の底部間で少なくとも1つのビットがハイであるメモリアドレスへのアクセスに対応する。チャンク番号の底部は常にva[28]ビットでありグレインアドレスの頂部は(256バイトグレインに対する)va[12]ビットから(4Mバイトグレインに対する)va[26]ビットの間で2ビットステップ変化する。これらの任意のビットの設定をORゲート36により検出することができる。各ビットはブランキング回路38を介してORゲート36へ送られる。現在検出されたグレインデコーダ14からのグレインサイズに応答して、これらの各ブランキング回路38は16のグレイン内の有効なグレインアドレスビットに対応するビットの通過を阻止する。グレインアドレス空間の頂部よりも上のビットだけがORゲート36へ通すことを許される。これらのビットのいずれかが設定されると、アボート信号が発生される。このアボート信号はチャンクデコーダ10からのチャンクアボート信号およびモードデコーダ22からの任意のアボート信号と共にORされて複合アボート信号が発生される。
【0066】
添付図を参照して本発明の実施例について詳細に説明してきたが、本発明はこれらの精密な実施例に限定はされず、当業者ならば特許請求の範囲に明記された本発明の範囲および精神を逸脱することなくさまざまな変更および修正が可能であると思われる。
【図面の簡単な説明】
【図1】32ビットアドレス空間のメモリマップを示す図。
【図2】サイズの異なるサブセクションを有するアドレス空間のメインセクションを示す図。
【図3】メモリマネジメントユニットの一部を示す図。
【図4】サイズの異なるサブセクションに対するアドレス内のビット空間の配分を示す図。
【図5】サイズの異なるサブセクションを含むメインセクションを有する図3のシステムの動作を示す図。
【図6】サイズの異なるサブセクションを含むメインセクションを有する図3のシステムの動作を示す図。
【図7】サイズの異なるサブセクションを含むメインセクションを有する図3のシステムの動作を示す図。
【図8】サイズの異なるサブセクションを含むメインセクションを有する図3のシステムの動作を示す図。
【図9】メモリマネジメントユニットを含むさまざまな機能ユニットを有する集積回路を示す図。
【図10】メインセクション内の最上位サブセクションよりも上のアドレス空間のエリアへの有効なメモリアクセスの試みを検出する機構を示す図。
【符号の説明】
10 チャンクデコーダ
12 チャンクレジスタ
14 グレインデコーダ
16 バレルシフタ
18 レジスタセレクタ
20 グレインレジスタ
24 モードデコーダ
26 中央処理装置コア
28 メモリマネジメントユニット
30 内部データキャッシュ
32 ライトバッファ
34 コプロセッサ
36 ORゲート
38 ブランキング回路
Claims (20)
- データ処理装置であって、
(イ)データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶するデータメモリと、
(ロ)前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生する手段と、
(ハ)前記アクセス要求の処理を制御するメモリマネジメントコントローラと、
を具備し、
(ニ)前記メモリマネジメントコントローラは前記アドレス空間を複数の固定サイズメインセクションへ分割し、各メインセクションが固定数のサブセクションを含みサブセクションのサイズはメインセクション内で一定であって各メインセクションについて独立に設定され、
(ホ)前記メモリマネジメントコントローラは各サブセクションについて1つ以上のアクセスコントロールパラメータを記憶しており、サブセクションに対する前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の処理が制御される、データ処理装置。 - 請求項1記載の装置であって、該装置は各々が各メインセクションのサブセクションサイズを定義するデータを記憶する複数のメインセクションレジスタを具備する、データ処理装置。
- 請求項1記載の装置であって、前記アクセス要求発生装置は中央処理装置コアを具備する、データ処理装置。
- 請求項2記載の装置であって、サブセクションサイズを定義する前記データはプログラム命令制御の元で前記メインセクションレジスタへ書き込まれる、データ処理装置。
- 請求項4記載の装置であって、前記中央処理装置コアとのコプロセッサを具備し、前記メインセクションレジスタは前記コプロセッサにより実行されるプログラム命令の元で書き込まれる、データ処理装置。
- 請求項1記載の装置であって、前記特定のメモリアドレス内の固定位置を有する1つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションが定義される、データ処理装置。
- 請求項1記載の装置であって、前記特定のメモリアドレス内の可変位置を有する1つ以上のサブセクションビットにより前記特定のメモリアドレスを含むサブセクションが定義される、データ処理装置。
- 請求項7記載の装置であって、該装置は前記特定のメモリアドレスを含むメインセクションに対するサブセクションのサイズに従って前記特定のメモリアドレス内からデコードする前記サブセクションを選定するバレルシフタを具備する、データ処理装置。
- 請求項1記載の装置であって、該装置は各々が各サブセクションに対する前記1つ以上のアクセスコントロールパラメータを記憶する複数のサブセクションレジスタを具備する、データ処理装置。
- 請求項9記載の装置であって、前記1つ以上のアクセスコントロールパラメータはプログラム命令制御の元で前記サブセクションレジスタへ書き込まれる、データ処理装置。
- 請求項10記載の装置であって、前記アクセス要求発生手段は中央処理装置コアを具備し、前記サブセクションレジスタは前記中央処理装置コアにより実行されるプログラム命令の制御の元で書き込まれる、データ処理装置。
- 請求項9記載の装置であって、前記特定のメモリアドレス内の固定位置を有する1つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションが定義され、前記特定のメモリアドレス内の可変位置を有する1つ以上のサブセクションビットにより前記特定のメモリアドレスを含むサブセクションが定義され、前記サブセクションレジスタは前記メインセクションビットおよび前記サブセクションビットに応答して前記特定のメモリアドレスに対する前記アクセスコントロールパラメータを読み取るようにアドレスされる、データ処理装置。
- 請求項1記載の装置であって、該装置は任意のサブセクションの外側の特定のメモリアドレスへのアクセス要求を検出するアボート信号発生器を具備する、データ処理装置。
- 請求項13記載の装置であって、前記特定のメモリアドレス内の固定位置を有する1つ以上のメインセクションビットにより前記特定のメモリアドレスを含むメインセクションが定義され、前記特定のメモリアドレス内の可変位置を有する1つ以上のサブセクションビットにより前記特定のメモリアドレスを含むサブセクションが定義され、前記メインセクションビットは前記特定のメモリアドレスの最上位ビットであり前記サブセクションビットは前記特定のメモリアドレスの下位ビットであり、前記アボート信号発生器は前記メインセクションビットと前記サブセクションビットとの間の前記特定のメモリアドレスの任意のビットがセットされる場合にアボート信号を発生する、データ処理装置。
- 請求項13記載の装置であって、1つ以上のメインセクションがリザーブされ、前記アボート信号発生器は前記特定のメモリアドレスがリザーブされたメインセクション内にある場合にアボート信号を発生する、データ処理装置。
- 請求項1記載の装置であって、該装置はライトバッファを具備し、前記1つ以上のアクセスコントロールパラメータは前記ライトバッファを経由して前記特定のメモリアドレスへのライト要求を送ることができるかを示すフラグを含む、データ処理装置。
- 請求項1記載の装置であって、該装置はキャッシュメモリを具備し、前記1つ以上のアクセスコントロールパラメータは前記特定のメモリアドレスへのライト要求を前記キャッシュメモリ書き込むことができるかを示すフラグを含む、データ処理装置。
- 請求項1記載の装置であって、前記1つ以上のアクセスコントロールパラメータは1つ以上のフラグを含みそれらは前記装置の現在の動作モードを示す1つ以上のモードビットと論理的に結合して前記アクセス要求の進行を許可すべきかを決定する、データ処理装置。
- 請求項1記載の装置であって、前記装置は集積回路である、データ処理装置。
- データ処理方法であって、該方法は、
(イ)データメモリのアドレス空間内の各メモリアドレスにデータ語を記憶するステップと、
(ロ)前記データメモリ内の特定のメモリアドレスに記憶されたデータ語へのアクセス要求を発生するステップと、
(ハ)メモリマネジメントコントローラにより前記アクセス要求の処理を制御するステップと、を含み、
(ニ)前記メモリマネジメントコントローラは前記アドレス空間を複数の固定サイズメインセクションへ分割し、各メインセクションが固定数のサブセクションを含みサブセクションのサイズはメインセクション内で一定であって各メインセクションに対して独立に設定され、
(ホ)前記メモリマネジメントコントローラは各サブセクションについて1つ以上のアクセスコントロールパラメータを記憶し、サブセクションに対する前記アクセスコントロールパラメータは前記メモリマネジメントコントローラにより使用されて前記サブセクション内の特定のメモリアドレスへのアクセス要求の進行が制御される、データ処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB95128609 | 1995-06-23 | ||
GB9512860A GB2302604B (en) | 1995-06-23 | 1995-06-23 | Data memory access control |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0916462A JPH0916462A (ja) | 1997-01-17 |
JP3605205B2 true JP3605205B2 (ja) | 2004-12-22 |
Family
ID=10776587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31296595A Expired - Fee Related JP3605205B2 (ja) | 1995-06-23 | 1995-11-30 | データ処理装置および処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5802598A (ja) |
JP (1) | JP3605205B2 (ja) |
GB (1) | GB2302604B (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3766188B2 (ja) * | 1997-08-22 | 2006-04-12 | 沖電気工業株式会社 | 論理フォーマット変換方法およびデータ保存媒体 |
US6088777A (en) * | 1997-11-12 | 2000-07-11 | Ericsson Messaging Systems, Inc. | Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages |
US6033955A (en) * | 1998-09-23 | 2000-03-07 | Advanced Micro Devices, Inc. | Method of making flexibly partitioned metal line segments for a simultaneous operation flash memory device with a flexible bank partition architecture |
US6496901B1 (en) * | 1999-09-22 | 2002-12-17 | Storage Technology Corporation | Mapping variable size data blocks into a fixed block structure |
GB2393270B (en) * | 2002-09-19 | 2005-07-27 | Advanced Risc Mach Ltd | Executing variable length instructions stored within a plurality of discrete memory address regions |
KR100528967B1 (ko) * | 2002-12-18 | 2005-11-15 | 한국전자통신연구원 | 가변 길이의 패킷 저장을 위한 메모리 관리 장치 및 방법 |
US7551636B2 (en) * | 2003-07-10 | 2009-06-23 | Computer Associates Think, Inc. | System and method for buffering variable-length data |
US7082075B2 (en) * | 2004-03-18 | 2006-07-25 | Micron Technology, Inc. | Memory device and method having banks of different sizes |
US7447847B2 (en) * | 2004-07-19 | 2008-11-04 | Micron Technology, Inc. | Memory device trims |
FR2890200A1 (fr) * | 2005-08-25 | 2007-03-02 | St Microelectronics Sa | Procede de configuration d'un espace memoire divise en zones memoire |
US9164686B2 (en) * | 2007-06-29 | 2015-10-20 | Seagate Technology, Llc | Virtual storage space with cyclical wrapping grid function |
CN101426099B (zh) * | 2007-10-31 | 2010-08-25 | 晨星半导体股份有限公司 | 数字电视系统及数字电视中处理数据信号的方法 |
US7908455B2 (en) * | 2008-02-27 | 2011-03-15 | Microchip Technology Incorporated | Low overhead memory management system and method |
FR2929729A1 (fr) * | 2008-04-03 | 2009-10-09 | Alveol Technology Sarl | Dispositif de gestion de la memoire d'un environnement informatique |
US8555026B2 (en) | 2010-09-06 | 2013-10-08 | Lsi Corporation | Methods and systems for storing variable width stack elements in a single memory stack |
GB2568301B (en) | 2017-11-13 | 2020-05-13 | Advanced Risc Mach Ltd | Address space access control |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4613953A (en) * | 1983-04-22 | 1986-09-23 | Ncr Corporation | Paging register for memory devices |
DE3502147A1 (de) * | 1984-01-23 | 1985-08-08 | Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung |
EP0259967B1 (en) * | 1986-08-01 | 1994-03-23 | Fujitsu Limited | Directory memory |
JPS63220342A (ja) * | 1987-03-10 | 1988-09-13 | Fujitsu Ltd | ブロツクアクセス方式 |
GB8908861D0 (en) * | 1989-04-19 | 1989-06-07 | Rca Licensing Corp | Apparatus and method for addressing memory |
JPH0666056B2 (ja) * | 1989-10-12 | 1994-08-24 | 甲府日本電気株式会社 | 情報処理システム |
US5317711A (en) * | 1991-06-14 | 1994-05-31 | Integrated Device Technology, Inc. | Structure and method for monitoring an internal cache |
-
1995
- 1995-06-23 GB GB9512860A patent/GB2302604B/en not_active Expired - Fee Related
- 1995-10-02 US US08/538,291 patent/US5802598A/en not_active Expired - Lifetime
- 1995-11-30 JP JP31296595A patent/JP3605205B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB9512860D0 (en) | 1995-08-23 |
JPH0916462A (ja) | 1997-01-17 |
GB2302604A (en) | 1997-01-22 |
US5802598A (en) | 1998-09-01 |
GB2302604B (en) | 2000-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0979456B1 (en) | Memory access protection | |
US5721874A (en) | Configurable cache with variable, dynamically addressable line sizes | |
JP3605205B2 (ja) | データ処理装置および処理方法 | |
US6381668B1 (en) | Address mapping for system memory | |
US7877572B2 (en) | Data access in a processor for virtual machines | |
US6122708A (en) | Data cache for use with streaming data | |
JPH04233047A (ja) | コンピュータシステム中において展開されるメモリアドレスをメモリアドレス領域について決定する装置 | |
US20060149911A1 (en) | Data processing apparatus having memory protection unit | |
US5956751A (en) | Computer memory management system using physical segmentation space allocation | |
JPH0719426B2 (ja) | デイスク制御装置 | |
JPS607301B2 (ja) | コンピュ−タ・システム | |
US7318114B1 (en) | System and method for dynamic memory interleaving and de-interleaving | |
US5987581A (en) | Configurable address line inverter for remapping memory | |
US6378050B1 (en) | Information processing apparatus and storage medium | |
US5127096A (en) | Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes | |
US5835973A (en) | Instruction processing unit capable of efficiently accessing the entire address space of an external memory | |
JPH09325913A (ja) | 半導体記憶装置 | |
US6023750A (en) | Microcontroller having dedicated hardware for memory address space expansion via auxilliary address signal generation | |
KR100960095B1 (ko) | 마이크로컨트롤러 명령어 셋트 | |
JPH10293684A (ja) | コンピュータシステムおよびその立ち上げ制御方法 | |
US20050268021A1 (en) | Method and system for operating a cache memory | |
US5873128A (en) | Data processing system with dynamic address translation function | |
US6654646B2 (en) | Enhanced memory addressing control | |
KR920003845B1 (ko) | 개인용 컴퓨터의 사용자를 위한 rom의 영역 확장 시스템 | |
JPH09505428A (ja) | ページアドレスモードを有するマイクロコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040826 |
|
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: 20040917 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041001 |
|
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: 20081008 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081008 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091008 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101008 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111008 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |