simplify the design of the hardware forming the interface between the processor and thememory system

Posted rsapaper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了simplify the design of the hardware forming the interface between the processor and thememory system相关的知识,希望对你有一定的参考价值。

Computer Systems A Programmer‘s Perspective Second Edition

Many computer systems place restrictions on the allowable addresses for the

primitive data types, requiring that the address for some type of object must be a
multiple of some value K (typically 2, 4, or 8). Such alignment restrictions simplify
the design of the hardware forming the interface between the processor and the
memory system. For example, suppose a processor always fetches 8 bytes from
memory with an address that must be a multiple of 8. If we can guarantee that any
double will be aligned to have its address be a multiple of 8, then the value can
be read or written with a single memory operation.Otherwise, we may need to 
perform two memory accesses, since the object might be split across two 8-byte
memory blocks.
 
Linux follows an alignment policy where 2-byte data types (e.g.,
short) must have an address that is a multiple of 2, while any larger data types
(e.g.,int,int *,float, and double) must have an address that is a multiple of 4.
Note that this requirement means that the least significant bit of the address of
an object of type short must equal zero. Similarly, any object of type int, or any
pointer, must be at an address having the low-order 2 bits equal to zero.
 
Microsoft Windows imposes a stronger alignment requirement—any primitive object of
K bytes, for K=2, 4, or 8, must have an address that is a multiple of K. In particular,
it requires that the address of a double or a long long be a multiple of 8. This
requirement enhances the memory performance at the expense of some wasted space.
The Linux convention, where 8-byte values are aligned on 4-byte boundaries was probably
good for the i386, back when memory was scarce and memory interfaces were
only 4 bytes wide. With modern processors, Microsoft’s alignment is a better design decision.
Data type long double, for which gcc generates IA32 code allocating 12 bytes (even though
the actual data type requires only 10 bytes) has a 4-byte alignment requirement with
both Windows and Linux.

以上是关于simplify the design of the hardware forming the interface between the processor and thememory system的主要内容,如果未能解决你的问题,请参考以下文章

number field is the union of the set of all strings and the set of all numbers. The set of things th

BookNote: Refactoring - Improving the Design of Existing Code

Codeforces 622F The Sum of the k-th Powers

The League of Sequence Designers(构造)

The 16th tip of DB Query Analyzer

求助英译中 The effect of concession period design on completion risk management of BOT projects