KR20130018323A - 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하는 방법 - Google Patents

데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하는 방법 Download PDF

Info

Publication number
KR20130018323A
KR20130018323A KR1020127032413A KR20127032413A KR20130018323A KR 20130018323 A KR20130018323 A KR 20130018323A KR 1020127032413 A KR1020127032413 A KR 1020127032413A KR 20127032413 A KR20127032413 A KR 20127032413A KR 20130018323 A KR20130018323 A KR 20130018323A
Authority
KR
South Korea
Prior art keywords
physical address
memory
register
data value
surrogate
Prior art date
Application number
KR1020127032413A
Other languages
English (en)
Other versions
KR101429969B1 (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 KR20130018323A publication Critical patent/KR20130018323A/ko
Application granted granted Critical
Publication of KR101429969B1 publication Critical patent/KR101429969B1/ko

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)

Abstract

데이터 값을 변환하고 저장하기 위한 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성하는 방법이 설명된다. 일 실시예에서, 변환될 데이터 값을 특정하는 제 1 오퍼랜드 및 그 데이터 값을 저장할 써로게이트 메모리 액세싱 에이전트 레지스터의 위치와 연관된 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령이 수신된다. 데이터 값은 제 1 물리적 어드레스로 변환될 수 있다. 가상 어드레스는 제 2 물리적 어드레스로 변환될 수 있다. 제 1 물리적 어드레스는 제 2 물리적 어드레스에 기초하여 써로게이트 메모리 액세싱 에이전트 레지스터 내에 저장된다.

Description

데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하는 방법{CONFIGURING SURROGATE MEMORY ACCESSING AGENTS USING INSTRUCTIONS FOR TRANSLATING AND STORING DATA VALUES}
본 명세서에 개시된 발명의 개념들의 실시예들은 일반적으로 데이터 프로세싱 시스템들의 분야에 관한 것이다. 더욱 구체적으로, 본 명세서에 개시된 발명의 개념들의 실시예들은 써로게이트 메모리 액세싱 에이전트(surrogate memory accessing agent)들을 구성하기 위해 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하는 것에 관한 것이다.
데이터 프로세싱 시스템들은 명령을 프로세싱하기 위해 서로 상호작용하는 다양한 컴포넌트들을 포함할 수 있다. 일 컴포넌트는 물리적 메모리 내에 저장된 값들을 관리할 수 있는 써로게이트 메모리 액세싱 에이전트일 수 있다. 써로게이트 메모리 액세싱 에이전트의 일례는 다이렉트 메모리 액세스(DMA) 채널이다. 써로게이트 메모리 액세싱 에이전트는, 예를 들어, 메모리 내에 저장된 값에 대한 계산을 수행하기 위해, 메모리에 액세스하거나 또는 그 값이 물리적 메모리 내의 제 2 위치로 카피되거나 또는 이동하도록 야기함으로써 물리적 메모리 내에서 값의 위치를 변화시키기 위해 이용될 수 있다. 예를 들어, 써로게이트 메모리 액세싱 에이전트는 2개의 레지스터들을 포함할 수 있다. 하나의 레지스터는 이동되거나 또는 카피될 메모리 값의 메모리 위치의 물리적 어드레스인 데이터 값을 저장할 수 있다. 다른 레지스터는, 메모리 값이 이동되거나 또는 카피되는 메모리 위치의 물리적 어드레스인 데이터 값을 저장할 수 있다. 후속하여, 예를 들어, 레지스터들이 데이터 값들로 채워질 때, 써로게이트 메모리 액세싱 에이전트는 물리적 메모리 위치 내의 메모리 값이 이동되거나 또는 카피되도록 야기하기 위해 레지스터들로부터 데이터 값들을 제공할 수 있다.
써로게이트 메모리 액세싱 에이전트들은, 예를 들어, 액세스될 메모리 내의 위치의 물리적 어드레스인 데이터 값을 써로게이트 메모리 액세싱 에이전트의 레지스터 내에 저장함으로써, 프로세서에 의해 실행된 소프트웨어에 의해 구성된다. 데이터 값으로 표현된 물리적 어드레스는, 프리빌리지 모드(privileged mode)에서 동작하고 그리고 STORE 명령을 실행하는 프로세서로부터 써로게이트 메모리 액세싱 에이전트에 의해 수신된다. STORE 명령은 레지스터의 특정된 어드레스에 의해 식별된 레지스터 내에 저장될 데이터 값으로 표현된 물리적 어드레스를 특정한다. 프로세서는 물리적 어드레스에 액세스하고, 이를 획득하고, 이를 기록하기 위해 프리빌리지 모드에서 동작한다. 논-프리빌리지 모드에서 동작하는 프로세서는 물리적 어드레스들의 무결성을 보호하기 위해 물리적 어드레스들에 대한 액세스를 갖지 않는다.
프로세서가 논-프리빌리지 모드에서 동작하는 경우, 프로세서는 먼저 논-프리빌리지 프로세스의 실행을 보류하고 프리빌리지 모드로 전환한다. 일단, 프리빌리지 모드에 있으면, 프로세서는, 데이터 값으로 표현된, 액세스될 메모리 내의 위치의 물리적 어드레스를 결정한다. 물리적 어드레스를 나타내는 데이터 값은 써로게이트 메모리 액세싱 에이전트의 레지스터 내에 저장된다.
실행을 보류하는 것은 프로세싱 및 소모 전력에 있어서 비능률성들을 도입할 수 있다. 이에 따라, 프로세싱 딜레이들과, 전력 소모를 감소시키고 그리고/또는 다르게는 더욱 효율적인 프로세싱을 제공할 수 있는 써로게이트 메모리 액세싱 에이전트들을 구성하기 위한 시스템들 및 프로세스들이 바람직하다. 또한, 물리적 어드레스들이 논-프리빌리지 모드들에서의 동작들에 노출되는 것을 보호하지만, 프로세서가 프리빌리지 모드에서 동작하도록 요구하지 않고 써로게이트 메모리 액세싱 에이전트들을 구성하는 것이 바람직하다.
실시예에서, 변환될 데이터 값을 특정하는 제 1 오퍼랜드 및 그 데이터 값이 저장될 써로게이트 메모리 액세싱 에이전트 레지스터의 위치와 연관된 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령이 수신된다. 데이터 값은 제 1 물리적 어드레스로 변환될 수 있다. 가상 어드레스는 제 2 물리적 어드레스로 변환될 수 있다. 제 1 물리적 어드레스는 제 2 물리적 어드레스에 기초하여 써로게이트 메모리 액세싱 에이전트 레지스터에 저장된다.
이러한 예시적인 실시예는, 본원에 개시된 발명의 개념들을 제한하거나 또는 한정하는 것이 아니라, 본원의 이해를 돕기 위한 예시들을 제공하기 위한 것으로 언급된다. 본원의 개시물의 다른 양상들, 이점들, 및 특징들은 이하의 섹션들: 도면의 간단한 설명, 상세한 설명, 및 청구항들을 포함하는 전체 출원서의 리뷰 이후에 명백해질 것이다.
본원에 개시된 본 발명의 개념들의 이러한 그리고 다른 특징들, 양상들, 및 이점들은, 첨부된 도면들을 참조하여 이하의 상세한 설명이 판독될 때, 더 잘 이해된다.
도 1은, 특정 실시예들에 따라서 논-프리빌리지 또는 프리빌리지 모드에서 동작하는 프로세서에 의해 프로세싱될 수 있는 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 데이터 프로세싱 시스템의 일례를 예시하는 일반적인 도면이다.
도 2는, 특정 실시예들에 따라서 논-프리빌리지 또는 프리빌리지 모드에서 동작하는 프로세서에 의해 프로세싱될 수 있는 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성하기 위한 예시적인 데이터 액세싱 시스템을 예시하는 일반적인 도면이다.
도 3은 특정 실시예들에 따라서 논-프리빌리지 또는 프리빌리지 모드에서 동작하는 프로세서에 의해 프로세싱될 수 있는 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성하기 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도 4는 특정 실시예들에 따라서 논-프리빌리지 또는 프리빌리지 모드에서 동작하는 프로세서에 의해 프로세싱될 수 있는 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성하기 위한 제 2 예시적인 데이터 프로세싱 시스템의 일반적인 도면이다.
도 5는 특정 실시예들에 따라서 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛을 포함할 수 있는 예시적인 휴대용 통신 디바이스를 예시하는 일반적인 도면이다.
도 6은 특정 실시예들에 따라서 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛을 포함할 수 있는 예시적인 셀룰러 전화기를 예시하는 일반적인 도면이다.
도 7은 특정 실시예들에 따라서 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛을 포함할 수 있는 예시적인 무선 인터넷 프로토콜 전화기를 예시하는 일반적인 도면이다.
도 8은 특정 실시예들에 따라서 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛을 포함할 수 있는 예시적인 휴대용 디지털 어시스턴트를 예시하는 일반적인 도면이다.
도 9는 특정 실시예들에 따라서 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛을 포함할 수 있는 예시적인 오디오 파일 플레이어를 예시하는 일반적인 도면이다.
설명의 목적들을 위한 상세한 설명 전반에, 본원에 개시된 발명의 개념들의 철저한 이해를 제공하기 위해 다양하고 구체적인 세부사항들이 설명된다. 그러나, 본원에 개시된 발명의 개념들이 이러한 구체적인 세부사항들 중 몇몇은 없이도 실행될 수 있다는 것이 당업자에게는 명백할 것이다. 다른 예시들에서, 잘-알려진 구조들 및 디바이스들은 여기에 개시된 발명의 개념들의 기초 원리들이 모호해지는 것을 회피하기 위해 블록도 형태로 도시된다.
본원에 개시된 발명의 개념들의 실시예들은 논-프리빌리지 또는 프리빌리지 모드에서 동작하는 프로세서에 의해 프로세싱될 수 있는 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 데이터 프로세싱 시스템들에 관한 것이다. 명령은 써로게이트 메모리 액세싱 에이전트를 구성하기 위해 데이터 값들을 변환하고 저장하기 위한 명령일 수 있다. 써로게이트 메모리 액세싱 에이전트는, 하나 또는 둘 이상의 데이터 값들이 써로게이트 메모리 액세싱 에이전트 내의 저장을 위해 제공될 때, 구성될 수 있다. 써로게이트 메모리 액세싱 에이전트는, 임의의 컴포넌트 또는, 다른 컴포넌트 대신에 직접 물리적 메모리에 액세싱할 수 있는 프로세스, 예컨대 프로세서일 수 있다. 써로게이트 메모리 액세싱 에이전트의 예시는, 제 1 물리적 메모리 위치로부터 제 2 물리적 메모리 위치로 메모리 값들을 이동시키거나 또는 카피할 수 있고, 또는 계산 또는 다른 목적을 수행하기 위해 메모리 값에 액세스할 수 있는 다이렉트 메모리 액세스(DMA) 채널이다. 써로게이트 메모리 액세싱 에이전트는, 액세스할 메모리 값의 위치를 특정하는 데이터 값을 각각 저장할 수 있는 하나 또는 둘 이상의 레지스터들을 포함할 수 있다.
명령은 프로세스로부터 수신될 수 있고, 그리고 써로게이트 메모리 액세싱 에이전트를 구성하도록 이용될 수 있다. 명령은, 변환될 가상 어드레스를 나타내는 데이터 값을 특정하는 하나의 오퍼랜드 및 써로게이트 메모리 액세싱 에이전트의 레지스터의 위치에 대응하는 가상 어드레스를 특정하는 다른 오퍼랜드를 포함할 수 있다. 논-프리빌리지 또는 프리빌리지 모드에서 동작하는 프로세서는, 레지스터의 위치에 대응하는 가상 어드레스가 변환 룩어사이드 버퍼(TLB; translation lookaside buffer)를 포함하는 메모리 관리 유닛(MMU)과 같은 MMU에 의해 레지스터의 물리적 어드레스로 변환되게 하는 명령을 프로세싱할 수 있다. 프로세서 유닛은, 데이터 값으로 표현된 가상 어드레스가 MMU에 의해 데이터 값으로 표현된 물리적 어드레스로 변환되도록 야기할 수 있다. 데이터 값으로 표현된 물리적 어드레스는 레지스터의 물리적 어드레스에 의해 식별된 레지스터 내에 저장될 수 있다.
몇몇 실시예들에서, 써로게이트 메모리 액세싱 에이전트는, 메모리 값에 대한 계산 또는 이와 다른 것을 수행하기 위한 것과 같이, 데이터 값으로 표현된 물리적 어드레스에서 메모리 값에 액세스하기 위해, 저장된 데이터 값을 이용할 수 있다. 일 실시예에서, 써로게이트 메모리 액세싱 에이전트는 2개의 레지스터들을 포함한다. 2개의 레지스터들 각각은, 특정 실시예들에 따라서 명령들을 이용하여 구성될 수 있다. 데이터 값이 2개의 레지스터들 각각에 저장된 후, 써로게이트 메모리 액세싱 에이전트는 물리적 메모리 내의 메모리 값이 저장된 데이터 값들을 이용하여 이동되거나 또는 카피되도록 야기할 수 있다. 예를 들어, 제 1 레지스터 내의 데이터 값은 카피되거나 또는 이동될 메모리 값의 물리적 어드레스일 수 있고, 제 2 레지스터 내의 데이터 값은 메모리 값이 카피되거나 또는 이동되는 메모리 위치의 물리적 어드레스일 수 있다.
데이터 값들을 변환하고 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하는 것은, 프로세싱 속도를 증가시킬 수 있고, 딜레이들을 감소시킬 수 있고, 전력 소모를 감소시킬 수 있으며, 그리고/또는 다르게는 더욱 효율적인 프로세싱을 제공할 수 있다. 도 1은 데이터 값들을 변환 및 저장하기 위한 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성하는 일 실시예의 일반적인 도면을 도시한다. 소프트웨어 프로그램과 같은 프로세스(100)는 프로세서 유닛(102)과 통신하고, 감시-레벨(supervisory-level) 프로세스 대신에 사용자에 의해 제어가능한 하나 또는 둘 이상의 사용자-레벨 소프트웨어 프로세스들일 수 있으며, 이는 사용자가 직접 조종하는 어떠한 능력도 제한하지 않는다. 프로세스(100)는, TLB(110)를 갖는 MMU(108)와 같은 MMU(108)에 의해 변환가능한 가상 어드레스들을, 써로게이트 메모리 액세싱 에이전트(112) 내에 저장을 위해 물리적 어드레스들로 식별하는 명령을 제공할 수 있다. 도 1에 도시된 실시예에서, 써로게이트 메모리 액세싱 에이전트(112)는 MMU(108)로부터 별도의 컴포넌트이다.
프로세스(100)는 프로세서 유닛(102)에 명령을 제공하도록 구성될 수 있다. 이 명령은, 써로게이트 메모리 액세싱 에이전트(112)의 레지스터 내에 저장될 데이터 값으로 표현된 제 1 가상 어드레스를 특정하는 제 1 오퍼랜드 및 레지스터의 위치와 연관된 제 2 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함할 수 있다. 프로세서 유닛(102)은, 제 2 가상 어드레스가 어드레스 레지스터(104)에서 MMU(108)로 제공되도록 그리고 제 1 가상 어드레스가 데이터 레지스터(106)에서 MMU(108)로 제공되도록 야기하는 명령을 이용할 수 있다. 이 명령에 따르면, 프로세서 유닛(102)은, TLB(110)가 제 1 가상 어드레스를 레지스터 내에 저장될 데이터 값으로 표현된 제 1 물리적 어드레스로 변환하고, 제 2 가상 어드레스를 레지스터의 위치에 대응하는 제 2 물리적 어드레스로 변환하도록 야기할 수 있다. 제 2 물리적 어드레스는 써로게이트 메모리 액세싱 에이전트(112)의 레지스터 내에 제 1 물리적 어드레스를 저장하기 위해 이용될 수 있다.
써로게이트 메모리 액세싱 에이전트(112)는 후속 프로세싱을 위해 프로세서 유닛(102)에 의해 액세스된 데이터를 저장하기 위한 메모리 디바이스일 수 있는 메모리(114)에 액세스할 수 있다. 메모리(114)는 메모리(114) 내의 서로 다른 물리적 어드레스들에 저장된 메모리 값들을 포함한다. 메모리 값들이 저장될 수 있는 메모리(114) 내의 위치들의 물리적 어드레스들은 PA1, PA2, 및 PAn으로 표현된다. 써로게이트 메모리 액세싱 에이전트(112)는 메모리(114) 내의 위치에 액세스하기 위해 제 1 물리적 어드레스를 나타내는 데이터 값을 이용할 수 있다.
일 예시에서, 메모리 값은 PA1에 대응하는 위치에 있는 메모리(114)에 저장될 수 있으며, 상기 PA1은 PA2에 대응하는 위치로 이동될 필요가 있다. 써로게이트 메모리 액세싱 에이전트(112)는, PA1에 대응하는 물리적 어드레스를 나타내는 데이터 값이 제 1 레지스터 내에 저장되고 PA2에 대응하는 물리적 어드레스를 나타내는 데이터 값이 제 2 레지스터 내에 저장되도록, 적어도 2개의 레지스터들을 포함할 수 있다. 제 1 레지스터 내의 데이터 값은 이동될 또는 카피될 메모리 값의 위치(PA1)를 식별하기 위해 이용될 수 있고, 제 2 레지스터 내의 데이터 값은 메모리 값이 이동될 위치(PA2)를 식별하기 위해 이용될 수 있다. 따라서, 메모리 값은 논-프리빌리지 또는 프리빌리지 모드에서 동작하고 프로세싱 비효율성들을 회피하는 프로세서에 의해 프로세싱된 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 PA1에서 PA2로 이동될 수 있다.
데이터 값들을 변환 및 저장하기 위한 다양한 명령들은 써로게이트 메모리 액세싱 에이전트들을 구성하도록 이용될 수 있다. 도 2는 프로세서(100)에 의해 제공된 명령(202)을 이용하여 써로게이트 메모리 액세싱 에이전트(112)를 구성하기 위한 데이터 프로세싱 시스템의 실시예의 일반적인 도면이다. 명령(202)은 2개의 오퍼랜드들: (a) 변환될 가상 어드레스(VA)를 나타내는 데이터 값을 특정함(204); 및 (b) 변환된 데이터 값이 저장될 레지스터의 위치에 대응하는 가상 어드레스(VA)를 특정함(206)을 포함할 수 있다. 가상 어드레스들은 프로세스(100)에 의해 특정될 수 있다. 몇몇 실시예들에서, 명령(202)은 가상 어드레스들 대신에 프로세서 유닛(102) 내에 가상 어드레스들의 위치를 특정하는 오퍼랜드를 포함한다.
프로세서 유닛(102)은 명령 저장소(208) 내에 명령(202)을 저장하도록 구성될 수 있다. 명령 저장소(208)는, 추후의 이용, 프로세싱 또는 액세스를 위해 명령(202)이 저장된 컴퓨터-판독가능 매체일 수 있다. 명령(202)은 임의의 적절한 프로그래밍 코드를 이용하여 표현될 수 있다. 예를 들어, 제 1 오퍼랜드는 물리적 어드레스로 변환될 가상 어드레스를 나타내는 데이터 값을 특정하기 위한 코드일 수 있고, 제 2 오퍼랜드는 데이터 값으로 표현된 물리적 어드레스를 저장할 써로게이트 메모리 액세싱 에이전트 레지스터의 위치와 연관된 가상 어드레스를 특정하는 코드일 수 있다.
프로세서 유닛(102)은 명령 저장소(208)에 액세스함으로써 수신시에 또는 그 이후에 명령(202)을 프로세싱할 수 있다. 프로세서 유닛(102)은, 데이터 값이 저장될 레지스터의 위치를 특정하는 가상 어드레스를 제공함으로써 그리고 제 2 가상 어드레스를 나타내는 데이터 값을 제공함으로써 명령(202)을 프로세싱할 수 있다. 레지스터의 가상 어드레스는 써로게이트 메모리 액세싱 에이전트(112) 내의 레지스터에 대응할 수 있다. 명령(202)에 기초하여, 프로세서 유닛(102)은 레지스터의 위치를 특정하는 가상 어드레스 및 데이터 값으로 표현된 가상 어드레스가 MMU, 예를 들어, TLB(210)를 포함하는 MMU에 의해 변환되도록 야기할 수 있다.
TLB(210)는 레지스터의 위치를 특정하는 가상 어드레스를 레지스터의 물리적어드레스(PA)로 변환할 수 있다. 예를 들어, TLB(210)는 레지스터의 위치를 특정하는 가상 어드레스와 연관된 물리적 어드레스를 결정하기 위한 룩업 테이블을 포함할 수 있다. 또한, TLB(210)는 데이터 값으로 표현된 가상 어드레스를 데이터 값으로 표현된 물리적 어드레스(PA)로 변환한다. TLB(210)는 변환된 물리적 어드레스들을 써로게이트 메모리 액세싱 에이전트(112)에 제공할 수 있다.
써로게이트 메모리 액세싱 에이전트(112)는 데이터 값들을 저장하기 위한 하나 또는 둘 이상의 레지스터들을 포함할 수 있다. 도 2에 도시된 실시예에서, 써로게이트 메모리 액세싱 에이전트(112)는 2개의 레지스터들: 레지스터 1(212) 및 레지스터 2(214)를 포함한다. 레지스터의 물리적 어드레스는 데이터 값을 저장할 써로게이트 메모리 액세싱 에이전트(112)의 레지스터를 식별하는데 이용될 수 있다. 예를 들어, 레지스터의 물리적 어드레스는 레지스터 1(212)의 물리적 어드레스일 수 있다. 레지스터의 물리적 어드레스를 이용하는 레지스터 1(212)을 식별한 후, 물리적 어드레스를 나타내는 데이터 값은 레지스터 1(212)에 저장된다.
몇몇 실시예들에서, 프로세서 유닛(102)은, 서로 다른 가상 어드레스들이 변환을 위해 특정되고 그리고 레지스터 2(214)에 저장을 위해 이용하는 제 2 명령을 수신할 수 있다. 예를 들어, 레지스터 2(214)에 대응하는 위치에 연관된 가상 어드레스가 식별될 수 있다. 제 1 명령(202)에서와는 상이한, 변환될 다른 가상 어드레스를 나타내는 데이터 값이 특정될 수 있다. 프로세서 유닛(102)은, 일반적으로 앞서 설명된 프로세스 및 컴포넌트들에 따라서, 제 2 명령을 프로세싱할 수 있고, 제 2 명령에 의해 식별된 데이터 값으로 표현된 물리적 어드레스를 레지스터 2(214)에 저장되도록 야기할 수 있다. 써로게이트 메모리 액세싱 에이전트(112)는 메모리(114)에 액세스하기 위해 레지스터 1(212) 및 레지스터 2(214)에 저장된 데이터 값들을 이용할 수 있다.
메모리(114)는, 데이터가 프로세싱을 위해 저장 및 액세스되는 물리적 메모리일 수 있다. 도 2에 도시된 메모리(114)는 PA1의 물리적 어드레스를 갖는 위치에 저장된 메모리 값을 포함하고, 공개된 PA2의 물리적 어드레스를 갖는 제 2 위치(즉, 메모리 값은 그 위치에 저장되지 않음)를 포함한다. 메모리(114)는 예시적인 목적들을 위해 제공된다. 다른 메모리 디바이스들은, 그 값들이 저장되거나 또는 저장될 수 있는 물리적 어드레스들과 연관된 추가적인 메모리 위치들을 포함할 수 있다.
다양한 실시예들에 따른 명령들은, 하나 또는 둘 이상의 레지스터들에서 물리적 어드레스를 나타내는 변환된 데이터 값을 저장함으로써 써로게이트 메모리 액세싱 에이전트들을 구성하도록 이용될 수 있다. 도 3은 데이터 값을 변환하고 저장하기 위한 명령을 이용하여 써로게이트 메모리 액세싱 에이전트를 구성하기 위한 방법을 예시한다. 도 3의 흐름도는 도 2에 예시된 컴포넌트들 및 명령들을 참조하여 설명된다. 그러나, 다른 구현들도 가능하다.
이 방법은, 변환될 가상 어드레스를 나타내는 데이터 값을 특정하고 변환된 데이터 값을 저장하기 위해 레지스터의 가상 어드레스를 특정하는 명령을 프로세서 유닛(102)이 수신할 때 블록(302)에서 시작한다. 이 명령은 프로세스, 예컨대 사용자 모드에서 동작하는 소프트웨어로부터 수신될 수 있다. 레지스터의 가상 어드레스를 특정하는 오퍼랜드는 써로게이트 메모리 액세싱 에이전트(112)의 레지스터 1(212)의 물리적 어드레스에 대응하는 가상 어드레스를 포함할 수 있다. 프로세서 유닛(102)은 그 명령을 프로세싱하도록 구성된다. 예를 들어, 프로세서 유닛(102)은 명령 저장소(208)와 같은 컴퓨터-판독가능 매체 내에 명령을 저장할 수 있고, 그 명령에 의해 특정된 동작들을 수행할 수 있다.
블록(304)에서, 프로세서 유닛(102)은 가상 어드레스들이 TLB(210)에 의해 물리적 어드레스들로 변환되도록 야기한다. 프로세서 유닛(102)은 레지스터 1(212)에 대응하는 위치의 가상 어드레스 및 다른 가상 어드레스를 나타내는 데이터 값을 TLB(210)에 제공할 수 있고, TLB(210)가 그 가상 어드레스들을 변환시키도록 야기할 수 있다. TLB(210)는, 가상 어드레스들과 연관된 물리적 어드레스들을 결정하기 위한 룩업 테이블 또는 다른 메커니즘을 포함할 수 있다. 예를 들어, TLB(210)는 레지스터 1(212)에 대응하는 위치의 가상 어드레스와 연관된 물리적 어드레스를 결정하기 위해 룩업 테이블을 이용할 수 있다. TLB(210)의 출력은 레지스터 1(212)의 물리적 어드레스일 수 있고 레지스터 1(212)에 저장될 데이터 값으로 표현된 다른 물리적 어드레스일 수 있다. 데이터 값으로 표현된 물리적 어드레스는 써로게이트 메모리 액세싱 에이전트에 의해 액세스될 메모리 내의 위치에 대응할 수 있다.
블록(306)에서, 프로세서 유닛(102)은 레지스터 1(212)의 물리적 어드레스를 이용하여 물리적 어드레스를 나타내는 데이터 값을 레지스터 1(212)에 기록한다. 예를 들어, 레지스터 1(212)의 물리적 어드레스는 데이터 값이 기록되는 위치를 식별하고, 프로세서 유닛은 물리적 어드레스를 나타내는 데이터 값을 프로세스(100)에 의해 제공된 가상 어드레스로부터 자신의 물리적 어드레스에 의해 레지스터 1(212)의 식별에 기초하여 레지스터 1(212)로 변환되게 야기할 수 있다.
블록(308)에서, 써로게이트 메모리 액세싱 에이전트(112)는 액세스하는 메모리 값의 메모리(114)내의 위치를 식별하기 위해 물리적 어드레스를 나타내고 레지스터 1(212)에 저장된 데이터 값을 이용할 수 있다. 몇몇 실시예들에서, 메모리 값에 대한 계산을 수행하거나 또는 메모리 값을 이용할 목적들을 위해 메모리 값들이 액세스될 수 있다. 예를 들어, 레지스터 1(212) 내에 데이터 값으로 표현된 물리적 어드레스는 계산 또는 다른 목적들을 위해 액세스될 메모리 값의 위치로서 그 물리적 어드레스를 식별하는 메모리(114)의 PA1에 대응할 수 있다.
도 3에 도시된 방법은 데이터 값을 변환하고 저장하기 위한 명령을 이용하여 써로게이트 메모리 액세싱 에이전트의 레지스터를 구성하는 것에 관한 것이다. 그러나, 추가적인 레지스터들은 제 2 명령을 이용하는 유사한 방식으로, 또는 다른 방법을 통해서 명령을 이용하는 유사한 방식으로 구성될 수 있고, 써로게이트 메모리 액세싱 에이전트는 예컨대 메모리 값들을 이동시키거나 또는 카피하는 목적들을 위해, 메모리 내 메모리 값들에 액세스하기 위해 자신의 레지스터들에 저장된 1개 초과의 데이터 값을 이용할 수 있다.
몇몇 실시예들에 따라서 써로게이트 메모리 액세싱 에이전트들을 구성하기 위한 프로세싱 시스템들은 데이터 값들을 변환하고 저장하기 위한 명령들, 또는 다른 유형들의 명령들을 이용하도록 적응(adapt)될 수 있다. 도 4는 데이터 값들을 변환시키거나 저장하기 위한 명령들, 또는 다른 유형들의 명령들, 예를 들어, 논-프리빌리지 모드에서 동작하는 프로세서들에 의해 프로세싱될 수 없는 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트(112)를 구성할 수 있는 프로세싱 시스템의 제 2 실시예의 일반적인 도면이다.
명령(404)은 프로세스(402)에 의해 제공된다. 프로세스(402)는 가상 어드레스들을 특정하는 명령을 제공할 수 있는 사용자-모드 프로세스 또는 가상 어드레스 또는 물리적 어드레스들을 특정하는 명령을 제공할 수 있는 감시-레벨 프로세스일 수 있다. 도 1 내지 도 3을 참조하여 예를 들어 설명된 바와 같이, 명령(404)이 가상 어드레스들을 특정하는 경우, 명령(404)은 변환될 데이터 값으로 표현된 가상 어드레스를 특정하는 하나의 오퍼랜드 및 변환된 데이터 값을 저장할 써로게이트 메모리 액세싱 에이전트(112)의 레지스터의 위치와 연관된 제 2 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함할 수 있다.
다른 실시예들에서, 명령(404)은, 데이터 값을 저장할 써로게이트 메모리 액세싱 에이전트(112)의 레지스터의 위치와 연관된 가상 어드레스 및 물리적 어드레스를 나타내는 데이터 값을 포함하는 물리적 어드레스들을 특정하는 감시-레벨 프로세스에서 제공된다. 명령(404)이 데이터 값으로 표현된 물리적 어드레스를 특정할 때, 프로세서 유닛(102)은 물리적 어드레스를 나타내는 데이터 값을 입력으로서 멀티플렉서(MUX; 406)에 제공할 수 있다. 프로세서 유닛(102)은 가상 어드레스가 MMU(예를 들어, TLB(210)를 포함하는 MMU)에 의해 변환되도록 야기할 수 있다. TLB(210)의 출력은 프로세서 유닛(102)에 의해 제공된 데이터 값을 저장할 레지스터와 연관된 물리적 어드레스일 수 있다.
MUX(406)는 프로세서 유닛(102)으로부터 수신된 입력 또는 TLB(210)로부터 수신된 입력을 써로게이트 메모리 액세싱 에이전트(112)에 공급할지 여부를 결정하도록 구성될 수 있다. 프로세서 유닛(102)은 실행중인 명령의 유형에 기초하여 셀렉터(selector)로서 MUX(406)에 출력을 또한 제공할 수 있다. 이 명령이 물리적 어드레스를 나타내는 데이터 값을 특정하는 경우, 프로세서 유닛(102)은 셀렉터를 출력하여 MUX(406)로 하여금 프로세서 유닛(102)으로부터 데이터 값을 제공하도록 야기한다. 명령이 가상 어드레스를 나타내는 데이터 값을 특정하는 경우, TLB(210)는 그 값을 변환하고, 프로세서 유닛(102)은 그 변환된 값을 MUX(406)로 하여금 TLB(210)로부터 써로게이트 메모리 액세싱 에이전트(112)로 제공하도록 야기한다.
도 4에 도시된 실시예에서, 써로게이트 메모리 액세싱 에이전트(112)는 하나 또는 둘 이상의 명령들을 통해서 MUX(406)로부터 수신된 레지스터 1(212) 및/또는 레지스터 2(214) 내에 데이터 값들을 저장할 수 있다. 써로게이트 메모리 액세싱 에이전트(112)는, 하나 또는 둘 이상의 레지스터들(212, 214)이 데이터 값들을 포함하는 경우, 메모리(114)에 액세스할 수 있다. 예를 들어, 레지스터 1(212)에 저장된 데이터 값은, 메모리(114) 내의 메모리 값이 이동되거나 또는 카피되는 위치로서 물리적 어드레스 PA1에 대응하는 메모리 위치를 식별하는데 이용될 수 있다. 레지스터 1(212)에 저장된 데이터 값은, 메모리 값이 이동되거나 또는 카피되는 위치로서 물리적 어드레스 PA2에 대응하는 메모리 위치를 식별하는데 이용될 수 있다. 써로게이트 메모리 액세싱 에이전트(112)는 데이터 값들을 이용하여 메모리 값이 식별된 위치로 이동되거나 또는 카피되도록 야기할 수 있다.
앞서 언급된 특징들을 포함하는 예시적인 디바이스들
데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성할 수 있는 프로세서 유닛들이 디지털 신호 프로세서들과 같은 임의의 유형의 프로세서에 포함될 수 있다. 도 5 내지 도 9의 일반적인 도면들은 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하기 위한 프로세서 유닛들을 통합할 수 있는 예시적인 디바이스들을 예시한다.
도 5는 휴대용 통신 디바이스(500)의 예시적인 실시예를 예시하는 도면이다. 도 5의 일반적인 도면에 예시된 바와 같이, 휴대용 통신 디바이스는 디지털 신호 프로세서(DSP; 504)를 포함하는 온-칩 시스템(502)을 포함한다. 또한, 도 5의 일반적인 도면은 DSP(504) 및 디스플레이(508)에 커플링된 디스플레이 컨트롤러(506)를 나타낸다. 또한, 입력 디바이스(510)는 DSP(504)에 커플링된다. 도시된 바와 같이, 메모리(512)는 DSP(504)에 커플링된다. 추가적으로, 코더/디코더(CODEC; 514)는 DSP(504)에 커플링될 수 있다. 스피커(516) 및 마이크로폰(518)은 CODEC(514)에 커플링될 수 있다.
도 5의 일반적인 도면은 디지털 신호 프로세서(504) 및 무선 안테나(522)에 커플링된 무선 컨트롤러(520)를 추가로 예시한다. 특정 실시예에서, 전원 공급장치(524)는 온-칩 시스템(502)에 커플링된다. 디스플레이(508), 입력 디바이스(510), 스피커(516), 마이크로폰(518), 무선 안테나(522), 및 전원 공급장치(524)는 온-칩 시스템(502)의 외부에 있을 수 있다. 그러나, 각각은 온-칩 시스템(502)의 컴포넌트에 커플링될 수 있다.
특정 실시예에서, DSP(504)는, 프로세싱 딜레이들과 전력 소모를 감소시키고, 그리고/또는 다르게는 더욱 효율적인 프로세싱을 제공하기 위해 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여, DMA 채널과 같은 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛(562)을 포함하고, 그 예시들은 도 1, 도 2 또는 도 4를 참조하여 설명된다. 예를 들어, 프로세서 유닛(562)은, 써로게이트 메모리 액세싱 에이전트의 레지스터의 위치와 연관된 가상 어드레스를 특정하는 제 1 오퍼랜드, 및 물리적 어드레스로 변환되고 레지스터에 저장될 데이터 값으로 표현된 제 2 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령을 프로세싱하도록 구성될 수 있다.
도 6은 셀룰러 전화기(600)의 예시적인 실시예를 예시하는 도면이다. 도시된 바와 같이, 셀룰러 전화기(600)는 함께 커플링된 디지털 베이스밴드 프로세서(604) 및 아날로그 베이스밴드 프로세서(606)를 포함하는 온-칩 시스템(602)을 포함한다. 특정 실시예에서, 디지털 베이스밴드 프로세서(604)는 디지털 신호 프로세서이다. 도 6의 일반적인 도면에 예시된 바와 같이, 디스플레이 컨트롤러(608) 및 터치스크린 컨트롤러(610)는 디지털 베이스밴드 프로세서(604)에 커플링된다. 결과적으로, 온-칩 시스템(602)의 외부에 있는 터치스크린 디스플레이(612)는 디스플레이 컨트롤러(608) 및 터치스크린 컨트롤러(610)에 커플링된다.
또한, 도 6의 일반적인 도면은, 비디오 인코더(614), 예를 들어, PAL(phase alternating line) 인코더, SEC AM(sequential couleur a memoire) 인코더, 또는 NTSC(national television system(s) committee) 인코더가 디지털 베이스밴드 프로세서(604)에 커플링되는 것을 예시한다. 또한, 비디오 증폭기(616)는 비디오 인코더(614) 및 터치스크린 디스플레이(612)에 커플링된다. 또한, 비디오 포트(618)는 비디오 증폭기(616)에 커플링된다. USB(universal serial bus) 컨트롤러(620)는 디지털 베이스밴드 프로세서(604)에 커플링된다. 또한, USB 포트(622)는 USB 컨트롤러(620)에 커플링된다. 메모리(624) 및 가입자 아이덴티티 모듈(SIM; subscriber identity module) 카드(626)는 또한 디지털 베이스밴드 프로세서(604)에 커플링될 수 있다. 추가로, 도 6의 일반적인 도면에 도시된 바와 같이, 디지털 카메라(628)는 디지털 베이스밴드 프로세서(604)에 커플링될 수 있다. 예시적인 실시예에서, 디지털 카메라(628)는 CCD(charge-coupled device) 카메라 또는 CMOS(complementary metal-oxide semiconductor) 카메라이다.
도 6의 일반적인 도면에 추가적으로 예시된 바와 같이, 스테레오 오디오 CODEC(630)은 아날로그 베이스밴드 프로세서(606)에 커플링될 수 있다. 추가로, 오디오 증폭기(632)는 스테레오 오디오 CODEC(630)에 커플링될 수 있다. 예시적인 실시예에서, 제 1 스테레오 스피커(634) 및 제 2 스테레오 스피커(636)는 오디오 증폭기(632)에 커플링된다. 또한, 마이크로폰 증폭기(638)가 스테레오 오디오 CODEC(630)에 커플링될 수 있다. 추가적으로, 마이크로폰(640)은 마이크로폰 증폭기(638)에 커플링될 수 있다. 특정 실시예에서, 주파수 변조(FM) 라디오 튜너(642)는 스테레오 오디오 CODEC(630)에 커플링될 수 있다. FM 안테나(644)는 FM 라디오 튜너(642)에 커플링될 수 있다. 추가로, 스테레오 헤드폰들(646)은 스테레오 오디오 CODEC(630)에 커플링될 수 있다.
도 6의 일반적인 도면은 아날로그 베이스밴드 프로세서(606)에 커플링될 수 있는 라디오 주파수(RF) 트랜시버(648)를 추가로 예시한다. RF 스위치(650)는 RF 트랜시버(648) 및 RF 안테나(652)에 커플링될 수 있다. 키패드(654)는 아날로그 베이스밴드 프로세서(606)에 커플링될 수 있다. 또한, 마이크로폰(656)을 갖는 모노 헤드셋은 아날로그 베이스밴드 프로세서(606)에 커플링될 수 있다. 추가로, 진동기 디바이스(658)가 아날로그 베이스밴드 프로세서(606)에 커플링될 수 있다. 또한, 도 6의 일반적인 도면은 온-칩 시스템(602)에 커플링될 수 있는 전원 공급장치(660)를 도시한다. 특정 실시예에서, 전원 공급장치(660)는 셀룰러 전화기(600)의 다양한 컴포넌트들에 전력을 제공하는 직류 전류(DC) 전원 공급장치이다. 추가로, 특정 실시예에서, 전원 공급장치는 교류 전류(AC) 전원에 커플링된 DC 변압기에 대한 교류 전류(AC)로부터 도출된 DC 전원 공급장치 또는 재충전가능한 DC 배터리이다.
도 6의 일반적인 도면에 도시된 바와 같이, 터치스크린 디스플레이(612), 비디오 포트(618), USB 포트(622), 카메라(628), 제 1 스테레오 스피커(634), 제 2 스테레오 스피커(636), 마이크로폰(640), FM 안테나(644), 스테레오 헤드폰들(646), RF 스위치(650), RF 안테나(652), 키패드(654), 마이크로폰을 갖는 모노 헤드셋(656), 진동기(658), 및 전원 공급장치(660)는 온-칩 시스템(602)의 외부에 있을 수 있다. 특정 실시예에서, DSP(604)는, 프로세싱 딜레이들과 전력 소모를 감소시키기 위해 그리고/또는 다르게는 더욱 효율적인 프로세싱을 제공하기 위해 데이터 값들을 변환 및 저장하기 위한 명령을 이용하는 써로게이트 메모리 액세싱 에이전트, 예를 들어, DMA 채널을 구성할 수 있는 프로세서 유닛(662)을 포함하고, 그 예시들은 도 1, 도 2 또는 도 4를 참조하여 설명된다. 예를 들어, 프로세서 유닛(662)은, 써로게이트 메모리 액세싱 에이전트의 레지스터의 위치와 연관된 가상 어드레스를 특정하는 제 1 오퍼랜드, 및 물리적 어드레스로 변환되고 레지스터 내에 저장될 데이터 값으로 표현된 제 2 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령을 프로세싱하도록 구성될 수 있다.
도 7은 무선 인터넷 프로토콜(IP) 텔레폰(700)의 예시적인 실시예를 예시하는 도면이다. 도시된 바와 같이, 무선 IP 텔레폰(700)은 디지털 신호 프로세서(DSP; 704)를 포함하는 온-칩 시스템(702)을 포함한다. 디스플레이 컨트롤러(706)는 DSP(704)에 커플링될 수 있고, 디스플레이(708)는 디스플레이 컨트롤러(706)에 커플링된다. 예시적인 실시예에서, 디스플레이(708)는 액정 디스플레이(LCD)이다. 추가로, 도 7은 키패드(710)가 DSP(704)에 커플링될 수 있다는 것을 나타낸다.
플래시 메모리(712)는 DSP(704)에 커플링될 수 있다. 또한, SDRAM(714; synchronous dynamic random access memory), SRAM(716; static random access memory), 및 EEPROM(718; electrically erasable programmable read only memory)은 DSP(704)에 커플링될 수 있다. 도 7의 일반적인 도면은 또한, LED(720)가 DSP(704)에 커플링될 수 있다는 것을 도시한다. 추가적으로, 특정 실시예에서, 보이스 CODEC(722)는 DSP(704)에 커플링될 수 있다. 증폭기(724)는 보이스 CODEC(722)에 커플링될 수 있고, 모노 스피커(726)는 증폭기(724)에 커플링될 수 있다. 도 7의 일반적인 도면은 보이스 CODEC(722)에 커플링된 모노 헤드셋(728)을 추가로 예시한다. 특정 실시예에서, 모노 헤드셋(728)은 마이크로폰을 포함한다.
무선 로컬 영역 네트워크(WLAN) 베이스밴드 프로세서(730)는 DSP(704)에 커플링될 수 있다. RF 트랜시버(732)는 WLAN 베이스밴드 프로세서(730)에 커플링될 수 있고, RF 안테나(734)는 RF 트랜시버(732)에 커플링될 수 있다. 특정 실시예에서, 블루투스 컨트롤러(736)는 DSP(704)에 또한 커플링될 수 있고, 블루투스 안테나(738)는 컨트롤러(736)에 커플링될 수 있다. 도 7의 일반적인 도면은, USB 포트(740)가 DSP(704)에 또한 커플링될 수 있다는 것을 나타낸다. 추가로, 전원 공급장치(742)는 온-칩 시스템(702)에 커플링되고 무선 IP 전화기(700)의 다양한 컴포넌트들에 전력을 제공한다.
도 7의 일반적인 도면에 표시된 바와 같이, 디스플레이(708), 키패드(710), LED(720), 모노 스피커(726), 모노 헤드셋(728), RF 안테나(734), 블루투스 안테나(738), USB 포트(740), 및 전원 공급장치(742)는 온-칩 시스템(702)의 외부에 있을 수 있고 온-칩 시스템(702)의 하나 또는 둘 이상의 컴포넌트들에 커플링될 수 있다. 특정 실시예에서, DSP(704)는, 프로세싱 딜레이들과 전력 소모를 감소시키기 위해, 그리고/또는 다르게는 더욱 효율적인 프로세싱을 제공하기 위해 데이터 값들을 변환 및 저장하기 위한 명령을 이용하여 써로게이트 메모리 액세싱 에이전트, 예를 들어, DMA 채널을 구성할 수 있는 프로세서 유닛(762)을 포함하고, 이들의 예시들은 도 1, 도 2 또는 도 4를 참조하여 설명된다. 예를 들어, 프로세서 유닛(762)은 써로게이트 메모리 액세싱 에이전트의 레지스터의 위치와 연관된 가상 어드레스를 특정하는 하나의 오퍼랜드, 및 물리적 어드레스로 변환되고 레지스터 내에 저장될 데이터 값으로 표현된 제 2 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령을 프로세싱하도록 구성될 수 있다.
도 8은 개인용 휴대정보 단말기(PDA; 800)의 예시적인 실시예를 예시하는 도면이다. 도시된 바와 같이, PDA(800)는 디지털 신호 프로세서(DSP)(804)를 포함하는 온-칩 시스템(802)을 포함한다. 터치스크린 컨트롤러(806) 및 디스플레이 컨트롤러(808)는 DSP(804)에 커플링된다. 추가로, 터치스크린 디스플레이(810)는 터치스크린 컨트롤러(806) 및 디스플레이 컨트롤러(808)에 커플링된다. 도 8의 일반적인 도면은 또한, 키패드(812)가 DSP(804)에 커플링될 수 있다는 것을 나타낸다.
특정 실시예에서, 스테레오 오디오 CODEC(826)은 DSP(804)에 커플링될 수 있다. 제 1 스테레오 증폭기(828)는 스테레오 오디오 CODEC(826)에 커플링될 수 있고, 제 1 스테레오 스피커(830)는 제 1 스테레오 증폭기(828)에 커플링될 수 있다. 추가적으로, 마이크로폰 증폭기(832)는 스테레오 오디오 CODEC(826)에 커플링될 수 있고, 마이크로폰(834)은 마이크로폰 증폭기(832)에 커플링될 수 있다. 추가로, 도 8의 일반적인 도면은, 스테레오 오디오 CODEC(826)에 커플링될 수 있는 제 2 스테레오 증폭기(836) 그리고 제 2 스테레오 증폭기(836)에 커플링될 수 있는 제 2 스테레오 스피커(838)를 도시한다. 특정 실시예에서, 스테레오 헤드폰들(840)은 또한 스테레오 오디오 CODEC(826)에 커플링될 수 있다.
도 8의 일반적인 도면은 또한, DSP(804)에 커플링될 수 있는 802.11 컨트롤러(842) 및 802.11 컨트롤러(842)에 커플링될 수 있는 802.11 안테나(844)를 예시한다. 추가로, 블루투스 컨트롤러(846)는 DSP(804)에 커플링될 수 있고, 블루투스 안테나(848)는 블루투스 컨트롤러(846)에 커플링될 수 있다. USB 컨트롤러(850)는 DSP(804)에 커플링될 수 있고, USB 포트(852)는 USB 컨트롤러(850)에 커플링될 수 있다. 추가적으로, 스마트 카드(854), 예를 들어, 멀티미디어 카드(MMC) 또는 보안 디지털 카드(SD)가 DSP(804)에 커플링될 수 있다. 추가로, 전원 공급장치(856)는 온-칩 시스템(802)에 커플링될 수 있고, PDA(800)의 다양한 컴포넌트들에 전력을 제공할 수 있다.
도 8의 일반적인 도면에 도시된 바와 같이, 디스플레이(810), 키패드(812), IrDA 포트(822), 디지털 카메라(824), 제 1 스테레오 스피커(830), 마이크로폰(834), 제 2 스테레오 스피커(838), 스테레오 헤드폰들(840), 802.11 안테나(844), 블루투스 안테나(848), USB 포트(852), 및 전원 공급장치(856)가 온-칩 시스템(802)의 외부에 있을 수 있고 온-칩 시스템(802) 상의 하나 또는 둘 이상의 컴포넌트들에 커플링될 수 있다. 특정 실시예에서, DSP(804)는, 프로세싱 딜레이들 및 전력 소모를 감소시키고, 및/또는 더욱 효율적인 프로세싱을 제공하기 위해 데이터 값들을 변환 및 저장하기 위한 명령을 이용하여 DMA 채널과 같은 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛(862)을 포함하고, 이들의 예시들은 도 1, 도 2 또는 도 4를 참조하여 설명된다. 예를 들어, 프로세서 유닛(862)은, 써로게이트 메모리 액세싱 에이전트의 레지스터의 위치와 연관된 가상 어드레스를 특정하는 제 1 오퍼랜드, 및 물리적 어드레스로 변환되고 레지스터 내에 저장될 데이터 값으로 표현된 제 2 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령을 프로세싱하도록 구성될 수 있다.
도 9는 오디오 파일 플레이어(예를 들어, MP3 플레이어)(900)의 예시적인 실시예를 예시하는 도면이다. 도시된 바와 같이, 오디오 파일 플레이어(900)는 디지털 신호 프로세서(DSP; 904)를 포함하는 온-칩 시스템(902)을 포함한다. 디스플레이 컨트롤러(906)는 DSP(904)에 커플링될 수 있고, 디스플레이(908)는 디스플레이 컨트롤러(906)에 커플링된다. 예시적인 실시예에서, 디스플레이(908)는 LCD(liquid crystal display)이다. 키패드(910)는 DSP(904)에 커플링될 수 있다.
도 9의 일반적인 도면에 추가로 도시된 바와 같이, 플래시 메모리(912) 및 ROM(914; read only memory)은 DSP(904)에 커플링될 수 있다. 추가적으로, 특정 실시예에서, 오디오 CODEC(916)은 DSP(904)에 커플링될 수 있다. 증폭기(918)는 오디오 CODEC(916)에 커플링될 수 있고, 모노 스피커(920)는 증폭기(918)에 커플링될 수 있다. 추가로, 도 9의 일반적인 도면은, 마이크로폰 입력(922) 및 스테레오 입력(924)이 오디오 CODEC(916)에 또한 커플링될 수 있다는 것을 나타낸다. 특정 실시예에서, 스테레오 헤드폰들(926)은 오디오 CODEC(916)에 또한 커플링될 수 있다.
USB 포트(928) 및 스마트 카드(930)는 DSP(904)에 커플링될 수 있다. 추가적으로, 전원 공급장치(932)는 온-칩 시스템(902)에 커플링될 수 있고, 오디오 파일 플레이어(900)의 다양한 컴포넌트들에 전력을 제공할 수 있다.
도 9의 일반적인 도면에 나타난 바와 같이, 디스플레이(908), 키패드(910), 모노 스피커(920), 마이크로폰 입력(922), 스테레오 입력(924), 스테레오 헤드폰들(926), USB 포트(928), 및 전원 공급장치(932)는 온-칩 시스템(902)의 외부에 있고, 온-칩 시스템(902) 상에 하나 또는 둘 이상의 컴포넌트들에 커플링된다. 특정 실시예에서, DSP(904)는, 프로세싱 딜레이들, 전력 소모를 감소시키고, 그리고/또는 다르게는 더욱 효율적인 프로세싱을 제공하기 위해 데이터 값들을 변환 및 제정하기 위한 명령을 이용하여 DMA 채널과 같은 써로게이트 메모리 액세싱 에이전트를 구성할 수 있는 프로세서 유닛(962)을 포함하고, 이들의 예시들은 도 1, 도 2 또는 도 4를 참조하여 설명된다. 예를 들어, 프로세서 유닛(962)은, 써로게이트 메모리 액세싱 에이전트의 레지스터의 위치와 연관된 가상 어드레스를 특정하는 제 1 오퍼랜드, 및 물리적 어드레스로 변환되고 레지스터 내에 저장될 데이터 값으로 표현된 제 2 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령을 프로세싱하도록 구성될 수 있다.
본원에 개시된 발명의 개념들의 실시예들의 전술한 설명은, 예시 및 설명의 목적으로만 제공되었으며, 본원에 개시된 발명의 개념들을 개시된 것과 정확한 형태로 제한하거나 또는 포괄되게 의도되는 것은 아니다. 본원에 개시된 발명의 개념들의 사상 및 범위로부터 벗어나지 않는 수많은 변환들 및 적응들이 당업자에게는 명백하다.

Claims (20)

  1. 방법으로서,
    변환될 데이터 값을 특정하는 제 1 오퍼랜드 및 상기 데이터 값이 저장될 써로게이트 메모리 액세싱 에이전트 레지스터(surrogate memory accessing agent register)의 위치와 연관된 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함하는 명령을 수신하는 단계;
    상기 데이터 값이 제 1 물리적 어드레스로 변환되도록 야기하는 단계;
    상기 가상 어드레스가 제 2 물리적 어드레스로 변환되도록 야기하는 단계; 및
    상기 제 2 물리적 어드레스에 기초하여 상기 써로게이트 메모리 액세싱 에이전트 레지스터 내에 상기 제 1 물리적 어드레스를 저장하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    변환될 제 2 데이터 값을 특정하는 제 3 오퍼랜드 및 상기 제 2 데이터 값이 저장될 제 2 써로게이트 메모리 액세싱 에이전트 레지스터의 위치와 연관된 제 2 가상 어드레스를 특정하는 제 4 오퍼랜드를 포함하는 제 2 명령을 수신하는 단계;
    상기 제 2 데이터 값이 제 3 물리적 어드레스로 변환되도록 야기하는 단계;
    상기 제 2 가상 어드레스가 제 4 물리적 어드레스로 변환되도록 야기하는 단계;
    상기 제 4 물리적 어드레스에 기초하여 상기 제 2 써로게이트 메모리 액세싱 에이전트 레지스터 내에 상기 제 3 물리적 어드레스를 저장하는 단계;
    상기 제 1 물리적 어드레스를 이용하여 이동될 메모리 값의 위치를 식별하는 단계; 및
    상기 메모리 값이 상기 제 3 물리적 어드레스를 이용하여 제 2 위치로 이동되도록 야기하는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 변환될 데이터 값을 특정하는 제 1 오퍼랜드는, 상기 데이터 값으로 표현된 제 2 가상 어드레스의 식별(identification)을 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 제 2 물리적 어드레스는 상기 써로게이트 메모리 액세싱 에이전트 레지스터의 물리적 어드레스인, 방법.
  5. 제 1 항에 있어서,
    물리적 메모리 위치에 저장된 메모리 값을 관리하기 위해 상기 제 1 물리적 어드레스를 이용하는 단계를 더 포함하는, 방법.
  6. 프로세싱 시스템으로서,
    프로세스로부터 수신된 명령을 프로세싱하도록 구성된 프로세서 유닛 ― 상기 명령은, 변환될 데이터 값을 특정하는 제 1 오퍼랜드 및 상기 데이터 값을 저장할 써로게이트 메모리 액세싱 에이전트의 위치와 연관된 가상 어드레스를 특정하는 제 2 오퍼랜드를 포함함 ― ; 및
    상기 데이터 값을 제 1 물리적 어드레스로 변환하고 상기 가상 어드레스를 제 2 물리적 어드레스로 변환하도록 구성된 메모리 관리 유닛을 포함하고,
    상기 프로세서 유닛은, 상기 제 2 물리적 어드레스에 기초하여 상기 써로게이트 메모리 액세싱 에이전트 레지스터 내에 상기 제 1 물리적 어드레스를 저장하도록 구성된, 프로세싱 시스템.
  7. 제 6 항에 있어서,
    상기 프로세서 유닛은 논-프리빌리지 모드에서 상기 명령을 프로세싱하도록 구성된, 프로세싱 시스템.
  8. 제 6 항에 있어서,
    상기 프로세싱 시스템은 휴대용 통신 디바이스 내에 배치되는, 프로세싱 시스템.
  9. 제 6 항에 있어서,
    물리적 메모리 위치에 저장된 메모리 값을 관리하기 위해 상기 제 1 물리적 어드레스를 이용하도록 구성된 써로게이트 메모리 액세싱 에이전트를 더 포함하는, 프로세싱 시스템.
  10. 제 9 항에 있어서,
    써로게이트 메모리 액세싱 에이전트는 다이렉트 메모리 액세스(DMA; direct memory access) 채널인, 프로세싱 시스템.
  11. 제 6 항에 있어서,
    상기 제 2 물리적 어드레스는 상기 써로게이트 메모리 액세싱 에이전트 레지스터의 물리적 어드레스인, 프로세싱 시스템.
  12. 프로세싱 시스템으로서,
    명령에 의해 특정된 가상 어드레스를 레지스터의 위치에 대응하는 제 1 물리적 어드레스로 변환하고, 상기 명령에 의해 특정된 데이터 값을 제 2 물리적 어드레스로 변환하도록 구성된 메모리 관리 유닛; 및
    상기 레지스터를 포함하는 써로게이트 메모리 액세싱 에이전트 ― 상기 레지스터는, 상기 제 1 물리적 어드레스를 이용하여 상기 제 2 물리적 어드레스를 저장하도록 구성됨 ― 를 포함하는, 프로세싱 시스템.
  13. 제 12 항에 있어서,
    상기 메모리 관리 유닛은, 제 2 명령에 의해 특정된 제 2 데이터 값을 제 3 물리적 어드레스로 변환하고 상기 제 2 명령에 의해 특정된 제 2 가상 어드레스를 제 4 물리적 어드레스로 변환하도록 구성되고 ― 상기 제 4 물리적 어드레스는 제 2 레지스터의 위치를 식별함 ―, 그리고
    상기 써로게이트 메모리 액세싱 에이전트는 제 2 레지스터를 포함하고, 상기 제 2 레지스터는 상기 제 4 물리적 어드레스를 이용하여 상기 제 3 물리적 어드레스를 저장하도록 구성되는, 프로세싱 시스템.
  14. 제 13 항에 있어서,
    상기 써로게이트 메모리 액세싱 에이전트는, 상기 제 1 물리적 어드레스를 이용하여 이동될 메모리 값의 위치를 식별하고, 상기 메모리 값이 상기 제 3 물리적 어드레스를 이용하여 제 2 위치로 이동되게 야기하도록 구성되는, 프로세싱 시스템.
  15. 제 12 항에 있어서,
    상기 프로세싱 시스템은 휴대용 통신 디바이스 내에 배치되는, 프로세싱 시스템.
  16. 제 12 항에 있어서,
    상기 써로게이트 메모리 액세싱 에이전트는 물리적 메모리 위치에 저장된 메모리 값에 액세스하기 위해 상기 제 1 물리적 어드레스를 이용하도록 구성되는, 프로세싱 시스템.
  17. 제 12 항에 있어서,
    상기 써로게이트 메모리 액세싱 에이전트는 다이렉트 메모리 액세스(DMA) 채널인, 프로세싱 시스템.
  18. 제 12 항에 있어서,
    상기 제 1 물리적 어드레스는 상기 써로게이트 메모리 액세싱 에이전트 레지스터의 물리적 어드레스인, 프로세싱 시스템.
  19. 프로그램 코드가 저장된 컴퓨터-판독가능 매체로서,
    상기 프로그램 코드는:
    물리적 어드레스로 변환될 데이터 값으로 표현된 제 1 가상 어드레스를 특정하기 위한 프로그램 코드; 및
    상기 물리적 어드레스를 저장하기 위한 써로게이트 메모리 액세싱 에이전트 레지스터의 위치와 연관된 제 2 가상 어드레스를 특정하기 위한 프로그램 코드를 포함하는, 컴퓨터-판독가능 매체.
  20. 제 19 항에 있어서,
    상기 프로그램 코드는 논-프리빌리지 모드에서 동작하는 프로세서에 의해 프로세싱되도록 구성된, 컴퓨터-판독가능 매체.
KR1020127032413A 2010-05-11 2011-04-27 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하는 방법 KR101429969B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/777,324 US8924685B2 (en) 2010-05-11 2010-05-11 Configuring surrogate memory accessing agents using non-priviledged processes
US12/777,324 2010-05-11
PCT/US2011/034095 WO2011142967A1 (en) 2010-05-11 2011-04-27 Configuring surrogate memory accessing agents using instructions for translating and storing data values

Publications (2)

Publication Number Publication Date
KR20130018323A true KR20130018323A (ko) 2013-02-20
KR101429969B1 KR101429969B1 (ko) 2014-08-14

Family

ID=44121064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127032413A KR101429969B1 (ko) 2010-05-11 2011-04-27 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하는 방법

Country Status (8)

Country Link
US (1) US8924685B2 (ko)
EP (1) EP2569695B1 (ko)
JP (2) JP5685643B2 (ko)
KR (1) KR101429969B1 (ko)
CN (2) CN102884506B (ko)
BR (1) BR112012028622B1 (ko)
TW (1) TWI448893B (ko)
WO (1) WO2011142967A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542333B2 (en) * 2014-12-04 2017-01-10 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture
US20160246712A1 (en) * 2015-02-25 2016-08-25 HGST Netherlands B.V. Indirection data structures implemented as reconfigurable hardware
US10725689B2 (en) * 2015-08-31 2020-07-28 Hewlett Packard Enterprise Development Lp Physical memory region backup of a volatile memory to a non-volatile memory
CN114385529A (zh) * 2020-10-16 2022-04-22 瑞昱半导体股份有限公司 直接记忆体存取控制器、使用其之电子装置以及操作其的方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216809A (ja) 1992-02-06 1993-08-27 Nec Corp Dma転送方式
JP3219826B2 (ja) * 1992-02-21 2001-10-15 日本電気株式会社 情報処理装置
JPH05250260A (ja) * 1992-03-04 1993-09-28 Toshiba Corp 物理アドレス読出し機能を持つ仮想記憶制御方式の情報処理装置
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US6470437B1 (en) * 1999-12-17 2002-10-22 Hewlett-Packard Company Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design
US6681346B2 (en) * 2000-05-11 2004-01-20 Goodrich Corporation Digital processing system including a DMA controller operating in the virtual address domain and a method for operating the same
US6662289B1 (en) * 2001-05-15 2003-12-09 Hewlett-Packard Development Company, Lp. Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems
US7200691B2 (en) * 2003-12-22 2007-04-03 National Instruments Corp. System and method for efficient DMA transfer and buffering of captured data events from a nondeterministic data bus
EP1619589B1 (fr) * 2004-07-23 2007-12-26 Stmicroelectronics SA Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
CN100377117C (zh) 2005-07-14 2008-03-26 中国科学院计算技术研究所 用于虚实地址变换及读写高速缓冲存储器的方法及装置
JP2007087177A (ja) 2005-09-22 2007-04-05 Canon Inc 情報処理装置
JP2008102850A (ja) * 2006-10-20 2008-05-01 Toshiba Corp 情報処理装置及び情報処理方法
US7827383B2 (en) * 2007-03-09 2010-11-02 Oracle America, Inc. Efficient on-chip accelerator interfaces to reduce software overhead
CN101556565B (zh) 2009-01-22 2010-09-29 杭州中天微系统有限公司 嵌入式处理器的片上高性能dma
US8166276B2 (en) * 2009-02-27 2012-04-24 Advanced Micro Devices, Inc. Translate and verify instruction for a processor

Also Published As

Publication number Publication date
KR101429969B1 (ko) 2014-08-14
CN102884506B (zh) 2015-04-15
TWI448893B (zh) 2014-08-11
JP5685643B2 (ja) 2015-03-18
US8924685B2 (en) 2014-12-30
EP2569695A1 (en) 2013-03-20
CN104598398A (zh) 2015-05-06
WO2011142967A1 (en) 2011-11-17
TW201209583A (en) 2012-03-01
CN102884506A (zh) 2013-01-16
CN104598398B (zh) 2017-10-31
EP2569695B1 (en) 2017-10-25
BR112012028622B1 (pt) 2020-10-13
JP2013530452A (ja) 2013-07-25
BR112012028622A2 (pt) 2018-05-15
US20110283083A1 (en) 2011-11-17
JP2015043235A (ja) 2015-03-05

Similar Documents

Publication Publication Date Title
US9239799B2 (en) Memory management unit directed access to system interfaces
US9361246B2 (en) System-on-chip processing secure contents and mobile device comprising the same
RU2409837C2 (ru) Система и способ подсчета начальных нулевых разрядов и подсчета начальных единичных разрядов в цифровом процессоре сигналов
EP2591420B1 (en) System and method to manage a translation lookaside buffer
US9606818B2 (en) Systems and methods of executing multiple hypervisors using multiple sets of processors
US20150261686A1 (en) Systems and methods for supporting demand paging for subsystems in a portable computing environment with restricted memory resources
TWI526832B (zh) 用於減少執行硬體表搜尋(hwtw)所需的時間和計算資源量的方法和系統
EP2972898A1 (en) Externally programmable memory management unit
KR101429969B1 (ko) 데이터 값들을 변환 및 저장하기 위한 명령들을 이용하여 써로게이트 메모리 액세싱 에이전트들을 구성하는 방법
US8117420B2 (en) Buffer management structure with selective flush
JP6386099B2 (ja) 圧縮支援のための方法、装置、コンピュータプログラム及び記憶媒体
WO2017014914A1 (en) Address translation and data pre-fetch in a cache memory system
KR101239272B1 (ko) 하드웨어 프리페치 어드레스 및 산술 연산 값을 계산하기 위한 듀얼 함수 가산기
WO2018077219A1 (zh) 内存管理方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 6