KR20170055964A - 태스크의 배분 경로를 결정하는 방법, 디바이스 및 시스템 - Google Patents

태스크의 배분 경로를 결정하는 방법, 디바이스 및 시스템 Download PDF

Info

Publication number
KR20170055964A
KR20170055964A KR1020177006601A KR20177006601A KR20170055964A KR 20170055964 A KR20170055964 A KR 20170055964A KR 1020177006601 A KR1020177006601 A KR 1020177006601A KR 20177006601 A KR20177006601 A KR 20177006601A KR 20170055964 A KR20170055964 A KR 20170055964A
Authority
KR
South Korea
Prior art keywords
processing
task
predicted
processing elements
elements
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
KR1020177006601A
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 KR20170055964A publication Critical patent/KR20170055964A/ko
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 태스크의 배분 경로를 결정하는 방법을 제공하는데, 그 방법은, 태스크를 프로세싱할 수 있는 다수의 프로세싱 소자들로부터 하나 이상의 프로세싱 소자들을 식별하는 단계, 하나 이상의 식별된 프로세싱 소자들과 통신하기 위한 하나 이상의 경로들을 식별하는 단계, 식별된 경로들과 식별된 프로세싱 소자들 중 하나 이상에 대한 사이클 길이를 예측하는 단계, 식별된 프로세싱 소자들로부터 선호 프로세싱 소자를 선택하고, 식별된 경로들로부터 선호 경로를 선택하는 단계를 구비한다. 또한, 본 발명은 디바이스 및 시스템과 관련된다.

Description

태스크의 배분 경로를 결정하는 방법, 디바이스 및 시스템{METHOD, DEVICE AND SYSTEM FOR DECIDING ON A DISTRIBUTION PATH OF A TASK}
본 발명은 하나 이상의 버스들과 다수의 프로세싱 소자들을 구비하는 디바이스에 있어서 태스크(task)의 배분 경로를 결정하는 방법에 관한 것이다. 또한, 본 발명은 배분 경로를 결정하도록 구성된 디바이스 및 시스템에 관한 것이다.
오늘날에는, 빠르게 개발되는 통신 및 계산 기술을 통해 많은 데이터 량이 이용 가능하다. 서로 다른 유형들의 프로세싱 태스크들을 효율적으로 실행하는 고도의 전용 프로세싱 소자들이 개발되고 있지만, 많은 리소스들(resourses)이 낭비되고 있는데, 그 이유는 그 태스크들이 제어 소자에서 적당한 프로세싱 소자로 비효율적으로 운송되기 때문이다.
알려진 하드웨어/소프트웨어 솔루션들 중 일부는 일방향 또는 다른 방향으로의 개선을 제공할 수 있다. 그러나, 그들은 상기에서 리스트된 기준들 중 임의의 기준 또는 적어도 그 기준들의 대부분을 여전히 개선하지 못한다. 그러므로, 다수의 프로세싱 소자에 대한 태스크들의 프로세싱을 최적화하기 위한 개선된 하드웨어 또는 소프트웨어 솔루션이 여전히 필요하다.
그러므로, 본 발명은 목적은 종래 기술의 상술한 문제점들 중 일부를 극복하는 방법, 디바이스 및 서버 시스템을 제공하는데 있다.
특히, 본 발명의 장점은 첨부된 독립 청구항들에 의해 달성된다. 본 발명의 추가적인 측면, 실시 예들 및 특징들은 첨부된 종속 청구항들 및 상세한 설명에 특정되며, 또한, 상술한 장점을 달성하는데 기여한다.
본 발명의 실시 예에 따르면, 태스크(task)의 배분 경로(distribution path)를 결정하는 방법은,
- 태스크를 프로세싱할 수 있는 다수의 프로세싱 소자들로부터 하나 이상의 프로세싱 소자들을 식별하는 단계,
- 하나 이상의 식별된 프로세싱 소자들과 통신하는 하나 이상의 경로들을 식별하는 단계,
- 식별된 프로세싱 소자들과 식별된 경로들 중 하나 이상에 대한 사이클 길이(cycle length)를 예측하는 단계,
- 식별된 프로세싱 소자들로부터 선호 프로세싱 소자(preferred processing element)를 선택하고, 식별된 경로들로부터 선호 경로(preferred path)를 선택하는 단계를 구비한다.
본 발명은, 사이클 길이 예측에 기초하여, 태스크의 가장 빠른 프로세싱을 이끄는 특정 경로 및 프로세싱 소자가 선택된다는 발상에 기반한다. 따라서, 본 발명의 방법은, 프로세싱 소자와 통신하는 불필요한 긴 경로들을 이용하거나, 주어진 태스크를 프로세싱하는데 있어서 이상적으로 적합한 것이 아닌 프로세싱 소자를 이용함에 의해 유발되는 리소스들의 낭비를 피한다.
본 발명은, 특히, 적어도 하나의 프로세싱 소자에 대해, 이러한 프로세싱 소자들과 통신하기 위한 적어도 2개의 경로들을 이용할 수 있는 버스 시스템들로 구현될 수 있다. 특히, 본 발명은, 적어도 2개의 경로에 대한 전달 시간(transfer time)이 다를 경우에 바람직하다.
버스의 일부 소자들은 제어 소자들 및 프로세싱 소자들로서 작용할 수 있다. 예를 들어, 제 1 제어 소자는 제 2 제어 소자에 태스크를 보낼 수 있으며, 그러면, 그것은 프로세싱 소자로서 작용한다.
본 발명의 실시 예에 따르면, 하나 이상의 버스들에 대한 액세스는 TDMA(Time Division Multiple Access) 기법을 이용하여 관리된다. 간단한 TDMA 기법에서는, 버스의 활성 소자가 고정된 시간 증분(fixed time increment)들마다 변경된다. 이 방법에서는, 어느 소자가 언제 버스를 액세스하도록 허용될지가 미리 결정된다. 본 발명의 문맥에 있어서, 이것은 하나 이상의 버스들의 장래의 이용 가능성에 대한 정밀한 예측이 이루어질 수 있다는 장점을 가진다.
본 발명의 추가적인 실시 예에 따르면, 하나 이상의 버스들에 대한 액세스는 토큰 전달 기법(token passing scheme)을 이용하여 관리된다. 특히, 제 1 소자가 버스를 액세스하는 것이 종료되면, 액세스 토큰(access token)은 버스의 제 1 소자로부터 다음 소자로 전달될 수 있다. 토큰 전달 기법은 간단한 TDMA 기법보다 효율적일 수 있는데, 그 이유는, 아이들 타임 슬롯(idle time slot)들이 방지되기 때문이다. 다른 한편, 장래의 버스 이용 가능성의 예측은 보다 복잡하게 될 수 있다. 이를 위해, 제어 소자는 버스 상에서 실행될 현재 태스크들 및 장래 태스크들의 테이블을 유지할 수 있다. 이것은, 장래의 버스 이용 가능성의 정확한 예측이 가능하게 하며, 프로세싱 소자들 및 전달 경로들을 선택할 수 있게 하고, 그에 따라 하나 이상의 버스들이 가장 효율적으로 이용된다.
본 발명의 추가적인 실시 예에 따르면, 하나 이상의 버스들은 토큰 링들(token rings)로서 셋-업(set-up)된다. 즉, 한 소자의 이웃 소자들이 이 소자의 물리적인 이웃 소자들이다.
또한, 본 발명은 하나 이상의 버스들에 대한 액세스를 제어하는 다른 프로토콜들과 함께 이용될 수 있다. 이들은, 예를 들어, 스케줄링(scheduling) 방법 및 랜덤 액세스(random access) 방법들과 같은, 정적 및 동적 액세스 제어 기법을 포함할 수 있다.
본 발명은, 서로 다른 유형의 토폴로지들(topologies), 특히, 선형 버스들, 링 버스들과, 브랜치 토폴로지들(branch topologies), 스타 네트워크들(star networks) 및 트리 토폴로지들(tree topologies)과 함께 이용될 수 있다. 일부 실시 예에 있어서, 본 발명의 방법은 완전 접속형 메시(fully connected mesh)들과 함께 이용될 수 있다.
태스크는 하나 이상의 명령들 및 데이터를 구비한다.
태스크를 프로세싱할 수 있는 하나 이상의 프로세싱 소자들을 식별하는 것은, 예를 들어, 각 프로세싱 소자들에 대해, 그것이 가지고 있는 것이 어느 프로세싱 기능들인지에 대한 정보를 제공하는 룩업 테이블(lookup table)를 이용함에 의해 실행될 수 있다. 예를 들어, GPU(Graphical Processing Unit)를 구비하는 주어진 프로세싱 소자의 경우, 그 테이블은, 이 프로세싱 소자가 특정 그래픽 처리 명령(graphical processing instructions)과 관련된 특정 태스크를 프로세싱할 수 있다는 정보를 구비할 수 있다.
하나 이상의 식별된 프로세싱 소자들과 통신하기 위한 하나 이상의 경로들을 식별하는 것은, 주어진 프로세싱 소자가 어느 버스를 통해 이 태스크의 프로세싱을 요청하고 있는 제어 소자와 접속되는지를 테이블에서 검색함에 구현될 수 있다. 주어진 프로세싱 소자와 통신하기 위해 단지 하나의 버스만이 이용 가능할 경우에도, 이용 가능한 2개의 방향들이 있을 수 있는데, 그들을 통해 제어 소자는 프로세싱 소자와 통신할 수 있다. 이 경우, 예를 들어, 링 버스상에서 시계 방향 또는 반 시계 방향으로 프로세싱 소자와 통신하기 위한 2개의 경로가 이용 가능하다. 또한, 버스는 브랜치들을 구비할 수 있으며, 이것은 주어진 프로세싱 소자와 통신하는데 이용할 수 있는 다수의 경로들로 결과한다.
식별된 프로세싱 소자들 및 식별된 경로들 중 하나 이상에 대한 사이클 길이를 예측하는 것은, 2개의 룩업 테이블, 즉, 제어 소자들과 프로세싱 소자들간의 다른 경로들에 대한 경로 길이를 저장하는 제 1 룩업 테이블과, 다른 태스크들 및 다른 프로세싱 소자들에 대한 예상 프로세싱 시간에 대한 정보를 저장하는 제 2 룩업 테이블을 이용하는 것을 구비할 수 있다. 예를 들어, 제 2 룩업 테이블은, 특정 그래픽 프로세싱 명령이 제 1 프로세싱 소자에서의 프로세싱을 위해 10 클럭 사이클을 요구하지만, 제 2 프로세싱 소자에서의 프로세싱을 위해서는 단지 8 클럭 사이클만을 요구한다는 정보를 구비할 수 있다.
본 발명의 다른 실시 예에서는, 서로 다른 프로세싱 소자들에서의 서로 다른 유형의 태스크들에 대한 예상 프로세싱 시간에 대한 정보를 구비하는 단지 하나의 룩업 테이블이 존재한다. 예를 들어, 그러한 테이블은 특정 프로세싱 소자에서의 특정 명령에 대한 예상 프로세싱 시간을 구비할 수 있으며, 이 명령에 대한 입력 데이터 량에 의거하여 프로세싱 시간이 어떻게 가변하는지에 대한 추가 정보를 구비할 수 있다.
다시 말해, 사이클 길이는 이하의 정보, 즉, 버스의 구조에 대한 지식; 현재 버스 및/또는 프로세싱 소자들의 상태 또는 위치에 대한 지식; 데이터량이 어느 태스크들과 함께 프로세싱될 필요가 있는지에 대한 정보; 개별적인 프로세싱 소자들과 프로세싱 단계들에 걸쳐있는 SIMD와 같이, 주어진 태스크가 이용 가능한 프로세싱 소자들에 걸쳐 이상적으로 분배되어야 하도록 그 태스크가 하나의 벡터내에 저장될 수 있는 것보다 많은 데이터 세트들을 구비하고 있는지에 대한 정보 중 하나 이상에 기초하여 예측될 수 있다.
일부 경우에, 예측은 정확한 계산에 기반할 수 있다. 다른 경우에, 예측은 경험적 접근(heuristics)에 기반할 수 있으며, 단지 참 경로 시간(true path time) 또는 프로세싱 시간의 대략적인 추정일 수 있다.
본 발명의 실시 예에 따르면, 식별된 프로세싱 소자와 식별된 경로에 대한 사이클 길이는,
- 식별된 경로상의 프로세싱 소자로 명령 및 입력 데이터를 전달하는 예측 순방향 전달 시간(predicted forward transfer time),
- 식별된 경로상의 프로세싱 소자로부터 출력 데이터를 전달하는 예측 복귀 전달 시간(predicted return transfer time), 및/또는
- 식별된 프로세싱 소자에서 태스크를 프로세싱하기 위한 예측 프로세싱 시간(predicted processing time)에
기반하여 예측된다.
예측 순방향 전달 시간과 예측 복귀 전달 시간은 전체 입력 데이터가 프로세싱 소자에 도달하는 시간을 구비할 수 있다.
본 발명의 실시 예에 따르면, 예측 사이클 길이는 예측 순방향 전달 시간과, 예측 복귀 전달 시간 및 예측 프로세싱 시간의 합이다.
이 실시 예는, 예측 사이클 길이의 계산이 특히 빠르고 효율적이라는 장점을 가진다. 일부 실시 예들에 있어서, 예측 순방향 전달 시간과, 예측 복귀 전달 시간 및 예측 프로세싱 시간의 합은 가중된 합(weighted sum)일 수 있다. 이것은, 단지 예측 시간들의 일부만이 정확하게 계산될 수 있는 경우에, 특히 유용할 수 있다. 이 경우에, 정확하게 계산된 시간에 보다 높은 가중이 부여될 수 있다.
본 발명의 실시 예에 따르면, 사이클 길이를 예측하는 것은,
- 하나 이상의 버스들의 현재 이용 가능성 및/또는 활용성, 및
- 하나 이상의 식별 프로세싱 소자들의 현재 이용 가능성 및/또는 활용성
중 적어도 하나에 기반한다.
버스들 및 프로세싱 소자들의 현재 이용 가능성 및/또는 활용성을 고려하게 되면, 경로 시간 및 프로세싱 시간의 훨씬 더 정밀한 예측이 가능하다.
본 발명의 실시 예에 따르면, 그 방법은:
- 선택된 프로세싱 소자에서 태스크의 프로세싱을 시작하고,
- 태스크의 예측 잔여 사이클 길이(predicted remaining cycle length)를 획득하기 위해 태스크의 예측 사이클 길이를 갱신하고,
- 예측 잔여 사이클 길이가 다른 프로세싱 소자에서 태스크를 프로세싱하기 위한 예측 사이클 길이보다 더 크다고 판정되면, 선택된 프로세싱 소자에서의 태스크의 프로세싱을 소거하고,
- 다른 프로세싱 소자에 태스크를 할당하는 것을
더 구비한다.
태스크의 예측 잔여 사이클 길이를 획득하기 위해 태스크의 예측 사이클 길이를 갱신하는 것은, 태스크의 프로세싱이 시작되고 난 후에만 이용 가능하게 되는 추가적인 정보가 고려될 수 있다는 장점을 가진다. 예를 들어, 특정 태스크의 프로세싱을 이미 시작한 프로세싱 소자가 둔화된다는 정보가 이용될 수 있고 예상한대로 되는 경우에, 이 프로세싱 소자에서의 태스크의 프로세싱을 소거하고, 다른 프로세싱 소자에게 그 태스크를 맡기도록 결정될 수 있다.
본 발명의 이 실시 예는, 프로세싱이 예측한 것보다 훨씬 길게 소요되어, 이 프로세싱 소자에서의 프로세싱이 잘못 예측되었음을 나타낸 것일 수도 있을 경우에, 주어진 프로세싱 소자에서의 태스크의 프로세싱이 소거될 수 있다는 추가적인 장점을 가진다.
본 발명의 다른 실시 예에 있어서, 선택된 프로세싱 소자에서의 태스크의 프로세싱은, 보다 높은 우선 순위로 태스크를 프로세싱하기 위해 이 프로세싱 소자가 필요하다고 제어 소자가 판정하면, 소거될 수 있다. 이것은, 예측된 가능성있는 장래 태스크들(predicted likely future tasks)의 경우에 특히 관련될 수 있다.
본 발명의 추가적인 바람직한 실시 예에 있어서, 주어진 프로세싱 소자에서의 태스크의 프로세싱이 예측된 것보다 더 긴 시간을 소요했다는 정보는 테이블에 저장되어, 유사한 태스크에 대한 프로세싱 소자들을 예측할 때, 고려된다. 특히, 특정 태스크의 프로세싱이 주어진 프로세싱 소자에서 실패했을 경우, 이 정보는 테이블에 저장될 수 있다. 극단적인 경우, 특정 유형의 태스크의 프로세싱이 주어진 프로세싱 소자에서 반복적으로 실패했다면, 그것이 이용 가능함을 프로세싱 소자가 나타낸다 할지라도, 유사한 태스크들이 이 프로세싱 소자에서 프로세싱되지 않아야한다고 결정될 수 있다.
본 발명의 실시 예에 따르면, 그 방법은,
- 태스크의 프로세싱을 위한 임계 시간을 판정하고,
- 선택된 프로세싱 소자에서 태스크의 프로세싱을 시작하고,
- 태스크에 대한 실제 프로세싱 시간이 임계 시간보다 높은지를 검사하고,
- 실제 프로세싱 시간이 임계 시간보다 높으면 태스크의 프로세싱을 소거하고,
- 그 태스크를 다른 프로세싱 소자에 할당하는 것을
추가로 구비한다.
이 실시 예는 특정 태스크의 실행이, 아마도 프로세싱 장애로 인해, 예상된것보다 훨씬 길게 소요되고 있기 때문에, 그것이 소거되어야 한다고 결정하는 단순한 방식을 제공한다.
본 발명의 추가적인 실시 예에 따르면,
- 하나 이상의 버스들,
- 하나 이상의 제어 소자들, 및
- 다수의 프로세싱 소자들을 구비하며,
제어 소자들 중 적어도 하나는,
- 태스크를 프로세싱할 수 있는 다수의 프로세싱 소자들로부터 하나 이상의 프로세싱 소자들을 식별하고,
- 하나 이상의 식별된 프로세싱 소자들과 통신하기 위한 하나 이상의 경로들을 식별하고,
- 식별된 프로세싱 소자들과 식별된 경로들 중 하나 이상에 대한 사이클 길이를 예측하고,
- 식별된 프로세싱 소자들로부터 선호 프로세싱 소자를 선택하고, 식별된 경로들로부터 선호 경로를 선택하는 것에
기초하여 태스크에 대한 배분 경로를 결정하는
디바이스를 제공한다.
본 발명의 실시 예에 따르면, 제어 소자들 중 적어도 하나는,
- 프로세싱 소자로 명령 및 입력 데이터를 전달하는 예측 순방향 전달 시간,
- 프로세싱 소자로부터 출력 데이터를 전달하는 예측 복귀 전달 시간, 및/또는
- 프로세싱 소자에서 태스크를 프로세싱하는 예측 프로세싱 시간에
기초하여 사이클 길이를 예측한다.
본 발명의 실시 예에 따르면, 제어 소자들 중 적어도 하나는,
- 선택된 프로세싱 소자에서 태스크의 실행을 시작하는 단계,
- 태스크의 예측 잔여 사이클 길이를 획득하기 위해 태스크의 예측 사이클 길이를 갱신하는 단계,
- 예측 잔여 사이클 길이가 다른 프로세싱 소자에서 태스크를 프로세싱하기 위한 예측 사이클 길이보다 더 크다고 판정되면, 선택된 프로세싱 소자에서의 태스크의 프로세싱을 소거하는 단계, 및
- 다른 프로세싱 소자에 그 태스크를 재-할당하는 단계를 실행한다.
본 발명의 실시 예에 따르면, 디바이스는 다수의 프로세싱 소자들의 현재 이용 가능성 및/또는 활용성에 대한 정보를 구비하는 비지 테이블(busy table)을 추가로 구비하며, 제어 소자는 비지 테이블내의 정보를 규칙적으로 갱신한다.
본 발명의 실시 예에 따르면, 하나 이상의 버스들은 하나 이상의 링(ring)들을 구비한다.
본 발명의 추가적인 실시 예에 따르면, 하나 이상의 버스들은 명령들을 운송하는 제 1 버스 세트와 데이터를 운송하는 제 2 버스 세트를 구비한다. 이것은, 제 1 버스 세트가 명령들의 저 지연 전송(low-latency transmission)에 최적화될 수 있고, 제 2 버스 세트가 잠재적인 대량의 데이터의 높은 대역폭 전송에 최적화될 수 있다는 장점을 가진다. 특히, 제 1 및 제 2 버스 세트들은 서로 다른 주파수에서 작동할 수 있는데, 예를 들어, 제 1 버스 세트는 고주파에서 작동할 수 있고, 제 2 버스 세트는 저주파수에 작동하되, 사이클당 높은 전송 용량을 제공한다.
본 발명의 추가적인 실시 예에 따르면, 하나 이상의 버스들은 단방향성으로서 서로 반대 방향으로 지향되는 2개의 링을 구비한다.
이 방식에서는, 본 발명이 특히 효율적인 방식으로 실행될 수 있는데, 그 이유는, 2개의 다르게 지향된 링 버스들 중 보다 적당한 것이 선택되면, 상당한 데이터 운송 시간이 절약될 수 있기 때문이다.
본 발명의 실시 예에 따르면, 하나 이상의 버스들은 EIB(Element Interconnect Bus)를 구비한다.
본 발명의 추가적인 실시 예에 따르면, 다수의 프로세싱 소자들 중 적어도 하나는 하나 이상의 버스들에 접속되고, 추가로 1차 프로세싱 소자(primary processing element)에 대한 직접 접속을 구비한다.
본 발명의 실시 예에 따르면, 디바이스는, 이전에 프로세싱된 태스크에 기초하여 장래의 태스크를 예측하도록 구성된 예측 모듈을 추가로 구비한다.
장래의 태스크를 예측하는 것은, 장래 태스크가 실제 실행되기 전에, 미리 그 태스크에 필요한 데이터가 사전 로딩될 수 있다는 장점을 가진다. 예를 들어, 이전 태스크가 data1.jpg, data2.jpg 및 data3.jpg의 로딩을 수반했다고 검출되면, 예측 모듈은, 장래 태스크가 아마도 존재하는 data4.jpa의 로딩을 수반할 것으로 예측하여, 대응하는 태스크가 시작되기 전에 미리 data4.jpg를 사전 로딩할 수 있다. 바람직한 실시 예에 있어서, 그러한 데이터의 사전 로딩은, 시스템이 낮은 로드하(under low load)에서만, 예를 들어, 제어 소자의 현재 로드가 사전 결정된 임계치보다 낮은 경우에만 실행된다.
본 발명의 추가적인 실시 예에 따르면, 디바이스는, 하나 이상의 예측된 장래 태스크의 실행의 시작후에 하나 이상의 새로운 태스크들이 도달하면, 현재 태스크의 실행을 위해 하나 이상의 예측된 장래 태스크를 소거한다. 예를 들어, 예측이 정확하지 않았고, 예측된 장래 태스크들 대신에 새로운 태스크들이 실행되어야 하는 것으로 드러날 수 있다.
본 발명의 추가적인 실시 예에 따르면, 상술한 실시 예들 중 하나의 실시 예)에 따른 디바이스를 구비한 서버 시스템이 제공된다.
이 방법에서는, 또한, 서버 시스템이 본 출원에 리스트된 긍정적 효과들 모두를 제공하도록 구성되는 것이 바람직하다. 추가적으로, 기존의 데이터 센터 인프라 구조들/부품들/모듈들/소자들의 도입 및/또는 이용이 동시에 가능하게 된다.
본 발명의 실시 예에 따르면, 상기에서 개략적으로 설명되고 이하에서 보다 상세하게 설명될 방법을 실행하는 ASIC 또는 FPGA가 제공된다.
본 발명의 추가적인 측면에 따르면, 하나 이상의 버스들, 하나 이상의 제어 소자들 및 다수의 프로세싱 소자들 중 적어도 일부가 동일 칩 하우징(chip housing) 내부에 배치된다. 이것은, 동일 하우징 내에 배치된 부품들과 통신하는데, 특히 높은 대역폭이 달성될 수 있다. 또한 이러한 셋-업(set-up)은 대량 생산에 있어서 원가 절감을 가져온다.
본 발명의 추가적인 실시 예에 따르면, 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스가 상기에서 개략적으로 설명되고 이하에서 상세하게 설명될 방법을 실행하도록 하는 프로그램 코드를 구비한 컴퓨터 독출 가능 매체가 제공된다.
추가적인 장점 및 바람직한 실시 예들은 종속 청구항에 포함되고, 첨부된 도면을 참조하여, 바람직한 실시 예의 이하의 설명으로부터 보다 잘 이해될 것이다. 도면에 있어서,
도 1은 특히 디바이스의 일부를 형성하는, 링 구조를 가진 버스 시스템의 개략도이고;
도 2는 링 구조를 가진 추가적인 버스 시스템의 개략도이고;
도 3은, 각각의 링이 각각의 소자들과 접속되지 않은, 링 구조를 가진 버스 시스템의 개략도이고;
도 4는 현재 및 장래 활성 소자들에 대한 표시된 포인터들(indicated pointers)을 가진 추가적인 버스 시스템의 개략도이고;
도 5는 추가적인 버스 시스템의 개략도이고;
도 6은 양방향으로 동작하는 TDMA 구조를 가진 버스 시스템의 개략도이고;
도 7은 양방향으로 동작하는, 브렌치들(branches)을 가진 TDMA 구조를 가진 버스 시스템의 개략도이고;
도 7a는 1차 브렌치(primary branch)에 글로벌 토큰(global token)을 가진, 도 7의 버스 시스템의 개략도이고;
도 7b는 2차 브렌치(secondary branch)에 글로벌 토큰을 가지며, 선택적으로 다른 2차 브렌치에 로컬 토큰(local token)을 가진 도 7의 버스 시스템의 개략도이고;
도 8은 소자들의 전부가 아닌 일부가 동일 버스들을 공유하는, 양방향으로 동작하는 TDMA 구조을 가진 버스 시스템의 개략도이다.
도 1은 링 토폴로지를 가진 버스 시스템(110)의 개략도이다. 특히, 버스 시스템(110)은 디바이스(D)의 일부를 형성한다. 버스 시스템(110)은 반시계 방향으로 명령 및 데이터를 운송하는 제 1 링 버스(112)와, 시계 방향으로 명령과 데이터를 운송하는 제 2 링 버스(114)를 구비한다. 다시 말해, 제 1 및 제 2 링 버스(112,114)는 서로 반대 방향으로 명령 및 데이터를 운송하도록 구성된다. 버스들(112,114)에는, 제어 소자로서 작용하는 프로세싱 코어(120)가 부착된다. 또한, 다양한 기능들의 다수의 소자들(122-134)이 버스들(112,114)에 접속된다. 소자들(122,134)은 RAM(Random Access Memory)(122), 플래시 메모리(124), 대량 저장 제어기(126), 네트워크 인터페이스 제어기(128), I2C 버스(130), PCIe(Peripheral Component Interconnect Express bus, 132) 및 추가적인 잡다한 디바이스들(134)을 구비한다.
링 버스들(112,114)은 시간 편이 방식(time-shifted manner)으로 동작하는, 접속된 소자들(120-134)간의 직접 접속으로서 셋-업된다. 도 1의 시스템의 경우, 소자들(120-134)은 두 버스들(112,114)에 접속된다. 그러나, 버스들(112,114)간의 직접 접속은 없다. 유사하게, 도 2 및 도 5에 도시된 시스템들은 버스들간에 어떠한 직접 접속도 구비하지 않는다. 본 발명의 다른 실시 예에 있어서, 버스들은 직접 접속들을 구비할 수 있다.
계속해서, 접속된 소자들(120-134)은 기록을 실행할 수 있다. 즉, 한 소자에서 다른 소자로 활성 상태가 전달되면, 주어진 시점에 활성인 그 소자에 의해서만 판독 또는 기록 동작이 실행될 수 있다. 일부 실시 예에 있어서, 둘 이상의 태스크가 한 클럭 사이클내에 운송될 수 있다. 또한, 둘 이상의 데이터 세트가 하나의 태스크(SIME)에 부착될 수 있다. 버스 링들의 개수, 접속된 소자들(120-134)의 개수, 시작 위치 및 포인터의 방향에 의거하여, 둘 이상의 링들이 한 시점에 동일한 소자를 어드레싱하는 일이 발생할 수 있다. 이 경우, 추가적인 명령 및 데이터를 받아들이는 FIFO 버퍼가 제공될 수 있다. 도 1에 있어서, FIFO 버퍼(135)는 단지 다른 잡다한 소자(134)에 대해서만 도시되었지만, 유사한 방식으로 FIFO 버퍼는 모든 프로세싱 소자들(120-134)에 대해서 제공될 수 있다.
도 2에는, 링 버스들(212,214) 및 그들과 접속된 프로세싱 코어(220)와, RAM(222)을 구비한 비-배타적 버스 시스템(210)의 개략도가 도시된다. 또한, 프로세싱 코어(220) 및 RAM(222)은 직접 접속(221)을 통해 접속된다. 추가적인 소자들은, 도 2에는 도시되지 않았지만, 링 버스들(212,214)에 접속될 수 있다. 도 1의 버스 시스템(10)과 유사하게, 도 2의 버스 시스템은 반시계 방향으로 명령 및 데이터를 운송하는 제 1 링 버스(212)와, 시계 방향으로 명령 및 데이터를 운송하는 제 2 링 버스(214)를 구비한다.
본 발명의 다른 실시 예들에 있어서, 도 1 및 도 2에 도시된 링 버스들(112,114;212,214)은, 제 1 소자가 버스의 액세스를 종료할 때, 제 1 소자에서 다른 소자로 활성 타임 슬롯(active time slot)이 전달되는 액세스 프로토콜(access protocol)로 구현될 수 있다. 이것은, 예를 들어, 토큰 링 액세스 기법으로서 구현될 수 있는데, 거기에서는, 소자(120-134, 220, 222)가 버스의 액세스를 종료하고 나면, 그 소자가 토큰을 다음 소자(120-134, 220, 222)로 전달한다.
도 3에는 2개의 링(312,314)을 구비한 버스 시스템(310)의 개략도가 도시되는데, 거기에서는 제 1 링(312) 또는 제 2 링(314)의 어느 것도 프로세싱 소자들(320-334)의 모두에 접속되지는 않는다. 도 1의 버스 시스템(110)과 유사하게, 도 3의 버스 시스템은 반 시계 방향으로 명령 및 데이터를 운송하는 제 1 링 버스(312)와, 시계 방향으로 명령 및 데이터를 운송하는 제 2 링 버스(314)를 구비한다. 도 3의 실시 예에 있어서, 단지 프로세싱 코어(320)만이 제 1 링(312)과 제 2 링(314)의 모두에 접속된다. 본 발명의 다른 실시 예에 있어서, 제 1 링(312)과 제 2 링(314)의 모두에 접속되는 하나 이상의 소자들은 칩 외부의 소자들에 접속시키는 RAM 또는 제어기일 수 있다. 칩 외부에 배치될 수 있는 다른 디바이스들(334)은 FIFO 버퍼(335)를 통해 2개의 링(312,314)에 접속될 수 있다.
도 4에는 링 버스(412)를 가진 버스 시스템의 개략도가 도시되는데, 거기에서는, 현재 활성 소자에 대한 포인터가 P0로서 표시되고, 다른 활성 소자들에 대한 포인터들이 P1 내지 P7으로 표시된다. 본 실시 예에 있어서, 제어 소자로서 작용하는 프로세싱 코어(420), RAM(422), 플래시(Flash, 424), 저장부(426), NIC(428), I2C 버스(430), PCIe(432) 및 다른 소자들(434)은 링 버스(412)에 접속되며, 거기에서는, 다른 소자들(434)이 FIFO 버퍼(435)를 통해 링 버스(412)에 접속된다. 링 버스(412)는 시계 방향으로 데이터를 운송하도록 구성되고, 포인터는 시계 방향으로 링을 통과한다. 도시된 예에 있어서, 소자들(420-434)은 한 클럭 사이클의 거리만큼 이격된다. 길이가 동일하거나 동일하지 않을 수 있는 다른 시간 증분에 따라 포인터 위치가 링을 통과하는 다른 실시 예들이 제공될 수 있다. 포인터의 진행은, 예를 들어, 다른 소자들에 할당된 정적 우선 순위들(static priorities)에 기초하여 결정될 수 있다.
도 5에는, 본 발명의 실시 예에 따른, 추가적인 버스 시스템(510)의 개략도가 도시된다.
본 발명의 실시 예에 따른 한가지 동작 모드는, 이하의 예시와 함께 설명된다. 1차 프로세싱 소자(520a)가 제어 소자로 작용하여, 2차 프로세싱 소자들(536-550)들 중 하나에서 처리될 수 있는 태스크를 전송한다고 가정한다. 종래 기술의 프로세싱 방법에 따라, 룩업 테이블들 중 하나의 테이블에 저장된 이전 성공 결과에 기초하여, 제 1 링(512)을 이용하여 2차 프로세싱 소자(540)로 태스크가 전송되는데 이것은 14 클럭 사이클을 요구한다. 4 클럭 사이클을 요구하는 2차 프로세싱 소자(540)에서의 프로세싱 이후, 제 1 링(512)상의 1차 프로세싱 소자(520a)로 출력 데이터가 복귀되는데, 여기에는 또 다른 3 클럭 사이클이 소요된다. 활성 슬롯이 1차 프로세싱 소자(520a)로 복귀되기 전에 추가적인 13 클럭 사이클이 소요된다. 이에 따라 14 + 4+ 13 + 3 = 34 클럭 사이클의 전체 사이클 시간이 야기된다. 본 발명에 따르면, 이상적으로, 태스크가, 임의의 버스 대기 시간 없이, 제 2 링(514)을 통해 2차 프로세싱 소자(540)로 전송되고, 제 1 링(512)을 통해 1차 프로세싱 소자(520a)로 복귀된다면, 예측 사이클 시간은 단지 3 + 4 + 0 + 3 = 10 클럭 사이클인 것으로 판정될 수 있는데, 그 이유는, 셋-업에 의해, 링(514)이 링(512)에 대해 정확한 매칭 오프셋(exactly matching offset)을 가질 수 있기 때문이다. 본 예시에 있어서, 본 발명에 따른 방법은 종래 기술의 방식에 따른 사이클 시간의 1/3 미만으로 사이클 시간을 감소시킨다.
n개의 접속된 소자들은 n개의 다른 포인터 위치들에 대응한다.
도 6에는 본 발명의 일 측면에 따른 추가적인 버스 시스템(610)의 개략도가 도시된다. 버스 시스템(610)은 선형 토폴로지 및 시 분할 다중 액세스 기법을 이용한 2개의 양방향 버스들(612,614)로 셋-업된다. 도 6에는, 두개의 선형 버스들(612,614)에 접속된 3개의 소자들(620, 622, 640)이 도시된다. 통상적으로, n개의 그러한 소자들이 두 버스에 접속될 수 있다. 다수개의 이들 소자들(620,622,640)은 제어 소자들로서 작용할 수 있으며, 다른 소자들은 제어 소자들에 의해 제어되는 프로세싱 소자들로서 작용한다. 제어 및 프로세싱 소자들에 추가하여, 예를 들어, RAM 제어기와 같은 다른 소자들이, 또한, 버스들(612,614)에 접속될 수 있다.
대안적으로, 버스 시스템(610)은 토큰이 하나의 스테이션(station)에서 다른 스테이션으로 전달되는 토큰 전달 기법을 이용하여 셋-업될 수 있는데, 거기에서는 버스에 접속된 소자들의 버스 인터페이스들의 어드레스에 기초하여 "다음" 스테이션이 정의된다.
본 발명의 추가적인 실시 예에 있어서, 임의의 다른 접속된 소자들과 데이터를 주고 받기 위해 접속된 제어 소자에 의해 포인터가 푸시(push)또는 풀링(pulling)될 수 있다.
도 7에는, 브렌치(713)를 통해 접속되며, 양 방향 버스들인 3개의 선형 부분들(712a, 712b, 712c)을 구비하는 비-배타적 버스 시스템(710)의 개략도가 도시된다. 버스 시스템(710)에 접속된 것은, 제 1 선형 부분(712a)에 접속된 2개의 제어 소자들(720a,720b) 및 RAM(722)과, 제 2 선형 부분(712b)에 접속된 2개의 프로세싱 소자들(730,732)과, 버스 시스템(710)의 제 3 부분(712c)에 접속된 2개의 프로세싱 소자들(740,742)이다. 도 7에 도시된 제 2 및 제 3 선형 부분(712b, 712c)에 추가하여, 임의 개수의 추가적인 선형 부분들이 제 1 선형 부분(712a)에 접속될 수 있다. 이러한 추가적인 부분들은 동일 개수의 접속된 소자들을 구비할 수 있다.
예를 들어, RAM 부품(722)은 전체적으로 3개의 물리적 이웃들, 즉, 제어 소자(720b), 제 2 부분(712b)의 프로세싱 소자(730) 및 제 3 부분(712c)의 프로세싱 소자(740)를 가진다. 그러므로, 이 버스 시스템(710)에 대한 액세스는 토큰 전달 기법으로 관리되어야 하는데, 거기에서는 이웃 관계가 접속된 소자들의 어드레스들에 기초하여 정의된다. 선형 부분들(712b 및 712c)은 동시에 활성화될 수 있음을 알아야 한다. 임시 또는 제 2 레벨 토큰들은 하나의 선형 부분내에 활성 슬롯을 할당하는데 이용된다. 선형 부분(712a, 712b, 712c)의 현재 상태 및 예측된 장래 이용 가능성에 대한 지식은 사이클 예측 방법에 의해 이용될 수 있고, 태스크들이 어느 프로세싱 소자들에 할당되는지 대한 결정에 이용될 수 있다.
바람직한 실시 예에 있어서, 버스(712a, 712b, 712c)당 둘 이상의 토큰이 이용될 수 있도록 하기 위하여, 1차 브렌치 부분 및 다수의 2차 브렌치 부분들이 존재한다. 이것은 도 7a 및 도 7b에 도시되는데, 거기에서는 제 1 선형 부분(712a)이 1차 브렌치를 형성하고, 제 2 및 제 3 선형 부분(712b, 712c)들이 2차 브렌치 부분을 형성한다.
충돌을 피하기 위해, 항상 트래버싱 우선 순위(traversing priorities)를 가진 하나의 글로벌 토큰(750)만이 존재할 수 있다. 글로벌 토큰(750)은 도 7a 및 도 7b에 큰 별표로서 표시되고, 로컬 토큰(752)은 작은 별표로 표시된다. 도 7a에 도시된 바와 같이, 글로벌 토큰(750)이 1차 브렌치 부분상에 존재할 경우, 2차 브렌치 부분의 어디에도 로컬 토큰들이 존재하지 않을 수 있다. 그러나, 도 7b에 도시된 바와 같이, 글로벌 토큰(750)이 2차 브렌치 부분들 중 하나상에 존재하면, 다른 2차 브렌치 부분들의 전부 또는 일부에, 각자의 2차 브렌치 부분들을 떠날 수 없는 로컬 토큰들(752)이 있을 수 있다.
도 8에는, 2개의 양방향 버스들(812,814)을 구비하는 비-배타적 버스 시스템(810)의 개략도가 도시된다. 제 1 제어 소자(820a), 제 2 제어 소자(820b) 및 RAM(822)은 제 1 버스(812) 및 제 2 버스(814)에 접속된다. n개의 프로세싱 소자들(830, 832)은 제 2 버스(814)에만 접속되고, n개의 프로세싱 소자들(840,842)은 제 1 버스(812)에만 접속된다. 이러한 셋-업은 n회 반복될 수 있으며, 그에 따라, 전체 m*n개의 프로세싱 소자들이 버스 시스템(810)에 접속될 수 있다. 도 8에 도시된 셋-업은, 예를 들어, 제어 소자들(820a, 820b)과 RAM(822)간의 통신이 제 1 버스(812) 및 제 2 버스(814)의 모두를 통해 이루어질 수 있다는 장점을 가진다. 이에 따라 전체 대역폭이, RAM(822)보다 액세스가 덜 이루어지는 경우가 빈번한 프로세싱 소자들(830,832,840,842)과 통신하기 위한 대역폭에 비해 2배 이상 높아질 수 있게 된다. 이 방법에서는, 그 아키텍처가 전형적인 로드 시나리오(load scenario)들에 적합하다. 다른 장점은, 둘 이상의 SPE와의 통신이 동시에 이루어질 수 있다는 것이다.
버스들(812,814)에 대한 액세스는 간단한 시 분할 다중화 액세스 기법으로 구현될 수 있다. 대안적으로, 예를 들어, 토큰 전달 기법 또는 그 두개의 조합이 이용될 수 있다.
상술한 실시 예들과 관련하여, 상기한 실시 예들은 서로 조합될 수 있음을 알아야 한다. 또한, 도면에 도시된 버스 시스템들은, 도면에 도시되지 않은 추가적인 소자들 및 추가적인 버스들을 구비할 수 있음을 알 것이다. 특히, 도 7에 도시된 브렌치들은 선형 부분들과 링 버스들을 접속시킬 수 있을 것이다. 또한, 브리지(bridge)를 통해 접속되거나 적어도 하나의 소자를 공유하는 다른 버스들은 다른 액세스 기법을 이용할 수 있을 것이다.
버스 시스템들(110,210,310,410,510,610,710,810)은 특히 디바이스(D)의 일부를 형성한다. 그러므로, 그 디바이스는 하나 이상의 버스들(112,114,212,214,312,314,412,512,514,612,614,712a,712b,712c,812,814)과, 하나 이상의 제어 소자들(120,220,320,420,520a,520b,620,720a,720b) 및 다수의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)을 구비한다. 이러한 디바이스(D)에 있어서, 제어 소자들(120,220,320,420,520a,520b,620,720a,720b) 중 적어도 일부는,
- 태스크를 프로세싱할 수 있는 다수의 프로세싱 소자들로부터 하나 이상의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)을 식별하고;
- 하나 이상의 식별된 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)과 통신하기 위한 하나 이상의 경로들을 식별하고;
- 식별된 경로들과 식별된 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)들 중 하나 이상에 대한 사이클 길이를 예측하고, 식별된 프로세싱 소자들로부터 선호 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)를 선택하고, 식별된 경로들로부터 선호 경로를 선택하는 것에
기초하여 태스크에 대한 배분 경로를 결정한다.
추가로, 서버 시스템은 상술한 측면에 따라 구성되는 적어도 하나의 디바이스(D)를 구비한다.

Claims (19)

  1. 하나 이상의 버스들(112,114,212,214,312,314,412,512,514,612,614,712a, 712b,712c,812,814)과, 다수의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)을 구비하는 디바이스에 있어서 태스크(task)의 배분 경로(distribution path)를 결정하는 방법으로서,
    - 태스크를 프로세싱할 수 있는 다수의 프로세싱 소자들로부터 하나 이상의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)을 식별하는 단계;
    - 하나 이상의 식별된 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)과 통신하기 위한 하나 이상의 경로들을 식별하는 단계;
    - 식별된 경로들과 식별된 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842) 중 하나 이상에 대한 사이클 길이를 예측하는 단계; 및
    - 식별된 프로세싱 소자들로부터 선호 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)를 선택하고, 식별된 경로들로부터 선호 경로를 선택하는 단계를 구비하는
    태스크의 배분 경로 결정 방법.
  2. 제 1 항에 있어서,
    식별된 경로와 식별된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에 대한 사이클 길이는,
    - 식별된 경로상의 식별된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)로 명령 및 입력 데이터를 전달하는 예측 순방향 전달 시간(predicted forward transfer time);
    - 식별된 경로상의 식별된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)로부터 출력 데이터를 전달하는 예측 복귀 전달 시간(predicted return transfer time); 및/또는
    - 식별된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서 태스크를 프로세싱하기 위한 예측 프로세싱 시간(predicted processing time)에
    기초하여 예측되는
    태스크의 배분 경로 결정 방법.
  3. 제 2 항에 있어서,
    상기 예측된 사이클 길이는 예측 순방향 전달 시간과, 예측 복귀 전달 시간 및 예측 프로세싱 시간의 합인
    태스크의 배분 경로 결정 방법.
  4. 제 1 항 내지 제 3 항 중 한 항에 있어서,
    사이클 길이를 예측하는 것은,
    - 하나 이상의 버스들(112,114,212,214,312,314,412,512,514,612,614,712a, 712b,712c,812,814)의 현재 이용 가능성 및/또는 활용성과;
    - 하나 이상의 식별 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)의 현재 이용 가능성 및/또는 활용성
    중 적어도 하나에 기반하는
    태스크의 배분 경로 결정 방법.
  5. 제 1 항 내지 제 4 항 중 한 항에 있어서,
    상기 방법은:
    - 선택된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서 태스크의 프로세싱을 시작하는 단계;
    - 태스크의 예측 잔여 사이클 길이(predicted remaining cycle length)를 획득하기 위해 태스크의 상기 예측된 사이클 길이를 갱신하는 단계;
    - 예측 잔여 사이클 길이가 다른 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서 태스크를 프로세싱하기 위한 예측된 사이클 길이보다 더 크다고 판정되면, 선택된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서의 태스크의 프로세싱을 소거하는 단계; 및
    - 상기 다른 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에 태스크를 할당하는 단계를
    추가로 구비하는
    태스크의 배분 경로 결정 방법.
  6. 제 1 항 내지 제 5 항 중 한 항에 있어서,
    상기 방법은,
    - 태스크의 프로세싱을 위한 임계 시간을 판정하는 단계;
    - 선택된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서 태스크의 프로세싱을 시작하는 단계;
    - 태스크에 대한 실제 프로세싱 시간이 임계 시간보다 높은지를 검사하는 단계;
    - 실제 프로세싱 시간이 임계 시간보다 높으면 태스크의 프로세싱을 소거하는 단계; 및
    - 상기 태스크를 다른 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에 할당하는 단계를
    추가로 구비하는
    태스크의 배분 경로 결정 방법.
  7. - 하나 이상의 버스들(112,114,212,214,312,314,412,512,514,612,614,712a, 712b,712c,812,814)과;
    - 하나 이상의 제어 소자들(120,220,320,420,520a,520b,620,720a,720b) 및
    - 다수의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640, 720a-742,822-842)을 구비하며,
    제어 소자들(120,220,320,420,520a,520b,620,720a,720b) 중 적어도 하나는,
    - 태스크를 프로세싱할 수 있는 다수의 프로세싱 소자들로부터 하나 이상의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)을 식별하고,
    - 하나 이상의 식별된 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640, 720a-742,822-842)과 통신하기 위한 하나 이상의 경로들을 식별하고,
    - 식별된 경로들과 식별된 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842) 중 하나 이상에 대한 사이클 길이를 예측하고, 식별된 프로세싱 소자들로부터 선호 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)를 선택하고, 식별된 경로들로부터 선호 경로를 선택하는 것에
    기초하여 태스크에 대한 배분 경로를 결정하는
    디바이스.
  8. 제 7 항에 있어서,
    제어 소자들(120,220,320,420,520a,520b,620,720a,720b) 중 적어도 하나는,
    - 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)로 명령 및 입력 데이터를 전달하는 예측 순방향 전달 시간;
    - 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)로부터 출력 데이터를 전달하는 예측 복귀 전달 시간; 및/또는
    - 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서 태스크를 프로세싱하는 예측 프로세싱 시간에
    기초하여 사이클 길이를 예측하는
    디바이스.
  9. 제 7 항 또는 제 8 항에 있어서,
    제어 소자들(120,220,320,420,520a,520b,620,720a,720b) 중 적어도 하나는,
    - 선택된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서 태스크의 실행을 시작하는 단계;
    - 태스크의 예측 잔여 사이클 길이를 획득하기 위해 태스크의 예측된 사이클 길이를 갱신하는 단계;
    - 예측 잔여 사이클 길이가 다른 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서 태스크를 프로세싱하기 위한 예측 사이클 길이보다 더 크다고 판정되면, 선택된 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에서의 태스크의 프로세싱을 소거하는 단계; 및
    - 상기 다른 프로세싱 소자(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)에 상기 태스크를 재-할당하는 단계를 실행하는,
    디바이스.
  10. 제 7 항 내지 제 9 항 중 한 항에 있어서,
    상기 디바이스는,
    다수의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640,720a-742,822-842)의 현재 이용 가능성 및/또는 활용성에 대한 정보를 구비하는 하나 이상의 비지 테이블(busy table)들을 추가로 구비하며,
    제어 소자들(120,220,320,420,520a,520b,620,720a,720b) 중 적어도 하나는 하나 이상의 비지 테이블들내의 정보를 규칙적으로 갱신하는
    디바이스.
  11. 제 7 항 내지 제 10 항 중 한 항에 있어서,
    하나 이상의 버스들(112,114,212,214,312,314,412,512,514)은 하나 이상의 링(ring)들을 구비하는
    디바이스.
  12. 제 7 항 내지 제 11 항 중 한 항에 있어서,
    하나 이상의 버스들(112,114,212,214,312,314,412,512,514,612,614,712a, 712b,712c,812,814)은 명령들을 운송하는 제 1 버스 세트와 데이터를 운송하는 제 2 버스 세트를 구비하는
    디바이스.
  13. 제 7 항 내지 제 12 항 중 한 항에 있어서,
    하나 이상의 버스들(112,114,212,214,312,314)은, 단방향성으로서 서로 반대 방향으로 지향되는 2개의 링(112,114,212,214,312,314)을 구비하는
    디바이스.
  14. 제 7 항 내지 제 13 항 중 한 항에 있어서,
    하나 이상의 버스들(112,114,212,214,312,314,412,512,514)은 EIB(Element Interconnect Bus)를 구비하는
    디바이스.
  15. 제 7 항 내지 제 14 항 중 한 항에 있어서,
    다수의 소자들(220,222) 중 적어도 하나는 하나 이상의 버스들(212,214)에 접속되고, 추가로 적어도 하나의 다른 소자(212,214)에 대한 직접 접속(221)을 구비하는
    디바이스.
  16. 제 7 항 내지 제 15 항 중 한 항에 있어서,
    이전에 프로세싱된 태스크에 기초하여 장래의 태스크를 예측하도록 구성된 예측 모듈을 추가로 구비하는
    디바이스.
  17. 제 16 항에 있어서,
    상기 디바이스는, 하나 이상의 예측된 장래 태스크의 실행의 시작 후에 하나 이상의 새로운 태스크들이 도달하면, 현재 태스크의 실행을 위해 하나 이상의 예측된 장래 태스크를 소거하는
    디바이스.
  18. 제 7 항 내지 제 17 항 중 한 항에 있어서,
    하나 이상의 버스들(112,114,212,214,312,314,412,512,514,612,614,712a, 712b,712c,812,814)과, 하나 이상의 제어 소자들(120,220,320,420,520a,520b,620, 720a,720b), 및 다수의 프로세싱 소자들(122-134,222,322-334,422-434,522-550,620-640, 720a-742,822-842) 중 적어도 일부는 동일 칩 하우징(chip housing) 내부에 배치되는
    디바이스.
  19. 제 7 항 내지 제 18 항 중 적어도 한 항에 따른 디바이스를 구비한
    서버 시스템.
KR1020177006601A 2014-09-16 2015-09-07 태스크의 배분 경로를 결정하는 방법, 디바이스 및 시스템 Withdrawn KR20170055964A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14185007.3 2014-09-16
EP14185007.3A EP2998864B1 (en) 2014-09-16 2014-09-16 Method, device and system for deciding on a distribution path of a task
PCT/EP2015/070382 WO2016041804A1 (en) 2014-09-16 2015-09-07 Method, device and system for deciding on a distribution path of a task

Publications (1)

Publication Number Publication Date
KR20170055964A true KR20170055964A (ko) 2017-05-22

Family

ID=51589107

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177006601A Withdrawn KR20170055964A (ko) 2014-09-16 2015-09-07 태스크의 배분 경로를 결정하는 방법, 디바이스 및 시스템

Country Status (10)

Country Link
US (1) US20170168873A1 (ko)
EP (1) EP2998864B1 (ko)
JP (1) JP2017535212A (ko)
KR (1) KR20170055964A (ko)
CN (1) CN106687930A (ko)
CA (1) CA2957150A1 (ko)
HK (1) HK1223429A1 (ko)
IL (1) IL250346A0 (ko)
TW (1) TW201626222A (ko)
WO (1) WO2016041804A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI616754B (zh) * 2016-07-29 2018-03-01 百利通亞陶科技股份有限公司 快捷外設互聯標準(PCIe)資料交換裝置及傳輸系統

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931559B2 (en) * 2001-12-28 2005-08-16 Intel Corporation Multiple mode power throttle mechanism
US7730456B2 (en) * 2004-05-19 2010-06-01 Sony Computer Entertainment Inc. Methods and apparatus for handling processing errors in a multi-processing system
US8707314B2 (en) * 2011-12-16 2014-04-22 Advanced Micro Devices, Inc. Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations

Also Published As

Publication number Publication date
CA2957150A1 (en) 2016-03-24
TW201626222A (zh) 2016-07-16
US20170168873A1 (en) 2017-06-15
HK1223429A1 (en) 2017-07-28
EP2998864A1 (en) 2016-03-23
EP2998864B1 (en) 2018-12-12
WO2016041804A1 (en) 2016-03-24
JP2017535212A (ja) 2017-11-24
IL250346A0 (en) 2017-03-30
CN106687930A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
US11128555B2 (en) Methods and apparatus for SDI support for automatic and transparent migration
EP4062281B1 (en) Task scheduling for machine-learning workloads
US20180095738A1 (en) Method, device, and system for creating a massively parallilized executable object
Tan et al. Coupling task progress for mapreduce resource-aware scheduling
CN104636204B (zh) 一种任务调度方法与装置
WO2019056771A1 (zh) 分布式存储系统升级管理的方法、装置及分布式存储系统
US9471387B2 (en) Scheduling in job execution
EP3289466B1 (en) Technologies for scalable remotely accessible memory segments
CN119341916A (zh) 带宽自适应均衡方法、装置、设备、存储介质及程序产品
JP4699540B2 (ja) 光ネットワーク・システムおよびメモリ・アクセス方法
CN112416053A (zh) 多核架构的同步信号产生电路、芯片和同步方法及装置
CN105577310A (zh) 一种时间触发网络中任务分区与通信调度的同步方法
JP6717184B2 (ja) 車載制御装置
CN108541365B (zh) 用于交换机中拥塞信息的分发的设备和方法
EP2998864B1 (en) Method, device and system for deciding on a distribution path of a task
KR102268796B1 (ko) 하이퍼바이저 기반 plc 서비스 처리 장치
US12625725B2 (en) Dynamic provisioning of portions of a data processing array for spatial and temporal sharing
JP6805562B2 (ja) データ処理システム
CN107301139B (zh) 存储器直接访问控制装置
JP6392556B2 (ja) アクセスリクエスト発行装置、アクセスリクエスト発行システム、アクセスリクエスト発行方法、及び、アクセスリクエスト発行プログラム
JP6384359B2 (ja) 分散共有メモリを有する情報処理装置、方法、および、プログラム
JP2013174934A (ja) 計算機システム
CN119621350A (zh) 一种推理请求的处理方法、设备、存储介质及产品
HK1230301A1 (en) Method, device and system for creating a massively parallelized executable object
HK1230301A (en) Method, device and system for creating a massively parallelized executable object

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20170309

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination