KR960042340A - 프로그램변환장치 및 프로세서 - Google Patents

프로그램변환장치 및 프로세서 Download PDF

Info

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
Application number
KR1019960015311A
Other languages
English (en)
Other versions
KR100247900B1 (ko
Inventor
슈이치 타카야마
노부오 하가키
노부키 토미나가
신야 미야지
세이이치 우루시바라
Original Assignee
모리시타 요이찌
마쯔시다덴기산교 가부시기가이샤
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 모리시타 요이찌, 마쯔시다덴기산교 가부시기가이샤 filed Critical 모리시타 요이찌
Publication of KR960042340A publication Critical patent/KR960042340A/ko
Application granted granted Critical
Publication of KR100247900B1 publication Critical patent/KR100247900B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4451Avoiding pipeline stalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link 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. 프로그램을 기계어명령열로 번역하여 파일로서 출력하는 번역장치와, 복수의 상기 파일에 수납된 기계어 명령열을 연결하는 연결장치로 이루어지는 프로그램변환장치로서, 상기 번역장치는 프로그램에 포함되는 서브루틴에 대해서, 각 서브루틴마다 필요하게 되는 스택사이즈를 추출해서 서브루틴의 기계어명령열과 함께 상기 파일에 격납하는 스택사이즈추출수단을 구비하고, 상기 연결장치는, 상기 기계어명령열중에서 서브루틴으로의 분기명령을 검출하는 분기명령검출수단과, 검출된 분기명령이 지정하고 있는 분기선 서브 루틴을 수납한 파일을 특정하는 파일검색수단과, 상기 분기선서브루틴에서 필요하게 되는 스택사이즈를 상기 파일검색수단에 의해서 특정된 파일로부터 판독하는 스택사이즈획득수단과, 상기 분기 명령을, 상기 분기선서브루틴으로 분기하는 처리와 상기 스택사이즈획득 수단에 의해 판독된 스택사이즈분의 스택을 확보하는 처리를 일련으로 실행하는 것을 내용으로 하는 기계어명령으로 치환하는 치환수단을 구비하는 것을 특징으로 하는 프로그램변환장치.
  2. 제1항에 있어서, 상기 치환수단은, 상기 분기명령을, 상기 분기선 서브루틴으로 분기하는 처리와 상기 스택사이즈획득수단에 의해 판독된 스택사이즈분의 스택을 확보하는 처리를 일련으로 실행하는 것을 내용으로 하는 단일의 기계어 명령으로 치환하는 것을 특징으로 하는 프로그램변환장치.
  3. 기계어명령열을 차례로 하나하나 해석해서 실행하는 프로세서로서, 부여된 기계어명령이 소정의 서브루틴콜명령인지 어떤지를 판단하는 명령디코드수단과, 상기 명령디코드수단에 의해 소정의 서브루틴콜명령이라고 판단되었을 경우에는, 그 서브루틴콜명령에 포함되는 분기선번지로 분기하는 처리와 그 서브루틴콜명령에 포함되는 스택사이즈의 스택을 확보하는 처리를 일련으로 실행하는 수단을 구비하는 것을 특징으로 하는 프로세서.
  4. 프로그램을 기계어명령열로 번역하고, 파일로서 출력하는 번역장치와, 복수의 상기 파일에 수납된 기계어 명령을 연결하는 연결장치로 이루어지는 프로그램변환장치로서, 상기 번역장치는, 상기 프로그램에 포함되는 서브루틴에 대해서, 각 서브루틴에서의 처리에 있어서 퇴피(退避)해야할 레지스터명을 추출해서 서브루틴의 기계어명령열과 함께 상기 파일에 겨갑하는 퇴피레지스터추출수단을 구비하고, 상기 연결장치는, 상기 기계어명령열중에서 서브루틴으로의 분기명령을 검출하는 분기명령검출수단과, 검출된 분기명령이 지정하고 있는 분기선 서브루틴을 수납한 파일을 특정하는 파일검색수단과, 상기 분기선서브루틴에서의 처리에 있어서 퇴피해야할 레지스터명을 상기 파일검색수단에 의해서 특정된 파일로부터 판독되는 퇴피레지스터획득수단과, 상기 분기명령을, 상기 분기선서브루틴으로 분기하는 처리와 상기 퇴피레지스터획득수단에 의해 판독된 레지스터의 내용을 퇴피하는 처리를 일련으로 실행하는 것을 내용으로 하는 기계어명령으로 치환하는 치환수단을 구비하는 것을 특징으로 하는 프로그램변환장치.
  5. 제4항에 있어서, 상기 치환수단은, 상기 분기명령을, 상기 분기선서브루틴으로 분기하는 처리와 상기 퇴피레지스터획득수단에 의해 판독된 레지스터의 내용을 퇴피하는 처리를 일련으로 실행하는 것을 내용으로 하는 단일기계어 명령으로 치환하는 것을 특징으로 하는 프로그램변환장치.
  6. 기계어 명령열을 차례로 하나하나 해석해서 실행하는 프로세서로서, 부여된 기계어 명령이 소정의 서브루틴콜명령인지 어떤지를 판단하는 명령디코드수단과, 상기 명령디코드수단에 의해 소정의 서브루틴명령이라고 판단되었을 경우에는, 그 서브루틴콜명령에 포함되는 분기선번지로 분기하는 처리와 그 서브루틴콜명령에 의해 지정되는 레지스터의 내용을 퇴피하는 처리를 일련으로 실행하는 수단을 구비하는 것을 특징으로 하는 프로세서.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019960015311A 1995-05-10 1996-05-10 프로그램변환장치 및 프로세서 KR100247900B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 松下電器産業株式会社 プログラム変換装置及びプロセッサ

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