KR20160116533A - 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법 - Google Patents

리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법 Download PDF

Info

Publication number
KR20160116533A
KR20160116533A KR1020150044390A KR20150044390A KR20160116533A KR 20160116533 A KR20160116533 A KR 20160116533A KR 1020150044390 A KR1020150044390 A KR 1020150044390A KR 20150044390 A KR20150044390 A KR 20150044390A KR 20160116533 A KR20160116533 A KR 20160116533A
Authority
KR
South Korea
Prior art keywords
bank
refresh
banks
row
memory
Prior art date
Application number
KR1020150044390A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020150044390A priority Critical patent/KR20160116533A/ko
Priority to TW105107995A priority patent/TW201635152A/zh
Priority to CN201610186832.6A priority patent/CN106024052A/zh
Publication of KR20160116533A publication Critical patent/KR20160116533A/ko

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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40622Partial refresh of memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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 

Landscapes

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

Abstract

뱅크별 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법이 개시된다. 상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 메모리 콘트롤러의 동작방법에 있어서, 상기 메모리 콘트롤러는 다수 개의 뱅크들에 대한 억세스 동작을 관리하고, 어드레스를 분석함에 의해 억세스 요청된 뱅크를 판단하는 단계와, 상기 판단 결과에 기반하여, 억세스될 것으로 예측되는 하나 이상의 뱅크들을 선택하는 단계와, 상기 선택 결과에 따라 상기 뱅크들에 대한 리프레쉬 순서를 설정하는 단계 및 상기 설정된 순서에 따라 뱅크들에 대한 리프레쉬 동작을 제어하는 단계를 구비하는 것을 특징으로 한다.

Description

리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법{MEMORY CONTROLLER AND MEMORY SYSTEM MANAGING REFRESH OPERATION AND OPERATING METHOD THEREOF}
본 발명은 메모리 콘트롤러에 관한 것으로서, 자세하게는 뱅크별 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법에 관한 것이다.
고성능 전자 시스템에 널리 사용되고 있는 메모리 장치는 그 용량 및 속도가 증가하고 있다. 메모리 장치의 일예로서 DRAM은 휘발성 메모리(volatile-memory)로서, 커패시터에 저장되어 있는 전하(charge)에 의해 데이터를 판정하는 메모리이다.
메모리 콘트롤러는 각종 커맨드 및 어드레스를 메모리 장치로 제공하여 메모리 동작을 포함한 각종 동작들을 제어한다. 메모리 장치에 구비되는 메모리 셀 어레이는 다수 개의 메모리 영역들(예컨대, 뱅크들)을 포함할 수 있으며, 데이터의 안정적인 보유를 위해 수행되는 리프레쉬 동작은 뱅크 별로 수행될 수 있다. 리프레쉬 동작에 의해 기록/독출 등의 메모리 동작에 영향을 미칠 수 있으며, 이로 인해 메모리 시스템의 성능이 저하되는 것을 방지할 수 있는 방안이 요구된다.
본 발명의 일 목적은, 데이터 억세스가 수행될 메모리 영역과 리프레쉬 동작이 수행될 메모리 영역이 매칭됨에 의해 메모리 시스템의 성능이 저하될 가능성을 감소하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 메모리 콘트롤러의 동작방법에 있어서, 상기 메모리 콘트롤러는 다수 개의 뱅크들에 대한 억세스 동작을 관리하고, 어드레스를 분석함에 의해 억세스 요청된 뱅크를 판단하는 단계와, 상기 판단 결과에 기반하여, 억세스될 것으로 예측되는 하나 이상의 뱅크들을 선택하는 단계와, 상기 선택 결과에 따라 상기 뱅크들에 대한 리프레쉬 순서를 설정하는 단계 및 상기 설정된 순서에 따라 뱅크들에 대한 리프레쉬 동작을 제어하는 단계를 구비하는 것을 특징으로 한다.
일 실시예로서, 상기 하나 이상의 뱅크들을 선택하는 단계는, 상기 다수 개의 뱅크들 중 리프레쉬가 수행되지 않은 뱅크들 중에서, 상기 판단 결과에 기반하여 하나 이상의 뱅크들을 선택하는 것을 특징으로 한다.
또한 일 실시예로서, 상기 리프레쉬 순서를 설정하는 단계는, 다음에 억세스될 것으로 예측된 하나 이상의 뱅크들의 리프레쉬가 다른 뱅크들에 비해 늦게 수행되도록 리프레쉬 순서를 설정하는 것을 특징으로 한다.
또한 일 실시예로서, 상기 리프레쉬 순서를 설정하는 단계는, 상기 선택 결과에 따라, 상기 다수 개의 뱅크들 중 리프레쉬가 수행되지 않은 뱅크들 사이의 리프레쉬 순서를 변동하는 것을 특징으로 한다.
또한 일 실시예로서, 상기 다수 개의 뱅크들 각각은 다수 개의 로우들을 포함하고, 상기 리프레쉬는 각각의 뱅크의 로우 단위로 수행되며, 상기 리프레쉬 순서를 설정하는 단계는, 상기 다수 개의 뱅크들의 어느 하나의 로우에 대한 리프레쉬 순서를 설정하는 것을 특징으로 한다.
한편, 본 발명의 다른 실시예에 따른 메모리 콘트롤러의 동작방법에 있어서, 상기 메모리 콘트롤러는 다수의 메모리 영역들을 관리하고, 상기 다수의 메모리 영역들 중 일부의 메모리 영역들에 대한 리프레쉬를 수행하는 단계와, 외부로부터 수신된 억세스 요청 및 이에 대응하는 어드레스를 수신하는 단계와, 상기 어드레스를 분석한 결과에 따라, 리프레쉬가 수행되지 않은 나머지 메모리 영역들에 대한 리프레쉬 순서를 변동하는 단계 및 상기 변동된 순서에 따라 상기 나머지 메모리 영역들에 대한 리프레쉬를 수행하는 단계를 구비하는 것을 특징으로 한다.
상기와 같은 본 발명의 실시예들에 따르면, 뱅크 별로 데이터 억세스 및 리프레쉬 동작을 관리함에 있어서, 데이터가 억세스될 메모리 영역과 리프레쉬 동작이 수행될 메모리 영역이 매칭될 가능성을 낮춤에 의해, 리프레쉬 동작이 데이터 억세스 동작에 미치는 영향을 감소하여 메모리 시스템의 성능을 향상할 수 있는 효과가 있다.
또한, 상기와 같은 본 발명의 실시예들에 따르면, 데이터 억세스 동작이 수행됨에 의해 리프레쉬 동작의 수행 타이밍이 늦추어지는 가능성을 감소함으로써, 메모리 장치의 데이터가 안정적으로 보유될 수 있도록 관리할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1에 도시된 메모리 콘트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 도 1에 도시된 메모리 장치의 일 구현 예를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 5a,b는 억세스 예측 동작의 일 예를 나타내는 블록도이다.
도 6은 뱅크별 리프레쉬 순서를 설정하는 일 예를 나타내는 블록도이다.
도 7 내지 도 10은 본 발명의 실시예에 따라 뱅크별 리프레쉬 순서를 나타내는 표이다.
도 11 및 도 12는 메모리 콘트롤러와 메모리 장치 사이에서의 신호 송수신 예를 나타내는 블록도이다.
도 13 및 도 14는 본 발명의 실시예에 따른 리프레쉬 동작의 일 예를 나타내는 파형도이다.
도 15a,b는 뱅크별 리프레쉬 순서를 설정하는 다른 예를 나타내는 블록도이다.
도 16a,b는 뱅크별 리프레쉬 순서를 설정하는 또 다른 예를 나타내는 블록도이다.
도 17은 본 발명의 다른 실시예에 따른 메모리 콘트롤러의 구현 예를 나타내는 블록도이다.
도 18a,b는 뱅크별 리프레쉬 순서를 설정하는 또 다른 예를 나타내는 블록도이다.
도 19는 본 발명의 다른 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 20은 본 발명의 실시예에 따른 메모리 콘트롤러 및 메모리 장치를 포함하는 데이터 처리 시스템을 나타내는 도면이다.
도 21은 본 발명의 일 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 22는 본 발명의 일실시예에 따른 메모리 시스템을 장착하는 컴퓨팅 시스템을 나타내는 블록도이다.
이하에서는 본 발명의 바람직한 실시예가, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 철저한 이해를 제공할 의도 외에는 다른 의도 없이, 첨부한 도면들을 참조로 하여 상세히 설명될 것이다.
메모리 장치로서 DRAM(Dynamic Random Access Memory)은 유한 데이터 리텐션(Finite Data Retention) 특성을 가지므로, 정상적인 셀의 경우도 스펙(Spec)에서 정한 시간이 지나면 그 데이터의 유효성이 보장될 수 없다. 안정적인 데이터 보유를 위하여 리프레쉬 정책이 이용되고 있으며, 이에 따라 메모리 콘트롤러는 스펙(Spec) 값으로 설정되는 리프레쉬 주기마다 메모리 셀들이 리프레쉬되도록 커맨드 및/또는 어드레스를 DRAM으로 제공한다. 또한, DRAM은 자체적으로 셀프 리프레쉬 모드로 진입할 수 있으며, 셀프 리프레쉬 모드에서 DRAM은 메모리 콘트롤러로부터의 별도의 커맨드 수신없이 내부적으로 어드레스를 생성하여 메모리 셀들을 리프레쉬한다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템(10)을 나타내는 블록도이다. 도 1에 도시된 바와 같이, 메모리 시스템(10)은 메모리 콘트롤러(100) 및 메모리 장치(200)를 포함할 수 있다. 메모리 콘트롤러(100)는 각종 제어신호를 메모리 장치(200)로 제공하여 기록/독출 등의 메모리 동작을 제어한다. 예컨대, 메모리 콘트롤러(100)는 커맨드(CMD) 및 어드레스(ADD)를 메모리 장치(200)로 제공하여 메모리 셀 어레이(210)의 데이터(DATA)를 억세스한다. 커맨드(CMD)는 데이터 기록/독출 등 각종 메모리 동작에 관련된 커맨드를 포함할 수 있으며, 또한 메모리 장치(200)가 DRAM 셀을 포함하는 경우, DRAM에 관련된 고유한 각종 동작들, 예컨대 메모리 셀들을 리프레쉬 하기 위한 리프레쉬 커맨드 등을 포함할 수 있다.
메모리 셀 어레이(210)는 다수 개의 메모리 영역들을 포함할 수 있다. 상기 메모리 영역은 다양하게 정의될 수 있으며, 예컨대 메모리 셀 어레이(210)는 다수 개의 로우(Row)들, 다수 개의 뱅크(Bank)들, 다수 개의 랭크(Rank)들을 포함할 수 있다. 메모리 셀 어레이(210)가 다수 개의 뱅크(Bank)들을 포함하는 경우, 메모리 동작이나 리프레쉬 동작은 뱅크 별로 관리될 수 있으며, 이에 따라 메모리 콘트롤러(100)가 제공하는 어드레스(ADD)는 뱅크 어드레스(BA)를 포함할 수 있다.
메모리 콘트롤러(100)는 호스트(HOST)로부터의 요청에 따라 메모리 장치(200)를 억세스할 수 있다. 예컨대, 메모리 콘트롤러(100)는 억세스 종류에 관련된 요청(Req)과, 억세스 대상의 영역을 지시하는 어드레스(ADD_H, 이하 호스트로부터 제공되는 어드레스는 호스트 어드레스로 지칭함)를 수신할 수 있다. 메모리 콘트롤러(100)는 호스트로부터의 요청(Req) 및 호스트 어드레스(ADD_H)를 처리하고, 이에 기반하여 메모리 장치(200)로 커맨드(CMD) 및 어드레스(ADD)를 제공할 수 있다.
메모리 시스템(10)은, PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 호스트와 통신할 수 있다. 또한 메모리 시스템(10)와 호스트 사이의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나일 수 있다.
본 발명의 일 실시예에 따라, 메모리 콘트롤러(100)는 억세스 예측부(110) 및 리프레쉬 관리부(120)를 포함할 수 있다. 메모리 콘트롤러(100)는 호스트(HOST)로부터의 호스트 어드레스(ADD_H)를 분석하여(또는, 디코딩하여) 호스트(HOST)로부터 억세스 요청되는 메모리 영역을 판단할 수 있다. 이하에서는, 상기 메모리 영역으로서 뱅크(Bank)를 예로 들어 설명할 것이나, 본 발명의 실시예는 이에 국한될 필요는 없으며 다양한 종류의 메모리 영역 별로 메모리 동작 및/또는 리프레쉬 동작이 관리되어도 무방하다.
억세스 예측부(110)는 현재 억세스 요청된 뱅크에 기반하여, 이후에 억세스될 가능성이 높은 하나 이상의 뱅크들을 예측할 수 있다. 일 예로서, 호스트로부터 억세스 요청된 데이터를 포함하는 특정 사이즈의 데이터 정보는 적어도 두 개 이상의 뱅크들에 기록되거나 또는 이들로부터 독출될 수 있으며, 메모리 콘트롤러(100)는 상기 데이터 정보의 저장 상태를 나타내는 상태 정보를 저장할 수 있다. 억세스 예측부(110)는 호스트로부터 억세스 요청된 뱅크와 억세스 요청된 데이터를 포함하는 데이터 정보의 저장 상태를 고려함으로써, 이후에 억세스될 가능성이 높은 뱅크들을 예측하고, 예측 결과에 따라 하나 이상의 뱅크들을 선택할 수 있다.
한편, 본 발명의 실시예에 따라 데이터 예측 동작은 다른 다양한 방식으로도 수행될 수 있다. 예컨대, 뱅크별 데이터 억세스에 관련된 하나 이상의 테이블이 메모리 콘트롤러(100)에 구비되고, 데이터 억세스가 이루어질 때마다 상기 테이블에 저장된 정보가 업데이트될 수 있다. 일 실시예로서, 억세스 히스토리에 관련된 정보를 저장하는 테이블과, 뱅크 별로 억세스 가능성을 나타내는 정보를 저장하는 테이블이 메모리 콘트롤러(100)에 구비되고, 이후 데이터 억세스 요청이 수신될 때 상기 테이블들을 참조함에 의해 이후에 억세스 요청될 가능성이 높은 하나 이상의 뱅크들이 예측될 수 있을 것이다.
리프레쉬 관리부(120)는 메모리 장치(200)에 대한 리프레쉬 동작을 전반적으로 관리할 수 있다. 예컨대, 리프레쉬 관리부(120)는 리프레쉬 타이밍을 판별하고, 기 설정된 주기에 따라 메모리 셀 어레이(210)에 대한 리프레쉬 동작이 수행되도록 제어한다. 또한, 리프레쉬 관리부(120)는 억세스 예측부(110)로부터의 예측 결과에 기반하여 리프레쉬 동작을 제어할 수 있다. 예컨대, 현재 억세스 요청된 뱅크 및/또는 다음에 억세스될 것으로 예측되는 하나 이상의 뱅크들의 정보를 참조하여, 다수의 뱅크들에 대한 리프레쉬 동작의 순서를 설정할 수 있다.
메모리 셀 어레이(210)가 다수 개의 뱅크들을 포함하는 경우, 리프레쉬 동작은 뱅크 별로 관리될 수 있다. 예컨대, 각각의 뱅크는 다수 개의 로우(ROW)들을 포함할 수 있으며, 리프레쉬는 각각의 뱅크의 하나 이상의 로우들을 오픈(Open)함에 의해 수행될 수 있다. 일 실시예로서, 다수 개의 뱅크들에 대해, 소정의 값으로 설정된 순서에 따라 첫 번째 로우에 대한 리프레쉬가 완료되면, 상기 소정의 순서에 따라 두 번째 로우에 대한 리프레쉬가 수행될 수 있다. 초기 설정에서, 다수 개의 뱅크들이 제1 내지 제N 뱅크들을 포함하는 경우, 제1 뱅크에서 제N 뱅크로 순차적으로 리프레쉬가 수행될 수 있다.
억세스 예측부(110)로부터의 예측 결과에 기반하여 다수의 뱅크(Bank)들에 대한 리프레쉬 동작의 순서가 변동될 수 있다. 예컨대, 이후에 억세스될 것으로 예측된 하나의 뱅크가 선택되는 경우, 상기 선택된 뱅크는 다른 뱅크들에 비해 가장 나중에 리프레쉬가 수행되도록 순서가 변동될 수 있다. 변동된 순서에 따라 각각의 뱅크의 세 번째 로우가 리프레쉬되는 경우, 만약 제2 뱅크가 이후에 억세스될 것으로 예측되었을 때, 상기 제2 뱅크(또는, 상기 제2 뱅크의 세 번째 로우)는 다른 뱅크들(또는, 다른 뱅크들의 세 번째 로우)에 비해 가장 늦게 리프레쉬될 수 있다.
설명의 편의상 뱅크별 리프레쉬 순서가 로우 단위로 변동되는 것으로 설명되었으나, 다음과 같이 본 발명의 일 실시예에서 뱅크별 리프레쉬 순서는 하나의 로우에 대한 리프레쉬 도중에 변동될 수 있다.
예컨대, 제1 내지 제4 뱅크들의 첫 번째 로우에 대해 리프레쉬를 수행함에 있어서, 먼저 제1 뱅크의 첫 번째 로우가 리프레쉬될 수 있다. 기존 설정된 순서에 따르면, 이후에는 제2 뱅크의 첫 번째 로우가 리프레쉬되어야 한다. 그러나, 호스트로부터의 어드레스를 분석한 결과, 상기 제2 뱅크가 다음에 억세스될 것으로 예측될 수 있으며, 이에 기반하여 상기 제2 뱅크가 가장 나중에 리프레쉬되도록 그 순서가 변동된다. 이에 따라, 제3 뱅크의 첫 번째 로우가 다음에 리프레쉬되며, 그 이후에 제4 뱅크의 첫 번째 로우가 다음에 리프레쉬된다. 그리고, 상기 제2 뱅크의 첫 번째 로우는 마지막에 리프레쉬될 수 있다.
전술한 실시예에서, 다음에 억세스될 뱅크를 예측하는 동작은 다양한 형태로 구현될 수 있다. 예컨대, 현재 수신된 요청 이후 바로 다음번 요청에서 억세스 요청될 뱅크를 예측할 수 있으며, 또는 이후에 수신될 수 있는 여러 개의 요청들 중에서 선택된 하나 이상의 요청에서 억세스 요청될 뱅크를 예측할 수도 있을 것이다.
상기와 같은 본 발명의 일 실시예에 따르면, 기존 억세스를 방해하지 않고 리프레쉬가 수행될 수 있도록 함으로써 메모리 시스템의 성능 저하를 감소할 수 있다. 예컨대, 제1 뱅크에 대한 억세스를 위해 제1 뱅크의 하나 이상의 로우가 오픈(Open)된 상태에서 상기 제1 뱅크를 리프레쉬하기 위해서는, 상기 오픈된 로우를 닫은 후에 리프레쉬 대상의 로우를 리프레쉬할 필요가 있다. 이 때, 하나 이상의 로우가 오픈(Open)된 상태에서 데이터를 억세스하기 위해서는, 칼럼 어드레스(Column address)를 포함하는 기록/독출 명령만을 메모리 장치(200)로 제공함으로써 데이터 억세스가 가능하다. 그러나, 리프레쉬를 위해 상기 제1 뱅크의 억세스 대상의 로우가 닫힌 경우에는, 다시 데이터를 억세스하기 위해 상기 제1 뱅크의 하나 이상의 로우를 오픈하기 위한 명령이 메모리 장치(200)로 제공되어야 하며, 이에 따라 로우가 오픈된 후 스펙(SPEC)에 따른 소정의 딜레이 후 기록/독출 명령이 메모리 장치(200)로 제공되어야 한다. 즉, 억세스 수행되는 뱅크와 리프레쉬 수행될 뱅크가 매칭되는 경우, 상기와 같은 타이밍적으로의 손실이 발생함으로써 퍼포먼스의 저하가 발생될 수 있다.
또한, 제1 뱅크에 대해 억세스가 지속되고 있는 경우, 상기 제1 뱅크의 억세스가 종료될 때까지 리프레쉬 대기 상태가 유지될 수 있으며, 이는 데이터 보유의 안정성의 저하를 유발할 수 있다. 그러나, 상기와 같은 본 발명의 실시예에 따라, 데이터 억세스를 위해 오픈된 로우를 갖고 있지 않은 뱅크들에 대해 리프레쉬가 우선 수행되도록 함으로써, 리프레쉬 동작이 효율적으로 수행되고, 이로써 데이터 보유의 안정성을 향상할 수 있다.
즉, 본 발명의 일 실시예에 따라, 억세스 요청된 뱅크(예컨대, 타겟 뱅크)를 인식하고, 이후의 억세스의 시퀀스를 예측하여, 억세스가 되지 않을 뱅크들을 우선적으로 리프레쉬함으로써 억세스 수행되는 뱅크와 리프레쉬 수행될 뱅크가 매칭되는 가능성을 감소할 수 있다.
도 2는 도 1에 도시된 메모리 콘트롤러의 일 구현 예를 나타내는 블록도이다.
도 2에 도시된 바와 같이, 메모리 콘트롤러(100)는 억세스 예측부(110), 리프레쉬 관리부(120), 프로세싱 유닛(130), 커맨드 생성부(140) 및 커맨드 큐(150)를 포함할 수 있다. 도 2에 도시되지 않았으나, 메모리 콘트롤러(100)는 메모리 장치(200)를 제어하기 위한 각종 다른 기능 블록들을 더 구비할 수도 있다. 또한, 도 2에 도시된 메모리 콘트롤러(100)의 기능 블록들 및 그 신호 송수신 관계는 하나의 예에 불과한 것으로서, 각종 기능 블록들 및 그 신호 송수신 관계를 변형하여도 본 발명의 실시예들에 따른 각종 기능들을 수행할 수 있다.
도 1 및 도 2를 참조하면, 프로세싱 유닛(130)은 메모리 콘트롤러(100)의 전반적인 동작을 제어하며, 이에 따라 메모리 콘트롤러(100)에 구비되는 각종 기능 블록들을 제어할 수 있다. 억세스 예측부(110)는 전술한 바와 같이 호스트로부터 억세스 요청되는 뱅크를 참조로 하여, 이후에 억세스될 것으로 예측되는 하나 이상의 뱅크들을 선택하고, 그 선택 결과(또는, 예측 결과, Res)를 생성할 수 있다. 리프레쉬 관리부(120)는 리프레쉬 주기 내에서 메모리 셀 어레이(210)의 메모리 셀들이 모두 리프레쉬될 수 있도록 리프레쉬 동작을 관리하며, 예컨대 리프레쉬 수행 타이밍을 판별하고 리프레쉬 커맨드(CMD_Ref) 및 뱅크 어드레스(BA)를 생성할 수 있다. 또한, 커맨드 생성부(140)는 호스트로부터의 억세스 요청에 따른 커맨드(CMD)를 생성하고, 억세스 대상의 뱅크를 지시하기 위한 뱅크 어드레스(BA)를 생성할 수 있다.
리프레쉬 관리부(120)로부터의 리프레쉬 커맨드(CMD_Ref)/뱅크 어드레스(BA)와 커맨드 생성부(140)로부터의 커맨드(CMD)/뱅크 어드레스(BA)는 커맨드 큐(150)에 저장될 수 있다. 커맨드 큐(150)는 입력되는 정보의 순서에 따라 리프레쉬 커맨드(CMD_Ref)/뱅크 어드레스(BA) 및 리프레쉬 커맨드(CMD_Ref)/뱅크 어드레스(BA)를 저장할 수 있다. 커맨드 큐(150)에 저장되는 정보의 순서대로 리프레쉬 커맨드(CMD_Ref)/뱅크 어드레스(BA) 또는 리프레쉬 커맨드(CMD_Ref)/뱅크 어드레스(BA)가 인터페이스 수단을 통해 메모리 장치(200)로 제공될 것이다.
한편, 억세스 예측부(110)의 예측 결과(Res)에 따라 메모리 장치(200)에 대한 리프레쉬 동작이 제어될 수 있다. 예컨대, 전술한 바와 같이 다수의 뱅크들을 포함하는 메모리 장치(200)에 대해, 억세스 예측 동작에 기반하여 뱅크별 리프레쉬 순서가 변동되도록 제어될 수 있다.
억세스 예측부(110)의 예측 결과(Res)에 기반하여, 커맨드 큐(150)에 저장된 정보의 저장 순서를 변동하기 위한 순서 제어신호(Ctrl_order)가 생성될 수 있다. 예컨대, 프로세싱 유닛(130)이 상기 예측 결과(Res)를 이용하여 순서 제어신호(Ctrl_order)를 생성할 수 있다. 또는, 다른 실시예로서, 리프레쉬 관리부(120)는 상기 예측 결과(Res)를 이용하여 순서 제어신호(Ctrl_order)를 생성할 수 있다. 순서 제어신호(Ctrl_order)에 의해 커맨드 큐(150)에 저장된 정보의 저장 순서가 변동됨으로써, 뱅크별 리프레쉬 순서가 변동될 수 있다.
예컨대, 억세스 예측 결과에 따라 소정의 뱅크(예컨대, 제1 뱅크)가 상대적으로 나중에 리프레쉬될 필요가 있는 경우, 커맨드 큐(150)에 저장된 리프레쉬 커맨드(CMD_Ref)와 제1 뱅크를 지정하기 위한 뱅크 어드레스(BA)에 대응하는 정보는 후 순위로 출력되도록 그 저장 위치가 변동될 수 있다. 이에 따라, 상기 제1 뱅크와 다른 뱅크들이 먼저 리프레쉬될 수 있다.
도 3은 도 1에 도시된 메모리 장치의 일 구현 예를 나타내는 블록도이다. 도 3에 도시된 메모리 장치(200)는 단지 하나의 구현 예에 불과한 것으로서, 본 발명에 적용되는 메모리 장치의 구성은 다양하게 변형이 가능하다. 또한, 도 3에서는 다수의 뱅크들로서, 제1 내지 제4 뱅크들(210a ~ 210d)이 예시되나, 그 이상의 뱅크들이 메모리 장치(200)에 구비되어도 무방하다.
메모리 장치(200)는 하나 이상의 메모리 칩들을 포함할 수 있으며, 도 3에 도시된 메모리 장치(200)는 어느 하나의 메모리 칩의 구성을 나타낼 수 있다. 메모리 장치(200)는 제1 내지 제4 뱅크들(210a ~ 210d)을 포함하는 메모리 셀 어레이(210), 뱅크들 각각에 대응하여 배치되는 로우 디코더들(220a ~ 220d)과 칼럼 디코더들(230a ~ 230d), 제어 로직(240), 어드레스 버퍼(250), 리프레쉬 어드레스 생성부(260), 뱅크 제어 로직(270), 로우 어드레스 선택부(281), 칼럼 어드레스 래치(282), 입출력 게이팅 회로(283) 및 데이터 입출력 버퍼(284)를 포함할 수 있다. 또한, 제1 내지 제4 뱅크들(210a ~ 210d)에 대응하여 센스 앰프들이 배치될 수 있다.
한편, 메모리 장치(200)는 DDR SDRAM (Double Data Rate Synchronous Dynamic Ramdom Access Memory), LPDDR (Low Power Double Data Rate) SDRAM, GDDR (Graphics Double Data Rate) SDRAM, RDRAM (Rambus Dynamic Ramdom Access Memory) 등과 같은 동적 랜덤 억세스 메모리(Dynamic Ramdom Access Memory, DRAM)일 수 있다. 반면에, 다른 실시예로서, 메모리 장치(200)는 리프레쉬 동작이 필요한 다른 임의의 메모리 장치가 적용되어도 무방하다. 예컨대, 불휘발성 메모리로서 저항성 메모리 장치가 리프레쉬 동작을 수행하는 경우, 본 발명의 실시예에 따른 메모리 장치(200)는 불휘발성 메모리여도 무방하다.
제어 로직(240)은 메모리 장치(200)의 전반적인 동작을 제어할 수 있으며, 예컨대 제어 로직(240)은 커맨드 디코더(241) 및 모드 레지스터(242)를 포함할 수 있다. 제어 로직(240)은 메모리 콘트롤러(100)로부터의 커맨드(CMD)에 따라, 기록 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다. 또한, 제어 로직(240)은 메모리 콘트롤러(100)로부터의 리프레쉬 커맨드에 따라 제1 내지 제4 뱅크들(210a ~ 210d)에 대한 리프레쉬 동작을 위한 제어 신호들을 생성할 수 있다. 또는, 제어 로직(240)은 셀프 리프레쉬 모드에서 제1 내지 제4 뱅크들(210a ~ 210d)에 대한 리프레쉬 동작을 위한 제어 신호들을 생성할 수 있다. 모드 레지스터(242)는 메모리 장치(200)의 동작 환경을 설정하기 위한 정보를 저장하는 다수의 레지스터들을 포함할 수 있다.
어드레스 버퍼(250)는 메모리 콘트롤러(100)로부터 제공되는 어드레스(ADD)를 수신할 수 있다. 전술한 바와 같이, 어드레스(ADD)는 뱅크 어드레스(BA)를 포함할 수 있다. 또한, 어드레스(ADD)는 메모리 셀 어레이(210)의 로우를 지시하기 위한 로우 어드레스(ROW_ADD)와 칼럼을 지시하기 위한 칼럼 어드레스(COL_ADD)를 포함할 수 있다. 로우 어드레스(ROW_ADD)는 로우 어드레스 선택부(281)를 통해 로우 디코더들(220a ~ 220d)로 제공될 수 있으며, 칼럼 어드레스(COL_ADD)는 칼럼 어드레스 래치(282)를 통해 칼럼 디코더들(230a ~ 230d)로 제공될 수 있다. 또한, 뱅크 어드레스(BA)는 뱅크 제어 로직(270)으로 제공될 수 있다.
뱅크 제어 로직(270)은 뱅크 어드레스(BA)에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 또한, 뱅크 제어 신호들에 응답하여, 제1 내지 제4 로우 디코더들(220a ~ 220d) 중 뱅크 어드레스(BA)에 상응하는 로우 디코더가 활성화될 수 있으며, 또한 제1 내지 제4 칼럼 디코더들(230a ~ 230d) 중 뱅크 어드레스(BA)에 상응하는 칼럼 디코더가 활성화될 수 있다.
리프레쉬 어드레스 생성부(260)는 메모리 셀 어레이(210)에서 리프레쉬가 수행될 로우를 선택하기 위한 리프레쉬 어드레스(REF_ADD)를 생성할 수 있다. 예컨대, 리프레쉬 어드레스 생성부(260)는 그 내부에 카운터(미도시)를 포함할 수 있으며, 카운터의 카운팅 동작에 따라 그 값이 증가하는 리프레쉬 어드레스(REF_ADD)를 순차적으로 생성할 수 있다. 로우 어드레스 선택부(281)는 멀티플렉서로 구현될 수 있으며, 데이터 억세스 시 메모리 콘트롤러(100)로부터 제공된 로우 어드레스(ROW_ADD)를 출력할 수 있으며, 리프레쉬 동작시 리프레쉬 어드레스 생성부(260)로부터 생성된 리프레쉬 어드레스(REF_ADD)를 출력할 수 있다. 도 3의 실시예에서는, 리프레쉬가 수행될 로우를 지시하는 리프레쉬 어드레스(REF_ADD)가 메모리 장치(200) 내에서 생성되는 것으로 설명되었으나, 변형 가능한 실시예로서 리프레쉬 어드레스(REF_ADD)는 메모리 콘트롤러(100)로부터 제공되어도 무방하다.
일 실시예에 따라, 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 어느 하나의 로우에 해당하는 메모리 셀들이 순차적으로 리프레쉬되고, 이후에 상기 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 다른 로우에 해당하는 메모리 셀들이 순차적으로 리프레쉬될 수 있다. 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4) 각각이 A 개의 로우들을 포함하는 경우, 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 제1 로우가 리프레쉬되고, 이후 제2 로우가 리프레쉬되며, 이와 같은 순차적인 동작에 따라 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 A 개의 로우들이 모두 리프레쉬될 수 있다.
본 발명의 일 실시예에 따라, 리프레쉬 수행될 뱅크는 메모리 콘트롤러(100)로부터 제공되는 뱅크 어드레스(BA)에 의해 선택될 수 있다. 또한, 전술한 바와 같이 억세스 요청된 뱅크를 판단하고, 이에 기반하여 이후에 억세스될 것으로 예측되는 하나 이상의 뱅크들이 선택되며, 이를 기반으로 하여 뱅크들(BANK 1 ~ BANK 4)에 대한 리프레쉬 순서가 변동될 수 있다. 이에 따라, 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 어느 하나의 로우에서의 뱅크별 리프레쉬 순서는, 다른 로우에서의 뱅크별 리프레쉬 순서와 서로 다를 수 있다. 예컨대, 제1 로우에 대해 제1 뱅크(BANK 1)부터 제4 뱅크(BANK 4)의 순서로 차례대로 리프레쉬가 수행된 반면에, 제2 로우에 대해서는 제1 뱅크(BANK 1), 제3 뱅크(BANK 3), 제4 뱅크(BANK 4), 제2 뱅크(BANK 2)의 순서로서 리프레쉬가 수행될 수도 있다.
도 4는 본 발명의 일 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
먼저, 메모리 시스템은 호스트로부터 데이터에 대한 억세스 요청과 함께, 억세스 요청되는 메모리 셀들을 나타내는 제1 어드레스를 수신할 수 있다(S11). 호스트로부터의 제1 어드레스에 따라 메모리 셀들을 선택하기 위해 어드레스 분석(또는, 디코딩)하는 동작이 수행되고, 그 결과에 따라 억세스 요청된 뱅크가 판단될 수 있다(S12). 또한, 억세스 요청된 뱅크에 기반하여 다양한 방식으로 구현될 수 있는 예측 동작을 수행하고, 그 결과로서 다음에 억세스될 것으로 예측되는 하나 이상의 뱅크들을 선택할 수 있다(S13).
억세스 요청된 뱅크의 판단 결과 및/또는 뱅크 예측 결과에 기반하여 뱅크별 리프레쉬 순서가 설정될 수 있다(S14). 전술한 실시예에서와 동일 또는 유사하게, 억세스 요청된 뱅크에 대한 리프레쉬 순서를 변동할 수 있다. 또는, 다음에 억세스될 것으로 예측된 하나 이상의 뱅크들에 대한 리프레쉬 순서를 변동할 수 있다. 또는, 억세스 요청된 뱅크와 다음에 억세스될 것으로 예측된 하나 이상의 뱅크들에 리프레쉬 순서를 변동할 수 있다. 리프레쉬 순서의 변동 예로서, 억세스 요청된 뱅크 및/또는 다음에 억세스될 것으로 예측된 하나 이상의 뱅크들의 리프레쉬 순서를 다른 뱅크들에 비해 상대적으로 늦게 설정할 수 있다.
메모리 시스템은 소정의 주기에 따라 메모리 셀 어레이에 포함된 모든 메모리 셀들에 대해 적어도 한 번의 리프레쉬 동작이 수행되도록 동작 환경이 설정될 수 있다. 메모리 시스템은 리프레쉬 수행 타이밍이 도래하였는지를 감지하고, 상기 설정된 순서에 따라 뱅크별 리프레쉬를 수행한다(S15). 예컨대, 리프레쉬 동작시 상기 설정된 뱅크별 순서에 따라 뱅크들이 선택되도록 뱅크 어드레스를 생성할 수 있다.
도 5a,b는 억세스 예측 동작의 일 예를 나타내는 블록도이다.
도 5a는 본 발명의 실시예에 따라 적용가능한 하나의 예로서, 메모리 콘트롤러에는 적어도 하나의 테이블이 포함될 수 있으며, 예컨대 제1 테이블(Table 1) 및 제2 테이블(Table 2)이 구비되는 예가 도시된다. 제1 테이블(Table 1)은 호스트로부터 요청 및 어드레스가 수신될 때마다, 억세스 히스토리에 관련된 정보를 저장할 수 있다. 예컨대, 요청 종류와 그에 대응하는 뱅크 정보가 저장될 수 있다. 제1 테이블(Table 1)에 저장된 정보는 주기적으로 업데이트될 수 있다.
한편, 제1 테이블(Table 1)에 저장된 정보를 참조함에 의해 뱅크별로 억세스 패턴이 분석될 수 있으며, 이후에 억세스될 가능성이 높은 뱅크와 가능성이 낮은 뱅크가 분석될 수 있다. 일 예로서, 상기와 같은 분석 결과에 따라 뱅크 별로 억세스 가능성이 산출될 수 있을 것이며, 이에 관련된 정보가 제2 테이블(Table 2)에 저장될 수 있다. 또한, 상기 제1 테이블(Table 1)에 저장된 정보가 주기적으로 업데이트됨에 따라, 상기 제2 테이블(Table 2)에 저장되는 정보 또한 업데이트될 수 있다.
예컨대, 제1 뱅크(BANK 1)에 대한 억세스 요청이 수신되었을 때, 제2 테이블(Table 2)을 참조하여 그 이후의 억세스 시퀀스를 예측할 수 있다. 제1 뱅크(BANK 1)가 억세스 요청된 경우, 제2 테이블(Table 2)에 저장된 정보에 기반하여 그 이후에 억세스될 가능성이 높은 뱅크가 예측될 수 있으며, 예측 결과에 따라 하나 이상의 뱅크가 억세스 예측되는 뱅크로 선택될 수 있다. 이와 유사하게, 제2 뱅크(BANK 2)가 억세스될 때, 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4) 각각에 대한 억세스 가능성에 기반하여 하나 이상의 억세스 예측되는 뱅크가 선택될 수 있다. 제3 뱅크(BANK 3) 및 제4 뱅크(BANK 4) 각각에 대해서도 전술한 바와 동일하다.
일 실시예로서, 어느 하나의 뱅크에 대해 억세스 요청이 수신될 때, 이후에 억세스될 뱅크를 예측함에 있어서 상기 요청 종류에 따라 서로 다른 뱅크가 선택될 수도 있다. 예컨대, 제1 테이블(Table 1)에 저장된 정보를 참조하면, 제1 뱅크(BANK 1)에 대한 기록(WR) 요청 시 다음에 억세스될 것으로 예측되는 뱅크와, 제1 뱅크(BANK 1)에 대한 독출(RD) 요청 시 다음에 억세스될 것으로 예측되는 뱅크는 상이할 수도 있다.
한편, 도 5b에 도시된 바와 같이, 데이터 정보의 저장 상태와 관련된 상태 정보가 메모리 콘트롤러에 구비될 수 있다. 예컨대, 제1 데이터 정보(DI 1)는 두 개의 뱅크(예컨대, 제1 및 제2 뱅크들)에 저장될 수 있으며, 제2 데이터 정보(DI 2)는 제2 내지 제4 뱅크들(BANK 2 ~ BANK 4)에 저장될 수 있다. 또한, 제3 데이터 정보(DI 3)는 제1 뱅크(BANK 1)와 제3 뱅크(BANK 3)에 저장될 수 있다.
억세스 요청이 이루어진 위치를 참조하면, 해당 위치에 대응하는 뱅크가 판단될 수 있으며, 또한 이후에 억세스될 것으로 예측되는 하나 이상의 뱅크가 판단될 수 있다. 예컨대, 제1 뱅크(BANK 1)에 대해 억세스가 요청되고, 대응하는 데이터가 제3 데이터 정보(DI 3)에 해당할 때, 이후에는 제3 뱅크(BANK 3)가 억세스될 것으로 예측될 수 있다.
도 6은 뱅크별 리프레쉬 순서를 설정하는 일 예를 나타내는 블록도이다. 도 6에서는 다수의 뱅크들의 로우(예컨대, 하나의 로우)에 대한 리프레쉬를 수행함에 있어서 뱅크별 리프레쉬 순서가 변동되는 예가 도시된다. 또한, 도 6에서는 다음에 억세스될 것으로 예측되는 하나의 뱅크를 선택하고, 선택된 뱅크를 가장 나중에 리프레쉬하는 예가 도시된다. 그러나, 본 발명의 실시예는 이에 국한될 필요는 없으며, 억세스될 것으로 선택된 뱅크의 리프레쉬 순서는 임의로 변동되어도 무방할 것이다. 한편, 이하의 실시예들에서는, 설명의 편의상 다음에 억세스될 것으로 예측됨에 따라 선택된 뱅크는 억세스 예측된 뱅크로 지칭될 것이다.
도 6을 참조하면, 제1 뱅크(BANK 1)로부터 제4 뱅크(BANK 4)로 순차적으로 리프레쉬되도록 설정되어 있음에 따라, 제1 뱅크(BANK 1)의 로우(ROW n)가 리프레쉬된다. 또한, 호스트로부터의 어드레스를 분석하여 제2 뱅크(BANK 2)를 억세스 예측된 뱅크로서 선택할 수 있다.
상기와 같은 예측 결과에 따라, 제2 뱅크(BANK 2)는 가장 나중에 리프레쉬되는 것으로서 순서가 변동되고, 이에 따라 제3 뱅크(BANK 3)의 로우(ROW n)가 리프레쉬된다. 이후, 호스트로부터 다시 요청 및 어드레스가 수신되고, 수신된 어드레스를 분석함으로써 예측 동작이 다시 수행될 수 있다. 해당 예측 결과에 따라, 제4 뱅크(BANK 4)를 억세스 예측된 뱅크로서 선택할 수 있으며, 이에 기반하여 제4 뱅크(BANK 4)가 가장 나중에 리프레쉬되도록 그 순서가 다시 변동될 수 있다.
뱅크별 리프레쉬 순서가 다시 변동되었으므로, 현재 변동된 순서에 따라 제2 뱅크(BANK 2)의 로우(ROW n)가 리프레쉬된다. 이후, 맨 마지막에 리프레쉬되도록 설정된 제4 뱅크(BANK 4)의 로우(ROW n)가 리프레쉬된다.
상기 실시예에 따르면, 다수의 뱅크들(BANK 1 ~ BANK 4)에 대한 리프레쉬 수행중, 아직 리프레쉬가 수행되지 않은 나머지 뱅크들에 대해 리프레쉬 순서를 변동하고, 변동된 순서에 따라 뱅크별 리프레쉬가 수행되도록 함으로써, 억세스 수행될 뱅크와 리프레쉬 수행될 뱅크가 매칭될 가능성을 감소시키고, 이로부터 메모리 시스템의 성능을 향상할 수 있다.
도 7 내지 도 10은 본 발명의 실시예에 따라 뱅크별 리프레쉬 순서를 나타내는 표이다. 하기하는 도 7 내지 도 10에서는, 설명의 편의상 하나의 로우에서 리프레쉬 순서가 1 회 변동되는 예가 도시되나, 상기한 도 6의 실시예에서와 같이 다수 뱅크들의 하나의 로우를 리프레쉬하는 동안 2 회 이상 리프레쉬 순서가 변동되어도 무방하다. 또한, 도 7 내지 도 10의 실시예에서는 제1 내지 제 8 뱅크들(BANK 1 ~ BANK 8)에 대한 리프레쉬 순서 설정 예가 설명된다.
도 7의 실시예에서는, 뱅크별 기본적인 리프레쉬 순서가 기 설정되고, 상기 설정 상태 하에서 리프레쉬 순서를 변동하는 예가 설명된다. 예컨대, 기본적인 리프레쉬 순서는 제1 뱅크(BANK 1)에서 제8 뱅크(BANK 8)로 순차적으로 리프레쉬되도록 설정된다.
첫 번째 로우(ROW 1)에 대해 상기 기 설정된 순서에 따라 리프레쉬가 수행되고, 어느 시점에서 호스트로부터의 어드레스를 분석한 결과에 따라 제5 뱅크(BANK 5)가 억세스 예측된 뱅크로서 선택될 수 있다. 이에 따라, 첫 번째 로우(ROW 1)에 대한 리프레쉬 동작에서, 상기 제5 뱅크(BANK 5)가 가장 나중에 리프레쉬되도록 그 순서가 변동될 수 있다.
제1 내지 제 8 뱅크들(BANK 1 ~ BANK 8)의 두 번째 로우(ROW 2)에 대한 리프레쉬에서도, 상기 기 설정된 순서에 따라 리프레쉬가 수행될 수 있다. 이에 따라, 제1 뱅크(BANK 1)의 두 번째 로우(ROW 2)부터 리프레쉬가 수행될 것이다. 어느 시점에서 호스트로부터의 어드레스를 분석한 결과에 따라 제2 뱅크(BANK 2)가 억세스 예측된 뱅크로서 선택될 수 있으며, 이에 따라 상기 제2 뱅크(BANK 2)가 가장 나중에 리프레쉬되도록 그 순서가 변동될 수 있다.
한편, 두 번째 로우(ROW 2)에 대한 리프레쉬 동작 중, 예측 결과로서 제4 뱅크(BANK 4)가 억세스 예측된 뱅크로서 선택될 수 있다. 이 때, 이미 제4 뱅크(BANK 4)의 두 번째 로우(ROW 2)는 리프레쉬가 완료되었으므로, 두 번째 로우(ROW 2)에 대한 리프레쉬 동작에서 제4 뱅크(BANK 4)는 더 이상 선택되지 않는다. 이에 따라, 상기 예측 결과에도 불구하고 리프레쉬 순서는 변동되지 않으며, 이에 따라 예측 결과가 무시될 수 있다.
세 번째 로우(ROW 3) 및 네 번째 로우(ROW 4) 또한 상기와 동일 또는 유사하게 리프레쉬될 수 있다. 세 번째 로우(ROW 3)에 대한 리프레쉬 동작 중, 예측 결과로서 제7 뱅크(BANK 7)가 억세스 예측된 뱅크로서 선택될 수 있으며, 이에 따라 상기 제7 뱅크(BANK 7)가 가장 나중에 리프레쉬되도록 그 순서가 변동될 수 있다. 또한, 네 번째 로우(ROW 4)에 대한 리프레쉬 동작 중, 예측 결과로서 제2 뱅크(BANK 2)가 억세스 예측된 뱅크로서 선택될 수 있으며, 이에 따라 상기 제2 뱅크(BANK 2)가 가장 나중에 리프레쉬되도록 그 순서가 변동될 수 있다.
한편, 도 8의 실시예에서는, 뱅크별 기본적인 리프레쉬 순서가 기 설정됨이 없이, 이전 로우에서 설정된 뱅크별 리프레쉬 순서가 다음 로우에 대한 리프레쉬 순서에도 영향을 미치는 예가 설명된다.
최초에는 리프레쉬 순서가 제1 뱅크(BANK 1)에서 제8 뱅크(BANK 8)로 순차적으로 리프레쉬되도록 설정된다. 이에 따라, 제1 뱅크(BANK 1)의 첫 번째 로우(ROW 1)부터 순차적으로 리프레쉬가 수행될 것이다.
어느 시점에서 호스트로부터의 어드레스를 분석한 결과에 따라 제6 뱅크(BANK 6)가 억세스 예측된 뱅크로서 선택될 수 있다. 이에 따라, 상기 제6 뱅크(BANK 6)의 첫 번째 로우(ROW 1)는 맨 나중에 리프레쉬되도록 리프레쉬 순서가 변동될 수 있다.
이후, 최종 변동된 리프레쉬 순서에 따라 제1 내지 제 8 뱅크들(BANK 1 ~ BANK 8)의 두 번째 로우(ROW 2)에 대한 리프레쉬가 수행될 것이다. 어느 시점에서 호스트로부터의 어드레스를 분석한 결과에 따라 제4 뱅크(BANK 4)가 억세스 예측된 뱅크로서 선택될 수 있다. 이에 따라, 상기 제4 뱅크(BANK 4)의 두 번째 로우(ROW 2)는 맨 나중에 리프레쉬되도록 리프레쉬 순서가 변동될 수 있다. 기존에 제6 뱅크(BANK 6)가 가장 나중에 리프레쉬되도록 설정되어 있으므로, 두 번째 로우(ROW 2)에 대해서는 제6 뱅크(BANK 6) 이후에 제4 뱅크(BANK 4)가 리프레쉬되도록 그 순서가 변동될 것이다.
세 번째 로우(ROW 3) 내지 다섯 번째 로우(ROW 5) 또한 상기와 동일 또는 유사하게 리프레쉬될 수 있다. 어느 시점에서 호스트로부터의 어드레스를 분석한 결과에 따라 제2 뱅크(BANK 2)가 억세스 예측된 뱅크로서 선택될 수 있으며, 이에 따라 세 번째 로우(ROW 3)에 대해서는 제6 뱅크(BANK 6), 제4 뱅크(BANK 4) 이후에 제2 뱅크(BANK 2)가 리프레쉬되도록 그 순서가 변동될 것이다. 또한, 전술한 바와 유사하게, 세 번째 로우(ROW 3)에 대한 리프레쉬 동작 중 이미 세 번째 로우(ROW 3)가 리프레쉬된 뱅크(예컨대, 제5 뱅크, BANK 5)가 다음에 억세스될 것으로 예측되면, 해당 예측 결과는 무시될 수 있다.
한편, 도 9의 실시예에서는, 다음에 억세스될 것으로 예측된 뱅크를 가장 마지막이 아니라 일정한 간격에 따라 리프레쉬를 늦추는 예가 설명된다. 도 9의 실시예에서는, 리프레쉬 순서가 조절될 필요가 있는 뱅크의 리프레쉬 순서를 2 회 늦추는 예가 도시되나, 본 발명의 실시예는 이에 국한될 필요 없이 다양하게 변동될 수 있다. 또한, 도 9의 실시예에서는 도 7의 실시예에서와 유사하게 뱅크별 기본적인 리프레쉬 순서가 기 설정되는 예가 반영되었으나, 본 실시예는 도 8의 실시예에서 설명된 특징과 결합될 수도 있다.
첫 번째 로우(ROW 1)를 리프레쉬하는 도중, 어느 시점에서 호스트로부터의 어드레스를 분석한 결과에 따라 제6 뱅크(BANK 6)가 억세스 예측된 뱅크로서 선택될 수 있다. 이에 따라, 제6 뱅크(BANK 6)의 첫 번째 로우(ROW 1)의 리프레쉬는 2 회 늦추어지며(또는, 다른 두 개의 뱅크들을 먼저 리프레쉬하며), 이에 따라 제6 뱅크(BANK 6)의 첫 번째 로우(ROW 1)는 제8 뱅크(BANK 8)가 리프레쉬된 후에 리프레쉬될 수 있다.
이와 유사하게, 두 번째 로우(ROW 2)에 대한 리프레쉬 동작 중, 억세스 예측 결과에 따라 제3 뱅크(BANK 3)의 리프레쉬 순서가 조절될 수 있으며, 리프레쉬가 2 회 늦추어짐에 따라 제3 뱅크(BANK 3)의 두 번째 로우(ROW 2)는 제5 뱅크(BANK 5)가 리프레쉬된 후에 리프레쉬될 수 있다. 또한, 세 번째 로우(ROW 3)에 대한 리프레쉬 동작 중, 제2 뱅크(BANK 2)의 세 번째 로우(ROW 3)는 제4 뱅크(BANK 4)가 리프레쉬된 후에 리프레쉬될 수 있다.
한편, 네 번째 로우(ROW 4)에서 예시된 바와 같이, 억세스 예측 결과에 따라 제7 뱅크(BANK 7)의 리프레쉬 순서가 조절될 필요가 있는 경우, 상기 제7 뱅크(BANK 7)의 리프레쉬 순서는 2 회 늦추어질 수 없으므로, 제8 뱅크(BANK 8)의 네 번째 로우(ROW 4)가 리프레쉬된 후 상기 제7 뱅크(BANK 7)의 네 번째 로우(ROW 4)가 리프레쉬될 수 있다.
한편, 도 10의 실시예에서는, 두 개 이상의 뱅크들의 리프레쉬 순서가 변동되는 예가 설명된다. 도 10의 실시예에서 또한 도 7의 실시예에서와 유사하게 뱅크별 기본적인 리프레쉬 순서가 기 설정되는 예가 반영되었으나, 본 실시예는 도 8의 실시예에서 설명된 특징과 결합될 수도 있다.
도 10에 도시된 바와 같이, 하나의 로우에 대한 리프레쉬를 수행함에 있어서 두 개 이상의 뱅크들의 순서가 변동될 수 있다. 이는, 전술한 실시예에서와 동일 또는 유사하게, 예측 결과에 따라 두 개 이상의 뱅크들을 선택함으로써 리프레쉬 순서가 조절될 수 있다. 또는, 현재 억세스 요청된 뱅크 또한 상대적으로 나중에 리프레쉬되도록 순서가 조절될 수 있다. 첫 번째 및 두 번째 로우(ROW 1, ROW 2)에서는 두 개의 뱅크들의 리프레쉬 순서가 변동되고, 세 번째 로우(ROW 3)에서는 세 개의 뱅크들의 리프레쉬 순서가 변동되며, 네 번째 로우(ROW 4)에서는 하나의 뱅크들의 리프레쉬 순서가 변동될 수 있다.
도 11 및 도 12는 메모리 콘트롤러와 메모리 장치 사이에서의 신호 송수신 예를 나타내는 블록도이다.
도 11의 실시예에서는, 메모리 시스템(10)의 리프레쉬 동작시 메모리 콘트롤러(100)가 메모리 장치(200)로 리프레쉬 어드레스를 로우 어드레스(ROW_ADD)로서 제공하는 예가 도시된다. 리프레쉬 동작시, 메모리 콘트롤러(100)는 리프레쉬 수행을 명령하는 리프레쉬 커맨드(CMD_Ref)와 함께, 전술한 실시예에 따라 수행될 수 있는 뱅크별 리프레쉬 순서에 부합하도록 뱅크 어드레스(BA)를 생성하여 메모리 장치(200)로 제공하며, 또한 리프레쉬 수행될 각각의 뱅크의 로우를 지시하기 위하여 로우 어드레스(ROW_ADD)를 생성하여 메모리 장치(200)로 제공할 수 있다.
한편, 도 12의 실시예에서는, 메모리 시스템(10)의 리프레쉬 동작시 메모리 장치(200) 내에 구비되는 어드레스 카운터(261)가 리프레쉬 수행될 각각의 뱅크의 로우를 지시하기 위한 리프레쉬 어드레스를 생성할 수 있다. 상기 어드레스 카운터(261)는 도 3의 메모리 장치(200)에서 리프레쉬 어드레스 생성부(260) 내에 구비될 수 있다.
도 13 및 도 14는 본 발명의 실시예에 따른 리프레쉬 동작의 일 예를 나타내는 파형도이다.
도 13은 어느 하나의 뱅크(BANK 0)에서의 메모리 동작 타이밍을 나타내는 예로서, 각종 명령들(ACT1, ACT2)이 제공되어 뱅크(BANK 0)의 로우의 오픈이 시작되고, 소정의 시간 구간(DES)을 거쳐 로우가 오픈되면 기록 명령 및 칼럼 정보(WR1, CAS2)가 제공될 수 있다. 또한, 오픈된 로우를 닫기 위한 명령(PRE_b)이 제공되면, 소정의 시간 구간(DES)을 거쳐 뱅크(BANK 0)의 오픈된 로우가 닫히게 된다. 상기와 같은 뱅크(BANK 0)의 억세스 동작과 리프레쉬 동작이 매칭되면, 리프레쉬 동작이 긴 구간 동안 미루어지거나, 또는 뱅크(BANK 0)의 억세스 동작을 중단하고 상기와 같은 로우를 닫는 과정과 여는 과정이 반복되야 함으로써 타이밍적 손실이 발생될 수 있다.
반면에, 도 14에 도시된 바에 따르면, 억세스 동작이 수행되는 뱅크와 리프레쉬 수행되는 뱅크가 매칭되지 않도록 함으로써, 멀티 뱅크 구조를 효율적으로 이용할 수 있다. 즉, 뱅크(BANK 0)의 로우를 오픈하기 위한 소정의 시간 구간(DES) 사이에 적절히 다른 뱅크들에 대한 각종 명령들(WR1, CAS2, RD1, CAS2)이 수행될 수 있다. 도 14에 도시된 다른 뱅크들에 대한 각종 명령들(WR1, CAS2, RD1, CAS2)을 리프레쉬 명령으로 대체하면, 뱅크(BANK 0)의 억세스 동작에 대한 방해 없이 다른 뱅크들(BANK 1, BANK 2)이 효율적으로 리프레쉬 될 수 있음을 알 수 있다.
이하에서는, 본 발명의 실시예들에 따라 뱅크별 리프레쉬 순서를 조절하는 다양한 예가 설명된다. 이하에서는 설명의 편의상 뱅크별 리프레쉬 순서가 로우 단위로서 설명될 것이나, 전술한 실시예에서와 같이 리프레쉬 순서는 어느 하나의 로우에 대한 리프레쉬를 수행하는 도중에 그 순서가 변동될 수도 있다.
도 15a,b는 뱅크별 리프레쉬 순서를 설정하는 다른 예를 나타내는 블록도이다.
도 15a,b를 참조하면, 제1 뱅크(BANK 1)로부터 제4 뱅크(BANK 4)로 순차적으로 리프레쉬되도록 설정되어 있으므로, 이에 따라 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 첫 번째 로우(ROW 1)는 제1 뱅크(BANK 1)로부터 제4 뱅크(BANK 4)로 순차적으로 리프레쉬된다.
호스트로부터 요청 및 이에 대응하는 어드레스가 수신됨에 따라, 상기 어드레스를 분석함에 의해 억세스 요청된 뱅크를 판단하고, 또한 다음에 억세스될 것으로 예측되는 하나 이상의 뱅크를 선택한다. 일 예로서, 현재 억세스 요청되는 뱅크는 제1 뱅크(BANK 1)에 해당하고, 다음에 억세스될 것으로 예측된 뱅크는 제2 뱅크(BANK 2)에 해당할 수 있다. 상기와 같은 판단 및 예측 결과에 따라, 이후의 리프레쉬 동작에서는 뱅크별 리프레쉬 순서가 변동될 수 있다.
일 실시예로서, 현재 억세스 요청되는 뱅크 및 다음에 억세스될 것으로 예측된 뱅크가 다른 뱅크들에 비해 나중에 리프레쉬되도록 설정될 수 있다. 또한 일 실시예로서, 현재 억세스 요청되는 뱅크(예컨대, BANK 1)가 맨 나중에 리프레쉬되도록 설정될 수 있으며, 또는 다음에 억세스될 것으로 예측된 뱅크(예컨대, BANK 2)가 맨 나중에 리프레쉬되도록 설정될 수 있다. 도 15a의 실시예에서는, 제1 및 제2 뱅크들(BANK 1, BANK 2)이 상대적으로 나중에 리프레쉬되도록 설정됨에 있어서, 제1 뱅크(BANK 1)에 대한 리프레쉬 수행 후 제2 뱅크(BANK 2)가 리프레쉬되도록 설정될 수 있다.
이에 따라, 도 15b에 도시된 바와 같이, 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 두 번째 로우(ROW 2) 이후부터는 제3 뱅크(BANK 3), 제4 뱅크(BANK 4), 제1 뱅크(BANK 1), 제2 뱅크(BANK 2)에 해당하는 순서로 리프레쉬가 수행될 수 있다. 이후 호스트로부터 다시 요청 및 어드레스가 수신되면, 어드레스 분석 결과에 따라 억세스 요청되는 뱅크 및 다음에 억세스될 것으로 예측된 뱅크가 판단될 수 있으며, 이에 기반하여 뱅크별 리프레쉬 순서는 다시 변동될 수 있을 것이다.
도 16a,b는 뱅크별 리프레쉬 순서를 설정하는 또 다른 예를 나타내는 블록도이다. 도 16a,b에서는 메모리 장치가 8 개의 뱅크들(BANK 1 ~ BANK 8)을 포함하는 예가 설명된다.
도 16a,b를 참조하면, 제1 뱅크(BANK 1)로부터 제8 뱅크(BANK 8)로 순차적으로 리프레쉬되도록 설정되어 있으므로, 이에 따라 제1 내지 제8 뱅크들(BANK 1 ~ BANK 8)의 첫 번째 로우(ROW 1)는 제1 뱅크(BANK 1)로부터 제8 뱅크(BANK 8)로 순차적으로 리프레쉬된다. 이후, 호스트로부터 제공된 어드레스를 분석함에 의해 억세스 요청된 뱅크를 판단할 수 있으며, 또한 다음에 억세스될 것으로 예측된 하나 이상의 뱅크를 선택할 수 있다. 예컨대, 현재 억세스 요청된 뱅크는 제1 뱅크(BANK 1)에 해당하고, 억세스 예측된 뱅크는 제3 뱅크(BANK 3)에 해당할 수 있다.
일 실시예로서, 억세스 예측된 뱅크(예컨대, BANK 3)를 포함하여 두 개 이상의 뱅크들이 다른 뱅크들에 비해 나중에 리프레쉬되도록 설정될 수 있다. 예컨대, 특정 단위의 데이터 정보가 두 개 이상의 뱅크들에 기록될 때, 상기 두 개 이상의 뱅크들은 물리적 또는 논리적으로 인접한 뱅크들일 가능성이 높다. 이에 따라, 어느 하나의 뱅크에 대해 억세스가 요청되면, 상기 뱅크에 물리적 또는 논리적으로 인접한 다른 뱅크들 또한 억세스 요청될 가능성이 높을 수 있다. 이에 따라, 도 16a에 도시된 바와 같이, 제3 뱅크(BANK 3)가 다음에 억세스될 것으로 예측되면, 제3 뱅크(BANK 3)와 인접한 하나 이상의 뱅크(예컨대, BANK 2, BANK 4)가 함께 선택되고, 제2 내지 제4 뱅크들(BANK 2 ~ BANK 4)이 다른 뱅크들에 비해 나중에 리프레쉬되도록 설정될 수 있다.
도 16a의 예에서는, 제2 뱅크(BANK 2), 제3 뱅크(BANK 3) 및 제4 뱅크(BANK 4) 순서로 리프레쉬가 수행되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 즉, 상기 선택된 다수 개의 뱅크들(BANK 2 ~ BANK 4)에 대한 리프레쉬 순서는 임의적으로 설정되어도 무방하며, 예컨대 상기 제3 뱅크(BANK 3)에 인접한 제2 및 제4 뱅크들(BANK 2, BANK 4)이 리프레쉬되고 난 후 상기 다음에 억세스될 것으로 예측된 제3 뱅크(BANK 3)가 리프레쉬될 수 있다. 반대로, 제3 뱅크(BANK 3)가 먼저 리프레쉬된 후 제2 및 제4 뱅크들(BANK 2, BANK 4)이 리프레쉬될 수 있다.
이에 따라, 도 16b에 도시된 바와 같이, 제1 내지 제8 뱅크들(BANK 1 ~ BANK 8)의 두 번째 로우(ROW 2) 이후부터는 제2 내지 제4 뱅크들(BANK 2 ~ BANK 4)이 다른 뱅크들에 비해 상대적으로 나중에 리프레쉬된다. 이후 호스트로부터 다시 요청 및 어드레스가 수신됨에 따라 다음에 억세스될 것으로 예측된 뱅크 및 이에 인접한 뱅크가 판단될 수 있으며, 이에 기반하여 뱅크별 리프레쉬 순서는 다시 변동될 수 있을 것이다.
도 17은 본 발명의 다른 실시예에 따른 메모리 콘트롤러의 구현 예를 나타내는 블록도이다. 도 17에서는 뱅크별 리프레쉬 순서가 우선 정보(Info_prior)에 의해 설정되는 예가 도시된다.
도 17에 도시된 바와 같이, 메모리 콘트롤러(300)는 어드레스 디코더(310), 억세스 예측부(320), 리프레쉬 관리부(330), 스케줄러(340), 커맨드 생성부(350) 및 인터페이스부(360)를 구비할 수 있다.
어드레스 디코더(310)는 외부로부터의 어드레스를 수신하고 이에 대한 디코딩 동작을 수행할 수 있다. 외부(예컨대, 호스트)로부터의 어드레스에 따라 메모리 콘트롤러(300)는 뱅크 별 메모리 동작을 관리할 수 있으며, 호스트로부터의 어드레스를 디코딩함에 의해 억세스 요청된 뱅크가 판단될 수 있다. 또한, 어드레스 디코딩 결과는 억세스 예측부(320)로 제공될 수 있으며, 억세스 예측부(320)는 전술한 실시예들에서 설명된 방식과 동일 또는 유사하게 이후에 억세스될 것으로 예측되는 하나 이상의 뱅크들을 선택할 수 있다.
리프레쉬 관리부(330)는 억세스 예측부(320)로부터의 뱅크 선택 결과에 기반하여 메모리 장치에 대한 리프레쉬 동작을 관리할 수 있다. 리프레쉬 관리부(330)는 리프레쉬 커맨드과 함께, 리프레쉬 대상의 뱅크를 나타내는 뱅크 어드레스(BA)를 생성하고 이를 스케줄러(340)로 제공할 수 있다. 또한, 현재 억세스 요청된 뱅크 및/또는 이후에 억세스될 것으로 예측된 하나 이상의 뱅크의 정보를 기반으로 하여, 리프레쉬 커맨드에 대응하는 뱅크가 우선적으로 리프레쉬될 필요가 있는지를 나타내는 우선 정보(Info_prior)가 스케줄러(340)로 더 제공될 수 있다.
커맨드 생성부(350)는 호스트로부터 제공되는 각종 요청들에 대응하는 커맨드를 생성한다. 스케줄러(340)는 커맨드 생성부(350)로부터의 각종 커맨드들과 리프레쉬 관리부(330)로부터 제공된 리프레쉬 커맨드에 대한 스케줄링을 수행하고, 메모리 장치를 제어하기 위한 커맨드 및 어드레스를 인터페이스부(360)를 통해 메모리 장치로 제공할 수 있다.
스케줄러(340)는 각각의 뱅크 어드레스(BA)에 대응하여 추가로 제공된 우선 정보(Info_prior)를 참조하여 뱅크별 리프레쉬 순서를 판단하고, 판단된 순서에 따라 뱅크들이 리프레쉬되도록 제어할 수 있다. 전술한 실시예에서와 동일 또는 유사하게, 리프레쉬 수행될 뱅크가 억세스를 위해 하나 이상의 로우가 오픈된 뱅크와 매칭되지 않도록 메모리 동작 및 리프레쉬 동작을 스케줄링 할 것이다.
도 18a,b는 뱅크별 리프레쉬 순서를 설정하는 또 다른 예를 나타내는 블록도이다. 도 18a,b에서는 본 발명의 실시예에 따라 뱅크별 리프레쉬 순서를 설정함에 있어서 JEDEC 표준을 만족하도록 순서가 설정되는 예가 도시된다.
도 18a,b를 참조하면, 제1 뱅크(BANK 1)로부터 제4 뱅크(BANK 4)로 순차적으로 리프레쉬되도록 설정되어 있으므로, 이에 따라 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 첫 번째 로우(ROW 1)는 제1 뱅크(BANK 1)로부터 제4 뱅크(BANK 4)로 순차적으로 리프레쉬된다. 이후, 호스트로부터 제공된 어드레스를 분석함에 의해 억세스 요청된 뱅크를 판단하고, 또한 다음에 억세스될 것으로 예측된 하나 이상의 뱅크를 선택할 수 있으며, 예컨대 제1 내지 제3 뱅크들(BANK 1 ~ BANK 3)이 다음에 억세스될 것으로 예측될 수 있다.
다음에 억세스될 것으로 예측된 뱅크들을 상대적으로 나중에 리프레쉬하는 경우, 제1 내지 제4 뱅크들(BANK 1 ~ BANK 4)의 두 번째 로우(ROW 2)에 대한 리프레쉬 동작에서, 제4 뱅크(BANK 4)가 가장 먼저 리프레쉬되고, 나머지 뱅크들(BANK 2 ~ BANK 4)이 그 이후에 리프레쉬될 수 있다. 이 때, 가장 최근에 리프레쉬 수행된 뱅크에 대해 연속적으로 리프레쉬를 수행하지 않는 것으로 협의된 JEDEC 표준을 벗어나게 된다. 즉, 제4 뱅크(BANK 4)의 첫 번째 로우(ROW 1)가 리프레쉬된 후 연속하여 제4 뱅크(BANK 4)의 두 번째 로우(ROW 2)가 리프레쉬되므로, 이는 JEDEC 표준을 벗어나게 된다.
본 발명의 일 실시예에 따르면, 억세스 예측 결과와 가장 최근에 리프레쉬 수행된 뱅크의 정보를 참조하여 뱅크별 리프레쉬 순서가 설정될 수 있다. 예컨대, 도 18a,b에 도시된 바와 같이, 다음에 억세스될 것으로 예측된 제1 내지 제3 뱅크들(BANK 1 ~ BANK 3) 중 어느 하나를 리프레쉬하고, 억세스될 것으로 예측되지 않은 제4 뱅크(BANK 4)를 리프레쉬하여 JEDEC 표준을 만족하도록 한다. 이후, 다음에 억세스될 것으로 예측된 제1 내지 제3 뱅크들(BANK 1 ~ BANK 3) 중 나머지 뱅크들(BANK 1, BANK 2)에 대한 리프레쉬를 수행할 수 있다.
상기 실시예에서는, 다음에 억세스될 것으로 예측된 제1 내지 제3 뱅크들(BANK 1 ~ BANK 3) 중 어느 하나의 뱅크가 임의적으로 선택되는 방식이 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 예컨대, 다음에 억세스될 뱅크를 예측함에 있어서 예측 확률이 가장 높은 뱅크와 가장 낮은 뱅크가 판별될 수 있으며, 예측 확률이 가장 낮은 뱅크를 제4 뱅크(BANK 4)보다 먼저 리프레쉬할 수 있다. 또는, 전술한 실시예들 중, 어느 하나의 뱅크가 이후에 억세스될 것으로 예측되고, 이에 물리적 또는 논리적으로 인접하는 뱅크의 리프레쉬 순서를 변동함에 있어서, 어느 하나의 인접하는 뱅크를 제4 뱅크(BANK 4)보다 먼저 리프레쉬할 수 있다.
도 19는 본 발명의 다른 실시예에 따른 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 19에 도시된 바와 같이, 메모리 시스템은 호스트로부터 데이터에 대한 억세스 요청과 함께, 억세스 요청되는 메모리 셀들을 나타내는 어드레스를 수신할 수 있다(S21). 수신된 어드레스를 분석함에 의해 메모리 장치의 억세스 요청된 뱅크(예컨대, 타겟 뱅크)가 판단될 수 있으며, 또한 타겟 뱅크의 로우가 오픈될 수 있다(S22). 로우가 오픈된 후 소정의 시간 후, 칼럼 정보를 갖는 신호가 메모리 장치로 제공됨에 따라 데이터가 억세스될 수 있다(S23).
메모리 시스템은 데이터의 안정적인 보유를 위하여 메모리 장치에 구비되는 다수의 뱅크들에 대한 리프레쉬를 관리할 수 있다. 메모리 콘트롤러는 리프레쉬 타이밍을 판단하고(S24), 현재 설정된 뱅크별 리프레쉬 순서에 따라 뱅크를 지정하여 리프레쉬 동작을 수행한다.
메모리 콘트롤러는, 리프레쉬가 수행될 뱅크를 지정하기 위한 뱅크 어드레스를 생성하기에 앞서, 현재 리프레쉬가 수행될 뱅크(예컨대, 제1 뱅크)가 데이터를 억세스하기 위해 로우가 이미 오픈된 뱅크에 해당하는지를 판단한다(S25). 즉, 상기한 바와 같이 데이터 억세스를 위하여 로우가 오픈되어 있는 상태에서, 상기 로우가 오픈되어 있는 뱅크를 리프레쉬할 경우에는 상기 로우를 닫는 동작이 필요한 반면에, 로우가 오픈되어 있지 않은 뱅크를 리프레쉬할 경우에는 다른 뱅크의 로우의 오픈 상태와 관련없이 리프레쉬를 수행할 수 있다.
만약, 현재 설정된 순서에 따라 리프레쉬될 제1 뱅크의 하나 이상의 로우가 오픈되지 않은 경우에는 상기 제1 뱅크에 대한 리프레쉬를 수행할 수 있다(S26). 반면에, 리프레쉬될 제1 뱅크의 하나 이상의 로우가 이미 오픈된 경우에는, 로우가 오픈된 뱅크와 리프레쉬될 뱅크가 매칭되는 것을 방지하기 위하여 뱅크별 리프레쉬 순서를 재설정한다(S27). 상기 순서의 재설정에 따라 현재 리프레쉬될 뱅크가 변동될 것이며, 이에 따라 상기 제1 뱅크 이외의 다른 뱅크에 대한 리프레쉬가 수행될 수 있다(S28).
도 20은 본 발명의 실시예에 따른 메모리 콘트롤러 및 메모리 장치를 포함하는 데이터 처리 시스템을 나타내는 도면이다.
도 20에 도시된 바와 같이, 데이터 처리 시스템(20)은 호스트로서 동작하는 어플리케이션 프로세서(Application Processor, 400)와 메모리 장치(500)를 포함할 수 있다. 메모리 장치(400)는 다양한 종류의 메모리가 적용될 수 있으며, 예컨대 전술한 실시예들에 따른 DRAM이 메모리 장치(400)에 적용되거나, 또는 리프레쉬를 요하는 각종 메모리 장치(예컨대, 저항성 메모리 등의 불휘발성 메모리)가 적용될 수도 있다. 또한, 도 20에 도시되지는 않았으나, 본 발명의 실시예에 따른 메모리 장치는 어플리케이션 프로세서(400) 내에 임베디드 메모리로서 구현되어도 무방하다.
어플리케이션 프로세서(400)는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩(SoC)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스(미도시)를 포함할 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property)들을 포함할 수 있다. 시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.
어플리케이션 프로세서(400)는 메모리 장치(500)를 제어하기 위한 메모리 콘트롤 모듈(410)을 포함할 수 있으며, 상기 메모리 콘트롤 모듈(410)은 전술한 실시예들에 따른 메모리 콘트롤러에 대응할 수 있다. 또한, 메모리 장치(500)는 각각 메모리 셀들을 포함하는 다수 개의 메모리 영역들(510)을 포함할 수 있으며, 각각의 메모리 영역은 전술한 뱅크에 대응할 수 있다. 이에 따라, 메모리 콘트롤 모듈(410)은 억세스 예측부(411) 및 리프레쉬 관리부(412)를 포함할 수 있으며, 전술한 실시예들에 따라 메모리 장치(500)의 메모리 동작을 영역 단위로 관리할 수 있다. 리프레쉬 동작에 있어서, 억세스 예측부(411)는 현재 억세스 요청되는 메모리 영역 및/또는 이후에 억세스될 것으로 예측되는 메모리 영역을 판단하고, 그 판단 결과를 제공할 수 있다. 리프레쉬 관리부(412)는 상기 판단 결과에 기반하여 메모리 영역들(510)에 대한 리프레쉬 순서를 설정할 수 있다.
메모리 콘트롤 모듈(410)은 상기 설정된 리프레쉬 순서에 따라 메모리 장치(500)에 대한 리프레쉬를 수행하기 위하여 커맨드(CMD) 및 뱅크 어드레스(BA)를 제공할 수 있다. 또한, 데이터 억세스 등의 메모리 동작에 따라 데이터(DATA)가 어플리케이션 프로세서(400)와 메모리 장치(500) 사이에서 송수신될 수 있다.
도 21은 본 발명의 일 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 21을 참조하면, 메모리 모듈(600)은 다수개의 메모리 칩들(610)과 버퍼 칩(620)을 포함할 수 있다. 메모리 모듈(600)은 각종 형태의 메모리 모듈일 수 있으며, 예컨대 LR-DIMM (Load Reduced Dual In-Line Memory Module) 또는 다른 메모리 모듈일 수 있다. 메모리 모듈(600)은 버퍼 칩(620)을 통해 메모리 콘트롤러(601)와 연결되어 커맨드(ADD), 어드레스(ADD), 데이터(DATA) 등을 수신할 수 있다.
버퍼 칩(620)은 메모리 콘트롤러(601)로부터의 커맨드(ADD) 및 어드레스(ADD)에 따라 메모리 칩들(610)의 리프레쉬 동작을 제어할 수 있다. 또한, 전술한 실시예에 따라 버퍼 칩(620)은 메모리 칩들(610) 각각에 구비되는 다수 개의 뱅크들에 대해 뱅크 별로 리프레쉬 동작을 관리할 수 있다. 즉, 본 실시예에서는 억세스 예측 동작 및/또는 리프레쉬 순서를 설정하는 동작이 버퍼 칩(620) 내부에서 수행될 수 있다.
이에 따라, 버퍼 칩(620)은 억세스 예측부(621) 및 리프레쉬 관리부(622)를 포함할 수 있다. 억세스 예측부(621)는 메모리 콘트롤러(601)로부터의 어드레스(ADD)를 분석함으로써, 현재 억세스 요청되는 메모리 영역 및/또는 이후에 억세스될 것으로 예측되는 메모리 영역을 판단할 수 있다. 리프레쉬 관리부(622)는 상기 판단 결과에 기반하여 메모리 영역들(610)에 대한 리프레쉬 순서를 설정할 수 있다.
본 발명의 실시예에서는, 억세스 예측 동작 및 리프레쉬 순서를 설정하는 동작이 버퍼 칩(620)에서 수행되는 것으로 설명되었으나, 본 발명의 실시예는 이에 국한될 필요는 없다. 예컨대, 억세스 예측 동작은 메모리 콘트롤러(601)에서 수행되고, 메모리 콘트롤러(601)는 억세스 예측 결과를 나타내는 추가의 정보를 버퍼 칩(620)으로 제공할 수 있으며, 이 때 버퍼 칩(620)은 메모리 콘트롤러(601)으로부터 제공되는 추가의 정보를 참조하여 메모리 칩들(610)의 다수의 뱅크들에 대한 뱅크별 리프레쉬 동작을 관리할 수 있을 것이다.
도 22는 본 발명의 일실시예에 따른 메모리 시스템을 장착하는 컴퓨팅 시스템을 나타내는 블록도이다. 모바일 기기나 데스크 탑 컴퓨터와 같은 컴퓨팅 시스템(700)에 본 발명의 메모리 장치가 램(720)으로 장착될 수 있다. 램(720)으로 장착되는 메모리 장치는 앞서 설명되었던 실시예들 중 어느 하나가 적용될 수 있다. 또한, 본 발명의 메모리 콘트롤러는 램(720) 내에 구비될 수 있으며, 또는 메모리 콘트롤 모듈로서 중앙처리 장치(710) 내부에 구현되어도 무방하다.
본 발명의 일실시예에 따른 컴퓨팅 시스템(700)은 중앙처리 장치(710), 램(720), 유저 인터페이스(730)와 불휘발성 메모리(740)를 포함하며, 이들 구성요소는 각각 버스(750)에 전기적으로 연결되어 있다. 불휘발성 메모리(740)는 SSD나 HDD와 같은 대용량 저장 장치가 사용될 수 있다.
상기 컴퓨팅 시스템(700)에 본 발명의 실시예에 따른 메모리 장치(또는, 메모리 시스템)가 적용됨에 따라, 램(720)에 구비되는 메모리 콘트롤러 및/또는 중앙처리 장치(710) 내에 구비될 수 있는 메모리 콘트롤 모듈은, 전술한 실시예에 따른 억세스 예측 동작 및 리프레쉬 관리 동작을 수행할 수 있다. 즉, 램(720)은 다수 개의 메모리 영역들(예컨대, 뱅크들)을 포함하고, 뱅크 별로 리프레쉬 동작이 관리될 수 있다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.

Claims (10)

  1. 메모리 콘트롤러의 동작방법에 있어서, 상기 메모리 콘트롤러는 다수 개의 뱅크들에 대한 억세스 동작을 관리하고,
    어드레스를 분석함에 의해 억세스 요청된 뱅크를 판단하는 단계;
    상기 판단 결과에 기반하여, 억세스될 것으로 예측되는 하나 이상의 뱅크들을 선택하는 단계;
    상기 선택 결과에 따라 상기 뱅크들에 대한 리프레쉬 순서를 설정하는 단계; 및
    상기 설정된 순서에 따라 뱅크들에 대한 리프레쉬 동작을 제어하는 단계를 구비하는 메모리 콘트롤러의 동작방법.
  2. 제1항에 있어서, 상기 하나 이상의 뱅크들을 선택하는 단계는,
    억세스 요청 및 이에 대응하는 뱅크 어드레스에 관련된 억세스 히스토리에 기반하여, 각각의 뱅크에 대한 억세스 가능성에 따라 하나 이상의 뱅크들을 선택하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
  3. 제1항에 있어서, 상기 하나 이상의 뱅크들을 선택하는 단계는,
    다수의 데이터를 포함하는 단위로서 데이터 정보가 상기 다수 개의 뱅크들에 저장된 상태에 따라, 상기 억세스 요청된 뱅크에 관련된 적어도 하나의 다른 뱅크를 선택하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
  4. 제1항에 있어서, 상기 하나 이상의 뱅크들을 선택하는 단계는,
    상기 다수 개의 뱅크들 중 리프레쉬가 수행되지 않은 뱅크들 중에서, 상기 판단 결과에 기반하여 하나 이상의 뱅크들을 선택하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
  5. 제1항에 있어서, 상기 리프레쉬 순서를 설정하는 단계는,
    다음에 억세스될 것으로 예측된 하나 이상의 뱅크들의 리프레쉬가 다른 뱅크들에 비해 늦게 수행되도록 리프레쉬 순서를 설정하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
  6. 제1항에 있어서, 상기 리프레쉬 순서를 설정하는 단계는,
    상기 선택 결과에 따라, 상기 다수 개의 뱅크들 중 리프레쉬가 수행되지 않은 뱅크들 사이의 리프레쉬 순서를 변동하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
  7. 제1항에 있어서,
    상기 다수 개의 뱅크들 각각은 다수 개의 로우들을 포함하고, 상기 리프레쉬는 각각의 뱅크의 로우 단위로 수행되며,
    상기 리프레쉬 순서를 설정하는 단계는, 상기 다수 개의 뱅크들의 어느 하나의 로우에 대한 리프레쉬 순서를 설정하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
  8. 다수의 메모리 영역들을 관리하는 메모리 콘트롤러의 동작방법에 있어서,
    상기 다수의 메모리 영역들 중 일부의 메모리 영역들에 대한 리프레쉬를 수행하는 단계;
    외부로부터 수신된 억세스 요청 및 이에 대응하는 어드레스를 수신하는 단계;
    상기 어드레스를 분석한 결과에 따라, 리프레쉬가 수행되지 않은 나머지 메모리 영역들에 대한 리프레쉬 순서를 변동하는 단계; 및
    상기 변동된 순서에 따라 상기 나머지 메모리 영역들에 대한 리프레쉬를 수행하는 단계를 구비하는 메모리 콘트롤러의 동작방법.
  9. 제8항에 있어서, 상기 리프레쉬 순서를 변동하는 단계는,
    상기 어드레스를 분석한 결과에 따라, 현재 억세스 요청된 뱅크 및/또는 다음에 억세스될 것으로 예측되는 뱅크를 판단한 결과에 기반하여 리프레쉬 순서를 변동하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
  10. 제8항에 있어서, 상기 리프레쉬 순서를 변동하는 단계는,
    데이터 억세스를 위해 하나 이상의 로우가 기 오픈된 뱅크에 대해 리프레쉬가 수행되지 않도록 리프레쉬 순서를 변동하는 것을 특징으로 하는 메모리 콘트롤러의 동작방법.
KR1020150044390A 2015-03-30 2015-03-30 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법 KR20160116533A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150044390A KR20160116533A (ko) 2015-03-30 2015-03-30 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법
TW105107995A TW201635152A (zh) 2015-03-30 2016-03-16 記憶體控制器的操作方法
CN201610186832.6A CN106024052A (zh) 2015-03-30 2016-03-29 存储器控制器和存储器系统的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150044390A KR20160116533A (ko) 2015-03-30 2015-03-30 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법

Publications (1)

Publication Number Publication Date
KR20160116533A true KR20160116533A (ko) 2016-10-10

Family

ID=57080957

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150044390A KR20160116533A (ko) 2015-03-30 2015-03-30 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법

Country Status (3)

Country Link
KR (1) KR20160116533A (ko)
CN (1) CN106024052A (ko)
TW (1) TW201635152A (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200004194A (ko) * 2018-07-03 2020-01-13 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
KR20200119633A (ko) * 2019-04-10 2020-10-20 에스케이하이닉스 주식회사 히스토리 기반 메모리 시스템 및 그 제어 방법
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US11462255B2 (en) 2020-09-03 2022-10-04 Samsung Electronics Co., Ltd. Memory device, a controller for controlling the same, a memory system including the same, and a method of operating the same

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180106017A (ko) * 2017-03-17 2018-10-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI670599B (zh) * 2018-08-28 2019-09-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11977787B2 (en) 2018-02-05 2024-05-07 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11669260B2 (en) 2018-02-05 2023-06-06 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US11354056B2 (en) 2018-02-05 2022-06-07 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11706317B2 (en) 2018-02-12 2023-07-18 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
KR20200004194A (ko) * 2018-07-03 2020-01-13 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US11573901B2 (en) 2018-07-11 2023-02-07 Micron Technology, Inc. Predictive paging to accelerate memory access
KR20200119633A (ko) * 2019-04-10 2020-10-20 에스케이하이닉스 주식회사 히스토리 기반 메모리 시스템 및 그 제어 방법
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US11740793B2 (en) 2019-04-15 2023-08-29 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US11462255B2 (en) 2020-09-03 2022-10-04 Samsung Electronics Co., Ltd. Memory device, a controller for controlling the same, a memory system including the same, and a method of operating the same
US11869571B2 (en) 2020-09-03 2024-01-09 Samsung Electronics Co., Ltd. Memory device, a controller for controlling the same, a memory system including the same, and a method of operating the same

Also Published As

Publication number Publication date
CN106024052A (zh) 2016-10-12
TW201635152A (zh) 2016-10-01

Similar Documents

Publication Publication Date Title
KR20160116533A (ko) 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법
US9653141B2 (en) Method of operating a volatile memory device and a memory controller
KR102329673B1 (ko) 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
US9293188B2 (en) Memory and memory controller for high reliability operation and method
US9275717B2 (en) Refresh address generator, volatile memory device including the same and method of refreshing the volatile memory device
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
US8935467B2 (en) Memory system, and a method of controlling an operation thereof
KR100824487B1 (ko) 버퍼된 기록들 및 메모리 페이지 제어
KR102389820B1 (ko) 트레이닝 동작을 제어하는 메모리 컨트롤러, 메모리 시스템 및 그의 동작방법
US9336855B2 (en) Methods and systems for smart refresh of dynamic random access memory
KR20200131345A (ko) 판독 우선 순위를 가진 명령 선택 정책
US10599579B2 (en) Dynamic cache partitioning in a persistent memory module
KR20200108773A (ko) 연산 처리를 수행하는 메모리 장치, 이를 포함하는 데이터 처리 시스템 및 메모리 장치의 동작방법
US9449673B2 (en) Memory device and memory system having the same
US20170228175A1 (en) Memory controller, memory system managing refresh operation and operating method of the memory controller
US7328311B2 (en) Memory controller controlling cashed DRAM
US11610624B2 (en) Memory device skipping refresh operation and operation method thereof
US10423548B2 (en) Memory controller, control method for the memory controller, and control method for memory
US7080217B2 (en) Cycle type based throttling
JP2007249837A (ja) メモリ制御装置、メモリ制御方法及び携帯機器
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
KR20140081162A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10185510B2 (en) Bank interleaving controller and semiconductor device including the same
US12056371B2 (en) Memory device having reduced power noise in refresh operation and operating method thereof
KR20230082529A (ko) 리프레쉬 동작에서 파워 노이즈를 감소시킨 메모리 장치 및 그 동작방법