JP3720370B2 - 自己修飾コード処理装置 - Google Patents
自己修飾コード処理装置 Download PDFInfo
- Publication number
- JP3720370B2 JP3720370B2 JP51432797A JP51432797A JP3720370B2 JP 3720370 B2 JP3720370 B2 JP 3720370B2 JP 51432797 A JP51432797 A JP 51432797A JP 51432797 A JP51432797 A JP 51432797A JP 3720370 B2 JP3720370 B2 JP 3720370B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- store
- address
- self
- memory
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
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)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US506995P | 1995-10-06 | 1995-10-06 | |
| US502195P | 1995-10-10 | 1995-10-10 | |
| US592,150 | 1996-01-26 | ||
| US08/592,150 US5826073A (en) | 1995-10-06 | 1996-01-26 | Self-modifying code handling system |
| US60/005,069 | 1996-05-16 | ||
| US60/005,021 | 1996-05-16 | ||
| PCT/US1996/015420 WO1997013198A1 (en) | 1995-10-06 | 1996-10-03 | Self-modifying code handling system |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2001517333A JP2001517333A (ja) | 2001-10-02 |
| JP2001517333A5 JP2001517333A5 (enExample) | 2004-12-09 |
| JP3720370B2 true JP3720370B2 (ja) | 2005-11-24 |
Family
ID=27357779
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP51432797A Expired - Lifetime JP3720370B2 (ja) | 1995-10-06 | 1996-10-03 | 自己修飾コード処理装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5826073A (enExample) |
| EP (1) | EP0853785B1 (enExample) |
| JP (1) | JP3720370B2 (enExample) |
| AU (1) | AU7246396A (enExample) |
| DE (1) | DE69612991T2 (enExample) |
| WO (1) | WO1997013198A1 (enExample) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5758349A (en) * | 1995-12-27 | 1998-05-26 | International Business Machines Corporation | Process and system for run-time inheritance and disinheritance of methods and data |
| US6009516A (en) * | 1996-10-21 | 1999-12-28 | Texas Instruments Incorporated | Pipelined microprocessor with efficient self-modifying code detection and handling |
| US6170055B1 (en) | 1997-11-03 | 2001-01-02 | Iomega Corporation | System for computer recovery using removable high capacity media |
| US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
| US8074055B1 (en) | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
| US8065504B2 (en) | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
| US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
| US6671665B1 (en) * | 1999-02-19 | 2003-12-30 | Texas Instruments Incorporated | Emulation system with search and identification of optional emulation peripherals |
| US6850647B1 (en) * | 1999-07-30 | 2005-02-01 | Michael L. Gough | System, method and article of manufacture for decompressing digital camera sensor data |
| JP3739607B2 (ja) * | 1999-08-24 | 2006-01-25 | 富士通株式会社 | 情報処理装置 |
| US6629175B1 (en) * | 2000-04-14 | 2003-09-30 | International Business Machines Corporation | Efficient adapter context switching |
| US7360028B1 (en) * | 2000-05-05 | 2008-04-15 | Sun Microsystems, Inc. | Explicit store-to-instruction-space instruction for self-modifying code and ensuring memory coherence between instruction cache and shared memory using a no-snoop protocol |
| US6807623B2 (en) * | 2000-07-27 | 2004-10-19 | Matsushita Electric Industrial Co., Ltd. | Data processing control system, controller, data processing control method, program, and medium |
| US20030093775A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | Processing of self-modifying code under emulation |
| US6543034B1 (en) * | 2001-11-30 | 2003-04-01 | Koninklijke Philips Electronics N.V. | Multi-environment testing with a responder |
| US7251594B2 (en) * | 2001-12-21 | 2007-07-31 | Hitachi, Ltd. | Execution time modification of instruction emulation parameters |
| US7260217B1 (en) * | 2002-03-01 | 2007-08-21 | Cavium Networks, Inc. | Speculative execution for data ciphering operations |
| CA2418255A1 (en) * | 2003-01-31 | 2004-07-31 | Ibm Canada Limited - Ibm Canada Limitee | Tracking and maintaining related and derivative code |
| US20040163082A1 (en) * | 2003-02-13 | 2004-08-19 | Marc Tremblay | Commit instruction to support transactional program execution |
| US7711990B1 (en) * | 2005-12-13 | 2010-05-04 | Nvidia Corporation | Apparatus and method for debugging a graphics processing unit in response to a debug instruction |
| US8516229B2 (en) * | 2010-02-05 | 2013-08-20 | International Business Machines Corporation | Two pass test case generation using self-modifying instruction replacement |
| US9436476B2 (en) | 2013-03-15 | 2016-09-06 | Soft Machines Inc. | Method and apparatus for sorting elements in hardware structures |
| US20140281116A1 (en) | 2013-03-15 | 2014-09-18 | Soft Machines, Inc. | Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits |
| US9747212B2 (en) * | 2013-03-15 | 2017-08-29 | International Business Machines Corporation | Virtual unifed instruction and data caches including storing program instructions and memory address in CAM indicated by store instruction containing bit directly indicating self modifying code |
| US9582322B2 (en) | 2013-03-15 | 2017-02-28 | Soft Machines Inc. | Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping |
| US9627038B2 (en) | 2013-03-15 | 2017-04-18 | Intel Corporation | Multiport memory cell having improved density area |
| US9946538B2 (en) * | 2014-05-12 | 2018-04-17 | Intel Corporation | Method and apparatus for providing hardware support for self-modifying code |
| CN104951276B (zh) * | 2015-06-24 | 2017-05-31 | 福州瑞芯微电子股份有限公司 | 一种芯片指令高速缓存失效的检测方法及系统 |
| US9996329B2 (en) | 2016-02-16 | 2018-06-12 | Microsoft Technology Licensing, Llc | Translating atomic read-modify-write accesses |
| US9986200B1 (en) * | 2017-05-11 | 2018-05-29 | Novatek Microelectronics Corp. | Method and video conversion system of updating video setting |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0159712B1 (en) * | 1984-04-27 | 1991-01-30 | Bull HN Information Systems Inc. | Control means in a digital computer |
| US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
| US5692167A (en) * | 1992-07-31 | 1997-11-25 | Intel Corporation | Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor |
| US5434987A (en) * | 1993-09-21 | 1995-07-18 | Intel Corporation | Method and apparatus for preventing incorrect fetching of an instruction of a self-modifying code sequence with dependency on a bufered store |
-
1996
- 1996-01-26 US US08/592,150 patent/US5826073A/en not_active Expired - Lifetime
- 1996-10-03 JP JP51432797A patent/JP3720370B2/ja not_active Expired - Lifetime
- 1996-10-03 DE DE69612991T patent/DE69612991T2/de not_active Expired - Lifetime
- 1996-10-03 WO PCT/US1996/015420 patent/WO1997013198A1/en not_active Ceased
- 1996-10-03 EP EP96933906A patent/EP0853785B1/en not_active Expired - Lifetime
- 1996-10-03 AU AU72463/96A patent/AU7246396A/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| EP0853785A1 (en) | 1998-07-22 |
| AU7246396A (en) | 1997-04-28 |
| DE69612991D1 (de) | 2001-06-28 |
| EP0853785B1 (en) | 2001-05-23 |
| WO1997013198A1 (en) | 1997-04-10 |
| JP2001517333A (ja) | 2001-10-02 |
| US5826073A (en) | 1998-10-20 |
| DE69612991T2 (de) | 2002-01-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3720370B2 (ja) | 自己修飾コード処理装置 | |
| JP3714961B2 (ja) | ロード/ストアオペレーションのout−of−order実行の制御 | |
| US6697932B1 (en) | System and method for early resolution of low confidence branches and safe data cache accesses | |
| KR100783828B1 (ko) | 단일 스레드 프로그램의 암시적 멀티스레디드 실행을 행할수 있는 멀티스레디드 프로세서 | |
| JP3977016B2 (ja) | 仮想レジスタ番号を用いて論理レジスタ番号を物理レジスタ番号にマッピングするように構成されるプロセッサ | |
| US5721855A (en) | Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer | |
| JP3675466B2 (ja) | スーパースケーラマイクロプロセサ | |
| JP3681761B2 (ja) | ロード/ストアオペレーションのout―of―order実行コントロールのための階層的スキャンロジック | |
| US7392369B2 (en) | Decomposing architectural operation into speculative and architectural micro-operations for speculative execution of others and for violation check | |
| EP0381444A2 (en) | Branch prediction | |
| US20020087849A1 (en) | Full multiprocessor speculation mechanism in a symmetric multiprocessor (smp) System | |
| JPH07334364A (ja) | スーパースカラマイクロプロセッサおよびropを処理する方法 | |
| JPH07182163A (ja) | スーパスカラ命令デコード/発行装置 | |
| JP2002149401A (ja) | マイクロプロセッサ内の命令処理法方、マイクロプロセッサ及び情報処理システム | |
| WO2002008893A1 (en) | A microprocessor having an instruction format containing explicit timing information | |
| US6405303B1 (en) | Massively parallel decoding and execution of variable-length instructions | |
| JP3866920B2 (ja) | 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ | |
| US6658555B1 (en) | Determining successful completion of an instruction by comparing the number of pending instruction cycles with a number based on the number of stages in the pipeline | |
| JP2886838B2 (ja) | スーパースカラパイプライン式データ処理装置の可変長命令の並列デコーディング装置及び方法 | |
| JPH117389A (ja) | プロセサ用の命令を処理するシステム及び方法 | |
| JP3717524B2 (ja) | ストアおよびロードミス命令を完了するための複数のポインタを備えるロード/ストアユニット | |
| US6175909B1 (en) | Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment | |
| JP2001142706A (ja) | 命令上での依存性チェックの実行方法と命令実行用のコンピュータシステム | |
| JP3547562B2 (ja) | マイクロプロセッサ | |
| EP1190313B1 (en) | Result field queue |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040325 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050201 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050502 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050620 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050708 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050823 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050908 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080916 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120916 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120916 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130916 Year of fee payment: 8 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |