1. Technical Field
The present invention relates in general to a system and method for loading software on a plurality of processors. More particularly, the present invention relates to a system and method for extracting a processor type from a file and loading the file on a processor that corresponds to the processor type.
2. Description of the Related Art
Computer systems are becoming more and more complex. The computer industry typically doubles the performance of a computer system every 18 months, such as personal computers, PDAs, and gaming consoles. In order for the computer industry to accomplish this task, the semiconductor industry produces integrated circuits that double in performance every 18 months. A computer system uses an integrated circuit for particular functions based upon the integrated circuit's architecture. Two fundamental architectures are 1) a microprocessor-based architecture and 2) a digital signal processor-based architecture.
An integrated circuit with a microprocessor-based architecture is typically used to handle control operations whereas an integrated circuit with a digital signal processor-based architecture is typically designed to handle signal-processing functions (i.e. mathematical operations). As technology evolves, the computer industry and the semiconductor industry are using both architectures, or processor types, in a computer system design.
Software is another element in a computer system that has been evolving alongside integrated circuit evolution. A software developer writes code in a manner that corresponds to the processor type that executes the code. For example, a processor has a particular number of registers and a particular number of arithmetic logic units (ALUs) whereby the software developer designs his code to most effectively use the registers and the ALUs.
As the semiconductor industry incorporates multiple processor types onto a single device, and as software developers write code to execute on multiple processor type architectures, a challenge found is identifying which files to load on a particular processor type.
Executable files typically employ a runtime loader which loads dependent files onto memory. The runtime loader, however, assumes that the same processor that is executing the runtime loader executes the dependent files. In a multi-processor environment, however, this may not be the case. In addition, in a heterogeneous processor environment, the code for a particular file is formatted for a particular processor type and may not run if the code is loaded on a different processor type.
What is needed, therefore, is a system and method for associating a processor type to a file and loading the file on a processor that corresponds to the associated processor type.