RU2003115617A - Способ и устройство обработки данных для сохранения возвратного состояния - Google Patents
Способ и устройство обработки данных для сохранения возвратного состоянияInfo
- Publication number
- RU2003115617A RU2003115617A RU2003115617/09A RU2003115617A RU2003115617A RU 2003115617 A RU2003115617 A RU 2003115617A RU 2003115617/09 A RU2003115617/09 A RU 2003115617/09A RU 2003115617 A RU2003115617 A RU 2003115617A RU 2003115617 A RU2003115617 A RU 2003115617A
- Authority
- RU
- Russia
- Prior art keywords
- data processing
- stack
- mode
- return state
- processor
- Prior art date
Links
- 230000000875 corresponding Effects 0.000 claims 9
- 238000004590 computer program Methods 0.000 claims 2
Claims (18)
1. Устройство обработки данных, содержащее процессор для выполнения команд обработки данных, имеющий несколько режимов функционирования, каждый из которых имеет соответствующий стек для хранения данных, соответствующих этому режиму, причем процессор выполнен с возможностью записей в зависимости от команды обработки данных возвратного состояния данных возвратного состояния процессора из текущего режима функционирования в стек, соответствующий режиму функционирования, отличному от текущего режима функционирования, при этом оставаясь в текущем режиме функционирования.
2. Устройство обработки данных по п.1, в котором команда обработки данных возвратного состояния вызывается при возникновении исключительной ситуации.
3. Устройство обработки данных по п.2, в котором исключительной ситуацией является любая исключительная ситуация из предварительно определенного множества исключительных ситуаций.
4. Устройство обработки данных по п.3, в котором предварительно определенное множество исключительных ситуаций включает в себя одно или большее количество прерываний.
5. Устройство обработки данных по любому из предыдущих пунктов, дополнительно содержащее множество регистров, включающее в себя несколько регистров возвратного состояния для сохранения данных возвратного состояния процессора для каждого режима функционирования, причем процессор выполнен с возможностью доступа только к регистрам возвратного состояния, содержащим данные возвратного состояния процессора, из текущего режима функционирования.
6. Устройство обработки данных по любому из предыдущих пунктов, в котором каждый стек имеет соответствующий ему указатель стека, идентифицирующий местоположение внутри стека, причем указатель стека для определенного стека является доступным только из соответствующего режима функционирования.
7. Устройство обработки данных по пп.5 и 6, в котором множество регистров включает в себя несколько регистров указателя стека для сохранения указателей стека для каждого стека, причем процессор выполнен с возможностью доступа только к регистру указателя стека, содержащему указатель стека для стека, соответствующего текущему режиму функционирования.
8. Устройство обработки данных по любому из предыдущих пунктов, в котором команда обработки данных возвратного состояния содержит поле идентификатора стека для идентификации стека, в который будут записаны данные возвратного состояния процессора.
9. Устройство обработки данных по п.8, в котором поле идентификатора стека предназначено для определения указателя стека для стека, в который будут записаны данные возвратного состояния процессора, с возможностью доступа процессора к соответствующему местоположению в указанном стеке при записи в указанный стек данных возвратного состояния.
10. Устройство обработки данных по п.9, в котором команда обработки данных возвратного состояния содержит факультативное поле обновления, которое устанавливается для указания необходимости обновления указателя стека при записи в стек данных возвратного состояния.
11. Устройство обработки данных по любому из пп.8-10, в котором команда обработки данных возвратного состояния содержит поле режима адресации для идентификации режима адресации стека, в который будут записаны данные возвратного состояния.
12. Устройство обработки данных по любому из пп.8-11, в котором команда обработки данных возвратного состояния содержит поле условия для определения условия выполнения команды обработки данных возвратного состояния, так чтобы команда обработки данных возвратного состояния выполнялась процессором только при выполнении указанного условия.
13. Устройство обработки данных по любому из предыдущих пунктов, в котором текущим режимом функционирования является режим исключительной ситуации, а отличным режимом функционирования является привилегированный режим функционирования.
14. Устройство обработки данных по любому из предыдущих пунктов, в котором текущим режимом функционирования является режим исключительной ситуации, а отличным режимом функционирования является режим функционирования процессора до входа в режим исключительной ситуации.
15. Устройство обработки данных по любому из предыдущих пунктов, в котором данные возвратного состояния содержат сохраненный счетчик команд и сохраненное состояние процессора.
16. Способ функционирования устройства обработки данных, содержащий процессор для выполнения команд обработки данных, который имеет несколько режимов функционирования, каждый режим функционирования имеет соответствующий стек для сохранения данных, соответствующих этому режиму, при этом способ включает в себя этап, согласно которому в зависимости от команды обработки данных возвратного состояния производят вызов записи процессором данных возвратного состояния процессора из текущего режима функционирования в стек, соответствующий режиму функционирования, отличному от текущего режима функционирования, при этом оставаясь в текущем режиме функционирования.
17. Компьютерная программа, функционирующая для конфигурирования устройства обработки данных для выполнения способа по п.16.
18. Программоноситель, содержащий компьютерную программу по п.17.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0028869.6 | 2000-11-27 | ||
GB0028869A GB2369464B (en) | 2000-11-27 | 2000-11-27 | A data processing apparatus and method for saving return state |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2003115617A true RU2003115617A (ru) | 2004-10-10 |
RU2275679C2 RU2275679C2 (ru) | 2006-04-27 |
Family
ID=9903938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2003115617/09A RU2275679C2 (ru) | 2000-11-27 | 2001-09-24 | Способ и устройство обработки данных для сохранения возвратного состояния |
Country Status (13)
Country | Link |
---|---|
US (1) | US6904517B2 (ru) |
EP (1) | EP1337918B1 (ru) |
JP (2) | JP5295475B2 (ru) |
KR (1) | KR100848603B1 (ru) |
CN (1) | CN1227589C (ru) |
AU (1) | AU2001287927A1 (ru) |
DE (1) | DE60139567D1 (ru) |
GB (1) | GB2369464B (ru) |
IL (2) | IL155407A0 (ru) |
MY (1) | MY127357A (ru) |
RU (1) | RU2275679C2 (ru) |
TW (1) | TW556093B (ru) |
WO (1) | WO2002042914A1 (ru) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100584964B1 (ko) * | 1996-01-24 | 2006-05-29 | 선 마이크로시스템즈 인코퍼레이티드 | 스택 메모리 구조에서의 캐싱 장치 |
US6880030B2 (en) * | 2000-12-13 | 2005-04-12 | Wind River Systems, Inc. | Unified exception handling for hierarchical multi-interrupt architectures |
US7313797B2 (en) * | 2002-09-18 | 2007-12-25 | Wind River Systems, Inc. | Uniprocessor operating system design facilitating fast context switching |
US7496896B2 (en) * | 2003-07-17 | 2009-02-24 | Computer Associates Think, Inc. | Accessing return values and exceptions |
CN100535862C (zh) * | 2004-11-30 | 2009-09-02 | 皇家飞利浦电子股份有限公司 | 优先化任务之间的有效切换 |
US7853960B1 (en) | 2005-02-25 | 2010-12-14 | Vmware, Inc. | Efficient virtualization of input/output completions for a virtual device |
US7877629B2 (en) * | 2005-06-01 | 2011-01-25 | Sanmina-Sci | Facilitating handling of exceptions in a program implementing a M-on-N threading model |
TW200719141A (en) * | 2005-11-07 | 2007-05-16 | Cheertek Inc | Flash memory access method and circuit of an embedded system |
JP4961781B2 (ja) * | 2006-03-14 | 2012-06-27 | ソニー株式会社 | 情報処理装置、その起動方法およびプログラム |
US7797681B2 (en) * | 2006-05-11 | 2010-09-14 | Arm Limited | Stack memory selection upon exception in a data processing system |
US7681022B2 (en) * | 2006-07-25 | 2010-03-16 | Qualcomm Incorporated | Efficient interrupt return address save mechanism |
EP2150889A1 (en) * | 2007-04-10 | 2010-02-10 | Cambridge Consultants Limited | Data processing apparatus |
US7979685B1 (en) | 2007-11-27 | 2011-07-12 | Oracle America, Inc. | Multiple instruction execution mode resource-constrained device |
WO2010004245A1 (en) * | 2008-07-10 | 2010-01-14 | Cambridge Consultants Limited | Processor with push instruction |
US7853827B2 (en) * | 2008-08-29 | 2010-12-14 | International Business Machines Corporation | Isotropic processor |
GB2478733B (en) | 2010-03-15 | 2013-08-14 | Advanced Risc Mach Ltd | Apparatus and method for handling exception events |
US20120054773A1 (en) * | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Processor support for secure device driver architecture |
US9405637B2 (en) | 2011-01-18 | 2016-08-02 | Texas Instruments Incorporated | Locking/unlocking CPUs to operate in safety mode or performance mode without rebooting |
US9477834B2 (en) * | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US10210349B2 (en) | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and less secure domain |
US9213828B2 (en) | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
GB2499287A (en) * | 2012-02-08 | 2013-08-14 | Advanced Risc Mach Ltd | Exception handling in data processing with different security domains |
US9202071B2 (en) | 2012-02-08 | 2015-12-01 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9672164B2 (en) | 2012-05-31 | 2017-06-06 | Nxp Usa, Inc. | Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address |
CN103268145B (zh) * | 2013-03-06 | 2016-08-17 | 上海云间半导体科技有限公司 | 用于保存访存指令的虚拟地址的方法 |
GB2538091B (en) * | 2015-05-07 | 2018-03-14 | Advanced Risc Mach Ltd | Verifying correct code execution context |
GB2543306B (en) * | 2015-10-14 | 2019-05-01 | Advanced Risc Mach Ltd | Exception handling |
CN109409086B (zh) * | 2018-09-21 | 2021-04-13 | 中国科学院信息工程研究所 | 基于新增指令的检测堆栈中返回地址被篡改的装置 |
CN109409083B (zh) * | 2018-09-21 | 2021-04-13 | 中国科学院信息工程研究所 | 检测堆栈中返回地址被篡改的装置 |
CN115080122A (zh) * | 2022-07-22 | 2022-09-20 | 飞腾信息技术有限公司 | 处理器、用于保存和恢复上下文数据的装置、方法及芯片 |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3889243A (en) | 1973-10-18 | 1975-06-10 | Ibm | Stack mechanism for a data processor |
US4236204A (en) | 1978-03-13 | 1980-11-25 | Motorola, Inc. | Instruction set modifier register |
US4587632A (en) | 1980-05-27 | 1986-05-06 | At&T Bell Laboratories | Lookahead stack oriented computer |
US4922414A (en) | 1982-12-17 | 1990-05-01 | Symbolics Inc. | Symbolic language data processing system |
US4926322A (en) * | 1987-08-03 | 1990-05-15 | Compag Computer Corporation | Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management |
DE3726192A1 (de) | 1987-08-06 | 1989-02-16 | Otto Mueller | Stacksteuerung |
JPH01258040A (ja) * | 1988-04-07 | 1989-10-16 | Fujitsu Ltd | スタック情報の退避,復元処理方式 |
US5136696A (en) | 1988-06-27 | 1992-08-04 | Prime Computer, Inc. | High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions |
US5440749A (en) | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
JP3212656B2 (ja) * | 1991-02-08 | 2001-09-25 | 株式会社日立製作所 | データ処理システム及びマイクロコンピュータ |
US5303378A (en) * | 1991-05-21 | 1994-04-12 | Compaq Computer Corporation | Reentrant protected mode kernel using virtual 8086 mode interrupt service routines |
JP2585905B2 (ja) * | 1991-10-18 | 1997-02-26 | 松下電器産業株式会社 | マルチタスク実行装置 |
US5640548A (en) * | 1992-10-19 | 1997-06-17 | Motorola, Inc. | Method and apparatus for unstacking registers in a data processing system |
US5455775A (en) | 1993-01-25 | 1995-10-03 | International Business Machines Corporation | Computer design system for mapping a logical hierarchy into a physical hierarchy |
GB2289353B (en) | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Data processing with multiple instruction sets |
US5638525A (en) | 1995-02-10 | 1997-06-10 | Intel Corporation | Processor capable of executing programs that contain RISC and CISC instructions |
US5752035A (en) | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
US5619665A (en) | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
US5838948A (en) | 1995-12-01 | 1998-11-17 | Eagle Design Automation, Inc. | System and method for simulation of computer systems combining hardware and software interaction |
KR100618756B1 (ko) | 1996-01-24 | 2007-05-04 | 선 마이크로시스템즈 인코퍼레이티드 | 네트워크또는로컬메모리로부터수신된명령세트를실행하는프로세서및컴퓨터시스템 |
US6038643A (en) | 1996-01-24 | 2000-03-14 | Sun Microsystems, Inc. | Stack management unit and method for a processor having a stack |
US6014723A (en) | 1996-01-24 | 2000-01-11 | Sun Microsystems, Inc. | Processor with accelerated array access bounds checking |
WO1997027536A1 (en) | 1996-01-24 | 1997-07-31 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
US5742802A (en) | 1996-02-16 | 1998-04-21 | International Business Machines Corporation | Method and system for efficiently mapping guest instruction in an emulation assist unit |
US5761491A (en) * | 1996-04-15 | 1998-06-02 | Motorola Inc. | Data processing system and method for storing and restoring a stack pointer |
US6031992A (en) | 1996-07-05 | 2000-02-29 | Transmeta Corporation | Combining hardware and software to provide an improved microprocessor |
JPH10105415A (ja) * | 1996-09-25 | 1998-04-24 | Nippon Denki Micom Technol Kk | リアルタイムos |
US5926832A (en) | 1996-09-26 | 1999-07-20 | Transmeta Corporation | Method and apparatus for aliasing memory data in an advanced microprocessor |
EP0938703B1 (en) | 1996-11-13 | 2003-07-02 | Paran, Arik | Real time program language accelerator |
US5937193A (en) | 1996-11-27 | 1999-08-10 | Vlsi Technology, Inc. | Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof |
US5953741A (en) | 1996-11-27 | 1999-09-14 | Vlsi Technology, Inc. | Stack cache for stack-based processor and method thereof |
US6003038A (en) * | 1997-03-31 | 1999-12-14 | Sun Microsystems, Inc. | Object-oriented processor architecture and operating method |
US6009499A (en) | 1997-03-31 | 1999-12-28 | Sun Microsystems, Inc | Pipelined stack caching circuit |
US5875336A (en) | 1997-03-31 | 1999-02-23 | International Business Machines Corporation | Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system |
US6088786A (en) | 1997-06-27 | 2000-07-11 | Sun Microsystems, Inc. | Method and system for coupling a stack based processor to register based functional unit |
US5892966A (en) | 1997-06-27 | 1999-04-06 | Sun Microsystems, Inc. | Processor complex for executing multimedia functions |
US6003126A (en) | 1997-07-01 | 1999-12-14 | International Business Machines | Special instruction register including allocation field utilized for temporary designation of physical registers as general registers |
US6317872B1 (en) | 1997-07-11 | 2001-11-13 | Rockwell Collins, Inc. | Real time processor optimized for executing JAVA programs |
WO1999018486A2 (en) | 1997-10-02 | 1999-04-15 | Koninklijke Philips Electronics N.V. | Data processing device for processing virtual machine instructions |
EP1359501A3 (en) | 1997-10-02 | 2007-11-21 | Koninklijke Philips Electronics N.V. | A processing device for executing virtual machine instructions |
US6009509A (en) | 1997-10-08 | 1999-12-28 | International Business Machines Corporation | Method and system for the temporary designation and utilization of a plurality of physical registers as a stack |
US6000029A (en) | 1997-11-03 | 1999-12-07 | Motorola, Inc. | Method and apparatus for affecting subsequent instruction processing in a data processor |
JPH11143732A (ja) * | 1997-11-06 | 1999-05-28 | Hitachi Ltd | マイクロコンピュータ及びエミュレータ |
US6070173A (en) | 1997-11-26 | 2000-05-30 | International Business Machines Corporation | Method and apparatus for assisting garbage collection process within a java virtual machine |
US6122638A (en) | 1997-11-26 | 2000-09-19 | International Business Machines Corporation | Object-oriented processor and method for caching intermediate data in an object-oriented processor |
US6148391A (en) | 1998-03-26 | 2000-11-14 | Sun Microsystems, Inc. | System for simultaneously accessing one or more stack elements by multiple functional units using real stack addresses |
US6374286B1 (en) | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
FR2779842B1 (fr) * | 1998-06-15 | 2001-07-13 | Schlumberger Ind Sa | Procede de gestion de l'execution d'un programme dans un dispositif a circuit integre |
US6338134B1 (en) | 1998-12-29 | 2002-01-08 | International Business Machines Corporation | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data |
JP4072271B2 (ja) * | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
-
2000
- 2000-11-27 GB GB0028869A patent/GB2369464B/en not_active Expired - Lifetime
-
2001
- 2001-09-24 KR KR1020037007021A patent/KR100848603B1/ko active IP Right Grant
- 2001-09-24 DE DE60139567T patent/DE60139567D1/de not_active Expired - Lifetime
- 2001-09-24 JP JP2002545371A patent/JP5295475B2/ja not_active Expired - Lifetime
- 2001-09-24 WO PCT/GB2001/004252 patent/WO2002042914A1/en active Application Filing
- 2001-09-24 RU RU2003115617/09A patent/RU2275679C2/ru not_active IP Right Cessation
- 2001-09-24 AU AU2001287927A patent/AU2001287927A1/en not_active Abandoned
- 2001-09-24 EP EP01967554A patent/EP1337918B1/en not_active Expired - Lifetime
- 2001-09-24 CN CNB018194648A patent/CN1227589C/zh not_active Expired - Lifetime
- 2001-10-24 TW TW090126321A patent/TW556093B/zh not_active IP Right Cessation
- 2001-10-25 MY MYPI20014955A patent/MY127357A/en unknown
- 2001-11-02 US US09/985,268 patent/US6904517B2/en not_active Expired - Lifetime
-
2002
- 2002-09-24 IL IL15540702A patent/IL155407A0/xx active IP Right Grant
-
2003
- 2003-04-13 IL IL155407A patent/IL155407A/en unknown
-
2011
- 2011-07-19 JP JP2011158231A patent/JP2011216118A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2003115617A (ru) | Способ и устройство обработки данных для сохранения возвратного состояния | |
US5812868A (en) | Method and apparatus for selecting a register file in a data processing system | |
KR870011524A (ko) | 마이크로프로세서칩의 스택프레임캐시 | |
US7941652B2 (en) | Apparatus and computer program product for implementing atomic data tracing | |
RU98113914A (ru) | Способ и устройство для выполнения команд с плавающей запятой и упакованных данных, используя одиночный файл регистра | |
KR940015852A (ko) | 긴 명령 워드를 갖는 처리기 | |
US7523446B2 (en) | User-space return probes | |
US7870541B1 (en) | Context tracing for software with a frame pointer and a stack pointer and with a stack pointer but without a frame pointer | |
US20110173613A1 (en) | Virtual Machine Control Structure Identification Decoder | |
ATE381057T1 (de) | Hidden-job-startpräperation in einem anweisungsparallelen prozessorsystem | |
EP1125199B1 (en) | Method of debugging a program thread | |
KR880014471A (ko) | 가상 머신 시스템용의 게스트 머신 실행 제어시스템 | |
JPH0916409A (ja) | マイクロコンピュータ | |
DE60102777D1 (de) | Vorrichtung und verfahren zur verminderung von datenschreibverkehr in prozessoren mit ausnahmeroutinen | |
JP2002157115A5 (ru) | ||
JP2000339189A (ja) | 不正なメモリアクセスを検出する方法、デバッグ装置および記録媒体 | |
US20090241111A1 (en) | Recording medium having instruction log acquiring program recorded therein and virtual computer system | |
JP2002149444A (ja) | ソフトウェア試験システム及びソフトウェア試験方法及びソフトウェア試験方法を計算機で実現するためのプログラムを記録した計算機で読み取り可能なプログラム記録媒体及びソフトウェア試験方法を計算機で実現するためのプログラム | |
JPS60238948A (ja) | 計算機システムの処理時間測定装置 | |
JP2798275B2 (ja) | 仮想記憶アドレス空間アクセス制御方式 | |
US7281166B1 (en) | User-customizable input error handling | |
JP2980327B2 (ja) | 命令処理装置 | |
Yang et al. | A RISC-V On-chip Operating System Based on Rust | |
KR920008597A (ko) | 마이크로 컴퓨터 | |
CN117215649A (zh) | 系统寄存器访问方法、装置、设备及存储介质 |