KR20240008324A - 서브 도메인들을 갖는 마스터-슬레이브 통신 - Google Patents

서브 도메인들을 갖는 마스터-슬레이브 통신 Download PDF

Info

Publication number
KR20240008324A
KR20240008324A KR1020237039789A KR20237039789A KR20240008324A KR 20240008324 A KR20240008324 A KR 20240008324A KR 1020237039789 A KR1020237039789 A KR 1020237039789A KR 20237039789 A KR20237039789 A KR 20237039789A KR 20240008324 A KR20240008324 A KR 20240008324A
Authority
KR
South Korea
Prior art keywords
subdomain
slave
master node
node
slave nodes
Prior art date
Application number
KR1020237039789A
Other languages
English (en)
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 KR20240008324A publication Critical patent/KR20240008324A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40019Details regarding a bus master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

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

Abstract

컴퓨팅 시스템은 제1 복수의 슬레이브 노드들 중 하나를 제1 서브도메인 마스터 노드로 구성하고 제1 복수의 슬레이브 노드들 중 하나 이상의 다른 슬레이브 노드들을 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드로 구성함으로써 제1 서브도메인을 생성하기 위한 방법을 구현할 수 있다.

Description

서브 도메인들을 갖는 마스터-슬레이브 통신
마스터-슬레이브(master-slave)는 "마스터"라고 불리는 하나의 디바이스 또는 프로세스가 "슬레이브들"이라고 하는 하나 이상의 다른 디바이스들 또는 프로세스들을 제어하는 통신 및 제어의 모델이다. 일부 시스템에서 다른 디바이스들 또는 노드들이 슬레이브들 역할을 하는 적합한 디바이스들 또는 노드들의 그룹에서 마스터가 선택된다. 예를 들어, 도 1의 마스터 노드(102) 및 슬레이브 노드(104)를 포함하는 마스터-슬레이브 시스템(100)을 참조한다. 도시된 예에서, 노드들(102 내지 104)의 각각은 n개의 레지스터들을 포함한다.
부트 작업(boot task)들, 데이터 저장 작업들 등과 같은 작업들을 실행하기 위해 다양한 시스템 노드들에서 마스터/슬레이브 프로세스들을 이용하는 것이 컴퓨터/프로세서 산업에서 일반적이다. 종래의 마스터/슬레이브 모델은 슬레이브 노드들(예를 들어, 슬레이브 노드(104))에 대한 요청들 또는 작업들을 개시(initiate)하기 위해 하나의 노드가 마스터 노드(예를 들어, 마스터 노드(102))로서 작동(work)하도록 허용한다. 슬레이브 노드(들)는 마스터 노드의 요청들에 응답하며 요청들을 개시하거나 서로 응답하지 않는다.
본 개시는 첨부된 도면들에서 제한이 아니라 예로서 예시된다.
도 1은 종래의 마스터-슬레이브 시스템의 선행 기술 예시이다.
도 2는 마스터-슬레이브 서브도메인(subdomain) 시스템이 구현되는 컴퓨터 시스템의 실시예를 예시한다.
도 3은 시스템과 같은 시스템의 다양한 마스터-슬레이브 가능 디바이스들 및 컴포넌트들에 의해 실행될 수 있는 서브도메인 생성 프로세스(300)의 실시예를 예시한다.
도 4는 마스터-슬레이브 노드들로 구성된 레지스터들을 사용하여 서브도메인을 생성하는 마스터-슬레이브 시스템의 실시예를 예시한다.
도 5는 2개의 서브도메인들의 생성 및 사용을 위한 흐름도를 포함하는 마스터-슬레이브 시스템의 실시예를 예시한다.
도 6은 내포(nest)된 서브도메인들을 포함하는 서브도메인의 생성을 위한 흐름도를 포함하는 마스터-슬레이브 시스템의 실시예를 예시한다.
도 7은 컴퓨터 시스템에서 소켓 대 소켓(socket-to-socket) 통신을 위해 통신 키(key)들을 교환하기 위해 마스터-슬레이브 서브도메인들을 사용하는 링 토폴로지(ring topology)에 연결된 다중-칩(multi-chip) 다중-소켓 시스템의 실시예를 예시한다.
도 8은 컴퓨터 시스템에서 소켓 대 소켓 통신을 위해 통신 키들을 교환하기 위해 마스터-슬레이브 서브도메인들을 사용하는 라인 토폴로지(line topology)에 연결된 다중-소켓 시스템의 실시예를 예시한다.
다음 설명은 실시예들의 좋은 이해를 제공하기 위해 특정 시스템들, 컴포넌트들, 방법들 등과 같은 많은 특정 세부사항들을 설명(set forth)한다. 그러나, 적어도 일부 실시예들이 이 특정 세부사항들 없이 실시(practice)될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우들에, 실시예들을 불필요하게 모호(obscure)하게 하는 것을 피하기 위해 잘 알려진 컴포넌트들 또는 방법들은 상세하게 설명되지 않거나 간단한 블록도 형식으로 제시된다. 따라서, 설명된 특정 세부사항들은 단지 예시일 뿐이다. 특정 구현예들은 이 예시적인 세부 사항들과 다를 수 있으며 여전히 실시예들의 사상 및 범위(spirit and scope) 내에 있는 것으로 고려된다.
모든 유형들의 컴퓨터 시스템들 및 디바이스들은 종종 작업들을 완료하기 위해 상호통신(intercommunicate)할 필요가 있는 노드들의 클러스터(cluster)들을 포함한다. 이 클러스터들은 종종 마스터-슬레이브 프로토콜을 사용하여 작업들을 배정(assign)하고 실행한다. 그러나 슬레이브 노드들은 하나의 도메인에 있는 마스터와만 통신할 수 있으며 서로 직접 통신할 수 없다. 따라서 대부분의 클러스터 작업들은 단일 도메인의 글로벌(global) 마스터 노드에 의해 오케스트레이팅(orchestrate)되므로 성능과 효율성이 저하된다.
일 실시예에서, 클러스터 작업들은 글로벌 마스터 노드로부터의 개입(intervention) 없이 별도의 서브도메인들에서 병렬(parallel)로 또는 동시에(concurrently) 실행될 수 있다. 작업들은 서브도메인 레벨 또는 내포된 서브도메인 레벨에서 운영(run)되도록 스케줄링되고 모든 크기의 클러스터들에서 신속하게(quickly) 확장할 수 있다. 마스터-슬레이브 아키텍처를 이용하는 시스템들은 계산 시간(compute time)들과 복잡성(complexity)이 서브도메인 작업 커맨드 실행의 단일 유닛(unit)과 동일하기 때문에 특히 병렬로 서브도메인들을 운영하면 이점을 얻을 수 있다.
도 2는 마스터-슬레이브 서브도메인 시스템이 구현되는 컴퓨터 시스템(200)의 실시예를 예시한다. 컴퓨터 시스템(200)은 디바이스(204), 디바이스(206) 및 디바이스(208)에 통신 가능하게 결합(couple)된 통신 링크(link)(202)를 포함한다. 다양한 실시예들에서, 각각의 디바이스들(204, 206, 208)은 버스(bus) 또는 네트워크를 통해 함께 통신 가능하게 결합되고 마스터-슬레이브 통신 및 프로토콜들을 지원하는 임의의 디바이스일 수 있다. 예시적인 디바이스들은 다양한 형태들의 물리적 컴퓨터 하드웨어 컴포넌트(예를 들어, 중앙 처리 유닛(CPU) 및 그래픽 처리 유닛(GPU) 코어(core)들, 다이(die)들, 소켓(socket)들, 플랫폼(platform)들 및 클러스터들과 같은), 논리적 소프트웨어 아티팩트들(예를 들어, 소프트웨어 프로세스들 및 스레드(thread)들과 같은) 등을 포함할 수 있다. 통신 링크(202)는 임의 유형의 하드웨어 기반 레지스터(hardware-based register)들, 메모리(memory)들, 저장소(storage), 데이터 패브릭(data fabric), 제어 패브릭(control fabric), 이들의 네트워크들 및/또는 소프트웨어 기반 아티팩트들(예를 들어, 동작 시스템 파일(Operating System files)들, 파이프(pipe)들 및 소켓들 등)과 같이 각각의 디바이스와 각각의 노드 사이의 통신을 지원하는 물리적 및/또는 논리적인 임의 유형의 통신 매체 메커니즘(communication media mechanism)일 수 있다. 예를 들어, 링크(202)는 주변 컴포넌트 상호 연결 익스프레스(PCIe) 또는 다른 메커니즘을 사용하여 구현될 수 있다.
디바이스(204)는 글로벌 마스터 노드(210), 슬레이브 노드(212) 및 슬레이브 노드(214)를 포함한다. 글로벌 마스터 노드(210)는 슬레이브 노드들(212 및 214), 디바이스(206)의 슬레이브 노드들(216 및 218), 디바이스(208)의 슬레이브 노드들(220 및 222)을 제어하고 통신하도록 구성된다. 예를 들어, 글로벌 마스터 노드(210)는 통신 링크(202)를 통해 슬레이브 노드(216) 및 슬레이브 노드(220)로 커맨드들, 플래그(flag) 값들, 인수(argument)들 및 파라미터(parameter)들의 형태의 명령어(instruction) 데이터와 같은 요청들을 발송하고 응답들을 수신할 수 있다.
일 실시예에서, 글로벌 마스터 노드(210)는 슬레이브 노드(214), 슬레이브 노드(216) 및 슬레이브 노드(220)에 명령어 데이터를 발송하여 서브도메인(224)과 같은 서브도메인에 입장(enter)하도록 한다. 명령어 데이터는 각각의 슬레이브 노드에 대해 고유(unique)할 수 있고 슬레이브 노드(214)와 같은 서브도메인 마스터 노드가 될 슬레이브 노드들 중 하나를 지정(designate)한다. 명령어 데이터는 다른 슬레이브 노드들(216, 220)을 서브도메인 슬레이브 노드들로 더 구성하고 서브도메인 마스터 노드(슬레이브 노드(214))로부터의 명령어 데이터(예를 들어, 플래그 값들, 작업 커맨드들 및 인수들)에 응답한다. 일 실시예에서, 일단 각각의 서브도메인 슬레이브 노드가 배정된 작업들을 완료하면, 각각은 서브도메인을 나가고(exit) 글로벌 마스터 노드(210)로 제어를 되돌린다(revert).
도 3은 컴퓨터 시스템(200)과 같은 시스템의 다양한 마스터-슬레이브 가능 디바이스들 및 컴포넌트들에 의해 실행될 수 있는 서브도메인 생성 프로세스(300)의 실시예를 예시한다. 서브도메인을 생성하기 위해, 블록(302)에서 시작하여, 복수의 슬레이브 노드들과 통신적으로 결합된 글로벌 마스터 노드(예를 들어, 도 2의 글로벌 마스터 노드(210))는 슬레이브 노드(예를 들어, 슬레이브 노드(214))가 서브도메인 마스터 노드가 되도록 구성한다. 다음으로, 블록(304)에서, 글로벌 마스터 노드는 서브도메인 마스터 노드에 대한 서브도메인 슬레이브 노드들(예를 들어, 슬레이브 노드들(216 및 220))로서 하나 이상의 다른 슬레이브 노드들을 구성한다. 서브도메인 마스터 노드 및 서브도메인 슬레이브 노드들은 서브도메인(예를 들어, 서브도메인(224))에 입장하여 형성했다. 일 실시예에서, 서브도메인 마스터 역할(role)들(블록 302에서 생성됨) 및 서브도메인 슬레이브 역할들(블록(304)에서 생성됨)은 도 3에 도시된 바와 같이(예를 들어, 유니캐스트 통신 모드들에서) 순차적으로 생성될 수 있다. 대안적으로 서브도메인 마스터 및 서브도메인 슬레이브 역할들은 병렬로 형성될 수 있다(예를 들어, 브로드캐스트(broadcast) 또는 멀티캐스트(multicast) 통신 모드들). 블록(306)에서, 글로벌 마스터 노드는 서브도메인의 노드들에 의해 수행될 하나 이상의 서브도메인 작업들과 통신한다. 일 실시예에서, 작업들은 서브도메인 형성 프로세스 동안 서브도메인 마스터 노드로 통신되는 명령어 데이터에 표시(indicate)될 수 있다. 일 실시예에서, 서브도메인 마스터 노드는 순차적으로 그 서브도메인에서 마스터의 역할을 맡고(assume) 서브도메인의 슬레이브 노드들에 커맨드들을 발행(issue)하여 글로벌 마스터로부터 추가 개입(involvement) 없이 서브도메인 작업들을 실행한다.
일 실시예에서, 글로벌 마스터 노드(210)는 슬레이브 노드에 역할을 배정하기보다는 그 자체가 서브도메인 마스터 역할을 할 수 있다. 다양한 실시예들에서, 작업들을 실행하기 위한 명령어 데이터는 서브도메인의 형성 후에 서브도메인 마스터 노드에 의해 자율적으로(autonomously) 스케줄링될 수 있다. 또 다른 실시예에서, 명령어 데이터는 도 4와 관련하여 아래에서 상세히 논의되는 바와 같이 서브도메인 마스터 노드 및 서브도메인 슬레이브 노드들이 구성될 때 사전에 정의된 작업들로서 포함된다.
도 4는 마스터-슬레이브 노드들로서 구성된 레지스터들을 사용하여 서브도메인을 생성하는 마스터-슬레이브 시스템(400)의 실시예를 예시한다. 마스터-슬레이브 시스템(400)은 글로벌 마스터 노드(402), 슬레이브 노드(404) 및 슬레이브 노드(406)를 포함한다. 단순화(simplicity)를 위해, 2개의 슬레이브 노드들이 글로벌 마스터 노드(402)와 통신하는 것으로 도시되지만, 다른 실시예들에서 글로벌 마스터 노드(402)는 하나 이상의 서브도메인에서 동작하도록 다수의 슬레이브 노드들을 구성할 수 있다.
일 실시예에서, 각각의 노드는 마스터-슬레이브 시스템(400) 내에서 작업들을 실행하기 위한 커맨드들, 인수들 및 데이터를 유지하기 위한 레지스터 스택(stack)의 레지스터들의 클러스터일 수 있는 통신 채널(channel)들을 포함한다. 예를 들어, 각각의 노드에서 레지스터들 0내지 n을 포함하는 레지스터 스택들(407)을 참조한다. 마스터-슬레이브 시스템(400)이 서브도메인 모드에 있지 않을 때 글로벌 마스터 노드(402)는 마스터-슬레이브 시스템(400) 내에서 플래그 값들, 커맨드들, 인수들 데이터 등과 같은 명령어 데이터를 통신하기 위해 각각의 레지스터 스택의 각각의 통신 채널을 제어한다. 일 실시예에서, 레지스터 스택들(407)의 레지스터_0은 레지스터 스택들(407)의 통신 채널들의 클러스터의 현재 소유권(ownership)을 표시하기 위해 소유권 제어 레지스터 플래그("F")로서 사용된다. 예를 들어 레지스터_0의 "F=0"은 아래에서 더 상세히 설명되는 마스터(예를 들어, 서브도메인이 아닌 동작을 위한 글로벌 마스터 노드(402))에 의해 통신 채널들의 소유권을 표시하는 반면 "F=1"은 서브도메인이 아닌 동작들에 대해 정규(regular) 슬레이브 노드로 동작하는 슬레이브 노드 또는 서브도메인 마스터 노드 또는 서브도메인 동작들에 대한 서브도메인 슬레이브 노드에 의해 소유권을 표시한다.
일 실시예에서, 서브도메인(408)을 생성하기 위해, 글로벌 마스터 노드(402)는 슬레이브 노드(404) 및 슬레이브 노드(406)와 같은 슬레이브 노드들의 세트를 선택하여 서브도메인(408)에 입장한다. 글로벌 마스터 노드(402)는 슬레이브 노드(404)와 슬레이브 노드(406)의 소유권 제어 레지스터 플래그를 1(예를 들어, 레지스터_0: F=1)로 설정하는 서브도메인 커맨드(예를 들어, 운영_서브도메인)을 발송하여, 글로벌 마스터 노드(402)에서 슬레이브 노드들(404 및 406)로 슬레이브 노드들 사이의 통신의 제어를 효과적으로 이전(transfer)한다. 일 실시예에서, 이는 각각의 슬레이브 노드들의 메일박스 레지스터 블록(미도시)의 소유권을 슬레이브 노드로 이전함으로써 이루어질 수 있다.
명령어 데이터(410) 및 명령어 데이터(412)의 도시된 바와 같은 서브도메인 구성 데이터가 서브도메인 커맨드와 함께 전달된다. 이는 적어도 서브도메인 마스터 또는 서브도메인 슬레이브로서의 노드의 역할, 서브도메인(예를 들어, 서브도메인(408))의 노드들의 수 및 서브도메인의 노드 식별자(identifier)들의 목록이 포함할 수 있다. 예를 들어, 서브도메인 커맨드를 운영하는 명령어 데이터(410)는 슬레이브 노드(404)로 통신된다. 이는 통신 제어가 슬레이브 노드들 사이에 있고(소유권 제어 플래그) 그것이 서브도메인 마스터 노드(역할 플래그)임을 표시하기 위해 슬레이브 노드(404)에 하나 이상의 레지스터들을 설정하는 것을 포함한다. 레지스터들(예를 들어, 소유권 제어 플래그 값, 역할 플래그 값, 서브도메인 노드 수(count) 및 마스터 슬레이브 식별(identification)) 명령어 데이터(410)는 추가로 서브도메인(408)의 노드들의 수(서브도메인 노드 수)로 2개(슬레이브 노드(404 및 406)), 서브도메인(408)(서브도메인 슬레이브 ID)의 다른 슬레이브로 슬레이브 노드 2(슬레이브 노드(406)), 및 서브도메인 마스터 노드(슬레이브 노드(404))가 서브도메인 슬레이브 노드(슬레이브 노드(406))와 통신하기 위한 하나 이상의 커맨드들을 포함한다.
슬레이브 노드(406)에 대한 명령어 데이터(412)는 유사하게 운영 서브도메인 커맨드를 포함한다. 이는 또한 통신 제어가 슬레이브 노드들(소유권 제어 플래그) 사이에 있음을 표시하기 위해 레지스터들(플래그들)을 설정하는 것을 포함하지만, 이 경우 슬레이브 노드(406)의 역할 플래그를 서브도메인 슬레이브 노드로 설정한다. 명령어 데이터(412)는 서브도메인(408)(슬레이브 노드(404 및 406))의 노드들의 수(서브도메인 노드 수)를 더 포함하고 슬레이브 노드 1(슬레이브 노드(404))이 제어 서브도메인 마스터 노드(서브도메인 마스터 ID)임을 식별한다.
일 실시예에서, 슬레이브 노드들(404 및 406)은 서브도메인 마스터 노드(슬레이브 노드(404))로부터 통신된 모든 작업 커맨드들이 서브도메인 슬레이브 노드(슬레이브 노드(406))에 의해 완료되면 서브도메인(408)을 나간다. 슬레이브 노드(404) 및 슬레이브 노드(406)는 글로벌 마스터로서 슬레이브 노드들(404 및 406)의 통신 채널들의 제어를 이제 재개(resume)할 수 있음을 글로벌 마스터 노드(402)에 표시하기 위해 그들 개별의 소유권 제어 플래그들(레지스터_0)을 다시 0으로 설정한다.
도 5는 2개의 서브도메인들의 생성 및 사용을 위한 흐름도를 포함하는 마스터-슬레이브 시스템(500)의 실시예를 예시한다. 마스터-슬레이브 시스템(500)은 슬레이브 노드들(504)에 통신 가능하게 결합된 글로벌 마스터 노드(502)를 포함한다. 슬레이브 노드들(504)은 슬레이브 노드(506), 슬레이브 노드(508), 슬레이브 노드(510), 슬레이브 노드(512) 및 슬레이브 노드(514)를 포함한다. 일 실시예에서, 글로벌 마스터 노드(502)는 운영 서브도메인 커맨드를 슬레이브 노드(504)에 통신하여 2개의 서브도메인들을 생성하여 작업 커맨드들을 병렬로 그리고 서로 독립적으로 실행한다.
구체적으로, 글로벌 마스터 노드(502)는 서브도메인 구성(520) 하에 도시된 바와 같이 서브도메인 마스터 노드로서 슬레이브 노드(506)를 구성하고 서브도메인(516)에 입장하도록 운영 서브도메인 커맨드를 슬레이브 노드들(506 및 508)에 발송한다. 글로벌 마스터 노드(502)는 또한 서브도메인 구성(520) 하에 도시된 바와 같이 서브도메인 마스터 노드로서 슬레이브 노드(510)를 구성하고 서브도메인(518)에 입장하도록 운영 서브도메인 커맨드를 슬레이브 노드들(510, 512 및 514)에 발송한다.
일 실시예에서, 운영 서브도메인 커맨드는 각각의 노드에 포함된 레지스터들을 통한 구성 데이터와 같은 명령어 데이터를 포함할 수 있다. 예를 들어, 도 4의 명령어 데이터(410 및 412)와 관련하여 설명된 바와 같이, 구성 데이터는 소유권 제어 플래그 값, 역할 플래그 값, 서브도메인 노드 수, 서브도메인 슬레이브 식별, 서브도메인 마스터 식별, 커맨드들, 인수 데이터 등의 적어도 부분 또는 전부를 포함할 수 있다.
작업 커맨드 실행(522)에서, 각각의 서브도메인(516 및 518)의 서브도메인 마스터 노드(각각 슬레이브 노드들(506 및 510))는 서브도메인 작업 커맨드들을 개별의 서브도메인 슬레이브 노드들(각각 슬레이브 노드들(508) 및 슬레이브 노드들(512 및 514))에 통신한다. 서브도메인들(516 및 518)은 서로 독립적으로 행동하고 작업 커맨드 실행의 효율성을 증가시키면서 병렬로 실행할 수 있다.
서브도메인의 작업 커맨드 실행이 완료되면 서브도메인 나감(524) 아래에 도시된 것처럼 서브도메인을 나간다. 서브도메인(516 및 518)의 나감은 나감 서브도메인(524) 아래에 함께 표시되지만 각각의 서브도메인은 독립적으로 나가며 작업 커맨드 실행에 따라 다른 시간들에 나갈 수 있다. 나감 서브도메인(524)에서, 서브도메인 마스터 노드(예를 들어, 슬레이브 노드들(506 및 510))를 포함하는 각각의 서브도메인의 슬레이브 노드(예를 들어, 슬레이브 노드들(506 내지 514))는 글로벌 마스터 노드(502)에 다시 제어권을 반환(return)한다.
도 6은 내포된 서브도메인들을 포함하는 서브도메인의 생성을 위한 흐름도를 포함하는 마스터-슬레이브 시스템(600)의 실시예를 예시한다. 마스터-슬레이브 시스템(600)은 슬레이브 노드들(604)에 통신 가능하게 결합된 글로벌 마스터 노드(602)를 포함한다. 슬레이브 노드들(604)은 슬레이브 노드(606), 슬레이브 노드(608), 슬레이브 노드(610), 슬레이브 노드(612) 및 슬레이브 노드(614)를 포함한다. 일 실시예에서, 글로벌 마스터 노드(602)는 서브도메인(616)을 생성하기 위해 서브도메인 실행 커맨드를 슬레이브 노드들(604)에 통신한다. 이어서, 부모(parent) 서브도메인(616) 내에 2개의 내포된 서브도메인들(622, 624)이 추가로 생성되어 서로 독립적으로 작업 커맨드들을 실행한다. 구체적으로, 글로벌 마스터 노드(602)는 서브도메인 구성(618) 하에 도시된 바와 같이 슬레이브 노드(606)를 서브도메인 마스터 노드로서 구성하고 서브도메인(616)에 입장하도록 운영 서브도메인 커맨드를 슬레이브 노드(606)에 발송한다.
서브도메인 마스터(슬레이브 노드(606))는 서브도메인(616)의 슬레이브 노드들에 내포된 서브도메인들 생성(620)에서 또 다른 운영 서브도메인 커맨드를 브로드캐스트한다. 이 커맨드는 슬레이브 노드들(606 및 608)에게 슬레이브 노드(606)로서 내포된 서브도메인 마스터를 갖는 내포된 서브도메인(622)에 입장하도록 지시(instruct)하고, 슬레이브 노드들(610, 612 및 614)는 내포된 서브도메인 마스터로서 슬레이브 노드(610)를 갖는 내포된 서브도메인(624)에 입장하도록 지시한다. 내포된 서브도메인은 작업 커맨드 실행(626)하에 배정된 작업 커맨드를 실행한 후 서브도메인(626에 명시적으로 도시되지 않음)에 먼저 입장하고 마지막으로 나감으로써 정규 서브도메인들과 동일한 방식으로 작동한다. 나감 서브도메인(628)에서, 서브도메인 마스터 노드(예를 들어, 슬레이브 노드(606))를 포함하는 각각의 서브도메인의 슬레이브 노드(예를 들어, 슬레이브 노드(606 내지 614))는 글로벌 마스터 노드(502)로 다시 제어를 반환한다. 일 실시예에서, 내포된 서브도메인들(622 및 624)의 슬레이브 노드들은 예를 들어 도 4와 관련하여 논의된 바와 같이 개별의 소유권 제어 플래그들을 적당한 값으로 설정함으로써 서브도메인(616)으로부터 뚜렷하게 나갈 필요가 없다.
도 7은 컴퓨터 시스템에서 소켓 대 소켓 통신을 위해 통신 키들을 교환하기 위해 마스터-슬레이브 서브도메인을 사용하는 링 토폴로지에 연결된 다중-칩 다중-소켓 시스템(700)의 실시예를 예시한다. 각각의 소켓은 통신을 보호(secure)하기 위해 각각의 인접한 이웃과 통신 키를 협상한다. 단순화를 위해 각각의 소켓에는 두 개의 노드들이 포함되지만 두 개 이상의 노드들의 수는 제한되지 않는다.
일 실시예에서, 소켓 링 시스템(700)은 4개의 소켓들, 소켓들(702, 704, 706 및 708)을 포함한다. 마스터 노드(710)는 링 주변에서 직렬로 통신 키를 협상하는 대신 통신 키 1 내지 4를 설정하고 소켓 대 소켓 통신 설정 시간을 줄이기 위해 4개의 서브도메인들을 병렬로 운영할 수 있다. 예를 들어, 마스터 노드(710)는 제1 통신 키를 협상하기 위해 소켓(702)의 슬레이브 노드(712)와 소켓(704)의 슬레이브 노드(714)를 연결하는 것을 포함하는 제1 서브도메인을 생성하고, 제2 통신 키를 협상하기 위해 소켓(704)의 슬레이브 노드(716)와 소켓(706)의 슬레이브 노드(720)를 연결하는 것을 포함하는 제2 서브도메인을 생성한다. 추가로, 마스터 노드(710)는 제3 통신 키를 협상하기 위해 소켓(706)의 슬레이브 노드(718)와 소켓(708)의 슬레이브 노드(724)를 연결하는 것을 포함하는 제3 서브도메인, 및 제4 통신 키를 협상하기 위해 소켓(708)의 슬레이브 노드(722)와 소켓(702)의 마스터 노드(710)를 연결하는 것을 포함하는 제4 서브도메인을 생성한다.
도 8은 컴퓨터 시스템에서 소켓 대 소켓 통신을 위한 통신 키들을 교환하기 위해 마스터-슬레이브 서브도메인들을 사용하는 라인 토폴로지에 연결된 다중-소켓 시스템(800)의 실시예를 예시한다. 각각의 소켓은 통신을 용이하게 하기 위해 각각의 인접한 이웃과 통신 키를 협상한다. 이 실시예에서, 각각의 소켓은 소켓 대 소켓 통신들을 설정할 수 있는 단일 노드를 포함한다. 일 실시예에 따르면, 노드는 내포된 서브도메인에 포함될 수 있지만, 두 개의 별도 서브도메인들에 동시에 포함될 수는 없다.
따라서, 5개의 소켓들, 소켓들(802, 804, 806, 808 및 810)을 포함하는 라인-토폴로지 소켓 시스템(800)은 4개의 통신 키들을 협상하기 위해 2개의 서브메인(submain)들의 2개의 별개의 인스턴스들을 생성하기 위해 2개의 패스(pass)들을 만들 것이다. 예를 들어, 마스터 노드(812)에 의해 설정된 제1 패스는 제1 통신 키를 협상하기 위해 소켓(802)의 마스터 노드(812)를 소켓(804)의 슬레이브 노드(814)와 연결하는 제1 서브도메인, 및 제2 통신 키를 협상하기 위해 소켓(806)의 슬레이브 노드(816) 및 소켓(808)의 슬레이브 노드(818)를 연결하는 제2 서브도메인을 포함한다.
마스터 노드(812)에 의해 설정된 제2 패스는 제3 통신 키를 협상하기 위해 소켓(804)의 슬레이브 노드(814)를 소켓(806)의 슬레이브 노드(816)와 연결하는 제3 서브도메인, 및 제4 통신 키를 협상하기 위해 소켓(808)의 슬레이브 노드(818)와 소켓(810)의 슬레이브 노드(820)를 연결하는 제4 서브도메인을 포함한다.
하나의 일반적인 양태는 제1 복수의 슬레이브 노드들 중 하나를 제1 서브도메인 마스터 노드로 구성하고 제1 복수의 슬레이브 노드들 중 하나 이상의 다른 슬레이브 노드들을 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드로 구성함으로써 제1 서브도메인을 생성하는 방법을 포함한다.
구현예들은 다음 피쳐들 중 하나 이상을 포함할 수 있다. 제1 서브도메인 마스터 노드를 구성하는 방법은 제1 서브도메인 마스터 노드 및 제1 서브도메인 슬레이브 노드에 의해 실행하기 위한 하나 이상의 서브도메인 작업을 통신하기 위해 명령어 데이터를 제1 서브도메인 마스터 노드에 통신하는 단계를 포함할 수 있다. 제1 서브도메인을 생성하는 단계는 통신 채널 소유권을 표시하기 위해 제1 서브도메인 마스터 노드의 제1 레지스터에서 플래그를 제1 값으로 설정하기 위한 제1 커맨드를 통신하는 단계 및 통신 채널 소유권을 표시하기 위해 제1 서브도메인 슬레이브 노드의 제1 레지스터 각각에서 플래그를 제1 값으로 설정하기 위한 제2 커맨드를 통신하는 단계를 더 포함할 수 있으며, 여기서 제1 커맨드는 제1 서브도메인 슬레이브 노드를 식별하기 위한 데이터를 더 포함할 수 있고 제2 커맨드는 서브도메인 마스터 노드를 식별하기 위한 데이터를 포함할 수 있다. 본 방법은 상기 제1 서브도메인 마스터 노드 및 상기 제1 서브도메인 슬레이브 노드들 내의 각각의 제1 레지스터의 각각의 플래그가 제2 값으로 설정될 때 상기 제1 서브도메인 마스터 노드 및 상기 제1 서브도메인 슬레이브 노드들의 제어를 재개하는 단계를 더 포함할 수 있고, 여기서 제어 재개는 제1 서브도메인으로부터의 종료를 나타낸다.
방법은 제2 서브도메인을 생성하기 위해 제2 복수의 슬레이브 노드를 구성하는 단계 및 제2 서브도메인 마스터 노드로서 제2 복수의 슬레이브 노드 중 하나를 구성하는 단계를 포함할 수 있다. 본 방법은 또한 제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드를 구성하는 단계, 복수의 제3 슬레이브 노드 중 하나를 제3 서브도메인 마스터 노드로 구성하는 단계 및 제1 통신 키를 협상하기 위한 제1 서브도메인, 제2 통신 키를 협상하기 위한 제2 서브도메인 및 제3 통신 키를 협상하기 위한 제3 서브도메인을 구성하는 단계를 포함할 수 있다. 제1 서브도메인은 제1 디바이스로부터의 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 서브도메인 슬레이브 노드를 포함하고, 제2 서브도메인은 제2 디바이스로부터의 제2 서브도메인 마스터 노드 및 제3 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고, 제3 서브도메인은 제3 디바이스로부터의 제3 서브도메인 마스터 노드 및 제3 서브도메인 슬레이브 노드를 포함한다.
본 방법에 있어서, 제1 통신키를 협상하기 위한 제1 서브도메인, 제2 통신키를 협상하기 위한 제2 서브도메인 및 제3 통신키를 협상하기 위한 제3 서브도메인을 구성하는 단계는 제1 디바이스와 제2 디바이스 사이의 통신을 위한 제1 통신 키를 협상하기 위해 제1 서브도메인에서 제1 서브도메인 마스터 노드를 구성하는 단계, 제2 디바이스와 제3 디바이스 사이의 통신을 위한 제2 통신 키를 협상하기 위해 제2 서브도메인에서 제2 서브도메인 마스터 노드 및 제2 서브도메인에서 제2 서브도메인 슬레이브 노드를 구성하는 단계 및 제3 디바이스와 제4 디바이스 사이의 통신을 위한 제3 통신 키를 협상하기 위해 제3 서브도메인에서 제3 서브도메인 마스터 노드 및 제3 서브도메인에서 제3 서브도메인 슬레이브 노드를 구성하는 단계를 더 포함한다.
본 방법은 또한 제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드를 구성하는 단계, 제3 복수의 슬레이브 노드 중 하나를 제3 서브도메인 마스터 노드로 구성하는 단계, 제1 패스에서, 제1 통신 키를 협상하기 위한 제1 서브도메인 및 제2 통신 키를 협상하기 위한 제2 서브도메인을 구성하는 단계, 및 제2 패스에서 세3 통신 키를 협상하기 위해 제3 서브도메인을 구성하는 단계를 포함한다. 제1 서브도메인은 제1 디바이스로부터의 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 슬레이브 노드를 포함하고, 제2 서브도메인은 제3 디바이스로부터의 제2 서브도메인 마스터 노드 및 제4 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고, 및 제3 서브도메인은 제2 디바이스로부터의 제3 서브도메인 마스터 노드 및 제3 디바이스로부터의 제3 서브도메인 슬레이브 노드를 포함한다.
방법은 내포된 서브도메인을 생성하기 위해 제1 서브도메인의 둘 이상의 슬레이브 노드를 구성하는 단계-여기서, 내포된 서브도메인의 슬레이브 노드는 내포된 서브도메인 마스터 노드로 구성되고 내포된 서브도메인의 나머지 노드는 내포된 서브도메인 슬레이브 노드임-, 및 하나 이상의 작업 커맨드들을 내포된 서브도메인 슬레이브 노드에 통신하기 위해 내포된 서브도메인 마스터 노드에서 명령어 데이터를 통신하는 단계를 더 포함한다.
하나의 일반적인 양태는 마스터-슬레이브 시스템을 포함한다. 마스터-슬레이브 시스템은 또한 복수의 슬레이브 노드에 결합된 글로벌 마스터 노드를 포함하고, 글로벌 마스터 노드는 제1 복수의 슬레이브 노드 중 하나를 제1 서브도메인 마스터 노드로 구성하고, 제1 복수의 슬레이브 노드 중 하나 이상의 다른 슬레이브 노드를 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드로 구성한다. 이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 방법의 동작을 수행하도록 각각 구성된 하나 이상의 컴퓨터 저장 디바이스에 기록된 컴퓨터 프로그램을 포함한다.
구현예들은 다음 피쳐들 중 하나 이상을 포함할 수 있다. 마스터-슬레이브 시스템은 하나 이상의 작업을 실행하기 위해 작업 커맨드를 포함하는 명령어 데이터를 제1 서브도메인 슬레이브 노드에 통신하기 위한 서브도메인 마스터 노드를 포함할 수 있고, 글로벌 마스터 노드는 하나 이상의 작업 실행 후 제1 서브도메인 마스터 노드 및 제1 서브도메인 슬레이브 노드의 제어를 재개한다. 글로벌 마스터 노드 및 복수의 슬레이브 노드 각각은 레지스터 스택을 포함할 수 있고, 각 슬레이브 노드의 각 레지스터 스택은 글로벌 마스터 노드로부터 명령어 데이터를 수신하도록 구성되며, 명령어 데이터는 소유권 제어 플래그 값, 역할 플래그 값, 서브도메인 노드 수, 서브도메인 슬레이브 식별 및 서브도메인 마스터 식별 중 적어도 하나를 포함할 수 있다. 글로벌 마스터 노드는 제2 서브도메인을 생성하기 위해 제2 복수의 슬레이브 노드를 구성하고 제2 서브도메인 마스터 노드로서 제2 복수의 슬레이브 노드 중 하나를 구성하도록 더 구성된다.
글로벌 마스터 노드는 제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드를 구성하고, 상기 제3 복수의 슬레이브 노드 중 하나를 제3 서브도메인 마스터 노드로 구성하고, 제1 통신 키를 협상하기 위한 제1 서브도메인, 제2 통신 키를 협상하기 위한 제2 서브도메인 및 제3 통신 키를 협상하기 위한 제3 서브도메인을 구성한다. 제1 서브도메인은 제1 디바이스로부터의 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 서브도메인 슬레이브 노드를 포함하고, 제2 서브도메인은 제2 디바이스로부터의 제2 서브도메인 마스터 노드 및 제3 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고, 제3 서브도메인은 제3 디바이스로부터의 제3 서브도메인 마스터 노드 및 제3 서브도메인 슬레이브 노드를 포함한다. 제1 통신 키를 협상하기 위한 제1 서브도메인, 제2 통신 키를 협상하기 위한 제2 서브도메인 및 제3 통신 키를 협상하기 위한 제3 서브도메인을 구성하기 위해, 글로벌 마스터 노드는 제1 디바이스와 제2 디바이스 사이의 통신을 위한 제1 통신 키를 협상하기 위한 제1 서브도메인의 제1 서브도메인 마스터 노드를 구성하고, 제2 디바이스와 제3 디바이스 사이의 통신을 위한 제2 통신 키를 협상하기 위한 제2 서브도메인의 제2 서브도메인 마스터 노드 및 제2 서브도메인의 제2 서브도메인 슬레이브 노드를 구성하고, 제3 디바이스와 제4 디바이스 사이의 통신을 위한 제3 통신 키를 협상하기 위한 제3 서브도메인의 제3 서브도메인 마스터 노드 및 제3 서브도메인의 제3 서브도메인 슬레이브 노드를 구성한다.
글로벌 마스터 노드는 제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드를 구성하고 제3 복수의 슬레이브 노드 중 하나를 제3 서브도메인 마스터 노드로 구성하고, 제1 패스에서, 제1 통신 키를 협상하기 위한 제1 서브도메인 및 제2 통신 키를 협상하기 위한 제2 서브도메인을 구성하고, 제3 통신 키를 협상하도록 제2 패스에서 제3 서브도메인을 구성하도록 더 구성되고, 제1 서브도메인은 제1 디바이스로부터의 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 서브도메인 슬레이브 노드를 포함하고, 제2 서브도메인은 제3 디바이스로부터의 제2 서브도메인 마스터 노드 및 제4 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고, 제3 서브도메인은 제2 디바이스로부터의 제3 서브도메인 마스터 노드 및 제3 디바이스로부터의 제3 서브도메인 슬레이브 노드를 포함한다. 제1 서브도메인 마스터 노드는 제1 서브도메인의 2개 이상의 슬레이브 노드를 구성하여 내포된 서브도메인을 생성할 수 있으며, 내포된 서브도메인의 하나의 슬레이브 노드는 내포된 서브도메인 마스터 노드로 구성되고 내포된 서브도메인의 나머지 노드는 내포된 서브도메인 슬레이브 노드이다. 제1 서브도메인 마스터 노드는 내포된 서브도메인 슬레이브 노드에 하나 이상의 작업 커맨드를 통신하기 위해 내포된 서브도메인 마스터 노드에 명령어 데이터를 통신할 수 있다.
일반적인 양태 중 하나는 컴퓨터 시스템을 포함한다. 컴퓨터 시스템은 또한 제1 서브도메인을 생성하기 위해 제1 복수의 슬레이브 노드에 결합된 글로벌 마스터 노드를 포함할 수 있는 제1 디바이스를 포함한다. 시스템은 또한 제1 복수의 슬레이브 노드 중 슬레이브 노드를 제1 서브도메인 마스터 노드로 구성하고 제1 복수의 슬레이브 노드 중 하나 이상의 다른 슬레이브 노드를 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드로 구성하기 위한 글로벌 마스터 노드를 포함할 수 있다. 이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 방법의 동작을 수행하도록 각각 구성된 하나 이상의 컴퓨터 저장 디바이스에 기록된 컴퓨터 프로그램을 포함한다.
구현예들은 다음 피쳐들 중 하나 이상을 포함할 수 있다. 컴퓨터 시스템은 제1 디바이스에 결합된 제2 디바이스를 포함할 수 있고, 제2 디바이스는 하나 이상의 슬레이브 노드를 포함할 수 있고, 글로벌 마스터 노드는 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드로서 제2 디바이스의 하나 이상의 슬레이브 노드를 더 구성한다. 컴퓨터 시스템에서, 글로벌 마스터 노드는 제2의 복수의 슬레이브 노드에 결합될 수 있으며, 제2 복수의 슬레이브 노드 중 하나를 제2 서브도메인 마스터 노드로 구성하고, 제2 복수의 슬레이브 노드 중 하나 이상의 다른 슬레이브 노드를 제2 서브도메인 마스터 노드에 대한 제2 서브도메인 슬레이브 노드로 구성함으로써 제2 서브도메인을 생성할 수 있다.
본 명세서에 기술된 실시예는 다양한 동작 및 프로세스를 포함할 수 있다. 이들은 하드웨어 컴포넌트, 소프트웨어, 펌웨어 또는 이들의 조합에 의해 수행될 수 있다. 본 명세서에서 사용되는 용어 "에 결합된"은 하나 이상의 개재 컴포넌트를 통해 직접적으로 또는 간접적으로 결합된 것을 의미할 수 있다. 본 명세서에 기술된 다양한 라인 및 버스를 통해 제공되는 임의의 신호는 다른 신호와 시간 다중화될 수 있고 하나 이상의 공통 버스를 통해 제공될 수 있다. 또한 회로 컴포넌트 또는 블록 간의 상호 연결은 버스 또는 단일 신호 라인으로 표시될 수 있다. 각각의 버스는 대안적으로 하나 이상의 단일 신호 라인일 수 있고 각각의 단일 신호 라인은 대안적으로 버스일 수 있다.
특정 실시예는 컴퓨터 판독 가능 매체에 저장된 명령어를 포함할 수 있는 컴퓨터 프로그램 제품으로 구현될 수 있다. 이러한 명령어는 설명된 작업을 수행하기 위해 범용 또는 특수 목적 프로세서를 프로그래밍하는 데 사용할 수 있다. 컴퓨터 판독 가능 매체는 머신(예를 들어, 컴퓨터)이 판독할 수 있는 형식(예를 들어, 소프트웨어, 처리 애플리케이션)으로 정보를 저장하거나 송신하기 위한 모든 메커니즘을 포함한다. 컴퓨터로 판독할 수 있는 저장 매체는 자기 저장 매체(예를 들어, 플로피 디스켓), 광학 저장 매체(예를 들어, CD-ROM), 광자기 저장 매체, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 소거가능한 프로그래밍 가능한 메모리(예를 들어, EPROM 및 EEPROM), 플래시 메모리 또는 전자 지침을 저장하는 데 적합한 다른 유형의 매체를 포함할 수 있다.
또한, 일부 실시예는 컴퓨터 판독 가능 매체가 하나 이상의 컴퓨터 시스템에 저장 및/또는 실행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 또한 컴퓨터 시스템 간에 전송되는 정보는 컴퓨터 시스템을 연결하는 송신 매체를 통해 풀링되거나 푸시될 수 있다.
일반적으로, 서브도메인 생성 프로세스(300)를 나타내는 데이터 구조 및/또는 컴퓨터 판독 가능 저장 매체에 실린 그 일부는 데이터베이스 또는 다른 데이터 구조일 수 있으며, 이는 프로그램에 의해 판독될 수 있고 서브도메인 생성 프로세스(300)를 구현하기 위한 하드웨어를 제조하기 위해 직간접적으로 사용될 수 있다. 예를 들어, 데이터 구조는 Verilog 또는 VHDL과 같은 고급 설계 언어(HDL)의 하드웨어 기능에 대한 동작 수준 설명 또는 레지스터 전송 수준(RTL) 설명일 수 있다. 설명은 합성 라이브러리로부터의 게이트 목록을 포함하는 네트리스트를 생성하기 위해 설명을 합성할 수 있는 합성 도구에 의해 판독될 수 있다. 네트리스트는 서브도메인 생성 프로세스(300)를 구현하기 위한 하드웨어의 기능을 나타내는 게이트 세트를 포함한다. 그런 다음 네트리스트를 배치하고 라우팅하여 마스크에 적용할 기하학적 모양을 설명하는 데이터 세트를 생성할 수 있다. 마스크는 서브도메인 생성 프로세스(300)를 구현하기 위한 반도체 회로 또는 회로들을 생성하기 위해 다양한 반도체 제조 단계에서 사용될 수 있다. 대안적으로, 컴퓨터 판독 가능 저장 매체 상의 데이터베이스는 네트리스트(합성 라이브러리를 포함하거나 포함하지 않음) 또는 원하는 대로 데이터 세트, 또는 그래픽 데이터 시스템(GDS) II 데이터일 수 있다.
본 명세서에서 방법(들)의 동작들이 특정 순서로 도시되고 설명되지만, 각 방법의 동작 순서는 변경되어 특정 동작이 역순으로 수행되거나 특정 동작이 적어도 부분적으로 다른 동작과 동시에 수행될 수 있다. 다른 실시예에서, 개별 동작의 명령어 또는 서브-동작은 간헐적 및/또는 교대 방식일 수 있다.
전술한 명세서에서, 실시예는 특정 예시적인 실시예를 참조하여 설명되었다. 그러나 첨부된 특허청구범위에 기재된 실시예의 보다 넓은 사상 및 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음이 명백할 것이다. 따라서 본 명세서 및 도면은 한정적인 의미가 아닌 예시적인 의미로 이해되어야 한다.

Claims (20)

  1. 방법에 있어서,
    제1 복수의 슬레이브 노드(slave node)들 중 하나를 제1 서브도메인 마스터 노드(subdomain master node)로 구성하고; 및
    상기 제1 복수의 슬레이브 노드들 중 하나 이상의 다른 슬레이브 노드들을 상기 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드들로 구성함으로써,
    제1 서브도메인을 생성하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 서브도메인 마스터 노드를 구성하는 단계는 상기 제1 서브도메인 마스터 노드 및 상기 제1 서브도메인 슬레이브 노드들에 의해 실행하기 위한 하나 이상의 서브도메인 작업들을 통신하기 위해 상기 제1 서브도메인 마스터 노드로 명령어 데이터(instruction data)를 통신하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 상기 제1 서브도메인을 생성하는 단계는:
    통신 채널 소유권(communication channel ownership)을 표시하기 위해 상기 제1 서브도메인 마스터 노드의 제1 레지스터(register)에서 플래그(flag)를 제1 값으로 설정하기 위한 제1 커맨드(command)를 통신하는 단계; 및
    통신 채널 소유권을 표시하기 위해 상기 제1 서브도메인 슬레이브 노드들의 상기 제1 레지스터들의 각각에서 상기 플래그를 상기 제1 값으로 설정하기 위한 제2 커맨드를 통신하는 단계를 더 포함하고,
    상기 제1 커맨드는 상기 제1 서브도메인 슬레이브 노드의 아이덴티티(identity)를 더 포함하고, 상기 제2 커맨드는 상기 제1 서브도메인 마스터 노드의 상기 아이덴티티를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 제1 서브도메인 마스터 노드 및 상기 제1 서브도메인 슬레이브 노드들의 각각의 제1 레지스터의 각각의 플래그가 제2 값으로 설정될 때 상기 제1 서브도메인 마스터 노드 및 상기 제1 서브도메인 슬레이브 노드들의 제어를 재개하는 단계(resuming)를 더 포함하고, 상기 제어의 재개는 상기 제1 서브도메인으로부터의 종료를 나타내는, 방법.
  5. 제1항에 있어서,
    제2 서브도메인을 생성하기 위해 제2 복수의 슬레이브 노드들을 구성하는 단계; 및
    상기 제2 복수의 슬레이브 노드들 중 하나를 제2 서브도메인 마스터 노드로 구성하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서,
    제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드들을 구성하는 단계;
    상기 제3 복수의 슬레이브 노드들 중 하나를 제3 서브도메인 마스터 노드로 구성하는 단계; 및
    제1 통신 키(communication key)를 협상하기 위한 상기 제1 서브도메인, 제2 통신 키를 협상하기 위한 상기 제2 서브도메인 및 제3 통신 키를 협상하기 위한 상기 제3 서브도메인을 구성하는 단계를 더 포함하고,
    상기 제1 서브도메인은 제1 디바이스로부터의 상기 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 서브도메인 슬레이브 노드를 포함하고, 상기 제2 서브도메인은 상기 제2 디바이스로부터의 상기 제2 서브도메인 마스터 노드 및 제3 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고 및 상기 제3 서브도메인은 상기 제3 디바이스로부터의 상기 제3 서브도메인 마스터 노드 및 제3 서브도메인 슬레이브 노드를 포함하는, 방법.
  7. 제6항에 있어서, 상기 제1 통신 키를 협상하기 위한 상기 제1 서브도메인, 상기 제2 통신 키를 협상하기 위한 상기 제2 서브도메인 및 상기 제3 통신 키를 협상하기 위한 상기 제3 서브도메인을 구성하는 단계는:
    상기 제1 디바이스와 상기 제2 디바이스 사이의 통신을 위한 제1 통신 키를 협상하기 위해 상기 제1 서브도메인에서 상기 제1 서브도메인 마스터 노드를 구성하는 단계;
    상기 제2 디바이스와 상기 제3 디바이스 사이의 통신을 위한 상기 제2 통신 키를 협상하기 위해 상기 제2 서브도메인에서 상기 제2 서브도메인 마스터 노드 및 상기 제2 서브도메인에서 상기 제2 서브도메인 슬레이브 노드를 구성하는 단계; 및
    상기 제3 디바이스와 제4 디바이스 사이의 통신을 위한 상기 제3 통신 키를 협상하기 위해 상기 제3 서브도메인에서 상기 제3 서브도메인 마스터 노드 및 상기 제3 서브도메인에서 상기 제3 서브도메인 슬레이브 노드를 구성하는 단계를 더 포함하는, 방법.
  8. 제5항에 있어서,
    제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드들을 구성하는 단계; 및
    상기 제3 복수의 슬레이브 노드들 중 하나를 제3 서브도메인 마스터 노드로 구성하는 단계;
    제1 패스(pass)에서, 제1 통신 키를 협상하기 위한 상기 제1 서브도메인 및 제2 통신 키를 협상하기 위한 상기 제2 서브도메인을 구성하는 단계; 및
    제3 통신 키를 협상하기 위한 제2 패스에서 제3 서브도메인을 구성하는 단계를 더 포함하고,
    상기 제1 서브도메인은 제1 디바이스로부터의 상기 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 슬레이브 노드를 포함하고, 상기 제2 서브도메인은 제3 디바이스로부터의 상기 제2 서브도메인 마스터 노드 및 제4 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고 및 상기 제3 서브도메인은 상기 제2 디바이스로부터의 상기 제3 서브도메인 마스터 노드 및 상기 제3 디바이스로부터의 제3 서브도메인 슬레이브 노드를 포함하는, 방법.
  9. 제1항에 있어서,
    내포된(nested) 서브도메인을 생성하기 위해 상기 제1 서브도메인의 두 개 이상의 슬레이브 노드들을 구성하는 단계-여기서, 상기 내포된 서브도메인의 슬레이브 노드는 내포된 서브도메인 마스터 노드로 구성되고 상기 내포된 서브도메인의 나머지 노드들은 내포된 서브도메인 슬레이브 노드임-; 및
    하나 이상의 작업 커맨드들을 상기 내포된 서브도메인 슬레이브 노드들에 통신하기 위해 상기 내포된 서브도메인 마스터 노드에 명령어 데이터를 통신하는 단계를 더 포함하는, 방법.
  10. 마스터-슬레이브 시스템(master-slave system)에 있어서,
    제1 서브도메인을 생성하기 위해 복수의 슬레이브 노드들에 결합된 글로벌 마스터 노드(global master node)를 포함하고, 상기 글로벌 마스터 노드는:
    제1 복수의 슬레이브 노드들 중 하나를 제1 서브도메인 마스터 노드로 구성하고; 및
    상기 제1 복수의 슬레이브 노드들 중 하나 이상의 다른 슬레이브 노드들을 상기 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드들로 구성하는, 마스터-슬레이브 시스템.
  11. 제10항에 있어서,
    상기 제1 서브도메인 마스터 노드는 하나 이상의 작업들을 실행하기 위해 작업 커맨드를 포함하는 명령어 데이터를 상기 제1 서브도메인 슬레이브 노드들에 통신하도록 구성되고; 및
    상기 글로벌 마스터 노드는 상기 하나 이상의 작업들을 실행한 후 상기 제1 서브도메인 마스터 노드 및 상기 제1 서브도메인 슬레이브 노드들의 제어를 재개하도록 구성되는, 마스터-슬레이브 시스템.
  12. 제10항에 있어서, 상기 글로벌 마스터 노드 및 상기 복수의 슬레이브 노드들 각각은:
    레지스터 스택을 포함하고, 각각의 슬레이브 노드의 각각의 레지스터 스택은 상기 글로벌 마스터 노드로부터 명령어 데이터를 수신하도록 구성되고,
    상기 명령어 데이터는 소유권 제어 플래그 값, 역할 플래그 값, 서브도메인 노드 수, 서브도메인 슬레이브 식별 및 서브도메인 마스터 식별 중 적어도 하나를 더 포함하는, 마스터-슬레이브 시스템.
  13. 제10항에 있어서, 상기 글로벌 마스터 노드는:
    제2 서브도메인을 생성하기 위해 제2 복수의 슬레이브 노드들을 구성하고; 및
    상기 제2 복수의 슬레이브 노드들 중 하나를 제2 서브도메인 마스터 노드로 구성하도록 더 구성되는, 마스터-슬레이브 시스템.
  14. 제13항에 있어서, 상기 글로벌 마스터 노드는:
    제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드들을 구성하고; 및
    상기 제3 복수의 슬레이브 노드들 중 하나를 제3 서브도메인 마스터 노드로 구성하고; 및
    제1 통신 키를 협상하기 위한 상기 제1 서브도메인, 제2 통신 키를 협상하기 위한 상기 제2 서브도메인 및 제3 통신 키를 협상하기 위한 상기 제3 서브도메인을 구성하도록 더 구성되고,
    상기 제1 서브도메인은 제1 디바이스로부터의 상기 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 서브도메인 슬레이브 노드를 포함하고, 상기 제2 서브도메인은 상기 제2 디바이스로부터의 상기 제2 서브도메인 마스터 노드 및 제3 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고 및 상기 제3 서브도메인은 상기 제3 디바이스로부터의 상기 제3 서브도메인 마스터 노드 및 제3 서브도메인 슬레이브 노드를 포함하는, 마스터-슬레이브 시스템.
  15. 제14항에 있어서, 상기 글로벌 마스터 노드는 상기 제1 통신 키를 협상하기 위한 상기 제1 서브도메인, 상기 제2 통신 키를 협상하기 위한 상기 제2 서브도메인 및 상기 제3 통신 키를 협상하기 위한 상기 제3 서브도메인을:
    상기 제1 디바이스와 상기 제2 디바이스 사이의 통신을 위한 상기 제1 통신 키를 협상하도록 상기 제1 서브도메인에서 상기 제1 서브도메인 마스터 노드를 구성하고;
    상기 제2 디바이스와 상기 제3 디바이스 사이의 통신을 위한 상기 제2 통신 키를 협상하도록 상기 제2 서브도메인에서 상기 제2 서브도메인 마스터 노드 및 상기 제2 서브도메인에서 상기 제2 서브도메인 슬레이브 노드를 구성하고; 및
    상기 제3 디바이스와 제4 디바이스 사이의 통신을 위한 상기 제3 통신 키를 협상하기 위해 상기 제3 서브도메인에서 상기 제3 서브도메인 마스터 노드 및 상기 제3 서브도메인에서 상기 제3 서브도메인 슬레이브 노드를 구성함으로써, 구성하도록 더 구성되는, 마스터-슬레이브 시스템.
  16. 제13항에 있어서, 상기 글로벌 마스터 노드는:
    제3 서브도메인을 생성하기 위해 제3 복수의 슬레이브 노드들을 구성하고;
    상기 제3 복수의 슬레이브 노드들 중 하나를 제3 서브도메인 마스터 노드로 구성하고;
    제1 패스에서, 제1 통신 키를 협상하기 위한 상기 제1 서브도메인 및 제2 통신 키를 협상하기 위한 상기 제2 서브도메인을 구성하고; 및
    제2 패스에서, 제3 통신 키를 협상하기 위한 상기 제3 서브도메인을 구성하도록 더 구성되고,
    상기 제1 서브도메인은 제1 디바이스로부터의 상기 제1 서브도메인 마스터 노드 및 제2 디바이스로부터의 제1 서브도메인 슬레이브 노드를 포함하고, 상기 제2 서브도메인은 제3 디바이스로부터의 상기 제2 서브도메인 마스터 노드 및 제4 디바이스로부터의 제2 서브도메인 슬레이브 노드를 포함하고 및 상기 제3 서브도메인은 상기 제2 디바이스로부터의 상기 제3 서브도메인 마스터 노드 및 상기 제3 디바이스로부터의 제3 서브도메인 슬레이브 노드를 포함하는, 마스터-슬레이브 시스템.
  17. 제13항에 있어서, 상기 제1 서브도메인 마스터 노드는:
    내포된 서브도메인을 생성하기 위해 상기 제1 서브도메인의 두 개 이상의 슬레이브 노드들을 구성하고-여기서, 상기 내포된 서브도메인의 하나의 슬레이브 노드는 내포된 서브도메인 마스터 노드로 구성되고 상기 내포된 서브도메인의 나머지 노드들은 내포된 서브도메인 슬레이브 노드임-; 및
    하나 이상의 작업 커맨드들을 상기 내포된 서브도메인 슬레이브 노드들에 통신하기 위해 상기 내포된 서브도메인 마스터 노드로부터의 명령어 데이터를 통신하도록 더 구성되는, 마스터-슬레이브 시스템.
  18. 컴퓨터 시스템에 있어서,
    제1 서브도메인을 생성하기 위해 제1 복수의 슬레이브 노드들에 결합된 글로벌 마스터 노드를 포함하는 제1 디바이스를 포함하고;
    상기 글로벌 마스터 노드는:
    상기 제1 복수의 슬레이브 노드들 중 하나를 제1 서브도메인 마스터 노드로 구성하고; 및
    상기 제1 복수의 슬레이브 노드들 중 하나 이상의 다른 슬레이브 노드들을 상기 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드로 구성하는, 컴퓨터 시스템.
  19. 제18항에 있어서,
    상기 제1 장치에 결합된 제2 디바이스를 더 포함하고, 상기 제2 디바이스는 하나 이상의 슬레이브 노드들을 포함하고,
    상기 글로벌 마스터 노드는 상기 제1 서브도메인 마스터 노드에 대한 제1 서브도메인 슬레이브 노드들로서 상기 제2 디바이스의 하나 이상의 슬레이브 노드들을 구성하도록 더 구성되는, 컴퓨터 시스템.
  20. 제18항에 있어서,
    상기 글로벌 마스터 노드는 제2 복수의 슬레이브 노드들에 결합되고:
    상기 제2 복수의 슬레이브 노드들 중 하나를 제2 서브도메인 마스터 노드로서 구성하고; 및
    상기 제2 복수의 슬레이브 노드들 중 하나 이상의 다른 슬레이브 노드들을 상기 제2 서브도메인 마스터 노드에 대한 제2 서브도메인 슬레이브 노드로 구성함으로써, 제2 서브도메인을 생성하도록 구성되는, 컴퓨터 시스템.
KR1020237039789A 2021-04-19 2022-03-04 서브 도메인들을 갖는 마스터-슬레이브 통신 KR20240008324A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/234,191 US20220335003A1 (en) 2021-04-19 2021-04-19 Master-Slave Communication with Subdomains
US17/234,191 2021-04-19
PCT/IB2022/051944 WO2022224050A1 (en) 2021-04-19 2022-03-04 Master-slave communication with subdomains

Publications (1)

Publication Number Publication Date
KR20240008324A true KR20240008324A (ko) 2024-01-18

Family

ID=83602567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237039789A KR20240008324A (ko) 2021-04-19 2022-03-04 서브 도메인들을 갖는 마스터-슬레이브 통신

Country Status (6)

Country Link
US (1) US20220335003A1 (ko)
EP (1) EP4327539A1 (ko)
JP (1) JP2024515669A (ko)
KR (1) KR20240008324A (ko)
CN (1) CN117378193A (ko)
WO (1) WO2022224050A1 (ko)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304369A (ja) * 2001-04-04 2002-10-18 Nec Corp バスシステム
US20050063313A1 (en) * 2001-07-03 2005-03-24 International Business Machines Corporation Optimal clustering of master-slave ad-hoc wireless network
US7299265B2 (en) * 2003-06-06 2007-11-20 Oracle International Corporation Distributed computing system selecting a service master for each service by an elected global master for managing requests for that service
US7814250B2 (en) * 2007-04-27 2010-10-12 Atmel Corporation Serialization of data for multi-chip bus implementation
US7673011B2 (en) * 2007-08-10 2010-03-02 International Business Machines Corporation Configuring compute nodes of a parallel computer in an operational group into a plurality of independent non-overlapping collective networks
US20110010716A1 (en) * 2009-06-12 2011-01-13 Arvind Raghuraman Domain Bounding for Symmetric Multiprocessing Systems
US8954721B2 (en) * 2011-12-08 2015-02-10 International Business Machines Corporation Multi-chip initialization using a parallel firmware boot process
EP2951705A4 (en) * 2013-01-29 2016-11-02 Hewlett Packard Development Co ASSIGNING PROCESSORS TO MEMORY TOPOGRAPHY CONFIGURATION
US9804942B2 (en) * 2014-06-10 2017-10-31 Analog Devices, Inc. Safety node in interconnect data buses
US9672182B2 (en) * 2014-08-21 2017-06-06 Infineon Technologies Ag High-speed serial ring
CN105991325B (zh) * 2015-02-10 2019-06-21 华为技术有限公司 处理至少一个分布式集群中的故障的方法、设备和***
US9806952B2 (en) * 2015-02-13 2017-10-31 Dell Products L.P. System and method for group-policy-based configuration
US10223312B2 (en) * 2016-10-18 2019-03-05 Analog Devices, Inc. Quality of service ordinal modification
US10997538B1 (en) * 2017-11-21 2021-05-04 Amazon Technologies, Inc. Resource management
US20200272526A1 (en) * 2019-02-21 2020-08-27 ESDS Software Solution Pvt. Ltd Methods and systems for automated scaling of computing clusters
US11138140B2 (en) * 2020-01-31 2021-10-05 Hewlett Packard Enterprise Development Lp Configuring first subsystem with a master processor and a second subsystem with a slave processor
US11520725B2 (en) * 2020-05-15 2022-12-06 Nxp Usa, Inc. Performance monitor for interconnection network in an integrated circuit
US20220326994A1 (en) * 2021-04-12 2022-10-13 Dell Products L.P. Computing resource sharing system

Also Published As

Publication number Publication date
EP4327539A1 (en) 2024-02-28
JP2024515669A (ja) 2024-04-10
WO2022224050A1 (en) 2022-10-27
CN117378193A (zh) 2024-01-09
US20220335003A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
US9477280B1 (en) Specification for automatic power management of network-on-chip and system-on-chip
US9256575B2 (en) Data processor chip with flexible bus system
US9568970B1 (en) Hardware and software enabled implementation of power profile management instructions in system on chip
JP4547198B2 (ja) 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
US10498854B2 (en) Method and controller for clustering applications in a software-defined network
KR20200139829A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
US11176302B2 (en) System on chip (SoC) builder
JP5570556B2 (ja) Ioユニットと通信を行う数値制御装置
CN115102896B (zh) 数据广播方法、广播加速器、noc、soc及电子设备
KR102539572B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
CN101986617B (zh) 一种实现路由器跨自治区域即插即用的方法
KR20200138411A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
CN109889406A (zh) 用于管理网络连接的方法、装置、设备和存储介质
US10469338B2 (en) Cost management against requirements for the generation of a NoC
KR20240008324A (ko) 서브 도메인들을 갖는 마스터-슬레이브 통신
CN107430510A (zh) 数据处理方法、装置和***
CN105095149B (zh) 一种片上***参数的批处理方法和装置
KR20200138414A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
EP4141685A1 (en) Method and device for constructing communication topology structure on basis of multiple processing nodes
CN109523019A (zh) 加速器、基于fpga的加速***及控制方法、cnn网络***
EP4142217A1 (en) Inter-node communication method and device based on multiple processing nodes
KR102539574B1 (ko) 네트워크 온칩 데이터 처리 방법 및 장치
US9774498B2 (en) Hierarchical asymmetric mesh with virtual routers
CN103019743A (zh) 一种模块化的信号处理流图与多处理器硬件平台建模方法
CN113722053A (zh) 数据访问控制电路、方法、电子设备及计算机可读存储介质