Browse Prior Art Database

Method for enabling advanced load/validation instructions and a data-speculation validation structure without the use of snooping

IP.com Disclosure Number: IPCOM000022675D
Publication Date: 2004-Mar-25
Document File: 3 page(s) / 53K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for enabling advanced load/validation instructions and a data-speculation validation structure without the use of snooping. Benefits include improved functionality and improved performance.

This text was extracted from a Microsoft Word document.
This is the abbreviated version, containing approximately 43% of the total text.

Method for enabling advanced load/validation instructions and a data-speculation validation structure without the use of snooping

Disclosed is a method for enabling advanced load/validation instructions and a data-speculation validation structure without the use of snooping. Benefits include improved functionality and improved performance.

Background

         The conventional data-speculation technique requires the use of a snooping data-speculation validation structure that contains the information required to detect all load–store address conflicts. The side effects of requiring snooping are that connections must exist from memory-store logic and bus-monitoring logic to the data-speculation validation structure, which are not necessarily collocated on the die. Wiring and timing issues result that can be significant and affect the cost, implementation tradeoffs, and performance, of a given implementation. Additionally, efforts must be taken to ensure that no store or invalid transaction is missed by the snoop logic.

         Snooping and address matching are two key issues with the original data-speculation approach. Snooping is expensive and moderately complicated. It requires monitoring local stores, write-backs, and invalid transactions on the bus. Snooping compares physical address and access size for the store transactions and the data-speculation validation structure entries. Address matching during snooping is fuzzy (and pessimistic) unless the address hash is the identity function, which results in the invalidation of nonconflicting structure entries.

         Fuzzy address matching is an optimization that trades off storage bits and address-compare cost/latency against the degree of pessimism that results. It is an implementation-derived issue. However, fuzzy address matching occurs in all conventional implementations.

         No alternative exists beyond the conventional solution.

         The definition for check load, and check instructions do not require an explicit barrier between the checking instruction and any (dependent) consumer of the data being checked. This characteristic is a performance optimization for the common case where no load–store conflict occurs and the apparent data dependency does not affect the application. However, in the event of a validation entry miss, the load-check instruction is executed and generates a failure condition that requires flushing all subsequent and possibly data-dependent instructions, following the failing check load or check instruction. The behavior typically implemented is to generate a replay of the failing check load or check instruction with data dependencies now enforced (see Figure 1).

General description

         The disclosed method enables data speculation with advanced-load compatibility without the use of snooping store transactions, either locally or remotely across a system bus.

         The disclosed method provides a general solution to performing data speculation that is applicable to any architecture.

Advantages

         The disclo...