KR20230145254A - 적응형 메모리 액세스 관리 - Google Patents

적응형 메모리 액세스 관리 Download PDF

Info

Publication number
KR20230145254A
KR20230145254A KR1020237034243A KR20237034243A KR20230145254A KR 20230145254 A KR20230145254 A KR 20230145254A KR 1020237034243 A KR1020237034243 A KR 1020237034243A KR 20237034243 A KR20237034243 A KR 20237034243A KR 20230145254 A KR20230145254 A KR 20230145254A
Authority
KR
South Korea
Prior art keywords
pseudo
dram
broadcast mode
command
channel
Prior art date
Application number
KR1020237034243A
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 KR20230145254A publication Critical patent/KR20230145254A/ko

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • 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
    • 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
    • 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/409Mechanical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

DRAM(dynamic random access memory) 데이터는 브로드캐스트 모드 또는 비-브로드캐스트 모드를 이용하는 메모리 컨트롤러에 의해 액세스될 수 있다. 브로드캐스트 모드에서는, 액세스 요청의 대상인 데이터의 제1 부분 및 액세스 요청의 대상인 데이터의 제2 부분이 각각 제1 및 제2 의사 채널들을 통해 동시에 액세스될 수 있다. 비-브로드캐스트 모드에서는, 액세스 요청의 대상인 데이터가 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 액세스될 수 있다.

Description

적응형 메모리 액세스 관리
[0001] 컴퓨팅 디바이스는 버스들이나 다른 인터커넥트들을 통해 서로 통신하는 다수의 서브시스템들을 포함할 수 있다. 이러한 컴퓨팅 디바이스는, 예를 들어, 랩톱 또는 팜탑 컴퓨터, 휴대폰 또는 스마트폰, 휴대용 디지털 단말기, 휴대용 게임 콘솔 등과 같은 휴대용 컴퓨팅 디바이스("PCD")일 수 있다. 자동차 애플리케이션들에서는 또 다른 유형의 PCD가 사용될 수 있다. 통신 서브시스템들은 동일한 집적 회로 칩 내에 또는 상이한 칩들에 포함될 수 있다. "시스템 온 칩(system-on-a-chip)" 또는 "SoC"는 시스템 레벨 기능을 제공하기 위해 다수의 컴포넌트들을 통합하는 그러한 하나의 칩의 예이다. 예를 들어, SoC는 CPU(central processing unit)들, GPU(graphics processing unit)들, DSP(digital signal processor)들, 및 NPU(neural processing unit)들과 같은 하나 이상의 유형의 프로세서를 포함할 수 있다. SoC는 무선 연결을 제공하는 트랜시버 또는 "모뎀" 서브시스템, 메모리 서브시스템 등과 같은 다른 처리 서브시스템들을 포함할 수 있다. 다양한 프로세서들은 메모리 서브시스템과의 메모리 트랜잭션들을 개시하기 위한 메모리 클라이언트들로서 기능할 수 있다. PCD들 및 다른 컴퓨팅 디바이스들 내의 메인 또는 시스템 메모리는 일반적으로 DRAM(dynamic random access memory)을 포함한다.
[0002] DRAM 기술이 발전함에 따라, 연속적인 DRAM 세대들에서의 스토리지 어레이들은 이전 세대들에 비해 증대된 성능을 제공하기 위해 의도된 점점 더 복잡하고 유연한 방식으로 조직화되었다. 예를 들어, 스토리지 어레이들이 뱅크들로 조직화되었고, 뱅크들이 뱅크 그룹들로 조직화되었고, 기타 등등이다. 또한, 메모리 버스 폭들이 증가함에 따라, 메모리 버스들이 채널들로 조직화된 방식은 계속해서 발전해 왔다.
[0003] 메모리 컨트롤러 아키텍처는 이들 보다 복잡한 DRAM 조직 특징들을 활용하여 메모리 클라이언트들에 대한 성능을 개선하려고 시도할 수 있다. 그럼에도 불구하고, 컴퓨팅 디바이스는 몇몇 메모리 클라이언트들(예를 들어, CPU, GPU, NPU 등)을 가질 수 있으며, 이들 모두가 특정 메모리 컨트롤러 아키텍처로부터 동등하게 이익을 얻을 수 있는 것은 아니다.
[0004] DRAM(dynamic random access memory) 내의 데이터에 액세스하기 위한 시스템들, 방법들, 컴퓨터 판독 가능 매체들, 및 다른 예들이 개시된다. 데이터는 브로드캐스트 모드 또는 비-브로드캐스트 모드를 선택하는 메모리 컨트롤러에 의해 액세스될 수 있다.
[0005] DRAM 내의 데이터에 액세스하기 위한 모범적인 방법은, 메모리 컨트롤러가, 선택 가능한 의사 채널 브로드캐스트 모드 지시(indication)를 갖는 커맨드를 DRAM에 제공하는 단계를 포함할 수 있다. 모범적인 방법은, 메모리 컨트롤러가, 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시(indicate)할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM으로부터 요청된 데이터의 제2 부분에 동시에 액세스하는 단계를 추가로 포함할 수 있다. 모범적인 방법은, 메모리 컨트롤러가, 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 내의 요청된 데이터에 액세스하는 단계를 추가로 더 포함할 수 있다.
[0006] DRAM 내의 데이터에 액세스하기 위한 모범적인 시스템은 메모리 컨트롤러 및 메모리 컨트롤러와 DRAM에 연결된 물리적 인터페이스를 포함할 수 있다. 메모리 컨트롤러는 선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 DRAM에 제공하도록 구성될 수 있다. 메모리 컨트롤러는 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM으로부터 요청된 데이터의 제2 부분에 동시에 액세스하도록 추가로 구성될 수 있다. 메모리 컨트롤러는 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 내의 요청된 데이터에 액세스하도록 추가로 더 구성될 수 있다.
[0007] DRAM 내의 데이터에 액세스하기 위한 다른 모범적인 시스템은 선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 DRAM에 제공하는 수단을 포함할 수 있다. 모범적인 시스템은 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM으로부터 요청된 데이터의 제2 부분에 동시에 액세스하는 수단을 추가로 포함할 수 있다. 모범적인 시스템은 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 내의 요청된 데이터에 액세스하는 수단을 추가로 더 포함할 수 있다.
[0008] 모범적인 DRAM은 복수의 DRAM 스토리지 어레이 및 DRAM 커맨드 인터페이스를 포함할 수 있다. DRAM 커맨드 인터페이스는 선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 수신하도록 구성될 수 있다. DRAM 커맨드 인터페이스는 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 스토리지 어레이들 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM 스토리지 어레이들 내의 요청된 데이터의 제2 부분에 동시에 액세스하도록 추가로 구성될 수 있다. DRAM 커맨드 인터페이스는 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 스토리지 어레이들 내의 요청된 데이터에 액세스하도록 추가로 더 구성될 수 있다.
[0009] 도면들에서는, 달리 지시되지 않는 한 같은 참조 번호들이 다양한 도면들 전체에 걸쳐 같은 부분들을 나타낸다. "102A" 또는 "102B"와 같은 문자 지정들이 있는 참조 번호들의 경우, 문자 지정들은 동일한 도면에 존재하는 2개의 같은 부분들 또는 요소들을 구별할 수 있다. 하나의 참조 번호가 모든 도면들에서 동일한 참조 번호를 갖는 모든 부분들을 포괄할 것이 의도되는 경우에는 참조 번호들에 대한 문자 지정들이 생략될 수 있다.
[0010] 도 1은 모범적인 실시예들에 따른, DRAM 내의 데이터에 액세스하기 위한 시스템을 예시하는 블록도이다.
[0011] 도 2a는 모범적인 실시예들에 따른, 도 1의 시스템의 동작 예를 예시하는 타이밍도이다.
[0012] 도 2b는 도 2a의 타이밍도의 연속이다.
[0013] 도 3a는 모범적인 실시예들에 따른, 도 1의 시스템의 다른 동작 예를 예시하는 타이밍도이다.
[0014] 도 3b는 도 3a의 타이밍도의 연속이다.
[0015] 도 4a는 모범적인 실시예들에 따른, 도 1의 시스템의 또 다른 동작 예를 예시하는 타이밍도이다.
[0016] 도 4b는 도 4a의 타이밍도의 연속이다.
[0017] 도 5는 모범적인 실시예들에 따른, DRAM 내의 데이터에 액세스하는 방법을 예시하는 흐름도이다.
[0018] 도 6은 모범적인 실시예들에 따른, 메모리 액세스 요청들에 기초하여 메모리 커맨드들을 발행하는 방법을 예시하는 흐름도이다.
[0019] 도 7은 모범적인 실시예들에 따른, 메모리 컨트롤러의 블록도이다.
[0020] 도 8은 모범적인 실시예들에 따른, 컴퓨팅 디바이스의 블록도이다.
[0021] 도 9는 클라이언트 유형에 기초하여 브로드캐스트 메모리 액세스 방식 또는 비-브로드캐스트 메모리 액세스 방식 중 어느 하나를 선택하는 양태들을 예시하는 표이다.
[0022] "모범적인(exemplary)"이라는 단어는 본 명세서에서 "예, 사례, 또는 예시의 역할을 하는"을 의미하기 위해 사용된다. "예시적인(illustrative)"이라는 단어는 본 명세서에서 "모범적인"과 동의어로 사용될 수 있다. 본 명세서에서 "모범적인"으로 기술된 임의의 양태는 반드시 다른 양태들에 비해 바람직하거나 유리한 것으로 해석되어야 하는 것은 아니다.
[0023] 도 1에 예시된 바와 같이, 시스템(100)은 메모리 버스(106)를 통해 적어도 하나의 DRAM(dynamic random access memory) 디바이스(104)에 연결된 시스템 온 칩("SoC")(102)을 포함할 수 있다. 명료함을 위해 도시되어 있지는 않지만, 시스템(100)은 임의의 타입일 수 있는 컴퓨팅 디바이스에 포함될 수 있다.
[0024] DRAM 디바이스(104)는, 때때로 간결함을 위해 "DDR"이라고 지칭되는, DDR-SDRAM(double data-rate synchronous DRAM)일 수 있다. DDR 기술이 발전함에 따라, LPDDR4(fourth generation low-power DDR) 및 LPDDR5(fifth generation low-power DDR)와 같은 DDR 버전들이 개발되었다.
[0025] DRAM 디바이스(104)는 2개의 스토리지 어레이 그룹(108): 제1 스토리지 어레이 그룹(108A) 및 제2 스토리지 어레이 그룹(108B)을 포함할 수 있다. 명료함을 위해 도시되어 있지는 않지만, 각각의 스토리지 어레이 그룹(108)은 8개의 뱅크 그룹("BG")들의 형식으로 조직화될 수 있고, 8개의 뱅크 BG 각각은 2개의 뱅크의 형식으로 조직화될 수 있다. 따라서 각각의 스토리지 어레이 그룹(108)은 예시된 실시예에서 16개의 뱅크로 구성된다.
[0026] 제1 스토리지 어레이 그룹(108A)은 DRAM 디바이스(104)의 제1 입력/출력("I/O") 인터페이스(110A)에 연결될 수 있고, 제2 스토리지 어레이 그룹(108B)은 DRAM 디바이스(104)의 제2 I/O 인터페이스(110B)에 연결될 수 있다. 각각의 스토리지 어레이 그룹(108)을 그 개개의 I/O 인터페이스(110A 또는 110B)에 연결하는 데이터 라인의 수는, 예를 들어, 256비트일 수 있다.
[0027] 예시된 실시예에서, 메모리 버스(106)는 폭이 32비트일 수 있다(즉, 32개의 데이터 라인으로 구성됨). 예시된 실시예에서, 데이터 라인들은, 도 1에서 "DQ[0:15]" 및 "DQ[16:31]"의 표기로 각각 표현된, 16개의 하위 비트(즉, 2개의 하위 데이터 바이트) 및 16개의 상위 비트(즉, 2개의 상위 데이터 바이트)의 형식으로 조직화될 수 있다. 데이터 라인들에 더하여, 메모리 버스(106)는 하위 데이터 바이트들 DQ[0:15]와 연관된 제1 판독 스트로브 신호 및 상위 데이터 바이트들 DQ[16:31]과 연관된 제2 판독 스트로브 신호를 포함할 수 있다. 제1 및 제2 판독 스트로브 신호들은 차동(즉, 한 쌍의 참(true) 및 보수) 신호들의 형태일 수 있으며 도 1에서 "(RDQS0_t,RDQS0_c)" 및 "(RDQS1_t,RDQS0_c)"의 표기로 각각 표현될 수 있다. 메모리 버스(106)는 하위 데이터 바이트들 DQ[0:15]와 연관된 제1 데이터 클록 신호 및 상위 데이터 바이트들 DQ[16:31]과 연관된 제2 데이터 클록 신호를 추가로 포함할 수 있다. 제1 및 제2 데이터 클록 신호들은 차동 신호들의 형태일 수 있으며 도 1에서 "(WCK0_t,WCK0_c)" 및 "(WCK1_t,WCK0_c)"의 표기로 각각 표현될 수 있다. 메모리 버스(106)는 하위 데이터 바이트들 DQ[0:15]와 연관된 제1 데이터 마스크 반전 신호("DMI0") 및 상위 데이터 바이트들 DQ[16:31] 과 연관된 제2 데이터 마스크 반전 신호("DMI1")를 추가로 더 포함할 수 있다.
[0028] 하위 데이터 바이트 신호들 DQ[0:15], 제1 데이터 마스크 반전 신호 DMI0, 제1 데이터 클록 신호(WCK0_t,WCK0_c), 제1 판독 스트로브 신호(RDQS0_t,RDQS0_c)는 제1 I/O 인터페이스(110A)에 연결될 수 있다. 상위 데이터 바이트 신호들 DQ[16:31], 제2 데이터 마스크 반전 신호 DMI1, 제2 데이터 클록 신호(WCK1_t,WCK1_c), 제2 판독 스트로브 신호(RDQS1_t,RDQS1_c)는 제2 I/O 인터페이스(110B)에 연결될 수 있다.
[0029] 메모리 버스(106)의 다른 부분은 제어 신호들을 포함할 수 있다. 제어 신호들은 커맨드 및 어드레스("CA") 버스를 포함할 수 있다. CA 버스는 임의의 크기일 수 있으며 도 1에서 "CA[0:n]"의 표기로 표현될 수 있다. 제어 신호들은 CA 버스와 연관된 클록 신호를 또한 포함할 수 있다. CA 버스와 연관된 클록 신호는 차동 신호의 형태일 수 있으며 도 1에서 "(CK_t,CK_c)"의 표기로 표현될 수 있다. 제어 신호들은 칩 선택("CS") 신호 및 리셋("RESET") 신호를 추가로 포함할 수 있다. DRAM 디바이스(104)는 메모리 버스(106)의 제어 신호 부분을 수신하도록 구성된 커맨드/어드레스 및 클록 인터페이스(112)를 포함할 수 있다.
[0030] 개념적으로, 메모리 버스(106)는 2개의 의사 채널: 제1 의사 채널(114A) 및 제2 의사 채널(114B)로서 구성될 수 있다. 제1 의사 채널(114A)("PC0"이라고도 지칭됨)은 하위 데이터 바이트 신호들 DQ[0:15], 제1 데이터 마스크 반전 신호 DMI0, 제1 데이터 클록 신호(WCK0_t,WCK0_c), 제1 판독 스트로브 신호(RDQS0_t,RDQS0_c), CA 버스와 연관된 클록 신호(CK_t,CK_c), 칩 선택 신호 및 리셋 신호를 포함할 수 있다. 제2 의사 채널(114B)("PC1"이라고도 지칭됨)은 상위 데이터 바이트 신호들 DQ[16:31], 제2 데이터 마스크 반전 신호 DMI1, 제2 데이터 클록 신호(WCK1_t,WCK1_c), 제2 판독 스트로브 신호(RDQS1_t,RDQS1_c), CA 버스와 연관된 클록 신호(CK_t,CK_c), 칩 선택 신호 및 리셋 신호를 포함할 수 있다. CA 버스와 연관된 클록 신호(CK_t,CK_c), 칩 선택 신호, 및 리셋 신호를 포함하는 메모리 버스의 제어 신호 부분은 제1 의사 채널(114A)과 제2 의사 채널(114B)에 의해 공유되거나 이들에 공통이라는 점에 유의한다. 제1 및 제2 의사 채널들(114A 및 114B)은 그들의 제어 신호들을 공유하기 때문에 본 명세서에서는 실제 채널들보다는 "의사" 채널들이라고 지칭된다.
[0031] SoC(102)는 메모리 버스(106)에 연결된 물리적 메모리 인터페이스 또는 "PHY"(116) 및 PHY(116)에 연결된 메모리 컨트롤러(118)를 포함할 수 있다. 버스형 인터커넥트(120)(때때로 패브릭이라고도 지칭됨)을 통해, 메모리 컨트롤러(118)는, 예를 들어, 멀티-코어 CPU(central processing unit)(121A), GPU(graphics processing unit) 및 멀티미디어 엔진(122B), NPU(neural processing unit)(122C) 등과 같은 다양한 프로세싱 엔진들(122) 중 임의의 것과 통신할 수 있다. 프로세싱 엔진들(122) 중 임의의 것은 메모리 컨트롤러(118)를 통해 DRAM 디바이스(104)와의 메모리 액세스 동작들을 개시하기 위해 DRAM 디바이스(104)에 대해 클라이언트 디바이스로서의 역할을 할 수 있다. 도 1에 예시된 실시예에서는 3개의 클라이언트 디바이스가 있지만, 다른 실시예들에서는 임의의 수의 클라이언트 디바이스가 있을 수 있다.
[0032] 도 2a 및 도 2b에서, 타이밍도(200)는 위에 기술된 시스템(100)(도 1)의 동작 예를 예시한다. 도 1을 추가로 참조하면, 모범적인 동작(타이밍도(200))은 메모리 컨트롤러(118)가 제1 의사 채널(114A)을 통해 DRAM(즉, DRAM 디바이스(104))으로부터 일부 요청된 데이터의 제1 부분을 그리고 제2 의사 채널(114B)을 통해 DRAM으로부터 요청된 데이터의 제2 부분을 동시에 수신하는(PHY(116)를 통해) 것을 나타낸다. 타이밍도(200)에 예시된 이 동작은 본 명세서에서 "브로드캐스트" 모드라고 지칭된다. 아래에 기술되는 바와 같이, 시스템(100)은 브로드캐스트 모드 또는 비-브로드캐스트 모드로 메모리 판독 동작들을 선택적으로 수행할 수 있다. 아래에 추가로 기술되는 바와 같이, 메모리 컨트롤러(118)는 클라이언트 디바이스로부터 수신된 요청에 응답하여 데이터 액세스를 개시할 수 있다.
[0033] 도 2a에 예시된 바와 같이, 시간 T0 이전부터 시간 T1을 통해 메모리 컨트롤러(118)는 브로드캐스트 모드를 지시하는 상태로 설정된 의사 채널 브로드캐스트("PCB") 모드 지시를 포함하는 CAS 커맨드를 발행할 수 있다. 예를 들어, CAS 커맨드의 미리 결정된 비트가 브로드캐스트 모드를 지시하기 위해 "1"(즉, PCB=1)의 값으로 설정된 PCB 모드 비트일 수 있다. 그 후, 시간 T2 이전부터 시간 T3을 통해 메모리 컨트롤러(118)는 판독 커맨드를 발행할 수 있다. 판독 커맨드는 마찬가지로 브로드캐스트 모드를 지시하기 위해 "1"(즉, PCB=1)의 값으로 설정된 PCB 모드 비트를 포함할 수 있다. 간결함을 위해, 도 2a에서 "CAS PCB=1"의 표기는 CAS 커맨드를 지시하고 "Read PCB=1"은 판독 커맨드를 지시하지만, 커맨드들은 다른 비트들을 포함할 수 있다는 것을 이해해야 한다. 예를 들어, 기입 클록 간 동기화(write clock-to-clock sync) 옵션 비트가 어써트될 수 있다: WS_RD=1.
[0034] 판독 커맨드는, 도 2a 및 도 2b에 예시된 예에서 64바이트와 같은, 요청된 데이터의 양의 지시를 포함할 수 있다. 판독 커맨드는 또한, 도 2a 및 도 2b에 예시된 예에서 16의 버스트 길이와 같은, 버스트 길이("BL") 지시를 포함할 수 있다. 본 기술분야의 통상의 기술자에 의해 잘 이해되는 바와 같이, 칩 선택 신호는 CAS 커맨드 및 판독 커맨드 중에 어써트될 수 있다. 본 기술분야의 통상의 기술자에 의해 마찬가지로 잘 이해되는, 타이밍도(200)의 다른 양태들 및 메모리 컨트롤러(118) 및 DRAM 디바이스(104)(도 1) 등의 대응하는 구성들은 간결함을 위해 본 명세서에서 설명되지 않는다.
[0035] 계속해서 도 2b에서, 판독 커맨드에 응답하여, 시간 T3에서 시작되는 지연 또는 시간 간격 후에, 메모리 버스(106)(도 1)의 제1 의사 채널(114A) 부분, 즉, DQ[0:15]를 통해 DRAM(DRAM 디바이스(104))으로부터 요청된 64바이트의 데이터 중 제1 32바이트 부분이 도착할 수 있다. 이 시간 간격은 시간 T3에서 시작되는 판독 레이턴시("RL")에, 4개의 사이클의 클록 신호(WCK0_t,CK_c) 또는 판독 스트로브 신호(RDQS0_t,RDQS0_c)를 더한 것과 동등할 수 있다. "nCK"가 "클록 사이클 수(number of clock cycles)"를 의미하는 표기법에서, 이 시간 간격은 RL+4nCK, 즉, RL+4개의 클록 사이클로 표현될 수 있다. 마찬가지로, 판독 커맨드에 응답하여, 시간 T3에서 시작되는 동일한 지연 또는 시간 간격: RL+4nCK 후에, 메모리 버스(106)의 제2 의사 채널(114B) 부분, 즉, DQ[16:31]을 통해 DRAM으로부터 요청된 64바이트의 데이터 중 제2 32바이트 부분이 도착할 수 있다. 즉, 판독 동작이 브로드캐스트 모드로 수행될 때 요청된 데이터의 양의 제1 및 제2 부분들은 RL+4nCK의 시간 간격 후에 제1 및 제2 의사 채널들(114A 및 114B)을 통해 각각 서로 동시에 도착한다. 타이밍도(200)에는 도시되어 있지 않지만, 메모리 컨트롤러(118)는 요청된 데이터를 요청하는 클라이언트 디바이스로 다시 전달한다.
[0036] 도 3a 및 도 3b에서, 타이밍도(300)는 위에 기술된 시스템(100)(도 1)의 다른 동작 예를 예시한다. 도 1을 참조하면, 모범적인 동작(타이밍도(300))은 메모리 컨트롤러(118)가 제1 의사 채널(114A)을 통해 DRAM(즉, DRAM 디바이스(104))으로부터 일부 요청된 데이터의 제1 부분을 그리고 제2 의사 채널(114B)을 통해 DRAM으로부터 요청된 데이터의 제2 부분을 순차적으로 수신하는(PHY(116)를 통해) 것을 나타낸다. 타이밍도(300)는 "비-브로드캐스트" 모드로 동작하는 시스템(100)의 예를 예시한다.
[0037] 도 3a에 예시된 바와 같이, 시간 T0 이전부터 시간 T1을 통해 메모리 컨트롤러(118)는 비-브로드캐스트 모드를 지시하는 상태로 설정된 PCB 모드 지시뿐만 아니라 제1 및 제2 의사 채널들(114A(PC0) 및 114B(PC1)) 중 선택된 의사 채널을 지시하는 상태로 설정된 의사 채널 선택 지시("PCS")를 포함하는 제1 CAS 커맨드를 발행할 수 있다. 예시된 예에서, 위에 기술된 PCB 모드 비트는 비-브로드캐스트 모드를 지시하기 위해 "0"(즉, PCB=0)의 값으로 설정될 수 있다. 제1 CAS 커맨드의 다른 미리 결정된 비트는 예시된 예에서 제1 의사 채널(114A)(PC0)의 선택을 지시하기 위해 "0"(즉, PCS=0)의 값으로 설정된 PCS 비트일 수 있다. 그 후, 시간 T2 이전부터 시간 T3을 통해 메모리 컨트롤러(118)는 제1 판독 커맨드를 발행할 수 있다. 제1 판독 커맨드는 마찬가지로 비-브로드캐스트 모드를 지시하기 위해 "0"의 값으로 설정된 PCB 모드 비트 및 제1 의사 채널(114A)(PC0)의 선택을 지시하기 위해 "0"의 값으로 설정된 PCS 비트를 포함할 수 있다. 간결함을 위해, 도 3a에서 "CAS PC0"의 표기는 제1 CAS 커맨드를 지시하고 "Read"는 제1 판독 커맨드를 지시하지만, 이 예에서 제1 CAS 커맨드와 제1 판독 커맨드는 PCB=0 및 PCS=0을 포함한다는 것을 이해해야 한다. 제1 CAS 커맨드는 간결함을 위해 도 3a에서 마찬가지로 지시되지 않은 다른 비트들, 예컨대 WS_RD=1을 또한 포함할 수 있다.
[0038] 시간 T4 이전부터 시간 T5를 통해, 메모리 컨트롤러(118)는 비-브로드캐스트 모드를 지시하는 상태로 설정된 PCB 모드 지시 및 제2 의사 채널(114B)(PC1)의 선택을 지시하는 상태로 설정된 PCS 지시를 포함하는 제2 CAS 커맨드를 발행할 수 있다. 즉, 예시된 예에서: PCB=0 및 PCS=1이다. 그 후, 시간 T6 이전부터 시간 T7을 통해 메모리 컨트롤러(118)는 제2 판독 커맨드를 발행할 수 있다. 제2 판독 커맨드는 마찬가지로 비-브로드캐스트 모드를 지시하기 위해 "0"의 값으로 설정된 PCB 모드 비트 및 제1 의사 채널(114A)(PC0)의 선택을 지시하기 위해 "0"의 값으로 설정된 PCS 비트를 포함할 수 있다. 간결함을 위해, 도 3a에서 "CAS PC1"의 표기는 제2 CAS 커맨드를 지시하고 "Read"는 제2 판독 커맨드를 지시하지만, 이 예에서 제2 CAS 커맨드와 제2 판독 커맨드는 PCB=0 및 PCS=1을 포함한다는 것을 이해해야 한다. 제2 CAS 커맨드는 간결함을 위해 도 3a에서 마찬가지로 지시되지 않은 다른 비트들, 예컨대 WS_RD=1을 또한 포함할 수 있다.
[0039] 제1 및 제2 판독 커맨드들 각각은, 도 3a 및 도 3b에 예시된 예에서 총 64바이트의 요청된 데이터에 대해, 예를 들어, 32바이트와 같은, 요청된 데이터의 양의 지시를 또한 포함할 수 있다. 판독 커맨드들은 도 3a 및 도 3b에 예시된 예에서 16의 BL 지시를 또한 포함할 수 있다. 본 기술분야의 통상의 기술자에 의해 잘 이해되는, 타이밍도(300)의 다른 양태들 및 메모리 컨트롤러(118) 및 DRAM 디바이스(104)(도 1) 등의 대응하는 구성들은 간결함을 위해 본 명세서에서 설명되지 않는다.
[0040] 계속해서 도 3b에서, 판독 커맨드에 응답하여, 시간 T3(도 3a)에서 시작되는 지연 또는 시간 간격 후에, 메모리 버스(106)(도 1)의 제1 의사 채널(114A) 부분, 즉, DQ[0:15]를 통해 DRAM으로부터 요청된 64바이트의 데이터 중 제1 32바이트 부분이 도착할 수 있다. 마찬가지로, 판독 커맨드에 응답하여, 시간 T7(도 3a)에서 시작되는 다른 지연 또는 시간 간격 후에, 메모리 버스(106)의 제2 의사 채널(114B) 부분, 즉, DQ[16:31]을 통해 DRAM으로부터 요청된 64바이트의 데이터 중 제2 32바이트 부분이 도착할 수 있다. 판독 동작이 비-브로드캐스트 모드로 수행될 때, 요청된 데이터의 양의 제1 및 제2 부분들은, 제1 및 제2 판독 커맨드들에 응답하여 각각, 제1 및 제2 의사 채널들(114A(PC0) 및 114B(PC1))을 통해 각각 서로 순차적으로 도착한다. 즉, 판독 동작이 비-브로드캐스트 모드로 수행될 때 요청된 데이터의 제1 부분은 DQ[0:15]를 통해 먼저 도착하고, 요청된 데이터의 제2 부분은 요청된 데이터의 제1 부분이 DQ[0:15]를 통해 도착한 후에 DQ[15:31]을 통해 도착한다. 제1 판독 커맨드로부터 요청된 데이터의 모든 64바이트의 도착까지의 총 지연 또는 시간 간격은 도 3a 및 도 3b에 예시된 예에서 RL+8nCK이다. 타이밍도(300)에는 도시되어 있지 않지만, 메모리 컨트롤러(118)는 요청된 데이터를 요청하는 클라이언트 디바이스로 다시 전달한다.
[0041] 도 4a 및 도 4b에서, 타이밍도(400)는 위에 기술된 시스템(100)(도 1)의 또 다른 동작 예를 예시한다. 도 1을 참조하면, 모범적인 동작(타이밍도(400))은 메모리 컨트롤러(118)가 제1 의사 채널(114A)을 통해 DRAM(즉, DRAM 디바이스(104))으로부터 일부 요청된 데이터의 제1 부분을 그리고 제2 의사 채널(114B)을 통해 DRAM으로부터 요청된 데이터의 제2 부분을 순차적으로 수신하는(PHY(116)를 통해) 것을 나타낸다. 타이밍도(400)는 "비-브로드캐스트" 모드로 동작하는 시스템(100)의 다른 예를 예시한다.
[0042] 도 4a에 예시된 바와 같이, 시간 T0 이전부터 시간 T1을 통해 메모리 컨트롤러(118)는 비-브로드캐스트 모드를 지시하는 상태로 설정된 PCB 모드 지시뿐만 아니라 제1 의사 채널(114A)(PC0)의 선택을 지시하는 상태로 설정된 PCS 지시를 포함하는 제1 CAS 커맨드를 발행할 수 있다. 즉, 예시된 예에서: PCB=0 및 PCS=0이다. 그 후, 시간 T2 이전부터 시간 T3을 통해 메모리 컨트롤러(118)는 제1 판독 커맨드를 발행할 수 있다. 제1 판독 커맨드는 마찬가지로 비-브로드캐스트 모드를 지시하기 위해 "0"의 값으로 설정된 PCB 모드 비트 및 제1 의사 채널(114A)(PC0)의 선택을 지시하기 위해 "0"의 값으로 설정된 PCS 비트를 포함할 수 있다. 간결함을 위해, 도 4a에서 "CAS PC0"의 표기는 제1 CAS 커맨드를 지시하고 "Read"는 제1 판독 커맨드를 지시하지만, 이 예에서 제1 CAS 커맨드와 제1 판독 커맨드는 PCB=0 및 PCS=0을 포함한다는 것을 이해해야 한다. 제1 CAS 커맨드는 간결함을 위해 도 4a에서 마찬가지로 지시되지 않은 다른 비트들, 예컨대 WS_RD=1을 또한 포함할 수 있다.
[0043] 시간 T4 이전부터 시간 T5를 통해, 메모리 컨트롤러(118)는 비-브로드캐스트 모드를 지시하는 상태로 설정된 PCB 모드 지시 및 제2 의사 채널(114B)(PC1)의 선택을 지시하는 상태로 설정된 PCS 지시를 포함하는 제2 CAS 커맨드를 발행할 수 있다. 즉, 예시된 예에서: PCB=0 및 PCS=1이다. 그 후, 시간 T6 이전부터 시간 T7을 통해 메모리 컨트롤러(118)는 제2 판독 커맨드를 발행할 수 있다. 제2 판독 커맨드는 마찬가지로 비-브로드캐스트 모드를 지시하기 위해 "0"의 값으로 설정된 PCB 모드 비트 및 제1 의사 채널(114A)(PC0)의 선택을 지시하기 위해 "0"의 값으로 설정된 PCS 비트를 포함할 수 있다. 간결함을 위해, 도 4a에서 "CAS PC1"의 표기는 제2 CAS 커맨드를 지시하고 "Read"는 제2 판독 커맨드를 지시하지만, 이 예에서 제2 CAS 커맨드와 제2 판독 커맨드는 PCB=0 및 PCS=1을 포함한다는 것을 이해해야 한다. 제2 CAS 커맨드는 간결함을 위해 도 4a에서 마찬가지로 지시되지 않은 다른 비트들, 예컨대 WS_RD=1을 또한 포함할 수 있다.
[0044] 제1 및 제2 판독 커맨드들 각각은, 예를 들어, 도 4a 및 도 4b에 예시된 예에서 64바이트(판독 커맨드당)와 같은, 요청된 데이터의 양의 지시를 또한 포함할 수 있다. 판독 커맨드들은 도 4a 및 도 4b에 예시된 예에서 32의 BL 지시를 또한 포함할 수 있다. 본 기술분야의 통상의 기술자에 의해 잘 이해되는, 타이밍도(400)의 다른 양태들 및 메모리 컨트롤러(118) 및 DRAM 디바이스(104)(도 1) 등의 대응하는 구성들은 간결함을 위해 본 명세서에서 설명되지 않는다.
[0045] 계속해서 도 4b에서, 판독 커맨드에 응답하여, 시간 T3(도 4a)에서 시작되는 지연 또는 시간 간격 후에, 제1 의사 채널(114A)(PC0), 즉, DQ[0:15]를 통해 DRAM으로부터 요청된 데이터 중 제1 32바이트 부분이 도착할 수 있다. 마찬가지로, 제2 판독 커맨드에 응답하여, 시간 T7(도 4a)에서 시작되는 다른 지연 또는 시간 간격 후에, 제2 의사 채널(114B)(PC1), 즉, DQ[16:31]을 통해 DRAM으로부터 요청된 데이터 중 제2 32바이트 부분이 도착할 수 있다. 그 후, 다시 제1 판독 커맨드에 응답하여, 요청된 데이터의 제3 32바이트 부분이 제1 의사 채널(114A)(PC0), 즉, DQ[0:15]를 통해 DRAM으로부터 도착할 수 있다. 그리고 다시 제2 판독 커맨드에 응답하여, 요청된 데이터의 제4 32바이트 부분이 제1 의사 채널(114B)(PC1), 즉, DQ[16:31]을 통해 DRAM으로부터 도착할 수 있다. 즉, 요청된 데이터의 제1 64바이트가 DQ[0:15]를 통해 도착하고 요청된 데이터의 제2 64바이트가 DQ[15:31]을 통해 도착한다. 이 예에서 제1 판독 커맨드로부터 DQ[0:15]를 통해 요청된 데이터의 64바이트의 도착까지의 지연 또는 시간 간격은 RL+12nCK이다. 마찬가지로, 이 예에서 제2 판독 커맨드로부터 DQ[16:31]을 통해 요청된 데이터의 64바이트의 도착까지의 지연 또는 시간 간격은 RL+12nCK이다. 타이밍도(300)에는 도시되어 있지 않지만, 메모리 컨트롤러(118)는 요청된 데이터를 요청하는 클라이언트 디바이스로 다시 전달한다.
[0046] 타이밍도(200)(도 2a 및 도 2b), 타이밍도(300)(도 3a 및 도 3b) 및 타이밍도(400)(도 4a 및 도 4b)와 관련하여 위에 기술된 시스템(100)(도 1)의 동작 예들은 유일한 예들이 아니라는 것을 이해해야 한다. 시스템(100)의 추가적인 동작 예은 본 명세서의 교시 내용들을 고려하여 본 기술분야의 통상의 기술자에게 쉽게 떠오를 것이다. 예를 들어, 위에 기술된 시스템(100) 동작 예들은 판독 액세스들에 관한 것이지만, 기입 액세스들에 관련된 추가적인 예들이 있을 수 있다. 또한, 타이밍도들(200-400)은 시스템(100)의 동작의 일부 중요한 양태들을 예시하지만, 타이밍도들(200-400)에 예시되지 않은 다른 양태들, 예컨대 본 기술분야의 통상의 기술자에 의해 잘 이해되는 양태들이 있을 수 있다는 것을 이해해야 한다. 예를 들어, 본 기술분야의 통상의 기술자에 의해 이해되는 바와 같이, DRAM 액세스 시퀀스와 관련하여 메모리 컨트롤러가 발행할 수 있는 다양한 다른 커맨드들, 예컨대 활성화(Activate)("ACT"), 프리-차지(Pre-charge)("PRE") 등이 있을 수 있다.
[0047] 도 5에는, DRAM으로부터 데이터를 판독하는 방법(500)이 흐름도 형식으로 예시되어 있다. 블록 502에 의해 지시된 바와 같이, 메모리 컨트롤러는 선택 가능한 PCB 모드 지시를 갖는 판독 커맨드를 DRAM에 제공할 수 있다. 제1 판독 커맨드는 데이터에 대한 요청(예를 들어, 클라이언트 디바이스에 의한)과 연관된다. 블록 504에 의해 지시된 바와 같이, 판독 커맨드에 응답하여, PCB 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 메모리 컨트롤러는 제1 및 제2 의사 채널들을 통해 각각 DRAM으로부터 요청된 데이터의 제1 및 제2 부분들을 동시에 수신할 수 있다. 블록 504에 의해 지시된 바와 같이, 판독 커맨드에 응답하여, PCB 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때, 메모리 컨트롤러는 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM으로부터 요청된 데이터를 수신할 수 있다. 판독 커맨드는, 제1 및 제2 의사 채널들 중 어느 것이 선택되는지를 지시하는, PCS 지시를 포함할 수 있다.
[0048] 도 6에는, 메모리 액세스 요청들을 제어하는 방법(600)이 흐름도 형식으로 예시되어 있다. 블록 602에 의해 지시된 바와 같이, 메모리 컨트롤러는 클라이언트 디바이스로부터 메모리 액세스 요청을 수신할 수 있다. 메모리 액세스 요청은 타깃 어드레스를 포함할 수 있으며, 예를 들어, 플래그, 액세스 우선순위 지시 등과 같은 다른 정보를 또한 포함할 수 있다.
[0049] 블록 604에 의해 지시된 바와 같이, 메모리 컨트롤러는 수신된 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있는지 여부를 결정할 수 있다. 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있는지 여부는 어떤 식으로든 결정될 수 있다. 모범적인 실시예에서는, 제1 범위 내의 타깃 어드레스를 갖는 메모리 액세스 요청이 브로드캐스트 모드와 연관될 수 있다. 즉, 타깃 어드레스가 제1 범위 내에 있으면, 메모리 액세스 요청은 브로드캐스트 모드와 연관된다. 그러나 타깃 어드레스가 제1 범위 내에 있지 않으면, 메모리 액세스 요청은 브로드캐스트 모드와 연관되지 않는다(따라서 비-브로드캐스트 모드와 연관될 수 있음). 상이한 유형의 클라이언트 디바이스들은 클라이언트 유형에 기초하여 상이한 어드레스 범위들 내의 타깃 어드레스들을 갖는 메모리 액세스 요청들을 발행할 수 있다. 예를 들어, CPU는 제1 범위 내의 타깃 어드레스들을 사용할 수 있는 반면, GPU는 제1 범위 외의 범위(즉, 제2 범위) 내의 타깃 어드레스들을 사용할 수 있고, 기타 등등이다. 다른 모범적인 실시예에서는, 메모리 액세스 요청이 플래그를 포함할 수 있다. 메모리 액세스 요청이 플래그를 포함한다면, 메모리 액세스 요청은 브로드캐스트 모드와 연관된다. 그러나 메모리 액세스 요청이 플래그를 포함하지 않는다면, 메모리 액세스 요청은 브로드캐스트 모드와 연관되지 않는다(따라서 비-브로드캐스트 모드와 연관될 수 있음). 상이한 클라이언트 디바이스들은 메모리 액세스 요청들에 플래그를 포함하거나 포함하지 않을 수 있다. 또 다른 모범적인 실시예에서는, 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있는지 여부는 요청하는 클라이언트 디바이스와 연관된 메모리 액세스 우선순위에 기초하여 결정될 수 있다.
[0050] 블록 606에 의해 지시된 바와 같이, 메모리 컨트롤러가 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있다고 결정하면, 메모리 컨트롤러는 메모리 액세스 요청과 관련하여 메모리 컨트롤러가 발행할 수 있는 다양한 커맨드들 중 임의의 커맨드에서 브로드캐스트 모드를 지시하도록 PCB 모드 지시를 설정할 수 있다(예를 들어, "1"로). 그러한 커맨드들은, 예를 들어, 활성화("ACT"), 기입("WRITE"), 판독("READ"), 프리-차지("PRE") 등을 포함할 수 있다. 블록 608에 의해 지시된 바와 같이, 메모리 컨트롤러가 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있지 않다고 결정하면, 메모리 컨트롤러는 그러한 커맨드들 중 임의의 커맨드에서 비-브로드캐스트 모드를 지시하도록 PCB 모드 지시를 설정할 수 있다(예를 들어, "0"으로). 블록 610에 의해 지시된 바와 같이, 메모리 컨트롤러는 메모리 버스에 의해 DRAM에 연결된 물리적 인터페이스 또는 PHY를 통해 메모리 액세스 동작들이 실행되게 할 수 있다.
[0051] 도 7에 예시된 바와 같이, 메모리 컨트롤러(700)는 제1 DRAM 판독 데이터 FIFO(first-in-first-out) 버퍼(702), 제2 DRAM 판독 데이터 FIFO 버퍼(704), 제1 인터리브 스토리지 버퍼(706), 제2 인터리브 스토리지 버퍼(708), 데이터 핸들러(710), 클라이언트 판독 데이터 버퍼(712), DRAM 커맨드 큐(714), 판독 데이터 보류 커맨드 큐(716), 클라이언트 판독 커맨드 버퍼(718)를 포함할 수 있다. 메모리 컨트롤러(700)는 위에 기술된 메모리 컨트롤러(118)(도 1)의 예일 수 있다. 메모리 컨트롤러(700)는 도 7에서 개념적인 형식으로 도시되어 있으며, 전술한 요소들은, 예를 들어, 하나 이상의 프로세서(소프트웨어 또는 펌웨어에 의해 구성됨)의 동작을 통해, 하나 이상의 유한 상태 머신의 동작을 통해, 또는 임의의 다른 유형의 제어 로직의 동작을 통해, 제어 로직(도시되지 않음)에 의해 동작하도록 구성될 수 있다는 것을 이해해야 한다. 또한 도 7에는 본 명세서에서 기술된 것들 외의 메모리 컨트롤러 기능들과 관련된 메모리 컨트롤러(700)의 요소들은 도시되어 있지 않다. 예를 들어, 본 명세서에서 기술된 메모리 컨트롤러 기능들에 더하여, 메모리 컨트롤러(700)는 클라이언트 디바이스들로부터 수신된 메모리 액세스 요청들에 응답하여 또는 다른 조건들에 응답하여 커맨드 시퀀스들을 생성하도록 구성될 수 있다. 그러한 다른 조건들은, 예를 들어, DRAM이 주기적으로 리프레시되어야 한다는 요건을 포함할 수 있으며, 메모리 컨트롤러(700)는 리프레시 관련 커맨드들을 생성하도록 구성될 수 있다.
[0052] DRAM 커맨드 큐(714)는 위에 기술된 방식으로 생성된 커맨드들을 PHY(도 7에는 도시되지 않음)를 통해 DRAM에 송신하기 전에 해당 커맨드들을 일시적으로 저장하도록 구성될 수 있다. 판독 데이터 보류 커맨드 큐(716)는 메모리 컨트롤러(700)가 판독 커맨드에 응답하여 DRAM으로부터 판독 데이터를 수신할 때까지 DRAM에 송신된 각각의 판독 커맨드를 식별하는 정보를 일시적으로 저장하도록 구성될 수 있다. 제1 DRAM FIFO 버퍼(702)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 판독 데이터를 저장하도록 구성될 수 있다. 제2 DRAM 판독 데이터 FIFO 버퍼(704)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 판독 데이터를 저장하도록 구성될 수 있다.
[0053] 2개의 연속적인 판독 커맨드 각각이 32바이트의 데이터를 요청하는 동작 예에서는, 제1 DRAM 판독 데이터 FIFO 버퍼(702) 및 제2 DRAM 판독 데이터 FIFO 버퍼(704)는 각각 각각의 판독 커맨드에 응답하여 PHY로부터 128비트의 판독 데이터를 수신하도록 구성될 수 있다. 제1 DRAM 판독 데이터 FIFO 버퍼(702) 및 제2 DRAM 판독 데이터 FIFO 버퍼(704)는 각각 2개의 메모리 컨트롤러 클록 사이클에서 256비트의 판독 데이터를 수신하도록 구성될 수 있다. 제1 및 제2 인터리브 스토리지 버퍼들(706 및 708)은 제1 및 제2 DRAM 판독 데이터 FIFO 버퍼들(702 및 704)에 의해 각각 출력되는 데이터를 저장하도록 구성될 수 있다. (32바이트 요청들의) 이 예에서는, 제1 메모리 컨트롤러 클록 사이클 동안, 제1 인터리브 스토리지 버퍼(706)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 128비트의 데이터를 데이터 핸들러(710)를 통해 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있다. 이 예에서는, 제2 메모리 컨트롤러 클록 사이클 동안, 제1 인터리브 스토리지 버퍼(706)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 다른 128비트의 데이터를 데이터 핸들러(710)를 통해 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있다. 또한, 이 예에서는, 제3 메모리 컨트롤러 클록 사이클 동안, 제2 인터리브 스토리지 버퍼(708)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 128비트의 데이터를 데이터 핸들러(710)를 통해 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있다. 또한, 이 예에서는, 제4 메모리 컨트롤러 클록 사이클 동안, 제2 인터리브 스토리지 버퍼(708)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 다른 128비트의 데이터를 데이터 핸들러(710)를 통해 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있다. 따라서, (32바이트 요청들의) 이 예에서는, 처음 2개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 32바이트의 데이터를 수신하고, 다음 2개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 32바이트의 데이터를 수신한다. 즉, 32바이트 요청들에 응답하여 데이터가 수신되는 예에서는, 4개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제1 및 제2 의사 채널들 PC0 및 PC1 각각으로부터 32바이트의 판독 데이터를 수신한다.
[0054] 판독 데이터가 클라이언트 판독 데이터 버퍼(712)에 저장됨에 따라, 판독 데이터 보류 커맨드 큐(716)는 해당 판독 데이터와 연관된 판독 커맨드들을 식별하는 정보를 클라이언트 판독 커맨드 버퍼(718)에 제공할 수 있다. 클라이언트 판독 데이터 버퍼(712) 및 클라이언트 판독 커맨드 버퍼(718)는 수신된 판독 데이터를 연관된 커맨드들을 식별하는 정보와 함께 요청하는 클라이언트에 송신하도록 구성된다. 클라이언트로부터 수신된 각각의 판독 액세스 요청은, 요청하는 클라이언트를 식별하는, "클라이언트 ID"라고 지칭될 수 있는, 정보를 포함할 수 있다. 클라이언트 ID에 기초하여, 판독 데이터 및 커맨드들을 식별하는 정보는 함께 또는 달리 서로 관련하여 요청하는 클라이언트에 송신될 수 있다. 위에 기술된 바와 같이, 각각의 커맨드는 DRAM이 요청된 데이터를 메모리 컨트롤러(700)에 브로드캐스트 모드로 제공할지 또는 비-브로드캐스트 모드로 제공할지를 지시하는 PCB 모드 지시를 포함할 수 있다. 판독 데이터 보류 커맨드 큐(716)는 PCB 모드 지시를 사용하여 인터리브 스토리지 버퍼들(706 및 708)을 제어할 수 있다.
[0055] 판독 커맨드가 64바이트의 데이터를 요청하는 다른 동작 예에서는, 제1 DRAM 판독 데이터 FIFO 버퍼(702) 및 제2 DRAM 판독 데이터 FIFO 버퍼(704)는 각각, 위에 기술된 32바이트 요청 예에서와 같이, 각각의 판독 커맨드에 응답하여 PHY로부터 128비트의 판독 데이터를 수신하도록 구성될 수 있다. 제1 DRAM 판독 데이터 FIFO 버퍼(702) 및 제2 DRAM 판독 데이터 FIFO 버퍼(704)는 각각, 위에 기술된 32바이트 요청 예에서와 같이, 2개의 메모리 컨트롤러 클록 사이클에서 256비트의 판독 데이터를 수신하도록 구성될 수 있다. 그러나, (64바이트 요청들의) 이 예에서는: 제1 메모리 컨트롤러 클록 사이클 동안, 제1 인터리브 스토리지 버퍼(706)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 128비트의 데이터를 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있고; 제2 메모리 컨트롤러 클록 사이클 동안, 제1 인터리브 스토리지 버퍼(706)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 다른 128비트의 데이터를 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있고; 제3 메모리 컨트롤러 클록 사이클 동안, 제2 인터리브 스토리지 버퍼(708)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 128비트의 데이터를 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있고; 제4 메모리 컨트롤러 클록 사이클 동안, 제2 인터리브 스토리지 버퍼(708)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 다른 128비트의 데이터를 데이터 핸들러(710)를 통해 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있고; 제5 메모리 컨트롤러 클록 사이클 동안, 제1 인터리브 스토리지 버퍼(706)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 또 다른 128비트의 데이터를 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있고; 제6 메모리 컨트롤러 클록 사이클 동안, 제1 인터리브 스토리지 버퍼(706)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 또 다른 128비트의 데이터를 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있고; 제7 메모리 컨트롤러 클록 사이클 동안, 제2 인터리브 스토리지 버퍼(708)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 또 다른 128비트의 데이터를 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있고; 제8 메모리 컨트롤러 클록 사이클 동안, 제2 인터리브 스토리지 버퍼(708)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 또 다른 128비트의 데이터를 클라이언트 판독 데이터 버퍼(712)에 송신할 수 있다.
[0056] 따라서, (64바이트 요청들의) 이 예에서는: 처음 2개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 32바이트의 데이터를 수신하고; 다음 2개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 32바이트의 데이터를 수신하고; 다음 2개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제1 의사 채널 PC0을 통해 DRAM으로부터 수신된 32바이트의 데이터를 수신하고; 다음 2개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제2 의사 채널 PC1을 통해 DRAM으로부터 수신된 32바이트의 데이터를 수신한다. 즉, 64바이트 요청에 응답하여 데이터가 수신되는 예에서는, 8개의 메모리 컨트롤러 클록 사이클에서 클라이언트 판독 데이터 버퍼(712)는 제1 및 제2 의사 채널들 PC0 및 PC1 각각으로부터 64바이트의 판독 데이터를 수신한다.
[0057] 도 8에는, DRAM 내의 데이터에 액세스하는 시스템들, 방법들, 컴퓨터 판독가능 매체들, 및 다른 예들의 모범적인 실시예들이 제공될 수 있는 휴대용 컴퓨팅 디바이스("PCD")(800)의 예가 예시되어 있다. 명료함을 위해, 일부 데이터 버스들, 클록 신호들, 전력 공급 전압들 등은 도 8에 도시되어 있지 않다.
[0058] PCD(800)는 SoC(802)를 포함할 수 있다. SoC(802)는 CPU(804), NPU(805), GPU(806), DSP(807), 아날로그 신호 프로세서(808), 또는 다른 프로세서들을 포함할 수 있다. CPU(804)는 하나 이상의 CPU 코어, 예컨대 제1 CPU 코어(804A), 제2 CPU 코어(804B) 등, 내지 제N CPU 코어(804N)를 포함할 수 있다.
[0059] 디스플레이 컨트롤러(810) 및 터치스크린 컨트롤러(812)가 CPU(804)에 연결될 수 있다. SoC(802) 외부의 터치스크린 디스플레이(814)가 디스플레이 컨트롤러(810) 및 터치스크린 컨트롤러(812)에 연결될 수 있다. PCD(800)는 CPU(804)에 연결된 비디오 디코더(816)를 추가로 포함할 수 있다. 비디오 증폭기(818)가 비디오 디코더(816) 및 터치스크린 디스플레이(814)에 연결될 수 있다. 비디오 포트(820)가 비디오 증폭기(818)에 연결될 수 있다. USB(universal serial bus) 컨트롤러(822)가 또한 CPU(804)에 연결될 수 있고, USB 포트(824)가 USB 컨트롤러(822)에 연결될 수 있다. SIM(subscriber identity module) 카드(826)가 또한 CPU(804)에 연결될 수 있다.
[0060] 하나 이상의 메모리가 CPU(804)에 연결될 수 있다. 하나 이상의 메모리는 휘발성 메모리와 비휘발성 메모리 양쪽 모두를 포함할 수 있다. 휘발성 메모리들의 예들은 SRAM(static random access memory)(828) 및 DRAM(830 및 831)을 포함한다. 그러한 메모리들은, DRAM(830)과 같이, SoC(802) 외부에 있거나, DRAM(831)과 같이, SoC(802) 내부에 있을 수 있다. CPU(804)에 연결된 DRAM 컨트롤러(832)가 DRAM들(830 및 831)에 대한 데이터의 기입, 및 DRAM들(830 및 831)로부터의 데이터의 판독을 제어할 수 있다. DRAM 컨트롤러(832)는 위에 기술된 DRAM 컨트롤러(118(도 1) 또는 700(도 7))의 예일 수 있다.
[0061] 스테레오 오디오 코덱(834)이 아날로그 신호 프로세서(808)에 연결될 수 있다. 또한, 오디오 증폭기(836)가 스테레오 오디오 코덱(834)에 연결될 수 있다. 제1 및 제2 스테레오 스피커들(838, 840)이 각각 오디오 증폭기(836)에 연결될 수 있다. 또한, 마이크로폰 증폭기(842)가 스테레오 오디오 코덱(834)에 연결될 수 있고, 마이크로폰(844)이 마이크로폰 증폭기(842)에 연결될 수 있다. FM(frequency modulation) 라디오 튜너(846)가 스테레오 오디오 코덱(834)에 연결될 수 있다. FM 안테나(848)가 FM 라디오 튜너(846)에 연결될 수 있다. 또한, 스테레오 헤드폰들(850)이 스테레오 오디오 코덱(834)에 연결될 수 있다. CPU(804)에 연결될 수 있는 다른 디바이스들은 하나 이상의 디지털(예를 들어, CCD 또는 CMOS) 카메라(852)를 포함한다.
[0062] 모뎀 또는 RF 트랜시버(854)가 아날로그 신호 프로세서(808) 및 CPU(804)에 연결될 수 있다. RF 스위치(856)가 RF 트랜시버(854) 및 RF 안테나(858)에 연결될 수 있다. 또한, 키패드(860), 마이크로폰을 갖춘 모노 헤드셋(862), 및 진동 디바이스(864)가 아날로그 신호 프로세서(808)에 연결될 수 있다.
[0063] SoC(802)는 하나 이상의 내부 또는 온 칩 열 센서(870A)를 가질 수 있고, 하나 이상의 외부 또는 오프 칩 열 센서(870B)에 연결될 수 있다. 아날로그-디지털 변환기("ADC") 컨트롤러(872)가 열 센서들(870A 및 870B)에 의해 생성된 전압 강하들을 디지털 신호들로 변환할 수 있다. 전력 공급 장치(874) 및 PMIC(876)가 SoC(802)에 전력을 공급할 수 있다.
[0064] PCD(800)는 DRAM 내의 데이터에 액세스하는 시스템들, 방법들, 컴퓨터 판독가능 매체들, 및 다른 실시예들의 모범적인 실시예들이 제공될 수 있는 디바이스 또는 시스템의 일 예일뿐이다. 다른 예들은 데이터센터, 자동차, 및 다른 상황들에서 사용되는 것들과 같은, 다른 유형의 컴퓨팅 디바이스들 또는 컴퓨팅 시스템들을 포함할 수 있다.
[0065] 펌웨어 또는 소프트웨어는, DRAM(830 또는 831), SRAM(828) 등과 같은, 위에 기술된 메모리들 중 임의의 메모리에 저장될 수 있거나, 소프트웨어 또는 펌웨어가 실행되는 프로세서 하드웨어에 의해 직접 액세스 가능한 로컬 메모리에 저장될 수 있다. 그러한 펌웨어 또는 소프트웨어의 실행은 위에 기술된 방법들 중 임의의 방법의 양태들을 제어하거나 위에 기술된 시스템들 중 임의의 시스템의 양태들을 구성할 수 있다. 프로세서 하드웨어에 의한 실행을 위해 컴퓨터 판독가능 형식으로 펌웨어 또는 소프트웨어가 저장되어 있는 임의의 그러한 메모리 또는 다른 비일시적 저장 매체는, 특허 용어집에서 이해되는 바와 같은, "컴퓨터 판독가능 매체"의 예일 수 있다.
[0066] 도 9에서는, 테이블(900)이 메모리 컨트롤러가 클라이언트 디바이스 유형에 기초하여 상이한 메모리 액세스 방식들을 이용할 수 있다는 것을 예시하고 있다. 예를 들어, 메모리 컨트롤러는 레이턴시에 민감한 클라이언트들로부터 수신된 판독 요청들에 응답해서는 테이블(900)의 제1 열에 제시된 브로드캐스트 메모리 액세스 방식을 이용할 수 있고, 대역폭에 민감한 클라이언트들로부터 수신된 판독 요청들에 응답해서는 테이블(900)의 제2 열에 제시된 비-브로드캐스트 메모리 액세스 방식을 이용할 수 있다. 레이턴시에 민감한 클라이언트들의 예들은 CPU, 모뎀, 또는 유사한 클라이언트들을 포함할 수 있다. 메모리 대역폭에 민감한 클라이언트들의 예들은 GPU, NPU, 또는 유사한 클라이언트들을 포함할 수 있다.
[0067] 테이블(900)의 제1 열에 지시된 바와 같이, 브로드캐스트 메모리 액세스 방식이 이용되는 경우, 메모리 컨트롤러는 마치 DRAM이 각각 2개의 뱅크로 이루어진 8개의 뱅크 그룹의 형식으로 조직화된 것과 같은 방식으로 DRAM에 액세스할 수 있다. 브로드캐스트 메모리 액세스 방식을 이용하여 32바이트의 데이터에 액세스하기 위한 레이턴시는 RL+4nCK이다. 브로드캐스트 메모리 액세스 방식(즉, BL=16)을 이용하여 64바이트의 데이터에 액세스하기 위한 레이턴시도 RL+4nCK이다. 브로드캐스트 메모리 액세스 방식(BL=32)을 이용하여 128바이트의 데이터에 액세스하기 위한 레이턴시는 RL+12nCK이다.
[0068] 테이블(900)의 제2 열에 지시된 바와 같이, 비-브로드캐스트 메모리 액세스 방식이 이용되는 경우, 메모리 컨트롤러는 마치 DRAM이 각각 2개의 뱅크로 이루어진 16개의 뱅크 그룹의 형식으로 조직화된 바와 같은 방식으로 DRAM에 액세스할 수 있다 ― 비록 DRAM이 물리적으로는 도 1과 관련하여 위에 기술된 바와 같이 조직화될 수 있다 할지라도(즉, 각각 2개의 뱅크로 이루어진 8개의 뱅크 그룹의 형식으로 각각 조직화된, 2개의 스토리지 어레이 그룹). 비-브로드캐스트 액세스 방식을 이용하여 32바이트의 데이터에 액세스하기 위한 레이턴시는 RL+4nCK이다. 비-브로드캐스트 메모리 액세스 방식을 이용하여 64바이트의 데이터에 액세스하기 위한 레이턴시는 RL+12nCK이다. 비-브로드캐스트 메모리 액세스 방식을 이용하여 128바이트의 데이터에 액세스하기 위한 레이턴시는 상이한 뱅크 그룹들에서 2개의 연속적인 판독(BL=32)으로서 수행되는 경우 RL+16nCK이거나, 동일한 뱅크 그룹에서 2개의 연속적인 판독(BL=32)으로서 수행되는 경우 RL+28nCK이다.
[0069] 본 발명이 속하는 기술분야의 통상의 기술자에게는 대안적인 실시예들이 명백해질 것이다. 그러므로, 비록 선택된 양태들이 상세히 예시되고 기술되기는 했지만, 다양한 대체들 및 변경들이 이루어질 수 있다는 것을 이해할 것이다.
[0070] 구현 예들은 다음의 번호가 매겨진 조항들에서 기술된다:
[0071] 1. DRAM(dynamic random access memory) 내의 데이터에 액세스하는 방법으로서,
[0072] 메모리 컨트롤러가, 선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 DRAM에 제공하는 단계 ― 커맨드는 요청된 데이터와 연관됨 ―;
[0073] 메모리 컨트롤러가, 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM 내의 요청된 데이터의 제2 부분에 동시에 액세스하는 단계; 및
[0074] 메모리 컨트롤러가, 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 내의 요청된 데이터에 액세스하는 단계를 포함하는, 방법.
[0075] 2. 제1 항에 있어서, DRAM은 LPDDR(low-power double data-rate)인, 방법.
[0076] 3. 제1 항에 있어서,
[0077] 커맨드는 의사 채널 선택 지시를 갖고;
[0078] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제1 의사 채널을 지시할 때 커맨드에 응답하여 제1 의사 채널이 선택되고;
[0079] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제2 의사 채널을 지시할 때 커맨드에 응답하여 제2 의사 채널이 선택되는, 방법.
[0080] 4. 제1 항에 있어서, 커맨드를 제공하는 단계는:
[0081] 클라이언트 디바이스로부터 메모리 액세스 요청을 수신하는 단계;
[0082] 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있는지 여부를 결정하는 단계;
[0083] 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있을 때 브로드캐스트 모드를 지시하도록 의사 채널 브로드캐스트 모드 지시의 상태를 설정하는 단계; 및
[0084] 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있지 않을 때 비-브로드캐스트 모드를 지시하도록 의사 채널 브로드캐스트 모드 지시의 상태를 설정하는 단계를 포함하는, 방법.
[0085] 5. 제4 항에 있어서, 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있는지 여부는: 메모리 액세스 요청에 포함된 타깃 어드레스; 메모리 액세스 요청에 포함된 플래그; 및 메모리 액세스 요청과 연관된 우선순위 중 적어도 하나에 기초하여 결정되는, 방법.
[0086] 6. 제1 항에 있어서, 커맨드를 제공하는 단계는 제1 의사 채널 및 제2 의사 채널에 공통인 커맨드 버스를 통해 DRAM에 커맨드를 제공하는 단계를 포함하는, 방법.
[0087] 7. 제6 항에 있어서, 제1 의사 채널을 통해 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 요청된 데이터의 제2 부분에 동시에 액세스하는 단계는, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹으로부터 요청된 데이터의 제1 부분에 액세스하고, 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 요청된 데이터의 제2 부분에 액세스하는 단계를 포함하고, 제1 스토리지 어레이 그룹 및 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크를 포함하는, 방법.
[0088] 8. 제7 항에 있어서, 복수의 뱅크 그룹은 8개의 뱅크 그룹으로 이루어지고, 복수의 뱅크는 2개의 뱅크로 이루어지는, 방법.
[0089] 9. 제1 항에 있어서, 커맨드를 식별하는 정보와 함께 요청된 데이터를 요청하는 호스트 디바이스에 반환하는 단계를 추가로 포함하는, 방법.
[0090] 10. DRAM(dynamic random access memory) 내의 데이터에 액세스하는 시스템으로서,
[0091] DRAM에 연결된 물리적 인터페이스; 및
[0092] 메모리 컨트롤러를 포함하고, 이 메모리 컨트롤러는:
[0093] 선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 DRAM에 제공하고 ― 커맨드는 요청된 데이터와 연관됨 ―;
[0094] 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM 내의 요청된 데이터의 제2 부분에 동시에 액세스하고;
[0095] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 내의 요청된 데이터에 액세스하도록 구성되는, 시스템.
[0096] 11. 제10 항에 있어서, 메모리 컨트롤러는 시스템 온 칩(SoC)에 포함되고 SoC 상의 복수의 호스트 디바이스 중 요청하는 호스트 디바이스로부터 메모리 액세스 요청을 수신하도록 구성되는, 시스템.
[0097] 12. 제10 항에 있어서,
[0098] 커맨드는 의사 채널 선택 지시를 갖고;
[0099] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제1 의사 채널을 지시할 때 커맨드에 응답하여 제1 의사 채널이 선택되고;
[00100] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제2 의사 채널을 지시할 때 커맨드에 응답하여 제2 의사 채널이 선택되는, 시스템.
[00101] 13. 제10 항에 있어서, 메모리 컨트롤러는:
[00102] 클라이언트 디바이스로부터 메모리 액세스 요청을 수신하고 ― 메모리 액세스 요청은 타깃 어드레스를 가짐 ―;
[00103] 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있는지 여부를 결정하고;
[00104] 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있을 때 브로드캐스트 모드를 지시하도록 의사 채널 브로드캐스트 모드 지시의 상태를 설정하고;
[00105] 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있지 않을 때 비-브로드캐스트 모드를 지시하도록 의사 채널 브로드캐스트 모드 지시의 상태를 설정하도록 구성됨으로써 커맨드를 제공하도록 구성되는, 시스템.
[00106] 14. 제10 항에 있어서, 메모리 액세스 요청이 브로드캐스트 모드와 연관되어 있는지 여부는: 메모리 액세스 요청에 포함된 타깃 어드레스; 메모리 액세스 요청에 포함된 플래그; 및 메모리 액세스 요청과 연관된 우선순위 중 적어도 하나에 기초하여 결정되는, 시스템.
[00107] 15. 제10 항에 있어서, 메모리 컨트롤러는 제1 의사 채널 및 제2 의사 채널에 공통인 커맨드 버스를 통해 DRAM에 커맨드를 제공하도록 구성됨으로써 커맨드를 제공하도록 구성되는, 시스템.
[00108] 16. 제15 항에 있어서, 메모리 컨트롤러는, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹 내의 요청된 데이터의 제1 부분에 액세스하고 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 요청된 데이터의 제2 부분에 액세스하도록 구성됨으로써, 제1 의사 채널을 통해 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 요청된 데이터의 제2 부분에 동시에 액세스하도록 구성되고, 제1 스토리지 어레이 그룹 및 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹들을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크들을 포함하는, 시스템.
[00109] 17. 제16 항에 있어서, 복수의 뱅크 그룹들은 8개의 뱅크 그룹들로 이루어지고, 복수의 뱅크들은 2개의 뱅크들로 이루어지는, 시스템.
[00110] 18. 제10 항에 있어서, 메모리 컨트롤러는 커맨드를 식별하는 정보와 함께 요청된 데이터를 요청하는 호스트 디바이스에 반환하도록 추가로 구성되는, 시스템.
[00111] 19. DRAM(dynamic random access memory) 내의 데이터에 액세스하는 시스템으로서,
[00112] 선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 DRAM에 제공하는 수단 ― 커맨드는 요청된 데이터와 연관됨 ―;
[00113] 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM 내의 요청된 데이터의 제2 부분에 동시에 액세스하는 수단; 및
[00114] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 내의 요청된 데이터에 액세스하는 수단을 포함하는, 시스템.
[00115] 20. 제19 항에 있어서, 제공하는 수단, 동시에 액세스하는 수단, 및 액세스하는 수단은 시스템 온 칩(SoC)에 포함되고, 시스템은 SoC 상의 복수의 호스트 디바이스 중 요청하는 호스트 디바이스로부터 메모리 액세스 요청을 수신하는 수단을 추가로 포함하는, 시스템.
[00116] 21. 제19 항에 있어서,
[00117] 커맨드는 의사 채널 선택 지시를 갖고;
[00118] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제1 의사 채널을 지시할 때 커맨드에 응답하여 제1 의사 채널이 선택되고;
[00119] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제2 의사 채널을 지시할 때 커맨드에 응답하여 제2 의사 채널이 선택되는, 시스템.
[00120] 22. 제19 항에 있어서, 커맨드를 제공하는 수단은 제1 의사 채널 및 제2 의사 채널에 공통인 커맨드 버스를 통해 DRAM에 커맨드를 제공하는 수단을 포함하는, 시스템.
[00121] 23. 제22 항에 있어서, 제1 의사 채널을 통해 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 요청된 데이터의 제2 부분에 동시에 액세스하는 수단은, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹 내의 요청된 데이터의 제1 부분에 액세스하고 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 요청된 데이터의 제2 부분에 액세스하는 수단을 포함하고, 제1 스토리지 어레이 그룹 및 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹들을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크들을 포함하는, 시스템.
[00122] 24. 제23 항에 있어서, 복수의 뱅크 그룹들은 8개의 뱅크 그룹들로 이루어지고, 복수의 뱅크들은 2개의 뱅크들로 이루어지는, 시스템.
[00123] 25. 제19 항에 있어서, 커맨드를 식별하는 정보와 함께 요청된 데이터를 요청하는 호스트 디바이스에 반환하는 수단을 추가로 포함하는, 시스템.
[00124] 26. DRAM(dynamic random access memory)으로서,
[00125] 복수의 DRAM 스토리지 어레이; 및
[00126] DRAM 커맨드 인터페이스를 포함하고, 이 DRAM 커맨드 인터페이스는:
[00127] 선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 수신하고 ― 커맨드는 요청된 데이터와 연관됨 ―;
[00128] 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 의사 채널을 통해 DRAM 스토리지 어레이들 내의 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 DRAM 스토리지 어레이들 내의 요청된 데이터의 제2 부분에 동시에 액세스하고;
[00129] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 커맨드에 응답하여 제1 및 제2 의사 채널들 중 선택된 의사 채널을 통해 DRAM 스토리지 어레이들 내의 요청된 데이터에 액세스하도록 구성되는, DRAM.
[00130] 27. 제26 항에 있어서,
[00131] 커맨드는 의사 채널 선택 지시를 갖고;
[00132] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제1 의사 채널을 지시할 때 커맨드에 응답하여 제1 의사 채널이 선택되고;
[00133] 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시하고 의사 채널 선택 지시의 상태가 제2 의사 채널을 지시할 때 커맨드에 응답하여 제2 의사 채널이 선택되는, DRAM.
[00134] 28. 제26 항에 있어서, DRAM 커맨드 인터페이스는 제1 의사 채널 및 제2 의사 채널에 공통인, DRAM.
[00135] 29. 제26 항에 있어서, DRAM 커맨드 인터페이스는, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹 내의 요청된 데이터의 제1 부분에 액세스하고 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 요청된 데이터의 제2 부분에 액세스하도록 구성됨으로써, 제1 의사 채널을 통해 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 요청된 데이터의 제2 부분에 동시에 액세스하도록 구성되고, 제1 스토리지 어레이 그룹 및 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹들을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크들을 포함하는, DRAM.
[00136] 30. 제29 항에 있어서, 복수의 뱅크 그룹들은 8개의 뱅크 그룹들로 이루어지고, 복수의 뱅크들은 2개의 뱅크들로 이루어지는, DRAM.

Claims (30)

  1. DRAM(dynamic random access memory) 내의 데이터에 액세스하기 위한 방법으로서,
    메모리 컨트롤러가, 선택 가능한 의사 채널 브로드캐스트 모드 지시(indication)를 갖는 커맨드를 상기 DRAM에 제공하는 단계 ― 상기 커맨드는 요청된 데이터와 연관됨 ―;
    상기 메모리 컨트롤러가, 상기 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시(indicate)할 때 상기 커맨드에 응답하여 제1 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터의 제2 부분에 동시에 액세스하는 단계; 및
    상기 메모리 컨트롤러가, 상기 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널 및 상기 제2 의사 채널 중 선택된 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터에 액세스하는 단계를 포함하는, DRAM 내의 데이터에 액세스하기 위한 방법.
  2. 제1 항에 있어서,
    상기 DRAM은 LPDDR(low-power double data-rate)인, DRAM 내의 데이터에 액세스하기 위한 방법.
  3. 제1 항에 있어서,
    상기 커맨드는 의사 채널 선택 지시를 갖고;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제1 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널이 선택되고;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제2 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제2 의사 채널이 선택되는, DRAM 내의 데이터에 액세스하기 위한 방법.
  4. 제1 항에 있어서,
    상기 커맨드를 제공하는 단계는:
    클라이언트 디바이스로부터 메모리 액세스 요청을 수신하는 단계;
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있는지 여부를 결정하는 단계;
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있을 때 상기 브로드캐스트 모드를 지시하도록 상기 의사 채널 브로드캐스트 모드 지시의 상태를 설정하는 단계; 및
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있지 않을 때 상기 비-브로드캐스트 모드를 지시하도록 상기 의사 채널 브로드캐스트 모드 지시의 상태를 설정하는 단계를 포함하는, DRAM 내의 데이터에 액세스하기 위한 방법.
  5. 제4 항에 있어서,
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있는지 여부는: 상기 메모리 액세스 요청에 포함된 타깃 어드레스; 상기 메모리 액세스 요청에 포함된 플래그; 및 상기 메모리 액세스 요청과 연관된 우선순위 중 적어도 하나에 기초하여 결정되는, DRAM 내의 데이터에 액세스하기 위한 방법.
  6. 제1 항에 있어서,
    상기 커맨드를 제공하는 단계는 상기 제1 의사 채널 및 상기 제2 의사 채널에 공통인 커맨드 버스를 통해 상기 DRAM에 상기 커맨드를 제공하는 단계를 포함하는, DRAM 내의 데이터에 액세스하기 위한 방법.
  7. 제6 항에 있어서,
    상기 제1 의사 채널을 통해 상기 요청된 데이터의 제1 부분에 그리고 상기 제2 의사 채널을 통해 상기 요청된 데이터의 제2 부분에 동시에 액세스하는 단계는, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹으로부터 상기 요청된 데이터의 제1 부분에 액세스하고, 상기 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 상기 요청된 데이터의 제2 부분에 액세스하는 단계를 포함하고, 상기 제1 스토리지 어레이 그룹 및 상기 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹들을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크들을 포함하는, DRAM 내의 데이터에 액세스하기 위한 방법.
  8. 제7 항에 있어서,
    상기 복수의 뱅크 그룹들은 8개의 뱅크 그룹들로 이루어지고, 상기 복수의 뱅크들은 2개의 뱅크들로 이루어지는, DRAM 내의 데이터에 액세스하기 위한 방법.
  9. 제1 항에 있어서,
    상기 커맨드를 식별하는 정보와 함께 상기 요청된 데이터를 요청하는 호스트 디바이스에 반환하는 단계를 추가로 포함하는, DRAM 내의 데이터에 액세스하기 위한 방법.
  10. DRAM(dynamic random access memory) 내의 데이터에 액세스하기 위한 시스템으로서,
    상기 DRAM에 연결된 물리적 인터페이스; 및
    메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는:
    선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 상기 DRAM에 제공하고 ― 상기 커맨드는 요청된 데이터와 연관됨 ―;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 상기 커맨드에 응답하여 제1 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터의 제2 부분에 동시에 액세스하고;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널 및 상기 제2 의사 채널 중 선택된 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터에 액세스하도록 구성되는, DRAM 내의 데이터에 액세스하는 시스템.
  11. 제10 항에 있어서,
    상기 메모리 컨트롤러는 시스템 온 칩(SoC)에 포함되고 상기 SoC 상의 복수의 호스트 디바이스들 중 요청하는 호스트 디바이스로부터 메모리 액세스 요청을 수신하도록 구성되는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  12. 제10 항에 있어서,
    상기 커맨드는 의사 채널 선택 지시를 갖고;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제1 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널이 선택되고; 그리고
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제2 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제2 의사 채널이 선택되는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  13. 제10 항에 있어서,
    상기 메모리 컨트롤러는:
    클라이언트 디바이스로부터 메모리 액세스 요청을 수신하고 ― 상기 메모리 액세스 요청은 타깃 어드레스를 가짐 ―;
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있는지 여부를 결정하고;
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있을 때 상기 브로드캐스트 모드를 지시하도록 상기 의사 채널 브로드캐스트 모드 지시의 상태를 설정하고;
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있지 않을 때 상기 비-브로드캐스트 모드를 지시하도록 상기 의사 채널 브로드캐스트 모드 지시의 상태를 설정하도록 구성됨으로써 상기 커맨드를 제공하도록 구성되는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  14. 제10 항에 있어서,
    상기 메모리 액세스 요청이 상기 브로드캐스트 모드와 연관되어 있는지 여부는: 상기 메모리 액세스 요청에 포함된 타깃 어드레스; 상기 메모리 액세스 요청에 포함된 플래그; 및 상기 메모리 액세스 요청과 연관된 우선순위 중 적어도 하나에 기초하여 결정되는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  15. 제10 항에 있어서,
    상기 메모리 컨트롤러는 상기 제1 의사 채널 및 상기 제2 의사 채널에 공통인 커맨드 버스를 통해 상기 DRAM에 상기 커맨드를 제공하도록 구성됨으로써 상기 커맨드를 제공하도록 구성되는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  16. 제15 항에 있어서,
    상기 메모리 컨트롤러는, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹 내의 상기 요청된 데이터의 제1 부분에 액세스하고 상기 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 상기 요청된 데이터의 제2 부분에 액세스하도록 구성됨으로써, 상기 제1 의사 채널을 통해 상기 요청된 데이터의 제1 부분에 그리고 상기 제2 의사 채널을 통해 상기 요청된 데이터의 제2 부분에 동시에 액세스하도록 구성되고, 상기 제1 스토리지 어레이 그룹 및 상기 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹들을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크들을 포함하는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  17. 제16 항에 있어서,
    상기 복수의 뱅크 그룹들은 8개의 뱅크 그룹들로 이루어지고, 상기 복수의 뱅크들은 2개의 뱅크들 이루어지는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  18. 제10 항에 있어서,
    상기 메모리 컨트롤러는 상기 커맨드를 식별하는 정보와 함께 상기 요청된 데이터를 요청하는 호스트 디바이스에 반환하도록 추가로 구성되는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  19. DRAM(dynamic random access memory) 내의 데이터에 액세스하기 위한 시스템으로서,
    선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 상기 DRAM에 제공하기 위한 수단 ― 상기 커맨드는 요청된 데이터와 연관됨 ―;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 상기 커맨드에 응답하여 제1 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터의 제2 부분에 동시에 액세스하기 위한 수단; 및
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널 및 상기 제2 의사 채널 중 선택된 의사 채널을 통해 상기 DRAM 내의 상기 요청된 데이터에 액세스하기 위한 수단을 포함하는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  20. 제19 항에 있어서,
    상기 제공하기 위한 수단, 동시에 액세스하기 위한 수단, 및 액세스하기 위한 수단은 시스템 온 칩(SoC)에 포함되고, 상기 시스템은 상기 SoC 상의 복수의 호스트 디바이스들 중 요청하는 호스트 디바이스로부터 메모리 액세스 요청을 수신하기 위한 수단을 추가로 포함하는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  21. 제19 항에 있어서,
    상기 커맨드는 의사 채널 선택 지시를 갖고;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제1 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널이 선택되고;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제2 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제2 의사 채널이 선택되는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  22. 제19 항에 있어서,
    상기 커맨드를 제공하기 위한 수단은 상기 제1 의사 채널 및 상기 제2 의사 채널에 공통인 커맨드 버스를 통해 상기 DRAM에 상기 커맨드를 제공하기 위한 수단을 포함하는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  23. 제22 항에 있어서,
    상기 제1 의사 채널을 통해 상기 요청된 데이터의 제1 부분에 그리고 상기 제2 의사 채널을 통해 상기 요청된 데이터의 제2 부분에 동시에 액세스하기 위한 수단은, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹 내의 상기 요청된 데이터의 제1 부분에 액세스하고 상기 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 상기 요청된 데이터의 제2 부분에 액세스하기 위한 수단을 포함하고, 상기 제1 스토리지 어레이 그룹 및 상기 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹들을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크들을 포함하는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  24. 제23 항에 있어서,
    상기 복수의 뱅크 그룹들은 8개의 뱅크 그룹들로 이루어지고, 상기 복수의 뱅크들은 2개의 뱅크들로 이루어지는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  25. 제19 항에 있어서,
    상기 커맨드를 식별하는 정보와 함께 상기 요청된 데이터를 요청하는 호스트 디바이스에 반환하기 위한 수단을 추가로 포함하는, DRAM 내의 데이터에 액세스하기 위한 시스템.
  26. DRAM(dynamic random access memory)으로서,
    복수의 DRAM 스토리지 어레이들; 및
    DRAM 커맨드 인터페이스를 포함하고,
    상기 DRAM 커맨드 인터페이스는:
    선택 가능한 의사 채널 브로드캐스트 모드 지시를 갖는 커맨드를 수신하고 ― 상기 커맨드는 요청된 데이터와 연관됨 ―;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 브로드캐스트 모드를 지시할 때 상기 커맨드에 응답하여 제1 의사 채널을 통해 상기 DRAM 스토리지 어레이들 내의 상기 요청된 데이터의 제1 부분에 그리고 제2 의사 채널을 통해 상기 DRAM 스토리지 어레이들 내의 상기 요청된 데이터의 제2 부분에 동시에 액세스하고; 그리고
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 비-브로드캐스트 모드를 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널 및 상기 제2 의사 채널 중 선택된 의사 채널을 통해 상기 DRAM 스토리지 어레이들 내의 상기 요청된 데이터에 액세스하도록 구성되는, DRAM.
  27. 제26 항에 있어서,
    상기 커맨드는 의사 채널 선택 지시를 갖고;
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제1 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제1 의사 채널이 선택되고; 그리고
    상기 의사 채널 브로드캐스트 모드 지시의 상태가 상기 비-브로드캐스트 모드를 지시하고 상기 의사 채널 선택 지시의 상태가 상기 제2 의사 채널을 지시할 때 상기 커맨드에 응답하여 상기 제2 의사 채널이 선택되는, DRAM.
  28. 제26 항에 있어서,
    상기 DRAM 커맨드 인터페이스는 상기 제1 의사 채널 및 상기 제2 의사 채널에 공통인, DRAM.
  29. 제26 항에 있어서,
    상기 DRAM 커맨드 인터페이스는, 데이터 버스의 제1 부분을 통해 제1 스토리지 어레이 그룹 내의 상기 요청된 데이터의 제1 부분에 액세스하고 상기 데이터 버스의 제2 부분을 통해 제2 스토리지 어레이 그룹 내의 상기 요청된 데이터의 제2 부분에 액세스하도록 구성됨으로써, 상기 제1 의사 채널을 통해 상기 요청된 데이터의 제1 부분에 그리고 상기 제2 의사 채널을 통해 상기 요청된 데이터의 제2 부분에 동시에 액세스하도록 구성되고, 상기 제1 스토리지 어레이 그룹 및 상기 제2 스토리지 어레이 그룹의 각각은 복수의 뱅크 그룹들을 포함하고, 각각의 뱅크 그룹은 복수의 뱅크들을 포함하는, DRAM.
  30. 제29 항에 있어서,
    상기 복수의 뱅크 그룹들은 8개의 뱅크 그룹들로 이루어지고, 상기 복수의 뱅크들은 2개의 뱅크들로 이루어지는, DRAM.
KR1020237034243A 2021-04-15 2022-03-11 적응형 메모리 액세스 관리 KR20230145254A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/231,867 2021-04-15
US17/231,867 US11360897B1 (en) 2021-04-15 2021-04-15 Adaptive memory access management
PCT/US2022/019988 WO2022220965A1 (en) 2021-04-15 2022-03-11 Adaptive memory access management

Publications (1)

Publication Number Publication Date
KR20230145254A true KR20230145254A (ko) 2023-10-17

Family

ID=81074077

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237034243A KR20230145254A (ko) 2021-04-15 2022-03-11 적응형 메모리 액세스 관리

Country Status (7)

Country Link
US (1) US11360897B1 (ko)
EP (1) EP4323877A1 (ko)
KR (1) KR20230145254A (ko)
CN (1) CN117083601A (ko)
BR (1) BR112023020426A2 (ko)
TW (1) TW202242659A (ko)
WO (1) WO2022220965A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230418772A1 (en) * 2022-06-24 2023-12-28 Advanced Micro Devices, Inc. Memory controller with pseudo-channel support

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173367B1 (en) * 1999-05-19 2001-01-09 Ati Technologies, Inc. Method and apparatus for accessing graphics cache memory
US8032688B2 (en) * 2005-06-30 2011-10-04 Intel Corporation Micro-tile memory interfaces
US7804735B2 (en) * 2008-02-29 2010-09-28 Qualcomm Incorporated Dual channel memory architecture having a reduced interface pin requirements using a double data rate scheme for the address/control signals
US9870325B2 (en) * 2015-05-19 2018-01-16 Intel Corporation Common die implementation for memory devices with independent interface paths

Also Published As

Publication number Publication date
US11360897B1 (en) 2022-06-14
WO2022220965A1 (en) 2022-10-20
TW202242659A (zh) 2022-11-01
CN117083601A (zh) 2023-11-17
EP4323877A1 (en) 2024-02-21
BR112023020426A2 (pt) 2023-12-05

Similar Documents

Publication Publication Date Title
JP4742116B2 (ja) アウトオブオーダdramシーケンサ
US5721860A (en) Memory controller for independently supporting synchronous and asynchronous DRAM memories
US6381190B1 (en) Semiconductor memory device in which use of cache can be selected
US7280428B2 (en) Multi-column addressing mode memory system including an integrated circuit memory device
US20060112231A1 (en) Synchronous DRAM with selectable internal prefetch size
US20150003172A1 (en) Memory module including buffer chip controlling refresh operation of memory devices
US10991418B2 (en) Semiconductor memory device comprising an interface conforming to JEDEC standard and control device therefor
US11099786B2 (en) Signaling for heterogeneous memory systems
CN110633229A (zh) 用于高带宽存储器通道的dimm
US20030018845A1 (en) Memory device having different burst order addressing for read and write operations
NL2031713B1 (en) Double fetch for long burst length memory data transfer
US10963404B2 (en) High bandwidth DIMM
KR20230145254A (ko) 적응형 메모리 액세스 관리
US20190042095A1 (en) Memory module designed to conform to a first memory chip specification having memory chips designed to conform to a second memory chip specification
US12001682B2 (en) PIM computing system and memory controller thereof
US8244929B2 (en) Data processing apparatus
KR100886179B1 (ko) 듀얼 포트 메모리로의 액세스 권한 획득 처리 방법 및 이를위한 장치
JP2003316642A (ja) メモリ制御回路、dma要求ブロック及びメモリアクセスシステム
KR20080046067A (ko) 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법
US20240184487A1 (en) Memory system and operating method thereof
US6766403B2 (en) CPU system with high-speed peripheral LSI circuit
US20170075571A1 (en) Memory device and control method thereof
US20240062800A1 (en) Dynamic random access memory (dram) row hammering mitigation

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal