KR100594256B1 - 동시 다중 쓰레딩 프로세서 회로, 동작하는 쓰레드들의수에 기초하여 다른 성능레벨들에서 동작하도록 구성되는컴퓨터 프로그램 제품 및 이들을 동작시키는 방법 - Google Patents
동시 다중 쓰레딩 프로세서 회로, 동작하는 쓰레드들의수에 기초하여 다른 성능레벨들에서 동작하도록 구성되는컴퓨터 프로그램 제품 및 이들을 동작시키는 방법 Download PDFInfo
- Publication number
- KR100594256B1 KR100594256B1 KR1020040011337A KR20040011337A KR100594256B1 KR 100594256 B1 KR100594256 B1 KR 100594256B1 KR 1020040011337 A KR1020040011337 A KR 1020040011337A KR 20040011337 A KR20040011337 A KR 20040011337A KR 100594256 B1 KR100594256 B1 KR 100594256B1
- Authority
- KR
- South Korea
- Prior art keywords
- performance level
- smt processor
- processor
- threads
- threshold
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004590 computer program Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 134
- 230000004044 response Effects 0.000 claims description 29
- 230000000630 rising effect Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 23
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- A—HUMAN NECESSITIES
- A41—WEARING APPAREL
- A41D—OUTERWEAR; PROTECTIVE GARMENTS; ACCESSORIES
- A41D19/00—Gloves
- A41D19/015—Protective gloves
- A41D19/01547—Protective gloves with grip improving means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Textile Engineering (AREA)
- Multimedia (AREA)
- Power Sources (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
SMT 프로세서에서 쓰레드들의 동작과 관련되는 프로세싱 회로들이 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 다른 성능레벨들에서 동작하도록 구성될 수 있다. 예컨대, 본 발명의 일부 실시예들에서는 SMT 프로세서에서 쓰레드의 동작과 관련된 프로세싱 회로들, 즉 플로우팅 포인트 유닛 또는 데이터 캐쉬와 같은 프로세싱 회로들이 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 고전력 모드 또는 저전력 모드의 하나로 동작할 수 있다. 또한, SMT 프로세서에 의해 동작되는 쓰레드들의 수가 증가하면 상기 프로세싱 회로들의 성능레벨들이 감소될 수 있다. 이에 따라 SMT 프로세서의 구조적 이점들이 제공되어 쓰레드들과 관련된 프로세싱 회로들에 의해 소모되는 전력량이 감소될 수 있다. 관련되는 컴퓨터 프로그램 제품들 및 방법들도 개시된다.
Description
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래의 동시 다중 쓰레딩(SMT) 프로세서 구조를 나타내는 블록도이다.
도 2는 본 발명에 따른 SMT 프로세서의 실시예를 나타내는 블록도이다.
도 3은 본 발명에 따른 쓰레드 관리 회로의 실시예를 나타내는 블록도이다.
도 4는 본 발명에 따른 성능레벨 제어회로의 실시예를 나타내는 블록도이다.
도 5는 본 발명에 따른 성능레벨 제어회로의 실시예를 나타내는 플로우차트이다.
도 6은 본 발명에 따른 캐쉬 메모리의 실시예를 나타내는 블록도이다.
도 7은 본 발명에 따른 SMT 프로세서의 다른 실시예를 나타내는 블록도이다.
도 8은 본 발명에 따른 SMT 프로세서의 또 다른 실시예를 나타내는 블록도이 다.
도 9는 본 발명에 따른 SMT 프로세서의 또 다른 실시예를 나타내는 블록도이다.
도 10은 본 발명에 따른 성능레벨 제어회로의 다른 실시예를 나타내는 블록도이다.
도 11은 본 발명에 따른 성능레벨 제어회로의 다른 실시예를 나타내는 플로우차트이다.
본 발명은 컴퓨터 프로세서 구조에 관한 것으로, 특히 동시 다중 쓰레딩(Simultaneous Multi-Threading, SMT) 컴퓨터 프로세서들, 관련된 컴퓨터 프로그램 제품들, 및 이들을 동작시키는 방법들에 관한 것이다.
동시 다중 쓰레딩(Simultaneous Multi-Threading, SMT)는 각 싸이클 동안에 다수의 독립적인 쓰레드들에게 명령들을 내보내는 것(issue)을 허락하는 하드웨어 다중 쓰레딩을 이용하는 프로세서 구조이다. 어느 주어진 싸이클에서 단지 하나의 하드웨어 상황(context)(즉 하나의 쓰레드)만이 활성화되는 다른 하드웨어 다중 쓰레디드(multithreaded) 구조들과 달리, SMT 구조는 모든 쓰레드 상황들(contexts)에게 프로세서 자원들을 동시에 공유하는 것을 허락할 수 있다.
SMT 프로세서는, SMT 프로세서 내에서 긴 레이턴시(long latency) 동작들의 효과들을 감소시킬 수도 있는 명령들을 수행하기 위해 낭비된(wasted) 싸이클들을 활용할 수 있다. 또한 쓰레드들의 수가 증가함에 따라 성능(performance)도 증가할 수 있으나 반면에 SMT 프로세서에 의해 소모되는 전력이 증가할 수 있다.
종래의 SMT 프로세서의 블록도가 도 1에 개시되어 있다. 도 1의 종래의 SMT 프로세서의 동작은 참고문헌(Dean M. Tullsen, Susan J. Egger, Henry M. Levy, Jack L. Lo, Rebecca L. Stamm, "Exploiting Choice: Instruction Fetch and issue on an Implementable Simultaneous Multithreading Processor", 23rd Annual International Symposium on Computer Architecture, pp. 191-202, 1996)에 상세히 개시되어 있다. 종래의 SMT 프로세서의 구조 및 동작은 당업계에서 잘 알려진 것이므로 여기에서 상세한 설명은 생략된다.
본 발명이 이루고자하는 기술적 과제는, 전력소모를 감소시키면서 성능도 증가시킬 수 있는 동시 다중 쓰레딩(SMT) 프로세서를 제공하는 데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 상기 동시 다중 쓰레딩 프로세서를 동작시키는 방법을 제공하는 데 있다.
본 발명이 이루고자하는 또 다른 기술적 과제는, 상기 동시 다중 쓰레딩 프로세서를 동작시키는 컴퓨터 프로그램 제품(product)을 제공하는 데 있다.
후술되는 본 발명에 따른 실시예들은, SMT 프로세서에 의해 동작되는 쓰레드들의 수에 기초하여 다른 성능레벨들에서 동작하는 프로세싱(processing) 회로들, 컴퓨터 프로그램 제품들, 및 방법들을 제공할 수 있다.
본 발명에 따른 일부 실시예들에서는, SMT 프로세서에서 쓰레드 동작과 관련되는 프로세싱 회로들, 즉 플로우팅 포인트 유닛(floating point unit) 또는 데이터 캐쉬(data cache)와 같은 프로세싱 회로들이 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 고전력 모드(high power mode) 및 저전력 모드(low power mode)중 하나로 동작할 수 있다. 또한, 상기 SMT 프로세서에 의해 동작되는 쓰레드들의 수가 증가하면 상기 프로세싱 회로들의 성능레벨들이 감소될 수 있다. 그럼으로써 상기 SMT 프로세서의 구조적 이점들(benefits)이 제공되어 쓰레드들과 관련되는 프로세싱 회로들에 의해 소모되는 전력량이 감소될 수 있다. 또한, 상기 SMT 프로세서는 동일한 전력으로 그러나 더 높은 성능에서 동작할 수 있고 또는 종래의 SMT 프로세서들보다 더 많은 전력을 소모하지만 더 높은 성능레벨들에서 동작할 수 있다.
본 발명에 따른 일부 실시예들에서는, 상기 프로세싱 회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때 제1성능레벨에서 동작하도록 구성되고 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값보다 클 때에는 제2성능레벨에서 동작하도록 구성될 수 있다.
본 발명에 따른 일부 실시예들에서는, 성능레벨 제어회로가 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 상기 프로세싱 회로에 대한 성능레벨을 제공하도록 구성될 수 있다. 본 발명에 따른 일부 실시예들에서는, 상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문 턱값보다 작거나 같을 때 상기 프로세싱 회로에 제공되는 상기 성능레벨을 제1성능레벨로 증가시킬 수 있다. 상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값을 초과할 때에는 상기 프로세싱 회로에 제공되는 상기 성능레벨을 상기 제1성능레벨보다 낮은 제2성능레벨로 감소시킬 수 있다.
본 발명에 따른 일부 실시예들에서는, 상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 제1문턱값보다 큰 제2문턱값을 초과할 때에는 상기 프로세싱 회로에 제공되는 상기 성능레벨을 상기 제2성능레벨보다 낮은 제3성능레벨로 더 감소시킨다.
성능레벨 가변에 대한 여러 가지 실시예들이 본 발명에 따라 제공될 수 있다. 예컨대, 본 발명에 따른 일부 실시예들에서는, 상기 프로세싱 회로는 태그 메모리 및 데이터 메모리를 포함하는 캐쉬 메모리일 수 있다. 여기에서 상기 데이터 메모리는 상기 캐쉬 메모리 회로가 제1성능레벨에서 동작할 때 상기 태그 메모리에 대한 액세스와 동시에 저장된 데이터(cached data)를 제공하도록 구성된다.
상기 데이터 메모리는 상기 캐쉬 메모리 회로가 상기 제1성능레벨보다 낮은 제2성능레벨에서 동작할 때 상기 태그 메모리에서의 히트(hit)에 응답하여 저장된 데이터(cached data)를 제공하도록 구성될 수 있다.
본 발명에 따른 일부 실시예들에서는, 상기 캐쉬 메모리는 데이터를 저장하도록 구성되는 데이터 캐쉬 메모리 및 명령들을 저장하도록 구성되는 명령 캐쉬 메모리중 적어도 하나일 수 있다. 본 발명에 따른 일부 실시예들에서는, 상기 데이터 메모리는 상기 캐쉬 메모리 회로가 상기 제2성능레벨에서 동작할 때에는 상기 태그 메모리에서의 미스(miss)에 응답하여 저장된(cached) 데이터를 제공하지 않도록 구성될 수 있다.
본 발명에 따른 일부 실시예들에서는, 상기 프로세싱 회로는 플로우팅 포인트 유닛(unit)일 수 있다. 본 발명에 따른 일부 실시예들에서는, 상기 플로우팅 포인트 유닛은 상기 SMT 프로세서에 의해 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때 제1성능레벨에서 동작하도록 구성되는 제1플로우팅 포인트 유닛일 수 있다. 그리고 상기 SMT 프로세서는 상기 SMT 프로세서에 의해 동작되는 쓰레드들의 수가 상기 문턱값보다 클때에는 상기 제1성능레벨보다 낮은 제2성능레벨에서 동작하도록 구성되는 제2플로우팅 포인트 유닛을 더 구비할 수 있다.
본 발명에 따른 일부 실시예들에서는, 상기 성능레벨 제어회로는 상기 SMT 프로세서에서 각각 생성되고 완료되는 쓰레드들에 응답하여 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키거나 감소시키도록 구성될 수 있다.
본 발명에 따른 일부 실시예들에서는, 제2프로세싱 회로는 상기 문턱값보다 더 크게 증가되고 상기 SMT 프로세서에서 현재 동작되는 쓰레드들의 수에 응답하여 상기 제1성능레벨보다 낮은 제2성능레벨에서 동작하도록 구성된다.
본 발명에 따른 일부 실시예들에서는, 상기 성능레벨 제어회로는 문턱값보다 작거나 같은 값으로부터 상기 문턱값보다 더 큰 값까지 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키기 위해서 새로운 쓰레드의 생성에 응답하여 상기 적어도 하나의 프로세싱 회로에 제공되는 성능레벨을 감소시키도록 구성될 수 있다. 본 발명에 따른 일부 실시예들에서는, 상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 복수개의 상승하는 문턱값들의 각각을 초과할 때 상기 프로세싱 회로의 성능레벨을 복수개의 하강하는 성능레벨들의 하나로 감소시키도록 구성될 수 있다.
본 발명에 따른 일부 실시예들에서는, 상기 성능레벨 제어회로는 제1프로세싱 회로에 대해서는 제1성능레벨을 유지하고 그리고 문턱값보다 작거나 같은 값으로부터 상기 문턱값보다 더 큰 값까지 증가하는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 응답하여 제2프로세싱 회로에 상기 제1성능레벨보다 낮은 제2성능레벨을 제공하도록 구성될 수 있다.
본 발명에 따른 다른 실시예들에서는, 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 상기 SMT 프로세서 내의 프로세싱 회로들에 성능레벨을 제공하도록 구성될 수 있다.
본 발명에 따른 또 다른 실시예들에서는, 쓰레드 관리회로는 쓰레드들이 생성될 때 상기 SMT 프로세서에서 동작되는 쓰레드들에 상기 SMT 프로세서와 관련된 프로세싱 회로들을 할당하도록 구성될 수 있다. 성능레벨 제어회로는, 적어도 하나의 문턱값에 비교되어 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 복수개의 성능레벨들의 하나를 상기 프로세싱 회로들에 제공하도록 구성될 수 있다.
본 발명에 따른 또 다른 실시예들에서는, SMT 프로세서와 관련되는 캐쉬 메모리는 태그 메모리, 및 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하 여 상기 태그 메모리와 동시에 액세스되거나 또는 순차적으로 액세스되는 데이터 메모리를 구비할 수 있다.
본 발명과 본 발명의 동작 상의 잇점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
본 발명은 회로들, 컴퓨터 프로그램 제품들, 및 방법들로서 실시될 수 있다. 따라서 본 발명은 하드웨어 실시형태, 소프트웨어 실시형태, 또는 소프트웨어와 하드웨어를 결합한 실시형태를 가질 수 있다. 또한, 본 발명은 컴퓨터 프로그램 코드를 갖는 컴퓨터 저장 매체(computer-usable storage medium) 상의 컴퓨터 프로그램 제춤의 형태를 가질 수도 있다. 컴퓨터 저장 매체로서 하드 디스크들, CD-ROM들, 광 저장장치들, 및 마그네틱 저장장치들이 이용될 수 있다.
본 발명에 따른 동작들을 수행하기 위한 컴퓨터 프로그램 코드 또는 "코드"는 JAVA Smalltalk 또는 C++, JavaScript, Visual Basic, TQSL, Perl과 같은 목적지향(object oriented) 프로그램 언어 또는 다양한 다른 프로그램 언어들로 작성될 수 있다. 본 발명의 소프트웨어 실시예들은 특정한 프로그램 언어를 가지고 구현될 필요는 없다. 코드의 일부들은 중개서버(intermediary server)에 의해 이용되는 한 개 이상의 시스템들상에서 완전히 수행될 수 있다.
코드는 한 개 이상의 컴퓨터 시스템들상에서 완전히 수행될 수 있고 또는 서버상에서 일부가 그리고 클라인트(client) 장치상에서 일부가 수행될 수도 있으며 또는 통신 네크워크에서 중간점에 있는 대리(proxy) 서버상에서 수행될 수도 있다. 클라이언트 장치는 LAN 또는 WAN(예컨대 인터넷트) 상의 서버에 연결될 수 있고 또는 연결이 인터넷트를 통해(예컨대 인터넷트 서비스 제공자(Internet Service Provider)를 경유하여) 이루어질 수도 있다. 본 발명은 여러 가지 형태의 컴퓨터 네트워크들상에서 여러 가지 프로토콜들(protocols)을 사용하여 실시될 수 있다.
본 발명은 본 발명의 실시예들에 따른 방법들, 시스템들, 및 컴퓨터 프로그램 제품들을 나타내는 블록도들 및 플로우 차트들을 참조하여 아래에서 설명된다. 블록도들과 플로우 차트들의 각 블록은 컴퓨터 프로그램 명령들에 의해 수행될 수 있음은 자명하다. 이들 컴퓨터 프로그램 명령들은, 이 명령들이 블록도 및/또는 플로우 차트에 기술된 기능들을 수행하기 위한 수단들을 생성하도록, 동시 다중 쓰레딩(SMT) 프로세서 회로, 특정목적 컴퓨터, 또는 다른 프로그램 가능한 데이터 처리장치에 제공될 수 있다.
이들 컴퓨터 프로그램 명령들은 컴퓨터 독출가능 메모리(computer-readable memory)에 저장될 수 있다. 이 컴퓨터 독출가능 메모리는, 이 컴퓨터 독출가능 메모리에 저장된 명령들이 블록도 및/또는 플로우차트에 기술된 기능들을 수행하는 명령수단을 포함하는 제조품을 생성하도록, 컴퓨터 또는 다른 프로그램 가능한 데이터 처리장치를 지시(direct)할 수 있다.
컴퓨터 프로그램 명령들은, 일련의 동작 단계들이 컴퓨터 및/또는 다른 프로 그램 가능한 장치상에서 수행되도록, SMT 프로세서 회로 또는 다른 프로그램 가능한 데이터 처리장치에 로드(load)될 수 있다. SMT 프로세서 회로 또는 다른 프로그램 가능한 데이터 처리장치에 로드된 이 명령들은 블록도 및/또는 플로우차트에 기술된 기능들을 수행하는 단계들을 제공할 수 있다.
본 발명에 따른 실시예들은 SMT 프로세서에서 쓰레드들의 동작과 관련된 프로세싱 회로들을 제공할 수 있다. 이 프로세싱 회로들은 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 다른 성능 레벨들에서 동작하도록 구성된다. 다른 성능레벨들은 회로들의 다른 동작속도들 및/또는 정확성의 다른 레벨들을 포함할 수 있다. 본 발명에 따른 일부 실시예들에서는, 프로세싱 회로들이 다른 성능레벨들을 제공하기 위해서 다른 클럭속도에서 동작할 수 있고 및/또는 다른 회로형태들을 사용할 수 있다. 예컨대, 본 발명에 따른 일부 실시예들에서는, SMT 프로세서에서 쓰레드의 동작과 관련된 플로우팅 포인트 유닛(floating point unit) 또는 데이터 캐쉬와 같은 프로세싱 회로들은, SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 고(high) 클럭속도에서의 고 전력모드 또는 저(low) 클럭속도에서의 저 전력모드중 하나에서 동작할 수 있다. 또한 SMT 프로세서에 의해 동작되는 쓰레드들의 수가 증가할 때, 프로세싱 회로들의 성능레벨들은 감소될 수 있고 따라서 SMT 프로세서의 구조적 이점들이 제공되어 쓰레드들과 관련된 프로세싱 회로들에 의해 소모되는 전력양이 감소될 수 있다.
본 발명에 따른 실시예들에서는 다수의 쓰레드들이 서로 병렬적으로 수행되는 것은 자명하다. 여기에서 사용된 바와 같이, "쓰레드"는 관련된 명령들 및 데이 터를 갖는 별도의 프로세스일 수 있다. 쓰레드는 다수의 프로세스들을 갖는 병렬 컴퓨터 프로그램의 일부에 해당하는 프로세스를 의미할 수 있다. 또한 쓰레드는 다른 프로그램들과 독립적으로 동작하는 별도의 컴퓨터 프로그램을 의미할 수도 있다. 각 쓰레드는 예컨대 관련된 명령들, 데이터, 프로그램 카운터, 및/또는 레지스터들에 대한 각각의 상태들에 의해 정의되는 관련된 상태(associated state)를 가질 수 있다. 쓰레드에 대한 관련된 상태는 프로세서에 의해 수행되는 쓰레드에 대한 충분한 정보를 포함할 수 있다.
본 발명에 따른 일부 실시예들에서는, 성능레벨 제어회로는 SMT 프로세서에서 생성된 쓰레드들에 할당되는 프로세싱 회로들에 각각의 성능레벨들을 제공하도록 구성된다. 예컨대, 성능레벨 제어회로는 프로세싱 회로가 고전력 모드에서 동작할 수 있도록 제1성능레벨을 제공하고 저전력 모드에서 동작할 수 있도록 제2성능레벨을 제공할 수 있다. 본 발명에 따른 또 다른 실시예들에서는, 중간의 성능레벨(즉 고전력과 저전력 사이의 성능레벨들)이 성능레벨 제어회로에 의해 제공된다.
본 발명에 일부 실시예들에서는, 다른 성능레벨들에서 동작하는 프로세싱 회로들이 태그 메모리와 데이터 메모리를 포함하는 캐쉬 메모리일 수 있다. 캐쉬 메모리가 제1성능레벨(즉 고전력 모드)에서 동작할 때는, 태그 메모리와 데이터 메모리는 태그 메모리에 대한 액세스가 히트(hit)이든지 그렇지 않든지에 무관하게 동시에 액세스될 수 있다. 데이터 메모리의 동시 액세스는, 태그 메모리에서의 히트율(hit rate)이 높아질 수 있기 때문에 더 큰 성능을 제공할 수 있다. 또는, 캐쉬 메모리는, 데이터 메모리가 태그 메모리에서의 히트에 응답해서만 액세스되는 제2성능레벨(즉 저전력 모드)에서 동작할 수 있다. 그러므로 태그 미스(miss)가 일어나는 경우에는, 데이터 메모리를 액세스하는 것과 관련되는 전력소모의 일부를 줄일 수 있다.
본 발명에 따른 또 다른 실시예들에서는, 쓰레드들의 동작과 관련된 프로세싱 회로들은 명령 캐쉬일 수 있고 플로우팅 포인트 회로들 또는 정수/로드-스토어(integer/load-store) 회로들과 같은 다른 형태의 프로세싱 회로들일 수 있다. 게다가, 이들 프로세싱 회로들 각각은 다른 성능레벨들에서 동작할 수 있다. 예컨대, 본 발명에 따른 일부 실시예들에서는, 캐쉬 메모리, 명령 캐쉬, 및 플로우팅 포인트 회로들, 및 정수/로드-스토어 회로들이 동시에 서로 다른 성능레벨에서 동작할 수 있다.
본 발명에 따른 또 다른 실시예들에서는, 같은 형태의 프로세싱 회로들(플로우팅 포인트 회로들 및 정수/로드-스토어 회로들과 같은)이 이 회로들의 일부가 제1성능레벨에서 동작하고 다른 일부는 제2성능레벨에서 동작하도록 다른 성능 카테고리들로 분리될 수 있다. 예컨대, 본 발명에 따른 일부 실시예들에서는, 플로우팅 포인트 회로들의 일부가 고전력모드에서 동작하도록 구성되고 반면에 다른 플로우팅 포인트 회로들은 저전력 모드에서 동작하도록 구성된다.
도 2는 본 발명에 따른 SMT 프로세서의 일실시예를 나타내는 블록도이다.
도 2에 따르면, 새로운 쓰레드가 SMT 프로세서(200)에서 생성될 때, 쓰레드 관리회로(205)는 새로이 생성된 쓰레드가 사용할 수 있도록 한 셋트(set)의 프로세 싱 회로들을 할당한다. 할당된 프로세싱 회로들은 프로그램 카운터(215), 한 셋트의 플로우팅 포인트 레지스터들(245), 및 한 셋트의 정수(integer) 레지스터들(250)을 포함할 수 있다. 또한 다른 프로세싱 회로들도 새로이 생성된 쓰레드에 할당될 수 있다. 쓰레드가 완료되면, 할당된 프로세싱 회로들은 순차적으로 생성되는 쓰레드들에 재할당될 수 있도록 해방(release)될 수 있다.
페치 회로(210)는 할당된 프로그램 카운터(215)에 의해 제공되는 위치에 근거하여 명령 캐쉬(220)로부터 명령을 페치하고 이 명령은 디코더(225)에 제공된다. 디코더(225)는 디코드된 명령을 레지스터 리내이밍(renaming) 회로(230)로 출력한다. 레지스터 리내이밍 회로(230)에 의해 제공되는 명령의 형태에 따라, 개명된(renamed) 명령은 레지스터 리내이밍 회로(230)에 의해 플로우팅 포인트 명령 큐(queue)(235) 또는 정수 명령 큐((240)에 제공된다. 예컨대, 레지스터 래내이밍 회로(230)에 의해 제공되는 명령의 형태가 플로우팅 포인트 명령이라면 그 명령은 플로우팅 포인트 명령 큐(235)에 저장되고, 반면에 레지스터 리내이밍 회로(230)에 의해 제공되는 명령이 정수 명령이라면 그 명령은 정수 명령 큐(240)에 저장된다.
플로우팅 포인트 명령 큐(235) 또는 정수 명령 큐(240)로부터의 명령들은 각각의 플루우팅 포인트 회로(255) 또는 정수/로드-스토어 회로(260)에 의한 수행을 위해 관련 레지스터에 저장된다. 특히, 플로우팅 포인트 명령들은 플로우팅 포인트 명령 큐(235)로부터 한 셋트의 플로우팅 포인트 레지스터들(245)로 전달된다. 플로우팅 포인트 레지스터들(245) 내의 명령들은 플로우팅 포인트 회로들(255)에 의해 액세스될 수 있다. 또한 플로우팅 포인트 회로들(255)은, 플로우팅 포인트 회로들(255)에 의해 수행되는 명령들이 데이터 캐쉬(265)에 저장된 데이터를 참조할 때와 같이, 데이터 캐쉬(265)에 저장된 플로우팅 포인트 데이터를 액세스할 수 있다.
정수 명령들은 정수 명령 큐(240)로부터 정수 레지스터들(250)로 전달된다. 정수/로드-스토어 회로들(260)은 그 명령들이 수행될 수 있도록 정수 레지스터들(250)에 저장된 정수 명령들을 액세스할 수 있다. 정수/로드-스토어 회로들(260)은 또한 정수 레지스터들(250)에 저장된 정수 명령들이 데이터 캐쉬(265)에 저장된 정수 데이터를 참조할 때 데이터 캐쉬(265)를 액세스할 수 있다.
본 발명의 실시예들에 따르면, 쓰레드 관리회로(205)는 데이터 캐쉬(265)에 성능레벨을 제공한다. 특히, 성능레벨은 데이터 캐쉬(265)가 제1성능레벨 또는 제2성능레벨(즉 고전력 모드 또는 저전력 모드)에서 동작할 것인지를 제어할 수 있다. 예컨대, 쓰레드 관리회로(205)는 데이터 캐쉬(265)가 고전력 모드에 동작하는 제1성능레벨을 제공할 수 있고 또는 데이터 캐쉬(265)가 저전력 모드에서 동작하는 제2성능레벨을 제공할 수 있다. 본 발명에 따른 일부 실시예들에서는 데이터 캐쉬(265)의 동작이 제1성능레벨 또는 제2성능레벨중 어느 하나에서 이루어지는 것으로 설명되지만 더 많은 성능레벨들이 사용될 수 있음은 자명하다.
도 3은 본 발명에 따른 쓰레드 관리회로들의 실시예를 나타내는 블록도이다.
도 3에 따르면, 쓰레드 관리회로(305)는 동작시스템(operating system)으로부터 또는 SMT 프로세서에서 쓰레드의 생성과 관련되는 쓰레드 발생회로로부터 정 보를 수신한다. 쓰레드 관리회로(305)는 쓰레드 할당회로(330)을 구비하며, 쓰레드 할당회로(330)는 SMT 프로세서에 의해 생성된 쓰레드가 사용하도록 프로세싱 회로들을 할당할 수 있다.
쓰레드 관리회로(305)는 또한 SMT 프로세서에 의해 생성된 쓰레드와 관련되는 프로세싱 회로들에 성능레벨을 제공하는 성능레벨 제어회로(340)을 구비한다. 성능레벨 제어회로(340)는 SMT 프로세서에 의해 현재 동작되는 쓰레들의 수에 기초하여 프로세싱 회로들에 성능레벨을 제공할 수 있다. 특히, SMT 프로세서에 의해 동작되는 쓰레드들의 수가 증가하면 성능레벨 제어회로는 SMT 프로세서에 의해 동작되는 쓰레드들과 관련되는 프로세싱 회로들에 감소하는 성능레벨들을 제공할 수 있다. 성능레벨 제어회로(340)는 SMT 프로세서에 의해 동작되는 쓰레드들의 생성 및 완료에 응답하여 내부 카운트(count)를 증가 및 감소시킴으로서 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 결정할 수 있다.
본 발명에 따른 프로세싱 회로들에 제공되는 성능레벨이 제1성능레벨(또는 고전력 모드)와 같은 디폴트(default value) 값을 가질 수 있다는 것은 자명하다. 따라서 쓰레드들이 더해지면(added), 프로세싱 회로들에 제공되는 성능레벨은 성능을 떨어뜨려서 프로세싱 회로들의 전력소모를 줄이기 위해서 감소될 수 있다. 성능레벨은 적어도 두가지 상태, 즉 제1성능레벨 및 제2성능레벨을 갖는 신호를 전송할 수 있는 신호라인을 경유하여 프로세싱 회로들에 제공될 수 있다. 예컨대, SMT 프로세서가 초기화된 후, SMT 프로세서에 의해 동작되는 쓰레드들의 수는 "0"이 될 수 있다. 여기에서 프로세싱 회로들에 제공되는 성능레벨의 디폴트 값은 제1성능레 벨(고전력 모드)이다. 쓰레드들이 더해지고 결국 문턱값을 초과하면, 성능레벨은 예컨대 어느 성능레벨이 사용되는 지를 나타내는 신호의 상태를 변경시킴으로써 제2성능레벨로 변경될 수 있다.
도 4는 본 발명에 따른 성능레벨 제어회로들의 실시예를 나타내는 블록도이다.
도 4에 따르면, 카운터 회로(405)는 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 결정하기 위해 동작시스템(oerating system) 또는 도 3을 참조하여 설명된 쓰레드 발생회로로부터 정보를 수신할 수 있다. 예컨대, 카운터 회로(405)가 새로운 쓰레드의 생성에 관하여 정보가 수신될 때 4개의 쓰레드들이 SMT 프로세서에 의해 이전에 이미 시작되었다는 것을 나타낸다면, 카운터 회로(405)는 SMT 프로세서에 의해 현재 5개의 쓰레드들이 동작된다는 것을 반영하도록 증가될 수 있다.
카운터 회로(405)는 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 비교회로(410)에 제공할 수 있다. 문턱값이 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수와 함께 비교회로(410)에 제공된다. 문턱값은 그 이상에서 성능레벨이 변화되는 쓰레드들의 수를 나타내는 프로그램 가능한 값일 수 있다. 따라서 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때에는 프로세싱 회로들에 제공되는 성능모드가 고전력 모드와 같은 제1성능레벨로 유지될 수 있다. 그러나, SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값을 초과할 때에는 SMT 프로세서에 의해 소비되는 전력을 감소시키기 위해 성능레벨이 감소 될 수 있다.
도 5는 본 발명에 따른 성능레벨 조절회로의 실시예의 동작을 나타내는 플로우 차트이다.
도 5에 따르면, SMT 프로세서가 초기화될 때 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수는 "0"이다(블록 500). SMT 프로세서에서 쓰레드들이 생성되고 완료되면, SMT 프로세서에서 현재 동작하는 쓰레드들의 수(N)은 증가 또는 감소된다(블록 505). 예컨대, 4개의 쓰레드들이 SMT 프로세서에 의해 동작되는 경우에, N의 값은 4이다. 새로운 쓰레드가 생성될 때 N의 값은 5로 증가되고 반면에 쓰레드들의 하나가 그후 완료되면 N의 값은 다시 4로 감소된다.
SMT 프로세서에서 현재 동작하는 쓰레드들의 수는 문턱값과 비교된다(블록 510). SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 작거나 같으면, 성능레벨 제어회로는 쓰레드들에 할당된 프로세싱 회로들에 제1성능레벨을 제공한다(블록 515). 예컨대, 어느 쓰레드에 할당된 프로세싱 회로가 도 2를 참조하여 설명된 캐쉬 메모리이라면, 캐쉬 메모리는 태그 메모리와 데이터 메모리가 동시에 액세스되도록 동작할 수 있다(고전력 모드에서). 반면에, SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 크다면(블록 510), 성능레벨 제어회로는 쓰레드들과 관련된 프로세싱 회로들에 제2성능레벨을 제공한다(블록 520). 예컨대, 도 2를 참조하여 위에서 설명된 실시예들에서, 제2성능레벨에서 캐쉬 메모리는 태그 메모리에서의 히트에 응답해서만 데이터 메모리가 액세스되도록 동작할 수 있다(저전력 모드에서).
도 6은 도 2에 보여진 본 발명에 따른 캐쉬 메모리의 실시예를 나타내는 블록도이다.
도 6에 따르면, 태그 메모리(610)는 데이터 메모리(620)에 저장된 데이터의 어드레스들을 저장하도록 구성된다. 태그 메모리(610)는 SMT 프로세서에 의해 작용되는 데이터와 관련된 어드레스를 이용하여 액세스된다. 태그 메모리(610)의 내용들은, SMT 프로세서에 의해 필요한 데이터가 데이터 메모리(620)에 저장되어 있는 지를 결정하기 위해 태그 비교회로(630)에 의해 상기 어드레스와 비교된다. 태그 비교회로(630)가 필요한 데이터가 데이터 메모리(620)에 저장되어 있다고 판정하면, 태그 히트가 일어난다. 그렇지 않으면, 태그 미스(miss)가 일어난다. 태그 히트가 일어나면, 출력 인에이블 회로(650)는 데이터가 데이터 메모리(620)으로부터 출력되도록 인에이블시킨다.
본 발명의 실시예들에 따르면, 성능레벨 제어회로에 의해 제공되는 성능레벨은 태그 메모리(610)과 데이터 메모리(620)가 어떻게 동작할 것인가를 제어하기 위해 이용된다. 특히, 제1성능레벨이 캐쉬 메모리에 제공되면, 데이터 메모리 인에이블 회로(640)는 태그 히트가 일어나는지 여부에 무관하게 태그 메모리(610)과 동시에 액세스되도록 데이터 메모리(620)를 인에이블시킨다. 반면에, 제2성능레벨이 캐쉬 메모리에 제공된다면, 데이터 메모리 인에이블 회로(640)는 태그 히트가 일어나지 않으면 데이터 메모리(620)가 액세스되는 것을 허용하지 않는다.
그러므로, 본 발명에 따른 실시예들에서는, 고전력 모드에서 태그 메모리(610)와 데이터 메모리(620)가 향상된 성능을 제공하기 위해서 동시에 액세 스될 수 있다. 반면에 저전력 모드에서는 데이터 메모리(620)는 태그 메모리(610)가 태그 히트가 일어났다는 것을 나타내는 경우에만 액세스되고, 그 결과 캐쉬 메모리에 의해 소비되는 전력이 감소될 수 있다.
도 7은 명령 캐쉬에 이용되는 본 발명에 따른 실시예를 나타내는 블록도이다.
도 7에 따르면, 쓰레드 관리회로(700)는 명령 캐쉬(722)를 새로운 쓰레드에 할당한다. 쓰레드 관리회로(300)에 포함된 성능레벨 제어회로는 명령 캐쉬(722)가 어떻게 동작할 것인가를 제어하기 위해서 성능레벨을 명령 캐쉬(722)에 제공할 수 있다.
특히, 명령 캐쉬(722)는 제1성능레벨에 응답하여 고전력 모드로 동작할 수 있고 제2성능레벨에 응답하여 저전력 모드로 동작하도록 구성될 수 있다. 예컨대 도 5를 참조하여 위에서 설명되었듯이 제1 및 제2성능레벨이 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 명령 캐쉬(722)에 제공될 수 있다. 또한, 명령 캐쉬(722)는 도 6을 참조하여 위에서 설명된 방식과 유사한 방식으로 다른 성능레벨에서 동작할 수 있다. 도 6에서는 데이터 메모리(620)가 저전력 모드에서의 태그 히트에 응답해서만 액세스된다. 예컨대, 연속적인 메모리 액세스들이 동일한 캐쉬 라인에 있는 것으로 판정될 때 직접 어드레싱(direct addressing)을 허락하기 위해서 다른 성능레벨들이 명령 캐쉬에 제공될 수 있다. 이러한 형태의 한정은 태그 램(RAM)의 독출 및 태그 비교가 필요치 않는 직접 어드레스드 캐쉬(direct-addressed cache)를 사용하여 적용될 수 있다. 더구나, 직접 어드레스드 캐쉬에서 는 가상(virtual) 어드레스로부터 실제(physical) 어드레스로의 변환이 역시 필요치 않을 수 있다.
도 8은 본 발명에 따른 다른 성능레벨들을 갖는 별도의 프로세싱 회로들의 실시예를 나타내는 블록도이다.
도 8에 따르면, 제1플로우팅 포인트 회로(805)는 제1성능레벨에서 동작하고 제2플로우팅 포인트 회로(815)는 제1성능레벨보다 낮은 제2성능레벨에서 동작하도록 구성될 수 있다. 다시 말해, 제1플로우팅 포인트 회로(805)는 고전력 모드에서 사용되고 제2플로우팅 포인트 회로(815)는 저전력 모드에서 사용될 수 있다.
제1 정수/로드-스토어 회로(810)은 제1성능레벨에서 동작하고 제2정수/로드-스토어 회로(820)은 제2성능레벨에서 동작하도록 구성된다. 쓰레드 관리회로(800)는 두 개의 별도의 성능레벨을 제공하도록 구성된다. 특히, 제1성능레벨은 제1플로우팅 포인트 회로(805) 및 제1정수/로드-스토어 회로(810)에 제공된다. 쓰레드 관리회로(800)에 의해 제공되는 제2성능레벨은 제2프로우팅 포인트 회로(815) 및 제2정수/로드-스토어 회로(820)에 제공된다. 따라서 제1플로우팅 포인트 회로(805) 및 제1정수/로드-스토어 회로(810)는 제1성능레벨로에서 동작하는 쓰레드들에 할당될 수 있고, 반면에 제2프로우팅 포인트 회로(815) 및 제2정수/로드-스토어 회로(820)는 제2성능레벨에서 동작하는 쓰레드들에 할당될 수 있다. 제1 및 제2성능레벨들은 쓰레드 관리회로(800)에 의해 독립적으로 또는 동시에 제공될 수 있음은 자명하다. 또한 두 개 이상의 성능레벨들이 제공될 수 있는 것처럼 두 개 이상의 별도의 플로우팅 포인트 회로들 및 정수/로드-스토어 회로들이 제공될 수 있음은 자명하다.
본 발명의 실시예들에 따르면, 제1플로우팅 포인트 회로(805) 및 제1정수/로드-스토어 회로(810)에 제공되는 제1성능레벨은 SMT 프로세서에서 동작되는 쓰레드들의 수가 제1문턱값보다 작거나 같을 때 제공될 수 있다. 제2성능레벨은 SMT 프로세서에 의해 동시에 동작되는 쓰레드들의 수가 제1문턱값을 초과할 때 제2프로우팅 포인트 회로(815) 및 제2정수/로드-스토어 회로(820)에 제공될 수 있다. 따라서, SMT 프로세서에 의해 동작되는 쓰레드들의 수가 문턱값을 초과할 때는, 이전에 존재하는 쓰레드들 및 새롭게 생성된 쓰레드들을 포함하는 모든 쓰레드들이 SMT 프로세서에 의해 소모되는 전력을 감소시키기 위해서 제2프로우팅 포인트 회로(815) 및 제2정수/로드-스토어 회로(820)를 사용할 수 있다.
본 발명에 따른 플로우팅 포인트 회로들 및 정수/로드-스토어 회로들은 다른 성능레벨들을 제공하기 위해서 다른 클럭속도들에서 동작할 수 있고 또한/또는 다른 회로형태들을 사용할 수 있다. 예컨대, 본 발명에 따른 일부 실시예들에서는, SMT 프로세서에서 쓰레드의 동작과 관련되는 플로우팅 포인트 회로는 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 고 클럭속도에서의 고전력 모드 또는 저 클럭속도에서의 저전력 모드중 하나에서 동작할 수 있다.
도 9는 쓰레드 관리회로(900)에 의해 제공되는 별도의 성능레벨들에 응답하는 복수개의 프로세싱 회로들을 포함하는 SMT 프로세서의 실시예를 나타내는 블록도이다. 특히, 쓰레드 관리회로(900)는 3개의 별도의 성능레벨들을 명령 캐쉬(930), 데이터 캐쉬(965), 제1 및 제2플로우팅 포인트 회로들(905,915), 및 제1 및 제2정수/로드-스토어 회로들(910,920)에 제공한다. 제1 및 제2플로우팅 포 인트 회로들(905,915) 및 제1 및 제2정수/로드-스토어 회로들(910,920)에 제공된 성능레벨은 도 8을 참조하여 위에서 설명된 바와 같이 동작할 수 있음은 자명하다. 또한, 명령 캐쉬(930) 및 데이터 캐쉬(965)는 각각 도 2 및 도 7을 참조하여 위에서 설명된 바와 같이 동작할 수 있다.
따라서, 프로세싱 회로들이 다른 성능레벨들에서 동작할 수 있도록 별도의 성능레벨들이 다른 프로세싱 회로들에 제공될 수 있다. 이렇게 함으로서 성능과 전력소모 사이의 트레이드 오프(tradeoff)에 대한 제어가 매우 잘 이루어질 수 있다. 예컨대, 명령 캐쉬는 제1성능레벨에서 동작하고 반면에 데이터 캐쉬(265) 및 제1 및 제2플로우팅 포인트 회로들(905,915), 및 제1 및 제2정수/로드-스토어 회로들(910,920)은 제2성능레벨에서 동작할 수 있다. 또한 성능레벨의 다른 조합들이 이용될 수도 있다.
도 10은 도 9의 쓰레드 관리회로(900)에 포함되는 성능레벨 제어회로의 실시예의 동작을 나타내는 블록도이다. 특히 성능레벨 제어회로는 SMT 프로세서에서 생성되고 완료되는 쓰레드들에 응답하여 증가되고 감소되는 카운터(1000)를 구비한다. 제1 내지 제3레지스터들(1015,1020,1025) 각각은 SMT 프로세서에서 현재 동작하는 쓰레드들의 수의 문턱값을 저장할 수 있다. 3개의 비교회로들(1030,1035,1040)은 레지스터들(1015,1020,1025)의 각각에 연결된다. 특히, 제1문턱값을 저장하는 제1레지스터(1015)는 제1비교회로(1030)에 연결된다. 제2문턱값을 저장하는 제2레지스터(1020)는 제2비교회로(1035)에 연결된다. 제3문턱값을 저장하는 제3레지스터(1025)는 제3비교회로(1040)에 연결된다.
비교회로들(1030,1035,1040) 각각은 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 각각의 레지스터에 저장된 문턱값과 비교한다. 제1비교회로(1030)가 SMT 프로세서에 의해 동작되는 쓰레드들의 현재 수가 제1레지스터(1015)에 저장된 제1문턱값보다 크다고 판정하면, 제1비교회로(1130)는 도 9에 도시된 바와 같이 데이터 캐쉬(965)에 연결되는 성능레벨(1405)를 발생한다. 따라서 SMT 프로세서에 의해 동작되는 쓰레드들의 수가 제1레지스터(1015)에 저장된 문턱값을 초과할 때에는 데이터 캐쉬(965)의 성능레벨은 제1성능레벨로부터 제2성능레벨로 변경된다(즉 고전력 모드로부터 저전력 모드로).
제2비교회로(1035)가 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 제2레지스터(1020)에 저장된 문턱값보다 크다고 판정하면, 제2비교회로(1035)는 명령 캐쉬(930)에 연결되는 성능레벨(1050)을 발생한다. 따라서 명령 캐쉬(930)의 성능레벨이 제1성능레벨로부터 제2성능레벨로 변경된다(즉 고전력 모드로부터 저전력 모드로).
제3비교회로(1040)가 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 제3레지스터(1025)에 저장된 문턱값을 초과한다고 판정하면, 제3비교회로(1040)는 제1 및 제2플로우팅 포인트 회로들(905,915) 및 제1 및 제2정수/로드-스토어 회로들(910,920)에 연결되는 성능레벨(1055)을 발생한다. 따라서, 이들 프로세싱 회로들의 성능레벨이 제1성능레벨로부터 제2성능레벨로 변경된다(즉 고전력 모드로부터 저전력 모드로). 제1 및 제2플로우팅 포인트 회로들(905,915) 및 제1 및 제2정수/로드-스토어 회로들(910,920)에 연결되는 성능레벨(1055)은 도 8을 참조하여 위에 서 설명된 바와 같이 동작한다는 것은 자명하다.
도 11은 도 10에 도시된 성능레벨 제어회로의 방법 실시예를 나타내는 플로우 차트이다.
도 11에 따르면, SMT 프로세서에서 현재 동작하는 쓰레드들의 수는 SMT 프로세서가 초기화될 때는 "0"이다(블록 1100). SMT 프로세서에 의해 쓰레드들이 생성되고 완료되면, SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수 N는 증가되고 감소된다(블록 1105).
SMT 프로세서에 의해 현재 수행되는 쓰레드들의 수가 제1문턱값보다 작거나 같으면(블록 1110), 모든 프로세싱 회로들이 계속 제1(또는 고) 성능레벨에서 동작한다(블록 1115). 반면에, SMT 프로세서에 의해 현재 수행되는 쓰레드들의 수가 제1문턱값을 초과하면(블록 1110), 성능레벨(1045)에 연결된 프로세싱 회로들은 제2성능레벨(즉 저전력 모드)로 동작하기 시작한다(블록 1120).
SMT 프로세서에 의해 현재 수행되는 쓰레드들의 수가 제2문턱값보다 작거나 같으면(블록 1125), 성능레벨(1050)에(그리고 성능레벨 1055에) 연결되는 프로세싱 회로들이 제1성능레벨에서 동작하기 시작한다(또는 계속 동작한다). 반면에, 성능레벨(1045)에 연결되는 프로세싱 회로들은(위에서 설명된 바와 같이) 계속 제2성능레벨에서 동작한다.
SMT 프로세서에 의해 현재 수행되는 쓰레드들의 수가 제2문턱값을 초과하면(블록 1125), 성능레벨(1050)에 연결되는 프로세싱 회로들은 성능레벨(1045)에 연결된 프로세싱 회로들과 함께 제2성능레벨(블록 1135)에서 동작하기 시작한다(또는 계속 동작한다). 반면에 성능레벨(1055)에 연결되는 프로세싱 회로들은 제1성능레벨에서 계속 동작한다.
SMT 프로세서에 의해 현재 수행되는 쓰레드들의 수가 제3문턱값보다 작거나 같으면(블록 1140), 성능레벨(1055)에 연결된 프로세싱 회로들은 계속 제1성능레벨에서 동작하고 반면에 성능레벨(1045) 및 성능레벨(1050)에 연결된 프로세싱 회로들은 계속 제2성능레벨에서 동작한다(블록 1145). SMT 프로세서에 의해 현재 수행되는 쓰레드들의 수가 제3문턱값을 초과하면(블록 1140), 성능레벨(1055)에 연결된 프로세싱 회로들은 제2성능레벨(즉 저전력 모드)에서 동작하기 시작한다(또는 계속 동작한다.)(블록 1150).
위에서 설명된 바와 같이, 본 발명에 따른 실시예들은 SMT 프로세서에서 쓰레드의 동작과 관련된 프로세싱 회로들을 제공할 수 있다. 이 프로세싱 회로들은 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 다른 성능레벨에서 동작하도록 구성된다. 예컨대, 본 발명의 일부 실시예들에서는, 플로우팅 포인트 회로 또는 데이터 캐쉬와 같이 SMT 프로세서에서 쓰레드의 동작과 관련된 프로세싱 회로들은 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 고전력 모드 또는 저전력 모드중 하나에서 동작할 수 있다.
또한, SMT 프로세서에 의해 동작되는 쓰레드들의 수가 증가하면 프로세싱 회로들의 성능레벨들이 감소될 수 있으며 이렇게 함으로써 SMT 프로세서의 구조적 이점들이 제공되어 쓰레드와 관련된 프로세싱 회로들에 의해 소모되는 전력량이 감소될 수 있다. 예컨대, 본 발명에 따른 일부 실시예들에서는 프로세싱 회로들이 다른 성능레벨들을 제공하기 위해서 다른 클럭속도들에서 동작할 수 있고 또한/또는 다른 회로형태들을 사용할 수 있다. 예컨대, 본 발명에 따른 일부 실시예들에서는 플로우팅 포인트 회로 또는 데이터 캐쉬와 같은 SMT 프로세서에서 쓰레드의 동작과 관련된 프로세싱 회로들은 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 고 클럭속도에서의 고전력 모드 또는 저 클럭속도에서의 저전력 모드중 하나에서 동작할 수 있다.
이상 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 동시 다중 쓰레딩(SMT) 프로세서 및 이를 동작시키는 방법에서는, SMT 프로세서에서 쓰레드 동작과 관련되는 프로세싱 회로들이 현재 동작되는 쓰레드들의 수에 기초하여 다른 성능레벨들, 즉 고 클럭속도에서의 고전력 모드 또는 저 클럭속도에서의 저전력 모드중 하나에서 선택적으로 동작할 수 있다. 따라서 전력소모가 감소되면서 성능도 증가될 수 있다.
Claims (41)
- 다수의 프로세싱 회로들을 구비하는 동시 다중 쓰레딩(Simultaneous Multi-Threading, SMT) 프로세서에 있어서,상기 SMT 프로세서에서 쓰레드의 동작과 관련되고 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 다른 성능레벨들에서 동작하도록 구성되는 적어도 하나의 프로세싱 회로를 구비하는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제1항에 있어서, 상기 적어도 하나의 프로세싱 회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때에는 제1성능레벨에서 동작하도록 구성되고,상기 적어도 하나의 프로세싱 회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값보다 클 때에는 제2성능레벨에서 동작하도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제1항에 있어서,상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 상기 적어도 하나의 프로세싱 회로에 대한 성능레벨을 제공하도록 구성되는 성능레벨 제어회로를 더 구비하는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제3항에 있어서, 상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때에는 상기 적어도 하나의 프로세싱 회로에 제공되는 성능레벨을 제1성능레벨로 증가시키고,상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값을 초과할 때에는 상기 적어도 하나의 프로세싱 회로에 제공되는 성능레벨을 상기 제1성능레벨보다 낮은 제2성능레벨로 감소시키는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제4항에 있어서, 상기 문턱값은 제1문턱값이고,상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 제1문턱값보다 큰 제2문턱값을 초과할 때에는 상기 적어도 하나의 프로세싱 회로에 제공되는 성능레벨을 상기 제2성능레벨보다 낮은 제3성능레벨로 더 감소시키는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제1항에 있어서, 상기 적어도 하나의 프로세싱 회로는 태그 메모리와 데이터 메모리를 포함하는 캐쉬 메모리 회로를 구비하고,상기 데이터 메모리는 상기 캐쉬 메모리 회로가 제1성능레벨에서 동작할 때 저장된(cached) 데이터를 상기 태그 메모리에 대한 액세스와 동시에 제공하도록 구성되며,상기 데이터 메모리는 상기 캐쉬 메모리 회로가 상기 제1성능레벨보다 낮은 제2성능레벨에서 동작할 때에는 상기 태그 메모리에서의 히트에 응답하여 저장된(cached) 데이터를 제공하도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제6항에 있어서, 상기 캐쉬 메모리는,명령들에 의해 동작되는 데이터를 저장하도록 구성되는 적어도 하나의 데이터 캐쉬 메모리; 및관련된 데이터에 동작하는 명령들을 저장하도록 구성되는 명령 캐쉬 메모리를 구비하는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제6항에 있어서, 상기 데이터 메모리는 상기 제2성능레벨에서 동작할 때 상기 태그 메모리에서의 미스에 응답하여 저장된(cached) 데이터를 제공하지 않도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제1항에 있어서, 상기 적어도 하나의 프로세싱 회로는 플로우팅 포인트 유닛(unit)을 구비하는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제9항에 있어서, 상기 플로우팅 포인트 유닛은 상기 SMT 프로세서에 의해 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때 제1성능레벨에서 동작하도록 구성되는 제1플로우팅 포인트 유닛을 구비하고,상기 SMT 프로세서는 상기 SMT 프로세서에 의해 동작되는 쓰레드들의 수가 상기 문턱값보다 클때에는 상기 제1성능레벨보다 낮은 제2성능레벨에서 동작하도록 구성되는 제2플로우팅 포인트 유닛을 더 구비하는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제1항에 있어서, 상기 적어도 하나의 프로세싱 회로는 정수 레지스터를 구비하는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제3항에 있어서, 상기 성능레벨 제어회로는 상기 SMT 프로세서에서 각각 생성되고 완료되는 쓰레드들에 응답하여 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키거나 감소시키도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제1항에 있어서, 상기 적어도 하나의 프로세싱 회로는, 문턱값 이하로 감소되는 상기 SMT 프로세서에서 현재 동작되는 쓰레드들의 수에 응답하여 제1성능레벨에서 동작하도록 구성되는 제1프로세싱 회로를 구비하고,상기 SMT 프로세서는 상기 문턱값보다 더 크게 증가되는 상기 SMT 프로세서에서 현재 동작되는 쓰레드들의 수에 응답하여 상기 제1성능레벨보다 낮은 제2성능레벨에서 동작하도록 구성되는 제2프로세싱 회로를 더 구비하는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제3항에 있어서, 상기 성능레벨 제어회로는, 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 문턱값보다 작거나 같은 값으로부터 상기 문턱값보다 더 큰 값까지 증가시키기 위해서 새로운 쓰레드의 생성에 응답하여 상기 적어도 하나의 프로세싱 회로에 제공되는 성능레벨을 감소시키도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제3항에 있어서, 상기 성능레벨 제어회로는, 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 복수개의 상승하는 문턱값들의 각각을 초과할 때 상기 적어도 하나의 프로세싱 회로의 성능레벨을 복수개의 하강하는 성능레벨들의 하나로 감소시키도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제3항에 있어서, 상기 성능레벨 제어회로는, 상기 다수의 프로세싱 회로들 중 제1프로세싱 회로에 대해서는 제1성능레벨을 유지하고 그리고 문턱값보다 작거나 같은 값으로부터 상기 문턱값보다 더 큰 값까지 증가하는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 응답하여 상기 다수의 프로세싱 회로들 중 제2프로세싱 회로에 상기 제1성능레벨보다 낮은 제2성능레벨을 제공하도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 다수의 프로세싱 회로들을 구비하는 SMT 프로세서에 있어서,상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 상기 SMT 프로세서 내의 상기 프로세싱 회로들에 성능레벨을 제공하도록 구성되는 성능레벨 제어회로를 구비하는 것을 특징으로 하는 SMT 프로세서.
- 제17항에 있어서, 상기 성능레벨 제어회로는, 새로운 수의 동작하는 쓰레드들을 제공하기 위해서 동작시스템(operating system) 또는 쓰레드 발생회로로부터 쓰레드 생성과 관련되는 정보를 수신하여 내부 카운트(count)를 증가시킴으로써 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키도록 구성되고 또한 상기 SMT 프로세서에 의해 동작되는 쓰레드들의 상기 새로운 수에 기초하여 성능레벨을 상기 프로세싱 회로에 제공하도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제17항에 있어서, 상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때 상기 프로세싱 회로들에 제공되는 상기 성능레벨을 제1성능레벨로 증가시키도록 구성되고,상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값을 초과할 때에는 상기 프로세싱 회로들에 제공되는 상기 성능레벨을 상기 제1성능레벨보다 낮은 제2성능레벨로 감소시키도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제19항에 있어서, 상기 성능레벨 제어회로는, 상기 다수의 프로세싱 회로들 중 제1프로세싱 회로에 대해서는 상기 제1성능레벨을 유지하고 그리고 문턱값보다 작거나 같은 값으로부터 상기 문턱값보다 더 큰 값까지 증가하는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 응답하여 상기 다수의 프로세싱 회로들 중 제2프로세싱 회로에 상기 제1성능레벨보다 낮은 제2성능레벨을 제공하도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제17항에 있어서, 상기 프로세싱 회로는 플로우팅 포인트 유닛과 데이터 캐쉬 메모리의 적어도 하나를 구비하는 것을 특징으로 하는 다중 쓰레딩 프로세서.
- 제17항에 있어서, 상기 프로세싱 회로들은 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 문턱값보다 작거나 같을 때 제1성능레벨에서 동작하도록 구성되고,상기 프로세싱 회로들은 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값보다 클 때에는 제2성능레벨에서 동작하도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 다수의 프로세싱 회로들을 구비하는 SMT 프로세서에 있어서,쓰레드들이 생성될 때 상기 SMT 프로세서에서 동작되는 쓰레드들에 상기 SMT 프로세서와 관련된 상기 프로세싱 회로들을 할당하는 쓰레드 관리회로; 및적어도 하나의 문턱값에 비교되어 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 복수개의 성능레벨들의 하나를 상기 프로세싱 회로들에 제공하는 성능레벨 제어회로를 구비하는 것을 특징으로 하는 SMT 프로세서.
- 삭제
- 제23항에 있어서, 상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 적어도 하나의 문턱값보다 작거나 같을 때 상기 프로세싱 회로들에 제공되는 성능레벨을 제1성능레벨로 증가시키고,상기 성능레벨 제어회로는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 적어도 하나의 문턱값을 초과할 때에는 상기 프로세싱 회로들에 제공되는 상기 성능레벨을 상기 제1성능레벨보다 낮은 제2성능레벨로 감소시키는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제23항에 있어서, 상기 성능레벨 제어회로는, 상기 적어도 하나의 문턱값보다 작거나 같은 값으로부터 상기 적어도 하나의 문턱값보다 더 큰 값까지 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키기 위해 새로운 쓰레드의 생성에 응답하여 상기 프로세싱 회로들에 제공되는 성능레벨을 감소시키도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제22항에 있어서, 상기 성능레벨 제어회로는, 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 복수개의 상승하는 문턱값들의 각각을 초과할 때 상기 프로세싱 회로들에 제공되는 상기 성능레벨을 복수개의 하강하는 성능레벨들의 하나로 감소시키도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- 제23항에 있어서, 상기 성능레벨 제어회로는, 상기 다수의 프로세싱 회로들 중 제1프로세싱 회로에 대해서는 제1성능레벨을 유지하고 그리고 상기 적어도 하나의 문턱값보다 작거나 같은 값으로부터 상기 적어도 하나의 문턱값보다 더 큰 값까지 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 응답하여 상기 다수의 프로세싱 회로들 중 제2프로세싱 회로에 상기 제1성능레벨보다 낮은 제2성능레벨을 제공하도록 구성되는 것을 특징으로 하는 동시 다중 쓰레딩 프로세서.
- SMT 프로세서와 관련되는 캐쉬 메모리에 있어서,태그 메모리; 및상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 상기 태그 메모리와 동시에 액세스되거나 또는 순차적으로 액세스되는 데이터 메모리를 구비하는 것을 특징으로 하는 캐쉬 메모리.
- 제29항에 있어서, 상기 태그 메모리와 상기 데이터 메모리는 문턱값보다 작거나 같아지는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 응답하여 동시에 액세스되는 것을 특징으로 하는 캐쉬 메모리.
- 제29항에 있어서, 상기 데이터 메모리는 문턱값보다 커지는 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 응답하여 상기 태그 메모리에서의 히트 에 응답하여 액세스되는 것을 특징으로 하는 캐쉬 메모리.
- SMT 프로세서를 동작시키는 방법에 있어서,상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 적어도 하나의 프로세싱 회로에 성능레벨을 제공하는 단계를 구비하는 것을 특징으로 하는 방법.
- 제32항에 있어서, 상기 제공하는 단계는,상기 적어도 하나의 프로세싱 회로에 상기 성능레벨을 제공하기 위해서, 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수와 문턱값을 비교하는 단계에 의해 선행되는 것을 특징으로 하는 방법.
- 제32항에 있어서, 상기 비교하는 단계는,상기 SMT 프로세서에서 시작되는 새로운 쓰레드에 응답하여 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키는 단계; 및상기 SMT 프로세서에서 종결되는 쓰레드에 응답하여 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 감소시키는 단계에 의해 선행되는 것을 특징으로 하는 방법.
- 제34항에 있어서, 상기 제공하는 단계는,상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값보다 작거나 같으면 제1성능레벨을 상기 적어도 하나의 프로세싱 회로에 제공하는 단계; 및상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값을 초과하면 상기 제1성능레벨보다 낮은 제2성능레벨을 상기 적어도 하나의 프로세싱 회로에 제공하는 단계를 구비하는 것을 특징으로 하는 방법.
- 제35항에 있어서,증가하는 추가적인 문턱값들을 초과하도록 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키는 새로운 쓰레드들과 관련된 프로세싱 회로들에 대한 성능레벨들을 더 감소시키는 단계를 더 구비하는 것을 특징으로 하는 방법.
- SMT 프로세서를 동작시키는 컴퓨터 프로그램 제품에 있어서,내부에 구현된 컴퓨터 독출가능(computer readable) 프로그램 코드를 갖는 컴퓨터 독출가능 매체(medium)를 구비하고,상기 컴퓨터 프로그램 제품은 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수에 기초하여 상기 SMT 프로세서 내의 적어도 하나의 프로세싱 회로에 성능레벨을 제공하도록 구성되는 컴퓨터 독출가능 프로그램 코드를 구비하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- 제37항에 있어서,상기 적어도 하나의 프로세싱 회로에 상기 성능레벨을 제공하기 위해 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수와 문턱값을 비교하도록 구성되는 컴퓨터 독출가능 프로그램 코드를 더 구비하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- 제37항에 있어서,상기 SMT 프로세서에서 시작되는 새로운 쓰레드에 응답하여 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키는 컴퓨터 독출가능 프로그램 코드; 및상기 SMT 프로세서에서 종결되는 쓰레드에 응답하여 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 감소시키는 컴퓨터 독출가능 프로그램 코드를 더 구비하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- 제37항에 있어서, 상기 컴퓨터 독출가능 프로그램 코드는,상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값보다 작거나 같으면 제1성능레벨을 상기 적어도 하나의 프로세싱 회로에 제공하도록 구성되는 컴퓨터 독출가능 프로그램 코드; 및상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수가 상기 문턱값을 초 과하면 상기 제1성능레벨보다 낮은 제2성능레벨을 상기 적어도 하나의 프로세싱 회로에 제공하도록 구성되는 컴퓨터 독출가능 프로그램 코드를 구비하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- 제38항에 있어서,증가하는 추가적인 문턱값들을 초과하도록 상기 SMT 프로세서에 의해 현재 동작되는 쓰레드들의 수를 증가시키는 새로운 쓰레드들과 관련된 프로세싱 회로들에 대한 성능레벨들을 더 감소시키도록 구성되는 컴퓨터 독출가능 프로그램 코드를 더 구비하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030010759 | 2003-02-20 | ||
KR20030010759 | 2003-02-20 | ||
US10/631,601 | 2003-07-31 | ||
US10/631,601 US7152170B2 (en) | 2003-02-20 | 2003-07-31 | Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040075287A KR20040075287A (ko) | 2004-08-27 |
KR100594256B1 true KR100594256B1 (ko) | 2006-06-30 |
Family
ID=32044744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040011337A KR100594256B1 (ko) | 2003-02-20 | 2004-02-20 | 동시 다중 쓰레딩 프로세서 회로, 동작하는 쓰레드들의수에 기초하여 다른 성능레벨들에서 동작하도록 구성되는컴퓨터 프로그램 제품 및 이들을 동작시키는 방법 |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP4439288B2 (ko) |
KR (1) | KR100594256B1 (ko) |
CN (1) | CN100394381C (ko) |
GB (1) | GB2398660B (ko) |
TW (1) | TWI261198B (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4574493B2 (ja) * | 2005-08-22 | 2010-11-04 | キヤノン株式会社 | プロセッサシステム及びマルチスレッドプロセッサ |
JP4687685B2 (ja) * | 2007-04-24 | 2011-05-25 | 株式会社デンソー | エンジン制御用電子制御装置およびマイクロコンピュータ |
KR101077514B1 (ko) * | 2007-06-19 | 2011-10-28 | 후지쯔 가부시끼가이샤 | 캐시 제어장치 및 제어방법 |
EP2423808B1 (en) * | 2007-06-20 | 2014-05-14 | Fujitsu Limited | Arithmetic device |
US9529727B2 (en) | 2014-05-27 | 2016-12-27 | Qualcomm Incorporated | Reconfigurable fetch pipeline |
CN109471812B (zh) * | 2015-01-19 | 2023-09-05 | 铠侠股份有限公司 | 存储装置及非易失性存储器的控制方法 |
WO2018018494A1 (zh) * | 2016-07-28 | 2018-02-01 | 张升泽 | 基于多区间分配的功率分配方法及系统 |
WO2018018492A1 (zh) * | 2016-07-28 | 2018-02-01 | 张升泽 | 电流在多核芯片内部的多区间分配方法及系统 |
CN112631960B (zh) * | 2021-03-05 | 2021-06-04 | 四川科道芯国智能技术股份有限公司 | 高速缓冲存储器的扩展方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06124150A (ja) * | 1992-10-09 | 1994-05-06 | Dia Semikon Syst Kk | マイクロプロセッサの駆動制御装置 |
JPH0720964A (ja) * | 1993-06-30 | 1995-01-24 | Kokusai Electric Co Ltd | 消費電力セービング回路及びその制御方法 |
KR960011695A (ko) * | 1994-09-07 | 1996-04-20 | 컴퓨터 시스템 | |
US6073159A (en) | 1996-12-31 | 2000-06-06 | Compaq Computer Corporation | Thread properties attribute vector based thread selection in multithreading processor |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218704A (en) * | 1989-10-30 | 1993-06-08 | Texas Instruments | Real-time power conservation for portable computers |
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5835705A (en) * | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
US6272616B1 (en) * | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
US6493741B1 (en) * | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
US7051329B1 (en) * | 1999-12-28 | 2006-05-23 | Intel Corporation | Method and apparatus for managing resources in a multithreaded processor |
US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US6711447B1 (en) * | 2003-01-22 | 2004-03-23 | Intel Corporation | Modulating CPU frequency and voltage in a multi-core CPU architecture |
-
2004
- 2004-02-17 TW TW093103698A patent/TWI261198B/zh not_active IP Right Cessation
- 2004-02-19 GB GB0403738A patent/GB2398660B/en not_active Expired - Lifetime
- 2004-02-20 CN CNB2004100430627A patent/CN100394381C/zh not_active Expired - Lifetime
- 2004-02-20 KR KR1020040011337A patent/KR100594256B1/ko not_active IP Right Cessation
- 2004-02-20 JP JP2004043969A patent/JP4439288B2/ja not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06124150A (ja) * | 1992-10-09 | 1994-05-06 | Dia Semikon Syst Kk | マイクロプロセッサの駆動制御装置 |
JPH0720964A (ja) * | 1993-06-30 | 1995-01-24 | Kokusai Electric Co Ltd | 消費電力セービング回路及びその制御方法 |
KR960011695A (ko) * | 1994-09-07 | 1996-04-20 | 컴퓨터 시스템 | |
US6073159A (en) | 1996-12-31 | 2000-06-06 | Compaq Computer Corporation | Thread properties attribute vector based thread selection in multithreading processor |
US6470443B1 (en) | 1996-12-31 | 2002-10-22 | Compaq Computer Corporation | Pipelined multi-thread processor selecting thread instruction in inter-stage buffer based on count information |
Also Published As
Publication number | Publication date |
---|---|
GB0403738D0 (en) | 2004-03-24 |
CN1534463A (zh) | 2004-10-06 |
JP2004252987A (ja) | 2004-09-09 |
CN100394381C (zh) | 2008-06-11 |
GB2398660A (en) | 2004-08-25 |
JP4439288B2 (ja) | 2010-03-24 |
KR20040075287A (ko) | 2004-08-27 |
TW200421180A (en) | 2004-10-16 |
GB2398660B (en) | 2005-09-07 |
TWI261198B (en) | 2006-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7152170B2 (en) | Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating | |
JP5058970B2 (ja) | シーケンサー・アドレス管理 | |
US7949855B1 (en) | Scheduler in multi-threaded processor prioritizing instructions passing qualification rule | |
US7209996B2 (en) | Multi-core multi-thread processor | |
US6658447B2 (en) | Priority based simultaneous multi-threading | |
EP0496439B1 (en) | Computer system with multi-buffer data cache and method therefor | |
US20160019066A1 (en) | Execution of divergent threads using a convergence barrier | |
US8786618B2 (en) | Shader program headers | |
KR100936601B1 (ko) | 멀티 프로세서 시스템 | |
US20140019723A1 (en) | Binary translation in asymmetric multiprocessor system | |
JP2017507443A (ja) | ヘテロジニアス置換ポリシーを用いるセット・アソシエイティブ・キャッシュ・メモリ | |
EP3716065A1 (en) | Apparatus, method, and system for ensuring quality of service for multi-threading processor cores | |
KR100594256B1 (ko) | 동시 다중 쓰레딩 프로세서 회로, 동작하는 쓰레드들의수에 기초하여 다른 성능레벨들에서 동작하도록 구성되는컴퓨터 프로그램 제품 및 이들을 동작시키는 방법 | |
US20230409485A1 (en) | Flexible cache allocation technology priority-based cache line eviction algorithm | |
Racunas et al. | Partitioned first-level cache design for clustered microarchitectures | |
CN112965921B (zh) | 一种多任务gpu中tlb管理方法及系统 | |
US9442759B2 (en) | Concurrent execution of independent streams in multi-channel time slice groups | |
JP2010061642A (ja) | スレッドのスケジューリングテクニック | |
GB2410584A (en) | A simultaneous multi-threading processor accessing a cache in different power modes according to a number of threads | |
US7434001B2 (en) | Method of accessing cache memory for parallel processing processors | |
CN111124494B (zh) | 一种cpu中加速无条件跳转的方法及电路 | |
CN118227285A (zh) | 资源分配方法、处理器和电子设备 | |
Park et al. | Increasing TLB reach with multiple pages size subblocks | |
Govindarajan et al. | A large context multithreaded architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110531 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |