図面 (/)

技術 ソリッドステートドライブ及びその動作方法

出願人 三星電子株式会社
発明者 マーティノー,ジェイソン崔昌皓
出願日 2016年10月20日 (4年7ヶ月経過) 出願番号 2016-206191
公開日 2017年6月8日 (3年11ヶ月経過) 公開番号 2017-102908
状態 特許登録済
技術分野 外部記憶装置との入出力 メモリシステム
主要キーワード 到達比 配置戦略 二次ストリーム 満了データ 通信連結 近距離ネットワーク ストレージブロック データフィル
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年6月8日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

向上された性能を有するソリッドステートドライブ及びそれの動作方法を提供する。

解決手段

本発明のソリッドステートドライブは、第1生存時間を含む第1ストリームのデータを受信し、第2生存時間を含む第2ストリームのデータを受信する受信回路、第1生存時間及び第2生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを選択する選択ロジック、及び第1ストリームのデータ及び第2ストリームのデータをソリッドステートドライブのブロックに書き込む書込ロジックを含み、第2生存時間は第1生存時間と異なる。

概要

背景

今日、ストレージ装置には多くの技術が統合されている。重要な技術の中の1つはNANDフラッシュメモリである。ソリッドステートドライブSSD)のようなストレージ装置に使用されるフラッシュメモリは多様な設計考慮事項を含む。重要な考慮事項は、ストレージ容量を効率的に利用するための戦略を含む。

前に格納されたデータ値がフラッシュメモリにアップデートされる場合、データ値を格納する既存ページは内部的に無効(invalid)にフラッグ(flag)され、アップデートされたデータ値は新しいページに格納される。データが削除される場合、データを格納するページは同じく無効にフラッグされる。無効ページ(invalid pages)は、ガーベッジコレクション(garbage collection)と称される工程を通じて復旧される。ガーベッジコレクションは、複数のページを含むブロックレベル(block level)で動作する。仮に1つのブロックが完全に空きになる時まで(即ち、ブロック内のすべてのページが無効にフラッグされる時まで)ガーベッジコレクションが待機する場合、ソリッドステートドライブは、データを書き込むことができるフリーページ(free pages)を有しない。したがって、ガーベッジコレクションの実行は、削除対象ブロックから有効ページ(valid pages)を他のブロックに移動させることを要求する。

ソリッドステートドライブは、データが到達した順序で到達したデータをページに書き込む。これは、全く関係ないファイルからのデータ(ソリッドステートドライブがマルチクライアントシステムとして使用される場合、全く無関係なクライアントによって使用されるデータ)が、ソリッドステートドライブ上で隣接し得ることを意味する。ソリッドステートドライブは、(従来のハードディスクドライブとは対照的に)周囲に読出しヘッドを移動させることに関連する待機時間(latency)を要求しないので、ソリッドステートドライブの読出し及び書込みアクセス時間はデータ書込み戦略によって影響を受けない。

ソリッドステートドライブの他の動作に対するガーベッジコレクション動作の影響を最小化するための方法の必要性は相変わらず残っている。

概要

向上された性能を有するソリッドステートドライブ及びそれの動作方法を提供する。本発明のソリッドステートドライブは、第1生存時間を含む第1ストリームのデータを受信し、第2生存時間を含む第2ストリームのデータを受信する受信回路、第1生存時間及び第2生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを選択する選択ロジック、及び第1ストリームのデータ及び第2ストリームのデータをソリッドステートドライブのブロックに書き込む書込ロジックを含み、第2生存時間は第1生存時間と異なる。

目的

本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、向上した性能を有するソリッドステートドライブ及びその動作方法並びにソリッドステートドライブに対するロジックを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ソリッドステートドライブであって、第1生存時間を含む第1ストリームのデータを受信し、前記第1生存時間と異なる第2生存時間を含む第2ストリームのデータを受信する受信回路と、前記第1生存時間及び前記第2生存時間に基づいて前記ソリッドステートドライブのブロックに書き込むストリームを選択する選択ロジックと、前記第1ストリーム及び前記第2ストリームのデータを前記ソリッドステートドライブのブロックに書き込む書込ロジックと、を備えることを特徴とするソリッドステートドライブ。

請求項2

前記ソリッドステートドライブは、前記ブロックに前記第1ストリーム及び前記第2ストリームの中のいずれか1つのストリームのデータのみが書き込まれている場合よりも早く、前記ブロックに格納された全てのデータが満了することを予測することを特徴とする請求項1に記載のソリッドステートドライブ。

請求項3

前記選択ロジックは、前記第1生存時間及び前記第2生存時間に基づいて第1時点に前記ブロックに書き込む前記第1ストリームを選択し、前記第1生存時間及び前記第2生存時間に基づいて第2時点に前記ブロックに書き込む前記第2ストリームを選択するように動作することを特徴とする請求項1に記載のソリッドステートドライブ。

請求項4

前記選択ロジックは、前記第1ストリームに連関する書込みオペレーションに対する第1平均書込みサイズ及び前記第2ストリームに連関する書込みオペレーションに対する第2平均書込みサイズを演算する平均書込みサイズ演算器と、前記第1ストリームに対する第1平均書込み到達比率及び前記第2ストリームに対する第2平均書込み到達比率を演算する平均書込み到達比率演算器と、を含むことを特徴とする請求項1に記載のソリッドステートドライブ。

請求項5

前記選択ロジックは、前記第1生存時間、前記第2生存時間、前記第1平均書込みサイズ、前記第1平均書込み到達比率、前記第2平均書込みサイズ、及び前記第2平均書込み到達比率の中の少なくとも2つに基づいて前記ソリッドステートドライブのブロックに書き込むストリームを選択するように動作することを特徴とする請求項4に記載のソリッドステートドライブ。

請求項6

前記ソリッドステートドライブは、第2次ストリームを生成する第2次ストリーム生成器をさらに含み、前記選択ロジックは、前記第1ストリーム及び前記第2ストリームの中から前記第2次ストリームに書き込むストリームを選択するストリーム選択ロジックを含み、前記書込みロジックは、前記第2次ストリームを前記ブロックに書き込むように動作することを特徴とする請求項1に記載のソリッドステートドライブ。

請求項7

ソリッドステートドライブに対するロジックであって、前記ソリッドステートドライブのブロックに対するブロックの生存時間のためのストレージと、前記ブロックの生存時間、第1生存時間、及び第2生存時間に基づいて、前記第1生存時間を有する第1ストリーム及び前記第2生存時間を有する第2ストリームの中から前記ブロックに書き込むストリームを選択する選択ロジックと、を備えることを特徴とするロジック。

請求項8

前記ロジックは、前記ブロックに前記第1ストリーム及び前記第2ストリームの中のいずれか1つのストリームのデータのみが書き込まれている場合よりも早く、前記ブロックに格納された全てのデータが満了することを予測することを特徴とする請求項7に記載のロジック。

請求項9

前記選択ロジックは、前記ブロックの生存時間、前記第1生存時間、及び前記第2生存時間に基づいて第1時点に前記ブロックに書き込む前記第1ストリームを選択し、前記ブロックの生存時間、前記第1生存時間、及び前記第2生存時間に基づいて第2時点に前記ブロックに書き込む前記第2ストリームを選択するように動作することを特徴とする請求項7に記載のロジック。

請求項10

前記選択ロジックは、前記第1ストリームに連関する書込みオペレーションに対する第1平均書込みサイズ及び前記第2ストリームに連関する書込みオペレーションに対する第2平均書込みサイズを演算する平均書込みサイズ演算器と、前記第1ストリームに対する第1平均書込み到達比率及び前記第2ストリームに対する第2平均書込み到達比率を演算する平均書込み到達比率演算器と、を含むことを特徴とする請求項7に記載のロジック。

請求項11

前記選択ロジックは、前記ブロックの生存時間、前記第1生存時間、前記第2生存時間、前記第1平均書込みサイズ、前記第1平均書込み到達比率、前記第2平均書込みサイズ、及び前記第2平均書込み到達比率の中の少なくとも2つに基づいて前記ソリッドステートドライブのブロックに書き込むストリームを選択するように動作することを特徴とする請求項10に記載のロジック。

請求項12

前記選択ロジックは、前記ブロックの生存時間、前記第1生存時間、及び前記第2生存時間に基づいて第1時点に前記ブロックに書き込む前記第1ストリームを選択し、前記ブロックの生存時間、前記第1生存時間、及び前記第2生存時間に基づいて第2時点に前記ブロックに書き込む前記第2ストリームを選択するように動作することを特徴とする請求項7に記載のロジック。

請求項13

前記ロジックは、第2次ストリームを生成する第2次ストリーム生成器をさらに含み、前記選択ロジックは、前記第1ストリーム及び前記第2ストリームの中から前記第2次ストリームに書き込むストリームを選択するストリーム選択ロジックを含み、前記第2次ストリームは、前記ブロックに書き込まれることを特徴とする請求項7に記載のロジック。

請求項14

ソリッドステートドライブの動作方法であって、ソリッドステートドライブのブロックを識別するステップと、第1生存時間を含む第1ストリームを受信するステップと、前記第1生存時間と異なる第2生存時間を含む第2ストリームを受信するステップと、前記第1生存時間及び前記第2生存時間に基づいて前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップと、前記第1ストリーム及び前記第2ストリームの両方のデータを前記ブロックに書き込むステップと、を有することを特徴とするソリッドステートドライブの動作方法。

請求項15

前記ソリッドステートドライブは、前記ブロックに前記第1ストリーム及び前記第2ストリームの中のいずれか1つのストリームのデータのみが書き込まれている場合よりも早く、前記ブロックに格納された全てのデータが満了することを予測することを特徴とする請求項14に記載のソリッドステートドライブの動作方法。

請求項16

前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップは、前記第1生存時間及び前記第2生存時間に基づいて第1時点に前記第1ストリームを前記ブロックに書き込むように選択するステップと、前記第1生存時間及び前記第2生存時間に基づいて第2時点に前記第2ストリームを前記ブロックに書き込むように選択するステップと、を含むことを特徴とする請求項14に記載のソリッドステートドライブの動作方法。

請求項17

前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップは、前記第1生存時間、前記第2生存時間、前記第1ストリームに対する第1平均書込みサイズ、前記第2ストリームに対する第2平均書込みサイズ、前記第1ストリームに対する第1平均書込み到達比率、及び前記第2ストリームに対する第2平均書込み到達比率の中の少なくとも2つに基づいて前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップを含むことを特徴とする請求項14に記載のソリッドステートドライブの動作方法。

請求項18

ソリッドステートドライブのブロックを識別するステップは、前記ブロックの生存時間を前記ブロックに連関させるステップを含むことを特徴とする請求項14に記載のソリッドステートドライブの動作方法。

請求項19

前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップは、前記第1生存時間、前記第2生存時間、及び前記ブロックの生存時間に基づいて前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップを含むことを特徴とする請求項18に記載のソリッドステートドライブの動作方法。

請求項20

前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップは、前記第1生存時間又は前記第2生存時間の中の前記ブロックの生存時間により近い生存時間に基づいて前記第1ストリーム又は前記第2ストリームの中から前記ブロックに書き込むストリームを選択するステップを含むことを特徴とする請求項19に記載のソリッドステートドライブの動作方法。

請求項21

前記ソリッドステートドライブの動作方法は、第2次ストリームを生成するステップと、前記第2次ストリームを前記ブロックに連関させるステップと、をさらに含み、前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップは、前記第1ストリーム及び前記第2ストリームのデータの中から前記第2次ストリームに割当するデータを選択するステップを含むことを特徴とする請求項14に記載のソリッドステートドライブの動作方法。

請求項22

前記ソリッドステートドライブの動作方法は、前記第1生存時間及び前記第2生存時間と異なる第3生存時間を含む第3ストリームを受信するステップをさらに含み、前記ブロックに前記第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップは、前記第1生存時間、前記第2生存時間、及び前記第3生存時間に基づいて前記ブロックに前記第1ストリーム、前記第2ストリーム、又は前記第3ストリームの中から前記ブロックに書き込むストリームを選択するステップを含み、前記第1ストリーム及び前記第2ストリームの両方のデータを前記ブロックに書き込むステップは、前記第1ストリームのデータ、前記第2ストリームのデータ、及び前記第3ストリームのデータを前記ブロックに書き込むステップを含むことを特徴とする請求項14に記載のソリッドステートドライブの動作方法。

技術分野

0001

本発明は、ソリッドステートドライブ及びその動作方法に関し、より詳しくは、向上したマルチストリームオペレーションを有するソリッドステートドライブ及びその動作方法並びにソリッドステートドライブに対するロジックに関する。

背景技術

0002

今日、ストレージ装置には多くの技術が統合されている。重要な技術の中の1つはNANDフラッシュメモリである。ソリッドステートドライブ(SSD)のようなストレージ装置に使用されるフラッシュメモリは多様な設計考慮事項を含む。重要な考慮事項は、ストレージ容量を効率的に利用するための戦略を含む。

0003

前に格納されたデータ値がフラッシュメモリにアップデートされる場合、データ値を格納する既存ページは内部的に無効(invalid)にフラッグ(flag)され、アップデートされたデータ値は新しいページに格納される。データが削除される場合、データを格納するページは同じく無効にフラッグされる。無効ページ(invalid pages)は、ガーベッジコレクション(garbage collection)と称される工程を通じて復旧される。ガーベッジコレクションは、複数のページを含むブロックレベル(block level)で動作する。仮に1つのブロックが完全に空きになる時まで(即ち、ブロック内のすべてのページが無効にフラッグされる時まで)ガーベッジコレクションが待機する場合、ソリッドステートドライブは、データを書き込むことができるフリーページ(free pages)を有しない。したがって、ガーベッジコレクションの実行は、削除対象ブロックから有効ページ(valid pages)を他のブロックに移動させることを要求する。

0004

ソリッドステートドライブは、データが到達した順序で到達したデータをページに書き込む。これは、全く関係ないファイルからのデータ(ソリッドステートドライブがマルチクライアントシステムとして使用される場合、全く無関係なクライアントによって使用されるデータ)が、ソリッドステートドライブ上で隣接し得ることを意味する。ソリッドステートドライブは、(従来のハードディスクドライブとは対照的に)周囲に読出しヘッドを移動させることに関連する待機時間(latency)を要求しないので、ソリッドステートドライブの読出し及び書込みアクセス時間はデータ書込み戦略によって影響を受けない。

0005

ソリッドステートドライブの他の動作に対するガーベッジコレクション動作の影響を最小化するための方法の必要性は相変わらず残っている。

先行技術

0006

米国特許第6138221号明細書
米国特許第7254668号明細書
米国特許第7590664号明細書
米国特許第7852854号明細書
米国特許第8122220号明細書
米国特許第8144515号明細書
米国特許第8738882号明細書

発明が解決しようとする課題

0007

本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、向上した性能を有するソリッドステートドライブ及びその動作方法並びにソリッドステートドライブに対するロジックを提供することにある。

課題を解決するための手段

0008

上記目的を達成するためになされた本発明の一態様によるソリッドステートドライブは、受信回路選択ロジック、及び書込みロジックを備える。受信回路は、第1生存時間を含む第1ストリームのデータを受信し、第1生存時間と異なる第2生存時間を含む第2ストリームのデータを受信する。選択ロジックは、第1生存時間及び第2生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを選択する。書込みロジックは、第1ストリームのデータ及び第2ストリームのデータをソリッドステートドライブのブロックに書き込むことを特徴とする。。

0009

上記目的を達成するためになされた本発明の一態様によるソリッドステートドライブに対するロジックは、ストレージ及び選択ロジックを備える。ストレージは、ソリッドステートドライブのブロックに対するブロックの生存時間のためのものである。選択ロジックは、ブロックの生存時間、第1生存時間、及び第2生存時間に基づいて、第1生存時間を有する第1ストリーム及び第2生存時間を有する第2ストリームの中からブロックに書き込むストリームを選択することを特徴とする。

0010

上記目的を達成するためになされた本発明の一態様によるソリッドステートドライブの動作方法は、ソリッドステートドライブのブロックを識別するステップと、第1生存時間を含む第1ストリームを受信するステップと、第1生存時間と異なる第2生存時間を含む第2ストリームを受信するステップと、第1生存時間及び第2生存時間に基づいてブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップと、第1ストリーム及び第2ストリームの両方のデータをブロックに書き込むステップと、を有することを特徴とする。

発明の効果

0011

本発明によれば、向上した性能を有するソリッドステートドライブ及びその動作方法が提供される。

図面の簡単な説明

0012

一般的なシステムで生存時間に連関するストリームのデータを受信するブロックを示す。
異なる生存時間を有する複数のストリームに連関するデータを受信する図1のブロックの一例を示す。
異なる生存時間を有する複数のストリームに連関するデータを受信する図1のブロックの一例を示す。
異なる生存時間を有する複数のストリームに連関するデータを受信する図1のブロックの一例を示す。
異なる生存時間を有する複数のストリームに連関するデータを受信する図1のブロックの一例を示す。
図1のブロックが異なる生存時間を有する複数のストリームに連関するデータを受信する他の例を示す。
図1のブロックが異なる生存時間を有する複数のストリームに連関するデータを受信する他の例を示す。
図1のブロックが異なる生存時間を有する複数のストリームに連関するデータを受信する他の例を示す。
図1のブロックが異なる生存時間を有する複数のストリームに連関するデータを受信する他の例を示す。
第2次ストリームの一実施形態を示す図である。
本発明の一実施形態による異なるストリームのデータを図1のブロックに書き込むソリッドステートドライブを示す構成図である。
図11の選択ロジックの詳細を示す構成図である。
図12の平均書込みサイズ演算器の詳細を示す図である。
図12の平均書込み到達比率演算器の詳細を示す図である。
図12のストリーム選択ロジックの詳細を示す図である。
図11の生存時間演算器の詳細を示す図である。
図11のソリッドステートドライブを含むマシン(machine)の詳細を示す構成図である。
本発明の一実施形態による異なるストリームのデータを図1のブロックに書き込む図11のソリッドステートドライブの動作を示すフローチャートである。
本発明の一実施形態による第2次ストリームを利用して異なるストリームのデータを図1のブロックに書き込む図11のソリッドステートドライブの動作を示すフローチャートである。

実施例

0013

上述した特性及び以下の詳細な説明は、全て本発明の説明及び理解を助けるための例示的な事項である。即ち、本発明は、これらの実施形態に限定されず、他の実施形態で具体化され得る。以下の実施形態は、単に本発明を完全に開示するための例であり、本発明が属する技術分野の通常の知識を有する者に本発明を伝達するためのものである。したがって、本発明の構成要素を具現するための方法が多数ある場合には、これらの方法の中で特定なもの又はこれと同一性があるものの中のいずれも本発明の具現が可能である。

0014

本明細書で第1、第2などの用語は多様な構成要素を説明するために利用されるが、これらの構成要素はこのような用語によって制限されない。これらの用語は単に他の構成要素から1つの構成要素を区別するために利用される。例えば、本発明の技術範囲で第1モジュールは第2モジュールと称され、これと同様に第2モジュールは第1モジュールと称される。

0015

本明細書で所定の構成が特定要素を含むと記載された場合、又は所定の工程が特定段階を含むと記載された場合は、その外の他の要素又は他の段階がさらに含まれることを意味する。即ち、本明細書で使用される用語は特定の実施形態を説明するためのものであり、本発明の概念を限定するものではない。さらに、発明の理解を助けるために説明した例はそれに対する相補的な実施形態も含む。

0016

上述したように、ソリッドステートドライブ(solid state drive、SSD)は、データをページに書き込む。ページは、順次的にブロックを構成する。データがアップデートされる時、既存データを格納するページは、ランダムアクセスメモリ(random access memory、RAM)にコピーされ、修正された後に、ソリッドステートドライブのフリーページに書き込まれる。続いて、元のページは無効(invalid)にマーク(mark)され、新しいページは有効(valid)にマークされる。

0017

時間が経過するとともに、無効ページの数は増加する。結局、無効ページがガーベッジコレクションの実行を通じて復旧されなければ、ソリッドステートドライブはそれ以上のフリーページを有しないことになる。ガーベッジコレクションは、対象ブロックを識別するステップ、対象ブロック内のすべての有効ページを新しいブロックにコピーするステップ、及び元の対象ブロックを消去するステップを含む。このような有効データ(valid−data)のコピーには、時間とエネルギーとを要する。その上、フラッシュメモリは制限された回数の書込みのみを支援するので、ガーベッジコレクションはソリッドステートドライブの寿命に負の影響を及ぼす。

0018

フラッシュメモリのガーベッジコレクションは、ストレージ装置の性能(performance)、応答性(responsiveness)、及び寿命(lifespan)に相当な影響を及ぼすので、ガーベッジコレクションの効率を最適化するのに役立つ多様な方法が存在する。これらの方法の中の1つは、マルチストリーム(Multi−stream)と称されるものであって、これはコンピューティングシステムがデータ書込み活動(data write activity)を分類することを許容する方式である。

0019

マルチストリーミング(Multi−streaming)は、データ書込みオペレーション(data write operations)をストリーム(streams)に結合するためのソリッドステートドライブの動作方法を提供する。データ書込みオペレーションは、予測(expectation)に基づく複数のストリームの中のいずれか1つのストリームに連関する。予測は、ストリームに連関するすべてのデータが同様の生存時間(TTL:Time−To−Live)を有する。これは、ストレージ装置が、狭く(narrow)予測可能な(predictable)タイムフレーム内で集中的にデータが無効になることを期待して、フラッシュ媒体(Flash media)内にデータを共に配置することを可能にする。ガーベッジコレクションされたブロックのいずれの有効データも他のブロックに保存される必要がないので、この配置戦略(placement strategy)は、ガーベッジコレクションの動作集中度(operational intensiveness)を減少させる。

0020

図1は、一般的なシステムで生存時間に連関するストリームのデータを受信するブロックを示す。図1を参照すると、ストレージ装置は、1つの特定のストリームに対する複数の書込み要請を実行する。一実施形態として、ストレージ装置は、先ず利用可能な未使用ブロックをストリームに割当(assigning)した後、専用(dedicating)させることによって、ストリーム要請(stream requests)を実行する。その後、ストレージ装置は、提示データ値(presented data values)をブロック内の第1利用可能領域(即ち、ページ)に書き込み、最下位位置アドレスから始めて上位の位置アドレスに進行させながら、ストリーム要請を実行する。ブロックがいっぱいになった場合、その他のブロックがストリームに割当られ、専用される。その後、ブロックがガーベッジコレクションによって完全にリクレイム(reclaimed)されると、同じストリーム又は他のストリームに対する後続割当(subsequent assignment)のためにブロックは利用可能ブロックプール(Available−Block pool)に返還される。

0021

図1を参照すると、最も早く書き込まれたデータ値(earliest−written data values)のストレージ位置(storage locations)が無効である場合、最も早く書き込まれたデータ値の中の一部は、削除されるか又はアップデートされる。例えば、ブロック103は、ストリームに専用されている。ストリーム書込み(106、109、112)は、ページ(115、118、121)に書き込まれている。結局、ページ(115、118、121)は全て無効になる。一方、最も最近のストリーム書込み(124、127)はページ(130、133)に書き込まれ、他のページ(136、139、142、145)はフリー状態で残される。ページ(115、118、121)からのデータ値がアップデートされた場合、新規にアップデートされた値は、ブロック内のさらに上位アドレス、例えば、ページ(148、151、130、133)に置かれる。また、新規値(new value)は、ストリームに割当られ、その後、後続の他の専用ブロックに置かれる。

0022

図1を参照すると、有効ページ(148、151、130、133)が、残余の生存時間値(remainingTTLvalues)とともに示されている。これらの値は、ソリッドステートドライブに実際に格納されないが、ページ内のデータが満了することが予測される時までの時間を示す。これらの値は、ストリーム内のデータの生存時間(TTL)及び当該データがソリッドステートドライブにどのくらい長く維持されるかに基づいて演算される。例えば、生存時間値154は、ページ148内のデータが1分で満了すると予測されることを示し、生存時間値157は、ページ151内データが2分で満了すると予測されることを示し、生存時間値160は、ページ130内のデータが59分で満了すると予測されることを示し、生存時間値163は、ページ133内のデータが60分で満了すると予測されることを示す。例えば、ストリームが、60分の生存時間を有する場合に、このような状況が発生する。そして、ブロック103の1つのページを占めるデータは、毎分ごとにストリームに到達する。

0023

ブロック103がページ133で終了する場合、生存時間値163を有するページ133は、満了するデータを有する最後のページであり、満了に60分を要する。したがって、ソリッドステートドライブがブロック103にガーベッジコレクションの実行を準備する時、ソリッドステートドライブはページ133内のデータが満了する時(ページが書き込まれた後60分)まで待機する。又はソリッドステートドライブは、ブロック103から有効データをその他のブロックにコピー(copy)してブロック103を消去する。

0024

図1に示すように、従来(traditional)のマルチストリーミングストレージにおいて、単一ブロック(single block)は、単一ストリーム(single stream)に連関する。ブロック103に書き込まれるデータは、予測可能な生存時間を有する。しかし、ブロックを満たすために要求される時間によって、ブロック103のページは「ウェーブ(wave)」で無効になる。即ち、ブロック103内のページは、時間経過とともに順次に満了する。これは、ソリッドステートドライブを「難しい(difficult)」位置(position)に置く。ソリッドステートドライブは、「自由空間(freeable space)」の活用が不可能なタイムペナルティー(time penalty)を経ながら、すべてのデータが満了する時まで待機しなければならない。あるいは、ソリッドステートドライブは、公知のガーベッジコレクションペナルティー(garbage collection penalty)を経ながら、ブロック103にガーベッジコレクションを実行するために、一部の有効ページを他のブロックにコピーしなければならない。

0025

図1は、また、マルチストリーミングストレージ(multi−streaming storage)無しでソリッドステートドライブがブロックを満たす方式を示す。ソリッドステートドライブがマルチストリーミングストレージ無しで動作する場合、各ページは本質的にランダムな生存時間を有する。そして、ブロック103の任意データが満了する時期を予測することは不可能である。ランダムな値を有するシーケンシャルな生存時間値(154、157、160、163)を交換(exchanging)すること、及びブロック103内で有効ページと無効ページとを混合することによって、図1は、従来の非マルチストリーミングストレージ(non−multi−streaming storage)を反映する。

0026

しかし、従来のマルチストリーミングシステムは、特定のストリームをストレージブロック(storage blocks)に割当する反面、ストレージブロックは特定のストリームに割当されることを必要としない。代わりに、全体的な寿命(overall lifetime)がブロックに割当される。そして、様々な生存時間のストリームのデータが、目的(aim)を有してブロックに書き込まれる。その目的とは、ブロック内のデータが、単一(single)で、定義された時間に満了することを意味する。ストレージ装置の知能(storage device intelligence)及び過去のデータ(historical data)を利用して、ソリッドステートドライブは、現在のストリーム(current stream)のデータをブロックに書き込むことを続けるか、又は他のストリーム(different stream)のデータをブロックの残余ページ(remaining pages)に書き込むかの中で、いずれがより効率的であるかを判断する。もちろん、同じロジックが、ブロックの後続に割当てられるストリーム(later−assigned stream)にも適用される。特に、ストレージ装置は、その後、第3ストリームのデータをブロックに書き込むことが第2ストリームのデータをブロックに書き込むことより効率的であるか否かを判断する。もちろん、ブロックから切り離された(switched away)ストリームのデータは、他のブロックに書き込まれるデータを含む。

0027

他の解決策は、「第2次ストリーム(second−order streams)」を利用することである。先に記載されたストリームは、第1次ストリーム(first−order streams)として考えられる。即ち、各ストリームは同様の生存時間(TTL)特性を有するデータを保有する。但し、第1次ストリームのデータをブロックに書き込む代わりに、第1次ストリームのデータは第2次ストリームに書き込まれる。第2次ストリームは、それ自身の生存時間を有する。そして、第2次ストリームに伝達されたデータは、ブロックに書き込まれる。他の第1次ストリームは、第2次ストリームの寿命がどのくらい残っているかによって、データを第2次ストリームに提供する。本実施形態において、ブロック内でデータのより一貫した満了(consistent expiration)を達成しながら、第2次ストリームとソリッドステートドライブのブロックとの間の連関性(association)は維持される。

0028

図2図5は、異なる生存時間を有する複数のストリームに連関するデータを受信する図1のブロックの一例を示す。図2図5は、複数のストリーム(multiple streams)のデータを単一ブロック(single block)に書き込むことの利点を示す。図2図5で、ソリッドステートドライブに対するブロック103が1MBの大きさであると仮定する。そして、ソリッドステートドライブは、2つのストリームを受信していると仮定する。ストリーム205は、60分の予測生存時間(expectedTTL)を有し、1度に平均24KBのデータを書き込み、平均で1分毎に1ファイルを書き込む。ストリーム210は、45分の予測生存時間を有し、1度に平均256KBのデータを書き込み、平均で5分毎に1ファイルを書き込む。

0029

図2は、ブロック103に書き込まれたすべてのデータが単一ストリームに連関する状況を示す。ストリーム205に対するデータの平均的なファイルサイズは24KBであり、1分毎に1つのファイルの平均書込み到着率(average write arrivial rate)が与えられる場合、ブロック103の1MB容量を満たすのに大略45分掛かる。したがって、ブロック103が満たされた後、ブロック103に書き込まれた最初のデータは、15分の残余の生存時間値215を有する。これと異なり、ブロック103に書き込まれた最後のデータは、60分の残余の生存時間値220を有する。そして、ブロック103は、合計で1時間45分間の有効データを有する(最後のデータが書き込まれるまでの45分に加え、当該データの生存時間として1時間所要)。

0030

仮に、ブロックに最後のデータが追加された後、1時間より前の任意の時点に対象ブロックがガーベッジコレクションを実行するように命令されると、ガーベッジコレクションの間に他のブロックに移動(transfer)を要請するブロック内の有効データが依然として存在する。さらに、ソリッドステートドライブがブロックにガーベッジコレクションをより早く実行するほど、ソリッドステートドライブの他のブロックに再配置(relocated)させる必要があるより多くの有効データが残るようになる。

0031

一方、図3を参照すると、ストリーム205は、22分間だけブロック103にデータを書き込む(その時点でブロック103は半分が満たされる)。0:22(0時22分、以下同様に記載)時点で、書き込まれた最初のデータは、38分の残余の生存時間値215を有する。そして、書き込まれた最後のデータは60分の残余の生存時間値225を有する。

0032

図4に示すように、0:22時点の後、ブロック103はストリーム210に連結する。0:27時点で、ストリーム210は、45分の生存時間値230を有するデータを追加しながら、データをブロック103に書き込む。生存時間値(215、225)は、ストリーム210がその最初のデータを書き込むために待機する5分が減少する。

0033

最後に、0:32時点で、ストリーム210は、第2ファイルをブロック103に書き込む。与えられたストリーム210に対する平均書込みサイズ(average write size)と書込み到達比率(write arrival rate)にしたがって、第2ファイルはブロック103に全部書き込まれる。この時点で、ストリーム205から書き込まれたデータは、残余の生存時間を有する。残余の生存時間は、生存時間値215が28分、生存時間値225が50分に変化する。そして、ストリーム210から書き込まれたデータは、生存時間値230及び生存時間値235が各々40分及び45分を有する。0:32時点で、ブロック103は完全に満たされるので、最も長い残余の生存時間225を有するデータは、50分後に満了すると予測される。ブロック103は、図2で発生した時点より23分早い1:22時点で、ガーベッジコレクションを実行する可能性が高い。その上、より多くのデータが同時に満了する可能性が存在するので、すべてのデータが満了する前にブロック103はガーベッジコレクションのための望ましくない候補になる。

0034

より多くのストリーム、フィルレート(fill rate)のための多数のオプション、生存時間、データサイズ、そして一度にすべての「無効化」ページが向上されるようにブロックを満たすストリームを切り替え能力は重要である。各々の生存時間、平均書込みサイズ、及び平均書込み到達比率を有する複数のストリームが存在し得る。

0035

図6図9は、図1のブロックが異なる生存時間を有する複数のストリームに連関するデータを受信する他の例を示す。図6図9において、ストリームの間の主要な差異点(primary difference)は生存時間であるので、同一のデータフィルレート(data fill rate)及び同一の平均書込みサイズ(average write size)を有する4つのストリームがあると仮定する。図6図9に示す4つのストリームは、各々60分、45分、30分、及び15分の生存時間値を有する。

0036

図6で、ストリーム305は、60分の生存時間240を有するブロック103に書き込む。ストリーム305は、60分の生存時間310を有する。そして、15分の時間内に、60分の最も長い残余の生存時間315を有するデータで、ブロック103の1/4を満たすように充分なデータが書き込まれる。この時点で、図7に示すように、ソリッドステートドライブは、ストリーム305をストリーム320に切り替える。ストリーム320は、45分の生存時間を有する。再び、15分の時間内に、ブロック103の他の1/4を満たすようにストリーム320から充分なデータが書き込まれる。この時点で、ブロック103は、45分で満了することが予測されるデータ(315、330)で半分が満たされる。

0037

図8に示すように、ソリッドステートドライブは、ストリーム335に切り替える。ストリーム335は、30分の生存時間を有する。再び15分の時間内に、ストリーム335は、ブロック103のその他の1/4を満たすために充分なデータを書き込む。この場合、ブロック103は、残余の生存時間(315、330、345)が30分であるデータで3/4が満たされる。この時点で、図9に示すようにソリッドステートドライブは、ストリーム350に切り替える。ストリーム350は、15分の生存時間を有する。その後の15分で、ストリーム350は、ブロック103を完全に満たすのに充分なデータを書き込む。そして、ブロック103のデータ(315、330、345、360)は15分で満了すると予測される。したがって、図6のストリーム305から最初のデータがブロック103に書き込まれた後に1:15時点で、ブロック103のすべてのデータは満了すると予測される。そして、全体ブロックはガーベッジコレクションされる。

0038

従来のシステムに比べて、図3図9の例は、向上したガーベッジコレクション性能を提供する。マルチストリーミングストレージを利用することによって、ブロックは減少する生存時間値を有するデータで順次的に満たされる。ブロックのデータは全体的により速やかに満了する。そして、より多くのデータが同時に満了する傾向を有する。その結果、ガーベッジコレクションが実行される場合、ブロックに対してガーベッジコレクションを実行する前にすべての有効データを他のブロックにコピーする必要が無いので、ブロックは全部満了データを有するようになる。その上、より多くのデータが同時に満了する傾向を有するので、ブロックは、ブロックのすべてのデータが満了する前にガーベッジコレクションが選択されにくくなる。

0039

図3図9を比較すると、選択するためのストリームがさらに多くある場合、ブロックのすべてのデータが満了する時までの時間が短く所要される。例えば、図3図5で、ブロックのすべてのデータは1:32時点で満了すると予測される。図6図9で、ブロックのすべてのデータは、1:15時点で満了すると予測される。ブロックがガーベッジコレクションのために選択されにくくなるので、ブロックが依然有効データを有する間にブロックのすべてのデータは大略同様の時点で満了する傾向を有する。

0040

図2図5で、2つのストリームがブロック103にデータを書き込むために利用される。図6図9で、4つのストリームがブロック103にデータを書き込むために利用される。しかし、これらの例は、ブロック103にデータを書き込むために利用されるすべてのストリームを示すが、本発明の他の実施形態は単に利用可能なストリームのサブセットのみを利用する。例えば、図2図9で、ソリッドステートドライブに書き込まれる20のストリームがあり、これらの中で、いずれかのストリームのみがブロック103に書き込まれる。そして、多様なストリームは、制限無しに、異なる生存時間、書込みサイズ、及び書込み到達比率を含む。

0041

ブロックがどのくらい早く最適なガーベッジコレクションの準備ができるかということについては下限(lower limit)が存在する。ブロック103に書き込まれた各ページは、それぞれが開始された(originated)ストリームに応じて各々の生存時間(TTL)を有する。最悪の場合、ブロックは、当該ブロックを満たす時間に、ブロックに書き込まれたデータの中で最大の生存時間を併せた時間の間、有効データを有する。さらに正確には、ブロック103は一部有効データを下記数式1に示す時間まで保有する。

0042

0043

早く書き込まれたページが長い生存時間を有し、遅く書き込まれたページが短い生存時間を有する場合、早く書き込まれたページに対する満了時間(expiration time)は遅く書き込まれたページに対する満了時間よりも遅くなる。しかし、しばしば、ブロック内のすべてのデータに対する満了時間は、ブロックに書き込まれた最後のデータに対する満了時間になる。したがって、1つのブロックを完全に満たすのに1時間が掛かり、最後に書き込まれたデータが15分の生存時間を有する場合、ブロック内のすべてのデータは、大略1時間15分で満了すると予測される。

0044

本発明の他の実施形態において、すべての第1次ストリーム(first−order streams)は先に示したように分析される。しかし、ブロックに直接書き込む代わりに、第1次ストリームは、第2次ストリーム(second−order streams)の残余時間に基づいて、時間制約を受ける第2次ストリーム(time−limited second−order streams)に書き込むようになる。

0045

図10は、第2次ストリームの一実施形態を示す図である。簡単な場合として、図6図9に示したのと同一の第1次ストリームを仮定する。

0046

ストリーム305は、60分の生存時間を有する。
ストリーム320は、45分の生存時間を有する。
ストリーム335は、30分の生存時間を有する。
ストリーム350は、15分の生存時間を有する。

0047

また、60分の生存時間を有する単一の第2次ストリーム405を仮定する。

0048

第2次ストリーム405が生成される時、ストリーム305からデータが初めに割当される。第2次ストリームの寿命(lifespan)が45分に到達すると、第2次ストリーム405はストリーム305からデータを受信することを中止し、ストリーム320からデータを受信することを開始する。同様に、第2次ストリーム405の寿命が30分に到達すると、ストリーム335からデータを受信する。そして、寿命が15分に到達すると、ストリーム350からデータを受信する。

0049

このアプローチでは、第2次ストリーム405に割当されたブロック103は、すべてのデータが15分以内に無効化されるようにする。全体ブロックの最大寿命は大略1:15になる。このような動作は、先に示した図6図9の実施形態と同様である。データフィルレートが、データの寿命又はブロックの残余サイズ(remaining size)に比べて高い事例において、第2次ストリームは多くの柔軟性を提供する。仮に1つのブロックが満了する前に第2次ストリームがそのブロックを満たせば、第2次ストリームは新しいブロックに移動することができる。一方、既存ブロック(old block)は、大略同一の時期に満了するデータを有するようになる。即ち、第2次ストリームのメカニズムを有し、低寿命(low−lifespan)又は寿命の終わりに隣接するブロックを満たす速いフィルレート(fast−fill rate)のストリームを探すためのシステムの歪曲(strain)は存在しない。満了する第2次ストリームによって満たされない任意のブロックは既にブロックに格納されたデータの残余の生存時間と同様の寿命を有する新しいストリームによって満たされる。

0050

より多くの第1次ストリームを有するほど、より小さい時間単位を得ることができる(これは、ページが他のページのさらに安全な時間内に無効化される傾向を有することを意味する)。

0051

先に示した第1の実施形態のように、多くの第2次ストリームは同時に動作することができる。第1次ストリームの属性にしたがって、他の二次ストリームは異なる寿命を有するように生成される。

0052

ソリッドステートドライブが他のストリームに切り替える時、ソリッドステートドライブは、新しいストリームを選択するために任意の望ましいアルゴリズムを利用する。新しい第1次ストリームを選択するためのアルゴリズムは、ブロックに対する残余の生存時間よりも大きく、同時に最も小さい生存時間を有するストリームを選択する。第1次ストリームを選択するためのアルゴリズムは、第2次ストリームに対する残余の生存時間よりも大きく、且つ最も小さい生存時間を有するストリームを選択する(仮にブロック又は第2次ストリームに対する残余の生存時間よりも大きい生存時間を有するストリームが存在しなければ、最も大きい生存時間を選択する)。したがって、図6に戻れば、ブロック103は、60分の生存時間240を有するので、ストリーム305が60分の生存時間240を有するようにすることが最高の選択である。図7で、生存時間240が45分に低下する時、本アルゴリズムを利用してストリーム320が45分の生存時間325を有するようにすることが最高の選択になる。図8で、生存時間240が30分に低下する時、アルゴリズムを利用してストリーム335が30分の生存時間340を有するようにすることが最高の選択になる。図10の第2次ストリーム405に連関する第1次ストリームを選択する時、同じ戦略が適用される。

0053

他の実施形態として、ソリッドステートドライブは、ブロックに対する残余の生存時間に最も近い生存時間を有する第1次ストリームを選択する。したがって、図6に戻れば、60分の生存時間310を有するストリーム305は、60分のブロックの生存時間240に最も近い。そして、ストリーム305は0:07.5時点まで維持される。その時間の後に、45分の生存時間を有するストリーム325は残りの52.5分のブロックの生存時間240に最も近い。そして、ストリーム320は0:22.5時点まで維持される。0:22.5時点で、30分の生存時間を有するストリーム335は残りの37.5分のブロックの生存時間240に最も近い。

0054

図11は、本発明の一実施形態による異なるストリームのデータを図1のブロックに書き込むソリッドステートドライブを示す構成図である。図11には、ソリッドステートドライブ505が示される。ソリッドステートドライブ505は、回路510を含む。回路510は、情報を送信及び受信するために利用される。例えば、情報はオペレーション(operations)又はデータである。ソリッドステートドライブ505は、ソリッドステートドライブコントローラ515(以下、SSDコントローラ)とフラッシュメモリ520とを含む。SSDコントローラ515は、ソリッドステートドライブの動作を制御する。フラッシュメモリ520はデータを格納する(即ち、フラッシュメモリ520はブロックの中で図1のブロック103を格納する)。

0055

SSDコントローラ515は、他の構成要素として、選択ロジック525、書込みロジック530、及び生存時間演算器(TTL演算器)535を含む。選択ロジック525は、図1のブロック103に書き込むために利用されるストリームを選択する。また、選択ロジック525は、図10の第2次ストリーム405を割当するために利用されるストリームを選択する。書込みロジック530は、データをフラッシュメモリ520に書き込む。より具体的に、書込みロジック530は、データをフラッシュメモリ520のページ、例えば、図1のブロック103のページに書き込む。生存時間演算器535は、ストリーム又はブロックに対する生存時間(TTL)を計算する。この場合のストリームの生存時間は、図2図5の生存時間(245、250)、そして図6図9の生存時間(310、325、340、355)である。この場合のブロックは、図2図9のブロックの生存時間240である。

0056

第2次ストリームを利用する本発明の一実施形態において、SSDコントローラ515は、第2次ストリーム生成器540を含む。第2次ストリーム生成器540は、図10のブロック103に連関する図10の第2次ストリーム405を生成する。

0057

図12は、図11の選択ロジックの詳細を示す構成図である。図12で、選択ロジック525は、比較器605、平均書込みサイズ演算器610、平均書込み到達比率演算器615、ストリーム選択ロジック620、及びストレージ625を含む。ストレージ625は、ブロックの生存時間(TTL)240及び/又は第2次ストリームの生存時間(TTL)410を格納する(但し、ブロックの生存時間240及び第2次ストリームの生存時間410は、選択ロジック525の外部に格納される)。本実施形態による比較器605は、ブロックの生存時間240又は第2次ストリームの生存時間410を利用して図2図5の生存時間(245、250)及び図6図9の生存時間(310、325、340、355)のそれぞれのストリームを比較する。比較に基づいて、本実施形態によるストリーム選択ロジック620は、どのストリームが図1のブロック103に書き込むか又はどのストリームが図10の第2次ストリーム405に割当られるかを選択する。

0058

選択ロジック525は、任意の所望の時間に動作する。例えば、選択ロジック525は、定期的に(例えば、5分毎に)利用される。又は、新しい書込みオペレーション図11のソリッドステートドライブに伝達される時毎に、選択ロジック525が利用される。或いは、ブロック生存時間240又は第2次ストリーム生存時間410が図2図5の生存時間(245、250)又は図6図9の生存時間(310、325、340、355)より短くなる時毎に、選択ロジック525が利用される。この場合、図2図5の生存時間(245、250)又は図6図9の生存時間(310、325、340、355)は、図1のブロック103又は図10の第2次ストリームに現在書込み中であるストリームを意味する。選択ロジック525は、他の情報を反映する。他の情報は、1つのストリームを選択する時の平均書込みサイズ又は各ストリームの平均書込み到達比率である。例えば、図2図9に示した60分の生存時間を有するブロック103を考慮する。そして、図2図9のブロック103が60ページを含むと仮定する。60分の生存時間を有し、分毎に1ページを書き込むストリームは、ブロック103が120分間有効データを保有することを意味する(最後のページが書き込まれる時まで60分、そしてページが満了する時までの60分)。しかし、利用可能である他のストリームが15分の生存時間を有するページを5分毎に書き込み、選択ロジック525が0:45時点に他のストリームに切り替える場合、ブロック103を満たすのに120分の時間が所要される。さらに、ブロック103の最後のデータが満了する前に15分が加わる。したがって、平均書込みサイズ及び平均書込み到達比率はストリームを変化させる最適の時間に影響を及ぼす。また、選択ロジック525を利用するための他のスケジュールが制限無しで利用される。

0059

図13は、図12の平均書込みサイズ演算器の詳細を示す図である。図13で、平均書込みサイズ演算器610は、与えられたストリームの書込みオペレーション(106、109、112、124、127)に対する情報を受信する。そして、平均書込みサイズ演算器610は、それらの書込みに対する平均書込みサイズ705を演算する(即ち、実行された書込みオペレーションの回数によって分割された書き込みデータ量の合計を意味する)。先に説明したように、、平均書込みサイズ演算器610は、ストリームに対するすべての利用可能な情報、ストリームに対する最も最近のn個の書込みオペレーション、ストリームに対する最後のn個の書込みオペレーションの中で最も早いk個若しくは最後のt分間に発生したストリームに対する書込みオペレーション、又はストリームに対する書込みオペレーションを選択するために任意の望ましいアプローチを利用する。

0060

図14は、図12の平均書込み到達比率演算器の詳細を示す図である。図14において、平均書込み到達比率演算器615は、与えられたストリームの書込みオペレーション(106、109、112、124、127)に対する情報を受信する。そして、平均書込み到達比率演算器615は、それらの書き込みに対する平均書込み到達比率805を演算する(即ち、その間隔(interval)で実行された書込みオペレーションの回数によって分割された最初と最後の書込みオペレーションとの間の時間量を意味する)。先に説明したように、、平均書込み到達比率演算器615は、ストリームに対するすべての利用可能な情報、ストリームに対する最も最近のn個の書込みオペレーション、ストリームに対する最後のn個の書込みオペレーションの中で最も早いk個若しくは最後のt分内に発生したストリームに対する書込みオペレーション、又はストリームに対する書込みペレーションを選択するために任意の他の望ましいアプローチを利用する。

0061

図15は、図12のストリーム選択ロジックの詳細を示す図である。図15で、ストリーム選択ロジック620は、多様な情報を受信する。多様な情報は、例えば、図2図9のブロックの生存時間240、図2図5のストリーム(205、210)の生存時間(245、250)、図6図9のストリーム(305、320、335、350)の生存時間(310、325、340、355)、各ストリームに対する平均書込みサイズ705、及び各ストリームに対する平均書込み到達比率805である。ストリーム選択ロジック620は、図3図9のブロック103に書き込むストリーム905を選択するためにこのような情報を利用する。ストリーム選択ロジック620は、図3図9のブロック103、又は図10の第2次ストリーム405に書き込むストリーム905を選択するための任意の望ましい戦略を利用する。例えば、ストリーム選択ロジック620は、図2図9のブロック103に対する残余の生存時間よりも短く、且つその中で最も高い生存時間を有するストリームを選択する。また、ストリーム選択ロジック620は、例示的に先の図2図5を参照して、データ満了を最適化するためにストリームを切り替える時点を演算する。また、ストリーム選択ロジック620は、他の選択戦略を利用する。先に説明したように、ストリーム選択ロジック620は、ストリームを選択するために提供されたすべての情報又は情報の中の一部を利用する。本実施形態によれば、ストリーム選択ロジック620が図15に示したすべての情報を利用しない場合、ストリーム選択ロジック620は図15に示したすべての情報が提供される必要は無い。

0062

図16は、図11の生存時間演算器の詳細を示す図である。図16で、生存時間演算器535は、与えられたストリームの書込みオペレーション(106、109、112、124、127)に対する情報を受信する。そして、生存時間演算器535は、これらのストリームに対する生存時間(310、325、340、355)を演算する(即ち、データが書き込まれた時期とデータが変更されるか又は削除された時期との間の持続時間を測定し、その後、これらの持続時間を加算し,影響を受けたページの個数で分割する)。先に説明したように、生存時間演算器535は、ストリームに対するすべての利用可能な情報、ストリームに対する最も最近のn個の書込みオペレーション、ストリームに対する最後のn個の書込みオペレーションの中で最も先のk個若しくは最後のt分間に発生したストリームに対する書込みオペレーション、又はストリームに対する書込みオペレーションを選択するための任意の他の望ましいアプローチを利用する。

0063

図17は、図11のソリッドステートドライブを含むマシン(machine)の詳細を示す構成図である。図17を参照すると、マシン(又は複数のマシン)1105は、少なくとも1つのプロセッサ1110を含む。少なくとも1つのプロセッサ1110は、メモリコントローラ1115及びクロック1120を含む。クロック1120は、マシン1105の構成要素のオペレーションを調整(coordinate)するために利用される。例えば、プロセッサ1110は、メモリ1125としてランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、又は他の状態保存媒体otherstate preserving media)を含む。プロセッサ1110は、ストレージ装置505及びネットワークコネクター1130に連結される。例えば、ネットワークコネクター1130は、イーサーネット登録商標コネクターである。プロセッサ1110は、バス1135に連結される。バス1135は、他の構成要素との間でユーザーインターフェイス1140及び入出力エンジン1145を利用して管理される入出力インターフェイスポートに連結される。

0064

図18は、本発明の一実施形態による異なるストリームのデータを図1のブロックに書き込む図11のソリッドステートドライブの動作を示すフローチャートである。図18を参照すると、ステップS1205で、図11のソリッドステートドライブ505は、図1のブロック103を識別する。ステップS1210で、図11のソリッドステートドライブ505は、図2図9の生存時間240を図1のブロック103に連関させる。ステップS1215で、図11のソリッドステートドライブ505は、図2図5のストリーム(205、210)と図6図9のストリーム(305、320、335、350)とを受信する。ステップS1220で、図11のソリッドステートドライブ505は、図1のブロック103に書き込むストリーム905を選択する。ステップS1225で、図11のソリッドステートドライブ505は、選択されたストリーム905のデータを図1のブロック103に書き込む。破線S1230で示すように、図18のフローチャートは、より遅い時点で図11のソリッドステートドライブが図1のブロック103に書き込む他のストリームを選択可能なように選択的にステップS1220に戻ることができる。

0065

図19は、本発明の一実施形態による第2次ストリームを利用して異なるストリームのデータを図1のブロックに書き込む図11のソリッドステートドライブの動作を示すフローチャートである。図19を参照すると、ステップS1305で、図11のソリッドステートドライブ505は、図1のブロック103を識別する。ステップS1310で、図11のソリッドステートドライブ505は、図10の第2次ストリーム405を生成する。ステップS1315で、図11のソリッドステートドライブ505は、図10の生存時間410を図10の第2次ストリーム405に割当する。ステップS1320で、図11のソリッドステートドライブ505は、図2図5のストリーム(205、210)を受信するか又は図6図9のストリーム(305、320、335、350)を受信する。ステップS1325で、図11のソリッドステートドライブ505は、図10の第2次ストリーム405に割当するストリーム905を選択する。ステップS1330で、図11のソリッドステートドライブ505は、選択されたストリーム905のデータを図10の第2次ストリーム405に書き込む。ステップS1335で、図11のソリッドステートドライブ505は、図10の第2次ストリーム405のデータを図1のブロック103に書き込む。破線S1340で示すように、図19のフローチャートは、より遅い時点で図11のソリッドステートドライブ505が図10の第2次ストリーム405に書き込む他のストリームを選択可能なように選択的にステップS1325に戻ることができる。

0066

以下の説明は、本発明の概念の特定な観点で具現される好適なマシン(machine)又は複数のマシン(machines)の簡略かつ一般的な説明を提供するものである。マシン(machine)又は複数のマシン(machines)の少なくとも一部は、他の装置から受信した指示(directives)のみでなく、キーボードマウスのような通常の入力装置からの入力(input)によって制御される。装置又は複数の装置の少なくとも一部は、仮想現実VR:virtual reality)環境との相互作用バイオフィードバック(bio feedback)、又は他の入力信号によっても制御される。本明細書で使用される用語である「マシン(machine)」は、単一マシン(single machine)、仮想マシン(virtual machine)、又は通信接続されたマシンのシステム(a system of communicatively coupled machines)、仮想マシン(virtual machine)、又は共に動作する装置を広く含むことを意図している。例示的な複数のマシンは、コンピューティング装置(computing devices)及び輸送装置(transportation devices)を含む。例えば、コンピューティング装置は、パーソナルコンピュータワークステーションサーバー携帯用コンピュータ携帯用装置携帯電話タブレット等である。例えば、輸送装置は、個人又は公共交通手段(例えば、自動車汽車タクシー等)である。

0067

マシン(machine)又は複数のマシン(machines)は、埋め込み型コントローラ(embedded controllers)を含む。例えば、埋め込み型コントローラは、プログラム可能な(又はプログラム不可能な)ロジックディバイス又はアレイ特定用途向け半導体ASICs:Application Specific IntegratedCircuits)、埋め込み型コンピュータ(embedded computers)、スマートカード(smart cards)、及びこれと類似なものである。ネットワークインターフェイス(network interface)、モデム又は他の通信連結(communicative coupling)を通じて、マシン(machine)又は複数のマシン(machines)は1つ以上の遠隔マシン(remote machines)に対して1つ以上の接続(connections)を利用する。マシン(machines)は、インターネット近距離ネットワーク(LAN:local area networks)、広域ネットワークWAN:wide area networks)等のような物理的な及び/又は論理的なネットワークを通じて相互接続される。通常の技術者には、ネットワーク通信が多様な有線及び/又は無線近距離又は長距離キャリヤー(carriers)及びプロトコルを利用できることが理解される。この場合、多様な有線及び/又は無線近距離又は長距離キャリヤー及びプロトコルは、無線周波数(radio frequency)、衛星(satellite)、マイクロ波(microwave)、米国電気電子学会(IEEE)802.11、ブルートゥース(登録商標)等である。

0068

本発明による実施形態は、機能(functions)、手続(procedures)、データ構造(data structures)、応用プログラム(application programs)等を含む関連データ(associated data)を共に参照して説明される。この場合、関連データは、マシンによってアクセスされる時、タスク(tasks)を遂行するか、或いは抽象データ形式(abstract data types)又はローレベルハードウェアコンテキスト(low−level hardware contexts)を定義するマシン駆動の結果にしたがうものである。例えば、関連データは、揮発性及び/又は不揮発性メモリ(例えば、RAM、ROM等)又は他のストレージ装置及び関連格納媒体(associated storage media)に格納される。例えば、関連格納媒体は、ハードディスクドライブフロッピーディスク(登録商標)、光学格納装置(optical storage)、テープ、フラッシュメモリ、メモリスティックデジタルビデオディスク生物学的格納装置(biological storage)等を含む。関連データは、伝送環境(transmission environments)を通じて伝達される。例えば、伝送環境は、パケット形式直列データ形式、並列データ形式、伝搬信号形式(form of propagated signals)等を有する物理及び/又は論理ネットワークを含む。また、関連データは、圧縮(compressed)されるか又は暗号化(encrypted)されたフォーマットで使用される。関連データは、分散環境(distributed environment)で使用され、マシンアクセス(machine access)のためにローカル的に及び/又は遠隔的に格納される。

0069

本発明の実施形態は、1つ以上のプロセッサによって実行される指示語(instructions)を含む類型の(tangible)非一時的な(non−transitory)マシン−読出し可能媒体(machine−readable medium)を含む。このような指示語は、本明細書に記載した本発明の構成要素を実行するための指示語を含む。

0070

上述した実施形態を参照して本発明の概念の原理を説明した。上述の実施形態は、このような原理から逸脱することなく、配置及び詳細において変形されることができ、任意の方法で組み合せることができる。そして、上述した論議は特定の実施形態に集中したが、他の構成が考慮される。特に、「本発明の一実施形態において」又はこれと類似の表現が本明細書で使用されたが、このような記載は一般的に実施可能性を参照するためのものであり、本発明の概念を特定の実施形態の構成に限定するものではない。本明細書で使用したこれらの用語は、他の実施形態に結合される同一又は他の実施形態を参照する。

0071

上述した実施形態は、本発明の概念を制限するものとして解釈されない。幾つの実施形態が説明されたが、通常の技術者はこれらの実施形態に対して実質的に新規な教示及び本発明の長所から逸脱しないで、多くの変形が可能であることを容易に理解する。したがって、このようなすべての変形は請求の範囲に記載された本発明の概念の範囲内に含まれる。

0072

本発明の実施形態は、制限無しに下記のステートメント拡張することができる。

0073

第1ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1生存時間を含む第1ストリームのデータを受信し、第1生存時間と異なる第2生存時間を含む第2ストリームのデータを受信する受信回路、第1生存時間及び第2生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを選択する選択ロジック、及びソリッドステートドライブのブロックに第1ストリーム及び第2ストリームのデータを書き込む書込みロジックを備える。

0074

第2ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、ブロックに第1ストリーム及び第2ストリームの中のいずれか1つのストリームのデータのみが書き込まれている場合よりも早く、ブロックに格納された全てのデータが満了することを予測する。

0075

第3ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、選択ロジックは、第1生存時間及び第2生存時間に基づいて第1時点にブロックに書き込む第1ストリームを選択し、第1生存時間及び第2生存時間に基づいて第2時点にブロックに書き込む第2ストリームを選択するように動作する。

0076

第4ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、選択ロジックは、第1生存時間及び第2生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを周期的に選択するように動作する。

0077

第5ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、受信回路が第1ストリーム又は第2ストリームのデータを受信する時、選択ロジックは、第1生存時間及び第2生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを選択するように動作する。

0078

第6ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、選択ロジックは、第1生存時間及び第2生存時間をブロックに連関するブロック生存時間と比較する比較器を含む。

0079

第7ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、選択ロジックは、第1ストリームに連関する書込みオペレーションに対する第1平均書込みサイズ及び第2ストリームに連関する書込みオペレーションに対する第2平均書込みサイズを演算する平均書込みサイズ演算器と、第1ストリームに対する第1平均書込み到達比率及び第2ストリームに対する第2平均書込み到達比率を演算する平均書込み到達比率演算器と、を含む。

0080

第8ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第7ステートメントのソリッドステートドライブを含み、選択ロジックは、第1生存時間、第2生存時間、第1平均書込みサイズ、第1平均書込み到達比率、第2平均書込みサイズ、及び第2平均書込み到達比率の中の少なくとも2つに基づいてソリッドステートドライブのブロックに書き込むストリームを選択する。

0081

第9ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第7ステートメントのソリッドステートドライブを含み、第1ストリームに対する第1生存時間及び第2ストリームに対する第2生存時間を演算する生存時間演算器をさらに含む。

0082

第10ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、第2次ストリームを生成する第2次ストリーム生成器をさらに含み、選択ロジックは、第1ストリーム及び第2ストリームの中から第2次ストリームに書き込むストリームを選択するストリーム選択ロジックを含み、書込みロジックは、第2次ストリームをブロックに書き込むように動作する。

0083

第11ステートメントで、本発明の一実施形態によるソリッドステートドライブは、第1ステートメントのソリッドステートドライブを含み、選択ロジックは、第1ストリーム、第2ストリーム、及び第3生存時間を含む第3ストリームのデータを受信する受信回路と、第1生存時間、第2生存時間、及び第3生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを選択するように動作する選択ロジックと、ソリッドステートドライブのブロックに第1ストリーム、第2ストリーム、及び第3ストリームのデータを書き込む書込みロジックと、を含む。

0084

第12ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、ソリッドステートドライブのブロックに対するブロックの生存時間のためのストレージと、ブロックの生存時間、第1生存時間、及び第2生存時間に基づいて、第1生存時間を有する第1ストリーム及び第2生存時間を有する第2ストリームの中からブロックに書き込むストリームを選択する選択ロジックと、を含む。

0085

第13ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、ブロックに第1ストリーム及び第2ストリームの中のいずれか1つのストリームのデータのみが書き込まれている場合よりも早く、ブロックに格納された全てのデータが満了することを予測する。

0086

第14ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、選択ロジックは、ブロックの生存時間、第1生存時間、及び第2生存時間に基づいて第1時点にブロックに書き込む第1ストリームを選択し、ブロックの生存時間、第1生存時間、及び第2生存時間に基づいて第2時点にブロックに書き込む第2ストリームを選択するように動作する。

0087

第15ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、選択ロジックは、ブロックの生存時間、第1生存時間、及び第2生存時間に基づいてソリッドステートドライブのブロックに書き込むストリームを周期的に選択するように動作する。

0088

第16ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、ソリッドステートドライブが第1ストリーム又は第2ストリームのデータを受信する時、選択ロジックは、ブロックの生存時間、第1生存時間、及び第2生存時間に基づいてソリッドステートドライブのブロックにどのストリームを書き込むかを選択するように動作する。

0089

第17ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、選択ロジックは、第1生存時間及び第2生存時間をブロックの生存時間と比較する比較器を含む。

0090

第18ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、選択ロジックは、第1ストリームに連関する書込みオペレーショに対する第1平均書込みサイズ及び第2ストリームに連関する書込みオペレーショに対する第2平均書込みサイズを演算する平均書込みサイズ演算器と、第1ストリームに対する第1平均書込み到達比率及び第2ストリームに対する第2平均書込み到達比率を演算する平均書込み到達比率演算器と、を含む。

0091

第19ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第18ステートメントのソリッドステートドライブに対するロジックを含み、選択ロジックは、ブロックの生存時間、第1生存時間、第2生存時間、第1平均書込みサイズ、第1平均書込み到達比率、第2平均書込みサイズ、及び第2平均書込み到達比率の中の少なくとも2つに基づいてソリッドステートドライブのブロックに書き込むストリームを選択するように動作する。

0092

第20ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、第1ストリームに対する第1生存時間及び第2ストリームに対する第2生存時間を演算する生存時間演算器をさらに含む。

0093

第21ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントのソリッドステートドライブに対するロジックを含み、第2次ストリームを生成する第2次ストリーム生成器をさらに含み、選択ロジックは、第1ストリーム及び第2ストリームの中から第2次ストリームに書き込むストリームを選択するストリーム選択ロジックを含み、第2次ストリームはブロックに書き込まれる。

0094

第22ステートメントで、本発明の一実施形態によるソリッドステートドライブに対するロジックは、第12ステートメントによるソリッドステートドライブに対するロジックを含み、選択ロジックは、ブロックの生存時間、第1生存時間、第2生存時間、及び第3生存時間に基づいて第1生存時間を有する第1ストリーム、第2生存時間を有する第2ストリーム、及び第3生存時間を有する第3ストリームの中からブロックに書き込むストリームを選択するように動作する。

0095

第23ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、ソリッドステートドライブのブロックを識別するステップと、第1生存時間を含む第1ストリームを受信するステップと、第1生存時間と異なる第2生存時間を含む第2ストリームを受信するステップと、第1生存時間及び第2生存時間に基づいてブロックに第1ストリーム又は前記第2ストリームのいずれを書き込むかを選択するステップと、第1ストリーム及び第2ストリームの両方のデータをブロックに書き込むステップと、を有する。

0096

第24ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、ソリッドステートドライブは、ブロックに第1ストリーム及び第2ストリームの中のいずれか1つのストリームのデータのみが書き込まれている場合よりも早く、ブロックに格納された全てのデータが満了することを予測する。

0097

第25ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、ブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップは、第1生存時間及び第2生存時間に基づいて第1時点に第1ストリームをブロックに書き込むように選択するステップと、第1生存時間及び第2生存時間に基づいて第2時点に第2ストリームをブロックに書き込むように選択するステップと、を含む。

0098

第26ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、ブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップは、第1生存時間及び第2生存時間に基づいて第1ストリーム又は第2ストリームのいずれをブロックに書き込むかを周期的に選択するステップを含む。

0099

第27ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、ブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップは、第1ストリーム又は第2ストリームのデータがソリッドステートドライブ書き込まれる時毎に、第1生存時間又は第2生存時間に基づいて第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップを含む。

0100

第28ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、ブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップは、第1生存時間、第2生存時間、第1ストリームに対する第1平均書込みサイズ、第2ストリームに対する第2平均書込みサイズ、第1ストリームに対する第1平均書込み到達比率、及び第2ストリームに対する第2平均書込み到達比率の中の少なくとも2つに基づいてブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップを含む。

0101

第29ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、ソリッドステートドライブのブロックを識別するステップは、ブロックの生存時間をブロックに連関させるステップを含む。

0102

第30ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第29ステートメントの動作方法を含み、ブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップは、第1生存時間、第2生存時間、及びブロックの生存時間に基づいてブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップを含む。

0103

第31ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第30ステートメントの動作方法を含み、ブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップは、第1生存時間又は第2生存時間の中のブロックの生存時間により近い生存時間に基づいて第1ストリーム又は第2ストリームの中からブロックに書き込むストリームを選択するステップを含む。

0104

第32ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、第2次ストリームを生成するステップと、第2次ストリームをブロックに連関させるステップと、をさらに含み、ブロックに第1次ストリーム又は第2次ストリームのいずれを書き込むかを選択するステップは、第1ストリーム及び第2ストリームのデータの中から第2次ストリームに割当するデータを選択するステップを含む。

0105

第33ステートメントで、本発明の一実施形態によるソリッドステートドライブの動作方法は、第23ステートメントの動作方法を含み、第1生存時間及び第2生存時間と異なる第3生存時間を含む第3ストリームを受信するステップをさらに含み、ブロックに第1ストリーム又は第2ストリームのいずれを書き込むかを選択するステップは、第1生存時間、第2生存時間、及び第3生存時間に基づいて第1ストリーム、第2ストリーム、又は第3ストリームの中からブロックに書き込むストリームを選択するステップを含み、第1ストリーム及び第2ストリームの両方のデータをブロックに書き込むステップは、第1ストリームのデータ、第2ストリームのデータ、及び第3ストリームのデータをブロックに書き込むステップを含む。

0106

以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。

0107

103ブロック
106、109、112、124、127ストリーム書込み(オペレーション)
115、118、121 (無効)ページ
130、133、148、151 (有効)ページ
136、139、142、145 ページ
154、157、160、163生存時間値
205、210、305、320、335、350 ストリーム
215、220、225、230、235、315、330、345、360 (残余の)生存時間値
240 (ブロックの)生存時間(TTL)
245、250、310、325、340、355 生存時間(TTL)
405 第2次ストリーム
410 第2次ストリームの生存時間(TTL)
505ソリッドステートドライブ(SSD)
510回路
515SSDコントローラ
520フラッシュメモリ
525選択ロジック
530 書込みロジック
535 生存時間演算器(TTL演算器)
540 第2次ストリーム生成器
605比較器
610 平均書込みサイズ演算器
615 平均書込み到達比率演算器
620 ストリーム選択ロジック
625ストレージ
705 平均書込みサイズ
805 平均書込み到達比率
905 選択されたストリーム
1105マシン
1110プロセッサ
1115メモリコントローラ
1120クロック
1125メモリ
1130ネットワークコネクター
1135バス
1140ユーザーインターフェイス
1145 入出力エンジン

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ