Data processor comprising an arithmetic logic unit

Electrical computers and digital processing systems: processing – Architecture based instruction processing – Stack based computer

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06564312

ABSTRACT:

FIELD OF THE INVENTION
The invention relates to data processing by means of an arithmetic logic unit that co-operates with a stack. The invention may be applied in, for example, a multimedia product comprising a controller, in the form of a processor, for providing control data to various functional units.
BACKGROUND OF THE INVENTION
An arithmetic logic unit (ALU) typically carries out an operation on two input data, also called operands, so as to obtain an output data. The operation, which the ALU carries out, is generally defined by an instruction, also called micro code, in the form of a string of bits. The instruction may cause the ALU to carry out an arithmetic operation, for example, an addition: Z=X+Y; X and Y representing the input data and Z the output data. The instruction may also cause the ALU to carry out a logical operation, for example, an AND, OR, NAND or NOR function.
The ALU may co-operate with a stack. A stack is an assembly of storage elements, each storage element capable of containing data. Input data that are soon to be processed by the ALU are temporarily stored in the stack. An output data from the ALU may be temporarily stored in the stack too. A stack pointer generally indicates the storage element that constitutes the top-of-stack. A data that is placed on the stack is generally written into the top-of-stack and a data that is removed from the stack is generally read from the top-of-stack too. The writing and reading of data into and from the stack will be referred to as pushing and popping hereinafter. Generally, input data for the ALU are obtained by popping data from the stack and output data are stored by pushing data onto the stack. A processor that operates in this manner is referred to as a stack-based processor in the International Application published under number WO95/30954.
SUMMARY OF THE INVENTION
It is an object of the invention to allow a reduction of cost.
According to the invention, a data processor comprises an arithmetic logic unit for carrying out an arithmetic or logic operation on a first and second input data. It further comprises a stack for storing data. A data having a certain position in the stack is applied to the arithmetic logic unit as the first input data. The data processor can execute an instruction which comprises an address indicating a memory location among a plurality of memory locations. The address causes a data, which is contained in the memory location that it indicates, to be applied to the arithmetic logic unit as the second input data.
The invention takes the following aspects into consideration. It generally requires a certain number of steps for a stack-based processor to carry out an arithmetic or logic operation. The arithmetic or logic operation itself, which is carried out by the ALU, constitutes one step. One or more additional steps may be required to cause desired input data to be applied to the ALU. Such additional steps generally involve stack manipulations such as, for example, one or more push or pop operations or a combination of both operations. In principle, each step requires at least one clock cycle. Consequently, it will take generally several clock cycles for a stack-based processor to carry out an arithmetic or logic operation. I.e. data processing will be slow. Consequently, the stack-based processor has to be implemented using relatively fast elements if it has to carry out a series of arithmetic and logic operations within a certain time-interval. Such implementations are relatively expensive.
A solution to the speed problem described above is to use a register-based processor for carrying out the arithmetic and logic operations instead of a stack-based processor. In a register-based processor, input data for the ALU is stored in a set of registers instead of a stack arrangement. The desired input data for the ALU is retrieved from the set of registers by addressing two registers, each of which provides an input data for the ALU. Accordingly, an instruction for a register-based processor comprises two address fields. Each address field contains a value that indicates a particular register among the set of registers. Consequently, it will generally require fewer clock cycles for a register-based processor to apply desired input data to the ALU than a stack-based processor. Consequently, a register-based processor can be implemented using relatively slow elements compared with a stack-based processor. Thus, in principle, a register-based processor should allow more costefficient implementations.
However, the amount of memory that is required to store a software program, which defines a series of arithmetic and logic operations, may also play an important role in terms of costs. This is particularly true when the memory in which the software program is stored forms part of an integrated circuit that is not primarily a memory circuit. An example of such an application is a digital signal processor in the form of an integrated circuit that comprises a memory for storing so-called embedded control software. Such a memory is relatively expensive.
It is not always immediately clear which type of processor, stack-based or processor-based, is more advantageous in terms of memory costs. One the one hand, it will generally require more instructions for causing a stack-based processor to carry out an arithmetic or logic operation than for causing a register-based processor to do the same. Thus, a register-based processor is more efficient than a stack-based processor in terms of number of instructions. On the other hand, an instruction for register-based processor is longer than an instruction for a stack-based processor. The reason for this is that a register-based processor comprises two address fields, as explained hereinbefore, whereas a stack-based processor does not comprise any address field. Thus, a stack-based processor is more efficient than a register-based processor in terms of instruction length. Which type of processor, stack-based or register-based, will allow the smallest software program for a certain functionality depends, amongst other things, on the functionality itself.
According to the invention, a processor comprises a stack and a plurality of memory locations that are functionally equivalent to registers. The processor is capable to operate as follows. A data having a certain position in a stack is applied to the ALU as a first input data. A data from a memory location (register) is applied to the ALU as a second input data. The memory location that provides the second input data is addressed by means of an address in an instruction.
Accordingly, the second input data does not need to be on the stack. Neither does it have to have a certain position on the stack. Consequently, a processor according to the invention requires fewer stack manipulations than a stack-based processor. Consequently, a processor according to the invention requires fewer instructions than a stack-based processor, which is advantageous in terms of memory cost. Moreover, it requires fewer clock cycles for a processor in accordance with the invention to carry out an arithmetic or logic operation than a stack-based processor. This further contributes to cost-efficiency.
Furthermore, a processor according to the invention allows instructions that comprise one address only. Consequently, a processor according to the invention allows instructions which are shorter than instructions for a register-based processor. As such, this contributes to a reduction of memory cost. Furthermore, a software program for a processor in accordance with the invention will generally not require much more instructions than a similar software program for a register-based processor. The reason for this is that a result of an arithmetic or logic operation is generally placed on the position the stack that provides input data to the ALU and that it indeed often occurs that the result forms an input data for a subsequent operation. Consequently, relatively few stack manipulations will be required.
In summary, a proce

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Data processor comprising an arithmetic logic unit does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Data processor comprising an arithmetic logic unit, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data processor comprising an arithmetic logic unit will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3006885

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.