JP2020149588A - メモリシステム及びメモリコントローラ - Google Patents
メモリシステム及びメモリコントローラ Download PDFInfo
- Publication number
- JP2020149588A JP2020149588A JP2019048742A JP2019048742A JP2020149588A JP 2020149588 A JP2020149588 A JP 2020149588A JP 2019048742 A JP2019048742 A JP 2019048742A JP 2019048742 A JP2019048742 A JP 2019048742A JP 2020149588 A JP2020149588 A JP 2020149588A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- transfer rate
- nand
- command
- channel
- 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
Classifications
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
【課題】 性能を維持しつつ、消費電力を削減することが可能なメモリシステムを提供する。
【解決手段】 実施形態のメモリシステムは、第1及び第2不揮発性メモリと、前記第1及び第2不揮発性メモリにそれぞれ第1及び第2チャネルを介して接続されたメモリコントローラ3とを備える。メモリコントローラ3は、外部から受信した第1読み出し要求に応答して、第1不揮発性メモリから第1データを読み出す第1読み出し動作と、第2不揮発性メモリから第2データを読み出す第2読み出し動作とを並列に実行し、第1読み出し動作が完了する予定の第1時刻が第2読み出し動作が完了する予定の第2時刻より早い場合に、第1チャネルの第1転送レートを、第2チャネルの第2転送レートより低く設定する。
【選択図】 図1
【解決手段】 実施形態のメモリシステムは、第1及び第2不揮発性メモリと、前記第1及び第2不揮発性メモリにそれぞれ第1及び第2チャネルを介して接続されたメモリコントローラ3とを備える。メモリコントローラ3は、外部から受信した第1読み出し要求に応答して、第1不揮発性メモリから第1データを読み出す第1読み出し動作と、第2不揮発性メモリから第2データを読み出す第2読み出し動作とを並列に実行し、第1読み出し動作が完了する予定の第1時刻が第2読み出し動作が完了する予定の第2時刻より早い場合に、第1チャネルの第1転送レートを、第2チャネルの第2転送レートより低く設定する。
【選択図】 図1
Description
本発明の実施形態は、メモリシステム及びメモリコントローラに関する。
パーソナルコンピュータなどの情報処理装置の外部記憶装置として、HDD(hard disk drive)以外に、SSD(solid state drive)が用いられている。SSDは、不揮発性半導体メモリとしてNAND型フラッシュメモリを備えている。
近年、SSDは、さらなる高性能化が求められており、複数のNAND型フラッシュメモリへの並列アクセスだけでなく、転送レートの高速化によって高い性能を実現している。一方、転送レートの高速化により、データ入出力動作時の電力が大きく増加してしまう。これは、データ入出力のトグルが高速になっただけでなく、高速化に伴い信号波形の安定化のためにより低い抵抗値でのODT(on die termination)設定が必要となっていることも背景に挙げられる。
実施形態は、性能を維持しつつ、消費電力を削減することが可能なメモリシステム及びメモリコントローラを提供する。
実施形態に係るメモリシステムは、第1及び第2不揮発性メモリと、前記第1及び第2不揮発性メモリにそれぞれ第1及び第2チャネルを介して接続されたメモリコントローラとを具備する。前記メモリコントローラは、外部から受信した第1読み出し要求に応答して、前記第1不揮発性メモリから第1データを読み出す第1読み出し動作と、前記第2不揮発性メモリから第2データを読み出す第2読み出し動作とを並列に実行し、前記第1読み出し動作が完了する予定の第1時刻が前記第2読み出し動作が完了する予定の第2時刻より早い場合に、前記第1チャネルの第1転送レートを、前記第2チャネルの第2転送レートより低く設定する。
以下、実施形態について図面を参照して説明する。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置等によって、本発明の技術思想が特定されるものではない。各機能ブロックは、ハードウェア及びソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
なお、以下の説明において、同一の機能及び構成を有する要素については同一符号を付し、重複説明は必要な場合にのみ行う。共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に枝番号を付して複数の構成要素を区別する。なお、複数の構成要素を特に区別しない場合、複数の構成要素には、共通する参照符号のみが付され、枝番号は付されない。
[1] 第1実施形態
[1−1] メモリシステムの構成
図1は、第1実施形態に係るメモリシステム2のブロック図である。メモリシステム2は、ホスト装置1と接続可能である。ホスト装置1は、例えば、サーバ、あるいはパーソナルコンピュータが含むCPUまたはチップセットである。
[1−1] メモリシステムの構成
図1は、第1実施形態に係るメモリシステム2のブロック図である。メモリシステム2は、ホスト装置1と接続可能である。ホスト装置1は、例えば、サーバ、あるいはパーソナルコンピュータが含むCPUまたはチップセットである。
メモリシステム2は、SSD(solid state drive)、SDTMカードのようなメモリカード、及びeMMC(embedded multimedia card)などで構成することができる。また、メモリシステム2は、1つのモジュールで実現するシステムLSI(large-scale integrated circuit)、又はSoC(system on a chip)として構成してもよい。典型的には、メモリシステム2は、SSDで構成される。
図1に示すように、メモリシステム2は、メモリコントローラ3、及び不揮発性メモリとしての複数のNAND型フラッシュメモリNM(以下、単にNANDメモリとも称する)を備える。複数のNANDメモリNMの各々は、複数のメモリセルを備え、データを不揮発に記憶することが可能である。図1には、“(m+1)×(n+1)”個のNANDメモリNM0−0〜NMn−mを示している。行方向に並んだ(m+1)個のNANDメモリNMは、同一のチャネルCHに共通接続される。すなわち、(m+1)個のNANDメモリNM0−0〜NM0−mはチャネルCH0に共通接続され、(m+1)個のNANDメモリNM1−0〜NM1−mはチャネルCH1に共通接続され、(m+1)個のNANDメモリNMn−0〜NMn−mはチャネルCHnに共通接続される。
図2Aは、NAND型フラッシュメモリNMのブロック図である。NANDメモリNMの各々は、メモリセルアレイ40、ロウデコーダ41、センスアンプ42、及びページバッファ43を備える。
メモリセルアレイ40は、ワード線及びビット線に接続された複数のメモリセルを備え、データを不揮発に記憶することが可能である。ロウデコーダ41は、メモリコントローラ3から受け取ったロウアドレスをデコードし、ロウアドレスのデコード結果に基づいてワード線を選択する。センスアンプ42は、データの読み出し時には、メモリセルからビット線に読み出されたデータを検知及び増幅し、ページバッファ43に出力する。センスアンプ42は、またデータの書き込み時には、ページバッファ43から受け取った書き込みデータをビット線に転送する。ページバッファ43は、データの読み出し時には、メモリセルアレイ40内のメモリセルからセンスアンプ42を介して読み出されたデータを一時的に記憶し、そのデータをメモリコントローラ3に出力する。ページバッファ43は、データの書き込み時には、メモリコントローラ3から受け取った書き込みデータを一時的に記憶し、センスアンプ42を介して書き込みデータをメモリセルアレイ40内のメモリセルに出力する。
図1に戻り、説明を続ける。列方向に並んだ(n+1)個のNANDメモリNMは、1つのバンクBKを構成する。すなわち、(n+1)個のNANDメモリNM0−0〜NMn−0は、バンク0を構成し、(n+1)個のNANDメモリNM0−1〜NMn−1は、バンク1を構成し、(n+1)個のNANDメモリNM0−m〜NMn−mは、バンクmを構成する。
メモリコントローラ3は、例えばホスト装置1からのアクセス要求に応答して、NANDメモリNMに対して書き込み、読み出し、及び消去などを命令する。また、メモリコントローラ3は、NANDメモリNMのメモリ空間を管理する。メモリコントローラ3は、ホストインターフェース回路10(ホストI/Fとも称する)、プロセッサ11、ROM(read only memory)12、SRAM(static random access memory)13、及び(n+1)個のNANDコントローラ16−0〜16−nなどを備える。これらのモジュールは、バス17を介して互いに接続される。メモリコントローラ3は、SoC(system on a chip)で構成してもよい。
ホストインターフェース回路10は、バス18を介してホスト装置1に接続される。ホストインターフェース回路10は、所定のプロトコルに従って、ホスト装置1との間でインターフェース処理を行う。また、ホストインターフェース回路10は、ホスト装置1との間で、命令、アドレス、及びデータの送受信を行う。ホストインターフェースとしては、SATA(Serial Advanced Technology Attachment)、PCIe(Peripheral Component Interconnect Express)TM、SAS(Serial Attached SCSI)、及びNVMe(Non-Volatile Memory Express)TMなどが挙げられる。
プロセッサ11は、例えばCPU(central processing unit)で構成される。プロセッサ11は、メモリコントローラ3全体の動作を制御する。例えば、プロセッサ11は、ホスト装置1から読み出し要求を受けた場合に、それに応答して、NANDインターフェースに基づく読み出しコマンドを、NANDコントローラ16を介してNANDメモリNMに発行する。書き込み及び消去の場合も同様である。また、プロセッサ11は、ウェアレベリング、及びガベージコレクションなど、NANDメモリNMを管理するための様々な処理を実行する。
ROM12は、プロセッサ11によって使用されるソフトウェアを格納する。プロセッサ11は、ROM12に格納されたソフトウェアを実行することで、所定の動作を実行可能である。なお、プロセッサ11が使用するソフトウェアは、NANDメモリNMに格納されている場合もある。この場合、プロセッサ11は、NANDメモリNMからソフトウェアを読み出してSRAM13に格納し、SRAM13に格納されたソフトウェアを実行する。
SRAM13は、揮発性メモリの一種である。SRAM13は、プロセッサ11の作業領域として使用され、NANDメモリNMから読み出されたソフトウェア、及びプロセッサ11が作成した各種テーブルなどを格納する。また、SRAM13は、データバッファとしても使用される。SRAM13は、NANDメモリNMから読み出された読み出しデータを一時的に格納するリードバッファ14、及びNANDメモリNMに書き込まれる書き込みデータを一時的に格納するライトバッファ15を備える。なお、メモリコントローラ3は、DRAM(dynamic random access memory)を外部に備えていてもよい。このDRAMは、SRAM13とほぼ同様な用途で使用される。
NANDコントローラ16−0〜16−nはそれぞれ、チャネルCH0〜CHnに接続される。チャネルCH0〜CHnの各々は、複数の信号線で構成される。NANDコントローラ16は、所定のプロトコルに従って、NANDメモリNMとの間でインターフェース処理を行う。また、NANDコントローラ16は、NANDメモリNMとの間で命令、アドレス、及びデータの送受信を行う。NANDコントローラ16は、複数のチャネルによる並列動作、複数のバンクによるバンクインタリーブ動作が可能である。
[1−1−1] NANDコントローラ16の構成
図2Bは、1個のNANDコントローラ16のブロック図である。
図2Bは、1個のNANDコントローラ16のブロック図である。
NANDコントローラ16は、キューバッファ20、転送レート設定回路21、ODT(on die termination)設定回路22、完了予定時刻テーブル23、NANDインターフェース制御回路24、記憶回路25、及び選択回路26を備える。
キューバッファ20は、プロセッサ11から送信される複数のコマンドを、送信された順番に格納する。
転送レート設定回路21は、チャネルCHに接続される。転送レート設定回路21は、NANDインターフェース制御回路24の指示に応じて、チャネルCHを転送されるデータの転送レートを設定する。転送レートとは、単位時間内に転送されるデータの量である。例えば、転送レート設定回路21は、転送レート設定回路21の動作クロックの周波数を変更する、もしくは転送レート設定回路21を間欠的に動作させることで対象チャネルCHに接続されるNANDメモリとの間の転送レートを変化させることが可能である。
ODT設定回路22は、NANDインターフェース制御回路24の指示に応じて、チャネルCHの終端抵抗を設定する。終端抵抗は、ODTとも呼ばれる。ODT設定回路22は、転送レートが相対的に高い場合に、終端抵抗を低く設定する必要があり、転送レートが相対的に低い場合、転送レートが高い場合より終端抵抗を高く設定し、場合によっては終端抵抗をオフ状態に設定することが可能である。ODT設定回路22の具体的な構成については後述する。
NANDインターフェース制御回路24は、キューバッファ20に格納されたコマンドを、格納された順番にNANDメモリNMに送信する。NANDインターフェース制御回路24は、NANDメモリNMへのアクセスのスケジューリングを行う。このスケジューリングにおいて、NANDインターフェース制御回路24は、コマンドの完了予定時刻を算出する。NANDインターフェース制御回路24は、上記スケジューリングに基づいて、転送レート設定回路21を介してチャネルCHの転送レートを変更し、及びODT設定回路22の終端抵抗を変更する。
図2Cは、NANDコントローラ16が備える完了予定時刻テーブル23の一例を示す図である。完了予定時刻テーブル23は、NANDインターフェース制御回路24により算出されたコマンドの完了予定時刻を格納する。例えば、図2Cに示すように、完了予定時刻テーブル23は、ホスト装置1から送信されるアクセス要求に付与されたタグ1と、タグ1に関連付けられたチャネルCH、及び完了予定時刻を格納する。完了予定時刻テーブル23は、揮発性メモリ、又は不揮発性メモリで構成される。
図2Dは、記憶回路25が格納する設定情報の一例を示す図である。記憶回路25は、N個の設定情報1〜Nを格納する。設定情報1〜Nの各々は、転送レートの情報、及びODT値を含む。図2Dに示すように、例えば、設定情報1は、転送レートが高速である場合を示し、設定情報1に関連付けられた転送レートとしてV1を、ODT値としてR1を含む。設定情報2は、転送レートが低速である場合を示し、設定情報2に関連付けられた転送レートとしてV2を、ODT値としてR2を含む。さらに、設定情報3は、転送レートが超低速である場合を示し、設定情報3に関連付けられた転送レートとしてV3を、ODT値としてR3を含む。記憶回路25は、例えば、メモリコントローラ3に内蔵されたSRAMあるいはレジスタ等の揮発性メモリ、又は不揮発性メモリで構成される。プロセッサ11は、例えば、メモリシステム2への電源投入時などの初期化時に、ROM12あるいはNANDメモリNMから設定情報を読み出し、SRAM13に格納する。
選択回路26は、NANDインターフェース制御回路24の指示に応じて、設定情報1〜Nの1つを選択する。選択回路26によって選択された設定情報は、転送レート設定回路21、及びODT設定回路22に送られる。
[1−1−2] ODT設定回路22の構成
図3は、ODT設定回路22の回路図である。なお、図3には、チャネルCHに含まれる1本の信号線に接続される回路部分を抽出して示している。実際には、ODT設定回路22は、複数の信号線、例えばDQ(データ)線及びDQS(データストローブ)線に対応した数の回路部分を備える。
図3は、ODT設定回路22の回路図である。なお、図3には、チャネルCHに含まれる1本の信号線に接続される回路部分を抽出して示している。実際には、ODT設定回路22は、複数の信号線、例えばDQ(データ)線及びDQS(データストローブ)線に対応した数の回路部分を備える。
ODT設定回路22は、IOバッファ30、スイッチ素子としてのPチャネルMOSトランジスタ32、可変抵抗素子33、34、及びスイッチ素子としてのNチャネルMOSトランジスタ35を備える。
IOバッファ30の一端は、チャネルCHに含まれる1本の信号線に接続され、その他端は、ノード31を介して、キューバッファ20に接続される。
PチャネルMOSトランジスタ32のソースは、電源電圧VCCが印加される電源端子に接続され、そのドレインは、可変抵抗素子33の一端に接続される。PチャネルMOSトランジスタ32のゲートには、NANDインターフェース制御回路24から信号ODTSnが入力される。可変抵抗素子33の他端は、ノード31を介して、可変抵抗素子34の一端に接続される。
NチャネルMOSトランジスタ35のドレインは、可変抵抗素子34の他端に接続され、そのソースは、接地電圧VSSが印加される接地端子に接続される。NチャネルMOSトランジスタ35のゲートには、NANDインターフェース制御回路24から信号ODTSが入力される。信号ODTSは、信号ODTSnの反転信号である。
可変抵抗素子33の抵抗値は、NANDインターフェース制御回路24から送信される信号(図示せず)によって設定される。可変抵抗素子34の抵抗値は、NANDインターフェース制御回路24から送信される信号(図示せず)によって設定される。
このように構成されたODT設定回路22では、信号ODTSがハイレベル、及び信号ODTSnがローレベルである場合に、チャネルCHに含まれる信号線の終端抵抗を所定の抵抗値に設定することができる。
[1−2] メモリシステム2の動作
上記のように構成されたメモリシステム2の動作について説明する。まず、読み出し動作の全体の流れを説明する。図4は、第1実施形態に係るメモリシステム2の読み出し動作を説明するフローチャートである。
上記のように構成されたメモリシステム2の動作について説明する。まず、読み出し動作の全体の流れを説明する。図4は、第1実施形態に係るメモリシステム2の読み出し動作を説明するフローチャートである。
プロセッサ11は、ホスト装置1から読み出し要求を受信する(ステップS100)。読み出し要求には、アドレスも含まれる。プロセッサ11は、読み出し要求で指定されたデータが格納されているNANDメモリNMを特定する(ステップS101)。ステップS101では、論理アドレスと物理アドレスとの対応関係を示すルックアップテーブル(LUT)が用いられる。論理アドレスは、ホスト装置1が、メモリシステム2内の読み出し及び書き込み対象の論理的なデータ位置を示すためのアドレスである。物理アドレスは、NANDメモリNM内の読み出し及び書き込み対象の物理的なデータ位置を示すアドレスである。LUTを用いて、論理アドレスから物理アドレスを求めることで、データが格納されているNANDメモリNMを特定することができる。
プロセッサ11は、ステップS101で特定されたすべてのNANDメモリNMに対応するすべてのNANDコントローラ16に、読み出しコマンドを送信する(ステップS102)。この際、プロセッサ11は、同一の読み出し要求に関する複数の読み出しコマンドに、同一のタグを付与する。読み出しコマンドには、アドレスも含まれる。
プロセッサ11は、ステップS102で送信された読み出しコマンドを、キューバッファ20に格納する(ステップS103)。
NANDインターフェース制御回路24は、キューバッファ20に格納された読み出しコマンドの完了予定時刻を算出する(ステップS104)。NANDインターフェース制御回路24は、ステップS104で算出した完了予定時刻をタグとともに、完了予定時刻テーブル23に格納する(ステップS105)。
NANDインターフェース制御回路24は、完了予定時刻テーブル23を参照し、同一のタグが付与され、複数のチャネルCHで実行されている複数の読み出しコマンドの完了予定時刻を比較する(ステップS106)。NANDインターフェース制御回路24は、最も遅い完了予定時刻からの時間差を算出し、この時間差を用いて、転送レート及びODT値を決定する(ステップS107)。
NANDインターフェース制御回路24は、現在対象としているタグが付与された読み出しコマンド(対象読み出しコマンド、又は単に対象コマンドと呼ぶ)の読み出し動作が可能であるか否かを判定する(ステップS108)。このステップS108において、対象コマンドの読み出し動作が可能となるのは、対象コマンドより前にキューバッファ20に格納されたコマンドが全て完了し、対象コマンドが実行対象となった後である。
ステップS108において対象コマンドの読み出し動作が可能である場合(ステップS108=Yes)、NANDインターフェース制御回路24は、転送レート及びODT値の変更があるか否かを判定する(ステップS109)。なお、変更前の転送レートは、最も早い転送レートに設定され、変更前のODT値は、最も低い抵抗値に設定される。
ステップS109において転送レート及びODT値の変更がある場合(ステップS109=Yes)、NANDインターフェース制御回路24は、転送レート及びODT値を変更する(ステップS110)。具体的には、NANDインターフェース制御回路24は、同一タグを付与された完了予定時刻のうち、最も遅い完了予定時刻と対象コマンドの完了予定時刻との時間差に基づいて、記憶回路25に格納されたN個の設定情報1〜Nの1つを選択し、転送レート設定回路21及びODT設定回路22に転送する。転送レート設定回路21は、設定情報に基づいて、転送レートを設定する。ODT設定回路22は、設定情報に基づいて、ODT値を設定する。
その後、NANDインターフェース制御回路24は、NANDメモリNMからの読み出し動作を実行する(ステップS111)。ステップS109において転送レート及びODT値の変更がない場合(ステップS109=No)、NANDインターフェース制御回路24は、ステップS111に移行する。
[1−3] 読み出し動作の具体例
次に、メモリシステム2の読み出し動作の具体例を説明する。図5は、メモリシステム2の読み出し動作の具体例を説明する模式図である。図6は、転送レートを変更する前の読み出し動作を説明するタイミングチャートである。図7は、転送レートを変更した後の読み出し動作を説明するタイミングチャートである。
次に、メモリシステム2の読み出し動作の具体例を説明する。図5は、メモリシステム2の読み出し動作の具体例を説明する模式図である。図6は、転送レートを変更する前の読み出し動作を説明するタイミングチャートである。図7は、転送レートを変更した後の読み出し動作を説明するタイミングチャートである。
図6及び図7において、“tR”はメモリセルアレイ40からページバッファ43への読み出し動作を表し、“tPROG”はページバッファ43からメモリセルアレイ40への書き込み動作を表し、“Dout”はページバッファ43からメモリコントローラ3へのデータ出力動作を表し、“Din”はメモリコントローラ3からページバッファ43へのデータ入力動作を表している。図6及び図7において、チャネルCH0のバンク0は、NANDメモリNM0−0に対応し、チャネルCH0のバンク1は、NANDメモリNM0−1に対応し、チャネルCH0のバンクmは、NANDメモリNM0−mに対応し、チャネルCH1のバンク1は、NANDメモリNM1−1に対応し、チャネルCHnのバンク0は、NANDメモリNMn−0に対応する。
図5の例では、読み出し要求で指定されたデータが、NANDメモリNM0−0、NM1−1、NMn−0に分散されて格納されている。NANDメモリNM0−0からデータを読み出すための読み出しコマンドを“R1”、NANDメモリNM1−1からデータを読み出すための読み出しコマンドを“R2”、NANDメモリNMn−0からデータを読み出すための読み出しコマンドを“R3”と表記する。
図6に示した時刻t1において、プロセッサ11は、読み出しコマンドR1〜R3に関する読み出し要求を、ホスト装置1から受信する(図5のステップ(1))。読み出しコマンドR1〜R3に関するタグを“i”と表記する。
図6の時刻t1において、チャネルCH0に接続されたNANDメモリNM0−0、NM0−1、NM0−mは、読み出し動作を実行中である。チャネルCH0には、NANDメモリNM0−m、NANDメモリNM0−1、NANDメモリNM0−0の順に、これらNANDメモリNMからデータが出力される。チャネルCH1に接続されたNANDメモリNM1−1は、書き込み動作を実行中である。チャネルCHnに接続されたNANDメモリNMn−0は、コマンドを実行していない。
プロセッサ11は、タグiが付与された読み出しコマンドR1をキューバッファ20−0に送信し、タグiが付与された読み出しコマンドR2をキューバッファ20−1に送信し、タグiが付与された読み出しコマンドR3をキューバッファ20−nに送信する(図5のステップ(2))。図5のキューバッファ20−0、20−1に示されたハッチング付きの四角は、コマンドの一例を表している。例えば、キューバッファ20−0には、時刻t1において実行中で完了待ちの3つの読み出しコマンドが格納され、キューバッファ20−1には、時刻t1において実行中で完了待ちの1つの書き込みコマンドが格納されている。キューバッファ20−nには、コマンドが格納されていない。
NANDインターフェース制御回路24−0、24−1、24−nはそれぞれ、キューバッファ20−0、20−1、20−nに格納された読み出しコマンドR1、R2、R3の完了予定時刻を算出する。そして、NANDインターフェース制御回路24−0、24−1、24−nはそれぞれ、完了予定時刻をタグとともに、完了予定時刻テーブル23−0、23−1、23−nに格納する(図5のステップ(3))。図6において、読み出しコマンドR3の完了予定時刻はt2、読み出しコマンドR1の完了予定時刻はt3、読み出しコマンドR2の完了予定時刻はt4である。
NANDインターフェース制御回路24−0は、完了予定時刻テーブル23−0、23−1、23−nを参照し、タグiが付与された読み出しコマンドR1、R2、R3の完了予定時刻を比較する(図5のステップ(4))。読み出しコマンドR1、R2、R3のうち最も遅い完了予定時刻は、時刻t4である。
NANDインターフェース制御回路24−0は、最も遅い完了予定時刻t4からの時間差を算出し、この時間差を用いて、転送レート及びODT値を決定する(図5のステップ(5))。なお、図5のステップ(5)では、記憶回路25及び選択回路26の図示を省略している。続いて、NANDインターフェース制御回路24−0は、読み出し動作を実行する(図5のステップ(6))。NANDインターフェース制御回路24−1、24−nについても、図5のステップ(4)〜(6)と同じ処理を行う。なおここでは、NANDインターフェース制御回路24が完了予定時刻の時間差を用いて、転送レート及びODT値を決定し、それらを設定する例を説明したが、これらの動作はプロセッサ11が実行してもよい。
図7において、NANDコントローラ16−1によるコマンドR2の完了予定時刻t4は最も遅い。よって、NANDコントローラ16−1は、高速の転送レートでコマンドR2のデータ出力動作を実行する。高速の転送レートでのデータ出力動作は、“Dout”で示される。NANDコントローラ16−0によるコマンドR1の完了予定時刻は、NANDコントローラ16−1によるコマンドR2の次に遅い。よって、NANDコントローラ16−0は、高速より低い転送レート(低速と呼ぶ)でコマンドR1のデータ出力動作を実行する。NANDコントローラ16−nによるコマンドR3の完了予定時刻は、最も早い。よって、NANDコントローラ16−nは、低速より低い転送レート(超低速と呼ぶ)でコマンドR3のデータ出力動作を実行する。なお、低速の転送レートは、転送の開始時刻が高速の転送レートより前であり、転送の終了時刻が高速の転送レートの終了時刻t4より遅くならない時刻である。さらに、超低速の転送レートは、転送の開始時刻が低速の転送レートより前であり、転送の終了時刻が高速の転送レートの終了時刻t4より遅くならない時刻である。このような転送レートであれば、同一タグiとして各NANDメモリへコマンド発行されたホスト装置1からの読み出し要求の完了時刻は遅くならない。
高速の転送レートである場合、NANDコントローラ16−1は、ODT値を低く設定してもよい。低速の転送レートである場合、NANDコントローラ16−1は、ODT値を、高速の場合よりも高く設定してもよい。超低速の転送レートである場合、NANDコントローラ16−nは、ODT値を、低速の場合よりも高く設定してもよい。すなわち、ODT値は、高速、低速、超低速の順に、高く設定されてもよい。
[1−4] 第1実施形態の効果
以上詳述したように第1実施形態では、メモリシステム2は、複数のNANDメモリNMに接続された複数のチャネルCHを備える。メモリコントローラ3は、複数のチャネルCHを用いて、複数のNANDメモリNMを並列動作させることが可能である。そして、ホスト装置1からの読み出し要求に対して、スケジューリングされた読み出し完了予定時刻を変更することなく、並列動作する読み出しコマンドの完了予定時刻の時間差に基づいて、一部のチャネルCHの転送レートを低くするようにしている。また、転送レートを低くしたチャネルのODT値を高くするようにしている。これにより、読み出し動作に要する時間を維持したままで、低い転送レートに設定されたチャネルCHによって消費される電力を減らすことが可能となる。
以上詳述したように第1実施形態では、メモリシステム2は、複数のNANDメモリNMに接続された複数のチャネルCHを備える。メモリコントローラ3は、複数のチャネルCHを用いて、複数のNANDメモリNMを並列動作させることが可能である。そして、ホスト装置1からの読み出し要求に対して、スケジューリングされた読み出し完了予定時刻を変更することなく、並列動作する読み出しコマンドの完了予定時刻の時間差に基づいて、一部のチャネルCHの転送レートを低くするようにしている。また、転送レートを低くしたチャネルのODT値を高くするようにしている。これにより、読み出し動作に要する時間を維持したままで、低い転送レートに設定されたチャネルCHによって消費される電力を減らすことが可能となる。
従って第1実施形態によれば、高速動作を維持しつつ、メモリシステム2の消費電力を低減できる。
[2] 第2実施形態
対象コマンドの転送レートを例えば低速に決定した後に、次の読み出し要求に関するコマンドをさらにNANDコントローラ16が受信する場合がある。第2実施形態では、対象コマンドの転送レートを下げることで、次にキューイングされたコマンドの実行時間が遅れる場合に、対象コマンドの転送レートを高速に戻すようにしている。
対象コマンドの転送レートを例えば低速に決定した後に、次の読み出し要求に関するコマンドをさらにNANDコントローラ16が受信する場合がある。第2実施形態では、対象コマンドの転送レートを下げることで、次にキューイングされたコマンドの実行時間が遅れる場合に、対象コマンドの転送レートを高速に戻すようにしている。
[2−1] メモリシステム2の動作
図8A及び図8Bは、第2実施形態に係るメモリシステム2の読み出し動作を説明するフローチャートである。図8Aに示したステップS100〜S107の動作は、第1実施形態と同じである。
図8A及び図8Bは、第2実施形態に係るメモリシステム2の読み出し動作を説明するフローチャートである。図8Aに示したステップS100〜S107の動作は、第1実施形態と同じである。
NANDインターフェース制御回路24は、プロセッサ11から、対象コマンド以降にコマンドを受信したか否かを判定する(ステップS200)。ステップS200でコマンドを受信していない場合(ステップS200=No)、NANDインターフェース制御回路24は、処理をステップS108に移行する。
ステップS200でコマンドを受信した場合(ステップS200=Yes)、NANDインターフェース制御回路24は、対象コマンドの転送レートが高速より低いか否かを判定する(ステップS201)。対象コマンドの転送レートが高速である場合(ステップS201=No)、NANDインターフェース制御回路24は、処理をステップS108に移行する。
対象コマンドの転送レートが高速より低い(低転送レートともいう)場合(ステップS201=Yes)、NANDインターフェース制御回路24は、対象コマンドの次のコマンドの完了予定時刻を算出する(ステップS202)。
NANDインターフェース制御回路24は、対象コマンドを低転送レートに設定することで性能劣化があるか否かを判定する(ステップS203)。例えば、次のコマンドの完了予定時刻と、次のコマンドと異なるチャネルCHで算出された同一タグのコマンドの完了予定時刻とを比較して、対象コマンドの完了予定時刻が最も遅かった場合は、性能劣化があると判定する。すなわち、性能劣化とは、対象コマンドの完了予定時刻が遅れることで、対象コマンドの次のコマンドの完了予定時刻が遅れることを意味する。性能劣化がない場合(ステップS203=No)、ステップS108に移行される。
性能劣化がある場合(ステップS203=Yes)、NANDインターフェース制御回路24は、低転送レートをキャンセルする(ステップS204)。具体的には、NANDインターフェース制御回路24は、転送レートを高速に戻す。その後のステップS108〜S111の動作は、第1実施形態と同じである。
次に、本実施形態の読み出し動作におけるタイミングチャートの一例について説明する。読み出し完了予定時刻に応じて、転送レートを変更する動作は、第1実施形態で示した図6及び図7と同じである。
図9は、低転送レートをキャンセルする場合におけるタイミングチャートの一例である。NANDコントローラ16−0は、対象コマンドの次のコマンドR4を受信したものとする。コマンドR4は、チャネルCH0に接続されたNANDメモリNM0−0からの読み出しを指示するものとする。
図9に示すように、NANDコントローラ16−0は、コマンドR1に関する低転送レートをキャンセルし、高速の転送レートに変更する。その後、NANDコントローラ16−0は、コマンドR4を処理する。
[2−2] 第2実施形態の効果
第2実施形態によれば、転送レートを低速に変更した後に、次のコマンドを受信した場合に、上記次のコマンドの読み出し完了予定時刻が遅れるのを防ぐことができる。これにより、読み出し動作の性能劣化を防ぐことができる。
第2実施形態によれば、転送レートを低速に変更した後に、次のコマンドを受信した場合に、上記次のコマンドの読み出し完了予定時刻が遅れるのを防ぐことができる。これにより、読み出し動作の性能劣化を防ぐことができる。
[3] 変形例
上記各実施形態では、メモリシステム2の読み出し動作について説明したが、転送レート及びODT値を変更する処理は、書き込み動作に適用することも可能である。
上記各実施形態では、メモリシステム2の読み出し動作について説明したが、転送レート及びODT値を変更する処理は、書き込み動作に適用することも可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ホスト装置、2…メモリシステム、3…メモリコントローラ、10…ホストインターフェース回路、11…プロセッサ、12…ROM、14…リードバッファ、15…ライトバッファ、16…NANDコントローラ、17,18…バス、20…キューバッファ、21…転送レート設定回路、22…ODT設定回路、23…完了予定時刻テーブル、24…NANDインターフェース制御回路、25…記憶回路、26…選択回路、30…IOバッファ、32,35…MOSトランジスタ、33,34…可変抵抗素子、CH…チャネル、NM…NAND型フラッシュメモリ。
Claims (6)
- 第1及び第2不揮発性メモリと、
前記第1及び第2不揮発性メモリにそれぞれ第1及び第2チャネルを介して接続されたメモリコントローラと、
を具備し、
前記メモリコントローラは、
外部から受信した第1読み出し要求に応答して、前記第1不揮発性メモリから第1データを読み出す第1読み出し動作と、前記第2不揮発性メモリから第2データを読み出す第2読み出し動作とを並列に実行し、
前記第1読み出し動作が完了する予定の第1時刻が前記第2読み出し動作が完了する予定の第2時刻より早い場合に、前記第1チャネルの第1転送レートを、前記第2チャネルの第2転送レートより低く設定するメモリシステム。 - 前記メモリコントローラは、
前記第1チャネルに接続された第1終端抵抗と、
前記第2チャネルに接続された第2終端抵抗と
をさらに具備し、
前記メモリコントローラは、
前記第1時刻が前記第2時刻より早い場合に、前記第1終端抵抗の第1抵抗値を、前記第2終端抵抗の第2抵抗値より高く設定する請求項1に記載のメモリシステム。 - 前記メモリコントローラは、
前記第1チャネルに接続され、転送レートを設定する第1設定回路と、
前記第2チャネルに接続され、転送レートを設定する第2設定回路と、
複数の転送レートの情報を格納する記憶回路と、
前記記憶回路に格納された前記情報を用いて、前記第1及び第2設定回路を制御する第1制御回路と、
をさらに具備する請求項1又は2に記載のメモリシステム。 - 前記メモリコントローラは、
前記第1読み出し要求に応じて、前記第1不揮発性メモリ用の第1コマンドと、前記第2不揮発性メモリ用の第2コマンドとを発行する第2制御回路と、
前記第1コマンドを格納する第1キューバッファと、
前記第2コマンドを格納する第2キューバッファと
をさらに具備し、
前記第1制御回路は、前記第1キューバッファに格納されたコマンドに応じて、前記第1不揮発性メモリの動作を制御し、前記第2キューバッファに格納されたコマンドに応じて、前記第2不揮発性メモリの動作を制御する請求項3に記載のメモリシステム。 - 前記メモリコントローラは、
前記第1時刻を格納する第1テーブルと、
前記第2時刻を格納する第2テーブルと
をさらに具備し、
前記第1制御回路は、前記第1及び第2テーブルを用いて、最も遅く完了する読み出し動作の時刻を算出する請求項3に記載のメモリシステム。 - 前記第1読み出し要求を受信した後に第2読み出し要求を受信した場合に、前記第1チャネルの転送レートを前記第1転送レートから前記第2転送レートに設定する請求項1乃至5のいずれかに記載のメモリコントローラ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019048742A JP2020149588A (ja) | 2019-03-15 | 2019-03-15 | メモリシステム及びメモリコントローラ |
US16/535,771 US11042304B2 (en) | 2019-03-15 | 2019-08-08 | Determining a transfer rate for channels of a memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019048742A JP2020149588A (ja) | 2019-03-15 | 2019-03-15 | メモリシステム及びメモリコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020149588A true JP2020149588A (ja) | 2020-09-17 |
Family
ID=72424534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019048742A Pending JP2020149588A (ja) | 2019-03-15 | 2019-03-15 | メモリシステム及びメモリコントローラ |
Country Status (2)
Country | Link |
---|---|
US (1) | US11042304B2 (ja) |
JP (1) | JP2020149588A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2022064548A1 (ja) * | 2020-09-23 | 2022-03-31 | ||
US11977777B2 (en) | 2021-06-09 | 2024-05-07 | Kioxia Corporation | Semiconductor device including relay chip |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021149239A (ja) * | 2020-03-17 | 2021-09-27 | キオクシア株式会社 | メモリシステム |
TWI733568B (zh) * | 2020-08-27 | 2021-07-11 | 慧榮科技股份有限公司 | 記憶裝置、快閃記憶體控制器及其存取方法 |
US12019914B2 (en) * | 2021-03-12 | 2024-06-25 | Kioxia Corporation | Data processing device |
US11755238B2 (en) | 2021-10-01 | 2023-09-12 | Western Digital Technologies, Inc. | Continuous NAND data-transfer using filling rate evaluation approach |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768627A (en) * | 1995-12-15 | 1998-06-16 | On Spec Electronic, Inc. | External parallel-port device using a timer to measure and adjust data transfer rate |
US20050157646A1 (en) * | 2004-01-16 | 2005-07-21 | Nokia Corporation | System and method of network congestion control by UDP source throttling |
US9032177B2 (en) * | 2012-12-04 | 2015-05-12 | HGST Netherlands B.V. | Host read command return reordering based on time estimation of flash read command completion |
US9244519B1 (en) * | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US20150378640A1 (en) | 2013-06-26 | 2015-12-31 | Cnex Labs, Inc. | Nvm express controller for remote access of memory and i/o over ethernet-type networks |
US20160011812A1 (en) | 2014-07-09 | 2016-01-14 | Kabushiki Kaisha Toshiba | Memory System |
US9954726B2 (en) * | 2016-03-23 | 2018-04-24 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Controlling networking device temperatures by reducing data transfer rates from associated nodes |
TWI637268B (zh) | 2017-03-22 | 2018-10-01 | 慧榮科技股份有限公司 | 主機裝置與資料傳輸速率控制方法 |
JP2019046045A (ja) * | 2017-08-31 | 2019-03-22 | 東芝メモリ株式会社 | 記憶装置及び通信制御方法 |
-
2019
- 2019-03-15 JP JP2019048742A patent/JP2020149588A/ja active Pending
- 2019-08-08 US US16/535,771 patent/US11042304B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2022064548A1 (ja) * | 2020-09-23 | 2022-03-31 | ||
WO2022064548A1 (ja) * | 2020-09-23 | 2022-03-31 | キオクシア株式会社 | 半導体記憶装置及びメモリシステム |
JP7383831B2 (ja) | 2020-09-23 | 2023-11-20 | キオクシア株式会社 | 半導体記憶装置及びメモリシステム |
US11977777B2 (en) | 2021-06-09 | 2024-05-07 | Kioxia Corporation | Semiconductor device including relay chip |
Also Published As
Publication number | Publication date |
---|---|
US11042304B2 (en) | 2021-06-22 |
US20200293198A1 (en) | 2020-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020149588A (ja) | メモリシステム及びメモリコントローラ | |
US8510598B2 (en) | Buffer management method and apparatus for power reduction during flush operation | |
EP3121704B1 (en) | Solid state storage device controller with expansion mode | |
KR101893895B1 (ko) | 메모리 시스템 및 그 동작 제어 방법 | |
US20210390065A1 (en) | Memory device and method of operating the same | |
CN103635968A (zh) | 包含存储器系统控制器的设备和相关方法 | |
US11449441B2 (en) | Multi-ported nonvolatile memory device with bank allocation and related systems and methods | |
CN105808455A (zh) | 访问内存的方法、存储级内存及计算机系统 | |
CN112783433A (zh) | 存储装置及其操作方法 | |
KR20180082928A (ko) | 반도체장치 | |
CN113900969A (zh) | 存储器装置及其操作方法 | |
US20170147230A1 (en) | Memory device and memory system having heterogeneous memories | |
US12020764B2 (en) | Memory device for selectively operating multiple memory groups in different speeds and memory system including the same | |
US11676643B2 (en) | Memory device, storage device, and method of operating memory controller to output read data in response to read enable signal | |
US20210271605A1 (en) | Data transmission circuit and method of operating the same | |
US10747470B2 (en) | Semiconductor device with pseudo flow through scheme for power savings | |
CN113450843B (zh) | 电路布局结构与存储器存储装置 | |
KR20210012818A (ko) | 메모리 장치 및 그 동작 방법 | |
JP2010026950A (ja) | 記憶装置 | |
US9466338B1 (en) | Pulse generator, memory device, memory system having the same, and method of controlling an internal power of the memory device | |
CN105608021B (zh) | 一种利用内容寻址mram存储装置和方法 | |
US11735272B2 (en) | Noise reduction during parallel plane access in a multi-plane memory device | |
US11587608B2 (en) | Volatile memory device, storage device, and operating method of decreasing a leakage current | |
TWI759703B (zh) | 電路布局結構與記憶體儲存裝置 | |
US20230116063A1 (en) | Storage device based on daisy chain topology |