1. 程式人生 > >按字讀取,按位元組讀取

按字讀取,按位元組讀取

現代儲存器基本儲存單元都是以位元組為單位, 這樣就設立了按位元組來編號地址,如000代表0地址,001代表了1地址……,這樣一個個按位元組為單位的空間組成了整個大的儲存器

所謂的按位元組都取就是,給第一個地址編號,CPU從儲存器相對應的地址編號中讀取一個位元組的資料。

下面來說下按字讀取,字是一個不定大小的儲存量,我們可以說2個位元組為一個字,4個位元組,8個位元組等為一個字。雖然這樣但是針對每個儲存器當然也不會隨意亂編一通。我們知道儲存器是由一個個儲存晶片構成,而每個儲存器位寬通常是一個位元組,那麼假如現在生產一款儲存器一次性要讀取8個位元組,那麼我們會將8個1位元組位寬的儲存晶片並聯,  這樣原來給一個地址只能讀取一個位元組的,就變成8個位元組了,而這個一次性就能取到的8位元組就是代表當前這個儲存器的一個字

那如果按字讀取,我們傳遞的地址又會是多少呢? 我想想象一下儲存器的儲存空間是一個 矩陣 ,針對上面這個儲存器,每行是8列,讀取一行就是8個位元組了,我們只要給定每行的第一列的地址就可以獲取整行了,當然這個時候你也許會問為什麼不會讀取第一行第一列呢,

這個時候其實還會有一個訊號來控制,暫時不討論。 第一行的開頭是00000,第二行是01000,第三行是10000,第4行是11000,也就是8 的倍數地址。其實我們可以看出,這樣一個地址,後面的3位其實沒什麼多大作用了,不用來參與尋找地址了。

也就是實際上如果按字讀取資料的時候,地址是由從由往左第4位開始 及以上高位的地址編號決定了讀取哪個字。