JP3968914B2 - Disk array device - Google Patents
Disk array device Download PDFInfo
- Publication number
- JP3968914B2 JP3968914B2 JP15465499A JP15465499A JP3968914B2 JP 3968914 B2 JP3968914 B2 JP 3968914B2 JP 15465499 A JP15465499 A JP 15465499A JP 15465499 A JP15465499 A JP 15465499A JP 3968914 B2 JP3968914 B2 JP 3968914B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- prefetch
- address
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ディスクアレイ装置など複数の要求を多重に処理し、アクセスパターンが予測できない装置に係わり、特に、プロセサがアクセスするオペランドのデータ読込み制御方法に関する。
【0002】
【従来の技術】
複数台の磁気ディスク装置(以下ディスク装置と呼ぶ)に対するデータの格納および読み出しを行うディスクアレイ装置がある。ディスクアレイ装置は、通常、プロセサがデータ制御と装置全体の制御を行う。ディスクアレイ装置に代表されるように、プロセサを用いたシステムは、プロセサ上で、メモリに格納したプログラム、すなわち命令コードを順次演算処理する。演算には、メモリやレジスタ上のデータであるオペランドを用いる。通常、システムは、演算処理を行うプロセサとメモリ制御を行うメモリコントローラとメモリおよび複数の制御LSIから構成される。このような、従来の一般的な構成の一例を図9に示す。
【0003】
図9は、従来のディスクアレイ装置の一例である。ディスクアレイ装置は、大別して複数台の磁気ディスク装置1020と磁気ディスク装置を制御するディスクアレイ制御装置1000を有する。磁気ディスク装置1020とディスク制御装置1000は、ドライブIF1103で接続する。ディスクアレイ制御装置1000とホストコンピュータ1050は、ホストIF1102で接続する。ディスクアレイ制御装置1000は、ホストコンピュータ1050との接続制御を行うチャネルIF部1011と、ディスク装置との接続制御を行うディスクIF部1012と、装置全体の共有メモリを有する共有メモリ部1015と、キャッシュメモリを有するキャッシュメモリ部1014とを有する。チャネルIF部1011と共有メモリ部1015、また、ディスクIF部1012と共有メモリ部1015は、アクセスパス2 137で接続する。チャネルIF部1011とキャッシュメモリ部1014、また、ディスクIF部1012とキャッシュメモリ部1014は、セレクタ部1013を介してアクセスパス0 1135、アクセスパス1 1136で接続する。チャネルIF部1011は、ホストIF1102とマイクロプロセサ1101(以下プロセサと呼ぶ)とSMアクセス制御部1105とCMアクセス制御部1104とこれらを接続する内部バス1106を備える。ディスクIF部1012は、ドライブIF1103とプロセサ1101とSMアクセス制御部1105とCMアクセス制御部1106とこれらを接続する内部バス1106を備える。チャネルIF部とキャッシュメモリ部は、メモリの制御を行うCMコントローラ1107とメモリモジュール1109を有する。共有メモリ部は、メモリの制御を行うSMコントローラ1108とメモリモジュール1109を有する。チャネルIF部とディスクIF部にあるプロセサは、共有メモリ部のメモリと各制御部のレジスタにあるオペランドデータをアクセスすることでディスクアレイ装置の状態を認識しながらホストからのデータ書込み、読み出しの処理を行う。
【0004】
このようなプロセサシステムでは、プロセサの演算処理性能に加え、メモリまたはレジスタからプロセサへのオペランドデータの読込み性能が重要である。プロセサがアクセス要求してからデータを受け取るまでの遅れはアクセスレイテンシと呼ばれる。近年、プロセサのコア性能は大幅に向上しているのに対し、外部IOアクセスを伴うオペランドデータのリードアクセス性能は、あまり改善されていない。この両者の性能差により、アクセスレイテンシが表面化すると、プロセサの処理がストールしプロセサ性能を引き出せないため、メモリシステムがシステム上のボトルネックになるという問題がある。
【0005】
オペランドデータアクセス性能の改善には、大別して2点ある。1点は、アクセス時間の低減による性能向上、もう1点は、アクセス時間の隠蔽である。しかし、アクセス時間の低減には、アクセスパスの動作周波数の向上が必要であるが、クロストークなどの実装ノイズが課題となり改善は困難である。特に、図9に示したようなディスクアレイ装置では、プロセサからオペランドデータまでに複数のLSIが介在するなど構成上プロセサとオペランドデータの距離が遠いので、一定以上のアクセス時間の低減は困難である。
【0006】
2点目のアクセス時間の隠蔽には、データの先読みが挙げられる。従来例として、プロセサの専用命令を用いた先読みがあり、一例として、“PowerPCマイクロプロセサ・ファミリプログラミング環境”に記載されているPOWERPCの命令セットにあるdcbt(Data Cache Block Touch)命令が挙げられる。dcbt命令は、専用命令によりオペランドデータをプロセサ内部のキャッシュに読み込む命令である。
【0007】
しかし、専用命令を用いた場合には、外部IOアクセス時間は既に述べたディスクアレイ装置のような大規模システムでは、マイクロ秒オーダを要する場合があり、実際にデータが必要になった時点でキャッシュにデータがあるかどうかを保証できない。また、マイクロ秒オーダでキャッシュの一部を占有することになるため複数の先読みを実行するとキャッシュの使用効率が悪化する。また、POWERPCでは、dcbt命令は、メインメモリに対して有効であり、外部IOに対しては実行できない。また、専用命令を備えている一部のプロセサを用いた場合に実現可能であり、所謂組込み用途に用いる比較的安価なプロセサにはこのような専用命令は備わっていない。
【0008】
【発明が解決しようとする課題】
これまで述べたように、近年のプロセサの高速化にともない、外部メモリや外部レジスタに代表される外部IOアクセスを伴ったオペランドアクセスの相対性能が低下し、結果的にシステム性能上のボトルネック部位となっている。すなわち、プロセサの内部処理性能は、プロセサコア部の動作周波数向上に伴い向上する一方で、外部IOアクセス速度は十分でない。従って、所謂組込み型システムなど外部IOアクセスの多発するシステムの性能は、外部IOアクセス性能に依存することになる。
【0009】
本発明が解決しようとする主たる課題は、オペランドアクセス性能を改善することである。特に、外部IO制御において、安価かつ容易にプロセサのオペランドデータアクセス性能向上を実現することを目的とする。
【0010】
以上に述べたオペランドデータアクセスに共通する課題の一因は、従来の外部IOを伴ったオペランドアクセスは、外部IO要求が発生してはじめて動作するため、オペランドデータ読込み速度を向上するためには、プロセサがメモリやレジスタからのリード要求を行ってから応答するまでのアクセスレイテンシの低減を実現する必要があり、外部IFの高速化が必須となることである。高速SRAMや各プロセサ専用メモリなどの高速メモリは、高価であるため、システム価格の上昇を招く。また、オペランドアクセス時間の大幅な短縮は困難である。
【0011】
また、アクセスレイテンシの増大に起因した他の問題点として 、システムバスの占有率に増大よるシステムバスの実効性能の低下がある。
【0012】
【課題を解決するための手段】
上記課題を解決するための本発明の手段を一言で述べると、外部アクセス制御部に、オペランドデータが必要となる前に、あらかじめ、オペランドデータをメモリ、または、レジスタから外部アクセス制御部内のレジスタに読み込んでおく(以下先読み、と呼ぶ)ようにしたことである。以下、具体的な手段について説明する。
【0013】
プロセサの外部アクセスを制御する外部アクセス制御LSIに先読み制御部を設けた。
【0014】
先読み制御部は、先読みを行うメモリまたはレジスタのアドレスを指定するアドレスレジスタと該アドレスレジスタのデータの有効性を示すアドレスレジスタ有効フラグと先読みしたデータを格納するデータレジスタと該データレジスタのデータの有効性を示すデータレジスタ有効フラグとを有する先読みレジスタセットを1つ以上備えた先読みレジスタ回路と、アクセス先のアドレスが該アドレスレジスタの値と一致しているかを判定するアドレス判定回路と、該先読みレジスタ回路および該アドレス判定回路を用いて先読み制御を行うアクセス制御回路を備えるようにした。
【0015】
先読み制御部は、先読みレジスタに対するライトアクセスを検出した場合は、該ライトアクセスのデータをアドレスレジスタに格納し、アドレスレジスタ有効ビットをセットし、さらに、該アドレスレジスタに格納したデータが示すアドレスに対してリードアクセスを行い、リードデータをデータレジスタに格納し、データ有効フラグをセットし、また、該アドレスレジスタ有効ビットがセットされ、かつ、該アドレスレジスタに格納されたデータと一致するアドレスに対するリードアクセスを検出した場合は、該データ有効フラグが既にセットされている場合は、データレジスタに格納されているデータを直ちに送信し、また、該データ有効フラグがセットされていない場合は、該データ有効フラグがセットされた後に該データレジスタに格納されているデータを送信し、該アドレス有効フラグと該データ有効フラグをリセットするようにした。
【0016】
先読み制御部は、先読みレジスタのアドレスレジスタに格納したアドレスに対するライトアクセスが発生した場合は、該ライトアクセスのデータをデータレジスタにセットし、データレジスタ有効フラグをセットするようにした。
【0017】
先読み制御部が、先読みレジスタに対するライトアクセスを検出した場合に、先読みレジスタセットのすべてのアドレスレジスタ有効フラグがセットされている場合は、先読みを行わないようにした。
【0018】
【発明の実施の形態】
以下、図面を用いて、発明の詳細を説明する。
【0019】
はじめに、プロセサ1のアクセスについて簡単に触れる。プロセサは、プロセサローカルバスと外部アクセスLSIを介してメモリとレジスタをアクセスする。この際、プロセサは、命令コード、データ、また外部レジスタなど、すべての外部アクセスをプロセサローカルバス経由で行う。従って、プロセサは、同時にはいずれか唯一の領域にのみアクセス可能である。
【0020】
図1は、本発明の概要を示すブロック図の一例である。本実施例は、外部アクセスについて先読みを行う場合の一例である。図1に示したディスクアレイ制御装置は、大きくは、マイクロプロセサ1と外部アクセスLSI2とメモリ部21と他LSI23から構成する。プロセサ1と外部アクセスLSI2間は、プロセサローカルバス100で接続する。また、外部アクセスLSI2とメモリ部21、または、他LSI23の間は、LSI間接続専用IF20で接続する。メモリ部21は、メモリを直接制御するメモリ制御LSI22とメモリ24を有する。メモリ制御LSI22は、内部にIF制御部31とレジスタ24を備える。また、他LSI23は、内部にIF制御部31とレジスタ24を備える。外部アクセスLSI2は、バス制御部201とメモリアクセス制御部3と外部レジスタ制御部9、および、これらを接続する内部バス202から構成する。メモリアクセス制御部3と、外部レジスタ制御部9の内部は同様の構成である。メモリアクセス制御部3を例に説明すると、先読みを行う対象のアドレスと先読みしたデータを格納するための先読みレジスタ6と、アクセス先アドレスが先読みしたデータのアドレスの比較するアドレス判定部7と、先読みアクセスを処理し、先読みレジスタ、アドレス判定部の制御を行うアクセス制御部5を備えた先読み制御部4とIF制御部31から構成する。先読み制御部4の詳細は、図4、5、6を用いて後述する。
【0021】
以上述べたように、本実施例では、先読みを目的とした専用レジスタを備えたことにより、オペランドデータの先読みを実現したところに特徴がある。
【0022】
次に、図2、図3を用いて、本発明に係るオペランドデータをアクセスする方法の動作の流れを説明する。
【0023】
図2は、本発明に係わるプログラムの一例である。プログラム11は、外部IOアクセスを伴うオペランドデータのリードアクセスに先行して、該オペランドデータのアドレスを先読みレジスタにストア命令を用いてライトすることで、先読み機構の起動を行う。その後、プログラムは、オペランドデータが必要になった時点でロード命令によりオペランドデータを読み込む。
【0024】
本実施例では、すべてのプロセサが備えているストア命令とロード命令を用いてオペランドデータの先読みを行うところに特徴がある。従って、先読みのための専用命令を必要としないため、安価な組込み用途向けプロセサでもオペランドデータの先読みを実現できる。
【0025】
図3は、本発明に係わるプログラム動作とLSI動作について従来方法と本発明の比較を示す動作図である。従来方法では、オペランドデータが必要になった時点で、ロード命令を発行する。この後外部IOアクセスを行うため、実際に該オペランドデータをプロセサ内部に読み込むまでプロセサはストールすることになる。これに対し、本発明では、オペランドデータが必要になる時点に先行して、ストア命令により先読みを行う。これにより外部制御LSIは、先読みレジスタにオペランドデータを読込んでおく。プロセサは、先読みを発行してから実際にオペランドデータの読込みを実行するまでの間は、他の処理を実行することができる。ストア処理は、プロセサの動作サイクルでたかだか数サイクル程度である。一方、リード命令はシステム構成に依存し大規模なシステムでは数マイクロ秒オーダになる。従って、従来方法では、数マイクロ秒の間処理が中断するのに対し、本発明では、他の処理を行うことで、オペランドデータアクセス時間を隠蔽できる。
【0026】
次に先読み制御部の実現例について図4、図5、図6を用いて説明する。図4は、図1に示した先読み制御部の一例を示すブロック図である。先読みレジスタ6は、先読みを行うアドレスを格納するアドレスレジスタ60と、該アドレスレジスタ60のデータが有効か無効かを示すAD有効フラグ61と、オペランドデータを格納するデータレジスタ62と、該データレジスタ62のデータが有効か無効かを示すDT有効フラグ63とを有する先読みレジスタセット64を複数備える。全レジスタセットのAD有効フラグの論理積によりレジスタセットに空きがあるかどうかを示すレジスタEMTY信号65を備える。アドレス判定回路7は、アクセスアドレス判定回路71と先読みアドレス判定回路72を備える。アクセスアドレス判定回路71は、プロセサがアクセスしたアドレスが先読みレジスタに対するアクセスかを判定する比較器を備え、また、判定結果を報告するアドレス一致信号41を生成する。先読みアドレス判定回路72は、プロセサがアクセスしたアドレスと、先読みレジスタ6に格納されている先読みアドレスの比較を行う比較器を備え、比較器の結果とAD有効フラグの論理積によりアドレスが一致したかを示す信号を生成する。比較器は、先読みレジスタセットに対応した数だけ備える。各比較器からの信号の論理和によりプロセサが要求したアドレスが先読みレジスタにあるかどうかを示す示す先読みヒット信号42を生成する。また、本実施例では、先読みレジスタセットの管理を行うための時間計測部68を設けている。時間計測部68は、時間計測用カウンタ回路を備え、先読み動作開始を示す計測起動信号66により計測を開始しあらかじめ設定したタイムアウト値を超えるとタイムアウト信号67にて報告する。先読みレジスタ6は、タイムアウト信号により該当する先読みレジスタセットのAD有効フラグ61とDT有効フラグ64をクリアすることで先読み処理を中断し、先読みレジスタセット64を開放する。
【0027】
次に、アクセス制御部5の動作について説明する。図5、図6は、アクセス制御部5の動作を示す流れ図である。アクセス制御部5は、図5、図6に示した流れ図から、シーケンサにより容易に実現できる。図5は、プロセサからのアクセスが発生したときの制御の流れを示している。プロセサからアクセスは、制御信号をデコードすることで認識できる。アクセスが発生すると、はじめに、アドレス一致信号と内部バス制御信号の状態から、該アクセスが先読みレジスタへのライトアクセスかを判定する(ステップ1)。先読みレジスタへのライトアクセスの場合は、先読みルーチンを起動して終了する(ステップ2)。先読みルーチンの詳細は、図6を用いて後述する。先読みレジスタへのライトアクセスでない場合は、先読みヒット信号の状態から先読みレジスタに設定されたアドレスへのアクセスかを判定する(ステップ3)。先読みレジスタに設定されたアドレスへのアクセスの場合は、すでに先読みの起動がかけられていることを示す。この場合、今回のアクセスがライトアクセスかを判定する(ステップ4)。アクセスがライトアクセスの場合は、先読みデータレジスタにデータを格納しDT有効フラグをセットする(ステップ5)。従って、先読み起動後に、同一アドレスに対するライトアクセスが発生した場合は、ライトデータが有効となり、データの不一致を生じることがない。ステップ5により該アクセスは終了する。一方、ステップ3で、先読みレジスタに設定されたアドレスへのアクセスでない場合は、先読みに係らない通常のアクセスであり、通常のIOアクセスを行い(ステップ6)終了する。また、ステップ4で、アクセスがライトアクセス出ない場合、すなわち、リードアクセスの場合は、先読みアドレスに対するリードアクセスを示している。この場合、DT有効フラグがセットされていることを確認し、セットされていない場合はセットされるまで待つ(ステップ7)。DT有効フラグがセットされている場合は、先読みデータがデータレジスタに格納されていることを示すので、該先読みデータをプロセサに送信する(ステップ8)。さらに、AD有効フラグとDT有効フラグをクリアしてアクセスを終了する(ステップ9)。
【0028】
以上の制御により先読みデータがある場合は、先読みデータをプロセサに送信することができる。
【0029】
図6は、先読み起動時の制御の流れを示す。図5ステップ2で先読みを起動されると、はじめに、先読みレジスタに空いているレジスタセットがあるかを判定する(ステップ1)。空いているレジスタセットがある場合は、アドレスレジスタにアドレスを格納し、AD有効フラグをセットする(ステップ2)。この後、実際のデータリードを開始し(ステップ3)、データ受信が終了するまで待つ(ステップ3)。データ受信が終了したら、DT有効フラグが既にセットされていないかを判定する(ステップ5)。DT有効フラグが既にセットされていなければ、データレジスタに受信したリードデータを格納しDT有効フラグをセットして(ステップ6)終了する。ステップ5でDT有効フラグが既にセットされている場合は、先読みアクセス中に同一アドレスに対するライトアクセスが発生したことを示しており、受信データは破棄し処理を終了する。また、ステップ1で、先読みレジスタセットが空いていない場合は、先読み処理を行わず終了する。
【0030】
図7は、本発明に係るディスクアレイ制御装置の他の一例を示すブロック図である。本実施例では、外部アクセスLSI2とメモリ制御LSI22、他LSI23をシステムバス24で接続したところに特徴がある。LSI間をバスで接続しているため小規模なシステムを構成する場合はシステム化が容易である。
【0031】
図8は、本発明に係るディスクアレイ制御装置の他の一例を示すブロック図である。本発明では、マイクロプロセサ1と先読み制御部4を備えたメモリアクセス制御部3、または、先読み制御部4を備えた外部レジスタ制御部9を同一LSI内に備えたところに特徴がある。プロセサローカルバスの周波数を高めることが可能なので、プロセサから先読みレジスタのアクセス時間を低減できる。
【0032】
【発明の効果】
本発明の効果を一言で述べると、 外部アクセス制御部に、オペランドデータが必要となる前に、あらかじめ、オペランドデータをメモリ、または、レジスタから外部アクセス制御部内のレジスタに読み込んでおくようにしたので、外部アクセスを伴うオペランドデータアクセス時間を隠蔽することができ、また、プロセサのストールを低減できるので、結果的に、プロセサの処理性能を向上することができるという効果がある。以下、具体的な効果について説明する。
【0033】
プロセサの外部アクセスを制御する外部アクセス制御部に先読み制御部を設け、先読み制御部は、先読みを行うメモリまたはレジスタのアドレスを指定するアドレスレジスタと該アドレスレジスタのデータの有効性を示すアドレスレジスタ有効フラグと先読みしたデータを格納するデータレジスタと該データレジスタのデータの有効性を示すデータレジスタ有効フラグとを有する先読みレジスタセットを1つ以上備えた先読みレジスタ回路と、アクセス先のアドレスが該アドレスレジスタの値と一致しているかを判定するアドレス判定回路と、該先読みレジスタ回路および該アドレス判定回路を用いて先読み制御を行うアクセス制御回路を備えるようにしたので、プロセサのストア命令で先読みを指示できるという効果がある。
【0034】
先読み制御部は、先読みレジスタのアドレスレジスタに格納したアドレスに対するライトアクセスが発生した場合は、該ライトアクセスのデータをデータレジスタにセットし、データレジスタ有効フラグをセットするようにしたので、先読みを指示したアドレスに対するライトが発生した場合でもデータの整合性がとれるという効果がある。
【0035】
先読み制御部が、先読みレジスタに対するライトアクセスを検出した場合に、先読みレジスタセットのすべてのアドレスレジスタ有効フラグがセットされている場合は、先読みを行わないようにしたので、容易に先読みレジスタセットの管理を実現できるという効果がある。
【図面の簡単な説明】
【図1】本発明に係る外部アクセス制御部の概要を示すブロック図の一例である。
【図2】本発明に係るプログラムの一例を示すリスト図である。
【図3】本発明に係る動作の一例を示す流れ図である。
【図4】本発明に係る先読み制御部の一例を示すブロック図である。
【図5】本発明に係る先読み制御部内のアクセス制御部の動作の一例を示す流れ図である。
【図6】本発明に係る先読み制御部内のアクセス制御部の動作の一例を示す流れ図である。
【図7】本発明に係る外部アクセス制御部の概要を示すブロック図の一例である。
【図8】本発明に係る外部アクセス制御部の概要を示すブロック図の一例である。
【図9】本発明に係るディスクアレイ装置の従来例を示すブロック図である。
【符号の説明】
1・・・プロセサ
2・・・外部アクセスLSI
3・・・メモリアクセス制御部
4・・・先読み制御部
5・・・アクセス制御部
6・・・先読みレジスタ
7・・・アドレス判定部
8・・・データパス
9・・・外部レジスタ制御部
8・・・バッファメモリ
30・・・メモリ部
31・・・IF制御部
40・・・制御LSI。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a device such as a disk array device that processes a plurality of requests in a multiplexed manner and an access pattern cannot be predicted, and more particularly to a data read control method for operands accessed by a processor.
[0002]
[Prior art]
There is a disk array device that stores and reads data for a plurality of magnetic disk devices (hereinafter referred to as disk devices). In a disk array device, a processor usually performs data control and overall device control. As represented by a disk array device, a system using a processor sequentially processes a program stored in a memory, that is, an instruction code, on the processor. For the operation, an operand which is data on a memory or a register is used. Usually, a system is composed of a processor that performs arithmetic processing, a memory controller that performs memory control, a memory, and a plurality of control LSIs. An example of such a conventional general configuration is shown in FIG.
[0003]
FIG. 9 shows an example of a conventional disk array device. The disk array device roughly includes a plurality of magnetic disk devices 1020 and a disk
[0004]
In such a processor system, in addition to the arithmetic processing performance of the processor, reading performance of operand data from the memory or register to the processor is important. The delay from when the processor requests access until it receives data is called access latency. In recent years, the core performance of processors has been greatly improved, while the read access performance of operand data with external IO access has not been improved much. If the access latency is brought to the surface due to the difference in performance between the two, the processing of the processor is stalled and the processor performance cannot be brought out, so that there is a problem that the memory system becomes a bottleneck on the system.
[0005]
There are roughly two ways to improve operand data access performance. One is performance improvement by reducing access time, and the other is access time concealment. However, in order to reduce the access time, it is necessary to improve the operating frequency of the access path, but mounting noise such as crosstalk is an issue and it is difficult to improve. In particular, in the disk array device as shown in FIG. 9, since the distance between the processor and the operand data is long because a plurality of LSIs are interposed between the processor and the operand data, it is difficult to reduce the access time beyond a certain level. .
[0006]
The second access time concealment includes data prefetching. As a conventional example, there is a prefetch using a dedicated instruction of a processor. As an example, there is a dcbt (Data Cache Block Touch) instruction in the POWERPC instruction set described in “PowerPC Microprocessor Family Programming Environment”. The dcbt instruction is an instruction for reading operand data into a cache inside the processor by a dedicated instruction.
[0007]
However, when a dedicated instruction is used, the external IO access time may require a microsecond order in a large-scale system such as the disk array device already described, and the cache will be cached when data is actually needed. We cannot guarantee if there is data in Further, since a part of the cache is occupied in the order of microseconds, the use efficiency of the cache deteriorates when a plurality of prefetching is executed. In POWERPC, the dcbt instruction is valid for the main memory and cannot be executed for the external IO. Further, it can be realized when a part of processors provided with dedicated instructions is used, and a relatively inexpensive processor used for so-called embedded use does not have such dedicated instructions.
[0008]
[Problems to be solved by the invention]
As described above, with the recent increase in processor speed, the relative performance of operand access accompanied by external IO access represented by external memory and external registers has decreased, resulting in a bottleneck in system performance. It has become. That is, the internal processing performance of the processor is improved as the operating frequency of the processor core unit is improved, but the external IO access speed is not sufficient. Accordingly, the performance of a system that frequently generates external IO access, such as a so-called embedded system, depends on the external IO access performance.
[0009]
The main problem to be solved by the present invention is to improve operand access performance. In particular, it is an object of the present invention to improve the operand data access performance of a processor easily and inexpensively in external IO control.
[0010]
One of the problems common to the operand data access described above is that operand access with a conventional external IO operates only after an external IO request is generated. Therefore, in order to improve the operand data read speed, It is necessary to reduce the access latency from when the processor makes a read request from the memory or register to when it responds, and it is essential to increase the speed of the external IF. High-speed memories such as high-speed SRAMs and dedicated memory for each processor are expensive, leading to an increase in system price. Also, it is difficult to significantly shorten the operand access time.
[0011]
Another problem caused by an increase in access latency is a decrease in the effective performance of the system bus due to an increase in system bus occupancy.
[0012]
[Means for Solving the Problems]
In short, the means of the present invention for solving the above-described problems will be described. Before the operand data is required for the external access control unit, the operand data is previously stored in the memory or the register in the external access control unit. (Referred to as prefetching below). Hereinafter, specific means will be described.
[0013]
A prefetch control unit is provided in the external access control LSI that controls the external access of the processor.
[0014]
The prefetch control unit includes an address register that specifies the address of the memory or register that performs prefetching, an address register valid flag that indicates the validity of the data in the address register, a data register that stores the prefetched data, and the validity of the data in the data register A prefetch register circuit having one or more prefetch register sets each having a data register valid flag indicating the characteristics, an address determination circuit for judging whether the address of the access destination matches the value of the address register, and the prefetch register An access control circuit that performs read-ahead control using the circuit and the address determination circuit is provided.
[0015]
When the prefetch control unit detects a write access to the prefetch register, it stores the write access data in the address register, sets the address register valid bit, and further, for the address indicated by the data stored in the address register. Read access, store the read data in the data register, set the data valid flag, read access to the address that has the address register valid bit set and matches the data stored in the address register If the data valid flag is already set, the data stored in the data register is immediately transmitted. If the data valid flag is not set, the data valid flag is transmitted. Is set in the data register after It transmits the data that has been paid, and to reset the address valid flag and the data valid flag.
[0016]
When a write access to the address stored in the address register of the prefetch register occurs, the prefetch control unit sets the write access data in the data register and sets the data register valid flag.
[0017]
When the prefetch control unit detects a write access to the prefetch register, if all the address register valid flags of the prefetch register set are set, the prefetch is not performed.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the details of the invention will be described with reference to the drawings.
[0019]
First, I will briefly touch on access to the
[0020]
FIG. 1 is an example of a block diagram showing an outline of the present invention. The present embodiment is an example when prefetching is performed for external access. The disk array control apparatus shown in FIG. 1 mainly includes a
[0021]
As described above, the present embodiment is characterized in that operand data prefetching is realized by providing a dedicated register for prefetching purposes.
[0022]
Next, the operation flow of the method for accessing operand data according to the present invention will be described with reference to FIGS.
[0023]
FIG. 2 is an example of a program according to the present invention. The
[0024]
The present embodiment is characterized in that operand data is prefetched using a store instruction and a load instruction provided in all processors. Accordingly, since a dedicated instruction for prefetching is not required, prefetching of operand data can be realized even with an inexpensive processor for embedded use.
[0025]
FIG. 3 is an operation diagram showing a comparison between the conventional method and the present invention regarding the program operation and the LSI operation according to the present invention. In the conventional method, a load instruction is issued when operand data is required. Thereafter, in order to perform external IO access, the processor is stalled until the operand data is actually read into the processor. On the other hand, in the present invention, prefetching is performed by a store instruction prior to the time when operand data is required. As a result, the external control LSI reads the operand data into the prefetch register. The processor can execute other processes from the time when the prefetch is issued to the time when the operand data is actually read. The store process is at most several cycles in the operation cycle of the processor. On the other hand, the read command depends on the system configuration and is on the order of several microseconds in a large-scale system. Therefore, in the conventional method, the processing is interrupted for several microseconds, whereas in the present invention, the operand data access time can be concealed by performing other processing.
[0026]
Next, an implementation example of the prefetch control unit will be described with reference to FIGS. 4, 5, and 6. FIG. 4 is a block diagram illustrating an example of the prefetch control unit illustrated in FIG. The prefetch register 6 includes an
[0027]
Next, the operation of the
[0028]
When pre-read data exists by the above control, the pre-read data can be transmitted to the processor.
[0029]
FIG. 6 shows the flow of control when prefetching is started. When prefetching is activated in
[0030]
FIG. 7 is a block diagram showing another example of the disk array control apparatus according to the present invention. This embodiment is characterized in that the
[0031]
FIG. 8 is a block diagram showing another example of the disk array control apparatus according to the present invention. The present invention is characterized in that the memory access control unit 3 including the
[0032]
【The invention's effect】
The effect of the present invention will be described in a word. Before the operand data is required for the external access control unit, the operand data is read in advance from the memory or the register into the register in the external access control unit. Therefore, the operand data access time accompanied by external access can be concealed, and the stall of the processor can be reduced. As a result, the processing performance of the processor can be improved. Hereinafter, specific effects will be described.
[0033]
A prefetch control unit is provided in the external access control unit that controls the external access of the processor. The prefetch control unit is an address register that specifies the address of the memory or register that performs prefetching and an address register that indicates the validity of the data in the address register. A prefetch register circuit having at least one prefetch register set having a flag, a data register for storing prefetched data, and a data register valid flag indicating the validity of the data in the data register, and an address to be accessed is the address register Since the address determination circuit for determining whether or not the value matches, the prefetch register circuit and the access control circuit for performing prefetch control using the address determination circuit, prefetch can be instructed by a store instruction of the processor. There is an effect.
[0034]
When a write access to the address stored in the address register of the prefetch register occurs, the prefetch control unit sets the data of the write access to the data register and sets the data register valid flag. Even when a write to the specified address occurs, there is an effect that data consistency can be obtained.
[0035]
When the prefetch control unit detects a write access to the prefetch register, if all the address register valid flags of the prefetch register set are set, prefetch is not performed, so the prefetch register set can be easily managed. There is an effect that can be realized.
[Brief description of the drawings]
FIG. 1 is an example of a block diagram showing an outline of an external access control unit according to the present invention.
FIG. 2 is a list diagram showing an example of a program according to the present invention.
FIG. 3 is a flowchart showing an example of an operation according to the present invention.
FIG. 4 is a block diagram illustrating an example of a prefetch control unit according to the present invention.
FIG. 5 is a flowchart showing an example of the operation of the access control unit in the prefetch control unit according to the present invention.
FIG. 6 is a flowchart showing an example of the operation of the access control unit in the prefetch control unit according to the present invention.
FIG. 7 is an example of a block diagram showing an outline of an external access control unit according to the present invention.
FIG. 8 is an example of a block diagram showing an outline of an external access control unit according to the present invention.
FIG. 9 is a block diagram showing a conventional example of a disk array device according to the present invention.
[Explanation of symbols]
1 ...
DESCRIPTION OF SYMBOLS 3 ... Memory
Claims (7)
命令コードを実行する処理ユニットと、
前記命令コードに関連するオペランドデータを記憶するメモリと、
前記オペランドデータを格納するレジスタと、
前記処理ユニットと、前記メモリ、及び前記レジスタに接続される、先読み制御ユニットとを有し、
前記処理ユニットは、ロード命令を発行する前、前記先読み制御ユニットが、前記オペランドデータを前記メモリあるいは前記レジスタから読み出す間に他の命令コードを実行し、
前記先読み制御ユニットは、
先読みを行うメモリまたはレジスタのアドレスを指定するアドレスレジスタと前記アドレスレジスタのデータの有効性を示すアドレスレジスタ有効フラグと、先読みしたデータを格納するデータレジスタと前記データレジスタのデータの有効性を示すデータレジスタ有効フラグとを有する先読みレジスタを備えた先読みレジスタ回路と、
アクセス先のアドレスが前記アドレスレジスタの値と一致しているかを判定するアドレス判定回路と、
前記先読みレジスタ回路および前記アドレス判定回路を用いて先読み制御を行うアクセス制御回路を備え、
前記先読みレジスタに対するライトアクセスを検出した場合は、前記ライトアクセスのデータを前記アドレスレジスタに格納して前記アドレスレジスタ有効フラグをセットし、前記アドレスレジスタに格納したデータが示すアドレスに対してリードアクセスを行い、リードデータを前記データレジスタに格納し、前記データレジスタ有効フラグをセットし、
前記アドレスレジスタに格納されたデータが示すアドレスと一致するアドレスに対するリードアクセスを検出した場合であって、前記データレジスタ有効フラグが既にセットされているときは、前記データレジスタに格納されているデータを送信し、前記データレジスタ有効フラグがセットされていないときは、前記データレジスタ有効フラグがセットされた後に前記データレジスタに格納されているデータを送信し、前記アドレスレジスタ有効フラグと前記データレジスタ有効フラグをリセットすることを特徴とするディスクアレイ装置。A disk array device,
A processing unit for executing the instruction code;
A memory for storing operand data related to the instruction code;
A register for storing the operand data;
A prefetch control unit connected to the processing unit, the memory, and the register;
The processing unit executes another instruction code while the prefetch control unit reads the operand data from the memory or the register before issuing a load instruction ,
The prefetch control unit includes:
An address register that specifies the address of the memory or register that performs prefetching, an address register valid flag that indicates the validity of the data in the address register, a data register that stores the prefetched data, and data that indicates the validity of the data in the data register A prefetch register circuit comprising a prefetch register having a register valid flag;
An address determination circuit for determining whether the address of the access destination matches the value of the address register;
An access control circuit that performs prefetch control using the prefetch register circuit and the address determination circuit;
When a write access to the prefetch register is detected, the write access data is stored in the address register, the address register valid flag is set, and a read access is performed to the address indicated by the data stored in the address register. Store read data in the data register, set the data register valid flag,
When a read access to an address matching the address indicated by the data stored in the address register is detected, and the data register valid flag is already set, the data stored in the data register is And when the data register valid flag is not set, the data stored in the data register is transmitted after the data register valid flag is set, and the address register valid flag and the data register valid flag are transmitted. A disk array device characterized by resetting the disk.
前記メモリから読み出した前記オペランドデータをロードする前記ロード命令が発行される前に、先行的に、前記メモリから前記オペランドデータを読み出す前記メモリ用先読みコントローラと、
前記レジスタから読み出した前記オペランドデータをロードする前記ロード命令が発行される前に、先行的に、前記レジスタから前記オペランドデータを読み出す前記レジスタ用先読みコントローラとを、有することを特徴とするディスクアレイ装置。The disk array device according to claim 1, wherein the prefetch control unit further includes:
The memory prefetch controller that reads the operand data from the memory in advance before the load instruction to load the operand data read from the memory is issued;
A disk array device comprising: the register prefetch controller that reads the operand data from the register in advance before the load instruction for loading the operand data read from the register is issued .
前記メモリ用先読みコントローラと前記 メモリとを接続する第1の専用バスと、
前記レジスタ用先読みコントローラと前記 レジスタとを接続する第2の専用バスとを有することを特徴とするディスクアレイ装置。The disk array device according to claim 2,
A first dedicated bus connecting the memory prefetch controller and the memory;
A disk array device comprising: the prefetch controller for registers and a second dedicated bus for connecting the registers.
前記処理ユニットと 前記先読み制御ユニットは、LSIパッケージに実装されることを特徴とするディスクアレイ装置。The disk array device according to claim 1, wherein
The disk array device, wherein the processing unit and the prefetch control unit are mounted on an LSI package.
前記先読み制御ユニットは、先読み対象のオペランドデータを受信した際に当該先読み対象のオペランドデータに対応する前記データレジスタ有効フラグを調べ、
当該データレジスタ有効フラグがまだセットされていなければ当該先読み対象のオペランドデータを前記データレジスタに書き込み、当該データレジスタ有効フラグが既にセットされていれば当該先読み対象のオペランドデータを前記データレジスタに書き込まないものである、ことを特徴とするディスクアレイ装置。The disk array device according to claim 1,
The prefetch control unit checks the data register valid flag corresponding to the prefetch target operand data when receiving the prefetch target operand data,
If the data register valid flag has not been set yet, the operand data to be prefetched is written to the data register, and if the data register valid flag has already been set, the operand data to be prefetched is not written to the data register. A disk array device characterized by that.
前記アドレスレジスタ有効フラグが設定されている時間を計測する計測回路を有し、
前記アドレスレジスタ有効フラグのセット時間が予め定められたタイムアウト値より大きくなった場合は、前記アドレスレジスタ有効フラグと前記データレジスタ有効フラグの両方をリセットすることを特徴とするディスクアレイ装置。The disk array device according to claim 1, further comprising:
A measurement circuit for measuring the time for which the address register valid flag is set;
The disk array device, wherein when the set time of the address register valid flag becomes longer than a predetermined timeout value, both the address register valid flag and the data register valid flag are reset.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15465499A JP3968914B2 (en) | 1999-06-02 | 1999-06-02 | Disk array device |
| US09/585,330 US6738867B1 (en) | 1999-06-02 | 2000-06-02 | Disk array system reading ahead operand databackground of the invention |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15465499A JP3968914B2 (en) | 1999-06-02 | 1999-06-02 | Disk array device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000347937A JP2000347937A (en) | 2000-12-15 |
| JP3968914B2 true JP3968914B2 (en) | 2007-08-29 |
Family
ID=15588973
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP15465499A Expired - Fee Related JP3968914B2 (en) | 1999-06-02 | 1999-06-02 | Disk array device |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6738867B1 (en) |
| JP (1) | JP3968914B2 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006268215A (en) | 2005-03-23 | 2006-10-05 | Hitachi Ltd | Storage system |
| US7827387B1 (en) * | 2006-09-08 | 2010-11-02 | Marvell International Ltd. | Communication bus with hidden pre-fetch registers |
| GB0722707D0 (en) * | 2007-11-19 | 2007-12-27 | St Microelectronics Res & Dev | Cache memory |
| GB2454811B8 (en) * | 2007-11-19 | 2012-11-21 | St Microelectronics Res & Dev | Cache memory system |
| JP2009230374A (en) * | 2008-03-21 | 2009-10-08 | Fujitsu Ltd | Information processor, program, and instruction sequence generation method |
| WO2013089298A1 (en) * | 2011-12-16 | 2013-06-20 | 엘지전자 주식회사 | Apparatus and method for controlling disk array |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5493728A (en) * | 1993-02-19 | 1996-02-20 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
| JP3668504B2 (en) | 1994-04-01 | 2005-07-06 | 富士通株式会社 | Buffer storage control method and information processing apparatus |
| JP3548616B2 (en) | 1995-01-20 | 2004-07-28 | 株式会社日立製作所 | Information processing equipment |
| US5845103A (en) * | 1997-06-13 | 1998-12-01 | Wisconsin Alumni Research Foundation | Computer with dynamic instruction reuse |
| US6341335B1 (en) * | 1997-10-29 | 2002-01-22 | Hitachi, Ltd. | Information processing system for read ahead buffer memory equipped with register and memory controller |
| US6401193B1 (en) * | 1998-10-26 | 2002-06-04 | Infineon Technologies North America Corp. | Dynamic data prefetching based on program counter and addressing mode |
-
1999
- 1999-06-02 JP JP15465499A patent/JP3968914B2/en not_active Expired - Fee Related
-
2000
- 2000-06-02 US US09/585,330 patent/US6738867B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US6738867B1 (en) | 2004-05-18 |
| JP2000347937A (en) | 2000-12-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3577331B2 (en) | Cache memory system and method for manipulating instructions in a microprocessor | |
| US5745732A (en) | Computer system including system controller with a write buffer and plural read buffers for decoupled busses | |
| US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
| JP3640355B2 (en) | Instruction prefetch method and system for cache control | |
| US7536530B2 (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
| US5603010A (en) | Performing speculative system memory reads prior to decoding device code | |
| US6341335B1 (en) | Information processing system for read ahead buffer memory equipped with register and memory controller | |
| US6345320B1 (en) | DMA address buffer and cache-memory control system | |
| US6098115A (en) | System for reducing storage access latency with accessing main storage and data bus simultaneously | |
| US20020056027A1 (en) | Information processing system | |
| US20070271407A1 (en) | Data accessing method and system for processing unit | |
| US5666505A (en) | Heuristic prefetch mechanism and method for computer system | |
| JPH09282228A (en) | Main memory controller | |
| US5367657A (en) | Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems | |
| JP3968914B2 (en) | Disk array device | |
| JP3732555B2 (en) | Pipeline cache system with low effective latency for non-sequential access | |
| JPH06318174A (en) | Cache memory system and method for performing cache for subset of data stored in main memory | |
| JPH06243038A (en) | Method for reading and writing cached data and device for caching data | |
| US8683132B1 (en) | Memory controller for sequentially prefetching data for a processor of a computer system | |
| US6097403A (en) | Memory including logic for operating upon graphics primitives | |
| JPH11232171A (en) | Information processing system | |
| JPH02301843A (en) | Prefetch control method and prefetch control device | |
| KR20040047398A (en) | Method for data access using cache memory | |
| JPH07282023A (en) | Data transfer amount variable processor and system using the same | |
| JP3039391B2 (en) | Memory system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060417 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061213 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061226 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070219 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070306 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070417 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070425 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070515 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070528 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130615 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |