図面 (/)

技術 複数処理装置アクセスシステム

出願人 エイチピー・インク
発明者 トニー・エム・ブルワーケニース・チャネイロジャー・サンシャイン
出願日 1998年4月21日 (21年3ヶ月経過) 出願番号 1998-110274
公開日 1998年12月8日 (20年8ヶ月経過) 公開番号 1998-326223
状態 特許登録済
技術分野 メモリシステム 階層構造のメモリシステム マルチプロセッサ マルチプログラミング
主要キーワード 一時記憶レジスタ 予約アドレス 共用メモリシステム 宛先ノード識別子 プログラムエラー 局所メモリ ベースノード サブセグメント
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(1998年12月8日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (8)

課題

マイクロカーネル一時記憶や処理時間の浪費を生じることなくしかもキャッシュコヒーレントな環境で、物理的アドレス空間を「オンザフライ」で同時に共用するように現われることを可能にすること。

解決手段

処理装置メモリ要求を行なってマイクロカーネルがロードされた所定の物理的メモリ領域アクセスするときこれを検出するように配設された機構によって達成される。かかるアクセスはそのマイクロカーネルがロードされたノード固有アドレス範囲にマップされる。更に、他の処理装置からの参照がその情報を同時に返すか又はマップされた領域からそのマイクロカーネルにアクセスしようとするかするとき、その情報は「ノードゼロ」にマップし戻され、キャッシュコヒーレントな態様での処理が可能となる。

概要

背景

大域共用メモリを用いた共用メモリシステムでは、一般的にはシステム全体に対して1つのアドレス空間が設けられている。この空間内では、複数の独立したハードウエアノードのそれぞれに対して、物理メモリ内固有アドレス群割り当てられている。かかる独立したハードウエアノードにはそれぞれそのシステム上で使用されるオペレーティングシステム(OS)の対応するマイクロカーネルがロードされている。

マイクロカーネルはシステム内のOSの最低位のレベルみなすことができる。マイクロカーネルは仮想メモリ全体を実行するアプリケーションであるため、物理的メモリにロードされ、実行される。物理的メモリは、上述したようなマップを持たず、それぞれのノードに固有のアドレス空間を有する明確に同定されたメモリ領域である。それぞれのマイクロカーネルは正規プログラムとしてコンパイルされ、従ってメモリへの参照は全て物理的メモリ上の固有アドレス空間内の絶対アドレスに対して行なわれる。従って、マイクロカーネルをメモリにロードする場合には、マイクロカーネルにコンパイルされた正確なメモリアドレスに対して行なわれなければならない。

マイクロカーネルを用いた再配置可能アドレス指定を用いる方法は当該技術分野において周知であることに注意されたい。しかし、この方法は最適というにはほど遠く、従って一般的には用いられない。この方法は非標準実行モード起動するが、このモードは処理時間がかかり、一般に効率が低い。更に、この方法を用いる場合には、安定性の低いコンパイラ戦略が必要になり、実行時にソフトウエアエラーをさらに発生させる可能性がある。従って、マイクロカーネルを処理する際には再配置可能でないメモリ参照(すなわち、絶対的アドレス指定)を用いることが好適である。

OS上でランするほとんどのアプリケーションはこのようなフレキシビリティ欠如に耐えるものである必要はない。これはそれぞれのアプリケーションが自らの仮想アドレス空間を備え、従ってほとんどあらゆるアドレスがそのアプリケーションの特定のメモリ参照に対処し得るようにマップすることができる。

マイクロカーネルは、しかしながら、この機能を持つように配置されないという点で変則的なものである。マイクロカーネルが物理的アドレス空間にロードされるときにはマップがなく、従って指定された実アドレスにロードしなければならない。また、あるシステムの物理的アドレス空間は、それぞれのノードに対する一連の固有のアドレスからなるため、異なるノードにロードされたマイクロカーネルをいくつかの処理装置間共用することが望ましい場合にメモリ管理上の問題が発生する。

従って、それぞれのノードが自らの物理的メモリ領域を有し、そのアドレス空間を複数のマイクロカーネルによってコンパイルすることのできる機構が必要となってきている。同時に、それらを合わせた全アドレススペースユーザーアプリケーション用の大域共用メモリシステムを可能とするように協働するものでなければならない。

当該技術分野の現行のシステムでは、煩雑な変換テーブルおよび一時記憶レジスタを用いて複数のマイクロカーネルによって物理的メモリアドレス空間をコンパイルすることが可能である。追加の記憶レジスタを用いたこれらのテーブルの処理は処理時間を著しく浪費する。

概要

マイクロカーネルが一時記憶や処理時間の浪費を生じることなくしかもキャッシュコヒーレントな環境で、物理的アドレス空間を「オンザフライ」で同時に共用するように現われることを可能にすること。

処理装置メモリ要求を行なってマイクロカーネルがロードされた所定の物理的メモリ領域にアクセスするときこれを検出するように配設された機構によって達成される。かかるアクセスはそのマイクロカーネルがロードされたノードの固有アドレス範囲にマップされる。更に、他の処理装置からの参照がその情報を同時に返すか又はマップされた領域からそのマイクロカーネルにアクセスしようとするかするとき、その情報は「ノードゼロ」にマップし戻され、キャッシュコヒーレントな態様での処理が可能となる。

目的

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

それぞれが独立したメモリノードにロードされた複数のマイクロカーネルへの複数の処理装置によるアクセスを可能とするシステムであって、第1のプロトコルによって全ての処理装置によるマイクロカーネルへの参照によって同一にアドレス指定されるベースノードがあらかじめ定められ、第2のプロトコルによって前記ノード上に同定可能な予約アドレス空間があらかじめ定められ、前記予約スペースは前記ノードによるマイクロカーネルの記憶に用いられ、処理装置参照によって指定されるメモリアドレスビットシーケンスもまた(1)宛先ノード識別子および(2)前記宛先ノード内の宛先ノードアドレスを含むようにあらかじめ定められるシステムにおいて、処理装置のメモリ参照によって指定されたメモリアドレスのビットシーケンスを構文解析する手段と、前記メモリ参照の宛先ノードアドレスが第2のプロトコルに従ってノードにマイクロカーネルを記憶するように予約されたアドレス空間内にあるとき、前記メモリ参照をマイクロカーネル参照として認識する手段と、マイクロカーネル参照上の宛先ノード識別子をそのマイクロカーネル参照が参照する対応するマイクロカーネルを記憶する局所ノードの識別子に変換する手段とを有することを特徴とするシステム。

技術分野

0001

本発明は一般的には汎用コンピュータにおける大域共用メモリの管理に関し、特に、異なるメモリノードにロードされた異なるソフトウエアカーネルを変換テーブルあるいは一時記憶装置を用いることなく複数の処理装置によって同時にアクセスすることを可能にするものである。

背景技術

0002

大域共用メモリを用いた共用メモリシステムでは、一般的にはシステム全体に対して1つのアドレス空間が設けられている。この空間内では、複数の独立したハードウエアノードのそれぞれに対して、物理メモリ内固有アドレス群割り当てられている。かかる独立したハードウエアノードにはそれぞれそのシステム上で使用されるオペレーティングシステム(OS)の対応するマイクロカーネルがロードされている。

0003

マイクロカーネルはシステム内のOSの最低位のレベルみなすことができる。マイクロカーネルは仮想メモリ全体を実行するアプリケーションであるため、物理的メモリにロードされ、実行される。物理的メモリは、上述したようなマップを持たず、それぞれのノードに固有のアドレス空間を有する明確に同定されたメモリ領域である。それぞれのマイクロカーネルは正規プログラムとしてコンパイルされ、従ってメモリへの参照は全て物理的メモリ上の固有アドレス空間内の絶対アドレスに対して行なわれる。従って、マイクロカーネルをメモリにロードする場合には、マイクロカーネルにコンパイルされた正確なメモリアドレスに対して行なわれなければならない。

0004

マイクロカーネルを用いた再配置可能アドレス指定を用いる方法は当該技術分野において周知であることに注意されたい。しかし、この方法は最適というにはほど遠く、従って一般的には用いられない。この方法は非標準実行モード起動するが、このモードは処理時間がかかり、一般に効率が低い。更に、この方法を用いる場合には、安定性の低いコンパイラ戦略が必要になり、実行時にソフトウエアエラーをさらに発生させる可能性がある。従って、マイクロカーネルを処理する際には再配置可能でないメモリ参照(すなわち、絶対的アドレス指定)を用いることが好適である。

0005

OS上でランするほとんどのアプリケーションはこのようなフレキシビリティ欠如に耐えるものである必要はない。これはそれぞれのアプリケーションが自らの仮想アドレス空間を備え、従ってほとんどあらゆるアドレスがそのアプリケーションの特定のメモリ参照に対処し得るようにマップすることができる。

0006

マイクロカーネルは、しかしながら、この機能を持つように配置されないという点で変則的なものである。マイクロカーネルが物理的アドレス空間にロードされるときにはマップがなく、従って指定された実アドレスにロードしなければならない。また、あるシステムの物理的アドレス空間は、それぞれのノードに対する一連の固有のアドレスからなるため、異なるノードにロードされたマイクロカーネルをいくつかの処理装置間共用することが望ましい場合にメモリ管理上の問題が発生する。

0007

従って、それぞれのノードが自らの物理的メモリ領域を有し、そのアドレス空間を複数のマイクロカーネルによってコンパイルすることのできる機構が必要となってきている。同時に、それらを合わせた全アドレススペースユーザーアプリケーション用の大域共用メモリシステムを可能とするように協働するものでなければならない。

0008

当該技術分野の現行のシステムでは、煩雑な変換テーブルおよび一時記憶レジスタを用いて複数のマイクロカーネルによって物理的メモリアドレス空間をコンパイルすることが可能である。追加の記憶レジスタを用いたこれらのテーブルの処理は処理時間を著しく浪費する。

発明が解決しようとする課題

0009

従って、当該技術分野において、マイクロカーネルが一時記憶や処理時間の浪費を生じることなくしかもキャッシュコヒーレントな環境で、物理的アドレス空間を「オンザフライ」で同時に共用するように現われることを可能にすることが必要とされている。

課題を解決するための手段

0010

本発明によれば、上記の目的・特徴および改善、その他の目的・特徴および改善は、処理装置がメモリ要求を行なってマイクロカーネルがロードされた所定の物理的メモリ領域にアクセスするときこれを検出するように配設された機構によって達成される。かかるアクセスはそのマイクロカーネルがロードされたノードの固有アドレス範囲にマップされる。この同定マッピングおよびルート指定処理は、アクセス対象であるアドレス内のビットの状態を分析することによって「オンザフライ」で実行可能である。更に、他の処理装置からの参照がその情報を同時に返すか又はマップされた領域からそのマイクロカーネルにアクセスしようとするかするとき、その情報は「ノードゼロ」にマップし戻され、キャッシュコヒーレントな態様での処理が可能となる。

0011

本発明をより詳細に説明するために、マイクロカーネルがロードされていると予想されるメモリ領域を、処理装置が参照するものと仮定する。かかる領域は通常、64MBのセグメントに分割されたノード内の最初の16MBのサブセグメントあるいは5番目の16MBのサブセグメントのいずれかである。本発明では、かかる処理装置による参照が「オンザフライ」で検出され、所望のマイクロカーネルがロードされたノードのメモリの最初の16MBのサブセグメントおよび5番目の16MBのサブセグメントにマップされる。これによって、それぞれのノードの処理装置はその処理装置のノードにロードされたマイクロカーネルにアクセスすることができる。

0012

この原理は他のノードあるいは他の処理装置がそのノード上でキャッシュコヒーレントな環境で動作し得るように拡張される。本発明では、本発明に従ってマップされたメモリ領域をキャッシュに入れた第1の処理装置に対して第2の処理装置から送られたコヒーレンシートラフィックを検出する。このコヒーレンシートラフィックは、第1の処理装置に送り戻されて無効化又はフラッシュ態様の操作をされる前に、第1の処理装置が使用した元の物理メモリアドレス空間に自動的にマップし戻される。これによって、第2の処理装置は本発明に従ってマップされたアドレス空間をそのキャッシュ内にある空間として同定することができ、その結果そのノード内でキャッシュコヒーレントな動作が可能であり、同時にノード単位でマイクロカーネルをロードする機能は維持される。

0013

従って、本発明の技術的利点は、処理装置が変換テーブルやそれに関係する中間的な記憶を必要とすることなく複数のマイクロカーネルに共用的にアクセスすることが可能であることである。これによって、共用環境におけるマイクロカーネル参照の処理が最適化される。

0014

本発明の他の技術的利点は、前記アクセスをキャッシュコヒーレントな環境で実行可能であることである。

0015

以上は後の本発明の詳細の詳細な説明の理解を助けるためにその特徴および技術的利点をかなり概括的に説明したものである。本発明のこれ以外の特徴および利点もまた以下に説明され、それらは本発明の特許請求の範囲の対象となる。当業者にはここに説明する概念および具体的実施形態は本発明の目的を達するための変更あるいは他の構造の設計の基礎として容易に利用可能であることが理解されよう。また、当業者にはかかる均等な構造は特許請求の範囲に定める本発明の要旨および範囲から逸脱するものではないことは明らかであろう。

発明を実施するための最良の形態

0016

図1には、ノード識別子(「ノードID」)00および01を備えた2つの対応するノードに割り当てられた、2つのメモリ構造00および01を備えた物理メモリ10の一部分を示す。それぞれのノードは固有のアドレス範囲を有する。

0017

ここに説明する実施形態においては、それぞれのノードはそれぞれが4つの16MBのサブセグメントを有する64MBのセグメントに分割されるが、本発明は異なる構成のメモリ構造にも適用可能であることは明らかである。図1において、メモリ構造00の最初の2つの64MBセグメントを101および102で示し、メモリ構造01の最初の2つの64MBセグメントを103および104で示している。それぞれの64MBセグメントはそれぞれが16MBのサブセグメントを有する4つの下位区分に分割される。セグメント101についてはこれらの行は101−1、101−2、101−3および101−4で示されている。セグメント102についてはこれらの行は102−1、102−2、102−3および102−4で示されており、以下同様である。それぞれの行は40ビット参照に基づく一連の独自にアドレス指定される記憶場所を含む。たとえば、行101−1は(16進数すなわち「Hex」で表わした場合)アドレス00 00000000から00 00FFFFFFを備え、行102−1はアドレス00 04000000から00 04FFFFFFを備え、行103−1はアドレス08 00000000から08 00FFFFFFを備え、以下同様である。

0018

ノードIDと図1に示す物理メモリアドレスとの間の関係を、図2と更に下記の表1を参照して説明する。しかし、以下の関係は例に過ぎず、本発明は他の態様で構成されたメモリ構造にも同様に適用可能であることをまず再度強調しておかねばならない。図2には、メモリアドレスとして用いられる40ビットワードのビットレイアウトを示す。ノードIDは当該技術分野において通常行なわれるように最上位の5ビット(すなわちビット0ないし4)に配置される。残りの35ビット(ビット5ないし39)は、そのノード内の詳細な物理メモリアドレスを、そのアドレスが存在するそのノード内の物理的に連続するメモリの(ノードゼロからの)オフセットを示すことによって同定する。また本実施形態においては14番目のビット(すなわちビット13)も、このビットが「1」であるときこれはある特定のメモリアドレスがノードゼロから見て少なくとも5番目の16MBサブセグメントにある(すなわち、16MBサブセグメント4つ分だけオフセットされている)ことを示すという点で重要である。これは14番目のビットはノードゼロからの64MBのオフセットを表わすためである。

0019

ここで、下の表1を見ると、図2の40ビットワードは10文字16進(Hex)ワードとして表わすことも可能であることがわかる。また、表1には本発明で用いられるメモリ構造の例をさらに示すために図1が参照されている。すなわち、表1からノードIDは最初の5ビット(すなわちビット0ないし4)に配置され、ビット5ないし12およびビット14、15が全て0であるとき、このアドレスはノードの最初あるいは5番目の16MBサブセグメントのいずれかにある(すなわちオフセットがゼロか、あるいは16MBサブセグメント4つ分だけオフセットされた16MBサブセグメントかのどちらかにある)。

0020

0021

更に、マイクロプロセッサ技術においては、メモリノードへのマイクロカーネルのローディングは、従来アドレスノードゼロから開始されていることは理解されよう。従来、マイクロカーネルの固定的に割り当てられた部分の大きさが32MBを超えることはなく、従って、マイクロカーネルの最初の16MBはノードの最初の16MBサブセグメント、すなわちアドレスノードゼロを含む16MBサブセグメントにロードされる。マイクロカーネルの大きさが16MBを超えると、その超過部分は通常そのノードの5番目の16MBサブセグメント(すなわち、そのノード内の2番目の64MBセグメントの最初の16MBサブセグメント、すなわち上の表1でいえば、16MBサブセグメント4つ分だけオフセットされた16MBサブセグメント)にロードされる。

0022

従って、本発明は、処理装置が参照するアドレスのビットレイアウトの分析によってマイクロカーネルのメモリを参照するものとみなすことができる。ビット5ないし12およびビット14、15が全てゼロである場合、あるノードのオフセットゼロの位置あるいは4つ分オフセットされた位置のいずれかにある16MBサブセグメントを参照しなければならない。これが、ノード内のマイクロカーネルがロードされる位置である。本発明によれば、その後ノードID(これはマイクロカーネルの参照であることがすでに判定されているため0でなければならない)が処理装置が現在参照しているノードのノードIDに変換される。その後、このマイクロカーネル参照は他の任意の通常の大域共用メモリの参照と同様に取り扱うことができる。

0023

キャッシュのコヒーレンシーは逆マッピングによって実現可能である。第1の処理装置が、マイクロカーネル参照が行なわれている第2の処理装置に、コヒーレンシー要求を送るとき、もし第2の処理装置がそれ以前にこのマイクロカーネル参照のノードIDをノード00から現在のノードに変換していると、問題が生ずる。従って、このノードIDはコヒーレンシー要求が処理される前に00に変換し戻さなければならない。従って、この場合も、マイクロカーネル参照は上述したビット5ないし12およびビット14、15を分析することによってコヒーレンシー要求内で認識することができる。参照がマイクロカーネルへの参照として同定されると、処理装置にコヒーレンシー要求を送る前にノードIDが00に変換し戻される。

0024

以上の論理は全て当該技術分野で現在実行されているようなテーブルや一時記憶レジスタを用いることなく「オンザフライ」で実行可能であることが理解されよう。処理時間と一時記憶の最適化の可能性があることは自明である。

0025

図1Aは本発明によって解決される問題の説明を助けるものである。図1Aにはマイクロカーネルコード内で通常用いられる、コンパイラへの簡単なロードワード命令を示し、この命令はコンパイラに特定のメモリアドレス00 00000000の値をレジスタ2にロードするよう命じるものである。この命令の機能はあるノードの最初のメモリアドレス内の値をレジスタ2にロードすることである。しかし、これはマイクロカーネルコードであるため、絶対的メモリアドレスを用いなければならない。ここでさらに図1を見ると、このマイクロカーネルがノード00にロードされる場合、00 00000000はそのノードの最初のメモリアドレスの正確なアドレスであるため、システムはこの命令を適正に実行することができる。しかし、このマイクロカーネルがノード01にロードされる場合、システムはこの命令を適正に実行することはできない。ノード01の最初のメモリアドレスの正確なアドレスはアドレス08 00000000の行103−1にある。しかし、図1Aにおいてはアドレス00 00000000からのロードが必要であり、変換が必要である。従って、多ノードシステムによるマイクロカーネルの適切な共用を可能とするために、本発明ではマイクロカーネルのメモリ参照のノードIDアドレスを、処理装置が正確にアドレス指定された自らの物理空間が実際に他のノードのメモリ空間に「透明に」マップされていた場合に、この自らの物理空間内のマイクロカーネルを参照していると「信じる」ように変換する。

0026

図3には本発明において上述したような処理装置からメモリへの要求を可能にするための論理の一例を示す。図4には本発明において上述したような処理装置へのコヒーレンシー要求を可能にするための論理の一例を示す。

0027

まず「メモリへの処理装置要求」と題する図3に転じて、ブロック301および302でまずメモリ参照のアドレスがチェックされ、ビット5ないし12およびビット14、15が全て値0であるかどうかが調べられる。これらが全て値0である場合、このメモリ参照がノード中の最初の16MBサブセグメントと5番目の16MBサブセグメントのどちらへの参照であるかを有効に推論し、それによってそのメモリ参照がマイクロカーネルに対して行なわれていることを示すことができる。

0028

一方、ブロック301および302におけるチェックの結果がNOである場合、マイクロカーネルがロードされたと予想された以外の場所に対して通常の大域共用メモリ参照が行なわれたものと推論される(ブロック303)。この場合、通常のメモリマッピング機能がこの参照の要求に応えてそのコードの適正な実行を可能とする。

0029

図3のブロック301および302に戻って、ビット5ないし12およびビット14、15が全て0である場合、ノードID変換によって、このメモリ参照は参照対象であるマイクロカーネルがロードされたノードを参照するように強制される(ブロック304)。たとえば、図1に戻って、参照対象であるマイクロカーネルがノード01にロードされている場合、ブロック304におけるノードID変換の結果、そのノードへの対応する参照が強制される。

0030

この強制ノードID変換は図3においてブロック305および306に移行することによって実行される。まず、アドレスビット0ないし4が全て0であるかどうかがチェックされる。本発明では、この処理段階ではこれらは全て当然0でなければならない。これは、元の参照がマイクロカーネルに対して行なわれたものであることがすでに判定されているためである。実際に、ブロック305および306でアドレスビット0ないし4の全てが0でない場合、ブロック307でエラーが検出され、ソフトウエアの修正が必要であるものと同定される。しかし、これらのビットが全て0であるとすると、ブロック308でこれらのビット0ないし4が参照対象であるマイクロカーネルがロードされているノードのIDに置き換えられる。これによって、このマイクロカーネルメモリ参照は他の任意の通常の大域共用メモリ参照と同様に処理することができる(ブロック309)。

0031

図3のブロック310および311はこの変換をさらに詳細に示している。ブロック310には、ビット5ないし12およびビット14、15が全て0であったために、ブロック301および302を通過したマイクロカーネルメモリ参照の一例を示している。また、この種のメモリ参照について予想される通り、ビット0ないし4もまた全て0であることが理解されよう。ここでこの参照が図1に示すようなノード01にロードされたマイクロカーネルへの参照であると仮定する。すると、このノードはこのメモリ参照の参照する正確な物理アドレス0000000000を含んでいない。ブロック311に移行して、ブロック305、306および308における変換が行なわれ、ビット0ないし4のノードIDがそのマイクロカーネルに対応するノードに置き換えられる。図3に示す例では、これは値00001であり、これは16進数ではそのノード内のオフセットの3つの最上位ビットを含めて、16進値08となる。

0032

ここで一旦図1に戻って、この16進値08はノード01内で参照した場合先頭の08に対応し、図3のメモリ参照が16MBサブセグメント103−1への参照であることを意味する。従って、この変換によってメモリ参照を適正なノードに送られたことになる、この変換を行なわない場合、この参照は図1のノード00に対して行なわれたはずである。この場合おそらくソフトウエアエラーが発生する。

0033

ここで「処理装置へのコヒーレンシー要求」と題する図4を見ると、フローチャートによって本発明に係る第1の処理装置から第2の処理装置へのマイクロカーネル参照を含むコヒーレンシー要求を実行可能とする論理の一例を示す。図4において、ブロック401において、ビット5ないし12およびビット14、15が調べられ、ブロック402でこれらが全て0であるかどうかがチェックされる。全て0である場合、図3のブロック301および302を参照して上に説明したように、マイクロカーネルメモリ参照のコヒーレンシー要求と推論することができる。処理はブロック404に移行する。一方、ビット5ないし12およびビット14、15が全て0でない場合、通常の大域共用メモリ参照のコヒーレンシー要求と推論することができ、このコヒーレンシー要求は変更を加えることなく第2の処理装置に直接送ることができる(ブロック403)。

0034

ビット5ないし12およびビット14、15が全て0であるときブロック404に移行して、コヒーレンシー要求を正確に満足するために、図3に示す変換で行なわれたようにノードID値を全て0に戻さなければならない。ブロック404でこの変換が行なわれ、変更された要求が第2の処理装置に送り返される(ブロック405)。

0035

図4に示すノードID値の変更をさらに図4のブロック410および411の例によって説明する。ブロック410は図3のブロック311で変換されたメモリ参照を示す。このとき、ノードIDは値00001を有し、これは16進値08を指し、図1の行103−1内のアドレスを指定する。ブロック404においてこれらのビットはブロック411に示すような値00000に置き換えられ、この値は16進数値0を表わし、図3における変換の前のマイクロカーネルメモリ参照を反映するものである。従って、このアドレスはノード00のアドレスに逆マッピングされ、これは第1の処理装置の予想するところであり、これによってこのコヒーレンシー要求は第1の処理装置のキャッシュ内で適切に実行可能となる。これは、第1の処理装置が最初にノード00アドレスを参照するものとの前提でこの要求を行なったためである。

0036

図5には本発明を実行することのできるアーキテクチャおよびトポロジーの一例を機能レベルで示す。大域共用メモリ環境で動作するほとんどのマイクロプロセッサシステムにおいて、個々の処理装置501はメモリアクセスプロトコル502を用いて局所メモリノードLMNおよびこれも他の処理装置によって共用される複数(n)の遠隔メモリノードRMN1ないしRMNnにアクセスする。

0037

本発明はメモリアクセスプロトコル502内で実行することによって効果を上げることができる。これによって、処理装置501がマイクロカーネルがロードされていると予想されるメモリ領域へのメモリ要求を行なうと、この事象はマイクロカーネル領域検出およびマッピング機能502Aによって認識される。このマッピング機能が終了し、要求が所望のマイクロカーネルがロードされたノードを参照するように変換されると、位置判定および経路指定機能502Bがこの要求を局所メモリノードLMNあるいは遠隔メモリノードRMN1ないしRMNnのうち適切な方に送る。これによって、マイクロカーネル参照は特定のアドレス空間への参照ではなく、大域共用メモリの一部となる。

0038

図6には当該技術分野において周知のアーキテクチャおよびトポロジーによる本発明の実施態様の一例を示す。図6において、処理装置P1ないしPxは同時に動作し、その過程でメモリ参照を行なう場合がある。かかるメモリ参照は対応する処理装置エージェントPA1ないしPAxを介してまたクロスバー601上で行なわれる。処理装置P1ないしPxに利用可能なメモリは大域共用される遠隔メモリ構造602および複数(y)の局所メモリ構造LM1ないしLMyに構成される。全てのメモリへのアクセスはメモリアクセスコントローラMAC1ないしMACyによって制御され、それぞれのメモリアクセスコントローラは対応する局所メモリ空間を管理し、同時に大域共用される遠隔メモリ602にアクセスする。

0039

図6の例では、本発明は処理装置エージェントPA1ないしPAxにおいて実施されている。これによって、処理装置P1ないしPAxがマイクロカーネル参照を行なうと、対応する処理装置エージェントPA1ないしPAxがこの事象を検出し、マッピング、位置判定および経路指定機能を実行して、必要な場合この参照をマイクロカーネルがロードされたノードを参照するように変換する。これによって、マイクロカーネルは局所メモリLM1ないしLMyであるか遠隔メモリ602であるかを問わず、このメモリ構造の任意の部分にロードすることができ、従って実際のマイクロカーネル参照が処理装置P1ないしPxからノード0の物理的アドレス空間に対して行なわれる場合であっても、マイクロカーネルは全ての処理装置P1ないしPxによって共用的にアクセス可能となる。

0040

また、キャッシュのコヒーレンシーも実現可能となる。第1の処理装置P1が処理装置P2にキャッシュコヒーレンシー要求を行ない、この要求がマイクロカーネル参照を含んでいるとき、処理装置エージェントPA1は上述したように本発明に従ってその参照を変換することはいうまでもない。しかし、本発明は処理装置PA2にも実施されていることが想起されよう。このコヒーレンシー要求は処理装置エージェントPA2によって同定およびテストされ、マイクロカーネル参照が行なわれるかどうかがチェックされる。マイクロカーネル参照が行なわれる場合、この参照のノードIDがノード00に変換し戻されて、処理装置P2はこのコヒーレンシー要求を解釈することができる。

0041

また、図6に加えて、本発明は他の態様のアーキテクチャおよびトポロジーを用いても実施可能であることが理解されよう。更に、本発明はコンピュータ可読記憶媒体および(キャッシュメモリおよびメインメモリを含む)にアクセスする処理装置を含む汎用コンピュータ上で実行可能なソフトウエア上で実施可能であることが理解されよう。

0042

本発明およびその利点を詳細に説明したが、特許請求の範囲に定める本発明の精神および範囲から逸脱することなくさまざまな変更、代替および改造が可能であることを指摘しておく。特に、実施形態は本発明を実施可能な1つの構成のみを例示するメモリ構造からなることが理解されよう。マイクロカーネルの位置およびサイズ、メモリセグメントのサイズ、メモリアドレスワードのサイズ等の変数および前記ワード内のビットの同定方法は本発明の精神および範囲から逸脱することなく変更可能であることは明らかであろう。

0043

以上、本発明の実施例について詳述したが、以下、本発明の各実施態様の例を示す。

0044

(実施態様1)それぞれが独立したメモリノードにロードされた複数のマイクロカーネルへの複数の処理装置によるアクセスを可能とするシステムであって、第1のプロトコルによって全ての処理装置によるマイクロカーネルへの参照によって同一にアドレス指定されるベースノードがあらかじめ定められ、第2のプロトコルによって前記ノード上に同定可能な予約アドレス空間があらかじめ定められ、前記予約スペースは前記ノードによるマイクロカーネルの記憶に用いられ、処理装置参照によって指定されるメモリアドレスのビットシーケンスもまた(1)宛先ノード識別子および(2)前記宛先ノード内の宛先ノードアドレスを含むようにあらかじめ定められるシステムにおいて、処理装置のメモリ参照によって指定されたメモリアドレスのビットシーケンスを構文解析する手段と、前記メモリ参照の宛先ノードアドレスが第2のプロトコルに従ってノードにマイクロカーネルを記憶するように予約されたアドレス空間内にあるとき、前記メモリ参照をマイクロカーネル参照として認識する手段と、マイクロカーネル参照上の宛先ノード識別子をそのマイクロカーネル参照が参照する対応するマイクロカーネルを記憶する局所ノードの識別子に変換する手段とを有することを特徴とするシステム。

0045

(実施態様2)マイクロカーネル参照の宛先ノード識別子が第1のプロトコルによるベースノードを同定しない場合、プログラムエラー報告する手段を有することを特徴とする実施態様1記載のシステム。

0046

(実施態様3)前記処理装置への後続のキャッシュコヒーレンシー要求に応答して、前記キャッシュコヒーレンシー要求を処理する前に局所ノード識別子を宛先ノード識別子に変換する手段を有することを特徴とする実施態様1または2記載のシステム。

発明の効果

0047

以上のように、本発明を用いると、処理装置が変換テーブルやそれに関係する中間的な記憶を必要とすることなく複数のマイクロカーネルに共用的にアクセスすることが可能である。これによって、共用環境におけるマイクロカーネル参照の処理が最適化される。

0048

また、本発明により、前記アクセスをキャッシュコヒーレントな環境で実行可能である。

図面の簡単な説明

0049

図1それぞれがノード00および01に対応する2つのメモリ構造00および01のメモリアドレスレイアウトの例を示す図である。
図1A物理的メモリ内の正確なアドレスを参照するマイクロカーネルコード内の「ワードロード」命令の一例を示す図である。
図2本発明の説明のために用いる40ビットメモリ参照のビットレイアウトの一例を示す図である。
図3本発明に係るメモリ要求の処理において用いられる論理の一例を示すフローチャートである。
図4本発明に係るコヒーレンシー要求の処理において用いられる論理の一例を示すフローチャートである。
図5本発明を実行することのできるアーキテクチャおよびトポロジーの一例を機能レベルで示すブロック図である。
図6本発明の多処理装置、多ノード環境における一実施態様を機能レベルで示すブロック図である。

--

0050

10:物理的メモリ101,102、103,104:64MBセグメント
101−1,101−2,101−3,101−4,102−1,102−2,102−3,102−4,103−1,103−2,103−3,131−4:セグメントの行
301、302、303、304、305、306、307、308、309、310、311:ステップ
401、402、403、404、405、410、411:ステップ
501:処理装置
502:メモリアクセスプロトコル
502A:マイクロカーネル領域検出およびマッピング機能
502B:位置判定および経路指定機能
601:クロスバー
602:遠隔メモリ構造

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 三菱電機株式会社の「 制御装置、機器および制御プログラム」が 公開されました。( 2019/06/27)

    【課題・解決手段】制御装置において、第1処理部(51)は、第1処理として、制御のための出力値の演算をデジタル演算装置(21)で実行する。第2処理部(52)は、第2処理として、第1処理の演算精度を上げる... 詳細

  • 三菱電機株式会社の「 コントローラシステム」が 公開されました。( 2019/06/27)

    【課題・解決手段】コントローラシステムは、コントローラ(1)と、コントローラ(1)と通信可能に接続された複数の入出力制御装置(4)と、複数の入出力制御装置(4)に接続されたセンサ機器(5)とを備える。... 詳細

  • ウィンボンドエレクトロニクスコーポレーションの「 半導体記憶装置」が 公開されました。( 2019/06/27)

    【課題】 複数のメモリチップから出力されるデータとDQS信号のズレを抑制する半導体記憶装置を提供する。【解決手段】 本発明のフラッシュメモリデバイス100は、積層されたメモリチップ200、300と... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ