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

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

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

特開2024-44868メモリシステム、方法、および制御回路
<>
  • 特開-メモリシステム、方法、および制御回路 図1
  • 特開-メモリシステム、方法、および制御回路 図2
  • 特開-メモリシステム、方法、および制御回路 図3
  • 特開-メモリシステム、方法、および制御回路 図4
  • 特開-メモリシステム、方法、および制御回路 図5
  • 特開-メモリシステム、方法、および制御回路 図6
  • 特開-メモリシステム、方法、および制御回路 図7
  • 特開-メモリシステム、方法、および制御回路 図8
  • 特開-メモリシステム、方法、および制御回路 図9
  • 特開-メモリシステム、方法、および制御回路 図10
  • 特開-メモリシステム、方法、および制御回路 図11
  • 特開-メモリシステム、方法、および制御回路 図12
  • 特開-メモリシステム、方法、および制御回路 図13
  • 特開-メモリシステム、方法、および制御回路 図14
  • 特開-メモリシステム、方法、および制御回路 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044868
(43)【公開日】2024-04-02
(54)【発明の名称】メモリシステム、方法、および制御回路
(51)【国際特許分類】
   G06F 13/36 20060101AFI20240326BHJP
   G06F 12/06 20060101ALI20240326BHJP
   G06F 13/38 20060101ALI20240326BHJP
【FI】
G06F13/36 310E
G06F12/06 550A
G06F13/38 330Z
G06F13/36 530B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022150657
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鈴木 智明
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CD05
(57)【要約】
【課題】好適な構成を有するメモリシステム、方法、および制御回路を提供すること。
【解決手段】半導体記憶装置は、第1回路と、複数の第2回路と、第1回路に接続された第1数の第1チャネルと、を備える。各第1チャネルに1以上の第2回路が接続される。制御回路は、半導体記憶装置に第2チャネルを介して接続される。制御回路は、それぞれは複数の第2回路のうちの一に対する複数の第1アクセス要求を生成する。そして、制御回路は、アクセス先として指定された第2回路が接続された第1チャネルがそれぞれ異なる第2数の第1アクセス要求を同時に実行できるよう、複数の第1アクセス要求の実行順を決定する。そして、制御回路は、第2チャネルを介して、第1数の第1チャネルのうちの一つの転送レートの第2数倍の転送レートで、第2数の第1アクセス要求にかかる第2数のデータ転送を並行して実行する。
【選択図】図8
【特許請求の範囲】
【請求項1】
第1回路と、それぞれメモリセルアレイを備える複数の第2回路と、前記第1回路に接続され、それぞれに前記複数の第2回路のうちの1以上の第2回路が接続された第1数の第1チャネルと、を備え、前記第1数は2以上である半導体記憶装置と、
前記半導体記憶装置に第2チャネルを介して接続され、
それぞれは複数の第2回路のうちの一をアクセス先として指定したデータ転送を要求する複数の第1アクセス要求を生成し、
前記アクセス先として指定された第2回路が接続された第1チャネルがそれぞれ異なる第2数の第1アクセス要求を同時に実行できるよう、前記複数の第1アクセス要求の実行順を決定し、前記第2数は1以上且つ第1数以下の整数であり、
前記第2チャネルを介して、前記第1数の第1チャネルのうちの一つの転送レートの前記第2数倍の転送レートで、前記第2数の第1アクセス要求にかかる前記第2数のデータ転送を並行して実行する、
制御回路と、
を備えるメモリシステム。
【請求項2】
前記制御回路は、
前記複数の第1アクセス要求のうちから、前記アクセス先として指定された第2回路が接続された第1チャネルがそれぞれ異なる前記第2数の第1アクセス要求の1以上の第1セットを順次、特定し、
特定した前記1以上の第1セットのそれぞれに含まれる前記第2数の第1アクセス要求を並行して実行する、
請求項1に記載のメモリシステム。
【請求項3】
前記制御回路は、
前記アクセス先として指定された第2回路が接続された第1チャネルが異なる第1アクセス要求の数が前記第2数に満たない場合、
ダミーデータの転送を要求する1以上の第2アクセス要求を生成し、
前記複数の第1アクセス要求のうちの1以上の第1アクセス要求と前記1以上の第2アクセス要求とを含む前記第2数の第3アクセス要求を並行して実行する、
請求項1に記載のメモリシステム。
【請求項4】
前記第2数の第3アクセス要求のそれぞれがライト要求である場合、前記第1回路は、前記第2チャネルを介して前記第2数の第1データを受信し、前記第2数の第1データのうちの前記ダミーデータを破棄し、残りの1以上の第1データのそれぞれを前記1以上の第1アクセス要求のうちの対応するアクセス要求によって指定されたアクセス先の第2回路に転送し、
前記第2数の第3アクセス要求のそれぞれがリード要求である場合、前記第1回路は、前記1以上の第1アクセス要求によって前記アクセス先として指定された1以上の第2回路から1以上の第2データを取得し、前記1以上の第2アクセス要求に対応した1以上のダミーデータを生成し、前記第2チャネルを介して前記1以上の第2データと前記1以上のダミーデータとを前記制御回路に送信する、
請求項3に記載のメモリシステム。
【請求項5】
前記制御回路は、
前記アクセス先として指定された第2回路が接続された第1チャネルが異なる第1アクセス要求の数が前記第2数に満たない場合、
前記第2チャネルの転送レートを前記第1数の第1チャネルのうちの一つの転送レートの前記第2数倍の転送レートから前記第1数の第1チャネルのうちの一つの第3数倍の転送レートに変更し、前記第3数は前記第1数より小さく、
前記アクセス先として指定された第2回路が接続された第1チャネルが異なる前記第3数の第1アクセス要求にかかる前記第3数のデータ転送を並行して実行する、
請求項1に記載のメモリシステム。
【請求項6】
第1回路と、それぞれメモリセルアレイを備える複数の第2回路と、前記第1回路に接続され、それぞれに前記複数の第2回路のうちの1以上の第2回路が接続された第1数の第1チャネルと、を備え、前記第1数は2以上である半導体記憶装置を制御する方法であって、
それぞれは複数の第2回路のうちの一をアクセス先として指定したデータ転送を要求する複数の第1アクセス要求を生成することと、
アクセス先として指定された第2回路が接続された第1チャネルがそれぞれ異なる第2数の第1アクセス要求を同時に実行できるよう、前記複数の第1アクセス要求の実行順を決定することと、前記第2数は1以上且つ第1数以下の整数であり、
前記第2チャネルを介して、前記第1数の第1チャネルのうちの一つの転送レートの前記第2数倍の転送レートで、前記第2数の第1アクセス要求にかかる前記第2数のデータ転送を並行して実行することと、
を含む方法。
【請求項7】
第1回路と、それぞれメモリセルアレイを備える複数の第2回路と、前記第1回路に接続され、それぞれに前記複数の第2回路のうちの1以上の第2回路が接続された第1数の第1チャネルと、を備え、前記第1数は2以上である半導体記憶装置に接続可能な制御回路であって、
それぞれは複数の第2回路のうちの一をアクセス先として指定したデータ転送を要求する複数の第1アクセス要求を生成する第1回路と、
アクセス先として指定された第2回路が接続された第1チャネルがそれぞれ異なる第2数の第1アクセス要求を同時に実行できるよう、前記複数の第1アクセス要求の実行順を決定し、前記第2数は1以上且つ第1数以下の整数である第2回路と、
前記第1数の第1チャネルのうちの一つの転送レートの前記第2数倍の転送レートで、前記第2数の第1アクセス要求にかかる前記第2数のデータ転送を並行して実行する第3回路と、
を備える制御回路。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、メモリシステム、方法、および制御回路に関する。
【背景技術】
【0002】
複数のメモリチップとメモリコントローラとの間にブリッジチップを備えたメモリシステムがある。メモリコントローラは、ブリッジチップを介して各メモリチップを制御する制御回路である。複数のメモリチップのそれぞれは、ブリッジチップに複数のチャネルの何れかを介して接続される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-49552号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つの実施形態は、好適な構成を有するメモリシステム、方法、および制御回路を提供することを目的とする。
【課題を解決するための手段】
【0005】
一つの実施形態によれば、メモリシステムは、半導体記憶装置と、制御回路と、を備える。半導体記憶装置は、第1回路と、複数の第2回路と、第1回路に接続された第1数の第1チャネルと、を備える。第1数は2以上である。第1数の第1チャネルのそれぞれに複数の第2回路のうちの1以上の第2回路が接続される。制御回路は、半導体記憶装置に第2チャネルを介して接続される。制御回路は、それぞれは複数の第2回路のうちの一をアクセス先として指定したデータ転送を要求する複数の第1アクセス要求を生成する。そして、制御回路は、アクセス先として指定された第2回路が接続された第1チャネルがそれぞれ異なる第2数の第1アクセス要求を同時に実行できるよう、複数の第1アクセス要求の実行順を決定する。第2数は1以上且つ第1数以下の整数である。制御回路は、第2チャネルを介して、第1数の第1チャネルのうちの一つの転送レートの第2数倍の転送レートで、第2数の第1アクセス要求にかかる第2数のデータ転送を並行して実行する。
【図面の簡単な説明】
【0006】
図1】第1の実施形態のメモリシステムの構成の一例を示す模式的な図。
図2】第1の実施形態のメモリチップの構成例を示す図。
図3】第1の実施形態のブリッジチップと各メモリチップとの間の接続関係の詳細を説明するための模式的な図。
図4】第1の実施形態のメモリコントローラのハードウェア構成の一例を示す図。
図5】第1の実施形態のブリッジチップのハードウェア構成の一例を示す図。
図6】第1の実施形態の分割・結合回路の、データを結合する機能の一例を説明するための図。
図7】第1の実施形態の分割・結合回路の、データを分割する機能の一例を説明するための図。
図8】第1の実施形態のメモリシステムにおけるデータの流れの一例を説明するための模式的な図。
図9】第1の実施形態のメモリシステムにおけるデータの流れの他の一例を説明するための模式的な図。
図10】第1の実施形態のホストチャネルの転送レートの変更の処理の方法の一例を説明するためのタイミングチャート。
図11】第1の実施形態のスケジューラの動作の一例を示すフローチャート。
図12】第1の実施形態のメモリシステムの構成の別の一例を示す模式的な図。
図13】第2の実施形態のメモリシステムにおけるデータの流れの一例を説明するための模式的な図。
図14】第2の実施形態の非対のアクセス要求にかかるデータ転送の方法の一例を説明するためのタイミングチャート。
図15】第2の実施形態のスケジューラの動作の一例を示すフローチャート。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、実施形態のメモリシステム、方法、および制御回路を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【0008】
(第1の実施形態)
図1は、第1の実施形態のメモリシステムSYSの構成の一例を示す模式的な図である。
【0009】
メモリシステムSYSは、ホストHSに接続可能である。ホストHSとメモリシステムSYSとを接続する通信路および当該通信路を介した通信が準拠する規格は、特定の規格に限定されない。ホストHSは、例えばパーソナルコンピュータ、携帯情報端末、またはサーバなどである。ホストHSは、メモリシステムSYSにアクセスする際に、メモリシステムSYSにアクセスコマンドを送信する。アクセスコマンドは、ライトコマンドまたはリードコマンドなどを含む。
【0010】
メモリシステムSYSは、半導体記憶装置1、メモリコントローラMC、およびRAM(Random Access Memory)2を含む。
【0011】
メモリコントローラMCは、半導体記憶装置1の制御を行う制御回路である。メモリコントローラMCは、半導体記憶装置1の制御の一環として、ホストHSからのアクセスコマンドに応じたホストHSと半導体記憶装置1との間のデータ転送を実行する。
【0012】
RAM2は、メモリコントローラMCに、バッファエリア、キャッシュエリア、プログラムがロードされるエリア、などの機能を提供する。例えば、メモリコントローラMCは、ホストHSと半導体記憶装置1との間の転送データをRAM2にバッファすることができる。また、メモリコントローラMCは、ファームウェアプログラムをRAM2にロードして使用したり、各種管理データをRAM2にバッファまたはキャッシュしたりする。
【0013】
半導体記憶装置1は、外部端子群T、ブリッジチップBC、および複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3を備える。複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3のそれぞれは、例えば、NAND型フラッシュメモリ等の不揮発性メモリのメモリチップである。ここでは、複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3のそれぞれはNAND型フラッシュメモリのメモリチップであることとする。
【0014】
半導体記憶装置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の周囲が、モールド樹脂で封止されていてもよい。
【0015】
また、半導体記憶装置1は、複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3とブリッジチップBCとを接続する複数のチャネルを備える。この複数のチャネルのそれぞれを、NAND型のフラッシュメモリを接続するチャネルという意味で、メモリチャネルMCHと表記する。
【0016】
図1の例では、半導体記憶装置1は、複数のメモリチャネルMCHとして、メモリチャネルMCH0,MCH1を備える。そして、メモリチャネルMCH0を介してブリッジチップBCに4つのメモリチップCP0-0~CP0-3が接続され、メモリチャネルMCH1を介してブリッジチップBCに4つのメモリチップCP1-0~CP1-3が接続される。
【0017】
それぞれのメモリチャネルMCHは、所定の規格に基づき構成される。各メモリチップCP0-0~CP0-3,CP1-0~CP1-3がNAND型フラッシュメモリである場合、所定の規格は、例えば、トグルDDR規格である。
【0018】
なお、半導体記憶装置1が備えるメモリチップCPの数は8個に限定されない。また、ブリッジチップBCと複数のメモリチップCPとを接続するメモリチャネルMCHの数は2個に限定されない。
【0019】
なお、ブリッジチップBCは、第1回路の一例である。メモリチップCP0-0~CP0-3,CP1-0~CP1-3のそれぞれは、第2回路の一例である。各メモリチャネルMCHは、第1チャネルの一例である。
【0020】
以降、メモリチップCP0-0~CP0-3,CP1-0~CP1-3のそれぞれを、メモリチップCPと表記することがある。また、メモリチップCP0-0~CP0-3のそれぞれを、メモリチップCP0と表記することがある。また、メモリチップCP1-0~CP1-3のそれぞれを、メモリチップCP1と表記することがある。
【0021】
半導体記憶装置1は、1つのチャネルを介してメモリコントローラMCに接続される。この1つのチャネルを、ブリッジチップBCから見てホスト側のチャネルという意味で、ホストチャネルHCHと表記する。
【0022】
ホストチャネルHCHは、所定の規格に基づき構成される。各メモリチップCPがNAND型フラッシュメモリである場合、所定の規格は、例えば、トグルDDR規格である。
【0023】
なお、ホストチャネルHCHは、第2チャネルの一例である。
【0024】
ホストチャネルHCHは、チップイネーブル信号CEnを転送する信号線、コマンドラッチ信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、所定のビット幅(ここでは一例として8ビットの幅)を有するデータ信号DQ[7:0]を転送する信号線、レディービジー信号R/Bn_1を転送する信号線、およびレディービジー信号R/Bn_2を転送する信号線を含む。なお、信号を表す符号の末尾に記された「n」は、負論理で動作せしめられる信号であることを表す。各信号が負論理で動作せしめられるか正論理で動作せしめられるかは任意に設計され得る。
【0025】
チップイネーブル信号CEnは、アクセスの対象のメモリチップCPをイネーブル状態とするための信号である。データストローブ信号DQS/DQSnは、データ信号DQ[7:0]で送信されるデータを相手装置に取り込むように指示する信号である。データストローブ信号DQS/DQSnは、データストローブ信号DQSとデータストローブ信号DQSnとによって構成される差動信号である。コマンドラッチイネーブル信号CLEは、データ信号DQ[7:0]がコマンドであることを示す信号である。アドレスラッチイネーブル信号ALEは、データ信号DQ[7:0]がアドレスであることを示す信号である。ライトイネーブル信号WEnは、データ信号DQ[7:0]で送信されるコマンドまたはアドレスを取り込むように相手装置に指示する信号である。リードイネーブル信号RE/REnは、データ信号DQ[7:0]を出力するように相手装置に指示する信号である。リードイネーブル信号RE/REnは、リードイネーブル信号REおよびリードイネーブル信号REnによって構成される差動信号である。レディービジー信号R/Bn_1およびレディービジー信号R/Bn_2は、コマンドの受信を待機している状態であるレディー状態であるかコマンドを受信しても実行できない状態であるビジー状態であるかを示す信号である。なお、ホストチャネルHCHが含むレディービジー信号R/Bnを転送する信号線の構成は上記された例に限定されない。例えば、ホストチャネルHCHは、レディービジー信号R/Bnに関しては、メモリチャネルMCH0にかかるレディービジー信号R/Bnと、メモリチャネルMCH1にかかるレディービジー信号R/Bnと、からワイヤードOR接続などによって生成された一つのレディービジー信号R/Bnを転送するための1つの信号線を備えていてもよい。
【0026】
メモリチャネルMCH0,MCH1のそれぞれは、ホストチャネルHCHの信号群と同種の信号群を送受信できる。即ち、メモリチャネルMCH0,MCH1のそれぞれは、チップイネーブル信号CEnを転送する信号線、コマンドラッチ信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、データ信号DQ[7:0]を転送する信号線群、およびレディービジー信号R/Bnを転送する信号線、を備えている。
【0027】
図2は、第1の実施形態のメモリチップCPの構成例を示す図である。メモリチップCPは、アクセス回路201およびメモリセルアレイ202を備える。
【0028】
メモリセルアレイ202は、複数の物理ブロックBLK(BLK0、BLK1、…)を備える。各物理ブロックBLKは、複数の不揮発性メモリセルトランジスタの集合である、各物理ブロックBLKは、ページと称する記憶領域を複数備える。
【0029】
アクセス回路201は、例えば、ロウデコーダ、カラムデコーダ、センスアンプ、ラッチ回路、および電圧発生回路を含む。アクセス回路201は、メモリコントローラMCからブリッジチップBCを介して受信する指示に応じて、メモリセルアレイ202に対し、データのライト、データのリード、またはデータのイレースを実行する。
【0030】
具体的には、アクセス回路201は、ブリッジチップBCを介してメモリコントローラMCからページ単位のデータの入力を受け付けて、受け付けたページ単位のデータをメモリセルアレイ202にライトすることができる。また、アクセス回路201は、メモリセルアレイ202からページ単位のデータをリードして、リードしたページ単位のデータをクラスタと称されるページよりも小さいサイズのデータ毎に、ブリッジチップBCを介してメモリコントローラMCに出力することができる。また、アクセス回路201は、物理ブロックBLKでデータのイレースを実行することができる。
【0031】
なお、アクセス回路201およびメモリセルアレイ202は、互いに独立に動作可能な複数のプレーンと称する単位に分割されていてもよい。
【0032】
図3は、第1の実施形態のブリッジチップBCと各メモリチップCPとの間のより詳細な接続関係を説明するための模式的な図である。
【0033】
図3に示すように、4つのメモリチップCP0-0~CP0-3は、メモリチャネルMCH0に共通接続される。同様に、4つのメモリチップCP1-0~CP1-3は、メモリチャネルMCH1に共通接続される。
【0034】
なお、メモリチップCP0-0~CP0-3、CP1-0~CP1-3は、対応するメモリチャネルMCHを構成する全ての信号線に共通接続されていなくてもよい。メモリチップCP0-0~CP0-3、CP1-0~CP1-3は、対応するメモリチャネルMCHを構成する信号線のうちのデータ信号DQ[7:0]を転送する信号線を除くいくつかの信号線はブリッジチップBCと個別のメモリチップCPとを一対一に接続するように構成されてもよい。
【0035】
上記のようにブリッジチップBCと各メモリチップCPとが接続されているため、ブリッジチップBCは、メモリチャネルMCH0を介したデータ転送と、メモリチャネルMCH1を介したデータ転送と、を並行に実行し得る。そして、メモリコントローラMCとブリッジチップBCとの間を接続するホストチャネルHCHは、メモリチャネルMCH0を介したデータ転送と、メモリチャネルMCH1を介したデータ転送と、が並行して実行された場合でもブリッジチップBCにおいて転送データが滞ることを防ぐように制御される。このため、ホストチャネルHCHは、メモリチャネルMCH0の転送レートと、メモリチャネルMCH1の転送レートと、を合わせた転送レートでデータを転送することが可能とされる。つまり、図3に示す例では、ホストチャネルHCHは、メモリチャネルMCHの2倍の転送レートでデータを転送することが可能である。
【0036】
メモリコントローラMCは、メモリコントローラMCとメモリチップCPの群との間のデータ転送の転送レートをできるだけ高くするために、4つのメモリチップCP0-0~CP0-3の何れかをアクセス先とするデータ転送と、4つのメモリチップCP1-0~CP1-3の何れかをアクセス先とするデータ転送と、の間で互いにアクセス種別、転送サイズ、および転送タイミングが合致するように、メモリチップCP0-0~CP0-3、CP1-0~CP1-3に対するアクセスを行う。なお、アクセス種別は、リードおよびライトを含む。
【0037】
例えば、各メモリチップCPには、半導体記憶装置1内でユニークな識別番号であるLUN(Logical Unit Number)が与えられる。上記のアクセス制御を実現するために、メモリコントローラMCは、各メモリチップCPに与えられたLUNとメモリチップCPの接続先のメモリチャネルMCHとの関係を予め記憶する。図3に示す例では、メモリチップCP0-0にはLUN0、メモリチップCP0-1にはLUN1、メモリチップCP0-2にはLUN2、メモリチップCP0-3にはLUN3、メモリチップCP1-0にはLUN4、メモリチップCP1-1にはLUN5、メモリチップCP1-2にはLUN6、メモリチップCP1-3にはLUN7が与えられている。そして、メモリコントローラMCは、LUN0~LUN3で識別される4つのメモリチップCP(即ちメモリチップCP0-1~CP0-3)はメモリチャネルMCH0に接続され、LUN4~LUN7で識別される4つのメモリチップCP(即ちメモリチップCP1-1~CP1-3)はメモリチャネルMCH1に接続されていることを予め記憶する。
【0038】
図4は、第1の実施形態のメモリコントローラMCのハードウェア構成の一例を示す図である。
【0039】
メモリコントローラMCは、ホストインタフェースコントローラ(ホストI/Fコントローラ)10、CPU(Central Processing Unit)11、スケジューラ12、バス13、第1フラッシュコントローラ14-0、第2フラッシュコントローラ14-1、および分割・結合回路15を備える。なお、第1フラッシュコントローラ14-0、第2フラッシュコントローラ14-1のそれぞれを、フラッシュコントローラ14と表記することがある。
【0040】
ホストI/Fコントローラ10、CPU11、RAM2、およびスケジューラ12は、バス13に電気的に接続される。
【0041】
なお、メモリコントローラMCは、一例では、SoC(System-on-a-Chip)として構成される。メモリコントローラMCは、複数のチップによって構成されてもよい。メモリコントローラMCは、RAM2を含む1つのSoCとして構成されてもよい。
【0042】
ホストI/Fコントローラ10は、ホストHSを相手とした信号の転送の制御を実行する。例えば、ホストI/Fコントローラ10は、ホストHSからの各種コマンドを受け付ける。また、ホストI/Fコントローラ10は、ホストHSに対してデータを転送する。
【0043】
CPU11は、メモリコントローラMC全体の制御を実行するプロセッサである。CPU11は、ファームウェアプログラムに基づいて当該制御を実行する。CPU11は、当該制御の一環として、ホストHSからのアクセスコマンドに含まれるアドレス情報に基づき、半導体記憶装置1におけるアクセス先の特定を行う。そして、CPU11は特定したアクセス先に対するアクセスの要求であるアクセス要求を生成する。また、CPU11は、ガベージコレクションなどの内部的な処理に基づき、アクセス要求を生成する。アクセス要求は、アクセス先を示すアドレス情報、アクセス種別の指定、および転送データのサイズの指定を含む。
【0044】
各フラッシュコントローラ14は、CPU11が生成したアクセス要求に基づき、1つのメモリチップCPをアクセス先とした、メモリコントローラMCと半導体記憶装置1との間のデータ転送を制御する。各フラッシュコントローラ14は、アクセス要求によって指定されたアクセス先のメモリチップCPに対し、アクセス要求によって指定されたアクセス種別の、アクセス要求によって指定されたサイズのデータの転送を実行する。
【0045】
また、各フラッシュコントローラ14は、転送データに対してエラー抑制にかかる種々の処理を行う。エラー抑制にかかる種々の処理は、一例として、誤り訂正符号化、誤り訂正、ランダマイズ処理、およびランダマイズ処理の逆処理を含む。
【0046】
具体的には、各フラッシュコントローラ14は、ECC回路(Error Correction Code circuit:ECC)140と、ランダマイザ141と、を備える。
【0047】
ECC140は、半導体記憶装置1に送信されるデータに対し、クラスタ単位で誤り訂正符号化する。また、ECC140は、半導体記憶装置1から受信したデータに対し、クラスタ単位で誤り訂正を行う。
【0048】
ランダマイザ141は、半導体記憶装置1に送信されるデータに対し、「0」の出現頻度と「1」の出現頻度とを均一にするランダマイズ処理を実行する。また、ランダマイザ141は、半導体記憶装置1から受信したデータに対し、ランダマイズ処理の逆処理を実行することで、当該データをランダマイズ処理前の状態に復元する。
【0049】
スケジューラ12は、コマンドバッファ120と、データバッファ121と、プロセッサ122と、を備える。コマンドバッファ120は、CPU11によって生成されるアクセス要求を順次受け付ける。データバッファ121は、メモリチップCPに送られるライトデータを受け付ける。コマンドバッファ120に溜まったアクセス要求の数が2以上になったとき、プロセッサ122は、メモリチャネルMCH0を介したデータ転送と、メモリチャネルMCH1を介したデータ転送と、が同時に実行されるように、2以上のアクセス要求の実行順を決定する。具体的には、プロセッサ122は、コマンドバッファ120から、4つのメモリチップCP0-0~CP0-3の何れかをアクセス先とするアクセス要求と、4つのメモリチップCP1-0~CP1-3の何れかをアクセス先とするアクセス要求と、を対にして順次取得する。一例では、プロセッサ122は、アクセス種別および転送サイズが共通する2つのアクセス要求を対にする。プロセッサ122は、対を構成する2つのアクセス要求のうちの一を第1フラッシュコントローラ14-0に、対を構成する2つのアクセス要求のうちの他を第2フラッシュコントローラ14-1に、同時に入力する。
【0050】
スケジューラ12は、2つのメモリチャネルMCHのそれぞれを、2つのフラッシュコントローラ14の1つと一対一に対応付ける。そして、スケジューラ12は、対を構成する2つのアクセス要求のうちの1つのアクセス要求を、当該アクセス要求によってアクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHに対応するフラッシュコントローラ14に入力する。また、スケジューラ12は、対を構成する2つのアクセス要求のうちの他の1つのアクセス要求を、当該アクセス要求によってアクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHに対応するフラッシュコントローラ14に入力する。
【0051】
ここでは一例として、メモリチャネルMCH0は第1フラッシュコントローラ14-0に対応付けられ、メモリチャネルMCH1は第2フラッシュコントローラ14-1に対応付けられていることとする。なお、2つのメモリチャネルMCHと2つのフラッシュコントローラ14との対応は、必ずしも固定されていなくてもよい。2つのメモリチャネルMCHと2つのフラッシュコントローラ14との対応は、動的に変更されてもよい。
【0052】
2つのフラッシュコントローラ14に、対を構成するアクセス要求が同時に入力されると、各フラッシュコントローラ14は、入力されたアクセス要求に基づき、アクセス先のメモリチップCPに対するデータ転送を同時に開始する。つまり、2つのフラッシュコントローラ14は、入力されたアクセス要求にかかるデータ転送を並行して実行する。
【0053】
なお、コマンドバッファ120内の他のいずれのアクセス要求とも対を構成することができないアクセス要求が生じることが起こり得る。このような、コマンドバッファ120内の他のいずれのアクセス要求とも対を構成することができないアクセス要求を、非対のアクセス要求と表記する。プロセッサ122は、非対のアクセス要求がある場合、その非対のアクセス要求を、対応するフラッシュコントローラ14に入力する。
【0054】
分割・結合回路15は、2つのフラッシュコントローラ14とホストチャネルHCHとの間に配置される。
【0055】
分割・結合回路15は、第1フラッシュコントローラ14-0および第2フラッシュコントローラ14-1から並行して転送データが入力された場合、第1フラッシュコントローラ14-0から入力された転送データと第2フラッシュコントローラ14-1から入力された転送データとを結合して、結合した転送データを、メモリチャネルMCHの転送レートの倍の転送レートでホストチャネルHCHを介してブリッジチップBCに転送する。
【0056】
また、分割・結合回路15は、4つのメモリチップCP0-0~CP0-3の何れかから出力されたデータと、4つのメモリチップCP1-0~CP1-3の何れかから出力されたデータと、が結合されたデータを、ホストチャネルHCHを介してメモリチャネルMCHの倍の転送レートで受信した場合、受信したデータを2つに分割する。そして、分割・結合回路15は、分割によって生成された2つのデータの一をメモリチャネルMCHと同じ転送レートで第1フラッシュコントローラ14-0に転送し、分割によって生成された2つのデータの他をメモリチャネルMCHと同じ転送レートで第2フラッシュコントローラ14-1に転送する。
【0057】
なお、CPU11の機能の一部または全部は、FPGA(field-programmable gate array)またはASIC(application specific integrated circuit)などのハードウェア回路によって実現されてもよい。また、スケジューラ12の機能の一部または全部は、CPU11がファームウェアプログラムを実行することによって実現されてもよい。
【0058】
図5は、第1の実施形態のブリッジチップBCのハードウェア構成の一例を示す図である。
【0059】
ブリッジチップBCは、第1インタフェース101と、2つの第2インタフェース102(102-0、102-1)と、コントローラ103と、を備える。
【0060】
第1インタフェース101は、メモリコントローラMCに対してホストチャネルHCHを介した信号の送受信を行うPHY回路である。
【0061】
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回路である。
【0062】
コントローラ103は、第1インタフェース101と、2つの第2インタフェース102と、の間に配されている。コントローラ103は、第1インタフェース101と、2つの第2インタフェース102と、の間の情報の授受を制御する。
【0063】
コントローラ103は、コマンドデコーダ111、分割・結合回路112、およびレジスタ113を有する。
【0064】
コマンドデコーダ111は、メモリコントローラMCからホストチャネルHCHを介して受けたコマンドを解析する。コマンドデコーダ111は、解析結果に応じて、メモリチップCPに対するコマンドを発行することができる。
【0065】
レジスタ113は、ブリッジチップBCの動作を制御するための各種情報が格納されるメモリである。一例では、レジスタ113には、ホストチャネルHCHの転送レートを指定する転送レート情報114が設定され得る。
【0066】
例えば、メモリコントローラMCは、ブリッジチップBCに、メモリチャネルMCH0を介したデータ転送と、メモリチャネルMCH1を介したデータ転送と、を同時に実行させるとき、「2倍」を示す情報を含む転送レート情報114をレジスタ113に設定する。すると、メモリコントローラMCとブリッジチップBCとは、相互に、ホストチャネルHCHを介してメモリチャネルMCHの転送レートの2倍の転送レートでデータを転送する。
【0067】
また、メモリコントローラMCは、ブリッジチップBCに、メモリチャネルMCH0を介したデータ転送と、メモリチャネルMCH1を介したデータ転送と、のうちの一方のみを実行させるとき、「1倍」を示す情報を含む転送レート情報114をレジスタ113に設定する。すると、メモリコントローラMCとブリッジチップBCとは、相互に、ホストチャネルHCHを介してメモリチャネルMCHの転送レートと同じ転送レートでデータを転送する。
【0068】
ホストチャネルHCHの転送レートの変更の際、メモリコントローラMCは、例えば、ブリッジチップBCのレジスタ113に情報を設定するコマンドと、新しい転送レートの倍率を示す情報を含む新しい転送レート情報114と、をブリッジチップBCに送信する。ブリッジチップBCでは、コマンドデコーダ111は、当該コマンドを解釈すると、受信した転送レート情報114をレジスタ115に上書き形式で格納する。そして、コントローラ103は、新しい転送レート情報114が示す転送レートでデータ転送を実行することができるように第1インタフェース101を設定する。
【0069】
なお、ホストチャネルHCHの転送レートの変更の処理の方法は上記した例に限定されない。
【0070】
分割・結合回路112は、2つの第2インタフェース102から、4つのメモリチップCP0-0~CP0-3の何れかから出力されたデータと、4つのメモリチップCP1-0~CP1-3の何れかから出力されたデータと、が同時に入力された場合、当該2つのデータを結合する。分割・結合回路112は、結合したデータを、メモリチャネルMCHの転送レートの倍の転送レートで第1インタフェース101に供給する。第1インタフェース101は、結合したデータを、メモリチャネルMCHの転送レートの倍の転送レートでホストチャネルHCHを介してメモリコントローラMCに送る。
【0071】
また、分割・結合回路112は、4つのメモリチップCP0-0~CP0-3の何れかを送信先とするデータと、4つのメモリチップCP1-0~CP1-3の何れかを送信先とするデータと、が結合されたデータをホストチャネルHCHおよび第1インタフェース101を介してメモリチャネルMCHの倍の転送レートで受信した場合、受信したデータを2つに分割する。そして、分割・結合回路15は、分割によって生成された2つのデータの一をメモリチャネルMCHと同じ転送レートで第2インタフェース102-0に転送し、分割によって生成された2つのデータの他をメモリチャネルMCHと同じ転送レートで第2インタフェース102-1に転送する。
【0072】
図6は、第1の実施形態の分割・結合回路15,112の、データを結合する機能の一例を説明するための図である。分割・結合回路15と、分割・結合回路112と、は同一の機能を有する。よってここでは、分割・結合回路15,112を代表して、分割・結合回路15を図示し、その機能について説明する。
【0073】
図6は、分割・結合回路15に、各々1バイトのデータA0、データA1、データA2、データA3のデータ列が入力され、これと同時に、各々1バイトのデータB0、データB1、データB2、データB3のデータ列が入力されたケースにおける結合方法を示す。このケースでは、分割・結合回路15は、入力された2つのデータ列から、2バイトずつ交互にデータを取得して、取得した2バイトのデータを取得した順で順次結合する。これによって、分割・結合回路15は、データA0、データA1、データB0、データB1、データA2、データA3、データB2、およびデータB3がこの順で並んだデータ列を生成する。そして、分割・結合回路15は、生成したデータA0、データA1、データB0、データB1、データA2、データA3、データB2、およびデータB3のデータ列を出力する。
【0074】
分割・結合回路15は、2つのデータ列が同時に入力されたときのそれぞれのデータ列の転送周波数の2倍の転送周波数で、2つのデータ列を結合して生成した1つのデータ列を出力する。分割・結合回路15には、2つのデータ列のそれぞれがメモリチャネルMCHの転送レートと同じ転送レートで入力される。よって、分割・結合回路15は、2つのデータ列を結合して生成した1つのデータ列をメモリチャネルMCHの転送レートの2倍の転送レートで出力する。
【0075】
図7は、第1の実施形態の分割・結合回路15,112の、データを分割する機能の一例を説明するための図である。ここでも、分割・結合回路15,112を代表して、分割・結合回路15を図示し、その機能について説明する。
【0076】
図7は、分割・結合回路15に、各々1バイトのデータC0、データC1、データC2、データC3、データC4、データC5、データC6、およびデータC7のデータ列が入力されたケースにおける分割方法を示す。このケースでは、分割・結合回路15は、入力されたデータ列から2バイトずつデータを取得して、取得した2バイトのデータを2つの経路に交互に振り分ける。これによって、分割・結合回路15は、入力されたデータC0、データC1、データC2、データC3、データC4、データC5、データC6、およびデータC7のデータ列から、データC0、データC1、データC4、およびデータC5のデータ列と、データC2、データC3、データC6、およびデータC7のデータ列と、の2つのデータ列を生成し、生成した2つのデータ列を出力する。
【0077】
分割・結合回路15は、入力された1つのデータ列の転送周波数の半分の転送周波数で、分割によって生成した2つのデータ列のそれぞれを出力する。分割・結合回路15には、1つのデータ列がメモリチャネルMCHの転送レートの2倍の転送レートで入力される。よって、分割・結合回路15は、分割によって生成した2つのデータ列のそれぞれをメモリチャネルMCHの転送レートと同じ転送レートで出力する。
【0078】
なお、分割・結合回路15,112によるデータ列の結合の方法およびデータ列の分割の方法は、上記に述べた例に限定されない。
【0079】
例えば、分割・結合回路15,112は、2つのチャネルから入力された、それぞれが8ビット幅の2つの転送データそれぞれを4ビット幅の転送データに変換し、変換した4ビット幅の2つの転送データを結合し、統合した8ビット幅の転送データを結合前の倍の転送周波数で1つのチャネルに出力してもよい。
【0080】
また、分割・結合回路15,112は、1つのチャネルから8ビット幅の転送データを受信した場合、当該8ビット幅の転送データを2つの4ビット幅の転送データに分割する。そして、分割・結合回路15,112は、分割によって得られた時間的に連続する2つの4ビット幅の転送データのそれぞれを8ビット幅の転送データに変換し、変換後の2つの8ビット幅の転送データのそれぞれを、分割前の転送データの半分の転送周波数で2つのチャネルに出力してもよい。
【0081】
図8は、第1の実施形態のメモリシステムSYSにおけるデータの流れの一例を説明するための模式的な図である。本図では、メモリシステムSYSが備える構成要素のうちのいくつかの構成要素の図示が省略されている。また、メモリチャネルMCHの転送レートをR[GB/s]とする。よって、2つのデータ列が結合された1つのデータ列がホストチャネルHCHで転送される場合、ホストチャネルHCHでの転送レートは2R[GB/s]に設定される。
【0082】
例えば、CPU11は、図8に示すように、データDAの転送を要求するアクセス要求CA、データDBの転送を要求するアクセス要求CB、データDCの転送を要求するアクセス要求CC、データDDの転送を要求するアクセス要求CD、データDEの転送を要求するアクセス要求CE、およびデータDFの転送を要求するアクセス要求CF、をこの順に順次、コマンドバッファ120に格納したとする。データDA、データDB、データDC、データDD、データDE、およびデータDFはデータバッファ121に格納される。なお、データDX(ただし「X」は英文字)およびアクセス要求CXに付した数値である「0」または「1」は、アクセス先のメモリチップCPが接続されたメモリチャネルMCHのチャネル番号に対応する。データDXは、メモリチャネルMCH0に接続されたメモリチップCPがアクセス先として設定されたデータであり、データDXは、メモリチャネルMCH1に接続されたメモリチップCPがアクセス先として設定されたデータである。
【0083】
スケジューラ12のプロセッサ122は、半導体記憶装置1において、メモリチャネルMCH0を用いたデータ転送と、メモリチャネルMCH1を用いたデータ転送と、が同時に発生するように、これらのアクセス要求の実行スケジュールを変更する。具体的には、プロセッサ122は、データDAの転送を要求するアクセス要求CAとデータDCの転送を要求するアクセス要求CCとを対にして取得し、取得したそれぞれのアクセス要求を対応するフラッシュコントローラ14に実行させる。続いて、プロセッサ122は、データDBの転送を要求するアクセス要求CBとデータDDの転送を要求するアクセス要求CDとを対にして取得し、取得したそれぞれのアクセス要求を対応するフラッシュコントローラ14に実行させる。続いて、プロセッサ122は、データDEの転送を要求するアクセス要求CEとデータDFの転送を要求するアクセス要求CFとを対にして取得し、取得したそれぞれのアクセス要求を対応するフラッシュコントローラ14に実行させる。
【0084】
ホストチャネルHCHでは、アクセス要求CAとアクセス要求CCとの対が転送され、データDAとデータDCとが対として結合されて転送され、アクセス要求CBとアクセス要求CDとの対が転送され、データDBとデータDDとが対として結合されて転送され、アクセス要求CEとアクセス要求CFとの対が転送され、データDEとデータDFとが対として結合されて転送される。この例では、アクセス要求の対、および対として結合されたデータのみが転送されるので、ホストチャネルHCHの転送レートは2R[GB/s]に維持される。
【0085】
半導体記憶装置1では、ブリッジチップBCにおいては、対として結合された2つのデータは分割・結合回路112によって別々のデータに分割される。そして、メモリチャネルMCH0には、アクセス要求CA、データDA、アクセス要求CB、データDB、アクセス要求CE、およびデータDEがR[GB/s]の転送レートで転送される。メモリチャネルMCH0での上記の転送と並行して、メモリチャネルMCH1では、アクセス要求CC、データDC、アクセス要求CD、データDD、アクセス要求CF、およびデータDFがR[GB/s]の転送レートで転送される。
【0086】
図9は、第1の実施形態のメモリシステムSYSにおけるデータの流れの他の一例を説明するための模式的な図である。図9は、非対のアクセス要求が存在する場合のデータの流れを例示する。
【0087】
例えば、CPU11は、データDIの転送を要求するアクセス要求、データDJの転送を要求するアクセス要求、データDKの転送を要求するアクセス要求、データDLの転送を要求するアクセス要求、データDMの転送を要求するアクセス要求、およびデータDNの転送を要求するアクセス要求、をこの順に順次コマンドバッファ120に格納することとする。
【0088】
例えば、データDIの転送を要求するアクセス要求CI、データDJの転送を要求するアクセス要求CJ、データDKの転送を要求するアクセス要求CK、データDLの転送を要求するアクセス要求CL、およびデータDMの転送を要求するアクセス要求CMがコマンドバッファ120に存在し、データDNの転送を要求するアクセス要求CNがまだ入力されていない場合、プロセッサ122は、まず、データDIの転送を要求するアクセス要求CIとデータDKの転送を要求するアクセス要求CKとを対にして取得し、取得したそれぞれのアクセス要求を対応するフラッシュコントローラ14に実行させる。
【0089】
その後、データDJの転送を要求するアクセス要求CJと対を構成することができるアクセス要求は、コマンドバッファ120にはまだ存在しない。つまり、データDJの転送を要求するアクセス要求CJは、非対のアクセス要求に該当する。プロセッサ122は、データDJの転送を要求するアクセス要求CJを単独で第1フラッシュコントローラ14-0に入力する。
【0090】
その後、データDNの転送を要求するアクセス要求CNがコマンドバッファ120に入力されると、プロセッサ122は、データDLの転送を要求するアクセス要求CLとデータDNの転送を要求するアクセス要求CNとを対にして取得し、取得したそれぞれのアクセス要求を対応するフラッシュコントローラ14に実行させる。
【0091】
そして、プロセッサ122は、データDMの転送を要求するアクセス要求CMを非対のアクセス要求とみなし、データDMの転送を要求するアクセス要求CMを単独で第1フラッシュコントローラ14-0に入力する。
【0092】
ホストチャネルHCHでは、対にされたデータの転送は2R[GB/s]の転送レートで転送され、単独のデータの転送はR[GB/s]の転送レートで転送される。スケジューラ12は、対にされたデータの転送の次に単独のデータの転送を行う場合と、単独のデータの転送の次に対にされたデータの転送を行う場合と、においては、ホストチャネルHCHの転送レートを変更する処理を行う。具体的には、メモリコントローラMCは、転送レートの変更の際に、レート変更コマンドCrを送信する。
【0093】
よって、ホストチャネルHCHでは、アクセス要求CIとアクセス要求CKとの対と、対として結合されたデータDIおよびデータDKと、転送レートを2R[GB/s]からR[GB/s]に変更するレート変更コマンドCrと、が2R[GB/s]の転送レートで転送される。そして、アクセス要求CJと、データDJと、転送レートをR[GB/s]から2R[GB/s]に変更するレート変更コマンドCrと、がR[GB/s]の転送レートで転送される。そして、アクセス要求CLとアクセス要求CNとの対と、対として結合されたデータDLおよびデータDNと、転送レートを2R[GB/s]からR[GB/s]に変更するレート変更コマンドCrと、が2R[GB/s]の転送レートで転送される。そして、アクセス要求CMと、データDMと、がR[GB/s]の転送レートで転送される。
【0094】
このように、非対のアクセス要求が生じた場合、ホストチャネルHCHの転送レートの変更が行われる。ホストチャネルHCHの転送レートの変更の際には、メモリコントローラMCは、ブリッジチップBCに対し、ホストチャネルHCHの転送レートを変更する処理を実行する必要が生じる。
【0095】
図10は、第1の実施形態のホストチャネルHCHの転送レートを変更する処理の方法の一例を説明するためのタイミングチャートである。図10は、ライトのアクセス種別が指定された対のアクセス要求が実行され、その後、ライトのアクセス種別が指定された非対のアクセス要求が実行されるケースを示す。なお、図10には、ホストチャネルHCH、メモリチャネルMCH0、およびメモリチャネルMCH1のそれぞれを転送される信号のうち、データ信号DQ[7:0]およびデータストローブ信号DQSnの波形が示されている。
【0096】
まず、メモリコントローラMCは、ホストチャネルHCHを介してブリッジチップBCに、ライトコマンドCOM1、並列転送コマンドCOM2、第1アドレスAddr1、第2アドレスAddr2をこの順でデータ信号DQ[7:0]として転送する(S101)。ライトコマンドCOM1は、ライトを要求するコマンドである。並列転送コマンドCOM2は、複数(ここでは2つ)のデータが結合されたデータの転送を通知するコマンドである。第1アドレスAddr1は、メモリチャネルMCH0に接続されたメモリチップCP0のうちのアクセス先の位置を示す。第2アドレスAddr2は、メモリチャネルMCH1に接続されたメモリチップCP1のうちのアクセス先の位置を示す。
【0097】
ブリッジチップBCは、メモリチャネルMCH0には、ライトコマンドCOM1、並列転送コマンドCOM2、第1アドレスAddr1、第2アドレスAddr2のうちの並列転送コマンドCOM2および第2アドレスAddr2をマスクして、ライトコマンドCOM1および第1アドレスAddr1を転送する(S102)。ブリッジチップBCは、メモリチャネルMCH1には、ライトコマンドCOM1、並列転送コマンドCOM2、第1アドレスAddr1、第2アドレスAddr2のうちの並列転送コマンドCOM2および第1アドレスAddr1をマスクして、ライトコマンドCOM1および第2アドレスAddr2を転送する(S103)。
【0098】
メモリコントローラMCは、ライトコマンドCOM1、並列転送コマンドCOM2、第1アドレスAddr1、第2アドレスAddr2のコマンドシーケンスの転送後、第1アドレスAddr1が示す位置がアクセス先(つまりライト先)であるデータEと第2アドレスAddr2が示す位置がアクセス先(つまりライト先)であるデータFとを結合したデータのブリッジチップBCへの転送を行う(S104)。なお、S104で転送されるデータのうち、白抜き六角形は、データEを構成する1バイトのデータを示し、斜線ハッチングされた六角形はデータFを構成する1バイトのデータを示す。メモリコントローラMCは、データEとデータFとを結合したデータを転送する際には、メモリチャネルMCHの転送周波数の倍の周波数で、データ信号[7:0]およびデータストローブ信号DQSnを転送する。
【0099】
ブリッジチップBCは、データEとデータFとを結合したデータをデータEとデータFとに分割する。そして、ブリッジチップBCは、データEをメモリチャネルMCH0に転送し(S105)、データFをメモリチャネルMCH1に転送する(S106)。
【0100】
メモリコントローラMCは、データEとデータFとを結合したデータの転送後、非対のアクセス要求を実行するために、転送レートの変更の処理を実行する(S107)。
【0101】
S107では、メモリコントローラMCは、ホストチャネルHCHの転送レートを、メモリチャネルMCHの2倍の転送レートからメモリチャネルMCHと同じ転送レートに変更する。例えば、メモリコントローラMCは、新たな転送レート情報114をレジスタ115に設定するSetFeatureコマンドCOM4を、レジスタ115のアドレスAddr7および当該新たな転送レート情報114を示すデータdatとともに送信する。ここでは、新たな転送レート情報114には、ホストチャネルHCHの転送レートをメモリチャネルMCHと同じ転送レートに設定する旨が記述されている。ブリッジチップBCは、レジスタ115に新たな転送レート情報114を上書き形式で格納するブリッジチップBCは、格納した新たな転送レート情報114に従い、第1インタフェース101を、メモリチャネルMCHと同じ転送レートでホストチャネルHCHを介したデータ転送が可能に設定する。なお、SetFeatureコマンドCOM4は図9における変更コマンドCrの一例である。
【0102】
続いて、メモリコントローラMCは、ホストチャネルHCHを介してブリッジチップBCに、ライトコマンドCOM1、および第3アドレスAddr3をこの順でデータ信号DQ[7:0]として転送する(S108)。ここで、第3アドレスAddr3は、何れかのメモリチャネルMCHに接続されたメモリチップCPのうちのアクセス先の位置を示す。ここでは一例として、第3アドレスAddr3は、メモリチャネルMCH0に接続されたメモリチップCP0のうちのアクセス先の位置を示すこととする。
【0103】
ブリッジチップBCは、メモリチャネルMCH0に、ライトコマンドCOM1および第3アドレスAddr3を転送する(S109)。
【0104】
メモリコントローラMCは、ライトコマンドCOM1、および第3アドレスAddr3の転送後、第3アドレスAddr3が示す位置がアクセス先(つまりライト先)であるデータGのブリッジチップBCへの転送を行う(S110)。ここで、ドットハッチングされた六角形は、データGを構成する1バイトのデータを示す。S110では、メモリコントローラMCは、データGを転送する際には、メモリチャネルMCHの転送周波数と同じ周波数で、データ信号[7:0]およびデータストローブ信号DQSnを転送する。
【0105】
ブリッジチップBCは、データGをメモリチャネルMCH0に転送する(S111)。
【0106】
このように、2つのデータが結合されたデータを転送し、その後に結合されていない単独のデータを転送する場合には、メモリコントローラMCは、ホストチャネルHCHの転送レートをメモリチャネルMCHの転送レートの2倍の転送レートからメモリチャネルMCHの転送レートと同じ転送レートに変更する処理を行う。
【0107】
結合されていない単独のデータを転送し、その後に2つのデータが結合されたデータを転送する場合には、メモリコントローラMCは、S107と同様の処理を行うことにより、ホストチャネルHCHの転送レートをメモリチャネルMCHの転送レートと同じ転送レートからメモリチャネルMCHの転送レートの2倍の転送レートに変更する処理を行う。
【0108】
図11は、第1の実施形態のスケジューラ12の動作の一例を示すフローチャートである。ここでは、コマンドバッファ120にアクセス要求が格納される動作の説明を省略する。アクセス要求がCPU11によって発行されると、当該アクセス要求は、図11に示す一連の動作とは非同期に、コマンドバッファ120に格納されることとする。
【0109】
まず、プロセッサ122は、所定数のアクセス要求がコマンドバッファ120に存在するか否かを判定する(S201)。所定数は、1であってもよいし、2以上であってもよい。
【0110】
コマンドバッファ120に格納されているアクセス要求の数が所定数に満たない場合(S201:No)、プロセッサ122は、S201の判定処理を再び実行することで、コマンドバッファ120に格納されているアクセス要求の数が所定数に至るまで次の処理の実行を待つ(postpone)。
【0111】
所定数のアクセス要求がコマンドバッファ120に存在する場合(S201:Yes)、プロセッサ122は、コマンドバッファ120に格納されている所定数のアクセス要求のうちから1つのアクセス要求を選択する(S202)。例えば、プロセッサ122は、コマンドバッファ120に格納されたタイミングが最も早いアクセス要求を選択する。なお、アクセス要求の選択の方法はこれに限定されない。S202の処理において選択されたアクセス要求を、第1アクセス要求と表記する。
【0112】
続いて、プロセッサ122は、アクセス先として指示されたメモリチップCPが接続されたメモリチャネルMCHが第1アクセス要求と異なり、かつ指示された転送データのサイズおよびアクセス種別が第1アクセス要求と同じアクセス要求がコマンドバッファ120に存在するか否かを判定する(S203)。メモリチャネルMCHが第1アクセス要求と異なり、かつ指示された転送データのサイズおよびアクセス種別が第1アクセス要求と同じアクセス要求を、第2アクセス要求と表記する。
【0113】
第2アクセス要求がコマンドバッファ120に存在する場合(S203:Yes)、プロセッサ122は、ホストチャネルHCHの現在の転送レートはメモリチャネルMCHの転送レートの2倍に設定されているか否かを判定する(S204)。
【0114】
ホストチャネルHCHの現在の転送レートはメモリチャネルMCHの転送レートの2倍に設定されていない場合(S204:No)、プロセッサ122は、ホストチャネルHCHの転送レートをメモリチャネルMCHの転送レートの2倍に設定する(S205)。例えば、プロセッサ122は、ホストチャネルHCHの転送レートをメモリチャネルMCHの転送レートの2倍に設定する要求をいずれかのフラッシュコントローラ14に入力し、そのフラッシュコントローラ14に、ブリッジチップBCが備えるレジスタ115への転送レート情報114の設定を実行させる。
【0115】
ホストチャネルHCHの現在の転送レートはメモリチャネルMCHの転送レートの2倍に設定されている場合(S204:Yes)、またはS205の後、プロセッサ122は、第1アクセス要求および第2アクセス要求のそれぞれを、第1フラッシュコントローラ14-0および第2フラッシュコントローラ14-1のうちのアクセス先として指示されたメモリチップCPが接続されたメモリチャネルMCHに対応するフラッシュコントローラ14に同時に入力する(S206)。
【0116】
第2アクセス要求がコマンドバッファ120に存在しない場合(S203:No)、プロセッサ122は、ホストチャネルHCHの現在の転送レートはメモリチャネルMCHの転送レートの2倍に設定されているか否かを判定する(S207)。
【0117】
ホストチャネルHCHの現在の転送レートはメモリチャネルMCHの転送レートの2倍に設定されている場合(S207:Yes)、プロセッサ122は、ホストチャネルHCHの転送レートをメモリチャネルMCHの転送レートと同じ転送レートに設定する(S208)。例えば、プロセッサ122は、ホストチャネルHCHの転送レートをメモリチャネルMCHの転送レートの転送レートと同じに設定する要求をいずれかのフラッシュコントローラ14に入力し、そのフラッシュコントローラ14に、ブリッジチップBCが備えるレジスタ115への転送レート情報114の設定を実行させる。
【0118】
ホストチャネルHCHの現在の転送レートはメモリチャネルMCHの転送レートの2倍に設定されていない場合(S207:No)、またはS208の後、プロセッサ122は、第1アクセス要求を、第1フラッシュコントローラ14-0および第2フラッシュコントローラ14-1のうちのアクセス先として指示されたメモリチップCPが接続されたメモリチャネルMCHに対応するフラッシュコントローラ14に入力する(S209)。
【0119】
S206またはS209の後、プロセッサ122は、他に1以上のアクセス要求がコマンドバッファ120に存在するか否かを判定する(S210)。コマンドバッファ120に1以上のアクセス要求が残っている場合(S210:Yes)、プロセッサ122は、コマンドバッファ120内の1以上のアクセス要求から新たにアクセス要求を選択する(S211)。そして、プロセッサ122は、S211で選択したアクセス要求を第1アクセス要求としてS203から処理を再び繰り返す。
【0120】
コマンドバッファ120に1以上のアクセス要求が残っていない場合(S210:No)、プロセッサ122は、S201から処理を再び繰り返す。
【0121】
なお、上記の例では、第1アクセス要求が非対のアクセス要求に該当する場合、即ちプロセッサ122がS203の判定処理においてNoと判定した場合、プロセッサ122は、ただちにその第1アクセス要求を1つのフラッシュコントローラ14に実行させた。第1アクセス要求が非対のアクセス要求に該当する場合の処理はこれに限定されない。
【0122】
例えば、プロセッサ122は、第1アクセス要求が非対のアクセス要求に該当する場合、その第1アクセス要求の実行を所定時間、待つ(postpone)。所定時間が経過しても第1アクセス要求が依然として非対のアクセス要求に該当する場合、プロセッサ122は、第1アクセス要求を1つのフラッシュコントローラ14に実行させてもよい。所定時間が経過する前に第2アクセス要求に該当する新たなアクセス要求がコマンドバッファ120に格納された場合、プロセッサ122は、S204の処理を進めてもよい。プロセッサ122は、非対のアクセス要求に該当する第1アクセス要求の実行を待つ期間、他のアクセス要求を新たに第1アクセス要求として選択して、S203からの処理を実行してもよい。
【0123】
また、以上では、1つのホストチャネルHCHによって1つの半導体記憶装置1がメモリコントローラMCに接続される例を説明した。第1の実施形態の技術は、複数の半導体記憶装置1を備えたメモリシステムにも適用可能である。
【0124】
図12は、第1の実施形態のメモリシステムの構成の別の一例を示す模式的な図である。図12に示すメモリシステムSYSaは、複数の半導体記憶装置1の一例として、2つの半導体記憶装置1を備える。2つの半導体記憶装置1の1つは、ホストチャネルHCH0によってメモリコントローラMCaに接続される。2つの半導体記憶装置1の他の1つは、ホストチャネルHCH1によってメモリコントローラMCaに接続される。
【0125】
メモリコントローラMCaは、スケジューラ12、2つのフラッシュコントローラ14、および分割・結合回路15のセットを、ホストチャネルHCH毎に備える。そして、各セットを構成するスケジューラ12、2つのフラッシュコントローラ14、および分割・結合回路15は、図1図11を用いて説明した同名の構成要素と同じ動作を行う。
【0126】
また、以上では、半導体記憶装置1は、2つのメモリチャネルMCHを備える例を説明した。半導体記憶装置1は、3以上のメモリチャネルMCHを備え、それぞれのメモリチャネルMCHに1以上のメモリチップCPが接続されていてもよい。
【0127】
例えば、N(ただしNは2以上の整数)個のメモリチャネルMCHを備え、それぞれのメモリチャネルMCHに1以上のメモリチップCPが接続された半導体記憶装置1の制御を可能とするためには、メモリコントローラMCには、1つのホストチャネルHCHに対してN個またはN個より多いフラッシュコントローラ14が設けられる。そして、スケジューラ12は、コマンドバッファ120に格納されたアクセス要求のうちから、指示されたアクセス先のメモリチップCPが接続されたメモリチャネルMCHがそれぞれ異なるN個のアクセス要求のセットを順次、取得する。そして、スケジューラ12は、取得したセットを構成する各アクセス要求をN個のフラッシュコントローラ14のうちのそれぞれ異なるフラッシュコントローラ14に入力する。N個のフラッシュコントローラ14は、それぞれ、入力されたアクセス要求に基づき、並行してデータ転送を行う。
【0128】
つまり、第1の実施形態によれば、メモリコントローラMC,MCaは、一つの半導体記憶装置1が具備する複数のメモリチップCPのうちの一をアクセス先として指定した転送を要求する複数のアクセス要求を生成する。スケジューラ12は、アクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHがそれぞれ異なるN個のアクセス要求を同時に実行できるよう、N個のアクセス要求の実行順を決定する。メモリコントローラMC,MCaは、ホストチャネルHCHを介して、メモリチャネルMCHのN倍の転送レートで、N個のアクセス要求にかかるN個のデータ転送を並行して実行する。
【0129】
よって、半導体記憶装置1に、N個のメモリチャネルMCHの全てを同時に使用させることができ、メモリコントローラMC,MCaと半導体記憶装置1との間の転送効率が向上する。つまり、メモリコントローラMC,MCaは、半導体記憶装置1に対して高い効率でデータ転送を行うことができる好適な構成を有する。
【0130】
また、第1の実施形態によれば、メモリコントローラMC,MCaは、コマンドバッファ120に格納された複数のアクセス要求のうちから、アクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHがそれぞれ異なるN個のアクセス要求の1以上のセットを順次、特定する。そして、メモリコントローラMC,MCaは、特定した1以上のセットのそれぞれを構成するN個のアクセス要求を並行して実行する。
【0131】
よって、メモリコントローラMC,MCaは、半導体記憶装置1に対して高い効率でデータ転送を行うことができる。
【0132】
なお、以上の説明では、非対のアクセス要求が存在した場合、メモリコントローラMC,MCaは、ホストチャネルHCHの転送レートをメモリチャネルMCHの2倍の転送レートからメモリチャネルMCHの転送レートと同じ転送レートに変更した。半導体記憶装置1がN個のメモリチャネルMCHを備える場合は、メモリコントローラMC,MCaは、例えば下記のように動作するよう構成されてもよい。即ち、メモリコントローラMC,MCaは、アクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHが異なるアクセス要求の数がM(Mは1以上N未満の整数)個しかない場合、ホストチャネルHCHの転送レートをメモリチャネルMCHのN倍の転送レートからM倍の転送レートに変更し、M個のアクセス要求を並行して実行する。
【0133】
(第2の実施形態)
第1の実施形態では、メモリコントローラMCは、アクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHが異なるアクセス要求の数がM個しかない場合、ホストチャネルHCHの転送レートをメモリチャネルMCHのN倍からM倍に変更した。第2の実施形態では、ホストチャネルHCHの転送レートの設定の変更に要する時間を抑制するために、ホストチャネルHCHの転送レートを常にメモリチャネルMCHの転送レートのN倍に維持する。
【0134】
以下、第2の実施形態のメモリシステムSYSbについて説明する。なお、ここでは、第1の実施形態のメモリシステムSYSと異なる事項について説明する。第1の実施形態のメモリシステムSYSと同じ事項については説明を省略または簡略的に説明する。また、第2の実施形態でも、半導体記憶装置1は2個のメモリチャネルMCH0,MCH1を有するケースについて説明する。つまり、Nは2であることとする。
【0135】
図13は、第2の実施形態のメモリシステムSYSbにおけるデータの流れの一例を説明するための模式的な図である。図13は、非対のアクセス要求が存在する場合のデータの流れを例示する。
【0136】
ここでは、図9で説明した例と同じく、CPU11は、データDIの転送を要求するアクセス要求CI、データDJの転送を要求するアクセス要求CJ、データDKの転送を要求するアクセス要求CK、データDLの転送を要求するアクセス要求CL、データDMの転送を要求するアクセス要求CM、およびデータDNの転送を要求するアクセス要求CN、をこの順に順次コマンドバッファ120に格納することとする。
【0137】
例えば、データDIの転送を要求するアクセス要求CI、データDJの転送を要求するアクセス要求CJ、データDKの転送を要求するアクセス要求CK、データDLの転送を要求するアクセス要求CL、およびデータDMの転送を要求するアクセス要求CMがコマンドバッファ120に存在し、データDNの転送を要求するアクセス要求CNがまだ入力されていない場合、プロセッサ122は、まず、データDIの転送を要求するアクセス要求CIとデータDKの転送を要求するアクセス要求CKとを対にして取得し、取得したそれぞれのアクセス要求を対応するフラッシュコントローラ14に実行させる。
【0138】
その後、データDJの転送を要求するアクセス要求CJと対を構成することができるアクセス要求は、コマンドバッファ120にはまだ存在しない。データDJの転送を要求するアクセス要求CJのような非対のアクセス要求が生じた場合、プロセッサ122は、非対のアクセス要求と共通するアクセス種別の、ダミーデータDdummyの転送を要求するアクセス要求Cdmを生成する。ダミーデータDdummyは、例えばオールゼロのデータである。なお、ダミーデータDdummyの中身はこれに限定されない。ダミーデータDdummyの転送を要求するアクセス要求Cdmによるアクセス種別およびダミーデータDdummyのサイズは、非対のアクセス要求と共通とされる。
【0139】
プロセッサ122は、データDJの転送を要求するアクセス要求CJを第1フラッシュコントローラ14-0に入力し、それと同時に、ダミーデータDdummyの転送を要求するアクセス要求Cdmを第2フラッシュコントローラ14-1に入力する。
【0140】
第1フラッシュコントローラ14-0は、データDJの転送を要求するアクセス要求CJを実行し、同時に、第2フラッシュコントローラ14-1は、ダミーデータDdummyの転送を要求するアクセス要求Cdmを実行する。
【0141】
非対のアクセス要求であるデータDJの転送を要求するアクセス要求CJと、ダミーデータDdummyの転送を要求するアクセス要求Cdmとが、共にリード要求である場合、第1フラッシュコントローラ14-0はデータDJの出力を要求するコマンドをブリッジチップBCに転送し、第2フラッシュコントローラ14-1はダミーデータDdummyの出力を要求するコマンドをブリッジチップBCに転送する。ブリッジチップBCでは、コントローラ103のコマンドデコーダ111は、データDJの出力を要求するコマンドを、メモリチャネルMCH0に接続されたアクセス要求CJによって指示されたアクセス先のメモリチップCP0に転送して、データDJを取得する。また、コマンドデコーダ111は、ダミーデータDdummyの出力を指示するコマンドを解釈すると、ダミーデータDdummyを生成する。そして、コマンドデコーダ111は、リードデータとダミーデータDdummyとを分割・結合回路112に同時に入力する。分割・結合回路112は、データDJとダミーデータDdummyとを結合し、結合後のデータをホストチャネルHCHを介してメモリチャネルMCHの2倍の転送レートでメモリコントローラMCbに転送する。
【0142】
非対のアクセス要求であるデータDJの転送を要求するアクセス要求CJと、ダミーデータDdummyの転送を要求するアクセス要求Cdmとが、共にライト要求である場合、第1フラッシュコントローラ14-0はデータDJを分割・結合回路15に入力し、それと同時に、第2フラッシュコントローラ14-1はダミーデータDdummyを生成して生成したダミーデータDdummyを分割・結合回路15に入力する。分割・結合回路15は、データDJとダミーデータDdummyとを結合し、結合後のデータをホストチャネルHCHを介してメモリチャネルMCHの2倍の転送レートでブリッジチップBCに転送する。ブリッジチップBCでは、分割・結合回路112が、データDJとダミーデータDdummyとが結合されたデータを、データDJとダミーデータDdummyとに分割する。そして、コントローラ103は、ダミーデータDdummyを破棄し、データDJをメモリチャネルMCH0に接続されたアクセス先のメモリチップCP0に転送する。
【0143】
続いて、データDNの転送を要求するアクセス要求CNがコマンドバッファ120に入力されると、プロセッサ122は、データDLの転送を要求するアクセス要求CLとデータDNの転送を要求するアクセス要求CNとを対にして取得し、取得したそれぞれのアクセス要求を対応するフラッシュコントローラ14に実行させる。
【0144】
そして、プロセッサ122は、データDMの転送を要求するアクセス要求CMを非対のアクセス要求とみなす。よって、データDJの転送を要求するアクセス要求CJのケースと同様、プロセッサ122は、データDMの転送を要求するアクセス要求CMを第1フラッシュコントローラ14-0に入力し、それと同時に、ダミーデータDdummyの転送を要求するアクセス要求Ddmを第2フラッシュコントローラ14-1に入力する。
【0145】
このように、或るアクセス要求(第1のアクセス要求と表記する)が非対である場合、ダミーデータDdummyの転送を要求するアクセス要求(第2のアクセス要求と表記する)が生成されて、第1のアクセス要求と第2のアクセス要求とによって対が構成される。そして、第1のアクセス要求にかかるデータと、ダミーデータDdummyと、が結合されたデータが、ホストチャネルHCHを介して、メモリチャネルMCHの転送レートの2倍の転送レートで転送される。よって、非対のアクセスが生じたとしても、ホストチャネルHCHの転送レートがメモリチャネルMCHの転送レートの2倍に維持され、転送レートの変更は不要とされる。つまり、第2の実施形態によれば、非対のアクセス要求の処理を目的としたホストチャネルHCHの転送レートの設定の変更に費やす時間が不要とされ、データの転送効率が向上する。
【0146】
図14は、第2の実施形態の非対のアクセス要求にかかるデータ転送の方法の一例を説明するためのタイミングチャートである。図14は、ライトのアクセス種別が指定された対のアクセス要求が実行され、その後、ライトのアクセス種別が指定された非対のアクセス要求が実行されるケースを示す。なお、図14には、ホストチャネルHCH、メモリチャネルMCH0、およびメモリチャネルMCH1のそれぞれを転送される信号のうち、データ信号DQ[7:0]およびデータストローブ信号DQSnの波形が示されている。
【0147】
まず、メモリコントローラMCは、ホストチャネルHCHを介してブリッジチップBCに、ライトコマンドCOM1、並列転送コマンドCOM2、第4アドレスAddr4、第5アドレスAddr5をこの順でデータ信号DQ[7:0]として転送する(S301)。第4アドレスAddr4は、メモリチャネルMCH0に接続されたメモリチップCP0のうちのアクセス先の位置を示す。第5アドレスAddr5は、メモリチャネルMCH1に接続されたメモリチップCP1のうちのアクセス先の位置を示す。
【0148】
ブリッジチップBCは、メモリチャネルMCH0には、ライトコマンドCOM1、並列転送コマンドCOM2、第4アドレスAddr4、第5アドレスAddr5のうちの並列転送コマンドCOM2および第5アドレスAddr5をマスクして、ライトコマンドCOM1および第4アドレスAddr4を転送する(S302)。ブリッジチップBCは、メモリチャネルMCH1には、ライトコマンドCOM1、並列転送コマンドCOM2、第4アドレスAddr4、第5アドレスAddr5のうちの並列転送コマンドCOM2および第4アドレスAddr4をマスクして、ライトコマンドCOM1および第5アドレスAddr5を転送する(S303)。
【0149】
メモリコントローラMCは、ライトコマンドCOM1、並列転送コマンドCOM2、第4アドレスAddr4、第5アドレスAddr5のコマンドシーケンスの転送後、第4アドレスAddr4が示す位置がアクセス先(つまりライト先)であるデータHと第5アドレスAddr5が示す位置がアクセス先(つまりライト先)であるデータIとを結合したデータのブリッジチップBCへの転送を行う(S304)。なお、S304で転送されるデータのうち、白抜き六角形は、データHを構成する1バイトのデータを示し、斜線ハッチングされた六角形はデータIを構成する1バイトのデータを示す。メモリコントローラMCは、データHとデータIとを結合したデータを転送する際には、メモリチャネルMCHの転送周波数の倍の周波数で、データ信号[7:0]およびデータストローブ信号DQSnを転送する。
【0150】
ブリッジチップBCは、データHとデータIとを結合したデータをデータHとデータIとに分割する。そして、ブリッジチップBCは、データHをメモリチャネルMCH0に転送し(S305)、データIをメモリチャネルMCH1に転送する(S306)。
【0151】
メモリコントローラMCは、データHとデータIとを結合したデータの転送後、非対のアクセス要求を実行する。ここでは一例として、非対のアクセス要求は、メモリチャネルMCH0に接続されたメモリチップCP0をライト先としてデータJのライトを要求するライト要求であることとする。
【0152】
メモリコントローラMCは、ホストチャネルHCHを介してブリッジチップBCに、ライトコマンドCOM1、ダミー転送コマンドCOM3、および第6アドレスAddr6をこの順でデータ信号DQ[7:0]として転送する(S307)。ダミー転送コマンドCOM3は、ダミーデータDdummyを含むN個(ここでは2つ)のデータが結合されたデータを転送することを通知するコマンドである。第6アドレスAddr6は、結合前のN個(ここでは2つ)のデータのうちのダミーデータDdummyでないデータのライト先の位置を示す。ここでは、第6アドレスAddr6は、メモリチャネルMCH0に接続されたメモリチップCP0のうちのライト先の位置を示す。なお、ダミー転送コマンドCOM3は、図13に示したアクセス要求Cdmに対応する。
【0153】
ブリッジチップBCは、ライトコマンドCOM1、ダミー転送コマンドCOM3、および第6アドレスAddr6のうちのダミー転送コマンドCOM3をマスクして、メモリチャネルMCH0に、ライトコマンドCOM1および第6アドレスAddr6を転送する(S308)。
【0154】
メモリコントローラMCは、ライトコマンドCOM1、ダミー転送コマンドCOM3、および第6アドレスAddr6の転送後、データJとダミーデータDdummyとを結合したデータのブリッジチップBCへの転送を行う(S309)。なお、S309で転送されるデータのうち、ドットハッチングされた六角形は、データJを構成する1バイトのデータを示し、塗りつぶしハッチングされた六角形は、ダミーデータDdummyを構成する1バイトのデータを示す。S309では、メモリコントローラMCは、データJとダミーデータDdummyとを結合したデータを転送する際には、メモリチャネルMCHの転送周波数の2倍の周波数で、データ信号[7:0]およびデータストローブ信号DQSnを転送する。
【0155】
ブリッジチップBCは、データJとダミーデータDdummyとを結合したデータをデータJとダミーデータDdummyとに分割する。そして、ブリッジチップBCは、データJをメモリチャネルMCH0に転送する(S310)。ブリッジチップBCは、ダミーデータDdummyを破棄する。
【0156】
図15は、第2の実施形態のスケジューラ12の動作の一例を示すフローチャートである。ここでも、コマンドバッファ120にアクセス要求が格納される動作の説明を省略する。アクセス要求がCPU11によって発行されると、当該アクセス要求は、図15に示す一連の動作とは非同期に、コマンドバッファ120に格納されることとする。
【0157】
まず、プロセッサ122は、所定数のアクセス要求がコマンドバッファ120に存在するか否かを判定する(S401)。所定数は、1であってもよいし、2以上であってもよい。
【0158】
コマンドバッファ120に格納されているアクセス要求の数が所定数に満たない場合(S401:No)、プロセッサ122は、S401の判定処理を再び実行することで、コマンドバッファ120に格納されているアクセス要求の数が所定数に至るまで次の処理の実行を待つ(postpone)。
【0159】
所定数のアクセス要求がコマンドバッファ120に存在する場合(S401:Yes)、プロセッサ122は、コマンドバッファ120に格納されている所定数のアクセス要求のうちから1つのアクセス要求を選択する(S402)。例えば、プロセッサ122は、コマンドバッファ120に格納されたタイミングが最も早いアクセス要求を選択する。なお、アクセス要求の選択の方法はこれに限定されない。S402の処理において選択されたアクセス要求を、第1アクセス要求と表記する。
【0160】
続いて、プロセッサ122は、アクセス先として指示されたメモリチップCPが接続されたメモリチャネルMCHが第1アクセス要求と異なり、かつ指示された転送データのサイズおよびアクセス種別が第1アクセス要求と同じアクセス要求がコマンドバッファ120に存在するか否かを判定する(S403)。メモリチャネルMCHが第1アクセス要求と異なり、かつ指示された転送データのサイズおよびアクセス種別が第1アクセス要求と同じアクセス要求を、第2アクセス要求と表記する。
【0161】
第2アクセス要求がコマンドバッファ120に存在する場合(S403:Yes)、プロセッサ122は、第1アクセス要求および第2アクセス要求のそれぞれを、第1フラッシュコントローラ14-0および第2フラッシュコントローラ14-1のうちのアクセス先として指示されたメモリチップCPが接続されたメモリチャネルMCHに対応するフラッシュコントローラ14に同時に入力する(S404)。
【0162】
第2アクセス要求がコマンドバッファ120に存在しない場合(S403:No)、プロセッサ122は、ダミーデータDdummyの転送を要求するアクセス要求を生成する(S405)。ダミーデータDdummyの転送を要求するアクセス要求を第3アクセス要求と表記する。プロセッサ122は、アクセス種別および転送データのサイズは、第1アクセス要求と共通とされ、アクセス先のメモリチップCPが接続されたメモリチャネルMCHは第1アクセス要求と異なるように、第3アクセス要求を生成する。
【0163】
プロセッサ122は、第1アクセス要求および第3アクセス要求のそれぞれを、第1フラッシュコントローラ14-0および第2フラッシュコントローラ14-1のうちのアクセス先として指示されたメモリチップCPが接続されたメモリチャネルMCHに対応するフラッシュコントローラ14に同時に入力する(S406)。
【0164】
S404またはS406の後、プロセッサ122は、他に1以上のアクセス要求がコマンドバッファ120に存在するか否かを判定する(S407)。コマンドバッファ120に1以上のアクセス要求が残っている場合(S407:Yes)、プロセッサ122は、コマンドバッファ120内の1以上のアクセス要求から新たにアクセス要求を選択する(S408)。そして、プロセッサ122は、S408で選択したアクセス要求を第1アクセス要求としてS403から処理を再び繰り返す。
【0165】
コマンドバッファ120に1以上のアクセス要求が残っていない場合(S407:No)、プロセッサ122は、S401から処理を再び繰り返す。
【0166】
なお、上記の例では、第1アクセス要求が非対のアクセス要求に該当する場合、即ちプロセッサ122がS403の判定処理においてNoと判定した場合、プロセッサ122は、ただちに第3アクセス要求を生成した。第1アクセス要求が非対のアクセス要求に該当する場合の処理はこれに限定されない。
【0167】
例えば、プロセッサ122は、第1アクセス要求が非対のアクセス要求に該当する場合、S405の処理の実行を所定時間、待つ(postpone)。所定時間が経過しても第1アクセス要求が依然として非対のアクセス要求に該当する場合、プロセッサ122は、S405の処理を進めてもよい。所定時間が経過する前に第2アクセス要求に該当する新たなアクセス要求がコマンドバッファ120に格納された場合、プロセッサ122は、S405の処理を進めてもよい。プロセッサ122は、S405の処理の実行を待っている間に、他のアクセス要求を新たに第1アクセス要求として選択して、S403からの処理を実行してもよい。
【0168】
また、以上では、1つのホストチャネルHCHによって1つの半導体記憶装置1がメモリコントローラMCbに接続される例を説明した。第1の実施形態と同様、第2の実施形態の技術は、複数の半導体記憶装置1を備えたメモリシステムにも適用可能である。
【0169】
また、以上では、半導体記憶装置1は、2つのメモリチャネルMCHを備える例を説明した。半導体記憶装置1は、3以上のメモリチャネルMCHを備え、それぞれのメモリチャネルMCHに1以上のメモリチップCPが接続されていてもよい。
【0170】
例えば、N(ただしNは2以上の整数)個のメモリチャネルMCHを備え、それぞれのメモリチャネルMCHに1以上のメモリチップCPが接続された半導体記憶装置1の制御を可能とするためには、メモリコントローラMCには、1つのホストチャネルHCHに対してN個またはN個より多いフラッシュコントローラ14が設けられる。そして、スケジューラ12は、コマンドバッファ120に格納されたアクセス要求のうちから、指示されたアクセス先のメモリチップCPが接続されたメモリチャネルMCHがそれぞれ異なるN個のアクセス要求のセットを順次、取得する。そして、スケジューラ12は、取得したセットを構成する各アクセス要求をN個のフラッシュコントローラ14のうちのそれぞれ異なるフラッシュコントローラ14に入力する。N個のフラッシュコントローラ14は、それぞれ、入力されたアクセス要求に基づき、並行してデータ転送を行う。
【0171】
そして、スケジューラ12は、アクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHが異なるアクセス要求の数がM(Mは1以上N未満の整数)個しかない場合、ダミーデータDdummyの転送を要求する第3アクセス要求を(N-M)個、生成する。N個のフラッシュコントローラ14は、M個のアクセス要求と、(N-M)の第3アクセス要求と、並列に実行する。
【0172】
以上述べたように、第2の実施形態によれば、コマンドバッファ120内の、アクセス先として指定されたメモリチップCPが接続されたメモリチャネルMCHが異なるアクセス要求の数がN個に満たない場合、メモリコントローラMCbは、ダミーデータDdummyの転送を要求する1以上の第3アクセス要求を生成し、ダミーデータDdummyの転送を要求する1以上の第3アクセス要求を含むN個のアクセス要求を並行して実行する。
【0173】
よって、ホストチャネルHCHの転送レートを常にメモリチャネルMCHのN倍に維持することが可能である。ホストチャネルHCHの転送レートの切り替えが不要になるので、メモリコントローラMCaと半導体記憶装置1との間のデータ転送の効率がさらに向上する。
【0174】
なお、ダミーデータDdummyの転送を要求する1以上の第3アクセス要求を含むN個のアクセス要求がライト要求である場合、ブリッジチップBCは、ホストチャネルHCHを介して、ダミーデータDdummyを含むN個のデータが結合されたデータを受信する。つまり、ブリッジチップBCは、ホストチャネルHCHを介してN個のデータを並行して受信する。ブリッジチップBCは、受信したN個のデータのうちのダミーデータDdummyを破棄し、残りのデータのそれぞれをアクセス先として指定されたメモリチップCPに転送する。また、ダミーデータDdummyの転送を要求する1以上の第3アクセス要求を含むN個のアクセス要求がリード要求である場合、ブリッジチップBCは、N個のアクセス要求のうちのダミーデータDdummyの転送を要求する1以上の第3アクセス要求以外のアクセス要求のそれぞれによってリードが要求されたリードデータを、指定されたアクセス先のメモリチップCPから取得する。そして、ブリッジチップBCは、1以上の第3アクセス要求に対応した1以上のダミーデータDdummyを生成し、リードデータと1以上のダミーデータDdummyとを結合してメモリコントローラMCbに送信する。
【0175】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0176】
1 半導体記憶装置、2 RAM、10 ホストI/Fコントローラ、11 CPU、12 スケジューラ、13 バス、14 フラッシュコントローラ、14-0 第1フラッシュコントローラ、14-1 第2フラッシュコントローラ、15,112 分割・結合回路、101 第1インタフェース、102,102-0,102-1 第2インタフェース、103 コントローラ、111 コマンドデコーダ、113 レジスタ、114 転送レート情報、120 コマンドバッファ、121 データバッファ、122 プロセッサ、140 ECC、141 ランダマイザ、201 アクセス回路、202 メモリセルアレイ、SYS,SYSa,SYSb メモリシステム、MC,MCa,MCb メモリコントローラ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15