KR101321603B1 - 멀티-프로세서 시스템을 위한 명령 전달 기술 - Google Patents

멀티-프로세서 시스템을 위한 명령 전달 기술 Download PDF

Info

Publication number
KR101321603B1
KR101321603B1 KR1020097022149A KR20097022149A KR101321603B1 KR 101321603 B1 KR101321603 B1 KR 101321603B1 KR 1020097022149 A KR1020097022149 A KR 1020097022149A KR 20097022149 A KR20097022149 A KR 20097022149A KR 101321603 B1 KR101321603 B1 KR 101321603B1
Authority
KR
South Korea
Prior art keywords
processor
slave
command
pass
pipelined
Prior art date
Application number
KR1020097022149A
Other languages
English (en)
Other versions
KR20090132621A (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 KR20090132621A publication Critical patent/KR20090132621A/ko
Application granted granted Critical
Publication of KR101321603B1 publication Critical patent/KR101321603B1/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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)

Abstract

마스터 프로세서 및 그 마스터 프로세서에 의해 제어되는 파이프라인화된 슬레이브 프로세서들을 갖는 멀티-프로세서 시스템에서 슬레이브 프로세서들에 명령들을 전달하기 위한 방법이 설명된다. 그 방법은, (i) 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된 헤더 블록, 및 (ii) 예정된 슬레이브 프로세서에 의해 이해되는 컴퓨터 언어로 코딩된 명령들을 포함하는 페이로드 블록을 갖는 패스-스루 커맨드를 사용한다. 그 패스-스루 커맨드는 최외각 슬레이브 프로세서에 송신되고, 그 후, 그 커맨드가 예정된 슬레이브 프로세서에 도달할 때까지, 중간 다운스트림 슬레이브 프로세서들에 의해 리코딩없이 포워딩된다. 일 애플리케이션에서, 그 방법은 비디오 데이터를 프로세싱하거나 그래픽을 렌더링하도록 구성된 시스템에서 사용된다.
Figure R1020097022149
마스터 프로세서, 슬레이브 프로세서, 패스-스루 커맨드

Description

멀티-프로세서 시스템을 위한 명령 전달 기술{INSTRUCTION COMMUNICATION TECHNIQUES FOR MULTI-PROCESSOR SYSTEM}
본 특허 출원은, 2007년 3월 23일자로 출원되어 있고, 여기서 그의 전체 내용이 참조로서 포함되는 미국 가출원 제 60/896,497 호의 이익을 주장한다.
기술분야
본 발명은 일반적으로, 멀티-프로세서 시스템 분야에 관한 것으로, 더 상세하게는, 마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 갖는 멀티-프로세서 시스템에서 슬레이브 프로세서에 명령들을 전달하기 위한 기술들에 관한 것이다.
배경
복잡한 컴퓨터 시스템에서, 종종, 공통적인 워크로드 (workload) 는 복수의 프로세서들 사이에 분배되고, 복수의 프로세서들에 의해 병렬로 수행된다. 통상적으로, 멀티-프로세서 시스템은, 여기에서 슬레이브 프로세서로서 총괄하여 지칭되는 복수의 파이프라인화된 (즉, 직렬로 접속된) 프로세서들 또는 코-프로세서 들 (co-processors) 을 관리하는 마스터 프로세서를 포함한다. 예를 들어, 그러한 멀티-프로세서 시스템들은, 계산 집약적인 애플리케이션에서 다른 것들 중 다량의 비디오 데이터의 프로세싱 또는 그래픽 렌더링을 위해 사용될 수도 있다.
그러나, 멀티-프로세서 시스템에서, 마스터 프로세서 및 각각의 슬레이브 프로세서들은, 그들의 네이티브 (native) 프로그래밍 언어들로, 그리고, 이에 따라 상이한 프로그래밍 언어들로 포맷팅된 데이터 및 명령 (즉, 커맨드) 들을 사용하여 동작할 수도 있다. 종래에, 마스터 프로세서에 의하여 다운스트림으로 각각의 슬레이브 프로세서에 포워딩된 명령들은, 각각의 중간 슬레이브 프로세서에 의해 그의 네이티브 프로그래밍 언어로 디코딩되고, 다음의 다운스트림 중간 슬레이브 프로세서의 프로그래밍 언어로 리-코딩 (re-code) 되며, 그 후, 그 프로세서에 포워딩된다.
수신 명령들을 디코딩하는 것, 및 다운스트림 중간 슬레이브 프로세서의 네이티브 프로그래밍 언어로 리-코딩한 이후 그 수신 명령들을 다운스트림으로 포워딩하는 것의 그러한 사이클들은, 그 명령들이 의도된 또는 예정된 슬레이브 프로세서에 도달할 때까지 계속된다. 예정된 슬레이브 프로세서에서, 수신 명령들은 그 프로세서의 네이티브 프로그래밍 언어로 디-코딩되고 실행된다.
명령들을 슬레이브 프로세서들로 전달하기 위한 그러한 멀티-스텝 루틴의 복잡도는, 멀티-프로세서 시스템의 전체 성능에 악영향을 주며, 특히, 시스템의 커맨드 스루풋 및 설계 유연성을 제한한다. 마스터 프로세서로부터 파이프라인화된 슬레이브 프로세서들로 명령들을 전달하는 효율도를 증가시키기 위한 당업계의 상당한 노력에도 불구하고, 추가적인 개선이 바람직할 것이다.
따라서, 멀티-프로세서 시스템에서 파이프라인화된 슬레이브 프로세서들로의 명령들의 전달을 효율적으로 구현하기 위한 기술들에 대한 필요성이 당업계에 존재 한다.
요약
마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 갖는 멀티-프로세서 시스템에서 슬레이브 프로세서들로 명령들을 전달하기 위한 기술들이 여기에 설명된다. 일 실시형태에서, 마스터 프로세서는, 예정된 슬레이브 프로세서에 대한 명령들을 포함하는 페이로드 블록 및 헤더 블록을 갖는 패스-스루 (pass-through) 커맨드를 생성한다. 그 헤더 블록은 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩되며, 그 페이로드 블록은 그 예정된 슬레이브 프로세서에 의해 이해되는 컴퓨터 언어로 코딩된다. 마스터 프로세서는, 파이프라인화된 슬레이브 프로세서들 중 최외각의 슬레이브 프로세서로 패스-스루 커맨드를 포워딩하며, 그 후, 그 패스-스루 커맨드는 그 패스-스루 커맨드가 그 명령을 실행하는 예정된 슬레이브 프로세서에 도달할 때까지 중간 (즉, 예정되지 않은) 슬레이브 프로세서들에 의해 리코딩되지 않으면서 재-송신된다.
일 설계에서, 시스템은 비디오 데이터의 프로세싱 또는 그래픽의 렌더링 중 적어도 하나를 수행하기 위해 본 발명의 방법을 사용한다.
본 발명의 다양한 양태들 및 실시형태들이 아래에서 더 상세히 설명된다.
요약은 본 발명의 모든 내용 및 범위를 나타내는 것으로 의도되거나 해석되지 않아야 하며, 이들 및 부가적인 양태들은, 특히 첨부된 도면과 함께 취해졌을 때 상세한 설명으로부터 용이하게 명백해질 것이다.
도면의 간단한 설명
도 1은 예시적인 멀티-프로세서 시스템의 블록도를 도시한다.
도 2는 도 1의 멀티-프로세서 시스템에서 사용된 패스-스루 커맨드의 구조를 도시한 개략도를 도시한다.
도 3은 도 1의 멀티-프로세서 시스템에서 파이프라인화된 슬레이브 프로세서들에 명령들을 전달하기 위한 방법을 도시한 흐름도를 도시한다.
이해를 용이하게 하기 위해, 적절할 경우 동일한 엘리먼트들을 구별하기 위해 접미사들이 부가될 수도 있다는 것을 제외하고, 가능하다면, 동일한 참조 부호들이 도면에 공통적인 동일한 엘리먼트들을 지정하는데 사용된다. 도면의 이미지들은 예시적인 목적을 위해 간략화되어 있으며, 스캐일적으로 도시되어 있지 않다. 일 실시형태의 특성들 또는 단계들이 추가적인 설명없이도 다른 실시형태들에 유익하게 포함될 수도 있음을 고려한다.
첨부된 도면들은 본 발명의 예시적인 실시형태들을 도시하며, 이에 따라, 동등하게 유효한 다른 실시형태들을 허용할 수도 있는 본 발명의 범위를 제한하는 것으로 고려되지는 않아야 한다.
상세한 설명
여기에서 "예시적인" 이라는 용어는 "예, 예시, 또는 예증으로서 제공되는"의 의미로 사용된다. "예시적인" 것으로서 여기에서 설명되는 임의의 실시형태 또는 설계는 다른 실시형태들 또는 설계들에 비하여 반드시 바람직하거나 유리한 것으로서 해석할 필요는 없다.
도면을 참조하면, 도 1은 본 발명의 일 실시형태에 따른 예시적인 멀티-프로세서 시스템 (100) 의 블록도를 도시한다. 예시적인 애플리케이션에서, 시스템 (100) 은, 다른 계산 집약적인 데이터 프로세싱 애플리케이션들 중에서, 비디오 데이터의 프로세싱 및/또는 그래픽의 렌더링을 위해 사용될 수도 있다.
예시적인 일 실시형태에서, 시스템 (100) 은, 셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터, 오디오/비디오-인에이블된 디바이스 등과 같은 무선 통신 장치의 그래픽 프로세싱 유닛 (GPU) 의 일부이다.
예를 들어, GPU는 공개적으로 입수가능한 2005년 7월 28일자 문서 "OpenVG Specification, Version 1.0" 을 따를 수도 있다. 이 문서는, 셀룰러 전화기, 및 상기 무선 통신 장치들로 지칭되는 다른 것과 같은 헨드핼드 및 이동 디바이스에 적합한 2-D 벡터 그래픽에 대한 표준이다.
도시된 실시형태에서, 예시적으로, 시스템 (100) 은, 각각의 시스템 인터페이스들 (1261 내지 126K) 을 사용하여 접속된 마스터 프로세서 (110) 및 복수의 (101) 파이프라인화된 슬레이브 프로세서들 (1201 내지 120K) 을 포함하며, 여기서, K는 정수이고 K≥2 이다. 일 실시형태에서, 시스템 인터페이스들 (1261 내지 126K) 각각은 데이터 버스, 어드레스 버스, 및 커맨드 버스 (모두 미도시) 를 포함한다. 마스터 프로세서 (110) 및 각각의 슬레이브 프로세서들 (1201 내지 120K) 은, 각각, 간략화를 위해 모듈들 (111 및 1211 내지 121K) 로서 여기에 총괄하여 도 시되어 있는, 서브-프로세서들, 메모리들, 주변 디바이스들, 및 지원 회로 및 유사한 엘리먼트들을 포함할 수도 있다.
마스터 프로세서 (110) 및 파이프라인화된 슬레이브 프로세서들 (1201 내지 120K) 은, 예를 들어, 시스템-온-칩 (system-on-chip; SoC) 디바이스와 같은 단일 집적 회로 (IC) 상에 형성될 수도 있다. 대안적으로, 마스터 프로세서 (110), 및 슬레이브 프로세서들 (1201 내지 120K) 중 적어도 하나는 별개의 IC들 상에 형성될 수도 있다.
동작에서, 마스터 프로세서 (110) 는 슬레이브 프로세서들 (1201 내지 120K) 에서의 데이터 프로세싱을 제어하고, 옵션적으로는 모니터링한다. 마스터 프로세서 (110) 및 각각의 슬레이브 프로세서들 (1201 내지 120K) 은, 내부 명령들 또는 내부 데이터 교환을 생성 또는 실행하기 위해 상이한 포맷들 (즉, 컴퓨터 언어들) 을 사용하여 동작할 수도 있다.
마스터 프로세서 (110) 는, 입력 버퍼 (IB; 112) 및 출력 버퍼 (OB; 114) 를 포함하는 입력/출력 (I/O) 모듈 (118) 을 포함한다. 대응적으로, 각각의 슬레이브 프로세서들 (1201 내지 120K) 은, 입력 버퍼 (122) 및 출력 버퍼 (124) 를 포함하는 각각의 입력/출력 (I/O) 모듈 (128) 을 포함한다. 동작에서, I/O 모듈들 (118 및 1281 내지 128K) 은 시스템 (100) 내에서 또는 시스템 (100) 으로의/으로부터의 정보 교환을 용이하게 한다.
인터페이스 (102) 를 사용하여, 마스터 프로세서 (110) 의 입력 버퍼 (112) 는, 총괄하여 수단 (104) 으로서 도시되어 있는, 원격 프로세서, 네트워크, 또는 사용자 제어 수단 중 적어도 하나에 접속될 수도 있다. 유사하게, 인터페이스 (107) 를 사용하여, 슬레이브 프로세서 (120K) 의 출력 버퍼 (124K) 는, 총괄하여 수단 (106) 으로서 도시되어 있는, 다른 원격 프로세서, 네트워크, 또는 사용자 제어 수단에 접속될 수도 있다.
시스템 (100) 에서, 각각의 양-방향 시스템 인터페이스 (126) 를 통하여, 선행하는 (즉, 업스트림) 슬레이브 프로세서 (120) 의 입력 버퍼 (122) 는 인접한 다운스트림 슬레이브 프로세서의 출력 버퍼 (124) 에 접속되며, 따라서, 복수의 (101) 파이프라인화된 슬레이브 프로세서들 (1201 내지 120K) 를 형성한다. 예를 들어, 슬레이브 프로세서 (1202) 의 입력 버퍼 (1222) 는 시스템 인터페이스 (1262) 를 통해 슬레이브 프로세서 (1201) 의 출력 버퍼 (1241) 에 접속되고, 슬레이브 프로세서 (1202) 의 출력 버퍼 (1242) 는 시스템 인터페이스 (1263) 를 통해 슬레이브 프로세서 (1203) (미도시) 의 입력 버퍼 (1223) 에 접속된다.
일 실시형태에서, 마스터 프로세서 (110) 의 출력 버퍼 (114) 는, 시스템 인터페이스 (1261) 를 통하여, 복수의 (101) 파이프라인화된 슬레이브 프로세서들 (120) 의 최외각 슬레이브 프로세서의 입력 버퍼, 즉, 슬레이브 프로세서 (1201) 의 입력 버퍼 (1221) 에 접속된다. 동작에서, 마스터 프로세서 (110) 는, 명령들을 생성하고 그 명령들을 각각의 슬레이브 프로세서에 송신함으로써, 슬라이브 프로세서들 (1201 내지 120K) 에 대한 제어를 관리한다. 이하, 이들 명령들의 의도된 수신자인 슬레이브 프로세서는 예정된 슬레이브 프로세서로서 지칭된다. 명령들은, 시스템 인터페이스 (1261) 를 통하여, 마스터 프로세서 (110) 의 출력 버퍼 (114) 로부터 최외각 슬레이브 프로세서 (1201) 의 입력 버퍼 (1221) 로 송신된다.
예정된 슬레이브 프로세서에 도달하기 위해, 명령들은, 하나 이상의 중간 업스트림 슬레이브 프로세서들, 즉, 마스터 프로세서와 예정된 슬레이브 프로세서 사이에 배치된 슬레이브 프로세서들에 의해 다운스트림으로 수신된 이후 재송신 또는 포워딩되어야 한다. 여기에서, "포워딩" 및 "재송신" 이라는 용어는 상호교환가능하게 사용된다.
더 상세하게는, 각각의 시스템 인터페이스를 통하여, 업스트림 슬레이브 프로세서의 출력 버퍼로부터의 명령들은, 각각의 다운스트림 슬레이브 프로세서의 입력 버퍼로 포워딩 (즉, 화살표 (103) 를 사용하여 도시되어 있는 방향으로 포워딩) 되며, 그 후, 그 각각의 다운스트림 슬레이브 프로세서는 그 명령들이 예정된 슬레이브 프로세서에 도달할 때까지 추가적인 다운스트림으로 그 명령들을 유사하게 포워딩한다.
예를 들어, 예정된 슬레이브 프로세서가 슬레이브 프로세서 (1203) 일 경우, 슬레이브 프로세서 (1201) 는, 시스템 인터페이스 (1262) 를 통하여, 슬레이브 프로세서 (1202) 에 다운스트림으로 명령들을 포워딩하며, 그 후, 그 슬레이브 프로세서 (1202) 는, 그 명령들이 실행되는 예정된 슬레이브 프로세서 (1203) 에 그 명령들을 재송신한다.
도 2를 참조하면, 예정된 슬레이브 프로세서에 명령들을 효율적으로 전달하기 위해, 마스터 프로세서 (110) 는 패스-스루 커맨드 (200) 를 생성한다. 일 실시형태에서, 패스-스루 커맨드 (200) 는, (i) 각각의 예정되지 않은 슬레이브 프로세서에게 그 패스-스루 커맨드를 각각의 다운스트림 슬레이브 프로세서에 리코딩없이 포워딩 (즉, 화살표 (103) 의 방향으로 패스-스루 커맨드를 재송신) 하도록 명령하고, (ii) 예정된 슬레이브 프로세서에게 그 패스-스루 커맨드에 포함된 명령(들)을 실행하도록 명령한다. 특히, 패스-스루 커맨드 (200) 는, 예정되지 않은 슬레이브 프로세서 (120) 에게 그의 입력 버퍼 (122) 로부터 그 슬레이브 프로세서의 출력 버퍼 (124) 로 그 수신된 패스-스루 커맨드를 복사하도록 명령할 수도 있다.
일 실시형태에서, 패스-스루 커맨드 (200) 는 헤더 블록 (210) 및 페이로드 블록 (220) 을 포함한다. 헤더 블록 (210) 은, 복수의 (101) 모든 파이프라인화된 슬레이브 프로세서들 (1201 내지 120K) 에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된다. 여기서, "컴퓨터 언어" 라는 용어는, 마스터 및 슬레이브 프로세서들에 의해 사용되는 명령들 및 데이터에 대한 프로그래밍 언어들 및 포맷들에 관해 총괄하여 사용된다.
예시적인 일 실시형태에서, 헤더 블록 (210) 은 데이터 모듈들 (202, 204, 및 206) 을 포함한다. 대안적인 실시형태 (미도시) 에서, 데이터 모듈들 (202, 204, 및 206) 의 콘텐츠들은 단일 데이터 모듈을 형성할 수도 있거나, 이들 모듈들 중 임의의 2개의 콘텐츠들이 하나의 데이터 모듈에 포함될 수도 있다.
데이터 모듈 (202) 은, 마스터 프로세서 (110) 의 다른 커맨드들 중에서 패스-스루 커맨드 (200) 를 식별하는 정보 (즉, 패스-스루 커맨드의 ID) 를 포함한다. 데이터 모듈 (204) 은 예정된 슬레이브 프로세서를 식별하는 정보 (예를 들어, 예정된 슬레이브 프로세서의 어드레스) 를 포함하고, 데이터 모듈 (206) 은 페이로드 블록 (220) 의 비트 길이 (예를 들어, 바이트 단위) 에 대한 정보를 포함한다. 대안적인 실시형태 (미도시) 에 있어서, 헤더 블록 (210) 에서, 데이터 모듈 (206) 은 데이터 모듈 (204) 에 선행할 수도 있다.
페이로드 블록 (220) 은 예정된 슬레이브 프로세서에 의해 이해되는 컴퓨터 언어를 사용하여 코딩되며, 각각의 예정된 슬레이브 프로세서에 의한 실행을 위하여 마스터 프로세서 (110) 에 의해 생성된 명령을 포함하는 적어도 하나의 데이터 모듈 (222) (데이터 모듈들 (2221 내지 222N 이 도시되며, 여기서, N은 정수이고 N≥1 이다) 을 포함한다.
또 다른 실시형태에서, 패스-스루 커맨드 (200) 는, 소정의 메시지 업스트림을 마스터 프로세서 (110) 에 (즉, 화살표 (105) 를 사용하여 도시된 방향으로) 전 송함으로써 그 커맨드의 수신 또는 실행을 확인하도록 예정된 슬레이브 프로세서에게 명령할 수도 있다. 예를 들어, 마스터 프로세서 (110) 에 그러한 메시지를 효율적으로 전달하기 위해, 패스-스루 커맨드 (200) 는 예정된 슬레이브 프로세서에게, (i) 수신된 패스-스루 커맨드의 데이터 모듈 (204) 에서, 예정된 슬레이브 프로세서를 식별하는 정보를 마스터 프로세서 (110) 를 식별하는 정보로 대체하고, (ii) 페이로드 블록 (220) 에 소정의 메시지를 포함하며, (iii) 변형된 (즉, 응답) 패스-스루 커맨드를 인접한 업스트림 슬레이브 프로세서에 포워딩하도록 명령할 수도 있다.
도 3은, 도 1의 멀티-프로세서 시스템 (100) 의 파이프라인화된 슬레이브 프로세서들 (120) 에 명령들을 전달하기 위한 방법 (300) 을 도시한 흐름도를 도시한다. 다양한 실시형태들에서, 방법 (300) 의 방법 단계들은 예시된 순서로 수행되거나, 이들 단계들 중 적어도 2개 또는 그들의 일부 (예를 들어, 서브-단계들 (312, 314, 316, 및 318)) 는 동시에, 병렬로, 또는 상이한 순서로 수행될 수도 있다. 당업자는, 다른 후술되는 프로세스들 또는 루틴들의 적어도 일부를 실행하는 순서가 또한 변형될 수도 있음을 용이하게 인식할 것이다. 본 발명을 잘 이해하기 위해, 도 1 내지 3을 동시에 참조해야 한다.
단계 (310) 에서, 마스터 프로세서 (110) 는 패스-스루 커맨드 (200) 를 생성한다. 예시적으로, 단계 (310) 는 서브-단계들 (312, 314, 316, 및 318) 을 포함한다. 도시된 실시형태에서, 서브-단계들 (312, 314, 및 316) 동안, 마스터 프로세서 (110) 는, 각각, 패스-스루 커맨드 (200) 의 헤더 블록 (210) 을 생성 하며, 서브-단계 (318) 동안, 마스터 프로세서는 패스-스루 커맨드의 페이로드 블록 (220) 을 생성한다.
서브-단계 (312) 에서, 마스터 프로세서 (110) 는 헤더 블록 (210) 의 데이터 모듈 (202) 을 생성한다. 데이터 모듈 (202) 은 패스-스루 커맨드 (200) 를 식별하는 정보를 포함하며, 이러한 정보는 슬레이브 프로세서들 (1201 내지 120K) 각각에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된다.
서브-단계 (314) 에서, 마스터 프로세서 (110) 는 헤더 블록 (210) 의 데이터 모듈 (204) 을 생성한다. 데이터 모듈 (204) 은 예정된 슬레이브 프로세서 (예를 들어, 슬레이브 프로세서 (120K)) 를 식별하는 정보, 및 마스터 프로세서와 예정된 슬레이브 프로세서 사이에 배치된 중간의 예정되지 않은 슬레이브 프로세서들 (즉, 슬레이브 프로세서들 (1201 내지 120K-1) 에 대한 명령들을 포함한다.
특히, 데이터 모듈 (204) 은, 예정되지 않은 슬레이브 프로세서들이 예정된 슬레이브 프로세서에 다운스트림으로 패스-스루 커맨드 (200) 를 디코딩없이 포워딩하기 위한 요청을 포함한다. 일 실시형태에서, 예정되지 않은 슬레이브 프로세서들은, 각각의 예정되지 않은 슬레이브 프로세서의 입력 버퍼로부터 슬레이브 프로세서의 출력 버퍼로 패스-스루 커맨드를 복사하도록 명령을 받는다. 데이터 모듈 (204) 의 콘텐츠는, 슬레이브 프로세서들 (1201 내지 120K) 각각에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된다.
서브-단계 (316) 에서, 마스터 프로세서 (110) 는 헤더 블록 (210) 의 데이 터 모듈 (206) 을 생성한다. 데이터 모듈 (206) 은 패스-스루 커맨드 (200) 의 페이로드 블록 (220) 의 비트 길이를 식별하는 정보를 포함한다. 데이터 모듈들 (202 및 204) 의 콘텐츠와 유사하게, 이러한 정보는, 슬레이브 프로세서들 (1201 내지 120K) 각각에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된다.
서브-단계 (318) 에서, 마스터 프로세서 (110) 는 패스-스루 커맨드 (200) 의 페이로드 블록 (220) 을 생성한다. 페이로드 블록 (220) 은 예정된 슬레이브 프로세서에 대한 적어도 하나의 명령 (222) 을 포함한다. 페이로드 블록 (220) 의 콘텐츠들 (즉, 명령들 (2221 내지 222N)) 은 예정된 슬레이브 프로세서 (예를 들어, 슬레이브 프로세서 (120K)) 에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된다.
단계 (320) 에서, 마스터 프로세서 (110) 는 패스-스루 커맨드 (200) 를 어셈블리하고, 그 커맨드를 최외각 슬레이브 프로세서 (예를 들어, 슬레이브 프로세서 (1201)) 에 송신한다.
단계 (330) 에서, 최외각 슬레이브 프로세서가 예정된 슬레이브 프로세서일 경우, 그 프로세서는 커맨드의 페이로드 블록 (220) 에 포함된 명령들을 실행한다. 따라서, 최외각 슬레이브 프로세서가 예정된 슬레이브 프로세서가 아닐 경우, 최외각 슬레이브 프로세서는 인접한 슬레이브 프로세서 (즉, 슬레이브 프로세서 (1202)) 에 다운스트림으로 패스-스루 커맨드 (200) 를 포워딩 (즉, 재-송신) 하며, 그 인접한 슬레이브 프로세서는 그 슬레이브 프로세서가 예정된 슬레이브 프로세서가 아니라면, 다음의 다운스트림 슬레이브 프로세서 (즉, 슬레이브 프로세서 (1203)) 에 그 커맨드를 포워딩한다. 패스-스루 커맨드 (200) 를 재-송신하는 그러한 사이클은, 그 커맨드가 예정된 슬레이브 프로세서에 도달할 때까지 계속된다. 일 실시형태에서, 단계 (330) 동안, 수신된 패스-스루 커맨드 (200) 는, 수신자인 예정되지 않은 슬레이브 프로세서의 입력 버퍼로부터 그 프로세서의 출력 버퍼로 리코딩없이 복사된다.
단계 (340) 에서, 패스-스루 커맨드 (200) 는, 그 커맨드의 페이로드 블록 (220) 에 포함된 명령들을 실행하는 예정된 슬레이브 프로세서에 도달한다. 일 실시형태에서, 그러한 명령들은 패스-스루 커맨드의 수신 또는 실행을 확인하기 위한 마스터 프로세서 (110) 로부터의 요청을 포함할 수도 있다. 도 2를 참조하여 상술된 바와 같이, 예정된 슬레이브 프로세서로부터의 리턴 통신은, 마스터 프로세서 (110) 에 어드레싱되어 있는 변형된 패스-스루 커맨드의 페이로드 블록 (220) 에 포함되는 메시지를 포함할 수도 있다. 그 후, 그러한 커맨드는, 그 커맨드가 마스터 프로세서에 도달할 때까지, 예정된 슬레이브 프로세서와 마스터 프로세서 (110) 사이에 배치된 슬레이브 프로세서들 (120) 에 의해 순차적으로 재-제출된다.
예시적인 실시형태에서, 방법 (300) 은, 하나 이상의 컴퓨터-실행가능한 명령들을 포함하는 컴퓨터 프로그램 제품의 형태로 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 컴퓨터 프로그램 제품은, 컴퓨터 저장 매체 및 컴퓨터 통신 매체를 포함하는 컴퓨터-판독가능 매체상에 저장되거나 그 매체를 사용하여 송신될 수도 있다.
여기에서, "컴퓨터 저장 매체" 라는 용어는 컴퓨터로 하여금 방법을 실행하게 하는 명령들을 저장하도록 구성된 임의의 매체를 지칭한다. 제한이 아닌 예로서, 컴퓨터 저장 매체는, 전자 메모리 디바이스들 (예를 들어, RAM, ROM, EEPROM 등), 광학 메모리 디바이스들 (예를 들어, 컴팩 디스크 (CD), DVD (digital versatile disc) 등), 또는 자성 메모리 디바이스들 (예를 들어, 하드 드라이브, 플래시 드라이브, 테이프 드라이브 등), 또는 컴퓨터 프로그램 제품을 저장하도록 구성된 다른 메모리 디바이스들, 또는 그러한 메모리 디바이스들의 조합을 포함하는 솔리드-상태 메모리 디바이스들을 포함할 수도 있다.
여기에서, "컴퓨터 통신 매체" 라는 용어는, 예를 들어, 변조된 캐리어파, 광신호, DC 또는 AC 전류 및 기타 수단을 이용하여 일 장소로부터 또 다른 장소로 컴퓨터 프로그램 제품을 송신하도록 구성된 임의의 물리적 인터페이스를 지칭한다. 제한이 아닌 예로서, 컴퓨터 통신 매체는, 트위스트 와이어 페어 (twisted wire pair), 배선 또는 플랫 케이블, 동축 케이블, 광섬유 케이블, 디지털 가입자 라인 (DSL), 또는 다른 유선, 무선, 또는 광학 직렬 또는 병렬 인터레이스들, 또는 이들의 조합을 포함할 수도 있다.
본 발명의 이전의 설명은 당업자로 하여금 본 발명을 수행 또는 이용할 수 있도록 제공된다. 본 발명에 대한 다양한 변형들은 당업자에게는 용이하게 명 백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도 다른 변경들에 적용될 수도 있다. 따라서, 본 발명은 여기에 설명된 예들로 제한하려는 것이 아니라, 여기에 개시된 원리들 및 신규한 특성들에 부합하는 최광의 범위를 부여하려는 것이다.

Claims (69)

  1. 파이프라인화된 슬레이브 프로세서들과 통신하고;
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된 헤더 블록, 및 페이로드 블록을 포함하는 패스-스루 (pass-through) 커맨드를 생성하고;
    상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 대해, 상기 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 컴퓨터 언어를 사용하여 코딩된 적어도 하나의 명령을 생성하고;
    상기 페이로드 블록에 상기 적어도 하나의 명령을 포함시키고;
    상기 파이프라인화된 슬레이브 프로세서들 중 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 송신하도록 구성되는 마스터 프로세서를 포함하며,
    상기 패스-스루 커맨드가 상기 예정된 슬레이브 프로세서에 도달할 때까지, 상기 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 예정되지 않은 슬레이브 프로세서로부터 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 리코딩 (recode) 없이 포워딩되고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여, 상기 마스터 프로세서에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 집적 회로 (IC).
  2. 제 1 항에 있어서,
    상기 마스터 프로세서는,
    상기 패스-스루 커맨드를 식별하는 정보를 포함하고 상기 예정된 슬레이브 프로세서에 상기 패스-스루 커맨드를 디-코딩없이 포워딩하기 위한 요청을 포함하는 데이터 모듈을 생성하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써; 상기 패스-스루 커맨드를 생성하도록 구성되는, 집적 회로.
  3. 제 1 항에 있어서,
    상기 마스터 프로세서는,
    상기 예정된 슬레이브 프로세서를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어로 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써; 상기 패스-스루 커맨드를 생성하도록 구성되는, 집적 회로.
  4. 제 1 항에 있어서,
    상기 마스터 프로세서는,
    상기 페이로드 블록의 비트 길이를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써; 상기 패스-스루 커맨드를 생성하도록 구성되는, 집적 회로.
  5. 제 1 항에 있어서,
    상기 마스터 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들 중 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 포워딩함으로써 상기 패스-스루 커맨드를 송신하도록 구성되는, 집적 회로.
  6. 제 1 항에 있어서,
    상기 예정되지 않은 슬레이브 프로세서는, 상기 예정되지 않은 슬레이브 프로세서의 입력 버퍼로부터 상기 예정되지 않은 슬레이브 프로세서의 출력 버퍼로 상기 패스-스루 커맨드를 복사하도록 구성되는, 집적 회로.
  7. 제 1 항에 있어서,
    상기 예정된 슬레이브 프로세서는, 상기 패스-스루 커맨드의 수신을 확인응답 (acknowledge) 하도록 구성되는, 집적 회로.
  8. 삭제
  9. 제 1 항에 있어서,
    상기 마스터 프로세서 및 상기 파이프라인화된 슬레이브 프로세서들은, 비디오 데이터의 프로세싱 또는 그래픽 렌더링 중 적어도 하나를 위해 구성되는, 집적 회로.
  10. 제 1 항에 있어서,
    상기 집적 회로는, 셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터, 및 오디오/비디오-인에이블 디바이스로 이루어진 그룹으로부터 선택되는 무선 통신 장치의 일부인, 집적 회로.
  11. 마스터 프로세서와 통신하기 위한 복수의 파이프라인화된 슬레이브 프로세서들을 포함하며,
    상기 마스터 프로세서는,
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된 헤더 블록, 및 페이로드 블록을 포함하는 패스-스루 커맨드를 생성하고;
    상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 대해, 상기 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 컴퓨터 언어를 사용하여 코딩된 적어도 하나의 명령을 생성하고;
    상기 페이로드 블록에 상기 적어도 하나의 명령을 포함시키고;
    상기 파이프라인화된 슬레이브 프로세서들 중 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 송신하도록 구성되며,
    상기 패스-스루 커맨드가 상기 예정된 슬레이브 프로세서에 도달할 때까지, 상기 파이프라인화된 슬레이브 프로세서들 중 예정되지 않은 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여, 상기 마스터 프로세서에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 집적 회로 (IC).
  12. 제 11 항에 있어서,
    상기 마스터 프로세서는,
    상기 패스-스루 커맨드를 식별하는 정보를 포함하고 상기 예정된 슬레이브 프로세서에 상기 패스-스루 커맨드를 디코딩없이 포워딩하기 위한 요청을 포함하는 데이터 모듈을 생성하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써; 상기 패스-스루 커맨드를 생성하도록 구성되는, 집적 회로.
  13. 제 11 항에 있어서,
    상기 마스터 프로세서는,
    상기 예정된 슬레이브 프로세서를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어 로 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써; 상기 패스-스루 커맨드를 생성하도록 구성되는, 집적 회로.
  14. 제 11 항에 있어서,
    상기 마스터 프로세서는,
    상기 페이로드 블록의 비트 길이를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써; 상기 패스-스루 커맨드를 생성하도록 구성되는, 집적 회로.
  15. 제 11 항에 있어서,
    상기 마스터 프로세서는, 상기 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 포워딩함으로써 상기 패스-스루 커맨드를 송신하도록 구성되는, 집적 회로.
  16. 제 11 항에 있어서,
    상기 마스터 프로세서는, 또한, 상기 예정되지 않은 슬레이브 프로세서의 입력 버퍼로부터 상기 예정되지 않은 슬레이브 프로세서의 출력 버퍼로 상기 패스-스루 커맨드를 복사하도록 구성되는, 집적 회로.
  17. 제 11 항에 있어서,
    상기 마스터 프로세서는, 또한, 상기 패스-스루 커맨드의 수신을 확인응답 (acknowledge) 하도록 구성되는, 집적 회로.
  18. 삭제
  19. 제 11 항에 있어서,
    상기 마스터 프로세서 및 상기 파이프라인화된 슬레이브 프로세서들은, 비디오 데이터의 프로세싱 또는 그래픽 렌더링 중 적어도 하나를 위해 구성되는, 집적 회로.
  20. 제 11 항에 있어서,
    상기 집적 회로는, 셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말 기 (PDA), 랩탑 컴퓨터, 및 오디오/비디오-인에이블 디바이스로 이루어진 그룹으로부터 선택되는 무선 통신 장치의 일부인, 집적 회로.
  21. 멀티-프로세서 시스템으로서,
    최외각 슬레이브 프로세서, 예정된 슬레이브 프로세서, 및 예정되지 않은 슬레이브 프로세서를 포함하는 복수의 파이프라인화된 슬레이브 프로세서들; 및 상기 최외각 슬레이브 프로세서에 커플링되는 마스터 프로세서를 포함하고,
    상기 마스터 프로세서는,
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된 헤더 블록, 및 페이로드 블록을 포함하는 패스-스루 커맨드를 생성하고;
    상기 예정된 슬레이브 프로세서에 대해, 상기 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 컴퓨터 언어를 사용하여 코딩된 적어도 하나의 명령을 생성하고;
    상기 페이로드 블록에 상기 적어도 하나의 명령을 포함시키고;
    상기 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 송신하도록 구성되며,
    상기 예정되지 않은 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하도록 구성되고,
    상기 예정된 슬레이브 프로세서는, 상기 적어도 하나의 명령을 실행하도록 구성되고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여, 상기 마스터 프로세서에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 멀티-프로세서 시스템.
  22. 제 21 항에 있어서,
    상기 마스터 프로세서는, 또한,
    상기 패스-스루 커맨드를 식별하는 정보를 포함하고 상기 예정된 슬레이브 프로세서에 상기 패스-스루 커맨드를 디-코딩없이 포워딩하기 위한 요청을 포함하는 데이터 모듈을 생성하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시키도록 구성되는, 멀티-프로세서 시스템.
  23. 제 21 항에 있어서,
    상기 마스터 프로세서는, 또한,
    상기 예정된 슬레이브 프로세서를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어로 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시키도록 구성되는, 멀티-프로세서 시스템.
  24. 제 21 항에 있어서,
    상기 마스터 프로세서는, 또한,
    상기 페이로드 블록의 비트 길이를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시키도록 구성되는, 멀티-프로세서 시스템.
  25. 제 21 항에 있어서,
    상기 마스터 프로세서는, 상기 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 포워딩하는, 멀티-프로세서 시스템.
  26. 제 21 항에 있어서,
    상기 예정되지 않은 슬레이브 프로세서는, 상기 예정되지 않은 슬레이브 프로세서의 입력 버퍼로부터 상기 예정되지 않은 슬레이브 프로세서의 출력 버퍼로 상기 패스-스루 커맨드를 복사하는, 멀티-프로세서 시스템.
  27. 제 21 항에 있어서,
    상기 예정된 슬레이브 프로세서는, 또한, 상기 패스-스루 커맨드의 수신을 확인응답 (acknowledge) 하도록 구성되는, 멀티-프로세서 시스템.
  28. 삭제
  29. 제 21 항에 있어서,
    상기 멀티-프로세서 시스템은, 비디오 데이터의 프로세싱 또는 그래픽 렌더링 중 적어도 하나를 수행하는, 멀티-프로세서 시스템.
  30. 제 21 항에 있어서,
    상기 멀티-프로세서 시스템은, 셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터, 및 오디오/비디오-인에이블 디바이스로 이루어진 그룹으로부터 선택되는 무선 통신 장치의 일부인, 멀티-프로세서 시스템.
  31. 마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 갖는 멀티-프로세서 시스템으로서,
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된 헤더 블록, 및 페이로드 블록을 포함하는 패스-스루 커맨드를 생성하고, 상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 대해, 상기 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 컴퓨터 언어를 사용하여 코딩된 적어도 하나의 명령을 생성하고, 상기 페이로드 블록에 상기 적어도 하나의 명령을 포함시키고, 상기 마스터 프로세서에 커플링된 상기 슬레이브 프로세서들 중 하나의 슬레이브 프로세서에 상기 패스-스루 커맨드를 송신하는 제 1 수단; 및
    상기 파이프라인화된 슬레이브 프로세서들 중 예정되지 않은 슬레이브 프로세서로부터 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하고, 상기 예정된 슬레이브 프로세서에서 상기 적어도 하나의 명령을 실행하는 제 2 수단을 포함하고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여, 상기 제 1 수단에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 멀티-프로세서 시스템.
  32. 제 31 항에 있어서,
    상기 제 1 수단은 상기 마스터 프로세서에 의해 실행되는 컴퓨터 프로그램인, 멀티-프로세서 시스템.
  33. 제 31 항에 있어서,
    상기 제 2 수단은 상기 파이프라인화된 슬레이브 프로세서들에 의해 실행되는 컴퓨터 프로그램인, 멀티-프로세서 시스템.
  34. 제 31 항에 있어서,
    상기 제 1 수단은,
    상기 패스-스루 커맨드를 식별하는 정보를 포함하고 상기 예정된 슬레이브 프로세서에 상기 패스-스루 커맨드를 디-코딩없이 포워딩하기 위한 요청을 포함하는 데이터 모듈을 생성하며, 상기 헤더 블록에 상기 데이터 모듈을 포함시키는 수단을 포함하는, 멀티-프로세서 시스템.
  35. 제 31 항에 있어서,
    상기 제 1 수단은,
    상기 예정된 슬레이브 프로세서를 식별하는 정보를 포함하는 데이터 모듈을 생성하고, 상기 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어로 상기 데이터 모듈을 코딩하며, 상기 헤더 블록에 상기 데이터 모듈을 포함시키는 수단을 포함하는, 멀티-프로세서 시스템.
  36. 제 31 항에 있어서,
    상기 제 1 수단은,
    상기 페이로드 블록의 비트 길이를 식별하는 정보를 포함하는 데이터 모듈을 생성하고, 상기 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 상기 데이터 모듈을 코딩하며, 상기 헤더 블록에 상기 데이터 모듈을 포함시키는 수단을 포함하는, 멀티-프로세서 시스템.
  37. 제 31 항에 있어서,
    상기 제 2 수단은 상기 패스-스루 커맨드의 수신을 확인응답 (acknowledge) 하는 수단을 포함하는, 멀티-프로세서 시스템.
  38. 제 31 항에 있어서,
    상기 멀티-프로세서 시스템은 비디오 데이터의 프로세싱 또는 그래픽 렌더링 중 적어도 하나를 수행하는, 멀티-프로세서 시스템.
  39. 제 31 항에 있어서,
    상기 멀티-프로세서 시스템은, 셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터, 및 오디오/비디오-인에이블 디바이스로 이루어진 그룹으로부터 선택되는 무선 통신 장치의 일부인, 멀티-프로세서 시스템.
  40. 마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 갖는 멀티-프로세서 시스템으로서,
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 코드를 사용하여 패스-스루 커맨드를 생성하는 제 1 수단으로서, 상기 패스-스루 커맨드는 상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 코드에 적어도 하나의 명령을 포함하는, 상기 제 1 수단; 및
    상기 예정된 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하는 제 2 수단을 포함하고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 코드를 사용하여, 상기 제 1 수단에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 멀티-프로세서 시스템.
  41. 제 40 항에 있어서,
    상기 제 1 수단은 상기 마스터 프로세서에 의해 실행되는 컴퓨터 프로그램인, 멀티-프로세서 시스템.
  42. 제 40 항에 있어서,
    상기 제 2 수단은 상기 파이프라인화된 슬레이브 프로세서들에 의해 실행되는 컴퓨터 프로그램인, 멀티-프로세서 시스템.
  43. 제 40 항에 있어서,
    상기 패스-스루 커맨드는, 상기 예정된 슬레이브 프로세서로의 상기 패스-스루 커맨드의 포워딩을 지시하는 명령들을 포함하는, 멀티-프로세서 시스템.
  44. 제 40 항에 있어서,
    상기 예정된 슬레이브 프로세서는, 상기 적어도 하나의 명령을 실행하고, 상기 패스-스루 커맨드의 포워딩을 종료하는, 멀티-프로세서 시스템.
  45. 삭제
  46. 마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 포함하는 멀티-프로세서 시스템으로 하여금,
    상기 마스터 프로세서에서: 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된 헤더 블록, 및 페이로드 블록을 포함하는 패스-스루 커맨드를 생성하게 하고; 상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 대해, 상기 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 컴퓨터 언어를 사용하여 코딩된 적어도 하나의 명령을 생성하게 하고; 상기 페이로드 블록에 상기 적어도 하나의 명령을 포함시키게 하고; 상기 마스터 프로세서에 커플링된 슬레이브 프로세서에 상기 패스-스루 커맨드를 송신하게 하기 위한 명령들;
    상기 파이프라인화된 슬레이브 프로세서들 중 예정되지 않은 슬레이브 프로세서에서: 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하게 하기 위한 명령들; 및
    상기 예정된 슬레이브 프로세서에서: 상기 적어도 하나의 명령을 실행하게 하기 위한 명령들을 갖고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여, 상기 마스터 프로세서에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 컴퓨터 판독가능 매체.
  47. 제 46 항에 있어서,
    상기 마스터 프로세서에서,
    상기 패스-스루 커맨드를 식별하는 정보를 포함하고 상기 예정된 슬레이브 프로세서에 상기 패스-스루 커맨드를 디-코딩없이 포워딩하기 위한 요청을 포함하는 데이터 모듈을 생성하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써, 상기 패스-스루 커맨드가 생성되는, 컴퓨터 판독가능 매체.
  48. 제 46 항에 있어서,
    상기 마스터 프로세서에서,
    상기 예정된 슬레이브 프로세서를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어로 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써, 상기 패스-스루 커맨드가 생성되는, 컴퓨터 판독가능 매체.
  49. 제 46 항에 있어서,
    상기 마스터 프로세서에서,
    상기 페이로드 블록의 비트 길이를 식별하는 정보를 포함하는 데이터 모듈을 생성하고; 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 상기 데이터 모듈을 코딩하며; 상기 헤더 블록에 상기 데이터 모듈을 포함시킴으로써, 상기 패스-스루 커맨드가 생성되는, 컴퓨터 판독가능 매체.
  50. 제 46 항에 있어서,
    상기 마스터 프로세서에서,
    상기 파이프라인화된 슬레이브 프로세서들 중 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 포워딩함으로써, 상기 패스-스루 커맨드가 송신되는, 컴퓨터 판독가능 매체.
  51. 제 46 항에 있어서,
    상기 예정되지 않은 슬레이브 프로세서로 하여금, 상기 예정되지 않은 슬레이브 프로세서의 입력 버퍼로부터 상기 예정되지 않은 슬레이브 프로세서의 출력 버퍼로 상기 패스-스루 커맨드를 복사하게 하기 위한 명령들을 또한 갖는, 컴퓨터 판독가능 매체.
  52. 제 46 항에 있어서,
    상기 예정된 슬레이브 프로세서로 하여금 상기 패스-스루 커맨드의 수신을 확인응답 (acknowledge) 하게 하기 위한 명령들을 또한 갖는, 컴퓨터 판독가능 매체.
  53. 삭제
  54. 제 46 항에 있어서,
    상기 마스터 프로세서 및 상기 파이프라인화된 슬레이브 프로세서들은, 셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터, 및 오디오/비디오-인에이블 디바이스로 이루어진 그룹으로부터 선택되는 무선 통신 장치에서 비디오 데이터의 프로세싱 또는 그래픽 렌더링 중 적어도 하나를 위해 구성되는, 컴퓨터 판독가능 매체.
  55. 마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 포함하는 멀티-프로세서 시스템으로 하여금,
    상기 마스터 프로세서에서: 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 코드를 사용하여 패스-스루 커맨드를 생성하게 하기 위한 명령들로서, 상기 패스-스루 커맨드는 상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 코드에 적어도 하나의 명령을 포함하는, 상기 패스-스루 커맨드를 생성하게 하기 위한 명령들; 및
    상기 파이프라인화된 슬레이브 프로세서들 중 예정되지 않은 슬라이브 프로세서에서: 상기 패스-스루 커맨드가 상기 예정된 슬레이브 프로세서에 도달할 때까지, 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하게 하기 위한 명령들을 갖고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 코드를 사용하여, 상기 마스터 프로세서에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 컴퓨터 판독가능 매체.
  56. 마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 갖는 멀티-프로세서 시스템에서 슬레이브 프로세서에 명령들을 전달하기 위한 방법으로서,
    상기 마스터 프로세서에서:
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 코딩된 헤더 블록, 및 페이로드 블록을 포함하는 패스-스루 커맨드를 생성하는 단계;
    상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 대해, 상기 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 컴퓨터 언어를 사용하여 코딩된 적어도 하나의 명령을 생성하는 단계;
    상기 페이로드 블록에 상기 적어도 하나의 명령을 포함시키는 단계; 및
    상기 파이프라인화된 슬레이브 프로세서들 중 상기 마스터 프로세서에 커플링하기 위해 구성되는 슬레이브 프로세서에 상기 패스-스루 커맨드를 송신하는 단계;
    예정되지 않은 슬레이브 프로세서에서:
    상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하는 단계; 및
    상기 예정된 슬레이브 프로세서에서:
    상기 적어도 하나의 명령을 실행하는 단계를 포함하고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여, 상기 마스터 프로세서에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 명령 전달 방법.
  57. 제 56 항에 있어서,
    상기 패스-스루 커맨드를 생성하는 단계는,
    상기 패스-스루 커맨드를 식별하는 정보를 포함하고 상기 예정된 슬레이브 프로세서에 상기 패스-스루 커맨드를 디코딩없이 포워딩하기 위한 요청을 포함하는 데이터 모듈을 생성하는 단계; 및
    상기 헤더 블록에 상기 데이터 모듈을 포함시키는 단계를 포함하는, 명령 전달 방법.
  58. 제 56 항에 있어서,
    상기 패스-스루 커맨드를 생성하는 단계는,
    상기 예정된 슬레이브 프로세서를 식별하는 정보를 포함하는 데이터 모듈을 생성하는 단계;
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어로 상기 데이터 모듈을 코딩하는 단계; 및
    상기 헤더 블록에 상기 데이터 모듈을 포함시키는 단계를 포함하는, 명령 전달 방법.
  59. 제 56 항에 있어서,
    상기 패스-스루 커맨드를 생성하는 단계는,
    상기 페이로드 블록의 비트 길이를 식별하는 정보를 포함하는 데이터 모듈을 생성하는 단계;
    상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 컴퓨터 언어를 사용하여 상기 데이터 모듈을 코딩하는 단계; 및
    상기 헤더 블록에 상기 데이터 모듈을 포함시키는 단계를 포함하는, 명령 전달 방법.
  60. 제 56 항에 있어서,
    상기 패스-스루 커맨드를 송신하는 단계는,
    상기 파이프라인화된 슬레이브 프로세서들 중 최외각 슬레이브 프로세서에 상기 패스-스루 커맨드를 포워딩하는 단계를 더 포함하는, 명령 전달 방법.
  61. 제 56 항에 있어서,
    상기 예정되지 않은 슬레이브 프로세서에서,
    상기 예정되지 않은 슬레이브 프로세서의 입력 버퍼로부터 상기 예정되지 않은 슬레이브 프로세서의 출력 버퍼로 상기 패스-스루 커맨드를 복사하는 단계를 더 포함하는, 명령 전달 방법.
  62. 제 56 항에 있어서,
    상기 예정된 슬레이브 프로세서에서,
    상기 패스-스루 커맨드의 수신을 확인응답 (acknowledge) 하는 단계를 더 포함하는, 명령 전달 방법.
  63. 삭제
  64. 제 56 항에 있어서,
    상기 마스터 프로세서 및 상기 슬레이브 프로세서들은, 비디오 데이터의 프로세싱 또는 그래픽 렌더링 중 적어도 하나를 위해 구성되는, 명령 전달 방법.
  65. 제 56 항에 기재된 방법을 실행하기 위해 마스터 프로세서 및 상기 마스터 프로세서에 의해 제어되는 슬레이브 프로세서들을 구비하며,
    셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터, 및 오디오/비디오-인에이블 디바이스로 이루어진 그룹으로부터 선택되는, 무선 장치.
  66. 마스터 프로세서 및 파이프라인화된 슬레이브 프로세서들을 갖는 멀티-프로세서 시스템에서 슬레이브 프로세서에 명령들을 전달하기 위한 방법으로서,
    상기 마스터 프로세서에서: 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 코드를 사용하여 패스-스루 커맨드를 생성하는 단계로서, 상기 패스-스루 커맨드는 상기 파이프라인화된 슬레이브 프로세서들 중 예정된 슬레이브 프로세서에 의해 이해되며 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상에 의해 이해되지 않는 코드에 적어도 하나의 명령을 포함하는, 상기 패스-스루 커맨드를 생성하는 단계; 및
    상기 파이프라인화된 슬레이브 프로세서들 중 슬레이브 프로세서에서: 상기 패스-스루 커맨드가 상기 예정된 슬레이브 프로세서에 도달할 때까지, 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 다운스트림 슬레이브 프로세서에 상기 패스-스루 커맨드를 리코딩없이 포워딩하는 단계를 포함하고,
    상기 예정된 슬레이브 프로세서는, 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 코드를 사용하여, 상기 마스터 프로세서에 어드레싱되는 소정의 응답 메시지를 포함하는 수정된 패스-스루 커맨드를 생성하며,
    상기 수정된 패스-스루 커맨드가 상기 마스터 프로세서에 도달할 때까지, 상기 수정된 패스-스루 커맨드는, 상기 파이프라인화된 슬레이브 프로세서들 중 하나 이상으로부터 인접한 업스트림 슬레이브 프로세서에 리코딩없이 포워딩되는, 명령 전달 방법.
  67. 제 66 항에 있어서,
    상기 예정된 슬레이브 프로세서에서,
    상기 적어도 하나의 명령을 실행하는 단계; 및
    상기 패스-스루 커맨드의 포워딩을 종료하는 단계를 더 포함하는, 명령 전달 방법.
  68. 제 66 항에 있어서,
    상기 예정된 슬레이브 프로세서에서; 상기 파이프라인화된 슬레이브 프로세서들에 의해 이해되는 코드를 사용하여 상기 마스터 프로세서에 어드레싱된 소정의 응답 메시지를 생성하는 단계; 및
    상기 슬레이브 프로세서에서; 상기 응답 메시지가 상기 마스터 프로세서에 도달할 때까지, 상기 파이프라인화된 슬레이브 프로세서들 중 인접한 업스트림 슬레이브 프로세서에 상기 응답 메시지를 리코딩없이 포워딩하는 단계를 더 포함하는, 명령 전달 방법.
  69. 제 66 항에 기재된 방법을 실행하기 위해 마스터 프로세서 및 상기 마스터 프로세서에 의해 제어되는 슬레이브 프로세서들을 구비하며,
    셀룰러 전화기, 비디오 게임 콘솔, 개인 휴대 정보 단말기 (PDA), 랩탑 컴퓨터, 및 오디오/비디오-인에이블 디바이스로 이루어진 그룹으로부터 선택되는, 무선 장치.
KR1020097022149A 2007-03-23 2008-03-21 멀티-프로세서 시스템을 위한 명령 전달 기술 KR101321603B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US89649707P 2007-03-23 2007-03-23
US60/896,497 2007-03-23
US11/945,790 2007-11-27
US11/945,790 US20080235493A1 (en) 2007-03-23 2007-11-27 Instruction communication techniques for multi-processor system
PCT/US2008/057912 WO2008118812A1 (en) 2007-03-23 2008-03-21 Instruction communication techniques for multi-processor system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020127005110A Division KR101297496B1 (ko) 2007-03-23 2008-03-21 멀티-프로세서 시스템을 위한 명령 전달 기술

Publications (2)

Publication Number Publication Date
KR20090132621A KR20090132621A (ko) 2009-12-30
KR101321603B1 true KR101321603B1 (ko) 2013-10-23

Family

ID=39775901

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020097022149A KR101321603B1 (ko) 2007-03-23 2008-03-21 멀티-프로세서 시스템을 위한 명령 전달 기술
KR1020127005110A KR101297496B1 (ko) 2007-03-23 2008-03-21 멀티-프로세서 시스템을 위한 명령 전달 기술

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020127005110A KR101297496B1 (ko) 2007-03-23 2008-03-21 멀티-프로세서 시스템을 위한 명령 전달 기술

Country Status (8)

Country Link
US (1) US20080235493A1 (ko)
EP (1) EP2137612B1 (ko)
JP (1) JP5547056B2 (ko)
KR (2) KR101321603B1 (ko)
CN (1) CN101636715B (ko)
CA (1) CA2680030A1 (ko)
TW (1) TW200844854A (ko)
WO (1) WO2008118812A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058191B2 (en) * 2010-03-22 2015-06-16 Qualcomm Incorporated Direct transfer of executable software image to memory allocated by target processor based on transferred image header
US9183614B2 (en) 2011-09-03 2015-11-10 Mireplica Technology, Llc Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets
US9792252B2 (en) 2013-05-31 2017-10-17 Microsoft Technology Licensing, Llc Incorporating a spatial array into one or more programmable processor cores
US9817670B2 (en) * 2013-12-13 2017-11-14 International Business Machines Corporation Framework to provide time bound execution of co-processor commands
US9661339B2 (en) * 2014-01-21 2017-05-23 Intel Corporation Multi-core architecture for low latency video decoder
US10037301B2 (en) * 2015-03-04 2018-07-31 Xilinx, Inc. Circuits and methods for inter-processor communication
JP2018514868A (ja) * 2015-04-30 2018-06-07 マイクロチップ テクノロジー インコーポレイテッドMicrochip Technology Incorporated 改良された命令セットを有する中央処理ユニット
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9720693B2 (en) 2015-06-26 2017-08-01 Microsoft Technology Licensing, Llc Bulk allocation of instruction blocks to a processor instruction window
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
CN113568665B (zh) * 2020-04-29 2023-11-17 北京希姆计算科技有限公司 一种数据处理装置
US11442852B2 (en) 2020-06-25 2022-09-13 Western Digital Technologies, Inc. Adaptive context metadata message for optimized two-chip performance

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152321A1 (en) 2001-04-16 2002-10-17 Franck Le Method and apparatus for classifying IP data

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6219961A (ja) * 1985-07-17 1987-01-28 Nec Corp マルチプロセツサのイニシヤルプログラムロ−デイング方式
US4763242A (en) * 1985-10-23 1988-08-09 Hewlett-Packard Company Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
JPH01229542A (ja) * 1988-03-10 1989-09-13 Meidensha Corp Lanを用いたデータ伝送装置
JPH0398153A (ja) * 1989-09-11 1991-04-23 Nippon Telegr & Teleph Corp <Ntt> 制御プログラム初期ロード方式
JP3083582B2 (ja) * 1991-04-30 2000-09-04 株式会社日立製作所 並列処理装置
US5960209A (en) * 1996-03-11 1999-09-28 Mitel Corporation Scaleable digital signal processor with parallel architecture
US5822300A (en) * 1996-04-02 1998-10-13 Compaq Computer Corporation Congestion management scheme
JP3401160B2 (ja) * 1997-03-28 2003-04-28 三菱電機株式会社 分散共有メモリネットワーク装置
US6426947B1 (en) * 1998-10-21 2002-07-30 Kim K. Banker Apparatus and method for unilateral topology discovery in network management
JP3629174B2 (ja) * 1999-12-27 2005-03-16 株式会社東芝 データ転送方法及び無線端末
IT1320286B1 (it) * 2000-03-29 2003-11-26 Campagnolo Srl Sistema di controllo multiprocessore per cicli, ad esempio perbiciclette da competizione.
JP2001326697A (ja) * 2000-05-17 2001-11-22 Hitachi Ltd 移動体通信網、端末装置、パケット通信制御方法、及び、関門装置
TW495714B (en) * 2000-12-05 2002-07-21 Faraday Tech Corp Device and method for data access control and applied instruction format thereof
US20030016650A1 (en) * 2001-07-17 2003-01-23 Felix Missel Method used to create multihop RF network based on a low performance 8 bit microcontroller
JP2003162514A (ja) * 2001-11-27 2003-06-06 Nec Corp 複数プロセッサによる並列分散制御方式
US20030225549A1 (en) * 2002-03-29 2003-12-04 Shay A. David Systems and methods for end-to-end quality of service measurements in a distributed network environment
US20040063438A1 (en) * 2002-10-01 2004-04-01 Hsu Yun-Hsiang Kenny Wireless point to multipoint system
JP4390568B2 (ja) * 2004-01-19 2009-12-24 富士通株式会社 遅延測定システム
US7228373B2 (en) * 2004-03-24 2007-06-05 Analog Devices, Inc. Serial digital communication system and method
JP2006129235A (ja) * 2004-10-29 2006-05-18 Tokyo Electron Device Ltd ネットワークシステム、マスターデバイス、スレーブデバイス、ネットワークシステムの立ち上げ制御方法。
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
JP2009194731A (ja) * 2008-02-15 2009-08-27 Fujitsu Ltd スレーブ装置、並びに、データ伝送システム及び方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152321A1 (en) 2001-04-16 2002-10-17 Franck Le Method and apparatus for classifying IP data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Proc. 1994 International Conference on Control vol.2 1994.3.21-24. CRUMMEY, T.P. et al A hardware scheduler for parallel processing in control applications pp.1098-1103 (1994.3.21-24.) *
Proc. The sixth Distributed Memory Computing Conference 1991.4.28-5.1. BAXTER,B. et al Apply:A Parallel Compiler on iWrap for Image-Processing Applications pp.186-193(1991.4.28-5.1.) *

Also Published As

Publication number Publication date
KR20090132621A (ko) 2009-12-30
EP2137612B1 (en) 2016-01-13
CA2680030A1 (en) 2008-10-02
CN101636715B (zh) 2014-03-12
JP5547056B2 (ja) 2014-07-09
KR101297496B1 (ko) 2013-08-16
KR20120037029A (ko) 2012-04-18
CN101636715A (zh) 2010-01-27
US20080235493A1 (en) 2008-09-25
EP2137612A1 (en) 2009-12-30
WO2008118812A1 (en) 2008-10-02
TW200844854A (en) 2008-11-16
JP2010522402A (ja) 2010-07-01

Similar Documents

Publication Publication Date Title
KR101321603B1 (ko) 멀티-프로세서 시스템을 위한 명령 전달 기술
US7827325B2 (en) Device, system, and method of speculative packet transmission
KR101417543B1 (ko) 패킷 해체/재구성 및 링크-제어
TW201005541A (en) Transmission device and data extended transmission method
US20140250158A1 (en) Method and device for obtaining file
TW201003665A (en) Efficient in-band reliability with separate cyclic redundancy code frames
KR100818818B1 (ko) 데이터 구동 아키텍처 메쉬 어레이에서의 메모리 액세스디바이스 제어
EP1531577B1 (en) Method for transmitting and processing command and data
US20150006773A1 (en) Control device and image forming apparatus
JP4423299B2 (ja) メディアアダプターに関連した複数の通信リンクの使用
CN105357305B (zh) 文件发送方法和装置、文件接收方法和装置和终端设备
US6208645B1 (en) Time multiplexing of cyclic redundancy functions in point-to-point ringlet-based computer systems
US10027466B2 (en) Full duplex radio communication
CN102598597B (zh) 无线网络中的包重传优化
TW201030670A (en) A data processing apparatus for segmental processing of input data, systems using the apparatus and methods for data transmittal
JP2010041117A (ja) 通信システムの制御方法及び受信装置
JP5728098B2 (ja) アプリケーションに依存しないオーディオアクセレレーションを行うシステム、方法、およびソフトウェアプログラム
CN117240633B (zh) 信息交互方法、电子设备和存储介质
CN113490292B (zh) 通信处理方法和电子设备
JP6785009B2 (ja) 通信装置、及び、通信装置の制御方法
JP2007060542A (ja) 通信装置および同装置のフレーム転送制御方法
US20090257539A1 (en) Transmission apparatus and method, reception apparatus and method, program, and transmission and reception system and method
CN104836674A (zh) 用于确保可靠性的多组播网络系统和方法
CN112437032A (zh) 数据收发装置及方法、存储介质和电子设备
JP4624252B2 (ja) データパケット転送装置、データパケット転送方法、及び、データパケット転送プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
A107 Divisional application of patent
E902 Notification of reason for refusal
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee