|
|
|
|
|
|
|
floating-point representations for zero are the samea bit vector of all 0 digitswhereas the decimal form is often represented as the character ''0" followed by a length code of 1, or as the character string "0.0" followed by a length code of 3 and a sign digit; and yet, despite the different formats, all of these representations are equivalent to the same actual value! |
|
|
|
|
|
|
|
|
Clearly, different processors have completely different data representations. Some representations are based on speed, others on compactness, and others seemingly on sheer perversity. For example, the Cray series of processors uses a proprietary floating-point representation that has as its main virtue the speed of the implementation, but has many representation anomalies (e.g., the number "one" multiplied by a very large number may cause an overflow). Almost every manufacturer has used at least one unique floating-point number format through the years. At one time, CDC supported at least five different (non-compatible) floating-point representations on their product line. It is only recently that new designs have started standardizing on a floating-point standard (IEEE Floating Point Standard, STD-754-1985), which was developed to standardize at least the behavior if not the actual storage allocation. Unfortunately, even this "standard" has different implementations depending on the level of adherence to the standard. |
|
|
|
|
|
|
|
|
This text does not deal further with the details of number representation or execution unit design. While data representation issues may be significant secondary issues in determining processor performance, the influence is difficult to assess at the level of analysis performed in this text. In fact, any actual performance difference may only be determined by using actual traces from the processors. For example, certain data representations may facilitate conversions between representations, but may be computationally time-consuming. However, if the anticipated target application involves many conversions with sparsely distributed calculations, there may be a significant performance advantage in using this format. Another problem is that a data representation may have awkward side effects that require the elongation of the minimum cycle time or the addition of an extra cycle to process. This also has a significant impact on the overall performance of the machine. Each case must be considered on its own merit with regard to the known or expected target application. |
|
|
|
|
|
|
|
|
Some issues concerning data formats are directly relevant to a discussion of processor performance. Knowledge of the various classes of data is required to construct an instruction set (examined in the next section). Additionally, certain properties of data representation (such as operand length) are significant in determining processor performance. For example, the longer the operand, the longer the instruction may take to execute. |
|
|
|
|
|
|
|
|
Most processors define operand sizes in terms of words or bytes. The most common word size currently is 32 bits, but there are still many 8-and 16-bit machines in common use and 64-bit machines are available as well. There are also some more obscure word sizes in the marketplace. Most of these are older machines (such as the DEC PDP-8 at 12 bits, the DEC PDP-10 and the Univac 1108 at 36 bits, and the CDC Cyber 70 at 60 bits), with most new designs being restricted to word sizes of powers of 2, typically 32 or 64 bits. These figures represent the typical parameters corresponding to "mainstream" machines. |
|
|
|
|
|