Browse Prior Art Database

Method for multiple code streams in the ILDQ

IP.com Disclosure Number: IPCOM000011946D
Publication Date: 2003-Mar-26
Document File: 3 page(s) / 32K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for multiple code streams in the instruction length decoder queue (ILDQ). Benefits include improved performance.

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

Method for multiple code streams in the ILDQ

Disclosed is a method for multiple code streams in the instruction length decoder queue (ILDQ). Benefits include improved performance.

Background

� � � � � Typically, a program’s code is organized in groups of sequential instructions that are connected by various branches and jumps. The sequential instructions are in one code stream. Different code streams are connected by branch instructions.

        � � � � � The ILDQ is situated between the instructor length decoder and the instruction rotator. The queue is a set of buffers storing 16-byte chunks of instruction bytes with no restriction on instruction alignment within the chunk. Partial instructions can occur within the 16-byte chunk, and an instruction can begin on any of the 16-bytes. The instruction bytes in the queue are used by the instruction rotator to generate segments of up to 16 instruction bytes, which are sent to the instruction decoder (ID). Each segment is required to begin with a new instruction. For example, the first byte of the segment is the first byte of an instruction. A 16-byte segment passed to the ID can contain at most one code stream. For example, a predicted branch instruction in bytes 5-7 of the segment is taken. All the succeeding instructions are from a different instruction stream and cannot pass to the ID in the same 16-byte segment as the branch instruction and instructions prior to the branch.

        � � � � � A simple way to ensure that only a single instruction stream is sent to the ID is to block a new instruction stream from entering the ILDQ while the queue is not empty. This technique is the conventional solution. Its advantage is its simplicity. However, the whole instruction fetch unit (IFU) pipeline is stalled, resulting in poor performance.�

Description

        � � � � � The disclosed method is multiple code streams in the ILDQ. A block diagram illustrates

� the ILDQ control that enables multiple instruction streams in the queue (see Figure 1). The conventional elements in gray, including the “New target” and “Queue is not empty elements,” are removed from an ILDQ design with m...