KR101279343B1 - 멀티-스레딩된 프로세서 구조 - Google Patents

멀티-스레딩된 프로세서 구조 Download PDF

Info

Publication number
KR101279343B1
KR101279343B1 KR1020087006004A KR20087006004A KR101279343B1 KR 101279343 B1 KR101279343 B1 KR 101279343B1 KR 1020087006004 A KR1020087006004 A KR 1020087006004A KR 20087006004 A KR20087006004 A KR 20087006004A KR 101279343 B1 KR101279343 B1 KR 101279343B1
Authority
KR
South Korea
Prior art keywords
context
hardware
threaded processor
hardware contexts
processor
Prior art date
Application number
KR1020087006004A
Other languages
English (en)
Other versions
KR20080043349A (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
Priority claimed from US11/470,721 external-priority patent/US8046567B2/en
Application filed by 프리스케일 세미컨덕터, 인크. filed Critical 프리스케일 세미컨덕터, 인크.
Publication of KR20080043349A publication Critical patent/KR20080043349A/ko
Application granted granted Critical
Publication of KR101279343B1 publication Critical patent/KR101279343B1/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Advance Control (AREA)
  • Power Sources (AREA)

Abstract

상대적으로 느린 저전력 메모리(105)를 사용하면서 다수의 낮은-지연-허용 이벤트들에 병렬적으로 응답하고 처리할 수 있는 멀티-스레딩된 프로세서(multi-threaded processor; 103)가 나타나있다. 예시적 실시예는 멀티-스레딩된 프로세서를 포함하고, 그것 자체는 콘텍스트 제어기(contexts controller; 301) 및 복수의 하드웨어 콘텍스트(302)을 포함한다. 각각의 하드웨어 콘텍스트는 하나의 스레드의 현재 상태를, 프로세서가 그 스레드의 실행으로 또는 실행으로부터 빠르게 전환할 수 있게 할 수 있는 형태로 저장할 수 있다. 프로세서가 낮은-지연-허용 이벤트들에 빠르게 응답할 수 있게 하기 위해, 각각의 스레드 - 및, 이에 따라, 각각의 하드웨어 콘텍스트는 이벤트에 응답하는 스레드의 지연 허용에 따라 수선순위화된다.
Figure R1020087006004
로컬 버스 제어기, 멀티-스레딩된 프로세서, 메모리, 하드웨어 콘텍스트, 콘텍스트 제어기

Description

멀티-스레딩된 프로세서 구조{MULTI-THREADED PROCESSOR ARCHITECTURE}
본 발명은 일반적으로 컴퓨터 과학에 관한 것이며, 특히 멀티-스레딩된 프로세서(multi-threaded processor)에 대한 구조에 관한 것이다.
전자 제품 설계의 경향은 2개 이상의 무선 프로토콜(예를 들어, WiFi, 블루투스 등)을 통해 병렬적으로(concurrently) 통신할 수 있는 휴대용 전자 제품(예를 들어, PDA, 셀 폰 등)을 제작하는 것이며, 이는 전자 제품 내의 프로세서가 다수의 낮은-지연-허용 이벤트들(low-latency-tolerant events)에 응답할 수 있을 것을 요구한다.
프로세서가 다수의 낮은-지연-허용 이벤트들에 응답할 수 있는 요구사항은 일반적으로 프로세서가 고속일 필요가 있음을 의미한다. 그러나 고속 프로세서는 대량의 와트(wattage)를 사용하며, 따라서 휴대용 전자 제품의 배터리를 빨리 소모하는데, 이는 물론 대부분 단점이다.
이에 따라 다수의 낮은-지연-허용 이벤트들에 응답할 수 있고 적절한 전력 소모를 갖는 프로세서의 개발이 필요하다.
발명의 요약
본 발명은 다수의 낮은-지연-허용 이벤트들에 병렬적으로 응답할 수 있고 적절한 전력 소모를 갖는 프로세서의 제작 및 사용을 가능하게 한다. 예를 들어, 예시적 실시예는 상대적으로 느린 저전력 메모리를 사용하면서 다수의 낮은-지연-허용 이벤트들에 병렬적으로 응답하고 처리할 수 있는 멀티-스레딩된 프로세서이다.
특히, 예시적 실시예는 멀티-스레딩된 프로세서를 포함하며, 그것 자체는 콘텍스트 제어기(context controller) 및 복수의 하드웨어 콘텍스트를 포함한다. 각각의 하드웨어 콘텍스트는 하나의 스레드의 현재 상태를 프로세서가 그 스레드의 실행으로 또는 실행으로부터 빠르게 전환할 수 있게 하기 위한 형태로 저장할 수 있다. 프로세서가 낮은-지연-허용 이벤트들에 빠르게 응답할 수 있게 하기 위해, 각각의 스레드- 및 따라서 각각의 하드웨어 콘텍스트 -는 그것이 응답하는 이벤트의 지연 허용을 반영하도록 우선순위화된다.
콘텍스트 제어기는 시간-순서 기반 상에서 (예를 들어, 한 명령 한 명령(instruction-by-instruction) 기반 등) 최고 우선순위 스레드들 중에서 콘텍스트들을 전환한다- 및 따라서 프로세서의 처리 능력에 액세스함. 이 방식에서, 제어기는 종래 기술에서 코스-그레인드 멀티-스레딩된 구조(coarse-grained multi-threaded architecture)들 모두에 연관된 낮은-지연 잇점 및 파인-그레인드 멀티-스레딩된 구조(fine-grained multi-threaded architecture)에 연관된 병렬-처리 잇점 모두를 나타내는 것을 확실하게 한다.
예시적 실시예에 따르면, 프로세서의 메모리는 개별적인 메모리 뱅크(memory bank)로 구성되고 각각의 실행중인 스레드에 대한 명령 및 데이터는 상이한 뱅크에 저장된다. 이는 예시적 실시예가 상대적으로 저속 프로그램 메모리를 포함하는 것을 가능하게 하는데, 이는 메모리의 액세스 시간이 프로세서가 2개 이상의 연속적인 명령을 후술되는 매개변수에 따라 단일 스레드 내에 처리하는데 필요로 하는 시간의 양만큼만 빠르면 되기 때문이다.
예시적 실시예는 (a) 각각이 멀티-스레딩된 프로세서의 하나의 스레스의 실행 상태를 저장할 수 있는 H개의 하드웨어 콘텍스트; 및 (b) 콘텍스트 제어기를 포함하며, 상기 콘텍스트 제어기는,
(ⅰ) 우선순위를 갖는 A개의 하드웨어 콘텍스트들 각각을 활성화하고,
(ⅱ) EAC 중 작은 것과 동일하고, C는 멀티-스레딩된 프로세서에서 병렬적으로 실행중인 하드웨어 콘텍스트들의 최대 수와 동일할 때, A개의 활성적 하드웨어 콘텍스트 중 E개의 최고 우선순위를 실행중 하드웨어 콘텍스트로서 유지하고,
(ⅲ) 시간-순서 기반 상에서 E개의 실행중 하드웨어 콘텍스트들 중의 멀티-스레딩된 프로세서 내에서 콘텍스트 전환을 개시하기 위한 것이고;
여기서 CH는 양의 정수이고 2 < C < H이며;
AE는 음이 아닌 정수이고 E = A = H이다.
도 1은 본 발명의 예시적 실시예에 따른 전자 제품의 논리 구성요소의 블럭도.
도 2는 본 발명의 예시적 실시예에 따른 멀티-스레딩된 프로세서(103)의 두드러진 특징들의 블럭도.
도 3은 예시적 실시예의 동작에 연관된 두드러진 작업(task)의 차트(chart).
도 1은 본 발명의 예시적 실시예에 따른 전자 제품의 논리 구성요소의 블럭도를 나타낸다. 전자 제품(100)은 나타낸 바와 같이 밀접하게 관련된 라디오(101-1 내지 101-3), 로컬 버스 제어기(102), 멀티-스레딩된 프로세서(103), 입력/출력(104) 및 메모리(105)를 포함한다.
라디오(101-1 내지 101-3) 각각은 전자 제품(100)이 다른 전자 제품들과 무선으로 통신할 수 있게 하는 당업자들에게 잘 알려진 독립형 라디오이다. 라디오(101-1 내지 101-3) 각각은 상이한 무선-인터페이스에 따라 동작한다: 라디오(101-1)는 IEEE 802.11에 따르고, 라디오(101-2)는 IS-95에 따르고, 라디오(101-3)는 블루투스에 따른다. 라디오(101-1 내지 101-3) 각각은 서로 개별적으로 메시지들을 수신하고 그것은 낮은-지연 응답을 요구한다. 라디오(101-1 내지 101-3)를 어떻게 제작하고 사용하는지는 당업자에게 명확해질 것이다.
로컬 버스 제어기(102)는 잘 알려진 방식으로 라디오(101-1 내지 101-3)와 멀티-스레딩된 프로세서(103) 간의 인터페이스로서 동작한다. 예를 들어, 로컬 버스 제어기(102)는 라디오(101-1 내지 101-3)와 멀티-스레딩된 프로세서(103) 간의 상호작용을 제어한다. 로컬 버스 제어기(102)를 어떻게 제작하고 사용하는지는 당업자에게 명확해질 것이다.
멀티-스레딩된 프로세서(103)는 도 2 및 3에 관련하여 후술된 바와 같이 로컬 버스 제어기(102), 입력/출력(104) 및 메모리(105)와 상호작용할 수 있는 범용 프로세서이다. 특히, 멀티-스레딩된 프로세서(103)는 후술된 방식으로 복수의 병렬 스레드들을 실행할 수 있다.
입력/출력(104)은 전자 제품(100)에 대한 비-무선 인터페이스(non-radio interface)이고 잘 알려진 방식으로 멀티-스레딩된 프로세서(103)와 상호작용한다.
메모리(105)는 전자 제품(100)용 프로그램 메모리이고 C개의 독립 메모리 뱅크를 포함하는데, 여기서 C는 2 이상의 양의 정수이다. C의 상한은 도 2에 관련하여 후술된다. 메모리(105)의 액세스 시간은 멀티-스레딩된 프로세서(103)가 C개의 명령들을 실행하기 위해 요구되는 시간 이하이다. 예시적 실시예에 따르면, 각각의 실행중인 스레드에 대한 명령 및 데이터는 메모리(105)의 상이한 뱅크에 저장되어, 동일한 뱅크 내의 데이터에 대한 스레드들 간의 메모리 경쟁은 없다. 메모리(105)를 어떻게 제작하고 사용하는지가 당업자들에게 명백해질 것이다. 본 명세서를 읽은 후, 메모리(105)가 단단히-결합된 메모리이거나 멀티-레벨 메모리 계층구조의 캐시인 본 발명의 대안적 실시예를 어떻게 제작하고 사용할지가 당업자에게 명백해질 것이다.
도 2는 본 발명의 예시적 실시예에 따른 멀티-스레딩된 프로세서(103)의 두드러진 특징들의 블럭도를 나타낸다. 멀티-스레딩된 프로세서(103)는 콘텍스트 제어기(301) 및 H개의 하드웨어 콘텍스트(301-1 내지 301-H)을 포함하는데, 여기서 HC보다 큰 양의 정수이다. 예시적 실시예에 따르면, H는 8이지만, 본 명세서를 읽은 후, HC 보다 큰 임의의 정수 값인 본 발명의 대안적 실시예를 어떻게 제작하고 사용할지가 당업자들에게 명백해질 것이다.
본 명세서의 목적을 위해, "하드웨어 콘텍스트"는 멀티-스레딩된 프로세서(103)가 스레드의 실행으로 또는 실행으로부터 전환할 수 있게 하는 형태로 스레드의 현재 상태를 저장하는데 요구되는 하드웨어로서 설명된다.
콘텍스트 제어기(301)는 도 3에 관련하여 후술된 방식으로 하드웨어 콘텍스트(301-1 내지 301-H)의 파퓰레이션(population) 및 실행을 모니터링 및 조정할 수 있다. 또한, 콘텍스트 제어기(301)는 각각의 하드웨어 콘텍스트에 대한 다음의 정보를 제공하는 테이블을 유지한다:
(ⅰ) 하드웨어 콘텍스트는 비어있는가 파퓰레이팅되어있는가?
(ⅱ) 하드웨어 콘텍스트의 우선순위는 무엇인가?
(ⅲ) 하드웨어 콘텍스트는 활성적인가 비활성적인가?
(ⅳ) 하드웨어 콘텍스트는 실행중인가 아닌가?
이들 질문들의 각각에 대한 대답은 하드웨어 콘텍스트의 일부인 벡터에 저장될 수 있다. 본 명세서를 읽은 후, 이들 질문에 대한 대답이 다른 방식으로 저장되는 본 발명의 대안적 실시예를 어떻게 제작하고 사용하는지가 당업자들에게 명백해질 것이다.
도 3은 예시적 실시예의 동작에 연관된 두드러진 작업들의 차트를 나타낸다. 예시적 실시예에 따르면, 작업(301, 302, 303 및 304)은 병렬적으로 동작한다.
작업(301)에서, 콘텍스트 제어기(201)는 스레드의 스포닝(spawning)에 응답하여 하드웨어 콘텍스트(202-1 내지 202-H)의 빈 하드웨어 콘텍스트를 파퓰레이팅한다. 예시적 실시예에 따르면, 스레드는 우선순위를 가지며 이에 따라 콘텍스트 제어기(201)는 그 스레드의 우선순위를 새롭게 파퓰레이팅된 하드웨어 콘텍스트와 연관시킨다.
본 명세서를 읽은 후, 하드웨어 콘텍스트(202-1 내지 202-H)가 스스로 우선순위화되고 콘텍스트 제어기(201)가 스레드의 스포닝에 응답하여 하드웨어 콘텍스트(202-1 내지 202-H)의 빈 하드웨어 콘텍스트를 파퓰레이팅하고, 여기서 빈 하드웨어 콘텍스트는 스레드의 우선순위에 적합한 우선순위를 갖는 본 발명의 대안적 실시예를 어떻게 제작하고 사용하는지가 당업자에게 명백해질 것이다.
당업자에게 잘 알려진 바와 같이, 스레드의 정상 실행은 보통 소정의 시점에 종료되며, 그 시점에서 스레드에 대한 하드웨어 콘텍스트는 비게 되고 다시 파퓰레이팅할 수 있게 된다. 본 명세서를 읽은 후, 스레드에 대한 하드웨어 콘텍스트가 정상 실행 후 획득되어 스레드가 종료된 후 휴지상태가 되는 본 발명의 대안적 실시예를 어떻게 제작하고 사용하는지가 당업자들에게 명백해질 것이다.
작업(302)에서, 콘텍스트 제어기(201)는 초기에는 "비활성적"이라고 간주되었던, 작업(301)에서 파퓰레이팅된 하드웨어 콘텍스트를 "활성적"이라고 간주한다. 본 명세서의 목적을 위해, "활성적 하드웨어 콘텍스트"은 실행할 준비가 된 콘텍스트를 의미하고 "비활성적 하드웨어 콘텍스트"은 실행할 준비가 되지 않은 콘텍스트를 의미한다.
임의의 한 순간에, A개의 하드웨어 콘텍스트(202-1 내지 202-H)는 활성적이라고 간주되는데, 여기서 A는 음이 아닌 정수이고 A=H이다. 시간이 지남에 따라, 새로운 스레드들이 스포닝되고 완료된 스레드들이 비면서, A의 값은 변할 수 있다. 또한, A의 값은 비활성적 스레드가 대기하고 있을 시의 이벤트의 병렬 및 예상된 미래의 이벤트의 병렬을 계류하는 스레드들의 자의적 비활성화에 따라 변할 수 있다. 또한, 콘텍스트 제어기(201)는 어떤 이유에서건 (예를 들어, 캐시 미스(cache miss), 외부 이벤트에 대한 대기의 필요성 등으로 인해 프로세서 실행이 중단됨) 콘텍스트가 중지 상태일 때 활성적 하드웨어 콘텍스트를 비활성적이라고 간주할 수 있으며, 대기 또는 블러킹(blocking) 상태가 극복되면 비활성적 하드웨어 콘텍스트를 활성적이라고 간주할 수 있다.
작업(303)에서, 콘텍스트 제어기(201)는 A개의 활성적 하드웨어 콘텍스트 중 E개의 최고 우선순위를 "실행중"이라고 간주하며, 여기서 E는 음이 아닌 정수이며 AC 중 작은 것과 같다. 이 명세서의 목적을 위하여, "실행중 하드웨어 콘텍스트"는 멀티-스레딩된 프로세서(103)의 처리 능력에의 액세스가 주어진 활성적 하드웨어 콘텍스트로 정의되며, "비실행중 하드웨어 콘텍스트"는 멀티-스레딩된 프로세서(103)의 처리 능력에의 액세스가 주어지지 않은 활성적 하드웨어 콘텍스트로 정의된다. 시간이 지남에 따라, E의 값은 활성적 하드웨어 콘텍스트의 개수가 변함에 따라 변할 수 있고 실행중 하드웨어 콘텍스트의 세트의 멤버도 활성적 하드웨어 콘텍스트의 상대적 우선순위가 변함에 따라 변할 수 있다. 즉, E C가 동일하고 E개의 실행중 하드웨어 콘텍스트 중 적어도 하나보다 우선순위가 높은 비활성적 하드웨어 콘텍스트가 활성적이라고 간주되면, 콘텍스트 제어기(201)는 새로운 활성적 하드웨어 콘텍스트를 실행중 하드웨어 콘텍스트으로 간주하고 E개의 실행중 하드웨어 콘텍스트들 중 최저 우선순위를 비-실행중이라고 간주한다. 이 방식에서, 콘텍 스트 제어기(201)는 A개의 활성적 하드웨어 콘텍스트 중 E개의 최고-우선순위를 실행중 하드웨어 콘텍스트로서 유지한다.
작업(304)에서, 콘텍스트 제어기(201)는 시간-순서 기반 상에서 E개의 실행중 하드웨어 콘텍스트들 중에서 콘텍스트 전환을 개시한다. 이 명세서의 목적을 위해, "시간-순서 기반"은 시간에 기초하여 실행중 하드웨어 콘텍스트에 걸쳐 멀티-스레딩된 프로세서(103)의 처리 능력을 할당하는 자원 할당 시스템으로 정의된다. 시간-순서 기반 상에서의 콘텍스트 전환은 여러 파인-그레인드 멀티-스레딩된 프로세서들 중에서 공통적이다.
시간-순서 기반 상에서의 콘텍스트 전환의 일례는 한 명령 한 명령 기반 상에서의 전환이다. 시간-순서 기반 상에서의 콘텍스트 전환의 다른 예는 N*E개의 연속-실행 명령들의 각각의 세트 내의 N개의 명령은 E개의 실행중 하드웨어 콘텍스트들 각각으로부터이며, 여기서 N은 양의 정수이고 N=1이다. N이 1이면, 이는 한 명령 한 명령 기반 상에서의 전환과 등가이다.
예시적 실시예에 따르면, 실행중 하드웨어 콘텍스트가 병렬적으로 처리될 수 있는 멀티-스레딩된 프로세서(103)보다 적으면(즉, E < C), E개의 실행중 하드웨어 콘텍스트 각각은 멀티-스레딩된 프로세서(103)의 처리 능력의 1/C를 수신하고 멀티-스레딩된 프로세서(103)의 처리 능력의 (C-E)/CE개의 실행중 하드웨어 콘텍스트들 중 어느 것에 의해서도 사용되지 않는다. 이는 각각의 스레드가 균일한 처리 시간을 달성하기 때문에 이로우며, 이는 (1) 외부 관련 시간 구획(예를 들어, 네트워크 인터-프레임 공간 등)이 일련의 명령에 의해 직접적으로 생성되는 응용에서 및 (2) 저전력 응용에서 이롭다.
한 명령 한 명령 기반 상에서의 콘텍스트 전환 및 E개의 실행중 하드웨어 콘텍스트들 각각이 멀티-스레딩된 프로세서(103)의 처리 능력의 1/C를 수신하는 것의 한 잇점은 명령 실행 속도가 메모리 액세스와 동기화될 수 있다는 것이다. 예를 들어, 예시적 실시예의 경우, 메모리는 C개의 메모리 뱅크로 분할되고 각각의 스레드에 대한 데이터는 상이한 뱅크에 저장된다. 이들 경우, 메모리의 액세스 시간은 단지 프로세서(103)가 C개의 명령을 실행하는데 요구되는 시간 이하면 된다.
그러나 이 명세서를 읽은 후, E개의 실행중 하드웨어 콘텍스트 각각이 멀티-스레딩된 프로세서(103)의 처리 능력의 1/E를 수신하는 본 발명의 대안적 실시예를 어떻게 제작하고 사용하는지가 당업자들에게 명백해질 것이다. 이는 그것이 각각의 스레드의 보다 빠른 처리 및 외부 이벤트에 대한 보다 낮은 응답 시간을 달성하기 때문에 이롭다.
전술된 실시예는 단지 본 발명을 예시할 뿐이며 전술된 실시예의 여러 변형이 본 발명의 영역으로부터 벗어나지 않으면서 당업자에 의해 고안될 수 있다는 것이 이해될 것이다. 이에 따라 이러한 변형이 다음의 청구항 및 그들의 등가물의 영역 내에 포함될 수 있도록 의도된다.

Claims (15)

  1. (a) H개의 하드웨어 콘텍스트들(hardware contexts)로서, 각각이 멀티-스레딩된 프로세서(multi-threaded processor)의 하나의 스레드의 실행 상태를 저장할 수 있는, 상기 H개의 하드웨어 콘텍스트들; 및
    (b) 콘텍스트 제어기를 포함하고, 상기 콘텍스트 제어기는,
    (ⅰ) 우선 순위를 갖는 A개의 하드웨어 콘텍스트들 각각을 활성화시키고,
    (ⅱ) EAC 중 작은 것과 동일하고, C는 상기 멀티-스레딩된 프로세서에서 병렬적으로(concurrently) 실행중인 하드웨어 콘텍스트들의 최대 개수와 동일할 때, 상기 A개의 활성적 하드웨어 콘텍스트들 중 E개의 최고 우선순위를 실행중 하드웨어 콘텍스트들로서 유지하고,
    (ⅲ) 시간-순서 기반 상에서 상기 E개의 실행중 하드웨어 콘텍스트들 중의 상기 멀티-스레딩된 프로세서 내에서 콘텍스트 전환을 개시하기 위한 것이고,
    CH는 양의 정수들이고 2 < C < H이고;
    AE는 음이 아닌 정수들이고 E = A = H인, 장치.
  2. 제 1 항에 있어서,
    상기 시간-순서 기반은 한 명령 한 명령 기반(instruction-by-instruction basis)인, 장치.
  3. 제 1 항에 있어서,
    N*E개의 연속 실행 명령들의 각각의 세트 내의 N개의 명령들은 상기 E개의 실행중 하드웨어 콘텍스트들의 각각으로부터 나오고, N은 양의 정수인, 장치.
  4. 제 3 항에 있어서,
    N=1인, 장치.
  5. 제 1 항에 있어서,
    상기 E개의 실행중 하드웨어 콘텍스트들 각각은 상기 멀티-스레딩된 프로세서의 처리 능력의 1/E을 수신하는, 장치.
  6. 제 1 항에 있어서,
    상기 E개의 실행중 하드웨어 콘텍스트들 각각은 상기 멀티-스레딩된 프로세서의 처리 능력의 1/C을 수신하는, 장치.
  7. 제 1 항에 있어서,
    (c) C개의 메모리 뱅크들(memory banks)로서 구성된 메모리로서, 상기 메모리의 액세스 시간은 상기 멀티-스레딩된 프로세서가 C개의 명령들을 실행하는데 요구되는 시간보다 적거나 같은 상기 메모리를 더 포함하는, 장치.
  8. (ⅰ) H개의 하드웨어 콘텍스트들로서, 각각이 멀티-스레딩된 프로세서의 하나의 스레드의 실행 상태를 저장할 수 있는, 상기 H개의 하드웨어 콘텍스트; 및
    (ⅱ) 각각의 명령 후, A개의 활성적 하드웨어 콘텍스트들 중 E개의 최고 우선순위 중의 상기 멀티-스레딩된 프로세서 내에서 콘텍스트를 전환하기 위한 콘텍스트 제어기로서, EAC 중 작은 것과 동일하고, C는 상기 멀티-스레딩된 프로세서에서 병렬적으로 실행중인 하드웨어 콘텍스트들의 최대 개수와 동일한, 상기 콘텍스트 제어기를 포함하고,
    CH는 양의 정수들이고 2 < C < H이고;
    AE는 음이 아닌 정수들이고 E = A = H인, 장치.
  9. 제 8 항에 있어서,
    N*E개의 연속 실행 명령들의 각각의 세트 내의 N개의 명령들은 상기 E개의 실행중 하드웨어 콘텍스트들의 각각으로부터 나오고, N은 양의 정수인, 장치.
  10. 제 9 항에 있어서,
    N=1인, 장치.
  11. 제 8 항에 있어서,
    상기 E개의 실행중 하드웨어 콘텍스트들 각각은 상기 멀티-스레딩된 프로세서의 처리 능력의 1/E을 수신하는, 장치.
  12. 제 8 항에 있어서,
    상기 E개의 실행중 하드웨어 콘텍스트들 각각은 상기 멀티-스레딩된 프로세서의 처리 능력의 1/C을 수신하는, 장치.
  13. 제 8 항에 있어서,
    (c) C개의 메모리 뱅크들로서 구성된 메모리로서, 상기 메모리의 액세스 시간은 상기 멀티-스레딩된 프로세서가 C개의 명령들을 실행하는데 요구되는 시간보다 적거나 같은 상기 메모리를 더 포함하는, 장치.
  14. (ⅰ) H개의 하드웨어 콘텍스트들로서, 각각이 멀티-스레딩된 프로세서의 하나의 스레드의 실행 상태를 저장할 수 있는, 상기 H개의 하드웨어 콘텍스트; 및
    (ⅱ) 시간-순서 기반 상에서 E개의 실행중 하드웨어 콘텍스트들 중의 상기 멀티-스레딩된 프로세서 내에서 콘텍스트를 전환하기 위한 콘텍스트 제어기를 포함하고,
    상기 E개의 실행중 하드웨어 콘텍스트들의 각각은 상기 멀티-스레딩된 프로세서의 처리 능력의 1/C을 수신하고,
    상기 멀티-스레딩된 프로세서의 처리 능력의 (C-E)/C는 상기 E개의 실행중 하드웨어 콘텍스트들 중 어느 것에 의해서도 사용되지 않고,
    EAC 중 작은 것과 동일하고, C는 상기 멀티-스레딩된 프로세서에서 병렬적으로 실행중인 하드웨어 콘텍스트들의 최대 개수와 동일하고,
    E는 음이 아닌 정수이고, C 및 H는 양의 정수들이고, 2 = E < C < H인, 장치.
  15. 제 14 항에 있어서,
    상기 시간-순서 기반은 명령-바이-명령(instruction-by-instruction) 기반인, 장치.
KR1020087006004A 2005-09-13 2006-09-12 멀티-스레딩된 프로세서 구조 KR101279343B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71680605P 2005-09-13 2005-09-13
US60/716,806 2005-09-13
US11/470,721 2006-09-07
US11/470,721 US8046567B2 (en) 2005-09-13 2006-09-07 Multi-threaded processor architecture
PCT/US2006/035541 WO2007033203A2 (en) 2005-09-13 2006-09-12 Multi-threaded processor architecture

Publications (2)

Publication Number Publication Date
KR20080043349A KR20080043349A (ko) 2008-05-16
KR101279343B1 true KR101279343B1 (ko) 2013-07-04

Family

ID=37865529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087006004A KR101279343B1 (ko) 2005-09-13 2006-09-12 멀티-스레딩된 프로세서 구조

Country Status (2)

Country Link
KR (1) KR101279343B1 (ko)
WO (1) WO2007033203A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558924B2 (en) 2014-05-23 2020-02-11 DataRobot, Inc. Systems for second-order predictive data analytics, and related methods and apparatus
US9798582B2 (en) 2015-10-22 2017-10-24 International Business Machines Corporation Low latency scheduling on simultaneous multi-threading cores
EP3529755A1 (en) * 2016-10-21 2019-08-28 Datarobot, Inc. Systems for predictive data analytics, and related methods and apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942668B1 (ko) 2001-12-20 2010-02-17 샌드브리지 테크놀로지스, 인코포레이티드 멀티스레딩된 프로세서 및 이를 포함하는 프로세서 시스템
KR100980536B1 (ko) 2002-10-11 2010-09-06 샌드브리지 테크놀로지스, 인코포레이티드 멀티스레디드 프로세서에서 스레드-방식 메모리 액세스를위한 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205468B1 (en) * 1998-03-10 2001-03-20 Lucent Technologies, Inc. System for multitasking management employing context controller having event vector selection by priority encoding of contex events
US6986141B1 (en) * 1998-03-10 2006-01-10 Agere Systems Inc. Context controller having instruction-based time slice task switching capability and processor employing the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942668B1 (ko) 2001-12-20 2010-02-17 샌드브리지 테크놀로지스, 인코포레이티드 멀티스레딩된 프로세서 및 이를 포함하는 프로세서 시스템
KR100980536B1 (ko) 2002-10-11 2010-09-06 샌드브리지 테크놀로지스, 인코포레이티드 멀티스레디드 프로세서에서 스레드-방식 메모리 액세스를위한 방법 및 장치

Also Published As

Publication number Publication date
WO2007033203A3 (en) 2007-05-24
KR20080043349A (ko) 2008-05-16
WO2007033203A2 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
US7412590B2 (en) Information processing apparatus and context switching method
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US10706496B2 (en) Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor
US9043806B2 (en) Information processing device and task switching method
KR20060096186A (ko) 프로세서 및 정보처리 방법
US20150121387A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
US8141076B2 (en) Cell processor methods and apparatus
CN107577523B (zh) 一种任务执行的方法及装置
US10877548B2 (en) Context switches with processor performance states
WO2013095570A1 (en) Instruction that specifies an application thread performance state
CN105683905A (zh) 在多核心处理器中并行功能的高效率硬件分派及相关的处理器系统、方法及计算机可读媒体
CN108021434A (zh) 数据处理装置及其处理数据的方法、介质、存储控制器
JP4609113B2 (ja) プロセッサ
KR101279343B1 (ko) 멀티-스레딩된 프로세서 구조
CN100440153C (zh) 处理器
US10162636B2 (en) Control apparatus, integrated circuit and management method for stack
US20160335127A1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (pcd)
CN102193828B (zh) 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目
JP2008262451A (ja) メモリ電源管理装置及びメモリ電源管理方法
CN114116220B (zh) 一种gpu共享控制方法、gpu共享控制装置及存储介质
US8046567B2 (en) Multi-threaded processor architecture
CN107562527B (zh) 一种rtos上的smp的实时任务调度方法
US10324752B2 (en) Response times based on application states
WO2006011189A1 (ja) 並列計算機
US20140298352A1 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180601

Year of fee payment: 6