Browse Prior Art Database

Load/Store Age Determination

IP.com Disclosure Number: IPCOM000012645D
Original Publication Date: 2003-May-19
Included in the Prior Art Database: 2003-May-19
Document File: 2 page(s) / 44K

Publishing Venue

IBM

Abstract

When implementing virtual load/store tags, the number of available tags is doubled. Since the Load/Store unit does not have visibility to the most significant bit of the tag, it can't always determine ages (older/younger) correctly between loads and stores, resulting in incorrect results.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 74% of the total text.

Page 1 of 2

Load/Store Age Determination

One mechanism to solve this problem is to ensure that both load_tag and store_tag associated with a load or store instruction must be in real mode before it can be allowed to issue to the Load/Store unit for execution.

In virtual tag allocation, two tags are allocated to each physical entry in the Load

Queue or Store Queue. For example, for a Load Queue of 32 physical entries, both tags "000000" and "100000" can be allocated to physical location Load Queue "0" to improve dispatch bandwidth. The two tags allocated to a single physical entry is differed only by the most significant bit (MSB) of the tag. But at any given time, only one of the tag can be active (i.e "real") in the Load Queue (i.e Load Queue physical must contain data of the older tag), while the other tag (i.e "virtual") must be held at issue queue to ensure that only the "real" tag is dispatched to the Load/Store unit before the "virtual"tag can be allowed to dispatch. The Load/Store unit is relying on receiving only the "real" tags in order to determine ages between loads and stores correctly.

The mechanism proposed in this disclosures is shown in Figure 1. At dispatch time, load tag and store tag are allocated to a load or store instruction and sent to the issue queue. The issue queue is keeping track of the most significant bit of the "real" tags (one MSB bit for each of the physical location in the Load Queue or Store Queue). At issue time, the load and store tags of...