<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 【E問(wèn)E答】51單片機是馮諾依曼還是哈佛結構

【E問(wèn)E答】51單片機是馮諾依曼還是哈佛結構

作者: 時(shí)間:2017-01-10 來(lái)源:網(wǎng)絡(luò ) 收藏

  關(guān)于這個(gè)問(wèn)題,有人說(shuō)地址線(xiàn)復用,就是馮諾依曼結構。

本文引用地址:http://dyxdggzs.com/article/201701/342703.htm

  很多入門(mén)的書(shū)上基本上都說(shuō):由運算器、控制器、存儲器、輸入設備、輸出設備組成的系統 都叫馮氏結構。

  也有的說(shuō):“程序存儲器的數據線(xiàn)地址線(xiàn)”與“數據存儲器的數據線(xiàn)地址線(xiàn)”共用的話(huà),就 是馮氏結構,所以是該結構。(我認為說(shuō)得太絕對了)

  我認為馮氏結構與結構的區別應該在存儲器的空間分別上,結構的數據區和代碼區是分開(kāi)的,它們即使地址相同,但空間也是不同的,主要表現在數據不能夠當作代碼來(lái)運行。(比如---注)

  口線(xiàn)復用,就將它認為成馮氏結構,我認為這樣不足取,應該是按照空間是否完全重合來(lái)辨 別。比如PC機的代空間和數據空間是同一空間,所以是馮氏結構;51由于IO口不夠,但代 碼空間和數據空間是分開(kāi)的,所以還是構.(此種觀(guān)點(diǎn)才是正確的--注)

  另外,還有的把CISC RISC 和地址是否復用與是哪種結構 這3這都混到一起。我認為這三者都沒(méi)有必然的關(guān)系。只不過(guò) RISC因為精簡(jiǎn)了指令集,沒(méi)有了執行復雜功能的指令,為了提高性能,常采用哈佛結構,并且不復用地址線(xiàn)。(這種說(shuō)法不具體,有待補充---注)

  材料二:

  哈佛結構是一種將程序指令存儲和數據存儲分開(kāi)的存儲器結構。中央處理器首先到程序指令存儲器中讀取程序指令內容,解碼后得到數據地址,再到相應的數據存儲 器中讀取數據,并進(jìn)行下一步的操作(通常是執行)。程序指令存儲和數據存儲分開(kāi),可以使指令和數據有不同的數據寬度,如Microchip公司的 PIC16芯片的程序指令是14位寬度,而數據是8位寬度。

  目前使用哈佛結構的中央處理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,還有摩托羅拉公司的MC68系列、Zilog公 司的Z8系列、ATMEL公司的AVR系列和安謀公司的ARM9、ARM10和ARM11,51單片機也屬于哈佛結構

  馮·諾伊曼結構也稱(chēng)普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個(gè)存儲器的不同物理位置,因此程序指令和數據的寬度相同,如英特爾公司的8086中央處理器的程序指令和數據都是16位寬。

  目前使用馮·諾伊曼結構的中央處理器和微控制器有很多。除了上面提到的英特爾公司的8086,英特爾公司的其他中央處理器、安謀公司的ARM7、MIPS公司的MIPS處理器也采用了馮·諾伊曼結構。

  評論:哈佛結構和馮.諾依曼結構都是一種存儲器結構。哈佛結構是將指令存儲器和數據存儲器分開(kāi)的一種存儲器結構;而馮.諾依曼結構將指令存儲器和數據存儲器合在一起的存儲器結構。-----注

  材料三:

  MCS-51單片機有著(zhù)嵌入式處理器經(jīng)典的體系結構,這種體系結構在當前嵌入式處理器的高端ARM系列上仍然在延續,這就是哈佛結構。相對于大名鼎鼎的 馮·諾依曼結構,哈佛結構的知名度顯然遜色許多,但在嵌入式應用領(lǐng)域,哈佛結構卻擁有著(zhù)絕對的優(yōu)勢。哈佛結構與馮·諾依曼結構的最大區別在于馮·諾依曼結 構的計算機采用代碼與數據的統一編址,而哈佛結構是獨立編址的,代碼空間與數據空間完全分開(kāi)。

  在 通用計算機系統中,應用軟件的多樣性使得計算機要不斷地變化所執行的代碼的內容,并且頻繁地對數據與代碼占有的存儲器進(jìn)行重新分配,這種情況下,馮·諾依 曼結構占有絕對優(yōu)勢,因為統一編址可以最大限度地利用資源,而哈佛結構的計算機若應用于這種情形下則會(huì )對存儲器資源產(chǎn)生理論上最大可達50%的浪費,這顯 然是不合理的。

  但 是在嵌入式應用中,系統要執行的任務(wù)相對單一,程序一般是固化在硬件里。當然這時(shí)使用馮·諾依曼結構也完全可以,代碼區和數據區在編譯時(shí)一次性分配好了而 已,但是其靈活性得不到體現,所以現在大量的單片機也還在沿用馮·諾依曼結構,如TI的MSP430系列、Freescale的HCS08系列等。

  那 是為什么說(shuō)哈佛結構有優(yōu)勢呢?嵌入式計算機在工作時(shí)與通用計算機有著(zhù)一些區別:嵌入式計算機在工作期間的絕大部分時(shí)間是無(wú)人值守的,而通用計算機工作期間 一般是有人操作的;嵌入式計算機的故障可能會(huì )導致災難性的后果,而通用計算機一般就是死死機,重新啟動(dòng)即可。這兩點(diǎn)決定了對嵌入式計算機的一個(gè)基本要求: 可靠性。

  使 用馮·諾依曼結構的計算機,程序空間不封閉,期程序空間的數據在運行期理論上可以被修改,此外程序一旦跑飛也有可能運行到數據區。雖然都是一些不常見(jiàn)的特 殊情況下,但是看看哈佛結構德計算機在這些情況下是怎樣的:基于哈佛結構的處理器入MCS-51,不需要可以對代碼段進(jìn)行寫(xiě)操作的指令,所以不會(huì )有代碼區 被改寫(xiě)的問(wèn)題;程序只能在封閉的代碼區中運行,不可能跑到數據區,這也是跑飛的幾率減少并且跑飛后的行為有規律(數據區的數據是不斷變化的而代碼區是不變 的)。

  所以,相對于馮·諾依曼結構,哈佛結構更加適合于那些程序固化、任務(wù)相對簡(jiǎn)單的控制系統。

  總結::::::::::

  馮.諾依曼(Von Neumann)指出:程序只是一種(特殊)的數據,它可以像數據一樣被處理,因此可以和數據一起被存儲在同一個(gè)存儲器中——這就是著(zhù)名的馮.諾依曼原理。注意:數據總線(xiàn)和地址總線(xiàn)共用。--注

  哈佛結構:

  哈佛結構是一種并行體系結構,它的主要特點(diǎn)是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個(gè)獨立的存儲器,每個(gè)存儲器獨立編址、獨 立訪(fǎng)問(wèn)。與兩個(gè)存儲器相對應的是系統的4條總線(xiàn):程序的數據總線(xiàn)與地址總線(xiàn),數據的數據總線(xiàn)與地址總線(xiàn)。這種分離的程序總線(xiàn)和數據總線(xiàn)允許在一個(gè)機器周期 內同時(shí)獲得指令字(來(lái)自程序存儲器)和操作數(來(lái)自數據存儲器),從而提高了執行速度,使數據的吞吐率提高了1倍。又由于程序和數據存儲器在兩個(gè)分開(kāi)的物 理空間中,因此取指和執行能完全重疊。CPU首先到程序指令存儲器中讀取程序指令內容,解碼后得到數據地址,再到相應的數據存儲器中讀取數據,并進(jìn)行下一 步的操作(通常是執行)。

  哈佛結構采用數據存儲器與程序代碼存儲器分開(kāi),各自有自己的數據總線(xiàn)與地址總線(xiàn)。但這是需要CPU提供大量的數據線(xiàn),因而很少使用哈佛結構作為CPU外部 構架來(lái)使用。但是對于 CPU內部,通過(guò)使用不同的數據和指令cache,可以有效的提高指令執行的效率,因而目前大部分計算機體系都是CPU內部的哈佛結構+CPU外部的馮· 諾伊曼的結構

  ###############################################

  呵呵,當我們還在研究啥佛與馮諾依曼的區別的時(shí)候

  你卻發(fā)現現實(shí)世界已經(jīng)模糊了他們的概念,半導體廠(chǎng)商已經(jīng)將他們揉在了一起, 差不多就行了...



關(guān)鍵詞: 51 哈佛

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>