(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-14
(54)【発明の名称】誤り検出および誤り訂正のための方法ならびに誤り検出および誤り訂正のための対応するシステムおよび装置
(51)【国際特許分類】
G06F 13/16 20060101AFI20221006BHJP
G06F 12/02 20060101ALI20221006BHJP
G06F 12/00 20060101ALI20221006BHJP
G11C 7/10 20060101ALI20221006BHJP
G06F 11/10 20060101ALI20221006BHJP
【FI】
G06F13/16 520B
G06F12/02 580J
G06F12/00 597D
G11C7/10 460
G06F11/10 604
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022507414
(86)(22)【出願日】2020-07-22
(85)【翻訳文提出日】2022-03-04
(86)【国際出願番号】 US2020043133
(87)【国際公開番号】W WO2021025864
(87)【国際公開日】2021-02-11
(32)【優先日】2019-08-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364997
【氏名又は名称】サイプレス セミコンダクター コーポレーション
【氏名又は名称原語表記】Cypress Semiconductor Corporation
【住所又は居所原語表記】198 Champion Court, San Jose, CA 95134, United States of America
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】モーガン ウェイトリー
(72)【発明者】
【氏名】クリフォード ズィットロー
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CC01
(57)【要約】
方法は、メモリコントローラでの読み出しリクエストの受け取りに応答して、読み出しコマンドおよびアドレス値を、クロックと同期してコマンドアドレスバス上で送ることを含んでいてよく、読み出しコマンドに応答して、少なくとも1つのパラレルデータバス上で、読み出しデータ値の中断のないバーストを受け取ることを含んでいてよく、読み出しデータ値のバーストは、クロックに関してダブルデータレートを有しており、同じ読み出しコマンドに応答して、読み出しデータ値に対する誤り訂正符号(ECC)を受け取ることを含んでいてよく、読み出しデータ値のバーストに含まれていないECC値は、非ECC入出力(I/O)上に出力される。非ECC I/Oは、既存の標準化機構に従ってECCデータに割り当てられていないI/Oである。対応するシステムおよび装置が開示されている。
【特許請求の範囲】
【請求項1】
方法であって、
メモリコントローラでの読み出しリクエストの受け取りに応答して、
読み出しコマンドおよびアドレス値を、クロックと同期してコマンドアドレスバス上で送り、
前記読み出しコマンドに応答して、
少なくとも1つのパラレルデータバス上で、読み出しデータ値の中断のないバーストを受け取り、読み出しデータ値の前記バーストは、前記クロックに関してダブルデータレートを有しており、
同じ前記読み出しコマンドに応答して、前記読み出しデータ値に対する誤り訂正符号(ECC)値を受け取り、前記ECC値は、非ECC入出力(I/O)上に出力され、
前記非ECC I/Oは、既存の標準化機構に従ってECCデータに割り当てられていないI/Oである、
方法。
【請求項2】
前記ECC値を、読み出しデータ値の前記バーストの後に、前記ダブルデータレートで、前記少なくとも1つのパラレルデータバス上で受け取る、
請求項1記載の方法。
【請求項3】
前記方法は、
第1のパラレルデータバス上で読み出しデータ値の第1のバーストを受け取ることと、
読み出しデータ値の前記第1のバーストと同期して、第2のパラレルデータバス上で読み出しデータ値の第2のバーストを受け取ることと、
読み出しデータ値の前記第1のバーストの後、前記第1のパラレルデータバス上で第1のECC値を受け取ることと、
読み出しデータ値の前記第2のバーストの後に、前記第2のパラレルデータバス上で第2のECC値を受け取ることと、
をさらに含んでおり、
前記第1のECC値および前記第2のECC値は、読み出しデータ値の前記第1のバーストおよび前記第2のバーストに対するECC値である、
請求項2記載の方法。
【請求項4】
前記ECC値を、前記読み出しデータ値の少なくとも一部と並行して、データコントロールI/O上で受け取る、
請求項1記載の方法。
【請求項5】
データコントロールI/Oを、データマスクI/OとデータバスインバージョンI/Oとのグループから選択する、
請求項4記載の方法。
【請求項6】
前記方法は、
前記読み出しリクエストがホスト装置によって伝送されることと、
前記読み出しデータ値および対応するECC値を前記ホスト装置に伝送することと、
前記ホスト装置の動作によって、前記対応するECC値による、前記読み出しデータ値に対する誤り検出動作および誤り訂正動作を実行することと、
をさらに含んでいる、
請求項1記載の方法。
【請求項7】
書き込みデータに対する前記ECC値を送ることは、前記ECC値を、書き込みデータ値のバーストの後に、前記少なくとも1つのパラレルデータバス上で、前記ダブルデータレートで送ることを含んでいる、
請求項6記載の方法。
【請求項8】
書き込みデータに対する前記ECC値を、書き込みデータ値の少なくとも一部と並行して、データマスクI/OまたはデータバスインバージョンI/O上で送る、
請求項6記載の方法。
【請求項9】
システムであって、前記システムは、
データをメモリ装置に格納するように構成されているホスト装置と、
前記ホスト装置からの読み出しリクエストに応答して読み出し動作を実行するように構成されているメモリコントローラと、
を含んでおり、各読み出し動作は、
読み出しコマンドおよび書き込みアドレスを前記メモリ装置に、コマンド-アドレスバス上で送ることと、
前記読み出しコマンドに対応する読み出しデータを前記メモリ装置に、読み出しデータ値の中断のないバーストにおいて、パラレルデータバス上で、データクロック信号の立ち上がりエッジおよび立ち下がりエッジと同期して送ることと、
前記書き込みコマンドの一部として、読み出しデータ値の前記バーストとは別に、前記読み出しデータに対する読み出し誤り訂正符号(ECC)値を送ることと、
を含んでいるシステム。
【請求項10】
前記読み出しECC値は、前記パラレルデータバス上の読み出しデータ値の前記バーストの最後に追加される、
請求項9記載のシステム。
【請求項11】
前記読み出しECC値は、前記データクロック信号と同期して複数のデータコントロール入出力(I/O)上に出力される、
請求項9記載のシステム。
【請求項12】
前記データコントロールI/Oは、データバスインバージョンI/OとデータマスクI/Oとのグループから選択される、
請求項11記載のシステム。
【請求項13】
前記システムは、前記メモリ装置は、書き込みリクエストに応答して書き込み動作を実行するようにさらに構成されており、各書き込み動作は、
書き込みコマンドおよび書き込みアドレスを前記メモリ装置に送ることと、
前記メモリ装置で前記書き込みコマンドに対応する書き込みデータを受け取ることと、
前記メモリ装置で前記書き込みデータに対する書き込みECC値を受け取ることと、
を含んでいる、
請求項9記載のシステム。
【請求項14】
前記メモリ装置は、前記書き込みデータおよび前記ECC値を、シリアルポートを介して受け取り、前記読み出しデータおよび前記ECC値を、パラレルポートを介して出力するように構成されている、
請求項13記載のシステム。
【請求項15】
前記メモリコントローラは、前記ホスト装置または前記メモリ装置から受け取ったデータおよび対応するECC値に対して、誤り検出動作および誤り訂正動作を実行するように構成されている、
請求項9記載のシステム。
【請求項16】
メモリコントローラ(MC)を含む装置であって、
前記メモリコントローラ(MC)は、ロジックセクションを有しており、前記ロジックセクションは、
データ値と前記データ値に対応する誤り訂正符号(ECC)値とを格納するように構成されているデータキューと、
前記対応するECC値を伴う前記データ値をダブルデータレート(DDR)物理層インタフェース(PHY)セクションに転送するように構成されているデータコントロールセクションと、
を含んでおり、
前記DDR PHYセクションは、
データクロックの立ち上がりエッジおよび立ち下がりエッジと同期して、パラレルデータバス上で、データ値の中断のないバーストにおいて前記データ値を転送し、
前記データ値と共に前記対応するECC値を転送する、
ように構成されており、
前記データ値と前記対応するECC値とは、少なくとも同じ読み出しコマンドまたは書き込みコマンドに応答して伝送される、
装置。
【請求項17】
前記DDR PHYセクションは、前記データクロックの前記立ち上がりエッジおよび前記立ち下がりエッジと同期して、前記パラレルデータバス上の前記データ値の後に、前記対応するECC値を転送するように構成されている、
請求項16記載の装置。
【請求項18】
前記DDR PHYセクションは、前記対応するECC値を、データバスインバージョン入出力またはデータマスク入出力上で、前記データ値と並行して転送するように構成されている、
請求項16記載の装置。
【請求項19】
前記DDR PHYは、LPDDR4規格と互換性がある、
請求項16記載の装置。
【請求項20】
前記ロジックセクションは、ECC回路を含んでおり、前記ECC回路は、前記データ値における誤りを、前記対応するECC値によって訂正するように構成されているECC復号回路と、前記データ値から前記ECC値を生成するECC生成回路と、のグループに対して選択されている、
請求項16記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2020年3月23日に出願された、第16/826,998号の米国仮特許出願の国際出願であり、これは、2019年8月5日に出願された、第62/882,926号の米国仮特許出願の利益を主張し、その内容は参照により本明細書に組み込まれる。
【0002】
技術分野
本開示は、一般に、メモリ装置内にデータを格納するシステム、より詳細には、メモリ装置内に、対応する誤り訂正符号を伴うデータを格納するメモリコントローラを有しているシステムに関する。
【背景技術】
【0003】
誤り検出および誤り訂正は、異なる位置間でデータが伝送および/または格納される際に、データインテグリティの保証を支援することができる。従来のアプローチは、コンポーネントレベルでの誤り訂正および誤り検出の実行に向けられている。他の装置と通信すするホスト装置は、自身の通信に伴って誤り検出符号(たとえばCRC)を含んでいてよく、これによって、誤りを検出し、次いでメッセージの再伝送を要求する。
【0004】
多くの記憶装置は、データの誤りの検出および訂正のために誤り訂正符号(ECC)を使用することができる。たとえば、ECC DRAMメモリは、データラインに加えて、ECCデータのためにバスラインを専用に提供することができる。ECCデータを格納するために、1つまたは複数の集積回路が追加されてよい。さらに、誤り検出を実行し、誤りが検出された場合に、誤り訂正を実行するためにECCデータを用いる誤り訂正回路が含まれていてよい。NANDフラッシュメモリのような大容量記憶装置は、データインテグリティの問題に悩まされることがよくあり、したがってデータ値と共にECC符号を転送することができる。ECCメモリの欠点は、増大したコンポーネントのコストが追加されること、およびECC動作がデータスループット全体を増やすことがあるので、性能が低下することである。
【図面の簡単な説明】
【0005】
【
図1A】一実施形態による、エンドツーエンドの誤り検出および誤り訂正を備えるシステムのブロック図である。
【
図1B】一実施形態による、エンドツーエンドの誤り検出および誤り訂正を備えるシステムのブロック図である。
【
図2A】別の実施形態による、エンドツーエンドの誤り検出および誤り訂正を備えるシステムのブロック図である。
【
図2B】別の実施形態による、エンドツーエンドの誤り検出および誤り訂正を備えるシステムのブロック図である。
【
図3A】さらなる実施形態による、エンドツーエンドの誤り検出および誤り訂正を備えるシステムのブロック図である。
【
図3B】さらなる実施形態による、エンドツーエンドの誤り検出および誤り訂正を備えるシステムのブロック図である。
【
図4】ダブルデータレート(DDR)インタフェースを備えたメモリ装置の従来の読み出し動作を示すタイミング図である。
【
図5A】一実施形態による、誤り訂正符号(ECC)値を読み出しデータバーストに追加する読み出し動作を示すタイミング図である。
【
図5B】一実施形態による、書き込みデータバーストにECC値を追加する書き込み動作を示すタイミング図である。
【
図6A】一実施形態による、パラレル読み出しデータバーストにECC値を追加する読み出し動作を示すタイミング図である。
【
図6B】一実施形態による、パラレル書き込みデータバーストにECC値を追加する書き込み動作を示すタイミング図である。
【
図7A】一実施形態による、タスクが再割り当てされた既存の入出力(I/O)上で、読み出しデータバーストと並行してECC値を転送する読み出し動作を示すタイミング図である。
【
図7B】一実施形態による、タスクが再割り当てされた既存のI/O上で、書き込みデータバーストと並行してECC値を転送する書き込み動作を示すタイミング図である。
【
図8】実施形態による種々の読み出し動作を従来の読み出し動作と比較する表である。
【
図9A】一実施形態による、読み出しデータバーストおよび/または書き込みデータバーストにECC値を追加するメモリコントローラのブロック概略図である。
【
図9B】一実施形態による、タスクが再割り当てされた既存のI/O上で、読み出しデータバーストおよび/または書き込みデータバーストと並行してECC値を転送するメモリコントローラのブロック概略図である。
【
図9C】一実施形態による、誤り検出および誤り訂正回路を含んでいるメモリコントローラのブロック概略図である。
【
図10】一実施形態によるメモリ装置のブロック図である。
【
図11A】一実施形態による、DDRインタフェースを備えた不揮発性メモリ装置のブロック図である。
【
図11B】一実施形態によるデータ、ECC書き込み動作および読み出し動作を示す図である。
【
図11C】一実施形態によるデータ、ECC書き込み動作および読み出し動作を示す図である。
【
図12】一実施形態による方法のフローチャートである。
【
図13A】実施形態による、ECC値をデータバーストに追加するための読み出し方法のフローチャートである。
【
図13B】実施形態による、ECC値をデータバーストに追加するための書き込み方法のフローチャートである。
【
図14A】実施形態による、タスクが再割り当てされたI/Oにおけるデータバーストを伴ったECC値の伝送のための読み出し方法のフローチャートである。
【
図14B】実施形態による、タスクが再割り当てされたI/Oにおけるデータバーストを伴ったECC値を伝送のための書き込み方法のフローチャートである。
【発明を実施するための形態】
【0006】
実施形態によれば、誤り検出および誤り訂正は、介在型メモリコントローラ(MC)を介した誤り訂正符号(ECC)値の伝送を含むことによって、ホスト装置からメモリ装置へ「エンドツーエンド」方式で提供可能である。このような構成は、さまざまなコンポーネントレベルでマルチプルECCスキームの必要性を削除することができ、かつ/またはECC動作をさまざまな段階のいずれかで行うことができる非常にロバストなデータ経路を提供することができる。
【0007】
いくつかの実施形態では、ホスト装置は、データ値およびECC値を出力することができ(書き込み動作を要求することができ)、このような値はMCによってメモリ装置に書き込まれてよい。次いで、ホスト装置がデータ値およびECC値を検索することができ(読み出し動作を要求することができ)、メモリコントローラがデータ値およびECC値をメモリ装置から読み出すことができる。その後、ホスト装置は誤り検出を実行することができ、必要に応じて、検索されたデータに対する訂正動作(本明細書ではECC動作と称する)を実行することができる。任意選択で、MCは、ホスト装置から受け取った、かつ/またはメモリ装置から受け取ったデータECC値に対してECC動作を実行することができる。
【0008】
いくつかの実施形態では、ECC値が、対応するデータ値のバーストに追加されてよい。
【0009】
いくつかの実施形態では、ECC値は、対応するデータ値のバーストに並行して、タスクが再割り当てされた入出力(I/O)(たとえばデータバスインバージョン(DBI)I/Oまたはデータマスク(DM)I/O)に伝送されてよい。
【0010】
次のさまざまな実施形態において、同様の部材は同じ参照符号によって参照されるが、先頭の桁は図番号に対応している。
【0011】
図1Aおよび
図1Bは、一実施形態によるシステム100のブロック図である。
図1Aおよび
図1Bは、ホスト装置102、MC104およびメモリ装置106を示している。ホスト装置102は、システムバス108によってMC104に接続されていてよい。MC104は、メモリバス110によってメモリ装置106に接続されていてよい。メモリバス110は、ダブルデータレート(DDR)でマルチビットデータ値を転送するパラレルデータバスを含んでいてよい。DDRは、クロック信号の立ち上がりエッジおよび立ち下がりエッジと同期してデータバスにデータ値を伝送することができる。コマンドおよびアドレス値は、(たとえばクロック信号の立ち上がりエッジと同期して)シングルデータレートで伝送されてよい。
【0012】
図1Aは、一実施形態による、データ格納動作を示している。ホスト装置102は、格納のためにデータ値118を有することができる。ホスト装置102は、データ値118に対応するECC値120を生成することができるECC符号化機能114を含んでいてよい。ECC符号化機能114は、任意の適切なECC符号化機能を含んでいてよく、いくつかの実施形態では、所定のデータビット量に対してブロックECC符号を生成することができる。1つの実施形態では、ECC符号化機能114は、64ビットのデータごとに8ビットのECC符号を生成することができる。
【0013】
ホスト装置102は、リクエスト(図示せず)、アドレス(図示せず)を、データ値および対応するECC符号(118/120)と共にMC104に送ることによって、データ値118を格納するように要求することができる。MC104内で、ロジックセクション104-0は、データ/ECC(118/120)を同じ書き込み動作で一緒に伝送するように順序付けることができる。さらに、ロジックセクション104-0は、書き込みコマンドおよび書き込みアドレスに対する適切な信号値を生成することができる。MC104の物理層インタフェース(PHY)104-1は、メモリ装置106にデータ値およびECC値を書き込む単一の書き込み動作で、コマンド(たとえば書き込み)、アドレス(たとえば書き込みアドレス)、データ値(たとえば書き込みデータ)およびECC値を伝送することができる。
【0014】
実施形態によれば、双方向マルチビットデータバスを介して、データ値118を、データ値の中断のない連続したバーストにおいて、MC104によって、メモリ装置106に転送することができる。データ値は、データ値が連続する半クロックサイクルで送られ、ECC値120を一切含んでいない点で、中断していないとみなされてよい。ECC値120は、データ値118と共に伝送される。ECC値120は、データバーストと干渉しない任意の適切な方式で伝送され得る。いくつかの実施形態では、データの拡張されたバーストの後にECC値が続く場合、ECC値120をデータ値バーストの最後に追加することができる。他の実施形態では、ECC値120は、タスクが再割り当てされたI/Oに、データ値と並行して伝送されてよい。ECCデータ用のものではない所定の規格に従って、タスクが再割り当てされたI/Oは、MC104上に存在しているI/Oであってよい。このような所定の規格は、DDR規格、DD2規格、DD3規格、DD4規格、LPDDR4規格および将来のDDR規格を含んでいてよいが、これらに限定されない。
【0015】
図1Bは、一実施形態によるデータ検索動作を示している。ホスト装置102は、リクエスト(図示せず)およびアドレス(図示せず)をMC104に送ることによって、メモリ装置106によって格納されているデータ値118を要求することができる。MC104内で、ロジックセクション104-0は、読み出しコマンドおよび読み出しアドレスに対する適切な信号値を生成することができる。MC104の物理層インタフェース(PHY)104-1は、コマンド(たとえば読み出し)およびアドレス(たとえば読み出しアドレス)値を伝送することができる。
【0016】
読み出しコマンドに応答して、データ値および対応するECC符号(118/120)が、メモリ装置からMC104に転送されてよい。実施形態によれば、メモリ装置106からのデータ値118は、双方向マルチビットデータバスを介して、データ値の中断のない連続したバーストにおいて、MC104に転送されてよい。ECC値120は、データ値118と共に伝送されてよい。ECC値120は、本明細書に記載されたようにまたはそれと同等のように、データバーストと干渉しない任意の適切な方法で伝送されてよい。
【0017】
MC104内で、PHY104-1は、メモリ装置106からのデータ/ECC値(118/120)を捕捉し、それらをロジックセクション104-0に提供することができる。ロジックセクション104-0は、データ/ECC値(118/120)を、システムバス108を介してホスト装置102に転送することができる。
【0018】
ホスト装置102内で、ECC復号/訂正機能116は、対応するECC符号120によって、データ値118に対して、ECC動作を実行することができる。
【0019】
図2Aおよび
図2Bは、別の実施形態によるシステム200のブロック図である。
図2Aおよび
図2Bは、
図1Aおよび
図1Bの部材と同様の部材を有しているシステムを示しており、このような同様の部材は
図1Aおよび
図1Bについて示したような構造を有していてよく、
図1Aおよび
図1Bについて示したのと同じ変更がなされてよい。
【0020】
図2Aを参照すると、システム200は、メモリコントローラ204のロジックセクション204-0がECC回路216Mを含み得るという点で、
図1A/
図1Bのシステムと異なり得る。ECC回路216Mはホスト装置202からデータ値およびECC値218/220を受け取り、これらの値でECC動作を実行することができる。その結果、(たとえばシステムバス208を介した)ホスト装置202からのデータの転送から結果的に生じるデータにおけるあらゆる誤りを、そのようなデータがMC204によってメモリ装置206に書き込まれる前に、訂正することができる。
【0021】
図2Bを参照すると、付加的または択一的に、システム200は、メモリコントローラ204のロジックセクション204-0がECC回路216M’を含み得るという点で、
図1A/
図1Bのシステムと異なり得る。ECC回路216M’はメモリ装置206から、PHY204―1を介してデータ値およびECC値218/220を受け取り、これらの値でECC動作を実行することができる。その結果、(たとえばメモリバス210を介した)メモリ装置206からのデータの転送から結果的に生じるデータにおけるあらゆる誤りを、そのようなデータがホスト装置202に送られる前に、訂正することができる。
【0022】
図3Aおよび
図3Bは、別の実施形態によるシステム300のブロック図である。
図3Aおよび
図3Bは、
図1Aおよび
図1Bの部材と同様の部材を有しているシステムを示しており、このような同様の部材は
図1Aおよび
図1Bについて示したような構造を有していてよく、
図1Aおよび
図1Bについて示したのと同じ変更がなされてよい。
【0023】
図3Aを参照すると、システム300は、MC304のロジックセクション304-0がECC回路314Mを含み得るという点で、
図1A/
図1Bのシステムと異なり得る。ECC回路314Mはホスト装置302からデータ値318を受け取り、このようなデータ値318からECC値320を生成することができる。データ値318および対応するECC値320は、その後、任意に、本明細書に記載されたまたはそれと同等の任意の様式に従ってメモリ装置306に書き込まれてよい。このような構成では、ホスト装置302は、ECC値を生成しなくてもよい。
【0024】
図3Bを参照すると、システム300は、MC304のロジックセクション304-0がECC回路316M’を含み得るという点で、
図1A/
図1Bのシステムと異なり得る。ECC回路316M’は、メモリ装置306から、PHY304-1を介してデータ値およびECC値318/320を受け取り、これらの値でECC動作を実行することができる。結果として得られたデータ値318は、ホスト装置302に送られてよい。ECC値320は、ホスト装置302に送られない可能性がある。
【0025】
図4は、実施形態による、動作をより良く理解および認識するために提示された、従来の読み出し動作のタイミング図である。
図4は、次の波形を含んでいる:CSはチップセレクト信号であり、CAはコマンドおよびアドレス値であり、CK_tはコマンドクロック値であり、DQSはデータストローブ(すなわちデータクロック)信号であり、DQは16ビットの双方向データバスであってよい。
図4はMCとメモリ装置との間のメモリバスを介して発出された信号を示している。
【0026】
時点t0において、コマンド-アドレスバス上にコマンドおよびアドレス値CAを発出するMCによって、第1の読み出し動作422Aが開始されてよい。コマンド-アドレスバスは、マルチビットバスであってよい。コマンドおよびアドレス値は、クロックCK_t(すなわち、CK_tの立ち上がりエッジ)と同期して出されてよい。
【0027】
時点t1において、第2の読み出し動作422Bが、第1の読み出し動作422Aと同じ様式で開始されてよい。第1の読み出し動作422Aと第2の読み出し動作422Bとの間の時間は、所定のバースト長(この例では16のバースト長である)に対する連続的な読み出し動作の最小期間であってよい。
【0028】
時点t2において、第3の読み出し動作422Cが、第1の読み出し動作422Aと同じ様式で開始されてよい。
【0029】
時点t3において、読み出しレイテンシ期間に続いて、第1の読み出し動作422Aに対応する読み出しデータ424AがデータバスDQ上で駆動されてよい。読み出しデータ424Aは、16個の値D0~D15の中断されないバーストにおいて出力され得る。
【0030】
時点t4において、第1のバースト読み出しデータ424Aとほぼ同時に終了する読み出しレイテンシ期間に続いて、第2の読み出し動作422Bに対応する読み出しデータ424Bが、データバスDQ上で駆動されてよい。
【0031】
図5Aは、一実施形態による読み出し動作のタイミング図である。記載される読み出し動作では、読み出しデータに対応するECCデータを、読み出しデータバーストの最後に追加することができる。
図5Aは、
図4と同じ波形を含んでいる。
【0032】
時点t0において、コマンド-アドレスバス上にコマンドおよびアドレス値CAを発出するMCによって、第1の読み出し動作522Aが開始されてよい。
【0033】
時点t1において、第2の読み出し動作522Bが、第1の読み出し動作522Aと同じ様式で開始されてよい。第1の読み出し動作522Aと第2の読み出し動作522Bとの間の時間は、データの所定のバースト長、対応するECC値、および場合によってはより多くの値(この例では20である)に対する連続的な読み出し動作に対する最小期間であってよい。
【0034】
時点t3において、第3の読み出し動作522Cが、第1の読み出し動作522Aと同じ様式で開始されてよい。
【0035】
時点t2において、読み出しレイテンシ期間に続いて、第1の読み出し動作522Aに対応する読み出しデータ524AがデータバスDQ上で駆動されてよい。読み出しデータ524Aは、16個の値D0~D15の中断されないバーストにおいて受け取られてよい。しかし、従来の動作とは異なり、読み出しデータ524Aのバーストの後に、時点t4でECCデータ526が続いてよい。図示の実施形態では、ECCデータ526は2個のバーストであり得る。これは、64データビットあたり8ECCビットを提供することができる。しかし、
図5Aに示されているように、データ値およびECC値のバーストに続いて、時点t5で始まって、付加的なデータスロット528が設けられてよい。付加的なECCまたは他の値を提供するために、このような付加的なデータスロットを使用することができる。
【0036】
時点t6において、第2の読み出し動作522Bに対応する読み出しデータ524BがデータバスDQ上で駆動されてよい。このような読み出しデータ524Bは、読み出しデータの中断のないバーストであってよく、この後に、このような読み出しデータに対するECC値が続く。
【0037】
図5Bは、一実施形態による書き込み動作のタイミング図である。記載される書き込み動作では、書き込みデータに対応するECCデータを、書き込みデータバーストの最後に追加することができる。
図5Bは、
図5Aと同じ波形を含んでいる。
【0038】
時点t0において、コマンド-アドレスバス上にコマンドおよびアドレス値CAを発出するMCによって、書き込み動作530が開始されてよい。
【0039】
時点t1において、書き込みレイテンシ期間に続いて、MCのPHYによって、書き込み動作530に対応する書き込みデータ532がデータバスDQ上で駆動されてよい。書き込みデータ532は、16個の値D0~D15の中断のないバーストにおいて受け取られてよい。書き込みデータ532のバーストの後に、時点t2でECCデータ534が続いてよい。図示の実施形態では、ECCデータ534は2個のバーストであり得る。しかし、
図5Bの場合のように、書き込みデータ値およびECC値のバーストに続いて、時点t3で始まって、付加的なデータスロット536が設けられてよい。付加的なECCまたは他の値を提供するために、このような付加的なデータスロットを使用することができる。
【0040】
図6Aは、別の実施形態による読み出し動作のタイミング図である。記載される読み出し動作では、読み出しデータのバーストが、2個の異なるデータレーンまたはバスの部分で受け取られてよく、これに、対応するECCデータが後続する。
図6Aは、
図4と同じ波形を含んでいるが、付加的なデータレーンまたはバス部分DQ[31:16]が加わっている。
【0041】
時点t0において、コマンド-アドレスバス上にコマンドおよびアドレス値CAを発出するMCによって、第1の読み出し動作622Aが開始されてよい。
【0042】
時点t1において、第2の読み出し動作622Bが、第1の読み出し動作622Aと同じ様式で開始されてよい。第1の読み出し動作622Aと第2の読み出し動作622Bとの間の時間は、データの所与のバースト長、対応するECC値、および場合によってはより多くの値(この例では10である)に対する連続的な読み出し動作に対する最小期間であってよい。
【0043】
時点t2において、第3の読み出し動作622Cが、第1の読み出し動作622Aと同じ様式で開始されてよい。
【0044】
時点t3において、読み出しレイテンシ期間に続いて、第1の読み出し動作622Aに対応する読み出しデータ624AがデータレーンDQ[0:15]およびDQ[31:16]上で駆動されてよい。読み出しデータ624Aは、DQ[0:15]上の偶数の値(D0,D2,D4,D6,D8,D10,D12,D14)およびDQ[31:16]上の奇数の値(D1,D3,D5,D7,D9,D11,D13,D15)を有する8個の値の中断されないバーストにおいて受け取られてよい。読み出しデータ624Aの各バーストの後に、時点t4でECCデータ626Aが続いてよい。図示の実施形態では、ECCデータ626Aは、64データビットあたり8個のECCビットに対して、各データレーン(DQ[0:15]およびDQ[31:16])上の単一の16ビット値であり得る。しかし、
図6Aに示されているように、データ値およびECC値のバーストに続いて、時点t5で始まって、付加的なデータスロット628Aが設けられてよい。付加的なECCまたは他の値を提供するために、このような付加的なデータスロットを使用することができる。
【0045】
時点t6において、第2の読み出し動作622Bに対応する読み出しデータ624BがデータレーンDQ[0:15]およびDQ[31:16]上で駆動されてよい。このような読み出しデータは、第1の読み出しデータ624Aと同じ構成を有していてよい。各データレーンは、8個のデータ値のバーストを有していてよく、その後にはECC値(時点t7において)と、付加的なECCまたは他のデータ(またはデータ無し)と、が時点t8で続く。
【0046】
図6Bは、一実施形態による書き込み動作のタイミング図である。記載される書き込み動作では、書き込みデータに対応するECCデータを、2個の異なるデータレーン上の書き込みデータバーストの最後に、またはデータバスの一部(DQ[0:15]およびDQ[31:16])に追加することができる。
図6Bは、
図6Aと同じ波形を含んでいる。
【0047】
時点t0において、コマンド-アドレスバス上にコマンドおよびアドレス値CAを発出するMCによって、書き込み動作630が開始されてよい。
【0048】
時点t1において、書き込みレイテンシ期間に続いて、書き込み動作622に対応する書き込みデータ632が、DQ[0:15]上の偶数の値およびDQ[31:16]上の奇数の値を伴う、中断のない8個のバーストにおいて、データレーンの両方で駆動されてよい。書き込みデータ632のバーストの後に、時点t2でECCデータ634が続いてよい。図示の実施形態では、ECCデータ634は、各データレーン(DQ[0:15]およびDQ[31:16])上の16ビットの値であり得る。しかし、
図6Bの場合のように、書き込みデータ値およびECC値のバーストに続いて、時点t3で始まって、付加的なデータスロット636が設けられてよい。付加的なECCまたは他の値を提供するために、このような付加的なデータスロットを使用することができる。
【0049】
図7Aは、別の実施形態による読み出し動作のタイミング図である。記載される読み出し動作では、読み出しデータのバーストが、2個の異なるデータレーンまたはバスの部分で受け取られてよい。このようなデータと並行して、対応するECCデータが、タスクが再割り当てされたI/O上で受け取られてよい。
図7Aは、
図6Aと同じ波形を含んでおり、さらに、タスクが再割り当てされたI/OであるDBI[3:0]を示している。タスクが再割り当てされたI/OはデータバスインバージョンI/Oであり得るが、他の実施形態では、このようなI/Oは、一例に過ぎないデータマスクI/Oを含む、任意の適切なI/Oであってよい。
【0050】
時点t0において、コマンド-アドレスバス上にコマンドおよびアドレス値CAを発出するMCによって、第1の読み出し動作722Aが開始されてよい。
【0051】
時点t1において、第2の読み出し動作722Bが、第1の読み出し動作722Aと同じ様式で開始されてよい。
【0052】
時点t2において、第3の読み出し動作722Cが、第1の読み出し動作722Aと同じ様式で開始されてよい。
【0053】
時点t4において、読み出しレイテンシ期間に続いて、第1の読み出し動作722Aに対応する読み出しデータ724Aが、
図6Aについて記載したのと同じ様式で、データレーンDQ[0:15]およびDQ[31:16]上で駆動されてよい。しかし、
図6Aとは異なり、ECCデータ726Aが、DBI[3:0]上で、読み出しデータ724Aと並行して受け取られてよい。図示の実施形態では、ECCデータ726Aは、4個のバースト、64データビットあたり8ECCビットに対して4ビット値であり得る。しかし、
図7Aに示されているように、ECC値のバーストに続いて、時点t5で始まって、付加的なデータスロット728Aが設けられてよい。付加的なECCまたは他の値を提供するために、このような付加的なデータスロットを使用することができる。さらに、
図7Aは、読み出しデータ724Aと同時に始まるECCデータ726を示しているが、ECCデータは、時間t4とt6との間で、後のスロットまたは非連続的なスロットを占有してよい。
【0054】
時点t6において、第2の読み出し動作722Bに対応する読み出しデータ724BがデータレーンDQ[0:15]およびDQ[31:16]上で駆動されてよい。このような読み出しデータは、第1の読み出しデータ724Aと同じ構成を有していてよい。さらに、ECCデータ726Bは、時点t7での付加的なスロットを含めて、ECCデータ726Aと同じ構成を有していてよい。
【0055】
図7Bは、一実施形態による書き込み動作のタイミング図である。記載される書き込み動作では、書き込みデータに対応するECCデータが、タスクが再割り当てされたI/O上で、書き込みデータバーストと並行して駆動されてよい。
図7Bは、
図7Aと同じ波形を含んでいる。
【0056】
時点t0において、コマンド-アドレスバス上にコマンドおよびアドレス値CAを発出するMCによって、書き込み動作730が開始されてよい。
【0057】
時点t1において、書き込みレイテンシ期間に続いて、書き込み動作730に対応する書き込みデータ732が、DQ[0:15]上の偶数の値およびDQ[31:16]上の奇数の値を伴う、中断のない8個のバーストにおいて、データレーンの両方で駆動されてよい。書き込みデータ732と並行して、ECC値734が、タスクが再割り当てされたI/O上で駆動されてよい。このようなECC値734は、時点t2で利用可能な付加的なスロットを伴って、
図7Aについて示されたものの形式またはそれと同等の形式をとることができる。
【0058】
図8は種々の実施形態による誤り訂正アクセス方法を従来のアプローチと比較する表である。従来のアプローチは「データを読み出す+ECCを読み出す」および「I/Oの幅をx16からx18に増やす」として示されている。「データを読み出す+ECCを読み出す」の例では、メモリアクセスは、第1の読み出し動作を実行して、読み出しデータ値を検索することができる。これに続いて、対応するECC値を検索するための第2の読み出し動作が行われてよい。「I/Oの幅をx16からx18に増やす」の例では、ECC値をデータ値と並行して伝送できるようにするために、メモリバスが増やされてよい。この場合、x16ビット幅からx18ビット幅に増やされてよい。
【0059】
「読み出しデータにECCを追加する」の列は、
図5Aまたは
図6Aのような実施形態に対応する。「ECCとしてDBI/DMを転用する」の列は、
図7Aのような実施形態に対応する。
【0060】
第1の比較される特徴は、800MHzでx16(またはx18)のバスを想定した帯域幅であってよい。第2の比較される特徴(PHYを変更するか?)は、この方法が既存のMC PHYに対する変更を必要とするか否かであってよく、これは非常にコストがかかり、複雑であり得る。第3の比較される特徴(MCを変更するか?)は、この方法が既存のMCロジックに対する変更を必要とするか否かであってよく、これには、PHYの変更よりも格段にコストがかからない。第4の比較される特徴(256bあたりのECC)は、各256bのデータに対して提供可能なECCビットの数である。第5の比較される特徴は、メモリ密度であってよい。
【0061】
図8に示されているように、「I/Oの幅をx16からx18に増やす」の従来のアプローチは、高い帯域幅をもたらすことがあるが、PHYの変更が必要であり、これは望ましくない場合がある。これに対して、この実施形態による方法は、従来の「データを読み出す+ECCを読み出す」の場合よりも大幅な帯域幅の増加をもたらすと同時に、PHYではなくMCロジックに対する変更を必要とする。
【0062】
実施形態は、複数のコンポーネントを備えたシステムを含むことができるが、実施形態は、単一の読み出しトランザクションまたは書き込みトランザクションにおいて、データ値を対応するECCデータと共に転送できるようにするメモリコントローラも含むことができる。
【0063】
図9Aは、一実施形態による、MC904のブロック図である。MC904は、本明細書に記載されたように、またそれと同等のように、読み出しバーストおよび書き込みバーストにECCデータを追加することができる。MC904は、ロジック部分904-0とPHY部分904-1とを含んでいてよい。ロジック部分904-0は、トレーニングコントロール940-0、リフレッシュコントロール940-1、リクエストキュー940-2、コントロールおよびタイミングセクション940-3、コマンド/アドレスジェネレータ940-4、コンフィギュレーションレジスタ940-10、データキュー940-5およびデータコントロールセクション940-6を含んでいてよい。トレーニングコントロール940-0は、メモリ装置へのリンクを確立および最適化するためにトレーニング動作をコントロールすることができる。リフレッシュコントロール回路940-1は、対応するメモリ装置がDRAM装置である場合にリフレッシュ動作をコントロールすることができる。いくつかの実施形態は、DRAMに類似のインタフェースを備える不揮発性メモリ装置を含むことができると理解される。このような場合には、リフレッシュコントロール940-1が無視されてよい、含まれていなくてよい、または無効にされてよい。
【0064】
リクエストキュー940-2は、たとえばホスト装置などからのリクエストである、メモリ装置へのアクセスへのリクエスト938を受け取り、編成することができる。さらに、リクエストキューは、応答値をリクエスト側の装置に提供することができ、かつ/または応答値がリクエスト側の装置によって検索できるようにすることができる。コントロールおよびタイミングセクション940-3は、メモリ装置に対してコマンドおよびデータが発出される方法およびタイミングをコントロールすることができる。コマンド/アドレスジェネレータ940-4は、リクエスト938に応答して、メモリ装置にアクセスするための適切なコマンドおよびアドレス値を生成することができる。
【0065】
データキュー940-5は、入力データおよび出力データを受け取り、編成することができる。図示の実施形態では、これは、このようなデータに対するECC値を含むことができる。データキュー940-5は、ホスト等から書き込みデータ値および対応するECC値942を受け取ることができ、かつ/またはホスト等に読み出しデータ値および対応するECC値942を提供することができる。
【0066】
データコントロールセクション940-6は、PHY904-1から受け取った値またはPHY904-1による伝送のための値を編成することができる。このような動作は、書き込み動作のために、ECC値を書き込みデータ値に追加すること940-9、および/または読み出し動作において読み出しデータのバーストに続く値としてECCデータを区別することを含んでいてよい。
【0067】
いくつかの実施形態では、MC904-0は、従来の様式で(すなわちメモリ装置とのトランザクションにおいてECCデータを含まないで)、またはECC様式で(すなわち本明細書に記載されたようにまたはそれと同等のように、トランザクションにおいてECCデータを含んで)動作するように構成されていてよい。このような構成は、任意の適切な様式で確立され得る。一例として、MC904は、モード値943に応答して、このようなモードを切り替えることができる。付加的または択一的に、MC904は、コンフィギュレーションレジスタ940-10に格納されている値に応答して、このようなモードを切り替えることができる。
【0068】
図示の実施形態では、(外部で受け取られた、またはコンフィギュレーションレジスタ940-10内で設定された)ECCモード値に応答して、コントロールおよびタイミングセクションは、データ値へのECC値の追加に起因して生じる、増大したトランザクションサイクル時間に対して動作することができる。いくつかの実施形態では、コマンド/アドレスジェネレータ940-4は、ECCトランザクションを従来のトランザクションと区別するために、異なるコマンド符号値を生成することができる。付加的にもしくは択一的に、コマンド/アドレスジェネレータ940-4は、追加されたECC値の収容のために、メモリ装置(図示せず)においてバースト長を増大させるレジスタセットコマンドを生成することができる。データコントロールセクション940-6は、それらの対応する書き込みデータ値の後に、ECC値を順序付けるように動作してよい。しかし、いくつかの実施形態では、ホスト装置から受け取った際に、ECC値が、書き込みデータ値の後に自動的に順序付けされてよい。
【0069】
ロジックセクション904-0は、コントロール信号904-2を介してPHY904-1と通信することができる。コントロール信号904-2に応答して、PHY904-1は、本明細書に記載されたようにまたはそれと同等のように、コマンドアドレスバス910-0上にコマンドおよびアドレス信号を生成し、データバス910-1上の追加されたECC値を伴うデータ値を受け取り、伝送することができる。
図8から理解されるように、PHY904-1は、従来のPHYであってよく、ECC能力を提供するためになんらかの変更を必要としない。1つの実施形態では、信号904-2は、DDR PHYインタフェース(DFI)と互換性があってよい。
【0070】
いくつかの実施形態では、MC904は、ECC動作のために固定配線されていてよい(すなわち、従来のように動作しない)。このような場合、MC904はモード値に応答してモードを切り替えないだろう。
【0071】
図9Bは、別の実施形態による、MC904Bのブロック図である。
図9Bは、
図9Aの部材と同様の部材を含むことができ、このような同様の部材は、
図9Aについて示したような構造を有していてよく、
図9Aについて示したのと同じ変更がなされてよい。
【0072】
図9Bは、データコントロールセクション940-6Bが、PHY904-1によってタスクが再割り当てされたI/O910-2上で駆動されるデータバスインバージョン値(if_dbi)またはデータマスク値(if_dmask)としてECCデータを提示できる点で
図9Aと異なり得る。さらに、タスクが再割り当てされたI/O910-2上で受け取られた値がECC値として格納されてよい。またさらに、ECCデータにデータバスインバージョンI/Oが用いられる場合、MCにおいてデータバスインバージョン動作が無効化されてよい。
【0073】
図9Bは、コマンド/アドレスジェネレータ940-4が拡張されたバースト長を考慮する必要がないという点でも、
図9Aと異なり得る。なぜなら、ECC値が、対応するデータバーストと並行して伝送されるからである。さらに、ECC値は、データバス910-1上ではなく、タスクが再割り当てされたI/O910-2上で受け取られ、伝送される。
【0074】
図9Cは、別の実施形態による、MC904Cのブロック図である。
図9Cは、
図9Aの部材と同様の部材を含むことができ、このような同様の部材は、
図9Aについて示したような構造を有していてよく、
図9Aについて示したのと同じ変更がなされてよい。
【0075】
図9Cは、ロジックセクション904-0がECC回路916Mを含み得るという点で
図9Aと異なり得る。ECC回路916Mは、次のいずれかを実行することができる:ホストから受け取ったデータおよび対応するECC値に対するECC動作、メモリ装置から受け取ったデータおよび対応するECC値に対するECC動作、またはメモリ装置に格納するための、ホストから受け取ったデータに対するECC値の生成。MC904Cは、他の点では、データバーストにECCデータを追加し、かつ/またはタスクが再割り当てされたI/Oを介してデータ値と並行してECC値を伝送して、
図9Aまたは
図9Bの場合と同様に動作することができる。
【0076】
実施形態は、システムおよびメモリコントローラを含んでいてよいが、実施形態は、単一の読み出しトランザクションまたは書き込みトランザクションにおいて対応するECCデータと共にデータ値を格納することを可能にするメモリ装置も含んでいてよい。
【0077】
図10は、一実施形態による、メモリ装置1006のブロック図である。メモリ装置1006は、コマンド復号およびロジック1006-0、コマンド/アドレスバッファ1006-1、レジスタ1006-2、バーストカウンタ1006-3、メモリ記憶場所(たとえば、バンクまたはアレイ)1006-4、デコーダ1006-5/6、センスアンプおよびI/O回路1006-7、出力バッファおよびロジック1006-8、書き込みデータラッチおよびロジック1006-9、データI/O1010-1および他のI/O1010-2を含むことができる。コマンド復号およびロジック1006-0は、受け取ったコントロール信号(CS,RAS,CAS,WE)に応答してコマンドを実行することができ、これと並んで、コマンド/アドレスバッファ1006-1で受け取ったコマンド値を実行することができる。
【0078】
いくつかの実施形態では、メモリ装置1006は、コマンド値に応答して、ECCトランザクション(すなわち、付随するECC値を伴う読み出しまたは書き込み)を実行することができる。すなわち、ECC読み出しおよびECC書き込みのためのカスタムコマンドが存在し得る。このような場合、データ値にECCデータが追加されると、追加されたECC値を含むためにバーストカウントを増加させるために、値ECC_CMDがバーストカウンタ1006-3に提供されてよい。
【0079】
いくつかの実施形態では、メモリ装置1006は、レジスタ1006-2内のコンフィギュレーション値に応答してECCトランザクションを実行することができる。このようなコンフィギュレーション値は、メモリ装置1006がECC機能を実行することができるように、メモリコントローラによってレジスタに書き込まれてよい。たとえば、ECCデータがデータ値に追加される場合、追加されたECC値を含むためにバーストカウントを増加させるために、値ECC_MODEがバーストカウンタ1006-3に提供されてよい。
【0080】
いくつかの実施形態では、出力バッファおよびロジック1006-8が、モード値またはコマンド値(ECC_CMD/ECC_MODE)によって変更されてよい。たとえば、ECCデータが、タスクが再割り当てされたDBI I/Oを介して転送される場合、DBI動作が無効化されてよい。
【0081】
図11Aは、一実施形態による、不揮発性メモリ(NVM)装置1106のブロック図である。NVM装置1106は、データレーン1110-0L、1110-0M、コマンドアドレスバス1110-0および他のI/O1110-2を含むLPDDR4互換ポートを含むことができる。NVMは、クワッドSPI(QSPI)互換ポート1106-17、LPDDR4互換PHY1106-18、並列するバンク1106-4、各バンク1106-4に対する第1のアクセスパス1106-15、各バンク1106-4に対する第2のアクセスパス1106-16およびコントロールロジック1106-14も含んでいてよい。
【0082】
LPDDR4 PHY1106-18は、MC等から受け取った信号コマンドを処理することができる。いくつかの実施形態では、これは、ECC値を有する書き込みデータの伝送のためのカスタム読み出しコマンドまたはカスタム書き込みコマンドを含んでいてよい。このような動作は、任意の、本明細書に記載された動作またはそれと同等の動作を含んでいてよく、対応するECC値が後続するデータレーン1110-0L/M上の読み出しデータのバーストの出力、対応するECC値が後続するデータレーン1110-0L/M上の書き込みデータのバーストの受け取り、データライン1110-0L/M上での読み出しデータのバーストと並行した、タスクが再割り当てされたI/O1110-2上でのECC値の出力およびデータライン1110-0L/M上での書き込みデータのバーストと並行した、タスクが再割り当てされたI/O1110-2上でのECC値の受け取りを含んでいるが、これに制限されない。しかし、いくつかの実施形態では、書き込みコマンドは、LPDDR4 PHY1106-18を介しては許可されず、読み出しコマンドのみが許可される。
【0083】
QSPI互換ポート1106-17は、シリアルチップセレクトSPI_CS、シリアルクロックインプットSPI_CKおよび4個のシリアルデータI/OであるSPI_DQを含むことができる。QSPI PHY1112は、QSPI互換コマンドを含め、ポート1106-17を介して受け取ったコマンドを処理することができる。このようなコマンドは、読み出しコマンドと書き込み(たとえばプログラム)コマンドとの両方を含むことができる。いくつかの実施形態では、このような書き込みコマンドは、対応するECC値と共にデータ値を書き込むことができる。
【0084】
各バンク1106-4は、行および列に配置されているNVMセルを含むことができ、固有のバンクアドレスを介して個別にアクセス可能であってよい。いくつかの実施形態では、NVMセルは、消去可能なグループであってよい(たとえば、フラッシュ型セル)。読み出しパス1106-12は、第1のバスシステム1106-15を介してLPDDR4ポート1106-18から、それらの対応するバンク1106-4への読み出しアクセスを可能にすることができる。読み出し/書き込みパス1106-13は、第2のバスシステム1106-16を介してQSPIポート1106-17から、それらの対応するバンク1106-4への読み出しアクセスまたは書き込みアクセスを可能にすることができる。いくつかの実施形態では、異なるバンク1106-4が同時に異なるポート1106-18/1106-17からアクセスされてよい。しかし、両方のポート1106-18/1106-17から、同じバンク1106-4に同時にアクセスすることはできない。
【0085】
コントロールロジック1106-14は、実施形態によるメモリ装置1106へのECCアクセスを可能にすることができる。たとえば、LPDDR4 PHY1106-18からの読み出しアクセスの場合、追加されたECC値を考慮するためにバースト長が拡張されてよく、かつ/またはECC値がDBI I/Oを介して伝送される場合には、DBI動作が無効化されてよい。
【0086】
図11Bは、一実施形態による、データの読み出し動作および書き込み動作を示す図である。
図11Bは、シリアルインタフェース1158、不揮発性メモリアレイ1106-4およびパラレルインタフェース1160を有するメモリ装置1106Bを示している。書き込み(たとえばプログラム)データは、「シリアルデータイン」1156として受け取られてよい。このようなシリアルデータは、任意の適切なシリアルリンクを介して受け取られてよく、このシリアルリンクは、シングルシリアルリンク、デュアルシリアルリンクまたはクワッドシリアルリンク(たとえばQSPI)を含んでいるが、これらに限定されない。シリアルデータイン1156は、データ値(D0~D15)および対応するECC符号(ECC0/1)を含んでいてよい。データ値(D0~D15)およびECC符号(ECC0/1)は、不揮発性メモリアレイ1106-4に格納されていてよい。ECC符号(ECC0/1)は、それらがデータ値(D0~D15)と共に出力されることを可能にするために、所定の場所に格納されていてよい。
【0087】
データ値(D0~D15)とECC符号(ECC0/1)とは、パラレルインタフェース1160を介してパラレルデータ値として読み出されてよい。このようなパラレルデータ値は、x4、x8、x16、x32、x64を含む任意の適切な数であってよいが、これらに限定されない。データ値(D0~D15)は、中断のないバーストにおいて出力され、その後に、追加されたECC符号(ECC0/1)が続く。
【0088】
いくつかの実施形態では、パラレルインタフェース1160は、読み出し専用インタフェースであってよい。いくつかの実施形態では、メモリ装置1106Bは、
図11Aに示されているメモリ装置の1つの実装であってよい。
【0089】
図11Cは、別の実施形態による、データの読み出し動作および書き込み動作を示す図である。
図11Cは、
図11Bの部材と同様の部材を有するメモリ装置1106Cを示している。
図11Cは、パラレルインタフェース1160CがデータI/O1160-0およびデータコントロールI/O1160-1を含むことができるという点で異なり得る。データコントロールI/O1160-1は、データ値をどのように受け取るかをコントロールすることができる入力値および/または出力値に、規格に従って割り当てられた1つまたは複数のI/Oであってよい。たとえば、データコントロールI/O1160-1は、バイト、ワード、ダブルワードなどの特定の部分をマスクすることができるDM値、ならびにデータ値を選択的に反転させることができるDBI値を含むことができるが、これらに限定されない。データ値(D0~D15)および対応するECC符号(ECC0/1)は、
図11Bの場合のように装置に書き込まれてよい(たとえばプログラミングされてよい)。
【0090】
データ値(D0~D15)とECC符号(ECC0/1)とは、パラレルインタフェース1160Cを介して互いに並行に読み出されてよい。データ値(D0~D15)は、データI/O1160-0上に出力されてよく、他方でECC符号(ECC0/1)は、データコントロールI/O1160-1上に出力されてよい。
【0091】
いくつかの実施形態では、パラレルインタフェース1160Cは、読み出し専用インタフェースであってよい。いくつかの実施形態では、メモリ装置1106Cは、
図11Aに示されているメモリ装置の1つの実装であってよい。
【0092】
図12は、一実施形態による方法1250のフローチャートである。いくつかの実施形態では、メモリ装置にアクセスするために、MCによって方法1250が実施されてよい。方法1250は、ホストからメモリアクセスリクエストを受け取ること1250-0を含んでいてよい。アクセスリクエストが、ECCタイプのアクセスであるか否かが判定されてよい1250-1。アクセスがECCタイプのアクセスでない場合(1250-1からの「いいえ」)は、リクエストが実行されてよい1250-2(たとえば、従来の様式で実行される)。
【0093】
アクセスがECCタイプのアクセスである場合(1250-1からの「はい」)、それが読み出しリクエストである場合(1250-3からの「読み出し」)、方法1250は、読み出しコマンドおよびアドレスを発出することができる1250-4。いくつかの実施形態では、このような読み出しコマンドは、メモリ装置がECC読み出しコマンドとして認識できるカスタムコマンドであってよい。しかし、他の実施形態では、読み出しコマンドは、従来の読み出しコマンドであってよい。読み出しレイテンシ1250-5の後、読み出しデータの中断のないバーストが、対応するECCデータと共に受け取られてよい1250-6。読み出しデータの中断のないバーストは、(たとえば、半クロックサイクルと同期して)連続するタイミングスロットで受け取られた読み出しデータ値であってよく、読み出しデータ値はECC値を含んでいない。
【0094】
ECCタイプのアクセスが書き込みリクエストである場合(1250-3からの「書き込み」)、方法1250は、書き込みコマンドおよびアドレスを発出することができる1250-7。読み出し動作の場合のように、書き込みコマンドは、カスタムコマンドまたは従来のコマンドであってよい。書き込みレイテンシ1250-8の後(必要な場合)、書き込みデータの中断のないバーストが、対応するECCデータと共に出力されてよい1250-9。
【0095】
図13Aは、一実施形態によるECC読み出し方法1350のフローチャートである。方法1350は、ECCデータが読み出しデータバーストに追加される、ECC読み出し動作であってよい1350-0。方法1350は、読み出しバースト長、ECCバースト長および読み出しレイテンシを確立すること1350-1を含んでいてよい。読み出しコマンドが発出されてよい1350-2。読み出しレイテンシの後、読み出しデータのバーストが、データライン上で受け取られてよい1350-3。読み出しデータのためのECCデータが、読み出しデータバーストの直後に受け取られてよい1350-4。いくつかの実施形態では、直後が、読み出しデータバーストの最後の値に続く次のデータスロット(たとえば半サイクル期間)であってよい。
【0096】
図13Bは、一実施形態によるECC書き込み方法1352のフローチャートである。方法1352は、ECCデータが書き込みデータバーストに追加される、ECC書き込み動作であってよい1352-0。方法1352は、書き込みバースト長とECCバースト長とを確立すること1352-1を含んでいてよい。書き込みコマンドが発出されてよく、さらに書き込みデータのバーストが出力されてよく、直後に、書き込みデータのためのECCデータが続く1352-3。
【0097】
図14Aは、別の実施形態によるECC読み出し方法1450のフローチャートである。方法1450は、ECCデータが、タスクが再割り当てされたI/Oにおいて受け取られる、ECC読み出し動作であってよい1450-0。方法1450は、データライン上で読み出しデータバーストを受け取ること1450-1を含んでいてよい。方法1450は、タスクが再割り当てされたI/O(たとえばDBI/DM)上で、対応するECC値を、読み出しデータのバーストと並行して受け取ること1450-2も含んでいてよい。
【0098】
図14Bは、一実施形態によるECC書き込み方法1452のフローチャートである。方法1452は、ECCデータが、タスクが再割り当てされたI/O上に出力されるECC書き込み動作であってよい1452-0。方法1452は、書き込みバースト長を確立することを含んでいてよい。次いで、書き込みデータが、バーストにおいてデータライン上に出力されてよい。さらに、ECC値が、書き込みデータバーストと並行して、タスクが再割り当てされたI/O上に出力されてよい1452-2。
【0099】
本明細書全体を通して「1つの実施形態」または「一実施形態」との言及は、この実施形態に関連して記載されている特定の特徴、構造または特性が本発明の少なくとも1つの実施形態に含まれていることを意味していることが理解されるべきである。したがって、本明細書のさまざまな部分での「一実施形態」または「1つの実施形態」または「択一的な実施形態」との2つ以上の言及は、必ずしもすべて、同じ実施形態を指しているわけではないことが強調され、理解されるべきである。さらに、特定の特徴、構造または特性は、本発明の1つまたは複数の実施形態において、適切であるように組み合わせられてよい。
【0100】
同様に、本発明の例示的な実施形態の上述の説明においては、さまざまな本発明の態様のうちの1つまたは複数の理解を助ける開示を簡素化する目的で、本発明のさまざまな特徴が、時に、単一の実施形態、図またはそれらの説明において一緒にグループ化されていることが理解されるべきである。しかし、特許請求の範囲が、各請求項において明示的に挙げられたものよりも多くの特徴を必要とするという意図を反映していると、この開示方法が解釈されるべきではない。むしろ、本発明の態様は、上述した単一の実施形態のすべての特徴よりも少ない特徴に係わっている。したがって、詳細な説明に続く特許請求の範囲は、これによって、各請求項が本発明の別個の実施形態として独立しながらも、この詳細な説明に明示的に組み込まれている。
【国際調査報告】