"Control Flow Management for Execution of Dynamically Translated Non-Native Code in a Virtual Hosting Environment" in Patent Application Approval Process
This patent application is assigned to
The following quote was obtained by the news editors from the background information supplied by the inventors: "The present invention is related to dynamic translation and execution of non-native program code in a virtual hosting environment, and more particularly to techniques for efficiently handling control flow changes while executing translated program code.
"Virtualized computing systems, also known as cloud computing systems, provide large-scale computing functionality in applications such as management of large databases and scientific computing, and large-quantity server functionality in applications such as web page servers and other Internet traffic handling. A virtualized computer system typically provides a platform for executing instances of different operating systems, and hosting multiple applications within each operating systems instance. The computer hardware employed is also virtualized in the sense that multiple distributed processors and local memories form a large-scale multiprocessing system with a distributed system memory.
"Dynamic code translation of non-native executables, including operating systems and program code, can be accomplished using code translation, i.e., emulation of the native processor by another processor using translated native code. Such translation provides for execution of the non-native code on processors that provide other native functionality when executing other operating systems/programs and that may provide enhanced performance and/or reduced cost over providing a dedicated processor and operating system that can natively handle the program code that otherwise requires translation.
"However, there are several difficulties introduced when performing dynamic translation of non-native program code in a virtualized computing system. Since the guest operating system controls the mapping of guest virtual memory to guest physical memory, the host operating system does not necessarily have access to the mapping information. Further, since the guest operating system controls whether or not the un-translated guest program code is invalidated or modified, the host operating system cannot typically predict the flow of the guest program. In particular, when branch instructions are encountered, if the branch instruction target virtual address is in a different physical memory page than the branch instruction, then the physical code page containing the translated program code corresponding to the un-translated code at the target address must be located and if the page is cached, the page will be accessed. The delay in performing such address resolution may be very high and if the branch instruction is executed many times, the system performance penalty will be significant.
"Therefore, it would be desirable to provide a method and program within a computer system that provides dynamic translation and execution of non-native guest programs that accelerates translation of guest code control instruction target virtual addresses."
In addition to the background information obtained for this patent application, VerticalNews journalists also obtained the inventor's summary information for this patent application: "The invention is embodied in a computer-performed method, computer program product and computer system that provide virtualized execution environments for non-native programs and operating systems.
"The method and computer program implement an environment that dynamically translates program code of a non-native guest operating system image, and applications executing within the image, to translated code that is expressed in operations native to the computer system. The translated code can be dynamically cached and the instructions are executed. Branch instructions are handled by either embedding the virtual target address from the un-translated program code or by inserting a tag via which the virtual target address can be retrieved. When the translated native program code representing the branch instruction is reached and the condition for the branch is satisfied, the virtual target address is used to retrieve the physical address of the translated native program code. The virtual target address is used as a key to retrieve a corresponding translated code physical address from a host code address map accessible within the guest operating system image. In one embodiment of the invention, the host code address map contains a virtual page for each physical page of native code that includes code that has been translated and retains a valid translation. The virtual page maps to an underlying physical page that contains, at each location corresponding to a non-native branch target offset in the page, a value that provides a mechanism for locating the non-native physical address of the branch target. The value may directly refer to the non-native physical address, or alternatively the reference may be made via some encoding (e.g., compressed pointer), or the value may index into another data structure that references the address of the translated code corresponding to the non-native virtual target address, and thereby refers to the non-native physical address implied by the combination of the virtual page and the offset. Thus, the virtual target address is used as a key to retrieve a corresponding translated code physical address. Hardware mechanisms may be provided to accelerate the retrieval of the translated code physical addresses that correspond to the branch instruction virtual target addresses.
"The foregoing and other objectives, features, and advantages of the invention will be apparent from the following, more particular, description of the preferred embodiment of the invention, as illustrated in the accompanying drawings.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING
"The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives, and advantages thereof, will best be understood by reference to the following detailed description of the invention when read in conjunction with the accompanying Figures, wherein like reference numerals indicate like components, and:
"FIG. 1 is a block diagram illustrating a distributed computer system in which techniques according to an embodiment of the present invention are practiced.
"FIG. 2 is a block diagram illustrating a virtualized organization of software that can be executed within the system of FIG. 1, in accordance with an embodiment of the present invention.
"FIG. 3 is a memory map diagram illustrating operation of a computer system in accordance with an embodiment of the present invention.
"FIG. 4 is a block diagram of a dynamic code translation facility in accordance with an embodiment of the present invention.
"FIG. 5 is a flow diagram depicting a method in accordance with an embodiment of the present invention."
URL and more information on this patent application, see: Brown,
Keywords for this news article include:
Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC
Most Popular Stories
- High-Tech Home Theaters Undergoing a Revolution
- Amazon Prime Grabs Classic HBO TV Series
- Wellness Programs Grow More Popular With Employers
- Sales of New Homes Fell 14.5 Percent in March
- FedEx Sued Over Deadly California Bus Crash
- Procter & Gamble Income Up on Cost Cutting
- Obama Opens Japan Trip with Sushi Stop
- #myNYPD Twitter Campaign Backfires for NYPD
- Boeing Flying High With Strong First Quarter
- Google, SunPower Team Up on Solar Power