1. Technical Field
The present invention relates in general to a system and method for virtualization of processor resources. More particularly, the present invention relates to a system and method for virtualizing processor memory such that one or more threads may access the processor memory, regardless of a processor's state.
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 (e.g. personal computer, PDA, gaming console). 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 integrated circuits for particular functions based upon the integrated circuits' architecture. Two fundamental architectures are 1) microprocessor-based and 2) digital signal processor-based.
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 manipulations (i.e. mathematical operations). As technology evolves, the computer industry and the semiconductor industry realize the importance of using both architectures, or processor types, in a computer system design.
Many computer systems use a multi-processor architecture in order to provide a substantial amount of processing power while attempting to support a wide range of software applications. A challenge found, however, is that each of these processors includes dedicated internal memory that is not accessible by other processors, such as a local storage area and register files. Another challenge found is that if a particular processor is unavailable, other processors may not access data from the unavailable processor.
Furthermore, a processor may run multiple threads that access the same memory space. A challenge found is that when a particular thread is accessing a particular memory space, the other threads must wait until the particular thread is complete before the other threads are able to access the memory space.
What is needed, therefore, is a system and method to virtualize processor memory resources such that the resources are concurrently accessible by one or more threads, regardless of a processor's state.