JP2003108434A - Memory control device - Google Patents

Memory control device

Info

Publication number
JP2003108434A
JP2003108434A JP2001296592A JP2001296592A JP2003108434A JP 2003108434 A JP2003108434 A JP 2003108434A JP 2001296592 A JP2001296592 A JP 2001296592A JP 2001296592 A JP2001296592 A JP 2001296592A JP 2003108434 A JP2003108434 A JP 2003108434A
Authority
JP
Japan
Prior art keywords
data
controller
buffer
address
initiator
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.)
Pending
Application number
JP2001296592A
Other languages
Japanese (ja)
Inventor
Kazuya Tanaka
和也 田中
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2001296592A priority Critical patent/JP2003108434A/en
Publication of JP2003108434A publication Critical patent/JP2003108434A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a memory control device capable of shortening a data transfer time at an excellent cost/performance ratio in a target device. SOLUTION: This memory control device for holding and transferring data is disposed in a computer system having a target 504 receiving a lead command from an initiator 503 as a bus master and transmitting the data to the initiator and a receiving buffer 523 belonging to the target and holding the lead command. The memory control device comprises an address holding buffer 543 holding the address of the data, a lookahead buffer 553 holding the data, and a transfer control device 510 comparing the address of the lead command held in the receiving buffer with the address of the data and, when these addresses are identical to each other, transferring the data in the lookahead buffer to the initiator.

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、プロセッサ、記憶
装置、画面表示装置、I/O装置等のコンピュータシス
テムにおけるメモリ制御装置に係り、特に、SDRAM
に対して高速・効率的にデータを転送するのに好適なメ
モリ制御装置に関するものである。 【0002】 【従来の技術】従来、パーソナルコンピュータ(PC)
に代表されるように、マイクロプロセッサ、メモリ(記
憶装置)、画面表示装置、I/O装置などが接続されて
いるコンピュータシステム(以下,単にシステムともい
う)においては、データ転送の高速化を図るために、特
開平2000−132503号公報に開示されているよ
うな、ターゲット側に複数のイニシエータに対応する複
数の送受信バッファを有するデータ転送装置を組み込む
ことにより、独立したバスとデータの送受信バッファを
高速に実行できるようにし、システム全体の高速化を図
っている。 【0003】図2は、代表的なコンピュータシステムの
構成を示すブロック図である。同図に示すように、プロ
セッサ1は、システムコントローラ2を介して接続す
る、SRAM8、フラッシュメモリ9、ROM10及び
SDRAM11を含む主記憶装置と、画面表示のための
グラフィックスLSI4やVRAM5と、ペリフェラル
コントローラ3と、バスマスタDMAコントローラ22
と等から構成される。ペリフェラルコントローラ3は、
ハードディスク、ネットワーク、キーボードなどである
I/Oデバイス6に接続される。 【0004】図3は、図2に示すシステムコントローラ
の構成の一例を示すブロック図である。同図に示すよう
に、システムコントローラ2は、プロセッサ1に接続す
るプロセッサI/Fポート12と、SDRAM11に接
続するSDRAMI/Fポート14と、SRAM8、フ
ラッシュメモリ9及びROM10と接続するメモリI/
Fポート16と、グラフィックスLSI4に接続するグ
ラフィックスI/Fポート13と、バスマスタDMAコ
ントローラ22に接続するバスマスタDMAコントロー
ラポート15と、ペリフェラルコントローラ3に接続す
るペリフェラルI/Fポート19と、インタラプトコン
トローラ17と、タイマカウンタ18とから構成され
る。 【0005】従来、VME(Versa Module
Europe)バス、PCI(Peripheral
Components Interconnect)
バス、ISA(Industry Standard
Architecture)バス及びその他のローカル
バスでは、一つのデバイスが,そのバスを占有して(す
なわち,バスマスタとなり)データを転送する。これら
のバス上のイニシエータ(他の機器に対して命令を発行
するもの)、ターゲット(イニシエータにより制御され
るもの)には、プロセッサ、メモリ(記憶装置)、画面
表示装置、I/Oデバイス等が接続されて、コンピュー
タシステムが構成される。これらバスでは、同時に二つ
以上のデバイスがバスの占有を要求する場合がある。そ
の場合、調停回路等によりバスの使用権を確定する。そ
して、使用権を得たデバイスがその瞬間にそのバスを占
有し(すなわち,バスマスタとなり),データ転送を行
う。 【0006】特に、PCIバスではバスブリッジアーキ
テクチャを保有し、ブリッジにより切り離されている別
々のバス上であれば、コンカレントなデータ転送を実行
することが可能である。しかし、通常、上述のバスで
は、データ転送において、ある瞬間に一つのデバイスの
みがバスを占有し、その他のデバイスは待たされること
になる。 【0007】図4は、図2に示すシステムコントローラ
におけるデータの流れの一例を示す図である。プロセッ
サI/Fコントローラ20及びバスマスタDMAコント
ローラ22は、イニシエータ機能のみを有する。また、
メモリI/Fコントローラ23、SDRAMI/Fコン
トローラ24及びグラフィックスI/Fコントローラ2
5は、ターゲット機能のみを有する。ペリフェラルI/
Fコントローラ21は、イニシエータ機能とターゲット
機能の両方を有する。 【0008】同図に示すように、ペリフェラルI/Fコ
ントローラ21、メモリI/Fコントローラ23、SD
RAMI/Fコントローラ24及びグラフィックスI/
Fコントローラ25はそれぞれ受信バッファ(FIF
O)51、53、54,55を有している。そして、各
受信バッファ51,53,54又は55は、ペリフェラ
ルI/Fコントローラ21,メモリI/Fコントローラ
23,SDRAMI/Fコントローラ24又はグラフィ
ックスI/Fコントローラ25に送信されたコマンド、
データ等を保持する。 【0009】しかしながら、二つ以上のイニシエータか
らの要求により、バス上のターゲットへデータを転送す
るとき、イニシエータ側でのバスの使用権のハンドシェ
ークにより、バスマスタデバイスを決定する。このと
き、使用権を獲得できなかったイニシエータは、使用権
を獲得したイニシエータ(つまり、バスマスタ)がデー
タ転送を完了するまで待たされることになる。つまり、
バスの使用権を獲得できなかったイニシエータは次の処
理(データ転送)を行うことができず、実行時間(バス
トランザクション)が増大する。また、システム上でダ
イレクトメモリアクセス転送(DMA転送)を行ってい
る最中では、プロセッサはバスを所有できず、その瞬間
アクセスを待たされることになる。 【0010】これに対して、図2に示すようなコンピュ
ータシステムにおいて、すべてのトランザクションで、
データ転送を効率的に処理することで、各イニシエータ
側のスループットの向上を図るための装置がある(特開
平2000−132503号)。 【0011】図5は、従来のコンピュータシステムにお
いて、バスマスタ機能を有するデバイス(イニシエー
タ)が発行したライトコマンドによって、イニシエータ
からターゲットへデータが転送される際のデータの流れ
を示す図である。便宜上、プロセッサI/Fコントロー
ラ20、ペリフェラルI/Fコントローラ21及びバス
マスタDMAコントローラ22にはバスマスタ機能が搭
載されている(すなわち、イニシエータになる)ものと
してある。また、メモリI/Fコントローラ23、SD
RAMI/Fコントローラ24及びグラフィックスI/
Fコントローラ25にはバスマスタ機能がない(すなわ
ち、ターゲットになる)ものとしてある。 【0012】また、メモリI/Fコントローラ23に
は、プロセッサI/Fコントローラ20からしかデータ
は転送されないというシステム構成をとる。従って、受
信バッファはプロセッサI/Fコントローラ20に接続
される受信バッファ(FIFO)26だけである。とこ
ろが、SDRAMI/Fコントローラ24には、プロセ
ッサI/Fコントローラ20、ペリフェラルI/Fコン
トローラ21及びバスマスタDMAコントローラ22の
それぞれからデータが転送されるので、各イニシエータ
毎に受信バッファ27,28及び29を備える。また、
グラフィックスI/Fコントローラ25も同様に受信バ
ッファ30,31及び32を備える。ペリフェラルI/
Fコントローラ21には、プロセッサI/Fコントロー
ラ20及びバスマスタDMAコントローラ22からデー
タが転送されるので、二つの受信バッファ33及び34
を備える。 【0013】受信バッファに、イニシエータがライトコ
マンドとデータを入力する。例えば、プロセッサI/F
コントローラ20がイニシエータとなりSDRAMI/
Fコントローラ24がターゲットとなった場合は、プロ
セッサI/Fコントローラ20から受信バッファ27
に、ライトコマンドとデータが入力される。ライトコマ
ンドとしてはポステッドライト方式を採用する。バース
ト転送にも対応するため、受信バッファ26〜34は適
宜2W、4W、8W、…の容量を備える必要がある。 【0014】データフローについては図4の矢印のとお
りである。例えば、ターゲットであるSDRAMI/F
コントローラ24には、プロセッサI/Fコントローラ
20からは受信バッファ27を経由して、ペリフェラル
I/Fコントローラ21からは受信バッファ28を経由
して、バスマスタDMAコントローラ22からは受信バ
ッファ29を経由して、それぞれデータが転送される。
コントローラ42はライトコマンドをデコードし、各受
信バッファ27,28,29がデータを同時に受信した
場合も含めて、SDRAMI/Fコントローラ24への
出力する優先度を決定し、出力する。 【0015】複数のイニシエータからデータが転送され
るグラフィックスI/Fコントローラ25及びペリフェ
ラルI/Fコントローラ21も同様の構成となってい
る。すなわち、ターゲットがイニシエータ毎に受信バッ
ファを備えることにより、イニシエータはターゲットの
受信バッファに、コマンド、データを転送した後、すぐ
に次の操作に入ることができるので、イニシエータは効
率よくデータ処理ができる。 【0016】図6は、従来のコンピュータシステムにお
いて、バスマスタ機能を有するデバイス(イニシエー
タ)が発行したリードコマンドによって、ターゲットか
らイニシエータへデータが転送される際のデータの流れ
を示す図である。同図に示すように、ターゲットである
メモリI/Fコントローラ23、SDRAMI/Fコン
トローラ24及びグラフィックスI/Fコントローラ2
5には、そろぞれ、3つのイニシエータ(プロセッサI
/Fコントローラ20、ペリフェラルI/Fコントロー
ラ21及びバスマスタDMAコントローラ22)からリ
ードコマンドが転送され、対応するデータを取り出し、
イニシエータに転送する。ターゲットとしてのペリフェ
ラルI/Fコントローラ21については、プロセッサI
/Fコントローラ20とバスマスタDMAコントローラ
がイニシエータとなる。 【0017】例えば、SDRAMI/Fコントローラ2
4について説明すると、プロセッサI/Fコントローラ
20から転送されたリードコマンドは受信バッファ(F
IFO)110に入力され、ペリフェラルI/Fコント
ローラ21から転送されたリードコマンドは受信バッフ
ァ111に入力され、バスマスタDMAコントローラか
ら転送されたリードコマンドは受信バッファ112に入
力される。受信バッファ110、111、111に格納
されたリードコマンドはコントローラ109によりデコ
ードされるとともに、出力順の優先度が決定され、それ
に従って、受信バッファ110,111,112よりリ
ードコマンドがSDRAMI/Fコントローラ24に出
力され、リードコマンドに対応するデータが読み出され
る。読み出されたデータで、プロセッサI/Fコントロ
ーラ20に転送されるべきものは、送信バッファ113
を経由して出力され、ペリフェラルI/Fコントローラ
21に転送されるべきものは、送信バッファ114を経
由して出力され、又、バスマスタDMAコントローラ2
2に転送されるべきものは、送信バッファ115を経由
して出力される。 【0018】同様に、メモリI/Fコントローラ23、
グラフィックスI/Fコントローラ25及びペリフェラ
ルI/Fコントローラ21においても、対応するイニシ
エータ毎に、リードコマンドを受信する受信バッファ
と、リードコマンドで指定されたデータを送信する送信
バッファとが設けられている。データフローについて
は、図6の矢印のとおりである。 【0019】ターゲットがイニシエータ毎に送信バッフ
ァを備えることにより、ターゲットは送信バッファにデ
ータを転送した後、すぐに次のオペレーションサイクル
に入ることができるので、ターゲットは効率よくデータ
を処理できる。次に、従来のインターフェースポートの
概要を説明する。 【0020】図7は、従来のコンピュータシステムにお
いて、スレーブ機能しか持たないデバイスのインターフ
ェースポートの概要を示すブロック図である。インター
フェースポート200はスレーブ機能しか持たない(つ
まり、ターゲットにはなるが、イニシエータにはならな
い)デバイス510に接続する。例えば、図2に示した
SRAM8,フラッシュメモリ9、ROM10、SDR
AM11に接続する。また、インターフェースポート2
00は、イニシエータが発行するリードコマンドやライ
トコマンドに対してデータ転送のフローを持つ。受信バ
ッファ(FIFO)211、212,213は、イニシ
エータ(図示しない)から送られてくるライトコマン
ド、アドレス、データ等を保持し、ライト・コントロー
ラ206へ転送する。受信バッファ219,220,2
21は、イニシエータから送られてくるリードコマン
ド、アドレス等を保持し、リード・コントローラへ転送
する。送信バッファ(FIFO)216,217,21
8は、イニシエータへそのイニシエータによって要求さ
れたデータを転送する。 【0021】ライト・コントローラ206がコントロー
ラ214を介して受信バッファ211、212、213
を制御する。リード・コントローラ207はコントロー
ラ215を介して送信バッファ216,217,218
を、コントローラ222を介して受信バッファ219,
220,221を、それぞれ制御する。ライト・コント
ローラ206及びリード・コントローラ207の優先順
位はインターフェイスポートバスアービタ(すなわち調
停回路)204が決定する。調停方式は、固定優先方
式、ラウンドロビン方式、シングルレベル方式等が採用
でき、これらを組合せもでき、スループットが向上する
ように設定変更できる。 【0022】さらに、バスマスタ機能を備えるイニシエ
ータデバイスと接続するインタフェースポートの概要を
説明する。図8は、従来のコンピュータシステムにおい
て、マスタ機能を備えるイニシエータデバイスと接続す
るインターフェースポートの概要を示すブロック図であ
る。インターフェースポート300は、スレーブ機能で
はなく、バスマスタ機能を備えるため、アドレスおよび
リード/ライトコマンドをターゲットの属するインタフ
ェースポート(図示しない)に発行する機能を備えてい
る点が、図7に示したインターフェースポート200と
異なる。 【0023】バスマスタ・リード・コントローラ306
は、コントローラ314を介して、リードコマンド送信
用の送信バッファ(FIFO)311,312,313
を制御し、コントローラ318を介して、データ受信用
の受信バッファ(Through Buffer)31
5,316,317を制御する。バスマスタ・ライト・
コントローラ307によってライトコマンド送信用の送
信バッファ(FIFO)319,320,321を制御
する。例えば、デバイス301からライトコマンドが発
行されると、外部コントローラ305、バス・マスタ・
ライト・コントローラ307、送信バッファ319を経
由して、コマンド転送先であるターゲットのI/Fポー
トの受信バッファ326にコマンドが転送される。 【0024】同様に、リードコマンドも発行される。各
コントローラ(206と207)の優先順位はインター
フェイスポートバスアービタ(すなわち調停回路)20
4が決定する。調停方式は、固定優先方式、ラウンドロ
ビン方式、シングルレベル方式等が採用でき、組合せも
スループットが向上するように設定変更できる。 【0025】 【発明が解決しようとする課題】ところで、上述のよう
にすることにより、複数のイニシエータを有するコンピ
ュータシステムのデータ処理を迅速にできるのである
が、コンピュータシステムにおいては、データ処理時間
の短縮が常に要求されているという問題がある。これに
は、例えば、各メモリに対応するメモリキャッシュ、バ
スキャッシュを備えることにより、特にリードコマンド
によるデータの読出し速度を改善することが考えられる
が、これらの大容量のキャッシュは高価であり、応答速
度の改善も顕著とはいえないという問題がある。 【0026】そこで、本発明は、上記問題を解決し、タ
ーゲットデバイスにおけるデータ転送時間の短縮をコス
トパファーマンス良く行えるメモリ制御装置を提供する
ことを目的とするものである。 【0027】 【課題を解決するための手段】上記目的を達成するため
の手段として、本発明のメモリ制御装置は、バスマスタ
となるイニシエータ(ペリフェラルコントローラ50
1、DMAコントローラ502、マイクロプロセッサ5
03)と、前記イニシエータからリードコマンドを受信
すると共に前記イニシエータにデータを送信するターゲ
ット(SDRAMI/Fコントローラ504)と、前記
ターゲットに属し且つ前記リードコマンドを保持する受
信バッファ(コマンド受信バッファ521,522,5
23)とを備えるコンピュータシステムに配置されてお
り、前記データを保持し転送するメモリ制御装置であっ
て、前記データのアドレスを保持するアドレス保持バッ
ファ541,542,543と、前記データを保持する
先読みバッファ551,552,553と、前記受信バ
ッファに保持された前記リードコマンドのアドレスと前
記データのアドレスとを比較して、一致していれば、前
記先読みバッファのデータを前記イニシエータに転送
し、一致していなければ、前記ターゲットより前記リー
ドコマンドで指定されたデータを転送する転送制御装置
(アドレスデコードコントローラ510と、を備えるこ
とを特徴とするメモリ制御装置である。 【0028】 【発明の実施の形態】以下、本発明の実施の形態につ
き、好ましい実施例により、図面を参照して説明する。 <実施例>図1は、本発明のメモリ制御装置の実施例を
示す構成図である。本実施例のメモリ制御装置500
は、上述した従来のコンピュータシステムに組み込むも
のであり、例えば、32ビットのマイクロプロセッサ、
32ビットのバスシステムであるメモリ、画面表示装
置、I/O装置で構成され、各ブロックが効率よく接続
し、高速にデータ転送を可能とするために、ポステッド
ライト、リードコマンド方式に対応する送受信バッファ
を備えるシステムにおいて、ターゲットとなるデバイス
に接続し、先読み可能なメモリバッファをそれぞれのイ
ニシエータのポート毎に備えるものである。 【0029】図1に示すように、メモリ制御装置500
は、イニシエータとなるペリフェラルコントローラ50
1、DMAコントローラ502及びマイクロプロセッサ
503と、図示しないシステムコントローラ及びSDR
AMI/Fポートを介して接続されており、ターゲット
であるSDRAM505とはSDRAMI/Fコントロ
ーラ504を介して接続される。ここで、SDRAM5
05は高速化を図るために2ウェイインタリーブ方式で
動作するものとし、バス幅は64ビット化(アドレスコ
マンド+奇数・偶数バンク+奇数・偶数バンク・・・)
されているものとする。便宜上、32ビットマイクロプ
ロセッサ、32ビットシステムバス(チップ内のバス構
成)で、SDRAM505のインタフェースを2ウェイ
インタリーブで構成するものとして説明する。2ウェイ
インタリーブのバンクは8ワード分として最下位アドレ
スを担える単位とする。ここで1ワードは4バイトとす
る。 【0030】メモリ制御装置500は、受信バッファ5
11,512,513、コマンド受信バッファ521,
522,523、送信バッファ531,532,53
3、アドレス保持バッファ541,542,543、ア
ドレスデコードコントローラ510、及び先読みバッフ
ァ551,552,553より構成される。受信バッフ
ァ521,受信バッファ522、受信バッファ523
は、ペリフェラルコントローラ(バスマスタ)501か
ら、DMAコントローラ502から、マイクロプロセッ
サ503からのリードまたはライトコマンドをそれぞれ
受信するものであリ、例えば8Wの容量のFIFOから
構成される。 【0031】受信バッファ511、受信バッファ51
2、受信バッファ513はペリフェラルコントローラ
(バスマスタ)501から、DMAコントローラ502
から、マイクロプロセッサ503から、ライトコマンド
が発行された場合のライトデータをそれぞれ受信するも
のであリ、例えば8WのFIFOより構成される。受信
バッファ511,512,513に格納されたライトデ
ータは、SDRAMI/Fインターフェース504に出
力され、SDRAM505に書き込まれる。 【0032】送信バッファ531、送信バッファ53
2、送信バッファ533は、ペリフェラルコントローラ
(バスマスタ)501から、DMAコントローラ502
から、マイクロプロセッサ503から、リードコマンド
が発行された場合、SDRAMI/Fインタフェース5
04を経由してSDRAM505から読み出したリード
データをそれぞれ一旦格納するものであり、例えば8W
のFIFOより構成される。 【0033】SDRAMのデータを格納する先読みバッ
ファ551、552,553が設けられており、これに
対応して、アドレス保持バッファ541,542,54
3が設けられている。先読みバッファは、受信バッファ
の容量の2倍以上の容量(この場合16W)を有するF
IFOより構成されており、アドレスデコードコントロ
ーラによって選択されて、受信バッファ511,51
2,513のいずれからでも、データを格納することが
できるように構成されている。アドレス保持バッファ5
41,542,543には、先読みバッファ551、5
52,553の格納されているデータのアドレスがそれ
ぞれ格納されており、アドレスデコードコントローラ5
10によって、アドレスの更新及び参照が行われる。 【0034】アドレスデコードコントローラ510は、
SDRAMI/Fコントローラ504に接続されてお
り、受信バッファ511,512,513に格納された
データをSDRAMI/Fコントローラに出力するのを
制御し、また、先読みバッファ551,552,553
を制御して、それらに受信バッファ511,512,5
13のデータを書き込み、また、SDRAM505のデ
ータを先読みバッファ551,552,553に書き込
み、また、先読みバッファ551,552,553のデ
ータを送信バッファ531,532,533に格納す
る。 【0035】イニシエータデバイスからライトコマンド
が発行された場合、ライトアドレス、ライトデータエレ
メント(ライトサイズ[1バイト、2バイト、4バイト
など]やデータの識別子)を対応するコマンド受信バッ
ファ521(あるいは522あるいは523)に格納す
る。そしてライトデータを対応する受信バッファ511
(あるいは512あるいは513)に格納する。 【0036】イニシエータデバイスからリードコマンド
が発行されたとき、リードアドレス、リードデータエレ
メント(リードサイズ[1バイト、2バイト、4バイ
ト、など]やデータの識別子)を対応するコマンド受信
バッファ521(あるいは522あるいは523)に格
納する。そして該当するイニシエータデバイスはリード
データが対応する送信バッファ531(あるいは532
あるいは533)に格納されるまで待つ。 【0037】アドレスデコードコントローラ510は、
優先度に応じて、イニシエータに対応するコマンド受信
バッファ521,522,523のいずれかを選択し
て、コマンドを読み出し解読して、リードコマンドかラ
イトコマンドかを識別し、リードコマンドであれば、ア
ドレスが2ウェイインタリーブ方式で奇数バンクか偶数
バンクかを識別する。優先度を決める調停の手法として
は、固定優先方式、ランドロビン方式、シングルレベル
方式、またそれらの組合せや可変の優先レベルを設定で
きるものとする。 【0038】ここで、アドレスが奇数バンクであれば、
対応するイニシエータの先読みバッファ551(あるい
は552あるいは553)のアドレスが格納されている
アドレス保持バッファ541(あるいは542あるいは
543)の内容とリードコマンドのアドレスを比較す
る。 【0039】アドレスが一致しなければ、SDRAMI
/Fコントローラ504はそのアドレスデータをSDR
AM505から2ウェイインタリーブで奇数・偶数バン
クのデータを読むようにし、その奇数バンクのデータを
対応する送信バッファ531(あるいは532あるいは
533)に出力して格納し、偶数バンクのデータは読み
捨てられる。アドレスが一致すれば、先読みバッファ5
51(あるいは552あるいは553)に格納されてい
るデータを送信バッファ531(あるいは532あるい
は533)に出力して格納する。 【0040】一方、アドレスが偶数バンクであれば、S
DRAMI/Fコントローラ504はSDRAM505
から2ウェイインタリーブでそのアドレスに対応する奇
数・偶数バンクのデータを読むようにし、その偶数バン
クのデータを送信バッファ531(あるいは532ある
いは533)に出力して格納し、奇数バンクのデータを
対応するイニシエータの先読みバッファ551(あるい
は552あるいは553)に格納すると同時に対応する
イニシエータのアドレス保持バッファ541(あるいは
542あるいは543)に、アドレスデコードコントロ
ーラを介して、その先読みしたアドレスを格納する。 【0041】解読されたコマンドがライトコマンドであ
れば、アドレスが2ウェイインタリーブ方式で奇数バン
クか偶数バンクかを識別する。ここで、アドレスが奇数
バンクであれば、このアドレスとアドレス保持バッファ
541、アドレス保持バッファ542、アドレス保持バ
ッファ543のそれぞれの内容と比較して、一致するア
ドレスがあれば、そのアドレス保持バッファ541(あ
るいは542あるいは543)に対応する先読みバッフ
ァ551(あるいは552あるいは553)のデータ
を、受信バッファ511(あるいは512あるいは51
3)に受信して格納してあるデータで更新する。このと
き、アドレスが複数のアドレス保持バッファの内容と一
致すれば、それらの先読みバッファ全部のデータを、受
信バッファのデータで更新する。同時に、SDRAMI
/Fコントローラ504を通して、SDRAM505中
の対応するアドレスへデータを格納・書替する。 【0042】また、アドレスとアドレス保持バッファ5
41、アドレス保持バッファ542、アドレス保持バッ
ファ543のそれぞれの内容と比較し、一致しなけれ
ば、SDRAMI/Fコントローラ504を通して該当
するSDRAM505のアドレスへデータを格納・書き
換えする。アドレスが偶数バンクであれば、SDRAM
I/Fコントローラ504を通して該当するSDRAM
505のアドレスへデータを格納・書き換えする。 【0043】ここで、コンピュータシステムがコールド
リセットあるいはシステムリセットの状態では、すべて
のアドレス保持バッファ541,542,543は空の
状態になるように構成する(空であるフラグを立て
る)。さらに、先読みバッファ551,552,553
を空にする命令があった場合には、その指定された先読
みバッファに対応するアドレス保持バッファを空の状態
にする。また、このメモリ制御装置500においては、
アドレス保持バッファ541(あるいは542あるいは
543)が空の状態のときには、アドレスデコードコン
トローラ510はアドレスを比較しないように構成し
て、処理の高速化を図り、回路も簡略にする。 【0044】アドレス保持バッファ541(あるいは5
42あるいは543)が空、つまり対応する先読みバッ
ファ551(あるいは552あるいは553)が空のと
き、対応するイニシエータがライトコマンドを発行した
場合には、そのアドレスが奇数バンクのアドレスであれ
ば、そのイニシエータの先読みバッファ551(あるい
は552あるいは553)にデータを格納し、アドレス
保持バッファ541(あるいは542あるいは543)
にアドレスを格納する。同時に、SDRAMI/Fコン
トローラ504を通してSDRAM505の対応するア
ドレスにデータを格納する。尚、ここで、他のイニシエ
ータに対応するアドレス保持バッファの内容とアドレス
を比較し、同じアドレスであれば、該当する先読みバッ
ファのデータも更新する。 【0045】このように、本実施例のメモリ制御装置
は、高速メモリであるレジスタから先読みバッファを構
成しておき、予め、ターゲットであるSDRAMのデー
タを読み込んでおき、イニシエータからリードコマンド
が発行されたとき、リードデータが先読みバッファの内
容である場合には、SDRAMにアクセスすることな
く、先読みバッファからイニシエータへ送信することに
より、データ処理速度を改善している。 【0046】メモリのアクセス速度は、最も速いのがレ
ジスタであり、SRAM、SDRAM、DRAM、RO
Mの順に遅くなり、レジスタは1クロックでその内容を
取り出せるが、SRAMなどはアドレスを与えて読み込
む必要があるので、データの読込には1クロックより多
くの時間が必要である。また、データがシーケンシャル
オーダリングされているので、その特性を本実施例のメ
モリ制御装置は利用している。すなわち、インストラク
ションおよびデータのアクセスは、通常、CPUが内蔵
するキャッシュの操作により、あるブロックを連続して
行うことが多く、従って、インターリーブ方式の場合、
特に、先読みバッファの内容にヒットする効果が大き
い。 【0047】以下、さらに具体的に、メモリ制御装置の
動作について説明する。まず、システムリセット(コー
ルドリセットを含む)がかかったとき、ペリフェラルコ
ントローラ用のアドレス保持バッファ541、DMAコ
ントローラ用のアドレス保持バッファ542、及びマイ
クロプロセッサ用のアドレス保持バッファ543にそれ
ぞれ空のフラグを立て、空の状態にする。次に、マイク
ロプロセッサ503から0xXXXX0000番地のア
ドレスを8ワード分のリードアクセスがあった場合、偶
数バンクであるので、SDRAMI/Fコントローラ5
04を通して、SDRAM505の0xXXXX000
0〜0xXXXX001Fまでのデータをマイクロプロ
セッサ503用の送信バッファ533に転送する。同時
にSDRAM505の0xXXXX0020〜0xXX
XX003Fのデータをマイクロプロセッサ503用の
先読みバッファ553に格納し、マイクロプロセッサ5
03用のアドレス保持バッファ543に0xXXXX0
020を格納する。 【0048】次に、マイクロプロセッサ503から0x
XXXX0020番地のアドレスを8ワード分のリード
アクセスがあった場合、奇数バンクであるので、マイク
ロプロセッサ503用のアドレス保持バッファ543の
内容と0xXXXX0020を比較する。この値は、一
致するので、マイクロプロセッサ503用の先読みバッ
ファ553のデータをマイクロプロセッサ503用の送
信バッファ533に転送する。次に、マイクロプロセッ
サ503から0xXXXX0040番地のアドレスを8
ワード分のリードアクセスがあった場合、偶数バンクで
あるので、SDRAMI/Fコントローラ504を通し
てSDRAMの0xXXXX0040〜0xXXXX0
05Fまでのデータをマイクロプロセッサ503用の送
信バッファ533に転送する。同時にSDRAMの0x
XXXX0060〜0xXXXX007Fのデータをマ
イクロプロセッサ503用の先読みバッファ553に格
納し、且マイクロプロセッサ503用のアドレス保持バ
ッファ543に0xXXXX0060を格納する。 【0049】次に、マイクロプロセッサ503から0x
XXXX00A0番地のアドレスを8ワード分のリード
アクセスがあった場合、奇数バンクであるので、SDR
AMI/Fコントローラ504を通してSDRAM50
5の0xXXXX00A0〜0xxxx00BFまでの
データをマイクロプロセッサの送信バッファ533に転
送する。SDRAM505がインターリーブ方式のため
0xXXXX0080〜0xXXXX009Fのデータ
は捨てる。次に、マイクロプロセッサ503から0xx
xx00C0番地のアドレスを8ワード分のリードアク
セスがあった場合、偶数バンクであるので、SDRAM
I/Fコントローラ504を通してSDRAM505の
0xXXXX00C0〜0xXXXX00DFまでのデ
ータをマイクロプロセッサ503の送信バッファ533
に転送する。同時にSDRAM505の0xXXXX0
0E0〜0xXXXX00FFのデータをマイクロプロ
セッサ503用の先読みバッファ553に格納し、且つ
マイクロプロセッサ503用のアドレス保持バッファ5
43に0xXXXX00E0を格納する。 【0050】なお、これらの処理を8ワード単位ではな
く4ワード、2ワード、1ワード、2バイト、1バイト
のリード単位であっても同様の振る舞いをし、送信バッ
ファにその必要なデータエレメントを返すように行う。
ここで、マイクロプロセッサ503から0xXXXX0
0E8にライトアクセスがあると、奇数バンクであるた
め、ペリフェラルコントローラ501用のアドレス保持
バッファ541、DMAコントローラ502用のアドレ
ス保持バッファ542、マイクロプロセッサ503用の
アドレス保持バッファ543にそれぞれ格納されている
アドレスと比較する。この場合、マイクロプロセッサ5
03用のアドレス保持バッファ543が0xXXXX0
0E0〜0xXXXX00FFを示すアドレスであるた
め0xXXXX00E8にヒットすることになる。ヒッ
トする場合は、該当する先読みバッファ553のデータ
部分をそのデータに更新し、その他のデータは保持する
ようにする。同時にSDRAMI/Fコントローラ50
4を通じてSDRAM505の0xXXXX00E8の
アドレスにデータを格納する。ヒットしない部分につい
てはデータを保持する。 【0051】次に、マイクロプロセッサ503から0x
XXXX0100にライトアクセスがあると、偶数アド
レスであるため、SDRAMI/Fコントローラ504
を通じてSDRAMの0xXXXX0100のアドレス
にデータを格納するだけである。このように各アドレス
保持バッファ541,542,543の示すアドレスと
ヒットしない場合、SDRAMI/Fコントローラ50
4を通じてSDRAM505のそのアドレスにデータを
格納するだけである。DMAコントローラ502あるい
はペリフェラルコントローラからのデータ転送について
は、マイクロプロセッサと同様に行われる。さらに、同
時コマンドが発生した場合は、アドレスデコードコント
ローラ510(調停回路になる)によって、優先順位通
りにイニシエータを選択し、その処理を上述のように行
えばよい。 【0052】以上、先読みバッファ及びアドレス保持バ
ッファをイニシエータデバイスごとに設けた場合を説明
したが、さらに多く先読みバッファ及びアドレス保持バ
ッファを設けることにより(例えば3倍、5倍、…にす
る)、データ処理のシステムパフォーマンスを一層向上
することもできる。また、本実施例では、SDRAMに
適用した場合について説明したが、ターゲットとなるR
OM、フラッシュメモリ、に対しても同様に適用するこ
とができるものである。これらの場合、データのライト
がないので、その部分を削除すればよい。また、ペリフ
ェラルコントローラのようなI/Oデバイスにおいては
I/O空間(間接レジスタ等)アクセス時にはアドレス
保持バッファを空にする制御をソフトウェアによって行
うことと、I/Oのデータがシーケンシャルなデータの
メモリ空間であれば、上述と同様のシステムで構成でき
ることは言うまでもない。 【発明の効果】以上説明したように、本発明のメモリ制
御装置は、データのアドレスを保持するアドレス保持バ
ッファと、前記データを保持する先読みバッファと、受
信バッファに保持されたリードコマンドのアドレスと前
記データのアドレスとを比較して、一致していれば、前
記先読みバッファのデータを前記イニシエータに転送
し、一致していなければ、前記ターゲットより前記リー
ドコマンドで指定されたデータを転送する転送制御装置
と、を備えることにより、ターゲットデバイスにおける
データ転送時間の短縮をコストパファーマンス良く行え
るメモリ制御装置を提できるという効果がある。さら
に、システムキャッシュおよびメモリキャッシュを搭載
することなく高速応答性を高めることが出来るので、シ
ステムの省スペースとコスト削減を図ることができ、シ
ーケンシャルアクセスの応答性に優れ、バスデータ転送
時のパイプラインでのペナルティも少なく、I/Oデバ
イスにおいては、I/O空間(間接レジスタ等)アクセ
ス時にはアドレス保持バッファを空にする制御をソフト
ウェアによって行うことで安易に対応できる。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processor and a storage device.
Systems such as devices, screen display devices, I / O devices, etc.
The present invention relates to a memory control device in a system, and more particularly to an SDRAM.
Suitable for fast and efficient data transfer to
The present invention relates to a memory controller. [0002] Conventionally, personal computers (PCs)
Microprocessor and memory (noted by
Storage device), screen display device, I / O device, etc.
Computer system (hereinafter simply referred to as system)
)) In order to speed up data transfer.
It is disclosed in Japanese Unexamined Patent Publication No. 2000-132503.
Such as multiple initiators on the target side.
Incorporating a data transfer device with a number of send / receive buffers
This allows an independent bus and data transmission / reception buffer
High-speed execution to speed up the entire system
ing. FIG. 2 shows a typical computer system.
FIG. 3 is a block diagram showing a configuration. As shown in the figure,
The processor 1 is connected via the system controller 2.
SRAM 8, flash memory 9, ROM 10, and
A main storage device including the SDRAM 11 and a
Graphics LSI4 and VRAM5 and peripherals
Controller 3 and bus master DMA controller 22
And the like. The peripheral controller 3
Hard disk, network, keyboard, etc.
Connected to the I / O device 6. FIG. 3 shows a system controller shown in FIG.
FIG. 3 is a block diagram showing an example of the configuration of FIG. As shown in the figure
Next, the system controller 2 connects to the processor 1.
Connected to the processor I / F port 12 and the SDRAM 11
Connected to the SDRAM I / F port 14, the SRAM 8,
Memory I / connected to rush memory 9 and ROM 10
F port 16 and a group connected to the graphics LSI 4
Fixed I / F port 13 and bus master DMA
Bus master DMA controller connected to the controller 22
Port 15 and the peripheral controller 3
Peripheral I / F port 19 and interrupt
And a timer counter 18.
You. Conventionally, VME (Versa Module)
(Europe) bus, PCI (Peripheral)
Components Interconnect
Bus, ISA (Industry Standard)
Architecture) buses and other local
In a bus, one device occupies the bus
That is, it becomes a bus master) and transfers data. these
Initiator on other bus (Issues instructions to other devices
That are controlled by the initiator
), Processor, memory (storage device), screen
A display device, an I / O device, etc. are connected to
Data system. On these buses, two at the same time
The above devices may request the occupation of the bus. So
In this case, the right to use the bus is determined by an arbitration circuit or the like. So
And the licensed device occupies the bus at that moment.
(Ie, become a bus master) and perform data transfer.
U. In particular, in a PCI bus, a bus bridge architecture is used.
Another that holds the architecture and is separated by a bridge
Perform concurrent data transfer on various buses
It is possible to do. But usually on the buses mentioned above
Is one device at a moment in data transfer
Only occupy the bus, other devices wait
become. FIG. 4 shows a system controller shown in FIG.
FIG. 4 is a diagram showing an example of a data flow in the embodiment. Process
I / F controller 20 and bus master DMA controller
The roller 22 has only an initiator function. Also,
Memory I / F controller 23, SDRAM I / F controller
Troller 24 and graphics I / F controller 2
5 has only a target function. Peripheral I /
The F controller 21 has an initiator function and a target
Has both functions. [0008] As shown in FIG.
Controller 21, memory I / F controller 23, SD
RAM I / F controller 24 and graphics I / F
The F controller 25 has a reception buffer (FIF
O) 51, 53, 54 and 55 are provided. And each
The reception buffer 51, 53, 54 or 55 is a peripheral
I / F controller 21, Memory I / F controller
23, SDRAM I / F controller 24 or graphics
Command transmitted to the controller I / F controller 25,
Holds data etc. However, two or more initiators
These requests transfer data to the target on the bus.
The initiator's right to use the bus.
The bus master device is determined by the network. This and
Initiator that failed to acquire the right to use
Initiator (that is, the bus master) that has acquired
Data transfer is completed. That is,
The initiator that cannot acquire the right to use the bus
Processing (data transfer) cannot be performed, and the execution time (bus
Transactions). In addition, the system
Performing an erase memory access transfer (DMA transfer)
The processor cannot own the bus during the
You will have to wait for access. On the other hand, a computer as shown in FIG.
Data system, every transaction
By handling data transfer efficiently, each initiator
There is an apparatus for improving the throughput on the
Hei 2000-132503). FIG. 5 shows a conventional computer system.
Device with a bus master function (initiator
Initiator) by the write command issued by the
Flow when data is transferred from the target to the target
FIG. For convenience, processor I / F controller
, Peripheral I / F controller 21 and bus
The master DMA controller 22 has a bus master function.
That are listed (that is, become initiators)
I have. The memory I / F controller 23, SD
RAM I / F controller 24 and graphics I / F
The F controller 25 has no bus master function (that is,
Target). Also, the memory I / F controller 23
Is data from the processor I / F controller 20 only.
Is not transferred. Therefore,
Communication buffer is connected to the processor I / F controller 20
Only the receiving buffer (FIFO) 26 is used. Toko
However, the SDRAM I / F controller 24
Controller I / F controller 20, peripheral I / F controller
Controller 21 and bus master DMA controller 22
Since data is transferred from each, each initiator
Each receiving buffer 27, 28 and 29 is provided. Also,
Similarly, the graphics I / F controller 25
Buffers 30, 31, and 32. Peripheral I /
The F controller 21 includes a processor I / F controller.
From the bus controller 20 and the bus master DMA controller 22.
Since the data is transferred, the two reception buffers 33 and 34
Is provided. [0013] In the reception buffer, the initiator
Enter command and data. For example, processor I / F
The controller 20 becomes an initiator and the SDRAM /
If the F controller 24 is targeted,
Receive buffer 27 from Sessa I / F controller 20
Then, a write command and data are input. Light frame
The posted light method is adopted as the command. Bath
Receive buffers 26 to 34
It is necessary to provide a capacity of 2W, 4W, 8W,. The data flow is as indicated by the arrow in FIG.
It is. For example, the target SDRAM I / F
The controller 24 includes a processor I / F controller
From the peripheral 20 via the reception buffer 27,
From the I / F controller 21 via the reception buffer 28
The bus master DMA controller 22
Each data is transferred via the buffer 29.
The controller 42 decodes the write command, and
Buffer 27, 28, 29 received data at the same time
Including SDRAM I / F controller 24
Determine the output priority and output. Data is transferred from a plurality of initiators.
Graphics I / F Controller 25 and Peripheral
The Ral I / F controller 21 has the same configuration.
You. In other words, the target receives
Initiator allows the initiator to
Immediately after transferring commands and data to the receive buffer
The initiator can start the next operation.
Data processing can be performed efficiently. FIG. 6 shows a conventional computer system.
Device with a bus master function (initiator
Target) depending on the read command issued by
Of data when data is transferred from the server to the initiator
FIG. As shown in the figure, the target
Memory I / F controller 23, SDRAM I / F controller
Troller 24 and graphics I / F controller 2
5, three initiators (processor I
/ F controller 20, peripheral I / F controller
Controller 21 and the bus master DMA controller 22).
Mode command is transferred, the corresponding data is fetched,
Transfer to initiator. Perife as target
For the Ral I / F controller 21, the processor I
/ F controller 20 and bus master DMA controller
Becomes the initiator. For example, an SDRAM I / F controller 2
4 is explained. Processor I / F Controller
The read command transferred from the receiving buffer (F)
I / F) 110, and the peripheral I / F controller
The read command transferred from the roller 21 is
Input to the bus master DMA controller
The read command transferred from the
Is forced. Stored in receive buffers 110, 111, 111
The read command is decoded by the controller 109.
And the priority of the output order is determined.
From the receiving buffers 110, 111, 112 according to
Mode command is issued to the SDRAM I / F controller 24.
And the data corresponding to the read command is read.
You. With the read data, the processor I / F control
What is to be transferred to the
Output via the peripheral I / F controller
21 are transmitted to the transmission buffer 114.
Output from the bus master DMA controller 2
2 should be transferred to the transmission buffer 115
Is output. Similarly, the memory I / F controller 23,
Graphics I / F controller 25 and peripheral
In the I / F controller 21, the corresponding
Receive buffer that receives read commands for each eta
And send the data specified by the read command
A buffer is provided. About data flow
Is as indicated by the arrow in FIG. The target transmits a buffer for each initiator.
By providing a target, the target
The next operation cycle immediately after transferring the data
The target is efficient
Can be processed. Next, the conventional interface port
An outline will be described. FIG. 7 shows a conventional computer system.
Device that has only slave functions
FIG. 2 is a block diagram illustrating an outline of a port. Inter
The face port 200 has only a slave function.
In other words, it becomes a target, but not an initiator.
I) Connect to device 510. For example, as shown in FIG.
SRAM 8, flash memory 9, ROM 10, SDR
Connect to AM11. Also, interface port 2
00 is a read command or write command issued by the initiator.
It has a flow of data transfer for the command. Receiving bar
Buffer (FIFO) 211, 212, 213
Light command sent from Eta (not shown)
Data, address, data, etc., and write control
To the client 206. Receive buffers 219, 220, 2
21 is the read command sent from the initiator
Data, address, etc., and transfer them to the read controller
I do. Transmission buffers (FIFO) 216, 217, 21
8 is requested to the initiator by that initiator.
Transfer the data. The light controller 206 controls
Receiving buffers 211, 212, and 213 via the
Control. Read controller 207 is a control
Transmission buffers 216, 217, and 218
To the receiving buffer 219,
220 and 221 are respectively controlled. Light control
Priority of roller 206 and read controller 207
The position is the interface port bus arbiter (ie
(Stop circuit) 204 is determined. Arbitration method is fixed priority
Type, round robin type, single level type, etc.
Yes, they can be combined, and throughput is improved
Settings can be changed as follows. Furthermore, an initiator having a bus master function
Overview of interface ports connected to data devices
explain. FIG. 8 shows a conventional computer system.
Connected to an initiator device having a master function.
FIG. 2 is a block diagram showing an outline of an interface port.
You. The interface port 300 is a slave function
However, to provide the bus master function, the address and
Read / write commands are sent to the interface
Has a function to issue to a port (not shown).
Is that the interface port 200 shown in FIG.
different. Bus master read controller 306
Sends a read command via the controller 314
Transmission buffers (FIFO) 311, 312, 313
To receive data via the controller 318.
Receive buffer (Through Buffer) 31
5,316,317. Bus Master Write
Transmission for write command transmission by the controller 307
Control the communication buffers (FIFO) 319, 320, 321
I do. For example, a write command is issued from the device 301.
The external controller 305, the bus master
Write controller 307 and transmission buffer 319
Therefore, the I / F port of the target to which the command is transferred is
The command is transferred to the receiving buffer 326 of the host. Similarly, a read command is issued. each
The priority of the controllers (206 and 207) is
Face port bus arbiter (ie, arbitration circuit) 20
4 is determined. The arbitration method is fixed priority, round ro
Bin method, single level method, etc. can be adopted, and combinations are also possible
Settings can be changed to improve throughput. [0025] By the way, as described above,
A computer with multiple initiators.
Data processing in computer systems.
However, in computer systems, data processing time
There is a problem that shortening is always required. to this
Are, for example, memory caches and buffers corresponding to each memory.
By providing a cache, especially read commands
To improve data read speed
However, these large caches are expensive,
There is a problem that the improvement of the degree is not remarkable. Therefore, the present invention solves the above-mentioned problem, and
Target device to reduce data transfer time
To provide a memory control device that can perform well in top performance
It is intended for that purpose. [0027] In order to achieve the above object,
As means of the present invention, the memory controller of the present invention
Initiator (peripheral controller 50)
1, DMA controller 502, microprocessor 5
03) and a read command is received from the initiator.
And a target for transmitting data to the initiator.
(SDRAM I / F controller 504)
A receiver belonging to a target and holding the read command.
Communication buffer (command reception buffers 521, 522, 5
23).
A memory controller for holding and transferring the data.
Address holding buffer for holding the address of the data.
Files 541, 542, and 543 and the data is held.
The prefetch buffers 551, 552, 553 and the reception buffer
Address of the read command held in the buffer
Compare with the address of the data, and if they match,
Transfer the data in the read-ahead buffer to the initiator
If they do not match, the target
Transfer controller that transfers the data specified by the command
(With an address decode controller 510).
A memory control device characterized by the following. Embodiments of the present invention will be described below.
Preferred embodiments will be described with reference to the drawings. <Embodiment> FIG. 1 shows an embodiment of a memory control device according to the present invention.
FIG. Memory control device 500 of the present embodiment
Can be integrated into the conventional computer system described above.
For example, a 32-bit microprocessor,
32 bit bus system memory, screen display
And I / O devices, and each block is connected efficiently
And posted data to enable high-speed data transfer.
Transmit / receive buffer corresponding to write / read command method
Target device in a system equipped with
And connect the read-ahead memory buffer to each
This is provided for each port of the initiator. As shown in FIG. 1, a memory control device 500
Is a peripheral controller 50 serving as an initiator.
1. DMA controller 502 and microprocessor
503, system controller and SDR not shown
Connected via AMI / F port, target
Is SDRAM I / F control
Connected via a printer 504. Here, SDRAM5
05 is a two-way interleave method for speeding up.
The bus width shall be 64 bits (address
Command + odd / even bank + odd / even bank ...)
It is assumed that For convenience, a 32-bit microprocessor
Processor, 32-bit system bus (bus structure in chip)
), The interface of the SDRAM 505
The description will be made assuming that the interleaving is used. 2 way
The interleave bank has the lowest address as 8 words.
Unit that can carry Here, one word is 4 bytes
You. The memory control device 500 includes a reception buffer 5
11, 512, 513, the command reception buffer 521,
522, 523, transmission buffers 531, 532, 53
3. Address holding buffers 541, 542, 543,
Dress decode controller 510 and look-ahead buffer
551, 552, and 553. Receive buffer
521, reception buffer 522, reception buffer 523
Is the peripheral controller (bus master) 501
From the DMA controller 502, the microprocessor
Read or write command from server 503
For example, from a FIFO with a capacity of 8 W
Be composed. The receiving buffer 511 and the receiving buffer 51
2. The reception buffer 513 is a peripheral controller
(Bus master) 501 to the DMA controller 502
From the microprocessor 503, from the write command
Receive the write data when the
For example, it is composed of an 8 W FIFO. Receiving
The write data stored in the buffers 511, 512, 513
Data is output to the SDRAM I / F interface 504.
And written to the SDRAM 505. Transmission buffer 531, transmission buffer 53
2. The transmission buffer 533 is a peripheral controller
(Bus master) 501 to the DMA controller 502
Read command from microprocessor 503
Is issued, the SDRAM I / F interface 5
Read from the SDRAM 505 via the IP address 04
Each of them temporarily stores data, for example, 8W
Is configured. A look-ahead buffer for storing SDRAM data
551, 552, 553 are provided.
Correspondingly, address holding buffers 541, 542, 54
3 are provided. The look-ahead buffer is the receive buffer
Having a capacity of twice or more (in this case, 16 W) the capacity of
It is composed of an IFO and has an address decode control.
And the receiving buffers 511 and 51
Can store data from any of 2,513
It is configured to be able to. Address holding buffer 5
41, 542, and 543 include prefetch buffers 551 and 551, respectively.
The address of the data stored at 52,553 is
Address decode controller 5
10 updates and references the address. The address decode controller 510 includes:
Connected to the SDRAM I / F controller 504
Stored in the reception buffers 511, 512, and 513.
Outputting data to SDRAM I / F controller
Control, and read-ahead buffers 551, 552, 553
To the receiving buffers 511, 512, 5
13 of the SDRAM 505.
Write data to prefetch buffers 551, 552, 553
Data of the prefetch buffers 551, 552, and 553.
Data in the transmission buffers 531, 532 and 533.
You. Write command from initiator device
Is issued, the write address and write data
Comment (write size [1 byte, 2 bytes, 4 bytes
Etc.) and data identifier).
File 521 (or 522 or 523).
You. Then, the write data is transferred to the corresponding reception buffer 511.
(Or 512 or 513). Read command from initiator device
Is issued, the read address, read data element
Comment (read size [1 byte, 2 bytes, 4 bytes
Command, etc.) and data identifier)
Buffer 521 (or 522 or 523)
To pay. And the corresponding initiator device is read
The transmission buffer 531 (or 532) to which the data corresponds.
Or wait until it is stored in 533). The address decode controller 510 includes:
Command reception corresponding to the initiator according to the priority
Select one of the buffers 521, 522, 523
To read and decode the command,
Write command, and if it is a read command,
Dress is 2-way interleaved, odd-numbered bank or even-numbered
Identify the bank. As an arbitration method to determine priority
Means fixed priority, land robin, single level
Method, combinations of them and variable priority levels
Shall be able to Here, if the address is an odd-numbered bank,
The corresponding read-ahead buffer 551 of the initiator (or
Stores the address of 552 or 553)
The address holding buffer 541 (or 542 or
543) and the address of the read command are compared.
You. If the addresses do not match, the SDRAMI
/ F controller 504 stores the address data in SDR
Odd / even van with 2-way interleaving from AM505
Data in the odd bank.
The corresponding transmit buffer 531 (or 532 or
533) and store the data.
Discarded. If the addresses match, the prefetch buffer 5
51 (or 552 or 553)
Data to the transmission buffer 531 (or 532 or
Is output to 533) and stored. On the other hand, if the address is an even bank, S
The DRAM I / F controller 504 is an SDRAM 505
From the odd address corresponding to the address by 2-way interleaving.
Read the data of the even / even bank and read the even bank
Data of the transmission buffer 531 (or 532
Or 533), and stores the data in the odd-numbered bank.
The corresponding read-ahead buffer 551 of the initiator (or
Are stored in 552 or 553) and correspond at the same time.
Initiator address holding buffer 541 (or
542 or 543), the address decode control
The prefetched address is stored via the memory controller. If the decoded command is a write command
If the address is an odd-numbered bank with 2-way interleaving,
And even banks. Where the address is odd
If it is a bank, this address and the address holding buffer
541, an address holding buffer 542, an address holding buffer
Compared to the contents of the
If there is a dress, its address holding buffer 541 (A
Or a look-ahead buffer corresponding to 542 or 543)
551 (or 552 or 553) data
Into the reception buffer 511 (or 512 or 51
Update with the data received and stored in 3). This and
Address matches the contents of multiple address holding buffers.
If they match, the data in all of those read-ahead buffers is received.
Update with the data in the communication buffer. At the same time, SDRAMI
/ SD controller 505 through / F controller 504
The data is stored and rewritten to the corresponding address of. The address and address holding buffer 5
41, an address holding buffer 542, and an address holding buffer.
Compare with the contents of each
For example, through the SDRAM I / F controller 504
And write data to the address of the SDRAM 505
Replace it. If the address is an even bank, SDRAM
Applicable SDRAM through I / F controller 504
The data is stored and rewritten to the address 505. Here, the computer system is cold
In reset or system reset state, all
Address holding buffers 541, 542, 543 are empty.
Configure to be in a state (flag empty
). Furthermore, prefetch buffers 551, 552, 553
If there is an instruction to empty the
The address holding buffer corresponding to the
To Further, in the memory control device 500,
The address holding buffer 541 (or 542 or
543) is empty, the address decode
The controller 510 is configured not to compare addresses.
Thus, the processing speed is increased and the circuit is simplified. The address holding buffer 541 (or 5
42 or 543) is empty, that is, the corresponding look-ahead buffer
If fa 551 (or 552 or 553) is empty
And the corresponding initiator issues a write command
If the address is an odd bank address,
If the initiator's prefetch buffer 551 (or
Stores data in 552 or 553) and stores the address
Holding buffer 541 (or 542 or 543)
To store the address. At the same time, SDRAM I / F
The corresponding address of the SDRAM 505 through the controller 504.
Store the data in the dress. In addition, here, other initiers
And the contents of the address holding buffer corresponding to the data
And if they are the same address,
Update the data of the web. As described above, the memory control device of the present embodiment
Configures a prefetch buffer from registers that are high-speed memories.
Data of the target SDRAM in advance.
Data is read, and a read command is issued from the initiator.
Is issued, the read data is stored in the prefetch buffer.
If it is acceptable, do not access the SDRAM.
To send data from the prefetch buffer to the initiator.
The data processing speed has been improved. The highest memory access speed is the highest.
SRAM, SDRAM, DRAM, RO
M slows down in the order of M, and the register
It can be taken out, but SRAM etc. give an address and read
Data reading requires more than one clock.
Need more time. Also, if the data is sequential
Since it has been ordered, its characteristics are
The memory controller is used. That is, the instruction
Access to applications and data is usually built into the CPU
A certain block is continuously
Often, so in the case of interleaving,
In particular, the effect of hitting the contents of the prefetch buffer is large.
No. Hereinafter, more specifically, the memory control device
The operation will be described. First, a system reset (
Peripheral reset)
Controller address holding buffer 541, DMA controller
And an address holding buffer 542 for the controller.
To the address holding buffer 543 for the microprocessor.
Set an empty flag each time to make it empty. Next, the microphone
From processor 503 to address 0xXXXXXX0000.
If there is read access to the dress for 8 words,
Since there are several banks, the SDRAM I / F controller 5
04, 0xXXXX000 of the SDRAM 505
Data from 0 to 0xXXXXXX001F is
The data is transferred to the transmission buffer 533 for the processor 503. simultaneous
0xXXXXXX0020 to 0xxXX of the SDRAM 505
XX003F data for the microprocessor 503
Stored in the look-ahead buffer 553, the microprocessor 5
0xXXXXXX0 in the address holding buffer 543 for
020 is stored. Next, the microprocessors 503 to 0x
Reads the address at address XXXX0020 for 8 words
If there is access, it is an odd bank, so the microphone
Of the address holding buffer 543 for the
Compare the contents with 0xXXXXXX0020. This value is
The read-ahead buffer for the microprocessor 503.
Of the file 553 for the microprocessor 503.
Transfer to the communication buffer 533. Next, the microprocessor
The address of address 0xXXXXXX0040 is set to 8
If there is read access for words,
Through the SDRAM I / F controller 504
0xXXXXXX0040 to 0xXXXX0 of the SDRAM
Send data up to 05F for microprocessor 503
Transfer to the communication buffer 533. At the same time, SDRAM 0x
XXXX0060 to 0xXXXXXX007F data
A prefetch buffer 553 for the microprocessor 503
And an address holding buffer for the microprocessor 503.
0xXXXXXX0060 is stored in the buffer 543. Next, the microprocessors 503 to 0x
Reads the address of XXXX00A0 for 8 words
If there is an access, it is an odd-numbered bank.
SDRAM 50 through AMI / F controller 504
5 from 0xXXX00A0 to 0xxxx00BF
Data is transferred to the transmission buffer 533 of the microprocessor.
Send. Because SDRAM 505 is interleaved
Data of 0xXXXXXX0080 to 0xXXXXXX09F
Throw away. Next, 0xx from the microprocessor 503
Read address of xx00C0 address for 8 words
If there is access, the SDRAM
SDRAM 505 through I / F controller 504
Data from 0xXXX00C0 to 0xXXXX00DF
Data to the transmission buffer 533 of the microprocessor 503.
Transfer to At the same time, 0xXXXXXX0 of SDRAM 505
0E0-0xXXXX00FF
Stored in the look-ahead buffer 553 for the processor 503, and
Address holding buffer 5 for microprocessor 503
43, 0xXXXXXX00E0 is stored. Note that these processes are not performed in units of eight words.
4 words, 2 words, 1 word, 2 bytes, 1 byte
The same behavior is performed even in read units of
To return the required data element to the
Here, the microprocessor 503 sends 0xXXXXXX0
If there is a write access to 0E8, an odd bank
Address holding for the peripheral controller 501
Buffer 541, address for DMA controller 502
Buffer 542 for the microprocessor 503
Each is stored in the address holding buffer 543.
Compare with address. In this case, the microprocessor 5
03 is 0xXXXXXX0
0E0 to 0xXXXXXX00FF
0xXXX00E8. Hit
When reading, the data of the corresponding prefetch buffer 553
Update part to that data, keep other data
To do. At the same time, SDRAM I / F controller 50
4 through 0xXXXX00E8 of the SDRAM 505
Store data at the address. About the part that does not hit
Data. Next, the microprocessor 503 outputs 0x
If there is a write access to XXXX0100, an even address is added.
SDRAM I / F controller 504
Through 0xXXXXXX0100 of SDRAM
It just stores the data. Thus each address
The addresses indicated by the holding buffers 541, 542, 543
If no hit occurs, the SDRAM I / F controller 50
4 to the SDRAM 505 at that address.
Just store. DMA controller 502 or
Is about data transfer from peripheral controller
Is performed similarly to the microprocessor. In addition,
Address decode controller
By the roller 510 (which becomes an arbitration circuit),
Select the initiator and perform its processing as described above.
Just do it. As described above, the prefetch buffer and the address holding buffer
Explains the case where a buffer is provided for each initiator device
However, more read-ahead buffers and address holding buffers
(For example, 3 times, 5 times, etc.)
Data processing system performance)
You can also. In this embodiment, the SDRAM
Although the description has been given of the case where the
The same applies to OM and flash memory.
It can be. In these cases, writing data
Since there is no such part, that part may be deleted. Also Perif
For I / O devices such as general controllers
Address when accessing I / O space (indirect register, etc.)
Control to empty the holding buffer by software
That I / O data is sequential data
If it is a memory space, it can be configured with the same system as described above.
Needless to say. As described above, the memory system of the present invention
The control device has an address holding buffer for holding the data address.
Buffer, a look-ahead buffer for holding the data, and a receiving buffer.
Address of the read command held in the
Compare with the address of the data, and if they match,
Transfer the data in the read-ahead buffer to the initiator
If they do not match, the target
Transfer controller that transfers the data specified by the command
And by providing in the target device
Reduce data transfer time with good cost performance
There is an effect that a memory control device can be provided. Further
With system cache and memory cache
High-speed response without the need for
The system saves space and costs,
Excellent responsiveness of sequential access, bus data transfer
There are few penalties in the pipeline at the time, I / O device
In the chair, I / O space (indirect register etc.)
Control to empty the address holding buffer during
It can be easily handled by using hardware.

【図面の簡単な説明】 【図1】本発明のメモリ制御装置の実施例を示す構成図
である。 【図2】代表的なコンピュータシステムの構成を示すブ
ロック図である。 【図3】図2に示すシステムコントローラの構成の一例
を示すブロック図である。 【図4】図2に示すシステムコントローラにおけるデー
タの流れの一例を示す図である。 【図5】従来のコンピュータシステムにおいて、バスマ
スタ機能を有するデバイス(イニシエータ)が発行した
ライトコマンドによって、イニシエータからターゲット
へデータが転送される際のデータの流れを示す図であ
る。 【図6】従来のコンピュータシステムにおいて、バスマ
スタ機能を有するデバイス(イニシエータ)が発行した
リードコマンドによって、ターゲットからイニシエータ
へデータが転送される際のデータの流れを示す図であ
る。 【図7】従来のコンピュータシステムにおいて、スレー
ブ機能しか持たないデバイスのインターフェースポート
の概要を示すブロック図である。 【図8】従来のコンピュータシステムにおいて、マスタ
機能を備えるイニシエータデバイスと接続するインター
フェースポートの概要を示すブロック図である。 【符号の説明】 1…プロセッサ、2…システムコントローラ、3…ペリ
フェラルコントローラ、4…グラフィックスLSI、5
…VRAM、6…I/Oデバイス、8…SRAM、9…
フラッシュメモリ、10…ROM、11…SDRAM、
22…バスマスタDMAコントローラ、500…メモリ
制御装置、501…ペリフェラルコントローラ、502
…DMAコントローラ、503…マイクロプロセッサ、
504…SDRAMインターフェイス(I/F)コント
ローラ、505…SDRAM、510…アドレスデコー
ドコントローラ、511,512,513…受信バッフ
ァ、521,522,523…コマンド受信バッファ、
531,532,533…送信バッファ、541,54
2,543…アドレス保持バッファ、551,552,
553…先読みバッファ。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a configuration diagram showing an embodiment of a memory control device of the present invention. FIG. 2 is a block diagram illustrating a configuration of a typical computer system. FIG. 3 is a block diagram illustrating an example of a configuration of a system controller illustrated in FIG. 2; 4 is a diagram showing an example of a data flow in the system controller shown in FIG. FIG. 5 is a diagram showing a data flow when data is transferred from an initiator to a target by a write command issued by a device (initiator) having a bus master function in a conventional computer system. FIG. 6 is a diagram showing a data flow when data is transferred from a target to an initiator by a read command issued by a device (initiator) having a bus master function in a conventional computer system. FIG. 7 is a block diagram showing an outline of an interface port of a device having only a slave function in a conventional computer system. FIG. 8 is a block diagram showing an outline of an interface port connected to an initiator device having a master function in a conventional computer system. [Description of Signs] 1 ... Processor, 2 ... System Controller, 3 ... Peripheral Controller, 4 ... Graphics LSI, 5
... VRAM, 6 ... I / O device, 8 ... SRAM, 9 ...
Flash memory, 10 ROM, 11 SDRAM,
22: Bus master DMA controller, 500: Memory controller, 501: Peripheral controller, 502
... DMA controller, 503 ... Microprocessor,
504 SDRAM interface (I / F) controller, 505 SDRAM, 510 address decode controller, 511, 512, 513 reception buffer, 521, 522, 523 command reception buffer
531, 532, 533... Transmission buffer, 541, 54
2,543 ... address holding buffer, 551, 552
553: Look-ahead buffer.

Claims (1)

【特許請求の範囲】 【請求項1】バスマスタとなるイニシエータと、前記イ
ニシエータからリードコマンドを受信すると共に前記イ
ニシエータにデータを送信するターゲットと、前記ター
ゲットに属し且つ前記リードコマンドを保持する受信バ
ッファとを備えるコンピュータシステムに配置されてお
り、前記データを保持し転送するメモリ制御装置であっ
て、 前記データのアドレスを保持するアドレス保持バッファ
と、 前記データを保持する先読みバッファと、 前記受信バッファに保持された前記リードコマンドのア
ドレスと前記データのアドレスとを比較して、一致して
いれば、前記先読みバッファのデータを前記イニシエー
タに転送し、一致していなければ、前記ターゲットより
前記リードコマンドで指定されたデータを転送する転送
制御装置と、を備えることを特徴とするメモリ制御装
置。
Claims: 1. An initiator serving as a bus master, a target receiving a read command from the initiator and transmitting data to the initiator, and a receiving buffer belonging to the target and holding the read command. A memory control device that is arranged in a computer system including: an address holding buffer that holds and transfers the data; an address holding buffer that holds an address of the data; a prefetch buffer that holds the data; and a holding buffer that holds the data. The address of the read command is compared with the address of the data, and if they match, the data in the pre-read buffer is transferred to the initiator, and if they do not match, the address is designated by the read command from the target. Transfer the transferred data A memory control device comprising: a control device.
JP2001296592A 2001-09-27 2001-09-27 Memory control device Pending JP2003108434A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001296592A JP2003108434A (en) 2001-09-27 2001-09-27 Memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001296592A JP2003108434A (en) 2001-09-27 2001-09-27 Memory control device

Publications (1)

Publication Number Publication Date
JP2003108434A true JP2003108434A (en) 2003-04-11

Family

ID=19117795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001296592A Pending JP2003108434A (en) 2001-09-27 2001-09-27 Memory control device

Country Status (1)

Country Link
JP (1) JP2003108434A (en)

Similar Documents

Publication Publication Date Title
EP3796179A1 (en) System, apparatus and method for processing remote direct memory access operations with a device-attached memory
US5870567A (en) Delayed transaction protocol for computer system bus
KR100420706B1 (en) Method and system for I / O control in multiprocessor system using simultaneous access of variable width bus
US5887148A (en) System for supporting a buffer memory wherein data is stored in multiple data widths based upon a switch interface for detecting the different bus sizes
US5835741A (en) Bus-to-bus bridge in computer system, with fast burst memory range
KR100420707B1 (en) Method and system for bus arbitration in multiprocessor systems with simultaneous access of variable-width buses
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
KR100252570B1 (en) Cache memory with reduced request-blocking
US5499384A (en) Input output control unit having dedicated paths for controlling the input and output of data between host processor and external device
US6330630B1 (en) Computer system having improved data transfer across a bus bridge
US6098134A (en) Lock protocol for PCI bus using an additional &#34;superlock&#34; signal on the system bus
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
JPH0642225B2 (en) Computer system having DMA function
KR100296718B1 (en) Method and system for simultaneously accessing variable-width buses in multiprocessor systems
US5892978A (en) Combined consective byte update buffer
US6675251B1 (en) Bridge device for connecting multiple devices to one slot
US6160562A (en) System and method for aligning an initial cache line of data read from local memory by an input/output device
JP4585647B2 (en) Support for multiple outstanding requests to multiple targets in a pipelined memory system
US6263390B1 (en) Two-port memory to connect a microprocessor bus to multiple peripherals
US11789658B2 (en) Peripheral component interconnect express (PCIe) interface system and method of operating the same
EP1041492A2 (en) Method and system for optimizing of peripheral component interconnect (PCI) bus transfers
US6199118B1 (en) System and method for aligning an initial cache line of data read from an input/output device by a central processing unit
US5923857A (en) Method and apparatus for ordering writeback data transfers on a bus
US6742074B2 (en) Bus to system memory delayed read processing
US5802323A (en) Transparent burst access to data having a portion residing in cache and a portion residing in memory

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050902

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060404