㈠ CPU的一級緩存為什麼不能做得大一點
按照數據讀取順序和與CPU結合的緊密程度,CPU緩存可以分為一級緩存,二級緩存,部分高端CPU還具有三級緩存,每一級緩存中所儲存的全部數據都是下一級緩存的一部分,這三種緩存的技術難度和製造成本是相對遞減的,所以其容量也是相對遞增的。當CPU要讀取一個數據時,首先從一級緩存中查找,如果沒有找到再從二級緩存中查找,如果還是沒有就從三級緩存或內存中查找。一般來說,每級緩存的命中率大概都在80%左右,也就是說全部數據量的80%都可以在一級緩存中找到,只剩下20%的總數據量才需要從二級緩存、三級緩存或內存中讀取,由此可見一級緩存是整個CPU緩存架構中最為重要的部分。但是一級緩存和二級緩存的大,它究竟有多少好處呢?說這個就好比你開汽車的時候,後備箱是整個的二級緩存,假如說扶手裡面有一個小箱子,那是你的一級緩存。一級緩存大好在哪裡呢?就是你隨時開車的時候,隨時在裡面都可以取東西了。假如你一級緩存小的話,你還得把車停下來,到後備箱里取東西。
由於一級緩存的技術難度和製造成本最高,提高容量所帶來的技術難度增加和成本增加非常大,所帶來的性能提升卻不明顯,性價比很低,而且現有的一級緩存的命中率已經很高,所以一級緩存是所有緩存中容量最小的,比二級緩存要小得多。復制漏了。。。
㈡ 究竟一級二級緩存是什麼啊為什麼一級緩存比二級小啊,緩存大又有什麼用啊
高速緩存分為一級緩存(即L1 Cache)和二級緩存(即L2Cache)。CPU在運行時首先從一級緩存讀取數據,然後從二級緩存讀取數據,然後從內存和虛擬內存讀取數據,因此高速緩存的容量和速度直接影響到CPU的工作性能。 一級緩存都內置在CPU內部並與CPU同速運行,可以有效的提高CPU的運行效率。一級緩存越大,CPU的運行效率越高,但受到CPU內部結構的限制,一級緩存的容量都很小。 二級緩存對CPU運行效率的影響也很大,現在的二級緩存一般都集成在中,但有分為晶元內部和外部兩種,集成在晶元內部的二級緩存與CPU同頻率二級緩存(即全速二級緩存),而集成在晶元外部的二級緩存的運行頻率 是CPU的運行頻率的一半(即半速二級緩存),因此運行效率較低。 但是一級緩存和二級緩存的大,它究竟有多少好處呢?你得告訴我們經銷商,實際上你得用最普通的話跟他講。所以我們給他們打個比方,說這個就好比你開汽車的時候,後備箱是整個的一級緩存,假如說扶手裡面有一個小箱子,那是你的二級緩存。二級緩存大好在哪裡呢?就是你隨時開車的時候,隨時在裡面都可以取東西了。假如你二級緩存小的話,你還得把車停下來,到後備箱里取東西。
㈢ 一級緩存為什麼一直做得相對較小,而不像二級緩存一樣能做到2M
緩存是CPU的一部分,它存在於CPU中
CPU存取數據的速度非常的快,一秒鍾能夠存取、處理十億條指令和數據(術語:CPU主頻1G),而內存就慢很多,快的內存能夠達到幾十兆就不錯了,可見兩者的速度差異是多麼的大
緩存是為了解決CPU速度和內存速度的速度差異問題
內存中被CPU訪問最頻繁的數據和指令被復制入CPU中的緩存,這樣CPU就可以不經常到象「蝸牛」一樣慢的內存中去取數據了,CPU只要到緩存中去取就行了,而緩存的速度要比內存快很多
這里要特別指出的是:
1.因為緩存只是內存中少部分數據的復製品,所以CPU到緩存中尋找數據時,也會出現找不到的情況(因為這些數據沒有從內存復制到緩存中去),這時CPU還是會到內存中去找數據,這樣系統的速度就慢下來了,不過CPU會把這些數據復制到緩存中去,以便下一次不要再到內存中去取。
2.因為隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,現在又不頻繁了,所以說緩存中的數據要經常按照一定的演算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的
關於一級緩存和二級緩存
為了分清這兩個概念,我們先了解一下RAM
ram和ROM相對的,RAM是掉電以後,其中才信息就消失那一種,ROM在掉電以後信息也不會消失那一種
RAM又分兩種,
一種是靜態RAM,SRAM;一種是動態RAM,DRAM。前者的存儲速度要比後者快得多,我們現在使用的內存一般都是動態RAM。
有的菜鳥就說了,為了增加系統的速度,把緩存擴大不就行了嗎,擴大的越大,緩存的數據越多,系統不就越快了嗎
緩存通常都是靜態RAM,速度是非常的快,
但是靜態RAM集成度低(存儲相同的數據,靜態RAM的體積是動態RAM的6倍),
價格高(同容量的靜態RAM是動態RAM的四倍),
由此可見,擴大靜態RAM作為緩存是一個非常愚蠢的行為,
但是為了提高系統的性能和速度,我們必須要擴大緩存,
這樣就有了一個折中的方法,不擴大原來的靜態RAM緩存,而是增加一些高速動態RAM做為緩存,
這些高速動態RAM速度要比常規動態RAM快,但比原來的靜態RAM緩存慢,
我們把原來的靜態ram緩存叫一級緩存,而把後來增加的動態RAM叫二級緩存。
一級緩存和二級緩存中的內容都是內存中訪問頻率高的數據的復製品(映射),它們的存在都是為了減少高速CPU對慢速內存的訪問。
通常CPU找數據或指令的順序是:先到一級緩存中找,找不到再到二級緩存中找,如果還找不到就只有到內存中找了
㈣ CPU里的一級緩存有什麼作用為什麼intel的比amd要小
這是構架問題,因為構架問題,intel只要很少的一級緩存就能達到AMD更大緩存所須的性能。Intel的採用NetBurst架構的CPU(最典型的就是Pentium
4)的一級緩存有點特殊,使用了新增加的一種一級追蹤緩存(Execution
Trace
Cache,T-Cache或ETC)來替代一級指令緩存,容量為12KμOps,表示能存儲12K條即
㈤ CPU的一級緩存每個產品中都變化不大,都比二級的小很多,為什麼不能和二級的差不多大呢~~~
- - 那是實現不了的
首先我們來簡單了解一下一級緩存。目前所有主流處理器大都具有一級緩存和二級緩存,少數高端處理器還集成了三級緩存。其中,一級緩存可分為一級指令緩存和一級數據緩存。一級指令緩存用於暫時存儲並向CPU遞送各類運算指令;一級數據緩存用於暫時存儲並向CPU遞送運算所需數據,這就是一級緩存的作用(如果大家對上述文字理解困難的話,可參照下圖所示)。
那麼,二級緩存的作用又是什麼呢?簡單地說,二級緩存就是一級緩存的緩沖器:一級緩存製造成本很高因此它的容量有限,二級緩存的作用就是存儲那些CPU處理時需要用到、一級緩存又無法存儲的數據。同樣道理,三級緩存和內存可以看作是二級緩存的緩沖器,它們的容量遞增,但單位製造成本卻遞減。需要注意的是,無論是二級緩存、三級緩存還是內存都不能存儲處理器操作的原始指令,這些指令只能存儲在CPU的一級指令緩存中,而餘下的二級緩存、三級緩存和內存僅用於存儲CPU所需數據。
根據工作原理的不同,目前主流處理器所採用的一級數據緩存又可以分為實數據讀寫緩存和數據代碼指令追蹤緩存2種,它們分別被AMD和Intel所採用。不同的一級數據緩存設計對於二級緩存容量的需求也各不相同,下面讓我們簡單了解一下這兩種一級數據緩存設計的不同之處。
一、AMD一級數據緩存設計
AMD採用的一級緩存設計屬於傳統的「實數據讀寫緩存」設計。基於該架構的一級數據緩存主要用於存儲CPU最先讀取的數據;而更多的讀取數據則分別存儲在二級緩存和系統內存當中。做個簡單的假設,假如處理器需要讀取「AMD ATHLON 64 3000+ IS GOOD」這一串數據(不記空格),那麼首先要被讀取的「AMDATHL」將被存儲在一級數據緩存中,而餘下的「ON643000+ISGOOD」則被分別存儲在二級緩存和系統內存當中(如下圖所示)。
需要注意的是,以上假設只是對AMD處理器一級數據緩存的一個抽象描述,一級數據緩存和二級緩存所能存儲的數據長度完全由緩存容量的大小決定,而絕非以上假設中的幾個位元組。「實數據讀寫緩存」的優點是數據讀取直接快速,但這也需要一級數據緩存具有一定的容量,增加了處理器的製造難度(一級數據緩存的單位製造成本較二級緩存高)。
二、Intel一級數據緩存設計
自P4時代開始,Intel開始採用全新的「數據代碼指令追蹤緩存」設計。基於這種架構的一級數據緩存不再存儲實際的數據,而是存儲這些數據在二級緩存中的指令代碼(即數據在二級緩存中存儲的起始地址)。假設處理器需要讀取「INTEL P4 IS GOOD」這一串數據(不記空格),那麼所有數據將被存儲在二級緩存中,而一級數據代碼指令追蹤緩存需要存儲的僅僅是上述數據的起始地址(如下圖所示)。
由於一級數據緩存不再存儲實際數據,因此「數據代碼指令追蹤緩存」設計能夠極大地降CPU對一級數據緩存容量的要求,降低處理器的生產難度。但這種設計的弊端在於數據讀取效率較「實數據讀寫緩存設計」低,而且對二級緩存容量的依賴性非常大。
在了解了一級緩存、二級緩存的大致作用及其分類以後,下面我們來回答以下硬體一菜鳥網友提出的問題。
從理論上講,二級緩存越大處理器的性能越好,但這並不是說二級緩存容量加倍就能夠處理器帶來成倍的性能增長。目前CPU處理的絕大部分數據的大小都在0-256KB之間,小部分數據的大小在256KB-512KB之間,只有極少數數據的大小超過512KB。所以只要處理器可用的一級、二級緩存容量達到256KB以上,那就能夠應付正常的應用;512KB容量的二級緩存已經足夠滿足絕大多數應用的需求。
這其中,對於採用「實數據讀寫緩存」設計的AMD Athlon 64、Sempron處理器而言,由於它們已經具備了64KB一級指令緩存和64KB一級數據緩存,只要處理器的二級緩存容量大於等於128KB就能夠存儲足夠的數據和指令,因此它們對二級緩存的依賴性並不大。這就是為什麼主頻同為1.8GHz的Socket 754 Sempron 3000+(128KB二級緩存)、Sempron 3100+(256KB二級緩存)以及Athlon 64 2800+(512KB二級緩存)在大多數評測中性能非常接近的主要原因。所以對於普通用戶而言754 Sempron 2600+是值得考慮的。
反觀Intel目前主推的P4、賽揚系列處理器,它們都採用了「數據代碼指令追蹤緩存」架構,其中Prescott內核的一級緩存中只包含了12KB一級指令緩存和16KB一級數據緩存,而Northwood內核更是只有12KB一級指令緩存和8KB一級數據緩存。所以P4、賽揚系列處理器對二級緩存的依賴性是非常大的,賽揚D 320(256KB二級緩存)與賽揚 2.4GHz(128KB二級緩存)性能上的巨大差距就很好地證明了這一點;而賽揚D和P4 E處理器之間的性能差距同樣十分明顯。
最後,如果您是狂熱的游戲發燒友或者從事多媒體製作的專業用戶,那麼具有1MB二級緩存的P4處理器和具有512KB/1MB二級緩存的Athlon 64處理器才是您理想的選擇。因為在高負荷的運算下,CPU的一級緩存和二級緩存近乎「爆滿」,在這個時候大容量的二級緩存能夠為處理器帶來5%-10%左右的性能提升,這對於那些要求苛刻的用戶來說是完全有必要的。