KR101952562B1 - 홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법 - Google Patents

홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101952562B1
KR101952562B1 KR1020187037312A KR20187037312A KR101952562B1 KR 101952562 B1 KR101952562 B1 KR 101952562B1 KR 1020187037312 A KR1020187037312 A KR 1020187037312A KR 20187037312 A KR20187037312 A KR 20187037312A KR 101952562 B1 KR101952562 B1 KR 101952562B1
Authority
KR
South Korea
Prior art keywords
dram
bus
memory
channel
rank
Prior art date
Application number
KR1020187037312A
Other languages
English (en)
Other versions
KR20190002725A (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 퀄컴 인코포레이티드
Publication of KR20190002725A publication Critical patent/KR20190002725A/ko
Application granted granted Critical
Publication of KR101952562B1 publication Critical patent/KR101952562B1/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/1678Details of memory controller using bus width
    • 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/0607Interleaved addressing
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/0613Improving I/O performance in relation to throughput
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Error Detection And Correction (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템은 동적 랜덤 액세스 메모리 (DRAM) 시스템 및 시스템 온 칩 (SoC) 을 포함할 수도 있다. SoC 는 제 1 메모리 제어기, 제 2 메모리 제어기, 및 대칭적 메모리 채널 인터리버를 포함한다. 제 1 메모리 제어기는 제 1 메모리 버스를 통해 제 1 DRAM 모듈에 전기적으로 커플링된다. 제 2 메모리 제어기는 제 2 메모리 버스를 통해 제 2 DRAM 모듈 및 제 3 DRAM 모듈에 전기적으로 커플링된다. 대칭적 메모리 채널 인터리버는 제 1 메모리 제어기 및 제 2 메모리 제어기에 DRAM 트래픽을 균일하게 분배하도록 구성된다. 제 1 메모리 제어기는 제 1 메모리 버스를 통해 제 1 DRAM 모듈에 제 1 인터리빙된 채널을 제공한다. 제 2 메모리 제어기는 제 2 메모리 버스 상의 상위 어드레스 비트들을 통해 제 2 DRAM 모듈에 제 2 인터리빙된 채널을 제공한다.

Description

홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법
모바일 폰들과 같은 휴대용 컴퓨팅 디바이스들을 포함한 다수의 컴퓨팅 디바이스들은 시스템 온 칩 ("SoC") 을 포함한다. SoC들은 더블 데이터 레이트 (DDR) 메모리 디바이스들과 같은 메모리 디바이스들로부터 증가하는 전력 성능 및 용량을 요구한다. 이들 요구들은 더 빠른 클록 속도들 및 넓은 버스들 양자 모두를 유도하고, 이들 버스들은, 그 후, 통상적으로, 효율적인 것으로 남아 있기 위하여 다수의 더 협소한 메모리 채널들로 파티셔닝된다. 다수의 메모리 채널들은, 메모리 디바이스들에 걸쳐 메모리 트래픽을 균일하게 분배하고 성능을 최적화하기 위해 함께 어드레스 인터리빙될 수도 있다. 메모리 데이터는, 교번하는 메모리 채널들에 어드레스들을 할당함으로써 균일하게 분배된다. 이러한 기법은, 일반적으로, 대칭적 채널 인터리빙으로서 지칭된다.
채널 인터리빙은, 관리가능한 사이즈의 개별 채널 폭들을 유지하면서 더 높은 총 대역폭을 제공하기 위하여 다수의 메모리 채널들의 대역폭을 결합하기 위한 효율적이고 간단한 방법이다. 2개 채널들 간의 인터리빙은, 2개 채널들 사이에서 인터리빙하거나 "핑퐁"하기 위해 메모리 어드레스의 오직 단일의 비트를 요구하기 때문에, 상대적으로 간단하고 널리 사용된다. 2의 더 높은 거듭제곱 (예를 들어, 4, 8 등) 간의 인터리빙은 또한, 이들 구현들이 오직 메모리 채널들의 수의 매 더블링에 대해서만 메모리 어드레스의 추가 비트를 요구하기 때문에, 상대적으로 간단하다.
홀수의 메모리 채널들을 인터리빙하는 것 (즉, 홀수-웨이 (odd-way) 또는 홀수 계수 인터리빙) 이 가능하지만, 이는 추가된 비용 및 복잡도로 인해 통상 회피된다. 홀수-웨이 인터리빙은, 인터리브 프로세스를 구현하기 위해 더 큰 부분의 메모리 어드레스 비트들이 요구되기 때문에, 현저히 더 복잡하다. 더 큰 수의 메모리 어드레스 비트들을 체크해야 하는 것은 수개의 문제들을 초래한다. 디지털 로직의 복잡도가 증가된다. 어드레스 체킹이 실시간으로 수행되기 때문에, 인터리버의 최대 속도가 또한 감소될 수도 있다. 이러한 방식으로, 기존의 메모리 인터리빙 구현들은 다이 면적, 메모리 대역폭 요건들 및 인터리브 복잡도 사이의 설계 트레이드오프들을 수반한다. 예를 들어, 4개의 메모리 채널들은 2개의 메모리 채널들보다 증가된 레벨의 총 대역폭을 제공하지만 증가된 SoC 다이 면적의 비용을 지불한다. 3개의 메모리 채널들은 SoC 다이에서의 마진 증가로 중간 레벨의 총 대역폭을 제공하지만, 3웨이 인터리빙은 추가 복잡도를 수반한다. 각각의 채널에 대한 어드레스들이 블록 사이즈 (예를 들어, 1024 바이트들) 에 의해 승산된 3 의 인자만큼 분리되기 때문에, 비트 "10" 위의 모든 어드레스 비트들이, 3개의 메모리 채널들 중 어느 채널이 선택될 것인지를 결정하기 위해 사용되어야 한다.
이에 따라, 과도한 복잡도없이 낮은 시스템 비용을 가능케 하는 홀수 계수 인터리빙을 제공하기 위한 개선된 시스템들 및 방법들이 필요하다.
시스템들 및 방법들은 홀수 계수 메모리 채널 인터리빙을 위해 개시된다. 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템의 일 실시형태는 동적 랜덤 액세스 메모리 (DRAM) 시스템 및 시스템 온 칩 (SoC) 을 포함한다. SoC 는 제 1 메모리 제어기, 제 2 메모리 제어기, 및 대칭적 메모리 채널 인터리버를 포함한다. 제 1 메모리 제어기는 제 1 메모리 버스를 통해 제 1 DRAM 모듈에 전기적으로 커플링된다. 제 2 메모리 제어기는 제 2 메모리 버스를 통해 제 2 DRAM 모듈 및 제 3 DRAM 모듈에 전기적으로 커플링된다. 대칭적 메모리 채널 인터리버는 제 1 메모리 제어기 및 제 2 메모리 제어기에 DRAM 트래픽을 균일하게 분배하도록 구성된다. 제 1 메모리 제어기는 제 1 메모리 버스를 통해 제 1 DRAM 모듈에 제 1 인터리빙된 채널을 제공한다. 제 2 메모리 제어기는 제 2 메모리 버스 상의 상위 어드레스 비트들을 통해 제 2 DRAM 모듈에 제 2 인터리빙된 채널을 그리고 제 2 메모리 버스 상의 하위 어드레스 비트들을 통해 제 3 DRAM 모듈에 제 3 인터리빙된 채널을 제공한다.
다른 실시형태는 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법이다. 일 실시형태에 있어서, 동적 랜덤 액세스 메모리 (DRAM) 시스템을 위한 메모리 어드레스 공간은 복수의 블록들로 파티셔닝된다. 블록들은 제 1 인터리브 채널 및 제 2 인터리브 채널에 균일하게 할당된다. 제 1 인터리브 채널을 위한 제 1 DRAM 버스 및 제 2 인터리브 채널을 위한 제 2 DRAM 버스는 제 1 및 제 2 인터리브 채널들을 통해 홀수-웨이 인터리브를 제공하도록 비대칭적으로 구성된다.
도면들에 있어서, 동일한 참조부호들은, 달리 표시되지 않으면 다양한 도면들 전반에 걸쳐 동일한 부분들을 지칭한다. "102A" 또는 "102B" 와 같은 문자 지정들을 갖는 참조부호들에 대해, 그 문자 지정들은 동일한 도면에 존재하는 2개의 동일한 부분들 또는 엘리먼트들을 구별할 수도 있다. 참조부호들에 대한 문자 지정들은, 참조부호가 모든 도면들에 있어서 동일한 참조부호를 갖는 모든 부분들을 포괄하도록 의도될 경우에 생략될 수도 있다.
도 1 은 3웨이 메모리 채널 인터리빙을 제공하기 위한 시스템의 일 실시형태의 블록 다이어그램이다.
도 2 는 도 1 의 시스템에 있어서 2웨이 대칭적 메모리 채널 인터리버의 동작을 예시한 결합된 블록/플로우 다이어그램이다.
도 3 은 홀수-계수 메모리 채널 인터리빙을 제공하기 위해 도 1 의 시스템에서 구현된 방법의 일 실시형태를 예시한 플로우차트이다.
도 4 는 도 1 의 시스템에서 구현된 예시적인 메모리 어드레스 맵의 구조 및 동작을 예시한 데이터/플로우 다이어그램이다.
도 5 는 7웨이 메모리 채널 인터리빙을 제공하기 위한 시스템의 일 실시형태의 블록 다이어그램이다.
도 6 은 홀수-계수 메모리 채널 인터리빙을 제공하기 위해 도 1 의 시스템을 통합한 휴대용 컴퓨팅 디바이스의 일 실시형태의 블록 다이어그램이다.
단어 "예시적인" 은 "예, 예증, 또는 예시로서 기능하는" 을 의미하도록 본 명세서에서 사용된다. "예시적인" 것으로서 본 명세서에서 설명되는 임의의 양태는 다른 양태들에 비해 반드시 선호되거나 유리한 것으로서 해석되지는 않는다.
이 설명에 있어서, 용어 "어플리케이션" 은 또한 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들, 및 패치들과 같은 실행가능 컨텐츠를 갖는 파일들을 포함할 수도 있다. 부가적으로, 본 명세서에서 지칭되는 "어플리케이션" 은 또한, 공개될 필요가 있을 수도 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이 본질적으로 실행가능하지 않은 파일들을 포함할 수도 있다.
용어 "컨텐츠" 는 또한 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들, 및 패치들과 같은 실행가능 컨텐츠를 갖는 파일들을 포함할 수도 있다. 부가적으로, 본 명세서에서 지칭되는 "컨텐츠" 는 또한, 공개될 필요가 있을 수도 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이 본질적으로 실행가능하지 않은 파일들을 포함할 수도 있다.
이 설명에서 사용되는 바와 같이, 용어들 "컴포넌트", "데이터베이스", "모듈", "시스템" 등은 컴퓨터 관련 엔티티, 즉, 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어 중 어느 하나를 지칭하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 구동하는 프로세스, 프로세서, 오브젝트, 실행 가능물 (executable), 실행 스레드 (thread of execution), 프로그램, 및/또는 컴퓨터일 수도 있지만, 이에 한정되지 않는다. 예시로서, 컴퓨팅 디바이스 상에서 구동하는 어플리케이션 및 컴퓨팅 디바이스 양자 모두가 컴포넌트일 수도 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수도 있고, 컴포넌트는 하나의 컴퓨터에 국부화되고/되거나 2 이상의 컴퓨터들 사이에서 분산될 수도 있다. 부가적으로, 이들 컴포넌트들은 다양한 데이터 구조들이 저장된 다양한 컴퓨터 판독가능 매체들로부터 실행할 수도 있다. 컴포넌트들은 로컬 및/또는 원격 프로세스들에 의해, 예컨대, 하나 이상의 데이터 패킷들을 갖는 신호 (예를 들어, 로컬 시스템에서, 분산 시스템에서 및/또는 신호에 의한 다른 시스템들과의 인터넷과 같은 네트워크에 걸쳐 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터) 에 따라, 통신할 수도 있다.
이 설명에 있어서, 용어들 "통신 디바이스", "무선 디바이스", "무선 전화기", "무선 통신 디바이스", 및 "무선 핸드셋" 은 상호대체가능하게 사용된다. 제 3 세대 ("3G") 무선 기술 및 제 4 세대 ("4G") 의 도래로, 더 큰 대역폭 가용성은 더 다양한 무선 능력들을 갖는 더 휴대성의 컴퓨팅 디바이스들을 인에이블시켰다. 따라서, 휴대용 컴퓨팅 디바이스는 셀룰러 전화기, 페이저, PDA, 스마트폰, 네비게이션 디바이스, 또는 무선 커넥션 또는 링크를 갖는 핸드헬드 컴퓨터를 포함할 수도 있다.
도 1 은 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템 (100) 의 일 실시형태를 예시한다. 시스템 (100) 은 개인용 컴퓨터, 워크스테이션, 서버, 또는 휴대용 컴퓨팅 디바이스 (PCD), 예컨대, 셀룰러 전화기, 휴대용 디지털 보조기 (PDA), 휴대용 게임 콘솔, 팜탑 컴퓨터, 태블릿 컴퓨터, 또는 웨어러블 디바이스 또는 임의의 타입의 휴대용 배터리 전력공급식 컴퓨팅 디바이스를 포함하여 임의의 컴퓨팅 디바이스에서 구현될 수도 있다.
도 1 의 실시형태에서 예시된 바와 같이, 시스템 (100) 은 다양한 온-칩 컴포넌트들을 포함하는 시스템 온 칩 (SoC) (102), 및 SoC (102) 에 연결된 다양한 외부 컴포넌트들을 포함한다. SoC (102) 는, SoC 버스 (107) 에 의해 상호연결된, 하나 이상의 프로세싱 유닛들, 대칭적 (즉, 짝수-웨이 (even-way)) 메모리 채널 인터리버 (106), 저장 제어기 (124), 및 온-보드 메모리 (예를 들어, 정적 랜덤 액세스 메모리 (SRAM) (128), 판독 전용 메모리 (ROM) (130) 등) 를 포함한다. 저장 제어기 (124) 는 외부 저장 디바이스 (126) 에 전기적으로 연결되고 통신한다. 당업계에 공지된 바와 같이, 대칭적 메모리 채널 인터리버 (106) 는 CPU (104) (또는 다른 메모리 클라이언트들) 와 연관된 판독/기입 메모리 요청들을 수신하고, 전용 메모리 채널을 통해 개별 외부 메모리 디바이스들에 연결된 2 이상의 메모리 제어기들 사이에서 메모리 데이터를 분배한다.
도 1 의 예시적인 실시형태에 있어서, 시스템 (100) 은 3웨이 메모리 채널 인터리빙을 구현한다. 하지만, 본 명세서에서 설명된 방법들 및 기법들은 임의의 홀수의 메모리 채널들 (예를 들어, 5웨이, 7웨이, 9웨이 등) 로 용이하게 확장될 수도 있음이 인식되어야 한다. 하기에서 더 상세히 설명되는 바와 같이, 시스템 (100) 은 대칭적 2웨이 채널 인터리버 및 특별히 구성된 메모리 어드레스 맵을 통해 3웨이 메모리 채널 인터리빙을 제공한다. 시스템 (100) 은 개별 메모리 제어기들 (108 및 116) 을 갖는 2개의 메모리 디바이스들 (110 및 118) 을 포함한다. 메모리 디바이스 (110) 는, 제 1 메모리 채널 (CH0) 을 제공하기 위해 메모리 버스 (110) 를 통해 메모리 제어기 (108) 에 연결된다. 메모리 디바이스 (118) 는, 제 2 메모리 채널 (CH1) 을 제공하기 위해 메모리 버스 (115) 를 통해 메모리 제어기 (116) 에 연결된다. 메모리 제어기들 (108 및 116) 은 각각 버스 (109) 및 버스 (113) 를 통해 대칭적 메모리 채널 인터리버 (106) 에 연결된다.
임의의 수의 메모리 디바이스들, 메모리 제어기들, 및 메모리 채널들이 메모리 (예를 들어, 더블 데이터 레이트 (DDR) 메모리) 의 임의의 바람직한 타입들, 사이즈들, 및 구성들로 시스템 (100) 에서 사용될 수도 있음이 인식되어야 한다. 도 1 의 실시형태에 있어서, 채널 (CH0) 을 통해 지원되는 메모리 디바이스 (110) 는 2개의 동적 랜덤 액세스 메모리 (DRAM) 모듈들: DRAM (112) 및 DRAM (114) 을 포함한다. 채널 (CH1) 을 통해 지원되는 메모리 디바이스 (118) 는 또한, 2개의 DRAM 모듈들: DRAM (120) 및 DRAM (122) 을 포함한다. DRAM 디바이스는 임의의 타입, 예를 들어, DDR3, DDR4, LPDDR3, LPDDR4, SDRAM, GDDR4, GDDR5, HBM, WideIO2 등일 수 있다.
도 1 의 예시적인 실시형태에 있어서, 시스템 (100) 은 대칭적 2웨이 채널 인터리버 (106) 및 특별히 구성된 메모리 어드레스 맵 (예를 들어, 도 4 에서의 메모리 어드레스 맵 (400)) 을 통해 3웨이 인터리빙을 구현한다. 대칭적 2웨이 채널 인터리버 (106) 는 대칭적 2의 거듭제곱 인터리빙 기법을 사용하여 종래의 방식으로 동작할 수도 있으며, 이는, 각각, 버스 (109) 및 버스 (113) 를 통해 메모리 제어기들 (108 및 116) 사이에서 DRAM 트래픽을 균일하게 분배하기 위해 오직 최소 수의 메모리 어드레스 비트들만을 수반함이 인식되어야 한다. 대칭적 2웨이 채널 인터리버 (106) 에 의해 사용되는 특별히 구성된 메모리 어드레스 맵 (400) 은 2개의 메모리 제어기들 (108 및 116) 로 하여금 2개의 메모리 채널들 (CH0 및 CH1) 을 사용하여 3개의 DRAM 모듈들에 걸쳐 물리적으로 인터리빙하게 할 수 있다. 이와 관련하여, DRAM 모듈들 및 물리적 메모리 제어기들 (108 및 116) 은, 총 대역폭 및 용량이 홀수 계수 메모리 채널 인터리빙의 이점들을 산출하도록 비대칭적으로 구현된다.
도 1 에 예시된 바와 같이, 시스템 (100) 은, 각각, 버스 (111) 및 버스 (115) 상의 2개의 메모리 채널들 (CH0 및 CH1) 을 통해 3개의 DRAM 채널들을 물리적으로 인터리빙할 수도 있다. 제 1 DRAM 채널은 버스 (111) 상의 메모리 채널 (CH0) 을 통해 물리적으로 구현된다. 제 2 및 제 3 DRAM 채널들은 버스 (115) 상의 메모리 채널 (CH1) 을 통해 물리적으로 구현된다. 예를 들어, 일 실시형태에 있어서, SoC 버스 (107) 는 128비트 데이터 버스를 포함할 수도 있다. 2개의 버스들 (109 및 113) 은 별도의 64비트 데이터 버스들을 포함할 수도 있다. 홀수-웨이 인터리브를 구현하기 위해, 메모리 버스 (111) (CH0) 는 16비트 DRAM 버스를 포함할 수도 있고, 메모리 버스 (115) 는 32비트 DRAM 버스를 포함할 수도 있다. 이러한 방식으로, CH0 버스 (111) 의 폭은 CH1 버스 (115) 의 폭의 절반이다. (DRAM 모듈 (112 또는 114) 중 어느 하나에 한번에 액세스하도록 사용되는) 제 1 DRAM 채널은 메모리 버스 (111) 의 모든 16개 비트들에 의해 제공될 수도 있다. (DRAM 모듈 (120) 에 액세스하도록 사용되는) 제 2 DRAM 채널은 메모리 버스 (115) 의 상위 16개 비트들 (참조 부호 (115a) 에 의해 표현됨) 을 통해 제공될 수도 있다. (DRAM 모듈 (122) 에 액세스하도록 사용되는) 제 3 DRAM 채널은 메모리 버스 (115) 의 하위 16개 비트들 (참조 부호 (115b) 에 의해 표현됨) 을 통해 제공될 수도 있다. 도 2 에서 설명될 바와 같이, DRAM 모듈들 (120 및 122) 은 동시에 동작될 수도 있는 한편, DRAM 모듈들 (112 및 114) 은 동시에 동작되지 않을 수도 있다. 이는, DRAM 모듈들 (120 및 122) 이 동일한 메모리 제어기 채널 및 랭크를 공유하고, 따라서 데이터 패킷이 그 채널에 전송될 경우 동시에 선택 및 활성화됨을 의미한다. 한편, DRAM 모듈들 (112 및 114) 은 오직 동일한 메모리 제어기 채널만을 공유할 수도 있지만 상이한 어드레스 랭크들 상에 있고, 따라서 데이터 패킷이 그 존중된 어드레스 랭크에 대한 것일 경우에만 선택 및 활성화된다.
시스템 (100) 에서 구현된 3웨이 인터리빙 방법을 더 예시하기 위해, 대칭적 메모리 채널 인터리버 (106) 에 의해 사용된 특별히 구성된 메모리 어드레스 맵이 더 설명될 것이다. 도 4 는 메모리 어드레스 맵 (400) 의 일 실시형태를 예시한다. 메모리 어드레스 맵 (400) 은 CPU (104) 상에서 실행하는 고레벨 오퍼레이팅 시스템 (HLOS) 을 통해 구성, 제어, 및 관리될 수도 있음이 인식되어야 한다.
도 4 는 상기 설명된 3웨이 인터리빙을 구현하기 위해 대칭적 메모리 채널 인터리버 (106) 에 의해 사용된 예시적인 메모리 어드레스 맵 (400) 을 예시한다. 메모리 어드레스 맵 (400) 은 시스템 (100) 의 일반적인 동작, 아키텍처, 및 기능을 예시하기 위해 설명될 것이다. 메모리 어드레스 맵 (400) 은 도 1 에 예시된 메모리 시스템의 전체 어드레싱가능 공간을 나타내고, 이 메모리 시스템은 (버스 (111) 상의 메모리 채널 (CH0) 을 통해 액세스된) DRAM 모듈들 (112 및 114) 및 (버스 (115) 상의 메모리 채널 (CH1) 을 통해 액세스된) DRAM 모듈들 (120 및 122) 을 포함한다.
메모리 어드레스 맵 (400) 은, 메모리 파티션들 (402, 404, 및 406) 을 포함하는 인터리빙된 어드레스 공간을 정의한다. 각각의 메모리 파티션은, 대응하는 어드레스 범위를 갖는 별도의 할당된 메모리 어드레스 공간을 포함한다. 메모리 파티션 (402) 은, 어드레스 랭크 0 을 점유하는 DRAM 모듈 (112) 에 대응한다. 메모리 파티션 (404) 은, 어드레스 랭크 1 을 점유하는 DRAM 모듈 (114) 에 대응한다. 메모리 파티션들 (402 및 404) 은, 제 1 DRAM 채널을 구현하기 위한 메모리 채널 (CH0) 과 연관된 메모리 어드레스 공간을 형성하기 위해 결합한다. CH0 상에서, DRAM 모듈 (112) 및 DRAM 모듈 (114) 은 동시에 액티브이지 않을 수도 있음을 유의한다. 메모리 파티션 (406) 은, 제 2 및 제 3 DRAM 채널들을 구현하기 위한 메모리 채널 (CH1) 과 연관된 메모리 어드레스 공간을 형성한다. CH1 상에서, DRAM 모듈 (120) 및 DRAM 모듈 (122) 은 항상 함께 액티브일 수도 있음을 유의한다.
화살표 (408) 는 최하위 어드레스 (어드레스 0) 를 나타내고 최하위 1024 바이트 블록 (블록 412) 에 속하며 DRAM 모듈 (112) 내에 있다. 인터리빙된 어드레스 공간에서의 다음 1024 바이트 블록은, 1024 의 시작 어드레스 및 2047 의 종료 어드레스를 갖는 최하위 1024 바이트 블록 (블록 414) 에 할당될 수도 있으며, DRAM 모듈들 (120 및 122) 내에 있다. 인터리빙된 어드레스 공간은, 메모리 채널들 (CH0 및 CH1) 에 걸쳐 "스트립" 되거나 인터리빙될 수도 있는 교번하는 어드레스들의 패턴을 정의한다. 채널들 (CH0 및 CH1) 사이의 점선 화살표들은, 상승적인 어드레스들로의 메모리 액세스들이 메모리 채널들 사이에서 어떻게 "핑퐁"할 것인지를 예시한다. 도 4 에 더 예시된 바와 같이, 블록 (414) 이후 다음 어드레스들의 연속이 블록들 (416, 418, 420, 및 422) 을 뒤따른다. 일 실시형태에 있어서, CH0 및 CH1 양자에서의 모든 블록들은 사이즈가 1024 바이트들일 수도 있다. DRAM 모듈 (112) 의 상위 어드레스는 블록 424 로 표현된다. DRAM 모듈 (114) 의 하위 어드레스는 블록 424 에 의해 표현된다. DRAM 모듈 (114) 의 하위 어드레스는 블록 426 으로 표현된다. DRAM 모듈 (114) 의 마지막 2개 어드레스들은 블록들 428 및 430 에 의해 표현된다. 화살표 (410) 는 인터리빙된 어드레스 공간에서 마지막 어드레스 (어드레스 최상위) 를 나타내고, 이는 DRAM 모듈들 (120 및 122) 과 연관된 최고 1024 바이트 블록 (블록 432) 에 위치될 최고 어드레스에 할당될 수도 있다.
도 4 에 더 예시된 바와 같이, 물리적 메모리 어드레스들의 블록 사이즈들은 고정된 사이즈 (예를 들어, 1024 바이트들) 를 포함할 수도 있다. 이 예에 있어서, DRAM 모듈들 (112, 114, 120, 및 122) 의 각각은 1 GB 의 사이즈를 가져서, 각각 2 GB 밀도를 갖는 메모리 채널들 (CH0 및 CH1) 을 발생시킨다. CH0 버스 (111) 의 폭 (즉, 16 메모리 어드레스 비트들) 이 CH1 버스 (115) 의 폭 (즉, 32 메모리 어드레스 비트들) 의 절반이기 때문에, CH0 의 메모리 대역폭은 CH1 의 메모리 대역폭의 절반이고, 이는 CH0 메모리 대역폭의 3배의 총 메모리 대역폭을 산출한다.
도 2 는 도 1 의 시스템 (100) 에 있어서 대칭적 메모리 채널 인터리버 (106) 의 예시적인 동작을 예시한다. 동작에 있어서, 대칭적 메모리 채널 인터리버 (106) 는 CPU (104) 로부터의 데이터 패킷들 (204) 을 수신한다 (화살표 (202)). 예시적인 실시형태에 있어서, 각각의 데이터 패킷은 데이터의 64 바이트들 (128비트들 × 4 클록 사이클들) 을 포함할 수도 있다. 대칭적 메모리 채널 인터리버 (106) 는, 메모리 제어기들 (108 및 116) 에 데이터 패킷들 (204) 을 균일하게 분배하기 위해 메모리 어드레스 맵 (400) 에 따른 2웨이 인터리빙을 구현한다. 64비트 버스 (109) 를 통해 메모리 제어기 (108) 에 분배된 CH0 데이터 패킷 (206) 은 64 바이트들 (64비트들 × 8 사이클들) 을 포함한다. 메모리 제어기 (108) 는 16비트 CH0 버스 (111) 를 통해 DRAM 모듈 (112 또는 114) 중 어느 하나에 CH0 데이터 패킷 (208) 을 제공한다. DRAM 모듈 (112 또는 114) 중 오직 하나만이 임의의 주어진 시간에 액티브일 수도 있다. CH0 데이터 패킷 (208) 은 데이터의 64 바이트들 (16비트들 × 32 사이클들) 을 포함한다. 64비트 버스 (113) 를 통해 메모리 제어기 (116) 에 분배되는 CH1 데이터 패킷 (210) 은 데이터의 64 바이트들 (64비트들 × 8 사이클들) 을 포함한다. 메모리 제어기 (116) 는 32비트 CH1 버스 (115) 를 통해 DRAM 모듈 (120 및 122) 에 CH1 데이터 패킷 (212) 을 동시에 제공한다. CH1 데이터 패킷 (212) 은 데이터의 64 바이트들 (32비트들 × 16 사이클들) 을 포함한다.
사이클들의 수는 데이터 버스의 폭이 완전한 패킷을 전송하기 위해 토글링되어야 하는 횟수를 지칭함이 인식되어야 한다. 각각의 사이클은 상승 에지 (단일 데이터 레이트), 하강 에지 (단일 데이터 레이트), 또는 상승 및 하강 에지 (더블 데이터 레이트), 또는 멀티-페이즈 (쿼드 데이터 레이트 이상) 와 연관될 수도 있다. 또한, 상이한 위치들에서의 (레이트를 확립하는) 버스 클록 주파수는 동일하거나 상이할 수도 있다. 예를 들어, 도 2 에 있어서, 64비트 버스들 (109 및 113) 에 대한 동작의 주파수는 CH0 (111) 및 CH1 (115) 버스들에 대한 동작의 주파수보다 더 낮을 수도 있다. 예를 들어, 사용된 내부 SoC 데이터 경로가 더 넓어지기 때문에, 사용된 주파수는 감소될 수도 있다. 이 예에 있어서, CH0 (111) 및 CH1 (115) 버스들 양자에 대한 주파수는 정합되고, 정합된 DRAM 모듈들 (112, 114, 120, 및 122) 이 지원 가능한 동작의 주파수와 동일하다. DRAM 모듈들이 정합되지 않고 상이한 주파수들을 지원하는 경우 (예를 들어, 사용자가 상이한 속도 등급들의 DRAM 모듈들을 인스톨할 경우), CH0 (111) 및 CH1 (115) 버스들 양자에 대한 주파수는 양자가, 하위 동작 주파수를 갖는 DRAM 모듈(들)에 의해 지원된 주파수로 설정될 수도 있다.
도 3 은 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템 (100) 에서 구현된 방법 (300) 의 일 실시형태를 예시한다. 블록 302 에서, 시스템 (100) 에서의 전체 물리적 메모리 공간은 동일 사이징된 인터리브 블록들로 파티셔닝된다. 예를 들어, 총 물리적 메모리가 4 기가바이트들이고 인터리브 블록 사이즈가 1024 바이트들 (1 킬로바이트) 이면, N = 4194304 블록들이 존재할 것이다. 블록 304 에서, 모든 블록들이 인터리브 방식들의 수로 균등하게 분할된다. 예를 들어, 2웨이 인터리브에 있어서, 블록들은 모듈러-2 로 채널 0 및 채널 1 에 할당될 것이다. “짝수” 블록들 (예를 들어, 블록들 0,2,4,…[N-2]) 은 채널 0 에 할당되고, "홀수” 블록들 (예를 들어, 블록들 1,3,5,… [N-1]) 은 채널 1 에 할당된다. 다른 예로서, 4웨이 인터리브에 있어서, 블록들은 모듈러-4 로 채널 0, 채널 1, 채널 2 및 채널 3 에 할당될 것이다. 블록들 0, 4, 및 8 은 채널 0 에 할당되고, 블록들 1, 5, 및 9 는 채널 1 에 할당되고, 블록들 2, 6, 및 10 은 채널 2 에 할당되고, 블록들 3, 7, 및 11 은 채널 3 에 할당되는 등등이다. 이러한 방식으로, 시스템 (100) 은 2의 거듭제곱 인터리빙을 구현할 수도 있으며, 이는 상대적으로 간단하고 빠르다. 블록 306 에 예시된 바와 같이, 2의 거듭제곱 인터리빙이 홀수 계수 DRAM 버스에 적용될 수도 있다. 블록 306 에 있어서, 버스 트랜잭션들 (즉, CH0 데이터 패킷들 (208) 및 CH1 데이터 패킷들 (212)) 은 비대칭적으로 구성될 수도 있다. 일 실시형태에 있어서, CH0 에 대한 패킷들은 버스 폭 (W) 및 사이클들의 수 (C) 를 가질 수도 있고, CH1 에 대한 패킷들은 버스 폭의 2배 (2*W) 및 사이클들의 수의 절반 (C/2) 을 가질 수도 있다. 비록 CH0 및 CH1 에 대한 각각의 패킷이 동일 수의 데이터 바이트들을 포함하더라도, CH1 의 대역폭은 CH0 의 대역폭의 2배이다. 따라서, CH0 및 CH1 양자의 결합된 대역폭은 CH0 의 대역폭의 3배이다.
상기 언급된 바와 같이, 시스템 (100) 은 임의의 홀수의 메모리 채널들 (예를 들어, 5웨이, 7웨이, 9웨이 등) 을 지원하도록 적응될 수도 있다. 도 5 는 7웨이 메모리 채널 인터리빙을 제공하기 위한 시스템 (100) 의 구현이다. 도 5 에 예시된 바와 같이, 시스템 (100) 은, 각각, 버스 (111, 115, 512, 및 510) 상의 4개의 메모리 채널들 (CH0, CH1, CH2, 및 CH3) 을 통해 7개의 DRAM 채널들을 물리적으로 인터리빙할 수도 있다. (DRAM 모듈 (112 또는 114) 중 어느 하나에 액세스하도록 사용되는) 제 1 DRAM 채널은 메모리 버스 (111) 의 모든 16개 비트들 상의 메모리 채널 (CH0) 을 통해 물리적으로 구현된다. (DRAM 모듈 (120) 에 액세스하도록 사용되는) 제 2 DRAM 채널은 CH1 메모리 버스 (115) 의 상위 16개 비트들 (참조 부호 (115a) 에 의해 표현됨) 을 통해 제공될 수도 있다. (DRAM 모듈 (122) 에 액세스하도록 사용되는) 제 3 DRAM 채널은 CH1 메모리 버스 (115) 의 하위 16개 비트들 (참조 부호 (115b) 에 의해 표현됨) 을 통해 제공될 수도 있다. (DRAM 모듈 (536) 에 액세스하도록 사용되는) 제 4 DRAM 채널은 CH2 메모리 버스 (512) 의 상위 16개 비트들 (참조 부호 (512a) 에 의해 표현됨) 을 통해 제공될 수도 있다. (DRAM 모듈 (538) 에 액세스하도록 사용되는) 제 5 DRAM 채널은 CH2 메모리 버스 (512) 의 하위 16개 비트들 (참조 부호 (512b) 에 의해 표현됨) 을 통해 제공될 수도 있다. (DRAM 모듈 (532) 에 액세스하도록 사용되는) 제 6 DRAM 채널은 CH3 메모리 버스 (510) 의 상위 16개 비트들 (참조 부호 (510a) 에 의해 표현됨) 을 통해 제공될 수도 있다. (DRAM 모듈 (534) 에 액세스하도록 사용되는) 제 7 DRAM 채널은 CH3 메모리 버스 (510) 의 하위 16개 비트들 (참조 부호 (510b) 에 의해 표현됨) 을 통해 제공될 수도 있다. 버스들 (115a 및 115b) 은 버스 (115) 의 부분으로서 동시에 동작하고, 버스들 (512a 및 512b) 은 버스 (512) 의 부분으로서 동시에 동작하고, 버스들 (510a 및 510b) 은 버스 (510) 의 부분으로서 동시에 동작한다. 이러한 방식으로, CH0 버스 (111) 의 폭은, 각각, CH1, CH2, 및 CH3 메모리 버스들 (115, 512, 및 510) 의 폭의 절반이다.
상기 언급된 바와 같이, 시스템 (100) 은 임의의 바람직한 컴퓨팅 시스템에 통합될 수도 있다. 도 6 은 예시적인 휴대용 컴퓨팅 디바이스 (PCD) (600) 에 통합된 시스템 (100) 을 예시한다. 시스템 (100) 은, 멀티코어 CPU (602) 를 포함할 수도 있는 SoC (601) 상에 포함될 수도 있다. 멀티코어 CPU (602) 는 제 0 코어 (610), 제 1 코어 (612), 및 제 N 코어 (614) 를 포함할 수도 있다. 코어들 중 하나는, 예를 들어, 그래픽스 프로세싱 유닛 (GPU) 을 포함할 수도 있고, 다른 것들 중 하나 이상은 CPU (104) (도 1) 를 포함할 수도 있다. 대안의 예시적인 실시형태들에 따르면, CPU (602) 는 또한, 단일 코어 타입들의 것들을 포함하고 다중 코어들을 갖는 것은 포함하지 않을 수도 있으며, 이 경우, CPU (602) 및 GPU 는 시스템 (100) 에 예시된 바와 같이 전용 프로세서들일 수도 있다.
디스플레이 제어기 (628) 및 터치 스크린 제어기 (630) 가 CPU (602) 에 커플링될 수도 있다. 차례로, 온-칩 시스템 (601) 외부의 터치 스크린 디스플레이 (625) 는 디스플레이 제어기 (616) 및 터치 스크린 제어기 (618) 에 커플링될 수도 있다.
도 6 은 추가로, 비디오 인코더 (620), 예를 들어, PAL (phase-alternating line) 인코더, SECAM (sequential color a memoire) 인코더, 또는 NTSC (national television system(s) committee) 인코더가 멀티코어 CPU (602) 에 커플링됨을 나타낸다. 추가로, 비디오 증폭기 (622) 가 비디오 인코더 (620) 및 터치 스크린 디스플레이 (625) 에 커플링된다. 또한, 비디오 포트 (624) 가 비디오 증폭기 (622) 에 커플링된다. 도 6 에 도시된 바와 같이, 범용 직렬 버스 (USB) 제어기 (626) 가 멀티코어 CPU (602) 에 커플링된다. 또한, USB 포트 (628) 가 USB 제어기 (626) 에 커플링된다. 외부 메모리 시스템 및 가입자 아이덴티티 모듈 (SIM) 카드가 또한 멀티코어 (602) 에 커플링될 수도 있다. 외부 메모리 시스템은, 상기 설명된 바와 같은 DRAM 모듈들 (112, 114, 120, 및 122) (도 1) 을 포함할 수도 있다. 시스템 (100) (도 1) 의 하나 이상의 양태들이 602 (예를 들어, 대칭적 메모리 채널 인터리버 (106)) 에 커플링될 수도 있다.
추가로, 도 6 에 도시된 바와 같이, 디지털 카메라 (630) 가 멀티코어 CPU (602) 에 커플링될 수도 있다. 예시적인 양태에 있어서, 디지털 카메라 (630) 는 전하 커플링형 디바이스 (CCD) 카메라 또는 상보적 금속 산화물 반도체 (CMOS) 카메라이다.
도 6 에 추가로 예시된 바와 같이, 스테레오 오디오 코더-디코더 (코덱) (632) 이 멀티코어 CPU (602) 에 커플링될 수도 있다. 더욱이, 오디오 증폭기 (634) 가 스테레오 오디오 코덱 (632) 에 커플링될 수도 있다. 예시적인 양태에 있어서, 제 1 스테레오 스피커 (636) 및 제 2 스테레오 스피커 (638) 가 오디오 증폭기 (634) 에 커플링된다. 도 6 은, 마이크로폰 증폭기 (640) 가 또한 스테레오 오디오 코덱 (632) 에 커플링될 수도 있음을 나타낸다. 부가적으로, 마이크로폰 (642) 이 마이크로폰 증폭기 (640) 에 커플링될 수도 있다. 특정 양태에 있어서, 주파수 변조 (FM) 라디오 튜너 (644) 가 스테레오 오디오 코덱 (632) 에 커플링될 수도 있다. 또한, FM 안테나 (646) 가 FM 라디오 튜너 (644) 에 커플링된다. 추가로, 스테레오 헤드폰들 (648) 이 스테레오 오디오 코덱 (632) 에 커플링될 수도 있다.
도 6 은 추가로, 무선 주파수 (RF) 트랜시버 (650) 가 멀티코어 CPU (602) 에 커플링될 수도 있음을 예시한다. RF 스위치 (652) 가 RF 트랜시버 (650) 및 RF 안테나 (654) 에 커플링될 수도 있다. 도 6 에 도시된 바와 같이, 키패드 (656) 가 멀티코어 CPU (602) 에 커플링될 수도 있다. 또한, 마이크로폰을 갖는 모노 헤드셋 (658) 이 멀티코어 CPU (602) 에 커플링될 수도 있다. 추가로, 바이브레이터 디바이스 (680) 가 멀티코어 CPU (602) 에 커플링될 수도 있다.
도 6 은 또한, 전력 공급부 (662) 가 온-칩 시스템 (601) 에 커플링될 수도 있음을 나타낸다. 특정 양태에 있어서, 전력 공급부 (662) 는, 전력을 요구하는 PCD (600) 의 다양한 컴포넌트들에 전력을 제공하는 직류 (DC) 전력 공급부이다. 추가로, 특정 양태에 있어서, 전력 공급부는, AC 전력 소스에 접속되는 교류 (AC)-DC 트랜스포머로부터 도출되는 DC 전력 공급부 또는 재충전가능 DC 배터리이다.
도 6 은 추가로, PCD (600) 가 또한 데이터 네트워크, 예를 들어, 로컬 영역 네트워크, 개인 영역 네트워크, 또는 임의의 다른 네트워크에 액세스하는데 이용될 수도 있는 네트워크 카드 (664) 를 포함할 수도 있음을 나타낸다. 네트워크 카드 (664) 는 블루투스 네트워크 카드, WiFi 네트워크 카드, 개인 영역 네트워크 (PAN) 카드, 개인 영역 네트워크 초저 전력 기술 (PeANUT) 네트워크 카드, 텔레비전/케이블/위성 튜너, 또는 당업계에 널리 공지된 임의의 다른 네트워크 카드일 수도 있다. 추가로, 네트워크 카드 (664) 는 칩에 통합될 수도 있고, 즉, 네트워크 카드 (664) 는 칩에서의 풀 (full) 솔루션일 수도 있으며, 별도의 네트워크 카드 (664) 가 아닐 수도 있다.
본 명세서에서 설명된 방법 단계들 중 하나 이상은, 상기 설명된 모듈들과 같이 컴퓨터 프로그램 명령들로서 메모리에 저장될 수도 있음이 인식되어야 한다. 이들 명령들은, 본 명세서에 설명된 방법들을 수행하기 위해 대응하는 모듈과 결합하여 또는 협력하여 임의의 적합한 프로세서에 의해 실행될 수도 있다.
본 명세서에서 설명된 프로세스들 또는 프로세스 플로우들에서의 특정 단계들은 자연스럽게, 본 발명이 설명된 바와 같이 기능하도록 다른 것들보다 선행한다. 하지만, 본 발명은, 그러한 순서 또는 시퀀스가 본 발명의 기능을 변경하지 않는다면, 설명된 단계들의 순서로 한정되지 않는다. 즉, 일부 단계들은 본 발명의 범위 및 사상으로부터 일탈함없이 다른 단계들 이전에, 그 이후에 또는 그와 병렬로 (실질적으로 동시에) 수행될 수도 있음이 인식된다. 일부 예들에 있어서, 특정 단계들은 본 발명으로부터 일탈함없이 생략되거나 또는 수행되지 않을 수도 있다. 추가로, "그 이후", "그 후", "다음으로" 등과 같은 단어들이 단계들의 순서를 한정하도록 의도되지 않는다. 이들 단어들은 단순히, 예시적인 방법의 설명을 통해 독자를 가이드하기 위해 사용된다.
부가적으로, 프로그래밍에 있어서의 당업자는, 예를 들어, 본 명세서에 있어서의 플로우 차트들 및 관련 설명에 기초하여 어려움없이, 개시된 발명을 구현하기 위해 컴퓨터 코드를 기입하거나 적절한 하드웨어 및/또는 회로들을 식별할 수 있다.
따라서, 프로그램 코드 명령들 또는 상세한 하드웨어 디바이스들의 특정 세트의 개시는 본 발명을 제조 및 이용하는 방법의 적절한 이해를 위해 필요한 것으로 고려되지 않는다. 청구된 컴퓨터 구현 프로세스들의 본 발명의 기능은, 다양한 프로세스 플로우들을 예시할 수도 있는 도면들과 함께 상기 설명에서 더 상세히 설명된다.
하나 이상의 예시적인 양태들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 전송될 수도 있다. 컴퓨터 판독가능 매체들은, 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들 및 컴퓨터 저장 매체들 양자 모두를 포함한다. 저장 매체들은, 컴퓨터에 의해 액세스될 수도 있는 임의의 가용 매체들일 수도 있다. 한정이 아닌 예로서, 그러한 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, NAND 플래시, NOR 플래시, M-RAM, P-RAM, R-RAM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 수록 또는 저장하는데 이용될 수도 있고 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다.
또한, 임의의 커넥션이 컴퓨터 판독가능 매체로 적절히 명명된다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 라인 ("DSL"), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다.
본 명세서에서 사용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 ("CD"), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 ("DVD"), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 통상적으로 데이터를 자기적으로 재생하지만 디스크 (disc) 는 레이저를 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
본 발명이 그 사상 및 범위로부터 일탈함없이 관련되는 대안적인 실시형태들이 당업자에게 명백하게 될 것이다. 따라서, 비록 선택된 양태들이 상세히 예시 및 설명되었더라도, 다양한 치환들 및 변경들이 다음의 청구항들에 의해 정의되는 바와 같은 본 발명의 사상 및 범위로부터 일탈함없이 그 안에서 행해질 수도 있음이 이해될 것이다.

Claims (30)

  1. 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템으로서,
    동적 랜덤 액세스 메모리 (DRAM) 시스템; 및
    시스템 온 칩 (SoC) 을 포함하고,
    상기 SoC 는,
    제 1 메모리 버스를 통해 제 1 DRAM 모듈에 전기적으로 커플링된 제 1 메모리 제어기로서, 상기 제 1 DRAM 모듈은 제 1 랭크 및 제 2 랭크를 포함하는, 상기 제 1 메모리 제어기;
    제 2 메모리 버스를 통해 제 2 DRAM 모듈에 전기적으로 커플링된 제 2 메모리 제어기로서, 상기 제 2 DRAM 모듈은 제 3 랭크 및 제 4 랭크를 포함하는, 상기 제 2 메모리 제어기; 및
    상기 제 1 메모리 제어기 및 상기 제 2 메모리 제어기에 DRAM 트래픽을 균일하게 분배하도록 구성된 대칭적 메모리 채널 인터리버로서, 상기 제 1 메모리 제어기 및 상기 제 2 메모리 제어기는 홀수-웨이 인터리빙을 제공하도록 구성되고, 상기 제 1 메모리 제어기는 상기 제 1 메모리 버스를 통해 상기 제 1 DRAM 모듈의 상기 제 1 랭크 또는 상기 제 2 랭크에 액세스함으로써 제 1 인터리빙된 채널을 제공하도록 구성되고, 상기 제 2 메모리 제어기는 상기 제 2 메모리 버스 상의 상위 어드레스 비트들을 통해 상기 제 3 랭크에 액세스함으로써 상기 제 2 DRAM 모듈에 제 2 인터리빙된 채널을 그리고 상기 제 2 메모리 버스 상의 하위 어드레스 비트들을 통해 상기 제 4 랭크에 동시에 액세스함으로써 상기 제 2 DRAM 모듈에 제 3 인터리빙된 채널을 제공하도록 구성되는, 상기 대칭적 메모리 채널 인터리버를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  2. 제 1 항에 있어서,
    상기 대칭적 메모리 채널 인터리버는 2웨이 인터리버를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  3. 제 1 항에 있어서,
    상기 대칭적 메모리 채널 인터리버는 메모리 어드레스 맵에 기초하여 상기 제 1 메모리 제어기 및 상기 제 2 메모리 제어기에 상기 DRAM 트래픽을 균일하게 분배하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  4. 제 3 항에 있어서,
    상기 메모리 어드레스 맵은 상기 제 1 메모리 버스와 연관된 제 1 메모리 채널 및 상기 제 2 메모리 버스와 연관된 제 2 메모리 채널을 위한 인터리빙된 어드레스 공간을 포함하고, 상기 제 1 메모리 채널은 N개 비트들의 폭을 갖고 N 은 정수이며, 상기 제 2 메모리 채널은 2N개 비트들의 폭을 갖는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  5. 제 1 항에 있어서,
    휴대용 컴퓨팅 디바이스 상에 통합되는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  6. 제 1 항에 있어서,
    휴대용 컴퓨팅 디바이스는 스마트 폰, 태블릿 컴퓨터, 및 웨어러블 디바이스 중 하나를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  7. 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법으로서,
    동적 랜덤 액세스 메모리 (DRAM) 시스템을 위한 메모리 어드레스 공간을 복수의 블록들로 파티셔닝하는 단계;
    제 1 DRAM 랭크 및 제 2 DRAM 랭크와 통신하는 제 1 인터리브 채널 그리고 제 3 DRAM 랭크 및 제 4 DRAM 랭크와 통신하는 제 2 인터리브 채널에 상기 블록들을 균일하게 할당하는 단계; 및
    상기 제 1 인터리브 채널을 위한 제 1 DRAM 버스 및 상기 제 2 인터리브 채널을 위한 제 2 DRAM 버스를, 상기 제 1 인터리브 채널이 상기 제 1 DRAM 버스를 사용하여 상기 제 1 DRAM 랭크 또는 상기 제 2 DRAM 랭크에 액세스함으로써 그리고 상기 제 2 인터리브 채널이 상기 제 2 DRAM 버스 상의 상위 어드레스 비트들을 사용하여 상기 제 3 DRAM 랭크에 액세스하고 상기 제 2 DRAM 버스 상의 하위 어드레스 비트들을 사용하여 상기 제 4 DRAM 랭크에 동시에 액세스함으로써, 상기 제 1 인터리브 채널 및 상기 제 2 인터리브 채널을 통해 홀수-웨이 인터리브를 제공하도록 비대칭적으로 구성하는 단계를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  8. 제 7 항에 있어서,
    상기 제 1 DRAM 버스는 제 1 버스 폭을 갖고, 상기 제 2 DRAM 버스는 제 2 버스 폭을 가지며, 상기 제 2 버스 폭은 상기 제 1 버스 폭의 2배만큼 넓은, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 제 1 DRAM 버스는 사이클들의 제 1 수를 갖고, 상기 제 2 DRAM 버스는 사이클들의 제 2 수를 가지며, 상기 사이클들의 제 2 수는 상기 사이클들의 제 1 수의 절반인, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  10. 제 7 항에 있어서,
    상기 제 1 DRAM 버스 및 상기 제 2 DRAM 버스를 비대칭적으로 구성하는 단계는,
    상기 제 1 인터리브 채널 및 상기 제 2 인터리브 채널을 통해 상기 홀수-웨이 인터리브를 제공하도록 제 1 메모리 제어기 및 제 2 메모리 제어기를 구성하는 단계를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  11. 제 10 항에 있어서,
    상기 제 1 메모리 제어기는 상기 제 1 DRAM 버스를 통해 상기 DRAM 시스템에 전기적으로 커플링되고, 상기 제 2 메모리 제어기는 상기 제 2 DRAM 버스를 통해 상기 DRAM 시스템에 전기적으로 커플링되는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  12. 제 11 항에 있어서,
    상기 제 1 DRAM 버스는 제 1 버스 폭 및 사이클들의 제 1 수를 갖고, 상기 제 2 DRAM 버스는 제 2 버스 폭 및 사이클들의 제 2 수를 가지며, 상기 제 2 버스 폭은 상기 제 1 버스 폭의 2배만큼 넓고 상기 사이클들의 제 2 수는 상기 사이클들의 제 1 수의 절반인, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  13. 제 7 항에 있어서,
    상기 메모리 어드레스 공간은 동일 사이징된 인터리브 블록들로 파티셔닝되는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  14. 제 7 항에 있어서,
    휴대용 컴퓨팅 디바이스 상의 하나 이상의 프로세싱 디바이스들에 의해 실행되는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  15. 제 14 항에 있어서,
    상기 휴대용 컴퓨팅 디바이스는 스마트 폰, 태블릿 컴퓨터, 및 웨어러블 디바이스 중 하나를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 방법.
  16. 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템으로서,
    동적 랜덤 액세스 메모리 (DRAM) 시스템을 위한 메모리 어드레스 공간을 복수의 블록들로 파티셔닝하는 수단;
    제 1 DRAM 랭크 및 제 2 DRAM 랭크와 통신하는 제 1 인터리브 채널 그리고 제 3 DRAM 랭크 및 제 4 DRAM 랭크와 통신하는 제 2 인터리브 채널에 상기 블록들을 균일하게 할당하는 수단; 및
    상기 제 1 인터리브 채널을 위한 제 1 DRAM 버스 및 상기 제 2 인터리브 채널을 위한 제 2 DRAM 버스를, 상기 제 1 인터리브 채널 및 상기 제 2 인터리브 채널을 통해 홀수-웨이 인터리브를 제공하도록 비대칭적으로 구성하는 수단으로서, 상기 제 1 인터리브 채널은 상기 제 1 DRAM 버스를 사용하여 상기 제 1 DRAM 랭크 또는 상기 제 2 DRAM 랭크에 액세스하도록 구성되고 그리고 상기 제 2 인터리브 채널은 상기 제 2 DRAM 버스 상의 상위 어드레스 비트들을 사용하여 상기 제 3 DRAM 랭크에 액세스하고 상기 제 2 DRAM 버스 상의 하위 어드레스 비트들을 사용하여 상기 제 4 DRAM 랭크에 동시에 액세스하도록 구성되는, 상기 제 1 DRAM 버스 및 상기 제 2 DRAM 버스를 비대칭적으로 구성하는 수단을 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  17. 제 16 항에 있어서,
    상기 제 1 DRAM 버스는 제 1 버스 폭을 갖고, 상기 제 2 DRAM 버스는 제 2 버스 폭을 가지며, 상기 제 2 버스 폭은 상기 제 1 버스 폭의 2배만큼 넓은, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  18. 제 17 항에 있어서,
    상기 제 1 DRAM 버스는 사이클들의 제 1 수를 갖고, 상기 제 2 DRAM 버스는 사이클들의 제 2 수를 가지며, 상기 사이클들의 제 2 수는 상기 사이클들의 제 1 수의 절반인, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  19. 제 16 항에 있어서,
    상기 제 1 DRAM 버스 및 상기 제 2 DRAM 버스를 비대칭적으로 구성하는 수단은,
    상기 제 1 DRAM 버스를 통해 상기 DRAM 시스템에 전기적으로 커플링된 제 1 메모리 제어기; 및
    상기 제 2 DRAM 버스를 통해 상기 DRAM 시스템에 전기적으로 커플링된 제 2 메모리 제어기를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  20. 제 16 항에 있어서,
    상기 제 1 DRAM 버스는 제 1 버스 폭 및 사이클들의 제 1 수를 갖고, 상기 제 2 DRAM 버스는 제 2 버스 폭 및 사이클들의 제 2 수를 가지며, 상기 제 2 버스 폭은 상기 제 1 버스 폭의 2배만큼 넓고 상기 사이클들의 제 2 수는 상기 사이클들의 제 1 수의 절반인, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  21. 제 16 항에 있어서,
    상기 메모리 어드레스 공간은 동일 사이징된 인터리브 블록들로 파티셔닝되는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  22. 제 16 항에 있어서,
    휴대용 컴퓨팅 디바이스에 통합되는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  23. 제 22 항에 있어서,
    상기 휴대용 컴퓨팅 디바이스는 스마트 폰, 태블릿 컴퓨터, 및 웨어러블 디바이스 중 하나를 포함하는, 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 시스템.
  24. 컴퓨터 판독가능 형태로 명령들이 저장된 비일시적인 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 프로세싱 디바이스에 의해 실행될 경우,
    동적 랜덤 액세스 메모리 (DRAM) 시스템을 위한 메모리 어드레스 공간을 복수의 블록들로 파티셔닝하고;
    제 1 DRAM 랭크 및 제 2 DRAM 랭크와 통신하는 제 1 인터리브 채널 그리고 제 3 DRAM 랭크 및 제 4 DRAM 랭크와 통신하는 제 2 인터리브 채널에 상기 블록들을 균일하게 할당하고; 그리고
    상기 제 1 인터리브 채널을 위한 제 1 DRAM 버스 및 상기 제 2 인터리브 채널을 위한 제 2 DRAM 버스를, 상기 제 1 인터리브 채널이 상기 제 1 DRAM 버스를 사용하여 상기 제 1 DRAM 랭크 또는 상기 제 2 DRAM 랭크에 액세스함으로써 그리고 상기 제 2 인터리브 채널이 상기 제 2 DRAM 버스 상의 상위 어드레스 비트들을 사용하여 상기 제 3 DRAM 랭크에 액세스하고 상기 제 2 DRAM 버스 상의 하위 어드레스 비트들을 사용하여 상기 제 4 DRAM 랭크에 동시에 액세스함으로써, 상기 제 1 인터리브 채널 및 상기 제 2 인터리브 채널을 통해 홀수-웨이 인터리브를 제공하도록 비대칭적으로 구성하도록
    상기 DRAM 시스템을 구성함으로써 홀수 계수 메모리 채널 인터리빙을 제공하기 위한 상기 DRAM 시스템을 구성하는, 비일시적인 컴퓨터 판독가능 저장 매체.
  25. 제 24 항에 있어서,
    상기 제 1 DRAM 버스는 제 1 버스 폭을 갖고, 상기 제 2 DRAM 버스는 제 2 버스 폭을 가지며, 상기 제 2 버스 폭은 상기 제 1 버스 폭의 2배만큼 넓은, 비일시적인 컴퓨터 판독가능 저장 매체.
  26. 제 25 항에 있어서,
    상기 제 1 DRAM 버스는 사이클들의 제 1 수를 갖고, 상기 제 2 DRAM 버스는 사이클들의 제 2 수를 가지며, 상기 사이클들의 제 2 수는 상기 사이클들의 제 1 수의 절반인, 비일시적인 컴퓨터 판독가능 저장 매체.
  27. 제 24 항에 있어서,
    제 1 메모리 제어기는 상기 제 1 DRAM 버스를 통해 상기 DRAM 시스템에 전기적으로 커플링되고, 제 2 메모리 제어기는 상기 제 2 DRAM 버스를 통해 상기 DRAM 시스템에 전기적으로 커플링되는, 비일시적인 컴퓨터 판독가능 저장 매체.
  28. 제 27 항에 있어서,
    상기 제 1 DRAM 버스는 제 1 버스 폭 및 사이클들의 제 1 수를 갖고, 상기 제 2 DRAM 버스는 제 2 버스 폭 및 사이클들의 제 2 수를 가지며, 상기 제 2 버스 폭은 상기 제 1 버스 폭의 2배만큼 넓고 상기 사이클들의 제 2 수는 상기 사이클들의 제 1 수의 절반인, 비일시적인 컴퓨터 판독가능 저장 매체.
  29. 제 24 항에 있어서,
    휴대용 컴퓨팅 디바이스 상에 통합되는, 비일시적인 컴퓨터 판독가능 저장 매체.
  30. 제 29 항에 있어서,
    상기 휴대용 컴퓨팅 디바이스는 스마트 폰, 태블릿 컴퓨터, 및 웨어러블 디바이스 중 하나를 포함하는, 비일시적인 컴퓨터 판독가능 저장 매체.
KR1020187037312A 2016-06-27 2017-05-25 홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법 KR101952562B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/193,423 US10140223B2 (en) 2016-06-27 2016-06-27 System and method for odd modulus memory channel interleaving
US15/193,423 2016-06-27
PCT/US2017/034587 WO2018004902A1 (en) 2016-06-27 2017-05-25 System and method for odd modulus memory channel interleaving

Publications (2)

Publication Number Publication Date
KR20190002725A KR20190002725A (ko) 2019-01-08
KR101952562B1 true KR101952562B1 (ko) 2019-02-26

Family

ID=59054217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187037312A KR101952562B1 (ko) 2016-06-27 2017-05-25 홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US10140223B2 (ko)
EP (1) EP3475831B1 (ko)
JP (1) JP6553828B1 (ko)
KR (1) KR101952562B1 (ko)
CN (1) CN109313609B (ko)
BR (1) BR112018076522A8 (ko)
WO (1) WO2018004902A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10388362B1 (en) * 2018-05-08 2019-08-20 Micron Technology, Inc. Half-width, double pumped data path
CN112513824B (zh) * 2018-07-31 2024-04-09 华为技术有限公司 一种内存交织方法及装置
CN113490926B (zh) * 2019-02-28 2024-06-18 拉姆伯斯公司 四通道dram
CN112148653A (zh) * 2019-06-26 2020-12-29 北京百度网讯科技有限公司 数据传输装置、数据处理***、数据处理方法和介质
GB201914353D0 (en) * 2019-10-04 2019-11-20 Myrtle Software Ltd Hardware Acceleration
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US11429523B2 (en) * 2020-05-15 2022-08-30 Microsoft Technology Licensing, Llc Two-way interleaving in a three-rank environment
CN111641417B (zh) * 2020-06-09 2023-03-31 电子科技大学 一种基于fpga的完成矩阵列置换交织的装置
US11720491B2 (en) * 2021-12-17 2023-08-08 Next Silicon Ltd System and method for sharing a cache line between non-contiguous memory areas
CN115309669A (zh) * 2022-06-09 2022-11-08 芯动微电子科技(珠海)有限公司 一种多粒度组合的存储器数据交织方法和交织模块
CN118074853A (zh) * 2022-11-11 2024-05-24 深圳市中兴微电子技术有限公司 交织数据的处理方法、装置、存储介质及电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430764A (en) 1993-09-01 1995-07-04 Grand Valley State University Direct digital frequency synthesizer
US6807603B2 (en) 2002-02-22 2004-10-19 Hewlett-Packard Development Company, L.P. System and method for input/output module virtualization and memory interleaving using cell map
US20130332775A1 (en) 2011-02-22 2013-12-12 Nec Corporation Fault tree analysis system, fault tree analysis method and programme
US20150046732A1 (en) 2013-08-08 2015-02-12 Qualcomm Incorporated System and method for memory channel interleaving with selective power or performance optimization

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE410830T1 (de) * 2004-03-10 2008-10-15 Ericsson Telefon Ab L M Addressgenerator für einen verschachtelungsspeicher und einen entschachtelungsspeicher
US20070022261A1 (en) * 2005-07-19 2007-01-25 Gateway Inc. Method of interleaving asymmetric memory arrays
US8819359B2 (en) 2009-06-29 2014-08-26 Oracle America, Inc. Hybrid interleaving in memory modules by interleaving physical addresses for a page across ranks in a memory module
US8098539B2 (en) * 2009-08-26 2012-01-17 Qualcomm Incorporated Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation
US8380940B2 (en) 2010-06-25 2013-02-19 Qualcomm Incorporated Multi-channel multi-port memory
KR20140130694A (ko) * 2012-03-05 2014-11-11 쌩-고벵 글래스 프랑스 열 복사선을 반사하는 코팅을 갖는 시트
WO2013187862A1 (en) 2012-06-11 2013-12-19 Intel Corporation A FAST MECHANISM FOR ACCESSING 2n±1 INTERLEAVED MEMORY SYSTEM
US9110795B2 (en) 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
US9495291B2 (en) 2013-09-27 2016-11-15 Qualcomm Incorporated Configurable spreading function for memory interleaving
US9465735B2 (en) * 2013-10-03 2016-10-11 Qualcomm Incorporated System and method for uniform interleaving of data across a multiple-channel memory architecture with asymmetric storage capacity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430764A (en) 1993-09-01 1995-07-04 Grand Valley State University Direct digital frequency synthesizer
US6807603B2 (en) 2002-02-22 2004-10-19 Hewlett-Packard Development Company, L.P. System and method for input/output module virtualization and memory interleaving using cell map
US20130332775A1 (en) 2011-02-22 2013-12-12 Nec Corporation Fault tree analysis system, fault tree analysis method and programme
US20150046732A1 (en) 2013-08-08 2015-02-12 Qualcomm Incorporated System and method for memory channel interleaving with selective power or performance optimization

Also Published As

Publication number Publication date
EP3475831A1 (en) 2019-05-01
CN109313609A (zh) 2019-02-05
US10140223B2 (en) 2018-11-27
JP2019523945A (ja) 2019-08-29
US20170371812A1 (en) 2017-12-28
BR112018076522A8 (pt) 2023-01-31
KR20190002725A (ko) 2019-01-08
CN109313609B (zh) 2023-06-30
BR112018076522A2 (pt) 2019-04-02
WO2018004902A1 (en) 2018-01-04
EP3475831B1 (en) 2019-12-04
JP6553828B1 (ja) 2019-07-31

Similar Documents

Publication Publication Date Title
KR101952562B1 (ko) 홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법
EP3030949B1 (en) System and method for memory channel interleaving with selective power or performance optimization
US10067865B2 (en) System and method for allocating memory to dissimilar memory devices using quality of service
US9110795B2 (en) System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
KR101914350B1 (ko) 동적 메모리 i/o 리사이징을 이용하여 메모리 전력을 절약하기 위한 시스템 및 방법
JP2016532926A (ja) 非対称な記憶容量を有する複数チャネルメモリアーキテクチャにわたってデータを均一にインターリーブするためのシステムおよび方法
US8959298B2 (en) System and method for managing performance of a computing device having dissimilar memory types
TW201717026A (zh) 用於逐頁記憶體通道交錯之系統及方法
US20170108914A1 (en) System and method for memory channel interleaving using a sliding threshold address
TW201717025A (zh) 用於逐頁記憶體通道交錯之系統及方法
EP3427153B1 (en) Multi-rank collision reduction in a hybrid parallel-serial memory system

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant