JP2006195705A - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- 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
Links
- 238000001514 detection method Methods 0.000 claims description 3
- 239000000872 buffer Substances 0.000 abstract description 56
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 238000009825 accumulation Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
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つのバンクに集中し処理性能を低下させる要因になる。さらに、複数のバンクのうちデータが保存されない空き領域が生じるものが発生し、メモリの使用効率が低下する可能性がある。
本発明は、上記した点に鑑みてなされたものであり、比較的高速に動作する場合にあっても適正なタイミングで命令列を読み出すことができ、高い処理能力が得られるプロセッサを提供することを目的とする。また、本発明は、適正なタイミングで命令列を読み出すことが可能であるためにメモリのバンク分けを避けてメモリの利用効率を高め、しかもシングルポートを採用して回路規模を抑えると共に低コスト化を実現できるプロセッサを提供することを目的とする。
また、本発明は、命令のフェッチを並行して行わずに適正なタイミングで命令列を読み出すことができ、メモリ・ストールを防ぐことが可能である。このため、命令をバンク分けすることを避けることによってメモリの利用効率を高め、しかもシングルポートを採用して回路規模を抑えると共に低コスト化を実現できるプロセッサを提供することができる。
また、本発明は、命令のフェッチを並行して行う場合にあっても適正なタイミングで命令列を読み出すことができ、メモリ・ストールを防ぐことが可能である。このため、命令を並列に実行するいわゆるマルチスレッドプロセッサ等にあっても命令をバンク分けすることを避けあてメモリの利用効率を高め、しかもシングルポートを採用して回路規模を抑えると共に低コスト化を実現できるプロセッサを提供することができる。
このような発明によれば、処理すべき命令が不足してメモリ・ストールが発生する可能性が高いフェッチ手段のフェッチを優先的に実行することができる。このため、メモリ・ストールを効果的に防ぐことができる。
このような発明によれば、データ長が可変長の命令を扱う場合にも、フェッチ蓄積手段に蓄積されている命令の蓄積数を正確に判別することができる。このため、より適正なタイミングで命令列を読み出すことができる。
このような発明によれば、分岐命令を実行したことによってフェッチ蓄積手段に蓄積されている命令がクリアされるフェッチ手段のフェッチを優先して実行することができる。このため、メモリ・ストールを効果的に防ぐことができる。
また、本発明のプロセッサは、前記メモリ制御手段と前記メモリとをシングルポート接続し、前記フェッチ手段のいずれかに命令を1つずつフェッチさせることを特徴とする。
(実施形態1)
図1は、本発明の実施形態1、実施形態2に共通のプロセッサを説明するための図である。実施形態1のプロセッサは、複数のプロセッサA、B、C、Dを含み、各プロセッサでハードウェアリソースを一部共有して構成されるプロセッサである。このような実施形態1のプロセッサは、プロセッサA〜Dが並行して命令を実行することができる。
また、実施形態1では、メモリ制御部103が、メモリ101とシングルポート接続してメモリから命令データを1つずつ読み出している。このような実施形態1は、メモリ101との接続にかかる回路の大規模化及びコストを抑えることができる。
さらに、図示した実施形態1のプロセッサは、ALU115の演算の結果を保存するレジスタ部117a〜117dを備えている。レジスタ部117a〜117dは、いずれもプロセッサA〜Dの各々に対応して設けられ、対応するプロセッサの演算結果等を保存している。
(1)プロセッサ本体
図2は、プロセッサ本体1の構成をより詳細に示した図であって、特にプロセッサAのフェッチ部107a及びプログラム制御部105aと、他のプロセッサと共有のデコード部113及びALU115とを示している。なお、プロセッサ本体1に含まれる複数のプロセッサA〜Dは、いずれもプログラム制御部とフェッチ部とを1つずつ有し、デコード部113とALU115とを共有するという同様の構成を有している。このため、本明細書では、説明の簡単のため、以降、プロセッサAの構成及び動作を説明し、他のプロセッサの説明を同様のものとして一部略すものとする。
I フェッチ部107a
フェッチ部107aにフェッチされた実行が予定されている命令のデータ(命令データ)は、フェッチ・バッファ109aに蓄積される。フェッチ・バッファ109aは、3つのバッファ200、201、202を有し、同時に複数の命令データを蓄積することができる。フェッチ・バッファ管理部111aは、3つのバッファ200、201、202における実行予定の命令データの蓄積状態を判別し、フェッチ・バッファ109aに蓄積されている命令データの個数等を含む情報を検出することができる。
デコード部113は、バッファ200に蓄積されていた命令データをデコードする。そして、命令データを解釈し、解釈の結果と共にALU115に送る。ALU115は、デコード部113から受け取った命令データの演算を実行し、この結果をレジスタ部117aに保存する。
III プログラム制御部105a
プログラム制御部105aは、命令データ読み出し制御部207と、プログラムカウンタ209と、分岐判定部210とを備えている。命令データ読み出し制御部207は、プロセッサAにおけるフェッチを全般的に制御する。また、プログラムカウンタ209は、プロセッサAで実行されているプログラムの進行状態を示すカウンタであって、フェッチ部107aと共にフェッチ手段として機能する。分岐判定部210は、レジスタ部117aから分岐アドレスI及びALU115から分岐アドレスJ、分岐条件ステータス信号を入力し、対応するデコード部113によって分岐命令がデコードされたことを検出する構成である。
実施形態1では、緊急度決定テーブル208に示すように、フェッチ部107aに蓄積されている実行予定の命令データの蓄積数に応じて緊急度が示す緊急性の度合いを設定している。なお、実施形態1では、フェッチ・バッファ109aに蓄積されている命令データの蓄積数がより少ない場合により高い緊急度を設定するものとした。
以上述べたプロセッサAは、以下のように動作する。すなわち、フェッチ・バッファ管理部111aは、フェッチ・バッファ109aに蓄積されている実行予定の命令データの数を示す信号ELを生成し、常時プログラム制御部105aに出力している。また、フェッチ・バッファ109aに蓄積されている命令データがなくなった場合、信号Eを出力し、フェッチ・バッファ109aにおける命令データの蓄積状態を命令データ読み出し制御部207に通知する。
以上、実施形態1では、命令データが固定長データであるものとして実施形態1のプロセッサの動作を述べた。しかし、実施形態1は、固定長の命令データを取り扱う構成に限定されるものでなく、可変長の命令データを扱うことも可能である。可変長の命令データを取り扱う場合、プログラム制御部105aは、例えばアドレス信号の出力時、あるいは信号Sreadyの入力時に命令データのデータ長を検出する。
(2)メモリ制御部
図4は、メモリ制御部103の構成をより詳細に示した図であって、メモリ制御部103とメモリ101とを示している。プロセッサ本体1のプロセッサA〜Dとの間でデータを授受するプロセッサインターフェイス部401を備えている。プロセッサインターフェイス部401には、プロセッサ本体1のプロセッサA〜Dが備えるプログラム制御部105a〜105dの各々から信号Sreq、信号Pが入力される。また、プロセッサインターフェイス部401には、プログラム制御部105a〜105dの各々から信号Sreqが要求する命令データのアドレスがアドレス信号として入力される。
以上述べた動作により、命令データ転送を要求したプロセッサを特定するID及び命令データ転送の緊急度が、緊急度にしたがう順番で要求リストテーブル404に設定される。優先順位制御部403は、要求リストテーブル404に設定された命令データ転送の要求に対し、緊急度にしたがって優先順位を付す。
また、メモリ制御部103は、ステップS605において、今回要求された命令データ転送の緊急度がアクセスリスト番号kの緊急度よりも高いと判断した場合(S605:Yes)、アクセスリスト番号kの優先度を下げるよう要求リストテーブル404を更新する(S606)。そして、アクセスリスト番号kから1を減じてkとし(S607)、アクセスリスト番号kから1を減じ結果、kが0になったか否か判断する(S608)。
次に、以上述べたようにして設定された優先度に基づいて行われる実施形態1のプロセッサの動作を説明する。
図7、図8のいずれにおいても、プロセッサA〜Dの各々について信号Sreq、信号P、信号Sreadyのタイミング及び命令データ読み出しのタイミングを示し、最上段にプロセッサのクロックサイクル(CLK)を示している。図8〜図10において、各信号を発生するプロセッサをA、B、C、Dで示す。
ところで、実施形態1では、比較的緊急度が低い命令データ転送要求が、後により緊急度の高い命令データ転送要求が次々となされた場合に長時間実行されない可能性が生じる。つまり、実施形態1のように、命令データ転送要求の優先順位を緊急度にのみ応じて設定した場合、図7に示したように、3サイクル目で要求された緊急度2のプロセッサCの命令データ転送は、後になされたプロセッサA及びプロセッサBによる命令データ転送要求によって10サイクル目まで実行されることがない。このような動作によれば、比較的緊急度の低い命令データ転送要求が長時間待機させられて実質的に実行できなくなる可能性がある。
次に、例えばプロセッサDが、緊急度1の命令データ転送を要求したものとする。このとき、優先順位制御部403は、プロセッサAの命令データ転送要求の緊急度2とプロセッサDの命令データ転送要求の緊急度1とを比較する。そして、より緊急度が高いプロセッサDの命令データ転送要求にプロセッサAよりも高い優先順位に設定する。また、プロセッサAの命令データ転送要求の緊急度をさらに1つ高めて緊急度1に設定する。
このような実施形態2は、命令データ転送の追越しが発生した場合、先になされた命令データ転送要求の緊急度を高め、プロセッサのメモリ・ストールを抑えつつ、比較的緊急性が低い命令データ転送要求が実質的に実行できなくなることを防ぐことができる。
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から4のいずれか1項に記載のプロセッサ。
- 複数の前記フェッチ手段のうち第1フェッチ手段が第1命令を要求した後であって、かつ第1命令の転送が完了する以前に第2フェッチ手段が第2命令を要求し、第2命令の転送が第1命令の転送よりも先に完了した場合、前記優先順位設定手段は、前記第1命令の命令転送の優先順位の設定をより高位の順位に更新することを特徴とする請求項2から5のいずれか1項に記載のプロセッサ。
- 前記メモリ制御手段は、前記メモリとシングルポート接続し、前記フェッチ手段のいずれかに命令を1つずつ転送することを特徴とする請求項1から6のいずれか1項に記載のプロセッサ。
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)
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)
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 | メモリポ―ト仲裁方法 |
-
2005
- 2005-01-13 JP JP2005006017A patent/JP4631442B2/ja not_active Expired - Fee Related
Patent Citations (2)
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)
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 |