1. 程式人生 > >8、16、32位微控制器概念與定址空間

8、16、32位微控制器概念與定址空間

        玩了接近三年的微控制器,8位、16位、32位的都玩過,突然間一個問題就讓我發現我就是一個渣!!!

8位、16位、32位都代表什麼意思呢?我就根據蒐集的知識,簡單的對自己科普一下:

      1)、 從CPU的發展史來看,從以前的8位到現在的64位,8位也就是CPU在一個時鐘週期內可並行處理8位二進字元0或是1,那麼16就以此類推是64位就64位二進位制。

      2)、8位、16位、32位微控制器的區別還有就是暫存器位數的區別,8位的微控制器其暫存器也是8位,以此類推32位的MCU也就是有32位的暫存器(當然他也可以有16或者是8位的暫存器)。

        還有在學習ARM裡遇到的一個問題:定址空間的問題。

        定址空間一般指的是CPU對於記憶體定址的能力。Intel公司早期的CPU產品的地址匯流排和地址暫存器的寬度為20位,即CPU的定址能力為2^20=1024*1024位元組=1024K位元組

=1M位元組;286的地址匯流排和地址暫存器的寬度為24位,CPU的定址能力為2^24=1024*4*1024*4B=4*1024*4KB=16M;386及386以上的地址匯流排和地址暫存器的寬度為32位,

CPU的定址能力為2^32=4096M位元組=4G位元組。 也就是說,如果機器的CPU過早,即使有很大的記憶體也不能得到利用,而對於現在的PⅡ級的CPU,其定址能力已遠遠超過目前的

記憶體容量。

        在這裡有一個很重要的概念:CPU的定址能力以位元組為單位 。以32位的微控制器為例(最近在上手K60),對地址0x4000 0001

進行賦值也就是對一個位元組進行操作,32位的寄

存器就需要佔用4個地址(8*4=32),那它佔有的地址就為0x4000 0000----0x4000 0003。32位就代表了2^32的定址空間也就是4G。

        一些簡單的問題寫出來,有什麼不對之處,煩請各位過路的朋友指正!