Minimizing self-modifying code checks for uncacheable memory types
First Claim
1. A processor comprising:
- a load/store unit including;
a buffer configured to store a store memory operation and a corresponding cacheability indication; and
a control logic configured to set said cacheability indication according to a translation of a store address corresponding to said store memory operation, and wherein said control logic is coupled to receive a signal indicative of whether one or more instructions in-flight within said processor are uncacheable, and wherein said control logic is configured to inhibit a self-modifying code (SMC) check for said store memory operation responsive to;
(i) said cacheability indication indicating non-cacheable; and
(ii) said signal indicating cacheable.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor employs an SMC check apparatus. The SMC check apparatus may minimize the number of explicit SMC checks performed for non-cacheable stores. Cacheable stores may be handled using any suitable mechanism. For non-cacheable stores, the processor tracks whether or not the in-flight instructions are cached. Upon encountering a non-cacheable store, the processor inhibits an SMC check if the in-flight instructions are cached. Since, for performance reasons, the code stream is often cached, non-cacheable stores may frequently be able to skip an explicit, complex, and time consuming SMC check. Performance of non-cacheable stores (and memory throughput overall) may be increased. The handling of non-cacheable stores as described herein may be particularly beneficial to video data manipulations, which may frequently be of a non-cacheable memory type and which may be important to the overall performance of a computer system.
-
Citations
35 Claims
-
1. A processor comprising:
-
a load/store unit including;
a buffer configured to store a store memory operation and a corresponding cacheability indication; and
a control logic configured to set said cacheability indication according to a translation of a store address corresponding to said store memory operation, and wherein said control logic is coupled to receive a signal indicative of whether one or more instructions in-flight within said processor are uncacheable, and wherein said control logic is configured to inhibit a self-modifying code (SMC) check for said store memory operation responsive to;
(i) said cacheability indication indicating non-cacheable; and
(ii) said signal indicating cacheable.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system comprising:
-
a processor including;
a load/store unit including (i) a buffer configured to store a store memory operation and a corresponding cacheability indication; and
(ii) a control logic configured to set said cacheability indication according to a translation of a store address corresponding to said store memory operation, and wherein said control logic is coupled to receive a signal indicative of whether one or more instructions in-flight within said processor are uncacheable, and wherein said control logic is configured to inhibit a self-modifying code (SMC) check for said store memory operation responsive to;
(i) said cacheability indication indicating non-cacheable; and
(ii) said signal indicating cacheable; and
a peripheral device for providing communication between said computer system and another computer system to which said peripheral device is coupled. - View Dependent Claims (15, 16)
-
-
17. A method for performing self-modifying code (SMC) checks in a processor, the method comprising:
-
determining that a store memory operation is non-cacheable;
asserting a signal if one or more instructions in-flight within said processor are non-cacheable; and
inhibiting an SMC check for said store memory operation if said store memory operation is non-cacheable and said signal is deasserted. - View Dependent Claims (18, 19)
-
-
20. An apparatus comprising:
-
a buffer configured to store a store memory operation and a corresponding cacheability indication; and
a control logic coupled to the buffer and to receive a signal indicative of whether one or more instructions in-flight within said processor are uncacheable, and wherein said control logic is configured to inhibit a self-modifying code (SMC) check for said store memory operation responsive to;
(i) said cacheability indication indicating non-cacheable; and
(ii) said signal indicating cacheable.- View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A method for performing self-modifying code (SMC) checks in a processor, the method comprising:
-
determining that a store memory operation is non-cacheable;
determining whether or not one or more in-flight instructions are non-cacheable; and
inhibiting an SMC check for said store memory operation if said store memory operation is non-cacheable and said in-flight instructions are cacheable. - View Dependent Claims (34, 35)
-
Specification