在計算機體系結構中,多位元組資料組織有什麼用途?
對於多位元組資料(例如 **大端** 和 **小端**)的組織,通常使用兩種方法。在大端格式中,值的最高有效位元組儲存在位置 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(不需要)。
對齊簡單來說就是將多位元組值儲存在這樣的位置,即它們從也開始多位元組讀取塊的位置開始。在本例中,這意味著從記憶體位置開始多位元組值,這些位置的地址可以被四整除,從而保證可以透過單個讀取操作訪問四個位元組的值。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP