Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
LNS-BASED COMPUTER PROCESSOR AND METHOD OF USE THEREOF
Document Type and Number:
WIPO Patent Application WO/1997/024651
Kind Code:
A1
Abstract:
An LNS-based computer processor is provided for performing high-speed calculations that involve special function values. Special functions include transcendental and hyperbolic functions. The computer processor includes a decoder (11), a memory circuit (12) for storing a plurality of special function signals, a log converter (14), at least one processing element (16), and an inverse-log converter (18).

Inventors:
PAN SHAO WEI (US)
SHAY-PING T WANG (US)
Application Number:
PCT/US1996/019011
Publication Date:
July 10, 1997
Filing Date:
November 27, 1996
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MOTOROLA INC (US)
PAN SHAO WEI (US)
SHAY PING T WANG (US)
International Classes:
G06F1/03; G06F7/52; (IPC1-7): G06F1/03
Foreign References:
US5187677A1993-02-16
US3371197A1968-02-27
US4555768A1985-11-26
US4720809A1988-01-19
US5184317A1993-02-02
Download PDF:
Claims:
CLAIMS
1. In an electronic computing apparatus, a method of generating an output signal, which comprises following steps: receiving an input signal; decoding the input signal to produce a memory address; retrieving from a memory circuit a special function signal corresponding to the memory address; performing a logarithmic conversion on the special function signal to generate a log signal; generating a term signal by performing at least one arithmetic operation involving the log signal; and performing an mverselogarithmic conversion on the term signal to generate the output signal.
2. In an electronic computing apparatus, a method of generating an output signal, which comprises following steps: receiving a plurality of input signals; decoding at least one of the plurality of input signals to produce at least one memory address; retrieving from a memory circuit at least one special function signal corresponding to the at least one memory address; performing a logarithmic conversion on the at least one special function signal to generate at least one special function log signal; selectively performing the logarithmic conversion on ones of the plurality of special function signals to generate at least one log signal; generating a plurality of term signals oy performing at least one arithmetic operatic PΛτo_.vιng the at least one log signal and the at least one special function log signal; performing an inverselogarithmic conversion on the plurality of term signals to generate a plurality of inverselog signals; and summing the plurality of inverselog signals to generate the output signal.
3. A computer processor, which comprises: a decoder for decoding an input signal to generate a memory address; a memory circuit for storing a plurality cf special function signals, the memory circuit outputting a corresponding special function signal in response to the memory address; a log converter for performing a logarithmic conversion on the corresponding special function signal to generate a log signal; a processing element for generating a term signal by performing at least one arithmetic operation involving the log signal; and an inverselog converter for performing an inverse logarithmic conversion on the term signal tc generate an inverselog signal.
4. The computer processor of claim 8, further comprising: an accumulator circuit for summing the inverselog signal and at least one other signal representing a numeric value to produce an output signal.
5. The computer processor of claim 8, further comprising: a delay circuit, operatively coupled to the log converter, for allowing an input signal to bypass tne decoder and the memory circuit.
6. The computer processor of claim 8, wherein the log converter comprises: a log memory for storing a plurality of log parameters and a plurality of secondorder log parameters, the log memory providing as output ones of the log parameters and a secondorder log parameter which correspond to the special function signal; and log arithmetic means, operatively coupled to tne log memory, for generating the log signal by performing arithmetic operations involving the special function signal, the ones of the log parameters, and the second order log parameter; wherein the plurality of log parameters are calculated using a least squares method to estimate a logarithmic function over a domain of special function signals.
7. A computer processor, which comprises: a plurality of memory circuits for storing a plurality of special function signals; a demultiplexer for selectively providing a first transmission path between an input bus and a particular memory circuit of the plurality of memory circuits; a multiplexer for selectively providing a second transmission path between a data bus and the particular memory circuit; wherein a data signal is receivable by tne input bus and transmittable to the particular memcry circuit via the first transmission path according to an address signal associated with the data signal, the particular memory circuit producing a corresponding special function signal in response to the data signal, the corresponding special function signal being transmittable to the data bus via the second ' transmission path; a log converter, operatively couple to the data bus, for performing a logarithmic conversion on the corresponding special function signal to generate a log signal; a processing element for generating a term signal by performing at least one arithmetic operation involving the log signal; and an inverselog converter for performing an inverse logarithmic conversion on the term signal to generate an inverselog signal.
8. The computer processor of claim 14, wherein each of the plurality of memory circuits stores the plurality of special function signals associated with a respective special function.
9. The computer processor of claim 14, wherein the corresponding special function signal represents a value of a transcendental function or a hyperbolic function.
10. The computer processor of claim 14, further comprising: a delay circuit, operatively coupled to the de multiplexer and the multiplexer, for allowing the data signal to bypass the plurality of memory circuits.
Description:
LNS-BASED COMPUTER PROCESSOR AND METHOD OF USE THEREOF

Related Inventions

The present invention is related to the following inventions which are assigned to the same assignee as the present invention:

(1) "Logarithm/Inverse-Logarithm Converter Utilizing Second-Order Term and Method of Using Same" having Serial No. 08/382,467, filed January 31, 1995.

(2) "Exponentiation Circuit Utilizing Shift Means and Method of Using Same" having Serial No. CS/401,515, filed March 10, 1995. (3) "Computer Processor having a Pipelined

Architecture which Utilizes Feedback and Method of Using Same" having Serial No. 08/520,145, filed August 28 1995.

The subject matter of the above-identified related inventions is hereby incorporated by reference into the disclosure of this invention.

Technical Field

The present invention relates generally ro computer processors and, in particular, to a computer processor that performs arithmetic operations using a logarithmic number system (LNS) .

Background of the Invention

Computer processors are well known and wxdely used for a variety of purposes. One application cf computer processors is digital signal processing (DSF) By definition, digital signal processing is concerned with the representation of signals by sequences of numbers or symbols and the processing of these signals . DSP has a wide variety of applications and its importance is evident in such fields as pattern recognition, radio communications, telecommunications, radar, biomedical engineering, and many others. At the heart of every DSP system is a computer processor that performs mathematical operations on signals. Generally, signals received by a DSP system are first converted to a digital format used oy the computer processor. Then, the computer processor executes a series of mathematical operations on the digitized signal. The purpose of these operations may be to estimate characteristic parameters of tne signal or to transform the signal into a form which is in some sense more desirable. Such operations typically implement complicated mathematics and entail intensive numerical processing. Examples of mathematical operations that may be performed by computer processor include matrix multiplication, matrix-inversion, Fast Fourier Transforms (FFT) , auto and cross correlation,

Discrete Cosine Transforms (DCT) , polynomial equations, and difference equations in general, such as those used to approximate Infinite Impulse Response (IIR) and Finite Impulse Response (FIR) filters. In addition, some processors compute special functions. A special function is a transfer function tnat transforms an input to an output according to either a transcendental function or hyperbolic function. A function y = f(x) is a transcendental function of x if it satisfies ho equation of the form

P n (x)y n + ... + Pι(x)y + Pn (x) = C (1)

in which the coefficients Pn (x) , Pi (x) , .-• Pn (x) are polynomials in x. The six basic transcendental functions are trigonometric functions: sine, cosine, tangent, and the inverses thereof.

Hyperbolic functions include cosh, tann, smh, and the inverses thereof. Transcendental and hyperbolic functions are useful in solving a wide variety of problems that arise in science and engineering. For example, the tension at any point in a hanging cable, such as an electric transmission line, is calculated using hypercclic functions.

Computer processors vary considerably n design and function. One aspect of a processor design s its architecture. Generally, the term computer architecture refers to the instruction set and organization of a processor. An instruction set is a group of programmer- visible instructions used to program the processor. The organization of a processor, on the other har.c, refers to its overall structure and composition of

computational resources, for example, the bus structure, memory arrangement, and number of processing elements.

There are many different computer architectures, ranging from complex-instruction-set-computer (CISC) to reduced-instruction-set-computer (RISC) based architectures. In addition, some architectures have only one processing element, while others include two or more processing elements. Despite differences in architectures, all computer processors have a common goal, which is to provide the highest performance at the lowest cost. However, the performance of a computer processor is highly dependent on the problem to which the processor is applied, and few, if any, low-cost computer processors are capable of performing the mathematical operations listed above at speeds required for some of today's more demanding applications.

Thus, there is a need for a computer processor that executes mathematical operations at high speeds, while remaining inexpensive. In addition, there is a need for a computer processor that enjoys a high data throughput rate. Such a processor should also be small and consume relatively little power.

Brief Description of the Drawings

The invention is pointed out with particularity in the appended claims. However, other features of the invention will become more apparent and the invention will be best understood by referring to the following detailed description in conjunction with the accompanying drawings in which:

FIG. 1 shows a block diagram of a computer processor that is in accordance with one embodiment cf the present invention.

FIG. 2 illustrates a detailed block diagram of a converter that can function as either the log cr inverse-log converter shown in FIG. 1.

FIG. 3 shows a flow diagram representing a method of using the computer processor of FIG. 1 that is in accordance with another embodiment of the present invention.

FIG. 4 shows a block diagram of a computer processor that is in accordance with an alternative embodiment of the present invention.

FIG. 5 shows a flow diagram representing a method of using the computer processor of FIG. 4 that is in accordance with a further embodiment of the present invention.

Detailed Description of a Preferred Embodiment

Generally, the present invention provides a computer processor that receives at least one input signal and, in turn, generates at least one output signal. The input and output signals are typically construed as being digital words that represent numeric data.

It is an advantage of the present invention to provide a computer processor that calculates special functions with a high data throughput. It is also an advantage of the present invention to provide a computer processor that is capable of performing higπ-speed, sophisticated mathematical operations that ^nvolve both special function values and other, non-special function values. A further advantage of the present invention is that it provides a computer processor that _s efficiently implemented in a microchip, and is consequently small and consumes relatively _ιttle power.

FIG. 1 shows a block diagram of a computer processor that is in accordance with one embodiment of the present invention. The computer processor comprises a delay circuit 10, a decoder 11, a memory circuit 12, a log converter 14, a processing element 16, and an inverse-log converter 18. The LNS used by the computer processor is preferably a base two system.

The operation of the computer processor is described in the following. An input signal 9 is distributed to the delay circuit 10 and the decoder II. In response to the input signal 9, the decoder 11 generates a corresponding memory address. The memory address is then passed to the memory circuit 12.

The memory circuit 12 stores a look-up table of special function signals associated with a particular special function, such as sine, cosine, tangent, or hyperbolic function. The memory circuit 12 can be a SRAM, DRAM, ROM, or a plurality of registers. Upon receiving the memory address, the memory circuit 12 outputs a corresponding special function signal that is transmitted to the log converter 14.

The log converter 14 performs a logarithmic transfer function on the special function signal to generate a log signal. The log converter 14 preferably converts floating point numbers to fixed point log signals in a base two number system.

In response to the log signal, the processing element 16 generates a term signal by performing at least one arithmetic operation involving the log signal. The processing element 16, in a broad sense, s a device that performs logical or arithmetical operations on data it receives. For example, a processing element may oe as simple as an adder circuit that sums two values, or it may be a complex as a central processing unit (CPU)

which performs a wide variety of different operations. The processing element 16 performs one or more operations which result the term signal being generated as output. In one embodiment of the present invention, the processing element 16 produces the term signal based on an equation:

y = w + x (2)

In Equation (2) , y represents the term signal, w represents a coefficient value, and x represents the log signal. In a preferred embodiment of the present invention, the processing element 16 generates the term signal from a sequence of log signals, based on the following equation:

n y = w + Σ gixi (3) i=m

In Equation (3), y represents the term signal, w represents a coefficient value, xi represents an ith log signal received by the processing element 16, g x represents an exponent value corresponding to the ith log signal, and i, m and n are any integers.

The internal structure of the processing element 16 is preferably based on the architectures disclosed n above-identified Related Invention No. 2, Serial No. 08/401,515.

The inverse-log converter 18 performs an inverse- logarithmic conversion on the term signal to generate an

inverse-log signal. Preferably, the inverse-log signal represents a floating point number. The inverse-log signal alone can represent the output of the computer processor or it can be combined with other data signals to produce the processor output.

The delay circuit 10 allows the input signal 9 to bypass the decoder 11 and memory circuit 12. Generally, the delay circuit 10 performs an identity function, y = f(x) = x, where x represents the input signal 9 and y represents the delay circuit 10 output. The delay circuit 10 can be a buffer, register, or any other means for holding the input signal 9 for a finite period of time and then providing it to the log converter 14. Preferably, the period of time is equivalent to the latent period encountered between the arrival of the input signal 9 at the decoder 11 and the output of the corresponding special function signal by the memory circuit 12. The delay circuit 10 allows the computer processor to directly interlace a sequence of pristine input signals with special function signals without creating a resource conflict at the input of the log converter 14.

Alternatively, the delay circuit 10 can provide a delay that is much smaller than the latent period of the decoder 11/memory circuit 12 transmission path. This embodiment of the delay circuit 10 allows the pristine input signal as well as its corresponding special function signal to arrive at the log converter 14 without conflict. An enable signal 13 is applied to the decoder 11 and the memory circuit 12 to allow these components to process the input signal 9. The enable signal 13 is also applied to an inverter 15 to produce ar. inverse- enable signal that is applied to the delay circuit 10.

Essentially, the enable signal 13 controls whether the input signal 9 is processed by either the delay circuit 10 or the decoder 11 and memory circuit 12. When the enable signal 13 is active, the output of the memory circuit 12 is enabled so that special function signals will arrive at the log converter 14. During the enable- active state, the output of the delay circuit 10 is placed in a high-impedance state. Conversely, when the enable signal 13 is inactive, the memory circuit 12 output is held in high-impedance while the delay circuit 10 output is enabled. This prevents bus contention at the input to the log converter 14. To reduce power consumption, the enable signal 13 selectively enables the input of the decoder 11. FIG. 1 shows just one exemplary configuration for controlling the data paths through the computer processor. It will be apparent to one of ordinary skill in the art that there are many alternative circuit configurations for selecting the data path taken by the input signal 9. For example, a multiplexer/de¬ multiplexer pair can instead be used to select between tne data paths.

FIG. 2 illustrates a detailed block diagram of a converter that can function as either the log or inverse-log converter of FIG. 1. The converter comprises a log memory 20, a multiplier 22, a first adder 24, and a second adder 26. The log memory 20 stores a plurality of second-order parameters and a plurality of parameter pairs. The parameter pairs and second-order parameters are calculated using a least squares method to estimate either a log or an inverse-log function over a domain of input signals. Each parameter pair has a zero-oroer parameter, which is stored in a zero-order _ook-υp table

10

28, and a first-order parameter which is stored in a first-order look-up table 30. The second-order parameters are stored in a second-order look-up table 32. The converter operates as follows. An input signal 34 provides an address 36 which is used to retrieve a corresponding parameter pair from the zero-oroer and first-order look-up tables 28-30. The input signal 34 is a binary signal having a length of 23-bits, denoted by [22:0], wherein the most significant nine bits,

[22:14], of the input signal 34 are provided to the log memory 20 as the address 36. Additionally, tne zero- order and first-order parameters 42-44 are located in the log memory 20 at a common address which corresponds to the input signal 34. A second-order parameter address 38 is also derived from the input signal 34. The second-order parameter address is used to retrieve the second-order parameter 46 from the second-order look-up table 32. The input signal 34 is a binary signal having an upper portion and a lower portion. The second-order parameter 46 is retrievable from the log memory 20 using a first bit slice from the upper portion concatenated with a second bit slice from the lower portion. Preferably, the input signal 34 has a length of 23 bits, denoted by [22:0], where the upper portion includes the most significant nine bits, [22:14], and the lower portion includes the remaining 14 bits, [13:0] . The second-order parameter address 38 is a nine-bit value, which comprises the most significant four bits of the upper portion concatenated with the most significant five bits of the lower portion ,i.e., bits [22:19] [13:9] of the input signal 34.

The log memory 20 provides as output tr.e zero-order parameter 42, the first-order parameter 44, and the second-order parameter 46 which correspond to the input signal 34. Preferably, the zero-order parameter 42 is a 24-bit binary value, the first-order parameter 44 is a 15-bit value, and the second-order parameter 46 is a 9- bit value ' . A total of 512 parameter pairs and 512 second-order parameters are stored in the log memory 20. The multiplier 22 multiplies the first-order parameter 44 by the bit slice 40 to produce a proportional signal. Although the bit slice 40 may include the entire input signal 34, it preferably includes the fourteen least significant bits, [13:0], of the input signal 34. The first adder 24 sums the proportional signal and the second-order parameter 46 to produce a first sum. In turn, the second adder 26 sums the first sum and the zero-order parameter 42 to produce an output signal 48. The output signal 48 is preferably 23 bits in length. The converter of FIG. 2 may easily be re-configured to perform log or inverse-log conversions, cr functions having a different base number system or domain of inputs, by loading the log memory 20 with a different set of parameter pairs and second-order parameters. An IEEE standard 32-bit floating point number is easily converted to a log value using the converter of FIG. 2. Values represented by IEEE floating point numbers have one sign bit, a 23-bit mantissa, and an 8- bit exponent. Only the mantissa is provided to the converter as the input signal 34. Both the sign bit and exponent bypass the converter and are later combined with the output signal 48 (not shown) to produce the log signal. Essentially, the converter computes either y = log2(l-M), where y represents the output signal 48 and M

represents tne mantissa. The exponent of tne floating point number is a base-two value, 2 e , where e represents the exponent. A log signal corresponding to the floating point number is generated by summing of the output signal 48 and the exponent following conversion of the mantissa. This summation results in a value which is represented in a fixed point number format having a j-bit fractional portion and a k-bit integer portion. The integers j and k can vary, depending on the desired precision of the converter.

To perform an inverse-log conversion on the fixed point number, fractional portion is provided to the converter as the input signal 34. The converter computes an output signal 48 having the form y=log2 ~ 1 (1.F) , where F represents the fractional portion. The sign bit and integer portion bypass the converter and are later combined (not shown) with the output signal 48 to produce the inverse-log signal in accordance with the IEEE floating point standard. This is accomplished by equating the integer portion to the exponent of the floating point number and the output signal ^8 to the mantissa.

FIG. 3 shows a flow diagram representmα a method of using tne computer processor of FIG. 1 that is in accordance with another embodiment of the present invention. In box 60, at least one input signal 9 is received by the computer processor. The input signal 9 is preferaoly a digital word having a plurality of bits. Next, in box 62, the input signal 9 is decoded tc produce a memory address. In box 64, the soecial function signal corresponding to the memory address is retrieved from the memory circuit 12. In bo 66, a logarithmic conversion is performed on the function signal to generate the log signal. In box 68,

the term signal is generated by performing at least one arithmetic operation involving the log signal. In box 70, an inverse-logarithmic conversion is performed on the term signal to generate the output signal. FIG. 4 shows a block diagram of a computer processor that is in accordance with an alternative embodiment of the present invention. In contrast to the computer processor of FIG. 1, the processor depicted by FIG. 4 is capable of storing special function signals for a plurality of different special functions. In addition, this embodiment of the computer processor includes more than one memory circuit, thus easing integrated circuit design by providing more degrees of freedom m choosing a physical layout. Furthermore, the partitioning of the memory into separate circuits provides a reduction in power consumption by allowing selective activation of only those memory circuits being used at a particular instance.

The computer processor of FIG. 4 comprises a de- multiplexer 84 (DE-MUX) , a delay circuit 86, a plurality of memory circuits 88-90, a multiplexer 92 (MUX) , a log converter 94, a plurality of processing elements 96 (PEs) , and an inverse-log converter 102, anc an accumulator 104. The operation of the computer processor is described in the following. An input signal 80 is received by the DE-MUX 84. The DE-MUX 84 selectively provides the input signal 80 to the delay circuit 86 or any of the memory circuits 88-90. An address signal 82 s received concomitantly with the input signal 80 by both the DE-MUX 84 and MUX 92. The address signal 82 is used to select a corresponding transmission path through one of the delay or memory circuits 86-90.

The oelay circuit 86 basically performs tne same function as the delay circuit 10 described in reference to FIG. 1. However, the delay circuit 86 of FIG. 4 typically does not require a three-state output. Each of the memory circuits 88-90 can store a plurality of special function signals associated with a particular special function, such as sine, cosine, tangent, or hyperbolic function. Consequently, the address signal 82 selects the transfer function performed on the input signal 80, be it a special function or an identity function provided by the delay circuit 86. The memory circuits 88-90 can be SRAMs, DRAMs, ROMs, a plurality of registers, or any combination thereof. Upon receiving the input signal 80, the selected memory circuit outputs a corresponding special function signal that is transmitted to the MUX 92.

The MUX 92 selectively provides a transmission path between the log converter 94 and the delay ana memory circuits 86-90. The transmission path is selected according to the address signal 82.

The log converter 94 performs a logarithmic transfer function on MUX 92 output to generate a log signal. The functions and structure of the log converter 94 are described herein in conjunction with FIGS. 1 and 2.

The processing elements 96 generate a plurality of term signals by performing arithmetic operations involving the log signal . Each of the processing elements 96 preferably includes the features and functions described in conjunction with the processing element 16 of FIG. 1

The inverse-log converter 102 performs mverse- logarith ic conversions on the term signals to generate

a plurality of inverse-log signals. The basic functions and structure of the inverse-log converter 102 are described herein in conjunction with FIGS. 1 and 2. However, in addition to these features, the inverse-log converter 102 of FIG. 4 can include a means for concurrently receiving the term signals.

The accumulator circuit 104 sums the inverse-log signals to produce at least one output signal. By summing a the inverse-log signals, the accumulator 104 can generate a processor output signal representative of a polynomial expansion having the form

n y = Σ wi [FI {f (xj) }9ji] (4) =0 j=0

In Equation (4) , XJ represents a plurality of input signals, i, j, m and n are integers, y represents the output signal, w^ represents a coefficient, gji represents an exponent, and f represents an identity function or a special function.

An exemplary polynomial that includes both special function signals and regular input signal is given below:

y = wχxι_ + W2X2 +W3 1X2 +

In Equation (5) , y represents the output signal and xi represents input signals. A first special function signal could represent the term sin(x2), while a second special function signal would represent tanh(."3) .

FIG. 4 shows just one exemplary circuit configuration for the computer processor. It will be apparent to one of ordinary skill in the art that there are many alternative circuit configurations that embody the spirit and scope of the present invention. For example, a single processing element can be used instead of the plurality of processing element 96. Such a configuration reduces the overall size of the processor, but reduce the data throughput rate. Another alternative configuration can provide a plurality of inverse-log converters have a one-to-one correspondence with the processing elements 96. This configuration increases data throughput, but at the expense of size and power increases. A further alternative configuration can use a single memory circuit rather than the plurality of memory circuits 88-90. The single memory circuit can have a memory space that is partitioned into a plurality of pages. Each page would correspond to a particular address signal and contain special functions signals of a particular special function. This configuration reduces the complexity of the DE-MUX 84 and MUX 92. However, it may require a large single memory circuit that would limit design choices during implementation in an integrated circuit (IC) .

FIG. 5 shows a flow diagram representing a method of using the computer processor of FIG. 4 that is in accordance with a further embodiment of the present invention. In contrast to the flow diagram shown in FIG. 3, this flow diagram depicts the inter-mixed processing of pristine input signals with special function signals.

In box 110, a sequence of input signals are received by the computer processor. In this method, an

1 1

input signal includes both the input signal 80 and the address signal 82 described m conjunction with FIG. 4.

Next, in box 112, at least one of the input signals is decoded to produce at least one memory address. A determination as to whether a particular input signal is decoded is based on the address portion of the input signal. The remaining, non-decoded input signals bypass the memory circuits 88-90 through the delay circuit 86. In box 114, at least one special function signal corresponding to the at least one memory address is retrieved from a selected one of the memory circuits 88- 90.

In box 116, a logarithmic conversion is performed on the retrieved special function signal to generate at least one special function log signal. In addition, the conversion is also performed on the non-decoded input signals from the delay circuit 86 to produce corresponding log signals.

In box 118, the term signals are generated by the processing elements 96 performing arithmetic operations involving the log signals and the at least one special function log signal.

In box 120, an inverse-logarithmic conversion is performed on the term signals to generate the inverse- log signals. In box 122, the accumulator circuit 104 sums the inverse-log signals to generate the output signal.

In summary, there has been described herein a concept, as well as a preferred embodiment, of a computer processor which may be used to compute special functions. Because the various embodiments of the processor as herein-described utilize a memory for storing special function values that is coupled with LNS-baseo processing elements, they can perform

sophisticated math functions at dramatically improved data throughput rates. Moreover, the processor of the present invention provides a delay circuit that allows regular input signals to be interlaced during processing.

While specific embodiments of the present invention have been shown and described, it will be apparent to those skilled in the art that the disclosed invention may be modified in numerous ways and may assume many embodiments other than the preferred form specifically set out and described above.

Accordingly, it is intended by the appended claims to cover all modifications of the invention which fall within the true spirit and scope of the invention.

What is claimed is;