KR100519827B1 - 다수의복귀사이트를구현하기위한방법및그장치 - Google Patents
다수의복귀사이트를구현하기위한방법및그장치 Download PDFInfo
- Publication number
- KR100519827B1 KR100519827B1 KR10-1998-0041793A KR19980041793A KR100519827B1 KR 100519827 B1 KR100519827 B1 KR 100519827B1 KR 19980041793 A KR19980041793 A KR 19980041793A KR 100519827 B1 KR100519827 B1 KR 100519827B1
- Authority
- KR
- South Korea
- Prior art keywords
- routine
- return
- function
- execution
- computer
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000009191 jumping Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 2
- 230000006870 function Effects 0.000 description 116
- 238000010586 diagram Methods 0.000 description 13
- 230000002159 abnormal effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Claims (15)
- 다수의 복귀 포인트 중 하나에 관련된 데이터를 효율적으로 획득할 수 있도록 다수의 복귀 포인트들 중 하나에 관련된 데이터를 저장하는, 컴퓨터에 의해 구현되는 방법으로서, 이때, 다수의 복귀 포인트들은 한개의 기대 복귀 포인트와 한개의 제 1 대체 복귀 포인트를 포함하며, 상기 방법은,- 루틴이 실행되고 있을 때 루틴 내로부터 함수를 호출하고, 이때, 상기 함수는 상기 루틴과 별개의 것이며,- 상기 함수의 실행을 시작하며,- 상기 함수로부터 상기 루틴으로 복귀하고, 이때, 상기 함수는 상기 기대 복귀 포인트에 의해 식별되는 루틴 내 한 위치로 복귀하며, 그리고- 상기 루틴의 제 1 명령을 실행하며, 이때, 상기 제 1 명령을 실행하는 것은 어떤 연산 오버헤드(computational overhead)도 이용하지 않으며 루틴의 실행에 영향을 미치지 않는,단계를 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 제 1 항에 있어서, 상기 함수는 기대한 바와 같이 상기 루틴으로 복귀하며,상기 방법은,- 상기 기대 복귀 포인트로 되돌아가기 전에 상기 함수의 실행을 완료하고, 이때, 상기 기대 복귀 포인트는 상기 루틴의 상기 제 1 명령을 식별하도록 배열되는단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 제 2항에 있어서, 상기 방법은,- 상기 루틴의 실행을 계속하는단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 제 1 항 내지 3 항 중 어느 한 항에 있어서, 상기 함수의 실행을 시작하는 상기 단계는, 상기 제 1 대체 복귀 포인트를 로딩하는 단계를 포함하고, 이때, 상기 제 1 대체 복귀 포인트는 상기 기대 복귀 포인트와는 고정 거리만큼 이격되어 위치하는 명령에 의해 식별되는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 제 4 항에 있어서, 상기 방법은,- 호출된 함수의 실행을 중지시키고, 그리고- 제 1 대체 복귀 포인트로 점프하는단계를 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 다수의 복귀 포인트 중 하나에 관련된 데이터를 효율적으로 획득할 수 있도록 다수의 복귀 포인트 중 하나에 관련된 데이터를 저장하도록 구성되는 컴퓨터 시스템으로서, 이때, 다수의 복귀 포인트들은 한개의 기대 복귀 포인트와 한개의 제1 대체 복귀 포인트를 포함하며, 상기 컴퓨터 시스템은,- 프로세서,- 상기 프로세서에 관련된 호출 수단으로서, 이때, 상기 호출 수단은 루틴이 실행 중일 때 루틴 내로부터 함수를 호출하도록 구성되며, 상기 함수는 상기 루틴과는 별개의 것인 바의 상기 호출 수단,-상기 프로세서에 관련된 실행 수단으로서, 상기 함수의 실행을 시작하도록 구성되는 상기 실행 수단, 그리고- 상기 함수로부터 상기 루틴에게로 복귀하도록 구성되는 복귀 수단으로서, 이때, 상기 함수는 상기 기대 복귀 포인트에 의해 식별되는 루틴 내 위치로 복귀하고, 상기 실행 수단은 루틴 내 제 1 명령을 실행하도록 구성되며, 상기 제 1 명령은 어떤 연산 오버헤드도 이용하지 않고 상기 루틴의 실행에 영향을 미치지 않는 바의 상기 복귀 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
- 제 6 항에 있어서, 상기 함수는 기대한 바대로 상기 루틴으로 복귀하도록 배열되며, 상기 실행 수단은 상기 기대 복귀 포인트로 복귀하기 전에 함수의 실행을 완료하도록 배열되며, 상기 기대 복귀 포인트는 상기 루틴의 상기 제 1 명령을 식별하도록 배열되는 것을 특징으로 하는 컴퓨터 시스템.
- 제 6 항 또는 7 항에 있어서, 상기 실행 수단은 상기 제 1 대체 복귀 포인트를 로딩하도록 배열되는 로더(loader)를 추가로 포함하고, 상기 제 1 대체 복귀 포인트는 상기 기대 복귀 포인트로부터 고정 거리만큼 이격되어 위치하는 명령에 의해 식별되는 것을 특징으로 하는 컴퓨터 시스템.
- 다수의 복귀 포인트들 중 하나에 관련된 데이터를 효율적으로 획득할 수 있도록 다수의 복귀 포인트들 중 하나에 관련된 데이터를 저장하기 위한 컴퓨터-판독형 매체로서, 이때, 다수의 복귀 포인트들은 한개의 기대 복귀 포인트를 포함하며, 상기 컴퓨터-판독형 매체는,- 루틴이 실행 중일 때 루틴 내로부터 함수를 호출하기 위한 컴퓨터 코드로서, 이때, 상기 함수가 상기 루틴과는 별개의 것인 바의 상기 컴퓨터 코드,- 상기 함수의 실행을 시작하기 위한 컴퓨터 코드,- 상기 함수로부터 상기 루틴으로 복귀하기 위한 컴퓨터 코드로서, 이때, 상기 함수는 상기 기대 복귀 포인트에 의해 식별되는 루틴 내 위치로 복귀하는 바의 상기 컴퓨터 코드, 그리고- 루틴 내 제 1 명령을 실행하기 위한 컴퓨터 코드로서, 이때, 상기 제 1 명령의 실행은 어떤 연산 오버헤드도 이용하지 않으며 루틴 실행에 영향을 미치지 않는 바의 상기 컴퓨터 코드를 저장하는 것을 특징으로 하는 컴퓨터-판독형 매체.
- 제 9항에 있어서, 상기 컴퓨터-판독형 매체는 반송파(carrier wave)로 구현된 데이터 신호, CD-ROM, 컴퓨터 디스크, 컴퓨터 테이프, 그리고 컴퓨터 디스크 드라이브 중 하나인 것을 특징으로 하는 컴퓨터-판독형 매체.
- 다수의 복귀 포인트 중 하나에 관련된 데이터를 효율적으로 획득할 수 있도록 다수의 복귀 포인트들 중 하나에 관련된 데이터를 저장하는, 컴퓨터에 의해 구현되는 방법으로서, 이때, 다수의 복귀 포인트들은 한개의 기대 복귀 포인트와 한개의 제 1 대체 복귀 포인트를 포함하며, 상기 방법은,- 루틴을 실행하고,- 루틴이 실행되고 있을 때 루틴 내로부터 함수에 액세스하며, 이때, 상기 함수는 상기 루틴과 별개의 것이며,- 상기 함수의 실행을 시작하고,- 상기 함수로부터 상기 루틴으로 복귀하며, 이때, 상기 함수는 상기 기대 복귀 포인트에 의해 식별되는 루틴 내 한 위치로 복귀하며, 그리고- 상기 루틴의 제 1 명령을 실행하고, 이때, 상기 제 1 명령을 실행하는 것은 루틴의 전체 실행 속도에 영향을 미치지 않는,단계를 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 제 11항에 있어서, 상기 방법은,- 상기 함수가 기대한 바와 같이 루틴으로 복귀할 시기를 결정하고, 그리고- 상기 함수가 기대한 바와 같이 루틴으로 복귀할 때, 상기 기대 복귀 포인트로 복귀하기 전에 상기 함수의 실행을 완료하며, 이때, 상기 기대 복귀 포인트는 상기 루틴 내 상기 제 1 명령을 식별하도록 배열되는단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 제 11 항 또는 12 항에 있어서, 상기 함수의 실행을 시작하는 단계는 상기 제 1 대체 복귀 포인트를 식별하는 단계를 포함하고, 이때, 상기 제 1 대체 복귀 포인트는 상기 기대 복귀 포인트와는 고정 거리만큼 이격되어 위치하는 명령에 의해 식별되는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 제 13항에 있어서, 상기 방법은,- 함수의 실행을 중단하고, 그리고- 상기 제 1 대체 복귀 포인트로 점프하는단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
- 루틴을 실행하기 위한 컴퓨터에 의해 구현되는 방법으로서, 이때, 상기 루틴은 함수 호출과 다수의 복귀 포인트들을 포함하고, 상기 방법은,- 상기 루틴의 실행을 시작하고,- 상기 함수 호출의 실행을 시작하며,- 상기 루틴에 관련된 제 1복귀 주소를 로딩하고,- 상기 함수 호출로부터 제 1복귀 주소로 복귀하며,- 상기 제 1 복귀 주소에 관련된 코드를 실행하고, 이때, 상기 제 1 복귀 주소에 관련된 코드의 실행은 명령에 관련된 비트들을 이진값으로 해역하는 과정을 포함하며, 그리고- 상기 루틴의 실행을 계속하는단계를 포함하는 것을 특징으로 하는 컴퓨터에 의해 구현되는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/944,326 | 1997-10-06 | ||
US08/944,326 US6553426B2 (en) | 1997-10-06 | 1997-10-06 | Method apparatus for implementing multiple return sites |
US8/944,326 | 1997-10-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990036884A KR19990036884A (ko) | 1999-05-25 |
KR100519827B1 true KR100519827B1 (ko) | 2005-12-16 |
Family
ID=25481199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-1998-0041793A KR100519827B1 (ko) | 1997-10-06 | 1998-10-07 | 다수의복귀사이트를구현하기위한방법및그장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6553426B2 (ko) |
EP (1) | EP0908813B1 (ko) |
JP (1) | JP4005724B2 (ko) |
KR (1) | KR100519827B1 (ko) |
CN (1) | CN1122212C (ko) |
DE (1) | DE69807021T2 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317796B1 (en) * | 1997-10-06 | 2001-11-13 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
US6754828B1 (en) * | 1999-07-13 | 2004-06-22 | Intel Corporation | Algorithm for non-volatile memory updates |
US7032100B1 (en) | 1999-12-17 | 2006-04-18 | Koninklijke Philips Electronics N.V. | Simple algorithmic cryptography engine |
GB2358261B (en) * | 2000-01-17 | 2004-06-09 | Advanced Risc Mach Ltd | Data processing with native and interpreted program instruction words |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US7185329B1 (en) | 2003-03-28 | 2007-02-27 | Applied Micro Circuits Corporation | Use of different color sequences for variables of different sizes and different semantics |
US7207032B1 (en) * | 2003-03-28 | 2007-04-17 | Applied Micro Circuits Corporation | Expanding a software program by insertion of statements |
US20040250054A1 (en) * | 2003-06-09 | 2004-12-09 | Stark Jared W. | Line prediction using return prediction information |
KR100658918B1 (ko) * | 2004-03-29 | 2006-12-15 | 주식회사 팬택앤큐리텔 | 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법 |
US8266232B2 (en) * | 2005-10-15 | 2012-09-11 | International Business Machines Corporation | Hardware processing of commands within virtual client computing environment |
US8392895B2 (en) * | 2009-01-13 | 2013-03-05 | Mediatek Inc. | Firmware extension method and firmware builder |
US20140283060A1 (en) * | 2013-03-15 | 2014-09-18 | Oracle International Corporation | Mitigating vulnerabilities associated with return-oriented programming |
US9569185B2 (en) | 2014-02-07 | 2017-02-14 | Oracle International Corporation | Changing de-optimization guard representation during the compilation process |
GB2551548B (en) * | 2016-06-22 | 2019-05-08 | Advanced Risc Mach Ltd | Register restoring branch instruction |
US10152338B2 (en) * | 2016-12-14 | 2018-12-11 | International Business Machines Corporation | Marking external sibling caller routines |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5856153A (ja) | 1981-09-30 | 1983-04-02 | Fujitsu Ltd | サブル−チンリタ−ン方式 |
DE4211966A1 (de) * | 1992-04-09 | 1993-10-14 | Philips Patentverwaltung | Anordnung zum Abspeichern und Auslesen von Rücksprungdaten |
JP3499252B2 (ja) * | 1993-03-19 | 2004-02-23 | 株式会社ルネサステクノロジ | コンパイル装置及びデータ処理装置 |
US5606682A (en) * | 1995-04-07 | 1997-02-25 | Motorola Inc. | Data processor with branch target address cache and subroutine return address cache and method of operation |
JP2857600B2 (ja) * | 1995-05-11 | 1999-02-17 | 松下電器産業株式会社 | プロセッサ及びプログラム翻訳装置 |
-
1997
- 1997-10-06 US US08/944,326 patent/US6553426B2/en not_active Expired - Lifetime
-
1998
- 1998-09-24 EP EP98307743A patent/EP0908813B1/en not_active Expired - Lifetime
- 1998-09-24 DE DE69807021T patent/DE69807021T2/de not_active Expired - Fee Related
- 1998-10-05 CN CN98124305A patent/CN1122212C/zh not_active Expired - Fee Related
- 1998-10-06 JP JP31974098A patent/JP4005724B2/ja not_active Expired - Lifetime
- 1998-10-07 KR KR10-1998-0041793A patent/KR100519827B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0908813B1 (en) | 2002-08-07 |
CN1122212C (zh) | 2003-09-24 |
JPH11224195A (ja) | 1999-08-17 |
DE69807021T2 (de) | 2002-12-12 |
CN1234549A (zh) | 1999-11-10 |
US6553426B2 (en) | 2003-04-22 |
JP4005724B2 (ja) | 2007-11-14 |
EP0908813A3 (en) | 1999-04-28 |
US20020062400A1 (en) | 2002-05-23 |
EP0908813A2 (en) | 1999-04-14 |
DE69807021D1 (de) | 2002-09-12 |
KR19990036884A (ko) | 1999-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100519827B1 (ko) | 다수의복귀사이트를구현하기위한방법및그장치 | |
EP1232430B1 (en) | Optimization of n-base typed arithmetic expressions | |
US4777588A (en) | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance | |
US6324686B1 (en) | Just in time compiler technique | |
US9645795B1 (en) | Accelerated class check | |
JP4485198B2 (ja) | Javaアクセラレータを備えたプロセッサシステム | |
US8261244B2 (en) | Arbitrary runtime function call tracing | |
US7107579B2 (en) | Preserving program context when adding probe routine calls for program instrumentation | |
RU2334268C2 (ru) | Команды для поддержки обработки шифрованного сообщения | |
JP2000181724A (ja) | コンパイルする方法をランタイムにおいて選択する方法及び装置 | |
US8943486B2 (en) | Multiple instruction execution mode resource-constrained device | |
RU2327204C2 (ru) | Обработка управляющей команды аутентификации сообщения для обеспечения безопасности данных | |
US6779188B1 (en) | Apparatus and method for improved devirtualization of method calls | |
US8327122B2 (en) | Method and system for providing context switch using multiple register file | |
JP2007226784A (ja) | インラインされたメソッドの呼出方法およびそれを用いたジャバ仮想マシン | |
CN115994348A (zh) | 程序流水线的控制方法、处理装置和存储介质 | |
US9342319B1 (en) | Accelerated class check | |
US7216137B2 (en) | Method for providing garbage collection support | |
US20050240914A1 (en) | Portable just-in-time compilation in managed runtime environments | |
JPH01291327A (ja) | 処理モード先取り制御方式 | |
KR100246465B1 (ko) | 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법 | |
von Mayrhauser et al. | Teaching engineering disciplines to tool developers | |
JPH05224947A (ja) | 言語処理プログラム実行装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120907 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20130906 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140901 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20150827 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20160831 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20180903 Year of fee payment: 14 |
|
EXPY | Expiration of term |