Browse Prior Art Database

Automatic Descriptor Decoding

IP.com Disclosure Number: IPCOM000079320D
Original Publication Date: 1973-Jun-01
Included in the Prior Art Database: 2005-Feb-26
Document File: 3 page(s) / 45K

Publishing Venue

IBM

Related People

Benkard, JP: AUTHOR [+2]

Abstract

In programming languages whose data descriptors can change at execution time, the translation of operand data types must be accomplished by interpretation, with a consequent reduction in execution speed. Interpretation typically proceeds in a series of bit tests and branches until the final execution loop begins.

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 54% of the total text.

Page 1 of 3

Automatic Descriptor Decoding

In programming languages whose data descriptors can change at execution time, the translation of operand data types must be accomplished by interpretation, with a consequent reduction in execution speed. Interpretation typically proceeds in a series of bit tests and branches until the final execution loop begins.

The method described herein decodes instructions which use described data. Described data uses a descriptor field in a data set containing the data to identify the type and data attributes. The method operates in stages in a finite state machine simulation. The procedure permits a great deal of generality, and is suitable for CPU implementation of a generic set of instructions in hardware/firmware.

The related figure illustrates an example of the method for an add instruction, but the same method can be used for operands in other types of instructions.

The input to each stage of the decoding process is determined by a built-in prescription which selects certain fields from the relevant descriptors, together with the result of the preceding stages of decoding. These are combined and used as input to a table defined for each stage. The tables are called filters. The method terminates when the result of the decode stage is an executable operation.

Concurrently, a fetch for the data itself may be issued so it may be available for the ultimate operation execution. The filters are decision tables, the entries of which specify the action to be taken on the described data. Such actions include conformability checks, streaming preparation, type checks, and conversion.

As a simple example, consider a typical dyadic "add" instruction as shown in the figure: ADD A,B the semantics of which state that the described data A and B are to be added together, the result replacing A. Also assume that the descriptors have only two fields: structure (scalar or vector) and data type (fixed point or floating point). Finally, for the sake of simplicity in the example, let A be a fixed-point scalar, and B be a floating-poi...