cpu的指令快取與資料快取有什麼不一樣?分別幹哪些活?謝謝了,大神幫忙啊

時間 2022-03-19 02:21:29

1樓:明代靈

自p4時代開始,intel開始採用全新的「資料**指令追蹤快取」設計。基於這種架構的一級資料快取不再儲存實際的資料,而是儲存這些資料在二級快取中的指令**(即資料在二級快取中儲存的起始位址)。假設處理器需要讀取「intel p4 is good」這一串資料(不記空格),那麼所有資料將被儲存在二級快取中,而一級資料**指令追蹤快取需要儲存的僅僅是上述資料的起始位址(如下圖所示)。

由於一級資料快取不再儲存實際資料,因此「資料**指令追蹤快取」設計能夠極大地降cpu對一級資料快取容量的要求,降低處理器的生產難度。但這種設計的弊端在於資料讀取效率較「實資料讀寫快取設計」低,而且對二級快取容量的依賴性非常大。 amd採用的一級快取設計屬於傳統的「實資料讀寫快取」設計。

基於該架構的一級資料快取主要用於儲存cpu最先讀取的資料;而更多的讀取資料則分別儲存在二級快取和系統記憶體當中。做個簡單的假設,假如處理器需要讀取「amd athlon 64 3000+ is good」這一串資料(不記空格),那麼首先要被讀取的「amdathl」將被儲存在一級資料快取中,而餘下的「on643000+isgood」則被分別儲存在二級快取和系統記憶體當中(如下圖所示)。 需要注意的是,以上假設只是對amd處理器一級資料快取的乙個抽象描述,一級資料快取和二級快取所能儲存的資料長度完全由快取容量的大小決定,而絕非以上假設中的幾個位元組。

「實資料讀寫快取」的優點是資料讀取直接快速,但這也需要一級資料快取具有一定的容量,增加了處理器的製造難度(一級資料快取的單位製造成本較二級快取高)。

2樓:匿名使用者

理解錯誤了,現行的cpu還是沿用馮.諾伊曼的理論。程式匯流排和資料匯流排分開。指令快取和資料快取是完全不同的概念,不可混用!

3樓:13哥40r艥哚

快取是為了解決cpu速度和記憶體速度的速度差異問題。記憶體中被cpu訪問最頻繁的資料和指令被複製入cpu中的快取,這樣cpu就可以不經常到象「蝸牛」一樣慢的記憶體中去取資料了,cpu只要到快取中去取就行了,而快取的速度要比記憶體快很多。 這裡要特別指出的是:

1.因為快取只是記憶體中少部分資料的複製品,所以cpu到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時cpu還是會到記憶體中去找資料,這樣系統的速度就慢下來了,不過cpu會把這些資料複製到快取中去,以便下一次不要再到記憶體中去取。 2.

因為隨著時間的變化,被訪問得最頻繁的資料不是一成不變的,也就是說,剛才還不頻繁的資料,此時已經需要被頻繁的訪問,剛才還是最頻繁的資料,現在又不頻繁了,所以說快取中的資料要經常按照一定的演算法來更換,這樣才能保證快取中的資料是被訪問最頻繁的。 快取的工作原理是當cpu要讀取乙個資料時,首先從快取中查詢,如果找到就立即讀取並送給cpu處理;如果沒有找到,就用相對慢的速度從記憶體中讀取並送給cpu處理,同時把這個資料所在的資料塊調入快取中,可以使得以後對整塊資料的讀取都從快取中進行,不必再呼叫記憶體。 正是這樣的讀取機制使cpu讀取快取的命中率非常高(大多數cpu可達90%左右),也就是說cpu下一次要讀取的資料90%都在快取中,只有大約10%需要從記憶體讀取。

這大大節省了cpu直接讀取記憶體的時間,也使cpu讀取資料時基本無需等待。總的來說,cpu讀取資料的順序是先快取後記憶體。 一級快取和二級快取 為了分清這兩個概念,我們先了解一下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的指令快取與資料快取有什麼不一樣?分別幹哪些活?

4樓:晏元英

快取是為了解決cpu速度和記憶體速度的速度差異問題。記憶體中被cpu訪問最頻繁的資料和指令被複製入cpu中的快取,這樣cpu就可以不經常到象「蝸牛」一樣慢的記憶體中去取資料了,cpu只要到快取中去取就行了,而快取的速度要比記憶體快很多。 這裡要特別指出的是:

1.因為快取只是記憶體中少部分資料的複製品,所以cpu到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時cpu還是會到記憶體中去找資料,這樣系統的速度就慢下來了,不過cpu會把這些資料複製到快取中去,以便下一次不要再到記憶體中去取。 2.

因為隨著時間的變化,被訪問得最頻繁的資料不是一成不變的,也就是說,剛才還不頻繁的資料,此時已經需要被頻繁的訪問,剛才還是最頻繁的資料,現在又不頻繁了,所以說快取中的資料要經常按照一定的演算法來更換,這樣才能保證快取中的資料是被訪問最頻繁的。 快取的工作原理是當cpu要讀取乙個資料時,首先從快取中查詢,如果找到就立即讀取並送給cpu處理;如果沒有找到,就用相對慢的速度從記憶體中讀取並送給cpu處理,同時把這個資料所在的資料塊調入快取中,可以使得以後對整塊資料的讀取都從快取中進行,不必再呼叫記憶體。 正是這樣的讀取機制使cpu讀取快取的命中率非常高(大多數cpu可達90%左右),也就是說cpu下一次要讀取的資料90%都在快取中,只有大約10%需要從記憶體讀取。

這大大節省了cpu直接讀取記憶體的時間,也使cpu讀取資料時基本無需等待。總的來說,cpu讀取資料的順序是先快取後記憶體。 一級快取和二級快取 為了分清這兩個概念,我們先了解一下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找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了。

5樓:寶寶

自p4時代開始,intel開始採用全新的「資料**指令追蹤快取」設計。基於這種架構的一級資料快取不再儲存實際的資料,而是儲存這些資料在二級快取中的指令**(即資料在二級快取中儲存的起始位址)。假設處理器需要讀取「intel p4 is good」這一串資料(不記空格),那麼所有資料將被儲存在二級快取中,而一級資料**指令追蹤快取需要儲存的僅僅是上述資料的起始位址(如下圖所示)。

由於一級資料快取不再儲存實際資料,因此「資料**指令追蹤快取」設計能夠極大地降cpu對一級資料快取容量的要求,降低處理器的生產難度。但這種設計的弊端在於資料讀取效率較「實資料讀寫快取設計」低,而且對二級快取容量的依賴性非常大。 amd採用的一級快取設計屬於傳統的「實資料讀寫快取」設計。

基於該架構的一級資料快取主要用於儲存cpu最先讀取的資料;而更多的讀取資料則分別儲存在二級快取和系統記憶體當中。做個簡單的假設,假如處理器需要讀取「amd athlon 64 3000+ is good」這一串資料(不記空格),那麼首先要被讀取的「amdathl」將被儲存在一級資料快取中,而餘下的「on643000+isgood」則被分別儲存在二級快取和系統記憶體當中(如下圖所示)。 需要注意的是,以上假設只是對amd處理器一級資料快取的乙個抽象描述,一級資料快取和二級快取所能儲存的資料長度完全由快取容量的大小決定,而絕非以上假設中的幾個位元組。

「實資料讀寫快取」的優點是資料讀取直接快速,但這也需要一級資料快取具有一定的容量,增加了處理器的製造難度(一級資料快取的單位製造成本較二級快取高)。

6樓:手機使用者

理解錯誤了,現行的cpu還是沿用馮.諾伊曼的理論。程式匯流排和資料匯流排分開。指令快取和資料快取是完全不同的概念,不可混用!

cpu的快取有什麼作用?

7樓:失眠瞌睡蟲

快取是為了解決cpu速度和記憶體速度的速度差異問題

記憶體中被cpu訪問最頻繁的資料和指令被複製入cpu中的快取,這樣cpu就可以不經常到象「蝸牛」一樣慢的記憶體中去取資料了,cpu只要到快取中去取就行了,而快取的速度要比記憶體快很多

這裡要特別指出的是:

1.因為快取只是記憶體中少部分資料的複製品,所以cpu到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時cpu還是會到記憶體中去找資料,這樣系統的速度就慢下來了,不過cpu會把這些資料複製到快取中去,以便下一次不要再到記憶體中去取。

2.因為隨著時間的變化,被訪問得最頻繁的資料不是一成不變的,也就是說,剛才還不頻繁的資料,此時已經需要被頻繁的訪問,剛才還是最頻繁的資料,現在又不頻繁了,所以說快取中的資料要經常按照一定的演算法來更換,這樣才能保證快取中的資料是被訪問最頻繁的

3.關於一級快取和二級快取

為了分清這兩個概念,我們先了解一下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快取是不是越大越好呢,CPU三級快取是啥意思?越大越好嗎?主頻是啥?是否越大越快?

cpu的頻率分為外頻 倍頻和主頻。一般我了解到的cpu的頻率是cpu的主頻,主頻 外頻 倍頻。例如 p4 2.4a cpu的頻率為2.4ghz,它是133mhz 18 2400mhz的 而core 2 duo e6400的頻率為2.13ghz,它是266mhz 8 2130mhz的。cpu的效能以及...

二級快取對cpu的作用,二級快取對CPU的效能影響有多大?

二級快取 cache 大小是cpu的重要指標之一,其結構與大小對cpu速度的影響非常大。簡單地講,快取就是用來儲存一些常用或即將用到的資料或指令,當需要這些資料或指令的時候直接從快取中讀取,這樣比到記憶體甚至硬碟中讀取要快得多,能夠大幅度提公升cpu的處理速度。就是速度快,比記憶體快好些倍,當然二級...

cpu快取4m和2m有什麼區別,CPU 快取4M和2M有什麼區別

cpu快取 cache memory 是位於cpu與記憶體之間的臨時儲存器,它的容量比記憶體小的多但是交換速度卻比記憶體要快得多,主要是為了解決cpu運算速度與記憶體讀寫速度不匹配的矛盾,因為cpu運算速度要比記憶體讀寫速度快很多,這樣會使cpu花費很長時間等待資料到來或把資料寫入記憶體。在快取中的...

cpu的快取級都有什麼作用,cpu的三個快取級都有什麼作用?

1級2級3級快取 cache 作用都是一樣的,那就是在處理器 processor 和記憶體 main memory 之間 搭起座橋 因為記憶體和處理器的讀取速度相差很大,直接記憶體讀取比較昂貴,所以有了快取就可以把一小部分經常用到的資料放在快取裡,有效減少dma direct memory acce...

CPU的一級快取與二級快取的區別與作用

補充 現在的主流已經是512kb和1mb了。為什麼cpu要分一級快取 二級快取和 快取?cpu的一級快取和二級快取有什麼用?二級快取就是一級快取的緩衝器,因為一級快取製造成本較高,因此它的容量有限,二級快取的作用就是儲存那些cpu處理時需要用到 一級快取又無法儲存的資料 一級快取和二級快取中的內容都...