JP3976342B2 - 複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置 - Google Patents

複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置 Download PDF

Info

Publication number
JP3976342B2
JP3976342B2 JP50322998A JP50322998A JP3976342B2 JP 3976342 B2 JP3976342 B2 JP 3976342B2 JP 50322998 A JP50322998 A JP 50322998A JP 50322998 A JP50322998 A JP 50322998A JP 3976342 B2 JP3976342 B2 JP 3976342B2
Authority
JP
Japan
Prior art keywords
memory
controller
access
frame buffer
shared
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.)
Expired - Lifetime
Application number
JP50322998A
Other languages
English (en)
Other versions
JP2001523361A (ja
JP2001523361A5 (ja
Inventor
ムタル,マニシュ
シャー,ニレシュ・ヴィ
ベインズ,クルジット
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2001523361A publication Critical patent/JP2001523361A/ja
Publication of JP2001523361A5 publication Critical patent/JP2001523361A5/ja
Application granted granted Critical
Publication of JP3976342B2 publication Critical patent/JP3976342B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Dram (AREA)

Description

発明の分野
本発明は、コンピュータ・システムの分野に関する。詳細には、本発明は、メモリ資源を共用するメモリ・コントローラおよびグラフィックス・コントローラを使用するコンピュータ・システムに関する。
発明の背景
マイクロプロセッサを使用するいくつかのコンピュータ・システムは、メモリ・コントローラおよびグラフィックス・コントローラを使用する。メモリ・コントローラは、マイクロプロセッサおよびその他の周辺集積回路からシステム・メモリへのアクセスを制御する。グラフィックス・コントローラは、フレーム・バッファを使用する陰極線管(CRT)などの表示画面上でのマイクロプロセッサから与えられたデータの表示を制御する。システム・メモリとフレーム・バッファは共に、通常、ダイナミック・ランダム・アクセス・メモリ(DRAM)のアレイを使用して実装される。いくつかの従来技術のシステムでは、メモリ・コントローラはシステム・メモリに排他的にアクセスし、グラフィックス・コントローラも同様にフレーム・バッファに排他的にアクセスする。
コストを抑えるために、いくつかのコンピュータ・システムは最近、統合メモリまたは共用メモリにフレーム・バッファおよびシステム・メモリを組み込みんでおり、したがって、コンピュータ機器の製造業者は、フレーム・バッファ用の独立のメモリを不要にすることによってコストを削減することができる。フレーム・バッファのすべての部分、あるいは場合によってはその一部を使用しないときにフレーム・バッファの未使用部分をシステム・メモリとして使用できるので、フレーム・バッファおよびシステム・メモリを共用メモリ内に組み込むことがさらに望ましい。グラフィックス・コントローラによって制御される独立のフレーム・バッファを用いる場合には、そのような効率を達成するのは容易ではない。
フレーム・バッファおよびシステム・メモリが共用メモリ資源内で実現されるコンピュータ・システム・アーキテクチャの一例として、カリフォルニア州サンタクララのIntel Corporationの共用メモリ・バッファ・アーキテクチャ(SMBA)(統合メモリ・アーキテクチャ(UMA)とも呼ばれる)がある。
前述の共用メモリ・アーキテクチャは、メモリ・コントローラとグラフィックス・コントローラの両方からアクセスできるDRAMのアレイを設けることによって実現される。この場合、DRAMアレイの関連メモリ空間はシステム・メモリとフレーム・バッファとの間が分離される。そのようなコンピュータ・システムでは、メモリ・コントローラは通常、フレーム・バッファとして指定された部分を含めて、共用メモリのすべての部分にアクセスすることができる。したがって、フレーム・バッファが必要とされない場合、メモリ・コントローラは、フレーム・バッファとして指定されたメモリの部分にアクセスし、メモリのその部分をシステム・メモリとして使用することができる。DRAMアレイがメモリ・コントローラとグラフィックス・コントローラによって共用されるので、コンピュータ・システムには通常、調停ユニット(またはアービタ)が設けられる。調停ユニットは、共用メモリ構成を使用して、メモリ・コントローラとグラフィックス・コントローラの両方がDRAMアレイに公平にかつ効率的にアクセスできるようにする。
共用メモリ構成を実現すると、コスト面でいくつかの利点が与えられるが、共用メモリはもはやグラフィックス・コントローラの専用資源でも、あるいはメモリ・コントローラの専用資源でもないので、このようなメモリ構成ではメモリ帯域幅が低下する。システム性能は、グラフィックスを多用しないアプリケーションを実行する際にはそれほど影響を受けないが、マルチメディア・アプリケーションなどグラフィックを多用するアプリケーションをコンピュータ・システムが実行するときには著しく影響を受ける恐れがある。そのような場合、グラフィックス・コントローラとメモリ・コントローラは、共用メモリへのアクセスを求めて激しく競合する。グラフィックス・コントローラが共用メモリに長時間アクセスしていると、メモリ・コントローラからシステム・メモリへのアクセス可能性が最大で50%低下する。このため、コンピュータ・システムの性能は著しく影響を受ける恐れがある。
本発明は、前述の共用メモリ構成の結果として生じる性能面の問題に対処するものである。
発明の概要
本発明の第1の態様によれば、メモリ・コントローラとグラフィックス・コントローラとを含むコンピュータ・システムが提供される。一実施態様では、このコンピュータ・システムは共用フレーム・バッファ・アーキテクチャを使用し、したがって、DRAMのバンクの形の共用メモリを有する。共用メモリには、メモリ・コントローラとグラフィックス・コントローラの両方からアクセスすることができる。共用メモリは、共用フレーム・バッファ(SFB)アパーチャが定義された少なくとも1つの共用DRAM行を含む。インタフェースによって、グラフィックス・コントローラまたはメモリ・コントローラから選択的にSFBアパーチャにアクセスすることができる。このため、グラフィックス・コントローラからSFBアパーチャにアクセスし、それと同時にメモリ・コントローラから残りのDRAM行にアクセスすることができ、その間にメモリ・コントローラは少なくとも1つの共用DRAM行にアクセスすることができる。少なくとも1つの共用DRAM行へのアクセスを求める競合が起こる可能性を低減するために、SFBアパーチャは好ましくは、共用メモリ内の低メモリ位置に決められる。
このインタフェースは、たとえば、マルチプレクサやQスイッチなどのセレクタ回路を含み、このセレクタ回路は、グラフィックス・コントローラおよびメモリ・コントローラのそれぞれからの専用バスを介して、それぞれのメモリ・アクセスを受け取り、かつこれらのコントローラからの信号を制御するように結合される。セレクタ回路は、SFBアパーチャが定義された共用DRAM行にどちらかのメモリ・アドレスを与えるように選択的に動作することができ、かつどちらかのコントローラがデータ・バスを介して共用DRAM行にアクセスできるように選択的に動作することができる。セレクタ回路は、論理回路から制御入力を受け取り、この入力は、メモリ・コントローラから受け取ったメモリ・アクセス要求が、少なくとも1つの共用DRAM行のアドレスに対する要求か、それとも残りのDRAM行のアドレスに対する要求かを決定する。
本発明の第2の態様によれば、グラフィックス・コントローラとメモリ・コントローラから共用メモリに同時にアクセスできるようにする方法が提供される。この場合、共用メモリは第1のメモリ部分と第2のメモリ部分とを含む。第1のメモリ部分は、たとえば単一のDRAM行であり、共用フレーム・バッファ(SFB)アパーチャを備える。第1のメモリ部分の第1のメモリ・アドレスへのアクセスを求める要求をグラフィックス・コントローラから受け取ると、グラフィックス・コントローラに第1のメモリ部分へのアクセスが許可される。第2のメモリ・アドレスへのアクセスを求める要求をメモリ・コントローラから受け取った場合、この第2のメモリ・アドレスが共用メモリの第1のメモリ部分に位置するか、それとも第2のメモリ部分に位置するかが判定される。次いで、第2のメモリ・アドレスが第2のメモリ部分に位置している場合、メモリ・コントローラに第2のメモリ・アドレスへのアクセスが許可され、したがって、グラフィックス・コントローラおよびメモリ・コントローラはそれぞれ、第1のメモリ部分および第2のメモリ部分に同時にアクセスすることができる。一方、第2のメモリ・アドレスが第1のメモリ部分に位置している場合、メモリ・コントローラから第1のメモリ部分へのアクセスが拒否されるか、あるいはグラフィックス・コントローラおよびメモリ・コントローラから第1のメモリ部分へのアクセスを求める競合する要求が、調停を受けるために調停ユニットに与えられる。
本発明の他の特徴は、添付の図面および以下の詳細な説明から明らかになろう。
【図面の簡単な説明】
本発明を制限としてではなく一例として添付の図面に示す。図面において、同じ参照符号は同様な要素を示す。
第1図は、本発明を実施することのできるコンピュータ・システムを示すブロック図である。
第2図は、本発明の第1の実施形態を組み込んだコンピュータ・システムを示すブロック図である。
第3図は、本発明の第2の実施形態を組み込んだコンピュータ・システムを示すブロック図である。
第4図は、本発明の第3の実施形態を組み込んだコンピュータ・システムを示すブロック図である。
第5図は、本発明による、第1のエージェントと第2のエージェントから共用メモリに同時にアクセスできるようにする方法を示すフローチャートである。
詳細な説明
複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置について説明する。以下の説明では、説明の都合上、本発明を完全に理解していただくために多数の特定の詳細について述べる。しかし、当業者には、これらの特定の詳細なしに本発明を実施できることが明白であろう。
まず第1図を参照すると、基本的な構成要素として、プロセッサ12と、メモリ・コントローラ14と、メモリ・アービタ16と、グラフィックス・コントローラ18と、共用メモリ20とを有するコンピュータ・システムがブロック図形で示されている。プロセッサ12は、様々な命令を実行し、ホスト・バス22に結合される。バス・ブリッジ24によって、ホスト・バス22と周辺バス22との間の通信が可能になる。周辺バス26は、1995年6月1日に発表されたPeripheral Components Interconnect(PCI) Local Bus Specification Revision 2.1に従って動作することができる。この場合、バス・ブリッジ24はホストPCI間ブリッジである。バス・ブリッジ24は、データ・パス・ユニット28とシステム・コントローラ30とを含む。メモリ・コントローラ14およびメモリ調停ユニット16は、システム・コントローラ30内に実装される。一実施形態では、データ・パス・ユニット28は82438VXデータ・パス・ユニットを備え、システム・コントローラ30は82437VXシステム・コントローラを備え、これらは共にカリフォルニア州サンタクララのIntel Corporationで製造されている。メモリ・コントローラ14およびメモリ調停ユニット16をシステム・コントローラ内に実装する必要はなく、これらはコンピュータ・システム10内の独立の機能ユニットでよい。バス・ブリッジ24は専用メモリ・バス32によって共用メモリ20に結合される。メモリ・バス32は制御・アドレス線32.1とデータ線32.2とを備える。具体的には、メモリ・コントローラから線32.1上に加えられる制御信号には、Write Enable(書込みイネーブル)信号(WE)と、Row Access Strobe(行アクセス・ストローブ)信号(RAS#)と、Column Address Strobe(列アドレス・ストローブ)信号(CAS#)が含まれる。メモリ・コントローラ14は制御・アドレス線32.1上にMemory Address(メモリ・アドレス)信号(MA)をドライブする。データは64ビット・データ線32.1上で共用メモリ20へ転送され、かつ共用メモリ20から転送される。グラフィックス・コントローラも同様に、バス34によって共用メモリ20に結合される。バス34は、メモリ・バス32の制御・アドレス線32.1に接続された制御・アドレス線34.1と、同様にデータ線32.2に接続されたデータ線34.2とを備える。
共用メモリ20は、DRAMのN個の行20.1ないし20.Nを備えるメモリとして示されており、DRAMの各行は、メモリ・バス32の線32.1上の制御信号およびアドレス信号を受け取り、メモリ・バス32のデータ線32.2上のデータを受け取りかつ出力するように結合される。したがって、DRAMの各行には、メモリ・コントローラ14とグラフィックス・コントローラ18のうちのどちらがメモリ・バス32を制御できるかに応じて、これらのエージェントのうちのどちらかからアクセスすることができる。DRAM行20.Nは、共用フレーム・バッファ・アパーチャ25を組み込んだ行として示されており、フレーム・バッファ・アパーチャ25は、グラフィックス・コントローラ18によって使用されるものとして指定される。フレーム・バッファ・アパーチャ25は、オペレーティング・システムに報告されるシステム・メモリ20の1番上に配置され、フレーム・バッファ25よりも上にあるメモリがオペレーティング・システムによって割り付けられることはない。共用メモリ20内のフレーム・バッファ25のサイズおよび位置が、定義可能であり、コンピュータ・システム10の要件に応じて修正できることが理解されよう。1組の制御・アドレス線32.1およびデータ線32.2のみによって、共用メモリ20が単一のポート・インタフェースを通してコンピュータ・システム10の他の構成要素に接続されることに留意されたい。
メモリ・コントローラ14は、プロセッサ12や、PCIマスタや、拡張バス・ブリッジなど、コンピュータ・システム10内のいくつかの構成要素からメモリ・アクセス要求を受け取るように結合される。この場合、メモリ・コントローラ14は、このようなメモリ・アクセス要求に応答して共用メモリ20からデータを読み取り、あるいは共用メモリ20にデータを書きこむことができる。DRAMリフレッシュなどいくつかの動作では、メモリ・コントローラ14は共用メモリ20のすべての部分にアクセスすることができる。メモリ・アクセス要求など他の動作では、メモリ・コントローラ14はシステム・メモリ部分(すなわち、共用メモリ20内の共用フレーム・バッファ・アパーチャ25に割り付けられていないアドレス可能なメモリ)にアクセスするだけでよい。他の動作では、メモリ・コントローラ14は共用フレーム・バッファ・アパーチャ25にアクセスする必要がある。
グラフィックス・コントローラ18は、周辺バス26に結合された陰極管(CRT)や液晶ディスプレイ(LCD)など表示装置(図示せず)上の最終的なディスプレイに関するグラフィックス・データを記憶するために共用メモリ20内の共用フレーム・バッファ・アパーチャ25にアクセスする。グラフィックス・コントローラ18は周辺バス26に結合され、周辺バス26を介してグラフィックス、データ、コマンドを受け取る。そのようなグラフィックス、データ、コマンドは、プロセッサ12、また周辺バス26に接続されたいくつかの他の装置または構成要素から、当技術分野で良く知られている方法で送られる。
当然のことながら、グラフィックス・コントローラ18とメモリ・コントローラ14は共に単一のメモリ・バス32を介して共用メモリ20にアクセスする。調停ユニット16は、「メモリ・アービタ」とも呼ばれ、メモリ・コントローラ14およびグラフィックス・コントローラ18からメモリ・バス32へのアクセスを調整するために設けられる。具体的には、調停ユニット16は、メモリ・コントローラ14およびグラフィックス・コントローラ18からメモリ・アクセス要求を受け取り、このアクセス要求の相対極性を判定し、次いで要求の相対極性に応じて、特定のエージェントまたは装置にアクセスを許可する。一実施形態では、メモリ・コントローラ14に、共用メモリ20にアクセスするためのメモリ・バス32のデフォルト制御が許可される。調停ユニット16は、線35を介してグラフィックス・コントローラ18からバス要求信号(MREQ#)を受け取るように結合される。この信号は、グラフィックス・コントローラ18がメモリ・バス32にアクセスする必要があることを調停ユニット16に示す。調停ユニット16は次いで、グラフィックス・コントローラ18のアクセス要求とメモリ・コントローラ14からの競合するアクセス要求との間の調停を行う。調停ユニット16は、グラフィックス・コントローラ18に共用メモリ20へのアクセス権を与えるべきであると判定した場合、線36上でメモリ・バス許可信号(MGNT#)をアサートする。調停ユニット16が機能するメモリ調停プロトコルは、1995年8月17日に出願された本出願人に譲渡された「Method and Apparatus for Arbitrating Access Requests to a Shared Computer System Memory by a Graphics Controller and a Memory Controller」と題する米国特許出願第08/516495号に記載されている。
さらに、調停ユニット16は、システム・コントローラ30内に組み込まれるように示されているが、独立の回路として実装することができる。
前述のコンピュータ・システム10では、グラフィックス・コントローラ18からのアクセス要求がメモリ・コントローラ14からのメモリ・アクセス要求と競合する。これらの要求は、コンピュータ・システム10内の他のいくつかの構成要素から発信することができる。さらに、グラフィックス・コントローラ18は実際には、共用フレーム・バッファ25を組み込んだ単一のDRAM行20.Nへのアクセスしか必要としないことに留意されたい。グラフィックス・コントローラ18は、そのようなアクセスを得るために、単一のメモリ・バス32を制御しなければならない。したがって、グラフィックス・コントローラ18がメモリ・バス32を制御できるとき、メモリ・コントローラ14は、それ自体の内部で生じたアクセス要求か、あるいは他のいくつかの装置のいずれか1つから受け取ったアクセス要求を発行することを妨げられる。したがって、共用メモリ構成のために起こるメモリ帯域幅の低下によってシステム性能が影響を受けることがある。
次に第2図を参照すると、メモリ・コントローラ214やグラフィックス・コントローラ218など少なくとも2つの2つのエージェントから共用メモリ220への同時アクセスを可能にする方法を実施するコンピュータ・システム210が示されている。説明を明確にするために、共用メモリ220は、DRAM行220.1およびDRAM行220.2の形の2つのメモリ部分のみを含むように示されている。共用フレーム・バッファ・アパーチャ225はDRAM行220.2に実装される。上記で第1図を参照して説明したコンピュータ・システムと同様に、コンピュータ・システム210はホスト・バス222に結合されたプロセッサ212を備える。プロセッサ212はバス・ブリッジ224を介して周辺バス226と通信する。バス・ブリッジ224はデータ・パス・ユニット228とシステム・コントローラ230とを組み込んでおり、システム・コントローラ230にはメモリ・コントローラ214およびメモリ調停ユニット216を実装することができる。調停ユニット216は、線235を介してグラフィックス・コントローラ218をからメモリ要求信号(MREQ#)を受け取り、線236上でメモリ・アクセス許可信号(MGNT#)を発行する。
コンピュータ・システム210はさらに、共用メモリ220とバス・ブリッジ224およびグラフィックス・コントローラ218との間に結合されたインタフェース240を組み込んでいる。インタフェース240はメモリ・バス232に結合され、メモリ・バス232は制御・アドレス線232.1とデータ線232.2とを備える。インタフェース240はフレーム・バッファ・バス234にも結合され、フレーム・バッファ・バス234は制御・アドレス線234.1とデータ線234.2とを備える。インタフェース240はさらに、他の2つのバス、すなわちバス242および244によって共用メモリ220に結合される。第2図に示したように、バス242は、共用フレーム・バッファ・アパーチャ225を含むDRAM行220.2にアドレス指定し、DRAM行220.2へのアクセスを可能にするためのみに使用される。バス244は、共用メモリ220内の残りのDRAM行(図の例では、DRAM行220.1のみを含む)へのアクセスを可能にする。
一実施形態では、インタフェース240は一対のQスイッチ246.1および246.2の形のセレクタ装置を備える。Qスイッチ246.2は制御線232.1およびアドレス線234.1から入力を受け取るように結合され、Qスイッチ246.1はデータ線232.2および234.2に結合される。Qスイッチ対は、線248上でシステム・コントローラ230によって生成される信号によって切り替えられる。具体的には、システム・コントローラ230は、以下で詳しく説明するように、メモリ・コントローラからのメモリ・アクセス要求を調べ、線248上で適切な信号を生成する論理回路231を組み込んでいる。論理回路231は、システム・コントローラ230内の機能ユニット内に含めることも、あるいは独立の機能ユニットまたは回路としてシステム・コントローラ230の外部で実現することもできることを理解されたい。論理回路231はインタフェース240自体内に配置することもでき好都合である。
メモリ・コントローラ214が共用メモリ220の第1の部分、すなわちDRAM行220.1内のメモリ位置へのアクセスを要求し、かつグラフィックス・コントローラ218が共用メモリ220の第2の部分、すなわちDRAM行220.2内のメモリ位置へのアクセスを要求すると、インタフェース240は、メモリ・コントローラ214およびグラフィックス・コントローラ218から共用メモリ220への同時アクセスを可能にする。メモリ・コントローラ214がDRAM220.1内のメモリ位置へのアクセスを必要とする場合は、線248上の適切な信号をアサートすることによって、インタフェース240内のスイッチ246.1および246.2が第1の状態に切り替えられる。この信号は、システム・コントローラ230内に組み込まれた論理回路231によって生成された信号である。Qスイッチ246.1はデータ線244.2とデータ線232.2との間のデータ・パスを形成し、データ・パス・ユニット228とDRAM行220.1との間でのデータの伝搬を可能にする。メモリ・コントローラ214は、制御・アドレス線244.2を介してDRAM行220.1にアドレス指定することができる。同様に、Qスイッチ246.2は制御線234.1とアドレス線242.1との間の信号パスを形成し、グラフィックス・コントローラ218がDRAM行220.2を制御しDRAM行220.2にアクセスすることを可能にする。この場合、データ線234.2を介してDRAM行220.2とグラフィックス・コントローラ218との間でデータを伝搬させることができる。このように、グラフィックス・コントローラ218がDRAM行220.2にアクセスするのと同時に、メモリ・コントローラ214はDRAM行220.1にアクセスすることができる。同様に、メモリ・コントローラ214がDRAM行220.1にアクセスするのと同時に、グラフィックス・コントローラ218はDRAM行220.2の共用バッファ・アパーチャ222にアクセスすることができる。
当然のことながら、DRAM行220.2の一部はシステム・メモリを備え、したがって、メモリ・コントローラ214はDRAM行220.2にアクセスする必要があり、DRAM行220.2へのアクセスを求めるメモリ・コントローラ216およびグラフィックス・コントローラ218からの競合する要求が生成されることがある。この場合、調停ユニット216は調停プロトコルを実行し、Qスイッチ246.1および246.2を適切な状態にすることによって適切なコントローラにアクセスを許可する。したがって、グラフィックス・コントローラからのメモリ・アクセス要求とメモリ・コントローラからのメモリ・アクセス要求は同じDRAM列220.2に対する要求であるので、同時アクセスは可能にならない。Qスイッチ246.1および246.2は、一方向電界効果トランジスタまたは二方向電界効果トランジスタ(FET)として実施することができ、マルチプレクサや三状態バッファなど適切なセレクタ手段で置き換えることができる。
本発明は、2つのDRAM行のみを組み込んだ共用メモリ220に限らない。本発明の代替実施形態を第3図に示す。コンピュータ・システム310の共用メモリ320はN個のDRAM行を組み込んでおり、共用フレーム・バッファ・アパーチャ325はDRAM行320.Nに実装される。DRAM行は、DRAMバンクの様々な組合せを使用して実装することができる。たとえば、DRAM行は単一の8MBバンクを備え、あるいは別法として2つの4MBバンクを備える。上記で第2図を参照して説明した原則に基づいて、グラフィックス・コントローラ318からDRAM行320.Nへのアクセスとメモリ・コントローラ314から共用メモリ320内の他のDRAM行へのアクセスとの同時アクセスが可能になるようにインタフェース340が結合されることを理解されたい。したがって、インタフェース340は、共用メモリ320を2つの部分、すなわち、共用フレーム・バッファ・アパーチャ322を組み込んだDRAM行320.Nと残りのDRAM行とに分割されたメモリとみなす。
第4図は、本発明の他の代替実施形態を示す。コンピュータ・システム410は128ビット・データ・パス・ユニット428を組み込んでおり、このデータ・パス・ユニットは、64ビット・データ線442.2および444.2上でデータを受け取りかつ送るように結合され、したがって、インタフェース・ユニット440内の2つのQスイッチを不要にする。データ・パス・ユニット428は、システム・コントローラ430から選択信号348を受け取り、したがって、データ・パス・ユニット428が、共用フレーム・バッファ・アパーチャ422を組み込んだDRAM行420.Nと共用メモリ420内の他のDRAM行とのどちらかと外部装置との間に選択的にデータ・パスを確立することを可能にするように結合される。さらに、共用フレーム・バッファ422は、第4図に示したのとは異なり、システム・メモリの1番上に配置する必要はない。オペレーティング・システムのロードおよびアクセスは多くの場合、メモリの1番上に位置するか、あるいはそれに隣接する位置に位置するメモリ・アドレスへのロードおよびアクセスであるので、メモリ420内のDOSアプリケーション領域のすぐ上のメモリ位置に共用フレーム・バッファ422を配置することが望ましい。共用フレーム・バッファ422をメモリ420内のより低い位置に配置することによって、メモリ・コントローラ414とグラフィックス・コントローラ418が同じDRAM行へのアクセスを要求する可能性は低減する。したがって、本発明の同時アクセス機能をより完全に利用することができる。
前述の実施形態は、グラフィックス・コントローラおよびメモリ・コントローラから共用フレーム・バッファ(SFB)を組み込んだ共用メモリへの同時アクセスを可能にすることに焦点を当てている。当然のことながら、三次元グラフィックスの表示に関する情報を含む、いわゆる「アルファ・バッファ」や「Zバッファ」など他のバッファを共用メモリ内に実装することもできる。したがって、本発明の教示は、上記のバッファを組み込んだ共用メモリ資源への同時アクセスを可能にすることを含むように拡張することができる。さらに、この同時アクセスを他の種類のコントローラ、および2つよりも多くのコントローラまたはエージェントに対して可能にすることができる。
上記の議論とは異なり、共用フレーム・バッファ(SFB)を単一のDRAM行内に配置する必要はなく、分割して複数のDRAM行上に配置することができることも理解されよう。この場合、本発明の教示は、グラフィックス・コントローラからSFBが存在するDRAM行へのアクセスと、メモリ・コントローラから他のDRAM行へのアクセスとの同時アクセスを可能にするように拡張することができる。
グラフィックス・コントローラとメモリ・コントローラなどの第1のエージェントと第2のエージェントから共用メモリへの同時アクセスを可能にする方法510について第5図および第6図を参照して論じる。まずステップ520で、たとえば、グラフィックス・コントローラなどのエージェントから共用メモリ・アクセス要求を受け取ったかどうかを判定する。アクセス要求を受け取っていない場合、方法はステップ505に進む。一方、グラフィックス・コントローラから共用メモリ・アクセス要求を受け取った場合、方法はステップ530に進み、処理論理が、メモリ・コントローラなど他のエージェントから事前の要求を受け取っているかどうかが判定される。メモリ・コントローラから事前の要求を受け取っていない場合、方法はステップ540に進み、グラフィックス・コントローラにメモリ・アクセスが許可される。ステップ530で、メモリ・コントローラから事前のメモリ・アクセス要求を実際に受け取っていると処理論理が判定した場合、方法はステップ550に進み、グラフィックス・コントローラ・アクセス要求が、メモリ・コントローラから受け取ったメモリ・アクセス要求のアドレスと同じDRAM行内のメモリ・アドレスに対する要求であるかどうかが判定される。それぞれのコントローラのメモリ・アクセス要求が同じDRAM行内のメモリ・アドレスへの要求である場合、方法は、アクセス要求同士の調停を行うステップ560に進む。調停ユニットは、調停が完了すると、ステップ540でグラフィックス・コントローラとメモリ・コントローラのどちらかにアクセスを許可する。別法として、ステップ550で、グラフィックス・コントローラ・アクセス要求が同じDRAM行にはないメモリ位置への要求であると判定された場合、ステップ570で両方のコントローラに共用メモリへの同時アクセスが許可される。
本発明は、共用メモリを使用する従来技術のコンピュータ・システムに勝るいくつかの利点を与える。最も顕著なこととして、本発明は、グラフィックス・コントローラとメモリ・コントローラなど少なくとも2つのエージェントから共用メモリへの同時アクセスを可能にすることによって、共用メモリを有するコンピュータ・システムの有効メモリ帯域幅を増加させる。したがって、総システム性能は、各要求側エージェントの専用メモリ資源を有するコンピュータ・システムのシステム性能に相当し、それに対して共用メモリから得られるコスト面の利益は維持される。この利点は、エージェントが共用メモリ資源にアクセスできる細分性または解像度を高めることによって達成される。したがって、2つのエージェントの間のメモリ・アクセス競合は、共用メモリ全体を求める競合ではなく、個々のメモリ行を求める競合に変形される。より細分性の低い共用メモリを提供する本発明の能力は、共用メモリの第1の部分および第2の部分に別々の制御入力を与えることによって部分的に達成される。具体的には、本発明は、共用バッファ・アパーチャを組み込んだDRAM行用の専用メモリ・バスと、残りのDRAM行用の専用メモリ・バスを設けることを提案する。本発明は、データ・パス・ユニットのピン数を増加させずに共用メモリとの完全な64ビット・インタフェースも確保する。
前述の明細書では、本発明についてその特定の例示的な実施形態を参照して説明した。しかし、添付の請求の範囲に記載した本発明の広い趣旨および範囲から逸脱せずに様々な修正および変更を加えられることは明白である。したがって、明細書および図面は、制限的なものではなく例示的なものとみなすべきである。

Claims (3)

  1. コンピュータ・システムであって、
    メモリ・コントローラおよびグラフィックス・コントローラと、
    サイズと位置が定義されることによって前記グラフィックス・コントローラのためのフレーム・バッファが定義されるメモリ部分とを有した、前記メモリ・コントローラ及びグラフィックス・コントローラによってアクセス可能に構成された共用メモリと、
    前記フレーム・バッファが定義されていない第1の状態のときには、
    (i)前記メモリ・コントローラと前記共用メモリとの間に第1のデータ・パスを形成し、
    前記フレーム・バッファが定義されている第2の状態のときに
    (ii)前記メモリ・コントローラと、前記定義されたフレーム・バッファとを除いた共用メモリ部分との間に第2のデータ・パスを形成するとともに
    (iii)前記グラフィックス・コントローラと、前記定義されたフレーム・バッファとの間に第3のデータ・パスを形成する
    スイッチ装置と
    を有し、
    これにより、前記第2の状態のときに前記メモリ・コントローラおよび前記グラフィックス・コントローラから、前記共用メモリへの同時アクセスを可能にすることを特徴とするコンピュータ・システム。
  2. サイズと位置が定義されることによってグラフィックス・コントローラのためのフレーム・バッファが定義される共用メモリであって、前記グラフィックス・コントローラとメモリ・コントローラとからアクセス可能な共用メモリ用のインタフェース装置であって、
    前記メモリ・コントローラから第1のメモリ・アドレスを受け取るように結合された第1の入力と、
    前記グラフィックス・コントローラから第2のメモリ・アドレスを受け取るように結合された第2の入力と、
    前記フレーム・バッファが定義されている状態のときに該定義されたフレーム・バッファ前記第2のメモリ・アドレスを与え、それによって第1のアクセス・パスを介した前記メモリ・コントローラから前記共用メモリの前記フレーム・バッファを除いたメモリ部分へのアクセスと第2のアクセス・パスを介した前記グラフィックス・コントローラから前記定義されたフレーム・バッファへのアクセスとの同時アクセスを可能にするように選択的に動作し、かつ前記フレーム・バッファが定義されていない状態のときに前記共用メモリに第1のメモリ・アドレスを与え、それによって第3のアクセス・パスを介した前記メモリ・コントローラから前記共用メモリへの専用アクセスを可能にするように選択的に動作する、セレクタと
    を備えることを特徴とするインタフェース装置。
  3. メモリ・コントローラグラフィックス・コントローラから、サイズと位置が定義されることによってグラフィックス・コントローラのためのフレーム・バッファが定義された共用メモリへのメモリ・インタフェースを介する同時アクセスを可能にする方法であって、
    (a)前記メモリ・インタフェースを、前記メモリ・コントローラが第1のアクセス・パスを介して前記フレーム・バッファを除くメモリ部分にアクセス可能にするとともに、前記グラフィックス・コントローラが第2のアクセス・パスを介して前記定義されたフレーム・バッファにアクセス可能にするステップと、
    (b)前記メモリ・コントローラから前記共用メモリの前記定義されたフレーム・バッファを除くメモリ部分のメモリ位置へメモリ・アクセス要求を発するとともに前記グラフィックス・コントローラから前記定義されたフレーム・バッファへメモリ・アクセス要求を発するステップと
    を含むことを特徴とする方法。
JP50322998A 1996-06-27 1997-06-13 複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置 Expired - Lifetime JP3976342B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/672,099 1996-06-27
US08/672,099 US5815167A (en) 1996-06-27 1996-06-27 Method and apparatus for providing concurrent access by a plurality of agents to a shared memory
PCT/US1997/010447 WO1997050042A1 (en) 1996-06-27 1997-06-13 A method and apparatus for providing concurrent access by a plur ality of agents to a shared memory

Publications (3)

Publication Number Publication Date
JP2001523361A JP2001523361A (ja) 2001-11-20
JP2001523361A5 JP2001523361A5 (ja) 2004-12-09
JP3976342B2 true JP3976342B2 (ja) 2007-09-19

Family

ID=24697142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50322998A Expired - Lifetime JP3976342B2 (ja) 1996-06-27 1997-06-13 複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置

Country Status (8)

Country Link
US (1) US5815167A (ja)
EP (1) EP0972251B1 (ja)
JP (1) JP3976342B2 (ja)
KR (1) KR100317517B1 (ja)
AU (1) AU3397697A (ja)
DE (1) DE69724463T2 (ja)
TW (1) TW358180B (ja)
WO (1) WO1997050042A1 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058459A (en) 1996-08-26 2000-05-02 Stmicroelectronics, Inc. Video/audio decompression/compression device including an arbiter and method for accessing a shared memory
TW360823B (en) 1996-09-30 1999-06-11 Hitachi Ltd Data processor and graphic processor
US5941968A (en) * 1997-04-14 1999-08-24 Advanced Micro Devices, Inc. Computer system for concurrent data transferring between graphic controller and unified system memory and between CPU and expansion bus device
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6057862A (en) * 1997-07-01 2000-05-02 Memtrax Llc Computer system having a common display memory and main memory
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
JPH11120156A (ja) * 1997-10-17 1999-04-30 Nec Corp マルチプロセッサシステムにおけるデータ通信方式
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
US6091431A (en) * 1997-12-18 2000-07-18 Intel Corporation Method and apparatus for improving processor to graphics device local memory performance
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) * 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6272584B1 (en) * 1998-09-10 2001-08-07 Compaq Computer Corporation System board with consolidated EEPROM module
CA2334233C (en) * 1999-03-05 2010-10-26 Kenneth J. Klask Graphical user interface engine for embedded systems
US6601147B1 (en) * 1999-03-31 2003-07-29 International Business Machines Corporation Computer system and method for maintaining an integrated shared buffer memory in a group of interconnected hosts
EP1059586B1 (en) * 1999-06-09 2004-09-08 Texas Instruments Incorporated Shared memory with programmable size
US6469703B1 (en) * 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6526462B1 (en) * 1999-11-19 2003-02-25 Hammam Elabd Programmable multi-tasking memory management system
US6774903B1 (en) * 2000-11-06 2004-08-10 Ati International Srl Palette anti-sparkle enhancement
US6992674B2 (en) * 2001-02-15 2006-01-31 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using state addressing
US6795079B2 (en) * 2001-02-15 2004-09-21 Sony Corporation Two-dimensional buffer pages
US6801204B2 (en) * 2001-02-15 2004-10-05 Sony Corporation, A Japanese Corporation Checkerboard buffer using memory blocks
US6768490B2 (en) * 2001-02-15 2004-07-27 Sony Corporation Checkerboard buffer using more than two memory devices
US7205993B2 (en) * 2001-02-15 2007-04-17 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using memory bank alternation
US7088369B2 (en) * 2001-02-15 2006-08-08 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using bit-field addressing
US7379069B2 (en) * 2001-02-15 2008-05-27 Sony Corporation Checkerboard buffer using two-dimensional buffer pages
US7038691B2 (en) * 2001-02-15 2006-05-02 Sony Corporation Two-dimensional buffer pages using memory bank alternation
US6831651B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Checkerboard buffer
US6831649B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Two-dimensional buffer pages using state addressing
US6791557B2 (en) * 2001-02-15 2004-09-14 Sony Corporation Two-dimensional buffer pages using bit-field addressing
US6803917B2 (en) * 2001-02-15 2004-10-12 Sony Corporation Checkerboard buffer using memory bank alternation
US6765580B2 (en) * 2001-02-15 2004-07-20 Sony Corporation Pixel pages optimized for GLV
US6831650B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Checkerboard buffer using sequential memory locations
US6850241B2 (en) * 2001-02-15 2005-02-01 Sony Corporation Swapped pixel pages
US6828977B2 (en) * 2001-02-15 2004-12-07 Sony Corporation Dynamic buffer pages
US6765579B2 (en) * 2001-02-15 2004-07-20 Sony Corporation Pixel pages using combined addressing
US6622203B2 (en) * 2001-05-29 2003-09-16 Agilent Technologies, Inc. Embedded memory access method and system for application specific integrated circuits
JP2003177958A (ja) * 2001-06-11 2003-06-27 Emblaze Semiconductor Ltd 特殊メモリデバイス
US20030058368A1 (en) * 2001-09-24 2003-03-27 Mark Champion Image warping using pixel pages
US6965980B2 (en) * 2002-02-14 2005-11-15 Sony Corporation Multi-sequence burst accessing for SDRAM
US6959355B2 (en) * 2003-02-24 2005-10-25 Standard Microsystems Corporation Universal serial bus hub with shared high speed handler
US7185126B2 (en) * 2003-02-24 2007-02-27 Standard Microsystems Corporation Universal serial bus hub with shared transaction translator memory
US6874042B2 (en) * 2003-03-11 2005-03-29 Dell Products L.P. System and method for using a switch to route peripheral and graphics data on an interconnect
JP2005165592A (ja) * 2003-12-02 2005-06-23 Matsushita Electric Ind Co Ltd データ転送装置
JP2005222245A (ja) * 2004-02-04 2005-08-18 Renasas Northern Japan Semiconductor Inc プロセッサ
JP4500610B2 (ja) * 2004-07-07 2010-07-14 キヤノン株式会社 映像信号処理装置、メモリ制御方法、及びプログラム
US20060227759A1 (en) * 2004-09-14 2006-10-12 Bohm Mark R Peripheral Sharing USB Hub
US20060059293A1 (en) * 2004-09-14 2006-03-16 Henry Wurzburg Universal serial bus switching hub
US7433990B2 (en) * 2006-01-24 2008-10-07 Standard Microsystems Corporation Transferring system information via universal serial bus (USB)
US7523243B2 (en) * 2006-04-14 2009-04-21 Standard Microsystems Corporation Multi-host USB device controller
US7480753B2 (en) * 2006-04-27 2009-01-20 Standard Microsystems Corporation Switching upstream and downstream logic between ports in a universal serial bus hub
US20080005262A1 (en) * 2006-06-16 2008-01-03 Henry Wurzburg Peripheral Sharing USB Hub for a Wireless Host
KR100888427B1 (ko) * 2006-09-15 2009-03-11 엠텍비젼 주식회사 공유 메모리를 구비한 디지털 처리 장치 및 데이터 출력방법
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US20090063717A1 (en) * 2007-08-28 2009-03-05 Bohm Mark R Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
KR101283482B1 (ko) * 2009-12-11 2013-07-12 한국전자통신연구원 Pci 익스프레스 프로토콜 처리 장치
US8397006B2 (en) * 2010-01-28 2013-03-12 Freescale Semiconductor, Inc. Arbitration scheme for accessing a shared resource
US8799532B2 (en) 2011-07-07 2014-08-05 Smsc Holdings S.A.R.L. High speed USB hub with full speed to high speed transaction translator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459846A (en) * 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
JPS5326539A (en) * 1976-08-25 1978-03-11 Hitachi Ltd Data exchenge system
US4980828A (en) * 1988-11-25 1990-12-25 Picker International, Inc. Medical imaging system including use of DMA control for selective bit mapping of DRAM and VRAM memories
US5450542A (en) * 1993-11-30 1995-09-12 Vlsi Technology, Inc. Bus interface with graphics and system paths for an integrated memory system
WO1995015528A1 (en) * 1993-11-30 1995-06-08 Vlsi Technology, Inc. A reallocatable memory subsystem enabling transparent transfer of memory function during upgrade

Also Published As

Publication number Publication date
JP2001523361A (ja) 2001-11-20
DE69724463T2 (de) 2004-07-08
WO1997050042A1 (en) 1997-12-31
EP0972251A4 (en) 2000-01-19
EP0972251A1 (en) 2000-01-19
TW358180B (en) 1999-05-11
EP0972251B1 (en) 2003-08-27
DE69724463D1 (de) 2003-10-02
KR20000022251A (ko) 2000-04-25
US5815167A (en) 1998-09-29
AU3397697A (en) 1998-01-14
KR100317517B1 (ko) 2002-02-19

Similar Documents

Publication Publication Date Title
JP3976342B2 (ja) 複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置
US5911149A (en) Apparatus and method for implementing a programmable shared memory with dual bus architecture
US7873775B2 (en) Multiple processor system and method including multiple memory hub modules
US6104417A (en) Unified memory computer architecture with dynamic graphics memory allocation
US20060282588A1 (en) Processor system that allows for simultaneous access by multiple requestors to a target with multiple ports
KR20070114179A (ko) 고주파수 중재자를 통해 사이클마다 복수의 버스 중재를수행하는 스위치 매트릭스 시스템
KR100555501B1 (ko) 동적으로 버스 점유 우선 순위를 정하는 버스 중재기 및그 버스 중재 방법
US6317813B1 (en) Method for arbitrating multiple memory access requests in a unified memory architecture via a non unified memory controller
US5748203A (en) Computer system architecture that incorporates display memory into system memory
US5802581A (en) SDRAM memory controller with multiple arbitration points during a memory cycle
KR100869938B1 (ko) 주문형 집적 회로
CA2239426A1 (en) Shared memory system
US6035372A (en) Dynamic RAM in a microprocessor system
KR100210404B1 (ko) 공유 메모리 억세스 제어장치
JP2606824Y2 (ja) マルチポートメモリ装置
JPS63191398A (ja) 情報処理装置
JPH07262125A (ja) 情報処理装置
JPH03178096A (ja) 記憶装置の制御装置
JPH0738181B2 (ja) バス制御方式

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040407

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070424

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070619

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070806