KR20160054007A - 메모리 모듈 액세스 방법 및 장치 - Google Patents

메모리 모듈 액세스 방법 및 장치 Download PDF

Info

Publication number
KR20160054007A
KR20160054007A KR1020167009479A KR20167009479A KR20160054007A KR 20160054007 A KR20160054007 A KR 20160054007A KR 1020167009479 A KR1020167009479 A KR 1020167009479A KR 20167009479 A KR20167009479 A KR 20167009479A KR 20160054007 A KR20160054007 A KR 20160054007A
Authority
KR
South Korea
Prior art keywords
memory
scheduler
channel
access request
memory access
Prior art date
Application number
KR1020167009479A
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20160054007A publication Critical patent/KR20160054007A/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/1684Details of memory controller using multiple buses
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

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)
  • Memory System (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

본 발명의 컴퓨터 기술 분야에 관한 것으로서, 멀티채널 메모리 시스템에서 대역폭 리소스의 상대적으로 낮은 활용도에 의해 야기되는 상대적으로 낮은 메모리 액세스 대역폭의 문제점을 해결하는 데에 이용되는 메모리 모듈 액세스 방법 및 장치를 개시한다. 본 발명에서 제공되는 방법은, 제1 스케줄러가 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하는 단계; 및 제1 스케줄러가, 메모리 액세스 요청을 수신하고, 제2 스케줄러에 대응되는 제2 메모리 채널을 통해 메모리 액세스 요청을 전송하는 단계를 포함한다. 본 발명은 컴퓨터 기술 분야에 적용 가능하며, 메모리 모듈 액세스를 실현하는 데에 이용된다.

Description

메모리 모듈 액세스 방법 및 장치{MEMORY MODULE ACCESS METHOD AND DEVICE}
본 출원은 2013년 9월 16일에 중국 특허청에 출원된 발명의 명칭 “MEMORY MODULE ACCESS METHOD AND APPARATUS”의 중국특허출원 제201310422993.7호에 대해 우선권을 주장하며, 이 기초 출원은 본 명세서에 원용되었다.
본 발명은 컴퓨터 기술 분야에 관한 것으로서, 특히 메모리 모듈 액세스 방법 및 장치에 관한 것이다.
컴퓨터 기술 분야에서 메모리 액세스 대역폭의 향상을 위해 멀티채널 메모리 시스템(multichannel memory system)이 다양한 컴퓨터에 이용되고 있다. 멀티채널 메모리 시스템은 다중 메모리 채널(multiple memory channel)을 포함하며, 메모리 컨트롤러는 다중 메모리 채널을 이용하여 메모리 모듈과 통신한다. 멀티채널 메모리 시스템에서 메모리 어드레스와 채널 간의 맵핑 관계가 메모리 모듈의 그룹핑(grouping)에 따라 미리 정해져 있기 때문에 채널 로드의 균형이 잡힌다. 메모리 액세스 요청이 수신되면, 메모리 액세스 요청 내의 메모리 어드레스에 따라 대응되는 채널이 타겟 채널로 정해지고, 메모리 액세스 요청은 타겟 채널을 통해 전송된다. 메모리 시스템이 두 가지 메모리 모듈을 포함하고 있다고 가정할 때, 메모리 어드레스와 채널 간의 맵핑 관계는 메모리 어드레스 내의 특정 비트의 값에 따라 정해질 수 있다. 예를 들면, 메모리 어드레스 내의 7번째 비트가 ‘0’인 메모리 액세스 요청은 채널 0을 통해 타겟 메모리 모듈에게로 전송되고; 메모리 어드레스 내의 7번째 비트가 ‘1’인 메모리 액세스 요청은 채널 1을 통해 타겟 메모리 모듈에게로 전송된다.
본 발명을 실현하는 중에, 본 발명자는 종래기술이 최소한 아래와 같은 문제점을 가지고 있음을 발견하였다.
메모리 모듈과 메모리 컨트롤러 사이의 채널이 서로 독립적이기 때문에, 수신된 여러 개의 메모리 액세스 요청이 다수의 채널 사이에서 불균형적인 방식으로 분배될 경우, 예컨대, n개의 연속적으로 수신된 메모리 액세스 요청이 모두 채널 1을 통해 타겟 메모리 모듈로 전송될 경우, 채널 1은 혼잡해질 수 있고 다른 채널들은 유휴(idle) 상태에 있기 때문에, 대역폭 리소스의 낭비를 야기하고, 나아가 메모리 액세스 대역폭이 상대적으로 낮아진다.
본 발명의 실시예는, 여러 개의 수신된 메모리 액세스 요청이 다수의 채널 간에 불균형적인 방식으로 분배되어 있을 경우 대역폭 리소스가 낭비되고 메모리 액세스 대역폭이 상대적으로 낮아진다는 종래기술의 문제점을 해결할 수 있는 메모리 모듈 액세스 방법 및 장치를 제공한다.
상술한 목적 달성을 위해 본 발명의 실시예는 이하의 기술적 해결책을 이용한다.
제1 양태에 따르면, 본 발명의 일 실시예는 메모리 모듈 액세스 방법을 제공하며, 이 메모리 모듈 액세스 방법은 적어도 제1 스케줄러 및 제2 스케줄러를 포함하는 메모리 시스템에 적용되고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있으며,
상기 메모리 모듈 액세스 방법은,
상기 제1 스케줄러가, 상기 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하는 단계; 및
상기 제1 스케줄러가, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하는 단계
를 포함한다.
제1 실현 가능 방식에서는, 상기 제1 스케줄러가, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하는 단계는,
상기 제1 스케줄러가, 제1 메모리 액세스 요청 및 제2 액세스 메모리 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계
를 포함하고,
상기 제1 메모리 액세스 요청이 상기 제1 스케줄러에 대응되는 상기 제1 메모리 채널을 통해 전송되는 때에, 상기 제2 메모리 액세스 요청은 전송 대기(to-be-sent) 상태이고,
상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널이 유휴(idle) 상태이면, 상기 제1 스케줄러가 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스를 전송한다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서는, 상기 제1 스케줄러가 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하기 전에,
상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제1 스케줄러가 상기 제2 스케줄러에 전송하는 단계; 및
상기 제1 스케줄러가, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하는 단계
가 더 포함된다.
제2 실현 가능 방식을 참조한 제3 실현 가능 방식에서, 상기 제2 메모리 액세스 요청의 목적지 어드레스(destination address)는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
제1 양태의 제1 실현 가능 방식 또는 제2 실현 가능 방식 또는 제3 실현 가능 방식을 참조한, 제4 실현 가능 방식에서, 상기 제1 스케줄러는, 적어도 두 개의 경로를 가지며, 상기 적어도 두 개의 경로를 이용하여 상기 제1 메모리 채널 및 상기 제2 메모리 채널로의 연결을 확립한다.
제2 양태에 따르면, 본 발명의 일 실시예는 메모리 모듈 액세스 방법을 제공하며, 이 메모리 모듈 액세스 방법은 적어도 제1 스케줄러 및 제2 스케줄러를 포함하는 메모리 시스템에 적용되며, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
상기 메모리 모듈 액세서 방법은,
상기 제1 스케줄러가, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계; 및
상기 제1 스케줄러가, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계
를 포함한다.
제1 실현 가능 방식에서, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 것은,
상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계를 포함한다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서는, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하기 전에,
상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제1 스케줄러가 상기 제2 스케줄러에 전송하는 단계; 및
상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하는 단계
를 포함한다.
제2 실현 가능 방식을 참조한 제3 실현 가능 방식에서, 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
제2 양태 또는 제2 양태의 제1 실현 가능 방식, 또는 제2 실현 가능 방식, 또는 제3 실현 가능 방식을 참조한, 제4 실현 가능 방식에서, 각각의 스케줄러는 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립한다.
제3 양태에 따르면, 본 발명의 일 실시예는 메모리 모듈 액세스 방법을 제공하며, 이 메모리 액세스 방법은 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하는 메모리 시스템에 적용되고, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
상기 메모리 모듈 액세서 방법은,
제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계 - 상기 제1 메모리 액세스 요청 및 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치함 - ; 및
상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계
를 포함한다.
제1 실현 가능 방식에서, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 것은,
상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계를 포함한다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서는, 상기 메모리 시스템이 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 상기 제1 메모리 채널에 대응되며, 상기 제2 스케줄러는 상기 제2 메모리 채널에 대응되고,
상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하기 전에,
상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제1 스케줄러가 상기 제2 스케줄러에 전송하는 단계; 및
상기 제1 스케줄러가, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하는 단계
를 더 포함한다.
제3 양상, 또는 제3 양상의 제1 실현 가능 방식 또는 제2 실현 가능 방식을 참조한, 제3 실현 가능 방식에서, 상기 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립한다.
제4 양상에 따르면, 본 발명의 일 실시예는 메모리 컨트롤러를 제공하며, 이 메모리 컨트롤러는 메모리 시스템에 적용되며 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있으며,
상기 제1 스케줄러는 상기 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하도록 구성되고,
상기 제1 스케줄러는 또한, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하도록 구성된다.
제1 실현 가능 방식에서, 상기 제1 스케줄러, 제1 메모리 액세스 요청 및 제2 액세스 메모리 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되고,
상기 제1 스케줄러는,
상기 제2 메모리 요청이 전송 대기 상태인 때에, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널이 유휴 상태이면, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성된다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서, 상기 제1 스케줄러는, 상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 더 구성되고,
상기 제1 스케줄러는,
상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
제2 실현 가능 방식을 참조한 제3 실현 가능 방식에서는, 상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스가 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
제4 양상 또는 제4 양상의 제1 실현 가능 방식, 제2 실현 가능 방식, 또는 제3 실현 가능 방식을 참조한 제4 실현 가능 방식에서, 상기 제1 스케줄러는, 적어도 두 개의 경로를 가지며, 상기 적어도 두 개의 경로를 이용하여 상기 제1 메모리 채널 및 상기 제2 메모리 채널로의 연결을 확립한다.
제5 양상에 따르면, 본 발명의 일 실시예는 메모리 컨트롤러를 제공하며, 이 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있고,
상기 제1 스케줄러는,
제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하고, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
제1 실현 가능 방식에서, 상기 제1 스케줄러는, 상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서, 상기 제1 스케줄러는, 상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하고,
상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 구성되어 있다.
제2 실현 가능 방식을 참조한 제3 실현 가능 방식에서는, 상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스가 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
제5 양상 또는 제5 양상의 제1 실현 가능 방식, 제2 실현 가능 방식, 또는 제3 실현 가능 방식을 참조한 제4 실현 가능 방식에서, 상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널 사이로의 연결을 확립한다.
제6 양상에 따르면, 본 발명의 일 실시예는 메모리 컨트롤러를 제공하며, 이 메모리 컨트롤러는 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
상기 메모리 컨트롤러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되어 있고, 상기 제1 메모리 액세스 요청 및 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하고,
상기 메모리 컨트롤러는, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성되어 있다.
제1 실현 가능 방식에서, 상기 메모리 컨트롤러는 구체적으로,
상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성된다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서, 상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 상기 제1 메모리 채널에 대응되며, 상기 제2 스케줄러는 상기 제2 메모리 채널에 대응되고,
상기 제1 스케줄러는, 상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 구성되고,
상기 제1 스케줄러는, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
제6 양상, 또는 제6 양상의 제1 실현 가능 방식 또는 제2 실현 가능 방식을 참조한, 제3 실현 가능 방식에서, 상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립한다.
제7 양상에 따르면, 본 바렴ㅇ의 일 실시예는 중앙 처리 유닛(CPU, central processing unit)을 제공하며, 이 CPU는 메모리 시스템에 적용되고 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러 사이에 상기 전송 링크가 확립되어 있으며,
상기 제1 스케줄러는, 상기 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하도록 구성되어 있고,
상기 제1 스케줄러는, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하도록 더 구성되어 있다.
제1 실현 가능 방식에서, 상기 제1 스케줄러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되며,
상기 제1 스케줄러는,
상기 제2 메모리 액세스 요청이 전송 대기 상태인 때에, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널이 유휴 상태이면, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성된다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서, 상기 제1 스케줄러는,
상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 더 구성되고,
상기 제1 스케줄러는,
상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
제2 실현 가능 방식을 참조한 제3 실현 가능 방식에서, 상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
제7 양상, 또는 제7 양상의 제1 실현 가능 방식, 제2 실현 가능 방식, 또는 제3 실현 가능 방식에서, 상기 제1 스케줄러는, 적어도 두 개의 경로를 가지며, 상기 적어도 두 개의 경로를 이용하여 상기 제1 메모리 채널 및 상기 제2 메모리 채널로의 연결을 확립한다.
제8 양상에 따르면, 본 발명의 일 실시예는 메모리 컨트롤러를 포함하는 중앙 처리 유닛을 제공하며, 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 컨트롤러는 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있고,
상기 제1 스케줄러는,
제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하고, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
제1 실현 가능 방식에서, 상기 제1 스케줄러는, 상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서, 상기 제1 스케줄러는, 상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하고,
상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 구성되어 있다.
제2 실현 가능 방식을 참조한 제3 실현 가능 방식에서는, 상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스가 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
제8 양상, 또는 제8 양상의 제1 실현 가능 방식, 제2 실현 가능 방식, 또는 제3 실현 가능 방식을 참조한, 제4 실현 가능 방식에서, 상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널 사이로의 연결을 확립한다.
제9 양상에 따르면, 본 발명의 일 실시예는 중앙 처리 유닛을 제공하며, 상기 중앙 처리 유닛은, 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하는 메모리 컨트롤러를 포함하며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 컨트롤러는 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
상기 메모리 컨트롤러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되어 있으며, 상기 제1 메모리 액세스 요청 및 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하고,
상기 메모리 컨트롤러는, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성된다.
제1 실현 가능 방식에서, 상기 메모리 컨트롤러는 구체적으로, 상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성된다.
제1 실현 가능 방식을 참조한 제2 실현 가능 방식에서, 상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 상기 제1 메모리 채널에 대응되며, 상기 제2 스케줄러는 상기 제2 메모리 채널에 대응되고,
상기 제1 스케줄러는, 상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 구성되고,
상기 제1 스케줄러는, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
제9 양상, 또는 제9 양상의 제1 실현 가능 방식 또는 제2 실현 가능 방식을 참조하나, 제3 실현 가능 방식에서, 상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립한다.
본 발명의 실시예에서 제공되는 메모리 모듈 액세스 방법 및 장치에 따르면, 복수의 메모리 액세스 요청이 수신되면, 수신된 복수의 메모리 액세스 요청이 복수의 메모리 채널을 통해 전송될 수 있다. 본 발명의 실시예에서 제공되는 방법을 이용함으로써, 복수의 수신된 메모리 액세스 요청이 복수의 메모리 채널 사이에서 불균형적인 방법으로 분배되더라도, 복수의 수신된 메모리 액세스 요청은 유휴 상태에 있는 다른 메모리 채널을 통해 전송될 수 있기 때문에, 대역폭 리소스의 활용도가 향상되고, 메모리 액세스 대역폭이 향상된다.
본 발명 또는 종래기술의 실시예에 의한 기술적 해결책을 보다 명확히 설명하기 위해 이하에서는 본 발명 실시예 또는 종래기술의 설명을 위한 첨부 도면들을 간략하게 소개한다. 명확하게는, 이하 설명에서의 첨부 도면은 본 발명의 일부 실시예를 보여주는 것일 뿐이며, 통상의 기술자는 창조적 수고 없이 이 첨부 도면들로부터 다른 도면을 도출해낼 수 있다.
도 1 및 도 2는 본 발명의 제1 실시예에 따른 메모리 모듈 액세스 방법의 모식적 흐름도이다.
도 3 및 도 4는 본 발명의 제2 실시예에 따른 메모리 컨트롤러 구조의 블록도이다.
도 5 및 도 6은 본 발명의 제3 실시예에 따른 CPU 구조의 블록도이다.
도 7 및 도 8은 본 발명의 제4 실시예에 따른 메모리 모듈 액세스 방법의 모식적 흐름도이다.
도 9는 본 발명의 제5 실시예에 따른 메모리 컨트롤러 구조의 블록도이다.
도 10은 본 발명의 제6 실시예에 따른 CPU 구조의 블록도이다.
도 11 및 도 12는 본 발명의 제7 실시예에 따른 메모리 모듈 액세스 방법의 모식적 흐름도이다.
도 13은 본 발명의 제8 실시예에 따른 CPU 구조의 블록도이다.
도 14 및 15는 본 발명의 제9 실시예에 따른 CPU 구조의 블록도이다.
도 16은 본 발명의 제10 실시예에 따른 이중 채널 메모리 시스템의 구조도이다.
도 17은 본 발명의 제11 실시예에 따른 삼중 채널 메모리 시스템의 구조도이다.
이하에서는 본 발명의 실시예의 첨부 도면들을 참조하여 본 발명의 실시예에 따른 기술적 해결책을 명확하게 설명한다. 명확하게는 설명되는 실시예들은 본 발명의 일부 실시예에 불과하며 모든 실시예가 아니다. 통상의 기술자가 창조적 수고 없이 본 발명의 실시예에 기초하여 도출할 수 있는 다른 모든 실시예들은 본 발명의 보호 범위 내에 속할 것이다.
제1 실시예
본 발명의 실시예는 메모리 시스템에 적용되는 메모리 모듈 액세스 방법을 제공하며, 여기서 메모리 시스템은 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 제1 스케줄러는 제1 메모리 채널에 대응되며, 제2 스케줄러는 제2 메모리 채널에 대응되고, 각 메모리 채널은 하나의 메모리 모듈에 대응되며; 메모리 시스템은 복수의 메모리 모듈을 포함하고, 여기서 복수의 메모리 모듈 간에 전송 링크가 확립되며, 제1 스케줄러와 제2 스케줄러 사이에 전송 링크가 확립된다.
도 1에 도시된 바와 같이 본 방법은 이하의 단계를 포함한다.
단계 101: 제1 스케줄러가 제2 스케줄러 내의 전송될(to-be-sent) 메모리 액세스 요청의 수량을 획득한다.
단계 102: 제1 스케줄러가, 메모리 액세스 요청을 수신하고, 제2 스케줄러에 대응되는 제2 메모리 채널을 통해 메모리 액세스 요청을 전송한다.
본 실시예에서 메모리 시스템은 복수의 스케줄러를 포함하며 복수의 스케줄러 사이에 통신 링크가 확립되어 있기 때문에 각 스케줄러는 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있으며; 이에 따라 메모리 액세스 요청을 수신한 후에 각 스케줄러는 유휴 메모리 채널을 결정하고 유휴 메모리 채널을 통해 메모리 액세스 요청을 전송할 수 있다.
나아가 도 1에 도시된 방법에 기초하여 본 발명의 실시예는 보다 상세한 메모리 액세스 방법을 제공한다. 도 2에 도시된 바와 같이 본 방법은 이하의 단계를 포함한다.
단계 201: 제1 스케줄러는 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 실시간으로 획득하며, 여기서 제1 스케줄러는 복수의 스케줄러 중 임의의 스케줄러이고, 다른 스케줄러는 그 복수의 스케줄러 중에서 제1 스케줄러를 제외한 나머지 스케줄러이다.
단계 202: 제1 스케줄러는 적어도 두 개의 메모리 액세스 요청을 수신하며, 여기서 적어도 두 개의 메모리 액세스 요청은 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함한다.
일반적으로 제1 스케줄러에 의해 수신되는 메모리 액세스 요청의 목적지 어드레스는 모두 제1 스케줄러에 대응되는 메모리 모듈 내에 위치한다는 점, 다르게 말하면, 제1 스케줄러에 대응되는 메모리 채널이 제1 메모리 채널로 마크되는(marked) 경우 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청 모두의 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다는 점에 유의해야 한다.
단계 203: 제1 스케줄러가 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하면, 제2 메모리 액세스 요청은 전송 대기 상태(to-be-sent state)에 있게 된다.
단계 204: 제1 스케줄러는 다른 스케줄러에 대응되는 메모리 채널의 상태를 질의하여(query), 대응되는 메모리 채널이 유휴 상태인 보조(auxiliary) 스케줄러를 결정한다.
구체적으로 제1 스케줄러는 이하의 방법을 이용하여 보조 스케줄러를 결정할 수 있다: 제1 스케줄러가 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 질의하고, 전송될 메모리 액세스 요청의 수량이 0인 스케줄러를 보조 스케줄러로 결정한다.
쉽게 이해를 하자면, 본 실시예에서는 결정된 보조 스케줄러를 제2 스케줄러라고 마크하며, 제2 스케줄러 내의 현재 전송될 메모리 액세스 요청의 수량이 0이고, 제2 스케줄러에 대응되는 메모리 채널은 유휴 상태이다.
제2 스케줄러 내의 현재 전송될 메모리 액세스 요청의 수량이 0이라 함은, 제2 스케줄러에 대응되는 메모리 채널이 절대적인 유휴 상태임을 나타낸다는 것에 유의해야 한다. 선택적인 해결책으로서, 제2 스케줄러에 대응되는 메모리 채널이 상대적인 유휴 상태인 경우(예를 들어, 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량이 0인 것은 아니지만, 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량이 제1 스케줄러 내의 전송될 메모리 액세스 요청의 수량보다 현저하게 적을 경우)에도, 제1 스케줄러는 제2 스케줄러를 보조 스케줄러로 결정하고, 제2 스케줄러에 대응되는 메모리 채널을 통해, 수신된 메모리 액세스 요청 중 일부를 전송할 수 있음이 강조되어야 한다. 이와 같은 방법을 통해, 많은 양의 메모리 액세스 요청을 수신하는 경우 제1 스케줄러가 제1 스케줄러 내의 전송될 메모리 액세스 요청 중 일부를 보조 스케줄러에 제때 전송할 수 있음으로써 제1 스케줄러가 더 많은 메모리 액세스 요청을 버퍼링할 수 있고, 이에 따라 메모리 시스템의 통신 능력(communication capacity)이 향상된다.
단계 205: 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청(memory channel occupation request)을 제1 스케줄러는 제2 스케줄러에 전송한다.
단계 206: 제2 스케줄러는, 제2 스케줄러에 대응되는 메모리 채널이 유휴 상태라고 판정하고, 제1 스케줄러로 하여금 제2 스케줄러에 대응되는 제2 메모리 채널을 점유하도록 하며, 메모리 채널 점유 요청에 대응하여 확인 응답(confirmation response)을 제1 스케줄러에 전송한다.
단계 207: 제1 스케줄러는, 메모리 채널 점유 요청에 대응하여 제2 스케줄러에 의해 리턴되는(returned) 확인 응답을 수신한다.
단계 208: 제1 스케줄러는 제2 스케줄러에 대응되는 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송한다.
일반적으로, 하나의 스케줄링 타임슬롯(timeslot) 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러는 수신된 제1 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러는 또한 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송할 수도 있다는 점에 유의해야 한다. 또 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재한다면, 제1 스케줄러는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 본 실시예에 의한 방법에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 이 실시예에 한정되지 않는다.
단계 209: 제2 스케줄러에 대응되는 메모리 모듈이 제2 메모리 액세스 요청을 수신하고, 제2 메모리 액세스 요청 내의 목적지 주소에 따라 메모리 모듈 사이의 전송 링크를 통해 제2 메모리 액세스 요청을 목적지 메모리 모듈, 즉, 제1 스케줄러에 대응되는 메모리 모듈로 전송한다.
본 실시예에서 각각의 스케줄러는 복수의 경로를 포함하고, 복수의 경로를 이용하여 복수의 메모리 채널로의 연결을 확립하며, 이로써 각 스케줄러는 다른 스케줄러에 대응되는 메모리 채널을 통해 메모리 액세스 요청을 전송할 수 있다는 점에 유의해야 한다.
본 실시예에 의한 메모리 모듈 액세스 방법은 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 본 실시예의 복수의 스케줄러는 하나의 종합(general) 스케줄러로 통합될 수 있으며, 그에 따라 복수의 메모리 채널 사이에 연결 정도가 더 향상된다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 메모리 모듈 액세스 방법에 따르면, 각각의 스케줄러는 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있으며, 복수의 메모리 액세스 요청을 수신할 경우에는 복수의 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 상술한 본 발명의 실시예에 의한 방법에 따르면, 복수의 메모리 액세스 요청이 수신될 경우, 복수의 수신된 메모리 액세스 요청이 복수의 메모리 채널에 전송을 위해 할당될 수 있고, 이로써 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제2 실시예
본 발명의 실시예는 메모리 시스템에 적용되며 도 1 및 도 2에 도시된 메모리 모듈 액세스 방법을 실현할 수 있는 메모리 컨트롤러를 제공한다. 도 3에 도시된 바와 같이, 메모리 컨트롤러는 적어도 제1 스케줄러(31) 및 제2 스케줄러(32)를 포함하며, 제1 스케줄러(31)는 제1 메모리 채널에 대응되고, 제2 스케줄러(32)는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고; 메모리 시스템은 복수의 메모리 모듈을 포함하며, 여기서 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 이 전송 링크는 제1 스케줄러(31)와 제2 스케줄러(32)의 사이에 확립되어 있다.
제1 스케줄러(31)는 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하도록 구성된다.
제1 스케줄러(31)는, 메모리 액세스 요청을 수신하고, 제2 스케줄러에 대응되는 제2 메모리 채널을 통해 메모리 액세스 요청을 전송하도록 더 구성된다.
도 3에 도시된 제1 스케줄러(31)와 제2 스케줄러(32)는 설명을 위한 예시에 불과하다는 점에 유의해야 한다. 실제 적용에서 메모리 컨트롤러는 복수의 스케줄러를 포함할 수 있다. 도 4에 도시된 바와 같이, 메모리 컨트롤러는 제3 스케줄러(33) 및 제4 스케줄러(34) 등과 같이 복수의 스케줄러를 더 포함할 수 있다. 메모리 시스템 내의 스케줄러 간에 통신 링크가 확립되어 있기 때문에, 각각의 스케줄러는 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있다. 이와 같이 메모리 액세스 요청을 수신한 후에, 각각의 스케줄러는 유휴 메모리 채널을 판정하여 유휴 메모리 채널을 통해 메모리 액세스 요청을 전송한다.
구체적으로 제1 스케줄러(31)는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성된다.
제1 스케줄러(31)는, 제2 메모리 액세스 요청이 전송 대기 상태에 있을 때, 제2 스케줄러(32)에 대응되는 제2 메모리 채널이 유휴 상태이면, 제2 스케줄러(32)에 대응되는 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 더 구성된다.
구체적으로 제1 스케줄러(31)는, 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러(32)에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제2 스케줄러(32)에 전송하도록 더 구성되고;
제1 스케줄러(31)는, 메모리 채널 점유 요청에 대응하여 제2 스케줄러(32)에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
일반적으로, 제1 스케줄러(31)가 하나의 스케줄링 타임슬롯 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러(31)는 수신된 제1 메모리 액세스 요청을 제1 스케줄러(31)에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러(31)는 또한 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러(31)에 대응되는 메모리 채널을 통해 전송할 수 있음에 유의해야 한다. 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재할 경우, 제1 스케줄러(31)는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 상술한 실시예에 의한 방법에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 본 실시예에 의해 제한되지 않는다.
제1 스케줄러(31)에 의해 수신된 제2 메모리 액세스 요청의 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
상술한 실시예에서 각각의 스케줄러는 복수의 경로를 가지며, 이 복수의 경로를 이용하여 복수의 메모리 채널로의 연결을 확립할 수 있고, 이로써 각각의 스케줄러가 다른 스케줄러에 대응되는 메모리 채널을 통해 메모리 액세스 요청을 전송할 수 있다는 점에 유의해야 한다. 예를 들어, 제1 스케줄러(31)는 적어도 두 개의 경로를 가지며, 이 적어도 두 개의 경로를 이용하여 제1 메모리 채널과 제2 메모리 채널로의 연결을 확립한다.
상술한 실시예에 의한 메모리 컨트롤러는 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있다는 점이 강조되어야 한다.
바람직한 해결책으로서, 메모리 컨트롤러 내의 복수의 스케줄러는 하나의 종합 스케줄러로 통합될 수 있으며, 이로써 복수의 메모리 채널 간의 연결 정도를 더 향상시킨다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 메모리 컨트롤러 내의 스케줄러 각각은 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있으며, 복수의 메모리 액세스 요청을 획득하면, 복수의 메모리 채널을 통해, 수신된 복수의 메모리 액세스 요청을 전송할 수 있다. 상술한 본 발명의 실시예에 의한 메모리 컨트롤러에 의하면, 복수의 메모리 액세스 요청이 수신될 경우, 복수의 수신된 메모리 액세스 요청이 전송을 위해 복수의 메모리 채널에 할당될 수 있고, 이로써 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제3 실시예
본 발명의 실시예는 메모리 시스템에 적용되고 전술한 도 1 및 도 2에 도시된 방법을 실현할 수 있는 CPU를 제공한다. 도 5에 도시된 바와 같이, CPU는 메모리 컨트롤러(50)를 포함하며, 메모리 컨트롤러(50)는 제1 스케줄러(51) 및 제2 스케줄러(52)를 포함하고, 제1 스케줄러(51)는 제1 메모리 채널에 대응되며, 제2 스케줄러(52)는 제2 메모리 채널에 대응되고, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고; 메모리 시스템은 복수의 메모리 모듈을 포함하며, 복수의 메모리 모듈 사이에는 전송 링크가 확립되며, 이 전송 링크는 제1 스케줄러(51)와 제2 스케줄러(52)의 사이에 확립되어 있다.
구체적으로 제1 스케줄러(51)는 제2 스케줄러(52) 내의 전송될 메모리 액세스 요청의 수량을 획득하도록 구성되어 있다.
또한 제1 스케줄러(51)는 메모리 액세스 요청을 수신하고, 제2 스케줄러에 대응되는 제2 메모리 채널을 통해 메모리 액세스 요청을 전송하도록 더 구성되어 있다.
도 5에 도시된 제1 스케줄러(51)와 제2 스케줄러(52)는 설명을 위한 예시에 불과하다는 점에 유의해야 한다. 실제 적용에서 메모리 컨트롤러는 복수의 스케줄러를 포함할 수 있다. 도 6에 도시된 바와 같이, 메모리 컨트롤러는 제3 스케줄러(53) 및 제4 스케줄러(54) 등과 같은 복수의 스케줄러를 더 포함할 수 있다. 메모리 시스템 내의 스케줄러 사이에는 통신 링크가 확립됨으로써 각각의 스케줄러가 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있다. 이와 같이 메모리 액세스 요청을 수신한 후에, 각각의 스케줄러는 유휴 메모리 채널을 판정하여 유휴 메모리 채널을 통해 메모리 액세스 요청을 전송할 수 있다.
구체적으로 제1 스케줄러(51)는 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성된다.
또한 제1 스케줄러는, 제2 메모리 액세스 요청이 전송 대기 상태에 있을 때, 제2 스케줄러(52)에 대응되는 제2 메모리 채널이 유휴 상태이면, 제2 스케줄러(52)에 대응되는 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 더 구성된다.
구체적으로 제1 스케줄러(51)는, 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러(52)에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제1 스케줄러(51)가 제2 스케줄러(52)에 전송하도록 더 구성된다.
또한 제1 스케줄러(51)는, 메모리 채널 점유 요청에 대응하여 제2 스케줄러(52)에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
제1 스케줄러(51)에 의해 수신되는 제2 메모리 액세스 요청의 목적지 어드레스는, 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
일반적으로, 하나의 스케줄링 타임슬롯 내에 복수의 액세스 요청을 수신하면, 제1 스케줄러는 수신된 제1 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러는 또한 수신된 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송할 수도 있음에 유의해야 한다. 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재할 경우, 제1 스케줄러는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 상술한 실시예에 의한 방법에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 본 실시예에 의해 제한되지 않는다.
상술한 실시예에서 메모리 컨트롤러 내의 스케줄러 각각은 복수의 경로를 가지며, 이 복수의 경로를 이용하여 복수의 메모리 채널로의 연결을 확립한다는 점에 유의해야 한다. 예를 들어 제1 스케줄러는 적어도 두 개의 경로를 가지고, 이 적어도 구 개의 경로를 이용하여 제1 메모리 채널과 제2 메모리 채널로의 연결을 확립한다.
상술한 실시예에 의한 CPU는 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 메모리 컨트롤러(50) 내의 복수의 스케줄러는 하나의 종합 스케줄러로 통합될 수 있으며, 이로써 복수의 메모리 채널 간의 연결 정도를 더 향상시킨다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 CPU는 메모리 컨트롤러를 포함한다. 메모리 컨트롤러 내의 스케줄러 각각은 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있으며, 복수의 메모리 액세스 요청을 획득하면, 복수의 메모리 채널을 통해, 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 상술한 본 발명의 실시예에 의한 CPU에 의하면, 복수의 메모리 액세스 요청이 수신될 경우, 복수의 수신된 메모리 액세스 요청이 전송을 위해 복수의 메모리 채널에 할당될 수 있고, 이로써 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제4 실시예
본 발명의 실시예는 메모리 시스템에 적용되는 메모리 모듈 액세스 방법을 제공하며, 여기서 메모리 시스템은 제1 스케줄러 및 제2 스케줄러를 포함하고, 제1 스케줄러는 제1 메모리 채널에 대응되고, 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고; 메모리 시스템은 복수의 메모리 모듈을 포함하며, 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 제1 스케줄러와 제2 스케줄러의 사이에 전송 링크가 확립되어 있다.
도 7에 도시된 바와 같이 본 발명은 이하의 단계를 포함한다.
단계 701: 제1 스케줄러가, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신한다.
단계 702: 제1 스케줄러가, 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하고, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송한다.
위 실시예의 방법에 따르면, 복수의 스케줄러에 의해 수신되는 메모리 액세스 요청은 메모리 시스템의 복수의 메모리 채널을 이용하여 공유될 수 있으며, 이로써 메모리 채널의 대역폭 리소스의 활용도가 향상된다.
나아가 도 7에 도시된 방법에 기초하여, 상술한 본 발명의 실시예는 더욱 상세한 메모리 모듈 액세스 방법을 제공한다. 도 8에 도시된 바와 같이, 본 방법은 이하의 단계를 포함한다.
단계 801: 제1 스케줄러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신한다.
일반적으로, 제1 스케줄러에 의해 수신되는 메모리 액세스 요청의 목적지 어드레스는 모두 제1 스케줄러에 대응되는 메모리 모듈 내에 위치해 있다는 점, 즉, 제1 스케줄러에 대 응되는 메모리 채널이 제1 메모리 채널로 마크되면, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청 모두 그 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다는 점에 유의해야 한다.
단계 802: 제1 스케줄러가 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하며, 이 때 제2 메모리 액세스 요청은 전송 대기 상태이다.
단계 803: 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제1 스케줄러는 제2 스케줄러에 전송한다.
제2 스케줄러는 메모리 시스템 내의 복수의 스케줄러 중 임의의 스케줄러라는 점에 유의해야 한다. 복수의 메모리 액세스 요청을 수신할 때에 제1 스케줄러는 메모리 채널 점유 요청을 메모리 시스템 내의 모든 스케줄러에게로 전송하라 수 있다. 이와 같은 실시예에서 제2 스케줄러는 상세한 설명을 위한 예시로 이용된다.
단계 804: 제2 스케줄러는 제2 스케줄러에 대응되는 메모리 채널이 유휴 상태인지 여부를 검출하고; 유휴 상태인 경우, 단계 805를 수행하며; 유휴 상태가 아닌 경우에는 단계 809를 수행한다.
단계 805: 제2 스케줄러는 제1 스케줄러로 하여금 제2 스케줄러에 대응되는 제2 메모리 채널을 점유하도록 하며, 메모리 채널 점유 요청에 대응하여 제1 스케줄러에게로 확인 응답을 전송한다.
단계 806: 제1 스케줄러는 메모리 채널 점유 요청에 대응하여 제2 스케줄러에 의해 리턴되는 확인 응답을 수신한다.
단계 807: 제1 스케줄러는 제2 스케줄러에 대응되는 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송한다.
일반적으로, 하나의 스케줄링 타임슬롯 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러는 수신된 제1 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러는 또한 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송할 수도 있다는 점에 유의해야 한다. 또 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재한다면, 제1 스케줄러는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 본 실시예에 의한 방법에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 이 실시예에 한정되지 않는다.
단계 808: 제2 스케줄러에 대응되는 메모리 모듈은 제2 메모리 액세스 요청을 수신하며, 제2 메모리 액세스 요청 내의 목적지 주소에 따라 메모리 모듈 간의 전송 링크를 통해, 제2 메모리 액세스 요청을 목적지 메모리 모듈, 즉, 제1 스케줄러에 대응되는 메모리 모듈에게로 전송한다.
단계 809: 제2 스케줄러는 제1 스케줄러에 의해 전송된 메모리 채널 점유 요청을 거절한다.
본 실시예에서 각각의 스케줄러는 복수의 경로를 포함하고, 복수의 경로를 이용하여 복수의 메모리 채널로의 연결을 확립하며, 이로써 각 스케줄러는 다른 스케줄러에 대응되는 메모리 채널을 통해 메모리 액세스 요청을 전송할 수 있다는 점에 유의해야 한다.
본 실시예에 의한 메모리 모듈 액세스 방법은 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 본 실시예의 복수의 스케줄러는 하나의 종합(general) 스케줄러로 통합될 수 있으며, 그에 따라 복수의 메모리 채널 사이에 연결 정도가 더 향상된다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 메모리 모듈 액세스 방법에 따르면, 복수의 메모리 액세스 요청이 수신될 경우, 복수의 스케줄러에 의해 수신된 메모리 액세스 요청은 메모리 시스템의 복수의 메모리 채널을 이용함으로써 공유될 수 있고, 복수의 메모리 액세스 요청은 복수의 메모리 채널을 통해 전송될 수 있으며, 이로써 메모리 채널의 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제5 실시예
본 발명의 실시예는 도 7 및 도 8에 도시된 방법을 실현할 수 있는 메모리 컨트롤러를 제공한다. 도 9에 도시된 바와 같이, 메모리 컨트롤러는 적어도 제1 스케줄러(91) 및 제2 스케줄러(92)를 포함하며, 제1 스케줄러(91)는 제1 메모리 채널에 대응되고, 제2 스케줄러(92)는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나 또는 그 이상의 메모리 모듈에 대응되고, 이 메모리 모듈 사이에는 전송 링크가 확립되어 있다.
제1 스케줄러(91)는 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하고; 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하고, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
구체적으로 제1 스케줄러(91)는, 제2 메모리 채널이 유휴 상태인 때에, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
나아가 제1 스케줄러(91)는, 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제1 스케줄러가 제2 스케줄러에 전송하고;
메모리 채널 점유 요청에 대응하여 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 구성되어 있다.
제1 스케줄러에 의해 수신되는 제2 메모리 액세스 요청의 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
일반적으로, 하나의 스케줄링 타임슬롯 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러(91)는 수신된 제1 메모리 액세스 요청을 제1 스케줄러(91)에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러(91)는 또한 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러(91)에 대응되는 메모리 채널을 통해 전송할 수도 있다는 점에 유의해야 한다. 또 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재한다면, 제1 스케줄러(91)는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 본 실시예에 의한 방법에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 이 실시예에 한정되지 않는다.
구체적으로, 각각의 스케줄러는 복수의 경로를 포함하고, 복수의 경로를 이용하여 복수의 메모리 채널로의 연결을 확립한다.
본 실시예에 의한 메모리 컨트롤러가 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 메모리 컨트롤러 내의 복수의 스케줄러는 하나의 종합 스케줄러로 통합될 수 있으며, 그에 따라 복수의 메모리 채널 사이에 연결 정도가 더 향상된다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 메모리 컨트롤러에서는, 복수의 메모리 액세스 요청이 수신될 경우, 복수의 스케줄러에 의해 수신된 메모리 액세스 요청은 메모리 시스템의 복수의 메모리 채널을 이용함으로써 공유될 수 있고, 복수의 메모리 액세스 요청은 복수의 메모리 채널을 통해 전송될 수 있으며, 이로써 메모리 채널의 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제6 실시예
본 실시예는 도 7 및 도 8에 도시된 방법을 실현할 수 있는 CPU를 제공한다. 도 10에 도시된 바와 같이, CPU는 메모리 컨트롤러(1000)를 포함하며, 메모리 컨트롤러(1000)는 적어도 제1 스케줄러(1001) 및 제2 스케줄러(1002)를 포함하고, 제1 스케줄러는 제1 메모리 채널에 대응되고, 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나 또는 그 이상의 메모리 모듈에 대응되고; 메모리 시스템은 복수의 메모리 모듈을 포함하며, 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 이 전송 링크는 제1 스케줄러와 제2 스케줄러의 사이에 이미 확립되어 있다.
제1 스케줄러(1001)는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하고; 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하고, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
구체적으로 제1 스케줄러(1001)는, 제2 메모리 채널이 유휴 상태인 때에, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 구성되어 있다.
일반적으로, 하나의 스케줄링 타임슬롯 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러(1001)는 수신된 제1 메모리 액세스 요청을 제1 스케줄러(1001)에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러(1001)는 또한 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러(1001)에 대응되는 메모리 채널을 통해 전송할 수도 있다는 점에 유의해야 한다. 또 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재한다면, 제1 스케줄러(1001)는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 본 실시예에 의한 CPU에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 이 실시예에 한정되지 않는다.
나아가 제1 스케줄러(1001)는, 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러(1002)에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제2 스케줄러(1002)에 전송하고;
메모리 채널 점유 요청에 대응하여 제2 스케줄러(1002)에 의해 리턴되는 확인 응답을 수신하도록 구성되어 있다.
제1 스케줄러(1001)에 의해 수신되는 제2 메모리 액세스 요청의 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
본 실시예에서 메모리 컨트롤러(1000) 내의 스케줄러 각각은 복수의 경로를 가지며, 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립한다.
본 실시예에 의한 메모리 컨트롤러가 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 메모리 컨트롤러 내의 복수의 스케줄러는 하나의 종합 스케줄러로 통합될 수 있으며, 그에 따라 복수의 메모리 채널 사이에 연결 정도가 더 향상된다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 CPU에서는, 복수의 메모리 액세스 요청이 수신될 경우, 복수의 스케줄러에 의해 수신된 메모리 액세스 요청은 메모리 시스템의 복수의 메모리 채널을 이용함으로써 공유될 수 있고, 복수의 메모리 액세스 요청은 복수의 메모리 채널을 통해 전송될 수 있으며, 이로써 메모리 채널의 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제7 실시예
본 발명의 실시예는, 적어도 제1 스케줄러 및 제2 스케줄러를 포함하는 메모리 시스템에 적용될 수 있는 메모리 모듈 액세스 방법을 제공하며, 여기서 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고; 메모리 시스템은 복수의 메모리 모듈을 포함하며, 복수의 메모리 모듈 사이에는 전송 링크가 확립되어 있다.
도 11에 도시된 바와 같이 본 발명은 이하의 단계를 포함한다.
단계 1101: 제1 스케줄러가, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계로서, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청 모두 그 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
단계 1102: 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하고, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송한다.
위와 같은 실시예에 의한 메모리 모듈 액세스 방법에 따르면, 복수의 메모리 액세스 요청을 수신할 때, 제1 스케줄러는 복수의 수신된 메모리 액세스 요청을 다른 스케줄러(예를 들면 본 실시예의 제2 스케줄러)에 대응되는 메모리 채널을 통해 전송할 수 있다.
또한, 도 11에 도시된 방법에 기초하여, 상술한 본 발명의 실시예는 보다 구체적인 메모리 모듈 액세스 방법을 더 제공한다. 도 12에 도시된 바와 같이 이 방법은 이하의 단계를 포함한다.
단계 1201: 제1 스케줄러가, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계로서, 여기서 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청 모두 그 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
단계 1202: 제1 스케줄러는 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하며, 이 때 제2 메모리 액세스 요청은 전송 대기 상태이다.
단계 1203: 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제1 스케줄러가 제2 스케줄러에 전송한다.
제2 스케줄러가 메모리 시스템 내의 복수의 스케줄러 중 임의의 스케줄러임에 유의해야 한다. 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러는 메모리 채널 점유 요청을 메모리 시스템 내의 모든 스케줄러에게로 전송할 수 있다. 이러한 실시예에서, 제2 실시예는 상세한 설명을 위한 예시로서 이용된다.
단계 1204: 제2 스케줄러는 제2 스케줄러에 대응되는 메모리 채널이 유휴 상태인지 여부를 검출하고; 유휴 상태인 경우, 단계 1205를 수행하며; 유휴 상태가 아닌 경우에는 단계 1209를 수행한다.
단계 1205: 제2 스케줄러는 제1 스케줄러로 하여금 제2 스케줄러에 대응되는 제2 메모리 채널을 점유하도록 하며, 메모리 채널 점유 요청에 대응하여 제1 스케줄러에게로 확인 응답을 전송한다.
단계 1206: 제1 스케줄러는 메모리 채널 점유 요청에 대응하여 제2 스케줄러에 의해 리턴되는 확인 응답을 수신한다.
단계 1207: 제1 스케줄러는 제2 스케줄러에 대응되는 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송한다.
일반적으로, 하나의 스케줄링 타임슬롯 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러는 수신된 제1 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러는 또한 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러에 대응되는 메모리 채널을 통해 전송할 수도 있다는 점에 유의해야 한다. 또 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재한다면, 제1 스케줄러는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 본 실시예에 의한 방법에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 이 실시예에 한정되지 않는다.
단계 1208: 제2 스케줄러에 대응되는 메모리 모듈은 제2 메모리 액세스 요청을 수신하며, 제2 메모리 액세스 요청 내의 목적지 주소에 따라 메모리 모듈 간의 전송 링크를 통해, 제2 메모리 액세스 요청을 목적지 메모리 모듈, 즉, 제1 스케줄러에 대응되는 메모리 모듈에게로 전송한다.
단계 1209: 제2 스케줄러는 제1 스케줄러에 의해 전송된 메모리 채널 점유 요청을 거절한다.
본 실시예에서 각각의 스케줄러는 복수의 경로를 포함하고, 복수의 경로를 이용하여 복수의 메모리 채널로의 연결을 확립하며, 이로써 각 스케줄러는 다른 스케줄러에 대응되는 메모리 채널을 통해 메모리 액세스 요청을 전송할 수 있다는 점에 유의해야 한다.
본 실시예에 의한 메모리 모듈 액세스 방법은 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 본 실시예의 복수의 스케줄러는 하나의 종합(general) 스케줄러로 통합될 수 있으며, 그에 따라 복수의 메모리 채널 사이에 연결 정도가 더 향상된다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 메모리 모듈 액세스 방법에 따르면, 복수의 메모리 액세스 요청을 수신한 경우, 제1 스케줄러는 수신된 복수의 메모리 액세스 요청을 다른 스케줄러(예를 들면, 제2 스케줄러)에 대응되는 메모리 채널을 통해 전송할 수 있으며, 이로써 메모리 채널의 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제8 실시예
본 발명의 실시예는 도 10 및 도 11에 도시된 방법을 실현할 수 있는 메모리 컨트롤러를 제공하며, 이 메모리 컨트롤러는 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하고, 각각의 메모리 채널은 하나 또는 그 이상의 메모리 모듈에 대응되며; 메모리 컨트롤러는 복수의 메모리 모듈을 포함하며, 복수의 메모리 모듈 사이에는 전송 링크가 확립되어 있다.
구체적으로 이 메모리 컨트롤러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되어 있으며, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청의 목적지 어드레스는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
또한 메모리 컨트롤러는 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하고 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 더 구성된다.
구체적으로 메모리 컨트롤러는, 제2 메모리 채널이 유휴 상태인 때에, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 구성된다.
도 13에 도시된 바와 같이, 메모리 컨트롤러는 적어도 제1 스케줄러(1301) 및 제2 스케줄러(1302)를 포함하며, 제1 스케줄러(1301)는 제1 메모리 채널에 대응되고, 제2 스케줄러(1302)는 제2 메모리 채널에 대응된다.
제1 스케줄러(1301)는, 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러(1302)에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제2 스케줄러(1302)에 전송하도록 구성되고;
제1 스케줄러(1301)는, 메모리 채널 점유 요청에 대응하여 제2 스케줄러(1302)에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
일반적으로, 하나의 스케줄링 타임슬롯 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러(1301)는 수신된 제1 메모리 액세스 요청을 제1 스케줄러(1301)에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러(1301)는 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러(1301)에 대응되는 메모리 채널을 통해 전송할 수 있음에 유의해야 한다. 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재할 경우, 제1 스케줄러(1301)는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 상술한 실시예에 의한 메모리 컨트롤러에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 본 실시예에 의해 제한되지 않는다.
각각의 스케줄러는 복수의 경로를 포함하고, 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립한다는 점에 유의해야 한다.
본 실시예에 의한 메모리 컨트롤러가 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 메모리 컨트롤러 내의 복수의 스케줄러는 하나의 종합 스케줄러로 통합될 수 있으며, 그에 따라 복수의 메모리 채널 사이에 연결 정도가 더 향상된다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 메모리 컨트롤러에 따르면, 복수의 메모리 액세스 요청을 수신할 경우, 메모리 컨트롤러의 제1 스케줄러가 다른 스케줄러(예를 들면, 제2 스케줄러)에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있으며, 이로써 메모리 채널의 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제9 실시예
본 발명의 실시예는 도 10 및 도 11에 도시된 방법을 실현할 수 있는 CPU를 제공한다. 도 14에 도시된 바와 같이, CPU는 메모리 컨트롤러(1400)를 포함하며, 메모리 컨트롤러(1400)는 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하고, 각각의 메모리 채널은 하나 또는 그 이상의 메모리 모듈에 대응되며; 메모리 컨트롤러(1400)는 복수의 메모리 모듈을 포함하고, 복수의 메모리 모듈 사이에는 전송 링크가 확립되어 있다.
메모리 컨트롤러(1400)는 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되어 있으며, 여기서 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청의 목적지 주소는 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치한다.
메모리 컨트롤러(1400)는 제1 메모리 채널을 통해 제1 메모리 액세스 요청을 전송하고, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 더 구성된다.
또한 메모리 컨트롤러(1400)는 구체적으로, 제2 메모리 채널이 유휴 상태인 때에, 제2 메모리 채널을 통해 제2 메모리 액세스 요청을 전송하도록 구성된다.
도 15에 도시된 바와 같이, 메모리 컨트롤러(1400)는 적어도 제1 스케줄러(1401) 및 제2 스케줄러(1402)를 포함하고, 제1 스케줄러(1401)는 제1 메모리 채널에 대응되며, 제2 스케줄러(1402)는 제2 메모리 채널에 대응된다.
제1 스케줄러(1401)는 제2 메모리 액세스 요청을 전송하기 위한, 제2 스케줄러(1402)에 대응되는 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 제2 스케줄러(1402)에 전송하도록 구성되고,
제1 스케줄러(1401)는, 메모리 채널 점유 요청에 대응하여 제2 스케줄러(1402)에 의해 리턴되는 확인 응답을 수신하도록 더 구성된다.
일반적으로, 하나의 스케줄링 타임슬롯 내에 복수의 메모리 액세스 요청을 수신하면, 제1 스케줄러(1401)는 수신된 제1 메모리 액세스 요청을 제1 스케줄러(1401)에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송한다.
선택적인 해결책으로서, 제1 스케줄러(1401)는 수신된 제1 메모리 액세스 요청을 다른 스케줄러에 대응되는 메모리 채널을 통해 전송하고, 수신된 제2 메모리 액세스 요청을 제1 스케줄러(1401)에 대응되는 메모리 채널을 통해 전송할 수 있음에 유의해야 한다. 다른 선택적 해결책으로서, 유휴 메모리 채널이 충분히 존재할 경우, 제1 스케줄러(1401)는 우선적으로 다른 스케줄러에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 상술한 실시예에 의한 CPU에 따르면, 임의의 스케줄러에 의해 수신된 메모리 액세스 요청은 임의의 유휴 메모리 채널을 통해 전송될 수 있으며, 메모리 채널 할당을 위한 구체적인 방법은 본 실시예에 의해 제한되지 않는다.
본 실시예에서, 메모리 컨트롤러(1400) 내의 스케줄러 각각은 복수의 경로를 포함하고, 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립한다는 점에 유의해야 한다.
본 실시예에 의한 메모리 컨트롤러가 상호연결 경로를 통해 임의의 멀티채널 메모리 시스템에 적용될 수 있음이 강조되어야 한다.
바람직한 해결책으로서, 메모리 컨트롤러 내의 복수의 스케줄러는 하나의 종합 스케줄러로 통합될 수 있으며, 그에 따라 복수의 메모리 채널 사이에 연결 정도가 더 향상된다. 종합 스케줄러는 메모리 채널의 활용도를 최대화하기 위해 모든 메모리 채널 상의 메모리 액세스 요청을 스케줄링할 수 있다.
상술한 본 발명의 실시예에 의한 CPU는 메모리 컨트롤러를 포함한다. 복수의 메모리 액세스 요청을 수신할 경우, 메모리 컨트롤러의 제1 스케줄러가 다른 스케줄러(예를 들면, 제2 스케줄러)에 대응되는 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있으며, 이로써 메모리 채널의 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제10 실시예
쉬운 이해를 위해 본 실시예에서는 본 발명에 의한 기술적 해결책을 설명하기 위한 예시로서 두 개의 스케줄러가 이용된다.
본 실시예는 메모리 시스템에 적용되는 메모리 모듈 액세스 방법을 제공한다. 도 16에 도시된 바와 같이, 메모리 시스템은 스케줄러 0과 스케줄러 1을 포함하며, 스케줄러 0은 메모리 채널 0에 대응되고, 스케줄러 1은 메모리 채널 1에 대응되고; 메모리 채널 0은 메모리 모듈 0, 메모리 모듈 2, 및 메모리 모듈 4에 연결되며, 메모리 채널 1은 메모리 모듈 1, 메모리 모듈 3, 및 메모리 모듈 5에 연결된다.
구체적으로 도 16에 도시된 바와 같이, 전송 링크 161이 스케줄러 0과 스케줄러 1 사이에 확립되어 스케줄러 0과 스케줄러 1 사이의 통신에 이용되며; 스케줄러 0은 경로 1과 경로 2를 가지고, 경로 1은 메모리 채널 0에 연결되며, 경로 2는 메모리 채널 1에 연결되고; 스케줄러 1은 경로 1과 경로 2를 가지며, 경로 1은 메모리 채널 1에 연결되고, 경로 2는 메모리 채널 0에 연결되고; 전송 링크 162는 메모리 모듈 0과 메모리 모듈 1 사이에 확립되어 메모리 모듈 0과 메모리 모듈 1 사이의 통신에 이용된다.
도 16에 도시된 메모리 시스템을 참조하면, 본 실시예에 의한 메모리 모듈 액세스 방법은 이하의 단계를 포함한다.
단계 S1: 스케줄러 0 및 스케줄러 1은 전송 링크 161을 이용하여 전송될 메모리 액세스 요청의 수량을 서로 교환한다.
단계 S2: 적어도 두 개의 메모리 액세스 요청을 수신하면, 스케줄러 0은 경로 1을 통해 제1 메모리 액세스 요청을 전송하고, 또한 스케줄러 1이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있는지 여부를 확인하고; 스케줄러 1이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있지 않은 경우, 동일한 스케줄링 타임슬롯 내에 경로 2를 통해 제2 메모리 액세스 요청을 전송한다.
일반적으로, 스케줄러 0에 의해 수신되는 메모리 액세스 요청의 목적지 어드레스는 메모리 채널 0에 대응되는 메모리 모듈, 즉, 메모리 모듈 0, 메모리 모듈 2, 또는 메모리 모듈 4 내에 위치한다는 점; 스케줄러 1에 의해 수신되는 메모리 액세스 요청의 목적지 어드레스는 메모리 채널 1에 대응되는 메모리 모듈, 즉, 메모리 모듈 1, 메모리 모듈 3, 또는 메모리 모듈 5 내에 위치한다는 점에 유의해야 한다.
단계 S3: 제2 메모리 액세스 요청을 스케줄러 0의 경로 2를 통해 메모리 채널 1에게로 전송하고, 메모리 모듈 1은, 제2 메모리 액세스 요청을 수신하여 전송 링크 152를 통해 제2 메모리 액세스 요청을 메모리 모듈 0에게로 전달하고, 메모리 모듈 0을 이용하여 제2 메모리 액세스 요청을 목적지 메모리 모듈에게로 전달한다.
상술한 단계 S1 내지 S3에서, 스케줄러 0은 스케줄러 0에 의해 수신된 메모리 액세스 요청을 스케줄러 1에 대응되는 메모리 채널(즉, 메모리 채널 1)에게로 오프로드한다(offload). 동일한 방법으로, 본 실시예의 스케줄러 1은 스케줄러 1에 의해 수신된 메모리 액세스 요청을 스케줄러 0에 대응되는 메모리 채널에게로 오프로드하며, 구체적인 설명은 생략한다.
상술한 본 발명의 실시예에 의한 메모리 모듈 액세스 방법에 따르면, 각각의 스케줄러는 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있으며, 복수의 메모리 액세스 요청을 수신할 경우에는 복수의 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 본 발명의 실시예에 의한 방법에 따르면, 복수의 메모리 액세스 요청이 수신될 경우 복수의 수신된 메모리 액세스 요청이 전송을 위해 복수의 메모리 채널에 할당될 수 있으며, 이로써 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
제11 실시예
도 16에는 설명의 예시로서 이중 채널(dual-channel) 메모리 시스템이 이용된다. 본 발명에 의한 메모리 모듈 액세스 방법은 멀티채널 시스템에 적용될 수 있다. 그 다음으로 본 실시예에서는 추가 설명을 위한 예시로서 N-채널 메모리 시스템이 이용된다.
N-채널 메모리 시스템은 N개의 스케줄러, N개의 메모리 채널, 및 N개의 메모리 모듈을 포함하며, N개의 스케줄러는: 스케줄러 0, 스케줄러 1, …, 및 스케줄러 N-1로 마크될 수 있으며; N개의 메모리 채널은: 메모리 채널 0, 메모리 채널 1, …, 및 메모리 채널 N-1로 마크되고; N개의 메모리 모듈은: 메모리 모듈 0, 메모리 모듈 1, …, 및 메모리 모듈 N-1로 마크된다. 이와 같은 스케줄러, 메모리 채널, 및 메모리 모듈은 일대일 대응 관계에 있는데, 예를 들면, 스케줄러 0은 메모리 채널 0에 대응되고, 메모리 채널 0은 메모리 모듈 0에 대응된다.
각각의 스케줄러는 N개의 경로(경로 1, 경로 2, …, 및 경로 N으로 마크될 수 있음)를 가지며, N개의 경로는 각각 N개의 메모리 채널에 연결된다. 통계의 용이성을 위해, 경로와 메모리 채널 간의 연결 관계는 미리 정해진 규칙에 따라 설정될 수 있다. 예를 들어, 경로와 메모리 채널 간의 연결 관계는
스케줄러 n(0≤n≤N-1)의 경로 m(0≤m≤N)이 메모리 채널(n+m)modN에 연결되는 방법에 따라 설정될 수 있으며, 여기서 mod(모드)는 나머지(remainder) 구하기를 지시하는 데에 이용된다.
x개의 메모리 액세스 요청을 수신한 경우, N개의 채널이 모두 유휴 상태이면, 스케줄러 n은 로컬 경로 1, 경로 2, …, 경로(n+x)modN을 이용하여 x개의 메모리 액세스 요청을 성공적으로 전송할 수 있다. x≤N이면, x개의 메모리 액세스 요청이 하나의 스케줄링 타임슬롯 내에 메모리 모듈에게로 전송될 수 있고; N<x≤2N이면, x개의 메모리 액세스 요청은 두 번의 스케줄링 타임슬롯 내에 메모리 모듈에게로 전송될 수 있다. 나머지는 유추하여 추론될 수 있으므로 여기서 다시 설명하지 않는다.
쉽게 이해하기 위해, 그 다음으로는 설명을 위한 예시로서 삼중 채널(three-channel) 메모리 시스템이 이용된다. 도 17에 도시된 바와 같이, 메모리 시스템은 스케줄러 0, 스케줄러 1, 및 스케줄러 2를 포함하고, 스케줄러 0은 메모리 채널 0에 대응되며, 스케줄러 1은 메모리 채널 1에 대응되고, 스케줄러 2는 메모리 채널 2에 대응되고; 메모리 채널 0은 메모리 모듈 0에 연결되며, 메모리 채널 1은 메모리 모듈 1에 연결되고, 메모리 채널 2는 메모리 모듈 2에 연결된다.
구체적으로 도 17에 도시된 바와 같이, 스케줄러 0과 스케줄러 1 사이에 전송 링크 171이 확립되어 있고, 스케줄러 1과 스케줄러 2 사이에 전송 링크 172가 확립되어 있으며, 스케줄러 0과 스케줄러 2 사이에 전송 링크 173이 확립되어 있고, 전송 링크 171 내지 173은 스케줄러 0, 스케줄러 1, 그리고 스케줄러 2 사이의 통신에 이용된다.
스케줄러 0은 경로 1, 경로 2, 및 경로 3을 가지며, 경로 1은 메모리 채널 0에 연결되고, 경로 2는 메모리 채널 1에 연결되며, 경로 3은 메모리 채널 2에 연결되고; 스케줄러 1은 경로 1, 경로 2, 및 경로 3을 가지며, 경로 1은 메모리 채널 1에 연결되고, 경로 2는 메모리 채널 3에 연결되며, 경로 3은 메모리 채널 0에 연결되고; 스케줄러 2는 경로 1, 경로 2, 및 경로 3을 가지며, 경로 1은 메모리 채널 2에 연결되고, 경로 2는 메모리 채널 0에 연결되며, 경로 3은 메모리 채널 1에 연결된다.
메모리 모듈 0과 메모리 모듈 1 사이에 확립되어 있는 통신 링크 174가 메모리 모듈 0과 메모리 모듈 1 간의 통신에 이용되고; 메모리 모듈 1과 메모리 모듈 2 사이에 확립되어 있는 통신 링크 175가 메모리 모듈 1과 메모리 모듈 2 간의 통신에 이용된다.
도 17에 도시된 삼중 채널 메모리 시스템에 따르면, 본 메모리 모듈 액세스 방법은 구체적으로 아래와 같이 실현된다:
스케줄러 n이 복수의 메모리 액세스 요청을 수신하면, 경로 1을 이용하여, 전송되어야 하는 제1 메모리 액세스 요청을 전송한다.
(1) 스케줄러 n이 전송되어야 하는 제2 메모리 액세스 요청을 가지고 있는 경우, 스케줄러 (n+1)mod3이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있는지 여부를 검출하고; 스케줄러 (n+1)mod3이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있지 않은 경우, 전송되어야 하는 제2 메모리 액세스 요청을 경로 2에게로 전송한다.
(2) 스케줄러 (n+1)mod3이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있는 경우, 스케줄러 (n+2)mod3이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있는지 여부를 검출하고; 스케줄러 (n+2)mod3이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있지 않은 경우, 전송되어야 하는 제2 메모리 액세스 요청을 경로 3에게로 전송한다.
(3) 스케줄러 n이 제3 예비 요청을 가지고 있고, 스케줄러 (n+1)mod3이 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있지 않고, 스케줄러 (n+2)mod3 역시 전송되어야 하는 메모리 액세스 요청을 현재 가지고 있지 않은 경우, 스케줄러 n은, 전송되어야 하는 제2 메모리를 경로 2에게로 전송하고, 전송되어야 하는 제3 메모리를 경로 3에게로 전송한다.
상술한 본 발명의 실시예에 의한 메모리 모듈 액세스 방법에 따르면, 각각의 스케줄러는, 다른 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득할 수 있고; 복수의 메모리 액세스 요청을 수신할 경우, 복수의 메모리 채널을 통해 복수의 수신된 메모리 액세스 요청을 전송할 수 있다. 상술한 본 발명의 실시예에 의한 방법에 따르면, 복수의 메모리 액세스 요청이 수신될 경우, 복수의 수신된 메모리 액세스 요청이 전송을 위해 복수의 메모리 채널에 할당될 수 있으며, 이로써 대역폭 리소스의 활용도가 향상되며, 메모리 액세스 대역폭이 향상된다.
통상의 기술자는 전술한 실현 방식의 설명에 기초하여, 본 발명이 필수적인 일반 하드웨어와 소프트웨어에 의해, 또는 하드웨어로만 실현될 수 있다는 것을 명확하게 이해할 것이다. 대부분의 환경에서는 전자가 바람직한 실현 방식이다. 이와 같은 이해를 바탕으로 본 발명의 기술적 해결책은 본질적으로, 또는 종래기술에 기여하는 부분은 소프트웨어 제품의 형태로 실현될 수 있다. 컴퓨터 소프트웨어 제품은, 컴퓨터의 플로피 디스크, 하드 디스크 또는 광 디스크와 같이 판독 가능한 저장 매체에 저장되며, 본 발명의 실시예에서 설명된 방법을 수행하도록 컴퓨터 디바이스(개인용 컴퓨터, 서버, 또는 네트워크 디바이스일 수 있음)에 명령하기 위한 몇몇의 명령을 포함한다.
전술한 내용은 본 발명의 특정한 실현 방식에 불과하며, 본 발명의 보호 범위를 제한하도록 의도되지 않았다. 본 발명에 개시된 기술적 범위 내에서 통상의 기술자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 발명의 보호 범위 내에 속할 것이다. 따라서 본 발명의 보호 범위는 청구범위의 보호범위에 속할 것이다.

Claims (42)

  1. 메모리 모듈 액세스 방법에 있어서,
    상기 메모리 모듈 액세스 방법은 적어도 제1 스케줄러 및 제2 스케줄러를 포함하는 메모리 시스템에 적용되고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있으며,
    상기 메모리 모듈 액세스 방법은,
    상기 제1 스케줄러가, 상기 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하는 단계; 및
    상기 제1 스케줄러가, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하는 단계
    를 포함하는, 메모리 모듈 액세스 방법.
  2. 제1항에 있어서,
    상기 제1 스케줄러가, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하는 단계는,
    상기 제1 스케줄러가, 제1 메모리 액세스 요청 및 제2 액세스 메모리 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계
    를 포함하고,
    상기 제1 메모리 액세스 요청이 상기 제1 스케줄러에 대응되는 상기 제1 메모리 채널을 통해 전송되는 때에, 상기 제2 메모리 액세스 요청은 전송 대기(to-be-sent) 상태이고,
    상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널이 유휴(idle) 상태이면, 상기 제1 스케줄러가 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스를 전송하는,
    메모리 모듈 액세스 방법.
  3. 제2항에 있어서,
    상기 제1 스케줄러가 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하기 전에,
    상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제1 스케줄러가 상기 제2 스케줄러에 전송하는 단계; 및
    상기 제1 스케줄러가, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하는 단계
    를 더 포함하는 메모리 모듈 액세스 방법.
  4. 제3항에 있어서,
    상기 제2 메모리 액세스 요청의 목적지 어드레스(destination address)는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하는,
    메모리 모듈 액세스 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 스케줄러는, 적어도 두 개의 경로를 가지며, 상기 적어도 두 개의 경로를 이용하여 상기 제1 메모리 채널 및 상기 제2 메모리 채널로의 연결을 확립하는,
    메모리 모듈 액세스 방법.
  6. 메모리 모듈 액세스 방법에 있어서,
    상기 메모리 모듈 액세스 방법은 적어도 제1 스케줄러 및 제2 스케줄러를 포함하는 메모리 시스템에 적용되며, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
    상기 메모리 모듈 액세서 방법은,
    상기 제1 스케줄러가, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계; 및
    상기 제1 스케줄러가, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계
    를 포함하는, 메모리 모듈 액세스 방법.
  7. 제6항에 있어서,
    상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 것은,
    상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계를 포함하는,
    메모리 모듈 액세스 방법.
  8. 제7항에 있어서,
    상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하기 전에,
    상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제1 스케줄러가 상기 제2 스케줄러에 전송하는 단계; 및
    상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하는 단계
    를 포함하는 메모리 모듈 액세스 방법.
  9. 제8항에 있어서,
    상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하는,
    메모리 모듈 액세스 방법.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    각각의 스케줄러는 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립하는,
    메모리 모듈 액세스 방법.
  11. 메모리 모듈 액세스 방법에 있어서,
    상기 메모리 액세스 방법은 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하는 메모리 시스템에 적용되고, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
    상기 메모리 모듈 액세서 방법은,
    제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하는 단계 - 상기 제1 메모리 액세스 요청 및 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치함 - ; 및
    상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계
    를 포함하는, 메모리 모듈 액세스 방법.
  12. 제11항에 있어서,
    상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 것은,
    상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하는 단계를 포함하는,
    메모리 모듈 액세스 방법.
  13. 제12항에 있어서,
    상기 메모리 시스템이 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 상기 제1 메모리 채널에 대응되며, 상기 제2 스케줄러는 상기 제2 메모리 채널에 대응되고,
    상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하기 전에,
    상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제1 스케줄러가 상기 제2 스케줄러에 전송하는 단계; 및
    상기 제1 스케줄러가, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하는 단계
    를 더 포함하는 메모리 모듈 액세스 방법.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립하는,
    메모리 모듈 액세스 방법.
  15. 메모리 컨트롤러에 있어서,
    상기 메모리 컨트롤러는 메모리 시스템에 적용되며 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있으며,
    상기 제1 스케줄러는 상기 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하도록 구성되고,
    상기 제1 스케줄러는 또한, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하도록 구성되는,
    메모리 컨트롤러.
  16. 제15항에 있어서,
    상기 제1 스케줄러는, 제1 메모리 액세스 요청 및 제2 액세스 메모리 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되고,
    상기 제1 스케줄러는,
    상기 제2 메모리 요청이 전송 대기 상태인 때에, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널이 유휴 상태이면, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성되는,
    메모리 컨트롤러.
  17. 제16항에 있어서,
    상기 제1 스케줄러는,
    상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 더 구성되고,
    상기 제1 스케줄러는,
    상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성되는,
    메모리 컨트롤러.
  18. 제17항에 있어서,
    상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스가 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하는,
    메모리 컨트롤러.
  19. 제15항 내지 제18항 중 어느 한 항에 있어서,
    상기 제1 스케줄러는, 적어도 두 개의 경로를 가지며, 상기 적어도 두 개의 경로를 이용하여 상기 제1 메모리 채널 및 상기 제2 메모리 채널로의 연결을 확립하는,
    메모리 컨트롤러.
  20. 메모리 컨트롤러에 있어서,
    상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있고,
    상기 제1 스케줄러는,
    제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하고, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있는,
    메모리 컨트롤러.
  21. 제20항에 있어서,
    상기 제1 스케줄러는,
    상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있는,
    메모리 컨트롤러.
  22. 제21항에 있어서,
    상기 제1 스케줄러는,
    상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하고,
    상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 구성되어 있는,
    메모리 컨트롤러.
  23. 제22항에 있어서,
    상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스가 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하는,
    메모리 컨트롤러.
  24. 제20항 내지 제23항 중 어느 한 항에 있어서,
    상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널 사이로의 연결을 확립하는,
    메모리 컨트롤러.
  25. 메모리 컨트롤러에 있어서,
    상기 메모리 컨트롤러는 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
    상기 메모리 컨트롤러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되어 있고, 상기 제1 메모리 액세스 요청 및 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하고,
    상기 메모리 컨트롤러는, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성되어 있는,
    메모리 컨트롤러.
  26. 제25항에 있어서,
    상기 메모리 컨트롤러는 구체적으로,
    상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되는,
    메모리 컨트롤러.
  27. 제26항에 있어서,
    상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 상기 제1 메모리 채널에 대응되며, 상기 제2 스케줄러는 상기 제2 메모리 채널에 대응되고,
    상기 제1 스케줄러는, 상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 구성되고,
    상기 제1 스케줄러는, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성되는,
    메모리 컨트롤러.
  28. 제25항 내지 제27항 중 어느 한 항에 있어서,
    상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립하는,
    메모리 컨트롤러.
  29. 중앙 처리 유닛(CPU, central processing unit)에 있어서,
    상기 CPU는 메모리 시스템에 적용되고 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 시스템은 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러 사이에 상기 전송 링크가 확립되어 있으며,
    상기 제1 스케줄러는, 상기 제2 스케줄러 내의 전송될 메모리 액세스 요청의 수량을 획득하도록 구성되어 있고,
    상기 제1 스케줄러는, 메모리 액세스 요청을 수신하고, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 메모리 액세스 요청을 전송하도록 더 구성되어 있는,
    중앙 처리 유닛.
  30. 제29항에 있어서,
    상기 제1 스케줄러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되며,
    상기 제1 스케줄러는,
    상기 제2 메모리 액세스 요청이 전송 대기 상태인 때에, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널이 유휴 상태이면, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성되는,
    중앙 처리 유닛.
  31. 제30항에 있어서,
    상기 제1 스케줄러는,
    상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 더 구성되고,
    상기 제1 스케줄러는,
    상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성되는,
    중앙 처리 유닛.
  32. 제31항에 있어서,
    상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스가 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하는,
    중앙 처리 유닛.
  33. 제29항 내지 제32항 중 어느 한 항에 있어서,
    상기 제1 스케줄러는, 적어도 두 개의 경로를 가지며, 상기 적어도 두 개의 경로를 이용하여 상기 제1 메모리 채널 및 상기 제2 메모리 채널로의 연결을 확립하는,
    중앙 처리 유닛.
  34. 중앙 처리 유닛에 있어서,
    상기 중앙 처리 유닛은 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하며, 상기 제1 스케줄러는 제1 메모리 채널에 대응되고, 상기 제2 스케줄러는 제2 메모리 채널에 대응되며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 컨트롤러는 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고, 상기 제1 스케줄러와 상기 제2 스케줄러의 사이에 상기 전송 링크가 확립되어 있고,
    상기 제1 스케줄러는,
    제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하고, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있는,
    중앙 처리 유닛.
  35. 제34항에 있어서,
    상기 제1 스케줄러는,
    상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되어 있는,
    중앙 처리 유닛.
  36. 제35항에 있어서,
    상기 제1 스케줄러는,
    상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하고,
    상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 구성되어 있는,
    중앙 처리 유닛.
  37. 제36항에 있어서,
    상기 제1 스케줄러에 의해 수신되는 상기 제2 메모리 액세스 요청의 목적지 어드레스가 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하는,
    중앙 처리 유닛.
  38. 제34항 내지 제37항 중 어느 한 항에 있어서,
    상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널 사이로의 연결을 확립하는,
    중앙 처리 유닛.
  39. 중앙 처리 유닛에 있어서,
    상기 중앙 처리 유닛은, 적어도 제1 메모리 채널 및 제2 메모리 채널을 포함하는 메모리 컨트롤러를 포함하며, 각각의 메모리 채널은 하나의 메모리 모듈에 대응되고, 상기 메모리 컨트롤러는 복수의 메모리 모듈을 포함하며, 상기 복수의 메모리 모듈 사이에 전송 링크가 확립되어 있고,
    상기 메모리 컨트롤러는, 제1 메모리 액세스 요청 및 제2 메모리 액세스 요청을 포함하는 적어도 두 개의 메모리 액세스 요청을 수신하도록 구성되어 있으며, 상기 제1 메모리 액세스 요청 및 상기 제2 메모리 액세스 요청의 목적지 어드레스는 상기 제1 메모리 채널에 대응되는 메모리 모듈 내에 위치하고,
    상기 메모리 컨트롤러는, 상기 제1 메모리 채널을 통해 상기 제1 메모리 액세스 요청을 전송하고, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 더 구성되는,
    중앙 처리 유닛.
  40. 제39항에 있어서,
    상기 메모리 컨트롤러는 구체적으로, 상기 제2 메모리 채널이 유휴 상태인 때에, 상기 제2 메모리 채널을 통해 상기 제2 메모리 액세스 요청을 전송하도록 구성되는,
    중앙 처리 유닛.
  41. 제40항에 있어서,
    상기 메모리 컨트롤러는 적어도 제1 스케줄러 및 제2 스케줄러를 포함하고, 상기 제1 스케줄러는 상기 제1 메모리 채널에 대응되며, 상기 제2 스케줄러는 상기 제2 메모리 채널에 대응되고,
    상기 제1 스케줄러는, 상기 제2 메모리 액세스 요청을 전송하기 위한, 상기 제2 스케줄러에 대응되는 상기 제2 메모리 채널을 점유할 것을 요청하는 메모리 채널 점유 요청을, 상기 제2 스케줄러에게 전송하도록 구성되고,
    상기 제1 스케줄러는, 상기 메모리 채널 점유 요청에 대응하여 상기 제2 스케줄러에 의해 리턴되는 확인 응답을 수신하도록 더 구성되는,
    중앙 처리 유닛.
  42. 제39항 내지 제41항 중 어느 한 항에 있어서,
    상기 메모리 컨트롤러 내의 스케줄러 각각은, 복수의 경로를 가지며, 상기 복수의 경로를 이용하여 모든 메모리 채널로의 연결을 확립하는,
    중앙 처리 유닛.
KR1020167009479A 2013-09-16 2014-09-16 메모리 모듈 액세스 방법 및 장치 KR20160054007A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310422993.7 2013-09-16
CN201310422993.7A CN104461727A (zh) 2013-09-16 2013-09-16 内存模组访问方法及装置
PCT/CN2014/086592 WO2015035955A1 (zh) 2013-09-16 2014-09-16 内存模组访问方法及装置

Publications (1)

Publication Number Publication Date
KR20160054007A true KR20160054007A (ko) 2016-05-13

Family

ID=52665100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167009479A KR20160054007A (ko) 2013-09-16 2014-09-16 메모리 모듈 액세스 방법 및 장치

Country Status (6)

Country Link
US (1) US20160196073A1 (ko)
EP (1) EP3035193A4 (ko)
JP (1) JP2016531372A (ko)
KR (1) KR20160054007A (ko)
CN (1) CN104461727A (ko)
WO (1) WO2015035955A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296236B2 (en) * 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
CN107239407B (zh) * 2016-03-29 2021-01-12 华为技术有限公司 一种内存的无线访问方法和装置
US10193248B2 (en) 2016-08-31 2019-01-29 Crystal Group, Inc. System and method for retaining memory modules
KR20180118329A (ko) 2017-04-21 2018-10-31 에스케이하이닉스 주식회사 메모리 시스템, 데이터 처리 시스템 및 그것의 동작 방법
US10734756B2 (en) 2018-08-10 2020-08-04 Crystal Group Inc. DIMM/expansion card retention method for highly kinematic environments
CN109684085B (zh) * 2018-12-14 2019-11-12 北京中科寒武纪科技有限公司 内存访问方法及相关产品
CN111949213B (zh) * 2020-07-28 2022-08-30 新华三半导体技术有限公司 内存颗粒访问控制芯片、内存颗粒的访问控制***及方法
GB2604153A (en) * 2021-02-26 2022-08-31 Advanced Risc Mach Ltd Data Processors
CN117290081A (zh) * 2022-06-20 2023-12-26 哲库科技(上海)有限公司 通道分路器、存储控制装置、片上***及终端

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006505B1 (en) * 2000-10-23 2006-02-28 Bay Microsystems, Inc. Memory management system and algorithm for network processor architecture
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
US7334070B2 (en) * 2004-10-29 2008-02-19 International Business Machines Corporation Multi-channel memory architecture for daisy chained arrangements of nodes with bridging between memory channels
US7665092B1 (en) * 2004-12-15 2010-02-16 Sun Microsystems, Inc. Method and apparatus for distributed state-based load balancing between task queues
CN101587740B (zh) * 2008-05-23 2011-11-30 承奕科技股份有限公司 多通道固态存储***
US9268720B2 (en) * 2010-08-31 2016-02-23 Qualcomm Incorporated Load balancing scheme in multiple channel DRAM systems
CN103988186A (zh) * 2012-10-12 2014-08-13 华为技术有限公司 内存***、内存模块、内存模块的访问方法以及计算机***

Also Published As

Publication number Publication date
CN104461727A (zh) 2015-03-25
JP2016531372A (ja) 2016-10-06
EP3035193A4 (en) 2016-09-14
US20160196073A1 (en) 2016-07-07
WO2015035955A1 (zh) 2015-03-19
EP3035193A1 (en) 2016-06-22

Similar Documents

Publication Publication Date Title
KR20160054007A (ko) 메모리 모듈 액세스 방법 및 장치
US9503957B2 (en) Low cost mesh network capability
JP5444906B2 (ja) プラント監視システム、プラント監視装置、端末装置
US9014156B2 (en) Traffic forwarding in mesh networks
US20070070904A1 (en) Feedback mechanism for flexible load balancing in a flow-based processor affinity scheme
US20160374114A1 (en) Method and apparatus for indicating channel resource
WO2020125539A1 (zh) 一种节点设备的选择方法及其相关设备
JP2014239521A (ja) チャネルボンディングを用いたネットワーク上のデータ送信
CN102447636A (zh) 一种数据中心通讯设备的负载分担方法和装置
WO2022094771A1 (zh) 网络芯片和网络设备
CN108768667B (zh) 一种用于多核处理器片内核间网络通信的方法
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
Cheng et al. Application-aware SDN routing for big data networking
US20090022101A1 (en) Method and system for transmitting/receiving data in communication system
CN114553760A (zh) 路径权重分配方法以及装置
US20200127936A1 (en) Dynamic scheduling method, apparatus, and system
EP3605967B1 (en) Method and device for transmitting data
JP2015043532A (ja) 通信システムおよび通信制御装置
WO2017101079A1 (zh) 一种基于无线通信模块的云接入方法和***
KR20130066401A (ko) 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터
CN109862134A (zh) 一种ip地址的租约时间配置方法和***
WO2018223304A1 (zh) 一种数据传输的方法和装置
CN114281608A (zh) 一种业务报文的处理方法、装置及存储介质
KR102526770B1 (ko) 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치
EP1976201A1 (en) Shared communication capabilities of mobile stations for high bandwidth communications

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application