JP2006195705A - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP2006195705A
JP2006195705A JP2005006017A JP2005006017A JP2006195705A JP 2006195705 A JP2006195705 A JP 2006195705A JP 2005006017 A JP2005006017 A JP 2005006017A JP 2005006017 A JP2005006017 A JP 2005006017A JP 2006195705 A JP2006195705 A JP 2006195705A
Authority
JP
Japan
Prior art keywords
instruction
fetch
processor
memory
urgency
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
JP2005006017A
Other languages
English (en)
Other versions
JP4631442B2 (ja
Inventor
Mitsunari Todoroki
晃成 轟
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005006017A priority Critical patent/JP4631442B2/ja
Publication of JP2006195705A publication Critical patent/JP2006195705A/ja
Application granted granted Critical
Publication of JP4631442B2 publication Critical patent/JP4631442B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Memory System (AREA)

Abstract

【課題】 比較的高速に動作する場合にあっても適正なタイミングで命令列を読み出すことによって高い処理能力が得られるプロセッサを提供する。
【解決手段】 メモリ101から命令をフェッチするフェッチ部107a〜107dの各々が、転送された命令を蓄積するフェッチ・バッファ109a〜109dの1つ、フェッチ・バッファ109a〜109dのうち対応するものの命令データの蓄積状態に基づいて命令データ転送の緊急度を設定すると共に、命令データ転送を要求する命令データ転送要求信号と緊急度を示す信号を出力して命令データ転送を要求するプログラム制御部105a〜105dの1つを備える。また、緊急度に基づいて命令データ転送の優先順位を設定し、設定された優先順位にしたがってフェッチ部107a〜107dのフェッチ要求にかかる命令を前記メモリから読み出すメモリ制御部103によってプロセッサを構成する。
【選択図】 図1

Description

本発明は、プロセッサにかかり、特に複数のタスクまたはスレッドを並列に実行可能なプロセッサに関する。
一般的に、プロセッサは、パイプライン処理を実行するため、各処理に専用のハードウェア構成を備えている。このようなプロセッサを複数設け、プロセッサのすべてを統括的に制御する構成は、マルチスレッドプロセッサ等と呼ばれている。マルチスレッドプロセッサの多くは、複数のプロセッサ間で互いにハードウェア構成の一部を共用することにより、ハードウェアリソースを効率的に使用し、回路の大規模化を抑止している。
マルチスレッドプロセッサによれば、複数の命令を並列に実行することができ、プロセッサの処理速度をシングルスレッドのプロセッサに比べて格段に高めることができる。
マルチスレッドプロセッサに関する従来技術としては、例えば、特許文献1ないし3に記載された発明が掲げられる。特許文献1の発明のマイクロコンピュータは、複数のCPU(Central Processing Unit)でなるマイクロコンピュータが、メモリから命令を読み出すよう構成されている。
特許文献1に記載された発明は、メモリのメモリ空間をCPUごとのプログラム領域に分割し、分割されたプログラム領域のオフセットアドレスをレジスタに格納する。そして、CPUがメモリにアクセスした場合、CPUに対応したオフセットアドレスと命令フェッチアドレスとを加算してアクセスすべきプログラム領域を選択する。このような特許文献1によれば、プログラマがメモリのバンクを意識することなくソフトウェアを開発することができ、メモリ空間が有効に活用できるという効果を得ることができる。
また、特許文献2に記載された発明では、CPUと、CPUによって命令が読み出される命令メモリと、データが読み出されるデータメモリと、命令メモリ、データメモリでマッピング可能な共用メモリバンクを設けている。特許文献2によれば、ソフトウェアの開発時、命令メモリやデータメモリに必要なメモリ量を正確に見積もることができない場合にも対応可能な集積回路が提供できる。
さらに、特許文献3に記載された発明は、複数のプロセッサと、複数のプロセッサによってアクセスされる共有メモリを設ける。そして、各プロセッサに共有メモリとの間で連続したアドレスを持つローカルメモリを設け、このローカルメモリに共有メモリ内のサブページを記憶させている。このような特許文献3の発明によれば、プロセッサ間のスヌープ処理にかかる負荷を軽減することができる。
特開平9−325910号公報 特開2004−171232号公報 特開平11−120078号公報
ところで、マルチスレッドプロセッサでは、複数のプロセッサの各々によってメモリから命令が読み出される。このため、マルチスレッドプロセッサにあっては、シングルスレッドのプロセッサに比べて命令列を高速に読み出し、適正なタイミングで処理することが必要になる。そして、プロセッサが命令を適正なタイミングで読み出すことができない場合、マルチスレッドプロセッサの全てのプロセッサで実行されているプログラムが、メモリからの命令の読み出し待ちにより停止する可能性がある。なお、このような要因でプログラムが停止することを、一般的にメモリ・ストールという。
しかしながら、上記した特許文献1ないし3は、いずれもマルチスレッドプロセッサに命令を適正なタイミングで供給することを目的にしてなされたものではない。こため、特許文献1ないし3の構成では、例えば200MHz程度の高速でプロセッサを動作させることを考えた場合、動作に充分な読み出し速度を実現することが難しい。このため、従来技術を適用したプロセッサでは、高速で動作する場合のメモリ・ストールの発生を抑えることはできず、動作速度の制限によってプロセッサの処理能力が制限される。
さらに、特許文献1ないし特許文献3は、いずれもメモリをバンク分けし、並列に命令列を読み出すことによって命令の読み出しを高速化し、メモリ・ストールを防いでいる。
メモリをバンク分けする構成は、マルチスレッドプロセッサの動作速度を高めることに有利である。ただし、バンク分けされたメモリは、一般的に各バンクに異なる種類のデータを保存する。このため、複数種類のデータのいずれにも適正なメモリ空間をバンクに設定しない限り、複数のプロセッサからの要求が1つのバンクに集中し処理性能を低下させる要因になる。さらに、複数のバンクのうちデータが保存されない空き領域が生じるものが発生し、メモリの使用効率が低下する可能性がある。
また、従来技術によれば、マルチポートを採用して命令の読み出しを高速化するものがある。しかし、マルチポートの構成は比較的コストがかかるため、より低コストのシングルポートを採用することが望ましい。バンク分けされたメモリとマルチポート接続するプロセッサの構成を図11に例示する。
本発明は、上記した点に鑑みてなされたものであり、比較的高速に動作する場合にあっても適正なタイミングで命令列を読み出すことができ、高い処理能力が得られるプロセッサを提供することを目的とする。また、本発明は、適正なタイミングで命令列を読み出すことが可能であるためにメモリのバンク分けを避けてメモリの利用効率を高め、しかもシングルポートを採用して回路規模を抑えると共に低コスト化を実現できるプロセッサを提供することを目的とする。
以上の課題を解決するため、本発明のプロセッサは、命令が保存されているメモリから命令をフェッチするプロセッサであって、命令をフェッチするフェッチ手段と、当該フェッチ手段によって要求された命令を、命令を要求したフェッチ手段に転送するメモリ制御手段とを含み、前記フェッチ手段が、転送された命令を蓄積する命令蓄積手段と、前記命令蓄積手段に蓄積された命令のうち実際に実行される命令である実命令の状態に基づいて、該フェッチ手段における命令取得の緊急性の度合いを示す緊急度設定手段と、前記緊急度設定手段によって設定された緊急度を前記メモリ制御手段に出力し、命令の転送を要求するフェッチ要求手段と、を備え、前記メモリ制御手段は、前記フェッチ要求手段によって入力された緊急度に基づいて命令転送の優先順位を決定するフェッチ優先順位設定手段と、前記フェッチ優先順位設定手段によって設定された優先順位にしたがってフェッチ要求にかかる命令を前記メモリから読み出すメモリアクセス制御手段とを備えることを特徴とする。
このような発明によれば、フェッチ手段に転送された命令を蓄積し、蓄積された命令のうち実際に実行される命令である実命令の状態に基づいてフェッチ手段における命令取得の緊急性の度合いを設定することができる。そして、設定された緊急度をメモリ制御手段に出力して命令の転送を要求する。さらに、メモリ制御手段が、出力された緊急度に基づいて命令転送の優先順位を決定し、設定された優先順位にしたがってフェッチ要求にかかる命令をメモリから読み出すことができる。
このため、本発明は、比較的高速に動作する場合にあってもメモリに対するアクセス速度を高めることなく適正なタイミングで命令列を読み出すことができ、メモリ・ストールを防ぐことが可能なプロセッサを提供することができる。
また、本発明は、命令のフェッチを並行して行わずに適正なタイミングで命令列を読み出すことができ、メモリ・ストールを防ぐことが可能である。このため、命令をバンク分けすることを避けることによってメモリの利用効率を高め、しかもシングルポートを採用して回路規模を抑えると共に低コスト化を実現できるプロセッサを提供することができる。
また、本発明のプロセッサは、複数の命令を並列実行するプロセッサであって、命令をフェッチする複数のフェッチ手段と、当該フェッチ手段によって要求された命令を、命令を要求したフェッチ手段に転送するメモリ制御手段とを含み、前記フェッチ手段が、転送された命令を蓄積する命令蓄積手段と、前記命令蓄積手段に蓄積された命令のうちの実際に実行される命令である実命令の状態に基づいて、該フェッチ手段における命令取得の緊急性の度合いを示す緊急度設定手段と、前記緊急度設定手段によって設定された緊急度を前記メモリ制御手段に出力し、命令の転送を要求するフェッチ要求手段と、を備え、前記メモリ制御手段は、前記フェッチ要求手段によって出力された緊急度に基づいて命令転送の優先順位を決定するフェッチ優先順位設定手段と、前記フェッチ優先順位設定手段によって設定された優先順位にしたがってフェッチ要求にかかる命令を前記メモリから読み出すメモリアクセス制御手段と、を備えることを特徴とする。
このような発明によれば、複数のフェッチ手段の各々が転送された命令を蓄積し、蓄積された命令のうち実際に実行される命令である実命令の状態に基づいてフェッチ手段における命令取得の緊急性の度合いを設定することができる。そして、設定された緊急度をメモリ制御手段に出力して命令の転送を要求する。さらに、メモリ制御手段が、出力された緊急度に基づいて命令転送の優先順位を決定し、設定された優先順位にしたがってフェッチ要求にかかる命令をメモリから読み出すことができる。
このため、本発明は、比較的高速に動作する場合にあってもメモリに対するアクセス速度を高めることなく適正なタイミングで命令列を読み出すことができ、メモリ・ストールを防ぐことが可能なプロセッサを提供することができる。
また、本発明は、命令のフェッチを並行して行う場合にあっても適正なタイミングで命令列を読み出すことができ、メモリ・ストールを防ぐことが可能である。このため、命令を並列に実行するいわゆるマルチスレッドプロセッサ等にあっても命令をバンク分けすることを避けあてメモリの利用効率を高め、しかもシングルポートを採用して回路規模を抑えると共に低コスト化を実現できるプロセッサを提供することができる。
また、本発明は、前記緊急度設定手段が、実際に実行される命令の蓄積数に応じて前記緊急度を設定することを特徴とする。
このような発明によれば、処理すべき命令が不足してメモリ・ストールが発生する可能性が高いフェッチ手段のフェッチを優先的に実行することができる。このため、メモリ・ストールを効果的に防ぐことができる。
また、本発明のプロセッサは、前記フェッチ蓄積手段がデータ長の異なる複数の実行予定命令を蓄積する場合、前記緊急度設定手段は、実行予定命令のデータ長に基づいて命令の蓄積数を判定することを特徴とする。
このような発明によれば、データ長が可変長の命令を扱う場合にも、フェッチ蓄積手段に蓄積されている命令の蓄積数を正確に判別することができる。このため、より適正なタイミングで命令列を読み出すことができる。
また、本発明のプロセッサは、前記フェッチ手段によって分岐命令がフェッチされたことを検出する分岐命令検出手段をさらに備え、前記緊急度設定手段は、前記分岐命令検出手段が、該緊急度設定手段に対応するフェッチ手段による分岐命令のフェッチを検出したことによって緊急度を設定することを特徴とする。
このような発明によれば、分岐命令を実行したことによってフェッチ蓄積手段に蓄積されている命令がクリアされるフェッチ手段のフェッチを優先して実行することができる。このため、メモリ・ストールを効果的に防ぐことができる。
また、本発明のプロセッサは、複数の前記フェッチ手段のうち第1フェッチ手段が第1命令を要求した後であって、かつ第1命令の転送が完了する以前に第2フェッチ手段が第2命令を要求し、第2命令の転送が第1命令の転送よりも先に完了した場合、前記優先順位設定手段は、前記第1命令の命令転送の優先順位の設定をより高位の順位に更新することを特徴とする。
このような発明によれば、フェッチの追越しが発生した場合、先に要求された緊急度の低いフェッチが長時間待機させられて実質的に実行できなくなることを防ぐことができる。
また、本発明のプロセッサは、前記メモリ制御手段と前記メモリとをシングルポート接続し、前記フェッチ手段のいずれかに命令を1つずつフェッチさせることを特徴とする。
このような発明によれば、シングルポートを採用して回路規模を抑えると共に低コスト化を実現できるプロセッサを提供することができる。
以下、図を参照して本発明に係るプロセッサの実施形態1、実施形態2を説明する。
(実施形態1)
図1は、本発明の実施形態1、実施形態2に共通のプロセッサを説明するための図である。実施形態1のプロセッサは、複数のプロセッサA、B、C、Dを含み、各プロセッサでハードウェアリソースを一部共有して構成されるプロセッサである。このような実施形態1のプロセッサは、プロセッサA〜Dが並行して命令を実行することができる。
実施形態1のプロセッサは、命令が保存されているメモリ101を備え、メモリ101から命令を読み出す(フェッチする)ものである。このため、プロセッサは、命令をフェッチする複数のフェッチ部107a、107b、107c、107dを備えるプロセッサ本体1と、フェッチ部107a〜107dによって要求された命令を命令を要求したフェッチ部に転送するメモリ制御部103とを含んでいる。
実施形態1のメモリ101は、命令が記憶される記憶領域がバンクされていない非バンク構成を有する。このようなメモリ101は、多くの命令を記憶領域にリニアに保存することができ、記憶領域を効率よく使用することが可能である。
また、実施形態1では、メモリ制御部103が、メモリ101とシングルポート接続してメモリから命令データを1つずつ読み出している。このような実施形態1は、メモリ101との接続にかかる回路の大規模化及びコストを抑えることができる。
プロセッサ本体1に含まれるプロセッサA〜Dは、いずれもフェッチ部と、フェッチ部でフェッチされた命令を解釈するデコード部と、デコードされた命令にかかる演算を実行するALU(Arithmetic and Logical Unit)とを備えている。実施形態1では、各プロセッサA〜Dは、フェッチ部107a〜107dのいずれかを有し、デコード部113とALU115とを共有している。
また、フェッチ部107a〜107dの各々は、メモリ101からプログラム等にしたがって実行が予定される命令をフェッチする。そして、フェッチされた命令を蓄積するフェッチ・バッファと、フェッチ・バッファにおける命令の蓄積状態を管理するフェッチ・バッファ管理部と、を備えている。なお、フェッチされた命令のうち、いったんフェッチ・バッファに蓄積されても分岐等の発生によってクリアされ、実際には実行がなされない場合もある。実行がなされる命令を、本明細書では実命令と記して実行されない命令と区別する場合もある。
さらに、プロセッサA〜Dでは、フェッチ部107a〜107dの各々に対応したプログラム制御部105a、105b、105c、105dを備えている。プログラム制御部105a〜105dは、プログラムカウンタ209を備え、プログラムのアドレス演算を行う。さらに、分岐判定部210を備え、分岐命令をデコードし、分岐条件のステータスが整った時点で分岐の判定が行われ、プログラムカウンタに分岐アドレスを渡し、分岐先のアドレスを命令アドレスとして出力する。フェッチ・バッファ管理部によって管理されているフェッチ・バッファにおける実命令の蓄積状態に基づいて、対応するフェッチ部の命令データ転送の緊急性の度合い(緊急度)を設定する。
実施形態1では、プログラム制御部105a〜105dが、設定された緊急度を示す信号(緊急度信号)を生成し、この信号を、命令データ転送を要求するための信号と共にメモリ制御部103に出力する。緊急度信号、命令データ転送を要求するための信号を出力したことによって命令データ転送の要求がなされるため、プログラム制御部105a〜105dは、実施形態1のフェッチ要求手段として機能する。
以上の構成において、プログラム制御部、フェッチ・バッファ、フェッチ・バッファ管理部は、いずれもプロセッサA〜Dの各々に1つずつ設けられている。本明細書では、以降、プログラム制御部をプログラム制御部105a、105b、105c、105dと記し、プロセッサA〜Dとの対応関係を符号中のa、b、c、dの文字にて示す。また、フェッチ・バッファをフェッチ・バッファ109a、109b、109c、109dと記し、プロセッサA〜Dとの対応関係を同様にして示す。さらに、フェッチ・バッファ管理部を、フェッチ・バッファ管理部111a、111b、111c、111dと記し、プロセッサA〜Dとの対応関係を同様にして示す。
一方、メモリ制御部103は、緊急度信号が示す緊急度に基づいて命令データ転送の優先順位を設定し、設定された優先順位にしたがってメモリ101から命令を読み出すことによって要求されたフェッチを実行する。
さらに、図示した実施形態1のプロセッサは、ALU115の演算の結果を保存するレジスタ部117a〜117dを備えている。レジスタ部117a〜117dは、いずれもプロセッサA〜Dの各々に対応して設けられ、対応するプロセッサの演算結果等を保存している。
次に、以上述べたプロセッサ本体1、メモリ制御部103についてより詳細に構成及び動作を説明する。
(1)プロセッサ本体
図2は、プロセッサ本体1の構成をより詳細に示した図であって、特にプロセッサAのフェッチ部107a及びプログラム制御部105aと、他のプロセッサと共有のデコード部113及びALU115とを示している。なお、プロセッサ本体1に含まれる複数のプロセッサA〜Dは、いずれもプログラム制御部とフェッチ部とを1つずつ有し、デコード部113とALU115とを共有するという同様の構成を有している。このため、本明細書では、説明の簡単のため、以降、プロセッサAの構成及び動作を説明し、他のプロセッサの説明を同様のものとして一部略すものとする。
以下、フェッチ部107a及びプログラム制御部105a、他のプロセッサと共有のデコード部113及びALU115の各構成について説明し、さらに各構成の動作について図2を用いて説明する。
I フェッチ部107a
フェッチ部107aにフェッチされた実行が予定されている命令のデータ(命令データ)は、フェッチ・バッファ109aに蓄積される。フェッチ・バッファ109aは、3つのバッファ200、201、202を有し、同時に複数の命令データを蓄積することができる。フェッチ・バッファ管理部111aは、3つのバッファ200、201、202における実行予定の命令データの蓄積状態を判別し、フェッチ・バッファ109aに蓄積されている命令データの個数等を含む情報を検出することができる。
フェッチ・バッファ管理部111aは、フェッチ・バッファ109aにおける命令データの蓄積状態を検出して緊急度信号を生成し、プログラム制御部105aに出力する。実施形態1では、フェッチ・バッファ管理部111aがフェッチ・バッファ109aの状態を常に監視し、状態信号として、信号E(Empty)及び信号EL(Empty_Level)をプログラム制御部105aに出力している。信号Eは、フェッチ・バッファ109に蓄積されている命令データがなくなったことを示す信号である。また、信号ELは、フェッチ・バッファ109aに現在蓄積されている命令データの数を示す信号である。信号E及び信号ELの具体的な例については後述する。
なお、フェッチ部107aにフェッチされた命令データは、先ず、フェッチ・バッファ109aのバッファ202に蓄積される。フェッチ・バッファ管理部111aは、バッファ202に蓄積された命令データを順次バッファ200に向けて送ると共に、後にフェッチされた命令データを空きが生じたバッファに蓄積する。そして、バッファ200に蓄積されている命令データは、次の動作時にデコード部113に出力され、ALU115における演算の実行に使用される。
II デコード部113及びALU115
デコード部113は、バッファ200に蓄積されていた命令データをデコードする。そして、命令データを解釈し、解釈の結果と共にALU115に送る。ALU115は、デコード部113から受け取った命令データの演算を実行し、この結果をレジスタ部117aに保存する。
レジスタ部117aは、レジスタファイル206と、分岐条件ステータスレジスタ205とを備えている。レジスタファイル206は、演算結果や演算のためにロードされたデータ等が保存されるレジスタファイルである。また、分岐条件ステータスレジスタ205は、ALU115で実行された演算の演算結果の状態を保存するためのレジスタである。大小比較、一致比較、加減算結果の符号等がステータスレジスタに保存される。
また、レジスタ部117aは、分岐命令がデコードされた場合、プログラム制御部105aに分岐アドレスI及び分岐アドレスJを出力する。さらに、分岐条件ステータスレジスタ205から分岐条件のステータスを示す分岐条件ステータス信号をプログラム制御部105aに出力する。
III プログラム制御部105a
プログラム制御部105aは、命令データ読み出し制御部207と、プログラムカウンタ209と、分岐判定部210とを備えている。命令データ読み出し制御部207は、プロセッサAにおけるフェッチを全般的に制御する。また、プログラムカウンタ209は、プロセッサAで実行されているプログラムの進行状態を示すカウンタであって、フェッチ部107aと共にフェッチ手段として機能する。分岐判定部210は、レジスタ部117aから分岐アドレスI及びALU115から分岐アドレスJ、分岐条件ステータス信号を入力し、対応するデコード部113によって分岐命令がデコードされたことを検出する構成である。
命令データ読み出し制御部207は、メモリ制御部103に命令データ転送要求信号である信号Sreq(RD_REQ)を出力する。信号Sreqを入力したメモリ制御部103は、命令データ転送の要求によってメモリ101から命令データを読み出し、フェッチを実行する。命令の読出しに成功した場合、メモリ制御部103は、信号Sreqに対して信号Sready(RD_READY)を返す。プログラムカウンタ209は、信号Sreqによって要求された命令データのメモリ101のアドレスを示す命令アドレス信号を出力する。
また、実施形態1の命令データ読み出し制御部207は、緊急度決定テーブル208を備えている。命令データ読み出し制御部207は、分岐判定部から分岐制御信号を用いて分岐を実行することが決定した場合、緊急度を最も高め命令データを取得する。一方、分岐が成立しない場合、信号E及び信号ELを緊急度決定テーブル208に対照し、フェッチ部107aの命令データ転送の緊急度を決定する。そして、決定した緊急度を示す信号P(PRIORITY)を生成する。そして、信号Pを、信号Sreq、命令アドレス信号と共にメモリ制御部103に出力する。
図3は、緊急度決定テーブル208の一例を示した図である。図3の緊急度決定テーブル208は、バッファ200〜202が、いずれも32bitの容量を持ち、命令データが1命令16bitの固定長データであるとした場合の例を示している。このような例では、バッファ200〜202の各々が2命令を蓄積することが可能であって、フェッチ・バッファ109aは、最大6個の命令データを蓄積することができる。
図3に示した緊急度決定テーブル208は、フェッチ・バッファ109aの状態と、各状態に応じた命令データの緊急度とを示している。フェッチ・バッファ109aの状態としては、フェッチ部107aが分岐命令による分岐が成立したことと、フェッチ・バッファ109aに蓄積されている命令データの数(残り命令数)とが設定されている。
実施形態1では、緊急度決定テーブル208に示すように、フェッチ部107aに蓄積されている実行予定の命令データの蓄積数に応じて緊急度が示す緊急性の度合いを設定している。なお、実施形態1では、フェッチ・バッファ109aに蓄積されている命令データの蓄積数がより少ない場合により高い緊急度を設定するものとした。
また、実施形態1では、分岐命令をデコードしたことをデコード部113が検出したことに基づいても緊急度を設定するものとした。なお、実施形態1では、分岐命令にあっても割り込みによる分岐と分岐命令による分岐とを区別し、割込みによる分岐命令がデコードされたとき、より高い緊急度の緊急度信号を生成する。
以上述べたプロセッサAは、以下のように動作する。すなわち、フェッチ・バッファ管理部111aは、フェッチ・バッファ109aに蓄積されている実行予定の命令データの数を示す信号ELを生成し、常時プログラム制御部105aに出力している。また、フェッチ・バッファ109aに蓄積されている命令データがなくなった場合、信号Eを出力し、フェッチ・バッファ109aにおける命令データの蓄積状態を命令データ読み出し制御部207に通知する。
一方、デコード部113は、命令データを解釈し、この結果から分岐命令がデコードされたことを検出することができる。この場合、デコード部113は、分岐デコード信号を出力し、分岐命令がデコードされたことを分岐判定部210に通知する。さらに、レジスタ部117aおよびALU115は、分岐アドレスI、分岐アドレスJ、分岐条件ステータス信号を分岐判定部210に出力する。
分岐判定部210は、分岐デコード信号、分岐アドレスI及び分岐アドレスJ、分岐条件ステータス信号を入力する。そして、分岐アドレスI及び分岐アドレスJから分岐先のアドレスである分岐アドレスを算出する。さらに、分岐判定部210は、分岐条件ステータス信号に基づいて分岐制御信号を生成する。分岐制御信号は、プログラムカウンタ209に入力されると共に、命令データ読み出し制御部207に入力される。
命令データ読み出し制御部207は、信号E、信号ELを入力し、緊急度決定テーブル208に対照する。信号Eが入力された場合、命令データ読み出し制御部207は、フェッチ・バッファ109aに蓄積されている命令データがないと判定し、緊急度2を示す信号Pを生成する。また、命令データ読み出し制御部207は、信号ELが入力された場合、信号ELが示すフェッチ・バッファ109aに蓄積されている命令データの数に応じて緊急度3から8のいずれかを示す信号Pを生成する。
また、命令データ読み出し制御部207は、分岐判定部210から分岐制御信号を入力し、緊急度決定テーブル208に照合する。そして、分岐判定部210によって自装置に対応するフェッチ部107aが分岐命令をデコードしたことが検出された場合、フェッチ・バッファ109aの残り命令数が1以上である場合よりも緊急度が高い緊急度信号を生成している。
分岐命令が実行した場合に残り命令数が1以上である場合よりも緊急度が高い緊急度信号を生成する理由は、処理の分岐が生じたとき、フェッチ・バッファ109aに蓄積されている命令データが全てクリアされるためである。つまり、分岐命令がデコードされ、この命令が実行された場合、フェッチ・バッファ109aは空になる。このため、本実施形態では、命令データがフェッチされない場合には直ちにメモリ・ストールが発生する可能性が生じるため比較的高い緊急度の信号Pを生成するものとした。
さらに、本実施形態では、命令データ読み出し制御部207が、分岐制御信号が示す分岐命令の割込みによる分岐、命令による分岐の別を判断し、判断の結果に基づいて緊急度0または緊急度1の信号Pを生成する。生成された信号Pは、信号Sreq及び命令アドレス信号と共にメモリ制御部103に出力される。
以上、実施形態1では、命令データが固定長データであるものとして実施形態1のプロセッサの動作を述べた。しかし、実施形態1は、固定長の命令データを取り扱う構成に限定されるものでなく、可変長の命令データを扱うことも可能である。可変長の命令データを取り扱う場合、プログラム制御部105aは、例えばアドレス信号の出力時、あるいは信号Sreadyの入力時に命令データのデータ長を検出する。
そして、命令データ読み出し制御部207が、検出されたデータ長と信号ELに含まれる命令データのフェッチ・バッファ109aにおける蓄積量とを対照し、フェッチ・バッファ109aに現実に蓄積されている可変長の命令データ数を得る。
(2)メモリ制御部
図4は、メモリ制御部103の構成をより詳細に示した図であって、メモリ制御部103とメモリ101とを示している。プロセッサ本体1のプロセッサA〜Dとの間でデータを授受するプロセッサインターフェイス部401を備えている。プロセッサインターフェイス部401には、プロセッサ本体1のプロセッサA〜Dが備えるプログラム制御部105a〜105dの各々から信号Sreq、信号Pが入力される。また、プロセッサインターフェイス部401には、プログラム制御部105a〜105dの各々から信号Sreqが要求する命令データのアドレスがアドレス信号として入力される。
メモリ制御部103は、プロセッサインターフェイス部401を介して信号Sreq、信号P、命令アドレスにより、プロセッサA〜Dごとに、フェッチ時にアクセスすべきメモリ101のアドレス、命令データ転送の緊急度の信号を受け取る。そして、要求されたデータ転送が実行されたことを示す信号Sreadyと共に命令データをプロセッサA〜Dの各々に送出する。
メモリ制御部103は、プログラム制御部105aによって入力された信号Pが示す緊急度に基づいて、要求されたデータ転送の優先順位を設定する優先順位設定手段として機能する要求リストテーブル404及びアドレスデコード部402を備えている。また、設定された優先順位にしたがってメモリ101から命令を読み出すメモリアクセス制御部405を備えている。
図5は、要求リストテーブル404の一例を示す図である。図示した要求リストテーブル404は、緊急度に応じて優先度が設定されたメモリ101に対するアクセス要求の一覧を示している。図中に示したプロセッサIDとは、プロセッサA〜Dの各々を識別するためのIDであり、図5中にはA、B、C、Dとして示す。緊急度とは、信号Pによって表されるプロセッサへのデータ転送の緊急性である。現在の優先度とは、各プロセッサの緊急度に応じて設定された競合するフェッチ間の優先度である。要求リストテーブル404において、命令データ転送要求は、優先度が高いものから順に配列されて小さいアクセスリスト番号が割り当てられている。なお、アクセスリスト番号は、リストのポインタである。
以上述べた構成は、以下のように動作する。すなわち、信号Sreqは、要求リストテーブル404、優先順位制御部403、アドレスデコード部402の各々に出力される。信号Sreqは出力されたプロセッサを特定するためのプロセッサIDを含んでいて、プロセッサIDは、要求リストテーブル404に設定される。要求リストテーブル404では、信号Sreqが入力されたことによって命令データ転送要求がなされたことを検出すると共に、命令データ転送を要求したプロセッサが特定される。
また、信号Sreqを出力したプロセッサは、同時に信号P及び命令アドレスを出力する。信号Pは、優先順位制御部403に入力される。優先順位制御部403は、信号Pに基づいて信号Sreqのデータ転送の緊急度を判定する。判定された緊急度は、要求リストテーブル404に出力され、命令データ転送の要求に対応して設定される。一方、命令アドレスは、アドレスデコード部402に入力される。アドレスデコード部402は、入力された命令アドレスを要求リストテーブル404に出力し、要求リストテーブル404は命令アドレスを命令データ転送要求に対応させて設定する。
命令データ転送要求は、緊急度が高いものからアクセスリスト番号が付されて要求リストテーブル404に設定される。また、プロセッサIDは、要求に対応して要求リストテーブル404に設定される。
以上述べた動作により、命令データ転送を要求したプロセッサを特定するID及び命令データ転送の緊急度が、緊急度にしたがう順番で要求リストテーブル404に設定される。優先順位制御部403は、要求リストテーブル404に設定された命令データ転送の要求に対し、緊急度にしたがって優先順位を付す。
また、フェッチ部107a〜107dは、要求リストテーブル404の設定がいったんなされた後も順次命令データ転送を要求する。後になされた命令データ転送要求の緊急度が先に優先順位が設定された命令データ転送要求よりも高い緊急度を持つ場合、優先順位制御部403は、要求リストテーブル404に優先度更新情報を出力し、いったん設定された優先順位を更新する。このため、要求リストテーブル404に設定された優先順位は、以降になされた命令データ転送要求の緊急度に応じて変動することになる。
すなわち、優先順位制御部403は、要求された命令データ転送の緊急度を要求リストテーブルに設定する。そして、先に緊急度が設定された命令データ転送要求による命令データ転送が実行される以前であって、かつ、より高い緊急度を示す信号Pが後に入力された場合、この情報を優先度更新情報として要求リストテーブル404に出力する。要求リストテーブル404では、優先度更新情報に基づいて、緊急度がより高い命令データ転送要求に対し、先に要求された緊急度がより低い命令データ転送要求よりも高い優先順位を設定する。
一方、緊急度がより低い命令データ転送要求の優先順位は、後になされた緊急度がより高い命令データ転送要求によって低下する。このような場合、優先順位制御部403は、要求リストテーブル404を更新し、未実行の命令データ転送要求の要求リストテーブル404における優先順位を新たに設定する。新たに設定された優先順位の情報は、要求リストテーブル404から現在優先度として優先順位制御部403に通知される。現在優先度は、以降の優先順位制御部403における優先順位の制御に使用される。
図6は、メモリ制御部103による優先順位の設定を変更する処理を説明するためのフローチャートである。優先順位制御部403は、優先順位設定の処理を開始するにあたり、先ず、要求リストテーブル404を初期化する(S601)。そして、メモリ制御部103は、信号Sreqによって命令データ転送要求があるか否か判断する(S602)。命令データ転送要求がある場合(S602:Yes)、さらにアクセスすべきアドレス等の情報を入力する(S603)。また、ステップS602において命令データ転送要求がないと判断された場合(S602:No)、命令データ転送の要求が起こるまで待機する。
次に、メモリ制御部103は、要求リストテーブル404のアクセスリスト番号kをN−1と定義する(S604)。なお、Nは、図5に示した要求リストテーブル404に設定されている命令データ転送要求の総数である。図5に示したアクセスリスト番号は、0から始まっている。このため、アクセスリスト番号kの最大値は、N−1によって得られる。
次に、メモリ制御部103は、ステップS602で要求された命令データ転送の緊急度が、アクセスリスト番号kの緊急度よりも高いか否か判断する(S605)。比較の結果、今回要求された命令データ転送の緊急度がアクセスリスト番号kの緊急度よりも高くない場合(S605:No)、今回要求された命令データ転送の優先順位を、要求リストテーブル404のアクセスリスト番号kに設定されていた優先順位の直後の順位に設定する(S609)。
ステップS605、609の処理によれば、要求された命令データ転送の緊急度が、アクセスリスト番号kの緊急度と等しい場合、等しい緊急度を持つ命令データ転送要求のうち、後に要求された命令データ転送を先に要求された命令データ転送の直後に設定することができる。
また、メモリ制御部103は、ステップS605において、今回要求された命令データ転送の緊急度がアクセスリスト番号kの緊急度よりも高いと判断した場合(S605:Yes)、アクセスリスト番号kの優先度を下げるよう要求リストテーブル404を更新する(S606)。そして、アクセスリスト番号kから1を減じてkとし(S607)、アクセスリスト番号kから1を減じ結果、kが0になったか否か判断する(S608)。
ステップS608の判断の結果、メモリ制御部103は、アクセスリスト番号kが0でない場合に要求された命令データ転送の緊急度がアクセスリスト番号kの緊急度よりも高いか否か再び判断する(S608:No)。また、アクセスリスト番号kが0になった場合(S608:Yes)、次の命令データ転送要求があるか否かを判断する。
次に、以上述べたようにして設定された優先度に基づいて行われる実施形態1のプロセッサの動作を説明する。
図7、図8は、プロセッサ動作を説明するためのタイミングチャートである。図7は、命令データ転送要求の優先順位を緊急度に応じて設定した場合の動作を示すタイミングチャートである。図8は、実施形態1との比較のため掲げた従来のマルチスレッドプロセッサの動作を示すタイミングチャートである。
図7、図8のいずれにおいても、プロセッサA〜Dの各々について信号Sreq、信号P、信号Sreadyのタイミング及び命令データ読み出しのタイミングを示し、最上段にプロセッサのクロックサイクル(CLK)を示している。図8〜図10において、各信号を発生するプロセッサをA、B、C、Dで示す。
プロセッサA_REQはプロセッサAが発生する信号Sreqである。また、プロセッサA_PRIORITYはプロセッサAが発生する信号Pを示し、プロセッサA_READYはプロセッサAが発生する信号Sreadyである。さらに、プロセッサA_DATAは、命令データ転送要求によって命令データが読み出されるタイミングを指す。なお、以上の表記は、プロセッサAの部分をプロセッサB、プロセッサC、プロセッサDに置き換えることにより、プロセッサA以外のプロセッサによって発生される信号を表すものとする。
図7によれば、先ず、1サイクル目でプロセッサAがメモリ制御部103に対して緊急度1の命令データ転送要求をし、次サイクルの2サイクル目で要求に応じた命令データの読み出しが開始される。そして、命令データ読み出し完了のタイミングで信号Sreadyが発生し、プロセッサ本体1の側に命令データ転送が実行されたことを通知することが分かる。
また、図7に示すように、実施形態1では、プロセッサCが3サイクル目で緊急度2の命令データ転送要求をし、プロセッサCの命令データ転送要求によってなされる命令データの読出しが完了する以前にプロセッサAが緊急度0の命令データ転送要求をしている。このとき、メモリ制御部103は、プロセッサCの命令データ転送要求に応じる命令データの読出しよりもプロセッサAの命令データ転送要求に応じる命令データの読出しを先に実行する。
一方、図8に示した従来のフェッチ動作では、プロセッサA〜Dによってなされた命令データ転送要求を順に実行している。このような従来の動作に比べ、図7に示した実施形態1のプロセッサの動作では、フェッチ・バッファに命令データが残り少ないプロセッサの命令データ転送を優先的に実行することができる。このため、従来のプロセッサとメモリに対するアクセス速度が同じであってもプロセッサ全体を円滑に動作させ、メモリ・ストール等の不具合を防ぐことができる。
さらに、円滑に動作できる実施形態1のプロセッサは、メモリ101を非バンク構成としても適切なタイミングでフェッチ部107a〜107dが命令を命令データ転送することができる。このため、メモリにデータをリニアに割り当て、バンク分けするよりもメモリ101の使用効率を高めることができる。また、実施形態1のプロセッサは、円滑に動作できるため、メモリ101との間をシングルポートで接続しても充分メモリ・ストール等の不具合が発生することを抑えることができる。このため、メモリとプロセッサとの間の接続にかかる回路規模をより小型化し、コストをも低廉化することに有利である。
なお、以上述べた実施形態1では、本発明のプロセッサを命令が並列に実行できるマルチスレッドプロセッサ等の構成としている。しかし、実施形態1のプロセッサは命令を並列に実行できる構成に限定されるものではなく、シングルプロセッサとして構成することも可能である。
(実施形態2)
ところで、実施形態1では、比較的緊急度が低い命令データ転送要求が、後により緊急度の高い命令データ転送要求が次々となされた場合に長時間実行されない可能性が生じる。つまり、実施形態1のように、命令データ転送要求の優先順位を緊急度にのみ応じて設定した場合、図7に示したように、3サイクル目で要求された緊急度2のプロセッサCの命令データ転送は、後になされたプロセッサA及びプロセッサBによる命令データ転送要求によって10サイクル目まで実行されることがない。このような動作によれば、比較的緊急度の低い命令データ転送要求が長時間待機させられて実質的に実行できなくなる可能性がある。
実施形態2は、メモリ・ストール防止の効果を維持しながらこのような実施形態1の可能性をなくすため、あるフェッチ部(第1フェッチ部)が命令データ転送(第1フェッチ)を要求した後であって、かつ第1の命令データ転送が完了する以前に他のフェッチ部(第2フェッチ部)がメモリ101に命令データ転送(第2フェッチ)を要求し、第2の命令データ転送が第1命令データ転送よりも先に実行された場合、優先順位制御部403は、第1の命令データ転送の優先順位の設定をより高位の順位に更新するものとした。
すなわち、例えば、プロセッサAがメモリ制御部103に対して緊急度3の命令データ転送要求をした後であって、かつ要求が受け付けられる以前にプロセッサCが緊急度1の命令データ転送を要求したものとする。このような場合、実施形態2では、実施形態1と同様に、緊急度がより高いプロセッサCの命令データ転送要求を優先し、プロセッサCがプロセッサAよりも先に命令データを命令データ転送する。
そして、プロセッサAの命令データ転送要求の緊急度を1つ高め、緊急度2に設定する。なお、実施形態2では、先に要求された命令データ転送より後に要求された命令データ転送を先に実行する動作を命令データ転送要求の追越しとも記す。
次に、例えばプロセッサDが、緊急度1の命令データ転送を要求したものとする。このとき、優先順位制御部403は、プロセッサAの命令データ転送要求の緊急度2とプロセッサDの命令データ転送要求の緊急度1とを比較する。そして、より緊急度が高いプロセッサDの命令データ転送要求にプロセッサAよりも高い優先順位に設定する。また、プロセッサAの命令データ転送要求の緊急度をさらに1つ高めて緊急度1に設定する。
次に、例えばプロセッサCが、緊急度1の命令データ転送を要求した場合、優先順位制御部403は、プロセッサAの命令データ転送要求の緊急度1とプロセッサCの命令データ転送要求の緊急度1とを比較する。このとき、プロセッサAの命令データ転送要求の緊急度とプロセッサCの命令データ転送要求の緊急度とは同じである。実施形態2では、このとき、先になされた命令データ転送要求を優先するものとし、プロセッサAの命令データ転送要求の優先順位をプロセッサCの命令データ転送要求よりも高く設定する。
図9は、実施形態2の要求リストテーブルを例示する図である。図9に示す要求リストテーブルでは、緊急度4のプロセッサCによる命令データ転送要求が、より緊急度の高い命令データ転送要求よりも高い優先順位に設定されている。このような設定は、比較的緊急度の低かった命令データ転送要求が追越されるたびに緊急度を高め、後になされた緊急度のより高い命令データ転送要求より高い優先順位を獲得したことによってなされたものである。
図10は、命令データ転送要求の追越しが起こった場合に追越された先の命令データ転送要求の緊急度を高める場合の動作を示すタイミングチャートである。図10によれば、図7に示したのと同様に、プロセッサCが3サイクル目で緊急度2の命令データ転送要求を発生している。そして、この要求による命令データ転送が実行される以前、プロセッサAが、緊急度0の命令データ転送要求を行っている。
このような場合、図10に示した動作では、図7に示した動作と同様に、メモリ制御部103がプロセッサCの命令データ転送要求に先んじてプロセッサAに命令データ転送をさせる。ただし、命令データ転送要求の追越しを考慮して優先順位を設定するので、3サイクル目でなされたプロセッサDの命令データ転送要求の緊急度は2から1に変更される。このため、図10の例では、プロセッサCの命令データ転送要求の優先順位は、さらに後になされたプロセッサBの命令データ転送要求(緊急度1)と同じになる。緊急度が同じである場合、先になされた命令データ転送要求が優先される。このため、メモリ制御部103は、プロセッサCの命令データ転送要求をプロセッサBの命令データ転送要求に優先して実行する。
以上述べたように、図10に示した動作は、図7に示した動作よりもプロセッサCの命令データ転送要求の待機時間を短縮し、比較的緊急度の低い命令データ転送要求が実質的に実行できなくなることを防ぐことができる。
このような実施形態2は、命令データ転送の追越しが発生した場合、先になされた命令データ転送要求の緊急度を高め、プロセッサのメモリ・ストールを抑えつつ、比較的緊急性が低い命令データ転送要求が実質的に実行できなくなることを防ぐことができる。
なお、以上述べた実施形態2では、命令データ転送の追越しが発生したとき、追越された命令データ転送の緊急度を1つ高めるものとした。しかし、実施形態2は、このような構成に限定されるものでなく、プロセッサの仕様や動作、実行する処理に応じていくつ緊急度を高めるものであってもよい。
本発明の実施形態1、実施形態2に共通のプロセッサを説明するための図である。 図1に示したプロセッサ本体の構成をより詳細に示した図である。 図2に示した緊急度決定テーブルの一例を示した図である。 図1に示したメモリ制御部の構成をより詳細に示した図であって、 図4に示した実施形態1の要求リストテーブルの一例を示す図である。 実施形態1の優先順位の設定を変更する処理を説明するためのフローチャートである。 実施形態1のプロセッサの動作を示すタイミングチャートである。 実施形態1との比較のため掲げた従来のマルチスレッドプロセッサの動作を示すタイミングチャートである。 実施形態2の要求リストテーブルの一例を示す図である。 実施形態2のプロセッサの動作を示すタイミングチャートである。 バンク分けされたメモリにマルチスレッドプロセッサがアクセスする構成を例示した図である。
符号の説明
1 プロセッサ本体、101 メモリ、103 メモリ制御部
105a,105b,105c,105d プログラム制御部
107a,107b,107c,107d フェッチ部
109a,109b,109c,109d フェッチ・バッファ
111a フェッチ・バッファ管理部,113 デコード部
117a,117b,117c,117d レジスタ部
200,201,202 バッファ
205 分岐条件ステータスレジスタ、206 レジスタファイル
207 命令データ読み出し制御部、208 緊急度決定テーブル
209 プログラムカウンタ、210 分岐判定部
401 プロセッサインターフェイス部、402 アドレスデコード部
403 優先順位制御部、404 要求リストテーブル、405 メモリアクセス制御部

Claims (7)

  1. 命令が保存されているメモリから命令をフェッチするプロセッサであって、
    命令をフェッチするフェッチ手段と、当該フェッチ手段によって要求された命令を、命令を要求したフェッチ手段に転送するメモリ制御手段とを含み、
    前記フェッチ手段が、
    転送された命令を蓄積する命令蓄積手段と、
    前記命令蓄積手段に蓄積された命令のうち実際に実行される命令である実命令の状態に基づいて、該フェッチ手段における命令取得の緊急性の度合いを示す緊急度設定手段と、
    前記緊急度設定手段によって設定された緊急度を前記メモリ制御手段に出力し、命令の転送を要求するフェッチ要求手段と、を備え、
    前記メモリ制御手段は、
    前記フェッチ要求手段によって出力された緊急度に基づいて命令転送の優先順位を決定するフェッチ優先順位設定手段と、
    前記フェッチ優先順位設定手段によって設定された優先順位にしたがってフェッチ要求にかかる命令を前記メモリから読み出すメモリアクセス制御手段と、
    を備えることを特徴とするプロセッサ。
  2. 複数の命令を並列実行するプロセッサであって、
    命令をフェッチする複数のフェッチ手段と、当該フェッチ手段によって要求された命令を、命令を要求したフェッチ手段に転送するメモリ制御手段とを含み、
    前記フェッチ手段が、
    転送された命令を蓄積する命令蓄積手段と、
    前記命令蓄積手段に蓄積された命令のうちの実際に実行される命令である実命令の状態に基づいて、該フェッチ手段における命令取得の緊急性の度合いを示す緊急度設定手段と、
    前記緊急度設定手段によって設定された緊急度を前記メモリ制御手段に出力し、命令の転送を要求するフェッチ要求手段と、を備え、
    前記メモリ制御手段は、
    前記フェッチ要求手段によって出力された緊急度に基づいて命令転送の優先順位を決定するフェッチ優先順位設定手段と、
    前記フェッチ優先順位設定手段によって設定された優先順位にしたがってフェッチ要求にかかる命令を前記メモリから読み出すメモリアクセス制御手段と、
    を備えることを特徴とするプロセッサ。
  3. 前記緊急度設定手段は、命令蓄積手段に蓄積された命令の蓄積数に応じて前記緊急度を設定することを特徴とする請求項1または2に記載のプロセッサ。
  4. 前記命令蓄積手段がデータ長の異なる複数の命令を蓄積する場合、前記緊急度設定手段は、命令のデータ長に基づいて命令の蓄積数を判定することを特徴とする請求項3に記載のプロセッサ。
  5. 前記フェッチ手段によって分岐命令が実行されたことを検出する分岐命令検出手段をさらに備え、前記緊急度設定手段は、分岐命令検出手段の状態に対応する緊急度を設定することを特徴とする請求項1から4のいずれか1項に記載のプロセッサ。
  6. 複数の前記フェッチ手段のうち第1フェッチ手段が第1命令を要求した後であって、かつ第1命令の転送が完了する以前に第2フェッチ手段が第2命令を要求し、第2命令の転送が第1命令の転送よりも先に完了した場合、前記優先順位設定手段は、前記第1命令の命令転送の優先順位の設定をより高位の順位に更新することを特徴とする請求項2から5のいずれか1項に記載のプロセッサ。
  7. 前記メモリ制御手段は、前記メモリとシングルポート接続し、前記フェッチ手段のいずれかに命令を1つずつ転送することを特徴とする請求項1から6のいずれか1項に記載のプロセッサ。
JP2005006017A 2005-01-13 2005-01-13 プロセッサ Expired - Fee Related JP4631442B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005006017A JP4631442B2 (ja) 2005-01-13 2005-01-13 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005006017A JP4631442B2 (ja) 2005-01-13 2005-01-13 プロセッサ

Publications (2)

Publication Number Publication Date
JP2006195705A true JP2006195705A (ja) 2006-07-27
JP4631442B2 JP4631442B2 (ja) 2011-02-16

Family

ID=36801757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005006017A Expired - Fee Related JP4631442B2 (ja) 2005-01-13 2005-01-13 プロセッサ

Country Status (1)

Country Link
JP (1) JP4631442B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511378A (ja) * 2008-02-07 2011-04-07 イマジネイション テクノロジーズ リミテッド マイクロプロセッサシステムにおける命令フェッチングの優先順位付け
JP5387770B2 (ja) * 2010-06-22 2014-01-15 富士通株式会社 データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07134642A (ja) * 1993-11-10 1995-05-23 Seiko Epson Corp データ転送装置
JP2000215183A (ja) * 1999-01-01 2000-08-04 Seiko Epson Corp メモリポ―ト仲裁方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07134642A (ja) * 1993-11-10 1995-05-23 Seiko Epson Corp データ転送装置
JP2000215183A (ja) * 1999-01-01 2000-08-04 Seiko Epson Corp メモリポ―ト仲裁方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511378A (ja) * 2008-02-07 2011-04-07 イマジネイション テクノロジーズ リミテッド マイクロプロセッサシステムにおける命令フェッチングの優先順位付け
JP5387770B2 (ja) * 2010-06-22 2014-01-15 富士通株式会社 データ転送制御装置、データ転送制御方法、およびデータ転送制御プログラム

Also Published As

Publication number Publication date
JP4631442B2 (ja) 2011-02-16

Similar Documents

Publication Publication Date Title
EP0747816B1 (en) Method and system for high performance multithread operation in a data processing system
JP4870914B2 (ja) デジタルデータプロセッサ
JP5548037B2 (ja) 命令発行制御装置及び方法
EP2171576B1 (en) Scheduling threads in a processor
US7647483B2 (en) Multi-threaded parallel processor methods and apparatus
US7395410B2 (en) Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
CN101529383B (zh) 任务处理装置
US7734897B2 (en) Allocation of memory access operations to memory access capable pipelines in a superscalar data processing apparatus and method having a plurality of execution threads
US5727227A (en) Interrupt coprocessor configured to process interrupts in a computer system
US20120147021A1 (en) Graphics compute process scheduling
JPWO2009022369A1 (ja) 仮想キュー処理回路およびタスク処理装置
US20100131720A1 (en) Management of ownership control and data movement in shared-memory systems
US20030177288A1 (en) Multiprocessor system
JP2007133456A (ja) 半導体装置
JPWO2008023427A1 (ja) タスク処理装置
KR20150067316A (ko) 메모리 기반의 세마포어
CN102436393B (zh) 任务处理装置
KR101466934B1 (ko) 동시, 비순차적 디스패치를 사용하는 분산 디스패치
WO2009090684A1 (ja) タスク処理装置
US7711925B2 (en) Information-processing device with transaction processor for executing subset of instruction set where if transaction processor cannot efficiently execute the instruction it is sent to general-purpose processor via interrupt
JP2002287957A (ja) キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置
JP4631442B2 (ja) プロセッサ
CN115437691B (zh) 一种针对risc-v矢量与浮点寄存器的物理寄存器堆分配装置
US9946665B2 (en) Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU)
US9329893B2 (en) Method for resuming an APD wavefront in which a subset of elements have faulted

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070905

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101001

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees