(57)【要約】【課題】プログラム実行時におけるＴＬＢミスヒットの発生頻度を抑制できるアドレスマッピング方法を提供する。【解決手段】ＴＬＢ機構２のエントリの一部をタスクテキスト部専用エントリ２１として確保する。専用エントリ２１に対して、タスクＡのテキスト部全体が収まるようにページサイズを指定し、論理アドレスおよび主記憶５上の物理アドレスを対応付けて設定する。さらに、専用エントリ２１がＴＬＢミスヒット発生時に変更されることを防ぐために、ＯＳは専用エントリ２１をロックして変更されないようにＴＬＢ機構２を管理する。【選択図】図１
2010191645.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスを物理アドレスに変換するＴＬＢにおけるアドレスマッピング方法において、
ＴＬＢの論理アドレスとして、アプリケーションタスクのテキスト部全体が収容可能な領域を設けるステップと、
前記アプリケーションタスクの実行時に、前記領域に当該テキスト部全体の物理アドレスを固定的に割り当てるステップと、
を備えることを特徴とするアドレスマッピング方法。
【請求項２】
前記アプリケーションタスクの切り替えに応じて、前記領域に対する割り当てを、実行対象となる当該プリケーションタスクの当該テキスト部全体の物理アドレスに切り替えるステップを備えることを特徴とする請求項１に記載のアドレスマッピング方法。
【請求項３】
前記アプリケーションタスクの切り替えに応じて、前記ＴＬＢの所定の領域に対する割り当てを、実行対象となる当該プリケーションタスクのデータ部の物理アドレスに切り替えるステップを備えることを特徴とする請求項２に記載のアドレスマッピング方法。
【請求項４】
ＴＬＢミスヒットの履歴を蓄積するステップと、
前記履歴を蓄積するステップによりＴＬＢミスヒットの頻発が認められた物理アドレスを前記ＴＬＢの論理アドレスに割り当てるステップと、
を備えることを特徴とする請求項１〜３のいずれか１項に記載のアドレスマッピング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理アドレスを物理アドレスに変換するＴＬＢにおけるアドレスマッピング方法に関する。
【背景技術】
【０００２】
各種プラントにおけるフィールド制御や安全計装に関するシステムにおいて、制御演算を実行するＣＰＵとして、ＭＭＵ（Memory Management Unit）内蔵型ＣＰＵを使用しており、ＯＳ（Operating System）はＭＭＵのＴＬＢ（Translation Look aside Buffer）機構を用いてメモリアクセスを実行している。
【０００３】
ＴＬＢには論理アドレスと主記憶上の物理アドレスとが対応付けられており、ＯＳから提供される論理アドレスにアプリケーションタスクがアクセスすると、ＣＰＵはＴＬＢ機構を用いて論理アドレスを物理アドレスに変換し、主記憶上の物理アドレス空間にアクセスしてデータの読み書きを行う。このときアドレス変換は、ＴＬＢ機構に設定されたページサイズの範囲に従って行われる。例えばＴＬＢ機構にページサイズ：４ＫＢ、論理アドレス：0x1000と設定されていた場合、論理アドレス：0x10000〜0x1FFFの４ＫＢの範囲を対応する物理アドレスに変換することができる。ＴＬＢ機構は、変換サイズ、論理アドレス、物路アドレスを１組とし、ＣＰＵの仕様によって設定できる組数が決められている。
【０００４】
ＴＬＢ機構にすでに変換表が設定されている場合のアドレス変換の手順を以下に示す。
（ステップ＃１）タスクが論理アドレス空間にアクセス
（ステップ＃２）ＴＬＢ機構上に対応する論理アドレスがあるかサーチ
（ステップ＃３）ＴＬＢ機構に対応する論理アドレスが設定されていることを検出（ＴＬＢヒット）
（ステップ＃４）検出した論理アドレスを変換表でアドレス変換し、物理アドレス空間にアクセス
【０００５】
次に、ＴＬＢ機構に変換表が設定されていない場合のアドレス変換の手順を以下に示す。
（ステップ＃１）タスクが論理アドレス空間にアクセス
（ステップ＃２）ＴＬＢ機構上に対応する論理アドレスがあるかサーチ
（ステップ＃３）ＴＬＢ機構に対応する論理アドレスが設定されていないことを検出（ＴＬＢミスヒット）
【０００６】
このとき例外が発生し、ＴＬＢ例外ハンドラルーチンが呼ばれ、以下の処理が実行される。
（ステップ＃５）主記憶上のページテーブル領域を探索し、論理アドレスに対応した物理アドレスを検出
（ステップ＃６）ページテーブル領域から検出した物理アドレスをＴＬＢ機構に設定
（ステップ＃７）新たに設定した変換表でアドレス変換し、物理アドレス空間にアクセス
【０００７】
このように、ＴＬＢミスヒットが発生すると、ＴＬＢ機構の設定を変更するための処理が実行される。この処理はＣＰＵにとって本来は不要な処理であり、ＴＬＢミスヒットが頻発すると制御演算などのＣＰＵが本来行うべき処理の実行速度に悪影響を及ぼす。
【０００８】
ＴＬＢ機構は、変換サイズを大きくするとＴＬＢミスヒットの発生頻度を減少させることができ、パフォーマンスを向上させることができる利点があるが、主記憶上の無駄な領域が増加する欠点がある。逆に変換サイズを小さくすると、主記憶を有効利用することができるとともに、個々の領域のアクセス権限を細かく設定できるためセキュリティ性を向上できる利点があるが、ＴＬＢミスヒットが増加する欠点がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−９４９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
フィールド制御や安全計装に関するアプリケーションのテキスト部は、約４ＭＢの大きさがある。しかし、通常、ＴＬＢ機構の変換サイズは最小の４ＫＢとしているため、テキスト部を４ＫＢ単位で分割した状態でＴＬＢに設定している。また、テキスト部を固定的にＴＬＢに設定していないため、ミスヒットの発生に伴ってＴＬＢに設定されているテキスト部の領域は動的に変化し、ＴＬＢから消去されたテキスト部へのアクセス時にもＴＬＢミスヒットが発生する。このため、ＴＬＢ例外ハンドラルーチンの呼出し回数が増加し、パフォーマンスに悪影響を及ぼしている。
【００１１】
本発明の目的は、プログラム実行時におけるＴＬＢミスヒットの発生頻度を抑制できるアドレスマッピング方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明のアドレスマッピング方法は、論理アドレスを物理アドレスに変換するＴＬＢにおけるアドレスマッピング方法において、ＴＬＢの論理アドレスとして、アプリケーションタスクのテキスト部全体が収容可能な領域を設けるステップと、前記アプリケーションタスクの実行時に、前記領域に当該テキスト部全体の物理アドレスを固定的に割り当てるステップと、を備えることを特徴とする。
このアドレスマッピング方法によれば、アプリケーションタスクの実行時には、ＴＬＢに当該アプリケーションタスクのテキスト部全体の物理アドレスが固定的に割り当てられるので、テキスト部への論理アクセス時にＴＬＢミスヒットが生じることなく、ＴＬＢミスヒットの発生頻度を抑制できる。
【００１３】
前記アプリケーションタスクの切り替えに応じて、前記領域に対する割り当てを、実行対象となる当該プリケーションタスクの当該テキスト部全体の物理アドレスに切り替えるステップを備えてもよい。
【００１４】
前記アプリケーションタスクの切り替えに応じて、前記ＴＬＢの所定の領域に対する割り当てを、実行対象となる当該プリケーションタスクのデータ部の物理アドレスに切り替えるステップを備えてもよい。
【００１５】
ＴＬＢミスヒットの履歴を蓄積するステップと、前記履歴を蓄積するステップによりＴＬＢミスヒットの頻発が認められた物理アドレスを前記ＴＬＢの論理アドレスに割り当てるステップと、を備えてもよい。
【発明の効果】
【００１６】
本発明のアドレスマッピング方法によれば、アプリケーションタスクの実行時には、ＴＬＢに当該アプリケーションタスクのテキスト部全体の物理アドレスが固定的に割り当てられるので、テキスト部への論理アクセス時にＴＬＢミスヒットが生じることなく、ＴＬＢミスヒットの発生頻度を抑制できる。
【図面の簡単な説明】
【００１７】
【図１】ＭＭＵ内蔵型ＣＰＵのハードウェア構成を示す図。
【図２】ＴＬＢ機構のエントリ方法の一例を示す図。
【図３】ＴＬＢエントリの切り替え方法を示す図。
【図４】ＴＬＢエントリの切り替え動作を示すタイミングチャート。
【発明を実施するための形態】
【００１８】
以下、本発明によるアドレスマッピング方法の実施形態について説明する。
【００１９】
図１は、ＭＭＵ内蔵型ＣＰＵのハードウェア構成を示す図である。
【００２０】
図１に示すように、ＣＰＵ１０にはＭＭＵ１が内蔵され、ＭＭＵ１にはＴＬＢ機構２が設けられている。また、ＣＰＵ１０には、フィールド制御や安全計装に関するアプリケーションを実行する制御演算機構３と、キャッシュメモリ４と、が設けられている。
【００２１】
さらに、ＣＰＵ１０はメモリバス６を介して主記憶５に接続される。
【００２２】
図２はＴＬＢ機構のエントリ方法の一例を示す図である。
【００２３】
図２に示すように、フィールド制御または安全計装に関するアプリケーションタスクである「タスクＡ」は、テキスト部とデータ部とに分かれて、主記憶５上に保持されている。テキスト部はタスクＡのプログラム本体であり、データ部はタスクＡのプログラム本体以外の変数、配列等のデータからなる。
【００２４】
図２に示すように、本実施形態では、ＴＬＢ機構２のエントリの一部をタスクテキスト部専用エントリ２１として確保する。また、専用エントリ２１に対して、タスクＡのテキスト部全体が収まるようにページサイズを指定し（図２の例では、１６ＭＢ）、論理アドレスおよび主記憶５上の物理アドレスを対応付けて設定する。
【００２５】
さらに、専用エントリ２１がＴＬＢミスヒット発生時に変更されることを防ぐために、ＯＳは専用エントリ２１をロックして変更されないようにＴＬＢ機構２を管理する。したがって、長時間アクセスがなかった領域も含め、テキスト部のアドレスがＴＬＢ機構２から消去されることがない。
【００２６】
一方、タスクＡのデータ部については、ミスヒットの発生時にＴＬＢ機構２への設定の変更が行われるため、ＴＬＢ機構２のエントリに割り当てられるデータ部のアドレスは動的に変化する。
【００２７】
このように、本実施形態ではタスクＡのテキスト部の全領域がＴＬＢ機構２に固定されるため、テキスト部のどの領域に論理アクセスをしてもＴＬＢミスヒットは発生しない。これにより、ＴＬＢミスヒットを大幅に減らすことができ、従来、ＴＬＢミスヒット時例外ハンドラ処理に割かれていたＣＰＵ資源を、制御演算等のフィールド制御または安全計装に関わる本来の処理に利用できるようになり、システムのパフォーマンスを向上させることができる。
【００２８】
なお、上記実施形態では、単一のエントリにテキスト部全体を収容しているが、複数のエントリに分割してもよい。この場合には、当該複数のエントリをすべてロックすることで、テキスト部全体のアドレスをＴＬＢ機構に保持できる。
【００２９】
図３は、アプリケーションタスクをマルチタスクとして実行する場合のＴＬＢエントリの切り替え方法を示す図である。通常、フィールド制御や安全計装に関するシステムでは、システム中に複数のアプリケーションタスクが存在し、リアルタイムＯＳがタスクの切り替えを行い、マルチタスクで処理を実行している。
【００３０】
図３では、アプリケーションタスクとして、タスクＡおよびタスクＢを切り替えて実行する例を示している。この場合、タスクＡを実行中にはタスクＡのテキスト部全体をＴＬＢ機構２に、タスクＢを実行中にはタスクＢのテキスト部全体をＴＬＢ機構２に、それぞれ設定する必要がある。このため、タスクＡの実行時には専用エントリ２１にタスクＡのテキスト部全体を収容し、タスクＡの実行中は専用エントリ２１をロックしてその変更を防ぐ。同様に、タスクＢの実行時には専用エントリ２１にタスクＢのテキスト部全体を収容し、タスクＢの実行中は専用エントリ２１をロックする。
【００３１】
図４はこの場合の動作を示すタイミングチャートである。
【００３２】
図４に示すように、本実施形態では、ＯＳがタスクコンテキストを切り替えるタイミングで、ＴＬＢ機構２の専用エントリ２１の内容を変更する。
【００３３】
例えば、タスクＡからタスクＢに切り替わる場合、以下の処理をＯＳが実行する。
（ステップ＃１）タスクＡの実行中に割り込みが入り、ＯＳに処理が移る。
（ステップ＃２）ＯＳはタスクＡからタスクＢへの切り替え処理を行う。このとき、ＯＳは、それまでタスクＡのテキスト部全領域が設定されていたＴＬＢ機構２の専用エントリ２１に対して、タスクＢのテキスト部全領域を設定する（図３）。
（ステップ＃３）ＯＳはタスクＢをディスパッチ（実行開始）する。
（ステップ＃４）タスクＢの実行が開始される。このとき既に、ＴＬＢ機構２にはタスクＢｎのテキスト部全領域が設定されているので、タスクＢのテキスト部への論理アクセスではＴＬＢミスヒットは発生しない。
【００３４】
タスクＢからタスクＡに切り替わる場合には、同様に、ＴＬＢ機構２の専用エントリ２１に対して、タスクＢのテキスト部全領域に代わり、タスクＡのテキスト部全領域が設定される。
【００３５】
このように、タスクの切り替えに際してＴＬＢ機構２に対応するタスクのテキスト部を設定することで、テキスト部への論理アクセスにおけるＴＬＢミスヒットを回避し、システムのパフォーマンスを向上させることができる。
【００３６】
本実施形態では、ＴＬＢ機構２に設定されるテキスト部のみを切り替える例を示したが、複数のアプリケーションタスク間でデータ部を構成するデータが大きく異なる場合には、タスクの切り替えに際して、ＴＬＢ機構２に設定されるデータ部をテキスト部と同時に切り替えるようにしてもよい。例えば、ＴＬＢ機構２にデータ部を設定するための特定のエントリ群の範囲を設け、タスクＡの実行時にはタスクＡのデータ部を、タスクＢの実行時にはタスクＢのデータ部を、それぞれ上記エントリ群に設定すればよい。この場合には、ＴＬＢ機構２に設定されるデータ部のアドレスが、常に実行中のタスクに対して最適化されるため、ＴＬＢミスヒットを更に抑制することができる。
【００３７】
上記各実施形態に対し、ＯＳにＴＬＢミスヒット解析機構を付加することもできる。
【００３８】
ＴＬＢミスヒット解析機構の動作を以下に示す。
（１）ＴＬＢミスヒットが発生した場合、そのアドレスをログに残す。
（２）ある程度ログを蓄積した段階で、過去一定期間でＴＬＢミスヒットが頻発したアドレスの領域を抽出する。
（３）抽出されたアドレスの領域をＴＬＢ機構に保持し、この保持領域をロックすることで変更を防ぐ。
（４）（１）〜（３）を繰り返し、前回抽出された領域以上にＴＬＢミスヒットが頻発する領域が抽出される場合には、今までの領域に代えて、新たなに抽出された領域をＴＬＢ機構の保持領域に設定し、この保持領域をロックする。
【００３９】
このようなＴＬＢミスヒット解析機構により、メモリの使われ方が動的に変化するシステムなど、ＴＬＢミスヒットの発生箇所が変化する場合でも、効果的にＴＬＢミスヒット回数を抑制できる。
【００４０】
マルチタスク動作の場合には、それぞれのタスクごとにＴＬＢミスヒット解析を独立して実行することで、各タスクについてＴＬＢ機構に設定されるアドレスを最適化することができる。
【００４１】
本発明の適用範囲は上記実施形態に限定されることはない。本発明は、論理アドレスを物理アドレスに変換するＴＬＢにおけるアドレスマッピング方法に対し、広く適用することができる。
【符号の説明】
【００４２】
２      ＴＬＢ機構（ＴＬＢ）
１０    ＣＰＵ
【図１】
2010191645.tif 000003
【図２】
2010191645.tif 000004
【図３】
2010191645.tif 000005
【図４】
2010191645.tif 000006