JP4574493B2 - プロセッサシステム及びマルチスレッドプロセッサ - Google Patents

プロセッサシステム及びマルチスレッドプロセッサ Download PDF

Info

Publication number
JP4574493B2
JP4574493B2 JP2005240195A JP2005240195A JP4574493B2 JP 4574493 B2 JP4574493 B2 JP 4574493B2 JP 2005240195 A JP2005240195 A JP 2005240195A JP 2005240195 A JP2005240195 A JP 2005240195A JP 4574493 B2 JP4574493 B2 JP 4574493B2
Authority
JP
Japan
Prior art keywords
thread
output
processor
frequency
control signal
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 - Fee Related
Application number
JP2005240195A
Other languages
English (en)
Other versions
JP2007058331A5 (ja
JP2007058331A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005240195A priority Critical patent/JP4574493B2/ja
Publication of JP2007058331A publication Critical patent/JP2007058331A/ja
Publication of JP2007058331A5 publication Critical patent/JP2007058331A5/ja
Application granted granted Critical
Publication of JP4574493B2 publication Critical patent/JP4574493B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Description

本発明は、プロセッサの動作周波数が変化した時にも特定のスレッドに対して処理性能を一定にするマルチスレッドプロセッサにおけるスレッドスケジュール方法に関する。
従来、プロセッサシステムにおいて、システムに接続された装置が一定周期でデータの送受信を行うならば、データの取りこぼしや供給不足を起こさないためにシステムの処理性能が一定であることを保証する必要がある(例えば、特許文献1参照)。
例えば、ソフトウェアによりシリアルデータ通信を行うならば、データ転送時の時間軸のずれによるデータ転送誤りを起こさないように、プロセッサシステムの処理速度が一定であることを保証しなくてはならない。
この処理性能が一定であることを保証する際には、タイマを用いて一定周期の割り込みを発生させる方法が一般に用いられている。また、一部のプロセッサでは、キャッシュや分岐予測機構のようなプロセッサの処理性能を変動させる機構をプロセッサから排除することで処理性能が一定であることを保証している。例えば、Ubicom社のIP3023プロセッサは、キヤッシュや分岐予測機構を搭載しないことで処理性能が一定であることを保証している。尚、プロセッサの処理性能を変動させる機構は、多くの場合、プロセッサの性能を高めるが、時にプロセッサの性能を低下させる可能性があるからである。
特開平07-114517号公報
しかしながら、これらのプロセッサシステムでは、処理性能を一定にすることが可能であるが、制約もある。例えば、タイマを用いて一定周期の割り込みを発生させる方法では、割り込み起動及び終了にかかるサイクルによるオーバーヘッドのために、処理の周期が非常に短い用途に用いることができない。また、処理性能を変動させる機構をプロセッサから排除する方法では、プロセッサのクロック周波数によって処理性能が変化するため、プロセッサのクロック周波数を低くすることで消費電力を低減させることができない。
本発明は、上記課題を解決するためになされたもので、処理の周期が非常に短い場合やプロセッサの消費電力を低減するために、プロセッサのクロック周波数を低下させた場合でも処理性能を一定にすることを目的とする。
本発明は、クロック生成回路と、マルチスレッドプロセッサとで構成されるプロセッサシステムであって、前記クロック生成回路は、前記マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号に基づいて、前記マルチスレッドプロセッサのプロセッサクロックを生成するクロック生成手段を有し、前記マルチスレッドプロセッサは、当該マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号を出力する制御手段と、前記制御手段が出力する周波数制御信号に基づいて実行させるスレッドのスレッド番号を選択して出力するスケジュール手段と、前記スケジュール手段が出力するスレッド番号のスレッドを前記プロセッサクロックに同期して実行する実行手段と、を有し、前記スケジュール手段は、前記周波数制御信号が、前記動作周波数が所定の周波数であることを示す場合に、前記スレッド番号を一定周期で出力するように当該スレッド番号をテーブルの要素として保持している第1のスレッドスケジュールテーブルと、前記周波数制御信号が、前記動作周波数を前記所定の周波数から変化させたことを示す場合に、前記スレッド番号を前記一定周期と同じ周期で出力するように当該スレッド番号をテーブルの要素として保持している第2のスレッドスケジュールテーブルと、前記第1のスレッドスケジュールテーブル前記第2のスレッドスケジュールテーブルとにそれぞれ保持されている各要素をテーブルから順に繰り返し読み出す読み出し手段と、前記周波数制御信号により前記動作周波数が所定の周波数の場合、前記読み出し手段により前記第1のスレッドスケジュールテーブルから読み出された要素を選択して出力し、前記周波数制御信号により前記動作周波数を前記所定の周波数から変化させた場合、前記読み出し手段により前記第2のスレッドスケジュールテーブルから読み出された要素を選択して出力する出力手段と、を含むことを特徴とする。
また、本発明は、マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号をクロック生成回路へ出力し、該周波数制御信号に基づいて前記クロック生成回路で生成された前記マルチスレッドプロセッサのプロセッサクロックを入力するマルチスレッドプロセッサであって、前記動作周波数を変化させるための周波数制御信号を出力する制御手段と、前記制御手段が出力する周波数制御信号に基づいて実行させるスレッドのスレッド番号を選択して出力するスケジュール手段と、前記スケジュール手段が出力するスレッド番号のスレッドを前記プロセッサクロックに同期して実行する実行手段と、を有し、前記スケジュール手段は、前記周波数制御信号が、前記動作周波数が所定の周波数であることを示す場合に、前記スレッド番号を一定周期で出力するように当該スレッド番号をテーブルの要素として保持している第1のスレッドスケジュールテーブルと、前記周波数制御信号が、前記動作周波数を前記所定の周波数から変化させたことを示す場合に、前記スレッド番号を前記一定周期と同じ周期で出力するように当該スレッド番号をテーブルの要素として保持している第2のスレッドスケジュールテーブルと、前記第1のスレッドスケジュールテーブル前記第2のスレッドスケジュールテーブルとにそれぞれ保持されている各要素をテーブルから順に繰り返し読み出す読み出し手段と、前記周波数制御信号により前記動作周波数が所定の周波数の場合、前記読み出し手段により前記第1のスレッドスケジュールテーブルから読み出された要素を選択して出力し、前記周波数制御信号により前記動作周波数を前記所定の周波数から変化させた場合、前記読み出し手段により前記第2のスレッドスケジュールテーブルから読み出された要素を選択して出力する出力手段と、を含むことを特徴とする。
本発明によれば、プロセッサの動作周波数をスレッドスケジューラに入力することにより、処理性能を一定にする必要があるスレッドがスケジュールされる周期を一定にすることができる。これにより、処理の周期が非常に短い場合やプロセッサの消費電力を低減するために、プロセッサのクロック周波数を低下させた場合でも処理性能を一定にすることができる。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
図1は、本実施形態におけるマルチスレッドプロセッサシステムの構成の一例を示す図である。図1に示すように、マルチスレッドプロセッサシステムは、クロック生成回路(CLKGEN)100とマルチスレッドプロセッサ101とから構成されている。このクロック生成回路100とマルチスレッドプロセッサ101とは、少なくともプロセッサクロック(CLK)120と周波数制御信号(FREQCTRL)121とで接続されている。
また、マルチスレッドプロセッサ101は、プロセッサクロック120に同期して動作するため、マルチスレッドプロセッサ101の動作周波数はプロセッサクロック120の周波数に比例する。ここで、周波数制御信号121はプロセッサクロック120の周波数を変化させるための信号である。以下の説明では、周波数制御信号121が「0」のとき、プロセッサクロック120の周波数が100MHz、また「1」のとき、プロセッサクロック120の周波数が200MHzであるとして、本実施形態における動作を説明する。
ここで、マルチスレッドプロセッサ101はスレッドスケジューラ(SCHED)110と、データパス116と、制御回路(CTRL)115とから構成されている。このデータパス116には、少なくとも2つのプログラムカウンタと、レジスタファイル(RF)112と、数値演算ユニット(ALU)113と、メモリ(MEM)114とが含まれる。尚、図1では、プログラムカウンタはPC#0(111a)〜PC#3(111d)の4つとしている。
次に、図2を用いて、マルチスレッドプロセッサ101における各ブロックの動作及び代表的な信号の接続関係について説明する。
図2において、スレッドスケジューラ110は、制御回路115が出力する周波数制御信号121に基づいて実行させるスレッド番号(thread #)201を選択し、データパス116に出力する。これにより、データパス116は、まず実行するスレッド番号201に対応するプログラムカウンタをプログラムカウンタ111a〜111dから選択する。そして、データス116は選択したプログラムカウンタと実行するスレッド番号201とを用いて、命令フェッチ、命令デコード、実行、オペランドフェッチ、結果の格納を、レジスタファイル112、数値演算ユニット113、メモリ114を用いて行う。
上述した命令実行の結果は、レジスタファイル112、メモリ114に格納され、また条件分岐を行うためのフラグ、制御レジスタへの書き込み結果については、信号204を用いて制御回路115に出力する。この信号204により制御回路115はデータパスの出力結果を受け取り、スレッドスケジューラ110、データパス116への各種制御信号を生成する。そして、生成された制御信号は、スレッドスケジューラ110への制御信号202、データパス116への制御信号203として出力される。
次に、図3を用いて、マルチスレッドプロセッサ101の動作周波数が変化しても特定のスレッドの処理性能を一定に保つことができるスレッドスケジューラ110の構成及び動作について説明する。尚、図3では、説明を簡単にするため、プロセッサの動作周波数を200MHzと100MHzの2段階としている。
図3は、マルチスレッドプロセッサ101におけるスレッドスケジューラ110の構成の一例を示す図である。図3に示すように、スレッドスケジューラ110はプロセッサの動作周波数毎に特定のスレッドの処理性能を一定に制御するために、2つのハードリアルタイムスレッドテーブル220a、220bを備えている。そして、ハードリアルタイムスレッドテーブル220a、220bには、決められたサイクル数毎にスケジュールする必要があるスレッド(ハードリアルタイムスレッド)が保持されている。
これに対して、ノンリアルタイムスレッドテーブル221には、決められたサイクル数毎にスケジュールする必要がないスレッド(性能を保証する必要がないスレッド)が保持されている。
ここで、スレッドスケジューラ110は、プロセッサの動作周波数に基づいて、ハードリアルタイムスレッドテーブル220a、220bかノンリアルタイムスレッドテーブル221の何れかに記録されているスレッドを選択する。具体的には、制御回路115から出力される周波数制御信号121に応じて、マルチプレクサ147がハードリアルタイムスレッドテーブル220a又は220bに記憶されているスレッド223a又は223bの何れかを選択する。また同時に、マルチプレクサ148がハードリアルタイムスレッドテーブル220a又は220bに記憶されているスレッドスケジュール情報224a又は224bの何れかを選択する。そして、選択されたスレッドスケジュール情報に基づいてマルチプレクサ244がハードリアルタイムスレッドテーブル220a、220bかノンリアルタイムスレッドテーブル221の何れかに記録されているスレッドをスレッド番号201として出力する。
[動作周波数が一定]
まず、動作周波数が200MHzに固定されている、即ち周波数制御信号121が常に「1」の場合に、スレッドスケジューラ110が実行するスレッドスケジュールの方法について説明する。この場合は、従来のリアルタイム性を保証できるマルチスレッドプロセッサと同じ動作である。即ち、周波数制御信号121が常に「1」であるので、マルチプレクサ147、148でハードリアルタイムスレッドテーブル220bのみが参照され、ハードリアルタイムスレッドテーブル220aは参照されない。従って、リアルタイム性を保証できるマルチスレッドプロセッサでは、ハードリアルタイムスレッドテーブル220a、マルチプレクサ147、148を省略することができる。
ここでハードリアルタイムスレッドテーブルポインタ(HRTP)242は、サイクル毎にインクリメンタ247によって「1」ずつ増加し、ハードリアルタイムスレッドテーブル220bの要素はサイクル毎に上から順に読み出される。図3に示す例では、ハードリアルタイムスレッドテーブル220bは8個の要素を保持している。即ち、8サイクル分のスレッドのスケジュールを保持している。
また、ハードリアルタイムスレッドテーブル220bの各要素は、ハードリアルタイムビット224bとスレッドID223bとからなる。ここで、ハードリアルタイムビット224bが「1」の場合には、スレッドID223bに示されるスレッドをスケジュールすることを示している。一方、ハードリアルタイムビット224bが「0」の場合には、ノンリアルタイムスレッドテーブル221に記録されているスレッドを順に実行する。
即ち、この例では、1サイクル目はスレッド0を、2サイクル目はスレッド1を実行し、3サイクル目〜5サイクル目はノンリアルタイムスレッドテーブル221のスレッドを実行する。そして、6サイクル目はスレッド1を実行し、7サイクル目、8サイクル目はノンリアルタイムスレッドテーブル221のスレッドを実行する。
このように、ハードリアルタイムスレッドテーブル220bは8サイクル分のスレッドスケジュールを保持しているので、9サイクル目は1サイクル目と同じになる。これ以降1〜8サイクル目のハードリアルタイムスレッドテーブル220bの要素が繰り返し順に読み出される。
また、ノンリアルタイムスレッドテーブル221に記録されているスレッドは、ハードリアルタイムビット224bが「0」の場合にのみ順に実行される。即ち、ハードリアルタイムビット224bが「0」で、ノンリアルタイムスレッドテーブルポインタ243が指すスレッドIDをノンリアルタイムスレッドテーブル22がマルチプレクサ244によって選択され、スレッド番号201として出力される。また同時に、ノンリアルタイムスレッドテーブルポインタ243は、マルチプレクサ249で選択されたインクリメンタ248によってインクリメントされる。
他方、ハードリアルタイムビット224bが「1」の場合、ハードリアルタイムスレッドテーブル220bが出力するスレッドIDがマルチプレクサ244によって選択され、スレッド番号201として出力される。尚、ノンリアルタイムスレッドテーブルポインタ243は更新しない。
このように、プロセッサの動作周波数が一定である時は、ハードリアルタイムスレッドが決められたサイクル毎にスケジュールされるため、特定のスレッドの処理性能を一定に保つことができる。
[動作周波数が変化]
次に、プロセッサの動作周波数が1/2(100MHz)に変化した場合に、マルチスレッドプロセッサ101におけるスレッドスケジューラ110が実行するスレッドスケジュールの方法について説明する。
尚、動作周波数によらず処理性能が一定である必要があるスレッドはスレッド0とする。この場合、周波数制御信号121が「0」になり、マルチプレクサ147及び148によってハードリアルタイムスレッドテーブル220aが参照される。
また、プロセッサの動作周波数が1/2であるため、ハードリアルタイムスレッドテーブル220aに含まれるスレッド0の割合をハードリアルタイムスレッドテーブル220bの2倍にしている。
また、スレッド0がスケジュールされる位相がプロセッサの動作周波数によらず同じになるように、元々スケジュールされる1サイクル目の他に要素数8×(1/2)=4サイクルを加えた5サイクル目にスレッド0がスケジュールされるようにする。
ここで、プロセッサの動作周波数が1/2に変化したことにより、ハードリアルタイムスレッドテーブル220aを読み出す周期は2倍となる。しかし、処理性能が一定であることが要求されるスレッド0は、ハードリアルタイムスレッドテーブル220aに2倍で含まれているため、結局スレッド0は同じ周期でスケジュールされる。
このように、本実施形態では、プロセッサの動作周波数の切り替えと共にハードリアルタイムスレッドテーブルを切り替えることで、プロセッサの動作周波数が変化した場合にも特定のスレッドの処理性能を一定に保つことができる。この結果、図4に示すように、プロセッサの動作周波数を200MHzと100MHzで切り替えた場合に、従来例ではスレッド0のスケジュールされる周期が変化していたが、本実施形態ではスレッド0を常に40ns周期でスケジュールすることができる。即ち、一定の性能を保つことができる。
[他の実施形態]
次に、図面を参照しながら本発明に係る他の実施形態について詳細に説明する。
他の実施形態では、プロセッサの動作周波数が基準となる周波数のn倍になった場合、n回のうち1回は選択信号を有効にするが、n回のうちn−1回は選択信号を無効にする回路を備えるものである。
また、プロセッサの動作周波数が変化しても処理性能を一定にする必要があるスレッドは、この選択信号が「1」の時だけスケジュールするようにしている。これにより、特定のスレッドの処理性能を一定にすることを可能にしている。尚、説明を簡単にするため、プロセッサの動作周波数を2段階、最大のプロセッサ動作周波数は基準となるプロセッサの動作周波数の2倍とした場合を例に説明する。
他の実施形態におけるマルチスレッドプロセッサシステムの構成は、図1を用いて説明した本実施形態の構成と同様であり、その説明は省略する。
図5は、他の実施形態におけるスレッドスケジューラの構成の一例を示す図である。尚、図3に示す構成と同じ機能を有するものには同一の符号を付している。
図5に示すように、スレッドスケジューラは、少なくともハードリアルタイムスレッドテーブル222と、ノンリアルタイムスレッドテーブル221と、スレッド選択信号生成回路240とで構成されている。ここで、スレッド選択信号生成回路240はプロセッサの動作周波数によらず一定サイクル数だけ選択信号を有効にする信号(TSEL OUT)141を生成する回路であり、図6を用いて更に詳述する。また、ハードリアルタイムスレッドテーブル222には、スレッドID223と、2つのスレッドの情報224、225とが保持されている。2つのスレッドは、決められたプロセッササイクル数毎にスケジュールする必要があるスレッド(ハードリアルタイムスレッド)と、プロセッサのクロック周波数によらず一定の処理性能が必要なスレッド(リアルタイムスレッド)である。
図6は、スレッド選択信号生成回路240の構成の一例を示す図である。スレッド選択信号生成回路240は、周波数制御信号121が「1」の場合、サイクル数を計数するカウンタ262と、周波数制御信号121が「0」の場合、「1」を出力するゲート263及びインバータ264とで構成されている。
尚、図6に示す例では、周波数制御信号121が「0」の場合、8サイクルは選択信号141として有効を示す「1」を出力し、次の8サイクルは選択信号141として無効を示す「0」を出力するものとする。そのため、カウンタ262として、4ビットバイナリカウンタを用いてサイクル数の計数を行い、Q3を出力信号とする。
まず、周波数制御信号121が「0」(基準となるプロセッサの動作周波数)の場合に、スレッドスケジューラが実行するスレッドスケジュールの方法について説明する。この場合、スレッド選択信号生成回路240のインバータ264及びゲート263により選択信号141として、常に「1」が出力される。
ここでハードリアルタイムスレッドテーブルポインタ(HRTP)242は、サイクル毎にインクリメンタ247によって「1」ずつ増加し、ハードリアルタイムスレッドテーブル222の要素はサイクル毎に上から順に読み出される。図5に示す例では、ハードリアルタイムスレッドテーブル222は8サイクル分のスレッドのスケジュールを保持しているため、保持されている要素は8個である。
また、ハードリアルタイムスレッドテーブル222の要素は、ハードリアルタイムビット224とリアルタイムビット225とスレッドID223とからなる。ここで、ハードリアルタイムビット224は決められたプロセッササイクル数毎にスケジュールする必要があるスレッドであることを示している。また、リアルタイムビット225はプロセッサのクロック周波数によらず一定の処理性能が必要なスレッドであることを示している。
この例では、スレッド選択信号生成回路240が常に「1」を出力しているため、ハードリアルタイムビット224とリアルタイムビット225の何れかが「1」の場合、ハードリアルタイムスレッドテーブル222のスレッドが選択される。即ち、マルチプレクサ244への選択信号146が「1」の場合は、ポインタ242が指すハードリアルタイムスレッドテーブル222のスレッドIDで示されるスレッド144が選択され、スレッド番号201として出力される。同時にポインタ242はインクリメンタ247によってインクリメントされる。
それ以外の場合(ハードリアルタイムビット224とリアルタイムビット225の両方が「0」の場合)は、ノンリアルタイムスレッドテーブル221のスレッドが選択される。即ち、マルチプレクサ244への選択信号146が「0」の場合は、ポインタ243が指すノンリアルタイムスレッドテーブル221のスレッドIDで示されるスレッド145が選択され、スレッド番号201として出力される。同時に、ポインタ243はインクリメンタ248によってインクリメントされる。
次に、周波数制御信号121が「1」(最大のプロセッサ動作周波数)の場合に、スレッドスケジューラが実行するスレッドスケジュールの方法について説明する。この場合、最大のプロセッサ動作周波数が基準となるプロセッサ動作周波数の2倍であるので、スレッド選択信号生成回路240は2サイクルに1サイクルだけ選択信号を有効にする。
尚、この例では、ハードリアルタイムスレッドテーブル222の要素数が8であることから、8サイクルは選択信号141として有効を示す「1」を出力し、次の8サイクルは選択信号141として無効を示す「0」を出力する。これにより、16サイクルの中で、8サイクルだけ選択信号141を有効にすることができる。
また、選択信号141が「1」の場合は、周波数制御信号121が「0」(基準となるプロセッサ動作周波数)の場合と同じなので、選択信号141が「0」の場合のスレッドスケジュール方法について説明する。
まず、スレッド選択信号生成回路240が選択信号141として「0」を出力しているため、ハードリアルタイムビット224が「1」の場合にのみ、ハードリアルタイムスレッドテーブル222のスレッドが選択される。即ち、マルチプレクサ244への選択信号146が「1」の場合は、ポインタ242が指すハードリアルタイムスレッドテーブル222のスレッドIDで示されるスレッド144が選択され、スレッド番号201として出力される。同時にポインタ242はインクリメンタ247によってインクリメントされる。
それ以外の場合(ハードリアルタイムビット224が「0」の場合)は、ノンリアルタイムスレッドテーブル221のスレッドが選択される。即ち、マルチプレクサ244への選択信号146が「0」の場合は、ポインタ243が指すノンリアルタイムスレッドテーブル221のスレッドIDで示されるスレッド145が選択され、スレッド番号201として出力される。同時に、ポインタ243はインクリメンタ248によってインクリメントされる。
図7は、他の実施形態におけるスレッドスケジュールのタイミングチャートを示す図である。周波数制御信号(FREQCTRL)121が「1」の場合、最初の8サイクルはポインタ(HRTP)242が指すテーブル222内のリアルタイムスレッドがスケジュールされる。しかし、次の8サイクルはリアルタイムスレッドがスケジュールされる周期を一定にするため、リアルタイムスレッドの代わりにノンリアルタイムスレッドがスケジュールされる(0→N)。また、周波数制御信号(FREQCTRL)121が「0」の場合は、常にテーブル222内のリアルタイムスレッドがスケジュールされる。
このように、プロセッサの動作周波数が基準となる周波数のn倍になった時に、n回のうち1回は選択信号を有効にする。しかし、n回のうちn−1回は選択信号を無効にする回路を設けることでプロセッサの動作周波数が変化した際にも特定のスレッドの処理性能を一定に保っている。この結果、図7に示すように、プロセッサの動作周波数によらず、スレッド0を一定の周期でスケジュールすることができる。即ち、一定の性能を保つことができる。
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本実施形態におけるマルチスレッドプロセッサシステムの構成の一例を示す図である。 マルチスレッドプロセッサ101における各ブロックの動作及び代表的な信号の接続関係を説明するための図である。 マルチスレッドプロセッサ101におけるスレッドスケジューラ110の構成の一例を示す図である。 本実施形態におけるスレッドスケジュールの結果を示す図である。 他の実施形態におけるスレッドスケジューラの構成の一例を示す図である。 スレッド選択信号生成回路240の構成の一例を示す図である。 他の実施形態におけるスレッドスケジュールの結果を示す図である。
符号の説明
100 クロック生成回路(CLKGEN)
101 マルチスレッドプロセッサ
110 スレッドスケジューラ(SCHED)
115 制御回路(CTRL)
116 データパス
120 プロセッサクロック(CLK)
121 周波数制御信号(FREQCTRL)
220 ハードリアルタイムスレッドテーブル
221 ノンリアルタイムスレッドテーブル
222 ハードリアルタイムスレッドテーブル
223 スレッド
224 スレッドスケジュール情報

Claims (8)

  1. クロック生成回路と、マルチスレッドプロセッサとで構成されるプロセッサシステムであって、
    前記クロック生成回路は、前記マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号に基づいて、前記マルチスレッドプロセッサのプロセッサクロックを生成するクロック生成手段を有し、
    前記マルチスレッドプロセッサは、当該マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号を出力する制御手段と、前記制御手段が出力する周波数制御信号に基づいて実行させるスレッドのスレッド番号を選択して出力するスケジュール手段と、前記スケジュール手段が出力するスレッド番号のスレッドを前記プロセッサクロックに同期して実行する実行手段と、を有し、
    前記スケジュール手段は、
    前記周波数制御信号が、前記動作周波数が所定の周波数であることを示す場合に、前記スレッド番号を一定周期で出力するように当該スレッド番号をテーブルの要素として保持している第1のスレッドスケジュールテーブルと、
    前記周波数制御信号が、前記動作周波数を前記所定の周波数から変化させたことを示す場合に、前記スレッド番号を前記一定周期と同じ周期で出力するように当該スレッド番号をテーブルの要素として保持している第2のスレッドスケジュールテーブルと、
    前記第1のスレッドスケジュールテーブル前記第2のスレッドスケジュールテーブルとにそれぞれ保持されている各要素をテーブルから順に繰り返し読み出す読み出し手段と、
    前記周波数制御信号により前記動作周波数が所定の周波数の場合、前記読み出し手段により前記第1のスレッドスケジュールテーブルから読み出された要素を選択して出力し、前記周波数制御信号により前記動作周波数を前記所定の周波数から変化させた場合、前記読み出し手段により前記第2のスレッドスケジュールテーブルから読み出された要素を選択して出力する出力手段と、を含むことを特徴とするプロセッサシステム。
  2. 前記第1及び第2のスレッドスケジュールテーブルは、前記スレッド番号を前記一定周期又は前記一定周期と同じ周期で出力する必要があるか否かを示す情報を更に保持し、
    前記スケジュール手段は、前記スレッド番号を一定周期で出力又は前記一定周期と同じ周期で出力する必要がないスレッド番号を保持する第3のスレッドスケジュールテーブルと、前記第3のスレッドスケジュールテーブルに保持された前記スレッド番号をテーブルから順に繰り返し読み出す手段とを更に有し、
    前記情報が前記スレッド番号を前記一定周期又は前記一定周期と同じ周期で出力する必要がないことを示す場合に、前記出力手段は、前記第3のスレッドスケジュールテーブルから読み出されたスレッド番号を出力することを特徴とする請求項1に記載のプロセッサシステム。
  3. クロック生成回路と、マルチスレッドプロセッサとで構成されるプロセッサシステムであって、
    前記クロック生成回路は、前記マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号に基づいて、前記マルチスレッドプロセッサのプロセッサクロックを生成するクロック生成手段を有し、
    前記マルチスレッドプロセッサは、当該マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号を出力する制御手段と、前記制御手段が出力する周波数制御信号に基づいて実行させるスレッドのスレッド番号を選択して出力するスケジュール手段と、前記スケジュール手段が出力するスレッド番号のスレッドを前記プロセッサクロックに同期して実行する実行手段と、を有し、
    前記スケジュール手段は、
    前記動作周波数によらず一定周期で出力されるべきスレッドのスレッド番号をテーブルの要素として保持しているスレッドスケジュールテーブルと、
    前記スレッドスケジュールテーブルに保持されている各要素をテーブルから順に繰り返し読み出す読み出し手段と、
    前記周波数制御信号が、前記動作周波数が基準の周波数であることを示す場合、前記読み出し手段により前記スレッドスケジュールテーブルから読み出された要素を出力し、前記周波数制御信号が、前記動作周波数が前記基準の周波数のn倍であることを示す場合前記読み出し手段により前記スレッドスケジュールテーブルから読み出された要素をn周期のうち1周期は出力し、n−1周期は出力しないようにする出力手段と、を含むことを特徴とするプロセッサシステム。
  4. 前記スレッドスケジュールテーブルは、前記スレッド番号を一定周期で出力する必要があるか否かを示す情報を更に保持し、
    前記スケジュール手段は、前記スレッド番号を一定周期で出力する必要がないスレッド番号を保持する第2のスレッドスケジュールテーブルと、前記第2のスレッドスケジュールテーブルに保持された前記スレッド番号をテーブルから順に繰り返し読み出す手段とを更に有し、
    前記情報が前記スレッド番号を一定周期で出力する必要がないことを示す場合に、前記出力手段は、前記第2のスレッドスケジュールテーブルから読み出されたスレッド番号を出力することを特徴とする請求項3に記載のプロセッサシステム。
  5. マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号をクロック生成回路へ出力し、該周波数制御信号に基づいて前記クロック生成回路で生成された前記マルチスレッドプロセッサのプロセッサクロックを入力するマルチスレッドプロセッサであって、
    前記動作周波数を変化させるための周波数制御信号を出力する制御手段と、
    前記制御手段が出力する周波数制御信号に基づいて実行させるスレッドのスレッド番号を選択して出力するスケジュール手段と、
    前記スケジュール手段が出力するスレッド番号のスレッドを前記プロセッサクロックに同期して実行する実行手段と、を有し、
    前記スケジュール手段は、
    前記周波数制御信号が、前記動作周波数が所定の周波数であることを示す場合に、前記スレッド番号を一定周期で出力するように当該スレッド番号をテーブルの要素として保持している第1のスレッドスケジュールテーブルと、
    前記周波数制御信号が、前記動作周波数を前記所定の周波数から変化させたことを示す場合に、前記スレッド番号を前記一定周期と同じ周期で出力するように当該スレッド番号をテーブルの要素として保持している第2のスレッドスケジュールテーブルと、
    前記第1のスレッドスケジュールテーブル前記第2のスレッドスケジュールテーブルとにそれぞれ保持されている各要素をテーブルから順に繰り返し読み出す読み出し手段と、
    前記周波数制御信号により前記動作周波数が所定の周波数の場合、前記読み出し手段により前記第1のスレッドスケジュールテーブルから読み出された要素を選択して出力し、前記周波数制御信号により前記動作周波数を前記所定の周波数から変化させた場合、前記読み出し手段により前記第2のスレッドスケジュールテーブルから読み出された要素を選択して出力する出力手段と、を含むことを特徴とするマルチスレッドプロセッサ。
  6. 前記第1及び第2のスレッドスケジュールテーブルは、前記スレッド番号を前記一定周期又は前記一定周期と同じ周期で出力する必要があるか否かを示す情報を更に保持し、
    前記スケジュール手段は、前記スレッド番号を一定周期で出力又は前記一定周期と同じ周期で出力する必要がないスレッド番号を保持する第3のスレッドスケジュールテーブルと、前記第3のスレッドスケジュールテーブルに保持された前記スレッド番号をテーブルから順に繰り返し読み出す手段とを更に有し、
    前記情報が前記スレッド番号を前記一定周期又は前記一定周期と同じ周期で出力する必要がないことを示す場合に、前記出力手段は、前記第3のスレッドスケジュールテーブルから読み出されたスレッド番号を出力することを特徴とする請求項5に記載のマルチスレッドプロセッサ。
  7. マルチスレッドプロセッサの動作周波数を変化させるための周波数制御信号をクロック生成回路へ出力し、該周波数制御信号に基づいて前記クロック生成回路で生成された前記マルチスレッドプロセッサのプロセッサクロックを入力するマルチスレッドプロセッサであって、
    前記動作周波数を変化させるための周波数制御信号を出力する制御手段と、
    前記制御手段が出力する周波数制御信号に基づいて実行させるスレッドのスレッド番号を選択して出力するスケジュール手段と、
    前記スケジュール手段が出力するスレッド番号のスレッドを前記プロセッサクロックに同期して実行する実行手段と、を有し、
    前記スケジュール手段は、
    前記動作周波数によらず一定周期で出力されるべきスレッドのスレッド番号をテーブルの要素として保持しているスレッドスケジュールテーブルと、
    前記スレッドスケジュールテーブルに保持されている各要素をテーブルから順に繰り返し読み出す読み出し手段と、
    前記周波数制御信号が、前記動作周波数が基準の周波数であることを示す場合、前記読み出し手段により前記スレッドスケジュールテーブルから読み出された要素を出力し、前記周波数制御信号が、前記動作周波数が前記基準の周波数のn倍であることを示す場合前記読み出し手段により前記スレッドスケジュールテーブルから読み出された要素をn周期のうち1周期は出力し、n−1周期は出力しないようにする出力手段と、を含むことを特徴とするマルチスレッドプロセッサ。
  8. 前記スレッドスケジュールテーブルは、前記スレッド番号を一定周期で出力する必要があるか否かを示す情報を更に保持し、
    前記スケジュール手段は、前記スレッド番号を一定周期で出力する必要がないスレッド番号を保持する第2のスレッドスケジュールテーブルと、前記第2のスレッドスケジュールテーブルに保持された前記スレッド番号をテーブルから順に繰り返し読み出す手段とを更に有し、
    前記情報が前記スレッド番号を一定周期で出力する必要がないことを示す場合に、前記出力手段は、前記第2のスレッドスケジュールテーブルから読み出されたスレッド番号を出力することを特徴とする請求項7に記載のマルチスレッドプロセッサ。
JP2005240195A 2005-08-22 2005-08-22 プロセッサシステム及びマルチスレッドプロセッサ Expired - Fee Related JP4574493B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005240195A JP4574493B2 (ja) 2005-08-22 2005-08-22 プロセッサシステム及びマルチスレッドプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005240195A JP4574493B2 (ja) 2005-08-22 2005-08-22 プロセッサシステム及びマルチスレッドプロセッサ

Publications (3)

Publication Number Publication Date
JP2007058331A JP2007058331A (ja) 2007-03-08
JP2007058331A5 JP2007058331A5 (ja) 2008-09-04
JP4574493B2 true JP4574493B2 (ja) 2010-11-04

Family

ID=37921815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005240195A Expired - Fee Related JP4574493B2 (ja) 2005-08-22 2005-08-22 プロセッサシステム及びマルチスレッドプロセッサ

Country Status (1)

Country Link
JP (1) JP4574493B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110404A (ja) 2007-10-31 2009-05-21 Toshiba Corp 仮想計算機システム及び同システムにおけるゲストosスケジューリング方法
JP5173712B2 (ja) 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ
JP5173711B2 (ja) 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
JP5173713B2 (ja) 2008-09-30 2013-04-03 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
JP5838237B2 (ja) * 2014-04-24 2016-01-06 ルネサスエレクトロニクス株式会社 マルチスレッドプロセッサ
US11288072B2 (en) * 2019-09-11 2022-03-29 Ceremorphic, Inc. Multi-threaded processor with thread granularity

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183110A (ja) * 2000-12-18 2002-06-28 Sony Corp マイクロコンピュータ及びカウント処理方法
JP2004252987A (ja) * 2003-02-20 2004-09-09 Samsung Electronics Co Ltd 同時多重スレッディングプロセッサ回路、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム製品及びこれらを動作させる方法
JP2004326765A (ja) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサにおいて処理する命令スレッドを選択するための方法および装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158899A (ja) * 1991-12-02 1993-06-25 Nippon Telegr & Teleph Corp <Ntt> 周期処理方法
JPH08249082A (ja) * 1995-03-08 1996-09-27 Canon Inc マイクロプロセッサ周辺回路およびマイクロプロセッサ周辺回路の動作クロックモード設定方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183110A (ja) * 2000-12-18 2002-06-28 Sony Corp マイクロコンピュータ及びカウント処理方法
JP2004252987A (ja) * 2003-02-20 2004-09-09 Samsung Electronics Co Ltd 同時多重スレッディングプロセッサ回路、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム製品及びこれらを動作させる方法
JP2004326765A (ja) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサにおいて処理する命令スレッドを選択するための方法および装置

Also Published As

Publication number Publication date
JP2007058331A (ja) 2007-03-08

Similar Documents

Publication Publication Date Title
US6775766B2 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
JP4574493B2 (ja) プロセッサシステム及びマルチスレッドプロセッサ
JP2748822B2 (ja) 情報処理装置
KR100983135B1 (ko) 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법
US20050257027A1 (en) Processing apparatus, processing method and compiler
WO2002008893A1 (en) A microprocessor having an instruction format containing explicit timing information
US20090249037A1 (en) Pipeline processors
JP4412905B2 (ja) 低電力動作制御装置、およびプログラム最適化装置
KR100483463B1 (ko) 사전-스케쥴링 명령어 캐시를 구성하기 위한 방법 및 장치
CN116662255A (zh) 结合超越函数硬件加速器的risc-v处理器实现方法及系统
KR20030051380A (ko) 마이크로프로세서
EP0223150A2 (en) Information processing apparatus
JP3958239B2 (ja) マイクロコントローラ
JPH1091430A (ja) 命令解読装置
RU2816094C1 (ru) Vliw-процессор с дополнительным подготовительным конвейером и предсказателем перехода
EP1384145B1 (en) Expanded functionality of processor operations within a fixed width instruction encoding
JP5149115B2 (ja) 半導体試験装置
JPH0524537B2 (ja)
JP3512707B2 (ja) マイクロコンピュータ
KR100284288B1 (ko) 프로세서의 전력 절감 장치 및 방법
US20100174885A1 (en) Reconfigurable processor and operating method of the same
JP3435252B2 (ja) 情報処理装置
JPH09223010A (ja) マイクロプロセッサおよびその処理方法
JP2003248670A (ja) プロセッサ
JP2003122628A (ja) デジタル信号処理装置、プログラム変換装置、及びデジタル信号処理装置を有する通信システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080723

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100716

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4574493

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees