JPS61148551A - アドレス変換方式 - Google Patents

アドレス変換方式

Info

Publication number
JPS61148551A
JPS61148551A JP59270878A JP27087884A JPS61148551A JP S61148551 A JPS61148551 A JP S61148551A JP 59270878 A JP59270878 A JP 59270878A JP 27087884 A JP27087884 A JP 27087884A JP S61148551 A JPS61148551 A JP S61148551A
Authority
JP
Japan
Prior art keywords
address
conversion
translation
entry
control register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP59270878A
Other languages
English (en)
Inventor
Shizuo Goto
志津雄 後藤
Toyohiko Kagimasa
豊彦 鍵政
Seiichi Yoshizumi
吉住 誠一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP59270878A priority Critical patent/JPS61148551A/ja
Priority to US06/810,189 priority patent/US4876646A/en
Publication of JPS61148551A publication Critical patent/JPS61148551A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、情報処理装置のアドレス変換方式に係り、特
に階層構造を持つ多段階のアドレス変換テーブルを用い
る場合に好適なアドレス変換方式〔発明の背景〕 従来の情報処理装置のアドレス変換方式には、階層構造
の変換テーブルを用いるものが多い。階層構造を用いる
理由は、アドレス変換テーブルを柔軟に構築できること
である。すなわち、階層構造にしないと、変換テーブル
を連続した領域に確保しなければならないし、どのプロ
グラムに対しても全アドレス範囲に対する変換テーブル
が必要となる1階層構造にすることにより、個々のプロ
グラム毎にそれがアクセスするアドレス範囲をカバーす
る変換テーブルを作成すればよいし、動的にアクセス範
囲が変化する場合にも、追加が簡単にできる。従来2段
階の変換テーブルが用いられてきたが、アドレス空間を
拡張すれば、それに見合うような多段階の変換テーブル
が必要となる。
例えば、アドレスの上限値を2al  lから263−
1に拡大する場合には、5段階程度の変換テーブルが必
要となる。その場合、アドレス変換のためのメモリ・フ
ェッチ回数が2回から5回に増大し、変換速度が低下す
るという問題が生じる。
〔発明の目的〕
本発明の目的は、アドレス変換のためのメモリ・フェッ
チ回数を減少し、アドレス変換速度の向上を実現する方
式を提供することにある。
〔発明の概要〕
仮想アドレスの上限値の拡張は、情報処理装置のハード
ウェア、ソフトウェアに大きな影響を与えるため、徐々
に拡張していくのではなく、一度に大巾な拡張が行われ
るのが普通である。しかし実際に必要なアドレス空間の
大きさは徐々にしか増大しない、特に、従来プログラム
は従来のアドレス空間の大きさで十分動作できる。
アドレス空間の拡張に伴い、アドレス変換の階層構造が
多段階になっても、プログラムの実行に最低限必要なア
ドレス変換テーブルのみ作成し、参照することができれ
ば、アドレス変換のためのメモリ・フェッチ回数は最少
にできることになる。
そのために、アドレス変換テーブルが何段階まで作成さ
れているかを表わすレベル情報をアドレス変換のために
用いる制御レジスタ内に記録しておく。そしてアドレス
変換の際には当該レベル情報の値に従ってフェッチする
アドレス変換テーブルの個数を制御することにより、必
要な回数だけのメモリ・フェッチが行われることになり
、アドレス変換の処理時間を短縮することができる。
なお、アドレス拡張以前のアドレス範囲で動作していた
プログラムの場合には、制御レジスタのレベルはOにな
っており、従来と同様、2段階のアドレス変換テーブル
のフェッチで済み、従来に比べて性能低下は生じない。
〔発明の実施例〕
以下1本発明の一実施例を、第1図〜第4図を用いて説
明する。
第1図は、拡張された仮想アドレスの構成を表わしたも
のである。従来は23′ビツト〜2°ビツトの31ビツ
トのみからなっており、230〜2z。
ビットがセグメントテーブルのインデックスであり、2
1〜212がページテーブルのインデックスであり、2
12〜2°がバイトインデックスである。
従来はこれのみでセグメント・テーブルとページ・テー
ブルの2段階の変換テーブルが使用されていた0本実施
例では、さらに64ビツトの仮想アドレスに拡張され、
拡張された部分として3段階の変換テーブル(以下夫々
のテーブルをベーストテーブル、ベース2・テーブル、
ベース3・テーブルと呼ぶことにする。)が追加された
例を示しているが、本発明は他のアドレス構成や変換テ
ーブル段階に対しても適用できる。
第2図は、変換のために使用する制御レジスタ20の構
成を示す、プログラムの実行に最低限必要な変換テーブ
ルの中の最上位の変換テーブルの先頭アドレス21とそ
のレベル22を保持している。
第3図は、アドレス変換の概念図を示す、制御レジスタ
21のレベル部分22の内容がデコーダ40によりデコ
ードされ、セレクタ31,32゜33.34の制御に使
用される。
レベル22がベース2テーブルを表わす場合、すなわち
レベル=2の場合を説明する。制御レジスタの先頭アド
レス部20は各レベルの加算器61〜64に供給され、
当該加算器61〜64には、さらに仮想アドレス10内
の対応するインデックス部11〜14が供給され、(先
頭アドレスの内容)+(イ・ンデツクス部の内容)×(
テーブルのエントリ長)という計算が行われる。レベル
のデコーダ40により、セレクタ31〜34のうちセレ
クタ32のみオンとなり、他はオフになる。
デコーダ40の詳細は公知の技術で容易に実現できるの
で省略する。上記加算の結果は、メモリ・フェッチ・ア
ドレスとして使用され、B2テーブル内のエントリ52
のフェッチが行われる。フェッチした内容52とB3イ
ンデックス13の内容は加算器66の入力となり、B3
テーブル内のエントリ53のフェッチのためのアドレス
が計算される。すなわち、(エントリ52の内容)+(
B3インデックス13の内容)×(テーブルのエントリ
長)の計算が行われ、セレクタ33を通して83テーブ
ル内のエントリ53のフェッチが行われる。
以下、同様にしてB3テーブル、セグメント・テーブル
、ページ・テーブル内の各エントリが順次フェッチされ
、ページ・テーブル内のエントリ55がそのまま実アド
レス70の上位部分71を構成する。また、実アドレス
70の下位部分72は、仮想アドレス10内のバイト・
インデックス16の内容そのままにより構成される1以
上のようにして、仮想アドレスから実アドレスへのアド
レス変換が実施される。
以上、アドレス変換の概要を説明した。
次に、アドレス変換の処理の流れを第4図を用いて説明
する1本発明はハードウェアによって実現することもフ
ァームウェア(マイクロ・プログラム)によって実現す
ることもソフトウェアによって実現することも可能であ
る0本実施例ではファームウェアによる実現の例として
、第4図に処理フローを示す。
(1)制御レジスタ内のレベル情報22を得る。レベル
情報の値によって分岐する。すなわち、レベルが0の時
(5)へ、1の時(4)へ、2の時(3)へ、それぞれ
分岐する。分岐先で制御レジスタ内の先頭アドレス情報
が使用される(ステップ101)。
(2)制御レジスタ内の先頭アドレス情報21を得、そ
の内容+(仮想アドレス10内のB1インデックス11
の値)X(Blテーブル・エントリ長)の計算を行う(
ステップ102)。その結果の値をアドレスとしてB1
テーブル内の該当エントリ51をフェッチする。フェッ
チした値はB2テーブルの先頭アドレスを指す(ステッ
プ103)。
(3)制御レジスタ内の先頭アドレス情報21または処
理(2)で得た情報が82テーブルの先頭アドレスを指
す、その内容+(仮想アドレス10内のB2インデック
ス12の値)X(B2テーブル・エントリ長)の計算を
行う(ステップ104)。
その結果の値をアドレスとしてB2テーブル内の該当エ
ントリ52をフェッチする。フェッチし、た値はB3テ
ーブルの先頭アドレスを指す(ステップ105)。
(4)制御レジスタ内の先頭アドレス情報21またーは
処理(3)で得た情報が83テーブルの先頭アドレスを
指す。その内容+(仮想アドレス10内の83インデツ
クス13の値)X(B3テーブル・エントリ長)の計算
を行う(ステップ106)。
その結果の値をアドレスとしてB3テーブル内の該当エ
ントリ53をフェッチする。ツーエッチした値はセグメ
ント・テーブルの先頭アドレスを指す(ステップ107
)。
(5)制御レジスタ内の先頭アドレス情報21または処
理(4)で得た情報がセグメント・テーブルの先頭アド
レスを指す。その内容+(仮−想アドレス10内のセグ
メント・インデックス14の値)×(セグメント・テー
ブル・エントリ長)の計算を行う(ステップ108)、
その結果の値をアドレスとしてセグメント・テーブル内
の該当エントリ54をフェッチする。フェッチした値は
ページ・テーブルの先頭アドレスを指す(ステップ10
9)。
(6)処理(5)で得たページ・テーブルの先頭アドレ
ス+(仮想アドレス10内のページ・インデックス15
の値)×(ページ・テーブル・エントリ長)の計算を行
う(ステップ110)。その結果の値をアドレスとして
ページ・テーブル内の該当エントリ55をフェッチする
(ステップ111)。
(7)フェッチした内容は、実アドレス70内の上位部
分71を構成する。下位部分72は、仮想アドレス変換
内のバイト・インデックス16の内容がそのまま設定さ
れる(ステップ112)。
以上のようにして、仮想アドレス10が実アドレス70
に変換される。
なお、各変換テーブルのエントリの下部には無効ビット
(I)が設けられている。各テーブル・エントリをフェ
ッチした際、無効ビット(I)が0の時は上記処理が続
行され、1の時はそれに続く処理は実施されない代りに
「アドレス変換例外」という割込み条件を発生する。こ
の処理についてはすでに公知なので、説明は省略する。
以上のようにして、アドレス変換が実施されるが、本実
施例によれば、必要最少限のメモリ・フェッチ回数でも
ってアドレス変換が実施でき、変換速度を向上すること
ができる。
〔発明の効果〕
本発明によれば、拡張されたアドレス構成におけるlt
i’層梼造のアドレス変換テーブルを必要最少限の段数
に抑えることができるという効果がある。
これによって、アドレス変換テーブルのためのエリアを
削減できるとともに、アドレス変換の速度を向上するこ
とができる。
【図面の簡単な説明】
第1図は仮想アドレスの構成図、第2図はアドレス変換
のための制御レジスタの構成図、第3図はアドレス変換
概念図、第4図はアドレス変換処理の流れ図である。 10・・・仮想アドレス構成、20・・・制御レジスタ
構成、31〜34・・・選択回路、40・・・デコーダ
、51〜55・・・変換テーブル・エントリ、61〜第
1図 篤 2 凹 21      lt fJ 3  図 葛 4 図

Claims (1)

    【特許請求の範囲】
  1. 仮想アドレスから実アドレスへのアドレス変換を階層構
    造の変換テーブル群を用いて行う情報処理装置において
    、プログラムの実行に必要最小限のアドレス変換テーブ
    ルの中で最上位に位置する変換テーブルの先頭アドレス
    と当該変換テーブルが上記階層構造の中に位置する段階
    を表わすレベル情報を保持するための制御レジスタを設
    け、アドレス変換に際しては、該制御レジスタのレベル
    情報に従い、該制御レジスタの示すアドレス変換テーブ
    ルを先頭に順次、該テーブル以下のアドレス変換テーブ
    ルをアクセスしてアドレス変換を実施することを特徴と
    する情報処理装置のアドレス変換方式。
JP59270878A 1984-12-24 1984-12-24 アドレス変換方式 Pending JPS61148551A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP59270878A JPS61148551A (ja) 1984-12-24 1984-12-24 アドレス変換方式
US06/810,189 US4876646A (en) 1984-12-24 1985-12-18 Data processor having multilevel address translation tables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59270878A JPS61148551A (ja) 1984-12-24 1984-12-24 アドレス変換方式

Publications (1)

Publication Number Publication Date
JPS61148551A true JPS61148551A (ja) 1986-07-07

Family

ID=17492223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59270878A Pending JPS61148551A (ja) 1984-12-24 1984-12-24 アドレス変換方式

Country Status (2)

Country Link
US (1) US4876646A (ja)
JP (1) JPS61148551A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008515093A (ja) * 2004-09-30 2008-05-08 インテル コーポレイション 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2902402B2 (ja) * 1987-09-30 1999-06-07 三菱電機株式会社 データ処理装置
US5008811A (en) * 1988-02-10 1991-04-16 International Business Machines Corp. Control mechanism for zero-origin data spaces
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
GB2251102B (en) * 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
EP0506236A1 (en) * 1991-03-13 1992-09-30 International Business Machines Corporation Address translation mechanism
EP0519101A1 (de) * 1991-06-19 1992-12-23 Siemens Aktiengesellschaft Verfahren zur Adressierung von Datensätzen eines Datenbanksystems
JPH08202624A (ja) * 1995-01-27 1996-08-09 Kofu Nippon Denki Kk アドレス変換制御回路
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US7395406B2 (en) * 2005-05-12 2008-07-01 International Business Machines Corporation System and method of large page handling in a virtual memory system
US7509474B2 (en) 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US8819088B2 (en) * 2005-07-14 2014-08-26 International Business Machines Corporation Implementing storage management functions using a data store system
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9280488B2 (en) 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9740623B2 (en) * 2013-03-15 2017-08-22 Intel Corporation Object liveness tracking for use in processing device cache

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5171648A (ja) * 1974-12-18 1976-06-21 Panafacom Ltd
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
US4084227A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
JPS5448449A (en) * 1977-09-26 1979-04-17 Hitachi Ltd Virtual addressing sustem
JPS5489444A (en) * 1977-12-27 1979-07-16 Fujitsu Ltd Associative memory processing system
US4168541A (en) * 1978-09-25 1979-09-18 Sperry Rand Corporation Paired least recently used block replacement system
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
US4654777A (en) * 1982-05-25 1987-03-31 Tokyo Shibaura Denki Kabushiki Kaisha Segmented one and two level paging address translation system
US4569018A (en) * 1982-11-15 1986-02-04 Data General Corp. Digital data processing system having dual-purpose scratchpad and address translation memory
US4531200A (en) * 1982-12-02 1985-07-23 International Business Machines Corporation Indexed-indirect addressing using prefix codes
DE3483489D1 (de) * 1983-04-13 1990-12-06 Nec Corp Speicherzugriffseinrichtung in einem datenverarbeitungssystem.
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
US4691277A (en) * 1984-10-24 1987-09-01 International Business Machines Corp. Small instruction cache using branch target table to effect instruction prefetch

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008515093A (ja) * 2004-09-30 2008-05-08 インテル コーポレイション 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上
JP4772795B2 (ja) * 2004-09-30 2011-09-14 インテル コーポレイション 大アドレス容量に及ぶ変換テーブルを用いた、アドレス変換の性能向上

Also Published As

Publication number Publication date
US4876646A (en) 1989-10-24

Similar Documents

Publication Publication Date Title
JPS61148551A (ja) アドレス変換方式
JPH05257803A (ja) 仮想記憶空間管理方法及びアドレス計算装置
JPH0326414B2 (ja)
JPH0241053B2 (ja)
JPH0248931B2 (ja)
JPH0454652A (ja) マイクロコンピュータ
US20030028754A1 (en) Data processor using indirect register addressing
JPH0195347A (ja) アドレス変換方式
JP5186802B2 (ja) マイクロプロセッサ
JPS601655B2 (ja) デ−タプリフェツチ方式
JPH04104350A (ja) マイクロプロセッサ
JP2743947B2 (ja) マイクロプログラム制御方式
JP3644614B2 (ja) 動的中間コード処理装置
JPH04160448A (ja) アドレス変換方式
JP3563724B2 (ja) マイクロプロセッサ、エミュレータおよび命令セット解釈方法
JPS603656B2 (ja) 計算機のメモリ拡張方式
JPH0325644A (ja) 多重仮想アドレス空間制御装置
JPH02272654A (ja) キャッシュメモリ装置
JPS59117620A (ja) 計算機システム
JP2000029687A (ja) 中央処理装置上でデ―タをパック及びアンパックする方法及び装置
JPH05250156A (ja) Riscプロセッサ
JPS63226734A (ja) メモリ制御方式
JPH02294752A (ja) 記憶アドレス変換制御方式
JPH0460836A (ja) 先行制御装置
JPH01151096A (ja) ダイナミックメモリのリフレッシュ方法