(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022136962
(43)【公開日】2022-09-21
(54)【発明の名称】ホスト装置とストレージ装置間の時間同期化方法及びそのシステム
(51)【国際特許分類】
G06F 3/06 20060101AFI20220913BHJP
G06F 12/00 20060101ALI20220913BHJP
G06F 3/08 20060101ALI20220913BHJP
G06F 13/10 20060101ALI20220913BHJP
【FI】
G06F3/06 301Z
G06F12/00 597U
G06F3/08 H
G06F13/10 340A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2021196553
(22)【出願日】2021-12-02
(31)【優先権主張番号】10-2021-0030078
(32)【優先日】2021-03-08
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】110000051
【氏名又は名称】弁理士法人共生国際特許事務所
(72)【発明者】
【氏名】金 世 美
(72)【発明者】
【氏名】鄭 郁 翰
(72)【発明者】
【氏名】金 東 民
(72)【発明者】
【氏名】朴 正 雨
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA14
(57)【要約】
【課題】ホスト装置とストレージ装置の間の効率的な時間同期化方法及びそれを行うシステムを提供する。
【解決手段】本発明による時間同期化方法は、ホスト装置とストレージ装置との間の時間同期化方法であって、前記ストレージ装置において、前記ホスト装置の時間情報が必要な時間同期化区間を決定するステップと、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間を通知するステップと、前記時間同期化区間の間に、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供するステップと、前記ストレージ装置において、前記ホスト装置の時間情報に基づいて、前記ストレージ装置の時間情報を前記ホスト装置の時間情報に同期化するステップと、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ホスト装置とストレージ装置との間の時間同期化方法であって、
前記ストレージ装置において、前記ホスト装置の時間情報が必要な時間同期化区間を決定するステップと、
前記ストレージ装置から前記ホスト装置に、前記時間同期化区間を通知するステップと、
前記時間同期化区間の間に、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供するステップと、
前記ストレージ装置において、前記ホスト装置の時間情報に基づいて、前記ストレージ装置の時間情報を前記ホスト装置の時間情報に同期化するステップと、を有することを特徴とする時間同期化方法。
【請求項2】
前記時間同期化区間を通知するステップは、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の開始を通知するステップと、
前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の終了を通知するステップと、を含むことを特徴とする請求項1に記載の時間同期化方法。
【請求項3】
前記ホスト装置の時間情報を提供するステップは、前記時間同期化区間の開始の通知に基づいて、前記時間同期化区間の間、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供するステップと、
前記時間同期化区間の終了の通知に基づいて、前記ホスト装置において、前記ホスト装置の時間情報の提供を中止するステップと、を含むことを特徴とする請求項2に記載の時間同期化方法。
【請求項4】
前記ホスト装置及び前記ストレージ装置は、UFS(Universal Flash Storage)標準によって通信することを特徴とする請求項1に記載の時間同期化方法。
【請求項5】
前記UFS標準によるUFSプロトコル情報ユニットを用いて、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間を通知し、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供することを特徴とする請求項4に記載の時間同期化方法。
【請求項6】
前記UFS標準による前記ホスト装置又は前記ストレージ装置のユニプロ属性(UniPro attribute)を用いて、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間を通知し、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供することを特徴とする請求項4に記載の時間同期化方法。
【請求項7】
前記時間同期化区間を通知するステップは、前記ストレージ装置から前記ホスト装置に転送される応答UPIU(UFS Protocol Information Unit:UFSプロトコル情報ユニット)の装置情報フィールドに含まれるビットの内、同期化設定ビットを第1の値に設定して、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の開始を通知するステップと、
前記応答UPIUの前記装置情報フィールドに含まれる前記同期化設定ビットを第2の値に設定して、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の終了を通知するステップと、を含むことを特徴とする請求項4に記載の時間同期化方法。
【請求項8】
前記ホスト装置の時間情報を提供するステップは、前記ホスト装置から前記ストレージ装置に転送される要請UPIUのエキストラヘッダーセグメントに、前記ホスト装置の時間情報を付加するステップを含むことを特徴とする請求項4に記載の時間同期化方法。
【請求項9】
前記ホスト装置から前記ストレージ装置に転送されるクエリ要請UPIU、及び前記ストレージ装置から前記ホスト装置に転送されるクエリ応答UPIUを介して、前記ホスト装置から前記ストレージ装置に提供される前記ホスト装置の時間情報の時間分解能を設定するステップを更に含むことを特徴とする請求項4に記載の時間同期化方法。
【請求項10】
前記UFS標準による前記ホスト装置のユニプロ属性の内、前記時間同期化区間を示す時間情報イネーブル属性、及び前記ホスト装置の時間情報を示す時間情報属性を設定するステップを更に含むことを特徴とする請求項4に記載の時間同期化方法。
【請求項11】
前記時間同期化区間を通知するステップは、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の開始を示す第1の設定要請サービスプリミティブを転送するステップと、
前記ホスト装置において、前記第1の設定要請サービスプリミティブに基づいて、前記時間情報イネーブル属性を第1の値に設定するステップと、
前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の終了を示す第2の設定要請サービスプリミティブを転送するステップと、
前記ホスト装置において、前記第2の設定要請サービスプリミティブに基づいて、前記時間情報イネーブル属性を第2の値に設定するステップと、を含むことを特徴とする請求項10に記載の時間同期化方法。
【請求項12】
前記ホスト装置において、前記時間情報イネーブル属性が前記第1の値を有する間に、前記時間情報属性の値を周期的に更新するステップをさらに含むことを特徴とする請求項11に記載の時間同期化方法。
【請求項13】
前記ホスト装置の時間情報を提供するステップは、前記ストレージ装置から前記ホスト装置に、前記ホスト装置の時間情報を要請する照会要請サービスプリミティブを転送するステップと、
前記照会要請サービスプリミティブに基づいて、前記ホスト装置から前記ストレージ装置に、前記時間情報属性の値を含む照会応答サービスプリミティブを転送するステップと、を含むことを特徴とする請求項11に記載の時間同期化方法。
【請求項14】
前記UFS標準による前記ストレージ装置のユニプロ属性の内、前記時間同期化区間を示す時間情報イネーブル属性、及び前記ホスト装置の時間情報を示す時間情報属性を設定するステップをさらに含むことを特徴とする請求項4に記載の時間同期化方法。
【請求項15】
前記時間同期化区間を通知するステップは、前記ストレージ装置において、前記時間情報イネーブル属性を、前記時間同期化区間の間、第1の値に設定し、前記時間同期化区間以外の区間の間を第2の値に設定するステップと、
前記ホスト装置から前記ストレージ装置に、前記時間情報イネーブル属性の値を要請する照会要請サービスプリミティブを転送するステップと、
前記照会要請サービスプリミティブに基づいて、前記ストレージ装置から前記ホスト装置に、前記時間情報イネーブル属性の値を含む照会応答サービスプリミティブを転送するステップと、を含むことを特徴とする請求項14に記載の時間同期化方法。
【請求項16】
前記ホスト装置の時間情報を提供するステップは、前記照会応答サービスプリミティブに含まれる前記時間情報イネーブル属性が、前記第1の値を有する場合、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を含む設定要請サービスプリミティブを転送するステップと、
前記ストレージ装置において、前記設定要請サービスプリミティブに含まれる前記ホスト装置の時間情報に対し、前記時間情報属性の値を更新するステップと、を含むことを特徴とする請求項15に記載の時間同期化方法。
【請求項17】
前記UFS標準による前記ホスト装置又は前記ストレージ装置のユニプロ属性の内、前記ホスト装置から前記ストレージ装置に提供される前記ホスト装置の時間情報の時間分解能及び更新周期を示す時間情報構成属性を設定するステップをさらに含むことを特徴とする請求項4に記載の時間同期化方法。
【請求項18】
前記UFS標準によるUPIU、又は前記UFS標準によるサービスプリミティブを用いて、前記時間情報構成属性の値を設定することを特徴とする請求項17に記載の時間同期化方法。
【請求項19】
複数の不揮発性メモリ装置を含むストレージ装置と、
前記ストレージ装置を制御するホスト装置と、を有し、
前記ストレージ装置において、前記ホスト装置の時間情報が必要な時間同期化区間を決定し、
前記ストレージ装置から前記ホスト装置に、前記時間同期化区間を通知し、
前記時間同期化区間の間に、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供することを特徴とするシステム。
【請求項20】
UFS標準により通信するホスト装置とストレージ装置の間の時間同期化方法であって、
前記ストレージ装置において、前記ホスト装置の時間情報が必要な時間同期化区間を決定するステップと、
前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の開始を通知するステップと、
前記時間同期化区間の開始の通知に基づいて、前記時間同期化区間の間、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供するステップと、
前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の終了を通知するステップと、
前記時間同期化区間の終了の通知に基づいて、前記ホスト装置において、前記ホスト装置の時間情報の提供を中止するステップと、を有し、
前記UFS標準によるUFSプロトコル情報ユニット(UPIU)、又は前記UFS標準による前記ホスト装置又は前記ストレージ装置のユニプロ属性を用いて、前記時間同期化区間の開始及び終了を通知し、前記ホスト装置の時間情報を提供することを特徴とする時間同期化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路に関し、より詳しくは、ホスト装置とストレージ装置間の時間同期化方法及びこれを行うシステムに関する。
【背景技術】
【0002】
近年、メモリ装置を利用するSSD(solid state drive)のようなストレージ装置が広く使用されている。
上記のようなストレージ装置は、機械的な駆動部がないため、安定性及び耐久性に優れており、情報のアクセス速度が非常に早く、電力消費が少ないというメリットがある。
最近では、ノート型パソコンのような電子システムだけでなく、自動車、航空機、ドローン(drone)などのような様々な種類のシステムに電子回路が適用されることにつれ、ストレージ装置も様々な種類のシステムで使われている。
【0003】
一方、ストレージ装置の性能及び/又は寿命を改善するために、ストレージ装置の時間情報を管理する様々な方式が研究されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は上記従来のストレージ装置における課題に鑑みてなされたものであって、本発明の目的は、ホスト装置とストレージ装置の間の効率的な時間同期化方法を提供することにある。
また、本発明の他の目的は、ホスト装置とストレージ装置の間の効率的な時間同期化方法を行うシステムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するためになされた本発明による時間同期化方法は、ホスト装置とストレージ装置との間の時間同期化方法であって、前記ストレージ装置において、前記ホスト装置の時間情報が必要な時間同期化区間を決定するステップと、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間を通知するステップと、前記時間同期化区間の間に、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供するステップと、前記ストレージ装置において、前記ホスト装置の時間情報に基づいて、前記ストレージ装置の時間情報を前記ホスト装置の時間情報に同期化するステップと、を有することを特徴とする。
【0007】
上記目的を達成するためになされた本発明によるシステムは、複数の不揮発性メモリ装置を含むストレージ装置と、前記ストレージ装置を制御するホスト装置と、を有し、前記ストレージ装置において、前記ホスト装置の時間情報が必要な時間同期化区間を決定し、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間を通知し、前記時間同期化区間の間に、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供することを特徴とする。
【0008】
また、上記目的を達成するためになされた本発明による時間同期化方法は、UFS標準により通信するホスト装置とストレージ装置の間の時間同期化方法であって、前記ストレージ装置において、前記ホスト装置の時間情報が必要な時間同期化区間を決定するステップと、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の開始を通知するステップと、前記時間同期化区間の開始の通知に基づいて、前記時間同期化区間の間、前記ホスト装置から前記ストレージ装置に、前記ホスト装置の時間情報を提供するステップと、前記ストレージ装置から前記ホスト装置に、前記時間同期化区間の終了を通知するステップと、前記時間同期化区間の終了の通知に基づいて、前記ホスト装置において、前記ホスト装置の時間情報の提供を中止するステップと、を有し、前記UFS標準によるUFSプロトコル情報ユニット(UPIU)、又は前記UFS標準による前記ホスト装置又は前記ストレージ装置のユニプロ属性を用いて、前記時間同期化区間の開始及び終了を通知し、前記ホスト装置の時間情報を提供することを特徴とする。
【発明の効果】
【0009】
本発明に係る時間同期化方法及びそのシステムによれば、ストレージ装置により決められる時間同期化区間の間にのみ、時間情報を、ホスト装置からストレージ装置に提供することで、時間情報転送のオーバーヘッドを減少させて、ストレージ装置及びこれを含むシステムの性能を向上することができる。
また、時間情報の転送のための別の信号を用いることなく、既存の信号を拡張して時間情報を転送することで、時間情報転送のオーバーヘッドを更に減少させることができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態による時間同期化方法を説明するためのフローチャートである。
【
図2】本発明の実施形態によるストレージ装置及びこれを含むストレージシステムの概略構成を示すブロック図である。
【
図3】本発明の実施形態によるストレージシステムの動作を説明するための図である。
【
図4】本発明の実施形態によるストレージシステムに含まれるストレージコントローラの一例の概略構成を示すブロック図である。
【
図5】本発明の実施形態によるストレージ装置に含まれる不揮発性メモリの一例の概略構成を示すブロック図である。
【
図6】本発明の実施形態による不揮発性メモリ及びこれを含むメモリシステムの概略構成を示すブロック図である。
【
図7】本発明の実施形態による時間同期化方法を説明するためのフローチャートである。
【
図8】本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図である。
【
図9】本発明の実施形態による時間同期化方法に用いられるUFSプロトコル情報ユニットを示す図である。
【
図10】本発明の実施形態による時間同期化方法の時間同期化区間の通知の一例を示す図である。
【
図11】本発明の実施形態による時間同期化方法の時間同期化区間の通知の一例を示す図である。
【
図12】本発明の実施形態による時間同期化方法の時間情報の提供の一例を示す図である。
【
図13a】本発明の実施形態による時間同期化方法の時間情報の提供の一例を示す図である。
【
図13b】本発明の実施形態による時間同期化方法の時間情報の提供の一例を示す図である。
【
図14】本発明の実施形態による時間同期化方法を説明するためのフローチャートである。
【
図15】本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図である。
【
図16a】本発明の実施形態による時間同期化方法の時間分解能の設定の一例を示す図である。
【
図16b】本発明の実施形態による時間同期化方法の時間分解能の設定の一例を示す図である。
【
図17】本発明の実施形態による時間同期化方法の時間分解能の設定の一実施例を示す図である。
【
図18】本発明の実施形態による時間同期化方法のシーケンスの一実施例を示す図である。
【
図19】本発明の実施形態による時間同期化方法の時間分解能の設定の一例を示す図である。
【
図20】本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図である。
【
図21】本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図である。
【
図22】本発明の実施形態による時間同期化方法を示す図である。
【
図23】本発明の実施形態による時間同期化方法を用いた時間情報使用の一例を説明するための図である。
【
図24】本発明の実施形態によるストレージ装置に含まれる不揮発性メモリ装置のメモリブロックの等価回路を示す回路図である。
【
図25】本発明の実施形態による電子装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【0011】
次に、本発明に係るホスト装置とストレージ装置間の時間同期化方法及びそのシステムを実施するための形態の具体例を図面を参照しながら説明する。
以下、添付の図面を参照して、本発明の好適な実施形態をより詳細に説明する。
図面上の同一の構成要素に対しては、同一の図面号を付し、同一の構成要素について、重複した説明は省略する。
【0012】
図1は、本発明の実施形態による時間同期化方法を説明するためのフローチャートである。
図1に示すように、本発明の実施形態による時間同期化方法は、ホスト装置及びストレージ装置を含むシステムにより行われる。
ストレージ装置は、ホスト装置から受信されるコマンドに基づいて動作する。
ホスト装置及びストレージ装置を含むシステムの構造については、
図2などを参照して、後述する。
【0013】
本発明の実施形態による時間同期化方法により、ストレージ装置において、ホスト装置の時間情報が必要な時間同期化区間を決める(ステップS100)。
ストレージ装置は、タイマーを含み、タイマーから提供されるローカルタイムに基づいて、ストレージ装置の時間情報を管理する。
しかし、パワーサイクル又はハイバネーション(hibernation)区間では、タイマーの動作が不可であり、ホスト装置との時間同期化のために、ホスト装置の時間情報を提供される必要がある。
ストレージ装置は、周期的又は非周期的に時間同期化区間を決定する。
【0014】
ストレージ装置からホスト装置に、時間同期化区間を通知する(ステップS200)。
時間同期化区間の間、ホスト装置からストレージ装置に、ホスト装置の時間情報を提供する(ステップS300)。
【0015】
ストレージ装置は、ホスト装置に、時間同期化区間の開始及び終了を通知する。
ホスト装置は、時間同期化区間の開始の通知に基づいて、時間同期化区間の間、ストレージ装置にホスト装置の時間情報を提供し、時間同期化区間の終了の通知に基づいて、ホスト装置の時間情報の提供を中止する。
【0016】
一実施形態において、
図8~
図19で後述するように、UFS標準によるUFSプロトコル情報ユニット(UPIU)を用いて、ストレージ装置からホスト装置に、時間同期化区間を通知し、ホスト装置からストレージ装置に、ホスト装置の時間情報を提供することができる。
他の実施形態において、
図20及び
図21で後述するように、UFS標準によるホスト装置又はストレージ装置のユニプロ属性(UniPro attribute)を用いて、ストレージ装置からホスト装置に、時間同期化区間を通知し、ホスト装置からストレージ装置に、ホスト装置の時間情報を提供することができる。
【0017】
ストレージ装置において、ホスト装置の時間情報に基づいて、ストレージ装置の時間情報を、ホスト装置の時間情報に同期化する(ステップS400)。
一実施形態において、ストレージ装置は、内蔵されたタイマーから提供されるローカルタイムに基づいて、ホスト装置から提供されたホスト装置の時間情報を補正し、補正されたホスト装置の時間情報に基づいて、ストレージ装置の時間情報を管理する。
【0018】
図23で後述するように、ホスト装置の時間情報に同期化されたストレージ装置の時間情報を用いて、システムの性能を向上するための様々な作業を行うことができる。
従来では、ホスト装置が予め時間提供周期を設定し、ストレージ装置の動作中に周期的に別のコマンドを用いて、ホスト装置の時間情報をストレージ装置に転送していた。
この場合、時間情報の提供のための別のコマンド転送により、ホスト装置とストレージ装置の間のインターフェースにオーバーヘッドが発生する。
【0019】
本発明の実施形態による時間同期化方法、及び当該時間同期化方法を行うシステムは、ストレージ装置により決められる時間同期化区間の間にのみ、時間情報を、ホスト装置からストレージ装置に提供することで、時間情報転送のオーバーヘッドを減少させて、ストレージ装置及びこれを含むシステムの性能を向上することができる。
また、本発明の実施形態による時間同期化方法、及び当該時間同期化方法を行うシステムは、時間情報の転送のための別の信号を用いることなく、既存の信号を拡張して時間情報を転送することで、時間情報転送のオーバーヘッドを更に減少させることができる。
【0020】
図2は、本発明の実施形態によるストレージ装置及びこれを含むストレージシステムの概略構成を示すブロック図である。
図2に示すように、ストレージシステム100は、ホスト装置200と、ストレージ装置300とを含む。
【0021】
ホスト装置200は、ストレージシステム100の全般的な動作を制御する。
ホスト装置200は、ホストプロセッサ210と、ホストメモリ220とを含む。
ホストプロセッサ210は、ホスト装置200の動作を制御する。
例えば、ホストプロセッサ210は、オペレーションシステム(Operating System:OS)を行う。
例えば、オペレーションシステムは、ファイル管理のためのファイルシステム(file system)、及びストレージ装置300を含む周辺器機をオペレーションシステムレベルで制御するための装置ドライバ(device driver)を含む。
例えば、ホストプロセッサ210は、CPUのような任意のプロセッサを含み得る。
ホストメモリ220は、ホストプロセッサ210により実行及び処理されるコマンド(instruction)及びデータを格納する。
例えば、ホストメモリ220は、DRAMなどのような揮発性メモリを含む。
【0022】
ストレージ装置300は、ホスト装置200によりアクセスされる。
ストレージ装置300は、ストレージコントローラ310、複数の不揮発性メモリ(320a、320b、320c)と、バッファメモリ330とを含む。
ストレージコントローラ310は、ストレージ装置300の動作を制御する。
例えば、ストレージコントローラ310は、ホスト装置200から受信したコマンド及びデータに基づいて、複数の不揮発性メモリ(320a、320b、320c)の動作を制御する。
【0023】
ホストプロセッサ210及びストレージコントローラ310は、
図1で説明したような本発明の実施形態による時間同期化方法を行うように具現される。
例えば、ホストプロセッサ210は、ホスト装置200の時間情報(TI)を生成する時間情報生成器212を含み、ストレージコントローラ310は、ホスト装置200から時間情報(TI)を受信し、これを基に、ストレージ装置300の時間情報を管理する時間情報マネージャー312を含む。
ストレージ装置300の時間情報マネージャー312は、ホスト装置200の時間情報(TI)が必要な時間同期化区間を決定し、時間同期化区間を、ホスト装置200に通知する。
ホスト装置200は、時間情報生成器212で生成された時間情報(TI)を、ストレージ装置300に提供し、ストレージ装置300の時間情報マネージャー312は、ホスト装置200の時間情報(TI)に基づいて、ストレージ装置300の時間情報を、ホスト装置200の時間情報(TI)に同期化する。
【0024】
複数の不揮発性メモリ(320a、320b、320c)は、複数のデータを格納する。
例えば、複数の不揮発性メモリ(320a、320b、320c)は、メタデータ及びその他のユーザデータを格納する。
一実施形態において、複数の不揮発性メモリ(320a、320b、320c)のそれぞれは、NANDフラッシュメモリを含む。
【0025】
他の実施形態において、複数の不揮発性メモリ(320a、320b、320c)のそれぞれは、EEPROM(Electrically Erasable Programmable Read-Only Memory)、PRAM(Phase Change Random Access Memory)、RRAM(Resistance Random Access Memory)、NFGM(Nano Floating Gate Memory)、PoRAM(Polymer Random Access Memory)、MRAM(Magnetic Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、又はこれらと同様なメモリを含む。
【0026】
バッファメモリ330は、ストレージコントローラ310により実行及び処理されるコマンド及びデータを格納し、複数の不揮発性メモリ(320a、320b、320c)に格納されているか、又は格納しようとするデータを仮に(一時的に)格納することができる。
例えば、バッファメモリ330は、SRAM(Static Random Access Memory)、DRAMなどのような揮発性メモリを含む。
【0027】
一実施形態において、ストレージ装置300は、UFS(Universal Flash Storage)である。
他の実施形態において、ストレージ装置300は、SSD(Solid State Drive)、MMC(Multi Media Card)、又はeMMC(embedded MMC)である。
他の実施形態において、SD(Secure Digital)カード、マイクロSDカード、メモリスティック(登録商標)(memory stick(登録商標))、チップカード、USB(Universal Serial Bus)カード、スマートカード、CF(Compact Flash)カード、又はこれと同様な形態で具現される。
【0028】
一実施形態において、ストレージ装置300は、SATA(Serial Advanced Technology Attachment)バス、SCSI(Small Computer Small Interface)バス、NVMe(Non-Volatile Memory Express)バス、SAS(Serial Attached SCSI)バス、UFS、eMMCなどのバスを含むブロックアクセシブルインターフェース(block accessible interface)を介して、ホスト装置200に接続され、ホスト装置200により、ブロックアクセシブルインターフェースを介して、ブロック単位でアクセスされる。
【0029】
一実施形態において、ストレージシステム100は、PC、サーバコンピュータ、データセンタ、ワークステーション、デジタルTV、セットトップボックスなどの任意のコンピュータシステムである。
他の実施形態において、ストレージシステム100は、携帯電話、スマートフォン、タブレットPC、ノート型パソコン(laptop computer)、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、デジタルカメラ、カムコーダ、ポータブルゲームコンソール、音楽再生機(music player)、動画再生機(video player)、ナビゲーション機器、ウェアラブル機器、IoT(Internet of Things)機器、e-ブック(e-book)、VR(Virtual Reality)機器、AR(Augmented Reality)機器、ドローンなどの任意のモバイルシステムである。
【0030】
図3は、本発明の実施形態によるストレージシステムの動作を説明するための図である。
図3は、
図2のホスト装置200及びストレージ装置300のソフトウェア階層構造を概念的に示している。
図3に示すように、ホスト装置200は、装置ドライバ251と、時間情報生成器252と、コマンド生成器253と、応答解析機254と、データ転送マネージャー256と、リンク階層257と、PHY(physical layer)258とを含む。
【0031】
装置ドライバ251は、ストレージ装置300を制御するための全般的な動作を制御する。
時間情報生成器252は、ホスト装置200の時間情報を生成する。
一実施形態において、時間情報生成器252は、RTC(real time clock)を時間情報として生成する。
コマンド生成器253は、ストレージ装置300に転送されるコマンドを生成する。
応答解析機254は、ストレージ装置300から受信される命令語要請応答を解析する。
データ転送マネージャー256は、ストレージ装置300に伝達すべきデータに対するパケットを生成する。
リンク階層257は、PHY258に伝達されるデータのフローを制御し、データ転送エラーに対する復旧を行う。
PHY258は、ストレージ装置300との物理的データ通信を管理する。
【0032】
一方、
図3に示してはいないが、ホスト装置200は、アプリケーション及びファイルシステムを更に含むことができる。
アプリケーションは、アプリケーションプログラム(application program)ともいい、オペレーションシステム上で行われるソフトウェアである。
例えば、アプリケーションは、ファイルの生成、コピー。及び削除動作を支援するようにプログラムされている。
例えば、アプリケーションは、動画、ゲーム、ウェブブラウザなどのような様々なサービスを提供することができる。
【0033】
ファイルシステムは、ホスト装置200で使われるファイルを管理する。
例えば、ファイルシステムは、アプリケーションの要請により、アクセスされるファイルに対するファイル名、拡張子、ファイル属性、ファイルサイズ、クラスタ情報などを管理する。
また、ファイルシステムにより、ファイル単位のデータを生成、削除、及び管理する。
例えば、ファイルシステムは、F2FS(Flash-Friendly File System)などである。
アプリケーション、ファイルシステムなどを上位レベル(high level)と呼び、データ転送マネージャー256、リンク階層257、PHY258などを下位レベル(low level)と呼ぶ。
【0034】
ストレージ装置300は、装置コントローラ351と、時間情報マネージャー352と、応答生成器353と、コマンド解析機354と、データ転送マネージャー356と、リンク階層357と、PHY358とを含む。
【0035】
装置コントローラ351は、ストレージ装置300の全般的な動作を制御する。
時間情報マネージャー352は、ホスト装置200から伝達された時間情報を管理する。
応答生成器353は、ホスト装置200に転送する応答(response)を生成する。
コマンド解析機354は、ホスト装置200から転送されたコマンドを解析する。
データ転送マネージャー356は、ホスト装置200に伝達すべきデータに対するパケットを生成する。
リンク階層357は、PHY358に伝達するデータのフローを制御し、データ転送エラーに対する復旧を行う。
PHY358は、ホスト装置200との物理的データ通信を管理する。
【0036】
一方、
図3に示してはいないが、ストレージ装置300は、FTL(Flash Translation Layer)を更に含むことができる。
FTLは、アドレスマッピング(address mapping)、ウェアレベリング(wear-leveling)、ガベージコレクション(garbage collection)のような様々な機能を行うことができる。
アドレスマッピング動作は、ホスト装置200から受信した論理アドレスを、不揮発性メモリ(例えば、
図2の320a、320b、320c)内にデータを実際に格納することに用いられる物理アドレスに替える動作である。
【0037】
ウェアレベリングは、不揮発性メモリ(320a、320b、320c)内のメモリブロックが均一に使用されるようにして、特定ブロックの過度な劣化を防止するための技術であって、例示的に物理ブロックの消去カウントをバランスするファームウエア技術により具現可能である。
ガベージコレクションは、メモリブロックの有効データを新たなメモリブロックにコピーした後、既存のメモリブロックを消去(erase)する方式を通じて、不揮発性メモリ(320a、320b、320c)内で使用可能な容量を確保する技術である。
【0038】
一実施形態において、ホスト装置200のリンク階層257及びストレージ装置300のリンク階層357は、MIPIアライアンス(Alliance)により提案されたユニプロ(UniPro)規約により具現される。
この場合、リンク階層257は、ホスト装置200のユニプロ属性を格納するレジスタ(HREG)を含み、リンク階層357は、ストレージ装置300のユニプロ属性を格納するレジスタ(SREG)を含む。
【0039】
図4は、本発明の実施形態よるストレージ装置に含まれるストレージコントローラの一例の概略構成を示すブロック図である。
図4に示すように、ストレージコントローラ400は、プロセッサ410と、メモリ420と、時間情報マネージャー430と、ホストインターフェース440と、ECC(Error Correction Code)エンジン450と、メモリインターフェース460と、AES(Advanced Encryption Standard)エンジン470とを含む。
【0040】
プロセッサ410は、ホスト装置(例えば、
図2の200)からホストインターフェース440を介して受信したコマンドに応答して、ストレージコントローラ400の動作を制御する。
例えば、プロセッサ410は、ストレージ装置(例えば、
図2の300)の動作を制御し、ストレージ装置300を駆動するためのファームウエア(Firmware)を採用して、それぞれの構成を制御する。
メモリ420は、プロセッサ410により実行及び処理される命令語及びデータを格納する。
例えば、メモリ420は、SRAM、DRAMなどのような揮発性メモリとして具現可能である。
【0041】
本発明の実施形態による時間同期化方法を行うための時間情報マネージャー430は、ホスト装置200の時間情報が必要な時間同期化区間を決め、ホスト装置200から提供されるホスト装置200の時間情報に基づいて、ストレージ装置300の時間情報をホスト装置200の時間情報に同期化する。
時間情報マネージャー430は、内蔵されたタイマー432から提供されるローカルタイムに基づいて、ホスト装置200から提供される時間情報の誤差を補正することができる。
【0042】
誤り訂正のためのECCエンジン450は、BCH(Bose-Chaudhuri-Hocquenghem)符号、LDPC(Low Density Parity Check)符号、ターボ符号(Turbo Code)、リードソロモン符号(Reed-Solomon Code)、畳み込み符号 Convolution Code)、RSC(Recursive Systematic Code)、TCM(Trellis-Coded Modulation)、BCM(Block Coded Modulation)などの符号化変調(Coded Modulation)又は他の誤り訂正符号を用いて、ECCエンコード及びECCデコードを行うことができる。
【0043】
ホストインターフェース440は、ホスト装置200とストレージ装置300との間の物理的接続を提供する。
すなわち、ホストインターフェース440は、ホスト装置200のバスフォーマット(bus format)に対応して、ストレージ装置300とのインターフェースを提供する。
一実施形態において、ホスト装置200のバスフォーマットは、SCSI又はSASである。
他の実施例において、ホスト装置200のバスフォーマットは、USB、PCIe(peripheral component interconnect express)、ATA、PATA、SATA、NVMeである。
【0044】
メモリインターフェース460は、不揮発性メモリ(例えば、
図2の(320a、320b、320c))とデータを交換する。
メモリインターフェース460は、データを、不揮発性メモリ(320a、320b、320c)に転送し、不揮発性メモリ(320a、320b、320c)から読み出されたデータを受信する。
例えば、メモリインターフェース460は、トグル(Toggle)又はONFIのような標準規約を守るように具現される。
【0045】
AESエンジン470は、ストレージコントローラ400に入力されるデータに対する暗号化(encryption)動作と復号化(decryption)動作の少なくとも1つを、対称鍵アルゴリズム(symmetric-key algorithm)を用いて行う。
詳細には図に示してはいないが、AESエンジン470は、暗号化モジュール及び復号化モジュールを含む。
実施形態によって、暗号化モジュール及び復号化モジュールは、互いに別のモジュールとしても具現可能であり、1つのモジュールとしても具現可能である。
【0046】
図5は、本発明の実施形態によるストレージ装置に含まれる不揮発性メモリの一例の概略構成を示すブロック図である。
図5に示すように、不揮発性メモリ500は、メモリセルアレイ510と、アドレスデコーダ520と、ページバッファ回路530と、データ入出力回路540と、電圧生成器550と、制御回路560とを含む。
【0047】
メモリセルアレイ510は、複数のストリング選択線(SSL)、複数のワード線(WL)、及び複数の接地選択線(GSL)を介して、アドレスデコーダ520に接続される。
また、メモリセルアレイ510は、複数のビット線(BL)を介して、ページバッファ回路530に接続される。
メモリセルアレイ510は、複数のワード線(WL)及び複数のビット線(BL)に接続される複数のメモリセルを含む。
メモリセルアレイ510は、それぞれ、メモリセルを含む複数のメモリブロック(BLK1、BLK2、…、BLKz)に区分される。また、メモリブロック(BLK1~BLKz)のそれぞれは、複数のページに区分される。
実施形態によって、メモリセルアレイ510は、2次元アレイ構造又は3次元垂直アレイ構造で形成される。
垂直型(又は、3次元)メモリセルアレイについては、
図24を参照して後述する。
【0048】
制御回路560は、外部(例えば、
図2のストレージコントローラ310)から、コマンド(CMD)及びアドレス(ADDR)を受信し、コマンド(CMD)及びアドレス(ADDR)に基づいて、不揮発性メモリ500の消去ループ、プログラムループ、及び読出し動作を制御する。
ここで、プログラムループは、プログラム動作とプログラム検証動作を含み、消去ループは、消去動作と消去検証動作を含む。
ここで、読出し動作は、ノーマル読出し動作とデータリカバリー読出し動作を含む。
【0049】
例えば、制御回路560は、コマンド(CMD)に基づいて、電圧生成器550を制御するための制御信号(CON)、及びページバッファ回路530を制御するための制御信号(PBC)を発生させ、アドレス(ADDR)に基づいて、行アドレス(R_ADDR)及び列アドレス(C_ADDR)を発生させる。
制御回路560は、行アドレス(R_ADDR)をアドレスデコーダ520に提供し、列アドレス(C_ADDR)をデータ入出力回路540に提供する。
【0050】
アドレスデコーダ520は、複数のストリング選択線(SSL)、複数のワード線(WL)、及び複数の接地選択線(GSL)を介して、メモリセルアレイ510に接続される。
例えば、消去/プログラム/読出し動作時に、アドレスデコーダ520は、行アドレス(R_ADDR)に応答して、複数のワード線(WL)の少なくとも1つを、選択ワード線として決定し、複数のワード線(WL)から、選択ワード線を除く残りのワード線を、非選択ワード線として決定する。
【0051】
また、消去/プログラム/読出し動作時に、アドレスデコーダ520は、行アドレス(R_ADDR)に応答して、複数のストリング選択線(SSL)の少なくとも1つを、選択ストリング選択線として決定し、残りのストリング選択線を、非選択ストリング選択線として決定する。
また、消去/プログラム/読出し動作時に、アドレスデコーダ520は、行アドレス(R_ADDR)に応答して、複数の接地選択線(GSL)の少なくとも1つを、選択接地選択線として決定し、残りの接地選択線を、非選択接地選択線として決定する。
【0052】
電圧生成器550は、電源電圧(PWR)及び制御信号(CON)に基づいて、不揮発性メモリ500の動作に必要な電圧(VS)を発生する。
電圧(VS)は、アドレスデコーダ520を介して、複数のストリング選択線(SSL)、複数のワード線(WL)、及び複数の接地選択線(GSL)に与えられる。
また、電圧生成器550は、電源電圧(PWR)及び制御信号(CON)に基づいて、消去動作に必要な消去電圧(VERS)を発生する。
【0053】
例えば、消去動作時に、電圧生成器550は、メモリブロック(BLK1~BLKz)の共通ソース線及び/又はビット線(BL)に消去電圧(VERS)を与え、アドレスデコーダ520を介して、1つのメモリブロックの全てのワード線に、消去許容電圧(例えば、接地電圧)を与える。
消去検証動作時に、電圧生成器550は、アドレスデコーダ520を介して、1つのメモリブロックの全てのワード線に、消去検証電圧を同時に与えるか、ワード線単位で順次に与える。
【0054】
例えば、プログラム動作時に、電圧生成器550は、アドレスデコーダ520を介して、選択ワード線にプログラム電圧を与え、非選択ワード線には、プログラム禁止電圧を与える。
プログラム検証動作時に、電圧生成器550は、アドレスデコーダ520を介して、選択ワード線にプログラム検証電圧を与え、非選択ワード線には、検証パス電圧を与える。
また、ノーマル読出し動作時に、電圧生成器550は、アドレスデコーダ520を介して、選択ワード線に読出し電圧を与え、非選択ワード線には、読出しパス電圧を与える。
また、データリカバリー読出し動作時に、電圧生成器550は、アドレスデコーダ520を介して、選択ワード線に隣接するワード線に読出し電圧を与え、選択ワード線には、リカバリー読出し電圧を与える。
【0055】
ページバッファ回路530は、複数のビット線(BL)を介して、メモリセルアレイ510に接続される。
ページバッファ回路530は、複数のページバッファを含む。
一実施形態において、1つのページバッファに1つのビット線が接続される。
他の実施例において、1つのページバッファに2つ以上のビット線が接続される。
ページバッファ回路530は、メモリセルアレイ510にプログラムされる書込みデータ(DAT)を格納するか、又は、メモリセルアレイ510から感知された読出しデータ(DAT)を格納する。
すなわち、ページバッファ回路530は、不揮発性メモリ500の動作モードに応じて、書込みドライバ又は感知増幅器として動作する。
【0056】
データ入出力回路540は、データ線(DL)を介して、ページバッファ回路530に接続される。
データ入出力回路540は、列アドレス(C_ADDR)に応答して、データ(DAT)を、ページバッファ回路530を介して、メモリセルアレイ510に提供するか、メモリセルアレイ510からページバッファ回路530を介して出力されるデータ(DAT)を、外部に提供する。
【0057】
一方、NANDフラッシュメモリに基づいて、本発明の実施形態による不揮発性メモリを説明したが、本発明の実施形態による不揮発性メモリは、PRAM、RRAM、NFGM(Nano Floating Gate Memory)、PoRAM、MRAM、FeRAMなどのような任意の不揮発性メモリであり得る。
【0058】
図6は、本発明の実施形態による不揮発性メモリ及びこれを含むメモリシステムの概略構成を示すブロック図である。
図6に示すように、メモリシステム600は、メモリ装置610と、メモリコントローラ620とを含む。
【0059】
メモリシステム600は、複数のチャンネル(CH1、CH2、…、CHm)を支援し、メモリ装置610とメモリコントローラ620は、複数のチャンネル(CH1~CHm)を介して接続される。
例えば、メモリシステム600は、UFS、SSDのようなストレージ装置として具現され、
図2のストレージ装置300に対応する。
【0060】
メモリ装置610は、複数の不揮発性メモリ(NVM11、NVM12、…、NVM1n、NVM21、NVM22、…、NVM2n、NVMm1、NVMm2、…、NVMmn)を含む。
例えば、不揮発性メモリ(NVM11~NVMmn)は、
図2の不揮発性メモリ(320a、320b、320c)に対応する。
不揮発性メモリ(NVM11~NVMmn)のそれぞれは、対応するウェイ(way)を介して、複数のチャンネル(CH1~CHm)の1つに接続される。
【0061】
例えば、不揮発性メモリ(NVM11~NVM1n)は、ウェイ(W11、W12、…、W1n)を介して、第1のチャンネル(CH1)に接続され、不揮発性メモリ(NVM21~NVM2n)は、ウェイ(W21、W22、…、W2n)を介して、第2のチャンネル(CH2)に接続され、不揮発性メモリ(NVMm1~NVMmn)は、ウェイ(Wm1、Wm2、…、Wmn)を介して、第mのチャンネル(CHm)に接続される。
例示的な実施形態において、不揮発性メモリ(NVM11~NVMmn)のそれぞれは、メモリコントローラ620からの個別的な命令によって動作可能な任意のメモリ単位で具現される。
例えば、不揮発性メモリ(NVM11~NVMmn)のそれぞれは、チップ又はダイ(die)で具現可能であるが、これに限定されるものではない。
【0062】
メモリコントローラ620は、複数のチャンネル(CH1~CHm)を介して、メモリ装置610と信号を送受信する。
例えば、メモリコントローラ620は、
図2のストレージコントローラ310に対応する。
例えば、メモリコントローラ620は、チャンネル(CH1~CHm)を介して、メモリ装置610に、コマンド(CMDa、CMDb、…、CMDm)、アドレス(ADDRa、ADDRb、…、ADDRm)、及びデータ(DATAa、DATAb、…、DATAm)を転送するか、メモリ装置610からデータ(DATAa~DATAm)を受信する。
【0063】
メモリコントローラ620は、それぞれのチャンネルを介して、該当チャンネルに接続された不揮発性メモリの1つを選択し、選択された不揮発性メモリと信号を送受信する。
例えば、メモリコントローラ620は、第1のチャンネル(CH1)に接続された不揮発性メモリ(NVM11~NVM1n)の内、不揮発性メモリ(NVM11)を選択する。
メモリコントローラ620は、選択された不揮発性メモリ(NVM11)に、第1のチャンネル(CH1)を介して、コマンド(CMDa)、アドレス(ADDRa)、及びデータ(DATAa)を転送するか、選択された不揮発性メモリ(NVM11)から、データ(DATAa)を受信する。
【0064】
メモリコントローラ620は、互いに異なるチャンネルを介して、メモリ装置610と信号を並列的に送受信する。
例えば、メモリコントローラ620は、第1のチャンネル(CH1)を介して、メモリ装置610にコマンド(CMDa)を転送する間、第2のチャンネル(CH2)を介して、メモリ装置610にコマンド(CMDb)を転送することができる。
例えば、メモリコントローラ620は、第1のチャンネル(CH1)を介して、メモリ装置610からデータ(DATAa)を受信する間、第2のチャンネル(CH2)を介して、メモリ装置610からデータ(DATAb)を受信することができる。
【0065】
メモリコントローラ620は、メモリ装置610の全般的な動作を制御する。
メモリコントローラ620は、チャンネル(CH1~CHm)に信号を転送して、チャンネル(CH1~CHm)に接続された不揮発性メモリ(NVM11~NVMmn)のそれぞれを制御する。
例えば、メモリコントローラ620は、第1のチャンネル(CH1)にコマンド(CMDa)及びアドレス(ADDRa)を転送して、不揮発性メモリ(NVM11~NVM1n)の内、選択された1つを制御する。
【0066】
不揮発性メモリ(NVM11~NVMmn)のそれぞれは、メモリコントローラ620の制御により、動作する。
例えば、不揮発性メモリ(NVM11)は、第1のチャンネル(CH1)に提供されるコマンド(CMDa)、アドレス(ADDRa)、及びデータ(DATAa)により、データ(DATAa)をプログラムする。
例えば、不揮発性メモリ(NVM21)は、第2のチャンネル(CH2)に提供されるコマンド(CMDb)及びアドレス(ADDRb)により、データ(DATAb)を読み出し、読み出されたデータ(DATAb)を、メモリコントローラ620に転送する。
【0067】
図6では、メモリ装置610が「m」個のチャンネルを介して、メモリコントローラ620と通信し、メモリ装置610がそれぞれのチャンネルに対応して、「n」個の不揮発性メモリを含むこととして示しているが、チャンネルの数と、1つのチャンネルに接続された不揮発性メモリの数は、様々に変更可能である。
【0068】
以下では、ストレージ装置がUFSである場合に基づいて、本発明の実施形態を詳細に説明することにする。
但し、本発明は、これに限定されず、ストレージ装置は、SSDなどのように、その他に様々な形態で具現され得る。
【0069】
図7は、本発明の実施形態による時間同期化方法を説明するためのフローチャートである。
図2~
図7に示しているように、ストレージ装置300からホスト装置200に、時間同期化区間の開始を通知する(ステップS210)。
時間同期化区間の開始の通知に基づいて、時間同期化区間の間、ホスト装置200からストレージ装置300に、ホスト装置200の時間情報を提供する(ステップS310)。
【0070】
一方、ストレージ装置300からホスト装置200に、時間同期化区間の終了を通知する(ステップS220)。
一方、時間同期化区間の終了の通知に基づいて、ホスト装置200において、ホスト装置200の時間情報の提供を中止する(ステップS320)。
【0071】
一実施形態において、
図8~
図19を参照して後述するように、UFS標準によるUFSプロトコル情報ユニット(UPIU)を用いて、ストレージ装置からホスト装置に、時間同期化区間を通知し、ホスト装置からストレージ装置に、ホスト装置の時間情報を提供する。
【0072】
他の実施形態において、
図20及び
図21で後述するように、UFS標準によるホスト装置又はストレージ装置のユニプロ属性を用いて、ストレージ装置からホスト装置に時間同期化区間を通知し、ホスト装置からストレージ装置に、ホスト装置の時間情報を提供する
【0073】
図8は、本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図である。
図8は、ストレージ装置300のランタイム区間(runtime interval)の間に、ホスト装置200とストレージ装置300との間で転送される第1~第6の要請UPIU(REQ1~REQ6)、及び第1~第6の応答UPIU(RSP1~RSP6)を示している。
UFS標準によるUFSプロトコル情報ユニット(UPIU)については、
図9などを参照して後述する。
【0074】
図8に示すように、ステップS11において、ホスト装置200は、ストレージ装置300に、第1の要請UPIU(REQ1)を転送し、
ステップS21において、ストレージ装置300は、ホスト装置200に、第1の要請UPIU(REQ1)に対応する第1の応答UPIU(RSP1)を転送する。
【0075】
ステップS31において、ストレージ装置300は、ホスト装置200の時間情報が必要な時間同期化区間(TSI)の開始(enter)を決定する。
【0076】
ステップS12において、ホスト装置200は、ストレージ装置300に第2の要請UPIU(REQ2)を転送し、
ステップS22において、ストレージ装置300は、ホスト装置200に、第2の要請UPIU(REQ2)に対応する第2の応答UPIU(RSP2)を転送する。
ここで、ストレージ装置300は、第2の応答UPIU(RSP2)に含まれる同期化設定ビット(SSB)を第1の値(例えば、「1」の値)に設定して、ストレージ装置300からホスト装置に、時間同期化区間(TSI)の開始を通知する。
【0077】
ステップS13において、ホスト装置200は、ストレージ装置300に第3の要請UPIU(REQ3)を転送し、
ステップS23において、ストレージ装置300は、ストレージ装置300に、第3の要請UPIU(REQ3)に対応する第3の応答UPIU(RSP3)を転送する。
ここで、ホスト装置200は、第2の応答UPIU(RSP2)による時間同期化区間(TSI)の開始の通知に基づいて、ホスト装置200の時間情報(TI)を含む第3の要請UPIU(REQ3)を、ストレージ装置300に転送する。
ストレージ装置300は、第3の応答UPIU(RSP3)に含まれる同期化設定ビット(SSB)を第1の値に設定して、時間同期化区間(TSI)が維持されることを、ホスト装置200に通知する。
【0078】
ステップS14において、ホスト装置200は、ストレージ装置300に第4の要請UPIU(REQ4)を転送し、
ステップS24において、ストレージ装置300は、ホスト装置200に、第4の要請UPIU(REQ4)に対応する第4の応答UPIU(RSP4)を転送する。
ここで、ホスト装置200は、第3の応答UPIU(RSP3)による時間同期化区間(TSI)の維持の通知に基づいて、ホスト装置200の時間情報(TI)を含む第4の要請UPIU(REQ4)を、ストレージ装置300に転送する。
ストレージ装置300は、第4の応答UPIU(RSP4)に含まれる同期化設定ビット(SSB)を第1の値に設定して、時間同期化区間(TSI)が維持されることを、ホスト装置200に通知する。
【0079】
ステップS32において、ストレージ装置300は、ホスト装置200の時間情報が必要な時間同期化区間(TSI)の終了(exit)を決定する。
【0080】
ステップS15において、ホスト装置200は、ストレージ装置300に第5の要請UPIU(REQ5)を転送し、
ステップS25において、ストレージ装置300は、ホスト装置200に、第5の要請UPIU(REQ5)に対応する第5の応答UPIU(RSP5)を転送する。
ここで、ストレージ装置300は、第5の応答UPIU(RSP2)に含まれる同期化設定ビット(SSB)を、第2の値(例えば、「0」の値)に設定して、ストレージ装置300からホスト装置に、時間同期化区間(TSI)の終了を通知する。
【0081】
ステップS16において、ホスト装置200は、ストレージ装置300に第6の要請UPIU(REQ6)を転送し、
ステップS26において、ストレージ装置300は、ホスト装置200に、第6の要請UPIU(REQ6)に対応する第6の応答UPIU(RSP6)を転送する。
ここで、ホスト装置200は、第5の応答UPIU(RSP3)による時間同期化区間(TSI)の終了の通知に基づいて、ホスト装置200の時間情報(TI)を含まない第6の要請UPIU(REQ6)を、ストレージ装置300に転送する。
ストレージ装置300は、第6の応答UPIU(RSP6)に含まれる同期化設定ビット(SSB)を第2の値に設定して、時間同期化区間(TSI)ではないことを、ホスト装置200に通知する。
【0082】
このように、ストレージ装置300は、第2の応答UPIU(RSP2)による開始通知、及び第5の応答UPIU(RSP5)による終了通知により、時間同期化区間(TSI)をホスト装置200に通知する。
ホスト装置200は、ストレージ装置300により決められる時間同期化区間(TSI)の間にのみ、時間情報(TI)をストレージ装置300に提供することで、時間情報転送のオーバーヘッドを減少させて、ストレージ装置300及びこれを含むシステム100の性能を向上することができる。
【0083】
以下、ホスト装置200及びストレージ装置300が、USF標準により通信するシステム100を中心に、本発明の実施形態を説明する。
この明細書に明示的に説明していない事項は、USF標準に符合し、USF標準は、全体又は一部として参照される。
【0084】
図9は、本発明の実施形態による時間同期化方法に用いられるUFSプロトコル情報ユニット(UFS Protocol Information Unit:以下、UPIU)を示す図である。
図9は、UFS標準によるUPIUの一般的なフォーマットを示している。
UPIUは、複数のフィールドを含み、
図9には、各フィールドに対するバイト番号(0~j+3)及び名称が記載されている。
【0085】
例えば、UPIUは、Transaction Type、Flags、LUN、Task Tag、IID、Command Set Type、Query Function/Task Manag.Function、Response、Total EHS Length(00h)、Device Information、Data Segment Length、Transaction Specific Fields、Extra Header Segment(EHS)1~Extra Header Segment(EHS)N、Header E2ECRC、Data Segment、Data E2ECRCなどのようなフィールドを含む。
各フィールドに関する説明は、UFS標準に公開された説明を参照のこと。
【0086】
図9に示すようなUFS標準によるUPIUを用いて、ストレージ装置300からホスト装置200に、時間同期化区間(TSI)を通知し、ホスト装置200からストレージ装置300に、ホスト装置200の時間情報(TI)を提供する。
【0087】
図10及び
図11は、本発明の実施形態による時間同期化方法の時間同期化区間の通知の一例を示す図である。
図10は、応答UPIUのヘッダー部分を示しており、
図11は、
図10の応答UPIUに含まれる装置情報フィールド(FLD1)のフォーマットの一例を示している。
【0088】
図10及び
図11に示すように、装置情報フィールド(FLD1)の第1のビット(B[0])は、USF標準で、ストレージ装置300がホスト装置200に特定のイベントが発生したことを報知する(「EVENT_ALERT」)ための用途として既に使われている。
装置情報フィールド(FLD1)の第1のビット(B[0])が「1」の値を有する場合、ホスト装置200は、発生したイベント確認のために、再度、UPIUをストレージ装置300に転送する。
【0089】
装置情報フィールド(FLD1)の第2~第8のビット(B[1:7])は、USF標準で留保されたビットである。
本発明の実施形態によって、UFS標準で留保されたビットの内、1つのビットを、時間同期化区間(TSI)の通知のためのビット、すなわち、
図8の同期化設定ビット(SSB)として使用する。
図11は、第2のビット(B[1])を同期化設定ビット(SSB)として用いた例を示している。
例えば、第2のビット(B[1])が第1の値(例えば、「1」の値)を有する場合、時間同期化区間(TSI)の開始を示し、第2のビット(B[1])が第2の値(例えば、「0」の値)を有する場合、時間同期化区間(TSI)の終了を示す。
【0090】
図8~
図11を参照して説明したように、ストレージ装置300からホスト装置200に転送される応答UPIUの装置情報フィールド(FLD1)に含まれるビットの内、同期化設定ビット(SSB)を第1の値に設定して、ストレージ装置300からホスト装置200に、時間同期化区間(TSI)の開始を通知する。
また、応答UPIUの装置情報フィールド(FLD1)に含まれる同期化設定ビット(SSB)を第2の値に設定して、ストレージ装置300からホスト装置200に、時間同期化区間(TSI)の終了を通知する。
【0091】
図12、
図13a及び
図13bは、本発明の実施形態による時間同期化方法の時間情報の提供の一例を示す図である。
図12、
図13a及び
図13bは、ホスト装置200からストレージ装置300に転送される要請UPIUの例として、コマンドUPIUを示しているが、本発明の実施形態がコマンドUPIUを用いた時間情報転送にのみ限定されるものではない。
ホスト装置200の時間情報(TI)は、UFS標準で定義された「DATA OUT UPIU」などのように、ホスト装置200からストレージ装置300に転送されるUPIUを用いて、転送することができる。
【0092】
図12は、ホスト装置200の時間情報(TI)を含まないコマンドUPIUのフォーマットを示す。
すなわち、
図12のコマンドUPIUは、
図8の第1の要請UPIU(REQ1)、第2の要請UPIU(REQ2)、第6の要請UPIU(REQ6)に該当する。
図12に示すように、時間情報(TI)を含まない要請UPIUは、エキストラヘッダーセグメント(Extra Header Segment:EHS)を含まず、全体EHS長さフィールド(FLD2)の値は、「00h」に設定される。
【0093】
図13aは、ホスト装置200の時間情報(TI)を含むコマンドUPIUを示す。
すなわち、
図13aのコマンドUPIUは、
図8の第3の要請UPIU(REQ3)、第4の要請UPIU(REQ4)、第5の要請UPIU(REQ5)に該当する。
図13aに示すように、時間情報(TI)を含む要請UPIUは、エキストラヘッダーセグメント(FLD3)を含み、全体EHS長さフィールド(FLD2)の値は、エキストラヘッダーセグメント(FLD3)の長さを示す。
図13aには、エキストラヘッダーセグメント(FLD3)が8バイトであることを例示し、全体EHS長さフィールド(FLD2)の値は、「02h」に設定される。
全体EHS長さフィールド(FLD2)の値は、エキストラヘッダーセグメント(FLD3)に転送されるデータサイズを、4バイト単位で設定する。
【0094】
図13bに示すように、要請UPIUのエキストラヘッダーセグメント(FLD3)、すなわち、要請UPIUの32~39バイトには、所定の時間分解能(time resolution)に対応するホスト装置200の時間情報(TI)が含まれる。
すなわち、ホスト装置200からストレージ装置300に転送される要請UPIUのエキストラヘッダーセグメント(EHS)に、ホスト装置200の時間情報(TI)を付加して、ホスト装置200は、時間情報(TI)をストレージ装置300に提供することができる。
【0095】
このように、本発明の実施形態による時間同期化方法、及び当該時間同期化方法を行うシステムは、時間情報の転送のための別の信号を用いることなく、既存の信号を拡張して時間情報を転送することで、時間情報転送のオーバーヘッドを更に減少させることができる。
【0096】
図14は、本発明の実施形態による時間同期化方法を説明するためのフローチャートである。
図14に示すように、ホスト装置200からストレージ装置300に提供されるホスト装置200の時間情報(TI)の時間分解能を設定する(ステップS500)。
時間同期化区間(TSI)の間に、ホスト装置200からストレージ装置300に、時間分解能に対応するホスト装置200の時間情報(TI)を提供する(ステップS600)。
【0097】
一実施形態において、
図15~
図19で後述するように、UFS標準によるUPIUを用いて、時間分解能を設定することができる。
他の実施形態において、
図20及び
図21で後述するように、UFS標準によるユニプロ属性を用いて、時間分解能を設定することができる。
【0098】
図15は、本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図であり、
図16a、
図16b、及び
図17は、本発明の実施形態による時間同期化方法の時間分解能の設定の一例を示す図である。
図15のランタイム区間の間に行われるステップS11、ステップS21、ステップS31、ステップS12、ステップS22、ステップS13、ステップS23は、前述の
図8での説明のものと同様であるので、重複する説明を省略する。
【0099】
図15は、ストレージ装置300の初期化区間(initialization interval)又はアイドル区間(idle interval)の間に、ホスト装置200からストレージ装置300に転送されるクエリ要請(query request)UPIU(QREQ)、及びストレージ装置300からホスト装置200に転送されるクエリ応答(query response)UPIU(QRSP)を示している。
【0100】
ステップS10において、ホスト装置200は、ストレージ装置300にクエリ要請UPIU(QREQ)を転送し、
ステップS20において、ストレージ装置300は、ホスト装置200に、クエリ要請UPIU(QREQ)に対応するクエリ応答UPIU(QRSP)を転送する。
ここで、ホスト装置200は、ホスト装置200に具現された時間分解能(HRSL)をクエリ要請UPIU(QREQ)に含ませ、ストレージ装置300は、ストレージ装置300により支援される時間分解能(SRSL)を、クエリ応答UPIU(QRSP)に含ませる。
【0101】
このように、ホスト装置200からストレージ装置300に転送されるクエリ要請UPIU(QREQ)、及びストレージ装置300からホスト装置200に転送されるクエリ応答UPIU(QRSP)を通じて、ホスト装置200からストレージ装置300に提供されるホスト装置200の時間情報(TI)の時間分解能を設定することができる。
【0102】
図16a、
図16b、及び
図17は、本発明の実施形態による時間同期化方法の時間分解能の設定の一例を示す図である。
図16aは、ホスト装置200からストレージ装置300に転送されるクエリ要請UPIUのフォーマットを示しており、
図16bには、ストレージ装置300からホスト装置200に転送されるクエリ応答UPIUのフォーマットを示す。
図17は、時間分解能を示すUFS属性の一例を示す。
【0103】
時間分解能を示すUFS属性は、UFS標準で留保された識別番号(IDN)を用いて定義することができる。
例えば、
図17に示すように、20hの識別番号(IDN)に装置時間分解能属性(bDeviceTimeResolution)を定義し、21hの識別番号(IDN)にホスト時間分解能属性(bHostTimeResolution)を定義する。
【0104】
装置時間分解能属性(bDeviceTimeResolution)及びホスト時間分解能属性(bHostTimeResolution)のそれぞれは、1バイトのサイズを有し、装置時間分解能属性(bDeviceTimeResolution)は、ストレージ装置300からホスト装置200に読み出しだけでき(Read Only)、ホスト時間分解能属性(bHostTimeResolution)は、ストレージ装置300からホスト装置200に読み出すこともでき、ホスト装置200からストレージ装置300に書き込むこともできる(Read/Write)。
【0105】
装置時間分解能属性(bDeviceTimeResolution)及びホスト時間分解能属性(bHostTimeResolution)のそれぞれは、様々な時間分解能のイネーブル可否を示すビット(B[0]~B[3])を含む。
ビット(B[0]~B[3])の各ビット値の設定により、ナノ秒(ns)、マイクロ秒(us)、ミリ秒(ms)、秒(s)などの時間分解能を設定する。
【0106】
このような装置時間分解能属性(bDeviceTimeResolution)及びホスト時間分解能属性(bHostTimeResolution)は、USF標準によって、
図16a及び
図16bのクエリ要請UPIU及びクエリ応答UPIUの「Transaction Specific Fields」に含まれることで、ホスト装置200及びストレージ装置300の間で転送される。
【0107】
図18は、本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図である。
図18のランタイム区間の間に行われるステップS11、ステップS21、ステップS31、ステップS12、ステップS22、ステップS13、ステップS23は、時間分解能の転送に関する事項を除き、前述の
図8での説明したものと同様であるので、重複する説明は省略する。
【0108】
図18に示すように、第2の応答UPIU(REQ2)及び第3の応答UPIU(REQ3)は、前述した同期化設定ビット(SSB)だけでなく、ストレージ装置300で支援される時間分解能(SRSL)を含む。
図15~
図17の例では、時間分解能を、ストレージ装置300の初期化区間又はアイドル区間の間に設定することに対して、
図18及び
図19の例では、時間分解能を、ストレージ装置300のランタイム区間の間に設定する。
【0109】
図19は、本発明の実施形態による時間同期化方法の時間分解能の設定の一例を示す図である。
図19は、
図10の応答UPIUに含まれる装置情報フィールド(FLD1)のフォーマットの一例を示す。
【0110】
図10及び
図19に示すように、装置情報フィールド(FLD1)の第1のビット(B[0])は、USF標準で、ストレージ装置300がホスト装置200に特定のイベントが発生したことを報知する(「EVENT_ALERT」)ための用途として既に使われている。
装置情報フィールド(FLD1)の第1のビット(B[0])が「1」の値を有する場合、ホスト装置200は、発生したイベント確認のために、再度UPIUをストレージ装置300に転送する。
【0111】
装置情報フィールド(FLD1)の第2~第8のビット(B[1:7])は、USF標準に従って留保されたビットである。
本発明の実施形態によって、UFS標準で留保されたビットの内、1つのビットを、時間同期化区間(TSI)の通知のためのビット、すなわち、
図8の同期化設定ビット(SSB)として使用可能である。
また、留保されたビットの内、1つ以上のビットを、時間分解能のためのビットとして使用可能である。
図19は、第2のビット(B[1])を同期化設定ビット(SSB)と使用し、第3~第6のビット(B[2:5])を、
図17を参照して説明したような時間分解能のためのビットとして使用した例を示している。
【0112】
図20及び
図21は、本発明の実施形態による時間同期化方法のシーケンスの一例を説明するための図である。
図20及び
図21は、ストレージ装置300のリンク階層アイドル区間(link layer idle interval)の間に、ホスト装置200及びストレージ装置300の間で転送されるサービスプリミティブを示す。
【0113】
図20及び
図21に示すように、UFS標準によるホスト装置200又はストレージ装置300のユニプロ属性(UniPro attribute)の内、時間情報構成属性(TICNF)、時間情報イネーブル属性(TIEN)、及び時間情報属性(TIVL)を設定することができる。
ホスト装置200又はストレージ装置300のユニプロ属性は、
図3のレジスタ(HREG、SREG)に格納される。
【0114】
時間情報構成属性(TICNF)は、ホスト装置200からストレージ装置300に提供されるホスト装置200の時間情報(TI)の時間分解能(RSL)及び更新周期(UPR)を示す。
時間情報イネーブル属性(TIEN)は、前述した時間同期化区間(TLI)を示す。
時間情報属性(TIVL)は、ホスト装置200の時間情報(TI)を示す。
【0115】
図20には、ホスト装置200のユニプロ属性を用いて、時間同期化方法を行う一例を示す。
図20に示すように、ステップS51において、ストレージ装置300は、ホスト装置200の時間情報が必要な時間同期化区間(TSI)の開始(enter)を決定する。
ステップS52において、ストレージ装置300は、ホスト装置200に、時間同期化区間(TSI)の開始を示す第1の設定要請サービスプリミティブ(DME_PEER_SET.req1)を転送する。
第1の設定要請サービスプリミティブ(DME_PEER_SET.req1)は、時間情報(TI)の時間分解能(RSL)と更新周期(UPR)、及び時間同期化区間(TSI)の開始通知を示す第1の値(ENABLE)を含む。
【0116】
ステップS53において、ホスト装置200は、第1の設定要請サービスプリミティブ(DME_PEER_SET.req1)に基づいて、時間情報イネーブル属性を、第1の値に設定する。
また、ホスト装置200は、第1の設定要請サービスプリミティブ(DME_PEER_SET.req1)に基づいて、時間情報構成属性(TICNF)を、時間情報(TI)の時間分解能(RSL)と更新周期(UPR)に設定する。
【0117】
ホスト装置200は、時間情報構成属性(TICNF)の値を参照して、時間分解能(RSL)に対応する時間情報(TI)を、時間情報属性(TIVL)に格納する。
ホスト装置200は、時間情報イネーブル属性(TIEN)が第1の値(ENABLE)を有する間、時間情報構成属性(TICNF)の値を参照して、更新周期(UPR)によって、周期的に時間情報属性(TIVL)の時間情報(TI)を更新する。
【0118】
ステップS54において、ストレージ装置300は、ホスト装置200に、ホスト装置200の時間情報(TI)、すなわち、時間情報属性(TIVL)の値を要請する照会要請サービスプリミティブ(DME_PEER_GET.req)を転送する。
ステップS55において、ホスト装置200は、照会要請サービスプリミティブ(DME_PEER_GET.req)に基づいて、ストレージ装置300に、時間情報属性(TIVL)の値、すなわち、ホスト装置200の時間情報(TI)を含む照会応答サービスプリミティブ(DME_PEER_GET_cnf)を転送する。
【0119】
ステップS56において、ストレージ装置300は、ホスト装置200の時間情報が必要な時間同期化区間(TSI)の終了(exit)を決定する。
ステップS57において、ストレージ装置300は、ホスト装置200に時間同期化区間(TSI)の終了を示す第2の設定要請サービスプリミティブ(DME_PEER_SET.req2)を転送する。
第2の設定要請サービスプリミティブ(DME_PEER_SET.req2)は、時間同期化区間(TSI)の終了通知を示す第2の値(DISABLE)を含む。
【0120】
ステップS58において、ホスト装置200は、第2の設定要請サービスプリミティブ(DME_PEER_SET.req2)に基づいて、時間情報イネーブル属性(TIEN)を、第2の値(DISABLE)に設定する。
時間情報イネーブル属性(TIEN)が第2の値(DISABLE)に設定された間に、ホスト装置200は、時間情報属性(TIVL)の時間情報(TI)の更新を中止する。
【0121】
図21は、ストレージ装置300のユニプロ属性を用いて、時間同期化方法を行う一例を示す。
図21に示すように、ステップS61において、ストレージ装置300は、ホスト装置200の時間情報が必要な時間同期化区間(TSI)の開始(enter)を決定する。
【0122】
ステップS62において、ストレージ装置300は、時間情報イネーブル属性(TIEN)を第1の値(ENABLE)に設定する。
また、ストレージ装置300は、時間情報構成属性(TICNF)を、時間情報(TI)の時間分解能(RSL)と更新周期(UPR)に設定する。
【0123】
ステップS63において、ホスト装置200は、ストレージ装置300に、時間情報イネーブル属性(TIEN)の値を要請する第1の照会要請サービスプリミティブ(DME_PEER_GET.req1)を転送する。
また、ホスト装置200は、第1の照会要請サービスプリミティブ(DME_PEER_GET.req1)により、時間情報構成属性(TICNF)の値を要請する。
【0124】
ステップS64において、ストレージ装置300は、第1の照会要請サービスプリミティブ(DME_PEER_GET.req1)に基づいて、ホスト装置200に時間情報イネーブル属性(TIEN)の第1の値(ENABLE)を含む第1の照会応答サービスプリミティブ(DME_PEER_GET.cnf1)を転送する。
また、ストレージ装置300は、第1の照会応答サービスプリミティブ(DME_PEER_GET.cnf1)により、時間情報構成属性(TICNF)の値、すなわち、時間情報(TI)の時間分解能(RSL)と更新周期(UPR)を転送する。
【0125】
ステップS65において、ホスト装置200は、第1の照会応答サービスプリミティブ(DME_PEER_GET.cnf1)に含まれる時間情報イネーブル属性(TIEN)が第1の値(ENABLE)を有する場合、ストレージ装置300に、ホスト装置200の時間情報(TI)を含む設定要請サービスプリミティブ(DME_PEER_SET.req)を転送する。
ストレージ装置300は、設定要請サービスプリミティブ(DME_PEER_SET.req)に含まれるホスト装置200の時間情報(TI)に、時間情報属性(TIVL)の値を更新する。
【0126】
ステップS63、ステップS64、及びステップS65は、時間同期化区間(TSI)の間、更新周期(UPR)によって、周期的に繰り返される。
ステップS66において、ストレージ装置300は、ホスト装置200の時間情報が必要な時間同期化区間(TSI)の終了(exit)を決定する。
ステップS67において、ストレージ装置300は、時間情報イネーブル属性(TIEN)を第2の値(DISABLE)に設定する。
【0127】
ステップS68において、ホスト装置200は、ストレージ装置300に、時間情報イネーブル属性(TIEN)の値を要請する第2の照会要請サービスプリミティブ(DME_PEER_GET.req2)を転送する。
また、ホスト装置200は、第2の照会要請サービスプリミティブ(DME_PEER_GET.req2)を介して、時間情報構成属性(TICNF)の値を要請する。
【0128】
ステップS69において、ストレージ装置300は、第2の照会要請サービスプリミティブ(DME_PEER_GET.req2)に基づいて、ホスト装置200に、時間情報イネーブル属性(TIEN)の第2の値(DISABLE)を含む第2の照会応答サービスプリミティブ(DME_PEER_GET.cnf2)を転送する。
ホスト装置200は、第2の照会応答サービスプリミティブ(DME_PEER_GET.cnf2)に含まれる時間情報イネーブル属性(TIEN)が第2の値(DISABLE)を有する場合、ホスト装置200の時間情報(TI)の転送を中止する。
【0129】
このように、ストレージ装置300は、時間情報イネーブル属性(TIEN)を時間同期化区間(TSI)の間、第1の値(ENABLE)に設定し、時間同期化区間(TSI)以外の区間の間、第2の値(DISABLE)に設定する。
【0130】
図22は、本発明の実施形態による時間同期化方法を示す図である。
図22に示すように、同期化イネーブル可否、時間分解能と更新周期を含む同期化条件の設定、及び時間情報(TI)の転送は、UPIU及びユニプロ属性の様々な組み合わせを用いて行われ得る。
【0131】
一実施形態において、
図15~
図19で説明したように、同期化条件の設定及び時間情報(TI)の転送は、いずれも、UPIUを用いて行われる。
他の実施形態において、同期化条件の設定は、UPIUを用いて行われ、時間情報(TI)の転送は、ユニプロ属性を用いて行われる。
また、他の実施形態において、
図21及び
図22で説明したように、同期化条件の設定及び時間情報(TI)の転送はいずれも、ユニプロ属性を用いて行われる。
【0132】
図23は、本発明の実施形態による時間同期化方法を用いた時間情報使用の一例を説明するための図である。
図23は、ホスト装置200により管理されるホストシステムログ(Log)、及びストレージ装置300により管理されるリングバッファ又は装置入出力(I/O)ログの一例を示している。
【0133】
ホスト装置200は、ホスト装置200の時間情報(TI)に基づいて、ホスト装置200の動作又はイベント(evt1~evt9)の時間を管理する。
ストレージ装置300は、前述した時間同期化方法により、ホスト装置200の時間情報(TI)に同期化されたストレージの時間情報に基づいて、ホスト装置200から転送されるコマンド(CMD)の時間及びステータス(Status)、すなわち、成功(Success)又は失敗(Fail)を管理する。
ホスト装置200は、ストレージ装置300の装置入出力(I/O)ログを照会して、エラー発生時点に対する正確な時間情報を得る。
【0134】
一方、ストレージ装置300は、ホスト装置200の時間情報(TI)に同期化された時間を用いて、様々な機能を効率よく行う。
一実施形態において、致命的なエラーの発生時、ストレージ装置300の情報を自動に格納し抽出するオンボードデバッグ(On board debugging)機能を具現することに当たり、情報の格納時間又はダンプ時間を、ホスト装置200の時間情報に同期化して格納する。
【0135】
一実施形態において、同期化された時間情報は、温度モニタリングによるリテンション監視(Retention Monitor)強化、EPI(Erase to Program Interval)に対する対処方案、PTS(Program Time Stamp)などのように不揮発性メモリ装置の寿命及び信頼性に関する動作に効率よく用いられる。
【0136】
一実施形態において、同期化された時間情報は、データの有効期間設定、バックグラウンド動作時間設定、HID(Host Initiated Defrag)、パージ(purge)などの性能に関する動作に効率よく用いられる。
また、同期化された時間情報は、Scheduling、「Throttling Turbo Write」、「Host-aware Performance Booster」などのパターン分析のためのマシンランニングの入力として効率よく用いられる。
【0137】
図24は、本発明の実施形態によるストレージ装置に含まれる不揮発性メモリ装置のメモリブロックの等価回路を示す回路図である。
図24に示すように、メモリブロック(BLKi)は、基板上に三次元構造で形成される三次元メモリブロックを示す。
例えば、メモリブロック(BLKi)に含まれる複数のメモリNANDストリングは、基板と垂直な方向(D3)に形成される。
【0138】
メモリブロック(BLKi)は、ビット線(BL1、BL2、BL3)と共通ソース線(CSL)の間に接続され、第1の水平方向(D1)及び第2の水平方向(D2)に繰返し配列される複数のセルストリング、すなわち、複数のメモリNANDストリング(NS11~NS33)を含む。
複数のメモリNANDストリング(NS11~NS33)のそれぞれは、ストリング選択トランジスタ(SST)、複数のメモリセル(MC1、MC2、…、MC8)、及び接地選択トランジスタ(GST)を含む。
図24には、複数のメモリNANDストリング(NS11~NS33)のそれぞれが8個のメモリセル(MC2、MC2、…、MC8)を含むこととして示しているが、本発明の実施形態は、これに限定されない。
【0139】
ストリング選択トランジスタ(SST)は、対応するストリング選択線(SSL1、SSL2、SSL3)に接続される。
複数のメモリセル(MC1、MC2、…、MC8)は、対応するゲート線(GTL1、GTL2、…、GTL8)にそれぞれ接続される。
ゲート線(GTL1、GTL2、…、GTL8)は、ワード線に該当し、ゲート線(GTL1、GTL2、…、GTL8)の一部は、ダミーワード線に該当する。
接地選択トランジスタ(GST)は、対応する接地選択線(GSL1、GSL2、GSL3)に接続される。
ストリング選択トランジスタ(SST)は、対応するビット線(BL1、BL2、BL3)に接続され、接地選択トランジスタ(GST)は、共通ソース線(CSL)に接続される。
【0140】
同じ高さのワード線(例えば、GTL1)は、共通に接続され、接地選択線(GSL1、GSL2、GSL3)及びストリング選択線(SSL1、SSL2、SSL3)はそれぞれ、分離可能である。
図24には、メモリブロック(BLK)が8つのゲート線(GTL1、GTL2、...、GTL8)、及び3つのビット線(BL1、BL2、BL3)に接続されることとして示しているが、本発明の実施形態は、これに限定されない。
【0141】
図25は、本発明の実施形態による電子装置の概略構成を示すブロック図である。
図25に示すように、電子装置4000は、アプリケーションプロセッサ4100と、通信モジュール4200と、ディスプレイ/タッチモジュール4300と、ストレージ装置4400と、バッファラム4500とを含む。
【0142】
アプリケーションプロセッサ4100は、電子装置4000の全般的な動作を制御する。
アプリケーションプロセッサ4100は、インターネットブラウザー、ゲーム、動画などを提供するアプリケーションを実行する。
通信モジュール4200は、外部との有線通信及び/又は無線通信を制御するように具現される。
ディスプレイ/タッチモジュール4300は、アプリケーションプロセッサ4100で処理されたデータをディスプレイするか、タッチパネルからデータが入力されるように具現される。
ストレージ装置4400は、使用者のデータを格納するように具現される。
ストレージ装置4400は、eMMC、SSD、UFS装置であり得る。
【0143】
バッファラム4500は、電子装置4000の処理動作時、必要なデータを仮に(一時的に)格納するように具現される。
例えば、バッファラム4500は、DDR SDRAM、LPDDR SDRAM、GDDR SDRAM、RDRAMなどのような動的ランダムアクセスメモリである。
【0144】
アプリケーションプロセッサ4100は、電子装置4000の時間情報を生成する時間情報生成器(TIGEN)を含み、ストレージ装置4400は、本発明の実施形態により前述したホスト装置200に該当するアプリケーションプロセッサ4100から提供される時間情報に基づいて、ストレージ装置4400の時間情報を受信した時間情報に同期化する時間情報マネージャー(TIMNG)を含む。
【0145】
以上説明したように、本発明の実施形態による時間同期化方法、及び当該時間同期化方法を行うシステムは、ストレージ装置により決められる時間同期化区間の間にのみ、時間情報を、ホスト装置からストレージ装置に提供することで、時間情報転送のオーバーヘッドを減少させて、ストレージ装置及びこれを含むシステムの性能を向上させることができる。
また、本発明の実施形態による時間同期化方法、及び当該時間同期化方法を行うシステムは、時間情報の転送のための別の信号を用いることなく、既存の信号を拡張して時間情報を転送することで、時間情報転送のオーバーヘッドを更に減少させることができる。
【0146】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【産業上の利用可能性】
【0147】
本発明の実施形態に係るストレージ装置及びこれを含むシステムは、例えば、メモリカード、SSD、eMMC、UFS、コンピュータ、ノート型パソコン(laptop)、携帯電話、スマートフォン、MP3プレイヤー、PDA(Personal Digital Assistants:PDA)、PMP(Portable Multimedia Player)、デジタルTV、デジタルカメラ、ポータブルゲームコンソール、ナビゲーション機器、ウェアラブル機器、IoT(internet of things)機器、IoE(internet of everything:)機器、e-ブック(e-book)、VR(virtual reality)機器、AR(augmented reality)機器、サーバーシステム、自律走行装置などのような電子機器に好適に利用可能である。
【符号の説明】
【0148】
100 ストレージシステム
200 ホスト装置
210 ホストプロセッサ
212、252 時間情報生成器
220 ホストメモリ
251 装置ドライバ
253 コマンド生成器
254 応答解析機
256、356 データ転送マネージャー
257、357 リンク階層
258、358 PHY(physical layer)
300、4400 ストレージ装置
310 ストレージコントローラ
312 時間情報マネージャー
320a、320b、320c 不揮発性メモリ
330 バッファメモリ
351 装置コントローラ
352、430 時間情報マネージャー
353 応答生成器
354 コマンド解析機
400 ストレージコントローラ
410 プロセッサ
420 メモリ
432 タイマー
440 ホストインターフェース
450 ECCエンジン
460 メモリインターフェース
470 AESエンジン
500 不揮発性メモリ
510 メモリセルアレイ
520 アドレスデコーダ
530 ページバッファ回路
540 データ入出力回路
550 電圧生成器
560 制御回路
600 メモリシステム
610 メモリ装置
620 メモリコントローラ
4000 電子装置
4100 アプリケーションプロセッサ
4200 通信モジュール
4300 ディスプレイ/タッチモジュール
4500 バッファラム