(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムであって、
メモリ・コントローラおよびグラフィックス・コントローラと、
サイズと位置が定義されることによって前記グラフィックス・コントローラのためのフレーム・バッファが定義されるメモリ部分とを有した、前記メモリ・コントローラ及びグラフィックス・コントローラによってアクセス可能に構成された共用メモリと、
前記フレーム・バッファが定義されていない第１の状態のときには、
（ｉ）前記メモリ・コントローラと前記共用メモリとの間に第１のデータ・パスを形成し、
前記フレーム・バッファが定義されている第２の状態のときには、
（ｉｉ）前記メモリ・コントローラと、前記定義されたフレーム・バッファとを除いた共用メモリ部分との間に第２のデータ・パスを形成するとともに、
（ｉｉｉ）前記グラフィックス・コントローラと、前記定義されたフレーム・バッファとの間に第３のデータ・パスを形成する
スイッチ装置と
を有し、
これにより、前記第２の状態のときに前記メモリ・コントローラおよび前記グラフィックス・コントローラから、前記共用メモリへの同時アクセスを可能にすることを特徴とするコンピュータ・システム。
【請求項２】
サイズと位置が定義されることによってグラフィックス・コントローラのためのフレーム・バッファが定義される共用メモリであって、前記グラフィックス・コントローラとメモリ・コントローラとからアクセス可能な共用メモリ用のインタフェース装置であって、
前記メモリ・コントローラから第１のメモリ・アドレスを受け取るように結合された第１の入力と、
前記グラフィックス・コントローラから第２のメモリ・アドレスを受け取るように結合された第２の入力と、
前記フレーム・バッファが定義されている状態のときに該定義されたフレーム・バッファに前記第２のメモリ・アドレスを与え、それによって第１のアクセス・パスを介した前記メモリ・コントローラから前記共用メモリの前記フレーム・バッファを除いたメモリ部分へのアクセスと第２のアクセス・パスを介した前記グラフィックス・コントローラから前記定義されたフレーム・バッファへのアクセスとの同時アクセスを可能にするように選択的に動作し、かつ前記フレーム・バッファが定義されていない状態のときに前記共用メモリに第１のメモリ・アドレスを与え、それによって第３のアクセス・パスを介した前記メモリ・コントローラから前記共用メモリへの専用アクセスを可能にするように選択的に動作する、セレクタと
を備えることを特徴とするインタフェース装置。
【請求項３】
メモリ・コントローラとグラフィックス・コントローラから、サイズと位置が定義されることによってグラフィックス・コントローラのためのフレーム・バッファが定義された共用メモリへのメモリ・インタフェースを介する同時アクセスを可能にする方法であって、
（ａ）前記メモリ・インタフェースを、前記メモリ・コントローラが第１のアクセス・パスを介して前記フレーム・バッファを除くメモリ部分にアクセス可能にするとともに、前記グラフィックス・コントローラが第２のアクセス・パスを介して前記定義されたフレーム・バッファにアクセス可能にするステップと、
（ｂ）前記メモリ・コントローラから前記共用メモリの前記定義されたフレーム・バッファを除くメモリ部分のメモリ位置へメモリ・アクセス要求を発するとともに、前記グラフィックス・コントローラから前記定義されたフレーム・バッファへメモリ・アクセス要求を発するステップと
を含むことを特徴とする方法。
【発明の詳細な説明】
発明の分野
本発明は、コンピュータ・システムの分野に関する。詳細には、本発明は、メモリ資源を共用するメモリ・コントローラおよびグラフィックス・コントローラを使用するコンピュータ・システムに関する。
発明の背景
マイクロプロセッサを使用するいくつかのコンピュータ・システムは、メモリ・コントローラおよびグラフィックス・コントローラを使用する。メモリ・コントローラは、マイクロプロセッサおよびその他の周辺集積回路からシステム・メモリへのアクセスを制御する。グラフィックス・コントローラは、フレーム・バッファを使用する陰極線管（ＣＲＴ）などの表示画面上でのマイクロプロセッサから与えられたデータの表示を制御する。システム・メモリとフレーム・バッファは共に、通常、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）のアレイを使用して実装される。いくつかの従来技術のシステムでは、メモリ・コントローラはシステム・メモリに排他的にアクセスし、グラフィックス・コントローラも同様にフレーム・バッファに排他的にアクセスする。
コストを抑えるために、いくつかのコンピュータ・システムは最近、統合メモリまたは共用メモリにフレーム・バッファおよびシステム・メモリを組み込みんでおり、したがって、コンピュータ機器の製造業者は、フレーム・バッファ用の独立のメモリを不要にすることによってコストを削減することができる。フレーム・バッファのすべての部分、あるいは場合によってはその一部を使用しないときにフレーム・バッファの未使用部分をシステム・メモリとして使用できるので、フレーム・バッファおよびシステム・メモリを共用メモリ内に組み込むことがさらに望ましい。グラフィックス・コントローラによって制御される独立のフレーム・バッファを用いる場合には、そのような効率を達成するのは容易ではない。
フレーム・バッファおよびシステム・メモリが共用メモリ資源内で実現されるコンピュータ・システム・アーキテクチャの一例として、カリフォルニア州サンタクララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎの共用メモリ・バッファ・アーキテクチャ（ＳＭＢＡ）（統合メモリ・アーキテクチャ（ＵＭＡ）とも呼ばれる）がある。
前述の共用メモリ・アーキテクチャは、メモリ・コントローラとグラフィックス・コントローラの両方からアクセスできるＤＲＡＭのアレイを設けることによって実現される。この場合、ＤＲＡＭアレイの関連メモリ空間はシステム・メモリとフレーム・バッファとの間が分離される。そのようなコンピュータ・システムでは、メモリ・コントローラは通常、フレーム・バッファとして指定された部分を含めて、共用メモリのすべての部分にアクセスすることができる。したがって、フレーム・バッファが必要とされない場合、メモリ・コントローラは、フレーム・バッファとして指定されたメモリの部分にアクセスし、メモリのその部分をシステム・メモリとして使用することができる。ＤＲＡＭアレイがメモリ・コントローラとグラフィックス・コントローラによって共用されるので、コンピュータ・システムには通常、調停ユニット（またはアービタ）が設けられる。調停ユニットは、共用メモリ構成を使用して、メモリ・コントローラとグラフィックス・コントローラの両方がＤＲＡＭアレイに公平にかつ効率的にアクセスできるようにする。
共用メモリ構成を実現すると、コスト面でいくつかの利点が与えられるが、共用メモリはもはやグラフィックス・コントローラの専用資源でも、あるいはメモリ・コントローラの専用資源でもないので、このようなメモリ構成ではメモリ帯域幅が低下する。システム性能は、グラフィックスを多用しないアプリケーションを実行する際にはそれほど影響を受けないが、マルチメディア・アプリケーションなどグラフィックを多用するアプリケーションをコンピュータ・システムが実行するときには著しく影響を受ける恐れがある。そのような場合、グラフィックス・コントローラとメモリ・コントローラは、共用メモリへのアクセスを求めて激しく競合する。グラフィックス・コントローラが共用メモリに長時間アクセスしていると、メモリ・コントローラからシステム・メモリへのアクセス可能性が最大で５０％低下する。このため、コンピュータ・システムの性能は著しく影響を受ける恐れがある。
本発明は、前述の共用メモリ構成の結果として生じる性能面の問題に対処するものである。
発明の概要
本発明の第１の態様によれば、メモリ・コントローラとグラフィックス・コントローラとを含むコンピュータ・システムが提供される。一実施態様では、このコンピュータ・システムは共用フレーム・バッファ・アーキテクチャを使用し、したがって、ＤＲＡＭのバンクの形の共用メモリを有する。共用メモリには、メモリ・コントローラとグラフィックス・コントローラの両方からアクセスすることができる。共用メモリは、共用フレーム・バッファ（ＳＦＢ）アパーチャが定義された少なくとも１つの共用ＤＲＡＭ行を含む。インタフェースによって、グラフィックス・コントローラまたはメモリ・コントローラから選択的にＳＦＢアパーチャにアクセスすることができる。このため、グラフィックス・コントローラからＳＦＢアパーチャにアクセスし、それと同時にメモリ・コントローラから残りのＤＲＡＭ行にアクセスすることができ、その間にメモリ・コントローラは少なくとも１つの共用ＤＲＡＭ行にアクセスすることができる。少なくとも１つの共用ＤＲＡＭ行へのアクセスを求める競合が起こる可能性を低減するために、ＳＦＢアパーチャは好ましくは、共用メモリ内の低メモリ位置に決められる。
このインタフェースは、たとえば、マルチプレクサやＱスイッチなどのセレクタ回路を含み、このセレクタ回路は、グラフィックス・コントローラおよびメモリ・コントローラのそれぞれからの専用バスを介して、それぞれのメモリ・アクセスを受け取り、かつこれらのコントローラからの信号を制御するように結合される。セレクタ回路は、ＳＦＢアパーチャが定義された共用ＤＲＡＭ行にどちらかのメモリ・アドレスを与えるように選択的に動作することができ、かつどちらかのコントローラがデータ・バスを介して共用ＤＲＡＭ行にアクセスできるように選択的に動作することができる。セレクタ回路は、論理回路から制御入力を受け取り、この入力は、メモリ・コントローラから受け取ったメモリ・アクセス要求が、少なくとも１つの共用ＤＲＡＭ行のアドレスに対する要求か、それとも残りのＤＲＡＭ行のアドレスに対する要求かを決定する。
本発明の第２の態様によれば、グラフィックス・コントローラとメモリ・コントローラから共用メモリに同時にアクセスできるようにする方法が提供される。この場合、共用メモリは第１のメモリ部分と第２のメモリ部分とを含む。第１のメモリ部分は、たとえば単一のＤＲＡＭ行であり、共用フレーム・バッファ（ＳＦＢ）アパーチャを備える。第１のメモリ部分の第１のメモリ・アドレスへのアクセスを求める要求をグラフィックス・コントローラから受け取ると、グラフィックス・コントローラに第１のメモリ部分へのアクセスが許可される。第２のメモリ・アドレスへのアクセスを求める要求をメモリ・コントローラから受け取った場合、この第２のメモリ・アドレスが共用メモリの第１のメモリ部分に位置するか、それとも第２のメモリ部分に位置するかが判定される。次いで、第２のメモリ・アドレスが第２のメモリ部分に位置している場合、メモリ・コントローラに第２のメモリ・アドレスへのアクセスが許可され、したがって、グラフィックス・コントローラおよびメモリ・コントローラはそれぞれ、第１のメモリ部分および第２のメモリ部分に同時にアクセスすることができる。一方、第２のメモリ・アドレスが第１のメモリ部分に位置している場合、メモリ・コントローラから第１のメモリ部分へのアクセスが拒否されるか、あるいはグラフィックス・コントローラおよびメモリ・コントローラから第１のメモリ部分へのアクセスを求める競合する要求が、調停を受けるために調停ユニットに与えられる。
本発明の他の特徴は、添付の図面および以下の詳細な説明から明らかになろう。
【図面の簡単な説明】
本発明を制限としてではなく一例として添付の図面に示す。図面において、同じ参照符号は同様な要素を示す。
第１図は、本発明を実施することのできるコンピュータ・システムを示すブロック図である。
第２図は、本発明の第１の実施形態を組み込んだコンピュータ・システムを示すブロック図である。
第３図は、本発明の第２の実施形態を組み込んだコンピュータ・システムを示すブロック図である。
第４図は、本発明の第３の実施形態を組み込んだコンピュータ・システムを示すブロック図である。
第５図は、本発明による、第１のエージェントと第２のエージェントから共用メモリに同時にアクセスできるようにする方法を示すフローチャートである。
詳細な説明
複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置について説明する。以下の説明では、説明の都合上、本発明を完全に理解していただくために多数の特定の詳細について述べる。しかし、当業者には、これらの特定の詳細なしに本発明を実施できることが明白であろう。
まず第１図を参照すると、基本的な構成要素として、プロセッサ１２と、メモリ・コントローラ１４と、メモリ・アービタ１６と、グラフィックス・コントローラ１８と、共用メモリ２０とを有するコンピュータ・システムがブロック図形で示されている。プロセッサ１２は、様々な命令を実行し、ホスト・バス２２に結合される。バス・ブリッジ２４によって、ホスト・バス２２と周辺バス２２との間の通信が可能になる。周辺バス２６は、１９９５年６月１日に発表されたＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）  Ｌｏｃａｌ  Ｂｕｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  ２．１に従って動作することができる。この場合、バス・ブリッジ２４はホストＰＣＩ間ブリッジである。バス・ブリッジ２４は、データ・パス・ユニット２８とシステム・コントローラ３０とを含む。メモリ・コントローラ１４およびメモリ調停ユニット１６は、システム・コントローラ３０内に実装される。一実施形態では、データ・パス・ユニット２８は８２４３８ＶＸデータ・パス・ユニットを備え、システム・コントローラ３０は８２４３７ＶＸシステム・コントローラを備え、これらは共にカリフォルニア州サンタクララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎで製造されている。メモリ・コントローラ１４およびメモリ調停ユニット１６をシステム・コントローラ内に実装する必要はなく、これらはコンピュータ・システム１０内の独立の機能ユニットでよい。バス・ブリッジ２４は専用メモリ・バス３２によって共用メモリ２０に結合される。メモリ・バス３２は制御・アドレス線３２．１とデータ線３２．２とを備える。具体的には、メモリ・コントローラから線３２．１上に加えられる制御信号には、Ｗｒｉｔｅ  Ｅｎａｂｌｅ（書込みイネーブル）信号（ＷＥ）と、Ｒｏｗ  Ａｃｃｅｓｓ  Ｓｔｒｏｂｅ（行アクセス・ストローブ）信号（ＲＡＳ＃）と、Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ（列アドレス・ストローブ）信号（ＣＡＳ＃）が含まれる。メモリ・コントローラ１４は制御・アドレス線３２．１上にＭｅｍｏｒｙ  Ａｄｄｒｅｓｓ（メモリ・アドレス）信号（ＭＡ）をドライブする。データは６４ビット・データ線３２．１上で共用メモリ２０へ転送され、かつ共用メモリ２０から転送される。グラフィックス・コントローラも同様に、バス３４によって共用メモリ２０に結合される。バス３４は、メモリ・バス３２の制御・アドレス線３２．１に接続された制御・アドレス線３４．１と、同様にデータ線３２．２に接続されたデータ線３４．２とを備える。
共用メモリ２０は、ＤＲＡＭのＮ個の行２０．１ないし２０．Ｎを備えるメモリとして示されており、ＤＲＡＭの各行は、メモリ・バス３２の線３２．１上の制御信号およびアドレス信号を受け取り、メモリ・バス３２のデータ線３２．２上のデータを受け取りかつ出力するように結合される。したがって、ＤＲＡＭの各行には、メモリ・コントローラ１４とグラフィックス・コントローラ１８のうちのどちらがメモリ・バス３２を制御できるかに応じて、これらのエージェントのうちのどちらかからアクセスすることができる。ＤＲＡＭ行２０．Ｎは、共用フレーム・バッファ・アパーチャ２５を組み込んだ行として示されており、フレーム・バッファ・アパーチャ２５は、グラフィックス・コントローラ１８によって使用されるものとして指定される。フレーム・バッファ・アパーチャ２５は、オペレーティング・システムに報告されるシステム・メモリ２０の１番上に配置され、フレーム・バッファ２５よりも上にあるメモリがオペレーティング・システムによって割り付けられることはない。共用メモリ２０内のフレーム・バッファ２５のサイズおよび位置が、定義可能であり、コンピュータ・システム１０の要件に応じて修正できることが理解されよう。１組の制御・アドレス線３２．１およびデータ線３２．２のみによって、共用メモリ２０が単一のポート・インタフェースを通してコンピュータ・システム１０の他の構成要素に接続されることに留意されたい。
メモリ・コントローラ１４は、プロセッサ１２や、ＰＣＩマスタや、拡張バス・ブリッジなど、コンピュータ・システム１０内のいくつかの構成要素からメモリ・アクセス要求を受け取るように結合される。この場合、メモリ・コントローラ１４は、このようなメモリ・アクセス要求に応答して共用メモリ２０からデータを読み取り、あるいは共用メモリ２０にデータを書きこむことができる。ＤＲＡＭリフレッシュなどいくつかの動作では、メモリ・コントローラ１４は共用メモリ２０のすべての部分にアクセスすることができる。メモリ・アクセス要求など他の動作では、メモリ・コントローラ１４はシステム・メモリ部分（すなわち、共用メモリ２０内の共用フレーム・バッファ・アパーチャ２５に割り付けられていないアドレス可能なメモリ）にアクセスするだけでよい。他の動作では、メモリ・コントローラ１４は共用フレーム・バッファ・アパーチャ２５にアクセスする必要がある。
グラフィックス・コントローラ１８は、周辺バス２６に結合された陰極管（ＣＲＴ）や液晶ディスプレイ（ＬＣＤ）など表示装置（図示せず）上の最終的なディスプレイに関するグラフィックス・データを記憶するために共用メモリ２０内の共用フレーム・バッファ・アパーチャ２５にアクセスする。グラフィックス・コントローラ１８は周辺バス２６に結合され、周辺バス２６を介してグラフィックス、データ、コマンドを受け取る。そのようなグラフィックス、データ、コマンドは、プロセッサ１２、また周辺バス２６に接続されたいくつかの他の装置または構成要素から、当技術分野で良く知られている方法で送られる。
当然のことながら、グラフィックス・コントローラ１８とメモリ・コントローラ１４は共に単一のメモリ・バス３２を介して共用メモリ２０にアクセスする。調停ユニット１６は、「メモリ・アービタ」とも呼ばれ、メモリ・コントローラ１４およびグラフィックス・コントローラ１８からメモリ・バス３２へのアクセスを調整するために設けられる。具体的には、調停ユニット１６は、メモリ・コントローラ１４およびグラフィックス・コントローラ１８からメモリ・アクセス要求を受け取り、このアクセス要求の相対極性を判定し、次いで要求の相対極性に応じて、特定のエージェントまたは装置にアクセスを許可する。一実施形態では、メモリ・コントローラ１４に、共用メモリ２０にアクセスするためのメモリ・バス３２のデフォルト制御が許可される。調停ユニット１６は、線３５を介してグラフィックス・コントローラ１８からバス要求信号（ＭＲＥＱ＃）を受け取るように結合される。この信号は、グラフィックス・コントローラ１８がメモリ・バス３２にアクセスする必要があることを調停ユニット１６に示す。調停ユニット１６は次いで、グラフィックス・コントローラ１８のアクセス要求とメモリ・コントローラ１４からの競合するアクセス要求との間の調停を行う。調停ユニット１６は、グラフィックス・コントローラ１８に共用メモリ２０へのアクセス権を与えるべきであると判定した場合、線３６上でメモリ・バス許可信号（ＭＧＮＴ＃）をアサートする。調停ユニット１６が機能するメモリ調停プロトコルは、１９９５年８月１７日に出願された本出願人に譲渡された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ａｒｂｉｔｒａｔｉｎｇ  Ａｃｃｅｓｓ  Ｒｅｑｕｅｓｔｓ  ｔｏ  ａ  Ｓｈａｒｅｄ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｍｅｍｏｒｙ  ｂｙ  ａ  Ｇｒａｐｈｉｃｓ  Ｃｏｎｔｒｏｌｌｅｒ  ａｎｄ  ａ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ」と題する米国特許出願第０８／５１６４９５号に記載されている。
さらに、調停ユニット１６は、システム・コントローラ３０内に組み込まれるように示されているが、独立の回路として実装することができる。
前述のコンピュータ・システム１０では、グラフィックス・コントローラ１８からのアクセス要求がメモリ・コントローラ１４からのメモリ・アクセス要求と競合する。これらの要求は、コンピュータ・システム１０内の他のいくつかの構成要素から発信することができる。さらに、グラフィックス・コントローラ１８は実際には、共用フレーム・バッファ２５を組み込んだ単一のＤＲＡＭ行２０．Ｎへのアクセスしか必要としないことに留意されたい。グラフィックス・コントローラ１８は、そのようなアクセスを得るために、単一のメモリ・バス３２を制御しなければならない。したがって、グラフィックス・コントローラ１８がメモリ・バス３２を制御できるとき、メモリ・コントローラ１４は、それ自体の内部で生じたアクセス要求か、あるいは他のいくつかの装置のいずれか１つから受け取ったアクセス要求を発行することを妨げられる。したがって、共用メモリ構成のために起こるメモリ帯域幅の低下によってシステム性能が影響を受けることがある。
次に第２図を参照すると、メモリ・コントローラ２１４やグラフィックス・コントローラ２１８など少なくとも２つの２つのエージェントから共用メモリ２２０への同時アクセスを可能にする方法を実施するコンピュータ・システム２１０が示されている。説明を明確にするために、共用メモリ２２０は、ＤＲＡＭ行２２０．１およびＤＲＡＭ行２２０．２の形の２つのメモリ部分のみを含むように示されている。共用フレーム・バッファ・アパーチャ２２５はＤＲＡＭ行２２０．２に実装される。上記で第１図を参照して説明したコンピュータ・システムと同様に、コンピュータ・システム２１０はホスト・バス２２２に結合されたプロセッサ２１２を備える。プロセッサ２１２はバス・ブリッジ２２４を介して周辺バス２２６と通信する。バス・ブリッジ２２４はデータ・パス・ユニット２２８とシステム・コントローラ２３０とを組み込んでおり、システム・コントローラ２３０にはメモリ・コントローラ２１４およびメモリ調停ユニット２１６を実装することができる。調停ユニット２１６は、線２３５を介してグラフィックス・コントローラ２１８をからメモリ要求信号（ＭＲＥＱ＃）を受け取り、線２３６上でメモリ・アクセス許可信号（ＭＧＮＴ＃）を発行する。
コンピュータ・システム２１０はさらに、共用メモリ２２０とバス・ブリッジ２２４およびグラフィックス・コントローラ２１８との間に結合されたインタフェース２４０を組み込んでいる。インタフェース２４０はメモリ・バス２３２に結合され、メモリ・バス２３２は制御・アドレス線２３２．１とデータ線２３２．２とを備える。インタフェース２４０はフレーム・バッファ・バス２３４にも結合され、フレーム・バッファ・バス２３４は制御・アドレス線２３４．１とデータ線２３４．２とを備える。インタフェース２４０はさらに、他の２つのバス、すなわちバス２４２および２４４によって共用メモリ２２０に結合される。第２図に示したように、バス２４２は、共用フレーム・バッファ・アパーチャ２２５を含むＤＲＡＭ行２２０．２にアドレス指定し、ＤＲＡＭ行２２０．２へのアクセスを可能にするためのみに使用される。バス２４４は、共用メモリ２２０内の残りのＤＲＡＭ行（図の例では、ＤＲＡＭ行２２０．１のみを含む）へのアクセスを可能にする。
一実施形態では、インタフェース２４０は一対のＱスイッチ２４６．１および２４６．２の形のセレクタ装置を備える。Ｑスイッチ２４６．２は制御線２３２．１およびアドレス線２３４．１から入力を受け取るように結合され、Ｑスイッチ２４６．１はデータ線２３２．２および２３４．２に結合される。Ｑスイッチ対は、線２４８上でシステム・コントローラ２３０によって生成される信号によって切り替えられる。具体的には、システム・コントローラ２３０は、以下で詳しく説明するように、メモリ・コントローラからのメモリ・アクセス要求を調べ、線２４８上で適切な信号を生成する論理回路２３１を組み込んでいる。論理回路２３１は、システム・コントローラ２３０内の機能ユニット内に含めることも、あるいは独立の機能ユニットまたは回路としてシステム・コントローラ２３０の外部で実現することもできることを理解されたい。論理回路２３１はインタフェース２４０自体内に配置することもでき好都合である。
メモリ・コントローラ２１４が共用メモリ２２０の第１の部分、すなわちＤＲＡＭ行２２０．１内のメモリ位置へのアクセスを要求し、かつグラフィックス・コントローラ２１８が共用メモリ２２０の第２の部分、すなわちＤＲＡＭ行２２０．２内のメモリ位置へのアクセスを要求すると、インタフェース２４０は、メモリ・コントローラ２１４およびグラフィックス・コントローラ２１８から共用メモリ２２０への同時アクセスを可能にする。メモリ・コントローラ２１４がＤＲＡＭ２２０．１内のメモリ位置へのアクセスを必要とする場合は、線２４８上の適切な信号をアサートすることによって、インタフェース２４０内のスイッチ２４６．１および２４６．２が第１の状態に切り替えられる。この信号は、システム・コントローラ２３０内に組み込まれた論理回路２３１によって生成された信号である。Ｑスイッチ２４６．１はデータ線２４４．２とデータ線２３２．２との間のデータ・パスを形成し、データ・パス・ユニット２２８とＤＲＡＭ行２２０．１との間でのデータの伝搬を可能にする。メモリ・コントローラ２１４は、制御・アドレス線２４４．２を介してＤＲＡＭ行２２０．１にアドレス指定することができる。同様に、Ｑスイッチ２４６．２は制御線２３４．１とアドレス線２４２．１との間の信号パスを形成し、グラフィックス・コントローラ２１８がＤＲＡＭ行２２０．２を制御しＤＲＡＭ行２２０．２にアクセスすることを可能にする。この場合、データ線２３４．２を介してＤＲＡＭ行２２０．２とグラフィックス・コントローラ２１８との間でデータを伝搬させることができる。このように、グラフィックス・コントローラ２１８がＤＲＡＭ行２２０．２にアクセスするのと同時に、メモリ・コントローラ２１４はＤＲＡＭ行２２０．１にアクセスすることができる。同様に、メモリ・コントローラ２１４がＤＲＡＭ行２２０．１にアクセスするのと同時に、グラフィックス・コントローラ２１８はＤＲＡＭ行２２０．２の共用バッファ・アパーチャ２２２にアクセスすることができる。
当然のことながら、ＤＲＡＭ行２２０．２の一部はシステム・メモリを備え、したがって、メモリ・コントローラ２１４はＤＲＡＭ行２２０．２にアクセスする必要があり、ＤＲＡＭ行２２０．２へのアクセスを求めるメモリ・コントローラ２１６およびグラフィックス・コントローラ２１８からの競合する要求が生成されることがある。この場合、調停ユニット２１６は調停プロトコルを実行し、Ｑスイッチ２４６．１および２４６．２を適切な状態にすることによって適切なコントローラにアクセスを許可する。したがって、グラフィックス・コントローラからのメモリ・アクセス要求とメモリ・コントローラからのメモリ・アクセス要求は同じＤＲＡＭ列２２０．２に対する要求であるので、同時アクセスは可能にならない。Ｑスイッチ２４６．１および２４６．２は、一方向電界効果トランジスタまたは二方向電界効果トランジスタ（ＦＥＴ）として実施することができ、マルチプレクサや三状態バッファなど適切なセレクタ手段で置き換えることができる。
本発明は、２つのＤＲＡＭ行のみを組み込んだ共用メモリ２２０に限らない。本発明の代替実施形態を第３図に示す。コンピュータ・システム３１０の共用メモリ３２０はＮ個のＤＲＡＭ行を組み込んでおり、共用フレーム・バッファ・アパーチャ３２５はＤＲＡＭ行３２０．Ｎに実装される。ＤＲＡＭ行は、ＤＲＡＭバンクの様々な組合せを使用して実装することができる。たとえば、ＤＲＡＭ行は単一の８ＭＢバンクを備え、あるいは別法として２つの４ＭＢバンクを備える。上記で第２図を参照して説明した原則に基づいて、グラフィックス・コントローラ３１８からＤＲＡＭ行３２０．Ｎへのアクセスとメモリ・コントローラ３１４から共用メモリ３２０内の他のＤＲＡＭ行へのアクセスとの同時アクセスが可能になるようにインタフェース３４０が結合されることを理解されたい。したがって、インタフェース３４０は、共用メモリ３２０を２つの部分、すなわち、共用フレーム・バッファ・アパーチャ３２２を組み込んだＤＲＡＭ行３２０．Ｎと残りのＤＲＡＭ行とに分割されたメモリとみなす。
第４図は、本発明の他の代替実施形態を示す。コンピュータ・システム４１０は１２８ビット・データ・パス・ユニット４２８を組み込んでおり、このデータ・パス・ユニットは、６４ビット・データ線４４２．２および４４４．２上でデータを受け取りかつ送るように結合され、したがって、インタフェース・ユニット４４０内の２つのＱスイッチを不要にする。データ・パス・ユニット４２８は、システム・コントローラ４３０から選択信号３４８を受け取り、したがって、データ・パス・ユニット４２８が、共用フレーム・バッファ・アパーチャ４２２を組み込んだＤＲＡＭ行４２０．Ｎと共用メモリ４２０内の他のＤＲＡＭ行とのどちらかと外部装置との間に選択的にデータ・パスを確立することを可能にするように結合される。さらに、共用フレーム・バッファ４２２は、第４図に示したのとは異なり、システム・メモリの１番上に配置する必要はない。オペレーティング・システムのロードおよびアクセスは多くの場合、メモリの１番上に位置するか、あるいはそれに隣接する位置に位置するメモリ・アドレスへのロードおよびアクセスであるので、メモリ４２０内のＤＯＳアプリケーション領域のすぐ上のメモリ位置に共用フレーム・バッファ４２２を配置することが望ましい。共用フレーム・バッファ４２２をメモリ４２０内のより低い位置に配置することによって、メモリ・コントローラ４１４とグラフィックス・コントローラ４１８が同じＤＲＡＭ行へのアクセスを要求する可能性は低減する。したがって、本発明の同時アクセス機能をより完全に利用することができる。
前述の実施形態は、グラフィックス・コントローラおよびメモリ・コントローラから共用フレーム・バッファ（ＳＦＢ）を組み込んだ共用メモリへの同時アクセスを可能にすることに焦点を当てている。当然のことながら、三次元グラフィックスの表示に関する情報を含む、いわゆる「アルファ・バッファ」や「Ｚバッファ」など他のバッファを共用メモリ内に実装することもできる。したがって、本発明の教示は、上記のバッファを組み込んだ共用メモリ資源への同時アクセスを可能にすることを含むように拡張することができる。さらに、この同時アクセスを他の種類のコントローラ、および２つよりも多くのコントローラまたはエージェントに対して可能にすることができる。
上記の議論とは異なり、共用フレーム・バッファ（ＳＦＢ）を単一のＤＲＡＭ行内に配置する必要はなく、分割して複数のＤＲＡＭ行上に配置することができることも理解されよう。この場合、本発明の教示は、グラフィックス・コントローラからＳＦＢが存在するＤＲＡＭ行へのアクセスと、メモリ・コントローラから他のＤＲＡＭ行へのアクセスとの同時アクセスを可能にするように拡張することができる。
グラフィックス・コントローラとメモリ・コントローラなどの第１のエージェントと第２のエージェントから共用メモリへの同時アクセスを可能にする方法５１０について第５図および第６図を参照して論じる。まずステップ５２０で、たとえば、グラフィックス・コントローラなどのエージェントから共用メモリ・アクセス要求を受け取ったかどうかを判定する。アクセス要求を受け取っていない場合、方法はステップ５０５に進む。一方、グラフィックス・コントローラから共用メモリ・アクセス要求を受け取った場合、方法はステップ５３０に進み、処理論理が、メモリ・コントローラなど他のエージェントから事前の要求を受け取っているかどうかが判定される。メモリ・コントローラから事前の要求を受け取っていない場合、方法はステップ５４０に進み、グラフィックス・コントローラにメモリ・アクセスが許可される。ステップ５３０で、メモリ・コントローラから事前のメモリ・アクセス要求を実際に受け取っていると処理論理が判定した場合、方法はステップ５５０に進み、グラフィックス・コントローラ・アクセス要求が、メモリ・コントローラから受け取ったメモリ・アクセス要求のアドレスと同じＤＲＡＭ行内のメモリ・アドレスに対する要求であるかどうかが判定される。それぞれのコントローラのメモリ・アクセス要求が同じＤＲＡＭ行内のメモリ・アドレスへの要求である場合、方法は、アクセス要求同士の調停を行うステップ５６０に進む。調停ユニットは、調停が完了すると、ステップ５４０でグラフィックス・コントローラとメモリ・コントローラのどちらかにアクセスを許可する。別法として、ステップ５５０で、グラフィックス・コントローラ・アクセス要求が同じＤＲＡＭ行にはないメモリ位置への要求であると判定された場合、ステップ５７０で両方のコントローラに共用メモリへの同時アクセスが許可される。
本発明は、共用メモリを使用する従来技術のコンピュータ・システムに勝るいくつかの利点を与える。最も顕著なこととして、本発明は、グラフィックス・コントローラとメモリ・コントローラなど少なくとも２つのエージェントから共用メモリへの同時アクセスを可能にすることによって、共用メモリを有するコンピュータ・システムの有効メモリ帯域幅を増加させる。したがって、総システム性能は、各要求側エージェントの専用メモリ資源を有するコンピュータ・システムのシステム性能に相当し、それに対して共用メモリから得られるコスト面の利益は維持される。この利点は、エージェントが共用メモリ資源にアクセスできる細分性または解像度を高めることによって達成される。したがって、２つのエージェントの間のメモリ・アクセス競合は、共用メモリ全体を求める競合ではなく、個々のメモリ行を求める競合に変形される。より細分性の低い共用メモリを提供する本発明の能力は、共用メモリの第１の部分および第２の部分に別々の制御入力を与えることによって部分的に達成される。具体的には、本発明は、共用バッファ・アパーチャを組み込んだＤＲＡＭ行用の専用メモリ・バスと、残りのＤＲＡＭ行用の専用メモリ・バスを設けることを提案する。本発明は、データ・パス・ユニットのピン数を増加させずに共用メモリとの完全な６４ビット・インタフェースも確保する。
前述の明細書では、本発明についてその特定の例示的な実施形態を参照して説明した。しかし、添付の請求の範囲に記載した本発明の広い趣旨および範囲から逸脱せずに様々な修正および変更を加えられることは明白である。したがって、明細書および図面は、制限的なものではなく例示的なものとみなすべきである。
【図１】
0003976342.tif 000002
【図２】
0003976342.tif 000003
【図３】
0003976342.tif 000004
【図４】
0003976342.tif 000005
【図５】
0003976342.tif 000006