KR20070086561A - 미디어 메모리 시스템 - Google Patents

미디어 메모리 시스템 Download PDF

Info

Publication number
KR20070086561A
KR20070086561A KR1020077014245A KR20077014245A KR20070086561A KR 20070086561 A KR20070086561 A KR 20070086561A KR 1020077014245 A KR1020077014245 A KR 1020077014245A KR 20077014245 A KR20077014245 A KR 20077014245A KR 20070086561 A KR20070086561 A KR 20070086561A
Authority
KR
South Korea
Prior art keywords
memory
subprocessor
processor
media
address
Prior art date
Application number
KR1020077014245A
Other languages
English (en)
Other versions
KR101202154B1 (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 KR20070086561A publication Critical patent/KR20070086561A/ko
Application granted granted Critical
Publication of KR101202154B1 publication Critical patent/KR101202154B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)

Abstract

모 프로세서 어드레스 변환들을 미디어 프로세서들의 어드레스 변환들에 매칭시키고, 별개의 변환 테이블 정보를 통해 다수의 미디어 프로세서에 동시 메모리 액세스를 제공하는 방법 및 장치가 개시된다. 특히, 주어진 미디어 애플리케이션에 대한 페이지 디렉토리는, 그 미디어 애플리케이션이 모 프로세서 및 미디어 프로세서들에서 실행되는 미디어 애플리케이션에 의해 공유될 메모리를 할당할 때, 미디어 프로세서의 페이지 디렉토리에 복사된다.
주 프로세서, 부 프로세서, 메모리, 미디어 애플리케이션, 어드레스 변환

Description

미디어 메모리 시스템{MEDIA MEMORY SYSTEM}
본 발명의 실시예들은 일반적으로 미디어 정보의 통신에 관한 것이고, 더욱 구체적으로는 복수개의 미디어 프로세서들을 위한 메모리 액세스에 관한 것이다.
미디어 가능(media-capable) PC 시스템들은 호스트 CPU와 미디어 프로세서(들) 둘다를 위해 고속 메모리 시스템들을 필요로 한다. CPU 및 미디어 프로세서들은 빈번하게 사용되는 데이터 및 어드레스 변환들(translations)을 캐싱(cache)할 수 있다. 미디어 프로세싱의 특정 부분들은 생생한 비디오 및 오디오와 연관된 엄격한 프레임 타이밍 제약(constraint)을 받을 수 있어, 별개로 저장되는 어드레스 변환들에 대한 필요성을 제안한다. 특히, CPU 및 미디어 프로세서들은, 미디어 프로세싱의 그들의 각각의 부분들을 수행하고 다양한 미디어 프로세싱 유닛들이 그들 자신과 CPU 간에 신속하게 동기화하기 위해 공통 메모리 시스템에의 고속 액세스를 가지는 것이 바람직하다.
본 명세서에 포함되어 그 일부분을 구성하는 첨부 도면들은 본 발명의 원리들과 일치하는 하나 이상의 구현들을 예시하고, 상세한 설명과 함께, 이러한 구현들을 설명한다. 도면들은 반드시 비례적으로 도시될 필요는 없으며, 본 발명의 원 리들을 예시하는 데에 중점을 둔다.
도 1은 예시적인 시스템을 도시하는 도면.
도 2는 미디어 메모리 프로세스의 예시적인 구현을 도시하는 도면.
도 3은 미디어 메모리 시스템을 제공하는 예시적인 프로세스를 도시하는 흐름도.
다음의 상세한 설명은 첨부 도면들을 참조한다. 동일하거나 유사한 요소들을 나타내기 위해 서로 다른 도면들에서 동일한 참조 번호들이 사용될 수 있다. 다음의 설명에서는, 한정을 위한 것이 아니라 예시를 위해, 특정 구조들, 아키텍처들, 인터페이스들, 기술들 등과 같은 특정 상세들을 기술함으로써 본 발명의 다양한 양태들의 완전한 이해를 제공한다. 그러나, 본 발명의 다양한 양태들은 이들 특정 상세들로부터 벗어나는 다른 예들에서 실행될 수 있다는 것이 본 개시의 혜택을 받는 이 기술분야의 당업자들에게는 명백할 것이다. 특정 경우들에서, 공지된 장치들, 회로들, 및 방법들의 설명들은 불필요한 상세로 본 발명의 설명을 불명료하게 하지 않기 위해서 생략된다.
도 1은 예시적인 시스템을 도시한다. 시스템(100)은 프로세서(102)를 포함하며, 일 실시예에서, 이 프로세서(102)는 모(parent) 프로세서(설명적인 이유로 "모" 프로세서라고도 지칭됨)일 수 있다. 시스템(100)은 또한 하나 이상의 추가적인 프로세서(104)를 포함할 수 있으며, 일 실시예에서, 이 프로세서들(104)은 "미디어(media)" 프로세서들(설명적인 이유로 "추가" 프로세서들이라고도 지칭됨)이라고 지칭될 수 있다. 실시예는 특정 유형의 프로세서와 함께 사용하는 것으로 제한되지 않는다. 사실상, 실시예는 프로세서들 및 메모리들의 일반적으로 이해되는 구조들 및 신호들과 함께 설명된다. 프로세서들(102 및 104)은 범용 또는 특정 용도의 처리 장치 및/또는 로직을 포함할 수 있다. 프로세서(102 및 104)는 미디어 정보를 처리하기 위해 배열될 수 있다. 그러나, 특정 실시예들은 인텔사에 의해 판매되는 Pentium® 마이크로프로세서 및 관련 칩셋들에 현재 사용되는 구조들을 포함한다. 그러나, 본 발명은 Pentium® 프로세서에 이용되는 하기에 언급되는 구조 및 신호들과 함께 사용하는 것으로 한정되지 않는다.
일부 구현들에서, 추가 프로세서들(104)은 미디어 정보(그리고 가능하게는 다른 통신 관련 정보)를 처리한다. 설명을 위해, 전송된 미디어 정보는 비디오 및/또는 음성 정보를 포함할 수 있지만, 본 발명은 이와 관련하여 한정되지 않는다. 시스템(100)은 본 명세서의 기재와 일치하는 다른 유형의 미디어 정보를 수신하고 처리할 수 있다. 프로세서들에 의해 처리되는 미디어 정보는 MPEG-1, MPEG-2, MPEG-4, H.264, WMV9(Windows Media Video version 9), JPEG2000 및 AVS(Advanced Video System) 포맷들과 같은 포맷으로 인코딩된 비디오 정보를 포함할 수 있다. 본 발명은 본 명세서에 특정하게 언급된 포맷들로 한정되지 않으며, 임의의 현재 알려지거나 추후 개발되는 미디어 포맷이 본 명세서에 개시된 방식들에 따라 이용될 수 있다. 또한 또는 대안적으로, 미디어 정보는 텔레포니(telephony) 또는 다른 오디오 정보와 같은 다른 정보를 포함할 수 있다.
대부분의 범용 마이크로프로세서들은, 프로그램의 실행 환경의 부분들이 필요에 따라 물리 메모리에 맵핑되는 가상 또는 요구-페이지 메모리 방식(virtual or demand-paged memory scheme)을 이용한다. 가상 메모리 방식은 마이크로프로세서의 선형 어드레스 공간보다 사이즈가 훨씬 작은 물리 메모리의 이용을 허용하며, 또한 동일한 물리 메모리를 공유하는 복수개의 작업들(프로그램들)이 서로 불리하게 방해할 수 없도록 메모리 보호를 위한 메커니즘을 제공한다. 모 프로세서(102)는 칩셋(108)을 통해 메모리(106)와 통신한다. 칩셋(108)은 또한 미디어 프로세서들(104) 및 다양한 I/O 장치들(110)에 접속하는, 주변 컴포넌트 버스와 같은 다른 버스들로의 브리지로서 기능할 수 있다.
대부분의 현대의 컴퓨터 시스템들에 의하면, 마이크로프로세서는 선형 어드레스를 이용하여 위치를 참조하지만, 어드레스 버스에 그의 물리 어드레스를 제공함으로써 특정 메모리 위치로부터 객체가 검색된다. 선형 어드레스들은 물리 어드레스들과 동일할 수 있으며, 이 경우 어드레스 변환이 요구되지 않는다. 그러나, 보통 선형 어드레스들이 물리 어드레스들로 변환되는 가상 메모리 방식이 이용된다. 이 경우, 선형 어드레스는 가상 어드레스라고도 지칭될 수 있다. 선형 어드레스 공간은 마이크로프로세서에 의해 생성되는 모든 선형 어드레스들의 세트이고, 물리 어드레스 공간은 모든 물리 어드레스들의 세트이다.
가상 또는 요구-페이지 메모리 시스템은 선형(가상) 어드레스 공간과 물리 어드레스 공간 사이의 맵핑으로서 예시될 수 있다. 가상 메모리 시스템에서, 선형 및 물리 어드레스 공간들은, 일정한 사이즈로 되어 있거나 여러 개의 고정된 사이즈들 중 임의의 사이즈로 되어 있는 경우 페이지들로서 일반적으로 지칭되는, 연속하는 어드레스들의 블록들로 분할된다. 통상적인 페이지 사이즈는 예를 들어, 4K바이트일 수 있다. 시스템(100)의 예시적인 구현들은 공통 메모리(106)를 액세스하는 모 프로세서(102) 및 복수개의 추가 프로세서(104)에 의해 생성되는 메모리 참조들을 포함할 수 있는데, 본 발명은 이와 관련하여 한정되지 않는다.
도 2는 미디어 메모리 프로세스의 예시적인 구현을 도시한다. 특히, 프로세서(202), 추가 프로세서들(204), 메모리(206) 및 어드레스 변환 간의 예시적인 관계가 도시된다. 추가 프로세서들(204)은 모 프로세서(202)와 메모리(206)를 공유할 수 있다. 예를 들어, 일 실시예에서, 모 프로세서(202), 및 미디어 프로세서 형태의 추가 프로세서들(204)은 미디어 프레임 타이밍 요건들이 덜 엄격한 상황들에서 어드레스 변환 시스템을 공유한다. 모 프로세서(202)는 CR3과 같은 제어 레지스터(206)를 포함하는 다수의 레지스터가 제공된 제어 유닛(도시되지 않음)을 포함할 수 있다. 제어 레지스터(208)는 페이지 디렉토리가 위치하는 어드레스를 포함한다. 본 발명의 실시예들은 제어 레지스터(208)의 내용들을 관리하기 위해 동일한 공통 데이터 구조들 및 동일한 운영 절차들의 일부를 유지한다. 동시에, 데이터 구조들의 복제(duplicate)가 추가 프로세서들(204)을 위해 제공된다.
복수개의 미디어 프로세서들(204)을 위한 동시 메모리 액세스가 각각 단일 미디어 애플리케이션에 대해 사설의 별개의 변환 테이블 하드웨어를 통해 제공될 수 있다. 모 프로세서 어드레스 변환들은 미디어 프로세서(들)의 변환들과 매칭되기 때문에, 모 프로세서(202)는 변경 없이 메모리 포인터들을 교환할 수 있다. 하기에서 상세하게 논의되는 바와 같이, 이것을 구현하기 위한 하나의 방법은 주어진 미디어 애플리케이션을 위한 모 프로세서의 페이지 디렉토리를 미디어 프로세서의 페이지 디렉토리에 복사하는 것이다. 이것은 미디어 애플리케이션이 모 프로세서(202) 및 미디어 프로세서(들)(204)에서 실행되는 미디어 애플리케이션에 의해 공유될 수 있는 메모리를 할당할 때 행해질 수 있다.
메인 메모리(214), 또는 모 프로세서 또는 미디어 프로세서(들)의 데이터 캐시들(도시되지 않음) 내의 데이터는 디스크에 스왑(swap)되기보다는 유지될 수 있다. 메인 메모리(214)에 데이터를 유지하는 것은, 미디어 애플리케이션들에게 보여지는 최대 액세스 대기 시간을 억제하여, 그것들이 미디어 타이밍 신호들에 의해 직접 게이팅(gating)될 수 있게 한다. 종래의 구성들에서와 같이, 데이터가 디스크에 스왑될 필요 없이 데이터는 모 프로세서(202) 및 미디어 프로세서들(204)로부터 동시에 캐시가능할 수 있다.
동시 메모리 액세스는, 미디어 애플리케이션의 전방 진행이 디스플레이 시스템의 수직 리트레이스(retrace) 신호 또는 인입 TV 스트림에 의해 생성되는 동기화 신호 등의 적절한 미디어 타이밍 신호들에 의해 직접 게이팅될 수 있게 하여, 이들 타이밍 서비스들을 위해 모 프로세서의 운영 체제에 의존하지 않아도 된다. 이것은 또한 미디어 프로세서들(204)은 우선적인 스케줄링 하드웨어를 필요로 하지 않기 때문에 선택된 쌍방향 애플리케이션들 및 또한 더욱 단순한 디자인들에 대해 중요할 수 있는 "드롭된 비디오 프레임들"에 대해 향상된 강건함(robustness), 비용을 낮추는 감소된 비디오 버퍼링, 또는 감소된 미디어 프로세싱 대기 시간을 허용할 수 있다. 동시 메모리 액세스는 또한 모 애플리케이션이 모 프로세서(202)에서 실행될 때만 미디어 프로세서(들)(204)가 미디어 애플리케이션을 실행해야 하는 경우에 일어날 수 있는 스왑 오버헤드(swap overhead)를 없앨 수 있다.
물리 메모리의 영역을 액세스하기 위한 각각의 미디어 메모리 트랜잭션은 제한될 수 있어, 하나의 애플리케이션의 고장이 다른 애플리케이션에 속하는 데이터를 손상시키지 못하게 한다. 애플리케이션이 범위 밖 어드레스(out-of-bounds address)를 생성하는 경우, 변환 시스템은 어드레싱 결함을 시그널링할 수 있다. 이것은, 미디어 프로세스 ID가 그 프로세스를 위해 적절한 어드레스 변환을 선택하는 미디어 프로세서들의 메모리 어드레스 변환 유닛들에서 실현될 수 있다.
도 1 및 도 2의 시스템들(100 및 200)은 개별 컴포넌트들을 포함하지만, 이들 컴포넌트들은 하드웨어, 소프트웨어/펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 하드웨어로 구현될 때, 시스템들(100 및 200)의 일부 컴포넌트들은 특정 칩 또는 장치 내에 결합될 수 있다.
도 2에 도시된 맵핑은 디렉토리 테이블들 및 페이지 테이블들을 포함하는 일반적인 2 레벨 계층 맵핑을 예시한다. 페이지 디렉토리 테이블들 및 페이지 테이블들은 물리 메모리에 저장되고, 보통 그들 자체가 페이지와 사이즈가 동일하다. 페이지 디렉토리 테이블 엔트리(page directory table entry: PDE)는 물리 메모리 내의 하나 이상의 페이지 테이블들을 가리키며, 페이지 테이블 엔트리(page table entry: PTE)는 물리 메모리 내의 페이지를 가리킨다. 모 프로세서(202) 및 추가 프로세서들(204)은 메인 메모리(206)를 공유한다. 제1 레벨의 맵핑에서, 제어 레지스터(208)는 페이지 디렉토리를 가리킨다. 제어 레지스터(208)는 페이지 디렉토리 메모리(210)를 선택한다. 제2 레벨의 맵핑에서, 페이지 디렉토리(210)의 엔트리들은 페이지 테이블들(212)을 가리킨다. 그들 페이지들의 엔트리들은 사용자 데이터가 존재하는 메모리의 실제 페이지들(214)을 가리킨다.
일부 마이크로프로세서들은 선형 어드레스들을 물리 어드레스들로 변환하기 위해 여러 모드를 이용한다. 하나의 모드에서, 선형 어드레스의 처음 12 비트는 페이지 프레임 내의 물리 어드레스에 대한 오프셋으로서 이용되며, 선형 어드레스의 다음 10 비트는 페이지 테이블에의 오프셋으로서 이용되며, 선형 어드레스의 가장 높은 10 비트는 페이지 디렉토리에의 오프셋으로서 이용된다. 이 기술분야의 당업자이면, 32 비트 선형 어드레스들을 변환하기 위한 다른 모드들이 또한 이용될 수 있으며 본 실시예는 임의의 특정 모드 또는 32 비트 선형 어드레스로 한정되지 않는다는 것을 알 것이다.
본 발명의 실시예들은 어드레스 변환을 하는 메모리 시스템에 관한 것이다. 제어 레지스터(208)의 내용들을 관리하기 위한 동일하거나 유사한 데이터 구조들 및 운영 절차들은 모 프로세서(202)가 스왑 아웃(swap out)되더라도 유지된다. 특히, 일 실시예에서, 추가 프로세서들(204)을 위해 데이터 구조들의 복제가 제공된다. 데이터 구조들은 페이지 디렉토리들(210), 페이지 테이블들(212) 및 페이지 프레임들을 포함한다. 그들 페이지들의 엔트리들은 사용자 데이터가 저장되는 메모리의 실제 페이지들(214)을 가리킨다. 페이지 테이블들(212)의 내용들은 메인 메모리(206)와 같은 임의의 적절한 메모리 컴포넌트에 저장된다. 페이지 테이블 디렉토리(210) 및 페이지 테이블들(212)은 메인 메모리(206)에 저장되고 본 명세서에 설명된 바와 같이 액세스된다.
통상적인 구현에서, 이것은, 모 프로세서(202)가 스왑 아웃된 후에 미디어 프로세서들과 같은 추가 프로세서들(204)이 메모리(206)에 액세스할 수 있게 한다. 통상적으로, 모 프로세서(202)가 스왑 아웃될 때, 그의 어드레스 맵핑도 스왑 아웃되고 그의 메모리는 더 이상 액세스가능하지 않다. 예를 들어, 비디오 인코드 스트림의 실행시, 미디어 프로세서들(204)은 또한 다른 프로그램을 실행하고 있을 수 있다. 모 프로세서(202)가 스왑 아웃될 때, 어드레스 공간은 모 프로세서(202)와 미디어 프로세서들(204) 둘다에 대해 액세스 불가능하게 될 수 있다. 본 실시예는, 실시간 미디어 프로세싱 데드라인을 만족시키기 위해, 모 프로세서(202)가 스왑 아웃되고 있더라도 지속적인 미디어 프로세서 어드레스 맵핑들을 제공한다.
별개의 프로세싱 엔진들에 공유 메모리가 부착된다. 미디어 프로세서(204)는 모 프로세서(202)에서 실행되는 애플리케이션이 스왑 아웃되는 동안 중단되지 않는다. 예를 들어, 모 프로세서(202)에서 실행되는 애플리케이션은 운영 체제가 모 프로세서(202)에서 어떤 다른 것을 실행할 수 있도록 스왑 아웃될 수 있다. 특히, 윈도우즈 운영 체제에서의 타이머 기반 애플리케이션이 실행될 예정이었다. 다른 예에서, 사용자가 데스크톱 포커스를 변경하였기 때문에 모 프로세서(202)에서 실행되는 애플리케이션이 스왑 아웃될 수 있다. 비디오 인코드 또는 디코드와 같은 특정 미디어 애플리케이션들은 모 프로세서(202)의 애플리케이션이 스왑 아웃되어야 하더라도 비디오 프레임의 끝까지 중단되지 않고 실행되는 것이 바람직하다.
도 2에 도시된 바와 같이, 페이지 테이블들은 복사 동작(216)에 설정된다. 모 애플리케이션이 스왑 아웃되기 전에 사용되고 있었던 페이지 디렉토리(210)는 남아 있을 수 있다. 그 다음, 모 프로세서 컨텍스트(context)에서 실행되는 모 프로세서(202)는 사용중인 미디어 프로세서들(204)에 대하여 어드레스 변환 데이터를 복제하는 명령을 제공한다. 예를 들어, 미디어 프로세서들(204)은 튜너로부터 정보를 가져오고, 그것을 처리해서 텔레비전 또는 컴퓨터 모니터에서 재생하는 것과 같이 비디오 애플리케이션을 실행한다. 이 시간 동안, 플로피 디스크를 포맷팅하는 것과 같이 일부 다른 동작이 모 프로세서(202)에 의해 수행될 필요가 있을 수 있다. 통상적으로, 운영 체제는 미디어 프로세서들(204)을 중단해서 메인 프로세서(202)가 플로피 디스크 유틸리티 애플리케이션을 실행할 수 있게 한다. 특히, 운영 체제는 애플리케이션을 중단하고, 제어 레지스터(208)에 상이한 페이지 테이블 어드레스(또는 상이한 페이지 테이블 세트)를 재로드한다. 추가 프로세서들(204)에서 실행되는 애플리케이션은 운영 체제가 원래 프로세스의 실행을 재개할 때까지 중지한다.
본 실시예에서, 미디어 프로세서 컨텍스트의 페이지 맵핑은 제어 레지스터(208)의 내용들을 변경하는 것에 의해 방해되지 않는다. 미디어 프로세서들(0-n)(204)은 (복사 동작(216) 동안 복사된) 상부의 페이지 테이블 세트(212)가 비활성화되었더라도 액세스 가능한 물리 메모리(214)를 여전히 가리키는 유효 페이지 디렉토리(218) 및 유효 페이지 테이블들(220)을 갖기 때문에 프로세싱을 계속한다.
모 프로세서(202)와 연관된 페이지 디렉토리(210) 및 페이지 테이블들(212)은 재활성화된다. 운영 체제가 제어 레지스터(208)의 이전 내용들을 다시 저장했다면, 프로세스는 완료된다. 그렇지 않았다면, 새로운 정보가 2 세트의 페이지 테이블들(212 및 220) 내로 로드된다.
도 3은 모 프로세서가 중단될 때 모 프로세서와 메모리를 공유하는 추가 프로세서들에 의한 방해되지 않는 정보 처리를 위한 미디어 메모리 시스템을 제공하는 프로세스(300)를 예시하는 흐름도이다. 모 프로세서에서 실행되는 애플리케이션은 추가 프로세서들에서 실행되는 애플리케이션들을 방해하지 않고 일시정지될 수 있다. 프로세스(300)는 설명의 편의를 위해 도 2에 도시된 시스템(200)과 관련하여 설명될 수 있지만, 본 발명은 이와 관련하여 한정되지 않는다.
모 프로세서(202) 및 미디어 프로세서들(204)은 공유 메모리(214)를 이용하여 동시에 병렬 동작들을 실행한다(작용(302)).
그 다음, 새로운 작업이 모 프로세서(202)에서 구현되려 하고 있는지를 결정한다(작용(304)). 예를 들어, 모 프로세서(202)가 그것의 타임슬롯의 끝까지 실행되거나 또는 다른 더 높은 우선순위가 그 대신 실행되어야 할 때 새로운 작업이 검출될 수 있다.
작용(304)이 모 프로세서(202)에서 구현되려 하고 있는 새로운 작업을 검출하지 않은 경우, 프로세싱은 계속된다(작용(302)). 작용(304)이 모 프로세서(202)에서 구현되려 하고 있는 새로운 작업을 검출한 경우, 운영 체제는 모 프로세서(202)에서 현재 실행되고 있는 것을 정지시키고, 그의 메모리 어드레싱 컨텍스트를 저장하는 명령들을 제공할 수 있다(작용(306)).
운영 체제는 개시하려고 하는 계획된 작업과 연관된 새로운 컨텍스트를 제어 레지스터(208)에 재로드할 수 있다(작용(308)).
새로운 작업들로 전환되기 전에, 모 프로세서(202)는 미디어 프로세서들(104)에 대해 페이지 디렉토리(210) 및 페이지 테이블들(212)을 복사하는 명령을 제공한다(작용(310)). 복제 페이지 디렉토리들(218) 및 페이지 테이블들(220)이 복사 동작에 설정된다(작용(312)). 특히, 페이지 디렉토리(210) 및 페이지 테이블들(212)은 미디어 프로세서들(204)을 위해 복사된다.
실행되려고 했던 명령들은 알려져 있으므로, 실행은 그 최종 어드레스 및 명령에서 개시한다. 운영 체제는 최종 어드레스 및 명령으로 건너뛰어 실행을 개시한다(작용(312)).
모 프로세서(202) 및 (미디어 프로세서 컨텍스트의) 추가 프로세서들(204)은 동시에 실행된다(작용(314)).
프로세서들은 예를 들어, 종래의 프로세서(202)와, 추가 프로세서들(204)에 대응하는 몇 개의 더 작은 프로세서 코어들을 합한 것을 가지고 구현될 수 있다. 상부 컨텍스트는 단일 IA 32 프로세서(또는 하이퍼 스레드된(hyper threaded) 하나 또는 복수개의 그것들)에 대응할 수 있다. CPU 및 미디어 프로세서들은 빈번하게 사용되는 데이터 및 어드레스 변환을 캐싱할 수 있다. 미디어 프로세싱의 특정 부분들은 생생한 비디오 및 오디오와 연관된 타이밍 제약들을 받을 수 있어, 별개로 저장된 어드레스 변환을 위한 필요성을 제안한다.
여러 예시적인 구현들이 논의되었지만, 본 발명은 명시적으로 언급된 것으로 한정되어서는 안되며, 정보를 처리하거나 전송하거나 출력하거나 저장할 수 있는 2개 이상의 프로세서를 포함하는 임의의 장치 또는 인터페이스를 포함해야 한다.
프로세스(300)는 예를 들어 프로세서들(202 및 204) 또는 로컬 시스템(200)의 다른 부분에 의해 실행될 수 있는 소프트웨어로 구현될 수 있다.
본 발명의 원리들과 일치하는 하나 이상의 구현들의 전술한 설명은 예시 및 설명을 제공하지만, 전부 다 열거하거나 개시된 정확한 형태로 본 발명의 범위를 한정하고자 하는 것이 아니다. 수정들 및 변형들이 전술한 교시에 비추어 가능하거나 본 발명의 다양한 구현들의 실행으로부터 얻어질 수 있다.
본원의 설명에 사용되는 어떠한 요소, 작용, 또는 명령도 그와 같이 명시적으로 기재되지 않으면 본 발명에 대해 결정적 또는 필수적인 것으로 해석되어서는 안된다. 또한, 본원에서 이용될 때, 관사 "a"는 하나 이상의 항목을 포함하는 것으로 의도된다. 본 발명의 범위 및 원리들로부터 실질적으로 벗어나지 않고 본 발명의 전술한 구현(들)에 대하여 변형들 및 수정들이 이루어질 수 있다. 모든 이러한 수정들 및 변형들은 본 개시의 범위 내에서 본원에 포함되고 다음의 특허청구범위에 의해 보호되는 것으로 의도된다.

Claims (19)

  1. 주(primary) 프로세서 어드레스 변환들을 적어도 하나의 부(secondary) 프로세서 어드레스 변환에 매칭시키는 단계;
    별개의 변환 테이블 정보를 통해 상기 적어도 하나의 부 프로세서에 동시 공유 메모리 액세스를 제공하는 단계; 및
    상기 공유 메모리를 통해 상기 주 프로세서와 상기 적어도 하나의 부 프로세서 사이에 실시간 데이터를 교환하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 주 프로세서 어드레스 변환들을 적어도 하나의 부 프로세서 어드레스 변환에 매칭시키는 단계는,
    주어진 애플리케이션에 대한 페이지 디렉토리를, 상기 애플리케이션이 상기 주 및 부 프로세서들에서 실행되는 상기 애플리케이션에 의해 공유될 메모리를 할당할 때, 부 프로세서의 페이지 디렉토리에 복사하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    물리 메모리의 영역을 액세스하기 위한 각각의 메모리 트랜잭션을 제한하는 단계를 더 포함하는 방법.
  4. 제2항에 있어서,
    상기 물리 메모리의 영역을 액세스하기 위한 각각의 메모리 트랜잭션을 제한하는 단계는,
    범위 밖 어드레스(out-of-bounds address)를 생성하는 애플리케이션에 응답하여 어드레싱 결함을 시그널링하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    공유 메모리에, 또는 주 프로세서 또는 부 프로세서와 연관된 캐시들에 데이터를 유지하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 부 프로세서는 적어도 하나의 미디어 프로세서를 포함하는 방법.
  7. 제6항에 있어서,
    상기 적어도 하나의 미디어 프로세서에서 미디어 프로세스의 실시간 부분을 실행하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서,
    실시간 미디어 데이터를 포함하기 위해 이용되는 메모리를 할당하고 할당해제(deallocating)하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서,
    운영 체제에 의해 야기되는 지연들 없이 외부에서 공급되는 타이밍 신호들로 상기 적어도 하나의 부 프로세서를 동기화시키는 단계를 더 포함하는 방법.
  10. 실행될 때, 머신(machine)으로 하여금,
    제1 프로세서 어드레스 변환들을 적어도 하나의 부 프로세서 어드레스 변환에 매칭시키고;
    전용 변환 테이블 정보를 통해 상기 적어도 하나의 부 프로세서에게 공통 메모리 액세스를 가능하게 하고;
    상기 공통 메모리를 통해 상기 제1 프로세서와 상기 적어도 하나의 부 프로세서 사이에 데이터를 공유하게 하는 명령들을 포함하는 머신 액세스 가능한 매체.
  11. 제10항에 있어서,
    상기 제1 프로세서 어드레스 변환들을 적어도 하나의 부 프로세서 어드레스 변환에 매칭시키기 위한 명령들은,
    실행될 때, 상기 머신으로 하여금,
    주어진 애플리케이션에 대한 페이지 디렉토리를, 상기 애플리케이션이 상기 제1 및 부 프로세서들에서 실행되는 상기 애플리케이션에 의해 공유될 메모리를 할당할 때, 부 프로세서의 페이지 디렉토리에 복사하게 하는 명령들을 더 포함하는 머신 액세스 가능한 매체.
  12. 메모리; 및
    주 프로세서 어드레스 변환들을 적어도 하나의 부 프로세서 어드레스 변환에 매칭시키고, 별개의 변환 테이블 정보를 통해 상기 적어도 하나의 부 프로세서에게 상기 메모리에의 동시 공유 액세스를 제공하고, 상기 메모리를 통해 상기 주 프로세서와 상기 적어도 하나의 부 프로세서 사이에 실시간 데이터를 교환하는 컨트롤러
    를 포함하는 시스템.
  13. 제12항에 있어서,
    상기 컨트롤러는, 주어진 애플리케이션에 대한 페이지 디렉토리를, 상기 애플리케이션이 상기 주 및 부 프로세서들에서 실행되는 상기 애플리케이션에 의해 공유될 메모리를 할당할 때, 부 프로세서의 페이지 디렉토리에 복사하는 시스템.
  14. 제12항에 있어서,
    메모리에, 또는 주 프로세서 또는 부 프로세서와 연관된 캐시들에 데이터가 유지되는 시스템.
  15. 제12항에 있어서,
    상기 컨트롤러는 실시간 미디어 데이터를 포함하기 위해 이용되는 메모리를 할당하고 할당해제하는 시스템.
  16. 제12항에 있어서,
    운영 체제에 의해 야기되는 지연들 없이 외부에서 공급되는 타이밍 신호들로 적어도 하나의 부 프로세서를 동기화시키는 시스템.
  17. 주 프로세서 어드레스 변환들을 적어도 하나의 부 프로세서 어드레스 변환에 매칭시키고, 별개의 변환 테이블 정보를 통해 상기 적어도 하나의 부 프로세서에게 메모리에의 동시 공유 액세스를 제공하고, 상기 메모리를 통해 상기 주 프로세서와 상기 적어도 하나의 부 프로세서 사이에 실시간 데이터를 교환하는 어드레스 변환기
    를 포함하는 장치.
  18. 제17항에 있어서,
    상기 어드레스 변환기는, 주어진 애플리케이션에 대한 페이지 디렉토리를, 상기 애플리케이션이 상기 주 및 부 프로세서들에서 실행되는 상기 애플리케이션에 의해 공유될 메모리를 할당할 때, 부 프로세서의 페이지 디렉토리에 복사하는 장 치.
  19. 제17항에 있어서,
    상기 어드레스 변환기는 공유 메모리에, 또는 주 프로세서 또는 부 프로세서와 연관된 캐시들에 데이터가 유지되게 하는 장치.
KR1020077014245A 2004-12-22 2005-12-20 미디어 메모리 시스템 KR101202154B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/022,503 US7490215B2 (en) 2004-12-22 2004-12-22 Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information
US11/022,503 2004-12-22
PCT/US2005/046303 WO2006069130A2 (en) 2004-12-22 2005-12-20 Media memory system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020097001823A Division KR20090016520A (ko) 2004-12-22 2005-12-20 미디어 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20070086561A true KR20070086561A (ko) 2007-08-27
KR101202154B1 KR101202154B1 (ko) 2012-11-15

Family

ID=36274494

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020097001823A KR20090016520A (ko) 2004-12-22 2005-12-20 미디어 메모리 시스템
KR1020077014245A KR101202154B1 (ko) 2004-12-22 2005-12-20 미디어 메모리 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020097001823A KR20090016520A (ko) 2004-12-22 2005-12-20 미디어 메모리 시스템

Country Status (7)

Country Link
US (1) US7490215B2 (ko)
EP (1) EP1839157B1 (ko)
JP (2) JP4996479B2 (ko)
KR (2) KR20090016520A (ko)
CN (1) CN101088077B (ko)
TW (1) TWI308693B (ko)
WO (1) WO2006069130A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8667249B2 (en) 2004-12-22 2014-03-04 Intel Corporation Systems and methods exchanging data between processors through concurrent shared memory
US7490215B2 (en) * 2004-12-22 2009-02-10 Intel Corporation Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information
US20080109607A1 (en) * 2006-11-02 2008-05-08 International Business Machines Corporation Method, system and article for managing memory
US7890472B2 (en) 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
US20090182977A1 (en) * 2008-01-16 2009-07-16 S. Aqua Semiconductor Llc Cascaded memory arrangement
US8669990B2 (en) * 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
US9104690B2 (en) 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory
US8683175B2 (en) * 2011-03-15 2014-03-25 International Business Machines Corporation Seamless interface for multi-threaded core accelerators
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9373182B2 (en) 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
US9170954B2 (en) 2012-12-10 2015-10-27 International Business Machines Corporation Translation management instructions for updating address translation data structures in remote processing nodes

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
JPS63197255A (ja) * 1987-02-12 1988-08-16 Matsushita Electric Ind Co Ltd アドレス変換装置
JP2586112B2 (ja) * 1988-07-13 1997-02-26 富士通株式会社 アドレス変換テーブルのアクセス制御方式
JPH0458347A (ja) * 1990-06-27 1992-02-25 Nec Corp 共有アドレス空間管理方式
US5727179A (en) * 1991-11-27 1998-03-10 Canon Kabushiki Kaisha Memory access method using intermediate addresses
JP2974526B2 (ja) * 1992-12-18 1999-11-10 富士通株式会社 データ転送処理方法及びデータ転送処理装置
JPH0822418A (ja) * 1994-07-07 1996-01-23 Mitsubishi Electric Corp 仮想アドレス空間管理装置
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
JP3557026B2 (ja) * 1996-01-12 2004-08-25 株式会社東芝 仮想記憶管理方法
US6049853A (en) * 1997-08-29 2000-04-11 Sequent Computer Systems, Inc. Data replication across nodes of a multiprocessor computer system
US6658477B1 (en) * 1999-05-12 2003-12-02 Microsoft Corporation Improving the control of streaming data through multiple processing modules
US6286092B1 (en) * 1999-05-12 2001-09-04 Ati International Srl Paged based memory address translation table update method and apparatus
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
JP2004206424A (ja) * 2002-12-25 2004-07-22 Hitachi Ltd データ処理装置及びデータ処理装置におけるデータ転送方法
JP3828553B2 (ja) * 2004-04-21 2006-10-04 株式会社東芝 仮想記憶管理方法
US7490215B2 (en) * 2004-12-22 2009-02-10 Intel Corporation Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information

Also Published As

Publication number Publication date
EP1839157B1 (en) 2012-07-25
KR101202154B1 (ko) 2012-11-15
US7490215B2 (en) 2009-02-10
JP4996479B2 (ja) 2012-08-08
JP5335041B2 (ja) 2013-11-06
JP2011253551A (ja) 2011-12-15
CN101088077B (zh) 2010-06-09
TW200636459A (en) 2006-10-16
TWI308693B (en) 2009-04-11
JP2008525894A (ja) 2008-07-17
WO2006069130A3 (en) 2006-09-08
EP1839157A2 (en) 2007-10-03
US20060136693A1 (en) 2006-06-22
CN101088077A (zh) 2007-12-12
KR20090016520A (ko) 2009-02-13
WO2006069130A2 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
US10691612B2 (en) System and methods exchanging data between processors through concurrent shared memory
KR101202154B1 (ko) 미디어 메모리 시스템
US10929304B2 (en) Memory sharing via a unified memory architecture
US8566563B2 (en) Translation table control
US8316212B2 (en) Translation lookaside buffer (TLB) with reserved areas for specific sources
US20070294505A1 (en) Enhanced Shadow Page Table Algorithms
WO2018176911A1 (zh) 一种虚拟磁盘文件格式转换方法和装置
JP2014132467A (ja) メモリ管理ユニットを含むシステム・オン・チップとそのメモリアドレス変換方法及び電子装置
US20150091924A1 (en) Sharing non-page aligned memory
US20040128469A1 (en) Mechanism for remapping post virtual machine memory pages
US20080270739A1 (en) Management of copy-on-write fault
JP2003281079A (ja) ページ・テーブル属性によるバス・インタフェース選択
US20230350811A1 (en) Real time input/output address translation for virtualized systems
US20070220231A1 (en) Virtual address translation by a processor for a peripheral device
JP4965974B2 (ja) 半導体集積回路装置
JP2008123333A5 (ko)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B90T Transfer of trial file for re-examination
E801 Decision on dismissal of amendment
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
E902 Notification of reason for refusal
AMND Amendment
S601 Decision to reject again after remand of revocation
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 8