由于單篇文章字數限制,關于單片機的存儲器結構的相關知識這里我只能分3篇文章來給大家分享,希望大家理解,大家可以關注我查看相關文章內容以便大家深入的學習。廢話不多說,干貨直接上。
單片機的存儲器的結構是什么樣子,是馮諾依曼結構還是哈佛結構?大家知道我們計算機系統有兩種基本的存儲器的結構,一個叫做馮諾依曼結構,也叫做普雷斯頓結構,另外一種叫做哈佛結構,51單片機到底是哪一種體系結構?不同的書上有的寫的是不對,到底是哪一種結構,我們首先來了解一下到底什么是馮諾依曼結構,什么又是哈佛結構。
存儲器的劃分一般分成兩種結構,就是我給大家講的,一個叫做啊馮諾依曼結構,一個叫做哈佛結構,哈佛大學的一個教授提出的計算機的體系結構一般稱之為叫哈佛結構,普雷斯頓結構也叫做阿馮諾依曼結構,馮諾依曼大家都比較熟悉,我們叫做計算機之父,它提出了一種存儲器的一個結構呢,叫做普萊森結構,它的特點是程序存儲器和數據存儲器是統一編制的方式,它的結構是RAM和ROM是在一個存儲器上,也就是說是一種將程序指令存儲器和數據存儲器合并在一起的一種存儲器的結構,是指令存儲器的地址和數據存儲器的地址是指向同一個存儲器的不同的物理位置,所以你可以發現它是同一個存儲器,但是RAM,也就是數據存儲器和程序存儲器,它是在這一個同一個物理結構當中的不同的地方,這種我們叫做馮諾依曼結構。
這是計算機的基礎,比如說我們的英特爾的8086系統,也就是8086的CPU它的程序指令和數據是16位的就是采取普雷斯頓的體系結構,這個體系結構也就是大家比較熟悉的在計算機領域著名的數學家馮諾依曼,當然了和其它的專家,比如說戈德斯坦等人在1945年聯名發表了一篇比較著名的報告,學計算機的應該都知道,叫101報告,在這個報告當中,它提出了三個最基本的,也就是說計算機制造了三個最基本的原則,第一個原則就是說計算機采用二進制,這是它們在這個報告當中提出來的,當然了,計算機采用二進制不是它們首先提出來的,第二點是報告指出,程序存儲執行,也就是說計算機按照程序的順序,指令執行,就是說這個計算機的執行它是按照程序,順序存儲取址的辦法來執行,第三個原則,它指出我們的計算機由五個部分組成,包括運算器、控制器、存儲器,輸入設備和輸出設備,那這套理論我們稱之為叫做馮諾依曼體系結構。
到目前為止,我們的計算機的體系結構還是脫離不了馮諾依曼的體系結構,我們計算機的體系結構還是由運算器控制器,存儲器,輸入設備和輸出設備這五大部件構成,所以馮諾依曼也被稱之為計算機之父,大家要大概的了解一下什么是普林斯頓結構,或者叫做馮諾依曼存儲的結構。
哈佛結構它是一種將程序指令存儲和數據存儲分開的一種存儲結構,大家通過這個圖也可以發現,這個RAM和ROM是兩個結構,是兩個物理存儲空間,不是像馮諾依曼結構是在同一個物理空間,分了兩個區域,程序存儲器和數據存儲器是分開的,這樣的話,哈佛結構相當于是一種并行的體系結構,它的主要特點就是將程序存儲器和數據存儲器,在不同的存儲空間當中,這樣有一個好處,就是程序存儲器和數據存儲器,它是兩個獨立的存儲器,就是和我們的數據和指令具有不同的數據寬度,并且可以同步的進行訪問,這種的結構它使我們的程序總線和數據總線就在一個記憶周期內,可以同時獲得指令和數據,從而能夠提高我們CPU的執行效率,提高了數據的吞吐率,但是它的結構會比較復雜,我們知道哈佛結構的話,它的程序就是程序存儲器和數據存儲器,它都要有對應的數據總線和地址總線,所以它是有四種總線,也就是程序存儲器有兩個總線,叫做數據總線和地址總線。
數據存儲器它也有兩個總線,也就是數據總線和地址總線,所以它的體系結構會比較復雜,馮諾依曼結構它就比較簡單,它的數據總線和地址總線是采取統一編制的辦法,就是說對我們的RAM和ROM的尋址都可以通過一套總線來進行,它的結構會比較簡單。
有朋友問了,怎么樣區分這兩種存儲器的結構呢?應該看什么呢?主要是看總線,看是一套總線還是兩套總線,就是說我指的一套總線就是數據總線和地址總線,兩套總線就有兩套數據總線和地址總線,就是說馮諾依曼結構它是采取的統一的一個數據總線和地址總線,可以訪問RAM和ROM,采取的是分時的辦法,哈佛結構的RAM和ROM分別都有地址總線和數據總線,這樣的話大家就可以在后面講完51單片機的時候就可以了解51單片機到底是采用哪一種結構,可以先提一下,實際上51單片機大概了解過,51單片機實際上它是RAM和ROM是占用不同的存儲空間,是有不同的物理空間的,就是ROM是一塊的,這個大家前面看計算機的硬件系統結構圖的時候也發現,有一片RAM,還有有一塊ROM。
有同學問,那我們的51單片機是不是就是哈佛結構呢?也不見得,實際上51單片機它是一種改進的哈佛結構,這個很多書上講的是不對的,很多書上都說我們的單片機是哈佛結構,但實際上它不是真正的哈佛結構,因為我們知道我們51單片機內部的總線實際上就是一套,就是數據總線和地址總線,沒有把RAM和ROM分別提供一套數據總線和地址總線,就是一套數據總線和地址總線,但是它分時復用,而且也是采取統一編制的辦法,它怎么樣區分RAM和ROM呢?學過匯編的同學知道,它是通過指令來進行區分的,所以51單片機的存儲空間的結構應該是一種改進型的哈佛結構,但是它也沒有脫離馮諾依曼結構,所以大家要理解這個,因為它是一個發展趨勢,我們計算機是一個發展的過程,大家應該去把這個東西大概去了解一下,馮諾依曼結構雖然比較出名,但是實際上哈佛結構的提出是早于馮諾依曼結構的,老的這種計算機的就是馮諾依曼體系結構,第一臺通用的計算機是1946年的時候提出了一種叫做電子數字積分的一個計算機,也是第一臺通用的計算機,它的體積比較龐大,它一共占地的話是170個平方,這是很大的空間放了一個計算機,那目前我們用的計算機,大家知道一臺筆記本很小,這個計算機當時發明的原因,大家可以去看計算機的歷史,主要是為了二戰期間為軍方服務的,實際上剛開始都是為了軍方計算服務的。
哈佛結構的計算機,它的結構也比較大,這個是剛才提到的是霍德華艾肯在1937年的時候進行設計啊,1944年交付的一臺計算機,叫做馬克一號,它的體積也比較長也比較大,長有50英尺,高8英尺,看上去像一列火車,它主要全部是由繼電器來構成的,它一共用了多少個部件來構成的?它用了大概有75萬個零部件構成了這臺計算機,可以發現,實際上哈佛結構的計算機是比馮諾依曼要早,但是馮諾依曼,因為它的總線結構比較簡單,所以很容易實現,之后馮諾依曼體系結構得到很大的發展,現在我們很多體系結構也都是在馮諾依曼的基礎上和哈佛結構的基礎上做了很大的一個改進。
具體來看51單片機的體系結構,51單片機的體系結構剛才提到了,它是一種改進的哈佛結構,它內部一共有四個物理的存儲空間,一個叫做片內的RAM,一個叫做這個片外的RAM,片內的RAM和片外的RAM它有四個存儲空間可以供用戶來使用。
這個就是它的硬件結構圖,需要大家重點掌握的一張圖,這張圖是我們的存儲器空間的結構圖,也需要大家重點掌握,單片機的內部的機器硬件結構圖,理解了它的存儲器的分布圖,對計算機才是或者說對單片機才是真正的理解。
既然分成片內和片外,首先來看存程序存儲器,程序存儲器的一個主要作用就是存放程序,當然了,除了存放程序之外,我們一般還會把一些常數表格也存放在程序存儲器當中,因為程序存儲器有一個特點,也就是掉電不丟失,程序存儲器不是不可以寫,只是在程序運行的過程當中,它是只讀不可寫,如果它不可以寫,我們的程序代碼不是要燒寫倒入當中去的嘛,所以它也是可以燒寫進去的,在我們程序,也就是說CPU運行程序的過程當中,它是不可寫的,它是只讀,所以我們才叫做只讀存儲器,只讀存儲器程序運行的過程當中只讀,并且掉電之后程序代碼不丟失,這個叫程序存儲器,它的一個特點大家要注意。
文章剩余部分會在接下來的2期欄目中繼續分享給大家,喜歡的幫忙收藏點個贊哦,以上文章內容僅代表個人觀點,不喜勿噴,謝謝大家的支持與鼓勵!
想學單片機的朋友,可以私信我,我可以發一些資料給大家作為參考學習的內容,有問題的朋友也可以在評論區評論,或者私信我,盡量幫大家解決朋友們提出的問題,謝謝大家,最后祝看帖的各位朋友身體健康,萬事順利。
審核編輯:湯梓紅
評論