給孩子解釋什麼是緩衝

proorck2019發表於2020-11-26

緩衝是一種計算機技術,用於高速裝置和低速裝置之間的資料交換。因為有速度差,高速裝置總是要等著低速裝置,有了緩衝之後,可以少等一會兒。舉個例子,去飯店吃飯,跟服務員說:給我拿個筷子,服務員跑到20米外,拿來一根筷子;再跟服務員說:再給我拿個筷子,服務員又跑到20米外拿來第二根筷子,這才拿來了一雙筷子。這個過程很慢,但並不誇張。計算機底層,取100號單元的資料,給100加1,得到101,再取101號單元的資料。

說到這裡才發現,原來服務員一次只能拿一根筷子!這是設計硬體的結果。好像是從圖靈那個年代,還沒有今天這種計算機,人們就憑空研究可計算理論。研究的結果是,一次拿一根筷子,拿N次就能拿來N根筷子,N屬於自然數。這樣一來,對於拿筷子這個課題,就“徹底”解決了,只要製造出拿一根筷子的電路,再讓它重複N次即可。

如果有哪家公司生產出能拿100雙筷子的機器,這時,客人說了,給我拿10000雙筷子!服務員要跑100個來回,共4000米,這就要等幾分鐘了。客人要10000雙筷子幹什麼用呢?原來客人相當於CPU,它也是按照可計算理論製造出來的,它一次只能表達一根筷子,但是它接到一個任務,重複使用筷子10000遍,它就只能麻煩服務員。

被麻煩的服務員發明了緩衝,準備一個盤子,常用的東西就放在裡邊,有一雙筷子、牙籤、餐巾紙等等。盤子就放在客人手邊,可以方便地拿起來用。這個盤子就是緩衝,它是在CPU內部的,用來在高速的CPU和相對低速的記憶體之間進行緩衝。

記憶體和硬碟之間也有緩衝,這約等於飯店裡的儲物臺,而硬碟是2公里外的倉庫,要從硬碟上獲取10位元組資料,硬碟一次讀取4KB資料到儲物臺,並且就儲存在這裡,方便服務員給顧客拿著用。如果儲物臺上沒有客人想要的東西,另一個運貨員就要開著汽車去2公里外的倉庫取貨了,CPU要等很長時間。這個時間大概是0.3秒,以電腦的速度來說,是很長時間了。

相關文章