KR960042340A - 프로그램변환장치 및 프로세서 - Google Patents
프로그램변환장치 및 프로세서 Download PDFInfo
- Publication number
- KR960042340A KR960042340A KR1019960015311A KR19960015311A KR960042340A KR 960042340 A KR960042340 A KR 960042340A KR 1019960015311 A KR1019960015311 A KR 1019960015311A KR 19960015311 A KR19960015311 A KR 19960015311A KR 960042340 A KR960042340 A KR 960042340A
- Authority
- KR
- South Korea
- Prior art keywords
- subroutine
- instruction
- file
- branching
- processing
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4451—Avoiding pipeline stalls
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
본 발명은, 서브루틴을 호출하는 명령과 호출되는 서브루틴이 다른 파일에 배치되어 있는 소오스프로그램이라 하더라도, 이 파이프라인의 흐트러짐을 발생하는 일없이 서브루틴을 호출할 수 잇는 실행오브젝트를 생성하는 프로그램변환장치 및 그 실행오브젝트를 실행하는 프로세서를 제공하는 것을 목적으로 하며, 그 구성에 있어서, 소오스프로그램이 부여되면, 기계어명령 열로 번역하는 동시에, 프로그램중의 서브루틴에 대해서, 각 서브루틴마다 필요하게 되는 스택사이즈와 퇴피해야할 레지스터명을 검출해서 기계어명령열과 함께 파일에 격납해둔다. 복수파일에 격납된 기계어명령을 연결할때에, 번역시에 격납해둔 스택과 레지스터에 관한 정보를 판독한다. 그 정보에 의거해서, 기계어명령열중에서 사용되고 있는 서브루틴으로의 분기명령을, 서브루틴으로의 분기와 레지스터의 퇴피와 스택의 확보를 일련으로 실행하는 서브루틴콜명령으로 치환하는 것을 특징으로 한다.
Description
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명의 제1실시예에 관한 프로그램변환장치의 구성을 표시한 블록도, 제2도는 동 실시예에 있어서의 입력파일A101에 수납되어 있는 메인프로그램f()의 소오스프로그램의 리스트, 제3도는 동 실시에의 있어서의 입력파일B102에 수납되어 있는 서브루틴g()의 소오스프로그램의 리스트. 제4도는 동 실시예에 있어서의 출력파일A106에 수납된 메인프로그램f()의 기계어(機械語)명령의 리스트.
Claims (6)
- 프로그램을 기계어명령열로 번역하여 파일로서 출력하는 번역장치와, 복수의 상기 파일에 수납된 기계어 명령열을 연결하는 연결장치로 이루어지는 프로그램변환장치로서, 상기 번역장치는 프로그램에 포함되는 서브루틴에 대해서, 각 서브루틴마다 필요하게 되는 스택사이즈를 추출해서 서브루틴의 기계어명령열과 함께 상기 파일에 격납하는 스택사이즈추출수단을 구비하고, 상기 연결장치는, 상기 기계어명령열중에서 서브루틴으로의 분기명령을 검출하는 분기명령검출수단과, 검출된 분기명령이 지정하고 있는 분기선 서브 루틴을 수납한 파일을 특정하는 파일검색수단과, 상기 분기선서브루틴에서 필요하게 되는 스택사이즈를 상기 파일검색수단에 의해서 특정된 파일로부터 판독하는 스택사이즈획득수단과, 상기 분기 명령을, 상기 분기선서브루틴으로 분기하는 처리와 상기 스택사이즈획득 수단에 의해 판독된 스택사이즈분의 스택을 확보하는 처리를 일련으로 실행하는 것을 내용으로 하는 기계어명령으로 치환하는 치환수단을 구비하는 것을 특징으로 하는 프로그램변환장치.
- 제1항에 있어서, 상기 치환수단은, 상기 분기명령을, 상기 분기선 서브루틴으로 분기하는 처리와 상기 스택사이즈획득수단에 의해 판독된 스택사이즈분의 스택을 확보하는 처리를 일련으로 실행하는 것을 내용으로 하는 단일의 기계어 명령으로 치환하는 것을 특징으로 하는 프로그램변환장치.
- 기계어명령열을 차례로 하나하나 해석해서 실행하는 프로세서로서, 부여된 기계어명령이 소정의 서브루틴콜명령인지 어떤지를 판단하는 명령디코드수단과, 상기 명령디코드수단에 의해 소정의 서브루틴콜명령이라고 판단되었을 경우에는, 그 서브루틴콜명령에 포함되는 분기선번지로 분기하는 처리와 그 서브루틴콜명령에 포함되는 스택사이즈의 스택을 확보하는 처리를 일련으로 실행하는 수단을 구비하는 것을 특징으로 하는 프로세서.
- 프로그램을 기계어명령열로 번역하고, 파일로서 출력하는 번역장치와, 복수의 상기 파일에 수납된 기계어 명령을 연결하는 연결장치로 이루어지는 프로그램변환장치로서, 상기 번역장치는, 상기 프로그램에 포함되는 서브루틴에 대해서, 각 서브루틴에서의 처리에 있어서 퇴피(退避)해야할 레지스터명을 추출해서 서브루틴의 기계어명령열과 함께 상기 파일에 겨갑하는 퇴피레지스터추출수단을 구비하고, 상기 연결장치는, 상기 기계어명령열중에서 서브루틴으로의 분기명령을 검출하는 분기명령검출수단과, 검출된 분기명령이 지정하고 있는 분기선 서브루틴을 수납한 파일을 특정하는 파일검색수단과, 상기 분기선서브루틴에서의 처리에 있어서 퇴피해야할 레지스터명을 상기 파일검색수단에 의해서 특정된 파일로부터 판독되는 퇴피레지스터획득수단과, 상기 분기명령을, 상기 분기선서브루틴으로 분기하는 처리와 상기 퇴피레지스터획득수단에 의해 판독된 레지스터의 내용을 퇴피하는 처리를 일련으로 실행하는 것을 내용으로 하는 기계어명령으로 치환하는 치환수단을 구비하는 것을 특징으로 하는 프로그램변환장치.
- 제4항에 있어서, 상기 치환수단은, 상기 분기명령을, 상기 분기선서브루틴으로 분기하는 처리와 상기 퇴피레지스터획득수단에 의해 판독된 레지스터의 내용을 퇴피하는 처리를 일련으로 실행하는 것을 내용으로 하는 단일기계어 명령으로 치환하는 것을 특징으로 하는 프로그램변환장치.
- 기계어 명령열을 차례로 하나하나 해석해서 실행하는 프로세서로서, 부여된 기계어 명령이 소정의 서브루틴콜명령인지 어떤지를 판단하는 명령디코드수단과, 상기 명령디코드수단에 의해 소정의 서브루틴명령이라고 판단되었을 경우에는, 그 서브루틴콜명령에 포함되는 분기선번지로 분기하는 처리와 그 서브루틴콜명령에 의해 지정되는 레지스터의 내용을 퇴피하는 처리를 일련으로 실행하는 수단을 구비하는 것을 특징으로 하는 프로세서.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07111701A JP3130446B2 (ja) | 1995-05-10 | 1995-05-10 | プログラム変換装置及びプロセッサ |
JP95-111701 | 1995-05-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960042340A true KR960042340A (ko) | 1996-12-21 |
KR100247900B1 KR100247900B1 (ko) | 2000-03-15 |
Family
ID=14567971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960015311A KR100247900B1 (ko) | 1995-05-10 | 1996-05-10 | 프로그램변환장치 및 프로세서 |
Country Status (7)
Country | Link |
---|---|
US (2) | US5758162A (ko) |
EP (1) | EP0742517B1 (ko) |
JP (1) | JP3130446B2 (ko) |
KR (1) | KR100247900B1 (ko) |
CN (1) | CN1099074C (ko) |
DE (1) | DE69614183T2 (ko) |
TW (1) | TW289812B (ko) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790845A (en) * | 1995-02-24 | 1998-08-04 | Hitachi, Ltd. | System with reservation instruction execution to store branch target address for use upon reaching the branch point |
JP3130446B2 (ja) * | 1995-05-10 | 2001-01-31 | 松下電器産業株式会社 | プログラム変換装置及びプロセッサ |
US6021273A (en) | 1997-06-30 | 2000-02-01 | Sun Microsystems, Inc. | Interpreter generation and implementation utilizing interpreter states and register caching |
US6513156B2 (en) | 1997-06-30 | 2003-01-28 | Sun Microsystems, Inc. | Interpreting functions utilizing a hybrid of virtual and native machine instructions |
US6016556A (en) * | 1997-07-17 | 2000-01-18 | Tektronix, Inc. | System for identifying an acquisition sample corresponding to a source code statement |
EP1645956A3 (en) * | 1997-08-29 | 2008-02-13 | Matsushita Electric Industrial Co., Ltd. | Instruction conversion apparatus for reducing the number of types of instructions |
US6317796B1 (en) * | 1997-10-06 | 2001-11-13 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
US6212630B1 (en) | 1997-12-10 | 2001-04-03 | Matsushita Electric Industrial Co., Ltd. | Microprocessor for overlapping stack frame allocation with saving of subroutine data into stack area |
JP4041248B2 (ja) * | 1999-07-09 | 2008-01-30 | 松下電器産業株式会社 | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 |
EP1236092A4 (en) * | 1999-09-01 | 2006-07-26 | Intel Corp | BRANCH COMMAND FOR A PROCESSOR |
JP3664473B2 (ja) * | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
US7383443B2 (en) * | 2002-06-27 | 2008-06-03 | Microsoft Corporation | System and method for obfuscating code using instruction replacement scheme |
JP2004362086A (ja) * | 2003-06-03 | 2004-12-24 | Matsushita Electric Ind Co Ltd | 情報処理装置および機械語プログラム変換装置 |
US7788638B2 (en) | 2003-11-21 | 2010-08-31 | Citigroup Global Markets Inc. | Method and system for data file processing |
US8959500B2 (en) * | 2006-12-11 | 2015-02-17 | Nytell Software LLC | Pipelined processor and compiler/scheduler for variable number branch delay slots |
US8813057B2 (en) * | 2007-03-31 | 2014-08-19 | Intel Corporation | Branch pruning in architectures with speculation support |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321823A (en) * | 1988-07-20 | 1994-06-14 | Digital Equipment Corporation | Digital processor with bit mask for counting registers for fast register saves |
US5274820A (en) * | 1989-08-14 | 1993-12-28 | International Business Machines Corporation | Method and system for eliminating operation codes from intermediate prolog instructions |
US5222220A (en) * | 1989-11-16 | 1993-06-22 | Mehta Hemang S | Microprocessor stack built-in guards |
EP0463965B1 (en) * | 1990-06-29 | 1998-09-09 | Digital Equipment Corporation | Branch prediction unit for high-performance processor |
JPH0619721A (ja) * | 1991-02-21 | 1994-01-28 | Oki Electric Ind Co Ltd | 機械語翻訳最適化方式 |
US5450585A (en) * | 1991-05-15 | 1995-09-12 | International Business Machines Corporation | Compiler with delayed conditional branching |
JPH0744419A (ja) * | 1993-08-03 | 1995-02-14 | Nec Ic Microcomput Syst Ltd | マイコン開発支援装置 |
US5375242A (en) | 1993-09-29 | 1994-12-20 | Hewlett-Packard Company | Compiler architecture for cross-module optimization |
JP3130446B2 (ja) * | 1995-05-10 | 2001-01-31 | 松下電器産業株式会社 | プログラム変換装置及びプロセッサ |
-
1995
- 1995-05-10 JP JP07111701A patent/JP3130446B2/ja not_active Expired - Lifetime
-
1996
- 1996-01-22 US US08/589,802 patent/US5758162A/en not_active Expired - Lifetime
- 1996-02-23 EP EP96301214A patent/EP0742517B1/en not_active Expired - Lifetime
- 1996-02-23 DE DE69614183T patent/DE69614183T2/de not_active Expired - Lifetime
- 1996-02-27 TW TW085102244A patent/TW289812B/zh not_active IP Right Cessation
- 1996-03-22 CN CN96103712A patent/CN1099074C/zh not_active Expired - Lifetime
- 1996-05-10 KR KR1019960015311A patent/KR100247900B1/ko not_active IP Right Cessation
-
1997
- 1997-11-18 US US08/959,386 patent/US5978905A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5758162A (en) | 1998-05-26 |
CN1138174A (zh) | 1996-12-18 |
EP0742517A2 (en) | 1996-11-13 |
KR100247900B1 (ko) | 2000-03-15 |
DE69614183D1 (de) | 2001-09-06 |
DE69614183T2 (de) | 2001-11-29 |
EP0742517A3 (en) | 1997-05-28 |
EP0742517B1 (en) | 2001-08-01 |
CN1099074C (zh) | 2003-01-15 |
JP3130446B2 (ja) | 2001-01-31 |
US5978905A (en) | 1999-11-02 |
TW289812B (ko) | 1996-11-01 |
JPH08305581A (ja) | 1996-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960042340A (ko) | 프로그램변환장치 및 프로세서 | |
US8156471B2 (en) | Multi-language execution method | |
JP2666847B2 (ja) | 異種言語間連絡方式 | |
KR910017256A (ko) | 프로그램 가능한 제어기 | |
JPH05505274A (ja) | 2個の非類似プログラムユニット間の呼出規格を自動的にインターフェイスさせるシステム及び方法 | |
KR970005021A (ko) | 2개의 명령을 동시에 실행할 수 있는 데이타프로세서 | |
JP2011086298A (ja) | プログラム・フロー制御 | |
KR950027561A (ko) | 처리 시스템 및 그의 동작 방법 | |
KR930016884A (ko) | 데이터 처리장치 | |
JPH10301790A (ja) | アセンブル処理方式 | |
JP3335735B2 (ja) | 演算処理装置 | |
JPH09288595A (ja) | 演算処理装置 | |
JPH04268928A (ja) | エミュレーション装置及び半導体装置 | |
CN116048903A (zh) | 多线程测试用例的生成方法及装置、电子设备、存储介质 | |
JP2000132405A (ja) | インライン展開処理装置及び方法 | |
JP2811804B2 (ja) | 変数出力範囲指定方式 | |
JPS604492B2 (ja) | 計算機 | |
KR900010559A (ko) | 중첩된 메모리 액세스방법을 이용한 파이프라인설계 | |
KR970062891A (ko) | 연산 실행 방법 및 연산 실행 장치 | |
JPH0619713B2 (ja) | 論理型デ−タ処理装置 | |
KR930010721A (ko) | 프로그램 개발장치의 디버거 시스템 및 그 제어방법 | |
JPS62204341A (ja) | デ−タ処理装置 | |
JP2001273150A (ja) | プログラム変換装置 | |
KR870008249A (ko) | 마이크로프로그램 제어장치 및 그 제어방법 | |
JPS59225449A (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: 20131119 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20141117 Year of fee payment: 16 |
|
FPAY | Annual fee payment |
Payment date: 20151118 Year of fee payment: 17 |
|
EXPY | Expiration of term |