|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
單片機(jī)與PC機(jī)程序運(yùn)行的差異(瞎想) |
| 作者:jkeqiang 欄目:新手園地 |
現(xiàn)象: 單片機(jī)運(yùn)行的時(shí)候代碼可以放到RAM中,可以放到EEPROM中,還可以放到FLASH里。它甚至可以剛才還在ram中運(yùn)行著,過一會(huì)跳到了FLASH里去運(yùn)行。而不是像pc機(jī)一樣把EEPROM中的代碼先讀到ram中,然后再ram中運(yùn)行。 計(jì)算機(jī)運(yùn)行時(shí)代碼主要在RAM里面,而不是用它的硬盤來運(yùn)行。 即使他想要運(yùn)行硬盤里面有代碼,也是把代碼調(diào)到ram里面來之后再運(yùn)行, (這就是缺頁(yè)中斷后做的操作) 原因1: 訪問速度的問題。 運(yùn)行程序必然要頻繁的訪問代碼,而把代碼放到硬盤里必定要頻繁的訪問硬盤, 而cpu的執(zhí)行速度和讀取硬盤的速度差著好幾個(gè)數(shù)量級(jí)。 原因2: 出于保護(hù)硬盤的目的 EEPROM,FLASH在芯片中是固定的。寫EEPROM,FLASH的次數(shù)有限制,讀應(yīng)該沒有限制,所以可以盡管去讀 而訪問硬盤是靠硬盤的高速運(yùn)轉(zhuǎn)來實(shí)現(xiàn)的。頻繁的訪問硬盤(即使只有讀沒有寫)也會(huì)影響硬盤的壽命。 |
| 2樓: | >>參與討論 |
| 作者: likee 于 2006/3/1 17:45:00 發(fā)布:
有一定道理. |
|
| 3樓: | >>參與討論 |
| 作者: luckyjjjjj 于 2006/3/1 18:10:00 發(fā)布:
好象錯(cuò)誤不少... |
|
| 4樓: | >>參與討論 |
| 作者: computer00 于 2006/3/1 19:30:00 發(fā)布:
總線結(jié)構(gòu)決定的。 硬盤是外設(shè),并不是真正意義上的存儲(chǔ)器。它并不是總線上的一部分,CPU是不能直接對(duì)其內(nèi)部數(shù)據(jù)單元尋址的, 而是通過IDE接口(注意叫做IDE接口,而不能叫做IDE總線)讀取數(shù)據(jù)。 在PC中,CPU只能從存儲(chǔ)器中運(yùn)行程序,存儲(chǔ)器包括ROM和RAM。ROM例如主板上BIOS部分,這跟MCU系統(tǒng)中的FLASH中的BOOT作用是一樣的。 現(xiàn)在的主板中的BIOS一般也是用FLASH做的,可以升級(jí),使用刷BIOS的工具就行了,不過沒必要還是別亂刷,因?yàn)槿绻⒌倪^程中, 出現(xiàn)錯(cuò)誤,就不能再引導(dǎo)系統(tǒng)了(雙BIOS的主板除外)。而電腦啟動(dòng)之后,則一般是在RAM中運(yùn)行的,包括BIOS部分,也被讀出放入 到RAM中,以加快運(yùn)行速度。而操作系統(tǒng)跟應(yīng)用程序,則一定是在主存中運(yùn)行的,從外設(shè)硬盤中將數(shù)據(jù)讀入到主存中,然后在里面運(yùn)行之。 |
|
| 5樓: | >>參與討論 |
| 作者: a12345678 于 2006/3/1 22:28:00 發(fā)布:
上述的比較過于籠統(tǒng) 低速單片機(jī)的處理過程確實(shí)如樓上各位所說。但是單片機(jī)的速度提高較快,高速單片機(jī)的內(nèi)部結(jié)構(gòu)逐步向通用CPU靠近,高性能單片機(jī)開始外掛SDRAM,這時(shí)的單片機(jī)的執(zhí)行過程就向通用CPU靠攏了。 與單片機(jī)實(shí)現(xiàn)簡(jiǎn)單的可以預(yù)測(cè)的控制和計(jì)算不同,通用CPU負(fù)擔(dān)很多計(jì)算量很大,而且不可預(yù)測(cè)的任務(wù),CPU的計(jì)算能力遠(yuǎn)遠(yuǎn)超出單片機(jī),CPu的內(nèi)核速度達(dá)到了GHz數(shù)量級(jí),但是由于高速SRAM的成本過高,只能做成CPU內(nèi)部的cache等,外部存儲(chǔ)器只能采用動(dòng)態(tài)存儲(chǔ)器(FLASH.html">FLASH存儲(chǔ)器速度不過15MHz,遠(yuǎn)遠(yuǎn)不能適應(yīng)CPU的速度)。目前存儲(chǔ)器的速度是制約CPU性能的最大障礙,即使采用DDR RAM或是QDDR RAM,存儲(chǔ)器的速度也不能滿足CPU的接口速度要求,所以只好采用CPU內(nèi)核/L1 cache /L2 cache /外部DRAM的體系,這就是通用CPU與單片機(jī)的本質(zhì)區(qū)別,這樣就決定了兩者的執(zhí)行過程不相同。CPU除了在啟動(dòng)時(shí)處于低速階段可以從BIOS(FLASH.html">FLASH存儲(chǔ)器)中執(zhí)行初始化以外,一旦完成初始化,就可以提升CPU速度到額定速度,這時(shí)CPU與FLASH之間已經(jīng)無(wú)法接口,只能在DRAM中或是CPU內(nèi)部RAM/cache中執(zhí)行程序了。 |
|
| 6樓: | >>參與討論 |
| 作者: jkeqiang 于 2006/3/2 9:51:00 發(fā)布:
感謝大家 原來不能再硬盤里直接運(yùn)行代碼的原因是這個(gè)啊。 謝謝了 |
|
| 7樓: | >>參與討論 |
| 作者: 路人 于 2008/10/8 22:52:22 發(fā)布:
硬盤里面根本不是電氣元件能運(yùn)行嗎? 搞笑
|
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |