Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
First Claim
1. A method, comprising:
- executing instructions fetched from first and second regions of a memory of a computer, the instructions of the first and second regions being coded for execution by computers of first and second instruction set architectures or following first and second data storage conventions, respectively, the memory regions having associated first and second indicator elements, the indicator elements each having a value indicating the architecture or data storage convention under which instructions from the associated region are to be executed, the first architecture having a pre-defined, established definition, the computer providing an implementation of the first architecture;
when execution of the instruction data flows or transfers from the first region to the second region, adapting the computer for execution in the second architecture or data storage convention, wherein the adapting includes controlling instruction execution hardware of the computer to interpret the instructions according to the two instruction set architectures according to the indicator elements;
recognizing when program execution has flowed or transferred from a region whose indicator element indicates the first data storage convention to a region whose indicator element indicates the second data storage convention, and in response to the recognition, altering the data storage content of the computer to create a program context under the second data storage convention that is logically equivalent to a re-alteration program context under the first data storage convention;
classifying control-flow instructions of a computer instruction set into a plurality of classes;
during execution of a program on the computer as part of the execution of instructions of the instruction set, updating a record of the class of the classified control-flow instruction most recently executed; and
the altering process being determined, at least in part, by the instruction class record.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer. A processor pipeline alternately executes instructions coded for first and second different computer architectures or coded to implement first and second different processing conventions. A memory stores instructions for execution by the processor pipeline, the memory being divided into pages for management by a virtual memory manager, a single address space of the memory having first and second pages. A memory unit fetches instructions from the memory for execution by the pipeline, and fetches stored indicator elements associated with respective memory pages of the single address space from which the instructions are to be fetched. Each indicator element is designed to store an indication of which of two different computer architectures and/or execution conventions under which instruction data of the associated page are to be executed by the processor pipeline. The memory unit and/or processor pipeline recognizes an execution flow from the first page, whose associated indicator element indicates the first architecture or execution convention, to the second page, whose associated indicator element indicates the first architecture or execution convention. In response to the recognizing, a processing mode of the processor pipeline or a storage content of the memory adapts to effect execution of instructions in the architecture and/or under the convention indicated by the indicator element corresponding to the instruction'"'"'s page.
-
Citations
47 Claims
-
1. A method, comprising:
-
executing instructions fetched from first and second regions of a memory of a computer, the instructions of the first and second regions being coded for execution by computers of first and second instruction set architectures or following first and second data storage conventions, respectively, the memory regions having associated first and second indicator elements, the indicator elements each having a value indicating the architecture or data storage convention under which instructions from the associated region are to be executed, the first architecture having a pre-defined, established definition, the computer providing an implementation of the first architecture; when execution of the instruction data flows or transfers from the first region to the second region, adapting the computer for execution in the second architecture or data storage convention, wherein the adapting includes controlling instruction execution hardware of the computer to interpret the instructions according to the two instruction set architectures according to the indicator elements; recognizing when program execution has flowed or transferred from a region whose indicator element indicates the first data storage convention to a region whose indicator element indicates the second data storage convention, and in response to the recognition, altering the data storage content of the computer to create a program context under the second data storage convention that is logically equivalent to a re-alteration program context under the first data storage convention; classifying control-flow instructions of a computer instruction set into a plurality of classes; during execution of a program on the computer as part of the execution of instructions of the instruction set, updating a record of the class of the classified control-flow instruction most recently executed; and the altering process being determined, at least in part, by the instruction class record. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
executing instructions fetched from first and second regions of a memory of a computer, the instructions of the first and second regions being coded for execution by computers following first and second data storage conventions, the memory regions having associated first and second indicator elements, the indicator elements each having a value indicating the data storage convention under which instructions from the associated region are to be executed; recognizing when program execution has flowed or transferred from a region whose indicator element indicates the first data storage convention to a region whose indictor element indicates the second data storage convention, and in response to the recognition, altering the data storage content of the computer to create a program context under the second data storage convention that is logically equivalent to a pre-alteration program context under the first data storage convention; classifying control-flow instructions of a computer instruction set into a plurality of classes; and during execution of a program on the computer, as part of the execution of instructions of the instruction set, updating a record of the class of the classified control-flow instruction most recently executed; the altering process being determined, at least in part, by the instruction class record. - View Dependent Claims (14, 15)
-
-
16. A computer processor, comprising:
-
a processor pipeline configured to alternately execute instructions of two different instruction set architectures or processing conventions; and a memory unit designed to fetch instructions from a computer memory for execution by the pipeline, and to fetch stored indicator elements associated with respective memory regions of a single address space from which the instructions are to be fetched, each indicator element designed to store an indication of the architecture or processing convention under which the instruction data of the associated region are to be executed by the pipeline and an indication of a calling convention under which the instruction data of the associated region is coded for execution by the pipeline, the first architecture having a predefined, established definition, the computer providing an implementation of the first architecture; the memory unit or processor pipeline further designed to recognize an execution flow or transfer from a region whose indicator element indicates one architecture or processing convention to another; processor pipeline control circuitry designed to control the pipeline to effect interpretation of the instructions under the two instruction set architectures alternately, according to the associated indicator elements; software programmed to manage a transition between the execution of a program executing in the first instruction set architecture, being an instruction set architecture native to the computer processor, and execution of an operating system coded in the second instruction set, being an instruction set non-native to the computer and providing access to a reduced subset of the resources of the computer; software programmed to alter the data storage content of a computer using the computer processor to create a program context under the second calling convention that is logically equivalent to a pre-alteration program context under the first calling convention; the memory unit further designed to recognize when program execution has flowed or transferred from a region whose indicator element indicates the first calling convention to a region whose indicator element indicates the second calling convention and in response to the recognition to invoke the transition management software; wherein control-flow instructions of the instruction set are classified into a plurality of classes; the pipeline updates a record of the class of the classified control-flow instruction most recently executed; the storage alteration process being determined, at least in part, by the instruction class record. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A method comprising:
-
storing instructions in pages of a computer memory managed by a virtual memory manager, the instruction data of the pages being coded for execution by, respectively, computers of two different architectures or under first and second data storage conventions; in association with pages of the memory, storing corresponding indicator elements indicating the architecture or convention in which the instructions of the pages are to be executed, the pages'"'"' indicator elements being stored in a table whose entries are indexed by physical page frame number; executing instructions from the pages in a common processor, the processor designed, responsive to the page indicator elements, to execute instructions in the architecture or under the convention indicated by the indicator element corresponding to the instruction'"'"'s page; recognizing when program execution has flowed or transferred from a region whose indicator element indicates the first data storage convention to a region whose indicator element indicates the second data storage convention, and in response to the recognition, altering the data storage content of the computer to create a program context under the second data storage convention that is logically equivalent to a pre-alteration program context under the first data storage convention; classifying control-flow instructions of a computer instruction set into a plurality of classes; and during execution of a program on the computer, as part of the execution of instructions of the instruction set, updating a record of the class of the classified control-flow instruction most recently executed; the altering process being determined, at least in part, by the instruction class record.
-
-
27. A microprocessor chip, comprising:
-
an instruction unit, configured to fetch instructions from a memory managed by the virtual memory manager, and configured to execute instructions coded for first and second different computer architectures or coded to implement first and second different data storage conventions; the microprocessor chip designed to; retrieve indicator elements stored in association with respective pages of the memory, each indicator element indicating the architecture or convention in which the instructions of the page are to be executed, recognize when instruction execution has flowed or transferred from a page of the first architecture or convention to a page of the second architecture or convention, as indicted by the respective associated indicator elements, and alter a processing mode of the instruction unit or a storage content of the memory to effect execution of instructions in accord with the indicator element associated with the page of the second architecture or convention; wherein the indicator elements are stored in an instruction cache distinct from a primary address translation table used by a virtual memory manager, the indicator elements of the table being stored in association with respective pages of the memory. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
-
34. A computer processor, comprising:
-
a processor pipeline configured to alternately execute instructions of two different instruction set architectures; and a memory unit designed to fetch instructions from a computer memory for execution by the pipeline, and to fetch stored indicator elements associated with respective memory regions of a single address space from which the instructions are to be fetched, each indicator element designed to store an indication of the architecture under which the instruction data of the associated region are to be executed by the pipeline, and to store a separate indicator element designed to indicate a data storage convention observed by instructions of the associated region; the memory unit or pipeline further designed to recognize an execution flow or transfer from a region whose indicator element indicates one instruction set architecture to another; hardware or software designed to recognize when program execution has flowed or transferred from a region whose indicator element indicates the first data storage convention to a region whose indicator element indicates the second data storage convention, and in response to the recognition, to alter the data storage content of the computer to create a program context under the second data storage convention that is logically equivalent to a pre-alteration program context under the first data storage convention, wherein the data storage convention indicator elements are designed to store an indication of a calling convention under which the instruction data of the associated region are coded for execution by the pipeline; processor pipeline control circuitry designed to control the pipeline to effect interpretation of the instructions under the two instruction set architectures alternately, according to the associated indicator elements; software programmed to manage a transition between the execution of a program executing in the first instruction set architecture, being an instruction set architecture native to the computer processor, and execution of an operating system coded in the second instruction set, being an instruction set non-native to the computer and providing access to a reduced subset of the resources of the computer; software programmed to alter the data storage content of a computer using the under a second calling convention that is logically equivalent to a pre-alteration program context under a first calling convention; the memory unit is further designed to recognize when program execution has flowed or transferred from a region whose indicator element indicates the first calling convention to a region whose indicator element indicates the second calling convention, and in response to the recognition, to invoke the transition management software; wherein control-flow instructions of the instruction set are classified into a plurality of classes; the pipeline updates a record of the class of the classified control-flow instruction most recently executed; the storage alteration process being determined, at least in part, by the instruction class record. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
Specification