1. 現在RISC架構的單片機,哈佛結構有什麼特點
risc
因為指令集的精簡,所以許多工作都必須組合簡單的指令,而針
對較復雜組合的工作便需要由『編譯程式』(compiler)
來執行,而
cisc
mcu
因為硬體所提供的指令集較多,所以許多工作都能夠以一個或是數個指令來代
替,compiler
的工作因而減少許多。以一個數值運算程式來說,使用
cisc
指
令集的
mcu
運算對於一個積分運算式可能只需要十個機器指令,而
risc
mcu
在執行相同的程式時,卻因為
cpu
本身不提供浮點數乘法的指令,所以可能需
要執行上百個機器指令
(但每一個指令可能只需要
cisc
指令十分之一的時
間),而由程式語言轉換成機器指令的動作是由程式語言的
compiler
來執行,
所以在
risc
mcu
的
compiler
便會較復雜
。因為同樣一個高階語言
a=b*c
的運算,在
risc
mcu
轉換為機器指令可能有許多種組合,而每一種組合的『時
間/空間』組合都不盡相同。所以
risc
與
cisc
的取捨之間,似乎也是
mcu
硬體架構與軟體(compiler)
的平衡之爭,應該沒有絕對優勢的一方,只能說因應
不同的需求而有不同的產品,例如工作單純的印表機核心
mcu,便適合使用效
能穩定,但單位指令效率較佳的
risc
mcu。
2. 51單片機是馮諾依曼還是哈佛結構
51單片機結構比較老套,是馮諾依曼結構,只能順序執行,沒有哈佛結構的流水線方式。
3. 為什麼很多人說8051單片機是哈佛結構
只是一種匯流排結構
是描述晶元內部的專業名詞,不必太介意
主要是會使用和編程才是最重要的
4. 為什麼單片機採用哈佛結構而微機採用普林斯頓結構。
哈佛結構是為了高速數據處理而採用的,因為可以同時讀取指令和數據(分開存儲的)。大大提高了數據吞吐率。缺點是結構復雜。
通用微機指令和數據是混合存儲的,結構上簡單,成本低。假設是哈佛結構:你就得在電腦安裝兩塊硬碟,一塊裝程序,一塊裝數據,內存裝兩根,一根儲存指令,一根存儲數據……
5. 51單片機使用哈佛結構,它RAM和ROM的匯流排是同一套匯流排分時復用的還是兩套匯流排
由於採用改進型哈佛架構,51單片機具備獨立的程序存儲器ROM、數據存儲器RAM,兩者地址空間獨立,且獨立編址,如下是單片機的存儲器結構圖。
程序存儲器ROM,用於存儲用戶代碼,由於程序計數器PC是16位的,因此系統具備64kB定址能力,地址空間為0x0000 ~ 0xFFFF,廠商在單片機內部實現一部分程序存儲器,例如4kB、8kB,剩餘的根據用戶需要可以外部擴展。訪問程序存儲器使用MOVC A, @A + DPTR,MOVC A, @A + PC指令,只能進行讀取訪問,無法寫入。
數據存儲器分為RAM和外部RAM,兩者地址空間獨立,且獨立編址。以子系列52為例,由於具備256B定址能力,編址空間為0x00~0xFF。RAM除了臨時存儲用戶數據外,還用於CPU通用寄存器,位定址區,堆棧等。可以使用MOV指令對RAM進讀寫訪問。外部RAM具備64kB定址能力,用於用戶臨時數據存放,但是需要用戶外部擴展。可以使用MOVX指令訪問外部RAM,外部RAM訪問由地址匯流排觸發,數據匯流排讀寫,P0、P2用於生成16地址,P0還時分復用兼用於數據匯流排。
SFR屬於特殊寄存器區,它既不屬於ROM,也不屬於RAM,地址空間為0x80~0xFF,只能以直接定址方式訪問,是片上外設的核心控制區域和輸入輸出的咽喉要塞。它是用來配置外設的工作參數的,屬於外設寄存器,例如串口波特率、收發控制,定時器定時時間、模式,中斷系統中斷使能、優先順序等。
學習一種單片機或者微控制器,首先了解它的架構、匯流排結構,然後熟悉存儲器映射圖、分區,最後詳細研究它的片上外設例如UART、Timer、中斷系統以及輸入輸出電路。根據自己的職業,工作類型,研究不同的層次。
6. 51系列單片機的哈佛結構與通用哈佛結構的不同之處,以及在性能取向上的差別,比如速度與可靠性方面的差別.
單片機的存儲體系就是兩種結構
馮諾依曼或普林斯頓,數據、程序一體化,結構簡化
哈佛,數據、程序分開存儲,性能更高
傳統51單片機的數據、程序分開存儲,從外貌看屬於哈佛;
但是51的數據和程序共享同一條匯流排,不是兩條獨立的匯流排,從本質看屬於普林斯頓。
老51是Intel發明的,40多年前的事了,沿用計算機傳統的普林斯頓是正常的,因此速度也比較慢;
現在STC、C8051F等新型51的匯流排有了改進,屬於哈佛,速度也提升了十幾倍。
7. ARM單片機是哈佛結構,還是馮.諾依謾結構.
ARM有許多系列,如ARM7,ARM9,ARM10E,XScale,Cortex等,其中哈佛結構,馮諾依謾結構都有。如控制領域最常用的ARM7系列是馮諾依謾結構,而Cortex-M3系列是哈佛結構。
8. 為什麼51單片機存儲器要用哈佛結構而不用馮諾依曼結構
哈佛結構,是ROM、RAM分離的。
這種結構,程序,永遠不會被修改。
當年,應該是認為比較可靠吧。
在工控領域,干擾較強的環境應用時,比較穩妥。
現在再看,這種結構,可以分別取指和取數據,整體速度可以提高。
而 80x86 系列的,則是馮諾依曼結構,這應該是考慮修改程序方便。
一會玩這個游戲,一會聊QQ,一會感染病毒。