DE03012184T1 - Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors - Google Patents

Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors Download PDF

Info

Publication number
DE03012184T1
DE03012184T1 DE03012184T DE03012184T DE03012184T1 DE 03012184 T1 DE03012184 T1 DE 03012184T1 DE 03012184 T DE03012184 T DE 03012184T DE 03012184 T DE03012184 T DE 03012184T DE 03012184 T1 DE03012184 T1 DE 03012184T1
Authority
DE
Germany
Prior art keywords
code
area
pointer
variable
program
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.)
Pending
Application number
DE03012184T
Other languages
English (en)
Inventor
Ryuji Fukuoka-Ken Fuchikami
Tomonori Fukuoka-Shi Yonezawa
Hiroki Ohtsuki
Yoshiteru Tanaka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE03012184T1 publication Critical patent/DE03012184T1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Prozessor mit
einer Befehlsverarbeitungseinheit (1), die so betreibbar ist, dass sie ein Programm in einer Speichereinheit (30) liest, um das Programm in der Speichereinheit (30) abzuarbeiten;
einem Adressregister (3), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es die absolute Adresse eines Zeigers in dem Programm speichert;
einem Bereichsinformationsregister (4), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es den Zeiger betreffende Bereichsinformationen unter Verwendung der absoluten Adresse speichert; und
einer Ausnahme-Erzeugungseinheit (7), die so betreibbar ist, dass sie das Ausgangssignal der Befehlsverarbeitungseinheit (1) und die Bereichsinformationen in das Bereichsinformationsregister (4) eingibt und ein Ausnahmesignal an die Befehlsverarbeitungseinheit (1) ausgibt, wenn die Befehlsverarbeitungseinheit (1) im Falle einer Bereichsverletzung der Speichereinheit (30) unter Verwendung des das Adressregister betreffenden Zeigers auf die Speichereinheit (30) zugreift.

Claims (22)

  1. Prozessor mit einer Befehlsverarbeitungseinheit (1), die so betreibbar ist, dass sie ein Programm in einer Speichereinheit (30) liest, um das Programm in der Speichereinheit (30) abzuarbeiten; einem Adressregister (3), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es die absolute Adresse eines Zeigers in dem Programm speichert; einem Bereichsinformationsregister (4), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es den Zeiger betreffende Bereichsinformationen unter Verwendung der absoluten Adresse speichert; und einer Ausnahme-Erzeugungseinheit (7), die so betreibbar ist, dass sie das Ausgangssignal der Befehlsverarbeitungseinheit (1) und die Bereichsinformationen in das Bereichsinformationsregister (4) eingibt und ein Ausnahmesignal an die Befehlsverarbeitungseinheit (1) ausgibt, wenn die Befehlsverarbeitungseinheit (1) im Falle einer Bereichsverletzung der Speichereinheit (30) unter Verwendung des das Adressregister betreffenden Zeigers auf die Speichereinheit (30) zugreift.
  2. Prozessor mit einer Befehlsverarbeitungseinheit (1), die so betreibbar ist, dass sie ein Programm in einer Speichereinheit (30) liest, um das Programm in der Speichereinheit (30) abzuarbeiten; einem Programmschrittzähler (5), der so betreibbar ist, dass er von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass er einen Ausführungsadresswert des Programms speichert; einem Bereichsinformationsregister (4), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es Bereichsinformationen speichert, die den Ausführungsadresswert des Programms betreffen; und einer Ausnahme-Erzeugungseinheit (7), die so betreibbar ist, dass sie diesen neuen Ausführungsadresswert und die Bereichsinformationen in das Bereichsinformationsregister (4) eingibt, wenn die Befehlsverarbeitungseinheit (1) einen neuen Ausführungsadresswert speichert, und dass sie im Falle einer Bereichsverletzung ein Ausnahmesignal an die Befehlsverarbeitungseinheit (1) ausgibt.
  3. Prozessor mit einer Befehlsverarbeitungseinheit (1), die so betreibbar ist, dass sie ein Programm in einer Speichereinheit (30) liest, um das Programm in der Speichereinheit (30) abzuarbeiten; einem Adressregister (3), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es die absolute Adresse eines Zeigers in dem Programm speichert; einem ersten Bereichsinformationsregister (4), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es den Zeiger betreffende Bereichsinformationen unter Verwendung der absoluten Adresse speichert; einer ersten Ausnahme-Erzeugungseinheit (7), die so betreibbar ist, dass sie das Ausgangssignal der Befehlsverarbeitungseinheit (1) und die Bereichsinformationen in das erste Bereichsinformationsregister (4) eingibt, wenn die Befehlsverarbeitungseinheit (1) auf die Speichereinheit (30) zugreift, und dass sie im Falle einer Bereichsverletzung der Speichereinheit (30) ein erstes Ausnahmesignal an die Befehlsverarbeitungseinheit (1) ausgibt; einem Programmschrittzähler (5), der so betreibbar ist, dass er von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass er einen Ausführungsadresswert des Programms speichert; einem zweiten Bereichsinformationsregister (8), das so betreibbar ist, dass es von der Befehlsverarbeitungseinheit (1) gelesen und geschrieben wird und dass es Bereichsinformationen speichert, die den Ausführungsadresswert des Programms betreffen; und einer zweiten Ausnahme-Erzeugungseinheit (8), die so betreibbar ist, dass sie diesen neuen Ausführungsadresswert und die Bereichsinformationen in das zweite Bereichsinformationsregister (6) eingibt, wenn die Befehlsverarbeitungseinheit (1) einen neuen Ausführungsadresswert in dem Programmschrittzähler (5) speichert, und dass sie im Falle einer Bereichsverletzung ein zweites Ausnahmesignal an die Befehlsverarbeitungseinheit (1) ausgibt.
  4. Prozessor nach Anspruch 3, dadurch gekennzeichnet, dass sich das Adressregister (3), das erste Bereichsinformationsregister (4), der Programmschrittzähler (5) und das zweite Bereichsinformationsregister (6) alle aus Universalregistern zusammensetzen.
  5. Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Bereichsinformationen einen oberen Grenzwert des Bereichs und einen unteren Grenzwert des Bereichs aufweisen.
  6. Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Bereichsinformationen einen unteren Grenzwert des Bereichs und die Länge von dem unteren Grenzwert bis zu einem oberen Grenzwert des Bereichs aufweisen.
  7. Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Bereichsinformationen ein Attribut aufweisen, das das Aktivieren/Deaktivieren des Lesens und Schreibens anzeigt.
  8. Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Bereichsinformationen einen oberen Grenzwert des Bereichs, aber keinen unteren Grenzwert des Bereichs aufweisen.
  9. Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Befehlsverarbeitungseinheit (1) in einem einzigen Maschinensprachenbefehl einen Prozess des Speicherns der absoluten Adresse eines Zeigers eines Programms in dem Adressregister (3) und einen Prozess des Speicherns der Bereichsinformationen dieses Zeigers in dem Bereichsinformationsregister (4) ausführt.
  10. Prozessor nach Anspruch 2, dadurch gekennzeichnet, dass die Befehlsverarbeitungseinheit (1) in einem einzigen Maschinensprachenbefehl einen Prozess des Speicherns eines neuen Ausführungsadresswerts in dem Programmschrittzähler (5) und einen Prozess des Speicherns der Bereichsinformationen des Ausführungsadresswerts in dem Bereichsinformationsregister (4) ausführt.
  11. Kompiliervorrichtung, die Ausführungscodes aus Quellcodes erzeugt, die in einer Programmiersprache geschrieben sind, die eine direkte Manipulation von Zeigern ermöglicht, wobei die Kompiliervorrichtung Folgendes aufweist: einen Speicher (50), der so betreibbar ist, dass er Variablenbereiche speichert; eine Quellenanalysiereinheit (53), die so betreibbar ist, dass sie die Quellcodes analysiert, um die Übertragungsziele von Codes entsprechend einer Sprungbedingung zu bestimmen; eine Variablencodezuweisungseinheit (54), die, wenn die Quellenanalysiereinheit (53) einen Variablenvereinbarungscode identifiziert, so betreibbar ist, dass sie den Variablenvereinbarungscode, der dem Variablenvereinbarungscode zugewiesen werden soll, empfängt und die Variablenadresse und den Variablenbereich in dem Speicher (50) speichert; eine Zeiger-mit-Bereich-Erzeugungseinheit (56), die, wenn die Quellenanalysiereinheit ( 53) einen Code identifiziert, der einen Zeiger aus einer Variablen erzeugt, so betreibbar ist, dass sie diesen Code empfängt und den für die Variable zugewiesenen Bereich aus dem Speicher (50) liest, um einen Code zu erzeugen, der eine Zeigervariable mit Bereich erzeugt; eine Direktwertzeiger-Erzeugungseinheit (58), die, wenn die Quellenanalysiereinheit (53) einen Code identifiziert, der einen Zeiger aus einem Direktwert erzeugt, so betreibbar ist, dass sie einen Code erzeugt, der eine Zeigervariable mit einem Begrenzer erzeugt, dessen Grenzbereich unter Verwendung eines Sollwerts oder der gesamten Adresse definiert wird; eine Zeigeroperationscode-Erzeugungseinheit (55), die, wenn die Quellenanalysiereinheit (53) eine Zeigeroperation identifiziert, so betreibbar ist, dass sie einen Code erzeugt, der eine Zeigeroperation ausführt, die den Adressbereich vererbt; und eine sprachgestützte Ausführungscode-Erzeugungseinheit (57), die, wenn die Quellenanalysiereinheit (53) einen Code als nicht auf eine Sprungbedingung anwendbar einschätzt, so betreibbar ist, dass sie den Code empfängt und eine Code-Erzeugung entsprechend der Syntax der Programmiersprache durchführt.
  12. Kompiliervorrichtung, die Ausführungscodes aus Quellcodes erzeugt, die in einer Programmiersprache geschrieben sind, die eine direkte Manipulation von Zeigern gestattet, wobei die Kompiliervorrichtung Folgendes aufweist: einen Funktionscodebereichsspeicher (79), der so betreibbar ist, dass er Funktionscodebereiche speichert; einen Ausführungscodespeicher (78), der so betreibbar ist, dass er Ausführungscodes speichert; eine Quellenanalysiereinheit (73), die so betreibbar ist, dass sie den Quellcode analysiert, um die Übertragungsziele der Quellcodes entsprechend einer Sprungbedingung zu bestimmen; eine Funktionscodebereichs-Analysiereinheit (74), die, wenn die Quellenanalysiereinheit (73) einen Funktionsvereinbarungs-Beendigungscode identifiziert, so betreibbar ist, dass sie den Bereich des Funktionscodes in dem Ausführungscodespeicher (78) analysiert, um den Funktionscodebereich in dem Funktionscodebereichsspeicher (79) zu speichern; Sprungbefehl-mit-Codebereich-Erzeugungseinheit (75), die, wenn die Quellenanalysiereinheit (73) einen Funktionsaufrufcode identifiziert, so betreibbar ist, dass sie diesen Code empfängt, um einen Sprungbefehl mit Codebereich zu erzeugen; eine Funktionszeiger-mit-Bereich-Erzeugungseinheit (76), die, wenn die Quellenanalysiereinheit (73) einen Code identifiziert, der einen Funktionszeiger erzeugt, so betreibbar ist, dass sie den Code empfängt, um eine Funktionszeigervariable mit Codebereich zu erzeugen; eine sprachgestützte Ausführungscode-Erzeugungseinheit (77), die, wenn die Quellenanalysiereinheit (73) einen Code als nicht auf eine Sprungbedingung anwendbar einschätzt, so betreibbar ist, dass sie den Code empfängt, um eine Code-Erzeugung entsprechend der Syntax der Sprache durchzuführen; und eine Funktionsbereichs-Einbettungseinheit (80), die so betreibbar ist, dass sie die Codes aus dem Ausführungscodespeicher (78) holt und die aus dem Funktionscodebereichsspeicher (79) gelesenen Werte in den Funktionszeiger einbettet.
  13. Kompiliervorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass der Bereich durch einen oberen Grenzwert und einen unteren Grenzwert definiert ist.
  14. Kompiliervorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass der Bereich durch einen unteren Grenzwert und die Länge von dem unteren Grenzwert bis zu einem oberen Grenzwert definiert ist.
  15. Kompiliervorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass der Bereich nur durch einen oberen Grenzwert definiert ist.
  16. Kompilierverfahren zum Erzeugen von Codes aus Quellcodes, die in einer Programmiersprache geschrieben sind, die eine direkte Manipulation von Zeigern gestattet, wobei das Kompilierverfahren Folgendes aufweist: Analysieren einer Programmquelle, um zu einem nächsten Prozess in den Variablenbereich entsprechend einer Sprungbedingung zu springen; Zuweisen eines Variablenbereichs und Speichern einer Variablenadresse und eines Variablenbereichs in dem Variablenbereich, wenn bei diesem Analysieren einer Programmquelle eine Einheit der Programmquelle als Variablenvereinbarung identifiziert wird; Erzeugen eines Codes, der eine Zeigervariable mit einem Bereichsbegrenzer erzeugt, der unter Verwendung eines Sollwerts oder der gesamten Adresse definiert wird, wenn bei diesem Analysieren einer Programmquelle die Erzeugung eines Zeigers aus einer Variablen identifiziert wird; Erzeugen einer Zeigervariable mit einem Bereich, der den gesamten Adressbereich verwendet oder Sollwerte verwendet, wenn bei diesem Analysieren einer Programmquelle die Erzeugung eines Zeigers aus einem Direktwert identifiziert wird; Erzeugen einer Code-Ausführungs-Zeigeroperation, die den Adressbereich vererbt, wenn bei diesem Analysieren einer Programmquelle eine Zeigeroperation identifiziert wird; und Erzeugen eines Codes entsprechend der Syntax der Programmiersprache, wenn bei diesem Analysieren keine solche Sprungbedingung einer Programmquelle anwendbar ist.
  17. Kompilierverfahren zum Erzeugen von Codes aus Quellcodes, die in einer Programmiersprache geschrieben sind, die eine direkte Manipulation von Zeigern gestattet, wobei das Kompilierverfahren Folgendes aufweist: Analysieren einer Programmquelle, um zu einem nächsten Prozess in den Variablenbereich entsprechend einer Sprungbedingung zu springen; Speichern eines Funktionscodebereichs, wenn bei diesem Analysieren die Beendigung einer Funktionsdefinition einer Programmquelle identifiziert wird; Erzeugen eines Sprungbefehls mit Codebereich, wenn bei diesem Analysieren ein Funktionsaufruf einer Programmquelle identifiziert wird; Erzeugen eines Funktionszeigers mit Codebereich, wenn bei diesem Analysieren eine Funktionszeigererzeugung einer Programmquelle identifiziert wird; Einbetten von Codes, die von dem Sprungbefehl mit Codebereich und dem Funktionszeiger mit Codebereich erzeugt werden, nachdem die Code-Umwandlung für alle Quellcodes durchgeführt worden ist.
  18. Kompilierverfahren zum Erzeugen von Codes aus Quellcodes, die in einer Programmiersprache geschrieben sind, die eine direkte Manipulation von Zeigern gestattet, wobei das Kompilierverfahren Folgendes aufweist: Analysieren einer Programmquelle, um zu einem nächsten Prozess in den Variablenbereich entsprechend einer Sprungbedingung zu springen; Zuweisen eines Variablenbereichs und Speichern einer Variablenadresse und eines Variablenbereichs in dem Variablenbereich, wenn bei diesem Analysieren einer Programmquelle eine Einheit der Programmquelle als Variablenvereinbarung identifiziert wird; Erzeugen eines Codes, der eine Zeigervariable mit einem oberen Bereichsbegrenzer erzeugt, der unter Verwendung eines Sollwerts oder der gesamten Adresse definiert wird, wenn bei diesem Analysieren einer Programmquelle die Erzeugung eines Zeigers aus einer Variablen identifiziert wird; Erzeugen einer Zeigervariable mit einem oberen Grenzbereich, der den gesamten Adressbereich verwendet oder Sollwerte verwendet, wenn bei diesem Analysieren einer Programmquelle die Erzeugung eines Zeigers aus einem Direktwert identifiziert wird; Erzeugen einer Code-Ausführungs-Zeigeroperation, die den Adressbereich vererbt, wenn bei diesem Analysieren einer Programmquelle eine Zeigeroperation identifiziert wird; und Erzeugen eines Codes entsprechend der Syntax der Programmiersprache, wenn bei diesem Analysieren einer Programmquelle keine solche Sprungbedingung anwendbar ist.
  19. Kompilierverfahren nach Anspruch 16, dadurch gekennzeichnet, dass der Bereich durch einen oberen Grenzwert und einen unteren Grenzwert definiert ist.
  20. Kompilierverfahren nach Anspruch 16, dadurch gekennzeichnet, dass der Bereich durch einen unteren Grenzwert und die Länge von dem unteren Grenzwert bis zu einem oberen Grenzwert definiert ist.
  21. Kompilierverfahren nach Anspruch 16, dadurch gekennzeichnet, dass der Bereich nur durch einen oberen Grenzwert definiert ist.
  22. Informationsverarbeitungsvorrichtung mit einem Prozessor nach Anspruch 1; einer Betriebseinheit, die dem Prozessor Benutzereingaben meldet; und einem Anzeigegerät, das von dem Prozessor gesteuert wird und Bilder anzeigt.
DE03012184T 2002-06-07 2003-06-04 Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors Pending DE03012184T1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002166612 2002-06-07
JP2002166612A JP2004013556A (ja) 2002-06-07 2002-06-07 プロセッサ装置、コンパイル装置及びその方法

Publications (1)

Publication Number Publication Date
DE03012184T1 true DE03012184T1 (de) 2004-09-30

Family

ID=29545872

Family Applications (1)

Application Number Title Priority Date Filing Date
DE03012184T Pending DE03012184T1 (de) 2002-06-07 2003-06-04 Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors

Country Status (5)

Country Link
US (1) US20040019774A1 (de)
EP (1) EP1369787A3 (de)
JP (1) JP2004013556A (de)
CN (1) CN1315062C (de)
DE (1) DE03012184T1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191164B2 (en) * 2003-08-19 2007-03-13 Intel Corporation Searching for object images with reduced computation
US20080209265A1 (en) * 2004-01-15 2008-08-28 Matsushita Electric Industrial Co., Ltd. Information-Processing Method and Apparatus
JP2006031363A (ja) * 2004-07-15 2006-02-02 Mitsubishi Research Institute Inc バッファオーバーフロー脆弱性検出プログラム及びバッファオーバーフロー脆弱性検出方法
US7673345B2 (en) * 2005-03-31 2010-03-02 Intel Corporation Providing extended memory protection
US8381198B2 (en) * 2005-08-15 2013-02-19 Sony Ericsson Mobile Communications Ab Systems, methods and computer program products for safety checking executable application programs in a module
US7698542B2 (en) * 2006-08-25 2010-04-13 Infineon Technologies Ag Circuit and method for comparing program counter values
JP5392263B2 (ja) * 2008-09-22 2014-01-22 富士通株式会社 情報処理装置及びそのメモリ保護方法
EP2273329A1 (de) * 2009-06-24 2011-01-12 Delphi Technologies Holding S.à.r.l. Mikrokontrollerschutzverfahren und -vorrichtung mit einem integrierten Debug-Modul
US8516450B2 (en) * 2010-03-19 2013-08-20 Oracle International Corporation Detecting real-time invalid memory references
CN105373488A (zh) * 2014-08-08 2016-03-02 中兴通讯股份有限公司 合法内存访问的探测方法及装置
US9459998B2 (en) * 2015-02-04 2016-10-04 International Business Machines Corporation Operations interlock under dynamic relocation of storage
US20160381050A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Processors, methods, systems, and instructions to protect shadow stacks
GB2540206B (en) * 2015-07-10 2018-02-07 Advanced Risc Mach Ltd Apparatus and method for executing instruction using range information associated with a pointer
US10867031B2 (en) 2015-07-23 2020-12-15 Apple Inc. Marking valid return targets
GB2544996B (en) 2015-12-02 2017-12-06 Advanced Risc Mach Ltd An apparatus and method for managing bounded pointers
US10394556B2 (en) 2015-12-20 2019-08-27 Intel Corporation Hardware apparatuses and methods to switch shadow stack pointers
US10430580B2 (en) 2016-02-04 2019-10-01 Intel Corporation Processor extensions to protect stacks during ring transitions
GB2547249B (en) * 2016-02-12 2019-09-11 Advanced Risc Mach Ltd An apparatus and method for generating signed bounded pointers
GB2563580B (en) * 2017-06-15 2019-09-25 Advanced Risc Mach Ltd An apparatus and method for controlling a change in instruction set
US11334829B2 (en) * 2019-12-19 2022-05-17 Honeywell International Inc. Methods and systems for electronic checklist data references
CN112486089A (zh) * 2020-12-10 2021-03-12 郑州捷安高科股份有限公司 可编程逻辑控制器的数据处理方法、装置及计算机设备
CN113485884B (zh) * 2021-06-08 2023-06-06 北京控制工程研究所 一种基于处理器特性的星载软件异常状态监测方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210832A (en) * 1986-10-14 1993-05-11 Amdahl Corporation Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle
JP2847974B2 (ja) * 1991-01-21 1999-01-20 三菱電機株式会社 データ処理装置
JPH076095A (ja) * 1993-06-15 1995-01-10 Nippon Telegr & Teleph Corp <Ntt> 高信頼メモリアドレス指定方法
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US5685011A (en) * 1995-05-15 1997-11-04 Nvidia Corporation Apparatus for handling failures to provide a safe address translation in an improved input/output architecture for a computer system
JP4312272B2 (ja) * 1995-10-06 2009-08-12 モトローラ・インコーポレイテッド 内部メモリへのアクセスを制限するマイクロコントローラ
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
EP0953909A1 (de) * 1998-04-30 1999-11-03 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zur Überwachung der Schreibzugriffe zu einer Speichervorrichtung für eine digitale Datenverarbeitungsschaltung
US6148384A (en) * 1998-06-02 2000-11-14 Adaptec, Inc. Decoupled serial memory access with passkey protected memory areas
JP2000259410A (ja) * 1999-03-10 2000-09-22 Matsushita Electric Ind Co Ltd マイクロプロセッサ
JP4605871B2 (ja) * 2000-08-25 2011-01-05 富士通セミコンダクター株式会社 マイクロプロセッサ

Also Published As

Publication number Publication date
EP1369787A2 (de) 2003-12-10
CN1469254A (zh) 2004-01-21
US20040019774A1 (en) 2004-01-29
JP2004013556A (ja) 2004-01-15
CN1315062C (zh) 2007-05-09
EP1369787A3 (de) 2008-02-27

Similar Documents

Publication Publication Date Title
DE03012184T1 (de) Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors
DE69932371T2 (de) Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms
DE69328665T2 (de) Gerät zur Auflösung von Datenreferenzen in erzeugtem Kode
DE60001916T2 (de) Plattformunabhängige speicherabbild analysearchitektur zur programmfehlerbeseitigung
Diwan et al. Type-based alias analysis
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
Livshits et al. Reflection analysis for Java
US9274923B2 (en) System and method for stack crawl testing and caching
US5815720A (en) Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system
US5048018A (en) Debugging parallel programs by serialization
DE69330537T2 (de) System zur Analyse und Fehlerbeseitigung integrierter Software durch dynamischen und interactiven Gebrauch von Kode-Markierern
DE69604347T2 (de) Bestimmung der dynamischen Eigenschaften von Programmen
Shaham et al. Heap profiling for space-efficient Java
US20080320054A1 (en) Database and Software Conversion System and Method
DE69816381T2 (de) Vorrichtung zur Unterstützung von Fehlersuche in symbolische Programme und entsprechender Kompiler.
US20020184615A1 (en) System and method for selectively and automatically modifying the source code of a computer program
US20180365127A1 (en) Method and device for non-intrusively collecting function trace data
DE69524170T2 (de) Eingebettete Programmablaufinformation zwecks Zielcodemanipulation
Hills Evolution of dynamic feature usage in PHP
DE69026208T2 (de) Verfahren zur Erkennung möglicher Fehler einer Programmierung in Assembler Sprache mit Erfassung offensichtlicher Inkonsistenz mit einer vorhergehenden Operation
CN111552476A (zh) 一种代码静态检查的方法与设备
DE10393511T5 (de) Programmentwicklungsunterstützungsvorrichtung, Programmausführungsvorrichtung, Kompilierverfahren und Diagnoseverfahren
DE102018127317B3 (de) Verfahren und vorrichtungen zur computerimplementierten erzeugung eines ausführbaren programmcodes und zur ausführung eines ausführbaren programmcodes
DE102019105418B3 (de) Verfahren zum Erzeugen einer Darstellung einer Programmlogik, Dekompiliervorrichtung, Rekompiliersystem und Computerprogrammprodukte
Wenzel Measurement-based timing analysis of superscalar processors