JPH10283302A - Method and system for supplying data to bus connected to plural processors - Google Patents
Method and system for supplying data to bus connected to plural processorsInfo
- Publication number
- JPH10283302A JPH10283302A JP10084756A JP8475698A JPH10283302A JP H10283302 A JPH10283302 A JP H10283302A JP 10084756 A JP10084756 A JP 10084756A JP 8475698 A JP8475698 A JP 8475698A JP H10283302 A JPH10283302 A JP H10283302A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bus
- available
- memory
- transferring
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、メモリ・コントロ
ーラにおけるデータ・アクセスのための方法およびシス
テムに関し、より具体的には、バッファ付きメモリ・コ
ントローラ、特にSMPメモリ・コントローラなど、複
数のプロセッサにサービスを提供するコントローラで低
待ち時間データ・アクセスを可能にするための方法およ
びシステムに関する。FIELD OF THE INVENTION The present invention relates to a method and system for data access in a memory controller, and more particularly to servicing a plurality of processors, such as a buffered memory controller, especially an SMP memory controller. And a system for enabling low-latency data access with a controller that provides a low latency data access.
【0002】[0002]
【従来の技術】SMPメモリ・コントローラなど、複数
のプロセッサにサービスを提供する現行のメモリ・コン
トローラでは、通常、すべてのプロセッサ用として単一
データ・バスを使用する。プロセッサがメモリからデー
タを読み取ろうと試みると、必ずメモリ・コントローラ
はそのデータ・バスへのアクセスをどのようにプロセッ
サに許諾するかを決定しなければならない。その場合、
コントローラは他のプロセッサによるバスの使用状況を
考慮に入れなければならない。BACKGROUND OF THE INVENTION Current memory controllers, such as SMP memory controllers, which service multiple processors, typically use a single data bus for all processors. Whenever a processor attempts to read data from memory, the memory controller must determine how to grant the processor access to its data bus. In that case,
The controller must take into account the bus usage by other processors.
【0003】特定のプロセッサのための読取り命令の実
行が開始されるとデータ・バスを予約することができる
が、そうすると、読取り命令が完了するまで他のプロセ
ッサはバスを使用できなくなる。このようなシステムで
は、システムの速度が大幅に低下することになる。むし
ろ、プロセッサは、通常、バスのアービトレーションを
行い、バスが使用可能になるまでデータを格納するため
に複数のパスライン・バッファを使用する。When the execution of a read instruction for a particular processor begins, the data bus can be reserved, but no other processor can use the bus until the read instruction is completed. In such a system, the speed of the system will be significantly reduced. Rather, the processor typically arbitrates for the bus and uses multiple passline buffers to store data until the bus is available.
【0004】データ要求の開始時には、一般に、複数の
プロセッサに接続されたデータ・バスがその要求に応じ
ることができる時期を決定することはできない。バス
は、様々な理由で使用中になる。読取り要求が保留にな
っている場合もある。通常、アドレス・バスおよびデー
タ・バスは互いに独立している。アドレスが発行される
と、そのアドレスにはタグが付く。メモリから読み取ら
れたデータには、それに対応するタグが関連付けられて
いる。このため、システムは、特定の要求に関するデー
タが戻されるのを待つ必要なしに複数のアドレスを発行
することができる。さらに、データは、要求が発行され
た順序で戻される必要はない。したがって、任意の時点
で多数の読取り要求が保留中になる可能性がある。ま
た、プロセッサは、書込み要求を発行し、書込みデータ
をバス上に置くこともできる。At the beginning of a data request, it is generally not possible to determine when a data bus connected to a plurality of processors can service the request. Buses are in use for various reasons. The read request may be pending. Usually, the address bus and the data bus are independent of each other. When an address is issued, the address is tagged. The data read from the memory is associated with the corresponding tag. This allows the system to issue multiple addresses without having to wait for data for a particular request to be returned. Further, the data need not be returned in the order in which the requests were issued. Thus, many read requests can be pending at any one time. The processor can also issue a write request and place the write data on the bus.
【0005】したがって、プロセッサが特定の読取り要
求を発行したときには、、メモリから読み取られたデー
タをプロセッサに転送するためにバスがいつ使用可能に
なるかは不明である。バスが使用可能になる時期が不明
なので、従来のシステムでは通常、一時的にバッファ内
にデータを格納する。[0005] Thus, when a processor issues a particular read request, it is unclear when the bus will be available to transfer data read from memory to the processor. Conventional systems typically store data temporarily in a buffer because it is unknown when the bus will be available.
【0006】バッファに格納することによってメモリ・
コントローラが複数のプロセッサに対応できるようにな
るが、欠点もある。メモリからのデータはメモリ・コン
トローラ内に入ってからパスライン・バッファにロード
しなければならないので、プロセッサがメモリ・コント
ローラから受け取る最初のデータは遅延する。このデー
タは、コントローラがバスのアービトレーションを行え
るまでパスライン・バッファに保持される。バスが直ち
に使用可能になるかまたは複数のサイクルの間使用不能
であるかに関係なく、データはバッファ内に格納され
る。By storing data in a buffer,
While the controller can support multiple processors, there are drawbacks. The first data that the processor receives from the memory controller is delayed because data from the memory must enter the memory controller before loading into the passline buffer. This data is held in a passline buffer until the controller can arbitrate for the bus. Data is stored in a buffer, whether the bus is immediately available or unavailable for multiple cycles.
【0007】単一プロセッサにサービスを提供する典型
的なメモリ・コントローラでは、データはバッファされ
ない。複数のプロセッサを使用する典型的なシステムで
データがバッファされない場合、1つのプロセッサは読
取りデータの受取りを見越してバスを要求することがで
きる。その場合、バスはそのプロセッサ用に予約され、
従って読取り動作に要する時間の間、他のプロセッサは
そのバスにアクセスすることができない。したがって、
このような無バッファ実施態様はマルチプロセッサ・シ
ステムには適切でない。In a typical memory controller servicing a single processor, data is not buffered. If the data is not buffered in a typical system using multiple processors, one processor can request the bus in anticipation of receiving the read data. In that case, the bus is reserved for that processor,
Thus, no other processor can access the bus during the time required for the read operation. Therefore,
Such a non-buffered implementation is not suitable for a multiprocessor system.
【0008】同様に、複数プロセッサ・システムでバッ
ファを使用しない場合、メモリからの転送の正確な待ち
時間が分かっていれば、データ・バスを複数の時間ウィ
ンドウに分割することができる。バスが要求された場
合、所与の数のサイクル後にバスがその要求に使用され
ることが分かっている。プロセッサはバス上のデータ転
送が開始される時期よりかなり前にバスへのアクセスを
要求しなければならないので、データをプロセッサに転
送できる時期のフレキシビリティは限られている。バス
のアービトレーションが行われると、後でそれを他の目
的に使用することはできない。Similarly, when buffers are not used in a multiple processor system, the data bus can be divided into multiple time windows if the exact latency of the transfer from memory is known. When a bus is requested, it is known that after a given number of cycles the bus will be used for that request. The flexibility of when data can be transferred to the processor is limited because the processor must request access to the bus well before data transfer on the bus begins. Once a bus has been arbitrated, it cannot be used later for any other purpose.
【0009】[0009]
【発明が解決しようとする課題】したがって、複数のプ
ロセッサにデータを供給するためのシステムおよび方法
であって、最初のデータ・アクセスの遅延が短くフレキ
シビリティが高いシステムおよび方法が必要である。本
発明はこのような必要性に対処するものである。Therefore, there is a need for a system and method for providing data to a plurality of processors, which system has a low initial data access delay and high flexibility. The present invention addresses such a need.
【0010】[0010]
【課題を解決するための手段】本発明は、コンピュータ
・システム内でバスにデータを供給するための方法およ
びシステムを提供する。コンピュータ・システムはメモ
リを含む。バスは複数のプロセッサに対応可能である。
この方法およびシステムは、データがメモリ内でアクセ
スされた後でバスがデータの転送に使用可能かどうかを
判定する。次にこの方法は、バスが使用可能であればバ
スにデータを転送する。SUMMARY OF THE INVENTION The present invention provides a method and system for providing data to a bus in a computer system. The computer system includes a memory. The bus can support a plurality of processors.
The method and system determine whether a bus is available for transferring data after the data has been accessed in memory. The method then transfers the data to the bus, if available.
【0011】ここに開示するシステムおよび方法によれ
ば、本発明は、最初のデータ・アクセスの遅延が短くフ
レキシビリティが高いデータ転送に備えるものであり、
それにより、全体的なシステム・パフォーマンスが向上
する。In accordance with the systems and methods disclosed herein, the present invention provides for a highly flexible data transfer with low initial data access delay.
Thereby, overall system performance is improved.
【0012】[0012]
【発明の実施の形態】本発明は、マルチプロセッサ・シ
ステムの改良に関する。以下の説明は、当業者が本発明
を実施できるようにするためのものであり、特許出願お
よびその要件の状況で示されている。好ましい実施例に
対する様々な変更は当業者には容易に思いつくものであ
り、ここに示す一般原理は他の実施例にも適用すること
ができる。したがって、本発明は、ここに示す実施例に
限定するものではなく、ここに記載した原理および特徴
と一致する最も広い範囲が与えられるはずである。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to improvements in multiprocessor systems. The following description is provided to enable one of ordinary skill in the art to practice the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment will readily occur to those skilled in the art, and the general principles set forth herein may be applied to other embodiments. Accordingly, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein.
【0013】図1は、SMPシステムなど、複数のプロ
セッサ2を含むシステム1の概要のブロック図である。
図示の例では、n台のプロセッサ2−1〜2−nがあ
る。各プロセッサには、アドレス・バス40、アービト
レーション・バス50、およびデータ・バス60が接続
されている。図1に示すシステム1では、アドレス制御
チップ10がアドレス指定を制御する。アドレス制御チ
ップ10は、データ・フロー・チップ20と共に、メモ
リ30へのアクセスを制御するメモリ・コントローラを
構成している。FIG. 1 is a schematic block diagram of a system 1 including a plurality of processors 2 such as an SMP system.
In the illustrated example, there are n processors 2-1 to 2-n. An address bus 40, an arbitration bus 50, and a data bus 60 are connected to each processor. In the system 1 shown in FIG. 1, an address control chip 10 controls addressing. The address control chip 10, together with the data flow chip 20, constitutes a memory controller that controls access to the memory 30.
【0014】データ・フロー・チップ20は、バス60
を使用してプロセッサ2−1〜2−nにデータを供給
し、バス70によりメモリ30からデータを受け取る。
あるプロセッサ、たとえばプロセッサ2−1がメモリ3
0からデータを読み取ろうと試みるときには、データ・
フロー・チップ20はデータ・バス60へのアクセス権
が許諾されていなければならない。データ・フロー・チ
ップ20がデータ・バス60へのアクセス権を獲得でき
る時期を決定する際に、システム1は、残りのプロセッ
サ2によるデータ・バス60の使用状況を考慮に入れな
ければならない。The data flow chip 20 includes a bus 60
To supply data to the processors 2-1 to 2-n, and receive data from the memory 30 via the bus 70.
A certain processor, for example, processor 2-1 has memory 3
When trying to read data from 0, the data
The flow chip 20 must be granted access to the data bus 60. In determining when the data flow chip 20 can gain access to the data bus 60, the system 1 must take into account the usage of the data bus 60 by the remaining processors 2.
【0015】データ要求の開始時には、一般に、データ
・バス60がその要求の処理に使用可能になる時期を決
定することはできない。バスは、様々な理由で使用中に
なる。読取り要求が保留になっている場合もある。通
常、アドレス・バス40およびデータ・バス60は互い
に独立している。このため、システム1は、特定の要求
に関するデータが戻されるのを待つ必要なしに複数のア
ドレスを発行することができる。さらに、データは、要
求が発行された順序で戻される必要はない。したがっ
て、任意の時点で多数の読取り要求が保留中になる可能
性がある。また、プロセッサ2の1つは、書込み要求を
発行し、書込みデータをバス上に置くこともできる。At the beginning of a data request, it is generally not possible to determine when the data bus 60 will be available to service the request. Buses are in use for various reasons. The read request may be pending. Usually, the address bus 40 and the data bus 60 are independent of each other. Thus, system 1 can issue multiple addresses without having to wait for data for a particular request to be returned. Further, the data need not be returned in the order in which the requests were issued. Thus, many read requests can be pending at any one time. Also, one of the processors 2 can issue a write request and place the write data on the bus.
【0016】図2は、従来のデータ・フロー・チップ2
0と、アドレス制御チップ10と、メモリ30とのより
詳細なブロック図である。プロセッサ2の1つが特定の
読取り要求を発行したときには、メモリ30から読み取
られたデータを転送するためにデータ・バス60が使用
可能になる時期は分かっていない。データ・バス60が
使用可能になる時期が不明なので、データは通常、一時
的にバッファ26に格納される。FIG. 2 shows a conventional data flow chip 2.
FIG. 2 is a more detailed block diagram of the address 0, the address control chip 10, and the memory 30. When one of the processors 2 issues a particular read request, it is not known when the data bus 60 will be available to transfer the data read from the memory 30. Data is typically temporarily stored in buffer 26 because it is not known when data bus 60 will be available.
【0017】通常、メモリ30から読み取られたデータ
は、バス70を介してデータ・フロー・チップ20内の
ラッチ21に転送される。次にデータは、ECC検査/
訂正論理回路22内でエラーの有無が検査される。次い
で、ECC検査/訂正論理回路22はデータを第2ラッ
チ24に転送する。次のクロック・サイクルでデータは
バッファ26に転送される。バッファ26は、複数のプ
ロセッサ2のうちの適切なプロセッサにデータを転送す
るためにデータ・バス60が使用可能になっていること
を制御論理回路28が判定するまでデータを格納する。Normally, data read from memory 30 is transferred via bus 70 to latch 21 in data flow chip 20. Next, the data is ECC inspection /
The error is checked in the correction logic circuit 22. Next, the ECC check / correction logic circuit 22 transfers the data to the second latch 24. Data is transferred to buffer 26 on the next clock cycle. Buffer 26 stores data until control logic 28 determines that data bus 60 is available to transfer data to the appropriate one of the plurality of processors 2.
【0018】通常、アドレス制御チップ10は、データ
・バス60がデータ・フロー・チップ20からデータを
受け取ることができる時期を制御論理回路28に通知す
る。従来のシステムでは、アドレス制御チップ10は、
主に、MEM_CMD、SYS_CMD、SYS_GRANTという3つのコマ
ンドによってデータ・フロー・チップ20を制御する。Typically, address control chip 10 informs control logic 28 when data bus 60 can receive data from data flow chip 20. In a conventional system, the address control chip 10
The data flow chip 20 is controlled mainly by three commands, MEM_CMD, SYS_CMD, and SYS_GRANT.
【0019】線91により供給されるMEM_CMDは、バス
70を介してメモリ30からデータが到着することをデ
ータ・フロー・チップ20に通知する。線92により供
給されるSYS_CMDは、データ・バス60にデータを供給
しなければならないことをデータ・フロー・チップ20
に通知する。線93により供給されるSYS_GRANTコマン
ドは、データ・バス60が獲得されたことをデータ・フ
ロー・チップ20に通知し、データ・バス60に供給し
なければならないデータの量を指定する。従来のシステ
ムでは、アドレス制御チップ10がデータ・バス60の
アービトレーションを行う。データ・バス60へのアク
セス権を獲得すると、アドレス制御チップ10はSYS_GR
ANTを発行する。SYS_GRANTコマンドは、データ・バス6
0がデータの受取りに使用可能であることをデータ・フ
ロー・チップ20に通知する。MEM_CMD, provided by line 91, notifies data flow chip 20 of the arrival of data from memory 30 via bus 70. SYS_CMD provided by line 92 indicates that data must be supplied to data bus 60 to data flow chip 20.
Notify. The SYS_GRANT command, provided by line 93, notifies data flow chip 20 that data bus 60 has been acquired and specifies the amount of data that must be provided to data bus 60. In a conventional system, the address control chip 10 arbitrates the data bus 60. When the access right to the data bus 60 is obtained, the address control chip 10 sets the SYS_GR
Issue ANT. The SYS_GRANT command is sent to data bus 6
0 informs data flow chip 20 that it is available to receive data.
【0020】バッファなしのマルチプロセッサ・システ
ムを構成することは可能であるが、これは通常行われな
いことに留意されたい。典型的なバッファなしシステム
の1つでは、メモリ・コントローラは読取りデータの受
取りを見越してバスを要求することができる。しかし、
バスは、読取り動作の間中、その転送用に予約されるは
ずである。同様に、メモリからの転送の待ち時間が分か
っていれば、データ・バスを複数の時間ウィンドウに分
割することができる。読取りが要求された場合、所定の
数のサイクル後にその要求のためにバスを使用しなけれ
ばならない。これは、システムのフレキシビリティを制
限するものである。したがって、一般にバッファなしの
構成はマルチプロセッサ・システムには不適切である。It should be noted that it is possible to construct a bufferless multiprocessor system, but this is not usually done. In one typical unbuffered system, a memory controller can request a bus in anticipation of receiving read data. But,
The bus would be reserved for that transfer during the read operation. Similarly, if the latency of a transfer from memory is known, the data bus can be divided into multiple time windows. When a read is requested, the bus must be used for that request after a predetermined number of cycles. This limits the flexibility of the system. Thus, unbuffered configurations are generally unsuitable for multiprocessor systems.
【0021】図1に示すシステム1によりプロセッサ2
は比較的迅速にメモリ30にアクセスすることができる
が、当業者であれば、バッファ26によって不利な状況
が発生することが分かるだろう。メモリ30からのデー
タはまずデータ・フロー・チップ20に入ってからバッ
ファ26にロードしなければならないので、プロセッサ
2の1つが受け取る最初のデータが遅延する。このデー
タは、アドレス制御チップ10がバス60のアービトレ
ーションを行うまでバッファ26内に存続する。データ
・バス60が直ちに使用可能になるかまたは複数のサイ
クルの間使用不能であるかに関係なく、データはバッフ
ァ26内に格納される。このため、メモリ30からプロ
セッサ2の1つへの最初のデータの伝送時に遅延が発生
する可能性がある。The processor 1 according to the system 1 shown in FIG.
Can access memory 30 relatively quickly, but those skilled in the art will recognize that buffer 26 creates a disadvantage. Since data from memory 30 must first enter data flow chip 20 and then load into buffer 26, the first data received by one of processors 2 is delayed. This data remains in the buffer 26 until the address control chip 10 arbitrates the bus 60. Data is stored in the buffer 26 whether the data bus 60 is immediately available or unavailable for multiple cycles. Therefore, a delay may occur when transmitting the first data from the memory 30 to one of the processors 2.
【0022】本発明は、最初のデータ・アクセスの待ち
時間が低減されたフレキシブルなマルチプロセッサ・シ
ステムを提供するための方法およびシステムを提供す
る。本発明については、データ・フロー・チップとアド
レス・チップとを含むメモリ・コントローラに関して説
明する。しかし、当業者であれば、この方法およびシス
テムが他のタイプのメモリ・コントローラにも有効に機
能することが容易に分かるだろう。The present invention provides a method and system for providing a flexible multiprocessor system with reduced initial data access latency. The present invention is described with respect to a memory controller that includes a data flow chip and an address chip. However, those skilled in the art will readily recognize that the method and system will work well with other types of memory controllers.
【0023】本発明による方法およびシステムをより具
体的に例示するため、このようなシステムの一実施例の
ブロック図を示す図3を参照されたい。本発明のシステ
ム200は、従来のシステムと同様のいくつかの構成要
素を含む。したがって、これらの構成要素には、図2に
示す従来の構成要素と同様の番号が付けられている。To more specifically illustrate the method and system according to the present invention, please refer to FIG. 3, which shows a block diagram of one embodiment of such a system. The system 200 of the present invention includes several components similar to conventional systems. Therefore, these components are given the same numbers as the conventional components shown in FIG.
【0024】次に図3を参照すると、メモリ30'から
のデータはデータ・フロー・チップ20'によって受け
取られる。好ましい実施例では、アドレス制御チップ1
0'がデータ・フロー・チップ20'を制御する。一実施
例では、データはラッチ21'およびECC検査/訂正
論理回路22'に供給される。次にシステム200は、
データを受け取るためにデータ・バス60'が使用可能
であるかどうかを判定する。好ましい実施例では、これ
は、SYS_GRANTコマンドが線93'により受け取られたか
どうかを制御論理回路28'が判定することによって行
われる。Referring now to FIG. 3, data from memory 30 'is received by data flow chip 20'. In the preferred embodiment, the address control chip 1
0 'controls the data flow chip 20'. In one embodiment, the data is provided to latch 21 'and ECC check / correction logic 22'. Next, the system 200
Determine if data bus 60 'is available to receive data. In the preferred embodiment, this is done by the control logic 28 'determining whether a SYS_GRANT command has been received on line 93'.
【0025】第1バイパス202は、ECC検査/訂正
論理回路22'からマルチプレクサ206にデータを直
接供給する。データ・バス60'が使用可能であると判
明した場合、第1バイパス202からマルチプレクサ2
06に入力されるデータはデータ・バス60'に供給さ
れる。データ・バス60'が直ちに使用可能ではない場
合、データはラッチ24'に供給される。次にシステム
200は、データを受け取るためにデータ・バス60'
が使用可能になったかどうかを判定する。好ましい実施
例では、制御論理回路28'は、SYS_GRANTコマンドが線
93'により受け取られたかどうかをもう一度判定す
る。The first bypass 202 provides data directly from the ECC check / correction logic 22 ′ to the multiplexer 206. If data bus 60 'is found to be available, the first bypass 202
Data input to 06 is supplied to data bus 60 '. If data bus 60 'is not immediately available, data is provided to latch 24'. Next, the system 200 sends the data bus 60 'to receive the data.
Is determined to be available. In the preferred embodiment, control logic 28 'once again determines whether a SYS_GRANT command has been received on line 93'.
【0026】第2バイパス204からのデータはマルチ
プレクサ206に供給される。データ・バス60'が使
用可能になった場合、第2バイパス204からマルチプ
レクサ206に入力されるデータはデータ・バス60'
に供給される。好ましい実施例では、これは、データが
データ・フロー・チップ20'に入力されてから1サイ
クル後に行われる。データ・バス60'が使用可能では
ない場合、データはバッファ26'に供給される。デー
タ・バス60'が使用可能になると、バッファ26'から
マルチプレクサ206に供給されるデータはデータ・バ
ス60'に転送される。好ましい実施例では、これは、
データがデータ・フロー・チップ20'で受け取られて
から2サイクル後またはそれ以後に行われる。The data from the second bypass 204 is supplied to the multiplexer 206. When the data bus 60 ′ becomes available, the data input from the second bypass 204 to the multiplexer 206 is transferred to the data bus 60 ′.
Supplied to In the preferred embodiment, this occurs one cycle after the data is input to the data flow chip 20 '. If data bus 60 'is not available, data is provided to buffer 26'. When data bus 60 'becomes available, the data provided from buffer 26' to multiplexer 206 is transferred to data bus 60 '. In a preferred embodiment, this is
It occurs two or more cycles after the data is received at the data flow chip 20 '.
【0027】システム200は、図2に示す従来のバッ
ファ付きシステムに関連するプロセッサに対して行われ
る最初のデータ転送の際に不必要な不利な状況を回避す
るものである。第1バイパス202があるので、プロセ
ッサ2の1つは、バッファなしシステムの場合と同じ速
さで最初のデータを受け取ることができる。また、シス
テム200は、特定の読取り動作に対してバスが直ちに
許諾されない場合にも対応する。The system 200 avoids unnecessary disadvantageous situations during the initial data transfer to the processor associated with the conventional buffered system shown in FIG. Due to the first bypass 202, one of the processors 2 can receive the first data as fast as in an unbuffered system. The system 200 also accommodates cases where the bus is not immediately licensed for a particular read operation.
【0028】データ・バス60'が読取り動作に対して
直ちに許諾されない場合、システム200はデータを1
サイクル分前進させ、データ・バス60'が使用可能で
あるかどうかを判定するために再検査を行う。データ・
バス60'が使用可能である場合、データはデータ・バ
ス60'に転送される。使用可能ではない場合、システ
ム200は、データ・バス60'の準備ができるまで、
バッファ26'内にデータを保持することができる。し
たがって、データは、できるだけ早い時期に複数のプロ
セッサ2のうちの適切なプロセッサに供給される。If the data bus 60 'is not immediately licensed for a read operation, the system 200 will
Advance by cycles and perform a retest to determine if data bus 60 'is available. data·
If bus 60 'is available, the data is transferred to data bus 60'. If not, system 200 waits until data bus 60 'is ready.
Data can be held in the buffer 26 '. Therefore, the data is supplied to an appropriate one of the processors 2 as soon as possible.
【0029】さらに、システム200は、典型的なバッ
ファなしシステムよりフレキシビリティが高い。メモリ
30'からのデータをデータ・バス60'に転送できるよ
うになるかなり前にデータ・バス60'のアービトレー
ションを行う必要はない。好ましい実施例では、システ
ム200がアドレス制御チップ10'によりデータ・バ
ス60'のアービトレーションを行うと、数サイクル後
にバスは必要な長さだけその動作に対して許諾される。
したがって、システム200は、バス60'を使用する
ときに所定の長さの複数のウィンドウに分割されない。Further, the system 200 is more flexible than a typical unbuffered system. It is not necessary to arbitrate for data bus 60 'long before data from memory 30' can be transferred to data bus 60 '. In the preferred embodiment, once the system 200 has arbitrated the data bus 60 'by the address control chip 10', after a few cycles the bus will be granted its operation for the required length.
Thus, system 200 is not divided into windows of a predetermined length when using bus 60 '.
【0030】複数のプロセッサにデータを供給するため
の方法およびシステムであって、最初のデータ・アクセ
スの遅延が短くフレキシビリティが高い方法およびシス
テムを開示した。A method and system for providing data to a plurality of processors has been disclosed wherein the initial data access has a low delay and high flexibility.
【0031】まとめとして、本発明の構成に関して以下
の事項を開示する。In summary, the following matters are disclosed regarding the configuration of the present invention.
【0032】(1)メモリおよび該メモリを制御するメ
モリ・コントローラを含むコンピュータ・システムにお
いて、複数のプロセッサに接続されたバスにデータを供
給するための方法であって、(a)前記メモリ内でデー
タがアクセスされた後で前記データを転送するために前
記バスが使用可能であるかどうかを判定するステップ
と、(b)前記バスが使用可能である場合に前記データ
を前記バスに転送するステップとを含む方法。 (2)前記ステップ(b)が、(b1)前記バスが使用
可能である場合に前記データを前記バスに転送するステ
ップと、(b2)前記バスが使用可能ではない場合に前
記データをラッチに転送するステップと、(b3)前記
データを転送するために前記バスが使用可能になったか
どうかを判定するステップと、(b4)前記データを転
送するために前記バスが使用可能になった場合に前記デ
ータを前記ラッチから前記バスに転送するステップとを
さらに含む、上記(1)に記載の方法。 (3)(c)前記バスが使用可能ではない場合に前記ラ
ッチからの前記データを格納するステップをさらに含
む、上記(2)に記載の方法。 (4)前記ステップ(c)が、(c1)前記バスが使用
可能になったときに、格納されていた前記データを前記
バスに供給するステップをさらに含む、上記(3)に記
載の方法。 (5)前記ステップ(b2)が前記ステップ(a)の1
サイクル後に実行される、上記(2)に記載の方法。 (6)前記ステップ(c1)が前記ステップ(a)の2
サイクル後またはそれ以後に実行される、上記(4)に
記載の方法。 (7)前記ステップ(a)が、(a1)前記メモリ・コ
ントローラが前記バスの所有権を獲得したことを示すコ
マンドを探索するステップをさらに含む、上記(6)に
記載の方法。 (8)前記バスが使用可能であるかどうかを判定する前
記ステップ(a)が、(a2)前記バスに供給可能なデ
ータの量を決定するステップをさらに含む、上記(7)
に記載の方法。 (9)前記ステップ(b3)が、(b3i)前記メモリ
・コントローラが前記バスの所有権を獲得したことを示
すコマンドを探索するステップをさらに含む、上記
(8)に記載の方法。 (10)前記ステップ(c2)が、(c2i)前記メモ
リ・コントローラが前記バスの所有権を獲得したことを
示すコマンドを探索するステップをさらに含む、上記
(9)に記載の方法。 (11)複数のプロセッサに接続されたバスにデータを
供給するためのシステムであって、前記データを受け取
るための受取り手段と、前記受取り手段に結合され、第
1の所定の期間内に前記バスが使用可能になる場合に前
記データを前記バスに供給するための第1のバイパス
と、前記第1のバイパスに結合され、前記バスが使用可
能であるかどうかを判定するための判定手段とを含むシ
ステム。 (12)前記受取り手段に結合され、前記データを保持
するためのラッチと、前記ラッチに結合され、第2の所
定の期間内に前記バスが使用可能になった場合に前記デ
ータを前記バスに供給するための第2のバイパスとをさ
らに含む、上記(11)に記載のシステム。 (13)前記第2のバイパスおよび前記ラッチに結合さ
れ、前記バスが使用可能になるまで前記データを格納す
るための記憶手段をさらに含む、上記(12)に記載の
システム。 (14)エラーの有無について前記データを検査し、エ
ラーを訂正するための手段をさらに含む、上記(13)
に記載のシステム。 (15)前記第1の所定の期間が、前記データのエラー
検査および訂正を完了した直後である、上記(14)に
記載のシステム。 (16)前記第2の所定の期間が、前記データが前記受
取り手段に入力されたステップの1サイクル後である、
上記(15)に記載のシステム。 (17)前記記憶手段に格納されているデータが、前記
受取り手段に前記データが入力されてから2サイクル後
またはそれ以後に転送される、上記(16)に記載のシ
ステム。(1) A method for supplying data to a bus connected to a plurality of processors in a computer system including a memory and a memory controller for controlling the memory, the method comprising: (a) storing data in the memory; Determining whether the bus is available to transfer the data after the data has been accessed; and (b) transferring the data to the bus if the bus is available. And a method comprising: (2) said step (b) comprises: (b1) transferring said data to said bus when said bus is available; and (b2) latching said data when said bus is not available. Transferring; (b3) determining whether the bus has become available for transferring the data; and (b4) if the bus has become available for transferring the data. Transferring the data from the latch to the bus. (3) (c) The method of (2) above, further comprising storing the data from the latch when the bus is not available. (4) The method according to (3), wherein the step (c) further comprises the step of: (c1) supplying the stored data to the bus when the bus becomes available. (5) The step (b2) is one of the steps (a)
The method according to (2), which is performed after a cycle. (6) The step (c1) is the step (a) 2
The method according to (4), performed after or after the cycle. (7) The method of (6) above, wherein step (a) further comprises: (a1) searching for a command indicating that the memory controller has taken ownership of the bus. (8) The above (7), wherein the step (a) of determining whether the bus is usable further includes the step of: (a2) determining an amount of data that can be supplied to the bus.
The method described in. (9) The method of (8) above, wherein step (b3) further comprises: (b3i) searching for a command indicating that the memory controller has taken ownership of the bus. (10) The method of (9) above, wherein step (c2) further comprises: (c2i) searching for a command indicating that the memory controller has taken ownership of the bus. (11) A system for supplying data to a bus connected to a plurality of processors, comprising: a receiving unit for receiving the data; and a receiving unit coupled to the receiving unit, wherein the bus is provided within a first predetermined period. A first bypass for supplying the data to the bus when the bus becomes available; and a determination means coupled to the first bypass for determining whether the bus is available. Including system. (12) a latch coupled to the receiving means for holding the data; and a latch coupled to the latch, wherein the data is transmitted to the bus when the bus becomes available within a second predetermined period. The system of claim 11, further comprising a second bypass for providing. (13) The system of (12) above, further comprising storage means coupled to said second bypass and said latch for storing said data until said bus is available. (14) The above-mentioned (13), further comprising means for inspecting the data for the presence or absence of an error and correcting the error.
System. (15) The system according to (14), wherein the first predetermined period is immediately after completing the error check and correction of the data. (16) the second predetermined period is one cycle after the step in which the data is input to the receiving means;
The system according to the above (15). (17) The system according to (16), wherein the data stored in the storage unit is transferred two cycles after or after the data is input to the reception unit.
【図1】複数のプロセッサに対応するシステムの概要の
ブロック図である。FIG. 1 is a schematic block diagram of a system corresponding to a plurality of processors.
【図2】複数のプロセッサにデータを供給する従来のシ
ステムのブロック図である。FIG. 2 is a block diagram of a conventional system for supplying data to a plurality of processors.
【図3】本方法およびシステムにより複数のプロセッサ
にデータを供給するためのシステムのブロック図であ
る。FIG. 3 is a block diagram of a system for providing data to a plurality of processors according to the present methods and systems.
1 システム 2−1 プロセッサ1 2−2 プロセッサ2 2−n プロセッサn 10 アドレス制御チップ 20 データ・フロー・チップ 30 メモリ 40 アドレス・バス 50 アービトレーション・バス 60 データ・バス 70 バス 1 System 2-1 Processor 1 2-2 Processor 2 2-n Processor n 10 Address control chip 20 Data flow chip 30 Memory 40 Address bus 50 Arbitration bus 60 Data bus 70 Bus
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デービッド・ウェイン・ビクター アメリカ合衆国78681 テキサス州ラウン ド・ロック ニューランド・ドライブ 3810 ──────────────────────────────────────────────────続 き Continued on front page (72) Inventor David Wayne Victor United States 78681 Round Rock, Texas Newland Drive 3810
Claims (17)
コントローラを含むコンピュータ・システムにおいて、
複数のプロセッサに接続されたバスにデータを供給する
ための方法であって、 (a)前記メモリ内でデータがアクセスされた後で前記
データを転送するために前記バスが使用可能であるかど
うかを判定するステップと、 (b)前記バスが使用可能である場合に前記データを前
記バスに転送するステップとを含む方法。A memory and a memory for controlling the memory.
In a computer system including a controller,
A method for providing data to a bus connected to a plurality of processors, comprising: (a) whether the bus is available to transfer the data after the data has been accessed in the memory; And (b) transferring the data to the bus if the bus is available.
前記バスに転送するステップと、 (b2)前記バスが使用可能ではない場合に前記データ
をラッチに転送するステップと、 (b3)前記データを転送するために前記バスが使用可
能になったかどうかを判定するステップと、 (b4)前記データを転送するために前記バスが使用可
能になった場合に前記データを前記ラッチから前記バス
に転送するステップとをさらに含む、請求項1に記載の
方法。2. The method of claim 1, wherein the step (b) comprises: (b1) transferring the data to the bus when the bus is available; and (b2) transferring the data when the bus is not available. Transferring to the latch; (b3) determining whether the bus is available for transferring the data; and (b4) enabling the bus for transferring the data. Transferring the data from the latch to the bus.
前記ラッチからの前記データを格納するステップをさら
に含む、請求項2に記載の方法。3. The method of claim 2, further comprising the step of: (c) storing said data from said latch when said bus is not available.
ていた前記データを前記バスに供給するステップをさら
に含む、請求項3に記載の方法。4. The method of claim 3, wherein step (c) further comprises: (c1) providing the stored data to the bus when the bus becomes available. .
(a)の1サイクル後に実行される、請求項2に記載の
方法。5. The method of claim 2, wherein said step (b2) is performed one cycle after said step (a).
(a)の2サイクル後またはそれ以後に実行される、請
求項4に記載の方法。6. The method according to claim 4, wherein said step (c1) is performed two cycles after or after said step (a).
を獲得したことを示すコマンドを探索するステップをさ
らに含む、請求項6に記載の方法。7. The method of claim 6, wherein step (a) further comprises: (a1) searching for a command indicating that the memory controller has taken ownership of the bus.
する前記ステップ(a)が、 (a2)前記バスに供給可能なデータの量を決定するス
テップをさらに含む、請求項7に記載の方法。8. The method according to claim 7, wherein said step (a) of determining whether said bus is available further comprises: (a2) determining an amount of data that can be supplied to said bus. Method.
権を獲得したことを示すコマンドを探索するステップを
さらに含む、請求項8に記載の方法。9. The method of claim 8, wherein said step (b3) further comprises: (b3i) searching for a command indicating that said memory controller has taken ownership of said bus.
権を獲得したことを示すコマンドを探索するステップを
さらに含む、請求項9に記載の方法。10. The method of claim 9, wherein said step (c2) further comprises: (c2i) searching for a command indicating that said memory controller has taken ownership of said bus.
ータを供給するためのシステムであって、 前記データを受け取るための受取り手段と、 前記受取り手段に結合され、第1の所定の期間内に前記
バスが使用可能になる場合に前記データを前記バスに供
給するための第1のバイパスと、 前記第1のバイパスに結合され、前記バスが使用可能で
あるかどうかを判定するための判定手段とを含むシステ
ム。11. A system for supplying data to a bus connected to a plurality of processors, comprising: receiving means for receiving the data; coupled to the receiving means, within a first predetermined time period. A first bypass for supplying the data to the bus when the bus becomes available; and a determining means coupled to the first bypass for determining whether the bus is available. And a system that includes.
を保持するためのラッチと、 前記ラッチに結合され、第2の所定の期間内に前記バス
が使用可能になった場合に前記データを前記バスに供給
するための第2のバイパスとをさらに含む、請求項11
に記載のシステム。12. A latch coupled to said receiving means for holding said data; and a latch coupled to said latch, said data being provided when said bus becomes available within a second predetermined time period. A second bypass for supplying the bus.
System.
結合され、前記バスが使用可能になるまで前記データを
格納するための記憶手段をさらに含む、請求項12に記
載のシステム。13. The system of claim 12, further comprising storage means coupled to said second bypass and said latch for storing said data until said bus is available.
し、エラーを訂正するための手段をさらに含む、請求項
13に記載のシステム。14. The system of claim 13, further comprising means for checking said data for errors and correcting errors.
エラー検査および訂正を完了した直後である、請求項1
4に記載のシステム。15. The method according to claim 1, wherein the first predetermined period is immediately after error checking and correction of the data are completed.
5. The system according to 4.
前記受取り手段に入力されたステップの1サイクル後で
ある、請求項15に記載のシステム。16. The system of claim 15, wherein said second predetermined time period is one cycle after the step of inputting said data to said receiving means.
が、前記受取り手段に前記データが入力されてから2サ
イクル後またはそれ以後に転送される、請求項16に記
載のシステム。17. The system according to claim 16, wherein the data stored in said storage means is transferred two cycles or more after the data is input to said receiving means.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83513497A | 1997-04-04 | 1997-04-04 | |
US08/835134 | 1997-04-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10283302A true JPH10283302A (en) | 1998-10-23 |
JP3111052B2 JP3111052B2 (en) | 2000-11-20 |
Family
ID=25268675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10084756A Expired - Fee Related JP3111052B2 (en) | 1997-04-04 | 1998-03-30 | Method and system for supplying data to a bus connected to a plurality of processors |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP3111052B2 (en) |
KR (1) | KR100266883B1 (en) |
TW (1) | TW387072B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009237872A (en) * | 2008-03-27 | 2009-10-15 | Fujitsu Ltd | Memory control device, memory control method and information processor |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117316B2 (en) | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US7330992B2 (en) | 2003-12-29 | 2008-02-12 | Micron Technology, Inc. | System and method for read synchronization of memory modules |
US7188219B2 (en) | 2004-01-30 | 2007-03-06 | Micron Technology, Inc. | Buffer control system and method for a memory system having outstanding read and write request buffers |
US7519788B2 (en) | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
-
1997
- 1997-11-04 TW TW086116368A patent/TW387072B/en not_active IP Right Cessation
-
1998
- 1998-02-07 KR KR1019980003571A patent/KR100266883B1/en not_active IP Right Cessation
- 1998-03-30 JP JP10084756A patent/JP3111052B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009237872A (en) * | 2008-03-27 | 2009-10-15 | Fujitsu Ltd | Memory control device, memory control method and information processor |
Also Published As
Publication number | Publication date |
---|---|
KR100266883B1 (en) | 2000-09-15 |
JP3111052B2 (en) | 2000-11-20 |
TW387072B (en) | 2000-04-11 |
KR19980079687A (en) | 1998-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU651747B2 (en) | Arbitration control logic for computer system having dual bus architecture | |
US6772237B2 (en) | Host controller interface descriptor fetching unit | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
US6636927B1 (en) | Bridge device for transferring data using master-specific prefetch sizes | |
US5574868A (en) | Bus grant prediction technique for a split transaction bus in a multiprocessor computer system | |
JPH0642225B2 (en) | Computer system having DMA function | |
US6782463B2 (en) | Shared memory array | |
JP4642531B2 (en) | Arbitration of data requests | |
US7779188B2 (en) | System and method to reduce memory latency in microprocessor systems connected with a bus | |
US20060265523A1 (en) | Data transfer circuit and data transfer method | |
US7203781B2 (en) | Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus | |
US8010682B2 (en) | Early coherency indication for return data in shared memory architecture | |
JP2001282704A (en) | Device, method and system for processing data | |
JP3111052B2 (en) | Method and system for supplying data to a bus connected to a plurality of processors | |
US6327636B1 (en) | Ordering for pipelined read transfers | |
US7003637B2 (en) | Disk array device with utilization of a dual-bus architecture dependent on data length of cache access requests | |
US6502150B1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
US6829692B2 (en) | System and method for providing data to multi-function memory | |
US5671370A (en) | Alternating data valid control signals for high performance data transfer | |
JPH11232213A (en) | Data transfer system for input/output device | |
US6240474B1 (en) | Pipelined read transfers | |
JP2002198987A (en) | Active port of transfer controller with hub and port | |
JPH10307788A (en) | Bus bridge | |
JP2002278923A (en) | Bus system, bus control system and bus conversion device | |
US6839820B1 (en) | Method and system for controlling data access between at least two memory arrangements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |