CPU的奧秘到底是什么
熱心網友
利用可以控制的有限的指令,去對應可以擴大的無限的數字電路。一一對應。
熱心網友
CPU的作用就是把人用二進制指令編寫的命令代碼進行翻譯,然后根據情況發出各種控制信號,協調計算機部件的工作,其中邏輯判斷和數值分析需要用到CPU中的運算器,中間的運算結果需要保存好。這就是CPU的工作。同樣的時間內執行的指令數越多,CPU的效率越高,對人的命令執行表現得越乖巧,人也就越愿意花大價錢去買它。
熱心網友
CPU的作用就是把人用二進制指令編寫的命令代碼進行翻譯,然后根據情況發出各種控制信號,協調計算機部件的工作,其中邏輯判斷和數值分析需要用到CPU中的運算器,中間的運算結果需要保存好。這就是CPU的工作。同樣的時間內執行的指令數越多,CPU的效率越高,對人的命令執行表現得越乖巧,人也就越愿意花大價錢去買它。
熱心網友
cpu的物理結構就是n個小二級管所組成的寄存器組。
熱心網友
還是簡單點說把。其實電腦只認識0和1,即2進制(我們日常使用的計算方法采用的是10進制,遇到10就升位)。比如說電源開關,只有開和關兩種狀態,實際上你可以理解為CPU內部集成了許多的開關,這樣通過控制開關的各種組合,就可以進行計算了,不過計算結果依然是2進制的,然后在通過軟件把計算結果轉換成我們可以容易接受的東西。這就是CPU的大概工作原理。
熱心網友
運行速度的提升是提高CPU性能的最重要途徑之一,以英特爾的CPU為例,從1993年的Pentium 60MHz至2002年11月推出的Pentium 4 3。06GHz,在不到10年內運行速度提高了50倍。除了更高的運行速度和全新的CPU架構,CPU的研發者還在CPU中應用了其他多種能提高CPU性能的技術。英特爾在其Pentium 4 3。06GHz處理器上,就采用了一項全新的能夠大幅度提高CPU性能的技術-英特爾超線程技術(Hyper-Threading Technology)。去年,我們曾經在“專題測試”欄目中介紹過雙CPU電腦的強勁性能(本刊,2002年2月,第60頁),而在本文中我們將看到:英特爾是如何應用超線程技術讓一個物理CPU在實際應用中表現為兩個邏輯CPU,從而充分利用一個CPU芯片的運算資源大幅度提高CPU性能。此外,通過對英特爾超線程技術的分析,還將讓我們很好地了解應用軟件在現代CPU中是如何運行的。超線程技術與關鍵詞以下我們先對貫穿本文的一些關鍵詞進行簡單的介紹:并行運算(Concurrency):即電腦同時執行多項結構不同的運算處理。并行運算可出現在同一個應用中的多任務過程,或多個應用中的多任務過程。例如在同一時刻進行計算、硬盤訪問和網絡訪問。多處理器(Multi-processor):在一臺電腦的系統總線上包含不只一個CPU。對于多CPU電腦系統,操作系統必須能檢測到不只有一個CPU存在,才能發揮多CPU的作用。線程(Thread):線程是在一個程序中可被獨立運算處理的那部分程序,它可以和其他部分程序在同一時刻被運算處理。一個線程與一個完整的運算處理過程或應用(多線程應用)通常存在著多對一的關系。英特爾NetBurst微架構:英特爾應用于其Pentium 4的CPU芯片架構。英特爾超線程技術(Hyper-Threading Technology):在一個CPU中增加電路,讓它以兩個邏輯CPU的形式出現。其結果是:物理上的一個CPU,在操作系統和多線程應用中以兩個邏輯CPU的形式表現出來,每個邏輯CPU可以執行多線程應用中的一個線程。超線程技術讓單個CPU可以如同兩個CPU那樣并行處理數據指令,而不是如常規單CPU系統那樣一次只能處理一條數據指令,超線程設計提高了系統的性能和效率。線程的執行(Execution of Threads):遇到多線程應用程序,操作系統會將要執行的線程安排給多CPU電腦系統中的每個CPU進行運算處理。如果操作系統檢測到電腦中含有超線程技術的CPU,它會將線程安排給每個邏輯CPU和物理CPU。英特爾超線程技術運行環境的比較-單CPU電腦 在一個常規的單CPU電腦系統中,盡管多個應用程序可以和操作系統共駐于內存之中,但在每一時刻只有一個應用程序可以利用CPU的運算資源,各個應用 軟件中的程序編碼排隊等待CPU的執行處理。下圖為應用軟件的線程編碼在常規單CPU電腦上的執行情況的三個示意圖。在每個示意圖中,左邊部分示意了CPU正在 處理(圖中彩色部分)和等待CPU處理(圖中深灰色部分)的應用,右邊的部分示意了線程編碼在CPU上的執行情況(彩色部分代表CPU正運算處理的過程)。 運行環境的比較-雙普通CPU電腦 對于雙CPU電腦,多線程編碼可以在兩個CPU上同時執行,兩個應用程序可以同時應用CPU的運算資源。兩條編碼可以在兩條 并行的路徑上同時連續執行,這大大提高了系統總運算處理能力,但專門為個人用戶所設計的雙CPU電腦系統并不多見。下 圖為應用軟件的線程編碼在常規雙CPU電腦上的執行情況的三個示意圖。 運行環境的比較-單個擁有超線程技術CPU的電腦 當一個CPU被檢測出是一個擁有超線程技術的CPU的時候,操作系統可以對那些等待運算處理的線程進行調度,將線程安排給每一個邏輯CPU,就如同在雙CPU系 統上那樣。對于應用了超線程技術的CPU系統,兩個線程的編碼可以在同一時刻在一個CPU上被執行處理,這就讓多個應用程序可以同時利用CPU資源,因此擁有超 叱碳際CPU的系統的用戶不必再添加第二顆CPU就可以獲得性能的提升。下圖為應用軟件的線程編碼在單個擁有超線程技術CPU電腦上的執行情況的三個示意圖。 運行環境的比較-單個擁有超線程技術CPU的電腦 當一個CPU被檢測出是一個擁有超線程技術的CPU的時候,操作系統可以對那些等待運算處理的線程進行調度,將線程安排給每一個邏輯CPU,就如同在雙CPU系 統上那樣。對于應用了超線程技術的CPU系統,兩個線程的編碼可以在同一時刻在一個CPU上被執行處理,這就讓多個應用程序可以同時利用CPU資源,因此擁有超 叱碳際CPU的系統的用戶不必再添加第二顆CPU就可以獲得性能的提升。下圖為應用軟件的線程編碼在單個擁有超線程技術CPU電腦上的執行情況的三個示意圖。 超線程技術目前許多操作系統和電腦應用程序(如互動游戲等)是多線程設計的,它們可通過多CPU系統來獲得更好的運行性能。在這些系統中,不同的CPU并行對編碼進行處理運算。在應用了英特爾的超線程技術后,一顆擁有超線程技術的CPU可以同時處理兩個線程的編碼,提高了多線程編碼在單個CPU上的性能。CPU資源的應用英特爾的超線程技術提高了多線程應用軟件的運行性能,這種提高是通過對具有英特爾NetBurst微架構的芯片資源的有效利用來達到的。一條基于英特爾IA32常規混合指令集的普通線程編碼,通常只能利用了大約35%的英特爾NetBurst微架構處理資源。為了同時控制和調度兩條線程編碼,通過在CPU芯片上加入必要的邏輯和資源控制器,超線程技術讓那些沒有充分利用的資源可被用于第二個線程的編碼處理,提高了CPU的總運算處理性能和電腦系統的總性能。超線程技術在一個單芯片封裝中提供了第二個邏輯CPU(兩個邏輯CPU的運行頻率和物理CPU的運行頻率相同),以此來提高CPU的運算處理性能。而對于含有多個擁有超線程技術CPU的系統則可以獲得更高性能的提升。超線程技術的工作原理多線程應用事實上,所有現代的操作系統(如Microsoft Windows和Linux)將它們的運算處理任務分為進程(processes)和線程(threads),這些進程和線程可被獨立地調度和分派給CPU進行運算處理。許多高性能應用諸如數據庫處理引擎、科學計算程序、工程工作站工具、多媒體應用和大型圖像處理、網絡游戲中的部分運算處理過程,使用CPU內的同一部分運算資源進行運算處理。為了提高CPU的運算處理性能,軟件開發者將這些程序設計成可以在雙CPU(DP,dual-processor)或多CPU(MP,multiprocessor)環境下運行。進程和線程可以在好幾個物理CPU中被調度和分派。對于多線程應用,來源于幾個不同線程的指令可被幾個CPU同時處理。而對于擁有超線程技術的CPU,一個CPU可以同時執行處理兩個線程,超線程技術通過無序調度讓CPU中的那些運算功能單元在每個一個運行周期中盡可能多地處于工作狀態。英特爾NetBurst微架構運算處理管線如果沒有應用超線程計算技術,NetBurst微架構在其運算處理管線中只能處理單條線程(右圖中,運算處理管線為單一顏色示意只處理一條線程),而基于常規混合指令集的普通線程編碼只能利用35%的NetBurst微架構的運算資源。擁有超線程技術的英特爾NetBurst微架構運算管線英特爾超線程技術通過復制、劃分、共享NetBurst微架構的資源讓一個物理CPU中具有兩個邏輯CPU。資源的復制為兩條線程提供必要的運算資源,資源的劃分將運算資源劃分給正在運算的不同線程,資源共享利用相同的資源同時運算處理兩個線程。對于擁有超線程技術的英特爾NetBurst微架構運算管線,每一部分的運算處理資源可以被復制、劃分、共享來執行運算處理管線上的兩個線程。在左圖中,運算處理管線為兩種顏色示意同一條運算處理管線可以同時處理兩條線程。英特爾NetBurst微架構管線當CPU微架構對通過其運算管線的編碼進行處理時,CPU中的每個運算處理功能單元在不同的位置對編碼進行調度選擇。當每條線程通過運算管線時,CPU處于運算管線不同位置的選擇指針(上圖中的彩色圓點示意了CPU中的選擇指針)決定在下一個管線中將利用哪個邏輯運算處理單元的資源,選擇指針選擇一個邏輯運算處理單元的運算結果并將其輸入到下一步的運算處理管線中。 任務的調度操作系統將線程編碼調度到每個CPU。當一個線程沒有被調度時,相關的邏輯CPU處于閑置狀態。當一條線程被調度到一個邏輯CPU(LP0)上時,超線程技術動用必要的CPU資源來執行這條線程。當第二條線程被調度到另一個邏輯CPU(LP1)上時,運算資源將被復制、劃分、共享來處理第二條線程。當每條線程完成后,操作系統將沒用的邏輯CPU閑置,釋放出運算處理資源。為了對擁有超線程技術的多CPU系統進行性能優化,操作系統必須在將線程優先調度到不同的實物CPU上,然后再考慮不同的邏輯CPU。下圖通過CPU架構示意圖上的顏色示意CPU對線程的運算。超線程技術通過對英特爾NetBurst微架構管線上的運算資源進行復制、劃分、共享,在一個物理CPU上提供兩個了邏輯CPU。操作系統將線程調度到每個邏輯CPU上,就如同在雙CPU或多CPU系統上。當系統將進程調度和安排到運算管線中時,必要的資源被用于進行兩條進程運算處理。CPU中的運算處理功能單元在管線的一定位置對線程進行選擇和處理。。