KR101349899B1 - 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 - Google Patents

메모리 제어기 및 이의 메모리 접근 스케줄링 방법 Download PDF

Info

Publication number
KR101349899B1
KR101349899B1 KR1020120026917A KR20120026917A KR101349899B1 KR 101349899 B1 KR101349899 B1 KR 101349899B1 KR 1020120026917 A KR1020120026917 A KR 1020120026917A KR 20120026917 A KR20120026917 A KR 20120026917A KR 101349899 B1 KR101349899 B1 KR 101349899B1
Authority
KR
South Korea
Prior art keywords
memory
memory access
access request
transaction queue
request
Prior art date
Application number
KR1020120026917A
Other languages
English (en)
Other versions
KR20130104937A (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 KR1020120026917A priority Critical patent/KR101349899B1/ko
Publication of KR20130104937A publication Critical patent/KR20130104937A/ko
Application granted granted Critical
Publication of KR101349899B1 publication Critical patent/KR101349899B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/1694Configuration of memory controller to different memory types

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

본 발명의 메모리 제어기는 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서, 상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및 상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함한다.

Description

메모리 제어기 및 이의 메모리 접근 스케줄링 방법{Memory Controller and Memory Access Scheduling Method thereof}
본 발명은 메모리 제어기 및 이의 메모리 접근 스케줄링 방법에 관한 것이다. 보다 구체적으로 본 발명은 서로 메모리 접근 속도가 다른 메모리들이 병행하여 주메모리로 이용되는 멀티코어 시스템에서 메모리 제어기 및 이의 메모리 접근 스케줄링 방법에 관한 것이다.
다수의 코어(core)를 단일 칩에 집적하는 멀티코어(multicore) 시스템 환경에서는 다수의 코어가 동시에 태스크(task)를 수행하도록 함으로써 컴퓨터의 성능을 높이도록 한다.
일반적인 멀티코어 구조(multicore architecture)에서 주메모리(main memory)로서 주로 사용되는 DRAM(Dynamic Random Access Memory)의 경우, 동일한 종류의 메모리를 하나 이상의 메모리 제어기(memory controller)가 관리하게 된다. 따라서, 각 메모리 제어기는 자신에게 요청된 메모리 접근 요청에 대해서 우선순위를 정하여 스케줄링을 수행한다.
하지만, PRAM(Phase-change Random Access Memory)과 같은 스토리지 클래스 메모리(storage class memory)가 DRAM과 병행하여 주메모리로 이용됨에 따라 메모리 제어기가 기존의 방식대로 스케줄링을 수행하는 경우 성능이 저하될 수 있다. 즉, 메모리 제어기가 자신에게 발행된 메모리 접근 요청들의 상대적 우선순위만을 판단하여 스케줄링을 수행하는 경우 성능이 저하될 수 있다.
이는 종래 메모리 제어기의 스케줄링 방법이 읽기와 쓰기에 대해서 비교적 대칭적인 성능을 나타내는 DRAM을 기준으로 개발되었기 때문이다. 하지만, DRAM과 PRAM이 병행되어 사용되는 경우에는 DRAM과 PRAM의 접근 속도가 다를 뿐 아니라, PRAM에 대한 읽기와 쓰기의 속도 차이가 있으므로 이를 반영한 스케줄링 기법이 요구된다.
NVRAM(Non-Volatile Random Access Memory)의 일 예로서 PRAM이 주목받고 있다. NVRAM으로의 접근 속도는 DRAM에 비해서 느릴 뿐만 아니라, NVRAM에 대한 읽기(read) 및 쓰기(write) 속도가 다르다. 즉, NVRAM과 같은 스토리지 클래스 메모리를 DRAM과 함께 병행하여 주메모리로 이용하는 경우에 이러한 특성 차이를 반영하여 메모리 접근 대기시간(latency)를 줄일 수 있는 효과적인 스케줄링 기법이 요구된다.
한국공개공보 제10-2007-0037427호 (2007.04.04)
본 발명은 종래의 필요성을 충족시키기 위해 안출된 것으로써, SCM 메모리가 DRAM과 병행하여 주메모리로 이용되는 멀티코어 시스템에서 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 메모리 접근 요청의 처리 순서를 결정할 수 있는 메모리 제어기 및 메모리 접근 스케줄링 방법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따른 메모리 제어기는 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서, 상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및 상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함한다.
본 발명의 실시예에 따른 메모리 접근 스케줄링 방법은 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서, 상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및 상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함한다.
본 발명에 따르면 서로 메모리 접근 속도가 다른 2개 이상의 메모리를 함께 사용하는 멀티코어 시스템에서, 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 동일한 소스 코어로부터 발행된 메모리 접근 요청 사이의 의존도를 고려하여 메모리 접근 요청의 처리 순서를 결정할 수 있는 메모리 제어기 및 메모리 접근 스케줄링 방법을 제공할 수 있다. 또한, 본 발명의 실시예에 따르면 마감시한이 작은 메모리 접근 요청이 우선적으로 처리되도록 하여 시스템의 전체적인 메모리 접근 대기시간을 줄일 수 있다.
도1은 본 발명의 제1실시예에 따른 메모리 제어기를 포함하는 멀티코어 시스템을 예시한다.
도2는 본 발명의 제2실시예에 따른 메모리 제어기를 포함하는 멀티코어 시스템을 예시한다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명된다. 그러나, 본 발명의 실시형태는 여러 가지의 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시형태로만 한정되는 것은 아니다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있으며, 도면들 중 인용부호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 인용부호들로 표시됨을 유의해야 한다. 참고로 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
하나의 칩에 다수의 코어가 집적된 멀티코어 프로세서를 포함하는 환경에서, DRAM과 함께 스토리지 클래스 메모리를 주메모리로 병행하여 사용하는 하이브리드 주메모리 시스템이 증가하고 있다.
스토리지 클래스 메모리의 일예로서 NVRAM이 있으며, 이는 비휘발성 특성을 갖는 메모리 소자로서 기록된 데이터가 보존되므로 전력을 작게 소모하는 장점이 있다. 하지만 메모리 접근 시간이 DRAM에 비해 상대적으로 길고, 쓰기 접근 대기시간(latency)이 읽기 접근 대기시간에 비해 3~5배의 비율로 긴 특성을 갖는다. 일반적으로 메모리의 집적도는 DRAM과 같거나 보다 고집적이 가능할 수 있다.
이와 같이, 서로 다른 접근 속도를 갖는 주 메모리를 다수개 사용하는 경우에 이러한 메모리 종류별 접근 속도의 차이, 접근 타입(예컨대, 쓰기 및 읽기) 및/또는 접근 요청 사이의 의존도를 고려하여 메모리 접근 요청을 스케줄링하는 것이 필요하다.
도1은 본 발명의 제1실시예에 따른 메모리 제어기(110, 120)를 포함하는 멀티코어 시스템을 예시한다. 도1에 도시된 바와 같이, 본 발명의 실시예가 적용되는 멀티코어 시스템은 멀티코어 프로세서(100), 및 제1메모리(130) 및 제2메모리(140)를 주 메모리로서 포함한다.
도1에서 멀티코어 프로세서(100)는 다수의 CPU 코어(Central Process Unit Core)가 예시된다.
도1에서 제1메모리(130)로 DRAM 그리고 제2메모리(140)로 스토리지 클래스 메모리(SCM)가 예시된다. 제1메모리(130) 및 제2메모리(140)는 메모리 제어기(110, 120)의 조작을 통해 주소와 제어 신호에 따라 데이터를 실제로 저장하는 공간이다.
스토리지 클래스 메모리로는 예컨대 PRAM 또는 STTRAM(Spin-Transfer Torque Random Access Memory)이 이용될 수 있다. 스토리지 클래스 메모리는 바이트 어드레스가능한(byte Addressable) 메모리이다. 또한, 본 발명의 실시예에 이용되는 스토리지 클래스 메모리는 DRAM과 동일한 물리적 데이터 접근 메커니즘을 갖는다.
이하에서는 제2메모리(140)로서 NVRAM을 이용하여 설명하나, 본 발명의 사상은 다른 종류의 스토리지 클래스 메모리를 이용하는 경우에도 적용될 수 있다.
도1에서 메모리 종류별로 별도의 메모리 제어기가 이용되는 것이 도시된다. 제1메모리(130)에 대해서 제1메모리 제어기(110) 및 제2메모리(140)에 대해서 제2메모리 제어기(120)가 이용된다. 제1메모리 제어기(110) 및 제2메모리 제어기(120) 각각은 제1스케줄러(112) 및 제2스케줄러(122)를 포함한다.
도2는 본 발명의 제2실시예에 따른 메모리 제어기를 포함하는 멀티코어 시스템을 예시한다. 도2에서는 하나의 메모리 제어기(210)에서 제1메모리(130) 및 제2메모리(140) 모두에 대한 메모리 접근을 제어하는 것이 도시된다. 이에 따라 메모리 제어기(210)는 하나의 스케줄러(212)를 포함한다. 이하에서는 도1을 참조하여 본원 발명이 설명되나 이러한 설명은 도2에 도시된 멀티코어 시스템에도 동일하게 적용될 수 있다.
본 발명의 제1실시예 및 제2실시예에 따른 메모리 제어기(110, 120, 210)를 포함하는 임의의 시스템에서 동일한 종류의 메모리에 대한 메모리 제어기는 두 개 이상 존재할 수 있다.
이때, 각 메모리의 랭크(rank)에 대해서 하나의 트랜잭션큐(transaction Queue)를 가질 수 있다. 제1메모리(130)의 각 랭크별로 하나의 트랜잭션큐를 가질 수 있다. 또한 제2메모리(140)의 각 랭크별로 하나의 트랜잭션큐를 가질 수 있다. 도1에서는 제1메모리(130)에 대한 제1트랜잭션큐(111) 및 제2메모리(140)에 대한 제2트랜잭션큐(121)가 하나씩 예시된다.
트랜잭션큐(111, 121)는 단일 랭크에 연결된 메모리 칩(memory chip)으로의 접근을 요청하는 메모리 접근 요청들을 처리하기 위해 담아두는 버퍼이며, 트랜잭션큐(111, 121)에 들어온 메모리 접근 요청들의 처리 순서는 스케줄러(112, 122)에 의해 결정된다. 스케줄러(112, 122)는 제1트랜잭션큐(111) 및 제2트랜잭션큐(121)에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입, 또는 메모리 접근 요청 사이의 의존도에 따라 메모리 접근 요청의 처리 순서를 결정한다.
아래 표1에는 멀티코어 프로세서(100)의 각 CPU 코어로부터 각 메모리 제어기(110, 120)에 전달되는 메모리 접근 요청의 필수 정보를 나타낸다. 메모리 접근 요청의 필수 정보는 메모리 접근 요청을 발행한 소스 CPU 코어의 번호 및 메모리 접근 요청의 시퀀스 번호(sequence number)를 포함하며, 기타 인에이블 신호(enable signal)는 아래의 표에서 생략되었다.
Fields Description
Bank target bank 번호
Row row address
Column column address
Data write request의 경우 대상 data
Source CPU number 해당 memory access request를 생성한 CPU 번호
Sequence Number 해당 CPU에서 만들어진 memory access request의 sequence 번호
각 코어에서 현재 실행되고 있는 태스크는 태스크의 페이지 테이블(page table)을 가리키는 포인터(pointer) 값 (예컨대, Intel X86 계열 CPU의 경우 CR3 레지스터에 저장되어 사용되는 값)을 유니크 키(unique key)로 사용하여 구분이 가능하다. 이에 따라, 각 메모리 접근 요청의 소스 태스크(source task)가, 해당 메모리 접근 요청을 발행한 소스 CPU 코어의 번호와 해당 CPU의 태스크를 구분할 수 있는 유니크 키를 결합함으로써 구분될 수 있다.
우선, 제1메모리(130) 및 제2메모리(140)에 대해서 각각 하나의 트랜잭션큐(111, 121)가 존재하는 경우에 메모리 접근 스케줄링 정책에 대해서 설명한다.
제2메모리(140)에 대한 제2트랜잭션큐(121)에 들어온 메모리 접근 요청에 대해서, 제2트랜잭션큐(121)에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 이하이면 읽기 요청이 쓰기 요청에 비해 먼저 처리되고, 제2트랜잭션큐(121)에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 초과이면 쓰기 요청이 읽기 요청에 비해 먼저 처리되도록 스케줄링된다.
여기서, 상기 소정 비율은 워크로드(workload)의 특성과 제2메모리(140)에 대한 읽기 요청과 쓰기 요청 사이의 대기시간 차이에 따라 결정될 수 있다. 예컨대, 상기 소정 비율은 제2트랜잭션큐(121) 내의 전체 읽기 요청의 예상 대기 시간이 전체 쓰기 요청의 예상 대기 시간과 동일해지는 값으로 설정될 수 있다. 이러한 경우, ∑latency_read < ∑latency_write의 조건이 만족될 때 쓰기 요청이 읽기 요청에 비해 먼저 처리되도록 스케줄링될 수 있다.
즉, 제2트랜잭션큐(121)에 들어온 메모리 접근 요청에 대해서 기본적으로 쓰기 요청보다 읽기 요청이 먼저 처리되도록 하되, 제2트랜잭션큐(121)에 삽입된 쓰기 요청의 비율이 소정 비율을 초과하지 않도록 유지되도록 한다.
이때, 복수의 쓰기 요청 및 복수의 읽기 요청이 존재하는 경우, 쓰기 요청들 사이 및 읽기 요청들 사이의 처리 우선 순위는 FCFS(First Come First Served) 또는 로우힛 퍼스트(Row-hit First) 원칙에 따라서 결정될 수 있다.
제1메모리(130)에 대한 제1트랜잭션큐(111)에 들어온 메모리 접근 요청에 대해서, 제1트랜잭션큐(111)에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우(row)에 대한 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링될 수 있다.
제1트랜잭션큐(111)에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 없는 경우 최소 마감기한(deadline)을 갖는 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링된다
이때, 동일한 마감기한을 갖는 메모리 접근 요청이 존재하는 경우에는 이들 메모리 접근 요청 사이의 처리 우선 순위는 FCFS(First Come First Served), 로우힛 퍼스트(Row-hit First), 또는 올디스트 퍼스트(oldest first) 원칙에 따라서 결정될 수 있다.
메모리 접근 요청의 마감기한을 설정하기 위해서, 제1트랜잭션큐(111)에 들어오는 모든 메모리 접근 요청에 대해서 상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이전-메모리 접근 요청이 제2트랜잭션큐(121)에 존재하는지 여부가 확인된다. 여기서 이전-메모리 접근 요청은 해당 메모리 접근 요청을 발행한 동일한 소스 코어에서 발행된 것으로서 해당 메모리 접근 요청의 시퀀스 번호보다 앞서는 시퀀스 번호를 갖는 메모리 접근 요청을 지칭한다.
이때, 제1트랜잭션큐(111)에 들어오는 메모리 접근 요청에 대해서 상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이전-메모리 접근 요청이 제2트랜잭션큐(121)에 존재하지 않는 경우 상기 메모리 접근 요청의 마감기한은 0으로 설정될 수 있다.
상기 이전-메모리 접근 요청이 상기 제2트랜잭션큐(121)에 존재하는 경우 상기 메모리 접근 요청의 마감기한은, 상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이후-메모리 접근 요청 중 가장 빨리 처리될 것으로 예상되는 접근 요청의 예상 처리 완료 시간으로 설정될 수 있다. 즉, 해당 메모리 접근 요청보다 큰 시퀀스 번호를 갖는 메모리 접근 요청들 중에서 가장 빨리 선택되어 처리될 것으로 예상되는 메모리 접근 요청의 예상 처리 완료 시간으로 마감기한이 설정되는 것이다. 여기서 이후-메모리 접근 요청은 해당 메모리 접근 요청을 발행한 동일한 소스 코어에서 발행된 것으로서 해당 메모리 접근 요청의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 메모리 접근 요청을 지칭한다.
이상에서는 메모리 종류별로 하나의 트랜잭션큐가 존재하는 것을 예로하여 설명하였으나 동일한 스케줄링 메커니즘이 메모리 종류별로 복수의 트랜잭션큐가 존재하는 경우에도 적용될 수 있다. 예컨대, 각 트랜잭션큐에 들어온 메모리 접근 요청의 처리 순서는 트랜잭션큐별로 결정되지만, 마감기한의 결정을 위해서는 제2메모리에 대한 트랜잭션큐에 삽입된 메모리 접근 요청들의 상태를 고려할 수 있다. 이때, 동일한 메모리 종류에 대한 트랜잭션큐에 대해서는 메모리 접근 요청 사이의 의존도를 고려하지 않고 스케줄링이 이루어질 수 있다.
이상에서 살펴본 바와 같이, 서로 메모리 접근 속도가 다른 2개 이상의 메모리를 함께 사용하는 멀티코어 시스템에서, 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 동일한 소스 코어로부터 발행된 메모리 접근 요청 사이의 의존도를 고려하여 메모리 접근 요청의 처리 순서를 결정할 수 있는 메모리 제어기 및 메모리 접근 스케줄링 방법을 제공할 수 있다. 또한, 본 발명의 실시예에 따르면 마감시한이 작은 메모리 접근 요청이 우선적으로 처리되도록 하여 시스템의 전체적인 메모리 접근 대기시간을 줄일 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100, 200: 멀티코어 프로세서
110, 120, 210: 메모리 제어기
111, 121, 211-1, 211-2: 트랜잭션큐
112, 122, 212: 스케줄러
130: 제1메모리
140: 제2메모리

Claims (12)

  1. 삭제
  2. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
    상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및
    상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함하고,
    상기 스케줄러는:
    상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 이하이면 읽기 요청이 쓰기 요청에 비해 먼저 처리되고,
    상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 초과이면 쓰기 요청이 읽기 요청에 비해 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 제어기.
  3. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
    상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및
    상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함하고,
    상기 스케줄러는:
    상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 제어기.
  4. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
    상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및
    상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함하고,
    상기 스케줄러는:
    상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 없는 경우 최소 마감기한을 갖는 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 제어기.
  5. 제4항에 있어서,
    상기 제1트랜잭션큐에 들어오는 메모리 접근 요청에 대해서,
    상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하지 않는 경우 상기 메모리 접근 요청의 마감기한은 0으로 설정되고,
    상기 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하는 경우 상기 메모리 접근 요청의 마감기한은, 상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이후-메모리 접근 요청 중 가장 빨리 처리될 것으로 예상되는 접근 요청의 예상 처리 완료 시간으로 설정되는 것을 특징으로 하는 메모리 제어기.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM인 것을 특징으로 하는 메모리 제어기.
  7. 삭제
  8. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
    상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및
    상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함하고,
    상기 스케줄링 단계는:
    상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 이하이면 읽기 요청이 쓰기 요청에 비해 먼저 처리되고,
    상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 초과이면 쓰기 요청이 읽기 요청에 비해 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 접근 스케줄링 방법.
  9. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
    상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및
    상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함하고,
    상기 스케줄링 단계는:
    상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 접근 스케줄링 방법.
  10. 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
    상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및
    상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함하고,
    상기 스케줄링 단계는:
    상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 없는 경우 최소 마감기한을 갖는 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 접근 스케줄링 방법.
  11. 제10항에 있어서,
    상기 제1트랜잭션큐에 들어오는 메모리 접근 요청에 대해서,
    상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하지 않는 경우 상기 메모리 접근 요청의 마감기한은 0으로 설정되고,
    상기 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하는 경우 상기 메모리 접근 요청의 마감기한은, 상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이후-메모리 접근 요청 중 가장 빨리 처리될 것으로 예상되는 접근 요청의 예상 처리 완료 시간으로 설정되는 것을 특징으로 하는 메모리 접근 스케줄링 방법.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM인 것을 특징으로 하는 메모리 접근 스케줄링 방법.
KR1020120026917A 2012-03-16 2012-03-16 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 KR101349899B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120026917A KR101349899B1 (ko) 2012-03-16 2012-03-16 메모리 제어기 및 이의 메모리 접근 스케줄링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120026917A KR101349899B1 (ko) 2012-03-16 2012-03-16 메모리 제어기 및 이의 메모리 접근 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20130104937A KR20130104937A (ko) 2013-09-25
KR101349899B1 true KR101349899B1 (ko) 2014-01-14

Family

ID=49453686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120026917A KR101349899B1 (ko) 2012-03-16 2012-03-16 메모리 제어기 및 이의 메모리 접근 스케줄링 방법

Country Status (1)

Country Link
KR (1) KR101349899B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10180803B2 (en) 2015-07-28 2019-01-15 Futurewei Technologies, Inc. Intelligent memory architecture for increased efficiency
US10437480B2 (en) * 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler
CN114265797B (zh) * 2021-12-01 2024-02-27 杭州海康存储科技有限公司 存储访问控制装置、硬盘设备及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080047907A (ko) * 2006-11-27 2008-05-30 삼성전자주식회사 다이내믹 랜덤 액세스 메모리의 부분 액세스 장치 및 방법
JP2012038233A (ja) * 2010-08-11 2012-02-23 Univ Of Tokyo データ処理装置および制御装置並びにデータ記憶装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080047907A (ko) * 2006-11-27 2008-05-30 삼성전자주식회사 다이내믹 랜덤 액세스 메모리의 부분 액세스 장치 및 방법
JP2012038233A (ja) * 2010-08-11 2012-02-23 Univ Of Tokyo データ処理装置および制御装置並びにデータ記憶装置

Also Published As

Publication number Publication date
KR20130104937A (ko) 2013-09-25

Similar Documents

Publication Publication Date Title
CN109564556B (zh) 具有条纹和读取/写入事务管理的存储器控制器仲裁器
KR102439067B1 (ko) 커맨드 선택 폴리시
JP6761873B2 (ja) セルフリフレッシュステートマシンmopアレイ
KR101480856B1 (ko) 컨텍스트 스위칭
EP3017372B1 (en) Memory controlled data movement and timing
US9489321B2 (en) Scheduling memory accesses using an efficient row burst value
CN107153511B (zh) 存储节点、混合存储器控制器及控制混合存储器组的方法
US10019283B2 (en) Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
EP3436958B1 (en) Low power memory throttling
US20180181494A1 (en) Electronic system with memory management mechanism and method of operation thereof
US11494316B2 (en) Memory controller with a plurality of command sub-queues and corresponding arbiters
CN110275840B (zh) 在存储器接口上的分布式过程执行和文件系统
US11474942B2 (en) Supporting responses for memory types with non-uniform latencies on same channel
US7617338B2 (en) Memory with combined line and word access
US11748034B2 (en) Signalling for heterogeneous memory systems
US20110225369A1 (en) Multiport data cache apparatus and method of controlling the same
EP3462327A2 (en) Systems, methods and apparatus for memory access and scheduling
KR101349899B1 (ko) 메모리 제어기 및 이의 메모리 접근 스케줄링 방법
US20180188976A1 (en) Increasing read pending queue capacity to increase memory bandwidth
US8990473B2 (en) Managing requests to open and closed banks in a memory system
Paik et al. Dynamic Allocation Mechanism to Reduce Read Latency in Collaboration With a Device Queue in Multichannel Solid-State Devices
Khalifa et al. A novel memory controller architecture

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee