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

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

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

特開2024-132591半導体装置、半導体記憶装置、およびメモリシステム
<>
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図1
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図2
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図3
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図4
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図5
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図6
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図7
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図8
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図9
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図10
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図11
  • 特開-半導体装置、半導体記憶装置、およびメモリシステム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132591
(43)【公開日】2024-10-01
(54)【発明の名称】半導体装置、半導体記憶装置、およびメモリシステム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20240920BHJP
   G06F 13/16 20060101ALI20240920BHJP
【FI】
G06F12/00 560B
G06F13/16 510F
G06F13/16 520C
G06F13/16 520B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023043425
(22)【出願日】2023-03-17
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】大友 吾一
(72)【発明者】
【氏名】鈴木 智明
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CB01
5B160MM01
(57)【要約】
【課題】データ転送の効率を向上させること。
【解決手段】半導体装置のコントローラは、第1データアウトプットコマンドの受信に応じて第1データアウトプットコマンドを第1メモリチップに送信し、第2データアウトプットコマンドの受信に応じて第2アウトプットコマンドを第2メモリチップに送信する。コントローラは、メモリコントローラから第1データアウトプットコマンドに対応した第1転送開始コマンドを受信する前に、第1転送開始コマンドを第1メモリチップに送信する。コントローラは、メモリコントローラから第2データアウトプットコマンドに対応した第2転送開始コマンドを受信する前に、第2転送開始コマンドを第2メモリチップに送信する。
【選択図】図6
【特許請求の範囲】
【請求項1】
メモリコントローラに第1チャネルを介して接続可能な第1インタフェースと、
複数のメモリチップに複数の第2チャネルを介して接続可能な第2インタフェースと、
バッファメモリと、
前記複数のメモリチップのうちの第1メモリチップに対する第1データアウトプットコマンドと、前記複数のメモリチップのうちの第2メモリチップに対する第2データアウトプットコマンドとを、前記第1インタフェースを介して前記メモリコントローラから受信し、前記第1メモリチップと前記第2メモリチップとは前記複数の第2チャネルのうちのそれぞれ異なる第2チャネルに接続されている、場合、
前記第1データアウトプットコマンドの受信に応じて前記第1データアウトプットコマンドを前記第1メモリチップに送信し、
前記第2データアウトプットコマンドの受信に応じて前記第2データアウトプットコマンドを前記第2メモリチップに送信し、
前記メモリコントローラから前記第1データアウトプットコマンドに対応した第1転送開始コマンドを受信する前に、前記第1転送開始コマンドを前記第1メモリチップに送信して、前記第1転送開始コマンドに応じて前記第1メモリチップから出力される第1リードデータ片の前記バッファメモリへの入力を開始し、
前記メモリコントローラから前記第2データアウトプットコマンドに対応した第2転送開始コマンドを受信する前に、前記第2転送開始コマンドを前記第2メモリチップに送信して、前記第2転送開始コマンドに応じて前記第2メモリチップから出力される第2リードデータ片の前記バッファメモリへの入力を開始し、
前記メモリコントローラから前記第1転送開始コマンドを受信すると、前記複数の第2チャネルのそれぞれにおける転送レートよりも速い転送レートでの前記バッファメモリから前記メモリコントローラへの前記第1リードデータ片の出力を開始し、
前記メモリコントローラから前記第2転送開始コマンドを受信すると、前記複数の第2チャネルのそれぞれにおける転送レートよりも速い転送レートでの前記バッファメモリから前記メモリコントローラへの前記第2リードデータ片の出力を開始する、
ように構成されたコントローラと、
を備える半導体装置。
【請求項2】
前記コントローラは、
前記第1メモリチップからの前記第1リードデータ片の前記バッファメモリへ入力する期間と一部または全部が重複する期間に、前記第2メモリチップからの前記第2リードデータ片の前記バッファメモリへの入力を実行し、
前記バッファメモリから前記メモリコントローラへの前記第1リードデータ片の出力と、前記バッファメモリから前記メモリコントローラへの前記第2リードデータ片の出力と、をシリアルに実行する、
ように構成される、
請求項1に記載の半導体装置。
【請求項3】
前記コントローラは、
前記第1データアウトプットコマンドを受信した後に前記複数のメモリチップのうちの第3メモリチップに対する第3データアウトプットコマンドを受信し、前記第3メモリチップは前記複数の第2チャネルのうちの前記第1メモリチップと同じ第2チャネルに接続されている、場合、
前記第1リードデータ片の前記バッファメモリへの入力を完了した後、前記メモリコントローラから前記第3データアウトプットコマンドに対応した第3転送開始コマンドを受信する前に、前記第3転送開始コマンドを前記第3メモリチップに送信して、前記第3転送開始コマンドに応じて前記第3メモリチップから出力される第3リードデータ片の前記バッファメモリへの入力を開始する、
ように構成される、
請求項1に記載の半導体装置。
【請求項4】
前記コントローラは、
前記メモリコントローラから前記第1転送開始コマンドを受信する前に前記第1データアウトプットコマンドに対応した第1プリフェッチコマンドを受信した場合、前記第1プリフェッチコマンドに応じて前記第1転送開始コマンドを前記第1メモリチップに送信し、
前記メモリコントローラから前記第2データアウトプットコマンドに対応した第2転送開始コマンドを受信する前に前記第2データアウトプットコマンドに対応した第2プリフェッチコマンドを受信した場合、前記第2プリフェッチコマンドに応じて前記第2転送開始コマンドを前記第2メモリチップに送信する、
ように構成される、
請求項1に記載の半導体装置。
【請求項5】
前記コントローラは、
前記複数のメモリチップのうちの第4メモリチップに対する第4データアウトプットコマンドと、前記複数のメモリチップのうちの第5メモリチップに対する第5データアウトプットコマンドと、を前記メモリコントローラからこの順で受信し、前記第4メモリチップと前記第5メモリチップとは前記複数の第2チャネルのうちの共通の第2チャネルに接続され、前記メモリコントローラから前記第5データアウトプットコマンドに対応した第5転送開始コマンドを受信する前に、かつ、前記メモリコントローラから前記第4データアウトプットコマンドに対応した第4プリフェッチコマンドを受信する前に、前記第5データアウトプットコマンドに対応した第5プリフェッチコマンドを受信した場合、前記第5プリフェッチコマンドに応じて前記第5転送開始コマンドを前記第5メモリチップに送信して、前記第5転送開始コマンドに応じて前記第5メモリチップから出力される第5リードデータ片の前記バッファメモリへの入力を開始し、
前記第5リードデータ片の前記バッファメモリへの入力の完了後、前記第4プリフェッチコマンドを受信した場合、前記第4プリフェッチコマンドに応じて第4転送開始コマンドを前記第4メモリチップに送信して、前記第4転送開始コマンドに応じて前記第4メモリチップから出力される第4リードデータ片の前記バッファメモリへの入力を開始する、
請求項4に記載の半導体装置。
【請求項6】
請求項1から請求項5の何れか1つに記載の半導体装置と、
前記複数のメモリチップと、
を備える半導体記憶装置。
【請求項7】
請求項6に記載の半導体記憶装置と、
前記メモリコントローラと、
を備えるメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、半導体装置、半導体記憶装置、およびメモリシステムに関する。
【背景技術】
【0002】
外部のコントローラ(以降、メモリコントローラと表記する)に接続される外部端子群とメモリチップの群との間にブリッジチップと称される半導体装置を配した半導体記憶装置がある。この半導体記憶装置では、メモリコントローラと複数のメモリチップとの間のデータ転送がブリッジチップを介して行われる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-146543号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つの実施形態は、データ転送の効率を向上させることができる半導体装置、半導体記憶装置、およびメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【0005】
一つの実施形態によれば、半導体装置は、第1インタフェースと、第2インタフェースと、バッファメモリと、コントローラと、を備える。第1インタフェースは、メモリコントローラに第1チャネルを介して接続可能である。第2インタフェースは、複数のメモリチップに複数の第2チャネルを介して接続可能である。コントローラは、複数のメモリチップのうちの第1メモリチップに対する第1データアウトプットコマンドと、複数のメモリチップのうちの第2メモリチップに対する第2データアウトプットコマンドとを、第1インタフェースを介してメモリコントローラから受信し、第1メモリチップと第2メモリチップとは複数の第2チャネルのうちのそれぞれ異なる第2チャネルに接続されている、場合、次のように動作する。即ち、コントローラは、第1データアウトプットコマンドの受信に応じて第1データアウトプットコマンドを第1メモリチップに送信し、第2データアウトプットコマンドの受信に応じて第2アウトプットコマンドを第2メモリチップに送信する。コントローラは、メモリコントローラから第1データアウトプットコマンドに対応した第1転送開始コマンドを受信する前に、第1転送開始コマンドを第1メモリチップに送信して、第1転送開始コマンドに応じて第1メモリチップから出力される第1リードデータ片のバッファメモリへの入力を開始する。コントローラは、メモリコントローラから第2データアウトプットコマンドに対応した第2転送開始コマンドを受信する前に、第2転送開始コマンドを第2メモリチップに送信して、第2転送開始コマンドに応じて第2メモリチップから出力される第2リードデータ片のバッファメモリへの入力を開始する。コントローラは、メモリコントローラから第1転送開始コマンドを受信すると、複数の第2チャネルのそれぞれにおける転送レートよりも速い転送レートでのバッファメモリからメモリコントローラへの第1リードデータ片の出力を開始する。コントローラは、メモリコントローラから第2転送開始コマンドを受信すると、複数の第2チャネルのそれぞれにおける転送レートよりも速い転送レートでのバッファメモリからメモリコントローラへの第2リードデータ片の出力を開始する。
【図面の簡単な説明】
【0006】
図1】第1の実施形態にかかるメモリシステムの構成の一例を示す模式的な図。
図2】第1の実施形態の各メモリチップに与えられたLUNについて説明するための模式的な図。
図3】第1の実施形態のリード動作に使用されるコマンドシーケンスの一例を示す模式的な図。
図4】第1の実施形態にかかる転送回路の構成の一例を示す模式的な図。
図5】第1の実施形態にかかるリードデータ片の転送の一例を示す模式的な図。
図6】第1の実施形態にかかるメモリシステムにおけるリード動作にかかる複数のコマンドシーケンスの転送の一例を示すタイミングチャート。
図7】第1の実施形態のブリッジチップによるデータアウトプットコマンドCdoを転送する動作の一例を示すフローチャート。
図8】第1の実施形態のブリッジチップによる転送開始コマンドおよび転送終了コマンドの送信の動作の一例を示すフローチャート。
図9】第1の実施形態のブリッジチップの、メモリコントローラに対するリードデータ片の出力にかかる一連の動作の一例を示すフローチャート。
図10】第2の実施形態にかかるメモリシステムにおけるリード動作にかかる複数のコマンドシーケンスの転送の一例を示すタイミングチャート。
図11】第2の実施形態のブリッジチップによるデータアウトプットコマンドを転送する動作の一例を示すフローチャート。
図12】第2の実施形態のブリッジチップによる転送開始コマンドおよび転送終了コマンドの送信の動作の一例を示すフローチャート。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、実施形態にかかる半導体装置、半導体記憶装置、およびメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0008】
(第1の実施形態)
図1は、第1の実施形態にかかるメモリシステムSYSの構成の一例を示す模式的な図である。
【0009】
メモリシステムSYSは、メモリコントローラMCおよび半導体記憶装置1を含む。半導体記憶装置1は、外部端子群10、ブリッジチップBC、および複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3を備える。ブリッジチップBCは半導体装置の一例である。
【0010】
半導体記憶装置1は、メモリチップCP0-0~CP0-3およびメモリチップCP1-0~CP1-3が積層されたMCP(Multi Chip Package)として実装され得る。半導体記憶装置1がMCPとして実装される場合、半導体記憶装置1では、ブリッジチップBCおよび複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3の周囲が、モールド樹脂で封止されていてもよい。
【0011】
図1では、メモリチャネルMCH0を介してブリッジチップBCに4つのメモリチップCP0-0~CP0-3が接続され、メモリチャネルMCH1を介してブリッジチップBCに4つのメモリチップCP1-0~CP1-3が接続される構成が例示されている。すなわち、半導体記憶装置1は、複数の(ここでは8個)メモリチップCP0-0~CP0-3,CP1-0~CP1-3を含むマルチメモリチップモジュールとして構成され得る。
【0012】
各メモリチップCP0-0~CP0-3,CP1-0~CP1-3は、例えば、NAND型フラッシュメモリ等の不揮発性メモリのメモリチップである。なお、半導体記憶装置1が備えるメモリチップCPの数は8個に限定されない。また、ブリッジチップBCと複数のメモリチップCPとを接続するメモリチャネルMCHの数は2個に限定されない。
【0013】
半導体記憶装置1は、有線通信路を介してメモリコントローラMCに接続可能である。この有線通信路は、ホストチャネルHCHと表記される。ホストチャネルHCHは、所定の規格に基づき構成される。各メモリチップCP0-0~CP0-3,CP1-0~CP1-3がNAND型フラッシュメモリである場合、所定の規格は、例えば、SCA規格である。
【0014】
ブリッジチップBCは、複数(ここでは2個)のメモリチャネルMCHに電気的に接続されている。複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3は、それぞれメモリチャネルMCH0,MCH1を介してブリッジチップBCに接続されている。メモリチップCP0-0~CP0-3は、所定の規格に基づき構成されたメモリチャネルMCH0に接続されている。メモリチップCP1-0~CP1-3は、所定の規格に基づき構成されたメモリチャネルMCH1に接続されている。各メモリチップCPがNAND型フラッシュメモリである場合、所定の規格は、例えば、SCA規格である。以降、各メモリチップCPはNAND型のフラッシュメモリであり、所定の規格はSCA規格であることとする。
【0015】
ホストチャネルHCHは、チップイネーブル信号CEnを転送する信号線、コマンド/アドレス信号CA[0]を転送する信号線、コマンド/アドレス信号CA[1]を転送する信号線、コマンド/アドレスストローブ信号CA_Sを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、所定のビット幅(ここでは一例として8ビットの幅)を有するデータ信号DQ[7:0]を転送する信号線、およびリードイネーブル信号RE/REnを転送する信号線を含む。なお、信号を表す符号の末尾に記された「n」は、負論理で動作せしめられる信号であることを表す。各信号が負論理で動作せしめられるか正論理で動作せしめられるかは任意に設計され得る。
【0016】
チップイネーブル信号CEnは、アクセスの対象のメモリチップCPをイネーブル状態とするための信号である。データストローブ信号DQS/DQSnは、データ信号DQ[7:0]で送信されるデータを相手装置に取り込むように指示する信号である。データストローブ信号DQS/DQSnは、データストローブ信号DQSとデータストローブ信号DQSnとによって構成される差動信号である。リードイネーブル信号RE/REnは、データ信号DQ[7:0]を出力するように相手装置に指示する信号である。リードイネーブル信号RE/REnは、リードイネーブル信号REおよびリードイネーブル信号REnによって構成される差動信号である。
【0017】
コマンド/アドレス信号CA[0]およびコマンド/アドレス信号CA[1]は、コマンド信号またはアドレス信号である。コマンド/アドレス信号CA[0]およびコマンド/アドレス信号CA[1]のそれぞれは1ビット幅の信号であり、コマンド/アドレス信号CA[0]およびコマンド/アドレス信号CA[1]によって、コマンド信号およびアドレス信号を2ビット幅の信号として転送することが可能になっている。コマンド/アドレスストローブ信号CA_Sは、コマンド/アドレス信号CA[0]およびコマンド/アドレス信号CA[1]の転送のためのストローブ信号である。以降、コマンド/アドレス信号CA[0]およびコマンド/アドレス信号CA[1]をまとめて、信号CAと表記する。
【0018】
SCA規格によれば、信号CAは、データ信号DQ[7:0]とは異なる信号線群を用いて転送される。よって、ホストチャネルHCHにおいてデータ信号DQ[7:0]を転送中にホストチャネルHCHにおける信号CAの転送が可能である。
【0019】
メモリチャネルMCH0,MCH1のそれぞれは、ホストチャネルHCHの信号群と同種の信号群を送受信できる。即ち、メモリチャネルMCH0,MCH1のそれぞれは、チップイネーブル信号CEnを転送する信号線、コマンド/アドレス信号CA[0]を転送する信号線、コマンド/アドレス信号CA[1]を転送する信号線、コマンド/アドレスストローブ信号CA_Sを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、所定のビット幅(ここでは一例として8ビットの幅)を有するデータ信号DQ[7:0]を転送する信号線、およびリードイネーブル信号RE/REnを転送する信号線を含む。
【0020】
なお、ホストチャネルHCHは、第1チャネルの一例である。メモリチャネルMCH0,MCH1は、複数の第2チャネルの一例である。
【0021】
ブリッジチップBCは、第1インタフェース101と、2つの第2インタフェース102と、コントローラ103と、を備える。
【0022】
第1インタフェース101は、メモリコントローラMCに対してホストチャネルHCHを介した電気信号の送受信を行うPHY回路である。
【0023】
2つの第2インタフェース102のうちの第2インタフェース102-0は、4個のメモリチップCP0-0~CP0-3に対してメモリチャネルMCH0を介した電気信号の送受信を行うPHY回路である。2つの第2インタフェース102のうちの第2インタフェース102-1は、4個のメモリチップCP1-0~CP1-3に対してメモリチャネルMCH1を介した電気信号の送受信を行うPHY回路である。
【0024】
コントローラ103は、第1インタフェース101と、2つの第2インタフェース102と、の間に配されている。コントローラ103は、第1インタフェース101と、2つの第2インタフェース102と、の間の情報の授受を制御する。
【0025】
コントローラ103は、プロセッサ111、転送回路112、およびレジスタ113を有する。
【0026】
プロセッサ111は、メモリコントローラMCからホストチャネルHCHを介して受けたコマンドを解析する。プロセッサ111は、解析結果に応じて、メモリチップCPに対するコマンドを発行することができる。
【0027】
レジスタ113は、ブリッジチップBCの動作を制御するための設定情報が格納されるメモリである。設定情報は、特定の情報に限定されない。設定情報は、例えば、リード対象のデータのサイズを指定する情報であってもよい。設定情報は、メモリコントローラMCから送られてきて、ブリッジチップBCに格納される。コントローラ103は、設定情報に従った動作を実行する。
【0028】
転送回路112は、第1インタフェース101と2つの第2インタフェース102との間の信号の転送を実行する。転送回路112は、第1インタフェース101と2つの第2インタフェース102との間の信号の転送の際には、並列的に使用されるメモリチャネルMCHの数に応じて転送レートの変更を実行することができる。
【0029】
各メモリチップCPは、メモリセルアレイを備え、メモリセルアレイにデータを不揮発に記憶することができる。メモリセルアレイは、複数のブロックを備え、複数のブロックのそれぞれは複数のページを備える。ブロックは、それに格納されたデータが一括に消去される単位領域である。ページは、それに対するライトまたはリードが一括に実行される単位領域である。
【0030】
各メモリチップCPには、半導体記憶装置1内でユニークな識別番号であるLUN(Logical Unit Number)が与えられている。
【0031】
図2は、第1の実施形態の各メモリチップCPに与えられたLUNについて説明するための模式的な図である。
【0032】
図2に示される例では、メモリチップCP0-0にはLUN0、メモリチップCP0-1にはLUN1、メモリチップCP0-2にはLUN2、メモリチップCP0-3にはLUN3、メモリチップCP1-0にはLUN4、メモリチップCP1-1にはLUN5、メモリチップCP1-2にはLUN6、メモリチップCP1-3にはLUN7が与えられている。
【0033】
ライト動作やリード動作においては、ライト動作やリード動作の対象のメモリチップCPは、LUNまたはLUNを含むアドレスによって指定される。
【0034】
図3は、第1の実施形態のリード動作に使用されるコマンドシーケンスの一例を示す模式的な図である。本図には、CA信号およびDQ信号の模式的な波形が示されている。
【0035】
リード動作に使用されるコマンドシーケンスは、データアウトプットコマンドCdo、転送開始コマンドCs、および転送終了コマンドCtを含む。
【0036】
コマンドシーケンスの送信側の装置(以降、送信装置と表記する)は、まず、データアウトプットコマンドCdoを送信する。データアウトプットコマンドCdoは、データアウトプットコマンドCdoのコマンド識別子およびリード位置を示すアドレスを含む。なお、このアドレスには、LUNが含まれている。
【0037】
データアウトプットコマンドCdoに含まれるLUNによって指定されたメモリチップCPは、データアウトプットコマンドCdoを受信すると、データアウトプットコマンドCdoに応じて、リードが要求されたデータ(リードデータ片と表記する)をメモリチップCP内のバッファ(不図示)に準備する。
【0038】
送信装置は、データアウトプットコマンドCdoの送信後から所定時間以上の時間の経過後、転送開始コマンドCsを送信する。転送開始コマンドCsは、リードデータ片の出力の開始を指示するコマンドである。転送開始コマンドCsは、転送開始コマンドCsのコマンド識別子のほかに少なくともLUNを含む。つまり、送信装置は、リードデータ片の出力元のメモリチップCPを指定することが可能である。
【0039】
転送開始コマンドCsに応じて送信装置へのリードデータ片の出力が開始される。出力されるリードデータ片の受信が完了すると、送信装置は、転送終了コマンドCtを転送する。
【0040】
なお、SCA規格によれば、一対の転送開始コマンドCsと転送終了コマンドCtとが送信される期間に、転送開始コマンドCsと転送終了コマンドCtとの別の対の一部および全部のいずれも送信が禁止される。送信装置は、一対の転送開始コマンドCsと転送終了コマンドCtの送信が完了した後であれば、別の一対の転送開始コマンドCsと転送終了コマンドCtを送信することが可能である。つまり、送信装置は、一つのリードデータ片の受信動作が完了した後、次のリードデータ片の受信動作を開始することができる。
【0041】
なお、リードデータ片の受信動作は、転送開始コマンドCsの送信と、転送開始コマンドCsに応じて出力されるリードデータ片の受信と、転送終了コマンドCtの送信と、を含む。
【0042】
図4は、第1の実施形態にかかる転送回路112の構成の一例を示す模式的な図である。
【0043】
転送回路112は、セレクタ120および2つのバッファメモリ121-0,121-1を備える。
【0044】
2つのバッファメモリ121-0,121-1のそれぞれは、少なくとも1ページのサイズの容量を備える。2つのバッファメモリ121-0,121-1のそれぞれは、例えばSRAM(Static Random Access Memory)によって構成される。なお、2つのバッファメモリ121-0,121-1のそれぞれを構成するメモリの種類はこれに限定されない。
【0045】
バッファメモリ121-0は、第2インタフェース102-0に接続されている。バッファメモリ121-0は、第2インタフェース102-1およびメモリチャネルMCH0を介したメモリチップCP0-0~CP0-3に対するデータ転送に使用される。
【0046】
バッファメモリ121-1は、第2インタフェース102-1に接続されている。バッファメモリ121-1は、第2インタフェース102-1およびメモリチャネルMCH1を介したメモリチップCP1-0~CP1-3に対するデータ転送に使用される。
【0047】
また、バッファメモリ121-0およびバッファメモリ121-1は、セレクタ120に接続されている。セレクタ120は、第1インタフェース101に接続されている。
【0048】
プロセッサ111は、メモリコントローラMCに対してホストチャネルHCHおよび第1インタフェース101を介したデータ転送を実行する際に、セレクタ120を制御する。これによって、プロセッサ111は、バッファメモリ121-0,121-1のうちから実行するデータ転送に使用するバッファメモリ121を選択する。
【0049】
例えば、プロセッサ111がバッファメモリ121-0を選択すると、メモリチップCP0-0~CP0-3から出力されてバッファメモリ121-0が受けたデータをメモリコントローラMCに転送することができる。また、プロセッサ111がバッファメモリ121-0を選択すると、メモリコントローラMCから転送されてくるメモリチップCP0-0~CP0-3を宛先としたデータをバッファメモリ121-0に受けることができる。
【0050】
また、例えば、プロセッサ111がバッファメモリ121-1を選択すると、メモリチップCP1-0~CP1-3から出力されてバッファメモリ121-1が受けたデータをメモリコントローラMCに転送することができる。また、プロセッサ111がバッファメモリ121-1を選択すると、メモリコントローラMCから転送されてくるメモリチップCP1-0~CP1-3を宛先としたデータをバッファメモリ121-1に受けることができる。
【0051】
複数のメモリチャネルMCH0,MCH1が並列的に使用される場合、ホストチャネルHCHにおけるデータの転送レートは、複数のメモリチャネルMCH0,MCH1のそれぞれにおけるデータの転送レートの複数倍とされる。メモリチャネルMCH0,MCH1のそれぞれにおけるデータの転送レートをR[Gbps]と表した場合、ここでは一例として、ホストチャネルHCHにおけるデータの転送レートは2R[Gbps]とされる。
【0052】
転送回路112においては、バッファメモリ121-0,バッファメモリ121-1のそれぞれに対する第2インタフェース102-0,102-1を介したデータの入出力は、R[Gbps]の転送レートで実行される。バッファメモリ121-0,バッファメモリ121-1のそれぞれに対する第1インタフェース101およびセレクタ120を介したデータの入出力は、2R[Gbps]の転送レートで実行される。
【0053】
ホストチャネルHCHにおける転送レートは、メモリチャネルMCHにおける転送レートよりも速いため、リード動作においては、メモリチップCPからバッファメモリ121へのリードデータ片の入力が開始された後にバッファメモリ121からメモリコントローラMCへの当該リードデータ片の出力を開始できない期間が生じる。
【0054】
図5は、第1の実施形態にかかるリードデータ片の転送の一例を示す模式的な図である。
【0055】
図5に示される例では、タイミングt0において、或るメモリチップCPからブリッジチップBCへのR[Gbps]の転送レートでのリードデータ片の転送が開始される。ブリッジチップBCは、そのメモリチップCPに対応したバッファメモリ121に当該リードデータ片を受ける。
【0056】
バッファメモリ121にR[Gbps]で入力されるリードデータ片を2R[Gbps]の転送レートでメモリコントローラMCに滞りなく出力するためには、リードデータ片の出力の開始の時点でリードデータ片の少なくとも半量がバッファメモリ121に格納済みである必要がある。よって、リードデータ片の半量のバッファメモリ121への格納が完了したタイミングt1において、ブリッジチップBCからメモリコントローラMCへのリードデータ片の転送が開始される。
【0057】
このような、リードデータ片をメモリコントローラMCに滞りなく転送するために実行される、リードデータ片の一部をバッファメモリ121にバッファリングする動作を、プリフェッチ動作と表記する。そして、プリフェッチ動作によって生じる待ち時間を、プリフェッチ時間tpfと表記する。
【0058】
ここで、実施形態と比較される技術について説明する。実施形態と比較される技術を比較例と表記する。
【0059】
比較例によれば、メモリコントローラは、ブリッジチップに対して、一対の転送開始コマンドCsと転送終了コマンドCtの送信が完了した後、別の一対の転送開始コマンドCsと転送終了コマンドCtを送信する。ブリッジチップは、メモリコントローラから受信した転送開始コマンドCsと転送終了コマンドCtとの各対を、それぞれの宛先のメモリチップにそのまま転送する。換言すると、ブリッジチップは一対の転送開始コマンドCsと転送終了コマンドCtの転送が完了した後、別の一対の転送開始コマンドCsと転送終了コマンドCtを転送する。
【0060】
つまり、ブリッジチップは、メモリチップの群からの複数のリードデータ片の受信を時間的にシリアルに実行する。よって、メモリコントローラとブリッジチップとのデータ転送に着目した場合、リードデータ片の転送毎にプリフェッチ時間tpfが発生し、データ転送の効率が悪い。
【0061】
第1の実施形態では、ブリッジチップBCは、メモリコントローラMCから異なるメモリチャネルMCHに接続された複数のメモリチップCPに対するデータアウトプットコマンドCdoを受信している場合には、メモリコントローラMCからの転送開始コマンドCsの受信を待たずに自律的にそれぞれの宛先のメモリチップCPに対する転送開始コマンドCsの転送を行うことが可能に構成される。これによって、ブリッジチップBCは、或るリードデータ片にかかるプリフェッチ時間tpfに、別のリードデータ片をメモリコントローラMCに転送することが可能になり、データ転送の効率が向上する。
【0062】
図6は、第1の実施形態にかかるメモリシステムSYSにおけるリード動作にかかる複数のコマンドシーケンスの転送の一例を示すタイミングチャートである。
【0063】
図6以降では、各転送終了コマンドCtがどの転送開始コマンドCsに対応するものであるかを理解できるようにするために、各転送終了コマンドCtにはLUNが含まれている。
【0064】
ホストチャネルHCHにおいては、メモリコントローラMCは、ブリッジチップBCに対し、LUN0を対象としたデータアウトプットコマンドCdo、LUN4を対象としたデータアウトプットコマンドCdo、LUN0を対象とした転送開始コマンドCs、LUN1を対象としたデータアウトプットコマンドCdo、LUN5を対象としたデータアウトプットコマンドCdo、LUN0を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、LUN4を対象とした転送開始コマンドCs、LUN4を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、LUN1を対象とした転送開始コマンドCs、LUN1を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、LUN5を対象とした転送開始コマンドCs、およびLUN5を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、をこの順番で送信している。
【0065】
転送開始コマンドCsと転送終了コマンドCtとの対だけに着目した場合、LUN0を対象とした対、LUN4を対象とした対、LUN1を対象とした対、およびLUN5を対象とした対、がこの順番でシリアルにメモリコントローラMCからブリッジチップBCに転送されている。
【0066】
ブリッジチップBCがメモリコントローラMCからLUN0を対象としたデータアウトプットコマンドCdoを受信すると、ブリッジチップBCのコントローラ103は、LUN0を対象としたデータアウトプットコマンドCdoを、メモリチャネルMCH0を介してLUN0のメモリチップCP0-0に送信する(S1)。
【0067】
LUN0を対象としたデータアウトプットコマンドCdoのメモリチップCP0-0への送信の後から準備時間twが経過すると、コントローラ103は、自律的に、メモリチャネルMCH0を介してLUN0のメモリチップCP0-0にLUN0を対象とした転送開始コマンドCsを送信する(S2)。このとき、コントローラ103は、メモリコントローラMCから、LUN0を対象とした転送開始コマンドCsを受信していない。
【0068】
メモリチップCP0-0、即ちLUN0のメモリチップCP、は、転送開始コマンドCsに応じてリードデータの出力を開始し(S3)、コントローラ103は、当該リードデータのバッファメモリ121(より正確にはバッファメモリ121-0)への入力を開始する。
【0069】
メモリコントローラMCは、LUN0を対象としたデータアウトプットコマンドCdoのブリッジチップBCへの送信の後から準備時間twとプリフェッチ時間tpfの経過の後に、ブリッジチップBCにLUN0を対象とした転送開始コマンドCsを送信する(S4)。このとき、ブリッジチップBCにおいては、LUN0を対象とした転送開始コマンドCsのメモリチップCP0-0への送信が完了してからプリフェッチ時間tpfが経過している。従って、バッファメモリ121-0にはメモリチップCP0-0に対してリードが要求されたリードデータ片のうちの半量がバッファリングされている。よって、ブリッジチップBCは、バッファメモリ121-0からのリードデータ片の出力を開始する(S5)。
【0070】
ブリッジチップBCは、メモリチップCP0-0からのリードデータ片の受信中にLUN1を対象としたデータアウトプットコマンドCdoを受信し、LUN1を対象としたデータアウトプットコマンドCdoを、メモリチャネルMCH0を介してLUN1のメモリチップCP0-1に送信する(S6)。
【0071】
メモリチップCP0-0からのリードデータ片の受信が終了すると、コントローラ103は、自律的に、メモリチャネルMCH0を介してLUN0のメモリチップCP0-0にLUN0を対象とした転送開始コマンドCsに対応した転送終了コマンドCtを送信する(S7)。
【0072】
LUN1を対象としたデータアウトプットコマンドCdoの送信後から準備時間twの時間が経過し、かつLUN0を対象とした転送開始コマンドCsに対応した転送終了コマンドCtの送信が完了すると、コントローラ103は、自律的に、メモリチャネルMCH0を介してLUN1のメモリチップCP0-1にLUN1を対象とした転送開始コマンドCsを送信する(S8)。このとき、コントローラ103は、メモリコントローラMCから、LUN1を対象とした転送開始コマンドCsを受信していない。
【0073】
なお、図6に示された例においては、LUN1を対象としたデータアウトプットコマンドCdoの送信後から時間(tw+α1)が経過したタイミングでは、LUN0を対象とした転送開始コマンドCsに対応した転送終了コマンドCtの送信が完了している。これに従って、LUN1を対象とした転送開始コマンドCsがメモリチップCP0-1に送信されている。
【0074】
メモリチップCP0-1、即ちLUN1のメモリチップCP、は、転送開始コマンドCsに応じてリードデータの出力を開始し(S9)、コントローラ103は、当該リードデータのバッファメモリ121(より正確にはバッファメモリ121-0)への入力を開始する。
【0075】
また、ブリッジチップBCがメモリコントローラMCからLUN4を対象としたデータアウトプットコマンドCdoを受信すると、コントローラ103は、LUN4を対象としたデータアウトプットコマンドCdoを、メモリチャネルMCH1を介してLUN4のメモリチップCP1-0に送信する(S11)。
【0076】
LUN4を対象としたデータアウトプットコマンドCdoのメモリチップCP1-0への送信の後から準備時間twが経過すると、コントローラ103は、自律的に、メモリチャネルMCH1を介してLUN4のメモリチップCP1-0にLUN4を対象とした転送開始コマンドCsを送信する(S12)。このとき、コントローラ103は、メモリコントローラMCから、LUN4を対象とした転送開始コマンドCsを受信していない。
【0077】
メモリチップCP1-0、即ちLUN4のメモリチップCP、は、転送開始コマンドCsに応じてリードデータの出力を開始し(S13)、コントローラ103は、当該リードデータのバッファメモリ121(より正確にはバッファメモリ121-1)への入力を開始する。
【0078】
コントローラ103は、メモリチップCP1-0からのリードデータ片の受信中にLUN5を対象としたデータアウトプットコマンドCdoを受信し、LUN5を対象としたデータアウトプットコマンドCdoを、メモリチャネルMCH1を介してLUN5のメモリチップCP1-1に送信する(S14)。
【0079】
メモリチップCP1-0からのリードデータ片の受信が終了すると、コントローラ103は、自律的に、メモリチャネルMCH1を介してLUN4のメモリチップCP1-0にLUN4を対象とした転送開始コマンドCsに対応した転送終了コマンドCtを送信する(S15)。
【0080】
LUN5を対象としたデータアウトプットコマンドCdoの送信後から準備時間twの時間が経過し、かつLUN4を対象とした転送開始コマンドCsに対応した転送終了コマンドCtの送信が完了すると、コントローラ103は、自律的に、メモリチャネルMCH1を介してLUN5のメモリチップCP1-1にLUN5を対象とした転送開始コマンドCsを送信する(S16)。このとき、コントローラ103は、メモリコントローラMCから、LUN5を対象とした転送開始コマンドCsを受信していない。
【0081】
図6に示された例においては、LUN5を対象としたデータアウトプットコマンドCdoの送信後から時間(tw+α2)が経過したタイミングでは、LUN4を対象とした転送開始コマンドCsに対応した転送終了コマンドCtの送信が完了している。これに従って、LUN5を対象とした転送開始コマンドCsがメモリチップCP1-1に送信されている。
【0082】
メモリコントローラMCは、ブリッジチップBCに対して、LUN0、LUN4、LUN1、LUN5の順に、それぞれを指定したデータアウトプットコマンドCdoを送信している。ブリッジチップBCのコントローラ103は、受信したこれらのデータアウトプットコマンドCdoに基づき、メモリチャネルMCH0を介しては、LUN0、LUN1に対してこの順に、メモリチャネルMCH1を介しては、LUN4、LUN5の順に、自律的に転送開始コマンドCsの送信、リードデータ片の受信、および転送終了コマンドCtの送信を実行する。メモリコントローラMCは、ブリッジチップBCに対して、LUN0、LUN4、LUN1、LUN5の順に、転送開始コマンドCsの送信、リードデータ片の受信、および転送終了コマンドCtの送信を実行する。ブリッジチップBCのコントローラ103は、受信した各転送開始コマンドCsによって指定されたメモリチップCPから予めバッファメモリ121に入力されたリードデータ片を、各転送開始コマンドCsに応じてバッファメモリ121からメモリコントローラMCに出力する。
【0083】
このように、コントローラ103は、メモリコントローラMCから受信した各データアウトプットコマンドCdoを速やかにそれぞれのデータアウトプットコマンドCdoの宛先のメモリチップCPに対応するメモリチャネルMCHを介して宛先のメモリチップCPに送信する。コントローラ103は、データアウトプットコマンドCdoを受信すると、そのデータアウトプットコマンドCdoに対応する転送開始コマンドCsおよび転送終了コマンドCtの対のうちの転送開始コマンドCsを、メモリコントローラMCからのその転送開始コマンドCsの受信を待たずに(受信がなくても)自律的にメモリチップCPに送信する。その結果、コントローラ103は、メモリチップCPの群からの複数のリードデータ片の受信を並列的に実行することができる。換言すると、コントローラ103は、一のメモリチップCPから出力されるリードデータ片のバッファメモリ121への入力の期間の一部または全部と重複する期間に、他のメモリチャネルMCHを介した他のメモリチップCPから出力されるリードデータ片の、他のバッファメモリ121への入力が可能である。これによって、ブリッジチップBCは、他のリードデータ片の受信にかかるプリフェッチ時間tpfが経過する前に、一のリードデータ片をメモリコントローラMCに出力できるので、比較例に比べてデータ転送の効率が向上する。
【0084】
続いて、図6に示した動作を実現するための第1の実施形態のブリッジチップBCの制御の詳細を説明する。
【0085】
図7は、第1の実施形態のブリッジチップBCによるデータアウトプットコマンドCdoを転送する動作の一例を示すフローチャートである。
【0086】
ブリッジチップBCがデータアウトプットコマンドCdoを受信すると(S101)、コントローラ103は、宛先のメモリチップCPにデータアウトプットコマンドCdoを転送する(S102)。そして、コントローラ103は、データアウトプットコマンドCdoの受信の順番をメモリチャネルMCH毎に記憶する(S103)。そして、データアウトプットコマンドCdoを転送する動作が終了する。なお、S102とS103の順は逆であってもよい。
【0087】
図6に示された例では、コントローラ103は、LUN0を対象としたデータアウトプットコマンドCdoを送信した後に、LUN1を対象としたデータアウトプットコマンドCdoを送信している。この場合、コントローラ103は、メモリチャネルMCH0に関するデータアウトプットコマンドCdoの受信の順番として、LUN0を対象としたデータアウトプットコマンドCdo、LUN1を対象としたデータアウトプットコマンドCdoの順番を記憶する。また、コントローラ103は、LUN4を対象としたデータアウトプットコマンドCdoを送信した後に、LUN5を対象としたデータアウトプットコマンドCdoを送信している。この場合、コントローラ103は、メモリチャネルMCH1に関するデータアウトプットコマンドCdoの受信の順番として、LUN4を対象としたデータアウトプットコマンドCdo、LUN5を対象としたデータアウトプットコマンドCdoの順番を記憶する。
【0088】
図8は、第1の実施形態のブリッジチップBCによる転送開始コマンドCsおよび転送終了コマンドCtの送信の動作の一例を示すフローチャートである。なお、本図に示される一連の動作は、メモリチャネルMCH毎に個別に実行される。本図では、或るメモリチャネルMCH(対象のメモリチャネルMCHと表記する)に関する動作を説明する。
【0089】
コントローラ103は、対象のメモリチャネルMCHにおいてリードデータ片の受信動作が実行中であるか否かを判定する(S201)。リードデータ片の受信動作は、転送開始コマンドCsの送信、リードデータ片の受信、および転送終了コマンドCtの送信を含む。対象のメモリチャネルMCHにおいてリードデータ片の受信動作が実行中である場合(S201:Yes)、コントローラ103は、S201の処理を再び実行する。
【0090】
対象のメモリチャネルMCHにおいてリードデータ片の受信動作が実行中でない場合(S201:No)、コントローラ103は、対象のメモリチャネルMCHにかかる送信済みのデータアウトプットコマンドCdoのうちに、リードデータ片の受信動作が未処理の1以上のデータアウトプットコマンドCdoがあるか否かを判定する(S202)。
【0091】
コントローラ103は、図7に示された動作により、対象のメモリチャネルMCHにかかる送信済みのデータアウトプットコマンドCdoを記憶している。S202の処理においては、コントローラ103は、記憶している対象のメモリチャネルMCHにかかる送信済みのデータアウトプットコマンドCdoのうちの、まだリードデータ片の受信動作が開始されていない1以上のデータアウトプットコマンドCdoがあるか否かを判定する。
【0092】
リードデータ片の受信動作が未処理の1以上のデータアウトプットコマンドCdoがない場合(S202:No)、コントローラ103は、S202の処理を再び実行する。
【0093】
リードデータ片の受信動作が未処理の1以上のデータアウトプットコマンドCdoがある場合(S202:Yes)、コントローラ103は、リードデータ片の受信動作が未処理の1以上のデータアウトプットコマンドCdoのうちの最も古くに送信したデータアウトプットコマンドCdoを選択する(S203)。なお、図8の説明においてS203の処理によって選択されたデータアウトプットコマンドCdoを、対象のデータアウトプットコマンドCdoと表記する。
【0094】
コントローラ103は、対象のデータアウトプットコマンドCdoを送信してから準備時間twが経過したか否かを判定する(S204)。対象のデータアウトプットコマンドCdoを送信してから準備時間twが経過していない場合(S204:No)、コントローラ103は、S204の処理を再び実行する。
【0095】
対象のデータアウトプットコマンドCdoを送信してから準備時間twが経過した場合(S204:Yes)、コントローラ103は、対象のメモリチャネルMCHに対応するバッファメモリ121が空いているか否かを判定する(S205)。バッファメモリ121が空いているとは、リードデータ片の受信に利用可能なスペースが空いていることである。
【0096】
対象のメモリチャネルMCHに対応するバッファメモリ121が空いていない場合(S205:No)、コントローラ103は、S205の処理を再び実行する。
【0097】
対象のメモリチャネルMCHに対応するバッファメモリ121が空いている場合(S205:Yes)、コントローラ103は、対象のデータアウトプットコマンドCdoの宛先のメモリチップCPに転送開始コマンドCsを送信する(S206)。
【0098】
転送開始コマンドCsの送信後、コントローラ103は、対象のデータアウトプットコマンドCdoに対応する転送終了コマンドCtをメモリコントローラMCから受信したか否かを判定する(S207)。
【0099】
対象のデータアウトプットコマンドCdoに対応する転送終了コマンドCtをメモリコントローラMCから受信していない場合(S207:No)、コントローラ103は、所定量のリードデータ片の受信を完了したか否かを判定する(S208)。所定量のリードデータ片の受信を完了していない場合(S208:No)、コントローラ103は、S207の処理を再び実行する。
【0100】
なお、S208の処理において、所定量は、例えば1ページの量である。なお、所定量はこの例に限定されない。例えば、コントローラ103は、データアウトプットコマンドCdoとともに、またはデータアウトプットコマンドCdoの前に、データ量の指定を受信するように構成されてもよい。そのような場合、所定量は、指定されたデータ量であってもよい。
【0101】
対象のデータアウトプットコマンドCdoに対応する転送終了コマンドCtをメモリコントローラMCから受信した場合(S207:Yes)、または所定量のリードデータ片の受信を完了した場合(S208:Yes)、コントローラ103は、対象のメモリチャネルMCHを介して転送終了コマンドCtを送信する(S209)。そして、コントローラ103は、S202の処理を再び実行する。
【0102】
図9は、第1の実施形態のブリッジチップBCの、メモリコントローラMCに対するリードデータ片の出力にかかる一連の動作の一例を示すフローチャートである。
【0103】
メモリコントローラMCは、或るデータアウトプットコマンドCdoの送信後からの経過時間が準備時間twとプリフェッチ時間tpfとの合計を超えた後に、当該データアウトプットコマンドCdoに対応する転送開始コマンドCsを送信するように構成されている。つまり、ブリッジチップBCは、プリフェッチ動作の完了の後にメモリコントローラMCから転送開始コマンドCsを受信することになる。
【0104】
ブリッジチップBCが転送開始コマンドCsを受信すると(S301)、コントローラ103は、バッファメモリ121にバッファリングされた、転送開始コマンドに含まれるLUNが示すメモリチップCPからのリードデータ片の、メモリコントローラMCへの出力を開始する(S302)。
【0105】
メモリコントローラMCは、所望の量のリードデータ片の受信が完了すると、転送終了コマンドCtを送信できる。コントローラ103は、転送終了コマンドCtを受信すると(S303)、S302の処理によって開始されたリードデータ片の出力を完了し、メモリコントローラMCに対するリードデータ片の出力にかかる一連の動作が終了する。
【0106】
なお、上記の例では、ブリッジチップBCには2つのメモリチャネルMCHが接続されていることとして説明した。ブリッジチップBCにはM(Mは3以上の整数)個のメモリチャネルMCHが接続され、転送回路112にはM個のメモリチャネルMCHに対応するM個のバッファメモリ121が設けられていてもよい。そのような場合、ブリッジチップBCは、図7図8に示された動作を行うことによって、メモリチップCPの群に対してN(Nは2以上M以下の整数)個のメモリチャネルMCHによって並列にリードデータ列の受信動作を実行することができる。そして、ブリッジチップBCは、図9に示された動作では、バッファメモリ121にバッファリングした1以上のリードデータ片を、メモリチャネルMCHの転送レートのN倍の転送レートでメモリコントローラMCに出力することができる。
【0107】
また、ブリッジチップBCにはM個のメモリチャネルMCHが接続され、転送回路112にはL(Lは2以上M以下の整数)個のバッファメモリ121が設けられていてもよい。そのような場合、ブリッジチップBCは、メモリチップCPの群に対してP(Pは2以上L以下の整数)個のメモリチャネルMCHによって並列にリードデータ列の受信動作を実行することができる。そして、ブリッジチップBCは、バッファメモリ121にバッファリングした1以上のリードデータ片を、メモリチャネルMCHの転送レートのP倍の転送レートでメモリコントローラMCに出力することができる。
【0108】
以上述べたように、第1の実施形態によれば、コントローラ103は、メモリコントローラMCからそれぞれ異なるメモリチャネルMCHに接続された2つのメモリチップCP(例えば第1メモリチップCP、第2メモリチップCPと表記する)のそれぞれに対するデータアウトプットコマンドCdoを受信した場合、次のように動作する。即ち、コントローラ103は、第1メモリチップCPを対象としたアウトプットコマンドCdo(第1データアウトプットコマンドCdoと表記する)の受信に応じて第1データアウトプットコマンドCdoを第1メモリチップCPに送信し、第2メモリチップCPを対象としたアウトプットコマンドCdo(第2データアウトプットコマンドCdoと表記する)の受信に応じて第2データアウトプットコマンドCdoを第2メモリチップCPに送信する。そして、コントローラ103は、第1データアウトプットコマンドCdoに対応した転送開始コマンドCs(第1転送開始コマンドCsと表記する)をメモリコントローラMCから受信する前に、自律的に第1転送開始コマンドCsを第1メモリチップCPに送信し、第1転送開始コマンドCsに応じて第1メモリチップCPから出力されるリードデータ片(第1リードデータ片と表記する)のバッファメモリ121への入力を開始する。コントローラ103は、第2データアウトプットコマンドCdoに対応した転送開始コマンドCs(第2転送開始コマンドCsと表記する)をメモリコントローラMCから受信する前に、自律的に第2転送開始コマンドCsを第2メモリチップCPに送信し、第2転送開始コマンドCsに応じて第2メモリチップCPから出力されるリードデータ片(第2リードデータ片と表記する)のバッファメモリ121への入力を開始する。コントローラ103は、メモリコントローラMCから第1転送開始コマンドCsを受信すると、メモリチャネルMCHよりも速い転送レートでのバッファメモリ121からメモリコントローラMCへの第1リードデータ片の出力を開始する。コントローラ103は、メモリコントローラMCから第2転送開始コマンドCsを受信すると、メモリチャネルMCHよりも速い転送レートでのバッファメモリ121からメモリコントローラMCへの第2リードデータ片の出力を開始する。
【0109】
コントローラ103は、第1メモリチップCPから出力される第1リードデータ片のバッファメモリ121への入力の期間の一部または全部と重複する期間に、第2メモリチップCPから出力される第2リードデータ片のバッファメモリ121への入力が可能である。これによって、コントローラ103は、メモリコントローラMCに対し、第1リードデータ片および第2リードデータ片のうちの一の受信にかかるプリフェッチ時間tpfが経過する前に、第1リードデータ片および第2リードデータ片のうちの他の出力が可能であるので、比較例に比べてデータ転送の効率が向上する。
【0110】
また、第1の実施形態によれば、コントローラ103は、第1メモリチップCPからの第1リードデータ片のバッファメモリ121へ入力する期間と一部または全部が重複する期間に、第2メモリチップCPからの第2リードデータ片のバッファメモリ121への入力を実行する。そして、コントローラ103は、バッファメモリ121からメモリコントローラMCへの第1リードデータ片の出力と、バッファメモリ121からメモリコントローラMCへの第2リードデータ片の出力と、をシリアルに実行する。
【0111】
これによって、コントローラ103は、メモリコントローラMCに対し、第1リードデータ片および第2リードデータ片のうちの一の受信にかかるプリフェッチ時間tpfが経過する前に、第1リードデータ片および第2リードデータ片のうちの他の出力が可能であるので、比較例に比べてデータ転送の効率が向上する。
【0112】
なお、第1の実施形態によれば、メモリチャネルMCH毎に、複数のデータアウトプットコマンドCdoの受信順に、リードデータ片の受信が実行される。即ち、例えば、ブリッジチップBCが第1データアウトプットコマンドCdoを受信した後に第1メモリチップCPと同じメモリチャネルMCHに接続されたメモリチップCP(第3メモリチップCP)に対するデータアウトプットコマンドCdo(第3データアウトプットコマンドCdoと表記する)を受信した場合、コントローラ103は、第1リードデータ片のバッファメモリ121への入力が完了した後、メモリコントローラMCから第3データアウトプットコマンドCdoに対応した転送開始コマンドCs(第3転送開始コマンドCsと表記する)を受信する前に、自律的に第3転送開始コマンドCsを第3メモリチップCPに送信することができる。コントローラ103は、第3転送開始コマンドCsに応じて第3メモリチップCPから出力されるリードデータ片(第3リードデータ片と表記する)のバッファメモリ121への入力を開始する。
【0113】
(第2の実施形態)
第1の実施形態によれば、ブリッジチップBCは、ホストチャネルHCHからのデータアウトプットコマンドCdoの受信順にリードデータ片の出力を行った。第2の実施形態では、ホストチャネルHCHからのデータアウトプットコマンドCdoの受信順とは異なる順にリードデータ片の出力が可能なブリッジチップBCの構成を説明する。ここでは、第1の実施形態と同じ事項については説明を省略するかまたは簡略的に説明する。
【0114】
第2の実施形態では、ブリッジチップBCは、ブリフェッチコマンドCpfを受信可能に構成される。ブリフェッチコマンドCpfは、LUNの指定を含む。ブリッジチップBCは、ブリフェッチコマンドCpfを受信した場合、そのプリフェッチコマンドCpfに含まれるLUNが示すメモリチップCPに転送開始コマンドCsを送信する。
【0115】
図10は、第2の実施形態にかかるメモリシステムSYSにおけるリード動作にかかる複数のコマンドシーケンスの転送の一例を示すタイミングチャートである。
【0116】
メモリコントローラMCは、或るLUNを対象としたデータアウトプットコマンドCdoを送信すると、当該データアウトプットコマンドCdoの送信から準備時間twの経過後にそのLUNを指定したプリフェッチコマンドCpfを送信することができる。
【0117】
さらに、メモリコントローラMCは、或るLUNを指定したプリフェッチコマンドCpfの送信からプリフェッチ時間tpfが経過すると、そのLUNを対象とした転送開始コマンドCsを送信することができる。
【0118】
図10に示される例では、メモリコントローラMCは、上記のルールに基づき、LUN0を対象としたデータアウトプットコマンドCdo、LUN4を対象としたデータアウトプットコマンドCdo、LUN0を指定したプリフェッチコマンドCpf、LUN5を対象としたデータアウトプットコマンドCdo、LUN5を指定したプリフェッチコマンドCpf、LUN0を対象とした転送開始コマンドCs、LUN1を対象としたデータアウトプットコマンドCdo、LUN0を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、LUN5を対象とした転送開始コマンドCs、LUN1を指定したプリフェッチコマンドCpf、LUN4を指定したプリフェッチコマンドCpf、LUN5を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、LUN1を対象とした転送開始コマンドCs、LUN1を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、LUN4を対象とした転送開始コマンドCs、LUN4を対象とした転送開始コマンドCsに対応する転送終了コマンドCt、をこの順番で送信している。
【0119】
メモリコントローラMCは、LUN0、LUN4、LUN5、LUN1の順にそれぞれに対するデータアウトプットコマンドCdoを送信している。そして、メモリコントローラMCは、LUN0、LUN5、LUN1、LUN4の順に、それぞれを指定したプリフェッチコマンドCpfを送信している。
【0120】
ブリッジチップBCのコントローラ103は、メモリコントローラMCから受信した各データアウトプットコマンドCdoを、それぞれのデータアウトプットコマンドCdoの宛先のメモリチップCPに対応するメモリチャネルMCHを介して、速やかに宛先のメモリチップCPに転送する。そして、コントローラ103は、1つのプリフェッチコマンドCpfを受信すると、受信したプリフェッチコマンドCpfに含まれるLUNが示すメモリチップCPに転送開始コマンドCsを送信する。コントローラ103は、転送開始コマンドCsに応じて出力されるリードデータ片のバッファメモリ121への入力を開始する。
【0121】
よって、コントローラ103は、データアウトプットコマンドCdoの受信順ではなく、プリフェッチコマンドCpfの受信順に従って、LUN0、LUN5、LUN1、LUN4の順に、4つの転送開始コマンドCsを送信する(S51、S52、S53、S54)。
【0122】
メモリコントローラMCは、ブリッジチップBCに転送開始コマンドCsを送信することによって、ブリッジチップBCにプリフェッチ動作が完了したリードデータ列の出力を開始させることができる。
【0123】
図10に示される例では、メモリコントローラMCは、ブリッジチップBCに対して、LUN0、LUN5、LUN1、LUN4の順に、それぞれを指定したプリフェッチコマンドCpfを送信し、LUN0、LUN5、LUN1、LUN4の順に、それぞれを対象とした転送開始コマンドCsを送信している。ブリッジチップBCのコントローラ103は、受信した各転送開始コマンドCsによって指定されたメモリチップCPから予めバッファメモリ121に入力されたリードデータ片を、各転送開始コマンドCsに応じてバッファメモリ121からメモリコントローラMCに出力する。
【0124】
このように、第2の実施形態によれば、ブリッジチップBCのコントローラ103は、複数のデータアウトプットコマンドCdoの宛先の順とは異なる順でリードデータ列の受信動作を実行することが可能とされる。
【0125】
ここで、図10に示された例を、メモリチャネルMCH1を介した複数のリードデータ列の転送に着目して説明する。
【0126】
メモリチャネルMCH1に接続されたメモリチップCP1-0~CP1-3に関しては、ブリッジチップBCのコントローラ103は、LUN4を対象としたデータアウトプットコマンドCdoと、LUN5を対象としたデータアウトプットコマンドCdoと、をこの順でメモリコントローラMCから受信している。さらに、コントローラ103は、LUN5を対象としたデータアウトプットコマンドCdoに対応した転送開始コマンドCsを受信する前に、かつ、LUN4を対象としたデータアウトプットコマンドCdoに対応したプリフェッチコマンドCpfを受信する前に、LUN5を対象としたデータアウトプットコマンドCdoに対応したプリフェッチコマンドCpfを受信している。コントローラ103は、LUN5を対象としたデータアウトプットコマンドCdoに対応したプリフェッチコマンドCpfに応じてLUN5を対象としたデータアウトプットコマンドCdoに対応した転送開始コマンドCsをメモリチップCP1-1に送信して(S52)、この転送開始コマンドCsに応じてメモリチップCP1-1から出力されるリードデータ片のバッファメモリ121(より正確にはバッファメモリ121-1)への入力を開始する(S61)。メモリチップCP1-1から出力されるリードデータ片のバッファメモリ121への入力の完了後(S62)、より正確にはLUN5を対象としたデータアウトプットコマンドCdoに対応した転送終了コマンドCtの送信後、LUN4を対象としたデータアウトプットコマンドCdoに対応したプリフェッチコマンドCpfをメモリコントローラMCから受信すると、コントローラ103は、LUN4を対象としたデータアウトプットコマンドCdoに対応したプリフェッチコマンドCpfに応じてLUN4を対象としたデータアウトプットコマンドCdoに対応した転送開始コマンドCsを送信する(S54)。そして、コントローラ103は、LUN4を対象としたデータアウトプットコマンドCdoに対応した転送開始コマンドCsに応じてメモリチップCP1-0から出力されるリードデータ片のバッファメモリ121(より正確にはバッファメモリ121-1)への入力を開始する(S63)。
【0127】
このように、ブリッジチップBCのコントローラ103は、複数のデータアウトプットコマンドCdoの宛先の順とは異なる順で複数のプリフェッチコマンドCpfを受信した場合、複数のプリフェッチコマンドCpfの受信順に従ってリードデータ列の受信動作を実行する。
【0128】
図11は、第2の実施形態のブリッジチップBCによるデータアウトプットコマンドCdoを転送する動作の一例を示すフローチャートである。
【0129】
ブリッジチップBCがデータアウトプットコマンドCdoを受信すると(S401)、コントローラ103は、宛先のメモリチップCPにデータアウトプットコマンドCdoを転送する(S402)。そして、データアウトプットコマンドCdoを転送する動作が終了する。
【0130】
図12は、第2の実施形態のブリッジチップBCによる転送開始コマンドCsおよび転送終了コマンドCtの送信の動作の一例を示すフローチャートである。なお、本図に示される一連の動作は、メモリチャネルMCH毎に個別に実行される。本図では、或るメモリチャネルMCH(対象のメモリチャネルMCHと表記する)に関する動作を説明する。
【0131】
コントローラ103は、対象のメモリチャネルMCHを介して既に送信した或るデータアウトプットコマンドCdo(対象のデータアウトプットコマンドCdoと表記する)に対応したプリフェッチコマンドCpfを受信する(S501)。コントローラ103は、プリフェッチコマンドCpfに応じて、対象のデータアウトプットコマンドCdoに対応した転送開始コマンドCsを送信する(S502)。
【0132】
そして、コントローラ103は、図8に示されたS207~S209と同じ処理を、S503~S505において実行し、S501の処理を再び実行する。
【0133】
このように、第2の実施形態によれば、ブリッジチップBCがメモリコントローラMCから転送開始コマンドCsを受信する前にプリフェッチコマンドCpfを受信した場合、コントローラ103は、プリフェッチコマンドCpfに応じて転送開始コマンドCsをメモリチップCPに送信する。
【0134】
よって、第1の実施形態と同様、或るメモリチャネルMCHに接続されるメモリチップCPから出力されるリードデータ片のバッファメモリ121への入力の期間の一部または全部と重複する期間に、別のメモリチャネルMCHに接続されるメモリチップCPから出力されるリードデータ片のバッファメモリ121への入力が可能である。これによって、比較例に比べてデータ転送の効率が向上する。
【0135】
また、第2の実施形態によれば、図10及び図12を用いて説明されたように、ブリッジチップBCは、複数のデータアウトプットコマンドCdoの受信順とは異なる順でリードデータ列の受信動作を実行することが可能とされる。よって、メモリコントローラMCは、複数のデータアウトプットコマンドCdoの受信順とは異なる順でリードデータ片の出力をブリッジチップBCに指示することができる。
【0136】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0137】
1 半導体記憶装置、10 外部端子群、101 第1インタフェース、102,102-0,102-1 第2インタフェース、103 コントローラ、111 プロセッサ、112 転送回路、113 レジスタ、120 セレクタ、121,121-0,121-1 バッファメモリ、BC ブリッジチップ、CP メモリチップ、MC メモリコントローラ、HCH ホストチャネル、MCH,MCH0,MCH1 メモリチャネル、SYS メモリシステム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12