JP3825709B2 - パイプライン処理方法及びプロセッサ装置 - Google Patents
パイプライン処理方法及びプロセッサ装置 Download PDFInfo
- Publication number
- JP3825709B2 JP3825709B2 JP2002094261A JP2002094261A JP3825709B2 JP 3825709 B2 JP3825709 B2 JP 3825709B2 JP 2002094261 A JP2002094261 A JP 2002094261A JP 2002094261 A JP2002094261 A JP 2002094261A JP 3825709 B2 JP3825709 B2 JP 3825709B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- memory
- shift mask
- processing
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、少ないリソースで高速に動作するパイプライン処理方法及びその処理方法を実施するためのプロセッサ装置に関するものである。
【0002】
【従来の技術】
図4に、従来のプロセッサ装置の動作例のタイミングチャートを示す。このプロセッサ装置はパイプライン処理を行っている。パイプライン処理とは、複数の命令をオーバーラップさせて同時実行する技術である。1個の命令の処理過程を複数の小さな処理単位に分割し、パイプラインの1ステップで、命令の1部分を担当し、実行する。この処理単位をパイプラインステージ(以下ステージ)と呼ぶ。
【0003】
このプロセッサ装置では、1個の命令の処理は、6個のステージに分割される。すなわち、Program Fetch(プログラムフェッチ:以下pf)、Decode(解読、以下dc)、Address Calculating(アドレス演算:以下ac)、Data Memory Read(データメモリ読み出し:以下dr)、Execute(実行:以下exe)、Data Memory Write(データメモリ書き込み:以下dw)である。
【0004】
図4中、横方向はクロックサイクル(時間)で、縦方向には処理が行われる順に複数命令が並んでいる。始めのクロックサイクルで、n番目の命令がpfステージでの処理を行わせる。次のクロックサイクルで、n番目の命令がdcステージでの処理を、n+1番目の命令がpfステージでの処理を、それぞれ行わせる。同様に、クロックサイクルが進むにつれ、命令はステージ毎に処理を行われてゆく。実際は、1命令の処理には6クロックサイクルかかるが、1クロックサイクル毎に1つの命令の処理が終了するため、見かけ上は1クロックサイクルで1命令を処理していることになる。
【0005】
以上の様なパイプライン処理を行うためには、各ステージの実行時間は均等でなければならない。よって、実行時間が最も長いステージに他のステージの長さを合わせる事になる。
【0006】
図3は、上記プロセッサ装置のexeステージを実施する部分の構成を表している。exeステージは、算術演算装置(ALU)7、特定ビットのシフト処理及び/又はマスク処理を行うシフト・マスク回路3を具備しており、レジスタ10又はメモリ11から読み出したデータの一方をマルチプレクサ5で選択し、第1のデータバス1を経由してシフト・マスク回路3でシフトやマスク処理を施した後、算術演算装置7で演算を行い、その結果に対し、シフト・マスク回路12でシフトやマスク処理を施し、マルチプレクサ8で選択して第2のデータバス2に送っている。
【0007】
【発明が解決しようとする課題】
上記のように、従来のexeステージのアーキテクチャでは、マスクやシフト処理もこのexeステージで処理するので、他のステージの処理時間よりも長くなってしまうため、これ以上の高速化を図る事が出来なかった。また、演算処理及びシフト・マスク処理は、これ以上簡素化又は高速化するのが比較的難しい部分であり、この点もexeステージの処理時間の増大の一因となっていた。
【0008】
本発明は、上記問題点に鑑みてなされたもので、その目的は、リソースの増加を招くことなく高速化を図ることができるようにしたパイプライン処理方法及びそれを実施するプロセッサ装置を提供することである。
【0009】
【課題を解決するための手段】
請求項1にかかる発明は、1個の命令を複数の処理ステージに分割し、複数の命令の異なった処理ステージを同時の1クロックサイクルで処理するパイプライン処理方法おいて、レジスタ又はメモリに対するデータ書き込み直前の第1のシフト・マスク処理と前記レジスタ又はメモリに対するデータ読み出し直後の第2のシフト・マスク処理を各々半クロックサイクル内で行ない、且つ前記第2のシフト・マスク処理の後に演算を1クロックサイクル行い、該演算の後に前記第1のシフト・マスク処理を行うことを特徴とするパイプライン処理方法とした。
【0010】
請求項2にかかる発明は、請求項1にかかる発明において、前記レジスタ又はメモリに対するデータ読み出しを半クロックサイクルで行い、前記第1のシフト・マスク処理の後に前記レジスタ又はメモリに対するデータ書き込みを半クロックサイクルで行うことを特徴とするパイプライン処理方法とした。
【0011】
請求項3にかかる発明は、請求項1又は2にかかる発明において、前記第1及び第2のシフト・マスク処理が共通のシフト・マスク回路により行われることを特徴とするパイプライン処理方法とした。
【0012】
請求項4にかかる発明は、レジスタ又はメモリと、該レジスタ又はメモリに対して第2のデータバスのデータをシフト・マスク処理して書き込み及び前記レジスタ又はメモリから読み出したデータをシフト・マスクして第1のデータバスに送るシフト・マスク回路と、前記第1のデータバスのデータについての演算を行い該演算結果を前記第2のデータバスに送る算術演算装置とを有し、パイプライン処理を行うプロセッサ装置において、前記レジスタ又はメモリの出力データと前記シフト・マスク回路の出力データの一方を選択して前記第1のデータバスに送る第1のマルチプレクサと、前記第1のデータバスのデータを一時保持して前記算術演算装置に送る第1の一時レジスタと、前記算術演算装置の出力データと別のデータの一方を選択する第2のマルチプレクサと、該第2のマルチプレクサの出力データを一時保持して前記第2のデータバスに送る第2の一時レジスタとを具備することを特徴とするプロセッサ装置とした。
【0014】
【発明の実施の形態】
本実施形態では、シフト・マスク処理をexeステージの前後のステージで行えるように構成し、またクロックサイクルの半分以下のアクセス速度のレジスタ又はメモリを用意することで、1個のシフト・マスク回路により1クロックサイクル内に2度シフト・マスク処理を実施し、高速化を図る。
【0015】
すなわち、シフト・マスク処理を、exeステージから外し、その前段のdrステージ及びその後段に設けた新たなステージで行うように構成することにより、exeステージでの処理時間を大幅に短縮する。これにより、1ステージあたりのクロックサイクルが大幅に短縮されることになり、全体の処理速度が向上する。
【0016】
また、別々のステージでシフト・マスク処理を行う場合には、リソースの競合が起こるため、シフト・マスク回路をdrステージ用と新たに設けたステージ用に2つ用意するのが普通であるが、1つの回路を1クロックサイクルに2度使用できるように構成したことで、競合が起こらず、リソースの増加を防ぐことができる。以下に詳しく説明する。
【0017】
図1は、本発明の1つの実施形態のexeステージとその前後のステージを実施する構成部分を示す図である。この図は、データの流れ、すなわち処理の手順並びにクロックサイクルの経過を表している。1は第1のデータバス、2は第2のデータバス、3は第2のデータバス2のデータの特定ビットのシフト処理やマスク処理を行うシフト・マスク回路、4はデータが格納されるレジスタ又はメモリ(アクセス時間は半クロックサイクル内)、5はシフト・マスク回路3からの出力データとレジスタ又はメモリ4からの出力データの一方を選択して第1のデータバス1に出力する第1のマルチプレクサ、6は第1のデータバス1から取り込んだデータを一時保持する第1の一時レジスタ、7は第1の一時レジスタ6の出力データと図示しない別の回路から入力するデータとの算術演算を行う算術演算装置、8は算術演算装置7の演算結果と図示しない別の回路から入力するデータの一方を選択して出力する第2のマルチプレクサ、9は第2のマルチプレクサ8の出力データを一時保持して第2のデータバス2に送り出す第2の一時レジスタである。
【0018】
本実施形態では、まず、第2のデータバス2に流れるデータが、シフト・マスク回路3でシフトやマスク処理を受けてから、レジスタ又はメモリ4ヘと送られそこに書き込まれる。レジスタ又はメモリ4から読み出されたデータは、シフト・マスク回路3で再度シフトやマスク処理を受けてから、第1のマルチプレクサ5へと送られる。この第1のマルチプレクサ5には、レジスタ又はメモリ3から読み出されシフト・マスク回路3を経由しないデータも送られる。第1のマルチプレクサ5でどちらのデータを選択するかは、ケースによりその都度変わるものとする。第1のマルチプレクサ5で選択されたデータは、第1のデータバス1へと送られる。ここまでのレジスタ又はメモリ4からのデータ読み出しとシフト・マスク回路3でのシフト・マスク処理は、1クロックサイクルで行われる。
【0019】
第1のデータバス1のデータは第1の一時レジスタ6に保存されてから算術演算装置7へと送られ、他方から送られた、その都度異なるデータと演算される。演算内容も、その都度異なる。演算結果は第2のマルチプレクサ8へと送られる。ここでは、その演算結果と先ほどとは異なる他方から送られたデータとのどちらかが選択され、第2の一時レジスタ9へと保存され、第2のデータバス2に送り出される事になる。ここまでの第1の一時レジスタ6での保持から第2の一時レジスタ9での保持までの処理は、やはり1クロックサイクルで行われる。
【0020】
図2に、本実施形態の動作例のタイミングチャートを示す。基本的には従来のプロセッサ装置と同様の動作を行うが、レジスタ又はメモリ3にそのアクセス時間がクロックサイクルの半分以下の高速なものを使用する事で、drステージ及びdwステージは、クロックサイクルの半分以下の処理時間とすることができる。また、exeステージとdwステージの間に、1クロックサイクル分だけもう一つ新たなステージを設けてある。同図中、※で記されたシフト・マスク処理は、drステージの後段の空いた部分、及び新たに設けたステージの前段部分に配置してある。つまり、exeステージの前後に※ステージであるシフト・マスク処理が配置してある。
【0021】
図1との対応では、レジスタ又はメモリ4からのデータの読み出しがdrステージで、シフト・マスク回路3でのシフトやマスク処理が※ステージで、第1のデータバス1のデータを算術演算装置7により演算して第2のデータバス2に送り出す処理がexeステージで、第2のデータバス2のデータをシフト・マスク回路3でシフトやマスクする処理が※ステージで、レジスタ又はメモリ4にデータを書き込む処理がdwステージで、各々行われる。このとき、exeステージの前後の※ステージは1クロックサイクルの半分で処理されるので、各命令の処理において、その※ステージが重なることはない。
【0022】
このように、全てのシフト・マスク処理は、図2に示すように、同時に実行される事が無いため、共通の唯一のシフト・マスク回路3によって、レジスタ又はメモリ4への書き込みデータのシフト・マスク処理、及びレジスタ又はメモリ4から読み出したデータのシフト・マスク処理を行う事ができ、リソースが増大することはない。
【0023】
【発明の効果】
以上から本発明によれば、シフト・マスク処理をexeステージの前後に配置し、その処理をクロックサイクルの半分で行うことができるようにしたので、exeステージの処理にかかる時間を大幅に削減させることができ、より高速なプロセッサ装置を開発する事が可能になる。また、シフト・マスク回路が一つで間に合う事から、チップ面積の削減によるコストの削減を図ることができる。
【図面の簡単な説明】
【図1】 本発明の実施形態のプロセッサ装置のexeステージを実施する構成部分を示すブロック図である。
【図2】 本発明の実施形態のプロセッサ装置の動作例を示すタイミングチャートである。
【図3】 従来のプロセッサ装置のexeステージを実施する構成部分を示すブロック図である。
【図4】 従来のプロセッサ装置の動作例を示すタイミングチャートである。
【符号の説明】
1:第1のデータバス、2:第2のデータバス、3:シフト・マスク回路、4:レジスタ又はメモリ、5:第1のマルチプレクサ、6:第1の一時レジスタ、7:算術演算装置、8:第2のマルチプレクサ、9:第2の一時レジスタ、10:レジスタ、11:メモリ。
Claims (4)
- 1個の命令を複数の処理ステージに分割し、複数の命令の異なった処理ステージを同時の1クロックサイクルで処理するパイプライン処理方法おいて、
レジスタ又はメモリに対するデータ書き込み直前の第1のシフト・マスク処理と前記レジスタ又はメモリに対するデータ読み出し直後の第2のシフト・マスク処理を各々半クロックサイクル内で行ない、且つ前記第2のシフト・マスク処理の後に演算を1クロックサイクル行い、該演算の後に前記第1のシフト・マスク処理を行うことを特徴とするパイプライン処理方法。 - 請求項1において、
前記レジスタ又はメモリに対するデータ読み出しを半クロックサイクルで行い、前記第1のシフト・マスク処理の後に前記レジスタ又はメモリに対するデータ書き込みを半クロックサイクルで行うことを特徴とするパイプライン処理方法。 - 請求項1又は2において、
前記第1及び第2のシフト・マスク処理が共通のシフト・マスク回路により行われることを特徴とするパイプライン処理方法。 - レジスタ又はメモリと、該レジスタ又はメモリに対して第2のデータバスのデータをシフト・マスク処理して書き込み及び前記レジスタ又はメモリから読み出したデータをシフト・マスクして第1のデータバスに送るシフト・マスク回路と、前記第1のデータバスのデータについての演算を行い該演算結果を前記第2のデータバスに送る算術演算装置とを有し、パイプライン処理を行うプロセッサ装置において、
前記レジスタ又はメモリの出力データと前記シフト・マスク回路の出力データの一方を選択して前記第1のデータバスに送る第1のマルチプレクサと、前記第1のデータバスのデータを一時保持して前記算術演算装置に送る第1の一時レジスタと、前記算術演算装置の出力データと別のデータの一方を選択する第2のマルチプレクサと、該第2のマルチプレクサの出力データを一時保持して前記第2のデータバスに送る第2の一時レジスタとを具備することを特徴とするプロセッサ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002094261A JP3825709B2 (ja) | 2002-03-29 | 2002-03-29 | パイプライン処理方法及びプロセッサ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002094261A JP3825709B2 (ja) | 2002-03-29 | 2002-03-29 | パイプライン処理方法及びプロセッサ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003296106A JP2003296106A (ja) | 2003-10-17 |
JP3825709B2 true JP3825709B2 (ja) | 2006-09-27 |
Family
ID=29386937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002094261A Expired - Fee Related JP3825709B2 (ja) | 2002-03-29 | 2002-03-29 | パイプライン処理方法及びプロセッサ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3825709B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008117218A (ja) * | 2006-11-06 | 2008-05-22 | Mitsubishi Electric Corp | 演算処理装置 |
-
2002
- 2002-03-29 JP JP2002094261A patent/JP3825709B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003296106A (ja) | 2003-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS62245442A (ja) | 情報処理装置 | |
JP3188467B2 (ja) | 最小値・最大値検索装置 | |
JP2006018413A (ja) | プロセッサおよびパイプライン再構成制御方法 | |
RU2375768C2 (ru) | Процессор и способ осуществления операций непрямого чтения и записи регистра | |
JP2002163127A (ja) | トレース制御回路 | |
EP0497485A2 (en) | Computer for implementing two-operand instructions | |
JP3825709B2 (ja) | パイプライン処理方法及びプロセッサ装置 | |
KR100188374B1 (ko) | 연산처리장치 | |
US7613905B2 (en) | Partial register forwarding for CPUs with unequal delay functional units | |
US6981130B2 (en) | Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel | |
JP3211750B2 (ja) | 情報処理装置及びパイプライン処理方法 | |
US5784634A (en) | Pipelined CPU with instruction fetch, execution and write back stages | |
JP2883465B2 (ja) | 電子計算機 | |
JPH06124207A (ja) | サブルーチン分岐命令実行方法 | |
JP2885197B2 (ja) | 演算処理装置及び演算処理方法 | |
JP3526773B2 (ja) | マルチプロセッサ装置およびその制御方法 | |
JP2000020309A (ja) | デジタルシグナルプロセッサ | |
JPH0792902A (ja) | プログラマブルコントローラ | |
JP2001229135A (ja) | Simd型並列計算装置 | |
JP2925842B2 (ja) | パイプライン処理装置 | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
JP2000322256A (ja) | 情報処理装置 | |
JP3573874B2 (ja) | 演算回路 | |
JP2010204913A (ja) | ベクトル処理装置 | |
JPH0342721A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050104 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060411 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060517 |
|
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: 20060613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060630 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120707 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120707 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140707 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |