JPH09198300A - メモリアクセス制御方法 - Google Patents

メモリアクセス制御方法

Info

Publication number
JPH09198300A
JPH09198300A JP8004546A JP454696A JPH09198300A JP H09198300 A JPH09198300 A JP H09198300A JP 8004546 A JP8004546 A JP 8004546A JP 454696 A JP454696 A JP 454696A JP H09198300 A JPH09198300 A JP H09198300A
Authority
JP
Japan
Prior art keywords
memory
data
read
memory area
access
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
JP8004546A
Other languages
English (en)
Inventor
Noboru Yamamoto
昇 山本
Masabumi Shibata
正文 柴田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8004546A priority Critical patent/JPH09198300A/ja
Publication of JPH09198300A publication Critical patent/JPH09198300A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 複数バス階層構成を採用した場合であって
も、メモリリードレイテンシを増加させることなく、I
/O装置からのメモリアクセスを効率良く実行可能にす
ること。 【解決手段】 アクセス履歴またはアクセス特性情報を
参照し、連続メモリ領域をアクセスする傾向にある場合
にのみ、メモリリード要求で指定されたメモリ領域に加
え、該メモリ領域に連続するメモリ領域のデータを先行
して読出す制御を行い、連続メモリ領域をアクセスする
傾向にない場合は、指定されたメモリ領域のみのデータ
読出しを実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コンピュータシ
ステムにおける入出力装置(I/O装置)からのメモリ
アクセス制御方法に係り、特に、I/O装置からのメモ
リアクセス傾向やアクセス特性を採取し、その結果によ
り、メモリアクセスの単位やタイミングを変化させるよ
うにしたメモリアクセス制御方法に関するものである。
【0002】
【従来の技術】従来において、コンピュータシステムに
おけるI/O装置からのメモリアクセス制御方法につい
ては、例えば、特開平5−242010号公報に開示さ
れているように、2階層のバスを接続するバス接続装置
を設け、このバス接続装置の中にデータの一時格納用の
バッファを持たせ、バス相互間で効率的なデータ転送を
実行するようにしたものがある。
【0003】また、特開平5−242011号、特開平
5−242014号、特開平5−242015号公報に
開示されたものがある。
【0004】これらの公知例に示されたデータバッファ
を用いたメモリアクセス制御方法にあっては、I/O装
置からのメモリリード要求をバス接続装置が受け付けた
場合、バス接続装置はメモリ制御部に対して、メモリに
接続するバスを経由して所定の速度かつ要求データ量で
メモリリード要求を発行する。
【0005】通常、この要求データ量は、I/O装置か
らの要求データ量よりも大きい。バス接続装置は、その
リードデータをバス接続装置内のデータバッファに一時
格納し、I/O装置からの要求データをI/O装置に返
送する。この状態で、次回にI/O装置から連続する領
域へのメモリリード要求が発生した場合には、データバ
ッファ内部に存在するデータをI/O装置に返送する。
【0006】このような方法により、I/O装置からメ
モリに対するアクセス回数を削減し、I/O装置から見
たメモリリードレイテンシを削減し、効率的なデータ転
送を実行し、その結果として、I/O装置によるメモリ
アクセス時のスループットを向上させるものである。
【0007】
【発明が解決しようとする課題】近年、データ処理シス
テムあるいはコンピュータシステムにおいては、サポー
トするディスク装置などに大容量化が求められ、かつ高
速の入出力動作を行うことが要求されている。I/O装
置の容量を増加するためには、I/O装置自体を大容量
なものにするだけでなく、接続するI/O装置の数を増
やすために、I/Oバスの数を増加し、I/O装置接続
箇所を増加する必要がある。
【0008】ここで、I/Oバスの数を増加するために
は、その物理的理由により、バス構造の階層を増やすな
どの方法を採用することが必要である。
【0009】この方法では、I/O装置とメモリとの間
のバス階層と論理が増加し、I/O装置がメモリリード
を実行する場合、メモリリード時のレイテンシが大きく
なり、副作用としてスループットが減少する。また、デ
ィスク入出力装置、高速通信回線、画像I/Oなどの高
いスループットを要求するI/O装置を搭載する場合で
は、設計値の性能を得ることができなくなる。
【0010】そこで、上記従来技術を応用し、I/O装
置からのメモリリード要求に対して、メモリリード要求
された領域に連続したメモリ領域も同時に読み出し、そ
の読出しデータをデータバッファに格納しておき、次回
のメモリリード要求に対してはデータバッファ内のデー
タをI/O装置に返送することにより、メモリリード時
のレイテンシを小さくする方法が考えられる。
【0011】また他に、事前にメモリリードアドレスを
予測し、その予測したメモリアドレス領域を先行して読
み出すことにより、レイテンシを小さくする方法が考え
られる。
【0012】しかし、同一のI/O装置が常に連続した
領域へのメモリリード要求を発生するとは限らない。ま
た、予測したメモリリードアドレスが実際に要求された
アドレスと常に一致するとは限らない。
【0013】従って、同一のI/O装置が連続した領域
へのメモリリード要求を発生しない場合や、予測したメ
モリリードアドレスが実際に要求されたアドレスと異な
っている場合では、I/O装置に転送しない無駄なデー
タをメモりから読み出すこととなり、不要なメモリへの
読出し動作やバス上での無駄なデータ転送動作が生じ、
中央処理装置(CPU)や他のI/O装置などからのデ
ータ転送を却って妨害してしまう事象が発生し得る。こ
のような事象が発生した場合には、システム全体の性能
が低下することになる。
【0014】本発明の目的は、複数バス階層構成を採用
した場合であっても、メモリリードレイテンシを増加さ
せることなく、I/O装置からのメモリアクセスを効率
良く実行することができるメモリアクセス制御方法を提
供することにある。
【0015】
【課題を解決するための手段】上記目的を達成するため
に、本発明のメモリアクセス制御方法は、I/O装置毎
に、そのメモリリード要求で指定されるメモリ領域が連
続する傾向にあるのか否かのアクセス履歴を採取し、I
/O装置からのメモリリード要求に対して当該I/O装
置のアクセス履歴の情報を参照し、当該I/O装置が連
続メモリ領域をアクセスする傾向にある場合にのみ、該
メモリリード要求で指定されたメモリ領域に加え、該メ
モリ領域に連続するメモリ領域のデータを先行して読出
す制御を行うことを特徴とする。
【0016】また、I/O装置毎に、そのメモリリード
要求で指定されるメモリ領域が連続する傾向にあるのか
否かのアクセス特性情報を予め設定しておき、I/O装
置からのメモリリード要求に対して当該I/O装置のア
クセス特性情報を参照し、当該I/O装置が連続メモリ
領域をアクセスする傾向にある場合にのみ、該メモリリ
ード要求で指定されたメモリ領域に加え、該メモリ領域
に連続するメモリ領域のデータを先行して読出す制御を
行うことを特徴とする。
【0017】ここで、連続するメモリ領域のデータは、
メモリリード要求で指定されたメモリ領域のデータを読
出した後、次回のメモリリード要求が同一I/O装置か
ら発行される以前のタイミングで読み出す方法と、今回
のメモリリード要求で指定されたメモリ領域と同じタイ
ミングで読み出す方法がある。
【0018】また、アクセス特性情報は、I/O装置毎
に設けたレジスタに予め設定しておき、システム初期診
断や構成認識実行時にプログラムにより、各I/O装置
毎のアクセス特性情報を採取することにより、その情報
により、各I/O装置からのメモリリード要求に対し
て、連続メモリ領域まで先行して読み出すかを決定する
ことができる。
【0019】この場合、アクセス特性情報を設定するレ
ジスタは、各I/O装置内に設ける構成であってもよい
し、メモリのシステム構成情報設定領域に設ける構成で
あってもよい。
【0020】アクセス履歴またはアクセス特性情報を参
照し、連続メモリ領域をアクセスする傾向にある場合に
のみ、メモリリード要求で指定されたメモリ領域に加
え、該メモリ領域に連続するメモリ領域のデータを先行
して読出す制御を行うことにより、連続メモリ領域をア
クセスする傾向にない場合は、指定されたメモリ領域の
みのデータ読出しが実行されるため、I/O装置に転送
しない無駄なデータの先行読出し動作とデータ転送動作
が減少し、メモリリードレイテンシを減少させ、ひいて
はシステムの性能の低下を防止することが可能になる。
【0021】特に、I/O装置毎にアクセス特性情報を
設定する方法では、入出力バス(I/Oバス)に接続さ
れるI/O装置が変更された時に、新たなアクセス特性
情報を設定または採取する必要が生じるが、アクセス履
歴を採取する方法にあっては、入出力バスに接続される
I/O装置が変更された場合であってもその必要がな
く、システムの運用において極めて効果的である。
【0022】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して詳細に説明する。
【0023】第1の実施の形態 図1は、本発明を適用したコンピュータシステムの第1
の実施の形態を示すブロック構成図であり、CPU10
1およびメモリ102とバス接続装置103がシステム
バス104により接続され、さらにバス接続装置103
の直下の階層のI/Oバス106には複数のI/O装置
105a,105nが接続されている。
【0024】バス接続装置103は、複数のI/O装置
105a,105nからのメモリアクセスを制御する装
置である。
【0025】なお、バス接続装置103とI/Oバスの
階層数は任意である。
【0026】図1の構成においては、例えばI/O装置
105aがI/Oバス106上にメモリアクセス要求を
発生すると、バス接続装置103は、そのメモリアクセ
ス要求を受け取り、システムバス104の転送フォーマ
ットに変換し、メモリ202へメモリアクセス要求を発
行する。このメモリアクセス要求が読出し要求であった
場合には、その要求で指定されたデータがメモリ202
から読み出され、バス接続装置103経由で要求元のI
/O装置105aに返送される。
【0027】図2は、バス接続装置103の内部構成を
詳細に示したブロック図であり、バス接続装置103
は、I/Oバスインタフェース制御部1031、システ
ムバスインタフェース制御部1032、バッファ制御部
1033、ヒストリ採取/記憶制御部1034から構成
されている。
【0028】I/Oバスインタフェース制御部1031
は、I/Oバス106を介して複数のI/O装置105
a,105nとの間のデータの転送を行うものであり、
I/O装置105a,105nのいずれかがI/Oバス
106上に発行したメモリアクセス要求を受信した場合
には、メモリアクセス要求発行元のI/O装置を示す情
報、アクセス先を示すアドレス情報、要求データ量、リ
ードとライトの区別を示す情報を、ヒストリ採取/記憶
部1034の判定部1035およびキュー1036と、
バッファ制御部1033内のデータバッファ入出力制御
部1038およびバッファデータ制御部1039に対し
て転送する。
【0029】システムバスインタフェース制御部103
2は、バッファ制御部1033からのメモリアクセス要
求を受け取り、システムバス104を経由してメモリア
クセス要求を発行し、またシステムバス104からメモ
リリード要求に対する読出しデータを受け取ると、その
受信報告をデータバッファ入出力制御部1038に行う
と共に、読出しデータをバッファ制御部1033のデー
タバッファ1040に転送するものである。
【0030】バッファ制御部130は、メモリ102に
対して発行したリード要求に対する読出しデータを格納
するデータバッファ1040、その読出しデータのアド
レス、転送先I/O装置を示す情報を格納するアドレス
格納バッファ1041、I/Oバスインタフェース制御
部1031からのメモリアクセス要求を受け取り、デー
タバッファ1040内部にアクセス先メモリのデータの
コピーを格納しているか否かを判定するバッファデータ
制御部1039を備えている。
【0031】また、制御のための機能として、データバ
ッファ1040の内部のデータが有効であるか無効であ
るかを示す有効フラグを持ち、その有効フラグのセット
とリセットの制御および読出しデータを受信してデータ
バッファ1040に格納制御を行うバッファ入出力制御
部1038を備え、メモリリード要求発行時には、アド
レスバッファ1041内部にメモリリード先アドレスを
格納しておき、アドレスバッファ1041に格納したメ
モリリード先アドレスに対応するデータバッファ104
0内のバッファ領域に読出しデータを格納するように構
成されている。
【0032】バッファデータ制御部1039は、メモリ
リード要求に関する情報(メモリアクセス要求発行元の
I/O装置を示す情報)とアドレスバッファ1041に
格納してあるアドレス情報およびバッファの内部のデー
タが有効であるか無効であるかを示す有効フラグを用い
て、メモリリード要求先のデータがデータバッファ10
40に有効データとして格納されているか否かを判定
し、判定結果をデータバッファ入出力制御部1038へ
報告するものである。
【0033】一方、ヒストリ採取/記憶部1034は、
各I/O装置毎に用意したヒストリカウンタ1037お
よびカウンタ制御部1042、判定部1035、キュー
1036によって構成されている。
【0034】キュー1036は、対応するI/O装置毎
に、I/Oバス106上に発行されたメモリアクセス要
求のうち最新のアドレスと要求データ量、リードとライ
トの区別の情報を記憶するものである。
【0035】判定部1035は、キュー1036に記憶
した情報と、I/Oバスインタフェース制御部1031
から転送されてきたアクセス発行元I/O装置を示す情
報とメモリアクセス要求の情報により、I/Oバス10
6上に発行された、そのI/O装置によるメモリアクセ
ス要求が、そのI/O装置が1つ前に発行したメモリア
クセス要求先領域に連続する領域への同一要求データ量
のメモリリード要求であったか否かを判定し、この判定
結果をカウンタ制御部1042へ転送するものである。
【0036】ヒストリカウンタ1037およびカウンタ
制御部1042は、I/O装置毎にメモリアクセスのヒ
ストリの採取と記憶を行うものである。ヒストリカウン
タ1037は、各I/O装置毎に用意し、判定部103
5から送られる制御信号によりカウント値が増加または
減少する。このヒストリカウンタ1037は、各I/O
装置ごとに用意したN(Nは整数)ビットのカウンタで
あり、初期値は「0」、取り得る値は「0」以上で
「(2のN乗)−1」以下である。
【0037】ヒストリカウンタ1037の制御につい
て、図3を用いて説明する。
【0038】判定部1035は、あるI/O装置による
連続領域への同一要求データ量のリード要求を検出した
場合、ヒストリカウンタ1037のカウントアップ要求
信号をカウンタ制御部1042に送信する。
【0039】カウンタ制御部1042は、該当するヒス
トリカウンタ1037のカウント値を「1」増加する。
但し、カウント値が最大値であった場合には、値は変化
させない。
【0040】判定部1035は、上記以外のリード要求
またはライト要求を検出した場合、ヒストリカウンタ1
037のカウント値を「1」減らす。但し、カウント値
が「0」の場合には、「0」のまま保持する。
【0041】すなわち、判定部1035は、あるI/O
装置が1つ前に発行したメモリアクセスに対して、 (1)転送要求データ量が一致する (2)連続するアドレス空間へのアクセス (3)リードアクセス である「条件A」を満足した時、ヒストリカウンタ10
37のカウントアップ要求信号をカウンタ制御部104
2に送信する。
【0042】また、メモリアクセスがメモリライト要求
であった時、またはメモリリード要求であるが、1つ前
に発行したメモリアクセスに対して、 (1)転送要求データ量が一致しない (2)連続するアドレス空間へのアクセスではない (3)リードアクセスではない という「条件B」に該当する場合は、判定部1035
は、ヒストリカウンタ1037のカウント値を「1」減
らす要求信号をカウンタ制御部1042に送信する。
【0043】従って、各I/O装置にそれぞれ対応した
ヒストリカウンタ1037には、現在までのメモリアク
セス動作において、連続した領域をリードアクセスした
回数が多い程、大きな値のカウント値が保持されること
になる。
【0044】この場合、「条件B」に該当するメモリア
クセスにたいしてはカウント値が減らされるため、最近
のリードアクセスにおけるリードアドレスが連続してい
る場合にのみ、カウント値が大きくなる。
【0045】ここで、ヒストリカウンタ1037のカウ
ント値が、図3に示すように、ある値(例えば、2)以
上の場合には、カウンタ制御部1042は、対応するI
/O装置は連続領域へのアクセスを実行すると予想し、
データバッファ入出力制御部1038に対して、連続領
域へのアクセスを予測する信号を送信する。
【0046】データバッファ入出力制御部1038で
は、カウンタ制御部1042からの連続領域アクセス予
測信号と、バッファデータ制御部133からのメモリア
クセス要求信号,メモリアクセス要求アドレス,要求デ
ータ量表示信号,アクセス発行元I/O装置を示す情報
を受信する。
【0047】データバッファ入出力制御部1038は、
要求されたデータがデータバッファ1040内部に存在
する場合には、データバッファ1040から該当データ
をリードし、I/Oバスインタフェース制御部1031
へデータを転送する。
【0048】しかし、データバッファ1040内部に該
当データが存在しない場合には、システムバスインタフ
ェース制御部1032に対してメモリリード要求を発行
する。
【0049】データバッファ1040内部にデータが存
在しない場合において、アクセス発行元I/O装置に対
応するカウンタ制御部1042からの連続領域アクセス
予測信号が出力されており、かつデータバッファ104
0のデータ処理バイト数と同じアドレス境界へのリード
要求であった場合には、I/Oバス106上でのメモリ
リード要求データ量から、データバッファ1040に格
納可能な最大データ量に、要求データ量を拡大してメモ
リリードを行う。
【0050】次に、メモリアクセス時の要求データ量の
拡大制御について、図4を用いて説明する。
【0051】この場合、ヒストリカウンタ1037を2
ビット構成のカウンタとし、カウント値の初期値を
「0」とする。また、カウント値が「2」以上の場合
に、I/O装置が連続した領域へのメモリリード要求を
発行すると予測し、メモリリード時に要求データ量を増
やしてメモリリードを実行するものとする。
【0052】まず、I/O装置105a,105nのう
ち例えば105aが、I/Oバス106上にメモリ10
2の「0」番地からの16バイトデータのメモリリード
要求401を発行した場合、バス接続装置103は、メ
モリリード要求の検出によりヒストリカウンタ1037
のカウント値を「1」増加すると共に、「0」番地から
の16バイトデータのメモリリード要求411をメモリ
102に発行する。
【0053】I/O装置105aがメモリ102からリ
ードデータを受け取った後、最後に発行したメモリリー
ド要求401にてリードした領域に連続する領域、即
ち、16進数で10番地(0x10番地)への16バイ
トのデータのメモリリード要求402を発行した場合、
バス接続装置103は、前回と同様に、ヒストリカウン
タ1037のカウンタ値を「1」増加して「2」とし、
メモリリード要求412を発行する。
【0054】さらに、メモリリード要求402によって
読出した領域に連続する領域へのI/O装置105aか
らのメモリリード要求403をバス接続装置103が受
信した場合、前記のように、連続領域へのリード要求で
あること、かつヒストリカウンタ1037のカウント値
が「2」以上であることから、バス接続装置103は、
そのI/O装置105aは今後も連続アドレス領域への
アクセスを実行するものと予測し、メモリ102に対し
16バイトのリード要求ではなく、要求データ量を増や
した「32」バイトのメモリリード要求413を発行す
る。このとき、ヒストリカウンタ1037のカウント値
も「1」増加し、「3」とする。
【0055】次のメモリリード要求403をバス接続装
置103が検出した時、すなわちI/O装置105aか
らの16進数で30番地(0x30番地)への16バイ
トのデータのメモリリード要求403をバス接続装置1
03が検出した場合、バス接続装置103は、データバ
ッファ1040内部にリード要求先のメモリデータのコ
ピーを持っているので、メモリ102へのメモリリード
要求を発行せずに、データバッファ1040内部のデー
タを要求元のI/O装置105aに対して転送する。
【0056】このように、ヒストリカウンタ1037に
よって各I/O装置のアクセス履歴を採取し、そのアク
セス履歴の情報を参照し、メモリリード要求を発したI
/O装置が連続メモリ領域をアクセスする傾向にある場
合にのみ、メモリリード要求で指定されたメモリ領域に
加え、該メモリ領域に連続するメモリ領域のデータを先
行して読出す制御を行うことにより、連続メモリ領域を
アクセスする傾向にない場合は、指定されたメモリ領域
のみのデータ読出しが実行されるため、I/O装置に転
送しない無駄なデータの先行読出し動作とデータ転送動
作が減少し、メモリリードレイテンシを減少させ、ひい
てはシステムの性能の低下を防止することが可能にな
る。
【0057】特に、I/O装置毎にアクセス履歴を採取
しているため、I/Oバス106に接続されるI/O装
置が変更された場合であってもアクセス特性などの情報
について何等の設定操作を行う必要がなく、システムの
運用において極めて効果的である。
【0058】第2の実施形態 バス接続装置103によってI/O装置毎のメモリアク
セスヒストリを採取し、記憶するのではなく、システム
の初期診断や構成認識実行時に、プログラムにより、各
I/O装置のアクセス特性を示す情報を取得し、その情
報により、I/O装置からのメモリリード要求に対し
て、転送要求データ量を増加するのか、また先行リード
要求を発行するかを、バス接続装置103に設定する構
成とすることによっても、メモリリードレイテンシの増
大を防ぎ、システム性能の向上を図ることができる。
【0059】この場合、図2のヒストリ採取/記憶部1
034の代わりに、各I/O装置毎に用意した書き込み
可能なレジスタを搭載すれば実現できる。
【0060】また、レジスタは、各I/O装置毎に設け
るのでなく、アクセス傾向が類似したI/O装置をグル
ープ化し、そのグループ毎に設ける構成であってもよ
い。
【0061】このレジスタへの設定値が、ヒストリカウ
ンタ1037のカウント値に相当する。また、レジスタ
出力値の他に、バス接続装置103へ外部から入力する
信号値を使用する構成も可能である。
【0062】また、I/Oバス106には、様々なI/
O装置を接続する可能性が高い。これらのI/O装置に
おけるメモリアクセス要求の発行間隔や要求データ量
は、一様ではない。このため、図2に示したアドレスバ
ッファ1041とデータバッファ1040を1組とし、
I/Oバス106に接続するI/O装置毎にバッファの
組を複数組用意することにより、I/O装置によるメモ
リリード要求時に読み出し対象データがバッファ内部に
存在する確率を高くすることができる。あるいは、複数
のバッファの組をI/O装置が使用可能な構成とするこ
とにより、I/O装置からの連続する領域へのリードを
予想する場合に、図1のバス接続装置103がI/O装
置からのリード要求を検出する以前にメモリ102に対
して、先行リード要求を発行することが可能となる。ま
た、これらのバッファ構成を組み合わせ、更にスループ
ットを向上することができるような構成とすることも可
能である。
【0063】第3の実施の形態 ヒストリカウンタ1037と,カウンタ制御部104
2,判定部1035,キュー1036は、例えば4バイ
ト以上といった、ある要求データ量以上のメモリアクセ
スを検出した場合のみ動作する制御となるように、組み
込む構成とすることも可能である。
【0064】また、あるI/O装置がメモリリード要求
を発行し、その後、連続アドレス領域へのメモリリード
要求が発行されると、さらに連続して同一I/O装置か
らのメモリリード要求が発行されるものと予想し、実際
のメモリリード要求が発生していない時点で、すなわち
次回の新たなメモリリード要求が発生する前のタイミン
グで投機的にメモりリード要求を発行し、事前に該当デ
ータを読み出すように構成することもできる。
【0065】この場合、その先行メモリリードにより、
メモリリード時のレイテンシを隠すことが可能であり、
I/O装置から見たスループットが大幅に向上する。
【0066】第4の実施の形態 次に、メモリアクセスヒストリを採取し、メモリアクセ
ス制御を切り換える機能を搭載する装置に関して、他の
例を示す。
【0067】I/O装置からのメモリアクセスのヒスト
リを採取し、その情報を利用し、I/O装置からのメモ
リアクセス時の制御を切り換える機能は、必ずしもバス
接続装置103に搭載する必要はなく、I/O装置と、
メモリ102に接続したメモリ制御装置との間の経路上
に設置した装置に搭載すればよい。しかし、I/O装置
毎に動作のアクセス特性が異なるので、I/O装置が発
生するメモリアクセスをI/O毎に検出可能であるI/
Oバス制御機能を持つ装置に、その機能を搭載する方式
の方が実際にシステムを構築し易い。
【0068】また、データバッファを持つ場合にも、I
/O装置からのメモリリード時のデータがバッファ内部
に存在する場合のリードレイテンシを短縮するために、
I/O装置に近い装置内部にデータバッファを搭載する
方式の方が有利である。
【0069】また、前記の機能を、メモリ102に接続
したメモリ制御装置に搭載し、CPUからのメモリアク
セスやI/O装置からのメモリアクセスといった区分で
メモリアクセスヒストリを採取し、メモリ制御装置内部
で、メモリ102からのデータを先行リードし、メモリ
制御装置内部のバッファに格納しておくことにより、性
能向上を図る方法も考えることができる。
【0070】
【発明の効果】以上のように、本発明によれば、I/O
装置によるメモリリードアクセス時に、I/O装置のメ
モリアクセス傾向またはアクセス特性を取得し、I/O
装置が連続した領域へのリードを行うと予測した場合に
は、I/O装置が要求したデータに加えて、そのデータ
に連続するデータを先行して読出し、その先行読出しデ
ータをデータバッファに格納しておき、次回のメモリア
クセス要求においてデータバッファ内に存在するデータ
がメモリリード要求によって指定されている場合は、メ
モリアクセスを実行せずに、データバッファ内のデータ
を要求元のI/O装置に転送するようにしたため、複数
バス階層構成を採用した場合であっても、メモリリード
レイテンシを増加させることなく、I/O装置からのメ
モリアクセスを効率良く実行することができる。
【0071】また、連続するメモリ領域のデータを、メ
モリリード要求で指定されたメモリ領域のデータを読出
した後、次回のメモリリード要求が同一I/O装置から
発行される以前のタイミングで読み出すようにした場合
も、前記と同様な効果が得られる。
【0072】特に、入出力装置毎にアクセス傾向を設定
する方法では、アクセス特性を設定する場合に比べ、シ
ステムの運用において極めて効果的である。
【図面の簡単な説明】
【図1】本発明を適用したコンピュータシステムの実施
の形態を示すブロック構成図である。
【図2】図1におけるバス接続装置の詳細構成を示すブ
ロック図である。
【図3】メモリアクセスヒストリの採取を行うカウンタ
の制御と動作の概略を示したフロー図である。
【図4】メモリアクセスヒストリを用いたメモリアクセ
ス制御の様子を示すフロー図である。
【符号の説明】
101…CPU、102…メモリ、103…バス接続装
置、104…システムバス、105a,105b…入出
力(I/O)装置、106…I/Oバス、1031…I
/Oバスインタフェース制御部、1032…システムバ
スインタフェース制御部、1033…バッファ制御部、
1034…ヒストリ採取/記憶部、1035判定部、1
036…キュー、1037…ヒストリカウンタ、104
0…データバッファ、1041…アドレスバッファ。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 入出力装置からのメモリリード要求に対
    し、該メモリリード要求で指定されたメモリ領域に加
    え、該メモリ領域に連続するメモリ領域のデータを先行
    して読出し、入出力装置に対してはメモリリード要求で
    指定されたメモリ領域からの読出しデータを転送し、連
    続メモリ領域から先行読出ししたデータはデータバッフ
    ァに格納しておき、同一入出力装置からの次回のメモリ
    リード要求に対しては該メモリリード要求で指定された
    メモリ領域のデータが前記データバッファ内に存在して
    いるか否かを判定し、存在しているならば、メモリに対
    してメモリリード要求を発行せず、データバッファ内に
    存在する同メモリ領域に関する読出しデータを入出力装
    置に転送するメモリアクセス制御方法であって、 入出力装置毎に、そのメモリリード要求で指定されるメ
    モリ領域が連続する傾向にあるのか否かのアクセス履歴
    を採取し、入出力装置からのメモリリード要求に対して
    当該入出力装置のアクセス履歴の情報を参照し、当該入
    出力装置が連続メモリ領域をアクセスする傾向にある場
    合にのみ、該メモリリード要求で指定されたメモリ領域
    に加え、該メモリ領域に連続するメモリ領域のデータを
    先行して読出す制御を行うことを特徴とするメモリアク
    セス制御方法。
  2. 【請求項2】 入出力装置からのメモリリード要求に対
    し、該メモリリード要求で指定されたメモリ領域に加
    え、該メモリ領域に連続するメモリ領域のデータを先行
    して読出し、入出力装置に対してはメモリリード要求で
    指定されたメモリ領域からの読出しデータを転送し、連
    続メモリ領域から先行読出ししたデータはデータバッフ
    ァに格納しておき、同一入出力装置からの次回のメモリ
    リード要求に対しては該メモリリード要求で指定された
    メモリ領域のデータが前記データバッファ内に存在して
    いるか否かを判定し、存在しているならば、メモリに対
    してメモリリード要求を発行せず、データバッファ内に
    存在する同メモリ領域に関する読出しデータを入出力装
    置に転送するメモリアクセス制御方法であって、 入出力装置毎に、そのメモリリード要求で指定されるメ
    モリ領域が連続する傾向にあるのか否かのアクセス特性
    情報を予め設定しておき、入出力装置からのメモリリー
    ド要求に対して当該入出力装置のアクセス特性情報を参
    照し、当該入出力装置が連続メモリ領域をアクセスする
    傾向にある場合にのみ、該メモリリード要求で指定され
    たメモリ領域に加え、該メモリ領域に連続するメモリ領
    域のデータを先行して読出す制御を行うことを特徴とす
    るメモリアクセス制御方法。
  3. 【請求項3】 前記連続するメモリ領域のデータは、メ
    モリリード要求で指定されたメモリ領域のデータを読出
    した後、次回のメモリリード要求が同一入出力装置から
    発行される以前のタイミングで読み出すことを特徴とす
    る請求項1または2記載のメモリアクセス制御方法。
JP8004546A 1996-01-16 1996-01-16 メモリアクセス制御方法 Pending JPH09198300A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8004546A JPH09198300A (ja) 1996-01-16 1996-01-16 メモリアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8004546A JPH09198300A (ja) 1996-01-16 1996-01-16 メモリアクセス制御方法

Publications (1)

Publication Number Publication Date
JPH09198300A true JPH09198300A (ja) 1997-07-31

Family

ID=11587057

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8004546A Pending JPH09198300A (ja) 1996-01-16 1996-01-16 メモリアクセス制御方法

Country Status (1)

Country Link
JP (1) JPH09198300A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078602B2 (en) 2015-05-18 2018-09-18 Fujitsu Limited Information processing apparatus, memory controller, and memory control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078602B2 (en) 2015-05-18 2018-09-18 Fujitsu Limited Information processing apparatus, memory controller, and memory control method

Similar Documents

Publication Publication Date Title
AU637543B2 (en) Receiving buffer control system
US6453388B1 (en) Computer system having a bus interface unit for prefetching data from system memory
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
US7941608B2 (en) Cache eviction
JP2000227878A (ja) 非同期i/oキャッシュメモリ内のデ―タ管理方法
JP2001147854A (ja) 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
JPH06222992A (ja) キャッシュシステムおよびキャッシュコントローラを制御するための方法
EP0835490A1 (en) Write cache for write performance improvement
JP3626609B2 (ja) マルチプロセッサシステム
US7543113B2 (en) Cache memory system and method capable of adaptively accommodating various memory line sizes
JPH09128325A (ja) 階層バス制御方式及びバスブリッジ
JPH09198300A (ja) メモリアクセス制御方法
US6397304B1 (en) Method and apparatus for improving system performance in multiprocessor systems
US7089387B2 (en) Methods and apparatus for maintaining coherency in a multi-processor system
JPH0784879A (ja) キャッシュメモリ装置
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法
JPH0415493B2 (ja)
JP3039391B2 (ja) メモリシステム
JPH06103477B2 (ja) 並列キャッシュメモリ
JP2976980B2 (ja) キャッシュ制御方式
JP3013781B2 (ja) キャッシュシステム
JPH09160863A (ja) 入出力バッファ装置及びその管理方法
JP3299147B2 (ja) キャッシュ制御回路
JPH0612331A (ja) キャッシュメモリ制御装置
JP2003044357A (ja) キャッシュ先取り方式