RU2009124438A - Способы и устройство для распознавания вызова подпрограммы - Google Patents
Способы и устройство для распознавания вызова подпрограммы Download PDFInfo
- Publication number
- RU2009124438A RU2009124438A RU2009124438/08A RU2009124438A RU2009124438A RU 2009124438 A RU2009124438 A RU 2009124438A RU 2009124438/08 A RU2009124438/08 A RU 2009124438/08A RU 2009124438 A RU2009124438 A RU 2009124438A RU 2009124438 A RU2009124438 A RU 2009124438A
- Authority
- RU
- Russia
- Prior art keywords
- program stream
- inconsistent
- inconsistent change
- register
- change
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract 13
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 238000001514 detection method Methods 0.000 claims abstract 2
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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- 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
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Communication Control (AREA)
Abstract
1. Способ распознавания вызова подпрограммы, содержащий: ! обнаружение непоследовательного изменения в программном потоке, ! извлечение следующего последовательного адреса после обнаруженного непоследовательного изменения в программном потоке, и ! сравнение следующего последовательного адреса с содержимым регистра для определения, является ли непоследовательное изменение вызовом подпрограммы. ! 2. Способ по п.1, в котором непоследовательное изменение в программном потоке является командой ветвления. ! 3. Способ по п.1, в котором регистр является регистром связи. ! 4. Способ по п.1, дополнительно содержащий: ! помещение следующего последовательного адреса после непоследовательного изменения в программном потоке в структуру стека связи. ! 5. Способ по п.1, дополнительно содержащий: ! индикацию того, что непоследовательное изменение в программном потоке является вызовом подпрограммы. ! 6. Способ по п.5, в котором индикация того, что непоследовательное изменение в программном потоке является вызовом подпрограммы, содержит: ! сохранение флага в схеме предсказания ветвлений, связанной с непоследовательным изменением в программном потоке. ! 7. Устройство в процессоре для распознавания вызова подпрограммы, содержащее: ! схему, содержащую: !первый вход для приема содержимого регистра, ! второй вход для приема непоследовательного изменения в программном потоке, ! третий вход для приема следующего последовательного адреса после непоследовательного изменения в программном потоке, причем схема сконфигурирована так, чтобы сравнивать следующий последовательный адрес и содержимое регистра для определения того, являет
Claims (20)
1. Способ распознавания вызова подпрограммы, содержащий:
обнаружение непоследовательного изменения в программном потоке,
извлечение следующего последовательного адреса после обнаруженного непоследовательного изменения в программном потоке, и
сравнение следующего последовательного адреса с содержимым регистра для определения, является ли непоследовательное изменение вызовом подпрограммы.
2. Способ по п.1, в котором непоследовательное изменение в программном потоке является командой ветвления.
3. Способ по п.1, в котором регистр является регистром связи.
4. Способ по п.1, дополнительно содержащий:
помещение следующего последовательного адреса после непоследовательного изменения в программном потоке в структуру стека связи.
5. Способ по п.1, дополнительно содержащий:
индикацию того, что непоследовательное изменение в программном потоке является вызовом подпрограммы.
6. Способ по п.5, в котором индикация того, что непоследовательное изменение в программном потоке является вызовом подпрограммы, содержит:
сохранение флага в схеме предсказания ветвлений, связанной с непоследовательным изменением в программном потоке.
7. Устройство в процессоре для распознавания вызова подпрограммы, содержащее:
схему, содержащую:
первый вход для приема содержимого регистра,
второй вход для приема непоследовательного изменения в программном потоке,
третий вход для приема следующего последовательного адреса после непоследовательного изменения в программном потоке, причем схема сконфигурирована так, чтобы сравнивать следующий последовательный адрес и содержимое регистра для определения того, является ли непоследовательное изменение в программном потоке вызовом подпрограммы.
8. Устройство по п.7, в котором непоследовательное изменение в программном потоке является командой ветвления.
9. Устройство по п.7, в котором регистр является регистром связи.
10. Устройство по п.7, дополнительно содержащее:
структуру стека связи, причем устройство сконфигурировано так, чтобы помещать следующий последовательный адрес после непоследовательного изменения в программном потоке в структуру стека связи.
11. Устройство по п.7, дополнительно содержащее:
схему предсказания ветвлений, сконфигурированную так, чтобы сохранять индикацию того, что непоследовательное изменение в программном потоке является вызовом подпрограммы.
12. Устройство для распознавания вызова подпрограммы, содержащее:
средство для обнаружения непоследовательного изменения в программном потоке,
средство для извлечения следующего последовательного адреса после обнаруженного непоследовательного изменения в программном потоке, и
средство для сравнения следующего последовательного адреса с содержимым регистра для определения, является ли непоследовательное изменение вызовом подпрограммы.
13. Устройство по п.12, в котором непоследовательное изменение в программном потоке является командой ветвления.
14. Устройство по п.12, в котором регистр является регистром связи.
15. Устройство по п.12, дополнительно содержащее:
средство для помещения следующего последовательного адреса после непоследовательного изменения в программном потоке в структуру стека связи.
16. Устройство по п.12, дополнительно содержащее:
средство для индикации того, что непоследовательное изменение в программном потоке является вызовом подпрограммы.
17. Устройство по п.12, в котором средство для индикации того, что непоследовательное изменение в программном потоке является вызовом подпрограммы, содержит:
средство для сохранения флага в схеме предсказания ветвлений, связанной с непоследовательным изменением в программном потоке.
18. Устройство для распознавания вызова подпрограммы, содержащее:
процессорный конвейер для обработки команд, и
схему, подключенную к процессорному конвейеру, причем схема сконфигурирована так, чтобы принимать содержимое регистра, индикацию непоследовательного изменения в программном потоке и следующий последовательный адрес после индикации непоследовательного изменения в программном потоке, и причем схема сконфигурирована так, чтобы сравнивать содержимое регистра связи со следующим последовательным адресом для определения, является ли индикация непоследовательного изменения в программном потоке вызовом подпрограммы.
19. Устройство по п.18, дополнительно содержащее:
структуру стека связи, причем схема сконфигурирована так, чтобы помещать содержимое регистра связи в структуру стека связи.
20. Устройство по п.18, дополнительно содержащее:
схему предсказания ветвлений, причем схема сконфигурирована так, чтобы сохранять индикацию того, что непоследовательное изменение в программном потоке представляет собой вызов подпрограммы.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/563,943 | 2006-11-28 | ||
US11/563,943 US7444501B2 (en) | 2006-11-28 | 2006-11-28 | Methods and apparatus for recognizing a subroutine call |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2009124438A true RU2009124438A (ru) | 2011-01-10 |
Family
ID=39465182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009124438/08A RU2009124438A (ru) | 2006-11-28 | 2007-11-27 | Способы и устройство для распознавания вызова подпрограммы |
Country Status (13)
Country | Link |
---|---|
US (1) | US7444501B2 (ru) |
EP (1) | EP2087420B1 (ru) |
JP (1) | JP2010511251A (ru) |
KR (1) | KR20090094335A (ru) |
CN (1) | CN101535951A (ru) |
AT (1) | ATE484795T1 (ru) |
BR (1) | BRPI0719371A2 (ru) |
CA (1) | CA2668584A1 (ru) |
DE (1) | DE602007009861D1 (ru) |
ES (1) | ES2351894T3 (ru) |
MX (1) | MX2009005584A (ru) |
RU (1) | RU2009124438A (ru) |
WO (1) | WO2008067277A2 (ru) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4836903B2 (ja) * | 2007-09-13 | 2011-12-14 | 株式会社東芝 | マイクロプロセッサ制御装置並びにその方法およびプログラム |
US8694760B2 (en) * | 2009-05-19 | 2014-04-08 | Panasonic Corporation | Branch prediction using a leading value of a call stack storing function arguments |
US20140025894A1 (en) * | 2012-07-18 | 2014-01-23 | Electronics And Telecommunications Research Institute | Processor using branch instruction execution cache and method of operating the same |
CN103795738A (zh) * | 2012-10-26 | 2014-05-14 | 苏州工业园区新宏博通讯科技有限公司 | 一种采集终端及应用该采集终端的远程监控系统 |
US10209992B2 (en) * | 2014-04-25 | 2019-02-19 | Avago Technologies International Sales Pte. Limited | System and method for branch prediction using two branch history tables and presetting a global branch history register |
US10908902B2 (en) * | 2016-05-26 | 2021-02-02 | International Business Machines Corporation | Distance based branch prediction and detection of potential call and potential return instructions |
GB2563384B (en) * | 2017-06-07 | 2019-12-25 | Advanced Risc Mach Ltd | Programmable instruction buffering |
US10896030B2 (en) | 2017-09-19 | 2021-01-19 | International Business Machines Corporation | Code generation relating to providing table of contents pointer values |
US10725918B2 (en) | 2017-09-19 | 2020-07-28 | International Business Machines Corporation | Table of contents cache entry having a pointer for a range of addresses |
US10620955B2 (en) | 2017-09-19 | 2020-04-14 | International Business Machines Corporation | Predicting a table of contents pointer value responsive to branching to a subroutine |
US10713050B2 (en) | 2017-09-19 | 2020-07-14 | International Business Machines Corporation | Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions |
US10884929B2 (en) | 2017-09-19 | 2021-01-05 | International Business Machines Corporation | Set table of contents (TOC) register instruction |
US11061575B2 (en) | 2017-09-19 | 2021-07-13 | International Business Machines Corporation | Read-only table of contents register |
US10705973B2 (en) | 2017-09-19 | 2020-07-07 | International Business Machines Corporation | Initializing a data structure for use in predicting table of contents pointer values |
CN109960607B (zh) * | 2017-12-22 | 2021-04-20 | 龙芯中科技术股份有限公司 | 预测栈的错误恢复方法、装置及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4831517A (en) * | 1986-10-10 | 1989-05-16 | International Business Machines Corporation | Branch and return on address instruction and methods and apparatus for implementing same in a digital data processing system |
US6157999A (en) * | 1997-06-03 | 2000-12-05 | Motorola Inc. | Data processing system having a synchronizing link stack and method thereof |
US5974543A (en) * | 1998-01-23 | 1999-10-26 | International Business Machines Corporation | Apparatus and method for performing subroutine call and return operations |
JP3513038B2 (ja) * | 1998-12-10 | 2004-03-31 | 富士通株式会社 | 命令フェッチ制御装置 |
JP3723019B2 (ja) * | 1999-09-29 | 2005-12-07 | 富士通株式会社 | サブルーチンリターン相当の命令の分岐予測を行う装置および方法 |
US6910124B1 (en) * | 2000-05-02 | 2005-06-21 | International Business Machines Corporation | Apparatus and method for recovering a link stack from mis-speculation |
US6973563B1 (en) * | 2002-01-04 | 2005-12-06 | Advanced Micro Devices, Inc. | Microprocessor including return prediction unit configured to determine whether a stored return address corresponds to more than one call instruction |
JP2007041837A (ja) * | 2005-08-03 | 2007-02-15 | Nec Electronics Corp | 命令プリフェッチ装置及び命令プリフェッチ方法 |
US7478228B2 (en) * | 2006-08-31 | 2009-01-13 | Qualcomm Incorporated | Apparatus for generating return address predictions for implicit and explicit subroutine calls |
-
2006
- 2006-11-28 US US11/563,943 patent/US7444501B2/en not_active Expired - Fee Related
-
2007
- 2007-11-27 JP JP2009539433A patent/JP2010511251A/ja active Pending
- 2007-11-27 BR BRPI0719371-8A patent/BRPI0719371A2/pt not_active Application Discontinuation
- 2007-11-27 CA CA002668584A patent/CA2668584A1/en not_active Abandoned
- 2007-11-27 CN CNA2007800414772A patent/CN101535951A/zh active Pending
- 2007-11-27 DE DE602007009861T patent/DE602007009861D1/de active Active
- 2007-11-27 EP EP07871578A patent/EP2087420B1/en not_active Not-in-force
- 2007-11-27 AT AT07871578T patent/ATE484795T1/de not_active IP Right Cessation
- 2007-11-27 WO PCT/US2007/085574 patent/WO2008067277A2/en active Application Filing
- 2007-11-27 RU RU2009124438/08A patent/RU2009124438A/ru not_active Application Discontinuation
- 2007-11-27 ES ES07871578T patent/ES2351894T3/es active Active
- 2007-11-27 KR KR1020097013467A patent/KR20090094335A/ko not_active Application Discontinuation
- 2007-11-27 MX MX2009005584A patent/MX2009005584A/es not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
WO2008067277A2 (en) | 2008-06-05 |
DE602007009861D1 (de) | 2010-11-25 |
EP2087420A2 (en) | 2009-08-12 |
EP2087420B1 (en) | 2010-10-13 |
CA2668584A1 (en) | 2008-06-05 |
WO2008067277A3 (en) | 2008-09-25 |
ATE484795T1 (de) | 2010-10-15 |
BRPI0719371A2 (pt) | 2014-02-11 |
MX2009005584A (es) | 2009-06-15 |
US20080126770A1 (en) | 2008-05-29 |
JP2010511251A (ja) | 2010-04-08 |
CN101535951A (zh) | 2009-09-16 |
KR20090094335A (ko) | 2009-09-04 |
US7444501B2 (en) | 2008-10-28 |
ES2351894T3 (es) | 2011-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2009124438A (ru) | Способы и устройство для распознавания вызова подпрограммы | |
CN104316645B (zh) | 土壤co2、ch4和n2o通量协同测定装置 | |
GB2444458A (en) | Method and system to present a preview of video content | |
CN105144122B (zh) | 外部可编程存储器管理单元 | |
AR060900A1 (es) | Sistema y metodo para detectar una parte faltante o danada de una maquina | |
DK1409984T3 (da) | Fremgangsmåder og reagenser til detektering af endotoxin | |
RU2012144643A (ru) | Использование текста оповещения о событии в качестве ввода в автоматизированный помощник | |
WO2009023331A3 (en) | Antibodies and improved test sample handling methods for use in assays for myeloperoxidase | |
MX2007005142A (es) | Metodo y sistema para optimizar el paso de metadatos en un protocolo de procesamiento de contenido de insercion. | |
TW200629069A (en) | System and method for fetching information in response to hazard indication information | |
WO2007047091A3 (en) | Method and electronic device for selective transfer of data from removable memory element | |
DE602007008080D1 (de) | Detektion von zirkulierenden endothelzellen | |
CN203695438U (zh) | 样品分类分拣仪 | |
CN202533140U (zh) | 血液分析仪试剂液面感应装置 | |
TW200641673A (en) | Method for finding function call stack in run time for a computer system | |
CN107022391B (zh) | 一种适合评价天然气脱硫剂脱硫效率的方法 | |
CN203376315U (zh) | 神经性贝类毒素酶联免疫测试管试剂盒 | |
CN203414324U (zh) | 一种气体分析仪进气系统阻水器 | |
CN204556554U (zh) | 一种压缩空气湿度的在线探测装置 | |
CN205281752U (zh) | 一种煤气报警器 | |
CN209400512U (zh) | 一种便携式农药残留检测器 | |
CN207976323U (zh) | 一种新型烟气取样装置 | |
CN202351090U (zh) | 医学检验取样装置 | |
CN201555747U (zh) | 一种去除气体采样袋采样死体积的气密装置 | |
CN209589993U (zh) | 一种便携海关食品检测笔 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FA92 | Acknowledgement of application withdrawn (lack of supplementary materials submitted) |
Effective date: 20110411 |