CN1703675A - Accelerating multimedia content - Google Patents

Accelerating multimedia content Download PDF

Info

Publication number
CN1703675A
CN1703675A CNA038034123A CN03803412A CN1703675A CN 1703675 A CN1703675 A CN 1703675A CN A038034123 A CNA038034123 A CN A038034123A CN 03803412 A CN03803412 A CN 03803412A CN 1703675 A CN1703675 A CN 1703675A
Authority
CN
China
Prior art keywords
bytecode
code
machine
security code
receive
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
CNA038034123A
Other languages
Chinese (zh)
Other versions
CN1703675B (en
Inventor
A·坎伯
S·萨克曼
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1703675A publication Critical patent/CN1703675A/en
Application granted granted Critical
Publication of CN1703675B publication Critical patent/CN1703675B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Abstract

Compressed bytecode may be received. The received bytecode may be decompressed. The decompressed bytecode may be coupled into native code at the applicator level. The native code may be stored in nonvolatile memory (18).

Description

Quicken content of multimedia
Technical field
Present disclosure relates to the Computer Processing field.
Background technology
Java TMLanguage uses during issuing multimedia contents on WWW and other communication media widely.For example, can use with can be from being located in California Sheng Hexi (San Jose, Ca) Sun micro-system company limited (Sun Microsystems, the Java that Inc) has bought TMThe java applet that the linguistic norm second edition is compatible mutually, the user who comes the code that comprises figure, sound, text or other compulsory content is transferred to the specific Web site of visit.This class content can be informed product or the service that specific supplier provides to the user.In other cases, Java TMCode can provide entertainment service for those users that visit specific Web site.
Usually, Java TMLanguage is an interpreted language.Typically, write can be by possessing Java for application designer TMThe general Java of the apparatus interprets of virtual machine uses bytecode, described virtual machine can with the Java that can buy from Sun micro-system company limited TMThe virtual machine specification second edition is compatible mutually.Virtual machine (VM) is explained Java TMBytecode is so that can carry out described bytecode on spendable target hardware platform, described target hardware platform for example is an Intel Pentium TM4 microprocessor.Regrettably, the code of being explained is nonlinear often, and typically carries out very slowly on target hardware platform.Often performance may be because of being caused by the code explained and the performance difference between this machine code slowly, and described machine code can directly be carried out by the processor of target platform.
As typical use, Java TMApplet (applet) is downloaded to subscriber computer with compressed format.Subscriber computer can be decompressed to downloaded files in the middle of the volatile memory such as the RAM of system.Then, the interpreter that is moved on the subscriber computer can come from each bytecode of RAM with the linear mode translation, carries out the code of described translation then on subscriber computer.When each carries out the example end, can abandon the code that is translated.This process is typically used a large amount of system RAM because of its characteristic, and may be because code execution speed or volatile memory service efficiency and not optimised.
Therefore, neededly be exactly to carry out and other benefit provides a kind of method and apparatus for Java code efficiently.
Description of drawings
Preferably understand the present invention with reference to following instructions and accompanying drawing, these accompanying drawings are used for illustrating embodiments of the invention.In the accompanying drawings:
Fig. 1 is the schematic representation figure based on the system of processor according to the embodiment of the invention.
Fig. 2 illustrates the communication link according to the embodiment of the invention.
Fig. 3 is used to generate the data flowchart that can carry out this machine code according to the embodiment of the invention.
Fig. 4 is used to generate the process flow diagram of carrying out this machine code with security feature according to the embodiment of the invention.
Fig. 5 illustrates the wireless communication link according to the embodiment of the invention.
Embodiment
In the following description, having set forth many specification details provides understood in detail of the present invention.Yet those of ordinary skills will readily appreciate, and the present invention can be implemented under the situation of these details not having.For example, the code segment of many descriptions may meet Java TMThe version of programming language.Yet owing to equally also can use other the program design language structure of making peace, thereby this just illustrates but not as restriction.
With reference to Fig. 1, can comprise the processor 12 that is coupled in interface 14 based on the system 10 of processor.Interface 14 can be coupled in display 16 or display controller (not shown) and system storage 18, and described interface can be bridge (bridge).System storage 18 can comprise the application program that can help in the storage system 10 and a plurality of dynamic random access memory means (" DRAM ") or other device of other code.Interface 14 can also be coupled in one or more bus 20.
Bus 20 is coupled in one or more memory storages 22 again successively, such as picture hard disk drive (HDD).Hard disk drive 22 or other memory storage can be stored the various softwares that comprise operating system code (not shown), compiler 26 and other code.In certain embodiments, basic input/output (BIOS) storer 24 can also be coupled in bus 20.
Certainly, also can use other system architecture of many types based on processor.In certain embodiments, can with compiler 26 and other support code be stored on the hard disk 22 or on other memory storage, and can it be loaded in the system storage 18 according to the request of system 10 subsequently.Then, processor 12 is carried out the instruction that makes compiler 26 and other code operation.
In addition, in certain embodiments, network controller 28 also can be coupled in bus 20.Network controller 28 can be provided to the interface of communication network, as two examples, such as picture WWW or wireless network.
Referring now to Fig. 2, host site 201 can be lodged and be used Java TMThe multimedia application of coding.In certain embodiments, these application can be sent to communication network 203 such as WWW.Then, communication network 203 can be transferred to described multimedia application on the user platform 205 from host site 201, and described user platform may be based on the system of processor, such as picture system 10.
Referring now to Fig. 5, boarding website 201 can transmit multimedia application based on Java by communication network, and described communication network can comprise antenna 207 or other wireless device that uses by user platform 205.In certain embodiments, user platform 205 can be based on the system of processor, such as picture system 10.In other embodiments, user platform 205 can be the wireless device of for example all like cellular phones, PDA(Personal Digital Assistant) and so on, or miscellaneous equipment.User platform 205 can be coupled in antenna 209.Antenna 209 can be dipole antenna, grounded antenna or other antenna.
Referring now to Fig. 3, compressed code 301 can be perhaps by communication network for example 23 or the compression Java that receives of wireless network TMSource program.In certain embodiments, compressed code 301 can be decompressed by decompressor 303.This decompressor 303 can be will be such as the software program of the decompressed code the bytecode 305 as output as importing with compressed code 301.In certain embodiments, bytecode 305 can be and Java TMThe source code that programming language is compatible mutually.
In certain embodiments, machine specific compiler is integrated in the virtual machine (VM) 307, has eliminated this step of indirect indication.In this VM, 307 can be used as input to bytecode 305.In addition, in certain embodiments, interpreter 307 can dynamic link this machine code after can detectable optimization in storehouse 309, in nonvolatile memory, preserve newly-built binary code then, in case when VM calls next example, can use it at any time.
In certain embodiments, this machine code 311 can be carried out by any available suitable storer from system 10 there, under situation about further not explaining, can maybe can provide the similar module of this function to call by virtual machine.Can in managed execution environment, provide the portable code of improvement to carry out in conjunction with explanation illustrated in Fig. 3 and the process described.
For example, in case generated this machine code 311, then just no longer need the further explanation of Java code for calling the future of code, this can provide significant improvement aspect execution speed.In addition, compiler 307 and storehouse 309 can comprise such code, and it provides the optimization of this machine code that generates for the particular platform such as system 10.In certain embodiments, this machine code 311 can comprise the complete static state compiling of whole application codes, the utilization of link and run-time library when therefore not needing to move in certain embodiments.
Referring now to Fig. 4, in certain embodiments, compressed code 301 can de-compress into bytecode and security code 401 by decompressed code 303.As described in Fig. 3, bytecode can be decompression Java TMCode.Security code for example can be the Java that has that has downloaded TMThe safety certificate of multimedia application.
In other embodiments, security code can be and Java TMCertain other code that multimedia application is downloaded together, its can show application code be in provide by particular source or provider in or authorize.
Security code can stand safety inspection 403, to guarantee to trust described multimedia application.This is further example during operation of specific user platform mandate compiling/mandate.If safety inspection confirms to trust described code, compiler 307 just can compile the bytecode that is independent of platform as above in conjunction with Figure 3 so.
Yet, if the safety inspection failure so just will stop the described bytecode of compiler 307 compilings.In this case, in certain embodiments, can notify user security inspection 403 to judge that user or platform are uncommitted the Java multimedia application of having compressed 301 is compiled.
Although described the present invention, person of skill in the art will appreciate that many modifications wherein and distortion all are fine with respect to limited embodiment.For example, although compiler and optimizer 307 are illustrated as single program, can between a plurality of programs, code segment, storehouse or other programmer, cut apart the function of this compiler and optimizer.Therefore, be intended to allow appended claim contain the modification and the distortion of all these classes, and this class is revised and distortion all falls in the spirit and scope of the present invention.

Claims (22)

1. method comprises:
Receive compressed bytecode;
The compressed bytecode that receives is decompressed; With
In application layer with the bytecode compile cost machine code that decompresses, and with this this machine code storage in nonvolatile memory.
2. the method for claim 1 further comprises:
Receive security code; And
Partly according to the content of security code with the bytecode compile cost machine code that decompresses.
3. method as claimed in claim 2, wherein:
Receive security code and comprise the reception safety certificate.
4. method as claimed in claim 2, wherein:
Receive security code and comprise the information that receives the source that shows compressed bytecode.
5. method as claimed in claim 2, wherein:
Receive security code and comprise the information that receives the provider that shows compressed bytecode.
6. method as claimed in claim 2, wherein:
Receive security code and comprise that reception shows the information that whether can compile the bytecode that has received.
7. as claimed in claim 11, wherein:
The bytecode compile cost machine code that decompresses is comprised that the bytecode that will decompress is compiled into the static state compiling of whole application codes.
8. method as claimed in claim 7, wherein:
The static state compiling of the bytecode that decompresses can be carried out by processor under the situation of not using non-machine run-time library.
9. method as claimed in claim 8, wherein:
The static state compiling of the bytecode downloaded is kept in the nonvolatile memory.
10. as claimed in claim 11, further comprise:
Receive the syllabified code of compression from communication network.
11. the machine readable media that instruction is provided when described instruction is carried out by one or more processor groups, makes described processor group can carry out following operation, comprising:
Receive compressed bytecode;
The compressed bytecode that receives is decompressed;
With the bytecode compile cost machine code that decompresses; And
This machine of storage code in nonvolatile memory.
12. as claimed in claim 11 machine computer-readable recording medium further comprises:
Receive security code; And
Partly according to the content of security code with the bytecode compile cost machine code that decompresses.
13. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise the reception safety certificate.
14. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise the information that receives the source that shows compressed bytecode.
15. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise the information that receives the provider that shows compressed bytecode.
16. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise that reception shows the information that whether can compile the bytecode that receives.
17. as claimed in claim 11 machine computer-readable recording medium, wherein:
The bytecode compile cost machine code that decompresses is comprised that the bytecode that will decompress is compiled into the static state compiling of whole application codes.
18. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive compressed bytecode from communication network.
19. an equipment comprises:
Receiver is used to receive compressed bytecode;
Be coupled in the decompressor of receiver, be used for the compressed bytecode that receives is decompressed; With
Be coupled in the compiler of receiver, be used for the bytecode compile cost machine code that to decompress.
20. equipment as claimed in claim 21, wherein: described compressed bytecode receives from communication network.
21. equipment as claimed in claim 21, wherein: described compiler is compiled into the bytecode that decompresses this machine code of the static state compiling that comprises whole application codes.
22. equipment as claimed in claim 21 further comprises:
Described receiver receives security code; And
Described compiler partly according to the content of security code with the bytecode compile cost machine code that decompresses.
CN038034123A 2002-07-31 2003-06-19 Accelerating multimedia content Expired - Fee Related CN1703675B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/210,450 2002-07-31
US10/210,450 US20040025009A1 (en) 2002-07-31 2002-07-31 Method and apparatus for acceleration of multimedia content
PCT/US2003/019097 WO2004012078A2 (en) 2002-07-31 2003-06-19 Accelerating multimedia content

Publications (2)

Publication Number Publication Date
CN1703675A true CN1703675A (en) 2005-11-30
CN1703675B CN1703675B (en) 2010-10-13

Family

ID=31187332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN038034123A Expired - Fee Related CN1703675B (en) 2002-07-31 2003-06-19 Accelerating multimedia content

Country Status (5)

Country Link
US (1) US20040025009A1 (en)
EP (1) EP1552389A2 (en)
CN (1) CN1703675B (en)
AU (1) AU2003265246A1 (en)
WO (1) WO2004012078A2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849327B2 (en) * 2005-01-19 2010-12-07 Leung Hin L Technique to virtualize processor input/output resources
US7921425B2 (en) * 2005-03-14 2011-04-05 Cisco Technology, Inc. Techniques for allocating computing resources to applications in an embedded system
US20080127142A1 (en) * 2006-11-28 2008-05-29 Microsoft Corporation Compiling executable code into a less-trusted address space
DE102009024985A1 (en) * 2009-06-16 2010-12-23 Giesecke & Devrient Gmbh Method of executing a bytecode in a secure runtime environment
US9135434B2 (en) * 2010-04-19 2015-09-15 Appcentral, Inc. System and method for third party creation of applications for mobile appliances
WO2015178896A1 (en) * 2014-05-20 2015-11-26 Hewlett-Packard Development Company, L.P. Point-wise protection of application using runtime agent and dynamic security analysis
US10936726B2 (en) * 2018-11-26 2021-03-02 Blackberry Limited Determining security risks in software code

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151618A (en) * 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
US6230184B1 (en) * 1998-10-19 2001-05-08 Sun Microsystems, Inc. Method and apparatus for automatically optimizing execution of a computer program
US6336213B1 (en) * 1998-12-03 2002-01-01 International Business Machines Corporation Method and apparatus for dynamic selection of which bytecodes should be just in time compiled
US20020170047A1 (en) * 2001-02-23 2002-11-14 Brian Swetland System and method for transforming object code
US20040015960A1 (en) * 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment

Also Published As

Publication number Publication date
EP1552389A2 (en) 2005-07-13
WO2004012078A3 (en) 2005-05-06
AU2003265246A8 (en) 2004-02-16
US20040025009A1 (en) 2004-02-05
AU2003265246A1 (en) 2004-02-16
WO2004012078A2 (en) 2004-02-05
CN1703675B (en) 2010-10-13

Similar Documents

Publication Publication Date Title
CN100594479C (en) Methods and apparatus to optimize application program interfaces in a virtual machine environment
US7174544B2 (en) JAVA compile-on-demand service system for accelerating processing speed of JAVA program in data processing system and method thereof
US5765157A (en) Computer system and method for executing threads of execution with reduced run-time memory space requirements
US6272674B1 (en) Method and apparatus for loading a Java application program
KR101699981B1 (en) Memory optimization of virtual machine code by partitioning extraneous information
CN100430940C (en) Method and system for programming portal application
AU2009271181B2 (en) Method and system for executing applications using native code modules
US5794049A (en) Computer system and method for executing architecture specific code with reduced run-time memory space requirements
US20030056029A1 (en) Method and apparatus for customizing Java API implementations
CN1197003C (en) Method and device for treating abnormal as normal control flow
CN1282016A (en) Display picture during period of leading and turn-off computer
CN1282023A (en) Method and equipment for automatic installating and configurating software on computer
US7506310B2 (en) Method and system for caching managed code for efficient execution on resource-constrained devices
US5859982A (en) Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements
CN1734417A (en) Application with multiple embedded drivers
CN103577225A (en) Software installation method and device
CN1183458C (en) Method and system of transferring application program to storage equipment from system firmware
CN1703675B (en) Accelerating multimedia content
JPH11312152A (en) Mobile electronic device and control method therefor
CN113326078A (en) Method, equipment and storage medium for dynamically updating software development kit
US20050155024A1 (en) Method of transforming java bytecode into a directly interpretable compressed format
EP1665043A2 (en) Method and apparatus for continuation-passing in a virtual machine
US20050028152A1 (en) Method and apparatus for identifying a Java class package name without disassembling Java bytecodes
US20060004562A1 (en) Relieving data marshalling overhead
US20030066046A1 (en) Java virtual machine with non-volatile memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101013

Termination date: 20150619

EXPY Termination of patent right or utility model