KR101349899B1 - 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 - Google Patents
메모리 제어기 및 이의 메모리 접근 스케줄링 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration 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
본 발명은 메모리 제어기 및 이의 메모리 접근 스케줄링 방법에 관한 것이다. 보다 구체적으로 본 발명은 서로 메모리 접근 속도가 다른 메모리들이 병행하여 주메모리로 이용되는 멀티코어 시스템에서 메모리 제어기 및 이의 메모리 접근 스케줄링 방법에 관한 것이다.
다수의 코어(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)를 줄일 수 있는 효과적인 스케줄링 기법이 요구된다.
본 발명은 종래의 필요성을 충족시키기 위해 안출된 것으로써, SCM 메모리가 DRAM과 병행하여 주메모리로 이용되는 멀티코어 시스템에서 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 메모리 접근 요청의 처리 순서를 결정할 수 있는 메모리 제어기 및 메모리 접근 스케줄링 방법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따른 메모리 제어기는 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서, 상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및 상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함한다.
본 발명의 실시예에 따른 메모리 접근 스케줄링 방법은 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서, 상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및 상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함한다.
본 발명에 따르면 서로 메모리 접근 속도가 다른 2개 이상의 메모리를 함께 사용하는 멀티코어 시스템에서, 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 동일한 소스 코어로부터 발행된 메모리 접근 요청 사이의 의존도를 고려하여 메모리 접근 요청의 처리 순서를 결정할 수 있는 메모리 제어기 및 메모리 접근 스케줄링 방법을 제공할 수 있다. 또한, 본 발명의 실시예에 따르면 마감시한이 작은 메모리 접근 요청이 우선적으로 처리되도록 하여 시스템의 전체적인 메모리 접근 대기시간을 줄일 수 있다.
도1은 본 발명의 제1실시예에 따른 메모리 제어기를 포함하는 멀티코어 시스템을 예시한다.
도2는 본 발명의 제2실시예에 따른 메모리 제어기를 포함하는 멀티코어 시스템을 예시한다.
도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메모리
110, 120, 210: 메모리 제어기
111, 121, 211-1, 211-2: 트랜잭션큐
112, 122, 212: 스케줄러
130: 제1메모리
140: 제2메모리
Claims (12)
- 삭제
- 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및
상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함하고,
상기 스케줄러는:
상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 이하이면 읽기 요청이 쓰기 요청에 비해 먼저 처리되고,
상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 초과이면 쓰기 요청이 읽기 요청에 비해 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 제어기. - 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및
상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함하고,
상기 스케줄러는:
상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 제어기. - 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
상기 제1메모리에 대한 제1트랜잭션큐 및 상기 제2메모리에 대한 제2트랜잭션큐; 및
상기 제1트랜잭션큐 및 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄러를 포함하고,
상기 스케줄러는:
상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 없는 경우 최소 마감기한을 갖는 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 제어기. - 제4항에 있어서,
상기 제1트랜잭션큐에 들어오는 메모리 접근 요청에 대해서,
상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하지 않는 경우 상기 메모리 접근 요청의 마감기한은 0으로 설정되고,
상기 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하는 경우 상기 메모리 접근 요청의 마감기한은, 상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이후-메모리 접근 요청 중 가장 빨리 처리될 것으로 예상되는 접근 요청의 예상 처리 완료 시간으로 설정되는 것을 특징으로 하는 메모리 제어기. - 제2항 내지 제5항 중 어느 한 항에 있어서,
상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM인 것을 특징으로 하는 메모리 제어기. - 삭제
- 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및
상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함하고,
상기 스케줄링 단계는:
상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 이하이면 읽기 요청이 쓰기 요청에 비해 먼저 처리되고,
상기 제2트랜잭션큐에 들어온 총 메모리 접근 요청 중 쓰기 요청의 개수가 소정 비율 초과이면 쓰기 요청이 읽기 요청에 비해 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 접근 스케줄링 방법. - 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및
상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함하고,
상기 스케줄링 단계는:
상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 접근 스케줄링 방법. - 서로 메모리 접근 속도가 다른 제1메모리 및 제2메모리가 병행하여 주메모리로 이용되는 멀티코어 시스템에서,
상기 제1메모리에 대한 제1트랜잭션큐 또는 상기 제2메모리에 대한 제2트랜잭션큐에 메모리 접근 요청이 들어오는 단계; 및
상기 제1트랜잭션큐 또는 상기 제2트랜잭션큐에 들어온 메모리 접근 요청의 대상 메모리 종류, 접근 타입 또는 메모리 접근 요청 사이의 의존도에 따라 처리 순서를 결정하는 스케줄링 단계를 포함하고,
상기 스케줄링 단계는:
상기 제1트랜잭션큐에 들어있는 복수의 메모리 접근 요청 중 가장 최근에 처리된 접근 요청과 동일한 메모리 로우에 대한 메모리 접근 요청이 없는 경우 최소 마감기한을 갖는 메모리 접근 요청이 가장 먼저 처리되도록 스케줄링하는 것을 특징으로 하는 메모리 접근 스케줄링 방법. - 제10항에 있어서,
상기 제1트랜잭션큐에 들어오는 메모리 접근 요청에 대해서,
상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하지 않는 경우 상기 메모리 접근 요청의 마감기한은 0으로 설정되고,
상기 이전-메모리 접근 요청이 상기 제2트랜잭션큐에 존재하는 경우 상기 메모리 접근 요청의 마감기한은, 상기 메모리 접근 요청을 발행한 소스 코어에서 발행된 이후-메모리 접근 요청 중 가장 빨리 처리될 것으로 예상되는 접근 요청의 예상 처리 완료 시간으로 설정되는 것을 특징으로 하는 메모리 접근 스케줄링 방법. - 제8항 내지 제11항 중 어느 한 항에 있어서,
상기 제1메모리는 DRAM이고 상기 제2메모리는 NVRAM인 것을 특징으로 하는 메모리 접근 스케줄링 방법.
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)
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)
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 | データ処理装置および制御装置並びにデータ記憶装置 |
-
2012
- 2012-03-16 KR KR1020120026917A patent/KR101349899B1/ko not_active IP Right Cessation
Patent Citations (2)
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 |