RU2009106463A - Эффективный механизм сохранения адреса возврата из прерывания - Google Patents

Эффективный механизм сохранения адреса возврата из прерывания Download PDF

Info

Publication number
RU2009106463A
RU2009106463A RU2009106463/08A RU2009106463A RU2009106463A RU 2009106463 A RU2009106463 A RU 2009106463A RU 2009106463/08 A RU2009106463/08 A RU 2009106463/08A RU 2009106463 A RU2009106463 A RU 2009106463A RU 2009106463 A RU2009106463 A RU 2009106463A
Authority
RU
Russia
Prior art keywords
command
pseudo
interrupt
array
conveyor
Prior art date
Application number
RU2009106463/08A
Other languages
English (en)
Other versions
RU2450329C2 (ru
Inventor
Томас Эндрю САРТОРИУС (US)
Томас Эндрю САРТОРИУС
Родни Уэйн СМИТ (US)
Родни Уэйн СМИТ
Майкл Скотт МАКИЛВЕЙН (US)
Майкл Скотт МАКИЛВЕЙН
Original Assignee
Квэлкомм Инкорпорейтед (US)
Квэлкомм Инкорпорейтед
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед (US), Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед (US)
Publication of RU2009106463A publication Critical patent/RU2009106463A/ru
Application granted granted Critical
Publication of RU2450329C2 publication Critical patent/RU2450329C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming 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)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Image Processing (AREA)

Abstract

1. Система обработки данных для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения, при этом система содержит ! логическую схему управления, выполненную с возможностью генерирования псевдокоманды в ответ на запрос на прерывание, причем псевдокоманда формируется с возможностью принуждения адреса возврата из прерывания для наиболее продвинувшейся команды в конвейере быть записанным в массив регистров общего назначения; и ! при этом псевдокоманда дополнительно формируется с возможностью включения в конвейер и прохождения по конвейеру конвейерного обрабатывающего устройства по существу аналогично другим командам. ! 2. Система обработки данных по п.1, которая дополнительно содержит ! каскад декодирования и каскад отложенной записи, причем каскад декодирования выполнен с возможностью декодирования псевдокоманды, и ! при этом каскад отложенной записи выполнен с возможностью записи результатов для псевдокоманды в массив регистров общего назначения, причем эти результаты включают в себя адрес возврата из прерывания для наиболее продвинувшейся команды. ! 3. Система обработки данных по п.2, которая дополнительно содержит устройство уплотнения, выполненное с возможностью приема псевдокоманды и подачи псевдокоманды на вход каскада декодирования. ! 4. Система обработки данных по п.3, которая дополнительно содержит ! каскад выборки, выполненный с возможностью выбора команд; и ! при этом устройство уплотнения дополнительно выполнено с возможностью приема команд от каскада выборки и псевдокоманды, причем устройство уплотнения дополнительно выполнено с возможностью выб

Claims (22)

1. Система обработки данных для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения, при этом система содержит
логическую схему управления, выполненную с возможностью генерирования псевдокоманды в ответ на запрос на прерывание, причем псевдокоманда формируется с возможностью принуждения адреса возврата из прерывания для наиболее продвинувшейся команды в конвейере быть записанным в массив регистров общего назначения; и
при этом псевдокоманда дополнительно формируется с возможностью включения в конвейер и прохождения по конвейеру конвейерного обрабатывающего устройства по существу аналогично другим командам.
2. Система обработки данных по п.1, которая дополнительно содержит
каскад декодирования и каскад отложенной записи, причем каскад декодирования выполнен с возможностью декодирования псевдокоманды, и
при этом каскад отложенной записи выполнен с возможностью записи результатов для псевдокоманды в массив регистров общего назначения, причем эти результаты включают в себя адрес возврата из прерывания для наиболее продвинувшейся команды.
3. Система обработки данных по п.2, которая дополнительно содержит устройство уплотнения, выполненное с возможностью приема псевдокоманды и подачи псевдокоманды на вход каскада декодирования.
4. Система обработки данных по п.3, которая дополнительно содержит
каскад выборки, выполненный с возможностью выбора команд; и
при этом устройство уплотнения дополнительно выполнено с возможностью приема команд от каскада выборки и псевдокоманды, причем устройство уплотнения дополнительно выполнено с возможностью выбора или выбранной команды или псевдокоманды для подачи на вход каскада декодирования.
5. Система обработки данных по п.1, которая дополнительно содержит
множество регистров общего назначения.
6. Система обработки данных по п.1, в которой устройство генерирования псевдокоманды является резидентной частью модуля управления обрабатывающего устройства.
7. Система обработки данных по п.4, которая дополнительно содержит модуль памяти, выполненный с возможностью сохранения данных команд, которые будут обрабатываться обрабатывающим устройством, причем память связана с каскадом выборки.
8. Устройство для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения, при этом устройство содержит
конвейерное обрабатывающее устройство, имеющее устройство генерирования псевдокоманд, выполненное с возможностью генерирования псевдокоманды в ответ на запрос на прерывание, причем псевдокоманда формируется с возможностью принуждения адреса возврата из прерывания для наиболее продвинувшейся команды в конвейере быть записанным в массив регистров общего назначения, причем обрабатывающее устройство включает в себя множество регистров общего назначения; и
при этом псевдокоманда дополнительно формируется с возможностью включения в конвейер и прохождения по конвейеру конвейерного обрабатывающего устройства по существу аналогично другим командам.
9. Устройство по п.8, которое дополнительно содержит
каскад декодирования и каскад отложенной записи, причем каскад декодирования выполнен с возможностью декодирования псевдокоманды, и
при этом каскад отложенной записи выполнен с возможностью записи результатов для псевдокоманды в массив регистров общего назначения, причем эти результаты включают в себя адрес возврата из прерывания для самой новой не полностью обработанной команды; и
при этом псевдокоманда подается на вход каскада декодирования.
10. Устройство по п.9, которое дополнительно содержит устройство уплотнения, выполненное с возможностью приема псевдокоманды и подачи псевдокоманды на вход каскада декодирования.
11. Устройство по п.10, которое дополнительно содержит
каскад выборки, выполненный с возможностью выбора команд; и
при этом устройство уплотнения дополнительно выполнено с возможностью приема команд от каскада выборки и псевдокоманды, причем устройство уплотнения дополнительно выполнено с возможностью выбора или выбранной команды или псевдокоманды для подачи на вход каскада декодирования.
12. Устройство по п.10, в котором обрабатывающее устройство дополнительно выполнено с возможностью выполнения обработки прерывания в ответ на запрос на прерывание; и записи адреса возврата из прерывания для самой новой не полностью обработанной команды в массив регистров общего назначения.
13. Устройство по п.12, в котором обрабатывающее устройство дополнительно выполнено с возможностью возобновления обработки по адресу возврата из прерывания, который был записан в массив регистров общего назначения.
14. Способ эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения в конвейерном обрабатывающем устройстве, при этом способ содержит этап, на котором
в ответ на запрос на прерывание, генерируют псевдокоманду, выполненную с возможностью принуждения адреса возврата из прерывания для наиболее продвинувшейся команды в конвейере быть записанным в массив регистров общего назначения; и
при этом псевдокоманду дополнительно формируют с возможностью включения в конвейер и прохождения по конвейеру конвейерного обрабатывающего устройства по существу аналогично другим командам.
15. Способ по п.14, который дополнительно содержит этапы, на которых
выполняют обработку прерывания в ответ на запрос на прерывание; и
записывают адреса возврата для самой новой не полностью обработанной команды в массив регистров общего назначения.
16. Способ по п.15, который дополнительно содержит этап, на котором
возобновляют обработку по адресу возврата из прерывания, который был записан в массив регистров общего назначения.
17. Способ по п.14, в котором псевдокоманду генерируют посредством логической схемы управления в обрабатывающем устройстве.
18. Способ по п.14, в котором конвейерное обрабатывающее устройство содержит
каскад декодирования и каскад отложенной записи, причем каскад декодирования выполнен с возможностью декодирования псевдокоманды, и
при этом каскад отложенной записи выполнен с возможностью записи результатов для псевдокоманды в массив регистров общего назначения, причем эти результаты включают в себя адрес возврата из прерывания для наиболее продвинувшейся команды; и
при этом псевдокоманду подают на вход каскада декодирования.
19. Способ по п.18, в котором обрабатывающее устройство дополнительно содержит устройство уплотнения, выполненное с возможностью приема псевдокоманды и подачи псевдокоманды на вход каскада декодирования.
20. Способ по п.19, в котором обрабатывающее устройство дополнительно содержит
каскад выборки, выполненный с возможностью выбора команд; и
при этом устройство уплотнения дополнительно выполнено с возможностью приема как команд от каскада выборки, так и псевдокоманды, причем устройство уплотнения дополнительно выполнено с возможностью выбора или выбранной команды или псевдокоманды для подачи на вход каскада декодирования.
21. Способ по п.14, в котором обрабатывающее устройство дополнительно содержит множество регистров общего назначения.
22. Устройство для эффективного сохранения адреса возврата из прерывания в массиве регистров общего назначения, при этом устройство содержит
многокаскадное конвейерное обрабатывающее устройство, выполненное с возможностью выполнения обработки прерываний, причем каскады включают в себя, по меньшей мере, один каскад, выполненный с возможностью приема команд и, по меньшей мере, один каскад, выполненный с возможностью отложенной записи результатов в массив регистров общего назначения, при этом обрабатывающее устройство дополнительно выполнено с возможностью выполнения обработки данных команд из программы;
логическую схему управления, выполненную с возможностью генерирования псевдокоманды в ответ на запрос на прерывание, причем псевдокоманда формируется с возможностью принуждения адреса возврата из прерывания для наиболее продвинувшейся команды в конвейере быть записанным в массив регистров общего назначения, и при этом псевдокоманда дополнительно формируется с возможностью включения в конвейер и прохождения по конвейеру по существу аналогично другим командам.
устройство уплотнения, выполненное с возможностью приема как псевдокоманды от логической схемы управления, так и данных команд из программы, при этом устройство уплотнения дополнительно выполнено с возможностью выбора, по меньшей мере, или псевдокоманды, или данных команд, и подачи выбранной псевдокоманды или данных команд на вход, по меньшей мере, одного конвейерного каскада, выполненного с возможностью приема команд;
при этом обрабатывающее устройство дополнительно выполнено с возможностью возобновления, после осуществления обработки прерывания, обработки данных команд по адресу возврата из прерывания для наиболее продвинувшейся команды, который был записан в массив регистров общего назначения.
RU2009106463/08A 2006-07-25 2007-07-24 Эффективный механизм сохранения адреса возврата из прерывания RU2450329C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/459,695 US7681022B2 (en) 2006-07-25 2006-07-25 Efficient interrupt return address save mechanism
US11/459,695 2006-07-25

Publications (2)

Publication Number Publication Date
RU2009106463A true RU2009106463A (ru) 2010-08-27
RU2450329C2 RU2450329C2 (ru) 2012-05-10

Family

ID=38667151

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009106463/08A RU2450329C2 (ru) 2006-07-25 2007-07-24 Эффективный механизм сохранения адреса возврата из прерывания

Country Status (10)

Country Link
US (1) US7681022B2 (ru)
EP (1) EP2044508A1 (ru)
JP (2) JP5528804B2 (ru)
KR (1) KR101077425B1 (ru)
CN (1) CN101495960B (ru)
BR (1) BRPI0714128A2 (ru)
CA (1) CA2657168C (ru)
MX (1) MX2009000728A (ru)
RU (1) RU2450329C2 (ru)
WO (1) WO2008014287A1 (ru)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681022B2 (en) * 2006-07-25 2010-03-16 Qualcomm Incorporated Efficient interrupt return address save mechanism
CN102364432B (zh) * 2011-10-25 2013-12-18 中国科学院苏州纳米技术与纳米仿生研究所 使用双程序计数器计算待处理指令地址的系统
US10360593B2 (en) * 2012-04-24 2019-07-23 Qualcomm Incorporated Retail proximity marketing
KR20170065845A (ko) 2015-12-04 2017-06-14 삼성전자주식회사 프로세서 및 제어 방법
US11003457B2 (en) * 2019-01-23 2021-05-11 Mediatek Inc. Power-saving mechanism for memory sub-system in pipelined processor
CN112883370B (zh) * 2019-11-29 2022-12-20 北京三快在线科技有限公司 应用程序状态检测方法和装置、存储介质和电子设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS564844A (en) * 1979-06-26 1981-01-19 Nec Corp Information processor
JP2509244B2 (ja) * 1987-09-14 1996-06-19 富士通株式会社 分岐命令処理装置
JPH076037A (ja) * 1993-06-16 1995-01-10 Matsushita Electric Ind Co Ltd 命令解読装置
US5440703A (en) * 1993-09-20 1995-08-08 International Business Machines Corporation System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
US5701493A (en) * 1995-08-03 1997-12-23 Advanced Risc Machines Limited Exception handling method and apparatus in data processing systems
JPH09198257A (ja) * 1996-01-19 1997-07-31 Sanyo Electric Co Ltd プログラム実行方法およびこの方法を用いたプログラム実行装置
US6381692B1 (en) * 1997-07-16 2002-04-30 California Institute Of Technology Pipelined asynchronous processing
US6076159A (en) * 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline
TW436693B (en) * 1998-08-18 2001-05-28 Ind Tech Res Inst Interrupt control device and method for pipeline processor
JP2000207202A (ja) * 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US6301650B1 (en) * 1998-10-29 2001-10-09 Pacific Design, Inc. Control unit and data processing system
US6789184B1 (en) * 2000-09-29 2004-09-07 Intel Corporation Instruction address generation and tracking in a pipelined processor
GB2369464B (en) * 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
DE60201511T2 (de) * 2001-02-06 2005-10-20 Adelante Technologies B.V. Verfahren, system und computerprogrammprodukt zum manipulieren eines anweisungsflusses in einer pipeline eines prozessors
JP3856737B2 (ja) * 2002-07-19 2006-12-13 株式会社ルネサステクノロジ データ処理装置
US7765388B2 (en) * 2003-09-17 2010-07-27 Broadcom Corporation Interrupt verification support mechanism
US20050010577A1 (en) 2003-07-11 2005-01-13 Microsoft Corporation Method and apparatus for generating Web content
CN100545804C (zh) * 2003-08-18 2009-09-30 上海海尔集成电路有限公司 一种基于cisc结构的微控制器及其指令集的实现方法
US20050273776A1 (en) * 2004-06-08 2005-12-08 Intel Corporation Assembler supporting pseudo registers to resolve return address ambiguity
US7681022B2 (en) * 2006-07-25 2010-03-16 Qualcomm Incorporated Efficient interrupt return address save mechanism

Also Published As

Publication number Publication date
JP5837033B2 (ja) 2015-12-24
JP2014099192A (ja) 2014-05-29
KR20090042283A (ko) 2009-04-29
CN101495960A (zh) 2009-07-29
KR101077425B1 (ko) 2011-10-26
EP2044508A1 (en) 2009-04-08
JP2009545079A (ja) 2009-12-17
MX2009000728A (es) 2009-02-04
CN101495960B (zh) 2012-08-29
WO2008014287A1 (en) 2008-01-31
US20080028194A1 (en) 2008-01-31
US7681022B2 (en) 2010-03-16
CA2657168C (en) 2010-12-07
RU2450329C2 (ru) 2012-05-10
JP5528804B2 (ja) 2014-06-25
CA2657168A1 (en) 2008-01-31
BRPI0714128A2 (pt) 2012-12-25

Similar Documents

Publication Publication Date Title
RU2009106463A (ru) Эффективный механизм сохранения адреса возврата из прерывания
EP2087420B1 (en) Methods and apparatus for recognizing a subroutine call
JPH08263287A (ja) 思惑命令の例外処理
TW201614510A (en) Memory device, method, and computer program product
JP2008515064A5 (ru)
US11231933B2 (en) Processor with variable pre-fetch threshold
JP2010526392A (ja) システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法
JP2009059246A (ja) マイクロプロセッサ
GB2293670A (en) Instruction cache
JP2005182659A (ja) Vliw型dsp,及びその動作方法
TW201543213A (zh) 記憶體系統及記憶體控制方法
JP2007220099A (ja) 分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路
WO2006120408A3 (en) Memory caching in data processing
WO2006136943A3 (en) High-level language processor apparatus and method
WO2004034252A3 (en) Vliw processor with instruction address modification
US7983894B2 (en) Data processing
US8125489B1 (en) Processing pipeline with latency bypass
US20220308888A1 (en) Method for reducing lost cycles after branch misprediction in a multi-thread microprocessor
US20220308887A1 (en) Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor
KR20140111416A (ko) 정적 스케쥴 프로세서의 논블로킹 실행 장치 및 방법
US9323536B2 (en) Identification of missing call and return instructions for management of a return address stack
JPH05298097A (ja) 情報処理装置
TWI509509B (zh) 資料儲存方法與應用其之處理器
US10671396B2 (en) Method for operating a processing unit
US20140372735A1 (en) Software controlled instruction prefetch buffering

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20180725