Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

BARREL SHIFTER CONTROL MECHANISMS

IP.com Disclosure Number: IPCOM000005620D
Original Publication Date: 1986-Oct-01
Included in the Prior Art Database: 2001-Oct-19
Document File: 2 page(s) / 122K

Publishing Venue

Motorola

Related People

Bill Moyer: AUTHOR [+2]

Abstract

Many currant processor architectures (such as the M68000 architecture) include instructions for data shift- ing, rotation, bit operations, and bitfield operations. In most cases, performance of an architecture may be greatly enhanced by the use of a barrel shifter in the implementation of these instructions. Shifts and rotates by any number of bits may be performed in a single operation as opposed to serial shifting or rotating. In addi- tion, multipy algorithms involving overlapped scanning of bit fields may be implemented by the use of a barrel shifter.

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

Page 1 of 2

m MOTOROLA Technical Developments Volume 6 October 1986

BARREL SHIFTER CONTROL MECHANISMS

by Bill Moyer and Doug MacGregor

   Many currant processor architectures (such as the M68000 architecture) include instructions for data shift- ing, rotation, bit operations, and bitfield operations. In most cases, performance of an architecture may be greatly enhanced by the use of a barrel shifter in the implementation of these instructions. Shifts and rotates by any number of bits may be performed in a single operation as opposed to serial shifting or rotating. In addi- tion, multipy algorithms involving overlapped scanning of bit fields may be implemented by the use of a barrel shifter.

   To implement the bit field, shift, rotate, and multiply instructions in a barrel shifter, it is necessary to insert and extract fields and to shift or rotate those fields by a varying number of bit positions. To accomplish this, a functional block consisting of two registers (FXA and FXB), a switch unit, a barrel shifter, and associated control logic was developed. This block is shown in the diagrams.

   The direction of shifting is determined by the direction of data transfer through the barrel shifter. A right shift or rotate may be performed by transferring data from FXA to FXB through the barrel shifter, and a left shift or rotate is done by transferring data from FXB to FXA. The amount of shifting or rotating is determined by a Shift Count register (SC) in the control block.

   In order to support operations on fields of bits, two pointers are used in combination with the switch unit. The Start pointer (Start) points to the least significant bit of the bit field, and the End pointer (End) points to the most significant bit of the field. Field insert and extract operations involve decoding the Start and End pointers in the switch unit to select a range of bits in FXA. When an insert operation is performed, data is transferred from FXB through the barrel shifter, rotated left by the number of bits indicated in the SC register, and is in- serted into FXA via the switch unit in the bit positions selected by the Start and End registers. Field extract is performed similarly. Start and End select a field of bits in FXA, and the remaining bits are filled with either a constant value or with the value of the bit pointed to by the End register. This allows sign, zero, or other types of extension to be performed on the extracted bit field. This extended field then passes through the barrel shifter unit, is rotated right by the amount indicated in the SC register, and is then loaded into FXB.

   Another function of the switch unit is to provide status information about a selected field in FXA. Field values of all zeros, all ones, and the value of the b...