JP2002540499A - ディスク・コントローラ・メモリへのアクセスを調停する調停方法およびシステム - Google Patents

ディスク・コントローラ・メモリへのアクセスを調停する調停方法およびシステム

Info

Publication number
JP2002540499A
JP2002540499A JP2000607076A JP2000607076A JP2002540499A JP 2002540499 A JP2002540499 A JP 2002540499A JP 2000607076 A JP2000607076 A JP 2000607076A JP 2000607076 A JP2000607076 A JP 2000607076A JP 2002540499 A JP2002540499 A JP 2002540499A
Authority
JP
Japan
Prior art keywords
access
time
length
unit
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000607076A
Other languages
English (en)
Other versions
JP4313516B2 (ja
JP2002540499A5 (ja
Inventor
クランツ、レオン、エー.
キャンベル、フランク、ダブリュー.
Original Assignee
クロジック コーポレーション
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 クロジック コーポレーション filed Critical クロジック コーポレーション
Publication of JP2002540499A publication Critical patent/JP2002540499A/ja
Publication of JP2002540499A5 publication Critical patent/JP2002540499A5/ja
Application granted granted Critical
Publication of JP4313516B2 publication Critical patent/JP4313516B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 共有ディスク・コントローラ・リソースへのアクセスを調停するための方法およびシステムを提供すること。 【解決手段】 一実施例において、第1サイクル持続期間を伴うアクセス・サイクルが提供される。第1の時間の長さが第1アクセス・ユニットに割り当てられる。共有コントローラ・リソースが、第1持続期間のための第1ユニットを使用して割り当てられ、ここに第1持続期間は第1の時間の長さを超えない。第2の時間の長さと第1の時間の長さの未使用の長さが第2アクセス・ユニットに割り当てられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
(技術分野) 本発明は大容量データ記憶デバイス・コントローラに関する。より詳しくは、
本発明はディスク・コントローラ・メモリへのアクセスを調停する方法およびシ
ステムに関する。
【0002】
【従来の技術】
(背景技術) 大容量データ記憶装置は、コンピュータ・システムの重大要素である。一般的
に、大容量記憶ユニットはハード・ディスク、光学ドライブのような不揮発性メ
モリまたは他のタイプの記憶デバイスからなる。コンピュータ・システムは一般
的にランダム・アクセス・メモリ(RAM)回路のような揮発性システム・メモ
リも含んでいる。現在のほとんどのパーソナル・コンピュータは、256メガバ
イトを超えないRAMを含み、一方同じコンピュータがしばしば10ギガバイト
またはそれ以上の容量までのハード・ディスクを含んでいる。
【0003】 コンピュータの大容量記憶ユニットは、不揮発性基板上にプログラムとデータ
を記憶するのに使用される。従って、大容量記憶デバイスは、コンピュータと大
容量記憶デバイスがパワーダウンしたときにおいてさえも、データを維持する。
これに反して、揮発性システム・メモリはプログラム・コードとデータの一時的
保持装置として作用する。一般的に、揮発性システム・メモリは大容量記憶デバ
イスよりも急速にアクセスすることができる。マイクロプロセッサが、システム
・メモリ内にないプログラムまたはデータにアクセスする必要があるとき、マイ
クロプロセッサは、より大型であるがより遅い大容量記憶デバイスからシステム
・メモリへのデータを最初にコピーする。プロセッサは、システム・メモリから
データをすばやくアクセスするであろう。さらに、ある一定の条件下で、新しい
または訂正データがシステム・メモリに記憶された場合に、マイクロプロセッサ
はそのデータを大容量記憶デバイスに書き込む。
【0004】 大容量記憶ユニットは一般的にハード・ディスクとハード・ディスク・コント
ローラ(HDC)からなる。コントローラはハード・ディスクを作動し、データ
をディスクに書き込まれるようにフォーマットし、データをディスクから読取り
されるようにチェックし、ホスト・システムへのデータとこれからのデータとの
通信をし、また、待ち時間(ラテンシー)とハード・ディスクとホスト・コンピ
ュータ・システム間のデータ送信レート内における差を補償するようにデータを
バッファする。
【0005】
【発明が解決しようとする課題】
一般的に、HDCはディスクとホスト間のデータをバッファするように使用で
きるバッファ・メモリを含んでいる。ディスク、ホストおよびローカル・コント
ローラのような数個の基本的ユニットが、バッファ・メモリが相互作用する必要
があるので、バッファ・メモリへのアクセスはある方式で調整しなければならな
い。従って、HDCは、アクセスを要求する種々のデバイス中のバッファ・メモ
リへのアクセスを交渉するようにアクセス・アービッタを利用できる。しかし、
従来のシステムは一般的にアービッタを利用しており、このアービッタは、各ア
クセス・サイクルに対して、アクセス時間の固定された長さをアクセス・ユニッ
トに提供しており効率が悪い。従って、従来のシステムは、アクセス・ユニット
によってバッファ・メモリの利用の変更を動的に適応することに欠けている。
【0006】
【課題を解決するための手段】
(発明の開示) 本発明は大容量記憶デバイス・コントローラの共有リソースへのアクセスを調
停する方法およびシステムを開示する。本発明の一実施例において、コントロー
ラはハード・ディスク・コントローラであり、また共有リソースはハード・ディ
スク・コントローラのローカル・バッファ・メモリである。コントローラ内の数
個のユニットないし回路は、各々バッファ・メモリにアクセスして情報を記憶ま
たは検索する。これらのユニットはコントローラ・マイクロプロセッサ、ホスト
・インターフェース・ユニット、ディスク・フォーマッタ・ユニット、バッファ
・メモリ・リフレッシュ・ユニット、ディスク・フォーマット・データ・フェッ
チ・ユニットおよび誤り訂正ユニットを含んでいる。バッファ・メモリへのアク
セスの調停において、ユニットの種々のアクセス要求が考慮される。例えば、一
実施例において、ディスク・コントローラは最も時間に限界的で、予測でき、周
期的なアクセス要求を有しており、他のユニットはあまり限界的でなく、それほ
ど予測できないアクセス要求を有し、またホスト・インターフェース・ユニット
は最も予測できず、かつ、最も時間的限界でないアクセス要求を有している。
【0007】 本発明の一実施例は、サイクルで動作し、このサイクル中各ユニットは連続す
るアクセス持続期間で提供される。最も重要な(限界的な)アクセス要求を有す
るディスク・フォーマッタは、時間遅延のような周期的アクセスを提供され、ア
クセスのない期間中で特定時間周期を超えないような周期的アクセスを提供され
る。
【0008】 高いレベルにおいて、アクセス・サイクルは二つの部分に分割される。第1部
分は、ディスク・フォーマッタがバッファ・メモリにアクセスする期間中の時間
を表わす。アクセス・サイクルの第2部分は、残りのユニット、すなわち、ディ
スク・フォーマッタ以外のユニットがバッファ・メモリにアクセスする期間中の
時間を表わす。しかし、残りのユニットがバッファ・メモリにアクセスしている
間、ディスク・フォーマッタはバッファ・メモリにアクセスすることができない
。一実施例において、ディスク・フォーマッタは所定時間の長さ内で周期的アク
セスが保証され、残りのユニットの合成アクセス時間が所定の時間の長さに制限
される。同様にして、残りのユニットがアクセスを受信することを保証するため
に、ディスク・フォーマッタのアクセス時間も所定の長さに制限される。アクセ
ス・サイクルの二つの部分の各々が最大持続期間を有しておれば、アクセス・サ
イクル自体は最大許容持続期間を有している。
【0009】 次のレベルにおいて、残りのユニットに割り当てられたアクセス・サイクルの
部分が再度分割される。残りのユニットの各々が、残りの非ディスク・フォーマ
ッタ・ユニットに割り当てられた時間内で最大時間の長さが割り当てられる。い
ずれの残りのユニットもその最大割り当てを使用しなければ、未使用時間が残り
のユニットの最後のものに提供される。最後のユニットがそれに対して利用可能
な全時間に使用されなければ、調停サイクルが早期に終了する。従って、ディス
ク・フォーマッタがバッファ・メモリに対して再度アクセスを提供する前の時間
は特定する最大持続期間よりも短く終了する。
【0010】 一実施例において、アクセス・サイクル中、残りのユニットの各々がシーケン
ス的に全割り当て時間の一部を利用したときに、残りのユニットに割り当てられ
た全アクセス時間から、時間が控除(deduct)される。最後のユニットの他が全て
アクセスを提供した後、割り当てられた時間の残りはなんでもみな最後のユニッ
トに割り当てられる。
【0011】
【発明の実施の形態】
次の説明において、添付図面を参照して、その一部を形成しまた、本発明を実
施する特定実施例を図示する方法で示す。他の実施例は本発明の範囲から逸脱す
ることなしに利用でき、また構造上の変形が可能であることが理解できる。可能
な限り、同じ参照番号を、同じまたは同様の要素を示すように全図を通して使用
する。多数の特定する詳細について、本発明を完全に理解するために説明する。
しかし、本発明は特定する詳細な説明なしに、あるいはここに説明するある一定
の別の等価なデバイスおよび方法で実行することが可能なことは当業者にとって
明白である。他の例において、周知の方法、プロシージャ、要素およびデバイス
は、本発明の不必要に不明瞭な状況にならないように、詳細に説明しない。
【0012】 次なる詳細な説明は、次のセクションに編成される。すなわち、「本発明の一
実施例に使用するのに適したシステムの一実施例の構造上の概略説明」、「調停
工程の一実施例の詳細な説明」、「代表的なタイミング・シナリオ」および「代
表的な調停制限計算」である。
【0013】 (本発明の一実施例に使用するのに適したシステムの一実施例の構造上の概略説
明) 図1はシステム100の一実施例のブロック図を示し、そのハード・ディスク
・コントローラ(HDC)122が一般的に使用される。HDCコア102がホ
スト・バス・インターフェース110を介してホスト・システム・バス112を
使用してホスト・システム108に接続されている。このホスト・システム10
8は、一つまたはそれ以上のホスト・システム・マイクロプロセッサ、システム
RAM、モニタ、キーボードおよび他のデバイスで構成できる。
【0014】 ホスト・システム108は、ホスト・システム・バス112を介してハード・
ディスク114に記憶されるべきデータを交換またはこれからデータを検索する
。ホスト・システム108からHDCコア102への指令、例えばどのデータを
検索するか、あるいはデータを記憶したことをホスト・システム・バス112を
通して伝送する指令をする。
【0015】 さらに、コントローラ・マイクロプロセッサ104が、マイクロプロセッサ・
インターフェース106を介してHDCコア102に接続されている。コントロ
ーラ・マイクロプロセッサ104は、一実施例において、ホスト・システム・マ
イクロプロセッサから区別され、ホスト・システム108からの指令を受信し、
実行するとともに、HDCコア102を管理する。ハード・ディスク114がデ
ィスク・フォーマッタ116を介してHDCコア102に接続されている。以下
により詳しく説明するように、ディスク・フォーマッタ116はハード・ディス
ク114の操作を制御する。図示実施例において、ハード・ディスク114は磁
気ディスク・デバイスおよび関連する回路要素からなる。コントローラ・バッフ
ァ・メモリ118が、バッファ・インターフェース120を介してHDCコア1
02に接続されている。一実施例において、バッファ・メモリ118はランダム
・アクセス・メモリ(RAM)を使用して構成されている。RAMは動的または
静的とすることができる。
【0016】 図2はHDCコア102と、関連するポート204、208、210、216
の一実施例を示す。バス・インターフェース202が、ホスト・バス・ポート2
04のデータ・ライン、制御ラインおよび割り込みラインを介してホスト・シス
テム108に情報を伝送し、またこれから情報を受信する。マイクロプロセッサ
・インターフェース・ロジック206がコントローラ・マイクロプロセッサ10
4を、コントローラ・マイクロプロセッサ208のタイミング・ライン、アドレ
ス・ラインおよびデータ・ラインを介してHDCコア102に接続している。マ
イクロプロセッサ・バス220は、コントローラ・マイクロプロセッサ104を
してHDC102コア内の種々のユニットと通信するとともに、これらを制御で
きるようにしている。
【0017】 図2に示したように、ディスク・フォーマッタ116がディスク・ポート21
0のデータ・ラインと制御ラインを介してディスク114に接続されている。リ
ード・ソロモン・誤り訂正コード(ECC)エンジン212がバスを介してディ
スク・フォーマッタ116に接続されている。ECCエンジン212は、ディス
ク上の誤り訂正コード発生の書込みだけでなく、ディスク上の誤り訂正の読込み
を実行する。バッファ・コントローラ214がバッファ・ポート216のアドレ
ス・ライン、タイミング・ラインおよびデータ・ラインを介してバッファ・メモ
リ118に接続されている。一実施例において、バッファ・コントローラ214
はアービッタ(図示省略)を含み、ディスク・フォーマッタ116、ECCエン
ジン212、ホスト・バス・インターフェース202およびマイクロプロセッサ
・インターフェース206、付加的に以下に説明する他のユニットによってバッ
ファ・メモリ118へのアクセスを制御する。このアービッタについては、後ほ
ど詳細に説明する。バッファ・メモリ118にアクセスする種々のユニットは、
データ・バス218を介して行われる。データ・バス218がバッファ・ポート
216を介してバッファ・メモリ118に接続されている。
【0018】 図3はHDCバス・アーキテクチャの一実施例を示す。バッファ・メモリ11
8にアクセスするユニットが、それぞれの「先入れ先出し」( FIFO) バッフ
ァ308、312、314、316、318および320によって実行される。
これらのFIFOバッファはサイズに違いがある。一実施例において、FIFO
バッファは各々64と96バイトの間の記憶容量を有している。コントローラ・
マイクロプロセッサ104がマイクロプロセッサFIFO308を介してバッフ
ァ・メモリ118にアクセスする。バッファ・メモリ118は、コントローラ・
マイクロプロセッサ104のためにメイン・メモリとして作用するとともに、命
令とデータを記憶する。
【0019】 ディスク・フォーマット・データ・フェッチ・ユニット304が、バッファ・
メモリ118からディスク・フォーマット・データをフェッチするように作動す
る。ディスク・フォーマッタ116がこのデータ使用して、ホスト・システム・
データをハード・ディスク114上に配置し、組織化する。メモリ・リフレッシ
ュ・ユニット306は、バッファ・メモリがダイナミックRAMを使用したとき
に、必要インターバルでバッファ・メモリ118をリフレッシュするように動作
する。次に説明するように、一実施例において、ディスク・フォーマット・デー
タ・フェッチ・ユニット304とメモリ・リフレッシュ・ユニット306両者が
、バッファ・メモリ・アクセス調停の目的のために一つの調停スロットを共有す
る。従って、ただ一つのディスク・フォーマット・データ・フェッチ・ユニット
304とメモリ・リフレッシュ・ユニット306のみが、単一アクセス・サイク
ル内でバッファ・メモリ118にアクセスできる。しかし、他の実施例において
、メモリ・リフレッシュ・ユニット306とディスク・フォーマット・データ・
フェッチ・ユニット304は各々それ自体の調停スロットを有している。ディス
ク・フォーマット・データ・フェッチ・ユニット304とメモリ・リフレッシュ
・ユニット306は、そのそれぞれのFIFOバッファ314と316を介して
バッファ・メモリ118にアクセスする。
【0020】 図3に示したように、ECCエンジン212はFIFO318を介してバッフ
ァ・メモリ118に接続されている。ECCエンジンFIFO318は、データ
がバッファ・メモリ118内にある間、ハード・ディスク114から読み取られ
たデータを訂正するのに使用される。バッファ・コントローラ214が読取/訂
正/書込工程によって訂正を首尾よく達成する。
【0021】 ホスト・バス・インターフェース110がFIFO320を介してバッファ・
メモリ118に接続されている。ホスト・バス・インターフェース110が、ホ
スト・システム108とバッファ・メモリ118間のデータと指令をチャネルす
る。
【0022】 図4はディスク・フォーマッタ116、ディスク・フォーマット・データ・フ
ェッチ・ユニット304、メモリ・リフレッシュ・ユニット306、ECCエン
ジン212、マイクロプロセッサFIFO308、ホスト・バス・インターフェ
ース110およびアービッタ402間の接続回路網(connectivity)の一実施例を
示す。アービッタ402はバッファ・メモリにアクセスする種々のユニット間を
アービット(調停)する。アービッタ402は反復アクセス・サイクル中、ユニ
ットを要求するためにアクセスを許可する。アクセス・サイクルは、一つの時間
周期であり、この間、アクセスが、バッファ・メモリにアクセスする各ユニット
に対して、または、アクセス・スロットを共有する一連のユニットに対して提供
される。一実施例において、各ユニットは、アービッタ402が要求されたアク
セスを許可することによる「ACK」と名付けられた承認ラインだけでなく、バ
ッファ・メモリ118へのアクセスを要求するための「REQ」と名付けられた
リクエスト・ラインを有している。
【0023】 アービッタ402に接続された一連の調停制限レジスタ410−418は、そ
れぞれのユニット調停制限を保持している。一実施例において、与えられた調停
制限が、バッファ・メモリ118にアクセス可能な間、ユニットに対して利用可
能なアクセス・サイクル当りのHDCクロック・サイクルの数として特定される
。調停制限レジスタは、ディスク・フォーマッタ調停制限レジスタ410、共有
ディスク・フォーマット・データ・フェッチ・ユニットおよびメモリ・リフレッ
シュ・ユニット調停制限レジスタ412、ECCエンジン調停制限レジスタ41
4、マイクロプロセッサFIFO調停制限レジスタ416およびホスト・バス・
インターフェース(グローバル)調停制限レジスタ418を含んでいる。ディス
ク・フォーマット・データ・フェッチ・ユニット306およびメモリ・リフレッ
シュ・ユニット306は、同じ調停制限を共有し、また同じ調停制限レジスタ4
12を使用していることに注意しなければならない。次に説明する理由で、ホス
ト・バス・インターフェース調停制限レジスタ418は、グローバル調停制限レ
ジスタとも呼ばれる。調停制限レジスタ410−418は、アクセス・サイクル
中の各ユニットの最大特定アクセス持続期間中、HDCクロック・サイクル内で
規定された時間制限を記憶する。一実施例において、アクセス持続期間は連続す
る時間周期の間である。さらに以下に説明するように、アービッタ402に調停
制限カウンタ406とグローバル調停制限カウンタ408も接続され、調停制限
値をロードし、デクリメントすることによってユニットのアクセス持続時間のト
ラックを維持するように使用される。グローバル調停制限カウンタ408がホス
ト・バス・インターフェースの利用可能アクセス時間をトラックし、調停制限カ
ウンタ406が残りのユニットのために利用可能アクセス時間をトラックする。
【0024】 図5は、書込データがHDC102の種々のユニットを通る場合の代表的ディ
スク書込シーケンス500を示す。ホスト・システム108からのデータ502
が、ホスト・バス・インターフェース110に到達し、ホスト・バス・インター
フェースFIFO320を介してバッファ・メモリ118に通される。FIFO
320が、バッファ・メモリ118にアクセスするために待機している間、必要
とされるデータ502をバッファする。一実施例において、データがセクターよ
りも小さいユニット(単位)で、一般的に512バイトでディスク114から読
み取られるか、または記憶される。セクター未満のデータ量がアクセスするのに
必要な場合、それでも全セクターがアクセスされる。少なくともデータの完全な
セクターがバッファ・メモリ118内に記憶された後、データ502が巡回冗長
検査(CRC)タグと共動してディスク・フォーマッタFIFO312を介して
ディスク・フォーマッタ116に方向付けられる。CRCはデータの正確さを確
認するのに使用できるデータから発生されたコードである。FIFO312が、
バッファ・メモリ118から到来したデータ502をバッファする。データ50
2とCRC508がディスク・フォーマッタ116の途中にある間、データ50
2とCRC508はECCエンジン212をも通過し、誤り訂正コード(ECC
)510を発生する。ECC510が、データ502とCRC508に付加され
るべきディスク・フォーマッタ116に通過され、次に全てがディスク・フォー
マッタ116によってハード・ディスク114に書き込まれる。
【0025】 図6はデータがHDC102のユニットを通る場合の代表的ディスク読取シー
ケンス600を示す。ECC技術が、セクターのデータ604、CRC606お
よびECC602が、ハード・ディスク114に書き込まれ、またこれから読み
取られる工程中、破壊(corrupt) する可能性を保証するように使用される。次に
説明するように、ECCエンジン212が、ハード・ディスク114から検索さ
れた後、未訂正データ604および(または)CRC606を訂正するタスクを
実行する。未訂正データ604、CRC606およびECC602がハード・デ
ィスク114から読み取られるにつれて、ディスク・フォーマッタ116が未訂
正データ604、CRC606およびECC602をECCエンジン212に送
る。ディスク・フォーマッタ116がECC602を除去し、未訂正データ60
4とCRC606をディスク・フォーマッタFIFO312に伝送し、次にバッ
ファ・メモリ118に送る。ディスク・フォーマッタFIFO312が、バッフ
ァ・メモリ118へのアクセスを待機中、いずれの待ち時間(ラテンシー)も吸
収する。未訂正データ604とCRC606がバッファ・メモリ118に記憶さ
れるのに対して、ECCエンジン212がアルゴリズムを実行し、これが未訂正
データ604、CRC600およびECC602から誤り訂正情報612を生成
する。ECCエンジン212がこの誤り訂正情報612をECC FIFO31
8に通す。次に、バッファ・コントローラ214がECC FIFO318内の
誤り訂正情報612を使用して、バッファ・メモリ118内に残留する未訂正デ
ータ604とCRC606内のエラーを訂正するように試行される。バッファ・
コントローラ214が、バッファ・メモリ118からの未訂正データ604およ
び(または)CRC606を読み取り、ECC FIFO318内の情報614
を使用して未訂正データ604および(または)CRC606を適切に訂正する
ことによって、データ604とCRC606を訂正し、また訂正データ616お
よび(または)CRC618をバッファ・メモリ118に戻して書き込む。次に
、訂正データ616とCRC618がホスト・バス・インターフェースFIFO
320に送られる。こうしてCRC618がチェックされる。CRCチェックで
データ訂正操作が首尾よく実行されたかどうかが決定される。データ616が正
しければ、データ616がホスト・バス・インターフェース110とホスト・シ
ステム108に送られる。データ616が正しくなければ、エラー信号が発生さ
れ、ホスト・システムに向けられる。
【0026】 上述したように、HDC102内の数個のユニットが、ディスク・データの一
般的な読取り又は書込みのいずれか中にバッファ・メモリ118にアクセスする
。バッファ・メモリがマイクロプロセッサのメイン・メモリとして作用するので
、読取りと書込みシーケンス中に表されたアクセスに付加して、コントローラ・
マイクロプロセッサ104もバッファ・メモリ118にアクセスする。さらに、
ディスクの書込み、または読取りが実行されるときに、ディスク・フォーマッタ
116は、ディスク・フォーマット・データ・フェッチ・ユニット304によっ
て検索され、バッファ・メモリ118に記憶されたディスク・フォーマット情報
を利用する。バッファ・メモリのダイナミックRAM118もまた、周期的にリ
フレッシュされる必要があり、またこれで、バッファ・メモリ・リフレッシュ・
ユニット306がバッファ・メモリにアクセスもする。
【0027】 (調停工程の一実施例の詳細な説明) 調停方法および装置の一実施例が、全てのユニット要求アクセスによって周期
的にアクセスすることを保証し、ユニット内の利用可能なアクセス時間の有効な
割り当てを動的に提供する。アービッタ402が設定可能な調停制限の使用によ
って機能する。一実施例において、調停制限は、対応するユニットのための最大
アクセス時間を表わすクロック・サイクル数に対応する。この制限はROMまた
はEEPROMのような不揮発性メモリ内にプログラムできる。別の方法として
、調停制限はホスト・システムまたはコントローラ・マイクロプロセッサによっ
てオン・ザ・フライ(on the fly)を決定し、設定することができる。
【0028】 図7はアクセス・サイクル700の一実施例を示す。アクセスサイクルの間、
アービッタ402が所定の反復順でアクセス要求のために各ユニットをチェック
する。ユニットがアービッタ402に対してそのREQラインになければ、アー
ビッタ402が次のユニットのREQラインをチェックする。アービッタ402
が、バッファ・メモリ・アクセスを要求するユニットを見つけるまで、アクセス
・サイクルの回りで続行する。メモリ・リフレッシュ・ユニット306とディス
ク・フォーマット・データ・フェッチ・ユニット304が、同じアクセス・サイ
クル・スロットを競い合うことに注目すべきである。与えられたアクセス・サイ
クルにおいて、アービッタがメモリ・リフレッシュ・ユニット306またはディ
スク・フォーマット・データ・フェッチ、ユニット304の一つに対するアクセ
スのみを許可する。両方のユニット304/306が、同じサイクル内で要求さ
れたアクセスを有する場合は、バッファ・メモリがその内容の消失を回避するた
めにリフレッシュを必要とするので、アービッタ402がメモリ・リフレッシュ
・ユニット306に優先権を与える。すなわち、ディスク・フォーマット・デー
タ・フェッチ・ユニット304が、次のアクセス・サイクルがアクセスを得るま
で待機する。
【0029】 図8は調停工程の単一アクセスサイクルの一実施例の詳細なフローチャート8
00を示す。一実施例において、調停工程はアービッタ・ステート・マシンを使
用して制御される。調停工程がサイクルで行われるので、開始位置の選択は重要
ではない。しかし、図示の目的で、開始工程802を示す。調停工程804−8
14の最初の部分は、ディスク・フォーマッタ・アクセスに向けられている。工
程804において、ディスク・フォーマッタ116がディスク・フォーマッタR
EQラインのチェックによってバッファ・メモリ・アクセスが要求されているか
どうかをアービッタ402がチェックする。ディスク・フォーマッタ116がア
クセスを要求されておれば、アービッタ402は、工程806で、ディスク・フ
ォーマッタのACKラインに乗せることによって、アクセスを許可する。工程8
08に進行し、アービッタ402がディスク・フォーマッタ調停制限を対応する
調停制限レジスタ410から読取り、制限を調停制限カウンタ406にロードす
る。調停制限カウンタ406が、各HDCクロック・サイクル中、デクリメント
(一つカウント・ダウン)される。次に、工程810、812において、調停制
限カウンタ406がゼロに達したかどうか、さらにディスク・フォーマッタの要
求ラインREQがなおも作動しているかどうかをアービッタ402が繰り返しチ
ェックする。調停制限カウンタ406がゼロに達しているか、またはディスク・
フォーマッタの要求ラインREQが不作動であれば、工程814においてアービ
ッタ402は、ディスク・フォーマッタ承認ACKラインを主張しない。上述し
た工程804において、ディスク・フォーマッタ116がアクセスを要求してい
なければ、アービッタが直接工程804から工程816に進行する。
【0030】 調停工程の残りに進行する前に、工程816において、アービッタ402がグ
ローバル調停制限レジスタ418からグローバル調停制限カウンタ408に調停
制限をロードする。グローバル調停制限カウンタ408がアクセス・サイクルの
残りの各クロック・サイクル中、デクリメントされる。従って、ECCエンジン
212、マイクロプロセッサFIFO308、ディスク・フォーマット・データ
・フェッチ/メモリ・リフレッシュ・ユニット304/306およびバス・イン
ターフェース・ユニット110がバッファ・メモリ118にアクセスしている間
、グローバル調停制限がデクリメントされる。一度、グローバル調停制限カウン
タ408がゼロに達すると、新しいアクセス・サイクルが始まり、再びディスク
・フォーマッタ116へ、アクセスが要求される。
【0031】 グローバル調停制限は、二つの目的を発揮する。第1に、グローバル調停制限
は、ディスク・フォーマッタ116以外の全てのユニットに対して利用可能な時
間を制限する。第2に、グローバル調停制限は、実際にホスト・インターフェー
ス・ユニット110のための調停制限として機能する。ECCエンジン212、
マイクロプロセッサFIFO308およびディスク・フォーマット・データ・フ
ェッチ/メモリ・リフレッシュ・ユニット304/306の各々は、それ自体の
調停制限を有する。これらのユニットの各々がバッファ・メモリ118にアクセ
スしているときに、調停制限カウンタ406は、対応する調停制限からカウント
・ダウンする。さらに、これらのユニットの各々がバッファ・メモリ118にア
クセスしているとき、グローバル調停制限カウンタ408がグローバル調停制限
からカウント・ダウンして、ホスト・インターフェース・ユニット110に対し
て要求されている時間を決定する。一度、ECCエンジン212、マイクロプロ
セッサFIFO308およびディスク・フォーマット・データ・フェッチ/メモ
リ・リフレッシュ・ユニット304/306がそのアクセスを完了すると、ホス
ト・インターフェース・ユニット110が、グローバル調停制限カウンタ408
内に残っている時間の間に、与えられたアクセスを実行する。
【0032】 一度、グローバル調停制限カウンタ408がロードされると、アービッタ40
2が工程818に進行して、ECCエンジン212がECCエンジンREQライ
ンをチェックすることによってアクセスが要求されているかどうかを決定する。
ECCエンジン212がアクセスを要求されておれば、アービッタが工程820
に進行し、ECCエンジンのACKラインを主張することによってアクセスを許
可する。この時点で、アービッタ402が、対応する調停制限レジスタ412か
らECCエンジン調停制限を読取り、工程822に進行し、調停制限カウンタ4
06を設定する。ECCエンジンのアクセス時間周期中、調停制限カウンタ40
6が各クロック・サイクルでデクリメントされる。グローバル調停制限カウンタ
408もこのサイクル中にデクリメントされることに注意しなければならない。
次に、工程824、826において、調停制限カウンタ406がゼロに達したか
どうか、また、ECCエンジンの要求ラインREQがなおも作動(raise) してい
るかどうか、アービッタ402が反復チェックする。調停制限カウンタ406が
ゼロに達したか、またはECCエンジンの要求ラインREQが不作動になれば、
アービッタ402は、工程828において、ECCエンジンのACKラインを主
張しない。工程818において、ECCエンジン212がアクセスを要求しない
のであれば、アービッタ402が直接、工程830に進行する。
【0033】 一度、アービッタ402がアクセス・サイクルのECCエンジン部分を完了す
ると、ECCエンジン・アクセスに関して上述したのと同様の方式で、工程83
0−840において、アービッタ402がマイクロプロセッサFIFO308へ
のアクセスを要求するように進行する。ECCエンジン212に関して、アクセ
スがマイクロプロセッサFIFO308に対して許可されている間、調停制限カ
ウンタ406とグローバル調停制限カウンタ408両者が、各クロック・サイク
ルでデクリメントされる。一度、アービッタ402がアクセス・サイクルのマイ
クロプロセッサFIFO部分を完了すると、アービッタ402が工程842に進
行する。
【0034】 本実施例において、アービッタ402は、単一のアクセス・サイクルで、メモ
リ・リフレッシュ・ユニット306とディスク・フォーマット・データ・フェッ
チ・ユニット304の1つのみへのアクセスを許可する。従って、フローチャー
トは工程842でこの特徴に適応するように分岐している。バッファ・メモリ・
リフレッシュ・ユニットの要求がディスク・フォーマット・データ・フェッチ・
ユニットの要求に対して優先権を獲得する。従って、アービッタ402が、まず
リフレッシュ・ユニット306がアクセスを要求しているかどうかを決定する。
リフレッシュ・ユニット306がアクセスを要求しておれば、アービッタ402
が、前回のユニットにつき上述したものと同様にしてシーケンス844−852
に順行する。もちろん、この場合において、アービッタ制限カウンタ406はリ
フレッシュ/データ・フェッチ調停制限でロードされる。リフレッシュ・ユニッ
ト306がアクセスを要求していなければ、アービッタ402は工程854に進
行し、ディスク・フォーマット・データ・フェッチ・ユニット304がアクセス
を要求しているかどうかを決定する。もし要求しておれば、アービッタ402が
、リフレッシュ・ユニット306のシーケンスと同様にシーケンス856−86
4に順行する。ディスク・フォーマット・データ・フェッチ・ユニット304も
リフレッシュ・ユニット306もアクセスを要求していなければ、アービッタ4
02が直接工程854から工程866に進行する。この時点において、アービッ
タ402がホスト・インターフェース110にアクセスを要求する。
【0035】 本実施例において、ホスト・インターフェース110のアクセス持続期間は、
グローバル調停制限によってのみ制限される。上述したように、アクセスがディ
スク・フォーマッタ116に要求された後で、かつ、アクセスがECCエンジン
212によって要求される前に、グローバル調停制限カウンタ406がリセット
され、さらにユニットがホスト・インターフェース110に先立って、バッファ
・メモリ118にアクセスする間に、続いてデクリメントされる。ホスト・イン
ターフェース110は、前回ユニットによって使用されなかったグローバル調停
制限の残りのためにアクセスが許可される。ディスク・フォーマッタ116がバ
ッファ・メモリ28にアクセスしている間の時間の長さは、グローバル調停制限
カウンタ408またはホスト・インターフェース110に割り当てられた時間の
長さに影響を与えないことに注意しなければならない。これはグローバル調停制
限カウンタ408が、ディスク・フォーマッタ116がアクセス・サイクル中に
その順番が来た後でのみ設定されるからである。従って、ホスト・インターフェ
ースは、連続したある長さの時間(block of time) でグローバル調停制限と同じ
くらいの所定最小時間と最大時間の範囲のアクセス時間が柔軟に要求される。
【0036】 ホスト・インターフェース110へのアクセスを割り当てるために、工程86
6において、ホスト・インターフェース110がアクセスを要求しているかどう
かアービッタがまずチェックする。もしそうであれば、工程868において、ア
ービッタがホスト・インターフェースACKラインを主張し、これによってバッ
ファ・メモリ118へのアクセスを許可する。グローバル調停制限カウンタ40
8がデクリメントを続行している一方で、ホスト・インターフェース・ユニット
110がアクセスを許可する。本実施例において、グローバル調停制限が前のユ
ニットの調停制限に順応するのに十分な大きさであり、さらにホスト・インター
フェース・ユニットのために少なくともある一定の残りの時間を有している。次
に、工程870、872において、アービッタ402は、グローバル調停制限カ
ウンタ408がゼロに達したかどうか、またホスト・インターフェース・ユニッ
ト110がいまだアクセスを要求しているかどうかを、確認するために、繰り返
しチェックする。グローバル調停制限カウンタ408がゼロに達すれば、あるい
はホスト・インターフェース・ユニット110が、工程874においてそのRE
Qラインに降下すれば、アービッタ402は、ホスト・インターフェースのAC
Kラインを主張しない。工程866において、ホスト・インターフェース110
がアクセスを要求しなければ、アービッタ402が工程866から工程876を
進行させる。この時点において、アービッタ402が一つのアクセス・サイクル
を完了し、フローチャート800の開始工程(状態)802に復帰する。
【0037】 本発明の他の実施例において、ホスト・インターフェース・ユニットの調停制
限が減算法よりはむしろ加算法で決定することができる。この場合において、グ
ローバル調停制限カウンタ408が、ホスト・インターフェース110のために
最小調停制限で初期化される。ECCエンジン212、マイクロプロセッサFI
FO308、メモリ・リフレッシュ306またはディスク・フォーマット・デー
タ・フェッチ・ユニット304のいずれかによるアクセスのリリースがなされる
と、調停制限カウンタ406に残留する値がグローバル調停制限カウンタ408
に加算される。次に、グローバル調停制限カウンタ408が、ホスト・インター
フェース110がバッファ・メモリ118にアクセスしている間だけデクリメン
トされる。この工程がこれまでに詳述したような技法と同じ結果を生じることに
なる。他の実施例において、早期のアクセス・ユニットの未使用アクセス時間は
、いずれかの続いているユニットへの割り当てが可能である。さらに他の実施例
において、早期のアクセス・ユニットの未使用アクセス時間が、最後のアクセス
・ユニットよりもむしろ特定する続きのユニットに割り当てが可能である。
【0038】 (代表的なタイミング・シナリオ) 図12はアービッタ操作を示すいくつかの代表的調停制限と関連するタイミン
グ図を示す。図示実施例で上述したように、調停制限は、ユニットがバッファ・
メモリ118にアクセスできる間、対応するユニットに対して利用可能な各アク
セス・サイクルのHDCクロック・サイクルの数を表わしている。図示時間ライ
ン902−918に関して、時間は図面の左側に向かって始まる。第1の時間ラ
イン902は、トップ・レベルにおいて、調停工程が二つの部分に分割される状
態を示している。第1部分はディスク・フォーマッタ116に割り当てられた時
間と、ディスク調停制限からなる。第2部分は他の全てのユニットと、グローバ
ル調停制限に割り当てられた時間からなる。第2の時間ライン904は、動的ホ
スト・インターフェース調停制限によって表わされたホスト・インターフェース
110に利用可能な時間が、グローバル調停制限によって表わされた時間であり
、ECC212、マイクロプロセッサ308、リフレッシュ/データ・フェッチ
304/306ユニットに対して許可された時間によって減じられる、というこ
とを表わしている。時間ライン906は、一実施例において、ECC調停制限と
マイクロプロセッサ調停制限とリフレッシュ/フォーマット・データ・フェッチ
調停制限の合成されたものは、グローバル調停制限未満であり、これによって最
小時間の長さが保証され、最小ホスト・インターフェース調停制限がホスト・イ
ンターフェース・ユニット110に割り当てられる、ということを示している。
従って、たとえECC212、マイクロプロセッサ308およびリフレッシュ/
データ・フェッチ304/306ユニットが、それら全ての利用可能なアクセス
時間を使用したとしても、ホスト・インターフェース110がバッファ・メモリ
118にアクセスするための時間がなおも残っている。
【0039】 図12は代表的なバッファ・メモリ調停シーケンス908−918のタイミン
グ図形を示す。各図形において、一つの完全なアクセス・サイクルは、どのよう
にアクセス・サイクル時間が変化するかという図で、示される。第1の代表的な
調停シーケンス908は、全てのユニットがその最大アクセス時間を要求された
ときに各ユニットに、割り当てられる相対的アクセス時間を示す。この場合にお
いて、総合アクセス・サイクル時間は、その最大状態にある。次のシーケンス9
10において、ECCエンジン212がそのREQラインを主張せず、また90
6で示された割り当てられた調停時間の途中約半分のところでアクセスが停止し
ている。本例において、マイクロプロセッサFIFO308は、まったくアクセ
スを要求しないが、ホスト・インターフェース110が要求し、残りの全ての利
用可能時間が許可される。次のシーケンス912において、ECCエンジン21
2、リフレッシュ/データ・フェッチ・ユニット304/306およびマイクロ
プロセッサ308はバッファ・アクセスを要求しない。従って、完全なグローバ
ル調停制限がホスト・インターフェース110に対する利用を可能にする。この
シーケンスにおいて、ディスク・フォーマッタ116とホスト・インターフェー
ス110が、各々に対する利用可能な時間を全て使用する。
【0040】 次のシーケンス914において、ディスク・フォーマッタ116がそのREQ
ラインをリリースし、その利用可能な時間の約半分を使用するだけである。この
シーケンスにおいて、ECCエンジン212、リフレッシュ/データ・フェッチ
・ユニット304/306およびホスト・インターフェース110が、その利用
可能なアクセス時間を全て使用する。ディスク・フォーマッタ116がそのアク
セスを早期に放棄するので、完全なアクセス・サイクル時間は前回のシーケンス
未満である。ECC212、マイクロプロセッサ308およびリフレッシュ/デ
ータ・フェッチ304/306ユニットは、アクセスを要求しないことを除いて
は、シーケンス916はシーケンス914と同様である。しかし、ホスト・イン
ターフェース110がこの場合に最大アクセスを要求し、また、他のユニットに
よって放棄された時間を使用する。最後のシーケンス918が表わしているのは
、ディスク・フォーマッタ116がその全アクセス時間を要求し、ECC212
、マイクロプロセッサ308またはリフレッシュ/データ・フェッチ304/3
06ユニットはアクセスを要求せず、また、ホスト・インターフェース110の
みがその利用可能なアクセス時間の端数(fraction)を要求するということである
。この場合において、グローバル調停制限が決して到達しないので、総アクセス
・サイクル時間が実質的に最大可能アクセス・サイクル時間未満となる。
【0041】 (代表的調停制限計算) 調停制限は、次に含むようないくつかの要素に基づいている。すなわち、ディ
スク・フォーマッタFIFOサイズ、バッファ・メモリ・データ・バスの幅、ハ
ード・ディスク・データ読取/書込レート、HDC102のクロック速度、要求
データがバッファ・メモリ118から読み取られる前の時間遅延と、アービッタ
402が他の要素中でその操作が実行されるのに要する時間である。これらの要
素は一般的に一定であり、ハード・ディスク・ユニットの設計と製造の時間で決
定することができる。調停制限が不揮発性メモリに記憶されるか、またはこれら
の要素はシステムの動作中、動的に決定することができる。
【0042】 本発明の一実施例において、グローバル調停制限がハード・ディスク114の
利用を最適になるように設定される。これはディスク・フォーマッタFIFO3
12が決して空または、いっぱいになったままにらないことを保証することによ
って達成される。グローバル調停制限は、前のサイクル上でディスク・フォーマ
ッタ116がバッファ・メモリ118にアクセスすることを放棄した時間と、次
のサイクル上にあるバッファ・メモリ118からFIFO312にデータの再度
到来した時間との間のクロック・サイクル数を規定する。FIFO312内のデ
ータがディスク書込にある限り、またFIFO312がディスク読取上にない限
り、ハード・ディスク114が最適に利用できる。
【0043】 図5を参照して、ディスク書込み操作中、データ502がバッファ・メモリ1
18からディスク・フォーマッタFIFO312に転送される。ディスク・フォ
ーマッタ116がバッファ・メモリ118にアクセスしていないとき、ディスク
・フォーマッタFIFO312が続いて空となり、データがディスク・データ・
レートでハード・ディスク114に書込まれる。ディスク・データ・レートは、
データがハード・ディスク114に書込みされるか、またはこれから読取られる
レートである。一実施例において、フルのディスク・フォーマッタFIFO31
2を完全に空にする時間は、従って、次のように規定される: 空に至る時間=( FIFOサイズ)/(ディスク・データ・レート) この時間はクロック周波数を乗算して、クロック・サイクル内の時間を発生させ
る。
【0044】 空に至るクロック・サイクル=(クロック周波数)×( FIFOサイズ)
/(ディスク・データ・レート) グローバル調停制限をほぼクロック・サイクルの数に設定することにより、ハー
ド・ディスク114のために、いっぱいのディスク・フォーマッタFIFO31
2を空にし、ディスク・フォーマッタ116は、これがちょうど空になったとき
に、FIFO312を再充填することができる。従って、ディスク利用は最適に
なる。
【0045】 グローバル調停制限の設定において、ある付加的な考慮がなされる。第1に、
アービッタ402が、ユニットへのアクセスを許可するために、調停遅延と呼ば
れるクロック・サイクルの有限数をとる。第2に、バッファ・メモリ118が転
送データを開始するようにセットアップするために、セットアップ時間と呼ばれ
るクロック・サイクルの有限数をとる。第3に、バッファ・メモリ118からデ
ィスク・フォーマッタFIFO312にデータを転送するために、読取遅延と呼
ばれるクロック・サイクルの有限数をとる。従って、「空に至るクロック・サイ
クル」数が、調停遅延、セットアップ時間および読取遅延によって減じられ、こ
れによってバッファ・メモリ118からのデータは、FIFO312がちょうど
空になったときにディスク・フォーマッタFIFO312に到来する。一実施例
におけるこのような調整で、グローバル調停制限が次のようにして計算される: グローバル調停制限=(クロック周波数)×( FIFOサイズ)/(ディス
ク・データ・レート)−(調停遅延)−(セットアップ遅延)−(読取遅延) このグローバル調停制限は、ディスク書込みのタイミングに基づいているが、デ
ィスク読取りのタイミングはアナログであり、同様の結果を生じる。
【0046】 グローバル調停制限がなされる同じ調整が、減算する代わりに、ディスク・フ
ォーマッタ調停制限に加算される。本質的に、グローバル調停制限から得られる
サイクルはディスク・フォーマッタ調停制限に与えられ、フォーマッタ利用度を
最大にする。しかし、ディスク・フォーマッタ調停制限が調整される前に、ベー
ス調停制限が組み立てられる。
【0047】 ディスク・フォーマッタ調停制限の計算において、ディスク・フォーマッタF
IFO312が空にされることと、充填されることが同時であるという事実を考
慮する必要がある。好ましい実施例において、ディスク・フォーマッタ116が
アクセスされ、またデータがバッファ・メモリ118からディスク・フォーマッ
タFIFO312に転送されるときに、ディスク・フォーマッタ116がFIF
O312と、ハード・ディスク114を同時に空にする。ディスク・フォーマッ
タFIFO312が同時に充填され、空にされるとき、充填されるネット・レー
トは、データがFIFO312に配置されるレートとデータがFIFO312か
ら移動されるレートとの差である。バッファ・データ・レートと呼ばれるデータ
がFIFO312に配置されるレートは、HDCバスの幅にクロック周波数を乗
算したものに等しい。これによって、充填レートは次式で表すことができる: 充填レート(fill rate) =(バス幅)×(クロック周波数)−(ディスク・
データ・レート) ディスク・フォーマッタFIFOサイズが充填レートで割り算され、ディスク・
フォーマッタFIFO312を充填する時間が決定される。この結果はクロック
周波数を乗算してクロック・サイクル数を発生させ、ディスク・フォーマッタF
IFO312を充填する: 充填に至るクロック・サイクル=( FIFOサイズ)×(クロック周波数)
/(バス幅)×(クロック周波数)−(ディスク・データ・レート) 上述したように、ディスク・フォーマッタFIFO312を充填するサイクル
数の計算において、調停、セットアップおよび遅延時間が考慮される。しかし、
FIFO312が充填されると、バッファ・メモリ118内のページ境界線が交
差する機会がある。ページ境界線が交差したときに、別のセットアップ遅延が発
生し、またこれで第2セットアップ遅延が計算中に含まれることになる。従って
、得られるディスク・フォーマッタ調停制限が、調停遅延の付加的なオーバーヘ
ッド時間だけ、すなわち、セットアップ遅延の2倍増加し、また読取遅延は: ディスク・フォーマッタ調停制限=( FIFOサイズ)×(クロック周波数
)/(バス幅)×(クロック周波数)−(ディスク・データ・レート)+(調停
遅延)+2×(セットアップ遅延)+(読取遅延) 上述したようなディスク・フォーマッタとグローバル調整制限で、ディスク・
フォーマッタ116とハード・ディスク114は最適の利用性を達成する。HD
C102内の他のユニットの調停制限は、グローバル調停制限によって制限を受
ける。メモリ・リフレッシュ/ディスク・フォーマット・データ・フェッチ・ユ
ニット304/306およびECCエンジン212は、一般的に予想できるバッ
ファ利用特性を有している。従って、調停制限はこれらの特性に基づいて容易に
選択できる。マイクロプロセッサFIFOの調停制限は、妥当な利用期待度を有
している。最終的に、ホスト・バス・インターフェース利用度はかなり予想がし
にくく、バス・インターフェース・ユニット110は残りのアクセス時間に割り
当てられる。
【0048】 本発明の他の実施例において、二つまたはそれ以上のユニットがグローバル調
停制限の範囲外でアクセス時間が割り当てられる。さらに他の実施例において、
どのユニットもグローバル調停制限の範囲外でアクセス時間に割り当てられるも
のはない。むしろ、全てのユニットがグローバル調停制限内でアクセスを許可さ
れ、またこれによってグローバル調停制限のみが最大アクセス・サイクル時間を
規定する。さらに他の実施例において、グローバル調停制限下で制限されたユニ
ット数は変更することができる。任意に、付加的なグローバル調停制限は同時に
またはシーケンス的に作動するように付加できる。他の実施例では、付加的なユ
ニットが、ディスク・フォーマッタ116と同様の方式で、グローバル調停制限
外でバッファ・メモリ118にアクセスすることを意図している。
【0049】 ある代表的な好ましい実施例につき説明し、添付図面で示したが、このような
実施例は単に示しただけで、広範な本発明を限定するものではないことを理解し
なければならない。さらに、本発明は図示し説明した特定構造および構成に制限
するのもではないことを理解すべきである。なぜなら、種々の修正例ないし変形
例が、権利請求された本発明の精神と範囲から逸脱することなしに当業者に思い
つく可能性があるからである。本発明の範囲はこの詳細な説明によって制限され
ず、ここに添付の請求の範囲によってなされることを意図している。
【図面の簡単な説明】
【図1】 本発明の一実施例を実行するのに適用されたコンピュータ・システムの一実施例
のブロック図
【図2】 ディスク・コントローラ回路の一実施例を示す図
【図3】 ディスク・コントローラのバス・アーキテクチャの一実施例を示す図
【図4】 ディスク・コントローラ調停アーキテクチャの一実施例を示す図
【図5】 一般的なディスク書込シーケンスとデータ・フォーマットの一実施例を示す図
【図6】 一般的なディスク読取シーケンスとデータ・フォーマットの一実施例を示す図
【図7】 調停シーケンスの一実施例を示す図
【図8】 調停工程の一実施例のフロー・チャートを示す図
【図9】 調停工程の一実施例のフロー・チャートを示す図
【図10】 調停工程の一実施例のフロー・チャートを示す図
【図11】 調停工程の一実施例のフロー・チャートを示す図
【図12】 調停制限の時間ラインとある代表的アクセス・タイミング図形を示す図
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AG,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,DZ,EE ,ES,FI,GB,GD,GE,GH,GM,HR, HU,ID,IL,IN,IS,JP,KE,KG,K P,KR,KZ,LC,LK,LR,LS,LT,LU ,LV,MA,MD,MG,MK,MN,MW,MX, NO,NZ,PL,PT,RO,RU,SD,SE,S G,SI,SK,SL,TJ,TM,TR,TT,TZ ,UA,UG,US,UZ,VN,YU,ZA,ZW Fターム(参考) 5B061 BA01 BB04 RR03 5B065 BA01 CA11 CC03 CE14 5B077 AA21 DD00 DD07 MM02

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 ハード・ディスク・コントローラのバッファ・メモリにアク
    セスを提供する方法であって、 誤り訂正ユニットに対して第1の時間の長さを割り当てる工程と、 ホスト・インターフェース・ユニットに対して第2の時間の長さを割り当てる
    工程と、 前記第1の時間の長さよりも長くない第1持続時間の間、前記誤り訂正ユニッ
    トを使用して前記バッファ・メモリにアクセスする工程と、 前記第1の時間の長さと第1持続時間との差に関連した長さによって前記第2
    の時間の長さを調整する工程と、 前記第2の時間の長さよりも長くない第2の持続時間の間、前記ホスト・イン
    ターフェース・ユニットを使用して前記バッファ・メモリにアクセスする工程と
    、を含むハード・ディスク・コントローラのバッファ・メモリにアクセスを提供
    する方法。
  2. 【請求項2】 第3の時間の長さをディスク・フォーマッタ・ユニットに割
    り当てる工程と、 バッファ・メモリに対して前記ディスク・フォーマッタ・ユニットへのアクセ
    スを許可する工程と、 前記第3の時間の長さよりも長くない第3の持続時間の間、前記ディスク・フ
    ォーマッタ・ユニットを使用して前記バッファ・メモリにアクセスする工程であ
    って、前記第3の時間の長さでいかなる使用されていない部分も前記ホスト・イ
    ンターフェース・ユニットに割り当てられない工程と、をさらに含む請求項1に
    記載の方法。
  3. 【請求項3】 前記第3の持続時間の長さの終了後、ディスク・フォーマッ
    タ・ユニットが、所定の第4の時間の長さ内でバッファ・メモリへのアクセスを
    再度許可される請求項2に記載の方法。
  4. 【請求項4】 ユニットが一度を超える前記バッファ・メモリへのアクセス
    をしない間、アクセス・サイクルを反復中に前記バッファ・メモリへのアクセス
    が提供される請求項1に記載の方法。
  5. 【請求項5】 大容量記憶デバイス・コントローラの共有コントローラ・リ
    ソースへのアクセスを提供する方法であって、 前記共有コントローラ・リソースへのアクセスが調停される間、第1アクセス
    ・サイクルを提供する工程と、 アクセス時間の第1連続ブロックとして前記第1アクセス・サイクルの第1部
    分を第1アクセス・ユニットに割り当てる工程と、 前記第1アクセス・ユニットを使用してアクセス時間の前記第1連続ブロック
    の長さを利用する工程と、 前記第1アクセス・サイクルの第2部分と、アクセス時間の第2連続ブロック
    としてアクセス時間の前記第1連続ブロックの未使用の長さとを第2アクセス・
    ユニットに割り当てる工程と、 前記第2アクセス・ユニットを使用してアクセス時間の前記第2連続ブロック
    の長さを利用する工程と、を含む大容量記憶デバイスの共有コントローラ・リソ
    ースへのアクセスを提供する方法。
  6. 【請求項6】 アクセス時間の第3連続ブロックとして前記第1アクセス・
    サイクルの第3部分を第3アクセス・ユニットに割り当てる工程と、 前記第1アクセス・サイクル中、前記第3アクセス・ユニットへのリソース・
    アクセスを許可する工程と、 前記第1アクセス・サイクル中、前記第3アクセス・ユニットにアクセス時間
    の前記第3連続ブロックの長さを利用する工程と、 前記第3アクセス・ユニットによって前記リソースのアクセスを解放する工程
    と、 第2アクセス・サイクル中、前記第3アクセス・ユニットへのリソース・アク
    セスを許可する工程であって、前記第2アクセス・サイクルの許可が、前記解放
    工程後、所定時間の長さ内で実行される工程と、をさらに含む請求項5に記載の
    方法。
  7. 【請求項7】 前記アクセス・サイクルに関連する持続時間を特定する工程
    と、 アクセス時間の前記第2連続ブロックの未使用長さに関係する長さだけ前記ア
    クセス・サイクルの少なくとも一つの反復の持続時間を短縮する工程と、をさら
    に含む請求項6に記載の方法。
  8. 【請求項8】 前記共有コントローラ・リソースがバッファ・メモリである
    請求項6に記載の方法。
  9. 【請求項9】 前記第1アクセス・ユニットがプロセッサであり、また、前
    記第2アクセス・ユニットがホスト・インターフェース回路である請求項6に記
    載の方法。
  10. 【請求項10】 リソースを共有された大容量記憶デバイス・コントローラ
    の持続時間を変更する方法であって、共有コントローラ・リソースへのマルチプ
    ル・ユニットのアクセスが調停される方法において、 サイクル持続時間を有するアクセス・サイクルを提供する工程と、 第1の時間の長さを第1アクセス・ユニットに割り当てる工程と、 前記第1の時間の長さを超えない第1持続時間の間、前記第1ユニットを使用
    して前記共有コントローラ・リソースにアクセスする工程と、 第2の時間の長さと前記第1の時間の長さの未使用長さを第2アクセス・ユニ
    ットに割り当てる工程と、を含む大容量記憶デバイスの共有コントローラ・リソ
    ースの持続時間を変更する方法。
  11. 【請求項11】 第3の時間の長さを第3アクセス・ユニットに割り当てる
    工程と、 前記第3の時間の長さを超えない第3持続時間の間、前記第3ユニットを使用
    して前記共有コントローラ・リソースにアクセスする工程と、 前記第3の時間の長さの未使用の長さに関係する長さだけ前記アクセス・サイ
    クルの前記持続時間を短縮する工程と、をさらに含む請求項10に記載の方法。
  12. 【請求項12】 前記共有コントローラ・リソースがコントローラ・メモリ
    である請求項10に記載の方法。
  13. 【請求項13】 前記第1アクセス・ユニットがメモリ・リフレッシュ回路
    であり、前記第2アクセス・ユニットがホスト・インターフェース回路であり、
    また前記第3アクセス・ユニットがディスク・フォーマッタ回路である請求項1
    1に記載の方法。
  14. 【請求項14】 ディスク・コントローラの共有メモリへのアクセスを提供
    する方法であって、 利用可能メモリ・アクセス時間として時間の長さを少なくとも二つのユニット
    の各々に割り当てる工程と、 前記少なくとも二つのユニットを使用して前記共有メモリにアクセスする工程
    であって、前記少なくとも二つのユニットの第1に割り当てられた未使用時間が
    前記少なくとも二つのユニットの第2に再割り当てされる工程と、を含むディス
    ク・コントローラの共有メモリへのアクセスを提供する方法。
  15. 【請求項15】 前記少なくとも二つのユニットが、少なくともデータ・フ
    ェッチ回路とホスト・インターフェース回路を含む請求項14に記載の方法。
  16. 【請求項16】 大容量記憶デバイス・コントローラの共有コントローラ・
    リソースへのアクセスを提供する方法であって、 第1の時間の長さを第1アクセス・ユニットに割り当てる工程と、 第2アクセス・ユニットに対して第2の時間の長さを割り当てる工程と、 前記第1の時間の長さよりも長くない第1持続時間の間、前記第1ユニットを
    使用して前記共有コントローラ・リソースにアクセスする工程と、 前記第1の時間の長さと第1持続時間との差に関連した長さによって前記第2
    の時間の長さを調整する工程と、 前記確認された第2の時間の長さよりも長くない第2の持続時間の間、前記第
    2ユニットを使用して前記共有コントローラ・リソースにアクセスする工程と、
    を含む大容量記憶デバイス・コントローラの共有コントローラ・リソースへのア
    クセスを提供する方法。
  17. 【請求項17】 マルチプル回路によって共有されたメモリを含む大容量記
    憶デバイス・コントローラ回路であって、 大容量記憶デバイスから読取りされたデータを訂正するのに使用される誤り訂
    正回路であって、前記共有メモリにアクセスするように割り当てされた第1の時
    間の長さに関連する誤り訂正回路と、 ホスト・システムでデータを変換するのに使用されるホスト・システム・イン
    ターフェース回路であって、前記共有メモリに割り当てられた第2の時間の長さ
    に関連するホスト・システム・インターフェース回路と、 前記大容量記憶デバイスに対してインターフェースするために使用される記憶
    デバイス・フォーマッタ回路であって、前記共有メモリにアクセスするように割
    り当てられた第3の時間の長さに関連する記憶デバイス・フォーマッタ回路と、 少なくとも前記ホスト・システム・インターフェース回路と前記誤り訂正回路
    と前記記憶デバイス・フォーマッタ回路によって前記共有メモリへのアクセスを
    調停するように使用される調停回路であって、第1持続期間中、前記誤り訂正回
    路に共有メモリへのアクセスを許可するように形成されており、前記第1持続期
    間が前記第1の時間の長さを超えず、また、前記第2の時間の長さが前記第1の
    時間の長さと前記第1の持続期間との間の差に関係する長さだけ調節される調停
    回路と、を含む大容量記憶デバイス・コントローラ回路。
  18. 【請求項18】 前記調停回路が、一回を超えて共有メモリにアクセスする
    回路がまったくない間中、反復アクセス・サイクル中に前記共有メモリにアクセ
    スを提供するようにさらに形成されている請求項17に記載の大容量記憶デバイ
    ス・コントローラ回路。
  19. 【請求項19】 前記記憶デバイス・フォーマッタ回路が、この記憶デバイ
    ス・フォーマッタ回路による前記共有メモリの前回アクセス後、所定時間周期内
    で前記バッファ・メモリへのアクセスを提供する請求項17に記載の大容量記憶
    デバイス・コントローラ回路。
  20. 【請求項20】 前記調停回路が状態マシーンである請求項17に記載の大
    容量記憶デバイス・コントローラ回路。
  21. 【請求項21】 コンピュータ・システムであって、 ホスト・システムと、 前記ホスト・システムに接続されたホスト・システム・インターフェース回路
    であって、前記ホスト・システムとデータを交換するように使用されるホスト・
    システム・インターフェース回路と、 大容量記憶デバイスから読み取られたエラー・データを訂正するように使用さ
    れる誤り訂正回路と、 前記大容量記憶デバイスへのインターフェースに使用される記憶デバイス・フ
    ォーマッタ回路と、 少なくとも前記ホスト・システム・インターフェース回路と前記誤り訂正回路
    と前記記憶デバイス・フォーマッタ回路とによってバッファ・メモリへのアクセ
    スを調停するように使用されるアービッタ回路であって、前記誤り訂正回路へ第
    1の時間の長さを割り当て、前記ホスト・インターフェース回路へ第2の時間の
    長さを割り当て、また前記記憶デバイス・フォーマッタ回路へ第3の時間の長さ
    を割り当てるように形成され、さらに、第1持続期間の間、前記誤り訂正回路へ
    のアクセスを提供するように形成されており、前記第1持続期間が前記第1の時
    間の長さを超えない長さであり、前記前記第1の時間の長さと前記第1の持続期
    間との間の差に関連する長さだけ前記第2の時間の長さを調整するアービッタ回
    路と、を含むコンピュータ・システム。
  22. 【請求項22】 前記アービッタ回路が、一回を超えて共有コントローラ・
    リソースにアクセスする回路がまったくない間中、反復アクセス・サイクル中に
    前記バッファ・メモリにアクセスを提供するようにさらに形成されている請求項
    21に記載のコンピュータ・システム。
  23. 【請求項23】 大容量記憶デバイス・コントローラであって、 データをバッファする手段と、 ホスト・システムとデータを交換する手段であって、データをバッファする前
    記手段に接続されたホスト・システムとデータを交換する手段と、 データをバッファする前記手段に接続されたデータを処理する手段と、 前記大容量記憶デバイスとデータを交換する手段であって、データをバッファ
    する前記手段に接続された前記大容量記憶デバイスとデータを交換する手段と、 少なくとも、ホスト・システムとデータを交換する前記手段と、データを処理
    する前記手段と、大容量記憶デバイスでデータを交換する前記手段によってデー
    タをバッファする前記手段へのアクセスを調停する手段であって、アクセスを調
    停する前記手段が、データを処理する前記手段に対して第1の時間の長さを割り
    当てし、ホスト・システムとデータを交換する前記手段に対して第2の時間の長
    さを割り当てし、また大容量記憶デバイスとデータを交換する前記手段に対して
    第3の時間の長さを割り当てするように形成され、前記調停手段は、さらに第1
    持続期間中、前記データを処理する手段にアクセスを提供し、この第1持続期間
    が前記第1の時間の長さを超えない長さであり、また前記第2の時間の長さを前
    記第1の時間の長さと前記第1持続期間との差に関連する長さにだけ調整するよ
    うに形成された調停手段と、を含む大容量記憶デバイス・コントローラ。
  24. 【請求項24】 アクセスを調停する前記手段が、一回を超えてデータをバ
    ッファする前記手段にアクセスするアクセス手段がまったくない間中、反復アク
    セス・サイクル中にデータをバッファする前記手段にアクセスを提供するように
    さらに形成されている請求項23に記載の大容量記憶デバイス・コントローラ。
  25. 【請求項25】 大容量記憶デバイス・コントローラの共有コントローラ・
    リソースへのアクセスを提供する方法であって、 第1の利用可能アクセス時間として第1の時間の長さを第1アクセス・ユニッ
    トに割り当てる工程と、 第2の利用可能アクセス時間として第2の時間の長さを第2アクセス・ユニッ
    トに対して割り当て、前記第2の利用可能アクセス時間は少なくとも前記第1の
    利用可能アクセス時間を含む工程と、 前記第1の利用可能アクセス時間の長さよりも長くない第1持続期間の間、前
    記第1ユニットを使用して前記共有コントローラ・リソースにアクセスする工程
    と、 前記第1持続期間により、前記第2の利用可能アクセス時間を短縮する工程と
    、 前記短縮された第2の利用可能アクセス時間の長さよりも長くない第2の持続
    期間の間、前記第2ユニットを使用して前記共有コントローラ・リソースにアク
    セスする工程と、を含む大容量記憶デバイス・コントローラの共有コントローラ
    ・リソースへのアクセスを提供する方法。
  26. 【請求項26】 第3の利用可能アクセス時間として、前記第2の時間の長
    さ内に含まれない第3の時間の長さを第3アクセス・ユニットに割り当てる工程
    と、 前記第3の利用可能アクセス時間を超えない第3持続期間中、前記第3ユニッ
    トを使用して前記共有コントローラ・リソースにアクセスする工程と、をさらに
    含む請求項25に記載の方法。
  27. 【請求項27】 共有コントローラ・リソースへのアクセスが、一回を超え
    て共有コントローラ・リソースにアクセスするユニットがまったくない間中の反
    復アクセス・サイクル中に提供される請求項25に記載の方法。
  28. 【請求項28】 前記アクセス・サイクルが、前記第2の時間の長さと前記
    第3の時間の長さとの和にほぼ等しい最大持続期間を有している請求項26に記
    載の方法。
  29. 【請求項29】 前記第3ユニットがデータ・バッファを有しており、これ
    を通してデータが前記共有コントローラ・リソースと前記第3アクセス・ユニッ
    トとの間を移動する請求項26に記載の方法。
  30. 【請求項30】 前記第3の時間の長さは、少なくとも一部分は前記データ
    ・バッファのサイズによって、またデータが前記共有コントローラ・リソースと
    前記データ・バッファ間を伝送されるレートと、データが前記第3アクセス・ユ
    ニットによって処理されるレートとの差によって、決定される請求項26に記載
    の方法。
  31. 【請求項31】 前記第2の時間の長さが、前記データ・バッファのサイズ
    によって、またデータが前記第3アクセス・ユニットによって処理されるレート
    によって少なくとも一部が決定される請求項26に記載の方法。
  32. 【請求項32】 前記第2の時間の長さと前記第3の時間の長さは、アクセ
    ス・ユニットによるアクセスを解放したときに、前記共有コントローラ・リソー
    スと、前記データ・バッファ間のデータの伝送を開始するのに必要とする時間の
    長さを考慮することによって、少なくとも一部が決定される請求項26に記載の
    方法。
  33. 【請求項33】 前記第2ユニットがホスト・インターフェース・ユニット
    であり、前記第3ユニットが記憶デバイス・フォーマッタ・ユニットである請求
    項26に記載の方法。
  34. 【請求項34】 複数のディスク・コントローラ回路によってアクセスされ
    るメモリを含んでいるディスク・コントローラ回路であって、 対応する第1割り当てアクセス持続期間を伴う第1コントローラ回路と、 対応する第2割り当てアクセス持続期間を伴う第2コントローラ回路と、 前記第1コントローラ回路によって実際のアクセス持続期間に関連する量を測
    定し、また前記第1の割り当てアクセス持続期間と前記実際のアクセス持続期間
    との間の差に関係する長さによって前記第2の時間の長さを調整するアービッタ
    回路と、を含むディスク・コントローラ回路。
JP2000607076A 1999-03-24 2000-03-23 ディスク・コントローラ・メモリへのアクセスを調停する調停方法およびシステム Expired - Lifetime JP4313516B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/275,629 US6530000B1 (en) 1999-03-24 1999-03-24 Methods and systems for arbitrating access to a disk controller buffer memory by allocating various amounts of times to different accessing units
US09/275,629 1999-03-24
PCT/US2000/007780 WO2000057267A1 (en) 1999-03-24 2000-03-23 Arbitration methods and systems for arbitrating access to a disk controller memory

Publications (3)

Publication Number Publication Date
JP2002540499A true JP2002540499A (ja) 2002-11-26
JP2002540499A5 JP2002540499A5 (ja) 2008-10-23
JP4313516B2 JP4313516B2 (ja) 2009-08-12

Family

ID=23053180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000607076A Expired - Lifetime JP4313516B2 (ja) 1999-03-24 2000-03-23 ディスク・コントローラ・メモリへのアクセスを調停する調停方法およびシステム

Country Status (9)

Country Link
US (1) US6530000B1 (ja)
EP (1) EP1163573B1 (ja)
JP (1) JP4313516B2 (ja)
KR (1) KR100619806B1 (ja)
AT (1) ATE368885T1 (ja)
AU (1) AU3915300A (ja)
CA (1) CA2364625C (ja)
DE (1) DE60035774T2 (ja)
WO (1) WO2000057267A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006301810A (ja) * 2005-04-18 2006-11-02 Fujitsu Ltd データ転送処理方法、データ転送処理装置およびデータ転送処理制御プログラム

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715009B1 (en) * 1999-12-21 2004-03-30 Intel Corporation Method and apparatus for coordinating cooperating resources and its application
US7406547B2 (en) * 2000-08-09 2008-07-29 Seagate Technology Llc Sequential vectored buffer management
US6763437B1 (en) * 2000-09-07 2004-07-13 Maxtor Corporation Control system, storage device and method for controlling access to a shared memory using a bus control or handshaking protocol
JP4213338B2 (ja) * 2000-12-22 2009-01-21 富士通マイクロエレクトロニクス株式会社 リアルタイムレコーディングシステム及びリアルタイムレコーディング方法
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7080188B2 (en) * 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US7206922B1 (en) * 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7120084B2 (en) * 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) * 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7757009B2 (en) * 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) * 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) * 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US8108659B1 (en) * 2006-11-03 2012-01-31 Nvidia Corporation Controlling access to memory resources shared among parallel synchronizable threads
JP5354816B2 (ja) 2008-10-15 2013-11-27 マーベル ワールド トレード リミテッド N個のデータを入出力するhdc、および、その方法
CN102385555B (zh) * 2010-08-27 2015-03-04 深圳市朗科科技股份有限公司 一种缓存系统和数据缓存的方法
US9268649B1 (en) * 2011-06-23 2016-02-23 Western Digital Technologies, Inc. Disk drive with recent write streams list for data refresh determination
US20130132621A1 (en) * 2011-11-23 2013-05-23 Ankit Sihare Method and apparatus to share hardware resources across storage controllers within a system using resource sharing module
US9886209B2 (en) * 2016-02-16 2018-02-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling file placement on a disk drive to improve file access

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4000485A (en) 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
US4558429A (en) 1981-12-17 1985-12-10 Honeywell Information Systems Inc. Pause apparatus for a memory controller with interleaved queuing apparatus
US5276807A (en) 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US5193197A (en) 1987-09-24 1993-03-09 Digital Equipment Corporation Apparatus and method for distributed dynamic priority arbitration for access to a shared resource
US5072420A (en) 1989-03-16 1991-12-10 Western Digital Corporation FIFO control architecture and method for buffer memory access arbitration
US5506989A (en) 1990-01-31 1996-04-09 Ibm Corporation Arbitration system limiting high priority successive grants
US5249271A (en) 1990-06-04 1993-09-28 Emulex Corporation Buffer memory data flow controller
US5301333A (en) 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
JP2703668B2 (ja) 1991-03-18 1998-01-26 株式会社日立製作所 データ転送制御装置および磁気ディスク制御装置
DE69230462T2 (de) 1991-11-19 2000-08-03 Sun Microsystems Inc Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
CA2080608A1 (en) 1992-01-02 1993-07-03 Nader Amini Bus control logic for computer system having dual bus architecture
US5408644A (en) 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5524268A (en) 1992-06-26 1996-06-04 Cirrus Logic, Inc. Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases
US5276662A (en) * 1992-10-01 1994-01-04 Seagate Technology, Inc. Disc drive with improved data transfer management apparatus
US5546548A (en) 1993-03-31 1996-08-13 Intel Corporation Arbiter and arbitration process for a dynamic and flexible prioritization
US5465343A (en) * 1993-04-30 1995-11-07 Quantum Corporation Shared memory array for data block and control program storage in disk drive
US5487170A (en) 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
JPH07244635A (ja) 1994-01-14 1995-09-19 Fujitsu Ltd バス使用権調停回路及び方法
US5574867A (en) 1994-07-08 1996-11-12 Intel Corporation Fast first-come first served arbitration method
US5519837A (en) 1994-07-29 1996-05-21 International Business Machines Corporation Pseudo-round-robin arbitration for a shared resource system providing fairness and high throughput
US5881313A (en) 1994-11-07 1999-03-09 Digital Equipment Corporation Arbitration system based on requester class and relative priority including transmit descriptor valid bit for a shared resource having multiple requesters
US5546545A (en) 1994-12-09 1996-08-13 International Business Machines Corporation Rotating priority selection logic circuit
US5623672A (en) 1994-12-23 1997-04-22 Cirrus Logic, Inc. Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment
WO1996035173A1 (en) 1995-05-03 1996-11-07 Apple Computer, Inc. Arbitration of computer resource access requests
US5664121A (en) 1995-11-07 1997-09-02 Sun Microsystems, Inc. Dual mode arbitration apparatus and method for reducing latency by allowing the possibility of simultaneous request and access for a shared bus
US5692135A (en) 1995-12-14 1997-11-25 International Business Machines Corporation Method and system for performing an asymmetric bus arbitration protocol within a data processing system
US5784569A (en) 1996-09-23 1998-07-21 Silicon Graphics, Inc. Guaranteed bandwidth allocation method in a computer system for input/output data transfers
US6178486B1 (en) * 1998-02-19 2001-01-23 Quantum Corporation Time allocation shared memory arbitration for disk drive controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006301810A (ja) * 2005-04-18 2006-11-02 Fujitsu Ltd データ転送処理方法、データ転送処理装置およびデータ転送処理制御プログラム

Also Published As

Publication number Publication date
US6530000B1 (en) 2003-03-04
KR100619806B1 (ko) 2006-09-13
DE60035774T2 (de) 2007-12-06
CA2364625A1 (en) 2000-09-28
DE60035774D1 (de) 2007-09-13
KR20010110679A (ko) 2001-12-13
ATE368885T1 (de) 2007-08-15
AU3915300A (en) 2000-10-09
WO2000057267A1 (en) 2000-09-28
CA2364625C (en) 2012-08-07
JP4313516B2 (ja) 2009-08-12
EP1163573B1 (en) 2007-08-01
EP1163573A1 (en) 2001-12-19

Similar Documents

Publication Publication Date Title
JP2002540499A (ja) ディスク・コントローラ・メモリへのアクセスを調停する調停方法およびシステム
US6393506B1 (en) Virtual channel bus and system architecture
US5884050A (en) Mechanism for high bandwidth DMA transfers in a PCI environment
US5613162A (en) Method and apparatus for performing efficient direct memory access data transfers
US6330626B1 (en) Systems and methods for a disk controller memory architecture
US6401149B1 (en) Methods for context switching within a disk controller
US5828856A (en) Dual bus concurrent multi-channel direct memory access controller and method
KR102519019B1 (ko) 액세스 효율에 기초한 메모리 요청의 순서화
US5794072A (en) Timing method and apparatus for interleaving PIO and DMA data transfers
JPH071495B2 (ja) データ処理システム
US5506968A (en) Terminating access of an agent to a shared resource when a timer, started after a low latency agent requests access, reaches a predetermined value
US4949247A (en) System for transferring multiple vector data elements to and from vector memory in a single operation
US5884052A (en) Smart retry mechanism to program the retry latency of a PCI initiator agent
US5301332A (en) Method and apparatus for a dynamic, timed-loop arbitration
JP4531223B2 (ja) 集合的メモリを共有する複数のプロセッサを備えたデータ処理装置
US20090119429A1 (en) Semiconductor integrated circuit
EP1752881A1 (en) Apparatus for memory resource arbitration based on dedicated time slot allocation
CA2370596C (en) Systems and methods for a disk controller memory architecture
US20050138251A1 (en) Arbitration of asynchronous and isochronous requests
KR102334473B1 (ko) 적응형 딥러닝 가속 장치 및 방법
US20050120147A1 (en) Direct memory access controller enabling cycle stealing among channels
US20010002481A1 (en) Data access unit and method therefor
JP2003228512A (ja) データ転送装置
JP2002269028A (ja) Admコントローラ装置
JP2000250852A (ja) バス調停装置、バスシステムおよびバス調停方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20010928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20010928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060317

A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20060317

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060721

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060823

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20060823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20080904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090127

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: 20090428

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090515

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4313516

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371