馮諾依曼結構和哈佛結構01

馮諾依曼結構和哈佛結構

哈佛結構是,數據和代碼分開存在。

wps5749.tmp

馮諾依曼結構是在哈佛結構之後提出的,馮諾依曼提出“代碼本身也是一種數據”,解決了哈佛結構的一個問題——總線暫用資源太多。

馮諾依曼結構是,數據和代碼放在一起。

wps574A.tmp

首先,通過BIOS(Uboot)將硬盤(Flash)中的程序(數據和代碼),全部拷貝到RAM。所以此時

RAM內部會分爲多個段——代碼段,date段,bss段等等。這樣相比哈佛結構,就節省了一套外部的數據總線和地址總線。

但是這樣也會帶來的壞處——速度變慢了。本來數據和代碼是分開存儲的,他們分別對應“兩條高速通道”。現在,數據和代碼都放在一起對應“一條高速通道”。

而隨着半導體工業的發展,很多東西可以集成到芯片內部。在芯片內部走線比在PCB外部走線成本要低出很多。

也就是說,哈佛結構很適合被設計到芯片內部。而馮諾依曼結構仍然存在於芯片外部。

於是乎,便出現了現在的馮諾依曼和哈佛結構並存的混合式結構:

wps575A.tmp

這種結構就是目前ARM的結構,將兩種結構揚其長,避其短。其中,芯片內部的cache,表示高速緩存(cache一詞據說來自法語,難道cache是法國人發明的?哈哈。)Dcache用來緩存部分代碼,icache用來緩存部分數據。只有需要改變時,cache纔會到RAM中加載新的數據。所以大部分時間CPU都是通過哈佛結構和cache(高速緩存)通訊,這個速度是非常快的~~

這樣在芯片外部,利用馮諾依曼結構,節省了外部的PCB走線資源。

在芯片內部,利用哈佛結構提高了CPU訪問數據的速度。可謂是兩全其美~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章