JP2006209727A - 書き込みリファレンスメッシュを構成する方法およびシステム - Google Patents

書き込みリファレンスメッシュを構成する方法およびシステム Download PDF

Info

Publication number
JP2006209727A
JP2006209727A JP2005142907A JP2005142907A JP2006209727A JP 2006209727 A JP2006209727 A JP 2006209727A JP 2005142907 A JP2005142907 A JP 2005142907A JP 2005142907 A JP2005142907 A JP 2005142907A JP 2006209727 A JP2006209727 A JP 2006209727A
Authority
JP
Japan
Prior art keywords
mesh
memory
entry
address
action
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
JP2005142907A
Other languages
English (en)
Other versions
JP4679963B2 (ja
Inventor
Clark Edward Lubbers
エドワード ルッベルス クラーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2006209727A publication Critical patent/JP2006209727A/ja
Application granted granted Critical
Publication of JP4679963B2 publication Critical patent/JP4679963B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】メモリーウインドウメッシュにおけるメッシュエントリーのリファレンス位置へのメモリー書き込みオペレーションを検出し、その検出された書き込みに応答するアクションを呼び出す書き込みリファレンスメッシュ(WORM)を提供する。
【解決手段】WORMにおいて、メッシュエントリーは、ゾーンに並べられる。呼び出されたアクションは、書き込みオペレーションが検出された個々のメッシュエントリーまたはゾーンに依存する。呼び出されたアクションは、ベンダーが提供するカスタムロジックによって構成できる。したがって、特定用途のプロセッサーにおいて、カスタムロジックは、メモリーウインドウにおける任意の数の特定メモリーアドレスの1つへの書き込みオペレーションを検出することによって、広く多様な洗練されたアクションをトリガーすることができる。
【選択図】図4

Description

本発明は、一般にはメモリーサブシステムに関し、より詳しくは書き込みリファレンスメッシュに関するものである。
伝統的なストレージフレームワークは、しばしば、規格品の一般のプロセッサーやファームウェアのような分離した構成要素から組み立てられて、性能および扱い易さの競合上の基準を満たしている。しかしながら、一般の構成要素のそのような組み合わせでは、現代のネットワークを中心とするストレージモデルの要件および期待に合致できるものではない。したがって、ストレージエリアネットワーク(SAN)アプリケーション用に、新しい、特別な目標のある構成要素が開発されている。
そのような構成要素の1つが、インテリジェントストレージプロセッサー(ISP)である。ISPは、ストレージ制御器の構成を、埋め込まれたスイッチファブリックと組み合わせる特定用途のプロセッサーを表していて、デバイスに束縛されたストレージの物理的な観点ではなく、ストレージの論理的な観点をもたらす高性能仮想ストレージサービスを提供する。例えば、ISPは、ストレージ制御器システムまたはインテリジェントSANスイッチにおける一般のプロセッサーに置き換わって、重要な読み出し/書き込みコマンドを処理し、ストレージアプリケーションを加速し、かつ管理機能の特徴を提供できる。
システムの売り手は、そのような特定用途のプロセッサー用のカスタムロジックを提供して特定の「価値付加」製品の特長を提供する。例えば、ストレージシステムの売り手は、1つ以上のISPをデザインしてストレージシステムとし、カスタムロジックを提供して、ルーティング、量管理、データ移動および複製のような元からあるインテリジェントSANのサービスを、ファブリックスイッチ、ルーター、ストレージ管理装置、ストレージアレイおよびブレードサーバーに一体化することを可能にする。そのように、ISPには、必要なハードウェアインターフェースおよびソフトウェアAPIが備わっていて、種々の現存するストレージネットワーキング装置および管理アプリケーションとの一体化が可能である。
特定用途のプロセッサーは、ストレージシステムデザイナーの益々厳しい性能要求およびプログラミングの需要を満たすだけ充分に柔軟的でパワフルなプログラミングモデルを支援しようと試みる。しかしながら、現存するアプローチによっては、これらのシステムの、洗練された、高い性能という必要性に充分に適合するメモリーの解決策が提供されていない。
ここに記述され、特許請求される実施例は、メモリーウインドウメッシュにおけるメッシュエントリーのリファレンス位置へのメモリー書き込みオペレーションを検出し、検出された書き込みに応答するアクションを呼び出す書き込みリファレンスメッシュ(WORM)を提供することによって前述の課題を解決する。メッシュエントリーは、ゾーンに並べられている。呼び出されたアクションは、個々のメッシュエントリーまたは書き込みオペレーションが検出されたゾーンに依存する。呼び出されたアクションは、ベンダーによって提供されるカスタムロジックで構成できる。したがって、特定用途のプロセッサーにおいて、カスタムロジックは、メモリーウインドウにおける特定のメモリーアドレスへの書き込みによって多彩な洗練されたアクションをトリガーできる。
1つの実施例において、メモリーウインドウメッシュは、メッシュエントリーのアレイを含むように定義される。各メッシュエントリーには、複数のアドレス位置が含まれている。メッシュエントリーには、リファレンス位置として指定されるアドレス位置が含まれている。メッシュエントリーのリファレンス位置への書き込みオペレーションが検出される。書き込まれたメッシュエントリーと関係するアクションが、検出オペレーションに応答してトリガーされる。
別の実施例において、システムによって、メッシュエントリーのアレイを含むメモリーウインドウメッシュが提供される。各メッシュエントリーには、複数のアドレス位置が含まれている。メッシュエントリーには、リファレンス位置として指定されるアドレス位置が含まれている。ストレージエンジンによって、メッシュエントリーのリファレンス位置への書き込みオペレーションの検出に応答して、書き込まれたメッシュエントリーと関連するアクションがトリガーされる。
ここには、他の実施例もまた記述され説明される。
図1には、ローカルエリアネットワーク(LAN)102およびストレージエリアネットワーク(SAN)104を含む代表的なコンピュータ使用およびストレージフレームワーク100が例示されている。種々のアプリケーション顧客106が、LAN102を介してアプリケーションサーバー108へとネットワーク接続されている。アプリケーションサーバー108によって、アプリケーション顧客106は、アプリケーションサーバー108に常駐するアプリケーションへのアクセスが可能となる。そのようなアプリケーションは、1つ以上のアプリケーションデータストレージデバイス110に蓄積されるデータ(例えば、eメールデータベース)に依存する。したがって、SAN104は、アプリケーションサーバー108とアプリケーションデータストレージデバイス110との間の接続性を提供して、アプリケーションがデータにアクセスできるようにする。
SAN104には、冗長のため典型的には2つのインテリジェントストレージプロセッサー(ISP)を有するインテリジェントストレージプロセッサー基板を含む1つ以上のインテリジェントSANスイッチが含まれている。インテリジェントSANは、インターフェースストレージデバイス110を、SAN104における残りのSANスイッチファブリックに切り替える。各インテリジェントSANスイッチは、ハードウェア、ファームウェアおよび/またはアプリケーションソフトウェアの種々の組み合わせにおいて実施され、ISPおよび/または関連するプロセッサーによって実行されるルーティング、量管理、データ移動および複製のような分類されたストレージサービスを提供することができる。図1に示されるSAN104には、代表的な書き込みリファレンスメッシュ(WORM)を実行するISPを有するインテリジェントスイッチが含まれており、それは、後に続く図に関してより詳細に記述されるような洗練されたプログラミングモデルを支援する。
図2には、インテリジェントSANスイッチの代表的なインテリジェントストレージプロセッサー基板200のブロック図が例示されている。ISP基板200には、16ビット(またはそれ未満の)広域並列低電圧差動(LVD)バス206(「eバス」)によって結合される2つのISPサブシステム202および204が含まれている。ISPサブシステム202には、ISP208が含まれており、それには、1つのファイバーチャンネルホストリンク216と2つのファイバーチャンネルストレージリンク218へのインターフェースおよび、リアルタイムオペレーティングシステム(RTOS)を実行するポリシープロセッサー212が含まれている。ISP208およびポリシープロセッサー212は、PCIバス214を介して通信することができ、ISP208とポリシープロセッサー212は、双方ともメモリー222にアクセスできる。
1つの実施例において、ISP208には、異なるカスタムロジックを備える7つの機能制御器コア(FCC)と3つのリストマネージャー(LM)特定用途プロセッサーとが含まれている。FCCおよびLMは、クロスポイントスイッチ(CPS)FCC‐LMメッセージクロスバーを介して通信する。そのように、FCCは、所定の条件に応じてCPSメッセージを生成し、これらのメッセージをメモリーモジュールにアクセスし、または所望のISP動作を呼び出すために、CPSを通してリストマネージャーへと送る。同様に、リストマネージャーからの応答は、CPSを介してFCCへと伝えられる。ポリシープロセッサーはまた、リストマネージャーと通信し、そしてCPSを用いてメモリーにアクセスする。また他の実施例も使用されることが理解されるべきである。
FCCは、特定の機能に基づいてカスタマイズされたロジックを実行することのできる特化されたプロセッサーである。FCCが含んでいるのは、高度に柔軟な特長の組み合わせと、リストマネージャーと通信するCPSメッセージを用いて、CPSを通してメモリーにアクセスする強力なインターフェースである。リストマネージャーは、ISP208とそのパートナーISP210、並びにポリシープロセッサー212のFCC用メモリーへのアクセスポイントとして動作することのできる特化されたメッセージプロセッサーである。リストマネージャーはまた、CPSを通して受け取られるメッセージに応答する他の特化された機能性を提供することもできる。受け取られたメッセージおよびデータは、リストマネージャーによって保持されアクセスされるリストに蓄積される。スケジューリングプロトコルにしたがって、リストマネージャーは、メッセージによって定義される動作を実行する。
ポリシープロセッサー212は、スイッチのベンダーがプログラムすることができ、「価値付加」機能性を提供する。すなわち、ポリシープロセッサー212は、カスタムロジックを実行し、ISP208を介して洗練された動作を行うことができる。多くの方法で、ポリシープロセッサー212は、FCCにいくぶん等しいようなISP208によって処理される。ポリシープロセッサー212は、いずれのリストマネージャーにもメッセージを送ることができ、かついずれのリストマネージャーからも、全てCPSを介して戻される応答を受け取ることができる。ISPによって発行されるメッセージの応答は、結果としてポリシープロセッサー212を中断するものとなり、それは、その中断に応答して、リストマネージャーの応答を得るようISPのレジスタを読むことができる。したがって、ポリシープロセッサー212はまた、メモリー222にアクセスし、CPSメッセージおよびリストマネージャーを用いてISP208内の動作をトリガーすることができる。
したがって、SANスイッチベンダは、ポリシープロセッサー212で実行されるカスタムストレージサービスアプリケーションを作り出すことができる。ストレージサービスアプリケーションは、例えば、付随オーバーヘッドでの個々のPCI読み取りまたは書き込みオペレーションを介してメモリーウインドウを開いてアクセスすることによって、ISPレジスタアクセスおよびPCIバス214の上のDMAを通してISP208の機能にアクセスできる。実施例によっては、個々のPCIアクセスよりも速いアクセスも支援する。例えば、前述のシステムの実施例においては、ポリシープロセッサーは、PCIバス214越しのキャッシュ書き込みを通してISPの機能にアクセスするパワーPCプロセッサーで実現される。ただし、他のプロセッサーやアクセス方法が使用されてもよい。
図3には、代表的なストレージシステム300の構成要素が例示されている。構成要素の中で、ISP302は、ポリシープロセッサー304、バッファメモリーモジュール306、キャッシュテーブルメモリー308および交換メモリーモジュール310と結合されている。したがって、ポリシープロセッサー304は、ストレージシステムのためのカスタムアプリケーションを実行して、PCIバス312およびISP302におけるPCIインターフェース313を介してISPの機能およびメモリーモジュールにおけるデータにアクセスできる。
前述のシステム300の実施例において、ポリシープロセッサー304は、PCIバス312越しに32MBメモリーウインドウが備えられ、ISP302へのアクセスが可能となっている。ただし、代わりのサイズのメモリーウインドウも考えられる。例えば、代表的なポリシープロセッサーは、32バイトのキャッシュラインサイズを有し、単一の「バースト」動作としてキャッシュライン全体を強制的に発する機構を提供する。64ビットPCIインターフェースについて、これは、(調停および接続の後)結果としてアドレスサイクルを生じ、それに4つの64ビットデータワードサイクルが続く。
1つの実施例において、ISP302には、7つのFCCが含まれている。これらのFCCのうち3つは、最初にファイバーチャンネルインターフェースに接続されている。これらのFCCの各々は、2つのDMAインターフェースを制御する。これらのFCCは、ホスト交換制御器314、ディスク交換制御器(コア1)316およびディスク交換制御器(コア2)318と名付けられる。残りの4つのFCCは、あるカスタムロジックを有するとともに、コマンドルーティング制御器320、DMA/XOR制御器322、メタデータ制御器324および雑機能制御器326といった一般的な目的の機能を提供する。
各FCCは、65,536個の16ビットレジスタのレジスタアドレススペース(128KB)を有する。このスペースの最初の4分の1(0xC000−0xFFFF)は、実際のFCCプログラミングインストラクションを含む書き込み可能な制御ストレージ(WCS)に確保されている。下位の512個の16ビットは、そのままのレジスタである。レジスタアドレススペースの残りは、カスタムロジックまたは一般の可変スペースへのアクセスを提供する。FCCは、CPS311およびリストマネージャーを介してメモリー306、308および310にアクセスすることができる。リストマネージャーを通してFCCは、リスト操作、リスト検索、フィールド抽出、フィールド挿入(蓄積)、フィールドコピー、フィールド増加、フィールド減少、フィールドビットセットおよびフィールドビットクリアを要求することができ、同様にリストマネージャーによって管理されるリストについての情報を要求する。
リストマネージャーによって、FCCおよびポリシープロセッサー304には、メモリーモジュールへのアクセスが備えられる。バッファメモリーモジュール306は、ポリシープロセッサー304によって消費される実際のユーザーデータ、および幾分かの関連するメタデータを保持するためにあらかじめ確保されている。交換メモリーモジュール310は、バッファメモリーモジュール306においてバッファを記述するメタデータを保持する。キャッシュテーブルメモリーモジュール308もまた、メタデータを含むことができるが、別の特定の実施例においては、このメモリーモジュール308は使用されていない。SRAMモジュール333は、未決のコマンドのリストおよび現在進行中の状況に高速でアクセスするのに用いられる。結果的にDRAMリストマネージャー328は、交換メモリーモジュール308およびPCIインターフェース313へのアクセスを提供する。二重DRAMリストマネージャー330は、キャッシュテーブルメモリーモジュール308およびバッファメモリーモジュール306へのアクセスを提供する。SRAMリストマネージャー332は、SRAM333およびキャッシュテーブルメモリー308へのアクセスを提供する。
ISP302は、eバスインターフェース336を用いてパートナーISP(図示されていない)と通信する。オペレーションコードおよび/またはデータを含むメッセージが、リストマネージャーによってCPS311を通してeバスインターフェース336に送られ、それは、そのメッセージを、パートナーISPのeバスインターフェースに送る。同様に、所定のISPのFCCおよびポリシープロセッサーは、ISP302のCPS311を通して、メッセージをeバスインターフェース336へと送ることができ、それによって、ISP302のFCCおよびポリシープロセッサーが、パートナーISPのリストマネージャーとコマンドおよびデータの通信を行えるようにする。
図4には、代表的な書き込みリファレンスメッシュ400が例示されている。1つの実施例において、64MBメモリーウインドウ(26ビットメモリーアドレス)が、ISPのベースアドレスレジスタ(図示されていない)によって定義されている。ウインドウの下位32MBは、キャッシュテーブルメモリーモジュールおよび交換メモリーモジュールのような、ストレージエンジンと関連する他のメモリーへのアクセスを可能とする。メモリーウインドウの上位32MBは、CPSアクセス領域(CAR)と呼ばれ、それを通してポリシープロセッサーは、ISPメモリーおよび機能にアクセスすることができる。代表的な実施例において、代表的なメモリーウインドウにおけるアドレスの下位25ビットは、以下のように定義される。
Figure 2006209727
メッシュインデックスは、アドレシングについて無視される(ただし、それは後で、CPSメッセージの「タグ」として用いられる)。そうであるので、ポリシープロセッサーがメモリーウインドウのCARに書き込むとき、25ビットアドレスは、PCIインターフェースにおける超高速メモリーアクセスとして実行される実際の32バイトのみをアドレスするよう縮小する。そのようなアクセスは、32バイトバースト読み取りまたは32バイトバースト書き込みとして行われるが、4バイト(32ビット)単一ロングワードアクセスおよび単一バイトアクセスもまた実行される。
メッシュ400には、ゾーン404に配置される複数の配列されたメッシュエントリー402が含まれており、それらは、メモリーウインドウを通してポリシープロセッサーによってアクセス可能である。1つの実施例において、メッシュは、2MB境界で16のゾーンに分割される。ただし、他の構成も考えられる。したがって、ポリシープロセッサーは、データパケット(例えば、1つの実施例におけるデータの32バイト)を、メモリーウインドウを通してメッシュ400における個々のメッシュエントリーに書き込むことができ、ここでデータの各バイトは、メッシュエントリーにおける個々のアドレス位置に書き込まれる。
したがって、メッシュ400の各メッシュエントリー402には、拡大されたフレーム408に示されるように、複数のアドレス位置406が含まれている。リファレンス位置410が、各メッシュエントリーにおいて指定されて特定のアクションをトリガーする。リファレンス位置への書き込みの検出は、「リファレンス」を表し、それは、書き込まれたセルエントリーが位置するゾーンと特に関連するアクションをトリガーするイベントである。
一般に、書き込みリファレンスメッシュは、メッシュにおける個々のメッシュエントリーのリファレンス位置へのメモリー書き込みオペレーションの検出に応答して、ISPにおける特定のアクションをトリガーする書き込み感応メモリーウインドウを実現する。代表的な実施例において、リファレンス位置への書き込みオペレーションもまた、結果として「タグ」を生成し、それは、メモリー書き込みオペレーションにおいて用いられるメモリーアドレスのメッシュインデックス部分から得られる。
例えば、メッシュエントリーにおける書き込み感応性は、以下のように実現される。
(1)If(Address&Mask1)==Matchであるならば、メッシュエントリーにおけるリファレンス位置への書き込みが検出される。
(2)Tag=(Address&Mask2)>>5
ここで、AddressはPCI書き込みオペレーションからの書き込みアドレスを表し、Mask1は、バイトオフセットを含まないアドレスビット位置においてクリアであり(例えば、Mask1=0x0000001F)、Mask2は、メッシュインデックスを含むアドレスビット位置においてセットであり(例えば、Mask2=0x001FFFE0)、Matchは、所定のゾーンの所定のメッシュエントリー内のリファレンス位置を表し(例えば、0x0000001F)、シフトは、メッシュインデックスをレジスタの下位ビットに移すのに必要とされるビット数を表す(例えば、表1において与えられる代表的な25ビットアドレスの例においてシフト=5)。この検出ロジックは、リファレンス位置が複数バイト書き込みオペレーションに含まれているとき作用する。したがって、メッシュエントリーにおけるリファレンス位置への書き込みが検出されるならば、書き込みアドレスのメッシュインデックス部分からタグが作り出される。
各ゾーンについて、ISPは、32ビットレジスタおよびゾーンテンプレートレジスタ412と呼ばれる6つの16ビットレジスタを支援する。各32ビットレジスタは、ゾーンパケットビットマスクレジスタと呼ばれ、以下のように定義される。
Figure 2006209727
パケットテンプレートレジスタと呼ばれる6つの16ビットレジスタは、以下のように定義される。
Figure 2006209727
上に定義される6つのレジスタとポリシープロセッサーによって書き込まれる16のデータワード(すなわち、32バイトパケット)の組み合わせは、22個の16ビットレジスタのアレイとして取り扱うことができる。リファレンス位置への書き込みが検出されるならば、タグ値が、対応するゾーンのパケットテンプレートレジスタのタグフィールドに書き込まれる。パケットテンプレートレジスタの他のフィールドは、各ゾーンについて、ポリシープロセッサーによって予め定義されている。
対応するゾーンテンプレートレジスタのスキャター‐ギャザーマスクによって、これら22個のレジスタのいずれが、自動的に生成されるCPSメッセージを構築するのに用いられるのかが定義される。例えば、スキャター‐ギャザーマスクが「000003F」を含むならば、ヘッダー、オペレーション、タグおよび固定パラメータフィールド0、1および2のみが、CPSパケットを構築するのに用いられる。反対に、スキャター‐ギャザーマスクが「00001FF」を含むならば、ヘッダー、オペレーション、タグ、固定パラメータフィールド0、1および2並びにデータワード0‐2が、CPSパケットを構築するのに用いられる。
CPSパケットの生成は、ゾーンテンプレートレジスタ内のフラグビットおよびデータワード0のビット15に関する設定次第である(ポリシープロセッサーによってメッシュエントリーに書き込まれる)。フラッグがクリアであるならば、リファレンスが検出されるとき、CPSパケットは自動的に生成される。また、フラッグが設定されかつデータワード0のビット15が設定されるならば、リファレンスが検出されるとき、CPSパケットが自動的に生成される。しかしながら、フラッグが設定されかつデータワード0のビット15がクリアであるならば、リファレンスが検出されるとき、CPSパケットは自動的に生成されない。CPSパケットの生成をこのように条件を付けてトリガーすることで、32バイトデータバケットの全体に満たないものがポリシープロセッサーキャッシュから消去されるとき、アクションの生成(すなわちCPSパケットの生成)が防止される。
前述のように、リストマネージャーは、特化されたメッセージプロセッサーである。したがって、リストマネージャーは、ISPまたはそのパートナーISP内のアクションを結果として生じるオペレーションコードの組を支援する。代表的なコードには、「読み取り/書き込み連続メモリー位置」(読み取りシーケンス/書き込みシーケンス)、「読み取り/書き込みランダムメモリー位置」(読み取りランダム/書き込みランダム)、「補充テーブル」、「ゲットリストヘッド/テール」(ゲットヘッド/ゲットテール)、「増加/減少フィールド」(増加フィールド/減少フィールド)、「書き込みエントリーデータ」、「ポストエントリーデータ」「アンリンクおよび読み取りシーケンス」、「アンリンクおよび読み取りランダム」、「書き込みシーケンスおよびポスト」、「書き込みリング」、「書き込みリングおよび通知」、「読み取りリング」のようなオペレーションが無制限に含まれる。これらの代表的なオペレーションコードによって表されるアクションを通して、メモリーをアクセスすることができ、FCCによる処理のためにメッセージを列に並べる(すなわち、「ポストする」)ことができ、かつPCIデバイス(例えば、パートナーISP)に、処理される新しいリストエントリー(例えば、メッセージ)について通知することができる。
ヘッダーフィールドは、CPSパケットを特定のリストマネージャーに向けるルーティング情報を含む。そのように、所定のゾーンと関連するパケットテンプレートレジスタは、特定の結果を達成するために特定のアクションをトリガーする特定のリストマネージャーに向けてのパケットを定義できる。オプコードフィールドは、リストマネージャーが処理するオペレーションコードを含み、リストマネージャーによって受け取られるCPSメッセージと関連するアクションを表す。他のフィールドは、関連するアクションに有用なデータを含むことができる。例えば、リストフィールド、タグフィールドおよびその他のレジスタフィールドのいずれでも、どのリストがアクセスされ、どのデータが通信されるのかなどの影響を及ぼす。代表的なアクションが以下に記述される。
1つの実施例において、双方のパートナーISPでメタデータをミラー化することは冗長の目的で重要であり得るが、そのミラー化は、異なるISPサブシステム内の異なるアドレスで行われる。このシナリオにおいて、リファレンスに応答してトリガーするアクションは、eバスを横切ってのパートナーISPへのデータの書き込みオペレーションである。
したがって、「データ転送ゾーン」と呼ばれるゾーンが、この機能のために取り分けられて「データ転送ウインドウ」を定義する。データ転送ゾーンのパケットテンプレートレジスタには、CPSを通って特定のリストマネージャーへとパケットを経路付けるヘッダーフィールドが含まれている。オペレーションフィールドエントリーには、書き込みエントリーデータが含まれており、リストフィールドエントリーは、パートナーISPのメモリーにおいて対応するメモリー範囲を参照するテーブルを参照する。
例えば、データ転送ゾーンにおけるメッシュエントリーのリファレンス位置へのポリシープロセッサーによる書き込みオペレーションは、第一のISPにおいて検出される。それに応答して、CPSメッセージが自動的に生成され、パートナーISPのリストマネージャーに経路付けられる。CPSメッセージには、パートナーISPにおけるミラー化書き込みについて適当なメモリー範囲を参照するリストフィールドが含まれている。リストマネージャーがCPSメッセージのオプコードを実行するとき、第一のISPに書き込まれるデータは、パートナーISPのメモリーに書き込まれる。
第二の実施例において、要求および応答メッセージがISPパートナー間で迅速に送られ、例えば、ファイバーチャンネルプロトコル交換またはSCSI交換を実行する。このシナリオにおいてリファレンスに応答してトリガーされるアクションは、要求または応答をeバス越しにパートナーISPのメッセージリングバッファに送るものである。
「メッセージ転送ゾーン」と呼ばれるゾーンが、この機能のために取り分けられている。メッセージ転送ゾーンのパケットテンプレートレジスタには、CPSを通して特定のリストマネージャーへとパケットを経路付けるヘッダーフィールドが含まれている。オプコードフィールドエントリーには、書き込みリングおよび通知オプコードと、メッセージについて適切なリングを識別するリングフィールドエントリーとが含まれている。
例えば、パートナーISPのメッセージリングバッファへの書き込みオペレーションが、ポリシープロセッサーのISPのメッセージ転送ゾーンへの書き込みにより、ポリシープロセッサーによって呼び出される。メッセージ転送ゾーンにおけるメッシュエントリーのリファレンス位置への書き込みが検出されるとき、CPSメッセージが自動的に生成され、パートナーISPのリストマネージャーへと経路付けられる。CPSメッセージには、パートナーISPの適切なメッセージリングを参照するフィールドが含まれている。パートナーISPのリストマネージャーがCPSメッセージのオプコードを実行するとき、そのメッセージは、パートナーISPによってアクセスの可能なメモリーにおけるリングバッファに書き込まれる。
図5には、書き込みリファレンスメッシュを使用する代表的なストレージシステムにおける論理オペレーションが例示されている。ウインドウ化オペレーション502によって、PCIメモリーウインドウのようなメモリーウインドウの書き込みリファレンスメッシュが定義される。ある実施例において、メッシュは64MBごとに配列されるが、他の配列も考えられる。メッシュには、ゾーンに組織されるメッシュエントリーが含まれている。各ゾーンは、それと関連するゾーンテンプレートレジスタを有しており、それによって、リファレンス位置への書き込みがゾーン内で検出されるときにトリガーされるアクションが定義される。
検出オペレーション504は、書き込みリファレンスメッシュにおけるメッシュエントリーのリファレンス位置への書き込みオペレーションを検出する。代表的な検出オペレーションが、回路ロジックとマスクおよびマッチ値を用いて先に記述されている。ただし、他の検出オペレーションも考えられる。いくつかの実施例において、タグ値もまた、検出オペレーション504で決定され、ゾーンテンプレートレジスタの1つにローディングされる。
メッセージングオペレーション506は、(ヘッダーフィールドにおける)オペレーションコードおよび経路付け情報の含まれるCPSメッセージを構築する。16ビットゾーンテンプレートレジスタおよび書き込みオペレーションのデータは、32ビットゾーンテンプレートレジスタのスキャター‐ギャザーマスクによってマスクされて、この構築に用いられる。そうして、関連するスキャター‐ギャザーマスクによって選択され、ポリシープロセッサーによって書き込まれる32バイトのデータとメッシュエントリーの位置するゾーンの16ビットゾーンテンプレートレジスタのフィールドがメッセージパケットにコピーされる。
経路付けオペレーション508は、構築されたメッセージパケットを、そのメッセージパケットのヘッダーフィールドの経路付け情報において識別されるリストマネージャーに送る。代わりに、そのメッセージは、サブシステム内のカスタムロジックの他の部分へと送られることもあり得る。いくつかの実施例において、リストマネージャーはローカルISPか、パートナーISPかその他のロジックにある。メッセージパケットは、ストレージエンジンによってCPSスイッチを通ってその目的地へと送られる。したがって、その経路付けはCPSスイッチによって行われる。
処理オペレーション510は、オプコードおよびメッセージパケットにおける他のフィールドによって特定されるオペレーションを実行する。リストマネージャーは、洗練されたメッセージプロセッサーであるので、そのようなオペレーションは相当に多様である。いくつかの代表的なオペレーションがここに記述されているが、しかしリストマネージャーは広く多様なオペレーションを行うように構築されていて、これらの例によって制限されるべきではない。
ここに記述されている本発明の実施例は、1つ以上のコンピュータシステムにおいて論理ステップとして実現されている。本発明の論理オペレーションは、(1)1つ以上のコンピュータシステムにおいてプロセッサーに実行される一連のステップとしておよび(2)1つ以上のコンピュータシステム内の相互接続されたマシーンまたは回路モジュールとして実現される。実施例は、発明を実施するコンピュータシステムの性能要件に依存する選択事項である。したがって、ここに記述される発明の実施例を構成する論理オペレーションは、オペレーション、ステップ、オブジェクトまたはモジュールとして多様に言及される。さらには、論理オペレーションは、特許請求の範囲に明確に順番が記述されているか、特定の順番が特許請求の範囲の記述によって固有に必要とされていない限り、どのような順番で行われてもよいことを理解すべきである。
上記明細書、例およびデータは、発明の代表的な実施例の構造および使用を完全に記述するものである。発明の精神および範囲から逸脱することなく多くの実施例を作ることができるので、発明は、添付される特許請求の範囲に存する。とりわけ、記述された技術は、ストレージシステムとは独立に使用してもよいことを理解すべきである。したがって他の実施例も考えられる。
ローカルエリアネットワーク(LAN)およびストレージエリアネットワーク(SAN)を含む代表的なコンピュータ使用およびストレージフレームワークを例示する。 インテリジェントSANスイッチの代表的なインテリジェントストレージプロセッサー基板のブロック図を例示する。 代表的なストレージシステムの構成要素を例示する。 代表的な書き込みリファレンスメッシュを例示する 書き込みリファレンスメッシュを使用する代表的なストレージシステムの論理オペレーションを例示する。
符号の説明
100 ストレージフレームワーク
102 ローカルエリアネットワーク
104 ストレージエリアネットワーク
106 アプリケーション顧客
108 アプリケーションサーバー
110 アプリケーションデータストレージデバイス
200 インテリジェントストレージプロセッサー(ISP)基板
202,204 ISPサブシステム
206 広域並列低電圧差動(LVD)バス(eバス)
208,210 インテリジェントストレージプロセッサー
212 ポリシープロセッサー
214 PCIバス
216 ファイバーチャンネルホストリンク
218 ファイバーチャンネルストレージリンク
300 ストレージシステム
302 ISP
304 ポリシープロセッサー
306 バッファメモリー
308 キャッシュテーブルメモリー
310 交換メモリー
312 PCIバス
314 ホスト交換制御器
316 ディスク交換制御器(コア1)
318 ディスク交換制御器(コア2)
320 Cmdルーティング制御器
322 DMA/XOR制御器
324 メタデータ制御器
326 雑機能制御器
328 DRAMリストマネージャー
330 DUAL−DRAMリストマネージャー
332 SRAMリストマネージャー
333 SRAM
334 ストレージエンジン
336 Eバスインターフェース
400 リファレンスメッシュ
402 メッシュエントリー
404 ゾーン
412 ゾーンテンプレートレジスタ

Claims (20)

  1. リファレンス位置として指定されたアドレス位置を含む複数のアドレス位置をそれぞれに有するメッシュエントリのアレイを備えたメモリウインドウメッシュを画定し、
    メッシュエントリーのリファレンス位置への書き込みオペレーションを検出し、
    検出オペレーションに応答して、書き込まれたメッシュエントリーと関連するアクションをトリガーする、
    ステップを含む、書き込みリファレンスメッシュを構成する方法。
  2. メモリーウインドウメッシュがゾーンに分割されており、各ゾーンには複数のメッシュエントリーが含まれており、かつトリガーされたアクションは、書き込まれたメッシュエントリーが含まれているゾーンと関連している請求項1に記載の方法。
  3. メモリーウインドウメッシュがゾーンに分割されており、各ゾーンは、トリガーされるべきアクションを指定するアクションディスクリプターと関連している請求項1に記載の方法。
  4. 検出された書き込みオペレーションが、第一のメモリーのメモリーアドレスに向けられており、かつトリガーを行うオペレーションが、第二のメモリーのメモリーアドレスに向けられる別の書き込みオペレーションをトリガーする請求項1に記載の方法。
  5. 第二のメモリーに書き込まれるメモリーアドレスが、書き込まれたメッシュエントリーの含まれるゾーンに依存する請求項4に記載の方法。
  6. 第二のメモリーに書き込まれたメモリーアドレスが、第一のメモリーに書き込まれたメッシュエントリーに依存する請求項4に記載の方法。
  7. 第二のメモリーに書き込まれたメモリーアドレスが、第一のメモリーに書き込まれたメモリーアドレスのメッシュインデックスに依存する請求項4に記載の方法。
  8. トリガーするオペレーションが、メッセージを生成し、そのメッセージをメッセージプロセッサーに送る請求項1に記載の方法。
  9. 生成されるメッセージが、書き込まれたメッシュエントリーの含まれているゾーンに依存する請求項8に記載の方法。
  10. 生成されるメッセージが、第一のメモリーに書き込まれたメッシュエントリーに依存する請求項8に記載の方法。
  11. 生成されるメッセージが、第一のメモリーに書き込まれたメモリーアドレスのメッシュインデックスに依存する請求項8に記載の方法。
  12. 検出オペレーションが、メッシュエントリーへの書き込みオペレーションが完了するとき検出を行う請求項1に記載の方法。
  13. 各メッシュエントリーには複数のアドレス位置が含まれており、リファレンス位置が、アクションをトリガーするよう指定されるメッシュエントリーにおける所定のアドレス位置を表し、そうしてメッシュエントリーにおける他のアドレス位置への書き込みオペレーションがアクションをトリガーしないようにする請求項1に記載の方法。
  14. メッシュエントリーのアレイを含むメモリーウインドウメッシュであって、各メッシュエントリーには複数のアドレス位置が含まれており、メッシュエントリーにはリファレンス位置として指定されるアドレス位置が含まれているメモリーウインドウメッシュと、
    書き込まれたメッシュエントリーと関連するアクションを、メッシュエントリーのリファレンス位置への書き込みオペレーションの検出に応答してトリガーするストレージエンジンと
    を備える書き込みリファレンスメッシュを構成するシステム。
  15. メモリーウインドウメッシュがゾーンに分割されており、各ゾーンには複数のメッシュエントリーが含まれており、かつトリガーされるアクションが、書き込まれたメッシュエントリーの含まれているゾーンと関連している請求項14に記載のシステム。
  16. メモリーウインドウメッシュがゾーンに分割されており、各ゾーンは、トリガーされるべきアクションを指定するアクションディスクリプターと関連している請求項14に記載のシステム。
  17. 検出される書き込みオペレーションが、第一のメモリーのメモリーアドレスに向けられていて、かつトリガーされるアクションが、第二のメモリーのメモリーアドレスに向けられる別の書き込みオペレーションをトリガーする請求項14に記載のシステム。
  18. トリガーされるアクションが、メッセージを生成して、そのメッセージをメッセージプロセッサーに送る請求項14に記載のシステム。
  19. メッシュエントリーのリファレンス位置への書き込みオペレーションの検出が、メッシュエントリーへの書き込みオペレーションが完了するとき検出する請求項14に記載のシステム。
  20. 各メッシュエントリーには複数のアドレス位置が含まれており、リファレンス位置が、アクションをトリガーするよう指定されるメッシュエントリーにおける所定のアドレス位置を表し、そうしてメッシュエントリーにおける他のアドレス位置への書き込みオペレーションがアクションをトリガーしないようにする請求項14に記載のシステム。
JP2005142907A 2005-01-25 2005-05-16 書き込みリファレンスメッシュを構成する方法およびシステム Expired - Fee Related JP4679963B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/042,424 US7287128B1 (en) 2005-01-25 2005-01-25 Write on reference mesh

Publications (2)

Publication Number Publication Date
JP2006209727A true JP2006209727A (ja) 2006-08-10
JP4679963B2 JP4679963B2 (ja) 2011-05-11

Family

ID=36966468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005142907A Expired - Fee Related JP4679963B2 (ja) 2005-01-25 2005-05-16 書き込みリファレンスメッシュを構成する方法およびシステム

Country Status (2)

Country Link
US (1) US7287128B1 (ja)
JP (1) JP4679963B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914540B1 (en) * 2008-07-01 2014-12-16 Cisco Technology, Inc. Multi-fabric SAN based data migration

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06247010A (ja) * 1993-02-25 1994-09-06 Oki Electric Ind Co Ltd プリンタのコマンド処理装置
JPH0772988A (ja) * 1993-09-06 1995-03-17 Seiko Epson Corp 情報機器
JP2004523831A (ja) * 2001-02-13 2004-08-05 キャンデラ, インコーポレイテッド シリコンベースのストレージ仮想化サーバ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377344A (en) 1991-07-31 1994-12-27 Toyo Corporation Selective memory transaction monitor system
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6202127B1 (en) 1997-11-26 2001-03-13 Compaq Computer Corporation Apparatus for spatial and temporal sampling in a computer memory system
US6601149B1 (en) 1999-12-14 2003-07-29 International Business Machines Corporation Memory transaction monitoring system and user interface
US7213081B2 (en) 2001-06-29 2007-05-01 Fujitsu Limited Dynamic determination of memory mapped input output range granularity for multi-node computer system
US6742101B2 (en) 2001-06-29 2004-05-25 Fujitsu Limited Scalable and flexible method for address space decoding in a multiple node computer system
US6862634B2 (en) 2001-06-29 2005-03-01 Fujitsu Limited Mechanism to improve performance in a multi-node computer system
US6970809B2 (en) 2001-08-29 2005-11-29 International Business Machines Corporation Automated configuration of on-circuit facilities
US7120728B2 (en) * 2002-07-31 2006-10-10 Brocade Communications Systems, Inc. Hardware-based translating virtualization switch
US7334077B2 (en) * 2003-10-17 2008-02-19 Renesas Technology America, Inc. Method and apparatus for smart memory pass-through communication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06247010A (ja) * 1993-02-25 1994-09-06 Oki Electric Ind Co Ltd プリンタのコマンド処理装置
JPH0772988A (ja) * 1993-09-06 1995-03-17 Seiko Epson Corp 情報機器
JP2004523831A (ja) * 2001-02-13 2004-08-05 キャンデラ, インコーポレイテッド シリコンベースのストレージ仮想化サーバ

Also Published As

Publication number Publication date
US7287128B1 (en) 2007-10-23
JP4679963B2 (ja) 2011-05-11

Similar Documents

Publication Publication Date Title
CN100383751C (zh) 用于动态镜像库寻址的系统和方法
JP6871957B2 (ja) エミュレートされたエンドポイントコンフィグレーション
US11048569B1 (en) Adaptive timeout mechanism
USRE44610E1 (en) Node identification for distributed shared memory system
US7562176B2 (en) Apparatus and methods for clustering multiple independent PCI express hierarchies
US20080282017A1 (en) Serial Peripheral Interface Switch
US10846163B1 (en) Hybrid hardware and software reporting management
CN101449262A (zh) 多端口存储器件中的端口间通信
US10762137B1 (en) Page table search engine
KR101575070B1 (ko) 디바이스 기능에 대한 액세스를 제공하기 위한 장치, 시스템 및 방법
US10810133B1 (en) Address translation and address translation memory for storage class memory
WO2022007644A1 (zh) 多处理器系统及配置多处理器系统的方法
CN117827449B (zh) 服务器的物理内存扩展架构、服务器、方法、设备及介质
US10437750B2 (en) Relative data width indication for read responses routed by an interconnect
US7260681B2 (en) Stripe buffer list
KR102792263B1 (ko) 메모리 카드 및 이를 이용한 데이터 처리 방법
BR112016003488B1 (pt) Sistema de armazenamento, método, e aparelho para processar solicitação de operação
JP4679963B2 (ja) 書き込みリファレンスメッシュを構成する方法およびシステム
US10754789B1 (en) Address translation for storage class memory in a system that includes virtual machines
US10402329B1 (en) Reducing traffic in hierarchical cache interconnects
KR20230116887A (ko) 네트워크 통신 링크의 요청 패킷들에 대한 태그들
US7424496B1 (en) Asymmetric coherency protection
BR102025009012A2 (pt) Agente de memória com reconhecimento de rede
JP2009193382A (ja) ブレードサーバシステムのキャッシュサーバ制御回路およびキャッシュサーバ制御方法
TW420961B (en) Ethernet switch and the switching method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080512

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101228

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees