JP5034551B2 - メモリコントローラ、半導体メモリのアクセス制御方法およびシステム - Google Patents

メモリコントローラ、半導体メモリのアクセス制御方法およびシステム Download PDF

Info

Publication number
JP5034551B2
JP5034551B2 JP2007045233A JP2007045233A JP5034551B2 JP 5034551 B2 JP5034551 B2 JP 5034551B2 JP 2007045233 A JP2007045233 A JP 2007045233A JP 2007045233 A JP2007045233 A JP 2007045233A JP 5034551 B2 JP5034551 B2 JP 5034551B2
Authority
JP
Japan
Prior art keywords
access
bank
command
address
score
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.)
Expired - Fee Related
Application number
JP2007045233A
Other languages
English (en)
Other versions
JP2008210088A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007045233A priority Critical patent/JP5034551B2/ja
Priority to KR1020080009057A priority patent/KR100914017B1/ko
Priority to CN2008100059067A priority patent/CN101256827B/zh
Priority to US12/037,541 priority patent/US8069303B2/en
Publication of JP2008210088A publication Critical patent/JP2008210088A/ja
Application granted granted Critical
Publication of JP5034551B2 publication Critical patent/JP5034551B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Description

本発明は、半導体メモリのアクセスを制御するメモリコントローラおよびシステムに関する。
SDRAM等の半導体メモリは、アクセス効率を向上するために独立に動作可能な複数のバンクを持つ場合が多い。また、この種の半導体メモリでは、メモリセルをアクセスするために、アクティブコマンドと、リードまたはライトコマンドと、プリチャージコマンドが必要である。アクティブコマンドは、ワード線を選択し、選択されたワード線に接続されたメモリセルに保持されているデータをセンスアンプにラッチするコマンドである。リードコマンドは、センスアンプにラッチされているデータを読み出すコマンドである。ライトコマンドは、メモリセルにデータを書き込むために、センスアンプにラッチされているデータを書き換えるコマンドである。プリチャージコマンドは、メモリセルをセンスアンプに接続するビット線を所定の電圧にリセットするコマンドである。
一般に、センスアンプに一度にラッチされるデータの単位は、ページと称されている。メモリセルが1ビットのデータを記憶する場合、1ページのビット数は、1つのワード線に接続されたメモリセルの数に等しい。センスアンプにラッチされているデータを読み出し、あるいは書き換える場合、リードコマンドまたはライトコマンドをメモリに供給するだけでよい。これに対して、センスアンプにラッチされていないデータを読み出し、あるいは書き換える場合、リードコマンドまたはライトコマンドの前にアクティブコマンドを供給する必要がある。センスアンプが別のページのデータをラッチしている場合、アクティブコマンドの前にさらにプリチャージコマンドを供給する必要がある。
リードコマンドまたはライトコマンドだけで、データが入出力可能な状態は、ページヒットと称される。これに対して、リードコマンドまたはライトコマンドの前にアクティブコマンドが必要な状態は、ページミスと称される。半導体メモリが複数のバンクを有する場合、ページヒットおよびページミスは、バンク毎に判定される。
従来、アクセス時間を短縮するために、あるバンクのページミスが判明したときに、そのバンクのプリチャージ動作を、別のバンクのリード動作またはライト動作の後に実行する手法が提案されている(例えば、特許文献1参照)。また、アクセス要求に応答してあるバンクにアクティブコマンドおよびリードコマンドを供給するときに、次のアクセス要求に対応するバンクがページミスの場合、ページミスのバンクへのプリチャージコマンドを、リードコマンドの前に供給する手法が提案されている(例えば、特許文献2参照)。
特開平9−237490号公報 特開2002−342159号公報
特許文献1の手法では、ページミスのバンクでは、アクセス要求からアクセスを開始するまでの時間が長くなる。したがって、複数のバンクで構成されるメモリ全体では、アクセス効率は向上しない。特許文献2の手法では、アクティブコマンドとリードコマンドの間へのプリチャージコマンドの挿入は、次にアクセスされるバンクがページミスであり、クロックサイクルに空きがある場合に常に行われる。換言すれば、3番目以降にアクセスされる複数のバンクの状態(ページヒットまたはページミス)は、プリチャージコマンドの挿入の判定に使用されない。このため、プリチャージコマンドは、バンク毎に1つずつ
挿入する必要があり、クロックサイクルに空きがない場合には挿入できない。この結果、アクセス効率を十分に向上できない場合がある。
本発明の目的は、複数のバンクのプリチャージ動作を効率的に実行し、半導体メモリのアクセス効率を向上することである。
本発明の一形態では、半導体メモリをアクセスするメモリコントローラは、アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持する。半導体メモリは、複数のページを各々有する複数のバンクで構成される。メモリコントローラは、保持している複数のアクセスアドレスの各々に対応するバンクのページヒット/ページミスを判定する。また、メモリコントローラは、複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力する。連続して供給される複数のアクセス要求に基づいてオールバンクプリチャージコマンドを出力するか否かが判定されるため、バンクの状態(ページヒット/ページミス)に応じて、コマンドを効率的に半導体メモリに供給できる。また、1回のオールバンクプリチャージコマンドにより、複数のバンクをプリチャージできるため、コマンドを挿入する空きサイクルが少ない場合にも全てのバンクをプリチャージでき、アクセス効率を向上できる。
例えば、オールバンクプリチャージコマンドは、保持している複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、2番目以降の複数のアクセスアドレスに対応する各バンクのページヒット/ページミスに応じて出力される。換言すれば、オールバンクプリチャージコマンドは、先にアクセスされるバンクのプリチャージが必要なときに、2番目以降にアクセスされる各バンクの状態に応じて出力される。これにより、先にアクセスされるバンクがページミスのときにも、コマンドを効率的に半導体メモリに供給できる。
例えば、オールバンクプリチャージコマンドを出力するか否かは、2番目以降の複数のアクセスアドレス毎に付けられるスコアの合計に応じて判定される。ここで、スコアは、オールバンクプリチャージコマンドを出力するときにアクセスに必要なサイクルが減るか否かを示す。スコアはサイクルが減るときに相対的に大きい。オールバンクプリチャージコマンドは、スコアの合計が予め設定された基準値を超える場合に出力される。スコアにより生成するコマンドを管理することにより、オールバンクプリチャージコマンドを出力するか否かの制御論理を簡易にできる。また、スコアをプログラム可能に記憶することにより、スコアの重み付けを容易に変更でき、オールバンクプリチャージコマンドを出力するための判定基準を容易に変更できる。
本発明では、複数のバンクのプリチャージ動作を効率的に実行でき、半導体メモリのアクセス効率を向上できる。
以下、本発明の実施形態を図面を用いて説明する。信号が伝達される信号線には、信号名と同じ符号を使用する。先頭に”/”の付いている信号は、負論理を示している。
図1は、本発明の第1の実施形態を示している。この実施形態では、システムSYSは、システムバスSBUSに接続されたマスタコントローラMST1、MST2(システムコントローラ)、周辺回路PERI、入出力インタフェースI/Oおよびメモリコントロ
ーラMCNTと、メモリコントローラMCNTによりアクセスされるSDRAM(半導体メモリ)とを有している。マスタコントローラMST1、MST2は、システムSYSの全体の動作を制御するCPUやDMAC等である。周辺回路PERIは、例えば、MPEGコントローラ等の画像制御回路である。入出力インタフェースI/Oは、例えば、USBインタフェース回路である。SDRAMは、複数のページを各々有する4つのバンクBKA、BKB、BKC、BKDを有している。SDRAMの詳細は、図5に示す。
システムSYSは、例えば、携帯電話やデジタルカメラなどの制御基板により構成される。例えば、マスタコントローラMST1、MST2、周辺回路PERI、入出力インタフェースI/OおよびメモリコントローラMCNTは、SoC(System on Chip)として1つのLSIチップ上に形成され、制御基板に搭載される。SDRAMは、単体のチップとして制御基板に搭載される。なお、図に示した全ての構成をSoCとして形成してもよい。なお、システムSYSの構成は、図1に限定されるものではない。システムSYSの最小構成は、マスタコントローラMST1、メモリコントローラMCNTおよびSDRAM等の半導体メモリである。
マスタコントローラMST1−2は、SDRAMからのデータRDTを読み出すときにリードデータバッファRDBF2をアクセスし、SDRAMにデータWDTを書き込むときにライトデータバッファWDBF1をアクセスする。SDRAMへのデータの入出力は、アドレス情報バッファAIBF1にアドレス情報ADIを書き込むことで行われる。
メモリコントローラMCNTにおいて、リードデータ制御部RDC1は、SDRAMから順次に読み出されるリードデータ(DQ0−15)をリードデータバッファRDBF1に転送するためのインタフェース回路である。リードデータ制御部RDC2は、リードデータバッファRDBF1に保持されているリードデータの形式を、システムバスSBUSの仕様(タイミング仕様およびデータの転送数など)およびリード要求を出力したコントローラMST1またはMST2の仕様(データのビット数など)に合わせて変更し、リードデータバッファRDBF2に転送するためのインタフェース回路である。
ライトデータバッファWDBF1は、システムバスSBUSから供給されるライトデータを順次に保持する。ライトデータ制御部WDC1は、ライトデータバッファWDBF1に保持されているライトデータの形式をSDRAMの仕様(データのビット数など)に合わせて変更しライトデータバッファWDBF2に転送するためのインタフェース回路である。ライトデータ制御部WDC2は、ライトデータバッファWDBF2に保持されているライトデータを、SDRAMの仕様(タイミング仕様など)に合わせて出力するためのインタフェース回路である。なお、バッファRDBF1−2、WDBF1−2は、例えば、FIFOメモリである。
アドレス情報バッファAIBF1は、システムバスSBUSから供給されるアドレス情報ADIを順次に保持する。アドレス情報ADIは、一般にトランザクションと称され、アクセスの開始アドレス、リード/ライト情報、データサイズ(ビット幅)、バースト長およびバーストタイプ等を含む。バースト長は、1回のアクセス要求で連続して入力または出力されるデータのワード数である。バーストタイプは、複数のメモリ領域をまたいでバーストアクセスを実行するか、1つのメモリ領域内で巡回的にバーストアクセスを実行するかを示す。
要求生成部REQGは、アドレス情報バッファAIBF1に保持されているアドレス情報(トランザクション)を分割してSDRAMのコマンド体系に従ったアドレス情報(アクセス要求)に変換し、変換したアドレス情報をアドレス情報バッファAIBF2に転送する。アドレス情報バッファAIBF2に保持されているアドレス情報は、連続する複数
のアクセス要求に対応するアクセスアドレスAD(AD1、AD2、AD3、AD4、...)およびリード/ライト情報RWを含む。アクセスアドレスAD1−4は、アクセスするSDRAMのバンクを示すバンクアドレスおよびページを示すページアドレスを含む。アドレス情報バッファAIBF1−2および要求生成部REQGは、マスタコントローラMST1またはMST2からのアクセスアドレスAD1−4を含むアクセス要求を順次に保持する要求保持部として機能する。
アドレス解析部ADAは、ミスヒット判定回路MHD、オールバンクプリチャージ制御回路PREACおよびスコア記憶部SCRを有している。ミスヒット判定回路MHDは、アドレス情報バッファAIBF2に保持されている連続する複数のアクセス要求に対応する4つのアクセスアドレスAD1−4を受け、現在のバンクの状態に応じて各アクセスアドレスAD1−4に対応するバンクのページヒット/ページミスを判定する。このため、ミスヒット判定回路MHDは、直前にSDRAMに出力したアクセスアドレスにより現在の各バンクの状態を保持する保持部(図3のバンク状態部BKST)を有する。ミスヒット判定回路MHDは、アクセスアドレスAD1に応じてコマンド/アドレス生成部CAGにアクティブコマンドACT0またはプリチャージコマンドPRE0を出力する。
オールバンクプリチャージ制御回路PREACは、ミスヒット判定回路MHDからのページヒット/ページミスの情報と、スコア記憶部SCRに記憶されているスコア情報とに応じて、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドPREA0をコマンド/アドレス生成部CAGに出力するか否かを判定する。すなわち、アドレス解析部ADAは、複数のアクセスアドレスAD1−4を解析することによりアクセス効率が向上すると判定したときに、オールバンクプリチャージコマンドPREA0を出力する。
スコア記憶部SCRは、例えば、システムSYSのパワーオン時に所定のスコアが設定される書き換え可能(プログラム可能)なレジスタである。なお、スコア記憶部SCRは、SoCの製造工程でプログラムされるヒューズを有するヒューズ回路により構成してもよい。スコア記憶部SCRを書き換え可能に形成することにより、スコア記憶部SCRに記憶されるスコアを、SoCの設計後に変更できる。あるいは、スコア記憶部SCRは、SoCの設計時にパラメータに応じてスコアを変更可能な論理回路で構成されてもよい。この場合、仕様が異なる複数種のSoCにアドレス解析部ADAを搭載する場合にも、わずかな論理変更によりスコア記憶部SCRをそれぞれのSoCに対応して構成できる。オールバンクプリチャージコマンドPREAを出力するか否かの判断基準は、後述する。
コマンド/アドレス生成部CAGは、アドレス情報バッファAIBF2からのアクセスアドレスAD1およびリード/ライト情報RWと、アドレス解析部ADAからのコマンドACT0、PRE0、PREA0に応じて、SDRAMにコマンドCMDおよびアドレスA0−13を出力する。この際、コマンド/アドレス生成部CAGは、タイミング調整部TADJからの制御信号に応じて、コマンドCMDの供給間隔(クロックサイクル数)を調整する。なお、アドレスA0−13のビット数は、14ビットに限定されるものではなく、SDRAMのメモリ容量とデータDQのビット数に依存して変化する。ここで、コマンドCMDとして、リードコマンドRD、ライトコマンドWR、アクティブコマンドACT、プリチャージコマンドPRE、オールバンクプリチャージコマンドPREA等がある。
SDRAMは、クロックCLKに同期して動作するDRAMであり、上述した以外に、クロックイネーブル端子CKE、ロウアーデータマスク端子LDQMおよびアッパーデータマスク端子UDQM等を有している。これ等端子の機能は、既知であり、本発明と直接関係しないため説明を省略する。
図2は、図1に示したアドレス情報バッファAIBF1−2の詳細を示している。アドレス情報バッファAIBF1は、各アドレス情報ADI(開始アドレスSAD、リード/ライト情報RW、データサイズDS、バースト長BLおよびバーストタイプBT)を保持する複数のメモリ領域を有し、FIFOとして機能する。
アドレス情報バッファAIBF2は、要求生成部REQGにより生成されたアクセス要求(アクセスアドレスADおよびリード/ライト情報RW)を保持する複数のメモリ領域を有し、FIFOとして機能する。nの値は、SDRAMに供給される順序を示している。n=1のアクセス要求は、最も早くSDRAMに供給される。アクセスアドレスADは、SDRAMのバンク(図4のBKA、BKB、BKC、BKD)を示すバンクアドレス(A12−13)、各バンク内のページ(ワード線)を示すロウアドレス(例えば、A0−11)および各バンク内のビット線群を示すコラムアドレス(例えば、A0−9)で構成される。アドレス端子A0−9は、ロウアドレスおよびコラムアドレスに共通である(アドレスマルチプレクス方式)。
この実施形態では、例えば、アドレス情報バッファAIBF2に保持されているアクセス要求のうち、1番目から4番目(n=1、2、3、4)のアクセス要求に含まれるアクセスアドレスAD(AD1−4)が、アドレス解析部ADAに供給される。なお、アドレス解析部ADAに供給されるアクセスアドレスADは、バンクアドレスおよびロウアドレスのみでよい。
なお、図1に示したコマンド/アドレス生成部CAGは、アクセス要求によりアクセスされるバンクの状態がページヒットのとき、リード/ライト情報RWに応じてリードコマンドまたはライトコマンドを出力する。コマンド/アドレス生成部CAGは、アクセス要求によりアクセスされるバンクの状態がページミスでアクティブ状態のとき、リード/ライト情報RWに応じてプリチャージコマンドPRE(またはオールバンクプリチャージコマンドPREA)とアクティブコマンドACTとリードコマンドまたはライトコマンドとを出力する。また、コマンド/アドレス生成部CAGは、アクセス要求によりアクセスされるバンクの状態がページミスでアイドル状態(非アクティブ状態)のとき、リード/ライト情報RWに応じて少なくともアクティブコマンドACTとリードコマンドまたはライトコマンドとを出力する。
図3は、図1に示したアドレス解析部ADAの詳細を示している。ミスヒット判定回路MHDは、バンク状態部BKSTおよび判定部DC1を有している。バンク状態部BKSTは、バンクBKA、BKB、BKC、BKDの現在の状態を保持し、状態信号STA、STB、STC、STDとしてそれぞれ出力する。具体的には、バンク状態部BKSTは、アクセスアドレスAD1−4およびコマンドACT0、PRE0、PREA0に応じて各バンクBKA、BKB、BKC、BKDのどのページがアクティブ状態であるかを記憶し、あるいは各バンクBKA、BKB、BKC、BKDがアイドル状態であることを記憶し、記憶している状態を状態信号STA、STB、STC、STDとしてそれぞれ出力する。このため、状態信号STA−STDは、アクティブ状態のページ(ロウアドレス)を示す情報を含んでいる。
判定部DC1は、アクセスアドレスAD1−4に対応するバンクBK(BKA、BKB、BKC、BKDの少なくともいずれか)のページヒット/ページミスを、状態信号STA、STB、STC、STDに応じて判定し、判定結果を状態信号ST1−4として出力する。状態信号ST1−4は、1番目から4番目(n=1、2、3、4)のアクセスアドレスAD1−4に対応して出力される。また、判定部DC1は、判定結果とオールバンクプリチャージ制御回路PREACからのオールバンクプリチャージコマンドPREA0に
基づいてプリチャージコマンドPRE0およびアクティブコマンドACT0を出力する。
オールバンクプリチャージ制御回路PREACは、判定部DC2、加算部ADD、比較部COMPおよび基準設定部STDを有している。判定部DC2は、スコア記憶部SCRに記憶されているスコア情報を参照して、状態信号ST1−4に応じたスコアS1−4をそれぞれ求める。スコアS1−4の詳細は、図7、図9、図11、図12および図13で説明する。なお、先頭のアクセスアドレスAD1に対応するスコアS1は、常に”0”に設定される。このため、例えば、判定部DC1は、状態信号ST1を生成しなくてもよく、判定部DC2は、スコアS1を生成しなくてもよい。
加算部ADDは、スコアS1−4を加算し、合計値Ssumとして出力する。比較部COMPは、合計値Ssumが基準設定部STDに設定された基準値より大きい場合にオールバンクプリチャージコマンドPREA0を出力し、合計値Ssumが基準値以下の場合にオールバンクプリチャージコマンドPREA0を出力しない。この例では、基準値は”0”である。基準設定部STDは、変更できない固定の基準値を記憶してもよく、基準値を書き換え可能(プログラム可能)に記憶してもよい。基準設定部STDに固定の基準値(例えば”0”)を記憶する場合、基準判定部STDは、例えば、比較部COMP中の接地線により形成可能である。
図4は、図1に示したスコア記憶部SCRの概要を示している。スコア記憶部SCRは、状態信号ST1−4で示されるバンクBKの状態(図の縦方向に並ぶ3つの状態)と、オールバンクプリチャージコマンドPREA0の実行後のバンクBKの状態(図の横方向に並ぶ3つの状態)との組み合わせに応じたスコアを記憶している。状態信号ST1−4は、上述したように、現在のバンクBKの状態に対するアクセスアドレス(アクセス要求)のページヒット/ページミスを示す。バンクBKの状態は、ページヒットPH、バンクアイドル状態でページミスPM(BI)およびバンクアクティブ状態でページミスPM(BA)のいずれかである。図中の斜線の組み合わせは存在しないため、スコアも存在しない。
例えば、ページヒット状態のバンクBK(PH)にPREAコマンドを実行するとき、バンクBKの状態はページミスPM(BI)になる。このとき、ACTコマンドが余分に必要になり不利であるため、スコアは”−1”に設定される。アイドル状態のバンクBK(PM(BI))にコマンドPREAを実行するとき、バンクBKの状態は変わらないため、スコアは”0”に設定される。同様に、”PHからPH”、”PM(BA)からPM(BA)”も状態が変わらないため、スコアは”0”に設定される。アクティブ状態のバンクBK(PM(BA))にコマンドPREAを実行するとき、バンクBKの状態はページミスPM(BI)になる。このとき、PREコマンドが不要になり有利であるため、スコアは”+1”に設定される。この例では、スコアの増減は、コマンドに応答するアクティブ動作およびプリチャージ動作の回数の増減で定義される。
図5は、図1に示したSDRAMの詳細を示している。SDRAMは、例えば、独立に動作可能な4つのバンクBK(BKA、BKB、BKC、BKD)、アドレスバッファADBF、リフレッシュアドレスカウンタREFC、タイミングジェネレータTGENおよびデータ入出力バッファI/OBUF等を有している。SDRAMは、コマンドCMDとしてクロックCLK、クロックイネーブル信号CKE、チップセレクト信号/CS、ロウアドレスストローブ信号/RAS、コラムアドレスストローブ信号/CASおよびライトイネーブル信号/WEを受ける。各信号の機能は既知のため、説明は省略する。
各バンクBKは、メモリセルアレイARY、ロウデコーダRDEC、センスアンプSA、コラムデコーダCDECおよび図示しないプリチャージ回路を有している。メモリセル
アレイARYは、複数のダイナミックメモリセルMC、図の横方向に並ぶメモリセルMCに接続されたワード線WL、図の縦方向に並ぶメモリセルMCに接続されたビット線BL、/BLを有している。メモリセルMCは、データを電荷として保持するためのキャパシタと、このキャパシタに一端をビット線BL(または/BL)に接続するための転送トランジスタとを有している。転送トランジスタのゲートは、ワード線WLに接続されている。
図6は、第1の実施形態のメモリコントローラMCNTの動作を示している。図では、特に、図1に示したアドレス解析部ADAおよびコマンド/アドレス生成部CAGの動作を示している。図中の太枠で示した菱形は、図1に示したタイミング調整部TADJからの情報に基づいて、コマンドを実行可能なクロックサイクルか否かを判定することを示している。換言すれば、菱形は、図8に示すタイミング仕様tRP、tRCDに基づいてSDRAMを動作させる処理を含んでいる。
まず、ステップS10において、アドレス解析部ADAは、アクセス要求がアドレス情報バッファAIBF2に保持されているか否かを判定する。アクセス要求が保持されていない場合、ステップS10が繰り返される。アクセス要求が保持されている場合、ステップS12において、アドレス解析部ADAは、先頭のアクセス要求(n=1)によりアクセスされるバンクBKの状態がページヒットか否かを判定する。ページミスの場合、処理はステップS14に移行する。ページヒットの場合、リードコマンドRDまたはライトコマンドWRを供給するのみでSDRAMをアクセスできるため、処理はステップS30に移行する。
ステップS14において、先頭のアクセス要求(n=1)によりアクセスされるバンクBKがアクティブ状態か否かが判定される。アイドル状態(非アクティブ状態)のとき、アクティブコマンドACTを実行するために(センスアンプSAにデータをラッチするために)、処理はステップS26に移行する。アクティブ状態の場合、ステップS16において、アドレス解析部ADAは、先頭のアクセス要求に応答するアクセス動作を実行するために、プリチャージコマンドPREまたはオールバンクプリチャージコマンドPREAのいずれを実行すべきかを判定する(プリチャージ判定)。プリチャージ判定は、図4に示したスコアに基づいて行われる。プリチャージ判定の詳細は、図7、図9、図11−図13で説明する。
プリチャージコマンドPREを実行すべきとき、ステップS18において、アドレス解析部ADAは、コマンド/アドレス生成部CAGにプリチャージコマンドPRE0を出力する。コマンド/アドレス生成部CAGは、タイミング調整部TADJによりプリチャージコマンドPREを実行可能と判定したとき、ステップS20においてプリチャージコマンドPREをSDRAMに出力する。同様に、オールバンクプリチャージコマンドPREAを実行すべきとき、ステップS22において、アドレス解析部ADAは、コマンド/アドレス生成部CAGにオールバンクプリチャージコマンドPREA0を出力する。コマンド/アドレス生成部CAGは、タイミング調整部TADJにより、オールバンクプリチャージコマンドPREAを実行可能と判定したとき、ステップS24においてオールバンクプリチャージコマンドPREAをSDRAMに出力する。ステップS18、S22において、コマンドPRE、PREAが実行できない場合、処理はステップS16に戻る。SDRAMは、コマンドPRE、PREAに応答してバンクBKのいずれかのプリチャージ動作または全てのバンクBKのプリチャージ動作を実行する。
コマンドPRE、PREAの出力後、処理はステップS26に移行する。ステップS26において、アドレス解析部ADAは、コマンド/アドレス生成部CAGにアクティブコマンドACT0を出力する。コマンド/アドレス生成部CAGは、タイミング調整部TADJからの情報に基づいて、アクティブコマンドACTを実行可能などうか判定する。実行可能なとき、コマンド/アドレス生成部CAGは、ステップS28において、アクティブコマンドACTをSDRAMに出力する。SDRAMは、コマンドACTに応答してアクセスアドレスAD(バンクアドレスとロウアドレス)により示されるバンクBKのページをアクティブ状態にする。アクティブコマンドACTが実行不可能なとき、次のクロックサイクルで再びステップS26の判定が実施される。
次に、ステップS30において、コマンド/アドレス生成部CAGは、タイミング調整部TADJからの情報に基づいて、リードコマンドRDまたはライトコマンドWRを実行可能かどうか判定する。実行可能なとき、コマンド/アドレス生成部CAGは、ステップS32において、リードコマンドRDまたはライトコマンドWRをSDRAMに出力する。SDRAMは、コマンドRD/WRに応答してアクセスアドレスAD(コラムアドレス)により示されるデータを入出力する。リードコマンドRDまたはライトコマンドWRが実行不可能なとき、次のクロックサイクルで再びステップS30の判定が実施される。
図7は、図3に示したアドレス解析部ADAの動作の一例を示している。図中の四角枠は、各バンクBKA−BKDの状態を示している。四角枠内の太線は、ワード線WL(ページ)が活性化されていることを示す。太線の位置は、ワード線WLの位置を示している。図中の上側は、オールバンクプリチャージコマンドPREAを実行しない場合のバンクBKの状態の変化を示す。図中の下側は、オールバンクプリチャージコマンドPREAを実行する場合のバンクBKの状態の変化を示す。
この例では、全てのバンクBKA−BKDがアクティブ状態BAのときに、バンクBKA、BKB、BKC、BKDに対するアクセス要求が発生する。図3に示した判定部DC1は、現在のバンクBKの状態とアクセスアドレス(n=1−4)とから、オールバンクプリチャージコマンドPREAを実行しない場合のバンクBKのページヒット/ページミスを判定し、状態信号ST1−4として出力する。判定部DC2は、状態信号ST1−4とスコア記憶部SCRに記憶された値(図4)とに応じて2番目から4番目のアクセス要求のスコアS2−4を求める。そして、スコアS2−S4の合計値Ssumに応じてオールバンクプリチャージコマンドPREAを発生するか否かが判定される。この例では、合計値Ssumは、基準値”0”より大きい”+3”であるため、コマンド/アドレス生成部CAGは、オールバンクプリチャージコマンドPREAを出力する。ここで、合計値Ssumは、オールバンクプリチャージコマンドPREAを出力することにより減少するクロックサイクル数に相当する。このため、合計値Ssumが負の値になる場合(例えば、図9)、オールバンクプリチャージコマンドPREAを出力することにより、クロックサイクル数が増えて、不利になることを意味する。
図8は、図7に対応するメモリコントローラMCNTおよびSDRAMの動作を示している。図中の仕様tRPは、プリチャージコマンドPREまたはPREAからアクティブコマンドACTを供給するまでのクロックサイクルの最小数である。仕様tRCDは、アクティブコマンドACTからリードコマンドRDまたは図示しないライトコマンドWRを供給するまでのクロックサイクルの最小数である。仕様CLは、リードコマンドRDの供給からデータの出力が開始されるまでのクロックサイクル数である。図中の符号A、B、C、Dは、バンクBKA、BKB、BKC、BKDをそれぞれ示している。
上述したアドレス解析部ADAの動作により、まずオールバンクプリチャージコマンドPREAが発行され、この後、バンクBKAのアクティブコマンドACTおよびリードコマンドRDと、バンクBKBのアクティブコマンドACTおよびリードコマンドRDと、バンクBKCのアクティブコマンドACTおよびリードコマンドRDと、バンクBKDのアクティブコマンドACTおよびリードコマンドRDとが順次に発行され、各バンクBK
からデータD0−D3が読み出される。これにより、アクセス効率を改善でき、所定数のクロックサイクル中のデータの入出力数であるデータ転送レートを向上できる。
これに対して、本発明前のメモリコントローラでは、複数のアクセスアドレスに基づいてオールバンクプリチャージコマンドPREAを発行するか否かを判定するアドレス解析部ADAが存在しない。このため、プリチャージコマンドPREがバンクBK毎に発行され、アクセス効率が悪く、データ転送レートが悪い。なお、ライトコマンドWRが供給された場合の動作(ライト動作)は、最初の書き込みデータD0がライトコマンドWRに同期して供給され、その後書き込みデータD1−3が順次供給されることを除き、リード動作と同じである。ライトコマンドWRは、リードコマンドRDと同じタイミングで供給される。
図9は、図3に示したアドレス解析部ADAの動作の別の例を示している。図中の表記は、図7と同じである。この例では、全てのバンクBKA−BKDがアクティブ状態BAのときに、バンクBKA、BKB、BKC、BKDに対するアクセス要求が発生する。2番目から4番目のアクセスアドレス(ロウアドレス)は、アクティブ状態のアクセスアドレスと同じであるため、状態信号ST2−4は、ページヒットPHを示す。このため、スコアS2−4は、いずれも”−1”になり、合計値Ssumは、基準値”0”より小さい”−3”になる。このため、コマンド/アドレス生成部CAGは、オールバンクプリチャージコマンドPREAを出力せず、1番目のアクセス要求に対応してバンクBKAにプリチャージコマンドPREを出力する。すなわち、オールバンクプリチャージコマンドPREAの出力によりアクセス効率が低下すると判定された場合に、プリチャージコマンドPREが出力される。これにより、2番目以降のアクセス要求に対応する動作において不要なプリチャージ動作が実行されることを防止でき、アクセス効率が低下することを防止できる。
図10は、図9に対応するメモリコントローラMCNTおよびSDRAMの動作を示している。この例では、上述したアドレス解析部ADAの動作により、まずバンクBKAのプリチャージコマンドPREが発行され、この後、バンクBKAのアクティブコマンドACTおよびリードコマンドRDが発行される。ページヒットのバンクBKB、BKC、BKDは、リードコマンドRDのみを順次に受けてリード動作を順次実行する。この例では、アドレス解析部ADAが、オールバンクプリチャージコマンドPREAを出力しない判定をすることにより、無駄なアクティブコマンドACTが発行されることを防止できる。
図11は、図3に示したアドレス解析部ADAの動作の別の例を示している。図中の表記は、図7と同じである。この例では、全てのバンクBKA−BKDがアクティブ状態BAのときに、バンクBKA、BKB、BKC、BKDに対するアクセス要求が発生する。2番目から4番目のアクセスアドレス(ロウアドレス)は、それぞれページヒットPH、ページミスPM(BA)、ページミスPM(BA)を示す。スコアS2−4の合計値Ssumは、基準値”0”より大きい”+1”になる。このため、コマンド/アドレス生成部CAGは、オールバンクプリチャージコマンドPREAを出力する。
図12は、図3に示したアドレス解析部ADAの動作の別の例を示している。図中の表記は、図7と同じである。この例では、全てのバンクBKA−BKDがアクティブ状態BAのときに、バンクBKA、BKA、BKC、BKDに対するアクセス要求が発生する。2番目から4番目のアクセスアドレス(ロウアドレス)は、それぞれページヒットPH、ページミスPM(BA)、ページミスPM(BA)を示す。ここで、2番目のアクセスアドレス(ロウアドレス)は、1番目のアクセスアドレスと同じため、オールバンクプリチャージコマンドPREAが実行された後も、ページヒットPHになる。このため、スコアS2は”0”である。スコアS2−4の合計値Ssumは、基準値”0”より大きい”+
2”になるため、オールバンクプリチャージコマンドPREAが出力される。
図13は、図3に示したアドレス解析部ADAの動作の別の例を示している。図中の表記は、図7と同じである。この例では、全てのバンクBKA−BKDがアクティブ状態BAのときに、バンクBKA、BKB、BKB、BKBに対するアクセス要求が発生する。2番目から4番目のアクセスアドレス(ロウアドレス)は、それぞれページミスPM(BA)、ページヒットPH、ページミスPM(BA)を示す。ここで、3番目のアクセスアドレス(ロウアドレス)は、2番目のアクセスアドレスと同じため、オールバンクプリチャージコマンドPREAが実行された後も、ページヒットPHになる。また、4番目のアクセスアドレス(ロウアドレス)は、3番目のアクセスアドレスと異なるため、オールバンクプリチャージコマンドPREAが実行された後も、ページミスPM(BA)状態は変わらない。このため、スコアS3、S4はともに”0”である。スコアS2−4の合計値Ssumは、基準値”0”より大きい”+1”になるため、オールバンクプリチャージコマンドPREAが出力される。
以上、第1の実施形態では、アドレス解析部ADAにより、2番目から4番目のアクセス要求に基づいてオールバンクプリチャージコマンドPREAを出力するか否かが判定されるため、バンクBKの状態(ページヒット/ページミス)に応じて、コマンドを効率的にSDRAMに供給できる。1回のオールバンクプリチャージコマンドPREAにより、全てのバンクBKをプリチャージできるため、コマンドを挿入する空きサイクルが少ない場合にもアクセス効率を向上できる。換言すれば、コマンドの供給に使用されるクロックサイクルを最小限にでき、SDRAMのデータ転送レートを向上できる。
オールバンクプリチャージコマンドPREAは、先にアクセスされるバンクBKのプリチャージが必要なときに(=ページミス)、2番目以降にアクセスされる各バンクBKの状態に応じて出力される。これにより、先にアクセスされるバンクがページヒットのときは、オールバンクプリチャージコマンドPREAは出力されない。このため、先にアクセスされるバンクBKのリード動作またはライト動作を遅らせることなく、アクセス効率を向上できる。
オールバンクプリチャージコマンドPREAを出力するか否かの判定をスコアS2−4の合計値Ssumに応じて行うことで、判定の制御論理を簡易にできる。また、スコアS2−4を記憶するスコア記憶部SCRをプログラム可能なレジスタまたはヒューズ回路で構成することにより、スコアS2−4の重み付けをシステムSYSの仕様に合わせて容易に変えることができる。すなわち、オールバンクプリチャージコマンドPREAを出力するための判定基準をシステムSYSの仕様に応じて容易に変更できる。
オールバンクプリチャージコマンドPREAの出力を決定したときに、オールバンクプリチャージコマンドPREAは、先頭のアクセス要求に対応するアクティブコマンドACTの前に出力される。これにより、先頭のアクセス要求に対応するバンクのプリチャージ動作と2番目以降のアクセス要求に対応するバンクBKのプリチャージ動作を同時に実行でき、アクセス効率を向上できる。
オールバンクプリチャージコマンドPREAの出力によりアクセス効率が低下すると判定された場合に、プリチャージコマンドPREを出力し、先頭のアクセス要求に対応するバンクBKのみをプリチャージする。これにより、2番目以降のアクセス要求に対応するバンクBKの少なくともいずれかがページヒット状態のときに、不要なプリチャージ動作が実行されることを防止でき、アクセス効率が低下することを防止できる。
図14は、第2の実施形態におけるスコア記憶部SCRの概要を示している。スコア記
憶部SCRを除く構成は、第1の実施形態と同じである。第1の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
スコア記憶部SCRは、アクティブ状態のバンクBK(PM(BA))にコマンドPREAを実行し、バンクBKの状態をページミスPM(BI)にするとき、スコアは、第1の実施形態より多い”+2”に設定される。すなわち、第1の実施形態に比べてスコアの重み付けが変更されている。比較部COMPで比較される基準値は”0”である。スコア記憶部SCRは、プログラム可能なレジスタあるいはプログラム可能なヒューズ回路で構成されているため、スコアの重み付けの変更をシステムSYSの仕様に合わせて、システムSYS毎に容易に変更できる。また、スコア記憶部SCRをパラメータに応じてスコアを変更可能な論理回路で構成する場合にも、スコアの重み付けの変更をシステムSYSの仕様に合わせて、システムSYS毎に容易に変更できる。
なお、スコア記憶部SCRに設定するスコアは、図4および図14に示した以外の値でもよい。例えば、動作に必要なクロックサイクル数の増減に応じてスコアを設定してよい。具体的には、アクティブコマンドACTに応答してバンクBKがアクティブ状態になるクロックサイクル数を”1”、プリチャージコマンドPRE、PREAに応答してバンクBKがプリチャージ状態(アイドル状態)になるクロックサイクル数を”2”とする。この場合、スコアは、アクティブコマンドACTに応答する動作が減る場合に”+1”に設定され、増える場合に”−1”に設定され、プリチャージコマンドPRE、PREAに応答する動作が減る場合に”+2”に設定され、増える場合に”−2”に設定される。
以上、第2の実施形態においても、上述した第1の実施形態と同様の効果を得ることができる。さらに、この実施形態では、SDRAMの動作仕様、SDRAMに供給されるクロックCLKの周波数あるいは、システムSYSの仕様により、スコアの重み付けを変えることにより、アクセス効率の高い最適なシステムSYSを構築できる。
図15は、第3の実施形態におけるアドレス解析部ADAの詳細を示している。ミスヒット判定回路MHDを除く構成は、第1の実施形態と同じである。第1の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
ミスヒット判定回路MHDは、先頭のアクセスアドレスAD1に対応するアクティブコマンドACT01だけでなく、アクティブコマンドACT02−04を出力する。アクティブコマンドACT02−04は、2番目から4番目のアクセスアドレスAD2−4がページミスのときに、コマンド/アドレス生成部CAGに対応するバンクBKのアクティブコマンドACTの出力を要求するために出力される。さらに、ミスヒット判定回路MHDのバンク状態部BKSTは、判定部DC1からのアクティブコマンドACT01だけでなく、コマンド/アドレス生成部CAGが2番目から4番目のアクセスアドレスAD2−4に対応してアクティブコマンドACTを出力したときに、そのアクティブコマンドACTに応答して、対応するバンクBKがアクティブ状態になったことを記憶する。
図16は、第3の実施形態におけるメモリコントローラMCNTの動作の要部を示している。図では、特に、コマンド/アドレス生成部CAGの動作を示している。図16は、図6のステップS30以降の動作が第1の実施形態と相違している。ステップS30までの動作は、第1の実施形態と同じである。図中の太枠で示した菱形は、図1に示したタイミング調整部TADJからの情報に基づいて、コマンドを実行可能なクロックサイクルか否かを判定することを示している。第1の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態では、ステップS30において、リードコマンドRDまたはライトコマンドWRが実行不可能と判定されたとき、処理はステップS40−S56に移行する。ステップS40では、コマンド/アドレス生成部CAGは、ミスヒット判定回路MHDから2番目のアクセス要求に対応するアクティブコマンドACT02を受けたときに、ステップS42においてアクティブコマンドACTを出力可能か否か判定する。アクティブコマンドACTが出力可能なとき、ステップS44において、2番目のアクセス要求に応答するアクティブコマンドACTを出力する。ステップS40でアクティブコマンドACT02が出力されていないとき、処理はステップS46に移行する。
ステップS46、S48、S50では、3番目のアクセス要求に対応するアクティブコマンドACT03について、上述したステップS40、S42、S44と同じ処理が実施される。同様に、ステップS52、S54、S56では、4番目のアクセス要求に対応するアクティブコマンドACT04について、上述したステップS40、S42、S44と同じ処理が実施される。
図17は、第3の実施形態におけるメモリコントローラMCNTおよびSDRAMの動作を示している。この例では、図16に示した処理フローにより、アクティブコマンドACTとリードコマンドRDの間に、2番目から4番目のアクセス要求に応答するアクティブコマンドACTを挿入可能である。
以上、第3の実施形態においても、上述した第1の実施形態と同様の効果を得ることができる。さらに、この実施形態では、アドレス解析部ADAにより、2番目から4番目のアクセス要求に応答するアクティブコマンドACTを、アクティブコマンドACTとリードコマンドRDの間に挿入することで、アクセス効率をさらに向上できる。
なお、上述した実施形態では、本発明をクロックに同期して動作するSDRAMに適用する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、本発明を、クロック非同期のDRAMに適用してもよい。SDRAMおよびDRAMは、チップの形態でもよく、SoCに搭載されるマクロでもよい。
上述した実施形態では、比較部COMPで比較される基準値を”0”に設定する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、クロックサイクル数が2以上減少するときにオールバンクプリチャージコマンドPREAを出力する場合、基準値は”1”に設定される。この場合、合計値Ssumが”+2”以上の場合に、オールバンクプリチャージコマンドPREAが出力される。このように、基準値を変えることで、アドレス解析部ADAの判定基準を容易に変更できる。
上述した実施形態では、オールバンクプリチャージコマンドPREAを出力するか否かを、2番目から4番目のアクセス要求に基づいて判定する例について述べた。あるいは、2番目以降のアクセス要求に対応するアクティブコマンドACTを先行して実行するか否かを、2番目から4番目のアクセス要求に基づいて判定する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、アドレス解析部ADAでの判定は、4番目以降のアクセス要求について行ってもよい。この場合にも、スコア記憶部SCRの変更は不要である。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
複数のページを各々有する複数のバンクで構成される半導体メモリをアクセスするメモリコントローラであって、
アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット/ページミスを判定するとともに、前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするメモリコントローラ。
(付記2)
付記1記載のメモリコントローラにおいて、
前記アドレス解析部は、前記要求保持部に保持された複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、2番目以降の複数のアクセスアドレスに対応する各バンクのページヒット/ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とするメモリコントローラ。
(付記3)
付記2記載のメモリコントローラにおいて、
前記アドレス解析部は、2番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とするメモリコントローラ。
(付記4)
付記3記載のメモリコントローラにおいて、
前記バンクの状態に対応する前記スコアをプログラム可能に記憶するスコア記憶部を備え、
前記アドレス解析部は、前記スコア記憶部に記憶されている前記スコアを参照することで、前記スコアの合計と前記基準値とを比較することを特徴とするメモリコントローラ。(付記5)
付記2記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とするメモリコントローラ。
(付記6)
付記2記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力しないと判定したときに、先頭のアクセスアドレスに対応するバンクのみにプリチャージ動作を実行するプリチャージコマンドを出力することを特徴とするメモリコントローラ。
(付記7)
付記1記載のメモリコントローラにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、2番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とするメモリコントローラ。
(付記8)
複数のページを各々有する複数のバンクで構成される半導体メモリのアクセス制御方法であって、
アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持し、
保持している複数のアクセスアドレスの各々に対応するバンクのページヒット/ページ
ミスを判定し、
前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力することを特徴とすることを特徴とする半導体メモリのアクセス制御方法。
(付記9)
付記8記載の半導体メモリのアクセス制御方法において、
保持している複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、2番目以降の複数のアクセスアドレスに対応する各バンクのページヒット/ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とする半導体メモリのアクセス制御方法。
(付記10)
付記9記載の半導体メモリのアクセス制御方法において、
2番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、
前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とする半導体メモリのアクセス制御方法。
(付記11)
付記9記載の半導体メモリのアクセス制御方法において、
オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とする半導体メモリのアクセス制御方法。
(付記12)
付記9記載の半導体メモリのアクセス制御方法において、
オールバンクプリチャージコマンドを出力しないと判定したときに、先頭のアクセスアドレスに対応するバンクのみにプリチャージ動作を実行するプリチャージコマンドを出力することを特徴とする半導体メモリのアクセス制御方法。
(付記13)
付記8記載の半導体メモリのアクセス制御方法において、
オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、2番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とする半導体メモリのアクセス制御方法。
(付記14)
複数のページを各々有する複数のバンクで構成される半導体メモリと、前記半導体メモリをアクセスするためのアクセス要求を出力する少なくとも1つのシステムコントローラと、前記アクセス要求を前記半導体メモリに出力するメモリコントローラとを備えたシステムであって、
前記メモリコントローラは、
アクセスするメモリセルを示すアクセスアドレスを含み、前記システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット/ページミスを判定するとともに、前記複数のアクセスアドレスを解析することによりアクセス効率が向上すると判定したときに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするシステム。
(付記15)
付記14記載のシステムにおいて、
前記アドレス解析部は、前記要求保持部に保持された複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、2番目以降の複数
のアクセスアドレスに対応する各バンクのページヒット/ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とするシステム。
(付記16)
付記15記載のシステムにおいて、
前記アドレス解析部は、2番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示すスコアを求め、前記スコアはサイクルが減るときに相対的に大きく、前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とするシステム。
(付記17)
付記16記載のシステムにおいて、
前記バンクの状態に対応する前記スコアをプログラム可能に記憶するスコア記憶部を備え、
前記アドレス解析部は、前記スコア記憶部に記憶されているスコアを参照することで、スコアの合計と前記基準値とを比較することを特徴とするシステム。
(付記18)
付記15記載のシステムにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とするシステム。
(付記19)
付記15記載のシステムにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力しないと判定したときに、先頭のアクセスアドレスに対応するバンクのみにプリチャージ動作を実行するプリチャージコマンドを出力することを特徴とするシステム。
(付記20)
付記14記載のシステムにおいて、
前記アドレス解析部は、オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、2番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とするシステム。
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
本発明は、半導体メモリのアクセスを制御するメモリコントローラおよびシステムに適用可能である。
本発明の第1の実施形態を示すブロック図である。 図1に示したアドレス情報バッファの詳細を示すブロック図である。 図1に示したアドレス解析部の詳細を示すブロック図である。 図1に示したスコア記憶部の概要を示す説明図である。 図1に示したSDRAMの詳細を示すブロック図である。 第1の実施形態におけるメモリコントローラの動作を示すフロー図である。 図3に示したアドレス解析部の動作の一例を示す説明図である。 図7に対応するメモリコントローラおよびSDRAMの動作を示すタイミング図である。 図3に示したアドレス解析部の動作の別の例を示す説明図である。 図9に対応するメモリコントローラおよびSDRAMの動作を示すタイミング図である。 図3に示したアドレス解析部の動作の別の例を示す説明図である。 図3に示したアドレス解析部の動作の別の例を示す説明図である。 図3に示したアドレス解析部の動作の別の例を示す説明図である。 第2の実施形態におけるスコア記憶部の概要を示す説明図である。 第3の実施形態におけるアドレス解析部の詳細を示すブロック図である。 第3の実施形態におけるメモリコントローラの動作の要部を示すフロー図である。 第3の実施形態におけるメモリコントローラおよびSDRAMの動作を示すタイミング図である。
符号の説明
ADA‥アドレス解析部;AIBF1、AIBF2‥アドレス情報バッファ;CAG‥コマンド/アドレス生成部;I/O‥入出力インタフェース;MCNT‥メモリコントローラ;MHD‥ミスヒット判定回路;MST1、MST2‥マスタコントローラ;PERI‥周辺回路;PREAC‥オールバンクプリチャージ制御回路;RDBF1、RDBF2‥リードデータバッファ;RDC1、DRC2‥リードデータ制御部;REQG‥要求生成部;SBUS‥システムバス;SCR‥スコア記憶部;SYS‥システム;TADJ‥タイミング調整部;WDBF1、WDBF2‥ライトデータバッファ;WDC1、WDC2‥ライトデータ制御部

Claims (10)

  1. 複数のページを各々有する複数のバンクで構成される半導体メモリをアクセスするメモリコントローラであって、
    アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
    前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット/ページミスを判定するとともに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドに応じたアクセス効率を示すスコアであって、アクセスアドレスが示すバンクに対応するスコアを求め、前記スコアの合計値によりアクセス効率が向上すると判定したときに、オールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするメモリコントローラ。
  2. 請求項1記載のメモリコントローラにおいて、
    前記アドレス解析部は、前記要求保持部に保持された複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、2番目以降の複数のアクセスアドレスに対応する各バンクのページヒット/ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とするメモリコントローラ。
  3. 請求項2記載のメモリコントローラにおいて、
    前記アドレス解析部は、2番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示す前記スコアを求め、前記スコアはサイクルが減るときに相対的に大きく、前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とするメモリコントローラ。
  4. 請求項3記載のメモリコントローラにおいて、
    前記バンクの状態に対応する前記スコアをプログラム可能に記憶するスコア記憶部を備え、
    前記アドレス解析部は、前記スコア記憶部に記憶されている前記スコアを参照することで、前記スコアの合計と前記基準値とを比較することを特徴とするメモリコントローラ。
  5. 請求項2記載のメモリコントローラにおいて、
    前記アドレス解析部は、オールバンクプリチャージコマンドを、先頭のアクセスアドレスに対応するバンクのアクティブコマンドの前に出力することを特徴とするメモリコントローラ。
  6. 請求項1記載のメモリコントローラにおいて、
    前記アドレス解析部は、オールバンクプリチャージコマンドを出力した後、前記各アクセスアドレスに対応するアクティブコマンドとリードまたはライトコマンドとの間にコマンドを挿入可能な空きサイクルが存在するときに、2番目以降の複数のアクセスアドレスに対応するバンクの少なくともいずれかをアクティブにするためにアクティブコマンドを前記空きサイクルに対応して出力することを特徴とするメモリコントローラ。
  7. 複数のページを各々有する複数のバンクで構成される半導体メモリのアクセス制御方法であって、
    アクセスするメモリセルを示すアクセスアドレスを含み、システムコントローラから供給されるアクセス要求を順次に保持し、
    保持している複数のアクセスアドレスの各々に対応するバンクのページヒット/ページミスを判定し、
    全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドに応じたアクセス効率を示すスコアであって、アクセスアドレスが示すバンクに対応するスコアを求め、前記スコアの合計値によりアクセス効率が向上すると判定したときに、オールバンクプリチャージコマンドを出力することを特徴とすることを特徴とする半導体メモリのアクセス制御方法。
  8. 請求項7記載の半導体メモリのアクセス制御方法において、
    保持している複数のアクセスアドレスのうち先頭のアクセスアドレスに対応するバンクのページがページミスのとき、2番目以降の複数のアクセスアドレスに対応する各バンクのページヒット/ページミスに応じて、オールバンクプリチャージコマンドを出力するか否かを判定することを特徴とする半導体メモリのアクセス制御方法。
  9. 請求項8記載の半導体メモリのアクセス制御方法において、
    2番目以降の複数のアクセスアドレス毎にオールバンクプリチャージコマンドを出力するときに、アクセスに必要なサイクルが減るか否かを示す前記スコアを求め、前記スコアはサイクルが減るときに相対的に大きく、
    前記スコアの合計が予め設定された基準値を超える場合にオールバンクプリチャージコマンドを出力することを特徴とする半導体メモリのアクセス制御方法。
  10. 複数のページを各々有する複数のバンクで構成される半導体メモリと、前記半導体メモリをアクセスするためのアクセス要求を出力する少なくとも1つのシステムコントローラと、前記アクセス要求を前記半導体メモリに出力するメモリコントローラとを備えたシステムであって、
    前記メモリコントローラは、
    アクセスするメモリセルを示すアクセスアドレスを含み、前記システムコントローラから供給されるアクセス要求を順次に保持する要求保持部と、
    前記要求保持部に保持された複数のアクセスアドレスを受け、前記各アクセスアドレスに対応するバンクのページヒット/ページミスを判定するとともに、全てのバンクのプリチャージ動作を実行するオールバンクプリチャージコマンドに応じたアクセス効率を示すスコアであって、アクセスアドレスが示すバンクに対応するスコアを求め、前記スコアの合計値によりアクセス効率が向上すると判定したときに、オールバンクプリチャージコマンドを出力するアドレス解析部とを備えていることを特徴とするシステム。
JP2007045233A 2007-02-26 2007-02-26 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム Expired - Fee Related JP5034551B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007045233A JP5034551B2 (ja) 2007-02-26 2007-02-26 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
KR1020080009057A KR100914017B1 (ko) 2007-02-26 2008-01-29 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템
CN2008100059067A CN101256827B (zh) 2007-02-26 2008-02-13 存储器控制器、用于存取半导体存储器的控制方法和***
US12/037,541 US8069303B2 (en) 2007-02-26 2008-02-26 Method and apparatus for controlling memory precharge operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007045233A JP5034551B2 (ja) 2007-02-26 2007-02-26 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム

Publications (2)

Publication Number Publication Date
JP2008210088A JP2008210088A (ja) 2008-09-11
JP5034551B2 true JP5034551B2 (ja) 2012-09-26

Family

ID=39717228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007045233A Expired - Fee Related JP5034551B2 (ja) 2007-02-26 2007-02-26 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム

Country Status (4)

Country Link
US (1) US8069303B2 (ja)
JP (1) JP5034551B2 (ja)
KR (1) KR100914017B1 (ja)
CN (1) CN101256827B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102405466B (zh) * 2009-04-24 2014-09-03 富士通株式会社 存储控制装置及其控制方法
JP5393405B2 (ja) * 2009-11-05 2014-01-22 キヤノン株式会社 メモリ制御回路
US8615638B2 (en) * 2010-10-08 2013-12-24 Qualcomm Incorporated Memory controllers, systems and methods for applying page management policies based on stream transaction information
CN102609378B (zh) * 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US9728245B2 (en) * 2015-02-28 2017-08-08 Intel Corporation Precharging and refreshing banks in memory device with bank group architecture
JP6611011B2 (ja) * 2016-08-23 2019-11-27 日本電信電話株式会社 通信用入出力装置
CN111459414B (zh) * 2020-04-10 2023-06-02 上海兆芯集成电路有限公司 存储器调度方法及存储器控制器
CN113889157A (zh) * 2020-07-02 2022-01-04 华邦电子股份有限公司 存储装置及其连续读写方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08255107A (ja) * 1994-11-29 1996-10-01 Toshiba Corp ディスプレイコントローラ
JPH09237490A (ja) * 1996-03-01 1997-09-09 Toshiba Corp メモリ制御方法
JPH09288614A (ja) * 1996-04-22 1997-11-04 Mitsubishi Electric Corp 半導体集積回路装置、半導体記憶装置およびそのための制御回路
JPH11143770A (ja) * 1997-11-10 1999-05-28 Nec Corp 多バンクdram制御装置
JP3718599B2 (ja) * 1998-12-28 2005-11-24 富士通株式会社 キャッシュ装置、メモリ制御システムおよび方法、記録媒体
DE60009355T2 (de) * 2000-04-03 2005-02-24 Advanced Micro Devices, Inc., Sunnyvale Busbrücke mit einer speichersteuerung mit verbessertem speicheranforderungsarbitrierungsmechanismus
JP3918145B2 (ja) * 2001-05-21 2007-05-23 株式会社ルネサステクノロジ メモリコントローラ
US6615326B1 (en) * 2001-11-09 2003-09-02 Lsi Logic Corporation Methods and structure for sequencing of activation commands in a high-performance DDR SDRAM memory controller
US6661721B2 (en) * 2001-12-13 2003-12-09 Infineon Technologies Ag Systems and methods for executing precharge commands using posted precharge in integrated circuit memory devices with memory banks each including local precharge control circuits
US7519762B2 (en) * 2003-09-30 2009-04-14 Intel Corporation Method and apparatus for selective DRAM precharge
US7299324B2 (en) * 2003-11-05 2007-11-20 Denali Software, Inc. Reactive placement controller for interfacing with banked memory storage
KR100631165B1 (ko) * 2004-05-06 2006-10-02 주식회사 하이닉스반도체 칩 면적을 줄인 반도체메모리소자 및 그의 구동방법

Also Published As

Publication number Publication date
US20080209105A1 (en) 2008-08-28
KR100914017B1 (ko) 2009-08-28
JP2008210088A (ja) 2008-09-11
CN101256827A (zh) 2008-09-03
CN101256827B (zh) 2012-05-30
KR20080079187A (ko) 2008-08-29
US8069303B2 (en) 2011-11-29

Similar Documents

Publication Publication Date Title
JP5034551B2 (ja) メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
US6766385B2 (en) Device and method for maximizing performance on a memory interface with a variable number of channels
US10957413B2 (en) Shared error check and correct logic for multiple data banks
JP5103663B2 (ja) メモリ制御装置
KR100816053B1 (ko) 셀프 카피 기능을 가지는 메모리 장치, 메모리 시스템 및듀얼 포트 메모리 장치
US20060133173A1 (en) Method, apparatus, and system for active refresh management
US20050144369A1 (en) Address space, bus system, memory controller and device system
US6340973B1 (en) Memory control unit and memory control method and medium containing program for realizing the same
US20120057421A1 (en) Devices and system providing reduced quantity of interconnections
KR102308778B1 (ko) 디스터브 로우를 케어하는 메모리 장치 및 그 동작방법
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
JP4229958B2 (ja) メモリ制御システムおよびメモリ制御回路
JPH11224221A (ja) メモリ制御装置および方法
JP4744777B2 (ja) 分割されたセルアレーを有する半導体メモリ装置及びこの装置のメモリセルアクセス方法
JP4964091B2 (ja) メモリアクセス方法およびメモリ制御装置
US20020136079A1 (en) Semiconductor memory device and information processing system
JP5204777B2 (ja) メモリ装置及びその制御方法
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
JP2000268566A (ja) 同期型半導体記憶装置
US20070121398A1 (en) Memory controller capable of handling precharge-to-precharge restrictions
JP5226161B2 (ja) 半導体記憶装置および情報処理システム
JP2004206850A (ja) 半導体記憶装置
US20240168896A1 (en) Memory controller, electric system including the same and method of controlling memory access
JP2010061498A (ja) メモリ制御装置、半導体試験装置およびメモリ制御方法
JP2009237980A (ja) マルチポートメモリおよび情報処理システム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080728

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120427

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: 20120605

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120618

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5034551

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees