CA2082409A1 - Improved system and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment - Google Patents

Improved system and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment

Info

Publication number
CA2082409A1
CA2082409A1 CA2082409A CA2082409A CA2082409A1 CA 2082409 A1 CA2082409 A1 CA 2082409A1 CA 2082409 A CA2082409 A CA 2082409A CA 2082409 A CA2082409 A CA 2082409A CA 2082409 A1 CA2082409 A1 CA 2082409A1
Authority
CA
Canada
Prior art keywords
domain
jacketing
cross
calls
routine
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.)
Granted
Application number
CA2082409A
Other languages
French (fr)
Other versions
CA2082409C (en
Inventor
Michael V. Iles
Ronald F. Brender
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Michael V. Iles
Ronald F. Brender
Digital Equipment Corporation
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 Michael V. Iles, Ronald F. Brender, Digital Equipment Corporation filed Critical Michael V. Iles
Publication of CA2082409A1 publication Critical patent/CA2082409A1/en
Application granted granted Critical
Publication of CA2082409C publication Critical patent/CA2082409C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Abstract

A cross-domain call jacketing system is provided in a computer system that embodies a first hardware (X) architecture to executing X-code in an X-domain and which simulates at least a second computer hardware (Y) architecture executing Y-code in a Y-domain. Cross-domain routine calls are jacketed for services in the cross-domain and for returns after the requested services have been performed. After jacketing X routine calls are transmitted for implementation by the simulating subsystem and Y calls are transmitted for implementation in the X domain. Call parameters are transformed from a representation that uses the call conventions of the calling domain to another representation that uses the call conventions of the called domain. Data in the mem-ory is generally globally accessible and the Y calls include data references that require memory access handling in the X domain.
A first jacketing table is provided for each executable routine in the X domain. A second jacketing table is provided for each ex-ecutable routine in the Y domain. A run-time jacketing routine is driven by the jacketing tables to drive the call parameter trans-formations needed to complete cross-domain calls.
CA002082409A 1991-03-07 1992-03-05 Improved system and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment Expired - Fee Related CA2082409C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/665,752 US5339422A (en) 1991-03-07 1991-03-07 System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
US665,752 1991-03-07

Publications (2)

Publication Number Publication Date
CA2082409A1 true CA2082409A1 (en) 1992-09-08
CA2082409C CA2082409C (en) 1996-08-13

Family

ID=24671439

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002082409A Expired - Fee Related CA2082409C (en) 1991-03-07 1992-03-05 Improved system and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment

Country Status (12)

Country Link
US (1) US5339422A (en)
EP (1) EP0530350B1 (en)
JP (1) JPH0769835B2 (en)
KR (1) KR960003137B1 (en)
AU (1) AU658413B2 (en)
CA (1) CA2082409C (en)
DE (1) DE69226484T2 (en)
IE (1) IE920748A1 (en)
IL (1) IL100996A (en)
MX (1) MX9200940A (en)
TW (1) TW299414B (en)
WO (1) WO1992015962A2 (en)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680590A (en) * 1990-09-21 1997-10-21 Parti; Michael Simulation system and method of using same
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
EP0532744B1 (en) * 1991-03-07 1996-12-18 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
FR2698189B1 (en) * 1992-11-13 1994-12-30 Bull Sa Network code stimulation tool.
JPH06309193A (en) * 1993-04-27 1994-11-04 Toshiba Corp Method and device for verifying operation of machine language program
US6684261B1 (en) 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
DE69505717T2 (en) * 1994-03-08 1999-06-24 Digital Equipment Corp Method and apparatus for determining and making cross-routine subroutine calls
WO1995033235A1 (en) * 1994-05-31 1995-12-07 Fujitsu Limited System and method for executing job between different operating systems
SE504860C2 (en) * 1994-09-02 1997-05-12 Ericsson Telefon Ab L M Interface reference model
JP3451595B2 (en) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション Microprocessor with architectural mode control capable of supporting extension to two distinct instruction set architectures
US6260075B1 (en) 1995-06-19 2001-07-10 International Business Machines Corporation System and method for providing shared global offset table for common shared library in a computer system
US5815716A (en) * 1995-10-06 1998-09-29 International Business Machines Corporation Method for supporting multiple call interface conventions for computer programs using directives
US5881278A (en) * 1995-10-30 1999-03-09 Advanced Micro Devices, Inc. Return address prediction system which adjusts the contents of return stack storage to enable continued prediction after a mispredicted branch
US5864707A (en) * 1995-12-11 1999-01-26 Advanced Micro Devices, Inc. Superscalar microprocessor configured to predict return addresses from a return stack storage
US6336146B1 (en) * 1995-12-22 2002-01-01 Sun Microsystems, Inc. Method and apparatus for docking, launching and running applications in a foreign environment
US6226789B1 (en) 1996-01-29 2001-05-01 Compaq Computer Corporation Method and apparatus for data flow analysis
US5842017A (en) * 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
US6535903B2 (en) 1996-01-29 2003-03-18 Compaq Information Technologies Group, L.P. Method and apparatus for maintaining translated routine stack in a binary translation environment
US5930509A (en) * 1996-01-29 1999-07-27 Digital Equipment Corporation Method and apparatus for performing binary translation
US6000028A (en) * 1996-01-29 1999-12-07 Digital Equipment Corporation Means and apparatus for maintaining condition codes in an unevaluated state
US5802373A (en) * 1996-01-29 1998-09-01 Digital Equipment Corporation Method for providing a pipeline interpreter for a variable length instruction set
US6091897A (en) 1996-01-29 2000-07-18 Digital Equipment Corporation Fast translation and execution of a computer program on a non-native architecture by use of background translator
DE69704004T2 (en) * 1996-06-19 2001-06-07 Matsushita Electric Ind Co Ltd Debugging device
US6360244B1 (en) * 1997-04-11 2002-03-19 Fujitsu Limited System and method for multi-level memory domain protection
US5920721A (en) * 1997-06-11 1999-07-06 Digital Equipment Corporation Compiler generating functionally-alike code sequences in an executable program intended for execution in different run-time environments
DE19725593A1 (en) * 1997-06-17 1999-01-07 Siemens Nixdorf Inf Syst Method for controlling a data processing system
US6141697A (en) * 1997-06-25 2000-10-31 Unisys Corp. System and method for performing external procedure calls in heterogeneous computer systems utilizing program stacks
US6151638A (en) * 1997-06-25 2000-11-21 Unisys Corp. System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer
US6289391B1 (en) 1997-06-25 2001-09-11 Unisys Corp. System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer
US6192418B1 (en) 1997-06-25 2001-02-20 Unisys Corp. System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer
US6065045A (en) * 1997-07-03 2000-05-16 Tandem Computers Incorporated Method and apparatus for object reference processing
US6157959A (en) * 1997-07-03 2000-12-05 Tandem Computers, Incorporated Method and apparatus for providing portable kernel-mode support for fast interprocess communication
EP1040414B1 (en) 1997-12-17 2002-07-10 Fujitsu Siemens Computers GmbH Method for converting a system call
US6029000A (en) * 1997-12-22 2000-02-22 Texas Instruments Incorporated Mobile communication system with cross compiler and cross linker
US8489860B1 (en) * 1997-12-22 2013-07-16 Texas Instruments Incorporated Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device
KR20010072477A (en) * 1998-08-13 2001-07-31 썬 마이크로시스템즈, 인코포레이티드 Method and apparatus of translating and executing native code in a virtual machine environment
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
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
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
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
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
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
EP2320318A1 (en) * 1999-01-28 2011-05-11 ATI Technologies ULC Executing programs for a first computer architecture on a computer of a second architecture
US6549959B1 (en) 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
EP1117220A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Method and system for protocol conversion
EP1117033A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Dynamic dispatch function
EP1122644A1 (en) * 2000-01-14 2001-08-08 Sun Microsystems, Inc. A method and system for dynamically dispatching function calls from a first execution environment to a second execution environment
EP1117035A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Runtime environment component services
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7574346B2 (en) * 2000-10-30 2009-08-11 Microsoft Corporation Kernel emulator for non-native program modules
US20020083421A1 (en) * 2000-12-22 2002-06-27 Hitachi America, Ltd. Assembly language code compilation for an instruction-set architecture containing new instructions using the prior assembler
US7406682B2 (en) * 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
US20020147963A1 (en) * 2001-04-09 2002-10-10 Lee Rusty Shawn Method and apparatus for generating machine control instructions
US7640153B2 (en) * 2001-06-04 2009-12-29 Hewlett-Packard Development Company, L.P. Networked client-server architecture for transparently transforming and executing applications
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US7251811B2 (en) * 2002-01-02 2007-07-31 Intel Corporation Controlling compatibility levels of binary translations between instruction set architectures
JP4500040B2 (en) 2003-01-06 2010-07-14 パナソニック株式会社 COMPILER PROGRAM, COMPUTER-READABLE RECORDING MEDIUM CONTAINING COMPILER PROGRAM, COMPILING METHOD, AND COMPILING DEVICE
TW588238B (en) * 2003-02-13 2004-05-21 Micro Star Int Co Ltd Program debugging method
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
US20050097407A1 (en) * 2003-11-04 2005-05-05 Weijia Zhang System and method for management of remote software deployment to information handling systems
US8078740B2 (en) 2005-06-03 2011-12-13 Microsoft Corporation Running internet applications with low rights
US8185737B2 (en) 2006-06-23 2012-05-22 Microsoft Corporation Communication across domains
US8250082B2 (en) * 2006-06-23 2012-08-21 Microsoft Corporation Cross domain communication
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US8359602B2 (en) * 2008-02-21 2013-01-22 Ca, Inc. Method and system for task switching with inline execution
US10089119B2 (en) 2009-12-18 2018-10-02 Microsoft Technology Licensing, Llc API namespace virtualization
US8776094B2 (en) 2011-08-11 2014-07-08 Microsoft Corporation Runtime system
US8695021B2 (en) * 2011-08-31 2014-04-08 Microsoft Corporation Projecting native application programming interfaces of an operating system into other programming languages
WO2014066331A1 (en) * 2012-10-25 2014-05-01 Unisys Corporation Performance monitoring of virtualized instructions
US10127138B2 (en) * 2013-06-06 2018-11-13 Microsoft Technology Licensing, Llc. Debugging native code by transitioning from execution in native mode to execution in interpreted mode
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
US10983811B2 (en) 2018-06-03 2021-04-20 Apple Inc. Multi-process model for cross-platform applications

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2060225B (en) * 1979-09-29 1983-05-25 Plessey Co Ltd Multi-programming data processing system process suspension
US4454580A (en) * 1981-09-16 1984-06-12 International Business Machines Corporation Program call method and call instruction execution apparatus
JPS6133546A (en) * 1984-07-25 1986-02-17 Nec Corp Information processor
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
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
JP2666847B2 (en) * 1988-06-06 1997-10-22 日本電気株式会社 Heterogeneous language communication method
US4949255A (en) * 1988-09-07 1990-08-14 International Business Machines Corp. Message interface and method for recursive calling between interpretive and compiled computer processes
US5146593A (en) * 1989-03-06 1992-09-08 International Business Machines Corporation Procedure call interface
US5218699A (en) * 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5093917A (en) * 1990-01-17 1992-03-03 Ag Communication Systems Corporation Method for passing data parameters between a calling program and a called subroutine in a command analysis table of a computer stored data base system

Also Published As

Publication number Publication date
DE69226484D1 (en) 1998-09-10
US5339422A (en) 1994-08-16
DE69226484T2 (en) 1999-04-29
WO1992015962A2 (en) 1992-09-17
TW299414B (en) 1997-03-01
KR960003137B1 (en) 1996-03-05
AU1644292A (en) 1992-10-06
IL100996A (en) 1996-01-19
MX9200940A (en) 1993-03-01
EP0530350B1 (en) 1998-08-05
JPH0769835B2 (en) 1995-07-31
JPH06502736A (en) 1994-03-24
EP0530350A1 (en) 1993-03-10
CA2082409C (en) 1996-08-13
WO1992015962A3 (en) 1993-02-04
IE920748A1 (en) 1992-09-09
AU658413B2 (en) 1995-04-13

Similar Documents

Publication Publication Date Title
CA2082409A1 (en) Improved system and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
CA2149870A1 (en) Object-oriented host system
CA2082066A1 (en) Software debugging system and method especially adapted for code debugging within a multi-architecture environment
CA2002201A1 (en) Translation technique
CA2242516C (en) Distributed processing
CA2061117A1 (en) Apparatus and method for distributed program stack
WO1994023363A3 (en) Loader system
AU5801294A (en) An apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
CA2080401A1 (en) Network system and its software management method
GB9721591D0 (en) Image processing system,method and computer program product
CA2294233A1 (en) A computer graphics system
EP0862759A4 (en) Dynamic programmable mode switching device driver architecture
US6301703B1 (en) Method for transforming state-based IVR applications into executable sequences of code
CN103678099B (en) A kind of method and device realizing hardware platform and software platform communication
EP0632375A3 (en) Multiple-execution method of multiple-version programs and computer system therefor.
CA2168741A1 (en) Architecture for modular computer system in which one of the modules is dedicated to user-interface task
Blair et al. Incorporating multimedia in distributed open systems
McComb et al. Architectural design in Object-Z
US5632033A (en) Variable resolution method and arrangement
EP0352908A3 (en) Computing system and method used to provide instruction to a user for a plurality of computer applications
CA2234796A1 (en) Portable object-oriented operating system
Löhr Beyond Concurrent Pascal
Bruegge et al. The Warp programming environment
Thomas JSYS traps: a TENEX mechanism for encapsulation of user processes
WO1998055932A3 (en) Processor interfacing to memory mapped computing engine

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed