IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Preferred Networksの特許一覧

特開2024-104948プロセッサ及びプロセッサの制御方法
<>
  • 特開-プロセッサ及びプロセッサの制御方法 図1
  • 特開-プロセッサ及びプロセッサの制御方法 図2
  • 特開-プロセッサ及びプロセッサの制御方法 図3
  • 特開-プロセッサ及びプロセッサの制御方法 図4
  • 特開-プロセッサ及びプロセッサの制御方法 図5
  • 特開-プロセッサ及びプロセッサの制御方法 図6
  • 特開-プロセッサ及びプロセッサの制御方法 図7
  • 特開-プロセッサ及びプロセッサの制御方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024104948
(43)【公開日】2024-08-06
(54)【発明の名称】プロセッサ及びプロセッサの制御方法
(51)【国際特許分類】
   G06F 9/30 20180101AFI20240730BHJP
【FI】
G06F9/30 380Z
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023009405
(22)【出願日】2023-01-25
(71)【出願人】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】名村 健
【テーマコード(参考)】
5B033
【Fターム(参考)】
5B033BE07
5B033FA02
(57)【要約】
【課題】ハードウェア起因により命令の実行が停止する場合に、消費電力の急激な変動を抑制する。
【解決手段】プロセッサは、命令を実行する命令実行部と、前記命令実行部に実行させる命令を出力する命令供給部と、前記命令供給部から受信した命令を前記命令実行部に出力し、前記命令供給部からの命令の受信が停止した場合、他の命令を前記命令実行部に出力する命令選択部と、を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
命令を実行する命令実行部と、
前記命令実行部に実行させる命令を出力する命令供給部と、
前記命令供給部から受信した命令を前記命令実行部に出力し、前記命令供給部からの命令の受信が停止した場合、他の命令を前記命令実行部に出力する命令選択部と、を有する、
プロセッサ。
【請求項2】
前記他の命令は、少なくとも前記命令供給部からの命令の受信が停止する前に前記命令供給部から受信した第1の命令に基づく命令又は前記第1の命令の消費電力に基づいて決定される命令のいずれかである、
請求項1に記載のプロセッサ。
【請求項3】
前記他の命令は、前記命令供給部からの命令の受信が停止する直前に前記命令供給部から受信した命令に基づく命令である、
請求項2に記載のプロセッサ。
【請求項4】
前記他の命令は、消費電力に基づいて決定された命令である、
請求項1に記載のプロセッサ。
【請求項5】
前記命令選択部は、前記命令供給部からの命令の受信が停止した場合、前記命令実行部が同じ命令を2回以上連続して実行するように前記他の命令を出力する、
請求項1に記載のプロセッサ。
【請求項6】
前記命令実行部による命令の実行結果が書き込まれるメモリ、を更に有し、
前記他の命令の実行結果は、前記メモリに書き込まれない、
請求項1ないし請求項5のいずれか1項に記載のプロセッサ。
【請求項7】
前記命令供給部が出力した命令を保持する命令保持部、を更に有し、
前記他の命令は、前記命令保持部に保持された命令である、
請求項1ないし請求項5のいずれか1項に記載のプロセッサ。
【請求項8】
前記他の命令は、前記命令供給部からの命令の受信が停止する直前に前記命令保持部に保持された命令である、
請求項7に記載のプロセッサ。
【請求項9】
前記命令実行部による命令の実行結果が書き込まれるメモリ、を更に有し、
前記命令供給部が出力した命令を保持することは、前記命令供給部が出力した命令を、前記メモリへの実行結果の書き込みを抑止する命令に変更して保持することを含み、
前記他の命令は、前記変更して保持された命令である、
請求項7に記載のプロセッサ。
【請求項10】
前記命令供給部は、前記命令実行部に出力する命令がない場合、命令の出力を停止し、前記命令保持部に保持された命令を出力させる選択信号を前記命令選択部に出力する、
請求項7に記載のプロセッサ。
【請求項11】
前記命令供給部は、前記命令実行部が命令の実行をできない場合に生成されるウェイト指示を受信した場合、命令の出力を停止し、前記命令保持部に保持された命令を出力させる選択信号を前記命令選択部に出力する、
請求項7に記載のプロセッサ。
【請求項12】
前記命令供給部が命令を出力しない場合、又は、前記命令実行部が命令を実行できない場合、前記命令保持部に保持された命令を出力させる選択信号を前記命令選択部に出力する選択制御部を有する、
請求項7に記載のプロセッサ。
【請求項13】
前記命令選択部は、前記命令供給部からの命令の受信が再開されるまで、前記命令実行部に前記他の命令を複数回出力する、
請求項1ないし請求項5のいずれか1項に記載のプロセッサ。
【請求項14】
前記命令実行部が複数の演算器を含み、SIMD(Single Instruction Multiple Data)プロセッサとして動作する、
請求項1ないし請求項5のいずれか1項に記載のプロセッサ。
【請求項15】
命令を実行する命令実行部と、前記命令実行部に実行させる命令を出力する命令供給部と、を有するプロセッサの制御方法であって、
前記プロセッサが有する命令選択部が、前記命令供給部から受信した命令を前記命令実行部に出力し、前記命令供給部からの命令の受信が停止した場合、他の命令を前記命令実行部に出力する、
プロセッサの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プロセッサ及びプロセッサの制御方法に関する。
【背景技術】
【0002】
消費電力が大きい命令の前にプリアクセス命令を記述した命令コードをプロセッサに実行させることで、プロセッサの消費電力を徐々に大きくして誤動作を抑制する手法が知られている。
【0003】
しかしながら、プロセッサへの命令の転送の遅れ、又は、データ依存性による命令の実行待ち等、ハードウェア起因により命令の実行が停止する場合に消費電力を適切に制御する手法は提案されていない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示では、ハードウェア起因により命令の実行が停止する場合に、プロセッサの消費電力の急激な変動を抑制する。
【課題を解決するための手段】
【0005】
本発明の実施形態のプロセッサは、命令を実行する命令実行部と、前記命令実行部に実行させる命令を出力する命令供給部と、前記命令供給部から受信した命令を前記命令実行部に出力し、前記命令供給部からの命令の受信が停止した場合、他の命令を前記命令実行部に出力する命令選択部と、を有する。
【図面の簡単な説明】
【0006】
図1】本発明の一実施形態におけるプロセッサの構成の一例を示すブロック図である。
図2図1のプロセッサの動作の一例を示す説明図である。
図3図1の命令保持部及び命令選択部がないプロセッサの動作の一例を示す説明図である。
図4】本発明の別の実施形態におけるプロセッサの構成の一例を示すブロック図である。
図5】本発明の別の実施形態におけるプロセッサの構成の一例を示すブロック図である。
図6図5のプロセッサの動作の一例を示す説明図である。
図7】本発明の別の実施形態におけるプロセッサの構成の一例を示すブロック図である。
図8図1に示したプロセッサが搭載される計算機のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0007】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。以下では、信号が伝達される信号線には、信号名と同じ符号を使用する。特に限定されないが、以下で説明するプロセッサは、サーバ等のコンピュータに搭載され、プログラム(命令)を実行することで、ニューラルネットワークの訓練又は推論において畳み込み演算等を実行してもよい。プロセッサは、1つの命令を同時に実行する演算器の数が多いSIMD(Single Instruction Multiple Data)プロセッサとして動作してもよい。なお、以下で説明するプロセッサは、科学技術計算などに使用されてもよい。また、図1図4図5図7に含まれる矩形又は台形で示す複数のブロックのうち、2以上のブロックは、1つにマージされてもよい。すなわち、1つのブロックの機能が他のブロックで実現されてもよい。複数のブロックの各々は、例えば、1又は複数の回路により実現される。
【0008】
図1は、本発明の一実施形態におけるプロセッサの構成の一例を示すブロック図である。図1に示すプロセッサ100は、命令メモリ10、命令供給機構20及び命令実行機構30を有する。命令供給機構20は、命令供給部21、命令保持部22及び命令選択部23を有し、命令実行機構30に命令INSを供給する制御を実施する。命令実行機構30は、命令デコーダ31、命令実行部32、メモリ33、遅延部34及びアンド回路35を有し、命令供給機構20から受信する命令INSを実行する制御を実施する。なお、命令選択部23は、命令供給機構20でなく、命令実行機構30に含まれてもよい。
【0009】
なお、命令メモリ10、命令供給機構20及び命令実行機構30は、命令メモリ回路10、命令供給回路ブロック20及び命令実行回路ブロック30として実現されてもよい。命令供給部21、命令保持部22及び命令選択部23は、命令供給回路21、命令保持回路22及び命令選択回路23として実現されてもよい。命令デコーダ31、命令実行部32、メモリ33及び遅延部34は、命令デコーダ回路31、命令実行回路32、メモリ回路33及び遅延回路34として実現されてもよい。
【0010】
命令メモリ10は、外部メモリ110から転送される命令INSを保持し、保持している命令INSを命令供給部21に順次出力する。例えば、命令メモリ10は、プロセッサ100の外部に接続される外部メモリ110からの命令INSの転送が遅れ、保持する命令INSがなくなった場合、命令供給部21への命令INSの出力を停止する。なお、命令メモリ10は、命令供給部21からの要求に基づいて命令INSを命令供給部21に出力してもよい。
【0011】
命令供給部21は、命令メモリ10から受信する命令INSを命令保持部22及び命令選択部23に出力する。例えば、命令供給部21は、ウェイト信号/WAIT及び命令INSの出力を示す命令出力信号OUTに基づいて選択信号SELの論理を生成するアンド回路21aを有する。アンド回路21aは、命令出力信号OUT、ウェイト信号/WAIT、又は、命令出力信号OUT及びウェイト信号/WAITがロウレベルの場合、ロウレベルの選択信号SELを出力する。ロウレベルの命令出力信号OUTは、命令供給部21が命令INSを出力しないことを示す。ロウレベルのウェイト信号/WAITは、演算実行部32が命令INSを実行できないことを示す。アンド回路21aは、命令出力信号OUT及びウェイト信号/WAITがともにハイレベルの場合、ハイレベルの選択信号SELを出力する。なお、命令供給部21は、命令INSを受信順に保持する命令キューを有してもよい。
【0012】
命令供給部21は、命令実行機構30へ出力可能な命令INSがある場合、ハイレベルの命令出力信号OUTを生成する。命令供給部21は、命令実行機構30へ出力可能な命令INSがなく、命令INSの出力を停止する場合、ロウレベルの命令出力信号OUTを生成する。命令実行機構30は、命令実行機構30内の回路がビジー状態で命令INSを受け付けることができない場合、ロウレベルのウェイト信号/WAITを出力する。命令実行機構30は、命令INSを受け付け可能な場合、ハイレベルのウェイト信号/WAITを出力する。ウェイト信号/WAITは、ウェイト指示の一例である。
【0013】
命令供給部21は、命令実行機構30へ出力可能な命令INSがあり、かつ、命令実行機構30からハイレベルのウェイト信号/WAITを受信している場合、命令INS及びハイレベルの選択信号SELを命令選択部23及び遅延部34に出力する。命令供給部21は、命令実行機構30へ出力する命令INSがない場合、命令INSの出力を停止し、命令実行機構30からのウェイト信号/WAITの論理にかかわらずロウレベルの選択信号SELを命令選択部23及び遅延部34に出力する。ロウレベルの選択信号SELは、命令保持部22に保持された命令INSを出力させる信号である。命令供給部21は、命令実行機構30からのロウレベルのウェイト信号/WAITを受信している場合、命令実行機構30への出力可能な命令INSの有無にかかわらず、命令INSの出力を停止し、ロウレベルの選択信号SELを命令選択部23及び遅延部34に出力する。ロウレベルのウェイト信号/WAITは、命令実行部32が命令INSを実行できない場合に命令実行機構30により生成される。
【0014】
命令保持部22は、命令供給部21から出力される命令INSをそのまま保持し、保持した命令INSを命令選択部23に出力してもよい。命令保持部22は、命令供給部21から出力される命令INSの少なくとも一部を変更して(例えば、書き換えて)保持し、保持した命令INSを命令選択部23に出力してもよい。命令保持部22は、命令供給部21から命令INSが出力されない場合、命令供給部21から新たな命令INSが出力されるまで、命令供給部21が最後(例えば、直前)に出力した命令INSを、命令選択部23に繰り返し出力する。命令保持部22が保持する命令INSは、他の命令の一例である。
【0015】
なお、命令保持部22は、複数の消費電力にそれぞれ対応する複数の代用命令INSを予め保持しておき、命令供給部21から出力された命令INSの消費電力に近い代用命令INSを命令選択部23に出力してもよい。複数の代用命令INSを保持する命令保持部22は、命令供給部21から出力される命令INSを保持して命令選択部23に出力する命令保持部22に比べて回路規模が大きくなる。
【0016】
命令選択部23は、選択信号SELがハイレベル("1")の場合、命令供給部21から受信した命令INSを選択して命令デコーダ31に出力する。命令選択部23は、選択信号SELがロウレベル("0")の場合、命令保持部22から受信した命令INSを選択して命令デコーダ31に出力する。ハイレベルの選択信号SELは、命令供給部21から命令INSが出力されることを示し、ロウレベルの選択信号SELは、命令供給部21からの命令INSの出力が停止されることを示す。換言すれば、ハイレベルの選択信号SELは、命令選択部23が命令供給部21から命令INSを受信することを示し、ロウレベルの選択信号SELは、命令選択部23による命令供給部21からの命令INSの受信が停止することを示す。なお、実際の動作では、命令選択部23による命令INSの選択は、命令実行機構30からのウェイト信号WAITの論理も含めて決められる。
【0017】
ここで、命令供給部21からの命令INSの受信の停止は、命令メモリ10からの命令INSの供給が遅れるなどにより命令供給部21が命令INSを出力できなかった場合、命令選択部23が命令を受信しなかった場合、命令供給部21が命令INSを出力したが、何らかの理由により命令選択部23が命令INSを受信できなかった場合、データの依存性により命令実行部32が命令INSを実行できないことに基づいて命令供給部21が命令の出力を停止した場合などを含む。以降の説明においても、命令供給部21(図4図7の命令供給部21Aも同様)からの命令INSの受信の停止は、命令INSを出力できなかった場合、命令選択部23が命令を受信しなかった場合、命令供給部21が出力した命令INSを命令選択部23が受信できなかった場合、命令実行部32が命令INSを実行できないことに基づいて命令供給部21が命令の出力を停止した場合などを含む。命令選択部23は、命令供給部21からの命令INSの出力が停止した場合、命令保持部22に保持されている他の命令を選択し、命令デコーダ31を介して命令実行部32に出力する。
【0018】
命令保持部22及び命令選択部23により、命令供給部21から出力される命令INSが途切れた場合にも、命令供給部21が最後に出力した命令INSを命令デコーダ31に繰り返し出力することができる。これにより、命令供給部21からの命令INSの出力が途切れる場合にも、命令実行部32は、命令INSを途切れることなく実行することができる。
【0019】
したがって、プロセッサ100は、命令供給部21からの命令INSの出力が途切れる場合にも、消費電力が急激に低下することを抑止することができ、電源ノイズの発生を抑制することができる。この結果、電源ノイズによるプロセッサ100の誤動作を抑止することができ、プロセッサ100の信頼性を向上することができる。この際、命令INSのコーディング時には想定できない、ハードウェア又はプロセッサ100の動作に起因して命令供給部21から命令INSの出力が停止する場合にも、消費電力が急激に低下することを抑制することができる。
【0020】
命令実行機構30は、例えば、命令実行部32での命令INSの実行中又は実行待ちのため、新たな命令INSを処理できない場合、ロウレベルのウェイト信号/WAITを出力する。命令INSの実行待ちは、命令INS間でのデータ依存性によるデータの待ち合わせ等により発生する。又、命令実行機構30は、例えば、命令実行部32が命令INSの実行に使用するデータをメモリ33から受信するまでロウレベルのウェイト信号/WAITを出力する。
【0021】
例えば、メモリ33は、レジスタファイルである。なお、メモリ33は、命令実行部32に接続されるレジスタファイルと、レジスタファイルに接続される内部メモリを有してもよい。メモリ33は、図示しないバスを介して外部メモリ110等の他のメモリに接続される。
【0022】
遅延部34は、選択信号SELを受信し、命令デコーダ31によるデコード時間と命令実行部32による命令INSの実行時間の合計だけ遅らせて、遅延選択信号SELDとしてアンド回路35に出力する。遅延選択信号SELDの論理は、選択信号SELの論理と同じである。
【0023】
命令デコーダ31は、命令選択部23から受信する命令INSをデコードし、命令実行部32に命令INSを実行させる制御情報EXを生成し、生成した制御情報EXを命令実行部32に出力する。なお、命令実行部32が複数種の実行部を有する場合、命令デコーダ31は、命令INSのデコード結果に応じて決定した実行部に制御情報EXを出力する。
【0024】
この実施形態では、命令保持部22は、命令供給部21から出力される命令INSをそのまま命令選択部23に出力する。このため、命令デコーダ31は、命令供給部21から出力される命令INSと、命令保持部22から出力される命令INSとを区別することなくデコードすることができる。したがって、プロセッサ100は、既存の命令セットアーキテクチャを使用して動作することができ、新たな命令セットを設計する場合に比べてプロセッサ100の開発期間を短縮することができる。
【0025】
なお、命令INSが命令実行部32によりそのまま実行可能な制御情報(デコード済みの制御情報)を含む場合、命令実行機構30は、命令デコーダ31を持たなくてもよい。この場合、命令選択部23から出力される命令INSは、命令実行部32に直接出力される。
【0026】
命令実行部32は、例えば、演算器を含む。命令実行部32は、制御情報EXにしたがって、メモリ33に保持されたデータを使用して命令を実行し、実行結果データ又はステータスフラグ等の実行結果をメモリ33に書き込むためのハイレベルのライトイネーブル信号WEを出力する。例えば、ハイレベルのライトイネーブル信号WEは、実行結果のメモリ33への書き込み許可を示す。
【0027】
アンド回路35は、遅延選択信号SELDがハイレベルの場合、命令実行部32からのハイレベルのライトイネーブル信号WEをメモリ33に出力し、メモリ33に実行結果を書き込ませる。アンド回路35は、遅延選択信号SELDがロウレベルの場合、命令実行部32からのハイレベルのライトイネーブル信号WEのメモリ33への出力を抑止する。アンド回路35は、命令保持部22に保持された命令INSの命令実行部32による実行結果のメモリ33への書き込みを抑止する。
【0028】
これにより、命令保持部22から出力された命令INSの命令実行部32による実行結果がメモリ33に書き込まれることを抑止することができる。すなわち、命令メモリ10から供給される命令列に含まれない命令INSの実行により、データレジスタ又はステータスレジスタ等に保持される実行結果データ又はステータスフラグ等であるコンテキストが書き換わることを抑止することができる。
【0029】
図2は、図1のプロセッサ100の動作の一例を示す説明図である。図2では、説明の簡単化のため、命令メモリ10、命令供給部21及び命令保持部22は、サイクル毎に命令INSを出力し、命令デコーダ31は、サイクル毎に命令INSをデコードし、命令実行部32は、サイクル毎に命令INSを実行するとする。
【0030】
各命令INSの後の括弧内に付した数字は、命令メモリ10から出力される命令INSの識別番号を示す。各制御情報EXの後の括弧内に付した数字は、命令INSの識別番号に対応する識別番号を示す。網掛けで示す命令INSは、命令保持部22から出力された命令INSを示し、網掛けで示す制御情報EXは、網掛けで示す命令INSのデコードにより生成された制御情報EXを示す。
【0031】
命令メモリ10は、命令INSを命令供給部21に順次出力し、出力する命令INSがなくなったとき、命令INSの出力を停止する。命令供給部21は、命令メモリ10から受信する命令INSを順次出力する。命令供給部21は、命令メモリ10からの命令INSの出力が停止された場合、又は、命令供給機構20からロウレベルのウェイト信号/WAITを受信した場合、命令INSの出力を停止する。図2では、命令供給部21は、命令メモリ10からの命令INSの出力の停止に基づいて、命令保持部22及び命令選択部23への命令INSの出力を停止する。命令供給部21は、命令INSの出力を停止している間、選択信号SELをロウレベルに設定する。
【0032】
命令保持部22は、命令供給部21から出力される命令INSを命令選択部23に出力し、命令供給部21から命令INSが出力されない場合、命令供給部21から最後に出力された命令INSを、命令選択部23に繰り返し出力する。命令選択部23は、選択信号SELがハイレベルの期間、命令供給部21からの命令INSを命令デコーダ31に出力し、選択信号SELがロウレベルの期間、命令保持部22からの命令INSを命令デコーダ31に出力する。
【0033】
命令選択部23は、命令供給部21からの命令INSの出力が再開されるまで、命令保持部22に保持された他の命令INSを命令デコーダ31を介して命令実行部32に複数回出力する。すなわち、命令選択部23は、命令供給部21からの命令INSの受信が停止した場合、命令実行部32が同じ命令INSを2回以上連続して実行するように命令保持部22から受信した他の命令を出力する。命令保持部22に保持された他の命令INSを複数回出力する場合、他の命令によって実行される内容は、複数回のそれぞれで互いに同じでもよく、複数回の少なくとも2回で異なってもよい。
【0034】
命令デコーダ31は、命令選択部23から受信する命令INSを順次デコードし、制御情報EXとして命令実行部32に出力する。そして、命令実行部32は、制御情報EXに基づいて命令INSを順次実行する。
【0035】
この実施形態では、命令供給部21からの命令INSの出力が途切れても、命令実行部32は、命令保持部22から出力される命令INSを使用して命令INSを途切れることなく実行することができる。このため、命令供給部21からの命令INSの出力が途切れても消費電力はほどんど変動しない。したがって、命令供給部21からの命令INSの出力が途切れることにより消費電力が急激に低下することを抑止することができ、電源ノイズの発生を抑制することができる。この結果、電源ノイズによるプロセッサ100の誤動作を抑止することができ、プロセッサ100の信頼性を向上することができる。
【0036】
また、命令実行部32は、命令供給部21からの命令INSの出力が途切れたときに、直前に実行した命令INSを繰り返し実行する。このため、命令INSの出力が途切れたときに直前に実行した命令INSとは無関係の命令を実行する場合に比べて、消費電力の変動を小さくすることができ、電源ノイズの発生をさらに抑制することができる。
【0037】
さらに、命令実行部32は、命令供給部21により命令INSの出力が再開されるまで、命令保持部22から出力される命令INSを実行し続ける。このため、命令INSの実行が突然開始される場合に比べて消費電力が急激に増加することを抑止することができ、電源ノイズの発生をさらに抑制することができる。なお、プロセッサ100が、一度に動作する演算器の数が多いSIMDプロセッサの場合、より顕著な効果を得ることができる。
【0038】
なお、命令供給部21からの命令INSの供給が停止した場合に命令デコーダ31を介して命令実行部32に供給される他の命令INSは、命令INSの供給が停止する直前に命令供給部21から出力された命令INSでもよく、命令INSの供給が停止する直前に命令保持部22に保持された命令INSでもよい。また、消費電力の変動を抑えることが可能な命令INSであれば、直前の命令INSでなくてもよい。さらに、命令供給部21からの命令INSの供給が停止した場合に命令デコーダ31を介して命令実行部32に供給される他の命令INSは、命令INSの供給の停止前に実行された1以上の命令INSの消費電力に基づいて決定されてもよい。例えば、命令実行部32に供給する他の命令INSは、命令INSの供給の停止前に実行された命令INSの平均的な消費電力に基づいて決定されてもよい。
【0039】
図3は、図1の命令保持部22及び命令選択部23がないプロセッサの動作の一例を示す説明図である。図2と同様の要素については詳細な説明は省略する。命令メモリ10及び命令供給部21からそれぞれ出力される命令INSは、図2と同じである。
【0040】
図3では、命令供給部21が命令INSを出力しない場合、命令デコーダ31は、命令INSのデコードを停止し、命令実行部32は、命令INSの実行を停止する。このため、命令実行部32が命令INSの実行を停止している期間、プロセッサの消費電力は急激に低下する。また、命令実行部32が命令INSの実行を再開する場合、プロセッサの消費電力は急激に上昇する。消費電力が急激に変化した場合、電源ノイズが大きくなり、電源ノイズによりプロセッサが誤動作するおそれがある。近年、プロセッサの動作電圧は低くなる傾向にあり、プロセッサの動作マージンは低下する傾向にある。プロセッサを安定して動作させるために、電源の変動量は小さい方が好ましい。
【0041】
図4は、本発明の別の実施形態におけるプロセッサの構成の一例を示すブロック図である。図1と同じ要素については同じ符号を付し、詳細な説明は省略する。図4に示すプロセッサ100Aは、図1の命令供給機構20の代わりに命令供給機構20Aを有する。命令供給機構20Aは、図1の命令供給部21の代わりに命令供給部21Aを有し、新たにアンド回路24を有する。なお、命令選択部23は、命令供給機構20Aでなく、命令実行機構30に含まれてもよい。命令供給機構20A及び命令供給部21Aは、命令供給回路ブロック20A及び命令供給回路21Aとして実現されてもよい。
【0042】
命令供給部21Aは、アンド回路21aを持たないことを除き、図1の命令供給部21の構成及び機能と同様の構成及び機能を有する。命令供給部21Aは、命令実行機構30に出力する命令があり、かつ、命令実行機構30からハイレベルのウェイト信号/WAITを受信している場合、命令INS及びハイレベルの選択信号SELを出力する。命令供給部21Aは、命令実行機構30に出力する命令がない場合、又は、命令実行機構30からロウレベルのウェイト信号/WAITを受信した場合、命令INSの出力を停止し、ロウレベルの選択信号SELを出力する。
【0043】
アンド回路24は、図1のアンド回路21aの代わりに設けられる。アンド回路24は、ウェイト信号/WAITがハイレベルの場合、命令供給部21Aが出力する選択信号SELの論理を命令選択部23及び遅延部34に出力する。アンド回路24は、ウェイト信号/WAITがロウレベルの場合、命令供給部21Aが出力する選択信号SELの論理にかかわらず、命令選択部23及び遅延部34にロウレベルを出力する。アンド回路24は、選択制御部の一例である。選択制御部は、選択制御回路として実現されてもよい。
【0044】
なお、アンド回路24の機能が命令選択部23に搭載されてもよい。この場合、命令選択部23は、選択信号SEL及びウェイト信号/WAITを受信し、命令供給部21Aからの命令INSと命令保持部22からの命令INSのどちらを選択するかを決定する。
【0045】
プロセッサ100Aの動作は、図2に示したプロセッサ100の動作と同様である。但し、プロセッサ100Aの動作では、図2の選択信号SELの波形は、アンド回路24の出力信号の波形を示す。この実施形態においても、図1及び図2に示す実施形態と同様の効果を得ることができる。
【0046】
図5は、本発明の別の実施形態におけるプロセッサの構成の一例を示すブロック図である。図1と同じ要素については同じ符号を付し、詳細な説明は省略する。図5に示すプロセッサ100Bは、図1の命令供給機構20及び命令実行機構30の代わりに、それぞれ命令供給機構20B及び命令実行機構30Bを有する。
【0047】
命令供給機構20Bは、図1の命令保持部22の代わりに命令保持部22Bを有することを除き、図1の命令供給機構20と同様の構成及び機能を有する。命令実行機構30Bは、図1の命令デコーダ31の代わりに命令デコーダ31Bを有し、遅延部34及びアンド回路35を持たないことを除き、図1の命令実行機構30と同様の構成及び機能を有する。命令供給機構20B、命令保持部22B、命令実行機構30B及び命令デコーダ31Bは、命令供給回路ブロック20B、命令保持回路22B、命令実行回路ブロック30B及び命令デコーダ回路31Bとして実現されてもよい。
【0048】
プロセッサ100Bは、命令実行部32が実行した命令INSの実行結果をメモリ33に書き込むか否かを示す書き込み情報Wを各命令に付加した命令セットアーキテクチャを有する。例えば、"1"の書き込み情報Wは、メモリ33へのコンテキストの書き込みの許可を示し、"0"の書き込み情報Wは、メモリ33へのコンテキストの書き込みの禁止を示す。以下では、"1"の書き込み情報Wを含む命令INSは、命令INS(W=1)で示され、"0"の書き込み情報Wを含む命令INSは、命令INS(W=0)で示される。
【0049】
外部メモリ110には、命令INS(W=1)が格納されている。命令メモリ10は、外部メモリ110から転送される命令INS(W=1)を保持し、保持している命令INS(W=1)を命令供給部21に順次出力する。
【0050】
命令供給部21は、命令メモリ10から受信する命令INS(W=1)を命令保持部22B及び命令選択部23に順次出力する。命令供給部21は、命令INS(W=1)を出力する場合、命令INS(W=1)を命令選択部23に選択させるハイレベルの選択信号SELを命令INS(W=1)とともに命令選択部23に出力する。命令供給部21は、命令メモリ10からの命令INS(W=1)の供給が停止した場合、又は、命令実行機構30からロウレベルのウェイト信号/WAITを受信している場合、命令保持部22Bから出力される命令INS(W=0)を命令選択部23に選択させるロウレベルの選択信号SELを命令選択部23に出力する。
【0051】
命令保持部22Bは、命令供給部21から命令INS(W=1)を受信する場合、命令INS(W=1)を受信する毎に、コンテキストの書き込みを禁止する書き込み情報W(="0")に変更し、命令INS(W=0)として命令選択部23に出力する。このように、命令供給部21が出力した命令INSを命令保持部22Bに保持することは、命令供給部21が出力した命令INS(W=1)を、命令INSの実行結果のメモリ33への書き込みを抑止する命令INS(W=0)に変更して保持することを含む。命令保持部22Bに保持される命令INS(W=0)は、他の命令の一例である。命令保持部22Bは、命令供給部21から命令INS(W=1)を受信しない場合、最後(直前)に受信した命令INS(W=1)に対応する命令INS(W=0)を、新たな命令INS(W=1)を受信するまで命令選択部23に繰り返し出力する。
【0052】
命令選択部23は、選択信号SELがハイレベルの場合、命令供給部21から出力される命令INS(W=1)を選択し、命令INSとして命令デコーダ31Bに出力する。命令選択部23は、選択信号SELがロウレベルの場合、命令保持部22Bから出力される命令INS(W=0)を選択し、命令INSとして命令デコーダ31Bに出力する。
【0053】
命令デコーダ31Bは、命令選択部23から受信する命令INS(W=1又はW=0を含む)をデコードして命令実行部32が実行可能な制御情報EXを生成し、生成した制御情報EXを命令実行部32に出力する。制御情報EXは、命令供給部21から出力された命令INS(W=1)又は命令保持部22Bから出力された命令INS(W=0)に含まれる書き込み情報Wを含む。
【0054】
命令実行部32は、制御情報EXに"1"の書き込み情報Wが含まれる場合、制御情報EXにしたがって、メモリ33に保持されたデータを使用して命令を実行し、実行結果とともにハイレベルのライトイネーブル信号WEをメモリ33に出力する。これにより、実行結果データ又はステータスフラグ等であるコンテキストは、メモリ33に格納される。
【0055】
命令実行部32は、制御情報EXに"0"の書き込み情報Wが含まれる場合、制御情報EXにしたがって、メモリ33に保持されたデータを使用して命令を実行し、実行結果とともにロウレベルのライトイネーブル信号WEをメモリ33に出力する。この場合、実行結果はメモリ33に格納されず、メモリ33内のコンテキストは保持される。
【0056】
図6は、図5のプロセッサ100Bの動作の一例を示す説明図である。図2と同様の動作については、詳細な説明は省略する。図6では、"1"の書き込み情報Wを含む命令INS及び制御情報EXは、それぞれINS(W=1)及びEX(W=1)で示される。"0"の書き込み情報Wを含む命令INS及び制御情報EXは、それぞれINS(W=0)及びEX(W=0)で示される。
【0057】
図6においても、図2と同様に、命令供給部21からの命令INS(W=1)の出力が途切れても、命令実行部32は、命令保持部22Bから出力される命令INS(W=0)を使用して命令INSを途切れることなく実行することができる。このため、命令供給部21からの命令INS(W=1)の出力が途切れても消費電力はほどんど変動しない。したがって、命令供給部21からの命令INS(W=1)の出力が途切れることにより消費電力が急激に低下することを抑止することができ、電源ノイズの発生を抑制することができる。この結果、電源ノイズによるプロセッサ100Bの誤動作を抑止することができ、プロセッサ100Bの信頼性を向上することができる。
【0058】
命令INS(W=1)と命令INS(W=0)とは、実行結果のメモリ33への書き込みの有無の違いがあるが、命令実行部32は、命令INS(W=1)と命令INS(W=0)とをそれぞれ実行する。このため、命令INS(W=0)の実行時の消費電力は、命令INS(W=1)の実行時の消費電力とほぼ同じであり、命令INS(W=1)の実行後に命令INS(W=0)を実行するときの消費電力の変動はほとんどない。
【0059】
さらに、命令実行部32は、命令供給部21により命令INSの出力が再開されるまで、命令保持部22Bから出力される命令INS(W=0)を実行し続ける。このため、命令供給部21により出力が再開された命令INS(W=1)の実行が開始されるときの消費電力の増加量を抑えることができ、電源ノイズの発生を抑制することができる。
【0060】
図7は、本発明の別の実施形態におけるプロセッサの構成の一例を示すブロック図である。図1及び図5と同じ要素については同じ符号を付し、詳細な説明は省略する。図7に示すプロセッサ100Cは、図5の命令供給機構20Bの代わりに命令供給機構20Cを有する。命令供給機構20Cは、図4の命令供給機構20Aの命令保持部22の代わりに、図5の命令保持部22Bを有する。なお、命令選択部23は、命令供給機構20Cでなく、命令実行機構30Bに含まれてもよい。命令供給機構20Cは、命令供給回路ブロック20Cとして実現されてもよい。
【0061】
プロセッサ100Cは、図5のプロセッサ100Bと同様に、命令実行部32が実行した命令INSの実行結果をメモリ33に書き込むか否かを示す書き込み情報Wを各命令に付加した命令セットアーキテクチャを有する。プロセッサ100Cの動作は、図6に示したプロセッサ100Bの動作と同様である。但し、プロセッサ100Cの動作では、図6の選択信号SELの波形は、アンド回路24の出力信号の波形を示す。この実施形態においても、図5及び図6に示す実施形態と同様の効果を得ることができる。
【0062】
図8は、図1に示したプロセッサ100が搭載される計算機のハードウェア構成の一例を示すブロック図である。図8では、計算機は、一例として、プロセッサ100と、主記憶装置110(メモリ)と、補助記憶装置120(メモリ)と、ネットワークインタフェース130と、デバイスインタフェース140と、を備え、これらがバス150を介して接続されたコンピュータ200として実現されてもよい。なお、コンピュータ200は、プロセッサ100の代わりに、図4に示したプロセッサ100A、図5に示したプロセッサ100B又は図7に示したプロセッサ100Cを有してもよい。例えば、主記憶装置110は、図1に示した外部メモリ110に対応する。
【0063】
図8のコンピュータ200は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図8では、1台のコンピュータ200が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース130等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータ200が実行することで機能を実現するシステムが構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータ200で処理し、この処理結果を端末に送信するような構成であってもよい。
【0064】
各種演算は、コンピュータ200に搭載される1又は複数のプロセッサ100を用いて、又はネットワークを介した複数台のコンピュータ200を用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ100内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ200と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実現されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0065】
プロセッサ100は、少なくともコンピュータの制御又は演算のいずれかを行う電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、ASIC等)であってもよい。また、プロセッサ100は、汎用プロセッサ、特定の演算を実行するために設計された専用の処理回路又は汎用プロセッサと専用の処理回路との両方を含む半導体装置のいずれであってもよい。また、プロセッサ100は、光回路を含むものであってもよいし、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0066】
プロセッサ100は、コンピュータ200の内部構成の各装置等から入力されたデータやソフトウェアに基づいて演算処理を行ってもよく、演算結果や制御信号を各装置等に出力してもよい。プロセッサ100は、コンピュータ200のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ200を構成する各構成要素を制御してもよい。
【0067】
主記憶装置110は、プロセッサ100が実行する命令及び各種データ等を記憶してもよく、主記憶装置110に記憶された情報がプロセッサ100により読み出されてもよい。補助記憶装置120は、主記憶装置110以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ又は不揮発性メモリのいずれでもよい。コンピュータ200において各種データ等を保存するための記憶装置は、主記憶装置110又は補助記憶装置120により実現されてもよく、プロセッサ100に内蔵される内蔵メモリにより実現されてもよい。
【0068】
コンピュータ200が、少なくとも1つの記憶装置(メモリ)と、この少なくとも1つの記憶装置に接続(結合)される少なくとも1つのプロセッサ100で構成される場合、記憶装置1つに対して、少なくとも1つのプロセッサ100が接続されてもよい。また、1つのプロセッサ100に対して、少なくとも1つの記憶装置が接続されてもよい。また、複数のプロセッサ100のうち少なくとも1つのプロセッサ100が、複数の記憶装置のうち少なくとも1つの記憶装置に接続される構成を含んでもよい。また、複数台のコンピュータ200に含まれる記憶装置とプロセッサ100によって、この構成が実現されてもよい。さらに、記憶装置がプロセッサ100と一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0069】
ネットワークインタフェース130は、無線又は有線により、通信ネットワーク300に接続するためのインタフェースである。ネットワークインタフェース130は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース130により、通信ネットワーク300を介して接続された外部装置410と情報のやり取りが行われてもよい。なお、通信ネットワーク300は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか又はそれらの組み合わせであってもよく、コンピュータ200と外部装置410との間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
【0070】
デバイスインタフェース140は、外部装置420と直接接続するUSB等のインタフェースである。
【0071】
外部装置410はコンピュータ200とネットワークを介して接続されている装置である。外部装置420はコンピュータ200と直接接続されている装置である。
【0072】
外部装置410又は外部装置420は、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、タッチパネル等のデバイスであり、取得した情報をコンピュータ200に与える。また、パーソナルコンピュータ、タブレット端末、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0073】
また、外部装置410又は外部装置420は、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0074】
また、外部装置410又は外部装置420は、記憶装置(メモリ)であってもよい。例えば、外部装置410はネットワークストレージ等であってもよく、外部装置420はHDD等のストレージであってもよい。
【0075】
また、外部装置410又は外部装置420は、コンピュータ200の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ200は、外部装置410又は外部装置420に処理結果の一部又は全部を送信してもよいし、外部装置410又は外部装置420から処理結果の一部又は全部を受信してもよい。
【0076】
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0077】
本明細書(請求項を含む)において、「データを入力として/を用いて/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、データそのものを用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、データの中間表現等)を用いる場合を含む。また、「データを入力として/を用いて/データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合(同様な表現を含む)、特に断りがない場合、当該データのみに基づいて当該結果が得られる場合や、当該データ以外の他のデータ、要因、条件及び/又は状態にも影響を受けて当該結果が得られる場合を含む。また、「データを出力する」旨が記載されている場合(同様な表現を含む)、特に断りがない場合、データそのものを出力として用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、各種データの中間表現等)を出力として用いる場合を含む。
【0078】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0079】
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ、専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造等が動作Bを実際に実行するように構築(implemented)されていればよい。
【0080】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」、「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0081】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」、「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0082】
本明細書において、ある実施形態の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施形態についても当該効果が得られると理解されるべきである。但し、当該効果の有無は、一般に種々の要因、条件及び/又は状態に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件及び/又は状態が満たされたときに実施形態に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0083】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現(同様な表現を含む)が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、電子回路を含む装置等を含んでよい。
【0084】
本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置のうち個々の記憶装置は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。また、複数の記憶装置のうち一部の記憶装置がデータを記憶する構成を含んでもよい。
【0085】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において、種々の追加、変更、置き換え、部分的削除等が可能である。例えば、前述した実施形態において、数値又は数式を説明に用いている場合、これらは例示的な目的で示されたものであり、本開示の範囲を限定するものではない。また、実施形態で示した各動作の順序も例示的なものであり、本開示の範囲を限定するものではない。
【0086】
本発明の態様は、例えば、以下のとおりである。
<1>
命令を実行する命令実行部と、
前記命令実行部に実行させる命令を出力する命令供給部と、
前記命令供給部から受信した命令を前記命令実行部に出力し、前記命令供給部からの命令の受信が停止した場合、他の命令を前記命令実行部に出力する命令選択部と、を有する、
プロセッサ。
<2>
前記他の命令は、少なくとも前記命令供給部からの命令の受信が停止する前に前記命令供給部から受信した第1の命令に基づく命令又は前記第1の命令の消費電力に基づいて決定される命令のいずれかである、
<1>に記載のプロセッサ。
<3>
前記他の命令は、前記命令供給部からの命令の受信が停止する直前に前記命令供給部から受信した命令に基づく命令である、
<2>に記載のプロセッサ。
<4>
前記他の命令は、消費電力に基づいて決定された命令である、
<1>に記載のプロセッサ。
<5>
前記命令選択部は、前記命令供給部からの命令の受信が停止した場合、前記命令実行部が同じ命令を2回以上連続して実行するように前記他の命令を出力する
<1>に記載のプロセッサ。
<6>
前記命令実行部による命令の実行結果が書き込まれるメモリ、を更に有し、
前記他の命令の実行結果は、前記メモリに書き込まれない、
<1>ないし<5>のいずれか1項に記載のプロセッサ。
<7>
前記命令供給部が出力した命令を保持する命令保持部、を更に有し、
前記他の命令は、前記命令保持部に保持された命令である、
<1>ないし<5>のいずれか1項に記載のプロセッサ。
<8>
前記他の命令は、前記命令供給部からの命令の受信が停止する直前に前記命令保持部に保持された命令である、
<7>に記載のプロセッサ。
<9>
前記命令実行部による命令の実行結果が書き込まれるメモリ、を更に有し、
前記命令供給部が出力した命令を保持することは、前記命令供給部が出力した命令を、前記メモリへの実行結果の書き込みを抑止する命令に変更して保持することを含み、
前記他の命令は、前記変更して保持された命令である、
<7>に記載のプロセッサ。
<10>
前記命令供給部は、前記命令実行部に出力する命令がない場合、命令の出力を停止し、前記命令保持部に保持された命令を出力させる選択信号を前記命令選択部に出力する、
<7>に記載のプロセッサ。
<11>
前記命令供給部は、前記命令実行部が命令の実行をできない場合に生成されるウェイト指示を受信した場合、命令の出力を停止し、前記命令保持部に保持された命令を出力させる選択信号を前記命令選択部に出力する、
<7>に記載のプロセッサ。
<12>
前記命令供給部が命令を出力しない場合、又は、前記命令実行部が命令を実行できない場合、前記命令保持部に保持された命令を出力させる選択信号を前記命令選択部に出力する選択制御部を有する、
<7>に記載のプロセッサ。
<13>
前記命令選択部は、前記命令供給部からの命令の受信が再開されるまで、前記命令実行部に前記他の命令を複数回出力する、
<1>ないし<5>のいずれか1項に記載のプロセッサ。
<14>
前記命令実行部が複数の演算器を含み、SIMD(Single Instruction Multiple Data)プロセッサとして動作する、
<1>ないし<5>のいずれか1項に記載のプロセッサ。
<15>
命令を実行する命令実行部と、前記命令実行部に実行させる命令を出力する命令供給部と、を有するプロセッサの制御方法であって、
前記プロセッサが有する命令選択部が、前記命令供給部から受信した命令を前記命令実行部に出力し、前記命令供給部からの命令の受信が停止した場合、他の命令を前記命令実行部に出力する、
プロセッサの制御方法。
【符号の説明】
【0087】
10 命令メモリ
20、20A、20B 命令供給機構
21、21A 命令供給部
22 命令保持部
23 命令選択部
24 アンド回路
30、30B 命令実行機構
31、31B 命令デコーダ
32 命令実行部
33 メモリ
34 遅延部
35 アンド回路
100、100A、100B、100C プロセッサ
110 外部メモリ、主記憶装置
120 補助記憶装置
130 ネットワークインタフェース
140 デバイスインタフェース
150 バス
200 コンピュータ
300 通信ネットワーク
410、420 外部装置
EX 制御情報
INS 命令
SEL 選択信号
SELD 遅延選択信号
/WAIT ウェイト信号
WE ライトイネーブル信号
図1
図2
図3
図4
図5
図6
図7
図8