KR20150112784A - 분산 그래픽 프로세서 계층 구조의 시스템 일관성 - Google Patents

분산 그래픽 프로세서 계층 구조의 시스템 일관성 Download PDF

Info

Publication number
KR20150112784A
KR20150112784A KR1020150028622A KR20150028622A KR20150112784A KR 20150112784 A KR20150112784 A KR 20150112784A KR 1020150028622 A KR1020150028622 A KR 1020150028622A KR 20150028622 A KR20150028622 A KR 20150028622A KR 20150112784 A KR20150112784 A KR 20150112784A
Authority
KR
South Korea
Prior art keywords
cache
shared
memory
graphics processor
memory lines
Prior art date
Application number
KR1020150028622A
Other languages
English (en)
Other versions
KR101648758B1 (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 KR20150112784A publication Critical patent/KR20150112784A/ko
Application granted granted Critical
Publication of KR101648758B1 publication Critical patent/KR101648758B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

방법 및 시스템은 계산 슬라이스의 물리적으로 분산된 세트에 의해 복수의 작업 항목을 실행할 수 있다. 부가적으로, 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성은 캐시 패브릭에 의해 그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 유지될 수 있다. 일례에서, 복수의 크로스바 노드는 하나 이상의 메모리 라인을 추적하고, 하나 이상의 메모리 라인의 일관성은 복수의 레벨 1(L1) 캐시 및 물리적으로 분산된 캐시 구조에 걸쳐 유지된다. 각각의 L1 캐시는 계산 슬라이스의 실행 블록에 전용될 수 있고, 각각의 크로스바 노드는 계산 슬라이스에 전용될 수 있다.

Description

분산 그래픽 프로세서 계층 구조의 시스템 일관성{SYSTEM COHERENCY IN A DISTRIBUTED GRAPHICS PROCESSOR HIERARCHY}
게임 및 미디어 플레이어와 같은 특정 애플리케이션은 연산 집약적 작업 부하(compute intensive workload)를 처리하기 위해 내장형 설계, 그래픽 처리 장치(graphics processing unit(GPU)) 등을 사용할 수 있다. 그러한 경우, 중앙 처리 장치(central processing unit(CPU))는 작업 부하를 예를 들어 하나 이상의 명령의 형태로 CPU로 전달(dispatch)할 수 있으며, GPU는 하나 이상의 명령에 응답하여 다수의 작업 항목을 포함하는 작업 그룹을 내부적으로 실행할 수 있다. GPU 상에서 작업 항목과 작업 그룹 사이의 순차적 일관성을 유지하기 위하여, 배리어 명령("배리어(barrier)"), 메모리 펜스(fence) 및 정렬되지 않은 원자적 연산(unordered atomic operation)("원자")과 같은 솔루션이 이용될 수 있다. 그러나, 이러한 솔루션은 조잡하고 특정 메모리 액세스 순서를 제어할 수 없을 수 있다. 더욱이, 기존의 솔루션은 하드웨어 플러시(flush) 및 소프트웨어 스택(stack) 호출이 이용되지 않으면 GPU 및 CPU에 걸쳐 메모리 일관성(예를 들어, 일관성)을 확보하지 못할 수 있으며, 플러시 및 스택 호출이 성능에 부정적인 영향을 미칠 수 있다.
실시예의 다양한 장점은 다음과 같은 명세서 및 첨부된 청구 범위를 판독하고 아래의 도면을 참조함으로써 당업자에게 명백해질 것이다.
도 1a는 실시예에 따른 컴퓨팅 아키텍처의 일례의 블록도이다.
도 1b는 실시예에 따른 계산 슬라이스의 일례의 블록도이다.
도 2는 실시예에 따른 그래픽 프로세서를 동작시키는 방법의 일례의 흐름도이다.
도 3a 내지 도 3e는 실시예에 따른 일관성 프로토콜 테이블의 예를 도시한 것이다.
도 4는 실시예에 따른 내비게이션 제어기를 갖는 시스템의 일례의 블록도이다.
도 5는 실시예에 따른 소형 폼 팩터(small form factor)를 갖는 시스템의 일례의 블록도이다.
도 1a 및 도 1b는 일반적으로 예를 들어 스마트 폰, 태블릿 컴퓨터, 모바일 인터넷 장치(MID), 스마트 텔레비전(TV), 미디어 플레이어, 노트북 컴퓨터, 데스크톱 컴퓨터, 서버, 착용형 장치 등과 같은 컴퓨팅 플랫폼의 일부일 수 있는 컴퓨팅 아키텍처(10)를 도시한다. 도 1a에 가장 잘 도시된 바와 같이, 시스템 캐시(12)(예를 들어, 정적 랜덤 액세스 메모리/SRAM, 스누프(snoop) 필터)는 전용 캐시(16)(16a-16c, 예를 들어, SRAM)를 갖는 복수의 호스트 프로세서(14)(14a-14c)에 결합될 수 있다. 시스템 캐시(12)는 또한 아키텍처(10)의 다양한 구성 요소에 대해 데이터, 명령어 등을 저장하는 데 사용되는 시스템 메모리(18)(예를 들어, 동적 랜덤 액세스 메모리/DRAM, "메인 메모리")에 결합될 수 있다. 각각의 호스트 프로세서(14)는 시각적 콘텐츠의 프레젠테이션(presentation)에 관련된 애플리케이션, 스크립트 등을 실행하고 그래픽 인터페이스(22)를 통해 관련된 작업 부하를 그래픽 프로세서(20)에 발행할 수 있는 중앙 처리 장치(CPU)일 수 있다. 시스템 캐시(12)는 일반적으로 이러한 작업 부하와 관련된 메모리 라인(예를 들어, 캐시 라인 또는 다른 데이터 구조)의 존재를 추적하고 스누프 필터링 서비스를 제공할 수 있으며, 그래픽 인터페이스(22)는 시스템 캐시(12)로부터 수신된 스누프 요청을 평가하여, 추가의 평가를 위해 그래픽 프로세서(20)에서 적절한 캐시 목적지로 송신할 수 있다.
그래픽 프로세서(20)는 일반적으로 시각적 콘텐츠의 프레젠테이션(예를 들어, 3차원/3D 그래픽, 비-3D 이미지 등)을 지지하고/하거나 용이하게 하기 위해 예를 들어 픽셀 색상 값 계산, 히스토그램 계산 등과 같은 계산 집약적 작업 부하를 처리할 수 있다. 특히, 도시된 그래픽 프로세서(20)는 복수의 작업 항목을 실행하기 위해 물리적으로 분산된 세트의 계산 슬라이스(24)(24a-24d)와, 그래픽 프로세서(20), 시스템 메모리(18) 및 호스트 프로세서(14)에 걸친 복수의 작업 항목과 관련된 하나 이상의 메모리 라인(예를 들어, 시스템에 정의된 크기)의 일관성을 유지하기 위한 캐시 패브릭(cache fabric)을 포함한다. 아래에서 더 상세히 논의되는 바와 같이, 캐시 패브릭은 작업 항목과 작업 그룹 사이의 순차적 일관성을 유지하고, 특정 메모리 액세스 순서를 제어하며, 메모리 일관성(예를 들어, 일관성)을 보장하기 위한 세밀한(fine grained) 접근 방식을 제공할 수 있다.
도 1b에 가장 잘 도시된 바와 같이, 캐시 패브릭은 복수의 레벨 1(L1) 캐시(26)("L1$")를 포함할 수 있고, 각각의 L1 캐시(26)는 계산 슬라이스(24)의 실행 블록(28)에 전용된다. 따라서, 복수의 L1 캐시(26)는 비교적 높은 대역폭 및 낮은 지연 저장소를 실행 블록(28)에 제공할 수 있지만, 메모리 라인은 캐시 패브릭에 의해 추적된다. 각각의 실행 블록(28)은 작업 항목을 실행하기 위한 실행 유닛(EU)(34)의 어레이와, 메모리에서 데이터 오퍼랜드 어드레싱에 관련된 (예를 들어, 정수 연산을 이용하여) 유효 어드레스 계산을 수행하기 위한 어드레스 생성 유닛(AGU)(36)을 포함할 수 있다.
캐시 패브릭은 또한 물리적으로 분산된 공유 캐시 구조(30)를 포함할 수 있으며, 하나 이상의 메모리 라인의 일관성은 복수의 L1 캐시(26) 및 공유 캐시 구조(30)에 걸쳐 유지되어야 한다. 물리적으로 분산된 엔티티로서 공유 캐시 구조(30)를 구성하는 것은 실행 블록(28)의 각각의 대역폭 요구를 충족시키면서 공유 캐시 구조(30)의 크기가 최대화되도록 할 수 있다. 도시된 예에서, 공유 캐시 구조(30)는 복수의 뱅크를 가진 레벨 2 캐시("L2$")로서 구성된다. 이러한 경우에, 공유된 캐시 구조(30)는 공유 캐시 구조(30)에 걸쳐 데이터의 균일한 분포를 보장하기 위해 복수의 뱅크에 걸쳐 메모리 라인을 해싱(hash)할 수 있다. 예시된 접근 방식은 크로스 계산 슬라이스 트래픽(cross-compute slice traffic)의 잠재적 증가로 최소 스누핑 페널티(snooping penalty)(예를 들어, 스누프 요청을 처리하기 위해 비교적 작은 성능 영향)를 크고 더 확장 가능한 캐시에 제공할 수 있다. 대안으로, 공유 캐시 구조(30)는 복수의 독립 레벨 2(L2) 캐시(31)로서 구성될 수 있으며, 각각의 L2 캐시(31)는 계산 슬라이스에 전용된다. 이러한 접근 방식은 크로스 계산 트래픽을 최소화하면서 실행 블록(28)에 로컬 저장소를 제공할 수 있다. 두 구현 선택은 동일한 스누핑 추적 논리를 이용하여 일관성을 달성할 수 있다.
부가적으로, 캐시 패브릭은 하나 이상의 메모리 라인을 추적하기 위해 복수의 크로스바 노드(32)(예를 들어, 캐시 브리지)를 포함할 수 있으며, 각각의 크로스바 노드(32)는 계산 슬라이스(24)에 전용된다. 크로스바 노드(32)는 시스템 캐시(12)로부터 발신한 스누프 요청을 공유 캐시 구조(30) 및 L1 캐시(26)로 분산할 수 있다. 부가적으로, 크로스바 노드(32)는 공유 캐시 구조(30) 및 복수의 L1 캐시(26)로부터 하나 이상의 스누핑 결과를 수집하고, 수집된 스누핑 결과를 그래픽 인터페이스(22)를 통해 시스템 캐시(12)로 전달할 수 있다. 더 상세히 논의되는 바와 같이, 캐시 패브릭은 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(modified, exclusive, shared, invalid)(MESI) 프로토콜을 사용할 수 있다.
따라서, 도시된 아키텍처(10)는 그래픽 작업 항목과 작업 그룹 사이의 순차적 일관성을 유지하고, 특정 메모리 액세스 순서를 제어하며, 전체 아키텍처에 걸쳐 일관성을 보장할 수 있는 메모리/캐시 계층 구조를 달성하기 위해 그래픽 프로세서(20)의 캐시 패브릭, 호스트 프로세서(14)의 전용 캐시(16), 시스템 캐시(12) 및 시스템 메모리(18)를 사용한다. 이러한 세밀한 접근 방식은 특히 배리어, 메모리 펜스, 정렬되지 않은 원자, 하드웨어 플러시 및 소프트웨어 스택 호출에 의존하는 종래의 접근 방식에 비해 유리할 수 있다.
예를 들면, 로딩(예를 들어, 판독 동작) 및 저장(예를 들어, 기록 동작) 추적은 실행 블록(28)의 레벨에서 시작할 수 있으며, 시스템 메모리(18)의 판독은 유효 데이터를 반환할 수 있고, 메모리 계층 구조의 상위 레벨은 계층 구조의 다음 하위 레벨에 대해 영향을 받은 메모리 라인의 존재를 추적할 수 있다. 계층 구조의 낮은 레벨은 빅팀(victim) 선(예를 들어, 교체로 인해 캐시로부터 제거된 메모리 라인)이 수정되지 않으면 교체를 위해 자신의 메모리 라인을 조용히 드롭하도록 허용될 수 있다. 각 기록의 발신자는 메모리 라인에 대한 기록의 크기에 기초하여 발신자가 L1 캐시(26)를 업데이트하기 전에 목적지 어드레스의 소유권을 달 수 있는 경우에, 기록 추적은 더욱 제한적일 수 있다. 간략화를 위해, 수정된 메모리 라인의 하나의 사본만이 전체 캐시 패브릭 상에 존재하도록 허용된다. 이러한 정책은 데이터의 교환을 비교적 정확하게 하면서 메모리 라인의 최신 사본을 추적하기 위해 제공할 수 있다.
이제 도 2를 참조하면, 그래픽 프로세서를 동작시키는 방법(38)이 도시된다. 방법(38)은 예를 들어 주문형 집적 회로(ASIC), 상보성 금속 산화물 반도체(CMOS) 또는 트랜지스터-트랜지스터 논리(TTL) 기술, 또는 이의 임의의 조합과 같은 회로 기술을 사용하여 고정 기능 논리 하드웨어에서 예를 들어 프로그램 가능한 논리 어레이(PLA), 필드 프로그램 가능한 게이트 어레이(FPGA), 복합 프로그램 가능한 논리 장치(CPLD)와 같은 구성 가능한 로직에서 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 프로그래머블 ROM(PROM), 펌웨어, 플래시 메모리 등과 같은 메모리의 머신 또는 컴퓨터 판독 가능한 저장 매체에 저장된 논리 명령어의 세트로서 실행 가능한 소프트웨어로 구현될 수 있다.
도시된 처리 블록(40)은 계산 슬라이스의 물리적으로 분산된 세트에 의해 복수의 작업 항목을 실행하기 위해 제공한다. 블록(42)은 캐시 패브릭에 의해 그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지할 수 있다. 블록(42)은 복수의 크로스바 노드에 의해 하나 이상의 메모리 라인을 추적하는 것을 포함할 수 있으며, 하나 이상의 메모리 라인의 일관성은 복수의 L1 캐시 및 물리적으로 분산된 캐시 구조에 걸쳐 유지되며, 각각의 L1 캐시는 계산 슬라이스의 실행 블록에 전용되고, 각각의 크로스바 노드는 계산 슬라이스에 전용된다. 더욱이, 공유된 캐시 구조는 하나 이상의 메모리 라인을 추적하거나, L2 캐시의 복수의 뱅크에 걸쳐 하나 이상의 메모리 라인 중 적어도 하나를 해싱하기 위해 복수의 독립 L2 캐시를 사용할 수 있다. 독립 L2 캐시의 경우에, 각각의 L2 캐시는 계산 슬라이스에 전용될 수 있다.
블록(42)은 또한 복수의 크로스바 노드에 의해 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 공유 캐시 구조 및 복수의 L1 캐시로 분산시키는 것을 포함할 수 있다. 부가적으로, 블록(42)은 복수의 크로스바 노드에 의해 공유 캐시 구조 및 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하고, 복수의 크로스바 노드에 의해 하나 이상의 스누핑 결과를 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로 전달하기 위해 제공할 수 있다. 블록(42)은 또한 캐시 패브릭에 의해 하나 이상의 메모리 라인의 일관성을 유지하기 위해 MESI 프로토콜을 이용하는 것을 포함할 수 있다.
도 3a 내지 도 3e는 일반적으로 각각의 메모리 라인이 MESI(수정, 배타적, 공유, 무효) 상태 중 하나로 표시되는 일관성 프로토콜을 구현하기 위한 접근 방식을 도시한다. 특히, 메모리 라인이 현재 캐시에서만 존재하고, 그것이 "더티(dirty)"한 경우(예를 들어, 메모리 라인은 시스템 메모리의 값으로부터 변경되었음)에 수정 상태가 사용될 수 있다. 특정 캐시가 수정 상태에 있는 메모리 라인을 가질 경우, 캐시는 시스템 메모리로부터의 메모리 라인의 판독이 허용되기 전에 메모리 라인에 대응하는 데이터를 시스템 메모리에 라이트 백(write back)하도록 요구될 수 있다. 이러한 "라이트 백"은 메모리 라인이 캐시에서 배타적 상태로 변경되게 할 수 있다.
배타적 상태는 메모리 라인이 현재 캐시에만 존재하고, "클린(clean)"할 경우(예를 들어, 메모리 라인은 시스템 메모리의 값과 일치하는 경우)에 이용될 수 있다. 이러한 경우에, 메모리 라인은 캐시에 대한 판독 요청에 응답하여 공유 상태로 변경될 수 있다. 메모리 라인은 캐시에 대한 기록 요청에 응답하여 수정 상태로 변경될 수 있다. 공유 상태는 메모리 라인이 클린하다는 것을 나타낼 수 있고, 시스템의 다른 캐시에 저장될 수 있다. 공유 메모리 라인은 또한 언제라도 폐기될 수 있다(예를 들어, 무효 상태로 변경될 수 있다). 무효 상태는 메모리 라인이 사용되지 않는(예를 들어, 캐시로부터 퇴거되는) 것을 나타내는 데 사용될 수 있다. 이미 언급된 바와 같이, 캐시 패브릭은 그래픽 프로세서, 시스템 메모리 및 호스트 프로세서의 전용 캐시에 걸쳐 메모리 일관성을 유지하기 위해 MESI 프로토콜을 사용할 수 있다. 도 3a 내지 도 3e에 도시된 예는 특정 L1 캐시("Issuing L1$")의 관점에서 취해진다.
예를 들면, 도 3a는 특정 L1 캐시로 지향된 판독 동작에 대한 일관성 프로토콜 테이블(44)을 도시한다. 도시된 예에서, "Original Request" 열(column)(45)은 특정 메모리 라인에 대해 수행되는 동작의 타입을 나타내고, "L2$" 열(47)은 동작이 요청되는 경우에 L2 캐시에서 메모리 라인의 상태를 나타내고, "Other L1$" 열(49)은 동작이 요청되는 경우에 다른 L1 캐시에서 메모리 라인의 상태를 나타내고, "Issuing L1$" 열(51)은 동작이 요청되는 경우에 해당 L1 캐시에서 메모리 라인의 상태를 나타내고, 제 1 "L1$ Valid(SSV)" 열(53)은 동작이 요청되는 경우에 서브-슬라이스 유효(SSV) 캐시의 수(예를 들어, 메모리 라인에 대해 유효 데이터를 가진 L1 캐시의 수)를 나타내고, "L2$ State" 열(55)은 동작이 수행된 후에 L2 캐시에서 메모리 라인의 상태를 나타내고, "Other SS$" 열(57)은 동작이 수행된 후에 다른 L1 캐시에서 메모리 라인의 상태를 나타내고, "Issuing SS$" 열(59)은 동작이 수행된 후에 해당 L1 캐시에서 메모리 라인의 상태를 나타내고, 제 2 "L1$ Valid(SSV)" 열(61)은 동작이 수행된 후에 SSV 캐시의 수를 나타내고, "SSV Action" 열(63)은 메모리 라인과 관련된 유효 비트에 대하여 취해진 동작을 나타내며, "Xsnp" 열(65)은 요청된 동작 후에 크로스 스누핑 동작이 수행되어야 하는지를 나타낸다.
따라서, 예를 들면, 테이블(44)의 제 1 로우(row)(54)에 도시된 바와 같이, 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 수정 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 공유 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 경우에는 판독 동작이 특정 L1 캐시로 지향될 수 있다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 하나일 수 있다. 그렇다면, 판독 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 수정 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 공유 상태에 있고, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 (변경된) 공유 상태에 있으며, 도시된 예에서, SSV 캐시의 수는 열(61)에 도시된 바와 같이 하나보다 클 것이다. 더욱이, 유효 비트는 열(63)에 도시된 바와 같이 발행 L1 캐시에서 메모리 라인에 부가될 수 있고, 열(65)에 도시된 바와 같이 크로스 스누핑 동작은 필요하지 않을 수 있다(예를 들어, 조용한 퇴거가 허용됨).
대조적으로, 테이블(44)의 제 4 로우(56)는 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 수정 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 경우에는 판독 동작이 특정 L1 캐시로 지향될 수 있다는 것을 보여준다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 하나일 수 있다. 그렇다면, 판독 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 수정 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있고, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 (상태 변경으로 인한) 공유 상태에 있으며, 도시된 예에서, SSV 캐시의 수는 열(61)에 도시된 바와 같이 하나보다 클 것이다. 유효 비트는 열(63)에 도시된 바와 같이 발행 L1 캐시에서 메모리 라인에 대해 대체될 수 있고, 열(65)에 도시된 바와 같이 크로스 스누핑 동작은 필요하지 않을 수 있다. 유사한 전환 및/또는 규칙은 테이블(44)의 나머지 부분에서 보여준 바와 같이 대응하는 메모리 라인이 L2 캐시에서 배타적, 공유 및/또는 무효 상태에 있는 판독 동작 시나리오에 대해 구현될 수 있다.
도 3b는 발행 L1 캐시에 대한 기록 동작을 위한 일관성 프로토콜 테이블(46)을 도시한다. 도시된 예에서, 테이블(46)의 제 9 로우(58)는 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 배타적 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 공유 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 공유 상태에 있을 경우에는 기록 동작이 특정 L1 캐시로 지향될 수 있다는 것을 보여준다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 하나보다 클 것이다. 부가적으로, 기록 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 (상태 변경으로 인한) 수정 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 (상태 변경으로 인한) 무효 상태에 있고, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 (상태 변경으로 인한) 무효 상태에 있을 것이며, 도시된 예에서, SSV 캐시의 수는 열(61)에 도시된 바와 같이 제로일 것이다. 유효 비트는 열(63)에 도시된 바와 같이 발행 L1 캐시에서 클리어될 수 있고, 열(65)에 도시된 바와 같이 스누핑 무효화 동작("Snp Inv")이 수행될 수 있다. 유사한 전환 및/또는 규칙은 테이블(46)의 나머지 부분에서 보여준 바와 같이 대응하는 메모리 라인이 L2 캐시에서 수정, 공유 및/또는 무효 상태에 있는 기록 동작 시나리오에 대해 구현될 수 있다.
도 3c는 L2 캐시에 대한 퇴거 및 판독 동작을 위한 일관성 프로토콜 테이블(48)을 도시한다. 도시된 예에서, 테이블(48)의 제 7 로우(60)는 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 공유 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 경우에는 퇴거 동작이 발행 L1 캐시로부터 L2 캐시로 지향될 수 있다는 것을 보여준다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 제로일 것이다. 퇴거 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 (변경된) 무효 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있고, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 것이며, 도시된 예에서, SSV 캐시의 수는 열(61)에 도시된 바와 같이 제로일 것이다. 더욱이, 열(63)에 도시된 바와 같이 유효 비트에 대해서나, 열(65)에 도시된 바와 같이 크로스 스누핑 동작에 대해서 어떠한 동작이 취해질 필요가 없을 수 있다. 유사한 전환 및/또는 규칙은 테이블(46)의 나머지 부분에서 보여준 바와 같이 대응하는 메모리 라인이 L2 캐시에서 배타적 및/또는 수정 상태에 있는 퇴거 동작 시나리오에 대해 구현될 수 있다.
부가적으로, 테이블(48)의 마지막 로우(62)는 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 무효 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 경우에는 판독 동작이 발행 L1 캐시로부터 (예를 들어 L1 캐시 미스(cache miss)에 응답하여) L2 캐시로 지향될 수 있다는 것을 보여준다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 제로일 수 있다. 따라서, 판독 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 (상태 변경으로 인한) 공유 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있으며, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 것이며, 도시된 예에서, SSV 캐시의 수는 열(61)에 도시된 바와 같이 제로에 있을 것이다. 더욱이, 열(63)에 도시된 바와 같이 유효 비트에 대해서나, 열(65)에 도시된 바와 같이 크로스 스누핑 동작에 대해서 어떠한 동작이 취해질 필요가 없을 수 있다.
도 3d는 예를 들어 이미 논의된 호스트 프로세서(14)(도 1a)와 같은 호스트 프로세서에 결합된 캐시로부터 발신하는 스누핑 무효화 동작을 위한 일관성 프로토콜 테이블(50)을 도시한다. 도시된 예에서, 테이블(50)의 제 2 로우(64)는 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 수정 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 경우에는 스누핑 무효화 동작이 그래픽 캐시 패브릭으로 지향될 수 있다는 것을 보여준다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 제로일 것이다. 부가적으로, 스누핑 무효화 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 무효 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있고, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 것이며, 도시된 예에서, SSV 캐시의 수는 열(61)에 도시된 바와 같이 제로일 것이다. 더욱이, 열(63)에 도시된 바와 같이 유효 비트에 대해서나, 열(65)에 도시된 바와 같이 크로스 스누핑 동작에 대해서 어떠한 동작이 취해질 필요가 없을 수 있다.
대조적으로, 테이블(50)의 제 3 로우(66)는 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 수정 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 공유 상태에 있을 경우에는 스누핑 무효화 동작이 캐시 패브릭으로 지향될 수 있다는 것을 보여준다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 하나일 수 있다. 부가적으로, 스누핑 무효화 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 무효 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있고, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 (상태 변경으로 인한) 무효 상태에 있을 것이며, 도시된 예에서, SSV 캐시의 수는 열(61)에서와 같이 제로로 변경할 것이다. 유효 비트는 열(63)에 도시된 바와 같이 발행 L1 캐시에서 클리어될 수 있고, 열(65)에 도시된 바와 같이 스누핑 무효화 동작("Snp Inv")이 수행될 수 있다. 유사한 전환 및/또는 규칙은 테이블(46)의 나머지 부분에서 보여준 바와 같이 대응하는 메모리 라인이 L2 캐시에서 배타적, 공유 및/또는 무효 상태에 있는 스누핑 무효화 동작 시나리오에 대해 구현될 수 있다.
도 3e는 예를 들어 이미 논의된 호스트 프로세서(14)(도 1a)에 결합된 캐시와 같은 호스트 프로세서로부터 발신하는 스누프 데이터 동작을 위한 일관성 프로토콜 테이블(52)을 도시한다. 도시된 예에서, 테이블(52)의 제 10 로우(68)는 대응하는 메모리 라인이 열(47)에 도시된 바와 같이 L2 캐시에서 배타적 상태에 있고, 열(49)에 도시된 바와 같이 다른 L1 캐시에서 공유 상태에 있으며, 열(51)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 경우에는 스누프 데이터 동작이 그래픽 캐시 패브릭으로 지향될 수 있다는 것을 보여준다. 도시된 예에서, SSV 캐시의 수는 열(53)에 도시된 바와 같이 하나일 것이다. 부가적으로, 스누프 데이터 동작 후에, 메모리 라인은 열(55)에 도시된 바와 같이 L2 캐시에서 (상태 변경으로 인한) 공유 상태에 있고, 열(57)에 도시된 바와 같이 다른 L1 캐시에서 무효 상태에 있고, 열(59)에 도시된 바와 같이 발행 L1 캐시에서 무효 상태에 있을 것이며, 도시된 예에서, SSV 캐시의 수는 열(61)에 도시된 바와 같이 하나일 것이다. 더욱이, 열(63)에 도시된 바와 같이 유효 비트에 대해서나, 열(65)에 도시된 바와 같이 크로스 스누핑 동작에 대해서 어떠한 동작이 취해질 필요가 없을 수 있다. 유사한 전환 및/또는 규칙은 테이블(52)의 나머지 부분에서 보여준 바와 같이 대응하는 메모리 라인이 L2 캐시에서 수정, 공유 및/또는 무효 상태에 있는 스누프 데이터 동작 시나리오에 대해 구현될 수 있다.
도 4는 시스템(700)의 실시예를 도시한다. 실시예에서, 시스템(700)은 미디어 시스템일 수 있지만, 시스템(700)은 이러한 맥락으로 제한되지 않는다. 예를 들면, 시스템(700)은 퍼스널 컴퓨터(PC), 랩톱 컴퓨터, 울트라 랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인 휴대 정보 단말기(PDA), 셀룰러 전화기, 셀룰러 전화기/PDA의 조합, 텔레비전, 스마트 장치(예를 들어, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 장치(MID), 메시징 장치, 데이터 통신 장치 등에 집적될 수 있다. 따라서, 시스템(700)은 본 명세서에 기재된 바와 같이 비디오 비트스트림에 대한 캐시 일관성을 유지하기 위해 사용될 수 있다.
실시예에서, 시스템(700)은 시각적 콘텐츠를 제공하는 디스플레이(720)에 결합된 플랫폼(702)을 포함한다. 플랫폼(702)은 콘텐츠 서비스 장치(730) 또는 콘텐츠 전달 장치(740) 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 장치로부터 비디오 비트스트림 콘텐츠를 수신할 수 있다. 하나 이상의 내비게이션 특징을 포함하는 내비게이션 제어기(750)는 예를 들어 플랫폼(702) 및/또는 디스플레이(720)와 상호 작용하기 위해 사용될 수 있다. 이러한 구성 요소의 각각은 아래에서 더 상세히 설명된다.
실시예에서, 플랫폼(702)은 칩셋(705), 프로세서(710), 메모리(712), 저장소(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선부(718)의 임의의 조합을 포함할 수 있다. 칩셋(705)은 프로세서(710), 메모리(712), 저장소(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선부(718) 사이에서 상호 통신을 제공할 수 있다. 예를 들면, 칩셋(705)은 저장소(714)와의 상호 통신을 제공할 수 있는 (도시되지 않은) 저장 어댑터를 포함할 수 있다.
프로세서(710)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reduced Instruction Set Computer) 프로세서, x86 명령어 세트 호환 가능한 프로세서, 멀티 코어 또는 임의의 다른 마이크로 프로세서 또는 중앙 처리 장치(CPU)로서 구현될 수 있다. 실시예에서, 프로세서(710)는 듀얼 코어 프로세서, 듀얼 코어 모바일 프로세서 등을 포함할 수 있다.
메모리(712)는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM) 또는 정적 RAM(SRAM)과 같은 휘발성 메모리 장치로 구현될 수 있지만, 이에 제한되지 않는다.
저장소(714)는 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 장치, 부착된 저장 장치, 플래시 메모리, 배터리 백업 SDRAM(동기식 DRAM) 및/또는 네트워크 액세스 가능한 저장 장치와 같은 비휘발성 저장 장치로 구현될 수 있지만, 이에 제한되지 않는다. 실시예에서, 저장소(714)는 예를 들어 다수의 하드 드라이브가 포함될 때 가치있는 디지털 매체에 대한 저장 성능 강화 보호를 증대시키기 위한 기술을 포함할 수 있다.
그래픽 서브시스템(715)은 디스플레이를 위한 정지 영상 또는 동영상의 처리를 수행할 수 있다. 그래픽 서브 시스템(715)은 예를 들어 그래픽 처리 유닛(GPU) 또는 시각적 처리 유닛(VPU)일 수 있다. 따라서, 그래픽 서브시스템(715)은 이미 논의된 그래픽 프로세서(20)(도 1a)를 포함할 수 있다. 게다가, 프로세서(710)는 메모리(712), 저장소(714) 또는 다른 적절한 소스로부터 획득된 명령어를 통해 이미 논의된 호스트 프로세서(14)(도 1a) 중 하나 이상으로서 동작하도록 구성될 수 있다. 아날로그 또는 디지털 인터페이스는 그래픽 서브시스템(715) 및 디스플레이(720)를 통신 가능하게 결합하는 데 사용될 수 있다. 예를 들면, 인터페이스는 고화질 멀티미디어 인터페이스, 디스플레이 포트, 무선 HDMI 및/또는 무선 HD 호환 기술 중 어느 하나일 수 있다. 그래픽 서브시스템(715)은 프로세서(710) 또는 칩셋(705)에 집적될 수 있다. 그래픽 서브시스템(715)은 칩셋(705)에 통신 가능하게 결합된 독립형 카드일 수 있다.
본 명세서에서 설명된 그래픽 및/또는 비디오 처리 기술은 다양한 하드웨어 구조로 구현될 수 있다. 예를 들면, 그래픽 및/또는 비디오 기능은 칩셋 내에 집적될 수 있다. 대안으로, 별개의 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 또 다른 실시예로서, 그래픽 및/또는 비디오 기능은 멀티 코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 추가의 실시예에서, 이러한 기능은 가전 장치에서 구현될 수 있다.
무선부(718)는 다양한 적절한 무선 통신 기술을 이용하여 신호를 송수신할 수 있는 하나 이상의 무선부를 포함할 수 있다. 이러한 기술은 하나 이상의 무선 네트워크를 통한 통신을 포함할 수 있다. 예시적인 무선 네트워크는 무선 근거리 통신망(WLAN), 무선 개인 영역 네트워크(WPAN), 무선 도시 지역 통신망(WMAN), 셀룰러 네트워크 및 위성 네트워크를 포함한다(그러나 이에 제한되지 않는다). 이러한 네트워크를 통한 통신에서, 무선부(718)는 어떤 버전의 하나 이상의 적용 가능한 표준에 따라 동작할 수 있다.
실시예에서, 디스플레이(720)는 임의의 텔레비전 타입의 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(720)는 예를 들어 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전형 장치 및/또는 텔레비전을 포함할 수 있다. 디스플레이(720)는 디지털 및/또는 아날로그일 수 있다. 실시예에서, 디스플레이(720)는 홀로그래픽 디스플레이일 수 있다. 또한, 디스플레이(720)는 시각적 투사(visual projection)를 수용할 수 있는 투명한 표면일 수 있다. 이러한 투사는 다양한 형태의 정보, 이미지 및/또는 객체를 전달할 수 있다. 예를 들면, 이러한 투사는 모바일 증강 현실(MAR) 애플리케이션에 대한 시각적 오버레이(overlay)일 수 있다. 하나 이상의 소프트웨어 애플리케이션(716)의 제어에 따라, 플랫폼(702)은 디스플레이(720) 상에 사용자 인터페이스(722)를 표시할 수 있다.
실시예에서, 콘텐츠 서비스 장치(730)는 어떤 국내외 및/또는 독립적인 서비스에 의해 호스팅될 수 있고, 따라서 예를 들어 인터넷을 통해 플랫폼(702)에 접근 가능할 수 있다. 콘텐츠 서비스 장치(730)는 플랫폼(702) 및/또는 디스플레이(720)에 결합될 수 있다. 플랫폼(702) 및/또는 콘텐츠 서비스 장치(730)는 미디어 정보를 네트워크(760)로 전달하고 네트워크(760)로부터 전달하도록(예를 들어, 송신 및/또는 수신하도록) 네트워크(760)에 결합될 수 있다. 콘텐츠 전달 장치(740)는 또한 플랫폼(702) 및/또는 디스플레이(720)에 결합될 수 있다.
실시예에서, 콘텐츠 서비스 장치(730)는 케이블 텔레비전 박스, 개인용 컴퓨터, 네트워크, 전화, 인터넷 가능 장치 또는 디지털 정보 및/또는 콘텐츠를 전달할 수 있는 어플라이언스(appliance), 및 네트워크(760)를 통하거나 직접 콘텐츠 제공자와 플랫폼(702) 및/또는 디스플레이(720) 사이로 콘텐츠를 단방향 또는 양방향 통신할 수 있는 임의의 다른 유사한 장치를 포함할 수 있다. 콘텐츠는 네트워크(760)를 통해 시스템(700) 및 콘텐츠 제공자의 구성 요소 중 어느 하나로부터 그리고 어느 하나로 단방향 및/또는 양방향 통신될 수 있다는 것이 이해될 것이다. 콘텐츠의 예는 예를 들어, 비디오, 음악, 의료 및 게임 정보 등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
콘텐츠 서비스 장치(730)는 미디어 정보, 디지털 정보 및/또는 다른 콘텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신한다. 콘텐츠 제공자의 예는 임의의 케이블 또는 위성 텔레비전 또는 무선부 또는 인터넷 콘텐츠 제공자를 포함할 수 있다. 제공된 예는 실시예를 제한하는 것으로 의미되지 않는다.
실시예에서, 플랫폼(702)은 하나 이상의 내비게이션 특징을 갖는 내비게이션 제어기(750)로부터 제어 신호를 수신할 수 있다. 제어기(750)의 내비게이션 특징은 예를 들어 사용자 인터페이스(722)와 상호 작용하는데 사용될 수 있다. 실시예에서, 내비게이션 제어기(750)는 사용자가 공간(예를 들어, 연속적 및 다차원) 데이터를 컴퓨터에 입력하도록 하는 컴퓨터 하드웨어 구성 요소(특히 인간 인터페이스 장치)일 수 있는 포인팅 장치일 수 있다. 그래픽 사용자 인터페이스(GUI), 및 텔레비전 및 모니터와 같은 많은 시스템은 사용자가 데이터를 제어하여 물리적 제스처(gesture)를 컴퓨터 또는 텔레비전에 제공할 수 있다.
제어기(750)의 내비게이션 특징의 이동은 포인터, 커서, 포커스 링 또는 디스플레이 상에 표시된 다른 시각적 표시자(visual indicator)의 이동에 의해 디스플레이(디스플레이(720)) 상에 에코(echo)될 수 있다. 예를 들면, 소프트웨어 애플리케이션(716)의 제어하에, 내비게이션 제어기(750)에 위치된 내비게이션 특징은 예를 들어 사용자 인터페이스(722) 상에 표시된 가상 내비게이션 특징으로 매핑될 수 있다. 실시예에서, 제어기(750)는 별도의 구성 요소가 아니라 플랫폼(702) 및/또는 디스플레이(720)으로 집적될 수 있다. 그러나, 실시예는 요소 또는 본 명세서에 보여주거나 설명된 맥락으로 제한되지 않는다.
실시예에서, (도시되지 않은) 드라이버는 사용자가 예를 들어 활성화될 때에 초기 부팅 후 버튼의 터치로 텔레비전처럼 플랫폼(702)을 즉시 턴 온 및 턴 오프할 수 있도록 하기 위한 기술을 포함할 수 있다. 프로그램 논리는 플랫폼이 턴 "오프"될 때 플랫폼(702)이 콘텐츠를 미디어 어댑터 또는 다른 콘텐츠 서비스 장치(730) 또는 콘텐츠 전달 장치(740)로 스트리밍하도록 할 수 있다. 게다가, 칩셋(705)은 예를 들어 5.1 서라운드 사운드 오디오 및/또는 고화질 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 지원부를 포함할 수 있다. 드라이버는 집적된 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 실시예에서, 그래픽 드라이버는 주변 구성 요소 상호 연결(PCI) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예에서, 시스템(700)에 도시된 구성 요소 중 어느 하나 이상이 집적될 수 있다. 예를 들면, 플랫폼(702) 및 콘텐츠 서비스 장치(730)가 집적될 수 있거나, 플랫폼(702) 및 콘텐츠 전달 장치(740)가 집적될 수 있으며, 또는 예를 들어 플랫폼(702), 콘텐츠 서비스 장치(730) 및 콘텐츠 전달 장치(740)가 집적될 수 있다. 다양한 실시예에서, 플랫폼(702) 및 디스플레이(720)는 집적된 유닛일 수 있다. 디스플레이(720) 및 콘텐츠 서비스 장치(730)는 집적될 수 있거나, 디스플레이(720) 및 콘텐츠 전달 장치(740)가 예를 들어 집적될 수 있다. 이러한 예는 실시예를 제한하는 것으로 의미되지 않는다.
다양한 실시예에서, 시스템(700)은 무선 시스템, 유선 시스템 또는 둘다의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현되는 경우, 시스템(700)은 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 논리 등과 같은 무선 공유 매체를 통해 통신하기에 적합한 구성 요소 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 부분을 포함할 수 있다. 유선 시스템으로서 구현되는 경우, 시스템(700)은 입/출력(I/O) 어댑터, I/O 어댑터를 상응하는 유선 통신 매체와 연결하기 위한 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 제어기, 비디오 제어기, 오디오 제어기 등과 같은 유선 통신 매체를 통해 통신하기에 적합한 구성 요소 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 예는 와이어, 케이블, 금속 배선, 인쇄 회로 기판(PCB), 백플레인, 스위치 패브릭, 반도체 재료, 연선, 동축 케이블, 광섬유 등을 포함할 수 있다.
플랫폼(702)은 정보를 전달하기 위해 하나 이상의 논리적 또는 물리적 채널을 확립할 수 있다. 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자에 대해 의미하는 콘텐츠를 나타내는 임의의 데이터를 나타낼 수 있다. 콘텐츠의 예는 예를 들어 음성 대화로부터의 데이터, 화상 회의, 스트리밍 비디오, 전자 메일("이메일") 메시지, 음성 메일 메시지, 영숫자 심볼, 그래픽, 이미지, 비디오, 텍스트 등을 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어 음성 정보, 침묵 주기(silence period), 배경 잡음, 편안한 잡음 및 톤 등일 수 있다. 제어 정보는 자동화 시스템을 위한 명령, 명령어 또는 제어 워드를 나타내는 임의의 데이터를 나타낼 수 있다. 예를 들면, 제어 정보는 시스템을 통해 미디어 정보를 라우팅하는데 사용될 수 있거나, 미리 정해진 방식으로 미디어 정보를 처리하기 위해 노드에 지시할 수 있다. 그러나, 이러한 실시예는 요소 또는 도 4에 도시되거나 설명된 맥락으로 제한되지 않는다.
상술한 바와 같이, 시스템(700)은 가변 물리적 스타일 또는 폼 팩터로 구현될 수 있다. 도 5는 시스템(700)이 구현될 수 있는 소형 폼 팩터 장치(800)의 실시예를 도시한다. 실시예에서, 예를 들면, 장치(800)는 무선 기능을 갖는 모바일 컴퓨팅 장치로서 구현될 수 있다. 모바일 컴퓨팅 장치는 처리 시스템과, 예를 들어 하나 이상의 배터리와 같은 모바일 전원 또는 공급 장치를 갖는 임의의 장치를 나타낼 수 있다.
상술한 바와 같이, 모바일 컴퓨팅 장치의 예는 퍼스널 컴퓨터(PC), 랩톱 컴퓨터, 울트라 랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인 휴대 정보 단말기(PDA), 셀룰러 전화기, 셀룰러 전화기/PDA의 조합, 텔레비전, 스마트 장치(예를 들어, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 장치(MID), 메시징 장치, 데이터 통신 장치 등을 포함할 수 있다.
모바일 컴퓨팅 장치의 예는 또한 손목 컴퓨터, 손가락 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트 클립 컴퓨터, 팔 밴드 컴퓨터, 구두 컴퓨터, 의류 컴퓨터 및 다른 착용형 컴퓨터와 같이 사람에 의해 착용되도록 배치되는 컴퓨터를 포함할 수 있다. 실시예에서, 예를 들면, 모바일 컴퓨팅 장치는 컴퓨터 애플리케이션뿐만 아니라 음성 통신 및/또는 데이터 통신을 실행할 수 있는 스마트 폰으로 구현될 수 있다. 일부 실시예가 예로서 스마트 폰으로 구현되는 모바일 컴퓨팅 장치로 설명될 수 있지만, 다른 실시예는 또한 다른 무선 모바일 컴퓨팅 장치를 이용하여 구현될 수 있다는 것이 이해될 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
도 5에 도시된 바와 같이, 장치(800)는 하우징(802), 디스플레이(804), 입/출력(I/O) 장치(806) 및 안테나(808)를 포함할 수 있다. 장치(800)는 또한 내비게이션 특징(812)을 포함할 수 있다. 디스플레이(804)는 모바일 컴퓨팅 장치에 적절한 정보를 표시하기 위해 임의의 적합한 디스플레이 유닛을 포함할 수 있다. I/O 장치(806)는 정보를 모바일 컴퓨팅 장치에 입력하기 위한 임의의 적합한 I/O 장치를 포함할 수 있다. I/O 장치(806)에 대한 예는 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키, 버튼, 스위치, 로커 스위치, 마이크로폰, 스피커, 음성 인식 장치 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰을 통해 장치(800)로 입력될 수 있다. 이러한 정보는 음성 인식 장치에 의해 디지털화될 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
추가적인 주석 및 예:
예 1은 그래픽 캐시 계층 구조를 구현하기 위한 시스템을 포함할 수 있으며, 이러한 시스템은 시각적 콘텐츠를 제공하기 위한 디스플레이와, 하나 이상의 호스트 프로세서 및 시스템 메모리에 결합된 시스템 캐시와, 시스템 캐시에 결합된 그래픽 인터페이스와, 그래픽 인터페이스에 결합된 그래픽 프로세서를 포함한다. 그래픽 프로세서는 시각적 콘텐츠와 관련된 복수의 작업 항목을 실행하기 위한 계산 슬라이스의 물리적으로 분산된 세트와, 그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지하기 위한 캐시 패브릭을 포함할 수 있다. 캐시 패브릭은 각각의 L1 캐시가 계산 슬라이스의 실행 블록에 전용되는 복수의 레벨 1(L1) 캐시와, 하나 이상의 메모리 라인의 일관성이 복수의 L1 캐시 및 공유 캐시 구조에 걸쳐 유지되어야 하는 물리적으로 분산된 공유 캐시 구조와, 하나 이상의 메모리 라인을 추적하기 위한 복수의 크로스바 노드를 포함할 수 있으며, 각각의 크로스바 노드는 계산 슬라이스에 전용된다. 복수의 크로스바 노드는 추가로 하나 이상의 호스트 프로세서로부터 발신하는 하나 이상의 스누프 요청을 그래픽 인터페이스를 통해 공유 캐시 구조 및 복수의 L1 캐시로 분산시키고, 공유 캐시 구조 및 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하며, 하나 이상의 스누핑 결과를 시스템 캐시로 전달할 수 있다.
예 2는 예 1의 시스템을 포함할 수 있고, 공유 캐시 구조는 각각의 L2 캐시가 계산 슬라이스에 전용되는 복수의 독립적인 레벨 2(L2) 캐시를 포함한다.
예 3은 예 1의 시스템을 포함할 수 있고, 공유 캐시 구조는 복수의 뱅크를 갖는 레벨 2(L2) 캐시를 포함하고, 공유 캐시 구조는 복수의 뱅크에 걸쳐 하나 이상의 메모리 라인 중 적어도 하나를 해싱하기 위한 것이다.
예 4는 예 1 내지 3 중 어느 하나의 시스템을 포함할 수 있고, 캐시 패브릭은 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하기 위한 것이다.
예 5는 복수의 작업 항목을 실행하기 위한 계산 슬라이스의 물리적으로 분산된 세트와, 그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지하기 위한 캐시 패브릭을 포함하는 그래픽 프로세서를 포함할 수 있다.
예 6은 예 5의 그래픽 프로세서를 포함할 수 있으며, 캐시 패브릭은 각각의 L1 캐시가 계산 슬라이스의 실행 블록에 전용되는 복수의 레벨 1(L1) 캐시와, 하나 이상의 메모리 라인의 일관성이 복수의 L1 캐시 및 공유 캐시 구조에 걸쳐 유지되어야 하는 물리적으로 분산된 공유 캐시 구조와, 하나 이상의 메모리 라인을 추적하기 위한 복수의 크로스바 노드를 포함하며, 각각의 크로스바 노드는 계산 슬라이스에 전용된다.
예 7은 예 6의 그래픽 프로세서를 포함할 수 있고, 공유 캐시 구조는 각각의 L2 캐시가 계산 슬라이스에 전용되는 복수의 독립적인 레벨 2(L2) 캐시를 포함한다.
예 8은 예 6의 그래픽 프로세서를 포함할 수 있고, 공유 캐시 구조는 복수의 뱅크를 갖는 레벨 2(L2) 캐시를 포함하고, 공유 캐시 구조는 복수의 뱅크에 걸쳐 하나 이상의 메모리 라인 중 적어도 하나를 해싱하기 위한 것이다.
예 9는 예 6의 그래픽 프로세서를 포함할 수 있고, 복수의 크로스바 노드는 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 공유 캐시 구조 및 복수의 L1 캐시로 분산시키기 위한 것이다.
예 10은 예 9의 그래픽 프로세서를 포함할 수 있고, 복수의 크로스바 노드는 공유 캐시 구조 및 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하고, 하나 이상의 스누핑 결과를 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로 전달하기 위한 것이다.
예 11은 예 5 내지 10 중 어느 하나의 그래픽 프로세서를 포함할 수 있고, 캐시 패브릭은 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하기 위한 것이다.
예 12는 그래픽 캐시 계층 구조를 구현하기 위한 시스템을 포함할 수 있으며, 이러한 시스템은 시각적 콘텐츠를 제공하기 위한 디스플레이 및 그래픽 프로세서를 포함하고, 그래픽 프로세서는 시각적 콘텐츠와 관련된 복수의 작업 항목을 실행하기 위한 계산 슬라이스의 물리적으로 분산된 세트와, 그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지하기 위한 캐시 패브릭을 포함한다.
예 13은 예 12의 시스템을 포함할 수 있으며, 캐시 패브릭은 각각의 L1 캐시가 계산 슬라이스의 실행 블록에 전용되는 복수의 레벨 1(L1) 캐시와, 하나 이상의 메모리 라인의 일관성이 복수의 L1 캐시 및 공유 캐시 구조에 걸쳐 유지되어야 하는 물리적으로 분산된 공유 캐시 구조와, 하나 이상의 메모리 라인을 추적하기 위한 복수의 크로스바 노드를 포함하며, 각각의 크로스바 노드는 계산 슬라이스에 전용된다.
예 14는 예 13의 시스템을 포함할 수 있고, 공유 캐시 구조는 각각의 L2 캐시가 계산 슬라이스에 전용되는 복수의 독립적인 레벨 2(L2) 캐시를 포함한다.
예 15는 예 13의 시스템을 포함할 수 있고, 공유 캐시 구조는 복수의 뱅크를 갖는 레벨 2(L2) 캐시를 포함하고, 공유 캐시 구조는 복수의 뱅크에 걸쳐 하나 이상의 메모리 라인 중 적어도 하나를 해싱하기 위한 것이다.
예 16은 예 13의 시스템을 포함할 수 있고, 복수의 크로스바 노드는 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 공유 캐시 구조 및 복수의 L1 캐시로 분산시키기 위한 것이다.
예 17은 예 16의 시스템을 포함할 수 있고, 하나 이상의 호스트 프로세서 및 시스템 메모리에 결합된 시스템 캐시와, 시스템 캐시에 결합된 그래픽 인터페이스를 더 포함하며, 복수의 크로스바 노드는 공유 캐시 구조 및 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하고, 하나 이상의 스누핑 결과를 그래픽 인터페이스를 통해 시스템 캐시로 전달하기 위한 것이다.
예 18은 예 12 내지 17 중 어느 하나의 시스템을 포함할 수 있고, 캐시 패브릭은 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하기 위한 것이다.
예 19는 그래픽 프로세서를 동작하는 방법을 포함할 수 있고, 이러한 방법은 계산 슬라이스의 물리적으로 분산된 세트에 의해 복수의 작업 항목을 실행하는 단계와, 캐시 패브릭에 의해, 그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지하는 단계를 포함한다.
예 20은 예 19의 방법을 포함할 수 있고, 복수의 크로스바 노드에 의해 하나 이상의 메모리 라인을 추적하는 단계를 더 포함하며, 하나 이상의 메모리 라인의 일관성은 복수의 레벨 1(L1) 캐시 및 물리적으로 분산된 캐시 구조에 걸쳐 유지되고, 각각의 L1 캐시는 계산 슬라이스의 실행 블록에 전용되고, 각각의 크로스바 노드는 계산 슬라이스에 전용된다.
예 21은 예 20의 방법을 포함할 수 있고, 공유 캐시 구조는 하나 이상의 메모리 라인을 추적하기 위해 복수의 독립적인 레벨 2(L2) 캐시를 사용하고, 각각의 L2 캐시는 계산 슬라이스에 전용된다.
예 22는 예 20의 방법을 포함할 수 있고, 레벨 2(L2) 캐시의 복수의 뱅크에 걸쳐 하나 이상의 메모리 라인 중 적어도 하나를 해싱하는 단계를 더 포함한다.
예 23은 예 20의 방법을 포함할 수 있고, 복수의 크로스바 노드에 의해 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 공유 캐시 구조 및 복수의 L1 캐시로 분산시키는 단계를 더 포함한다.
예 24는 예 23의 방법을 포함할 수 있고, 복수의 크로스바 노드에 의해 공유 캐시 구조 및 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하는 단계와, 복수의 크로스바 노드에 의해 하나 이상의 스누핑 결과를 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로 전달하는 단계를 더 포함한다.
예 25는 예 19 내지 24 중 어느 하나의 방법을 포함할 수 있고, 캐시 패브릭에 의해 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하는 단계를 더 포함한다.
예 26은 그래픽 캐시 계층 구조를 구현하기 위한 시스템을 포함할 수 있으며, 이러한 시스템은 계산 슬라이스의 물리적으로 분산된 세트에 의해 복수의 작업 항목을 실행하기 위한 수단과, 캐시 패브릭에 의해 그래픽 프로 이상의 메모리 라인의 일관성을 유지하기 위한 수단을 포함한다.
예 27은 예 26의 시스템을 포함할 수 있으며, 복수의 크로스바 노드에 의해 하나 이상의 메모리 라인을 추적하기 위한 수단을 더 포함하고, 하나 이상의 메모리 라인의 일관성은 복수의 레벨 1(L1) 캐시 및 물리적으로 분산된 캐시 구조에 걸쳐 유지되어야 하고, 각각의 크로스바 노드는 계산 슬라이스에 전용된다.
예 28은 예 27의 시스템을 포함할 수 있고, 공유 캐시 구조는 하나 이상의 메모리 라인을 추적하기 위해 복수의 독립적인 레벨 2(L2) 캐시를 사용하기 위한 것이고, 각각의 L2 캐시는 계산 슬라이스에 전용된다.
예 29는 예 27의 시스템을 포함할 수 있고, 레벨 2(L2) 캐시의 복수의 뱅크에 걸쳐 하나 이상의 메모리 라인 중 적어도 하나를 해싱하기 위한 수단을 더 포함한다.
예 30은 예 27의 시스템을 포함할 수 있고, 복수의 크로스바 노드에 의해 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 공유 캐시 구조 및 복수의 L1 캐시로 분산시키기 위한 수단을 더 포함한다.
예 31은 예 30의 시스템을 포함할 수 있고, 복수의 크로스바 노드에 의해 공유 캐시 구조 및 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하기 위한 수단과, 복수의 크로스바 노드에 의해 하나 이상의 스누핑 결과를 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로 전달하기 위한 수단을 더 포함한다.
예 32는 예 26 내지 31 중 어느 하나의 시스템을 포함할 수 있고, 캐시 패브릭에 의해 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하기 위한 수단을 더 포함한다.
따라서, 기술은 집적 및 부착된 GPU 둘다에서 서로 다른 시스템 구성 요소 사이의 일관성 메모리 패브릭을 달성할 수 있으며, 호스트 프로세서 및 그래픽 프로세서의 내부 캐시는 서로에 잘보인다. 패브릭은 배리어, 메모리 펜스 및 정렬되지 않은 원자와 같은 조잡한 솔루션에 의존하지 않고 GPU 상에서 작업 항목과 작업 그룹 사이의 순차적 일관성을 유지하는 연동된 하드웨어 솔루션을 제공할 수 있다. 더욱이, 패브릭은 하드웨어 플러시 및 소프트웨어 스택 호출의 부정적인 성능 영향을 발생시키지 않고 메모리 일관성을 보장할 수 있다. 전문화된 소프트웨어 스택 프로그램에 대한 의존도를 제거하면은 또한 이러한 시스템을 플랫폼 및 사용 시나리오의 넓은 범위에 대한 실행 가능한 대안으로 할 수 있다.
다양한 실시예는 하드웨어 요소, 소프트웨어 요소 또는 둘의 조합을 사용하여 구현될 수 있다. 하드웨어 요소의 예는 프로세서, 마이크로 프로세서, 회로, 회로 요소(예를 들어, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, 주문형 집적 회로(ASIC), 프로그램 가능한 논리 장치(PLD), 디지털 신호 프로세서(DSP), 필드 프로그램 가능한 게이트 어레이(FPGA), 논리 게이트, 레지스터, 반도체 장치, 칩, 마이크로 칩, 칩셋 등을 포함할 수 있다. 소프트웨어의 예는 소프트웨어 구성 요소, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 절차, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 계산 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼 또는 이의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 이용하여 구현되는지를 판단하는 것은 원하는 계산 속도, 전력 레벨, 열 허용 오차, 처리 주기 버짓, 입력 데이터 전송 속도, 출력 데이터 전송 속도, 메모리 자원, 데이터 버스 속도 및 다른 설계 또는 성능 제약과 같은 다수의 요인에 따라 달라질 수 있다.
적어도 하나의 실시예 중 하나 이상의 양태는 대표적인 명령어가 머신에 의해 판독될 때에 머신가 본 명세서에서 설명된 기술을 수행하기 위한 논리를 제조하도록 하는 프로세서 내의 다양한 논리를 나타내는 머신 판독 가능한 매체 상에 저장된 대표적인 명령어에 의해 구현될 수 있다. "IP 코어"로서 알려진 이러한 표현은 유형의(tangible) 머신 판독 가능한 매체에 저장되고, 실제로 논리 또는 프로세서를 만드는 제조 머신에 로드(load)하기 위해 다양한 고객 또는 제조 설비에 공급될 수 있다.
실시예는 모든 타입의 반도체 집적 회로("IC") 칩과 함께 사용하는데 적용 가능하다. 이러한 IC 칩의 예는 프로세서, 제어기, 칩셋 구성 요소, 프로그램 가능한 논리 어레이(PLA), 메모리 칩, 네트워크 칩 등을 포함하지만 이에 제한되지 않는다. 게다가, 도면의 일부에서, 신호 도체 선은 선으로 나타낸다. 일부는 더 많은 구성 신호 경로를 나타내고, 숫자 라벨을 가지고, 다수의 구성 신호 경로를 나타내며/내거나, 하나 이상의 단부에 화살표를 가지며, 기본 정보 흐름 방향을 나타내기 위해 서로 다를 수 있다. 그러나, 이것은 제한적인 방식으로 해석되지 않아야 한다. 오히려, 이러한 추가적인 상세 사항은 회로를 쉽게 이해하기 용이하게 하기 위해 하나 이상의 예시적인 실시예와 관련하여 사용될 수 있다. 부가적인 정보를 갖든 안갖든 임의의 나타낸 신호선은 실제로 여러 방향으로 이동할 수 있고, 임의의 적절한 타입의 신호 방식, 예를 들어, 차동 쌍으로 구현된 디지털 또는 아날로그 선, 광섬유 선 및/또는 단일 종단 선으로 구현될 수 있는 하나 이상의 신호를 포함할 수 있다.
예시적인 크기/모델/값/범위가 주어졌지만, 실시예는 이에 제한되지 않는다. 제조 기술(예를 들어, 포토리소그래피)은 시간이 지나면서 발달함에 따라, 작은 크기의 장치가 제조될 수 있는 것으로 기대된다. 게다가, IC 칩 및 다른 구성 요소에 대한 잘 알려진 전력/접지 연결부는 예시 및 논의의 단순화를 위해 실시예의 어떤 양태를 모호하지 않도록 하기 위해 도면 내에 도시되거나 도시되지 않을 수 있다. 더욱이, 모호한 실시예를 회피하기 위해 배치가 블록도 형태로 도시될 수 있고, 또한 이러한 블록도의 구현에 대해 특정하는 사실을 고려하여, 배치는 실시예가 구현되는 플랫폼에 크게 의존하며, 즉, 이러한 특정한 것은 당연히 당업자의 범위 내에 있어야 한다. 특정한 상세 사항(예를 들어, 회로)이 예시적인 실시예를 나타내기 위해 설명되는 경우, 실시예는 이러한 특정한 상세 사항없이나 변형으로 실시될 수 있다는 것이 당업자에게는 자명해야 한다. 따라서, 이러한 설명은 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다.
일부 실시예는 예를 들어 머신에 의해 실행될 경우 머신가 실시예에 따라 방법 및/또는 동작을 수행하도록 할 수 있는 명령어 또는 명령어의 세트를 저장할 수 있는 머신 또는 유형의 컴퓨터 판독 가능한 매체 또는 물품을 이용하여 구현될 수 있다. 이러한 머신는 예를 들어 임의의 적절한 처리 플랫폼, 컴퓨팅 플랫폼, 컴퓨팅 장치, 처리 장치, 컴퓨팅 시스템, 처리 시스템, 컴퓨터, 프로세서 등을 포함할 수 있고, 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합을 이용하여 구현될 수 있다. 머신 판독 가능한 매체 또는 물품은 예를 들어 임의의 적절한 타입의 메모리 유닛, 메모리 장치, 메모리 물품, 메모리 매체, 저장 장치, 저장 물품, 저장 매체 및/또는 저장 유닛, 예를 들어, 메모리, 이동식 또는 비이동식 매체, 소거 가능 또는 비소거 가능한 매체, 기록 가능 또는 재기록 가능한 매체, 디지털 또는 아날로그 매체, 하드 디스크, 플로피 디스크, CD-ROM(Compact Disk Read Only Memory), CD-R(Compact Disk Recordable), CD-RW(Compact Disk ReWriteable), 광 디스크, 자기 매체, 자기 광학 매체, 이동식 메모리 카드 또는 디스크, 다양한 타입의 DVD(Digital Versatile Disk), 테이프, 카세트 등을 포함할 수 있다. 명령어는 소스 코드, 컴파일된 코드, 해석된 코드, 실행 가능한 코드, 정적 코드, 동적 코드, 암호화된 코드 등과 같은 임의의 적절한 타입의 코드를 포함할 수 있고, 임의의 적절한 고 레벨, 저 레벨, 객체 지향, 시각, 컴파일 및/또는 해석된 프로그래밍 언어를 이용하여 구현될 수 있다.
달리 구체적으로 언급되지 않으면, "처리", "컴퓨팅", "계산", "판단" 등과 같은 용어는 컴퓨팅 시스템의 레지스터 및/또는 메모리 내의 물리량(예를 들어, 전자)으로서 표현된 데이터를 조작하여, 컴퓨팅 시스템의 메모리, 레지스터 또는 다른 이러한 정보 저장소, 전송 또는 디스플레이 장치 내의 물리량으로서 유사하게 표현된 다른 데이터로 변환하는 컴퓨터 또는 컴퓨팅 시스템의 동작 및/또는 프로세스를 나타내는 것으로 이해될 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
"결합"이라는 용어는 본 명세서에서 해당 구성 요소 사이의 직접 또는 간접 의 일정 타입의 관계를 나타내는 데 사용될 수 있고, 전기적, 머신적, 유동적, 광학적, 전자기적, 전기 머신적 또는 다른 연결에 적용할 수 있다. 게다가, "제 1", "제 2" 등이라는 용어는 본 명세서에서 논의를 용이하게 하는 데에만 사용될 수 있고, 달리 표시되지 않으면 특정한 시간적 또는 연대기적 의미를 갖지 않는다.
당업자는 실시예의 광범한 기술이 다양한 형태로 구현될 수 있다는 것을 상술한 설명으로부터 이해할 것이다. 따라서, 이 실시예가 그 특정 예와 관련하여 설명되었지만, 다른 수정이 도면, 명세서 및 다음 청구범위의 검토 시 실시자에게 명백해질 것이므로 실시예의 진정한 범위는 제한되지 않아야 한다.

Claims (25)

  1. 시스템으로서,
    시각적 콘텐츠를 제공하기 위한 디스플레이와,
    하나 이상의 호스트 프로세서 및 시스템 메모리에 결합된 시스템 캐시와,
    상기 시스템 캐시에 결합된 그래픽 인터페이스와,
    상기 그래픽 인터페이스에 결합된 그래픽 프로세서를 포함하되,
    상기 그래픽 프로세서는,
    상기 시각적 콘텐츠와 관련된 복수의 작업 항목을 실행하기 위한 계산 슬라이스(computing slices)의 물리적으로 분산된 세트(a physically distributed set)와,
    상기 그래픽 프로세서, 상기 시스템 메모리 및 상기 하나 이상의 호스트 프로세서에 걸쳐 상기 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성(a coherency)을 유지하기 위한 캐시 패브릭(a cache fabric)을 포함하고,
    상기 캐시 패브릭은,
    복수의 레벨 1(L1) 캐시 - 각각의 L1 캐시는 계산 슬라이스의 실행 블록에 전용됨 - 와,
    물리적으로 분산된 공유 캐시 구조 - 상기 하나 이상의 메모리 라인의 일관성이 상기 복수의 L1 캐시 및 상기 물리적으로 분산된 공유 캐시 구조에 걸쳐 유지됨 - 와,
    상기 하나 이상의 메모리 라인을 추적하기 위한 복수의 크로스바 노드 - 각각의 크로스바 노드는 계산 슬라이스에 전용되고, 상기 복수의 크로스바 노드는 추가로 상기 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청(snoop requests)을 상기 그래픽 인터페이스를 통해 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로 분산시키고, 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하고, 상기 하나 이상의 스누핑 결과를 상기 시스템 캐시로 전달함 - 를 포함하는
    시스템.
  2. 제 1 항에 있어서,
    상기 공유 캐시 구조는 각각의 L2 캐시가 계산 슬라이스에 전용되는 복수의 독립적인 레벨 2(L2) 캐시를 포함하는
    시스템.
  3. 제 1 항에 있어서,
    상기 공유 캐시 구조는 복수의 뱅크를 갖는 레벨 2(L2) 캐시를 포함하고, 상기 공유 캐시 구조는 상기 복수의 뱅크에 걸쳐 상기 하나 이상의 메모리 라인 중 적어도 하나를 해싱하는(hash)
    시스템.
  4. 제 1 항에 있어서,
    상기 캐시 패브릭은 상기 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정(modified), 배타적(exclusive), 공유(shared), 무효(MESI) 프로토콜을 사용하는
    시스템.
  5. 그래픽 프로세서로서,
    복수의 작업 항목을 실행하기 위한 계산 슬라이스의 물리적으로 분산된 세트와,
    그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 상기 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지하기 위한 캐시 패브릭을 포함하는
    그래픽 프로세서.
  6. 제 5 항에 있어서,
    상기 캐시 패브릭은,
    각각의 L1 캐시가 계산 슬라이스의 실행 블록에 전용되는 복수의 레벨 1(L1) 캐시와,
    물리적으로 분산된 공유 캐시 구조 ― 상기 하나 이상의 메모리 라인의 일관성은 상기 복수의 L1 캐시 및 상기 물리적으로 분산된 공유 캐시 구조에 걸쳐 유지됨 ― 와,
    상기 하나 이상의 메모리 라인을 추적하기 위한 복수의 크로스바 노드 - 각각의 크로스바 노드는 계산 슬라이스에 전용됨 - 를 포함하는
    그래픽 프로세서.
  7. 제 6 항에 있어서,
    상기 공유 캐시 구조는 각각의 L2 캐시가 계산 슬라이스에 전용되는 복수의 독립적인 레벨 2(L2) 캐시를 포함하는
    그래픽 프로세서.
  8. 제 6 항에 있어서,
    상기 공유 캐시 구조는 복수의 뱅크를 갖는 레벨 2(L2) 캐시를 포함하고, 상기 공유 캐시 구조는 상기 복수의 뱅크에 걸쳐 상기 하나 이상의 메모리 라인 중 적어도 하나를 해싱하는
    그래픽 프로세서.
  9. 제 6 항에 있어서,
    상기 복수의 크로스바 노드는 상기 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로 분산시키는
    그래픽 프로세서.
  10. 제 9 항에 있어서,
    상기 복수의 크로스바 노드는 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하고, 상기 하나 이상의 스누핑 결과를 상기 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로 전달하는
    그래픽 프로세서.
  11. 제 5 항에 있어서,
    상기 캐시 패브릭은 상기 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하는
    그래픽 프로세서.
  12. 시스템으로서,
    시각적 콘텐츠를 제공하기 위한 디스플레이와,
    그래픽 프로세서를 포함하되,
    상기 그래픽 프로세서는,
    상기 시각적 콘텐츠와 관련된 복수의 작업 항목을 실행하기 위한 계산 슬라이스의 물리적으로 분산된 세트와,
    그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 상기 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지하는 캐시 패브릭을 포함하는
    시스템.
  13. 제 12 항에 있어서,
    상기 캐시 패브릭은,
    복수의 레벨 1(L1) 캐시 - 각각의 L1 캐시가 계산 슬라이스의 실행 블록에 전용됨 - 와,
    물리적으로 분산된 공유 캐시 구조 - 상기 하나 이상의 메모리 라인의 일관성이 상기 복수의 L1 캐시 및 상기 물리적으로 분산된 공유 캐시 구조에 걸쳐 유지됨 - 와,
    상기 하나 이상의 메모리 라인을 추적하기 위한 복수의 크로스바 노드 - 각각의 크로스바 노드는 계산 슬라이스에 전용됨 - 를 포함하는
    시스템.
  14. 제 13 항에 있어서,
    상기 공유 캐시 구조는 각각의 L2 캐시가 계산 슬라이스에 전용되는 복수의 독립적인 레벨 2(L2) 캐시를 포함하는
    시스템.
  15. 제 13 항에 있어서,
    상기 공유 캐시 구조는 복수의 뱅크를 갖는 레벨 2(L2) 캐시를 포함하고, 상기 공유 캐시 구조는 상기 복수의 뱅크에 걸쳐 상기 하나 이상의 메모리 라인 중 적어도 하나를 해싱하는
    시스템.
  16. 제 13 항에 있어서,
    상기 복수의 크로스바 노드는 상기 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로 분산시키는
    시스템.
  17. 제 16 항에 있어서,
    상기 하나 이상의 호스트 프로세서 및 상기 시스템 메모리에 결합된 시스템 캐시와, 상기 시스템 캐시에 결합된 그래픽 인터페이스를 더 포함하고, 상기 복수의 크로스바 노드는 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하고, 상기 하나 이상의 스누핑 결과를 상기 그래픽 인터페이스를 통해 상기 시스템 캐시로 전달하는
    시스템.
  18. 제 12 항에 있어서,
    상기 캐시 패브릭은 상기 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하는
    시스템.
  19. 그래픽 프로세서를 동작시키는 방법으로서,
    계산 슬라이스의 물리적으로 분산된 세트에 의해 복수의 작업 항목을 실행하는 단계와,
    캐시 패브릭에 의해 그래픽 프로세서, 시스템 메모리 및 하나 이상의 호스트 프로세서에 걸쳐 상기 복수의 작업 항목과 관련된 하나 이상의 메모리 라인의 일관성을 유지하는 단계를 포함하는
    방법.
  20. 제 19 항에 있어서,
    복수의 크로스바 노드에 의해 상기 하나 이상의 메모리 라인을 추적하는 단계를 더 포함하고, 상기 하나 이상의 메모리 라인의 일관성은 복수의 레벨 1(L1) 캐시 및 물리적으로 분산된 공유 캐시 구조에 걸쳐 유지되고, 각각의 L1 캐시는 계산 슬라이스의 실행 블록에 전용되고, 각각의 크로스바 노드는 계산 슬라이스에 전용되는
    방법.
  21. 제 20 항에 있어서,
    상기 공유 캐시 구조는 상기 하나 이상의 메모리 라인을 추적하기 위해 복수의 독립적인 레벨 2(L2) 캐시를 사용하고, 각각의 L2 캐시는 계산 슬라이스에 전용되는
    방법.
  22. 제 20 항에 있어서,
    레벨 2(L2) 캐시의 복수의 뱅크에 걸쳐 상기 하나 이상의 메모리 라인 중 적어도 하나를 해싱하는 단계를 더 포함하는
    방법.
  23. 제 20 항에 있어서,
    상기 복수의 크로스바 노드에 의해 상기 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로부터 발신하는 하나 이상의 스누프 요청을 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로 분산시키는 단계를 더 포함하는
    방법.
  24. 제 23 항에 있어서,
    상기 복수의 크로스바 노드에 의해 상기 공유 캐시 구조 및 상기 복수의 L1 캐시로부터 하나 이상의 스누핑 결과를 수집하는 단계와,
    상기 복수의 크로스바 노드에 의해 상기 하나 이상의 스누핑 결과를 상기 하나 이상의 호스트 프로세서에 결합된 시스템 캐시로 전달하는 단계를 더 포함하는
    방법.
  25. 제 19 항에 있어서,
    상기 캐시 패브릭에 의해 상기 하나 이상의 메모리 라인의 일관성을 유지하기 위해 수정, 배타적, 공유, 무효(MESI) 프로토콜을 사용하는 단계를 더 포함하는
    방법.
KR1020150028622A 2014-03-27 2015-02-27 분산 그래픽 프로세서 계층 구조의 시스템 일관성 KR101648758B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/227,525 US9436972B2 (en) 2014-03-27 2014-03-27 System coherency in a distributed graphics processor hierarchy
US14/227,525 2014-03-27

Publications (2)

Publication Number Publication Date
KR20150112784A true KR20150112784A (ko) 2015-10-07
KR101648758B1 KR101648758B1 (ko) 2016-08-17

Family

ID=54066881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150028622A KR101648758B1 (ko) 2014-03-27 2015-02-27 분산 그래픽 프로세서 계층 구조의 시스템 일관성

Country Status (5)

Country Link
US (1) US9436972B2 (ko)
KR (1) KR101648758B1 (ko)
CN (2) CN104952033B (ko)
DE (1) DE102015002366A1 (ko)
TW (1) TWI556193B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230098610A (ko) * 2020-11-11 2023-07-04 어드밴스드 마이크로 디바이시즈, 인코포레이티드 시스템 온 칩(soc들)을 위한 향상된 내구성

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436972B2 (en) * 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
US20160012160A1 (en) 2014-07-11 2016-01-14 Graphisoft Building model user interface and method of use
US10402072B2 (en) * 2015-05-04 2019-09-03 Graphisoft Se Predictive background updating
US9965211B2 (en) * 2016-09-08 2018-05-08 Cisco Technology, Inc. Dynamic packet buffers with consolidation of low utilized memory banks
US10747878B1 (en) * 2016-10-07 2020-08-18 Rightquestion, Llc Rapid verification of executing processes
US10686729B2 (en) 2017-03-29 2020-06-16 Fungible, Inc. Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths
WO2018183526A1 (en) 2017-03-29 2018-10-04 Fungible, Inc. Non-blocking, full-mesh data center network having optical permutors
CN110710172A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络
US10395623B2 (en) 2017-04-01 2019-08-27 Intel Corporation Handling surface level coherency without reliance on fencing
US10891773B2 (en) * 2017-04-07 2021-01-12 Intel Corporation Apparatus and method for efficient graphics virtualization
CN117971715A (zh) 2017-04-10 2024-05-03 微软技术许可有限责任公司 多处理器系统中的中继一致存储器管理
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
CN110892380B (zh) 2017-07-10 2023-08-11 芬基波尔有限责任公司 用于流处理的数据处理单元
CN110915172A (zh) 2017-07-10 2020-03-24 芬基波尔有限责任公司 针对数据中心的接入节点
CN111149329A (zh) 2017-09-29 2020-05-12 芬基波尔有限责任公司 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议
CN111164938A (zh) 2017-09-29 2020-05-15 芬基波尔有限责任公司 使用选择性多路径分组流喷射的弹性网络通信
WO2019104090A1 (en) 2017-11-21 2019-05-31 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
US10540288B2 (en) 2018-02-02 2020-01-21 Fungible, Inc. Efficient work unit processing in a multicore system
US10929175B2 (en) 2018-11-21 2021-02-23 Fungible, Inc. Service chaining hardware accelerators within a data stream processing integrated circuit
EP3938893A1 (en) 2019-03-15 2022-01-19 INTEL Corporation Systems and methods for cache optimization
WO2020190808A1 (en) 2019-03-15 2020-09-24 Intel Corporation Sparse optimizations for a matrix accelerator architecture
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
US12066975B2 (en) 2019-03-15 2024-08-20 Intel Corporation Cache structure and utilization
US11861761B2 (en) 2019-11-15 2024-01-02 Intel Corporation Graphics processing unit processing and caching improvements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060087561A (ko) * 2003-09-12 2006-08-02 인텔 코오퍼레이션 멀티-인터페이스 캐시들 내의 접합된 캐시 일관성 상태들을위한 방법 및 장치
KR20110019775A (ko) * 2008-06-06 2011-02-28 애플 인크. 다수의 프로세서들에서 데이터 병렬 컴퓨팅을 하기 위한 응용 프로그래밍 인터페이스들

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053761A (en) * 1989-06-16 1991-10-01 International Business Machines Method for smooth bitmap scrolling
US6449699B2 (en) * 1999-03-29 2002-09-10 International Business Machines Corporation Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US6792551B2 (en) * 2001-11-26 2004-09-14 Intel Corporation Method and apparatus for enabling a self suspend mode for a processor
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US7355601B2 (en) * 2003-06-30 2008-04-08 International Business Machines Corporation System and method for transfer of data between processors using a locked set, head and tail pointers
CN1320464C (zh) * 2003-10-23 2007-06-06 英特尔公司 用于维持共享高速缓存一致性的方法和设备
US20070005907A1 (en) 2005-06-29 2007-01-04 Intel Corporation Reduction of snoop accesses
US8928676B2 (en) 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US7581068B2 (en) 2006-06-29 2009-08-25 Intel Corporation Exclusive ownership snoop filter
US9166989B2 (en) * 2006-12-28 2015-10-20 Hewlett-Packard Development Company, L.P. Storing log data efficiently while supporting querying
US8527709B2 (en) 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US9035959B2 (en) 2008-03-28 2015-05-19 Intel Corporation Technique to share information among different cache coherency domains
US8762652B2 (en) 2008-04-30 2014-06-24 Freescale Semiconductor, Inc. Cache coherency protocol in a data processing system
US20100332762A1 (en) 2009-06-30 2010-12-30 Moga Adrian C Directory cache allocation based on snoop response information
US9639479B2 (en) * 2009-09-23 2017-05-02 Nvidia Corporation Instructions for managing a parallel cache hierarchy
US8375184B2 (en) 2009-11-30 2013-02-12 Intel Corporation Mirroring data between redundant storage controllers of a storage system
US8856456B2 (en) * 2011-06-09 2014-10-07 Apple Inc. Systems, methods, and devices for cache block coherence
US9477600B2 (en) * 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US20130042470A1 (en) * 2011-08-15 2013-02-21 Advanced Interconnections Corp. Extraction tool
US9330002B2 (en) * 2011-10-31 2016-05-03 Cavium, Inc. Multi-core interconnect in a network processor
US9274960B2 (en) * 2012-03-20 2016-03-01 Stefanos Kaxiras System and method for simplifying cache coherence using multiple write policies
CN102799352A (zh) * 2012-06-18 2012-11-28 江苏智途科技有限公司 实现图形节点捕捉的方法
US9665958B2 (en) * 2013-08-26 2017-05-30 Nvidia Corporation System, method, and computer program product for redistributing a multi-sample processing workload between threads
US9436972B2 (en) * 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060087561A (ko) * 2003-09-12 2006-08-02 인텔 코오퍼레이션 멀티-인터페이스 캐시들 내의 접합된 캐시 일관성 상태들을위한 방법 및 장치
KR20110019775A (ko) * 2008-06-06 2011-02-28 애플 인크. 다수의 프로세서들에서 데이터 병렬 컴퓨팅을 하기 위한 응용 프로그래밍 인터페이스들

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230098610A (ko) * 2020-11-11 2023-07-04 어드밴스드 마이크로 디바이시즈, 인코포레이티드 시스템 온 칩(soc들)을 위한 향상된 내구성

Also Published As

Publication number Publication date
TW201539370A (zh) 2015-10-16
TWI556193B (zh) 2016-11-01
US20150278984A1 (en) 2015-10-01
US9436972B2 (en) 2016-09-06
CN110109844A (zh) 2019-08-09
CN104952033A (zh) 2015-09-30
DE102015002366A1 (de) 2015-10-01
KR101648758B1 (ko) 2016-08-17
CN110109844B (zh) 2023-08-01
CN104952033B (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
KR101648758B1 (ko) 분산 그래픽 프로세서 계층 구조의 시스템 일관성
CN104471540B (zh) 通过统一存储器架构的存储器共享
TWI605342B (zh) 共享虛擬記憶體的技術
CN106031172B (zh) 用于视频编码和解码的自适应传递函数
CN104704469B (zh) 动态地重新平衡图形处理器资源
KR20150070336A (ko) 비디오 스트림에 섬네일 정보 실장
CN104782136B (zh) 在云中处理视频数据
KR101605047B1 (ko) 움직임 보상 및 디스플레이 리프레시의 전력 소모를 감소시키는 dram 압축 방안
TWI615807B (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
TW201537455A (zh) 用於記憶體子系統之動態快取及記憶體分配技術
US9396513B2 (en) Using group page fault descriptors to handle context switches and process terminations in graphics processors
JP5908957B2 (ja) ショートループアトミックアクセス
CN104067318A (zh) 使用三维光栅化的时间连续碰撞检测
CN103533286A (zh) 用于带静态区域排除的时间帧内插的方法和系统
JP6386099B2 (ja) 圧縮支援のための方法、装置、コンピュータプログラム及び記憶媒体
US9563561B2 (en) Initiation of cache flushes and invalidations on graphics processors
US11429265B2 (en) Output device control
JP2019057320A (ja) 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置
CN103927223A (zh) 对图形资源的串行化访问
KR20160146775A (ko) 깊이 또는 시차를 갖는 이미지로부터의 뷰 보간을 위한 적응형 리-메싱
CN104054049A (zh) 减少由cpu执行以便复制源数据从而实现对源数据的并行处理的读/写操作的数量
WO2015199971A1 (en) Graphics workload submissions by unprivileged applications
CN111159551A (zh) 用户生成内容的显示方法、装置及计算机设备
CN116405708A (zh) 用人工智能视频帧分割处理视频帧像素数据的方法和装置
JP5968463B2 (ja) データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング

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: 20190729

Year of fee payment: 4