Browse Prior Art Database

Destination Buffer Assignment Array for In-Order Dispatch and In-Order Completion

IP.com Disclosure Number: IPCOM000112884D
Original Publication Date: 1994-Jun-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 4 page(s) / 86K

Publishing Venue

IBM

Related People

Tsay, AS: AUTHOR

Abstract

In IFU destination buffer assignment block, 12 gates delay is needed for an 8x4 array which is difficult to be fitted into 1/2 cycle (3 ns). This invention approach is to use the fact of in-order dispatch so that by divide-and-counqer techniques, we can get destination buffer assigned with only about 6 gates delay.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Destination Buffer Assignment Array for In-Order Dispatch and In-Order
Completion

      In IFU destination buffer assignment block, 12 gates delay is
needed for an 8x4 array which is difficult to be fitted into 1/2
cycle (3 ns).  This invention approach is to use the fact of in-order
dispatch so that by divide-and-counqer techniques, we can get
destination buffer assigned with only about 6 gates delay.

      The IFU needs to dispatch up to 4 instructions in one cycle.
One of the critical paths is destination buffer assignment.  It needs
to assign four buffers to eight destination buffer requests.  The
previous approach, using an 8x4 destination buffer assignment array
(DBAA), needed a 12-gate delay, which is very difficult to implement
to beat the half cycle timing requirement (3 ns).

      This invention uses a divide-and-conquer technique to reduce
the number of gate delays for an 8x4 destination buffer assignment
array.  The 8x4 DBAA array (Fig. 1) is divided into 4x3 DBAA's while
4x3 arrays are divided into 2x2, then into 1x1 DBAAs.  In Figs. 1-4,
TD represents 'Tie Down', i.e., grounded.  Those TD's which are
covered by shaded rectangle blocks are not outputs of any DBAA.  They
are added to match the number of output signals needed.

      In Fig. 1, an 8x4 DABB is divided into 2 parts.  The left part
is a 4x3 DBAA array and the right part can be implemented by two 4x3
DBAAs, one 4x2 and a 4x1 DBAA as shown in Fig. 2.  The left DBAA
generates select signals to determine which DBAA in the right hand
side should be chosen for the correct functi...