A. 計算機的CPU並不直接調取硬碟文件,為何卻要先載入到內存中
原因就是硬碟和內存在傳輸之間是有不同的地方的。計算機所有設備各部件之間的延時排列由高到低,依次為機械硬碟、固態硬碟、存儲器和CPU;從數據響應速度來看,存儲器明顯優於硬碟。數據的讀寫速度與固態磁碟的讀寫速度相差甚遠。
使用大的內存還有其他的好處,硬碟作為內存用,不是一個很好的建議,但內存可以用作硬碟,從而體驗更快的傳輸速度。這里我們需要用ramdisk軟體來實現,大內存用戶可以下載試用。
B. cpu的二級緩存是什麼意思
二級緩存又叫l2
cache,它是處理器內部的一些緩沖存儲器,其作用跟內存一樣。
它是怎麼出現的呢?
要上溯到上個世紀80年代,由於處理器的運行速度越來越快,慢慢地,處理器需要從內存中讀取數據的速度需求就越來越高了。然而內存的速度提升速度卻很緩慢,而能高速讀寫數據的內存價格又非常高昂,不能大量採用。從性能價格比的角度出發,英特爾等處理器設計生產公司想到一個辦法,就是用少量的高速內存和大量的低速內存結合使用,共同為處理器提供數據。這樣就兼顧了性能和使用成本的最優。而那些高速的內存因為是處於cpu和內存之間的位置,又是臨時存放數據的地方,所以就叫做緩沖存儲器了,簡稱「緩存」。它的作用就像倉庫中臨時堆放貨物的地方一樣,貨物從運輸車輛上放下時臨時堆放在緩存區中,然後再搬到內部存儲區中長時間存放。貨物在這段區域中存放的時間很短,就是一個臨時貨場。
最初緩存只有一級,後來處理器速度又提升了,一級緩存不夠用了,於是就添加了二級緩存。二級緩存是比一級緩存速度更慢,容量更大的內存,主要就是做一級緩存和內存之間數據臨時交換的地方用。現在,為了適應速度更快的處理器p4ee,已經出現了三級緩存了,它的容量更大,速度相對二級緩存也要慢一些,但是比內存可快多了。
緩存的出現使得cpu處理器的運行效率得到了大幅度的提升,這個區域中存放的都是cpu頻繁要使用的數據,所以緩存越大處理器效率就越高,同時由於緩存的物理結構比內存復雜很多,所以其成本也很高。
現在的cpu普遍有一級緩存和二級緩存。一般來說,一級緩存的數量比較少,而二級企業緩存的數量一般比一級緩存大幾倍。為什麼要緩存呢,這主要是cpu廠家為了提高cpu的使用效率。因為,隨著cpu的速度的快速發展,目前的cpu速度已經達到一個令人驚訝的速度,據個例子來說,一個奔騰3-1g的cpu其運算速度為每秒鍾能夠完成10億次二進制計算,而一個奔騰4-3g則意味著每秒鍾能夠完成30億次二進制運算。當然由於cpu還要介入浮點數據轉換和介入控制主板上的其他設備資源,實際真正用於數據處理的資源會受到較大影響,但總體來說,cpu的速度已經達到一個前所未有的程度。由於其他硬體在數據傳輸方面未能跟上,因此,cpu廠家就在cpu內封裝了緩存,其中,一級緩存主要將cpu的硬指令長期存儲,以便cpu在調用指令時不必再通過與內存交換數據來取得,另外,還將最近處理的進程數據(中間數據)存放在一級緩存;而二級緩存則是完全存放最近處理的進程數據(中間數據)和即將調用的數據。通過這樣一來設置,就可以避免cpu運算過程中要頻繁與內存交換數據,減少cpu的等待時間,提高cpu的利用效率。
C. CPU二級緩存存儲的數據在哪裡
你問這個問題首先你要了解一個機制。就是CPU計算的東西來自於哪,CPU核心計算通過L1提供數據,L1通過L2提供數據……可能有L3。這一部分是在CPU內進行的數據計算~進入CPU以後數據就會被拆開,根據架構不同進行存儲計算。因此在這階段中的數據是非人類解讀的數據。L2或者L3的數據是通過內存提供的~實際上CPU計算過程就到此結束了。之所以有硬碟的存在是因為內存太貴了!新的固態硬碟實際上就是非失意性「內存」~他們的讀取速度就是L1比L2快L2比L3快,L3比內存快,內存比硬碟快……而且任何的計算機操作都是通過CPU的指令進行的,讀取L1和L2的數據已經設計到CPU核心計算,所以官方是不會輕易提供讀取L1 L2的控制指令的。綜上所述,L2你是不能看到的,原因重點就倆,一個他的數據非人類可理解,另一個官方不會允許你訪問CPU內核。
D. cpu在處理數據時,是不是所有的數據都要放到內存啊
CPU是:中央處理器,用來進行數據加與數據減
內存是:相對快速存儲空間
硬碟是:大量非即時待用數據存儲區域
在計算機運行的時候,CPU負責數據處理,但它需要數據源,就需要到內存和硬碟,又因為CPU是即時的數據處理,就需要內存和硬碟加電,同時運行;CPU內部本身自己就有存儲位置,很多,AX,BX,CX……但相遇對內存和硬碟來說,是無法比擬的速度,CPU內部的存儲空間很小,速度相當高,現在的CPU內部的存儲空間都在512K,甚至更高。
CPU接收到處理數據的請求並開始處理,就需要數據源,但由於速度相當快,CPU對數據源的需求因軟體的需求調用的位置爾各不相同(能理解嗎,比如游戲;需要調用字體,需要調用貼圖,需要調用游戲圖片,他們都存儲在一個硬碟的不同位置!(希望這里你也明白,也就是說,即使是一個大文件夾,完全有可能每個文件都放在不同的扇區。)就需要硬碟不斷的讀取。)。
這里也就是為什麼要用到硬碟的原因,因為我們需要把東西存下來,但不一定用,不如你玩游戲的時候,你的千千傾聽沒有開,那麼你的MP3就沒有播放,所以就需要一個大的空間來存儲我們可能調用的數據。
下來的過程就是把硬碟里的數據轉移到內存里,又不懂了吧,告訴你,是速度,硬碟為了滿足廉價的存儲空間放棄了速度,內存相對於硬碟來說是相當快的存儲空間,數據在這里等待被放到CPU的存儲空間里供CPU使用。^O^還沒完……
既然是回答就告訴你吧,但希望你能思考前面的東西,它缺了一部分,應為這個過程是個循環。
然後……因為CPU的內部的存儲空間很有限,數據又不是一次性的計算完畢,尤其是一些大型的數據處理,比如地形的地貌的計算,物理碰撞虛擬模擬計算,它都不可能一次性算完,就必須吧算了的一部分存儲下來,去算下一個部分,最後吧很多小部分再綜合計算,按照這樣的存儲過程,CPU內部的存儲空間可以說是廢物,但這里CPU把存儲完的數據轉存到內存里,以供後期處理。當然,大型計算機應該還會把內存中的數據專門用另一套cpu組成的系統存儲到硬碟里,或者在軟體里做個中斷,提供存儲轉換的時間,然後繼續。
所以,CPU、內存、硬碟的屬性關系是,內存和硬碟是CPU附屬設備。但是需求關系是循環的。
E. 怎樣將omron c200hx cpu數據存儲區與微機進行連接存儲數據
PC作為Master,C200HX作為Slave,從PC發送FINS指令向C200HX寫入或讀取數據。
F. CPU為什麼能存儲數據,或者說怎麼存儲數據;光碟和硬碟里的那張碟是怎麼存儲的,我要物理方面的解釋
你可以參考網路「硬碟」 和 「 光碟」,我摘了一些來說明:
CPU屬於高速運算狀態所以存儲器的數據讀取速度跟不上CPU的處理速度。存儲器會把數據寄放在存儲器提前調用,這樣不會浪費CPU的資源。所以程序運行時會把數據線放到寄存器,寄存器裡面的數據可以隨時高速的調用。這樣能更好地支持CPU的運算。所以內存這個寄存器相當於一個臨時倉庫的形式。方便CPU隨時調用。
所以CPU利用地址,來讀取每個寄存器裡面的內容,然後再通過磁碟管理,寫到硬碟或者其他存儲設備上。CPU永遠面對的都是內存。而存儲管理器負責把數據從磁碟讀取到內存,或者從內存寫入存儲設備。
硬碟.磁軌
當磁碟旋轉時,磁頭若保持在一個位置上,則每個磁頭都會在磁碟表面劃出一個圓形軌跡,這些圓形軌跡就叫做磁軌。這些磁軌用肉眼是根本看不到的,因為它們僅是盤面上以特殊方式磁化了的一些磁化區,磁碟上的信息便是沿著這樣的軌道存放的。相鄰磁軌之間並不是緊挨著的,這是因為磁化單元相隔太近時磁性會相互產生影響,同時也為磁頭的讀寫帶來困難。一張1.44MB的3.5英寸軟盤,一面有80個磁軌,而硬碟上的磁軌密度則遠遠大於此值,通常一面有成千上萬個磁軌。
光碟.記錄層
這是燒錄時刻錄信號的地方,其主要的工作原理是在基板上塗抹上專用的有機染料,以供激光記錄信息。由於燒錄前後的反射率不同,經由激光讀取不同長度的信號時,通過反射率的變化形成0與1信號,藉以讀取信息。目前市場上存在三大類有機染料:花菁(Cyanine)、酞菁 (Phthalocyanine) 及偶氮 (AZO)。
一次性記錄的CD-R光碟主要採用(酞菁)有機染料,當此光碟在進行燒錄時,激光就會對在基板上塗的有機染料,進行燒錄,直接燒錄成一個接一個的"坑",這樣有"坑"和沒有"坑"的狀態就形成了『0'和『1'的信號,這一個接一個的"坑"是不能恢復的,也就是當燒成"坑"之後,將永久性地保持現狀,這也就意味著此光碟不能重復擦寫。這一連串的"0"、"1"信息,就組成了二進制代碼,從而表示特定的數據。
G. CPU內部寄存器組結構及其功能是什麼
1.什麼是寄存器 所謂寄存器(register),它是CPU內部用來存放數據的一些小型存儲區域,用來暫時存放參與運算的數據和運算結果。其實寄存器就是一種常用的時序邏輯電路,但這種時序邏輯電路只包含存儲電路。寄存器的存儲電路是由鎖存器或觸發器構成的,因為一個鎖存器或觸發器能存儲1位二進制數,所以由N個鎖存器或觸發器可以構成N位寄存器。 2.寄存器與CPU指令 在講CPU的寄存器之前,我們先了解一下CPU指令系統。指令系統指的是一個CPU所能夠處理的全部指令的集合,Athlon XP和P4都是基於x86指令集,這是CPU的根本屬性,決定CPU運行什麼樣的程序。 指令一般分為:算術邏輯運算指令、浮點運算指令、位操作指令及其他的一些非運算指令,其中整數、地址、指令指針和浮點數據是按照數據形式來劃分的。通常我們把需要CPU進行不同處理的單個數據稱為標量數據(Scala Data)。標量數據既可以是整數數據,也可以是浮點數據。其中整數標量數據的存放區一般為通用寄存器(GPR),浮點標量數據的存放區一般為浮點寄存器(FPR)。與標量數據相對的是矢量數據(Vector Data),所謂矢量數據就是指一列需要由處理器作相同處理的數據集合。比如處理器在做MP3編碼的過程中,需要對內存中的音頻文件里的各位元組數據作相同的MP3編碼操作。那麼通常使用MMX或SSE這類單指令多數據流(SIMD)指令,將數個位元組打包為一組矢量數據,存放在MMX或SSE寄存器中,再送往相應的功能單元進行統一操作。 其中通用寄存器是處理器中最快的存儲器,用來保存參加運算的操作數和中間結果。在通用寄存器的設計上,RISC與CISC(也就是我們常說的x86架構)有著很大的不同。CISC的寄存器通常很少——只有8個通用寄存器。由於CPU在執行指令過程中,存在指令依賴性,在一定程度上使得x86 CPU不能在每個時鍾周期中立即發布大量的指令。所謂「依賴性」就是指令的執行需要前個指令的運算結果。比如程序員經常使用的分支程序,請看下面這個例子: A=C*1 B=A+2 只要變數A的值還不知道,B=A+2就不能進行運算。也就是說,只要指令1的結果沒有寫進寄存器,CPU調度器就不能把指令2發布到執行單元。由於程序分支會造成具有較長流水線CPU運行停滯的,目前常用的解決方法是採用分支預測。 不過,分支預測同樣存在一個問題:流水線越長,指令潛伏期也越長,等待前一指令運算結果的時間也越長,同樣會造成CPU運行停滯。我們知道,程序指令通常都有各類型的條件分支語句,通過驗證條件決定執行路線。但CPU執行單元內是通過一項特殊的預測機制選擇一條路線直接執行(這樣可以避免驗證語句條件而處於等待情況),然後在後面進行驗證。如果預測正確則繼續往下執行,如果發現以前的預測錯誤,那麼就必須返回原地重新開始,以前的指令就會作廢。 因此,管線越長,意味著出現分支預測錯誤的機會就越多,越多在管線內的指令會被清除掉,而且重新讓管道填滿指令的時間也會越長。對於普通處理器來說,如果出現分支預測錯誤,CPU就不得不將整條流水線清空後從錯誤的地方重新裝滿數據、重新執行。毫無疑問這將花更多的時間,整體性能就會下降。因此,針對通用寄存器少的問題,在x86架構中比較完美的解決方法就是增加寄存器的數量和採用「亂序執行」。3.為什麼寄存器不夠用 在上面我們已經提到,寄存器只是用來暫時存放指令值的,如果CPU需要把兩個值加起來,它需要用1個寄存器來存放運算結果,用2個寄存器來存放相加的數值。例如,在以下的方程式中:A = 2 + 4 * 在寄存器1儲存「2」; * 在寄存器2儲存「4」; * 在寄存器3儲存「寄存器1 + 寄存器 2」; 因為在微處理器裡面有超過3個寄存器,因此這個運算能夠輕易地執行,不會造成用光寄存器的情況。在這些運算被執行之後,所有的3個數值都能夠被保留並重新使用,因此如果我們再想在結果加上2的話,處理器只需要執行:寄存器 1 + 寄存器 3 就可以了。如果微處理器僅有2個剩餘的寄存器,而我們又需要再次使用2和4的值,那麼這些值在覆蓋結果A之前,必須儲存在主內存之中 。運算執行的過程則會變成如下所示: * 在寄存器1儲存 「2」; * 在寄存器2儲存「4」; * 在主內存的某個空間儲存「寄存器1 + 寄存器2」; 我們可以看到這里使用了其它的內存訪問過程,而在這期間其實還有我們沒有提到的其它處理過程,比如主內存的定位也需要佔據寄存器,以便讓CPU 告訴裝載/儲存單元該往哪裡發送數據 。如果我們需要使用到這些結果的話,那麼CPU將不得不首先到主內存中找回這些結果,把目前滿載的寄存器驅逐一些數據,把它們寫入主內存,然後再把尋找到的數據儲存在寄存器里。 這里大家應該能夠明白吧,對內存的訪問次數將會可怕地增加;你需要訪問內存的時間越多,那麼處理器等待工作完成的時間就越長——因而造成性能的下降。因此面對超標量CPU在並行處理大量運算,x86體系僅有的8個通用寄存器遠遠不能滿足需要,在同一時鍾周期中,如果有3個指令發布,你就需要3個輸出寄存器和6個輸入寄存器。我們該怎麼辦呢?聰明的工程師們發現了突破這個限制的方法:「寄存器重命名」。 4.寄存器重命名技術 寄存器重命名,是CPU在解碼過程中對寄存器進行重命名,解碼器把「其它」的寄存器名字變為「通用」的寄存器名字,本質上是通過一個表格把x86寄存器重新映射到其它寄存器,這樣可以讓實際使用到的寄存器遠大於8個。這樣做的好處除了便於前面指令發生意外或分支預測出錯時取消外,還避免了由於兩條指令寫同一個寄存器時的等待。 下面我們以一個超標量CPU執行8個算術指令為例:假設它在每個時鍾周期中能對2個指令解碼,引出計算結果是在指令發布後3個時鍾周期發生的: (1)在第1個時鍾周期,兩個指令發布:它們互不關聯,因此,它們將在3個時鍾周期後(第4個時鍾周期)引出; (2)在第2個時鍾周期,我們首次遇到了「指令依賴」,指令3需要指令2的結果,此時指令3不能開始發布; (3)如果是按序執行,指令4、5、6就不能在指令3前發布。只有在第5個時鍾周期時(指令2的結果已得到)才能發布指令3; (4)在第6個時鍾周期有個大問題:我們想把結果寫到寄存器R1,但這將改變指令5的結果。因此,我們只有在R1空閑時(第10個時鍾周期)才能發布指令6。 按照正常情況處理的話,盡管這個CPU每個時鍾周期可以對2個指令解碼,但它每個時鍾周期的指令執行數只有0.53。如果每次程序所需的寄存器正被使用,我們可以把數據放到其它的寄存器中,在第6個時鍾周期將寄存器R1重命名,指令6和指令8不再耽誤CPU的工作。結果是我們能夠將每個時鍾周期的指令執行數提高50%。寄存器重命名技術可以使x86 CPU的寄存器可以突破8個的限制,達到32個甚至更多。寄存器重命名技術現在已經深深地紮根於超標量CPU中了。5.亂序執行技術 除此之外,處理器工程師還引入了亂序執行技術,從一定程度上來緩解通用寄存器不足的問題。採用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉並相應提高了CPU運行程序的速度。 這好比請A、B、C三個名人為春節聯歡晚會題寫橫幅「春節聯歡晚會」六個大字,每人各寫兩個字,如果這時在一張大紙上按順序由A寫好「春節」後再交給B寫「聯歡」,然後再由C寫「晚會」,那麼這樣在A寫的時候,B和C必須等待,而在B寫的時候C仍然要等待而A已經沒事了。但如果採用三個人分別用三張紙同時寫的做法,那麼B和C都不必等待就可以同時各寫各的了,甚至C和B還可以比A先寫好也沒關系(就像亂序執行),但當他們都寫完後就必須重新在橫幅上按「春節聯歡晚會」的順序排好(自然可以由別人做,就象CPU中亂序執行後的重新排列單元)才能掛出去。 不過,雖然採用寄存器重命名技術、亂序執行技術,但仍不能從根本上解決x86處理器通用寄存器不足的問題。以寄存器重命名技術來說,這種技術的寄存器操作相對於RISC來說,要花費一個時鍾周期來對寄存器進行重命名,這無形中降低了處理器性能以及流水線工作效率,也增加了程序和編譯器的優化難度。針對這個問題,最新的x86-64架構中(K8處理器),AMD在x86架構基礎上將通用寄存器和SIMD寄存器的數量增加了1倍:其中新增了8個通用寄存器以及8個SIMD寄存器作為原有x86處理器寄存器的擴充。 這些通用寄存器都工作在64位模式下,經過64位編碼的程序就可以使用到它們。這些64位寄存器稱為RAX、RBX、RCX、RDX、RDI、RSI、RBP、RSP、RIP以及EFLAGS,在32位環境下並不完全使用到這些寄存器,同時AMD也將原有的EAX等寄存器擴展至64位的RAX,這樣可以增強通用寄存器對位元組的操作能力。從擴充方式上看,EAX等寄存器可以看做是RAX的一個子集,系統仍然可以完整地執行以往的32位編碼程序。增加通用寄存器除了可高效存儲數據外,還可作為定址時的地址指針,從而縮短指令長度和指令執行時間,加快CPU的運算處理速度,同時也給編程帶來方便。 此外,為了保證K8的分支預測更有效率,K8的分支預測寄存器增加到64個。分支指令可以被設為真或假,而每個指令中的6位被分配到單獨一個預測寄存器中,只有預測寄存器被設定為「真」時,那些指向預測寄存器為「真」的指令結果才會被執行。其次由於所有的分支都能並行執行,CPU所花的時間同只執行單個分支的時間是相同的,降低了預測出錯的風險。第三由於CPU不再跳躍執行,它不會把程序代碼分成小塊。也就是說,稍前和稍後的程序代碼可以打包。這樣CPU能夠一並將它們發布,增大並行工作量。從而使性能提高10%~15%,特別是在整數代碼部分。 不過在x86-64中,寄存器的擴展部分似乎僅對於整數、地址數據有效。對浮點和向量數據則仍然保持原樣。我們能從K8向64位的擴展所獲得的好處,只不過是可以在同樣一條指令中,處理更大數值的整數數值以及管理空間更大的內存區域而已。而在32位的情況下,由於通用寄存器只能容納最大32位的數據,因此顯然要花費更多條指令對尺寸超過32位的數據進行處理。這種改進對伺服器、科學計算這樣的領域具有一定的意義,但顯然並不是普通家用環境急需的改進。 可以說,處理器的寄存器對處理器的性能有著巨大的影響。但是無論怎麼發展,通用型CPU目前還沒有脫離x86架構的限制,也許有一天,新的寄存器技術能讓我們的CPU變得更加功能強大!
H. 在正常運行期間CPU會從哪種類型的數據存儲中載入信息進行處理
現在的CPU都有若干級高速緩存(cpu catch),所以,cpu運行過程中,計算所需數據首先都是從這些內部的緩存中獲取。
若是緩存中沒有所需數據,再去內存查找和獲取。
cpu 獲取運行數據的次序是:寄存器、(多級)高速緩存、內存、硬碟。
I. 在正常運行期間,CPU會從哪種類型的數據存儲中載入信息進行處理
CPU都有若干級高速緩存(cpu catch),所以,cpu運行過程中,計算所需數據首先都是從這些內部的緩存中獲取。
若是緩存中沒有所需數據,再去內存查找和獲取。
cpu 獲取運行數據的次序是:寄存器、(多級)高速緩存、內存、硬碟。
計算機硬體的功能是輸入並存儲程序和數據,以及執行程序把數據加工成可以利用的形式。在用戶需要的情況下,以用戶要求的方式進行數據的輸出。
從外觀上來看,微機由主機箱和外部設備組成。主機箱內主要包括CPU、內存、主板、硬碟驅動器、光碟驅動器、各種擴展卡、連接線、電源等;外部設備包括滑鼠、鍵盤等。
(9)cpu數據存儲區擴展閱讀:
內存儲器有很多類型。隨機存取存儲器(RAM)在計算期間被用作高速暫存記憶區。數據可以在RAM中存儲、讀取和用新的數據代替。當計算機在運行時RAM是可得到的。它包含了放置在計算機此刻所處理的問題處的信息。
主存的工作方式是按存儲單元的地址存放或讀取各類信息,統稱訪問存儲器。主存中匯集存儲單元的載體稱為存儲體,存儲體中每個單元能夠存放一串二進制碼表示的信息,該信息的總位數稱為一個存儲單元的字長。存儲單元的地址與存儲在其中的信息是一一對應的,單元地址只有一個,固定不變,而存儲在其中的信息是可以更換的。