データ記憶装置及び方法
データ記憶装置及び方法が開示される。本開示の例示的なデータ記憶装置は、キャッシュ層及び該キャッシュ層と通信可能なプロセッサを含む。該プロセッサはデータ記憶アクセスタイプに基づいてキャッシュ層イネーブルラインを介して前記キャッシュ層を動的にイネーブル又はディセーブルにする。
【発明の詳細な説明】
【背景技術】
【0001】
インターネット及びネットワークをベースとするデータセンターは、ネットワークから読み出すことができる情報をその頻繁なアクセス及び長期間の格納のために格納すべく大量のサーバを使用している。従来の企業の作業負荷(例えば、ERP(Electronic Resource Planning)、データベース、及びウェブサービス)と比較して、データ処理を中心とする新たな作業負荷は、大規模に(数十万もの物理及び/又は仮想サーバが)且つ多様なデータ(例えば、構造化データ、非構造化データ、リッチメディアデータ)について稼働するものである。これらの作業負荷は、次第に高度化する強力なプロセッサ能力(又はコンピュータ能力)を必要とするアルゴリズム(例えば、複数のデータソースからの動的で複雑な相互相関)を利用して、データから知識を抽出する。
【図面の簡単な説明】
【0002】
【図1】サーバベースの記憶用途で使用するための既知の大容量記憶アーキテクチャを示している。
【図2】本書で開示する技術に従って実施された例示的な大容量マイクロディスクデータ記憶アーキテクチャを示している。
【図3】本書で開示する技術に従って実施された例示的な大容量マイクロディスクブレードサーバを示している。
【図4】図2及び図3の例示的なマルチマイクロディスク基板を実施するために使用することができる例示的なデュアルインラインメモリモジュールである。
【図5】本書で開示する例示的な方法及び装置に従って図2及び図3の例示的なマイクロディスクを実施するために使用することができる例示的な3次元(3D)スタック構造である。
【図6】図2ないし図5の例示的なマイクロディスクの詳細図である。
【図7】図2ないし図6のマイクロディスク内のデータにアクセスするために使用することができる例示的な処理のフローチャートを示している。
【図8】図2ないし図6のマイクロディスク内の様々なキャッシュ層を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートを示している。
【図9】過去の(historical)データアクセスタイプ情報に基づいて図2ないし図6のマイクロディスクの使用中に様々なキャッシュ層を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートを示している。
【図10】図1の既知のデータストレージシステムに対する図3の例示的なマイクロディスクブレードサーバの性能及び電力の改善を示す棒グラフである。
【図11】図1の既知のデータストレージシステムの消費電力の内訳と比較した図3の例示的なマイクロディスクブレードサーバの様々なサブシステムの消費電力の内訳を示す棒グラフである。
【発明を実施するための形態】
【0003】
本願は、2010年3月8日出願の米国仮特許出願第61/311,744号を優先権の基礎とする国際特許出願である。
【0004】
本書で開示する例示的な方法、装置、及び製品は、ブレードサーバシステム等の大規模なデータストレージ用途で使用することが可能な、大容量で不揮発性のデータ記憶装置を実施するために使用することができる。本書で開示する例示的な大容量・不揮発性データ記憶装置は、主記憶領域を二重用途データ記憶装置(dual-use data stores)を用いた長期データ記憶領域(long-term data store area)と組み合わせることにより、既知の大容量データ記憶装置よりも縮小されたメモリ階層を用いて実施される。更に、例示的な大容量・不揮発性データ記憶装置は、キャッシュ層を用いることなく又は既知の大容量・不揮発性データ記憶技術よりも少数のキャッシュ層を用いて実施することができる。例示的な方法、装置、及び製品は、例えば、メモリスタ記憶技術、フラッシュ記憶技術、及び/又は相変化記憶(PCRAM)技術といった、半導体不揮発性高速データ記憶技術に関連して開示される。
【0005】
既知のデータセンターは典型的には、資本、性能、及び冷却に関してコスト効率の良い解決策を得るために5つ以上のデータストレージレベルの深い階層を用いる。例えば、頻繁にアクセスされないデータはテープ上にアーカイブされる。頻繁にアクセスされるデータ(データベースレコード等)は、機械式ハードディスク装置上に格納される。より頻繁にアクセスされるプログラム変数及びキャッシュ・ファイルは、メインメモリ上に格納される(例えば、キャッシュメモリ又はDRAM(Dynamic Random Access Memeory))。データウェアハウスの作業負荷は、デスクトップの作業負荷よりも、1回の操作について一層多くの外部的なデータの移動(例えば、異なるデータ記憶階層レベル間でのデータの移動)を行うものである。このため、データ記憶階層レベルの全長にわたってデータを移動させる際に大量の時間が消費される。
【0006】
データセンターを実施するための既知のアーキテクチャは幾つかの欠点を有している。例えば、複数の記憶階層レベルにデータを複製するために過剰な材料が必要となり、及びそれら複数の階層レベルを管理するために複雑な制御回路が必要となる。更に、複数のレベルのキャッシュ及びメモリによってアクセスレイテンシが追加され、このため、複数レベルの階層のトラバースは典型的には、著しい性能上の不利益を生じさせるものとなる。また、大量の階層レベルは、著しいエネルギー上の不利益を生じさせるものとなる。すなわち、各メモリ境界で有効(active)エネルギーが浪費され、キャッシュ漏洩(cache leakage)及びDRAMリフレッシュ電力により待機(idle)エネルギーが浪費される。現在のプロセッサチップは、幅の広い外部メモリ及びI/Oバスのために必要となるため、多数のピン並びに高価なパッケージ及びソケットを有している。
【0007】
既知のデータセンターアーキテクチャはまた、そのスケーリング(scaling:規模の拡大や縮小)及びメンテナンスに関して欠点を呈するものである。例えば、メモリの制約(例えば、殆どのデータがディスク上の高いアクセスレイテンシを有すること)上、スケーリングは困難である。また、多数の異種の構成要素によって、該構成要素の個数及び能力の平衡を保つのが困難となる。既知のデータセンターアーキテクチャは、異なるアプリケーションが作業負荷の多様な組を生成する場合であっても、静的な作業負荷平衡をとるものである。かかる既知のシステムは、作業負荷に変化が存在する場合には必ず、その物理的な再設計及び再平衡を行わなければならないものである。
【0008】
既知のデータデンターアーキテクチャはまた、信頼性に関する欠点を呈するものである。機械式ハードディスクの予期せぬ装置故障は、データの可用性及び/又は完全性の問題を呈するものとなる。更に、揮発性メモリ内のデータは、不揮発性記憶装置内にも格納(複製)しなければならず、又は停電後に再構築しなければならない。揮発性メモリの停電に対する耐性は、費用、時間、及びエネルギーの点で高価なものであり、且つかかる耐性はソフトウェアの複雑さを増大させるものとなる。
【0009】
既知のデータセンターアーキテクチャとは異なり、本書で開示する例示的な方法、装置、及び製品は、扁平レベルデータ記憶階層を有する大容量データ記憶装置(本書では(実施形態によってはナノ記憶装置としても知られる)マイクロディスクと称す)の実施を可能とする。該扁平レベルデータ記憶階層は、メインメモリ及び長期データ記憶装置の両者として機能するシングルレベル大容量データ記憶装置を各マイクロディスクに1つずつ配設することにより、(例えば比較的頻繁にアクセスされるデータを格納するために使用される)メインメモリと(例えば比較的頻繁にアクセスされないデータ又は長期データを格納するために使用される)データ記憶領域との間の境界を崩壊させる。更に、本例示的な方法、装置、及び製品は、比較的浅いキャッシュ階層(例えば既知のデータセンターよりも少いキャッシュレベル)を使用して又はキャッシュレベルを全く使用せずに、既知のデータセンターアーキテクチャと同等かそれ以上の性能を提供することを可能とする。本書で開示する例示的な方法、装置、及び製品は、電子機械式ハードディスク(例えば磁気記憶ディスク)を使用せず、その代わりに、メモリスタ、PCRAM、及び/又はフラッシュ等の大容量半導体データ記憶技術を使用して、メインメモリ及び長期不揮発性データ記憶領域として動作する二重用途データ記憶セルを実施する。このようにして、異なるデータ領域にわたってデータを複製する必要がなくなり(例えば、頻繁なアクセスに備えてメインメモリのデータ領域にデータを格納し、及びそれと同じデータをあまり頻繁でないアクセスに備えて長期データ記憶領域に格納することによりその複製を行う必要がなくなり)、及び電子機械式ハードディスクに伴う可動部品の個数を削減し又は撤廃し及びデータを常に不揮発性メモリに格納することにより、データ可用性及びデータ完全性に関する問題が削減される。
【0010】
各マイクロディスクの効率的な動作、及び既知のデータセンターアーキテクチャよりも一層効率的なネットワーク資源の使用を可能にすべく、本例示の複数のマイクロディスクの各々毎にローカルプロセッサが1つずつ配設され、該ローカルプロセッサは、該マイクロディスクのデータ記憶装置にとって高度に局所的なものでありかつ該データ記憶装置と一体化されたものである。このようにして、各マイクロディスクは、同動作に関して比較的一層多くの自律制御を実施することができ、これにより、データアクセス(例えばデータ書き込みアクセス又はデータ読み出しアクセス)を要求する他の外部プロセッサからの比較的少ない制御情報を含むメモリアクセス要求をネットワークを介して行うことが可能となる。
【0011】
例示的な実施形態によっては、扁平レベル不揮発性データ記憶装置(例えばマイクロディスク)は、ローカルプロセッサと通信する不揮発性データ記憶装置を同じパッケージ(例えばシングルソケット計算構造、3Dスタックチップ、メモリボード、デュアルインラインメモリモジュールその他)内に配設することにより実施される。該ローカルプロセッサ及び不揮発性データ記憶装置は、ローカルプロセッサが不揮発性データ記憶装置と近接して結合した扁平レベル不揮発性データ記憶システムを形成する。例えば、該扁平レベル不揮発性データ記憶システムにおいて、ローカルプロセッサが有し得るオンボードローカルプロセッサキャッシュ(例えばプロセッサ組込キャッシュ)を除き、該ローカルプロセッサと該不揮発性データ記憶装置との間で該ローカルプロセッサの外部に揮発性データ記憶装置(例えばSDRAMその他の揮発性データ記憶装置)は存在しない。例示的な実施形態によっては、ローカルプロセッサ(及びあらゆる内部のプロセッサ組込キャッシュ)が揮発性データ記憶装置による仲介を伴うことなく不揮発性データ記憶装置と通信する構成は、シングルレベル階層を形成する。ローカルプロセッサは、パッケージの外部通信インタフェイスと通信して該パッケージの外部の装置と通信することが可能である。該外部通信インタフェイスは、該パッケージの外部の装置の様々なタイプの通信インタフェイス(例えば、様々なメモリコントローラインタフェイス、ネットワークインタフェイス、他のメモリインタフェイス等)と通信するよう構成することが可能である。不揮発性データ記憶装置は、メモリスタデータ記憶装置、相変化ランダムアクセスメモリ、フラッシュメモリ、又はその他の適当な不揮発性データ記憶装置を使用して実施することが可能である。例示的な実施形態によっては、ローカルプロセッサは、不揮発性データ記憶装置にアクセスするための様々なデータアクセス性能レベルを提供するよう周波数スケーラブルなものとすることが可能である。例示的な実施形態によっては、扁平レベル不揮発性データ記憶装置(例えばマイクロディスク)は、複数の別の扁平レベル不揮発性データ記憶装置(例えば別のマイクロディスク)を有するストレージサーバシステム(例えばブレードサーバシステム及び/又はそのドーターボード)に通信可能な状態で接続されるよう構成され、ローカルプロセッサは、その不揮発性データ記憶装置と他の扁平レベル不揮発性データ記憶装置との間で情報を交換することが可能となる。更に、該ローカルプロセッサは、その不揮発性データ記憶装置と、該ストレージサーバシステムの外部のネットワーク装置(例えばクライアントコンピュータ)との間で、例えばローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を介して、情報を交換することが可能である。
【0012】
例示的な実施形態によっては、本書で開示する例示的な方法、装置、及び製品は、扁平レベル不揮発性データ記憶装置(マイクロディスク)の不揮発性データ記憶装置からの距離のレベルが増大した、階層をなす更なるコンピューティング要素(又はプロセッサ要素)を提供する。例えば、複数のマイクロディスクを有するドーターボード(例えばデータストレージサーバの記憶容量を拡張させるためのメモリボード)又はメモリモジュール(例えばデュアルインラインメモリモジュール)に、該マイクロディスクのローカルプロセッサに対する第2レベル計算階層を形成する計算要素(例えばドーターボードプロセッサ)を配設することが可能である。かかる第2レベル計算階層は、その対応するマイクロディスクの動作を制御し、調整し、及び/又は監視するように構成することが可能であり、及び/又は、マイクロディスク上に存在するデータに関連する計算を増強し、該計算の負荷を軽減し、及び/又は該計算に直接関与するように構成することが可能である。更に、ドーターボード又はメモリモジュールがサーバ(例えばブレードサーバ)にプラグインされる場合、該サーバは、第3レベル階層計算要素(例えばサーバプロセッサ)を有することが可能であり、該第3レベル階層計算要素は、例えば、その対応するマイクロディスクを有する対応するドーターボード又はメモリモジュールに関連する動作を制御し、調整し、監視し、増強し、該動作の作業負荷を軽減し、及び/又は該動作に直接関与するものとなる。他の例示的な実施形態では、本書で開示する例示的な方法、装置、及び製品に関連して、複数レベルの計算要素階層を実施する他の態様を用いることも可能である。
【0013】
実施形態によっては、本書で開示する方法、装置、及び製品を、大規模データウェアハウス用途で用いることが可能である。ネットワークベースコンピューティングが様々な用途へと拡張するにつれて、該大規模データウェアハウス用途の利用及び大きさは成長し続ける。かかるネットワークベースコンピューティングの用途には、インターネットベースのデータストレージ、ネットワークコミュニティのコラボレーション用途、ソーシャルネットワーキングサービス、インターネットマルチメディアストリーミング等が含まれる。上述の既知のデータストレージ技術及びその他の既知のデータストレージ技術は、(上述したような)幾つかの欠点を呈するものであり、かかる欠点のため、かかるソリューションは、消費電力、物理的な空間、及び性能の点で、比較的効率の悪いものとなる。本書で開示する例示的な方法、装置、及び製品は、既知のデータストレージ技術よりも一層効率の良い消費電力、一層小さな物理的空間要件、及び一層高いデータアクセス性能を可能とする削減された(例えば扁平化された)メモリ階層を有する不揮発性半導体データストレージ技術を用いて実施されたデータストレージソリューションを提供することにより、かかる非効率性を克服する。
【0014】
図1を参照すると、データセンターアーキテクチャで用いるための既知のデータサーバ100は、複数のメモリ階層レベルを含んでいる。該複数のメモリ階層レベルは、(レイヤ1キャッシュ102a及びレイヤ2キャッシュ102bを有する)キャッシュレベル102、メモリコントローラレベル103、メインメモリ104、及びデータストア106を含む。該メインメモリ104は、ネットワーク108を介して頻繁にアクセスされる(例えば読み出され及び/又は書き込まれる)データを格納するために使用される。該データストア106は、長期の不揮発性記憶のためにデータを格納するために使用される。典型的には、メインメモリ104内の頻繁にアクセスされるデータは、データストア106との間での読み書きに伴うより大きなレイテンシのため、該データストア106に直ちに書き込まれることはない。しかし、何らかの時点で該メインメモリ104からのデータがデータストア106に書き込まれ、その時点で、該データは、メインメモリ104及びデータストア106に二重に存在し、場合によっては、該データは、更にキャッシュ102に格納されることにより三重に存在することになる。
【0015】
図1に示すように、メインメモリ104は、揮発性ダイナミックランダムアクセスメモリ(DRAM)を用いて実施され、データストア106は、不揮発性電子機械式メモリ(例えば磁気ハードディスクドライブ)を用いて実施される。このように、図1に示すような既知のシステムでは、様々な記憶技術を使用してメインメモリ及びデータ記憶領域が実施される。これは、かかる様々な技術の速度及びコストに起因することが多い。例えば、DRAM技術は、磁気ハードディスクドライブ技術よりも速いアクセスタイムを有するが、DRAM技術はまた、磁気ハードディスクドライブ技術よりも1メガビット(Mbit)あたりの単価が高いものである。このため、データストア106に必要とされる一層大きなデータ記憶領域は、一層安価な(しかし一層低速な)不揮発性電子機械式技術を使用して実施され、一方、メインメモリ104を実施するために必要とされる一層高速な主記憶装置は、一層高速な(しかし一層高価な)揮発性DRAM技術を使用して実施される。
【0016】
図2を参照すると、本書で開示される例示的な教示によるマルチマイクロディスク基板200の一例が示されている。図示の一例では、マルチマイクロディスク基板200は、複数のマイクロディスクデバイスを含み、該複数のマイクロディスクデバイスの各々は、マイクロディスク202と類似したもの又はそれと同一のものである。実施形態によっては、マイクロディスク202等のマイクロディスクは、ナノ記憶装置とも呼ばれるものである。マイクロディスク202(及びマルチマイクロディスク基板200の他のマイクロディスクの各々)は、不揮発性半導体データストア204を含む大容量データ記憶装置である(例えば、データストア204は、帯域幅1ギガバイト(GB)/sのアクセシビリティで100GB又はそれ以上の記憶容量を有することができる)。(長期データ記憶のための)データストア106とは別個に(頻繁にアクセスされるデータのための)メインメモリ104を有する図1の既知のデータサーバ100とは異なり、図2のマイクロディスク202は、頻繁にアクセスされるデータ及び長期記憶データの両方を格納すべく二重用途態様でデータストア204を使用する。すなわち、マイクロディスク202は、複数のデータビットセルを有しており(例えば1つのデータビットセルが1ビットのデータを格納することができ)、該複数のデータビットセルの各々が二重用途態様で動作する。例えば、例示的な二重用途データビットセル206内に格納されている1つのビット値を、頻繁にアクセスされるデータとして二重用途データビットセル206から読み出し、及び/又は該ビット値を、長期データ記憶領域に複製することなく、長期にわたり(例えば頻繁にはアクセスされない及び/又は頻繁には変更されない)不揮発性態様で該二重用途データビットセル206内に格納したままにする(すなわち存続させる)ことが可能である。このようにして、図2のマイクロディスク202は、頻繁にアクセスされるデータのためのデータ記憶領域とは別個に長期記憶のためのデータ記憶領域を必要としないため、材料の使用及び物理的空間要件に関して一層高い効率を達成するものとなる。これはまた、複製データを格納することが多い2つの別個のデータ記憶領域(例えば図1のメインメモリ104及びデータストア106)を給電する必要をなくすため、既知のデータ記憶アーキテクチャよりもデータ記憶のための消費電力が少なくなる。
【0017】
図2の例示的な実施形態では、データストア204は、異種の記憶装置の組み合わせ(例えばメインメモリ104用のSDRAM及び長期データ記憶装置用の電子機械式ハードディスクドライブ)を使用して実施される図1の既知のデータサーバ100とは異なり、同種のデータ記憶技術(例えば、全体的にメモリスタ技術を使用し、全体的にPCRAM技術を使用し、全体的にフラッシュ技術を使用し、又は全体的にあらゆる他の適当な記憶技術を使用して実施された、単一のICダイ又は1つ若しくは2つ以上の積層ICダイ)を使用して実施される。該データストア204の同種のデータ記憶技術は、マイクロディスク202が、メインメモリ104の技術及びデータストア106の技術のための異なるタイプのメモリインタフェイス(例えばメインメモリ104のためのSDRAMインタフェイス及びSDRAMメモリ用のタイミング回路、並びに電子機械式ハードディスク記憶装置のためのハードディスクドライブインタフェイス)を必要とする既知のデータサーバ技術よりも、一層少ないメモリインタフェイス回路を有することを可能にする。このマイクロディスク202のメモリインタフェイス回路の削減により、低消費電力及び低データアクセスレイテンシ(ひいてはデータアクセス性能の向上)が可能となる。
【0018】
図2の例で示したような例示的な実施形態によっては、マイクロディスク202は、ネットワークバス210を介してネットワークインタフェイス208と通信する。また、それと同じ例示的な実施形態又は他の例示的な実施形態において、マイクロディスク202は、ディスク間通信バス212を介して互いに通信する。例示的な実施形態によっては、該ディスク間通信バス212は、各マイクロディスク202の同一の内部周波数(例えば1GB/s)で動作することができる。該マイクロディスク202は、要求側のネットワーク装置(図示せず)からのデータアクセス要求を受信し、前記ネットワークインタフェイス208を介して該要求側のネットワーク装置へデータを通信する。かかるネットワーク装置は、ローカルネットワーク又はワイドエリアネットワーク(例えばインターネット又はプライベートネットワーク)を介してマイクロディスク202(又は該マイクロディスク202を含むサーバ)と通信可能な状態にあるクライアントコンピュータとすることが可能である。
【0019】
図2に示す例では、マイクロディスク202には、データストア204と通信可能な状態にあるローカルプロセッサ214が配設されている。該ローカルプロセッサ214は、該マイクロディスク202が、既知のデータサーバソリューションのメインメモリ及びデータ記憶領域(例えば図1のメインメモリ104及びデータストア106)よりも一層高い自律性をもって動作することを可能にする。データストア(例えばデータストア204)と緊密に又は近接して統合された態様でローカルプロセッサ214等の計算ロジックを提供することにより、該マイクロディスク中の計算ロジックは、ネットワークを介して受信したデータアクセス要求に応じてマイクロディスク内の記憶技術に固有のタイミング及びデータアクセス操作を生成し処理することができる。このようにして、マイクロディスク202へのデータアクセスに関連するネットワーク通信は、様々な記憶技術に固有の特徴、能力、又は記憶装置タイミング要件に関連する大量の記憶装置制御信号又はコマンドをかかるネットワーク通信が伝送する必要性を低減させることにより、一層効率の良い態様でネットワーク資源を使用することが可能となる。更に、データアクセスを要求するネットワーク装置は、マルチマイクロディスク基板200で使用されている特定のデータ記憶技術を意識し又は認識している必要がない。また、ローカルプロセッサ214等の計算ロジックを各マイクロディスク202に提供することにより、同一のマルチマイクロディスク基板(例えばマルチマイクロディスク基板200)上に様々な記憶技術の複数のマイクロディスクを混在させることが可能となる。これは、各マイクロディスクのローカルプロセッサがその記憶技術に固有のタイミングを使用してそれ自体のデータアクセス操作を開始し実行することができるからである。
【0020】
マルチマイクロディスク基板200の各マイクロディスクのローカルプロセッサ(例えばローカルプロセッサ214)はまた、異なるマイクロディスク間でそれらの作業負荷を動的に平衡させることを可能にする。例えば、マイクロディスク202のローカルプロセッサ214は、ディスク間通信バス212を介して互いに通信し、及びかかる通信を使用して(例えばマイクロディスク間データ転送を行って異なるマイクロディスク間でデータを分散させる(offload)ことにより)異なるマイクロディスク202間でそれらの作業負荷を平衡させることができる。
【0021】
図示の例では、ローカルプロセッサ214は、複数のデータアクセス及び/又はデータメンテナンス要求を実質的に同時に処理するキャッシュコヒーレント・マルチスレッドプロセッサである。更に、ローカルプロセッサ214は、周波数及び電圧スケーリング(例えば、100MHz〜1GHz(又はそれ以上)の一定の周波数範囲内でのスケーリング)をサポートするよう実施することが可能である。
【0022】
例示的な実施形態によっては、ローカルプロセッサ214は、データストア204とは別個の集積回路ダイ上で実施して該データストア204ダイに(例えば、光学的又は電気的なシリコン貫通バイア(TSV:Through Silicon Via)、光学的又は電気的なワイヤボンディング、又は光学的又は電気的な基板レベルの外部的なICパッケージの相互接続を介して)通信可能な状態で接続することが可能であるが、別の実施形態では、ローカルプロセッサ214は、データストア204と同じ集積回路ダイ上に一体的に形成することが可能である。各マイクロディスク202に単一のローカルプロセッサ214のみを示したが、代替的に、各マイクロディスク202に複数のプロセッサ又は複数のプロセッサコア(その各々はマルチスレッド処理能力を有することが可能)を配設することが可能である。例えば、2つ又は3つ以上の積層不揮発性データストアダイを使用してマイクロディスク202が実施される実施形態では、その各データストアダイ中に別個のプロセッサ又はプロセッサコアを一体的に形成して、該データストアダイに対応するデータアクセス要求を処理させ、及び該データストアダイに対応するデータアクセス及びメモリメンテナンス処理を実行させることが可能である。
【0023】
図示の例では、マイクロディスク202にはまた、データストア204よりも短いアクセスレイテンシを有するキャッシュ216が配設される。該キャッシュ216は、1つ又は2つ以上のキャッシュ層(例えば図6のキャッシュ層604a-604c)を含むことが可能である。例えば、ローカルプロセッサ214が十分に低速な実施形態では、その性能はデータストア204のレイテンシ又は帯域幅による影響を大きく受けることはなく、キャッシュ216は、たった1レベルのキャッシュで実施することが可能であり、該キャッシュは、プライベートキャッシュ又は共有キャッシュとすることが可能である。例示的な実施形態によっては、キャッシュ216には、複数のキャッシュ層を配設することが可能であり、その各キャッシュ層は必要に応じて個々に及び動的にイネーブルにし(例えば電源を投入し)又はディセーブルにする(例えば電源を遮断し又はゲートをオフにする)ことが可能である。かかる個々のキャッシュ層の動的なイネーブル/ディセーブルは、異なるメモリアクセス性能を提供するためにメモリクロックが変更される場合に有利に使用することが可能である。例えば、データストア204のアクセスレイテンシが性能に与える影響が最小限となり又は無くなるように、メモリアクセスクロックが十分にダウンスケーリングされる場合に、キャッシュ216のキャッシュ層の全てをディセーブルにし及びバイパスして、ローカルプロセッサ214がデータストア204に直接アクセスすることができるようにすることが可能である。1つ又は2つ以上のキャッシュ層(例えば、図6のキャッシュ層604a-604cのうちの1つ又は2つ以上)をディセーブルにして該1つ又は2つ以上のキャッシュ層へ供給される電力を除去し又はゲートオフするために、該1つ又は2つ以上のキャッシュ層の電源を完全に遮断するのに先立ち、ライトバック処理を使用して該1つ又は2つ以上のキャッシュ層からデータストア204へダーティデータをライトバックする。更に、ディセーブルされた(ひいては電源が遮断された)1つ又は2つ以上のキャッシュ層は、それらが再びイネーブルにされる(ひいては電源が投入される)まで、新しいデータを格納するために使用されない。メモリアクセスクロックが一層高くスケーリングされた際に、キャッシュ216の1つ又は2つ以上のキャッシュ層を選択的にイネーブルにして、例えば対応するマイクロディスク202に関する許容可能なメモリアクセス性能を維持することが可能である。
【0024】
実施形態によっては、マイクロディスク202により受信された書き込みアクセス要求率に基づいてキャッシュ216の1つ又は2つ以上のキャッシュ層を動的にイネーブルにし又は動的にディセーブルにすることが可能である。本書で開示する例示的な技術は、書き込みアクセス率を使用して、不揮発性データストア204等の不揮発性データストアの信頼性及び耐用寿命を維持することが可能である。すなわち、図示の例の不揮発性データストア204は、単一データビットセル(例えば二重用途データビットセル206)が耐えることができると共にそこに格納されるデータの信頼性を保証することができる書き込みサイクルの量を示す書き込み耐久特性を有する。例えば、様々な技術タイプの不揮発性フラッシュメモリは、5000(1k)〜1000000(1M)書き込みサイクルの範囲の書き込み耐久性を有する。不揮発性メモリがその関連する書き込み耐久性しきい値を越えると、そこに格納されているデータはもはや精確であると信頼できないものとなる。
【0025】
図示の実施形態の不揮発性データストア204の書き込み耐久特性を維持するため、ひいてはマイクロディスク202の耐用寿命を延ばすために、本書で開示する例は、書き込みアクセス率しきい値及び/又は書き込み対読み出し(write-to-read)比しきい値を使用することができる。書き込みアクセス率しきい値は、1秒(又は他の時間の単位、例えば、ミリ秒、分その他)あたりの書き込みアクセスの割合を示し、これを越えた場合には、ローカルプロセッサ214がキャッシュ216の1つ又は2つ以上のキャッシュ層を動的にイネーブルにする。監視中のマイクロディスク202の書き込みアクセス率が、前記書き込みアクセス率しきい値を下回った場合には、ローカルプロセッサ214は、1つ又は2つ以上のキャッシュ層をディセーブルにすることが可能である。
【0026】
書き込み対読み出し比しきい値は、特定期間にわたる読み出しアクセスに対する書き込みアクセスの比を示すものである。実施形態によっては、マイクロディスク202の測定された書き込み対読み出し比が前記書き込み対読み出し比しきい値を下回っている場合に、ローカルプロセッサ214が、不揮発性データストア204に対する最近のアクセスが少数の書き込み要求を含んでいたことに基づいて、キャッシュ216の1つ又は2つ以上のキャッシュ層を動的にディセーブルにすることが可能である。マイクロディスク202の測定された書き込み対読み出し比が前記書き込み対読み出し比しきい値を越えた場合には、ローカルプロセッサ214は、不揮発性データストア204に対する最近のアクセスが所望回数よりも多くの書き込み要求を含んでいたことに基づいて、キャッシュ216の1つ又は2つ以上のキャッシュ層を動的にイネーブルにすることが可能である。
【0027】
マイクロディスク202の動作中に、書き込みアクセス率及び/又は書き込み対読み出し比を監視し、及びそれら監視された値に基づいて1つ又は2つ以上のキャッシュ層を動的にイネーブルにすることにより、不揮発性データストア204の記憶セル(例えば、二重用途データビットセル206)の信頼性及び寿命を悪化させ又は低下させ得る量の書き込みに耐え又はかかる書き込みを受けることから該不揮発性データストア204を保護することが可能となる。すなわち、1つ又は2つ以上のキャッシュ層がイネーブルにされた際に、不揮発性データストア204の代わりに該1つ又は2つ以上のキャッシュ層に対して書き込みが最初に行われる。最終的に又はそれに続いてライトスルー操作を用いて、比較的長期であるとみなされたあらゆるキャッシュ済みデータを不揮発性データストア204にライトスルーすることが可能であり、一方、短期の(例えば頻繁に変化している)キャッシュ済みデータは、不揮発性データストア204にライトスルーしないことが可能である。このようにして、本開示の例を使用して、頻繁に変化するデータが不揮発性データストアに打撃を与えることを防止し、ひいては不揮発性データストア204等の不揮発性データストアの書き込み耐久特性を保護することが可能となる。
【0028】
実施形態によっては、複数の書き込みアクセス率しきい値及び/又は複数の書き込み対読み出し比しきい値を定義し、それらのしきい値を越えたか否かに基づいてキャッシュ216内の様々なキャッシュ層を選択的にイネーブル/ディセーブルにすることが可能である。例えば、3層キャッシュ構造では、第1の書き込みアクセス率しきい値(又は第1の書き込み対読み出し比しきい値)を使用して第1のキャッシュ層をイネーブル/ディセーブルにすべきときを制御し、第2の書き込みアクセス率しきい値(又は第2の書き込み対読み出し比しきい値)を使用して第2のキャッシュ層をイネーブル/ディセーブルにすべきときを制御し、及び第3の書き込みアクセス率しきい値(又は第3の書き込み対読み出し比しきい値)を使用して第3のキャッシュ層をイネーブル/ディセーブルにすべきときを制御することが可能である。
【0029】
実施形態によっては、しきい値ヒステリシス技術を使用して、カオス的振動態様でキャッシュ層を繰り返しイネーブル/ディセーブルにするのを回避することが可能である。一実施形態のしきい値ヒステリシス技術では、1つ又は2つ以上のキャッシュ層を所定のしきい値期間にわたりイネーブル又はディセーブルにした後、該1つ又は2つ以上のキャッシュ層のイネーブル又はディセーブル状態を続いて変化させるべきか否かを再考する。かかる例示的なしきい値ヒステリシス技術では、過去のデータアクセスタイプ(例えば読み出し又は書き込みアクセスタイプ)が一定期間にわたりそれぞれの読み出し及び書き込みカウントを用いて監視され追跡される。次いで、ローカルプロセッサ214が(例えば1つ又は2つ以上の書き込みアクセス率しきい値及び/又は1つ又は2つ以上の書き込み対読み出し比しきい値に基づいて)該過去のアクセスタイプ情報を解析して、1つ又は2つ以上のキャッシュ層を後続の一定時間(上述の過去のアクセスタイプ情報を収集する期間と同じにすることが可能)にわたりディセーブル/イネーブルにすることが可能である。次いで、該プロセスを繰り返して、別の一組の過去のアクセスタイプ情報を収集し、続いて、1つ又は2つ以上のキャッシュ層のイネーブル又はディセーブル状態を変更すべきときを再評価することが可能である。
【0030】
他の例示的なしきい値ヒステリシス技術は、第1のしきい値に基づいて(例えば第1の書き込みアクセス率しきい値又は第1の書き込み対読み出し比しきい値を越えたことに基づいて)1つ又は2つ以上のキャッシュ層をイネーブルにし、及び第2のしきい値に基づいて(例えば第2の書き込みアクセス率しきい値又は第2の書き込み対読み出し比しきい値を下回ったことに基づいて)該キャッシュ層をディセーブルにすることを含む。
【0031】
上述のようにしきい値ヒステリシス技術を使用する例では、キャッシュ層のイネーブル又はディセーブル状態は、アクセスの度にキャッシュ層のイネーブル/ディセーブル状態を変更したり再評価したりするのではなく、複数の後続のデータアクセスについては同じ状態に維持される。このように、複数の後続のデータアクセスがキャッシュ済みデータに依存しないため、長期にわたるキャッシュ層への電力供給を排除し又はゲートオフすることにより該キャッシュ層をディセーブルにすることが可能となり、この場合、該ディセーブルにされたキャッシュ層からの内容の消去(例えば内容の消失)の結果として生じる性能劣化はほとんど無く又は全く無い。キャッシュ層のイネーブル又はディセーブル状態の変更に続く複数の後続のデータアクセスは、複数の単一読み出しアクセス、複数の単一書き込みアクセス、複数のバーストモードアクセス(この場合には幾つかのデータロケーションにおけるデータは単一の要求に基づいてアクセスされる)、及び/又は1つ又は2つ以上の単一読み出しアクセス、1つ又は2つ以上の単一書き込みアクセス、及び/又は1つ又は2つ以上のバーストモードアクセスの任意の組み合わせを含むことが可能である。
【0032】
上述したようなキャッシュ層の動的なディセーブル処理は、ストリーミング用途、メディアデコーディング用途、又は継続的、連続的、疑似継続的、疑似連続的、又は散発的に大量のデータを読み出して特定のタスク、操作、又は処理を達成する他のあらゆる用途で有利に用いることが可能である。読み出しアクセスは、図2の不揮発性データストア204等の不揮発性メモリの書き込み耐久特性を大きく劣化させることはないので、読み出し動作は、キャッシュ216を使用することなく不揮発性データストア204に対して直接行うことが可能である。アクセスパターンは主に書き込み動作となるよう変化するので、キャッシュ層のイネーブル/ディセーブル状態の再評価は、高速又は大量の書き込み動作時に不揮発性データストア204に対する過度の書き込みアクセスを防止し又は低減させるように、キャッシュ216の1つ又は2つ以上のキャッシュ層をイネーブルにすることに通ずるものとなる。
【0033】
本書で開示する図示の例では、サーバシステム(例えば図3のマイクロディスクブレードサーバ300)内の各マイクロディスクは、該サーバシステム内の他のマイクロディスクによりイネーブルにされたキャッシュ層の量にかかわらず、一定量のキャッシュ層を選択的にイネーブルにすることが可能である。このようにして、各マイクロディスクは、その電源使用効率及び/又は性能を他のマイクロディスクとは無関係に最適化することが可能である。
【0034】
図3は、図2のマルチマイクロディスク基板200及びマイクロディスク202を用いて実施された例示的な大容量マイクロディスクブレードサーバ300を示しており、該マルチマイクロディスク基板200は、そのネットワークインタフェイス208を介して該マイクロディスクブレードサーバ300の物理ソケット(図示せず)にプラグインされ又は接続されるドーターボードとして実施されている。例示的な実施形態によっては、図4に示すようなデュアルインラインメモリモジュール400を使用して該マルチマイクロディスク基板200を実施することが可能である。該マルチマイクロディスク基板200と該マイクロディスクブレードサーバ300との接続は、電気的又は光学的なものとすることが可能である。
【0035】
マイクロディスクブレードサーバ300は、マルチマイクロディスク基板200と実質的に類似し又はそれと同一の複数の他のマルチマイクロディスク基板を含み、該マルチマイクロディスク基板の各々は、マイクロディスクブレードサーバ300のそれぞれの光学的又は電気的な物理ソケットにプラグインされ又は接続される。このように、該マイクロディスクブレードサーバ300上の単一のマルチマイクロディスク基板ソケットは、該マイクロディスクブレードサーバ300を複数のマイクロディスク(例えば複数のマイクロディスク202)にインタフェイスすることを可能にする。このため、追加のマイクロディスク(例えばマイクロディスク202)をマルチマイクロディスク基板(例えばマルチマイクロディスク基板200)にプラグインすることにより、又は追加のマルチマイクロディスク基板(例えば実質的にマルチマイクロディスク基板200と類似し又は同一のもの)をマイクロディスクブレードサーバ300に追加することにより、該マイクロディスクブレードサーバ300のデータ記憶容量を拡張させることが可能である。
【0036】
マイクロディスクブレードサーバ300は、マルチマイクロディスク基板(例えばマルチマイクロディスク基板200)の全てを光学的又は電気的に互いに接続し及びネットワークインタフェイス302を介して外部ネットワークへ接続するネットワークを含む。例示的な実施形態によっては、該マイクロディスクブレードサーバ300の該ネットワークは、ファットツリートポロジーを使用して一組のマルチマイクロディスク基板を接続して実施することが可能であり、及び完全な二分帯域幅を提供することが可能である。
【0037】
マイクロディスクブレードサーバ300には、接続された各マルチマイクロディスク基板(例えばマルチマイクロディスク基板200)と各マルチマイクロディスク基板から熱を消散させるためのアルミニウム板304とに熱的に結合された集合冷却システムを配設することが可能である。
【0038】
マイクロディスク202は、マルチマイクロディスク基板200に半田付けすること、又はマルチマイクロディスク基板200上のソケットを介して接続することが可能である。その相互接続は、光学的又は電気的なものとすることが可能である。図示の例では、マルチマイクロディスク基板200の各マイクロディスク202に対する実装帯域幅は、配線本数の削減および信号経路の単純化を可能とすべく比較的狭くなっている。例示的な実施形態によっては、マイクロディスク202は、クラスタ内での高速・広帯域幅の通信及び一層低速の大域的通信のために、マルチマイクロディスク基板200上でクラスタ化することが可能である。マルチマイクロディスク基板200には、クラスタ間通信及びクラスタ・ネットワークインタフェイス間通信を可能とすべく、クラスタ間リンクを配設することが可能である。
【0039】
図3に示す例では、マイクロディスク202は3Dダイスタックとして示されており、この場合、データストア204は複数の積層ICダイ306から形成され、ローカルプロセッサ214及びキャッシュ216は、該積層ICダイ306の各々に電気的又は光学的なシリコン貫通バイア(TSV)308を使用して接続されている。図5には、例示的な3Dスタックチップ構成500におけるマイクロディスク202の斜視図が示されている。図5に示す例では、上部ダイ502上にローカルプロセッサ214及びキャッシュ216が形成されている。該上部ダイ502は、データストアICダイ306上に積層されており、該データストアICダイ306はパッケージ基板504上に積層されている。このため、図示の例では、ローカルプロセッサ214及びキャッシュ216は同一のシリコン層(例えば上部ダイ502)上に形成され、不揮発性データストア204は、該ローカルプロセッサ214及びキャッシュ216を含む該シリコン層とは別の1つ又は2つ以上のシリコン層(例えば積層ICダイ306)上に形成されている。図示の例では、パッケージ基板504は、ボールグリッドアレイ(BGA)インタフェイスを含むが、他のあらゆるタイプのパッケージングを用いることが可能である。
【0040】
図3に示す例に戻ると、マイクロディスク202には、該マイクロディスク202を外部回路(例えばマルチマイクロディスク基板200)にインタフェイスする物理インタフェイス310が配設されている。該物理インタフェイス310は、光学的コネクタ又は電気的コネクタを用いて実施することが可能である。図示の例では、該物理インタフェイス310は、マイクロディスク202を1つ又は2つ以上の電源ライン、クロック信号、及びデータ通信インタフェイスにインタフェイスする。例示的な実施形態によっては、PCI Expressインタフェイスを使用してマイクロディスク202をマルチマイクロディスク基板200にインタフェイスすることが可能である。例示的な実施形態によっては、物理インタフェイス310は、チップパッケージインタフェイス(例えば図5のパッケージ基板504のBGAインタフェイス)とすることが可能であり、及びマイクロディスク202は、マルチマイクロディスク基板200上に半田付けすることが可能である。他の例示的な実施形態では、物理インタフェイス310は、マイクロディスク202をマルチマイクロディスク基板200上に取り外し可能にプラグインすることが可能となるように、ソケットインタフェイスとすることが可能である。
【0041】
図6は、図2ないし図5のマイクロディスク202の例示的な詳細図である。以下で説明するマイクロディスク202の様々な部分は、単一のICダイ内の集積回路として、又は別個のICダイ内の集積回路として、実施することが可能である。追加的又は代替的に、マイクロディスク202は、1つ又は2つ以上の特定用途集積回路(ASIC)、1つ又は2つ以上のプログラマブルロジックデバイス(PLD)、1つ又は2つ以上のフィールドプログラマブルロジックデバイス(FPLD)、個別論理素子、ハードウェア、ファームウェアその他の任意の組み合わせを用いて実施することが可能である。また、マイクロディスク202は、上述の技術の任意の組み合わせ、例えば、ファームウェア、ソフトウェア、個別論理素子、及び/又はハードウェアの任意の組み合わせとして実施することが可能である。以下では、マイクロディスク202は、図6に関連して説明するが、他の例示的な実施形態は、追加の及び/又は代替的な構造を含むことが可能である。例えば、図6に示すマイクロディスク202の幾つかの部分は、除去すること又は他の部分と結合させることが可能である。
【0042】
図6を詳細に参照すると、マイクロディスク202には、データストア204及びローカルプロセッサ214が配設されている。上述のように、データストア204は、1つ又は2つ以上のICダイ306(図3及び図4)を使用して実施することが可能である。このため、例示的な実施形態によっては、データストア204は、図6に示すマイクロディスク202のローカルプロセッサ214及びその他の部分とは別個に1つ又は2つ以上のICダイ上で実施することが可能である。代替的に、データストア204、ローカルプロセッサ214、及びマイクロディスク202のその他の部分を、同一のICダイ上に形成することが可能である。
【0043】
マイクロディスク202の様々な部分に電力を供給するために、マイクロディスク202には電源602が配設される。該電源602は、物理インタフェイス310から補助電力を受容することが可能であり、及びマイクロディスク202の様々な部分に供給するための電力を調整することが可能である。図5の3Dスタックチップ500等の3Dスタックを使用してマイクロディスク202が実施される例示的な実施形態では、電源602は、単一のダイ(例えば図5の上部ダイ502)上に配設することが可能であり、及び電源602は、該ダイ内の複数の回路へ、及びTSV(例えば図3のTSV308)を使用して3Dスタックチップ500の他のダイ(例えば図3及び図5に示すデータストアICダイ306)へ、電力を供給することが可能である。
【0044】
異なるレベルのメモリアクセス性能を可能にすべく、マイクロディスク202には複数のキャッシュ層が配設され、該複数のキャッシュ層の各々は選択的にかつ別個にイネーブルにし及び/又は選択的にかつ別個にディセーブルにすることが可能である。3つのかかるキャッシュ層が、選択的にイネーブルにすることが可能なレイヤ1キャッシュ604a、選択的にイネーブルにすることが可能なレイヤ2キャッシュ604b、及び選択的にイネーブルにすることが可能なレイヤ3キャッシュ604cとして図6に示されている。図示の例では、該選択的にイネーブルにすることが可能なキャッシュ層604a-604cは、図2及び図3及び図5のキャッシュ216を形成するものである。該キャッシュ層604a-604cを選択的及び/又は動的にイネーブル/ディセーブルにすることが可能な能力により、階層的に扁平化することが可能な(hierarchically flattenable)な不揮発性データ記憶装置としてマイクロディスク202を構成することが可能となる。かかる階層的に扁平化可能なアーキテクチャでは、キャッシュ層604a-604cの各々を漸進的にディセーブルにして、ローカルプロセッサ214と不揮発性データストア204との間のメモリ階層を漸進的に扁平化し又は削減することが可能である。キャッシュ層604a-604cの全てがディセーブルにされたとき、ローカルプロセッサ214と不揮発性データストア204との間のメモリ階層が完全に扁平化されて、ローカルプロセッサ214がキャッシュ層604a-604cを使用することなく該キャッシュ層604a-604cをバイパスして(メモリコントローラ622を介して)不揮発性データストア204に直接アクセスすることが可能となる。
【0045】
本書で開示する図示の例では、サーバシステム(例えば図3のマイクロディスクブレードサーバ300)内の各マイクロディスク(例えばマイクロディスク202)は、該サーバシステム内の他のマイクロディスク内のイネーブルにされた一組のキャッシュ層とは無関係に選択的にイネーブルにされる一組のキャッシュ層(例えば選択的にイネーブルにすることが可能なキャッシュ層604a-604c)を有することが可能である。例えば、第1のマイクロディスクは、イネーブルにされた1つのキャッシュ層を有することが可能であり、一方、第2のマイクロディスクは、イネーブルにされた2つのキャッシュ層を有することが可能である。このようにして、各マイクロディスクの電力使用効率を、そのデータ記憶/アクセス用法に基づいて、他のマイクロディスクとは無関係に最適化することが可能である。例示的な実施形態によっては、選択的にイネーブルにすることが可能なキャッシュ層604a-604cは、設計時又は製造時に選択的にイネーブル/ディセーブルにすることが可能であり、一方、別の例示的な実施形態では、選択的にイネーブルにすることが可能なキャッシュ層604a-604cは、実行時及び/又は設計時又は製造時に選択的にイネーブル/ディセーブルにすることが可能である。
【0046】
選択的にイネーブルにすることが可能なキャッシュ層604a-604cを選択的に及び別個にイネーブルにするために、マイクロディスク202には、選択的にイネーブルにすることが可能なキャッシュ層604a-604cにそれぞれ接続されるゲートドライバ606a-606cが配設される。更に、該マイクロディスク202には、ローカルプロセッサ214と該ゲートドライバ606a-606cのイネーブル入力との間に接続されるキャッシュ層イネーブルライン608が配設される。このようにして、ローカルプロセッサ214は、ゲートドライバ606a-606cのそれぞれをイネーブルにして、電源602から選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの選択されたものへの電力供給を可能にすることにより、選択的にイネーブルにすることが可能なキャッシュ層604a-604cの何れも選択的にイネーブルにすることが可能となる。
【0047】
選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちイネーブルにされていないものをバイパスすることを可能にするために、マイクロディスク202にキャッシュ層バイパスバス610が配設される。選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの何れもイネーブルにされていない例示的な実施形態では、キャッシュ層バイパスバス610は、ローカルプロセッサ214とデータストア204との間の(メモリコントローラ622を介した)直接接続として働き、これによりキャッシュ操作を全く介在することなくデータストア204に対してデータアクセスを行う(及び必要に応じて電源が遮断されたキャッシュと共に動作する)ことが可能となる。選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つ又は2つ以上がイネーブルにされると、キャッシュ層バイパスバス610は、ディセーブルされているキャッシュ層をバイパスすると共に該選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つ又は2つ以上のイネーブルにされたものを介してメモリアクセスを行うことを可能にする。
【0048】
更に、キャッシュ間データフローを可能にすべく、マイクロディスク202には、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの隣接するそれぞれの間にキャッシュ間バス612が配設される。選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つがディセーブルにされると、それに対応するキャッシュ間バス612のうちの1つがアイドル状態となる。所与の特定用途で許容可能な始動レイテンシの量に応じて、キャッシュ間バス612上の電力を維持することも維持しないことも可能である。
【0049】
図示の例では、ローカルプロセッサ214は、データストア204にアクセスするために使用されるメモリアクセスクロックの周波数に基づいて、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのそれぞれ及び/又はそれらキャッシュ層604a-604cの組をイネーブル又はディセーブルにすべきときを判定する。すなわち、ローカルプロセッサ214(又はマイクロディスク202内の他のロジック)は、例えばマイクロディスクブレードサーバ300からクロックインタフェイス614を介して受信したクロック信号の周波数をアップスケーリング又はダウンスケーリングすることが可能である。周波数スケーリングは、例えば、マイクロディスク202の作業負荷又は使用量に基づくものとすることが可能である。局所的にスケーリングされたクロック信号の周波数を検出するために、マイクロディスク202にクロック検知手段616が配設される。実施形態によっては、データストア204のレイテンシ又は帯域幅が性能に大きな影響を与えないほどメモリアクセスクロック周波数が低い(例えば所定のしきい値未満である)ことを該クロック検知手段616が検出した際に、ローカルプロセッサ214が、レイヤ1キャッシュ604aのみをイネーブルにすることが可能であり、又は選択的にイネーブルにすることが可能なキャッシュ層604a-604cの全てをディセーブルにすることが可能である。メモリアクセスクロックが高くスケーリングされた際に、ローカルプロセッサ214は、例えばマイクロディスク202に関する許容可能なメモリアクセス性能を維持するために、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つ又は2つ以上をイネーブルにすることが可能である。
【0050】
要求側の装置(例えばネットワーク装置又は他のマイクロディスク)とデータ交換を行うため、及びデータアクセス要求を受信するために、マイクロディスク202にはネットワークインタフェイス618が配設されている。
【0051】
不揮発性データストア204に対するアクセス要求(例えば読み出し及び書き込みアクセス要求)を処理するために、マイクロディスク202にはメモリコントローラ622が配設されている。すなわち、ローカルプロセッサ214が不揮発性データストア204にアクセスすることになる(例えばキャッシュ層604a-604cがディセーブルにされており又はキャッシュミスが発生した)場合に、ローカルプロセッサ214は、メモリコントローラ622へデータアクセス要求を送信する。該メモリコントローラ622は、該データアクセス要求を処理して、不揮発性データストア204に対する1つ又は2つ以上のデータの書き込み(例えば単一書き込みアクセス又はバーストモード書き込みアクセス)を行い又は1つ又は2つ以上のデータの読み出し(例えば単一読み出しアクセス又はバーストモード読み出しアクセス)を行う。読み出しアクセスの場合、メモリコントローラ622は、要求されたデータをキャッシュ間バス612を介してローカルプロセッサ214へ返す。図示の例では、メモリコントローラ622は、ローカルプロセッサ214及びキャッシュ層604a-604cと同一のシリコン層(例えば上部ダイ502)に配置されている。
【0052】
対象とする所与の期間にわたり様々な過去のデータアクセスタイプ(例えば読み出しアクセスタイプ及び/又は書き込みアクセスタイプ)の過去の発生を生成し、追跡し、集計し、又は計数するために、図示の例のマイクロディスク202には、書き込みカウンタ(W CNTR)624、読み出しカウンタ(R CNTR)626、及びタイマ628が配設されている。該図示の例では、該書き込みカウンタ624、該読み出しカウンタ626、及び該タイマ628は、メモリコントローラ622内に配置されている。しかし、該書き込みカウンタ624、該読み出しカウンタ626、及び該タイマ628は、マイクロディスク202内の任意の場所に配置することが可能である。
【0053】
動作時、メモリコントローラ622は、書き込み要求を受信した際に書き込みカウンタ624を増分させる。該メモリコントローラ622は、読み出し要求を受信した際には読み出しカウンタ626を増分させる。実施形態によっては、メモリコントローラ622は、対応する書き込み要求又は読み出し要求でアクセスするよう要求されたデータの量だけ、カウンタ624,626を増分させる。例えば、単一読み出しアクセス要求の場合、メモリコントローラ622は読み出しカウンタ626を1だけ増分させる。しかし、バーストモード読み出しアクセスが要求された場合には、メモリコントローラ622は、該バーストモード読み出しアクセス要求において要求されたデータの量だけ読み出しカウンタ626を増分させる。かかる例では、メモリコントローラ622は、各書き込みアクセス要求で要求されたデータアクセスの量に基づき上記と同様の態様で書き込みカウンタ624を増分させる。他の例では、メモリコントローラ622は、データアクセス要求が単一データアクセス要求であるかバーストモードアクセスであるかにかかわらずカウンタ624,626を1だけ増分させる。
【0054】
マイクロディスク202が、書き込み対読み出し比基準ではなく書き込みアクセス率基準を用いてキャッシュ層604a-604cのうちの1つ又は2つ以上をイネーブル/ディセーブルにするか否かを評価する実施形態では、読み出しカウンタ626を省略することが可能である。
【0055】
図示の例では、メモリコントローラ622は、キャッシュ層604a-604cのうちの1つ又は2つ以上のディセーブル又はイネーブル状態を変更すべきか否かの再評価を行う前に、カウンタ624,626を使用して過去のデータアクセス要求を追跡する期間をタイマ628を使用して追跡する。実施形態によっては、タイマ628を使用して追跡される期間は、マイクロディスク202の製造時に設定することが可能であり、及び/又はマイクロディスク202の動作時にソフトウェア又はファームウェアを介して調節可能な設定とすることが可能である。該期間は、マイクロディスク202内のデータにアクセスすることになる1つ又は2つ以上のアプリケーションのタイプ及び/又はマイクロディスク202の1つ又は2つ以上の利用形態に基づくものとすることが可能である。例えば、マイクロディスク202が情報が頻繁に更新される業務文書のために主に使用される(例えばマイクロディスク202が比較的高い割合の書き込みアクセスを受け又は比較的高い書き込み対読み出し比を有することになる)場合には、前記期間は比較的短く設定することが可能である。マイクロディスク202が主にアーカイブデータ及びストリーミングデータのために使用される(例えばマイクロディスク202が比較的低い割合の書き込みアクセス受け又は比較的低い書き込み対読み出し比を有することになる)場合には、前記期間は比較的長く設定することが可能である。
【0056】
図7ないし図9は、図2ないし図6の例示的なマイクロディスク202の処理を実施するために使用することができる処理を表す例示的なフローチャートである。実施形態によっては、図7ないし図9の例示的な処理のうちの1つ又は2つ以上は、実行時に図7、図8及び/又は図9に示す処理を装置(例えば図2,3,5,6のローカルプロセッサ214、プログラム可能なコントローラ、又はその他のプログラム可能なマシンもしくは集積回路)に実行させるマシン読み取り可能命令を使用して実施することが可能である。例えば、図7、図8及び/又は図9の例示的な処理は、プロセッサ、コントローラ、及び/又は他の任意の適当な処理装置を使用して実行することが可能である。例えば、図7、図8及び/又は図9の例示的な処理は、プロセッサ又はコントローラに関連づけられたフラッシュメモリ、リードオンリーメモリ(ROM)、及び/又はランダムアクセスメモリ(RAM)といった有形のコンピュータ読み取り可能媒体又は有形のマシン読み取り可能媒体上に格納された符号化命令(例えばコンピュータ読み取り可能命令)で実施することが可能である。本書で用いる場合、用語「有形のコンピュータ読み取り可能媒体」は、あらゆるタイプのコンピュータ読み取り可能記憶手段を含み且つ伝搬する信号を除外するよう明確に定義されたものである。追加的に又は代替的に、図7、図8及び図9の例示的な処理は、フラッシュメモリ、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、キャッシュ、又は情報が任意の期間にわたり(例えば、長期間、永久的、短期間、一時的なバッファリング、及び/又は情報のキャッシングのために)格納される他のあらゆる記憶媒体といった、非一時的なコンピュータ読み取り可能媒体上に格納された符号化命令(例えばコンピュータ読み取り可能命令)を使用して実施することが可能である。本書で用いる場合、用語「非一時的なコンピュータ読み取り可能媒体」は、あらゆるタイプのコンピュータ読み取り可能媒体を含み且つ伝搬する信号を除外するよう明確に定義されたものである。」
代替的に、図7、図8及び/又は図9の例示的な処理は、1つ又は2つ以上の特定用途集積回路(ASIC)、1つ又は2つ以上のプログラマブルロジックデバイス(PLD)、1つ又は2つ以上のフィールドプログラマブルロジックデバイス(FPLD)、個別論理素子、ハードウェア、ファームウェア等のうちの1つ又は2つ以上の任意の組み合わせを使用して実施することが可能である。また、図7、図8及び/又は図9の例示的な処理は、上述の技術の1つ又は2つ以上の任意の組み合わせとして、例えば、ファームウェア、ソフトウェア、個別論理素子、及び/又はハードウェアの任意の組み合わせとして、実施することが可能である。更に、図7、図8及び図9の例示的な処理は、図7、図8及び図9のフローチャートに関して説明するが、図7、図8及び/又は図9の処理を実施する他の方法を用いることも可能である。例えば、各ブロック実行順を変更することが可能であり、及び/又は一部のブロックを変更し、削除し、分割し、又は組み合わせることが可能である。更に、図7、図8及び図9の例示的な処理の何れか又は全てを逐次に実行し、及び/又は例えば別個の処理スレッド、プロセッサ、装置、個別論理素子、回路その他により並列的に実行することが可能である。
【0057】
図7は、図2ないし図6のマイクロディスク202内のデータにアクセスするために使用することができる例示的な処理のフローチャートを示している。動作時に、マイクロディスク202は、ローカルプロセッサ214においてデータアクセス要求を受信する(ブロック702)。ローカルプロセッサ214は、該データアクセス要求をデコードする(ブロック704)。ローカルプロセッサ214が、キャッシュ層が全く(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604cの何れも)イネーブルにされていないと判定した場合(ブロック706)、ローカルプロセッサ214は、何れのキャッシュ層も使用することなく、要求されたデータアクセス要求をデータストア204(図2、図3及び図6)に対して直接実行する(ブロック708)。また、ローカルプロセッサ214が、1つ又は2つ以上のキャッシュ層がイネーブルにされていると判定した場合には、該ローカルプロセッサ214は、該1つ又は2つ以上のイネーブルにされたキャッシュ層(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの選択されたもの)を介して、要求されたデータアクセス要求を実行する(ブロック710)。次いで図7の処理の例は終了する。
【0058】
図8は、図2ないし図6のマイクロディスク202内の様々な量のキャッシュ層(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604c)を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートを示している。図8の例示的な処理は、初期化段階802及びデータアクセス要求処理段階804を有するものとして示されている。初期化段階802において、マイクロディスク202は、その電源が投入され(すなわちイネーブルにされ又は低電力モード(例えばスリープモード)から出て)、及びその様々な部分(又はサブシステム)を初期化してデータアクセス要求の受信及び処理を開始する。データアクセス要求処理段階804において、マイクロディスク202は、外部装置(例えばネットワーク装置(例えばクライアントコンピュータ)又は他のマイクロディスク)からデータアクセス要求を能動的に受信し、データストア204(図2、図3及び図6)に対するデータアクセスを実行する。
【0059】
最初に、初期化段階802において、マイクロディスク202は、例えば、そのサブシステムへ電源602から電力を供給し、クロック信号をイネーブルにし、及び/又はクロック信号をスケーリングする、といった1つ又は2つ以上の初期化操作を実行する(ブロック808)。ローカルプロセッサ214は、マイクロディスク202で使用するためのキャッシュ層構成を決定する(ブロック810)。例えば、ローカルプロセッサ214は、マイクロディスク202のメモリアクセスクロックの周波数に基づいてイネーブル(又はディセーブル)にすべき選択的にイネーブルにすることが可能なキャッシュ層604a-604cの量を決定することが可能である。図6に関して上述したように、ローカルプロセッサ214は、クロック検知手段616(図6)を使用してメモリアクセスクロックの周波数を判定することが可能である。マイクロディスク202で使用するためのキャッシュ層構成を決定した後、ローカルプロセッサ214は、例えば図6に関して上述したキャッシュ層イネーブルライン608及びゲートドライバ606a-606cを使用して、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの0または1つ以上をイネーブル(又はディセーブル)にする(ブロック812)。ローカルプロセッサ214が、ブロック810において、キャッシュを全く使用することなく動作することが可能であると判定した場合には、ローカルプロセッサ214は、選択的にイネーブルにすることが可能なキャッシュ層604a-604cの全てをディセーブルにする(ブロック812)。
【0060】
データアクセス要求処理段階804において、ローカルプロセッサ214は、データアクセス要求を受信し処理する(ブロック814)。ローカルプロセッサ214は、そのキャッシュ層構成を変更すべきか否かを判定する(ブロック816)。例えば、ローカルプロセッサ214は、クロック検知手段616がマイクロディスク202のメモリアクセスクロックの周波数の変化を検出したときは何時でも、そのキャッシュ層構成を変更することを決定することが可能である。ローカルプロセッサ214がそのキャッシュ層構成を変更すべきことを決定した場合には(ブロック816)、ローカルプロセッサ214は異なるキャッシュ層構成を決定する(ブロック818)。例えば、ローカルプロセッサ214は、例えば許容可能なメモリアクセス性能を維持するため及び/又は不揮発性データストア204の書き込み耐性を維持するために、イネーブルにすべき異なる量の選択的にイネーブルにすることが可能なキャッシュ層604a-604cを決定することが可能である。ローカルプロセッサ214は次いで、例えば図6に関して上述したキャッシュ層イネーブルライン608及びゲートドライバ606a-606cを使用して、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの0または1つ以上をイネーブル(又はディセーブル)にする(ブロック820)。次いで制御はブロック814に戻る。ブロック816,818,820を実施するために使用することができる例示的な処理については、図9のフローチャートに関して後述する。
【0061】
図8に示す実施形態では、ローカルプロセッサ214がマイクロディスク202のキャッシュ層構成を変更すべきでないと判定した場合、ローカルプロセッサ214は(例えば図6のネットワークインタフェイス618を介して受信したコマンドに基づいて)電源を遮断すべきか否かを判定する(ブロック824)。ローカルプロセッサ214が電源を遮断すべきでないと判定した場合には、制御はブロック814に戻る。そうでない場合には、ローカルプロセッサ214がマイクロディスク202の電源を遮断して(ブロック826)、図8の例示的な処理が終了する。
【0062】
図9は、過去のデータアクセスタイプ情報に基づいて図2ないし図6のマイクロディスク202の使用中に様々なキャッシュ層(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604c)を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートである。最初に、メモリコントローラ622(図6)が、不揮発性データストア204内のデータにアクセスするためにマイクロディスク202において受信したデータアクセスを監視する(ブロック902)。書き込みカウンタ624及び/又は読み出しカウンタ626(図6)は、それぞれの1つ又は2つ以上の過去のデータストアアクセスカウントを更新させる(ブロック904)。例えば、図6に関して上述したように、各データ書き込みアクセス毎に、書き込みカウンタ624は、1または2以上の増分だけそのカウントを増分させることが可能であり、及び各データ読み出しアクセス毎に、読み出しカウンタ626は、1または2以上の増分だけそのカウントを増分させることが可能である。実施形態によっては、マイクロディスク202が所与の書き込みアクセス率に基づいてキャッシュ層をイネーブル/ディセーブルにすべきか否かを評価する場合に書き込みカウンタ624が更新され、読み出しカウンタ626は使用されない。別の実施形態では、マイクロディスク202が書き込み対読み出し比に基づいてキャッシュ層をイネーブル/ディセーブルにすべきか否かを評価する場合に、書き込みカウンタ624及び読み出しカウンタ626の両方が更新される。
【0063】
メモリコントローラ622は、タイムアウト期間が満了したか否かを判定する(ブロック906)。例えば、メモリコントローラ622は、タイマ628(図6)へポーリングを行って対象となる期間が満了しているか否かを判定することができる。タイマ628を使用して追跡される例示的な期間は、図6に関して上述した通りである。該タイムアウトが満了していない場合(ブロック906)には、制御はブロック902に戻る。該タイムアウトが満了している場合(ブロック906)には、制御はブロック908に進む。
【0064】
ローカルプロセッサ214は、書き込みカウンタ624及び/又は読み出しカウンタ626の読み出しを、例えばそれらのカウント値をそれぞれのレジスタにロードすることにより行う(ブロック908)。メモリコントローラ622は次いで、書き込みカウンタ624及び/又は読み出しカウンタ626をリセットし(ブロック910)、及びタイマ628をリセットし再始動させる(ブロック912)。ブロック912から、制御はブロック902へと戻ってデータアクセスの監視及び追跡を続行し、及び制御はまたブロック914へと進む。
【0065】
ローカルプロセッサ214は、ブロック908で取得した書き込みカウント及び/又は読み出しカウントに基づいて過去のアクセスタイプ基準を生成し(ブロック914)。実施形態によっては、該過去のアクセスタイプ基準は、書き込みカウンタ624により追跡された書き込みカウント及びタイマ628により追跡された期間に基づく(例えば該書き込みカウントを該期間で除算することに基づく)書き込みアクセス率である。別の実施形態では、該過去のアクセスタイプ基準は、該書き込みカウントを該読み出しカウントで除算することにより求められる書き込み対読み出し比である。
【0066】
ローカルプロセッサ214は、過去のアクセスタイプ基準を所定のしきい値と比較する(ブロック916)。実施形態によっては、該しきい値は、マイクロディスク202の製造時に予め決定することが可能であり、及び/又はマイクロディスク202の動作時にソフトウェア及び/又はファームウェアにより設定できるようにすることが可能である。一実施形態による該しきい値は、マイクロディスク202内のデータにアクセスすることになるアプリケーションのタイプ及び/又はマイクロディスク202の利用形態に基づいて設定することが可能である。
【0067】
ローカルプロセッサ214は、ブロック916の比較に基づいて、1つ又は2つ以上のキャッシュ層604a-604c(図6)のイネーブル又はディセーブル状態を変更すべきか否かを判定する(ブロック918)。例えば、1つ又は2つ以上のキャッシュ層604a-604cがディセーブルにされている場合、且つ過去のアクセスタイプ基準が所定のしきい値を越える書き込みアクセス率(又は書き込み対読み出し比)である場合には、ローカルプロセッサ214は、比較的多くの書き込みアクセスの発生が観測されているため1つ又は2つ以上のキャッシュ層604a-604cをイネーブルにすべく1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきことを判定する。しかし、1つ又は2つ以上のキャッシュ層604a-604cが既にイネーブルにされている場合には、ローカルプロセッサ214は、該1つ又は2つ以上のキャッシュ層604a-604cが比較的多くの書き込みアクセスの発生を扱うべく既にイネーブルにされているため、該1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更する必要はない。該1つ又は2つ以上のキャッシュ層604a-604cがイネーブルにされている場合、且つ過去のアクセスタイプ基準が所定のしきい値を下回る書き込みアクセス率(又は書き込み対読み出し比)である場合には、ローカルプロセッサ214は、比較的少ない書き込みアクセスの発生が観測されているため1つ又は2つ以上のキャッシュ層604a-604cをディセーブルにすべく1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきことを判定することが可能である。しかし、1つ又は2つ以上のキャッシュ層604a-604cが既にディセーブルにされている場合には、ローカルプロセッサ214は、不揮発性データストア204に対する直接アクセスが可能となるなるよう該1つ又は2つ以上のキャッシュ層604a-604cが既にディセーブルにされているため、該1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更する必要はない。
【0068】
ローカルプロセッサ214が、1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきでないと判定した場合には(ブロック918)、制御はブロック922へ進む。しかし、ローカルプロセッサ214が、1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきであると判定した場合には(ブロック918)、ローカルプロセッサ214は、ブロック916,918の分析に基づいて1つ又は2つ以上のキャッシュ層604a-604cをイネーブル又はディセーブルにする(ブロック920)。
【0069】
ローカルプロセッサ214は次いで、マイクロディスク202がデータアクセスの監視を停止すべきか否かを判定する(ブロック922)。例えば、マイクロディスク202が低電力モード(例えばスリープモード、アイドルモード、スタンバイモード、ターンオフ等)に入っている場合、ローカルプロセッサ214は、データアクセスの監視を停止すべきであると判定する。マイクロディスク202がデータアクセスの監視を続行することになる場合には(ブロック922)、制御はブロック902へ進む。そうでない場合には、制御はブロック924ヘ進み、ローカルプロセッサ214又はメモリコントローラ622が、書き込みカウンタ624及び/又は読み出しカウンタ626及びタイマ628をディセーブルにする。次いで図9の例示的な処理は終了する。
【0070】
ここで図10及び図11を参照する。同図に示す棒グラフは、図3の例示的なマイクロディスクブレードサーバ300の性能及び電力の改善と電力の内訳とを、図1の既知のデータサーバ100等の(同一の又はほぼ同様のデータ記憶容量を有する)既知のデータストレージシステムと比較して示したものである。図10及び図11に示す測定値は、高レベルのアプリケーションドリブンな資源のボトルネック解析を、スケールダウンした詳細なマイクロアーキテクチャシミュレーションと組み合わせて用いて取得したものである。電力の測定値のために、詳細なインベントリベースの電力モデルを使用して、ピーク電力供給及び実際の消費量を観測した。ベースラインシステムは、既知のシステムアーキテクチャ(例えば図1の既知のデータサーバ100)及び作業負荷の両方についてムーアの法則によるスケーリングを反映するよう積極的に選択したものである。該ベースラインシステムのアーキテクチャは、2ソケットの32コア80ワット・サーバプロセッサを有するブレードを含むよう選択した。該サーバプロセッサの各々は、4メモリチャネルの16GB DIMM、250MB/sの4テラバイト(TB)ハードディスクのアレイ又は1GB/sの1.2TBソリッドステートデバイス(SSD)のアレイ、2つの100Gb/s Ethernet NIC、及び完全な二分帯域幅をサポートするデータセンタネットワーキングインフラストラクチャのアレイに接続された。
【0071】
図10は、図3の例示的なマイクロディスクブレードサーバ300の性能及び電力の改善を図1の既知のデータストレージシステムと比較して示す棒グラフである。上述の積極的なベースラインと比較した場合であっても、図3の例示的なマイクロディスクブレードサーバ300は、2倍から18倍のエネルギー効率の改善を達成する。データアクセス性能は、殆どの場合において同様かそれ以上であるが、1ワットあたりの性能の改善の大部分は、改善された性能に対する改善されたエネルギーの節約によるものである。
【0072】
図11は、図3の例示的なマイクロディスクブレードサーバ300の様々なサブシステムについての消費電力の内訳を、図1の既知のデータストレージシステムの消費電力の内訳と比較して示す棒グラフである。図11では、表記「A」を有する棒は、ベースラインアーキテクチャについての消費電力の測定値に対応し、表記「B」を有する棒は、例示的なマイクロディスクブレードサーバ300についての消費電力の測定値に対応するものである。図11の結果は、エネルギー効率の良い技術を用いたエネルギー効率の良い機構と組み合わせた例示的なマイクロディスクブレードサーバ300の有効性を示している。この結果はまた、多様な作業負荷パターンに対する例示的なマイクロディスクブレードサーバ300の例示的なアーキテクチャの適応性を示している。
【0073】
上記では、特にハードウェア上で実行されるソフトウェアを含む、方法、装置、及び製品について開示したが、かかる方法、装置、及び製品は、単なる例示であり、制限とみなすべきではない、ということに留意されたい。例えば、これらのハードウェア及びソフトウェア構成要素の何れか又は全てを、専らハードウェアで、専らソフトウェアで、専らファームウェアで、又はハードウェア、ソフトウェア、及び/又はファームウェアの任意の組み合わせで、実施することが可能である、ということが意図されている。したがって、上記は、例示的な方法、装置、及び製品について説明したが、本開示の実施形態は、かかる方法、装置、及び製品を実施するための唯一の方法ではない。
【0074】
本書では、特定の方法、装置、及び製品について説明してきたが、本発明の範囲は、それらに限定されるものではない。本発明は、文字通りに又は均等論下で特許請求の範囲内に適正に含まれる全ての方法、装置、及び製品を網羅するものである。
【背景技術】
【0001】
インターネット及びネットワークをベースとするデータセンターは、ネットワークから読み出すことができる情報をその頻繁なアクセス及び長期間の格納のために格納すべく大量のサーバを使用している。従来の企業の作業負荷(例えば、ERP(Electronic Resource Planning)、データベース、及びウェブサービス)と比較して、データ処理を中心とする新たな作業負荷は、大規模に(数十万もの物理及び/又は仮想サーバが)且つ多様なデータ(例えば、構造化データ、非構造化データ、リッチメディアデータ)について稼働するものである。これらの作業負荷は、次第に高度化する強力なプロセッサ能力(又はコンピュータ能力)を必要とするアルゴリズム(例えば、複数のデータソースからの動的で複雑な相互相関)を利用して、データから知識を抽出する。
【図面の簡単な説明】
【0002】
【図1】サーバベースの記憶用途で使用するための既知の大容量記憶アーキテクチャを示している。
【図2】本書で開示する技術に従って実施された例示的な大容量マイクロディスクデータ記憶アーキテクチャを示している。
【図3】本書で開示する技術に従って実施された例示的な大容量マイクロディスクブレードサーバを示している。
【図4】図2及び図3の例示的なマルチマイクロディスク基板を実施するために使用することができる例示的なデュアルインラインメモリモジュールである。
【図5】本書で開示する例示的な方法及び装置に従って図2及び図3の例示的なマイクロディスクを実施するために使用することができる例示的な3次元(3D)スタック構造である。
【図6】図2ないし図5の例示的なマイクロディスクの詳細図である。
【図7】図2ないし図6のマイクロディスク内のデータにアクセスするために使用することができる例示的な処理のフローチャートを示している。
【図8】図2ないし図6のマイクロディスク内の様々なキャッシュ層を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートを示している。
【図9】過去の(historical)データアクセスタイプ情報に基づいて図2ないし図6のマイクロディスクの使用中に様々なキャッシュ層を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートを示している。
【図10】図1の既知のデータストレージシステムに対する図3の例示的なマイクロディスクブレードサーバの性能及び電力の改善を示す棒グラフである。
【図11】図1の既知のデータストレージシステムの消費電力の内訳と比較した図3の例示的なマイクロディスクブレードサーバの様々なサブシステムの消費電力の内訳を示す棒グラフである。
【発明を実施するための形態】
【0003】
本願は、2010年3月8日出願の米国仮特許出願第61/311,744号を優先権の基礎とする国際特許出願である。
【0004】
本書で開示する例示的な方法、装置、及び製品は、ブレードサーバシステム等の大規模なデータストレージ用途で使用することが可能な、大容量で不揮発性のデータ記憶装置を実施するために使用することができる。本書で開示する例示的な大容量・不揮発性データ記憶装置は、主記憶領域を二重用途データ記憶装置(dual-use data stores)を用いた長期データ記憶領域(long-term data store area)と組み合わせることにより、既知の大容量データ記憶装置よりも縮小されたメモリ階層を用いて実施される。更に、例示的な大容量・不揮発性データ記憶装置は、キャッシュ層を用いることなく又は既知の大容量・不揮発性データ記憶技術よりも少数のキャッシュ層を用いて実施することができる。例示的な方法、装置、及び製品は、例えば、メモリスタ記憶技術、フラッシュ記憶技術、及び/又は相変化記憶(PCRAM)技術といった、半導体不揮発性高速データ記憶技術に関連して開示される。
【0005】
既知のデータセンターは典型的には、資本、性能、及び冷却に関してコスト効率の良い解決策を得るために5つ以上のデータストレージレベルの深い階層を用いる。例えば、頻繁にアクセスされないデータはテープ上にアーカイブされる。頻繁にアクセスされるデータ(データベースレコード等)は、機械式ハードディスク装置上に格納される。より頻繁にアクセスされるプログラム変数及びキャッシュ・ファイルは、メインメモリ上に格納される(例えば、キャッシュメモリ又はDRAM(Dynamic Random Access Memeory))。データウェアハウスの作業負荷は、デスクトップの作業負荷よりも、1回の操作について一層多くの外部的なデータの移動(例えば、異なるデータ記憶階層レベル間でのデータの移動)を行うものである。このため、データ記憶階層レベルの全長にわたってデータを移動させる際に大量の時間が消費される。
【0006】
データセンターを実施するための既知のアーキテクチャは幾つかの欠点を有している。例えば、複数の記憶階層レベルにデータを複製するために過剰な材料が必要となり、及びそれら複数の階層レベルを管理するために複雑な制御回路が必要となる。更に、複数のレベルのキャッシュ及びメモリによってアクセスレイテンシが追加され、このため、複数レベルの階層のトラバースは典型的には、著しい性能上の不利益を生じさせるものとなる。また、大量の階層レベルは、著しいエネルギー上の不利益を生じさせるものとなる。すなわち、各メモリ境界で有効(active)エネルギーが浪費され、キャッシュ漏洩(cache leakage)及びDRAMリフレッシュ電力により待機(idle)エネルギーが浪費される。現在のプロセッサチップは、幅の広い外部メモリ及びI/Oバスのために必要となるため、多数のピン並びに高価なパッケージ及びソケットを有している。
【0007】
既知のデータセンターアーキテクチャはまた、そのスケーリング(scaling:規模の拡大や縮小)及びメンテナンスに関して欠点を呈するものである。例えば、メモリの制約(例えば、殆どのデータがディスク上の高いアクセスレイテンシを有すること)上、スケーリングは困難である。また、多数の異種の構成要素によって、該構成要素の個数及び能力の平衡を保つのが困難となる。既知のデータセンターアーキテクチャは、異なるアプリケーションが作業負荷の多様な組を生成する場合であっても、静的な作業負荷平衡をとるものである。かかる既知のシステムは、作業負荷に変化が存在する場合には必ず、その物理的な再設計及び再平衡を行わなければならないものである。
【0008】
既知のデータデンターアーキテクチャはまた、信頼性に関する欠点を呈するものである。機械式ハードディスクの予期せぬ装置故障は、データの可用性及び/又は完全性の問題を呈するものとなる。更に、揮発性メモリ内のデータは、不揮発性記憶装置内にも格納(複製)しなければならず、又は停電後に再構築しなければならない。揮発性メモリの停電に対する耐性は、費用、時間、及びエネルギーの点で高価なものであり、且つかかる耐性はソフトウェアの複雑さを増大させるものとなる。
【0009】
既知のデータセンターアーキテクチャとは異なり、本書で開示する例示的な方法、装置、及び製品は、扁平レベルデータ記憶階層を有する大容量データ記憶装置(本書では(実施形態によってはナノ記憶装置としても知られる)マイクロディスクと称す)の実施を可能とする。該扁平レベルデータ記憶階層は、メインメモリ及び長期データ記憶装置の両者として機能するシングルレベル大容量データ記憶装置を各マイクロディスクに1つずつ配設することにより、(例えば比較的頻繁にアクセスされるデータを格納するために使用される)メインメモリと(例えば比較的頻繁にアクセスされないデータ又は長期データを格納するために使用される)データ記憶領域との間の境界を崩壊させる。更に、本例示的な方法、装置、及び製品は、比較的浅いキャッシュ階層(例えば既知のデータセンターよりも少いキャッシュレベル)を使用して又はキャッシュレベルを全く使用せずに、既知のデータセンターアーキテクチャと同等かそれ以上の性能を提供することを可能とする。本書で開示する例示的な方法、装置、及び製品は、電子機械式ハードディスク(例えば磁気記憶ディスク)を使用せず、その代わりに、メモリスタ、PCRAM、及び/又はフラッシュ等の大容量半導体データ記憶技術を使用して、メインメモリ及び長期不揮発性データ記憶領域として動作する二重用途データ記憶セルを実施する。このようにして、異なるデータ領域にわたってデータを複製する必要がなくなり(例えば、頻繁なアクセスに備えてメインメモリのデータ領域にデータを格納し、及びそれと同じデータをあまり頻繁でないアクセスに備えて長期データ記憶領域に格納することによりその複製を行う必要がなくなり)、及び電子機械式ハードディスクに伴う可動部品の個数を削減し又は撤廃し及びデータを常に不揮発性メモリに格納することにより、データ可用性及びデータ完全性に関する問題が削減される。
【0010】
各マイクロディスクの効率的な動作、及び既知のデータセンターアーキテクチャよりも一層効率的なネットワーク資源の使用を可能にすべく、本例示の複数のマイクロディスクの各々毎にローカルプロセッサが1つずつ配設され、該ローカルプロセッサは、該マイクロディスクのデータ記憶装置にとって高度に局所的なものでありかつ該データ記憶装置と一体化されたものである。このようにして、各マイクロディスクは、同動作に関して比較的一層多くの自律制御を実施することができ、これにより、データアクセス(例えばデータ書き込みアクセス又はデータ読み出しアクセス)を要求する他の外部プロセッサからの比較的少ない制御情報を含むメモリアクセス要求をネットワークを介して行うことが可能となる。
【0011】
例示的な実施形態によっては、扁平レベル不揮発性データ記憶装置(例えばマイクロディスク)は、ローカルプロセッサと通信する不揮発性データ記憶装置を同じパッケージ(例えばシングルソケット計算構造、3Dスタックチップ、メモリボード、デュアルインラインメモリモジュールその他)内に配設することにより実施される。該ローカルプロセッサ及び不揮発性データ記憶装置は、ローカルプロセッサが不揮発性データ記憶装置と近接して結合した扁平レベル不揮発性データ記憶システムを形成する。例えば、該扁平レベル不揮発性データ記憶システムにおいて、ローカルプロセッサが有し得るオンボードローカルプロセッサキャッシュ(例えばプロセッサ組込キャッシュ)を除き、該ローカルプロセッサと該不揮発性データ記憶装置との間で該ローカルプロセッサの外部に揮発性データ記憶装置(例えばSDRAMその他の揮発性データ記憶装置)は存在しない。例示的な実施形態によっては、ローカルプロセッサ(及びあらゆる内部のプロセッサ組込キャッシュ)が揮発性データ記憶装置による仲介を伴うことなく不揮発性データ記憶装置と通信する構成は、シングルレベル階層を形成する。ローカルプロセッサは、パッケージの外部通信インタフェイスと通信して該パッケージの外部の装置と通信することが可能である。該外部通信インタフェイスは、該パッケージの外部の装置の様々なタイプの通信インタフェイス(例えば、様々なメモリコントローラインタフェイス、ネットワークインタフェイス、他のメモリインタフェイス等)と通信するよう構成することが可能である。不揮発性データ記憶装置は、メモリスタデータ記憶装置、相変化ランダムアクセスメモリ、フラッシュメモリ、又はその他の適当な不揮発性データ記憶装置を使用して実施することが可能である。例示的な実施形態によっては、ローカルプロセッサは、不揮発性データ記憶装置にアクセスするための様々なデータアクセス性能レベルを提供するよう周波数スケーラブルなものとすることが可能である。例示的な実施形態によっては、扁平レベル不揮発性データ記憶装置(例えばマイクロディスク)は、複数の別の扁平レベル不揮発性データ記憶装置(例えば別のマイクロディスク)を有するストレージサーバシステム(例えばブレードサーバシステム及び/又はそのドーターボード)に通信可能な状態で接続されるよう構成され、ローカルプロセッサは、その不揮発性データ記憶装置と他の扁平レベル不揮発性データ記憶装置との間で情報を交換することが可能となる。更に、該ローカルプロセッサは、その不揮発性データ記憶装置と、該ストレージサーバシステムの外部のネットワーク装置(例えばクライアントコンピュータ)との間で、例えばローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を介して、情報を交換することが可能である。
【0012】
例示的な実施形態によっては、本書で開示する例示的な方法、装置、及び製品は、扁平レベル不揮発性データ記憶装置(マイクロディスク)の不揮発性データ記憶装置からの距離のレベルが増大した、階層をなす更なるコンピューティング要素(又はプロセッサ要素)を提供する。例えば、複数のマイクロディスクを有するドーターボード(例えばデータストレージサーバの記憶容量を拡張させるためのメモリボード)又はメモリモジュール(例えばデュアルインラインメモリモジュール)に、該マイクロディスクのローカルプロセッサに対する第2レベル計算階層を形成する計算要素(例えばドーターボードプロセッサ)を配設することが可能である。かかる第2レベル計算階層は、その対応するマイクロディスクの動作を制御し、調整し、及び/又は監視するように構成することが可能であり、及び/又は、マイクロディスク上に存在するデータに関連する計算を増強し、該計算の負荷を軽減し、及び/又は該計算に直接関与するように構成することが可能である。更に、ドーターボード又はメモリモジュールがサーバ(例えばブレードサーバ)にプラグインされる場合、該サーバは、第3レベル階層計算要素(例えばサーバプロセッサ)を有することが可能であり、該第3レベル階層計算要素は、例えば、その対応するマイクロディスクを有する対応するドーターボード又はメモリモジュールに関連する動作を制御し、調整し、監視し、増強し、該動作の作業負荷を軽減し、及び/又は該動作に直接関与するものとなる。他の例示的な実施形態では、本書で開示する例示的な方法、装置、及び製品に関連して、複数レベルの計算要素階層を実施する他の態様を用いることも可能である。
【0013】
実施形態によっては、本書で開示する方法、装置、及び製品を、大規模データウェアハウス用途で用いることが可能である。ネットワークベースコンピューティングが様々な用途へと拡張するにつれて、該大規模データウェアハウス用途の利用及び大きさは成長し続ける。かかるネットワークベースコンピューティングの用途には、インターネットベースのデータストレージ、ネットワークコミュニティのコラボレーション用途、ソーシャルネットワーキングサービス、インターネットマルチメディアストリーミング等が含まれる。上述の既知のデータストレージ技術及びその他の既知のデータストレージ技術は、(上述したような)幾つかの欠点を呈するものであり、かかる欠点のため、かかるソリューションは、消費電力、物理的な空間、及び性能の点で、比較的効率の悪いものとなる。本書で開示する例示的な方法、装置、及び製品は、既知のデータストレージ技術よりも一層効率の良い消費電力、一層小さな物理的空間要件、及び一層高いデータアクセス性能を可能とする削減された(例えば扁平化された)メモリ階層を有する不揮発性半導体データストレージ技術を用いて実施されたデータストレージソリューションを提供することにより、かかる非効率性を克服する。
【0014】
図1を参照すると、データセンターアーキテクチャで用いるための既知のデータサーバ100は、複数のメモリ階層レベルを含んでいる。該複数のメモリ階層レベルは、(レイヤ1キャッシュ102a及びレイヤ2キャッシュ102bを有する)キャッシュレベル102、メモリコントローラレベル103、メインメモリ104、及びデータストア106を含む。該メインメモリ104は、ネットワーク108を介して頻繁にアクセスされる(例えば読み出され及び/又は書き込まれる)データを格納するために使用される。該データストア106は、長期の不揮発性記憶のためにデータを格納するために使用される。典型的には、メインメモリ104内の頻繁にアクセスされるデータは、データストア106との間での読み書きに伴うより大きなレイテンシのため、該データストア106に直ちに書き込まれることはない。しかし、何らかの時点で該メインメモリ104からのデータがデータストア106に書き込まれ、その時点で、該データは、メインメモリ104及びデータストア106に二重に存在し、場合によっては、該データは、更にキャッシュ102に格納されることにより三重に存在することになる。
【0015】
図1に示すように、メインメモリ104は、揮発性ダイナミックランダムアクセスメモリ(DRAM)を用いて実施され、データストア106は、不揮発性電子機械式メモリ(例えば磁気ハードディスクドライブ)を用いて実施される。このように、図1に示すような既知のシステムでは、様々な記憶技術を使用してメインメモリ及びデータ記憶領域が実施される。これは、かかる様々な技術の速度及びコストに起因することが多い。例えば、DRAM技術は、磁気ハードディスクドライブ技術よりも速いアクセスタイムを有するが、DRAM技術はまた、磁気ハードディスクドライブ技術よりも1メガビット(Mbit)あたりの単価が高いものである。このため、データストア106に必要とされる一層大きなデータ記憶領域は、一層安価な(しかし一層低速な)不揮発性電子機械式技術を使用して実施され、一方、メインメモリ104を実施するために必要とされる一層高速な主記憶装置は、一層高速な(しかし一層高価な)揮発性DRAM技術を使用して実施される。
【0016】
図2を参照すると、本書で開示される例示的な教示によるマルチマイクロディスク基板200の一例が示されている。図示の一例では、マルチマイクロディスク基板200は、複数のマイクロディスクデバイスを含み、該複数のマイクロディスクデバイスの各々は、マイクロディスク202と類似したもの又はそれと同一のものである。実施形態によっては、マイクロディスク202等のマイクロディスクは、ナノ記憶装置とも呼ばれるものである。マイクロディスク202(及びマルチマイクロディスク基板200の他のマイクロディスクの各々)は、不揮発性半導体データストア204を含む大容量データ記憶装置である(例えば、データストア204は、帯域幅1ギガバイト(GB)/sのアクセシビリティで100GB又はそれ以上の記憶容量を有することができる)。(長期データ記憶のための)データストア106とは別個に(頻繁にアクセスされるデータのための)メインメモリ104を有する図1の既知のデータサーバ100とは異なり、図2のマイクロディスク202は、頻繁にアクセスされるデータ及び長期記憶データの両方を格納すべく二重用途態様でデータストア204を使用する。すなわち、マイクロディスク202は、複数のデータビットセルを有しており(例えば1つのデータビットセルが1ビットのデータを格納することができ)、該複数のデータビットセルの各々が二重用途態様で動作する。例えば、例示的な二重用途データビットセル206内に格納されている1つのビット値を、頻繁にアクセスされるデータとして二重用途データビットセル206から読み出し、及び/又は該ビット値を、長期データ記憶領域に複製することなく、長期にわたり(例えば頻繁にはアクセスされない及び/又は頻繁には変更されない)不揮発性態様で該二重用途データビットセル206内に格納したままにする(すなわち存続させる)ことが可能である。このようにして、図2のマイクロディスク202は、頻繁にアクセスされるデータのためのデータ記憶領域とは別個に長期記憶のためのデータ記憶領域を必要としないため、材料の使用及び物理的空間要件に関して一層高い効率を達成するものとなる。これはまた、複製データを格納することが多い2つの別個のデータ記憶領域(例えば図1のメインメモリ104及びデータストア106)を給電する必要をなくすため、既知のデータ記憶アーキテクチャよりもデータ記憶のための消費電力が少なくなる。
【0017】
図2の例示的な実施形態では、データストア204は、異種の記憶装置の組み合わせ(例えばメインメモリ104用のSDRAM及び長期データ記憶装置用の電子機械式ハードディスクドライブ)を使用して実施される図1の既知のデータサーバ100とは異なり、同種のデータ記憶技術(例えば、全体的にメモリスタ技術を使用し、全体的にPCRAM技術を使用し、全体的にフラッシュ技術を使用し、又は全体的にあらゆる他の適当な記憶技術を使用して実施された、単一のICダイ又は1つ若しくは2つ以上の積層ICダイ)を使用して実施される。該データストア204の同種のデータ記憶技術は、マイクロディスク202が、メインメモリ104の技術及びデータストア106の技術のための異なるタイプのメモリインタフェイス(例えばメインメモリ104のためのSDRAMインタフェイス及びSDRAMメモリ用のタイミング回路、並びに電子機械式ハードディスク記憶装置のためのハードディスクドライブインタフェイス)を必要とする既知のデータサーバ技術よりも、一層少ないメモリインタフェイス回路を有することを可能にする。このマイクロディスク202のメモリインタフェイス回路の削減により、低消費電力及び低データアクセスレイテンシ(ひいてはデータアクセス性能の向上)が可能となる。
【0018】
図2の例で示したような例示的な実施形態によっては、マイクロディスク202は、ネットワークバス210を介してネットワークインタフェイス208と通信する。また、それと同じ例示的な実施形態又は他の例示的な実施形態において、マイクロディスク202は、ディスク間通信バス212を介して互いに通信する。例示的な実施形態によっては、該ディスク間通信バス212は、各マイクロディスク202の同一の内部周波数(例えば1GB/s)で動作することができる。該マイクロディスク202は、要求側のネットワーク装置(図示せず)からのデータアクセス要求を受信し、前記ネットワークインタフェイス208を介して該要求側のネットワーク装置へデータを通信する。かかるネットワーク装置は、ローカルネットワーク又はワイドエリアネットワーク(例えばインターネット又はプライベートネットワーク)を介してマイクロディスク202(又は該マイクロディスク202を含むサーバ)と通信可能な状態にあるクライアントコンピュータとすることが可能である。
【0019】
図2に示す例では、マイクロディスク202には、データストア204と通信可能な状態にあるローカルプロセッサ214が配設されている。該ローカルプロセッサ214は、該マイクロディスク202が、既知のデータサーバソリューションのメインメモリ及びデータ記憶領域(例えば図1のメインメモリ104及びデータストア106)よりも一層高い自律性をもって動作することを可能にする。データストア(例えばデータストア204)と緊密に又は近接して統合された態様でローカルプロセッサ214等の計算ロジックを提供することにより、該マイクロディスク中の計算ロジックは、ネットワークを介して受信したデータアクセス要求に応じてマイクロディスク内の記憶技術に固有のタイミング及びデータアクセス操作を生成し処理することができる。このようにして、マイクロディスク202へのデータアクセスに関連するネットワーク通信は、様々な記憶技術に固有の特徴、能力、又は記憶装置タイミング要件に関連する大量の記憶装置制御信号又はコマンドをかかるネットワーク通信が伝送する必要性を低減させることにより、一層効率の良い態様でネットワーク資源を使用することが可能となる。更に、データアクセスを要求するネットワーク装置は、マルチマイクロディスク基板200で使用されている特定のデータ記憶技術を意識し又は認識している必要がない。また、ローカルプロセッサ214等の計算ロジックを各マイクロディスク202に提供することにより、同一のマルチマイクロディスク基板(例えばマルチマイクロディスク基板200)上に様々な記憶技術の複数のマイクロディスクを混在させることが可能となる。これは、各マイクロディスクのローカルプロセッサがその記憶技術に固有のタイミングを使用してそれ自体のデータアクセス操作を開始し実行することができるからである。
【0020】
マルチマイクロディスク基板200の各マイクロディスクのローカルプロセッサ(例えばローカルプロセッサ214)はまた、異なるマイクロディスク間でそれらの作業負荷を動的に平衡させることを可能にする。例えば、マイクロディスク202のローカルプロセッサ214は、ディスク間通信バス212を介して互いに通信し、及びかかる通信を使用して(例えばマイクロディスク間データ転送を行って異なるマイクロディスク間でデータを分散させる(offload)ことにより)異なるマイクロディスク202間でそれらの作業負荷を平衡させることができる。
【0021】
図示の例では、ローカルプロセッサ214は、複数のデータアクセス及び/又はデータメンテナンス要求を実質的に同時に処理するキャッシュコヒーレント・マルチスレッドプロセッサである。更に、ローカルプロセッサ214は、周波数及び電圧スケーリング(例えば、100MHz〜1GHz(又はそれ以上)の一定の周波数範囲内でのスケーリング)をサポートするよう実施することが可能である。
【0022】
例示的な実施形態によっては、ローカルプロセッサ214は、データストア204とは別個の集積回路ダイ上で実施して該データストア204ダイに(例えば、光学的又は電気的なシリコン貫通バイア(TSV:Through Silicon Via)、光学的又は電気的なワイヤボンディング、又は光学的又は電気的な基板レベルの外部的なICパッケージの相互接続を介して)通信可能な状態で接続することが可能であるが、別の実施形態では、ローカルプロセッサ214は、データストア204と同じ集積回路ダイ上に一体的に形成することが可能である。各マイクロディスク202に単一のローカルプロセッサ214のみを示したが、代替的に、各マイクロディスク202に複数のプロセッサ又は複数のプロセッサコア(その各々はマルチスレッド処理能力を有することが可能)を配設することが可能である。例えば、2つ又は3つ以上の積層不揮発性データストアダイを使用してマイクロディスク202が実施される実施形態では、その各データストアダイ中に別個のプロセッサ又はプロセッサコアを一体的に形成して、該データストアダイに対応するデータアクセス要求を処理させ、及び該データストアダイに対応するデータアクセス及びメモリメンテナンス処理を実行させることが可能である。
【0023】
図示の例では、マイクロディスク202にはまた、データストア204よりも短いアクセスレイテンシを有するキャッシュ216が配設される。該キャッシュ216は、1つ又は2つ以上のキャッシュ層(例えば図6のキャッシュ層604a-604c)を含むことが可能である。例えば、ローカルプロセッサ214が十分に低速な実施形態では、その性能はデータストア204のレイテンシ又は帯域幅による影響を大きく受けることはなく、キャッシュ216は、たった1レベルのキャッシュで実施することが可能であり、該キャッシュは、プライベートキャッシュ又は共有キャッシュとすることが可能である。例示的な実施形態によっては、キャッシュ216には、複数のキャッシュ層を配設することが可能であり、その各キャッシュ層は必要に応じて個々に及び動的にイネーブルにし(例えば電源を投入し)又はディセーブルにする(例えば電源を遮断し又はゲートをオフにする)ことが可能である。かかる個々のキャッシュ層の動的なイネーブル/ディセーブルは、異なるメモリアクセス性能を提供するためにメモリクロックが変更される場合に有利に使用することが可能である。例えば、データストア204のアクセスレイテンシが性能に与える影響が最小限となり又は無くなるように、メモリアクセスクロックが十分にダウンスケーリングされる場合に、キャッシュ216のキャッシュ層の全てをディセーブルにし及びバイパスして、ローカルプロセッサ214がデータストア204に直接アクセスすることができるようにすることが可能である。1つ又は2つ以上のキャッシュ層(例えば、図6のキャッシュ層604a-604cのうちの1つ又は2つ以上)をディセーブルにして該1つ又は2つ以上のキャッシュ層へ供給される電力を除去し又はゲートオフするために、該1つ又は2つ以上のキャッシュ層の電源を完全に遮断するのに先立ち、ライトバック処理を使用して該1つ又は2つ以上のキャッシュ層からデータストア204へダーティデータをライトバックする。更に、ディセーブルされた(ひいては電源が遮断された)1つ又は2つ以上のキャッシュ層は、それらが再びイネーブルにされる(ひいては電源が投入される)まで、新しいデータを格納するために使用されない。メモリアクセスクロックが一層高くスケーリングされた際に、キャッシュ216の1つ又は2つ以上のキャッシュ層を選択的にイネーブルにして、例えば対応するマイクロディスク202に関する許容可能なメモリアクセス性能を維持することが可能である。
【0024】
実施形態によっては、マイクロディスク202により受信された書き込みアクセス要求率に基づいてキャッシュ216の1つ又は2つ以上のキャッシュ層を動的にイネーブルにし又は動的にディセーブルにすることが可能である。本書で開示する例示的な技術は、書き込みアクセス率を使用して、不揮発性データストア204等の不揮発性データストアの信頼性及び耐用寿命を維持することが可能である。すなわち、図示の例の不揮発性データストア204は、単一データビットセル(例えば二重用途データビットセル206)が耐えることができると共にそこに格納されるデータの信頼性を保証することができる書き込みサイクルの量を示す書き込み耐久特性を有する。例えば、様々な技術タイプの不揮発性フラッシュメモリは、5000(1k)〜1000000(1M)書き込みサイクルの範囲の書き込み耐久性を有する。不揮発性メモリがその関連する書き込み耐久性しきい値を越えると、そこに格納されているデータはもはや精確であると信頼できないものとなる。
【0025】
図示の実施形態の不揮発性データストア204の書き込み耐久特性を維持するため、ひいてはマイクロディスク202の耐用寿命を延ばすために、本書で開示する例は、書き込みアクセス率しきい値及び/又は書き込み対読み出し(write-to-read)比しきい値を使用することができる。書き込みアクセス率しきい値は、1秒(又は他の時間の単位、例えば、ミリ秒、分その他)あたりの書き込みアクセスの割合を示し、これを越えた場合には、ローカルプロセッサ214がキャッシュ216の1つ又は2つ以上のキャッシュ層を動的にイネーブルにする。監視中のマイクロディスク202の書き込みアクセス率が、前記書き込みアクセス率しきい値を下回った場合には、ローカルプロセッサ214は、1つ又は2つ以上のキャッシュ層をディセーブルにすることが可能である。
【0026】
書き込み対読み出し比しきい値は、特定期間にわたる読み出しアクセスに対する書き込みアクセスの比を示すものである。実施形態によっては、マイクロディスク202の測定された書き込み対読み出し比が前記書き込み対読み出し比しきい値を下回っている場合に、ローカルプロセッサ214が、不揮発性データストア204に対する最近のアクセスが少数の書き込み要求を含んでいたことに基づいて、キャッシュ216の1つ又は2つ以上のキャッシュ層を動的にディセーブルにすることが可能である。マイクロディスク202の測定された書き込み対読み出し比が前記書き込み対読み出し比しきい値を越えた場合には、ローカルプロセッサ214は、不揮発性データストア204に対する最近のアクセスが所望回数よりも多くの書き込み要求を含んでいたことに基づいて、キャッシュ216の1つ又は2つ以上のキャッシュ層を動的にイネーブルにすることが可能である。
【0027】
マイクロディスク202の動作中に、書き込みアクセス率及び/又は書き込み対読み出し比を監視し、及びそれら監視された値に基づいて1つ又は2つ以上のキャッシュ層を動的にイネーブルにすることにより、不揮発性データストア204の記憶セル(例えば、二重用途データビットセル206)の信頼性及び寿命を悪化させ又は低下させ得る量の書き込みに耐え又はかかる書き込みを受けることから該不揮発性データストア204を保護することが可能となる。すなわち、1つ又は2つ以上のキャッシュ層がイネーブルにされた際に、不揮発性データストア204の代わりに該1つ又は2つ以上のキャッシュ層に対して書き込みが最初に行われる。最終的に又はそれに続いてライトスルー操作を用いて、比較的長期であるとみなされたあらゆるキャッシュ済みデータを不揮発性データストア204にライトスルーすることが可能であり、一方、短期の(例えば頻繁に変化している)キャッシュ済みデータは、不揮発性データストア204にライトスルーしないことが可能である。このようにして、本開示の例を使用して、頻繁に変化するデータが不揮発性データストアに打撃を与えることを防止し、ひいては不揮発性データストア204等の不揮発性データストアの書き込み耐久特性を保護することが可能となる。
【0028】
実施形態によっては、複数の書き込みアクセス率しきい値及び/又は複数の書き込み対読み出し比しきい値を定義し、それらのしきい値を越えたか否かに基づいてキャッシュ216内の様々なキャッシュ層を選択的にイネーブル/ディセーブルにすることが可能である。例えば、3層キャッシュ構造では、第1の書き込みアクセス率しきい値(又は第1の書き込み対読み出し比しきい値)を使用して第1のキャッシュ層をイネーブル/ディセーブルにすべきときを制御し、第2の書き込みアクセス率しきい値(又は第2の書き込み対読み出し比しきい値)を使用して第2のキャッシュ層をイネーブル/ディセーブルにすべきときを制御し、及び第3の書き込みアクセス率しきい値(又は第3の書き込み対読み出し比しきい値)を使用して第3のキャッシュ層をイネーブル/ディセーブルにすべきときを制御することが可能である。
【0029】
実施形態によっては、しきい値ヒステリシス技術を使用して、カオス的振動態様でキャッシュ層を繰り返しイネーブル/ディセーブルにするのを回避することが可能である。一実施形態のしきい値ヒステリシス技術では、1つ又は2つ以上のキャッシュ層を所定のしきい値期間にわたりイネーブル又はディセーブルにした後、該1つ又は2つ以上のキャッシュ層のイネーブル又はディセーブル状態を続いて変化させるべきか否かを再考する。かかる例示的なしきい値ヒステリシス技術では、過去のデータアクセスタイプ(例えば読み出し又は書き込みアクセスタイプ)が一定期間にわたりそれぞれの読み出し及び書き込みカウントを用いて監視され追跡される。次いで、ローカルプロセッサ214が(例えば1つ又は2つ以上の書き込みアクセス率しきい値及び/又は1つ又は2つ以上の書き込み対読み出し比しきい値に基づいて)該過去のアクセスタイプ情報を解析して、1つ又は2つ以上のキャッシュ層を後続の一定時間(上述の過去のアクセスタイプ情報を収集する期間と同じにすることが可能)にわたりディセーブル/イネーブルにすることが可能である。次いで、該プロセスを繰り返して、別の一組の過去のアクセスタイプ情報を収集し、続いて、1つ又は2つ以上のキャッシュ層のイネーブル又はディセーブル状態を変更すべきときを再評価することが可能である。
【0030】
他の例示的なしきい値ヒステリシス技術は、第1のしきい値に基づいて(例えば第1の書き込みアクセス率しきい値又は第1の書き込み対読み出し比しきい値を越えたことに基づいて)1つ又は2つ以上のキャッシュ層をイネーブルにし、及び第2のしきい値に基づいて(例えば第2の書き込みアクセス率しきい値又は第2の書き込み対読み出し比しきい値を下回ったことに基づいて)該キャッシュ層をディセーブルにすることを含む。
【0031】
上述のようにしきい値ヒステリシス技術を使用する例では、キャッシュ層のイネーブル又はディセーブル状態は、アクセスの度にキャッシュ層のイネーブル/ディセーブル状態を変更したり再評価したりするのではなく、複数の後続のデータアクセスについては同じ状態に維持される。このように、複数の後続のデータアクセスがキャッシュ済みデータに依存しないため、長期にわたるキャッシュ層への電力供給を排除し又はゲートオフすることにより該キャッシュ層をディセーブルにすることが可能となり、この場合、該ディセーブルにされたキャッシュ層からの内容の消去(例えば内容の消失)の結果として生じる性能劣化はほとんど無く又は全く無い。キャッシュ層のイネーブル又はディセーブル状態の変更に続く複数の後続のデータアクセスは、複数の単一読み出しアクセス、複数の単一書き込みアクセス、複数のバーストモードアクセス(この場合には幾つかのデータロケーションにおけるデータは単一の要求に基づいてアクセスされる)、及び/又は1つ又は2つ以上の単一読み出しアクセス、1つ又は2つ以上の単一書き込みアクセス、及び/又は1つ又は2つ以上のバーストモードアクセスの任意の組み合わせを含むことが可能である。
【0032】
上述したようなキャッシュ層の動的なディセーブル処理は、ストリーミング用途、メディアデコーディング用途、又は継続的、連続的、疑似継続的、疑似連続的、又は散発的に大量のデータを読み出して特定のタスク、操作、又は処理を達成する他のあらゆる用途で有利に用いることが可能である。読み出しアクセスは、図2の不揮発性データストア204等の不揮発性メモリの書き込み耐久特性を大きく劣化させることはないので、読み出し動作は、キャッシュ216を使用することなく不揮発性データストア204に対して直接行うことが可能である。アクセスパターンは主に書き込み動作となるよう変化するので、キャッシュ層のイネーブル/ディセーブル状態の再評価は、高速又は大量の書き込み動作時に不揮発性データストア204に対する過度の書き込みアクセスを防止し又は低減させるように、キャッシュ216の1つ又は2つ以上のキャッシュ層をイネーブルにすることに通ずるものとなる。
【0033】
本書で開示する図示の例では、サーバシステム(例えば図3のマイクロディスクブレードサーバ300)内の各マイクロディスクは、該サーバシステム内の他のマイクロディスクによりイネーブルにされたキャッシュ層の量にかかわらず、一定量のキャッシュ層を選択的にイネーブルにすることが可能である。このようにして、各マイクロディスクは、その電源使用効率及び/又は性能を他のマイクロディスクとは無関係に最適化することが可能である。
【0034】
図3は、図2のマルチマイクロディスク基板200及びマイクロディスク202を用いて実施された例示的な大容量マイクロディスクブレードサーバ300を示しており、該マルチマイクロディスク基板200は、そのネットワークインタフェイス208を介して該マイクロディスクブレードサーバ300の物理ソケット(図示せず)にプラグインされ又は接続されるドーターボードとして実施されている。例示的な実施形態によっては、図4に示すようなデュアルインラインメモリモジュール400を使用して該マルチマイクロディスク基板200を実施することが可能である。該マルチマイクロディスク基板200と該マイクロディスクブレードサーバ300との接続は、電気的又は光学的なものとすることが可能である。
【0035】
マイクロディスクブレードサーバ300は、マルチマイクロディスク基板200と実質的に類似し又はそれと同一の複数の他のマルチマイクロディスク基板を含み、該マルチマイクロディスク基板の各々は、マイクロディスクブレードサーバ300のそれぞれの光学的又は電気的な物理ソケットにプラグインされ又は接続される。このように、該マイクロディスクブレードサーバ300上の単一のマルチマイクロディスク基板ソケットは、該マイクロディスクブレードサーバ300を複数のマイクロディスク(例えば複数のマイクロディスク202)にインタフェイスすることを可能にする。このため、追加のマイクロディスク(例えばマイクロディスク202)をマルチマイクロディスク基板(例えばマルチマイクロディスク基板200)にプラグインすることにより、又は追加のマルチマイクロディスク基板(例えば実質的にマルチマイクロディスク基板200と類似し又は同一のもの)をマイクロディスクブレードサーバ300に追加することにより、該マイクロディスクブレードサーバ300のデータ記憶容量を拡張させることが可能である。
【0036】
マイクロディスクブレードサーバ300は、マルチマイクロディスク基板(例えばマルチマイクロディスク基板200)の全てを光学的又は電気的に互いに接続し及びネットワークインタフェイス302を介して外部ネットワークへ接続するネットワークを含む。例示的な実施形態によっては、該マイクロディスクブレードサーバ300の該ネットワークは、ファットツリートポロジーを使用して一組のマルチマイクロディスク基板を接続して実施することが可能であり、及び完全な二分帯域幅を提供することが可能である。
【0037】
マイクロディスクブレードサーバ300には、接続された各マルチマイクロディスク基板(例えばマルチマイクロディスク基板200)と各マルチマイクロディスク基板から熱を消散させるためのアルミニウム板304とに熱的に結合された集合冷却システムを配設することが可能である。
【0038】
マイクロディスク202は、マルチマイクロディスク基板200に半田付けすること、又はマルチマイクロディスク基板200上のソケットを介して接続することが可能である。その相互接続は、光学的又は電気的なものとすることが可能である。図示の例では、マルチマイクロディスク基板200の各マイクロディスク202に対する実装帯域幅は、配線本数の削減および信号経路の単純化を可能とすべく比較的狭くなっている。例示的な実施形態によっては、マイクロディスク202は、クラスタ内での高速・広帯域幅の通信及び一層低速の大域的通信のために、マルチマイクロディスク基板200上でクラスタ化することが可能である。マルチマイクロディスク基板200には、クラスタ間通信及びクラスタ・ネットワークインタフェイス間通信を可能とすべく、クラスタ間リンクを配設することが可能である。
【0039】
図3に示す例では、マイクロディスク202は3Dダイスタックとして示されており、この場合、データストア204は複数の積層ICダイ306から形成され、ローカルプロセッサ214及びキャッシュ216は、該積層ICダイ306の各々に電気的又は光学的なシリコン貫通バイア(TSV)308を使用して接続されている。図5には、例示的な3Dスタックチップ構成500におけるマイクロディスク202の斜視図が示されている。図5に示す例では、上部ダイ502上にローカルプロセッサ214及びキャッシュ216が形成されている。該上部ダイ502は、データストアICダイ306上に積層されており、該データストアICダイ306はパッケージ基板504上に積層されている。このため、図示の例では、ローカルプロセッサ214及びキャッシュ216は同一のシリコン層(例えば上部ダイ502)上に形成され、不揮発性データストア204は、該ローカルプロセッサ214及びキャッシュ216を含む該シリコン層とは別の1つ又は2つ以上のシリコン層(例えば積層ICダイ306)上に形成されている。図示の例では、パッケージ基板504は、ボールグリッドアレイ(BGA)インタフェイスを含むが、他のあらゆるタイプのパッケージングを用いることが可能である。
【0040】
図3に示す例に戻ると、マイクロディスク202には、該マイクロディスク202を外部回路(例えばマルチマイクロディスク基板200)にインタフェイスする物理インタフェイス310が配設されている。該物理インタフェイス310は、光学的コネクタ又は電気的コネクタを用いて実施することが可能である。図示の例では、該物理インタフェイス310は、マイクロディスク202を1つ又は2つ以上の電源ライン、クロック信号、及びデータ通信インタフェイスにインタフェイスする。例示的な実施形態によっては、PCI Expressインタフェイスを使用してマイクロディスク202をマルチマイクロディスク基板200にインタフェイスすることが可能である。例示的な実施形態によっては、物理インタフェイス310は、チップパッケージインタフェイス(例えば図5のパッケージ基板504のBGAインタフェイス)とすることが可能であり、及びマイクロディスク202は、マルチマイクロディスク基板200上に半田付けすることが可能である。他の例示的な実施形態では、物理インタフェイス310は、マイクロディスク202をマルチマイクロディスク基板200上に取り外し可能にプラグインすることが可能となるように、ソケットインタフェイスとすることが可能である。
【0041】
図6は、図2ないし図5のマイクロディスク202の例示的な詳細図である。以下で説明するマイクロディスク202の様々な部分は、単一のICダイ内の集積回路として、又は別個のICダイ内の集積回路として、実施することが可能である。追加的又は代替的に、マイクロディスク202は、1つ又は2つ以上の特定用途集積回路(ASIC)、1つ又は2つ以上のプログラマブルロジックデバイス(PLD)、1つ又は2つ以上のフィールドプログラマブルロジックデバイス(FPLD)、個別論理素子、ハードウェア、ファームウェアその他の任意の組み合わせを用いて実施することが可能である。また、マイクロディスク202は、上述の技術の任意の組み合わせ、例えば、ファームウェア、ソフトウェア、個別論理素子、及び/又はハードウェアの任意の組み合わせとして実施することが可能である。以下では、マイクロディスク202は、図6に関連して説明するが、他の例示的な実施形態は、追加の及び/又は代替的な構造を含むことが可能である。例えば、図6に示すマイクロディスク202の幾つかの部分は、除去すること又は他の部分と結合させることが可能である。
【0042】
図6を詳細に参照すると、マイクロディスク202には、データストア204及びローカルプロセッサ214が配設されている。上述のように、データストア204は、1つ又は2つ以上のICダイ306(図3及び図4)を使用して実施することが可能である。このため、例示的な実施形態によっては、データストア204は、図6に示すマイクロディスク202のローカルプロセッサ214及びその他の部分とは別個に1つ又は2つ以上のICダイ上で実施することが可能である。代替的に、データストア204、ローカルプロセッサ214、及びマイクロディスク202のその他の部分を、同一のICダイ上に形成することが可能である。
【0043】
マイクロディスク202の様々な部分に電力を供給するために、マイクロディスク202には電源602が配設される。該電源602は、物理インタフェイス310から補助電力を受容することが可能であり、及びマイクロディスク202の様々な部分に供給するための電力を調整することが可能である。図5の3Dスタックチップ500等の3Dスタックを使用してマイクロディスク202が実施される例示的な実施形態では、電源602は、単一のダイ(例えば図5の上部ダイ502)上に配設することが可能であり、及び電源602は、該ダイ内の複数の回路へ、及びTSV(例えば図3のTSV308)を使用して3Dスタックチップ500の他のダイ(例えば図3及び図5に示すデータストアICダイ306)へ、電力を供給することが可能である。
【0044】
異なるレベルのメモリアクセス性能を可能にすべく、マイクロディスク202には複数のキャッシュ層が配設され、該複数のキャッシュ層の各々は選択的にかつ別個にイネーブルにし及び/又は選択的にかつ別個にディセーブルにすることが可能である。3つのかかるキャッシュ層が、選択的にイネーブルにすることが可能なレイヤ1キャッシュ604a、選択的にイネーブルにすることが可能なレイヤ2キャッシュ604b、及び選択的にイネーブルにすることが可能なレイヤ3キャッシュ604cとして図6に示されている。図示の例では、該選択的にイネーブルにすることが可能なキャッシュ層604a-604cは、図2及び図3及び図5のキャッシュ216を形成するものである。該キャッシュ層604a-604cを選択的及び/又は動的にイネーブル/ディセーブルにすることが可能な能力により、階層的に扁平化することが可能な(hierarchically flattenable)な不揮発性データ記憶装置としてマイクロディスク202を構成することが可能となる。かかる階層的に扁平化可能なアーキテクチャでは、キャッシュ層604a-604cの各々を漸進的にディセーブルにして、ローカルプロセッサ214と不揮発性データストア204との間のメモリ階層を漸進的に扁平化し又は削減することが可能である。キャッシュ層604a-604cの全てがディセーブルにされたとき、ローカルプロセッサ214と不揮発性データストア204との間のメモリ階層が完全に扁平化されて、ローカルプロセッサ214がキャッシュ層604a-604cを使用することなく該キャッシュ層604a-604cをバイパスして(メモリコントローラ622を介して)不揮発性データストア204に直接アクセスすることが可能となる。
【0045】
本書で開示する図示の例では、サーバシステム(例えば図3のマイクロディスクブレードサーバ300)内の各マイクロディスク(例えばマイクロディスク202)は、該サーバシステム内の他のマイクロディスク内のイネーブルにされた一組のキャッシュ層とは無関係に選択的にイネーブルにされる一組のキャッシュ層(例えば選択的にイネーブルにすることが可能なキャッシュ層604a-604c)を有することが可能である。例えば、第1のマイクロディスクは、イネーブルにされた1つのキャッシュ層を有することが可能であり、一方、第2のマイクロディスクは、イネーブルにされた2つのキャッシュ層を有することが可能である。このようにして、各マイクロディスクの電力使用効率を、そのデータ記憶/アクセス用法に基づいて、他のマイクロディスクとは無関係に最適化することが可能である。例示的な実施形態によっては、選択的にイネーブルにすることが可能なキャッシュ層604a-604cは、設計時又は製造時に選択的にイネーブル/ディセーブルにすることが可能であり、一方、別の例示的な実施形態では、選択的にイネーブルにすることが可能なキャッシュ層604a-604cは、実行時及び/又は設計時又は製造時に選択的にイネーブル/ディセーブルにすることが可能である。
【0046】
選択的にイネーブルにすることが可能なキャッシュ層604a-604cを選択的に及び別個にイネーブルにするために、マイクロディスク202には、選択的にイネーブルにすることが可能なキャッシュ層604a-604cにそれぞれ接続されるゲートドライバ606a-606cが配設される。更に、該マイクロディスク202には、ローカルプロセッサ214と該ゲートドライバ606a-606cのイネーブル入力との間に接続されるキャッシュ層イネーブルライン608が配設される。このようにして、ローカルプロセッサ214は、ゲートドライバ606a-606cのそれぞれをイネーブルにして、電源602から選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの選択されたものへの電力供給を可能にすることにより、選択的にイネーブルにすることが可能なキャッシュ層604a-604cの何れも選択的にイネーブルにすることが可能となる。
【0047】
選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちイネーブルにされていないものをバイパスすることを可能にするために、マイクロディスク202にキャッシュ層バイパスバス610が配設される。選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの何れもイネーブルにされていない例示的な実施形態では、キャッシュ層バイパスバス610は、ローカルプロセッサ214とデータストア204との間の(メモリコントローラ622を介した)直接接続として働き、これによりキャッシュ操作を全く介在することなくデータストア204に対してデータアクセスを行う(及び必要に応じて電源が遮断されたキャッシュと共に動作する)ことが可能となる。選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つ又は2つ以上がイネーブルにされると、キャッシュ層バイパスバス610は、ディセーブルされているキャッシュ層をバイパスすると共に該選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つ又は2つ以上のイネーブルにされたものを介してメモリアクセスを行うことを可能にする。
【0048】
更に、キャッシュ間データフローを可能にすべく、マイクロディスク202には、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの隣接するそれぞれの間にキャッシュ間バス612が配設される。選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つがディセーブルにされると、それに対応するキャッシュ間バス612のうちの1つがアイドル状態となる。所与の特定用途で許容可能な始動レイテンシの量に応じて、キャッシュ間バス612上の電力を維持することも維持しないことも可能である。
【0049】
図示の例では、ローカルプロセッサ214は、データストア204にアクセスするために使用されるメモリアクセスクロックの周波数に基づいて、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのそれぞれ及び/又はそれらキャッシュ層604a-604cの組をイネーブル又はディセーブルにすべきときを判定する。すなわち、ローカルプロセッサ214(又はマイクロディスク202内の他のロジック)は、例えばマイクロディスクブレードサーバ300からクロックインタフェイス614を介して受信したクロック信号の周波数をアップスケーリング又はダウンスケーリングすることが可能である。周波数スケーリングは、例えば、マイクロディスク202の作業負荷又は使用量に基づくものとすることが可能である。局所的にスケーリングされたクロック信号の周波数を検出するために、マイクロディスク202にクロック検知手段616が配設される。実施形態によっては、データストア204のレイテンシ又は帯域幅が性能に大きな影響を与えないほどメモリアクセスクロック周波数が低い(例えば所定のしきい値未満である)ことを該クロック検知手段616が検出した際に、ローカルプロセッサ214が、レイヤ1キャッシュ604aのみをイネーブルにすることが可能であり、又は選択的にイネーブルにすることが可能なキャッシュ層604a-604cの全てをディセーブルにすることが可能である。メモリアクセスクロックが高くスケーリングされた際に、ローカルプロセッサ214は、例えばマイクロディスク202に関する許容可能なメモリアクセス性能を維持するために、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの1つ又は2つ以上をイネーブルにすることが可能である。
【0050】
要求側の装置(例えばネットワーク装置又は他のマイクロディスク)とデータ交換を行うため、及びデータアクセス要求を受信するために、マイクロディスク202にはネットワークインタフェイス618が配設されている。
【0051】
不揮発性データストア204に対するアクセス要求(例えば読み出し及び書き込みアクセス要求)を処理するために、マイクロディスク202にはメモリコントローラ622が配設されている。すなわち、ローカルプロセッサ214が不揮発性データストア204にアクセスすることになる(例えばキャッシュ層604a-604cがディセーブルにされており又はキャッシュミスが発生した)場合に、ローカルプロセッサ214は、メモリコントローラ622へデータアクセス要求を送信する。該メモリコントローラ622は、該データアクセス要求を処理して、不揮発性データストア204に対する1つ又は2つ以上のデータの書き込み(例えば単一書き込みアクセス又はバーストモード書き込みアクセス)を行い又は1つ又は2つ以上のデータの読み出し(例えば単一読み出しアクセス又はバーストモード読み出しアクセス)を行う。読み出しアクセスの場合、メモリコントローラ622は、要求されたデータをキャッシュ間バス612を介してローカルプロセッサ214へ返す。図示の例では、メモリコントローラ622は、ローカルプロセッサ214及びキャッシュ層604a-604cと同一のシリコン層(例えば上部ダイ502)に配置されている。
【0052】
対象とする所与の期間にわたり様々な過去のデータアクセスタイプ(例えば読み出しアクセスタイプ及び/又は書き込みアクセスタイプ)の過去の発生を生成し、追跡し、集計し、又は計数するために、図示の例のマイクロディスク202には、書き込みカウンタ(W CNTR)624、読み出しカウンタ(R CNTR)626、及びタイマ628が配設されている。該図示の例では、該書き込みカウンタ624、該読み出しカウンタ626、及び該タイマ628は、メモリコントローラ622内に配置されている。しかし、該書き込みカウンタ624、該読み出しカウンタ626、及び該タイマ628は、マイクロディスク202内の任意の場所に配置することが可能である。
【0053】
動作時、メモリコントローラ622は、書き込み要求を受信した際に書き込みカウンタ624を増分させる。該メモリコントローラ622は、読み出し要求を受信した際には読み出しカウンタ626を増分させる。実施形態によっては、メモリコントローラ622は、対応する書き込み要求又は読み出し要求でアクセスするよう要求されたデータの量だけ、カウンタ624,626を増分させる。例えば、単一読み出しアクセス要求の場合、メモリコントローラ622は読み出しカウンタ626を1だけ増分させる。しかし、バーストモード読み出しアクセスが要求された場合には、メモリコントローラ622は、該バーストモード読み出しアクセス要求において要求されたデータの量だけ読み出しカウンタ626を増分させる。かかる例では、メモリコントローラ622は、各書き込みアクセス要求で要求されたデータアクセスの量に基づき上記と同様の態様で書き込みカウンタ624を増分させる。他の例では、メモリコントローラ622は、データアクセス要求が単一データアクセス要求であるかバーストモードアクセスであるかにかかわらずカウンタ624,626を1だけ増分させる。
【0054】
マイクロディスク202が、書き込み対読み出し比基準ではなく書き込みアクセス率基準を用いてキャッシュ層604a-604cのうちの1つ又は2つ以上をイネーブル/ディセーブルにするか否かを評価する実施形態では、読み出しカウンタ626を省略することが可能である。
【0055】
図示の例では、メモリコントローラ622は、キャッシュ層604a-604cのうちの1つ又は2つ以上のディセーブル又はイネーブル状態を変更すべきか否かの再評価を行う前に、カウンタ624,626を使用して過去のデータアクセス要求を追跡する期間をタイマ628を使用して追跡する。実施形態によっては、タイマ628を使用して追跡される期間は、マイクロディスク202の製造時に設定することが可能であり、及び/又はマイクロディスク202の動作時にソフトウェア又はファームウェアを介して調節可能な設定とすることが可能である。該期間は、マイクロディスク202内のデータにアクセスすることになる1つ又は2つ以上のアプリケーションのタイプ及び/又はマイクロディスク202の1つ又は2つ以上の利用形態に基づくものとすることが可能である。例えば、マイクロディスク202が情報が頻繁に更新される業務文書のために主に使用される(例えばマイクロディスク202が比較的高い割合の書き込みアクセスを受け又は比較的高い書き込み対読み出し比を有することになる)場合には、前記期間は比較的短く設定することが可能である。マイクロディスク202が主にアーカイブデータ及びストリーミングデータのために使用される(例えばマイクロディスク202が比較的低い割合の書き込みアクセス受け又は比較的低い書き込み対読み出し比を有することになる)場合には、前記期間は比較的長く設定することが可能である。
【0056】
図7ないし図9は、図2ないし図6の例示的なマイクロディスク202の処理を実施するために使用することができる処理を表す例示的なフローチャートである。実施形態によっては、図7ないし図9の例示的な処理のうちの1つ又は2つ以上は、実行時に図7、図8及び/又は図9に示す処理を装置(例えば図2,3,5,6のローカルプロセッサ214、プログラム可能なコントローラ、又はその他のプログラム可能なマシンもしくは集積回路)に実行させるマシン読み取り可能命令を使用して実施することが可能である。例えば、図7、図8及び/又は図9の例示的な処理は、プロセッサ、コントローラ、及び/又は他の任意の適当な処理装置を使用して実行することが可能である。例えば、図7、図8及び/又は図9の例示的な処理は、プロセッサ又はコントローラに関連づけられたフラッシュメモリ、リードオンリーメモリ(ROM)、及び/又はランダムアクセスメモリ(RAM)といった有形のコンピュータ読み取り可能媒体又は有形のマシン読み取り可能媒体上に格納された符号化命令(例えばコンピュータ読み取り可能命令)で実施することが可能である。本書で用いる場合、用語「有形のコンピュータ読み取り可能媒体」は、あらゆるタイプのコンピュータ読み取り可能記憶手段を含み且つ伝搬する信号を除外するよう明確に定義されたものである。追加的に又は代替的に、図7、図8及び図9の例示的な処理は、フラッシュメモリ、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、キャッシュ、又は情報が任意の期間にわたり(例えば、長期間、永久的、短期間、一時的なバッファリング、及び/又は情報のキャッシングのために)格納される他のあらゆる記憶媒体といった、非一時的なコンピュータ読み取り可能媒体上に格納された符号化命令(例えばコンピュータ読み取り可能命令)を使用して実施することが可能である。本書で用いる場合、用語「非一時的なコンピュータ読み取り可能媒体」は、あらゆるタイプのコンピュータ読み取り可能媒体を含み且つ伝搬する信号を除外するよう明確に定義されたものである。」
代替的に、図7、図8及び/又は図9の例示的な処理は、1つ又は2つ以上の特定用途集積回路(ASIC)、1つ又は2つ以上のプログラマブルロジックデバイス(PLD)、1つ又は2つ以上のフィールドプログラマブルロジックデバイス(FPLD)、個別論理素子、ハードウェア、ファームウェア等のうちの1つ又は2つ以上の任意の組み合わせを使用して実施することが可能である。また、図7、図8及び/又は図9の例示的な処理は、上述の技術の1つ又は2つ以上の任意の組み合わせとして、例えば、ファームウェア、ソフトウェア、個別論理素子、及び/又はハードウェアの任意の組み合わせとして、実施することが可能である。更に、図7、図8及び図9の例示的な処理は、図7、図8及び図9のフローチャートに関して説明するが、図7、図8及び/又は図9の処理を実施する他の方法を用いることも可能である。例えば、各ブロック実行順を変更することが可能であり、及び/又は一部のブロックを変更し、削除し、分割し、又は組み合わせることが可能である。更に、図7、図8及び図9の例示的な処理の何れか又は全てを逐次に実行し、及び/又は例えば別個の処理スレッド、プロセッサ、装置、個別論理素子、回路その他により並列的に実行することが可能である。
【0057】
図7は、図2ないし図6のマイクロディスク202内のデータにアクセスするために使用することができる例示的な処理のフローチャートを示している。動作時に、マイクロディスク202は、ローカルプロセッサ214においてデータアクセス要求を受信する(ブロック702)。ローカルプロセッサ214は、該データアクセス要求をデコードする(ブロック704)。ローカルプロセッサ214が、キャッシュ層が全く(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604cの何れも)イネーブルにされていないと判定した場合(ブロック706)、ローカルプロセッサ214は、何れのキャッシュ層も使用することなく、要求されたデータアクセス要求をデータストア204(図2、図3及び図6)に対して直接実行する(ブロック708)。また、ローカルプロセッサ214が、1つ又は2つ以上のキャッシュ層がイネーブルにされていると判定した場合には、該ローカルプロセッサ214は、該1つ又は2つ以上のイネーブルにされたキャッシュ層(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの選択されたもの)を介して、要求されたデータアクセス要求を実行する(ブロック710)。次いで図7の処理の例は終了する。
【0058】
図8は、図2ないし図6のマイクロディスク202内の様々な量のキャッシュ層(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604c)を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートを示している。図8の例示的な処理は、初期化段階802及びデータアクセス要求処理段階804を有するものとして示されている。初期化段階802において、マイクロディスク202は、その電源が投入され(すなわちイネーブルにされ又は低電力モード(例えばスリープモード)から出て)、及びその様々な部分(又はサブシステム)を初期化してデータアクセス要求の受信及び処理を開始する。データアクセス要求処理段階804において、マイクロディスク202は、外部装置(例えばネットワーク装置(例えばクライアントコンピュータ)又は他のマイクロディスク)からデータアクセス要求を能動的に受信し、データストア204(図2、図3及び図6)に対するデータアクセスを実行する。
【0059】
最初に、初期化段階802において、マイクロディスク202は、例えば、そのサブシステムへ電源602から電力を供給し、クロック信号をイネーブルにし、及び/又はクロック信号をスケーリングする、といった1つ又は2つ以上の初期化操作を実行する(ブロック808)。ローカルプロセッサ214は、マイクロディスク202で使用するためのキャッシュ層構成を決定する(ブロック810)。例えば、ローカルプロセッサ214は、マイクロディスク202のメモリアクセスクロックの周波数に基づいてイネーブル(又はディセーブル)にすべき選択的にイネーブルにすることが可能なキャッシュ層604a-604cの量を決定することが可能である。図6に関して上述したように、ローカルプロセッサ214は、クロック検知手段616(図6)を使用してメモリアクセスクロックの周波数を判定することが可能である。マイクロディスク202で使用するためのキャッシュ層構成を決定した後、ローカルプロセッサ214は、例えば図6に関して上述したキャッシュ層イネーブルライン608及びゲートドライバ606a-606cを使用して、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの0または1つ以上をイネーブル(又はディセーブル)にする(ブロック812)。ローカルプロセッサ214が、ブロック810において、キャッシュを全く使用することなく動作することが可能であると判定した場合には、ローカルプロセッサ214は、選択的にイネーブルにすることが可能なキャッシュ層604a-604cの全てをディセーブルにする(ブロック812)。
【0060】
データアクセス要求処理段階804において、ローカルプロセッサ214は、データアクセス要求を受信し処理する(ブロック814)。ローカルプロセッサ214は、そのキャッシュ層構成を変更すべきか否かを判定する(ブロック816)。例えば、ローカルプロセッサ214は、クロック検知手段616がマイクロディスク202のメモリアクセスクロックの周波数の変化を検出したときは何時でも、そのキャッシュ層構成を変更することを決定することが可能である。ローカルプロセッサ214がそのキャッシュ層構成を変更すべきことを決定した場合には(ブロック816)、ローカルプロセッサ214は異なるキャッシュ層構成を決定する(ブロック818)。例えば、ローカルプロセッサ214は、例えば許容可能なメモリアクセス性能を維持するため及び/又は不揮発性データストア204の書き込み耐性を維持するために、イネーブルにすべき異なる量の選択的にイネーブルにすることが可能なキャッシュ層604a-604cを決定することが可能である。ローカルプロセッサ214は次いで、例えば図6に関して上述したキャッシュ層イネーブルライン608及びゲートドライバ606a-606cを使用して、選択的にイネーブルにすることが可能なキャッシュ層604a-604cのうちの0または1つ以上をイネーブル(又はディセーブル)にする(ブロック820)。次いで制御はブロック814に戻る。ブロック816,818,820を実施するために使用することができる例示的な処理については、図9のフローチャートに関して後述する。
【0061】
図8に示す実施形態では、ローカルプロセッサ214がマイクロディスク202のキャッシュ層構成を変更すべきでないと判定した場合、ローカルプロセッサ214は(例えば図6のネットワークインタフェイス618を介して受信したコマンドに基づいて)電源を遮断すべきか否かを判定する(ブロック824)。ローカルプロセッサ214が電源を遮断すべきでないと判定した場合には、制御はブロック814に戻る。そうでない場合には、ローカルプロセッサ214がマイクロディスク202の電源を遮断して(ブロック826)、図8の例示的な処理が終了する。
【0062】
図9は、過去のデータアクセスタイプ情報に基づいて図2ないし図6のマイクロディスク202の使用中に様々なキャッシュ層(例えば図6の選択的にイネーブルにすることが可能なキャッシュ層604a-604c)を選択的にイネーブル及び/又はディセーブルにするために使用することができる例示的な処理のフローチャートである。最初に、メモリコントローラ622(図6)が、不揮発性データストア204内のデータにアクセスするためにマイクロディスク202において受信したデータアクセスを監視する(ブロック902)。書き込みカウンタ624及び/又は読み出しカウンタ626(図6)は、それぞれの1つ又は2つ以上の過去のデータストアアクセスカウントを更新させる(ブロック904)。例えば、図6に関して上述したように、各データ書き込みアクセス毎に、書き込みカウンタ624は、1または2以上の増分だけそのカウントを増分させることが可能であり、及び各データ読み出しアクセス毎に、読み出しカウンタ626は、1または2以上の増分だけそのカウントを増分させることが可能である。実施形態によっては、マイクロディスク202が所与の書き込みアクセス率に基づいてキャッシュ層をイネーブル/ディセーブルにすべきか否かを評価する場合に書き込みカウンタ624が更新され、読み出しカウンタ626は使用されない。別の実施形態では、マイクロディスク202が書き込み対読み出し比に基づいてキャッシュ層をイネーブル/ディセーブルにすべきか否かを評価する場合に、書き込みカウンタ624及び読み出しカウンタ626の両方が更新される。
【0063】
メモリコントローラ622は、タイムアウト期間が満了したか否かを判定する(ブロック906)。例えば、メモリコントローラ622は、タイマ628(図6)へポーリングを行って対象となる期間が満了しているか否かを判定することができる。タイマ628を使用して追跡される例示的な期間は、図6に関して上述した通りである。該タイムアウトが満了していない場合(ブロック906)には、制御はブロック902に戻る。該タイムアウトが満了している場合(ブロック906)には、制御はブロック908に進む。
【0064】
ローカルプロセッサ214は、書き込みカウンタ624及び/又は読み出しカウンタ626の読み出しを、例えばそれらのカウント値をそれぞれのレジスタにロードすることにより行う(ブロック908)。メモリコントローラ622は次いで、書き込みカウンタ624及び/又は読み出しカウンタ626をリセットし(ブロック910)、及びタイマ628をリセットし再始動させる(ブロック912)。ブロック912から、制御はブロック902へと戻ってデータアクセスの監視及び追跡を続行し、及び制御はまたブロック914へと進む。
【0065】
ローカルプロセッサ214は、ブロック908で取得した書き込みカウント及び/又は読み出しカウントに基づいて過去のアクセスタイプ基準を生成し(ブロック914)。実施形態によっては、該過去のアクセスタイプ基準は、書き込みカウンタ624により追跡された書き込みカウント及びタイマ628により追跡された期間に基づく(例えば該書き込みカウントを該期間で除算することに基づく)書き込みアクセス率である。別の実施形態では、該過去のアクセスタイプ基準は、該書き込みカウントを該読み出しカウントで除算することにより求められる書き込み対読み出し比である。
【0066】
ローカルプロセッサ214は、過去のアクセスタイプ基準を所定のしきい値と比較する(ブロック916)。実施形態によっては、該しきい値は、マイクロディスク202の製造時に予め決定することが可能であり、及び/又はマイクロディスク202の動作時にソフトウェア及び/又はファームウェアにより設定できるようにすることが可能である。一実施形態による該しきい値は、マイクロディスク202内のデータにアクセスすることになるアプリケーションのタイプ及び/又はマイクロディスク202の利用形態に基づいて設定することが可能である。
【0067】
ローカルプロセッサ214は、ブロック916の比較に基づいて、1つ又は2つ以上のキャッシュ層604a-604c(図6)のイネーブル又はディセーブル状態を変更すべきか否かを判定する(ブロック918)。例えば、1つ又は2つ以上のキャッシュ層604a-604cがディセーブルにされている場合、且つ過去のアクセスタイプ基準が所定のしきい値を越える書き込みアクセス率(又は書き込み対読み出し比)である場合には、ローカルプロセッサ214は、比較的多くの書き込みアクセスの発生が観測されているため1つ又は2つ以上のキャッシュ層604a-604cをイネーブルにすべく1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきことを判定する。しかし、1つ又は2つ以上のキャッシュ層604a-604cが既にイネーブルにされている場合には、ローカルプロセッサ214は、該1つ又は2つ以上のキャッシュ層604a-604cが比較的多くの書き込みアクセスの発生を扱うべく既にイネーブルにされているため、該1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更する必要はない。該1つ又は2つ以上のキャッシュ層604a-604cがイネーブルにされている場合、且つ過去のアクセスタイプ基準が所定のしきい値を下回る書き込みアクセス率(又は書き込み対読み出し比)である場合には、ローカルプロセッサ214は、比較的少ない書き込みアクセスの発生が観測されているため1つ又は2つ以上のキャッシュ層604a-604cをディセーブルにすべく1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきことを判定することが可能である。しかし、1つ又は2つ以上のキャッシュ層604a-604cが既にディセーブルにされている場合には、ローカルプロセッサ214は、不揮発性データストア204に対する直接アクセスが可能となるなるよう該1つ又は2つ以上のキャッシュ層604a-604cが既にディセーブルにされているため、該1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更する必要はない。
【0068】
ローカルプロセッサ214が、1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきでないと判定した場合には(ブロック918)、制御はブロック922へ進む。しかし、ローカルプロセッサ214が、1つ又は2つ以上のキャッシュ層604a-604cのイネーブル/ディセーブル状態を変更すべきであると判定した場合には(ブロック918)、ローカルプロセッサ214は、ブロック916,918の分析に基づいて1つ又は2つ以上のキャッシュ層604a-604cをイネーブル又はディセーブルにする(ブロック920)。
【0069】
ローカルプロセッサ214は次いで、マイクロディスク202がデータアクセスの監視を停止すべきか否かを判定する(ブロック922)。例えば、マイクロディスク202が低電力モード(例えばスリープモード、アイドルモード、スタンバイモード、ターンオフ等)に入っている場合、ローカルプロセッサ214は、データアクセスの監視を停止すべきであると判定する。マイクロディスク202がデータアクセスの監視を続行することになる場合には(ブロック922)、制御はブロック902へ進む。そうでない場合には、制御はブロック924ヘ進み、ローカルプロセッサ214又はメモリコントローラ622が、書き込みカウンタ624及び/又は読み出しカウンタ626及びタイマ628をディセーブルにする。次いで図9の例示的な処理は終了する。
【0070】
ここで図10及び図11を参照する。同図に示す棒グラフは、図3の例示的なマイクロディスクブレードサーバ300の性能及び電力の改善と電力の内訳とを、図1の既知のデータサーバ100等の(同一の又はほぼ同様のデータ記憶容量を有する)既知のデータストレージシステムと比較して示したものである。図10及び図11に示す測定値は、高レベルのアプリケーションドリブンな資源のボトルネック解析を、スケールダウンした詳細なマイクロアーキテクチャシミュレーションと組み合わせて用いて取得したものである。電力の測定値のために、詳細なインベントリベースの電力モデルを使用して、ピーク電力供給及び実際の消費量を観測した。ベースラインシステムは、既知のシステムアーキテクチャ(例えば図1の既知のデータサーバ100)及び作業負荷の両方についてムーアの法則によるスケーリングを反映するよう積極的に選択したものである。該ベースラインシステムのアーキテクチャは、2ソケットの32コア80ワット・サーバプロセッサを有するブレードを含むよう選択した。該サーバプロセッサの各々は、4メモリチャネルの16GB DIMM、250MB/sの4テラバイト(TB)ハードディスクのアレイ又は1GB/sの1.2TBソリッドステートデバイス(SSD)のアレイ、2つの100Gb/s Ethernet NIC、及び完全な二分帯域幅をサポートするデータセンタネットワーキングインフラストラクチャのアレイに接続された。
【0071】
図10は、図3の例示的なマイクロディスクブレードサーバ300の性能及び電力の改善を図1の既知のデータストレージシステムと比較して示す棒グラフである。上述の積極的なベースラインと比較した場合であっても、図3の例示的なマイクロディスクブレードサーバ300は、2倍から18倍のエネルギー効率の改善を達成する。データアクセス性能は、殆どの場合において同様かそれ以上であるが、1ワットあたりの性能の改善の大部分は、改善された性能に対する改善されたエネルギーの節約によるものである。
【0072】
図11は、図3の例示的なマイクロディスクブレードサーバ300の様々なサブシステムについての消費電力の内訳を、図1の既知のデータストレージシステムの消費電力の内訳と比較して示す棒グラフである。図11では、表記「A」を有する棒は、ベースラインアーキテクチャについての消費電力の測定値に対応し、表記「B」を有する棒は、例示的なマイクロディスクブレードサーバ300についての消費電力の測定値に対応するものである。図11の結果は、エネルギー効率の良い技術を用いたエネルギー効率の良い機構と組み合わせた例示的なマイクロディスクブレードサーバ300の有効性を示している。この結果はまた、多様な作業負荷パターンに対する例示的なマイクロディスクブレードサーバ300の例示的なアーキテクチャの適応性を示している。
【0073】
上記では、特にハードウェア上で実行されるソフトウェアを含む、方法、装置、及び製品について開示したが、かかる方法、装置、及び製品は、単なる例示であり、制限とみなすべきではない、ということに留意されたい。例えば、これらのハードウェア及びソフトウェア構成要素の何れか又は全てを、専らハードウェアで、専らソフトウェアで、専らファームウェアで、又はハードウェア、ソフトウェア、及び/又はファームウェアの任意の組み合わせで、実施することが可能である、ということが意図されている。したがって、上記は、例示的な方法、装置、及び製品について説明したが、本開示の実施形態は、かかる方法、装置、及び製品を実施するための唯一の方法ではない。
【0074】
本書では、特定の方法、装置、及び製品について説明してきたが、本発明の範囲は、それらに限定されるものではない。本発明は、文字通りに又は均等論下で特許請求の範囲内に適正に含まれる全ての方法、装置、及び製品を網羅するものである。
【特許請求の範囲】
【請求項1】
データ記憶装置であって、
キャッシュ層と、
該キャッシュ層と通信可能なプロセッサであって、データ記憶アクセスタイプに基づきキャッシュ層イネーブルラインを介して前記キャッシュ層を動的にイネーブル又はディセーブルにするプロセッサと
を備えている、データ記憶装置。
【請求項2】
前記キャッシュ層イネーブルラインが前記キャッシュ層から電力をゲートオフする、請求項1に記載のデータ記憶装置。
【請求項3】
前記プロセッサと通信可能な不揮発性データ記憶手段を更に備えており、前記データ記憶アクセスタイプが、該不揮発性データ記憶手段にアクセスするための複数の要求に関するものである、請求項1に記載のデータ記憶装置。
【請求項4】
前記プロセッサが、前記データ記憶アクセスタイプのデータ記憶アクセス要求の発生の量に基づいて前記キャッシュ層イネーブルラインを介して前記キャッシュ層を動的にイネーブル又はディセーブルにする、請求項1に記載のデータ記憶装置。
【請求項5】
前記プロセッサ及び不揮発性データ記憶手段と通信可能なメモリコントローラを更に備えており、該プロセッサが、該不揮発性データ記憶手段に対するアクセスのタイプを示す過去のアクセスタイプ情報を取得し、該過去のアクセスタイプ情報が、前記キャッシュ層を動的にイネーブル又はディセーブルにすべきときの決定を容易にする、請求項1に記載のデータ記憶装置。
【請求項6】
不揮発性データ記憶手段に対する読み出しアクセスの読み出しカウントを追跡するための読み出しカウンタと、該不揮発性データ記憶手段に対する書き込みアクセスの書き込みカウントを追跡するための書き込みカウンタとを更に備えており、該読み出しカウント及び該書き込みカウントが、前記キャッシュ層を動的にイネーブル又はディセーブルにすべきときの決定を容易にする、請求項1に記載のデータ記憶装置。
【請求項7】
前記プロセッサが、前記書き込みカウント及び前記読み出しカウントの書き込み対読み出し比に基づいて前記キャッシュ層を動的にイネーブル又はディセーブルにすべきときを決定する、請求項6に記載のデータ記憶装置。
【請求項8】
前記プロセッサが、前記書き込み対読み出し比が所定のしきい値を越えた際に前記キャッシュ層をイネーブルにし、及び前記プロセッサが、前記書き込み対読み出し比が該しきい値を下回った際に前記キャッシュ層をディセーブルにする、請求項7に記載のデータ記憶装置。
【請求項9】
前記プロセッサが、不揮発性データ記憶手段に対する書き込みアクセス率が所定のしきい値を越えるのを阻止するよう前記キャッシュ層をイネーブルにする、請求項1に記載のデータ記憶装置。
【請求項10】
前記しきい値が、前記不揮発性データ記憶手段の書き込み耐久特性に関するものである、請求項9に記載のデータ記憶装置。
【請求項11】
前記キャッシュ層をディセーブルにすることが、該キャッシュ層をイネーブルにする前の不揮発性データ記憶手段に対する複数の後続のアクセスについて該キャッシュ層をディセーブルにすることからなる、請求項1に記載のデータ記憶装置。
【請求項12】
前記後続のアクセスが複数の単一読み出しアクセスを含む、請求項11に記載のデータ記憶装置。
【請求項13】
前記後続のアクセスが少なくとも1つのバーストモードアクセスを含む、請求項11に記載のデータ記憶装置。
【請求項14】
データ記憶装置であって、
パッケージ内の不揮発性データ記憶手段と、
前記パッケージ内にあり及び前記不揮発性データ記憶手段と通信可能であるローカルプロセッサとを備えており、該ローカルプロセッサ及び該不揮発性データ記憶手段が、動的にディセーブルにすることが可能なキャッシュ層を用いた扁平化することが可能な不揮発性データ記憶システムを形成し、前記ローカルプロセッサが、前記パッケージの外部の装置と交信するよう該パッケージの外部通信インタフェイスと通信可能である、
データ記憶装置。
【請求項15】
前記ローカルプロセッサが、前記動的にディセーブルにすることが可能なキャッシュ層をディセーブルにするために該動的にディセーブルにすることが可能なキャッシュ層に対する電力供給をディセーブルにする、請求項14に記載のデータ記憶装置。
【請求項16】
前記不揮発性データ記憶手段に対する読み出しアクセスの読み出しカウントを追跡するための読み出しカウンタと、該不揮発性データ記憶手段に対する書き込みアクセスの書き込みカウントを追跡するための書き込みカウンタとを更に備えており、該読み出しカウント及び該書き込みカウントが、前記動的にディセーブルにすることが可能なキャッシュ層を動的にイネーブル又はディセーブルにすべきときの決定を容易にする、請求項14に記載のデータ記憶装置。
【請求項17】
前記ローカルプロセッサが、前記書き込みカウント及び前記読み出しカウントの書き込み対読み出し比に基づいて前記動的にディセーブルにすることが可能なキャッシュ層を動的にイネーブル又はディセーブルにすべきときを決定する、請求項16に記載のデータ記憶装置。
【請求項18】
前記外部通信インタフェイスが、前記パッケージの外部の装置の様々なタイプの通信インタフェイスと通信する、請求項14に記載のデータ記憶装置。
【請求項1】
データ記憶装置であって、
キャッシュ層と、
該キャッシュ層と通信可能なプロセッサであって、データ記憶アクセスタイプに基づきキャッシュ層イネーブルラインを介して前記キャッシュ層を動的にイネーブル又はディセーブルにするプロセッサと
を備えている、データ記憶装置。
【請求項2】
前記キャッシュ層イネーブルラインが前記キャッシュ層から電力をゲートオフする、請求項1に記載のデータ記憶装置。
【請求項3】
前記プロセッサと通信可能な不揮発性データ記憶手段を更に備えており、前記データ記憶アクセスタイプが、該不揮発性データ記憶手段にアクセスするための複数の要求に関するものである、請求項1に記載のデータ記憶装置。
【請求項4】
前記プロセッサが、前記データ記憶アクセスタイプのデータ記憶アクセス要求の発生の量に基づいて前記キャッシュ層イネーブルラインを介して前記キャッシュ層を動的にイネーブル又はディセーブルにする、請求項1に記載のデータ記憶装置。
【請求項5】
前記プロセッサ及び不揮発性データ記憶手段と通信可能なメモリコントローラを更に備えており、該プロセッサが、該不揮発性データ記憶手段に対するアクセスのタイプを示す過去のアクセスタイプ情報を取得し、該過去のアクセスタイプ情報が、前記キャッシュ層を動的にイネーブル又はディセーブルにすべきときの決定を容易にする、請求項1に記載のデータ記憶装置。
【請求項6】
不揮発性データ記憶手段に対する読み出しアクセスの読み出しカウントを追跡するための読み出しカウンタと、該不揮発性データ記憶手段に対する書き込みアクセスの書き込みカウントを追跡するための書き込みカウンタとを更に備えており、該読み出しカウント及び該書き込みカウントが、前記キャッシュ層を動的にイネーブル又はディセーブルにすべきときの決定を容易にする、請求項1に記載のデータ記憶装置。
【請求項7】
前記プロセッサが、前記書き込みカウント及び前記読み出しカウントの書き込み対読み出し比に基づいて前記キャッシュ層を動的にイネーブル又はディセーブルにすべきときを決定する、請求項6に記載のデータ記憶装置。
【請求項8】
前記プロセッサが、前記書き込み対読み出し比が所定のしきい値を越えた際に前記キャッシュ層をイネーブルにし、及び前記プロセッサが、前記書き込み対読み出し比が該しきい値を下回った際に前記キャッシュ層をディセーブルにする、請求項7に記載のデータ記憶装置。
【請求項9】
前記プロセッサが、不揮発性データ記憶手段に対する書き込みアクセス率が所定のしきい値を越えるのを阻止するよう前記キャッシュ層をイネーブルにする、請求項1に記載のデータ記憶装置。
【請求項10】
前記しきい値が、前記不揮発性データ記憶手段の書き込み耐久特性に関するものである、請求項9に記載のデータ記憶装置。
【請求項11】
前記キャッシュ層をディセーブルにすることが、該キャッシュ層をイネーブルにする前の不揮発性データ記憶手段に対する複数の後続のアクセスについて該キャッシュ層をディセーブルにすることからなる、請求項1に記載のデータ記憶装置。
【請求項12】
前記後続のアクセスが複数の単一読み出しアクセスを含む、請求項11に記載のデータ記憶装置。
【請求項13】
前記後続のアクセスが少なくとも1つのバーストモードアクセスを含む、請求項11に記載のデータ記憶装置。
【請求項14】
データ記憶装置であって、
パッケージ内の不揮発性データ記憶手段と、
前記パッケージ内にあり及び前記不揮発性データ記憶手段と通信可能であるローカルプロセッサとを備えており、該ローカルプロセッサ及び該不揮発性データ記憶手段が、動的にディセーブルにすることが可能なキャッシュ層を用いた扁平化することが可能な不揮発性データ記憶システムを形成し、前記ローカルプロセッサが、前記パッケージの外部の装置と交信するよう該パッケージの外部通信インタフェイスと通信可能である、
データ記憶装置。
【請求項15】
前記ローカルプロセッサが、前記動的にディセーブルにすることが可能なキャッシュ層をディセーブルにするために該動的にディセーブルにすることが可能なキャッシュ層に対する電力供給をディセーブルにする、請求項14に記載のデータ記憶装置。
【請求項16】
前記不揮発性データ記憶手段に対する読み出しアクセスの読み出しカウントを追跡するための読み出しカウンタと、該不揮発性データ記憶手段に対する書き込みアクセスの書き込みカウントを追跡するための書き込みカウンタとを更に備えており、該読み出しカウント及び該書き込みカウントが、前記動的にディセーブルにすることが可能なキャッシュ層を動的にイネーブル又はディセーブルにすべきときの決定を容易にする、請求項14に記載のデータ記憶装置。
【請求項17】
前記ローカルプロセッサが、前記書き込みカウント及び前記読み出しカウントの書き込み対読み出し比に基づいて前記動的にディセーブルにすることが可能なキャッシュ層を動的にイネーブル又はディセーブルにすべきときを決定する、請求項16に記載のデータ記憶装置。
【請求項18】
前記外部通信インタフェイスが、前記パッケージの外部の装置の様々なタイプの通信インタフェイスと通信する、請求項14に記載のデータ記憶装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公表番号】特表2013−512529(P2013−512529A)
【公表日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2012−542249(P2012−542249)
【出願日】平成23年3月7日(2011.3.7)
【国際出願番号】PCT/US2011/027443
【国際公開番号】WO2011/112523
【国際公開日】平成23年9月15日(2011.9.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
【出願人】(511076424)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (155)
【氏名又は名称原語表記】Hewlett‐Packard Development Company, L.P.
【Fターム(参考)】
【公表日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願日】平成23年3月7日(2011.3.7)
【国際出願番号】PCT/US2011/027443
【国際公開番号】WO2011/112523
【国際公開日】平成23年9月15日(2011.9.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
【出願人】(511076424)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (155)
【氏名又は名称原語表記】Hewlett‐Packard Development Company, L.P.
【Fターム(参考)】
[ Back to top ]