Claims
- 1. A computer processing apparatus, comprising:
effective address generating logic, said effective address generating logic generating effective addresses to be accessed, wherein at least some of said effective addresses are real addresses; at least one state register for recording processor operating parameters, said at least one state register including a mode designator, said mode designator designating an operating mode; real address range checking logic, said real address range checking logic generating an error signal responsive to detecting a real address outside a predetermined range when said real address is associated with a first operating mode, and not generating an error signal responsive to detecting a real address outside said predetermined range when said real address is associated with a second operating mode.
- 2. The computer processing apparatus of claim 1, further comprising:
a plurality of sets of registers for supporting the execution of a plurality of threads, each set of registers corresponding to a respective one of said plurality of threads; wherein said at least one state register for recording processor operating parameters comprises a respective mode designator associated with each thread, said mode designator designating, for each of said threads independently, a respective operating mode; and wherein said real address range checking logic generates an error signal responsive to detecting a real address outside said predetermined range when said real address is generated on behalf of a thread in said first operating mode, and does not generate an error signal responsive to detecting a real address outside said predetermined range when said real address is generated on behalf of a thread in said second operating mode.
- 3. The computer processing apparatus of claim 2, wherein said effective address generating logic comprises an instruction unit for generating effective addresses of instructions for execution by said processor, said instruction unit generating effective addresses on behalf of an active thread and on behalf of at least one dormant thread, said real address range checking logic selectively generating an error signal responsive to detecting a real address outside said predetermined range on behalf of an active thread and on behalf of at least one dormant thread responsive to said mode designator associated with the respective thread.
- 4. The computer processing apparatus of claim 1,
wherein at least some of said effective addresses generated by said effective address generation logic are translatable addresses intended for translation from an effective address to a real address; and wherein said computer processing apparatus further comprises real address selection logic for selectively outputting a real address translated from said effective address when said effective address is a translatable address, and outputting a real address generated by said real address partitioning logic when said effective address is a base real address.
- 5. The computer processing apparatus of claim 4, further comprising:
an effective-to-real address translation table, wherein at least some of said effective addresses which are translatable addresses are translated from an effective address to a real address by reference to said effective-to-real address translation table.
- 6. The computer processing apparatus of claim 1, wherein said real address range checking logic further comprises:
a real memory limit register specifying a range of address bits of said effective address; AND logic performing a plurality of logical ANDs of each of a plurality of address bits derived from said effective address generated by effective address generation logic with a respective bit from a mask generated from a value in said real memory limit register to produce a masked portion of said effective address; and OR logic for performing a logical OR of a plurality of address bits derived from said effective address generated by said effective address generation logic, said plurality of address bits derived from said effective address including said masked portion of said effective address generated by said effective address generation logic.
- 7. The computer processing apparatus of claim 1, wherein said mode designator is placed in said second operating mode only upon occurrence of one of a set of predefined events.
- 8. The computer processing apparatus of claim 7, wherein each said predefined event of said set of predefined events causes said computer processing apparatus to branch to a respected predefined real memory address.
- 9. The computer processing apparatus of claim 7, wherein a state represented by said at least one state register is saved in a saved state register upon occurrence of one of said set of predefined events, and restored to said at least one state register upon return from processing said one of said set of predefined events.
- 10. A computer system, comprising:
a plurality of processors; a main memory addressable using a real address; a logical partitioning mechanism capable of partitioning said computer system into a plurality of logical partitions, each processor of said plurality of processors being assigned by said logical partitioning mechanism to a respective one of said logical partitions, each logical partition being assigned a corresponding respective discrete range of real addresses of said main memory; wherein each of said plurality of processors comprises:
a mode designator, said mode designator designating an operating mode for a thread executing in said processor; and real address range checking logic, said real address range checking logic generating an error signal responsive to detecting a real address outside the corresponding respective discrete range of real addresses assigned to the logical partition to which the respective processor is assigned when said real address is generated on behalf of a thread executing in a first operating mode, and not generating an error signal responsive to detecting a real address outside said corresponding respective discrete range of real addresses assigned to the logical partition to which the respective processor is assigned when said real address is generated on behalf of a thread executing in a second operating mode.
- 11. The computer system claim 10, wherein each of said plurality of processors supports the execution of a plurality of threads and further comprises:
a plurality of mode designators, each mode designator corresponding to a respective one of said plurality of threads and designating, for each of said threads independently, a respective operating mode; wherein said real address range checking logic generates an error signal responsive to detecting a real address outside said corresponding respective discrete range of real addresses assigned to the logical partition to which the respective processor is assigned when said real address is generated on behalf of a thread in said first operating mode, and does not generate an error signal responsive to detecting a real address outside said corresponding respective discrete range of real addresses assigned to the logical partition to which the respective processor is assigned when said real address is generated on behalf of a thread in said second operating mode.
- 12. The computer system of claim 10, wherein said real address range checking logic in each said processor further comprises:
a real memory limit register specifying a range of address bits of an effective address generated by effective address generation logic in said processor; AND logic performing a plurality of logical ANDs of each of a plurality of address bits derived from said effective address generated by said effective address generation logic with a respective bit from a mask generated from a value in said real memory limit register to produce a masked portion of said effective address; and OR logic for performing a logical OR of a plurality of address bits derived from said effective address generated by said effective address generation logic, said plurality of address bits derived from said effective address including said masked portion of said effective address generated by said effective address generation logic.
- 13. The computer system of claim 10,
wherein each of said plurality of processors generates effective addresses on behalf of threads executing in the processor, wherein at least some of said effective addresses are translatable addresses intended for translation from an effective address to a real address; and wherein each of said plurality of processors further comprises real address selection logic for selectively outputting a real address translated from said effective address when said effective address is a translatable address, and outputting a real address generated by said real address partitioning logic when said effective address is a base real address.
- 14. The computer system of claim 13,
wherein each of said plurality of processors further comprises an effective-to-real address translation table, wherein at least some of said effective addresses which are translatable addresses are translated from an effective address to a real address by reference to said effective-to-real address translation table.
- 15. A computer processing apparatus for supporting a computer system divisible into a plurality of logical partitions, each partition having a respective portion of the real address space of said computer system, said computer processing apparatus comprising:
means for maintaining state information for at least one thread, said state information including an operating mode; means for generating effective addresses for said at least one thread, wherein at least some of said effective addresses are base real addresses not intended for translation; and means for detecting a real address outside a predetermined range and generating an error signal responsive thereto when said real address is generated for a thread executing in a first operating mode, and not generating an error signal when said real address is generated for a thread executing in a second operating mode.
- 16. The computer processing apparatus of claim 14,
wherein said means for maintaining state information maintains state information for each of a plurality of threads independently; and wherein said means for detecting a real address outside a predetermined range generates an error signal responsive to state information for the thread for which the real address is generated.
- 17. A computer processing apparatus, comprising:
a configuration register for recording configuration information, said configuration information including a processor logical partition identifier; at least one state register for recording processor operating parameters, said at least one state register including a mode designator, said mode designator designating an operating mode; execution logic for executing instructions, said instructions including at least one instruction for altering said processor logical partition identifier, wherein said execution logic executes said at least one instruction for altering said processor logical partition identifier when in a first operating mode, and does not execute said at least one instruction for altering said processor logical partition identifier when in a second operating mode; and bus interface logic, said bus interface logic receiving communications on a bus, at least some of said communications including a respective bus logical partition identifier; wherein said processing apparatus ignores a communication including a bus logical partition identifier if said bus logical partition identifier does not match said processor logical partition identifier.
- 18. The computer processing apparatus of claim 15, further comprising:
a plurality of sets of registers for supporting the execution of a plurality of threads, each set of registers corresponding to a respective one of said plurality of threads; wherein said at least one state register for recording processor operating parameters comprises a respective mode designator associated with each thread, said mode designator designating, for each of said threads independently, a respective operating mode; and wherein said execution logic executes said at least one instruction for altering said processor logical partition identifier when said at least one instruction for altering said processor logical partition identifier is part of a thread executing in said first operating mode, and does not execute said at least one instruction for altering said processor logical partition identifier when said at least one instruction for altering said processor logical partition identifier is part of a thread executing in said second operating mode.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This is a divisional application of U.S. patent application Ser. No. 09/346,206, filed Jul. 1, 1999, originally entitled “APPARATUS FOR SUPPORTING A LOGICALLY PARTITIONED COMPUTER SYSTEM”, and by subsequent amendment entitled “GENERATING PARTITION CORRESPONDING REAL ADDRESS IN PARTITIONED MODE SUPPORTING SYSTEM”, which is herein incorporated by reference.
[0002] The present application is also related to the following commonly assigned U.S. patents and patent applications, all of which are herein incorporated by reference:
[0003] Ser. No. 09/314,769, filed May 19, 1999, entitled Processor Reset Generated Via Memory Access Interrupt (Assignee's docket no. R0999-022).
[0004] Ser. No. 09/314,541, filed May 19, 1999, entitled Apparatus and Method for Specifying Maximum Interactive Performance in a Logical Partition of a Computer (Assignee's docket no. R0999-021).
[0005] Ser. No. 09/314,324, filed May 19, 1999, entitled Management of a Concurrent Use License in a Logically Partitioned Computer (Assignee's docket no. R0999-023).
[0006] Ser. No. 09/314,214, filed May 19, 1999, entitled Logical Partition Manager and Method (Assignee's docket no. R0999-025).
[0007] U.S. Pat. No. 6,279,046 to Armstrong et al., entitled Event-Driven Communications Interface for Logically-Partitioned Computer.
[0008] U.S. Pat. No. 6,161,166 to Doing et al., entitled Instruction Cache for Multithreaded Processor.
[0009] U.S. Pat. No. 6,263,404 to Borkenhagen et al., entitled Accessing Datafrom a Multiple Entry Fully Associative Cache Buffer in a Multithread Data Processing System.
[0010] U.S. Pat. No. 6,021,481 to Eickemeyer et al., entitled Effective-To-RealAddress Cache Managing Apparatus and Method.
[0011] U.S. Pat. No. 6,212,544 to Borkenhagen et al., entitled Altering Thread Priorities in a Multithreaded Processor.
[0012] Ser. No. 08/958,716, filed Oct. 23, 1997, entitled Method and Apparatus for Selecting Thread Switch Events in a Multithreaded Processor (Assignee's docket no. R0997-104).
[0013] Ser. No. 08/957,002, filed Oct. 23, 1997, entitled Thread Switch Control in a Multithreaded Processor System (Assignee's docket no. R0996-042).
[0014] U.S. Pat. No. 6,105,051 to Borkenhagen et al., entitled An Apparatus and Method to Guarantee Forward Progress in a Multithreaded Processor.
[0015] U.S. Pat. No. 6,076,157 to Borkenhagen et al., entitled Method and Apparatus To Force a Thread Switch in a Multithreaded Processor.
[0016] U.S. Pat. No. 6,088,788 to Borkenhagen et al., entitled Background Completion of Instruction and Associated Fetch Request in a Multithread Processor.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09346206 |
Jul 1999 |
US |
Child |
10175626 |
Jun 2002 |
US |