[go: up one dir, main page]

JP2000057054A - 高速アドレス変換システム - Google Patents

高速アドレス変換システム

Info

Publication number
JP2000057054A
JP2000057054A JP10227761A JP22776198A JP2000057054A JP 2000057054 A JP2000057054 A JP 2000057054A JP 10227761 A JP10227761 A JP 10227761A JP 22776198 A JP22776198 A JP 22776198A JP 2000057054 A JP2000057054 A JP 2000057054A
Authority
JP
Japan
Prior art keywords
tlb
address space
memory
speed
program
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
JP10227761A
Other languages
English (en)
Inventor
Takashi Okada
崇 岡田
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 JP10227761A priority Critical patent/JP2000057054A/ja
Priority to US09/232,048 priority patent/US6275917B1/en
Publication of JP2000057054A publication Critical patent/JP2000057054A/ja
Withdrawn 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

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)【要約】 【課題】 本発明は高速アドレス変換システムに関し、
交換システムのような高信頼オンラインリアルタイムシ
ステムにおいて、基本呼処理のように性能が非常に重要
視される部分でのTLBミスヒットによるアドレス変換
のオーバヘッドをほぼ0にすると共に、これにより、大
幅な性能向上と、リアルタイム処理部分でTLBミスを
考慮せずにすむことによる性能予測の精度向上を図るこ
とができる高速アドレス変換システムを提供することを
目的としている。 【解決手段】 論理アドレス空間と、物理アドレス空間
がMPUを介して接続され、論理アドレス空間上の情報
を物理アドレス空間上に移して処理を実行させるシステ
ムにおいて、前記MPU内に論理アドレスを物理アドレ
スに変換するTLBを設け、オフラインでメモリ設計を
する性質を利用して、オフライン処理にてファイルの各
セクションのサイズを所定の大きさのページサイズに調
整するように構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は高速アドレス変換シ
ステムに関する。
【0002】
【従来の技術】計算機システムにおいて、プログラムが
走行する仮想アドレス空間(論理アドレス空間)と、実
際にその内容が配置されている物理アドレス空間の対応
付けを動的に行なうために、メモリ管理ユニット(MM
U)がハードウェアとして提供するTranslationLooka
sideBuffer(TLB)を用いる。
【0003】図11は従来システムの概念図である。図
において、1は論理アドレス空間、2は論理アドレス空
間1と接続されるメモリ管理ユニット(MMU)、3は
該MMUと接続され、実際のプログラムを実行する物理
アドレス空間である。ここで、アドレス空間はページと
いう単位で管理され、TLBはページ単位に仮想アドレ
スと物理アドレスの対応付けを保持し、命令アクセスや
データアクセスの度にTLBにより仮想アドレスから物
理アドレスへの変換が行なわれる。
【0004】TLBは有限なリソースであるため、使用
頻度によりその内容の入れ替えが行なわれるので、TL
Bがミスヒットした場合は、アドレス変換情報をメモリ
からTLBに登録する処理が行なわれる。
【0005】通常の計算機システムでは、プログラムは
オンデマンドでメモリ上にローディングされ、実行後そ
のメモリは解放されるため、メモリ使用効率の向上のた
め、管理単位であるページのサイズを1つに固定してい
た。
【0006】
【発明が解決しようとする課題】しかしながら、交換機
システムのようなオンラインリアルタイムシステムで
は、タイムクリティカルな処理を行なうプログラムは、
予め設計されたアドレス空間上にローディングされる。
また、タイムクリティカルな処理においては、TLBミ
ス時の処理はハードウェアにより動的に、又はトラップ
としてオペレーティングシステム(OS)が処理を行な
うため、アプリケーションプログラマには、不可視であ
り、予期せぬ性能低下要因となる。ここで、トラップと
は、TLBのエントリの方法であり、ミスヒットした時
にOSに割り込んでソフトウェアで登録する方法のこと
である。
【0007】本発明はこのような課題に鑑みてなされた
ものであって、交換システムのような高信頼オンライン
リアルタイムシステムにおいて、基本呼処理のように性
能が非常に重要視される部分でのTLBミスヒットによ
るアドレス変換のオーバヘッドをほぼ0にすると共に、
これにより、大幅な性能向上と、リアルタイム処理部分
でTLBミスを考慮せずにすむことによる性能予測の精
度向上を図ることができる高速アドレス変換システムを
提供することを目的としている。
【0008】
【課題を解決するための手段】(1)図1は本発明の原
理ブロック図である。図11と同一のものは、同一の符
号を付して示す。図において、1は論理アドレス空間
(仮想アドレス空間)、3はプログラムが実行される物
理アドレス空間である。10は論理アドレス空間1と物
理アドレス空間3とを接続するMPUである。該MPU
10内には、MMU2が設けられており、更にMMU2
の中には論理アドレスを物理アドレスに変換するTLB
20が内蔵されている。
【0009】この発明の構成によれば、オフラインでフ
ァイルの各セクションのサイズを、所定の大きさのペー
ジサイズに調整することにより、TLBミスヒットを減
少させることができる。
【0010】(2)この場合において、同一のメモリ保
護属性を有するセクションを連続したアドレス空間に割
り付けることを特徴としている。この発明の構成によれ
ば、同一の保護属性を持つセクションをまとめることに
より、メモリの管理が容易となる。
【0011】(3)また、同一のメモリ保護属性でなお
かつ連続したアドレス空間に割り付いているセクション
をマージして1つのセクションとすることを特徴として
いる。
【0012】この発明の構成によれば、連続したアドレ
ス空間に割り付いているセクションをマージすることに
より、メモリの管理を容易に行なうことができる。 (4)また、ラージページサイズの判断をオンラインプ
ログラムが高速に行えるように、オフライン処理にて端
数部分についてダミー領域を作成してマージすることを
特徴としている。
【0013】この発明の構成によれば、オフラインで予
めラージページの容量を満たすようにすることにより、
ラージページの処理を容易に行なうことができる。 (5)また、オンラインでメモリ確保を行なうプログラ
ムに対して、ラージページサイズとなるメモリを与える
インタフェースを設けることを特徴としている。
【0014】この発明の構成によれば、ラージページを
用いたアドレス変換を容易に行なうことができる。 (6)また、タイムクリティカルな処理を行なうプログ
ラム部分に対して、TLBにロックする機能を有するプ
ロセッサがTLBロックを利用できるようにMMUがロ
ック指示を与えることを特徴としている。
【0015】この発明の構成によれば、特に重要なプロ
グラムであるタイムクリティカル処理を確実に行なうこ
とができる。 (7)更に、TLBロックを命令用TLB、データ用照
TLBの分離した分離TLBアーキテクチャ、及び混合
TLBアーキテクチャのプロセッサにおいて、同一処理
で制御することを特徴としている。
【0016】この発明の構成によれば、TLBを命令用
とデータ用に分離することにより、アドレス変換処理を
並列に行なうことができる。
【0017】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態例を詳細に説明する。交換システムのような高
信頼オンラインリアルタイムシステムは、以下のような
要件を持っている。
【0018】(1)基本呼処理のようにタイムクリティ
カルな処理は高速に処理され、なおかつその処理量、及
び処理時間は予測可能であること。 (2)メモリ空間の書き込みに対する保護が適切に行な
え、課金データのような重要データの破壊を妨げるこ
と。このような要件を満たすために、以下のような要件
が必用である。
【0019】(a)タイムクリティカルな処理を行なう
部分は、TLBのミスヒットが殆どないか、全くないこ
と。 (b)各プログラムのコード部やデータ部といったセク
ションの種類毎にメモリ保護を行なうことができるこ
と。また、交換システムのようなオンラインリアルタイ
ムシステムは、以下の性質をもつ。
【0020】プログラムは絶対番地形式でロードモジ
ュールが作成され、オフラインでメモリリソース設計、
及びメモリ割り付けを行なう。 タイムクリティカルな処理では、当該プログラムの初
期設定時に、メモリ等走行中に必要なリソースは予め確
保されていること。
【0021】更にMMUは、ハードウェアとして、複数
のページサイズを提供する場合がある。最小ページサイ
ズ(例えば4KB)よりも大きなもの(例えば10M
B)を、以下ラージページと呼ぶ。TLBミスヒット
は、ページ単位での仮想アドレスから物理アドレスへの
変換に失敗した場合に発生するため、ページサイズを大
きくすれば、つまりラージページを使用すれば、TLB
のミスヒット率を低くすることができる。また、ミスヒ
ットを完全になくすために、TLBのエントリをロック
する機構を提供する場合がある。
【0022】これらの性質を利用して、以下の高速アド
レス変換方式により、TLBのミスヒットを抑え、また
タイムクリティカルな部分についてはTLBを100%
ヒットさせる。
【0023】図2はTLBの構成例を示す図である。T
LBは、図に示すように、論理アドレス21と、これに
対応する物理アドレス22と、データサイズ23と、保
護属性24より構成されている。保護属性については、
ライト(書き込み)、リード(読み出し)、実行のいず
れが可能で、何れが不可能であるかを決定するものであ
る(後述)。
【0024】(A)オフラインでメモリ設計をする性質
を利用して、オフライン処理にてファイルの各セクショ
ン(コード部やデータ部)のサイズを以下のようにラー
ジページサイズに調整する。
【0025】(A)の1 コード部(通常は、リード及び実行が可能でライト不
可)やデータ部(通常は、リード及びライトが可能で実
行不可)や、リードオンリデータ部(通常は、リードの
み可能で、ライト及び実行不可)など、同一のメモリ保
護属性を有するセクションをマージ(統合)して連続し
たメモリに割り付ける。
【0026】図3はメモリ割り付けの説明図である。開
発用計算機上でのプログラムモジュールがオフラインプ
ログラムモジュール、交換機等のターゲットマシン上で
のプログラムモジュールがオンラインプログラムモジュ
ールである。オフラインプログラムモジュールにおい
て、30はユーザプログラム、31は特権プログラムで
ある。特権プログラムは、ユーザプログラムより優先さ
れるプログラムである。それぞれのプログラムは複数用
意される。
【0027】ユーザプログラム30において、30aは
ユーザコード部、30bはユーザデータ部である。特権
プログラム31において、31aは特権コード部、31
bは特権データ部である。ユーザコード部30aは、ユ
ーザ/特権いずれのモードからもリード及び実行が可能
で、ライトが不可能である。ユーザデータ部30bは、
ユーザ/特権いずれのモードからもリード及びライトが
可能であり、実行は不可能である。
【0028】オフラインプログラムモジュールの各プロ
グラムに入っている同一の保護属性を持ったモジュール
は、オンラインプログラムモジュールに割り付けるに当
たり、同一の保護属性を持つセクション毎にまとめられ
る。例えば、ユーザプログラム#1のユーザコード部#
1と、ユーザプログラム#2のユーザコード部#2とは
ユーザコード部33にまとめられる。また、ユーザプロ
グラム#1のユーザデータ部#1と、ユーザプログラム
#2のユーザデータ部#2とはユーザデータ部34にま
とめられる。
【0029】同様に、特権プログラム#1の特権コード
部#1と、特権プログラム#2の特権コード部#2とは
特権コード部35にまとめられる。また、特権プログラ
ム#1の特権データ部#1と、特権プログラム#2の特
権データ部#2とは特権データ部36にまとめられる。
【0030】特権コード部31aは、特権モードからの
みリード及び実行が可能であり、ライトは不可能であ
る。特権データ部31bは特権モードからのみリード及
びライトが可能であり、実行は不可能である。
【0031】この実施の形態例によれば、同一の保護属
性を持つセクションをまとめることにより、メモリの管
理が容易になる。また、同一のメモリ保護属性でなおか
つ連続したアドレス空間に割り付けているセクションを
マージして1つのセクションにすることができる。これ
により、連続したアドレス空間に割り付いているセクシ
ョンをマージすることにより、メモリの管理を容易に行
なうことができる。
【0032】(A)の2 ラージページサイズの判断をオンラインプログラムが高
速に行なえるように、オフライン処理にてセクションの
先頭部分又は最終部分の端数部分についてダミーセクシ
ョンを作成してマージすることにより、セクションサイ
ズをラージページサイズの倍数になるように調整する。
【0033】図4はダミーセクションの作成及びマージ
の説明図である。アドレス変換により実行されるページ
の大きさは固定されている。例えば、ラージページの大
きさは16MBである。ユーザコード部33では、オフ
ラインプログラムモジュールから持ってきたユーザコー
ド部30aを合わせてもページサイズ又はラージページ
の倍数に満たない場合には、ラージページの倍数になる
ようにダミー部30cが設けられる。
【0034】同様に、ユーザデータ部34では、オフラ
インプログラムモジュールから持ってきたユーザデータ
部30bを合わせてもページサイズ又はラージページの
倍数に満たない場合には、ラージページの倍数になるよ
うにダミー部30dが設けられる。
【0035】この実施の形態例によれば、オフラインで
予めラージページの容量を満たすようにすることによ
り、ラージページの処理を容易に行なうことができる。 (B)オンラインでメモリ確保を行なうプログラムに対
して、オペレーティングシステムのメモリ確保インタフ
ェースのひとつとして、先頭アドレスがラージページサ
イズの境界で、サイズがラージページサイズの倍数とな
るメモリを与えるインタフェースを提供する。
【0036】図5はラージページ単位でのメモリ確保の
説明図である。図において、細い実線は通常ページ単位
でのメモリ境界、太い実線はラージページ単位でのメモ
リ境界を示している。オペレーティングシステム(O
S)は、通常のページ単位でのアドレス空間の空塞管理
に加えて、ラージページサイズの倍数での確保時は、ラ
ージページ境界からラージページサイズの倍数のアドレ
ス空間が利用可能か否かを判定し、利用可能ならば当該
アドレス空間を割り当てる。
【0037】この実施の形態例によれば、ラージページ
を用いたアドレス変換を容易に行なうことができる。 (C)TLBエントリのロック制御 (C)の1 特に、タイムクリティカルな処理を行なうプログラム部
分に対して、アドレス変換情報をTLBにロックする機
能を有するプロセッサにおいて、TLBロックを利用で
きるように、コード部やデータ部の単位(セクション単
位)に、オフライン処理にてTLBロック指示を与え
る。この指示を、オンラインシステム上で使用するプロ
グラムファイルのヘッダ情報部に設定する。
【0038】図6はTLBエントリロック指示の説明図
である。図4と同一のものは、同一の符号を付して示
す。図4について説明したように、同じ保護属性を持つ
部分はユーザコード部33とユーザデータ部34にまと
められる。例えば、ユーザコード部33の先頭にはセク
ション情報としてヘッダ情報部40が配置される。
【0039】セクション情報部40は、先頭アドレス4
1と、データサイズ42と、メモリ保護属性43と、キ
ャッシュ属性44と、TLBロック指示45と、セクシ
ョン実体位置情報46が格納される。セクション実体位
置情報46は、ユーザコード部33と接続される。
【0040】ここで、TLBロック指示45は、TLB
エントリのロック制御を行なうに当たり参照されるもの
であり、この指示がオンの場合には必ず実行されるよう
に制御される。
【0041】この実施の形態例によれば、特に重要なプ
ログラムであるタイムクリティカル処理を確実に行なう
ことができる。 (C)の2 命令用TLBと、データ用TLBの分離TLBアーキテ
クチャを持つプロセッサ、及び混合TLBアーキテクチ
ャをもつプロセッサが存在する。また、全TLBエント
リをロック対象としてしまうと、そこに入りきらないペ
ージが存在する場合に、システムが動作不能となる。
【0042】このため、TLBロック数のエントリに上
限を設け、両アーキテクチャのプロセッサにおいて、最
大命令用ロック数と、最大データ用TLBロック数を用
意し、分離TLBアーキテクチャをもつプロセッサでは
これをそのまま使用し、混合TLBアーキテクチャをプ
ロセッサでは、両データの和を最大TLBロック数とし
て使用する。これにより、ユーザに対して分離TLBア
ーキテクチャ及び混合アーキテクチャいずれにおいて
も、同一の条件設定を可能とする。
【0043】この実施の形態例によれば、TLBを命令
用とデータ用に分離することにより、アドレス変換処理
を並列に行える結果、処理速度が向上する。次に、本発
明の具体例について説明する。本発明で、以下のような
アーキテクチャを持つプロセッサが存在するものとす
る。 最小ページサイズ4KB、ラージページサイズ16M
B TLBエントリロック機構有り 混合TLBアーキテクチャ エントリ数64 (1)ラージページサイズへの調整方法。
【0044】ユーザプログラムが2つ、特権プログラム
が2つで、それぞれのセクションの種別及びサイズが図
7に示すものであるとする。図7はプログラムを構成す
る各セクションの情報を示す図である。例えば、ユーザ
コード#1は、サイズが3MB、メモリ保護属性がユー
ザモードの場合に、リードと実行はできるが、ライトが
不可能である。また、メモリ保護属性が特権モードの時
にも同じである。ここで、メモリ保護属性を示す符号に
ついて説明する。保護属性は“RWE”で表され、
“R”がリード、“W”がライト、“E”が実行であ
る。それぞれの機能が不可能な場合には対応する位置に
“−”が書き込まれる。即ち、R−Eはリード(R)と
実行(E)が可能で、ライト(W)は不可であることを
示している。
【0045】ここでは、メモリ保護属性が等しいものを
単純加算し、ラージページサイズの倍数に対する不足分
をダミーとして作成して更にマージする。ユーザコード
部を例にとると、単純加算はユーザコード#1の3MB
と、ユーザコード#2の10MBの和3MB+10MB
で13MBとなる。一方、ラージページは16MB単位
であるから3MB分の不足となる。
【0046】従って、ダミーとして3MBを作成してマ
ージする。最終的にユーザコードのセクションサイズは
16MBとなる。各々についての各セクション情報を図
8に示す。図8はラージページサイズ調整後の各セクシ
ョンの情報を示す図である。例えば、特権RWデータの
場合を例にとると、図7より特権RWデータ#1は20
MB、特権RWデータ#2は16MBで合わせて36M
Bとなる。これを調整するためには、16MB×3の4
8MBとなるようにダミーを調整する。この時のダミー
領域の容量は48−36の12MBとなる。従って、こ
の場合には、単純加算サイズが36MB、ダミーサイズ
が12MB、セクションサイズが48MBとなる。
【0047】図9はラージページへの調整方法の実施例
を示す図である。いずれもオフラインモジュールである
ユーザプログラム#1と#2をマージする場合を示して
いる。各ユーザプログラム30において、30aはユー
ザコード部、30bはユーザRWデータ部、30cはユ
ーザRデータ部である。これらを用いて、MMUがオフ
ラインリンケージの前処理を行なう(S1)。そして、
以下の計算によりダミー領域の容量を求める(S2)。
【0048】16MB−(3MB+10MB)=3MB
(ダミー容量) そして、ダミー部を含めたサイズメモリ設計を行ない、
絶対番地形式のプログラムモジュールを生成する(S
3)。図において、33はユーザコード部のモジュー
ル、34はユーザRWデータ部のモジュール、35はユ
ーザRデータ部のモジュールである。何れも、ラージペ
ージの要件を満たすために、ダミー部を持っていること
がわかる。
【0049】(2)ラージページ単位でのメモリ確保イ
ンタフェースの提供 本プロセッサ上では、通常のメモリ確保インタフェース
では、4KB境界のアドレスから4KBの倍数のメモリ
を確保することができる。これに対して、主として初期
設定時に予めラージページでのメモリを取得しておくた
めに、ラージページでのメモリ確保インタフェースを提
供する。オペレーティングシステムでは、通常の4KB
単位での管理に加えて、その場合のみ、更に16MB境
界のアドレスから16MBの倍数のメモリが確保可能か
どうかを判定する。可能であった場合には、その先頭ア
ドレスをユーザに返却する。また、後述の設定値を下回
っている場合には、当該メモリ領域をTLBエントリロ
ック対象として扱う。
【0050】この実施の形態例によれば、オフラインで
予めラージページの容量を満たすようにすることによ
り、ラージページの処理を容易に行なうことができる。
また、ラージページを用いたアドレス変換を容易に行な
うことができる。
【0051】(3)TLBエントリのロック制御方法 (3−1)TLBエントリのロック指示 図8において、特権コード部がリアルタイム処理上非常
に重要であるとする。オンラインリアルタイムシステム
では、プログラム開発に用いられる計算機と、開発され
たプログラムを稼働させるマシンは一般的に異なる。従
って、開発用計算機で作成されたオフラインプログラム
モジュールを、オンラインプログラムモジュールに形式
変換する。
【0052】この場合、オフラインプログラムモジュー
ルを作成する際に、図6に示す示されるような、メモリ
保護属性やキャッシュ属性を指定する。これと合わせ
て、TLBロック指示を与える。ここで、キャッシュ属
性とは、データをキャッシュメモリに乗せるか乗せない
かを選択するものである。キャッシュメモリに乗せない
場合には、直接主記憶にアクセスすることになる。
【0053】図10はTLBエントリロックの実施例の
説明図である。ユーザコード部とユーザRWデータ部と
ユーザRデータ部に分かれた、絶対番地形式オフライン
プログラムモジュールは、何れもダミーを付けてセクシ
ョン単位にまとめられている。ここで、これらオフライ
ンプログラムモジュールを、オンラインシステム上のモ
ジュール形式に変換する。ここの工程で、メモリ保護属
性、キャッシュ属性と合わせて、セクション毎にTLB
ロック指示を与える。この動作は、MMU又はMPUが
行なう。
【0054】オンラインシステム上のモジュールに変換
されたモジュールは、オンラインプログラムモジュール
に入力される。この場合において、ヘッダ情報にTLB
ロック指示が書き込まれる。ここのオンラインプログラ
ムモジュールは、図6に示すものと同じである。
【0055】(3−2)TLBエントリの最大ロック数 本プロセッサは混合TLBアーキテクチャであるが、シ
ステム構築者が設定可能なデータとして、最大命令用T
LBロック数と最大データ用TLBロック数を用意す
る。本プロセッサでは、全エントリ数が64であるが、
例えばその半数程度をロック可能とし、更に命令及びデ
ータの比率を1対2程度と想定して、最大命令TLBロ
ック数を10、最大データ用TLBロック数を20と設
定する。本プロセッサのオペレーティングシステムは、
この両者の合計である30を、最大TLBエントリロッ
ク数としてTLBエントリのロック数を制御する。
【0056】近年の計算機システムでは、プロセッサ動
作周波数の高速化に伴い、プロセッサ内部処理速度と主
記憶装置へのアクセス速度の乖離は進む一方であり、主
記憶装置へのアクセスは著しい性能低下を招く。特に、
オンラインリアルタイムシステムでは、その影響がプロ
グラマに不可視である点も問題である。
【0057】従来方式では、例えばシステムにおいて、
TLBミスによるアドレス変換処理は、全メモリアクセ
スの30〜40%を占めているという測定結果もある。
そこで、本発明を用いることにより、特に交換システム
のような高信頼オンラインリアルタイムシステムにおい
て、基本呼処理部分のように性能が非常に重要視される
部分でのTLBヒットミスによるアドレス変換のオーバ
ヘッドをほぼ0とすることができる。これにより、大幅
な性能向上と、リアルタイム処理部分でTLBヒットミ
スを考慮せずにすむことによる性能予測の精度向上を図
ることかできる。
【0058】
【発明の効果】以上、詳細に説明したように、本発明に
よれば、 (1)論理アドレス空間と、物理アドレス空間がMPU
を介して接続され、論理アドレス空間上の情報を物理ア
ドレス空間上に移して処理を実行させるシステムにおい
て、前記MPU内に論理アドレスを物理アドレスに変換
するTLBを設け、オフラインでメモリ設計をする性質
を利用して、オフライン処理にてファイルの各セクショ
ンのサイズを所定の大きさのページサイズに調整するこ
とにより、オフラインでファイルの各セクションのサイ
ズを、所定の大きさのページサイズに調整して、TLB
ミスヒットを減少させることができる。
【0059】(2)この場合において、同一のメモリ保
護属性を有するセクションを連続したアドレス空間に割
り付けることにより、同一の保護属性を持つセクション
をまとめて、メモリの管理が容易となる。
【0060】(3)また、同一のメモリ保護属性でなお
かつ連続したアドレス空間に割り付いているセクション
をマージして1つのセクションとすることにより、連続
したアドレス空間に割り付いているセクションをマージ
して、メモリの管理を容易に行なうことができる。
【0061】(4)また、ラージページサイズの判断を
オンラインプログラムが高速に行えるように、オフライ
ン処理にて端数部分についてダミー領域を作成してマー
ジすることにより、オフラインで予めラージページの容
量を満たすようにして、ラージページの処理を容易に行
なうことができる。
【0062】(5)また、オンラインでメモリ確保を行
なうプログラムに対して、ラージページサイズとなるメ
モリを与えるインタフェースを設けることにより、ラー
ジページを用いたアドレス変換を容易に行なうことがで
きる。
【0063】(6)また、タイムクリティカルな処理を
行なうプログラム部分に対して、TLBにロックする機
能を有するプロセッサがTLBロックを利用できるよう
にMMUがロック指示を与えることにより、この発明の
構成によれば、特に重要なプログラムであるタイムクリ
ティカル処理を確実に行なうことができる。
【0064】(7)更に、TLBロックを命令用TL
B、データ用照TLBの分離した分離TLBアーキテク
チャ、及び混合TLBアーキテクチャのプロセッサにお
いて、同一処理で制御することにより、この発明の構成
によれば、TLBを命令用とデータ用に分離して、アド
レス変換処理を並列に行なうことができる。
【0065】このように、本発明によれば、交換システ
ムのような高信頼オンラインリアルタイムシステムにお
いて、基本呼処理のように性能が非常に重要視される部
分でのTLBミスヒットによるアドレス変換のオーバヘ
ッドをほぼ0にすると共に、これにより、大幅な性能向
上と、リアルタイム処理部分でTLBミスを考慮せずに
すむことによる性能予測の精度向上を図ることができる
高速アドレス変換システムを提供することができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】TLBの構成例を示す図である。
【図3】メモリ割り付けの説明図である。
【図4】ダミーセクション作成及びマージの説明図であ
る。
【図5】ラージページ単位でのメモリ確保の説明図であ
る。
【図6】TLBエントリロック指示の説明図である。
【図7】プログラムを構成する各セクションの情報を示
す図である。
【図8】ラージページサイズ調整後の各セクションの情
報を示す図である。
【図9】ラージページへの調整方法の実施例を示す図で
ある。
【図10】TLBエントリロックの実施例の説明図であ
る。
【図11】従来システムの概念図である。
【符号の説明】
1 論理アドレス空間 2 MMU 3 物理アドレス空間 10 MPU 20 TLB

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 論理アドレス空間と、物理アドレス空間
    がMPUを介して接続され、論理アドレス空間上の情報
    を物理アドレス空間上に移して処理を実行させるシステ
    ムにおいて、 前記MPU内に論理アドレスを物理アドレスに変換する
    TLBを設け、 オフラインでメモリ設計をする性質を利用して、オフラ
    イン処理にてファイルの各セクションのサイズを所定の
    大きさのページサイズに調整することを特徴とする高速
    アドレス変換システム。
  2. 【請求項2】 同一のメモリ保護属性を有するセクショ
    ンを連続したアドレス空間に割り付けることを特徴とす
    る請求項1記載の高速アドレス変換システム。
  3. 【請求項3】 同一のメモリ保護属性でなおかつ連続し
    たアドレス空間に割り付いているセクションをマージし
    て1つのセクションとすることを特徴とする請求項1記
    載の高速アドレス変換システム。
  4. 【請求項4】 ラージページサイズの判断をオンライン
    プログラムが高速に行えるように、オフライン処理にて
    端数部分についてダミー領域を作成してマージすること
    を特徴とする請求項1記載の高速アドレス変換システ
    ム。
  5. 【請求項5】 オンラインでメモリ確保を行なうプログ
    ラムに対して、ラージページサイズとなるメモリを与え
    るインタフェースを設けることを特徴とする請求項1記
    載の高速アドレス変換システム。
  6. 【請求項6】 タイムクリティカルな処理を行なうプロ
    グラム部分に対して、TLBにロックする機能を有する
    プロセッサがTLBロックを利用できるようにMMUが
    ロック指示を与えることを特徴とする請求項1記載の高
    速アドレス変換システム。
  7. 【請求項7】 TLBロックを命令用TLB、データ用
    照TLBの分離した分離TLBアーキテクチャ、及び混
    合TLBアーキテクチャのプロセッサにおいて、同一処
    理で制御することを特徴とする請求項1記載の高速アド
    レス変換システム。
JP10227761A 1998-08-12 1998-08-12 高速アドレス変換システム Withdrawn JP2000057054A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10227761A JP2000057054A (ja) 1998-08-12 1998-08-12 高速アドレス変換システム
US09/232,048 US6275917B1 (en) 1998-08-12 1999-01-15 High-speed address translation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10227761A JP2000057054A (ja) 1998-08-12 1998-08-12 高速アドレス変換システム

Publications (1)

Publication Number Publication Date
JP2000057054A true JP2000057054A (ja) 2000-02-25

Family

ID=16865970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10227761A Withdrawn JP2000057054A (ja) 1998-08-12 1998-08-12 高速アドレス変換システム

Country Status (2)

Country Link
US (1) US6275917B1 (ja)
JP (1) JP2000057054A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム
US9501423B2 (en) 2011-01-12 2016-11-22 Socionext Inc. Program execution device and compiler system
KR101866681B1 (ko) * 2017-01-25 2018-06-11 이화여자대학교 산학협력단 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684304B2 (en) * 1999-01-29 2004-01-27 Micron Technology, Inc. Method to access memory based on a programmable page limit
US6829678B1 (en) * 2000-07-18 2004-12-07 International Business Machines Corporation System for determining the order and frequency in which space is allocated on individual storage devices
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US7082508B2 (en) * 2003-06-24 2006-07-25 Intel Corporation Dynamic TLB locking based on page usage metric
US7089397B1 (en) * 2003-07-03 2006-08-08 Transmeta Corporation Method and system for caching attribute data for matching attributes with physical addresses
JP4233492B2 (ja) * 2004-06-02 2009-03-04 富士通マイクロエレクトロニクス株式会社 アドレス変換装置
WO2007073624A1 (en) * 2005-12-29 2007-07-05 Intel Corporation Virtual translation lookaside buffer
EP2011018B1 (en) 2006-04-12 2016-07-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
CN107368285B (zh) 2006-11-14 2020-10-09 英特尔公司 多线程架构
JP5273043B2 (ja) * 2007-06-12 2013-08-28 日本電気株式会社 情報処理装置、実行環境転送方法及びそのプログラム
US10228949B2 (en) 2010-09-17 2019-03-12 Intel Corporation Single cycle multi-branch prediction including shadow cache for early far branch prediction
CN103562866B (zh) 2011-03-25 2018-03-30 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
TWI533129B (zh) 2011-03-25 2016-05-11 軟體機器公司 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊
TWI520070B (zh) 2011-03-25 2016-02-01 軟體機器公司 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的記憶體片段
CN103649932B (zh) 2011-05-20 2017-09-26 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
TWI548994B (zh) 2011-05-20 2016-09-11 軟體機器公司 以複數個引擎支援指令序列的執行之互連結構
US10191746B2 (en) 2011-11-22 2019-01-29 Intel Corporation Accelerated code optimizer for a multiengine microprocessor
EP2783281B1 (en) 2011-11-22 2020-05-13 Intel Corporation A microprocessor accelerated code optimizer
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
CN105210040B (zh) 2013-03-15 2019-04-02 英特尔公司 用于执行分组成块的多线程指令的方法
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
KR102083390B1 (ko) 2013-03-15 2020-03-02 인텔 코포레이션 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
KR102586628B1 (ko) * 2015-06-05 2023-10-11 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2858795B2 (ja) 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
JPH04338848A (ja) 1991-05-16 1992-11-26 Toshiba Corp Tlb置換方式
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5802341A (en) * 1993-12-13 1998-09-01 Cray Research, Inc. Method for the dynamic allocation of page sizes in virtual memory
JPH07168761A (ja) 1993-12-14 1995-07-04 Hitachi Ltd メモリシステムのアクセス方法
DE69428881T2 (de) * 1994-01-12 2002-07-18 Sun Microsystems, Inc. Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
JPH09282233A (ja) 1996-04-15 1997-10-31 Sharp Corp 仮想メモリ管理装置
US5815686A (en) * 1996-09-12 1998-09-29 Silicon Graphics, Inc. Method and apparatus for address space translation using a TLB

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム
US9501423B2 (en) 2011-01-12 2016-11-22 Socionext Inc. Program execution device and compiler system
KR101866681B1 (ko) * 2017-01-25 2018-06-11 이화여자대학교 산학협력단 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치

Also Published As

Publication number Publication date
US6275917B1 (en) 2001-08-14

Similar Documents

Publication Publication Date Title
JP2000057054A (ja) 高速アドレス変換システム
US11474956B2 (en) Memory protection unit using memory protection table stored in memory system
US4742450A (en) Method to share copy on write segment for mapped files
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5940872A (en) Software and hardware-managed translation lookaside buffer
EP3109765B1 (en) Cache pooling for computing systems
US6061773A (en) Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US6742104B2 (en) Master/slave processing system with shared translation lookaside buffer
US6728858B2 (en) Method and apparatus including heuristic for sharing TLB entries
US6907494B2 (en) Method and system of managing virtualized physical memory in a memory controller and processor system
US11907301B2 (en) Binary search procedure for control table stored in memory system
US5835961A (en) System for non-current page table structure access
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US20060123197A1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
JPH0652511B2 (ja) 情報処理装置のアドレス変換方式
US6742103B2 (en) Processing system with shared translation lookaside buffer
US7269825B1 (en) Method and system for relative address translation
CN1704912B (zh) 地址转换器和地址转换方法
EP1262875A1 (en) Master/slave processing system with shared translation lookaside buffer
EP1262876B1 (en) Multiprocessing system with shared translation lookaside buffer
US20130262790A1 (en) Method, computer program and device for managing memory access in a multiprocessor architecture of numa type
JP3693503B2 (ja) 命令キャッシュへの書き込み機構を備えたプロセッサ
JPH10320265A (ja) メモリ管理方法
JPH02196350A (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: 20051101