回覆列表
  • 1 # 使用者737792992771

    這個問題涉及到了如下幾個概念:字、機器字長、儲存字長、地址。

    我們先從計算機中的最小單位:位開始說起。

    位這個概念我們都很熟悉,我們在學小學數學的時候經常會提到幾位數幾位數的概念。在計算機中也一樣,只不過這裡的位通常指的是二進位制位。如:00111010,這就是一個8位二進位制數。其中的每個0或者1就是一個二進位制位(簡稱位),也叫一位元(bit)。

    在計算中,上至硬碟,下至CPU中的暫存器,都是使用二進位制來表示資料和指令,雖然暫存器、cache、記憶體和硬碟所使用的硬體實現方法不同,但是歸根結底都是想辦法使用某種技術來表示一個個二進位制位,很多的二進位制位組合在一起就可以表示各種各樣的資訊。

    後來,人們為了制定一套通用的規則用來表示字元,又由於一些歷史原因,就確立了8bit為一個位元組(byte)這樣的一個標準。具體的原因可以參考為什麼計算機的一個儲存單元是八位? - WesternGun的回答 - 知乎

    總之到了現在,1byte=8bit已經成為了一個通行的標準,不論是Windows還是Linux,不論是IA32還是x86_64,一位元組由八位組成,這是毫無疑問的。

    又到了後來,隨著計算機科學的發展和人們對與計算速度的需求,又有了字(word)這個概念,字這個概念應該說是建立在字長這個概念之上。所謂字,就是一個長度等於字長的二進位制數。

    字長通常指的是ALU一次操作可以處理的最大資料長度,通常這個長度也等於CPU內暫存器的大小,我們常說的32位、64位指的就是字長。而這個不加任何字首的字長,通常就是指問題中提到的機器字長。在這裡不知道題主有沒有學到ALU的計算原理,如果沒有的話,可以暫且放過這一點,簡單理解為機器字長=CPU中暫存器的大小。

    而儲存字長,指的是儲存單元的位數。而儲存單元這個概念,本身就是和編址分不開的。

    所謂編址,說白了就是將主存中的空間按照某種規則進行編號,以便CPU可以隨時讀取某一塊空間中的內容。

    按字編址,就是說將主存中的空間以字長為單位進行分割,對每個這樣分出來的一塊給一個地址編號,比如對於32位機器來說,將主存的最低端的第0位到第31位編址為0x00000000,接下來的第32位到第63位編址為0x00000001,依次類推,而儲存字長就是指這樣一個單位的大小。

    所以,回到樓主的問題,所謂“按字編址”翻譯過來就是“以機器字長為單位對儲存器進行劃分編址”,再說得直白點就是“以機器字長為儲存字長進行編址”,此時儲存字長當然就等於機器字長了。

    ====================

    字長其實涉及到從ALU、暫存器、主存到匯流排等很多概念,幾乎可以說是隱含在整個計算機組成原理的始終,初學時不妨先允許自己一知半解有個模糊的概念,待整門課程學完之後再返回來進行思考、總結。

  • 中秋節和大豐收的關聯?
  • 燕子的特點?