JP5485129B2 - コンピュータシステムにおいて割込みを処理するシステムおよび方法 - Google Patents
コンピュータシステムにおいて割込みを処理するシステムおよび方法 Download PDFInfo
- Publication number
- JP5485129B2 JP5485129B2 JP2010283132A JP2010283132A JP5485129B2 JP 5485129 B2 JP5485129 B2 JP 5485129B2 JP 2010283132 A JP2010283132 A JP 2010283132A JP 2010283132 A JP2010283132 A JP 2010283132A JP 5485129 B2 JP5485129 B2 JP 5485129B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- interrupt
- instructions
- branch
- processor
- 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
- 238000000034 method Methods 0.000 title claims description 33
- 238000012545 processing Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 18
- 238000012958 reprocessing Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 53
- 238000004364 calculation method Methods 0.000 description 18
- 230000007246 mechanism Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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, look ahead
- G06F9/3802—Instruction prefetching
-
- 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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
Description
プログラム・メモリ・ユニット3は、典型的に、コンピュータプログラムを実行する一組の命令および規則を記憶し、その一方で、データ・メモリ・ユニット2は、典型的に、事前に生成された(すなわち、静的な)データおよび/またはスクラッチパッド(すなわち、動的な)データなど、プログラム命令を操作する間に生成されるデータを記憶するが、命令およびデータをメモリに記憶する他の配置が採用されてもよい。
● IF1−プログラム・メモリ・アドレス(プログラム制御ユニット8によって操作される)
● IF2−プログラム・メモリ・フェッチ(フェッチユニット12によって操作される)
● D1−命令ディスパッチ(プログラム制御ユニット8によって操作される)
● D2−命令デコード(デコードユニット6によって操作される)
● D3からD4−レジスタファイル読出し(レジスタファイル9を用いる)
● E1からE4−実行、データ・メモリ・アクセスおよびレジスタ・ファイル・ライトバック(実行ユニット11、ロード/記憶ユニット7、およびレジスタファイル9によって操作される)
しかし、本発明の実施形態は特定の順序に限定されるものではなく、他のあるいは追加のパイプライン段および操作デバイス構成部品が採用されてもよいことを当業者は理解されたい。
命令が分岐命令であるとき、命令が読み出される予定の時点で見込まれる複数の後続命令の正しい一つが分かっていない場合、分岐機構14は分岐命令の後に続く可能性が最も高い命令を予測してもよい。予測された命令はプログラムメモリ3から読み出され、予測が正しければ、予測された命令は分岐遅延スロットを実行した後で処理される。
しかし、予測された分岐命令が実際の分岐結果に一致しなければ、実際の分岐命令はプログラム命令3からフェッチされてもよく、プログラムメモリ3から正しい命令をフェッチするために、たとえば、3サイクル(IF1〜D1)のさらなる計算ペナルティが生じるかもしれない。このペナルティは、プロセッサ1のパイプラインの種類によって異なるかもしれない。
表内の左上のセル(行1、列1)は、「A」と標記された命令を示す。命令Aは、プログラムの一連の命令、たとえば、A、A+1、A+2、A+3、...(行1および3〜5、列1)における命令であってもよい。命令Aは、第1のアドレスで記憶され、たとえば、アドレス100(行1、列2)として任意に表わされてもよく、後続の命令A+1、A+2、A+3、...は異なる連続アドレスで記憶され、たとえば、101、102、103、...(行3〜5、列2)として任意に表わされてもよい。
プロセッサ(たとえば、図1Aおよび1Bのプロセッサ1)は命令A+1およびA+2(それぞれ、行3、列7および行4、列8)をデコードしてもよく、命令A+1およびA+2が分岐命令でないと判断する。したがって、命令A+1およびA+2は、命令が完全に処理されるまで中断することなく進行が許可される(たとえば、段E4において:行3、列11、および行4、列12、いずれも図示せず)。プロセッサは、この後、命令A+3をデコードし(行5、列9)、命令が分岐命令であると判断する。割込みは、たとえば、分岐命令A+3を適切に処理するために必要な命令A+3の後に続く遅延スロットを占有するので、命令A+3は無効化または「中止」される(行5、列9)。
プロセッサ(たとえば、図1Aおよび1Bのプロセッサ1)は、命令A+1、A+2、およびA+3(それぞれ、行3、列7。行4、列8。行5、列9。)をデコードし、これら命令のいずれも分岐命令でないと判断してもよい。したがって、命令A+1、A+2、およびA+3が完全に処理されるまで(たとえば、段E4において、それぞれ、行3、列11。行4、列12。行5、列13。図示せず)、これらの命令は中断することなく進行が許可される。割込みに先立つ命令A+1、A+2、およびA+3のいずれも分岐命令ではないので、命令は無効化も「中止」もされない。
操作600において、プロセッサ(たとえば、図1Aおよび1Bのプロセッサ1)は、たとえば、図3〜5に関連して記載されるように、さらに、それぞれのプロセッサ・パイプライン・スロットで一連の命令処理を開始してもよい。
本発明の実施形態は、コンピュータまたはプロセッサ可読媒体、あるいは、プロセッサまたはコントローラ(たとえば、図1Aおよび1Bにおいてデバイス100のプロセッサ1)によって実行されるときに本明細書で開示された方法を実行する命令をエンコードし、含み、または記憶する、たとえば、メモリ、ディスクドライブ、またはUSBフラッシュメモリなどのコンピュータまたはプロセッサ記憶媒体などの品目を含んでいてもよい。
Claims (17)
- ディジタル信号を処理する方法であって、
一連の命令に続いて割込みの処理を開始することであって、前記一連の命令は、一連のパイプラインスロットで処理されるべきものであり、前記割込みは、前記一連のパイプラインスロットに続くスロットにおいて処理されるべきものである、前記開始すること、
デコード段において、前記一連の命令における命令が分岐命令であるかどうかを検出すること、
前記一連の命令が分岐命令を含まない場合、割込みペナルティなしで前記一連の命令の処理を完了すること、
分岐命令が検出され、かつ前記割込みが、検出された分岐命令に関連する遅延スロットを占有する場合、前記検出された分岐命令、及び該分岐命令と、前記割込みに関連する割込みアドレス命令との間の任意の命令を無効化し、前記検出された分岐命令に先行する前記一連の命令における任意の命令の処理を完了すること
を備える方法。 - 前記遅延スロットは分岐命令を適切に処理するために必要である、請求項1に記載の方法。
- 割込みサブルーチンに続くそれぞれのパイプラインスロットにおいて無効化された命令を処理することを備える、請求項1に記載の方法。
- 前記無効化された命令をリターンレジスタに書き込むこと、前記無効化された命令を待ち行列に入れて、割込みサブルーチンに続くパイプラインスロットで順番に処理されるようにすることを備える、請求項1に記載の方法。
- 各無効化された命令の再処理に対して割込みペナルティを生じることを備える、請求項1に記載の方法。
- 少なくとも、前記命令の一つが分岐命令であると判断されるまで、連続する命令の処理を継続することを備える、請求項1に記載の方法。
- 前記割込みに先行し、かつ分岐命令ではなく、かつ分岐命令に関連する遅延スロットを占有しない各命令に対するパイプライン処理の全体を通じて中断することなく命令を処理することを備える、請求項1に記載の方法。
- ディジタル信号を処理するプロセッサであって、
分岐検出器を備え、
前記プロセッサは、一連の命令に続いて割込みの処理を開始し、各命令はそれぞれの連続パイプラインスロットで処理され、前記分岐検出器は、命令が分岐命令であるかどうかを検出し、分岐命令が検出され、かつ前記割込みが、検出された分岐命令に関連する遅延スロットを占有する場合、前記プロセッサは、前記分岐命令、及び該分岐命令と、前記割込みに関連する割込みアドレス命令との間の前記一連の命令における任意の命令を無効化し、前記検出された分岐命令に先行する前記一連の命令における任意の命令の処理を完了し、分岐命令が検出されない場合、前記プロセッサは、割込みペナルティなしで前記一連の命令の処理を完了する、プロセッサ。 - 前記プロセッサは、割込みパイプラインスロットに続くそれぞれのパイプラインスロットにおいて無効化された命令を処理する、請求項8に記載のプロセッサ。
- リターンレジスタを備え、無効化された命令が前記リターンレジスタに書き込まれ、待ち行列に入れられて、割込みサブルーチンに続くパイプラインスロットで前記プロセッサによって順番に処理されるようにする、請求項8に記載のプロセッサ。
- 割込みパイプラインスロットに続くパイプラインスロットにおいて各無効化された命令を再処理するために割込みペナルティが生じる、請求項8に記載のプロセッサ。
- 前記プロセッサは、少なくとも前記分岐検出器が分岐命令を検出するまで、連続する命令の処理を継続する、請求項8に記載のプロセッサ。
- 前記プロセッサが前記割込みに先行する命令は分岐命令ではなくかつ分岐命令に関連する遅延スロットを占有しないと判断する場合に、前記プロセッサは、パイプライン処理全体を通じて命令を中断することなく処理する、請求項8に記載のプロセッサ。
- ディジタル信号を処理するシステムであって、
一連の命令に続いて割込みの処理を開始するプロセッサであって、各命令はそれぞれの連続パイプラインスロットで処理される、前記プロセッサと、
命令が分岐命令であるかどうかを検出する分岐検出器であって、分岐命令が検出され、かつ前記割込みが、検出された分岐命令に関連する遅延スロットを占有する場合、前記プロセッサは、前記分岐命令、及び該分岐命令と、前記割込みに関連する割込みアドレス命令との間の前記一連の命令における任意の命令を無効化し、前記検出された分岐命令に先行する前記一連の命令における任意の命令の処理を完了し、分岐命令が検出されない場合、前記プロセッサは、割込みペナルティなしで前記一連の命令の処理を完了する、前記分岐検出器と、
少なくとも前記一連の命令を実行してプログラムを実行する実行ユニットと
を備えるシステム。 - 前記プロセッサは、割込みサブルーチンに続くそれぞれのパイプラインスロットにおいて無効化された命令を処理する、請求項14に記載のシステム。
- 前記プロセッサは、少なくとも前記分岐検出器が分岐命令を検出するまで、連続する命令の処理を継続する、請求項14に記載のシステム。
- 前記プロセッサが前記割込みに先行する命令は分岐命令ではなくかつ分岐命令に関連する遅延スロットを占有しないと判断する場合に、前記プロセッサは、パイプライン処理全体を通じて命令を中断することなく処理する、請求項14に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/642,970 | 2009-12-21 | ||
US12/642,970 US8473725B2 (en) | 2009-12-21 | 2009-12-21 | System and method for processing interrupts in a computing system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011129130A JP2011129130A (ja) | 2011-06-30 |
JP2011129130A5 JP2011129130A5 (ja) | 2014-02-13 |
JP5485129B2 true JP5485129B2 (ja) | 2014-05-07 |
Family
ID=43745712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010283132A Active JP5485129B2 (ja) | 2009-12-21 | 2010-12-20 | コンピュータシステムにおいて割込みを処理するシステムおよび方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8473725B2 (ja) |
EP (1) | EP2348399B1 (ja) |
JP (1) | JP5485129B2 (ja) |
CA (1) | CA2725906C (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372811B2 (en) * | 2012-12-13 | 2016-06-21 | Arm Limited | Retention priority based cache replacement policy |
CN103577242B (zh) * | 2013-11-14 | 2016-11-02 | 中国科学院声学研究所 | 针对已调度汇编代码的控制流图重构方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5922070A (en) * | 1994-01-11 | 1999-07-13 | Texas Instruments Incorporated | Pipelined data processing including program counter recycling |
US5774709A (en) * | 1995-12-06 | 1998-06-30 | Lsi Logic Corporation | Enhanced branch delay slot handling with single exception program counter |
JP3439033B2 (ja) * | 1996-07-08 | 2003-08-25 | 株式会社日立製作所 | 割り込み制御装置及びプロセッサ |
US6055628A (en) | 1997-01-24 | 2000-04-25 | Texas Instruments Incorporated | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks |
-
2009
- 2009-12-21 US US12/642,970 patent/US8473725B2/en active Active
-
2010
- 2010-12-17 CA CA2725906A patent/CA2725906C/en active Active
- 2010-12-20 JP JP2010283132A patent/JP5485129B2/ja active Active
- 2010-12-21 EP EP10196164.7A patent/EP2348399B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8473725B2 (en) | 2013-06-25 |
CA2725906A1 (en) | 2011-06-21 |
JP2011129130A (ja) | 2011-06-30 |
US20110154001A1 (en) | 2011-06-23 |
EP2348399A1 (en) | 2011-07-27 |
EP2348399B1 (en) | 2013-08-07 |
CA2725906C (en) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10409605B2 (en) | System and method for using a branch mis-prediction buffer | |
TWI521347B (zh) | 用於減少由資料預擷取引起的快取汙染之方法及裝置 | |
JP5410281B2 (ja) | 非シーケンシャル命令アドレスをプリフェッチするための方法および装置 | |
TWI396131B (zh) | 排程一指令在一處理器中之執行方法及使用該方法之積體電路裝置 | |
US8291202B2 (en) | Apparatus and methods for speculative interrupt vector prefetching | |
TWI547803B (zh) | 預取單元、資料預取方法、電腦程式產品以及微處理器 | |
US9052910B2 (en) | Efficiency of short loop instruction fetch | |
US20120159125A1 (en) | Efficiency of short loop instruction fetch | |
KR101048178B1 (ko) | 링크 스택 회로를 정정하는 방법 및 장치 | |
WO2022237585A1 (zh) | 处理方法及装置、处理器、电子设备及存储介质 | |
JP5485129B2 (ja) | コンピュータシステムにおいて割込みを処理するシステムおよび方法 | |
CN111065998A (zh) | 用于预执行数据相依的负载的切片结构 | |
US9164900B1 (en) | Methods and systems for expanding preload capabilities of a memory to encompass a register file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131218 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131218 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20131218 |
|
TRDD | Decision of grant or rejection written | ||
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20140117 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5485129 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |