JPH06103151A - パーソナルコンピュータ - Google Patents
パーソナルコンピュータInfo
- Publication number
- JPH06103151A JPH06103151A JP5118101A JP11810193A JPH06103151A JP H06103151 A JPH06103151 A JP H06103151A JP 5118101 A JP5118101 A JP 5118101A JP 11810193 A JP11810193 A JP 11810193A JP H06103151 A JPH06103151 A JP H06103151A
- Authority
- JP
- Japan
- Prior art keywords
- write
- bus
- data
- memory
- address
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Memory System (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 パーソナルコンピュータシステムの性能を高
める。 【構成】 書込圧縮バッファ410は、CPUバス41
8及びメモリコントローラ256へ接続され、複数の部
分書込要求によりデータ、アドレス及び制御情報がバッ
ファリングされる書込サイクル圧縮を提供する。書込完
了を示す信号は、各要求毎にCPUへ戻される。書込サ
イクル圧縮において、同一メモリアドレスへの複数の部
分書込要求は、複数の要求から併合されたデータを含む
単一メモリ書込サイクルへ圧縮される。
める。 【構成】 書込圧縮バッファ410は、CPUバス41
8及びメモリコントローラ256へ接続され、複数の部
分書込要求によりデータ、アドレス及び制御情報がバッ
ファリングされる書込サイクル圧縮を提供する。書込完
了を示す信号は、各要求毎にCPUへ戻される。書込サ
イクル圧縮において、同一メモリアドレスへの複数の部
分書込要求は、複数の要求から併合されたデータを含む
単一メモリ書込サイクルへ圧縮される。
Description
【0001】
【産業上の利用分野】関連出願 本出願の譲受人に譲渡された米国特許出願第07/86
1、219号は、本出願の発明を組み込むように修正可
能なシステムを開示している。
1、219号は、本出願の発明を組み込むように修正可
能なシステムを開示している。
【0002】
【従来の技術】高速パーソナルコンピュータにおいて、
システム性能はCPU書込サイクルの実行時間によって
部分的に制限される。これは、誤り訂正符号(ECC)
メモリを使用するシステムにおいて特に明白である。全
体のシステム性能は、そのメモリサブシステムの性能に
よって大きく影響される。メモリサブシステムには、2
つの主要素であるメモリコントローラ及びメインメモリ
が含まれる。マイクロプロセッサ又はCPUは、メモリ
コントローラへのバスサイクルを開始する。これらのバ
スサイクルは、データ読取要求及びデータ書込要求の双
方を含むことができる。CPU読取サイクルでは、CP
Uは、実行を継続する前に、データがメインメモリから
戻るのを待機しなければならない。書込サイクルでは、
CPUは、メモリシステムがメモリへのデータ書込を完
了するのを待機しなければならない。
システム性能はCPU書込サイクルの実行時間によって
部分的に制限される。これは、誤り訂正符号(ECC)
メモリを使用するシステムにおいて特に明白である。全
体のシステム性能は、そのメモリサブシステムの性能に
よって大きく影響される。メモリサブシステムには、2
つの主要素であるメモリコントローラ及びメインメモリ
が含まれる。マイクロプロセッサ又はCPUは、メモリ
コントローラへのバスサイクルを開始する。これらのバ
スサイクルは、データ読取要求及びデータ書込要求の双
方を含むことができる。CPU読取サイクルでは、CP
Uは、実行を継続する前に、データがメインメモリから
戻るのを待機しなければならない。書込サイクルでは、
CPUは、メモリシステムがメモリへのデータ書込を完
了するのを待機しなければならない。
【0003】性能は、メモリからのデータ読取及びメモ
リへのデータ書込における固有の時間遅延によって部分
的に制限される。この制限は、50Mhz以上で実行す
る近代的プロセッサでは容易に明白になる。いくつかの
近代的プロセッサは、性能を最適化するために統合スト
ア−スルーキャッシュ(integrated store-through cac
he)を使用する。これらのキャッシュは、読取サイクル
で読取データをマイクロプロセッサの処理コアへ迅速に
提供することができる。これが行われる場合、書込サイ
クル性能は、全体のシステム性能を支配及び制限する傾
向がある。
リへのデータ書込における固有の時間遅延によって部分
的に制限される。この制限は、50Mhz以上で実行す
る近代的プロセッサでは容易に明白になる。いくつかの
近代的プロセッサは、性能を最適化するために統合スト
ア−スルーキャッシュ(integrated store-through cac
he)を使用する。これらのキャッシュは、読取サイクル
で読取データをマイクロプロセッサの処理コアへ迅速に
提供することができる。これが行われる場合、書込サイ
クル性能は、全体のシステム性能を支配及び制限する傾
向がある。
【0004】いくつかのシステムにより使用されるある
先行技術の性能向上は、書込バッファである。書込バッ
ファは、プロセッサ及びメモリシステム間に配置される
論理ブロックである。書込バッファは、1つ又はそれ以
上の完全プロセッサ書込サイクルを記憶することができ
る。プロセッサ書込サイクルは、アドレス、データ及び
制御情報を含む。書込バッファは、まずサイクル情報を
バッファに捕獲し、次に書込サイクルが完了したという
信号をマイクロプロセッサへ送ることによって作動す
る。次に、書込バッファはシステムの残りへサイクルを
完了するよう作用する。書込バッファは、通常可能なよ
りも速く書込サイクルが完了したという信号をマイクロ
プロセッサへ送ることによって性能を向上させる。次
に、書込バッファはプロセッサ自身のようにシステムの
残りへ現れ、バッファ式サイクルが完了するのを待機す
る。その間に、マイクロプロセッサは、前述のように内
部キャッシュにより促進され得る更なる内演算を自由に
完了することができる。
先行技術の性能向上は、書込バッファである。書込バッ
ファは、プロセッサ及びメモリシステム間に配置される
論理ブロックである。書込バッファは、1つ又はそれ以
上の完全プロセッサ書込サイクルを記憶することができ
る。プロセッサ書込サイクルは、アドレス、データ及び
制御情報を含む。書込バッファは、まずサイクル情報を
バッファに捕獲し、次に書込サイクルが完了したという
信号をマイクロプロセッサへ送ることによって作動す
る。次に、書込バッファはシステムの残りへサイクルを
完了するよう作用する。書込バッファは、通常可能なよ
りも速く書込サイクルが完了したという信号をマイクロ
プロセッサへ送ることによって性能を向上させる。次
に、書込バッファはプロセッサ自身のようにシステムの
残りへ現れ、バッファ式サイクルが完了するのを待機す
る。その間に、マイクロプロセッサは、前述のように内
部キャッシュにより促進され得る更なる内演算を自由に
完了することができる。
【0005】書込バッファは与えられた時間に2つ以上
の書込サイクルをバッファリングする能力を有し、これ
により、次の読取動作へ継続する前に幾つかの書込サイ
クルが完了されることをマイクロプロセッサが要求する
場合に、システム性能を改善する。しかしながら、書込
バッファは、単に、プロセッサ性能に限られた改良を提
供するだけである。メインメモリへの読取サイクルは、
書込バッファ内容がメインメモリ内へ完全に記憶される
まで遅延されなければならない。また、与えられた書込
バッファの深さを越える順次書込サイクルは、書込バッ
ファでスペースが使用可能になるまで完了を待たなけれ
ばならない。従って、書込バッファを使用するシステム
は、依然として、書込サイクルの性能により制限され
る。
の書込サイクルをバッファリングする能力を有し、これ
により、次の読取動作へ継続する前に幾つかの書込サイ
クルが完了されることをマイクロプロセッサが要求する
場合に、システム性能を改善する。しかしながら、書込
バッファは、単に、プロセッサ性能に限られた改良を提
供するだけである。メインメモリへの読取サイクルは、
書込バッファ内容がメインメモリ内へ完全に記憶される
まで遅延されなければならない。また、与えられた書込
バッファの深さを越える順次書込サイクルは、書込バッ
ファでスペースが使用可能になるまで完了を待たなけれ
ばならない。従って、書込バッファを使用するシステム
は、依然として、書込サイクルの性能により制限され
る。
【0006】現在、誤り訂正符号(ECC)メモリサブ
システムは、パーソナルコンピュータシステムへ導入さ
れている。これらのメモリサブシステムは、要求される
プロセッサデータと共に記憶される誤り訂正符号語を使
用する。ECCメモリサブシステムは、単一ビットメモ
リエラーを検出し訂正することによって、システムの信
頼性を改善する。ECC符号語は、データの選択された
原子ユニットに基づいて計算される。PS/2パーソナ
ルコンピュータシステムでは、この符号語は32ビット
幅データワードに基づいて計算され、符号記憶のために
7ビットを必要とする。しかしながら、多くのパーソナ
ルコンピュータソフトウェアは、8ビット又は16ビッ
トプロセッサで作動するように書かれている。従って、
多くの新しいシステムが32ビットプロセッサを使用す
るとしても、多数の読取及び書込サイクルは、8又は1
6ビット動作として起こる。これらのサイクルはここで
は「部分書込サイクル」と称され、書込データのサイズ
は、最小ECCメモリ原子データユニットのサイズ(3
2ビット)より小さい。マイクロプロセッサが原子メモ
リユニットより小さい書込を実行する場合、メモリサブ
システムは、特別の読取−修正−書込(RMW)又は部
分書込サイクルを実行しなければならない。
システムは、パーソナルコンピュータシステムへ導入さ
れている。これらのメモリサブシステムは、要求される
プロセッサデータと共に記憶される誤り訂正符号語を使
用する。ECCメモリサブシステムは、単一ビットメモ
リエラーを検出し訂正することによって、システムの信
頼性を改善する。ECC符号語は、データの選択された
原子ユニットに基づいて計算される。PS/2パーソナ
ルコンピュータシステムでは、この符号語は32ビット
幅データワードに基づいて計算され、符号記憶のために
7ビットを必要とする。しかしながら、多くのパーソナ
ルコンピュータソフトウェアは、8ビット又は16ビッ
トプロセッサで作動するように書かれている。従って、
多くの新しいシステムが32ビットプロセッサを使用す
るとしても、多数の読取及び書込サイクルは、8又は1
6ビット動作として起こる。これらのサイクルはここで
は「部分書込サイクル」と称され、書込データのサイズ
は、最小ECCメモリ原子データユニットのサイズ(3
2ビット)より小さい。マイクロプロセッサが原子メモ
リユニットより小さい書込を実行する場合、メモリサブ
システムは、特別の読取−修正−書込(RMW)又は部
分書込サイクルを実行しなければならない。
【0007】RMWサイクルの間、CPUは、書き込む
データ及びデータを書き込むアドレスと共にバス定義信
号を伝送する。このようなバス定義信号は、32ビット
より小さいデータのための書込サイクルを示す。次に、
ECC訂正符号を伴う32ビットのデータは、このよう
なアドレスでメインメモリから読み取られる。書込むべ
きデータ(8、16又は32ビット)は、アドレス指定
された位置から読み取られた古いデータと併合され、新
しい32ビットワードを形成する。新しい32ビットワ
ード訂正符号が計算され、新しく得られた符号付き32
ビットワードがメインメモリへ書き込まれる。
データ及びデータを書き込むアドレスと共にバス定義信
号を伝送する。このようなバス定義信号は、32ビット
より小さいデータのための書込サイクルを示す。次に、
ECC訂正符号を伴う32ビットのデータは、このよう
なアドレスでメインメモリから読み取られる。書込むべ
きデータ(8、16又は32ビット)は、アドレス指定
された位置から読み取られた古いデータと併合され、新
しい32ビットワードを形成する。新しい32ビットワ
ード訂正符号が計算され、新しく得られた符号付き32
ビットワードがメインメモリへ書き込まれる。
【0008】関連訂正符号記憶情報を各原子メモリアド
レスに保持するために、このような複雑なサイクルが必
要とされる。ECCメモリシステムでは、部分書込サイ
クルが生じ、メモリコントローラが単一プロセッサ動作
のためにメインメモリ読取及びメインメモリ書込の双方
を実行しなければならない場合、書込サイクルの待ち時
間はより著しくなる。
レスに保持するために、このような複雑なサイクルが必
要とされる。ECCメモリシステムでは、部分書込サイ
クルが生じ、メモリコントローラが単一プロセッサ動作
のためにメインメモリ読取及びメインメモリ書込の双方
を実行しなければならない場合、書込サイクルの待ち時
間はより著しくなる。
【0009】要約すると、高速パーソナルコンピュータ
のシステム性能は、主に、書込サイクルがメインメモリ
へ生じる速度によって制限される。部分書込の大部分が
いつ発生しようと、これらの部分書込サイクルは比較的
長いサイクルなので、この制限はECCメモリを使用す
るシステムではより著しい。
のシステム性能は、主に、書込サイクルがメインメモリ
へ生じる速度によって制限される。部分書込の大部分が
いつ発生しようと、これらの部分書込サイクルは比較的
長いサイクルなので、この制限はECCメモリを使用す
るシステムではより著しい。
【0010】
【発明が解決しようとする課題】本発明の目的の1つ
は、パーソナルコンピュータシステムの性能を増大させ
るための改良型書込バッファを提供することである。
は、パーソナルコンピュータシステムの性能を増大させ
るための改良型書込バッファを提供することである。
【0011】本発明のもう1つの目的は、CPUバスに
見られる複数の書込サイクルをメモリバスに見られる単
一メモリサイクルへ圧縮する改良型書込バッファを提供
することである。
見られる複数の書込サイクルをメモリバスに見られる単
一メモリサイクルへ圧縮する改良型書込バッファを提供
することである。
【0012】更に、本発明のもう1つの目的は、ECC
メモリシステムに特に適する高速書込サイクル圧縮を提
供することである。
メモリシステムに特に適する高速書込サイクル圧縮を提
供することである。
【0013】
【課題を解決するための手段】上記目的を達成するため
に、本発明の第1の態様は、メモリと、前記メモリへそ
の動作を制御するために接続されたメモリコントローラ
と、前記メモリコントローラへ接続されたメモリコント
ローラバスと、ローカルバスと、前記ローカルバスへ接
続されたプロセッサと、を有するパーソナルコンピュー
タであって、前記プロセッサは連続ローカルバスサイク
ルで第1及び第2の部分書込サイクル要求を開始するよ
うに作動し、前記第1の部分書込サイクル要求は前記メ
モリに第1アドレスで書込むべき第1データを指定し、
前記第2の部分書込サイクル要求は前記メモリに前記第
1アドレスで書き込むべき第2データを指定する。更
に、パーソナルコンピュータは、前記ローカルバス及び
前記メモリコントローラバスへ接続された部分書込サイ
クル圧縮書込バッファを備えている。また、前記バッフ
ァは、前記メモリ内へ第1アドレスで書込むべき前記ロ
ーカルバスからのデータを受信及びバッファリングする
ための第1データバッファと、前記第1アドレスを記憶
するための第1アドレスバッファと、を備え、前記ロー
カルバスへ接続された第1バッファ手段を備える。更
に、前記バッファは、前記ローカルバスの前記第1及び
前記第2の部分書込要求の受信に応答して作動可能であ
り、前記データが前記メモリへ書き込まれる前にローカ
ルバスサイクルの完了を前記プロセッサへ確認し、前記
第1データ及び前記第2データを前記メモリに同時に書
込むために前記第1及び前記第2の部分書込サイクルを
単一メモリコントローラバス書込サイクルへ圧縮する制
御論理を備える。
に、本発明の第1の態様は、メモリと、前記メモリへそ
の動作を制御するために接続されたメモリコントローラ
と、前記メモリコントローラへ接続されたメモリコント
ローラバスと、ローカルバスと、前記ローカルバスへ接
続されたプロセッサと、を有するパーソナルコンピュー
タであって、前記プロセッサは連続ローカルバスサイク
ルで第1及び第2の部分書込サイクル要求を開始するよ
うに作動し、前記第1の部分書込サイクル要求は前記メ
モリに第1アドレスで書込むべき第1データを指定し、
前記第2の部分書込サイクル要求は前記メモリに前記第
1アドレスで書き込むべき第2データを指定する。更
に、パーソナルコンピュータは、前記ローカルバス及び
前記メモリコントローラバスへ接続された部分書込サイ
クル圧縮書込バッファを備えている。また、前記バッフ
ァは、前記メモリ内へ第1アドレスで書込むべき前記ロ
ーカルバスからのデータを受信及びバッファリングする
ための第1データバッファと、前記第1アドレスを記憶
するための第1アドレスバッファと、を備え、前記ロー
カルバスへ接続された第1バッファ手段を備える。更
に、前記バッファは、前記ローカルバスの前記第1及び
前記第2の部分書込要求の受信に応答して作動可能であ
り、前記データが前記メモリへ書き込まれる前にローカ
ルバスサイクルの完了を前記プロセッサへ確認し、前記
第1データ及び前記第2データを前記メモリに同時に書
込むために前記第1及び前記第2の部分書込サイクルを
単一メモリコントローラバス書込サイクルへ圧縮する制
御論理を備える。
【0014】また、本発明の第2の態様は、少なくとも
4バイトの情報をそれぞれが含む複数のアドレッサブル
位置に情報を記憶するためのメモリと、前記メモリへそ
の動作を制御するために接続されたメモリコントローラ
と、前記メモリコントローラへ接続されたメモリコント
ローラバスと、各書込サイクルで1から4バイトの情報
を転送するために少なくとも4バイトの幅を有するロー
カルアドレスバス、ローカル制御バス及びローカルデー
タバスを含むローカルバスと、前記ローカルバスへ接続
されたプロセッサと、を有するパーソナルコンピュータ
であって、前記プロセッサは連続ローカルバスサイクル
で第1及び第2の部分書込サイクル要求を開始するよう
に作動し、前記第1の部分書込サイクル要求は前記メモ
リに第1アドレスで書込むべき第1データを指定し、前
記第2の部分書込サイクル要求は前記メモリに前記第1
アドレスで書き込むべき第2データを指定し、前記第1
データは1又は2バイトを有し、前記第2データは1又
は2バイトを有し、前記プロセッサは転送されている各
バイトを定義するバイト有効化信号を各部分書込要求に
おいて前記ローカルアドレスバスで表明する。更に、パ
ーソナルコンピュータは、前記ローカルバス及び前記メ
モリコントローラバスへ接続された部分書込サイクル圧
縮書込バッファを備えている。また、前記バッファは、
LATCH信号に応答して前記第1データを選択的に受
信及びバッファリングするため、及びCOMP・BUF
F制御信号に応答して前記第2データを第1データバッ
ファにバッファリングされた前記第1データと併合する
ために、前記ローカルデータバスへ接続された第1デー
タバッファと、前記第1メモリアドレス及び前記バイト
有効化信号を選択的に受信及びバッファリングするため
に前記第1アドレスを記憶するために前記ローカルアド
レスバスへ接続された第1アドレスバッファと、を備
え、前記ローカルバスへ接続された第1バッファ手段を
備える。更に、前記バッファは、前記ローカルアドレス
バス及び前記第1アドレスバッファへ接続され、前記第
1アドレスバッファにバッファリングされたアドレスと
前記第2の部分書込サイクル要求の前記ローカルバスの
アドレスとを比較するよう作動し、比較されている2つ
のアドレスが同一である場合にMATCH信号を発生す
るコンパレータと、前記第1バッファ手段、前記ローカ
ルバス、及び前記メモリコントローラバスへ接続された
制御論理と、を備える。また、前記制御論理は、前記第
1の部分書込要求に応答して前記LATCH信号を発生
し、前記MATCH信号に応答して前記COMP・BU
FF信号を発生し、前記第1データ及び前記第2データ
が前記メモリへ書き込まれる前に、各要求からのデータ
が前記第1データバッファに記憶された後、前記第1及
び第2の要求のそれぞれが完了したことを前記プロセッ
サへ表示する確認信号を前記プロセッサへ伝送し、前記
第1及び第2データを前記メモリに同時に書き込むため
に前記第1及び前記第2の部分書込サイクルを単一メモ
リコントローラバス書込サイクルへ圧縮するように作動
可能である。
4バイトの情報をそれぞれが含む複数のアドレッサブル
位置に情報を記憶するためのメモリと、前記メモリへそ
の動作を制御するために接続されたメモリコントローラ
と、前記メモリコントローラへ接続されたメモリコント
ローラバスと、各書込サイクルで1から4バイトの情報
を転送するために少なくとも4バイトの幅を有するロー
カルアドレスバス、ローカル制御バス及びローカルデー
タバスを含むローカルバスと、前記ローカルバスへ接続
されたプロセッサと、を有するパーソナルコンピュータ
であって、前記プロセッサは連続ローカルバスサイクル
で第1及び第2の部分書込サイクル要求を開始するよう
に作動し、前記第1の部分書込サイクル要求は前記メモ
リに第1アドレスで書込むべき第1データを指定し、前
記第2の部分書込サイクル要求は前記メモリに前記第1
アドレスで書き込むべき第2データを指定し、前記第1
データは1又は2バイトを有し、前記第2データは1又
は2バイトを有し、前記プロセッサは転送されている各
バイトを定義するバイト有効化信号を各部分書込要求に
おいて前記ローカルアドレスバスで表明する。更に、パ
ーソナルコンピュータは、前記ローカルバス及び前記メ
モリコントローラバスへ接続された部分書込サイクル圧
縮書込バッファを備えている。また、前記バッファは、
LATCH信号に応答して前記第1データを選択的に受
信及びバッファリングするため、及びCOMP・BUF
F制御信号に応答して前記第2データを第1データバッ
ファにバッファリングされた前記第1データと併合する
ために、前記ローカルデータバスへ接続された第1デー
タバッファと、前記第1メモリアドレス及び前記バイト
有効化信号を選択的に受信及びバッファリングするため
に前記第1アドレスを記憶するために前記ローカルアド
レスバスへ接続された第1アドレスバッファと、を備
え、前記ローカルバスへ接続された第1バッファ手段を
備える。更に、前記バッファは、前記ローカルアドレス
バス及び前記第1アドレスバッファへ接続され、前記第
1アドレスバッファにバッファリングされたアドレスと
前記第2の部分書込サイクル要求の前記ローカルバスの
アドレスとを比較するよう作動し、比較されている2つ
のアドレスが同一である場合にMATCH信号を発生す
るコンパレータと、前記第1バッファ手段、前記ローカ
ルバス、及び前記メモリコントローラバスへ接続された
制御論理と、を備える。また、前記制御論理は、前記第
1の部分書込要求に応答して前記LATCH信号を発生
し、前記MATCH信号に応答して前記COMP・BU
FF信号を発生し、前記第1データ及び前記第2データ
が前記メモリへ書き込まれる前に、各要求からのデータ
が前記第1データバッファに記憶された後、前記第1及
び第2の要求のそれぞれが完了したことを前記プロセッ
サへ表示する確認信号を前記プロセッサへ伝送し、前記
第1及び第2データを前記メモリに同時に書き込むため
に前記第1及び前記第2の部分書込サイクルを単一メモ
リコントローラバス書込サイクルへ圧縮するように作動
可能である。
【0015】
【作用】本発明は、パーソナルコンピュータマイクロプ
ロセッサの傾向を利用して、CPUローカルバスで見ら
れるように、密接に関連するメモリアドレスへの多数の
順次書込サイクルを発行する。パーソナルコンピュータ
システムのルーチン動作中には、多数の連続部分書込サ
イクルが順次アドレスに対して行われる多くの状態が存
在する。例えば、プログラムサブルーチンエントリの状
態では、多くのプログラム環境パラメータは、後でリコ
ールされるように記憶され(メモリに書き込まれ)なけ
ればならない。これらの書込は、一般的には、この目的
のために予約されたメモリの特定領域に記憶される。連
続順次書込サイルが生じるもう1つの典型的な状態は、
原稿又はスプレッドシートデータが記憶される場合等、
データフィールドが保存される場合である。
ロセッサの傾向を利用して、CPUローカルバスで見ら
れるように、密接に関連するメモリアドレスへの多数の
順次書込サイクルを発行する。パーソナルコンピュータ
システムのルーチン動作中には、多数の連続部分書込サ
イクルが順次アドレスに対して行われる多くの状態が存
在する。例えば、プログラムサブルーチンエントリの状
態では、多くのプログラム環境パラメータは、後でリコ
ールされるように記憶され(メモリに書き込まれ)なけ
ればならない。これらの書込は、一般的には、この目的
のために予約されたメモリの特定領域に記憶される。連
続順次書込サイルが生じるもう1つの典型的な状態は、
原稿又はスプレッドシートデータが記憶される場合等、
データフィールドが保存される場合である。
【0016】8ビット又は16ビットパーソナルコンピ
ュータシステムで実行することが意図される書込サイク
ルを生成するプログラムは、32ビット又はそれ以上の
データ幅のマイクロプロセッサで実行されることができ
る。このようなプログラムの実行は、結果的に、8ビッ
ト又は16ビット幅の多数の書込サイクルがより広いC
PUローカルバスで生じることになる。これらのサイク
ルがECCメモリサブシステムで発生すると、これらは
結果的に、前述の読取−修正−書込(部分書込)メモリ
動作となる。
ュータシステムで実行することが意図される書込サイク
ルを生成するプログラムは、32ビット又はそれ以上の
データ幅のマイクロプロセッサで実行されることができ
る。このようなプログラムの実行は、結果的に、8ビッ
ト又は16ビット幅の多数の書込サイクルがより広いC
PUローカルバスで生じることになる。これらのサイク
ルがECCメモリサブシステムで発生すると、これらは
結果的に、前述の読取−修正−書込(部分書込)メモリ
動作となる。
【0017】本発明によると、部分書込サイクルの実行
は、与えられた原子メモリユニットの2つの異なるサブ
ユニットへの2つの連続書込サイクルを、単一原子メモ
リアドレスへの単一書込アクセスへ圧縮することによっ
て高速化されることができる。CPUローカルバスに見
られるように、結果的にDRAMメモリで見られる単一
読取−修正−書込又は単一書込アクセスになる2つのこ
のようなマイクロプロセッサアクセスは、圧縮されると
言える。「圧縮」とは、特定のデータフィールドの修正
とは反対に、あるバスでの多数のバス動作を他のバスで
のより少ない数のバス動作へ結合させることを言う。例
えば、マイクロプロセッサからの16ビット書込の後、
同一アドレスへの他の16ビット書込が続くとすると、
2つの書込サイクルは圧縮されて1つの32ビットメモ
リ書込を形成することができる。これは、2つの読取−
修正−書込サイクルである(2つの読取及び2つの書込
動作としてメモリで前記に見られたような)2つの部分
書込サイクルを、メモリでの1つの読取−修正−書込サ
イクルへ変える。同様に、4つの8ビット部分書込は、
1つの32ビット書込へ変換されることができる。
は、与えられた原子メモリユニットの2つの異なるサブ
ユニットへの2つの連続書込サイクルを、単一原子メモ
リアドレスへの単一書込アクセスへ圧縮することによっ
て高速化されることができる。CPUローカルバスに見
られるように、結果的にDRAMメモリで見られる単一
読取−修正−書込又は単一書込アクセスになる2つのこ
のようなマイクロプロセッサアクセスは、圧縮されると
言える。「圧縮」とは、特定のデータフィールドの修正
とは反対に、あるバスでの多数のバス動作を他のバスで
のより少ない数のバス動作へ結合させることを言う。例
えば、マイクロプロセッサからの16ビット書込の後、
同一アドレスへの他の16ビット書込が続くとすると、
2つの書込サイクルは圧縮されて1つの32ビットメモ
リ書込を形成することができる。これは、2つの読取−
修正−書込サイクルである(2つの読取及び2つの書込
動作としてメモリで前記に見られたような)2つの部分
書込サイクルを、メモリでの1つの読取−修正−書込サ
イクルへ変える。同様に、4つの8ビット部分書込は、
1つの32ビット書込へ変換されることができる。
【0018】好ましい実施例では、原子メモリ記憶ユニ
ットは32ビットである。「同一アドレス」という用語
は、ここでは、メモリ内の特定の32ビット記憶位置を
参照するアドレスを意味するために使用される。各32
ビット位置は4つの異なるデータバイトを含む。これら
の4つの異なるデータバイトは、例えば、4つの別々の
バイト動作として、単一のダブルバイト及び2つの単一
バイト動作として、2つの別々のダブルバイト動作とし
て、あるいは単一の32ビットダブルワードとして、ア
クセスされることができる。好ましい実施例でマイクロ
プロセッサにより開始されるメモリアクセスは、32ビ
ットアドレスフィールド、32ビットデータフィールド
及び制御フィールドから成る。このアドレスフィールド
は、4つのバイト有効化(エネーブル)ラインを部分的
に含む。バイトは、8ビットデータフィールドを指す。
アクティブである場合、これらのバイト有効化は、与え
られたバスアクセス上の4つのバイトのどれがシステム
マイクロプロセッサによりアクティブであると指定され
たかを示す。与えられたサイクル上で、1つ又はそれ以
上のこれらのバイト有効化がアクティブである。
ットは32ビットである。「同一アドレス」という用語
は、ここでは、メモリ内の特定の32ビット記憶位置を
参照するアドレスを意味するために使用される。各32
ビット位置は4つの異なるデータバイトを含む。これら
の4つの異なるデータバイトは、例えば、4つの別々の
バイト動作として、単一のダブルバイト及び2つの単一
バイト動作として、2つの別々のダブルバイト動作とし
て、あるいは単一の32ビットダブルワードとして、ア
クセスされることができる。好ましい実施例でマイクロ
プロセッサにより開始されるメモリアクセスは、32ビ
ットアドレスフィールド、32ビットデータフィールド
及び制御フィールドから成る。このアドレスフィールド
は、4つのバイト有効化(エネーブル)ラインを部分的
に含む。バイトは、8ビットデータフィールドを指す。
アクティブである場合、これらのバイト有効化は、与え
られたバスアクセス上の4つのバイトのどれがシステム
マイクロプロセッサによりアクティブであると指定され
たかを示す。与えられたサイクル上で、1つ又はそれ以
上のこれらのバイト有効化がアクティブである。
【0019】ECCメモリを使用するシステムでは、メ
モリコントローラが遊休であると仮定すると、マイクロ
プロセッサにより発行される部分書込サイクルは、結果
的にメモリでのRMWサイクルになる。メモリコントロ
ーラは、要求されるアドレスへの読取アクセスを開始す
ることによって始まる。この読取サイクルが生じると同
時に、RMWサイクルの読取部分の時間が終了するま
で、同一アドレスへの次の部分書込は圧縮されることが
できる。これは、2つの16ビットRMWサイクルを1
つのRMWサイクルへ変えることができる。あるいは、
4つの8ビットRMWサイクル1つのRMWサイクルへ
変えることができる。
モリコントローラが遊休であると仮定すると、マイクロ
プロセッサにより発行される部分書込サイクルは、結果
的にメモリでのRMWサイクルになる。メモリコントロ
ーラは、要求されるアドレスへの読取アクセスを開始す
ることによって始まる。この読取サイクルが生じると同
時に、RMWサイクルの読取部分の時間が終了するま
で、同一アドレスへの次の部分書込は圧縮されることが
できる。これは、2つの16ビットRMWサイクルを1
つのRMWサイクルへ変えることができる。あるいは、
4つの8ビットRMWサイクル1つのRMWサイクルへ
変えることができる。
【0020】簡潔に言うと、本発明によれば、書込バッ
ファはCPUバス及びメモリコントローラへ接続され、
複数の部分書込要求によりデータ、アドレス及び制御情
報がバッファリングされる書込サイクル圧縮を提供す
る。書込完了を示す信号は、各要求毎にCPUへ戻され
る。書込バッファは、同一アドレスへの複数の要求を、
複数の要求から併合されたデータを含む単一メモリ書込
動作へ圧縮する。
ファはCPUバス及びメモリコントローラへ接続され、
複数の部分書込要求によりデータ、アドレス及び制御情
報がバッファリングされる書込サイクル圧縮を提供す
る。書込完了を示す信号は、各要求毎にCPUへ戻され
る。書込バッファは、同一アドレスへの複数の要求を、
複数の要求から併合されたデータを含む単一メモリ書込
動作へ圧縮する。
【0021】
【実施例】パーソナルコンピュータシステム まず図1を参照すると、パーソナルコンピュータシステ
ム100は、上記関連出願に開示されたシステムと実質
的に同一である。システム100は、適切なエンクロー
ジャ又はケーシング103を有するシステムユニット1
02と、モニタ104(従来のビデオディスプレイ等)
と、キーボード110と、任意のマウス112と、任意
のプリンタ114と、を備える。最後に、システムユニ
ット102は、ディスケットドライブ108及びハード
ディスクドライブ(ハードファイル)106等の1つ又
はそれ以上の大容量記憶装置を有することができる。
ム100は、上記関連出願に開示されたシステムと実質
的に同一である。システム100は、適切なエンクロー
ジャ又はケーシング103を有するシステムユニット1
02と、モニタ104(従来のビデオディスプレイ等)
と、キーボード110と、任意のマウス112と、任意
のプリンタ114と、を備える。最後に、システムユニ
ット102は、ディスケットドライブ108及びハード
ディスクドライブ(ハードファイル)106等の1つ又
はそれ以上の大容量記憶装置を有することができる。
【0022】ケーシング103は、平面ボード300及
びプロセッサカード400(その詳細は図2及び図3に
示される)を収容する。平面ボード300はプリント回
路ボード(PCB)301を備え、その上には、PCB
に配線又は回路により相互接続された種々の構成要素が
取付けられる。このような構成要素には電気コネクタ3
02が含まれ、プロセッサカード400のエッジ416
は、プロセッサカード400を平面ボード300へ取外
し可能に取付けて電気接続するため、電気コネクタ30
2へ差し込まれる。また複数の単一インラインメモリモ
ジュール(SIMM)コネクタ306は、システムのメ
インメモリ又はRAMを形成するメモリバンク308
A、308Bへの接続のためPCB301上に取付けら
れる。また、1つ又はそれ以上のI/Oバス又は拡張コ
ネクタ232は、パーソナルコンピュータシステム10
0へ付加される又は組み込まれる異なる拡張アダプタ及
びオプションへの接続のため、PCB301上に取付け
られる。例えば、固定ディスクドライブ106は、コネ
クタ232へ接続されるディスクコントローラを有する
アダプタカード(図示せず)へ接続されることができ
る。
びプロセッサカード400(その詳細は図2及び図3に
示される)を収容する。平面ボード300はプリント回
路ボード(PCB)301を備え、その上には、PCB
に配線又は回路により相互接続された種々の構成要素が
取付けられる。このような構成要素には電気コネクタ3
02が含まれ、プロセッサカード400のエッジ416
は、プロセッサカード400を平面ボード300へ取外
し可能に取付けて電気接続するため、電気コネクタ30
2へ差し込まれる。また複数の単一インラインメモリモ
ジュール(SIMM)コネクタ306は、システムのメ
インメモリ又はRAMを形成するメモリバンク308
A、308Bへの接続のためPCB301上に取付けら
れる。また、1つ又はそれ以上のI/Oバス又は拡張コ
ネクタ232は、パーソナルコンピュータシステム10
0へ付加される又は組み込まれる異なる拡張アダプタ及
びオプションへの接続のため、PCB301上に取付け
られる。例えば、固定ディスクドライブ106は、コネ
クタ232へ接続されるディスクコントローラを有する
アダプタカード(図示せず)へ接続されることができ
る。
【0023】また、平面ボード300には、キーボード
及びマウスコネクタ278及び280へ接続された割込
みコントローラ254及びキーボード/マウスコントロ
ーラ244と、ディスケットコネクタ282へ接続され
たディスケットコントローラ又はアダプタ246と、種
々のI/O装置がシステムへ接続されるようにする直列
及び並列コネクタ276、274へ接続された直列及び
並列アダプタ240、238と、が取付けられる。シス
テム電源コネクタ205は、システムへ必要な電力を供
給する電源ユニット(図示せず)への接続のために、P
CB301上に取付けられる。また、不揮発性メモリ
(NVRAM)248及び時刻クロック/CMOS・R
AM250もPCB301上に取付けられる。また、P
CB301には、タイミング信号を提供するための種々
の発振器(図示せず)と、回路のセクションを周知の方
法で分離するためのバッファ342(全部は図示せず)
と、が取付けられる。
及びマウスコネクタ278及び280へ接続された割込
みコントローラ254及びキーボード/マウスコントロ
ーラ244と、ディスケットコネクタ282へ接続され
たディスケットコントローラ又はアダプタ246と、種
々のI/O装置がシステムへ接続されるようにする直列
及び並列コネクタ276、274へ接続された直列及び
並列アダプタ240、238と、が取付けられる。シス
テム電源コネクタ205は、システムへ必要な電力を供
給する電源ユニット(図示せず)への接続のために、P
CB301上に取付けられる。また、不揮発性メモリ
(NVRAM)248及び時刻クロック/CMOS・R
AM250もPCB301上に取付けられる。また、P
CB301には、タイミング信号を提供するための種々
の発振器(図示せず)と、回路のセクションを周知の方
法で分離するためのバッファ342(全部は図示せず)
と、が取付けられる。
【0024】PCB301の配線は図面に示される種々
の構成要素を相互接続し、メモリバス310(ライン3
24〜338を含む)と、チャネルバス312(アドレ
スバス322、データバス320及び制御バス318を
含む)と、割込みライン314、316を含む雑信号ラ
インと、の3つに分類される。これらは全て、コネクタ
302、416を介してPCB401上の対の配線へ接
続される。平面機能バス319は、バス312から引か
れている。
の構成要素を相互接続し、メモリバス310(ライン3
24〜338を含む)と、チャネルバス312(アドレ
スバス322、データバス320及び制御バス318を
含む)と、割込みライン314、316を含む雑信号ラ
インと、の3つに分類される。これらは全て、コネクタ
302、416を介してPCB401上の対の配線へ接
続される。平面機能バス319は、バス312から引か
れている。
【0025】図3を参照すると、プロセッサカード40
0は、プロセッサ202と、直接メモリアクセス(DM
A)制御ユニット220と、マイクロチャネル制御及び
バッファ414と、圧縮書込バッファ410と、デュア
ルポートメモリ制御ユニット又はコントローラ256
と、ファームウェアサブシステム242と、パリティ/
ECC検査ユニット402、404と、を含む複数の構
成要素が取付けられたプリント回路ボード(PCB)4
01を備える。プロセッサ202は、Intel804
86マイクロプロセッサ等、32ビットデータパスを有
し、32ビットアドレッシング能力を提供する高性能型
であるのが好ましい。もちろん、Intel80386
等のプロセッサを使用することもできる。残りの構成要
素は,このようなプロセッサとの互換性に対して従来の
ように選択される。上記構成要素は全て、エッジコネク
タ416で終端するPCB401のプリント配線回路に
より適切に相互に電気接続される。エッジコネクタ41
6は通常、平面ボード300とプロセッサカード400
とが電気的及び機械的に相互接続され、互いに実質的に
垂直に向けられた平面に納まるように、図2に示される
平面ボード300のエッジコネクタ302へ差し込まれ
る。
0は、プロセッサ202と、直接メモリアクセス(DM
A)制御ユニット220と、マイクロチャネル制御及び
バッファ414と、圧縮書込バッファ410と、デュア
ルポートメモリ制御ユニット又はコントローラ256
と、ファームウェアサブシステム242と、パリティ/
ECC検査ユニット402、404と、を含む複数の構
成要素が取付けられたプリント回路ボード(PCB)4
01を備える。プロセッサ202は、Intel804
86マイクロプロセッサ等、32ビットデータパスを有
し、32ビットアドレッシング能力を提供する高性能型
であるのが好ましい。もちろん、Intel80386
等のプロセッサを使用することもできる。残りの構成要
素は,このようなプロセッサとの互換性に対して従来の
ように選択される。上記構成要素は全て、エッジコネク
タ416で終端するPCB401のプリント配線回路に
より適切に相互に電気接続される。エッジコネクタ41
6は通常、平面ボード300とプロセッサカード400
とが電気的及び機械的に相互接続され、互いに実質的に
垂直に向けられた平面に納まるように、図2に示される
平面ボード300のエッジコネクタ302へ差し込まれ
る。
【0026】PCB401の配線回路は、それぞれ42
0、422及び424で示されるデータ、アドレス及び
制御ライン又はバスを含むローカル又はCPUバス41
8を含む。これらは、プロセッサ202と、ファームウ
ェアサブシステム242、ローカルI/Oポート248
及び書込バッファ410と、を相互接続する。残りの回
路ラインには、一般的に、割込みライン316と、シス
テムバスライン434と、バッファ410及びコントロ
ーラ256及び論理402、404間に接続されたメモ
リコントローラバスライン432と、チャネルバスライ
ン312と、メモリバスライン310と、が含まれる。
チャネルバスライン312は、制御バスライン318、
データバスライン320及びアドレスバスライン322
を含む。メモリバスライン310は、多重化メモリアド
レスライン324、332と、メモリバンク308A、
308Bのための行アドレスストローブ(RAS)ライ
ン328、336と、列アドレスストローブ(CAS)
ライン338と、データバスA及びBライン326及び
334と、を含む。発振器207は、コンピュータシス
テム100へ適切なクロック信号を提供するために図示
されるように接続される。簡単にするため、リセット、
アース、パワーオン等の雑ラインは、図2及び図3では
省略されている。また、これらの図面に示される残りの
要素は、関連出願に説明されているように作動するの
で、その詳細は関連出願を参照されたい。上記に説明さ
れたシステム100は、圧縮書込バッファ410を除い
て、上記関連出願に開示されたものと同一であることが
わかる。
0、422及び424で示されるデータ、アドレス及び
制御ライン又はバスを含むローカル又はCPUバス41
8を含む。これらは、プロセッサ202と、ファームウ
ェアサブシステム242、ローカルI/Oポート248
及び書込バッファ410と、を相互接続する。残りの回
路ラインには、一般的に、割込みライン316と、シス
テムバスライン434と、バッファ410及びコントロ
ーラ256及び論理402、404間に接続されたメモ
リコントローラバスライン432と、チャネルバスライ
ン312と、メモリバスライン310と、が含まれる。
チャネルバスライン312は、制御バスライン318、
データバスライン320及びアドレスバスライン322
を含む。メモリバスライン310は、多重化メモリアド
レスライン324、332と、メモリバンク308A、
308Bのための行アドレスストローブ(RAS)ライ
ン328、336と、列アドレスストローブ(CAS)
ライン338と、データバスA及びBライン326及び
334と、を含む。発振器207は、コンピュータシス
テム100へ適切なクロック信号を提供するために図示
されるように接続される。簡単にするため、リセット、
アース、パワーオン等の雑ラインは、図2及び図3では
省略されている。また、これらの図面に示される残りの
要素は、関連出願に説明されているように作動するの
で、その詳細は関連出願を参照されたい。上記に説明さ
れたシステム100は、圧縮書込バッファ410を除い
て、上記関連出願に開示されたものと同一であることが
わかる。
【0027】図2及び図3に示される論理は、ECC又
はパリティDRAMメモリ装置をSIMMソケット30
8A、308Bで支援する。ECCモードでは、メモリ
サイクルはデータ読取又は書込要求としてプロセッサ2
02で起動する。読取要求の場合、CPU202は、メ
モリ制御ユニット256へ(以下に説明される410の
高速パスを介して)、データ読取メモリサイクルが所望
されたという信号を送る。ユニット256は、次に、3
24、332、328、336、及び338で適切なD
RAM制御信号を発生し、原子メモリユニットの読取を
作成し、アドレスに依存してメモリデータバス326又
は334に現れる。バス334のメモリデータは、例え
ば、32データビット及び7ECC検査ビットを含む。
ユニット404はこれらの39ビットを周知の方法で処
理し、始めのバス334のデータに対して検査されて単
一ビットエラー(バス334のうちの1つ)が訂正され
た32有効データビットを、バス432のデータ部分に
与える。訂正されたデータは、次に、バス420を介し
てCPU202へ戻される。
はパリティDRAMメモリ装置をSIMMソケット30
8A、308Bで支援する。ECCモードでは、メモリ
サイクルはデータ読取又は書込要求としてプロセッサ2
02で起動する。読取要求の場合、CPU202は、メ
モリ制御ユニット256へ(以下に説明される410の
高速パスを介して)、データ読取メモリサイクルが所望
されたという信号を送る。ユニット256は、次に、3
24、332、328、336、及び338で適切なD
RAM制御信号を発生し、原子メモリユニットの読取を
作成し、アドレスに依存してメモリデータバス326又
は334に現れる。バス334のメモリデータは、例え
ば、32データビット及び7ECC検査ビットを含む。
ユニット404はこれらの39ビットを周知の方法で処
理し、始めのバス334のデータに対して検査されて単
一ビットエラー(バス334のうちの1つ)が訂正され
た32有効データビットを、バス432のデータ部分に
与える。訂正されたデータは、次に、バス420を介し
てCPU202へ戻される。
【0028】部分書込サイクルの場合、CPU202は
32ビットより小さいデータ書込サイクルを起動する。
このようなサイクルでは、有効データバイトは、バス4
20及びバッファ410を介して回路402、404へ
与えられる。メモリ制御ユニット256はこのとき、部
分書込が要求されたことを認識し、RMWサイクルを開
始する。全原子ユニットが402、404へ読み込まれ
る。326、334からのメモリデータを必要に応じて
検査及び訂正した後、論理402又は404は、バス4
32からの有効CPUバイトを残りの有効メモリデータ
と併合する。次に、論理404は新しい7ビット検査符
号を発生し、併合されたデータと共にバス334で与え
る。ユニット256は、次に、全39ビットをDRAM
へ書込むために要求されたDRAM制御信号を発生す
る。
32ビットより小さいデータ書込サイクルを起動する。
このようなサイクルでは、有効データバイトは、バス4
20及びバッファ410を介して回路402、404へ
与えられる。メモリ制御ユニット256はこのとき、部
分書込が要求されたことを認識し、RMWサイクルを開
始する。全原子ユニットが402、404へ読み込まれ
る。326、334からのメモリデータを必要に応じて
検査及び訂正した後、論理402又は404は、バス4
32からの有効CPUバイトを残りの有効メモリデータ
と併合する。次に、論理404は新しい7ビット検査符
号を発生し、併合されたデータと共にバス334で与え
る。ユニット256は、次に、全39ビットをDRAM
へ書込むために要求されたDRAM制御信号を発生す
る。
【0029】圧縮書込バッファリング 圧縮書込バッファ410は、一方の面がローカルバス4
18へ接続され、第2面がメモリ制御バス432へ接続
される。これにより、バッファ410は、バス418及
び432によってプロセッサ202及びコントローラ2
56間に接続される。圧縮書込バッファ410は、複数
の単一書込バッファ630、631(図5)を含む。こ
れらは全く同じなので、1つについてだけ詳細に説明す
れば十分である。図4を参照すると、単一書込バッファ
BUFF0は、3つの一次ラッチングバッファ、即ち、
アドレスバッファ501、データバッファ503及び制
御バッファ507を備える。これらの3つのバッファは
それぞれ、ローカルアドレスバス422、ローカルデー
タバス420及びローカル制御バス424からそれぞれ
送られるローカルバスアドレス、ローカルバスデータ及
びローカルバス制御信号をラッチングするのに十分な幅
を有する。これらのラッチングバッファの出力又はラッ
チ側は、バス510、513及び517によってマルチ
プレクサ(MUX)502、505及び509の第1入
力へ接続される。複数の高速パスバス422F、420
F、424Fは、バッファ501、503及び507を
バイパスして、マルチプレクサの第2入力へ接続され
る。マルチプレクサは、バッファバス523へ接続され
た出力を有する。マルチプレクサは、2つの入力バスの
うちのいずれかの信号を選択して出力へ与える。この選
択は、ライン525の制御信号の状態に従って行われ
る。バイパス通路の選択は、書込バッファラッチが使用
されない読取サイクルにおいて、バス情報をバス523
を越えてメモリコントローラバス432へ迅速に伝送す
るために使用される。書込サイクルの間、ライン525
の信号は、バッファをコントローラバスへ接続すること
により圧縮を可能にするために使用される。バッファ5
01、503、507のラッチングは、ライン520の
ラッチ制御信号LATCH・BUFF0により制御され
る。バス510へ接続されるバス529は、バッファ5
10にラッチングされたアドレスBUFF0・ADDR
を供給する。更に、制御ライン524は、併合されるべ
きバイトを識別するバイト有効化信号CPUBE$に従
って部分書込のデータをバッファ503内に既にあるデ
ータへ併合させる制御信号COMP・BUFF0を伝送
するために、データバッファ503へ接続される。
18へ接続され、第2面がメモリ制御バス432へ接続
される。これにより、バッファ410は、バス418及
び432によってプロセッサ202及びコントローラ2
56間に接続される。圧縮書込バッファ410は、複数
の単一書込バッファ630、631(図5)を含む。こ
れらは全く同じなので、1つについてだけ詳細に説明す
れば十分である。図4を参照すると、単一書込バッファ
BUFF0は、3つの一次ラッチングバッファ、即ち、
アドレスバッファ501、データバッファ503及び制
御バッファ507を備える。これらの3つのバッファは
それぞれ、ローカルアドレスバス422、ローカルデー
タバス420及びローカル制御バス424からそれぞれ
送られるローカルバスアドレス、ローカルバスデータ及
びローカルバス制御信号をラッチングするのに十分な幅
を有する。これらのラッチングバッファの出力又はラッ
チ側は、バス510、513及び517によってマルチ
プレクサ(MUX)502、505及び509の第1入
力へ接続される。複数の高速パスバス422F、420
F、424Fは、バッファ501、503及び507を
バイパスして、マルチプレクサの第2入力へ接続され
る。マルチプレクサは、バッファバス523へ接続され
た出力を有する。マルチプレクサは、2つの入力バスの
うちのいずれかの信号を選択して出力へ与える。この選
択は、ライン525の制御信号の状態に従って行われ
る。バイパス通路の選択は、書込バッファラッチが使用
されない読取サイクルにおいて、バス情報をバス523
を越えてメモリコントローラバス432へ迅速に伝送す
るために使用される。書込サイクルの間、ライン525
の信号は、バッファをコントローラバスへ接続すること
により圧縮を可能にするために使用される。バッファ5
01、503、507のラッチングは、ライン520の
ラッチ制御信号LATCH・BUFF0により制御され
る。バス510へ接続されるバス529は、バッファ5
10にラッチングされたアドレスBUFF0・ADDR
を供給する。更に、制御ライン524は、併合されるべ
きバイトを識別するバイト有効化信号CPUBE$に従
って部分書込のデータをバッファ503内に既にあるデ
ータへ併合させる制御信号COMP・BUFF0を伝送
するために、データバッファ503へ接続される。
【0030】図5は、圧縮書込バッファ410の完全な
実施例のブロック図を示す。2つの単一書込バッファ6
30及び631は、ローカルバス418及びMUX63
4へ並列に接続される。また、バッファ630及び63
1はBUFF0及びBUFF1と称され、各バッファは
図4のBUFF0と同一である。勿論、任意の数N個の
個々のバッファを使用できる。また、MUX634は、
どのバッファがバス432へ接続されるかを定義する制
御信号を受信するために、ライン625により論理62
9へ接続された制御入力を有する。MUX634の出力
はメモリ制御バス432へ接続される。ライン625の
制御信号は、バッファ630又はバッファ631の何方
かをバス432へ選択的に接続するように作動する。バ
ッファ630及び631を並列に接続することにより、
各バッファはCPUバスをモニタできる。圧縮の間、命
令は連続的である必要はない。バッファは、並列構造の
他のバッファと比較されることができる。従って、圧縮
は非連続的な書込で行われる。
実施例のブロック図を示す。2つの単一書込バッファ6
30及び631は、ローカルバス418及びMUX63
4へ並列に接続される。また、バッファ630及び63
1はBUFF0及びBUFF1と称され、各バッファは
図4のBUFF0と同一である。勿論、任意の数N個の
個々のバッファを使用できる。また、MUX634は、
どのバッファがバス432へ接続されるかを定義する制
御信号を受信するために、ライン625により論理62
9へ接続された制御入力を有する。MUX634の出力
はメモリ制御バス432へ接続される。ライン625の
制御信号は、バッファ630又はバッファ631の何方
かをバス432へ選択的に接続するように作動する。バ
ッファ630及び631を並列に接続することにより、
各バッファはCPUバスをモニタできる。圧縮の間、命
令は連続的である必要はない。バッファは、並列構造の
他のバッファと比較されることができる。従って、圧縮
は非連続的な書込で行われる。
【0031】ドライバ645は、バス432へ接続され
た入力と,バス418へ接続された出力と、を有し、メ
モリコントローラの出力がローカルバス418上へ駆動
されるためのパスを提供する。ここで、バス418及び
432はいずれも双方向性である。ドライバ645は明
確な書込圧縮機能を有しない。ドライバ645はライン
644で伝送される制御信号により論理629の制御の
下で作動される。
た入力と,バス418へ接続された出力と、を有し、メ
モリコントローラの出力がローカルバス418上へ駆動
されるためのパスを提供する。ここで、バス418及び
432はいずれも双方向性である。ドライバ645は明
確な書込圧縮機能を有しない。ドライバ645はライン
644で伝送される制御信号により論理629の制御の
下で作動される。
【0032】コンパレータ(CMP)633は、バッフ
ァ630及び631のラッチアドレス部分へそれぞれ接
続される。更に、コンパレータは、ローカルアドレスバ
ス422へ接続される。コンパレータ633の機能は、
422の現在のローカルアドレスをBUFF0及びBU
FF1のラッチアドレスと比較することである。次に、
コンパレータは、2つの出力、即ち、ローカルアドレス
及びラッチBUFF0アドレス間の整合を示すMATC
H0と、ローカルアドレス及びラッチBUFF1間の整
合を示すMATCH1と、を提供する。このような信号
は、ライン627及び628で制御論理629へ供給さ
れる。次に、制御論理629は、現在のサイクルが現存
のバッファ式サイクルと併合され得るかどうかを決定す
る。もし併合されるなら、整合バッファのデータを併合
するためにCOMP・BUFF0又はCOMP・BUF
F1を発生する。整合しない場合には、制御論理629
はメモリコントローラへのサイクル動作の全体のシーケ
ンスも決定する。制御論理629は、バス432に正し
いサイクル情報を与えるために、トライステート(tris
tate)ライン625の制御信号によってマルチプレクサ
634を制御する。
ァ630及び631のラッチアドレス部分へそれぞれ接
続される。更に、コンパレータは、ローカルアドレスバ
ス422へ接続される。コンパレータ633の機能は、
422の現在のローカルアドレスをBUFF0及びBU
FF1のラッチアドレスと比較することである。次に、
コンパレータは、2つの出力、即ち、ローカルアドレス
及びラッチBUFF0アドレス間の整合を示すMATC
H0と、ローカルアドレス及びラッチBUFF1間の整
合を示すMATCH1と、を提供する。このような信号
は、ライン627及び628で制御論理629へ供給さ
れる。次に、制御論理629は、現在のサイクルが現存
のバッファ式サイクルと併合され得るかどうかを決定す
る。もし併合されるなら、整合バッファのデータを併合
するためにCOMP・BUFF0又はCOMP・BUF
F1を発生する。整合しない場合には、制御論理629
はメモリコントローラへのサイクル動作の全体のシーケ
ンスも決定する。制御論理629は、バス432に正し
いサイクル情報を与えるために、トライステート(tris
tate)ライン625の制御信号によってマルチプレクサ
634を制御する。
【0033】論理629は、異なる信号が伝送される種
々のラインへ接続された多数の追加の入力及び出力を有
する。このようなライン及び信号は以下の通りである。
アドレスライン422は、CPUアドレス信号CPUA
DDR及びCPUバイト有効化信号(CPUBE$)を
供給する。制御ライン424は、制御信号を双方向に搬
送する。ライン520及び623はそれぞれ、ラッチB
UFF0及びラッチBUFF1を、そのラッチングを制
御するためにBUFF0及びBUFF1へ伝送する。ラ
イン525及び620はそれぞれ、COMPRESS・
BUFF0及びCOMPRESS・BUFF1をバッフ
ァ630及び631へ伝送する。ライン626は、バス
432により論理629及びメモリコントローラ間で、
信号BADS$及びSRDY$を含む制御情報を伝送す
る。
々のラインへ接続された多数の追加の入力及び出力を有
する。このようなライン及び信号は以下の通りである。
アドレスライン422は、CPUアドレス信号CPUA
DDR及びCPUバイト有効化信号(CPUBE$)を
供給する。制御ライン424は、制御信号を双方向に搬
送する。ライン520及び623はそれぞれ、ラッチB
UFF0及びラッチBUFF1を、そのラッチングを制
御するためにBUFF0及びBUFF1へ伝送する。ラ
イン525及び620はそれぞれ、COMPRESS・
BUFF0及びCOMPRESS・BUFF1をバッフ
ァ630及び631へ伝送する。ライン626は、バス
432により論理629及びメモリコントローラ間で、
信号BADS$及びSRDY$を含む制御情報を伝送す
る。
【0034】プロセッサバスサイクルは、プロセッサか
らメモリへ(書込サイクル)、あるいはメモリからプロ
セッサへ(読取サイクル)、情報を転送するための基本
的な方法である。読取サイクルは圧縮されないので、以
下の説明は書込動作に限定され、種々のタイミング図及
び図5を参照して説明される。種々の信号の多くは信号
名により識別され、信号名の幾つかは、信号が低電圧で
ある場合に信号がアクティブである又は表明されること
を示す接尾語(サフィクス)記号$を有する。$が存在
しない場合には、信号は高電圧レベルで表明される。
らメモリへ(書込サイクル)、あるいはメモリからプロ
セッサへ(読取サイクル)、情報を転送するための基本
的な方法である。読取サイクルは圧縮されないので、以
下の説明は書込動作に限定され、種々のタイミング図及
び図5を参照して説明される。種々の信号の多くは信号
名により識別され、信号名の幾つかは、信号が低電圧で
ある場合に信号がアクティブである又は表明されること
を示す接尾語(サフィクス)記号$を有する。$が存在
しない場合には、信号は高電圧レベルで表明される。
【0035】図6乃至図8は、異なるタイプの連続バス
サイクルの3つの例を示し、それと共に本発明がどのよ
うに作動するかを示している。バスサイクルは、クロッ
ク信号CLKにより定義されるプロセッサクロック期間
に従って、時間が定められる。バスサイクルは、アドレ
ス状態信号の表明により標準的な方法で開始され、確認
信号の表明とともに終了する。サイクルのタイプは、バ
ス定義信号及びバイト有効化信号により決定される。図
6は、プロセッサが2つの連続的ダブルワード書込動作
を開始する場合に生じる主な信号を示す。ダブルワード
書込サイクルは部分書込サイクルではないので、この動
作中、バッファリングは発生するが圧縮は起こらない。
また、この例は、始めに、メモリコントローラ256が
使用中でなく、両バッファ630及び631が遊休又は
空であると仮定する。
サイクルの3つの例を示し、それと共に本発明がどのよ
うに作動するかを示している。バスサイクルは、クロッ
ク信号CLKにより定義されるプロセッサクロック期間
に従って、時間が定められる。バスサイクルは、アドレ
ス状態信号の表明により標準的な方法で開始され、確認
信号の表明とともに終了する。サイクルのタイプは、バ
ス定義信号及びバイト有効化信号により決定される。図
6は、プロセッサが2つの連続的ダブルワード書込動作
を開始する場合に生じる主な信号を示す。ダブルワード
書込サイクルは部分書込サイクルではないので、この動
作中、バッファリングは発生するが圧縮は起こらない。
また、この例は、始めに、メモリコントローラ256が
使用中でなく、両バッファ630及び631が遊休又は
空であると仮定する。
【0036】ローカルバス書込サイクルを開始するため
に、プロセッサ202は、バス418で、アドレス信号
CPUADDR及びCPUBE$並びに標準バス定義信
号(図示せず)M/IO$、W/R$及びD/C$を表
明すると同時に、アドレス状態信号CPUADS$を表
明する。論理629は、既に示したようにローカルバス
418へ接続され、バスの信号をモニタする。期間(周
期)1でのCPUADS$信号の受信及び検出に応答し
て、論理629は、バス定義信号から、メモリ書込サイ
クルが開始されたことを決定する。バイト有効化信号C
PUMBE$は、データバスのどのデータバイトが転送
されているかを示し、これにより、サイクルが部分書込
サイクルであるか完全書込サイクルであるかを定義す
る。この例はダブルワード転送なので、CPUMBE$
は全て「0」である。期間2では、メモリへ書き込むべ
きデータCPUDATAは、2つの期間の間バス418
に配置される。第1のダブルワードデータ例は「ABC
D」として16進表記法で表示され、第2のダブルワー
ドデータ例は「2345」である。更に、論理629
は、バイト有効化信号から、ダブルワード書込動作が発
生しており、そのため圧縮が行われる必要がないことを
決定する。論理629は、書込サイクルの検出に応答し
て、第2期間の開始時に、バス418からのデータ信号
をBUFF0にラッチングさせるLATCH・BUFF
0制御信号を表明する。そして、期間2の最後に、論理
629は、プロセッサが関係している限りは、第1の書
込サイクルが完了したという信号をプロセッサへ送るた
めに、バス424を越えてプロセッサ202へ確認信号
BUFFRDY$を伝送する。このような確認信号を受
信した結果、連続的な第2のローカルバス書込サイクル
を開始するために、プロセッサは、期間4の始めに第2
のアドレス状態信号CPUADS$を送信することによ
り直ちに実行するもう1つのバスサイクルを自由に開始
できる。この第2のダブルワード書込動作の間、ダブル
ワード「2345」は、適切なCPUBE$信号と共に
データバスに配置される。このときBUFF0は使用中
であり、BUFF1は遊休なので、論理629は第2デ
ータアイテムをBUFF1にラッチングするためLBU
FF1信号を表明し、期間6でBUFFRDY$が再び
表明され、プロセッサへの第2のローカルバス書込サイ
クルの完了を意味する。
に、プロセッサ202は、バス418で、アドレス信号
CPUADDR及びCPUBE$並びに標準バス定義信
号(図示せず)M/IO$、W/R$及びD/C$を表
明すると同時に、アドレス状態信号CPUADS$を表
明する。論理629は、既に示したようにローカルバス
418へ接続され、バスの信号をモニタする。期間(周
期)1でのCPUADS$信号の受信及び検出に応答し
て、論理629は、バス定義信号から、メモリ書込サイ
クルが開始されたことを決定する。バイト有効化信号C
PUMBE$は、データバスのどのデータバイトが転送
されているかを示し、これにより、サイクルが部分書込
サイクルであるか完全書込サイクルであるかを定義す
る。この例はダブルワード転送なので、CPUMBE$
は全て「0」である。期間2では、メモリへ書き込むべ
きデータCPUDATAは、2つの期間の間バス418
に配置される。第1のダブルワードデータ例は「ABC
D」として16進表記法で表示され、第2のダブルワー
ドデータ例は「2345」である。更に、論理629
は、バイト有効化信号から、ダブルワード書込動作が発
生しており、そのため圧縮が行われる必要がないことを
決定する。論理629は、書込サイクルの検出に応答し
て、第2期間の開始時に、バス418からのデータ信号
をBUFF0にラッチングさせるLATCH・BUFF
0制御信号を表明する。そして、期間2の最後に、論理
629は、プロセッサが関係している限りは、第1の書
込サイクルが完了したという信号をプロセッサへ送るた
めに、バス424を越えてプロセッサ202へ確認信号
BUFFRDY$を伝送する。このような確認信号を受
信した結果、連続的な第2のローカルバス書込サイクル
を開始するために、プロセッサは、期間4の始めに第2
のアドレス状態信号CPUADS$を送信することによ
り直ちに実行するもう1つのバスサイクルを自由に開始
できる。この第2のダブルワード書込動作の間、ダブル
ワード「2345」は、適切なCPUBE$信号と共に
データバスに配置される。このときBUFF0は使用中
であり、BUFF1は遊休なので、論理629は第2デ
ータアイテムをBUFF1にラッチングするためLBU
FF1信号を表明し、期間6でBUFFRDY$が再び
表明され、プロセッサへの第2のローカルバス書込サイ
クルの完了を意味する。
【0037】前の段落は、プロセッサ及び圧縮書込バッ
ファ410間の信号、並びにバッファの内部で使用され
る信号のうちの幾つかの流れを説明するものである。プ
ロセッサに関して、フルワード書込サイクルは3つのク
ロック期間を必要とすることに注意すべきである。以下
の記載は、バッファ410とメモリコントローラ256
との間で発生する事象及び信号の流れを説明する。メモ
リコントローラバスサイクルは、SADS$信号により
開始され、SRDY$確認信号で終了し、プロセッサバ
スサイクルよりも遅く、非部分的(完全)書込サイクル
のために5つのクロック期間を必要とする。期間1での
CPUADS$信号の受信に応答して、論理629は、
関連バス定義信号と共に制御ライン626の1つでアド
レス状態信号BADS$を表明し、コントローラへのダ
ブルワード書込バスサイクルを開始する。ライン625
はトライステートラインであり、論理629は、BUF
F0をMUX634を介してバス432へ有効に接続す
るために、ライン625で第1信号を表明する。これに
より、BUFF0のデータ信号は、3つの期間の間「A
BCD」を表示するSDATA信号としてバス432の
データラインに配置され、BUFF0のアドレス信号
は、SADDR及びSBE$としてバス432のアドレ
スラインに配置される。書込要求信号の受信に応答し
て、コントローラ256は、SADDRにより指定され
たアドレスで、データSDATAをメモリに書き込ませ
る。次に、コントローラ256は、期間5で確認信号S
RDY$を表明し、メモリ書込動作の完了を論理629
に知らせる。期間6では、論理629は、コントローラ
に第2のダブルワード書込サイクルを開始させる第2の
アドレス状態信号BADS$及び関連信号を自由に表明
できる。第2サイクルの途中で、MUX634はライン
625の制御信号により切り換えられ、BUFF1をバ
ス432へ接続し、BUFF1にラッチングされたSD
ATA、SADDR及びSBE$信号をバス432に配
置させる。第2の書込サイクルが完了すると、コントロ
ーラは、期間11で第2のSRDY$信号を表明する。
ファ410間の信号、並びにバッファの内部で使用され
る信号のうちの幾つかの流れを説明するものである。プ
ロセッサに関して、フルワード書込サイクルは3つのク
ロック期間を必要とすることに注意すべきである。以下
の記載は、バッファ410とメモリコントローラ256
との間で発生する事象及び信号の流れを説明する。メモ
リコントローラバスサイクルは、SADS$信号により
開始され、SRDY$確認信号で終了し、プロセッサバ
スサイクルよりも遅く、非部分的(完全)書込サイクル
のために5つのクロック期間を必要とする。期間1での
CPUADS$信号の受信に応答して、論理629は、
関連バス定義信号と共に制御ライン626の1つでアド
レス状態信号BADS$を表明し、コントローラへのダ
ブルワード書込バスサイクルを開始する。ライン625
はトライステートラインであり、論理629は、BUF
F0をMUX634を介してバス432へ有効に接続す
るために、ライン625で第1信号を表明する。これに
より、BUFF0のデータ信号は、3つの期間の間「A
BCD」を表示するSDATA信号としてバス432の
データラインに配置され、BUFF0のアドレス信号
は、SADDR及びSBE$としてバス432のアドレ
スラインに配置される。書込要求信号の受信に応答し
て、コントローラ256は、SADDRにより指定され
たアドレスで、データSDATAをメモリに書き込ませ
る。次に、コントローラ256は、期間5で確認信号S
RDY$を表明し、メモリ書込動作の完了を論理629
に知らせる。期間6では、論理629は、コントローラ
に第2のダブルワード書込サイクルを開始させる第2の
アドレス状態信号BADS$及び関連信号を自由に表明
できる。第2サイクルの途中で、MUX634はライン
625の制御信号により切り換えられ、BUFF1をバ
ス432へ接続し、BUFF1にラッチングされたSD
ATA、SADDR及びSBE$信号をバス432に配
置させる。第2の書込サイクルが完了すると、コントロ
ーラは、期間11で第2のSRDY$信号を表明する。
【0038】FASTPATH信号は、コンパレータ6
33が遊休であるとき期間1及び2の間論理629によ
りアクティブに駆動され、LBUFF0信号が起動され
てから期間3の間に非アクティブに駆動される。アクテ
ィブFASTPATH期間中、SADDR/SBE$信
号は、バス418からBUFF0(BUFF1)を通っ
てバス523、そしてバス432へ最小遅延で伝播され
る。これにより、メモリコントロールユニット256
は、CPU202により発行される現在のバスサイクル
の可能な表示のうち最も早いものを得ることができる。
FASTPATHは、期間3で非アクティブに駆動され
る。非アクティブ期間の間、コントローラへ送られた信
号は、BUFF0のデータ、アドレス及び制御バッフ
ァ、並びに論理629から削除される。FASTPAT
Hは、期間12(メモリコントローラ256がSRDY
$を介して最後のバッファ式サイクルの完了を表示した
後のクロック期間)で切り換えられてアクティブ状態へ
戻される。
33が遊休であるとき期間1及び2の間論理629によ
りアクティブに駆動され、LBUFF0信号が起動され
てから期間3の間に非アクティブに駆動される。アクテ
ィブFASTPATH期間中、SADDR/SBE$信
号は、バス418からBUFF0(BUFF1)を通っ
てバス523、そしてバス432へ最小遅延で伝播され
る。これにより、メモリコントロールユニット256
は、CPU202により発行される現在のバスサイクル
の可能な表示のうち最も早いものを得ることができる。
FASTPATHは、期間3で非アクティブに駆動され
る。非アクティブ期間の間、コントローラへ送られた信
号は、BUFF0のデータ、アドレス及び制御バッフ
ァ、並びに論理629から削除される。FASTPAT
Hは、期間12(メモリコントローラ256がSRDY
$を介して最後のバッファ式サイクルの完了を表示した
後のクロック期間)で切り換えられてアクティブ状態へ
戻される。
【0039】図7は、サイクル圧縮を有する、同一メモ
リアドレスADDR1への2つの連続部分書込サイクル
の例を示す。始めに、バッファは空であり、コントロー
ラは使用中でないと仮定する。第1の部分書込サイクル
はプロセッサにより開始され、期間1でCPUADS
$、CPUADDR及びCPUBE$信号を表明した
後、期間2でCPUDATAを表明する。第1サイクル
によりメモリへ書き込まれるデータは、ダブルワードデ
ータバスの低位エンドの単一ワード「CD」であり、こ
こで、高位ワードは「XX」として表示される。即ち、
データバスに関して、単一ワードは「XXCD」として
転送される。バイト有効化信号「1100」は、どのバ
イトがアクティブであり書き込まれるべきかを識別す
る。ここで、「0」はアクティブバイトを識別し、
「1」は非アクティブバイトを識別する。開始されてい
るバスサイクルが書込サイクルであるとの検出に応答し
て、ラッチ信号LBUFF0が期間2で表明され、これ
によりバス418の信号はBUFF0にラッチングされ
る。そして、BUFFRDY$信号が期間3で表明さ
れ、プロセッサは、期間4でCPUADS$、CPUA
DDR及びCPUBE$を、期間5でCPUDATAを
表明することにより実行されるもう1つのサイクルを自
由に開始できるようになる。BADS$信号は期間1で
送信され、コントローラに部分書込バスサイクルを開始
させる。
リアドレスADDR1への2つの連続部分書込サイクル
の例を示す。始めに、バッファは空であり、コントロー
ラは使用中でないと仮定する。第1の部分書込サイクル
はプロセッサにより開始され、期間1でCPUADS
$、CPUADDR及びCPUBE$信号を表明した
後、期間2でCPUDATAを表明する。第1サイクル
によりメモリへ書き込まれるデータは、ダブルワードデ
ータバスの低位エンドの単一ワード「CD」であり、こ
こで、高位ワードは「XX」として表示される。即ち、
データバスに関して、単一ワードは「XXCD」として
転送される。バイト有効化信号「1100」は、どのバ
イトがアクティブであり書き込まれるべきかを識別す
る。ここで、「0」はアクティブバイトを識別し、
「1」は非アクティブバイトを識別する。開始されてい
るバスサイクルが書込サイクルであるとの検出に応答し
て、ラッチ信号LBUFF0が期間2で表明され、これ
によりバス418の信号はBUFF0にラッチングされ
る。そして、BUFFRDY$信号が期間3で表明さ
れ、プロセッサは、期間4でCPUADS$、CPUA
DDR及びCPUBE$を、期間5でCPUDATAを
表明することにより実行されるもう1つのサイクルを自
由に開始できるようになる。BADS$信号は期間1で
送信され、コントローラに部分書込バスサイクルを開始
させる。
【0040】開始されている書込サイクルが部分書込サ
イクルであるというバイト有効化信号からの決定に応答
して、論理629は、有効圧縮ウィンドウ信号COMP
・WINDOWを表明し、圧縮が次のサイクルで行われ
るようにする。上記したように、部分書込動作はメモリ
コントローラに読取−修正−書込(RMW)サイクルを
実行させ、読取部分は有効圧縮ウィンドウの第1期間
(期間2)中に開始される。RMWは3つの事象を要求
する。第1は読取、第2は修正、そして第3は書込であ
る。ラッチデータ及びバイト有効化信号は、期間2〜4
の間にバス432で表明される。期間4の始めに、同一
アドレスADDR1への第2の部分書込サイクルがプロ
セッサにより開始され、圧縮が発生できるという認識に
応答して、第2組のCPUDATA及びCPUBE$信
号の表明と共に、制御信号COMP・BUFF0が期間
5で表明される。これにより、第2ワード「ABXX」
は、BUFF0で前のワードと併合され、ダブルワード
「ABCD」を形成する。また、バイト有効化信号は、
「0000」へ併合又は変化され、ラッチデータのバイ
ト状態を反映する。圧縮書込サイクルが完了すると、S
RDY$信号が期間10で表明される。第1のサイクル
は、図6のバッファ式書込と同様の方法で、即ち期間3
でBUFFRDY$を用いて、プロセッサに関して終了
する。コントローラ629は、期間4の間に第2のCP
UADS$信号を使用して、第1サイクル内へ圧縮され
る第2サイクルを開始する。COMP・WINDOWが
アクティブであるのと同時に、コントローラ629によ
り第2のCPUADS$信号はアクティブであることが
わかるので、制御論理629は、アドレス整合を提供す
る2つのサイクルを圧縮することができる。ただし、C
OMP・WINDOW信号は、通常、部分書込サイクル
の読取部分で発生する。このような読取部分が進行して
いる間、コントローラ256は、書込データ及びバイト
有効化信号が新しい圧縮値へ変化できるようにする。第
2サイクルのアドレス信号がBUFF0のアドレスバッ
ファにラッチングされたのと同一のアドレスであること
を検出して上述のようにMATCH0信号を発生するコ
ンパレータ633に応答して、COMP・BUFF0信
号が発生される。
イクルであるというバイト有効化信号からの決定に応答
して、論理629は、有効圧縮ウィンドウ信号COMP
・WINDOWを表明し、圧縮が次のサイクルで行われ
るようにする。上記したように、部分書込動作はメモリ
コントローラに読取−修正−書込(RMW)サイクルを
実行させ、読取部分は有効圧縮ウィンドウの第1期間
(期間2)中に開始される。RMWは3つの事象を要求
する。第1は読取、第2は修正、そして第3は書込であ
る。ラッチデータ及びバイト有効化信号は、期間2〜4
の間にバス432で表明される。期間4の始めに、同一
アドレスADDR1への第2の部分書込サイクルがプロ
セッサにより開始され、圧縮が発生できるという認識に
応答して、第2組のCPUDATA及びCPUBE$信
号の表明と共に、制御信号COMP・BUFF0が期間
5で表明される。これにより、第2ワード「ABXX」
は、BUFF0で前のワードと併合され、ダブルワード
「ABCD」を形成する。また、バイト有効化信号は、
「0000」へ併合又は変化され、ラッチデータのバイ
ト状態を反映する。圧縮書込サイクルが完了すると、S
RDY$信号が期間10で表明される。第1のサイクル
は、図6のバッファ式書込と同様の方法で、即ち期間3
でBUFFRDY$を用いて、プロセッサに関して終了
する。コントローラ629は、期間4の間に第2のCP
UADS$信号を使用して、第1サイクル内へ圧縮され
る第2サイクルを開始する。COMP・WINDOWが
アクティブであるのと同時に、コントローラ629によ
り第2のCPUADS$信号はアクティブであることが
わかるので、制御論理629は、アドレス整合を提供す
る2つのサイクルを圧縮することができる。ただし、C
OMP・WINDOW信号は、通常、部分書込サイクル
の読取部分で発生する。このような読取部分が進行して
いる間、コントローラ256は、書込データ及びバイト
有効化信号が新しい圧縮値へ変化できるようにする。第
2サイクルのアドレス信号がBUFF0のアドレスバッ
ファにラッチングされたのと同一のアドレスであること
を検出して上述のようにMATCH0信号を発生するコ
ンパレータ633に応答して、COMP・BUFF0信
号が発生される。
【0041】図8は、始めは完全書込サイクルで、その
後同一アドレスへの3つの連続部分書込が行われる連続
サイクルの一例を提供する。3つの部分書込は、1つの
メモリ書込動作へ圧縮される。部分書込は、単一ワード
「AB」のため、そして異なるバイト「C」及び「D」
のためのものである。ダブルワード書込動作は、図6の
例に関して前述したように発生する。ライン625の制
御信号はBUFF0をバス432へ接続し、ワードはメ
モリに書き込まれ、コントローラは確認信号SRDY$
を期間6で戻す。プロセッサは期間4で第1の部分書込
サイクルを開始し、BUFF0が使用中なので、LBU
FF1信号が期間5で表明され、「ABXX」がBUF
F1にラッチングされる。残りの部分書込サイクルは、
CPUADS$信号により期間7及び期間10で開始さ
れる。期間8では、COMP・BUFF1信号が表明さ
れ、バイト「C」がBUFF1で「ABXX」と併合さ
れ、「ABCX」を形成する。
後同一アドレスへの3つの連続部分書込が行われる連続
サイクルの一例を提供する。3つの部分書込は、1つの
メモリ書込動作へ圧縮される。部分書込は、単一ワード
「AB」のため、そして異なるバイト「C」及び「D」
のためのものである。ダブルワード書込動作は、図6の
例に関して前述したように発生する。ライン625の制
御信号はBUFF0をバス432へ接続し、ワードはメ
モリに書き込まれ、コントローラは確認信号SRDY$
を期間6で戻す。プロセッサは期間4で第1の部分書込
サイクルを開始し、BUFF0が使用中なので、LBU
FF1信号が期間5で表明され、「ABXX」がBUF
F1にラッチングされる。残りの部分書込サイクルは、
CPUADS$信号により期間7及び期間10で開始さ
れる。期間8では、COMP・BUFF1信号が表明さ
れ、バイト「C」がBUFF1で「ABXX」と併合さ
れ、「ABCX」を形成する。
【0042】期間6では、確認信号SRDY$が受信さ
れ、論理629が期間7でBADS$信号をコントロー
ラへ送信できるようにし、期間4のCPUADS$に対
応する第2の部分書込サイクルを開始する。期間4の間
に、625が切り換えられてBUFF1をバス432へ
接続し、「ABCX」をバスに配置する。しかしなが
ら、そのサイクルが完了される前に、バイト「D」のた
めに同一アドレスへ第3の部分書込が開始され、COM
P・BUFF1信号の結果、RMWサイクルの書込部分
が更に修正される。期間10では、第2のCOMP・B
UFF1信号が表明され、バイト「D」をBUFF1で
併合させ、ダブルワード「ABCD」を形成する。この
ダブルワードはサイクル11でバス432に配置され、
コントローラは、それをメモリに書き込み、最後にSR
DY$を送信する。従って、3つの部分書込サイクルは
単一のダブルワードメモリ書込サイクルへ圧縮される。
れ、論理629が期間7でBADS$信号をコントロー
ラへ送信できるようにし、期間4のCPUADS$に対
応する第2の部分書込サイクルを開始する。期間4の間
に、625が切り換えられてBUFF1をバス432へ
接続し、「ABCX」をバスに配置する。しかしなが
ら、そのサイクルが完了される前に、バイト「D」のた
めに同一アドレスへ第3の部分書込が開始され、COM
P・BUFF1信号の結果、RMWサイクルの書込部分
が更に修正される。期間10では、第2のCOMP・B
UFF1信号が表明され、バイト「D」をBUFF1で
併合させ、ダブルワード「ABCD」を形成する。この
ダブルワードはサイクル11でバス432に配置され、
コントローラは、それをメモリに書き込み、最後にSR
DY$を送信する。従って、3つの部分書込サイクルは
単一のダブルワードメモリ書込サイクルへ圧縮される。
【0043】本発明は、410、256、402、40
4、220及び414を含むVLSI装置において実施
されることができる。このような統合により、特にCO
MP・WINDOW信号に関連する信号等、410及び
256間で渡される信号のタイプの柔軟性をより高める
ことができる。本発明では、COMP・WINDOW信
号は、(a)RMWサイクルの読取部分の間(ECCの
み)、(b)バッファのうちの1つ(BUFF0又はB
UFF1)がコントローラ256への書込サイクルで使
用中であり、使用中でないバッファが圧縮のために使用
可能であるピリオドの間(ECC又はパリティメモリモ
ード)、及び(c)デュアルポートメモリコントローラ
256が非CPUポート(バス434)のサービスで使
用中である期間の間(ECC又はパリティメモリモー
ド)、アクティブになる。
4、220及び414を含むVLSI装置において実施
されることができる。このような統合により、特にCO
MP・WINDOW信号に関連する信号等、410及び
256間で渡される信号のタイプの柔軟性をより高める
ことができる。本発明では、COMP・WINDOW信
号は、(a)RMWサイクルの読取部分の間(ECCの
み)、(b)バッファのうちの1つ(BUFF0又はB
UFF1)がコントローラ256への書込サイクルで使
用中であり、使用中でないバッファが圧縮のために使用
可能であるピリオドの間(ECC又はパリティメモリモ
ード)、及び(c)デュアルポートメモリコントローラ
256が非CPUポート(バス434)のサービスで使
用中である期間の間(ECC又はパリティメモリモー
ド)、アクティブになる。
【0044】
【発明の効果】以上説明したように、本発明の圧縮型書
込バッファによりパーソナルコンピュータシステムの性
能が増大される。
込バッファによりパーソナルコンピュータシステムの性
能が増大される。
【図1】本発明を使用するデータ処理システムの略図で
ある。
ある。
【図2】図1に示されるシステムに含まれる平面ボード
の略図である。
の略図である。
【図3】図2に示される平面ボードへ接続可能なプロセ
ッサカードの略図である。
ッサカードの略図である。
【図4】図3に示される圧縮を有する書込バッファの略
ブロック図である。
ブロック図である。
【図5】図4と同様の略ブロック図であり、書込バッフ
ァの別の形態を示す。
ァの別の形態を示す。
【図6】ダブルワード書込サイクルバッファ動作の例を
示すタイミング図である。
示すタイミング図である。
【図7】圧縮書込バッファサイクルの例を示すタイミン
グ図である。
グ図である。
【図8】圧縮書込バッファサイクルのもう1つの例を示
すタイミング図である。
すタイミング図である。
100 パーソナルコンピュータシステム 102 システムユニット 103 エンクロージャ又はケーシング 104 モニタ 106 ハードディスクドライブ 108 ディスケットドライブ 110 キーボード 112 マウス 202 プロセッサ 220 直接メモリアクセス制御ユニット 256 メモリ制御ユニット 300 平面ボード 301 プリント回路ボード 310 メモリバス 312 チャネルバス 400 プロセッサカード 401 プリント回路ボード 410 圧縮書込バッファ 414 マイクロチャネル制御及びバッファ 418 ローカルバス 432 メモリ制御バス 629 制御論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ポール ワイリ ブラウン アメリカ合衆国05490、バーモント州アン ダーヒル センター、プレズント ヴァリ ー ロード (番地なし) (72)発明者 マーク レイモンド フォウシャー アメリカ合衆国05403、バーモント州サウ ス バーリントン、ワインディング ブル ック ドライヴ 44 (72)発明者 ジェラルド リー フランク アメリカ合衆国05452、バーモント州エセ ックス ジャンクション、デヴォン ヒル コート 8 (72)発明者 クリストファー マイケル ヘリング アメリカ合衆国05494、バーモント州ウエ ストフォード、ボックス 990、ライト 1
Claims (5)
- 【請求項1】 メモリと、前記メモリへその動作を制御
するために接続されたメモリコントローラと、前記メモ
リコントローラへ接続されたメモリコントローラバス
と、ローカルバスと、前記ローカルバスへ接続されたプ
ロセッサと、を有するパーソナルコンピュータであっ
て、 前記プロセッサは連続ローカルバスサイクルで第1及び
第2の部分書込サイクル要求を開始するように作動し、
前記第1の部分書込サイクル要求は前記メモリに第1ア
ドレスで書込むべき第1データを指定し、前記第2の部
分書込サイクル要求は前記メモリに前記第1アドレスで
書き込むべき第2データを指定し、 前記ローカルバス及び前記メモリコントローラバスへ接
続された部分書込サイクル圧縮書込バッファを備えてお
り、 前記バッファは、 前記メモリ内へ第1アドレスで書込むべき前記ローカル
バスからのデータを受信及びバッファリングするための
第1データバッファと、前記第1アドレスを記憶するた
めの第1アドレスバッファと、を備え、前記ローカルバ
スへ接続された第1バッファ手段と、 前記ローカルバスの前記第1及び前記第2の部分書込要
求の受信に応答して作動可能であり、前記データが前記
メモリへ書き込まれる前にローカルバスサイクルの完了
を前記プロセッサへ確認し、前記第1データ及び前記第
2データを前記メモリに同時に書込むために前記第1及
び前記第2の部分書込サイクルを単一メモリコントロー
ラバス書込サイクルへ圧縮する制御論理と、 を備えるパーソナルコンピュータ。 - 【請求項2】 前記プロセッサは前記単一メモリコント
ローラ書込バスサイクルの完了前に前記ローカルバスで
第3の書込要求を表明するよう作動し、前記第3の書込
要求は、前記第1アドレスとは異なる第2アドレスで前
記メモリにデータを書き込むことであり、 前記単一メモリコントローラ書込バスサイクルの完了を
ペンディングする前記第3の書込要求からのデータ及び
アドレスを受信及びバッファリングするよう選択的に作
動可能であり、前記第1バッファ手段と並列に前記ロー
カルバスへ接続された第2バッファ手段を更に備え、 前記制御論理は、更に、前記単一メモリコントローラ書
込バスサイクルの完了に応答して作動可能であり、第2
のメモリコントローラバス書込サイクルを開始して、前
記第2バッファ手段の前記アドレスにおいて前記第2バ
ッファ手段にバッファリングされた前記データを前記メ
モリに書込む、 請求項1記載のパーソナルコンピュータ。 - 【請求項3】 前記メモリコントローラは部分書込サイ
クル中に前記メモリを作動し、読取−修正−書込動作を
実行すると共に、前記メモリコントローラは前記メモリ
から読み取られたデータを修正し、前記第1データ及び
前記第2データを前記メモリに書込むよう作動する請求
項1記載のパーソナルコンピュータ。 - 【請求項4】 少なくとも4バイトの情報をそれぞれが
含む複数のアドレッサブル位置に情報を記憶するための
メモリと、前記メモリへその動作を制御するために接続
されたメモリコントローラと、前記メモリコントローラ
へ接続されたメモリコントローラバスと、各書込サイク
ルで1から4バイトの情報を転送するために少なくとも
4バイトの幅を有するローカルアドレスバス、ローカル
制御バス及びローカルデータバスを含むローカルバス
と、前記ローカルバスへ接続されたプロセッサと、を有
するパーソナルコンピュータであって、 前記プロセッサは連続ローカルバスサイクルで第1及び
第2の部分書込サイクル要求を開始するように作動し、
前記第1の部分書込サイクル要求は前記メモリに第1ア
ドレスで書込むべき第1データを指定し、前記第2の部
分書込サイクル要求は前記メモリに前記第1アドレスで
書き込むべき第2データを指定し、前記第1データは1
又は2バイトを有し、前記第2データは1又は2バイト
を有し、前記プロセッサは転送されている各バイトを定
義するバイト有効化信号を各部分書込要求において前記
ローカルアドレスバスで表明し、 前記ローカルバス及び前記メモリコントローラバスへ接
続された部分書込サイクル圧縮書込バッファを備えてお
り、 前記バッファは、 LATCH信号に応答して前記第1データを選択的に受
信及びバッファリングするため、及びCOMP・BUF
F制御信号に応答して前記第2データを第1データバッ
ファにバッファリングされた前記第1データと併合する
ために、前記ローカルデータバスへ接続された第1デー
タバッファと、前記第1メモリアドレス及び前記バイト
有効化信号を選択的に受信及びバッファリングするため
に前記第1アドレスを記憶するために前記ローカルアド
レスバスへ接続された第1アドレスバッファと、を備
え、前記ローカルバスへ接続された第1バッファ手段
と、 前記ローカルアドレスバス及び前記第1アドレスバッフ
ァへ接続され、前記第1アドレスバッファにバッファリ
ングされたアドレスと前記第2の部分書込サイクル要求
の前記ローカルバスのアドレスとを比較するよう作動
し、比較されている2つのアドレスが同一である場合に
MATCH信号を発生するコンパレータと、 前記第1バッファ手段と、前記ローカルバスと、前記メ
モリコントローラバスと、へ接続された制御論理と、 を備え、 前記制御論理は、 前記第1の部分書込要求に応答して前記LATCH信号
を発生し、 前記MATCH信号に応答して前記COMP・BUFF
信号を発生し、 前記第1データ及び前記第2データが前記メモリへ書き
込まれる前に、各要求からのデータが前記第1データバ
ッファに記憶された後、前記第1及び第2の要求のそれ
ぞれが完了したことを前記プロセッサへ表示する確認信
号を前記プロセッサへ伝送し、 前記第1及び第2データを前記メモリに同時に書き込む
ために、前記第1及び前記第2の部分書込サイクルを単
一メモリコントローラバス書込サイクルへ圧縮する、 ように作動可能であるパーソナルコンピュータ。 - 【請求項5】 前記プロセッサは前記単一メモリコント
ローラ書込バスサイクルの完了前に前記ローカルバスで
第3の書込要求を表明するよう作動し、前記第3の書込
要求は、前記第1アドレスとは異なる第2アドレスで前
記メモリにデータを書き込むことであり、 前記単一メモリコントローラ書込バスサイクルの完了を
ペンディングする前記第3の書込要求からデータ及びア
ドレスを受信及びバッファリングするよう選択的に作動
可能であり、前記第1バッファ手段と並列に前記ローカ
ルバスへ接続された第2のバッファ手段を更に備え、 前記制御論理は、更に、前記単一メモリコントローラ書
込バスサイクルの完了に応答して作動可能であり、第2
のメモリコントローラバス書込サイクルを開始して、前
記第2バッファ手段の前記アドレスにおいて前記第2バ
ッファ手段にバッファリングされた前記データを前記メ
モリに書込む、 請求項4記載のパーソナルコンピュータ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US905259 | 1992-06-26 | ||
| US07/905,259 US5459842A (en) | 1992-06-26 | 1992-06-26 | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06103151A true JPH06103151A (ja) | 1994-04-15 |
Family
ID=25420506
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5118101A Pending JPH06103151A (ja) | 1992-06-26 | 1993-05-20 | パーソナルコンピュータ |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5459842A (ja) |
| JP (1) | JPH06103151A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009289170A (ja) * | 2008-05-30 | 2009-12-10 | Nec Electronics Corp | データ処理装置、メモリコントローラ及びそのアクセス制御方法 |
| JP2014523032A (ja) * | 2011-07-01 | 2014-09-08 | マイクロン テクノロジー, インク. | アライメントされていないデータの結合 |
Families Citing this family (96)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5796976A (en) * | 1993-05-04 | 1998-08-18 | Digital Equipment Corporation | Temporary storage having entries smaller than memory bus |
| JPH07129456A (ja) * | 1993-10-28 | 1995-05-19 | Toshiba Corp | コンピュータシステム |
| US5574952A (en) * | 1994-05-11 | 1996-11-12 | International Business Machines Corporation | Data storage system and method for operating a disk controller including allocating disk space for compressed data |
| JP3529429B2 (ja) * | 1994-06-10 | 2004-05-24 | 富士通株式会社 | データ送信装置、データ受信装置、データ伝送装置及びデータ伝送方法 |
| US5592684A (en) * | 1994-07-22 | 1997-01-07 | Dell Usa, L.P. | Store queue including a byte order tracking mechanism for maintaining data coherency |
| US5687353A (en) * | 1995-03-03 | 1997-11-11 | Hal Computer Systems, Inc. | Merging data using a merge code from a look-up table and performing ECC generation on the merged data |
| US5625778A (en) * | 1995-05-03 | 1997-04-29 | Apple Computer, Inc. | Method and apparatus for presenting an access request from a computer system bus to a system resource with reduced latency |
| US5664148A (en) * | 1995-08-17 | 1997-09-02 | Institute For The Development Of Emerging Architectures L.L.C. | Cache arrangement including coalescing buffer queue for non-cacheable data |
| US5809228A (en) * | 1995-12-27 | 1998-09-15 | Intel Corporaiton | Method and apparatus for combining multiple writes to a memory resource utilizing a write buffer |
| US5835972A (en) * | 1996-05-28 | 1998-11-10 | Advanced Micro Devices, Inc. | Method and apparatus for optimization of data writes |
| US6205507B1 (en) * | 1996-06-13 | 2001-03-20 | Compaq Computer Corporation | Memory coherency in a processor-to-bus cycle in a multi-processor system |
| US5809534A (en) * | 1996-06-13 | 1998-09-15 | Compaq Computer Corporation | Performing a write cycle to memory in a multi-processor system |
| US5860091A (en) * | 1996-06-28 | 1999-01-12 | Symbios, Inc. | Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications |
| JPH10177647A (ja) * | 1996-12-18 | 1998-06-30 | Ricoh Co Ltd | 画像処理装置 |
| US6073209A (en) * | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
| US5894569A (en) * | 1997-04-14 | 1999-04-13 | International Business Machines Corporation | Method and system for back-end gathering of store instructions within a data-processing system |
| US6438660B1 (en) * | 1997-12-09 | 2002-08-20 | Intel Corporation | Method and apparatus for collapsing writebacks to a memory for resource efficiency |
| US6233659B1 (en) * | 1998-03-05 | 2001-05-15 | Micron Technology, Inc. | Multi-port memory device with multiple modes of operation and improved expansion characteristics |
| US6279065B1 (en) * | 1998-06-03 | 2001-08-21 | Compaq Computer Corporation | Computer system with improved memory access |
| US6223259B1 (en) * | 1998-10-30 | 2001-04-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Reducing read cycle of memory read request for data to be partially modified by a pending write request |
| US6434639B1 (en) * | 1998-11-13 | 2002-08-13 | Intel Corporation | System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation |
| US6748493B1 (en) | 1998-11-30 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for managing memory operations in a data processing system using a store buffer |
| US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
| US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
| US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
| US7191309B1 (en) | 1999-09-01 | 2007-03-13 | Intel Corporation | Double shift instruction for micro engine used in multithreaded parallel processor architecture |
| HK1046049A1 (zh) | 1999-09-01 | 2002-12-20 | Intel Corporation | 用於多线程处理器的分支指令 |
| WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
| US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
| US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
| US6307789B1 (en) | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
| US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
| US6631430B1 (en) | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
| US7620702B1 (en) | 1999-12-28 | 2009-11-17 | Intel Corporation | Providing real-time control data for a network processor |
| US6549211B1 (en) | 1999-12-29 | 2003-04-15 | Intel Corporation | System and method for increasing the efficiency and reliability of the storage of sequential data |
| US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
| US7012576B2 (en) * | 1999-12-29 | 2006-03-14 | Intel Corporation | Intelligent display interface |
| US6584522B1 (en) | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
| US6952824B1 (en) | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
| US6976095B1 (en) | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
| US7480706B1 (en) | 1999-12-30 | 2009-01-20 | Intel Corporation | Multi-threaded round-robin receive for fast network port |
| US7681018B2 (en) * | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
| US20020053017A1 (en) * | 2000-09-01 | 2002-05-02 | Adiletta Matthew J. | Register instructions for a multithreaded processor |
| US7020871B2 (en) * | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
| TW519663B (en) * | 2001-05-15 | 2003-02-01 | Via Tech Inc | Memory control device and method |
| US7225281B2 (en) | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
| US7216204B2 (en) * | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
| US6868476B2 (en) | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
| US7487505B2 (en) | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
| US7126952B2 (en) | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
| US7158964B2 (en) * | 2001-12-12 | 2007-01-02 | Intel Corporation | Queue management |
| US7107413B2 (en) * | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
| US7269179B2 (en) * | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
| US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
| US7181573B2 (en) * | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
| US6934951B2 (en) | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
| US7610451B2 (en) | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
| US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
| US7149226B2 (en) * | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
| US7200715B2 (en) * | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
| US7437724B2 (en) * | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
| US7471688B2 (en) | 2002-06-18 | 2008-12-30 | Intel Corporation | Scheduling system for transmission of cells to ATM virtual circuits and DSL ports |
| EP1575229A3 (en) * | 2002-07-30 | 2007-12-12 | Yamaha Corporation | Data transmission apparatus with dynamic assignment of transmission sequences |
| US7337275B2 (en) | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
| US7352769B2 (en) | 2002-09-12 | 2008-04-01 | Intel Corporation | Multiple calendar schedule reservation structure and method |
| US7206891B2 (en) * | 2002-09-26 | 2007-04-17 | Lsi Logic Corporation | Multi-port memory controller having independent ECC encoders |
| US7433307B2 (en) | 2002-11-05 | 2008-10-07 | Intel Corporation | Flow control in a network environment |
| US6941438B2 (en) | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
| US7443836B2 (en) | 2003-06-16 | 2008-10-28 | Intel Corporation | Processing a data packet |
| US7213099B2 (en) | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
| US7765366B2 (en) | 2005-06-23 | 2010-07-27 | Intel Corporation | Memory micro-tiling |
| US7587521B2 (en) | 2005-06-23 | 2009-09-08 | Intel Corporation | Mechanism for assembling memory access requests while speculatively returning data |
| US8332598B2 (en) * | 2005-06-23 | 2012-12-11 | Intel Corporation | Memory micro-tiling request reordering |
| US8032688B2 (en) | 2005-06-30 | 2011-10-04 | Intel Corporation | Micro-tile memory interfaces |
| US8253751B2 (en) * | 2005-06-30 | 2012-08-28 | Intel Corporation | Memory controller interface for micro-tiled memory access |
| US7558941B2 (en) * | 2005-06-30 | 2009-07-07 | Intel Corporation | Automatic detection of micro-tile enabled memory |
| JP4993892B2 (ja) * | 2005-09-29 | 2012-08-08 | ルネサスエレクトロニクス株式会社 | メモリ・コントローラ |
| US8878860B2 (en) * | 2006-12-28 | 2014-11-04 | Intel Corporation | Accessing memory using multi-tiling |
| US20080168331A1 (en) * | 2007-01-05 | 2008-07-10 | Thomas Vogelsang | Memory including error correction code circuit |
| GB2460365B (en) * | 2007-04-26 | 2012-03-28 | Agere Systems Inc | Memory device with error correction capability and efficient partial word write operation |
| US20090105993A1 (en) * | 2007-10-22 | 2009-04-23 | Advantest Corporation | Histogram generation with multiple increment read-modify-write cycles |
| US20090228612A1 (en) * | 2008-03-06 | 2009-09-10 | Barinder Singh Rai | Flexible Bus Interface and Method for Operating the Same |
| EP2467852B1 (en) | 2009-08-20 | 2019-05-22 | Rambus Inc. | Atomic memory device |
| GB2474446A (en) * | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
| US9032162B1 (en) | 2011-08-12 | 2015-05-12 | Altera Corporation | Systems and methods for providing memory controllers with memory access request merging capabilities |
| US20140115278A1 (en) * | 2012-10-23 | 2014-04-24 | Analog Devices, Inc. | Memory architecture |
| CN104252420B (zh) * | 2013-06-29 | 2017-08-29 | 华为技术有限公司 | 数据写入方法及内存系统 |
| US9146870B2 (en) | 2013-07-24 | 2015-09-29 | Arm Limited | Performance of accesses from multiple processors to a same memory location |
| WO2016126472A1 (en) * | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for scatter and gather |
| US10176038B2 (en) | 2015-09-01 | 2019-01-08 | International Business Machines Corporation | Partial ECC mechanism for a byte-write capable register |
| US9985655B2 (en) * | 2015-09-01 | 2018-05-29 | International Business Machines Corporation | Generating ECC values for byte-write capable registers |
| US9766975B2 (en) | 2015-09-01 | 2017-09-19 | International Business Machines Corporation | Partial ECC handling for a byte-write capable register |
| TWI588824B (zh) * | 2015-12-11 | 2017-06-21 | 捷鼎國際股份有限公司 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
| US10572260B2 (en) * | 2017-12-29 | 2020-02-25 | Intel Corporation | Spatial and temporal merging of remote atomic operations |
| CN110865959B (zh) * | 2018-08-27 | 2021-10-15 | 武汉杰开科技有限公司 | 一种用于唤醒i2c设备的方法及电路 |
| TWI668704B (zh) | 2018-10-01 | 2019-08-11 | 大陸商深圳大心電子科技有限公司 | 資料處理方法及使用所述方法的儲存控制器 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5099045A (ja) * | 1973-12-28 | 1975-08-06 | ||
| JPS62203249A (ja) * | 1986-03-03 | 1987-09-07 | Fujitsu Ltd | 記憶装置 |
| JPS62239497A (ja) * | 1986-04-11 | 1987-10-20 | Mitsubishi Electric Corp | 記憶装置 |
| JPS6391756A (ja) * | 1986-10-03 | 1988-04-22 | Fujitsu Ltd | 記憶装置の部分書き込み命令処理方式 |
| JPS63103342A (ja) * | 1986-10-20 | 1988-05-09 | Fujitsu Ltd | 主記憶制御装置 |
| JPS6431238A (en) * | 1987-07-27 | 1989-02-01 | Fujitsu Ltd | System for controlling store buffer |
| JPH04102946A (ja) * | 1990-08-22 | 1992-04-03 | Nec Corp | 記憶装置制御方式 |
| JPH04112328A (ja) * | 1990-09-03 | 1992-04-14 | Nec Corp | ストア命令の縮退制御方式 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5563453A (en) * | 1978-11-04 | 1980-05-13 | Sanyo Electric Co Ltd | Memory system |
| US4287577A (en) * | 1979-09-27 | 1981-09-01 | Communications Satellite Corporation | Interleaved TDMA terrestrial interface buffer |
| JPS5922278A (ja) * | 1982-07-26 | 1984-02-04 | Nec Corp | メモリ書込方式 |
| JPS61123957A (ja) * | 1984-11-21 | 1986-06-11 | Nec Corp | 記憶装置 |
| US4742474A (en) * | 1985-04-05 | 1988-05-03 | Tektronix, Inc. | Variable access frame buffer memory |
| US4805098A (en) * | 1986-05-05 | 1989-02-14 | Mips Computer Systems, Inc. | Write buffer |
| US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
| US5235693A (en) * | 1989-01-27 | 1993-08-10 | Digital Equipment Corporation | Method and apparatus for reducing buffer storage in a read-modify-write operation |
| US5357622A (en) * | 1990-09-27 | 1994-10-18 | Dell U.S.A., L.P. | Apparatus for queing and storing data writes into valid word patterns |
| US5235545A (en) * | 1991-03-29 | 1993-08-10 | Micron Technology, Inc. | Memory array write addressing circuit for simultaneously addressing selected adjacent memory cells |
-
1992
- 1992-06-26 US US07/905,259 patent/US5459842A/en not_active Expired - Fee Related
-
1993
- 1993-05-20 JP JP5118101A patent/JPH06103151A/ja active Pending
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5099045A (ja) * | 1973-12-28 | 1975-08-06 | ||
| JPS62203249A (ja) * | 1986-03-03 | 1987-09-07 | Fujitsu Ltd | 記憶装置 |
| JPS62239497A (ja) * | 1986-04-11 | 1987-10-20 | Mitsubishi Electric Corp | 記憶装置 |
| JPS6391756A (ja) * | 1986-10-03 | 1988-04-22 | Fujitsu Ltd | 記憶装置の部分書き込み命令処理方式 |
| JPS63103342A (ja) * | 1986-10-20 | 1988-05-09 | Fujitsu Ltd | 主記憶制御装置 |
| JPS6431238A (en) * | 1987-07-27 | 1989-02-01 | Fujitsu Ltd | System for controlling store buffer |
| JPH04102946A (ja) * | 1990-08-22 | 1992-04-03 | Nec Corp | 記憶装置制御方式 |
| JPH04112328A (ja) * | 1990-09-03 | 1992-04-14 | Nec Corp | ストア命令の縮退制御方式 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009289170A (ja) * | 2008-05-30 | 2009-12-10 | Nec Electronics Corp | データ処理装置、メモリコントローラ及びそのアクセス制御方法 |
| JP2014523032A (ja) * | 2011-07-01 | 2014-09-08 | マイクロン テクノロジー, インク. | アライメントされていないデータの結合 |
| US9898402B2 (en) | 2011-07-01 | 2018-02-20 | Micron Technology, Inc. | Unaligned data coalescing |
| US10191843B2 (en) | 2011-07-01 | 2019-01-29 | Micron Technology, Inc. | Unaligned data coalescing |
| US10853238B2 (en) | 2011-07-01 | 2020-12-01 | Micron Technology, Inc. | Unaligned data coalescing |
Also Published As
| Publication number | Publication date |
|---|---|
| US5459842A (en) | 1995-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06103151A (ja) | パーソナルコンピュータ | |
| US6330630B1 (en) | Computer system having improved data transfer across a bus bridge | |
| US5528764A (en) | Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period | |
| US5524235A (en) | System for arbitrating access to memory with dynamic priority assignment | |
| US5659696A (en) | Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required | |
| US6405271B1 (en) | Data flow control mechanism for a bus supporting two-and three-agent transactions | |
| US6449677B1 (en) | Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus | |
| US5986677A (en) | Accelerated graphics port read transaction merging | |
| US5544346A (en) | System having a bus interface unit for overriding a normal arbitration scheme after a system resource device has already gained control of a bus | |
| US5255374A (en) | Bus interface logic for computer system having dual bus architecture | |
| US5802324A (en) | Computer system with PCI repeater between primary bus and second bus | |
| US5911084A (en) | System and method for accessing peripheral devices on a non-functional controller | |
| US5970236A (en) | Circuit for selectively performing data format conversion | |
| US5313627A (en) | Parity error detection and recovery | |
| US6167476A (en) | Apparatus, method and system for accelerated graphics port bus bridges | |
| JP3251830B2 (ja) | Pciパリティ・エラーに応答する構成を有するpci/isaブリッジ | |
| US6321307B1 (en) | Computer system and method employing speculative snooping for optimizing performance | |
| US7886088B2 (en) | Device address locking to facilitate optimum usage of the industry standard IIC bus | |
| AU688718B2 (en) | Signaling protocol conversion between a processor and a high-performance system bus | |
| US6266723B1 (en) | Method and system for optimizing of peripheral component interconnect PCI bus transfers | |
| US5832243A (en) | Computer system implementing a stop clock acknowledge special cycle | |
| US5809260A (en) | Burst mode data transmission retry of previously aborted block transfer of data | |
| US6883057B2 (en) | Method and apparatus embedding PCI-to-PCI bridge functions in PCI devices using PCI configuration header type 0 | |
| US7327370B2 (en) | Memory controller hub interface | |
| US5923857A (en) | Method and apparatus for ordering writeback data transfers on a bus |