KR100914017B1 - 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템 - Google Patents

메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템 Download PDF

Info

Publication number
KR100914017B1
KR100914017B1 KR1020080009057A KR20080009057A KR100914017B1 KR 100914017 B1 KR100914017 B1 KR 100914017B1 KR 1020080009057 A KR1020080009057 A KR 1020080009057A KR 20080009057 A KR20080009057 A KR 20080009057A KR 100914017 B1 KR100914017 B1 KR 100914017B1
Authority
KR
South Korea
Prior art keywords
access
bank
command
address
page
Prior art date
Application number
KR1020080009057A
Other languages
English (en)
Other versions
KR20080079187A (ko
Inventor
소지 하라
Original Assignee
후지쯔 마이크로일렉트로닉스 가부시키가이샤
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 후지쯔 마이크로일렉트로닉스 가부시키가이샤 filed Critical 후지쯔 마이크로일렉트로닉스 가부시키가이샤
Publication of KR20080079187A publication Critical patent/KR20080079187A/ko
Application granted granted Critical
Publication of KR100914017B1 publication Critical patent/KR100914017B1/ko

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)

Abstract

본 발명은 복수의 뱅크의 프리차지 동작을 효율적으로 실행하여, 반도체 메모리의 액세스 효율을 향상시키는 것을 과제로 한다.
메모리 컨트롤러는 액세스 어드레스를 포함하는 액세스 요구를 순차적으로 유지한다. 반도체 메모리는 복수의 페이지를 각각 갖는 복수의 뱅크로 구성된다. 메모리 컨트롤러는 유지하고 있는 액세스 어드레스의 각각에 대응하는 뱅크의 페이지 히트/페이지 미스를 판정한다. 또한, 메모리 컨트롤러는 연속하는 액세스 어드레스를 해석함으로써 액세스 효율이 향상한다고 판정했을 때에, 모든 뱅크의 프리차지 동작을 실행하는 올 뱅크 프리차지 커맨드를 출력한다. 1회의 올 뱅크 프리차지 커맨드에 의해, 복수의 뱅크를 프리차지할 수 있기 때문에, 커맨드를 삽입할 빈 사이클이 적은 경우에도 뱅크의 상태에 따라서, 커맨드를 효율적으로 반도체 메모리에 공급할 수 있다.

Description

메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및 시스템{MEMORY CONTROLLER, ACCESS CONTROL METHOD OF SEMICONDUCTOR MEMORY, AND SYSTEM}
본 발명은 반도체 메모리의 액세스를 제어하는 메모리 컨트롤러 및 시스템에 관한 것이다.
SDRAM 등의 반도체 메모리는, 액세스 효율을 향상시키기 위해서 독립적으로 동작 가능한 복수의 뱅크를 갖는 경우가 많다. 또한, 이러한 종류의 반도체 메모리에서는, 메모리 셀을 액세스하기 위하여, 액티브 커맨드와, 리드 또는 라이트 커맨드와, 프리차지 커맨드가 필요하다. 액티브 커맨드는 워드선을 선택하고, 선택된 워드선에 접속된 메모리 셀에 유지되어 있는 데이터를 센스 앰프에 래치(latch)하는 커맨드이다. 리드 커맨드는 센스 앰프에 래치되어 있는 데이터를 판독하는 커맨드이다. 라이트 커맨드는 메모리 셀에 데이터를 기록하기 위하여, 센스 앰프에 래치되어 있는 데이터를 재기록하는 커맨드이다. 프리차지 커맨드는 메모리 셀을 센스 앰프에 접속하는 비트선을 소정의 전압으로 리셋하는 커맨드이다.
일반적으로, 센스 앰프에 한번에 래치되는 데이터의 단위는 페이지라고 칭해지고 있다. 메모리 셀이 1비트의 데이터를 기억하는 경우, 1페이지의 비트 수는 하 나의 워드선에 접속된 메모리 셀의 수와 동일하다. 센스 앰프에 래치되어 있는 데이터를 판독하거나, 또는 재기록하는 경우, 리드 커맨드 또는 라이트 커맨드를 메모리에 공급하는 것만으로 충분하다. 이에 비해서, 센스 앰프에 래치되어 있지 않은 데이터를 판독하거나, 또는 재기록하는 경우, 리드 커맨드 또는 라이트 커맨드 앞에 액티브 커맨드를 공급할 필요가 있다. 센스 앰프가 다른 페이지의 데이터를 래치하고 있는 경우, 액티브 커맨드 앞에 또한 프리차지 커맨드를 공급할 필요가 있다.
리드 커맨드 또는 라이트 커맨드만으로, 데이터가 입출력 가능한 상태는, 페이지 히트라고 칭해지고 있다. 이에 비해서, 리드 커맨드 또는 라이트 커맨드 앞에 액티브 커맨드가 필요한 상태는, 페이지 미스라고 칭해진다. 반도체 메모리가 복수의 뱅크를 갖는 경우, 페이지 히트 및 페이지 미스는 뱅크마다 판정된다.
종래, 액세스 시간을 단축하기 위하여, 어떤 뱅크의 페이지 미스가 판명되었을 때에, 그 뱅크의 프리차지 동작을, 다른 뱅크의 리드 동작 또는 라이트 동작 후에 실행하는 수법이 제안되어 있다(예컨대, 특허 문헌 1 참조). 또한, 액세스 요구에 응답하여 어떤 뱅크에 액티브 커맨드 및 리드 커맨드를 공급할 때에, 다음 액세스 요구에 대응하는 뱅크가 페이지 미스인 경우, 페이지 미스의 뱅크에의 프리차지 커맨드를, 리드 커맨드 앞에 공급하는 수법이 제안되어 있다(예컨대, 특허 문헌 2 참조).
[특허 문헌 1] 일본 특허 공개 평성 제9-237490호 공보
[특허 문헌 2] 일본 특허 공개 제2002-342159호 공보
특허 문헌 1의 수법에서는, 페이지 미스의 뱅크에서는, 액세스 요구로부터 액세스를 개시하기까지의 시간이 길어진다. 따라서, 복수의 뱅크로 구성되는 메모리 전체에서는, 액세스 효율은 향상하지 않는다. 특허 문헌 2의 수법에서는, 액티브 커맨드와 리드 커맨드 사이에의 프리차지 커맨드의 삽입은, 다음에 액세스되는 뱅크가 페이지 미스이며, 클록 사이클에 틈이 있는 경우에 항상 행해진다. 바꿔 말하면, 3번째 이후에 액세스되는 복수의 뱅크의 상태(페이지 히트 또는 페이지 미스)는, 프리차지 커맨드의 삽입의 판정에 사용되지 않는다. 이 때문에, 프리차지 커맨드는, 뱅크마다 하나씩 삽입할 필요가 있으며, 클록 사이클에 틈이 없는 경우에는 삽입할 수 없다. 이 결과, 액세스 효율을 충분히 향상시킬 수 없는 경우가 있다.
본 발명의 목적은, 복수의 뱅크의 프리차지 동작을 효율적으로 실행하여, 반도체 메모리의 액세스 효율을 향상시키는 것이다.
본 발명의 한 형태에서는, 반도체 메모리를 액세스하는 메모리 컨트롤러는 액세스하는 메모리 셀을 나타내는 액세스 어드레스를 포함하고, 시스템 컨트롤러로부터 공급되는 액세스 요구를 순차적으로 유지한다. 반도체 메모리는 복수의 페이지를 각각 갖는 복수의 뱅크로 구성된다. 메모리 컨트롤러는 유지하고 있는 복수의 액세스 어드레스의 각각에 대응하는 뱅크의 페이지 히트/페이지 미스를 판정한다. 또한, 메모리 컨트롤러는, 복수의 액세스 어드레스를 해석함으로써 액세스 효율이 향상된다고 판정했을 때에, 모든 뱅크의 프리차지 동작을 실행하는 올 뱅크 프리차지 커맨드를 출력한다. 연속해서 공급되는 복수의 액세스 요구에 기초하여 올 뱅크 프리차지 커맨드를 출력할지 안 할지가 판정되기 때문에, 뱅크의 상태(페이지 히트/페이지 미스)에 따라서, 커맨드를 효율적으로 반도체 메모리에 공급할 수 있다. 또한, 1회의 올 뱅크 프리차지 커맨드에 의해, 복수의 뱅크를 프리차지할 수 있기 때문에, 커맨드를 삽입할 빈 사이클이 적은 경우에도 모든 뱅크를 프리차지할 수 있으며, 액세스 효율을 향상시킬 수 있다.
예컨대, 올 뱅크 프리차지 커맨드는, 유지하고 있는 복수의 액세스 어드레스 중 선두의 액세스 어드레스에 대응하는 뱅크의 페이지가 페이지 미스일 때, 2번째 이후의 복수의 액세스 어드레스에 대응하는 각 뱅크의 페이지 히트/페이지 미스에 따라서 출력된다. 바꿔 말하면, 올 뱅크 프리차지 커맨드는, 먼저 액세스되는 뱅크의 프리차지가 필요할 때에, 2번째 이후에 액세스되는 각 뱅크의 상태에 따라서 출력된다. 이에 따라, 먼저 액세스되는 뱅크가 페이지 미스일 때에도, 커맨드를 효율적으로 반도체 메모리에 공급할 수 있다.
예컨대, 올 뱅크 프리차지 커맨드를 출력할지 안 할지는, 2번째 이후의 복수의 액세스 어드레스마다 붙여지는 스코어의 합계에 따라서 판정된다. 여기에서, 스코어는 올 뱅크 프리차지 커맨드를 출력할 때에 액세스에 필요한 사이클이 감소하는지 아닌지를 나타낸다. 스코어는 사이클이 감소할 때에 상대적으로 크다. 올 뱅크 프리차지 커맨드는, 스코어의 합계가 미리 설정된 기준치를 넘는 경우에 출력된 다. 스코어에 의해 생성하는 커맨드를 관리함으로써, 올 뱅크 프리차지 커맨드를 출력할지 안 할지의 제어 논리를 간이하게 할 수 있다. 또한, 스코어를 프로그램 가능하게 기억함으로써, 스코어의 가중(weighting)을 용이하게 변경할 수 있으며, 올 뱅크 프리차지 커맨드를 출력하기 위한 판정 기준을 용이하게 변경할 수 있다.
본 발명에서는, 복수의 뱅크의 프리차지 동작을 효율적으로 실행할 수 있으며, 반도체 메모리의 액세스 효율을 향상시킬 수 있다.
이하, 본 발명의 실시형태를 도면을 사용하여 설명한다. 신호가 전달되는 신호선에는, 신호명과 동일한 부호를 사용한다. 선두에 "/"가 붙어 있는 신호는, 음논리를 나타내고 있다.
도 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)로서 하나의 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회의 액세스 요구로 연속해서 입력 또는 출력되는 데이터의 워드수이다. 버스트 타입은 복수의 메모리 영역에 걸쳐서 버스트 액세스를 실행할지, 하나의 메모리 영역 내에서 순회적으로 버스트 액세스를 실행할지를 나타낸다.
요구 생성부(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)는 로우 어드레스 및 칼럼 어드레스에 공통이다(어드레스 멀티플렉스 방식).
이 실시형태에서는, 예컨대, 어드레스 정보 버퍼(AIBF1)에 유지되어 있는 액세스 요구 중, 1번째로부터 4번째(n=1, 2, 3, 4)의 액세스 요구에 포함되는 액세스 어드레스(AD)(AD1-4)가, 어드레스 해석부(ADA)에 공급된다. 또한, 어드레스 해석부(ADA)에 공급되는 액세스 어드레스(AD)는, 뱅크 어드레스 및 로우 어드레스만으로 충분하다.
또한, 도 1에 도시한 커맨드/어드레스 생성부(CAG)는, 액세스 요구에 의해 액세스되는 뱅크의 상태가 페이지 히트일 때, 리드/라이트 정보(RW)에 따라서 리드 커맨드 또는 라이트 커맨드를 출력한다. 커맨드/어드레스 생성부(CAG)는, 액세스 요구에 의해 액세스되는 뱅크의 상태가 페이지 미스이며 액티브 상태일 때, 리드/라이트 정보(RW)에 따라서 프리차지 커맨드(PRE)(또는 올 뱅크 프리차지 커맨드(PREA))와 액티브 커맨드(ACT)와 리드 커맨드 또는 라이트 커맨드를 출력한다. 또한, 커맨드/어드레스 생성부(CAG)는, 액세스 요구에 의해 액세스되는 뱅크의 상태가 페이지 미스이며 아이들(idle) 상태(비액티브 상태)일 때, 리드/라이트 정보(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)에 올 뱅크 프리차지 커맨드(PREA0)를 출력한다. 커맨드/어드레스 생성부(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)의 액티브 커맨드(A CT) 및 리드 커맨드(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 실시형태에 비해서 스코어의 가중이 변경되어 있다. 비교부(C0MP)에서 비교되는 기준치는 "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에 탑재되는 거시적인 것이어도 좋다.
상술한 실시형태에서는, 비교부(C0MP)에서 비교되는 기준치를 "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)
복수의 페이지를 각각 갖는 복수의 뱅크로 구성되는 반도체 메모리와, 상기 반도체 메모리를 액세스하기 위한 액세스 요구를 출력하는 적어도 하나의 시스템 컨트롤러와, 상기 액세스 요구를 상기 반도체 메모리에 출력하는 메모리 컨트롤러를 구비한 시스템으로서,
상기 메모리 컨트롤러는,
액세스하는 메모리 셀을 나타내는 액세스 어드레스를 포함하고, 상기 시스템 컨트롤러로부터 공급되는 액세스 요구를 순차적으로 유지하는 요구 유지부와,
상기 요구 유지부에 유지된 복수의 액세스 어드레스를 받아서, 상기 각 액세스 어드레스에 대응하는 뱅크의 페이지 히트/페이지 미스를 판정하며, 상기 복수의 액세스 어드레스를 해석함으로써 액세스 효율이 향상한다고 판정했을 때에, 모든 뱅크의 프리차지 동작을 실행하는 올 뱅크 프리차지 커맨드를 출력하는 어드레스 해석부를 구비하고 있는 것을 특징으로 하는 시스템.
(부기 15)
부기 14에 기재된 시스템에 있어서,
상기 어드레스 해석부는, 상기 요구 유지부에 유지된 복수의 액세스 어드레스 중 선두의 액세스 어드레스에 대응하는 뱅크의 페이지가 페이지 미스일 때, 2번째 이후의 복수의 액세스 어드레스에 대응하는 각 뱅크의 페이지 히트/페이지 미스에 따라서, 올 뱅크 프리차지 커맨드를 출력할지의 여부를 판정하는 것을 특징으로 하는 시스템.
(부기 16)
부기 15에 기재된 시스템에 있어서,
상기 어드레스 해석부는, 2번째 이후의 복수의 액세스 어드레스마다 올 뱅크 프리차지 커맨드를 출력할 때에, 액세스에 필요한 사이클이 감소하는지의 여부를 나타내는 스코어를 구하며, 상기 스코어는 사이클이 감소할 때에 상대적으로 크고, 상기 스코어의 합계가 미리 설정된 기준치를 넘는 경우에 올 뱅크 프리차지 커맨드를 출력하는 것을 특징으로 하는 시스템.
(부기 17)
부기 16에 기재된 시스템에 있어서,
상기 뱅크의 상태에 대응하는 상기 스코어를 프로그램 가능하게 기억하는 스코어 기억부를 구비하고,
상기 어드레스 해석부는, 상기 스코어 기억부에 기억되어 있는 스코어를 참조함으로써, 스코어의 합계와 상기 기준치를 비교하는 것을 특징으로 하는 시스템.
(부기 18)
부기 15에 기재된 시스템에 있어서,
상기 어드레스 해석부는, 올 뱅크 프리차지 커맨드를, 선두의 액세스 어드레스에 대응하는 뱅크의 액티브 커맨드 앞에 출력하는 것을 특징으로 하는 시스템.
(부기 19)
부기 15에 기재된 시스템에 있어서,
상기 어드레스 해석부는, 올 뱅크 프리차지 커맨드를 출력하지 않는다고 판정했을 때에, 선두의 액세스 어드레스에 대응하는 뱅크에만 프리차지 동작을 실행하는 프리차지 커맨드를 출력하는 것을 특징으로 하는 시스템.
(부기 20)
부기 14에 기재된 시스템에 있어서,
상기 어드레스 해석부는, 올 뱅크 프리차지 커맨드를 출력한 후, 상기 각 액세스 어드레스에 대응하는 액티브 커맨드와 리드 또는 라이트 커맨드 사이에 커맨드를 삽입 가능한 빈 사이클이 존재할 때에, 2번째 이후의 복수의 액세스 어드레스에 대응하는 뱅크 중 적어도 어느 하나를 액티브하게 하기 위하여 액티브 커맨드를 상기 빈 사이클에 대응해서 출력하는 것을 특징으로 하는 시스템.
이상, 본 발명에 대하여 상세히 설명해 왔으나, 상기한 실시형태 및 그 변형예는 발명의 일례에 불과하며, 본 발명은 이것에 한정되는 것은 아니다. 본 발명을 일탈하지 않는 범위에서 변형 가능한 것은 분명하다.
본 발명은 반도체 메모리의 액세스를 제어하는 메모리 컨트롤러 및 시스템에 적용 가능하다.
도 1은 본 발명의 제1 실시형태를 도시하는 블록도이다.
도 2는 도 1에 도시한 어드레스 정보 버퍼의 상세한 것을 도시하는 블록도이다.
도 3은 도 1에 도시한 어드레스 해석부의 상세한 것을 도시하는 블록도이다.
도 4는 도 1에 도시한 스코어 기억부의 개요를 도시하는 설명도이다.
도 5는 도 1에 도시한 SDRAM의 상세한 것을 도시하는 블록도이다.
도 6은 제1 실시형태에 있어서의 메모리 컨트롤러의 동작을 도시하는 플로우도이다.
도 7은 도 3에 도시한 어드레스 해석부의 동작의 일례를 도시하는 설명도이다.
도 8은 도 7에 대응하는 메모리 컨트롤러 및 SDRAM의 동작을 도시하는 타이밍도이다.
도 9는 도 3에 도시한 어드레스 해석부의 동작의 다른 예를 도시하는 설명도이다.
도 10은 도 9에 대응하는 메모리 컨트롤러 및 SDRAM의 동작을 도시하는 타이밍도이다.
도 11은 도 3에 도시한 어드레스 해석부의 동작의 다른 예를 도시하는 설명도이다.
도 12는 도 3에 도시한 어드레스 해석부의 동작의 다른 예를 도시하는 설명 도이다.
도 13은 도 3에 도시한 어드레스 해석부의 동작의 다른 예를 도시하는 설명도이다.
도 14는 제2 실시형태에 있어서의 스코어 기억부의 개요를 도시하는 설명도이다.
도 15는 제3 실시형태에 있어서의 어드레스 해석부의 상세한 것을 도시하는 블록도이다.
도 16은 제3 실시형태에 있어서의 메모리 컨트롤러의 동작의 주요부를 도시하는 플로우도이다.
도 17은 제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. 복수의 페이지를 각각 갖는 복수의 뱅크로 구성되는 반도체 메모리와, 상기반도체 메모리를 액세스하기 위한 액세스 요구를 출력하는 적어도 하나의 시스템 컨트롤러와, 상기 액세스 요구를 상기 반도체 메모리에 출력하는 메모리 컨트롤러를 구비한 시스템으로서,
    상기 메모리 컨트롤러는,
    액세스하는 메모리 셀을 나타내는 액세스 어드레스를 포함하고, 상기 시스템 컨트롤러로부터 공급되는 액세스 요구를 순차적으로 유지하는 요구 유지부와,
    상기 요구 유지부에 유지된 복수의 액세스 어드레스를 받아서, 상기 각 액세스 어드레스에 대응하는 뱅크의 페이지 히트/페이지 미스를 판정하고, 상기 복수의 액세스 어드레스를 해석함으로써 액세스 효율이 향상한다고 판정했을 때에, 모든 뱅크의 프리차지 동작을 실행하는 올 뱅크 프리차지 커맨드를 출력하는 어드레스 해석부
    를 구비하고 있는 것을 특징으로 하는 시스템.
KR1020080009057A 2007-02-26 2008-01-29 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템 KR100914017B1 (ko)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
KR20080079187A KR20080079187A (ko) 2008-08-29
KR100914017B1 true KR100914017B1 (ko) 2009-08-28

Family

ID=39717228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080009057A KR100914017B1 (ko) 2007-02-26 2008-01-29 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템

Country Status (4)

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

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 华邦电子股份有限公司 存储装置及其连续读写方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100260288B1 (ko) * 1996-04-22 2000-07-01 다니구찌 이찌로오 동일한 반도체칩상에 프로세서를 집적화하는데 적합한 멀티뱅크 dram
JP2002342159A (ja) * 2001-05-21 2002-11-29 Hitachi Ltd メモリコントローラ
KR20020089428A (ko) * 2000-04-03 2002-11-29 어드밴스드 마이크로 디바이시즈, 인코포레이티드 개선된 메모리 요청 중재 메커니즘을 갖는 메모리컨트롤러를 포함하는 버스 브릿지

Family Cites Families (9)

* 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 メモリ制御方法
JPH11143770A (ja) * 1997-11-10 1999-05-28 Nec Corp 多バンクdram制御装置
JP3718599B2 (ja) * 1998-12-28 2005-11-24 富士通株式会社 キャッシュ装置、メモリ制御システムおよび方法、記録媒体
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 주식회사 하이닉스반도체 칩 면적을 줄인 반도체메모리소자 및 그의 구동방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100260288B1 (ko) * 1996-04-22 2000-07-01 다니구찌 이찌로오 동일한 반도체칩상에 프로세서를 집적화하는데 적합한 멀티뱅크 dram
KR20020089428A (ko) * 2000-04-03 2002-11-29 어드밴스드 마이크로 디바이시즈, 인코포레이티드 개선된 메모리 요청 중재 메커니즘을 갖는 메모리컨트롤러를 포함하는 버스 브릿지
JP2002342159A (ja) * 2001-05-21 2002-11-29 Hitachi Ltd メモリコントローラ

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100914017B1 (ko) 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템
KR100908760B1 (ko) 다중 내부 데이터 버스 및 메모리 뱅크 인터리빙을 갖는방법 및 메모리 장치
US5889714A (en) Adaptive precharge management for synchronous DRAM
US7277996B2 (en) Modified persistent auto precharge command protocol system and method for memory devices
US6340973B1 (en) Memory control unit and memory control method and medium containing program for realizing the same
US8369168B2 (en) Devices and system providing reduced quantity of interconnections
JP5103663B2 (ja) メモリ制御装置
US11646092B2 (en) Shared error check and correct logic for multiple data banks
CN108139994B (zh) 内存访问方法及内存控制器
US20060059320A1 (en) Memory control device
JP4229958B2 (ja) メモリ制御システムおよびメモリ制御回路
JPH11224221A (ja) メモリ制御装置および方法
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
WO2005101421A1 (en) Addressing data within dynamic random access memory
US20070121398A1 (en) Memory controller capable of handling precharge-to-precharge restrictions
JP2010061498A (ja) メモリ制御装置、半導体試験装置およびメモリ制御方法
JP2004206850A (ja) 半導体記憶装置
US6141727A (en) Device and method for controlling data storage device
JP2010033533A (ja) メモリモジュール、および、メモリ用補助モジュール
JP2000242544A (ja) メモリ制御装置及びダイレクトメモリアクセス制御装置
JP4383495B2 (ja) 半導体集積回路
TW321773B (ko)
JP4772975B2 (ja) 半導体記憶装置
JPS6235146B2 (ko)
JP2010198686A (ja) 半導体メモリ

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120802

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140808

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190808

Year of fee payment: 11