JP4439288B2 - 同時多重スレッディングプロセッサ、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム格納媒体及びこれらを動作させる方法 - Google Patents

同時多重スレッディングプロセッサ、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム格納媒体及びこれらを動作させる方法 Download PDF

Info

Publication number
JP4439288B2
JP4439288B2 JP2004043969A JP2004043969A JP4439288B2 JP 4439288 B2 JP4439288 B2 JP 4439288B2 JP 2004043969 A JP2004043969 A JP 2004043969A JP 2004043969 A JP2004043969 A JP 2004043969A JP 4439288 B2 JP4439288 B2 JP 4439288B2
Authority
JP
Japan
Prior art keywords
performance level
processor
processing circuit
smt
smt processor
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.)
Expired - Lifetime
Application number
JP2004043969A
Other languages
English (en)
Other versions
JP2004252987A (ja
Inventor
基 豪 朴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 US10/631,601 external-priority patent/US7152170B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2004252987A publication Critical patent/JP2004252987A/ja
Application granted granted Critical
Publication of JP4439288B2 publication Critical patent/JP4439288B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41DOUTERWEAR; PROTECTIVE GARMENTS; ACCESSORIES
    • A41D19/00Gloves
    • A41D19/015Protective gloves
    • A41D19/01547Protective gloves with grip improving means
    • 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/3824Operand accessing
    • 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

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)

Description

本発明はコンピュータプロセッサ構造に係り、特に同時多重スレッディングコンピュータプロセッサ、関連したコンピュータプログラム製品、及びこれらを動作させる方法に関する。
同時多重スレッディング(Simultaneous Multi−Threading:SMT)は、各サイクル間に多数の独立的なスレッドに命令を送出するのを許すハードウェア多重スレッディングを利用するプロセッサ構造である。ある与えられたサイクルでただ一つのハードウェア状況(すなわち、一つのスレッド)だけが活性化される他のハードウェア多重スレッド構造と異なり、SMT構造は全てのスレッド状況にプロセッサ資源を同時に共有することを許す。
SMTプロセッサは、SMTプロセッサ内で長いレイテンシ動作の効果も減少させうる命令を行うために浪費されたサイクルを活用できる。またスレッドの数の増加によって性能が向上するが、SMTプロセッサによって消耗される電力が増加する。
従来のSMTプロセッサのブロック図が図1に開示されている。図1の従来のSMTプロセッサの動作は、非特許文献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プロセッサを動作させる方法を提供することにある。
本発明が解決しようとするさらに他の技術的課題は、前記SMTプロセッサを動作させるコンピュータプログラム製品を提供することにある。
本発明では、SMTプロセッサによって動作するスレッドの数に基づいて異なる性能レベルで動作するプロセッシング回路、コンピュータプログラム製品、及び方法を提供する。
本発明による一具体例では、SMTプロセッサでのスレッド動作と関連するプロセッシング回路、すなわちフローティングポイントユニットまたはデータキャッシュのようなプロセッシング回路がSMTプロセッサによって現在動作しているスレッドの数に基づいて高電力モード及び低電力モードのうち一つで動作できる。また、前記SMTプロセッサによって動作するスレッドの数が増加すれば、前記プロセッシング回路の性能レベルが低められる。それにより、前記SMTプロセッサの構造的利点が提供されてスレッドと関連するプロセッシング回路によって消耗される電力量が減少する。また、前記SMTプロセッサは、同じ電力で、しかしより高い性能で動作でき、または従来のSMTプロセッサよりさらに多くの電力を消耗するが、さらに高い性能レベルで動作できる。
本発明による一具体例では、前記プロセッシング回路は、前記SMTプロセッサによって現在動作しているスレッドの数がしきい値より小さいか、または同じである時に第1性能レベルで動作するように構成され、前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値より大きい時には第2性能レベルで動作するように構成されうる。
本発明による一具体例では、性能レベル制御回路が前記SMTプロセッサによって現在動作しているスレッドの数に基づいて前記プロセッシング回路に対する性能レベルを提供するように構成される。本発明による一具体例では、前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数がしきい値より小さいか、または同じである時に前記プロセッシング回路に提供される前記性能レベルを第1性能レベルに高めうる。前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値を超える時には前記プロセッシング回路に提供される前記性能レベルを前記第1性能レベルより低い第2性能レベルに低めうる。
本発明による一具体例では、前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数が前記第1しきい値より大きい第2しきい値を超える時には前記プロセッシング回路に提供される前記性能レベルを前記第2性能レベルより低い第3性能レベルにさらに低める。
性能レベル可変に対する多様な具体例が本発明によって提供される。例えば、本発明による一具体例では、前記プロセッシング回路は、タグメモリ及びデータメモリを含むキャッシュメモリでありうる。ここで、前記データメモリは、前記キャッシュメモリ回路が第1性能レベルで動作する時に前記タグメモリに対するアクセスと同時に保存されたデータを提供するように構成される。
前記データメモリは、前記キャッシュメモリ回路が前記第1性能レベルより低い第2性能レベルで動作する時に前記タグメモリでのヒットに応答して保存されたデータを提供するように構成される。
本発明による一具体例では、前記キャッシュメモリは、データを保存するように構成されるデータキャッシュメモリ及び命令を保存するように構成される命令キャッシュメモリのうち少なくとも一つである。本発明による一具体例では、前記データメモリは、前記キャッシュメモリ回路が前記第2性能レベルで動作する時には前記タグメモリでのミスに応答して保存されたデータを提供しないように構成される。
本発明による一具体例では、前記プロセッシング回路は、フローティングポイントユニットでありうる。本発明による一具体例では、前記フローティングポイントユニットは、前記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プロセッサによって現在動作しているスレッドの数に基づいて前記タグメモリと同時にアクセスされるか、または順次にアクセスされるデータメモリとを備える。
本発明によれば、SMTプロセッサでのスレッドの動作と関連したプロセッシング回路を提供しうる。このプロセッシング回路は、SMTプロセッサによって現在動作しているスレッドの数に基づいて異なる性能レベルで動作するように構成される。例えば、本発明の一具体例では、フローティングポイント回路またはデータキャッシュのようなSMTプロセッサでのスレッドの動作と関連したプロセッシング回路は、SMTプロセッサによって現在動作しているスレッドの数に基づいて高電力モードまたは低電力モードのうち一つで動作できる。
また、SMTプロセッサによって動作するスレッドの数が増加すれば、プロセッシング回路の性能レベルが低められ、これによりSMTプロセッサの構造的利点が提供されてスレッドと関連したプロセッシング回路によって消耗される電力量が減少する。例えば、本発明による一具体例ではプロセッシング回路が異なる性能レベルを提供するために異なるクロック速度で動作でき、および/または異なる回路形態を使用しうる。例えば、本発明による一具体例ではフローティングポイント回路またはデータキャッシュのようなSMTプロセッサでのスレッドの動作と関連したプロセッシング回路は、SMTプロセッサによって現在動作しているスレッドの数に基づいて高クロック速度での高電力モードまたは低クロック速度での低電力モードのうち一つで動作できる。
以下、添付した図面を参照して本発明の望ましい実施形態を詳細に説明する。各図に提示された同じ参照符号は同一部分を表す。
本発明は、回路、コンピュータプログラム製品、及び方法として実施されうる。したがって、本発明はハードウェア実施形態、ソフトウェア実施形態、またはソフトウェアとハードウェアとを結合した実施形態を有する。また、本発明はコンピュータプログラムコードを有するコンピュータ保存媒体上のコンピュータプログラム製品の形態を有することもある。コンピュータ保存媒体としてはハードディスク、CD−ROM、光記憶装置、及び磁気記憶装置が利用される。
本発明による動作を行うためのコンピュータプログラムコードまたは“コード”は、JAVA(登録商標)、SmalltalkまたはC++、Java(登録商標)Script、Visual Basic、TQSL、Perlのような対象指向型プログラム言語または多様な他のプログラム言語で作成される。本発明のソフトウェア実施形態は、特定なプログラム言語を有して具現される必要はない。コードの一部は、仲介サーバによって利用される一つ以上のシステム上で完全に行われる。
コードは、一つ以上のコンピュータシステム上で完全に行われ、またはサーバ上で一部、そしてクライアント装置上で一部が行われることもあり、または通信ネックワークで中間点にある代理サーバ上で行われることもある。クライアント装置は、LANまたはWAN(例えば、インターネット)上のサーバに連結されることもあり、または連結がインターネットを通じても(例えば、インターネットサービス提供者を経由して)なりうる。本発明は、色々な形態のコンピュータネットワーク上で色々なプロトコルを使用して実施されうる。
本発明は、本発明の実施形態による方法、システム、及びコンピュータプログラム製品を表すブロック図及びフローチャートを参照して後述される。ブロック図とフローチャートの各ブロックは、コンピュータプログラム命令によって行われることは明白である。これらコンピュータプログラム命令は、この命令がブロック図及び/またはフローチャートに記述された機能を行うための手段を生成するように、SMTプロセッサ回路、特定目的コンピュータ、または他のプログラム可能なデータ処理装置に提供される。
これらコンピュータプログラム命令は、コンピュータ読出し可能メモリに保存される。このコンピュータ読出し可能メモリは、このコンピュータ読出し可能メモリに保存された命令がブロック図及び/またはフローチャートに記述された機能を行う命令手段を含む製造品を生成するように、コンピュータまたは他のプログラム可能なデータ処理装置を指示する。
コンピュータプログラム命令は、一連の動作段階がコンピュータ及び/または他のプログラム可能な装置上で行われるように、SMTプロセッサ回路または他のプログラム可能なデータ処理装置にロードされる。SMTプロセッサ回路または他のプログラム可能なデータ処理装置にロードされたこの命令は、ブロック図及び/またはフローチャートに記述された機能を行う段階を提供する。
本発明による実施形態は、SMTプロセッサでのスレッドの動作と関連したプロセッシング回路を提供する。このプロセッシング回路は、前記SMTプロセッサによって現在動作しているスレッドの数に基づいて異なる性能レベルで動作するように構成される。異なる性能レベルは、回路の異なる動作速度及び/または正確性の異なるレベルを含む。本発明による一部の実施形態では、プロセッシング回路が異なる性能レベルを提供するために異なるクロック速度で動作でき、及び/または異なる回路形態を使用する。例えば、本発明による一部の実施形態では、SMTプロセッサでのスレッドの動作と関連したフローティングポイントユニットまたはデータキャッシュのようなプロセッシング回路が、SMTプロセッサによって現在動作しているスレッドの数に基づいて高クロック速度での高電力モードまたは低クロック速度での低電力モードのうち一つで動作する。またSMTプロセッサによって動作するスレッドの数が増加する時、プロセッシング回路の性能レベルが低められ、したがって、SMTプロセッサの構造的利点が提供されてスレッドと関連したプロセッシング回路によって消耗される電力量が減少する。
本発明による実施形態では、多数のスレッドが互いに並列的に行われることは明白である。ここで使われたように、“スレッド”は、関連した命令及びデータを有する別途のプロセスでありうる。スレッドは、多数のプロセスを有する並列コンピュータプログラムの一部に当るプロセスを意味する。またスレッドは、他のプログラムと独立的に動作する別途のコンピュータプログラムを意味することもある。各スレッドは、例えば、関連した命令、データ、プログラムカウンタ及び/またはレジスタに対するそれぞれの状態によって定義される関連した状態を有する。スレッドに対する関連した状態は、プロセッサによって行われるスレッドに対する十分な情報を含む。
本発明による一部の実施形態では、SMTプロセッサで生成されたスレッドに割当てられるプロセッシング回路にそれぞれの性能レベルを提供するように性能レベル制御回路が構成される。例えば、性能レベル制御回路は、プロセッシング回路が高電力モードで動作できるように第1性能レベルを提供し、低電力モードで動作できるように第2性能レベルを提供する。本発明によるさらに他の実施形態では、中間の性能レベル(すなわち、高電力と低電力間の性能レベル)が性能レベル制御回路によって提供される。
本発明による一部の実施形態では、異なる性能レベルで動作するプロセッシング回路がタグメモリとデータメモリとを含むキャッシュメモリである。キャッシュメモリが第1性能レベル(すなわち、高電力モード)で動作する時は、タグメモリとデータメモリとはタグメモリに対するアクセスがヒットであるか否かに関係なく同時にアクセスされる。データメモリの同時アクセスは、タグメモリでのヒット率が高められるため、さらに大きい性能を提供する。キャッシュメモリは、データメモリがタグメモリでのヒットに対する応答だけでアクセスされる第2性能レベル(すなわち、低電力モード)で動作できる。したがって、タグミスが生じる場合には、データメモリのアクセスと関連する電力消耗の一部を減らせる。
本発明によるさらに他の実施形態では、スレッドの動作と関連したプロセッシング回路は命令キャッシュであり、あるいは、フローティングポイント回路または整数/ロードストア回路のような他の形態のプロセッシング回路である。その上、これらプロセッシング回路の各々は、異なる性能レベルで動作できる。例えば、本発明による一部の実施形態では、キャッシュメモリ、命令キャッシュ、及びフローティングポイント回路及び整数/ロードストア回路が同時に相異なる性能レベルで動作できる。
本発明によるさらに他の実施形態では、同じ形態のプロセッシング回路(例えばフローティングポイント回路及び整数/ロードストア回路)がこの回路の一部が第1性能レベルで動作し、他の一部は第2性能レベルで動作するように他の性能カテゴリに分離しうる。例えば、本発明による一部の実施形態では、フローティングポイント回路の一部が高電力モードで動作するように構成される一方、他のフローティングポイント回路は低電力モードで動作するように構成される。
図2は、本発明によるSMTプロセッサの一実施形態を示すブロック図である。
図2によれば、新しいスレッドがSMTプロセッサ200から生成される時、スレッド管理回路205は、新しく生成されたスレッドを使用したセットのプロセッシング回路を割当てる。割当てられたプロセッシング回路は、プログラムカウンタ215、1セットのフローティングポイントレジスタ245、及び1セットの整数レジスタ250を含む。また、他のプロセッシング回路も新しく生成されたスレッドに割当てられる。スレッドが完了すれば、割当てられたプロセッシング回路は、順次に生成されるスレッドに再割当てられるように解放される。
フェッチ回路210は、割当てられたプログラムカウンタ215によって提供される位置に基づいて命令キャッシュ220から命令をフェッチし、この命令はデコーダ225に提供される。デコーダ225は、デコードされた命令をレジスタリネーミング回路230に出力する。レジスタリネーミング回路230によって提供される命令の形態によって、改名された命令はレジスタリネーミング回路230によってフローティングポイント命令キュー235または整数命令キュー240に提供される。例えば、レジスタリネーミング回路230によって提供される命令の形態がフローティングポイント命令であれば、その命令はフローティングポイント命令キュー235に保存され、レジスタリネーミング回路230によって提供される命令が整数命令であれば、その命令は整数命令キュー240に保存される。
フローティングポイント命令キュー235または整数命令キュー240からの命令は、フローティングポイント回路255または整数/ロードストア回路260による実行のためにそれぞれの関連レジスタに保存される。特に、フローティングポイント命令は、フローティングポイント命令キュー235から1セットのフローティングポイントレジスタ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は、動作システムから、またはSMTプロセッサでのスレッドの生成と関連するスレッド発生回路から情報を受信する。スレッド管理回路305は、スレッド割当回路330を備え、スレッド割当回路330はSMTプロセッサによって生成されたスレッドが使用されるようにプロセッシング回路を割当てる。
スレッド管理回路305は、SMTプロセッサによって生成されたスレッドと関連するプロセッシング回路に性能レベルを提供する性能レベル制御回路340をさらに備える。性能レベル制御回路340は、SMTプロセッサによって現在動作しているスレッドの数に基づいてプロセッシング回路に性能レベルを提供する。特に、SMTプロセッサによって動作するスレッドの数が増加すれば、性能レベル制御回路340はSMTプロセッサによって動作するスレッドと関連するプロセッシング回路に低める性能レベルを提供する。性能レベル制御回路340は、SMTプロセッサによって動作するスレッドの生成及び完了に応答して内部カウントを増加及び減少させることによってSMTプロセッサによって現在動作しているスレッドの数を決定できる。
本発明によるプロセッシング回路に提供される性能レベルが第1性能レベル(または、高電力モード)のようなデフォルト値を有することは明白である。したがって、スレッドが加えられれば、プロセッシング回路に提供される性能レベルは性能を落としてプロセッシング回路の電力消耗を減らすために低められる。性能レベルは、少なくとも2つの状態、すなわち第1性能レベル及び第2性能レベルを有する信号を伝送できる信号ラインを経由してプロセッシング回路に提供される。例えば、SMTプロセッサが初期化された後、SMTプロセッサによって動作するスレッドの数は“0”となる。ここで、プロセッシング回路に提供される性能レベルのデフォルト値は、第1性能レベル(高電力モード)である。スレッドが加えられ、結局しきい値を超えれば、性能レベルは、例えばある性能レベルが使われたかを表す信号の状態を変更させることによって第2性能レベルに変更される。
図4は、本発明による性能レベル制御回路340の具体例を示すブロック図である。
図4によれば、カウンタ回路405は、SMTプロセッサによって現在動作しているスレッドの数を決定する動作システム、または図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に保存されていると判定すれば、タグヒットが発生する。それ以外では、タグミスが発生する。タグヒットが発生すれば、出力イネーブル回路650はデータがデータメモリ620から出力されるようにイネーブルさせる。
本発明の実施形態によれば、性能レベル制御回路によって提供される性能レベルは、タグメモリ610とデータメモリ620とがどのように動作するかを制御するために利用される。特に、第1性能レベルがキャッシュメモリに提供されれば、データメモリイネーブル回路640は、タグヒットが発生するか否かに関係なくタグメモリ610と同時にアクセスされるようにデータメモリ620をイネーブルさせる。一方、第2性能レベルがキャッシュメモリに提供されれば、データメモリイネーブル回路640は、タグヒットが発生しなければデータメモリ620がアクセスされることを許さない。
したがって、本発明による実施形態では、高電力モードではタグメモリ610とデータメモリ620とが向上した性能を提供するために同時にアクセスされる。一方、低電力モードでは、データメモリ620はタグメモリ610がタグヒットが発生したということを表す場合にだけアクセスされ、その結果、キャッシュメモリによって消費される電力が減少する。
図7は、命令キャッシュに利用される本発明による実施形態を示すブロック図である。
図7によれば、スレッド管理回路700は、命令キャッシュ722を新しいスレッドに割当てる。スレッド管理回路700に含まれた性能レベル制御回路は、命令キャッシュ722がどのように動作するかを制御するために性能レベルを命令キャッシュ722に提供する。
特に、命令キャッシュ722は、第1性能レベルに応答して高電力モードで動作でき、第2性能レベルに応答して低電力モードで動作するように構成される。例えば図5を参照して前述されたように、第1及び第2性能レベルがSMTプロセッサによって現在動作しているスレッドの数に基づいて命令キャッシュ722に提供される。また、命令キャッシュ722は、データメモリ620が低電力モードでタグヒットに対する応答だけでアクセスされる図6を参照して前述された方式と類似した方式で異なる性能レベルで動作される。例えば、連続的なメモリアクセスが同じキャッシュラインにあると判定される時、直接アドレッシングを許すために異なる性能レベルが命令キャッシュに提供される。このような形態の限定は、タグRAMの読出し及びタグ比較が必要でない直接アドレスドキャッシュを使用して適用される。また、直接アドレスドキャッシュでは、仮想アドレスから実際アドレスへの変換も不要である。
図8は、本発明による異なる性能レベルを有する別途のプロセッシング回路の実施形態を示すブロック図である。
図8によれば、第1フローティングポイント回路805が第1性能レベルで動作し、第2フローティングポイント回路815が第1性能レベルより低い第2性能レベルで動作するように構成される。言い換えれば、第1フローティングポイント回路805は、高電力モードで使用され、第2フローティングポイント回路815は低電力モードで使用される。
第1整数/ロードストア回路810は、第1性能レベルで動作し、第2整数/ロードストア回路820は第2性能レベルで動作するように構成される。スレッド管理回路800は、2つの別途の性能レベルを提供するように構成される。特に、第1性能レベルは、第1フローティングポイント回路805及び第1整数/ロードストア回路810に提供される。スレッド管理回路800によって提供される第2性能レベルは、第2フローティングポイント回路815及び第2整数/ロードストア回路820に提供される。したがって、第1フローティングポイント回路805及び第1整数/ロードストア回路810は、第1性能レベルで動作するスレッドに割当てられ、第2フローティングポイント回路815及び第2整数/ロードストア回路820は、第2性能レベルで動作するスレッドに割当てられる。第1及び第2性能レベルは、スレッド管理回路800によって独立的にまたは同時に提供されうることは明白である。また2つ以上の性能レベルが提供されるように、2つ以上の別途のフローティングポイント回路及び整数/ロードストア回路が提供されることも明白である。
本発明の実施形態によれば、第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を参照して前述されたように動作する。
したがって、プロセッシング回路が異なる性能レベルで動作できるように別個の性能レベルが異なるプロセッシング回路に提供される。これにより、性能と電力消耗間のトレードオフに対する制御が非常によくなされる。例えば、命令キャッシュ930は第1性能レベルで動作し、データキャッシュ965及び第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比較回路1030は図9に示されたようにデータキャッシュ965に連結される性能レベル1045を発生させる。したがって、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プロセッサのさらに他の実施形態を示すブロック図である。 本発明による性能レベル制御回路の他の具体例を示すブロック図である。 本発明による性能レベル制御回路の他の具体例を示すフローチャートである。
符号の説明
200 SMTプロセッサ
205 スレッド管理回路
210 フェッチ回路
215 プログラムカウンタ
220 命令キャッシュ
225 デコーダ
230 レジスタリネーミング回路
235 フローティングポイント命令キュー
240 整数命令キュー
245 フローティングポイントレジスタ
250 整数レジスタ
255 フローティングポイント回路
260 整数/ロードストア回路
265 データキャッシュ

Claims (25)

  1. 同時多重スレッディング(SMT)プロセッサにおいて、
    前記SMTプロセッサでのスレッドの動作と関連して前記SMTプロセッサによって現在動作しているスレッドの数に基づいて異なる性能レベルで動作するように構成される少なくとも一つのプロセッシング回路と、
    前記SMTプロセッサによって現在動作しているスレッドの数に基づいて前記少なくとも一つのプロセッシング回路に対する性能レベルを提供するように構成される性能レベル制御回路とを備え、
    前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数がしきい値より小さいか、または同じである時には前記少なくとも一つのプロセッシング回路に提供される性能レベルを第1性能レベルに増加させ、前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値を超える時には前記少なくとも一つのプロセッシング回路に提供される性能レベルを前記第1性能レベルより低い第2性能レベルに減少させることを特徴とする同時多重スレッディングプロセッサ。
  2. 前記しきい値は第1しきい値を含み、
    前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数が前記第1しきい値より大きい第2しきい値を超える時には前記少なくとも一つのプロセッシング回路に提供される性能レベルを前記第2性能レベルより低い第3性能レベルにさらに減少させることを特徴とする請求項に記載の同時多重スレッディングプロセッサ。
  3. 前記少なくとも一つのプロセッシング回路は、タグメモリとデータメモリとを含むキャッシュメモリ回路を備え、
    前記データメモリは、前記キャッシュメモリ回路が第1性能レベルで動作する時に保存されたデータを前記タグメモリに対するアクセスと同時に提供するように構成され、さらに前記キャッシュメモリ回路が前記第1性能レベルより低い第2性能レベルで動作する時には前記タグメモリでのヒットに応答して保存されたデータを提供するように構成されることを特徴とする請求項1に記載の同時多重スレッディングプロセッサ。
  4. 前記キャッシュメモリは、
    命令によって動作するデータを保存するように構成される少なくとも一つのデータキャッシュメモリと、
    関連したデータに動作する命令を保存するように構成される命令キャッシュメモリと、を備えることを特徴とする請求項に記載の同時多重スレッディングプロセッサ。
  5. 前記データメモリは、前記第2性能レベルで動作する時に前記タグメモリでのミスに応答して保存されたデータを提供しないように構成されることを特徴とする請求項に記載の同時多重スレッディングプロセッサ。
  6. 前記少なくとも一つのプロセッシング回路は、フローティングポイントユニットを備えることを特徴とする請求項1に記載の同時多重スレッディングプロセッサ。
  7. 前記フローティングポイントユニットは、前記SMTプロセッサによって動作するスレッドの数がしきい値より小さいか、または同じである時に第1性能レベルで動作するように構成される第1フローティングポイントユニットを備え、
    前記SMTプロセッサは、前記SMTプロセッサによって動作するスレッドの数が前記しきい値より大きい時に前記第1性能レベルより低い第2性能レベルで動作するように構成される第2フローティングポイントユニットをさらに備えることを特徴とする請求項に記載の同時多重スレッディングプロセッサ。
  8. 前記少なくとも一つのプロセッシング回路は、整数レジスタを備えることを特徴とする請求項1に記載の同時多重スレッディングプロセッサ。
  9. 前記性能レベル制御回路は、前記SMTプロセッサで各々生成されて完了するスレッドに応答して前記SMTプロセッサによって現在動作しているスレッドの数を増加または減少させるように構成されることを特徴とする請求項に記載の同時多重スレッディングプロセッサ。
  10. 同時多重スレッディング(SMT)プロセッサにおいて、
    前記SMTプロセッサでのスレッドの動作と関連して前記SMTプロセッサによって現在動作しているスレッドの数に基づいて異なる性能レベルで動作するように構成される少なくとも一つのプロセッシング回路と、
    前記SMTプロセッサによって現在動作しているスレッドの数に基づいて前記少なくとも一つのプロセッシング回路に対する性能レベルを提供するように構成される性能レベル制御回路とを備え、
    前記少なくとも一つのプロセッシング回路は、しきい値以下に減少する前記SMTプロセッサで現在動作しているスレッドの数に応答して第1性能レベルで動作するように構成される第1プロセッシング回路
    記しきい値よりさらに大きく増加する前記SMTプロセッサで現在動作しているスレッドの数に応答して前記第1性能レベルより低い第2性能レベルで動作するように構成される第2プロセッシング回路を備えることを特徴とする同時多重スレッディングプロセッサ。
  11. 前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数をしきい値より小さいか、または同じ値から前記しきい値よりさらに大きい値まで増加させるための新しいスレッドの生成に応答して前記少なくとも一つのプロセッシング回路に提供される性能レベルを減少させるように構成されることを特徴とする請求項10に記載の同時多重スレッディングプロセッサ。
  12. 前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数が複数の異なるしきい値の各々を超える時に前記少なくとも一つのプロセッシング回路の性能レベルを複数の異なる性能レベルの一つに減少させるように構成されることを特徴とする請求項10に記載の同時多重スレッディングプロセッサ。
  13. 前記性能レベル制御回路は、前記第1プロセッシング回路に対しては第1性能レベルを維持するが、しきい値より小さいか、または同じ値から前記しきい値よりさらに大きい値まで増加する前記SMTプロセッサによって現在動作しているスレッドの数に応答して前記第2プロセッシング回路に前記第1性能レベルより低い前記第2性能レベルを提供するように構成されることを特徴とする請求項10に記載の同時多重スレッディングプロセッサ。
  14. 同時多重スレッディング(SMT)プロセッサにおいて、
    前記SMTプロセッサによって現在動作しているスレッドの数に基づいて前記SMTプロセッサ内のプロセッシング回路に性能レベルを提供するように構成される性能レベル制御回路を備え、
    前記プロセッシング回路は第1プロセッシング回路と第2プロセッシング回路とで構成され、
    前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数がしきい値より小さいか、または同じである時に前記プロセッシング回路に提供される前記性能レベルを第1性能レベルに増加させるように構成され、前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値を超える時には前記プロセッシング回路に提供される前記性能レベルを前記第1性能レベルより低い第2性能レベルに減少させるように構成されることを特徴とする同時多重スレッディングプロセッサ
  15. 前記性能レベル制御回路は、前記第1プロセッシング回路に対しては前記第1性能レベルを維持するが、しきい値より小さいか、または同じ値から前記しきい値よりさらに大きい値まで増加する前記SMTプロセッサによって現在動作しているスレッドの数に応答して前記第2プロセッシング回路に前記第1性能レベルより低い第2性能レベルを提供するように構成されることを特徴とする請求項14に記載の同時多重スレッディングプロセッサ。
  16. 前記プロセッシング回路は、フローティングポイントユニット及びデータキャッシュメモリのうち少なくとも一つを備えることを特徴とする請求項14に記載の同時多重スレッディングプロセッサ。
  17. 前記プロセッシング回路は、前記SMTプロセッサによって現在動作しているスレッドの数がしきい値より小さいか、または同じである時に第1性能レベルで動作するように構成され、前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値より大きい時には第2性能レベルで動作するように構成されることを特徴とする請求項14に記載の同時多重スレッディングプロセッサ。
  18. 同時多重スレッディング(SMT)プロセッサにおいて、
    スレッドが生成される時に前記SMTプロセッサで動作するスレッドに前記SMTプロセッサと関連したプロセッシング回路を割当てるスレッド管理回路と、
    少なくとも一つのしきい値と比較されて前記SMTプロセッサによって現在動作しているスレッドの数に基づいて複数の性能レベルの一つを前記プロセッシング回路に提供する性能レベル制御回路と、を備え、
    前記プロセッシング回路は第1プロセッシング回路と第2プロセッシング回路とで構成され、
    前記性能レベル制御回路は、前記SMTプロセッサによって現在動作しているスレッドの数が前記少なくとも一つのしきい値より小さいか、または同じである時に前記プロセッシング回路に提供される性能レベルを第1性能レベルに増加させ、前記SMTプロセッサによって現在動作しているスレッドの数が前記少なくとも一つのしきい値を超える時には前記プロセッシング回路に提供される前記性能レベルを前記第1性能レベルより低い第2性能レベルに減少させることを特徴とする同時多重スレッディングプロセッサ。
  19. 前記性能レベル制御回路は、さらに前記少なくとも一つのしきい値より小さいか、または同じ値から前記少なくとも一つのしきい値よりさらに大きい値まで前記SMTプロセッサによって現在動作しているスレッドの数を増加させるために新しいスレッドの生成に応答して前記プロセッシング回路に提供される性能レベルを減少させるように構成されることを特徴とする請求項18に記載の同時多重スレッディングプロセッサ。
  20. 前記性能レベル制御回路は、さらに前記SMTプロセッサによって現在動作しているスレッドの数が複数の異なるしきい値の各々を超える時に前記プロセッシング回路に提供される前記性能レベルを複数の異なる性能レベルの一つに減少させるように構成されることを特徴とする請求項17に記載の同時多重スレッディングプロセッサ。
  21. 前記性能レベル制御回路は、前記第1プロセッシング回路に対しては第1性能レベルを維持するが、前記少なくとも一つのしきい値より小さいか、または同じ値から前記少なくとも一つのしきい値よりさらに大きい値まで前記SMTプロセッサによって現在動作しているスレッドの数に応答して前記第2プロセッシング回路に前記第1性能レベルより低い第2性能レベルを提供するように構成されることを特徴とする請求項18に記載の同時多重スレッディングプロセッサ。
  22. SMTプロセッサを動作させる方法において、
    前記SMTプロセッサによって現在動作しているスレッドの数に基づいて少なくとも一つのプロセッシング回路に性能レベルを提供する段階を備え、
    前記提供する段階は、
    前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値より小さいか、または同じであれば、第1性能レベルを前記少なくとも一つのプロセッシング回路に提供する段階と、
    前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値を超えれば、前記第1性能レベルより低い第2性能レベルを前記少なくとも一つのプロセッシング回路に提供する段階と、を備えることを特徴とする方法。
  23. 増加する追加的なしきい値を超えるように前記SMTプロセッサによって現在動作しているスレッドの数を増加させる新しいスレッドと関連したプロセッシング回路に対する性能レベルをさらに低める段階をさらに備えることを特徴とする請求項22に記載の方法。
  24. SMTプロセッサを動作させるコンピュータプログラム格納媒体において、
    内部に具現されたコンピュータ読出し可能なプログラムコードを有するコンピュータ読出し可能媒体を備え、
    前記コンピュータプログラム製品は、前記SMTプロセッサによって現在動作しているスレッドの数に基づいて前記SMTプロセッサ内の少なくとも一つのプロセッシング回路に性能レベルを提供するように構成されるコンピュータ読出し可能プログラムコードを備え、
    前記コンピュータ読出し可能プログラムコードは、
    前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値より小さいか、または同じであれば、第1性能レベルを前記少なくとも一つのプロセッシング回路に提供するように構成されるコンピュータ読出し可能プログラムコードと、
    前記SMTプロセッサによって現在動作しているスレッドの数が前記しきい値を超えれば、前記第1性能レベルより低い第2性能レベルを前記少なくとも一つのプロセッシング回路に提供するように構成されるコンピュータ読出し可能プログラムコードと、を備えることを特徴とするコンピュータプログラム格納媒体。
  25. 増加する追加的なしきい値を超えるように前記SMTプロセッサによって現在動作しているスレッドの数を増加させる新しいスレッドと関連したプロセッシング回路に対する性能レベルをさらに減少させるように構成されるコンピュータ読出し可能プログラムコードをさらに備えることを特徴とする請求項24に記載のコンピュータプログラム格納媒体。
JP2004043969A 2003-02-20 2004-02-20 同時多重スレッディングプロセッサ、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム格納媒体及びこれらを動作させる方法 Expired - Lifetime JP4439288B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20030010759 2003-02-20
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
JP2004252987A JP2004252987A (ja) 2004-09-09
JP4439288B2 true JP4439288B2 (ja) 2010-03-24

Family

ID=32044744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004043969A Expired - Lifetime JP4439288B2 (ja) 2003-02-20 2004-02-20 同時多重スレッディングプロセッサ、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム格納媒体及びこれらを動作させる方法

Country Status (5)

Country Link
JP (1) JP4439288B2 (ja)
KR (1) KR100594256B1 (ja)
CN (1) CN100394381C (ja)
GB (1) GB2398660B (ja)
TW (1) TWI261198B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4574493B2 (ja) * 2005-08-22 2010-11-04 キヤノン株式会社 プロセッサシステム及びマルチスレッドプロセッサ
JP4687685B2 (ja) * 2007-04-24 2011-05-25 株式会社デンソー エンジン制御用電子制御装置およびマイクロコンピュータ
WO2008155822A1 (ja) * 2007-06-19 2008-12-24 Fujitsu Limited キャッシュ制御装置及び制御方法
CN101681260B (zh) * 2007-06-20 2013-04-17 富士通株式会社 运算装置
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 四川科道芯国智能技术股份有限公司 高速缓冲存储器的扩展方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
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
JP3100241B2 (ja) * 1992-10-09 2000-10-16 ダイヤセミコンシステムズ株式会社 マイクロプロセッサの駆動制御装置
JP3461535B2 (ja) * 1993-06-30 2003-10-27 株式会社日立国際電気 無線端末装置及びその制御方法
US5630142A (en) * 1994-09-07 1997-05-13 International Business Machines Corporation Multifunction power switch and feedback led for suspend systems
US6073159A (en) 1996-12-31 2000-06-06 Compaq Computer Corporation Thread properties attribute vector based thread selection in multithreading processor
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

Also Published As

Publication number Publication date
CN1534463A (zh) 2004-10-06
GB2398660A (en) 2004-08-25
KR100594256B1 (ko) 2006-06-30
TW200421180A (en) 2004-10-16
CN100394381C (zh) 2008-06-11
GB2398660B (en) 2005-09-07
GB0403738D0 (en) 2004-03-24
JP2004252987A (ja) 2004-09-09
KR20040075287A (ko) 2004-08-27
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
US7209996B2 (en) Multi-core multi-thread processor
US8832350B2 (en) Method and apparatus for efficient memory bank utilization in multi-threaded packet processors
JP5170782B2 (ja) ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ
US6131155A (en) Programmer-visible uncached load/store unit having burst capability
US20050235134A1 (en) Apparatus, method and system for a synchronicity independent, resource delegating, power and instruction optimizing processor
US20140337848A1 (en) Low overhead thread synchronization using hardware-accelerated bounded circular queues
US20050240733A1 (en) Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
US9595075B2 (en) Load/store operations in texture hardware
CN104252392A (zh) 一种访问数据缓存的方法和处理器
AU2011213795A1 (en) Efficient cache reuse through application determined scheduling
JPH10283183A (ja) 分岐予測調整方法
US8707016B2 (en) Thread partitioning in a multi-core environment
JP4439288B2 (ja) 同時多重スレッディングプロセッサ、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム格納媒体及びこれらを動作させる方法
Racunas et al. Partitioned first-level cache design for clustered microarchitectures
JP6400296B2 (ja) マルチモード支援プロセッサ及びマルチモードを支援する処理方法
JP2021086612A (ja) フレキシブルなキャッシュ割り当て技術の優先度ベースのキャッシュラインエビクションアルゴリズム
CN108733585B (zh) 缓存系统及相关方法
Choi et al. Memory harvesting in {Multi-GPU} systems with hierarchical unified virtual memory
US9442759B2 (en) Concurrent execution of independent streams in multi-channel time slice groups
US8266379B2 (en) Multithreaded processor with multiple caches
US20050289551A1 (en) Mechanism for prioritizing context swapping
US9342303B2 (en) Modified execution using context sensitive auxiliary code
Berenbaum et al. Architectural Innovations in the CRISP Microprocessor.
US20210089459A1 (en) Storage control apparatus, processing apparatus, computer system, and storage control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100105

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4439288

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140115

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250