JP3720872B2 - システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム - Google Patents
システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム Download PDFInfo
- Publication number
- JP3720872B2 JP3720872B2 JP15016595A JP15016595A JP3720872B2 JP 3720872 B2 JP3720872 B2 JP 3720872B2 JP 15016595 A JP15016595 A JP 15016595A JP 15016595 A JP15016595 A JP 15016595A JP 3720872 B2 JP3720872 B2 JP 3720872B2
- Authority
- JP
- Japan
- Prior art keywords
- pci
- memory
- signal
- bus
- data
- 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 - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
Description
【発明の背景】
本発明は一般にメモリユニットとコンピュータシステム内の周辺構成要素との間のデータの転送に関する。より特定的には、本発明は、中央処理装置(CPU)の外部にある構成要素と主メモリとの間のトランザクションを速めるためのシステムに関する。さらに特定的には、本発明は主メモリと周辺マスタコントローラとの間のデータの転送を最適化するためのシステムに関する。
【0002】
【関連技術の説明】
データは一般に2つのステップでメモリとコンピュータシステム内の他の構成要素との間で転送される。まずアクセスする構成要素が、所望のメモリ位置のアドレスを表わす信号をアドレスバスを介して発生する。次のまたは後続のクロックサイクルで、その構成要素がデータバスを介して実際にデータをアドレス指定したメモリ位置に、またはそこから転送する。ほとんどのコンピュータシステムでは、メモリへのデータアクセスに要するクロックサイクル数は、メモリにアクセスする構成要素とメモリユニットの速度とに依存する。
【0003】
メモリ回路の速度は2つのタイミングパラメータに基づく。第1のパラメータはメモリアクセス時間であり、これは、メモリアドレスを設定し、データバスを介して、またはそれからデータを生成する、または捕捉するのにメモリ回路が必要とする最小の時間である。第2のパラメータはメモリサイクル時間であり、これはメモリ回路への2つの連続するアクセス間に必要な最小の時間である。典型的にコンピュータシステムの主ワーキングメモリを構成するのに用いられるダイナミックランダムアクセスメモリ(DRAM)回路では、サイクル時間は典型的にはアクセス時間の約2倍である。DRAM回路は一般に、約60−100ナノ秒の範囲のアクセス時間を有し、サイクル時間は120−200ナノ秒である。DRAM回路内の連続メモリアクセスに要する余分な時間が必要なのは、内部メモリ回路がデータ信号を正確に生成するためにリチャージ(またはプリチャージ)するためのさらなる時間を必要とするためである。したがって、10Mhzで動作するマイクロプロセッサは、このようなマイクロプロセッサにおけるクロックパルスが100ナノ秒ごとに発生されるにもかかわらず、同じ100ナノ秒チップに対して連続して(すなわち隣接するクロックパルスで)2つのメモリアクセスを行なうことはできない。DRAMチップはそのチップ内の次のアドレスにアクセスし得る前に安定するための時間を必要とする。結果として、このような状態ではマイクロプロセッサはDRAM回路内のデータへのアクセスを得るまでに1つ以上のループサイクルを行なわなくてはならない。典型的には、メモリコントローラユニット(MCU)がコンピュータシステムの一部として設けられて、DRAM主メモリへのアクセスを調整する。
【0004】
サイクルおよびアクセス時間によって起こる遅延に加えて、DRAM回路はまた、記憶データの整合性を守るために周期的なリフレッシュサイクルを必要とする。これらのサイクルはメモリアクセスに利用可能な時間の約5〜10%を消費し、典型的には4ミリ秒ごとに256のリフレッシュサイクルを必要とする。DRAM回路が周期的にリフレッシュされなければ、DRAM回路内に記憶されたデータは失われてしまう。
【0005】
これらの制約のために、DRAM回路で構成されるメモリは、常に中央処理装置(CPU)または周辺マスタコントローラによって割当てられた時間間隔内でメモリアクセスに応答できるわけではない。この場合、データバスを介してデータの準備ができるまで、またはデータバスからのデータがメモリ回路によって記憶されるまでに補足プロセッササイクルまたは待ち状態が必要であることを外部回路がCPU(または周辺マスタコントローラ)に伝えなくてはならない。CPUの処理を遅くするだけでなく、待ち状態は一般にCPUローカルバスの使用を必要とし、それによって他のシステム回路によるバスへのアクセスを制限してしまう。
【0006】
プロセッサの動作速度が上昇し、新世代のプロセッサが開発されるにつれて、これらの新しいプロセッサの能力をフルに利用するには待ち状態を最小にすることが有利である。しかしながら、パーソナルコンピュータにおいてこれらの新世代の高速プロセッサの最大の利点を得るのは、DRAM主メモリ等のシステム内の他の構成要素のサイズおよび電力の制約のために、特に難しい。技術的または科学的計算や計算機援用設計のプログラム等を伴うメモリ集約型のアプリケーションでは、メモリアクセス時間がシステムの動作を大きく遅延させるおそれがある。
【0007】
図1は先行技術のコンピュータシステム10のブロック図であり、マイクロプロセッサまたは中央処理装置(CPU)12と、CPU12に結合されるCPUローカルバス14と、双方ともCPUローカルバス14に結合されるメモリコントローラ16およびローカルバス周辺装置18とを含む。メモリバス15を介してメモリコントローラ16に結合されるシステムメモリ17も示される。さらに、PCI標準バス20がPCIバスブリッジ22を介してCPUローカルバス14に結合する。PCIバス20に結合されるPCI周辺装置28が示される。PCI周辺装置28は、PCIマスタサイクルの間にPCIバスの所有権を主張できるPCIマスタコントローラを含んでもよい。
【0008】
図1に示されるマイクロプロセッサ12はモデル80486マイクロプロセッサを含んでもよく、CPUローカルバス14は80486スタイルローカルバスを含んでもよい。CPUローカルバス14は、データラインの組D[31:0]、アドレスラインの組A[31:0]、および制御ラインの組(特定的には図示せず)を含む。80486CPUローカルバス14のプロトコルおよび種々のバスサイクルに関する詳細は当該分野では周知であり、多くの刊行物に見られるのでここでは詳細には議論しない。CPU12、メモリコントローラ16およびPCIバスブリッジ22は従来は別個の集積回路チップ上に製造されていた。しかしながら、コンピュータシステムにおける最近の傾向としては、CPUコアが単一の集積プロセッサチップ上に種々の周辺装置と組合されている。例示的な集積プロセッサチップは、内部CPUローカルバスと外部PCIバスとの間の高性能インタフェースを与えるバスブリッジを含む。外部PCIバスに高性能インタフェースを与えることによって、外部データ転送に関して比較的高性能の特性を達成することができる。
【0009】
PCIバスブリッジ22は、CPUローカルバス14とPCIバス20との間の標準的なインタフェースを与える。このように、PCIバスブリッジ22は2つのバス間のデータ、アドレスおよび制御信号の転送を調整する。PCIバス20は典型的には、マルチプレクスされるデータ/アドレスラインを含む高性能周辺バスを含み、これはバーストモードデータ転送をサポートする。
【0010】
バーストモードの特徴は、PCIバス上のバーストサイクルを介して高速で連続する記憶場所への読出または書込を可能にする。メモリからの読出または書込のための通常の手順では、第1のクロックサイクルでCPUがアドレスバスを介してアドレス信号を発生し、後続のクロックサイクルでデータがシステムメモリ17へ、またはそれから転送される。データバスは32ビット幅なので、合計4つの8ビットバイトのデータが2クロックサイクルごとにCPUによって読出されるか、または書込まれることが可能である。データバスを介して転送される4つの8ビットバイトの各組は、「倍長語」と称する。バーストモードでは、アドレス段階に干渉することなく後続のクロックサイクルの間にさらなるシーケンシャルな倍長語を転送できる。たとえば、開始アドレスのみがアドレスバスを介して送られるので、合計4つの倍長語が5クロックサイクルだけを用いてCPUに読出され、次に第1の倍長語データが第2のサイクルの間に読出され、第3のサイクルの間に次の倍長語データが読出されるといった具合である。これによってバーストモード動作は比較的速いデータ転送速度を与える。
【0011】
認められるように、PCI周辺装置28はPCIマスタコントローラを含んでもよい。従来の技術に従えば、PCIマスタはPCIバスの「所有権」をリクエストしてPCIバス20を介したトランザクションを制御することができる。当業者には理解されるように、コンピュータシステム内に複数のPCIマスタが含まれてもよく、このいずれもPCIバス20の所有権をリクエストできる。PCIマスタはPCIバス20内の制御ラインを介してPCIブリッジ22にPCIバス20の所有権に対するリクエストを出す。PCIバスブリッジ22は典型的には、種々のPCIマスタ間、およびCPU12等の内部マスタと他の内部マスタ間の所有権のリクエストを調停する。典型的には、種々のマスタの各々に優先権のランクが割当てられてその優先権を決定する際にバスブリッジ22を補助する。
【0012】
PCIブリッジ22はPCIマスタとしても、ローカルバスマスタとしても動作し得る。CPU12が集積プロセッサ外部のPCI「スレーブ」にアクセスすると、PCIブリッジ22はPCIマスタとして動作する。典型的には、PCIブリッジ22のこれらのPCIマスタサイクルの間に、CPU12または別のローカルバスマスタ(たとえばDMAコントローラ)がCPUローカルバス14を所有し、PCIブリッジ22がPCIバス20を所有する。逆に、CPUローカルバス14上にある装置に対するPCI外部マスタアクセスに関しては、PCIブリッジ22は外部マスタに関してターゲットまたはスレーブとして機能し、CPUローカルバス14のマスタとして機能する。
【0013】
結果として、PCIマスタ(すなわち周辺装置28等)がPCIバス20の所有権を得て、メモリコントローラ16等のCPUローカルバス上にある装置に対応するサイクルを始めると、PCIブリッジ22はローカルバス14の所有権を得る。この期間中に、CPU12および他の内部マスタはローカルバス14を用いることはできない。これによって、上述のように主メモリ17内のデータへのアクセスは少なくとも数クロックサイクルを要するので、システムの動作にかなりの遅延が生じる恐れがあり、CPU12等の他のシステム資源は、外部マスタから/にデータがアクセスされている間、待たなくてはならない。PCIマスタは非常に遅い速度でデータを転送し得るし、かつバーストデータ転送の実行中に複数の倍長語を転送し得ることがこの問題をさらに大きくしている。結果として、PCIマスタが低速でシステムメモリ17にアクセスすると、システムメモリバスおよびCPUローカルバスのバンド幅が制限される。
【0014】
【発明の概要】
上で概略的に述べた問題は、周辺PCIマスタ装置から主メモリへのデータアクセスを調整するPCIブリッジを含むコンピュータシステムを提供することによって、大部分解決される。PCIバスブリッジは、PCIマスタによって実行されるバーストメモリサイクルをCPUローカルバス上の単一のメモリサイクルに変換する。PCIマスタが書込サイクルの間にデータを送信する、または読出サイクルの間にデータを受信する準備ができていない場合にCPUローカルバスを介して次のデータトランザクションのメモリアドレスを駆動することによってデータトランザクションを最適化するようにPCIブリッジが機能する。メモリコントローラユニット(MCU)はCPUローカルバスからメモリアドレスを受取り、これが有効メモリ領域内にあることを判断し、アドレス信号を行アドレス信号および列アドレス信号にデコードする。行アドレス信号は直ちにDRAMメモリに適切な行アドレスストローブ信号(RAS)とともに入力され、アクセスされるメモリのページおよびバンクを示す。DRAMメモリは、メモリの適切なページを開くことによって応答し、PCIマスタがデータを与えるまたは受取る準備ができるまでMCUが待たなくてはならなければDRAMページを開くのに必要であろうプリチャージ時間およびアクセス時間を節約する。
【0015】
PCIマスタが書込データを与えるのをPCIブリッジが待つ、またはPCIマスタが読出データを受取る準備ができたことを示す(バースト書込および読出に関する第1のデータトランザクションの後)のを待つ間、PCIブリッジはMEMWAIT信号をMCUに対してアサートして、データがまだ書込まれるかまたは読出される準備ができていないことを示す。しかしながら、このMEMWAIT期間の間であり、かつPCIがローカルバスの所有権を有している間、MCUは次のアドレス信号を用いてメモリの適切なページを開き、後続のデータ転送を速める。マスタからデータがPCIブリッジによって受取られると(またはマスタがデータを読出す準備ができたことを示すと)、PCIブリッジはMEMWAIT信号をデアサートし、MCUが列アドレスストローブ(CAS)信号をアサートして、データ転送を行なう。
【0016】
PCIマスタが次の書込データを送る、または現在PCIブリッジによってラッチされているデータを読出す準備ができたことを示すのをPCIブリッジが待つ間、MEMWAIT信号をアサートするのと実質的に同時に、PCIブリッジはローカルバスアドレスストローブADS#を駆動して、次のデータトランザクションをはじめ、次のトランザクションのメモリアドレスを駆動する。アドレスおよび制御信号を与えることによってより早く次のデータトランザクションを始めることによって、MCUはアドレス信号をデコードし、かつDRAMページを開くことができ、一方で同時にマスタ装置はデータを受取るまたは駆動する準備をする。DRAMページが開かれ、MEMWAIT信号がアクティブである間、PCIブリッジがMEMWAITラインをデアサートしてPCIマスタがデータ転送を完了する準備ができたことを示すまで、MCUは「減速する」または待ち状態サイクルを介してループする。
【0017】
MEMWAITラインがPCIブリッジによってデアサートされると、MCUはメモリアクセスを「加速」し、DRAMページを開いたままでBRDY#ラインをアサートすることによってサイクルを完了する。BRDY#がアサートされると、PCIブリッジは、ADS#をアサートして新しいアドレスをCPUローカルバスへと駆動することによって次のサイクルを始める。PCIブリッジがMEMWAITをアサートしてメモリバスを減速し、その間にMCUがアドレスをデコードして次のアクセスが同じDRAMページまたはDRAMバンク内にあるかどうかを判断する。MEMWAITがアサートされるている間に、適切なDRAMページを開くことによって次のアクセスが行なわれる。
【0018】
MEMWAITがアサートされる期間中、システムメモリのバンクのうちの何らかのものに対してシステムタイマによってリフレッシュサイクルが始められて、そのバンク内のDRAM回路をリフレッシュできる。MCUはリフレッシュサイクルがサービスされる前にまずアドレスされたメモリ位置をラッチしなくてはならない。リフレッシュが完了した後、その間に別のページへのアドレスが受取られるのでない限り、メモリ内の前のページが再び開かれる。
【0019】
本発明の他の目的および利点は、添付の図面を参照して、以下の説明を読むことにより明らかになるであろう。
【0020】
本発明には種々の変形および代替的な形態が可能だが、その具体的な実施例を例として図面に示し、ここに詳細に説明する。しかしながら、図面およびその詳細な説明は本発明を開示する特定の形に制限するものではなく、本発明は前掲の特許請求の範囲によって規定されるその範囲および精神に含まれるすべての変形、均等物および代替物を包含するものである。
【0021】
【詳細な説明】
ここで図2を参照して、好ましい実施例に従って構成されるコンピュータシステムは一般に、集積プロセッサ(IP)50と、PCIバス100を介して集積プロセッサ50に接続される外部PCIマスタ75と、好ましくはメモリバス150によって集積プロセッサ50に接続されるDRAM回路からなる主メモリユニット125とを含む。集積プロセッサ50は好ましくは、CPUコア60と、CPUコア60に結合されるCPUローカルバス65と、ローカルバス65と外部PCIバス100との間でデータ、アドレス、および制御信号をインタフェースさせることができるPCIバスブリッジ80と、メモリコントローラユニット(MCU)90と、タイマ85と、オンチップ周辺装置70とを含む。集積プロセッサ50の図示される構成要素の各々は、好ましくは単一の集積回路上に製造され、共通の集積回路パッケージ内に収容される。
【0022】
好ましい実施例では、CPUコア60はモデル80486マイクロプロセッサ命令セットを実現し、CPUバス65はモデル80486スタイルローカルバスを含む。したがって、好ましい実施例において、CPUローカルバス65は32ビット組のデータラインD[31:0]と、32ビット組のアドレスラインA[31:0]と、1組の制御ライン(具体的には図示せず)とを含む。しかしながら、CPUコアは、本発明の原理から逸脱することなく、他のマイクロプロセッサタイプの命令セットを実現するように構成されてもよいことを理解されたい。
【0023】
当業者には理解されるように、PCIバスブリッジ80は好ましくはバスインタフェースユニット(BIU)(具体的には図示せず)の一部を形成し、CPUローカルバス65とPCIバス100との間の標準的なインタフェースを与える。このように、PCIバスブリッジ80は、CPUローカルバス65とPCIバス100との間のデータ、アドレス、および制御信号の転送を調整する。認められるように、CPUローカルバス65は好ましくは80486スタイルローカルバスを含み、これは当業者には周知であるように別個のアドレスおよびデータラインを含み、一方PCIバス100は複数のマルチプレクスされるアドレス/データラインを含む。したがって、当業者には理解されるように、PCIバスブリッジ80は、好ましくはローカルバス65の32ビットアドレスラインA[31:0]をPCIバス100上のマルチプレクスされるアドレス/データラインAD[31:0]に適切なマルチプレクスユニット(図示せず)を介して接続するように機能する。同様に、PCIブリッジ80は、ローカルバス65の32ビットデータラインD[31:0]をPCIバス100のマルチプレクスされるアドレス/データラインAD[31:0]に直接接続する。
【0024】
PCIブリッジ80はまた、CPUローカルバス65の制御ラインを介して駆動されるいくつかの制御信号、ADS#、R/W、M/IO、バイトイネーブル(C/BE#)、D/CおよびBLAST#を発生する。通常の規定に従って、ADS#はCPUローカルバス65を介して読出または書込サイクルを始めるように機能するアドレスストローブ制御信号である。PCIブリッジ80は、ローカルバス65上にターゲットを有するバスサイクルのためにADS#信号を発生する。ADS#信号は、好ましくはアクティブ・ロー・ストローブ信号である。PCIブリッジ80はまた、PCIバス上のC/BE#(0)ラインの状態に応答してR/W信号を発生して、トランザクションが読出または書込サイクルを含むかどうかを示す。M/IOは、メモリまたはI/O装置にサイクル状態を示す。最後に、BLAST#信号は、データがローカルバス上の単一のアクセスにおいて転送されているのか、またはバーストモードにおいて転送されているのかを示す。好ましい実施例に従えば、PCIブリッジ80はまた、メモリコントローラユニット(MCU)90にMEMWAIT信号を送り、これからMEMHIT信号を受取る。これらの信号は、図2に示されるようにPCIブリッジ80とMCU90との間の直接の電気的接続を介して伝送されてもよく、またはCPUローカルバス65内の制御線を介して与えられてもよい。
【0025】
PCIブリッジ80はまた、CPUローカルバス上の構成要素からRDY#/BRDY#制御信号を受取って、その構成要素によるサイクルの完了を示す。たとえば、メモリコントローラ90がBRDY#をアサートすると、データラインD[31:0]を介してデータを与えていること、またはデータを受取ったことを示す。PCIバス100の側で、PCIブリッジ80は、図2に示されるように好ましくはPCIマスタ75に制御ラインを介して接続するTRDY#出力信号を発生する。同様に、PCIブリッジ80は、好ましくはPCIマスタ75と集積プロセッサ50との間の制御ラインを介してPCIマスタ75からIRDY#を受取る。IRDY#およびTRDY#の双方ともがアサートされるとデータが転送される。
【0026】
CPU内部ローカルバス65は、好ましくは複数のバスマスタをサポートすることができるマルチマスタバスである。CPU60、PCIブリッジ80、および周辺装置70(たとえば直接メモリアクセスコントローラを含み得る)は各々、CPUローカルバス65の所有権を主張することができる。これらの内部マスタによる内部ローカルバス65の所有権は、典型的にはバスインタフェースユニット(BIU)または他のバスアービタ(具体的には図示せず)によって調停される。
【0027】
本発明の動作の説明において以下により詳細に説明するように、PCIブリッジ80はPCIマスタとして機能し得る。集積プロセッサ50が外部PCI「スレーブ」にアクセスすると、PCIブリッジ80は、PCIバス100の所有権を得ることによって他の外部PCIマスタと同様に動作する。したがって、CPUコア60、または周辺装置70がCPUローカルバス65の所有権を主張すると、PCIブリッジ80は、好ましくは、サイクルがPCIバス100上にある装置に向けられていれば、PCIバス100の所有権を主張する。
【0028】
逆に、PCI外部マスタがCPUローカルバス65上にある装置に対してアクセスを求める場合には、PCIブリッジ80は外部PCIマスタに関するターゲットまたはスレーブとして動作する。PCIブリッジはこれに応答してCPUローカルバス65上で対応するサイクルを実行し、それによって外部PCIマスタがたとえばシステムメモリ125内に割当てられたデータを読出し、かつ書込むことを可能にする。したがって、これらのPCIマスタサイクルの間に、外部PCIマスタはPCIバス100を所有し、PCIブリッジ80はローカルバス65を所有する。PCIブリッジ80がCPUローカルバス65の所有権をリクエストすると、HOLDリクエストをCPU60に発生し、マスタシップが付与されるとCPU60はPCIブリッジ80に肯定応答信号HLDAを戻す。
【0029】
メモリコントローラ90は好ましくは、主メモリ125への高性能32ビットデータ経路をサポートする統合制御ユニットを含む。好ましい実施例においては、メモリコントローラ90は工業規格モジュールを用いて256MBまでのDRAMをサポートする4つの32ビットバンクの直接の接続を与える。MCU90は主メモリ125へのアクセスを制御し、CPUローカルバス65に接続して、CPU60、PCIブリッジ80および他の周辺装置(包括的に70として示される)のためのメモリへの経路を与える。上述のように、MCU90は好ましくは、本発明の原理に従ってPCIブリッジ80にMEMHIT信号を与え、PCIブリッジからMEMWAIT信号を受取る。MCU90はシステムタイマ85からタイミング信号を受取る。
【0030】
引続き図2を参照して、MCU90は好ましくは主メモリ125に、アドレスラインMA[11:0]、メモリデータラインMD[31:0]、行アドレスストローブ(RAS)ラインRAS#(3:0)、列アドレスストローブ(CAS)ラインCAS#(3:0)および書込イネーブルラインWE#を含むメモリバス150を介して接続する。アドレス信号はメモリアドレスラインMA[11:0]を介して伝送され、マルチプレクスされる、およびマルチプレクスされないメモリ装置のためにアクセスされるメモリ内の位置を選択する。データライン(MD31─MD0)は、従来の技術に従って、DRAM回路および集積プロセッサ50、または他の外部装置に、およびこれらからデータを転送するためのメモリデータバスラインである。書込イネーブル信号WE#は、メモリアクセスが書込サイクルであるかどうかを示し、典型的にはCPUローカルバス上のW/R制御信号から捕捉される。
【0031】
慣用の技術に従って、行アドレスストローブ(RAS)ライン(RAS3#−RAS0#)は、好ましくは、各DRAMバンクに関してメモリアドレスバスMA[11:0]から行アドレスデータをクロックインするためにDRAM回路が用いるアクティブロー出力を含む。好ましい実施例では、1つのRASラインが各バンク専用となる。4つのDRAMバンクが用いられる好ましい実施例では4つのRASラインが設けられる。同様に、4つの列アドレスストローブ(CAS)ライン(CAS3#−CAS0#)は、1バイトにつき1CASで、DRAMバイトの各バンクに対してメモリアドレスバスMA[11:0]から列アドレスデータをクロックインするのにDRAM回路が用いるアクティブロー出力として設けられる。したがって、たとえばCAS3#は各DARMバンク内のバイト3に関するDRAM列アドレスストローブである。
【0032】
引続き図2を参照して、主メモリ125は好ましくは、各バンクが32ビット(すなわち4バイト)幅である複数のバンクに構成されるDRAM回路を含む。当業者には理解されるように、DRAMバンクの各々は典型的には「ページ」にさらに分割される。ページサイズは、使用されるそれぞれのDRAMチップのサイズに依存する。システムボード上に配置され得るチップの数を減らすようにより少ないコネクタピンでDRAMチップが動作することを可能にするために、DRAMチップはマルチプレクスされた態様でアドレスされる。すなわち、各メモリセルのアドレスが2つの部分に分けて伝送される。アドレスの前半は行アドレスを規定し、後半は列アドレスを規定する。好ましい実施例では、メモリアドレスバスMA(11:0)の最初の12のラインはマルチプレクスされる出力であり、RAS信号の間に行アドレス位置を、CAS信号の間に列アドレス位置を伝える。したがって、個々のメモリセルが列アドレスおよび行アドレスによって選択される。行アドレスおよび列アドレス信号がDRAMメモリに入力される従来の態様は、図3および4の従来のタイミング図に示される。
図3(読出サイクル)および図4(書込サイクル)に一般的に示されるように、RAS(行アドレスストローブ)制御ラインがアサートされると(すなわちRASがローに駆動されると)、行アドレスがDRAMメモリのアドレス入力に駆動される。これは行アドレスを内部行アドレスラッチにクロックする。行アドレスは、RASがアサートされる前の期間(tASR )と、RASがアサートされた後の期間(tRAH )との間、安定していなくてはならない。アドレス入力は次に列アドレスに変えられ、CAS(列アドレスストローブ)がアサートされる(CASがローに駆動される)。CASはまた出力イネーブルとして機能して、CASがアサートされると必ずデータピンアウト上の3状態ドライバが可能化されるようにする。CASがアサートされ得る時間は、最小のRAS対CAS遅延期間(tRCD )によって決定される。RASからのアクセス時間(tRAC )およびCASからのアクセス時間(tCAC )の両方が出会ってから、データが利用可能となる。性能の制限はRASからのアクセス時間(tRAC )によって決定される。メモリアクセスにとって決定的となる別のタイミングパラメータはRASプリチャージ時間(tRP)である。プリチャージ時間(tRP)とは、DRAM回路が前のアクセスから回復するのに必要な時間のことである。データが利用可能となった瞬間に同じDRAM装置への別のサイクルが始められるわけではない。したがって、ダイナミックメモリに対するサイクル時間はアクセス時間を上回る。アクセス時間とサイクル時間との差がプリチャージ時間である。DRAM回路のこれらのタイミング特性は、メモリトランザクションを迅速にしようとすると決定的なものとなる。
【0033】
引続き図2を参照して、DRAM主メモリ125の動作に関する別の重要なファクタは、DRAM回路の周期的リフレッシュの必要性に関する。当業者には理解されるように、データビットをストアするのに個々のDRAM回路において用いられるトランジスタは典型的には1つだけである。トランジスタは、単に、キャパシタにわずかな電荷をストアするスイッチとして機能する。電荷の量は「0」がストアされるか、「1」がストアされるかを決定する。どのキャパシタにも漏れがあるので、DRAMチップ内のキャパシタの電荷は、絶縁体の損失の結果、ゆっくりと放散する。最終的にキャパシタの電荷は完全に放散し、メモリ内容が失われてしまう恐れがある。この問題に対する解決法は、データが失われる前にDRAM回路を読出し、同じデータをDRAMチップに再度書込むことである。この手順は、DRAMを「リフレッシュする」と称する。
【0034】
DRAMリフレッシュ速度は、好ましくはシステムタイマ85から導出される。好ましい実施例では、ほとんどのDRAMリフレッシュサイクルがシステムの性能に影響を与えないように、「隠れた」RAS前CASの時間をずらしたリフレッシュ機構が用いられる。リフレッシュサイクルに必要な期間をさらに最小にするために、MCU90は好ましくは空のバンクに対してはリフレッシュサイクルを行なわない(すなわちDRAMメモリの特定のバンクにDRAM回路が設けられていない場合)。リフレッシュの時間をずらすと、各DRAMバンクを個々にリフレッシュすることによって瞬時の電流の需要を低減する。この態様で、バンク0がリフレッシュされ、次にバンク1がリフレッシュされるという具合である。リフレッシュサイクルが起こる周期はシステムタイマ85によって決定される。タイマによって与えられるクロックは、好ましくは標準の周波数(256KHz)の4倍であって、リフレッシュサイクルは4μ秒ごとに始まり、事実上のリフレッシュ周期は1ミリ秒につき256サイクルとなる。結果として、各DRAMバンクを別個に、かつ256のリフレッシュサイクルを行なうのに標準のリフレッシュ周期である4ミリ秒以内で連続して、駆動するために、タイマ出力を用いることができる。この態様で、各バンクはいかなるバンクも同時にリフレッシュされることなく、約15.625μ秒の標準速度でリフレッシュサイクルを受取る。従来の技術に従えば、リフレッシュサイクルはRASの前縁の前にCASをアサートすることによって始められ、これは通常のDRAMアクセス中には起こらない。
【0035】
オンチップ周辺装置ブロック70は、好ましくは集積プロセッサ50内に実現され得る種々の周辺装置を表わす。たとえば、直接メモリアクセスコントローラ(DMA)または割込コントローラ等の構成要素が集積プロセッサパッケージの一体化した部分として含まれてもよい。当業者には理解されるように、種々の周辺装置が集積プロセッサ50の一部として設けられる。
【0036】
引続き図2を参照して、PCIバス100およびPCIマスタ装置75を以下に詳細に説明する。PCIバス100は、いくつかのPCIマスタをサポートすることができるマルチマスタ能力を備えた高性能32ビットマルチプレクスアドレス/データバスである。好ましいコンピュータシステムの実施例では、どのPCIマスタもPCIバスの制御をリクエストすることができ、バスの所有権を付与されると、どのPCIターゲット装置に対してもサイクルを発生することができる。
【0037】
PCIバス100の制御ラインおよびマルチプレクスされるアドレス/データラインAD[31:0]は、好ましくは、PCIマスタ75等のPCI周辺構成要素とPCIブリッジ80とに接続する。制御ラインは好ましくは、コマンド/バイトイネーブル、サイクルフレーム信号、ターゲットレディ信号、およびイニシエータレディ信号を含む。コマンド/バイトイネーブル(C/BE3#−C/BE0#)は、同じラインを介してマルチプレクスされた転送コマンドおよびバイトイネーブルデータを伝送する。コマンド/バイトイネーブルラインC/BE[3−0]#は、アドレス段階におけるバスコマンドを規定する。データ段階の間に、C/BE[3−0]#は、どのバイトレーンが意味のあるデータを有しているかを決定するバイトイネーブルとして用いられる。
【0038】
サイクルフレーム信号(FRAME#)は維持入力/出力信号であり、好ましくは、PCIマスタによって駆動されてトランザクションの開始および継続を示すアクティブロー信号を含む。したがって、FRAME#はアサートされるとバストランザクションの開始を伝える。FRAME#がデアサートされると、トランザクションは最終データ段階にある。IRDY#は、最終データ段階をマークするFRAME#のデアサートと同じクロック端縁でアサートされなくてはならないことに注目されたい。
【0039】
ターゲット/ローカルバスレディ(TRDY#/LRDY#)は、PCIおよびCPUローカルバスターゲットによって駆動されて、ターゲットの現在のデータ段階を完了する能力を示すアクティブロー入力信号を含む。TRDY#と関連して用いられるイニシエータレディ信号(IRDY#)は、PCIマスタの現在のデータ段階を完了する能力を示すアクティブロー信号を含む。書込サイクルの間、たとえば、IRDY#は有効書込データがAD[31−0]にあることを示す。
【0040】
PCIバスに関するさらなる特徴は、オレゴン州、ヒルスボロ(Hillsboro )のPCI特殊権益グループ(PCI Special Interest Group)の刊行物「PCIローカルバス仕様」(PCI Local Bus Specification )に説明され、ここに引用によって援用する。
【0041】
引続き図2を参照して、本発明の動作を好ましい実施例に従って説明する。PCIマスタ75は、PCIバスを介してリクエストを駆動することによってPCIバス100の所有権をリクエストする。PCIブリッジ80はこれに応答してHOLD信号をCPU60に送り、CPUローカルバス65の所有権をリクエストする。CPU60は、HLDA信号をアサートすることによってローカルバス65の所有権を付与し、これがPCIブリッジ80によって受取られる。PCIブリッジ80は、適切なバス付与信号をマスタ装置75に送ることによってPCIマスタ装置75がPCIバス100を所有することを認める。
【0042】
PCIマスタ75によってFRAME#信号がアサートされると、PCIバス100のマルチプレクスされるアドレスデータラインAD[31:0]が、PCIマスタ75によって有効アドレスで駆動される。PCIブリッジ80はアドレスを捕捉し、これをCPUローカルバス65を介して与える。アドレスがメモリ内の位置に対応する場合には、MCU90はPCIブリッジ80にMEMHIT信号を発行し、次にこれが装置選択(デバイスセレクト)(DEVSEL#)をPCIマスタに発行して、トランザクションをクレームする。PCIバス100のサイクル定義/バイトイネーブルラインC/BE[3:0]が次にサイクル状態オペコードで駆動され、現在のサイクルが書込(または読出)動作であることを示す。好ましい実施例に従えば、PCIブリッジのM/IO信号は、PCIバスのC/BE[2]ラインから捕捉され、PCIブリッジの読出/書込信号R/Wは、PCIバスのC/BE[0]ラインから捕捉される。次に(書込サイクルにおいて)、PCIマスタ75はPCIバス100のADラインを介して書込みたいデータを送り、IRDY#信号をアサートして有効データがPCIバス上にあることを示す。
【0043】
PCIマスタ75によって始められたサイクルがバーストモード動作であれば、PCIマスタ75は初期メモリアドレスを送り、次にPCIバス100を介してデータ信号を駆動する。後続のサイクルで、PCIマスタ75は、連続するデータ伝送の各々についてメモリアドレスが4バイト増分されるべきであることを理解して、バス100を介してデータ信号を駆動するのみである。
【0044】
PCIマスタ75からのバースト伝送に応答して、PCIブリッジ80は連続した(back-to-back)メモリサイクルのシーケンスを発生する。CPUがPCIブリッジ80によってホールドにされると、PCIマスタ75からのバーストサイクルは、従来の技術に従ってBLAST#信号をアサートした状態に保つことによってCPUローカルバス65上の単一サイクルデータ転送のシーケンスに変形する。本発明の原理に従えば、PCIブリッジ80による主メモリへの単一のアクセスの各々は、マスタ装置が最高速度で動作しているときさえも、性能の点で妥協することなくPCIマスタの速度に加減速することができる。
【0045】
本発明の動作は、PCIブリッジがメモリへの書込サイクルを行なっているか、メモリへの読出サイクルを行なっているかによって異なる。これらの各サイクルを次に具体的に述べる。書込トランザクションの間、PCIマスタ75からのバーストサイクルは、PCIブリッジ80によってCPUローカルバス65上の単一サイクル書込アクセスのシーケンスに変えられる。PCIマスタはまず、PCIバスのADラインAD[31:0]を介してアクセスしたいメモリ内の位置のアドレスを駆動する。PCIブリッジ80はこれに応答してCPUローカルバス65を介してアドレスを駆動し、MEMHITがMCU90によって(ヒットがもし起これば)発行される。デバイスセレクトがPCIブリッジ80によってアサートされ、PCIマスタに戻される。PCIマスタによってPCIバスを介してデータが駆動され(IRDY#として示される)、PCIブリッジ80へとデータがラッチされる(TRDY#によって示される)。PCIブリッジ80がPCIマスタ75から第1のデータ情報およびアドレスを受取ると、PCIブリッジ80はADS#信号をアサートし、アドレスおよびデータ信号をCPUローカルバスへと送ることによってCPUローカルバス65を介してそのサイクルを始める。MCU90はメモリ内の特定されたアドレスへのデータの書込を進め、CPUローカルバス65を介してPCIブリッジ80にBRDY#制御信号をアサートして、データ書込サイクルの第1の倍長語を受取ったことを示す。
【0046】
メモリへの後続のデータ書込(PCIバスを介したバーストサイクルの間)に関しては、本発明は、MEMWAITを発行することによって、およびMCU90に次の倍長語データのメモリアドレスを、対応する倍長語がPCIマスタ75から受取られる前に与えることによって、メモリを「加減速」する。これによって、MCU90は、前もってデータが書込まれるメモリ内のページを開く。その結果、MCU90は本質的に「先を見て」次のデータ書込がどこで起こるかを判断することができ、データが実際にPCIマスタ75によって伝送される前にメモリのそのページへのアクセスを始めることができる。
【0047】
この先を見る能力は、MCU90がBDRY#信号を戻した直後のバーストサイクルの間に第2のおよびすべての後続のデータ転送を開始することによって達成される。MCU90からBRDY#信号を受取った後、PCIブリッジ80はTRDY#信号をアサートして、PCIマスタ装置75にターゲット(すなわちMCU)がデータ書込トランザクションを完了したか、または準備ができていることを示す。次のクロック信号で、PCIマスタはもし準備ができていれば書込むべき次のデータを駆動して、IRDY#をアサートして有効データがADラインを介して駆動されていることを示してもよい。しかしながら、PCIマスタ75が遅く、データがまだ運ばれる準備ができていなければ、IRDY#がPCIマスタによってデアサートされて、準備ができている有効データを持たないことを示す。IRDY#がTRDY#のアサートに続くクロックサイクルでデアサートされれば、PCIブリッジ80はMEMWAIT信号をMCU90に対してアサートし続け、MCUが無効データを書込むことを防ぐ。MEMWAIT信号は少なくとも1クロックサイクルの間、無条件にアサートされることに注目されたい。MEMWAIT信号を与えるのに加えて、PCIブリッジ80はCPUローカルバス65を介して次の書込位置のメモリアドレスを駆動し、同時にADS#信号をアサートし、これによってMCU90はアドレス信号をラッチすることとなる。MCUは次に適切な行アドレスストローブ(RAS)ラインをアサートし、それによって次のアドレスが位置されるページをDRAMメモリ内の適切なバンクにおいて開くのを可能にする。
【0048】
PCIマスタ装置75が、IRDY#のマスタによるアサートで示されるようにデータを駆動する準備ができると、データがPCIバス100からPCIブリッジ80を介してCPUローカルバス65に転送され、MEMWAIT信号がPCIブリッジ80によってデアサートされる。MUC90はこれに応答してデータをラッチして、列アドレスストローブ(CAS)をアサートして転送を完了する。この手順の結果、アドレスが異なるDRAMバンク内にあった場合にはRASアクセス時間(tRAC )を節約することができ、アドレスが同じDRAMバンク内の異なるページにあった場合にはRASアクセス時間(tRAC )とRASプリチャージ時間(tRP)の両方を節約することができる。
【0049】
逆に、PCIマスタ75によるバースト読出トランザクションの第1のサイクルにおいては、システムメモリ125に対するサイクルが、PCIバス100およびCPUローカルバス65の両方のマスタシップが達成された後に開始される。PCIマスタ75は、FRAME#信号をアサートしてPCIバス100のアドレスラインをリクエストされたデータのアドレスで駆動することによってサイクルを示す。PCIブリッジ80は、読出すべきメモリ内のアドレスを実質的に同時に駆動する。MCU90は読出アドレスを受取り、アドレスが主メモリ125内のアドレスに対応する場合にはMEMHIT信号を発行し、これに応答してPCIブリッジはマスタ75にDEVSEL#信号を発行する。PCIマスタ75はトランザクションを続け、PCIブリッジ80はローカルバスアドレスストローブ信号ADS#をアサートして、MCU90にアドレス信号をラッチさせる。MCU90は次にメモリの行および列に対するアクセスを進め、有効データを戻し、これはローカルバス65上のBRDY#のアサートによって示される。これに応答して、PCIブリッジ80はPCIバス100上でTRDY#信号を発行し、メモリに対する次の読出サイクルをすぐに開始する。
【0050】
PCIマスタ75がTRDY#信号に応答して(またはその前に)IRDY#信号をアサートしなければ、PCIブリッジ80がMCU90にMEMWAITをアサートして読出サイクルが加減速される。MEMWAITがアサートされている間、MCU90はPCIブリッジ80から次の読出アドレスを受取り、アドレス信号を行および列アドレスにデコードする。MCU90は次に、適切なRASラインのアサートによって可能化される行アドレスを用いて、読出アドレスが位置されるメモリ内のページを開く。好ましい実施例においては、MCU90はまた、適切なCASラインによって可能化される列アドレスを与えることによってメモリバス150へとデータを駆動する。結果として、MEMWAITがまだアサートされている間に、読出すべきデータがローカルバスに駆動される。
【0051】
PCIマスタ装置75がIRDY#をアサートし、かつ第1のデータ段階を受取ると、次の読出サイクルはPCIブリッジ80によるMEMWAITのデアサートで進められる。好ましい実施例に従って次のデータがローカルバスにロードされると、MCU90はBRDY#信号をもって直ちに応答し、PCIブリッジ80はTRDY#信号を発行して、PCIマスタに次のデータ段階の読出の準備ができていることを示す。TRDY#信号の発行後、PCIマスタは、ADS#をアサートしてローカルバスを介して次の読出アドレスを駆動し、MEMWAITをアサートすることによって、次の読出サイクルを直ちに始める。
【0052】
本発明の原理はまた、MEMWAITがアサートされている間にリフレッシュサイクルを行なうことを可能にするように、リフレッシュサイクルの間にも実現することができる。MEMWAITがアサートされている間に、ページが開かれている同じDRAMバンクにリフレッシュリクエストが発行されると、MCU90は好ましくは、CASラインをアクティブな状態に保ち、かつRASラインをデアサートしてプリチャージサイクルを始めることによって、RAS前CASリフレッシュサイクルを始める。プリチャージサイクルが完了すると、MCU90はRASラインをアサートしてリフレッシュサイクルを開始し、tRAS 時間に出会うまで行ない、このときにRASラインはデアサートされてプリチャージサイクルを再び始める。プリチャージサイクルが完了すると、MCU90は前のDRAMページを再び開き、MEMWAITがまだアサートされていればメモリバスを減速し続ける。
【0053】
MEMWAITがリフレッシュサイクルの間にデアサートされると、MCU90は好ましくはtRAS に出会うまで待ち、RASラインをデアサートしてプリチャージサイクルを始める。プリチャージサイクルが完了すると、MCU90は前のDRAMページを開き、BRDY#をPCIブリッジ80にアサートした後メモリアクセスを完了する。リフレッシュリクエストが起こるまで、または別のマスタによって異なるDRAMページに後続のデータアクセスが行なわれるまで、DRAMページは開かれたままである。リフレッシュが完了した後にDRAMページを先に開くことによってこのシーケンスで節約される時間はtRAC 期間である。
【0054】
MEMWAITがアサートされている間に、リフレッシュリクエストが異なるDRAMバンクに発行されれば、MCU90は好ましくは、CASラインをアクティブに保ったままで現在のアクティブRASラインをデアサートして現在のページを閉じ、新しいバンクのRASラインを直ちにアサートしてリフレッシュサイクルを始める。tRAS に出会うまで新しいRASラインはアクティブなままであり、出会うとRASラインはデアサートされてプリチャージを始める。プリチャージサイクルが完了すると、MCU90は前のDRAMページを開き、MEMWAITがまだアサートされていればメモリバスを減速し続ける。
【0055】
逆に、リフレッシュサイクルの間にMEMWAITがデアサートされれば、MCUは好ましくはtRAS に出会うまで待ち、RASラインをデアサートしてプリチャージサイクルを始める。プリチャージサイクルの完了時に、MCUは前のDRAMページを開き、BRDY#をアサートした後メモリアクセスを完了する。リフレッシュリクエストまたは別のPCIマスタが異なるページにメモリリクエストを発行するまで、DRAMページは開いたままである。やはり、リフレッシュが完了した後に前もってDRAMページを開くことによって節約される時間はtRAC 期間である。
【0056】
本発明のプロトコルが実現される態様をさらに理解するために、例示的なタイミング図を説明する。図5ないし9は、主メモリ内の様々な位置への読出および書込サイクルと関連するデータ、アドレスおよび制御信号を示すタイミング図である。DRAMメモリの状態は、これらの図の理解を深めるために、タイミング図の下の行に示される。
【0057】
まず図5を参照して、主メモリ内のDRAMバンクの同じページに対してメモリへの2つの連続するアクセスが行なわれる場合について、加減速されるメモリ読出サイクルが示される。初期状態において、メモリ内のページは、同じページへの前のメモリアクセスを示すDRAMSTATE表示で示されるように、開かれている。この初期期間において、RAS(1)ラインはアサートされて、DRAMメモリのバンク1がアクセスされ、そのバンクのページが開かれていることを示す。次に、PCIブリッジによって(1)ADS#制御信号をローに駆動し、(2)W/R信号をハイにアサートして書込サイクルを示し、(3)アドレスおよびデータ情報をローカルバスを介して与えることによって、書込サイクルが始められる。従来の技術に従って、MCUは、メモリ書込が実際にそのサイクルを完了するまでに、第1のT2サイクルにおいて早くBRDY#をアサートする。その後少し経ってから、MCUはCAS(2)ラインをアサートし、データ書込を完了する。
【0058】
PCIブリッジはBRDY#信号をMCUから受取ると直ちに、ADS#信号をアサートして読出サイクルである次のサイクルを開始し、これはW/Rラインがローに駆動されることによって表わされる。同時に、PCIブリッジはMEMWAIT信号をアサートし、メモリバスを減速する。好ましい実施例に従えば、MEMWAITがアサートされている間にアドレス信号がMCUに与えられる。DRAMページが既に開かれているので、MCUは、図5に示される状態においてRASラインの状態を変えることによってページを開く必要はない。しかしながら、好ましい実施例では、MCUはCASライン(この場合CAS(2))をアサートして、読出すべきデータをメモリバスへと駆動し、したがってローカルバスへと駆動する。MEMWAITがデアサートされると、MCUはBRDY#をアサートして、データが利用可能であり、DRAMページが次のサイクルのために開いたままであることを示す。
【0059】
したがって、アドレスが同じDRAMページにあれば、PCIブリッジ80によってMEMWAITがデアサートされるまで、またはリフレッシュサイクルリクエストが発行されるまで待ち状態サイクルを介してループすることによってMCU90はメモリバス150を減速する。MEMWAITがデアサートされると、MCU90はBRDY#をアサートし、メモリアクセスを完了する。別のマスタ装置が異なるページに対してメモリリクエストを発行するまで、またはリフレッシュリクエストが起こるまで、DRAMページは開いたままである。
【0060】
ここで図6を参照して、同じDRAMページに対する加減速メモリ書込サイクルが示される。やはり、初期状態においてDRAMページは開かれており、そのページへの前のアクセスを示す。次に、PCIブリッジはADS#制御信号をアサートし、W/R信号をアサートして書込サイクルを示し、MEMWAITラインをアサートしてPCIマスタがまだデータを送信する準備ができていないことを示す。MEMWAITラインがアサートされている間、好ましい実施例に従えば、PCIブリッジはMCUに書込サイクルのアドレスを駆動する。しかしながら、適切なページが既に開かれているので、RASラインの状態は変わらない。MEMWAIT信号がPCIブリッジによってデアサートされると、MCUはBRDY#をアサートして、適切なCASライン(CAS(2))をアサートすることによって書込サイクルを完了する。MEMWAIT信号のない後続の読出サイクルが図6に示される。
【0061】
ここで図7を参照して、異なるDRAMバンクに対する加減速メモリ読出サイクルが示される。初期状態において、バンク3のDRAMページが、RAS(3)のアサートによって示されるように前のメモリアクセスから開かれている。次に、PCIブリッジは読出サイクルを示すようにR/Wラインをローに保ったままでADS#制御信号をアサートする。実質的に同時にPCIブリッジはMEMWAIT信号をアサートして、PCIマスタ装置がデータを受取る準備がまだできていないことを示す。好ましい実施例に従えば、PCIブリッジはローカルバスを介してアドレスを駆動し、そこでMCUによって受取られる。MCUはアドレスをデコードし、DRAMバンク3からDRAMバンク2に変え、RAS(3)をハイに駆動しながら行アドレスストローブラインRAS(2)をローに駆動して、デコードされた行アドレスをバンク2に駆動する。MCUは次にバンク2内の適切なDRAMページを開き、4つのCASラインをアサートすることによって所望のデータをメモリバスを介して送り、次にローカルバスに駆動する。MEMWAIT信号がデアサートされてPCIマスタがデータを受取る準備ができたことを示すと、MCUはBRDY#信号をアサートし、読出サイクルが行なわれたことを示す。
【0062】
したがって、アドレスが異なるDRAMバンクに対するものであれば、MCUは、MEMWAITがアサートされている間に現在のバンクの現在のDRAMページを閉じ、新しいバンクのDRAMページを直ちに開く(異なるDRAMバンクがアクセスされるのでRASプリチャージサイクル時間が存在しないため)。MEMWAITがデアサートされるまで、またはリフレッシュリクエストが発行されるまで、待ち状態サイクルを介してループすることによってMCUはメモリバスを減速する。MEMWAITがデアサートされた後、MCUはBRDY#をアサートし、メモリアクセスを完了する。マスタによる別のページへの後続のメモリアクセスまで、またはリフレッシュリクエストが受取られるまで、DRAMページは開いたままである。このシーケンスにおいて、DRAMページにアクセスする時間(tRAC )が、データアクセスに先立ってページを開くことによって節約される。
【0063】
図8はメモリ内の別のページへの加減速メモリ読出サイクルを示す。最初の2つの状態は、MEMWAITのない読出サイクル前の書込サイクルを示す。次にPCIブリッジは、読出サイクルを示すようにW/Rラインがローに保たれたままで、ADS#制御信号をアサートし、MEMWAITを同時にアサートする。MEMWAITがアサートされている間、PCIブリッジはアドレスをローカルバスを介してMCUに駆動する。MCUはアドレスをデコードし、メモリ内の適切なページを開く。ページが開かれると、MCUはCASラインをアサートして、データをメモリバスへ、次にローカルバスへと駆動する。MEMWAITがデアサートされると、MCUはBRDY#をアサートして、読出サイクルが完了することを示す。
【0064】
したがって、アドレスが別のDRAMページにあれば、MCUはMEMWAITがアサートされた状態で現在のDRAMページを閉じ、プリチャージ状態に進む。RASプリチャージが完了すると、MCU90はDRAMページを開き、MEMWAITがデアサートされるまで、またはリフレッシュリクエストが発行されるまで待ち状態サイクルを介してループすることによってメモリバス150を減速する。MEMWAITがデアサートされた後、MCUはBRDY#をアサートし、CASをアサートすることによってメモリアクセスを完了し、DRAMページの特定のバイトがアクセスされることを可能にする。データ転送が完了した後、DRAMページは、リフレッシュリクエストが受取られるまで、または別のマスタ装置がメモリリクエストを別のページに発行するまで、開いたままである。このシーケンスでは、RASプリチャージサイクル時間(tRP)が節約され、DRAMページにアクセスするのに必要な時間(tRAC )が節約される。
【0065】
最後に図9はリフレッシュサイクルが介在する加減速メモリ読出サイクルを示す。図9の初期状態は書込サイクルである。次にPCIブリッジはADS#制御信号をアサートし、W/R信号をローに駆動し、同時にMEMWAITをアサートし、PCIマスタがデータを受取る準備がまだできていないことを示す。PCIブリッジはローカルバス上でアドレスを駆動し、ここでこれがMCUによって受取られ、メモリ内の所望のページにアクセスするのに用いられる、。MCUは次に適切な列アドレスストローブラインCAS(2)をアサートし、データをメモリバスへと駆動する。しかしながら、MEMWAITがまだアサートされている間に、リフレッシュリクエストがMCUによって受取られる。MEMWAITがまだアサートされた状態で、MCUは、バンク0のためのリフレッシュサイクルをそのバンクについてRAS前にCASをアサートすることによって行なう。リフレッシュが完了した後、MCUは、再びRAS(1)をアサートすることによってメモリ内の適切なページを再び開き、CAS(2)をアサートすることによってデータを駆動する。
【0066】
上の開示が十分に理解されれば、種々の変形および変更が当業者には明らかになるであろう。前掲の特許請求の範囲はこれらの変形および変更のすべてを包含すると解釈されたい。
【図面の簡単な説明】
【図1】PCIマスタ装置をサポートする先行技術のコンピュータシステムの機能ブロック図である。
【図2】好ましい実施例に従って構成されるコンピュータシステムの機能ブロック図である。
【図3】典型的な読出サイクルのタイミング図である。
【図4】典型的な書込サイクルのタイミング図である。
【図5】図2に示されるシステムの動作を示すタイミング図である。
【図6】図2に示されるシステムの動作を示すタイミング図である。
【図7】図2に示されるシステムの動作を示すタイミング図である。
【図8】図2に示されるシステムの動作を示すタイミング図である。
【図9】図2に示されるシステムの動作を示すタイミング図である。
【符号の説明】
50 集積プロセッサ
60 CPU
65 CPUローカルバス
70 オンチップ周辺装置
80 PCIブリッジ
100 PCIバス
Claims (27)
- システムメモリとPCIマスタ装置との間のデータの転送を最適化するための方法であって、前記PCIマスタはPCIバスを介してPCIブリッジに接続し、PCIブリッジはCPUローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたCPUローカルバス上にあり、前記方法は
(a) PCIマスタによってPCIバスの所有権を主張するステップと、
(b) PCIマスタによってPCIバス上のアドレス信号を駆動するステップと、
(c) PCIブリッジによってCPUローカルバス上のアドレスストローブ信号を発生し、前記アドレス信号をCPUローカルバスを介して駆動するステップと、
(d) PCIブリッジによって待ち信号を発生して、PCIマスタがデータトランザクションのデータ段階を直ちに完了することができないことを示すステップと、
(e) メモリコントローラによってアドレス信号をデコードするステップと、
(f) 前記メモリコントローラによってシステムメモリ内の適切なページを開くステップと、
(g) PCIマスタがデータ段階を完了する準備ができたという指示に応答して待ち信号をデアサートするステップと、
(h) メモリコントローラによってデータトランザクションを完了するステップとを含む、方法。 - システムメモリとPCIマスタ装置との間のデータの転送を最適化するための方法であって、前記PCIマスタはPCIバスを介してPCIブリッジに接続し、PCIブリッジはCPUローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたCPUローカルバス上にあり、前記方法は
(a) PCIマスタによってPCIバスの所有権を主張するステップと、
(b) PCIマスタによってPCIバス上のアドレス信号を駆動するステップと、
(c) PCIブリッジによってCPUローカルバス上のアドレスストローブ信号を発生し、前記アドレス信号をCPUローカルバスを介して駆動するステップと、
(d) PCIブリッジによってメモリ待ち信号を発生して、PCIマスタがトランザクションのデータ段階を直ちに完了することができないことを示すステップと、
(e) 前記メモリ待ち信号を前記メモリコントローラに与えるステップと、
(f) メモリコントローラによってアドレス信号をデコードするステップと、
(g) 前記メモリ待ち信号がアサートされている間に、かつ前記PCIマスタがデータトランザクションを完了する準備ができるより先に、前記メモリコントローラによってシステムメモリ内の適切なページを開くステップと、
(h) PCIマスタがデータ段階を完了する準備ができたという指示に応答して待ち信号をデアサートするステップと、
(i) メモリコントローラによってデータトランザクションを完了するステップとを含む、方法。 - 適切なメモリページを開く前記ステップ(ステップ(g))が、
(g)(1) 行アドレス信号をシステムメモリに与えるステップと、
(g)(2) 適切な行アドレスストローブ(RAS)ラインをアサートして行アドレス信号を可能化するステップとを含む、請求項2に記載の方法。 - メモリコントローラがまた列アドレスを与え、適切な列アドレスストローブ(CAS)信号をアサートして、メモリ待ち信号がまだアサートされている一方で読出サイクル中に前記システムメモリからデータを駆動する、請求項3に記載の方法。
- 前記メモリ待ち信号がアサートされている間にリフレッシュサイクルが行なわれる、請求項2に記載の方法。
- データトランザクションを完了する前記ステップ(ステップ(i))が、
(i)(1) 適切な列アドレスストローブ(CAS)信号をアサートしている間に前記システムメモリに列アドレス信号を与えて、待ち信号がまだアサートされている間に読出サイクル中に前記システムメモリからデータを送り出すステップと、
(i)(2) PCIブリッジにBRDY#をアサートするステップとを含む、請求項2に記載の方法。 - 前記PCIブリッジが、前記メモリコントローラからのBRDY#に応答してPCIマスタにTRDY#をアサートする、請求項6に記載の方法。
- TRDY#信号に応答して前記PCIマスタがIRDY#をアサートしなければ、前記PCIブリッジが前記メモリ待ち信号をアサートする、請求項7に記載の方法。
- 書込サイクル中にPCIマスタ装置とシステムメモリとの間のデータの転送を最適化する方法であって、前記PCIマスタはPCIバスを介してPCIブリッジに接続し、PCIブリッジはCPUローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたCPUローカルバス上にあり、前記方法は
(a) PCIバスの所有権をPCIマスタが得るステップと、
(b) PCIマスタがPCIバスを介してバーストサイクルを送るステップと、
(c) 前記PCIブリッジが第1のアドレス信号および第1のデータ信号を前記バーストサイクルから受取り、前記CPUローカルバスの所有権を得るステップと、
(d) 前記PCIブリッジが前記第1のアドレス信号および前記第1のデータ信号を前記CPUローカルバスを介して送るステップと、
(e) 前記メモリコントローラが前記第1のデータ信号を第1のアドレス信号に対応する前記システムメモリ内のアドレスに書込み、前記PCIブリッジにメモリレディ信号を発行するステップと、
(f) 前記メモリコントローラからの前記レディ信号に応答して、前記PCIブリッジが前記PCIマスタにターゲットレディ信号を発行するステップと、
(g) 前記PCIマスタからのイニシエータレディ信号がない状態で、前記PCIブリッジがメモリ待ち信号をメモリコントローラに発生し、第2のアドレス信号を前記メモリコントローラに与えるステップと、
(h) 前記システムメモリコントローラが第2のアドレス信号をデコードして、行アドレスおよび列アドレスを発生するステップと、
(i) 前記システムメモリコントローラが前記第2のアドレス信号の行アドレスを前記システムメモリに送り、前記システムメモリに行アドレスストローブ(RAS)信号をアサートして、前記メモリ待ち信号がアサートされている間に、かつ前記PCIマスタが第2のデータ信号を前記PCIバスを介して送る準備ができるより先に、前記システムメモリ内の適切なページを開くステップとを含む、方法。 - 第1のアドレス信号がシステムメモリ内にある場合に、前記メモリコントローラがステップ(d)に応答してMEMHIT信号を発生する、請求項9に記載の方法。
- (j)PCIマスタが第2のデータ信号を前記PCIバスを介して駆動したことを示す前記PCIマスタからのイニシエータレディ信号に応答して待ち信号をデアサートするステップと、
(k) 前記システムメモリコントローラが前記第2のアドレス信号の列アドレスを前記システムメモリに送り、適切な列アドレスストローブ(CAS)信号を前記システムメモリにアサートして、前記第2のデータ信号が前記システムメモリに書込まれることを可能にするステップとをさらに含む、請求項10に記載の方法。 - 待ち信号がアサートされている間に、前記システムメモリのバンクに対してリフレッシュサイクルが行なわれる、請求項9に記載の方法。
- 待ち状態がアサートされている間に、メモリ内の適切なページが開いているメモリの同じバンクに対して、リフレッシュサイクルが行われる、請求項10に記載の方法。
- リフレッシュサイクルがRAS前CASシーケンスを含む、請求項12に記載の方法。
- メモリの各バンクが独立してリフレッシュされる、請求項12に記載の方法。
- 読出サイクル中にPCIマスタ装置とシステムメモリとの間のデータの転送を最適化する方法であって、前記PCIマスタはPCIバスを介してPCIブリッジに接続し、PCIブリッジはCPUローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたCPUローカルバス上にあり、前記方法は
(a) PCIマスタがPCIバスの所有権を得るステップと、
(b) PCIマスタがPCIバスを介して読出されるべき前記システムメモリ内の第1のアドレス信号を送るステップと、
(c) 前記PCIブリッジが前記第1のアドレス信号を受取り、前記CPUローカルバスの所有権を得るステップと、
(d) 前記PCIブリッジが前記CPUローカルバスを介して前記第1のアドレス信号を送るステップと、
(e) 前記メモリコントローラが前記第1のアドレス信号を受取り、第1のアドレス信号に対応する前記システムメモリ内の第1のデータ信号を読出し、前記第1のデータ信号を前記ローカルバスを介して送り、メモリレディ信号を前記PCIブリッジに発行するステップと、
(f) 前記PCIブリッジが、前記メモリコントローラからの前記メモリレディ信号に応答して、前記PCIマスタにターゲットレディ信号を発行するステップと、
(g) 前記PCIマスタからのイニシエータレディ信号がない状態で、前記PCIブリッジがメモリ待ち信号をメモリコントローラに発生し、第2のアドレス信号を前記メモリコントローラに与えるステップと、
(h) 前記メモリコントローラが第2のアドレス信号をデコードして行アドレスおよび列アドレスを発生するステップと、
(i) 前記メモリコントローラが前記第2のアドレス信号の行アドレスを前記システムメモリに駆動し、行アドレスストローブ(RAS)信号を前記システムメモリにアサートして、前記メモリ待ち信号がアサートされている間に、かつ前記PCIマスタが第2のデータ信号を受取る準備ができるより先に、メモリ内の適切なページを開くステップとを含む、方法。 - 第1のアドレス信号がシステムメモリ内に位置するとき、前記メモリコントローラがステップ(d)に応答してMEMHIT信号を発生する、請求項16に記載の方法。
- (j) 前記メモリコントローラが前記第2のアドレス信号の列アドレスを前記システムメモリに駆動し、列アドレスストローブ(CAS)を前記システムメモリにアサートして、前記第2のアドレス信号に対応する前記第2のデータ信号を前記CPUローカルバスへと駆動するステップをさらに含む、請求項17に記載の方法。
- (k) PCIマスタが前記第1のデータ信号を受取る準備ができたことを示す前記PCIマスタからのイニシエータレディ信号に応答して、待ち信号をデアサートするステップと、
(l) 前記メモリコントローラがメモリレディ信号を発行するステップと、
(m) 前記PCIブリッジが前記PCIマスタにターゲットレディ信号をアサートし、別の読出サイクルを始めるステップとをさらに含む、請求項18に記載の方法。 - メモリ待ち信号がアサートされている間に前記システムメモリのバンクに対してリフレッシュサイクルが行なわれる、請求項16に記載の方法。
- コンピュータ内のメモリアクセス時間を最適化するためのシステムであって、
データを記憶し、アクセスするためのシステムメモリと、
前記システムメモリに接続されて前記システムメモリへのアクセスを制御するメモリコントローラユニットと、
CPUローカルバスを介して前記メモリコントローラユニットに接続されるPCIブリッジと、
前記PCIブリッジにPCIバスを介して接続される周辺PCIマスタ装置とを含み、前記PCIマスタ装置は、システムメモリへのデータトランザクションを完了するようにPCIバスの所有権を主張し、前記PCIブリッジは、PCIマスタがPCIバスの所有権を主張するときにCPUローカルバスの所有権を主張し、さらに
前記CPUローカルバスに接続されるCPUコアを含み、
前記PCIブリッジはメモリコントローラに対してメモリ待ち信号をアサートし、実質的に同時に、PCIマスタ装置がデータ転送を完了するのが遅れる場合に、メモリコントローラユニットにCPUローカルバスを介して次のデータトランザクションに対応する前記システムメモリ内のアドレスを駆動し、
前記メモリ待ち信号がアサートされている間に、かつ前記PCIマスタがデータ転送の完了に遅れている間に、前記メモリコントローラが前記システムメモリ内の適切なページを開く、システム。 - 前記システムメモリがDRAMチップの4つの別個のバンクを含む、請求項21に記載のシステム。
- 約15.625/4マイクロ秒ごとにDRAMチップのバンクのためのリフレッシュリクエストサイクルを発生するシステムタイマをさらに含む、請求項22に記載のシステム。
- リフレッシュサイクルが約15.625マイクロ秒ごとに前記DRAMチップの各バンクにおいて発生される、請求項23に記載のシステム。
- リフレッシュサイクルが4つのバンクで時間をずらして行なわれる、請求項24に記載のシステム。
- データがPCIバスを介して送られるときに前記PCIマスタがレディ信号を発行しなければ、前記PCIブリッジが読出サイクルにおいて前記メモリ待ち信号をアサートする、請求項21に記載のシステム。
- PCIブリッジがレディ信号を発行した後、フレームサイクル信号がアサートされたままの状態で前記PCIマスタがレディ信号を発行しなければ、前記PCIブリッジが前記待ち信号をアサートする、請求項21に記載のシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15016595A JP3720872B2 (ja) | 1995-06-16 | 1995-06-16 | システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15016595A JP3720872B2 (ja) | 1995-06-16 | 1995-06-16 | システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH096713A JPH096713A (ja) | 1997-01-10 |
JP3720872B2 true JP3720872B2 (ja) | 2005-11-30 |
Family
ID=15490934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15016595A Expired - Fee Related JP3720872B2 (ja) | 1995-06-16 | 1995-06-16 | システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3720872B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386670B2 (en) | 2007-01-15 | 2013-02-26 | Ricoh Company, Ltd. | System controlling device and image processing system |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100546546B1 (ko) * | 1999-02-23 | 2006-01-26 | 가부시키가이샤 히타치세이사쿠쇼 | 집적 회로 및 그것을 이용한 정보 처리 장치 |
-
1995
- 1995-06-16 JP JP15016595A patent/JP3720872B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386670B2 (en) | 2007-01-15 | 2013-02-26 | Ricoh Company, Ltd. | System controlling device and image processing system |
Also Published As
Publication number | Publication date |
---|---|
JPH096713A (ja) | 1997-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0692764B1 (en) | Memory throttle for PCI master | |
US5873114A (en) | Integrated processor and memory control unit including refresh queue logic for refreshing DRAM during idle cycles | |
US6269433B1 (en) | Memory controller using queue look-ahead to reduce memory latency | |
EP0427425B1 (en) | Improved paged memory controller | |
US6721864B2 (en) | Programmable memory controller | |
EP0426329B1 (en) | Combined synchronous and asynchronous memory controller | |
US5193193A (en) | Bus control system for arbitrating requests with predetermined on/off time limitations | |
US6026464A (en) | Memory control system and method utilizing distributed memory controllers for multibank memory | |
US5179667A (en) | Synchronized DRAM control apparatus using two different clock rates | |
KR100275407B1 (ko) | 컴퓨터 버스 상의 공유 자원에 대한 신속한 액세스 | |
JP3918145B2 (ja) | メモリコントローラ | |
JPH04230544A (ja) | ダイナミックメモリシステムのタイミングを動的に設定するデータ処理装置 | |
JPH06101225B2 (ja) | コンピユータ・システム、コンピユータ・システム中のメモリの読取方法及び転送方法、メモリ制御の方法及びメモリ・コントローラ | |
US5818464A (en) | Method and apparatus for arbitrating access requests to a shared computer system memory by a graphics controller and memory controller | |
KR950008231B1 (ko) | 퍼스널 컴퓨터 시스템 | |
US6233661B1 (en) | Computer system with memory controller that hides the next cycle during the current cycle | |
US6279065B1 (en) | Computer system with improved memory access | |
US5689660A (en) | Enhanced peripheral component interconnect bus protocol | |
US5577214A (en) | Programmable hold delay | |
JPH0271344A (ja) | マイクロコンピユータ・システム | |
US6125425A (en) | Memory controller performing a mid transaction refresh and handling a suspend signal | |
US5802581A (en) | SDRAM memory controller with multiple arbitration points during a memory cycle | |
WO1998014875A1 (en) | Accessing a page of system memory | |
US5928346A (en) | Method for enhanced peripheral component interconnect bus split data transfer | |
JP3720872B2 (ja) | システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050804 |
|
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: 20050823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050909 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080916 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees | ||
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |