KR101258533B1 - Dram 버퍼 엑세스 스케줄링 방법 및 장치 - Google Patents

Dram 버퍼 엑세스 스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR101258533B1
KR101258533B1 KR1020110065495A KR20110065495A KR101258533B1 KR 101258533 B1 KR101258533 B1 KR 101258533B1 KR 1020110065495 A KR1020110065495 A KR 1020110065495A KR 20110065495 A KR20110065495 A KR 20110065495A KR 101258533 B1 KR101258533 B1 KR 101258533B1
Authority
KR
South Korea
Prior art keywords
master
access
dram
bank
buffer
Prior art date
Application number
KR1020110065495A
Other languages
English (en)
Other versions
KR20130003878A (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 KR1020110065495A priority Critical patent/KR101258533B1/ko
Publication of KR20130003878A publication Critical patent/KR20130003878A/ko
Application granted granted Critical
Publication of KR101258533B1 publication Critical patent/KR101258533B1/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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

아비터에 의한 DRAM 버퍼 스케줄링 방법에 관한 것으로서, 제 1 마스터로부터 제 1 뱅크에 대한 엑세스 요청을 수신하는 단계, 상기 제 1 마스터에게 상기 제 1 뱅크에 대한 엑세스 권한을 부여하는 단계, 제 2 마스터로부터 상기 제 1 뱅크에 대한 엑세스 요청을 수신하는 단계, 상기 수신된 제 2 마스터의 엑세스 요청에 기초하여, 상기 제 2 마스터의 엑세스 순서를 후 순위로 변경하는 단계를 포함하는 DRAM 버퍼 스케쥴링 방법을 제공한다.

Description

DRAM 버퍼 엑세스 스케줄링 방법 및 장치 {METHOD FOR SCHEDULING DRAM BUFFER ACCESS AND APPARATUS THEREOF}
본 발명은 DRAM 버퍼 엑세스 스케줄링 방법 및 장치에 관한 것이다.
NAND 플래시 메모리는 기존의 하드 디스크에 비해 가격이 높은 단점에도 불구하고 빠른 처리 속도, 저전력, 강한 내구성, 무소음, 경박단소와 같은 장점으로 인해 디지털 카메라, MP3 플레이어, 스마트 폰과 같은 많은 모바일 기기의 주 저장 매체로 쓰이고 있다. 최근 용량 대비 가격이 HDD(Hard Disk Drive) 수준에 근접하면서 NAND 플래시 기반의 새로운 대용량 저장매체인SSD(Solid State Disk) 시장이 확대되어 일부 서버급 컴퓨터 등에도 채용되는 추세이다.
HDD의 경우, 플래터가 헤드를 통해서 데이터를 검색하는 기계적 특성으로 인해 많은 지연 시간이 발생할 뿐만 아니라 동 시간에 다수의 플래터 중 1개의 플래터만이 헤드를 통해 사용되므로 병렬처리가 불가능하다. 이러한 특성 때문에 대역폭에 향상에 제한이 있다.
반면에 SSD는 기계적인 장치 구동에 따른 지연 시간이 없으며 병렬처리가 가능하다. SSD에 사용되는 NAND 플래시 메모리 한 채널의 최대 대역폭은 133MByte/s이며 일반적으로 8개의 NAND 플래시 채널을 사용하는데, 이 경우 대역폭은 1064 MByte/s로 HDD에 비해 7배 이상의 데이터 처리 속도를 가진다.
또한 채널의 수가 증가할수록 대역폭은 비례적으로 향상이 가능하다. 이러한 이유로 넷북, 노트북, 태블릿과 같은 모바일 기기에서부터 고성능 서버용 컴퓨터까지 SSD가 장착되면서 시장 영향력을 넓혀가고 있다.
이와 관련하여, 메모리 액세스 스케쥴링 방법에 관한 선행문헌(출원번호: 2004-7004589)에는 메모리 액세스 대기시간을 감소시키고 대역폭을 개선시키기 위한 메모리 콘트롤러에 관한 기술이 언급되어 있다.
본 발명의 일부 실시예는 복수의 마스터에 의한 DRAM 엑세스 요청이 있는 경우에, 데이터 처리를 위한 지연 시간을 최소화하도록 DRAM에 대한 복수의 마스터의 엑세스 순서를 스케줄링할 수 있는 DRAM 버퍼 엑세스 스케줄링 방법 및 장치를 제공하는 데에 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 DRAM 버퍼 엑세스 스케줄링 방법은 제 1 마스터로부터 제 1 뱅크에 대한 엑세스 요청을 수신하는 단계, 상기 제 1 마스터에게 상기 제 1 뱅크에 대한 엑세스 권한을 부여하는 단계, 제 2 마스터로부터 상기 제 1 뱅크에 대한 엑세스 요청을 수신하는 단계, 상기 수신된 제 2 마스터의 엑세스 요청에 기초하여, 상기 제 2 마스터의 엑세스 순서를 후 순위로 변경하는 단계를 포함한다.
또한, 본 발명의 제 2 측면에 따른 DRAM 버퍼 엑세스 스케줄링 장치는 제 1 마스터 및 제 2 마스터를 포함하는 복수의 마스터로부터 제 1 뱅크 및 제 2 뱅크를 포함하는 DRAM 버퍼 대한 엑세스 요청을 수신하는 엑세스 요청 수신부, 상기 복수의 마스터에 속한 각 마스터에게 상기 DRAM 버퍼에 대한 엑세스 권한을 부여하는 엑세스 권한 관리부 및 상기 DRAM 버퍼 내의 동일 뱅크에 대한 엑세스를 요청하는 상기 제 1 마스터 및 상기 제 2 마스터가 있는 경우, 상기 제 2 마스터의 엑세스 순서를 후 순위로 변경하는 엑세스 순서 조정부를 포함한다. 상기 제 2 마스터는 상기 제 1 마스터의 상기 DRAM 버퍼에 대한 엑세스 요청 이후에, 상기 DRAM 버퍼에 대한 엑세스를 요청할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 복수의 마스터에 의한 DRAM 엑세스 요청이 있는 경우에, 데이터 처리를 위한 지연 시간을 최소화하도록 DRAM에 대한 복수의 마스터의 엑세스 순서를 스케줄링할 수 있는 DRAM 버퍼 엑세스 스케줄링 방법 및 장치를 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에 사용되는 SRAM(Synchronous DRAM)의 상태도이다.
도 2는 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 장치를 설명하기 위한 구성도이다.
도 3은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 장치의 아비터의 구조를 설명하기 위한 구성도이다.
도 4는 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법의 엑세스 순서를 조정하는 과정을 설명하기 위한 도면이다.
도 5는 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, 종래의 스케줄링 방법을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, DRAM으로의 엑세스를 병렬적으로 처리하는 스케줄링 방법을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, 시간 순서에 따른 마스터의 엑세스 과정을 설명하기 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명은 DRAM(dynamic RAM) 엑세스 과정에서 발생하는 뱅크의 활성화, RAS(row address strobe) 및 CAS(column address strobe)로 인한 지연 시간을 최소화하기 위해 다중 뱅크(multi-bank) 기능을 활용한다.
도 1은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, SRAM(Synchronous DRAM)의 상태도이다.
본 발명의 일실시예에 따른 SDRAM은 읽기 또는 쓰기 상태에서 데이터 전송을 완료한 후, 다시 읽기 또는 쓰기 상태로 오기 위해 일정 정도의 지연 시간이 발생하며, 아래 [수학식 1]과 같이 표현할 수 있다.
Figure 112011050557558-pat00001
DRAM 엑세스 과정에서 발생하는 지연 시간에 대하여 구체적으로 살펴보면, SDRAM은 읽기 또는 쓰기 상태에서 데이터를 전송한 후에 뱅크(Bank)내의 해당 행(Row)을 재충전 (Precharge)하고 유휴(IDLE)상태로 가는 과정에서 지연 시간이 발생하며, 이를 tRP라고 정의한다.
또한, 읽기 또는 쓰기 동작을 준비하기 위해 뱅크 활성화(Bank Activate)와 행 주소 활성화(Row Active)에 대한 지연 시간이 필요하며, 이를 tRAS라고 정의한다.
마지막으로, 행 활성화(Row Active) 상태에서 읽기 동작으로 활성화되는 경우 DRAM에서 데이터를 전송하기 전에 추가 지연이 발생하며, 이를 CAS Latency 라고 정의한다. 이 때, 쓰기 동작에서는 추가 지연 시간이 발생하지 않으므로, 쓰기 과정에서 발생하는 지연 시간(twrite)은 아래 [수학식 2]와 같이 CAS Latency 를 제거해 표현할 수 있다.
Figure 112011050557558-pat00002
본 발명의 일실시예에 따른 DRAM의 내부는 여러 개의 뱅크로 구성이 될 수 있으며, 데이터에 엑세스하기 위해서는 상기 [수학식 1]과 같은 지연 시간이 필요하게 된다. 그러나 특정 뱅크에 연속으로 접근 하지 않을 경우, 뱅크 활성화와 주소로의 엑세스 과정을 병렬적으로 처리할 수 있기 때문에 상기와 같은 지연 시간을 줄일 수 있게 된다. 본 발명의 일실시예는 DRAM의 다중 뱅크(Multi-bank) 기능을 이용해 데이터 엑세스 과정에서 발생하는 시간 지연을 최소화 하여, 보다 효율적으로 대역폭을 활용하는 스케줄링 방법을 SSD(solid state disk) 내부에 있는 아비터(Arbiter)를 통해 구현할 수 있다.
도 2는 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 장치를 설명하기 위한 구성도이다.
본 발명의 일실시예에 따른 SSD(Solid State Disk)는 복수의 마스터(100), 아비터(200), DRAM 컨트롤러(300) 및 DRAM(400)을 포함할 수 있다.
마스터(100)는 호스트 버퍼 컨트롤러 또는 각 채널별로 존재하는 낸드(NAND) 플래시 버퍼 컨트롤러를 포함할 수 있다.
아비터(200)는 각각의 마스터가 DRAM 버퍼에 접근 하는 것을 중재하는 역할을 수행하고, 두 개 이상의 마스터들이 동시에 읽기 또는 쓰기 요청을 하는 경우 마스터들의 요청을 중재하여 엑세스 요청 순서를 조정할 수 있다.
DRAM 컨트롤러(300)는 아비터(100)와 DRAM(400) 사이에 위치하며 DRAM을 마치 SRAM처럼 쓸 수 있게 주기적으로 DRAM을 리프레쉬(Refresh)시키는 작업을 수행하며, 본 발명의 일실시예에 따라, 아비터(200)로부터 마스터의 주소 및 버스트 요청(busrtreq) 신호를 수신하여 뱅크를 활성화하고, RAS 및 CAS 등의 작업을 수행한다.
DRAM(400)은 복수의 뱅크를 포함하는 주기억 장치이며, 뱅크는 DRAM의 효율적인 관리를 위해 DRAM을 나눈 논리적인 단위를 의미한다.
도 3은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 장치에 있어서, 아비터의 구조를 설명하기 위한 구성도이다.
본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 장치에 있어서, 아비터(200)는 엑세스 요청 수신부(210), 엑세스 권한 관리부(220), 엑세스 순서 조정부(230) 및 엑세스 정보 송신부(240)를 포함할 수 있다. 또한, 아비터(200)는 마스터(100) 및 DRAM 컨트롤러(200)와 연결되어 DRAM 버퍼에 대한 엑세스 순서 스케줄링을 수행할 수 있다.
엑세스 요청 수신부(210)는 제 1 마스터(110) 및 제 2 마스터(120)를 포함하는 복수의 마스터(100)로부터 복수의 뱅크를 포함하는 DRAM 버퍼에 대한 엑세스 요청을 수신한다.
엑세스 권한 관리부(220)는 복수의 마스터(100)에 속한 각 마스터에게 DRAM 버퍼에 대한 엑세스 권한을 부여하는 역할을 수행한다. 엑세스 권한 관리부(220)는 엑세스 요청을 한 마스터에게 DRAM 버퍼에 대한 접근 권한을 부여하고, 상기 권한을 부여 받은 마스터는 현재 DRAM 버퍼에 엑세스 중인 마스터가 있는 경우, 상기 DRAM 버퍼에 엑세스 중인 마스터의 작업(예를 들어, 읽기 또는 쓰기) 작업이 완료된 이후에, DRAM 버퍼에 엑세스하여 작업을 수행하게 된다.
엑세스 순서 조정부 (230)는 복수의 마스터로부터 동일 뱅크에 대한 엑세스 요청이 있는 경우, 엑세스 요청 순서에 기초하여 엑세스 순서를 조정하는 엑세스 순서를 조정할 수 있다.
본 발명의 일실시예에 따르면, 예를 들어 DRAM 버퍼 내의 동일 뱅크(예를 들어, 제 1 뱅크) 대한 엑세스를 요청하는 제 1 마스터(110) 및 제 2 마스터(120)가 있고, 이후에 제 3 마스터(130)가 제 2 뱅크에 대한 엑세스를 요청하는 경우, 제 2 마스터의 엑세스 순서를 제 3 마스터의 엑세스 이후로 조정할 수 있다. 따라서, 제 1 마스터, 제 2 마스터 및 제 3 마스터는 제 1 마스터, 제 3 마스터 및 제 2 마스터 순으로 DRAM 버퍼에 엑세스할 수 있게 된다.
엑세스 순서 조정부(230)는 동일 뱅크에 연속으로 접근 하는 마스터의 엑세스 순서를 조정하므로써, 뱅크 활성화 및 뱅크 주소로의 엑세스 과정을 병렬적으로 처리할 수 있다. 예를 들어, 제 1 마스터(110)가 제 1 뱅크에 엑세스 하여 읽기 또는 쓰기 작업을 진행하고 있는 동안, 제 3 마스터(130)가 제 2 뱅크에 대한 엑세스 권한을 부여 받아서, 뱅크 활성화 및 뱅크 주소로의 엑세스 작업을 병렬적으로 진행하여 지연 시간을 최소화하는 것이다. 만약, 제 1 마스터(110) 이후에 제 2 마스터(120)에게 DRAM 버퍼에 대한 엑세스 권한을 부여할 경우, 제 1 마스터(110)의 제 1 뱅크에 대한 작업이 모두 완료된 이후가 되어야 제 2 마스터가 제 1 뱅크에 대한 뱅크 활성화 및 뱅크 주소로의 엑세스하여 작업을 수행할 수 있게 된다. 이에 대해서는 도 5 및 도 6에 대하여 설명을 하는 부분에서 상세하게 설명하기로 한다.
엑세스 정보 송신부(240)는 DRAM 버퍼에 대한 엑세스 권한을 부여받은 마스터의 주소 및 버스트 요청 신호를 DRAM 컨트롤러로 전송하는 역할을 수행한다.
도 4는 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, 엑세스 순서를 조정하는 과정을 설명하기 위한 도면이다.
본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법은 제 1 마스터(110), 제 2 마스터(120) 및 제 3 마스터(130)를 포함하는 복수의 마스터(100)와 아비터(200), DRAM(400)이 연결되어 구현될 수 있다.
본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법은 마스터(100)가 연속으로 같은 뱅크에 접근하는 것을 방지하기 위해 동시에 아비터에 들어온 요청을 DRAM 버퍼의 다른 뱅크에 접근하여 처리하도록 순서를 조정할 수 있다. 또한, 도 4에서는 본 발명의 스케줄링 방법에 대한 이해를 돕기 위해, 3개의 마스터가 각각의 뱅크 주소를 가지고 DRAM 버퍼에 대한 엑세스를 요청하는 상황을 가정한다.
이 때, 아비터(200)는 들어온 3개의 요청들을 모니터링 하여 제 1 마스터(110) 및 제 2 마스터(120)가 같은 뱅크 주소인 제 1 뱅크 주소에 대하여 엑세스를 요청하고, 제 3 마스터(130)는 다른 뱅크 주소인 제 2 뱅크 주소에 대하여 엑세스를 요청하는 것을 확인한다.
아비터(200)는 초기에는 라운드 로빈(Round-Robin)방식에 따라서 제 1 마스터, 제 2 마스터, 제 3 마스터로 엑세스 순서를 정할 수 있다. 이후, 아비터(200)는 복수의 마스터가 DRAM 버퍼의 같은 뱅크로 연속적으로 접근하는 것을 줄이기 위해 제 1 마스터(제 1 뱅크 주소), 제 3 마스터(제 2 뱅크 주소), 제 2 마스터(제 1 뱅크 주소)로 엑세스 순서를 재조정하여 각 요청이 요구하는 DRAM으로의 엑세스를 병렬적으로 처리하도록 한다.
도 5는 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, 종래의 스케줄링 방법을 나타낸 도면이고, 도 6은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, DRAM으로의 엑세스를 병렬적으로 처리하는 스케줄링 방법을 나타낸 도면이다.
아비터(200)는 복수의 마스터의 요청을 병렬적으로 처리하기 위하여 각 채널에서 요청하는 뱅크 주소를 확인한 후, DRAM 버퍼의 특정 뱅크에 연속으로 엑세스를 하지 않도록 순서를 재조정한다. 접근 권한을 받은 채널과 DRAM 버퍼 간의 데이터 전송을 할 때, 아비터(200)는 데이터 전송이 완료되기 전의 일정 시간(Tactivate) 동안 다음 접근 권한을 획득하는 마스터의 주소와 버스트 요청 신호를 DRAM 컨트롤러로 전송한다.
여기서, 버스트 요청 신호는 아비터(200)에서 DRAM 컨트롤러로 요청하는 신호이며, Tactivate는 DRAM의 읽기 또는 쓰기 동작이 활성화되어 데이터가 전송 혹은 수신되기 전까지 시간이다.
현재 접근 권한을 가진 채널과 DRAM 버퍼간의 데이터 전송이 완료되면, 다음 접근 권한을 받는 채널은 줄어든 DRAM 활성화 지연 시간 이후에 데이터를 전송하거나 수신할 수 있다.
도 5및 도 6에 도시된 Addr_out은 다음 엑세스 권한을 받는 채널의 주소를 아비터(200)에서 DRAM 컨트롤러로 전송하는 신호를 의미하고, DRAM_data는 아비터(200)와 DRAM 컨트롤러 간에 전송되는 데이터를 의미한다. DDR2 SDRAM를 예로 들면, 클럭당 16바이트 데이터가 전송되며, 버스트(burst) 사이즈가 128바이트인 경우 전송 사이클(cycle)은 8 사이클이 된다. 도 5에 도시된 종래의 방식은 아비터(200)에서 뱅크 주소에 따라 순서를 재조정하지 않으므로, 제 1 마스터(Ch 1)가 데이터 전송을 받은 후에 같은 뱅크 주소를 가진 제 2 마스터(Ch 2)가 DRAM 버퍼에서 수신할 데이터의 주소를 전송한다. 그러므로 뱅크 활성화, RAS 및 CAS 지연 시간이 발생되며, 아래 [표 1]의 파라미터에 의해 tREAD 시간을 계산하면 지연 시간은 9 사이클이 된다.
Symbol Value Unit
Clock 100 MHz
tRAS 40 ns
CAS Latency 3 clock cycle
tRP 15 ns
반면에, 도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법은 아비터(200)에서 뱅크 주소에 따라 순서를 재조정할 수 있다. DRAM 버퍼와 제 1 마스터 간의 데이터가 전송되는 동안, 제 1 마스터와 다른 뱅크 주소를 가진 제 3 마스터가 DRAM 버퍼에서 수신할 데이터의 주소를 전송하므로 지연 시간을 감소시킬 수 있다. 즉, 데이터 전송이 이루어지는 동안 지연 시간을 줄이기 때문에 최대 8 사이클의 지연을 감소하여 단지 1 사이클의 지연 후에 다음 데이터 전송이 이루어 질 수 있다.
도 7은 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에 있어서, 시간 순서에 따른 마스터의 엑세스 과정을 설명하기 순서도이다.
본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법은 제 1 마스터(110), 제 2 마스터(120) 및 제 3 마스터(130)를 포함하는 복수의 마스터(100)와 아비터(200), DRAM(400)이 연결되어 구현될 수 있다.
먼저, 아비터(200)는 제 1 마스터(110)로부터 제 1 뱅크에 대한 엑세스 요청을 수신한다(S5100).
다음으로, 아비터(200)는 제 1 마스터(110)에게 상기 제 1 뱅크에 대한 엑세스 권한을 부여한다(S5200).
아비터(200)는 S5200단계에서, 복수의 마스터의 엑세스를 병렬적으로 처리하기 위해, 엑세스 권한을 부여받은 제 1 마스터(100)의 주소 및 버스트 요청 신호를 DRAM 컨트롤러로 전송할 수 있다. 즉, 특정 마스터가 DRAM에 엑세스하여 읽기 또는 쓰기 작업을 진행하는 동안, 다음 엑세스 권한을 부여받은 상기 제 1 마스터의 주소 및 버스트 요청 신호를 DRAM 컨트롤러로 전송함으로써, DRAM 엑세스 과정에서 소모되는 뱅크 활성화, RAS 및 CAS 지연 시간을 단축하는 것이다.
다음으로, 아비터(200)는 제 2 마스터(120)로부터 제 1 뱅크에 대한 엑세스 요청을 수신한다(S5300).
S5100 및 S5200 단계를 통하여, 제 1 마스터(110)에게 제 1 뱅크에 대한 엑세스 권한을 부여한 상태에서, 제 2 마스터(120) 또한 제 1 뱅크에 대한 엑세스 요청을 할 경우, 뱅크 활성화, RAS 및 CAS 작업에 소요되는 지연시간이 발생하게 된다.
따라서, 본 발명의 일실시예에 따른 DRAM 버퍼 엑세스 스케줄링 방법에서는 이하 S5400 단계를 통하여, 복수의 마스터의 엑세스 순서를 조정한다.
다음으로, 아비터(200)는 수신된 제 2 마스터(120)의 엑세스 요청에 따라, 상기 제 2 마스터(120)의 엑세스 순서를 후 순위로 변경한다(S5400).
본 발명의 일실시예에 따르면, 제 2 마스터(120)의 엑세스 요청 이후에 제 3 마스터(130)가 제 2 뱅크에 대한 엑세스 요청을 하는 경우, 제 2 마스터(120)의 엑세스 순서를 제 3 마스터(130)의 제 2 뱅크로의 엑세스 이후로 변경하여 DRAM에 대한 병렬적인 엑세스를 수행할 수 있다.
본 발명의 일실시예에 따르면, 비용 효율적인 방법을 통해 SSD 성능을 향상 시키는 방법의 일환으로 SSD내의 DRAM 버퍼의 대역폭을 효율적으로 사용하는 스케줄링 방법을 제안하였다. 본 발명의 일실시예에 따르면, 각 마스터들의 요청 시, 이들이 가진 뱅크 주소를 확인하고, 연속으로 특정 뱅크의 접근을 피하여 DRAM 다중 뱅크(multi-bank)를 활용할 수 있다. 이를 이용해서 뱅크 활성화를 위한 시간과 RAS와 CAS로 생기는 지연 시간을 줄여 DRAM 버퍼 대역폭의 효율적인 활용이 가능하게 되었다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 마스터
110: 제 1 마스터 120: 제 2 마스터
130: 제 3 마스터
200: 아비터 210: 엑세스 요청 수신부
220: 엑세스 권한 관리부 230: 엑세스 순서 조정부
240: 엑세스 정보 수신부
300: DRAM 컨트롤러 400: DRAM

Claims (8)

  1. 아비터에 의한 DRAM 버퍼 스케줄링 방법에 있어서,
    (a) 제 1 마스터로부터 제 1 뱅크에 대한 엑세스 요청을 수신하는 단계;
    (b) 상기 제 1 마스터에게 상기 제 1 뱅크에 대한 엑세스 권한을 부여하는 단계;
    (c) 제 2 마스터로부터 상기 제 1 뱅크에 대한 엑세스 요청을 수신하는 단계;
    (d) 상기 수신된 제 2 마스터의 엑세스 요청에 따라, 상기 제 2 마스터의 엑세스 순서를 후 순위로 변경하는 단계를 포함하되,
    상기 제 1 마스터 및 상기 제 2 마스터는 호스트 버퍼 컨트롤러 또는 각 채널별로 존재하는 낸드(NAND) 플래시 버퍼 컨트롤러인 것인
    DRAM 버퍼 스케쥴링 방법.
  2. 제 1 항에 있어서,
    상기 (b) 단계는,
    상기 제 1 마스터의 주소 및 버스트 요청 신호를 DRAM 컨트롤러로 전송하는 단계를 포함하는
    DRAM 버퍼 스케쥴링 방법.
  3. 제 1 항에 있어서,
    상기 제 1 마스터 및 상기 제 2 마스터가 엑세스하는 뱅크의 주소는 각각 상기 제 1 뱅크 및 상기 제 2 뱅크로 고정되는 것인
    DRAM 버퍼 스케쥴링 방법.
  4. 제 1 항에 있어서,
    상기 (d) 단계는,
    상기 제 2 마스터의 상기 엑세스 요청 이후에 제 3 마스터가 제 2 뱅크에 대한 엑세스 요청을 하는 경우, 상기 제 2 마스터의 엑세스 순서를 상기 제 3 마스터의 상기 제 2 뱅크로의 엑세스 이후로 변경하는 것인
    DRAM 버퍼 스케쥴링 방법.
  5. 삭제
  6. 아비터에 의한 DRAM 버퍼 엑세스 스케줄링 장치에 있어서,
    제 1 마스터 및 제 2 마스터를 포함하는 복수의 마스터로부터 복수의 뱅크를 포함하는 DRAM 버퍼에 대한 엑세스 요청을 수신하는 엑세스 요청 수신부;
    각 마스터에게 상기 DRAM 버퍼에 대한 엑세스 권한을 부여하는 엑세스 권한 관리부; 및
    상기 복수의 마스터로부터 동일 뱅크에 대한 엑세스 요청이 있는 경우, 엑세스 요청 순서에 기초하여 엑세스 순서를 조정하는 엑세스 순서 조정부를 포함하되,
    상기 복수의 마스터는 호스트 버퍼 컨트롤러 또는 각 채널별로 존재하는 낸드(NAND) 플래시 버퍼 컨트롤러인 것인
    DRAM 버퍼 엑세스 스케줄링 장치.
  7. 제 6 항에 있어서,
    상기 DRAM 버퍼에 대한 엑세스 권한을 부여받은 마스터의 주소 및 버스트 요청 신호를 DRAM 컨트롤러로 전송하는 엑세스 정보 송신부를 더 포함하는
    DRAM 버퍼 엑세스 스케줄링 장치.
  8. 삭제
KR1020110065495A 2011-07-01 2011-07-01 Dram 버퍼 엑세스 스케줄링 방법 및 장치 KR101258533B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110065495A KR101258533B1 (ko) 2011-07-01 2011-07-01 Dram 버퍼 엑세스 스케줄링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110065495A KR101258533B1 (ko) 2011-07-01 2011-07-01 Dram 버퍼 엑세스 스케줄링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130003878A KR20130003878A (ko) 2013-01-09
KR101258533B1 true KR101258533B1 (ko) 2013-04-30

Family

ID=47835946

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110065495A KR101258533B1 (ko) 2011-07-01 2011-07-01 Dram 버퍼 엑세스 스케줄링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101258533B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050058919A (ko) * 2003-12-13 2005-06-17 삼성전자주식회사 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법
KR20050093805A (ko) * 2003-01-27 2005-09-23 마츠시타 덴끼 산교 가부시키가이샤 메모리 제어장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050093805A (ko) * 2003-01-27 2005-09-23 마츠시타 덴끼 산교 가부시키가이샤 메모리 제어장치
KR20050058919A (ko) * 2003-12-13 2005-06-17 삼성전자주식회사 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20130003878A (ko) 2013-01-09

Similar Documents

Publication Publication Date Title
US10725683B2 (en) Intelligent wide port phy usage
US10528255B2 (en) Interface for non-volatile memory
KR102080967B1 (ko) 하이브리드 스토리지
US20180197584A1 (en) Hybrid lpddr4-dram with cached nvm and flash-nand in multi-chip packages for mobile devices
US20170249191A1 (en) Adjustable priority ratios for multiple task queues
JP2019067417A (ja) 最終レベルキャッシュシステム及び対応する方法
US9268721B2 (en) Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory requests in one transfer cycle
Natarajan et al. A study of performance impact of memory controller features in multi-processor server environment
KR102402630B1 (ko) 캐시 제어 인지 메모리 컨트롤러
JP5922740B2 (ja) メモリデバイスのための装置、メモリデバイスおよびメモリデバイスの制御のための方法
US11036412B2 (en) Dynamically changing between latency-focused read operation and bandwidth-focused read operation
TW201506619A (zh) 用於高效能和低成本快閃記憶體轉換層的系統和方法
KR20150017526A (ko) 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법
US20190196995A1 (en) Dynamic page state aware scheduling of read/write burst transactions
US20110296124A1 (en) Partitioning memory for access by multiple requesters
US10095421B2 (en) Hybrid memory module bridge network and buffers
WO2018188085A1 (zh) 内存刷新技术及计算机系统
US10515671B2 (en) Method and apparatus for reducing memory access latency
CN110447075B (zh) 多内核管芯上存储器微控制器
CN114902198A (zh) 用于异构存储器系统的信令
EP2998867B1 (en) Data writing method and memory system
US10963404B2 (en) High bandwidth DIMM
CN114078497A (zh) 包括可重新配置的通道的存储器接口的系统、装置和方法
US20120159024A1 (en) Semiconductor apparatus
EP4325367A1 (en) Method and device for data caching

Legal Events

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

Payment date: 20160328

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170329

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee