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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Devices For Executing Special Programs (AREA)

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
CA2082066C (en) * 1991-03-07 1998-04-21 James A. Wooldridge 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
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US6684261B1 (en) 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
EP0671685B1 (en) * 1994-03-08 1998-11-04 Digital Equipment Corporation Method and apparatus for detecting and executing cross-domain calls in a computer system
KR100289826B1 (en) * 1994-05-31 2001-05-15 아끼구사 나오유끼 Job execution system and method 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
US5842017A (en) * 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
US5802373A (en) * 1996-01-29 1998-09-01 Digital Equipment Corporation Method for providing a pipeline interpreter for a variable length instruction set
US5930509A (en) * 1996-01-29 1999-07-27 Digital Equipment Corporation Method and apparatus for performing binary translation
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
US6000028A (en) * 1996-01-29 1999-12-07 Digital Equipment Corporation Means and apparatus for maintaining condition codes in an unevaluated state
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
US6226789B1 (en) 1996-01-29 2001-05-01 Compaq Computer Corporation Method and apparatus for data flow analysis
EP0814404B1 (en) * 1996-06-19 2001-01-31 Matsushita Electric Industrial Co., Ltd. Debugging apparatus for debugging a program
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
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
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
US6157959A (en) * 1997-07-03 2000-12-05 Tandem Computers, Incorporated Method and apparatus for providing portable kernel-mode support for fast interprocess communication
US6065045A (en) * 1997-07-03 2000-05-16 Tandem Computers Incorporated Method and apparatus for object reference processing
JP2002508565A (en) 1997-12-17 2002-03-19 フジツウ シーメンス コンピューターズ ゲゼルシャフト ミット ベシュレンクテル ハフツング How to translate system calls
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
US6029000A (en) * 1997-12-22 2000-02-22 Texas Instruments Incorporated Mobile communication system with cross compiler and cross linker
KR20010072477A (en) * 1998-08-13 2001-07-31 썬 마이크로시스템즈, 인코포레이티드 Method and apparatus of translating and executing native code in a virtual machine environment
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
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
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
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
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
EP2275930B1 (en) * 1999-01-28 2017-06-14 Advanced Silicon Technologies, LLC Executing programs for a first computer architecture on a computer of a second architecture
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
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
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8121828B2 (en) 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
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
US6549959B1 (en) 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
EP1117033A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Dynamic dispatch function
EP1117035A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Runtime environment component services
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
EP1117220A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Method and system for protocol conversion
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US7574346B2 (en) * 2000-10-30 2009-08-11 Microsoft Corporation Kernel emulator for non-native program modules
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
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
US8250082B2 (en) * 2006-06-23 2012-08-21 Microsoft Corporation Cross domain communication
US8185737B2 (en) 2006-06-23 2012-05-22 Microsoft Corporation Communication across domains
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
AU658413B2 (en) 1995-04-13
JPH0769835B2 (en) 1995-07-31
KR960003137B1 (en) 1996-03-05
EP0530350A1 (en) 1993-03-10
AU1644292A (en) 1992-10-06
WO1992015962A3 (en) 1993-02-04
IL100996A (en) 1996-01-19
DE69226484D1 (en) 1998-09-10
MX9200940A (en) 1993-03-01
WO1992015962A2 (en) 1992-09-17
TW299414B (en) 1997-03-01
US5339422A (en) 1994-08-16
EP0530350B1 (en) 1998-08-05
JPH06502736A (en) 1994-03-24
IE920748A1 (en) 1992-09-09
DE69226484T2 (en) 1999-04-29
CA2082409C (en) 1996-08-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
CA2168762A1 (en) Flexible Multi-Platform Partitioning for Computer Applications
CA2149870A1 (en) Object-oriented host system
Ossher et al. Multi-dimensional separation of concerns in hyperspace
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
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
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
WO1998055932A3 (en) Processor interfacing to memory mapped computing engine
KR970029099A (en) Real time interfacing method between emulator and host

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed