DE03012184T1 - Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors - Google Patents
Prozessor, Informationsverarbeitungsgerät, Kompiliervorrichtung, und Kompilierverfahren mittels dieses Prozessors Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract 18
- 230000010365 information processing Effects 0.000 title claims 2
- 230000006870 function Effects 0.000 claims 16
- 238000006243 chemical reaction Methods 0.000 claims 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- 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/3861—Recovery, 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.
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)
- 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. - 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. - 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. - 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. - Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Bereichsinformationen einen oberen Grenzwert des Bereichs und einen unteren Grenzwert des Bereichs aufweisen.
- 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.
- Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Bereichsinformationen ein Attribut aufweisen, das das Aktivieren/Deaktivieren des Lesens und Schreibens anzeigt.
- Prozessor nach Anspruch 1, dadurch gekennzeichnet, dass die Bereichsinformationen einen oberen Grenzwert des Bereichs, aber keinen unteren Grenzwert des Bereichs aufweisen.
- 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. - 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. - 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. - 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. - Kompiliervorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass der Bereich durch einen oberen Grenzwert und einen unteren Grenzwert definiert ist.
- 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.
- Kompiliervorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass der Bereich nur durch einen oberen Grenzwert definiert ist.
- 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.
- 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.
- 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.
- Kompilierverfahren nach Anspruch 16, dadurch gekennzeichnet, dass der Bereich durch einen oberen Grenzwert und einen unteren Grenzwert definiert ist.
- 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.
- Kompilierverfahren nach Anspruch 16, dadurch gekennzeichnet, dass der Bereich nur durch einen oberen Grenzwert definiert ist.
- 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.
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)
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)
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 | 富士通セミコンダクター株式会社 | マイクロプロセッサ |
-
2002
- 2002-06-07 JP JP2002166612A patent/JP2004013556A/ja not_active Withdrawn
-
2003
- 2003-06-04 DE DE03012184T patent/DE03012184T1/de active Pending
- 2003-06-04 EP EP03012184A patent/EP1369787A3/de not_active Withdrawn
- 2003-06-04 CN CNB031412548A patent/CN1315062C/zh not_active Expired - Fee Related
- 2003-06-04 US US10/453,608 patent/US20040019774A1/en not_active Abandoned
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 |