JP2022094033A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2022094033A JP2022094033A JP2020206820A JP2020206820A JP2022094033A JP 2022094033 A JP2022094033 A JP 2022094033A JP 2020206820 A JP2020206820 A JP 2020206820A JP 2020206820 A JP2020206820 A JP 2020206820A JP 2022094033 A JP2022094033 A JP 2022094033A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- clock
- data
- memory chip
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1093—Input synchronization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
Abstract
【課題】メモリコントローラとメモリチップとの間のデータ転送の周波数を高くしたメモリシステムを提供すること。【解決手段】メモリシステムは、メモリチップと、メモリチップを制御するメモリコントローラと、を備える。メモリコントローラは、ライト動作では、第1クロックに同期した第1タイミング信号と、第1タイミング信号に同期した第1データとをメモリチップに転送する。メモリコントローラは、リード動作では、第1クロックの周波数と異なる周波数の高い第2クロックに少なくとも同期した第2タイミング信号をメモリチップへ転送する。メモリチップは、リード動作では、第2クロックに同期した第3タイミング信号を第2タイミング信号に基づいて生成し、第3タイミング信号と、第3タイミング信号に同期した第2データとをメモリコントローラに転送する。【選択図】図4
Description
実施形態は、メモリシステムに関する。
メモリコントローラと複数のメモリチップとを備えるメモリシステムが普及している。メモリコントローラと各メモリチップとの間のデータ転送の周波数をできるだけ高くしたいという要望がある。
Ren-Shuo Liu, Jian-Hao Huang, "DI-SSD: Desymmetrized Interconnection Architecture and Dynamic Timing Calibration for Solid-State Drives", [online], 2018 23rd Asia and South Pacific Design Automation Conference, [retrieved on 2020-12-11], retrieved from the Internet: <URL: https://ieeexplore.ieee.org/document/8297279>
一つの実施形態は、メモリコントローラとメモリチップとの間のデータ転送の周波数を高くしたメモリシステムを提供することを目的とする。
一つの実施形態によれば、メモリシステムは、メモリチップと、メモリチップを制御するメモリコントローラと、を備える。メモリコントローラは、ライト動作では、第1クロックに同期した第1タイミング信号と、第1タイミング信号に同期した第1データとをメモリチップに転送する。メモリコントローラは、リード動作では、第1クロックの周波数と異なる周波数の第2クロックに少なくとも同期した第2タイミング信号をメモリチップへ転送する。メモリチップは、リード動作では、第2クロックに同期した第3タイミング信号を第2タイミング信号に基づいて生成し、第3タイミング信号と、第3タイミング信号に同期した第2データとをメモリコントローラに転送する。
以下に添付図面を参照して、実施形態のメモリシステムを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
(実施形態)
図1は、ホストと接続された実施形態のメモリシステムの構成の一例を示す模式的な図である。メモリシステム1は、ホスト2と接続可能である。メモリシステム1とホスト2との間の通信路の規格は、特定の規格に限定されない。一例では、SAS(Serial Attached SCSI)が採用され得る。
図1は、ホストと接続された実施形態のメモリシステムの構成の一例を示す模式的な図である。メモリシステム1は、ホスト2と接続可能である。メモリシステム1とホスト2との間の通信路の規格は、特定の規格に限定されない。一例では、SAS(Serial Attached SCSI)が採用され得る。
ホスト2は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバである。メモリシステム1は、ホスト2からアクセス要求(リード要求やライト要求など)を受け付けることができる。
メモリシステム1は、メモリコントローラ100と、NAND型のフラッシュメモリ(NANDメモリ)200と、を備えている。NANDメモリ200は、複数のメモリチップ210によって構成される。なお、これらのメモリチップ210の種類は、NAND型のフラッシュメモリに限定されない。
NANDメモリ200は、複数のメモリチップ210として、16個のメモリチップ210a~210pを備える。NANDメモリ200を構成する16個のメモリチップ210は、それぞれ、4つのチャネル(ch.0~ch.3)の何れかを介してメモリコントローラ100に接続されている。
図1に示した例に従えば、メモリチップ210a~210dは、チャネル#0(ch.0)に共通に接続されている。メモリチップ210e~210hは、チャネル#1(ch.1)に共通に接続されている。メモリチップ210i~210lは、チャネル#2(ch.2)に共通に接続されている。メモリチップ210m~210pは、チャネル#3(ch.3)に共通に接続されている。
各チャネルは、複数の信号線を束ねた構成を有している。メモリコントローラ100は、各チャネルを個別に制御することができる。メモリコントローラ100は、複数のチャネルを個別に制御することによって、それぞれ接続されたチャネルが異なる複数のメモリチップ210を同時に動作させることができる。チャネルの構成の一例は後述される。
メモリシステム1が備えるメモリチップ210の数は、16個に限定されない。メモリシステム1が備えるチャネルの数は、4つに限定されない。1つのチャネルに接続されるメモリチップ210の数は、4つに限定されない。
メモリコントローラ100は、CPU(Central Processing Unit)110と、ホストインタフェース(ホストI/F)120と、RAM(Random Access Memory)130と、チャネルの数に対応する数(ここでは4つ)のNANDコントローラ140と、を備える。メモリコントローラ100は、例えばSoC(System-On-a-Chip)として構成され得る。メモリコントローラ100は、複数のチップによって構成されてもよい。
RAM130は、ホスト2とNANDメモリ200との間のデータ転送のバッファとして使用され得る。具体的には、RAM130には、NANDメモリ200に転送される前のデータがバッファされるライトバッファ131がアロケートされている。また、RAM130には、NANDメモリ200から読み出されたデータがバッファされるリードバッファ132がアロケートされている。RAM130は、データ転送のバッファとしての機能のほかに、CPU110のワーキングエリア、各種データのキャッシュメモリ、などとして機能し得る。
RAM130を構成するメモリの種類は特定の種類のメモリに限定されない。例えば、RAM130は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、またはこれらの組み合わせによって構成され得る。RAM130は、メモリコントローラ100とは別のチップとしてメモリシステム1に具備されてもよい。
ホストI/F120は、ホスト2とメモリコントローラ100との間の情報(アクセス要求、応答、データ)の送受信を制御する。例えば、ホストI/F120は、ホスト2が送信したアクセス要求を受け付ける。また、ホストI/F120は、ホスト2から受信したデータをRAM130内のライトバッファ131に格納する。また、ホストI/F120は、NANDメモリ200から読み出されてRAM130内のリードバッファ132に格納されたデータをホスト2に送信する。
CPU110は、プログラム(ファームウェアプログラム)に基づいて動作するプロセッサである。CPU110は、メモリコントローラ100全体の動作を統括的に制御する。CPU110は、メモリコントローラ100全体の動作の制御の一環として、NANDメモリ200におけるアクセス先の特定、NANDメモリ200へのアクセスの種類、NANDメモリ200へのアクセスの順番、などを決定する。アクセスの種類は、ライト動作およびリード動作などである。
各NANDコントローラ140は、4つのチャネル#0~#3のうちの1つに接続されている。図1では、チャネル#iに接続されたNANDコントローラ140は、NANDコントローラ140-iと表記されている。iは、0以上で3以下の整数である。各NANDコントローラ140は、CPU110による決定に基づき、自身に接続されたチャネルを介した4つのメモリチップ210に対するアクセスを実行する。NANDコントローラ140は、メモリチップ210にアクセスする際には、当該メモリチップ210に対し、チャネルを介して、コマンドの転送、アドレスの転送、およびデータの転送、など実行する。
メモリコントローラ100の各構成要素の機能は、専用のハードウェア回路によって実現されてもよく、CPU110がプログラムを実行することによって実現されてもよい。
図2は、実施形態のチャネルの構成の一例を示す模式的な図である。4つのチャネルは互いに等しい構成を有している。本図では4つのチャネルの代表として、チャネル#0の構成について説明する。
チャネル#0は、チップイネーブル信号線CEn、コマンドラッチイネーブル信号線CLE、アドレスラッチイネーブル信号線ALE、ライトイネーブル信号線WEn、一対のリードイネーブル信号線REn/RE、一対のデータストローブ信号線DQS/DQSn、およびIO(input output)信号線DQ、を含む。
チップイネーブル信号線CEnは、チップイネーブル信号CEnの転送に使用される信号線である。チップイネーブル信号CEnは、アクセスの対象となるメモリチップをイネーブル状態とするための信号である。
IO信号線DQは、信号DQの転送に使用される信号線である。信号DQは、コマンド、アドレス、またはデータである。IO信号線DQは、例えば8ビットのビット幅を有する。IO信号線DQのビット幅はこれに限定されない。
コマンドラッチイネーブル信号線CLEは、コマンドラッチイネーブル信号CLEの転送に使用される信号線である。コマンドラッチイネーブル信号CLEは、IO信号線DQを転送される信号DQがコマンドであることを示す。NANDコントローラ140-0は、コマンドを信号DQとして転送するとき、コマンドラッチイネーブル信号CLEを転送する。
アドレスラッチイネーブル信号線ALEは、アドレスラッチイネーブル信号ALEの転送に使用される信号線である。アドレスラッチイネーブル信号ALEは、IO信号線DQを転送される信号DQがアドレスであることを示す。NANDコントローラ140-0は、アドレスを信号DQとして転送するとき、アドレスラッチイネーブル信号ALEを転送する。
ライトイネーブル信号線WEnは、ライトイネーブル信号WEnを転送する信号線である。ライトイネーブル信号WEnは、信号DQとして転送されるコマンドまたはアドレスを取り込むタイミングを示すタイミング信号である。よって、コマンドおよびアドレスは、ライトイネーブル信号WEnに同期して転送される。NANDコントローラ140-0は、コマンドまたはアドレスを信号DQとして転送するとき、ライトイネーブル信号WEnを転送する。
一対のリードイネーブル信号線REn/REは、一対のリードイネーブル信号REn/REの転送に使用される信号線の対である。一対のリードイネーブル信号REn/REは、差動信号として構成される。図2では、図の煩雑化を避けるために、一対のリードイネーブル信号線REn/REは、一本の線として描画されている。一対のリードイネーブル信号REn/REは、NANDコントローラ140-0がメモリチップ210にデータの出力タイミングを指示するタイミング信号である。以降、一対のリードイネーブル信号REn/REについて説明するときは、リードイネーブル信号REnのみ言及し、リードイネーブル信号REへの言及を省略する。
一対のデータストローブ信号線DQS/DQSnは、一対のストローブ信号DQS/DQSnを転送する信号線の対である。一対のストローブ信号DQS/DQSnは、差動信号として構成される。図2では、図の煩雑化を避けるために、一対のストローブ信号DQS/DQSnは、一本の線として描画されている。一対のストローブ信号DQS/DQSnは、データ転送の際に、転送先にデータの取り込みタイミングを指示するタイミング信号である。ライト動作の際には、NANDコントローラ140-0が、一対のストローブ信号DQS/DQSnを送信する。すなわち、ライト動作の際には、NANDコントローラ140-0が送信する一対のストローブ信号DQS/DQSnに同期してデータが転送される。リード動作の際には、4つのメモリチップ210a~210dのうちのデータの出力元のメモリチップ210が、一対のストローブ信号DQS/DQSnを送信する。すなわち、リード動作の際には、出力元のメモリチップ210が送信する一対のストローブ信号DQS/DQSnに同期してデータが転送される。以降、一対のストローブ信号DQS/DQSnについて説明するときは、ストローブ信号DQSのみ言及し、ストローブ信号DQSnへの言及を省略する。
各チャネルの構成は、以上に述べた例に限定されない。各チャネルは、上記の信号線以外に任意の信号線を含み得る。上記の信号線のうちの一部が省略されてもよい。
このように、1つのNANDコントローラ140に接続された信号線、特にIO信号線DQおよび一対のデータストローブ信号線DQS/DQSnのそれぞれは、複数の枝に分岐して、複数の枝のそれぞれはそれぞれ異なるメモリチップに接続される。
メモリコントローラと各メモリチップとの間のデータ転送の周波数、つまり、信号DQおよびストローブ信号DQSの周波数、をできるだけ高くしたいという要望がある。信号DQおよびストローブ信号DQSの周波数を高くすることができれば、メモリコントローラと複数のメモリチップとの間のデータ転送の速度が向上するので、メモリシステムの性能を高めることができる。
ライト動作においては、メモリコントローラ(より正確にはNANDコントローラ)は、ライト先のメモリチップが接続された1つのチャネルに接続された複数のメモリチップに対して信号DQおよびストローブ信号DQSを駆動することになる。したがって、信号DQおよびストローブ信号DQSの駆動の負荷が大きいうえに、信号DQおよびストローブ信号DQSが反射の影響を受けやすい。ライト動作において信号DQおよびストローブ信号DQSのアイ開口を許容されるレベルより広くするためには、データ転送の周波数をあまり高くすることができない。
これに対し、リード動作においては、メモリチップがメモリコントローラ(より正確にはNANDコントローラ)に対して信号DQおよびストローブ信号DQSを駆動するので、アイ開口を確保しやすい傾向にある。したがって、リード動作のデータ転送の周波数をライト動作のデータ転送の周波数よりも高くしても、信号DQおよびストローブ信号DQSのアイ開口を許容されるレベルより広くすることができる。
したがって、例えばライト動作とリード動作とでデータ転送の周波数として同一の周波数しか使用できないメモリシステム(以降、比較例にかかるメモリシステムと表記する)の場合、ライト動作におけるデータ転送の周波数の上限によってリード動作におけるデータ転送の周波数が律速される。つまり、リード動作におけるデータ転送の周波数にはより高くする余地がある。
実施形態のメモリシステム1は、リード動作では、ライト動作と異なる周波数でデータ転送を実行するように構成されている。より具体的には、メモリシステム1は、リード動作には、ライト動作に使用されるクロック信号よりも高い周波数のクロックに同期するストローブ信号を、データ転送に使用する。これによって、ライト動作およびリード動作のそれぞれにおいて、可及的に高い周波数でデータ転送を行うことが可能となる。
また、近年の顧客要求によれば、メモリシステムにデータを書き込む際の性能よりも、メモリシステムからデータをリードする際の性能が重視される傾向がある。実施形態のメモリシステム1では、ライト動作におけるデータ転送の周波数より高い周波数でメモリチップ210からメモリコントローラ100へのデータ転送を行うことが可能になる。従って、メモリシステム1からデータをリードする際の性能を向上させることができ、顧客要求をより高いレベルで満たすことができる。
実施形態のNANDコントローラ140は、リード動作とライト動作とで異なる周波数のクロックに同期したストローブ信号をデータ転送の周波数として使用するために、2つの位相同期回路(phase locked loop:PLL)を備えている。
図3および図4を参照して、実施形態のメモリシステム1の概略を説明する。図3は、実施形態のライト動作においてNANDコントローラ140とメモリチップ210との間で転送される信号の一部を説明するための図である。4つのNANDコントローラ140は、互いに同じ構成を備える。図3および図4では4つのNANDコントローラ140の代表として、チャネル#0を制御するNANDコントローラ140-0の構成について説明する。また、16個のメモリチップ210は、互いに同じ構成を備える。本図では、チャネル#0に接続された4つのメモリチップ210a~210dのうちのメモリチップ210b~210dの図示を省略する。
NANDコントローラ140-0は、WPLL(write PLL)151およびRPLL(read PLL)152を備える。WPLL151は、ライト動作におけるデータ転送などに使用されるクロックを生成するPLLである。RPLL152は、リード動作におけるデータ転送などに使用されるクロックを生成するPLLである。WPLL151が生成するクロックを、ライトクロックと表記する。RPLL152が生成するクロックを、リードクロックと表記する。リードクロックの周波数は、ライトクロックの周波数よりも高くてもよい。ライトクロックを生成する回路のタイプは、PLLに限定されない。リードクロックを生成する回路のタイプは、PLLに限定されない。ライトクロックを生成する回路およびリードクロックを生成する回路のそれぞれには、任意のタイプのクロック生成回路を採用することが可能である。
ライト動作においては、NANDコントローラ140-0は、ライトクロック、つまりWPLL151が生成したクロック、に同期したデータストローブ信号DQSをメモリチップ210aに転送する。また、NANDコントローラ140-0は、データストローブ信号DQSに同期したデータを、信号DQとしてメモリチップ210aに転送する。すなわち、ライト動作においては、データストローブ信号DQSおよび信号DQとして転送されるデータはライトクロックに同期している。メモリチップ210aは、信号DQとして受信したデータを、受信したデータストローブ信号DQSに基づいて取り込み、取り込んだデータをメモリセルアレイ(後述するメモリセルアレイ222)に書き込む。
図4は、実施形態のリード動作においてNANDコントローラ140とメモリチップ210との間で転送される信号の一部を説明するための図である。
リード動作においては、NANDコントローラ140-0は、リードクロック、つまりRPLL152が生成したクロック、に同期したリードイネーブル信号REnをメモリチップ210aに転送する。すると、メモリチップ210aは、リードイネーブル信号REnに基づいてデータストローブ信号DQSを生成する。メモリチップ210aは、生成したデータストローブ信号DQSをNANDコントローラ140-0に転送するとともに、データストローブ信号DQSに同期したリード対象のデータを信号DQとしてNANDコントローラ140-0に転送する。すなわち、リード動作においては、データストローブ信号DQSおよび信号DQとして転送されるデータはリードクロックに同期している。NANDコントローラ140-0は、信号DQとして受信したデータを、受信したデータストローブ信号DQSに基づいて取り込む。
図5は、実施形態のNANDコントローラ140およびメモリチップ210のより詳細な構成の一例を示す模式的な図である。本図では、図3および図4と同様に、4つのNANDコントローラ140の代表としてチャネル#0を制御するNANDコントローラ140-0を、チャネル#0に接続された4つのメモリチップ210a~210dの代表としてメモリチップ210aを、それぞれ説明する。
メモリチップ210aは、制御回路221、メモリセルアレイ222、データレジスタ223、デューティ補正回路224、信号DQ用のIO端子225、およびデータストローブ信号DQS用のIO端子226を備える。なお、図5においては、チップイネーブル信号CEn用のIO端子、コマンドラッチイネーブル信号CLE用のIO端子、アドレスラッチイネーブル信号ALE用のIO端子、ライトイネーブル信号WEn用のIO端子、およびリードイネーブル信号REn用のIO端子の図示を省略している。
制御回路221は、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、およびライトイネーブル信号WEnに基づき、メモリチップ210の動作を制御する。
メモリセルアレイ222は、複数のメモリセルトランジスタが配列された構成を有している。複数のメモリセルトランジスタのそれぞれは、ビット線BLとワード線WLとに接続されている。メモリセルアレイ222は、データを不揮発に記憶することができる。
データレジスタ223は、所定の容量を有するメモリである。所定の容量は、例えば、メモリセルアレイ222に対するデータの読み書きの単位のサイズである。
ライト動作の際には、データはNANDコントローラ140-0から信号DQとして転送され、IO端子225を介して受信される。このデータは、IO端子226を介して受信されたデータストローブ信号DQSに基づくタイミングでデータレジスタ223に格納される。その後、データレジスタ223に格納されたデータは、データレジスタ223からメモリセルアレイ222に書き込まれる。
リード動作の際には、メモリセルアレイ222から読み出されたデータは、データレジスタ223に格納される。その後、データレジスタ223に格納されたデータの一部または全部は、リードイネーブル信号REnに基づくタイミングで読み出される。このとき、リードイネーブル信号REnは、デューティ補正回路224に入力される。メモリチップ210aは、リードイネーブル信号REnに対してデューティ補正回路224によってデューティ補正などの波形整形を行うことで、データストローブ信号DQSを生成する。そして、メモリチップ210aは、生成したデータストローブ信号DQSをIO端子226を介して転送する。また、メモリチップ210aは、データレジスタ223から読み出したデータを、IO端子225を介し、信号DQとして転送する。このデータは、生成したデータストローブ信号DQSに同期している。
NANDコントローラ140-0は、WPLL151およびRPLL152に加えて、NANDコマンドシーケンス制御回路153、Cmd/Adr制御回路154、DQ/DQS送信回路155、DQ/DQS受信回路156、第1REn送信回路157、第2REn送信回路158、ライトデータパス159、リードデータパス160、第1タイマ161、第2タイマ162、切り替え回路163、信号DQ用のIO端子164、およびデータストローブ信号DQS用のIO端子165を備える。
NANDコマンドシーケンス制御回路153、Cmd/Adr制御回路154、DQ/DQS送信回路155、ライトデータパス159、第1REn送信回路157、および第1タイマ161は、ライトクロックに基づいて動作する。DQ/DQS受信回路156、リードデータパス160、第2REn送信回路158、および第2タイマ162は、リードクロックに基づいて動作する。
Cmd/Adr制御回路154は、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、およびライトイネーブル信号WEnの送信を制御する。
DQ/DQS送信回路155は、IO信号DQおよびデータストローブ信号DQSの送信を行う。より具体的には、DQ/DQS送信回路155は、ライト動作の際に、データストローブ信号DQSを送信するとともに、ライト対象のデータ(ライトデータと表記する)を信号DQとして送信する。
ライトデータパス159は、NANDコントローラ140-0の外部、より正確にはRAM130内のライトバッファ131、から取得されたデータに対して誤り訂正符号化を行うことによってパリティを生成し、生成したパリティを当該データに付加することによってライトデータを生成し、当該ライトデータをDQ/DQS送信回路155まで転送する。
DQ/DQS受信回路156は、IO信号DQおよびデータストローブ信号DQSの受信を行う。より具体的には、DQ/DQS受信回路156は、リード動作の際に、信号DQとしてメモリチップ210aから受信するリード対象のデータ(リードデータと表記する)を、メモリチップ210aから受信するデータストローブ信号DQSに基づいて取り込む。なお、前述されたように、メモリチップ210aから受信するデータストローブ信号DQSは、リードイネーブル信号REnに基づいて生成されたものである。メモリチップ210aから受信するデータストローブ信号DQSは、リードクロックと同じ周波数を有し得る。
リードデータパス160は、DQ/DQS受信回路156によって取り込まれたリードデータに対してパリティに基づく誤り訂正を行い、誤り訂正の後のデータを、NANDコントローラ140-0の外部、より正確にはRAM130内のリードバッファ132、まで転送する。
第1REn送信回路157および第2REn送信回路158は、リードイネーブル信号REnの送信を行う。切り替え回路163は、リードイネーブル信号REnの送信元を、第1REn送信回路157および第2REn送信回路158の間で切り替える回路である。
第1タイマ161および第2タイマ162は、複数の信号間のタイミング関係またはある信号のアサート・ネゲート間のタイミング関係が、予め定められたタイミング制約を満たすように、複数の信号間またはある信号のアサート・ネゲート間の時間を測定するタイマ回路である。このタイミング制約は、AC(Alternating Current)スペックとも称される。第1タイマ161は、ライトクロックに基づいて時間の測定を行う。第2タイマ162は、リードクロックに基づいて時間の測定を行う。
NANDコマンドシーケンス制御回路153は、NANDコントローラ140-0全体の制御を実行する。アクセスの種類毎に、送信すべきコマンドの種類と、コマンドの転送、アドレスの転送、およびデータの転送、の順番とが決められている。NANDコマンドシーケンス制御回路153は、メモリチップ210aに対するアクセスを実行する際に、決められた順番で決められた種類のコマンド、アドレス、およびデータをメモリチップ210aとの間で送受信するように、NANDコントローラ140-0が備える各構成要素を制御する。
続いて、実施形態のメモリシステム1の動作を説明する。
ライト動作の場合、NANDコマンドシーケンス制御回路153は、ライトバッファ131からデータを取得する。当該データは、ライトデータパス159を介してDQ/DQS送信回路155にライトデータとして送られる。NANDコマンドシーケンス制御回路153は、コマンドとアドレスの送信を、Cmd/Adr制御回路154およびDQ/DQS送信回路155に指示する。コマンドは、ライトを意味するコマンドであり、アドレスは、メモリチップ210におけるライトデータの格納先を示すアドレスである。DQ/DQS送信回路155は、コマンドおよびアドレスをIO端子164を介して信号DQとしてメモリチップ210に送信する。Cmd/Adr制御回路154は、コマンドおよびアドレスの送信が始まる前に、NANDコマンドシーケンス制御回路153からの指示に基づき、チップイネーブル信号CEnをアクティブ状態(Lowレベル)に遷移させる。そして、Cmd/Adr制御回路154は、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、およびライトイネーブル信号WEnを、コマンドおよびアドレスの送信に対応したタイミングで駆動する。その後、DQ/DQS送信回路155は、ライトデータパス159を通過したライトデータを信号DQとしてIO端子164を介して送信するとともに、データストローブ信号DQSをIO端子165を介して送信する。ライト動作が完了すると、Cmd/Adr制御回路154は、チップイネーブル信号CEnを非アクティブ状態(Highレベル)に遷移させる。
NANDコマンドシーケンス制御回路153、Cmd/Adr制御回路154、DQ/DQS送信回路155、およびライトデータパス159は、ライトクロックに基づいて動作するので、ライトデータは、ライトクロックに同期してNANDコントローラ140からメモリチップ210へ転送される。つまり、ライト動作におけるメモリコントローラ100からメモリチップ210へのデータ転送の周波数は、ライトクロックと等しい。また、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、ならびに信号DQとして送信されるコマンドおよびアドレスは、ライトクロックに同期してNANDコントローラ140からメモリチップ210へ転送される。
リード動作の場合、NANDコマンドシーケンス制御回路153は、コマンドとアドレスの送信を、Cmd/Adr制御回路154およびDQ/DQS送信回路155に指示する。コマンドは、リードを意味するコマンドであり、アドレスは、メモリチップ210におけるリードデータの格納位置を示すアドレスである。DQ/DQS送信回路155は、コマンドおよびアドレスをIO端子164を介して信号DQとしてメモリチップ210に送信する。Cmd/Adr制御回路154は、コマンドおよびアドレスの送信が始まる前に、NANDコマンドシーケンス制御回路153からの指示に基づき、チップイネーブル信号CEnをアクティブ状態(Lowレベル)にする。そして、Cmd/Adr制御回路154は、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、およびライトイネーブル信号WEnを、コマンドおよびアドレスの送信に対応したタイミングで駆動する。その後、第1REn送信回路157および第2REn送信回路158は、リードイネーブル信号REnを送信する。
リード動作の場合も、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、ならびに信号DQとして送信されるコマンドおよびアドレスは、ライトクロックに同期してNANDコントローラ140からメモリチップ210へ転送される。
リードイネーブル信号REnは、リードデータのサイズに応じた数だけトグルされる。リードデータのサイズに応じた数のトグルが開始される前に、まず、第1REn送信回路157が生成した、ライトクロックに同期したリードイネーブル信号REnが、切り替え回路163を介してメモリチップ210に送信される。ここで送信される信号は、リードイネーブル信号REnの最初の遷移(例えばHighレベルからLowレベルへの遷移)のみである。リードイネーブル信号REnの最初の遷移が送信された後、リードイネーブル信号REnの送信元が切り替え回路163によって第1REn送信回路157から第2REn送信回路158に切り替えられる。そして、第2REn送信回路158が生成した、リードクロックに同期したリードイネーブル信号REnが、切り替え回路163を介してメモリチップ210に送信される。
第2REn送信回路158は、リードイネーブル信号REnを、リードデータのサイズに応じた数だけトグルさせる。その後、リードイネーブル信号REnの送信元が切り替え回路163によって第2REn送信回路158から第1REn送信回路157に切り替えられる。
メモリチップ210は、リードイネーブル信号REnを受信すると、メモリセルアレイ222からデータレジスタ223に読み出されたデータ(即ちリードデータ)を、リードイネーブル信号REnに基づいて読み出す。そして、読み出したデータを、信号DQとしてIO端子225を介してメモリコントローラ100に送信する。さらに、メモリチップ210は、リードイネーブル信号REnを、デューティ補正回路224によって波形整形した後に、データストローブ信号DQSとしてIO端子226を介してメモリコントローラ100に送信する。メモリチップ210は、データレジスタ223から読み出したデータを、データストローブ信号DQSに同期して信号DQとして送信する。
ここで、リードイネーブル信号REnは、リードクロックに同期してトグルされる。また、メモリチップ210がメモリコントローラ100に送信するデータストローブ信号DQSは、リードイネーブル信号REnと同じ周波数を有し得る。よって、リードクロックと同じ周波数でリードデータの転送が実行され得る。
NANDコントローラ140では、DQ/DQS受信回路156は、信号DQとしてIO端子164に入力されたリードデータを、IO端子165に入力されたデータストローブ信号DQSに基づくタイミングで取り込む。DQ/DQS受信回路156が取り込んだリードデータは、リードデータパス160を介してNANDコントローラ140の外部、より正確にはRAM130内のリードバッファ132、に送られる。
図6は、リード動作における実施形態のメモリシステム1の動作を説明するためのタイミングチャートである。本タイミングチャートは、既にデータレジスタ223に格納されたリードデータをメモリチップ210からメモリコントローラ100に転送する動作を示している。
まず、Cmd/Adr制御回路154は、チップイネーブル信号CEnをアクティブ状態(Lowレベル)に遷移させる(図示せず)。次に、Cmd/Adr制御回路154は、コマンドラッチイネーブル信号CLEをアクティブ状態(Highレベル)に遷移させる(S1)。そして、コマンドラッチイネーブル信号CLEがアクティブ状態であるときに、DQ/DQS送信回路155は、コマンドC0を信号DQとして送信する(S2)。コマンドC0は、一連のコマンドシーケンスがメモリチップ210からメモリコントローラ100へのデータ転送に関するものであることを示すコマンドである。コマンドC0の送信の際、Cmd/Adr制御回路154は、コマンドC0をメモリチップ210に取り込ませるために、ライトイネーブル信号WEnをトグルする(S3)。これによって、コマンドC0は、ライトイネーブル信号WEnに同期して転送される。
なお、ここでは一例として、信号DQとして送信されたコマンドおよびアドレスは、ライトイネーブル信号WEnの立ち上がりのタイミングで取り込まれることとする。
続いて、Cmd/Adr制御回路154はアドレスラッチイネーブル信号ALEをアクティブ状態(Highレベル)に遷移させる(S4)。そして、アドレスラッチイネーブル信号ALEがアクティブ状態であるときに、DQ/DQS送信回路155は、アドレスADRを信号DQとして送信する(S5)。ここで送信されるアドレスADRは、データレジスタ223に格納されたデータの読み出し位置の先頭を示す。アドレスADRの送信の際、Cmd/Adr制御回路154は、アドレスADRをメモリチップ210に取り込ませるために、ライトイネーブル信号WEnをトグルする(S6)。これによって、アドレスADRは、ライトイネーブル信号WEnに同期して転送される。
なお、図6の例では、アドレスADRは、5サイクルで送信されている。よって、ライトイネーブル信号WEnは、5回、トグルされる。なお、アドレスADRの送信に要するサイクル数は、5サイクルに限定されない。
続いて、Cmd/Adr制御回路154は、コマンドラッチイネーブル信号CLEをアクティブ状態(Highレベル)に遷移させる(S7)。そして、コマンドラッチイネーブル信号CLEがアクティブ状態であるときに、DQ/DQS送信回路155は、コマンドC1を信号DQとして送信する(S8)。コマンドC1は、データ転送の準備を指示するコマンドである。コマンドC1の送信の際、Cmd/Adr制御回路154は、コマンドC1をメモリチップ210に取り込ませるために、ライトイネーブル信号WEnをトグルする(S9)。
メモリチップ210は、コマンドC1を受信すると、データ転送の準備を実行する。データ転送の準備とは、ADRとして入力された位置にリードポインタを移動させて、データレジスタ223からIO端子225の手前までデータを移動させ始める処理をいう。IO信号線DQが8ビットのビット幅を有する場合、リードデータは、8ビット毎に転送される。そのような場合、データ転送の準備の処理においては、メモリチップ210は、リードデータの先頭の8ビットを、IO制御回路まで転送する。
データ転送の準備のために確保すべき時間は、タイミング制約によって定義されている。図6に示す時間tWHR2は、タイミング制約によって定義された、データ転送の準備のために確保すべき時間である。ライトイネーブル信号WEnによって規定されたコマンドC1の取り込みタイミング、つまりコマンドC0、C1、およびアドレスADRの全ての転送の完了のタイミング、が時間tWHR2の開始タイミングとして定義されている。
メモリチップ210は、コマンドC1の取り込みタイミングから時間tWHR2以上の時間が経過した後、リードイネーブル信号REnの初回の遷移(ここではHighレベルからLowレベルへの遷移)を受け付けることができる。IO端子225およびIO端子226のモードは、信号の入力を受け付ける入力モードと、信号を出力する出力モードと、の間の切り替えが可能に構成されている。メモリチップ210は、リードイネーブル信号REnの初回の遷移を受け付けると、IO制御回路によって、IO端子225およびIO端子226のモードを出力モードに設定する。
IO端子225およびIO端子226のモードの設定のために確保すべき時間も、タイミング制約によって定義されている。図6に示す時間tRPREが、タイミング制約によって定義された、IO端子225およびIO端子226のモードの設定のために確保すべき時間である。メモリコントローラ100は、リードイネーブル信号REnの初回の遷移の後から時間tRPRE以上の時間が経過した後、リードデータのサイズに対応した数だけリードイネーブル信号REnをトグルさせることができる。
第1タイマ161は、コマンドC1の取り込みタイミングの後、ライトクロックに同期して時間tWHR2を測定する。第2タイマ162は、リードイネーブル信号REnの初回の遷移の後、リードクロックに同期して時間tRPREを測定する。
具体的には、S9においてライトイネーブル信号WEnのトグルが実行され、当該トグルにおけるライトイネーブル信号WEnの立ち上がりのタイミングに、NANDコマンドシーケンス制御回路153は、第1タイマ161に時間tWHR2の測定をスタートさせる(S10)。
第1タイマ161は、ライトクロックに基づいて時間の測定を行う。第1タイマ161の測定値が、時間tWHR2に相当する値に至ったとき、NANDコマンドシーケンス制御回路153は、第1REn送信回路157に、リードイネーブル信号REnの初回の遷移を実行させる(S11)。このとき、NANDコマンドシーケンス制御回路153は、切り替え回路163によって、リードイネーブル信号REnの送信元を第1REn送信回路157とする。これにより、リードイネーブル信号REnの初回の遷移は、第1REn送信回路157からメモリチップ210に送信される。
NANDコマンドシーケンス制御回路153は、リードイネーブル信号REnの初回の遷移の際に、第2タイマ162に時間tRPREの測定をスタートさせ、切り替え回路163にリードイネーブル信号REnの送信元を第1REn送信回路157から第2REn送信回路158に切り替えさせる(S12)。
第2タイマ162は、リードクロックに基づいて時間の測定を行う。ライトクロックとリードクロックとは互いに独立している。したがって、リードクロックに基づいて動作する第2タイマ162をライトクロックに基づくタイミング(例えばリードイネーブル信号REnの初回の遷移)でスタートさせる場合、第2タイマ162の測定値に対応する時間は、1クロック(リードクロックでの1クロック)程度の同期損を含む。第2タイマ162の測定値が、時間tRPREから当該同期損に相当する時間を引いた時間に相当する値に至ったとき、リードイネーブル信号REnの初回の遷移から時間tRPREが経過したと推定される。よって、第2タイマ162の測定値が時間tRPREから当該同期損に相当する時間を引いた時間に相当する値に至ったとき、NANDコマンドシーケンス制御回路153は、第2REn送信回路158に、リードイネーブル信号REnのトグルを開始させる(S13)。第2REn送信回路158は、リードデータのサイズに応じた数だけ、リードイネーブル信号REnをトグルする。
メモリチップ210では、IO端子225およびIO端子226のモードを出力モードに設定した後、トグルが開始されたリードイネーブル信号REnを受信する。メモリチップ210は、リードイネーブル信号REnをデューティ補正回路224によって波形整形し、波形整形を施した後のリードイネーブル信号REnをデータストローブ信号DQSとして送信する(S14)。メモリチップ210は、データレジスタ223から読み出したリードデータを、リードイネーブル信号REnに基づいて生成したデータストローブ信号DQSに同期して信号DQとして出力する(S15)。
第2REn送信回路158がリードデータのサイズに応じた数だけリードイネーブル信号REnをトグルさせると、NANDコマンドシーケンス制御回路153は、切り替え回路163にリードイネーブル信号REnの送信元を第2REn送信回路158から第1REn送信回路157に切り替えさせる(S16)。同時に、NANDコマンドシーケンス制御回路153は、第1タイマ161に時間tRPSTの測定をスタートさせる(S17)。
リードデータのサイズに応じた数のリードイネーブル信号のトグルが完了してからのホールド時間が、タイミング制約によって定義されている。図6に示す時間tRPSTが、当該ホールド時間である。NANDコマンドシーケンス制御回路153は、第1タイマ161の測定によって、当該ホールド時間の経過を検知する。なお、ライトクロックに基づいて動作する第1タイマ161をリードクロックに基づくタイミング(例えば第2REn送信回路158によるリードイネーブル信号REnのトグルの完了)でスタートさせる場合、第1タイマ161の測定値に対応する時間は、1クロック(ライトクロックでの1クロック)程度の同期損を含む。第1タイマ161の測定値が、時間tRPSTから当該同期損に相当する時間を引いた時間に相当する値に至ったとき、時間tRPSTが経過したと推定される。よって、第1タイマ161の測定値が時間tRPSTから当該同期損に相当する時間を引いた時間に相当する値に至ったとき、NANDコマンドシーケンス制御回路153は、Cmd/Adr制御回路154に、チップイネーブル信号CEnを非アクティブ状態(Highレベル)に遷移させる(S18)。
S18の後、所定時間(図6では時間tRPSTH)が経過すると、NANDコマンドシーケンス制御回路153は、第1REn送信回路157に、リードイネーブル信号REnの最後の遷移(ここではLowレベルからHighレベルへの遷移)を実行させる(S19)。これによって、リード動作が終了する。
以上述べたように、実施形態によれば、ライト動作では、メモリコントローラ100は、ライトクロックに同期したデータストローブ信号DQSと、このデータストローブ信号DQSに同期したライトデータとをメモリチップ210に転送する。リード動作では、メモリコントローラ100は、リードクロックに同期したリードイネーブル信号REnをメモリチップ210に転送する。リードクロックの周波数は、ライトクロックの周波数よりも高い。リード動作では、メモリチップ210は、リードクロックに同期したデータストローブ信号DQSをリードイネーブル信号REnに基づいて生成し、このデータストローブ信号DQSと、このデータストローブ信号DQSに同期したリードデータと、をメモリコントローラ100に転送する。
よって、リード動作におけるデータ転送の周波数を、比較例にかかるメモリシステムに比べて高くすることが可能である。すなわち、実施例にかかるメモリシステムは、ライト動作およびリード動作のそれぞれにおいて、可及的に高い周波数でデータ転送を行うことが可能である。つまり、メモリコントローラ100とメモリチップ210との間のデータ転送の周波数を高くすることが可能である。
さらに、メモリシステムにデータを書き込む際の性能よりもメモリシステムからデータをリードする際の性能を重視するという顧客要求を、より高いレベルで満たすことが可能となる。
実施形態によれば、メモリコントローラ100は、リード動作では、ライトクロックに同期したライトイネーブル信号WEnと、ライトイネーブル信号WEnに同期したコマンドおよびアドレスと、をメモリチップ210に転送する。その後、メモリコントローラ100は、リードイネーブル信号REnをメモリチップ210に転送する。
コマンドおよびアドレスのメモリチップ210への転送の完了後からリードイネーブル信号REnの初回の遷移までに確保すべき時間tWHR2が、タイミング制約によって定義されている。メモリコントローラ100は、時間tWHR2をライトクロックに基づいて測定する。時間tWHR2の測定が完了すると、メモリコントローラ100は、リードイネーブル信号REnの初回の遷移を実行する。
さらに、メモリコントローラ100は、リードイネーブル信号REnの初回の遷移の後、時間tRPREをリードクロックに基づいて測定する。時間tRPREは、タイミング制約によって定義された、データ転送の準備のために確保すべき時間である。時間tRPREの測定が完了すると、メモリコントローラ100は、リードイネーブル信号REnをリードクロックに同期してトグル、換言すると遷移させる。
よって、時間tWHR2および時間tRPREに関するタイミング制約をともに満たすことが可能である。
リードイネーブル信号REnの初回の遷移のタイミングが時間tWHR2の経過後よりも遅くなったり、リードイネーブル信号REnのトグルの開始のタイミングが時間tRPREの経過後よりも遅くなったりすると、コマンドオーバヘッドが大きくなり、メモリシステムからデータをリードする際の性能が劣化する。実施形態では、メモリコントローラ100は、時間tWHR2および時間tRPREのそれぞれを測定する構成を有している。よって、リードイネーブル信号REnの初回の遷移のタイミングの遅れ、およびリードイネーブル信号REnのトグルの開始のタイミングの遅れを防止できるので、メモリシステム1からデータをリードする際の性能の劣化を抑制することが可能である。
また、実施形態によれば、メモリコントローラ100は、時間tWHR2の測定が完了すると、リードデータのサイズに応じた数だけリードイネーブル信号REnをリードクロックに同期してトグルさせる。
そして、メモリコントローラ100は、リードイネーブル信号REnのトグルが完了すると、時間tRPSTをライトクロックに基づいて測定する。時間tRPSTは、タイミング制約に定義された、リードデータのサイズに応じた数のリードイネーブル信号REnのトグルが完了してからのホールド時間である。時間tRPSTの測定が完了すると、メモリコントローラ100は、リードイネーブル信号REnの最後の遷移をライトクロックに基づくタイミングで実行する。
よって、時間tRPSTに関するタイミング制約を満たすことが可能である。
実施形態によれば、メモリコントローラ100は、ライトクロックを生成するWPLL151と、リードクロックを生成するRPLL152と、を備える。
よって、設計者は、ライトクロックの周波数と、リードクロックの周波数と、を任意に決定することが可能である。
なお、メモリコントローラ100は、ライトクロックを生成するクロック生成回路と、リードクロックを生成するクロック生成回路と、の2つを必ずしも具備しなくてもよい。メモリコントローラ100は、1つのクロック生成回路が生成するクロックを分周するなどによって、2つのクロック、即ちライトクロックおよびリードクロック、を生成してもよい。
メモリチップ210は、デューティ補正回路224を備える。リード動作では、メモリチップ210は、リードイネーブル信号REnをデューティ補正回路224によって波形整形することによってデータストローブ信号DQSを生成する。
よって、メモリチップ210は、ライト時のデータストローブ信号DQSに基づく動作の速度と異なる速度で、データの出力を行うことが可能である。また、メモリチップ210は、入力されたリードイネーブル信号REnの周波数と同じ周波数のデータストローブ信号DQSを生成することが可能である。
以上では、リードクロックの周波数はライトクロックの周波数よりも高い例について説明した。ライトクロックの周波数は、リードクロックの周波数よりも高くてもよい。例えば、リード動作でのデータ転送の周波数が、ライト動作でのデータ転送の周波数に比べて高くすることが設計上困難である場合、ライトクロックの周波数を、リードクロックの周波数よりも高くすることによって、ライト動作およびリード動作のそれぞれにおいて、可及的に高い周波数でデータ転送を行うことが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、2 ホスト、100 メモリコントローラ、110 CPU、120 ホストI/F、130 RAM、131 ライトバッファ、132 リードバッファ、140 NANDコントローラ、151 WPLL、152 RPLL、153 NANDコマンドシーケンス制御回路、154 Cmd/Adr制御回路、155 DQ/DQS送信回路、156 DQ/DQS受信回路、157 第1REn送信回路、158 第2REn送信回路、159 ライトデータパス、160 リードデータパス、161 第1タイマ、162 第2タイマ、163 切り替え回路、164 IO端子、165 IO端子、225 IO端子、226 IO端子、200 NANDメモリ、210 メモリチップ、221 制御回路、222 メモリセルアレイ、223 データレジスタ、224 デューティ補正回路。
Claims (11)
- メモリチップと、
前記メモリチップを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
ライト動作では、第1クロックに同期した第1タイミング信号と、前記第1タイミング信号に同期した第1データとを前記メモリチップに転送し、
リード動作では、前記第1クロックの周波数と異なる周波数の第2クロックに少なくとも同期した第2タイミング信号を前記メモリチップへ転送し、
前記メモリチップは、
前記リード動作では、前記第2クロックに同期した第3タイミング信号を前記第2タイミング信号に基づいて生成し、前記第3タイミング信号と、前記第3タイミング信号に同期した第2データとを前記メモリコントローラに転送する、
メモリシステム。 - 前記メモリコントローラは、前記リード動作では、
前記第1クロックに同期した第4タイミング信号と、前記第4タイミング信号に同期したコマンドおよびアドレスとを前記メモリチップに転送し、その後、前記第2タイミング信号を前記メモリチップに転送する、
請求項1に記載のメモリシステム。 - 前記メモリコントローラは、
前記コマンドおよび前記アドレスを前記メモリチップへ転送した後、前記第1クロックに同期した前記第2タイミング信号を前記メモリチップへ転送し、その後、前記第2クロックに同期した前記第2タイミング信号を前記メモリチップへ転送する、
請求項2に記載のメモリシステム。 - 前記メモリコントローラは、
前記コマンドおよび前記アドレスを前記メモリチップへ転送した後、第1時間を前記第1クロックに基づいて測定し、
前記第1時間の測定の完了に応じて、前記第1クロックに同期した前記第2タイミング信号を前記メモリチップへ転送する、
請求項3に記載のメモリシステム。 - 前記メモリコントローラは、
前記第1クロックに同期した前記第2タイミング信号を前記メモリチップへ転送した後、第2時間を前記第2クロックに基づいて測定し、
前記第2時間の測定の完了に応じて、前記第2クロックに同期した前記第2タイミング信号を前記メモリチップへ転送する、
請求項4に記載のメモリシステム。 - 前記メモリコントローラは、前記第2時間の測定の完了に応じて、前記第2データのサイズに応じた数だけ前記第2タイミング信号を前記第2クロックに同期してトグルさせる、
請求項5に記載のメモリシステム。 - 前記メモリコントローラは、
前記第2データのサイズに応じた数だけ前記第2タイミング信号をトグルさせたことに応じて、第3時間を前記第1クロックに基づいて測定し、
前記第3時間の測定の完了に応じて、前記第1クロックに同期した前記第2タイミング信号を前記メモリチップへ転送する、
請求項6に記載のメモリシステム。 - 前記メモリコントローラは、前記第1クロックを生成する第1クロック生成回路と、前記第2クロックを生成する第2クロック生成回路と、を備える、
請求項1から7の何れか一項に記載のメモリシステム。 - 前記メモリコントローラと前記メモリチップとを接続する第1信号線、第2信号線、および第3信号線をさらに備え、
前記第1信号線は、前記メモリコントローラから前記メモリチップへの前記第2タイミング信号の転送に使用される信号線であり、
前記第2信号線は、前記メモリコントローラから前記メモリチップへの前記第1タイミング信号の転送と、前記メモリチップから前記メモリコントローラへの前記第3タイミング信号の転送と、に使用される信号線であり、
前記第3信号線は、前記メモリコントローラから前記メモリチップへの前記第1データの転送と、前記メモリチップから前記メモリコントローラへの前記第2データの転送と、前記メモリコントローラから前記メモリチップへのコマンドの転送と、前記メモリコントローラから前記メモリチップへのアドレスの転送と、に使用される信号線である、
請求項1から8の何れか一項に記載のメモリシステム。 - 前記メモリチップは、デューティ補正回路を備え、
前記メモリチップは、前記リード動作では、前記第2タイミング信号を前記デューティ補正回路によって波形整形することによって前記第3タイミング信号を生成する、
請求項1から9の何れか一項に記載のメモリシステム。 - 前記第2クロックの周波数は前記第1クロックの周波数よりも高い、
請求項1から10の何れか一項に記載のメモリシステム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020206820A JP2022094033A (ja) | 2020-12-14 | 2020-12-14 | メモリシステム |
US17/304,129 US11830576B2 (en) | 2020-12-14 | 2021-06-15 | Memory system and method of controlling a memory chip |
TW110130265A TWI827966B (zh) | 2020-12-14 | 2021-08-17 | 記憶體系統 |
CN202110941664.8A CN114625678B (zh) | 2020-12-14 | 2021-08-17 | 存储器系统 |
US18/488,089 US20240046971A1 (en) | 2020-12-14 | 2023-10-17 | Memory system and method of controlling a memory chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020206820A JP2022094033A (ja) | 2020-12-14 | 2020-12-14 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022094033A true JP2022094033A (ja) | 2022-06-24 |
Family
ID=81897383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020206820A Pending JP2022094033A (ja) | 2020-12-14 | 2020-12-14 | メモリシステム |
Country Status (4)
Country | Link |
---|---|
US (2) | US11830576B2 (ja) |
JP (1) | JP2022094033A (ja) |
CN (1) | CN114625678B (ja) |
TW (1) | TWI827966B (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490460B (zh) * | 2022-03-31 | 2022-06-28 | 成都启英泰伦科技有限公司 | 一种用于asic的flash控制器及其控制方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535986B1 (en) * | 2000-03-14 | 2003-03-18 | International Business Machines Corporation | Optimizing performance of a clocked system by adjusting clock control settings and clock frequency |
JP4255273B2 (ja) * | 2002-12-18 | 2009-04-15 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
US7466607B2 (en) * | 2004-09-30 | 2008-12-16 | Analog Devices, Inc. | Memory access system and method using de-coupled read and write circuits |
JP4859440B2 (ja) | 2005-01-19 | 2012-01-25 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置 |
KR100660546B1 (ko) | 2005-11-10 | 2006-12-22 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US8775701B1 (en) * | 2007-02-28 | 2014-07-08 | Altera Corporation | Method and apparatus for source-synchronous capture using a first-in-first-out unit |
JP2010282511A (ja) * | 2009-06-05 | 2010-12-16 | Elpida Memory Inc | メモリモジュール及びこれを備えるメモリシステム |
US8417982B1 (en) * | 2009-08-11 | 2013-04-09 | Marvell Israel (M.I.S.L.) Ltd. | Dual clock first-in first-out (FIFO) memory system |
US9001607B2 (en) * | 2009-08-19 | 2015-04-07 | Samsung Electronics Co., Ltd. | Method and design for high performance non-volatile memory |
KR20130114354A (ko) * | 2012-04-09 | 2013-10-18 | 삼성전자주식회사 | 메모리 시스템 및 컨트롤러의 동작 방법 |
JP5677376B2 (ja) * | 2012-07-06 | 2015-02-25 | 株式会社東芝 | メモリ制御装置、半導体装置、およびシステムボード |
KR102138110B1 (ko) * | 2013-10-04 | 2020-07-27 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 그것의 동작 방법 |
TWI527058B (zh) * | 2013-11-01 | 2016-03-21 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置與記憶體控制電路單元 |
JP6627346B2 (ja) | 2015-09-09 | 2020-01-08 | ソニー株式会社 | メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法 |
JP6779821B2 (ja) * | 2017-03-24 | 2020-11-04 | キオクシア株式会社 | メモリシステム及びデータの読み出し方法 |
JP2020047340A (ja) * | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | 不揮発性メモリ及びメモリシステム |
KR102263043B1 (ko) * | 2019-08-07 | 2021-06-09 | 삼성전자주식회사 | 비휘발성 메모리 장치, 컨트롤러 및 메모리 시스템 |
US11562780B2 (en) * | 2019-10-04 | 2023-01-24 | Samsung Electronics Co., Ltd. | Memory device and memory system including the same |
KR20220008428A (ko) * | 2020-07-13 | 2022-01-21 | 삼성전자주식회사 | 고효율 입출력 인터페이스를 지원하는 불휘발성 메모리 장치 |
-
2020
- 2020-12-14 JP JP2020206820A patent/JP2022094033A/ja active Pending
-
2021
- 2021-06-15 US US17/304,129 patent/US11830576B2/en active Active
- 2021-08-17 TW TW110130265A patent/TWI827966B/zh active
- 2021-08-17 CN CN202110941664.8A patent/CN114625678B/zh active Active
-
2023
- 2023-10-17 US US18/488,089 patent/US20240046971A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI827966B (zh) | 2024-01-01 |
CN114625678B (zh) | 2024-04-02 |
TW202223671A (zh) | 2022-06-16 |
CN114625678A (zh) | 2022-06-14 |
US11830576B2 (en) | 2023-11-28 |
US20220189520A1 (en) | 2022-06-16 |
US20240046971A1 (en) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7229124B2 (ja) | メモリ装置 | |
US8397020B2 (en) | Memory array and method with simultaneous read/write capability | |
US11662926B2 (en) | Input/output (I/O) loopback function for I/O signaling testing | |
TW201706990A (zh) | 用於高速記憶體介面之低功率時脈 | |
JP2007004967A (ja) | 並列データ経路アーキテクチャ | |
KR20200083641A (ko) | 반도체 메모리를 위한 메모리 명령을 포함하는 장치 및 방법 | |
EP3835963B1 (en) | Techniques for command bus training to a memory device | |
US20140006730A1 (en) | Memory controller devices, systems and methods for high reliability memory devices | |
KR20150122654A (ko) | 반도체 장치 | |
US11188260B2 (en) | Memory module and memory system including the same | |
US20180174636A1 (en) | Data alignment circuit of a semiconductor memory device, a semiconductor memory device and a method of aligning data in a semiconductor memory device | |
US20170076762A1 (en) | Memory device and electronic apparatus including the same | |
US20210165587A1 (en) | Memory systems and methods of training the memory systems | |
US20240046971A1 (en) | Memory system and method of controlling a memory chip | |
US11302402B2 (en) | Semiconductor integrated circuit, memory controller, and memory system | |
JP2021149729A (ja) | 半導体装置 | |
JPWO2007116827A1 (ja) | 半導体記憶装置 | |
JP2005339659A (ja) | 半導体記憶装置及びその動作方法 | |
EP1416494A2 (en) | Semiconductor memory capable of performing high-speed processing | |
JP4377567B2 (ja) | 半導体記憶装置と、記憶装置にバーストモードをセットする装置及び方法 | |
US9128511B2 (en) | Semiconductor device and operation method thereof | |
CN115910147B (zh) | 一种延迟可调的psram接口控制模块及控制器 | |
US20230409202A1 (en) | Semiconductor storage device and memory system | |
US20220358061A1 (en) | Unmatched architecture compensation via digital component delay | |
US20240053898A1 (en) | Hign-bandwidth ddr dimm, memory system, and operation method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230911 |