(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022049453
(43)【公開日】2022-03-29
(54)【発明の名称】送受信装置、ブリッジチップ、半導体記憶装置、および方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20220322BHJP
G11C 7/10 20060101ALI20220322BHJP
【FI】
G06F12/00 564A
G11C7/10 460
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2020155672
(22)【出願日】2020-09-16
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】大友 吾一
(72)【発明者】
【氏名】土屋 滋洋
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CC03
(57)【要約】
【課題】高速なデータ転送が可能な送受信装置、ブリッジチップ、半導体記憶装置、および方法を提供すること。
【解決手段】送受信装置は、サンプラと、パイプラインと、送信回路と、を備える。サンプラは、ホストから受信するデータ信号をホストから受信するデータストローブ信号に基づくタイミングで取り込む。パイプラインは、少なくともデータストローブ信号と異なるクロック信号を駆動信号として用いてサンプラが取り込んだデータ信号を転送する。送信回路は、パイプラインを通過したデータ信号を取得して送信する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ホストから受信するデータ信号を前記ホストから受信するデータストローブ信号に基づくタイミングで取り込むサンプラと、
少なくとも前記データストローブ信号と異なるクロック信号を駆動信号として用いて前記サンプラが取り込んだ前記データ信号を転送するパイプラインと、
前記パイプラインを通過した前記データ信号を取得して送信する送信回路と、
を備える送受信装置。
【請求項2】
前記データストローブ信号が入力されている期間には、前記データストローブ信号を前記駆動信号として前記パイプラインに供給し、前記データストローブ信号の入力が終了した後には、前記クロック信号を前記駆動信号として前記パイプラインに供給する、供給回路をさらに備える、
請求項1に記載の送受信装置。
【請求項3】
前記供給回路は、前記データストローブ信号の入力の終了を、前記データストローブ信号のトグル回数のカウントまたは前記データストローブ信号のサンプリングに基づいて判定する、
請求項2に記載の送受信装置。
【請求項4】
前記サンプラは、FIFO(First-In First-Out)メモリを備え、前記データストローブ信号に基づくタイミングで取り込んだ前記データ信号を前記FIFOメモリに格納し、前記FIFOメモリに格納された前記データ信号を前記クロック信号に基づくタイミングで前記パイプラインに入力し、
前記パイプラインは前記クロック信号を用いて前記データ信号を転送する、
請求項1に記載の送受信装置。
【請求項5】
前記クロック信号の周波数は、前記データストローブ信号の周波数よりも高い、
請求項4に記載の送受信装置。
【請求項6】
前記クロック信号を発振する発振回路をさらに備える、
請求項1から5の何れか一項に記載の送受信装置。
【請求項7】
前記データストローブ信号と前記クロック信号との比較に基づいて前記クロック信号の発振周波数を補正する補正回路をさらに備える、
請求項6に記載の送受信装置。
【請求項8】
ホストとメモリチップとに電気的に接続されて、前記ホストと前記メモリチップとの間のデータの転送を実行するブリッジチップであって、
前記ホストから受信するデータ信号を前記ホストから受信するデータストローブ信号に基づくタイミングで取り込むサンプラと、
少なくとも前記データストローブ信号と異なるクロック信号を駆動信号として用いて前記サンプラが取り込んだ前記データ信号を転送するパイプラインと、
前記パイプラインを通過した前記データ信号を取得して送信する送信回路と、
を備えるブリッジチップ。
【請求項9】
ホストに電気的に接続可能であり、前記ホストからの信号を受信することができるブリッジチップと、
前記ブリッジチップに電気的に接続されたメモリチップと、
を備え、
前記ブリッジチップは、
前記ホストから受信するデータ信号を前記ホストから受信するデータストローブ信号に基づくタイミングで取り込むサンプラと、
少なくとも前記データストローブ信号と異なるクロック信号を駆動信号として用いて前記サンプラが取り込んだ前記データ信号を転送するパイプラインと、
前記パイプラインを通過した前記データ信号を取得して送信する送信回路と、
を備える、
半導体記憶装置。
【請求項10】
ホストから受信するデータ信号を前記ホストから受信するデータストローブ信号に基づくタイミングで取り込むことと、
少なくとも前記データストローブ信号と異なるクロック信号を駆動信号として用いて前記サンプラが取り込んだ前記データ信号をパイプラインを介して転送することと、
前記パイプラインを通過した前記データ信号を取得して送信することと、
を備える方法。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、送受信装置、ブリッジチップ、半導体記憶装置、および方法に関する。
【背景技術】
【0002】
ホストに接続される外部端子群と複数のメモリチップとの間にブリッジチップを配した半導体記憶装置がある。この半導体記憶装置では、ホストから複数のメモリチップへのアクセスがブリッジチップを介して行われる。ブリッジチップの内部では、送受信装置がホストから受信したデータをデータストローブ信号に従ってメモリチップ側に送信することができる。ホストと複数のメモリチップとの間のデータ転送の速度を向上させるために、送受信装置は、高速なデータ転送が可能であることが要望される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第5709855号公報
【特許文献2】特開2013-25794号公報
【特許文献3】特表2014-523062号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つの実施形態は、高速なデータ転送が可能な送受信装置、ブリッジチップ、半導体記憶装置、および方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
一つの実施形態によれば、送受信装置は、サンプラと、パイプラインと、送信回路と、を備える。サンプラは、ホストから受信するデータ信号をホストから受信するデータストローブ信号に基づくタイミングで取り込む。パイプラインは、少なくともデータストローブ信号と異なるクロック信号を駆動信号として用いてサンプラが取り込んだデータ信号を転送する。送信回路は、パイプラインを通過したデータ信号を取得して送信する。
【図面の簡単な説明】
【0006】
【
図1】
図1は、第1の実施形態にかかる半導体記憶装置が適用されるストレージシステムの構成の一例を示す模式的な図である。
【
図2】
図2は、第1の実施形態にかかる送受信装置の詳細な構成を示す模式的な図である。
【
図3】
図3は、第1の実施形態にかかるサイズ情報の設定にかかる動作の一例を示すフローチャートである。
【
図4】
図4は、第1の実施形態にかかる送受信装置の動作を説明するためのタイミングチャートである。
【
図5】
図5は、第1の実施形態にかかる供給回路の動作の一例を示すフローチャートである。
【
図6】
図6は、第1の実施形態の変形例1にかかる供給回路の動作の一例を示すフローチャートである。
【
図7】
図7は、第1の実施形態の変形例2にかかる判定回路の構成の一例を示す模式的な図である。
【
図8】
図8は、第1の実施形態の変形例3にかかる判定回路の構成の一例を示す模式的な図である。
【
図9】
図9は、第2の実施形態にかかる送受信装置の詳細な構成を示す模式的な図である。
【
図10】
図10は、第2の実施形態にかかる送受信装置の動作を説明するためのタイミングチャートである。
【
図11】
図11は、第3の実施形態にかかる半導体記憶装置の構成を説明するための模式的な図である。
【
図12】
図12は、第3の実施形態にかかる補正回路のより詳細な構成の一例を示す模式的な図である。
【
図13】
図13は、第3の実施形態にかかる補正回路の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、実施形態にかかる送受信装置、ブリッジチップ、半導体記憶装置、および方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0008】
(第1の実施形態)
実施形態にかかる半導体記憶装置は、ブリッジチップおよびメモリチップを備える。メモリチップは、ブリッジチップを介してホストに接続される。メモリチップは、例えば、NAND型フラッシュメモリ等の不揮発性メモリのメモリチップである。
【0009】
半導体記憶装置では、実装密度を向上させるために、搭載されるメモリチップ数は多くなりつつある。例えば、複数のメモリチップを積層することで実装密度を向上させる。このとき、各メモリチップとの接続にかかる負荷を減らし高速化を図るために、FBI(Frequency Boosting Interface)チップと呼ばれるブリッジチップをホストと複数のメモリチップとの間に介挿し、ブリッジチップと複数のメモリチップ間を複数のチャネルで接続する構成が取られることがある。各チャネルには、複数のメモリチップが接続され得る。
【0010】
ブリッジチップには、ホストとの間でデータなどに対応した電気信号の送受信を行うPHY回路である第1インタフェース回路と、メモリチップとの間でデータなどに対応した電気信号の送受信を行うPHY回路である第2インタフェースと、が設けられている。第1インタフェースと第2インタフェースとの間は、データパスによって接続されている。データパスは、第1インタフェースに受信したデータを、第2インタフェースに送信することができる。
【0011】
実施形態では、高速にデータを送受信するために、データパスはパイプライン構成を有している。即ち、データパスは、複数のフリップフロップによって複数の区間に区切られたパイプラインを構成する。複数の区間のそれぞれは、段(ステージ)とも称される。パイプライン構成によれば、データパスがパイプライン構成を有しない場合に比べて、1クロックあたりのデータの転送距離が短縮される。その結果、データ転送の周波数を高くすることができ、データ転送の速度を向上させることができる。
【0012】
例えばトグルDDR(Double-Data-Rate)規格のように、2つの装置間のデータ通信の際に、データストローブ信号が使用される場合がある。データストローブ信号は、所定のビット幅(例えば8ビット)のデータ信号として転送されるデータとともに転送される信号であって、相手装置にデータ信号の取り込みのタイミングを指示する信号である。データストローブ信号のトグル回数は、データの転送長(換言すると転送サイズ)に対応する。
【0013】
このデータストローブ信号を、パイプラインの駆動信号として使用することが考えられる。駆動信号は、パイプラインを構成する複数のフリップフロップのクロック入力端子に供給される信号である。しかしながら、パイプラインでは、1クロックで1段分の距離しかデータを転送することができない。よって、データの転送サイズに対応したトグル回数のデータストローブ信号だけでは、パイプラインに一部のデータが残留してしまい、全てのデータを余すことなく送信することができない。
【0014】
第1の実施形態では、ブリッジチップは、発振回路を備えている。そして、受信したデータを余すことなく送信するために、ブリッジチップは、データストローブ信号によるトグル回数の不足分を、発振回路によるクロック信号によって補うように構成されている。
【0015】
以下に、第1の実施形態にかかる送受信装置、ブリッジチップ、および半導体記憶装置について説明する。
【0016】
図1は、第1の実施形態にかかる半導体記憶装置1が適用されるストレージシステムSYSの構成の一例を示す模式的な図である。
【0017】
ストレージシステムSYSは、ホストHA及び半導体記憶装置1を含む。半導体記憶装置1は、外部端子群10、ブリッジチップBC、および複数のメモリチップCP1-1~CP1-4,CP2-1~CP2-4を備える。半導体記憶装置1は、メモリチップCP1-1~CP1-4及びメモリチップCP2-1~CP2-4それぞれが積層されたMCP(Multi Chip Package)として実装され得る。半導体記憶装置1がMCPとして実装される場合、半導体記憶装置1では、ブリッジチップBC及び複数のメモリチップCP1-1~CP1-4,CP2-1~CP2-4の周囲が、モールド樹脂で封止されていてもよい。
図1では、チャネルCH1を介してブリッジチップBCに4つのメモリチップCP1-1~CP1-4が接続され、チャネルCH2を介してブリッジチップBCに4つのメモリチップCP2-1~CP2-4が接続される構成が例示されている。すなわち、半導体記憶装置1は、複数の(ここでは8)メモリチップCP1-1~CP1-4,CP2-1~CP2-4を含むマルチメモリチップモジュールとして構成され得る。各メモリチップCP1-1~CP1-4,CP2-1~CP2-4は、例えば、NAND型フラッシュメモリ等の不揮発性メモリのメモリチップである。なお、半導体記憶装置1が備えるメモリチップCPの数は8個に限定されない。また、ブリッジチップBCと複数のメモリチップCPとを接続するチャネルの数は2個に限定されない。
【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で接続される。また、ブリッジチップBCは、複数の(ここでは2)チャネルCH1,CH2に電気的に接続されている。複数のメモリチップCP1-1~CP1-4,CP2-1~CP2-4は、複数のチャネルCH1,CH2を介してブリッジチップBCに接続されている。メモリチップCP1-1~CP1-4は、所定の規格に基づき構成されたチャネルCH1に接続されている。メモリチップCP2-1~CP2-4は、所定の規格に基づき構成されたチャネルCH2に接続されている。各メモリチップCPがNAND型フラッシュメモリである場合、所定の規格は、例えば、トグルDDR規格である。以降、各メモリチップCPはNAND型のフラッシュメモリであり、所定の規格はトグルDDR規格であることとする。
【0020】
チャネルCH0は、ブリッジチップイネーブル信号BRG_CEnを転送する信号線、チップイネーブル信号CEnを転送する信号線、コマンドラッチ信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、所定のビット幅(ここでは一例として8ビットの幅)を有するデータ信号DQ[7:0]を転送する信号線、およびレディービジー信号R/Bnを転送する信号線、を含む。なお、信号を表す符号の末尾に記された「n」は、負論理で動作せしめられる信号であることを表す。各信号が負論理で動作せしめられるか正論理で動作せしめられるかは任意に設計され得る。
【0021】
チップイネーブル信号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は、コマンドの受信を待機している状態であるレディー状態(Ry)であるかコマンドを受信しても実行できない状態であるビジー状態(By)であるかを示す信号である。ここでは一例として、チャネルCH0は、チャネルCH1にかかるレディービジー信号R/Bnであるレディービジー信号R/Bn_1を転送する信号線と、チャネルCH2にかかるレディービジー信号R/Bnであるレディービジー信号R/Bn_2を転送する信号線と、を含んでいる。なお、チャネルCH0が含むレディービジー信号R/Bnを転送する信号線の構成は上記された例に限定されない。例えば、チャネルCH0は、レディービジー信号R/Bnに関しては、チャネルCH1にかかるレディービジー信号R/Bnと、チャネルCH1にかかるレディービジー信号R/Bnと、からワイヤー接続などによって生成された一つのレディービジー信号R/Bnを転送するための1つの信号線を備えていてもよい。
【0022】
ブリッジチップイネーブル信号BRG_CEnは、ブリッジチップBCを制御するためのコマンドが送信される際にアクティブ化される信号である。ブリッジチップBCは、ブリッジチップイネーブル信号BRG_CEnがアクティブ状態にある期間においては、当該期間に受信した信号(即ちコマンド、アドレス、およびデータ)を、自身に宛てた信号として解釈する。さらに、ブリッジチップイネーブル信号BRG_CEnがアクティブ状態にある期間においては、ホストHAから受信した信号を何れのメモリチップCPにも転送しない。ブリッジチップイネーブル信号BRG_CEnが非アクティブ状態にある期間においては、ホストHAから受信した信号をアクセス対象のメモリチップCPに転送する。
【0023】
以降、ホストHAから受信した信号のメモリチップCPへの転送を遮断して、ブリッジチップBCは、ホストHAから受信した信号をブリッジチップBCに対する信号として解釈する動作モードを、ブリッジ制御モードと表記する。ホストHAから受信した信号をメモリチップCPへ転送する動作モードを、非ブリッジ制御モードと表記する。
【0024】
チャネルCH1,CH2のそれぞれは、ホストHAとブリッジチップBCとの間で送受信される信号群のうちの、ブリッジチップイネーブル信号BRG_CEnを除く信号群と同種の信号群を送受信できる。即ち、チャネルCH1,CH2のそれぞれは、チップイネーブル信号CEnを転送する信号線、コマンドラッチ信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、データ信号DQ[7:0]を転送する信号線群、およびレディービジー信号R/Bnを転送する信号線、を備えている。
【0025】
以降では、説明を簡単にするために、データストローブ信号DQS/DQSnに関しては、データストローブ信号DQSnの説明を省略して、データストローブ信号DQSについてのみ説明する。また、リードイネーブル信号RE/REnに関しては、リードイネーブル信号REnの説明を省略して、リードイネーブル信号REについてのみ説明する。
【0026】
ブリッジチップBCは、第1インタフェース101と、2つの第2インタフェース102と、コントローラ103と、バッファメモリ104と、を備える。
【0027】
第1インタフェース101は、ホストHAに対してチャネルCH0を介した電気信号の送受信を行うPHY回路である。
【0028】
2つの第2インタフェース102のうちの第2インタフェース102-1は、4個のメモリチップCP1-1~CP1-4に対してチャネルCH1を介した電気信号の送受信を行うPHY回路である。2つの第2インタフェース102のうちの第2インタフェース102-2は、4個のメモリチップCP2-1~CP2-4に対してチャネルCH2を介した電気信号の送受信を行うPHY回路である。
【0029】
バッファメモリ104は、ホストHAとメモリチップCPとの間の転送データが一時的に格納(バッファ)されるメモリである。バッファメモリ104は、DRAM(Dynamic Random Access Memory)によって構成されてもよいし、SRAM(Static Random Access Memory)によって構成されてもよい。なお、バッファメモリ104を構成するメモリのタイプはこれらに限定されない。
【0030】
コントローラ103は、第1インタフェース101と、2つの第2インタフェース102と、の間に配されている。コントローラ103は、バッファメモリ104を使って、第1インタフェース101と、2つの第2インタフェース102と、の間の情報の授受を制御する。
【0031】
コントローラ103は、コマンドデコーダ111、送受信装置112、マスク回路113、およびレジスタ114を有する。
【0032】
コマンドデコーダ111は、ホストHAからチャネルCH0を介して受けたコマンドを解析する。コマンドデコーダ111は、解析結果に応じて、メモリチップCPに対するコマンドを発行することができる。
【0033】
送受信装置112は、パイプライン構成を有するデータパス(
図2のデータパス120)を含んでいる。データパス120は、ホストHAから受信したライトデータのデータパスである。データパス120は、チャネルCH0から第1インタフェース101を介して受信したライトデータのデータ信号DQ[7:0]およびデータストローブ信号DQS/DQSnを第2インタフェース102-1,102-2に送信する。データパス120から出力されたデータ信号DQ[7:0]およびデータストローブ信号DQS/DQSnは、第2インタフェース102-1,102-2の何れかを介してチャネルCH1,CH2の何れかに供給される。
【0034】
以降、チャネルCH0から第1インタフェース101を介して受信したデータ信号DQ[7:0]を、データ信号H_DQ[7:0]と表記することがある。また、チャネルCH0から第1インタフェース101を介して受信したデータストローブ信号DQSを、データストローブ信号H_DQSと表記することがある。また、第2インタフェース102-1,102-2を介してチャネルCH1,2に送信されるデータ信号DQ[7:0]を、データ信号N_DQ[7:0]と表記することがある。また、第2インタフェース102-1,102-2を介してチャネルCH1,2に供給されるデータストローブ信号DQSを、データストローブ信号N_DQSと表記することがある。
【0035】
マスク回路113は、メモリチップCPへの信号の供給をブリッジチップイネーブル信号BRG_CEnに応じて遮断することができる回路である。ブリッジチップイネーブル信号BRG_CEnがアクティブ状態にある期間には、マスク回路113は、メモリチップCPへの信号の供給を遮断する。ブリッジチップイネーブル信号BRG_CEnが非アクティブ状態にある期間には、マスク回路113は、メモリチップCPへの信号を透過する。つまり、マスク回路113は、ブリッジチップイネーブル信号BRG_CEnに基づき、ブリッジ制御モードと非ブリッジ制御モードとの間の切り替えを実現する。なお、マスク回路113は、例えばアンド回路によって構成される。マスク回路113の構成はこれに限定されない。
【0036】
レジスタ114は、ブリッジチップBCの動作を制御するための各種情報(動作制御情報と表記する)が書き込まれるメモリである。動作制御情報は、特定の情報に限定されない。例えば、動作制御情報は、ブリッジチップBCの制御に使用される設定情報であってもよい。設定情報は、ホストHAから送られてきて、ブリッジチップBCに格納される。コントローラ103は、設定情報に従った動作を実行する。設定情報は、例えば、データの転送サイズを示すサイズ情報115である。
【0037】
サイズ情報115のレジスタ114への書き込みは、ブリッジチップBCがブリッジ制御モードにあるときに、ホストHAからのレジスタ書き込み用のコマンドに応じて実行される。これによって、サイズ情報115をレジスタ114に書き込むためのコマンドが何れのメモリチップCPにも到達しないようにする。
【0038】
ブリッジチップBCは、ブリッジ制御モードにおいては、ホストHAからの如何なるコマンドもチャネルCH1,CH2に透過しない。よって、ブリッジ制御モードにおいてブリッジチップBCを動作させるためのコマンドは、任意に定義され得る。例えば、ブリッジ制御モードにおいてブリッジチップBCを動作させるためのコマンドは、トグルDDR規格によって定められたコマンドを流用したものであってもよいし、特定の規格に縛られることなく定義されたコマンドであってもよい。トグルDDR規格によって定められたコマンドが流用される場合、レジスタ114へのサイズ情報115の書き込みとして、例えば、セットフィーチャコマンドを使用することが可能である。なお、レジスタ114へのサイズ情報115の書き込みに使用されるコマンドはこれに限定されない。
【0039】
図2は、第1の実施形態にかかる送受信装置112の詳細な構成を示す模式的な図である。なお、ここでは説明を簡単にするために、送受信装置112が送受信するデータストローブ信号DQS/DQSnを代表して、データストローブ信号DQSについて説明し、データストローブ信号DQSnについては説明を省略する。
【0040】
送受信装置112は、データパス120に加えて、マルチプレクサMUX1、判定回路121、遅延回路122、位相シフト回路123、デューティサイクルアジャスタ124、および発振回路125を備える。
【0041】
データパス120は、複数のDフリップフロップFF(ここでは一例として10個のDフリップフロップFF0e~FF4e,FF0o~FF4o)と、DラッチL0と、マルチプレクサMUX2と、を備える。そして、DフリップフロップFF0e,FF1e,FF0o,FF1oは、サンプラ(sampler)126を構成する。DフリップフロップFF4e,FF4e、およびDラッチL0は、リタイマ(retimer)127を構成する。リタイマ127は、送信回路の一例である。
【0042】
サンプラ126は、データ信号H_DQ[7:0]の転送方式をDDR(Double-Data-Rate)からSDR(Single-Data-Rate)に変更する。サンプラ126によって、データ信号H_DQ[7:0]は、データパス120のクロック信号(データパスクロックと表記する)の立ち上がりのタイミングで取り込まれる信号(イーブン信号と表記する)と、データパスクロックの立ち下がりのタイミングで取り込まれる信号(オッド信号と表記する)と、に分離される。
【0043】
リタイマ127は、それぞれはSDRで転送されるイーブン信号およびオッド信号に基づいて、DDRで転送されるデータ信号DQ[7:0]を復元する。
【0044】
より具体的には、DフリップフロップFF0e~FF4eは、各DフリップフロップFFのD入力端子とQ出力端子とによって直列に接続されている。直列に接続されたDフリップフロップFF0e~FF4eによって、イーブン信号のデータパス(イーブンデータパスと表記する)が構成されている。DフリップフロップFF0o~FF4oは、各DフリップフロップFFのD入力端子とQ出力端子とによって直列に接続されている。直列に接続されたDフリップフロップFF0o~FF4oによって、オッド信号のデータパス(オッドデータパスと表記する)が構成されている。
【0045】
データ信号H_DQ[7:0]は、イーブンデータパスの始点であるDフリップフロップFF0eのD入力端子と、オッドデータパスの始点であるDフリップフロップFF0oのD入力端子と、に並列に入力される。
【0046】
マルチプレクサMUX2、2つの入力端子を備える。マルチプレクサMUX2が備える2つの入力端子のうちの1つには、イーブンデータパスの終点であるDフリップフロップFF4eのQ出力端子から出力されたイーブン信号が入力される。マルチプレクサMUX2が備える2つの入力端子のうちの他の1つには、オッドデータパスの終点であるDフリップフロップFF4oのQ出力端子から出力されたオッド信号が、DラッチL0を介して入力される。マルチプレクサMUX2は、選択信号が「1」である場合にはイーブン信号が入力される入力端子を選択し、選択信号が「0」である場合にはオッド信号が入力される入力端子を選択する。
【0047】
DフリップフロップFF0e~FF4e,FF0o~FF4oのクロック入力端子には、データパスクロックが入力される。DフリップフロップFF0oには、データパスクロックを論理反転して得られる信号が入力される。DラッチL0のクロック入力端子には、データパスクロックが入力される。マルチプレクサMUX2には、選択信号として、データパスクロックが入力される。
【0048】
データパス120が上記のように構成されていることで、サンプラ126は、DDRで受信したデータ信号H_DQ[7:0]をそれぞれはSDRの信号であるイーブン信号およびオッド信号に変換することができる。そして、リタイマ127は、イーブン信号およびオッド信号からDDRのデータ信号DQ[7:0]を復元することができる。送受信装置112は、リタイマ127によって復元されたデータ信号DQ[7:0]を、遅延を調整するための遅延回路122を介してデータ信号N_DQ[7:0]として送信することができる。
【0049】
また、DフリップフロップFF0e~FF4e,FF0o~FF4oは、4段のパイプラインを構成している。データパス120がパイプラインを備えていることによって、データ信号DQ[7:0]を高い周波数で転送することが可能である。
【0050】
発振回路125は、内部クロック信号を発振する回路である。内部クロック信号は、パイプラインに駆動信号として供給されるクロック信号の一例である。内部クロック信号を、I_CLKと表記する。発振回路125は、例えばCR発振回路によって構成され得る。なお、発振回路125の種類(type)は、CR発振回路に限定されない。任意の種類の発振回路が発振回路125として採用され得る。
【0051】
マルチプレクサMUX1は2つの入力端子を備えている。マルチプレクサMUX1の2つの入力端子のうちの1つには、データストローブ信号H_DQSが入力される。マルチプレクサMUX1の2つの入力端子のうちの他の1つには、発振回路125が発振した内部クロック信号I_CLKが入力される。マルチプレクサMUX1の出力信号は、データパスクロックとして使用される。つまり、マルチプレクサMUX1は、データストローブ信号H_DQSと、内部クロック信号I_CLKと、のうちの、選択信号が示す信号を、データパスクロックとして出力する。
【0052】
マルチプレクサMUX1には、判定回路121から選択信号が供給される。判定回路121は、データストローブ信号H_DQSの入力が開始した時点においては、マルチプレクサMUX1にデータストローブ信号H_DQSをデータパスクロックとして出力させる。そして、判定回路121は、データストローブ信号H_DQSの入力が終了したか否かを判定する。データストローブ信号H_DQSの入力が終了していない場合には、判定回路121は、マルチプレクサMUX1にデータストローブ信号H_DQSをデータパスクロックとして出力させる。データストローブ信号H_DQSの入力が終了した場合には、判定回路121は、マルチプレクサMUX1に内部クロック信号I_CLKをデータパスクロックとして出力させる。
【0053】
なお、マルチプレクサMUX1および判定回路121は、供給回路130を構成する。
【0054】
送受信装置112へのデータ信号H_DQ[7:0]の入力が終了すると、ほぼ同じ時期にデータストローブ信号H_DQSの入力も終了する。よって、データストローブ信号H_DQSのみがデータパスクロックとして使用される場合、データストローブ信号H_DQSの入力の終了の時点では、データパス120のパイプラインに、データ信号H_DQ[7:0]の一部が残留してしまう。つまり、データ信号H_DQ[7:0]の全てを余すことなく送信することができない。
【0055】
第1の実施形態では、データストローブ信号H_DQSの入力が終了すると、判定回路121によって、データパスクロックが、データストローブ信号H_DQSから内部クロック信号I_CLKに切り替えられる。よって、データストローブ信号H_DQSの終了の時点でパイプライン内に残留したデータを全て送信することが可能になる。
【0056】
データストローブ信号H_DQSのトグルが終了したか否かの判定方法は、任意に構成され得る。ここでは一例として、判定回路121は、データストローブ信号H_DQSのトグルの回数をカウントし、カウント値がデータの転送サイズに対応したしきい値に至ったか否かに基づいて、データストローブ信号H_DQSのトグルが終了したか否かを判定する。
【0057】
より具体的には、判定回路121は、レジスタ114に格納されたサイズ情報115を読み出す。そして、判定回路121は、データストローブ信号H_DQSのトグルが開始したとき、データストローブ信号H_DQSのトグル回数のカウントを開始する。そして、データストローブ信号H_DQSのトグル回数のカウント値が、サイズ情報115が示す転送サイズに応じたしきい値に達していない場合には、判定回路121は、データストローブ信号H_DQSの入力が終了していないと判定する。カウント値が、サイズ情報115が示す転送サイズに応じたしきい値に達した場合には、判定回路121は、データストローブ信号H_DQSの入力が終了したと判定する。
【0058】
よって、データストローブ信号H_DQSによるトグル回数の不足分を、発振回路125による内部クロック信号I_CLKによって補うことが可能である。その結果、データ信号H_DQ[7:0]として受信したデータを余すことなく送信することが可能となる。
【0059】
なお、内部クロック信号I_CLKを選択する期間は、任意に決定される。一例では、内部クロック信号I_CLKがデータパスクロックとして選択され続ける期間は、データパス120のパイプラインの段数に応じて設計者によって予め決定される。例えば、
図2に示される例では、データパス120は、4段のパイプラインを構成している。よって、内部クロック信号I_CLKは、少なくとも4サイクル以上の内部クロック信号I_CLKがデータパスクロックとして出力される期間、判定回路121は、内部クロック信号I_CLKをデータパスクロックとして選択し続ける。
【0060】
送受信装置112は、さらに、データパスクロックを、位相シフト回路123およびデューティサイクルアジャスタ124を介してデータストローブ信号N_DQSとして送信することができる。位相シフト回路123は、データ信号N_DQ[7:0]に対してデータストローブ信号N_DQSが90度(degree)だけ位相が遅れるように、データストローブ信号N_DQSの位相をシフトさせる回路である。デューティサイクルアジャスタ124は、データストローブ信号N_DQSのデューティ比が50%になるように、データストローブ信号N_DQSを整形する回路である。
【0061】
続いて、第1の実施形態にかかる半導体記憶装置1の動作を説明する。
【0062】
図3は、第1の実施形態にかかるサイズ情報115の設定にかかる動作の一例を示すフローチャートである。
【0063】
まず、ホストHAによってブリッジチップイネーブル信号BRG_CEnが非アクティブ状態(Hレベル)からアクティブ状態(Lレベル)に遷移せしめられる(S101)。すると、コントローラ103によって、ブリッジチップBCの動作モードが非ブリッジ制御モードからブリッジ制御モードに切り替わる(S102)。
【0064】
ブリッジ制御モードでは、ブリッジチップBCは、チャネルCH1,CH2への信号の転送をマスク回路113によって遮断する。また、ブリッジチップBCは、ホストHAから受信した信号を自身に宛てた信号として解釈する。
【0065】
続いて、ホストHAからサイズ情報115を含む所定のレジスタ114書き込み用のコマンドを受信する(S103)。所定のレジスタ114書き込み用のコマンドは、セットフィーチャコマンドのような、既存のレジスタアクセス用のコマンドであってもよいし、独自に定義されたコマンドであってもよい。
【0066】
ブリッジチップBCでは、コマンドデコーダ111が、受信したコマンドはレジスタ114書き込み用のコマンドであると解釈し、コントローラ103は、解釈結果に応じた動作を実行する。即ち、コントローラ103は、サイズ情報115をレジスタ114に書き込む(S104)。
【0067】
続いて、ホストHAは、ホストHAによってブリッジチップイネーブル信号BRG_CEnがアクティブ状態(Lレベル)から非アクティブ状態(Hレベル)に遷移せしめられる(S105)。すると、コントローラ103によって、ブリッジチップBCの動作モードがブリッジ制御モードから非ブリッジ制御モードに切り替わる(S106)。非ブリッジ制御モードにおいては、ブリッジチップBCは、ホストHAからの信号(コマンド、アドレス、データ)をチャネルCH1,CH2の何れかに転送することが可能である。これによって、サイズ情報115の設定にかかる動作が終了する。
【0068】
図4は、第1の実施形態にかかる送受信装置112の動作を説明するためのタイミングチャートである。ここでは一例として、送受信装置112は、データ信号H_DQ[7:0]の8サイクルのトグル回数に相当する転送長のデータ(データD0~D15)をデータ信号H_DQ[7:0]として受信した場合について説明する。サイズ情報115としては、データ信号H_DQ[7:0]の8サイクルのトグル回数に相当する転送サイズが予め記録されている。
【0069】
図4では、内部クロック信号I_CLKの波形、データストローブ信号H_DQSの波形、データパスクロックの波形、データ信号H_DQ[7:0]の波形、DフリップフロップFF0eの出力信号の波形、DフリップフロップFF0oの出力信号の波形、DフリップフロップFF1eの出力信号の波形、DフリップフロップFF1oの出力信号の波形、DフリップフロップFF4eの出力信号の波形、DフリップフロップFF4oの出力信号の波形、DラッチL0の出力信号の波形、データ信号N_DQ[7:0]の波形、およびデータストローブ信号N_DQSの波形、がこの順番で配列されている。
【0070】
まず、データ信号H_DQ[7:0]の入力が開始して(時刻t0)、データ信号H_DQ[7:0]の入力の開始タイミングから90度の位相遅れをもってデータストローブ信号H_DQSの入力が開始する(時刻t1)。
【0071】
時刻t1からしばらくの期間、マルチプレクサMUX1によって、データストローブ信号H_DQSがデータパスクロックとして使用される。また、データストローブ信号H_DQSが送受信装置112からデータストローブ信号N_DQSとして出力される。
【0072】
時刻t1において、データストローブ信号H_DQSの立ち上がりのタイミングでDフリップフロップFF0eが最初のデータD0を取り込んで出力する。続いて到来するデータストローブ信号H_DQSの立ち下がりのタイミングでDフリップフロップFF0oが次のデータD1を取り込んで出力する(時刻t2)。
【0073】
続いて到来するデータストローブ信号H_DQSの立ち上がりのタイミングでは、DフリップフロップFF1eおよびDフリップフロップFF1oのそれぞれは、前段のDフリップフロップの出力信号を取り込んで出力する(時刻t3)。これによって、イーブン信号およびオッド信号は、ともに、データパスクロックの立ち上がりに同期して転送されるSDRの信号とされる。
【0074】
以降、最後のデータD15が入力される時刻t4まで、DフリップフロップFF0eは、イーブン信号の取り込みと出力を実行し、DフリップフロップFF0oは、オッド信号のデータの取り込みと出力を実行する。なお、
図4において、データD(2*i)はイーブン信号を構成する。また、データD(2*i+1)は、オッド信号を構成する。iは0から7までの整数である。
【0075】
時刻t1から4サイクル分だけ経過した時刻t2に、DフリップフロップFF4eはイーブン信号の出力を開始し、DフリップフロップFF4oはオッド信号の出力を開始する。DフリップフロップFF4oの出力信号は、DラッチL0によって半サイクル分だけ遅延せしめられる。
【0076】
マルチプレクサMUX2は、DフリップフロップFF4eが出力したイーブンデータおよびDラッチL0が出力したオッドデータのうちから出力信号をデータパスクロックに基づいて切り替えることによって、データ信号N_DQ[7:0]を生成する。
【0077】
時刻t4では、判定回路121は、データストローブ信号H_DQSの入力が終了したと判定する。判定回路121は、マルチプレクサMUX1を操作することによって、データパスクロックを、データストローブ信号H_DQSから内部クロック信号I_CLKに切り替える。
【0078】
図5は、第1の実施形態にかかる供給回路130の動作の一例を示すフローチャートである。
【0079】
判定回路121は、初期状態(例えば
図4の時刻t0での状態)においては、マルチプレクサMUX1に、データストローブ信号H_DQSを選択させる。つまり、供給回路130は、データストローブ信号H_DQSをデータパスクロックとして供給できる状態になっている(S201)。データストローブ信号H_DQSの入力が開始すると(S202)、判定回路121は、データストローブ信号H_DQSのトグル回数のカウントを開始し、サイズ情報115を取得する(S203)。そして、判定回路121は、カウント値がサイズ情報115に応じたしきい値に達したか否かを判定する(S204)。
【0080】
図4に示される例に従えば、サイズ情報115として8サイクルのデータストローブ信号H_DQSに相当する転送サイズが記録されている。よって、判定回路121は、S204では、データストローブ信号H_DQSのトグルの回数のカウント値が「8」に達したか否かを判定する。なお、ここでは、1回のトグルは、立ち上がりと立ち下がりとの対によって構成されることとしている。
【0081】
データストローブ信号H_DQSのトグルの回数のカウント値がしきい値に達していない場合(S204:No)、判定回路121は、S204を再び実行する。データストローブ信号H_DQSのトグルの回数のカウント値がしきい値に達した場合(S204:Yes)、判定回路121は、データパスクロックをデータストローブ信号H_DQSから内部クロック信号I_CLKに切り替える(S205)。
【0082】
データパスクロックの切り替えが完了してから、所定のサイクル数(例えばデータパス120のパイプラインの段数に応じたサイクル数)のデータパスクロックの出力が完了すると(S206)、判定回路121は、データパスクロックを内部クロック信号I_CLKからデータストローブ信号H_DQSに切り替える(S207)。そして、判定回路121の動作が終了する。
【0083】
図4に説明を戻す。
時刻t4において、データストローブ信号H_DQSの入力が終了したと判定される。この時点においては、4サイクル分のデータ、具体的にはデータD8~D15がパイプラインに残留しており、まだ送信が済んでいない。
【0084】
判定回路121は、時刻t4にマルチプレクサMUX1を操作することによって、データパスクロックを、データストローブ信号H_DQSから内部クロック信号I_CLKに切り替える。そして、時刻t5に切り替えが完了し、内部クロック信号I_CLKのデータパスクロックとしての出力が開始する。これによって、データストローブ信号N_DQSがデータストローブ信号H_DQSから内部クロック信号I_CLKに切り替わる。
【0085】
時刻t5の後、4サイクル分のデータパスクロックがデータパス120に供給されることによって、パイプラインに残留していたデータD8~D15の送信が実行される。最後に受信したデータであるデータD15の送信が完了すると、判定回路121は、データパスクロックを内部クロック信号I_CLKからデータストローブ信号H_DQSに戻すことができる。
【0086】
以上述べたように、第1の実施形態によれば、サンプラ126は、データ信号H_DQ[7:0]を、データストローブ信号H_DQSに基づくタイミングで取り込む。DフリップフロップFF0e~FF4e,FF0o~FF4oによって構成されるパイプラインは、駆動信号を用いて、サンプラ126が取り込んだデータ信号H_DQ[7:0]を転送する。送信回路であるリタイマ127は、パイプラインを通過したデータ信号H_DQ[7:0]を取得して送信する。供給回路130は、データストローブ信号H_DQSが入力されている期間には、データストローブ信号H_DQSを駆動信号としてパイプラインに供給する。供給回路130は、データストローブ信号H_DQSの入力が終了した後には、内部クロック信号I_CLKを駆動信号としてパイプラインに供給する。
【0087】
送受信装置112は、パイプラインを有しているため、高速なデータ転送が可能である。さらに、送受信装置112は、受信したデータ信号を余すことなく送信することが可能である。
【0088】
また、第1の実施形態によれば、供給回路130は、データストローブ信号H_DQSの入力の終了を、データストローブ信号H_DQSのトグル回数のカウントに基づいて判定する。
【0089】
よって、供給回路130は、データストローブ信号H_DQSの入力が終了すると、データストローブ信号H_DQSの入力の終了を速やかに検知することが可能である。
【0090】
なお、以上では、ブリッジチップBCはサイズ情報115を書き込むためのコマンドをブリッジ制御モードにおいて受けることができるとして説明した。ブリッジチップBCは、サイズ情報115を書き込むためのコマンドを、非ブリッジ制御モードにおいて受けることができるように構成されてもよい。
【0091】
また、ブリッジチップBCの動作モードはブリッジチップイネーブル信号BRG_CEnによって制御されることとして説明した。ブリッジチップBCの動作モードの制御方法はこれに限定されない。例えば、ホストHAは、ブリッジチップBCの動作モードを制御するための専用のコマンドを送信することができ、ブリッジチップBCは、当該専用のコマンドに応じて動作モードを変更するように構成されてもよい。
【0092】
また、ブリッジチップBCは、必ずしもブリッジ制御モードと非ブリッジ制御モードとで動作モードの切り替えを実行しなくてもよい。ホストHAが何らかの方法でサイズ情報115をブリッジチップBCに設定できる限り、ブリッジチップBCは任意に構成され得る。
【0093】
(変形例1)
データストローブ信号H_DQSの入力が終了したか否かの判定方法としては種々の方法がある。変形例1では、データストローブ信号H_DQSの入力が終了したか否かの判定方法の別の一例を説明する。
【0094】
図6は、第1の実施形態の変形例1にかかる供給回路130の動作の一例を示すフローチャートである。
【0095】
判定回路121は、初期状態(例えば
図4の時刻t0での状態)においては、マルチプレクサMUX1に、データストローブ信号H_DQSを選択させる。つまり、供給回路130は、データストローブ信号H_DQSをデータパスクロックとして供給できる状態になっている(S301)。データストローブ信号H_DQSの入力が開始すると(S302)、判定回路121は、データストローブ信号H_DQSのサンプリングを開始する(S303)。
【0096】
サンプリングは、複数回、継続的に実行される。各回のサンプリングのタイミングは任意である。例えば、内部クロック信号I_CLKとデータストローブ信号H_DQSとが非同期になるように設定され、判定回路121は、内部クロック信号I_CLKの立ち上がり、立ち下がり、またはそれら両方のタイミングで、データストローブ信号H_DQSをサンプリングすることができる。
【0097】
データストローブ信号H_DQSの入力が終了すると、以降は、データストローブ信号H_DQSはLレベルで維持される。よって、「Lレベル」のサンプリング結果が連続して得られるはずである。判定回路121は、「Lレベル」のサンプリング結果が所定回数以上連続して得られたか否かを判定する(S304)。「Lレベル」のサンプリング結果が所定回数以上連続して得られていない場合(S304:No)、判定回路121は、S304を再び実行する。「Lレベル」のサンプリング結果が所定回数以上連続して得られた場合(S304:Yes)、データストローブ信号H_DQSの入力が終了と推定されるので、判定回路121は、データパスクロックをデータストローブ信号H_DQSから内部クロック信号I_CLKに切り替える(S305)。そして、S306、S307において、S206、S207と同じ処理が実行される。
【0098】
このように、判定回路121は、データストローブ信号H_DQSをサンプリングすることによって、データストローブ信号H_DQSの入力の終了を判断してもよい。
【0099】
(変形例2)
変形例2では、データストローブ信号H_DQSの入力が終了したか否かの判定方法のさらに別の一例を説明する。
【0100】
判定回路121には、
図7に示されるように、チャネルCH0からのチップイネーブル信号CEnまたはコマンドラッチイネーブル信号CLEが入力される。ホストHAは、次のコマンドの入力の際には、チップイネーブル信号CEnおよびコマンドラッチイネーブル信号CLEを使用する。
【0101】
ホストHAが1つのコマンドを入力した後に次のコマンドを入力する際には、当該次のコマンドの入力のために、チップイネーブル信号CEnおよびコマンドラッチイネーブル信号CLEを操作する。例えば、ライトコマンドに付随してデータ信号H_DQ[7:0]およびデータストローブ信号H_DQSがホストHAから入力され、その後にチップイネーブル信号CEnまたはコマンドラッチイネーブル信号CLEが変動した場合、チップイネーブル信号CEnまたはコマンドラッチイネーブル信号CLEが変動したときにはデータ信号H_DQ[7:0]およびデータストローブ信号H_DQSの入力は既に終了している。
【0102】
判定回路121は、チップイネーブル信号CEnまたはコマンドラッチイネーブル信号CLEを監視し、チップイネーブル信号CEnまたはコマンドラッチイネーブル信号CLEの変動を検知した場合、データストローブ信号H_DQSの入力は終了したと判定する。そして、判定回路121は、データパスクロックをデータストローブ信号H_DQSから内部クロック信号I_CLKに切り替える。
【0103】
このように、判定回路121は、チップイネーブル信号CEnまたはコマンドラッチイネーブル信号CLEに基づいてデータストローブ信号H_DQSの入力の終了を判定するように構成されてもよい。
【0104】
(変形例3)
変形例3では、データストローブ信号H_DQSの入力が終了したか否かの判定方法のさらに別の一例を説明する。
【0105】
判定回路121には、
図8に示されるように、チャネルCH0からのブリッジチップイネーブル信号BRG_CEnが入力される。ホストHAは、データストローブ信号H_DQSの送信が完了すると、ブリッジチップイネーブル信号BRG_CEnを所定回数(例えば1回)だけトグルする。判定回路121は、ブリッジチップイネーブル信号BRG_CEnのトグルを検知すると、データストローブ信号H_DQSの入力は終了したと判定して、データパスクロックをデータストローブ信号H_DQSから内部クロック信号I_CLKに切り替える。
【0106】
このように、判定回路121は、データストローブ信号H_DQSの入力は終了したことの通知を、ホストHAからブリッジチップイネーブル信号BRG_CEnによって受信できるように構成されてもよい。
【0107】
(第2の実施形態)
第2の実施形態では、データパスの先頭にFIFO(First In, First Out)メモリが設けられている。そして、データパスはパイプライン構成を有する。送受信装置は、受信したデータ信号H_DQ[7:0]をデータストローブ信号H_DQSに基づくタイミングでFIFOメモリに取り込む。そして、送受信装置は、FIFOメモリからのデータ信号H_DQ[7:0]の取り出しおよびパイプラインの駆動は、内部クロック信号I_CLKを使用する。これによって、パイプライン構成によってデータ転送の周波数を高くすることができ、かつ、受信したデータ信号H_DQ[7:0]を余すことなく送信できる。
【0108】
第2の実施形態にかかる半導体記憶装置のブリッジチップに具備される送受信装置を、送受信装置112aと表記する。ここでは、第1の実施形態と異なる点について説明する。第1の実施形態と同じ構成には第1の実施形態と同じ符号を付す。第1の実施形態と同じ構成については、簡略的に説明するか、または説明を省略する。
【0109】
図9は、第2の実施形態にかかる送受信装置112aの詳細な構成を示す模式的な図である。本図においても、送受信装置112aが送受信するデータストローブ信号DQS/DQSnを代表して、データストローブ信号DQSについて説明し、データストローブ信号DQSnについては説明を省略する。
【0110】
送受信装置112aは、データパス120a、遅延回路122、位相シフト回路123、デューティサイクルアジャスタ124、および発振回路125aを備える。データパス120aは、サンプラ126aおよびリタイマ127aを備える。
【0111】
サンプラ126aは、セレクタSEL0e,SEL1e,SEL0o,SEL1o,SEL0v,SEL1v、DフリップフロップFF10e~FF17e,FF10o~FF17o,FF10v~FF17v,FF18v,FF19v、カウンタC1w、およびカウンタC1rを備える。
【0112】
データ信号H_DQ[7:0]は、セレクタSEL0eおよびセレクタSEL0oに並列に入力される。
セレクタSEL0eは8個の出力端子を備えている。セレクタSEL0eの8個の出力端子のそれぞれは、8個のDフリップフロップFF10e~FF17eの何れかのD入力端子と1対1に接続されている。セレクタSEL1eは8個の入力端子を備えている。セレクタSEL1eの8個の入力端子のそれぞれは、8個のDフリップフロップFF10e~FF17eの何れかのQ出力端子と1対1に接続されている。セレクタSEL0eに入力された選択信号とセレクタSEL1eに入力された選択信号とが同一値である場合には、セレクタSEL0eからのデータの出力先とセレクタSEL1eへのデータの入力元とは等しくなるように構成されている。
【0113】
セレクタSEL0oは8個の出力端子を備えている。セレクタSEL0oの8個の出力端子のそれぞれは、8個のDフリップフロップFF10o~FF17oの何れかのD入力端子と1対1に接続されている。セレクタSEL1oは8個の入力端子を備えている。セレクタSEL1oの8個の入力端子のそれぞれは、8個のDフリップフロップFF10o~FF17oの何れかのQ出力端子と1対1に接続されている。セレクタSEL0oに入力された選択信号とセレクタSEL1oに入力された選択信号とが同一値である場合には、セレクタSEL0oからのデータの出力先とセレクタSEL1oへのデータの入力元とは等しくなるように構成されている。
【0114】
8個のDフリップフロップFF10e~FF17eのクロック入力端子には、データストローブ信号H_DQSが入力される。よって、8個のDフリップフロップFF10e~FF17eは、DDRで受信したデータ信号H_DQ[7:0]のうちのイーブン信号を取得することができる。
【0115】
8個のDフリップフロップFF10o~FF17oのクロック入力端子には、データストローブ信号H_DQSを論理反転して得られる信号が入力される。よって、8個のDフリップフロップFF10o~FF17oは、DDRで受信したデータ信号H_DQ[7:0]のうちのオッド信号を取得することができる。
【0116】
カウンタC1wは、3ビットのビット幅を有するライトポインタを保持する。ライトポインタは、データストローブ信号H_DQSを論理反転して得られる信号によって1ずつインクリメントされる。カウンタC1wが保持するライトポインタの値は、セレクタSEL0e,SEL0o,SEL0vに選択信号として入力される。
【0117】
カウンタC1rは、3ビットのビット幅を有するリードポインタを保持する。リードポインタは、内部クロック信号I_CLKaを反転して得られる信号によって1ずつインクリメントされる。カウンタC1rが保持するライトポインタの値は、セレクタSEL1e,SEL1o,SEL1vに選択信号として入力される。
【0118】
サンプラ126aは、データ信号H_DQ[7:0]のうちのイーブン信号を8個のDフリップフロップFF10e~FF17eに順次取り込み、データ信号H_DQ[7:0]のうちのオッド信号を8個のDフリップフロップFF10o~FF17oに順次取り込む。そして、サンプラ126aは、8個のDフリップフロップFF10e~FF17eに取り込んだイーブン信号を、イーブンデータパスに、8個のDフリップフロップFF10o~FF17oに取り込んだオッド信号を、オッドデータパスに、順次、出力することができる。8個のDフリップフロップFF10e~FF17eおよび8個のDフリップフロップFF10o~FF17oへのデータの取り込みは、データストローブ信号H_DQSに基づくタイミングで実行される。また、8個のDフリップフロップFF10e~FF17eおよび8個のDフリップフロップFF10o~FF17oからのデータの出力は、内部クロック信号I_CLKaに基づくタイミングで実行される。つまり、サンプラ126aは、データ信号H_DQ[7:0]をデータストローブ信号H_DQSに基づくタイミングで取り込み、内部クロック信号I_CLKaに基づくタイミングで出力する、FIFOメモリとして機能する。
【0119】
データストローブ信号H_DQSは、セレクタSEL0vに入力される。セレクタSEL0vは8個の出力端子を備えている。セレクタSEL0vの8個の出力端子のそれぞれは、8個のDフリップフロップFF10v~FF17vの何れかのD入力端子と1対1に接続されている。
【0120】
そして、8個のDフリップフロップFF10v~FF17vのクロック入力端子には、データストローブ信号H_DQSを論理反転して得られる信号が入力される。よって、8個のDフリップフロップFF10v~FF17vのそれぞれは、自身がセレクタSEL0vからの出力先として選択されている場合において、データストローブ信号H_DQSが入力された場合、「1」を取り込むことができる。8個のDフリップフロップFF10v~FF17vのそれぞれが取り込んだデータ「1」を、バリッドフラグと表記する。バリッドフラグは、当該バリッドフラグが取り込まれたサイクルと同じサイクルにおいてデータ信号H_DQ[7:0]が正常に取り込まれたことを意味する信号として使用される。
【0121】
セレクタSEL1vは8個の入力端子を備えている。8個のDフリップフロップFF10v~FF17vのQ出力端子からの出力信号は、DフリップフロップFF18v,FF19vを経由して、セレクタSEL1vが備える8個の入力端子の何れかに入力される。
【0122】
セレクタSEL0vに入力された選択信号とセレクタSEL1vに入力された選択信号とが同一値である場合には、8個のDフリップフロップFF10v~FF17vのうちのセレクタSEL0vからのデータの出力先のDフリップフロップと、8個のDフリップフロップFF10v~FF17vのうちのセレクタSEL1vに入力されるデータを取り込んだDフリップフロップとが等しくなるように構成されている。
【0123】
DフリップフロップFF18v,FF19vのクロック入力端子には、内部クロック信号I_CLKaが入力される。また、カウンタC1rは、内部クロック信号I_CLKaを反転して得られる信号によってリードポインタを1ずつカウントアップする。そして、リードポインタは、セレクタSEL1e,SEL1o,SEL1vに選択信号として入力される。よって、FIFOメモリとしてのサンプラ126aからのイーブン信号、オッド信号、およびバリッドフラグの出力は、内部クロック信号I_CLKaに基づくタイミングで実行される。
【0124】
発振回路125aは、内部クロック信号I_CLKaを発振する。発振回路125は、例えばCR回路によって構成され得る。なお、発振回路125の種類(type)は、CR回路に限定されない。任意の種類の発振回路が発振回路125として採用され得る。
【0125】
FIFOメモリとしてのサンプラ126aに保持されるデータのオーバーフローを防止するために、内部クロック信号I_CLKaの周波数は、データ信号H_DQ[7:0]およびデータストローブ信号H_DQSの周波数よりも若干高いものとする。
【0126】
データパス120aは、DフリップフロップFF21e~FF24e,FF21o~FF24oと、DラッチL1と、マルチプレクサMUX11と、を備える。
【0127】
DフリップフロップFF21e~FF24eは、各DフリップフロップFFのD入力端子とQ出力端子とによって直列に接続されている。直列に接続されたDフリップフロップFF21e~FF24eによって、パイプライン構成のイーブンデータパスが構成されている。DフリップフロップFF21o~FF24oは、各DフリップフロップFFのD入力端子とQ出力端子とによって直列に接続されている。直列に接続されたDフリップフロップFF21o~FF24oによって、パイプライン構成のオッドデータパスが構成されている。
【0128】
マルチプレクサMUX11は、2つの入力端子を備える。マルチプレクサMUX11が備える2つの入力端子のうちの1つには、イーブンデータパスの終点であるDフリップフロップFF24eのQ出力端子から出力されたイーブン信号が入力される。マルチプレクサMUX11が備える2つの入力端子のうちの他の1つには、オッドデータパスの終点であるDフリップフロップFF24oのQ出力端子から出力されたオッド信号が、DラッチL1を介して入力される。マルチプレクサMUX11は、選択信号が「1」である場合にはイーブン信号を選択し、選択信号が「0」である場合にはオッド信号を選択し、選択した信号を出力する。
【0129】
DフリップフロップFF21e~FF24e,FF21o~FF24oのクロック入力端子、およびDラッチL1のクロック入力端子には、内部クロック信号I_CLKaが入力される。また、マルチプレクサMUX11には、選択信号として、内部クロック信号I_CLKaが入力される。
【0130】
DフリップフロップFF24e,FF24o、DラッチL1、およびマルチプレクサMUX11は、リタイマ127aに含まれる。リタイマ127aは、上記された構成によって、イーブン信号およびオッド信号からDDRのデータ信号DQ[7:0]を復元することができる。送受信装置112aは、リタイマ127aによって復元されたデータ信号DQ[7:0]を、遅延回路122を介してデータ信号N_DQ[7:0]として送信することができる。
【0131】
送受信装置112aは、さらに、マルチプレクサMUX12e,MUX12oを備える。マルチプレクサMUX12e,MUX12oのそれぞれは、2つの入力端子を備える。
【0132】
マルチプレクサMUX12eは、セレクタSEL1eとDフリップフロップFF21eとの間に配されている。マルチプレクサMUX12eが備える2つの入力端子のうちの1つには、セレクタSEL1eが出力するイーブン信号が入力される。マルチプレクサMUX12eが備える2つの入力端子のうちの他の1つには、DフリップフロップFF21eが出力するイーブン信号が入力される。マルチプレクサMUX12eの出力信号は、DフリップフロップFF21eのD入力端子に入力される。マルチプレクサMUX12eは、選択信号が「1」である場合にはセレクタSEL1eから入力されたイーブン信号を出力し、選択信号が「0」である場合にはDフリップフロップFF21eから入力されたイーブン信号を出力する。
【0133】
マルチプレクサMUX12oは、セレクタSEL1oとDフリップフロップFF21oとの間に配されている。マルチプレクサMUX12oが備える2つの入力端子のうちの1つには、セレクタSEL1oが出力するオッド信号が入力される。マルチプレクサMUX12oが備える2つの入力端子のうちの他の1つには、DフリップフロップFF21oが出力するオッド信号が入力される。マルチプレクサMUX12oの出力信号は、DフリップフロップFF21oのD入力端子に入力される。マルチプレクサMUX12oは、選択信号が「1」である場合にはセレクタSEL1oから入力されたオッド信号を出力し、選択信号が「0」である場合にはDフリップフロップFF21oから入力されたオッド信号を出力する。
【0134】
マルチプレクサMUX12e,MUX12oには、セレクタSEL1vからの出力信号が選択信号として入力される。つまり、バリッドフラグがサンプラ126aから出力されている期間には、DフリップフロップFF21eは、サンプラ126aからのイーブン信号を、DフリップフロップFF21oは、サンプラ126aからのオッド信号を、それぞれ取り込んで出力することができる。バリッドフラグがサンプラ126aから出力されていない期間には、DフリップフロップFF21eは、DフリップフロップFF21eが出力するイーブン信号を、DフリップフロップFF21oは、DフリップフロップFF21oが出力するオッド信号を、それぞれ取り込んで出力することができる。つまり、バリッドフラグがサンプラ126aから出力されていない期間には、DフリップフロップFF21e,FF21oは、直前に取り込んだ値を継続して出力し続ける。
【0135】
前述したように、内部クロック信号I_CLKaの周波数は、データ信号H_DQ[7:0]およびデータストローブ信号H_DQSの周波数よりも若干高い。よって、FIFOメモリとしてのサンプラ126aに保持されるデータのアンダーフローが起こり得る。アンダーフローが起こった場合、マルチプレクサMUX12e,MUX12oの機能によって、時間を空けずにイーブン信号およびオッド信号のそれぞれを送信することが可能である。
【0136】
送受信装置112aは、DフリップフロップFF21v~FF24v、およびマルチプレクサMUX11を備える。なお、DフリップフロップFF24vおよびマルチプレクサMUX11はリタイマ127aに含まれる。
【0137】
DフリップフロップFF21v~FF24vは、各DフリップフロップFFのD入力端子とQ出力端子とによって直列に接続されている。DフリップフロップFF21v~FF24vによって、バリッドフラグのデータパス(バリッドデータパスと表記する)が構成されている。DフリップフロップFF21v~FF24vのクロック入力端子には、内部クロック信号I_CLKaが入力される。
【0138】
マルチプレクサMUX11は、2つの入力端子を備える。マルチプレクサMUX11が備える2つの入力端子のうちの1つには、バリッドデータパスの終点であるDフリップフロップFF24vのQ出力端子からの出力信号が入力される。マルチプレクサMUX11が備える2つの入力端子のうちの他の1つには、信号「0」が入力される。マルチプレクサMUX11は、選択信号が「1」である場合にはバリッドデータパスからの出力信号を選択し、選択信号が「0」である場合には信号「0」を選択し、選択した信号を出力する。
【0139】
マルチプレクサMUX11には、選択信号として内部クロック信号I_CLKaが入力される。バリッドデータパスからバリッドフラグ「1」が入力されている期間には、マルチプレクサMUX11は、内部クロック信号I_CLKaと同期した信号を出力する。バリッドデータパスからバリッドフラグ「1」が入力されていない期間には、マルチプレクサMUX11は、Lレベルをとる信号を出力する。
【0140】
送受信装置112aは、マルチプレクサMUX11の出力信号を、位相シフト回路123およびデューティサイクルアジャスタ124を介してデータストローブ信号N_DQSとして送信する。よって、リタイマ127aは、データストローブ信号H_DQSと同じ数だけトグルした信号を、データストローブ信号N_DQSとして出力することができる。
【0141】
図10は、第2の実施形態にかかる送受信装置112aの動作を説明するためのタイミングチャートである。ここでは一例として、送受信装置112aは、データ信号H_DQ[7:0]の8サイクルのトグル回数に相当する転送長のデータ(データD0~D15)をデータ信号H_DQ[7:0]として受信した場合について説明する。また、ポインタ(ライトポインタまたはリードポインタ)の値が「i」である場合、DフリップフロップFF(10+mod(i,8))e,FF(10+mod(i,8))o,FF(10+mod(i,8))vのそれぞれがポインタによって選択されることとする。mod(a,b)は「a」を「b」で除算して得られる余りを意味する。
【0142】
図10では、データストローブ信号H_DQSの波形、データ信号H_DQ[7:0]の波形、ライトポインタの値、DフリップフロップFF10eの出力信号の波形、DフリップフロップFF10oの出力信号の波形、DフリップフロップFF17eの出力信号の波形、DフリップフロップFF17oの出力信号の波形、DフリップフロップFF10vの出力信号の波形、DフリップフロップFF17vの出力信号の波形、内部クロック信号I_CLKaの波形、DフリップフロップFF10vを経由したDフリップフロップFF18vの出力信号の波形、DフリップフロップFF10vを経由したDフリップフロップFF19vの出力信号の波形、DフリップフロップFF17vを経由したDフリップフロップFF18vの出力信号の波形、DフリップフロップFF17vを経由したDフリップフロップFF19vの出力信号の波形、リードポインタの値、サンプラ126aが出力するイーブン信号の波形、サンプラ126aが出力するオッド信号の波形、DフリップフロップFF21eの出力信号の波形、DフリップフロップFF21oの出力信号の波形、データ信号N_DQ[7:0]の波形、およびデータストローブ信号N_DQSの波形、がこの順番で配列されている。
【0143】
まず、データ信号H_DQ[7:0]の入力が開始して(時刻t10)、データ信号H_DQ[7:0]の入力の開始タイミングから90度の位相遅れをもってデータストローブ信号H_DQSの入力が開始する(時刻t11)。
【0144】
時刻t11では、DフリップフロップFF10e,FF10o,FF10vがライトポインタによって選択された状態となっている。よって、DフリップフロップFF10eは、データストローブ信号N_DQSの最初の立ち上がりのタイミング(時刻t11)で最初のデータD1を取り込む。DフリップフロップFF10oは、データストローブ信号N_DQSの最初の立ち下がりのタイミング(時刻t12)で最初のデータD2を取り込む。また、DフリップフロップFF10vは、データストローブ信号N_DQSの最初の立ち下がりのタイミング(時刻t12)でバリッドフラグ、つまりデータ「1」を取り込む。
【0145】
時刻t12では、データストローブ信号N_DQSが立ち下がることによって、ライトポインタの値が1だけインクリメントされる。これによって、DフリップフロップFF11e,FF11o,FF11vが選択された状態となる。続くデータストローブ信号N_DQSの立ち上がりのタイミングまたは立ち下がりのタイミングにおいて、データD2,D3、およびバリッドフラグがDフリップフロップFF11e,FF11o,FF11vに取り込まれる。
【0146】
以降、上記と同様の手順で、1サイクル毎にイーブン信号、オッド信号、およびバリッドフラグが、FIFOメモリとしてのサンプラ126aに取り込まれる。
【0147】
時刻t11では、DフリップフロップFF10e,FF10o,FF10vがリードポインタによって選択された状態となっている。よって、サンプラ126aは、DフリップフロップFF10eがデータD0を取り込むに応じてデータD0をイーブン信号として出力し、DフリップフロップFF10oがデータD1を取り込むに応じてデータD1をオッド信号として出力する。
【0148】
DフリップフロップFF10vが時刻t12において取り込んだバリッドフラグは、時刻t12から1サイクル後の時刻t13にDフリップフロップFF18vによって取り込まれる。DフリップフロップFF18vが時刻t13にDフリップフロップFF10vから取り込んだバリッドフラグは、時刻t13から1サイクル後の時刻t14にDフリップフロップFF19vによって取り込まれる。
【0149】
時刻t14から1サイクル後の時刻t15では、DフリップフロップFF19vによって取り込まれたDフリップフロップFF10vからのバリッドフラグがマルチプレクサMUX12e,MUX12oに選択信号として入力される。つまり、マルチプレクサMUX12eは、サンプラ126aから入力されたイーブン信号を出力することができるようになる。マルチプレクサMUX12oは、サンプラ126aから入力されたオッド信号を出力することができるようになる。よって、イーブンデータパスの始点であるDフリップフロップFF21eおよびオッドデータパスの始点であるDフリップフロップFF21oは、時刻t15からデータの取得が開始する。時刻t15において、DフリップフロップFF21eは、データD0を取り込み、DフリップフロップFF21oは、データD1を取り込む。
【0150】
また、時刻t15では、DフリップフロップFF19vによって取り込まれたDフリップフロップFF10vからのバリッドフラグがカウンタC1rに入力されることで、リードポインタのインクリメントが実行される。これによって、サンプラ126aは、時刻t15から若干遅延したタイミングで、イーブン信号をデータD0からデータD2に切り替え、オッド信号をデータD1からデータD3に切り替える。
【0151】
以降、サンプラ126aは、1サイクル毎に、データD4とデータD5との対、データD6とデータD7との対、データD8とデータD9との対、データD10とデータD11との対、データD12とデータD13との対、データD14とデータD15との対、を、この順番で順次出力する。
【0152】
各データの対は、バリッドフラグとともにリタイマ127aに転送される。リタイマ127では、時刻t16から、マルチプレクサMUX10は、DフリップフロップFF24eが出力したイーブンデータおよびDラッチL1が出力したオッドデータのうちから出力信号を内部クロック信号I_CLKaに基づいて切り替えることによって、データ信号N_DQ[7:0]を生成する。また、マルチプレクサMUX11は、バリッドフラグが入力されている期間にバリッドフラグと信号「0」とのうちから出力信号を内部クロック信号I_CLKaに基づいて切り替えることによって、データストローブ信号N_DQSを生成する。
【0153】
このように、第2の実施形態によれば、サンプラ126aは、FIFOメモリとしての機能を有する。サンプラ126aは、データストローブ信号H_DQSに基づくタイミングで取り込んだデータ信号H_DQ[7:0]をFIFOメモリに格納する。また、サンプラ126aは、FIFOメモリに格納されたデータ信号を内部クロック信号I_CLKaに基づくタイミングで、DフリップフロップFF21e~FF24e,FF21o~FF24oによって構成されるパイプラインに入力する。パイプラインは、内部クロック信号I_CLKaを用いてデータ信号H_DQ[7:0]を転送する。
【0154】
第2の実施形態においても、送受信装置112aは、パイプラインを有しているため、高速なデータ転送が可能である。さらに、送受信装置112aは、パイプラインを駆動する信号にデータストローブ信号H_DQSではなく内部クロック信号I_CLKaを用いているので、受信したデータ信号を余すことなく送信することが可能である。
【0155】
また、第2の実施形態によれば、サンプラ126aは、データストローブ信号H_DQSがトグルされる毎にバリッドフラグを取り込む。また、サンプラ126aは、取り込んだバリッドフラグを内部クロック信号I_CLKaに基づくタイミングで、DフリップフロップFF21v~FF24vによって構成されるパイプラインに入力する。リタイマ127aは、DフリップフロップFF21v~FF24vを経由したバリッドフラグに基づいてデータストローブ信号N_DQSを生成する。
【0156】
よって、送受信装置112aは、受信したデータストローブ信号H_DQSのトグル回数と同じ数だけトグルするデータストローブ信号N_DQSを生成することができる。
【0157】
なお、第2の実施形態によれば、内部クロック信号I_CLKaの周波数は、データストローブ信号H_DQSの周波数よりも高い。
【0158】
よって、FIFOメモリにおいてデータ信号H_DQ[7:0]のオーバーフローを防止することができる。
【0159】
なお、内部クロック信号I_CLKaの周波数は、メモリチップCPの動作周波数よりも低い必要がある。内部クロック信号I_CLKaの周波数がメモリチップCPの動作周波数よりも高いと、メモリチップCPが信号を正しく受信することができないためである。
【0160】
(第3の実施形態)
第2の実施形態では、内部クロック信号I_CLKaの周波数は、データ信号H_DQ[7:0]およびデータストローブ信号H_DQSの周波数よりも若干高いことが求められる。しかしながら、発振回路125aとしてCR発振回路が適用された場合、駆動電圧または周辺温度に応じて発信周波数が変動し得る。発信周波数の変動によって、発振回路125aの発信周波数が上記の条件を満たさなくなる場合がある。そのような場合、送受信装置112aは、意図された動作を行うことができない。
【0161】
第3の実施形態では、送受信装置は、発振回路の発信周波数が所望の周波数から変動した場合に、周波数の変動分を修正することができる。以下に、第3の実施形態について説明する。第3の実施形態にかかる半導体記憶装置を、半導体記憶装置1bと表記する。なお、第3の実施形態は、第1の実施形態、第1の実施形態の各変形例、および第2の実施形態の何れにも適用できる。
【0162】
図11は、第3の実施形態にかかる半導体記憶装置1bの構成を説明するための模式的な図である。以下では、第1の実施形態と同じ構成については第1の実施形態と同じ符号を付す。そして、第1の実施形態と同じ構成については説明を省略するか簡略的に説明する。
【0163】
ストレージシステムSYSは、ホストHA及び半導体記憶装置1bを含む。半導体記憶装置1bは、ブリッジチップBCbおよび複数のメモリチップCP1-1~CP1-4,CP2-1~CP2-4を備える。チャネルCH1を介してブリッジチップBCbに4つのメモリチップCP1-1~CP1-4が接続され、チャネルCH2を介してブリッジチップBCbに4つのメモリチップCP2-1~CP2-4が接続されている。チャネルCH0,CH1,CH2の構成は第1の実施形態と同じである。
【0164】
ブリッジチップBCbは、第1インタフェース101、2つの第2インタフェース102、および送受信装置112bを備える。なお、バッファメモリ104、コントローラ103、およびコントローラ103の詳細は図示が省略されている。
【0165】
送受信装置112bは、ライトデータパス131、リードデータパス132、発振回路125b、ヒューズ133、および補正回路134を備える。
【0166】
発振回路125bは、発振周波数の制御が可能な発振回路である。発振回路125bは、例えばCR発振回路によって構成され得る。なお、発振回路125bの種類は、CR発振回路に限定されない。発振周波数の制御が可能である限り、任意の種類の発振回路が発振回路125bとして採用され得る。
【0167】
ヒューズ133には、発振回路125bの発振周波数の補正情報が格納されている。発振回路125bは、製造ばらつきによって、発振周波数が所望の周波数からズレる場合がある。補正情報は、発振周波数を所望の周波数と一致させるための補正量である。発振回路125bは、ブリッジチップBCbへの通電開始時に、ヒューズ133に格納された補正情報を参照し、補正情報に基づいてズレを補正した周波数のクロック信号を発振する。つまり、発振回路125bは、初期状態においては、補正情報によって補正された周波数のクロック信号を発振する。
【0168】
なお、発振回路125bが発振するクロック信号を、内部クロック信号I_CLKbと表記する。内部クロック信号I_CLKbは、第1インタフェース101、第2インタフェース102-1,102-2、ライトデータパス131、リードデータパス132、および補正回路134に入力される。
【0169】
第1インタフェース101がチャネルCH0を介してホストHAから受信したライトデータは、ライトデータパス131を経由して第2インタフェース102-1または第2インタフェース102-2に送信される。ライトデータを受信した第2インタフェース102-1または第2インタフェース102-2は、受信したライトデータをチャネルCH1またはチャネルCH2を介してあて先のメモリチップCPに送信する。
【0170】
なお、ライトデータパス131は、第1の実施形態にかかるデータパス120、または第2の実施形態にかかるデータパス120aと同じ構成を有する。
【0171】
何れかのメモリチップCPからチャネルCH1またはチャネルCH2を介して第2インタフェース102-1または第2インタフェース102-2が受信したリードデータは、リードデータパス132を経由して第1インタフェース101に送信される。リードデータを受信した第1インタフェース101は、受信したリードデータをチャネルCH0を介してホストHAに送信する。
【0172】
第1インタフェース101がチャネルCH0を介してホストHAから受信したコマンドおよびアドレスは、第2インタフェース102-1または第2インタフェース102-2に送信される。コマンドおよびアドレスを受信した第2インタフェース102-1または第2インタフェース102-2は、受信したコマンドおよびアドレスをチャネルCH1またはチャネルCH2を介してあて先のメモリチップCPに送信する。
【0173】
第1インタフェース101がチャネルCH0を介してホストHAから受信したデータストローブ信号DQS/DQSnおよびリードイネーブル信号RE/REnは、補正回路134に入力される。
【0174】
補正回路134は、データストローブ信号DQS/DQSnまたはリードイネーブル信号RE/REnと、内部クロック信号I_CLKbと、の比較によって内部クロック信号I_CLKbの変動を検知することができる。補正回路134は、内部クロック信号I_CLKbの変動を検知すると、変動分を補正するように、発振回路125bを制御する。
【0175】
図12は、第3の実施形態にかかる補正回路134のより詳細な構成の一例を示す模式的な図である。補正回路134は、4つのカウンタC2~C5を備える。
【0176】
カウンタC2は、データストローブ信号H_DQSのトグル回数をカウントする。カウンタC3は、内部クロック信号I_CLKbのトグル回数をカウントする。
【0177】
カウンタC2は、データストローブ信号H_DQSのトグル回数のカウントを開始するとき、カウンタC3にカウントを開始させる。カウンタC2は、データストローブ信号H_DQSのトグル回数のカウント値が所定値に達したとき、カウンタC3にカウントを停止させる。
【0178】
補正回路134は、停止後のカウンタC3のカウント値に基づいて、発振回路125bの発振周波数の設定周波数を補正する。
【0179】
カウンタC4は、リードイネーブル信号H_REのトグル回数をカウントする。カウンタC5は、内部クロック信号I_CLKbのトグル回数をカウントする。
【0180】
カウンタC4は、リードイネーブル信号H_REのトグル回数のカウントを開始するとき、カウンタC5にカウントを開始させる。カウンタC4は、リードイネーブル信号H_REのトグル回数のカウント値が所定値に達したとき、カウンタC5にカウントを停止させる。
【0181】
補正回路134は、停止後のカウンタC5のカウント値に基づいて、発振回路125bの発振周波数の設定周波数を補正する。
【0182】
例えば、第3の実施形態が第2の実施形態とともに適用され、かつ、カウンタC2,C4のカウント値が「1024」に達したときにカウンタC3,C5のカウントが停止させられる場合を考える。第2の実施形態によれば、内部クロック信号I_CLKbの周波数はデータストローブ信号H_DQS(およびリードイネーブル信号RE)よりも若干高いことが求められる。よって、「1024」よりも大きい値(例えば「1026」)が目標下限値として設定される。そして、カウンタC3,C5の停止時のカウント値が目標下限値より小さいとき、補正回路134は、発振回路125bの発振周波数を増加させる。
【0183】
なお、1回の補正での発振周波数の補正量は、任意に構成され得る。補正回路134は、目標値(例えば目標下限値)からの乖離量に応じた大きさの量だけ発振周波数を補正してもよい。または、補正回路134は、予め決められた量(例えば最小のステップ幅)だけ発振周波数を補正してもよい。
【0184】
図13は、第3の実施形態にかかる補正回路134の動作の一例を示すフローチャートである。ここでは一例として、目標上限値と目標下限値とが設定されており、補正回路134は、カウンタC3,C5の停止時のカウント値が目標上限値と目標下限値との範囲に収まるように発振周波数を補正することとする。また、1回の補正での発振周波数の補正量は、最小のステップ幅とされる。
【0185】
まず、ブリッジチップBCbがホストHAからコマンドを受信すると(S401)、補正回路134は、当該コマンドはライトコマンドであるか否かを判定する(S402)。当該コマンドがライトコマンドである場合(S402:Yes)、補正回路134は、カウンタC2によって、データストローブ信号H_DQSのトグル回数のカウントを開始するとともに、カウンタC3によって、内部クロック信号I_CLKbのトグル回数のカウントを開始する(S403)。
【0186】
データストローブ信号H_DQSのトグル回数のカウント値が所定値に達すると(S404)、カウンタC2は、カウンタC3による内部クロック信号I_CLKbのトグル回数のカウントを停止させる(S405)。
【0187】
そして、補正回路134は、カウンタC3による内部クロック信号I_CLKbのトグル回数のカウント値が目標下限値よりも小さいか否かを判定する(S406)。カウンタC3による内部クロック信号I_CLKbのトグル回数のカウント値が目標下限値よりも小さい場合(S406:Yes)、補正回路134は、発振回路125bの設定周波数を1ステップ幅だけ増加させる(S407)。
【0188】
カウンタC3による内部クロック信号I_CLKbのトグル回数のカウント値が目標下限値よりも小さくない場合(S406:No)、補正回路134は、カウンタC3による内部クロック信号I_CLKbのトグル回数のカウント値が目標上限値よりも大きいか否かを判定する(S408)。カウンタC3による内部クロック信号I_CLKbのトグル回数のカウント値が目標上限値よりも大きい場合(S408:Yes)、補正回路134は、発振回路125bの設定周波数を1ステップ幅だけ減少させる(S409)。
【0189】
S407の後、S409の後、またはカウンタC3による内部クロック信号I_CLKbのトグル回数のカウント値が目標上限値よりも大きくない場合(S408:No)、制御がS401に遷移する。
【0190】
ホストHAから受信したコマンドはライトコマンドでない場合(S402:No)、補正回路134は、当該コマンドはリードコマンドであるか否かを判定する(S410)。当該コマンドがリードコマンドである場合(S410:Yes)、補正回路134は、カウンタC4によって、リードイネーブル信号H_REのトグル回数のカウントを開始するとともに、カウンタC5によって、内部クロック信号I_CLKbのトグル回数のカウントを開始する(S411)。
【0191】
リードイネーブル信号H_REのトグル回数のカウント値が所定値に達すると(S412)、カウンタC4は、カウンタC5による内部クロック信号I_CLKbのトグル回数のカウントを停止させる(S413)。そして、制御がS406に遷移する。
【0192】
ホストHAから受信したコマンドがリードコマンドでない場合(S410:No)制御がS401に遷移する。
【0193】
このように、第3の実施形態によれば、補正回路134は、データストローブ信号H_DQSと内部クロック信号I_CLKbとの比較に基づいて発振回路125bの発信周波数の補正を行う。
【0194】
よって、発振回路125bとしてCR発振回路のような発振周波数が電圧または温度などによって変動し得る発振回路が適用された場合であっても、精度が高い内部クロック信号を利用することが可能になる。
【0195】
例えば、第3の実施形態が第2の実施形態とともに適用された場合、内部クロック信号I_CLKbの周波数をデータストローブ信号H_DQSの周波数よりも高く維持することが可能である。よって、送受信装置112bの誤作動を防止することが可能である。
【0196】
また、例えば第3の実施形態が第1の実施形態とともに適用された場合、設計者は、目標上限値および目標下限値を任意に設定することができる。
【0197】
または、補正回路134は、起動後に初回にS405またはS413の処理が実行されたとき、カウンタC3またはカウンタC5による内部クロック信号I_CLKbのトグル回数のカウント値を記憶し、当該記憶したカウント値に基づいて目標上限値および目標下限値を設定してもよい。例えば、補正回路134は、当該記憶したカウント値に所定第2の値を可算して得られる値を目標上限値とし、当該記憶したカウント値に所定第3の値を減算して得られる値を目標下限値としてもよい。これによって、発振回路125bは、電圧または温度が変動したとしても、初期状態における発振周波数を維持することが可能となる。
【0198】
以上述べたように、第1~第3の実施形態および変形例によれば、サンプラ126,126aは、データ信号H_DQ[7:0]を、データストローブ信号H_DQSに基づくタイミングで取り込む。DフリップフロップFF0e~FF4e,FF0o~FF4oによって構成されるパイプラインは、少なくとも内部クロック信号I_CLK,I_CLKa,I_CLKbを駆動信号として用いて、サンプラ126が取り込んだデータ信号H_DQ[7:0]を転送する。リタイマ127は、パイプラインを通過したデータ信号H_DQ[7:0]を取得して送信する。
【0199】
送受信装置112,112a,112bは、パイプラインを有しているため、高速なデータ転送が可能である。さらに、送受信装置112,112a,112bは、少なくとも内部クロック信号I_CLK,I_CLKa,I_CLKbを駆動信号として用いるため、受信したデータ信号を余すことなく送信することが可能である。
【0200】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0201】
BC,BCb ブリッジチップ、C1r,C1w,C2-C5 カウンタ、CP メモリチップ、FF0e-FF4e,FF0o-FF4o,FF10e-FF17e,FF10o-FF17o,FF10v-FF17v,FF18v,FF19v,FF21e-FF24e,FF21o-FF24o,FF21v-FF24v Dフリップフロップ、MUX1,MUX2,MUX10,MUX11,MUX12e,MUX12o マルチプレクサ、SEL0e,SEL1e,SEL0o,SEL1o,SEL0v,SEL1v セレクタ、1,1b 半導体記憶装置、10 外部端子群、101 第1インタフェース、102 第2インタフェース、103 コントローラ、104 バッファメモリ、111 コマンドデコーダ、112,112a,112b 送受信装置、113 マスク回路、114 レジスタ、115 サイズ情報、120,120a,120b データパス、121 判定回路、122 遅延回路、123 位相シフト回路、124 デューティサイクルアジャスタ、125,125a,125b 発振回路、126,126a サンプラ、127,127a リタイマ、130 供給回路、131 ライトデータパス、132 リードデータパス、133 ヒューズ、134 補正回路。