JP2010026583A - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP2010026583A
JP2010026583A JP2008183828A JP2008183828A JP2010026583A JP 2010026583 A JP2010026583 A JP 2010026583A JP 2008183828 A JP2008183828 A JP 2008183828A JP 2008183828 A JP2008183828 A JP 2008183828A JP 2010026583 A JP2010026583 A JP 2010026583A
Authority
JP
Japan
Prior art keywords
program
instruction
storage means
instruction word
cache
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.)
Granted
Application number
JP2008183828A
Other languages
English (en)
Other versions
JP4759026B2 (ja
Inventor
Takashi Nakada
尚 中田
Yasuhiko Nakajima
康彦 中島
Toshiaki Kitamura
俊明 北村
Atsuhiro Suga
敦浩 須賀
Yukimasa Miyamoto
幸昌 宮本
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.)
HIROSHIMA ICHI
Semiconductor Technology Academic Research Center
Original Assignee
HIROSHIMA ICHI
Semiconductor Technology Academic Research Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HIROSHIMA ICHI, Semiconductor Technology Academic Research Center filed Critical HIROSHIMA ICHI
Priority to JP2008183828A priority Critical patent/JP4759026B2/ja
Publication of JP2010026583A publication Critical patent/JP2010026583A/ja
Application granted granted Critical
Publication of JP4759026B2 publication Critical patent/JP4759026B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

【課題】複数のプログラムを同時に実行するプロセッサにおいて、キャッシュミスによる影響をより効果的に抑える。
【解決手段】複数のプログラムを同時に実行するプロセッサにおいて、主記憶装置またはキャッシュから第1と第2のプログラムの命令語が読み出され、読み出された命令語は第1の記憶手段にキューイングされる。第2と第3の記憶手段は、それぞれ、第1と第2のプログラムに含まれる命令語の実行に要するサイクル数見積りのための実行サイクル数見積り情報を記憶し、第1と第2のキャッシュミス予測器は、それぞれ、実行サイクル数見積り情報をそれぞれ読み出す。命令語のスケジューリング位置は、この実行サイクル数見積り情報の内容に従って決定される。好ましくは、実行サイクル数見積り情報は、キャッシュミスの検出/非検出に応じて動的に変更される。
【選択図】図1

Description

本発明は、複数のプログラムを同時に実行するプロセッサに関する。
現在までに、大規模サーバや高性能ワークステーションに使われる高性能プロセッサは、ほとんどホモジニアス・マルチスレッド型プロセッサへ移行している。このような利用環境では、システム全体のスループット向上が重視され、OSはゆるやかなプロセススケジューリングによりプロセス間の公平性を保障するのが一般的である。一方、組み込み機器の多機能化および高性能化に伴い、組み込み機器用プロセッサについても、マルチスレッド型プロセッサへの移行が始まっている。ただし、低消費電力でなければならない点、および、特定のプロセス(音声、画像などの処理)については最低性能の保障が要求される点が、従来型のホモジニアス・マルチプロセッサシステムと異なっている。
複数のプログラムを同時に実行するプロセッサにおいて、低電力化に関しては、異種命令混在実行方式が採用できる。ここで、最低性能保障の障害となるのが、予測できないキャッシュミスによる性能低下である。キャッシュミスによる影響を抑えて最低性能を保障するための従来の技術について以下に説明する。
(1)1つの手法では、プロセスごとにキャッシュを分割する。しかし、キャッシュ分割により各スレッドが利用できるキャッシュ容量が半減すること自体、キャッシュミスを増加させるので、この手法は本末転倒である。
(2)Jichuan Chanらによる論文(Cooperative Cache Partitioning for Chip Multiprocessors (ICS2007))に記載された手法では、共有キャッシュのまま、キャッシュの利用区分を変化させる。すなわち、マルチコアの共有キャッシュの割り付けを動的に変更してQoS保障を図る。キャッシュの利用区分を変化させることにより、ある範囲のワーキングセットの組合せに対してミス率を若干下げることは可能である。しかし、キャッシュミス自体を制御できないので、QoS保障が粗い。
(3)A. Fedorovaらによる論文(Improving Performance Isolation on Chip Multiprocessors via an OS Schedule (PACT0007))に記載された手法では、OSのスケジューラによって性能保障をしないプロセスの優先度を意図的に下げてQoS保障を図る。OSが特定プロセスでないプロセスの優先度を下げることで、なるべく多くのタイムスライスを特定プロセスに集中できるが、優先度が低いプロセスの実行が極端に低下する危険があり、ある一定以上に性能を保障することが困難である。
(4)特開2001−356903号公報に記載された手法では、キャッシュミス発生時に後続命令をパイプラインからすべてフラッシュすることにより、キャッシュミスによる悪影響を削減し、QoS保障を図る。しかし、この手法では、ストールの原因になっているかどうかにかかわらず、全ての命令をフラッシュするため、フラッシュが不要な場合にもフラッシュするので、フラッシュされたプロセスの性能が悪化しすぎてしまうという問題がある。
したがって、複数のプログラムを同時に実行するプロセッサにおいて、キャッシュミスによる影響をより効果的に抑えることが望まれる。また、特定のプロセスについての最低性能保障を効果的に行えることが望まれる。
特開2001−356903号公報 Jichuan Chan and Gurindar S. Sohi, Cooperative Cache Partitioning for Chip Multiprocessors, ICS2007, p242 (ACM) A. Fedorova, M. Seltzer, and M.D. Smith,Improving Performance Isolation on Chip Multiprocessors via an OS Scheduler, PACT2007, p25 (IEEE Computer Society) 片岡晶人、中西正樹、山下茂、中島康人、VLIW型命令キューを持つOROCHIの命令スケジューリング機構、情報研報、2007-ARC-172,pp.25-30(2007) 中田尚、中島康彦、異種命令混在実行のためVLIW型命令キューの設計、IPSJ SIG Technical Report, 2007-ARC-175, pp.89-94(2007)
本発明の目的は、複数のプログラムを同時に実行するプロセッサにおいて、キャッシュミスによる影響を抑えることである。
本発明に係るプロセッサは、複数のプログラムを同時に実行するプロセッサである。このプロセッサは、前記複数のプログラムの中の第1のプログラムの実行位置を示す第1のプログラムカウンタと、前記複数のプログラムの中の第2のプログラムの実行位置を示す第2のプログラムカウンタと、第1のプログラムカウンタの内容により主記憶装置またはキャッシュから第1のプログラムの命令語を読み出す第1の命令読み出し機構と、第2のプログラムカウンタの内容により主記憶装置またはキャッシュから第2のプログラムの命令語を読み出す第2の命令読み出し機構と、第1及び第2の命令読み出し機構により読み出された命令語をキューイングするための第1の記憶手段と、第1の記憶手段から取り出した命令語のうちロード機能を有する命令を、キャッシュにアクセスして実行するキャッシュ制御機構と、第1の記憶手段から取り出した命令語により、ロード機能により取り出したデータを用いて演算を行う演算機構と、第1のプログラムに含まれる命令語の実行に要するサイクル数見積りのための実行サイクル数見積り情報を記憶する第2の記憶手段と、第2のプログラムに含まれる命令語の実行に要するサイクル数見積りのための実行サイクル数見積り情報を記憶する第3の記憶手段と、第1のプログラムカウンタの内容により第2の記憶手段のエントリ位置を特定して実行サイクル数見積り情報を読み出す第1のキャッシュミス予測器と、第2のプログラムカウンタの内容により第3の記憶手段のエントリ位置を特定して実行サイクル数見積り情報を読み出す第2のキャッシュミス予測器と、第1および第2の命令読み出し機構から入力される命令語を第1の記憶手段にキューイングする命令スケジュール機構であって、前記命令語が、前記キャッシュ制御機構によって処理される第1の命令語の実行結果を必要とし前記演算機構によって処理される第2の命令語である場合、前記第1の命令語に対応する、第1または第2のキャッシュミス予測器からの前記実行サイクル数見積り情報の内容に従って、第1の記憶手段における前記第2の命令語のスケジューリング位置を決定し、一方、前記実行サイクル数見積り情報に従うとスケジューリング可能な位置が存在しない場合には前記第2の命令語のスケジューリングを保留する命令スケジュール機構とを備える。
好ましくは、さらに、第1のプログラムと第2のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶し、キャッシュ制御機構に送る第4の記憶手段を備える。第1の記憶手段は、キューイングされる命令語を、その命令語がどのプログラムに属するかを示す情報とともに記憶する。キャッシュ制御機構は、第4の記憶手段によって指定されたプログラムに属さない命令語を実行し、かつ、その実行においてキャッシュミスを検知した場合、キャッシュミス検知情報を命令スケジュール機構に通知する。命令スケジュール機構は、このキャッシュミス検知情報を受け取った場合に、第1の記憶手段において、実行された前記命令語が属するプログラムにおいて、前記命令語の実行結果を必要とする命令語を含む後続命令を特定し、全て消去する。
キャッシュミス予測機構による命令スケジューリングにより、キャッシュ制御機構と演算機構の各々に対して命令語が発行される時刻の差を動的に変化させるので、演算効率を維持しつつキャッシュミスの影響を隠蔽できる。
また、キャッシュミスによるストール発生時に選択的に命令をフラッシュするので、ストールを防止できる。
以下、添付の図面を参照して発明の実施の形態を説明する。本発明の実施の形態では、複数のプログラムを同時に実行するプロセッサにおいて、キャッシュミスによる影響を抑えるため、また、キャッシュミスが起きても特定のプロセスについて最低性能の保障をするため、種々の対策を個別にまたは組み合わせて実行する。
図1は、複数のプログラムを同時に実行するプロセッサの第1の実施形態の構成を示す。このプロセッサは、第1と第2の命令読み出し機構10,12を含む。各々の命令読み出し機構10,12は、命令フェッチ機構(IF)と命令デコード機構(ID)を含む。第1の命令読み出し機構10は、第1のプログラムの実行位置を示す第1のプログラムカウンタ14の内容により主記憶装置またはキャッシュから第1のプログラムの命令語を読み出し、第2の命令読み出し機構12は、第2のプログラムの実行位置を示す第2のプログラムカウンタ16の内容により主記憶装置またはキャッシュから第2のプログラムの命令語を読み出す。図1に示す例では、命令1次キャッシュ18、データ1次キャッシュ20、2次キャッシュ22および主記憶装置24が用いられる。命令スケジュール機構26,28は、それぞれ命令読み出し機構10,12から受け取った命令語をスケジューリングして、命令キューを登録する記憶手段30にキューイングする。以下では、記憶手段30に記憶された命令キューも参照数字30で表す。命令キュー30は、命令スケジュール機構26,28がスケジューリングした命令語を登録するための記憶装置(記憶手段)である。命令キュー30は、複数のキューからなり、複数の命令語が命令キュー30から並列に発行される。キャッシュ制御機構32は、命令キュー30から並列に発行される命令語のうち、ロード命令/ストア命令を実行する実行部である。ロード機能を有する命令は、データ1次キャッシュ20にアクセスして実行される。また、複数の演算機構34,36は、命令キュー30から取り出した命令語により、キャッシュ制御機構32がロード機能により取り出したデータを用いて演算を行う演算器(ALU)である。演算機構34,36は、異なる演算を行うが、同じ演算を行ってもよい。なお、キャッシュ制御機構32も、演算機構34,36と同様に、命令キュー30からの命令を実行する実行部であるが、ここでは、キャッシュ20にアクセスする点で区別している。キャッシュ制御機構32は、キャッシュ20からキャッシュミスの有無の情報を受け取る。なお、図示していないが、各演算結果を他の演算器の入力などに直接に入力するためのバイパスが装備されている。
第1の命令読み出し機構10と第2の命令読み出し機構12は、この実施形態では互いに異種の命令を処理するが、同種の命令を処理するものであってもよい。たとえば、第1の命令読み出し機構10は、OSや一般アプリケーションに適した汎用の命令(たとえばARM命令)を処理し、第2の命令読み出し機構12は、メディアアプリケーションに適した命令(たとえばFRV命令)を処理する。メディアアプリケーションでは高い命令レベルの並列性が期待されるが、OSや一般アプリケーションではそのような並列性は期待されない。そこで、複数のプログラムのうち、優先的に実行されるべきプログラムを指定する優先フラグ38を記憶する記憶手段を設ける。以下では、記憶手段に記憶された優先フラグも参照数字38で表す。たとえば、メディアアプリケーションについて最低性能を保障したい場合、優先フラグ38に、メディアアプリケーションのためのプログラムを優先することを指定しておく。命令スケジュール機構26,28は、優先フラグ38に基づいて、指定されたプログラム(優先プログラム)の命令のキューイングを優先的に行う。各々の演算結果を他の演算器の入力に直接入力するためのバイパスを装備することにより、1サイクルにより演算が完了できる命令の間にレジスタ依存関係が存在する場合においても、毎サイクル演算を実行できる。命令キュー30からの命令を受け取り実行するキャッシュ制御機構32と演算機構34,36が実行する命令の間には依存関係があるため、スケジュール機構26,28が命令キュー30内でスケジューリングする命令の位置に制約がある。
ここでは、異種命令を効率的に低消費電力で処理するため、命令キュー30はVLIW型命令キューとして構成し、全体の動作周波数の向上や消費電力の削減を図る(片岡晶人ほか、VLIW型命令キューを持つOROCHIの命令スケジューリング機構、情報研報、2007-ARC-172,pp.25-30(2007)、および、中田尚ほか、異種命令混在実行のためVLIW型命令キューの設計、IPSJ SIG Technical Report, 2007-ARC-175, pp.89-94(2007)参照)。VLIW型命令キューは、演算器ごとに入り口が分かれていて、各エントリは、デコーダ側から演算器側に向かうシフトレジスタである。命令語のキューイングは任意の位置に可能である。第1の命令読み出し機構10は、汎用の命令を単純な内部命令に分解して、スケジューリングを容易にする。命令キュー30では、異種の命令が混在してスケジューリングされる。命令スケジュール機構26,28は、リネームステージにおいてマップテーブルで命令の間の依存関係を検査し、命令キュー30の適切な位置にスケジューリングする。依存関係がなければ、既に命令が入っている位置より前方にキューイングできる。同一タイミングでスケジューリングされる命令の間に依存関係がある場合は、命令順において後方になるようにスケジューリングする。命令は一旦入った場所からは移動できない。また、命令の間の追い越しができない。命令発行は常に命令キュー30の演算器側の端のみから行う。命令が発行されると、命令語は演算器側に1つシフトされる。命令キュー30に登録する際に命令スケジュール機構26,28により命令スケジューリングを行うことにより、命令発行機構および演算器周辺回路が単純化される。
命令スケジュール機構26,28は、命令読み出し機構10,12からの情報にしたがって、命令を投入するべき演算器32〜36につながっているキューを選択する。同じキューを使用する命令が2個以上ある時は、命令順で早いものを優先する。この結果衝突した命令とそれ以降の命令のスケジューリングは次以降に行われる。次に、マップテーブル(図示しない)からの情報にしたがって、全てのソースオペランドが供給される位置を見つける。なお、ソースオペランドが供給される位置を見つけるためには、VLIW型命令キューの各エントリのデスティネーションレジスタ番号とソースレジスタ番号の一致比較を行い、できるだけ演算器に近いエントリを探すことになる。ただし、バイパスが使用できない演算器、すなわち、ロード命令からのオペランド供給は1サイクル遅れることを考慮する必要がある。命令発行の際には、図示しないディスパッチ/リードステージにおいて、VLIW型命令キューの演算器側の端のエントリが発行可能かどうかを検査し、発行可能であればレジスタ値を読み出し、演算器の入力バッファに投入する。このVLIWキュー30では、ロード命令がキャッシュミスを起こした場合、後続命令がキャッシュ制御機構32を使用するか、ロード結果を使用するまで、命令発行を継続できる。
第1の実施形態のプロセッサでは、キャッシュミスによる影響を抑えるため、簡素な構成のキャッシュミス予測機構を命令スケジュール機構26,28に付加し、キャッシュミス予測を考慮して命令スケジューリングを行う。具体的には、2つのキャッシュミス予測機構は、2つのプログラムに対応して、第2の記憶手段40と第1のキャッシュミス予測器44からなり、また、第3の記憶手段42と第2のキャッシュミス予測器46からなる。第2の記憶手段40と第3の記憶手段42は、それぞれ、第1のプログラムおよび第2のプログラムに含まれる命令語の実行に要するサイクル数見積りのための実行サイクル数見積り情報をテーブルに記憶し、第1のキャッシュミス予測器44および第2のキャッシュミス予測器46は、それぞれ、第1のプログラムカウンタ14および第2のプログラムカウンタ16の内容により第1の記憶手段40および第2の記憶手段42のエントリ位置を特定して実行サイクル数見積り情報を読み出す。命令スケジュール機構26,28は、スケジューリングの際に、この実行サイクル数見積り情報を用いてキューイングを行い、キャッシュ制御機構32と演算機構34,36に対して命令語が発行される時刻の差を動的に変化させる。第1の記憶手段40および第2の記憶手段42に記憶される各命令語の実行サイクル数見積り情報は、あらかじめ適当な値に設定しておく。
具体的には、命令読み出し機構10,12がフェッチした命令語が、キャッシュ制御機構32によって処理される第1の命令語の実行結果を必要とし演算機構34,36によって処理される第2の命令語である場合、命令スケジュール機構26,28は、記憶手段40,42から読み出した、第1の命令語に対応する実行サイクル数見積り情報の内容に従って、命令キュー30における第2の命令語の位置をあらかじめ離すようにスケジューリングする。また、実行サイクル数見積り情報に従うと命令キュー30にスケジューリング可能な位置が存在しない場合には、命令スケジュール機構26,28は第2の命令語のスケジューリングを保留する。すなわち、命令の間隔を十分に離すだけの余地がなければスケジューリングしない。これにより、第1、第2の記憶手段40,42に記憶されている実行サイクル数見積り情報に応じて命令の間隔をキャッシュミスの影響を受けないように離すことができるので、キャッシュミスによる影響を隠蔽できる。
第2の実施形態のプロセッサでは、図1に示すプロセッサの構成において、第2の記憶手段40または第3の記憶手段42は、キャッシュミスの検出情報および非検出情報に応じてキャッシュミス予測情報を適当な値に更新する。具体的には、キャッシュ制御機構32は、命令キュー30から取り出した命令語についてキャッシュミスを検出した場合、前記命令語の実行サイクル数見積り情報を記憶している第2または第3の記憶手段40,42における命令語のエントリ位置に、キャッシュミス検出情報を送り、キャッシュミスを検出しない場合、そのエントリ位置に、キャッシュミス非検出情報を送る。第2または第3の記憶手段40,42は、キャッシュミス検出情報を受け取ると、その命令語の実行サイクル数見積り情報を増加または最大値に飽和させ、逆に、キャッシュミス非検出情報を受け取ると、その命令語の実行サイクル数見積り情報を減少または最小値に飽和させる回路を備える。これにより、その命令語の実行サイクル数見積り情報は、キャッシュミス発生の状況(ミス率)に応じてキャッシュミスが生じない最小値に動的に変更される。したがって、命令スケジュール機構26,28は、後続命令をスケジューリングする位置を、記憶手段40,42における実行サイクル数見積り情報に基づいて、キャッシュミスが生じないと予測される適当な位置に動的に変更できる。これにより、記憶手段40,42に記憶される実行サイクル数見積り情報の値を、動的に最適な値に調整できる。
以上のようにキャッシュミスを予測して命令語のスケジューリングを行うことにより命令語発行の際のキャッシュミスを防止するが、予測ミスによりキャッシュミスが起こることがある。特に、同時に実行する複数のプログラムの中に最低性能の保障(QoS保障)を行うプログラム(たとえばマルチメディアアプリケーション)がある場合、最低性能を保障するため、そのプログラムの実行の際にキャッシュミスが頻発しないようにしなければならない。そこで、図2に示す第3の実施形態のプロセッサでは、命令キュー30において、キューイングされる命令語50は、その命令語がどのプログラムに属するかを示す種別フラグ52とともに記憶しておく。さらに、優先プログラムに属しない命令語が一定時間に実行された数を測定する第1の測定手段48を備える。第1の測定手段48により測定された実行数が増加または減少するにつれ、非優先プログラムに対応する記憶手段38、40は、その内部での命令語の実行サイクル数見積り情報を増加または減少する。測定された実行数に対応する実行サイクル数見積り情報の増減の関係はあらかじめ設定されていて、実行サイクル数見積り情報は、これを用いて増減される。
上述のキャッシュミス予測にもかかわらず予測ミスが頻発する状況下では最低性能の維持が困難となる。そこで、図3に示す第4の実施形態のプロセッサでは、最低性能保障を効率的に行うため、優先プログラムに属さない命令語の実行においてキャッシュミスが起こると、優先でないプログラム(非優先プログラム)に属する、その命令語以降の命令流を命令キュー30の中で選択的にフラッシュ(消去)して、キャッシュミスを起こしたロード命令に依存している命令が原因で発行停止(ストール)が発生しないようにする。この選択的フラッシュにより、優先プログラムへの干渉を排除して、優先プログラムの命令流の発行停止要因を取り除く。
具体的には、図3に示すように、命令キュー30において、キューイングされる命令語50が、その命令語がどのプログラムに属するかを示す種別フラグ52とともに記憶される。そして、非優先プログラムに属する命令語の実行においてキャッシュミスが起こると、優先フラグ38と種別フラグ52とが不一致の命令(すなわち非優先プログラムの命令語)のみを選択的にフラッシュする。すなわち、キャッシュ制御機構32は、優先フラグ38により指定された優先プログラムに属さない命令語を実行する際にキャッシュミスを検知した場合、キャッシュミス検知情報を命令スケジュール機構26,28に通知する。命令スケジュール機構26,28には、選択的フラッシュ機構が設けられている。選択的フラッシュ機構は、キャッシュミス検知情報を受け取ると、命令キュー30において、キャッシュミスを起こした命令語が属するプログラムにおいて、その命令語の実行結果を必要とする命令語を含む後続命令を特定し、すべて消去する。好ましくは、命令スケジュール機構26,28は、キャッシュミスが解消されたとの情報をキャッシュ制御機構30から通知されると、命令キュー30に対して、消去した後続命令のキューイングを再開する。
第5の実施形態では、図3に示すプロセッサにおいて、たとえば、キャッシュ制御機構30が優先プログラムに属さない命令語である第1の命令語を実行し、かつ、キャッシュミスを検知した場合であっても、第1の命令語の実行結果を必要とする第2の命令語のスケジューリング可能な位置が命令キュー30に存在しない場合は、優先でないプログラムにおける後続命令のキューイングを保留する。すなわち、第1の命令語を処理した命令スケジュール機構26,28は、キャッシュ制御機構30からキャッシュミスの検知を通知されたとき、記憶手段40,42から読み出した第2の命令語の実行サイクル数見積り情報に従うと命令キュー30に第2の命令語のスケジューリング可能な位置が存在しないと判断した場合、第1の命令語が属するプログラムを構成する命令語のうち、第1の命令語の実行結果を必要とする命令語を含む後続命令のキューイングを保留する。こうして優先でないプログラムの実行を一時的に停止させることにより、優先プログラムの実行速度を一定に維持できる。
第6の実施形態のプロセッサでは、図4に示すように、第1の実施形態で用いられるキャッシュミス予測機構に加えて,キャッシュ制御機構30からキャッシュミスの有無の通知を受け取る第2の測定手段60を備え、キャッシュミスの測定結果に応じて命令語のスケジューリングを行う。具体的には、第2の測定手段60は、たとえば一定の期間において、優先フラグ38によって指定された優先プログラムが走行中である場合における、優先フラグ38によって指定されずかつキャッシュミスの発生頻度がしきい値より低い非優先プログラムの走行時間とキャッシュミスの発生頻度がしきい値より高い非優先プログラムの走行時間の第1の比と、優先フラグ38によって指定された優先プログラムが走行中でない場合における、優先フラグ38によって指定されずかつキャッシュミスの発生頻度がしきい値より低い非優先プログラムの走行時間とキャッシュミスの発生頻度がしきい値より高い非優先プログラムの走行時間の第2の比を、測定する。第2の測定手段60は、ソフトウェアとして実装してもよい。この測定結果に対応して、命令スケジュール機構26,28は、命令キュー30における命令語のスケジューリングにおいて、第1の比が第2の比よりも大きくなるようにする。これにより、優先フラグ38により指定されない非優先プログラムにおけるキャッシュミスの発生頻度に依存せずに、優先フラグ38により指定される優先プログラムの走行中における優先プログラムの実行速度を一定に維持する。好ましくは、第4の実施形態におけるように、非優先プログラムに属する命令語の実行においてキャッシュミスを起きると、命令スケジュール機構26,28は、非優先プログラムにおいて、キャッシュミスを起こした命令語の実行結果を必要とする命令語を含む後続命令を特定し、すべて消去する。
第7の実施形態のプロセッサでは、図5に示すように、第1の実施形態で用いられるキャッシュミス予測機構に加えて,優先フラグ38によって指定された優先プログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段62を備える。そして、測定された実行数がしきい値より低い場合、当該事象をイベントにより通知する。この通知に対応する制御のための制御レジスタまたは命令セットをOSが用意していれば、OSのスケジューラ制御を併用できる。通知を受けたOSは、必要に応じて、スケジューラでのQoS維持に切り換える。好ましくは、さらに、第4の実施形態におけるように、非優先プログラムに属する命令語の実行においてキャッシュミスを起きると、非優先プログラムにおいて、キャッシュミスを起こした命令語の実行結果を必要とする命令語を含む後続命令を特定し、すべて消去する。
第8の実施形態のプロセッサでは、図6に示すように、第1の実施形態で用いられるキャッシュミス予測機構に加えて,第3の測定手段62に加えて、さらに、命令読み出し機構10,12は、優先フラグ38によって指定されない非優先プログラムに属する命令語の実行を一時的に停止させる停止手段64を備える。第3の測定手段62は、測定された実行数がしきい値より低いことを検出した場合には、停止手段64に、その旨を通知する。停止手段64は、この通知に対応して、非優先プログラムの命令スケジューリングを一時的に停止させる。これにより、優先プログラムの実行速度が一定に維持される。
第9の実施形態のプロセッサでは、第4の実施形態で説明した選択的フラッシュに加えて、さらに、図7に示すように、優先フラグ38によって指定された優先プログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段62を備え、測定結果に対応して優先プログラムの命令語の選択的フラッシュをすることにより、非優先プログラムにおけるキャッシュミスの発生頻度にかかわらず、優先プログラムの実行速度を一定に保つ。具体的には、第3の測定手段62から、測定された実行数がしきい値より低いことが通知されると、命令スケジュール機構26,28は、命令キュー30において、優先フラグ38と種別フラグ52とが不一致の命令語(すなわち非優先プログラムの命令語)のみを選択的にフラッシュする。
第10の実施形態のプロセッサでは、優先フラグ38によって指定されない複数の非優先プログラムが実行される。図8に示すように、第1の実施形態で用いられるキャッシュミス予測機構に加えて,非優先プログラムに属する命令語が一定時間に実行された数を測定する第4の測定手段66を備えるとともに、命令読み出し機構10,12は、非優先プログラムごとに、命令語のスケジューリングを一時的に停止させる停止手段68を備える。第4の測定手段66は、測定された実行数がしきい値より低いことを検出した場合には、停止手段68に通知し、停止手段68は、個々の非優先プログラムのスケジューリングを一時的に停止する。この一時的停止により、優先プログラムまたは複数の非優先プログラムの中の特定の非優先プログラムの実行速度を一定に維持する。
第11の実施形態のプロセッサでは、第4の実施形態で説明した選択的フラッシュに加えて、さらに、図9に示すように、優先フラグ38によって指定された優先プログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段62を備える。第3の測定手段62は、測定された実行数がしきい値より低い場合、すなわち、優先プログラムの実行速度を一定に維持することが困難であることを検出した場合、当該事象をイベントにより通知する。これらの機構を制御するための制御レジスタまたは命令セットをOSが用意していれば、OSのスケジューラ制御を併用できる。すなわち、通知を受けたOSは必要に応じてスケジューラでのQoS維持に切り換える。
次に、第12の実施形態のプロセッサについて説明する。このプロセッサは、第1の実施形態で用いられるキャッシュミス予測機構に加えて,図10に示すように、外部キャッシュリクエストキューを登録する記憶手段74を備える。以下では、記憶手段70に記憶された外部キャッシュキューも参照数字74で表す。外部リクエストキュー74では、キューイングされている外部キャッシュリクエスト70が、外部キャッシュリクエストがどのプログラムに属するかを示す情報である種別フラグ72とともに、キューイングされる。外部キャッシュは、この例では2次キャッシュ22である。外部キャッシュコントローラ76は、外部リクエストキュー74からの外部キャッシュリクエストを実行する。しかし、優先フラグ38により指定された優先プログラムに属さないロード命令により外部キャッシュミスを検知した場合には、外部キャッシュリクエストキュー74の中から該当する外部キャッシュリクエストを特定し、後続の2次リクエストをフラッシュ(消去)する。非保障側のリクエストを選択的にフラッシュすることにより、非優先側の命令の2次キャッシュミスによる優先プログラムの実行への干渉を排除して、優先プログラムのQoSを維持する。
次に、第13の実施形態のプロセッサについて説明する。このプロセッサは、第1の実施形態で用いられるキャッシュミス予測機構に加えて,図11に示すように、入出力リクエストキューを登録する記憶手段84を備える。以下では、記憶手段84に記憶された入出力リクエストキューも参照数字84で表す。入出力リクエストキュー84には、外部の入出力装置との入出力リクエスト80が、その入出力リクエストがどのプログラムに属するかを示す情報である種別フラグ82とともにキューイングされる。入出力コントローラ86は、入出力リクエストキュー84に対応して入出力リクエスト80を実行するが、優先フラグ38により指定された優先プログラムに属さない命令語により入出力待ちを検知した場合には、入出力リクエストキュー84の中で該当する入出力リクエストを特定し消去する。すなわち、性能低下の原因が外部入出力装置へのリクエストであった場合、非保障側のリクエストを選択的にキャンセルする。これにより、優先プログラムのQoSを維持する。
好ましくは、第12と第13の実施形態において、優先フラグ38によって指定された優先プログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段62を備える。第3の測定手段62は、測定された実行数がしきい値より低いことを検出したときに、当該事象をイベントにより通知する。これにより、これらの機構を制御するための制御レジスタまたは命令セットをOSが用意していれば、OSのスケジューラ制御を併用できる。すなわち、通知を受けたOSは、必要に応じてスケジューラでのQoS維持に切り換える。
以上に説明したように、本発明の上述の種々の実施形態において、(1)キャッシュミス予測機構による命令スケジューリング、(2)キャッシュミスによるストール発生時の選択的命令フラッシュ、(3)非優先プログラムの実行を一時的に停止させることによる優先プログラムの一定の実行速度の維持などの、互いに独立した処理が種々の形態で組み合わされている。このような発明の種々の特徴は、いうまでもなく、個別に、また、種々の組合せとして、具体化できる。
また、発明の実施形態では、命令キューとして、VLIWキューを用いたが、これに限定されない。また、複数のプログラムとして、異種命令の場合について説明しているが、同種命令でもよい。同種命令でも優先側を判断する機構があれば、本発明の優先的な処理が適用できる。また、組み込み機器用プロセッサでないプロセッサでも、個々のコアを異種命令混在実行とする場合は、本発明が適用できる。
第1の実施形態のプロセッサのブロック図 第3の実施形態のプロセッサのブロック図 第4の実施形態のプロセッサのブロック図 第6の実施形態のプロセッサのブロック図 第7の実施形態のプロセッサのブロック図 第8の実施形態のプロセッサのブロック図 第9の実施形態のプロセッサのブロック図 第10の実施形態のプロセッサのブロック図 第11の実施形態のプロセッサのブロック図 第12の実施形態のプロセッサの1部のブロック図 第13の実施形態のプロセッサの1部のブロック図
符号の説明
10、12 命令読み出し機構、 14、16 プログラムカウンタ、 18 命令1次キャッシュ、 20 データ1次キャッシュ、 22 2次キャッシュ、 24 主記憶装置、 26,28 命令スケジュール機構、 30 命令キュー(第1の記憶手段)、 32 キャッシュ制御機構、 34,36 演算機構、 38 優先フラグ、 40 第2の記憶手段、 42 第3の記憶手段、 44、46 キャッシュミス予測器、 50 命令語、 52 種別フラグ、 60 第2の測定手段、 62 第3の測定手段、 64 停止手段、66 第4の測定手段、 68 停止手段、 70 外部キャッシュリクエスト、 72 種別フラグ、 74 外部キャッシュリクエストキュー、 76 外部キャッシュコントローラ、 80 入出力リクエスト、 82 種別フラグ、 84 入出力リクエストキュー、 86 入出力コントローラ。

Claims (15)

  1. 複数のプログラムを同時に実行するプロセッサであって、
    前記複数のプログラムの中の第1のプログラムの実行位置を示す第1のプログラムカウンタと、
    前記複数のプログラムの中の第2のプログラムの実行位置を示す第2のプログラムカウンタと、
    第1のプログラムカウンタの内容により主記憶装置またはキャッシュから第1のプログラムの命令語を読み出す第1の命令読み出し機構と、
    第2のプログラムカウンタの内容により主記憶装置またはキャッシュから第2のプログラムの命令語を読み出す第2の命令読み出し機構と、
    第1及び第2の命令読み出し機構により読み出された命令語をキューイングするための第1の記憶手段と、
    第1の記憶手段から取り出した命令語のうちロード機能を有する命令を、キャッシュにアクセスして実行するキャッシュ制御機構と、
    第1の記憶手段から取り出した命令語により、ロード機能により取り出したデータを用いて演算を行う演算機構と、
    第1のプログラムに含まれる命令語の実行に要するサイクル数見積りのための実行サイクル数見積り情報を記憶する第2の記憶手段と、
    第2のプログラムに含まれる命令語の実行に要するサイクル数見積りのための実行サイクル数見積り情報を記憶する第3の記憶手段と、
    第1のプログラムカウンタの内容により第2の記憶手段のエントリ位置を特定して実行サイクル数見積り情報を読み出す第1のキャッシュミス予測器と、
    第2のプログラムカウンタの内容により第3の記憶手段のエントリ位置を特定して実行サイクル数見積り情報を読み出す第2のキャッシュミス予測器と、
    第1および第2の命令読み出し機構から入力される命令語を第1の記憶手段にキューイングする命令スケジュール機構であって、前記命令語が、前記キャッシュ制御機構によって処理される第1の命令語の実行結果を必要とし前記演算機構によって処理される第2の命令語である場合、前記第1の命令語に対応する、第1または第2のキャッシュミス予測器からの前記実行サイクル数見積り情報の内容に従って、第1の記憶手段における前記第2の命令語のスケジューリング位置を決定し、一方、前記実行サイクル数見積り情報に従うとスケジューリング可能な位置が存在しない場合には前記第2の命令語のスケジューリングを保留する命令スケジュール機構と
    を備えることを特徴とするプロセッサ。
  2. 請求項1に記載されたプロセッサであって、
    前記キャッシュ制御機構は、第1の記憶手段から取り出した命令語についてキャッシュミスを検出した場合には、前記命令語の実行サイクル数見積り情報を記憶している第2または第3の記憶手段における前記命令語のエントリ位置に、キャッシュミス検出情報を送り、第2または第3の記憶手段は、前記キャッシュミス検出情報を受け取ると、前記命令語の実行サイクル数見積り情報を増加させまたは最大値に飽和させ、前記キャッシュ制御機構は、前記命令語についてキャッシュミスを検出しない場合には、第2または第3の記憶手段の前記命令語のエントリ位置に、キャッシュミス非検出情報を送り、第2または第3の記憶手段は、前記キャッシュミス非検出情報を受け取ると、前記命令語の実行サイクル数見積り情報を減少させまたは最小値に飽和させることを特徴とするプロセッサ。
  3. 請求項2に記載されたプロセッサであって、
    第1の記憶手段は、キューイングされる命令語を、その命令語がどのプログラムに属するかを示す情報とともに記憶し、
    さらに、第1および第2のプログラムの中の1つのプログラムに属する命令語が一定時間に実行された数を測定する第1の測定手段を備え、
    前記第1の測定手段により測定された実行数がしきい値より小さい場合に、前記第2および第3の記憶手段の中の他方は、記憶されている命令語の実行サイクル数見積り情報を増加することを特徴とするプロセッサ。
  4. 請求項1または2に記載されたプロセッサであって、
    さらに、第1のプログラムと第2のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶し、前記キャッシュ制御機構に送る第4の記憶手段を備え、
    第1の記憶手段は、キューイングされる命令語を、その命令語がどのプログラムに属するかを示す情報とともに記憶し、
    さらに、第4の記憶手段によって指定されたプログラムが走行中である場合における、第4の記憶手段によって指定されずかつキャッシュミスの発生頻度がしきい値より低いプログラムの走行時間と、第4の記憶手段によって指定されずかつキャッシュミスの発生頻度がしきい値より高いプログラムの走行時間との第1の比と、第4の記憶手段によって指定されたプログラムが走行中でない場合における、第4の記憶手段によって指定されずかつキャッシュミスの発生頻度がしきい値より低い前記プログラムの走行時間と、第4の記憶手段によって指定されずかつキャッシュミスの発生頻度がしきい値より高い前記プログラムの走行時間との第2の比を測定する第2の測定手段を備え、
    前記命令スケジュール機構は、第1の比が第2の比より小さいと第2の測定手段が測定したとき、第1の比を第2の比よりも大きくするようにスケジューリングを行うことを特徴とするプロセッサ。
  5. 請求項1または2に記載されたプロセッサであって、
    第1の記憶手段は、キューイングされる命令語を、その命令語がどのプログラムに属するかを示す情報とともに記憶し、
    さらに、第1のプログラムと第2のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶し、前記キャッシュ制御機構に送る第4の記憶手段と、
    第4の記憶手段によって指定されたプログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段を備え、
    前記第3の測定手段は、測定された前記実行数がしきい値より低い場合に、当該事象をイベントにより通知することを特徴とするプロセッサ。
  6. 請求項1または2に記載されたプロセッサであって、
    第1の記憶手段は、キューイングされる命令語を、その命令語がどのプログラムに属するかを示す情報とともに記憶し、
    さらに、第1のプログラムと第2のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶し、前記キャッシュ制御機構に送る第4の記憶手段と、
    第4の記憶手段によって指定されたプログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段と、
    第4の記憶手段によって指定されないプログラムに属する命令語の実行を一時的に停止させる停止手段とを備え、
    前記第3の測定手段は、測定された前記実行数がしきい値より低い場合には、前記停止手段に、第4の記憶手段によって指定されないプログラムの実行を一時的に停止させることを特徴とするプロセッサ。
  7. 請求項1または2に記載されたプロセッサであって、
    第1の記憶手段は、キューイングされる命令語を、その命令語がどのプログラムに属するかを示す情報とともに記憶し、
    さらに、複数のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶し、前記キャッシュ制御機構に送る第4の記憶手段と、
    第4の記憶手段によって指定されないプログラムに属する命令語が一定時間に実行された数を測定する第4の測定手段と、
    第4の記憶手段によって指定されないプログラムごとに命令語の実行を一時的に停止させる停止手段を備え、
    前記第4の測定手段は、測定された前記実行数がしきい値より低い場合には、前記停止手段に、指定されない個々のプログラムの実行を一時的に停止させることを特徴とするプロセッサ
  8. 請求項1または2に記載されたプロセッサであって、
    さらに、第1のプログラムと第2のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶し、前記キャッシュ制御機構に送る第4の記憶手段を備え、
    第1の記憶手段は、キューイングされる命令語を、その命令語がどのプログラムに属するかを示す情報とともに記憶し、
    前記キャッシュ制御機構は、第4の記憶手段によって指定されたプログラムに属さない命令語を実行し、かつ、その実行においてキャッシュミスを検知した場合、キャッシュミス検知情報を前記命令スケジュール機構に通知し、
    前記命令スケジュール機構は、前記キャッシュミス検知情報を受け取った場合に、第1の記憶手段において、実行された前記命令語が属するプログラムにおいて、前記命令語の実行結果を必要とする命令語を含む後続命令を特定し、全て消去する
    ことを特徴とするプロセッサ。
  9. 請求項8に記載されたプロセッサであって、
    前記命令スケジュール機構は、前記キャッシュミスが解消されたとの情報を前記キャッシュ制御機構から通知されると、第1の記憶手段に対して、消去した前記後続命令のキューイングを再開することを特徴とするプロセッサ。
  10. 請求項8に記載されたプロセッサであって、
    前記キャッシュ制御機構が、第4の記憶手段によって指定されたプログラムに属さない前記第1の命令語を実行し、かつ、キャッシュミスを検知した場合であっても、前記命令スケジュール機構は、第2または第3の記憶手段から読み出した前記第2の命令語の実行サイクル数見積り情報に従うと前記第2の命令語のスケジューリング可能な位置が存在しない場合には、前記第1の命令語が属するプログラムを構成する命令語の消去を行わないことを特徴とするプロセッサ。
  11. 請求項8に記載されたプロセッサであって、
    さらに、第4の記憶手段によって指定されたプログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段を備え、
    前記命令スケジュール機構は、測定された前記実行数がしきい値より小さい場合に、第1の記憶手段において、前記命令語が属しないプログラムに属する命令語を特定し、全て消去することを特徴とするプロセッサ。
  12. 請求項8に記載されたプロセッサであって、
    さらに、第4の記憶手段によって指定されたプログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段を備え、
    前記測定手段により測定された前記実行数がしきい値より小さい場合に、当該事象をイベントにより通知することを特徴とするプロセッサ。
  13. 請求項1または2に記載されたプロセッサであって、さらに、
    第1のプログラムと第2のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶する第4の記憶手段と、
    キューイングされている外部キャッシュリクエストを、前記外部キャッシュリクエストがどのプログラムに属するかを示す情報とともに記憶する外部キャッシュリクエストキューと、
    第4の記憶手段により指定されたプログラムに属さない命令語により外部キャッシュミスを検知した場合に、前記外部キャッシュリクエストキューの中から、前記指定されたプログラムに属さない命令語に関連する外部キャッシュリクエストを特定し消去する外部キャッシュコントローラと
    を備えることを特徴とするプロセッサ。
  14. 請求項1または2に記載されたプロセッサであって、
    さらに、第1のプログラムと第2のプログラムのうちいずれを優先的に実行するかを指定する情報を記憶する第4の記憶手段と、
    キューイングされている人出力リクエストを、前記入出力リクエストキューがどのプログラムに属するかを示す情報とともに記憶する入出力リクエストキューと、
    第4の記憶手段により指定されたプログラムに属さない命令語により入出力待ちを検知した場合に、前記入出力リクエストキューの中から、前記指定されたプログラムに属さない命令語に関連する入出力リクエストを特定し消去する入出力コントローラと
    を備えることを特徴とするプロセッサ。
  15. 請求項13または14に記載されたプロセッサであって、さらに、第4の記憶手段(優先フラグ)によって指定されたプログラムに属する命令語が一定時間に実行された数を測定する第3の測定手段を備え、前記第3の測定手段は前記実行数がしきい値より小さいことを検出したときに、当該事象をイベントにより通知することを特徴とするプロセッサ。
JP2008183828A 2008-07-15 2008-07-15 プロセッサ Expired - Fee Related JP4759026B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008183828A JP4759026B2 (ja) 2008-07-15 2008-07-15 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008183828A JP4759026B2 (ja) 2008-07-15 2008-07-15 プロセッサ

Publications (2)

Publication Number Publication Date
JP2010026583A true JP2010026583A (ja) 2010-02-04
JP4759026B2 JP4759026B2 (ja) 2011-08-31

Family

ID=41732391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008183828A Expired - Fee Related JP4759026B2 (ja) 2008-07-15 2008-07-15 プロセッサ

Country Status (1)

Country Link
JP (1) JP4759026B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534476A (ja) * 2013-09-24 2016-11-04 インテル・コーポレーション キャッシュ占有決定および命令スケジューリングのための方法および装置
JP2020510255A (ja) * 2017-03-07 2020-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation キャッシュ・ミス・スレッド・バランシング

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272518A (ja) * 1997-11-26 1999-10-08 Digital Equip Corp <Dec> プロセッサパイプラインにより処理される命令の特性の統計値を推定する方法
JP2001356903A (ja) * 2000-05-04 2001-12-26 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサ内でのパイプライン・ステージのフラッシュ方法および装置
WO2004044745A1 (ja) * 2002-11-13 2004-05-27 Fujitsu Limited マルチスレッディングプロセッサにおけるスケジューリング方法およびマルチスレッディングプロセッサ
JP2004532444A (ja) * 2001-02-19 2004-10-21 イマジネイション テクノロジーズ リミテッド マルチスレッドプロセッサ上の優先順位及び命令速度の制御
JP2006343872A (ja) * 2005-06-07 2006-12-21 Keio Gijuku マルチスレッド中央演算装置および同時マルチスレッディング制御方法
JP2007213578A (ja) * 2006-02-09 2007-08-23 Internatl Business Mach Corp <Ibm> データ・キャッシュ・ミス予測およびスケジューリング
WO2008029450A1 (fr) * 2006-09-05 2008-03-13 Fujitsu Limited Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272518A (ja) * 1997-11-26 1999-10-08 Digital Equip Corp <Dec> プロセッサパイプラインにより処理される命令の特性の統計値を推定する方法
JP2001356903A (ja) * 2000-05-04 2001-12-26 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサ内でのパイプライン・ステージのフラッシュ方法および装置
JP2004532444A (ja) * 2001-02-19 2004-10-21 イマジネイション テクノロジーズ リミテッド マルチスレッドプロセッサ上の優先順位及び命令速度の制御
WO2004044745A1 (ja) * 2002-11-13 2004-05-27 Fujitsu Limited マルチスレッディングプロセッサにおけるスケジューリング方法およびマルチスレッディングプロセッサ
JP2006343872A (ja) * 2005-06-07 2006-12-21 Keio Gijuku マルチスレッド中央演算装置および同時マルチスレッディング制御方法
JP2007213578A (ja) * 2006-02-09 2007-08-23 Internatl Business Mach Corp <Ibm> データ・キャッシュ・ミス予測およびスケジューリング
WO2008029450A1 (fr) * 2006-09-05 2008-03-13 Fujitsu Limited Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534476A (ja) * 2013-09-24 2016-11-04 インテル・コーポレーション キャッシュ占有決定および命令スケジューリングのための方法および装置
US10140210B2 (en) 2013-09-24 2018-11-27 Intel Corporation Method and apparatus for cache occupancy determination and instruction scheduling
JP2020510255A (ja) * 2017-03-07 2020-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation キャッシュ・ミス・スレッド・バランシング

Also Published As

Publication number Publication date
JP4759026B2 (ja) 2011-08-31

Similar Documents

Publication Publication Date Title
CN101160565B (zh) 无操作系统干预情况下调度os隔离定序器上的线程的机制
JP5795820B2 (ja) プロセッサ、方法、システム、及び、プログラム
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
JP6434791B2 (ja) マルチスレッディングを支援するための演算ユニット、それを含むプロセッサ及びプロセッサの動作方法
JP4642305B2 (ja) マルチスレッド・プロセッサ内の複数のスレッドに入り、出る方法と装置
JP5774707B2 (ja) 異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング
US9436464B2 (en) Instruction-issuance controlling device and instruction-issuance controlling method
CN104335175B (zh) 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统
US20070074217A1 (en) Scheduling optimizations for user-level threads
US20090144525A1 (en) Apparatus and method for scheduling threads in multi-threading processors
US9003421B2 (en) Acceleration threads on idle OS-visible thread execution units
CN101128797A (zh) 具有用于增进流水线使用效率的优化线程调度器的多线程微处理器
US20130086367A1 (en) Tracking operand liveliness information in a computer system and performance function based on the liveliness information
KR20120070303A (ko) 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법
JP2011023032A (ja) 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム
JP2010527071A (ja) マルチスレッド型プロセッサのためのスレッドデエンファシス命令
CN116414464A (zh) 调度任务的方法和装置、电子设备和计算机可读介质
JP4759026B2 (ja) プロセッサ
US10095518B2 (en) Allowing deletion of a dispatched instruction from an instruction queue when sufficient processor resources are predicted for that instruction
US7904703B1 (en) Method and apparatus for idling and waking threads by a multithread processor
JP2011216004A (ja) マイクロプロセッサ、電子制御ユニット、実行比率切り替え方法
EP4650962A1 (en) Instruction processing method and apparatus, processor, and computer-readable storage medium
US11474861B1 (en) Methods and systems for managing asynchronous function calls
US7603673B2 (en) Method and system for reducing context switch times
CN118585312A (zh) 指令调度方法及装置、处理器、电子装置和存储介质

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110331

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110331

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

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: 20110603

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees