JP5395383B2 - パイプライン演算プロセッサを備える制御システム - Google Patents
パイプライン演算プロセッサを備える制御システム Download PDFInfo
- Publication number
- JP5395383B2 JP5395383B2 JP2008213351A JP2008213351A JP5395383B2 JP 5395383 B2 JP5395383 B2 JP 5395383B2 JP 2008213351 A JP2008213351 A JP 2008213351A JP 2008213351 A JP2008213351 A JP 2008213351A JP 5395383 B2 JP5395383 B2 JP 5395383B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- pipeline
- control information
- memory
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 78
- 238000003780 insertion Methods 0.000 claims description 56
- 230000037431 insertion Effects 0.000 claims description 55
- 239000000872 buffer Substances 0.000 claims description 32
- 238000012937 correction Methods 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 5
- 238000006073 displacement reaction Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000010363 phase shift Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
システムにおいて、パイプライン演算プロセッサが制御プログラムを実行中に共有メモリ
にアクセス要求があった場合、パイプライン処理の複数命令間のデータパスの同期ずれか
ら生じるハザードの発生を防止してパイプライン処理を継続させて、パイプライン演算プ
ロセッサの処理効率の低下を軽減し、制御プログラムの高速演算処理を可能とするパイプ
ライン演算プロセッサ、及びパイプライン演算プロセッサを備える制御システムを提供す
ることができる。
1c バス
2 パイプライン演算プロセッサ
2a 命令挿入制御部
2a1 メモリアクセス部
2a2 命令挿入部
2a3 補正制御情報バッファ部
2a31 制御情報記憶バンク選択部
2a311 入力選択リングバッファ
2a312 ゲート回路
2a32 制御情報記憶部
2a33 補正制御情報選択部
2a331 出力選択リングバッファ
2a332 マルチプレクサ
2a4 マルチプレクサ
2b パイプライン処理部
2b1 命令フェッチ部
2b2 命令デコード部
2b3 命令実行・実行アドレス生成部
2b4 メモリアドレスアクセス部
2b5 メモリデータアクセス部
2b6 書き込み部
2b7 パイプラインバス
2b8 外部入出力メモリアクセス部
2b9 演算実行メモリアクセス部
2b12 ID回路
2b13 アライメント検出回路
2b14 複数回アクセス命令検出回路
3 外部入出力メモリ
4 演算実行メモリ
4a 制御プログラム
11a、11b 汎用プロセッサ
11c バス
12 パイプライン演算プロセッサ
12a メモリアクセス部
12b パイプライン処理部
12b1 命令フェッチ部
12b2 命令デコード部
12b3 命令実行・実行アドレス生成部
12b4 メモリアドレスアクセス部
12b5 メモリデータアクセス部
12b6 書き込み部
12b7 パイプラインバス
12b8 外部入出力メモリアクセス部
12b9 演算実行メモリアクセス部
13 外部入出力用メモリ
14 演算実行メモリ
14a 制御プログラム
Claims (4)
- 1つ以上の汎用プロセッサと、
当該汎用プロセッサのバスに接続されたパイプライン処理機能を備えるパイプライン演算プロセッサと、
前記パイプライン演算プロセッサが実行する制御プログラム及び演算データを記憶するとともに、前記汎用プロセッサが当該パイプライン演算プロセッサを介してアクセスする演算実行メモリと、
前記パイプライン演算プロセッサがアクセスして入出力する外部データをインタフェースする外部入出力メモリと、
を備える制御システムであって、
前記パイプライン演算プロセッサは、パイプライン処理部と、前記汎用プロセッサから前記演算実行メモリへのアクセス要求があった場合、複数のステージから成る当該パイプライン処理部への命令の挿入と、複数の前記ステージ間のデータパスとを制御する各ステージの制御情報の相対的な位置ずれを補正して再設定する命令挿入制御部とから成り、
前記パイプライン処理部は、1つの命令を分割して並行処理する、命令フェッチ部と、命令デコード部と、命令実行/実行アドレス生成部と、メモリアドレスアクセス部及びメモリデータアクセス部と、書き込み部とから成る複数の前記ステージと、複数の前記ステージを接続するパイプラインバスと、を備え、さらに、前記パイプラインバスに接続され、前記外部入出力メモリとのアクセスをインタフェースする外部入出力メモリアクセス部及び前記演算実行メモリとのアクセスをインタフェースする演算実行メモリアクセス部と、
を備え、
前記命令挿入制御部は、前記汎用プロセッサから前記演算実行メモリへのアクセス要求命令を受信し、前記命令デコード部にNOP命令を挿入するメモリアクセス部及び命令挿入部と、前記命令挿入部から前記NOP命令の挿入を通知された場合、または、前記命令挿入部を介して、前記制御プログラムに予め組み込まれたNOP命令を前記命令デコード部から通知された場合、当該NOP命令を挿入時の前記パイプライン処理部の各ステージの制御情報を記憶するとともに、当該NOP命令の次の命令実行時の各ステージ間の制御情報との相対的な位置ズレを補正して出力する補正制御情報バッファ部と、前記NOP命令が発生した場合に、前記パイプライン処理部の前記制御情報を前記補正制御情報バッファ部の出力に切替えて再設定するマルチプレクサと、
を備え、
前記命令挿入制御部は、前記命令フェッチ部が前記演算実行メモリから前記命令をフェッチして前記制御プログラムを実行中に、前記汎用プロセッサから前記演算実行メモリにアクセスを要求するアクセス要求命令を受信した場合に、実行予定の前記制御プログラムの次命令に変えてNOP命令を前記命令デコード部から挿入し、前記パイプライン処理部の実行を無処理として、前記汎用プロセッサからの前記アクセス要求命令を、前記演算実行メモリアクセス部を介して実行し、
前記パイプライン処理部は、引き続き前記次命令を実行して前記パイプライン処理を継続実行させ、
前記パイプライン演算プロセッサの処理を中断することなく、前記制御プログラムを実行できるようにしたことを特徴とするパイプライン演算プロセッサを備える制御システム。 - 前記補正制御情報バッファ部は、前記NOP命令の挿入毎に前記制御情報の記憶先のバンクを選択する制御情報記憶バンク選択部と、
前記制御情報を記憶する複数の前記バンクを備える制御情報記憶部と、
前記バンクに記憶された制御情報を、前記NOP命令挿入による各ステージ間の制御情報の相対的な位置ズレを補正して次命令実行時に再設定して、対応する夫々の前記バンクから選択して出力する補正制御情報選択部と、
前記補正制御情報選択部の出力と、前記NOP命令挿入前の前記制御情報とのいずれかを選択するマルチプレクサと、
を備えた請求項1に記載のパイプライン演算プロセッサを備える制御システム。 - さらに、前記命令デコード部は、フェッチした命令の命令コードとそのアドレスを記憶するにID回路と、
前記ID回路に記憶された前記命令コードと前記アドレスとからアライメントエラーのエラーの有無を検出するアライメントエラー検出回路とを備え、
前記アライメントエラー検出回路がアライメントエラーを検出した場合、前記エラーの有無を前記命令挿入部に通知し、
前記命令挿入部は、前記エラーの有の場合、当該エラーに対応する前記命令コードの挿入を前記ID回路に通知して、
さらに、当該エラーに対応する同じ前記ステージの制御情報を前記補正制御情報バッファ部に保持して、可変長データに対してもパイプライン処理が実行できるようにしたことを特徴とする請求項1に記載のパイプライン演算プロセッサを備える制御システム。 - さらに、前記命令デコード部は、フェッチした命令の命令コードを記憶するID回路と、
前記ID回路に記憶された前記命令コードから前記外部入出力メモリへの複数回アクセス要求命令を検出する複数回アクセス命令検出回路を備え、
前記複数回アクセス命令検出回路が複数回アクセス要求命令を検出した場合、その回数を前記命令挿入部に通知し、
前記命令挿入部は、前記回数に対応する前記命令コードの挿入を前記ID回路に通知して、前記外部入出力メモリへのアクセスを1つの命令で複数回実行できるようにしたことを特徴とする請求項1に記載のパイプライン演算プロセッサを備える制御システム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008213351A JP5395383B2 (ja) | 2008-08-21 | 2008-08-21 | パイプライン演算プロセッサを備える制御システム |
TW098118219A TWI408601B (zh) | 2008-08-21 | 2009-06-02 | 管線操作處理器及控制系統 |
US12/478,227 US8200950B2 (en) | 2008-08-21 | 2009-06-04 | Sharing pipeline by inserting NOP to accommodate memory access request received from other processors |
KR1020090049577A KR101092955B1 (ko) | 2008-08-21 | 2009-06-04 | 파이프라인 동작 프로세서 및 제어 시스템 |
CN2009101426621A CN101655784B (zh) | 2008-08-21 | 2009-06-05 | 流水线操作处理器和控制系统 |
DE102009024012A DE102009024012A1 (de) | 2008-08-21 | 2009-06-05 | Pipeline-Betriebsprozessor und Steuersystem |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008213351A JP5395383B2 (ja) | 2008-08-21 | 2008-08-21 | パイプライン演算プロセッサを備える制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010049500A JP2010049500A (ja) | 2010-03-04 |
JP5395383B2 true JP5395383B2 (ja) | 2014-01-22 |
Family
ID=41566931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008213351A Active JP5395383B2 (ja) | 2008-08-21 | 2008-08-21 | パイプライン演算プロセッサを備える制御システム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8200950B2 (ja) |
JP (1) | JP5395383B2 (ja) |
KR (1) | KR101092955B1 (ja) |
CN (1) | CN101655784B (ja) |
DE (1) | DE102009024012A1 (ja) |
TW (1) | TWI408601B (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826052B (zh) * | 2010-05-04 | 2012-07-04 | 中国人民解放军国防科学技术大学 | Nual执行语义微处理器中保持延时一致性的断点实现方法 |
CN101866281B (zh) * | 2010-06-13 | 2013-05-22 | 清华大学 | 一种多周期指令执行方法和装置 |
US8522076B2 (en) * | 2010-06-23 | 2013-08-27 | International Business Machines Corporation | Error detection and recovery in a shared pipeline |
US9529596B2 (en) * | 2011-07-01 | 2016-12-27 | Intel Corporation | Method and apparatus for scheduling instructions in a multi-strand out of order processor with instruction synchronization bits and scoreboard bits |
US8635501B2 (en) | 2011-07-25 | 2014-01-21 | Microsoft Corporation | Detecting memory hazards in parallel computing |
CN102830953B (zh) * | 2012-08-02 | 2017-08-25 | 中兴通讯股份有限公司 | 指令处理方法及网络处理器指令处理装置 |
US9268597B2 (en) * | 2014-04-01 | 2016-02-23 | Google Inc. | Incremental parallel processing of data |
WO2019021344A1 (ja) * | 2017-07-24 | 2019-01-31 | オリンパス株式会社 | 画像処理装置および撮像装置 |
CN111857831B (zh) * | 2020-06-11 | 2021-07-20 | 成都海光微电子技术有限公司 | 一种存储体冲突优化方法、并行处理器及电子设备 |
CN111930426A (zh) * | 2020-08-14 | 2020-11-13 | 西安邮电大学 | 一种可重构计算的双模指令集架构及其应用方法 |
KR20240063179A (ko) * | 2021-09-26 | 2024-05-13 | 세레모픽 인코포레이티드 | 제어 플로우 공격 검출 기능을 구비한 코어 프로세서 및 용장 브랜치 프로세서 |
US11921843B2 (en) | 2021-09-26 | 2024-03-05 | Ceremorphic, Inc. | Multi-threaded secure processor with control flow attack detection |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05100844A (ja) * | 1991-10-08 | 1993-04-23 | Nec Corp | マイクロ・プロセツサのプログラムウエイト制御回路 |
JPH06161778A (ja) * | 1992-11-26 | 1994-06-10 | Fujitsu Ltd | マルチフロー命令制御方法及び命令処理装置 |
JP3435267B2 (ja) | 1995-11-07 | 2003-08-11 | 株式会社東芝 | マイクロプロセッサ及びそのロードアドレス予想方法 |
US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
JP3014682B2 (ja) * | 1997-11-21 | 2000-02-28 | 松下電器産業株式会社 | プログラム制御方法及び装置 |
US6112297A (en) * | 1998-02-10 | 2000-08-29 | International Business Machines Corporation | Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution |
JP2000298652A (ja) * | 1999-04-14 | 2000-10-24 | Mitsubishi Electric Corp | マルチプロセッサ |
AU4848700A (en) * | 1999-05-13 | 2000-12-05 | Arc International U.S. Holdings Inc. | Method and apparatus for processor pipeline segmentation and re-assembly |
EP1290548A2 (en) | 2000-06-02 | 2003-03-12 | Sun Microsystems, Inc. | Synchronizing partially pipelined instructions in vliw processors |
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US6877077B2 (en) * | 2001-12-07 | 2005-04-05 | Sun Microsystems, Inc. | Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency |
US6891543B2 (en) * | 2002-05-08 | 2005-05-10 | Intel Corporation | Method and system for optimally sharing memory between a host processor and graphics processor |
JP4412905B2 (ja) * | 2003-01-28 | 2010-02-10 | パナソニック株式会社 | 低電力動作制御装置、およびプログラム最適化装置 |
US7373536B2 (en) | 2004-08-04 | 2008-05-13 | Kabushiki Kaisha Toshiba | Fine granularity halt instruction |
US7278014B2 (en) * | 2004-12-02 | 2007-10-02 | International Business Machines Corporation | System and method for simulating hardware interrupts |
US7437537B2 (en) * | 2005-02-17 | 2008-10-14 | Qualcomm Incorporated | Methods and apparatus for predicting unaligned memory access |
US7814487B2 (en) | 2005-04-26 | 2010-10-12 | Qualcomm Incorporated | System and method of executing program threads in a multi-threaded processor |
-
2008
- 2008-08-21 JP JP2008213351A patent/JP5395383B2/ja active Active
-
2009
- 2009-06-02 TW TW098118219A patent/TWI408601B/zh active
- 2009-06-04 US US12/478,227 patent/US8200950B2/en active Active
- 2009-06-04 KR KR1020090049577A patent/KR101092955B1/ko active IP Right Grant
- 2009-06-05 DE DE102009024012A patent/DE102009024012A1/de not_active Ceased
- 2009-06-05 CN CN2009101426621A patent/CN101655784B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TWI408601B (zh) | 2013-09-11 |
TW201011644A (en) | 2010-03-16 |
KR20100023731A (ko) | 2010-03-04 |
US8200950B2 (en) | 2012-06-12 |
US20100050026A1 (en) | 2010-02-25 |
DE102009024012A1 (de) | 2010-02-25 |
CN101655784B (zh) | 2013-03-06 |
JP2010049500A (ja) | 2010-03-04 |
CN101655784A (zh) | 2010-02-24 |
KR101092955B1 (ko) | 2011-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5395383B2 (ja) | パイプライン演算プロセッサを備える制御システム | |
US10365979B2 (en) | Lockstepped CPU selection based on failure status | |
JP5209933B2 (ja) | データ処理装置 | |
JP2008299795A (ja) | 分岐予測制御装置及びその方法 | |
JP2000330789A (ja) | コンピュータシステムおよびその命令実行方法 | |
JP2006164277A (ja) | プロセッサにおけるエラー除去装置および方法,プロセッサ | |
US6131158A (en) | Data processing system capable of executing groups of instructions, including at least one arithmetic instruction, in parallel | |
KR100291602B1 (ko) | 인터럽트제어장치,프로세서및계산기시스템 | |
US20100332800A1 (en) | Instruction control device, instruction control method, and processor | |
JP2012198803A (ja) | 演算処理装置及び演算処理方法 | |
US7716537B2 (en) | Information processing apparatus and error correction method | |
US11269650B2 (en) | Pipeline protection for CPUs with save and restore of intermediate results | |
JP3839755B2 (ja) | 命令制御方法及びプロセッサ | |
US9417882B2 (en) | Load synchronization with streaming thread cohorts | |
US20080222392A1 (en) | Method and arrangements for pipeline processing of instructions | |
JPH06131180A (ja) | 命令処理方式および命令処理装置 | |
JP3971780B2 (ja) | 命令制御方法 | |
JP3476314B2 (ja) | マイクロプロセッサ | |
JP3798180B2 (ja) | プロセッサにおいて命令をバッファリングする方法およびシステム | |
JP3933679B2 (ja) | 命令処理装置 | |
US20080222393A1 (en) | Method and arrangements for pipeline processing of instructions | |
JP2006127080A (ja) | パイプラインプロセッサ | |
JPH0769800B2 (ja) | データ処理装置 | |
JP2010152640A (ja) | 情報処理装置およびパイプライン処理方法 | |
JP2000181701A (ja) | 命令処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110218 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111125 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121019 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130827 |
|
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: 20130920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131018 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5395383 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |