Synchronized storage providing multiple synchronization semantics
AssigneeMIPS Technologies, Inc.
InventorKevin Kissell
Life of this patent
Estimating the term…
Abstract
A shared resource access control system having a gating storage responsive to a plurality of controls with each of the controls derived from an instruction context identifying the shared resource, the gating storage including a plurality of sets of access method functions with each set of access method functions including a first access method function and a second access method function with the gating storage producing a particular one access method function from a particular one set responsive to the controls; and a controller, coupled to the gating storage, for controlling access to the shared resource using the particular one access method function.
Claims91
A data storage location access control system, comprising:
- a memory system including a plurality of data storage locations, each said data storage location associated with a set of views including a first view and a second view with said memory system producing a particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- and
- a controller, coupled to said memory system, for controlling access to the data storage location using said particular one view.
A data storage location access control method, comprising:
- a) applying an access instruction for the data storage location to a memory system, said memory system including a plurality of data storage locations, each said data storage location associated with a set of views including a first view and a second view with said memory system producing a particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- b) producing said particular one view from said particular one set of views;
- and
- c) controlling access to the data storage location using said particular one view.
A computer program product comprising a computer readable medium carrying program instructions for accessing a data storage location when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) applying an access instruction for the data storage location to a memory system, said memory system including a plurality of data storage locations, each said data storage location associated with a set of views including a first view and a second view with said memory system producing a particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- b) producing said particular one view from said particular one set of views;
- and
- c) controlling access to the data storage location using said particular one view.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) applying an access instruction for the data storage location to a memory system, said memory system including a plurality of data storage locations, each said data storage location associated with a set of views including a first view and a second view with said memory system producing a particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- b) producing said particular one view from said particular one set of views;
- and
- c) controlling access to the data storage location using said particular one view.
A data storage location access control apparatus, comprising:
- means for applying an access instruction for the data storage location to a memory system, said memory system including a plurality of data storage locations, each said data storage location associated with a set of views including a first view and a second view with said memory system producing a particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- means for producing said particular one view from said particular one set of views;
- and
- means for controlling access to the data storage location using said particular one view
A method for controlling access to a data storage location, comprising:
- a) retrieving a particular one view from a memory system including a plurality of data storage locations, each said data storage location associated with a set of views including one or more views with said memory system producing said particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- and
- b) accessing the data storage location using said particular one view.
A computer program product comprising a computer readable medium carrying program instructions for accessing a data storage location when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) retrieving a particular one view from a memory system including a plurality of data storage locations, each said data storage location associated with a set of views including one or more views with said memory system producing said particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- and
- b) accessing the data storage location using said particular one view.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) retrieving a particular one view from a memory system including a plurality of data storage locations, each said data storage location associated with a set of views including one or more views with said memory system producing said particular one view from a particular one set of views associated with the data storage location responsive to a set of control bits derived from an address identifying the data storage location;
- and
- b) accessing the data storage location using said particular one view.
An apparatus for extending a load/store instruction having a target address, the apparatus comprising:
- a memory system having a view associated with a data storage location identified by a tag derived from the target address, said data storage location associated with the load/store instruction, said memory system responsive to the target address to produce a particular view for the load/store instruction from said memory system;
- and
- a controller, coupled to said data storage location and to said memory system, for implementing a an load/store method for the load/store instruction using said particular view.
A method for extending a load/store instruction having a target address, the method comprising:
- a) producing, responsive to the target address, a particular view for the load/store instruction from a memory system, said memory system having a view associated with a data storage location identified by a tag derived from the target address, said data storage location associated with the load/store instruction;
- and
- b) implementing a load/store method for the load/store instruction using said particular view.
A computer program product comprising a computer readable medium carrying program instructions for extending a load/store instruction having a target address when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) producing, responsive to the target address, a particular view for the load/store instruction from a memory system, said memory system having a view associated with a data storage location identified by a tag derived from the target address, said data storage location associated with the load/store instruction;
- and
- b) implementing a load/store method for the load/store instruction using said particular view.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) producing, responsive to the target address, a particular view for the load/store instruction from a memory system, said memory system having a view associated with a data storage location identified by a tag derived from the target address, said data storage location associated with the load/store instruction;
- and
- b) implementing a load/store method for the load/store instruction using said particular view.
A shared resource access control system, comprising:
- a storage structure responsive to a plurality of control references with each said control reference derived from an access reference identifying the shared resource, said storage structure including a plurality of sets of access method functions at least one set associated with each of a plurality of shared resources, with each said set of access method functions including a first access method function and a second access method function with said storage structure producing a particular one access method function from a particular one set associated with the shared resource responsive to said control references;
- and
- a controller, coupled to said storage structure, for controlling access to the shared resource using said particular one access method function.
A shared resource access control method, comprising:
- a) applying an access instruction for a shared resource identified by an access reference to a storage structure that includes said shared resource, said storage structure responsive to a plurality of control references with each said control reference derived from said access reference, said storage structure including a plurality of sets of access method functions at least one set associated with each of a plurality of shared resources, with each said set of access method functions including a first access method function and a second access method function;
- b) producing a particular one access method function from a particular one set associated with the shared resource responsive to said control references;
- and
- c) controlling access to the shared resource using said particular one access rule function.
A computer program product comprising a computer readable medium carrying program instructions for accessing a shared resource when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) applying an access instruction for a shared resource identified by an access reference to a storage structure that includes said shared resource, said storage structure responsive to a plurality of control references with each said control reference derived from said access reference, said storage structure including a plurality of sets of access method functions at least one set associated with each of a plurality of shared resources, with each said set of access method functions including a first access method function and a second access method function;
- b) producing a particular one access method function from a particular one set associated with the shared resource responsive to said control references;
- and
- c) controlling access to the shared resource using said particular one access rule function.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) applying an access instruction for a shared resource identified by an access reference to a storage structure that includes said shared resource, said storage structure responsive to a plurality of control references with each said control reference derived from said access reference, said storage structure including a plurality of sets of access method functions at least one set associated with each of a plurality of shared resources, with each said set of access method functions including a first access method function and a second access method function;
- b) producing a particular one access method function from a particular one set associated with the shared resource responsive to said control references;
- and
- c) controlling access to the shared resource using said particular one access rule function.
A method for selectively extending an instruction having a default instruction method, the method comprising:
- a) determining whether the instruction is to be extended through use of an alternate instruction method for the instruction responsive to a context of the instruction wherein said alternate instruction method differs from the default instruction method;
- and
- b) using said alternate instruction method for the instruction when the instruction is to be extended.
The method of 63 wherein said instruction method function includes one or more state bits stored in a data structure associated with a resource used in said alternate instruction method.
The method of 69 wherein each said instruction method function for each context includes one or more state bits stored in a common data structure associated with said operand and wherein a particular set of said one or more state bits is selected from said data structure responsive to said operand.
A computer program product comprising a computer readable medium carrying program instructions for selectively extending an instruction having a default instruction method when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) determining whether the instruction is to be extended through use of an alternate instruction method for the instruction responsive to a context of the instruction wherein said alternate instruction method differs from the default instruction method;
- and
- b) using said alternate instruction method for the instruction when the instruction is to be extended.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) determining whether the instruction is to be extended through use of an alternate instruction method for the instruction responsive to a context of the instruction wherein said alternate instruction method differs from the default instruction method;
- and
- b) using said alternate instruction method for the instruction when the instruction is to be extended.
An apparatus, comprising:
- means for determining whether the instruction is to be extended through use of an alternate instruction method for the instruction responsive to a context of the instruction wherein said alternate instruction method differs from the default instruction method;
- and
- means for using said alternate instruction method for the instruction when the instruction is to be extended.
An apparatus for selectively extending an instruction having a default instruction method, comprising:
- a context evaluator for determining whether the instruction is to be extended through use of an alternate instruction method for the instruction responsive to a context of the instruction wherein said alternate instruction method differs from the default instruction method;
- and
- a controller using said alternate instruction method for the instruction when the instruction is to be extended.
A method for selectively extending a memory load/store instruction having a default instruction method, the method comprising:
- a) determining whether the instruction is to be extended through use of a synchronizing instruction method applied to the instruction responsive to an operand of the instruction, said operand including a target address identifying a target memory location in a memory system, said target memory location different for the default instruction method and said synchronizing instruction method with at least of a portion of said target address selecting a particular set of one or more synchronization primitive data bits from a data structure associated with said target memory location appropriate for the desired synchronization instruction method to be applied;
- and
- b) using said synchronizing instruction method for the instruction when the instruction is to be extended so that said particular set of synchronization primitive data bits influence the memory load/store instruction relative to said target memory location wherein the default instruction method is not influenced by any synchronization primitive data bits.
A computer program product comprising a computer readable medium carrying program instructions for selectively extending an instruction having a default instruction method when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) determining whether the instruction is to be extended through use of a synchronizing instruction method applied to the instruction responsive to an operand of the instruction, said operand including a target address identifying a target memory location in a memory system, said target memory location different for the default instruction method and said synchronizing instruction method with at least of a portion of said target address selecting a particular set of one or more synchronization primitive data bits from a data structure associated with said target memory location appropriate for the desired synchronization instruction method to be applied;
- and
- b) using said synchronizing instruction method for the instruction when the instruction is to be extended so that said particular set of synchronization primitive data bits influence the memory load/store instruction relative to said target memory location wherein the default instruction method is not influenced by any synchronization primitive data bits.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) determining whether the instruction is to be extended through use of a synchronizing instruction method applied to the instruction responsive to an operand of the instruction, said operand including a target address identifying a target memory location in a memory system, said target memory location different for the default instruction method and said synchronizing instruction method with at least of a portion of said target address selecting a particular set of one or more synchronization primitive data bits from a data structure associated with said target memory location appropriate for the desired synchronization instruction method to be applied;
- and
- b) using said synchronizing instruction method for the instruction when the instruction is to be extended so that said particular set of synchronization primitive data bits influence the memory load/store instruction relative to said target memory location wherein the default instruction method is not influenced by any synchronization primitive data bits.
An apparatus, comprising:
- means for determining whether the instruction is to be extended through use of a synchronizing instruction method applied to the instruction responsive to an operand of the instruction, said operand including a target address identifying a target memory location in a memory system, said target memory location different for the default instruction method and said synchronizing instruction method with at least of a portion of said target address selecting a particular set of one or more synchronization primitive data bits from a data structure associated with said target memory location appropriate for the desired synchronization instruction method to be applied;
- and
- means for using said synchronizing instruction method for the instruction when the instruction is to be extended so that said particular set of synchronization primitive data bits influence the memory load/store instruction relative to said target memory location wherein the default instruction method is not influenced by any synchronization primitive data bits.
An apparatus for selectively extending an instruction having a default instruction method, comprising:
- a context evaluator for determining whether the instruction is to be extended through use of a synchronizing instruction method applied to the instruction responsive to an operand of the instruction, said operand including a target address identifying a target memory location in a memory system, said target memory location different for the default instruction method and said synchronizing instruction method with at least of a portion of said target address selecting a particular set of one or more synchronization primitive data bits from a data structure associated with said target memory location appropriate for the desired synchronization instruction method to be applied;
- and
- a controller using said synchronizing instruction method for the instruction when the instruction is to be extended so that said particular set of synchronization primitive data bits influence the memory load/store instruction relative to said target memory location wherein the default instruction method is not influenced by any synchronization primitive data bits.
A method for selectively extending a load/store instruction having a default load/store method, the method comprising:
- a) determining whether the load/store instruction is to be extended through use of a synchronizing load/store method for the load/store instruction responsive to a target address of the load/store instruction wherein said synchronizing load/store method differs from the default load/store method;
- and
- b) using said synchronizing load/store method for the load/store instruction when the load/store instruction is to be extended.
A computer program product comprising a computer readable medium carrying program instructions for selectively extending an instruction having a default instruction method when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) determining whether the load/store instruction is to be extended through use of a synchronizing load/store method for the load/store instruction responsive to a target address of the load/store instruction wherein said synchronizing load/store method differs from the default load/store method;
- and
- b) using said synchronizing load/store method for the load/store instruction when the load/store instruction is to be extended.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) determining whether the load/store instruction is to be extended through use of a synchronizing load/store method for the load/store instruction responsive to a target address of the load/store instruction wherein said synchronizing load/store method differs from the default load/store method;
- and
- b) using said synchronizing load/store method for the load/store instruction when the load/store instruction is to be extended.
An apparatus for selectively extending an instruction having a default instruction method, comprising:
- a context evaluator for determining whether the load/store instruction is to be extended through use of a synchronizing load/store method for the load/store instruction responsive to a target address of the load/store instruction wherein said synchronizing load/store method differs from the default load/store method;
- and
- a controller using said synchronizing load/store method for the load/store instruction when the load/store instruction is to be extended.
An apparatus for selectively extending an instruction having a default instruction method, comprising:
- means for determining whether the load/store instruction is to be extended through use of a synchronizing load/store method for the load/store instruction responsive to a target address of the load/store instruction wherein said synchronizing load/store method differs from the default load/store method;
- and
- means for using said synchronizing load/store method for the load/store instruction when the load/store instruction is to be extended.
A data storage system responsive to a load/store instruction having a target address, comprising:
- a data memory having a plurality of data storage locations, said data memory identifying a particular data storage location responsive to the target address;
- and
- a view directory storing a view associated with each data storage location of said plurality of storage locations, said view directory identifying a particular one view responsive to the target address.
A data storage method responsive to a load/store instruction having a target address, the method comprising:
- a) identifying, responsive to the target address, a particular data storage location from a data memory having a plurality of data storage locations;
- and
- b) identifying, responsive to the target address, a particular one view from a view directory storing a view associated with each data storage location of said plurality of storage locations.
A computer program product comprising a computer readable medium carrying program instructions for producing data responsive to a load/store instruction having a target address when executed using a computing system, the executed program instructions executing a method, the method comprising:
- a) identifying, responsive to the target address, a particular data storage location from a data memory having a plurality of data storage locations;
- and
- b) identifying, responsive to the target address, a particular one view from a view directory storing a view associated with each data storage location of said plurality of storage locations.
A propagated signal on which is carried computer-executable instructions which when executed by a computing system performs a method, the method comprising:
- a) identifying, responsive to the target address, a particular data storage location from a data memory having a plurality of data storage locations;
- and
- b) identifying, responsive to the target address, a particular one view from a view directory storing a view associated with each data storage location of said plurality of storage locations.
A data storage apparatus responsive to a load/store instruction having a target address, comprising:
- means for identifying, responsive to the target address, a particular data storage location from a data memory having a plurality of data storage locations;
- and
- means for identifying, responsive to the target address, a particular one view from a view directory storing a view associated with each data storage location of said plurality of storage locations.
Dependencies are inferred from the claim text.