KR101609718B1 - 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들 - Google Patents

프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들 Download PDF

Info

Publication number
KR101609718B1
KR101609718B1 KR1020157021849A KR20157021849A KR101609718B1 KR 101609718 B1 KR101609718 B1 KR 101609718B1 KR 1020157021849 A KR1020157021849 A KR 1020157021849A KR 20157021849 A KR20157021849 A KR 20157021849A KR 101609718 B1 KR101609718 B1 KR 101609718B1
Authority
KR
South Korea
Prior art keywords
memory access
access request
memory
heterogeneous
policy
Prior art date
Application number
KR1020157021849A
Other languages
English (en)
Other versions
KR20150107819A (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 KR20150107819A publication Critical patent/KR20150107819A/ko
Application granted granted Critical
Publication of KR101609718B1 publication Critical patent/KR101609718B1/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/1694Configuration of memory controller to different memory types
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • Y02B60/1228
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들이 개시된다. 이종의 메모리 시스템은 주어진 메모리 액세스 요청에 대해 액세스될 수 있는 복수의 동종의 메모리로 구성된다. 각각의 동종의 메모리는 특정한 전력 및 성능 특성들을 갖는다. 이것에 관하여, 메모리 액세스 요청은 유리하게는, 메모리 액세스 요청 및 전력 및/또는 성능 고려사항들에 기초하여 이종의 메모리 시스템에서 동종의 메모리들 중 하나로 라우팅될 수 있다. 이종의 메모리 액세스 요청 정책들은 비-제한적인 예들로서 판독/기록 타입, 페이지 히트들의 주파수 및 메모리 트래픽과 같은 핵심적인 동작 파라미터들에 기초하여 동적으로 결정되거나 미리 정의될 수 있다. 이러한 방식으로, 메모리 액세스 요청 시간들은, 저장을 위해 이용 가능한 단지 하나의 메모리 타입을 갖는 것과 연관되는 트래이드오프들을 형성할 필요 없이 감소되도록 최적화될 수 있다.

Description

프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들{HETEROGENEOUS MEMORY SYSTEMS, AND RELATED METHODS AND COMPUTER-READABLE MEDIA FOR SUPPORTING HETEROGENEOUS MEMORY ACCESS REQUESTS IN PROCESSOR-BASED SYSTEMS}
[0001] 본 개시의 기술은 프로세서-기반 시스템들 및 디바이스들에서 제공되는 메모리 및 메모리 시스템들에 관한 것이다.
[0002] 중앙 처리 장치(CPU) 또는 다른 프로세서들을 포함하는 프로세서-기반 시스템들은 시스템 동작들을 위해 다양한 타입들의 메모리를 활용한다. 이 메모리는 실행될 명령을 저장하기 위해 프로그램 코드를 저장하기 위한 그리고 데이터 저장을 위한 시스템 메모리로서 이용될 수 있다.
[0003] 메모리는 휘발성 또는 비-휘발성 메모리로서 일반적으로 카테고리화된다. 휘발성 메모리의 예는 DRAM(Dynamic Random Access Memory)이다. 비-휘발성 메모리의 예들은 ROM(Read Only Memory), 플래시 메모리, SRAM(Static Random Access Memory), MRAM(Magnetoresistive Random Access Memory)을 포함한다. 휘발성 메모리는, 메모리 셀들을 리프레시(refresh)하고 현재 상태(즉, 데이터)를 활성으로 그리고 메모리 셀들에 보유된 채로 유지하기 위해 전력이 소비될 것을 요구할 수 있다. 비-휘발성 메모리는 리프레시할 필요 없이 메모리 셀들에서 현재 상태(즉, 데이터)를 유지할 수 있다. 따라서, 휘발성 메모리는 비-휘발성 메모리보다 더 많은 전력을 소비한다. 그러나 휘발성 메모리는, 증가된 판독/기록(r/w) 속도들, 페이지 열기 및/또는 닫기 속도들을 포함(그러나 이들로 제한되지 않음)해서, 비-휘발성 메모리보다 증가된 성능 특성을 가질 수 있다.
[0004] 따라서, 휘발성 메모리는 유리하게는, 증가된 성능이 리프레시를 위해 더 높은 전력 소비에 대한 수락 가능한 트래이드오프인 프로세서-기반 시스템들에서 이용될 수 있다. 한편, 비-휘발성 메모리는 유리하게는, 감소된 전력 보존이 성능에 대한 수락 가능한 트래이드오프인 프로세서-기반 시스템들에 이용될 수 있다.
[0005] 상세한 설명에서 개시되는 실시예들은 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들을 포함한다. 이종의 메모리 시스템은 주어진 메모리 액세스 요청에 대해 액세스될 수 있는 복수의 동종의 메모리로 구성된다. 예를 들어, 이종의 메모리 시스템 내의 하나의 동종의 메모리는 리프레시를 위해 전력을 요구하지만, 비-휘발성 메모리보다 증가된 성능을 갖는 휘발성 메모리일 수 있다. 추가의 예로서, 이종의 메모리 시스템에서 다른 동종의 메모리는 리프레시를 위해 전력을 요구하지 않지만, 휘발성 메모리보다 감소된 성능을 갖는 비-휘발성 메모리일 수 있다. 이것에 관하여, 메모리 액세스 요청은 유리하게는, 메모리 액세스 요청 및 전력 및/또는 성능 고려사항들에 기초하여 이종의 메모리 시스템 내의 동종의 메모리들 중 하나로 라우팅될 수 있다. 이종의 메모리 액세스 요청 정책들은 비-제한적인 예들로서 판독/기록 타입, 페이지 히트들의 빈도 및 메모리 트래픽과 같은 핵심적인 동작 파라미터들에 기초하여 동적으로 결정되거나 미리 정의될 수 있다. 이러한 방식으로, 메모리 액세스 요청 시간들은, 저장을 위해 이용 가능한 단지 하나의 메모리 타입을 갖는 것과 연관되는 트래이드오프들을 형성할 필요 없이 최적화될 수 있다.
[0006] 이것에 관하여, 일 실시예에서, 버스 상호연결부 아비터가 제공된다. 버스 상호연결부 아비터는 프로세서-기반 시스템 내의 이종의 메모리 시스템으로 버스 상호연결부에서 메모리 액세스 요청들을 라우팅하도록 구성된다. 버스 상호연결부 아비터는 요청 디바이스로부터 메모리 액세스 요청을 수신하도록 구성된다. 버스 상호연결부 아비터는 추가로 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하도록 구성되며, 여기서 복수의 이종의 메모리 액세스 요청 정책들 중의 각각의 이종의 메모리 액세스 요청 정책은 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내에서 동종의 메모리에 대응한다. 버스 상호연결부 아비터는 추가로, 결정된 메모리 액세스 요청 정책에 대응하는, 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 동종의 메모리로 메모리 액세스 요청을 라우팅하도록 구성된다.
[0007] 또한, 그렇지 않았다면, 동종의 메모리 시스템일 수 있었을 수 있는 이종의 메모리 시스템을 제공함으로써, 시스템 설계는 단일의 동종의 메모리로 제한함 없이 이종의 메모리 시스템 내의 각각의 고유한 동종의 메모리의 고유한 전력 및 성능 특성을 이용할 수 있다. 또한, 이종의 메모리 시스템 내의 동종의 메모리들은 동일한 버스 상호연결부에 커플링되기 때문에, 이종의 메모리 시스템을 제공하는 것은 메모리 액세스 요청들의 요청 디바이스에 대해 투명할 수 있다. 즉, 요청 디바이스는 메모리 요청들에 대한 이전의 지식 또는 특별한 세팅들을 요구하지 않는 메모리 액세스 요청들을 제공할 수 있다. 이는 본 명세서에서 개시된 이종의 메모리 시스템을 이용하는 프로세서-기반 시스템 및/또는 프로세서-기반 시스템의 버스 상호연결부 상에서 메모리 액세스 요청들을 제공하는 요청 디바이스들 중 어느 하나의 아키텍처 변화도 요구하지 않는 부가적인 이점을 가질 수 있다.
[0008] 다른 실시예에서, 프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터가 제공된다. 버스 상호연결부 아비터는 요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청을 수신하기 위한 수단을 포함한다. 버스 상호연결부 아비터는 또한 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하기 위한 수단을 포함하고, 여기서 상기 복수의 이종의 메모리 액세스 요청 정책들 중의 각각의 이종의 메모리 액세스 요청 정책은 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 동종의 메모리에 대응한다. 버스 상호연결부 아비터는 또한 결정된 메모리 액세스 요청 정책에 대응하는 버스 상호연결부에 커플링되는, 이종의 메모리 시스템 내의 동종의 메모리에 메모리 액세스 요청을 라우팅하기 위한 수단을 포함한다.
[0009] 다른 실시예에서, 프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템이 제공된다. 이종의 메모리 시스템은 버스 상호연결부에서 메모리 액세스 요청들을 수신하도록 구성된 메모리 제어기를 포함하며, 이 메모리 제어기는 제 1 메모리 채널 및 제 2 메모리 채널을 갖는다. 제 1 동종의 메모리가 메모리 제어기의 제 1 메모리 채널에 커플링되며, 여기서 상기 제 1 동종의 메모리는 휘발성 메모리로 구성된다. 제 2 동종의 메모리가 메모리 제어기의 제 2 메모리 채널에 커플링되며, 여기서 상기 제 2 동종의 메모리는 버스 상호연결부에서 비-휘발성 메모리로 구성된다. 메모리 제어기는 추가로, 제 1 동종의 메모리 또는 제 2 동종의 메모리 중 어느 하나로 메모리 액세스 요청들을 라우팅하도록 구성된다.
[0010] 다른 실시예에서, 프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템이 제공된다. 이종의 메모리 시스템은 메모리 제어기를 포함한다. 메모리 제어기는 버스 상호연결부에서 메모리 액세스 요청들을 수신하기 위한 수단을 포함하며, 이 메모리 제어기는 제 1 메모리 채널 및 제 2 메모리 채널을 갖는다. 메모리 제어기는 또한, 버스 상호연결부에서 메모리 제어기의 제 1 메모리 채널에 커플링되는 제 1 동종의 메모리 또는 메모리 제어기의 제 2 메모리 채널에 커플링되는 제 2 동종의 메모리 중 어느 하나에 메모리 액세스 요청들을 라우팅하기 위한 수단을 포함하고, 제 1 동종의 메모리는 휘발성 메모리로 구성되고, 제 2 동종의 메모리는 비-휘발성 메모리로 구성된다.
[0011] 다른 실시예에서, 프로세서-기반 시스템이 제공된다. 프로세서-기반 시스템은 적어도 하나의 요청 디바이스에 커플링되는 버스 상호연결부로 구성된다. 버스 상호연결부는 적어도 하나의 요청 디바이스로부터 이종의 메모리 시스템으로 수신된 메모리 액세스 요청들을 라우팅하도록 구성되는 버스 상호연결부 아비터를 포함한다. 프로세서-기반 시스템은 또한 버스 상호연결부에 커플링되는 제 1 동종의 메모리 시스템을 포함하고, 이 제 1 동종의 메모리 시스템은 휘발성 메모리로 구성된다. 프로세서-기반 시스템은 추가로 버스 상호연결부에 커플링되는 제 2 동종의 메모리 시스템을 포함하고, 이제 2 동종의 메모리 시스템은 비-휘발성 메모리로 구성된다. 버스 상호연결부 아비터는 적어도 하나의 요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청들을 수신하도록 구성된다. 버스 상호연결부 아비터는 또한 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하도록 구성되고, 복수의 이종의 메모리 액세스 요청 정책들 중의 각각의 이종의 메모리 액세스 요청 정책은 버스 상호연결부에 커플링되는 제 1 동종의 메모리 시스템 또는 제 2 동종의 메모리 시스템 중 어느 하나에 대응한다. 버스 상호연결부 아비터는 추가로 결정된 메모리 액세스 요청 정책에 대응하는 버스 상호연결부에 커플링되는 제 1 동종의 메모리 시스템 또는 제 2 동종의 메모리 시스템 중의 동종의 메모리에 메모리 액세스 요청들을 라우팅하도록 구성된다.
[0012] 다른 실시예에서, 프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법이 제공된다. 이 방법은 요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청을 수신하는 단계를 포함한다. 이 방법은 또한 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하는 단계를 포함하고, 이 복수의 이종의 메모리 액세스 요청 정책들 중의 각각의 이종의 메모리 액세스 요청 정책은 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 동종의 메모리에 대응한다. 이 방법은 또한 메모리 액세스 요청 정책에 대응하는 버스 상호연결부에 커플링되는 이종의 메모리 시스템의 동종의 메모리에 메모리 액세스 요청을 라우팅하는 단계를 포함한다.
[0013] 다른 실시예에서, 컴퓨터-실행 가능한 명령들이 저장되어 있는 컴퓨터-판독 가능한 매체가 제공되며, 컴퓨터-실행 가능한 명령들은, 프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터로 하여금, 요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청을 수신하게 하기 위한 것이다. 컴퓨터-실행 가능한 명령들은, 버스 상호연결부 아비터로 하여금, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하게 하도록 구성되며, 이 복수의 이종의 메모리 액세스 요청 정책들 중의 각각의 이종의 메모리 액세스 요청 정책은 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 동종의 메모리에 대응한다. 컴퓨터-실행 가능한 명령들은 추가로, 버스 상호연결부 아비터로 하여금, 메모리 액세스 요청 정책에 대응하는, 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 동종의 메모리에 메모리 액세스 요청을 라우팅하게 하도록 구성된다.
[0014] 도 1은 버스 상호연결부 상에서 송신되는 마스터 디바이스들로부터의 메모리 액세스 요청들에 대한 이종의 메모리 액세스들을 제공할 수 있는 이종의 메모리 시스템을 포함하는 예시적인 프로세서-기반 시스템의 블록도이다.
[0015] 도 2는 메모리 액세스 요청을 위해 이종의 메모리 시스템에서 어느 메모리를 활용할지를 결정하기 위한 예시적인 메모리 액세스 요청 정책들을 예시하는 예시적인 이종의 메모리 액세스 요청(MAR) 정책 차트이다.
[0016] 도 3은 도 1의 프로세서-기반 시스템을 포함(그러나 이들로 제한되지 않음)하는 프로세서-기반 시스템에서 이종의 메모리 시스템에 대한 메모리 액세스 요청들의 예시적인 프로세싱을 예시하는 흐름도이다.
[0017] 도 4는 메모리 액세스 요청들을 위해 이종의 메모리 시스템 내의 동종의 메모리에 대한 액세스를 각각 제어하는 다수의 메모리 제어기들을 이용하는 이종의 메모리 시스템을 포함하는 다른 예시적인 프로세서-기반 시스템의 블록도이다.
[0018] 도 5는 복수의 요청 디바이스들로부터 이종의 메모리 시스템에 대한 메모리 액세스 요청들을 통신 및 프로세싱하는데 관여되는 버스 상호연결부 아비터를 포함하는 예시적인 회로의 블록도이다.
[0019] 도 6은 이종의 메모리 시스템을 포함하는 프로세서-기반 시스템에서 마스터 디바이스로부터 수신되는 메모리 액세스 요청들에 대한 메모리 액세스 요청 정책 초기화를 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
[0020] 도 7은 도 1 및 도 4의 프로세서-기반 시스템들을 포함(그러나 이들로 제한되지 않음)하는 프로세서-기반 시스템에서 이종의 메모리 시스템에 대한 메모리 액세스 요청들을 프로세싱하기 위한 보다 상세한 예시적인 프로세스의 흐름도이다.
[0021] 도 8a는 동작 메모리 액세스 요청 모드를 표시하기 위한 예시적인 상태 표시자이다.
[0022] 도 8b는 메모리 액세스 요청 정책 초기화들을 제공하기 위해 마스터 디바이스들에 의해 활용되는 예시적인 이종의 메모리 액세스 요청(MAR) 정책 메시지 블록이다.
[0023] 도 8c는 메모리 액세스 요청 정책들을 저장하기 위한 예시적인 이종의 메모리 액세스 요청(MAR) 정책 테이블이다.
[0024] 도 9a는 이종의 메모리 시스템을 포함하는 프로세서-기반 시스템에서 버스 상호연결부로 마스터 디바이스에 의해 제공되는 예시적인 메모리 액세스 요청(MAR) 메시지 블록들의 도면이다.
[0025] 도 9b는 이종의 메모리 시스템을 포함하는 프로세서-기반 시스템에서 메모리 액세스 요청들을 라우팅하기 위해 버스 상호연결부에서 이용되는 예시적인 메모리 액세스 요청(MAR) 큐의 도면이다.
[0026] 도 10은 이종의 메모리 시스템에서 메모리 액세스 기록 요청을 위한 정적 메모리 액세스 요청 정책을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
[0027] 도 11a는 이종의 메모리 시스템에서 메모리 액세스 요청에 대한 동적 메모리 액세스 기록 요청 정책을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
[0028] 도 11b는 유효 동적 메모리 액세스 요청 정책 프로파일이 도 11a의 예시적인 프로세스에서 존재하지 않는 것으로 결정되는 경우 이종의 메모리 시스템에서 메모리 액세스 요청에 대한 디폴트 메모리 액세스 기록 요청 정책을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
[0029] 도 12는 이종의 메모리 시스템을 포함하는 프로세서-기반 시스템에서 메모리 액세스 판독 요청을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
[0030] 도 13은 동적 메모리 액세스 요청 정책들을 결정하기 위한 동적 동작 프로파일링을 수행하기 위한 예시적인 프로세스의 흐름도이다.
[0031] 도 14는 동적 메모리 액세스 요청 프로파일 정책들을 결정하기 위한 예시적인 메모리 액세스 요청(MAR) 동적 프로파일 표이다.
[0032] 도 15는 도 1 및 도 4의 이종의 메모리 시스템들을 포함(그러나 이들로 제한되지 않음)하는 이종의 메모리 시스템을 포함하는 예시적인 프로세서-기반 시스템의 블록도이다.
[0033] 도면 그림들을 이제 참조하여, 본 개시의 몇 개의 예시적인 실시예들이 설명된다. "예시적인"이란 단어는 "예, 보기 또는 예시로서 작용하는 것"을 의미하도록 본 명세서에서 이용된다. "예시적인" 것으로서 본 명세서에서 설명되는 임의의 실시예는 반드시 다른 실시예들보다 선호되거나 유리한 것으로서 해석되는 것은 아니다.
[0034] 상세한 설명에서 개시되는 실시예들은 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들을 포함한다. 이종의 메모리 시스템은 주어진 메모리 액세스 요청에 대해 액세스될 수 있는 복수의 동종의 메모리들로 구성된다. 각각의 동종의 메모리는 특정한 전력 및 성능 특성을 갖는다. 예를 들어, 이종의 메모리 시스템 내의 하나의 동종의 메모리는 리프레시를 위한 전력을 요구하지만 비-휘발성 메모리보다 증가된 성능을 갖는 휘발성 메모리일 수 있다. 다른 예로서, 이종의 메모리 시스템 내의 다른 동종의 메모리는 리프레시를 위한 전력을 요구하지 않지만 휘발성 메모리보다 감소된 성능을 갖는 비-휘발성 메모리일 수 있다. 이것에 관하여, 메모리 액세스 요청은 유리하게는, 메모리 액세스 요청 및 전력 및/또는 성능 고려사항들에 기초하여 이종의 메모리 시스템 내의 동종의 메모리들 중 하나로 라우팅될 수 있다. 이종의 메모리 액세스 요청 정책들은, 비-제한적인 예들로서, 판독/기록 타입, 페이지 히트들의 빈도 및 메모리 트래픽과 같은 핵심적인 동작 파라미터들에 기초하여 동적으로 결정되거나 미리 정의될 수 있다. 이러한 방식으로, 메모리 액세스 요청 횟수들은, 저장을 위해 이용 가능한 단지 하나의 메모리 타입만을 갖는 것과 연관되는 트래이드오프(tradeoff)들을 형성할 필요 없이, 감소되도록 최적화될 수 있다.
[0035] 이것에 관하여, 도 1은 예시적인 프로세서-기반 시스템(10)을 예시한다. 이 실시예에서, 프로세서-기반 시스템(10)은 버스 상호연결부(16)에 커플링되는 복수의 마스터 디바이스들(12(0-M)) 및 복수의 슬래이브 디바이스들(14(0-N))을 포함한다. 버스 상호연결부(16)는 버스 상호연결부(16)의 마스터 포트들(18(0-M))에 커플링되는 복수의 마스터 디바이스(12(0-M)) 중 하나 이상으로부터의 메모리 액세스 요청들을 수신하여 슬래이브 포트들(20(0-N))을 통해 버스 상호연결부(16)에 커플링되는 복수의 슬래이브 디바이스들(14(0-N)) 중 임의의 것으로 라우팅한다. 비-제한적인 예로서, 복수의 마스터 디바이스들(12(0-M)), 복수의 슬래이브 디바이스들(14(0-N)), 및 버스 상호연결부(16)는 반도체 다이(22)에 제공될 수 있고 원하는 경우 SOC(system-on-a-chip) 집적 회로 설계에 제공될 수 있다.
[0036] 도 1을 계속 참조하여, 버스 상호연결부 아비터(24)는 버스 상호연결부(16) 내부에 또는 외부에 제공될 수 있다. 버스 상호연결부 아비터(24)는 마스터 디바이스들(12(0-M))로부터 슬래이브 디바이스들(14(0-N))로의 다수의 통신 요청들을 중재하기 위해 이 실시예에서 버스 상호연결부(16)에 제공된다. 마스터 디바이스들(12(0-M)) 및 슬래이브 디바이스들(14(0-N))은 요구되는 임의의 타입의 전자 디바이스 또는 서브시스템 일 수 있다. 도 1에서 예시된 바와 같이 마스터 디바이스들(12(0-M))은 중앙 처리 장치(CPU)(12(0)), 모바일 데이터 모뎀(MDM)(12(1)), 그래픽 처리 장치(GPU)(12(2)), 미니 디스플레이 포트(MDP)(12(3)), 카메라(12(4)), 및 H.264(고해상도 비디오 압축 인코더)(12(M))을 제한 없이 포함하는 임의의 타입의 전자 디바이스일 수 있다.
[0037] 마스터 디바이스들(12(0-M))의 일 예는 프로세서-기반 시스템(10)의 동작을 위한 데이터 및 명령들 둘 다를 저장하도록 구성된 메모리 시스템인 이종의 메모리 시스템(26)이다. 이종의 메모리 시스템(26)은 마스터 디바이스들(12(0-M))에 의해 주어진 메모리 액세스 요청에 대해 액세스될 수 있는 복수의 동종의 메모리들(28(0-A))로 구성된다. 동종의 메모리는 공통 전력 및/또는 성능 특성들을 갖는 특정한 메모리 타입이다. 이종의 메모리 시스템은 적어도 2개의 상이한 타입들의 동종의 메모리를 포함한다. 아래에서 보다 상세히 논의되는 바와 같이, 도 1의 이종의 메모리 시스템(26)의 각각의 동종의 메모리(28(0-A))는 특정한 전력 및 성능 특성을 갖는다. 예를 들어, 이종의 메모리 시스템(26) 내의 하나의 동종의 메모리(28(0))는 리프레시를 위한 전력을 요구하지만 비-휘발성 메모리보다 증가된 성능을 갖는 휘발성 메모리일 수 있다. 추가의 예로서, 이종의 메모리 시스템(26) 내의 다른 동종의 메모리(28(A))는 리프레시를 위한 전력을 요구하지 않지만 휘발성 메모리보다 감소된 성능을 가질 수 있는 비-휘발성 메모리일 수 있다. 이것에 관하여, 마스터 디바이스들(12(0-M))로부터의 메모리 액세스 요청은 유리하게는, 프로세서-기반 시스템(10)에서, 메모리 액세스 요청 및 전력 및/또는 성능 고려사항들에 기초하여 이종의 메모리 시스템(26)의 동종의 메모리들(28(0-A)) 중 하나로 라우팅될 수 있다.
[0038] 도 1을 계속 참조하면, 버스 상호연결부 아비터(24)는 마스터 디바이스들(12(0-M))로부터 메모리 액세스 요청들을 수신한다. 버스 상호연결부 아비터(24)는 메모리(32)에 커플링되는 메모리 제어기(30)를 포함하는 이종의 메모리 시스템(26)으로 메모리 액세스 요청들을 지향시킨다. 메모리(32)는 추가로 복수의 동종의 메모리들(28(0-A))을 포함한다. 메모리(32)는 2개의 버스들(DATA 및 ADDR/CTRL) 및 클록 신호(CLK)를 통해 메모리 제어기(30)에 커플링된다. 데이터 버스(DATA)는 메모리(32)로 그리고 메모리(32)로부터 데이터를 전달하도록 메모리 제어기(30)에 의해 이용된다. 어드레스 및 제어 버스(ADDR/CTRL)는 메모리(32)를 선택 및 제어하는데 이용되고, 클록 신호(CLK)는 데이터 버스(DATA) 및 어드레스 및 제어 버스(ADDR/CTRL) 둘 다를 타이밍시키는데 이용된다. 버스 상호연결부 아비터(24)는 복수의 이종의 메모리 액세스 요청 정책들에 기초하여 메모리 액세스 요청들을 지향시킨다. 아래에서 논의될 바와 같이, 이들 이종의 메모리 액세스 요청 정책들은 성능 요건들, 메모리 트래픽 패턴들, 페이지 히트비들(page hit ratios), 에너지 이용 요건들, 또는 다른 동작적으로 관련된 요건들에 기초할 수 있다.
[0039] 도 1을 계속 참조하면, 이종의 메모리 시스템(26)은, 마스터 디바이스들(12(0-M)) 중 임의의 것이 이종의 메모리 시스템(26)의 메모리(32)에 판독 및 기록 메모리 액세스 요청들을 제공하고 판독 및 기록 응답들을 수신하도록 허용하기 위해 버스 상호연결부(16)에 연결된다. 이것에 관하여, 이종의 메모리 시스템(26)은 버스 상호연결부(16)를 메모리(32)와 인터페이싱하는 메모리 제어기(30)를 포함한다. 메모리 제어기(30)는 또한 이종의 메모리 시스템(26)으로 예정된, 버스 상호연결부(16)를 통해 마스터 디바이스들(12(0-M))에 의해 제공되는 메모리 액세스 요청에 응답하여 메모리(32)로의 그리고 메모리(32)로부터의 데이터의 흐름을 제어한다. 메모리 버스(34)는 메모리(32)를 메모리 제어기(30)와 인터페이싱시키도록 제공된다. 복수의 동종의 메모리들(28(0-A)) 각각은 메모리 액세스 요청들에 대해 메모리 제어기(30)에 의해 개별적으로 선택된 별개의 메모리 칩일 수 있다. 동종의 메모리들(28(0-A))은 추가로 복수의 휘발성 동종의 메모리들(28(0)) 및 복수의 비-휘발성 동종의 메모리들(28(A))로서 구성될 수 있다. 위에서 논의된 바와 같이, 메모리(32)는 휘발성 또는 비-휘발성 메모리와 같은(그러나 이들로 제한되지 않음) 동종의 메모리 타입들로 이루어지는 복수의 동종의 메모리들(28(0-A))을 포함한다.
[0040] 버스 상호연결부 아비터(24)는 결정된 이종의 메모리 액세스 요청(MAR) 정책(도시되지 않음)에 기초하여 마스터 디바이스들(12(0-M))로부터 이종의 메모리 시스템(26)으로 수신된 메모리 액세스 요청 트랜잭션들을 라우팅하도록 구성된다. 이종의 MAR 정책의 목적은 이종의 메모리 시스템(24) 내의 복수의 동종의 메모리들(28(0-A))로부터 동종의 메모리들(28)의 선택을 가능케 한다. 메모리 액세스 요청에 대해 어느 동종의 메모리들(28)을 선택할지에 관한 판단은 이종의 MAR 정책에 기초한다. 이종의 MAR 정책은 동종의 메모리들(28)을 선택하기 위한 필수 정보 또는 기준들을 포함할 수 있다.
[0041] 또한, 그렇지 않았다면, 동종의 메모리 시스템일 수 있었을 수 있는 이종의 메모리 시스템(24)을 제공함으로써, 프로세서-기반 시스템(10) 설계는 단일의 동종의 메모리로 제한함 없이 이종의 메모리 시스템(24) 내의 각각의 고유한 동종의 메모리(28)의 고유한 전력 및 성능 특성을 이용할 수 있다. 또한, 이종의 메모리 시스템(24) 내의 동종의 메모리들(28)은 이 실시예에서 동일한 버스 상호연결부(16)에 커플링되기 때문에, 이종의 메모리 시스템(24)은 메모리 액세스 요청들을 제공하는 마스터 디바이스들(12(0-M))에 대해 투명할 수 있다. 즉, 요청 디바이스들(12(0-M))은 메모리 요청들의 이전의 지식 또는 특별한 세팅들을 요구하지 않는 메모리 액세스 요청들을 제공할 수 있다. 이는 프로세서-기반 시스템(10)의 버스 상호연결부(16)에 커플링되는 동종의 메모리만을 제공하는 것보다, 이종의 메모리 시스템(28) 또는 요청 디바이스들(12(0-M))을 이용하는 프로세서-기반 시스템(20)에서 아키텍처 변화를 요구하지 않는 부가적인 이점을 가질 수 있다.
[0042] 버스 상호연결부 아비터(24)는 이종의 MAR 정책을 결정하지만, 메모리 제어기(30)는 이 실시예에서 결정된 정책을 구현하도록 구성된다. 이 실시예에서, 이종의 MAR 정책은 정적 또는 동적 이종의 MAR 정책에 기초할 수 있다. 정적인 이종의 MAR 정책은 현재 동적 또는 실행-시간 동작 파라미터들에 기초하지 않는 미리 정의된 MAR 정책이다. 아래에서 보다 상세히 논의되는 바와 같이, 도 1의 버스 상호연결부 아비터(24)는 요청 디바이스 또는 마스터 디바이스들(12(0-M))의 타입에 기초하여, 이종의 메모리 시스템(26) 내의 복수의 동종의 메모리들(28(0-A)) 중 어느 것으로 메모리 액세스 요청들을 라우팅할지를 결정하는데 이용하기 위해 디폴트 및 정적 이종의 메모리 액세스 요청 정책들을 저장하기 위한 이종의 MAR 정책 테이블(36)을 갖도록 구성된다. 동적인 이종의 MAR 정책은 애플리케이션 우선순위들, 페이지 히트비들, 전력 우선순위들, 판독/기록 우선순위들, 메모리 트래픽 요건들 등과 같은(그러나 이들로 제한되지 않음) 시스템 동작 특성들에 기초한다. 아래에서 논의될 바와 같이, 마스터 디바이스(12(0-M)) 및 버스 상호연결부 아비터(24)는 동적인 이종의 MAR 정책을 결정하고 제공하도록 구성될 수 있다. 도 1에서 예시된 바와 같이, 버스 상호연결부 아비터(24)는 또한 동적인 이종의 메모리 액세스 요청 정책들을 결정하는데 있어 이용될, 마스터 디바이스들(12(0-M))에 대한 유효한 이종의 메모리 액세스 요청 프로파일들을 저장하는 MAR 동적 프로파일 테이블(38)을 갖도록 또한 구성된다.
[0043] 메모리 액세스 요청의 특성은 물론, 프로세서-기반 시스템의 다른 동작 파라미터들은, 메모리 액세스 요청이 어느 동종의 메모리로 유리하게 라우팅될 수 있는지를 결정하는데 이용될 수 있다. 이것에 관하여, 도 2는 메모리 액세스 요청 트랜잭션을 위해 복수의 동종의 메모리들(28(0-A))(도 1에서 도시됨) 중 어느 것을 이용할지 결정하는데 이용되는 예시적인 이종의 MAR 정책들(40)을 예시한다. 일 예로서, 순차적인 메모리 액세스들은 더 높은 메모리 페이지 히트비를 가질 수 있다. 더 높은 메모리 트래픽 상황들에서, (도 2의 블록(42)에서 도시된 바와 같이) 더 높은 판독/기록 속도들, 더 큰 페이지 크기 및 더 느린 열기/닫기 속도들의 메모리 성능 특성들을 갖는 휘발성 메모리에 액세스하는 이종의 메모리 액세스 요청 정책을 이용하는 것이 유리할 수 있다. 더 낮은 메모리 트래픽 상황들에서, 성능에 부여된 우선순위에 기초하여 휘발성 또는 비-휘발성 메모리에 액세스하는 것이 유리할 수 있다. 우선순위가 성능에 부여되는 경우, 비-휘발성 메모리보다 나은 그의 성능 이익을 위해 휘발성 메모리에 액세스하도록 하는 이종의 메모리 액세스 요청 정책(블록(44))을 이용하는 것이 유리할 수 있다. 우선순위가 성능에 부여되지 않는 경우, 휘발성 메모리보다 나은 그의 전력 소비 이익들을 위해 비-휘발성 메모리에 액세스하도록 하는 이종의 메모리 액세스 요청 정책(블록(46))을 이용하는 것이 유리할 수 있다.
[0044] 도 2를 계속 참조하면, 다른 예로서, 랜덤 메모리 액세스들이 더 낮은 메모리 페이지 히트비들을 가질 수 있다. 더 낮은 메모리 트래픽 상황들에서, 더 높은 성능 특성들이 요구되지 않을 수 있으므로, 더 낮은 전력 소비로부터 이익들 얻기 위해 더 낮은 판독/기록 속도들 및 더 빠른 열기/닫기 속도들의 특성들을 갖는 비-휘발성 메모리에 액세스하는 이종의 메모리 액세스 요청 정책(블록(48))을 이용하는 것이 유리할 수 있다. 더 높은 메모리 트래픽 상황들에서, 전력 소비 효율에 부여되는 우선순위에 기초하여 비-휘발성 또는 휘발성 메모리에 액세스하는 것이 유리할 수 있다. 전력 소비 효율 보단 성능에 우선순위가 부여되는 경우, 비-휘발성 메모리 보다 나은 그의 성능 이익을 위해 휘발성 메모리에 액세스하도록 하는 이종의 메모리 액세스 요청 정책(블록(50))을 이용하는 것이 유리할 수 있다. 우선순위가 전력 소비 효율에 부여되는 경우, 휘발성 메모리 보다 나은 그의 전력 소비 이익을 위해 비-휘발성 메모리에 액세스하도록 하는 이종의 메모리 액세스 요청 정책(블록(52))을 이용하는 것이 유리할 수 있다.
[0045] 도 3은 이종의 MAR 정책들(40)(도 2에서 도시됨)에 기초하여 메모리 액세스 요청 트랜잭션을 평가 및 프로세싱하기 위해 도 1의 프로세서-기반 시스템(10)에서 버스 상호연결부 아비터(24)에 의해 수행될 수 있는 예시적인 프로세스를 예시하는 흐름도이다. 이 프로세스에서, 버스 상호연결부 아비터(24)는 다음의 메모리 액세스 요청(블록(54))을 수신한다. 메모리 액세스 요청은 이 실시예에서, 정적 메모리 액세스 요청자 또는 동적 메모리 액세스 요청인 것으로 결정된다. 메모리 액세스 요청이 정적 메모리 액세스 요청인 경우, 정적 MAR 정책이 메모리 액세스 요청에 대해 결정된다(블록(56)). 그 후, 메모리 액세스 요청은 결정된 정적 MAR 정책(블록(58))에 기초하여 이종의 메모리 시스템(26) 내의 동종의 메모리(28)(도시되지 않음)로 라우팅될 것이다. 메모리 액세스 요청이 동적 메모리 액세스 요청인 경우, 동적 MAR 정책은 동적 메모리 액세스 요청에 대해 결정된다(블록(60)). 그 후, 메모리 액세스 요청은 결정된 동적 MAR 정책(블록(58))에 기초하여 이종의 메모리 시스템(26) 내의 특정한 동종의 메모리(28)(도시되지 않음)로 라우팅될 것이다.
[0046] 도 1의 이종의 메모리 시스템(26) 외에도, 이종의 메모리 시스템들의 다른 구성들이 가능하다. 예를 들어, 도 4는 도 1의 프로세서-기반 시스템(10)과 유사하지만, 도 1의 이종의 메모리 시스템(26)에 대한 대안적인 이종의 메모리 시스템(64)을 포함하는 다른 프로세서-기반 시스템(10')을 예시한다. 도 1과 도 4 간의 공통적인 컴포넌트들은 동일한 엘리먼트 번호를 이용하며 다시 설명되지 않을 것이다. 도 4의 이종의 메모리 시스템(64)에서, 다수의 동종의 메모리 시스템들(66)(0-M))이 제공되며, 각각은 전용 메모리 제어기(68)를 갖는다. 동종의 메모리 시스템들(66)(0-M))의 각각의 메모리 제어기(68)는, 도 1의 이종의 메모리 시스템(26)과 달리 각각의 동종의 메모리 시스템들(70(0-M))을 제어하도록 구성된다. 따라서, 도 4의 메모리 제어기들(68)은 메모리 액세스 요청들에 인가될 이종의 MAR 정책을 결정하지 않는다. 이 실시예에서, 버스 상호연결부 아비터(24)는 메모리 액세스 요청들에 대해 적용될 이종의 MAR 정책을 결정한다. 버스 상호연결부 아비터(24)는 동종의 메모리 시스템들(66)(0-M)) 중 적절한 하나를 나타내는 특정 원하는 슬래이브 포트(20(0))에 메모리 액세스 요청들을 라우팅함으로써 결정된 이종의 MAR 정책을 구현한다. 메모리 액세스 요청이 동종의 메모리 시스템들(66)(0-M)) 중 적절한 하나에 의해 수신되면, 메모리 액세스 요청은 단순히, 동종의 메모리 시스템들(66)(0-M))의 메모리 제어기(68)에 의해, 메모리 액세스 요청의 메모리 어드레스에 기초하여 전용 메모리 제어기(68)에 커플링되는 동종의 메모리 시스템들(70(0-M))에 라우팅된다.
[0047] 도 5는 도 1의 버스 상호연결부(16)의 보다 상세한 예를 예시하며, 메모리 액세스 요청들을 비롯해서, 마스터 디바이스들로부터 슬래이브 디바이스들로 버스 트랜잭션들을 라우팅하기 위한 예시적인 라우팅 자원들을 예시한다. 버스 상호연결부 아비터(24)는 버스 상호연결부(16)에 커플링되는 마스터 디바이스들(12(0-M)) 및 슬래이브 디바이스들(14(0-N)) 간에 버스 트랜잭션들을 중재한다. 도 1의 버스 상호연결부 아비터(24)는 이종의 MAR 정책(40)을 결정하고 슬래이브 포트들(20(0-N)) 중 하나에 메모리 액세스 요청을 라우팅한다. 슬래이브 포트(20(0-N))에 커플링되는 도 1의 메모리 제어기(30)는 라우팅된 메모리 액세스 요청을 수신해야 하는 동종의 메모리들(28(0-A))을 결정한다. 도 4의 대안적인 이종의 프로세서-기반 시스템(10')에서, 버스 상호연결부 아비터(24)는 이종의 MAR 정책(40)을 결정하고 메모리 액세스 요청이 결정된 이종의 MAR 정책(40)에 기초하여 라우팅되는 슬래이브 포트(20(0-N))를 선택할 것이다. 대안적인 이종의 프로세서-기반 시스템(10')의 차이는, 버스 상호연결부 아비터(24)가 메모리 액세스 요청을 결정된 슬래이브 포트(20(0-N))에 라우팅할 것이고, 메모리 제어기(68)는 추가로 동종의 메모리 시스템들(70(0-M))에 라우팅할 것이라는 점이다. 도 1 및 도 4에서 예시된 바와 같이, 마스터 포트들(18(0-M))에 커플링되는 마스터 포트 버스들(72(0-M))을 통해 버스 상호연결부(16)와 마스터 디바이스들(12(0-M)) 간의 통신이 지원된다. 유사하게, 슬래이브 포트들(20(0-N))에 커플링되는 슬래이브 포트 버스들(74(0-N))을 통해 버스 상호연결부(16)와 슬래이브 디바이스들(14(0-N)) 간의 통신이 지원된다. 버스 상호연결부(16)는 예들로서, 원하는 슬래이브 디바이스들(14(0-N))과 원하는 마스터 디바이스들(12(0-M)) 간에 통신 경로를 설정하도록 구성 가능한, 게이트들, 래치들, 및 레지스터들과 같은 클로킹된 회로(clocked circuitry)를 포함한다. 예를 들어, 도 4에서 예시된 바와 같이, 버스 상호연결부(16)에 제공된 예시적인 컴포넌트들은 슬래이브 디바이스들(14(0-N)) 중 하나와 마스터 디바이스들(12(0-M)) 중 하나 간의 통신 경로를 제공하도록 구성 가능하다.
[0048] 도 5를 계속 참조하면, 마스터 포트들(18(0-M))은 각각 마스터 디바이스들(12(0-M))로부터 버스 트랜잭션들을 수신하기 위해 마스터 포트 버스들(72(0-M))에 연결된 마스터 포트 인터페이스들(76(0-M))을 포함한다. 마스터 포트 큐들(78(0-M))은 마스터 포트 큐들(78(0-M))과 슬래이브 포트 큐들(80(0-N)) 간의 버스 트랜잭션들을 중재하기 위해 버스 상호연결부 아비터(24)에 제공되는 버스 트랜잭션들 또는 커맨드들을 저장하도록 제공된다. 버스 상호연결부 아비터(24)는 슬래이브 디바이스들(14(0-N))에 대한 버스 트랜잭션들을 중재하기 위해 슬래이브 포트들(20(0-N))과 연관되는 별개의 어드레싱 아비터(82) 및 슬래이브 포트들(20(0-N))로부터 발생하는 판독 데이터 및 기록 완료 응답들을 중재하기 위해 마스터 포트들(18(0-M))에 연관되는 데이터(판독/기록) 아비터(84)를 포함할 수 있다. 슬래이브 포트 큐들(80(0-N))은 슬래이브 포트 버스들(74(0-N))에 연결되는 슬래이브 포트 인터페이스들(86(0-N))에 버스 트랜잭션들을 제공한다. 도 5가 마스터 디바이스들(12(0-M)) 중 하나에 커플링되는 마스터 포트들(18(0-M)) 중 하나와 슬래이브 디바이스들(14(0-N)) 중 하나에 커플링되는 슬래이브 포트들(20(0-N)) 중 하나 간의 통신 경로를 예시하지만, 어드레싱 아비터(82) 및 데이터(판독/기록) 아비터(84)는 마스터 포트들(18(0-M))과 슬래이브 포트들(20(0-N)) 간에 버스 상호연결부(16)에 의해 가능하게 되는 통신 경로들을 중재하도록 구성될 수 있다는 것에 주의한다.
[0049] 도 5를 계속 참조하면, 카운터들(88(0-N))은 각각의 슬래이브 포트(20(0-N))에 대해 또한 제공될 수 있다. 카운터들(88(0-N))은 각각 슬래이브 포트 인터페이스들(86(0-N))에 의해 완료되는 트랜잭션들을 카운팅한다. 카운터들(88(0-N))은 버스 상호연결부 아비터(24)에 카운트 및 시스템 동작 정보를 제공할 수 있어서, 버스 상호연결부 아비터(24)는 MAR 동적 프로파일 테이블(38)에 유효 동적 프로파일 정보를 입력할 수 있다. 버스 상호연결부 아비터(24)는 추가로 MAR 동적 프로파일 테이블(38) 내의 유효 메모리 액세스 요청(MAR) 동적 프로파일 정보에 기초하여 정책 결정을 내리도록 구성된다. 예를 들어, 버스 상호연결부 아비터(24)는, 메모리 액세스 요청 트랜잭션의 완료가 스케줄보다 앞서는지, 스케줄대로인지, 또는 데드라인 뒤인지를 평가하기 위해 카운터들(88(0-N))을 이용하고, 응답하여 메모리 액세스 요청 트랜잭션들에 대한 버스 중재 정책을 적용할 수 있다. 도 6 내지 도 15는 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들의 예시적인 프로세스들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들에 관한 보다 많은 특이사항들 및 세부사항들을 예시한다.
[0050] 전력이 공급되거나 에너지가 다시 가해질 때, 프로세서-기반 시스템은 정상 동작들을 시작하도록 준비되어야 한다. 도 1의 프로세서-기반 시스템(10)의 경우에, 초기 및 디폴트의 이종의 메모리 액세스 요청 정책을 설정하는 것이 필수적이다. 프로세서-기반 시스템(10)이 정적 또는 동적 동작 모드에 있든지 간에, 이종의 메모리 액세스 요청 정책들의 초기 세트가 설정되어야 한다. 동적 동작 모드의 특정한 상황에서, 동작 프로파일을 정의하기 위해 충분한 정보를 수집하기 위한 충분한 시간이 없을 수 있다. 이러한 경우에, 디폴트 이종의 메모리 액세스 요청 정책이 필수적일 것이다.
[0051] 이것에 관하여, 도 6은 디폴트 메모리 액세스 요청 정책을 결정하는데 이용된 이종의 MAR 정책 테이블(36)에 대한 예시적인 업데이트를 예시하는 흐름도이다. 마스터 디바이스들(12(0-M)) 및 애플리케이션 정책 테이블 업데이트는 버스 상호연결부 아비터(24)에 의해 여기서 수행된다. 대안적으로, 이 업데이트는 마스터 디바이스들(12(0-M))을 업데이트함으로써 직접적으로 수행될 수 있다. 마스터 디바이스들(12(0-M))에 의한 업데이트, 애플리케이션 초기화, 또는 후속 정책 업데이트 시에, 버스 상호연결부 아비터(24)는, 아래의 도 8b에서 보다 상세히 논의되는 바와 같이 MAR 정책 메시지를 수신할 것이다(블록 90). MAR 정책 메시지는 아래의 도 8c에서 논의되는 바와 같이 이종의 MAR 정책 테이블(36)에 필수적인 디폴트 동종의 메모리 저장 정보를 포함한다. MAR 정책 메시지가 수신되면, 버스 상호연결부 아비터(24)는 이종의 MAR 정책 테이블(36)을 업데이트할 것이다(블록(92)).
[0052] 메모리 액세스 요청 정보는 버스 상호연결부 아비터(24)가, 메모리 액세스 요청에 대한 이종의 MAR 정책을 결정하고 슬래이브 디바이스들(14(0-N)) 중 적절한 하나에 메모리 액세스 요청을 지향시키도록 허용한다. 메모리 액세스 요청 정보는 이종의 MAR 정책(40)에 기초하여 평가하도록 버스 상호연결부 아비터(24)에 제공되는 세부사항들을 포함한다. 이것에 관하여, 도 7 및 도 8a-c는 동작 모드 또는 현재의 이종의 메모리 액세스 요청 정책을 초기화, 업데이트, 또는 적용하도록 마스터 디바이스들(12(0-M))과 버스 상호연결부 아비터(24) 간에 통신하는데 이용될 수 있는 예시적인 프로세스 및 지원 테이블들 및 메시지 블록들을 설명한다.
[0053] 이것에 관하여, 도 7은 버스 상호연결부 아비터(24)가 메모리 액세스 요청 정책을 수신, 결정 및 적용하고, 이어서 이종의 메모리 액세스 요청 정책에 기초하여 메모리 액세스 요청을 라우팅하는 예시적인 프로세스를 예시하는 흐름도이다. 메모리 액세스 요청이 수신되고, 이어서 수신된 메모리 액세스 요청을 프로세싱하도록 진행된다(블록(94)). 메모리 액세스 요청을 수신한 이후, 버스 상호연결부 아비터(24)는 메모리 액세스 요청이 판독 또는 기록 요청인지를 결정한다(블록(96)). 메모리 액세스 요청이 기록 트랜잭션이라고 버스 상호연결부 아비터(24)가 결정한 경우, 버스 상호연결부 아비터(24)는 이것이 MAWR(memory access write request)이라고 결정할 것이다. 이종의 MAR 정책 결정은 도 8a의 동작 모드 표지사 테이블(104)에 기초할 것이다. 동작 모드 표시자 세팅(106)은, 버스 상호연결부 아비터(24)가 정적 또는 동적 MAR 정책을 메모리 액세스 요청에 적용할지를 결정하는데 이용된다(블록(98)).
[0054] 도 7을 추가로 참조하여, 프로세서-기반 시스템이 정적 동작 모드(블록(98))에 있다고 버스 상호연결부 아비터(24)가 결정하는 경우, 정적 MAR 정책이 적용될 것이다(블록(100)). 메모리 액세스 요청은 결정된 MAR 정책에 기초하여 라우팅될 것이다(블록(102)). 그러나 동적 MAR 정책이 적용된다고 결정되는 경우(블록(103)), 메모리 액세스 요청은 대안적으로, 이 결정된 MAR 정책에 기초하여 대안적으로 라우팅될 것이다(블록(102)). 한편, 메모리 액세스 요청이 판독 트랜잭션 타입이라고 버스 상호연결부 아비터(24)가 결정하는 경우, 버스 상호연결부 아비터(24)는 아래에서 설명되는 바와 같이 도 12로 진행될 것이다. 도 7에서 적용된 이종의 메모리 액세스 요청 정책이 도 8b의 이종의 MAR 정책 메시지 블록(108)을 이용하여 초기화 및 업데이트되고, 도 8c의 이종의 MAR 정책 테이블(36)에 저장된다.
[0055] 이것에 관하여, 도 8b는 예시적인 이종의 MAR 정책 메시지 블록(108)이다. 이종의 MAR 정책 메시지 블록(108)은 도 8c의 이종의 MAR 정책 테이블(36)을 업데이트하기 위한 정보의 블록들을 포함한다. master_ID(110)는 요청 마스터 디바이스들(12(0-M))을 식별하는 정보를 포함한다. application_ID(112)는, 요청 애플리케이션을 더 상세히 식별할 필요가 있으면 애플리케이션을 추가로 식별할 수 있다. master_ID(110) 및 application_ID(112)는 원하는 메모리 타입(114)을 갖는다. 일 예로서, 메모리 타입(114)은, 메모리 액세스 요청 트랜잭션을 위해 이용될 휘발성 메모리 또는 비-휘발성 메모리를 식별하는 정보를 포함(그러나 이것으로 제한되지 않음)할 수 있다. 이종의 MAR 정책 메시지 블록(108)은 추가로, 전력이 사이클링될 때, 메모리 타입(114)이 리셋되어야 하는지를 또는 이 상태 구성이 프로세서-기반 시스템의 전력 사이클링을 존속시켜야 하는지를 시스템에 표시하는 power_off_reset(116) 필드를 갖도록 구성된다. 도 8c는 도 8b에서 위의 이종의 MAR 정책 메시지 블록(108)에서 설명되는 바와 같은 필드들을 포함하는 이종의 MAR 정책 테이블(36)이다. 이종의 MAR 정책 테이블(36)은 이종의 MAR 정책 메시지 블록(108)에 기초하여 마스터 디바이스들(12(0-M)) 또는 버스 상호연결부 아비터(24)에 의해 요구될 때 업데이트된다.
[0056] MAR 정책 메시지 블록들의 구조는 마스터 디바이스들(12(0-M))이 요청을 한 트랜잭션의 타입(즉 트랜잭션이 판독/기록 트랜잭션인지 여부) 및 심지어 데드라인들 및 우선순위들로서 이러한 정보를 결정하기 위한 필수 엘리먼트들을 포함한다. 메모리 액세스 요청들은 MAR 메시지 블록에 의해 정의된다. 이종의 MAR 정책들은 추가로 메모리 액세스 요청들에 적용된다. 이것에 관하여, 도 9a는 도 8b의 master_ID(110)를 포함하는 MAR 메시지 블록(118), 판독/기록 표시자(120) 및 stream_ID 블록(124)을 예시한다. MAR 메시지 블록(118)은 버스 상호연결부 아비터(24)가 마스터 디바이스들(12(0-M))로부터의 메모리 액세스 요청 트랜잭션들을 수행하도록 허용하는 메시지 정보를 포함한다. 예를 들어, MAR 메시지 블록(118)은 요청 마스터 디바이스(12(0-M))를 식별하는 정보를 포함하는 master_ID(110)를 포함한다. 버스 상호연결부 아비터(24)는 어느 마스터 디바이스들(12(0-M))이 슬래이브 디바이스들(14(0-N))로부터의 응답들을 수신할지 결정하기 위해 master_ID(110)를 이용한다. master_ID(110)는 또한 이종의 MAR 정책 테이블(36)에 기초하여 디폴트 이종의 MAR(40)을 결정하는데 이용될 것이다. 버스 트랜잭션이 메모리 액세스 요청인 경우, 판독/기록 표시자(R/W)(120)는 메모리 액세스 요청이 판독 트랜잭션 또는 기록 트랜잭션인지를 결정하는데 이용될 것이다. stream_ID 블록(124)은 버스 트랜잭션에 대한 스트림 트랜잭션 정보를 제공할 것이다.
[0057] 도 9a는 버스 상호연결부 아비터(24)에 송신되는 메모리 액세스 요청 내에서 마스터 디바이스(12(0-M))에 의해 제공될 수 있는 예시적인 master_ID(110)의 블록도를 포함한다. 이 예에서, master_ID(110)는 마스터 디바이스(12(0-M))를 식별하는데 이용되는 10-비트 워드이고, 버스 상호연결부 아비터(24)와 통신할 때, 마스터 디바이스(12(0-M)) 내의 애플리케이션을 추가로 정의할 수 있다. 상위 2개의 비트들(F1, F0)은, 특정한 메모리 액세스 요청에 관여되는 4개의 특유의 패브릭들(fabrics)의 식별을 허용하는 패브릭 식별자(126)를 포함한다. 중간 4개의 비트들(M3, M2, M1, M0)은 마스터 디바이스(12(0-M))를 식별하는 마스터 디바이스 식별자(128)를 포함한다. 따라서, 16개의 고유한 마스터 디바이스들(12(0-M))이 이 예에서 가능하다. 다음 2개의 비트들(S1, S0)은 제공되거나 적용 가능한, 마스터 디바이스(12(0-M))에 커플링되는 서브-마스터 디바이스 식별자(130)를 식별하는 서브-마스터 디바이스 식별자(130)를 포함한다. 따라서, 4개의 고유한 서브-마스터 디바이스들이 이 예에서 가능하다. 하위 2개의 비트들(A1, A0)은 마스터 디바이스(12(0-M)) 및/또는 서브-마스터 디바이스가, 원하는 임의의 애플리케이션 정보를 제공하도록 허용하는데 이용될 수 있는 애플리케이션 식별자(132)를 포함한다. 예를 들어, 소프트웨어 프로세스 또는 스레드의 식별은 마스터 디바이스(12(0-M)) 및/또는 서브-마스터 디바이스가 메모리 액세스 요청을 담당하는 소프트웨어 프로세스 또는 스레드를 식별하도록 허용하기 위해 애플리케이션 식별자(132) 내에서 제공될 수 있다. 원하는 임의의 다른 정보가 애플리케이션 식별자(132)에 포함될 수 있다.
[0058] 도 9a를 추가로 참조하면, MAR 메시지 블록(118)에서 stream_ID 블록(124)로서 이용될 수 있는 예시적인 stream_ID 블록(124)의 블록도가 도시된다. stream_ID 블록(124)은 도 1 및 도 4의 버스 상호연결부 아비터(24)에 제공되는 스트림 트랜잭션에 관련된 예시적인 정보를 포함한다. stream_ID 블록(124)은 버스 상호연결부 아비터(24)가 스트림 트랜잭션에 관련되는 정보에 기초하여 스트림 트랜잭션을 중재하기 위해 이종의 MAR 정책(40)을 평가하도록 허용한다. 마스터 디바이스들(12(0-M))은 버스 상호연결부 아비터(24)를 통해 스트림 트랜잭션을 요청할 때 stream_ID 블록(124)에서 정보를 제공한다.
[0059] 도 9a에서, stream_ID 블록(124)은 스트림 트랜잭션을 식별하는 스트림 식별자 필드(STREAM_ID)(134)를 포함한다. 전달의 수 필드(#_TRANSFERS)(136)는 스트림 트랜잭션과 연관되는 버스트 전달들의 수를 제공한다. 비이트(beat)들의 수 필드(#_BEATS)(138)는 각각의 버스트 전달에 대해 수행될 데이터 전달들의 비이트들의 수를 제공한다. 바이트의 수 필드(#_BYTES)(140)는 각각의 비이트 전달에 대해 수행될 데이터의 바이트들의 수를 제공한다. 바이트의 수 필드(#_BYTES)(140)는 버스 상호연결부 아비터(24) 및 슬래이브 디바이스들(14(0-N))의 아키텍처에 의존하여 구성 가능하거나 고정값일 수 있다.
[0060] 스트림 트랜잭션과 연관되는 데드라인이 있는 경우, 데드라인 정보는 데드라인 필드(DEADLINE)(142)에 저장될 수 있다. 예를 들어, 마스터 디바이스(12(0-M))는 클록 사이클들, 비이트들, 또는 다른 상대적 또는 절대 타이밍의 견지에 있을 수 있는 특정한 타이밍 내에서 특정한 스트림 트랜잭션이 완료되도록 요청한다. 우선순위 필드(PRIORITY)(144)는 또한 우선순위가 스트림 트랜잭션에 연관되도록 허용하기 위해 제공된다. 우선순위 필드(PRIORITY)(144)는 설계에 의존하여, 마스터 디바이스(12(0-M)), 버스 상호연결부 아비터(24), 또는 슬래이브 디바이스들(14(0-N))에 의해 변경되고 및/또는 공급되도록 구성될 수 있다. 스트림 정보는 스트림 트랜잭션을 중재하기 위해 스트림 트랜잭션에 대한 버스 중재 정책을 평가 및 적용하도록 버스 상호연결부 아비터(24)에 의해 이용될 수 있다.
[0061] 도 1의 버스 상호연결부 아비터(24)는 도 9a의 MAR 메시지 블록(118)을 포함하는, 마스터 디바이스들(12(0-M))로부터의 MAR 트랜잭션들을 수신한다. 앞서 논의된 바와 같이, 스트림 트랜잭션 요청들을 포함하는 메모리 액세스 요청들에 응답하여 슬래이브 디바이스들(14(0-N))로부터의 버스 트랜잭션 응답들은 슬래이브 포트 큐들(80(0-N))에 배치된다. 버스 상호연결부 아비터(24)는 슬래이브 포트 큐들(80(0-N))에 저장된 스트림 트랜잭션들에 대한 스트림 트랜잭션 정보에 기초하여 MAR 응답들에 대한 이종의 MAR 정책을 평가할 수 있다. 이것에 관하여, 도 9b는 도 9a의 MAR 메시지 블록(118)에 기초하여 MAR 트랜잭션들을 중재하기 위한 이종의 MAR 정책의 평가 및 적용을 지원하도록 버스 상호연결부 아비터(24)에 의해 액세스되는 슬래이브 포트 큐들(80(0-N))(도시되지 않음)의 도면이다. 슬래이브 포트 큐들(80(0-N))은 버스 상호연결부 아비터(24)에 의해 액세스 가능한 내부 레지스터들 또는 다른 메모리에 제공될 수 있고, 버스 상호연결부(16) 내부 또는 외부에 있을 수 있다. MAR 메시지 블록(118)은 큐들에 저장된다.
[0062] 이것에 관하여, 그리고 도 9b에서 예시된 바와 같이, 메모리 액세스 요청(MAR) 큐로서 본 명세서에서 또한 지칭되는 슬래이브 포트 큐(80(0-N))는 0 내지 "X"개의 MAR 큐들(146)을 보유하도록 구성된 테이블로 구성된다. 큐 번호 필드(QUEUE #)(148)는 슬래이브 포트 큐들(80(0-N))에 저장된 MAR 트랜잭션 응답들을 인덱싱하는데 이용된다. 이 예에서, 슬래이브 포트 큐들(80(0-N)) 내의 각각의 MAR 트랜잭션 응답은 MAR 트랜잭션 응답을 수신하도록 마스터 디바이스들(12(0-M))을 식별하기 위해 master_ID(110)를 포함한다. MAR 트랜잭션은 또한 메모리에서 판독 또는 기록 트랜잭션 참조를 위해 메모리 어드레스(149)를 제공한다. MAR 트랜잭션 요청이 요청 데이터를 포함하는 경우, 응답 데이터는 데이터 필드(DATA)(150)에 저장될 수 있다. stream_ID 블록(124)은 또한 버스 트랜잭션 요청이 스트림 트랜잭션이었던 경우 스트림 트랜잭션 정보를 저장하도록 각각의 메모리 액세스 요청 엔트리에 대해 제공된다.
[0063] 잔여 전달의 수 필드(#_TRANS_REMAIN)(152)는 또한, 버스 상호연결부 아비터(24)가 MAR 트랜잭션 응답들에 대한 이종의 MAR 정책들(40)을 평가 및 적용을 위해 이용할 스트림 트랜잭션의 진행상황(progress)을 결정하도록 허용하기 위해 제공된다. 잔여 전달의 수는, 도 9a의 stream_ID 블록(124)의 전달들의 수 필드(#_TRANS_REMAIN)(152)에서 스트림 트랜잭션 요청에 대해 제공되는 전달들의 수 필드(#_TRANS_REMAIN)(152)에 기초하여 버스 상호연결부 아비터(24)에 의해 세팅된다. 도 5에서 예시된 카운터들(88(0-N))은 잔여 전달의 수 필드(#_TRANS_REMAIN)(152)를 감소시키도록 계류중인 MAR 트랜잭션들에 대해 슬래이브 디바이스들(14(0-N))로부터의 완료된 전달들이 수를 카운팅한다. 랭크 필드(RANK)(154) 및 가중치 필드(WEIGHT)(156)는 또한 경합하는 MAR 트랜잭션 응답들 간을 중재하기 위해 버스 상호연결부 아비터(24)에 의해 이용되는 버스 중재 정책에서 랭크 및/또는 가중치가 이용되도록 허용하기 위해 제공된다. 비-제한적인 예로서, 가중치 필드(WEIGHT)(156)는 보다 중요한 이종의 MAR 정책들(40)을 가중화하는 방식으로 이용될 수 있다. 다른 비-제한적인 예로서, 랭크 필드(RANK)(154)는 이종의 MAR 정책(40)에 대한 우선순위를 정하도록 이용될 수 있다. 다른 이종의 MAR 중재 정책들이 이용될 수 있다.
[0064] 도 9b에서 도시된 바와 같이, MAR 큐들(146)의 MAR 메시지 블록(118)은 도 8a의 동작 모드 표시자 세팅(106)에 기초하여 이종의 MAR 정책(40)을 결정하는데 필수적인 블록 정보를 포함한다. 도 8a의 동작 모드 표시자 테이블(104)은 버스 상호연결부 아비터(24)가 정적 또는 동적 모드에서 메모리 액세스 요청들을 프로세싱해야하는지를 표시한다. 이것에 관하여, 도 10은, 버스 상호연결부 아비터(24)가 정적 모드에서 각각의 메모리 액세스 요청을 프로세싱해야 한다고 동작 모드 표시자 세팅(106)이 표시하는 예시적인 프로세스의 흐름도이다. 도 10의 예시적인 프로세스는 도 7의 정적인 MAR 정책(블록(100))을 적용하는 보다 상세한 프로세스이다. 메모리 액세스 요청은 정적인 모드에 기초한 이종의 메모리 액세스 기록 요청이다. 정적인 모드에서, 버스 상호연결부 아비터(24)는 어느 동종의 메모리(28(도 1) 및 70(도 4))에 기록 요청을 지향시킬지 결정하기 위해 디폴트 이종의 MAR 정책 테이블(36)을 활용할 수 있다. 버스 상호연결부 아비터(24)는 도 9a의 master_ID(110), 판독/기록 표시자(120) 및 stream_ID 블록(124)을 파싱하도록 MAR 메시지 블록(118)을 분석할 것이다(블록(160)). 버스 상호연결부 아비터(24)는 다음으로, 이종의 MAR 정책 테이블(36)에 기초하여 MAR 기록 트랜잭션에 이종의 MAR 정책을 적용한다(블록(162)). 버스 상호연결부 아비터(24)는 이어서 다음의 메모리 액세스 요청을 리트리브하도록 리턴한다.
[0065] 도 11a는 동작 모드 표시자 테이블(104)이 동적 모드로 세팅될 때 선택되는 이종의 MAR 정책(40)을 예시하는 흐름도이다. 동작 모드 표시자 테이블(104)이 동적 모드로 세팅될 때, 버스 상호연결부 아비터(24)는, 유효 메모리 액세스 요청 동적 프로파일 엔트리가 요청을 하는 마스터 디바이스(12(0-M))에 대해 존재하는지를 알기 위해 아래에서 논의되는 도 15의 MAR 동적 프로파일 테이블(38)을 먼저 확인할 것이다. 요청 마스터 디바이스(12(0-M))에 대한 유효 프로파일이 있는 경우, 버스 상호연결부 아비터(24)는 마스터 디바이스(12(0-M))에 대해 리턴되는 MAR 동적 프로파일 엔트리에 기초하여 MAR 동적 프로파일 테이블(38)을 분석할 것이다(블록 170). 블록(170)에서 수행되는 분석에 기초하여, 예시적인 프로세스는 MAR 동적 프로파일에 기초하여 적용할 적용 가능한 MAR 정책을 결정할 것이다(블록 172). 다른 이종의 MAR 정책(40)이 결정되면, 프로세스는 이종의 MAR 정책에 기초하여 동적인 메모리 액세스 기록 요청을 적용할 것이다(블록 174).
[0066] 도 11b의 흐름도는 요청 마스터 디바이스(12(0-M))에 대한 유효 프로파일이 없는 경우 프로세스를 설명한다. 이러한 경우에, 버스 상호연결부 아비터(24)는 디폴트 이종의 MAR 정책(40)에 기초하여 master_ID(110)를 분석할 것이다(블록 (176)). 버스 상호연결부 아비터(24)는 이어서 디폴트 이종의 MAR 정책(40)을 적용한다(블록(178)). 어떠한 유효 동적 프로파일도 존재하지 않는 동적 메모리 액세스 요청 정책에 대한 이러한 예외의 완료 시에, 버스 상호연결부 아비터(24)는 다음 메모리 액세스 요청(MAR)을 수신하도록 리턴한다(도 7의 블록(94)). 메모리 액세스 요청 트랜잭션이 (도 8 내지 도 11b로 위에서 논의되었던 바와 같은) 기록 트랜잭션이 아닌 경우, 메모리 액세스 요청은 도 9a의 판독/기록 표시자(120)에 기초하여 도 7의 블록(96)에서 결정된 바와 같이 메모리 액세스 판독 요청인 것으로 결정될 것이다.
[0067] 이것에 관하여, 도 12는 도 7의 블록(96)에서 결정된 바와 같은 예시적인 MARR(memory access read request)을 예시한다. 버스 상호연결부 아비터(24)는 MAR 메시지 블록(118)에서 도 9a의 판독/기록 표시자(120)를 판독하고 MAR 메시지 블록(118)이 판독 또는 기록 트랜잭션인지를 결정한다. 판독/기록 표시자(120)가 판독 트랜잭션을 표시하는 경우, 버스 상호연결부 아비터(24)는 도 12에서 예시된 바와 같은 예시적인 프로세스로 진행한다. 버스 상호연결부 아비터(24)는 초기에, master_ID(110) 및 stream_ID 블록(124)을 결정하도록 MAR 메시지 블록(118)을 분석할 것이다(블록(182)). 버스 상호연결부 아비터(24)는 이어서 정적 이종의 MAR 정책 테이블(36)에 의해 결정된 MAR 정책에 기초하여 적절한 메모리 판독 위치를 결정한다(블록(184)). 일단 결정되면, 버스 상호연결부 아비터(24)는 이어서 결정된 MAR 정책에 기초하여 메모리 판독 요청을 적용할 수 있다(블록(186)).
[0068] 본질적으로 정적인 메모리 액세스 요청들(즉, 이들은 미리 결정되고 실행-시간 조건들에 기초하여 조정되거나 변경되지 않음)은 도 8c의 디폴트 이종의 MAR 정책 테이블(36)에 기초한다. 이들은 마스터 디바이스들(12(0-M)) 또는 연관된 애플리케이션들에 의해 미리 결정될 수 있다. 그러나 동작 모드 표시자 세팅(106)이 동적 프로파일링을 요구하는 동적인 모드로 프로세서-기반 시스템을 세팅하는 경우, 시스템은 실행-시간 조건들에 기초하여 MAR 정책들을 결정해야 한다. 이것에 관하여, 도 13은 동적 동작 모드에서 동적인 메모리 액세스 요청 정책들을 적용하는데 이용하기 위한 MAR 동적 프로파일 테이블(38)의 업데이트를 위한 유효 프로파일의 생성을 예시하는 흐름도이다. 버스 상호연결부 아비터(24)는 프로파일링 시스템 동작들의 프로세스를 시작한다(블록(192)). 프로파일링은 도 14에서 아래에 추가로 논의되는 바와 같이 페이지 히트비들, 메모리 트래픽 등을 적절히 특징화하기 위한 몇몇 시간 측정을 요구할 수 있다. 프로파일이 완료되었다고 버스 상호연결부 아비터(24)가 결정할 때까지(블록(196)) 프로파일링은 지속된다(블록(194)). 완료되면, 버스 상호연결부 아비터(24)는 이종의 MAR 동적 프로파일 테이블(38)을 업데이트한다(블록(198)). 버스 상호연결부 아비터(24)는 또한 아래에서 더 상세히 논의되는 바와 같이 profile_valid 표시자를 세팅한다(블록(200)).
[0069] 이제 도 14를 참조하면, MAR 동적 프로파일 테이블(38)은, 수집되고 및/또는 측정된 시스템 동작 정보에 기초하여 이종의 MAR 정책 결정들을 내리는데 필수적인 유효 동적 프로파일 정보를 포함한다. 이러한 MAR 동적 프로파일 테이블(38)의 이용은 동작 모드 표시자 세팅(106)에 의해 결정된다. 동작 모드 표시자 세팅(106)이 정적 동작 모드로 세팅되는 경우, MAR 동적 프로파일 테이블(38)이 이용되지 않을 수 있다. 그러나 동작 모드 표시자 세팅(106)이 동적 동작 모드로 세팅되는 경우, 버스 상호연결부 아비터(24)는 다양한 시스템 동작 성능 측정들을 이용하고 필요하면 유효 프로파일들로 MAR 동적 프로파일 테이블(38)을 업데이트할 수 있다. MSTR_ID/APP #(202)는 업데이트된 프로파일들을 식별하고 에이징(age)하는데 이용될 수 있는 인덱스 번호이다. 예를 들어, 프로파일들은 유효하게 되기 위해 최신상태(current)가 되도록 요구할 가능성이 높다. 버스 상호연결부 아비터(24)는 프로파일 엔트리들을 타임스탬프핑 및 순서화, 또는 랭킹시키는데 이 필드를 이용할 수 있다. profile_valid 표시자 필드(204)는 master_ID들(110)의 리스트이다. 예를 들어, 요청 마스터 디바이스(12(0-M))에 기초하여 유효 프로파일을 찾을 때, 유효 프로파일은 그 마스터 디바이스(12(0-M))와 연관된 유효 프로파일을 발견함으로써 결정될 수 있다.
[0070] 도 14를 추가로 참조하여, master_ID(110) 및 파싱된 애플리케이션 식별자(Application_ID)(132) 둘 다는 더 쉬운 룩업을 위해 저장될 수 있다. MAR 동적 프로파일 테이블(38)은 또한 도 9a에서 앞서 논의된 바와 같이 애플리케이션 특정 파라미터들, 예를 들어, 애플리케이션 또는 마스터 디바이스(12(0-M)) 우선순위 필드(PRIORITY)(144), 또는 데드라인 필드(DEADLINE)(142)를 지원할 수 있다. MAR 동적 프로파일 테이블(38)은 또한 프로세서-기반 시스템의 요구되는 시스템 실행-시간 우선순위 또는 현재 배터리 충전 레벨의 표시를 제공할 수 있는 시스템 성능 파라미터들, 예를 들어, 전력 우선순위(206)를 지원할 수 있다. 판독/기록 우선순위(208)는 마스터 디바이스(12(0-M))가 판독/기록 성능에 제공할 수 있는 우선순위의 표시를 제공한다. 일 예로서, 전력 우선순위(206)가 R/W 우선순위(208)보다 높은 경우, 버스 상호연결부 아비터(24)는, 이종의 MAR 정책(40)이 보다 에너지-효율적인 동종의 메모리 유닛을 선택하는 결정을 내리게 할 수 있다. 즉, 요구되는 시스템 실행-시간은, 배터리 충전 레벨이 임의의 다른 성능 고려사항보다 더 높은 우선순위로 남아있도록 요구할 수 있다. 그러나 판독/기록 성능이 더 높은 우선순위인 경우, 버스 상호연결부 아비터(24)는, 잠재적으로 배터리 충전 레벨의 비용으로, 이용 가능한 최고 성능의 동종의 메모리들(28(0-A))로 판독 또는 기록을 하도록 하는 정책 결정을 내릴 수 있다.
[0071] 부가적으로, 도 14에서, 프로세서-기반 시스템은, 다른 시스템 성능 파라미터들 중에서도, 페이지 히트비(210) 및 메모리 트래픽 필드(212)를 측정할 수 있다. 페이지 히트비(210)는 메모리 액세스 요청이 얼마나 랜덤(random)인지에 관한 표시이다. 정적 이종의 MAR 정책은 예를 들어, 마스터 디바이스(12(0-M)), 또는 애플리케이션이 디폴트로 휘발성 메모리에 기록하거나 판독해야 한다고 결정할 수 있다. 그러나 마스터 디바이스(12(0-M))의 현재 거동에 기초하여, 마스터 디바이스(12(0-M))가 보다 랜덤의 판독들 및 기록들로 동작하고 있다는 결정이 내려질 수 있다. 이 경우에, 버스 상호연결부 아비터(24)는 비-휘발성 메모리로 대신 기록 및 판독함으로써 성능이 강화될 것이라고 결정할 수 있다. 통상적으로, 마스터 디바이스(12(0-M))가 보다 랜덤한 판독들 및 기록들을 행할지라도, 메모리 트래픽 필드(212)는 또한 현재 마스터 디바이스(12(0-M)) 또는 애플리케이션 거동이 더 큰 연속적인 메모리 블록들로의 기록들 및 판독으로 기능하는지를 결정하는데 이용될 수 있다. 이 예에서, 디폴트는 비-휘발성 메모리로 기록 및 판독하는 것일 수 있지만, 거동의 변화로 인해, 버스 상호연결부 아비터(24)는, 휘발성 메모리를 이용하는 것이 더 나을 것이라고 결정하고 이에 따라 MAR 동적 프로파일 테이블(38)을 업데이트할 수 있다.
[0072] 본 명세서에서 개시된 실시예들에 따라 이종의 메모리 시스템들, 및 관련된 방법들 및 컴퓨터 판독 가능한 매체들이 임의의 프로세서-기반 디바이스에서 제공되거나 이들 내로 통합될 수 있다. 예들은 제한 없이, 셋톱 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 이동 위치 데이터 유닛, 모바일 전화, 셀룰러 전화, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 음악 재생기, 디지털 음악 재생기, 휴대용 음악 재생기, 디지털 비디오 재생기, 비디오 재생기, 디지털 비디오 디스크(DVD) 재생기, 및 휴대용 디지털 비디오 재생기를 포함한다.
[0073] 이것에 관하여, 도 15는 도 1 및 도 4에서 예시된 프로세서-기반 시스템들(10, 10')에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들 및 관련 방법들 및 컴퓨터-판독 가능한 매체들을 이용할 수 있는 프로세서-기반 시스템(228)의 예를 예시한다. 이 예에서, 프로세서-기반 시스템(228)은 각각이 하나 이상의 프로세서들(232)을 포함하는 하나 이상의 중앙 처리 장치들(CPU들)(230)을 포함한다. CPU(들)(230)은 마스터 디바이스(12(0-M))일 수 있다. CPU(들)(230)는 임시로 저장된 데이터에 대한 빠른 액세스를 위해 프로세서(들)(232)에 커플링되는 캐시 메모리(234)를 갖는다. CPU(들)(230)은 시스템 버스(236)에 커플링되고 프로세서-기반 시스템(228)에 포함된 마스터 및 슬래이브 디바이스들을 서로 커플링할 수 있다. 시스템 버스(236)는 도 1 및 도 4에서 예시된 버스 상호연결부(16)와 같은 버스 상호연결부일 수 있다. 잘 알려진 바와 같이, CPU(들)(230)는 시스템 버스(236)를 통해 어드레스, 제어 및 데이터 정보를 교환함으로써 이들 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(230)는 버스 트랜잭션 요청들을, 슬래이브 디바이스의 일 예로서 메모리 제어기(30)에 통신할 수 있다. 도 15에서 예시되지 않았지만, 다수의 시스템 버스들(236)이 제공될 수 있으며, 각각의 시스템 버스(236)은 상이한 패브릭(fabric)을 구성한다.
[0074] 다른 마스터 및 슬래이브 디바이스들은 시스템 버스(236)에 연결될 수 있다. 도 15에 예시된 바와 같이, 이러한 디바이스들은 예들로서, 적어도 하나의 이종의 메모리 시스템(26), 하나 이상의 입력 디바이스들(238), 하나 이상의 출력 디바이스들(240), 하나 이상의 네트워크 인터페이스 디바이스들(242) 및 하나 이상의 디스플레이 제어기들(244)을 포함할 수 있다. 입력 디바이스(들)(238)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(240)는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(242)는 네트워크(246)로의 그리고 네트워크(246)로부터의 데이터의 교환을 허용하도록 구성되는 임의의 디바이스일 수 있다. 네트워크(246)는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, 로컬 영역 네트워크(LAN), WLAN(wide local area network) 및 인터넷을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(242)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다. 적어도 하나의 이종의 메모리 시스템(26)은 하나 이상의 동종의 메모리들(28)(0-A))을 포함할 수 있다. 버스 상호연결 아비터(24)는 시스템 버스(236)와 시스템 버스(236)에 커플링되는 마스터 및 슬래이브 디바이스들 예를 들어, 적어도 하나의 이종의 메모리 시스템(26)에 제공되는 하나 이상의 동종의 메모리들(28(0-A)) 간에 제공될 수 있다
[0075] CPU(들)(230)는 또한, 하나 이상의 디스플레이들(248)에 전송된 정보를 제어하기 위해서 시스템 버스(236)를 통해 디스플레이 제어기(들)(244)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(244)는 디스플레이될 정보를 디스플레이(들)(248)에 적합한 포맷으로 프로세싱하는 하나 이상의 비디오 프로세서들(250)을 통해 디스플레이될 정보를 디스플레이(들)(248)에 전송한다. 디스플레이(들)(248)는 음극선관(CRT: cathode ray tube), 액정 디스플레이(LCD: liquid crystal display), 플라즈마 디스플레이 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 디스플레이를 포함할 수 있다.
[0076] CPU(들)(230) 및 디스플레이 제어기(들)(244)는 시스템 버스(236) 상에서 버스 상호연결부 아비터(24)에 대한 메모리 액세스 요청들을 행하기 위한 마스터 디바이스들로서 작동한다. CPU(들)(230) 및 디스플레이 제어기(들)(244) 내의 상이한 스레드들은 버스 상호연결부 아비터(24)에 대한 요청들을 행할 수 있다.
[0077] 당업자들은 본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독 가능한 매체에 저장되어 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 이 둘의 조합들로서 구현될 수 있다는 것을 추가로 인식할 것이다. 본 명세서에서 설명되는 아비터들, 마스터 디바이스들 및 슬래브 디바이스들은 예들로서 임의의 회로, 하드웨어 컴포넌트, 집적 회로(IC), 또는 IC 칩에서 이용될 수 있다. 본 명세서에 개시되는 메모리는 임의의 타입 및 크기의 메모리일 수 있으며, 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이러한 상호교환가능성을 명백하게 예시하기 위해서, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능에 관하여 위에서 설명되었다. 이러한 기능이 어떻게 구현되는지는 특정 애플리케이션, 설계 선택들 및/또는 전체 시스템에 부과되는 설계 제약들에 의존한다. 당업자들은 각각의 특정 애플리케이션에 대하여 다양한 방식들로, 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들이 본 개시의 범위로부터의 이탈을 야기하게 하는 것으로 해석되어서는 안 된다.
[0078] 본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 프로세서, DSP, ASIC(Application Specific Integrated Circuit), FPGA 또는 다른 프로그래밍 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명되는 기능들을 수행하도록 설계되는 이들의 임의의 조합으로 구현 또는 수행될 수 있다. 프로세서는 마이크로프로세서일 수 있지만 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수 있다.
[0079] 본 명세서에 개시되는 실시예들은 하드웨어에 저장된 명령들에서 그리고 하드웨어에서 구현될 수 있으며, 예를 들어, 랜덤 액세스 메모리(RAM), 플래쉬 메모리, 판독 전용 메모리(ROM), 전기적 프로그래밍 가능한 ROM(EPROM), 전기적 삭제 가능한 프로그래밍 가능한 ROM(EEPROM), 레지스터들, 하드 디스크, 이동식(removable) 디스크, CD-ROM 또는 당해 기술분야에 알려져 있는 임의의 다른 형태의 컴퓨터 판독 가능한 매체 내에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수 있다. ASIC는 원격국 내에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 원격국, 기지국 또는 서버에 개별 컴포넌트들로서 상주할 수 있다.
[0080] 또한, 본 명세서에서의 예시적인 실시예들 중 임의의 것에서 설명되는 동작 단계들이 예들 및 논의를 제공하기 위해서 설명된다는 점에 주목하여야 한다. 설명되는 동작들은 예시되는 시퀀스들 외에 다수의 상이한 시퀀스들에서 수행될 수 있다. 또한, 단일 동작 단계에서 설명되는 동작들은 실제로 다수의 상이한 단계들에서 수행될 수 있다. 추가적으로, 예시적인 실시예들에서 논의되는 하나 이상의 동작 단계들이 조합될 수 있다. 흐름도들에 예시되는 동작 단계들은 당업자에게 용이하게 명백할 것과 같이 다수의 상이한 변경들이 취해질 수 있다는 것이 이해될 것이다. 당업자들은 또한 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명의 전체에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광 필드들 또는 입자들 또는 이들의 임의의 조합으로 표현될 수 있다.
[0081] 본 개시의 이전의 설명은 임의의 당업자가 본 개시를 실시하거나 또는 이용할 수 있도록 제공된다. 본 개시에 대한 다양한 변경들은 당업자들에게 용이하게 명백할 것이고, 본 명세서에서 정의되는 일반적인 원리들은 본 개시의 사상 또는 범위로부터 벗어나지 않고 다른 변화들에 적용될 수 있다. 따라서, 본 개시는 본 명세서에 설명되는 예들 및 설계들에 한정되는 것으로 의도된 것이 아니라, 본 명세서에 개시되는 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 따를 것이다.

Claims (54)

  1. 프로세서-기반 시스템에서 이종의(heterogeneous) 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터(arbiter)로서,
    상기 버스 상호연결부 아비터는,
    요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청을 수신하도록;
    상기 메모리 액세스 요청과 연관되는 성능 특성들에 기초하여, 상기 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 복수의 동종의(homogeneous) 메모리 타입들 중에서 동종의 메모리 타입을 결정하도록 ― 상기 결정하는 것은:
    상기 메모리 액세스 요청에 기초하여, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하고 ― 각각의 메모리 액세스 요청 정책은 상기 복수의 동종의 메모리 타입들 중의 동종의 메모리 타입에 대응하고, 각각의 메모리 액세스 요청 정책은 정적인 이종의 메모리 액세스 요청 정책 및 동적인 이종의 메모리 액세스 요청 정책 중 하나임 ―, 그리고
    결정된 메모리 액세스 요청 정책에 대응하는 동종의 메모리 타입을 결정하도록 추가로 구성되는 것에 의함 ―; 그리고
    결정된 동종의 메모리 타입에 대응하는 상기 이종의 메모리 시스템 내의 복수의 동종의 메모리들 중의 동종의 메모리에 상기 메모리 액세스 요청을 라우팅(routing)하도록
    구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  2. 제 1 항에 있어서,
    상기 복수의 동종의 메모리들은 DRAM(Dynamic Random Access Memory) 동종의 메모리 및 MRAM(Magnetoresistive Random Access Memory) 동종의 메모리로 구성되는(comprised),
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 복수의 동종의 메모리들 각각은 상기 이종의 메모리 시스템 내의 휘발성 메모리 또는 비-휘발성 메모리 중 어느 하나인,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  5. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 정적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    메모리 액세스 요청 정책 테이블의 정적 메모리 액세스 요청 정책 룩-업(look-up)에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  6. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 정적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청 내의 마스터(master) 식별자에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  7. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 정적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청 내의 애플리케이션 식별자에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  8. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    동적인 이종의 메모리 액세스 요청 프로파일 룩-업 테이블의 동적인 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  9. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청 내의 메모리 액세스 요청 우선순위(priority)에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  10. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청 내의 메모리 액세스 요청 데드라인(deadline)에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  11. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    상기 프로세서-기반 시스템의 전력 모드에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  12. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    메모리 페이지 히트비(hit ratio)에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  13. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    메모리 액세스 요청 트래픽에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  14. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하고; 그리고
    애플리케이션 우선순위; 메모리 액세스 요청 데드라인; 전력-모드; 메모리 페이지 히트비; 및 메모리 액세스 요청 트래픽으로 구성된 그룹으로부터 선택된 적어도 하나의 동작 파라미터에 기초하여 상기 메모리 액세스 요청 정책을 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  15. 제 1 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 프로세서-기반 시스템의 유효 동작 프로파일이 존재하는지 여부를 결정하고; 그리고
    상기 유효 동작 프로파일이 존재하지 않는 경우, 상기 메모리 액세스 요청 정책을 디폴트(default) 메모리 액세스 요청 정책으로 결정하도록 구성되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  16. 제 1 항에 있어서,
    상기 버스 상호연결부 아비터는, 상기 버스 상호연결부에 배치되는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  17. 제 1 항에 있어서,
    상기 버스 상호연결부 아비터는 반도체 다이에 통합되는(integrated),
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  18. 제 1 항에 있어서,
    상기 버스 상호연결부 아비터가 통합되는, 셋 톱 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 이동 위치 데이터 유닛, 모바일 전화, 셀룰러 전화, 컴퓨터, 휴대용 컴퓨터, 데스크톱 컴퓨터, 개인용 디지털 보조기기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 음악 재생기, 디지털 음악 재생기, 휴대용 음악 재생기, 디지털 비디오 재생기, 비디오 재생기, 디지털 비디오 디스크(DVD) 재생기, 및 휴대용 디지털 비디오 재생기로 구성된 그룹으로부터 선택된 디바이스
    를 더 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  19. 프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터로서, 상기 버스 상호연결부 아비터는,
    요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청을 수신하기 위한 수단;
    상기 메모리 액세스 요청과 연관되는 성능 특성들에 기초하여, 상기 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 복수의 동종의 메모리 타입들 중에서 동종의 메모리 타입을 결정하기 위한 수단 ― 상기 동종의 메모리 타입을 결정하기 위한 수단은:
    상기 메모리 액세스 요청에 기초하여, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하기 위한 수단 ― 각각의 메모리 액세스 요청 정책은 상기 복수의 동종의 메모리 타입들 중의 동종의 메모리 타입에 대응하고, 각각의 메모리 액세스 요청 정책은 정적인 이종의 메모리 액세스 요청 정책 및 동적인 이종의 메모리 액세스 요청 정책 중 하나임 ―, 및
    결정된 메모리 액세스 요청 정책에 대응하는 동종의 메모리 타입을 결정하기 위한 수단을 포함함 ―; 및
    결정된 동종의 메모리 타입에 대응하는 상기 이종의 메모리 시스템 내의 복수의 동종의 메모리들 중의 동종의 메모리에 상기 메모리 액세스 요청을 라우팅하기 위한 수단
    을 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터.
  20. 프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템으로서, 상기 이종의 메모리 시스템은,
    메모리 제어기의 제 1 메모리 채널에 커플링되는 제 1 동종의 메모리 ― 상기 제 1 동종의 메모리는 휘발성 메모리 타입임 ―; 및
    상기 메모리 제어기의 제 2 메모리 채널에 커플링되는 제 2 동종의 메모리 ― 상기 제 2 동종의 메모리는 비-휘발성 메모리 타입임 ―
    를 포함하고,
    상기 메모리 제어기는:
    버스 상호연결부에서 메모리 액세스 요청들을 수신하도록 ― 상기 메모리 제어기는 상기 제 1 메모리 채널 및 상기 제 2 메모리 채널을 갖음 ―;
    상기 메모리 액세스 요청들과 연관되는 성능 특성들에 기초하여, 상기 버스 상호연결부에 커플링되는 상기 이종의 메모리 시스템 내의 복수의 동종의 메모리 타입들 중에서 동종의 메모리 타입을 결정하도록 ― 상기 결정하는 것은:
    상기 메모리 액세스 요청들에 기초하여, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하고 ― 각각의 메모리 액세스 요청 정책은 상기 복수의 동종의 메모리 타입들 중의 동종의 메모리 타입에 대응하고, 각각의 메모리 액세스 요청 정책은 정적인 이종의 메모리 액세스 요청 정책 및 동적인 이종의 메모리 액세스 요청 정책 중 하나임 ―, 그리고
    결정된 메모리 액세스 요청 정책에 대응하는 동종의 메모리 타입을 결정하도록 추가로 구성되는 것에 의함 ―; 그리고
    결정된 동종의 메모리 타입에 대응하는 상기 버스 상호연결부에 커플링되는 상기 제 1 동종의 메모리 또는 상기 제 2 동종의 메모리 중 어느 하나에 상기 메모리 액세스 요청들을 라우팅하도록 구성되는,
    프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템.
  21. 제 20 항에 있어서,
    상기 제 1 동종의 메모리는 DRAM(Dynamic Random Access Memory)으로 구성되고, 상기 제 2 동종의 메모리는 MRAM(Magnetoresistive Random Access Memory)으로 구성되는,
    프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템.
  22. 삭제
  23. 삭제
  24. 프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템으로서,
    상기 이종의 메모리 시스템은 메모리 제어기를 포함하고, 상기 메모리 제어기는,
    제 1 메모리 채널 및 제 2 메모리 채널을 갖는 버스 상호연결부에서 메모리 액세스 요청들을 수신하기 위한 수단 ― 상기 메모리 액세스 요청들을 수신하기 위한 수단은, 상기 메모리 액세스 요청들과 연관되는 성능 특성들에 기초하여, 상기 버스 상호연결부에 커플링되는 상기 이종의 메모리 시스템 내의 복수의 동종의 메모리 타입들 중에서 동종의 메모리 타입을 결정하기 위한 수단을 포함하고, 상기 동종의 메모리 타입을 결정하기 위한 수단은:
    상기 메모리 액세스 요청들에 기초하여, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하기 위한 수단 ― 각각의 메모리 액세스 요청 정책은 상기 복수의 동종의 메모리 타입들 중의 동종의 메모리 타입에 대응하고, 각각의 메모리 액세스 요청 정책은 정적인 이종의 메모리 액세스 요청 정책 및 동적인 이종의 메모리 액세스 요청 정책 중 하나임 ―, 및
    결정된 메모리 액세스 요청 정책에 대응하는 동종의 메모리 타입을 결정하기 위한 수단을 포함함 ―; 및
    결정된 동종의 메모리 타입에 기초하여, 상기 버스 상호연결부의 상기 제 1 메모리 채널에 커플링되는 제 1 동종의 메모리 또는 상기 버스 상호연결부의 상기 제 2 메모리 채널에 커플링되는 제 2 동종의 메모리 중 어느 하나에 상기 메모리 액세스 요청들을 라우팅하기 위한 수단 ― 상기 제 1 동종의 메모리는 휘발성 메모리 타입이고, 상기 제 2 동종의 메모리는 비-휘발성 메모리 타입임 ―
    을 포함하는,
    프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템.
  25. 프로세서-기반 시스템으로서,
    적어도 하나의 요청 디바이스에 커플링되는 버스 상호연결부 ― 상기 버스 상호연결부는 상기 적어도 하나의 요청 디바이스로부터 이종의 메모리 시스템들로 수신된 메모리 액세스 요청들을 라우팅하도록 구성되는 버스 상호연결부 아비터를 포함함 ―;
    상기 버스 상호연결부에 커플링되는 제 1 동종의 메모리 시스템 ― 상기 제 1 동종의 메모리 시스템은 휘발성 메모리 타입임 ―; 및
    상기 버스 상호연결부에 커플링되는 제 2 동종의 메모리 시스템 ― 상기 제 2 동종의 메모리 시스템은 비-휘발성 메모리 타입임 ―
    을 포함하고,
    상기 버스 상호연결부 아비터는,
    상기 적어도 하나의 요청 디바이스로부터 상기 버스 상호연결부에서 상기 메모리 액세스 요청들을 수신하도록;
    상기 메모리 액세스 요청들과 연관되는 성능 특성들에 기초하여, 상기 버스 상호연결부에 커플링되는 상기 제 1 동종의 메모리 시스템 또는 상기 제 2 동종의 메모리 시스템 중 어느 하나를 결정하도록 ― 상기 결정하는 것은:
    상기 메모리 액세스 요청들에 기초하여, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하고 ― 각각의 메모리 액세스 요청 정책은 복수의 동종의 메모리 타입들 중의 동종의 메모리 타입과 대응하고, 각각의 메모리 액세스 요청 정책은 정적인 이종의 메모리 액세스 요청 정책 및 동적인 이종의 메모리 액세스 요청 정책 중 하나임 ―, 그리고
    결정된 메모리 액세스 요청 정책에 대응하는 동종의 메모리 타입을 결정하도록 추가로 구성되는 것에 의함 ―; 그리고
    결정된 동종의 메모리 타입에 대응하는 상기 버스 상호연결부에 커플링되는 상기 제 1 동종의 메모리 시스템 또는 상기 제 2 동종의 메모리 시스템 중의 동종의 메모리에 상기 메모리 액세스 요청들을 라우팅하도록 구성되는,
    프로세서-기반 시스템.
  26. 프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법으로서,
    요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청을 수신하는 단계;
    상기 메모리 액세스 요청과 연관되는 성능 특성들에 기초하여, 상기 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 복수의 동종의 메모리 타입들 중에서 동종의 메모리 타입을 결정하는 단계 ― 상기 동종의 메모리 타입을 결정하는 단계는:
    상기 메모리 액세스 요청에 기초하여, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하는 단계 ― 각각의 메모리 액세스 요청 정책은 상기 복수의 동종의 메모리 타입들 중의 동종의 메모리 타입에 대응하고, 각각의 메모리 액세스 요청 정책은 정적인 이종의 메모리 액세스 요청 정책 및 동적인 이종의 메모리 액세스 요청 정책 중 하나임 ―, 및
    결정된 메모리 액세스 요청 정책에 대응하는 동종의 메모리 타입을 결정하는 단계를 포함함 ―; 및
    결정된 동종의 메모리 타입에 대응하는 상기 이종의 메모리 시스템 내의 복수의 동종의 메모리들 중의 동종의 메모리로 상기 메모리 액세스 요청을 라우팅하는 단계
    를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  27. 삭제
  28. 제 26 항에 있어서,
    복수의 동종의 메모리들 각각은 상기 이종의 메모리 시스템 내의 휘발성 메모리 또는 비-휘발성 메모리 중 어느 하나인,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  29. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 정적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    메모리 액세스 요청 정책 테이블의 정적 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  30. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 정적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    상기 메모리 액세스 요청 내의 마스터 식별자에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  31. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 정적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    상기 메모리 액세스 요청 내의 애플리케이션 식별자에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  32. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    동적인 이종의 메모리 액세스 요청 프로파일 룩-업 테이블의 동적인 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  33. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    상기 메모리 액세스 요청 내의 메모리 액세스 요청 우선순위에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  34. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    상기 메모리 액세스 요청 내의 메모리 액세스 요청 데드라인에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  35. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    상기 프로세서-기반 시스템의 전력 모드에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  36. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    메모리 페이지 히트비에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  37. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    메모리 액세스 요청 트래픽에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  38. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하는 단계; 및
    애플리케이션 우선순위; 메모리 액세스 요청 데드라인; 전력-모드; 메모리 페이지 히트비; 및 메모리 액세스 요청 트래픽으로 구성된 그룹으로부터 선택된 적어도 하나의 동작 파라미터에 기초하여 상기 메모리 액세스 요청 정책을 동적인 이종의 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  39. 제 26 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하는 단계는,
    상기 프로세서-기반 시스템의 유효 동작 프로파일이 존재하는지 여부를 결정하는 단계; 및
    상기 유효 동작 프로파일이 존재하지 않는 경우, 상기 메모리 액세스 요청 정책을 디폴트 메모리 액세스 요청 정책으로 결정하는 단계를 포함하는,
    프로세서-기반 시스템에서 이종의 메모리 시스템에 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터의 방법.
  40. 컴퓨터-실행 가능한 명령들이 저장되어 있는 비-일시적 컴퓨터-판독 가능한 매체로서,
    상기 컴퓨터-실행 가능한 명령들은, 프로세서-기반 시스템에서 이종의 메모리 시스템으로 메모리 액세스 요청들을 라우팅하기 위한 버스 상호연결부 아비터로 하여금,
    요청 디바이스로부터 버스 상호연결부에서 메모리 액세스 요청을 수신하게 하고;
    상기 메모리 액세스 요청과 연관되는 성능 특성들에 기초하여, 상기 버스 상호연결부에 커플링되는 이종의 메모리 시스템 내의 복수의 동종의 메모리 타입들 중에서 동종의 메모리 타입을 결정하게 하고 ― 상기 결정하는 것은:
    상기 메모리 액세스 요청에 기초하여, 복수의 이종의 메모리 액세스 요청 정책들 중에서 메모리 액세스 요청 정책을 결정하고 ― 각각의 메모리 액세스 요청 정책은 상기 복수의 동종의 메모리 타입들 중의 동종의 메모리 타입에 대응하고, 각각의 메모리 액세스 요청 정책은 정적인 이종의 메모리 액세스 요청 정책 및 동적인 이종의 메모리 액세스 요청 정책 중 하나임 ―, 그리고
    결정된 메모리 액세스 요청 정책에 대응하는 동종의 메모리 타입을 결정하도록 구성되는 것에 의함 ―; 그리고
    결정된 동종의 메모리 타입에 대응하는 상기 이종의 메모리 시스템 내의 복수의 동종의 메모리들 중의 동종의 메모리에 상기 메모리 액세스 요청을 라우팅하게 하기 위한 것인,
    비-일시적 컴퓨터-판독 가능한 매체.
  41. 제 20 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 메모리 제어기는,
    상기 메모리 액세스 요청들이 정적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    메모리 액세스 요청 정책 테이블의 정적 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템.
  42. 제 20 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 메모리 제어기는,
    상기 메모리 액세스 요청들이 동적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    동적인 이종의 메모리 액세스 요청 프로파일 룩-업 테이블의 동적 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템.
  43. 제 20 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 메모리 제어기는,
    상기 메모리 액세스 요청들이 동적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청들 내의 메모리 액세스 요청 우선순위들에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템.
  44. 제 20 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 메모리 제어기는,
    상기 메모리 액세스 요청들이 동적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청들 내의 메모리 액세스 요청 데드라인들에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템에서 버스 상호연결부에 커플링되는 이종의 메모리 시스템.
  45. 제 25 항에 있어서,
    상기 제 1 동종의 메모리 시스템은 DRAM(Dynamic Random Access Memory) 동종의 메모리로 구성되고, 상기 제 2 동종의 메모리 시스템은 MRAM(Magnetoresistive Random Access Memory) 동종의 메모리로 구성되는,
    프로세서-기반 시스템.
  46. 제 25 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청들이 정적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    메모리 액세스 요청 정책 테이블의 정적 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템.
  47. 제 25 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청들이 동적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    동적인 이종의 메모리 액세스 요청 프로파일 룩-업 테이블의 동적 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템.
  48. 제 25 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청들이 동적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청들 내의 메모리 액세스 요청 우선순위들에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템.
  49. 제 25 항에 있어서,
    상기 메모리 액세스 요청 정책을 결정하기 위해, 상기 버스 상호연결부 아비터는,
    상기 메모리 액세스 요청들이 동적인 이종의 메모리 액세스 요청들에 대응한다고 결정하고; 그리고
    상기 메모리 액세스 요청들 내의 메모리 액세스 요청 데드라인들에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하도록 추가로 구성되는,
    프로세서-기반 시스템.
  50. 제 40 항에 있어서,
    상기 복수의 동종의 메모리들은 DRAM(Dynamic Random Access Memory) 동종의 메모리 및 MRAM(Magnetoresistive Random Access Memory) 동종의 메모리로 구성되는
    비-일시적 컴퓨터-판독 가능한 매체.
  51. 제 40 항에 있어서,
    상기 버스 상호연결부 아비터로 하여금, 추가로,
    상기 메모리 액세스 요청이 정적인 이종의 메모리 액세스 요청에 대응한다고 결정하게 하고; 그리고
    메모리 액세스 요청 정책 테이블의 정적 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 정적인 이종의 메모리 액세스 요청 정책으로 결정하게 하는 것에 의해,
    상기 버스 상호연결부 아비터로 하여금 상기 메모리 액세스 요청 정책을 결정하게 하기 위한, 컴퓨터-실행 가능한 명령들이 저장되어 있는,
    비-일시적 컴퓨터-판독 가능한 매체.
  52. 제 40 항에 있어서,
    상기 버스 상호연결부 아비터로 하여금, 추가로,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하게 하고; 그리고
    동적인 이종의 메모리 액세스 요청 프로파일 룩-업 테이블의 동적 메모리 액세스 요청 정책 룩-업에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하게 하는 것에 의해,
    상기 버스 상호연결부 아비터로 하여금 상기 메모리 액세스 요청 정책을 결정하게 하기 위한, 컴퓨터-실행 가능한 명령들이 저장되어 있는,
    비-일시적 컴퓨터-판독 가능한 매체.
  53. 제 40 항에 있어서,
    상기 버스 상호연결부 아비터로 하여금, 추가로,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하게 하고; 그리고
    상기 메모리 액세스 요청 내의 메모리 액세스 요청 우선순위에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하게 하는 것에 의해,
    상기 버스 상호연결부 아비터로 하여금 상기 메모리 액세스 요청 정책을 결정하게 하기 위한, 컴퓨터-실행 가능한 명령들이 저장되어 있는,
    비-일시적 컴퓨터-판독 가능한 매체.
  54. 제 40 항에 있어서,
    상기 버스 상호연결부 아비터로 하여금, 추가로,
    상기 메모리 액세스 요청이 동적인 이종의 메모리 액세스 요청에 대응한다고 결정하게 하고; 그리고
    상기 메모리 액세스 요청 내의 메모리 액세스 요청 데드라인에 기초하여 상기 메모리 액세스 요청 정책을 상기 동적인 이종의 메모리 액세스 요청 정책으로 결정하게 하는 것에 의해,
    상기 버스 상호연결부 아비터로 하여금 상기 메모리 액세스 요청 정책을 결정하게 하기 위한, 컴퓨터-실행 가능한 명령들이 저장되어 있는,
    비-일시적 컴퓨터-판독 가능한 매체.
KR1020157021849A 2013-01-17 2014-01-14 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들 KR101609718B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/743,400 US9224452B2 (en) 2013-01-17 2013-01-17 Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems
US13/743,400 2013-01-17
PCT/US2014/011442 WO2014113374A1 (en) 2013-01-17 2014-01-14 Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems

Publications (2)

Publication Number Publication Date
KR20150107819A KR20150107819A (ko) 2015-09-23
KR101609718B1 true KR101609718B1 (ko) 2016-04-06

Family

ID=50073448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021849A KR101609718B1 (ko) 2013-01-17 2014-01-14 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들

Country Status (6)

Country Link
US (1) US9224452B2 (ko)
EP (1) EP2946302B1 (ko)
JP (1) JP5917782B2 (ko)
KR (1) KR101609718B1 (ko)
CN (1) CN104919439B (ko)
WO (1) WO2014113374A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200060248A (ko) * 2018-11-21 2020-05-29 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 정적 랜덤 액세스 메모리를 액세스하는 방법, 장치, 기기 및 저장 매체

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015155103A1 (de) * 2014-04-08 2015-10-15 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt
DE102015113603B4 (de) * 2014-08-19 2024-04-04 Samsung Electronics Co., Ltd. Datenverwaltungsverfahren in virtualisierten Hyperscale-Umgebungen
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
KR102408613B1 (ko) 2015-08-27 2022-06-15 삼성전자주식회사 메모리 모듈의 동작 방법, 및 메모리 모듈을 제어하는 프로세서의 동작 방법, 및 사용자 시스템
CN106201989B (zh) * 2016-06-28 2019-06-11 上海兆芯集成电路有限公司 具有从空闲列表的处理器和使用其回收物理寄存器的方法
US10055158B2 (en) * 2016-09-22 2018-08-21 Qualcomm Incorporated Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems
TWI611296B (zh) 2017-04-13 2018-01-11 慧榮科技股份有限公司 記憶體控制器與資料儲存裝置
US10810142B2 (en) * 2017-05-15 2020-10-20 Xilinx, Inc. Adaptive scheduling of memory requests
US11295235B2 (en) 2017-12-28 2022-04-05 Intel Corporation Filtering training data for models in a data center
US20190042488A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Shared memory controller in a data center
KR102482896B1 (ko) 2017-12-28 2022-12-30 삼성전자주식회사 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치
US11281595B2 (en) * 2018-05-28 2022-03-22 Intel Corporation Integration of disparate system architectures using configurable isolated memory regions and trust domain conversion bridge
CN110825312B (zh) * 2018-08-10 2023-06-23 昆仑芯(北京)科技有限公司 数据处理装置、人工智能芯片及电子设备
JP7292044B2 (ja) * 2019-02-07 2023-06-16 キヤノン株式会社 制御装置および制御方法
US11487683B2 (en) * 2020-04-15 2022-11-01 AyDeeKay LLC Seamlessly integrated microcontroller chip
US11775185B2 (en) * 2020-09-17 2023-10-03 Micron Technology, Inc. Power budget arbitration for multiple concurrent access operations in a memory device
KR102600204B1 (ko) * 2020-12-01 2023-11-10 한국전자통신연구원 Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치
CN115379261B (zh) * 2022-08-10 2024-03-12 微梦创科网络科技(中国)有限公司 视频的发送方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033367A1 (en) 2005-08-04 2007-02-08 Premanand Sakarda Memory manager for heterogeneous memory control
US20120089759A1 (en) 2010-10-08 2012-04-12 Qualcomm Incorporated Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260127B1 (en) 1998-07-13 2001-07-10 Compaq Computer Corporation Method and apparatus for supporting heterogeneous memory in computer systems
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
US6853382B1 (en) * 2000-10-13 2005-02-08 Nvidia Corporation Controller for a memory system having multiple partitions
US6985985B2 (en) 2002-06-05 2006-01-10 Lsi Logic Corporation Methods and structure for dynamic modifications to arbitration for a shared resource
WO2005088468A2 (en) * 2004-03-10 2005-09-22 Koninklijke Philips Electronics N.V. Integrated circuit and method for memory access control
US7970980B2 (en) 2004-12-15 2011-06-28 International Business Machines Corporation Method and apparatus for accessing memory in a computer system architecture supporting heterogeneous configurations of memory structures
US7685376B2 (en) * 2006-05-03 2010-03-23 Intel Corporation Method to support heterogeneous memories
US8074022B2 (en) * 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
KR101464338B1 (ko) 2007-10-25 2014-11-25 삼성전자주식회사 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
US8700830B2 (en) * 2007-11-20 2014-04-15 Spansion Llc Memory buffering system that improves read/write performance and provides low latency for mobile systems
EP2497025A1 (en) * 2009-11-04 2012-09-12 ST-Ericsson (France) SAS Dynamic management of random access memory
US8539129B2 (en) * 2010-04-14 2013-09-17 Qualcomm Incorporated Bus arbitration techniques to reduce access latency

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033367A1 (en) 2005-08-04 2007-02-08 Premanand Sakarda Memory manager for heterogeneous memory control
US20120089759A1 (en) 2010-10-08 2012-04-12 Qualcomm Incorporated Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200060248A (ko) * 2018-11-21 2020-05-29 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 정적 랜덤 액세스 메모리를 액세스하는 방법, 장치, 기기 및 저장 매체
US11093388B2 (en) 2018-11-21 2021-08-17 Beijing Baidu Netcom Science And Technology Co., Ltd. Method, apparatus, device and storage medium for accessing static random access memory
KR102332375B1 (ko) * 2018-11-21 2021-11-29 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 정적 랜덤 액세스 메모리를 액세스하는 방법, 장치, 기기 및 저장 매체

Also Published As

Publication number Publication date
EP2946302A1 (en) 2015-11-25
KR20150107819A (ko) 2015-09-23
EP2946302B1 (en) 2017-02-22
US9224452B2 (en) 2015-12-29
US20140201435A1 (en) 2014-07-17
WO2014113374A1 (en) 2014-07-24
CN104919439A (zh) 2015-09-16
JP5917782B2 (ja) 2016-05-18
JP2016503935A (ja) 2016-02-08
CN104919439B (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
KR101609718B1 (ko) 프로세서-기반 시스템들에서 이종의 메모리 액세스 요청들을 지원하기 위한 이종의 메모리 시스템들, 및 관련 방법들 및 컴퓨터-판독 가능한 매체들
US10402120B2 (en) Memory controller arbiter with streak and read/write transaction management
KR101881089B1 (ko) 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들
US9053058B2 (en) QoS inband upgrade
ES2573284T3 (es) Gestores híbridos de criterios de memoria caché con escritura doble / escritura simple, y sistemas y procedimientos relacionados
US20130061003A1 (en) Coherence switch for i/o traffic
US10191850B2 (en) Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
KR101847905B1 (ko) 공유 캐시 메모리 시스템들에 대한 대략적인 사용량 측정들의 생성
JP2013542520A (ja) ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション
TWI498734B (zh) 用於分配記憶體階層中之資料的方法及裝置
US8922571B2 (en) Display pipe request aggregation
US10176096B2 (en) Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches
US11194744B2 (en) In-line memory module (IMM) computing node with an embedded processor(s) to support local processing of memory-based operations for lower latency and reduced power consumption
US11093416B1 (en) Memory system supporting programmable selective access to subsets of parallel-arranged memory chips for efficient memory accesses
US20240095173A1 (en) Providing fairness-based allocation of caches in processor-based devices
KR101458928B1 (ko) 물리적으로 태그된 데이터 캐시로의 트래픽을 필터링하기 위한 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee