IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

特開2022-146543半導体記憶装置、メモリシステム、および方法
<>
  • 特開-半導体記憶装置、メモリシステム、および方法 図1
  • 特開-半導体記憶装置、メモリシステム、および方法 図2
  • 特開-半導体記憶装置、メモリシステム、および方法 図3
  • 特開-半導体記憶装置、メモリシステム、および方法 図4
  • 特開-半導体記憶装置、メモリシステム、および方法 図5
  • 特開-半導体記憶装置、メモリシステム、および方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022146543
(43)【公開日】2022-10-05
(54)【発明の名称】半導体記憶装置、メモリシステム、および方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20220928BHJP
   G06F 13/16 20060101ALI20220928BHJP
   G11C 5/04 20060101ALI20220928BHJP
   G11C 7/10 20060101ALI20220928BHJP
   G06F 13/42 20060101ALI20220928BHJP
【FI】
G06F12/00 564A
G06F13/16 520B
G06F13/16 510E
G11C5/04 210
G11C7/10 460
G06F13/42 350C
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021047550
(22)【出願日】2021-03-22
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】大友 吾一
(72)【発明者】
【氏名】鈴木 智明
【テーマコード(参考)】
5B077
5B160
【Fターム(参考)】
5B077AA17
5B077GG05
5B077GG15
5B077MM02
5B160CC01
5B160MM01
(57)【要約】      (修正有)
【課題】2以上のメモリチップからのデータの受信開始のタイミングを好適に制御する半導体記憶装置を提供する。
【解決手段】メモリシステムSYSが備える半導体記憶装置は、第1チップ(ブリッジチップ)と、複数の第2チップ(メモリチップ)と、複数のチャネルCH1、CH2と、を備える。第1チップは、ホストに接続可能である。複数のチャネルの夫々は、複数の第2チップのうちの1以上の第2チップと第1チップとを接続する。第1チップは、データ列の出力用のタイミング信号の送信開始の第1タイミングを可変の遅延回路を1以上備え、1以上の遅延回路を用いてチャネル単位で第1タイミングを調整し、調整したタイミング信号をそれぞれ異なるチャネルに接続された2以上の第2チップに出力する。第1チップは、当該2以上の第2チップから出力されるデータ列の受信開始の第2タイミングが揃った2以上のデータ列を当該2以上の第2チップから受信する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ホストに接続可能な第1チップと、
複数の第2チップと、
それぞれは前記複数の第2チップのうちの1以上の第2チップと前記第1チップとを接続する複数のチャネルと、
を備え、
前記第1チップは、データ列の出力用のタイミング信号の送信開始の第1タイミングを可変の遅延回路を1以上備え、前記1以上の遅延回路を用いて前記チャネル単位で前記第1タイミングを調整し、前記第1タイミングを調整したタイミング信号を2以上の第3チップに出力し、前記2以上の第3チップから出力されるデータ列の受信開始の第2タイミングが揃った2以上のデータ列を前記2以上の第3チップから受信し、
前記2以上の第3チップは、前記複数の第2チップのうちのそれぞれ異なるチャネルに接続された2以上の第2チップである、
半導体記憶装置。
【請求項2】
前記第1チップは、データ列の出力対象の第2チップを特定し、
前記2以上の第3チップのそれぞれは、更に、前記データ列の出力対象として特定された前記第2チップである、
請求項1に記載の半導体記憶装置。
【請求項3】
前記第1チップは、
前記タイミング信号を送信してから前記タイミング信号に応じたデータ列を受信するまでのレイテンシを第2チップ毎に計測し、
前記2以上の第3チップのそれぞれのレイテンシの計測値に基づいてチャネル毎の前記第1タイミングの調整量を取得する、
請求項1または2に記載の半導体記憶装置。
【請求項4】
前記第1チップは、前記ホストからの指示に応じて前記レイテンシを第2チップ毎に計測する、
請求項3に記載の半導体記憶装置。
【請求項5】
前記第1チップは、
前記2以上の第3チップのレイテンシの計測値の最大値を取得し、
前記2以上の第3チップのそれぞれのレイテンシの計測値と前記最大値との差を前記調整量として取得する、
請求項3または請求項4に記載の半導体記憶装置。
【請求項6】
前記第1チップは、前記2以上の第3チップから出力されるデータ列を受信した場合、前記2以上の第3チップから出力されたデータ列を結合して前記ホストに送信する、
請求項1から請求項5の何れか一項に記載の半導体記憶装置。
【請求項7】
前記第1チップは、前記2以上の第3チップから出力されたデータ列をチャネルのバス幅の単位で順番に取得して、前記順番に取得されたチャネルのバス幅の単位のデータをシリアルに結合する、
請求項6に記載の半導体記憶装置。
【請求項8】
前記第1チップは、前記結合されたデータ列を、1つの前記チャネルあたりの転送レートのN倍の転送レートで前記ホストに送信し、
前記Nは前記2以上の第3チップのうちの第3チップの数である、
請求項6または請求項7に記載の半導体記憶装置。
【請求項9】
請求項1から請求項8の何れか一項に記載の半導体記憶装置と、
前記ホストと、
前記半導体記憶装置と前記ホストとを接続するホスト側チャネルと、
を備えるメモリシステム。
【請求項10】
第1チップの制御方法であって、前記第1チップは、複数のチャネルに接続され、前記複数のチャネルのそれぞれには複数の第2チップのうちの1以上の第2チップが接続され、データ列の出力用のタイミング信号の送信開始の第1タイミングを可変の遅延回路を1以上備え、
前記方法は、
前記第1タイミングを、前記1以上の遅延回路を用いてチャネル単位で調整することと、
前記第1タイミングを調整したタイミング信号を、前記複数の第2チップのうちのそれぞれ異なるチャネルに接続された2以上の第2チップである2以上の第3チップに出力することと、
前記2以上の第3チップから出力されるデータ列の受信開始の第2タイミングが揃った2以上のデータ列を前記2以上の第3チップから受信することと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、半導体記憶装置、メモリシステム、および方法に関する。
【背景技術】
【0002】
ホストに接続される外部端子群と複数のメモリチップとの間にブリッジチップを配した半導体記憶装置がある。半導体記憶装置では、ホストから複数のメモリチップへのアクセスがブリッジチップを介して行われる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2013-520732号公報
【特許文献2】特開2019-57344号公報
【特許文献3】特開2013-196476号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つの実施形態は、2以上のメモリチップからのデータの受信開始のタイミングを好適に制御することができる半導体記憶装置、当該半導体記憶装置を備えるメモリシステム、および方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
一つの実施形態によれば、第1チップと、複数の第2チップと、複数のチャネルと、を備える。第1チップはホストに接続可能である。複数のチャネルのそれぞれは複数の第2チップのうちの1以上の第2チップと第1チップとを接続する。第1チップは、データ列の出力用のタイミング信号の送信開始の第1タイミングを可変の遅延回路を1以上備える。第1チップは、1以上の遅延回路を用いてチャネル単位で第1タイミングを調整し、第1タイミングを調整したタイミング信号を2以上の第3チップに出力する。第1チップは、2以上の第3チップから出力されるデータ列の受信開始の第2タイミングが揃った2以上のデータ列を2以上の第3チップから受信する。2以上の第3チップは、複数の第2チップのうちのそれぞれ異なるチャネルに接続された2以上の第2チップである。
【図面の簡単な説明】
【0006】
図1図1は、実施形態のストレージシステムの構成の一例を示す模式的な図である。
図2図2は、実施形態の並列リード制御回路によるデータ列の結合方法を説明するための模式的な図である。
図3図3は、実施形態のメモリシステムにおけるトレーニングに関する動作の一例を説明するためのシーケンス図である。
図4図4は、実施形態のブリッジチップによるトレーニングにおいてREレイテンシを計測する動作の一例を示すフローチャートである。
図5図5は、実施形態の並列リード動作の一例を示すフローチャートである。
図6図6は、実施形態の並列リード動作における各種信号の波形を示すタイミングチャートである。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、実施形態の半導体記憶装置、メモリシステム、および方法詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【0008】
(実施形態)
実施形態のメモリシステムは、ホストおよび半導体記憶装置を備える。半導体記憶装置は、ブリッジチップ、複数のメモリチップ、および複数のチャネルを備える。複数のチャネルのそれぞれは、ブリッジチップと、複数のメモリチップのうちの1以上のメモリチップと、を接続する。ブリッジチップは、第1チップの一例である。複数のメモリチップのそれぞれは、第2チップの一例である。
【0009】
複数のメモリチップは、ブリッジチップを介してホストに接続される。メモリチップは、例えば、NAND型フラッシュメモリ等の不揮発性メモリのメモリチップである。メモリチップがNAND型フラッシュメモリである場合、複数のメモリチップとブリッジチップとを接続するインタフェースの規格は、例えばトグルDDR(Double-Data-Rate)規格である。
【0010】
半導体記憶装置では、メモリシステムのメモリ容量を拡張するために、搭載されるメモリチップ数は多くなりつつある。このとき、各メモリチップとの接続にかかる電気的な負荷を減らすために、半導体記憶装置のベンダーはブリッジチップをホストと複数のメモリチップとの間に配置する。そして、このようなブリッジチップは、それぞれ異なるチャネルを介してブリッジチップに接続された2以上のメモリチップから並列にデータをリードする、並列リード動作が可能に構成され得る。
【0011】
例えばトグルDDR規格では、メモリチップにデータを出力させる場合、データ出力用のタイミング信号であるリードイネーブル信号が当該メモリチップに入力される。当該メモリチップは、リードイネーブル信号に応じてデータおよびデータストローブ信号の出力を行う。データストローブ信号は、データと同期して出力される。データストローブ信号は、受信したリードイネーブル信号に対して波形整形などの処理を実行することによって生成され得る。メモリチップへのリードイネーブル信号の送信を開始したタイミングから当該メモリチップからのデータストローブ信号(またはデータ)の受信が開始したタイミングまでの期間は、REレイテンシと表記される。
【0012】
REレイテンシは、メモリチップ毎にばらつき得る。よって、並列リード動作において、ブリッジチップが複数のメモリチップへのリードイネーブル信号の送信を同時に開始した場合、ブリッジチップの当該複数のメモリチップのそれぞれからのデータの受信開始のタイミングがばらつき得る。
【0013】
実施形態では、ブリッジチップは、複数のメモリチップへリードイネーブル信号の送信を同時に開始するのではなく、リードイネーブル信号の送信開始のタイミングを遅延回路を用いてチャネル毎に調整する。これによって、ブリッジチップの複数のメモリチップのそれぞれからのデータの受信開始のタイミングを揃える。これによって、並列リード動作によって複数のメモリチップから並列に取得したデータの取り扱いが容易になる。
【0014】
以下に、並列リード動作によって複数のメモリチップから並列に取得したデータの取り扱い方の例を含め、実施形態のメモリシステムの詳細を説明する。
【0015】
図1は、実施形態のストレージシステムSYSの構成の一例を示す模式的な図である。
【0016】
ストレージシステムSYSは、ホストHA及び半導体記憶装置1を含む。半導体記憶装置1は、外部端子群10、ブリッジチップBC、および複数のメモリチップCPを備える。各メモリチップCPは、例えば、NAND型フラッシュメモリ等の不揮発性のメモリチップである。ブリッジチップBCは、第1チップの一例である。各メモリチップCPは、第2チップの一例である。
【0017】
複数のメモリチップCPは、所定の規格に基づいて構成された2以上のチャネルを介してブリッジチップBCに接続される。ここでは一例として、複数のメモリチップCPは、8個のメモリチップCP1-1~CP1-4,CP2-1~CP2-4である。そして、チャネルCH1を介してブリッジチップBCに4つのメモリチップCP1-1~CP1-4が接続され、チャネルCH2を介してブリッジチップBCに4つのメモリチップCP2-1~CP2-4が接続される。各メモリチップCPがNAND型フラッシュメモリである場合、所定の規格は、例えば、トグルDDR規格である。なお、チャネルCH1に接続された各メモリチップCPを、メモリチップCP1と表記することがある。また、チャネルCH2に接続された各メモリチップCPを、メモリチップCP2と表記することがある。
【0018】
ホストHAは、コントローラなどのデバイスであってもよいし、コンピュータまたは携帯端末などの電子機器に備えられ半導体記憶装置1を制御するプロセッサであってもよい。半導体記憶装置1は、有線通信路(例えば、シリアルバスなど)CH0を介してホストHAに接続可能である。半導体記憶装置1とホストHAとは、所定の規格に基づき構成された有線通信路CH0を介して接続される。各メモリチップCP1-1~CP1-4,CP2-1~CP2-4がNAND型フラッシュメモリである場合、所定の規格は、例えば、トグルDDR規格である。例えば、有線通信路CH0はトグルDDRインタフェースとして機能する。
【0019】
ブリッジチップBCは、ホストHAに接続可能な外部端子群10に電気的に接続されている。ホストHAと外部端子群10とは、チャネルCH0で接続される。
【0020】
以降、各メモリチップCPはNAND型のフラッシュメモリであり、チャネルCH0,CH1,CH2のそれぞれはトグルDDR規格に準拠することとする。
【0021】
各チャネルCH0~2は、チップイネーブル信号CEnを転送する信号線、コマンドラッチイネーブル信号CLEを転送する信号線、アドレスラッチイネーブル信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、レディービジー信号R/Bnを転送する信号線、所定のビット幅(ここでは一例として8ビットの幅)を有するデータ信号DQ[7:0]を転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、およびリードイネーブル信号REn/REを転送する信号線、を含む。信号を表す符号の末尾に記された「n」は、負論理で動作せしめられる信号であることを表す。各信号が負論理で動作せしめられるか正論理で動作せしめられるかは任意に設計され得る。
【0022】
なお、図1では、3つのチャネルを転送される同一名称の信号を識別するために、チャネルCH0を転送される信号の名称の先頭に、「H_」が付されている。チャネルCH1を転送される信号の名称の先頭に、「N1_」が付されている。チャネルCH2を転送される信号の名称の先頭に、「N2_」が付されている。
【0023】
チップイネーブル信号CEnは、アクセスの対象となるメモリチップCPをイネーブル状態とするための信号である。コマンドラッチイネーブル信号CLEは、データ信号DQ[7:0]がコマンドであることを示す信号である。アドレスラッチイネーブル信号ALEは、データ信号DQ[7:0]がアドレスであることを示す信号である。ライトイネーブル信号WEnは、データ信号DQ[7:0]で送信されるコマンドまたはアドレスを取り込むように相手装置に指示する信号である。レディービジー信号R/Bnは、コマンドの受信を待機している状態であるレディー状態(Ry)であるか受信したコマンドを実行中である状態であるビジー状態(By)であるかを示す信号である。
【0024】
なお、チャネルCH0は、チャネルCH1およびチャネルCH2とは異なり、レディービジー信号R/Bnを転送するための信号線として、レディービジー信号N1_R/Bnであるレディービジー信号H_R/Bn_1を転送する信号線と、レディービジー信号N2_R/Bnであるレディービジー信号H_R/Bn_2を転送する信号線と、を含んでいる。チャネルCH0が含むレディービジー信号R/Bnを転送する信号線の構成は上記された例に限定されない。例えば、チャネルCH0は、レディービジー信号N1_R/Bnと、レディービジー信号N2_R/Bnと、からワイヤー接続などによって生成された一つのレディービジー信号R/Bnをレディービジー信号H_R/Bnとして転送するための1つの信号線を備えていてもよい。
【0025】
データストローブ信号DQS/DQSnは、データ信号DQ[7:0]で送信されるデータを相手装置に取り込むように指示する信号である。データストローブ信号DQS/DQSnは、データストローブ信号DQSとデータストローブ信号DQSnとによって構成される差動信号である。リードイネーブル信号REn/REは、データ信号DQ[7:0]を出力するように相手装置に指示する信号であり、データ出力用のタイミング信号である。リードイネーブル信号REn/REは、リードイネーブル信号REおよびリードイネーブル信号REnによって構成される差動信号である。
【0026】
以降では、説明を簡単にするために、データストローブ信号DQS/DQSnに関しては、データストローブ信号DQSnの説明を省略して、データストローブ信号DQSについてのみ説明する。また、リードイネーブル信号REn/REに関しては、リードイネーブル信号REの説明を省略して、リードイネーブル信号REnについてのみ説明する。
【0027】
ブリッジチップBCは、第1インタフェース101と、2個の第2インタフェース102と、コントローラ103と、を備える。
【0028】
第1インタフェース101は、ホストHAに対してチャネルCH0を介した電気信号の送受信を行うPHY回路である。
【0029】
2個の第2インタフェース102のうちの第2インタフェース102-1は、4個のメモリチップCP1に対してチャネルCH1を介した電気信号の送受信を行うPHY回路である。2個の第2インタフェース102のうちの第2インタフェース102-2は、4個のメモリチップCP2に対してチャネルCH2を介した電気信号の送受信を行うPHY回路である。
【0030】
コントローラ103は、第1インタフェース101と、2個の第2インタフェース102と、の間に配されている。コントローラ103は、第1インタフェース101と、2個の第2インタフェース102と、の間の信号の授受を制御する。
【0031】
コントローラ103は、プロセッサ111、並列リード制御回路112、計測回路113、第1遅延回路114-1、第2遅延回路114-2、およびメモリ115を備える。
【0032】
並列リード制御回路112は、並列リード動作の際に、チャネルCH0から受信したリードイネーブル信号H_REnの周波数を1/2に分周する。並列リード制御回路112によって分周されたリードイネーブル信号REnは、第1遅延回路114-1および第2遅延回路114-2に共通に入力される。
【0033】
第1遅延回路114-1は、並列リード制御回路112から入力されたリードイネーブル信号REnを予め設定された量だけ遅延させて出力する。第1遅延回路114-1から出力されるリードイネーブル信号REnは、リードイネーブル信号N1_REnとしてチャネルCH1に供給される。
【0034】
第2遅延回路114-2は、並列リード制御回路112から入力されたリードイネーブル信号REnを予め設定された量だけ遅延させて出力する。第2遅延回路114-2から出力されるリードイネーブル信号REnは、リードイネーブル信号N2_REnとしてチャネルCH2に供給される。
【0035】
また、並列リード制御回路112は、チャネルCH1およびチャネルCH2から並列に受信したデータ列を結合して1つのデータ列を生成する。並列リード制御回路112は、生成したデータ列をチャネルCH1、チャネルCH2のそれぞれにおけるデータ列の転送レートの2倍の転送レートで出力する。並列リード制御回路112から出力されたデータ列は、チャネルCH0にデータ信号H_DQ[7:0]として供給される。
【0036】
図2は、実施形態の並列リード制御回路112によるデータ列の結合方法を説明するための模式的な図である。なお、本図において、データDX(Xは0以上の整数)は、転送の単位のデータである。データDXは、データ信号DQのバス幅のサイズを有する。実施形態の例では、データ信号DQのバス幅は8ビット、すなわち1バイトである。
【0037】
ここでは、ブリッジチップBCが、チャネルCH1からデータD10、データD11、およびデータD12のデータ列をデータ信号N1_DQ[7:0]として受信し、これと並行して、チャネルCH2からデータD20、データD21、およびデータD22のデータ列をデータ信号N2_DQ[7:0]として受信した場合を説明する。この場合、並列リード制御回路112は、これらの2つのデータ列からチャネルCH1,CH2の転送の単位(即ちこの例では1バイトのデータDX)でデータを交互に取得して、取得したデータDXを取得した順番でシリアルに結合する。これによって、並列リード制御回路112は、データD10、データD20、データD11、データD21、データD12、およびデータD22のデータ列を生成する。そして、並列リード制御回路112は、生成したデータD10、データD20、データD11、データD21、データD12、およびデータD22のデータ列を出力する。並列リード制御回路112は、2つのデータ列が入力されたときの転送周波数の2倍の周波数で、結合された1つのデータ列を出力する。これによって、結合後のデータ列の転送レートが、結合前の2つのデータ列のそれぞれの転送レートの2倍にされる。結合後のデータ列は、ホスト側チャネルを介してホストHAにデータ信号H_DQ[7:0]として転送される。
【0038】
図1に説明を戻す。
上記された結合方法によれば、チャネルCH1から受信したデータ列を並列リード制御回路112が取得開始するタイミングと、チャネルCH2から受信したデータ列を並列リード制御回路112が取得開始するタイミングと、が等しいことが求められる。ところが、前述されたように、REレイテンシは、メモリチップCP毎に異なり得るため、ブリッジチップBCが2つのチャネルCH1,CH2にリードイネーブル信号REnの供給を同時に開始した場合であっても、ブリッジチップBCのデータ列の受信開始のタイミングがチャネルCH1,CH2の間で異なり得る。そのような場合において、チャネルCH1から受信したデータ列を並列リード制御回路112が取得開始するタイミングと、チャネルCH2から受信したデータ列を並列リード制御回路112が取得開始するタイミングと、を等しくするためには、ブリッジチップBCには、チャネルCH1からのデータ列およびチャネルCH2からのデータ列のうちの早く受信した一方のデータ列を他方のデータ列の受信が開始するまで蓄積するFIFO(First In, First Out)メモリが配される必要がある。
【0039】
実施形態では、ブリッジチップBCは、リードイネーブル信号N1_REnのチャネルCH1への供給のタイミングを遅延させる第1遅延回路114-1と、リードイネーブル信号N2_REnのチャネルCH2への供給のタイミングを遅延させる第2遅延回路114-2と、を備える。ブリッジチップBCは、チャネルCH1に接続されたデータ出力元のメモリチップCP1と、チャネルCH2に接続されたデータ出力元のメモリチップCP2と、のREレイテンシの差を、第1遅延回路114-1および第2遅延回路114-2によるリードイネーブル信号REnの遅延量によって吸収する。これによって、ブリッジチップBCがチャネルCH1からデータ列を受信するタイミングと、ブリッジチップBCがチャネルCH2からデータ列を受信するタイミングと、を等しくすることができる。よって、FIFOメモリなどを用いたタイミング調整を要することなく、チャネルCH1から受信したデータ列を並列リード制御回路112が取得開始するタイミングと、チャネルCH2から受信したデータ列を並列リード制御回路112が取得開始するタイミングと、を等しくすることができる。
【0040】
なお、本実施形態において、チャネルCH1に接続されたデータ出力元のメモリチップCP1からのデータ列の受信開始のタイミングとチャネルCH2に接続されたデータ出力元のメモリチップCP2からのデータ列の受信開始のタイミングとを揃える(または等しくする)とは、並列リード制御回路112が、チャネルCH1から入力されたデータ列の取得開始と、チャネルCH2から入力されたデータ列の取得開始と、を同じタイミングで実行できる程度に、チャネルCH1に接続されたデータ出力元のメモリチップCP1からのデータ列の受信開始のタイミングとチャネルCH2に接続されたデータ出力元のメモリチップCP2からのデータ列の受信開始のタイミングとの差を小さくすることである。並列リード制御回路112が、チャネルCH1から入力されたデータ列の取得開始と、チャネルCH2から入力されたデータ列の取得開始と、を同じタイミングで実行できる限り、チャネルCH1に接続されたデータ出力元のメモリチップCP1からのデータ列の受信開始のタイミングとチャネルCH2に接続されたデータ出力元のメモリチップCP2からのデータ列の受信開始のタイミングとが厳密に等しくなくてもよい。
【0041】
第1遅延回路114-1および第2遅延回路114-2のそれぞれは、遅延量が可変に構成されている。第1遅延回路114-1および第2遅延回路114-2のそれぞれの遅延量の設定は、プロセッサ111によって実行される。
【0042】
プロセッサ111は、例えばCPU(Central Processing Unit)である。プロセッサ111は、FPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)などのハードウェア回路によって実現されてもよい。
【0043】
プロセッサ111は、ホストHAからチャネルCH0を介して受けたコマンドを解析する。プロセッサ111は、解析結果に応じて、メモリチップCPに対するコマンドを発行することができる。
【0044】
また、プロセッサ111は、ホストHAから受けたコマンドが、メモリチップCP1,CP2にデータを出力させるコマンドであるデータ出力コマンド(Data Output command)である場合、データの出力元のメモリチップCP1,CP2を特定する。そして、プロセッサ111は、特定されたメモリチップCP1,CP2のそれぞれのREレイテンシに基づき、第1遅延回路114-1および第2遅延回路114-2のそれぞれに遅延量を設定する。
【0045】
なお、メモリチップCP毎のREレイテンシは、トレーニングにおいて計測される。より具体的には、ホストHAは、トレーニングの実行を指示するコマンド(トレーニング指示と表記する)をブリッジチップBCに発行することができる。ブリッジチップBCは、当該トレーニング指示に応じてトレーニングを開始する。トレーニングは、種々の項目にわたって各種の計測および各種の動作調整が実行される。トレーニングは、REレイテンシをメモリチップCP毎に計測して記憶する項目を含んでいる。
【0046】
計測回路113は、時間長さを計測する回路である。プロセッサ111は、計測回路113を用いてメモリチップCP毎にREレイテンシを計測し、計測値をレイテンシ情報116に記録する。レイテンシ情報116は、メモリ115に格納される。メモリ115は、例えばSRAM又はレジスタである。
【0047】
続いて、実施形態のメモリシステムSYSの動作を説明する。
【0048】
図3は、実施形態のメモリシステムSYSにおけるトレーニングに関する動作の一例を説明するためのシーケンス図である。
【0049】
メモリシステムSYSが起動すると、ホストHAおよびブリッジチップBCのそれぞれが起動する。ホストHAは、自身が起動すると、ブリッジチップBCにトレーニング指示を送信する(S101)。ブリッジチップBCは、トレーニング指示に応じてトレーニングを実行する(S102)。そして、ブリッジチップBCは、トレーニング結果に基づく動作を実行する(S103)。例えば、ブリッジチップBCは、並列リード動作においては、トレーニングによってメモリチップCP毎に得られたREレイテンシを用いて、リードイネーブル信号REnの送信開始のタイミングの調整を行う。
【0050】
各メモリチップCPのREレイテンシは、温度または供給される電源電圧などの変化によって変動し得る。動作中にメモリチップCPのREレイテンシが、最後にトレーニングが実行されたタイミングでのREレイテンシからずれると、チャネルCH1から並列リード制御回路112へのデータ列の入力開始のタイミングと、チャネルCH2から並列リード制御回路112へのデータ列の入力開始のタイミングと、が一致しなくなる場合がある。よって、メモリシステムSYSは、S103の後に、1回以上、トレーニングを実行することが可能に構成されている。
【0051】
チャネルCH1から並列リード制御回路112へのデータ列の入力開始のタイミングと、チャネルCH2から並列リード制御回路112へのデータ列の入力開始のタイミングと、が閾値以上ずれると、図2を用いて説明された結合方法では、期待されたデータ列が得られなくなる。ホストHAは、例えば、半導体記憶装置1からデータ信号H_DQ[7:0]として受信したデータ列が期待されたデータ列と異なる場合に、トレーニング指示を再び送信する。
【0052】
より具体的には、ホストHAは、半導体記憶装置1に格納するデータ列を予め誤り訂正符号化しておく。そして、ホストHAは、半導体記憶装置1からデータ信号H_DQ[7:0]として受信したデータ列に対して、誤り訂正符号を用いた復号を実行する。データ列が軽微な誤りを含んでいた場合、当該誤りは当該復号によって訂正される。データ列が誤り訂正符号によって訂正できない多くの誤りが含まれていた場合、復号による誤り訂正が失敗する(S104)。そのような場合、ホストHAは、期待されたデータ列を取得するために、トレーニングの再実行を含めた種々の処理を実行することができる。ホストHAは、トレーニングの再実行を決定すると(S105)、ブリッジチップBCにトレーニング指示を送信する(S106)。ブリッジチップBCは、トレーニング指示に応じてトレーニングを実行する(S107)。そして、ブリッジチップBCは、トレーニング結果に基づく動作を実行する(S108)。S108の後、S104~S108の処理が1回以上、実行され得る。
【0053】
なお、トレーニングの再実行のトリガは、ブリッジチップBCからのデータ列に対する誤り訂正が失敗することのみに限定されない。ホストHAは、メモリシステムSYSの温度または半導体記憶装置1に供給される電源電圧の変動を何らかの方法で検知した場合に、トレーニングの再実行を決定してもよい。または、ホストHAは、所定の周期でトレーニングの再実行を決定してもよい。また、ホストHAは、例えばメモリシステムSYSがアイドル状態のときなどにトレーニング指示をブリッジチップBCに送信してもよい。
【0054】
図4は、実施形態のブリッジチップBCによるトレーニングにおいてREレイテンシを計測する動作の一例を示すフローチャートである。
【0055】
ブリッジチップBCがトレーニング指示を受信すると、プロセッサ111は、当該トレーニング指示を解釈し、解釈に応じてトレーニングを開始する。トレーニングでは、プロセッサ111は、まず、チャネルCH1に接続された4つのメモリチップCP1のうちの1つを選択する(S201)。選択されたメモリチップCP1を、対象のメモリチップCP1と表記する。プロセッサ111は、対象のメモリチップCP1にリードイネーブル信号N1_REnを送信する(S202)。ブリッジチップBCは、対象のメモリチップCP1にリードイネーブル信号N1_REnを送信してから時間をおいて、対象のメモリチップCP1からデータストローブ信号N1_DQSを受信する(S203)。プロセッサ111は、対象のメモリチップCP1へのリードイネーブル信号N1_REnの送信を開始してから対象のメモリチップCP1からのデータストローブ信号N1_DQSの受信が開始するまでの時間、即ち対象のメモリチップCP1のREレイテンシ、を計測回路113に計測させる。S203の後、プロセッサ111は、対象のメモリチップCP1のREレイテンシの計測値を計測回路113から取得する(S204)。そして、プロセッサ111は、取得した対象のメモリチップCP1のREレイテンシの計測値を対象のメモリチップCP1と対応付けてレイテンシ情報116に記録する(S205)。
【0056】
S205に続いて、プロセッサ111は、4つのメモリチップCP1に未選択のメモリチップCP1が存在するか否かを判定する(S206)。4つのメモリチップCP1に未選択のメモリチップCP1が存在する場合(S206:Yes)、S201に制御が移行して、プロセッサ111は、未選択のメモリチップCP1のうちの1つを新たな対象のメモリチップCP1として選択する。
【0057】
4つのメモリチップCP1に未選択のメモリチップCP1が存在しない場合(S206:No)、プロセッサ111は、チャネルCH2に接続された4つのメモリチップCP2のうちの1つを選択する(S207)。選択されたメモリチップCP2を、対象のメモリチップCP2と表記する。プロセッサ111は、対象のメモリチップCP2にリードイネーブル信号N2_REnを送信する(S208)。ブリッジチップBCは、対象のメモリチップCP2にリードイネーブル信号N2_REnを送信してから時間をおいて、対象のメモリチップCP2からデータストローブ信号N2_DQSを受信する(S209)。プロセッサ111は、対象のメモリチップCP2へのリードイネーブル信号N2_REnの送信を開始してから対象のメモリチップCP2からのデータストローブ信号N2_DQSの受信が開始するまでの時間、即ち対象のメモリチップCP2のREレイテンシ、を計測回路113に計測させる。S209の後、プロセッサ111は、対象のメモリチップCP2のREレイテンシの計測値を計測回路113から取得する(S210)。そして、プロセッサ111は、取得した対象のメモリチップCP2のREレイテンシの計測値を対象のメモリチップCP2と対応付けてレイテンシ情報116に記録する(S211)。
【0058】
S211に続いて、プロセッサ111は、4つのメモリチップCP2に未選択のメモリチップCP2が存在するか否かを判定する(S212)。4つのメモリチップCP2に未選択のメモリチップCP2が存在する場合(S212:Yes)、S207に制御が移行して、プロセッサ111は、未選択のメモリチップCP2のうちの1つを新たな対象のメモリチップCP2として選択する。
【0059】
4つのメモリチップCP2に未選択のメモリチップCP2が存在しない場合(S212:No)、REレイテンシを計測する一連の動作が終了する。
【0060】
上記した動作によって、メモリチップCP毎にREレイテンシが計測され、メモリチップCP毎のREレイテンシの計測値がレイテンシ情報116に記録される。
【0061】
なお、図4に示した例では、チャネルCH1に接続された全メモリチップCP1のREレイテンシの計測が実行された後に、チャネルCH2に接続された全メモリチップCP2のREレイテンシの計測が実行された。REレイテンシの計測の順番はこれに限定されない。ブリッジチップBCは、チャネルCH1に接続された全メモリチップCP1のREレイテンシの計測と、チャネルCH2に接続された全メモリチップCP2のREレイテンシの計測と、を並列に実行するように構成されてもよい。
【0062】
図5は、実施形態の並列リード動作の一例を示すフローチャートである。
【0063】
ブリッジチップBCは、ホストHAからデータ出力コマンドを受信すると(S301)、並列リード動作を開始する。並列リード動作では、プロセッサ111は、まず、データ出力元のメモリチップCPをチャネル毎に特定する(S302)。プロセッサ111は、チャネルCH1に接続された4つのメモリチップCP1のうちの1つと、チャネルCH2に接続された4つのメモリチップCP2のうちの1つと、をデータ出力元として特定する。
【0064】
続いて、プロセッサ111は、特定した2つのデータ出力元のメモリチップCPのそれぞれにデータ出力コマンドを送信する(S303)。
【0065】
続いて、プロセッサ111は、メモリ115に格納されているレイテンシ情報116から、2つのデータ出力元のメモリチップCPのそれぞれのREレイテンシを取得する(S304)。そして、プロセッサ111は、2つのデータ出力元のメモリチップCPのうちのREレイテンシが小さい方のメモリチップCPが接続されたチャネルを特定し(S305)、2つのデータ出力元のメモリチップCPのREレイテンシ差を計算する(S306)。
【0066】
続いて、プロセッサ111は、第1遅延回路114-1および第2遅延回路114-2のうちの特定されたチャネルに対応する遅延回路の遅延量としてREレイテンシ差に相当する量を設定し、第1遅延回路114-1および第2遅延回路114-2のうちの他の遅延回路の遅延量としてゼロを設定する(S307)。
【0067】
続いて、ホストHAからリードイネーブル信号H_REnの受信が開始すると、並列リード制御回路112は、リードイネーブル信号H_REnの周波数を1/2に分周したリードイネーブル信号REnを生成し、当該リードイネーブル信号REnを第1遅延回路114-1および第2遅延回路114-2に共通入力する。第1遅延回路114-1および第2遅延回路114-2は、それぞれ設定された量だけ遅延させてリードイネーブル信号REnを出力する。これによって、ブリッジチップBCは、データ出力元のメモリチップCP1への第1遅延回路114-1を介したリードイネーブル信号REnの送信と、データ出力元のメモリチップCP2への第2遅延回路114-2を介したリードイネーブル信号REnの送信と、を並列に実行する(S308)。
【0068】
2つのデータ出力元のメモリチップCPのそれぞれは、リードイネーブル信号REnを受信すると、データ列の出力を開始する。2つのデータ出力元のメモリチップCPのそれぞれは、データ列の出力と同期してデータストローブ信号DQSを出力する。
【0069】
2つのデータ出力元のメモリチップCPのうちのREレイテンシが小さい方のメモリチップCPに入力されるリードイネーブル信号REnは、他方のメモリチップCPに入力されるリードイネーブル信号REnに比べてREレイテンシ差に応じた量だけ遅延せしめられている。このため、ブリッジチップBCにおける、データ出力元のメモリチップCP1からのデータ列の受信開始のタイミングと、データ出力元のメモリチップCP2からのデータ列の受信開始のタイミングと、が等しくなる。並列リード制御回路112は、同時に受信開始した2つのデータ出力元のメモリチップCP1からのデータ列を結合して1つのデータ列を生成し、ブリッジチップBCは、生成された1つのデータ列をホストHAに送信する(S309)。ホストHAへのデータ列の送信が完了すると、並列リード動作が終了する。
【0070】
図6は、実施形態の並列リード動作における各種信号の波形を示すタイミングチャートである。
【0071】
まず、ホストHAは、データ出力コマンドを送信する(S401)。S401では、ホストHAは、データ出力コマンドを表すコマンド値C1,C2の対のうちのコマンド値C1、出力対象のデータ列が記憶された位置を表すアドレス値ADR、および対のうちのコマンド値C2、をこの順で送信する。コマンド値C1,C2の送信の際には、ホストHAは、コマンドラッチイネーブル信号CLEをアクティブ状態(Hレベル)に維持するとともにライトイネーブル信号WEnをトグルする。アドレス値ADRの送信の際には、ホストHAは、アドレスラッチイネーブル信号ALEをアクティブ状態(Hレベル)に維持するとともに、ライトイネーブル信号WEnのトグルを行う。
【0072】
ブリッジチップBCは、データ出力コマンドを受信すると、受信したデータ出力コマンドをチャネルCH1およびチャネルCH2を介して2つのデータ出力元のメモリチップCPに並列に転送する(S402)。
【0073】
続いて、ホストHAは、リードイネーブル信号H_REn/REをHレベルからLレベルに遷移させ(S403)、リードイネーブル信号H_REnをHレベルからLレベルに遷移させてから予め決められた時間が経過した後に、リードイネーブル信号H_REn/REのトグルを開始する(S404)。
【0074】
ブリッジチップBCでは、並列リード制御回路112の機能により、リードイネーブル信号H_REnは、トグル周波数が1/2に分周されたうえで、第1遅延回路114-1および第2遅延回路114-2のそれぞれに共通入力される。第1遅延回路114-1および第2遅延回路114-2のそれぞれは、入力されたリードイネーブル信号REnを設定された遅延量だけ遅延させて出力する。第1遅延回路114-1から出力されたリードイネーブル信号REnは、リードイネーブル信号N1_REnとしてチャネルCH1に供給される。第1遅延回路114-2から出力されたリードイネーブル信号REnは、リードイネーブル信号N2_REnとしてチャネルCH2に供給される。
【0075】
よって、ブリッジチップBCは、S403によるリードイネーブル信号H_REnの遷移に応じてリードイネーブル信号N1_REnをHレベルからLレベルに遷移させ(S405)、その後、S404によるリードイネーブル信号H_REnのトグルに応じてリードイネーブル信号H_REnの1/2の周波数でリードイネーブル信号N1_REnのトグルを開始する(S406)。
【0076】
同様に、ブリッジチップBCは、S403によるリードイネーブル信号H_REnの遷移に応じてリードイネーブル信号N2_REnをHレベルからLレベルに遷移させ(S407)、その後、S404によるリードイネーブル信号H_REnのトグルに応じてリードイネーブル信号H_REnの1/2の周波数でリードイネーブル信号N2_REnのトグルを開始する(S408)。
【0077】
データ出力元のメモリチップCP1は、トグルされたリードイネーブル信号N1_REnが受信すると、データ列の出力およびデータストローブ信号N1_DQSのトグルを開始する(S409)。また、データ出力元のメモリチップCP2は、トグルされたリードイネーブル信号N2_REnが受信すると、データ列の出力およびデータストローブ信号N2_DQSのトグルを開始する(S410)。データ出力元のメモリチップCP1およびメモリチップCP2のそれぞれは、自身が受信したリードイネーブル信号REnの周波数と等しい周波数でデータストローブ信号DQSをトグルする。
【0078】
図6において、S406によってリードイネーブル信号N1_REnのトグルが開始してからS409によってデータ列の出力およびデータストローブ信号N1_DQSのトグルが開始するまでの期間L1が、データ出力元のメモリチップCP1のREレイテンシに該当する。また、S408によってリードイネーブル信号N2_REnのトグルが開始してからS410によってデータ列の出力およびデータストローブ信号N2_DQSのトグルが開始するまでの期間L2が、データ出力元のメモリチップCP2のREレイテンシに該当する。
【0079】
図6に示された例によれば、データ出力元のメモリチップCP2のREレイテンシL2は、データ出力元のメモリチップCP1のREレイテンシL1よりも大きい。REレイテンシL2とREレイテンシL1との差dLに相当する遅延量が、第1遅延回路114-1に設定され、第2遅延回路114-2の遅延量としてゼロが設定される。これによって、遅延量がゼロの場合にリードイネーブル信号N1_REnのトグルが開始するタイミングは、リードイネーブル信号N2_REnのトグルが開始するタイミング(即ちS408のタイミング)のタイミングよりもdLだけ遅延されたタイミング(即ちS406のタイミング)となる。その結果、データ出力元のメモリチップCP2のREレイテンシL2とデータ出力元のメモリチップCP1のREレイテンシL1との差dLがキャンセルされて、2つのデータ出力元のメモリチップCPがデータ列の出力を開始するタイミングが等しくされている。
【0080】
ブリッジチップBCでは、2つのデータ出力元のメモリチップCPからのデータ列の受信が同時に開始する。ブリッジチップBCは、2つのデータ出力元のメモリチップCPから受信したデータ列を、例えば図2を用いて説明された方法で結合して、結合によって生成された1つのデータ列の送信とデータストローブ信号H_DQSのトグルとを開始する(S411)。
【0081】
このように、ブリッジチップBCは、リードイネーブル信号N_REnの送信開始のタイミングを遅延回路114を用いてチャネル毎に調整することによって、2つのデータ出力元のメモリチップCPからのデータ列の受信開始のタイミングを揃える。その結果、ブリッジチップBCは、2つのデータ出力元のメモリチップCPからのデータ列を正しく結合することができるので、ブリッジチップBCは、期待されたデータをホストHAに出力することが可能である。
【0082】
なお、以上では、半導体記憶装置1は、ブリッジチップBCと複数のメモリチップCPとを接続する複数のチャネルとして、2つのチャネルCH1,CH2を備えるケースについて説明した。半導体記憶装置1は、ブリッジチップBCと複数のメモリチップCPとを接続する複数のチャネルとして、3以上のチャネルを備え得る。
【0083】
半導体記憶装置1が、ブリッジチップBCと複数のメモリチップCPとを接続する複数のチャネルとして、3以上のチャネルを備える場合、ブリッジチップBCは、並列リード動作では、それぞれは異なるチャネルに接続された3以上のメモリチップCPからデータ列を並列に受信することができる。ブリッジチップBCは、当該3以上のメモリチップCPへのリードイネーブル信号の送信開始のタイミングを、遅延回路によって調整することによって、当該3以上のメモリチップCPから出力されるデータ列の受信開始のタイミングを揃えることができる。
【0084】
より詳しくは、例えば、ブリッジチップBCは、チャネル毎に遅延回路を備え得る。プロセッサ111は、データ出力元の3以上のメモリチップCPのREレイテンシの計測値の最大値を取得する。プロセッサ111は、データ出力元の3以上のメモリチップCPのそれぞれのREレイテンシの計測値と当該最大値との差を、データ出力元の3以上のメモリチップCPのそれぞれが接続されたチャネルに対応する遅延回路の遅延量として設定する。これによって、データ出力元の3以上のメモリチップCPのREレイテンシのばらつきがキャンセルされて、データ出力元の3以上のメモリチップCPからのデータ列の受信開始のタイミングを揃えることが可能となる。
【0085】
なお、上記された例では、データ出力元の各メモリチップCPのREレイテンシの最大値からの差分に相当する遅延量が、対応する遅延回路に設定された。各遅延回路への遅延量の設定方法はこれに限定されない。プロセッサ111は、データ出力元の各メモリチップCPのREレイテンシの、固定値からの差分に相当する遅延量を、対応する遅延回路に設定してもよい。固定値は、データ出力元の各メモリチップCPのREレイテンシの最大値よりも大きな値となり得る。
【0086】
また、半導体記憶装置1が、ブリッジチップBCと複数のメモリチップCPとを接続する複数のチャネルとして、3以上のチャネルを備える場合、並列リード制御回路112は、3以上のメモリチップCPから同時に受信開始した3以上のデータ列を結合してホストHAに送信することができる。
【0087】
より詳しくは、例えば、並列リード制御回路112は、データ出力元の3以上のメモリチップCPからのデータ列を、チャネルのバス幅の単位で順番に取得して、順番に取得されたチャネルのバス幅の単位のデータをシリアルに結合することによって、1つのデータ列を生成することができる。
【0088】
なお、並列リード制御回路112によるデータ列の結合方法は、上記に限定されない。並列リード制御回路112は、任意の方法で複数のデータ列を1つに結合することができる。
【0089】
また、並列リード制御回路112は、データ出力元の2以上のメモリチップCPから同時に受信開始した2以上のデータ列を結合した場合、結合後のデータを、メモリチップCPの群が接続されたチャネルあたりの転送レートのN倍の転送レートでホストHAに送信する。ここで、Nは、データ出力元のメモリチップCPの数である。
【0090】
これによって、ホストHAと半導体記憶装置1との間の転送レートを向上させることが可能である。
【0091】
なお、結合後のデータの転送レートはメモリチップCPの群が接続されたチャネルあたりの転送レートのN倍でなくてもよい。
【0092】
また、ブリッジチップBCは、ホストHAから受信したトレーニング指示に応じてREレイテンシをメモリチップCP毎に計測する。ブリッジチップBCによるREレイテンシの計測は、例えばブリッジチップBCが自発的に実行してもよい。
【0093】
また、上記された実施形態の説明では、ブリッジチップBCは、チャネルCH1に対応する第1遅延回路114-1と、チャネルCH2に対応する第2遅延回路114-2と、を備え、第1遅延回路114-1および第2遅延回路114-2のそれぞれは遅延量が可変に構成された。遅延回路に関する構成はこれに限定されない。例えば、第1遅延回路114-1および第2遅延回路114-2のうちの1つは遅延量が固定され、第1遅延回路114-1および第2遅延回路114-2のうちの他の1つによって2つのデータ出力元のメモリチップCPのREレイテンシ差をキャンセルするように、ブリッジチップBCが構成されてもよい。または、ブリッジチップBCは、1つの遅延回路を備え、当該1つの遅延回路によって2つのデータ出力元のメモリチップCPのREレイテンシ差をキャンセルするように構成されてもよい。例えばブリッジチップBCが、ブリッジチップBCと複数のメモリチップCPとを接続する複数のチャネルとして、M(Mは2以上の整数)個のチャネルを備える場合、ブリッジチップBCは、遅延量が可変の遅延回路をM-1個備えている限り、M個のデータ出力元のメモリチップCP間のREレイテンシ差をキャンセルすることができる。つまり、M個のデータ出力元のメモリチップCPのうちの、REレイテンシが最大のメモリチップCPを除くM-1個のメモリチップCPのREレイテンシを調整すれば、当該M個のデータ出力元のメモリチップCPからのデータ列の受信開始のタイミングを揃えることが可能である。このように、リードイネーブル信号REnの送信開始のタイミングをチャネル単位で調整することで、M個のデータ出力元のメモリチップCPからのデータ列の受信開始のタイミングを揃えることが可能である。
【0094】
以上述べたように、実施形態によれば、ブリッジチップBCは、データ出力用のタイミング信号であるリードイネーブル信号REnの送信開始のタイミングを、遅延回路を用いてチャネル毎に調整することによって、データ出力元の2以上のメモリチップCPから出力されるデータ列の受信開始のタイミングを揃える。
【0095】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0096】
SYS メモリシステム、HA ホスト、1 半導体記憶装置、10 外部端子群、12 データ、101 第1インタフェース、102,102-1,102-2 第2インタフェース、103 コントローラ、111 プロセッサ、112 並列リード制御回路、113 計測回路、114-1 第1遅延回路、114-2 第2遅延回路、115 メモリ、116 レイテンシ情報。
図1
図2
図3
図4
図5
図6