KR20150114958A - 이기종 메모리의 동적 관리 기법 - Google Patents

이기종 메모리의 동적 관리 기법 Download PDF

Info

Publication number
KR20150114958A
KR20150114958A KR1020157020998A KR20157020998A KR20150114958A KR 20150114958 A KR20150114958 A KR 20150114958A KR 1020157020998 A KR1020157020998 A KR 1020157020998A KR 20157020998 A KR20157020998 A KR 20157020998A KR 20150114958 A KR20150114958 A KR 20150114958A
Authority
KR
South Korea
Prior art keywords
memory
application
type
integrated circuit
circuit memory
Prior art date
Application number
KR1020157020998A
Other languages
English (en)
Other versions
KR102207598B1 (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 KR20150114958A publication Critical patent/KR20150114958A/ko
Application granted granted Critical
Publication of KR102207598B1 publication Critical patent/KR102207598B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0646Configuration or reconfiguration
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • Y02B60/142
    • 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)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Debugging And Monitoring (AREA)

Abstract

컴퓨팅 장치를 동작시키는 방법은 작업부하(workload) 또는 상이한 유형의 애플리케이션으로부터의 요청에 기초하여 적어도 두 유형의 메모리를 동적으로 관리하는 것을 포함한다. 제1 유형의 메모리는 컴퓨팅 장치 내의 제2 유형의 메모리보다 더 넓은 대역폭, 더 낮은 메모리 레이턴시(memory latency), 및/또는 더 낮은 전력 소비를 가질 수 있는 고성능 메모리일 수 있다. 일실시예에서, 컴퓨팅 장치는 하나 이상의 프로세서 코어와 함께 배치되는 와이드 I/O DRAM을 포함하는 SoC(system on a chip)를 포함한다. LPDDR3 DRAM(Low Power Double Data Rate 3 dynamic random access memory) 메모리는 내부적으로 SoC에 연결되거나 또는 SoC의 임베디드 부분이다. 실시예들에서, 컴퓨팅 장치는 적어도 셀폰, 모바일 장치, 임베디드 시스템, 비디오 게임, 미디어 콘솔, 랩탑 컴퓨터, 데스크탑 컴퓨터, 서버 및/또는 데이터 센터에 포함될 수 있다.

Description

이기종 메모리의 동적 관리 기법{DYNAMIC MANAGEMENT OF HETEROGENEOUS MEMORY}
운영 체제(OS)는 컴퓨터 하드웨어 리소스를 관리하는 프로세서 판독가능 명령어를 포함하며, 애플리케이션 프로그램(애플리케이션)과 같은 프로세서 판독가능 명령어를 갖는 다른 컴퓨팅 프로그램을 위한 공통 서비스를 제공한다. 통상적으로 OS는 애플리케이션과 컴퓨터 하드웨어 사이의 매개자(intermediary) 역할을 한다. OS는 통상적으로 컴퓨팅 리소스의 효율적인 사용을 위해 태스크를 스케줄링한다. OS는 통상적으로 키보드로부터의 입력을 인식하는 것, 디스플레이 화면에 출력을 보내는 것, 파일 및 디렉토리를 추적하는 것 및 프린터나 디스크 드라이브와 같은 주변 장치를 제어하는 것과 같은 기본 작업을 수행한다.
컴퓨팅 장치를 동작시키는 방법은 작업부하(workload) 또는 상이한 유형의 애플리케이션으로부터의 요청에 기초하여 적어도 두 유형의 메모리(이기종 메모리)를 동적으로 관리하는 것을 포함한다. 제1 유형의 메모리는 컴퓨팅 장치 내의 제2 유형의 메모리보다 더 넓은 대역폭, 더 낮은 메모리 레이턴시(memory latency), 마모고장(wear-out) 전의 더 많은 기록 횟수 및/또는 더 낮은 전력 소비를 가질 수 있는 고성능 메모리일 수 있다. 일실시예에서, 컴퓨팅 장치는 하나 이상의 프로세서 코어에 인접하게 위치하는 와이드 I/O DRAM(고성능 메모리의 일례)을 포함하는 SoC(system on a chip)를 포함한다. LPDDR3 DRAM(Low Power Double Data Rate 3 dynamic random access memory) 메모리(종래의 메모리의 일례)는 내부적으로 또는 외부적으로 SoC에 연결된다. 실시예들에서, 컴퓨팅 장치는 적어도 셀폰, 모바일 장치, 임베디드 시스템, 비디오 게임 콘솔, 미디어 콘솔, 랩탑 컴퓨터, 데스크탑 컴퓨터, 서버 및/또는 데이터 센터에 포함될 수 있다.
일실시예에서, OS는 고성능 메모리를 특정 작업부하 또는 기능(예컨대, 광선 추적(ray tracing), 프레임/비디오 버퍼링, NUI(natural user interface) 데이터 버퍼링)을 갖는 소정의 애플리케이션에 할당한다. OS는 새로운 데이터가 고성능 메모리를 차지할 필요가 있는 경우에 고성능 메모리로부터 데이터를 이동시킬 수 있다. OS 및 하나 이상의 프로세서는 또한, 메모리 컨트롤러 로직 하드웨어 및/또는 소프트웨어와 함께, 데이터 무결성을 보존하기 위해 에러 정정을 수행한다. 상이한 유형의 메모리의 기능 및/또는 성능 특성을 판정하기 위해, OS는 메모리 특성의 온라인(웹) 프로세서 판독가능 카탈로그에 액세스할 수도 있다.
일실시예에서, 애플리케이션은, OS에게 특정 애플리케이션이 고성능 메모리를 사용함으로써 혜택을 받는다는 것을 나타내는 애플리케이션 목록에 속성 플래그 또는 정보를 포함한다. 요청 애플리케이션이 애플리케이션 목록에 없는 경우 또는 요청 애플리케이션이 이용가능한 것보다 더 많은 양의 고성능 메모리를 요구할 경우에, OS는 고성능 메모리에 대한 액세스를 허용하지 않을 수도 있다. 일실시예에서, OS는 애플리케이션의 실행을 모니터링하고 메모리 위치 액세스 및 사용 패턴을 추적한다. 실시예들에서, OS는 속성 플래그 또는 정보를 메모리 컨트롤러 또는 메모리 관리자와 같은 가상 또는 물리적 메모리 할당기에게 전달할 수 있다.
일실시예에서는, 고성능 메모리가 가상 캐시 메모리 또는 캐시 메모리로서 사용될 수도 있다.
실시예들에서, OS 또는 메모리 컨트롤러는 또한 메모리 운영 세부사항을 얻기 위해 상이한 유형의 메모리에 질문할 수도 있고 또한 건강(health) 및 성능 정보에 대해 상이한 유형의 메모리에게 주기적으로 질문할 수도 있다. OS 또는 메모리 컨트롤러는 또한 상이한 유형의 메모리의 전력 소비 상태를 관리할 수도 있다.
방법 실시예는 컴퓨팅 장치에 의해 처리되는 애플리케이션에 한 유형의 메모리를 할당한다. 이 방법은 컴퓨팅 장치에서 이용가능한 집적 회로 메모리의 유형을 판정하는 것을 포함한다. 이용가능한 집적 회로 메모리의 유형은 제1 고성능 유형의 메모리 및 고성능 메모리가 아닌 제2 유형의 메모리를 포함한다. 애플리케이션으로부터의 고성능 메모리 사용 요청이 수신된다. 이 요청에 대한 응답으로 고성능 메모리가 애플리케이션에 할당된다.
장치 실시예는 하나 이상의 프로세서 및 제1 성능 특성을 갖는 제1 프로세서 판독가능 메모리를 포함한다. 이 장치는 제2 성능 특성을 갖는 제2 프로세서 판독가능 메모리를 포함한다. 제1 성능 특성은 제2 성능 특성보다 더 우수하다. 하나 이상의 프로세서가 OS의 프로세서 판독가능 명령어를 실행하여 하나 이상의 소프트웨어 애플리케이션이 제1 프로세서 판독가능 메모리의 사용을 요청하는지 여부 및 하나 이상의 애플리케이션이 사용하는 프로세서 판독가능 메모리의 양을 판정한다. 하나 이상의 프로세서는 OS의 프로세서 판독가능 명령어를 실행하여, 제1 프로세서 판독가능 메모리의 사용에 대한 요청 및 하나 이상의 애플리케이션이 사용하는 프로세서 판독가능 메모리의 양에 대한 반응으로, 하나 이상의 애플리케이션 중 적어도 하나의 애플리케이션이 제1 프로세서 판독가능 메모리에 액세스하도록 허용한다.
또 다른 실시예에서, 하나 이상의 프로세서 판독가능 메모리 장치는, 실행될 경우에 하나 이상의 프로세서로 하여금 고성능 메모리를 애플리케이션에 할당하는 방법을 수행하게 하는 명령어를 포함한다. 애플리케이션으로부터의 고성능 메모리의 사용 요청 및 애플리케이션이 사용할 메모리의 양이 수신된다. 이용가능한 고성능 메모리의 양에 대한 판정이 이루어진다. 이 애플리케이션은 애플리케이션이 사용할 메모리의 양 및 이용가능한 고성능 메모리의 양에 따라서 고성능 메모리를 할당받는다.
본 개요는 후속하여 발명의 상세한 설명 부분에서 설명되는 개념들 중 선택된 것들을 단순화된 형태로 소개하고자 제공되는 것이다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 결정하는 데 도움이 되고자 함도 아니다.
도 1은 컴퓨팅 장치의 예시적인 하드웨어 아키텍처의 하이레벨 블록도이다.
도 2는 상이한 유형의 메모리에 액세스하기 위한 예시적인 소프트웨어 아키텍처의 하이레벨 블록도이다.
도 3a는 상이한 유형의 메모리에 액세스하기 위한 예시적인 OS 아키텍처의 하이레벨 블록도이다.
도 3b는 이기종 메모리 소프트웨어의 예시적인 동적 관리의 하이레벨 블록도이다.
도 4는 상이한 유형의 메모리를 하나 이상의 애플리케이션에 할당하는 예시적인 방법의 흐름도이다.
도 5a는 고성능 메모리를 가상 캐시로서 사용하는 예시적인 방법의 흐름도이다.
도 5b는 고성능 메모리를 캐시로서 사용하는 예시적인 방법의 흐름도이다.
도 6a는 구성, 성능 및 건강을 포함하는 메모리 정보를 얻기 위해 상이한 유형의 메모리에 질의하는 예시적인 방법의 흐름도이다.
도 6b는 상이한 유형의 메모리 전력을 관리하기 위한 예시적인 방법의 흐름도이다.
도 7은 예시적인 게이밍 및 미디어 시스템의 투시도이다.
도 8은 도 7에 도시된 게이밍 및 미디어 시스템의 구성요소들의 예시적인 기능 블록도이다.
SoC(SOC라고도 함)는 전자 소자 및/또는 컴퓨팅 장치 또는 다른 전자 시스템의 서브시스템을 단일 반도체 기판 및/또는 단일 패키지 내에 하우징된 단일 칩에 집적하는 집적 회로(IC)이다. 예를 들어, 기존에 개인용 컴퓨터(PC) 내 메모리 모듈 서브시스템에 있던 메모리가 지금은 SoC에 포함될 수 있다. 이와 유사하게, 메모리 제어 로직이 별도로 패키징된 메모리 컨트롤러 내에 포함되기보다는 SoC의 프로세서에 포함될 수 있다.
SoC의 하나 이상의 프로세서는 상이한 유형의 메모리 특성을 갖는 상이한 유형의 메모리에 대한 액세스를 가질 수 있다. 메모리 특성 또는 성능 파라미터는 대역폭, 메모리 레이턴시, 전력 소비, 마모고장 전 기록 횟수 및/또는 열발생을 포함할 수 있지만, 이에 제한되지는 않는다. 보다 넓은 대역폭을 갖는 (또는 다른 메모리보다 소정 기간당 더 많은 데이터를 송신 또는 수신할 수 있는) 메모리와 같은 고성능 메모리는 고가이므로 특정한 고성능 특성을 갖지 않는 메모리만큼 이용가능하지 않을 수 있다.
도 1은 컴퓨팅 장치 실시예의 예시적인 하드웨어 아키텍처의 하이레벨 블록도이다. 실시예들에서, 컴퓨팅 장치(100)는 적어도 셀 폰, 모바일 장치, 임베디드 시스템(embedded system), 비디오 게임 콘솔, 미디어 콘솔, 랩탑 컴퓨터, 데스크탑 컴퓨터, 서버 및/또는 데이터 센터에 포함될 수 있다.
일실시예에서 컴퓨팅 장치(100)는 SoC(101) 및 메모리(104)를 포함한다. SoC는 컴퓨팅 장치 또는 다른 전자 시스템의 컴포넌트를 단일 칩 또는 반도체 기판에 집적한 IC이다. SoC(101)는 하나 이상의 프로세서 코어(103) 및 고성능 메모리(102)를 포함한다. 프로세서 코어(103)는 내부 신호 경로(106)를 통해 고성능 메모리(102)와 통신한다. 일실시예에서, 고성능 메모리(102)는 신호 경로(106)에 결합되는 인터페이스(102a)를 포함한다. 프로세서 코어(103)는 또한 외부 신호 경로(105)를 통해 외부 메모리(104)와 통신한다. 일실시예에서, 신호 경로(106, 105)는 OS 및 SoC(101) 내의 임베디드 메모리 컨트롤러에 의해 제어되는 별개의 신호 경로들이다.
일실시예에서, 메모리(104)는 SoC(101) 외부에 있으며, 마더보드와 같은 인쇄 회로 기판 상의 솔더온 컴포넌트나 메모리 모듈로서 구성될 수 있다. 일실시예에서, 메모리(104)는 적어도 인쇄 회로 기판 상의 트레이스 또는 신호 라인을 포함하는 신호 경로(105)에 결합되는 인터페이스를 포함한다. 일실시예에서, SoC(101)는 또한 신호 경로(105)를 포함하는 동일한 인쇄 회로 기판에 결합된다.
당업자라면 이해할 수 있듯이, 다른 전자 부품들이 SoC(101)에 포함될 수도 있다. SoC(101)는 디지털, 아날로그, 혼합 신호, 및/또는 무선 주파수 회로를(이들 중 하나 이상을 단일 반도체 기판 상에) 포함할 수 있다. SoC(101)는 오실레이터, 위상 동기 루프, 카운터 타이머, 실시간 타이머, 파워온 리셋 생성기, 외부 인터페이스(예컨대, USB(Universal Serial Bus), IEEE 1394 인터페이스(FireWire), 이더넷, USART(universal Asynchronous Receiver/Transmitter) 및 SPI(Serial Peripheral)), 아날로그 인터페이스, 전압 조정기 및/또는 전력 관리 회로를 포함할 수 있다.
다른 실시예에서, SoC(101)는 SIP(system in package) 또는 PoP(package on package)로 대체될 수 있다. SiP에서는, 복수의 칩 또는 반도체 기판이 단일 패키지에 수용된다. SiP 실시예에서, 프로세서 코어(103)가 하나의 반도체 기판 상에 존재하고 고성능 메모리(102)가 제2 반도체 기판 상에 존재하며, 이들이 단일 패키지에 수용된다. 일실시예에서, 제1 반도체 기판은 와이어 본딩에 의해 제2 반도체 기판에 결합된다.
PoP 실시예에서는, 프로세서 코어(103)가 제1 패키지에 수용된 하나의 반도체 다이 상에 있고 고성능 메모리(102)가 제2의 다른 패키지에 수용된 제2 반도체 다이 상에 있다. 그 다음에 제1 및 제2 패키지는, 패키지들, 특히 반도체 다이들 사이에서 신호를 전달하는 표준 인터페이스와 함께 적층될 수 있다. 일실시예에서, 적층된 패키지는 그 후 소자로서 메모리(104)를 구비한 인쇄 회로 기판에 결합될 수 있다.
실시예들에서, 프로세서 코어(103)는 메모리에 저장된 프로세서 (또는 머신) 판독가능 명령어를 실행(또는 판독)하는 하나 이상의 프로세서를 포함한다. 프로세서 판독가능 명령어의 일례는 컴퓨팅 장치(100)용 OS 및/또는 애플리케이션 소프트웨어 프로그램(애플리케이션)(예컨대, 도 2에 도시된 OS(205) 및 애플리케이션(202-204))을 포함할 수 있다. 프로세서 코어(103)는 OS 및 애플리케이션의 프로세서 판독가능 명령어의 실행에 응답하여 고성능 메모리(102) 메모리(104)를 사용한다. 일실시예에서, 프로세서 코어(103)는 프로세서와 메모리 컨트롤러 또는 대안적으로 메모리 컨트롤러에 의해 수행되는 메모리 관리 기능도 마찬가지로 수행하는 프로세서를 포함할 수 있다. 프로세서 코어(103)는 또한 컨트롤러, CPU(central processing unit), GPU(graphics-processing unit),m DSP(digistal signal processor) 및/또는 FPGA(field programmable gate array)를 포함할 수 있다. 일실시예에서, 고성능 메모리(102)는 프로세서 코어(103) 위에 위치한다.
일실시예에서, 고성능 메모리(102)는 메모리(104)보다 성능에 있어 우수한 대역폭, 메모리 레이턴시, 열발생, 마모고장 전 기록 횟수 및/또는 전력 소비와 같은 하나 이상의 메모리 특성을 갖는다. 예를 들어, 고성능 메모리(102)는 메모리(104)보다 더 넓은 대역폭을 갖는 와이드 I/O DRAM일 수 있다. 메모리(104)는 LPDDR3 DRAM(Low Power Double Data Rate 3 dynamic rancom access memory) 메모리(저전력 DDR, 모바일 DDR(MDDR) 또는 mDDR로도 알려져 있음)일 수도 있다. 일실시예에서, 메모리 인터페이스(102a)는 신호 경로(106)에서 신호를 송신 및 수신하는 와이드 I/O DRAM 인터페이스인 반면에, 메모리 인터페이스(104)는 신호 경로(105)에서 신호를 송신 및 수신하는 LPDDR3 DRAM 인터페이스이다.
실시예들에서, 고성능 메모리(102) 및 메모리(104)는 별개의 반도체 기판 상에 위치하는 IC에 하나 이상의 메모리 셀의 어레이를 포함한다. 일실시예에서, 고성능 메모리(102) 및 메모리(104)는 별도로 패키징된 장치에 수용된 제각기의 집적 모노리식 회로에 포함된다. 실시예들에서, 고성능 메모리(102) 및 메모리(104)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다.
휘발성 메모리의 유형으로는 DRAM, 분자 전하 기반(제타코어) DRAM, 플로팅 바디(floating-body) DRMA 및 SRAM을 들 수 있지만, 이들로 한정되는 것은 아니다. 특정한 유형의 DRAM으로는 DDR(double data rate SDRAM) 또는 차세대 SDRAM(예컨대, DDRn)이 있다.
비휘발성 메모리의 유형으로는, EEPROM(electrically erasable program read-only memory), FLASH(NAND 및 NOR FLASH를 포함함), ONO FLASH, MRAM(magneto resistive 또는 magnetic RAM), FRAM(ferroelectric RAM), 홀로그래픽 미디어, 오보닉(Ovonic)/상(phase) 변화, 나노 크리스탈, 나노튜브 RAM(NRAM-Nantero), MEMS 스캐닝 프로브 시스템, MEMS 캔틸레버 스위치, 폴리머, 분자, 나노플로팅 게이트 및 싱글 일렉트론을 들 수 있지만, 이들로 한정되지는 않는다.
실시예들에서, 신호 경로(105/106)는 상호접속부, 도전 소자(conducting element), 접촉부, 핀, 반도체 기판 내의 영역, 와이어, 금속 트레이스/신호 라인, 또는 광전자 콘덕터 또는 이들의 조합과 같이 신호를 전달하는 매체이다. 일실시예에서, 복수의 신호 경로가 도면에 도시되어 있는 단일 신호 경로를 대체할 수도 있고, 단일 신호 경로가 도면에 도시되어 있는 복수의 단일 신호 경로들을 대체할 수도 있다. 실시예들에서, 신호 경로는 버스 및/또는 포인트투포인트 접속을 포함할 수 있다. 일실시예에서, 신호 경로는 제어 및 데이터 신호 라인을 포함한다. 다른 실시예에서는, 신호 경로가 데이터 신호 라인 또는 제어 신호 라인을 포함한다. 또 다른 실시예에서는, 신호 경로가 단일 방향(신호가 한 방향으로만 이동함) 또는 양방향(신호가 양방향으로 이동함) 또는 단일 방향 신호 라인과 양방향 신호 라인의 조합이다.
도 2는 상이한 유형의 메모리에 액세스하기 위한 예시적인 소프트웨어 아키텍처(200)의 하이레벨 블록도이다. OS(205) 및 특히 이기종 메모리(DMHM)(308)의 동적 관리부는 어느 애플리케이션(202-204)이 고성능 메모리(208)를 할당받고 어느 애플리케이션(202-204)이 메모리(209)를 할당받는지를 결정한다. 실시예들에서, 고성능 메모리(208)는 도 1에 도시된 고성능 메모리(102)에 대응하고 메모리(209)는 도 1에 도시된 메모리(104)에 대응한다. DMHM(308)은, 적어도 애플리케이션들(202-204) 중 하나가 속성 플래그 또는 정보를 통해 고성능 메모리를 요구하는지 여부에 기초하여, 애플리케이션들(202-204) 중 어느 애플리케이션이 고성능 메모리(208)에 대한 액세스를 가질 것인지를 결정한다. 특정한 애플리케이션이 특정한 메모리 유형(고성능 메모리(208) 또는 메모리(209))을 할당받을 것으로 결정되면, 적절한 장치 드라이버(206)가 OS(205)에 의해 사용된다.
OS(205), 특히 DMHM(308)은 또한 ACPI(advanced configuration and power interface) 드라이버, 레지스터, BIOS(basic input/output system) 및 테이블(총괄하여 ARBT)(207)을 사용하여 상세히 후술되는 고성능 메모리(208) 및 메모리(209)의 건강, 전력 및 성능과 같은 다른 기능을 수행한다. ACPI 드라이버는 메모리와 같은 하드웨어 컴포넌트를 발견하고, 구성하며, 전력을 관리하고 모니터링한다. 예를 들어, OS(205)는 ACPI 드라이버를 사용하여 주변 장치가 사용되지 않을 때 이들을 턴오프할 수 있다. BIOS는 통상적으로 비휘발성 메모리에 저장되는 입력 및 출력 동작을 제어하는 펌웨어에서의 컴퓨터 명령어 세트이다. 일실시예에서, ACPI 드라이버는 OS(205)가 BIOS와 통신하여 BIOS에게 주변 장치를 파워 다운하도록 지시할 수 있게 한다.
도 3a는 상이한 유형의 메모리에 액세스하기 위한 OS 아키텍처(300)의 하이레벨 블록도이다. 일실시예에서, OS(205)는 도 3a에 도시된 소프트웨어 컴포넌트 중 하나 이상을 포함한다. 일실시예에서, 소프트웨어 컴포넌트는 소프트웨어 프로그램, 소프트웨어 객체, 소프트웨어 기능, 소프트웨어 서브루틴, 소프트웨어 메소드, 소프트웨어 인스턴스, 스크립트 및/또는 코드 프래그먼트를 포함할 수 있다. 예를 들어, OS(205)는 프로세스 관리부(301), 메모리 관리부(302), I/O 장치 관리부(303), 파일 관리부(304), 네트워크 관리부(305), 사용자 인터페이스(306) 및 보호부(307) 중 하나 이상을 포함한다. 다양한 OS 소프트웨어 컴포넌트에 의해 수행될 수 있는 하나 이상의 예시적인 기능이 아래에 설명된다. 다른 예에서는, 후술하는 소프트웨어 컴포넌트의 더 많거나 또는 더 적은 소프트웨어 컴포넌트 및/또는 기능이 사용될 수도 있다.
실시예들에서, OS(205)의 적어도 일부는 프로세서 판독가능 메모리 장치에 저장된다. 일실시예에서, OS(205)의 적어도 일부는 도 1에 도시된 고성능 메모리(102) 및/또는 메모리(104)에 저장된다.
프로세스 관리부(301)는 사용자 및 시스템 프로세스를 생성하고 삭제하는 것을 담당한다. 프로세스 관리부(301)는 프로세스의 일시중지 및 재개를 담당할 수도 있다. 프로세스 관리부(301)는 또한 프로세스의 동기화 및 통신을 담당한다. 프로세스 관리부(301)는 또한 데드락(deadlock) 처리를 담당한다.
메모리 관리부(302)는 상이한 유형의 메모리에서 메모리의 어느 부분이 현재 특정 컴포넌트 또는 애플리케이션에 의해 사용되고 있는지를 추적하는 것을 담당한다. 메모리 관리부(302)는 또한 메모리 공간이 기용가능해지면 어느 프로세스가 메모리에 로딩되는지를 결정한다. 메모리 관리부는 또한 필요에 따라 메모리 공간을 할당하거나 할당해제한다.
일실시예에서, DMHM(dynamic management of heterogeneous memory)(308)은 메모리 관리부(302)에 포함된다. DMHM(308)은, 제한적인 것은 아니지만, 이용가능한 메모리의 유형을 결정하고, 특정 애플리케이션에 특정 유형의 메모리를 할당하며, 애플리케이션의 메모리 사용을 모니터링하고, 에러 검출 및 정정을 수행하고, 이용가능한 캐시를 결정하고, 메모리를 실제 또는 가상 캐시로서 사용하며, 메모리의 성능, 건강 및 구성을 모니터링하고 상이한 유형의 메모리의 전력을 관리하는 것을 담당한다. 일실시예에서, DMHM(308)의 기능들 중 하나 이상을 수행하기 위한 소프트웨어 컴포넌트가 도 3b에 도시되어 있다.
일실시예에서, DMHM(308)은 도 3b에 도시된 다음의 소프트웨어 컴포넌트들, 즉 메모리 유형부(310), 할당부(311), 사용량 모니터부(312), 에러 판정 및 정정부(313), 캐시 관리부(314), 성능 모니터, 건강 및 구성부(315) 및/또는 전력 관리부(316) 중 하나 이상을 포함한다.
메모리 유형부(310) 어떤 유형의 메모리가 컴퓨팅 환경에서 이용가능한지를 결정하는 것을 담당한다. 일실시예에서, 메모리 유형부(310)는 컴퓨팅 환경에게 어떤 메모리 유형이 이용가능한지 결정하도록 질의한다. 일실시예에서, 메모리 유형부(310)는 임의의 고성능 메모리가 이용가능한지의 여부를 결정한다. 일실시예에서, 메모리 유형부(310)는, 컴퓨팅 장치(100)와 같은 컴퓨팅 환경에서 리스트된 애플리케이션과 연관되는 메모리의 유형에 대한 기능 및/또는 성능 특성을 결정하기 위해, 인터넷을 통해 애플리케이션 특성의 온라인(웹) 카탈로그에 액세스한다. 사전결정된 임계치보다 더 넓은 대역폭을 갖는 것과 같이 특정 메모리가 애플리케이션에 대해 적절한 소정의 기능 및/또는 성능 특성을 갖는 경우, 메모리 유형부(310)는 특정 메모리를 고성능 메모리로서 할당할 것이다. 메모리가 사전결정된 임게치를 만족시키는 특정 기능 및/또는 성능 특성을 갖지 않는 경우, 메모리 유형(310)은 그 메모리를 고성능 메모리로 할당하지 않는다. 일실시예에서, 새로운 메모리 장치가 이용가능해짐에 따라, 메모리 기능 및/또는 성능 특성의 온라인 카탈로그가 업데이트/수정된다. 일실시예에서, OS는 메모리 식별과 관련된 메모리의 성능 특성을 추적하고 측정하고 측정된 성능 특성을 인터넷을 통해 온라인 카탈로그에 업로드한다. 일실시예에서, 사용자는 제스처, 터치 또는 음성을 통해 콘솔(1002)에 입력을 할 수 있다. 일실시예에서, 광학 I/O 인터페이스(1135)가 사용자의 제스처를 수신하고 번역한다. 다른 실시예에서, 콘솔(1002)은 사용자로부터 음성 및 제스처 입력을 수신하고 번역하기 위한 NUI를 포함한다. 다른 실시예에서는, 프런트 패널 서브어셈블리(1142)가 터치 또는 사용자의 음성 명령과 같은 음성을 수신하여 번역하기 위한 터치 서피스 및 마이크로폰을 포함한다. 또 다른 실시예에서는, 메모리 기능 및/또는 성능 특성의 카탈로그가 영구 메모리에 로컬로 저장된다.
할당부(311)는 고성능 메모리와 같은 특정한 유형의 메모리를 고성능 메모리를 요구했을 수 있는 특정 애플리케이션에 할당하는 것을 담당한다. 일실시예에서, 고성능 메모리로부터 이익을 얻을 수 있는 애플리케이션은 고성능 메모리를 요구하는 속성 플래그 또는 정보를 갖는다. 할당부(311)는 애플리케이션을 특정 유형의 메모리에 할당하기 전에 속성 정보를 확인한다. 일실시예에서, 할당부(311)는 애플리케이션에 대한 속성 정보의 리스트를 포함하며, 리스트 내의 특정 애플리케이션에 대한 저장된 속성 정보를 애플리케이션의 목록에 있을 수 있는 속성 정보와 비교한다.
일실시예에서, 할당부(311)는 속성 정보를 물리적 메모리 영역에 대한 메모리 페이지의 할당을 관리하는 가상 메모리 할당기에게 전달할 수 있다. 다른 실시예에서, 할당부(311)는 속성 정보를 메모리 컨트롤러를 통해 물리적 메모리 할당기에게 전달할 수 있다.
일실시예에서, 할당부(311)는 고성능 메모리를 요청하고 있는 특정 애플리케이션이 사용할 메모리의 양을 결정하고, 충분한 양의 고성능 메모리가 이용가능하지 않으면 그 요청을 거부할 것이다. 다른 실시예에서, 할당부(311)는 모든 실행 중인 애플리케이션의 런타임 우선순위를 비교하고 고성능 메모리가 보다 높은 우선순위의 애플리케이션에 맵핑되어 있는 경우 그 요청을 거부할 것이다.
일실시예에서, 할당부(311)는 고성능 메모리를 요청하는 애플리케이션을 리스트와 비교하여 그 애플리케이션을 고성능 메모리에 할당할 지의 여부를 결정한다. 일실시예에서, 할당부(311)는 소정의 애플리케이션이 고성능 메모리에 액세스하지 못하게 하기 위해 요주의(blacklisted) 애플리케이션의 리스트를 갖고 있다. 또는, 할당부(311)는 애플리케이션의 속성 정보가 고성능 메모리를 요구하지 않는 경우에도 고성능 메모리를 사용할 수 있는 가중된 애플리케이션의 리스트를 포함한다. 이 애플리케이션 리스트는 할당부(311)에 로컬로 또는 인터넷을 통해 온라인으로 액세스가능하게, 그 밖에 프로세서 판독가능 형태로 존재할 수 있으며 업데이트될 수도 있다. 일실시예에서, 적절한 속성 정보를 갖고 있지 않거나 그 애플리케이션이 블랙리스트에 있기 때문에 고성능 메모리를 할당받지 않는 애플리케이션은 고성능이 아닌 메모리를 할당받을 것이다.
고성능 메모리는 보다 빠르고(대역폭이 더 넓고 메모리 레이턴시가 더 낮으며) 보다 전력 효율적이므로, 어떤 애플리케이션은 고성능 메모리가 이용가능할 경우에, 심지어 그 애플리케이션이 적절한 속성 정보를 갖고 있지 않은 경우에도 고성능 메모리를 할당받으며, 따라서 컴퓨팅 장치는 더욱 전력 효율적으로 될 수 있다.
사용량 모니터부(312)는 특정한 유형의 메모리를 할당받은 애플리케이션의 메모리 사용량을 모니터링하는 것을 담당한다. 사용량 모니터부(312)는 사용되는 메모리의 양을 모니터링하여, 컴퓨팅 환경에서 이용가능한 물리적으로 이용가능한 메모리를 초과하지 않을 것이다. 사용량 모니터부(312)는, 할당부(311)가 애플리케이션을 고성능 메모리에 할당할 수 있도록, 고성능 메모리가 이용가능할 때를 식별한다. 일실시예에서, 사용량 모니터부(312)는 메모리 컨트롤러 또는 드라이버를 사용하여 특정 애플리케이션이 사용하는 고성능 메모리의 양을 관리하고 추적한다. 일실시예에서, 사용량 모니터부(312)는 액세스된 메모리의 애플리케이션 사용량의 개요(summary)를 편집하고 애플리케이션 사용량의 개요를 영구 메모리에 저장할 수 있으며 가끔 인터넷을 통해 온라인 카탈로그에 상기 저장된 정보를 업데이트할 수 있다.
에러 검출 및 정정부(313)는 특정 애플리케이션이 할당된 유형의 메모리를 사용할 때를 검출하고 에러를 정정하는 것을 담당한다. 다양한 실시예에서, 상이한 유형의 검출 및 에러 정정 방법이 사용될 수 있다. 예를 들어, 해시 함수 또는 체크섬 방법이 사용될 수 있다. 다른 실시예에서는, 패리티(parity) 비트 방법이 에러 정정 코드(ECC) 또는 전방 에러 정정(FEC) 방법에 사용될 수 있다.
캐시 관리부(314)는 고성능 메모리를 하나 이상의 프로세서용의 캐시로서 사용하는 것을 담당한다. 다른 실시예에서, 캐시 관리부(315)는 고성능 메모리를 가상 캐시로서 사용한다.
일실시예에서, 고성능 메모리는 L1/L2/L3 캐시 메모리용 가상 캐시 또는 가상화된 보존 공간을 생성하기 위해 사용된다. 이것은 캐시 메모리를 보다 크게 할 수 있고 L1/L2/L3 캐시 메모리가 자체 목적을 위해 이용가능한 메모리 공간을 풀링하도록 허용한다. 일실시예에서, 캐시 관리부(315)는 추론적인 페칭(speculative fetching)을 이용하여 고성능 메모리 내의 L1/L2/L3 캐시 메모리에 의해 사용될 가능성이 있는 데이터를 저장한다.
캐시 관리부(315)는 가상 캐시 메모리 대역폭(속도)이 통상의 L1/L2/L3 캐시 대역폭보다 더 느리다는 것을 고려한다. 일실시예에서, 고성능 메모리로 데이터를 추론적으로(speculatively) 미리 읽기 위한 완화 방법이 이용된다. 캐시 관리부(315)는 또한 L1/L2/L3 캐시에 공급될 데이터가 언제 고성능 메모리에서 빠져나가는지를 파악한다.
다른 실시예에서, 고성능 메모리는 하이레벨 캐시로서 사용된다. 예를 들어, 와이드 I/O DRAM이 SoC(101) 내의 L3 캐시보다 더 높은 레벨의 캐시 역할을 하며, 따라서 성능을 높이기 위한 작업을 수행한다.
성능 모니터, 건강 및 구성부(성능 모니터부)(315)는 특정 유형의 메모리의 메모리 랭크와 같이 대역폭, 건강 및 구성과 같은 성능을 모니터링하는 것을 담당한다. 일실시예에서, 성능 모니터부(315)는, 대역폭 및/또는 열과 같은 메모리 세부사항을 얻기 위해, 파워업 시에 그리고/또는 주기적으로 각 유형의 메모리에 질의한다. 일실시예에서, 성능 모니터부(315)는 파워업 시에 특정 메모리 구성에 대해 상이한 유형의 메모리에 질의한다. 일실시예에서, 성능 모니터부(315)는 도 2에 도시된 ACPI 드라이버를 사용하여 다양한 메모리 유형의 성능, 건강 및 구성을 모니터링한다. 일실시예에서, 성능 모니터부(315)는 환경 변수와 관련된 특정 메모리의 건강 프로파일을 편집하고, 이러한 건강 프로파일을 인터넷을 통해 온라인 카탈로그에 업로드한다.
전력 관리부(316)는 상이한 유형의 메모리의 전력을 관리하는 것을 담당한다. 일실시예에서, 전력 관리부(316)는 관리가능한 전력을 갖는 메모리 유형의 전력을 관리한다. 일실시예에서, 전력 관리부(316)는 상이한 유형의 메모리의 상태 및/또는 구성에 따라 이들에게 제공되는 전력양을 감소 및/또는 증가시킨다. 일실시예에서, 프로세서 코어(103) 내의 임베디드 메모리 컨트롤러는 고성능 메모리(102)에 인가된 전력을 관리한다. 일실시예에서, 전력 관리부(316)는 다양한 메모리 유형의 전력을 관리하기 위해 도 2에 도시된 ACPI 드라이버를 사용한다.
DMHM(308)이 OS(205)에서 구현되는 것으로 설명하였지만, 다른 실시예에서는 DMHM(308)이 컴퓨팅 장치(100)의 펌웨어로 인코딩될 수도 있다.
OS(205)의 다른 소프트웨어 컴포넌트 중, I/O 장치 관리부(303)는 I/O 장치를 관리하는 것을 담당한다. 일실시예에서는, 특정 하드웨어의 특성들이 사용자에게 감추어진다. 일실시예에서, 장치 드라이버는 특정 장치의 특성을 알고 있다. 예를 들어, I/O 장치 관리부(303)는 자유 공간 관리, 메모리 할당, 프레그멘테이션(fragmentation), 이동 및 헤드 스케줄링과 같은 디스크 관리 기능을 담당할 수 있다.
파일 관리부(304)는 파일 및 디렉토리를 생성하고 삭제하는 것을 담당한다. 파일 관리부(304)는 계층적 파일 시스템을 지원할 수 있다. 파일 관리부(304)는 또한 파일을 2차 메모리에 백업할 수도 있다.
네트워크 관리부(305)는 접속/라우팅 방법을 제공하는 것을 포함하여 네트워크와 통신하는 것을 담당한다. 네트워크 관리부(305)는 또한 다른 컴퓨팅 장치로의 데이터/프로세스 이전을 담당할 수도 있다.
사용자 인터페이스(306)는 사용자에게 문자 및/또는 그래픽 사용자 인터페이스를 제공하고, 입력을 수신하고 사용자에게 출력을 제공하는 것을 담당한다.
보호부(307)는 컴퓨팅 장치의 리소스에 대한 프로그램, 프로세스 및/또는 사용자의 액세스를 제어하는 것을 담당한다. 예를 들어, 보호부(307)는 CPU 사이클, 메모리, 파일, 및/또는 I/O 장치와 같은 리소스에 대한 액세스를 제어하는 것을 담당한다. 보호부(307)는 또한 사용자 인증 및 통신을 담당한다.
도 4 내지 6b는 이기종 메모리를 동적으로 관리하는 예시적인 방법을 도시한 흐름도이다. 실시예들에서, 도 4 내지 6b에 도시된 단계들은 하드웨어(예컨대, 프로세서, 메모리, 회로), 소프트웨어(예컨대, OS, 애플리케이션, 드라이버, 머신/프로세서 실행가능 명령어), 또는 사용자의 동작을 단독으로 또는 이들의 조합으로 나타낸다. 당업자라면 이해할 수 있듯이, 실시예들은 도시된 것보다 많거나 또는 적은 단계를 포함할 수 있다.
도 4는 상이한 유형의 메모리를 하나 이상의 소프트웨어 애플리케이션에 할당하는 예시적인 방법의 흐름도이다. 단계(400)는 도 1에 도시된 컴퓨팅 장치(100)와 같은 컴퓨팅 장치에 이용가능한 메모리의 유형을 결정하는 것을 도시하고 있다. 일실시예에서, DMHM(308) 내의 메모리 유형부(310)가 컴퓨팅 장치에 이용가능한 메모리의 유형을 결정한다. 일실시예에서, 메모리 유형(310)은 이용가능한 고성능 메모리 또는 이용가능 상이한 유형의 메모리의 계층이 존재하는지 여부를 판정한다.
단계(401)는 메모리의 유형 및 서비스에 대한 요청을 애플리케이션으로부터 수신하는 것을 도시하고 있다. 일실시예에서, 애플리케이션은 OS(205)에게 서비스 및 DMHM(308)를 요청하고, 특정 할당부(311)에서, 서비스를 요청하는 애플리케이션이 고성능 메모리도 요청하고 있는지 여부를 판정한다. 일실시예에서, 할당부(311)가 관련 애플리케이션 목록을 판독하여 요청 애플리케이션이 고성능 메모리도 요구하는지 여부를 판정한다. 일실시예에서, 요청 애플리케이션이 도 1에 도시된 고성능 메모리(102)를 요구한다.
단계(402)는 요청 애플리케이션이 연관된 속성 정보를 얻고 이를 애플리케이션의 목록으로부터의 속성 정보와 비교하는 것을 도시하고 있다. 일실시예에서, 할당부(311)가 ARBT(207)(구체적으로는 애플리케이션 테이블)에 저장된 애플리케이션과 연관된 속성을 판독하고 이 속성 정보를 요청 애플리케이션의 목록에 있는 정보와 비교한다.
그 다음에, 단계(403)는 애플리케이션이 단계(402)에서의 비교에 응답하여 고성능 메모리를 요구하고 있는지 여부를 판정한다. 단계(404, 405)에 도시되어 있는 바와 같이 고성능 메모리가 이용가능하고 애플리케이션이 블랙리스트(ARBT(207)에 포함된 블랙리스트 테이블)에 없는 경우에, 그리고 단계 406에 도시된 바와 같이 요청 애플리케이션이 이용가능한 것보다 더 많은 메모리를 요청하지 않는 경우에, 요청 애플리케이션의 애플리케이션 목록 내의 속성 정보가 ARBT(207) 내의 속성 정보와 매칭되면, 요청 애플리케이션은 고성능 메모리를 할당받을 것이다.
단계(404)는 요청 애플리케이션이 얼마나 많은 메모리를 사용할지를 결정하는 것을 도시하고 있다. 일실시예에서, 사용량 모니터부(312)는 컴퓨팅 장치의 메모리에서의 애플리케이션의 사용량을 모니터링한다.
단계(405)는 요청 애플리케이션이 화이트 또는 블랙 리스트에 있는지 여부를 판정한다. 요청 애플리케이션이 화이트리스트에 있으면, 고성능 메모리가 이용가능하고 애플리케이션이 이용가능한 것보다 더 많은 고성능 메모리를 필요로 하지 않는 한 애플리케이션의 속성 정보가 고성능 메모리를 요구하는 것으로 표시하고 있지 않은 경우에도 애플리케이션은 고성능 메모리를 할당받는다. 애플리케이션이 블랙리스트에 있으면, 일실시예에서 그 애플리케이션은 고성능 메모리가 이용가능한지의 여부에 관계없이 고성능 메모리의 할당이 거부된다. 일실시예에서, 블랙리스트 및 화이트리스트는 ARBT(207)의 테이블에 저장된다. 다른 예에서는, 블랙리스트 및 화이트 리스트가 사용되지 않는다.
단계(406)는 고성능 메모리가 이용가능한지의 여부를 결정하는 것을 도시하고 있다. 일실시예에서, 사용량 모니터부(312)는 고성능 메모리의 이용가능성에 대해 할당부(311)를 업데이트한다.
단계(407)는, 요청 애플리케이션이 1) 적절한 속성 정보를 갖는 경우, 2) 블랙 리스트에 없는 경우(또는 일실시예에서는 적절한 속성 정보의 부재를 무시하는 화이트 리스트에 있는 경우), 3) 고성능 메모리가 이용가능한 경우, 및 4) 이용가능한 고성능 메모리의 양이 요청 애플리케이션에 의해 사용될 메모리의 양보다 많을 경우에, 요청 애플리케이션에게 고성능 메모리를 할당하는 것을 도시하고 있다. 일실시예에서, 할당부(311)는 위 조건이 만족될 경우에 고성능 메모리를 요청 애플리케이션에 할당한다. 일실시예에서, 고성능 메모리를 요청 애플리케이션에 할당하기 위해 위 조건보다 적은 조건이 만족될 수도 있다. 그 외의 경우에는, 할당부(311)는 고성능이 아닌 메모리(다른 메모리)를 요청 애플리케이션에 할당한다. 일실시예에서, 메모리(104)는 고성능 메모리가 할당되지 않는 경우에 할당된다.
일실시예에서, 애플리케이션이 요청하는 메모리의 양에 대한 할당 작업은 충분한 크기의 사용되지 않은 메모리의 블록을 찾는 것으로 이루어진다. 메모리 요청은 "힙(heap)"이라고 하는 대용량 메모리 풀로부터 일부를 할당함으로써 만족된다. 소정 시간에, 힙의 일부분이 사용되는 반면에, 일부는 사용되지 않고(free) 따라서 장래의 할당에 이용가능하다.
단계(408)는 DMHM(308)이 컴퓨팅 장치 내의 상이한 유형의 메모리의 사용량을 모니터링하는 것을 도시하고 있다. 구체적으로, 사용량 모니터부(312)가 하나 이상의 애플리케이션에 의해 사용되고 있는 고성능 메모리의 사용량 및 고성능이 아닌 다른 유형의 메모리의 사용량을 모니터링한다. 사용량 모니터부(312)는, 일실시예에서 메모리 공간이 고성능 메모리 및 다른 유형의 메모리에 이용가능하게 될 때, 할당부(311)에게 통지한다.
단계(409)는 하나 이상의 애플리케이션이 다양한 유형의 메모리를 사용하고 있는 동안 에러 검출 및 정정을 수행하는 것을 도시하고 있다. 일실시예에서, DMHM(308)에서의 에러 검출 및 정정부(313)가 이 기능을 수행한다.
도 5a는 고성능 메모리를 가상 캐시 메모리로서 사용하는 예시적인 방법의 흐름도이다. 단계(500)는 컴퓨팅 장치에서 이용가능한 메모리의 유형을 결정하는 것을 도시하고 있다. 일실시예에서, 단계(500)는 본 명세서에서 기술된 단계(400)와 유사하게 수행된다. 일실시예에서, 메모리 유형부(310) 및/또는 캐시 관리부(314)가 이 결정을 한다.
단계(501)는 캐시 메모리가 이용가능한지의 여부를 결정하는 것을 도시하고 있다. 일실시예에서, 캐시 관리부(314)는 캐시 메모리가 이용가능한지 및 이용가능한 캐시 메모리의 양을 결정한다. 그 다음에 단계(501)는 가상 캐시 메모리로서의 고성능 메모리가 컴퓨팅 장치의 성능을 향상시킬 지의 여부를 판정한다. 일실시예에서, 캐시 관리부(314)는 이용가능한 캐시 메모리의 양을 사전결정된 임계값과 비교한다. 이용가능한 캐시 메모리의 양이 사전결정된 임계값보다 적은 경우, 단계(502)에 도시된 바와 같이 캐시 관리부(314)는 고성능 메모리를 가상 캐시 메모리로서 할당한다. 다른 실시예에서, 캐시 관리부(314)는, 그러한 할당으로부터 이익을 얻을 수 있는 특정 애플리케이션이 OS(302)로부터의 서비스를 요청할 경우에, 고성능 메모리를 가상 캐시 메모리로서 할당한다.
단계(503)는 사용될 가능성이 있는 데이터를 가상 캐시로서 사용되는 고성능 메모리에 저장하는 것을 도시하고 있다. 일실시예에서, 데이터를 고성능 메모리로 추론적으로 미리 읽는 완화 방법이 사용된다.
단계(504)는 실제 캐시 메모리에 비해 가상 캐시 메모리로서 사용된 고성능 메모리의 상대적으로 느린 속도를 완화하는 것을 도시하고 있다. 일실시예에서, 데이터를 고성능 메모리로 추론적으로 사전 판독하는 완화 방법이 사용된다.
도 5b는 고성능 메모리를 캐시 메모리로서 사용하는 예시적인 방법의 흐름도이다. 단계(510)는 단계(500)와 유사하게 캐시 메모리가 이용가능한지의 여부를 결정하는 것을 도시하고 있다. 일실시예에서, 캐시 관리부(314)는 캐시 메모리가 이용가능한지의 여부 및 이용가능한 캐시 메모리의 양을 결정한다. 그 다음에 단계(511)는 캐시 메모리로서의 고성능 메모리가 컴퓨팅 장치의 성능을 향상시킬 지의 여부를 결정한다. 일실시예에서, 캐시 관리부(314)는 이용가능한 캐시 메모리의 양을 사전결정된 임계값과 비교한다. 이용가능한 캐시 메모리의 양이 사전결정된 임계값보다 적은 경우, 단계(512)로 도시된 바와 같이 캐시 관리부(314)는 캐시 메모리로서 고성능 메모리를 할당한다. 또 다른 실시예에서, 이러한 할당을 이용할 수 있는 특정 애플리케이션이 OS(302)로부터 서비스를 요청하는 경우 캐시 관리부(314)는 캐시 메모리로서 고성능 메모리를 할당한다.
단계(513, 514)는 고성능 메모리가 가상 캐시 메모리 대신에 캐시 메모리로서 사용된다는 점을 제외하면 단계(503, 504)와 유사하게 수행된다.
도 6a는 구성, 성능 및 건강을 포함하는 메모리 정보를 획득하기 위해 상이한 유형의 메모리에 질의하는 예시적인 방법의 흐름도이다. 단계(600)는 메모리 구성 정보에 대해 컴퓨팅 장치의 상이한 유형의 메모리 각각에 질의하는 것을 도시하고 있다. 실시예들에서, 메모리 구성은 유형, 크기, 대역폭, 폭, 랭크, 레이턴시, 클록, 타이밍 파라미터 및/또는 다른 메모리 구성 파라미터와 관련된 정보를 포함할 수 있다. 일실시예에서, 실제 메모리 자체 대신에 다양한 유형의 메모리(예컨대 시스템 또는 구성 메모리) 상에 존재하지 않는 구성 정보를 갖는 저장 위치가 질의된다.
일실시예에서, 하나 이상의 프로세서가 OS(205), 구체적으로는 DMHM(308)을 실행하여 메모리 구성 정보를 획득한다. 일실시예에서, 성능 모니터부(315)가 각 유형의 메모리에 대한 구성 정보를 획득하는 것을 담당한다. 일실시예에서, 프로세서 코어(103)는 OS(205)를 실행하여 고성능 메모리(102) 및 메모리(104)로의 신호 경로(106, 105) 상에 제어 신호를 생성한다. 각 메모리는 그 후 제어 신호에 응답하여 구성 정보를 반환한다. 일실시예에서, 제어 신호는 신호 경로(105, 106) 상에 출력되는 별도의 커맨드를 포함할 수 있다. 일실시예엣, 제어 신호는 시동시에 그리고/또는 주기적으로 출력된다.
단계(601)는 컴퓨팅 장치의 상이한 유형의 메모리의 성능을 모니터링하는 것을 포함한다. 일실시예에서, 프로세서 코어(103)가 단계(600)와 유사하게 OS(205)를 실행하여 실제 대역폭 및/또는 실제 메모리 레이턴시와 같은 성능 정보를 획득한다. 다른 실시예에서는, OS(205) 및 구체적으로는 DMHM(308)에서의 성능 모니터부(315)가 상이한 유형의 메모리에 기록하고 이로부터 판독함으로써 실제 대역폭 및/또는 메모리 레이턴시를 측정한다. 제각기의 메모리의 유형의 성능 특성을 측정하고/또는 시간을 재는 동안 테스트 패턴이 메모리에 기록되고 그 후 판독될 수 있다.
단계(602)는 컴퓨팅 장치의 상이한 유형의 메모리로부터 건강 또는 상태 정보를 획득하는 것을 도시하고 있다. 단계(600, 601)와 마찬가지로 프로세서 코어(103)는 OS(205)를 실행하여 상이한 유형의 메모리의 온도(열) 및/또는 전력 소비와 같은 건강 정보를 획득한다. 제각기의 메모리는 프로세서 코어(103)로부터 신호 경로(105, 106) 상에 출력된 제어 신호에 응답하여 제각기의 유형의 메모리에 의해 출력된 상태 정보에 온도 및 소비된 전력을 포함하는 건강 정보를 제공할 수 있다. 마찬가지로, 이들 제어 신호는 시동 시에 또는 주기적으로 생성될 수 있다. 또한, 테스트 패턴은 상이한 유형의 메모리에 기록되고 이로부터 판독될 수 있으며, 메모리가 데이터를 정확하게 저장하고 출력하는지를 판정(에러 검출)하기 위해, 송신된 테스트 패턴과 비교될 수 있다.
도 6b는 컴퓨팅 장치의 상이한 유형의 메모리에 대한 전력을 관리하는 예시적인 방법의 흐름도이다. 단계(610)는 컴퓨팅 장치의 상이한 유형의 메모리로부터 전력 관리 정보를 획득하는 것을 도시하고 있다. 일실시예에서, 전술한 단계들과 유사하게 프로세서 코어(103)가 OS(205)를 실행하여 특정한 유형의 메모리 장치가 관리될 수 있는 전력을 가질 수 있는지 여부에 대한 전력 정보를 획득한다. 일실시예에서, 제각기의 유형의 메모리에 대한 전력 관리 정보는 시스템이나 구성 메모리와 같은 제각기의 유형의 메모리에 존재하지 않는 메모리에 저장되고 전술한 바와 같이 검색될 수 있다.
단계(611)는 컴퓨팅 장치의 상이한 유형의 메모리의 전력을 관리하는 것을 도시하고 있다. 단계(610)에서 특정 메모리가 관리가능한 전력을 가질 수 있다는 판정이 이루어지면, 일실시예에서 식별된 메모리의 전력이 DMHM(308)의 전력 관리부(316)에 의해 관리된다. 예를 들어, 전력 관리부(316)를 실행하는 프로세서 코어(103)는, 슬립 모드 또는 최대절전 모드(hibernate mode)에서와 같이 메모리 장치가 전력을 필요로 하지 않는 경우에 관리가능한 메모리 장치로의 전력을 줄이는 제어 신호를 출력한다.
일실시예에서, 컴퓨팅 장치들(100) 중 하나 이상은 비디오 게임 및/또는 미디어 콘솔일 수 있다. 도 7은 예시적인 게이밍 및 미디어 콘솔을 설명하기 위해 사용될 것이며, 또는 보다 일반적으로는 게임 및 미디어 콘솔을 포함하는 예시적인 게이밍 및 미디어 시스템(1000)을 설명하는데 사용될 것이다. 후술하는 도 7에 대한 논의는 본 명세서에 제시된 개념을 구현하기 위해 이용하는 적절한 컴퓨팅 장치를 간략하게 그리고 일반적으로 설명하기 위한 것이다. 도 7의 시스템은 일례로서 이해해야 한다. 다른 예에서는, 본 명세서에 기술된 실시예들은 다양한 클라이언트 컴퓨팅 장치를 사용하여, 즉 클라이언트 컴퓨팅 장치 상에 존재하고 이 장치에 의해 실행되는 브라우저 애플리케이션 또는 소프트웨어 애플리케이션을 통해 구현될 수 있다. 도 7에 도시되어 있는 바와 같이, 게이밍 및 미디어 시스템(1000)은 제임 및 미디어 콘솔(이하에서는 "콘솔"이라 함)(1002)을 포함한다. 일반적으로, 콘솔(1002)은 클라이언트 장치의 한 유형이다. 콘솔(1002)은 컨트롤러(10041, 10042)로 표현된 하나 이상의 무선 컨트롤러를 수용하도록 구성된다. 콘솔(1002)은 내부 하드디스크 드라이브 및 광학 저장 디스크(1008)로 표현된 다양한 형태의 휴대형 저장 매체를 지원하는 휴대형 미디어 드라이브(1006)를 구비한다. 적절한 휴대형 저장 매체의 예들로는 DVD, CD-ROM, 게임 디스크 등을 들 수 있다. 콘솔(1002)은 또한 착탈식 플래시 타입의 메모리 장치(1040)를 수납하기 위한 2개의 메모리 장치 카드 리셉터클(10251, 10252)을 포함한다. 콘솔(1002) 상의 커맨드 버튼(1035)은 무선 주변 지원을 인에이블 및 디스에이블한다.
도 7에 도시된 바와 같이, 콘솔(1002)은 또한 하나 이상의 장치와 무선으로 통신하기 위한 광학 포트(1030) 및 추가적인 컨트롤러 또는 다른 주변기기에 대한 유선 접속을 지원하기 위한 2개의 USB 포트(10101, 10102)를 포함한다. 일부 구현예에서, 추가 포트의 개수 및 구성은 변경될 수도 있다. 전원 버튼(1012) 및 이젝트 버튼(1014)이 또한 콘솔(1002)의 전면에 위치한다. 전원 버튼(1012)은 게임 콘솔에 전력을 공급하기 위해 선택되며, 다른 피처 및 콘트롤에 대한 액세스를 제공하고, 이젝트 버튼(1014)은 광학 저장 디스크(1008)의 삽입 및 배출을 가능하게 하기 위해 휴대형 미디어 드라이브(1006)의 트레이를 열고 닫는다.
콘솔(1002)은 A/V 인터페이스 케이블(1020)을 통해 텔레비전이나 다른 디스플레이(예컨대, 디스플레이(1050))에 연결된다. 일실시예에서, 콘솔(1002)은 A/V 케이블(1020)(예컨대, 고화질 디스플레이(1050) 또는 다른 디스플레이 장치 상의 HDMI(High Definition Multimedia Interface)에 연결하기에 적합한 A/V 케이블)을 사용하여 콘텐츠 보안 디지털 통신을 하도록 구성된 전용 A/V 포트를 구비한다. 전원 케이블(1022)은 게임 콘솔에 전력을 공급한다. 콘솔(1002)은 인터넷과 같은 네트워크에 대한 액세스를 용이하게 하기 위해 케이블이나 모뎀 커넥터(1024)로 표현된 광대역 기능을 갖도록 구성된다. 광대역 기능은 또한 WiFi(wireless fidelity)와 같은 광대역 네트워크를 통해 무선으로 제공될 수 있다.
각 컨트롤러(1004)는 유선 또는 무선 인터페이스를 통해 콘솔(1002)에 연결된다. 도시된 구현예에서, 컨트롤러(1004)는 USB 호환가능하며 무선 또는 USB 포트(1010)를 통해 콘솔(1002)에 연결된다. 콘솔(1002)은 다양한 사용자 상호작용 메커니즘들 중 하나를 구비한다. 도 7에 도시된 예에서, 각각의 컨트롤러(1004)는 2개의 썸스틱(thumb stick)(10321, 10322), D-패드(1034), 버튼(1036), 및 2개의 트리거(1038)를 구비한다. 이들 컨트롤러는 단지 예시일 뿐이며, 다른 공지되어 있는 게이밍 컨트롤러가 도 7에 도시된 컨트롤러를 대체할 수도 있고 또는 추가될 수도 있다. 일실시예에서, 사용자는 제스처, 터치, 또는 음성을 통해 콘솔(1002)에 입력을 할 수 있다. 일실시예에서, 광학 I/O 인터페이스(1135)가 사용자의 제스처를 수신하고 번역한다. 다른 실시예에서, 콘솔(1002)은 사용자로부터 음성 및 제스처 입력을 수신하고 번역하기 위한 NUI를 포함한다. 다른 실시예에서는, 프런트 패널 서브어셈블리(1142)가 터치 또는 사용자의 음성 명령과 같은 음성을 수신하여 번역하기 위한 터치 서피스 및 마이크로폰을 포함한다.
일실시예에서, 메모리 장치(MU)(1040)가 컨트롤러(1004)에 삽입되어 추가적인 휴대형 저장부를 제공할 수도 있다. 휴대형 MU는 사용자가 다른 콘솔에서 재생할 때 사용할 게임 파라미터를 저장할 수 있게 한다. 이 구현예에서, 각 컨트롤러는 2개의 MU(1040)를 수용하도록 구성되지만, 2개보다 많거나 적은 MU가 이용될 수도 있다.
게이밍 및 미디어 시스템(1000)은 일반적으로 메모리 미디어에 저장된 게임을 플레이하는 것뿐만 아니라 게임을 다운로드하여 플레이하고, 전자 및 하드 미디어 소스로부터 사전에 녹음된 음악 및 비디오를 재생하도록 구성된다. 상이한 저장 제공에 따라, 타이틀이 하드디스크 드라이브로부터, 광학 저장 디스크 미디어(예컨대 1008)로부터, 온라인 소스로부터, 또는 MU(1040)로부터 플레이될 수 있다. 게이밍 및 미디어 시스템(1000)이 재생할 수 있는 미디어의 유형들의 샘플들로는 CD, DVD 또는 고용량 디스크로부터, 하드디스크 드라이브로부터, 또는 온라인 소스로부터 재생된 게임 타이틀; 휴대형 미디어 드라이브(1006) 내의 CD로부터, 하드디스크 드라이브 또는 고체 상태 디스크 상의 파일(예컨대, 미디어 포맷의 뮤직)로부터, 또는 온라인 스트리밍 소스로부터 재생된 디지털 뮤직; 휴대형 미디어 드라이브(1006) 내의 DVD 디스크로부터, 하드 디스크 드라이브 상의 파일(예컨대 액티브 스트리밍 포맷)로부터, 또는 온라인 스트리밍 소스로부터 재생된 디지털 오디오/비디오를 들 수 있다.
동작 동안, 콘솔(1002)은 컨트롤러(1004)로부터 입력을 수신하고 디스플레이(1050) 상에 정보를 디스플레이하도록 구성된다. 예를 들어, 콘솔(1002)은 사용자가 컨트롤러(1004)를 사용하여 게임을 선택할 수 있도록 디스플레이(1050) 상에 사용자 인터페이스를 디스플레이하고 상태 해결가능성 정보를 디스플레이한다.
도 8은 게이밍 및 미디어 시스템(1000)의 기능적 블록도이며 게이밍 및 미디어 시스템(1000)의 기능적 구성요소를 보여준다. 콘솔(1002)은 플래시 ROM(1104), RAM(1106), 하드디스크 드라이브 또는 고체 상태 드라이브(1108), 및 휴대형 미디어 드라이브(1006)를 비롯하여, CPU(1100), 다양한 유형의 메모리에 대한 프로세서 액세스를 용이하게 하는 메모리 컨트롤러(1102)를 포함한다. 일실시예에서, CPU(1100)는 데이터를 일시 저장하여 하드 드라이브(1108)에 형성된 메모리 액세스 사이클의 수를 줄임으로써 처리 속도 및 스루풋을 향상시키기 위한 레벨1 캐시(1110) 및 레벨2 캐시(1112)를 포함한다.
CPU(1100), 메모리 컨트롤러(1102), 및 다양한 메모리 장치가 하나 이상의 버스를 통해 상호연결된다. 이 구현예에 사용되는 버스에 대한 세부사항은 본 명세서에서 논의되는 관심 주제를 이해하는 것과 특별한 관련은 없다. 그러나, 그러한 버스는, 다양한 버스 아키텍처 중 어느 하나를 사용하는, 직렬 및 병렬 버스, 메모리 버스, 주변 버스, 및 프로세서 또는 로컬 버스 중 하나 이상을 포함할 수 있다. 예를 들어, 이런 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌(Mezzanine) 버스라고도 하는 PCI(Peripheral Component Interconnect) 버스를 포함할 수 있다.
일 구현예에서, CPU(1100), 메모리 컨트롤러(1102), ROM(1104), 및 RAM(1106)이 공통 모듈(1114)에 집적된다. 이 구현예에서, ROM(1104)은 PCI 버스 및 ROM 버스(둘 다 도시되어 있지 않음)를 통해 메모리 컨트롤러(1102)에 연결되는 플래시 ROM으로서 구성된다. RAM(1106)은 별도의 버스를 통해 메모리 컨트롤러(1102)에 의해 독립적으로 제어되는 복수의 DDR SDRAM(Double Data Rate Synchronous Dynamic RAM) 또는 보다 빠른 데이터 레이트 DRAM 모듈로서 구성된다. 하드디스크 드라이브(1108) 및 휴대형 미디어 드라이브(1006)는 PCI 버스 및 ATA(AT Attachment) 버스(1116)를 통해 메모리 컨트롤러(1102)에 연결되는 것으로 도시되어 있다. 그러나, 다른 실시예에서는, 상이한 유형의 전용 데이터 버스 구조가 대안으로 적용될 수도 있다.
다른 실시예에서, 적어도 CPU(1100), 레벨1 캐시(1110), 레벨2 캐시(1112), 메모리 컨트롤러(1102) 및 RAM 메모리(1106)가 도 1의 SoC(101)와 같은 SoC에 포함된다. 일실시예에서, RAM 메모리(1106)는 와이드 I/O DRAM과 같은 고성능 메모리로 대체되고, 메모리 컨트롤러(1102)의 기능은 프로세서 코어(103)에 의해 수행된다. LPDDR3 DRAM과 같은 다른 유형의 메모리가 본 명세서에 기술된 SoC(101)에 결합될 수도 있다. 마찬가지로, OS(205)는 콘솔(1002) 내의 SoC(101)에 의해 사용된다.
3차원 그래픽 처리 장치(1120) 및 비디오 인코더(1122)는 고속 및 고해상도(예컨대, 고정밀도) 그래픽 처리를 위한 비디오 처리 파이프라인을 형성한다. 데이터는 그래픽 처리 장치(1120)로부터 디지털 비디오 버스를 통해 비디오 인코더(1122)로 반송된다. 오디오 처리 장치(1124) 및 오디오 코덱(코더/디코더)(1126)은 다양한 디지털 오디오 포맷의 다중 채널 오디오 처리를 위한 대응 오디오 처리 파이프라인을 형성한다. 오디오 데이터는 통신 링크를 통해 오디오 처리 장치(1124)와 오디오 코덱(1126) 사이에서 반송된다. 비디오 및 오디오 처리 파이프라인은 데이터를 텔레비전 또는 다른 디스플레이로의 전송을 위해 A/V(오디오/비디오) 포트(1128)에 출력한다. 도시된 구현예에서, 비디오 및 오디오 처리 컴포넌트(1120-1128)는 모듈(1114) 상에 탑재된다.
도 8은 USB 호스트 컨트롤러(1130) 및 네트워크 인터페이스(1132)를 포함하는 모듈(1114)을 도시하고 있다. USB 호스트 컨트롤러(1130)는 버스(예컨대, PCI 버스)를 통해 CPU(1100) 및 메모리 컨트롤러(1102)와 통신하며 주변 컨트롤러(10041-10044)에 대한 호스트 역할을 한다. 네트워크 인터페이스(1132)는 네트워크(예컨대, 인터넷, 홈 네트워크 등)에 대한 액세스를 제공하며, 이더넷 카드, 모뎀, 무선 액세스 카드, 블루투스 모듈, 케이블 모뎀 등을 비롯한, 다양한 유선 또는 무선 인터페이스 컴포넌트 중 어느 하나일 수 있다.
도 8에 도시된 구현예에서, 콘솔(1002)은 4개의 컨트롤러(10041-10044)를 지원하는 컨트롤러 지원 서브어셈블리(1140)를 포함한다. 컨트롤러 지원 서브어셈블리(1140)는, 예컨대 미디어 및 게임 컨트롤러와 같은 외부 제어 장치에 의한 유선 및 무선 동작을 지원하는 임의의 하드웨어 및 소프트웨어 컴포넌트를 포함한다. 프런트 패널 I/O 서브어셈블리(1142)는 전원 버튼(1012), 이젝트 버튼(1014) 및 임의의 LED 또는 콘솔(1002)의 외부면에 노출되는 다른 표시기의 복수의 기능을 지원한다. 서브어셈블리(1140, 1142)는 하나 이상의 케이블 어셈블리(1144)를 통해 모듈(1114)과 통신한다. 다른 구현예에서, 콘솔(1002)은 추가적인 컨트롤러 서브어셈블리를 포함할 수 있다. 도시된 구현예에는 모듈(1114)로 전달될 수 있는 신호를 송신하고 수신하도록 구성되는 광학 I/O 인터페이스(1135)가 도시되어 있다.
MU(10401, 10402)는 MU 포트 "A"(10301) 및 "B"(10302)에 제각기 연결가능한 것으로 도시되어 있다. 추가적인 MU(예컨대, MU(10403-10406))가 컨트롤러(10041, 10043)에, 즉, 각 컨트롤러마다 2개의 MU가 연결가능한 것으로 도시되어 있다. 컨트롤러(10042, 10044)는 MU를 수용하도록 구성될 수도 있다. 각각의 MU(1040)는 게임, 게임 파라미터, 및 다른 데이터가 저장될 수 이는 추가적인 저장부를 제공한다. 일부 구현예에서, 다른 데이터가 디지털 게임 컴포넌트, 실행가능한 게이밍 애플리케이션, 게이밍 애플리케이션을 확장하는 명령어 세트 및 미디어 파일 중 하나를 포함할 수 있다. MU(1040)는 콘솔(1002) 또는 컨트롤러에 삽입될 경우에 메모리 컨트롤러(1102)에 의해 액세스될 수 있다.
시스템 전원 모듈(1150)은 게이밍 시스템(1000)의 컴포넌트에 전력을 제공한다. 팬(1152)은 콘솔(1002) 내의 회로를 냉각시킨다.
프로세서 판독가능 명령어를 포함하는 애플리케이션(1160)은 하드디스크 드라이브(1108)에 저장된다. 콘솔(1002)이 파워 온되면, 애플리케이션(1160)의 다양한 부분이 CPU(1100)에서의 실행을 위해 RAM(1106), 및/또는 캐시(1110, 1112)에 로딩되는데, 여기서 애플리케이션(1160)은 일례이다. 다양한 애플리케이션이 CPU(1100) 상에서의 실행을 위해 하드디스크 드라이브(1108)에 저장될 수 있다. 일실시예에서, 애플리케이션(1160)은 고성능 메모리와 같은 특정 타입의 메모리의 사용을 요청하는 속성 정보를 포함한다.
콘솔(1002)은 또한 콘솔(1002)을 하나 이상의 다른 컴퓨팅 장치(예컨대, 다른 콘솔)와 통신가능하게 결합시키도록 구성된 통신 서브시스템(1170)을 포함하는 것으로 도시되어 있다. 통신 서브시스템(1170)은 하나 이상의 다른 통신 프로토콜과 호환가능한 유선 및/또는 무선 통신 장치를 포함할 수 있다. 예로서, 통신 서브시스템(1170)은 무선 전화망, 또는 유선 또는 무선 로컬 에이리어 네트워크 또는 와이드 에이리어 네트워크를 통해 통신하도록 구성될 수도 있다. 일부 실시예에서, 통신 서브시스템(1170)은 콘솔(1002)이 인터넷과 같은 네트워크를 통해 다른 장치에 대해 메시지를 송신 및/또는 수신하도록 할 수 있다. 특정 실시예에서, 통신 서브시스템(1170)은 다운로드 요청을 보내고 디지털 콘텐츠의 다운로딩 및 업로딩을 완료하기 위해 조정자(coordinator) 및/또는 다른 컴퓨팅 장치와 통신하는데 사용될 수 있다. 보다 일반적으로는, 통신 서브시스템(1170)은 콘솔(1002)이 피어투피어 통신에 참가할 수 있게 한다.
게이밍 및 미디어 시스템(1000)은 단순히 시스템을 디스플레이(1050), 텔레비전, 비디오 프로젝터, 또는 기타 디스플레이 장치에 연결함으로써 독립형 시스템으로서 동작할 수 있다. 이 독립형 모드에서, 게이밍 및 미디어 시스템(1000)은 하나 이상의 플레이어가 게임을 플레이하거나 또는 예컨대 영화를 본다거나 또는 음악을 들음으로써 디지털 미디어를 즐길 수 있게 한다. 그러나, 네트워크 인터페이스(1132), 또는 보다 일반적으로는 통신 서브시스템(1170)를 통해 이용가능해진 광대역 접속의 통합에 의해, 게이밍 및 미디어 시스템(1000)은 또한 피어투피어 네트워크와 같은 보다 큰 네트워크 게이밍 커뮤니티의 참가자로서 동작할 수 있다.
전술한 콘솔(1002)은 도 1 및 다양한 다른 도면들을 참고하여 위에서 논의한 컴퓨팅 장치(100)의 일례일 뿐이다. 전술한 바와 같이, 다양한 다른 유형의 컴퓨팅 장치가 본 명세서에 기술된 실시예들에 사용될 수 있다.
이상의 본 발명의 시스템에 대한 상세한 설명은 예시 및 설명을 위해 제시되었다. 이상의 설명은 본 발명의 시스템을 정확히 개시된 형태로 한정하고자 하는 것은 아니다. 개시 내용에 비추어 많은 수정 및 변형이 가능하다. 기술된 실시예는 본 발명의 시스템의 원리와 그 실질적인 응용을 가장 잘 나타내도록 선택되었으며, 따라서 당업자가 다양한 실시예에서 그리고 목적하는 특정한 사용에 적합한 다양한 변형들과 함께 본 발명의 시스템을 가장 잘 활용할 수 있게 한다. 본 발명의 시스템의 범위는 첨부한 청구범위에 의해 정의하고자 한다.

Claims (15)

  1. 컴퓨팅 장치에 의해 처리되는 애플리케이션에 한 유형의 집적 회로 메모리를 할당하는 방법으로서,
    상기 컴퓨팅 장치 내의 애플리케이션에 이용가능한 집적 회로 메모리의 유형을 결정하는 단계 -상기 이용가능한 집적 회로 메모리의 유형은 제1 유형의 집적 회로 메모리 및 제2 유형의 집적 회로 메모리를 포함함- 와,
    상기 애플리케이션으로부터 상기 제1 유형의 집적 회로 메모리의 사용 요청을 수신하는 단계와,
    상기 애플리케이션으로부터의 요청에 응답하여, 상기 애플리케이션에 의해 사용될 상기 제1 유형의 집적 회로 메모리를 할당하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 유형의 집적 회로 메모리는 상기 제2 유형의 집적 회로 메모리보다 더 우수한 적어도 하나 이상의 성능 특성을 갖는
    방법.
  3. 제1항에 있어서,
    상기 제1 유형의 집적 회로 메모리는 상기 제2 유형의 집적 회로 메모리보다 더 높은 대역폭, 더 낮은 메모리 레이턴시(latency) 및 더 낮은 전력 소비 중 적어도 하나를 갖는
    방법.
  4. 제1항에 있어서,
    상기 결정하는 단계는 메모리 성능 특성의 리스트에서의 상기 제1 및 제2 유형의 집적 회로 메모리의 성능 특성에 액세스하는 단계를 포함하는
    방법.
  5. 제1항에 있어서,
    성능 특성의 리스트가 인터넷을 통해 획득되고, 상기 성능 특성의 리스트는 프로세서 판독가능 포맷으로 저장되는
    방법.
  6. 제1항에 있어서,
    상기 수신하는 단계는, 상기 애플리케이션으로부터의 요청이 상기 제1 유형의 집적 회로 메모리 사용 요청을 포함함을 나타내는, 애플리케이션 목록 상의 속성 정보를 판독하는 단계를 포함하는
    방법.
  7. 제1항에 있어서,
    상기 할당하는 단계는 상기 컴퓨팅 장치의 물리적 메모리 영역으로의 메모리 페이지의 할당을 관리하는 메모리 컨트롤러의 물리적 메모리 할당기 및 가상 메모리 할당기 중 적어도 하나에게 상기 요청을 전송하는 단계를 포함하는
    방법.
  8. 제1항에 있어서,
    상기 제1 유형의 집적 회로 메모리에서의 상기 애플리케이션의 사용량 및 메모리 위치를 모니터링하는 단계를 더 포함하는
    방법.
  9. 제1항에 있어서,
    상기 애플리케이션을 상기 컴퓨팅 장치 내의 저장된 애플리케이션 리스트와 비교하는 단계를 더 포함하고,
    상기 제1 유형의 집적 회로 메모리를 할당하는 단계는 상기 애플리케이션이 상기 저장된 리스트에 존재하는 것에 응답하여 상기 애플리케이션에 의해 사용될 상기 제2 유형의 집적 회로 메모리를 할당하는 단계로 대체되며,
    상기 애플리케이션 사용량이 상기 제1 유형의 집적 회로 메모리의 물리적 메모리 공간을 초과할 경우에, 상기 제1 유형의 집적 회로 메모리를 할당하는 단계는 상기 애플리케이션에 의해 사용될 상기 제2 유형의 집적 회로 메모리를 할당하는 단계로 대체되는
    방법.
  10. 제1항에 있어서,
    상기 제1 유형의 집적 회로 메모리를 상기 애플리케이션에 의해 액세스가능한 캐시 메모리로서 할당하는 단계를 더 포함하는
    방법.
  11. 제1항에 있어서,
    상기 결정하는 단계는 상기 제1 및 제2 유형의 집적 회로 메모리에게 상기 집적 회로 메모리에 관한 정보에 대한 요청을 개시하는 단계를 포함하고,
    상기 집적 회로 메모리에 관한 정보는 메모리 구성 및 전력 관리 중 하나로부터 선택되는
    방법.
  12. 하나 이상의 프로세서와,
    제1 성능 특성을 갖는 제1 프로세서 판독가능 메모리와,
    제2 성능 특성을 갖는 제2 프로세서 판독가능 메모리 -상기 제1 성능 특성은 상기 제2 성능 특성보다 더 우수함- 와,
    하나 이상의 소프트웨어 애플리케이션과,
    프로세서 판독가능 명령어를 포함하는 운영 체제
    를 포함하되,
    상기 하나 이상의 프로세서는 운영 체제의 프로세서 판독가능 명령어를 실행하여,
    상기 하나 이상의 소프트웨어 애플리케이션이 상기 제1 프로세서 판독가능 메모리의 사용을 요청하는지 여부를 판정하고,
    상기 하나 이상의 소프트웨어 애플리케이션이 사용하는 프로세서 판독가능 메모리의 양을 결정하며,
    상기 제1 프로세서 판독가능 메모리의 사용에 대한 요청 및 상기 하나 이상의 소프트웨어 애플리케이션이 사용하는 프로세서 판독가능 메모리의 양에 대한 반응으로, 상기 하나 이상의 소프트웨어 애플리케이션 중 적어도 하나의 애플리케이션이 상기 제1 프로세서 판독가능 메모리에 액세스하도록 허용하는
    장치.
  13. 제12항에 있어서,
    상기 제1 및 제2 성능 특성은 대역폭, 메모리 레이턴시, 및 전력 소비 중 하나로부터 선택되는
    장치.
  14. 제12항에 있어서,
    상기 하나 이상의 프로세서 및 제1 프로세서 판독가능 메모리는 제1 패키지에 의해 수용된 단일 반도체 다이에 집적되고, 상기 제2 프로세서 판독가능 메모리는 제2 패키지에 의해 수용된 제2 반도체 다이에 포함되는
    장치.
  15. 제12항에 있어서,
    상기 하나 이상의 프로세서는 제1 반도체 다이에 포함되고, 상기 제1 프로세서 판독가능 메모리는 제2 반도체 다이에 포함되며, 상기 제1 및 제2 다이는 제1 패키지에 의해 수용되고, 상기 제2 프로세서 판독가능 메모리는 제2 패키지에 의해 수용된 제3 반도체 다이체 포함되는
    장치.
KR1020157020998A 2013-02-04 2014-01-29 이기종 메모리의 동적 관리 기법 KR102207598B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/758,613 2013-02-04
US13/758,613 US9110592B2 (en) 2013-02-04 2013-02-04 Dynamic allocation of heterogenous memory in a computing system
PCT/US2014/013468 WO2014120698A1 (en) 2013-02-04 2014-01-29 Dynamic management of heterogeneous memory

Publications (2)

Publication Number Publication Date
KR20150114958A true KR20150114958A (ko) 2015-10-13
KR102207598B1 KR102207598B1 (ko) 2021-01-25

Family

ID=50156901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157020998A KR102207598B1 (ko) 2013-02-04 2014-01-29 이기종 메모리의 동적 관리 기법

Country Status (11)

Country Link
US (1) US9110592B2 (ko)
EP (1) EP2951689A1 (ko)
JP (1) JP2016510471A (ko)
KR (1) KR102207598B1 (ko)
CN (1) CN105144106B (ko)
AU (1) AU2014212559A1 (ko)
BR (1) BR112015018321A2 (ko)
CA (1) CA2898127A1 (ko)
MX (1) MX352450B (ko)
RU (1) RU2015132229A (ko)
WO (1) WO2014120698A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200040109A (ko) * 2018-10-08 2020-04-17 울산과학기술원 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치
US11029867B2 (en) 2019-07-04 2021-06-08 SK Hynix Inc. Apparatus and method for transmitting map information and read count in memory system
US11269765B2 (en) 2019-06-04 2022-03-08 SK Hynix Inc. Operating method of controller and memory system
US11354250B2 (en) 2019-04-22 2022-06-07 SK Hynix Inc. Apparatus for transmitting map information in memory system
US11366611B2 (en) 2019-05-29 2022-06-21 SK Hynix Inc. Apparatus for transmitting map information in a memory system
US11416408B2 (en) 2019-07-05 2022-08-16 SK Hynix Inc. Memory system, memory controller and method for operating memory system
US11422942B2 (en) 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140215177A1 (en) * 2012-08-02 2014-07-31 Boo Jin Kim Methods and Systems for Managing Heterogeneous Memories
US20150377937A1 (en) * 2013-03-22 2015-12-31 St-Ericsson Sa Calculating Power Consumption of Electonic Devices
US20150169445A1 (en) * 2013-12-12 2015-06-18 International Business Machines Corporation Virtual grouping of memory
WO2015123225A1 (en) * 2014-02-11 2015-08-20 Atlantis Computing, Inc. Aggregating memory to create a network addressible storage volume for storing virtual machine files
JP6448254B2 (ja) * 2014-08-19 2019-01-09 ラピスセミコンダクタ株式会社 メモリ制御装置及びメモリ制御方法
WO2016029189A1 (en) * 2014-08-22 2016-02-25 Alacrity Semiconductors, Inc. Methods and apparatus for memory programming
US10248497B2 (en) * 2014-10-22 2019-04-02 Advanced Micro Devices, Inc. Error detection and correction utilizing locally stored parity information
US9720827B2 (en) * 2014-11-14 2017-08-01 Intel Corporation Providing multiple memory modes for a processor including internal memory
US20160147573A1 (en) * 2014-11-24 2016-05-26 Samsung Electronics Co., Ltd. Computing system with heterogeneous storage and process mechanism and method of operation thereof
US9940457B2 (en) 2015-02-13 2018-04-10 International Business Machines Corporation Detecting a cryogenic attack on a memory device with embedded error correction
US9606851B2 (en) 2015-02-02 2017-03-28 International Business Machines Corporation Error monitoring of a memory device containing embedded error correction
JP6519228B2 (ja) * 2015-02-27 2019-05-29 富士通株式会社 データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法
US10606651B2 (en) 2015-04-17 2020-03-31 Microsoft Technology Licensing, Llc Free form expression accelerator with thread length-based thread assignment to clustered soft processor cores that share a functional circuit
US10157008B2 (en) 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
US10540588B2 (en) 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US10452995B2 (en) 2015-06-29 2019-10-22 Microsoft Technology Licensing, Llc Machine learning classification on hardware accelerators with stacked memory
US9942631B2 (en) 2015-09-25 2018-04-10 Intel Corporation Out-of-band platform tuning and configuration
JP6716894B2 (ja) * 2015-11-19 2020-07-01 日本電気株式会社 メモリ割り当て装置、メモリ割当方法、および、プログラム
US10168985B2 (en) * 2015-12-21 2019-01-01 Intel Corporation Dynamic audio codec enumeration
US20170185292A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Memory Management of High-Performance Memory
CN106997275B (zh) * 2016-01-26 2019-09-03 南宁富桂精密工业有限公司 缓存管理方法及使用该方法的电子装置
EP3449482A4 (en) * 2016-06-27 2019-12-11 Apple Inc. STORAGE SYSTEM WITH COMBINED STORAGE HIGH DENSITY, LOW BANDWIDTH AND LOW DENSITY AND HIGH BANDWIDTH
US10372635B2 (en) * 2016-08-26 2019-08-06 Qualcomm Incorporated Dynamically determining memory attributes in processor-based systems
KR20180038109A (ko) * 2016-10-05 2018-04-16 삼성전자주식회사 모니터링 회로를 포함하는 전자 장치 및 그것에 포함되는 스토리지 장치
KR102631351B1 (ko) * 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
US10482007B2 (en) * 2016-12-06 2019-11-19 Noblis, Inc. Memory allocation on non-volatile storage
US10509748B2 (en) * 2016-12-30 2019-12-17 Intel Corporation Memory sharing for application offload from host processor to integrated sensor hub
US10802979B2 (en) 2017-01-27 2020-10-13 Intel Corporation Dynamic code execution location in heterogeneous memory
US10180793B2 (en) * 2017-01-31 2019-01-15 Hewlett Packard Enterprise Development Lp Performance attributes for memory
US10368128B2 (en) * 2017-08-11 2019-07-30 Microsoft Technology Licensing, Llc Memory allocation type for media buffer
US11171665B2 (en) 2017-09-11 2021-11-09 Nyriad Limited Dictionary-based data compression
KR102714157B1 (ko) 2019-01-15 2024-10-08 에스케이하이닉스 주식회사 메모리 시스템, 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법
KR102394695B1 (ko) * 2017-11-08 2022-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR102455880B1 (ko) 2018-01-12 2022-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
KR102482896B1 (ko) 2017-12-28 2022-12-30 삼성전자주식회사 이종 휘발성 메모리 칩들을 포함하는 메모리 장치 및 이를 포함하는 전자 장치
US11010330B2 (en) 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
US11307796B2 (en) * 2018-09-27 2022-04-19 International Business Machines Corporation Mapping memory allocation requests using various memory attributes
US10831659B2 (en) 2018-09-28 2020-11-10 International Business Machines Corporation Scope resolution tag buffer to reduce cache miss latency
US10474509B1 (en) * 2018-10-17 2019-11-12 Fmr Llc Computing resource monitoring and alerting system
US10983832B2 (en) 2019-02-14 2021-04-20 International Business Machines Corporation Managing heterogeneous memory resource within a computing system
CN111177019B (zh) * 2019-08-05 2021-07-16 腾讯科技(深圳)有限公司 一种内存分配管理方法、装置、设备及存储介质
JP2021043654A (ja) * 2019-09-10 2021-03-18 富士通株式会社 情報処理装置及びプロセス配置決定プログラム
CN111309644B (zh) * 2020-02-14 2021-11-09 苏州浪潮智能科技有限公司 一种内存分配方法、装置和计算机可读存储介质
US11500575B2 (en) * 2020-09-23 2022-11-15 Micron Technology, Inc. Pattern generation for multi-channel memory array
WO2022139990A1 (en) * 2020-12-21 2022-06-30 Arris Enterprises Llc Method and system for memory management on the basis of zone allocations and optimization using improved lmk

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08166888A (ja) * 1994-12-14 1996-06-25 Nec Corp メモリ管理装置
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
KR20120082836A (ko) * 2011-01-14 2012-07-24 애플 인크. 복수의 회로들에서의 성능 파라미터들 조정
JP2013502016A (ja) * 2009-08-13 2013-01-17 クゥアルコム・インコーポレイテッド メモリ管理および効率的なデータ処理のための装置および方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568651A (en) * 1994-11-03 1996-10-22 Digital Equipment Corporation Method for detection of configuration types and addressing modes of a dynamic RAM
US6567904B1 (en) * 1995-12-29 2003-05-20 Intel Corporation Method and apparatus for automatically detecting whether a memory unit location is unpopulated or populated with synchronous or asynchronous memory devices
TW493119B (en) * 2001-03-28 2002-07-01 Via Tech Inc Method for automatically identifying the type of memory and motherboard using the same
JP2002342164A (ja) * 2001-05-22 2002-11-29 Hitachi Ltd 記憶装置及びデータ処理装置並びに記憶部制御方法
EP1589433A1 (en) 2004-04-20 2005-10-26 Ecole Polytechnique Federale De Lausanne Virtual memory window with dynamic prefetching support
US7395385B2 (en) 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
CN100432957C (zh) * 2005-02-12 2008-11-12 美国博通公司 一种管理存储器的方法
US20070174502A1 (en) * 2006-01-23 2007-07-26 Cheng-Chieh Lin Method and apparatus of identifying type of non-volatile memory
US7490217B2 (en) * 2006-08-15 2009-02-10 International Business Machines Corporation Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
US20090182977A1 (en) * 2008-01-16 2009-07-16 S. Aqua Semiconductor Llc Cascaded memory arrangement
US8286014B2 (en) 2008-03-25 2012-10-09 Intel Corporation Power management for a system on a chip (SoC)
CN101667448B (zh) * 2008-09-04 2012-11-07 奕力科技股份有限公司 存储器存取控制装置及其相关控制方法
US8639871B2 (en) * 2009-04-08 2014-01-28 Google Inc. Partitioning a flash memory data storage device
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US8990490B2 (en) * 2011-11-29 2015-03-24 Rambus Inc. Memory controller with reconfigurable hardware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08166888A (ja) * 1994-12-14 1996-06-25 Nec Corp メモリ管理装置
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
JP2013502016A (ja) * 2009-08-13 2013-01-17 クゥアルコム・インコーポレイテッド メモリ管理および効率的なデータ処理のための装置および方法
KR20120082836A (ko) * 2011-01-14 2012-07-24 애플 인크. 복수의 회로들에서의 성능 파라미터들 조정

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Martinot, L. 'Dynamic Memory Allocation Optimizes Integration of Blackfin Processor Software'. Analog Dialogue, Vol.37, No.7, 2003, pp.1-5. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200040109A (ko) * 2018-10-08 2020-04-17 울산과학기술원 이종 메모리를 활용한 범용 gpu에서의 페이징 방법 및 장치
US11422942B2 (en) 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
US11354250B2 (en) 2019-04-22 2022-06-07 SK Hynix Inc. Apparatus for transmitting map information in memory system
US11366611B2 (en) 2019-05-29 2022-06-21 SK Hynix Inc. Apparatus for transmitting map information in a memory system
US11269765B2 (en) 2019-06-04 2022-03-08 SK Hynix Inc. Operating method of controller and memory system
US11029867B2 (en) 2019-07-04 2021-06-08 SK Hynix Inc. Apparatus and method for transmitting map information and read count in memory system
US11416408B2 (en) 2019-07-05 2022-08-16 SK Hynix Inc. Memory system, memory controller and method for operating memory system

Also Published As

Publication number Publication date
EP2951689A1 (en) 2015-12-09
WO2014120698A1 (en) 2014-08-07
MX2015010046A (es) 2016-03-04
BR112015018321A2 (pt) 2017-07-18
US20140223098A1 (en) 2014-08-07
MX352450B (es) 2017-11-24
CN105144106B (zh) 2020-05-05
KR102207598B1 (ko) 2021-01-25
CA2898127A1 (en) 2014-08-07
RU2015132229A (ru) 2017-02-08
CN105144106A (zh) 2015-12-09
AU2014212559A1 (en) 2015-07-30
US9110592B2 (en) 2015-08-18
JP2016510471A (ja) 2016-04-07

Similar Documents

Publication Publication Date Title
KR102207598B1 (ko) 이기종 메모리의 동적 관리 기법
KR101576263B1 (ko) Pcie(peripheral component interface express) 커플링된 디바이스를 pcd(portable computing device) 상에서 동작 가능한 운영 체제에 노출하기 위한 방법 및 pcd
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
US8990441B2 (en) Assigning priorities to data for hybrid drives
EP3028272A1 (en) Method and apparatus using multiple simultaenous speech recognizers
US10437715B2 (en) Verification that particular information is transferred by an application
TW201727473A (zh) 具有記憶體管理機制之計算系統及其操作方法以及非暫時性電腦可讀取媒體
US20170160928A1 (en) Systems and methods for a hybrid parallel-serial memory access
US10802760B2 (en) Apparatus and method of intelligent dynamic application aware storage device optimization
EP3042489B1 (en) Restricting information requested by an application
TWI696068B (zh) 用於提供高效功率檔案系統操作至一非揮發性區塊記憶體之系統及方法
US20240053891A1 (en) Chipset Attached Random Access Memory
EP4199068A1 (en) Stepped package and recessed circuit board
Zhang et al. Design of portable media player based on linux and MIPS-core au1200 processor

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant