在计算机体系结构中,多字节数据组织有什么用途?


对于多字节数据(例如 **大端** 和 **小端**)的组织,通常使用两种方法。在大端格式中,值的最高有效字节存储在位置 X 中,下一个字节存储在位置 X + 1 中,依此类推。例如,十六进制值 0102 0304H(H 表示十六进制)将从位置 100H 开始存储,如表 (a) 所示。

数据组织:(a) 大端格式和 (b) 小端格式

内存地址
数据(十六进制)
101
01
102
02
103
03
104
04

(a)

内存地址
数据(十六进制)
101
04
102
03
103
02
104
01

(b)

在小端格式中,顺序相反。最低有效字节存储在位置 X 中,下一个字节存储在位置 X+1 中,依此类推。表 (b) 显示了小端格式中类似的值。

相同的组织可以用于字节内的位。在大端组织中,位 0 是字节的最右位,最左位是位 7。在小端组织中,最左位是位 0,位 7 是最右位。

字节和字的端序组织不会影响 CPU 和计算机系统的性能。只要 CPU 被设计为处理特定的格式,两者都没有优劣之分。主要问题出现在将数据在具有不同端序组织的计算机之间传输时。例如,如果一台具有小端组织的计算机将值 01020304H 传输到一台具有大端组织的计算机,而没有转换数据,则大端计算机将读取该值为 04030201H。

一些程序可以将数据文件从一种格式转换为另一种格式,一些微处理器有特殊的指令来执行转换。多字节字的另一个关注问题是对齐。现代微处理器一次可以读取多个字节的数据。例如,Motorola 68040 微处理器可以同时读取四个字节。

但是,这四个字节必须位于连续的位置,这些位置具有相同的地址,除了两个最低有效位。此 CPU 可以同时读取位置 100、101、102 和 103,但不能读取位置 101、102、103 和 104。这种情况需要两次读取操作,一次用于位置 100(不需要)、101、102 和 103,另一次用于 104、105(不需要)、106(不需要)和 107(不需要)。

对齐简单来说就是将多字节值存储在这样的位置,即它们从也开始多字节读取块的位置开始。在本例中,这意味着从内存位置开始多字节值,这些位置的地址可以被四整除,从而保证可以通过单个读取操作访问四个字节的值。

更新于: 2021-07-24

525 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.