JP2015053095A - メモリ、メモリシステムおよびメモリの制御方法 - Google Patents

メモリ、メモリシステムおよびメモリの制御方法 Download PDF

Info

Publication number
JP2015053095A
JP2015053095A JP2013185893A JP2013185893A JP2015053095A JP 2015053095 A JP2015053095 A JP 2015053095A JP 2013185893 A JP2013185893 A JP 2013185893A JP 2013185893 A JP2013185893 A JP 2013185893A JP 2015053095 A JP2015053095 A JP 2015053095A
Authority
JP
Japan
Prior art keywords
data
memory
bandwidth
data path
internal
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
Application number
JP2013185893A
Other languages
English (en)
Inventor
晴彦 寺田
Haruhiko Terada
晴彦 寺田
塁 阪井
Rui Sakai
塁 阪井
直大 足立
Naohiro Adachi
直大 足立
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 JP2013185893A priority Critical patent/JP2015053095A/ja
Priority to US14/459,966 priority patent/US9483425B2/en
Priority to CN201410443555.3A priority patent/CN104425022B/zh
Publication of JP2015053095A publication Critical patent/JP2015053095A/ja
Pending legal-status Critical Current

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/1678Details of memory controller using bus width
    • 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/1673Details of memory controller using buffers
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • 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
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】メモリシステムにおいてデータの転送効率を向上させる。
【解決手段】帯域変換部は、データを保持するバッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する。アクセス制御部は、内部データパスおよび外部データパスのそれぞれの帯域の差により内部データパスに生じた待ち時間において前記バッファを使用してメモリセルに対するアクセスを制御する。
【選択図】図2

Description

本技術は、メモリ、メモリシステムおよびメモリの制御方法に関する。詳しくは、バッファを備えるメモリ、メモリシステムおよびメモリの制御方法に関する。
従来より、情報処理システムにおいては、補助記憶装置やストレージとして、メモリが用いられることがある。このメモリは、一般に、メモリセルやバッファを備える。例えば、ライトデータやリードデータをページ単位でページバッファに一時的に保持するメモリが提案されている。(例えば、特許文献1参照。)。
このメモリは、所定の入力クロックに同期して、外部データバス(DQ)を介してライトデータをメモリコントローラから受け取り、その入力クロックに同期して、内部データバス(CD_DATA)を介してページバッファにライトデータを転送して保持させる。そして、メモリは、メモリセルにアクセスして保持したライトデータを書き込む。また、メモリは、メモリセルからリードデータを読み出してページバッファに保持し、そのリードデータを内部データバスおよび外部データバスを介してメモリコントローラへ送信する。
特開2007−80484号公報
しかしながら、上述の従来技術では、メモリコントローラとメモリとの間のデータの転送効率を向上させることが困難である。上述のメモリがページバッファを使用してメモリセルにアクセスする際には、その使用中のページバッファに接続された内部データバス(CD_DATA)を介してバッファに有効なデータを転送することができずに待ち時間が生じる。また、外部データバス(DQ)では内部データバス(CD_DATA)と同じクロックでデータが転送されるため、メモリセルへのアクセスの際には、外部データバス(DQ)においても待ち時間が生じる。このため、連続して複数のデータをリードまたはライトする場合において、メモリシステムにおいてデータの転送効率が低下してしまう問題がある。例えば、10サイクル当たり1サイクルの待ち時間が生じる場合を想定する。この場合、外部データバスの伝送可能な帯域が1Gbps(Giga bit per second)であっても、メモリは900Mbps(Mega bit per second)でしかデータを転送することができない。
本技術はこのような状況に鑑みて生み出されたものであり、メモリシステムにおいてデータの転送効率を向上させることを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、データを保持するバッファと、上記バッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換部と、上記内部データパスおよび上記外部データパスのそれぞれの帯域の差により上記内部データパスに生じた待ち時間において上記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御部とを具備するメモリ、および、その制御方法である。これにより、内部データパスに生じた待ち時間においてメモリセルに対するアクセスが制御されるという作用をもたらす。
また、この第1の側面において、上記内部データパスおよび上記外部データパスとしてデータバスが用いられ、上記帯域変換部は、上記内部データパスとして用いられるデータバスのバス幅を上記外部データパスとして用いられるデータバスのバス幅より広い値に変換してもよい。これにより、内部データパスとして用いられるデータバスのバス幅が外部データパスとして用いられるデータバスのバス幅より広い値に変換されるという作用をもたらす。
また、この第1の側面において、上記帯域変換部は、上記内部データパスにおけるデータの転送クロックを上記外部データパスにおけるデータの転送クロックより高いクロックに変換してもよい。これにより、内部データパスにおけるデータの転送クロックが外部データパスにおけるデータの転送クロックより高いクロックに変換されるという作用をもたらす。
また、この第1の側面において、上記外部データパスにおいてシリアル転送されたデータとパラレル転送されたデータとを相互に変換するデータ変換部をさらに具備し、上記メモリコントローラは、前データ変換部との間においてデータをシリアル転送し、上記帯域変換部は、上記データ変換部との間においてデータをパラレル転送してもよい。これにより、シリアル転送されたデータとパラレル転送されたデータとが相互に変換されるという作用をもたらす。
また、本技術の第2の側面は、メモリコントローラと、データを保持するバッファと、上記バッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換部と、上記内部データパスおよび上記外部データパスのそれぞれの帯域の差により上記内部データパスに生じた待ち時間において上記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御部とを具備するメモリシステムである。これにより、内部データパスに生じた待ち時間においてメモリセルに対するアクセスが制御されるという作用をもたらす。
本技術によれば、メモリシステムにおいてデータの転送効率を向上させることができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
第1の実施の形態における情報処理システムの一構成例を示すブロック図である。 第1の実施の形態におけるメモリの一構成例を示すブロック図である。 第1の実施の形態における内部データバスおよび外部データバスのそれぞれを介して転送されるライトデータの一例である。 第1の実施の形態におけるライト処理の一例を示すタイミングチャートである。 第1の実施の形態における内部データバスおよび外部データバスのそれぞれを介して転送されるリードデータの一例である。 第1の実施の形態におけるリード処理の一例を示すタイミングチャートである。 第1の実施の形態におけるコントローラ側ライト処理の一例を示すフローチャートである。 第1の実施の形態におけるコントローラ側リード処理の一例を示すフローチャートである。 第1の実施の形態におけるメモリ側ライト処理の一例を示すフローチャートである。 第1の実施の形態におけるメモリ側リード処理の一例を示すフローチャートである。 第1の変形例におけるメモリの一構成例を示すブロック図である。 第2の変形例におけるメモリの一構成例を示すブロック図である。 第2の実施の形態におけるメモリの一構成例を示すブロック図である。 第2の実施の形態におけるライト処理の一例を示すタイミングチャートである。 第2の実施の形態におけるリード処理の一例を示すタイミングチャートである。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(内部データバスのバス幅を外部データバスより広くする例)
2.第2の実施の形態(内部データバスの転送クロックを外部データバスより広くする例)
<1.第1の実施の形態>
[情報処理システムの構成例]
図1は、実施の形態における情報処理システムの一構成例を示すブロック図である。この情報処理システムは、ホストコンピュータ100およびメモリシステム400を備える。メモリシステム400は、メモリコントローラ200およびメモリ300を備える。
ホストコンピュータ100は、メモリシステム400を制御するものである。このホストコンピュータ100は、メモリシステム400を制御して、データの書込み、または、読出しを行う。
メモリコントローラ200は、メモリ300を制御するものである。このメモリコントローラ200は、ホストコンピュータ100の制御に従って、コマンドを発行してメモリ300に信号線209を介して供給する。メモリコントローラ200が発行するコマンドの詳細については後述する。
また、メモリコントローラ200は、ホストコンピュータ100からシリアル転送されたデータをメモリ300にパラレル転送し、メモリ300からパラレル転送されたデータをホストコンピュータ100にシリアル転送する。
また、メモリコントローラ200は、ホストコンピュータ100から、アクセス対象のアドレスを受け取り、そのアドレスをロウアドレスおよびカラムアドレスに分離してメモリ300に供給する。ロウアドレスは、二次元格子状にメモリセルが配列されたメモリ300において、ある一定方向に配列されたメモリセルからなる列に対して割り当てられたアドレスである。カラムアドレスは、列に垂直な方向に配列されたメモリセルからなる行に対して割り当てられたアドレスである。
また、メモリコントローラ200は、メモリ300が複数のバンクを備える場合には、いずれかのバンクを選択するバンク選択信号を生成してメモリ300に供給する。
メモリ300は、メモリコントローラ200の制御に従って、データを記憶するものである。このメモリ300は、メモリコントローラ200からコマンド、アドレス(ロウアドレスおよびカラムアドレス)およびデータを受け取る。メモリ300は、メモリセルを備え、コマンドに従って、アドレスにより指定されたメモリセルにデータを書き込む。また、メモリ300は、コマンドに従って、アドレスより指定されたメモリセルからデータを読み出して、メモリコントローラ200に信号線209を介して供給する。
[メモリの構成例]
図2は、第1の実施の形態におけるメモリ300の一構成例を示すブロック図である。このメモリ300は、シフタ310と、バンク選択回路320と、L(Lは1以上の整数)個のバンク330とを備える。信号線209は、信号線204、コマンド線205、外部データバス206、アドレス線207、および、アドレス線208を含む。
信号線204を介してバンク選択信号BankSelが転送され、コマンド線205を介してコマンドCmdが転送される。また、外部データバス206を介してデータが転送される。アドレス線207および208を介してカラムアドレスColAddrおよびロウアドレスRowAddrが転送される。これらのうち信号線204、コマンド線205、アドレス線207およびアドレス線208はバンク選択回路320に接続され、外部データバス206はシフタ310に接続される。また、シフタ310は、内部データバス319を介してバンク選択回路320と接続される。なお、外部データバス206は、特許請求の範囲に記載の外部データパスの一例であり、内部データバス319は、特許請求の範囲に記載の内部データパスの一例である。
シフタ310は、外部データバス206のバス幅を内部データバス319のバス幅よりも大きな値に変換するものである。ここで、外部データバス206のバス幅は、例えば、N(Nは整数)ビットである。一方、内部データバス319のバス幅は、例えば、N+r(rは整数)ビットである。シフタ310は、外部データバス206を介して転送されるNビットのデータDQと、内部データバス319を介して転送されるN+rビットのデータDtとをクロックCLKに同期して相互に変換する。この変換により、内部データバス319の帯域は、外部データバス206の帯域よりも広くなる。なお、シフタ310は、特許請求の範囲に記載の帯域変換部の一例である。
バンク選択回路320は、バンクを選択して、選択したバンクにアドレス、コマンドおよびデータを供給するものである。このバンク選択回路320は、バンク選択信号BankSelの示すバンク330を選択して、そのバンクにアドレスおよびコマンドを供給する。また、バンク選択回路320は、シフタ310からライトデータを受け取って選択したバンクに供給し、選択したバンクからリードデータを受け取ってシフタ310に供給する。
バンク330は、メモリコントローラ200がメモリ300を管理する際の管理単位である。バンク330のそれぞれは、コマンドデコーダ331、ページバッファ332およびメモリセルアレイ333を備える。
メモリセルアレイ333は、二次元格子状に配列された複数のメモリセルを備える。このメモリセルアレイ333のアクセス単位は、例えば、(N+r)×Mビットである。ここで、Mは整数であり、このアクセス単位のデータはページデータと呼ばれる。
また、メモリセルアレイ333にはドライバおよびセンスアンプが接続される。これらのセンスアンプおよびドライバは、図2において省略されている。このドライバは、コマンドデコーダ331の制御に従って、ロウアドレスRowAddrにより指定された行に、ページバッファ332からのページデータPgDataを書き込む。また、センスアンプは、コマンドデコーダ331の制御に従って、ロウアドレスRowAddrにより指定された行からページデータPgDataを読み出してページバッファ332に供給する。
ページバッファ332は、データを保持するものである。このページバッファ332は、少なくとも(N+r)×Mビット(1ページ分)のデータを保持することができ、例えばSRAM(Static Random Access Memory)などにより実現される。ページバッファ332には、それぞれにカラムアドレスColAddrが対応付けられたM個の領域が設けられる。それぞれの領域には、N+rビットのデータが保持される。ページバッファ332は、コマンドデコーダ331の制御に従って、指定されたカラムアドレスColAddrに対応する領域にデータを保持する。また、ページバッファ332は、保持したデータを、コマンドデコーダ331の制御に従ってバンク選択回路320またはメモリセルアレイ333に供給する。
なお、ページバッファ332をSRAMにより実現しているが、この構成に限定されない。ページバッファ332は、データを保持する回路であれば、フリップフロップやラッチなど、SRAM以外の回路により実現することができる。また、ページバッファ332においてリードデータを保持する回路とライトデータを保持する回路とを1つの回路で構成してもよいし、別々の回路により構成してもよい。1つの回路でリードデータおよびライトデータを保持する場合、コマンドデコーダ331が、制御信号Crtlにより、保持させるデータを切り替える。
また、メモリ300は、センスアンプにリードデータを保持させてもよい。この場合には、ページバッファ332には、ライトデータのみが保持される。
なお、ページバッファ332は、特許請求の範囲に記載のバッファの一例である。
コマンドデコーダ331は、コマンドCmdを解析して実行するものである。コマンドCmdは、例えば、データインDI、プログラムPG、センスSEおよびデータアウトDOを含む。
データインDIは、ライトデータのページバッファ332への保持を指示するコマンドである。プログラムPGは、ページバッファ332に保持されたライトデータのメモリセルへの書込みを指示するコマンドである。
また、センスSEは、メモリセルに記録されたリードデータを読み出してページバッファ332に保持することを指示するコマンドである。データアウトDOは、ページバッファ332に保持されたリードデータのメモリコントローラ200への転送を指示するコマンドである。
コマンドデコーダ331は、これらのコマンドに基づいて、制御信号Crtlによりページバッファ332およびメモリセルアレイ333を制御する。具体的には、コマンドCmdがデータインDIである場合には、コマンドデコーダ331は、ページバッファ332を制御してバンク選択回路320からのデータを保持させる。また、コマンドCmdがプログラムPGである場合には、コマンドデコーダ331は、ページバッファ332を制御してページデータPgData(ライトデータ)を出力させる。また、コマンドデコーダ331は、ドライバを制御して、ページバッファ332から出力されたページデータPgDataをメモリセルアレイ333に書き込ませる。
コマンドCmdがセンスSEである場合には、コマンドデコーダ331は、センスアンプを制御してページデータPgData(リードデータ)をメモリセルアレイ333から読み出させる。また、コマンドデコーダ331は、ページバッファ332を制御して、読み出されたページデータPgDataを保持させる。
また、コマンドCmdがデータアウトDOである場合には、コマンドデコーダ331は、ページバッファ332を制御して、保持したデータをバンク選択回路320に供給させる。
ここで、内部データバス319において連続して複数のページデータが転送される場合、内部データバス319のバス幅が外部データバス206のバス幅よりも大きいため、内部データバス319においてデータの待ち時間が生じる。
具体的には、外部データバス206のバス幅(Nビット)が64ビットであり、内部データバス319のバス幅(N+rビット)が66ビットであるものとする。また、メモリセルアレイ333のアクセス単位((N+r)×Mビット)が66×32ビットであるものとする。
66×32は、64×33に等しいため、シフタ310は、クロックCLKに同期して、33個の64ビットのデータDQと、32個の66ビットのデータDtとを相互に変換する。この変換により、アクセス単位(ページ)に相当する個数のデータが変換されるたびに、内部データバス319において、1クロック分の待ち時間が生じる。
コマンドデコーダ331は、この待ち時間において、プログラムPGまたはセンスSEに基づき、ページバッファ332を使用してメモリセルに対するアクセスを制御する。なお、コマンドデコーダ331は、特許請求の範囲に記載のアクセス制御部の一例である。
図3は、第1の実施の形態における内部データバスおよび外部データバスのそれぞれを介して転送されるライトデータの一例である。
書き込むデータDQとして、64ビットの33個のデータd_0乃至d_32が、クロックCLKに同期してメモリコントローラ200からメモリ300へ順に転送されたものとする。これらの33個のデータの転送は、33クロックサイクルで完了する。
メモリ300内のシフタ310は、データd_0が供給されたタイミングから2クロック遅延して、データd_0およびデータd_1から、66ビットのデータD_0を生成する。このデータD_0は、データd_0の全ビットと、データd_1のうち2ビットとからなるデータである。例えば、上位2ビットと、それ以外のデータとにデータd_1が分割され、その上位2ビットがデータD_0の下位2ビットに挿入される。
そして、シフタ310は、データd_1およびデータd_2から、66ビットのデータD_1を生成する。このデータD_1は、データd_1のうち62ビットと、データd_2のうち4ビットとからなるデータである。以下同様に、シフタ310は、分割位置を2ビットずつずらしてデータd_2乃至d_32を分割して、データD_2乃至D_31を生成する。このようにして32クロックサイクルの間に、66ビットのデータDtが32個生成される。
なお、図3に例示したライトデータの変換方法は、外部データバス206および内部データバス319のバス幅の組合せが、64ビットおよび66ビットである場合の変換方法の一例である。それぞれのバス幅が異なる場合には、シフタ310は、バス幅に合わせて、異なる変換方法により変換を行ってもよい。
[メモリの動作例]
図4は、第1の実施の形態におけるライト処理の一例を示すタイミングチャートである。同図において、Time Indexは、時間の経過を示す値であり、クロックCLKが1回トグルするたびに、Time Indexが1つ大きくなるものとする。
Time Index「T0」乃至「T32」の期間に亘って、バンク選択信号BankSel「0」が入力されると、バンク選択回路320は、「0」番目のバンク330を選択する。
また、選択されたバンク330には、Time Index「T0」乃至「T31」の期間に亘って、データインDIがコマンドCmdとして入力され、カラムアドレスColAddrとして「0」乃至「31」が順に入力される。
一方、Time Index「T0」の2クロック前からTime Index「T30」までの期間に亘って、64ビットのデータd_0乃至d_32がシフタ310に順に入力される。シフタ310は、Time Index「T0」乃至「T31」の期間に亘って、データd_0乃至d_32から、66ビットのデータD_0乃至D_31を生成する。
バンク330は、ページバッファ332に、データD_0乃至D_31を保持する。これにより、Time Index「T31」において、ページバッファ332に1ページ分のデータが保持される。1ページ分のデータが保持されると、シフタ310は、1クロック分の待ち時間を設ける。この待ち時間において内部データバス319は、有効なデータが転送されないドントケア状態となる。
その待ち時間に相当するTime Index「T32」において、バンク330にプログラムPGおよびRowAddr「A0」が入力される。バンク330は、ページバッファ332に保持したページデータを、メモリセルアレイ333の指定されたアドレスに書き込む。
ここで、通常、メモリセルアレイ333へのページデータの書込みは、ページバッファ332へのデータインDIの1回分のデータの書込みより長い時間がかかる。このため、プログラムPGを発行してから、同じバンク330に新規にコマンドを発行することが可能になるまで、1クロックサイクル以上の時間がかかる。したがって、メモリ300は、複数のバンク330を備え、1つのバンク330における書込みが完了するまでの間、別のバンク330へのデータインDIの発行を行うことで、書込みにかかる遅延時間を隠蔽している。例えば、Time Index「T33」以降は、バンク選択信号BankSel「1」が入力される。これにより、メモリ300のスループットが向上する。
Time Index「T31」以降においては、次に選択されるバンク選択信号BankSel「1」に対応するバンク330へのデータがシフタ310に入力される。したがって、外部データバス206においては、内部データバス319がドントケアであるTime Index「T32」においても、有効なデータが転送されている。
このように、内部データバス319の帯域を外部データバス206の帯域より広くすることにより、プログラムPGの実行に要する待ち時間をメモリコントローラ200側から見えないように隠蔽することができる。
図5は、第1の実施の形態における内部データバスおよび外部データバスのそれぞれを介して転送されるリードデータの一例である。
読み出されたデータDtとして、66ビットの32個のデータD_0乃至D_31が、クロック信号に同期してバンク330からシフタ310へ順に転送されたものとする。32個のデータの転送は、32クロックで完了する。
シフタ310は、データD_0が転送されたタイミングから1クロック遅延して、データD_0から、64ビットのデータd_0を生成する。このデータd_0は、66ビットのデータD_0を分割して64ビットを取り出したデータである。
そして、シフタ310は、データD_0およびデータD_1から、64ビットのデータd_1を生成する。このデータd_1は、データD_0のうち2ビットと、データD_1のうち62ビットとからなるデータである。以下同様に、シフタ310は、分割位置を2ビットずつずらしてデータD_1乃至D_30を分割して、データd_2乃至d_31を生成する。また、シフタ310は、最後のD_31のうち2ビットをデータd_31に挿入し、残りの64ビットをデータd_32とする。このようにして33クロックサイクルの間に、64ビットのデータDQが33個生成される。
図6は、第1の実施の形態におけるリード処理の一例を示すタイミングチャートである。Time Index「T1」乃至「T34」の期間に亘って、バンク選択信号BankSel「0」が入力されると、バンク選択回路320は、「0」番目のバンク330を選択する。
また、バンク330には、Time Index「T0」において、センスSEがコマンドCmdとして入力される。そして、Time Index「T1」乃至「T32」の期間に亘って、データアウトDOがコマンドCmdとして入力され、カラムアドレスColAddrとして「0」乃至「31」が順に入力される。
また、Time Index「T1」乃至「T32」の期間に亘って、メモリセルから読み出された66ビットのデータD_0乃至D_31がシフタ310に順に入力される。シフタ310は、Time Index「T2」乃至「T34」の期間に亘って、データD_0乃至D_31から、64ビットのデータd_0乃至d_32を生成する。
Time Index「T32」において、バンク330は、シフタ310への1ページ分のデータの転送を完了する。1ページ分のデータの転送が完了すると、シフタ310は、1クロック分の待ち時間を設ける。この待ち時間においては、内部データバス319に有効なデータが転送されないドントケア状態となる。
内部データバス206より外部データバス319の帯域が狭いため、外部データバス206においては、内部データバス319がドントケアである期間においても有効なデータが転送される。
このように、リード処理においても、内部データバス319の帯域を外部データバス206の帯域より広くすることにより、センスSEの実行に要する待ち時間をメモリコントローラ200側から見えないように隠蔽することができる。これにより、メモリコントローラ200とメモリ300との間のデータの転送効率が向上する。
図7は、第1の実施の形態におけるコントローラ側ライト処理の一例を示すフローチャートである。このコントローラ側ライト処理は、データの書込みがホストコンピュータ100により指示されたときに開始する。
メモリコントローラ200は、メモリ300へライトデータを順に転送する(ステップS901)。また、メモリコントローラ200は、書込み先のバンク330を選択する(ステップS902)。そして、メモリコントローラ200は、ページバッファ332へのライトデータの保持を指示するコマンド(DI)を発行する(ステップS903)。1ページ分のライトデータを保持させると、メモリコントローラ200は、保持したライトデータのメモリセルへの書込みを指示するコマンド(PG)を発行する(ステップS904)。ステップS904の後、メモリコントローラ200は、コントローラ側ライト処理を終了する。
図8は、第1の実施の形態におけるコントローラ側リード処理の一例を示すフローチャートである。このコントローラ側リード処理は、データの読出しがホストコンピュータ100により指示されたときに開始する。
メモリコントローラ200は、読出し先のバンク330を選択する(ステップS911)。また、メモリコントローラ200は、リードデータの読出し、および、リードデータのページバッファ332への保持を指示するコマンド(SE)を発行する(ステップS912)。そして、メモリコントローラ200は、保持したリードデータのメモリコントローラ200への転送を指示するコマンド(DO)を発行する(ステップS913)。メモリコントローラ200は、ホストコンピュータ100へ、メモリ300からのリードデータを転送する(ステップS914)。ステップS914の後、メモリコントローラ200は、コントローラ側リード処理を終了する。
図9は、第1の実施の形態におけるメモリ側ライト処理の一例を示すフローチャートである。このメモリ側ライト処理は、コントローラ側ライト処理が実行されたときに開始する。
メモリ300は、メモリコントローラ200からの64ビットのライトデータを、66ビットのデータに変換する(ステップS921)。メモリ300は、ページバッファ332にライトデータのそれぞれを順に保持する(ステップS922)。そして、メモリ300は、保持したライトデータをページ単位でメモリセルに書き込む(ステップS923)。ステップS923の後、メモリ300は、メモリ側ライト処理を終了する。
図10は、第1の実施の形態におけるメモリ側リード処理の一例を示すフローチャートである。このメモリ側リード処理は、コントローラ側リード処理が実行されたときに開始する。
メモリ300は、リードデータの読出しと、そのリードデータのページバッファ332への保持とを行う(ステップS941)。そして、メモリ300は、66ビットのリードデータを64ビットのデータに変換する(ステップS942)。メモリ300は、変換したリードデータを順にメモリコントローラ200へ転送する(ステップS943)。ステップS943の後、メモリ300は、メモリ側リード処理を終了する。
このように、本技術の第1の実施の形態によれば、メモリ300は、外部データバスより帯域の広い内部データバスに生じた待ち時間においてアクセス制御を行うため、外部データバスにおいて、アクセス制御のための待ち時間をなくすことができる。これにより、メモリシステムにおけるデータの転送効率を向上させることができる。また、転送効率の向上により、一定量のデータを転送する際の転送時間が短くなり、メモリ300の消費電力が低減する。
[第1の変形例]
第1の実施の形態では、複数のバンク330に対してシフタ310を1つ設けていたが、バンク330ごとにシフタを設けてもよい。第1の変形例は、バンク330ごとにシフタを設けた点において第1の実施の形態と異なる。
図11は、第1の変形例におけるメモリ300の一構成例を示すブロック図である。第1の変形例のメモリ300は、複数のバンク330で共用するシフタ310を備えず、バンク330ごとにシフタ334を備える点において第1の実施の形態と異なる。
バンク330のそれぞれにおけるシフタ334は、バンク選択回路320からのデータDQと、ページバッファ332からのデータDtとを相互に変換する。
このように、第1の変形例によれば、バンク330ごとにシフタ310を設けたため、バンク選択回路320とバンク320との間のデータバスにおいて待ち時間をなくすことができる。これにより、バンク選択回路320とバンク330との間のデータの転送効率が向上する。
[第2の変形例]
第1の実施の形態では、メモリコントローラ200が、シリアル転送されたデータと、パラレル転送されたデータとを相互に変換していたが、この変換をメモリ300が行ってもよい。第2の変形例のメモリ300は、シリアル転送されたデータと、パラレル転送されたデータとを相互に変換する点において第1の実施の形態と異なる。
図12は、第2の変形例におけるメモリ300の一構成例を示すブロック図である。第2の変形例のメモリ300は、シリアル・パラレル変換器340をさらに備える点において第1の実施の形態と異なる。
シリアル・パラレル変換器340は、シリアル転送されたデータと、パラレル転送されたデータとを相互に変換するものである。このシリアル・パラレル変換器340は、バス幅がNビットのデータバスを介して、シフタ310との間で、クロックCLKに同期してデータをパラレル転送する。また、シリアル・パラレル変換器340は、外部データバス206を介して、メモリコントローラ200との間で、クロックkCLKに同期してデータをシリアル転送する。ここで、クロックkCLKの周波数は、クロックCLKのK倍である。また、NはKで割り切れる値であり、Kは2以上の整数である。
なお、シリアル・パラレル変換器340は、特許請求の範囲に記載のデータ変換部の一例である。
このように、第2の変形例によれば、シリアル・パラレル変換をメモリ300が行うため、メモリコントローラ200の負担が軽減される。
<2.第2の実施の形態>
[メモリの構成例]
第1の実施の形態では、メモリ300は、バス幅を変換することにより、外部データバス206および内部データバス319の帯域を変換していたが、転送クロックを変換することにより帯域を変換することもできる。第2の実施の形態のメモリ300は、外部データバス206および内部データバス319の転送クロックを変換する点において第1の実施の形態と異なる。
図13は、第2の実施の形態におけるメモリ300の一構成例を示すブロック図である。第2の実施の形態のメモリ300は、シフタ310の代わりにFIFO(First In First Out)バッファ350を備える点において第1の実施の形態と異なる。
FIFOバッファ350は、内部データバス319の転送クロックDtCLKを、外部データバス206の転送クロックDQCLKよりも高くしてデータを転送するものである。このFIFOバッファ350は、FIFO方式によりデータを保持および出力する回路を備え、DQCLKに同期して外部データバス206を介してメモリコントローラ200との間でデータを転送する。また、FIFOバッファ350は、転送クロックDQCLKよりクロック周波数が高い転送クロックDtCLKに同期して、バンク選択回路320との間でデータを転送する。転送クロックDtCLKのクロック周波数は、例えば、33メガヘルツ(MHz)であり、転送クロックDQCLKのクロック周波数は、例えば、32メガヘルツ(MHz)である。なお、FIFOバッファ350は、特許請求の範囲に記載の帯域変換部の一例である。
また、第2の実施の形態において外部データバス206および内部データバス319のそれぞれのバス幅は同一である。
[メモリの動作例]
図14は、第2の実施の形態におけるライト処理の一例を示すタイミングチャートである。FIFOバッファ350は、32MHzの転送クロックDQCLKに同期して、メモリセルに書き込むためのデータD_0乃至D_31を順に受け取って保持する。そして、FIFOバッファ350は、33MHzの転送クロックDtCLKに同期して、保持したデータを順にページバッファ332へ供給する。ただし、FIFOバッファ350は、転送クロックDtCLKに同期して32個のデータを供給するたびに、DtCLK1クロック分の待ち時間を設ける。この待ち時間において、バンク330は、プログラムPGのコマンドを実行して、メモリセルに対する書込みを行う。
このように、内部データバス319の転送クロックを外部データバス206の転送クロックより高くすることにより、プログラムPGの実行に要する待ち時間をメモリコントローラ200側から見えないように隠蔽することができる。
図15は、第2の実施の形態におけるリード処理の一例を示すタイミングチャートである。FIFOバッファ350は、32MHzの転送クロックDQCLKに同期して、メモリセルから読み出されたデータD_0乃至D_31を受け取って保持する。そして、FIFOバッファ350は、33MHzの転送クロックDtCLKに同期して、保持したデータを順にメモリコントローラ200へ供給する。ただし、FIFOバッファ350は、転送クロックDtCLKに同期して32個のデータを保持するたびに、DtCLK1クロック分の待ち時間を設ける。この待ち時間において、バンク330は、センスSEのコマンドを実行して、メモリセルに対する読出しを行う。
図15に例示したように、内部データバス319の転送クロックを外部データバス206の転送クロックより高くすることにより、センスSEの実行に要する待ち時間をメモリコントローラ200側から見えないように隠蔽することができる。
このように、第2の実施の形態によれば、メモリ300は、外部データバスより転送クロックの高い内部データバスに生じた待ち時間においてアクセス制御を行うため、外部データバスにおいて、アクセス制御のための待ち時間をなくすことができる。これにより、メモリシステムにおけるデータの転送効率を向上させることができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
なお、本技術は以下のような構成もとることができる。
(1)データを保持するバッファと、
前記バッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換部と、
前記内部データパスおよび前記外部データパスのそれぞれの帯域の差により前記内部データパスに生じた待ち時間において前記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御部と
を具備するメモリ。
(2)前記内部データパスおよび前記外部データパスとしてデータバスが用いられ、
前記帯域変換部は、前記内部データパスとして用いられるデータバスのバス幅を前記外部データパスとして用いられるデータバスのバス幅より広い値に変換する
前記(1)記載のメモリ。
(3)前記帯域変換部は、前記内部データパスにおけるデータの転送クロックを前記外部データパスにおけるデータの転送クロックより高いクロックに変換する
前記(1)記載のメモリ。
(4)前記外部データパスにおいてシリアル転送されたデータとパラレル転送されたデータとを相互に変換するデータ変換部をさらに具備し、
前記メモリコントローラは、前データ変換部との間においてデータをシリアル転送し、
前記帯域変換部は、前記データ変換部との間においてデータをパラレル転送する
前記(1)から(3)のいずれかに記載のメモリ。
(5)メモリコントローラと、
データを保持するバッファと、
前記バッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換部と、
前記内部データパスおよび前記外部データパスのそれぞれの帯域の差により前記内部データパスに生じた待ち時間において前記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御部と
を具備するメモリシステム。
(6)帯域変換部が、データを保持するバッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換手順と、
アクセス制御部が、前記内部データパスおよび前記外部データパスのそれぞれの帯域の差により前記内部データパスに生じた待ち時間において前記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御手順と
を具備するメモリの制御方法。
100 ホストコンピュータ
200 メモリコントローラ
300 メモリ
310、334 シフタ
320 バンク選択回路
330 バンク
331 コマンドデコーダ
332 ページバッファ
333 メモリセルアレイ
340 シリアル・パラレル変換器
350 FIFOバッファ
400 メモリシステム

Claims (6)

  1. データを保持するバッファと、
    前記バッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換部と、
    前記内部データパスおよび前記外部データパスのそれぞれの帯域の差により前記内部データパスに生じた待ち時間において前記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御部と
    を具備するメモリ。
  2. 前記内部データパスおよび前記外部データパスとしてデータバスが用いられ、
    前記帯域変換部は、前記内部データパスとして用いられるデータバスのバス幅を前記外部データパスとして用いられるデータバスのバス幅より広い値に変換する
    請求項1記載のメモリ。
  3. 前記帯域変換部は、前記内部データパスにおけるデータの転送クロックを前記外部データパスにおけるデータの転送クロックより高いクロックに変換する
    請求項1記載のメモリ。
  4. 前記外部データパスにおいてシリアル転送されたデータとパラレル転送されたデータとを相互に変換するデータ変換部をさらに具備し、
    前記メモリコントローラは、前データ変換部との間においてデータをシリアル転送し、
    前記帯域変換部は、前記データ変換部との間においてデータをパラレル転送する
    請求項1記載のメモリ。
  5. メモリコントローラと、
    データを保持するバッファと、
    前記バッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換部と、
    前記内部データパスおよび前記外部データパスのそれぞれの帯域の差により前記内部データパスに生じた待ち時間において前記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御部と
    を具備するメモリシステム。
  6. 帯域変換部が、データを保持するバッファとの間のデータの転送に用いられる内部データパスの帯域をメモリコントローラとの間のデータの転送に用いられる外部データパスの帯域より広い帯域に変換する帯域変換手順と、
    アクセス制御部が、前記内部データパスおよび前記外部データパスのそれぞれの帯域の差により前記内部データパスに生じた待ち時間において前記バッファを使用してメモリセルに対するアクセスを制御するアクセス制御手順と
    を具備するメモリの制御方法。
JP2013185893A 2013-09-09 2013-09-09 メモリ、メモリシステムおよびメモリの制御方法 Pending JP2015053095A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013185893A JP2015053095A (ja) 2013-09-09 2013-09-09 メモリ、メモリシステムおよびメモリの制御方法
US14/459,966 US9483425B2 (en) 2013-09-09 2014-08-14 Memory including a band width conversion unit, memory system and memory control method using the same
CN201410443555.3A CN104425022B (zh) 2013-09-09 2014-09-02 存储器、存储器系统及存储器控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013185893A JP2015053095A (ja) 2013-09-09 2013-09-09 メモリ、メモリシステムおよびメモリの制御方法

Publications (1)

Publication Number Publication Date
JP2015053095A true JP2015053095A (ja) 2015-03-19

Family

ID=52626683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013185893A Pending JP2015053095A (ja) 2013-09-09 2013-09-09 メモリ、メモリシステムおよびメモリの制御方法

Country Status (3)

Country Link
US (1) US9483425B2 (ja)
JP (1) JP2015053095A (ja)
CN (1) CN104425022B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170025989A (ko) * 2015-08-31 2017-03-08 삼성전자주식회사 렌더링 시스템 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170025948A (ko) * 2015-08-31 2017-03-08 에스케이하이닉스 주식회사 반도체 시스템 및 제어 방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317715A (en) * 1987-12-15 1994-05-31 Advanced Micro Devices, Inc. Reduced instruction set computer system including apparatus and method for coupling a high performance RISC interface to a peripheral bus having different performance characteristics
JPH0535442A (ja) * 1991-07-31 1993-02-12 Toshiba Corp 画像データ変換回路
JP3369227B2 (ja) * 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
JPH0744489A (ja) * 1993-07-27 1995-02-14 Fujitsu Ltd データ転送方法
DE69735614T2 (de) * 1996-10-18 2006-09-07 Matsushita Electric Industrial Co., Ltd., Kadoma Datenübertragungsgerät und Datenübertragungssystem zur Arbitrierung von mehreren E/A Ports in DMA
JP3803196B2 (ja) * 1998-07-03 2006-08-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法および記録媒体
JP2000207884A (ja) * 1999-01-11 2000-07-28 Hitachi Ltd 半導体集積回路装置
JP3562566B2 (ja) * 1999-02-02 2004-09-08 日本電気株式会社 データ転送システム及びバスプロトコル変換器
JP2003044349A (ja) * 2001-07-30 2003-02-14 Elpida Memory Inc レジスタ及び信号生成方法
US7243172B2 (en) * 2003-10-14 2007-07-10 Broadcom Corporation Fragment storage for data alignment and merger
JP4489454B2 (ja) * 2004-02-16 2010-06-23 富士通マイクロエレクトロニクス株式会社 半導体集積回路
TWI260024B (en) * 2005-01-18 2006-08-11 Vivotek Inc An architecture for reading and writing an external memory
US20070005831A1 (en) * 2005-06-30 2007-01-04 Peter Gregorius Semiconductor memory system
KR100762259B1 (ko) 2005-09-12 2007-10-01 삼성전자주식회사 버스트 읽기 레이턴시 기능을 갖는 낸드 플래시 메모리장치
US7558124B2 (en) * 2005-11-16 2009-07-07 Montage Technology Group, Ltd Memory interface to bridge memory buses
JP2007164415A (ja) * 2005-12-13 2007-06-28 Sony Corp データ転送制御装置
CN101141673A (zh) * 2006-09-08 2008-03-12 国际商业机器公司 一种消息发送和接收的设备和方法
JP4435802B2 (ja) * 2007-04-11 2010-03-24 株式会社日立ハイテクノロジーズ 半導体検査装置
JP6054017B2 (ja) * 2011-07-13 2016-12-27 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体記憶装置
JP5992713B2 (ja) * 2012-03-30 2016-09-14 株式会社ソニー・インタラクティブエンタテインメント メモリシステム、その制御方法及び情報処理装置
CN104021097A (zh) * 2013-03-01 2014-09-03 中兴通讯股份有限公司 数据传输方法、装置及直接存储器存取

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170025989A (ko) * 2015-08-31 2017-03-08 삼성전자주식회사 렌더링 시스템 및 방법
KR102493461B1 (ko) * 2015-08-31 2023-01-30 삼성전자 주식회사 렌더링 시스템 및 방법

Also Published As

Publication number Publication date
CN104425022B (zh) 2019-09-27
CN104425022A (zh) 2015-03-18
US20150074314A1 (en) 2015-03-12
US9483425B2 (en) 2016-11-01

Similar Documents

Publication Publication Date Title
KR100908760B1 (ko) 다중 내부 데이터 버스 및 메모리 뱅크 인터리빙을 갖는방법 및 메모리 장치
JP5658082B2 (ja) 半導体装置
US8661180B2 (en) Memory controlling device and memory controlling method
CN101136245B (zh) 半导体存储器件
KR20200023999A (ko) 반도체장치 및 반도체시스템
US11467965B2 (en) Processing-in-memory (PIM) device
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
JP4903481B2 (ja) メモリ装置の構造
CN101825997A (zh) 一种异步先入先出存储器
JP6468971B2 (ja) 半導体メモリ、メモリシステム
CN108206034B (zh) 用于提供多端口存储器的方法及系统
JP2007213055A (ja) シンクロナスダイナミックランダムアクセスメモリを用いたフレームデータの転送方法及びフレームデータのソースドライバへの転送方法並びにタイミング制御モジュール
JP2011048876A (ja) 半導体記憶装置及びその制御方法
JP2015053095A (ja) メモリ、メモリシステムおよびメモリの制御方法
WO2009125572A1 (ja) メモリ制御回路及びメモリ制御方法
CN110097902B (zh) 针对同一端口的读写控制模块及方法、双端口存储器
US9070426B2 (en) Semiconductor memory device capable of setting an internal state of a NAND flash memory in response to a set feature command
US20210350837A1 (en) Processing-in-memory (pim) device
WO2009081551A1 (ja) メモリ装置及びその制御方法
US11861369B2 (en) Processing-in-memory (PIM) device
KR100593442B1 (ko) 반도체 메모리 장치 및 이 장치의 데이터 라이트 및 리드방법
KR20120126031A (ko) 반도체 장치
JP7223503B2 (ja) シリアルインタフェース回路、半導体装置、及びシリアルパラレル変換方法
KR20090060605A (ko) 오토 프리차지 회로
CN105468535A (zh) 一种NAND Flash的数据处理方法及装置