Browse Prior Art Database

Optimization of Microcode Segment Structures

IP.com Disclosure Number: IPCOM000073824D
Original Publication Date: 1971-Feb-01
Included in the Prior Art Database: 2005-Feb-23
Document File: 2 page(s) / 40K

Publishing Venue

IBM

Related People

Foster, RL: AUTHOR [+2]

Abstract

In many processors there is a limitation on the size of segments of microcode. Consequently, any particular routine, for example, floating point add or subtract, will be divided into a number of segments. There will be a number of unconditional branch connections between segments. Each of these external connections are both time consuming and a waste of microcode.

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

Page 1 of 2

Optimization of Microcode Segment Structures

In many processors there is a limitation on the size of segments of microcode. Consequently, any particular routine, for example, floating point add or subtract, will be divided into a number of segments. There will be a number of unconditional branch connections between segments. Each of these external connections are both time consuming and a waste of microcode.

To optimize the segment structure, each branch connection is given a weighing factor K and a table constructed giving the sum of weights for each segment and the total for the complete sequence. The table is repeatedly scanned to determine which substrings having external branch connections can be moved to the connected segment to reduce the total K factor for the complete sequence.

In the table, the sum of weights at the end of each row is used to determine to which segment a particular substring may be transferred. The sum of weights is also used to form the total interconnection factor K by taking the sum of weights for the segment in which a particular substring resides as being negative and the weights of connected segments as positive and then forming the algebraic sum of all the weights for that substring. For example in the table for the first substring No. 20, K20 would be -42 + 23 = -19. Similarly, for substring No. 3, K3 would be -27 + 3 = -24, etc. The overall value for K is given by K = K20 + K3 + K14 + K23 + K6 + K12 + . . . Kn.

The table is sca...