Nested emulation and dynamic linking environment

US9851987B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9851987-B2
Application numberUS-201213994725-A
CountryUS
Kind codeB2
Filing dateMar 22, 2012
Priority dateMar 22, 2012
Publication dateDec 26, 2017
Grant dateDec 26, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Various embodiments include nested emulation for a source application and source emulator. Duplicate source ISA libraries redirect the source emulator library calls to a target library, thereby forcing the native emulator through proper emulation channels between first and second ISAs. Other embodiments concern accelerating dynamic linking by determining certain function calls that, rather than being processed through emulation of PLT code, are instead directly called without the need for PLT code translation. Some embodiments address both nested emulation and accelerated dynamic linking but other embodiments include one of nested emulation and accelerated dynamic linking. Other embodiments are described herein.

First claim

Opening claim text (preview).

What is claimed is: 1. At least one non-transitory machine readable medium comprising instructions that when executed on a computing device cause the computing device to perform a method comprising: loading an application having a source instruction set architecture (ISA); redirecting a call, which is for a library service of a source ISA library, to a first library so the call does not reach the source ISA library; directing the call from the first library to a library service of a target ISA library; providing an additional call for an additional library service associated with the application; the additional call being directed to code configured to locate a procedure; and replacing the additional call with a direct additional call, which bypasses the code configured to locate the procedure, to one of the source ISA library and an additional source ISA library; and emulating the application via the target ISA library. 2. The at least one medium of claim 1 , the method comprising resolving an undefined symbol for the application. 3. The at least one medium of claim 2 wherein resolving the undefined symbol comprises linking to a target gate of the target ISA library indirectly via a first gate of the first library. 4. The at least one medium of claim 3 , wherein the first gate has a first name and the target gate has a target name that includes the first name. 5. The at least one medium of claim 1 , wherein redirecting the call to the first library comprises redirecting the call from an emulator that is dedicated to the application. 6. The at least one medium of claim 1 , wherein redirecting the call to the first library comprises redirecting the call from an emulator that is dedicated to the application and that is not a general system loader. 7. The at least one medium of claim 1 , wherein the code is included in a procedure linking table (PLT); and the direct additional call bypasses the PLT. 8. The at least one medium of claim 7 , the method comprising: identifying an address for the additional call; and determining the additional call is directed to code included in the PLT based on identifying the address for the additional call. 9. An apparatus comprising: at least one memory and at least one processor, coupled to the at least one memory, to perform operations comprising: loading an application having a source instruction set architecture (ISA); redirecting an additional call, which is for an additional library service of one of a source ISA library and an additional source ISA library, to a first library so the additional call does not reach the one of the source ISA library and the additional source ISA library; directing the additional call from the first library to one of a target ISA library and an additional target ISA library; providing a call for a library service associated with the application, the call being directed to code configured to locate a procedure; replacing the call with a direct call, which bypasses the code configured to locate the procedure, to the source ISA library; and emulating the application via the target ISA library. 10. The apparatus of claim 9 , wherein the code configured to locate the procedure is included in a procedure linking table (PLT). 11. The apparatus of claim 10 , wherein the at least one processor is to perform operations comprising: identifying an address for the call; and determining the call is directed to code included in the PLT based on identifying the address for the call. 12. The apparatus of claim 9 , wherein the at least one processor is to perform operations comprising resolving an undefined symbol for the application. 13. The apparatus of claim 12 , wherein resolving the undefined symbol comprises linking to a gate of the one of the target ISA library and the additional target ISA library via a gate of the first library. 14. The apparatus of claim 9 , wherein redirecting the additional call comprises redirecting the additional call from an emulator that is dedicated to the application. 15. The apparatus of claim 9 , wherein redirecting the additional call comprises redirecting the additional call from an emulator that is dedicated to the application and that is not a general system loader. 16. A method executed by at least one processor comprising: loading an application having a source instruction set architecture (ISA); redirecting a call, which is for a library service of a source ISA library, to a first library so the call does not reach the source ISA library; directing the call from the first library to a library service of a target ISA library; providing an additional call for an additional library service associated with the application; the additional call being directed to code configured to locate a procedure; replacing the additional call with a direct additional call, which bypasses the code configured to locate the procedure, to one of the source ISA library and an additional source ISA library; and emulating the application via the target ISA library. 17. The method of claim 16 comprising resolving an undefined symbol for the application. 18. The method of claim 16 wherein resolving the undefined symbol comprises linking to a target gate of the target ISA library indirectly via a first gate of the first library. 19. At least one non-transitory machine readable medium comprising instructions that when executed on a computing device cause the computing device to perform a method comprising: loading an application having a source instruction set architecture (ISA); redirecting a call, which is for a library service of a source ISA library, to a first library so the call does not reach the source ISA library; directing the call from the first library to a library service of a target ISA library; providing an additional call for an additional library service associated with the application; the additional call being directed to code included in a procedure linking table (PLT); replacing the additional call with a direct additional call, which bypasses the PLT, to one of the source ISA library and an additional source ISA library; and emulating the application via the target ISA library. 20. The at least one medium of claim 19 , the method comprising: identifying an address for the additional call; and determining the additional call is directed to code included in the PLT based on identifying the address for the additional call.

Assignees

Inventors

Classifications

  • G06F9/4552Primary

    Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM · CPC title

  • G06F9/455Primary

    Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title

  • Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title

  • Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9851987B2 cover?
Various embodiments include nested emulation for a source application and source emulator. Duplicate source ISA libraries redirect the source emulator library calls to a target library, thereby forcing the native emulator through proper emulation channels between first and second ISAs. Other embodiments concern accelerating dynamic linking by determining certain function calls that, rather than…
Who is the assignee on this patent?
Zhong Xueliang, Li Jianhui, Chen Jian Ping, and 5 more
What technology area does this patent fall under?
Primary CPC classification G06F9/4552. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 26 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).