JPH05210589A - 高速バッファコピー方法 - Google Patents

高速バッファコピー方法

Info

Publication number
JPH05210589A
JPH05210589A JP3359410A JP35941091A JPH05210589A JP H05210589 A JPH05210589 A JP H05210589A JP 3359410 A JP3359410 A JP 3359410A JP 35941091 A JP35941091 A JP 35941091A JP H05210589 A JPH05210589 A JP H05210589A
Authority
JP
Japan
Prior art keywords
buffer
memory
page
contents
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3359410A
Other languages
English (en)
Inventor
Fernando Marcias-Garza
フェルナンド・マシアス−ガルザ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH05210589A publication Critical patent/JPH05210589A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】キャッシュメモリ及びページメモリモードのア
ーキテクチャを備えたパーソナルコンピュータシステム
において、バッファコピーを高速に操作させる。 【構成】主メモリ58内の第1バッファの内容をマイク
ロプロセッサ20のレジスタに読出し、同時にキャッシ
ュメモリ28に書込む。その後、第1バッファを再度読
出し、キャッシュメモリ28から得られる実際のデータ
値を伴って主メモリ58内の第2バッファに書込む。 【効果】各データ値毎に第1バッファメモリアドレスか
ら第2バッファメモリアドレスへのメモリページの変更
に関連する過剰のウェイトステートを回避できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パーソナルコンピュー
タ用のメモリマネージメントの分野に関し、特にページ
モードのメモリアーキテクチャを用いキャッシュメモリ
を用いたパーソナルコンピュータにおいて高速のバッフ
ァコピーを形成する方法に関する。
【0002】
【従来の技術】パーソナルコンピュータシステムは、よ
り強力になってきて、現在では処理能力が既にミニコン
ピュータの領域まで達している。デバイス製造者は、パ
ーソナルコンピュータ市場に迅速に採用された高速でよ
り強力なマイクロプロセッサを開発した。このようなマ
イクロプロセッサの例は、インテル社の80386及び
80486マイクロプロセッサを含んでいる。マイクロ
プロセッサが漸増的に早くなってくると、メモリデバイ
スの速度も、アプリケーションの実行速度の決定に主要
なファクタなる。高速メモリデバイスは、市場で求めら
れるが、高価であるのでコンピュータシステムの主メモ
リの使用に向かない。
【0003】主メモリとして高速メモリの汎用使用の代
りは、キャッシュメモリシステムを用いることである。
キャッシュメモリシステムにおいては、小容量の高速メ
モリが一時記憶領域として使用され、これより低速だが
極めて安価なメモリデバイスがコンピュータシステムの
主メモリに使用される。主メモリの部分に含まれるデー
タは、高速メモリに複写される。キャッシュメモリに記
憶されたデータを必要とする操作は、通常のメモリをア
クセスする操作より高速に実行される。キャッシュ制御
器は、所望の情報がキャッシュメモリ内に含まれている
か否かを決定し、キャッシュメモリからのデータ転送を
制御するために使用される。キャッシュメモリのマネー
ジメント技術は当業界内で公知である。例えば、インテ
ル社は、82385キャッシュ制御器を含む80386
マイクロプロセッサのファミリデバイスを開発した時に
キャッシュメモリ概念を使用した。これらデバイスの詳
しい情報は、1989年インテル社の「マイクロプロセ
ッサ及び周辺機器ハンドブック第1巻」を参照してい
る。キャッシュに記憶される情報量はキャッシュサイズ
の関数である。そこには、どの情報をキャッシュメモリ
に残すべきかを決定する数々のアルゴリズムがある。1
つのアルゴリズムは、キャッシュメモリ内の現在最も使
用されていない(LRU)情報が次のキャッシュミス操
作で置換されるというLRU技術である。
【0004】メモリデバイスの改良速度の他の手段は、
ページモードのダイナミック・ランダム・アクセス・メ
モリ(DRAM)の使用である。ページモードのDRA
Mは、安価なRAMを使用した主メモリのアクセス速度
を向上させるためにどの型のコンピュータシステムアー
キテクチャに用いられてもよい。メモリは、メモリ配列
内の特定の位置のためのアドレスを出すマイクロプロセ
ッサによってページメモリデバイスにアクセスされる。
このアドレスはメモリ制御器にロードされる。メモリ制
御器は、マイクロプロセッサか出力される全アドレスか
らDRAMで使用されるロー及びカラムアドレスを形成
するタスクを取り扱う。まずローアドレス次にカラムア
ドレスをDRAMアドレスバスに送り、DRAMの特定
のタイミング要求を一致させるにはかなりの時間がかか
ることを認識しなければならない。ページング技術は、
特定のメモリアドレスをアクセスするために必要とする
時間を減少させるために使用される。ページモードのD
RAMデバイスを用いたコンピュータシステムにおいて
は、マイクロプロセッサが前にDRAMデバイス内の特
定のメモリアドレスをアクセスするために全アドレスを
発生する。しかしながら、メモリ制御器は、前のアドレ
スラッチと、DRAMのローアドレスが連続メモリ要求
間に変更すべきか否かを決定する比較器とを含んでい
る。もし、そうならば、全ロー及びカラムアドレスサイ
クルを発生させなければならない。しかしながら、も
し、所望のメモリアドレスが既にアクセスしたのと同じ
ページにあるようにローアドレスを変更しなかったなら
ば、新規なカラムアドレスのみを供給する必要がある。
その次のメモリアドレスをアクセスするために必要とす
る時間は、メモリ制御器がローアドレス及びカラムアド
レスを発生して全アドレスサイクルを形成する場合に必
要とするそれより相当短縮されることが認識される。も
しメモリ操作が同じページで実行されるならば、これは
ページヒットとして知られている。異なったページが要
求されためにローアドレスを変更しなければならない場
合には、これはページミスとして知られている。
【0005】
【発明が解決しようする課題】コンピュータシステムの
アプリケーションの通常の操作は、第2バッファにコピ
ーされるべき、第1バッファに記憶されたデータを呼び
出すことである。通常、2つのバッファが異なったメモ
リページに配置されている。この状況が発生した時に
は、システムの性能がバッファコピー操作中に被る。例
えば、もしデータの各要素がページPiに配置されたソ
ースバッファから読出されて、要素−要素基準でページ
Pjの目標バッファに書込まれるならば、読出及び書込
ページヒットが発生しない。コンピュータシステムのメ
モリ制御器は、ページPiから要素(データ)を読出
し、それをページPjに書込み、メモリ制御器が書込み
を形成するためにページの変更を要求した時に、ロー及
びカラムアドレスの発生を要求するページ書込ミスが発
生する。その後、メモリ制御器は、ページPiから次の
要素を読出し、メモリ制御器がページPjからPiにイ
ンデックスしなければならない時にページ読出ミスが発
生する。各読出或は書込操作が関連のページミスを発生
させることが認識される。これらページミスは、ページ
ヒットが発生した場合と比較してバッファコピー時間が
劇的に増加する。従って、バッファコピー操作中に、メ
モリページヒットの数を最大にさせる方法の必要性が存
在する。
【0006】
【課題を解決するための手段】本発明は、キャッシュメ
モリを持ち、ページメモリアーキテクチャを用いたパー
ソナルコンピュータのバッファコピー操作を達成するに
要求される時間を最小化させる方法を指向している。
【0007】キャッシュメモリを用いたコンピュータシ
ステムにおいて、キャッシュメモリへの書込は、ソース
バッファからの読出しと同時に発生し、メモリ制御器に
とって目につかないものである。本発明において、要求
は、ソースバッファの内容をマイクロプロセッサのレジ
スタにロード及び読出すために発生される。このデータ
がレジスタにロードされると、キャッシュメモリにも書
込まれる。ソースバッファからマイクロプロセッサのレ
ジスタへの次の読出は、レジスタの前内容を書き換える
効果を持っている。しかし、連続読出/ロードは、キャ
ッシュメモリ内の異なった位置に対してである。従っ
て、バッファ読出要求は必須的にキャッシュをソースバ
ッファの内容で充満させる。メモリ制御器は、ソースバ
ッファが配置されるページをアドレスするためにメモリ
制御器が連続するので、読出操作中にページを変更でき
ない。ソースバッファがメモリページの境界を交差即ち
越えた時には、ページの境界でロー及びカラムアドレス
を要求する1ページミスとなり、メモリからの次の読出
が再びカラムアドレスのみを要求するページヒットとし
て発生する。従って、読出は、通常一連のページヒット
として理解される。
【0008】ソースバッファからのデータの読出及びソ
ースバッファの内容のキャッシュメモリへのロードに続
いて、ソースバッファからターゲット(目標)バッファ
へのコピーの要求が発生する。しかし、キャッシュメモ
リはソースバッファの内容でロードされているので、通
常メモリ制御器の監督下で主メモリのソースバッファ位
置への全読出がキャッシュ制御器によって妨害され、キ
ャッシュメモリから情報が提供される。従って、読出要
求はメモリ制御器によって有効にマスクされる。メモリ
制御器が目標バッファへの一連の書込操作を見守るのみ
である。更に、目標バッファが通常メモリの単一ページ
に配置されるので、書込が総てページヒットとなる。目
標バッファが単一ページを越え、即ちページ境界を交差
した時には、境界を交差するので、1つのみの書込ペー
ジミスとなり、次の書込が再びページヒットとして発生
する。
【0009】従って、本発明は、メモリページヒットの
数を最大にさせることによって、バッファコピー操作の
形成に要求される時間を最小化して、1つの位置からの
バッファをメモリの他のページの位置に正しくコピーす
るに要求される時間より少なくさせる。更に、本発明は
一時記憶空間としてキャッシュを使用することによっ
て、一時記憶に必要な追加のハードウエアを必要としな
い。
【0010】本発明のより良い理解は、以下の好ましい
実施例の詳細な記載が添付の図面に関連して考慮された
時に得られる。
【0011】
【実施例】図1〜図3を参照すると、英字符号Cは、本
発明を具体化したコンピュータシステムを示している。
このシステムCは、図1〜図3に分割して示され、これ
ら図1〜図3の相互接続部が1から8までの数字に丸を
付けて示している。システムCは、4つのバスを介して
相互接続された数々のブロック要素からなっている。中
央処理ユニットCPUは、ローカルバス26に各々接続
されたプロセッサ20と、数値演算コプロセッサ22
と、キャッシュ制御器24及び関連の論理回路とを備え
ている。このキャッシュ制御器24には、高速キャッシ
ュメモリ(データRAM)28と、キャッシュでないメ
モリのアドレスマッププログラム回路30と、キャッシ
ュでないアドレスメモリ32と、アドレス交換ラッチ回
路34と、データ交換トランシーバ36とがそれぞれ関
連している。また、CPUには、ローカルバスレディ回
路38と、次のアドレス(NA)イネーブル回路40
と、バス要求ロジック回路42とがそれぞれ関連してい
る。
【0012】プロセッサ20は、図示のようにインテル
社製の80386或は80486マイクロプロセッサが
好ましい。このインテル社の80486マイクロプロセ
ッサは、8キロバイトの内部キャッシュメモリと数値演
算コプロセッサとを含み、従って数値演算コプロセッサ
22を必要とせず、外部キャッシュが高性能を得るため
に要望されない限り、キャッシュ制御器24及びキャッ
シュデータRAM28を必要としない。80386及び
80486の差異が当該分野の技術者で理解されるの
で、80386による操作を説明する。プロセッサ20
は、ローカル(プロセッサ)バス26とインタフェース
する制御、アドレス及びデータライン(バス)を持って
いる。コプロセッサ22は、ローカルバス26及びプロ
セッサ20と公知な方法でインタフェースするウェイテ
ック社のWTL3167或はインテル社の80387数
値演算コプロセッサが好ましい。キャッシュメモリ28
は、要求されたキャッシュメモリ動作を実行するために
キャッシュ制御器24の制御下でローカルバス26のア
ドレス及びデータ線とインタフェースする高速スタチッ
クRAMが好ましい。キャッシュ制御器24は、二方式
セット連想形マスタモードで操作されるインテル社製の
82385が好ましい。このキャッシュシステムは、6
4キロバイトのキャッシュRAMと64ビットのライン
サイズを吹くことが好ましい。好ましい実施例において
は、これらIC部品が33MHzで動作する。アドレス
交換ラッチ回路34及びデータ交換トランシーバ36
は、プロセッサ20によってキャッシュ制御器24とイ
ンタフェースし、ローカルバス26と、ホストバス44
との間にローカルバスインタフェースを形成する。
【0013】ローカルバスレディ回路38は、ローカル
バス26へのアクセスを制御するバス作動可能信号を形
成し、次の周期が始められることを指示する論理回路で
ある。NAイネーブル回路40は、パイプライン方式の
アドレスモードにおけるサブシステム要素によって用い
られるデータ或はコードの次のアドレスがローカルバス
26に転送できることを指示するために用いられる。
【0014】キャッシュでないメモリのアドレスマップ
プログラマ30は、プロセッサ20及びキャッシュでな
いアドレスメモリ32と協働して、キャッシュでないメ
モリの位置をマップする。キャッシュでないアドレスメ
モリ32は、種々の型のキャッシュメモリの不統一さを
回避するためにキャッシュでないシステムメモリの領域
を指定するために用いられる。バス要求ロジック回路4
2は、プロセッサ20及び関連の装置によって用いられ
て、要求されたデータがキャッシュメモリ28になく、
システムメモリへのアクセスが要求されている時のよう
な情況において、ホストバス44へのアクセスを要求す
る。ページヒット検知回路43は、ページヒット或はミ
ス状態があるか否かを指示する信号を形成するために、
連続アドレス決定を形成する。図面において、システム
Cは、ローカルバス26、ホストバス44、図2に示す
拡張型産業標準アーキテクチャ(EISA)バス46及
びXバス90を持つように構成されている。図2及び図
3に示されたシステムCの部分は、後にも詳しくと説明
しないが、これは、コンピュータシステム全体の実施例
を説明するほどには、本発明にとって重要ではないから
である。
【0015】図2及び図3に示すシステムCの部分は、
ホストバス44と、EISAバス46とをインタフェー
スするために、必須のEISAバス46と、EISAバ
ス制御器48と、データラッチ及びトランシーバ50
と、アドレスラッチ及びバッファ52とを備えた必須的
なEISAシステムである。勿論、図2には、EISA
基準のコンピュータシステムに使用される数々の要素を
組み込む総合システム周辺装置(ISP)54が記載さ
れている。このISP54は、プロセッサ20へのアク
セスを必要としないで、図1の主メモリ58或はEIS
Aスロット及び入力/出力(I/O)位置に含まれるメ
モリへのアクセスを制御するDMA制御器56を備えて
いる。主メモリ配列58は、ローカルメモリとして考慮
され、システムの特定の要求に適合させるに好適な規模
のメモリ回路配列を備えている。勿論、ISP54は、
割込制御器70、マスクできない割込回路72及びシス
テムタイマー74を含み、このシステムタイマー74
は、EISA仕様書及び従来の慣習に従った方法で割込
信号の制御は、必要なタイミング信号及び待ち状態を発
生する。好ましい実施例においては、プロセッサで発生
した割込要求は、従来のインテル社製の8259型割込
制御器をエミュレートし、拡張したデュアル割込制御回
路を経由して制御される。勿論、ISP54は、バス仲
介回路75を含んでいる。このバス仲介回路75は、バ
ス制御器48と協働して、キャッシュ制御器24と、D
MA制御器56と、EISAバス46に配置されたバス
マスタ装置とによるEISAバス46用の種々の要求間
で制御及び仲介する。主メモリ配列58は、ダイナミッ
クランダムアクセスメモリ(DRAM)が好ましい。こ
の主メモリ58は、データバッファ回路60、メモリ制
御器62及びメモリマッパー68を経由してホストバス
44とインタフェースする。このバッファ回路60は、
データの転送、パリティの生成及び検査機能を形成す
る。メモリ制御器62及びメモリマッパー68は、アド
レスマルチプレクサ及びカラムアドレス(CAS)スト
ローブバッファ66及びローアドレス(RAS)イネー
ブル回路64を経由して主メモリ58とインタフェース
する。メモリ制御器62は、ページヒット検知回路43
からページヒット信号を受信して、ロー及びカラムアド
レスの両者を供給しなければならないか或はカラムアド
レスのみを供給しなければならないかを決定する。
【0016】EISAバス46は、ISA及びEISA
制御バス76及び78、ISA及びEISAデータバス
80及び82及びアドレスバス84、86及び88を備
えている。システム周辺装置は、EISAバス46から
のISA制御バス76と組み合せられてXバス90を経
由してインタフェースされる。Xバス90用の制御及び
データ/アドレス転送がXバス制御回路92、データト
ランシーバ94及びアドレスラッチ96によって容易に
なる。
【0017】このXバス90には、コネクタ100及び
102を各々経由して好適なキーボード及びマウスをX
バス90とインタフェースさせるキーボード/マウス制
御器98のような種々の周辺装置が取付けられる。ま
た、Xバス90には、システムCのため及びシステムビ
デオ操作のための基本操作ソフトウェアを含む読出専用
メモリ106が取付けられる。更に、Xバス90を経由
したシステムCには直列通信ポート108が接続され
る。ブロック回路110には、フロッピー及び固定ディ
スクサポートと、並列ポートと、第2の直列ポートと、
ビデオサポートとが設けられている。
【0018】図1〜図3は、キャッシュメモリ28を持
ち、RAM58にページメモリデバイスを用いた例示的
パーソナルコンピュータシステムを記載している。本発
明はこのようなシステムでのバッファコピー操作の方法
である。本発明の方法は図1〜図3に記載されたコンピ
ュータシステムに限定されず、ページメモリデバイス及
びキャッシュメモリを持つどのコンピュータに用いても
よい。
【0019】
【表1】 表 1 表 2 行 行 0a buff size equ 1024*10 0a buff size equ 1024*10 0b sourcebuff dw buff size dup 0b sourcebuff dw buff size dup 0c destbuff dw buff size dup 0c destbuff dw buff size dup 0d stack db 1024 dup 0d stack db 1024 dup **セグメントレジスタ用意** **セグメントレジスタ用意** 0e mov ax, @data 0e mov ax, @data 0f mov ds, ax 0f mov ds, ax 0g mov es, ax 0g mov es, ax 0h mov ss, ax 0h mov ss, ax 0i mov ax, offset stack 0i mov ax, offset stack 0j mov sp, ax 0j mov sp, ax **バッファコピー** **バッファコピー** 01 mov si, offset sourcebuff 01 mov si, sourcebuff 02 mov di, offset destbuff 02 mov di, offset destbuff 03 mov cx, buff size/4 03 mov cx, buff size/4 04 mov rep movsd 04 push si 05 push cx 06 rep lodsd 07 pop cx 08 pop cx 09 rep movsd
【0020】表1は、バッファコピー操作に用いられる
通常の方法を設定した80386のアセンブラコードの
リストである。一方、表2は、本発明者で開示した最良
モードを示し、本発明の方法を設定した80386のア
センブラコードのリストである。表1及び表2に示され
るアセンブラ語のコードは、80386及び80486
マイクロプロセッサ用に定義された命令を含み、インテ
ル社のマイクロプロセッサのマニュアル及びマイクロプ
ロセッサの操作及び言語を記述したの他の出版物に更に
説明されている。表1及び表2から理解されるように、
実際のバッファコピー操作を行う前に実行されなければ
ならない種々の準備操作がある(0a〜0d行参照)。
これらは両者の方法に共通である。図示の実施例におい
ては、2つのバッファ及びスタックは、実験的理由から
連続したメモリ位置に設定されるが、実際これら3つの
領域が隣接せず、通常別々のメモリページに配置され
る。本記述においては、注釈しない限りこの別々のペー
ジ位置を仮定する。
【0021】第2に、セグメントレジスタ(インテルの
マイクロプロセッサマニュアルに詳述)は、コピー操作
を実行するために設定される(0e〜0j行参照)。こ
れらの段階は、再度、バッファコピーの通常方法と本発
明の方法との両者に共通である。
【0022】表1のバッファコピー用の通常方法におい
ては、ソース及び目標ポインタは、コピーするバッファ
(ソースバッファ、Bs)及び情報がコピーされるバッ
ファ(ターゲット即ち目標バッファ、Bt)に対して設
定される(表1、01〜02行参照)。個別転送の数も
決定される(表1、03行参照)。図1〜図3に記載し
たコンピュータシステムは32ビット(4バイト)幅の
転送の使用を考えている。従って、実行される転送数は
バイト単位のBUFF SIZEの4分の1である。そ
の後、この通常方法は、ソースバッファからの一連の読
出としてソースバッファBsから目標バッファに情報を
コピーして、REP MOVSD命令として目標バッフ
ァに書込むように進行する。(表1、04行参照)。
【0023】ソースバッファBs用のメモリアドレスは
目標バッファBtとして同じメモリページに現れないこ
とが共通の出来事である。第1の読出操作は、メモリ制
御器62に特定のメモリページでソースバッファBsを
読出すことを要求する。このメモリ制御器62はその後
転送内容を目標バッファBtに書込まねばならない。も
し、目標バッファBtアドレスが異なったメモリページ
にあるならば、転送内容を書込むために、新規なメモリ
ページを参照した新規なロー及びカラムアドレスを備え
た全アドレスをメモリ制御器62が供給するまでコンピ
ュータが待機していなければならない。これは、書込操
作を完了させるためにメモリ制御器62がメモリページ
を変更させたことを指示する書込ページミスとして知ら
れている。その後、ルーチンは、次に転送されるべき4
バイトを読出すようにする。しかしながら、メモリ制御
器62は、メモリ制御器62の操作用のウエイト(ペナ
ルティ)を発生しながら、ソースバッファBsアドレス
が配置されたメモリページにアクセスするために、今目
標バッファBtをアドレスし、再度全アドレスを供給し
なければならない。これは読出ページミスとして知られ
ている。その後、この通常方法は、ソースバッファBs
の全内容が目標バッファBtにコピーされるまで、転送
される各4バイト毎に書込ページミス及び読出ページミ
スを含む、ソースバッファBsの内容を読出及び書込む
ことを進める。
【0024】本発明の方法は表2に設定される。容易に
理解されるように、本発明の方法に要求される前段階は
通常のバッファコピー方法のそれに同一である(表1の
0a〜03行は表2の0a〜03行と同一である)。本
発明の方法は、その後、ソースバッファBsアドレス及
び転送数を、スタックにプッシュすることによってセー
ブされる(表2、04〜05行参照)。バッファ転送操
作は、全ソースバッファBsの内容をマイクロプロセッ
サ20の単一レジスタにロードすることによって始まる
(表2、06行参照)。レジスタにロードされた各連続
ダブルワードは前のダブルワードに重ね書きされる。こ
れは、情報がレジスタにロードされるので許容され、キ
ャッシュの内容を重ね書きしないでキャッシュメモリ2
8に書込まれる。プロセスは、ソースバッファBsの全
内容がキャッシュメモリ28にロードされるまで連続し
て実行される。キャッシュメモリ28へのソースバッフ
ァの内容のロードは、その内容を同時にマイクロプロセ
ッサ20のレジスタにロードして形成される。従って、
このプロセスの完了後、キャッシュメモリ28は全ソー
スバッファのコピーを含んでいる。
【0025】通常の方法と異なって、本発明の方法は、
要素を読出す時に各要素を目標バッファBtに直ちに書
込むことを意図しない。本方法は、目標バッファBtへ
の書込みの意図なしにブロック読出を形成する。ソース
バッファBsが通常メモリ58の単一ページに配置され
ているので、マイクロプロセッサ20のレジスタ及びキ
ャッシュメモリ28への内容のロードは、レジスタの書
込み操作がメモリ58のデバイスに影響せず、従って、
ページヒット検知回路43、メモリ制御器62或はメモ
リ58のデバイス自身によって認識されないので、メモ
リ制御器62がメモリ58のページを変更する必要がな
いので、一連の読出ページヒットとしてコンピュータシ
ステムによって認識される。ソースバッファBsがメモ
リ58の1頁以上に配置されている限り、メモリ制御器
62がページを変更した時に読出ページミスが発生す
る。しかし、次の読出が読出ページヒットとして発生す
る。従って、全キャッシュのロードは、通常のバッファ
コピー方法における各要素の転送に伴う読出ページミス
に起因する拡張された遅延が発生するので、非常に短時
間で完了する。
【0026】本方法においては、LODSD命令がメモ
リ−レジスタデータ転送を形成するために使用され、同
時にソースバッファBsの内容がキャッシュメモリ28
にロードされる。インテルの80386或は80486
以外のマイクロプロセッサを基準としたコンピュータシ
ステムは、それらの命令セットとして類似のメモリ−レ
ジスタデータ転送を持っていない。ソースバッファBs
の内容のキャッシュメモリ28へのロードの別の方法
は、MOVSDのようなメモリ−メモリデータ転送を用
いている。このメモリ−メモリデータ転送は、本方法の
形成に要する時間を増加させることが認識される。しか
し、要する時間は、マイクロプロセッサ20にソースバ
ッファBsを読出し、その内容をソースバッファBsの
同じメモリ位置に戻すように書込むことを命令して最小
化される。従って、メモリ制御器62は、一連の読出ペ
ージヒット及び書込ページヒットとして読出及び書込み
を形成でき、一方ソースバッファBsの内容をキャッシ
ュメモリ28にロードされる。ページミスを回避するた
めにソースバッファ−ソースバッファ読出及び書込みの
使用は、かなりの変更なしに本発明の方法内で用いても
よい。しかし、表2、06行に規定されるメモリ−レジ
スタ転送の使用は、この実施例の好ましい方法である。
【0027】本方法は、その後、ソースバッファBsア
ドレスの位置及びスタックからの転送数を回復する(表
2、07〜08行参照)。その後、本方法は、コンピュ
ータシステムにソースバッファBsの内容を目標バッフ
ァBtにコピーするように命令する(表2、09行参
照)。しかし、コンピュータシステムがソースバッファ
Bsから読出操作を始めた時には、情報が既にキャッシ
ュメモリ28にロードされているのでキャッシュ制御器
24が実際の読出操作を形成する。メモリ制御器62
は、読出操作が高速キャッシュメモリ28から直接実行
されるので、主メモリ58にアクセスしなくてもよい。
ソース情報が直接キャッシュメモリ28から読出される
ので、メモリ制御器62は、ソースバッファBsが配置
され、キャッシュメモリ28から読出がメモリ制御器6
2に見えないページをアクセスする必要がない。データ
はその後目標バッファBtに書込まれる。書込操作は、
主メモリ58をアクセスする唯一の操作であり、従っ
て、ページミスの故に1操作の全書込アクセス時間が発
生し、残りの操作が書込ページヒットとして発生するペ
ージの境界を交差しない限り操作が一連の書込ページヒ
ットとして発生する。
【0028】従って、MOVE操作は、目標バッファB
tへの一連の書込ページヒットとしてメモリ制御器62
で認識される。このサイクルは全内容が転送されるまで
繰り返される。従って、本発明は、バッファコピーの通
常方法に関連した一連の交互のページ読出及びページ書
込ミスを回避できる。
【0029】図4及び図5は、本発明の譲受人であるコ
ンパックコーポレーションに譲渡され、1990年1月
2日に出願された米国特許出願第341670号に開示
された、改良ページメモリ制御器62を有するコンピュ
ータシステムへの本発明の方法の適用を説明する。特
に、そこに開示されたコンピュータシステムは図1〜図
3に示す82385キャッシュ制御器24に結合した3
3MHz80386マイクロプロセッサ20を有するE
ISA基準のコンピュータシステムである。このコンピ
ュータシステムは、ページモードメモリ58デバイスを
利用し、図1に示すローカルプロセッサバスにページヒ
ット検知を形成する。カラムアドレス及びデータ値は、
次のサイクルが部分的に重複するようにサイクルを早く
終了させるために書込操作にメモリ制御器62によって
ラッチされる。システムのデザインは、0ウェイトステ
ートページヒット書込操作、2ウェイトステート読出ペ
ージヒット操作、4ウェイトステート書込ページミス操
作及び7ウェイトステート読出ページミス操作ができ
る。図4及び図5に記載されたウェイトステートが米国
特許出願第431670号に開示されたタイプのコンピ
ュータシステムと明確に組合わされることは理解されよ
う。他のコンピュータ構造は種々の操作のため別々のウ
ェイトステートに帰する。実際に、操作に要する時間は
80386マイクロプロセッサに関するインテル社の出
版物の情報から得られる。
【0030】コンピュータシステムはシステムの操作に
使用される少なくとも2種類のクロックを有する。CL
K1信号は公称プロセッサ速度で、この場合33MHz
である。マイクロプロセッサ20の操作はCLK1サイ
クルで測定される。他のクロックは上記コンピュータシ
ステムを66MHzで動作させるCLK2信号で、80
386の場合、マイクロプロセッサ20に適用された現
実のクロック信号である。従って、CLK2信号の2サ
イクルはCLK1信号の1サイクルと時間的に等価であ
る。図4及び図5における相対時間を更に容易に説明す
るためには全操作がCLK2サイクルで測定される。か
くして、CLK1の2サイクルの終了に必要な操作は、
CLK2の4サイクルの終了に必要なものとして描かれ
る。更に上記ウェイトステートは、CLK2信号が操作
を1つ進めるためにメモリ制御器62に使用された基準
クロック信号であるので、単一のCLK2サイクルと等
価である。タイミングは80386マイクロプロセッサ
20のプリフェッチ能力を無視すると、幾分簡略化され
るが、この簡略化は本発明の操作をよく説明しているこ
とに明記されたい。正確なタイミングシーケンスのプリ
フェッチ能力の効果は当業者に理解され認識されていよ
う。
【0031】図4を参照し、ブロック400及び402
は表1、01行におけるMOV命令を果たすため必要と
される時間量を示す。MOV命令はソースバッファBs
のアドレスをレジスタにロードする。MOV命令は必須
的に読出操作400であり、2つのCLK1即ち4つの
CLK2期間を必要とする。後述する各命令に必要な時
間は80386仕様内でインテルレファレンスマニュア
ルにある。実施例に組み込まれたウェイトステートは上
記の通りである。図4においては、メモリ制御器62が
メモリ58の他のページでのメモリ58位置を指標して
いると仮定する。従って、READ操作400は7ウェ
イトステート即ち7CLK2期間のPAGE MISS
READペナルティ402を起こす。ブロック400
及び402は、表1、01行に示した第2のMOV命令
の読出操作及びウェイトステートを表し、それは目標バ
ッファBtのアドレス又はソースバッファBsの内容が
マイクロプロセッサ20のレジスタにコピーされるべき
バッファにロードされる。READ操作404は4CL
K2サイクルを必要とする。しかし、READ404は
命令のある同一のメモリ58ページに向けられるだろ
う。かくして、2CLK2期間のペナルティ406はP
AGE MISS READペナルティ402を伴う7
CLK2期間よりも有意に短い。同様に、ブロック40
8及び410は表1、03行の命令を実行するに必要な
時間を示す。ブロック408及び410において、ソー
スバッファBsからの転送数はレジスタ(表1、03
行)にロードされる。好ましい実施例に使用されるコン
ピュータは、転送毎に32ビットの転送幅の能力があ
る。従って、実行転送数は、転送されるべき全バイト数
を4で割った数に等しい。
【0032】ブロック420から430はREP MO
VSD命令(表1、06行)により実行された活動を示
す。このブロックのシークエンスは、実際にソースバッ
ファBsから目標バッファBtへの情報コピーを形成す
る。ブロック420は、必須的にループ機能を設定する
ためマイクロプロセッサ20に必要な時間を表し、それ
は表1、03行に記載された回数に追従するストリング
操作を形成し続けるであろう。読出及び設定操作ブロッ
ク420は、メモリ58から命令を読出す必要の故に2
CLK2信号サイクルのREAD PAGE 422を
発生する。ブロック424〜430はソースバッファの
内容をコピーするループ操作を示す。ブロックREAD
操作424はソースバッファBsから同時に4バイトを
読出す。この操作はCLK2の4サイクルを必要とす
る。ソースバッファBsがMOVSD命令と同じページ
にないと仮定すると、CLK2の7サイクルのREAD
PAGE MISSペナルティ426が各読出毎に発
生する。4バイトを読むとき、バイトはWRITE操作
で目標バッファBtに書込まれる。目標バッファBtは
メモリ58の異なるページにあると仮定される。従っ
て、WRITE操作は、CLK2の4サイクルのWRI
TE PAGE MISSペナルティ430を起こす。
その後、操作が次の読出操作のためブロック424にル
ープされる。ソースバッファBsが目標バッファBtか
らメモリ58の他ページにあるので、メモリ制御器62
は次のREAD操作424のためにメモリ56の適当な
ページに指標されなければならない。かくして、REA
D PAGE MISSペナルティ426が得られる。
同様に、あらゆるWRITE操作はWRITE PAG
EMISSペナルティ430が伴われる。ソースバッフ
ァBs内の情報は全てのバイトが転送されるまで同時に
4バイトづつコピーされる。これはパーソナルコンピュ
ータに一般に使用される通常のバッファコピー操作方法
を達成する。
【0033】表2に記載されたように、本発明の方法の
命令時間表示は図5で説明される。図5のブロック44
0〜450は、タイミング及び機能が図4のブロック4
00〜410のそれと同一である。表1、01〜03行
及び表2、01〜03行から理解される通り、2つの方
法で使用されるコマンドは同一である。図5を参照する
と、ブロック450は表2、06行における第1のPU
SH命令に対応する。PUSH操作460は、ソースバ
ッファアドレスをメモリ58のスタックに書込即ちプッ
シュして、それをセーブする。PUSH命令の読出はC
LK2の2サイクルのREAD PAGE MISSペ
ナルティ426を起こす。メモリ58へのアドレスの書
込は、スタックが命令と異なるメモリページにあると仮
定すると、WRITE PAGE MISSペナルティ
を起こす。これはブロック464として示される。第2
のPUSH操作466は、転送数(BUFF SIZE
/4)をメモリ58スタックに書込むことによって、そ
の転送数がセーブされる。第2のPUSH操作466
は、完了にCLK2の4サイクルを要する。メモリ制御
器62がメモリ58スタックの位置を(指標)指してい
るので、PUSH操作466は、命令の回復時にCLK
2の7サイクルのREAD PAGE MISS468
を発生する。PUSH操作460と同様に、PUSH操
作466は、データが実際スタックにプッシュされた時
に、CLK2の4サイクルのWRITEMISS PE
NALTY470を発生する。これの代わりに、当業者
にとっては、ソースバッファBsのアドレス及び実行さ
れるべき転送数(BUFF SIZE/4)が8038
6マイクロプロセッサの他の汎用レジスタに記憶されて
もよいことが理解される。
【0034】ブロック472〜484はREP LOD
SD命令に対応する(表2、08行参照)。REP L
ODSD命令は、マイクロプロセッサ20に、特定され
たアドレスからの4バイトキャラクタ列(ストリング)
をレジスタにロードさせ、そのアドレスを4バイト分イ
ンクリメントさせ、これらの操作をn回連続させる。但
し、nはCXレジスタに記憶された値であり(表2、0
3行)、この場合、BUFF SIZE/4回である。
バッファコピー操作の通常方法における現在のコンピュ
ータに関して、データ転送は4バイト即ち32ビット同
時に実行される。設定操作472は、LODSDストリ
ング命令を実行するために準備されるマイクロプロセッ
サ20で必要とする時間を表す固定ブロックで、CLK
2の10サイクルを要する。READ PAGE MI
SS 474ペナルティは、メモリ制御器62がメモリ
58のスタック位置を指したときにREP LODSD
命令の読出すときに発生する。第1のREAD操作47
6は、マイクロプロセッサ20に、ソースバッファBs
の第1の4バイトを読出させ、CLK2の6サイクルを
要する。このREAD操作476は、第1の4バイトを
マイクロプロセッサ20のレジスタにロードする。メモ
リ制御器62が命令を記憶しているメモリ58のアドレ
スを現在指しているので、読出操作476は、CLK2
の7サイクルのREAD PAGE MISS480ペ
ナルティを発生する。読出操作476が形成されると、
キャッシュ制御器24は、どの追加の処理時間を発生さ
せないで、同時にその4バイトをキャッシュメモリ28
にロードする。その後、マイクロプロセッサ20は、段
階482及び484を、合計(BUFF SIZE/
4)回実行させる。READ操作482は、ソースバッ
ファBsから次の4バイトを読出し、それを、レジスタ
の内容を有効に重ね書きしながら、マイクロプロセッサ
20のレジスタにロードする。メモリ制御器62が既に
ソースバッファBsが配置されたページを指しているの
で、READ操作482は、CLK2の2サイクルのR
EAD PAGE HIT484を発生する。マイクロ
プロセッサ20は、ソースバッファBsの次の4バイト
を読出し、レジスタの内容を重ね書きを続けて、ソース
バッファBsの全内容をキャッシュメモリ28に有効に
ロードする。
【0035】POP操作486は、表2、07行にリス
トされた命令に対応する。POP操作486は、実行時
にCLK2の16サイクルを要し、ソースバッファBs
が配置されたメモリ58のページをメモリ制御器62が
指している時に、CLK2の7サイクルのREAD P
AGE MISS488を発生する。勿論、POP操作
486は、操作を形成しなければならない回数を記憶し
た時にCLK2の7サイクルのREAD PAGE M
ISS490を発生する。第2のPOP操作492も、
CLK2の16サイクルを要し、ソースバッファBsの
位置を再記憶される。メモリ制御器62が現在スタック
が配置されたメモリ58のページを指しているので、C
LK2の7サイクルのREAD PAGE MISS4
94ペナルティは、命令が記憶されたメモリ58のペー
ジをメモリ制御器62が指していなければならないの
で、POP操作482によって発生する。POP操作4
86と同様に、POP操作492は、スタックからのデ
ータの読出しにCLK2の7サイクルのREAD PA
GE MISS496を発生する。前述のように、ソー
スバッファBsのアドレス及び実行されるべき転送数
は、汎用レジスタに記憶でき、同様な方法で回復でき
る。
【0036】表2、11行に表れるREP MOVSD
命令は、ブロック498〜512に示される。マイクロ
プロセッサ20はループストリング操作を形成するため
に設定しなければならない。ムーブストリング設定及び
他のオーバヘッド498は実行時にCLK2の16サイ
クルを要する。メモリ制御器62がスタックが配置され
たメモリページに指向させるので、ムーブストリング設
定はCLK2の7サイクルのREAD PAGE MI
SS500を発生する。その後、マイクロプロセッサ2
0は、ソースバッファBsの第1の4バイトを読出し、
目標バッファBtに書込むように命令する。読出操作5
02は第1の4バイトの読出しに対応する。しかし、キ
ャッシュ制御器24は、所望のメモリ58のアドレスが
キャッシュメモリ28にあることを認識する。それ故、
READ操作502がキャッシュメモリ28から実行さ
れると、メモリ制御器62は、ソースバッファBsが配
置されたメモリ58のページを指向しない。このREA
D操作502は、CLK2の4サイクルを要し、キャッ
シュメモリ28から直接実行される。従って、読出ペナ
ルティがキャッシュメモリ28からの読出と関連しな
い。その後、マイクロプロセッサ20は、WRITE操
作504を形成し、キャッシュメモリ28から目標バッ
ファBtにソースバッファの第1の4バイトを書込む。
このWRITE操作504は、CLK2の4サイクルを
要し、メモリ制御器62が目標バッファBtが配置され
たページに指向させなければならない時に、CLK2の
4サイクルのWRITE PAGE MISS506を
発生する。その後、マイクロプロセッサ20は、ソース
バッファBsの全内容がキャッシュメモリ28から目標
バッファBtに書込まれるまで、段階510〜512を
形成する。読出操作510はCLK2の4サイクルを必
要とし、キャッシュメモリ28からの直接読出を示す。
また、書込操作512は実行時にCLK2の4サイクル
を必要とし、目標バッファBtが配置されたメモリ58
ページにメモリ制御器62が既に指しているので、ペー
ジ書込ペナルティが生じない。従って、マイクロプロセ
ッサ20はいかなるウェイトステートペナルティも起こ
さないで段階510及び512を実行し続ける。段階5
10及び512はソースバッファBsの全ての内容が目
標バッファBtに書込まれるまで、全部でBUFF−S
IZE/4−1回繰返される。これはソースバッファB
sから目標バッファBtにデータの移動を終える。
【0037】通常はバッファコピー操作を実行するため
に使用される多くのコマンドが本発明に使用されること
は、表1及び表2並びに図4及び図5から容易に理解さ
れるであろう。さらに、本発明がバッファコピー操作を
実行するために追加の工程を必要とすることは明白であ
る。通常の操作方法のための共通操作400〜410及
び本発明の方法の操作440〜450を除外した後、通
常の方法及び本発明の方法によりバッファコピー操作を
実行するに必要な時間差を決定してもよい。
【0038】通常の方法によるバッファコピー操作の実
行時に必要な合計時間T1は、次の式1により示され
る。 式1: T1=18+19n/4 但し、nは転送されるバイトの数である。
【0039】本発明の方法によるバッファコピー操作の
実行時に必要な時間T2は、共通操作を除外して、次の
式2により示される。 式2: T2=150+16(n/4−1) 但し、nは転送されるバイトの数である。
【0040】時間T1と時間T2とが等しくなる場合の
nの値、即ちバッファコピー操作にとって本発明の方法
が従来方法より有利となるブレイクイーブン点は、式2
と等しく式1をセットすることにより決定される。 式3: 18+19n/4=150+16(n/4−
1) 18+19n/4=134+16n/4 3n/4=116 n=154.67
【0041】従って、本発明の方法は、ソースバッファ
Bsから目標バッファBtにコピーされなければならな
いバイト数が少なくとも155バイトならば有利であ
る。大部分のバッファコピー転送が512バイト又はそ
れ以上で起こるので、本発明の方法は全てのバッファコ
ピー操作に有利であることが予想される。上述のブレイ
クイーブン点は、本発明の方法を説明するために使用さ
れたコンピュータシステムのみに適用し、特定の命令時
間、入手可能な命令、書込及び読出ページヒット並びに
ミス時間に基づくものであることに注目すべきである
が、ブレイクイーブン点が種々の他のコンピュータシス
テムにも存在することが明白である。例えば、段階02
のMOV DI、OFFSET、DESTBUFF命令
がMOV DI、SI命令に置換され、表2、08行の
REP LODSD命令がソースバッファに対するソー
スバッファのREP MOVSDに置換され、MOV
DI、OFFSET、DESTBUFF命令が08〜0
9行間に加えられたならば、前述のコンピュータシステ
ムに使用されるブレイクイーブン点(回数)は596で
ある。 式4: N=(200+32B+12−4A−4C)/(B+D−A−C−6)
【0042】ブレイクイーブン回数は、異なるページH
IT/MISS READ及びWRITEペナルティを
有する80386コンピュータシステムに対する一般用
語で表現されてもよい。式4において、AはPAGE
HIT READペナルティを示し、BはPAGE M
ISS READペナルティを示し、CはPAGEHI
T WRITEペナルティを示し、DはPAGE MI
SS WRITEペナルティを示し、全てのペナルティ
はCLK2のカウントてある。上述の例示のコンピュー
タシステムはPAGE HIT WRITEが起こった
時に、0ウエィトステートを生じる。しかし、一般的に
はPAGE HIT WRITEが考慮されなければな
らない。従って、PAGE HIT WRITEブロッ
クは、図5に示すWRITE操作512に追従する。
【0043】
【発明の効果】以上述べたように、本発明による方法
は、キャッシュメモリ及びページメモリモードのアーキ
テクチャを備えたパーソナルコンピュータシステムにお
いて、主メモリ58内の第1バッファの内容をマイクロ
プロセッサ20のレジスタに読出し、同時にキャッシュ
メモリ28に書込む。その後、第1バッファを再度読出
し、キャッシュメモリ28から得られる実際のデータ値
を伴って主メモリ58内の第2バッファに書込んでいる
ので、各データ値毎に第1バッファメモリアドレスから
第2バッファメモリアドレスへのメモリページの変更に
関連する過剰のウェイトステートを回避できて、バッフ
ァコピーを従来より高速に実行させることができる。即
ち、ソースバッファBsから目標バッファBtへの転送
数が155バイトを越えた場合に、転送時間が従来のそ
れより短くなる利点が得られる。
【図面の簡単な説明】
【図1】本発明による、キャッシュメモリ及びディスク
サブシステムを持つコンピュータシステムの部分の概略
ブロック図である。
【図2】本発明によるコンピュータシステムの他部分の
概略ブロック図である。
【図3】本発明によるコンピュータシステムの残りの部
分の概略ブロック図である。
【図4】現在のバッファコピー方法と比較する本発明の
操作を示した命令タイミング図である。
【図5】現在のバッファコピー方法と比較する本発明の
操作を示した命令タイミング図である。
【符号の説明】
20 マイクロプロセッサ 24 キャッシュ制御器 28 キャッシュメモリ 58 主メモリ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】複数のレジスタを有するマイクロプロセッ
    サと、ページモードのメモリデバイスを用いた主メモリ
    と、メモリ制御器と、高速キャッシュメモリと、キャッ
    シュ制御器とを持つコンピュータシステムにおいて、前
    記キャッシュメモリの容量より少ない容量を持つ、前記
    主メモリ内の第1バッファから前記主メモリ内の第2バ
    ッファに情報をコピーする改良方法は、 前記第1バッファの内容をnバイト同時に読出し、但し
    nがワード幅であり、その内容を、前記ページモードの
    メモリデバイスのページミスにならない位置に書込み、
    従って、前記ページモードのメモリデバイスの一連のペ
    ージヒットとして読出動作を形成し、同時に前記第1バ
    ッファの内容を前記キャッシュメモリに書込み、 nバイト同時にキャッシュメモリから前記第1バッファ
    の内容を読出し、その内容を前記第2バッファに書込ん
    で、前記ページメモリデバイスの一連のページヒットと
    して書込操作を形成することを特徴とする高速バッファ
    コピー方法。
  2. 【請求項2】前記ページミス書込にならない位置への書
    込操作は、マイクロプロセッサ内のレジスタへの書込み
    を含む請求項1に記載の方法。
  3. 【請求項3】前記第1バッファの内容の読出前に、前記
    第1バッファのメモリ位置をセーブし、前記主メモリに
    形成されるべき読出操作の数をセーブする段階を備えた
    請求項2に記載の方法。
  4. 【請求項4】前記第1バッファの内容を読出し、その内
    容を前記マイクロプロセッサのレジスタ及び前記キャッ
    シュメモリに書込む段階は、 現在の第1バッファのアドレスからのnバイトを前記マ
    イクロプロセッサのレジスタに読出し、前記レジスタの
    前内容に重ね書込み、前記現在の第1バッファのアドレ
    スに示す位置で前記nバイトを前記キャッシュメモリに
    書込み、 要求された数の読出操作が形成されたかどうかを決定す
    るために検査し、 前記現在の第1バッファのアドレスをnバイト分インク
    リメントし、要求された数の読出操作が完了していなか
    った時に、形成されるべき読出操作の数をデクリメント
    し、これらの読出し、重ね書込み、書込み、検査、イン
    クリメント及びデクリメント操作の形成を、要求された
    数の読出操作が完了するまで、続行することを備えた請
    求項2に記載の方法。
  5. 【請求項5】前記第1バッファの内容の読出前に、前記
    第1バッファのメモリ位置をセーブし、前記主メモリに
    形成されるべき読出操作の数をセーブする段階を備えた
    請求項1に記載の方法。
  6. 【請求項6】前記キャッシュメモリから前記第1バッフ
    ァの内容を読出し、その内容を前記第2バッファに書込
    む段階は、 現在の第1バッファのアドレスに対応するキャッシュメ
    モリアドレスからのnバイトを読出し、現在の第2バッ
    ファのアドレスに前記nバイトを書込み、 要求された数の読出操作が形成されたかどうかを決定す
    るために検査し、 前記現在の第1バッファのアドレス及び前記現在の第2
    バッファのアドレスをnバイト分インクリメントし、要
    求された数の読出操作が完了していなかった時に、形成
    されるべき読出操作の数をデクリメントし、これらの読
    出し、書込み、検査、インクリメント及びデクリメント
    操作の形成を、前記第1バッファの全内容が前記キャッ
    シュメモリから前記第2バッファに書込まれるまで、続
    行させることを備えた請求項5に記載の方法。
  7. 【請求項7】前記キャッシュメモリから前記第1バッフ
    ァの内容を読出す前、その内容を前記キャッシュメモリ
    に書込後形成される段階は、 前記第1バッファのセーブされたメモリ位置を回復し、 前記主メモリから形成されるべき読出操作のセーブされ
    た数を回復する段階を備えた請求項5に記載の方法。
  8. 【請求項8】ページミス読出しにならない位置への書込
    み操作は、ソースバッファへの書戻しを含む請求項1に
    記載の方法。
JP3359410A 1991-01-02 1991-12-27 高速バッファコピー方法 Pending JPH05210589A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/636,732 US5283880A (en) 1991-01-02 1991-01-02 Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
US636,732 1991-01-02

Publications (1)

Publication Number Publication Date
JPH05210589A true JPH05210589A (ja) 1993-08-20

Family

ID=24553102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3359410A Pending JPH05210589A (ja) 1991-01-02 1991-12-27 高速バッファコピー方法

Country Status (4)

Country Link
US (1) US5283880A (ja)
EP (1) EP0493960A3 (ja)
JP (1) JPH05210589A (ja)
CA (1) CA2057989A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2511146B2 (ja) * 1989-07-07 1996-06-26 富士通株式会社 デ―タ処理装置
US5530955A (en) * 1991-04-01 1996-06-25 Matsushita Electric Industrial Co., Ltd. Page memory device capable of short cycle access of different pages by a plurality of data processors
JP3259969B2 (ja) * 1991-07-09 2002-02-25 株式会社東芝 キャッシュメモリ制御装置
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
JPH0721034A (ja) * 1993-06-28 1995-01-24 Fujitsu Ltd 文字列複写処理方法
US5548739A (en) * 1993-11-04 1996-08-20 Sun Microsystems, Inc. Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations
US5701503A (en) * 1994-01-04 1997-12-23 Intel Corporation Method and apparatus for transferring information between a processor and a memory system
TW357295B (en) * 1994-02-08 1999-05-01 United Microelectronics Corp Microprocessor's data writing, reading operations
US6175901B1 (en) * 1994-04-15 2001-01-16 Micron Technology, Inc. Method for initializing and reprogramming a control operation feature of a memory device
US5905997A (en) * 1994-04-29 1999-05-18 Amd Inc. Set-associative cache memory utilizing a single bank of physical memory
US5544349A (en) * 1995-01-23 1996-08-06 International Business Machines Corporation Method and system for improving the performance of memory in constrained virtual memory environments by reducing paging activity
US5969997A (en) * 1997-10-02 1999-10-19 International Business Machines Corporation Narrow data width DRAM with low latency page-hit operations
US6502152B1 (en) * 1999-03-08 2002-12-31 Texas Instruments Incorporated Dual interrupt vector mapping
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
CN101292227B (zh) * 2005-10-19 2010-11-03 Nxp股份有限公司 具有高访问存储带宽的高速缓冲存储器
US10642496B2 (en) * 2016-04-01 2020-05-05 Sandisk Technologies Inc. Out of order read transfer with host memory buffer

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3806888A (en) * 1972-12-04 1974-04-23 Ibm Hierarchial memory system
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
IT1215539B (it) * 1987-06-03 1990-02-14 Honeywell Inf Systems Memoria tampone trasparente.
DE3786080D1 (de) * 1987-08-20 1993-07-08 Ibm Speicherzugriffssteuerungsvorrichtung in einem gemischtdatenformatsystem.
US4847758A (en) * 1987-10-30 1989-07-11 Zenith Electronics Corporation Main memory access in a microprocessor system with a cache memory
US5034917A (en) * 1988-05-26 1991-07-23 Bland Patrick M Computer system including a page mode memory with decreased access time and method of operation thereof
US5027270A (en) * 1988-10-11 1991-06-25 Mips Computer Systems, Inc. Processor controlled interface with instruction streaming

Also Published As

Publication number Publication date
EP0493960A3 (en) 1993-06-16
CA2057989A1 (en) 1992-07-03
US5283880A (en) 1994-02-01
EP0493960A2 (en) 1992-07-08

Similar Documents

Publication Publication Date Title
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
JP3516963B2 (ja) メモリアクセス制御装置
US6513107B1 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
JPH02190930A (ja) ソフトウエア命令実行装置
JPH05210589A (ja) 高速バッファコピー方法
JP2000242558A (ja) キャッシュシステム及びその操作方法
JP4434534B2 (ja) プロセッサ・システム
JPH0997230A (ja) データ転送方法及びシステム
US6094711A (en) Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance
US5161219A (en) Computer system with input/output cache
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
GB2200481A (en) Maintaining coherence between a microprocessor's integrated cache and external memory
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
US6938118B1 (en) Controlling access to a primary memory
US5895490A (en) Computer system cache performance on write allocation cycles by immediately setting the modified bit true
US5835948A (en) Single bank, multiple way cache memory
US6298355B1 (en) Computer system
US6122696A (en) CPU-peripheral bus interface using byte enable signaling to control byte lane steering
JPH08263371A (ja) キャッシュにおいてコピーバック・アドレスを生成する装置および方法
US5781925A (en) Method of preventing cache corruption during microprocessor pipelined burst operations
JP3705354B2 (ja) 情報処理システムのioアクセス制御方法およびプログラム
JP3614946B2 (ja) メモリバッファ装置
JP3039391B2 (ja) メモリシステム