JP6627346B2 - メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法 - Google Patents

メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法 Download PDF

Info

Publication number
JP6627346B2
JP6627346B2 JP2015177156A JP2015177156A JP6627346B2 JP 6627346 B2 JP6627346 B2 JP 6627346B2 JP 2015177156 A JP2015177156 A JP 2015177156A JP 2015177156 A JP2015177156 A JP 2015177156A JP 6627346 B2 JP6627346 B2 JP 6627346B2
Authority
JP
Japan
Prior art keywords
request
clock signal
busy time
busy
memories
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.)
Active
Application number
JP2015177156A
Other languages
English (en)
Other versions
JP2017054274A (ja
Inventor
快 鈴木
快 鈴木
弘晃 山添
弘晃 山添
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2015177156A priority Critical patent/JP6627346B2/ja
Priority to US15/750,287 priority patent/US10838887B2/en
Priority to PCT/JP2016/069605 priority patent/WO2017043161A1/ja
Publication of JP2017054274A publication Critical patent/JP2017054274A/ja
Application granted granted Critical
Publication of JP6627346B2 publication Critical patent/JP6627346B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Memory System (AREA)

Description

本技術は、メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法に関する。詳しくは、複数のメモリに対してアクセスを行うメモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法に関する。
従来、画像等の大容量のデータを高速に記憶する記憶装置として、半導体メモリによる記憶装置が使用されている。このような記憶装置において、高速なデータ転送速度を保ちながら消費電力を低減するシステムが提案されている(例えば、特許文献1参照。)。
特開2009−146541号公報
上述の従来技術は、単一のDRAM(Dynamic Random Access Memory)を有する記憶装置において、メモリコントローラがDRAMに供給する電源電圧およびクロック信号の周波数を変更する。このDRAMに供給する電源電圧等の変更は、DRAMのアクセス頻度等に基づいて行われる。これにより、上述の従来技術は、所望のデータ転送速度を保ちながら消費電力の低減を可能にしている。一方、ストレージ等の大容量のデータを記憶する記憶装置においては、NAND型フラッシュメモリが多く採用される。このNAND型フラッシュメモリは、DRAMとは異なり、データのアクセスに要する時間が一定の値にならないという性質がある。このため、NAND型フラッシュメモリを有するシステムにクロック信号の周波数をアクセス頻度に基づいて変更する従来技術を適用しても、データ転送速度および消費電力のバランスを最適にするクロック信号の周波数を得ることができないという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、複数の半導体メモリを備える記憶装置において、消費電力の増加を防ぎながら高速なデータ転送を行うことを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、上記複数のメモリのうちの1つのメモリである選択メモリにおける上記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、上記クロック信号の周波数を調整することにより上記選択メモリにおける上記計測されたビジー時間と上記選択メモリを除く上記複数のメモリにおける上記リクエストおよび上記データの転送に要する時間の合計とを略等しくするクロック信号調整部とを具備するメモリコントローラおよびメモリ制御方法である。これにより、クロック信号の周波数が調整されて、選択メモリにおけるビジー時間と選択メモリを除く複数のメモリにおけるリクエストおよびデータの転送に要する時間の合計とが略等しくなるという作用をもたらす。
また、この第1の側面において、上記ビジー時間計測部は、上記複数のメモリのそれぞれから出力された上記アクセス中であることを示すビジー信号に基づいて上記ビジー時間を計測してもよい。これにより、ビジー信号に基づいてビジー時間が計測されるという作用をもたらす。
また、この第1の側面において、上記計測されたビジー時間を保持するビジー時間保持部をさらに具備し、上記クロック信号調整部は、上記クロック信号の周波数を調整することにより上記保持されたビジー時間と上記選択メモリを除く上記複数のメモリにおける上記リクエストおよび上記データの転送に要する時間の合計とを略等しくしてもよい。これにより、ビジー時間計測部により計測されてビジー時間保持部に保持されたビジー時間に基づいてクロック信号の調整が行われるという作用をもたらす。
また、この第1の側面において、上記ビジー時間計測部は、上記複数のメモリのそれぞれについて上記ビジー時間の計測を行い、当該計測されたそれぞれのビジー時間のうち最短のビジー時間を上記クロック信号調整部に供給してもよい。これにより、複数のメモリのうちの最短のビジー時間に基づいて、クロック信号の周波数の調整が行われるという作用をもたらす。
また、この第1の側面において、上記リクエスト転送部は、上記データの書込みを要求する書込みリクエストと当該書込みリクエストに基づく書込みデータとをクロック信号に同期して転送し、上記ビジー時間計測部は、上記選択メモリにおける上記書込みリクエストに基づく上記ビジー時間の計測を行い、上記クロック信号調整部は、上記クロック信号の周波数を調整することにより上記選択メモリにおける上記計測されたビジー時間と上記選択メモリを除く上記複数のメモリにおける上記書込みリクエストおよび上記書込みデータの転送に要する時間の合計とを略等しくしてもよい。これにより、書込みリクエストにおいてクロック信号の周波数が調整されて、選択メモリにおけるビジー時間と選択メモリを除く複数のメモリにおける書込みリクエストおよびデータの転送に要する時間の合計とが略等しくなるという作用をもたらす。
また、この第1の側面において、上記リクエスト転送部は、上記データの読出しを要求する読出しリクエストと当該読出しリクエストに基づく読出しデータとをクロック信号に同期して転送し、上記ビジー時間計測部は、上記選択メモリにおける上記読出しリクエストに基づく上記ビジー時間の計測を行い、上記クロック信号調整部は、上記クロック信号の周波数を調整することにより上記選択メモリにおける上記計測されたビジー時間と上記選択メモリを除く上記複数のメモリにおける上記読出しリクエストおよび上記読出しデータの転送に要する時間の合計とを略等しくしてもよい。これにより、読出しリクエストにおいてクロック信号の周波数が調整されて、選択メモリにおけるビジー時間と選択メモリを除く複数のメモリにおける読出しリクエストおよびデータの転送に要する時間の合計とが略等しくなるという作用をもたらす。
また、この第1の側面において、上記ビジー時間計測部は、アドレス空間毎に上記アクセスに要する時間が異なる上記複数のメモリにおける上記アドレス空間毎に上記ビジー時間の計測を行い、上記クロック信号調整部は、上記アドレス空間毎に上記クロック信号の周波数の調整を行ってもよい。これにより、アドレス空間毎にアクセスに要する時間が異なるメモリにおいてクロック信号の周波数が調整される。そして、選択メモリにおけるビジー時間と選択メモリを除く複数のメモリにおけるリクエストおよびデータの転送に要する時間の合計とが略等しくなるという作用をもたらす。
また、本技術の第2の側面は、複数のメモリと、上記複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、上記複数のメモリのうちの1つのメモリである選択メモリにおける上記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、上記クロック信号の周波数を調整することにより上記選択メモリにおける上記計測されたビジー時間と上記選択メモリを除く上記複数のメモリにおける上記リクエストおよび上記データの転送に要する時間の合計とを略等しくするクロック信号調整部とを具備する記憶装置である。これにより、クロック信号の周波数が調整されて、選択メモリにおけるビジー時間と選択メモリを除く複数のメモリにおけるリクエストおよびデータの転送に要する時間の合計とが略等しくなるという作用をもたらす。
また、本技術の第3の側面は、複数のメモリと、上記複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、上記複数のメモリのうちの1つのメモリである選択メモリにおける上記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、上記クロック信号の周波数を調整することにより上記選択メモリにおける上記計測されたビジー時間と上記選択メモリを除く上記複数のメモリにおける上記リクエストおよび上記データの転送に要する時間の合計とを略等しくするクロック信号調整部とを備える記憶装置と、上記記憶装置にアクセスするホストコンピュータとを具備する情報処理システムである。これにより、クロック信号の周波数が調整されて、選択メモリにおけるビジー時間と選択メモリを除く複数のメモリにおけるリクエストおよびデータの転送に要する時間の合計とが略等しくなるという作用をもたらす。
本技術によれば、複数の半導体メモリを備える記憶装置において、消費電力の増加を防ぎながら高速なデータ転送を行うという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理システムの構成例を示す図である。 本技術の第1の実施の形態におけるメモリコントローラ200の構成例を示す図である。 本技術の第1の実施の形態におけるメモリコントローラ200の機能構成例を示す図である。 本技術の第1の実施の形態におけるビジー時間計測部250の構成例を示す図である。 本技術の第1の実施の形態におけるビジー時間の一例を示す図である。 本技術の第1の実施の形態におけるクロック信号調整部240の構成例を示す図である。 本技術の第1の実施の形態における書込み動作の一例を示す図である。 本技術の第1の実施の形態における読出し動作の一例を示す図である。 本技術の第1の実施の形態における書込みリクエストの転送動作の一例を示す図である。 本技術の第1の実施の形態におけるクロック信号の周波数が適切でない場合の書込みリクエストの転送動作を示す図である。 本技術の第1の実施の形態における読出しリクエストの転送動作の一例を示す図である。 本技術の第1の実施の形態におけるリクエスト要求処理の処理手順の一例を示す図である。 本技術の第1の実施の形態におけるビジー時間計測処理の処理手順の一例を示す図である。 本技術の第2の実施の形態におけるビジー時間計測部250の構成例を示す図である。 本技術の第2の実施の形態におけるビジー時間計測処理の処理手順の一例を示す図である。 本技術の第3の実施の形態におけるビジー時間計測部250の構成例を示す図である。 本技術の第3の実施の形態におけるビジー時間の一例を示す図である。 本技術の第3の実施の形態におけるリクエスト要求処理の処理手順の一例を示す図である。 本技術の第3の実施の形態におけるビジー時間計測処理の処理手順の一例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(計測したビジー時間に基づいてクロック信号の周波数を調整する場合の例)
2.第2の実施の形態(複数のメモリのビジー時間のうち最短のビジー時間を計測する場合の例)
3.第3の実施の形態(アドレスに応じてビジー時間が変化するメモリに適用する場合の例)
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ装置300、とを備える。なお、メモリコントローラ200およびメモリ装置300は、記憶装置を構成する。
ホストコンピュータ100は、情報処理システムにおける各種の処理を行うものである。このホストコンピュータ100は、メモリコントローラ200を介して、メモリ装置300に対して書込みまたは読出し等のコマンドを発行してアクセスを行う。信号線109は、ホストコンピュータ100とメモリコントローラ200とを電気的に接続する信号線である。
メモリコントローラ200は、メモリ装置300を制御するものである。このメモリコントローラ200は、ホストコンピュータ100から発行された書込みおよび読出しコマンドを解釈し、これに基づく書込みおよび読出しリクエストをメモリ装置300に対して要求する。信号線209は、メモリコントローラ200とメモリ装置300とを電気的に接続する信号線であり、制御信号やデータ等を伝達する複数の信号線を有する。
メモリ装置300は、データを記憶するものである。メモリコントローラ200から要求されたリクエストに基づいて、このデータに対するアクセスが行われる。この際、メモリ装置300とメモリコントローラ200との間でデータの転送が行われる。
メモリ装置300は、メモリ#1(310)と、メモリ#2(320)と、メモリ#3(330)と、メモリ#4(340)とを備える。これらのメモリは、メモリを選択するためのチップイネーブル信号を伝達する信号線等を除いて信号線209に共通に接続されている。
メモリ#1(310)乃至#4(340)は、半導体メモリチップである。このメモリ#1(310)乃至#4(340)として、NAND型フラッシュメモリにより構成されたメモリチップを想定する。このNAND型フラッシュメモリは、浮遊ゲートを有するMOSトランジスタをメモリセルとして使用する不揮発性メモリである。データの書込みは、この浮遊ゲートに電荷を注入することにより行われる。また、データを書き換える際には、浮遊ゲートから電荷を引き抜く消去を行った後に新たなデータの書込みを行う必要がある。データの書込みはページを単位として行われ、消去は複数のページからなるブロックを単位として行われる。ページのサイズとして2176バイト、ブロックのサイズとして64ページを例として挙げることができる。
一方、データの読出しの際には、浮遊ゲートに対する電荷の移動を伴わないため、データの読出しに要する時間は、書込みに要する時間より短くなる。一例を挙げると、データの書込みおよび読出しに要する時間は、それぞれ500μsおよび50μsとなる。これらデータの書込みおよび読出しを行っている期間であるアクセスの期間においては、NAND型フラッシュメモリは、他の処理を受け付けることができない状態であるビジー状態となる。メモリ#1(310)乃至#4(340)は、このビジー状態にあることを示すビジー信号をメモリコントローラ200に対して出力する。メモリ#1(310)乃至#4(340)におけるデータの書込みおよび読出しの詳細については、後述する。
ホストコンピュータ100は、書込みを行う際に、書込みコマンドとこれに付随する書込みデータをメモリコントローラ200に対して発行する。メモリコントローラ200は、発行された書込みコマンドを解釈し、コマンドに含まれる書込み先アドレスおよび書込みデータ数に基づいて書込みリクエストを生成する。次に、メモリコントローラ200は、生成した書込みリクエストおよび書込みデータをメモリ装置300に転送する。メモリ装置300は、このリクエストに基づいて書込みを行う。
一方、読出しの際には、ホストコンピュータ100は、読出しコマンドをメモリコントローラ200に対して発行する。メモリコントローラ200がこのコマンドを解釈し、コマンドに含まれる読出し先アドレスおよび読出しデータ数に基づいて読出しリクエストを生成する。次に、メモリコントローラ200は、生成した読出しリクエストをメモリ装置300に転送する。メモリ装置300は、このリクエストに基づいて読出しを行い、読み出したデータをメモリコントローラ200に転送する。メモリコントローラ200は、この転送されたデータを読出しデータとしてホストコンピュータ100に出力する。
[メモリコントローラの構成]
図2は、本技術の第1の実施の形態におけるメモリコントローラ200の構成例を示す図である。このメモリコントローラ200は、プロセッサ220と、SRAM(Static Random Access Memory)210と、ホストインターフェース230と、クロック信号調整部240と、ビジー時間計測部250とを備える。また、メモリコントローラ200は、メモリインターフェース260をさらに備える。
ホストインターフェース230は、ホストコンピュータ100とのやり取りを行うインターフェースである。ホストコンピュータ100が発行したコマンドは、このホストインターフェース230を介してメモリコントローラ200に入力される。
プロセッサ220は、メモリコントローラ200の全体を制御するものである。また、このプロセッサ220は、ホストコンピュータ100が発行したコマンドの解釈、これに基づくリクエストの生成を行う。すなわち、プロセッサ220は、発行されたコマンドが書込みコマンドである場合には書込みリクエストを生成し、読出しコマンドである場合には読出しリクエストを生成する。リクエストの生成の際、プロセッサ220は、アドレス変換処理を行う。ここでアドレス変換処理とは、コマンドに含まれるアドレスである論理アドレスをメモリ装置300におけるアドレスである物理アドレスに変換する処理である。メモリ装置300は、メモリ#1(310)乃至#4(340)を備えているため、プロセッサ220は、アドレス変換の際、これらのメモリに対して物理アドレスの振分けを行う。また、メモリ#1(310)等は、ページアドレスによりアクセスされるため、プロセッサ220は、論理アドレスをページアドレスからなる物理アドレスに変換する。なお、書込みおよび読出しリクエストは、ページを単位として行われることを想定する。
SRAM210は、プロセッサ220のファームウェアを保持するメモリである。また、このSRAM210は、後述するビジー時間の保持および書込みデータ等の一時的な保持をさらに行う。なお、SRAM210は、特許請求の範囲に記載のビジー時間保持部の一例である。
ビジー時間計測部250は、メモリ#1(310)乃至#4(340)におけるビジー状態の時間であるビジー時間を計測するものである。このビジー時間計測部250は、プロセッサ220による計測開始の指示と図3において説明したビジー信号とに基づいてビジー時間の計測を行う。前述のように、NAND型フラッシュメモリのビジー時間は書込みおよび読出しにおいて大幅に異なるため、ビジー時間計測部250は、書込みおよび読出しの両方についてビジー時間の計測を行う。ビジー時間計測部250の構成の詳細については、後述する。
クロック信号調整部240は、クロック信号の周波数を調整するものである。このクロック信号は、メモリコントローラ200の各部の動作の基準となる信号である。また、メモリコントローラ200とメモリ装置300との間のリクエストおよびデータの転送は、このクロック信号に同期して行われる。ここで、メモリ#1(310)乃至#4(340)のうち、1つのメモリが選択され、このメモリについてビジー時間計測部250によるビジー時間の計測が行われる。この選択されたメモリを選択メモリと称する。クロック信号調整部240は、クロック信号の周波数を調整することにより、この選択メモリを除くメモリ#1(310)乃至#4(340)に対するリクエストおよびデータの転送に要する時間の合計とビジー時間とを略等しくする。
メモリ装置300に対して書込みを行う際は、クロック信号調整部240は、選択メモリを除くメモリにおける書込みリクエストおよび書込みデータの転送に要する時間の合計と選択メモリにおける書込みの際のビジー時間とを略等しくする。メモリ装置300に対して読出しを行う際は、クロック信号調整部240は、選択メモリを除くメモリにおける読出しリクエストおよび読出しデータの転送に要する時間の合計と選択メモリにおける読出しの際のビジー時間とを略等しくする。クロック信号調整部240の構成の詳細については、後述する。
メモリインターフェース260は、メモリ装置300とのやり取りを行うインターフェースである。このメモリインターフェース260は、メモリ装置300に対してプロセッサ220が生成したリクエストの転送とこのリクエストに基づくデータの転送とを行う。上述のように、これらの転送は、クロック信号調整部240により調整されたクロック信号に同期して行われる。メモリ装置300に対して書込みを行う際は、メモリインターフェース260は、プロセッサ220が生成した書込みリクエストおよび書込みデータをメモリ装置300に転送する。メモリ装置300に対して読出しを行う際は、メモリインターフェース260は、プロセッサ220が生成した読出しリクエストをメモリ装置300に転送する。その後、メモリインターフェース260は、メモリ装置300からの読出しデータの転送を行う。なお、メモリインターフェース260は、特許請求の範囲に記載のリクエスト転送部の一例である。
ホストコンピュータ100からのコマンドに付随するデータが複数のページにわたる場合には、メモリコントローラ200は、複数のリクエストを生成し、順次メモリ装置300に対して出力する。このような場合、これら複数のリクエストの対象がメモリ#1(310)乃至#4(340)に分散するように、プロセッサ220によるアドレス変換が行われる。これにより、メモリ装置300の各メモリを対象とするリクエストが順に生成され、メモリインターフェース260により順次メモリ装置300に転送される。この際、最初にリクエストが転送されたメモリ、例えば、メモリ#1(310)がビジー状態となっている期間に他のメモリ、例えば、メモリ#2(320)乃至メモリ#4(340)に対するリクエストおよびデータの転送を行う。これにより、信号線209において切れ目なくリクエストおよびデータの転送を行うことができる。リクエストおよびデータの転送については、後述する。
[メモリコントローラの機能構成]
図3は、本技術の第1の実施の形態におけるメモリコントローラ200の機能構成例を示す図である。同図は、メモリコントローラ200の各部の信号等の流れを表したものである。ホストコンピュータ100からのコマンドがホストインターフェース230を介してプロセッサ220に入力されると、プロセッサ220は、リクエストを生成してメモリインターフェース260に出力する。リクエストの出力後、プロセッサ220は、計測開始の指示をビジー時間計測部250に出力する。また、出力されたリクエストは、メモリインターフェース260によりクロック信号に同期してメモリ装置300に転送される。その後、リクエストが転送されたメモリ#1(310)等からビジー信号が出力される。このビジー信号がメモリインターフェース260を介してビジー時間計測部250に入力される。ビジー時間計測部250は、プロセッサ220からの計測開始の指示およびビジー信号に基づいてビジー時間の計測を行い、計測結果であるビジー時間をSRAM210に保持させる。
本技術の第1の実施の形態におけるメモリコントローラ200は、ビジー時間をSRAM210に保持させる構成であるため、ビジー時間計測部250によるビジー時間の計測は、記憶装置の起動後の最初のリクエストの転送の際に行うことができる。そして、以降のリクエストの転送の際には、SRAM210に保持されたビジー時間を使用することにより、ビジー時間計測に要する処理を省略することができる。
クロック信号調整部240は、SRAM210からビジー時間の読出しを行い、読み出したビジー時間に基づいてクロック信号の調整を行う。この際、クロック信号調整部240は、システムクロック信号の周波数を調整することによりクロック信号の調整を行う。ここで、システムクロック信号は、ホストコンピュータ100等から供給されるクロック信号である。なお、上述した記憶装置の起動後の最初のリクエストの転送の際には、クロック信号調整部240は、システムにおける既定の周波数のクロック信号をメモリインターフェース260等に出力する。書込みデータおよび読出しデータは、ホストインターフェース230およびメモリインターフェース260の間で双方向に転送される。なお、このホストインターフェース230およびメモリインターフェース260におけるデータの転送は、プロセッサ220により行われる。この転送の際、プロセッサ220は、一時的にデータをSRAM210に保持することができる。
[ビジー時間計測部の構成]
図4は、本技術の第1の実施の形態におけるビジー時間計測部250の構成例を示す図である。このビジー時間計測部250は、ビジー時間計測制御部251と、タイマ252とを備える。
タイマ252は、ビジー時間を計時するタイマである。このタイマ252は、ビジー時間計測制御部251の制御に基づいて、ビジー時間の計時および計時値の保持を行う。また、ビジー時間計測制御部251の制御によりタイマ252のリセットが行われる。
ビジー時間計測制御部251は、タイマ252を制御してビジー時間の計測を行うものである。ビジー時間の計測は、次のように行う。プロセッサ220から計測開始の指示が入力されると、ビジー時間計測制御部251は、タイマ252をリセットする。その後、メモリ#1(310)等におけるビジー状態への移行に伴い、ビジー信号の入力が開始されると、ビジー時間計測制御部251は、タイマ252の計時を開始させる。ビジー状態からの復帰により、メモリ#1(310)からのビジー信号の入力が停止されると、ビジー時間計測制御部251は、タイマ252の計時を停止させる。次に、ビジー時間計測制御部251は、タイマ252に保持された計時値の読出しを行い、読み出した計時値をビジー時間としてSRAM210に保持させる。このように、ビジー時間計測制御部251は、プロセッサ220からの計測開始の指示およびビジー信号に基づいてメモリ#1(310)等におけるビジー時間を計測する。
[ビジー時間]
図5は、本技術の第1の実施の形態におけるビジー時間の一例を示す図である。同図は、SRAM210に保持されるビジー時間を表したものである。同図に表したように、書込みおよび読出しのビジー時間がそれぞれ保持される。ここで、ビジー時間の単位は、μsである。
[クロック信号調整部の構成]
図6は、本技術の第1の実施の形態におけるクロック信号調整部240の構成例を示す図である。このクロック信号調整部240は、クロック信号調整制御部241と、PLL242とを備える。
PLL242は、PLL(Phase Locked Loop)回路により構成され、クロック信号の周波数を調整するものである。このPLL242は、入力されたシステムクロック信号の逓倍および分周を行うことにより周波数を調整したクロック信号を出力する。
クロック信号調整制御部241は、SRAM210から読み出したビジー時間に基づいてPLL242を制御するものである。具体的には、次の手順に基づいてPLL242を制御する。まず、クロック信号調整制御部241は、次式により、クロック信号の周期を算出する。
周期=ビジー時間/(所要クロック数×(メモリ数−1))
ただし、所要クロック数は、書込みまたは読出しに要するクロック数である。メモリ数は、図1において説明したメモリ装置300に含まれるメモリ#1(310)乃至#4(340)の数である。次に、クロック信号調整制御部241は、算出した周期とシステムクロック信号の周期とにより、PLL242における逓倍および分周の比率をさらに算出し、この比率をPLL242に対して出力する。PLL242は、この比率に基づいて、上述の逓倍および分周を行う。
[書込み動作]
図7は、本技術の第1の実施の形態における書込み動作の一例を示す図である。同図は、書込みリクエストの際の信号線209における電気信号の状態を表したものである。同図のCE(Chip Enable)は、図1において説明したチップイネーブル信号に該当し、メモリ#1(310)乃至#4(340)を選択する信号である。値「0」にすることにより、該当するメモリ#1(310)乃至#4(340)が選択される。CLE(Command Latch Enable)は、オペレーションコードの入力およびデータの入出力を指示する信号である。ALE(Address Latch Enable)は、アドレスの入力およびデータの入出力を指示する信号である。CLK(Clock)は、データ等の転送のタイミングを取るためのクロック信号である。CLKの立ち上りに同期してオペレーションコード等がメモリ#1(310)等に取り込まれる。このCLKには、クロック信号調整部240から出力されたクロック信号が使用される。
W/R(Write/Read Direction)は、後述するDQSおよびI/Oにおける信号入力の方向を示す信号である。値「1」の時はメモリコントローラ200からメモリ#1(310)等への信号入力を表す。一方、値「0」の時はメモリ#1(310)等からメモリコントローラ200への信号入力を表し、メモリ#1(310)等は、メモリコントローラ200に対してデータを出力することができる。DQS(Data Strobe)は、I/Oの信号が有効であることを示す信号である。I/O(Input/Output Port)は、オペレーションコード、アドレスおよびデータを伝達する8ビットの信号である。R/B(Ready/Busy)は、メモリ#1(310)乃至#4(340)のビジー信号である。メモリ#1(310)乃至#4(340)がビジー状態の時、値「0」となる。これらのうち、CEはメモリ#1(310)乃至#4(340)に対して個別に伝達され、他の信号はメモリ#1(310)乃至#4(340)に共通に配線される。また、R/Bにおいては、メモリ#1(310)乃至#4(340)の各ビジー信号がワイヤードオア接続されてメモリコントローラ200に入力される。
第1のオペレーションコード出力期間410においては、まず、メモリコントローラ200がCEを値「0」にする。所定の時間経過後に、メモリコントローラ200がCLEを値「1」にするとともにI/Oを値「0x80」にする。CLKの立ち上がりのタイミングでこれらがメモリ#1(310)等に取り込まれる。なお、値「0x80」と後述する第2のオペレーションコード出力期間440において出力される値「0x10」とはデータ書込みを表すオペレーションコードである。
アドレス出力期間420においては、所定の時間経過後に、メモリコントローラ200がALEを値「1」にするとともにI/Oを値「C1」にする。CLKの立ち上がりのタイミングでこれらがメモリ#1(310)等に取り込まれる。所定の時間経過後、同様に値「C2」がメモリ#1(310)等に取り込まれる。ここで、値「C1」および「C2」は、それぞれNAND型フラッシュメモリのカラムアドレスを表す8ビットの値である。同様の手順により、メモリコントローラ200は、値「R1」および「R2」をメモリ#1(310)等に対して出力する。これらは、NAND型フラッシュメモリのローアドレスを示す8ビットの値である。便宜上、メモリ#1(310)等は、16ビットのカラムアドレスおよびローアドレスによりアクセスされることを想定する。
データ出力期間430においては、所定の時間経過後に、メモリコントローラ200がCLEおよびALEを値「1」にする。CLKの立ち上がりのタイミングでこれらがメモリ#1(310)等に取り込まれる。その後、メモリコントローラ200は、書込みデータをI/Oとして順次出力する。さらにメモリコントローラ200は、CLKと同じ周波数の信号をDQSとして出力する。メモリ#1(310)等は、DQSの立ち上がりおよび立ち下りの両方のエッジに同期してI/O信号をデータ信号として取り込む。これを繰り返すことにより、1ページの書込みデータが転送される。メモリコントローラ200は、データ転送が終了する直前にCLEおよびALEを値「0」にする。
第2のオペレーションコード出力期間440においては、所定の時間経過後に、メモリコントローラ200がCLEを値「1」にするとともにI/Oを値「0x10」にする。CLKの立ち上がりのタイミングでこれらがメモリ#1(310)等に取り込まれる。その後、メモリコントローラ200は、CEを値「1」にする。これにより、書込みリクエストおよびデータの転送が終了する。
ビジー期間450においては、第2のオペレーションコード出力期間440におけるオペレーションコードの取り込みから所定の時間経過後に、メモリ#1(310)等がR/Bを値「0」にする。書込み終了後、メモリ#1(310)等は、R/Bを値「1」にして、書込み終了をメモリコントローラ200に対して通知する。
[読出し動作]
図8は、本技術の第1の実施の形態における読出し動作の一例を示す図である。同図は、読出しリクエストの際の信号線209における電気信号の状態を表したものである。なお、アドレス出力期間420については、図7において説明したアドレス出力期間420と同様の動作であるため、説明を省略する。
第1のオペレーションコード出力期間410においては、メモリコントローラ200は、オペレーションコードとして値「0x00」を出力する。この値「0x00」と第2のオペレーションコード出力期間440において出力される値「0x30」とはデータ読出しを表すオペレーションコードである。
第2のオペレーションコード出力期間440においては、アドレスが出力されて、所定の期間が経過した後に、メモリコントローラ200がオペレーションコードとして値「0x30」を出力する。
ビジー期間450においては、第2のオペレーションコード出力期間440におけるオペレーションコードの取り込みから所定の時間経過後、メモリ#1(310)等がR/Bを値「0」にする。メモリ#1(310)等における読出しが終了して読出しデータの転送の準備ができた後、メモリ#1(310)等は、R/Bを値「1」にして、これをメモリコントローラ200に対して通知する。
データ入力期間480においては、R/Bが値「1」になった後に、メモリコントローラ200がW/Rを値「0」にする。所定の時間経過後に、メモリコントローラ200は、CLEおよびALEを値「1」にする。さらに所定の時間が経過した後に、メモリ#1(310)等がCLKと同じ周波数の信号をDQSとして出力するとともに、読出しデータをI/Oとして出力する。読出しデータは、DQSの立ち上がりおよび立ち下がりに同期して出力される。これらは、メモリコントローラ200の入力データとなる。
[書込みリクエスト転送]
図9は、本技術の第1の実施の形態における書込みリクエストの転送動作の一例を示す図である。同図は、メモリコントローラ200による複数の書込みリクエストの転送の様子を表したものである。同図においては、メモリ#1(310)乃至#4(340)に対して連続して書込みリクエストを転送する場合を想定する。
まず、メモリコントローラ200は、メモリ#1(310)に対して書込みリクエストを転送する。すなわち、期間410乃至440に対応する処理が実行される。これによりメモリ#1(310)は、ビジー期間450により表されるビジー状態となる。このビジー期間450にメモリ#2(320)乃至#4(340)に対して書込みリクエストおよび書込みデータを順次転送する。同図に表したように、メモリ#1(310)のビジー期間450とメモリ#2(320)乃至#4(340)の書込みリクエストおよび書込みデータの転送を行う期間の合計とを略等しくする。これにより、書込みリクエストの転送効率を向上させることができる。図7において説明したように、メモリ#1(310)乃至#4(340)におけるリクエストおよび書込みデータは、クロック信号に同期して転送される。これに対して、ビジー時間は、クロック信号の周波数には依存しない。このため、クロック信号の周波数を調整することにより、ビジー期間450と書込みリクエスト等の転送に要する時間とを略等しくすることができる。
図10は、本技術の第1の実施の形態におけるクロック信号の周波数が適切でない場合の書込みリクエストの転送動作を示す図である。同図におけるaは、図9において説明した場合と比較して、クロック信号の周波数が低い場合の例を表したものである。メモリ#2(320)乃至#4(340)に対する書込みリクエストおよびデータの転送を行う期間の合計が、ビジー期間450より長くなり、メモリ#1(310)において空白の期間460を生じている。このため、図9の場合と比較して、メモリコントローラ200とメモリ装置300との間のデータ等の転送時間が長くなり、転送効率が低下する。
一方、同図におけるbは、図9において説明した場合と比較して、クロック信号の周波数が高い場合の例を表したものである。メモリ#2(320)乃至#4(340)に対する書込みリクエストおよびデータの転送を行う期間の合計が、ビジー期間450より短くなり、メモリ#2(320)乃至#4(340)が同時にビジー状態になる期間470を生じている。この場合、メモリコントローラ200とメモリ装置300との間のデータ等の転送時間は、図9の場合と等しくなる。しかし、クロック信号の周波数が高いため、メモリコントローラ200およびメモリ装置300における消費電力が増加する。消費電力は、クロック信号の周波数に比例して増加するためである。
[読出しリクエスト転送]
図11は、本技術の第1の実施の形態における読出しリクエストの転送動作の一例を示す図である。同図は、メモリコントローラ200による複数の読出しリクエストの転送の様子を表したものである。図9と同様に、メモリ#1(310)乃至#4(340)に対して連続して読出しリクエストを転送する場合を想定する。
読出しリクエストの場合は、図8において説明したようにビジー期間450の後にデータ入力期間480が続く。この期間480から次の読出しリクエストにおける期間440までを読出しリクエストおよびデータの転送に要する時間とし、クロック信号の調整を行う。これにより、読出しリクエストにおいても、消費電力の増加を防ぎながらリクエスト等の転送を高速に行うことができる。
[リクエスト要求処理]
図12は、本技術の第1の実施の形態におけるリクエスト要求処理の処理手順の一例を示す図である。ホストコンピュータ100から書込みまたは読出しコマンドが発行されると、メモリコントローラ200は、本処理を開始する。まず、クロック信号調整部240がコマンドの種類に応じたビジー時間をSRAM210から取得する(ステップS901)。具体的には、コマンドが書込みコマンドである場合には書込みの際のビジー時間が取得され、コマンドが読出しコマンドである場合には、読出しの際のビジー時間が取得される。次に、クロック信号調整部240は、取得したビジー時間に基づいてクロック信号の調整を行う(ステップS902)。次に、プロセッサ220は、コマンドに応じたリクエストを生成する(ステップS903)。
次に、プロセッサ220は、書込みおよび読出しの両方についてビジー時間の計測が終了しているか否かを判断する(ステップS904)。その結果、ビジー時間の計測が終了していない場合には(ステップS904:No)、プロセッサ220は、ビジー時間計測部250に対して計測開始の指示を出力し(ステップS905)、ステップS906の処理に移行する。なお、プロセッサ220は、ステップS903においてビジー時間の計測が終了していないリクエストを生成した場合に、この計測開始の指示を出力する。一方、ビジー時間の計測が終了している場合には(ステップS904:Yes)、プロセッサ220は、ステップS905の処理をスキップする。ステップS906において、メモリインターフェース260は、生成されたリクエストをメモリ装置300に転送する(ステップS906)。また、メモリインターフェース260は、書込みリクエストの場合には、書込みデータの転送を行い、読出しリクエストの場合には、読出しデータの転送をさらに行う(ステップS906)。
次に、プロセッサ220は、全てのリクエストの転送が終了したか否かを判断する(ステップS907)。その結果、未転送のリクエストが存在する場合には(ステップS907:No)、プロセッサ220は、ステップS903からの処理を再度実行する。一方、全てのリクエストの転送が終了した場合には(ステップS907:Yes)、プロセッサ220は、リクエスト要求処理を終了する。
[ビジー時間計測処理]
図13は、本技術の第1の実施の形態におけるビジー時間計測処理の処理手順の一例を示す図である。まず、ビジー時間計測部250は、プロセッサ220から計測開始の指示が出力されるまで待機する(ステップS922)。計測開始の指示が出力された場合には(ステップS922:Yes)、ビジー時間計測部250は、タイマ252による計時を開始する(ステップS923)。具体的には、ビジー時間計測部250は、タイマ252をリセットし、メモリ装置300からのビジー信号の入力を待って、タイマ252による計時を開始させる。すなわち、図7および8において説明した信号線209の信号R/Bが値「1」から値「0」に変化した時にタイマ252による計時が開始される。次に、ビジー時間計測部250は、メモリ装置300からのビジー信号の出力が停止されるまで待機する(ステップS924)。具体的には、信号R/Bが値「0」から値「1」になるまで待機する。ビジー信号の出力が停止された場合には(ステップS924:Yes)、ビジー時間計測部250は、タイマ252による計時を停止する(ステップS925)。次に、ビジー時間計測部250は、タイマ252に保持された計時値をビジー時間として出力し(ステップS929)、ビジー時間計測処理を終了する。
このように、本技術の第1の実施の形態では、メモリ#1(310)等のビジー時間の計測を行い、計測したビジー時間に基づいてクロック信号の周波数の調整を行う。これにより、複数のリクエストおよびデータの転送をメモリ装置300との間で切れ目なく行うことができ、消費電力の増加を防ぎながら高速なデータ等の転送を行うことができる。
<2.第2の実施の形態>
上述の実施の形態では、1つのメモリについて計測したビジー時間を全てのメモリにおけるクロック信号の調整に適用していた。これに対し、本技術の第2の実施の形態では、全てのメモリについてビジー時間の計測を行い、これらのうち最短のビジー時間を使用してクロック信号の調整を行う。これにより、使用する複数のメモリのビジー時間のばらつきが大きい場合において、高速なリクエストおよびデータの転送を行うことができる。
[ビジー時間計測部の構成]
図14は、本技術の第2の実施の形態におけるビジー時間計測部250の構成例を示す図である。このビジー時間計測部250は、ビジー時間計測制御部257と、タイマ#1(253)乃至タイマ#4(256)とを備える。
タイマ#1(253)乃至タイマ#4(256)は、図4において説明したタイマ252と同様に、ビジー時間を計時するタイマである。これらのタイマは、メモリ装置300に配置されたメモリ#1(310)乃至メモリ#4(340)に1対1に対応しており、対応するメモリ#1(310)等のビジー時間の計時を行う。
ビジー時間計測制御部257は、タイマ#1(253)乃至タイマ#4(256)を制御してビジー時間の計測を行うものである。複数のタイマの制御を行う点で、図4において説明したビジー時間計測制御部251と異なる。ビジー時間計測制御部257は、タイマ#1(253)乃至タイマ#4(256)を制御し、メモリ#1(310)乃至メモリ#4(340)に対して個別にビジー時間の計測を行う。計測後、タイマ#1(253)乃至タイマ#4(256)に保持された計時値のうち最短のものをビジー時間として出力し、SRAM210に保持させる。
これにより、メモリ#1(310)乃至メモリ#4(340)のビジー時間のうち最短のビジー時間に基づいてクロック信号の調整が行われる。このため、メモリ#1(310)乃至メモリ#4(340)におけるビジー時間のばらつきが大きい場合において、図10において説明した空白の期間460を生ずることなく、リクエストおよびデータの転送を行うことができる。すなわち、リクエストおよびデータの転送を切れ目なく行うことができる。
これ以外の、メモリコントローラ200およびメモリ装置300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ装置300と同様であるため、説明を省略する。
[ビジー時間計測処理]
図15は、本技術の第2の実施の形態におけるビジー時間計測処理の処理手順の一例を示す図である。まず、ビジー時間計測部250は、プロセッサ220から計測開始の指示が出力されたか否かを判断する(ステップS952)。計測開始の指示が出力された場合には(ステップS952:Yes)、ビジー時間計測部250は、タイマ#1(253)乃至タイマ#4(256)のうち該当するタイマによる計時を開始する(ステップS953)。一方、プロセッサから計測開始の指示が出力されていない場合には(ステップS952:No)、ビジー時間計測部250は、ステップS953の処理をスキップしてステップS954の処理に移行する。
ステップS954において、ビジー時間計測部250は、メモリ装置300からのビジー信号の出力が停止されたか否かを判断する(ステップS954)。ビジー信号の出力が停止された場合には(ステップS954:Yes)、ビジー時間計測部250は、タイマ#1(253)乃至タイマ#4(256)のうち該当するタイマの計時を停止し(ステップS955)、ステップS958の処理に移行する。一方、ビジー信号の出力が停止されていない場合には(ステップS954:No)、ビジー時間計測部250は、再度ステップS952からの処理を実行する。ステップS958において、ビジー時間計測部250は、メモリ#1(310)乃至メモリ#4(340)の全てについてビジー時間の計時が終了したか否かを判断する(ステップS958)。
その結果、ビジー時間の計時が終了していないメモリが存在する場合には、ビジー時間計測部250は、再度ステップS952からの処理を実行する。一方、全てのメモリにおけるビジー時間の計時が終了した場合には(ステップS958:Yes)、ビジー時間計測部250は、ステップS959の処理に移行する。ステップS959の処理において、ビジー時間計測部250は、タイマ#1(253)乃至タイマ#4(256)のそれぞれに保持された計時値のうち最短の計時値をビジー時間として出力し(ステップS959)、ビジー時間計測処理を終了する。
なお、本技術の第2の実施の形態におけるリクエスト要求処理は図12において説明したリクエスト要求処理と同様であるため、説明を省略する。
このように、本技術の第2の実施の形態では、メモリ装置300に配置されたメモリ#1(310)等のビジー時間のうち最短のビジー時間を選択し、これに基づくクロック信号の周波数の調整を行う。これにより、メモリ#1(310)等のビジー時間のばらつきが大きい場合において、複数のリクエストおよびデータの転送をメモリ装置300との間で切れ目なく行うことができ、高速なデータ等の転送を行うことができる。
<3.第3の実施の形態>
上述の第1の実施の形態では、全てのアドレスにおいて同一のビジー時間となるメモリ#1(310)等を使用していた。これに対し、本技術の第3の実施の形態では、アドレス空間毎にビジー時間が異なるメモリに対してビジー時間の計測を行う。これにより、アドレス空間毎にビジー時間が異なるメモリを有する記憶装置において、高速なリクエストおよびデータの転送を行うことができる。
[記憶装置の構成]
本技術の第3の実施の形態におけるメモリ装置300は、図1において説明したメモリ装置300と同様に、メモリ#1(310)乃至メモリ#4(340)を備える。本技術の第3の実施の形態では、これらのメモリ#1(310)乃至メモリ#4(340)としてMLC(Multi-Level Cell)方式のNAND型フラッシュメモリを使用する。このMLC方式は、1つのメモリセルに複数のビットを記憶させる方式であり、浮遊ゲートに蓄積された電荷量を4つ以上の多値により判断することにより複数のビットのデータを記憶する方式である。本技術の第3の実施の形態においては、メモリ#1(310)乃至メモリ#4(340)として、1つのメモリセルに2ビットを記憶するNAND型フラッシュメモリを想定する。一方、本技術の第1の実施の形態におけるメモリ#1(310)は、1つのメモリセルに1ビットを記憶するSLC(Single-Level Cell)方式のNAND型フラッシュメモリである。
このようなMLC方式のNAND型フラッシュメモリは上位ページおよび下位ページの2つの領域により構成され、それぞれの領域はアクセスに要する時間が異なっている。この上位ページおよび下位ページとページアドレスとの対応関係は、MLC方式のNAND型フラッシュメモリにより予め決定されている。本技術の第3の実施の形態のメモリコントローラ200は、この対応関係に基づいてアクセスに要する時間が異なるアドレス空間毎にビジー時間を計測し、クロック信号の調整を行う。
[ビジー時間計測部の構成]
図16は、本技術の第3の実施の形態におけるビジー時間計測部250の構成例を示す図である。このビジー時間計測部250は、ビジー時間計測制御部258と、タイマ#1(253)と、タイマ#2(254)とを備える。
タイマ#1(253)と、タイマ#2(254)は、図14において説明したタイマ#1(253)およびタイマ#2(254)と同様に、ビジー時間を計時するタイマである。同図のタイマ#1(253)は、上位ページのアクセスにおけるビジー時間の計時を行う。また、同図のタイマ#2(254)は、下位ページのアクセスにおけるビジー時間の計時を行う。
ビジー時間計測制御部258は、タイマ#1(253)およびタイマ#2(254)を制御してビジー時間の計測を行うものである。アドレス空間毎のビジー時間の計測を行う点で、図4において説明したビジー時間計測制御部251と異なる。プロセッサ220は、計測開始の指示を出力する際、アドレスに関する情報をさらに出力する。ビジー時間計測制御部258は、このアドレスに関する情報に基づいて、リクエストのアクセス先が上位および下位ページのいずれであるかを判断し、該当するタイマ#1(253)またはタイマ#2(254)を制御してビジー時間の計測を行う。その後、ビジー時間計測制御部258は、ビジー時間をアドレス空間毎に出力し、SRAM210に保持させる。
[ビジー時間]
図17は、本技術の第3の実施の形態におけるビジー時間の一例を示す図である。同図に表したように、SRAM210には、書込みおよび読出しならびに上位ページおよび下位ページの4つの場合に分けてビジー時間が保持される。
クロック信号調整部240は、リクエストの対象アドレスに応じてSRAM210から上位または下位ページのビジー時間の読出しを行い、クロック信号の周波数の調整を行う。
これにより、メモリ#1(310)等のビジー時間をアドレス空間毎に計測し、このビジー時間に基づいてクロック信号の周波数の調整を行うことができる。
これ以外の、メモリコントローラ200およびメモリ装置300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ装置300と同様であるため、説明を省略する。
[リクエスト要求処理]
図18は、本技術の第3の実施の形態におけるリクエスト要求処理の処理手順の一例を示す図である。まず、クロック信号調整部240がコマンドの種類および対象となるページに応じたビジー時間をSRAM210から取得する(ステップS801)。次に、クロック信号調整部240は、取得したビジー時間に基づいてクロック信号の調整を行う(ステップS802)。次に、プロセッサ220は、コマンドに応じたリクエストを生成する(ステップS803)。次に、プロセッサ220は、書込みおよび読出しならびに上位ページおよび下位ページにおける全てのビジー時間の計測が終了しているか否かを判断する(ステップS804)。その結果、ビジー時間の計測が終了していない場合には(ステップS804:No)、プロセッサ220は、ビジー時間計測部250に対して対象となるページ等における計測開始の指示を出力し(ステップS805)、ステップS806の処理に移行する。
一方、ビジー時間の計測が終了している場合には(ステップS804:Yes)、プロセッサ220は、ステップS805の処理をスキップする。ステップS806において、メモリインターフェース260は、生成されたリクエストをメモリ装置300に転送する(ステップS806)。また、メモリインターフェース260は、書込みリクエストの場合には、書込みデータの転送を行い、読出しリクエストの場合には、読出しデータの転送をさらに行う(ステップS806)。次に、プロセッサ220は、全てのリクエストの転送が終了したか否かを判断し(ステップS807)、未転送のリクエストが存在する場合には(ステップS807:No)、プロセッサ220は、ステップS803からの処理を再度実行する。一方、全てのリクエストの転送が終了した場合には(ステップS807:Yes)、プロセッサ220は、リクエスト要求処理を終了する。
[ビジー時間計測処理]
図19は、本技術の第3の実施の形態におけるビジー時間計測処理の処理手順の一例を示す図である。まず、ビジー時間計測部250は、プロセッサ220から計測開始の指示が出力されたか否かを判断する(ステップS822)。計測開始の指示が出力された場合には(ステップS822:Yes)、ビジー時間計測部250は、タイマ#1(253)またはタイマ#2(254)のうち該当するタイマによる計時を開始する(ステップS823)。一方、プロセッサから計測開始の指示が出力されていない場合には(ステップS822:No)、ビジー時間計測部250は、ステップS823の処理をスキップしてステップS824の処理に移行する。ステップS824において、ビジー時間計測部250は、メモリ装置300からのビジー信号の出力が停止されたか否かを判断する(ステップS824)。ビジー信号の出力が停止された場合には(ステップS824:Yes)、ビジー時間計測部250は、タイマ#1(253)またはタイマ#2(254)のうち該当するタイマの計時を停止し(ステップS825)、ステップS828の処理に移行する。一方、ビジー信号の出力が停止されていない場合には(ステップS824:No)、ビジー時間計測部250は、再度ステップS822からの処理を実行する。
ステップS828において、ビジー時間計測部250は、上位ページおよび下位ページの両方においてビジー時間の計時が終了したか否かを判断する(ステップS828)。計時が終了していない場合には(ステップS828:No)、ビジー時間計測部250は、ステップS822からの処理を再度実行する。一方、計時が終了した場合には(ステップS828:Yes)、ビジー時間計測部250は、タイマ#1(253)およびタイマ#2(254)に保持された計時値を上位および下位ページのビジー時間として出力する(ステップS829)。その後、ビジー時間計測部250は、ビジー時間計測処理を終了する。
このように、本技術の第3の実施の形態では、上位および下位ページのビジー時間をそれぞれ計測し、計測したビジー時間に基づくクロック信号の調整を行う。これにより、MLC方式のNANDフラッシュメモリのようなアドレスに応じてビジー時間が異なるメモリを備えるメモリ装置300において、リクエストおよびデータの転送をメモリ装置300との間で切れ目なく行うことができる。
上述のように、本実施の形態によれば、ビジー時間に基づいてクロック信号を調整することにより、メモリコントローラ200とメモリ装置300との間のリクエストおよびデータの転送を切れ目なく行うことができる。これにより、複数の半導体メモリを有する記憶装置において、消費電力の増加を防ぎながら高速なデータ転送を行うことができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、
前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、
前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整部と
を具備するメモリコントローラ。
(2)前記ビジー時間計測部は、前記複数のメモリのそれぞれから出力された前記アクセス中であることを示すビジー信号に基づいて前記ビジー時間を計測する前記(1)に記載のメモリコントローラ。
(3)前記計測されたビジー時間を保持するビジー時間保持部をさらに具備し、
前記クロック信号調整部は、前記クロック信号の周波数を調整することにより前記保持されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくする
前記(1)または(2)に記載のメモリコントローラ。
(4)前記ビジー時間計測部は、前記複数のメモリのそれぞれについて前記ビジー時間の計測を行い、当該計測されたそれぞれのビジー時間のうち最短のビジー時間を前記クロック信号調整部に供給する前記(1)から(3)のいずれかに記載のメモリコントローラ。
(5)前記リクエスト転送部は、前記データの書込みを要求する書込みリクエストと当該書込みリクエストに基づく書込みデータとをクロック信号に同期して転送し、
前記ビジー時間計測部は、前記選択メモリにおける前記書込みリクエストに基づく前記ビジー時間の計測を行い、
前記クロック信号調整部は、前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記書込みリクエストおよび前記書込みデータの転送に要する時間の合計とを略等しくする
前記(1)から(4)のいずれかに記載のメモリコントローラ。
(6)前記リクエスト転送部は、前記データの読出しを要求する読出しリクエストと当該読出しリクエストに基づく読出しデータとをクロック信号に同期して転送し、
前記ビジー時間計測部は、前記選択メモリにおける前記読出しリクエストに基づく前記ビジー時間の計測を行い、
前記クロック信号調整部は、前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記読出しリクエストおよび前記読出しデータの転送に要する時間の合計とを略等しくする
前記(1)から(4)のいずれかに記載のメモリコントローラ。
(7)前記ビジー時間計測部は、アドレス空間毎に前記アクセスに要する時間が異なる前記複数のメモリにおける前記アドレス空間毎に前記ビジー時間の計測を行い、
前記クロック信号調整部は、前記アドレス空間毎に前記クロック信号の周波数の調整を行う
前記(1)から(6)のいずれかに記載のメモリコントローラ。
(8)複数のメモリと、
前記複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、
前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、
前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整部と
を具備する記憶装置。
(9)複数のメモリと、
前記複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、
前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、
前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整部と
を備える記憶装置と、
前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。
(10)複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送手順と、
前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測手順と、
前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整手順と
を具備するメモリ制御方法。
100 ホストコンピュータ
200 メモリコントローラ
210 SRAM
220 プロセッサ
230 ホストインターフェース
240 クロック信号調整部
241 クロック信号調整制御部
242 PLL
250 ビジー時間計測部
251、257、258 ビジー時間計測制御部
252〜256 タイマ
260 メモリインターフェース
300 メモリ装置
310、320、330、340 メモリ

Claims (10)

  1. 複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、
    前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、
    前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整部と
    を具備するメモリコントローラ。
  2. 前記ビジー時間計測部は、前記複数のメモリのそれぞれから出力された前記アクセス中であることを示すビジー信号に基づいて前記ビジー時間を計測する請求項1記載のメモリコントローラ。
  3. 前記計測されたビジー時間を保持するビジー時間保持部をさらに具備し、
    前記クロック信号調整部は、前記クロック信号の周波数を調整することにより前記保持されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくする
    請求項1記載のメモリコントローラ。
  4. 前記ビジー時間計測部は、前記複数のメモリのそれぞれについて前記ビジー時間の計測を行い、当該計測されたそれぞれのビジー時間のうち最短のビジー時間を前記クロック信号調整部に供給する請求項1記載のメモリコントローラ。
  5. 前記リクエスト転送部は、前記データの書込みを要求する書込みリクエストと当該書込みリクエストに基づく書込みデータとをクロック信号に同期して転送し、
    前記ビジー時間計測部は、前記選択メモリにおける前記書込みリクエストに基づく前記ビジー時間の計測を行い、
    前記クロック信号調整部は、前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記書込みリクエストおよび前記書込みデータの転送に要する時間の合計とを略等しくする
    請求項1記載のメモリコントローラ。
  6. 前記リクエスト転送部は、前記データの読出しを要求する読出しリクエストと当該読出しリクエストに基づく読出しデータとをクロック信号に同期して転送し、
    前記ビジー時間計測部は、前記選択メモリにおける前記読出しリクエストに基づく前記ビジー時間の計測を行い、
    前記クロック信号調整部は、前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記読出しリクエストおよび前記読出しデータの転送に要する時間の合計とを略等しくする
    請求項1記載のメモリコントローラ。
  7. 前記ビジー時間計測部は、アドレス空間毎に前記アクセスに要する時間が異なる前記複数のメモリにおける前記アドレス空間毎に前記ビジー時間の計測を行い、
    前記クロック信号調整部は、前記アドレス空間毎に前記クロック信号の周波数の調整を行う
    請求項1記載のメモリコントローラ。
  8. 複数のメモリと、
    前記複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、
    前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、
    前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整部と
    を具備する記憶装置。
  9. 複数のメモリと、
    前記複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送部と、
    前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測部と、
    前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整部と
    を備える記憶装置と、
    前記記憶装置にアクセスするホストコンピュータと
    を具備する情報処理システム。
  10. リクエスト転送部が、複数のメモリのそれぞれに対してデータの転送を要求するリクエストと当該リクエストに基づくデータとをクロック信号に同期して転送するリクエスト転送手順と、
    ビジー時間計測部が、前記複数のメモリのうちの1つのメモリである選択メモリにおける前記リクエストに基づくアクセスに要する時間であるビジー時間の計測を行うビジー時間計測手順と、
    クロック信号調整部が、前記クロック信号の周波数を調整することにより前記選択メモリにおける前記計測されたビジー時間と前記選択メモリを除く前記複数のメモリにおける前記リクエストおよび前記データの転送に要する時間の合計とを略等しくするクロック信号調整手順と
    を具備するメモリ制御方法。
JP2015177156A 2015-09-09 2015-09-09 メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法 Active JP6627346B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015177156A JP6627346B2 (ja) 2015-09-09 2015-09-09 メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法
US15/750,287 US10838887B2 (en) 2015-09-09 2016-07-01 Memory controller, storage device, information processing system, and memory control method
PCT/JP2016/069605 WO2017043161A1 (ja) 2015-09-09 2016-07-01 メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015177156A JP6627346B2 (ja) 2015-09-09 2015-09-09 メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2017054274A JP2017054274A (ja) 2017-03-16
JP6627346B2 true JP6627346B2 (ja) 2020-01-08

Family

ID=58239733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015177156A Active JP6627346B2 (ja) 2015-09-09 2015-09-09 メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法

Country Status (3)

Country Link
US (1) US10838887B2 (ja)
JP (1) JP6627346B2 (ja)
WO (1) WO2017043161A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6627346B2 (ja) * 2015-09-09 2020-01-08 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法
US10379769B2 (en) * 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Continuous adaptive calibration for flash memory devices
CN110888520B (zh) 2018-08-21 2021-07-09 慧荣科技股份有限公司 操作频率调整方法及装置
JP6982876B2 (ja) * 2018-09-13 2021-12-17 株式会社リーガルスムーズ 定期借家契約管理システム
JP7458740B2 (ja) * 2019-10-21 2024-04-01 キオクシア株式会社 メモリシステム及び制御方法
JP2022094033A (ja) 2020-12-14 2022-06-24 キオクシア株式会社 メモリシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152635A (ja) 1993-11-30 1995-06-16 Mitsubishi Electric Corp Cpuアクセス制御方式
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
JP4061272B2 (ja) * 2002-01-09 2008-03-12 株式会社ルネサステクノロジ メモリシステム及びメモリカード
EP1607879A1 (en) * 2004-06-14 2005-12-21 Dialog Semiconductor GmbH Memory interleaving in a computer system
JP2006099569A (ja) * 2004-09-30 2006-04-13 Kyocera Mita Corp メモリインタフェース回路及びクロック制御方法
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
KR100936149B1 (ko) * 2006-12-29 2010-01-12 삼성전자주식회사 복수의 비휘발성 메모리를 갖는 메모리 시스템 그것의 메모리 억세스 방법
JP4730846B2 (ja) 2007-11-26 2011-07-20 ルネサスエレクトロニクス株式会社 メモリシステム
JP5228468B2 (ja) 2007-12-17 2013-07-03 富士通セミコンダクター株式会社 システム装置およびシステム装置の動作方法
US20110010494A1 (en) 2008-04-08 2011-01-13 Kazuhito Tanaka Memory control circuit and memory control method
JP5621283B2 (ja) 2010-03-12 2014-11-12 セイコーエプソン株式会社 電気光学装置及び電子機器
JP6627346B2 (ja) * 2015-09-09 2020-01-08 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法

Also Published As

Publication number Publication date
US20180225236A1 (en) 2018-08-09
US10838887B2 (en) 2020-11-17
WO2017043161A1 (ja) 2017-03-16
JP2017054274A (ja) 2017-03-16

Similar Documents

Publication Publication Date Title
JP6627346B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリ制御方法
US11195571B2 (en) Memory device and method with data input
US8627037B2 (en) Memory system having nonvolatile semiconductor storage devices
US10620833B2 (en) Memory controller and control method thereof
US10403375B2 (en) Storage device and data training method thereof
US11114170B2 (en) Memory system
KR20180035173A (ko) 반도체 기억장치 및 이를 위한 연속 판독 방법
CN108573730B (zh) 数据传输训练方法及执行该方法的数据存储装置
CN110321068B (zh) 存储器控制器及操作存储器控制器的方法
JP7173824B2 (ja) ストレージ装置
US20180247688A1 (en) Memory device and operating method thereof
US10614871B2 (en) Semiconductor devices and semiconductor systems including the semiconductor devices
KR20110131208A (ko) 동기화된 제어를 갖는 다중 플레인의 비휘발성 메모리
US11081171B2 (en) Nonvolatile memory device including a fast read page and a storage device including the same
JP2009187159A (ja) メモリシステム
US11442664B2 (en) Memory system and method of operating the same
KR20140036318A (ko) 메모리 어레이에서의 데이터 결정 및 전송
TWI508076B (zh) 記憶體及程式化記憶體之方法
EP3014453B1 (en) Operation management in a memory device
KR20190124588A (ko) 컨트롤러 및 그의 동작 방법
KR102384962B1 (ko) 반도체 메모리 장치
KR102591121B1 (ko) 반도체장치
US9466338B1 (en) Pulse generator, memory device, memory system having the same, and method of controlling an internal power of the memory device
JP2018142390A (ja) メモリシステム
KR20240078010A (ko) 데이터 출력 시점을 조절하는 메모리 장치 및 그 동작방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191118

R151 Written notification of patent or utility model registration

Ref document number: 6627346

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151