JPH06231047A - アドレス変換方法および装置 - Google Patents

アドレス変換方法および装置

Info

Publication number
JPH06231047A
JPH06231047A JP5018335A JP1833593A JPH06231047A JP H06231047 A JPH06231047 A JP H06231047A JP 5018335 A JP5018335 A JP 5018335A JP 1833593 A JP1833593 A JP 1833593A JP H06231047 A JPH06231047 A JP H06231047A
Authority
JP
Japan
Prior art keywords
address
page
virtual
virtual address
link table
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.)
Withdrawn
Application number
JP5018335A
Other languages
English (en)
Inventor
Hitoshi Miyaoku
人至 宮奥
Hiromasa Takahashi
宏政 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5018335A priority Critical patent/JPH06231047A/ja
Priority to DE69323863T priority patent/DE69323863T2/de
Priority to EP93307387A priority patent/EP0610618B1/en
Priority to US08/123,474 priority patent/US5584005A/en
Publication of JPH06231047A publication Critical patent/JPH06231047A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】64ビット仮想アドレスを実アドレスに変換す
るアドレス変換方法および装置に関し、32ビット仮想
アドレスとの互換性を保ちつつ、更に高速なアドレス変
換を行う。 【構成】64ビット仮想アドレスは、セングメント番号
60、ページインデックス62およびページオフセット
64で構成する。まず、セグメント番号の上位をハッシ
ュ生成回路34に入力してリンクテーブル22のハッシ
ュアドレスを求め、これにセグメント番号の下位をオフ
セットとして加えたアドレスでリンクテーブル22を引
き、仮想アドレスのタグ情報、ページテーブル26のベ
ースアドレスを得る。次に得られた仮想アドレスのタグ
情報と元のセグメント番号を比較し、一致した場合には
ページテーブル26のベースアドレスが正しいとし、こ
のベースアドレスにページインデックス62をオフセッ
トとして加えたテーブルアドレスでページテーブル26
を引いてページフレーム番号を求め、元のページオフセ
ット64を組合わせて実アドレスとする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想メモリシステムに
おいて仮想アドレスを実アドレスに変換するアドレス変
換方法および装置に関し、特に、64ビット仮想アドレ
スを実アドレスに変換するアドレス変換方法および装置
に関する。近年、コンピュータシステムの高速化の要求
に伴い、データやアドレスの64ビット化が要求されて
いる。このため、いくつかの64ビットの仮想アドレス
を実アドレスに変換するアドレス変換方法が提供されて
いるが、32ビットの仮想アドレスとの互換が容易に取
れ、且つ高速に変換できるアドレス変換方法はなく、3
2ビット仮想アドレスの互換性とアドレス変換の高速性
を両立した64ビット仮想アドレスのアドレス変換方法
が要求されている。
【0002】
【従来の技術】従来、32ビット以下の仮想アドレスを
使用した従来の仮想メモリシステムにおいては、例えば
32ビットの仮想アドレスを例にとると、図12に示す
ように、セグメント番号(Segment Number)104、ペ
ージインデックス(Page Index)62およびページオフ
セット(Page Offset )64に分けて構成している。
【0003】ここでセグメント番号104は、仮想空間
をプログラムの構成要素である可変長ブロックであるセ
グメント単位に分割した場合の位置を示し、ページイン
デックス62はセグメント領域をペーシ単位に分割した
場合の位置を示し、更にページオフセット64は、実空
間に対応したページ領域内の位置を示す。仮想アドレス
から実アドレスへの変換は、図13に示すように、セグ
メントテーブル(Segment Table )108とページテー
ブル(Page Table)112を引くことによって実アドレ
スを得る2段階変換方法が一般に用いられている。
【0004】すなわち、セグメントテーブルベースレジ
スタ(Segment Table Base Register )106からセグ
メントテーブル108のベースアドレスを得て、このベ
ースアドレスに仮想アドレスのセグメント番号104を
オフセットとして加えて検索することで、ページテーブ
ル112のベースアドレスを得る。次に、セグメントテ
ーブル108から得られたベースアドレスに仮想アドレ
ス内のページインデックス62をオフセットとして加え
てページテーブル112を検索することで、ページフレ
ーム番号(Page Frame Number )を得る。最終的に、ペ
ージテーブル112から求めたページフレーム番号に仮
想アドレス内のページオフセット64を組合せたものが
実アドレスになる。
【0005】図14は図13のアドレス変換方法による
仮想空間と実空間の関係を示す。仮想空間114は、ま
ずセグメント116−1,116−2,・・・に分割さ
れ、各セグメントは例えばセグメント116−2に示す
ように、実空間122に対応した大きさのページ118
−1〜118−4に分割されている。図12に示した3
2ビットで指定される仮想空間114内の任意の仮想ア
ドレスは、セグメントテーブル108およびページテー
ブル112を使用した2段階変換で実アドレスに変換さ
れ、主記憶装置(MSU)に確保されている実空間12
2の中の物理アドレスを示す。
【0006】ここで、仮想アドレスのビットフィールド
を図12のように、セグメント番号104を10ビッ
ト、ページインデックス62を10ビット、ページオフ
セット64を12ビットとすると、ページの大きさはペ
ージオフセット64の12ビットで決まる4KBとな
り、セグメントテーブル108およびページテーブル1
12のサイズは、セグメント番号104およびページイ
ンデックス62の各10ビットで決まる1Kエントリと
なる。
【0007】このような従来のアドレス変換方法を、そ
のまま32ビットを越える仮想アドレス、例えば64ビ
ットの仮想アドレスを使用する仮想メモリシステムに適
用する場合には、例えば図15に示すビット構成とす
る。即ち、セグメント番号104を26ビット、ページ
インデックス62を26ビット、ページオフセット64
を12ビットに分けたビット構成としている。
【0008】ここでページの大きさは12ビットのペー
ジオフセット64で決まる4KBとなり、セグメントテ
ーブル108およびページテーブル112のサイズは、
セグメント番号104およびページインデックス62の
各26ビットで決まる64Mエントリとなる。従って、
セグメントテーブルおよびページテーブルが非常に大き
くなり、主記憶装置内に確保される実アドレス空間で、
これらのテーブルが占める割合が大きく、メモリシステ
ムとして実際に使用できる実アドレス空間が小さくなっ
てしまう。
【0009】このような問題に対処した64ビットアド
レス変換方法として、図16に示すものがある。図16
のアドレス変換方法は、仮想アドレスを仮想アドレスビ
ット(Virtual Address Bits)124とページオフセッ
トビット(Page Offset Bits)126に分けている。仮
想アドレスビット124はハッシュ生成回路128によ
ってハッシュアドレスに変換され、このハッシュアドレ
スによりハッシュ検索テーブル(Hash Anchor Table )
132を検索する。
【0010】ハッシュ検索テーブル132からはページ
フレームテーブルポインタ(Page Frame Table Pointe
r)134が得られ、このポインタ134でページフレー
ムテーブル135を引くと、ページフレームテーブルエ
ントリ(Page Frame Table Entry)136が得られる。
このページフレームテーブルエントリ(PFTE)13
6には、仮想アドレス、ページフレーム番号(Page Fra
me Number )及びリンクアドレス(Link Address)が含
まれている。
【0011】そこで仮想アドレスの中の仮想アドレスビ
ット124とページフレームテーブルエントリ(PFT
E)136内の仮想アドレスとを比較し、一致した場合
には、その中のページフレーム番号142に仮想アドレ
ス内のページオフセットビット126を組合せたものが
求める実アドレス26となる。一致しなかった場合に
は、リンクアドレスを用いて次のページフレームテーブ
ルエントリ(PFTE)を求め、一致する仮想アドレス
が見つかるまで同様の処理を繰り返す。
【0012】仮想アドレスビット124とページフレー
ムテーブルエントリ(PFTE)136内の仮想アドレ
スとが一致しないのは、ハッシュ生成回路128におい
て異なった仮想アドレスビットであっても同じハッシュ
アドレスが生成された場合であり、この場合には、所定
の規則に従って生成したリンクアドレスに対応するペー
ジフレームテーブルエントリ(PFTE)を格納し、リ
ンクポインタで結び付けている。
【0013】図17は図16のアドレス変換方法におけ
る仮想空間と実空間の関係を示した説明図である。この
場合、仮想空間146は、実空間152に対応したサイ
ズのページ148−1,148−2,・・・に分割され
ている。この仮想空間146内の任意の仮想アドレス
は、ハッシュ生成回路128、ハッシュ検索テーブル1
32およびページフレームテーブル135を使用して実
アドレスに変換され、主記憶装置(MSU)に確保され
ている実メモリ空間152の中の物理アドレスを示す。
【0014】
【発明が解決しようとする課題】しかし、図16に示し
た従来のアドレス変換方法にあっては、図17の仮想空
間146に示すように、ページより1段上位のセグメン
トという概念がなくなっており、図14に示した2段階
のテーブル変換を行うセグメントという概念をもった従
来の32ビット仮想アドレスの場合の仮想空間114と
の場合と大きく異なるため、互換性を保つのが困難であ
るという問題があった。
【0015】また仮想アドレスの比較を行うまでに主記
憶装置上にあるハッシュ検索テーブルとページフレーム
テーブルの2つのテーブルを引いているため、2回の主
記憶アクセスが必要であり、アドレス変換が正しいかど
うか分かるまでに時間がかかるという問題があった。本
発明の目的は、仮想空間にセグメントの概念を取り入れ
て32ビット以下の仮想アドレスとの互換性を保ちつ
つ、更に高速なアドレス変換を行うことのできる32ビ
ットを越える仮想アドレス、例えば64ビット仮想アド
レスの仮想メモリシステムで使用するアドレス変換方式
を提供する。
【0016】
【課題を解決するための手段】図1は本発明の原理説明
図である。本発明の変換対象となる32ビットを越える
仮想アドレス、例えば64ビットの仮想アドレスは、 セングメント番号60 ページインデックス62 ページオフセット64 から構成される。アドレス変換の手順は、まず、仮想ア
ドレスの一部であるセグメント番号60の上位ビットを
ハッシュ生成回路34に入力してリンクテーブル22の
ベースアドレスとなるハッシュアドレスを求める。この
ハッシュアドレスにセグメント番号の下位ビットをオフ
セットとして加算したテーブルアドレスでリンクテーブ
ル22を引き、仮想アドレスのタグ情報、ページテーブ
ル26のベースアドレスおよび補助リンクテーブル24
のポインタを含むリンクテーブルエントリ(Link Table
Entry)を得る。
【0017】リンクテーブル22から得られたリンクテ
ーブルエントリ(LTE)内の仮想アドレスのタグ情報
(セグメント番号の上位ビット)と元のセグメント番号
60の一部(上位ビット)を比較し、一致した場合には
リンクテーブルエントリ(LTE)内のページテーブル
26のベースアドレスが正しいことが判る。ここで、一
致しなかった場合にはリンクテーブルエントリ(LT
E)内のリンクポインタによって補助リンクテーブル2
4を引き、仮想アドレスのタグ情報、ページテーブル2
6のベースアドレスおよび補助リンクテーブル24のポ
インタを含む補助リンクテーブルエントリ(Auxiliary
Link Table Entry)を得る。この補助リンクテーブルエ
ントリ(ALTE)はリンクテーブル22から得たリン
クテーブルエントリ(LTE)と全く同じ構成であり、
元のセグメント番号60と一致する仮想アドレスのタグ
情報が見つかって正しいページテーブル26のベースア
ドレスが得られるまで、補助リンクテーブル24を引き
直す。
【0018】リンクテーブル22または補助リンクテー
ブル24から正しいページテーブル26のベースアドレ
スが得られたら、ベースアドレスに仮想アドレスのペー
ジインデックス62をオフセットとして加えたテーブル
アドレスでページテーブル26を引いて、ページテーブ
ルエントリ(Page Table Entry)を得る。このページテ
ーブルエントリ(PTE)はページフレーム番号(Page
Frame Number )を含み、最終的にページフレーム番号
(PFN)に仮想アドレスのページオフセット64を加
えたものが実アドレスになる。
【0019】更に、プロセスごとに仮想空間と実空間を
もつ仮想メモリシステムを対象とした本発明のアドレス
変換方法及び装置にあっては、ハッシュ生成回路34で
プロセスIDと仮想アドレスのセグメント番号60の一
部(上位ビット)を入力してリンクテーブル22のベー
スアドレスとなるハッシュアドレスを求める。またリン
クテーブル22から得たリンクテーブルエントリ(LT
E)には、更にプロセスIDが含まれており、仮想アド
レスのタグ情報と元のセグメント番号の一致に加え、元
のプロセスIDとの一致が得られたときにリンクテーブ
ルエントリ(LTE)のページテーブル26のベースア
ドレスが正しいことが判る。この点は補助リンクテーブ
ル24の検索についても同様である。
【0020】ここで仮想アドレスは64ビットの仮想ア
ドレスであり、この64ビット仮想アドレスのページイ
ンデックス62およびページオフセット64を既存の3
2ビット仮想アドレスと同一に構成して32ビット仮想
アドレスとの互換性を保つ。更に、補助リンクテーブル
を用いた処理はソフトウェアで実現し、アドレス変換機
構のハードウェアを低減してもよい。
【0021】
【作用】このような構成を備えた本発明のアドレス変換
方法および装置は、従来の32ビット以下の仮想アドレ
スと同様なビット構成で32ビットを越える仮想アドレ
スを採用しているため、セグメントの概念を取り入れて
ることができ、従来の32ビットの仮想アドレスを用い
た仮想メモリシステムとの互換性を保つことが容易にで
きる。
【0022】また、ハッシュアドレスに基づいてテーブ
ルを1つ引いた直後にアドレス比較を行ってテーブルか
ら得られた下位テーブルのベースアドレスが正しいかど
うかの判定を行っているため、2つのテーブルを引いて
からアドレス比較を行う従来のハッシュアドレスを用い
たアドレス変換に比べ、より高速のアドレス変換を実現
することができる。
【0023】
【実施例】図2は本発明のアドレス変換が適用される計
算機のハードウェア構成を示した説明図である。図2に
おいて、10は中央処理ユニット(CPU)であり、メ
モリ管理ユニット(MMU)16を備えており、メモリ
管理ユニット16内には本発明のアドレス変換を行うア
ドレス変換機構18と変換索引バッファ(TLB)20
を備えている。
【0024】12は主記憶装置(MSU)であり、内部
バス14を介して中央処理ユニット10に接続してい
る。主記憶装置12内にはアドレス変換機構18で使用
するリンクテーブル22,補助リンクテーブル24及び
ページテーブル26を格納している。勿論、主記憶装置
12内には実メモリ空間として使用されるメモリ領域が
設けられており、仮想空間に対応した磁気ディスク装置
等の外部記憶装置から対応するメモリ領域を必要に応じ
てスワッピングする。
【0025】図3は図2の中央処理ユニット10に設け
られたアドレス変換機構18のハードウェア構成の第1
実施例を示した実施例構成図であり、この実施例にあっ
ては64ビットの仮想アドレスのアドレス変換を例にと
っている。図3において、変換対象となる64ビットの
仮想アドレスはセグメント番号保持レジスタ回路28,
ページインデックス保持レジスタ回路30及びページオ
フセット保持レジスタ回路32に保持される。即ち、図
3の実施例で変換対象となる仮想アドレスは図4のビッ
トフォーマットに示すように、42ビットのセグメント
番号60、10ビットのページインデックス62及び1
2ビットのページオフセット64で構成される。
【0026】ここで、ページインデックス62とページ
オフセット64については、図12に示した従来の32
ビット仮想アドレスのビットフォーマットと同じであ
り、セグメント番号60のみが42ビットに拡大してい
る。再び図3を参照するに、セグメント番号保持レジス
タ回路28に続いてはハッシュ生成回路34が設けられ
る。ハッシュ生成回路34は仮想アドレスのセグメント
番号の一部、この実施例にあっては42ビットのセグメ
ント番号60の内の上位28ビットをハッシュパラメー
タとして入力し、ハッシュアドレスを生成する。ハッシ
ュ生成回路34に続いては加算回路36が設けられ、ハ
ッシュ生成回路34で得られたハッシュアドレスとセグ
メント番号保持レジスタ回路28のセグメント番号の下
位14ビットを加算している。
【0027】ここでハッシュ生成回路34で生成するハ
ッシュアドレスは、次のリンクテーブル検索回路38で
検索する図2の主記憶装置12に示したリンクテーブル
22のベースアドレスとなる。また加算回路36でハッ
シュアドレスに加算するセグメント番号60の下位14
ビットはベースアドレスに対するリンクテーブル22の
オフセットとなる。
【0028】リンクテーブル検索回路38は図2に示し
た主記憶装置12に格納しているリンクテーブル22を
加算回路36から得られたテーブルアドレスで引いてリ
ンクテーブルエントリを求める。リンクテーブル検索回
路38によりリンクテーブル22から引いて得られるリ
ンクテーブルエントリには図5に示す情報が含まれる。
【0029】図5において、リンクテーブル22から得
られたリンクテーブルエントリは128ビットのビット
フォーマットで構成され、28ビットの上位セグメント
番号67−1、36ビットのページテーブルベースアド
レス68、16ビットのプロセスID70、21ビット
のフラグ72及び36ビットのリンクポインタ74で構
成される。
【0030】ここで、上位セグメント番号67−1は変
換しようとする仮想アドレスのタグ情報を示すもので、
仮想アドレスにおける42ビットのセグメント番号の内
の上位28ビットを格納している。21ビットのフラグ
72は適宜の制御フラグの領域に使用される。更に、リ
ンクポインタ74は補助リンクテーブル24を引くため
に使用される。尚、プロセスID70は、図3の第1実
施例では使用せず、空き領域となっている。
【0031】再び図3を参照するに、リンクテーブル検
索回路38で得られるリンクテーブル22から得られた
図5に示したリンクテーブルエントリの中の上位セグメ
ント番号67−1は比較回路40に与えられ、セグメン
ト番号保持レジスタ28の上位28ビットのセグメント
番号と比較される。比較回路40で一致出力が得られる
と制御信号を選択回路42に出力し、同時にリンクテー
ブル検索回路38より得られている、そのときのリンク
テーブルエントリの中の図5に示すページテーブルベー
スアドレス68を正しいものとして加算回路50に出力
する。
【0032】加算回路50は選択回路42を経由して得
られたページテーブルベースアドレスにページインデッ
クス保持レジスタ回路30に保持している10ビットの
ページインデックスを加算してテーブルアドレスを作
り、ページテーブル検索回路52により図2に示した主
記憶装置12のページテーブル26を引く。ページテー
ブル26を引くと、図6に示すページテーブルエントリ
が得られる。
【0033】図6のページテーブルエントリは64ビッ
トのビットフォーマットで構成され、上位36ビットに
ページフレーム番号84を格納し、また下位28ビット
にフラグ85を格納している。再び図3を参照するに、
ページテーブル検索回路52によるページテーブル26
の検索で得られた図6に示したページフレーム番号84
は、ページフレーム番号保持レジスタ回路54に保持さ
れる。同時に、ページオフセット保持レジスタ回路56
にはページオフセット保持レジスタ回路32からのペー
ジオフセットを保持し、このページフレーム番号保持レ
ジスタ回路54とページオフセット保持レジスタ回路5
6の保持内容により実アドレスが生成される。
【0034】一方、比較回路40でリンクテーブル検索
回路38によりリンクテーブル22のリンクテーブルエ
ントリから得られた上位セグメント番号とセグメント番
号保持レジスタ回路28からの上位セグメント番号とが
一致しなかった場合には、選択回路44,補助リンクテ
ーブル検索回路46及び比較回路48による図2の主記
憶装置12に設けた補助リンクテーブル24のテーブル
検索が行われる。
【0035】即ち、比較回路40より不一致に対応した
制御信号が選択回路42を経由して選択回路44に与え
られると、そのときリンクテーブル検索回路38で得て
いる図5に示したリンクテーブルエントリの中のリンク
ポインタ74を選択して、補助リンクテーブル検索回路
46により主記憶装置12の補助リンクテーブル24を
引いて補助リンクテーブルエントリを得る。
【0036】補助リンクテーブル24から得られる補助
リンクテーブルエントリは図5に示したリンクテーブル
22のリンクテーブルエントリと全く同じ構成をもって
いる。このため、比較回路48は補助リンクテーブル検
索回路46で補助リンクテーブル24から得られた補助
リンクテーブルエントリの中の仮想アドレスのタグ情報
である上位セグメント番号と、セグメント番号保持レジ
スタ回路28の上位セグメント番号を比較し、一致すれ
ば、このとき得られているページテーブルベースアドレ
スは正しいものとして選択回路42を経由して加算回路
50に出力する。
【0037】補助リンクテーブル検索回路46及び比較
回路48による補助リンクテーブル24の検索処理は、
正しいページテーブルアドレスが得られるまで繰り返し
行われる。尚、補助リンクテーブル24の検索でインバ
リッドが検出された場合には、アドレス変換にエラーが
起きていることから、アドレス変換を中止する。また図
3の加算回路36,50は、OR回路としてもよい。
【0038】図7は図3の実施例による仮想アドレスか
ら実アドレスへの変換機能を示した説明図である。図7
において、まず変換対象となる64ビットの仮想アドレ
ス200が保持され、仮想アドレス200はセグメント
番号60,ページインデックス62及びページオフセッ
ト64で構成される。
【0039】アドレス変換はまず仮想アドレス200の
セグメント番号60の内の上位28ビットの上位セグメ
ント番号60−1をハッシュ生成回路34にハッシュパ
ラメータとして入力し、ハッシュアドレス65を生成す
る。このハッシュアドレス65はリンクテーブル22の
ベースアドレスを与える。次に加算回路36でセグメン
ト番号60の下位14ビットとなる下位セグメント番号
60−2を加算して14ビットのリンクテーブル22に
対するテーブルアドレスを生成する。加算回路36で加
算する下位セグメント番号60−2はハッシュアドレス
65で決まるリンクテーブル22のベースアドレスに対
するオフセットとなる。ここでリンクテーブル22は1
4ビットのテーブルアドレスによるアクセスを受けるこ
とから、エントリ数は16Kとなり、各エントリのビッ
トサイズは128ビットである。
【0040】加算回路36で得られたテーブルアドレス
によりリンクテーブル22を引くと、リンクテーブルエ
ントリ66が得られる。リンクテーブルエントリ66は
図5に示したように、仮想アドレスのタグ情報である上
位セグメント番号67−1,ページテーブルベースアド
レス68及びリンクポインタ74を含んでいる。リンク
テーブル22のリンクテーブルエントリ66内の上位セ
グメント番号67−1は比較回路40に与えられ、仮想
アドレス20の中の上位セグメント番号60−1と比較
され、選択回路42で一致が得られると、リンクテーブ
ルエントリ66の中のページテーブルベースアドレス6
8は正しいものとして加算回路50に出力される。
【0041】一方、比較回路40による比較結果につ
き、選択回路42で不一致であった場合にはリンクテー
ブルエントリ66の中のリンクポインタ74により補助
リンクテーブル24を引いて、補助リンクテーブルエン
トリ76を求める。この補助リンクテーブルエントリ7
6は図5に示したリンクテーブル22のリンクテーブル
エントリ66と同じ構成をもち、その中の上位セグメン
ト番号78−1を比較回路48で仮想アドレス200の
中の上位セグメント番号60−1と比較する。
【0042】この比較により選択回路44で一致が得ら
れると、補助リンクテーブルエントリ76の中のページ
テーブルベースアドレス80は正しいものとして加算回
路50に出力される。また、比較回路48の比較結果で
一致とならなければ補助リンクテーブルエントリ76の
中のリンクポインタを使用して、再度、補助リンクテー
ブル24を引いて次の補助リンクテーブルエントリを求
め、比較回路48で一致結果が得られて正しいページテ
ーブルベースアドレス80が得られるまで補助リンクテ
ーブル24の引き直しを繰り返す。
【0043】リンクテーブル22のリンクテーブルエン
トリから得られた正しいページテーブルベースアドレス
68あるいは補助リンクテーブル24の補助リンクテー
ブルエントリ76から得られた正しいページテーブルベ
ースアドレス80には、加算回路50で仮想アドレス2
00の中のページインデックス62が加算され、ページ
テーブル26のテーブルアドレスを作り出す。尚、加算
回路50は実際には1つの回路であるが、説明を判り易
くするため2つに分けて示している。
【0044】ページテーブル26は加算回路50で得ら
れたテーブルアドレスにより引かれ、ページテーブルエ
ントリ82を得る。このページテーブルエントリ82の
中には、図6に示したようにページフレーム番号84が
含まれており、このページテーブル番号84を48ビッ
トの実アドレス300の上位に保持し、同時に仮想アド
レス200の中のページオフセット64を48ビット実
アドレス300の下位に保持し、実アドレス300を生
成する。
【0045】ここで、ページテーブル26は加算回路5
0からのテーブルアドレスがページインデックス62と
同じ10ビットであることから、エントリ数は1024
となり、各エントリのビットサイズは図6に示したよう
に64ビットである。図8は本発明の第2実施例として
のアドレス変換機構のハードウェア構成の実施例を示し
た実施例構成図であり、この第2実施例にあっては仮想
空間及び実空間をプロセス毎に構成するようにしたこと
を特徴とする。
【0046】図8において、図3の第1実施例と異なる
点は、新たにプロセスを特定するプロセスID保持レジ
スタ回路90を設けた点であり、ハッシュ生成回路34
はハッシュパラメータとしてセグメント番号保持レジス
タ回路28からの上位セグメント番号(28ビット)に
加えて、プロセスID保持レジスタ回路90からの16
ビットのプロセスIDを入力してハッシュアドレスを生
成する。
【0047】またリンクテーブル検索回路38で検索す
る主記憶装置に設けたリンクテーブルから得られるリン
クテーブルエントリには、図5に示したプロセスID7
0が有効データとして格納されている。このため、比較
回路40はリンクテーブル検索回路38によるリンクテ
ーブルの検索で得られたリンクテーブルエントリの中の
上位セグメント番号をセグメント番号保持レジスタ28
の上位セグメント番号と一致するかどうか比較する。同
時に、リンクテーブルエントリから得られたプロセスI
DとプロセスID保持レジスタ回路90からのプロセス
IDとが一致するかどうかを比較する。そしてプロセス
IDと上位セグメント番号の両方の一致が得られたとき
に選択回路42は、そのときリンクテーブル検索回路3
8より得られているリンクテーブルエントリの中のペー
ジテーブルベースアドレスが正しいものとして加算回路
50に出力する。
【0048】選択回路44,補助リンクテーブル検索回
路46及び比較回路48で構成される主記憶装置の補助
リンクテーブル24の検索についても、リンクテーブル
22の場合と同様、補助リンクテーブルエントリにはプ
ロセスIDが有効データとして格納され、また比較回路
48は上位セグメント番号とプロセスIDのそれぞれの
一致結果が得られたときに補助リンクテーブルエントリ
の中のページテーブルベースアドレスを正しいものとし
て加算回路50に出力する。それ以外の点は図3の第1
実施例と同じである。
【0049】図9は図8の第2実施例におけるプロセス
毎に設けられた仮想メモリ空間と実メモリ空間の関係を
示した説明図である。図9の実施例にあっては、プロセ
スID1〜3の3つのプロセスを例にとっており、各プ
ロセス毎に仮想メモリ空間92−1〜92−3を設けて
いる。アドレス変換機構18はプロセスIDで指定され
るそれぞれのアドレス変換処理部94−1〜94−3の
機能により仮想アドレスを実アドレスに変換する。主記
憶装置12上に確保される実空間は各プロセス毎に独立
した実メモリ空間96−1〜96−3として構成されて
いる。
【0050】図10は図8の第2実施例に対応した計算
機装置のハードウェア構成を示した説明図であり、中央
処理ユニット10のメモリ管理ユニット16に設けられ
るアドレス変換機構18は、図9に示したように3つの
プロセス毎のアドレス変換処理部としての機能を実現す
る。また、中央処理ユニット10に対し内部バス14を
介して接続された主記憶装置12上には、3つのプロセ
スに対応してリンクテーブル22−1〜22−3,補助
リンクテーブル24−1〜24−3及びページテーブル
26−1〜26−3が設けられる。
【0051】従って、CPU10は3つのプロセスのア
ドレス変換に競合を生ずることなく並列的に処理でき
る。また、図10の実施例にあっては、中央処理ユニッ
ト10を1台設けているが、複数台としたマルチCPU
構成としてもよい。図11は図8の第2実施例における
64ビット仮想アドレスから実アドレスへのアドレス変
換機能を示した説明図である。
【0052】図11において、変換対象となる64ビッ
ト仮想アドレス200に加えてプロセスID90が保持
され、プロセスID90と仮想アドレス200の中の上
位セグメント番号60−1がハッシュパラメータとして
ハッシュ生成回路34に入力され、リンクテーブル22
のベースアドレスとなるハッシュアドレス65を生成す
る。
【0053】続いて加算回路36でリンクテーブル22
のベースアドレス65に対するオフセットとなる下位セ
グメント番号60−2を加算してテーブルアドレスを生
成し、リンクテーブル22を引いてリンクテーブルエン
トリ66を得る。このリンクテーブルエントリ66には
図5に示したように上位セグメント番号67−1とプロ
セスID70が含まれていることから、比較回路40で
変換しようとする仮想アドレス200の上位セグメント
番号60−1及びプロセスID90と比較し、両者が一
致すればリンクテーブルエントリ66の中のページテー
ブルベースアドレス68は正しいものとして加算回路5
0に出力される。
【0054】また比較回路40における処理でプロセス
IDと上位セグメント番号の少なくともいずれか一方が
不一致であった場合には、リンクテーブルエントリ66
の中のリンクポインタ74により補助リンクテーブル2
4を引いて、補助リンクテーブルエントリ76を求め
る。補助リンクテーブルエントリ76の中の上位セグメ
ント番号78−1とプロセスID98を仮想アドレス2
00の上位セグメント番号60−1及びプロセスID9
0と比較し、両者が一致して正しいページテーブルベー
スアドレス80が得られるまでテーブルを引き直す。
【0055】リンクテーブル22から得られた正しいペ
ージテーブルベースアドレス68またはリンクテーブル
24から得られた正しいページテーブルベースアドレス
80は、加算回路50で仮想アドレス200の中のペー
ジインデックス62をオフセットとして加算してテーブ
ルアドレスを生成し、ページテーブル26を引く。ペー
ジテーブル26からはページテーブルエントリ82が得
られ、ページテーブルエントリ82の中には図6に示し
たようにページフレーム番号84が含まれていることか
ら、これを実アドレス300の上位に格納し、同時に仮
想アドレス200の中のページオフセット64を実アド
レス300の下位に格納し、最終的に求める48ビット
実アドレス300を生成する。
【0056】ここで、図3の第1実施例及び図8の第2
実施例にあっては、補助リンクテーブルを検索する選択
回路44,補助リンクテーブル検索回路46及び比較回
路48をハードウェアで構成しているが、他の実施例と
して、この部分をソフトウェアで実現し、アドレス変換
機構18のハードウェアの負担を削減できるようにして
もよい。
【0057】また、上記の実施例は32ビットを越える
仮想アドレスとして64ビット仮想アドレスを例にとる
ものであったが、36ビット,48ビット,128ビッ
ト等の仮想アドレスであってもよいことは勿論である。
また、仮想アドレスのビットフォーマットを従来の32
ビットの仮想アドレスのビットフォーマットに適合させ
て互換性をとる場合を例にとるものであったが、この点
についても32ビット以下の仮想アドレス、例えば24
ビット仮想アドレス,16ビット仮想アドレスのビット
フォーマットに適合した構成としてもよい。
【0058】また、ハッシュアドレスの生成についてセ
グメント番号の上位28ビットをハッシュパラメータと
して入力してリンクテーブル22のベースアドレスを示
すハッシュアドレスを求め、セグメント番号の残りの下
位14ビットをテーブルベースアドレスに対するオフセ
ットとして加算してリンクテーブル22を引いている
が、必要とするリンクテーブル22のエントリ数に応じ
て、ハッシュパラメータとして入力する上位ビット数及
びオフセットとして使用する下位ビット数は適宜に定め
ることができる。
【0059】
【発明の効果】以上説明してきたように本発明によれ
ば、32ビットを越える例えば64ビットの仮想アドレ
スを用いた仮想メモリシステムにおいて、従来の32ビ
ットの仮想アドレスの仮想メモリシステムと同様の仮想
アドレスを採用することができるため、アドレス空間を
64ビットに拡大しても、従来と同様、セグメントの概
念を取り入れ、従来の32ビット以下の仮想アドレスを
使用した仮想メモリシステムとの互換性を容易に保つこ
とができる。
【0060】また、アドレス変換においてハッシュアド
レスでテーブルを引いた直後に下位のテーブルベースア
ドレスの値が正しいかどうかのアドレス比較を直ちに行
っているため、テーブルを2つ引いてからアドレス比較
を行っている従来のハッシュアドレスを用いたアドレス
変換に比べ、より高速のアドレス変換を実現することが
できる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明が用いられる計算機のハードウェア説明
【図3】本発明によるアドレス変換機構の第1実施例を
示したハードウェア構成図
【図4】本発明による64ビット仮想アドレスのビット
フォーマット説明図
【図5】図7のリンクテーブルエントリ(LTE)の内
容を示した説明図
【図6】図7のページテーブルエントリ(PTE)の内
容を示した説明図
【図7】図3の実施例によるアドレス変換機能の説明図
【図8】本発明のアドレス変換機構の第2実施例を示し
たハードウェア構成図
【図9】図8の実施例におけるプロセスID毎の仮想空
間と実空間の関係を示した説明図
【図10】図8のアドレス変換機構を備えた計算機のハ
ードウェア構成図
【図11】図8の第2実施例によるアドレス変換機能の
説明図
【図12】セグメントの概念を持つ従来の32ビット仮
想アドレスのビットフォーマット説明図
【図13】従来のアドレス変換機構の変換機能を示した
説明図
【図14】図13のアドレス変換における仮想空間と実
空間の関係を示した説明図
【図15】図12の32ビット仮想アドレスを64ビッ
トに拡張した場合のビットフォーマット説明図
【図16】セグメントの概念を持たない従来の64ビッ
ト仮想アドレスのアドレス変換機構の説明図
【図17】図16のアドレス変換における仮想空間と実
空間の関係を示した説明図
【符号の説明】
10:中央処理ユニット(CPU) 12:主記憶装置(MSU) 14:内部バス 16:メモリ管理ユニット(MMU) 18:アドレス変換機構 20:変換索引バッファ(TLB:Translation Looksid
e Buffer) 22,22−1〜22−3:リンクテーブル(Link Tab
le) 24,24−1〜24−3:補助リンクテーブル(Auxi
liary Link Table) 26,26−1〜26−3:ページテーブル(Page Tab
le) 28:セグメント番号保持レジスタ回路 30:ページインデックス保持レジスタ回路 32:ページオフセット保持レジスタ回路 34:ハッシュ生成回路 36,50:加算回路(OR回路) 38:リンクテーブル検索回路 40,48:比較回路 42,44:選択回路 46:補助リンクテーブル検索回路 52:ページテーブル検索回路 54:ページフレーム番号保持レジスタ回路 56:ページオフセット保持レジスタ回路 60:セグメント番号(SN:Segment Number ) 60−1:上位セクメント番号 60−2:下位セグメント番号 62:ページインデックス(Page Index) 64:ページオフセット(Page Offset ) 65:ハッシュアドレス(リンクテーブルベースアドレ
ス:Link Table Base Address) 66:リンクテーブルエントリ(LTE:Link Table En
try ) 67−1,78−1:上位セグメント番号(仮想アドレ
スのタグ情報) 68,80:ページテーブルベースアドレス(PTB:Page
Table Base Address) 70:プロセスID 72,85:フラグ 74:リンクポインタ 76:補助リンクテーブルエントリ(ALTE:Auxilia
ry Link Table Entry ) 84:ページフレーム番号(PFN:Page Frame Numbe
r) 90:プロセスID保持レジスタ回路 92−1〜92−3:仮想メモリ空間 94−1〜94−3:アドレス変換処理部 96−1〜96−3:実メモリ空間

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】仮想アドレスを実アドレスに変換するアド
    レス変換方法に於いて、 仮想空間をセグメント単位に分割し、更に各セグメント
    領域を実空間に対応するページ単位に分割した構造に対
    応して、セグメント番号(60)、ページインデックス
    (62)およびページオフセット(64)で構成された
    32ビットを越える仮想アドレスを変換対象として保持
    する仮想アドレス保持過程と、 前記仮想アドレスの一部をハッシュ生成回路(34)に
    入力してリンクテーブル(22)のベースアドレスとな
    るハッシュアドレスを生成するハッシュ処理過程と、 前記ハッシュアドレスに前記仮想アドレスの一部をオフ
    セットとして加えてリンクテーブル(22)を引き、仮
    想アドレスのタグ情報、ページテーブル(26)のベー
    スアドレス及び補助リンクテーブル(24)の検索に用
    いるリンクポインタを求め、該仮想アドレスのタグ情報
    と前記仮想アドレスの一部を比較して一致した場合に
    は、前記ページテーブル(26)のベースアドレスは正
    しいものとして出力するリンクテーブル検索過程と、 該リンクテーブル検索過程で求めた仮想アドレスのタグ
    情報と前記仮想アドレスの一部が一致しなかった場合
    に、前記リンクポインタにより補助リンクテーブル(2
    4)を引いて次の仮想アドレスのタグ情報、ページテー
    ブルのベースアドレスおよびリンクポインタを求め、正
    しいページテーブル(26)のベースアドレスが求まる
    までリンクポインタに基づく補助リンクテーブル(2
    4)の検索を続ける補助リンクテーブル検索過程と、 前記リンクテーブル検索過程または補助リンクテーブル
    検索過程で求めたページテーブル(26)のベースアド
    レスに仮想アドレスの一部をオフセットとして加えてペ
    ージテーブル(26)を引き、ページフレーム番号を求
    めるページテーブル検索過程と、 該ページテーブル検索過程で求めたページフレーム番号
    に前記仮想アドレスの一部をオフセットとして組合せて
    実アドレスを生成する実アドレス生成過程と、を備えた
    ことを特徴とするアドレス変換方法。
  2. 【請求項2】請求項1記載のアドレス変換方法に於い
    て、前記仮想アドレスは64ビットの仮想アドレスであ
    り、該64ビット仮想アドレスのページインデックス
    (62)およびページオフセット(64)を32ビット
    仮想アドレスと同一に構成して32ビット仮想アドレス
    を用いた仮想メモリシステムとの互換性を保つことを特
    徴とするアドレス変換方法。
  3. 【請求項3】請求項1記載のアドレス変換方法に於い
    て、前記ハッシュ処理過程は、前記仮想アドレス保持過
    程で保持した仮想アドレスのセグメント番号(60)の
    上位の所定ビットを入力してハッシュアドレスを生成す
    ることを特徴とするアドレス変換方法。
  4. 【請求項4】請求項1記載のアドレス変換方法に於い
    て、前記リンクテーブル検索過程は、前記ハッシュアド
    レスに前記セグメント番号(60)の下位の所定ビット
    をオフセットとして加えてリンクテーブル(22)を引
    き、さらにリンクテーブル(22)から求めた仮想アド
    レスのタグ情報を前記セグメント番号(60)の上位の
    所定ビットと比較してページテーブル(26)のベース
    アドレスが正しいか否か判断することを特徴とするアド
    レス変換方法。
  5. 【請求項5】請求項1記載のアドレス変換方法に於い
    て、前記補助リンクテーブル検索過程は、補助リンクテ
    ーブル(24)から求めた仮想アドレスのタグ情報を前
    記セグメント番号(60)の上位の所定ビットと比較し
    てページテーブル(26)のベースアドレスが正しいか
    否か判断することを特徴とするアドレス変換方法。
  6. 【請求項6】請求項1記載のアドレス変換方法に於い
    て、前記ページテーブル検索過程は、前記リンクテーブ
    ル検索過程または補助リンクテーブル検索過程で求めた
    ページテーブル(26)のベースアドレスに、前記仮想
    アドレス保持過程に保持した仮想アドレスのページイン
    デックス(62)をオフセットとして加えてページテー
    ブル(26)を引くことを特徴とするアドレス変換方
    法。
  7. 【請求項7】請求項1記載のアドレス変換方法に於い
    て、前記実アドレス生成過程は、前記ページテーブル検
    索過程で求めたページフレーム番号に、前記仮想アドレ
    ス保持過程で保持した仮想アドレスのページオフセット
    (64)を組合せて実アドレスを生成することを特徴と
    するアドレス変換方法。
  8. 【請求項8】仮想アドレスを実アドレスに変換するアド
    レス変換装置に於いて、 仮想空間をセグメント単位に分割し、更に各セグメント
    領域を実空間に対応するページ単位に分割した構造に対
    応して、セグメント番号(60)、ページインデックス
    (62)およびページオフセット(64)で構成された
    32ビットを越える仮想アドレスを変換対象として保持
    する仮想アドレス保持手段と、 前記仮想アドレスの一部をハッシュ生成回路(34)に
    入力してリンクテーブル(22)のベースアドレスとな
    るハッシュアドレスを生成するハッシュ生成手段と、 前記ハッシュアドレスに前記仮想アドレスの一部をオフ
    セットとして加えてリンクテーブル(22)を引き、仮
    想アドレスのタグ情報、ページテーブル(26)のベー
    スアドレス及び補助リンクテーブル(24)の検索に用
    いるリンクポインタを求め、該仮想アドレスのタグ情報
    と前記仮想アドレスの一部を比較して一致した場合に
    は、前記ページテーブル(26)のベースアドレスは正
    しいものとして出力するリンクテーブル検索手段と、 該リンクテーブル検索手段で求めた仮想アドレスのタグ
    情報と前記仮想アドレスの一部が一致しなかった場合
    に、前記リンクポインタにより補助リンクテーブル(2
    4)を引いて次の仮想アドレスのタグ情報、ページテー
    ブルのベースアドレスおよびリンクポインタを求め、正
    しいページテーブル(26)のベースアドレスが求まる
    までリンクポインタに基づく補助リンクテーブル(2
    4)の検索を続ける補助リンクテーブル検索手段と、 前記リンクテーブル検索手段または補助リンクテーブル
    検索手段で求めたページテーブル(26)のベースアド
    レスに仮想アドレスの一部をオフセットとして加えてペ
    ージテーブル(26)を引き、ページフレーム番号を求
    めるページテーブル検索手段と、 該ページテーブル検索手段で求めたページフレーム番号
    に前記仮想アドレスの一部をオフセットとして組合せて
    実アドレスを生成する実アドレス保持手段と、を備えた
    ことを特徴とするアドレス変換装置。
  9. 【請求項9】請求項8記載のアドレス変換装置に於い
    て、前記仮想アドレスは64ビットの仮想アドレスであ
    り、該64ビット仮想アドレスのページインデックス
    (62)およびページオフセット(64)を32ビット
    仮想アドレスと同一に構成して32ビット仮想アドレス
    を用いた仮想メモリシステムとの互換性を保つことを特
    徴とするアドレス変換装置。
  10. 【請求項10】請求項8記載のアドレス変換装置に於い
    て、前記ハッシュ生成手段は、前記仮想アドレス保持手
    段で保持した仮想アドレスのセグメント番号(60)の
    上位の所定ビットを入力してハッシュアドレスを生成す
    ることを特徴とするアドレス変換装置。
  11. 【請求項11】請求項8記載のアドレス変換装置に於い
    て、前記リンクテーブル検索手段は、前記ハッシュアド
    レスに前記セグメント番号(60)の下位の所定ビット
    をオフセットとして加えてリンクテーブル(22)を引
    き、さらにリンクテーブル(22)から求めた仮想アド
    レスのタグ情報を前記セグメント番号(60)の上位の
    所定ビットと比較してページテーブル(26)のベース
    アドレスが正しいか否か判断することを特徴とするアド
    レス変換装置。
  12. 【請求項12】請求項8記載のアドレス変換装置に於い
    て、前記補助リンクテーブル検索手段は、補助リンクテ
    ーブル(24)から求めた仮想アドレスのタグ情報を前
    記セグメント番号(60)の上位の所定ビットと比較し
    てページテーブル(26)のベースアドレスが正しいか
    否か判断することを特徴とするアドレス変換装置。
  13. 【請求項13】請求項8記載のアドレス変換装置に於い
    て、前記ページテーブル(26)検索手段は、前記リン
    クテーブル検索手段または補助リンクテーブル検索手段
    で求めたページテーブル(26)のベースアドレスに、
    前記仮想アドレス保持手段に保持した仮想アドレスのペ
    ージインデックス(62)をオフセットとして加えてペ
    ージテーブル(26)を検索することを特徴とするアド
    レス変換装置。
  14. 【請求項14】請求項8記載のアドレス変換装置に於い
    て、前記実アドレス保持手段は、前記ページテール検索
    手段で求めたページフレーム番号に、前記仮想アドレス
    保持手段に保持した仮想アドレスのページオフセット
    (64)を組合せて実アドレスを生成することを特徴と
    するアドレス変換装置。
  15. 【請求項15】請求項8記載のアドレス変換装置に於い
    て、前記補助リンクテーブル検索手段をソフトウェアで
    構成したことを特徴とするアドレス変換装置。
  16. 【請求項16】仮想アドレスを実アドレスに変換するア
    ドレス変換方法に於いて、 アドレス変換を行うプロセスのID番号を保持するプロ
    セスID保持過程と、 仮想空間をセグメント単位に分割し、更に各セグメント
    領域を実空間に対応するページ単位に分割した構造に対
    応して、セグメント番号(60)、ページインデックス
    (62)およびページオフセット(64)で構成された
    32ビットを越える仮想アドレスを変換対象として保持
    する仮想アドレス保持過程と、 前記プロセスIDと仮想アドレスの一部をハッシュ生成
    回路(34)に入力してリンクテーブル(22)のベー
    スアドレスとなるハッシュアドレスを生成するハッシュ
    処理過程と、 前記ハッシュアドレスに前記仮想アドレスの一部をオフ
    セットとして加えてリンクテーブル(22)を引き、プ
    ロセスID、仮想アドレスのタグ情報、ページテーブル
    (26)のベースアドレス及び補助リンクテーブル(2
    4)の検索に用いるリンクポインタを求め、該テーブル
    検索で求めたプロセスIDと前記プロセスID保持過程
    で保持したプロセスIDを比較すると共に、該テーブル
    検索で求めた仮想アドレスのタグ情報と前記保持した仮
    想アドレスの一部を比較してそれぞれが一致した場合に
    は、前記ページテーブル(26)のベースアドレスは正
    しいものとして出力するリンクテーブル検索過程と、 該リンクテーブル検索過程で求めた仮想アドレスのタグ
    情報およびプロセスIDにつき少なくともいずれか一方
    が一致しなかった場合に、前記リンクポインタにより補
    助リンクテーブル(24)を引いて次のプロセスID、
    仮想アドレスのタグ情報、ページテーブルのベースアド
    レス、およびリンクポインタを求め、正しいページテー
    ブル(26)のベースアドレスが求まるまでリンクポイ
    ンタに基づく補助リンクテーブル(24)の検索を続け
    る補助リンクテーブル検索過程と、 前記リンクテーブル検索過程または補助リンクテーブル
    検索過程で求めたページテーブル(26)のベースアド
    レスに仮想アドレスの一部をオフセットとして加えてペ
    ージテーブル(26)を引き、ページフレーム番号を求
    めるページテーブル検索過程と、 該ページテール検索過程で求めたページフレーム番号に
    前記仮想アドレスの一部をオフセットとして組合せて実
    アドレスを生成する実アドレス生成過程と、を備えたこ
    とを特徴とするアドレス変換方法。
  17. 【請求項17】請求項16記載のアドレス変換方法に於
    いて、前記仮想アドレスは64ビットの仮想アドレスで
    あり、該64ビット仮想アドレスのページインデックス
    (62)およびページオフセット(64)を32ビット
    仮想アドレスと同一に構成して32ビット仮想アドレス
    を用いた仮想メモリシステムとの互換性を保つことを特
    徴とするアドレス変換方法。
  18. 【請求項18】請求項16記載のアドレス変換方法に於
    いて、前記ハッシュ処理過程は、前記プロセスID保持
    過程で保持したプロセスID番号および前記仮想アドレ
    ス保持過程で保持した仮想アドレスのセグメント番号
    (60)の上位の所定ビットを入力してハッシュアドレ
    スを生成することを特徴とするアドレス変換方法。
  19. 【請求項19】請求項16のアドレス変換方法に於い
    て、前記リンクテーブル検索過程は、前記ハッシュアド
    レスに前記セグメント番号(60)の下位の所定ビット
    をオフセットとして加えてリンクテーブル(22)を引
    き、さらにリンクテーブル(22)から求めた仮想アド
    レスのタグ情報を前記セグメント番号(60)の上位の
    所定ビットと比較してページテーブル(26)のベース
    アドレスが正しいか否か判断することを特徴とするアド
    レス変換方法。
  20. 【請求項20】請求項16のアドレス変換方法に於い
    て、前記補助リンクテーブル検索過程は、補助リンクテ
    ーブル(24)から求めた仮想アドレスのタグ情報を前
    記セグメント番号(60)の上位の所定ビットと比較し
    てページテーブル(26)のベースアドレスが正しいか
    否か判断することを特徴とするアドレス変換方法。
  21. 【請求項21】請求項16のアドレス変換方法に於い
    て、前記ページテーブル(26)検索過程は、前記リン
    クテーブル検索過程または補助リンクテーブル検索過程
    で求めたページテーブル(26)のベースアドレスに、
    前記仮想アドレス保持過程で保持した仮想アドレスのペ
    ージインデックス(62)をオフセットとして加えてペ
    ージテーブル(26)を検索することを特徴とするアド
    レス変換方法。
  22. 【請求項22】請求項16のアドレス変換方法に於い
    て、前記実アドレス生成過程は、前記ページテール検索
    過程で求めたページフレーム番号に前記仮想アドレス保
    持過程で保持した仮想アドレスのページオフセット(6
    4)を組合せて実アドレスを生成することを特徴とする
    アドレス変換方法。
  23. 【請求項23】仮想アドレスを実アドレスに変換するア
    ドレス変換装置に於いて、 アドレス変換を行うプロセスのID番号を保持するプロ
    セスID保持手段と、 仮想空間をセグメント単位に分割し、更に各セグメント
    領域を実空間に対応するページ単位に分割した構造に対
    応して、セグメント番号(60)、ページインデックス
    (62)およびページオフセット(64)で構成された
    32ビットを越える仮想アドレスを変換対象として保持
    する仮想アドレス保持手段と、 前記プロセスIDと仮想アドレスの一部を入力してリン
    クテーブル(22)のベースアドレスとなるハッシュア
    ドレスを生成するハッシュ生成手段と、 前記ハッシュアドレスに前記仮想アドレスの一部をオフ
    セットとして加えてリンクテーブル(22)を引き、プ
    ロセスID、仮想アドレスのタグ情報、ページテーブル
    (26)のベースアドレス、及び補助リンクテーブル
    (24)の検索に用いるリンクポインタを求め、該テー
    ブル検索で求めたプロセスIDと前記プロセスID保持
    過程で保持したプロセスIDを比較すると共に、該テー
    ブル検索で求めた仮想アドレスのタグ情報と前記保持し
    た仮想アドレスの一部を比較してそれぞれが一致した場
    合には、前記ページテーブル(26)のベースアドレス
    は正しいものとして出力するリンクテーブル検索手段
    と、 該リンクテーブル検索手段で求めた仮想アドレスのタグ
    情報およびプロセスIDにつき少なくともいずれか一方
    が一致しなかった場合に、前記リンクポインタにより補
    助リンクテーブル(24)を引いて、次のプロセスI
    D、仮想アドレスのタグ情報、ページテーブルのベース
    アドレスおよびリンクポインタを求め、正しいページテ
    ーブル(26)のベースアドレスが求まるまでリンクポ
    インタに基づく補助リンクテーブル(24)の検索を続
    ける補助リンクテーブル検索手段と、 前記リンクテーブル検索手段または補助リンクテーブル
    検索手段で求めたページテーブル(26)のベースアド
    レスに仮想アドレスの一部をオフセットとして加えてペ
    ージテーブル(26)を引き、ページフレーム番号を求
    めるページテーブル検索手段と、 該ページテール検索過程で求めたページフレーム番号に
    前記仮想アドレスの一部をオフセットとして組合せて実
    アドレスを生成する実アドレス保持手段と、を備えたこ
    とを特徴とするアドレス変換装置。
  24. 【請求項24】請求項23記載のアドレス変換装置に於
    いて、前記仮想アドレスは64ビットの仮想アドレスで
    あり、該64ビット仮想アドレスのページインデックス
    (62)およびページオフセット(64)を32ビット
    仮想アドレスと同一に構成して32ビット仮想アドレス
    を用いた仮想メモリシステムとの互換性を保つことを特
    徴とするアドレス変換装置。
  25. 【請求項25】請求項23記載のアドレス変換装置に於
    いて、前記ハッシュ生成手段は、前記プロセスID保持
    手段に保持したプロセスID番号および前記仮想アドレ
    ス保持手段に保持した仮想アドレスのセグメント番号
    (60)の上位の所定ビットを入力してハッシュアドレ
    スを生成することを特徴とするアドレス変換装置。
  26. 【請求項26】請求項23のアドレス変換装置に於い
    て、前記リンクテーブル検索手段は、前記ハッシュアド
    レスに前記セグメント番号(60)の下位の所定ビット
    をオフセットとして加えてリンクテーブル(22)を引
    き、さらにリンクテーブル(22)から求めた仮想アド
    レスのタグ情報を前記セグメント番号(60)の上位の
    所定ビットと比較してページテーブル(26)のベース
    アドレスが正しいか否か判断することを特徴とするアド
    レス変換装置。
  27. 【請求項27】請求項23のアドレス変換装置に於い
    て、前記補助リンクテーブル検索手段は、補助リンクテ
    ーブル(24)から求めた仮想アドレスのタグ情報を前
    記セグメント番号(60)の上位の所定ビットと比較し
    てページテーブル(26)のベースアドレスが正しいか
    否か判断することを特徴とするアドレス変換装置。
  28. 【請求項28】請求項23のアドレス変換装置に於い
    て、前記ページテーブル(26)検索手段は、前記リン
    クテーブル検索手段または補助リンクテーブル検索手段
    で求めたページテーブル(26)のベースアドレスに、
    前記仮想アドレス保持手段に保持した仮想アドレスのペ
    ージインデックス(62)をオフセットとして加えてペ
    ージテーブル(26)を検索することを特徴とするアド
    レス変換装置。
  29. 【請求項29】請求項23のアドレス変換装置に於い
    て、前記実アドレス保持手段は、前記ページテール検索
    手段で求めたページフレーム番号に前記仮想アドレス保
    持手段に保持した仮想アドレスのページオフセット(6
    4)を組合せて実アドレスを生成することを特徴とする
    アドレス変換装置。
  30. 【請求項30】請求項23記載のアドレス変換装置に於
    いて、前記補助リンクテーブル検索手段をソフトウェア
    で構成したことを特徴とするアドレス変換装置。
JP5018335A 1993-02-05 1993-02-05 アドレス変換方法および装置 Withdrawn JPH06231047A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5018335A JPH06231047A (ja) 1993-02-05 1993-02-05 アドレス変換方法および装置
DE69323863T DE69323863T2 (de) 1993-02-05 1993-09-20 Verfahren und Vorrichtung zur Adressübersetzung
EP93307387A EP0610618B1 (en) 1993-02-05 1993-09-20 Method and apparatus for address translation
US08/123,474 US5584005A (en) 1993-02-05 1993-09-20 Virtual memory address translation apparatus and method using link, auxiliary link and page tables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5018335A JPH06231047A (ja) 1993-02-05 1993-02-05 アドレス変換方法および装置

Publications (1)

Publication Number Publication Date
JPH06231047A true JPH06231047A (ja) 1994-08-19

Family

ID=11968782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5018335A Withdrawn JPH06231047A (ja) 1993-02-05 1993-02-05 アドレス変換方法および装置

Country Status (4)

Country Link
US (1) US5584005A (ja)
EP (1) EP0610618B1 (ja)
JP (1) JPH06231047A (ja)
DE (1) DE69323863T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08223614A (ja) * 1995-02-17 1996-08-30 Nec Corp 交換機のデータ引き継ぎ方法およびシステム
CN109992529A (zh) * 2018-01-03 2019-07-09 华为技术有限公司 虚拟地址确定方法及装置、处理器、存储介质
CN111367831A (zh) * 2020-03-26 2020-07-03 超验信息科技(长沙)有限公司 翻译页表的深度预取方法、部件、微处理器及计算机设备

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2820048B2 (ja) * 1995-01-18 1998-11-05 日本電気株式会社 画像処理システムとその記憶装置およびそのアクセス方法
US5873123A (en) * 1996-06-25 1999-02-16 International Business Machines Corporation Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
US5857080A (en) * 1996-09-10 1999-01-05 Lsi Logic Corporation Apparatus and method for address translation in bus bridge devices
US6047365A (en) * 1996-09-17 2000-04-04 Vlsi Technology, Inc. Multiple entry wavetable address cache to reduce accesses over a PCI bus
US6014730A (en) * 1996-12-26 2000-01-11 Nec Corporation Dynamic adding system for memory files shared among hosts, dynamic adding method for memory files shared among hosts, and computer-readable medium recording dynamic adding program for memory files shared among hosts
US6014733A (en) * 1997-06-05 2000-01-11 Microsoft Corporation Method and system for creating a perfect hash using an offset table
US6049667A (en) * 1997-08-15 2000-04-11 International Business Machines Corporation Computer system, method of compiling and method of accessing address space with pointer of different width therefrom
US6785278B1 (en) * 1998-12-10 2004-08-31 International Business Machines Corporation Methods, systems and computer program products for hashing address values
US6463517B1 (en) * 2000-06-15 2002-10-08 Advanced Micro Devices, Inc. Apparatus and method for generating virtual addresses for different memory models
US6658416B1 (en) * 2000-07-10 2003-12-02 International Business Machines Corporation Apparatus and method for creating an indexed database of symbolic data for use with trace data of a computer program
US6988263B1 (en) 2000-07-10 2006-01-17 International Business Machines Corporation Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
US20020087824A1 (en) * 2000-12-29 2002-07-04 Hum Herbert H.J. System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6938144B2 (en) * 2001-03-22 2005-08-30 Matsushita Electric Industrial Co., Ltd. Address conversion unit for memory device
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US6807616B1 (en) * 2001-08-09 2004-10-19 Advanced Micro Devices, Inc. Memory address checking in a proccesor that support both a segmented and a unsegmented address space
US7509473B2 (en) * 2003-08-27 2009-03-24 Adaptec, Inc. Segmented storage system mapping
JP2005242757A (ja) * 2004-02-27 2005-09-08 Hitachi Ltd ストレージシステム
US7707385B2 (en) * 2004-12-14 2010-04-27 Sony Computer Entertainment Inc. Methods and apparatus for address translation from an external device to a memory of a processor
US7852850B2 (en) * 2006-04-26 2010-12-14 Marvell Israel (M.I.S.L.) Ltd. Double-hash lookup mechanism for searching addresses in a network device
US8209488B2 (en) * 2008-02-01 2012-06-26 International Business Machines Corporation Techniques for prediction-based indirect data prefetching
US8161264B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for data prefetching using indirect addressing with offset
US8166277B2 (en) * 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
US8161263B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for indirect data prefetching
US8161265B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for multi-level indirect data prefetching
US8353018B2 (en) * 2008-11-13 2013-01-08 Yahoo! Inc. Automatic local listing owner authentication system
US10496670B1 (en) * 2009-01-21 2019-12-03 Vmware, Inc. Computer storage deduplication
US10216642B2 (en) 2013-03-15 2019-02-26 International Business Machines Corporation Hardware-based pre-page walk virtual address transformation where the virtual address is shifted by current page size and a minimum page size
GB2547893B (en) * 2016-02-25 2018-06-06 Advanced Risc Mach Ltd Combining part of an offset with a corresponding part of a base address and comparing with a reference address
US10324838B2 (en) 2017-10-12 2019-06-18 International Business Machines Corporation Virtually addressable hardware global kernel segment table
US10877788B2 (en) * 2019-03-12 2020-12-29 Intel Corporation Processing vectorized guest physical address translation instructions

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US4356549A (en) * 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus
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
FR2600441B1 (fr) * 1986-06-18 1990-09-21 France Etat Unite de gestion de memoire
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08223614A (ja) * 1995-02-17 1996-08-30 Nec Corp 交換機のデータ引き継ぎ方法およびシステム
CN109992529A (zh) * 2018-01-03 2019-07-09 华为技术有限公司 虚拟地址确定方法及装置、处理器、存储介质
CN109992529B (zh) * 2018-01-03 2021-07-16 华为技术有限公司 虚拟地址确定方法及装置、处理器、存储介质
CN111367831A (zh) * 2020-03-26 2020-07-03 超验信息科技(长沙)有限公司 翻译页表的深度预取方法、部件、微处理器及计算机设备

Also Published As

Publication number Publication date
US5584005A (en) 1996-12-10
DE69323863T2 (de) 1999-07-01
EP0610618B1 (en) 1999-03-10
DE69323863D1 (de) 1999-04-15
EP0610618A1 (en) 1994-08-17

Similar Documents

Publication Publication Date Title
JPH06231047A (ja) アドレス変換方法および装置
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
JP4064380B2 (ja) 演算処理装置およびその制御方法
JP3577575B2 (ja) アドレス変換を行う装置及び方法
JP3998787B2 (ja) 様々なデフォルト・アドレス変換属性を事前ロードする方法および装置
JPH0749812A (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
JPH03194632A (ja) 変換予見にもとづくキャッシュアクセス
JP2011003214A (ja) オフセット表を使用する完全ハッシュの生成
WO2013186646A1 (en) Radix table translation of memory
JPH0357500B2 (ja)
JP2010134956A (ja) 状況切換え環境中におけるアドレス変換技術
JPH0644290A (ja) 高速フーリエ変換を行うための方法および装置
EP0486154B1 (en) Method of operating a virtual memory system
JPH0371355A (ja) キヤツシユ検索装置および検索方法
JPH07281948A (ja) メモリ制御装置
JPS5998367A (ja) アドレス変換バツフア方式
JPS601658B2 (ja) アドレス変換制御方式
JPS62151958A (ja) 仮想アドレス変換装置
JPS623354A (ja) キヤツシユメモリ・アクセス方式
JPS626350A (ja) Tlb制御装置
JP2002007209A (ja) データ処理装置
JP2704112B2 (ja) リプレース回路
JPH03164845A (ja) アドレス変換バッファ方式
JPS5956278A (ja) デ−タ処理装置
JPH035620B2 (ja)

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000509