KR102343550B1 - 스몰 액티브 커맨드를 이용한 메모리 시스템 - Google Patents

스몰 액티브 커맨드를 이용한 메모리 시스템 Download PDF

Info

Publication number
KR102343550B1
KR102343550B1 KR1020200044249A KR20200044249A KR102343550B1 KR 102343550 B1 KR102343550 B1 KR 102343550B1 KR 1020200044249 A KR1020200044249 A KR 1020200044249A KR 20200044249 A KR20200044249 A KR 20200044249A KR 102343550 B1 KR102343550 B1 KR 102343550B1
Authority
KR
South Korea
Prior art keywords
memory
row address
page
memory device
active command
Prior art date
Application number
KR1020200044249A
Other languages
English (en)
Other versions
KR20210126419A (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 원광대학교산학협력단
Priority to KR1020200044249A priority Critical patent/KR102343550B1/ko
Publication of KR20210126419A publication Critical patent/KR20210126419A/ko
Application granted granted Critical
Publication of KR102343550B1 publication Critical patent/KR102343550B1/ko

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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

Landscapes

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

Abstract

본 발명은 메모리 시스템에 관한 것으로서, 메모리 셀 어레이를 포함하는 메모리 장치; 및 상기 메모리 장치에 대한 동작을 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템에 있어서, 상기 메모리 컨트롤러는, 메모리 장치의 메모리 셀 어레이에서 참조된 로우 페이지의 로우 주소 및 해당 로우 주소가 참조된 횟수인 히스토리 정보를 갖는 핫 페이지 테이블; 및 상기 핫 페이지 테이블에 기초하여 핫 페이지로 식별된 로우 페이지의 로우 주소와 해당 로우 주소에 대한 인덱스 번호를 저장하는 인덱스 테이블을 포함하고, 상기 메모리 장치는, 상기 메모리 컨트롤러에 저장된 인덱스 테이블과 동기화된 인덱스 테이블을 포함하고, 상기 메모리 컨트롤러는 상기 인덱스 테이블에 저장되어 있는 로우 주소가 참조될 경우 해당 로우 주소에 상응하는 인덱스 번호를 포함하는 스몰 액티브 커맨드를 메모리 장치로 전송하고, 상기 메모리 장치는 자신이 저장하고 있는 상기 인덱스 테이블을 참조하여 상기 스몰 액티브 커맨드에 포함된 인덱스 번호를 로우 주소로 변환하고 해당 로우 주소에 대한 액티베이션 동작을 수행하는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템을 제공한다.

Description

스몰 액티브 커맨드를 이용한 메모리 시스템{MEMORY SYSTEM USING SMALL ACTIVE COMMAND}
본 발명은 메모리 시스템에 관한 것으로서, 보다 상세하게는 메모리 장치로 전송되는 다중 패킷의 액티브 커맨드(active command)를 개선하여 커맨드 버스의 전력 소모량을 감소시킬 수 있는 메모리 시스템에 관한 것이다.
DRAM(Dynamic Random Access Memory)은 IT1C로 메모리 셀을 구현할 수 있는 고집적성과 빠른 접근 시간의 특성으로 지난 수십 년간 메인 메모리를 구현하기 위한 기억 장치로 주요하게 사용되고 있으며, 컴퓨팅 환경의 고성능화와 CMOS 공정 기술의 발전으로 DRAM의 크기가 계속 증가하는 추세이다. 따라서 DRAM 내부에 저장된 데이터의 위치를 가리키기 위한 메모리 주소의 크기도 증가하게 되고 이는 DRAM 커맨드를 전송하기 위한 버스 폭(bus width)의 확장을 필요로 한다.
그러나, 버스 폭을 증가시키면 메모리 컨트롤러와 DRAM 간의 고속 인터페이스에 부정적인 영향을 미칠 수 있다는 문제가 있다. 즉, 주소 버스가 확장됨에 따라 신호 무결성(signal integrity)을 유지하기 위한 타이밍 마진(margin)이 감소하고 제조 비용뿐만 아니라 버스 폭 증가로 인한 전력 소비 역시 증가한다.
한편, 이를 방지하기 위해 LPDDR4(Low-power DRAM)와 HBM(High Bandwidth Memory)과 같은 최근의 고용량 DRAM은 제한된 버스 폭의 크기를 유지하면서 패킷화(packetized manner)된 방식으로 DRAM 커맨드를 여러 사이클에 걸쳐 전송하는 방법을 사용하고 있다.
DRAM 커맨드 중 가장 많은 주소 정보를 포함하는 커맨드는 액티브(ACTIVE) 커맨드이다. 액티브 커맨드는 DRAM의 구조적인 특성으로 인해 필요한 커맨드로 메모리에 데이터를 읽거나 쓰는 동작을 수행하기 전, 로우 페이지(Row Page)를 미리 활성화하기 위해 DRAM으로 전송되는 커맨드로서, 일반적으로 액티브(ACTIVE) 커맨드는 최대 16비트 크기의 로우 주소(Row Address)를 담고 있다.
LPDDR4와 HBM은 모두 하나의 액티브 커맨드 전송을 위해 공통적으로 두 개의 패킷을 구성하여 전송하고 있지만 전송하는 방식에 차이가 있다. LPDDR4는 클럭(clock)의 상승 엣지(rising edge)에만 패킷을 전송하는 방식으로 4 사이클에 걸쳐 액티브 커맨드를 전송하고 HBM은 DDR(Double Data Rate) 방식으로 2사이클에 걸쳐 액티브 커맨드를 전송한다.
그러나, 이러한 방식에 의하는 경우에도, DRAM에서 16비트 로우 주소가 현재 DRAM 용량에서 모두 사용되고 있기 때문에 향후 초고용량 메모리를 구현하기 위한 차세대 DRAM에서는 다수의 패킷이 필요할 수 있다는 한계가 있다.
본 발명은 상기한 바와 같은 한계점을 해결하기 위한 것으로서, 메모리 장치로 전송되는 다중 패킷의 액티브 커맨드(active command)를 개선하여 작은 크기를 갖는 인덱스 번호를 포함하는 스몰 액티브 커맨드(small active command)를 제공함으로써 메모리 장치로 전송되는 커맨드 버스의 전력 소모량을 감소시킬 수 있는 스몰 액티브 커맨드를 이용한 메모리 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 메모리 장치의 용량이 대용량화되어 메모리 장치로 전송되어야 하는 메모리 주소 정보의 양이 증가하더라도 단일 패킷으로 로우 주소를 전송할 수 있으므로 성능 저하 없이 전력 소모를 줄일 수 있는 메모리 시스템을 제공하는 것을 또 다른 목적으로 한다.
또한, 본 발명은, 종래 사용되는 액티브 커맨드와 프리차지 커맨드의 커맨드 규격에 벗어나지 않으면서 작은 크기의 커맨드를 제공할 수 있으므로, 기존 메모리 시스템에 대한 특별한 수정 없이 간편하고 효율적인 방식으로 전력 소모량을 감소시킬 수 있는 메모리 시스템을 제공하는 것을 또 다른 목적으로 한다.
본 발명은 상기한 바와 같은 한계점을 해결하기 위한 것으로서, 메모리 셀 어레이를 포함하는 메모리 장치; 및 상기 메모리 장치에 대한 동작을 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템에 있어서, 상기 메모리 컨트롤러는, 메모리 장치의 메모리 셀 어레이에서 참조된 로우 페이지의 로우 주소 및 해당 로우 주소가 참조된 횟수인 히스토리 정보를 갖는 핫 페이지 테이블; 및 상기 핫 페이지 테이블에 기초하여 핫 페이지로 식별된 로우 페이지의 로우 주소와 해당 로우 주소에 대한 인덱스 번호를 저장하는 인덱스 테이블을 포함하고, 상기 메모리 장치는, 상기 메모리 컨트롤러에 저장된 인덱스 테이블과 동기화된 인덱스 테이블을 포함하고, 상기 메모리 컨트롤러는 상기 인덱스 테이블에 저장되어 있는 로우 주소가 참조될 경우 해당 로우 주소에 상응하는 인덱스 번호를 포함하는 스몰 액티브 커맨드를 메모리 장치로 전송하고, 상기 메모리 장치는 자신이 저장하고 있는 상기 인덱스 테이블을 참조하여 상기 스몰 액티브 커맨드에 포함된 인덱스 번호를 로우 주소로 변환하고 해당 로우 주소에 대한 액티베이션 동작을 수행하는 것을 특징으로 하는 메모리 시스템을 제공한다.
여기에서, 상기 메모리 컨트롤러는, 메모리 장치의 특정 로우 주소에 대한 액티브 커맨드(active command)가 발생한 경우, 핫 페이지 테이블에 저장된 히스토리 정보 필드를 모두 1비트씩 오른쪽으로 시프트하고, 해당 로우 주소가 핫 페이지 테이블에 저장되어 있는 경우 히스토리 정보 필드의 최상위 비트를 1로 변경하고, 해당 로우 주소가 핫 페이지 테이블에 존재하지 않는 경우 해당 로우 주소를 핫 페이지 테이블에 저장하고 히스토리 정보 필드의 최상위 비트를 1로 변경함으로써 핫 페이지 테이블을 구성할 수 있다.
또한, 상기 메모리 컨트롤러는, 상기 핫 페이지 테이블의 히스토리 정보 필드의 값이 미리 설정된 값 이상인 경우 해당 로우 주소를 핫 페이지로 식별하고, 상기 핫 페이지로 식별된 액티브 커맨드의 로우 주소의 적어도 일부 비트를 인덱스 테이블에 저장할 수 있다.
또한, 상기 메모리 컨트롤러는, 참조된 로우 페이지가 핫 페이지인 경우 해당 로우 페이지에 대한 인덱스 번호를 포함하는 스몰 프리차지 커맨드를 메모리 장치로 전송하고, 상기 메모리 장치는, 상기 스몰 프리차지 커맨드에 포함된 인덱스 번호 및 로우 페이지의 로우 주소를 인덱스 테이블에 저장하여 인덱스 테이블을 업데이트하여 메모리 컨트롤러의 인덱스 테이블과 동기화시킨 후 프리차지 동작을 수행할 수 있다.
또한, 상기 메모리 컨트롤러는, 참조될 로우 페이지가 핫 페이지로 식별되고 해당 로우 페이지가 인덱스 테이블에 저장되어 있지 않은 경우 해당 로우 페이지를 인덱스 테이블에 저장하여 인덱스 테이블을 업데이트하고, 액티브 커맨드를 메모리 장치로 전송하여 메모리 장치에서 액티베이션이 수행되도록 할 수 있다.
또한, 상기 메모리 컨트롤러는, 참조될 로우 주소의 상위 주소를 제1 클럭에서 메모리 장치로 전달하고, 뱅크 주소 및 인덱스 정보를 제2 클럭에서 메모리 장치로 전달할 수 있다.
또한, 상기 스몰 액티브 커맨드는, 제2 클럭의 유효(vaild)(V) 비트에 의해 액티브 커맨드와 구별될 수 있다.
본 발명에 의하면, 메모리 장치로 전송되는 다중 패킷의 액티브 커맨드(active command)를 개선하여 작은 크기를 갖는 인덱스 번호를 포함하는 스몰 액티브 커맨드(small active command)를 제공함으로써 메모리 장치로 전송되는 커맨드 버스의 전력 소모량을 감소시킬 수 있는 스몰 액티브 커맨드를 이용한 메모리 시스템을 제공할 수 있다.
또한, 본 발명에 의하면, 메모리 장치의 용량이 대용량화되어 메모리 장치로 전송되어야 하는 메모리 주소 정보의 양이 증가하더라도 단일 패킷으로 로우 주소를 전송할 수 있으므로 성능 저하 없이 전력 소모를 줄일 수 있는 메모리 시스템을 제공할 수 있다.
또한, 본 발명에 의하면, 종래 사용되는 액티브 커맨드와 프리차지 커맨드의 커맨드 규격에 벗어나지 않으면서 작은 크기의 커맨드를 제공할 수 있으므로, 기존 메모리 시스템에 대한 특별한 수정 없이 간편하고 효율적인 방식으로 전력 소모량을 감소시킬 수 있는 메모리 시스템을 제공할 수 있다.
도 1은 본 발명의 일실시예에 의한 메모리 시스템(100)을 나타낸 블록도이다.
도 2는 LPDDR4 DRAM의 커맨드 진리표(truth table)로서 본 발명과 밀접하게 관련되는 액티브(ACTIVE)와 프리차지(PRECHARGE) 커맨드의 진리표를 나타낸 것이다.
도 3은 본 발명에 의한 메모리 장치(10)에 포함된 인덱스 테이블(11)과 메모리 컨트롤러(20)에 포함된 핫 페이지 테이블(21) 및 인덱스 테이블(22)의 일예를 나타낸 것이다.
도 4는 본 발명에 의한 메모리 시스템(100)에서 액티브 커맨드(active command)가 수행되는 과정을 나타낸 흐름도이다.
도 5는 본 발명에 의한 메모리 시스템(100)에서 프리차지 커맨드(precharge command)가 수행되는 과정을 나타낸 흐름도이다.
도 6은 LPDDR4 DRAM의 커맨드 진리표(truth table)로서 본 발명에 의한 스몰 액티브 커맨드와 스몰 프리차지 커맨드의 진리표를 나타낸 것이다.
도 7은 실험에 사용한 ARM 프로세서와 LPDDR4 DRAM의 파라미터를 나타낸 것이다.
도 8은 실험에서 사용한 LPDDR4 DRAM의 타이밍 파라미터를 나타낸 것이다.
도 9는 기존의 액티브 커맨드 대비 스몰 액티브 커맨드의 비율을 정규화하여 나타낸 것이다.
도 10은 본 발명에 의한 스몰 액티브 커맨드 기법을 적용하여 수행한 벤치마크의 실행시간(execution time)을 나타낸 것이다.
도 11은 본 발명에 의한 CACTI 시뮬레이션 결과를 나타낸 것이다.
도 12는 본 발명에 의한 스몰 액티브 커맨드 기법으로 인한 오버헤드(overhead)를 포함한 커맨드 버스의 평균적인 전력소비를 나타낸 것이다.
이하, 첨부 도면을 참조하여 본 발명에 의한 실시예를 상세하게 설명하기로 한다.
도 1은 본 발명의 일실시예에 의한 메모리 시스템(100)을 나타낸 블록도이다.
도 1을 참조하면, 본 실시예의 메모리 시스템(100)은 메모리 장치(10) 및 메모리 컨트롤러(20)를 포함한다.
메모리 장치(10)는 종래 알려져 있는 DRAM(Dynamic Random Access Memory) 등과 같은 랜덤 액세스 메모리(RAM, Random Access Memory) 장치인 것이 바람직하다. 이러한 메모리 장치(10)는, 종래 알려져 있는 바와 같이, 메모리 셀 어레이를 포함하며, 메모리 컨트롤러(20)로부터 전송되는 커맨드(command)에 따라 읽기(read), 쓰기(write) 동작을 수행한다.
메모리 컨트롤러(20)는, 메모리 장치(10)에 대한 동작을 제어하는 수단으로서, 메모리 인터페이스를 통해 커맨드를 포함하는 각종 신호를 메모리 장치(10)로 전송함으로써 메모리 장치(10)에 대한 읽기/쓰기 동작을 제어한다.
이러한 메모리 장치(10) 및 메모리 컨트롤러(20)의 일반적인 구성은 종래 알려져 있는 것과 동일하므로 여기에서는 상세 설명은 생략한다. 다만, 본 발명에서의 메모리 장치(10)는 인덱스 테이블(Index Table, 11)을 더 포함하고, 메모리 컨트롤러(20)는 핫 페이지 테이블(Hot Page Table, 21) 및 인덱스 테이블(22)을 더 포함한다는 점에서 종래의 기술과 차이가 있으며, 이하 이들의 구체적인 구성 및 동작에 대해 설명한다.
이에 앞서 우선 메모리 장치(10)및 메모리 컨트롤러(20)의 기본 동작 및 커맨드에 대해 DRAM을 예로 들어서 간단히 설명한다.
DRAM의 기본적인 동작은 액티베이션(Activation), 프리차지(Precharge), 읽기/쓰기(Read/Write), 리프레쉬(Refresh) 동작으로 구분할 수 있다. 액티베이션(Activation)은 DRAM에 읽기/쓰기를 수행하기 전 반드시 선행되어야 하는 동작으로서, DRAM의 메모리 셀 어레이의 해당 주소의 로우 페이지(Row page)를 센스 앰프(sense amp)(또는 로우 버퍼(row buffer))로 저장하여 버퍼와 같이 메모리 셀 어레이의 데이터를 저장하는 동작을 수행한다. 이후, 로우 버퍼(row buffer)에 활성화되어 있는 로우(Row)를 통해 읽기/쓰기(Read/Write)를 수행할 수 있다. 하나의 로우(Row)는 많은 수의 메모리 셀을 포함하고 있고 액티베이션 동작을 수행하는 비용이 비싸기 때문에 보통 두 개의 로우 버퍼(row buffer) 관리 정책을 사용하여 액티베이션 동작을 위한 지연 시간 및 전력 소비 부담(overhead)을 완화시킨다.
우선, 오픈 페이지(Open-page) 정책은 다른 로우가 활성화 될 때까지 현재 로우 버퍼에 보관된 로우를 최대한 유지하는 방법이다. 활성화된 로우에 접근하는 읽기 및 쓰기 요청으로 로우 버퍼 히트(row buffer hit)가 발생하면 추가적인 액티베이션을 위해 필요한 지연시간 및 전력 소비를 제거할 수 있다. 따라서 오픈-페이지 정책은 응용 프로그램에서 메모리 접근 패턴이 높은 데이터 지역성(data locality)을 보이는 경우 유용하다. 그러나 뒤따르는 메모리 접근이 현재 활성화 되어 있는 로우가 아닐 경우 오픈-페이지 정책은 효과적이지 않다. 다른 로우로 읽기/쓰기가 필요한 경우 현재 활성화된 로우를 닫기 위해 프리차지와 액티베이션이 필요하게 된다. 프리차지(Precharge) 동작은 로우 버퍼(row buffer)에 보관되어 있는 로우(Row)를 다시 메모리 셀로 저장하는 동작이다. 메모리 주소를 재구성(remapping)하여 현재 활성화 되어 있는 로우의 재사용성을 높이려는 연구가 진행되었다.
한편, 클로즈-페이지(Close-page) 정책은 다음 메모리 요청을 준비하기 위해 읽기/쓰기(Read/Write) 후 즉시 프리차지(Precharge)를 수행하는 방식이다. 다른 로우 메모리 접근 요청이 발생할 경우 오픈-페이지 정책에서는 프리차지가 필요한데 반해 클로즈-페이지 정책은 뒤따르는 메모리 접근이 이전과 다른 로우일 경우 지연 시간 측면에서 이점이 있다. 고성능 멀티코어 프로세서는 다수의 응용 프로그램이 동시에 수행되며 메모리 접근 패턴이 낮은 지역성을 보이는 경향을 보이기 때문에 클로즈-페이지 정책이 유리하다.
한편, 메모리 컨트롤러(20)에서 DRAM으로 전송되는 명령어는 JEDEC에서 발표한 커맨드 규칙을 따른다. 도 2는 LPDDR4 DRAM의 커맨드 진리표(truth table)로서 본 발명과 밀접하게 관련되는 액티브(ACTIVE)와 프리차지(PRECHARGE) 커맨드의 진리표를 나타낸 것이다.
도 2에 나타낸 바와 같이, LPDDR4에서 액티브 커맨드(active command)를 통해 전송되는 로우 주소(row address)의 크기는 최대 16비트(R0-R15)이고, 액티브-1(ACTIVE-1)과 액티브-2(ACTIVE-2)로 두 개의 패킷으로 나누어 클럭의 상승 엣지(rising edge) 타이밍에 총 4 클럭 사이클에 걸쳐 전송된다.
액티브-1(ACTIVE-1) 커맨드는 대상 뱅크(bank) 주소와 상위 로우 주소를 포함하고 있으며 액티브-2(ACTIVE-2) 커맨드는 하위 로우 주소를 포함한다.
여기에서, V(valid)로 표시된 부분은 커맨드를 해석(decode)할 때 사용되지 않는 부분으로 0 혹은 1의 값을 나타낸다.
프리차지(PRECHARGE) 커맨드는 AB(CA5)신호를 통해 올 뱅크 프리차지(all bank precharge)와 퍼뱅크 프리차지(per bank precharge)를 구별한다. 퍼뱅크 프리차지(per bank precharge)는 해당 뱅크의 활성화된 로우를 닫고 올 뱅크 프리차지(all bank precharge)는 전송된 뱅크 주소와 상관없이 DRAM의 모든 활성화된 로우를 닫는다. 본 발명에서는 이러한 액티브 커맨드와 프리차지 커맨드를 개선하여 종래 다중 패킷으로 전송되는 액티브 커맨드를 작은 크기로 만들어서 단일 패킷의 액티브 커맨드(이를 이하 본 발명에서는 스몰 액티브 커맨드(small active command)라 한다)를 이용한 메모리 시스템(100)을 제공한다.
다음으로, 본 발명에 의한 메모리 장치(10) 및 메모리 컨트롤러(20)에 포함된 핫 페이지 테이블 및 인덱스 테이블의 구체적인 구성 및 동작에 대해 설명한다.
도 3은 본 발명에 의한 메모리 장치(10)에 포함된 인덱스 테이블(11)과 메모리 컨트롤러(20)에 포함된 핫 페이지 테이블(21) 및 인덱스 테이블(22)의 일예를 나타낸 것이다. 도 3에서는 메모리 장치(10)가 DRAM인 것으로 하여 설명한다.
도 3을 참조하면, 메모리 컨트롤러(20)는 도 1에서 설명한 바와 같이, 핫 페이지 테이블(Hot Page Table, 21) 및 인덱스 테이블(Index Table, 22)을 포함한다.
핫 페이지 테이블(21)은 메모리 장치(10)인 DRAM의 메모리 셀 어레이에서 참조되는 로우 페이지(Row Page)의 로우 주소(Row Address)와 해당 로우 주소가 참조된 횟수인 히스토리(history) 정보를 가지며, 메모리 컨트롤러(20)는 이를 이용하여 자주 참조되는 로우 페이지를 핫 페이지(Hot page)로 분류한다.
인덱스 테이블(22)은 핫 페이지 테이블(21)에 기초하여 핫 페이지로 분류된 로우 페이지의 로우 주소와 해당 로우 주소에 대한 인덱스 번호를 저장한다.
한편, 메모리 장치(10)에 구비되는 인덱스 테이블(11)은 메모리 컨트롤러(20)에 구비된 인덱스 테이블(22)과 동기화된 것이다.
여기서, 히스토리 정보는 DRAM의 메모리 셀 어레이의 로우 페이지의 로우 주소가 최근 얼마나 많이 참조되었는가 즉, 해당 로우 주소에 대해 액티브 커맨드(active command)가 최근에 얼마나 많이 발생하였는가를 나타내는 정보이다.
도 3의 예에서는, 핫 페이지 테이블(21)은 4개의 엔트리(entry)로 구성되며, 각 엔트리는 상위 12비트(R0~R11)의 로우 주소와 4비트의 히스토리 정보로 구성된 경우를 예시적으로 나타내었다.
인덱스 테이블(22) 또한 4개의 엔트리로 구성되며, 각 엔트리는 2비트의 인덱스 번호와 상위 12비트의 로우 주소로 구성되어 있다.
한편, 본 발명에서는, 메모리 장치(10)의 메모리 셀 어레이는 복수개의 뱅크(Bank)를 포함할 수 있는데, 핫 페이지 테이블(21) 및 인덱스 테이블(11,22)은 뱅크별로 독립적인 동작을 수행하기 때문에 메모리 장치(10)에 구비되는 뱅크의 갯수(예컨대 LPDDR4의 경우에는 8개)만큼 구비된다.
핫 페이지 테이블(21)을 구성하는 방법으로는 여러가지 방법을 사용할 수 있으나 본 발명에서는 다음과 같이 시프트(shift) 연산을 이용한 방법을 사용한다.
우선, 메모리 장치(DRAM, 10)가 복수개의 뱅크로 구성된 경우, DRAM(10)의 특정 뱅크의 특정 로우 주소에 대한 액티브 커맨드(active command)가 발생한 경우, 해당 뱅크의 핫 페이지 테이블(21)에 저장된 히스토리 정보 필드를 모두 1비트씩 오른쪽으로 시프트(shift)한다.
해당 로우 주소가 핫 페이지 테이블(21)에 저장되어 있는 경우, 히스토리 정보 필드의 최상위 비트를 1로 변경한다. 만약, 해당 로우 주소가 핫 페이지 테이블(21)에 없다면 해당 로우 주소를 LRU(Least Recently Used) 방식으로 엔트리에 저장하고 히스토리 정보 필드의 최상위 비트를 1로 변경한다. 따라서 히스토리 정보 필드의 상위 비트는 최근에 참조가 되었음을 나타낸다.
이와 같이 핫 페이지 테이블(21)의 히스토리 정보가 구성되면, 메모리 컨트롤러(20)는 이에 기초하여 핫 페이지를 식별한다.
핫 페이지의 식별은, 히스토리 정보 필드의 값이 미리 설정된 값 이상인 경우(예컨대, 10이상인 경우), 해당 로우 주소를 핫 페이지로 식별하는 방법을 사용할 수 있다. 핫 페이지로 식별되면, 핫 페이지로 결정된 액티브 커맨드의 로우 주소의 적어도 일부 비트(R0-R11)는 인덱스 테이블(22)에 저장된다.
이러한 핫 페이지 식별 방법은 메모리 장치(10)로 액티브 커맨드가 전송되기 전 메모리 컨트롤러(20)의 커맨드 큐(CMD queue)에서 대기하는 동안 수행되기 때문에 이로 인한 성능 감소를 유발하지 않는다.
이러한 상태에서, 메모리 컨트롤러(20)는 인덱스 테이블(22)에 저장되어 있는 로우 주소가 참조될 경우 해당 로우 주소에 상응하는 인덱스 번호를 포함하는 스몰 액티브 커맨드(small active command)를 메모리 장치(10)로 전송하고, 메모리 장치(10)는 자신이 저장하고 있는 인덱스 테이블(11)를 참조하여 상기 스몰 액티브 커맨드에 포함된 인덱스 번호를 로우 주소로 변환하고 해당 로우 주소에 대한 액티베이션 동작을 수행한다.
여기에서, 스몰 액티브 커맨드(small active command)는, 종래의 액티브 커맨드(active command)에 포함되는 로우 주소 대신 이에 비해 작은 크기를 갖는 인덱스 번호만을 포함하며, 종래의 일반적인 액티브 커맨드와 구별하기 위하여 본 명세서에서는 이와 같이 지칭하는 것으로 한다.
한편, 핫 페이지가 아닌 것으로 식별된 로우 주소가 참조된 경우, 메모리 컨트롤러(20)는 종래의 일반적인 액티브 커맨드(active command)를 DRAM(10)으로 전송하고 DRAM(10)는 액티브 커맨드에 따라 해당 로우 주소에 대한 액티베이션 동작을 수행한다.
다음으로, 도 4 및 도 5를 참조하여 본 발명에 의한 메모리 시스템(100)의 전체적인 동작에 대해 설명한다.
도 4는 본 발명에 의한 메모리 시스템(100)에서 액티브 커맨드(active command)가 수행되는 과정을 나타낸 흐름도이다.
도 4에서 흰색은 메모리 컨트롤러(20)에서 수행되는 것이고, 회색은 메모리 장치(10)에서 수행되는 과정을 각각 나타낸 것이다.
우선, 액티브 커맨드가 발생하면(S100), 메모리 컨트롤러(20)는 핫 페이지 테이블(21)을 업데이트한다(S110). 여기에서, 액티브 커맨드는 앞서 설명한 바와 같이 종래의 일반적인 액티브 커맨드를 의미한다.
핫 페이지 테이블(21)의 업데이트는 전술한 바와 같이, 핫 페이지 테이블(21)에 저장된 히스토리 정보 필드를 모두 1비트씩 오른쪽으로 시프트하고, 해당 로우 주소가 핫 페이지 테이블(21)에 저장되어 있는 경우 히스토리 정보 필드의 최상위 비트를 1로 변경하고, 해당 로우 주소가 핫 페이지 테이블(21)에 존재하지 않는 경우 해당 로우 주소를 핫 페이지 테이블(21)에 저장하고, 히스토리 정보 필드의 최상위 비트를 1로 변경하는 방식으로 이루어질 수 있다.
다음으로, 메모리 컨트롤러(20)는 액티브 커맨드가 발생한 로우 페이지가 핫 페이지인지를 식별한다(S120). 이는 전술한 바와 같이, 핫 페이지 테이블(21)의 히스토리 정보 필드의 값이 미리 설정된 값 이상인 경우 해당 로우 주소를 핫 페이지로 식별하는 방법을 사용할 수 있다.
만약, 핫 페이지가 아닌 것으로 식별된 경우, 메모리 컨트롤러(20)는 전술한 바와 같이 종래의 일반적인 액티브 커맨드를 메모리 장치(10)로 전송하고(S130), 메모리 장치(10)는 액티브 커맨드에 따라 액티베이션(activation)을 수행한다(S140).
한편, 상기 단계(S120)에서, 액티브 커맨드가 발생한 로우 페이지가 핫 페이지로 식별된 경우, 메모리 컨트롤러(20)는 해당 로우 페이지의 로우 주소가 인덱스 테이블(22)에 저장되어 있는지의 여부를 판단한다(S150).
해당 로우 주소가 인덱스 테이블(22)에 저장되어 있다면, 메모리 컨트롤러(20)는 종래의 일반적인 액티브 커맨드 대신 본 발명에 의한 스몰 액티브 커맨드를 메모리 장치(10)로 전송한다. 앞서 설명한 바와 같이, 스몰 액티브 커맨드는 참조할 로우 주소 대신 인덱스 테이블(22)에 저장되어 있는 해당 로우 주소에 상응하는 인덱스 번호를 포함한다.
스몰 액티브 커맨드를 수신한 메모리 장치(10)는 자신이 저장하고 있는 인덱스 테이블(11)을 참조하여 스몰 액티브 커맨드에 포함된 인덱스 번호를 그에 상응하여 저장되어 있는 로우 주소로 변환하고(S170), 해당 로우 주소에 대한 액티베이션 동작을 수행한다(S140).
한편, 해당 로우 주소가 인덱스 테이블(22)에 저장되어 있지 않다면, 메모리 컨트롤러(20)는 해당 로우 페이지를 인덱스 테이블(22)에 저장하여 인덱스 테이블(22)을 업데이트하고(S180), 종래의 일반적인 액티브 커맨드를 메모리 장치(10)로 전송함으로써 메모리 장치(10)에서 액티브 커맨드에 따라 액티베이션(activation)을 수행하도록 한다(S140).
도 5는 본 발명에 의한 메모리 시스템(100)에서 프리차지 커맨드(precharge command)가 수행되는 과정을 나타낸 흐름도이다.
도 5에서도 흰색은 메모리 컨트롤러(20)에서 수행되는 과정이고, 회색은 메모리 장치(10)에서 수행되는 과정을 각각 나타낸 것이다.
메모리 컨트롤러(20)는 메모리 장치(10)에서 활성화되었던 로우 페이지에 대한 읽기 또는 쓰기 동작이 완료되면, 앞서 설명한 바와 같이 프리차지 커맨드(precharge command)를 메모리 장치(10)로 전송하여 메모리 장치(10)에서 프리차지 동작을 수행해야 하는데, 이 때 본 발명에서의 메모리 컨트롤러(20)는 참조되었던 로우 페이지가 핫 페이지인지의 여부에 따라 종래의 일반적인 프리차지 커맨드를 전송하거나 또는 본 발명에 의해 제공되는 스몰 프리차지 커맨드를 전송하는 방법을 사용한다.
즉, 도 5에 나타낸 바와 같이, 메모리 컨트롤러(20)는 참조되었던 로우 페이지가 핫 페이지인지를 식별하고(S200), 핫 페이지가 아닌 경우에는 종래의 일반적인 프리차지 커맨드를 메모리 장치(10)로 전송하고, 메모리 장치(10)는 프리차지 동작을 수행한다(S210, S220).
만약, 해당 로우 페이지가 핫 페이지인 경우, 메모리 컨트롤러(20)는 스몰 프리차지 커맨드(small precharge command)를 메모리 장치(10)로 전송한다(S230).
여기에서, 스몰 프리차지 커맨드는 메모리 컨트롤러(20)와 메모리 장치(10)에 구비되는 인덱스 테이블(11,22)의 동기화를 위한 것으로서 해당 로우 주소에 대한 인덱스 번호를 포함한다. 메모리 장치(10)는 스몰 프리차지 커맨드를 수신하면 활성화된 로우 페이지를 닫기 전에 해당 로우 페이지의 로우 주소 중의 일부(R0~R11)를 메모리 장치(10)의 인덱스 테이블(11)에 저장하여(S240) 인덱스 테이블(11)을 업데이트하는데, 이에 의해 메모리 컨트롤러(20)와 메모리 장치(10)의 인덱스 테이블(11,22)은 동기화될 수 있다.
이후, 메모리 장치(10)에서는 프리차지 동작을 수행한다(S220).
도 6은 LPDDR4 DRAM의 커맨드 진리표(truth table)로서 본 발명에 의한 스몰 액티브 커맨드와 스몰 프리차지 커맨드의 진리표를 나타낸 것이다.
도 6을 참조하면, 각 커맨드는 앞서 도 2에서 표시한 기존의 커맨드와 비교할 때 두 번째 클럭의 CA3 유효(valid)(V) 비트에 의해 구별되는데, 해당 비트가 H이면 각각 스몰 액티브 커맨드와 스몰 프리차지 커맨드를 의미하고, L이면 기존의 액티브 커맨드와 프리차지 커맨드를 의미한다.
스몰 액티브 커맨드는, 앞서 설명한 바와 같이, 기존의 액티브 커맨드를 대신하여 인덱스 테이블(11,22)에 저장된 로우 페이지를 활성화시키기 위해 사용하는 커맨드로서, 첫 번째 클럭에 해당 로우의 상위 주소(R12-R15)를 전달하고 두 번째 클럭에 뱅크(bank) 주소와 남은 두 비트(CA4, CA5)를 이용하여 인덱스 정보를 메모리 장치(10)로 전달한다.
메모리 장치(10)의 내부 동작을 살펴 보면, 첫 번째 클럭에서 액티브 커맨드(ACTIVE-1)를 해석(CA0-CA1)한 후 부분-어레이(sub-array)의 워드라인(wordline)을 활성화하기 위해 로우의 상위 주소가 사용되기 때문에 스몰 액티브 커맨드의 첫번째 클럭의 전송 정보는 종래의 액티브 커맨드와 동일하게 유지하였다.
본 발명에 의한 스몰 액티브 커맨드는 기존의 액티브(ACTIVE-1) 커맨드와 달리 후속 커맨드(ACTIVE-2)가 필요하지 않으며 하나의 패킷을 이용하여 두 사이클에 걸쳐 액티베이션(Activation) 동작에 필요한 정보를 메모리 장치(10)로 전달할 수 있다.
한편, 스몰 프리차지 커맨드(small precharge command)는, 전술한 바와 같이, 메모리 컨트롤러(20)와 메모리 장치(10)에 위치한 인덱스 테이블(11,22) 간의 동기화 동작을 수행한다. 핫 페이지로 분류된 로우 페이지는 기존의 액티브 커맨드를 이용하여 활성화된 후 스몰 프리차지 커맨드로 페이지 닫기 동작을 수행하기 전 일부 로우 주소(R0-R11)가 메모리 장치(10)에 구비된 인덱스 테이블(11)에 저장된다. 스몰 프리차지 커맨드에 담을 수 있는 정보의 양(2-비트)이 제한적이기 때문에 퍼뱅크 프리차지(perbank precharge)의 경우에만 인덱스 정보에 대한 동기화를 수행하는 것이 바람직하다.
이러한 본 발명에 의한 스몰 액티브 커맨드와 스몰 프리차지 커맨드는 종래의 액티브 커맨드와 프리차지 커맨드에서 사용하지 않는 V(Valid) 비트를 이용하기 때문에 LPDDR4의 커맨드 규칙을 위반하지 않는다.
다음으로 본 발명에 의한 메모리 시스템(10)의 성능을 평가한 실험 결과에 대해 설명한다. 본 발명에 의한 메모리 시스템(10)의 성능을 평가하기 위해 GEM5와 CACTI 시뮬레이터를 이용한 시뮬레이션 기반의 실험을 수행하였다.
도 7은 실험에 사용한 ARM 프로세서와 LPDDR4 DRAM의 파라미터를 나타낸 것이고, 도 8은 실험에서 사용한 LPDDR4 DRAM의 타이밍 파라미터를 나타낸 것이다.
타이밍 파라미터는 마이크론(Micron)사에서 제공하는 LPDDR4 스펙을 참조하여 설정하였다. 또한, 멀티코어 환경에서 다수의 어플리케이션이 DRAM에 경쟁적으로 접근하는 상황을 구현하기 위해 SPEC2006 벤치마크의 응용 프로그램을 랜덤하게 선택(4개)한 후 10개의 믹스(mix)셋(mix1-mix10)을 생성하여 4개의 프로세서 코어에 병렬적으로 시뮬레이션을 수행하였다. GEM5 시뮬레이션에서 각 mix셋은 10억개의 프로세서 명령어를 fast-forward하고 100만개의 프로세서 명령어를 수행한 결과를 추출하였다.
도 9는 기존의 액티브 커맨드 대비 스몰 액티브 커맨드의 비율을 정규화하여 나타낸 것이다.
본 발명에 의한 스몰 액티브 커맨드 기법의 핫 페이지(Hot page) 식별 성능 평가를 위해 각 벤치마크 mix셋을 수행 후, 기본 수행(Default)의 액티브 커맨드 대비 스몰 액티브 커맨드(도 9에서는 I-ACTIVE Command로 표현함)커맨드의 비율을 정규화(normalized)하여 도 9에 나타내었다.
도 9에서, X-축은 각각의 mix set을 나타내고 Y-축은 스몰 액티브 커맨드(I-Active 커맨드)의 비율을 나타낸다. 각 막대 그래프의 왼쪽은 클로즈-페이지(Close-page) 정책을 나타내고 오른쪽은 오픈-페이지(Open-page) 정책을 나타낸다.
오픈-페이지(Open-page) 정책에서 스몰 액티브 커맨드(I-ACTIVE 커맨드) 비율은 최대 86%(mix8), 최소 18.9%(mix10), 평균 48.9%를 보이며 클로즈-페이지(Close-page) 정책에서는 최대 91%(mix8), 최소 41.2%(mix5), 평균 67%를 보인다. mix8의 경우 일부 페이지를 계속 참조하는 메모리 접근 패턴을 보이기 때문에 스몰 액티브 커맨드(I-ACTIVE 커맨드)의 비율이 높은 것을 확인할 수 있지만, mix5,9,10의 경우 할당된 페이지의 수가 많고 다양한 패턴으로 메모리를 참조하여 제안한 페이지 식별 알고리즘의 성능이 상대적으로 낮게 평가되었다.
스몰 액티브 커맨드 기법은 기존의 액티브 커맨드를 하나의 패킷으로 전송할 수 있기 때문에 액티브 커맨드의 지연 시간(latency)을 감소시킨다.
도 8에 표시한 DRAM의 주요 파라미터 중 액티브 커맨드와 관련 있는 것은 tRAS, tRRD, tRCD이다. 아래의 수학식 1을 이용하여 각 파라미터의 평균적인 지연시간을 계산할 수 있다.
Figure 112020037715436-pat00001
Hot page rate는 핫 페이지로 분류되어 스몰 액티브 커맨드를 전송하는 비율을 나타내고 콜드 페이지(Cold page)는 기존의 액티브 커맨드를 전송하는 비율을 나타낸다.
도 10은 본 발명에 의한 스몰 액티브 커맨드 기법을 적용하여 수행한 벤치마크의 실행시간(execution time)을 나타낸 것이다.
도 10에서, Y-축은 Default를 기준으로 정규화한 실행 시간을 나타낸다. 스몰 액티브 커맨드 기법을 적용하여 액티브 커맨드의 지연시간을 감소시켰지만 벤치마크의 수행 시간 감소량이 적은 것을 확인할 수 있다(0.1%미만). 이는 DRAM의 동작 특성으로 인한 것으로 도 8에 표시한 DRAM 파라미터 중 tFAW가 해당 시간 동안 동일 랭크에서 발생할 수 있는 액티브 커맨드를 4개로 제한하기 때문이다. 즉, 스몰 액티브 커맨드(I-ACTIVE)의 커맨드로 지연시간이 2 사이클 감소하지만 tFAW 파라미터가 4 개의 액티브 커맨드 이후 다음 액티브 커맨드를 tFAW 주기 동안 제한하기 때문에 실행시간 감소폭이 작게 측정되었다.
도 11은 본 발명에 의한 CACTI 시뮬레이션 결과를 나타낸 것이다.
DRAM 커맨드 버스의 전력 감소를 평가하기 위해 먼저 메모리 컨트롤러(20)와 DRAM(10)에 추가된 핫 페이지 테이블(21)과 인덱스 테이블(11,22)을 CACTI 시뮬레이터를 이용하여 Access Time, Access Energy, Area를 측정하여 결과를 표시하였다.
CACTI 시뮬레이터는 LPDDR4 DRAM의 14nm 공정을 지원하지 않아 22nm 공정으로 실험을 수행하였다. 두 테이블의 Access Energy를 Gem5에서 측정한 접근 횟수와 곱하여 스몰 액티브 커맨드 기법으로 인한 추가적인 에너지를 계산하였다.
도 12는 본 발명에 의한 스몰 액티브 커맨드 기법으로 인한 오버헤드(overhead)를 포함한 커맨드 버스의 평균적인 전력소비를 나타낸 것이다.
도 12에서, Y-축은 Default를 기준으로 정규화한 전력 소모량을 나타낸다. 커맨드 버스의 전력 소비 계산을 위해 종래 알려져 있는 스위칭 액티버티(Switching Activity) 기반의 다이나믹 파워 이퀘이션(Dynamic Power Equation)을 사용하였다.
도 12에서 각 막대그래프의 왼쪽은 클로즈-페이지 정책, 오른쪽은 오픈-페이지 정책을 나타낸다. 핫 페이지 테이블(21)과 인덱스 테이블(11,22)로 인한 전력 소비는 0.1%~0.3% 으로 버스 전력소비와 비교하여 매우 낮은 수준인 것으로 나타났다 (각 믹스셋 10 ㎼ 미만).
클로즈-페이지 정책에서 파워 소모량 감소율은 최대 30.1%(mix6), 최소 10.7%(mix2), 평균 20% 감소하였다. 오픈-페이지 정책에서는 최대 17.5%(mix8), 최소 4.6%(mix5,10) 평균 8.1% 감소하였다.
따라서, 본 발명에 의한 스몰 액티브 커맨드 기법은 액티브 커맨드의 비율이 높은 클로즈-페이지 정책에서 보다 효과적이라는 점을 확인할 수 있다.
이상에서, 본 발명에 의한 바람직한 실시예를 참조하여 본 발명을 설명하였으나, 이는 예시적인 것이며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점은 물론이다.
100...메모리 시스템
10...메모리 장치
11...인덱스 테이블
20...메모리 컨트롤러
21...핫 페이지 테이블
22...인덱스 테이블

Claims (7)

  1. 메모리 셀 어레이를 포함하는 메모리 장치; 및 상기 메모리 장치에 대한 동작을 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템에 있어서,
    상기 메모리 컨트롤러는,
    메모리 장치의 메모리 셀 어레이에서 참조된 로우 페이지의 로우 주소 및 해당 로우 주소가 참조된 횟수인 히스토리 정보를 갖는 핫 페이지 테이블; 및
    상기 핫 페이지 테이블에 기초하여 핫 페이지로 식별된 로우 페이지의 로우 주소와 해당 로우 주소에 대한 인덱스 번호를 저장하는 제1 인덱스 테이블
    을 포함하고,
    상기 메모리 장치는, 상기 메모리 컨트롤러에 저장된 상기 제1 인덱스 테이블과 동기화된 제2 인덱스 테이블을 포함하고,
    상기 메모리 컨트롤러는 상기 제1 인덱스 테이블에 저장되어 있는 로우 주소가 참조될 경우 해당 로우 주소에 상응하는 인덱스 번호를 포함하는 스몰 액티브 커맨드를 메모리 장치로 전송하고, 상기 메모리 장치는 자신이 저장하고 있는 상기 제2 인덱스 테이블을 참조하여 상기 스몰 액티브 커맨드에 포함된 인덱스 번호를 로우 주소로 변환하고 해당 로우 주소에 대한 액티베이션 동작을 수행하는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템.
  2. 청구항 1에 있어서,
    상기 메모리 컨트롤러는,
    메모리 장치의 특정 로우 주소에 대한 액티브 커맨드(active command)가 발생한 경우, 핫 페이지 테이블에 저장된 히스토리 정보 필드를 모두 1비트씩 오른쪽으로 시프트하고, 해당 로우 주소가 핫 페이지 테이블에 저장되어 있는 경우 히스토리 정보 필드의 최상위 비트를 1로 변경하고, 해당 로우 주소가 핫 페이지 테이블에 존재하지 않는 경우 해당 로우 주소를 핫 페이지 테이블에 저장하고 히스토리 정보 필드의 최상위 비트를 1로 변경함으로써 핫 페이지 테이블을 구성하는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템.
  3. 청구항 2에 있어서,
    상기 메모리 컨트롤러는, 상기 핫 페이지 테이블의 히스토리 정보 필드의 값이 미리 설정된 값 이상인 경우 해당 로우 주소를 핫 페이지로 식별하고, 상기 핫 페이지로 식별된 액티브 커맨드의 로우 주소의 적어도 일부 비트를 상기 제1 인덱스 테이블에 저장하는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템.
  4. 청구항 1에 있어서,
    상기 메모리 컨트롤러는, 참조된 로우 페이지가 핫 페이지인 경우 해당 로우 페이지에 대한 인덱스 번호를 포함하는 스몰 프리차지 커맨드를 메모리 장치로 전송하고,
    상기 메모리 장치는, 상기 스몰 프리차지 커맨드에 포함된 인덱스 번호 및 로우 페이지의 로우 주소를 상기 제2 인덱스 테이블에 저장하여 상기 제2 인덱스 테이블을 업데이트하여 메모리 컨트롤러의 제1 인덱스 테이블과 동기화시킨 후 프리차지 동작을 수행하는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템.
  5. 청구항 1에 있어서,
    상기 메모리 컨트롤러는, 참조될 로우 페이지가 핫 페이지로 식별되고 해당 로우 페이지가 제1 인덱스 테이블에 저장되어 있지 않은 경우 해당 로우 페이지를 제1 인덱스 테이블에 저장하여 제1 인덱스 테이블을 업데이트하고, 액티브 커맨드를 메모리 장치로 전송하여 메모리 장치에서 액티베이션이 수행되도록 하는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템.
  6. 청구항 1에 있어서,
    상기 메모리 컨트롤러는, 참조될 로우 주소의 상위 주소를 제1 클럭에서 메모리 장치로 전달하고, 뱅크 주소 및 인덱스 정보를 제2 클럭에서 메모리 장치로 전달하는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템.
  7. 청구항 1에 있어서,
    상기 스몰 액티브 커맨드는, 제2 클럭의 유효(vaild)(V) 비트에 의해 액티브 커맨드와 구별되는 것을 특징으로 하는 스몰 액티브 커맨드를 이용한 메모리 시스템.
KR1020200044249A 2020-04-10 2020-04-10 스몰 액티브 커맨드를 이용한 메모리 시스템 KR102343550B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200044249A KR102343550B1 (ko) 2020-04-10 2020-04-10 스몰 액티브 커맨드를 이용한 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200044249A KR102343550B1 (ko) 2020-04-10 2020-04-10 스몰 액티브 커맨드를 이용한 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20210126419A KR20210126419A (ko) 2021-10-20
KR102343550B1 true KR102343550B1 (ko) 2021-12-24

Family

ID=78268283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200044249A KR102343550B1 (ko) 2020-04-10 2020-04-10 스몰 액티브 커맨드를 이용한 메모리 시스템

Country Status (1)

Country Link
KR (1) KR102343550B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761656B2 (en) * 2007-08-22 2010-07-20 Advanced Micro Devices, Inc. Detection of speculative precharge

Also Published As

Publication number Publication date
KR20210126419A (ko) 2021-10-20

Similar Documents

Publication Publication Date Title
EP1836583B1 (en) Dynamic control of memory access speed
KR102404643B1 (ko) 인-메모리 캐쉬 관리자를 구비한 hbm
JP6788517B2 (ja) ハイブリッドメモリ制御器及びその制御方法並びに格納ノード
US6963516B2 (en) Dynamic optimization of latency and bandwidth on DRAM interfaces
US20040128433A1 (en) Refresh port for a dynamic memory
CN108139994B (zh) 内存访问方法及内存控制器
CN107257964B (zh) Dram电路、计算机系统和访问dram电路的方法
KR20160116533A (ko) 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법
CN113900818A (zh) Ddr存储器数据读写调度方法和装置
US20040190362A1 (en) Dram and access method
KR100652380B1 (ko) 버퍼를 이용하여 리프레쉬하는 메모리 장치 및 그 방법
US11494120B2 (en) Adaptive memory transaction scheduling
KR102343550B1 (ko) 스몰 액티브 커맨드를 이용한 메모리 시스템
CN100536021C (zh) 大容量高速缓冲存储器
US7167947B2 (en) Memory post-write page closing apparatus and method
US6542958B1 (en) Software control of DRAM refresh to reduce power consumption in a data processing system
CN108509151B (zh) 一种基于dram内存控制器的行缓存方法和系统
JPH08328949A (ja) 記憶装置
JP4071930B2 (ja) シンクロナスdram
CN113946435A (zh) 内存管理技术及计算机系统
US6433786B1 (en) Memory architecture for video graphics environment
KR100381615B1 (ko) 디램 캐쉬 메모리를 이용하여 리프레쉬 동작을 숨기는에스램 호환 메모리
WO2022012143A1 (zh) 内存管理技术及计算机系统
JP2006107245A (ja) メモリコントローラ
US10929949B2 (en) Accessing a memory configured to store an image data cube

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant