KR100891063B1 - 광대역 네트워크용 컴퓨터 구조 및 소프트웨어 셀 - Google Patents

광대역 네트워크용 컴퓨터 구조 및 소프트웨어 셀 Download PDF

Info

Publication number
KR100891063B1
KR100891063B1 KR1020037012340A KR20037012340A KR100891063B1 KR 100891063 B1 KR100891063 B1 KR 100891063B1 KR 1020037012340 A KR1020037012340 A KR 1020037012340A KR 20037012340 A KR20037012340 A KR 20037012340A KR 100891063 B1 KR100891063 B1 KR 100891063B1
Authority
KR
South Korea
Prior art keywords
apu
data
processors
network
processor
Prior art date
Application number
KR1020037012340A
Other languages
English (en)
Other versions
KR20030085037A (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 KR20030085037A publication Critical patent/KR20030085037A/ko
Application granted granted Critical
Publication of KR100891063B1 publication Critical patent/KR100891063B1/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에 따르면 광대역 네트워크에서 고속 처리를 위한 컴퓨터 구조 및 프로그래밍 모델이 제공된다. 구조는 보통의 컴퓨팅 모듈 및 균일한 소프트웨어 셀들의 일치된 모듈식 구조를 이용한다. 보통의 컴퓨팅 모듈은 제어 프로세서, 다수의 처리 유닛들, 처리 유닛들이 그로부터의 프로그램을 처리하는 다수의 국부 기억장치들, 직접 메모리 접근 제어기 및 공유된 주 메모리를 포함한다. 처리 유닛에 의해 공유된 주 메모리로부터/로 데이터를 대등하게 판독하고 기록하는 동기 시스템 및 방법이 또한 제공된다. 처리 유닛들에 의해 처리되는 프로그램들 중 데이터의 변조에 대항하는 안전도에 대하여 하드웨어 샌드박스 구조가 제공된다.
Figure R1020037012340
소프트웨어 셀, 전역 식별자, 네트워크, 프로그램, 데이터

Description

광대역 네트워크용 컴퓨터 구조 및 소프트웨어 셀 { Computer architecture and software cells for broadband networks }
본 발명은 컴퓨터 프로세서, 및 컴퓨터 네트워크에 대한 구조, 자세하게는, 광대역 환경에서의 컴퓨터 프로세서 및 컴퓨터 네트워크에 대한 구조에 관한 것이다. 본 발명은 더해서 이러한 구조를 위한 프로그래밍 모델에 관한 것이다.
현재의 컴퓨터 네트워크의, 예를 들어, 사무용 네트워크로 쓰이는 근거리 네트워크(LAN)와 인터넷과 같은 전역 네트워크의 컴퓨터와 컴퓨팅 장치는 주로 단독 컴퓨팅을 위해 설계되었다. 컴퓨터 네트워크를 통한 데이터와 응용 프로그램들("어플리케이션")의 공유는 이러한 컴퓨터와 컴퓨팅 장치의 주요한 설계 목표에 반영되지 않았다. 이런 컴퓨터와 컴퓨팅 장치는 또한 일반적으로, 예를 들어, 모토롤라, 인텔, 텍사스 인스트루먼트, 소니 혹은 그 외의 다양한 제조사들에 의해 제조된 광범위하고 다양한 프로세서를 사용하여 설계되었다. 이런 프로세서의 각각은 자체의 개별적인 명령 집합과 명령 집합 아키텍처(이하 ISA), 즉, 자체의 개별적인 어셈블리 언어 명령 집합과 이러한 명령을 수행하기 위한 주요한 계산 유닛과 메모리 유닛용 구조를 포함하고 있다. 따라서, 프로그래머는 이러한 프로세서에 응용 프로그램을 기록하기 위해서 각각의 프로세서의 명령 집합과 ISA를 이해해야 함이 요구된 다. 오늘날의 컴퓨터 네트워크에서의 컴퓨터들과 컴퓨팅 장치의 이 이종의 조합이 데이터와 응용 프로그램의 처리 및 공유를 복잡하게 한다. 더구나, 이 이종의 환경을 조정하기 위해서 같은 응용 프로그램의 다각적인 버전들이 종종 요구된다.
전역 네트워크, 상세하게는 인터넷과 접근된 컴퓨터와 컴퓨팅 장치의 유형은 광범위하다. 개인용 컴퓨터(PC)와 서버에 더해서, 이러한 컴퓨팅 장치는 휴대폰, 이동식 컴퓨터, 개인 휴대 정보 단말기(PDA), 셋톱 박스(set-top box), 디지털 텔레비전 등 그 외의 다양한 것들을 포함한다. 컴퓨터와 컴퓨팅 장치의 이러한 분류 속에서 데이터와 응용 프로그램의 공유에는 실질적인 문제가 생긴다.
수많은 기술이 이러한 문제를 극복하기 위해 시도되어 왔다. 이 기술들은, 특히, 정교한 인터페이스 및 복잡한 프로그래밍 기술을 포함한다. 이 해결법들은 실행을 위해 종종 처리 능력의 실질적인 증가를 요구한다. 이는 또한 종종 응용 프로그램을 처리하고 네트워크를 통해 데이터를 전송하는 데 요구되는 시간의 실질적인 증가를 가져온다.
데이터는 일반적으로 대응하는 응용 프로그램으로부터 분리되어 인터넷을 통해 전송된다. 이 접근은 응용 프로그램과 함께 그 응용 프로그램에 대응하는 전송된 데이터의 각각의 집합과 함께 보내지 않아도 되게 한다. 이 접근은 필요로 하는 대역폭의 양을 최소화하는 반면, 이는 종종 사용자들 사이에 실패를 야기한다. 전송된 데이터에 맞는 응용 프로그램, 혹은 가장 최신의 응용 프로그램은 고객의 컴퓨터에서 사용할 수 없을 수도 있다. 이 접근은 또한 네트워크 상에서 프로세서에 의해 채용된 다수의 다른 ISA 및 명령 집합을 위한 각각의 응용 프로그램의 다양한 버전을 기록하기를 요구한다.
자바 모델이 이 문제를 해결하기를 시도한다. 이 모델은 엄격한 보안 프로토콜을 따르는 작은 응용 프로그램(이하 애플릿;applet)을 채용한다. 애플릿은 서버 컴퓨터로부터 네트워크를 통해 전송되어 클라이언트 컴퓨터에 의해 실행된다. 다른 ISA를 채용하고 있는 클라이언트 컴퓨터에 같은 애플릿의 다른 버전이 송신되도록 하는 것을 피하기 위해, 모든 자바 애플릿은 클라이언트 컴퓨터의 자바 가상 머신 상에서 실행된다. 자바 가상 머신은 자바 ISA 및 자바 명령 집합을 포함하는 컴퓨터를 에뮬레이팅하는 소프트웨어이다. 그러나, 이 소프트웨어는 클라이언트 컴퓨터의 ISA 및 클라이언트 컴퓨터의 명령 집합 상에서 실행한다. 자바 가상 머신의 버전은 클라이언트 컴퓨터의 각각의 다른 ISA 및 명령 집합을 위해 제공된다. 개개 애플릿의 다양한 다른 버전은, 따라서, 요구되지 않는다. 각각의 클라이언트 컴퓨터는 오직 개별적인 ISA 및 명령 집합에 맞는 자바 가상 머신만을 다운로드하여 모든 자바 애플릿을 실행한다.
비록 각각의 ISA와 명령 집합을 위한 응용 프로그램의 다른 버전을 기록해야만 하는 문제의 해결책을 제공하였으나, 자바 처리 모델은 클라이언트 컴퓨터 상에 소프트웨어의 추가 레이어를 필요로 한다. 소프트웨어의 이 추가 레이어는 실질적으로 프로세서의 처리 속도를 떨어뜨린다. 속도에 있어서의 이 감소는 특히 실시간, 멀티미디어 응용 프로그램에 중요하다. 다운로드된 자바 애플릿은 또한 바이러스, 처리 기능 장애 등을 포함할 수도 있다. 이러한 바이러스와 기능 장애는 고객 데이터베이스를 손상시킬 수 있고 다른 피해를 야기할 수 있다. 비록 자바 모델에 채용된 보안 프로토콜이 이러한 문제를 "샌드박스" 소프트웨어, 즉, 자바 애플릿이 데이터를 기록할 수 없는 클라이언트 컴퓨터의 메모리 공간을 구현함으로써 극복하려는 시도를 하지만, 이 소프트웨어 구동 보안 모델은 종종 실행이 불안정하고 더 많은 처리를 필요로 하기도 한다.
실시간, 멀티미디어, 및 네트워크 응용 프로그램은 점점 더 중요해지고 있다. 이 네트워크 응용 프로그램들은 매우 빠른 처리 속도를 요구한다. 앞으로는 초당 수천 메가비트의 데이터가 이러한 응용 프로그램들에 필요할 수도 있다. 현재의 네트워크 구조, 상세히는 인터넷의 구조, 및 예를 들어, 현재, 자바 모델로 구현된 프로그래밍 모델은 이러한 처리 속도에 도달하는 것을 매우 어렵게 한다.
그러므로, 새로운 컴퓨터 구조, 컴퓨터 네트워크를 위한 새로운 구조 및 새로운 프로그래밍 모델이 요구된다. 이 새로운 구조 및 프로그래밍 모델은 네트워크의 다양한 구성원간의 데이터 및 응용 프로그램 공유의 문제를 컴퓨터 상의 추가되는 부담을 부과하지 않고 극복해야만 한다. 이 새로운 컴퓨터 구조 및 프로그래밍 모델은 또한 네트워크의 구성원간의 응용 프로그램 및 데이터의 공유에 있어서의 고유한 보안 문제를 극복해야만 한다.
한 양상에서, 본 발명은 컴퓨터, 컴퓨팅 장치 및 컴퓨터 네트워크를 위한 새로운 구조를 제공한다. 다른 양상에서는, 본 발명은 이러한 컴퓨터들, 컴퓨팅 장치 및 컴퓨터 네트워크를 위한 새로운 프로그래밍 모델을 제공한다.
본 발명에 따르면, 컴퓨터 네트워크의 모든 구성원은, 즉, 네트워크의 모든 컴퓨터들과 컴퓨팅 장치는, 공동 컴퓨팅 모듈로부터 구성된다. 이 공동 컴퓨팅 모듈은 일관된 구조 및 바람직하게는 같은 ISA를 채용한다. 네트워크의 구성원은 예를 들어, 클라이언트 컴퓨터, 서버, 개인용 컴퓨터, 이동식 컴퓨터, 게임 기기, 개인 휴대 단말기, 셋톱 박스, 디지털 텔레비전 및 컴퓨터 프로세서를 사용하는 그 외의 장치들이다. 일관된 모듈러 구조는 네트워크 구성원들에 의한 응용 프로그램의 효과적이고 고속의 처리 및 네트워크를 통한 응용 프로그램 및 데이터의 신속한 전송을 가능하게 한다. 이 구조는 또한 다양한 크기와 처리 능력의 네트워크 구성원의 형성 및 이러한 구성원들이 실시하는 처리를 위한 응용 프로그램의 준비를 간소화한다. 더해서, 본 발명의 한 실시형태에 따르면, 상기 네트워크와 접근된 다수의 프로세서를 포함하는 컴퓨터 네트워크가 제공되는데, 각각의 상기 프로세서는 동일한 ISA를 포함하는 다수의 제 1 처리 유닛 및 상기 제 1 처리 유닛을 제어하기 위한 제 2 처리 유닛을 포함하고, 상기 제 1 처리 유닛은 상기 네트워크를 통해 전송된 소프트웨어 셀을 처리하기 위해 조작가능하고, 각각의 상기 소프트웨어 셀은 상기 ISA와 호환되는 프로그램, 상기 프로그램과 연관된 데이터 및 네트워크를 통해 전송된 모든 상기 소프트웨어 셀 중에 유일하게 소프트웨어 셀을 확인하는 식별 부호를 포함하는 것을 특징으로 한다. 바람직하게는, 식별 부호는 상기 네트워크를 통해 전송된 모든 상기 소프트웨어 셀들 중에서 유일하게 소프트웨어 셀을 확인하는 식별 숫자이다.
다른 양상에서, 본 발명은 네트워크를 통해 데이터와 응용 프로그램을 전송하기 위한 그리고 네트워크의 구성원들 간의 데이터와 응용 프로그램의 처리를 위 한 새로운 프로그래밍 모델을 제공한다. 이 프로그래밍 모델은 네트워크의 어떠한 구성원들에 의해서도 처리할 수 있도록 네트워크를 통해 전송된 소프트웨어 셀을 채용한다. 각각의 소프트웨어 셀은 동일한 구조를 포함하고 응용 프로그램과 데이터 모두를 포함할 수 있다. 모듈러 컴퓨터 아키텍처가 제공한 고속의 처리 및 전송의 결과로, 이 셀들은 급속히 처리될 수 있다. 응용 프로그램용 코드는 바람직하게는 동일한 공동 명령 집합 및 ISA를 기반으로 한다. 각각의 소프트웨어 셀은 바람직하게는 글로벌 식별 부호(글로벌 ID) 및 셀의 처리에 필요로 하는 컴퓨팅 리소스의 양을 나타내는 정보를 포함한다. 모든 컴퓨팅 리소스가 동일한 기본 구조를 포함하고 동일한 ISA를 채용하므로, 이 처리를 실행하는 개별적인 리소스는 네트워크 상에 어디든 위치할 수 있고 동적으로 할당될 수 있다.
기본 처리 모듈러는 프로세서 요소(processor element; PE)이다. PE는 바람직하게는 처리 유닛(PU), 직접 메모리 접근 제어기(DMAC) 및 다수의 보조 처리 유닛(APU)을 포함한다. 바람직한 실시형태에서, PE는 여덟 개의 APU를 포함한다. PU 및 APU는 바람직하게는 크로스 바 구조를 포함하는 공유된 동적 막기억장치 (DRAM)와 상호 작용한다. PU는 APU에 의한 데이터 및 응용 프로그램의 처리를 계획하고 조정한다. APU는 이 처리를 병행하여 개별적으로 실행한다. DMAC는 공유된 DRAM에 저장된 데이터 및 응용 프로그램의 PU 및 APU에 의한 접근을 제어한다.
모듈러 구조에 따르면, 네트워크의 구성원에 의해 채용된 PE의 수는 그 구성원에 의해 요구되는 처리 능력을 기반으로 한다. 예를 들어, 서버는 네 개의 PE를 채용할 수도 있고, 워크스테이션은 두 개의 PE를 채용할 수도 있으며 PDA는 하나의 PE를 채용할 수도 있다. 특정한 소프트웨어 셀을 처리하는 데 분배된 PE의 APU의 숫자는 셀 안의 프로그램 및 데이터의 복잡성과 규모에 따른다.
바람직한 실시형태에서, 다수의 PE는 공유 DRAM과 연관된다. DRAM은 바람직하게는 다수의 섹션으로 구분되고, 그리고 이 섹션들의 각각은 다수의 메모리 뱅크로 구분된다. 특히 바람직한 실시형태에서, DRAM은 64개의 메모리 뱅크를 포함하고, 그리고 개개의 메모리 뱅크는 1 메가바이트의 저장 용량을 갖는다. DRAM의 개개의 섹션은 바람직하게는 뱅크 제어기에 의해 제어되고, 또한 PE의 개개의 DMAC는 바람직하게는 각각의 뱅크 제어기에 접근한다. 따라서, 이 실시형태의 개개의 PE의 DMAC는 공유 DRAM의 어느 부분에도 접근할 수가 있다.
또 다른 양상에서, 본 발명은 APU의 공유 DRAM으로부터의 데이터의 판독, 및 공유 DRAM으로의 기록을 위한 동기화된 시스템 및 방법을 제공한다. 이 시스템은 DRAM을 공유하는 다양한 APU와 다양한 PE 사이에서의 충돌을 피하도록 한다. 이 시스템과 방법에 따르면, DRAM의 영역은 F/E(full-empty) 비트들을 저장하기 위해 지정된다. 이 F/E 비트의 각각은 DRAM의 지정된 영역과 대응한다. 동기화된 시스템은 DRAM의 하드웨어에 통합되고, 따라서, 소프트웨어에서 실행되는 데이터 동기화 방식의 계산 과부하를 피하도록 한다.
본 발명은 또한 DRAM 안에 샌드박스를 구현하여 한 APU에 의해 처리되는 프로그램용 데이터로부터의 다른 APU에 의해 처리되는 프로그램용 데이터 손상을 보호한다. 각각의 샌드박스는 특정한 APU, 또는 APU 집합이 데이터를 판독하거나 기록할 수 없는 공유 DRAM의 영역 너머에 경계지어진다.
또 다른 양상에서, 본 발명은 APU로 PU의 명령을 배포하기 위한 시스템과 방법을 제공하여 APU의 응용 프로그램 및 데이터 처리를 개시한다. 이 명령들, 소위 APU 원격 절차 호출(ARPC),은 PU가 공동 처리기의 역할을 하는 APU 없이 APU의 응용 프로그램 및 데이터의 병렬 처리를 지휘하고 배열할 수 있도록 한다.
또 다른 양상에서, 본 발명은 스트리밍 데이터 처리를 위한 전용 파이프라인 구조 확립을 위한 시스템 및 방법을 제공한다. 이 시스템과 방법에 따르면, APU의 조정된 그룹, 및 이 APU와 연관된 메모리 샌드박스의 조정된 그룹은 이 데이터들을 처리하기 위해 PU에 의해 확립된다. 파이프라인의 전용 APU 및 메모리 샌드박스는 데이터의 처리가 일어나지 않는 기간 동안에도 파이프라인 전용이다. 다시 말해서, 전용 APU 및 그와 연관된 샌드박스는 이 기간 동안에 예약 상태에 놓인다.
또 다른 양상에서, 본 발명은 태스크의 처리를 위한 절대 타이머를 제공한다. 이 절대 타이머는 응용 프로그램 및 데이터를 처리하기 위해 APU에 의해 채용된 클럭 주파수에 독립적이다. 응용 프로그램은 절대 타이머에 의해 규정된 태스크용 타임 기간을 기초로 하여 기록된다. 만약 APU에 의해 채용된 클럭 주파수가 예를 들어, APU의 개선 등과 같은 이유로 향상된다면, 절대 타이머에 의해 규정된 바대로 지정된 태스크용 타임 기간은 동일하게 유지된다. 이 방식은 APU의 더 새로운 버전에 의한 개선된 처리 타임의 구현을 이 더 새로운 APU가 구형의 APU의 더 낮은 속도의 처리 타임을 위해 기록된 구형 응용 프로그램을 처리하지 못하게 됨 없이 가능하게 한다.
본 발명은 또한 선택적인 방식을 제공하여 더 빠른 처리 속도의 더 새로운 APU가 구형의 APU의 낮은 처리 속도를 위해 기록된 구형 응용 프로그램을 처리할 수 있도록 한다. 이 선택적인 방식에서, 이 구형의 응용 프로그램들을 처리하는 데 있어 APU에 의해 채용된 특정한 명령 혹은 마이크로코드는 개선된 속도로 인해 생긴 APU의 병렬 처리 조정의 문제를 처리하는 동안 분석된다. 비연산(no operation:이하 "NOOP") 명령은 프로그램에 의해 예정된 APU에 의한 순차적인 처리 완성을 유지하기 위해 이 APU 중의 몇몇에 의해 실행된 명령 안에 삽입된다. 이 명령들에 이 NOOP 명령들을 삽입함으로써, APU의 모든 명령들의 실행을 위한 정확한 타이밍이 유지된다.
또 다른 양상에서, 본 발명은 광 도파관이 집적된 집적 회로를 포함하는 칩 패키지를 제공한다.
도 1은 본 발명에 따른 컴퓨터 네트워크의 전반적인 구조를 도시한 도면이다.
도 2는 본 발명에 따른 프로세서 요소(PE)의 구조를 도시한 도면이다.
도 3은 본 발명에 따른 광대역 엔진(BE)의 구조를 도시한 도면이다.
도 4는 본 발명에 따른 보조 처리 유닛(APU)의 구조를 도시한 도면이다.
도 5는 본 발명에 따른 프로세서 요소(PE), 비주얼라이저(VS) 및 광 인터페이스의 구조를 도시한 도면이다.
도 6은 본 발명에 따른 프로세서 요소의 한 조합을 도시한 도면이다.
도 7은 본 발명에 따른 프로세서 요소의 또 다른 조합을 도시한다.
도 8은 본 발명에 따른 프로세서 요소의 또 다른 조합을 도시한다.
도 9는 본 발명에 따른 프로세서 요소의 또 다른 조합을 도시한다.
도 10은 본 발명에 따른 PE의 또 다른 조합을 도시한다.
도 11a는 본 발명에 따른 칩 패키지에 포함된 광 인터페이스의 집적을 도시한다.
도 11b는 도 11a의 광 인터페이스를 사용하는 프로세서의 형상의 도면이다.
도 11c는 도 11a의 광 인터페이스를 사용하는 프로세서의 다른 형상의 도면이다.
도 12a는 본 발명에 따른 메모리 시스템의 구조를 도시한다.
도 12b는 본 발명에 따른 제 1 광대역 엔진으로부터 제 2 광대역 엔진으로의 데이터의 기록을 도시한다.
도 13은 본 발명에 따른 PE를 위한 공유 메모리의 구조의 도면이다.
도 14a는 도 13에 나타난 메모리 뱅크의 하나의 구조를 도시한다.
도 14b는 도 13에 나타난 메모리 뱅크의 다른 구조를 도시한다.
도 15는 본 발명에 따른 DMAC에 대한 구조를 도시한다.
도 16은 본 발명에 따른 DMAC에 대한 대체 구조를 도시한다.
도 17a 내지 17o는 본 발명에 따른 데이터 동기의 운용을 도시한다.
도 18은 본 발명의 데이터 동기 구조에 따른 메모리 배치의 여러 상태를 도시한 세 가지의 상태 메모리 도면이다.
도 19는 본 발명에 따른 하드웨어 샌드박스에 대한 키 제어 테이블의 구조를 도시한다.
도 20은 본 발명에 따른 하드웨어 샌드박스에 대한 메모리 접근 키를 저장하는 구조를 도시한다.
도 21은 본 발명에 따른 하드웨어 샌드박스를 위한 메모리 접근 제어 테이블의 구조를 도시한다.
도 22는 도 19의 키 제어 테이블과 도 21의 메모리 접근 제어 테이블을 사용하는 메모리 샌드박스를 접근하기 위한 단계의 흐름도이다.
도 23은 본 발명에 따른 소프트웨어 셀의 구조를 도시한다.
도 24는 본 발명에 따른 원격 절차 호출의 발생을 위한 단계의 흐름도이다.
도 25는 본 발명에 따른 스트리밍 데이터의 처리를 위한 전용 파이프라인 구조를 도시한다.
도 26a 및 26b는 본 발명에 따른 스트리밍 데이터의 처리에 있어서 도 25의 전용 파이프라인에 의해 실행된 단계의 흐름도이다.
도 27은 본 발명에 따른 스트리밍 데이터의 처리를 위한 전용 파이프라인의 대체 구조를 도시한다.
도 28은 본 발명에 따른 APU에 의한 응용 프로그램과 데이터의 병렬 처리를 조정하기 위한 절대 타이머의 방식을 도시한다.
본 발명에 따른 컴퓨터 시스템(101)에 대한 전반적인 구조가 도 1에 나타나 있다.
이 도면에 도시된 바와 같이, 시스템(101)은 그 곳에 다수의 컴퓨터와 컴퓨팅 장치가 연결된 네트워크(104)를 포함한다. 네트워크(104)는 근거리 네트워크(LAN), 인터넷과 같은 전역 네트워크, 또는 다른 컴퓨터 네트워크가 될 수 있다.
네트워크(104)에 접근된 컴퓨터와 컴퓨팅 장치(네트워크의 구성원들)는 예를 들어 클라이언트 컴퓨터(106), 서버 컴퓨터(108), 개인 휴대 정보 단말기(PDA) (110), 디지털 텔레비전(DTV)(112)과 다른 유선 또는 무선의 컴퓨터와 컴퓨팅 장치를 포함한다. 네트워크(104)의 구성원에 의해 채용된 프로세서는 동일한 공동의 컴퓨팅 모듈로부터 구성된다. 또한 이 프로세서 전부는 동일한 ISA를 가지고 그리고 동일한 명령 집합에 따른 처리를 수행하는 것이 바람직하다. 어떤 특정한 프로세서에 포함된 모듈의 수는 그 프로세서에 요구되는 처리 능력에 의존한다.
예를 들어, 시스템(101)의 서버 컴퓨터들(108)은 클라이언트 컴퓨터(106)보다 더 많은 데이터와 응용 프로그램 처리를 실행하므로, 서버 컴퓨터(108)는 클라이언트 컴퓨터(106)보다 더 많은 컴퓨팅 모듈을 포함한다. 반면에 PDA(110)는 가장 적은 양의 처리를 실행하므로, 가장 적은 수의 컴퓨팅 모듈을 포함한다. DTV(112)는 클라이언트 컴퓨터(106)와 서버 컴퓨터(108) 사이 수준의 처리를 실행한다. 그러므로 DTV(112)는 클라이언트 컴퓨터(106) 보다는 많고 서버 컴퓨터(108) 보다는 적은 수의 컴퓨팅 모듈을 포함한다. 하기에 논의될 바와 같이, 각 컴퓨팅 모듈은 네트워크(104)를 통하여 전송된 데이터와 응용 프로그램의 병렬 처리의 실행을 위한 처리 제어기와 다수의 동일한 처리 유닛을 포함한다.
시스템(101)을 위한 이 동종의 구성은 적응성과 처리 속도, 처리의 효율성을 촉진한다. 시스템(101)의 개개의 구성원은 동일한 컴퓨팅 모듈의 하나나 다수(또는 어떤 분할)를 사용하여 처리를 실행하기 때문에, 데이터와 응용 프로그램의 실질 처리를 실행하는 특정 컴퓨터나 컴퓨팅 장치는 중요하지 않다. 더 나아가서, 특정 응용 프로그램과 데이터의 처리는 네트워크의 구성원에게 분담될 수 있다. 시스템을 통하여 시스템(101)에 의해 처리되는 데이터와 응용 프로그램을 포함하는 셀을 고유하게 확인함으로써, 처리결과는 이 처리가 일어나는 곳에 관계없이 처리를 요청한 컴퓨터나 컴퓨팅 장치에 전달될 수 있다. 이 처리를 실행하는 모듈이 공통 구조를 가지고 있고, 공통의 ISA를 채용하고 있기 때문에, 프로세서 중에서 호환성을 달성하기 위한 소프트웨어의 부가 레이어의 부담은 피할 수 있다. 이 구조와 프로그래밍 모델은 예를 들어 실시간, 멀티미디어 응용 프로그램을 실행하는 데 필요한 처리 속도를 촉진시킨다.
시스템(101)에 의해 촉진된 처리속도와 효율성을 더 활용하기 위해서, 이 시스템에 의해 처리된 데이터와 응용 프로그램은 고유하게 확인되고, 동일하게 포맷된 소프트웨어 셀(102)로 패키지된다. 각 소프트웨어 셀(102)은 응용 프로그램과 데이터 모두를 포함하거나, 포함할 수 있다. 각 소프트웨어 셀은 또한 네트워크(104)와 시스템(101)을 통하여 전역에서 셀을 확인하는 ID를 포함한다. 이 소프트웨어 셀 구조의 동일성과, 네트워크를 통한 소프트웨어 셀의 고유한 식별은, 네트워크의 어떤 컴퓨터나 컴퓨팅 장치에서도 응용 프로그램과 데이터의 처리를 용이하게 한다. 예를 들어, 클라이언트 컴퓨터(106)는 소프트웨어 셀(102)을 형성할 수도 있으나, 클라이언트 컴퓨터(106)의 한정된 처리 용량으로 인해, 이 소프트웨어 셀을 처리용 서버 컴퓨터(108)로 전송한다. 따라서, 소프트웨어 셀은 네트워크 상에서의 처리 자원의 이용도를 기초로 하여 네트워크(104)를 통하여 이동할 수 있다.
시스템(101)의 프로세서와 소프트웨어 셀의 동종 구조는 또한 오늘날 이종의 네트워크의 많은 문제를 피하게 한다. 예를 들어, 자바 가상 머신과 같은 가상 머신 등의 명령 집합을 사용하는 어떤 ISA의 응용 프로그램의 처리를 허용하는 비효율적인 프로그래밍 모델은 회피된다. 그러므로, 시스템(101)은 오늘날의 네트워크보다 광대역 처리를 보다 효율적이고 효과적으로 실행할 수 있다.
네트워크(104)의 모든 구성원에 대한 기본적인 처리 모듈은 프로세서 요소(PE)이다. 도 2는 PE의 구조를 도시하고 있다. 도면에 도시된 바와 같이, PE(201)는 처리 유닛(이하 PU)(203)과 직접 메모리 접근 제어기(이하 DMAC)(205)와 다수의 보조 처리 유닛들(이하 APU), 이른바 APU(207), APU(209), APU(211), APU(213), APU(215), APU(217), APU(219)와 APU(221)을 포함한다. 로컬 PE 버스(223)는 APU들과 DMAC(205)와 PU(203)사이에서 데이터와 응용 프로그램을 전송한다. 로컬 PE 버스(223)는, 예를 들어, 전통적인 구조를 포함하거나, 패킷 스위치 네트워크로써 실행될 수 있다. 패킷 스위치 네트워크로써의 실행은 비록 더 많은 하드웨어를 요구할 지라도 가용 대역폭을 증가시킨다.
PE(201)는 디지털 논리의 구현을 위한 다수의 방법을 사용하여 구축될 수 있다. 그러나, PE(201)는 바람직하게는 실리콘 기판상에 상보적 금속 산화물 반도체(CMOS)를 채용한 단일 집적 회로로 구현된다. 기판의 대체적인 물질은 갈륨 비소(gallium arsenide), 갈륨 알루미늄 비소(gallium aluminum arsenide)나 다른 다양한 도펀트를 채용한 소위 3족 화합물을 포함한다. PE(201)는 또한 초전도 물질, 예를 들면, 초고속 단자속양자(RSFQ: rapid single-flux-quantum) 로직을 사용하여 구현될 수 있다.
PE(201)는 고 대역폭 메모리 연결(227)을 통하여 동적 막기억장치(이하 DRAM)(225)와 밀접하게 결합되어 있다. DRAM(225)은 PE(201)에 대한 주기억장치로 기능한다. 물론 DRAM(225)이 바람직하게는 동적 막기억장치이지만, 다른 매개, 예를 들어 정적 막기억장치(SRAM), 자기 막기억장치(MRAM: Magnetic Random Access Memory), 광 메모리 혹은 홀로그래픽 메모리를 사용하여 구현될 수 있다. DMAC(205)은 DRAM(225)과 PE(201)의 APU 및 PU 사이의 데이터 전송을 용이하게 한다. 하기에서 보다 자세히 논의되는 바와 같이, DMAC(205)은 각 APU를 위해 각각의 APU만이 데이터를 기록할 수 있는 혹은 데이터를 읽어낼 수 있는 DRAM(225)내의 배타적인 영역을 지정한다. 이 배타적 영역은 샌드박스(sandbox)로 지정된다.
PU(203)는, 예를 들어, 데이터와 응용 프로그램을 단독 처리할 수 있는 표준 프로세서가 될 수 있다. 작동 중에, PU(203)는 APU에 의한 데이터와 응용 프로그램의 처리를 조정하고 지휘한다. APU는 바람직하게는 '단일 명령어, 다중 데이터' (SIMD) 프로세서이다. PU(203)의 제어하에 APU는 병렬적 또는 독립적인 방법으로 이 데이터와 응용 프로그램의 처리를 실행한다. DMAC(205)은 공유된 DRAM(225)에 저장된 데이터와 응용 프로그램에 PU(203)와 APU들의 접근을 제어한다. 비록 PE(201)가 바람직하게는 8개의 APU를 포함하지만, 요구되는 처리 능력에 따라 하나의 PE에 더 많은 혹은 더 적은 수의 APU들이 채용될 수 있다. 또한, PE(201)와 같은 다수의 PE들은 향상된 처리 능력을 제공하기 위하여 결합되거나 패키지될 수도 있다.
예를 들어, 도 3에서 도시된 바와 같이, 4개의 PE는 네트워크(104)의 구성원을 위한 단일 프로세서를 형성하기 위하여, 하나 혹은 그 이상의 칩 패키지로 패키지되거나 결합될 수 있다. 이 구성은 광대역 엔진(이하 BE)이라 칭해진다. 도 3에서 도시된 바와 같이, BE(301)는 즉, PE(303), PE(305), PE(307)와 PE(309)의 4개의 PE를 포함한다. 이 PE들간의 통신은 BE 버스(311)를 통한다. 광대역 메모리 연결(313)은 공유된 DRAM(315)과 이 PE들간에 통신을 제공한다. BE 버스(311) 대신에, BE(301)의 PE들 사이의 통신은 DRAM(315) 및 이 메모리 연결을 통하여 일어날 수 있다.
입/출력 인터페이스(317)와 외부 버스(319)는 광대역 엔진(301)과 네트워크(104)의 다른 구성원들 사이에 통신 경로를 제공한다. PE의 APU들에 의해 처리되는 데이터 및 응용 프로그램의 병렬 및 독립적인 처리와 유사하게 BE(301)의 각각의 PE는 병렬 및 독립적인 방법으로 데이터와 응용 프로그램의 처리를 수행한다.
도 4에는 APU의 구조가 도시된다. APU(402)는 국부 기억 장치(406), 레지스터(410), 네 개의 부동 소수점 유닛(412) 및 네 개의 정수 유닛(414)을 포함한다. 그러나, 요구되는 처리 능력에 따라 보다 더 많은 혹은 더 적은 수의 부동 소수점 유닛(412) 및 정수 유닛(414)을 채용할 수 있다. 바람직한 실시형태로써, 국부 기억 장치(406)는 128 킬로바이트의 저장 영역을 포함하고, 레지스터(410)의 용량은 128 × 128 비트이다. 부동 소수점 유닛(412)은 바람직하게는 초당 320억 부동 소수점 연산(32 GFLOPS)의 속도로 작동하고, 정수 유닛(414)은 초당 320억 정수 연산(32 GOPS)의 속도로 작동한다.
국부 기억 장치(406)는 캐시 메모리가 아니다. 국부 기억 장치(406)는 바람직하게는 정적 막기억장치(SRAM)로서 구성된다. APU를 위한 캐시 일관성 지원(cache coherency support)은 필요하지 않다. PU는 PU에 의해 개시된 직접 메모리 접근을 위한 캐시 일관성 지원이 필요할 수 있다. 그러나 APU에 의해 개시된 직접 메모리 접근을 위해서 혹은 외부 장치로부터 또는 외부 장치로의 접근을 위해서 캐시 일관성 지원은 필요하지 않다.
APU(402)는 응용 프로그램과 데이터를 APU로부터/로의 전송을 위한 버스(404)를 더 포함한다. 바람직한 실시형태에서, 이 버스는 1024비트의 폭이다. APU(402)는 내부 버스들(408, 420 및 418)을 더 포함한다. 바람직한 실시형태에서, 버스(408)는 256비트의 폭을 갖고 국부 기억 장치(406)와 레지스터(410) 사이의 통신을 제공한다. 버스들(420, 418)은 개별적으로 레지스터(410)와 부동 소수점 유닛(412), 그리고 레지스터(410)와 정수 유닛(414)사이에 각각의 통신을 제공한다. 바람직한 실시형태에서, 레지스터(410)로부터 부동 소수점 또는 정수 유닛으로의 버스들의(418, 420) 폭은 384비트이고, 그리고 부동 소수점 또는 정수 유닛에서 레지스터(410)로의 버스들의(418, 420) 폭은 128비트이다. 부동 소수점 또는 정수 유닛에서 레지스터(410)로의 버스 폭 보다 레지스터(410)에서 이들 유닛들로의 더 큰 버스의 폭은 처리 중에 레지스터(410)로부터 보다 큰 데이터 이동을 수용한다. 각각의 계산을 위해서 최대 세 워드를 필요로 한다. 그러나, 각 계산의 결과는 일반적으로 단지 하나의 워드이다.
도 5 내지 10은 네트워크(104)의 구성원들 간의 프로세서의 모듈러 구조를 더 도시하고 있다. 예를 들면, 도 5에서 도시된 바와 같이, 프로세서는 하나의 PE(502)를 포함할 수도 있다. 상기에 논의된 바와 같이, 이러한 PE는 일반적으로 PU, DMAC 및 8개의 APU를 포함한다. 각 APU는 국부 저장소(local storage; LS)를 포함하고 있다. 반면에, 프로세서는 비주얼라이저(VS)(505)의 구조를 포함할 수도 있다. 도 5에 도시된 바와 같이, VS(505)는 PU(512), DMAC(514) 및 4개의 APU(516, 518, 520, 522)를 포함한다. PE의 4개의 APU가 통상 차지하고 있던 칩 패키지 내의 공간은 이 경우에는 픽셀 엔진(508), 이미지 캐시(510) 및 음극선관 제어기 (CRTC)(504)로 대체되어 있다. PE(502) 또는 VS(505)를 위해 필요한 통신 기관 속도에 따라 광 인터페이스(506)가 또한 칩 패키지 상에 포함될 수도 있다.
이러한 표준화된, 모듈러 구조를 이용하여, 여러 가지 다양한 형태의 프로세서를 쉽고 효율적으로 구성할 수 있다. 예를 들면, 도 6에 도시된 프로세서는 두 개의 칩 패키지로 이루어져 있는데, 즉, 한 칩 패키지(602)는 한 개의 BE로 다른 한 칩 패키지(604)는 네 개의 VS로 이루어져 있다. 입출력(I/O)(606)은 칩 패키지(602)의 BE와 네트워크(104) 사이의 인터페이스를 제공한다. 버스(608)는 칩 패키지(602)와 칩 패키지(604) 사이의 통신을 제공한다. 입출력 프로세서(IOP) (610)는 I/O(606)로/로부터의 데이터 흐름을 제어한다. I/O(606)는 주문형 반도체(ASIC: application specific integrated circuit)로서 제작될 수도 있다. VS들로부터의 출력은 비디오 신호(612)이다.
도 7은 네트워크(104)의 다른 구성원에게 (또는 국부적으로 연결된 다른 칩 패키지와) 초고속 통신을 제공하기 위한 두 개의 광 인터페이스(704, 706)를 구비한 BE(702)용 칩 패키지를 도시하고 있다. BE(702)는, 예를 들면, 네트워크(104)상에서 서버로 기능할 수 있다.
도 8의 칩 패키지는 두 개의 PE(802, 804) 및 두 개의 VS(806, 808)를 포함한다. I/O(810)는 칩 패키지와 네트워크(104)사이에 인터페이스를 제공한다. 칩 패키지의 출력은 비디오 신호이다. 이러한 구성은, 예를 들면, 그래픽 워크스테이션으로 기능할 수도 있다.
도 9는 또 다른 구성을 도시한 것이다. 이 구성은 도 8에 도시된 구성의 1/2의 처리 능력을 포함한다. 두 개의 PE 대신에, 한 개의 PE(902)가 구비되어 있으며, 그리고 두 개의 VS 대신에 한 개의 VS(904)가 구비되어 있다. I/O(906)는 도 8에 도시된 I/O의 대역폭의 1/2를 가지고 있다. 그러나, 이러한 프로세서 역시 그래픽 워크스테이션으로 기능할 수도 있다.
도 10에 마지막 구성이 도시되어 있다. 이 프로세서는 오직 한 개의 VS와 I/O(1004)로 구성되어 있다. 이러한 형태는, 예를 들면, PDA로서 기능할 수도 있다.
도 11a는 네트워크(104) 상의 프로세서의 칩 패키지로 광 인터페이스를 집적 화한 도면이다. 이 광 인터페이스는 광 신호를 전기 신호로 전환하고 전기 신호를 광 신호로 전환한다. 또한 광 인터페이스는, 예를 들면, 갈륨 비소, 알루미늄 갈륨 비소, 게르마늄, 및 다른 원소들 또는 화합물을 포함하는 다양한 재료로부터 구성될 수 있다. 도면에 도시된 바와 같이, 광 인터페이스(1104, 1106)는 BE(1102)의 칩 패키지 상에 제작된다. BE 버스(1108)는 BE(1102)의 PE들(1110, 1112, 1114, 1116) 및 광 인터페이스들 사이의 통신을 제공한다. 광 인터페이스(1104)는 두 개의 포트(1118, 1120)를 포함하고 있고, 그리고 광 인터페이스(1106) 역시 두 개의 포트(1122, 1124)를 포함하고 있다. 포트(1118, 1120, 1122, 및 1124)는 광 도파관(1126, 1128, 1130 및 1132)에 각각 연결되어 있다. 광 신호는 이 광 도파관들을 통과하여 광 인터페이스(1104, 1106)의 포트를 통해 BE로/로부터 전송된다.
다수의 BE는 이러한 광 도파관 및 각 BE의 네 개의 광 포트를 사용하여 다양한 구성으로 함께 연결되어 질 수 있다. 예를 들면, 도 11b에 도시된 바와 같이, 두 개 혹은 그 이상의 BE(예를 들어,1152, 1154, 1156)는 이런 광 포트를 통해서 직렬로 연결될 수 있다. 이 예에서, BE(1152)의 광 인터페이스(1166)는 그것의 광 포트를 통해서 BE(1154)의 광 인터페이스(1160)의 광 포트에 연결된다. 유사한 방식으로, BE(1154) 상의 광 인터페이스(1162)의 광 포트는 BE(1156)의 광 인터페이스(1164)의 광 포트에 연결된다.
도 11c는 매트릭스 구성을 도시하고 있다. 이러한 구성에서, 각 BE의 광 인터페이스는 두 개의 다른 BE에 연결된다. 이 도면에서 보이는 바와 같이, BE(1172)의 광 인터페이스(1188)의 광 포트 중의 하나는 BE(1176)의 광 인터페이스(1182)의 한 광 포트에 연결되어 있다. 광 인터페이스(1188)의 다른 광 포트는 BE(1178)의 광 인터페이스(1184)의 광 포트에 연결되어 있다. 유사한 방식으로, BE(1174)의 광 인터페이스(1190)의 한 개의 광 포트는 BE(1178)의 광 인터페이스(1184)의 다른 광 포트에 연결되어 있다. 광 인터페이스(1190)의 다른 광 포트는 BE(1180)의 광 인터페이스(1186)의 광 포트에 연결되어 있다. 이 매트릭스 구성은 이와 유사한 방식으로 다른 BE들로 확장될 수 있다.
직렬 구성을 사용하거나 혹은 매트릭스 구성을 사용하여, 네트워크(104)용 프로세서는 원하는 크기 및 능력으로 구성될 수 있다. 물론, 다른 구성을 만들기 위해, BE의 광 인터페이스, 또는 BE보다 많거나 적은 수의 PE를 갖는 프로세서에 추가의 포트가 더해질 수 있다.
도 12a는 BE의 DRAM을 위한 제어 시스템 및 구조를 도시하고 있다. 유사한 제어 시스템과 구조가 다른 크기의 얼마간의 PE를 포함하는 프로세서에 채용된다. 도면에 보이는 바와 같이, 크로스 바(cross-bar) 스위치는 BE(1201)를 포함하는 네 개의 PE의 각 DMAC(1210)를 8개의 뱅크 제어기(1206)에 연결한다. 각 뱅크 제어기(1206)는 DRAM(1204)의 8개의 뱅크(1208)(도면에는 4개만 도시함)를 제어한다. 따라서 DRAM(1204)은 총 64개의 뱅크를 포함한다. 바람직한 실시형태에서, DRAM(1204)은 64 메가바이트의 용량을 갖고, 그리고 각 뱅크는 1 메가바이트의 용량을 갖는다. 이 바람직한 실시형태에서, 각 뱅크 내의 가장 작은 주소 지정가능한 메모리 유닛은 1024 비트 블록이다.
BE(1201)는 스위치 유닛(1212)을 역시 포함한다. 스위치 유닛(1212)은 BE(1201)에 가깝게 연결된 BE 상의 다른 APU가 DRAM(1204)으로 접근할 수 있게 한다. 따라서, 제 2 BE는 제 1 BE에 가까이 연결될 수 있고, 그리고 각 BE의 개개의 APU는 통상 APU에 접근 가능한 기억 장소 개수의 두 배를 어드레스 할 수 있다. 제 1 BE의 DRAM과 제 2 BE의 DRAM 서로 상호 간의 데이터의 직접 판독 또는 기록은 스위치 유닛(1212) 등과 같은 스위치 유닛을 통해서 일어날 수 있다.
예를 들면, 도 12b에 보이는 바와 같이, 이러한 기록을 위해서, 제 1 BE(1222)의 APU(1220)는 메모리에 입력하기 위해 제 2 BE(1226)의 DRAM(1228)의 기억 장소에(일반적으로는 BE(1222)의 DRAM(1224)에) 기록 명령을 내린다. BE(1222)의 DMAC(1230)은 크로스 바 스위치(1221)를 통해 기록 명령을 뱅크 제어기(1234)에 보내고, 뱅크 제어기(1234)는 뱅크 제어기(1234)와 연결된 외부 포트(1232)에 명령을 전송한다. BE(1226)의 DMAC(1238)은 기록 명령을 받아서 이 명령을 BE(1226)의 스위치 유닛(1240)으로 전달한다. 스위치 유닛(1240)은 기록 명령에 포함된 DRAM 주소를 식별하고 식별된 주소에 저장하기 위해 BE(1226)의 뱅크 제어기를 통하여 DRAM(1228)의 뱅크(1224)에 데이터를 보낸다. 따라서, 스위치 유닛(1240)은 DRAM(1224) 및 DRAM(1228)이 BE(1222)의 APU를 위한 단일 메모리 공간으로 기능할 수 있도록 한다.
도 13은 DRAM의 64뱅크 구성을 도시하고 있다. 이 뱅크들은 1302, 1304, 1306, 1308, 1310, 1312, 1314 및 1316의 8 행과 1320, 1322, 1324, 1326, 1328, 1330, 1332 및 1334의 8 열로 배열된다. 각 행은 뱅크 제어기에 의해 제어된다. 그러므로, 각 뱅크 제어기는 8 메가바이트의 메모리를 제어한다.
도 14a 및 도 14b는 주소 지정가능한 DRAM의 메모리 유닛의 최소 단위, 예를 들면, 1024 비트의 블록을 저장하고 접근하기 위한 다른 구조를 도시하고 있다. 도 14a에서, DMAC(1402)는 한 개의 뱅크(1404) 내에 8개의 1024 비트 블록(1406)을 저장한다. 반면에, 도 14b에서, DMAC(1412)가 1024비트를 포함하는 데이터 블록을 판독하고 기록하는 동안, 이 블록들은 뱅크(1414) 및 뱅크(1416)의 두 뱅크 사이에 인터리브된다. 그러므로 이 뱅크들 각각은 16개의 데이터 블록을 포함하고, 각 데이터 블록은 512 비트를 포함한다. 이러한 인터리빙은 DRAM에 대한 보다 빠른 접근을 용이하게 할 수 있고 어떠한 응용 프로그램을 처리하는 데 유용하다.
도 15는 PE 내의 DMAC(1506)을 위한 구조를 도시하고 있다. 도시된 바와 같이, DMAC(1506)를 포함하는 하드웨어 구조는 PE의 여러 곳에 배포되어 있어 각 APU(1502)는 DMAC(1506)의 노드(1504)에 직접 접근이 가능하다. 각 노드는 직접 접근할 수 있는 APU에 의한 메모리 접근에 적합한 로직을 실행한다.
도 16은 DMAC의 선택적인 실시형태, 즉, 배포되지 않은 구조를 보여준다. 이 경우에는, DMAC(1606)의 하드웨어 구조는 한곳에 집중되어 있다. APU(1602)와 PU(1604)는 로컬 PE 버스(1607)를 통하여 DMAC(1606)과 통신한다. DMAC(1606)은 크로스 바 스위치를 통하여 버스(1608)에 연결되어 있다. 버스(1608)는 DRAM(1610)과 연결된다.
상기 논의된 바와 같이, PE의 모든 다수의 APU는 공유된 DRAM의 독립적으로 데이터에 접근할 수 있다. 그 결과, 제 1 APU는 제 2 APU가 제 1 APU의 국부 저장소 안의 특정한 데이터를 요구할 동안 이 데이터들에 근거해서 작동할 수 있다. 데 이터가 공유된 DRAM으로부터 같은 시간에 제 2 APU에 제공된다면, 데이터의 가치를 변하게 할 수 있는 제 1 APU의 진행되는 처리로 인해 이 데이터는 무효일 수 있다. 따라서, 제 2 프로세서가 공유된 DRAM으로부터 제 1 프로세서와 같은 시간에 데이터를 수신한다면, 제 2 프로세서는 잘못된 결과를 생성할 것이다. 예를 들면, 이 데이터는 전체 변수에서 특별한 값일 수 있다. 만약 제 1 프로세서가 데이터를 처리하는 동안 값을 변화시킨다면, 제 2 프로세서는 이전의 값을 수신할 것이다. 따라서, APU들이 공유된 DRAM내의 기억 장소로부터/로 데이터의 판독과 기록을 동기화하는 방식이 필요하다. 따라서, 이러한 방식은 다른 APU가 현재 그것의 국부 저장소에서 운용중인 데이터를 기억 장소로부터 판독과, 현재의 데이터를 저장하는 기억 장소에 데이터의 기록을 막아야 한다.
이러한 문제를 극복하기 위해서, DRAM의 각각의 주소 지정가능한 기억 장소를 위해, 부가 메모리 세그먼트가 기억 장소에 저장된 데이터와 관련한 상태 정보를 저장하기 위해 DRAM내에 할당된다. 이 상태 정보는 F/E(full/empty) 비트, 기억 장소로부터 데이터를 요청한 APU의 식별 부호(APU ID) 및 데이터를 요청한 APU내의 요청된 데이터가 판독되어야 할 국부 저장소의 주소(LS address)를 포함한다. DRAM의 주소 지정가능 기억 장소는 어떤 크기라도 가능하다. 바람직한 실시형태에서, 크기는 1024비트이다.
F/E 비트를 1로 설정하는 것은 연관된 기억 장소에 저장된 데이터가 존재한다는 것을 나타낸다. 반면에, F/E 비트를 0으로 설정하는 것은 해당 기억 장소에 저장된 데이터가 존재하지 않는다는 것을 나타낸다. F/E 비트가 0으로 설정되어 있 을 때 APU가 데이터를 요청하면, APU는 데이터의 즉시 판독이 금지된다. 이 경우에, 데이터를 요청한 APU를 확인하는 APU ID와, 데이터가 현재 존재할 때 데이터가 판독 될 이 APU의 국부 저장소 내 기억 장소를 확인하는 LS 주소는 부가 메모리 세그먼트에 입력된다.
부가 메모리 세그먼트가 APU의 국부 저장소내 각 기억 장소를 위하여 역시 할당된다. 이 부가 메모리 세그먼트는 "사용중 비트(busy bit)"를 지시하는 한 비트를 저장한다. 사용중 비트는 DRAM으로부터 가져올 특정의 데이터의 저장을 위해 연관된 LS 기억 장소를 예약하기 위해 사용된다. 사용중 비트가 국부 저장소 내 특정한 기억 장소를 위해 1로 지정되어 있으면, APU는 이 기억 장소를 단지 특정한 데이터를 기록하기 위해서만 사용할 수 있다. 반면에, 사용중 비트가 국부 저장소 내 특정한 기억 장소를 위해 0으로 지정되어 있으면, APU는 어떤 데이터를 저장하기 위해서도 이 기억 장소를 사용할 수 있다.
PE의 공유된 DRAM으로부터/으로 데이터의 판독/기록을 동기화하는데 사용된 F/E 비트, APU ID, LS 주소 및 사용중 비트를 포함하는 예가 도 17a 내지 도 17o에 도시되어 있다.
도 17a에 보이는 바와 같이, 하나 이상의 PE(1720)들은 DRAM(1702)과 상호작용한다. PE(1720)는 APU(1722, 1740)를 포함한다. APU(1722)는 제어 로직(1724)을 포함하고, APU(1740)는 제어 로직(1742)을 포함한다. APU(1722)는 국부 저장소 (1726)를 역시 포함한다. 이 국부 저장소는 다수의 주소 지정가능한 기억 장소(1728)를 포함한다. APU(1740)는 국부 저장소(1744)를 포함하고, 이 국부 저장 소는 역시 다수의 주소 지정가능한 기억 장소(1746)를 포함한다. 모든 주소 지정가능한 기억 장소들은 바람직하게 1024비트의 크기를 갖는다.
부가 메모리 세그먼트는 각 LS의 주소 지정가능한 기억 장소와 연관되어 있다. 예를 들면, 메모리 세그먼트(1729, 1734)는 국부 기억 장치 장소(1731, 1732)와 각각 연관되어 있고, 메모리 세그먼트(1752)는 국부 기억 장치 장소(1750)와 연관되어 있다. 위에서 언급한 "사용중 비트"는 이 부가 메모리 세그먼트들의 각각에 저장되어 있다. 국부 기억 장치 장소(1732)에는 이 장소가 데이터를 포함하고 있는지를 나타내는 몇 개의 X들이 있다.
DRAM(1702)은 다수의 기억 장소들(1706, 1708)을 포함하는 주소 지정가능한 기억 장소(1704)를 포함한다. 이 기억 장소는 바람직하게는 1024비트의 크기이다. 부가 메모리 세그먼트는 이 기억 장소와 역시 연관된다. 예를 들면, 부가 메모리 세그먼트(1760)는 기억 장소(1706)와 연관되고, 부가 메모리 세그먼트(1762)는 기억 장소(1708)와 연관된다. 각 기억 장소 내에 저장된 데이터에 관련한 상태 정보는 그 기억 장소와 연관된 메모리 세그먼트에 저장된다. 상기 논의된 바와 같이, 이 상태 정보는 F/E 비트, APU ID 및 LS 주소를 포함한다. 예를 들면, 기억 장소(1708)를 위해서, 상태 정보는 F/E 비트(1712), APU ID(1714) 및 LS 주소(1716)를 포함한다.
상태 정보 및 사용중 비트를 사용하여, PE의 APU들 또는 PE 그룹들 중에서 공유된 DRAM으로/으로부터의 데이터의 동기화된 판독 및 기록이 이루어질 수 있다.
도 17b는 APU(1722)의 LS 기억 장소(1732)로부터 DRAM(1702)의 기억 장소(1708)로 데이터의 동기화된 기록 개시를 도시하고 있다. APU(1722)의 제어기(1724)는 이 데이터들의 동기화된 기록을 개시한다. 기억 장소(1708)가 비어 있기 때문에, F/E 비트(1712)는 0으로 지정되어 있다. 그 결과, LS 장소(1732) 내의 데이터는 기억 장소(1708)에 쓰여 질 수 있다. 반면에, 기억 장소(1708)가 현재 유효한 데이터를 포함하고 있다고 지시하기 위해 상기 비트가 1로 지정되어 있으면, 제어기(1722)는 에러 메시지를 수신하고 이 기억 장소에 데이터를 기록하는 것이 금지될 것이다.
기억 장소(1708)에 데이터의 성공적인 동기화된 기록 결과가 도 17c에 도시되어 있다. 기록된 데이터는 기억 장소(1708)에 저장되어 있고, F/E 비트(1712)는 1로 지정된다. 이 지정은 기억 장소(1708)가 사용중이고 이 기억 장소 내의 데이터가 현재 유효하게 존재함을 지시한다.
도 17d는 DRAM(1702)의 기억 장소(1708)로부터 국부 저장소(1744)의 LS 기억 장소(1750)로 데이터의 동기화된 판독의 개시를 도시하고 있다. 이 판독을 개시하기 위해, LS 기억 장소(1750)의 메모리 세그먼트(1752)의 사용중 비트는 이 데이터를 위한 이 기억 장소를 예약하기 위해 1로 지정된다. 이 사용중 비트의 1로 지정은 APU(1740)가 이 기억 장소에 다른 데이터를 저장하지 못하게 한다.
도 17e에 보이는 바와 같이, 다음으로 제어 로직(1742)은 DRAM(1702)의 기억 장소(1708)에 동기 읽기 명령(synchronize read command)을 보낸다. 이 기억 장소와 연관된 F/E 비트(1712)가 1로 지정되어 있기 때문에, 기억 장소(1708)에 저장된 데이터는 유효하게 존재하는 것으로 여겨진다. 그 결과, 기억 장소(1708)로부터 LS 기억 장소(1750)로의 데이터 전송을 준비함에 있어, F/E 비트(1712)는 0으로 지정된다. 이 지정이 도 17f에 도시된다. 이 데이터의 판독의 결과로, 이 비트의 0으로 지정은 기억 장소(1708)의 데이터가 무효일 것을 나타낸다.
도 17g에 보이는 바와 같이, 다음으로 기억 장소(1708) 내의 데이터가 기억 장소(1708)로부터 LS 기억 장소(1750)로 판독된다. 도 17h는 마지막 상태를 도시한다. 기억 장소(1708)내의 데이터의 복사본이 LS 기억 장소(1750)에 저장된다. F/E 비트(1712)를 0으로 지정되어 기억 장소(1708) 내의 데이터가 무효함을 표시한다. 이 무효는 APU(1740)에 의해 만들어지는 데이터에 대한 변경의 결과이다. 메모리 세그먼트(1752) 내의 사용중 비트는 역시 0으로 지정된다. 이러한 지정은 LS 기억 장소(1750)가 어떤 목적으로도 현재 이용할 수 있는 상태에 있음을, 즉, 이 LS 기억 장소는 특정의 데이터 수신을 기다리기 위해 예약된 상태가 더 이상 아님을 나타낸다. 그러므로, LS 기억 장소(1750)는 어떤 목적으로도 APU(1740)에 의해 현재 접근될 수가 있다.
도 17i 내지 17o는 DRAM(1702)의 기억 장소를 위한 F/E 비트가 0으로 지정 되어 이 기억 장소 내의 데이터가 현재 유효하지 않다는 것을 표시할 때, DRAM(1702)의 기억 장소, 예를 들면 기억 장소(1708)로부터 APU의 국부 저장소의 LS 기억 장소, 예를 들면 국부 저장소(1744)의 LS 기억 장소(1752)로 데이터의 동기화된 판독을 도시하고 있다. 도 17i에 보여지는 바와 같이, 이 전송을 개시하기 위해, LS 기억 장소(1750)의 메모리 세그먼트(1752)의 사용중 비트는 데이터 전송에 필요한 LS 기억 장소를 예약하기 위해 1로 지정된다. 그 다음에, 도 17j에 보이 는 바와 같이, 제어 로직(1742)은 DRAM(1702)의 기억 장소(1708)를 위하여 동기 읽기 명령을 보낸다. 이 기억 장소와 연관된 F/E 비트(1712)는 0으로 지정되었기 때문에, 기억 장소(1708)에 저장된 데이터는 무효하다. 그 결과, 이 기억 장소로부터 데이터를 직접 판독하는 것을 막기 위해 신호가 제어 로직(1742)으로 전송된다.
도 17k에 도시된 바와 같이, 다음으로 읽기 명령을 위한 APU ID(1714)와 LS 주소(1716)가 메모리 세그먼트(1762)에 기록된다. 이 경우에, APU(1740)용 APU ID와 LS 기억 장소(1750)용 LS 기억 장소는 메모리 세그먼트(1762)에 기록된다. 따라서, 기억 장소(1708) 내의 데이터가 존재할 때, 이 APU ID와 LS 기억 장소는 현재 데이터가 전송될 장소를 결정하기 위해 사용된다.
APU가 이 기억 장소(1708)에 데이터를 입력할 때, 이 기억 장소(1708) 내의 데이터는 유효하게 존재하게 된다. 예를 들어, APU(1722)의 기억 장소(1732)로부터 기억 장소(1708)로 데이터의 동기화된 기록이 도 17l에 도시되어 있다. 이 기억 장소를 위한 F/E 비트(1712)가 0으로 지정되어 있기 때문에, 이 데이터들의 동기화된 기록이 허가된다.
도 17m에 보여지는 바와 같이, 이 기록에 따라, 기억 장소(1708) 내의 데이터는 유효하게 존재하게 된다. 따라서, 메모리 세그먼트(1762)로부터의 APU ID(1714)와 LS 주소(1716)는 메모리 세그먼트(1762)로부터 즉시 판독되고, 이 정보는 이 세그먼트로부터 삭제된다. F/E 비트(1712)는 또한 기억 장소(1708) 내의 데이터를 즉시 읽을 것을 기대하여 역시 0으로 지정된다. 도 17n에 보여지는 바와 같이, APU ID(1714) 및 LS 주소(1716)를 판독하는 즉시, 이 정보는 기억 장소(1708) 내의 유효한 데이터를 APU(1740)의 LS 기억 장소(1750)로 판독하기 위하여 즉시 사용된다. 마지막 상태가 도 17o에 도시된다. 도면은 기억 장소(1708)로부터 기억 장소(1750)로 복사된 유효한 데이터, 0으로 지정된 메모리 세그먼트(1752) 내의 사용중 비트 및 0으로 지정된 메모리 세그먼트(1762)내의 F/E 비트(1712)를 도시한다. 사용중 비트를 0으로 지정은 LS 기억 장소(1750)가 어떤 목적으로도 APU(1740)에 의해 접근되는 것이 가능하게 한다. F/E 비트의 0 지정은 기억 장소(1708) 내의 데이터가 더 이상 유효하게 존재하지 않는다는 것을 나타낸다.
도 18은 기억 장소에 대응하는 메모리 세그먼트 내에 저장된 LS 주소, F/E 비트 및 APU ID의 상태를 기초로 하여 DRAM의 기억 장소의 다양한 상태와 위에 기재된 운용을 요약하고 있다. 기억 장소는 3가지 상태를 가질 수 있다. 이 3가지 상태는 F/E 비트가 0으로 지정되고 APU ID나 LS 주소를 위해 어떤 정보도 제공되지 않는 공백 상태(empty state)(1880), F/E 비트가 1로 지정되고 APU ID나 LS 주소를 위해 어떤 정보도 제공되지 않는 풀 상태(full state)(1882), 그리고 F/E 비트가 0으로 지정되고 APU ID와 LS 주소를 위해 정보가 제공되는 블록킹 상태(blocking state)(1884)이다.
도면에 보이는 바와 같이, 공백 상태(1880)에서, 동기 기록 동작이 가능하게 되고 풀 상태(1882)로 전이된다. 그러나 기억 장소가 공백 상태일 때 기억 장소 내의 데이터는 존재하지 않기 때문에 블록킹 상태(1884)로 전이된다.
풀 상태(1882)에서, 동기 읽기 동작이 허용되고 공백 상태(1880)로 전이된다. 반면에, 풀 상태에서 동기 기록 동작은 유효한 데이터를 겹쳐 기록하는 것을 막도록 금지된다. 이 상태에서 어떠한 기록 동작이 시도된다면 상태 변화가 일어나지 않고 APU의 대응하는 제어 로직으로 에러 메시지가 전송된다.
블록킹 상태(1884)에서, 기억 장소로 데이터의 동기 기록이 허용되고 공백 상태(1880)로 전이된다. 반면에, 블록킹 상태(1884)에서 동기 읽기 동작은 이 상태로 전이되기 이전의 동기 읽기 동작과 충돌을 막도록 금지된다. 블록킹 상태에서 동기 읽기 동작이 시도된다면, 어떤 상태 변화도 일어나지 않고 APU의 대응하는 제어 로직으로 에러 메시지가 전송된다.
공유된 DRAM으로부터/으로 데이터의 동기화된 판독 및 기록을 위해 위에 기재된 방식은 외부 장치로부터의 데이터의 판독과 외부 장치로의 데이터의 기록을 위한 프로세서에 의해 통상 전용된 컴퓨터 자원을 제거하기 위해 역시 사용될 수 있다. 이 입/출력(I/O) 기능은 PU에 의해 수행될 수도 있다. 그러나, 이 동기 방식의 수정본을 사용하여, 적절한 프로그램을 실행하는 APU가 이 기능을 수행할 수 있다. 예를 들면, 이 구조를 사용하여, 외부 장치에 의해 개시된 I/O 인터페이스로부터 데이터 전송을 위한 인터럽트 요청을 받은 PU는 이 요청의 처리를 APU에게 위임할 수 있다. APU는 이후 동기 기록 명령을 I/O 인터페이스에 보낸다. 이 인터페이스는 데이터가 DRAM 내에 지금 기록될 수 있음을 외부 장치에 차례로 신호로 알린다. APU는 다음으로 DRAM의 관련 메모리 공간을 블록킹 상태로 지정하기 위해 동기 기록 명령을 DRAM으로 보낸다. APU는 또한 데이터를 수신하기 위해 필요한 APU의 국부 저장소의 기억 장소를 위해 사용중 비트를 1로 지정한다. 블록킹 상태에서, DRAM의 관련 메모리 공간과 연관된 부가 메모리 세그먼트는 APU ID와 APU 국부 저 장소의 관련 기억 장소의 주소를 포함한다. 외부 장치는 다음으로 DRAM의 관련 메모리 공간에 직접 데이터를 기록하기 위해 동기 기록 명령을 발한다. 그러나, 이 메모리 공간은 블록킹 상태이므로, 데이터는 즉각적으로 이 공간으로부터 부가 메모리 세그먼트에서 식별된 APU의 국부 저장소의 기억 장소로 판독된다. 이 기억 장소용 사용중 비트(busy bits)는 '0'으로 설정된다. 외부 장치가 데이터 기록을 완료하면 APU는 PU로 전송이 완료되었음을 신호로 알린다.
따라서, 이 방식을 사용하여, PU에서의 계산 부담을 최소로 하여 외부 장치로부터의 데이터 전송이 가능해진다. 그러나, 이 기능을 위임받은 APU는 PU로 인터럽트 요청을 할 수 있어야 하고, 또한 외부 장치는 DRAM에 직접 접근할 수 있어야 한다.
각 PE의 DRAM은 다수의 "샌드박스"를 포함한다. 샌드박스는 특정한 APU 또는 APU의 집합이 그 이외의 영역에서는 읽거나 기록할 수 없는 공유 DRAM의 영역을 지정한다. 이 샌드박스들은 한 APU에 의해 처리되고 있는 데이터가 다른 APU에 의해 처리되고 있는 데이터에 의해 오염되는 것을 막기 위한 보안을 제공한다. 이 샌드박스들은 또한 DRAM 도처에서 소프트웨어 셀이 데이터를 오염시킬 수 있는 가능성을 배제한 채, 네트워크로부터 특정 샌드박스로 소프트웨어 셀을 다운로드할 수 있도록 허용한다. 본 발명에 있어서, 샌드박스는 DRAM과 DMAC의 하드웨어 내에 구현된다. 샌드박스를 소프트웨어가 아닌 이런 하드웨어로 구현함으로써, 속도와 보안성이 강화된다.
PE의 PU는 APU에 할당된 샌드박스를 제어한다. 일반적으로 PU는 운영 체제 와 같은, 신뢰할 만한 프로그램에서만 작동하기 때문에 이러한 방식은 보안성을 떨어뜨리지는 않는다. 이 방식에 따르면, PU는 키 제어 테이블을 설정하고 관리한다. 이러한 키 제어 테이블은 도 19에 도시되어 있다. 도 19에서와 같이, 키 제어 테이블(1902) 내의 각 엔트리는 APU 식별 부호(ID)(1904)와 그 APU에 대한 APU 키(1906), 그리고 키 마스크(1908)를 포함한다. 이 키 마스크의 사용에 대해서는 이하 서술된다. 바람직하게는, 키 제어 테이블(1902)은 정적 막기억장치(SRAM)와 같은 상대적으로 빠른 메모리에 저장되며, DMAC과 연관된다. 키 제어 테이블(1902)의 각 엔트리는 PU에 의해 제어된다. 어떠한 APU가 DRAM 내의 특정 저장 위치에 데이터를 기록하고자, 또는 그 특정 저장 위치로부터 데이터를 판독하고자 요청한다면, DMAC는 그 APU에 할당된, 키 제어 테이블(1902) 내의 APU 키(1906)를 DRAM 내의 특정 저장 위치와 연관된 메모리 접근 키와 비교한다.
도 20에 보여지는 바와 같이, 전용 메모리 세그먼트(2010)는 DRAM(2002) 내의 각 주소 지정가능한 저장 위치(2006)에 할당된다. 저장 위치에 대한 메모리 접근 키(2012)는 이 전용 메모리 세그먼트(2010)에 저장된다. 상기에 논의된 바와 같이, 각 주소 지정가능한 저장 위치(2006)에 연관되어 있는 더 추가적인 전용 메모리 세그먼트(2008)는 저장 위치로 데이터를 기록하기 위한, 또는 저장 위치로부터 데이터를 판독하기 위한 동기 정보를 저장한다.
운용에 있어, APU는 DMAC으로 DMA 명령을 발한다. 이 명령은 DRAM(2002)의 저장 위치(2006)의 주소를 포함한다. 이 명령을 실행하기 전에, DMAC는 APU의 ID(1904)를 이용하여 키 제어 테이블(1902) 내의 요청 APU 키(1906)를 조사한다. 이후 DMAC는 요청하는 APU의 APU 키(1906)를 APU가 접근하고자 하는 DRAM의 저장 위치와 연관된 전용 메모리 세그먼트(2010)에 저장된 메모리 접근 키(2012)와 비교한다. 이두 키들이 일치하지 않으면 DMA 명령은 실행되지 않는다. 반면에, 두 키들이 일치하면, DMA 명령이 진행되어 요구된 메모리 접근이 실행된다.
도 21에 다른 실시형태가 도시되어 있다. 이 실시형태에 있어서, PU는 메모리 접근 제어 테이블(2102)을 유지한다. 메모리 접근 제어 테이블(2102)은 DRAM 내부의 각 샌드박스를 위한 엔트리를 포함한다. 도 21의 특정한 예로써, DRAM은 64개의 샌드박스를 포함한다. 메모리 접근 제어 테이블(2102)의 각 엔트리에는 샌드박스 식별 부호(ID)(2104), 기본 메모리 주소(2106), 샌드박스 크기(2108), 메모리 접근 키(2110), 접근 키 마스크(2112)를 포함한다. 기본 메모리 주소(2106)는 특정 샌드박스를 시동하는 DRAM 내에 주소를 제공한다. 샌드박스 크기(2108)는 샌드박스의 크기, 따라서 특정 샌드박스가 종료되는 지점을 제공한다.
도 22는 키 제어 테이블(1902)과 메모리 접근 제어 테이블(2102)을 이용하여 DMA 명령을 실행하기 위한 단계를 도시한 흐름도이다. 단계 2202에서, APU는 샌드박스 내의 특정 기억 장소 또는 장소들에 접근하기 위해 DMA 명령을 DMAC로 발한다. 이 명령은 접근이 요청되는 특정 샌드박스를 확인하는 샌드박스 ID(2104)를 포함한다. 단계 2204에서, DMAC는 APU의 ID(1904)를 이용하여 키 제어 테이블(1902) 내 요청하는 APU 키(1906)를 조사한다. 단계 2206에서, DMAC는 DMA 명령 안의 샌드박스 ID(2104)를 사용하여 메모리 접근 제어 테이블(2102)에서 샌드박스와 연관된 메모리 접근 키(2110)를 조사한다. 단계 2208에서, DMAC는 요청하는 APU에 할당된 APU 키(1906)와 샌드박스와 연관된 메모리 접근 키(2110)를 비교한다. 단계 2210에서, 두 키들이 일치하는지 여부가 판별된다. 만약 두 키들이 일치하지 않으면, DMA 명령은 진행되지 않으며 오직 에러 메시지만이 APU 및/또는 PU로 전송되는 단계 2212로 진행된다. 반면에, 만약 단계 2210에서 두 키들이 일치하면, DMAC가 DMA 명령을 실행하는 단계 2214로 진행된다.
APU 키의 키 마스크와 메모리 접근 키는 이 시스템에 더 많은 유연성을 제공한다. 키의 키 마스크는 마스크 처리된 비트를 와일드 카드로 변환시킨다. 예를 들어, APU 키(1906)와 연관된 키 마스크(1908)의 최종 2 비트가 마스크로 설정되었다면, 즉, 예를 들어 키 마스크(1908) 내의 이 비트들이 1로 지정되었다면, APU 키는 1 또는 0 중 어느 것이 될 수 있고 여전히 메모리 접근 키와 일치하게 된다. 예를 들어, APU 키는 1010일 수도 있다. 통상 이 APU 키는 단지 메모리 접근 키가 1010 인 샌드박스로의 접근만 허용할 것이다. 그러나, 만약 이 APU 키의 키 마스크가 0001로 설정되어 있다면, 이 APU 키는 1010 또는 1011인 접근 키를 포함하는 샌드박스에 접근하기 위해서도 사용될 수 있다. 유사하게, 0001로 설정된 마스크를 갖는 1010인 메모리 접근 키는 1010 또는 1011인 APU 키를 포함하는 APU에 의해 접근될 수 있다. APU 키 마스크와 메모리 키 마스크가 동시에 사용될 수 있으므로, APU에 의한 샌드박스로의 보다 다양한 접근이 가능해질 수 있다.
본 발명은 또한 시스템(101) 상의 프로세서들을 위한 새로운 프로그래밍 모델을 제공한다. 이 프로그래밍 모델은 소프트웨어 셀(102)을 채용한다. 이 소프트웨어 셀들은 처리를 위해 네트워크(104) 상의 어떤 프로세서로도 전송될 수 있다. 이 새로운 프로그래밍 모델은 또한 고유한 시스템(101)의 모듈러 구조와 시스템(101)의 프로세서를 활용하여 구현된다.
소프트웨어 셀은 APU의 국부 저장소로부터 APU에 의해 직접적으로 처리된다. APU는 DRAM상의 어떠한 데이터나 프로그램에 직접 작동하지 않는다. APU가 DRAM의 데이터나 프로그램을 처리하기 전에 이 데이터나 프로그램은 APU의 국부 저장소로 판독된다. 따라서, APU의 국부 저장소는 프로그램 카운터, 스택 그리고 이러한 프로그램들을 실행시키기 위한 다른 소프트웨어 요소를 포함한다. PU는 DMAC로 직접 메모리 접근(DMA) 명령을 발함으로써 APU를 제어한다.
도 23에 소프트웨어 셀(102)의 구조가 도시되어 있다. 이 도에서 보여지는 바와 같이, 소프트웨어 셀(2302)은 라우팅(routing) 정보 섹션(2304)과 몸체(2306)를 포함한다. 라우팅 정보 섹션(2304)에 포함된 정보는 네트워크(104)의 프로토콜에 의존한다. 라우팅 정보 섹션(2304)은 헤더(2308), 목적지 ID(2310), 소스 ID(2312) 그리고 응답 ID(2314)를 포함한다. 목적지 ID는 네트워크 주소를 포함한다. TCP/IP 프로토콜 하에서는, 예컨대 네트워크 주소가 IP 주소이다. 목적지 ID(2310)는 처리를 위해 셀이 전송되어야만 하는 PE와 APU의 식별 번호를 더 포함한다. 소스 ID(2314)는 네트워크 주소를 포함하며 셀이 생성된 PE와 APU를 식별하여 목적지 PE 및 APU가 필요하다면 셀과 관련된 부가적인 정보를 획득하는 것을 가능하도록 한다. 응답 ID(2314)는 네트워크 주소를 포함하며 셀과 관련된 문의 및 셀의 처리 결과가 통지되어야 하는 PE와 APU를 확인한다.
셀 몸체(2306)는 네트워크 프로토콜로부터 독립적인 정보를 포함한다. 도 23 의 확장된 부분은 셀 몸체(2306)를 더욱 상세히 나타낸다. 셀 몸체(2306)의 헤더(2320)는 몸체의 시작점을 나타낸다. 셀 인터페이스(2322)는 셀의 활용을 위해 필요한 정보를 포함한다. 이 정보는 전역 고유(Global Unique) ID(2324), 요구되는 APU의 개수(2326), 샌드박스 크기(2328) 및 이전 셀 ID(2330)를 포함한다.
전역 고유 ID(2324)는 네트워크(104) 전체에 걸쳐 소프트웨어 셀(2302)을 유일하게 확인한다. 전역 고유 ID(2324)는 예를 들어 소스 ID(2312) 내의 PE 또는 APU의 고유한 식별 부호 같은 소스 ID(2312) 및 소프트웨어 셀(2302)의 생성 또는 전송 시간 및 일자를 기초로 하여 생성된다. 요구되는 APU의 개수(2326)는 셀을 실행시키기 위해 필요한 APU의 최소수를 제공한다. 샌드박스 크기(2328)는 요구되는 APU들과 연관되며 셀을 실행시키기 위해 필요한 DRAM 내의 보호메모리 크기를 제공한다. 이전의 셀 ID(2330)는 스트리밍 데이터와 같은 순차적인 실행이 요구되는 셀 그룹의 이전 셀을 확인한다.
실행 섹션(2332)은 셀의 핵심 정보를 포함한다. 핵심 정보에는 DMA 명령 리스트(2334), 프로그램 섹션(2336) 및 데이터 섹션(2338)을 포함한다. 프로그램 섹션(2336)에는 APU에 의해 실행될 프로그램(소위 애플릿)(2360, 2362)이 포함되며, 데이터 섹션(2338)에는 이 프로그램들에 의해 처리될 데이터가 포함된다. DMA 명령 리스트(2334)에는 프로그램을 시작하기 위해 필요한 DMA 명령의 집합(2340, 2350, 2355, 2358)이 포함된다. PU는 이 DMA 명령들을 DMAC로 발한다.
DMA 명령(2340)은 VID(2342)를 포함한다. VID(2342)는 DMA 명령이 발할 때 물리적인 ID로 매핑(mapping)될 APU의 가상 ID이다. DMA 명령(2340)은 또한 인출 명령(2344)과 주소(2346)를 포함한다. 인출 명령(2344)은 APU로 하여금 DRAM으로부터 국부 저장소로 특정 정보를 읽어오도록 지시한다. 주소(2346)는 이 정보를 포함하는 DRAM내의 가상 주소이다. 이 정보는 프로그램 섹션(2336)의 프로그램, 데이터 섹션(2338)의 데이터, 그리고 다른 유형의 데이터 등을 포함할 수 있다. 마지막으로, DMA 명령(2340)은 국부 저장소 주소(2348)를 포함한다. 이 주소는 정보가 실장될 국부 저장소 내의 주소를 나타낸다. DMA 명령(2350)은 유사한 정보를 포함한다. 다른 DMA 명령 역시 가능하다.
DMA 명령 리스트(2334)는 또한 일련의 킥(kick) 명령의 집합(도 23의 2355, 2358)을 포함한다. 킥 명령은 셀에 대한 처리를 개시하기 위해 PU가 APU측으로 발하는 명령이다. DMA 킥 명령(2355)은 가상 APU ID(2352), 킥 명령(2354) 그리고 프로그램 카운터(2356)를 포함한다. 가상 APU ID(2352)는 킥 명령을 받을 APU를 식별하고 킥 명령(2354)은 관련된 킥 명령을 제공하며, 프로그램 카운터(2356)는 프로그램을 실행할 프로그램 카운터의 주소를 제공한다. DMA 킥 명령(2358)은 동일한 APU 또는 다른 APU에 대하여 유사한 정보를 제공한다.
주지하는 바와 같이, PU는 APU를 보조적인 프로세서가 아닌, 독립적인 프로세서로 간주한다. 그러므로, PU는 APU에 의한 처리를 제어하기 위해 원격 절차 호출(Remote Procedure Calls)과 유사한 명령을 사용한다. 이 명령은 'APU 원격 절차 호출'(ARPC)로 지정된다. PU는 DMAC로 DMA 명령 집합을 발함으로써 ARPC를 실현한다. DMAC는 APU 프로그램 및 관련된 스택 프레임을 APU의 국부 저장소로 실장한다. 이후, PU는 APU프로그램을 실행하기 위한 초기 킥(kick)을 APU측으로 발한다.
도 24는 애플릿을 실행하기 위한 ARPC의 단계를 나타낸다. 지정된 APU에 의한 애플릿의 처리 개시에 있어 PU에 의해 실행되는 단계가 도 24의 첫 부분(2402)에 도시되고, 애플릿을 처리함에 있어 지정된 APU에 의해 실행되는 단계가 도 24의 두 번째 부분(2404)에 도시되어 있다.
단계 2410에서, PU는 애플릿을 평가하고 이를 처리하기 위한 APU를 지정한다. 단계 2412에서, PU는 필요한 샌드박스에 대한 메모리 접근 키를 설정하기 위해 DMAC로 DMA 명령을 발함으로써, DRAM 내에 애플릿을 실행시키기 위한 공간을 할당한다. 단계 2414에서, PU는 지정된 APU에 대한 인터럽트 요청이 애플릿의 완성을 신호로 보낼 수 있도록 한다. 단계 2418에서, PU는 DRAM으로부터 APU의 국부 저장소로 애플릿을 실장하기 위해 DMAC로 DMA 명령을 발한다. 단계 2420에서, DMA 명령은 실행되고, 애플릿은 DRAM으로부터 APU의 국부 저장소로 판독된다. 단계 2422에서, PU는 DRAM으로부터 APU의 국부 저장소로 애플릿과 연관된 스택 프레임을 실장하기 위해 DMAC측으로 DMA 명령을 발한다. 단계 2423에서, DMA 명령은 실행되고, 스택 프레임은 DRAM으로부터 APU의 국부 저장소로 판독된다. 단계 2424에서, DMAC가 APU에 키를 할당하여 APU가 단계 2412에서 지정된 하드웨어 샌드박스로부터/로 데이터를 판독 및 기록하는 것을 허가하기 위해 PU는 DMA 명령을 발한다. 단계 2426에서, DMAC는 APU와 연관된 키를 포함하는 키 제어 테이블(KTAB)을 갱신한다. 단계 2428에서, PU는 프로그램을 처리를 개시하도록 APU에게 DMA 킥(kick) 명령을 발한다. 특정 애플릿에 의한 특정 ARPC의 실행에 있어 PU에 의해 다른 DMA 명령이 발해질 수도 있다.
상기 주지한 바와 같이, 도 24의 두 번째 부분(2404)은 애플릿을 처리함에 있어 APU에 의해 실행되는 단계를 도시한다. 단계 2430에서, APU는 단계 2428에서의 DMA킥 명령에 응하여 애플릿을 실행을 개시한다. 단계 2432에서, APU는 애플릿과 연관된 스택 프레임을 평가한다. 단계 2434에서, APU는 DRAM으로부터 APU의 국부 저장소로 스택 프레임에 의해 필요하다고 지정된 데이터를 실장하기 위해 DMAC측으로 다수의 DMA 명령을 발한다. 단계 2436에서, DMA 명령은 실행되고, 데이터는 DRAM으로부터 APU의 국부 저장소로 판독된다. 단계 2438에서, APU는 애플릿을 실행하고 결과값을 산출한다. 단계 2440에서, APU는 산출된 결과값을 DRAM에 저장하도록 DMAC측으로 DMA 명령을 발한다. 단계 2442에서, DMA 명령은 실행되고, 애플릿의 결과값은 APU의 국부 저장소로부터 DRAM으로 기록된다. 단계 2444에서, APU는 PU측으로 인터럽트 요청을 발하여 ARPC가 종료되었다는 신호를 보낸다.
PU의 지시에 따라 APU가 독립적으로 태스크를 수행할 수 있는 능력은 PU가 APU의 그룹 및 그와 연관된 메모리 자원을 보다 광범위한 태스크를 실행하는 데 집중할 수 있도록 한다. 예를 들어, PU는 하나 또는 그 이상의 APU와 이 APU에 연관된 메모리 샌드박스가 확장된 기간 동안 네트워크(104)를 통해 데이터를 전송받도록, 그리고 더 나은 처리를 위해서 상기 전송받은 데이터를 하나 또는 그 이상의 다른 APU와 상기 다른 APU에 연관된 메모리 샌드박스로 전송하도록 할 수 있다. 이러한 능력은 네트워크(104)를 통해 전송되는 스트리밍 데이터, 예를 들어, 스트리밍 MPEG, 스트리밍 ATRAC 오디오 또는 비디오 데이터를 처리하는 데 특히 유익하다. PU는 하나 또는 그 이상의 APU와 이 APU에 연관된 메모리 샌드박스가 이러한 데이터를 전송받도록 하고 하나 또는 그 이상의 다른 APU와 이 다른 APU에 연관된 메모리 샌드박스가 이러한 데이터의 압축을 풀고 또한 더해서 이러한 데이터를 처리하도록 할 수 있다. 다시 말해서, PU는 이러한 데이터의 처리를 위해 APU의 그룹 및 그와 연관된 메모리 샌드박스 사이에 전용 파이프라인 관계를 구축할 수 있다.
그러나, 효과적으로 수행되어야 할 이러한 처리를 위해서, 파이프라인의 전용 APU와 메모리 샌드박스는 데이터 스트림을 포함하는 애플릿의 처리가 일어나지 않는 기간 동안에도 전용 상태이어야 한다. 다시 말해서, 전용 APU 및 연관된 메모리 샌드박스는 이 기간 동안 예약된 상태로 있어야 된다. 애플릿의 처리 완료에 따라 APU와 이 연관된 메모리 샌드박스를 예약하는 것을 상주 종단(resident termination)이라 한다. 상주 종단은 PU로부터의 지시에 응하여 발생한다.
도 25, 26a 및 26b는 APU 그룹 및 이 APU 그룹과 연관된 샌드박스를 포함하며, 스트리밍 데이터, 예를 들어 스트리밍 MPEG 데이터의 처리를 위해 전용 파이프라인 구조를 구축하는 것을 도시한다. 도 25에 도시된 바와 같이, 파이프라인 구조를 구성하는 요소에는 PE(2502)와 DRAM(2518)이 있다. PE(2502)는 PU(2504), DMAC(2506) 그리고 다수의 APU(2508, 2510, 2512)를 포함한다. PU(2504), DMAC(2506) 그리고 다수의 APU 사이의 통신은 PE 버스(2514)를 통해 이루어진다. 광대역 버스(2516)는 DMAC(2506)과 DRAM(2518)을 연결한다. DRAM(2518)은 다수의 샌드박스(도면상에는 2520, 2522, 2524, 2526)를 포함한다.
도 26a에는 전용 파이프라인을 구축하는 단계가 도시되어 있다. 단계 2610에서, PU(2504)는 APU(2508)을 네트워크 애플릿을 처리하도록 할당한다. 네트워크 애플릿은 네트워크(104)의 네트워크 프로토콜을 처리하기 위한 프로그램을 포함한다. 이 경우에, 이 네트워크 프로토콜은 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP)이다. 이 프로토콜에 따르는 TCP/IP 데이터 패킷은 네트워크(104)를 통해 전송된다. 수신하면, APU(2508)는 이 데이터 패킷을 처리하고 이 데이터 패킷에 실려있는 데이터를 소프트웨어 셀(102) 형태로 조립한다. 단계 2612에서, PU(2504)는 APU(2508)가 네트워크 애플릿 처리 완료 시점에 상주 종단을 수행하도록 지시한다. 단계 2614에서, PU(2504)는 APU(2510과 2512)가 MPEG 애플릿을 처리하도록 할당한다. 단계 2615에서, PU(2504)는 APU(2510과 2512)가 또한 MPEG 애플릿 처리 완료 시점에 상주 종단을 수행하도록 지시한다. 단계 2616에서, PU(2504)는 샌드박스(2520)를 APU(2510)에 의해 접근될 소스(source) 샌드박스 및 APU(2508)에 의해 접근될 목적지 샌드박스로서 지정한다. 단계 2618에서, PU(2504)는 샌드박스(2522)를 APU(2510)에 의해 접근될 목적지 샌드박스 및 APU(2512)에 의해 접근될 소스 샌드박스로서 지정한다. 단계 2620에서, PU(2504)는 샌드박스(2524)를 APU(2512)에 의해 접근될 목적지 샌드박스 및 파이프라인의 또 다른 APU에 대한 소스 샌드박스로서 지정한다. 단계 2622에서, PU(2504)는 샌드박스(2526)를 파이프라인의 또 다른 APU들에 의해 접근될 목적지 및 소스 샌드박스로서 지정한다. 단계 2624에서, APU(2510과 2512)는 소스 샌드박스(2520과 2522) 블록 각각에 대하여 동기 읽기 명령을 보내어, 상기 블록이 블록킹 상태로 설정되도록 한다. 마지막으로, 단계 2628에서, 전용 파이프라인 구축이 완료되고, 상기 파이프라인에 전용되는 자원이 예약된다. 따라서, APU(2508, 2510, 2512 등)와 연관된 샌드박스(2520, 2522, 2524, 2526)는 예약된 상태로 진입한다.
도 26b에는 이러한 전용 파이프라인에 의해 스트리밍 MPEG 데이터를 처리하 는 단계가 도시되어 있다. 단계 2630에서, 네트워크 애플릿을 처리하는 APU(2508)는 네트워크(104)로부터 TCP/IP 데이터 패킷을 국부 저장소에 수신한다. 단계 2632에서, APU(2508)는 상기 TCP/IP 데이터 패킷을 처리하고 이 데이터 패킷 내의 데이터를 소프트웨어 셀(102) 형태로 조립한다. 단계 2634에서, APU(2508)는 소프트웨어 셀의 헤더(도 23의 2320)를 검사하여 셀이 MPEG 데이터를 포함하고 있는지 여부를 판별한다. 만약 셀이 MPEG 데이터를 포함하고 있지 않으면, 단계 2636에서, APU(2508)는 전용 파이프라인에 포함되지 않은 다른 APU에 의한 다른 데이터의 처리를 위해 DRAM(2518) 내에 지정된 일반 목적의 샌드박스로 셀을 전송한다. APU(2508)는 또한 이 전송을 PU(2504)에 통지한다.
한편, 만약 셀이 MPEG 데이터를 포함하고 있으면, 단계 2638에서, APU(2508)는 셀이 속해 있는 MPEG 데이터 스트림을 확인하기 위해 이전의 셀 ID(도 23의 2330)를 확인한다. 단계 2640에서, APU(2508)는 상기 셀을 처리하기 위해 전용 파이프라인의 APU를 선택한다. 이 경우에, APU(2508)는 APU(2510)를 선택하여 이 데이터들을 처리한다. 이 선택은 이전의 셀 ID(2330)와 부하 균등 인자(load balancing factor)에 기초한다. 예를 들어, 만약 이전의 셀 ID(2330)가 소프트웨어 셀이 포함된 MPEG 데이터 스트림의 이전 소프트웨어 셀이 처리를 위해 APU(2510)로 보내졌음을 나타낸다면, 통상 현재의 소프트웨어 셀 역시 APU(2510)로 보내질 것이다. 단계 2642에서, APU(2508)는 샌드박스(2520)로 MPEG 데이터를 기록하도록 동기 기록 명령을 발한다. 단계 2644에서, 이 샌드박스는 이전에 블록킹 상태로 지정되어 있었으므로 MPEG 데이터는 자동적으로 샌드박스(2520)로부터 APU(2510)의 국부 저장소로 판독된다. 단계 2646에서, APU(2510)는 국부 저장소에서 MPEG 데이터를 처리하여 비디오 데이터를 생성한다. 단계 2648에서, APU(2510)는 비디오 데이터를 샌드박스(2522)로 기록한다. 단계 2650에서, 샌드박스가 추가적인 MPEG데이터를 수신하도록 준비하기 위해 APU(2510)는 동기 읽기 명령을 샌드박스(2520)에 발한다. 단계 2652에서, APU(2510)는 상주 종단을 처리한다. 이 처리는 APU는 MPEG 데이터 스트림에 추가되는 MPEG 데이터를 처리하기 위해 APU가 기다리는 동안에 예약된 상태에 진입하도록 한다.
다른 전용 구조가 다른 타입의 데이터를 처리하기 위해 APU 그룹 및 그와 연관된 샌드박스 사이에 구축될 수 있다. 예를 들면, 도 27에 보여지는 바와 같이, 전용되는 APU의 그룹(2702, 2708, 2714)을 통해 3차원 개체가 기하학적 변환을 거쳐 2차원 디스플레이 리스트로 변환될 수 있다. 이 2차원 디스플레이 리스트는 더해서 다른 APU에 의해 처리되어(렌더링되어) 픽셀(pixel) 데이터로 생성될 수 있다. 이 처리를 위해서는, 샌드박스가 3차원 개체 및 이 개체로부터 산출되는 디스플레이 리스트를 저장하기 위해 APU(2702, 2708, 2414)에 전용된다. 예를 들어, 소스 샌드박스(2704, 2710, 2716)는 각각 APU(2702, 2708, 2714)에 의해 처리되는 3차원 개체를 저장하기 위해 전용된다. 이와 유사하게, 목적지 샌드박스(2706, 2712, 2718)는 각각 APU(2702, 2708, 2714)에 의해 처리된 3차원 개체로부터 산출되는 디스플레이 리스트를 저장하기 위해 전용된다.
조정 APU(2720)은 목적지 샌드박스(2706, 2712, 2718)로부터 디스플레이 리스트를 수신하여 국부 저장소에 수신하도록 전용된다. APU(2720)는 이들 디스플레 이 리스트 사이에서 조정하고 이를 픽셀 데이터로의 렌더링을 위해 다른 APU에 전송한다.
시스템(101) 상의 프로세서는 또한 절대 타이머를 채용한다. 절대 타이머는 APU 및 다른 요소들을 운용하는 클럭 신호보다 독립적이고 더 빠른 PE의 APU와 다른 요소들에게 클럭 신호를 제공한다. 도 28에는 이 절대 타이머의 사용이 도시되어 있다.
이 도면에 보여지는 바와 같이, APU에 의한 태스크의 실행을 위해 시간 다발(time budget)을 설정한다. 시간 다발은 APU가 처리하는 데 필요한 시간보다 길게 소요되는 태스크를 완료하기 위해 필요한 시간을 제공한다. 그 결과, 시간 다발 안에서 각 태스크에는 사용중(busy) 기간과 대기(standby) 기간이 있다. APU의 실제 처리 시간 또는 속도와는 상관없이, 모든 애플릿은 시간 다발에 기초하여 작성된다.
예를 들어, PE의 특정 APU에 대하여, 특정 태스크는 시간 다발(2804)의 사용중 기간(2802)에 수행된다. 사용중 기간(2802)은 시간 다발(2804)보다 짧으므로, 상기 시간 다발(2804)안에서 대기 기간(2806)이 발생한다. 대기 기간 동안에, APU는 보다 적은 전력을 소모하는 슬립 모드로 진입한다.
시간 다발(2804)이 종료되기 전에는, 다른 APU 또는 PE의 다른 요소는 태스크에 대한 처리 결과를 예상하지 못한다. 그러므로, 절대 타이머에 의해 수립되는 시간 다발을 사용함으로써 APU의 실제 처리 속도와 관계없이 APU의 처리 결과는 항상 일정해진다.
앞으로는, APU의 처리 속도가 상승할 것이다. 그러나, 절대 타이머에 의해 수립된 시간 다발은 그대로 유지될 것이다. 예를 들어, 도 28에 도시된 바와 같이, 미래의 APU는 보다 짧은 기간 동안 태스크를 실행할 것이며, 따라서, 보다 긴 대기 기간을 가질 것이다. 즉, 미래의 사용중 기간(2808)은 현재의 사용중 기간(2802)보다 짧을 것이며, 미래의 대기 기간(2810)은 현재의 대기 기간(2806)보다 길 것이다. 그러나, 프로그램은 절대 타이머에 의해 수립된 동일한 시간 다발에 의거하여 처리되도록 작성되기 때문에 각 APU의 처리 결과간의 조정은 유지될 것이다. 그 결과, 보다 느린 APU를 위해 기록된 보다 빠른 APU는 충돌 없이 프로그램을 처리할 수 있다.
APU 사이에 조정을 확립하는 절대 타이머 대신에, PU, 또는 하나 혹은 그 이상의 지정된 APU는 향상된 또는 다른 작동 속도로 이루어진 병렬 처리 조정의 문제를 위해 애플릿을 처리함에 있어 APU에 의해 실행되고 있는 특정한 명령 또는 마이크로코드를 분석할 수 있다. "비연산"(NOOP) 명령은 명령어들 내에 삽입되며, 몇몇 APU에 의해 실행되어 애플릿에 의해 기대되는 APU에 의한 순차적인 처리의 적절한 완료가 유지된다. 즉, NOOP을 명령어들 내에 삽입함으로써, APU가 모든 명령어들을 실행하는 데 있어 정확한 타이밍이 유지된다.
비록 본 발명은 구체적인 실시형태에 의거하여 설명되었지만, 이러한 실시형태는 본 발명의 개념 및 응용을 예시하기 위한 것이었음이 이해된다. 따라서, 첨부된 청구항에 의해 명시된 본 발명의 기본 원리와 범위를 벗어남 없이 수많은 변형이 설명된 실시형태에 이루어 질 수 있고 다른 배열이 이루어질 수 있음이 이해된 다.
본 발명은 컴퓨터 프로세서, 및 컴퓨터 네트워크, 자세하게는, 광대역 환경에서의 컴퓨터 프로세서 및 컴퓨터 네트워크를 제공한다. 본 발명은 더해서 이러한 구조를 위한 프로그래밍 모델을 제공한다.

Claims (45)

  1. 네트워크에 연결된 다수의 프로세서들을 포함하는 컴퓨터 네트워크에 있어서,
    상기 프로세서들 각각은 동일한 명령 집합 구조를 갖는 제 1 처리 유닛들 및 상기 제 1 처리 유닛들을 제어하는 제 2 처리 유닛을 포함하고, 상기 제 1 처리 유닛들은 상기 네트워크를 통하여 전송되는 소프트웨어 셀들을 처리하기 위해 조작가능하며, 상기 소프트웨어 셀들 각각은 상기 명령 집합 구조와 호환가능한 프로그램, 상기 프로그램과 관련된 데이터 및 상기 네트워크를 통하여 전송되는 상기 소프트웨어 셀들 전체 중에서 상기 소프트웨어 셀을 고유하게 식별하는 식별자를 포함하는 것을 특징으로 하는, 컴퓨터 네트워크.
  2. 제 1 항에 있어서, 상기 제 2 처리 유닛은 상기 제 1 처리 유닛들에 의해 처리되는 상기 소프트웨어 셀들의 프로그램들을 판단함에 의해 상기 제 1 처리 유닛들을 제어하는 것을 특징으로 하는 컴퓨터 네트워크.
  3. 제 2 항에 있어서, 상기 제 1 처리 유닛 각각은 상기 제 1 처리 유닛에 전용으로 관련되는 국부 기억장치를 포함하고 그리고 상기 제 1 처리 유닛은 상기 국부 기억장치로부터 상기 프로그램들을 처리하는 것을 특징으로 하는 컴퓨터 네트워크.
  4. 제 1 항에 있어서, 상기 프로세서 각각은 주 메모리를 더 포함하고, 상기 주 메모리는 다수의 뱅크들을 포함하고, 상기 뱅크 각각은 다수의 블록들을 포함하고, 상기 블록 각각은 상기 주 메모리의 하위 주소지정가능 유닛이 되고 그리고 상기 블록 내에 저장되는 데이터의 상태에 관한 정보를 저장하기 위한 상기 주 메모리 내의 관련 메모리 공간, 제 1 처리 유닛용 식별 및 상기 제 1 처리 유닛과 관련된 국부 기억장치의 주소를 갖는 것을 특징으로 하는 컴퓨터 네트워크.
  5. 제 4 항에 있어서, 상기 제 1 처리 유닛들은 상기 블록들에 대하여 상기 제 1 처리 유닛들의 판독 및 기록을 동조시키기 위하여 상기 관련 메모리 공간을 이용하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 네트워크.
  6. 제 1 항에 있어서, 상기 프로세서들 각각은 직접 메모리 접근 제어기를 더 포함하는 것을 특징으로 하는 컴퓨터 네트워크.
  7. 제 4 항에 있어서, 상기 제 1 처리 유닛 각각은 상기 주 메모리로부터 상기 제 1 처리 유닛과 관련된 상기 국부 기억장치로 데이터를 판독하는 동조 판독 명령어를 등록하고 그리고 상기 국부 기억장치로부터 상기 주 메모리로 데이터를 기록하는 동조 기록 명령어를 등록하기 위해 조작가능한 것을 특징으로 하는 컴퓨터 네트워크.
  8. 다수의 프로세서들을 포함하는 컴퓨터 네트워크를 통한 전송을 위한 소프트웨어 셀을 저장하는 컴퓨터 판독가능한 매체에 있어서, 상기 소프트웨어 셀은
    상기 프로세서들 하나 이상에 의해 처리되며, 동일한 명령 집합 구조와 호환가능한 프로그램;
    상기 프로그램과 관련된 데이터; 및
    상기 네트워크를 통해 전송되는 모든 소프트웨어 셀들 중 상기 소프트웨어 셀을 고유하게 식별하는 전역 식별자를 포함하며,
    상기 프로세서들 각각은, 상기 동일한 명령 집합 구조를 갖는 제 1 처리 유닛들 및 상기 제 1 처리 유닛들을 제어하는 제 2 처리 유닛을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  9. 제 8 항에 있어서, 상기 소프트웨어 셀은 상기 네트워크를 통하여 상기 소프트웨어 셀을 경로를 지정하여 발송하기 위한 정보를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  10. 제 9 항에 있어서, 상기 정보는 상기 다수의 프로세서들 중 하나에 대한 식별자를 포함하고, 상기 하나의 프로세서는 상기 소프트웨어 셀이 처리를 위해 전송되어야 하는 프로세서인 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  11. 제 10 항에 있어서, 상기 식별자는 인터넷 프로토콜 주소를 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  12. 제 9 항에 있어서, 상기 정보는 상기 다수의 프로세서들 중 하나에 대한 식 별자를 포함하고, 상기 하나의 프로세서는 상기 소프트웨어 셀이 그로부터 비롯되는 프로세서인 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  13. 제 9 항에 있어서, 상기 정보는 상기 다수의 프로세서들 중 하나에 대한 식별자를 포함하고, 상기 하나의 프로세서는 상기 소프트웨어 셀의 처리에 관한 정보가 전송되어야 하는 프로세서인 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  14. 제 8 항에 있어서, 상기 소프트웨어 셀은 상기 프로세서들 중 하나에 다수의 직접 메모리 접근 명령어들을 제공하는 정보를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  15. 제 14 항에 있어서, 상기 정보는 상기 하나의 프로세서에 대한 가상 식별자 및 상기 직접 메모리 접근 명령어들을 실행하는 상기 하나의 프로세서와 관련되는 메모리의 주소들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  16. 제 8 항에 있어서, 상기 전역 식별자는 상기 소프트웨어 셀을 생성하는 상기 프로세서들 중 하나의 식별자, 상기 소프트웨어 셀을 생성하는 시간 및 날짜에 근거하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  17. 제 8 항에 있어서, 상기 전역 식별자는 상기 소프트웨어 셀을 전송하는 상기 프로세서들 중 하나의 식별자, 상기 소프트웨어 셀을 전송하는 시간 및 날짜에 근거하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  18. 다수의 프로세서들을 포함하는 컴퓨터 네트워크를 통한 전송을 위한 소프트웨어 셀들의 데이터 스트림에 있어서, 상기 소프트웨어 셀들 각각은:
    상기 프로세서들 중 하나 이상에 의해 처리되며, 동일한 명령 집합 구조와 호환가능한 프로그램;
    상기 프로그램과 관련된 데이터; 및
    상기 네트워크를 통하여 전송되는 상기 소프트웨어 셀들 전체 중에서 상기 소프트웨어 셀을 고유하게 식별하는 전역 식별자를 포함하며,
    상기 프로세서들 각각은, 상기 동일한 명령 집합 구조를 갖는 제 1 처리 유닛들 및 상기 제 1 처리 유닛들을 제어하는 제 2 처리 유닛을 포함하는 것을 특징으로 하는 데이터 스트림.
  19. 제 18 항에 있어서, 상기 소프트웨어 셀 각각은 상기 네트워크를 통하여 상기 소프트웨어 셀을 경로를 지정하여 발송하기 위한 정보를 더 포함하는 것을 특징으로 하는 데이터 스트림.
  20. 제 19 항에 있어서, 상기 정보는 상기 다수의 프로세서들 중 하나에 대한 식별자를 포함하고, 상기 하나의 프로세서는 상기 소프트웨어 셀이 처리를 위해 전송되어야 하는 프로세서인 것을 특징으로 하는 데이터 스트림.
  21. 제 20 항에 있어서, 상기 식별자는 인터넷 프로토콜 주소를 포함하는 것을 특징으로 하는 데이터 스트림.
  22. 제 19 항에 있어서, 상기 정보는 상기 다수의 프로세서들 중 하나에 대한 식별자를 포함하고, 상기 하나의 프로세서는 상기 소프트웨어 셀이 그로부터 비롯되는 프로세서인 것을 특징으로 하는 데이터 스트림.
  23. 제 19 항에 있어서, 상기 정보는 상기 다수의 프로세서들 중 하나에 대한 식별자를 포함하고, 상기 하나의 프로세서는 상기 소프트웨어 셀의 처리에 관한 정보가 전송되어야 하는 프로세서인 것을 특징으로 하는 데이터 스트림.
  24. 제 18 항에 있어서, 상기 소프트웨어 셀은 상기 프로세서들 중 하나에 다수의 직접 메모리 접근 명령어들을 제공하는 정보를 더 포함하는 것을 특징으로 하는 데이터 스트림.
  25. 제 24 항에 있어서, 상기 정보는 상기 하나의 프로세서에 대한 가상 식별자 및 상기 직접 메모리 접근 명령어들을 실행하는 상기 하나의 프로세서와 관련되는 메모리의 주소들을 포함하는 것을 특징으로 하는 데이터 스트림.
  26. 제 18 항에 있어서, 상기 전역 식별자는 상기 소프트웨어 셀을 생성하는 상기 프로세서들 중 하나의 식별자, 상기 소프트웨어 셀을 생성하는 시간 및 날짜에 근거하는 것을 특징으로 하는 데이터 스트림.
  27. 제 18 항에 있어서, 상기 전역 식별자는 상기 소프트웨어 셀을 전송하는 상기 프로세서들 중 하나의 식별자, 상기 소프트웨어 셀을 전송하는 시간 및 날짜에 근거하는 것을 특징으로 하는 데이터 스트림.
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
KR1020037012340A 2001-03-22 2002-03-19 광대역 네트워크용 컴퓨터 구조 및 소프트웨어 셀 KR100891063B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/816,004 US7233998B2 (en) 2001-03-22 2001-03-22 Computer architecture and software cells for broadband networks
US09/816,004 2001-03-22
PCT/JP2002/002604 WO2002077845A1 (en) 2001-03-22 2002-03-19 Computer architecture and software cells for broadband networks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020087026593A Division KR100959748B1 (ko) 2001-03-22 2002-03-19 컴퓨터 프로세서 상에서 프로그램들 및 상기 프로그램들과 관련된 데이터를 처리하는 방법

Publications (2)

Publication Number Publication Date
KR20030085037A KR20030085037A (ko) 2003-11-01
KR100891063B1 true KR100891063B1 (ko) 2009-03-31

Family

ID=25219414

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020037012340A KR100891063B1 (ko) 2001-03-22 2002-03-19 광대역 네트워크용 컴퓨터 구조 및 소프트웨어 셀
KR1020087026593A KR100959748B1 (ko) 2001-03-22 2002-03-19 컴퓨터 프로세서 상에서 프로그램들 및 상기 프로그램들과 관련된 데이터를 처리하는 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020087026593A KR100959748B1 (ko) 2001-03-22 2002-03-19 컴퓨터 프로세서 상에서 프로그램들 및 상기 프로그램들과 관련된 데이터를 처리하는 방법

Country Status (7)

Country Link
US (11) US7233998B2 (ko)
EP (2) EP1370968B1 (ko)
JP (2) JP2002366533A (ko)
KR (2) KR100891063B1 (ko)
CN (1) CN100412848C (ko)
TW (1) TWI266200B (ko)
WO (1) WO2002077845A1 (ko)

Families Citing this family (228)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
CN1656465B (zh) 2002-03-22 2010-05-26 迈克尔·F·迪林 用于由多个互连节点执行渲染计算来渲染图形的方法和系统
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
US7596621B1 (en) * 2002-10-17 2009-09-29 Astute Networks, Inc. System and method for managing shared state using multiple programmed processors
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US7225301B2 (en) * 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050071828A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for compiling source code for multi-processor environments
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US20050071578A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for manipulating data with a plurality of processors
US7236998B2 (en) * 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7146529B2 (en) * 2003-09-25 2006-12-05 International Business Machines Corporation System and method for processor thread acting as a system service processor
US7318218B2 (en) * 2003-09-25 2008-01-08 International Business Machines Corporation System and method for processor thread for software debugging
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7475257B2 (en) * 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7516456B2 (en) * 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7321958B2 (en) * 2003-10-30 2008-01-22 International Business Machines Corporation System and method for sharing memory by heterogeneous processors
US7793276B2 (en) * 2003-11-14 2010-09-07 Intel Corporation Apparatus and method for automatically parallelizing network applications through pipelining transformation
US7823161B2 (en) * 2004-01-29 2010-10-26 Klingman Edwin E Intelligent memory device with variable size task architecture
US8108870B2 (en) 2004-01-29 2012-01-31 Klingman Edwin E Intelligent memory device having ASCII-named task registers mapped to addresses of a task
US7856632B2 (en) * 2004-01-29 2010-12-21 Klingman Edwin E iMEM ASCII architecture for executing system operators and processing data operators
US7882504B2 (en) * 2004-01-29 2011-02-01 Klingman Edwin E Intelligent memory device with wakeup feature
US7984442B2 (en) * 2004-01-29 2011-07-19 Klingman Edwin E Intelligent memory device multilevel ASCII interpreter
US7908603B2 (en) * 2004-01-29 2011-03-15 Klingman Edwin E Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor
TW200532466A (en) * 2004-02-03 2005-10-01 Sony Corp Information processing device, information processing method, information processing system and information processing program of accessible media
US8028292B2 (en) 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US20090006156A1 (en) * 2007-01-26 2009-01-01 Herbert Dennis Hunt Associating a granting matrix with an analytic platform
JP2005235019A (ja) 2004-02-20 2005-09-02 Sony Corp ネットワークシステム、分散処理方法、情報処理装置
US7614053B2 (en) 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US7565653B2 (en) 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
JP2005242598A (ja) * 2004-02-26 2005-09-08 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
JP4586526B2 (ja) 2004-02-27 2010-11-24 ソニー株式会社 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
JP4325438B2 (ja) 2004-03-01 2009-09-02 ソニー株式会社 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
CN100418074C (zh) * 2004-03-05 2008-09-10 菲尼萨公司 光学收发机中的分级和字节可配置存储器
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
JP4855655B2 (ja) * 2004-06-15 2012-01-18 株式会社ソニー・コンピュータエンタテインメント 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
JP2006004008A (ja) * 2004-06-15 2006-01-05 Sony Computer Entertainment Inc 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
JP3805344B2 (ja) * 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
JP4465598B2 (ja) 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
JP4552540B2 (ja) * 2004-07-09 2010-09-29 ソニー株式会社 コンテンツ記録装置、コンテンツ再生装置、コンテンツ記録方法、コンテンツ再生方法及びプログラム
JP2006031480A (ja) * 2004-07-16 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP4599923B2 (ja) 2004-07-16 2010-12-15 ソニー株式会社 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2006033646A (ja) 2004-07-20 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2006031525A (ja) 2004-07-20 2006-02-02 Sony Corp 情報処理装置および情報処理方法、並びに、プログラム
US7363397B2 (en) * 2004-08-26 2008-04-22 International Business Machines Corporation System and method for DMA controller with multi-dimensional line-walking functionality
US7240137B2 (en) * 2004-08-26 2007-07-03 International Business Machines Corporation System and method for message delivery across a plurality of processors
WO2006025255A1 (ja) * 2004-08-30 2006-03-09 Matsushita Electric Industrial Co., Ltd. 多人数参加型アプリケーションを実行するクライアント端末装置、グループ形成方法及びグループ形成プログラム
WO2006025322A1 (ja) * 2004-08-30 2006-03-09 Matsushita Electric Industrial Co., Ltd. 記録装置
JP2006079280A (ja) 2004-09-08 2006-03-23 Sony Corp 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
US7240182B2 (en) * 2004-09-16 2007-07-03 International Business Machines Corporation System and method for providing a persistent function server
US8001294B2 (en) * 2004-09-28 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
US7290112B2 (en) * 2004-09-30 2007-10-30 International Business Machines Corporation System and method for virtualization of processor resources
US20060070069A1 (en) * 2004-09-30 2006-03-30 International Business Machines Corporation System and method for sharing resources between real-time and virtualizing operating systems
JP2007334379A (ja) 2004-10-05 2007-12-27 Matsushita Electric Ind Co Ltd 処理装置
US20060080661A1 (en) * 2004-10-07 2006-04-13 International Business Machines Corporation System and method for hiding memory latency
US7506325B2 (en) 2004-10-07 2009-03-17 International Business Machines Corporation Partitioning processor resources based on memory usage
TWI321414B (en) * 2004-10-15 2010-03-01 Sony Computer Entertainment Inc Methods and apparatus for supporting multiple configurations in a multi-processor system
US7512699B2 (en) * 2004-11-12 2009-03-31 International Business Machines Corporation Managing position independent code using a software framework
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7512936B2 (en) * 2004-12-17 2009-03-31 Sap Aktiengesellschaft Code diversification
US7689814B2 (en) 2004-12-20 2010-03-30 Sony Computer Entertainment Inc. Methods and apparatus for disabling error countermeasures in a processing system
US7644255B2 (en) * 2005-01-13 2010-01-05 Sony Computer Entertainment Inc. Method and apparatus for enable/disable control of SIMD processor slices
US7337291B2 (en) * 2005-01-14 2008-02-26 Microsoft Corporation Software memory access control
WO2006077892A2 (en) * 2005-01-19 2006-07-27 Matsushita Electric Industrial Co., Ltd. Electronic circuit in which part of the processing of operating units thereof may be taken over by a processor unit thereof
US20060184296A1 (en) * 2005-02-17 2006-08-17 Hunter Engineering Company Machine vision vehicle wheel alignment systems
US20080162877A1 (en) * 2005-02-24 2008-07-03 Erik Richter Altman Non-Homogeneous Multi-Processor System With Shared Memory
US8239238B2 (en) * 2005-03-21 2012-08-07 Microsoft Corporation Methods and apparatus for encoding a work item type definition
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US7522168B2 (en) * 2005-09-27 2009-04-21 Sony Computer Entertainment Inc. Cell processor task and data management
US8037474B2 (en) * 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
JP4536618B2 (ja) * 2005-08-02 2010-09-01 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
US7659899B2 (en) * 2005-08-08 2010-02-09 Via Technologies, Inc. System and method to manage data processing stages of a logical graphics pipeline
US20070030277A1 (en) * 2005-08-08 2007-02-08 Via Technologies, Inc. Method for processing vertex, triangle, and pixel graphics data packets
US20070030280A1 (en) * 2005-08-08 2007-02-08 Via Technologies, Inc. Global spreader and method for a parallel graphics processor
US7659898B2 (en) * 2005-08-08 2010-02-09 Via Technologies, Inc. Multi-execution resource graphics processor
US20070038984A1 (en) * 2005-08-12 2007-02-15 Gschwind Michael K Methods for generating code for an architecture encoding an extended register specification
US7421566B2 (en) * 2005-08-12 2008-09-02 International Business Machines Corporation Implementing instruction set architectures with non-contiguous register file specifiers
US7694107B2 (en) * 2005-08-18 2010-04-06 Hewlett-Packard Development Company, L.P. Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units
US7506123B1 (en) 2005-09-27 2009-03-17 Sony Computer Entertainment Inc. Method and system for performing memory copy function on a cell processor
US7975269B2 (en) * 2005-09-27 2011-07-05 Sony Computer Entertainment Inc. Parallel processor methods and apparatus
US8141076B2 (en) * 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US7734827B2 (en) * 2005-09-27 2010-06-08 Sony Computer Entertainment, Inc. Operation of cell processors
US8316220B2 (en) * 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US20070094435A1 (en) * 2005-10-25 2007-04-26 Fry Walter G Computer docking system and method
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
JP2007156987A (ja) * 2005-12-07 2007-06-21 Toshiba Corp ソフトウェア部品およびソフトウェア部品管理システム
US8595747B2 (en) * 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
US7725682B2 (en) * 2006-01-10 2010-05-25 International Business Machines Corporation Method and apparatus for sharing storage and execution resources between architectural units in a microprocessor using a polymorphic function unit
US8622837B2 (en) 2006-03-20 2014-01-07 Sony Computer Entertainment America Llc Managing game metrics and authorizations
US8010953B2 (en) * 2006-04-04 2011-08-30 International Business Machines Corporation Method for compiling scalar code for a single instruction multiple data (SIMD) execution engine
US8904151B2 (en) 2006-05-02 2014-12-02 International Business Machines Corporation Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath
JP4838884B2 (ja) * 2006-06-22 2011-12-14 ノルドナブ テクノロジーズ エー ビー ソフトウェアベースのスペクトル拡散信号処理
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US8132169B2 (en) * 2006-07-21 2012-03-06 International Business Machines Corporation System and method for dynamically partitioning an application across multiple processing elements in a heterogeneous processing environment
US7987464B2 (en) * 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
US7529849B2 (en) * 2006-07-27 2009-05-05 International Business Machines Corporation Reduction of message flow between bus-connected consumers and producers
US8028290B2 (en) * 2006-08-30 2011-09-27 International Business Machines Corporation Multiple-core processor supporting multiple instruction set architectures
US20080126761A1 (en) * 2006-09-26 2008-05-29 Fontenot Nathan D Method and apparatus for scheduling optimization
US7620797B2 (en) * 2006-11-01 2009-11-17 Apple Inc. Instructions for efficiently accessing unaligned vectors
US7624251B2 (en) * 2006-11-01 2009-11-24 Apple Inc. Instructions for efficiently accessing unaligned partial vectors
US7934179B2 (en) * 2006-11-20 2011-04-26 Et International, Inc. Systems and methods for logic verification
US11244727B2 (en) * 2006-11-29 2022-02-08 Rambus Inc. Dynamic memory rank configuration
US20090006788A1 (en) * 2007-01-26 2009-01-01 Herbert Dennis Hunt Associating a flexible data hierarchy with an availability condition in a granting matrix
US8504598B2 (en) 2007-01-26 2013-08-06 Information Resources, Inc. Data perturbation of non-unique values
EP2111593A2 (en) * 2007-01-26 2009-10-28 Information Resources, Inc. Analytic platform
US20090006309A1 (en) 2007-01-26 2009-01-01 Herbert Dennis Hunt Cluster processing of an aggregated dataset
US8160984B2 (en) 2007-01-26 2012-04-17 Symphonyiri Group, Inc. Similarity matching of a competitor's products
US9390158B2 (en) * 2007-01-26 2016-07-12 Information Resources, Inc. Dimensional compression using an analytic platform
US9262503B2 (en) 2007-01-26 2016-02-16 Information Resources, Inc. Similarity matching of products based on multiple classification schemes
US7747634B2 (en) * 2007-03-08 2010-06-29 Microsoft Corporation Rich data tunneling
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20080244507A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
JP4913685B2 (ja) * 2007-07-04 2012-04-11 株式会社リコー Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法
CN101369233A (zh) * 2007-08-14 2009-02-18 国际商业机器公司 程序编译方法和编译器
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8561037B2 (en) 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8156307B2 (en) 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
CN101398803B (zh) 2007-09-28 2011-04-06 国际商业机器公司 管理数据移动的方法和使用该方法的细胞宽带引擎处理器
US8296743B2 (en) * 2007-12-17 2012-10-23 Intel Corporation Compiler and runtime for heterogeneous multiprocessor systems
US8923510B2 (en) * 2007-12-28 2014-12-30 Intel Corporation Method and apparatus for efficiently implementing the advanced encryption standard
US7916295B2 (en) * 2008-09-03 2011-03-29 Macronix International Co., Ltd. Alignment mark and method of getting position reference for wafer
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US8438404B2 (en) 2008-09-30 2013-05-07 International Business Machines Corporation Main processing element for delegating virtualized control threads controlling clock speed and power consumption to groups of sub-processing elements in a system such that a group of sub-processing elements can be designated as pseudo main processing element
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US20100153934A1 (en) * 2008-12-12 2010-06-17 Peter Lachner Prefetch for systems with heterogeneous architectures
JP5167410B2 (ja) * 2009-01-09 2013-03-21 株式会社日立製作所 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法
US8667476B1 (en) * 2009-01-20 2014-03-04 Adaptmicrosys LLC Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system
US20110066830A1 (en) * 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
KR101603202B1 (ko) * 2009-09-21 2016-03-14 삼성전자주식회사 이기종 멀티프로세서 시스템 온 칩에서의 rpc 데이터 배치 방법 및 장치
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
EP2519876A1 (en) 2009-12-28 2012-11-07 Hyperion Core, Inc. Optimisation of loops and data flow sections
US8862827B2 (en) * 2009-12-29 2014-10-14 International Business Machines Corporation Efficient multi-level software cache using SIMD vector permute functionality
US20110202845A1 (en) * 2010-02-17 2011-08-18 Anthony Jon Mountjoy System and method for generating and distributing three dimensional interactive content
US9645854B2 (en) * 2010-12-15 2017-05-09 Advanced Micro Devices, Inc. Dynamic work partitioning on heterogeneous processing devices
US9235458B2 (en) 2011-01-06 2016-01-12 International Business Machines Corporation Methods and systems for delegating work objects across a mixed computer environment
US9052968B2 (en) * 2011-01-17 2015-06-09 International Business Machines Corporation Methods and systems for linking objects across a mixed computer environment
US9038088B2 (en) * 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
US8914515B2 (en) 2011-10-28 2014-12-16 International Business Machines Corporation Cloud optimization using workload analysis
DE112012004926B4 (de) 2011-12-16 2023-12-07 International Business Machines Corporation Gemeinsame Speichernutzung durch Prozessoren
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US20140068581A1 (en) * 2012-08-30 2014-03-06 International Business Machines Corporation Optimized division of work among processors in a heterogeneous processing system
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US20140189666A1 (en) * 2012-12-27 2014-07-03 Scott A. Krig Automatic pipeline composition
US9448829B2 (en) 2012-12-28 2016-09-20 Intel Corporation Hetergeneous processor apparatus and method
US9672046B2 (en) 2012-12-28 2017-06-06 Intel Corporation Apparatus and method for intelligently powering heterogeneous processor components
US9639372B2 (en) * 2012-12-28 2017-05-02 Intel Corporation Apparatus and method for heterogeneous processors mapping to virtual cores
US9329900B2 (en) 2012-12-28 2016-05-03 Intel Corporation Hetergeneous processor apparatus and method
US8909219B2 (en) 2013-01-17 2014-12-09 Qualcomm Incorporated Methods and apparatus for providing unified wireless communication through efficient memory management
US9578664B1 (en) 2013-02-07 2017-02-21 Sprint Communications Company L.P. Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US9600346B2 (en) 2013-07-10 2017-03-21 International Business Machines Corporation Thread scheduling across heterogeneous processing elements with resource mapping
KR101529877B1 (ko) * 2013-07-26 2015-06-18 서울시립대학교 산학협력단 원격 데이터 연산 방법 및 시스템
US9792354B2 (en) 2013-09-30 2017-10-17 Microsoft Technology Licensing, Llc Context aware user interface parts
GB2516995B (en) * 2013-12-18 2015-08-19 Imagination Tech Ltd Task execution in a SIMD processing unit
CN107408331B (zh) * 2014-04-04 2021-06-18 通用电子有限公司 用于配置便携式设备的遥控功能的系统和方法
DE102015006670A1 (de) * 2014-06-26 2015-12-31 Intel Corporation Befehle und logik zum bereitstellen von kryptographischer allzweck-gf(256)-simd- arithmetikfunktionalität
US9910721B2 (en) 2014-12-09 2018-03-06 Intel Corporation System and method for execution of application code compiled according to two instruction set architectures
CN107408035B (zh) * 2015-03-27 2021-11-09 英特尔公司 用于缕程间通信的装置和方法
CN107430521B (zh) 2015-03-27 2022-02-18 英特尔公司 高效地址转换
US9565168B1 (en) * 2015-05-05 2017-02-07 Sprint Communications Company L.P. System and method of a trusted computing operation mode
US9686240B1 (en) 2015-07-07 2017-06-20 Sprint Communications Company L.P. IPv6 to IPv4 data packet migration in a trusted security zone
US9749294B1 (en) 2015-09-08 2017-08-29 Sprint Communications Company L.P. System and method of establishing trusted operability between networks in a network functions virtualization environment
US10542115B1 (en) 2015-10-01 2020-01-21 Sprint Communications Company L.P. Securing communications in a network function virtualization (NFV) core network
US9811686B1 (en) 2015-10-09 2017-11-07 Sprint Communications Company L.P. Support systems interactions with virtual network functions in a trusted security zone
US9781016B1 (en) 2015-11-02 2017-10-03 Sprint Communications Company L.P. Dynamic addition of network function services
US9733911B2 (en) * 2015-11-11 2017-08-15 National Instruments Corporation Value transfer between program variables using dynamic memory resource mapping
WO2017125161A1 (en) * 2016-01-21 2017-07-27 Hewlett Packard Enterprise Development Lp Resource allocation
US11513805B2 (en) * 2016-08-19 2022-11-29 Wisconsin Alumni Research Foundation Computer architecture with synergistic heterogeneous processors
US10250498B1 (en) 2016-10-03 2019-04-02 Sprint Communications Company L.P. Session aggregator brokering of data stream communication
US10365824B2 (en) 2017-04-24 2019-07-30 Advanced Micro Devices, Inc. Silent active page migration faults
US10310985B2 (en) 2017-06-26 2019-06-04 Ati Technologies Ulc Systems and methods for accessing and managing a computing system memory
US10318344B2 (en) * 2017-07-13 2019-06-11 Advanced Micro Devices, Inc. Predicting page migration granularity for heterogeneous memory systems
CN111149166B (zh) 2017-07-30 2024-01-09 纽罗布拉德有限公司 基于存储器的分布式处理器架构
US10348488B1 (en) 2017-08-25 2019-07-09 Sprint Communications Company L.P. Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network
US11526278B2 (en) 2017-12-21 2022-12-13 Advanced Micro Devices, Inc. Adaptive page close prediction
US10691658B2 (en) 2018-05-09 2020-06-23 International Business Machines Corporation Automatically optimizing resource usage on a target database management system to increase workload performance
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
CN108900639B (zh) * 2018-08-10 2021-04-06 乾元云硕科技(深圳)有限公司 集群式云计算系统
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10915370B2 (en) * 2018-11-29 2021-02-09 International Business Machines Corporation Inter-host communication without data copy in disaggregated systems
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10691464B1 (en) * 2019-01-18 2020-06-23 quadric.io Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
EP3979248A1 (en) * 2020-09-30 2022-04-06 Imec VZW A memory macro
US11847205B1 (en) 2020-10-26 2023-12-19 T-Mobile Innovations Llc Trusted 5G network function virtualization of virtual network function elements embedded on a system-on-chip
US11467995B2 (en) * 2020-12-01 2022-10-11 Micron Technology, Inc. Pin mapping for memory devices
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US11902129B1 (en) 2023-03-24 2024-02-13 T-Mobile Usa, Inc. Vendor-agnostic real-time monitoring of telecommunications networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08180018A (ja) * 1994-12-26 1996-07-12 Toshiba Corp 分散処理システム及び分散処理方法
JPH08249261A (ja) * 1995-03-08 1996-09-27 Mitsubishi Electric Corp メッセージ管理システム

Family Cites Families (270)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US517972A (en) * 1894-04-10 Billiard-ball
US3576544A (en) * 1968-10-18 1971-04-27 Ibm Storage protection system
US4073005A (en) 1974-01-21 1978-02-07 Control Data Corporation Multi-processor computer system
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
JPS5412643A (en) 1977-06-30 1979-01-30 Hitachi Ltd Main memory protective device
JPS54146555A (en) 1978-05-09 1979-11-15 Nec Corp Data transfer system between processors
US4332009A (en) * 1980-01-21 1982-05-25 Mostek Corporation Memory protection system
JPS5812613B2 (ja) 1980-02-08 1983-03-09 工業技術院長 並列デ−タ処理装置
JPS5835295B2 (ja) 1980-03-03 1983-08-02 オムロン株式会社 マスタ・スレ−ブ・システムにおけるデ−タ転送方式
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
JPS576952A (en) 1980-06-16 1982-01-13 Nippon Telegr & Teleph Corp <Ntt> Storage protecting system
JPS57176456A (en) 1981-04-22 1982-10-29 Fanuc Ltd Data processing system
DE3171379D1 (en) * 1981-04-28 1985-08-22 Ibm Bus arrangement for interconnectiong circuit chips
US4394727A (en) 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
JPS58134357A (ja) * 1982-02-03 1983-08-10 Hitachi Ltd ベクトルプロセッサ
AU542447B2 (en) * 1982-02-27 1985-02-21 Fujitsu Limited System for controlling key storage unit
JPS5958700A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd 記憶保護判定方式
US4545016A (en) * 1983-01-07 1985-10-01 Tandy Corporation Memory management system
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US5159700A (en) * 1984-01-16 1992-10-27 Texas Instruments Incorporated Substrate with optical communication systems between chips mounted thereon and monolithic integration of optical I/O on silicon substrates
JPS61180352A (ja) 1984-12-30 1986-08-13 Fujitsu Ltd プログラムダウンロ−ド方式
IT1184553B (it) * 1985-05-07 1987-10-28 Honeywell Inf Systems Architettura di sistema a piu' processori
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4945479A (en) 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
US4732446A (en) * 1985-10-02 1988-03-22 Lamar Gipson Electrical circuit and optical data buss
CA1280829C (en) * 1985-11-13 1991-02-26 Toshio Matsumoto Main storage access control system for virtual computing function system
US4787057A (en) 1986-06-04 1988-11-22 General Electric Company Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements
JPS6319058A (ja) 1986-07-11 1988-01-26 Fujitsu Ltd メモリ装置
US4823286A (en) * 1987-02-12 1989-04-18 International Business Machines Corporation Pixel data path for high performance raster displays with all-point-addressable frame buffers
JP2960415B2 (ja) * 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
JPS6412364U (ko) 1987-07-11 1989-01-23
JPH0719704Y2 (ja) 1987-07-31 1995-05-10 シャープ株式会社 生産ラインの生産管理装置
US4862407A (en) * 1987-10-05 1989-08-29 Motorola, Inc. Digital signal processing apparatus
JP2594979B2 (ja) 1987-10-23 1997-03-26 株式会社日立製作所 マルチプロセツサシステム
US5261113A (en) * 1988-01-25 1993-11-09 Digital Equipment Corporation Apparatus and method for single operand register array for vector and scalar data processing operations
JP2677589B2 (ja) 1988-02-26 1997-11-17 株式会社東芝 携帯可能電子装置およびicチップ
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
JPH0212361A (ja) 1988-06-29 1990-01-17 Fujitsu Ltd 階層化バスによる並列計算機システム
US4939682A (en) * 1988-07-15 1990-07-03 The Boeing Company Integrated electro-optic arithmetic/logic unit and method for making the same
US5179669A (en) * 1988-08-22 1993-01-12 At&T Bell Laboratories Multiprocessor interconnection and access arbitration arrangement
JP2837413B2 (ja) 1988-08-24 1998-12-16 株式会社日立メディコ 複数端末cpuを有するct装置
EP0369052A1 (en) * 1988-11-17 1990-05-23 International Business Machines Corporation Data base access system
JPH02210542A (ja) 1989-02-10 1990-08-21 Fujitsu Ltd 仮想計算機システムにおける実行制御方式
CA2011807C (en) 1989-03-20 1999-02-23 Katsumi Hayashi Data base processing system using multiprocessor system
EP0424618A3 (en) * 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
JPH0640324B2 (ja) 1989-10-26 1994-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプロセス同期方法
US5037173A (en) * 1989-11-22 1991-08-06 Texas Instruments Incorporated Optical interconnection network
US5179702A (en) 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
EP0509055A4 (en) * 1990-01-05 1994-07-27 Maspar Computer Corp Parallel processor memory system
EP0461926B1 (en) 1990-06-15 1998-09-02 Compaq Computer Corporation Multilevel inclusion in multilevel cache hierarchies
US5093879A (en) * 1990-06-22 1992-03-03 International Business Machines Corporation Electro-optical connectors
US5144691A (en) * 1990-07-20 1992-09-01 Cray Research, Inc. Computer signal interconnect apparatus
JPH06119299A (ja) 1990-08-31 1994-04-28 Texas Instr Inc <Ti> マルチプロセッサシステム及びデータダウンロード方法
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
KR940004404B1 (ko) * 1990-11-30 1994-05-25 삼성전자 주식회사 불휘발성 반도체 메모리장치
US5131054A (en) * 1991-01-09 1992-07-14 Thinking Machines Corporation Character recognition system using massively parallel computer that identifies a query character using degree of similarity with plurality of training characters of known identity
US5978831A (en) 1991-03-07 1999-11-02 Lucent Technologies Inc. Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates
JPH04284754A (ja) * 1991-03-14 1992-10-09 Fujitsu Ltd Atm交換装置
JPH04288643A (ja) 1991-03-18 1992-10-13 Nec Corp マルチプロセッサシステムのメモリマッピング方式
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
EP0523544B1 (en) 1991-07-12 2002-02-27 Matsushita Electric Industrial Co., Ltd. Apparatus to solve a system of linear equations
US5519875A (en) * 1991-08-08 1996-05-21 Hitachi, Ltd. Distributed processing system for modules, each having modularized objects
US5630128A (en) 1991-08-09 1997-05-13 International Business Machines Corporation Controlled scheduling of program threads in a multitasking operating system
US5185861A (en) 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
JPH0554009A (ja) 1991-08-29 1993-03-05 Nec Eng Ltd プログラムロード方式
US5361370A (en) 1991-10-24 1994-11-01 Intel Corporation Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port
JP3364937B2 (ja) 1991-11-29 2003-01-08 株式会社日立製作所 並列演算装置
US5359721A (en) 1991-12-18 1994-10-25 Sun Microsystems, Inc. Non-supervisor mode cross address space dynamic linking
US5394547A (en) 1991-12-24 1995-02-28 International Business Machines Corporation Data processing system and method having selectable scheduler
US5268973A (en) * 1992-01-21 1993-12-07 The University Of Texas System Wafer-scale optical bus
JPH05242057A (ja) 1992-02-27 1993-09-21 Sanyo Electric Co Ltd マルチプロセッサシステムの起動方式
JPH05324589A (ja) * 1992-03-25 1993-12-07 Nippon Sheet Glass Co Ltd 並列コンピュータ装置および光結合装置
JPH0612333A (ja) 1992-06-25 1994-01-21 Hitachi Ltd 情報処理装置の記憶保護方式
JPH0644110A (ja) 1992-07-23 1994-02-18 Fuji Xerox Co Ltd インストール方法
US5423051A (en) * 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
US5437042A (en) * 1992-10-02 1995-07-25 Compaq Computer Corporation Arrangement of DMA, interrupt and timer functions to implement symmetrical processing in a multiprocessor computer system
EP0680640A1 (en) 1993-01-22 1995-11-08 University Corporation For Atmospheric Research Multipipeline multiprocessor system
JP2826028B2 (ja) * 1993-01-28 1998-11-18 富士通株式会社 分散メモリ型プロセッサシステム
EP0610583A1 (en) * 1993-02-08 1994-08-17 International Business Machines Corporation Multizone relocation facility computer memory system
US5619671A (en) * 1993-04-19 1997-04-08 International Business Machines Corporation Method and apparatus for providing token controlled access to protected pages of memory
US5438513A (en) * 1993-11-19 1995-08-01 Chrysler Corporation Automotive electronics test system
US5487146A (en) * 1994-03-08 1996-01-23 Texas Instruments Incorporated Plural memory access address generation employing guide table entries forming linked list
US5560030A (en) 1994-03-08 1996-09-24 Texas Instruments Incorporated Transfer processor with transparency
US5692193A (en) 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
JP3639323B2 (ja) 1994-03-31 2005-04-20 富士通株式会社 メモリ分散型並列計算機による連立1次方程式計算処理方法および計算機
JPH07287064A (ja) 1994-04-20 1995-10-31 Mitsubishi Electric Corp レーダ信号処理装置
EP0681236B1 (en) * 1994-05-05 2000-11-22 Conexant Systems, Inc. Space vector data path
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US5535419A (en) * 1994-05-27 1996-07-09 Advanced Micro Devices Sytem and method for merging disk change data from a floppy disk controller with data relating to an IDE drive controller
DE19580738T1 (de) 1994-05-31 1996-08-22 Fujitsu Ltd System und Verfahren zur Jobausführung zwischen verschiedenen Betriebssystemen
JPH0895757A (ja) 1994-09-19 1996-04-12 Internatl Business Mach Corp <Ibm> マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置
US5754817A (en) 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
US5548798A (en) 1994-11-10 1996-08-20 Intel Corporation Method and apparatus for solving dense systems of linear equations with an iterative method that employs partial multiplications using rank compressed SVD basis matrices of the partitioned submatrices of the coefficient matrix
JP3493772B2 (ja) 1994-11-18 2004-02-03 富士ゼロックス株式会社 制御ソフトウェア仕様変更システム
JPH08161283A (ja) 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
US5754436A (en) * 1994-12-22 1998-05-19 Texas Instruments Incorporated Adaptive power management processes, circuits and systems
US5537606A (en) * 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
JPH08212178A (ja) 1995-02-08 1996-08-20 Hitachi Ltd 並列計算機
JP2731742B2 (ja) 1995-02-28 1998-03-25 甲府日本電気株式会社 クラスタ構成の並列計算機
EP0730237A1 (en) 1995-02-28 1996-09-04 Nec Corporation Multi-processor system with virtually addressable communication registers and controlling method thereof
DE19508723A1 (de) * 1995-03-10 1996-09-12 Siemens Ag Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz
JP3547139B2 (ja) * 1995-03-17 2004-07-28 株式会社 日立製作所 プロセッサ
US5850534A (en) * 1995-06-05 1998-12-15 Advanced Micro Devices, Inc. Method and apparatus for reducing cache snooping overhead in a multilevel cache system
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5956509A (en) 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US6331856B1 (en) 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
FR2742248B1 (fr) * 1995-12-06 1998-01-23 Thomson Multimedia Sa Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement
JP3786993B2 (ja) * 1995-12-14 2006-06-21 株式会社日立製作所 データ記憶ユニット及び該ユニットを用いたデータ記憶装置
US6886167B1 (en) * 1995-12-27 2005-04-26 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status
US6088783A (en) * 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
JPH09198361A (ja) 1996-01-23 1997-07-31 Kofu Nippon Denki Kk マルチプロセッサシステム
US5729712A (en) * 1996-01-26 1998-03-17 Unisys Corporation Smart fill system for multiple cache network
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
JP3926866B2 (ja) 1996-05-10 2007-06-06 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、及び描画システム
US5940870A (en) * 1996-05-21 1999-08-17 Industrial Technology Research Institute Address translation for shared-memory multiprocessor clustering
JPH09311839A (ja) 1996-05-21 1997-12-02 Hitachi Ltd データ共用方式
US5787309A (en) * 1996-05-23 1998-07-28 International Business Machines Corporation Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits
US5900019A (en) * 1996-05-23 1999-05-04 International Business Machines Corporation Apparatus for protecting memory storage blocks from I/O accesses
US5724551A (en) * 1996-05-23 1998-03-03 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
AT1751U1 (de) * 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
JPH10126771A (ja) 1996-10-15 1998-05-15 Toshiba Corp 画像データ転送システムにおける画像データ送出レート制御方法および画像データ転送方法
US6006315A (en) * 1996-10-18 1999-12-21 Samsung Electronics Co., Ltd. Computer methods for writing a scalar value to a vector
US5745500A (en) * 1996-10-22 1998-04-28 The United States Of America As Represented By The Secretary Of The Army Built-in self testing for the identification of faulty integrated circuit chips in a multichip module
US6513057B1 (en) * 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US5835775A (en) * 1996-12-12 1998-11-10 Ncr Corporation Method and apparatus for executing a family generic processor specific application
US5961628A (en) * 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
JP3421526B2 (ja) * 1997-02-14 2003-06-30 モトローラ株式会社 デ−タ処理装置
US6192514B1 (en) * 1997-02-19 2001-02-20 Unisys Corporation Multicomputer system
US6424988B2 (en) * 1997-02-19 2002-07-23 Unisys Corporation Multicomputer system
US6289434B1 (en) * 1997-02-28 2001-09-11 Cognigine Corporation Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates
DE19710504C2 (de) * 1997-03-13 2001-06-13 Siemens Ag Optisch-elektrisches Modul
JP3681026B2 (ja) 1997-03-27 2005-08-10 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法
JP3739888B2 (ja) * 1997-03-27 2006-01-25 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法
US6212605B1 (en) * 1997-03-31 2001-04-03 International Business Machines Corporation Eviction override for larx-reserved addresses
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
JPH1139215A (ja) 1997-05-22 1999-02-12 Matsushita Electric Ind Co Ltd キャッシュメモリおよびキャッシュメモリを制御する方法
JPH10334055A (ja) 1997-06-03 1998-12-18 Sony Corp マルチプロセッサ・システム
JP3490256B2 (ja) 1997-06-12 2004-01-26 三菱電機株式会社 エージェント方式
US5892966A (en) * 1997-06-27 1999-04-06 Sun Microsystems, Inc. Processor complex for executing multimedia functions
US6360303B1 (en) * 1997-09-30 2002-03-19 Compaq Computer Corporation Partitioning memory shared by multiple processors of a distributed processing system
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6209065B1 (en) * 1997-10-24 2001-03-27 Compaq Computer Corporation Mechanism for optimizing generation of commit-signals in a distributed shared-memory system
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
US6173389B1 (en) * 1997-12-04 2001-01-09 Billions Of Operations Per Second, Inc. Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US6128724A (en) 1997-12-11 2000-10-03 Leland Stanford Junior University Computation using codes for controlling configurable computational circuit
KR100257046B1 (ko) * 1998-03-03 2000-05-15 윤종용 인터페이스 기능 전환을 위한 지능형 입/출력 제어기
US6192467B1 (en) * 1998-03-31 2001-02-20 Intel Corporation Executing partial-width packed data instructions
US6105111A (en) 1998-03-31 2000-08-15 Intel Corporation Method and apparatus for providing a cache management technique
US6473897B1 (en) * 1998-04-13 2002-10-29 Intel Corporation Method and apparatus for generating multiple processor-specific code segments in a single executable
US6049668A (en) * 1998-04-13 2000-04-11 Intel Corporation Method and apparatus for supporting multiple processor-specific code segments in a single executable
US6167430A (en) * 1998-05-12 2000-12-26 Unisys Corporation Multicomputer with distributed directory and operating system
US6088511A (en) * 1998-05-13 2000-07-11 Microsoft Corporation Nested parallel 2D Delaunay triangulation method
US6292822B1 (en) 1998-05-13 2001-09-18 Microsoft Corporation Dynamic load balancing among processors in a parallel computer
US6292935B1 (en) 1998-05-29 2001-09-18 Intel Corporation Method for fast translation of java byte codes into efficient native processor code
US6336187B1 (en) * 1998-06-12 2002-01-01 International Business Machines Corp. Storage system with data-dependent security
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
JP3224782B2 (ja) 1998-08-03 2001-11-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 処理分担動的変更方法及びコンピュータ
US6415353B1 (en) * 1998-10-01 2002-07-02 Monolithic System Technology, Inc. Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
US6643708B1 (en) * 1998-10-29 2003-11-04 International Business Machines Corporation Systems, methods and computer program products for chaining Java servlets across networks
US6480818B1 (en) 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6714217B2 (en) 1998-12-18 2004-03-30 Sprint Communication Company, L.P. System and method for providing a graphical user interface to, for building, and/or for monitoring a telecommunication network
US6381693B2 (en) * 1998-12-31 2002-04-30 Intel Corp. Arrangements having firmware support for different processor types
US6381659B2 (en) 1999-01-19 2002-04-30 Maxtor Corporation Method and circuit for controlling a first-in-first-out (FIFO) buffer using a bank of FIFO address registers capturing and saving beginning and ending write-pointer addresses
JP3790060B2 (ja) 1999-01-29 2006-06-28 株式会社山武 演算処理装置
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US6308252B1 (en) * 1999-02-04 2001-10-23 Kabushiki Kaisha Toshiba Processor method and apparatus for performing single operand operation and multiple parallel operand operation
JP4123621B2 (ja) * 1999-02-16 2008-07-23 株式会社日立製作所 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US6480941B1 (en) * 1999-02-23 2002-11-12 International Business Machines Corporation Secure partitioning of shared memory based multiprocessor system
US6647208B1 (en) * 1999-03-18 2003-11-11 Massachusetts Institute Of Technology Hybrid electronic/optical switch system
US6728961B1 (en) 1999-03-31 2004-04-27 International Business Machines Corporation Method and system for dynamically load balancing a process over a plurality of peer machines
US6845498B1 (en) 1999-05-11 2005-01-18 Microsoft Corporation Method and apparatus for sharing data files among run time environment applets in an integrated circuit card
US6477170B1 (en) * 1999-05-21 2002-11-05 Advanced Micro Devices, Inc. Method and apparatus for interfacing between systems operating under different clock regimes with interlocking to prevent overwriting of data
US6463521B1 (en) 1999-06-23 2002-10-08 Sun Microsystems, Inc. Opcode numbering for meta-data encoding
DE60039554D1 (de) * 1999-06-25 2008-09-04 Canon Res Ct France S A Verteilte Verwaltung von Datenobjekten in einem Kommunikations-Netzwerk
US6446218B1 (en) 1999-06-30 2002-09-03 B-Hub, Inc. Techniques for maintaining fault tolerance for software programs in a clustered computer system
US6467012B1 (en) * 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US7124170B1 (en) 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6401175B1 (en) 1999-10-01 2002-06-04 Sun Microsystems, Inc. Shared write buffer for use by multiple processor units
US6530011B1 (en) * 1999-10-20 2003-03-04 Sandcraft, Inc. Method and apparatus for vector register with scalar values
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
US6577311B1 (en) 1999-12-16 2003-06-10 Picture Iq Corporation Techniques for automatically providing a high-resolution rendering of a low resolution digital image in a distributed network
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6694380B1 (en) * 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
JP2001195230A (ja) 2000-01-14 2001-07-19 Mitsubishi Electric Corp 描画処理システム、及び描画演算を行う半導体集積回路
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US7137115B2 (en) 2000-01-25 2006-11-14 Fujitsu Limited Method for controlling multithreading
JP3543942B2 (ja) 2000-03-02 2004-07-21 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
TW501045B (en) 2000-03-03 2002-09-01 Sony Computer Entertainment Inc Entertainment device and computer system having exchangeability
JP2001319243A (ja) 2000-03-03 2001-11-16 Sony Computer Entertainment Inc 画像生成装置、画像生成装置におけるジオメトリ処理形態の切換方法、記録媒体、コンピュータプログラム、半導体デバイス
EP1261921A2 (en) * 2000-03-08 2002-12-04 Sun Microsystems, Inc. Vliw computer processing architecture with on-chip dynamic ram
US7080234B2 (en) * 2000-03-08 2006-07-18 Sun Microsystems, Inc. VLIW computer processing architecture having the problem counter stored in a register file register
WO2001067234A2 (en) * 2000-03-08 2001-09-13 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
US6738967B1 (en) * 2000-03-14 2004-05-18 Microsoft Corporation Compiling for multiple virtual machines targeting different processor architectures
US6578155B1 (en) * 2000-03-16 2003-06-10 International Business Machines Corporation Data processing system with adjustable clocks for partitioned synchronous interfaces
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6799207B1 (en) * 2000-04-10 2004-09-28 International Business Machines Corporation Method and system for downloading software managed trees in a network processing system
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6684390B1 (en) 2000-04-17 2004-01-27 Koninklijke Philips Electronics N.V. Multi-processor JAVA subsystem
US6950848B1 (en) 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7103664B1 (en) 2000-05-31 2006-09-05 International Business Machines Corporation Method, system and program products for ordering lists of service addresses to provide load balancing of a clustered environment
US6791555B1 (en) * 2000-06-23 2004-09-14 Micron Technology, Inc. Apparatus and method for distributed memory control in a graphics processing system
JP4640880B2 (ja) 2000-07-14 2011-03-02 国立大学法人東京工業大学 マイクロプロセッサシステム
US6892298B2 (en) 2000-07-26 2005-05-10 Times N Systems, Inc. Load/store micropacket handling system
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6704926B1 (en) 2000-09-28 2004-03-09 International Business Machines Corporation Bimodal Java just-in-time complier
JP2002207685A (ja) 2000-10-12 2002-07-26 Sony Computer Entertainment Inc 仮想世界システム、サーバコンピュータおよび情報処理装置
US6895479B2 (en) 2000-11-15 2005-05-17 Texas Instruments Incorporated Multicore DSP device having shared program memory with conditional write protection
US6433043B1 (en) 2000-11-28 2002-08-13 Transitions Optical, Inc. Removable imbibition composition of photochromic compound and kinetic enhancing additive
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US6865631B2 (en) * 2000-12-14 2005-03-08 International Business Machines Corporation Reduction of interrupts in remote procedure calls
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6748501B2 (en) * 2000-12-30 2004-06-08 International Business Machines Corporation Microprocessor reservation mechanism for a hashed address system
US6751753B2 (en) 2001-02-27 2004-06-15 Sun Microsystems, Inc. Method, system, and program for monitoring system components
US7165108B2 (en) 2001-03-19 2007-01-16 Sun Microsystems, Inc. Method and apparatus for providing application specific strategies to a JAVA platform including load balancing policies
JP3716753B2 (ja) 2001-03-21 2005-11-16 日本電気株式会社 マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム
US6779045B2 (en) * 2001-03-21 2004-08-17 Intel Corporation System and apparatus for increasing the number of operations per transmission for a media management system
US6990598B2 (en) * 2001-03-21 2006-01-24 Gallitzin Allegheny Llc Low power reconfigurable systems and methods
US6966015B2 (en) 2001-03-22 2005-11-15 Micromuse, Ltd. Method and system for reducing false alarms in network fault management systems
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6922726B2 (en) * 2001-03-23 2005-07-26 International Business Machines Corporation Web accessibility service apparatus and method
US6578128B1 (en) * 2001-03-29 2003-06-10 Emc Corporation Address management for a shared memory region on a multi-processor controller board
US6966057B2 (en) 2001-03-30 2005-11-15 Intel Corporation Static compilation of instrumentation code for debugging support
US7210022B2 (en) 2001-05-15 2007-04-24 Cloudshield Technologies, Inc. Apparatus and method for interconnecting a processor to co-processors using a shared memory as the communication interface
JP2003033576A (ja) 2001-05-18 2003-02-04 Sony Computer Entertainment Inc エンタテインメントシステム、通信システム、通信プログラム、通信プログラムを格納したコンピュータ読み取り可能な記録媒体、及び通信方法
US20030055927A1 (en) 2001-06-06 2003-03-20 Claudius Fischer Framework for a device and a computer system needing synchronization
KR100441115B1 (ko) 2001-06-27 2004-07-19 주식회사 인터와이즈 정보 단말기의 자바 프로그램 처리 속도 향상을 위한 자바컴파일 온 디멘드 서비스 시스템 및 그 방법
US7178145B2 (en) 2001-06-29 2007-02-13 Emc Corporation Queues for soft affinity code threads and hard affinity code threads for allocation of processors to execute the threads in a multi-processor system
US6862608B2 (en) 2001-07-17 2005-03-01 Storage Technology Corporation System and method for a distributed shared memory
US6839828B2 (en) * 2001-08-14 2005-01-04 International Business Machines Corporation SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode
US20030074650A1 (en) 2001-10-17 2003-04-17 Tankut Akgul Debugger operating system for embedded systems
JP2003140912A (ja) 2001-10-29 2003-05-16 Sony Corp データ処理システム及びデータ処理方法、並びに記憶媒体
JP3673245B2 (ja) * 2002-06-28 2005-07-20 株式会社東芝 情報処理装置および同装置における電源制御方法
US7093258B1 (en) 2002-07-30 2006-08-15 Unisys Corporation Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system
US7167916B2 (en) 2002-08-30 2007-01-23 Unisys Corporation Computer OS dispatcher operation with virtual switching queue and IP queues
JP2004103347A (ja) * 2002-09-09 2004-04-02 Sumitomo Wiring Syst Ltd コネクタ
US7127709B2 (en) 2002-09-25 2006-10-24 Microsoft Corporation System and method for jointly managing dynamically generated code and data
WO2004046950A1 (en) 2002-11-15 2004-06-03 Infineon Technologies Ag Mailbox interface between processors
US7043579B2 (en) 2002-12-05 2006-05-09 International Business Machines Corporation Ring-topology based multiprocessor data access bus
US7080242B2 (en) * 2002-12-19 2006-07-18 Hewlett-Packard Development Company, L.P. Instruction set reconciliation for heterogeneous symmetric-multiprocessor systems
US7146542B2 (en) 2002-12-20 2006-12-05 Hewlett-Packard Development Company, L.P. Method and apparatus for diagnosis and repair of computer devices and device drivers
US8423976B2 (en) 2003-03-13 2013-04-16 Northrop Grumman Corporation Extreme pipeline and optimized reordering technology
US20040193838A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney Vector instructions composed from scalar instructions
US7114042B2 (en) 2003-05-22 2006-09-26 International Business Machines Corporation Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment
US6981072B2 (en) 2003-06-05 2005-12-27 International Business Machines Corporation Memory management in multiprocessor system
US7133978B1 (en) 2003-06-19 2006-11-07 Xilinx, Inc. Method and apparatus for processing data stored in a memory shared among a plurality of processors
US7472112B2 (en) 2003-06-23 2008-12-30 Microsoft Corporation Distributed query engine pipeline method and system
US7134007B2 (en) * 2003-06-30 2006-11-07 Intel Corporation Method for sharing firmware across heterogeneous processor architectures
US7200689B2 (en) 2003-07-31 2007-04-03 International Business Machines Corporation Cacheable DMA
US20050028148A1 (en) 2003-08-01 2005-02-03 Sun Microsystems, Inc. Method for dynamic recompilation of a program
US7478390B2 (en) 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US6981074B2 (en) 2003-10-14 2005-12-27 Broadcom Corporation Descriptor-based load balancing
US7321958B2 (en) 2003-10-30 2008-01-22 International Business Machines Corporation System and method for sharing memory by heterogeneous processors
GB2409067B (en) * 2003-12-09 2006-12-13 Advanced Risc Mach Ltd Endianess compensation within a SIMD data processing system
TWI321414B (en) * 2004-10-15 2010-03-01 Sony Computer Entertainment Inc Methods and apparatus for supporting multiple configurations in a multi-processor system
US20060179277A1 (en) * 2005-02-04 2006-08-10 Flachs Brian K System and method for instruction line buffer holding a branch target buffer
US7840954B2 (en) * 2005-11-29 2010-11-23 International Business Machines Corporation Compilation for a SIMD RISC processor
US20070174825A1 (en) * 2006-01-25 2007-07-26 Eichenberger Alexandre E Apparatus and method for optimizing scalar code executed on a SIMD engine by alignment of SIMD slots
US7809925B2 (en) * 2007-12-07 2010-10-05 International Business Machines Corporation Processing unit incorporating vectorizable execution unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08180018A (ja) * 1994-12-26 1996-07-12 Toshiba Corp 分散処理システム及び分散処理方法
JPH08249261A (ja) * 1995-03-08 1996-09-27 Mitsubishi Electric Corp メッセージ管理システム

Also Published As

Publication number Publication date
US7496673B2 (en) 2009-02-24
CN100412848C (zh) 2008-08-20
EP1370968B1 (en) 2011-11-16
WO2002077845A1 (en) 2002-10-03
KR20030085037A (ko) 2003-11-01
US7720982B2 (en) 2010-05-18
US20070168538A1 (en) 2007-07-19
JP4455822B2 (ja) 2010-04-21
EP1370968A4 (en) 2010-03-03
US20070288701A1 (en) 2007-12-13
EP2296090A3 (en) 2011-03-23
EP1370968A1 (en) 2003-12-17
EP2296090B1 (en) 2013-02-13
US20070186077A1 (en) 2007-08-09
US8091078B2 (en) 2012-01-03
US20050160097A1 (en) 2005-07-21
KR100959748B1 (ko) 2010-05-25
US20020138637A1 (en) 2002-09-26
US20050081181A1 (en) 2005-04-14
JP2003271570A (ja) 2003-09-26
US20080256275A1 (en) 2008-10-16
US7392511B2 (en) 2008-06-24
US20050138325A1 (en) 2005-06-23
US20060190614A1 (en) 2006-08-24
US7233998B2 (en) 2007-06-19
EP2296090A2 (en) 2011-03-16
JP2002366533A (ja) 2002-12-20
TWI266200B (en) 2006-11-11
US7509457B2 (en) 2009-03-24
US20050268048A1 (en) 2005-12-01
CN1494690A (zh) 2004-05-05
KR20080108588A (ko) 2008-12-15
US20080250414A1 (en) 2008-10-09

Similar Documents

Publication Publication Date Title
KR100891063B1 (ko) 광대역 네트워크용 컴퓨터 구조 및 소프트웨어 셀
KR100847982B1 (ko) 광대역 네트워크상의 컴퓨터 구조에 있어서 자원 전용방법 및 시스템
KR100840113B1 (ko) 광대역 네트워크상의 컴퓨터 구조를 위한 처리 모듈
KR100866739B1 (ko) 광대역 네트워크용 컴퓨터 구조에 있어서 데이터 동기를위한 시스템 및 방법
KR100890134B1 (ko) 광대역 네트워크용 컴퓨터 구조를 위한 메모리 보호시스템 및 방법

Legal Events

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

Payment date: 20130304

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170221

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180302

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190306

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200303

Year of fee payment: 12