當前位置:首頁 » 服務存儲 » 存儲技術中天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲技術中天

發布時間: 2022-05-06 21:13:51

㈠ 騰訊稱霸,都"犧牲"了哪些創始人

騰訊稱霸「犧牲」了這些創始人:

1、張志東CTO(首席技術官):

張志東是騰訊主要創辦人之一,自1999年起受雇於騰訊。於1993年取得深圳大學理學士學位,主修計算機及應用,並於1996年取得華南理工大學計算機應用及系統架構碩士學位。在電信及互聯網行業擁有逾八年經驗。

(1)存儲技術中天擴展閱讀:

騰訊公司的運營:

騰訊成立於1998年11月,是目前中國領先的互聯網增值服務提供商之一。成立10多年以來,騰訊一直秉承「一切以用戶價值為依歸」的經營理念,為億級海量用戶提供穩定優質的各類服務,始終處於穩健發展的狀態。

通過互聯網服務提升人類生活品質是騰訊的使命。騰訊把「連接一切」作為戰略目標,提供社交平台與數字內容兩項核心服務。通過即時通信工具QQ、移動社交和通信服務微信和WeChat、門戶網站騰訊網(QQ.com)、騰訊游戲、社交網路平台QQ空間等中國領先的網路平台,滿足互聯網用戶溝通、資訊、娛樂和金融等方面的需求。騰訊的發展深刻地影響和改變了數以億計網民的溝通方式和生活習慣,並為中國互聯網行業開創了更加廣闊的應用前景。

面向未來,堅持自主創新,樹立民族品牌是騰訊的長遠發展規劃。騰訊50%以上員工為研發人員,擁有完善的自主研發體系,在存儲技術、數據挖掘、多媒體、中文處理、分布式網路、無線技術六大方向都擁有了相當數量的專利,在全球互聯網企業中專利申請和授權總量均位居前列。

成為最受尊敬的互聯網企業是騰訊的遠景目標。騰訊一直積極參與公益事業、努力承擔企業社會責任、推動網路文明。2006年,騰訊成立了中國互聯網首家慈善公益基金會——騰訊慈善公益基金會,並建立了騰訊公益網。秉承「致力公益慈善事業,關愛青少年成長,倡導企業公民責任,推動社會和諧進步」的宗旨,騰訊的每一項產品與業務都擁抱公益,開放互聯,並倡導所有企業一起行動,通過互聯網領域的技術、傳播優勢,締造「人人可公益,民眾齊參與」的互聯網公益新生態。

㈡ 中天數據恢復怎麼樣

中天數據恢復怎麼樣?在很多客戶錯誤的觀念中,認為刪除了手機的數據後,只需要花錢購買一些所謂的手機恢復APP軟體就能恢復自己刪除的內容,實際上這種操作只會進一步破壞原本還有希望恢復的數據。因為用戶的許可權僅僅只能訪問一個掛載點,相對手機字型檔來說只是冰山一角。而且手機的文件系統是EXT文件系統,如圖一顯示的「EXT4」,EXT文件系統的刪除原理詳情見下圖:

綜上所述,建議您手機誤刪除後,為了盡可能的找回數據,請找專業的中天手機數據恢復中心。

㈢ 計算機的中央處理器CPU,包含控制器和存儲器兩部分

中央處理器CPU包括運算邏輯部件、寄存器部件和控制部件等。
邏輯部件:英文Logic components;運算邏輯部件。可以執行定點或浮點算術運算操作、移位操作以及邏輯操作,也可執行地址運算和轉換。
寄存器:寄存器部件,包括寄存器、專用寄存器和控制寄存器。 通用寄存器又可分定點數和浮點數兩類,它們用來保存指令執行過程中臨時存放的寄存器操作數和中間(或最終)的操作結果。 通用寄存器是中央處理器的重要部件之一。
控制部件:英文Control unit;控制部件,主要是負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的控制信號。
其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。
微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構成微程序。中央處理器在對指令解碼以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。
簡單指令是由(3~5)個微操作組成,復雜指令則要由幾十個微操作甚至幾百個微操作組成。

㈣ 中天科技招收二本學生嗎

經濟條件允許的情況下,可以購買。
免疫細胞儲存就是將我們身體健康時的免疫細胞在嚴格操作流程下長期儲存,以供需要時使用。儲存的免疫細胞也可使用,來提高機體免疫力。這是充分利用現有免疫細胞資源的有效方法。
隨著時間的推移,人體免疫力時時在衰退,患病的風險時時在增長。今天體_的免疫細胞肯定比明天的年輕。免疫細胞越年輕,其免疫活性越好。免疫細胞存儲關鍵在於是否用得是自體的、健康的免疫細胞。癌症患者體內無法取得健康的免疫細胞。

㈤ 在sql Sever中建立修改表的存儲過程時的錯誤

SQL Server是微軟公司開發的一個關系資料庫管理系統,以Transact_SQL作為它的資料庫查詢和編程語言。T-SQL是結構化查詢語言SQL的一種,支持ANSI SQL-92標准。

SQL Server 採用二級安全驗證、登錄驗證及資料庫用戶帳號和角色的許可驗證。SQL Server 支持兩種身份驗證模式:Windows NT身份驗證和SQL Server 身份驗證。7.0版支持多種類型的角色,"角色"概念的引入方便了許可權的管理,也使許可權的分配更加靈活。

SQL Server為公共的管理功能提供了預定義的伺服器和資料庫角色,可以很容易為某一特定用戶授予一組選擇好的許可許可權。 SQL Server可以在不同的操作平台上運行,支持多種不同類型的網路協議如TCP/IP、IPX/SPX、Apple Talk等。SQL Server在伺服器端的軟體運行平台是Windows NT、Windows9x,在客戶端可以是Windows3.x、Windows NT、Windows9x,也可以採用其它廠商開發的系統如Unix、Apple Macintosh等。

微軟的SQL Server是一項完美的客戶/伺服器系統。SQL Server需要安裝在Windows NT的平台上,而Windows NT可以支持Intel 386,Power PC,MIPS,Alpha PC和RISC等平台,它使SQL Server具備足夠的威力和功能。

這里所有的文章所採用的資料庫應用程序都是基於SQL Server之上的,採用ODBC及標準的SQL查詢,可以非常簡單的移植到任何一個支持ODBC的資料庫之上,如:Oracle,Informix,Db2和Access,在閱讀有關ASP資料庫編程技術之前,要確認你至少熟悉一種資料庫管理系統,並可以使用標準的SQL查詢語言操作資料庫。

SQL Server提供伺服器端的軟體,這部分需要安裝在NT Server上,SQL Server的用戶端則可以安裝在許多用戶端PC系統中,Windows可以讓用戶端進行資料庫的建立,維護及存取等操作,SQL Server可以最多定義32767個資料庫,每個資料庫中,可以定義20億個表格,每個表格可以有250個欄位,每個表格的數據個數並沒有限制,每一個表格可以定義250個索引,其中有一個可以是Clustered索引。

SQL Server所使用的資料庫查詢語言稱為Transact-SQL,它是SQL Server的核心,Transact-SQL強化了原有的SQL關鍵字以進行數據的存取,儲存及處理等功能,Transact-SQL擴充了流程式控制制指定,可以使你方便的編寫功能強大的存儲過程,他們存放在伺服器端,並預先編譯過,執行速度非常塊,觸發是一種特殊的存儲過程,用來確保SQL Server資料庫引用的完整性,你可以建立插入,刪除和更新觸發以控制相關的表格中對數據列的插入,刪除和更新,你還可以使用規則(Rule),預設(default)以及限制(Constraints),來協助將新的數值套用到表格中去!

SQL SERVER的特點與評價

上手容易

話分兩頭,如果您的企業至今還未購置資料庫,其中一個主要的原因可能就是認為它不好上手,那麼,從SQLServer開始吧。畢竟,大多數的中小企業日常的數據應用是建立在Windows平台上的。由於SQLServer與Windows界面風格完全一致,且有許多"向導(Wizard)"幫助,因此易於安裝和學習,有關SQLServer的資料、培訓隨處可得,並且目前國內具有MCDBA認證的工程師不在少數。

從另一個角度來講,學習SQLServer是掌握其他平台及大型數據,如Oracle,Sybase,DB/2的基礎。因為這些大型資料庫對於設備、平台、人員知識的要求往往較高,而並不是每個人都具備這樣的條件,且有機會去接觸它們。但有了SQLServer的基礎,再去學習和使用它們就容易多了。IT行業的實踐經驗充分證明了這一點。

兼容性良好

由於今天Windows操作系統佔領著主導地的位,選擇SQLServer一定會在兼容性方面取得一些優勢。另外,SQLServer2000除了具有擴展性,可靠性以外,還具有可以迅速開發新的網際網路系統的功能。尤其是它可以直接存貯XML數據,可以將搜索結果以XML格式輸出等特點,有利於構建了異構系統的互操作性,奠定了面向互聯網的企業應用和服務的基石。這些特點在.NET戰略中發揮著重要的作用。

電子商務

在使用由MicrosoftSQLServer2000關系資料庫引擎的情況下,XML數據可在關系表中進行存儲,而查詢則能以XML格式將有關結果返回。此外,XML支持還簡化了後端系統集成,並實現了跨防火牆的無縫數據傳輸。你還可以使用HypertextTransferProtocol(超文本傳輸協議,HTTP)來訪問SQLServer2000,以實現面向SQLServer2000資料庫的安全Web連接和無須額外編程的聯機分析處理(OLAP)多維數據集。

數據倉庫

MicrosoftSQLServer2000非常明顯的改進就是增加了OLAP(聯機分析處理)功能,這可以讓很多中小企業用戶也可以使用數據倉庫的一些特性進行分析。OLAP可以通過多維存儲技術對大型、復雜數據集執行快速、高級的分析工作。數據挖掘功能能夠揭示出隱藏在大量數據中的傾向及趨勢,它允許組織或機構最大
限度的從數據中獲取價值。通過對現有數據進行有效分析,這一功能可以對未來的趨勢進行預測。

增強的在線商務

MicrosoftSQLServer2000簡化了管理、優化工作,並且增強了迅速、成功的部署在線商務應用程序所需的可靠性和伸縮性。其中,用以提高可靠性的特性包括日誌傳送、在線備份和故障切換群集。在伸縮性方面的改進包括對多達32顆CPU和64GBRAM的支持。通過自動優化和改進後的管理特性--諸如數據文件尺寸的自動管理、基於向導的資料庫拷貝、自動內存管理和簡化的故障切換群集安裝與管理,在線商務應用程序能夠被迅速部署並有效管理。

利於構築"敏捷性商務"

所謂"敏捷性商務"就是能夠打破內部和外部的商業界限,對迅速改變的環境做出快速反應。。微軟已經與關鍵的合作夥伴建立起了戰略關系,創造出了能夠與許多供應商的產品實現整合的解決方案,因而企業用戶並不需要做出"要麼完全接受,要麼全部不要"的承諾。在部署解決方案的過程中,企業用戶不一定要拆除原有的設備從頭。敏捷商務讓企業用戶能夠充分利用現有的系統,自主決定所需的硬體和軟體解決方案以及由誰來提供,伸縮自如、游刃有餘。

-------------------------------------
現在的資料庫:oracle 如日中天
sybase 情況不妙
sqlserver 馬馬忽忽

㈥ 查找CPU的發展過程

由無知到精通!詳解CPU里遇到的「黑話」

●CPU常規知識匯總

CPU又叫中央處理器,是英文單詞Central Processing Unit的縮寫,負責對信息和數據進行運算和處理,並實現本身運行過程的自動化。在早期的計算機當中,CPU被分成了運算器和控制器兩個部分,後來由於電路集成度的提高,在微處理器問世時,就將它們都集成在一個晶元中了。需要智能控制、大量信息處理的地方就會用到CPU。

CPU有通用CPU和嵌入式CPU,通用和嵌入式的分別,主要是根據應用模式的不同而劃分的。通用CPU晶元的功能一般比較強,能運行復雜的操作系統和大型應用軟體。嵌入式CPU在功能和性能上有很大的變化范圍。隨著集成度的提高,在嵌入式應用中,人們傾向於把CPU、存儲器和一些外圍電路集成到一個晶元上,構成所謂的系統晶元(簡稱為SOC),而把SOC上的那個CPU成為CPU芯核。

■CPU的流派

現在,指令系統的優化設計有兩個截然相反的方向。一個是增強指令的功能,設置一些功能復雜的指令,把一些原來有軟體實現的常用功能改用硬體的指令系統來實現,這種計算機成為復雜指令系統計算機。早期Intel的X86指令體系就是一種CISC指令結構。

RISC是Reced Instruction Set Computer的縮寫中文翻譯成精簡指令系統計算機,是八十年代發展起來的,盡量簡化指令功能,只保留那些功能簡單,能在一個節拍內執行完成的指令,較復雜的功能用一段子程序來實現,這種計算機系統成為精簡指令系統計算機。目前採用RISC體系結構的處理器的晶元廠商有SUN、SGI、IBM的Power PC系列、DEC公司的Alpha系列、Motorola公司的龍珠和Power PC等等。

■MIPS體系

MIPS是世界上很流行的一種RISC處理器。MIPS的意思是"無內部互鎖流水級的微處理器"(Microprocessor without interlocked piped stages),其機制是盡量利用軟體辦法避免流水線中的數據相關問題。他最早是在80年代初期由斯坦福(Stanford)大學Hennessy教授領導的研究小組研製出來的。MIPS公司的R系列就是在此基礎上開發的RISC工業產品的微處理器。這些系列產品以為很多打計算機公司採用構成各種工作站和計算機系統。
■指令系統

要講CPU,就必須先講一下指令系統。指令系統指的是一個CPU所能夠處理的全部指令的集合,是一個CPU的根本屬性。比如我們現在所用的CPU都是採用x86指令集的,他們都是同一類型的CPU,不管是PIII、Athlon或Joshua。我們也知道,世界上還有比PIII和Athlon快得多的CPU,比如Alpha,但它們不是用x86指令集,不能使用數量龐大的基於x86指令集的程序,如Windows98。之所以說指令系統是一個CPU的根本屬性,是因為指令系統決定了一個CPU能夠運行什麼樣的程序。

所有採用高級語言編出的程序,都需要翻譯(編譯或解釋)成為機器語言後才能運行,這些機器語言中所包含的就是一條條的指令。

1、指令的格式

一條指令一般包括兩個部分:操作碼和地址碼。操作碼其實就是指令序列號,用來告訴CPU需要執行的是那一條指令。地址碼則復雜一些,主要包括源操作數地址、目的地址和下一條指令的地址。在某些指令中,地址碼可以部分或全部省略,比如一條空指令就只有操作碼而沒有地址碼。

舉個例子吧,某個指令系統的指令長度為32位,操作碼長度為8位,地址長度也為8位,且第一條指令是加,第二條指令是減。當它收到一個「」的指令時,先取出它的前8位操作碼,即00000010,分析得出這是一個減法操作,有3個地址,分別是兩個源操作數地址和一個目的地址。於是,CPU就到內存地址00000100處取出被減數,到00000001處取出減數,送到ALU中進行減法運算,然後把結果送到00000110處。

這只是一個相當簡單化的例子,實際情況要復雜的多。

2、指令的分類與定址方式

一般說來,現在的指令系統有以下幾種類型的指令:

(1) 算術邏輯運算指令

算術邏輯運算指令包括加減乘除等算術運算指令,以及與或非異或等邏輯運算指令。現在的指令系統還加入了一些十進制運算指令以及字元串運算指令等。

(2) 浮點運算指令

用於對浮點數進行運算。浮點運算要大大復雜於整數運算,所以CPU中一般還會有專門負責浮點運算的浮點運算單元。現在的浮點指令中一般還加入了向量指令,用於直接對矩陣進行運算,對於現在的多媒體和3D處理很有用。

(3) 位操作指令

學過C的人應該都知道C語言中有一組位操作語句,相對應的,指令系統中也有一組位操作指令,如左移一位右移一位等。對於計算機內部以二進制不碼表示的數據來說,這種操作是非常簡單快捷的。

(4) 其他指令

上面三種都是運算型指令,除此之外還有許多非運算的其他指令。這些指令包括:數據傳送指令、堆棧操作指令、轉移類指令、輸入輸出指令和一些比較特殊的指令,如特權指令、多處理器控制指令和等待、停機、空操作等指令。

對於指令中的地址碼,也會有許多不同的定址(編址)方式,主要有直接定址,間接定址,寄存器定址,基址定址,變址定址等,某些復雜的指令系統會有幾十種甚至更多的定址方式。
3、 CISC與RISC

CISC,Complex Instruction Set Computer,復雜指令系統計算機。RISC,Reced Instruction Set Computer,精簡指令系統計算機。雖然這兩個名詞是針對計算機的,但下文我們仍然只對指令集進行研究。

(1) CISC的產生、發展和現狀

一開始,計算機的指令系統只有很少一些基本指令,而其他的復雜指令全靠軟體編譯時通過簡單指令的組合來實現。舉個最簡單的例子,一個a乘以b的操作就可以轉換為a個b相加來做,這樣就用不著乘法指令了。當然,最早的指令系統就已經有乘法指令了,這是為什麼呢?因為用硬體實現乘法比加法組合來得快得多。

由於那時的計算機部件相當昂貴,而且速度很慢,為了提高速度,越來越多的復雜指令被加入了指令系統中。但是,很快又有一個問題:一個指令系統的指令數是受指令操作碼的位數所限制的,如果操作碼為8位,那麼指令數最多為256條(2的8次方)。

那麼怎麼辦呢?指令的寬度是很難增加的,聰明的設計師們又想出了一種方案:操作碼擴展。前面說過,操作碼的後面跟的是地址碼,而有些指令是用不著地址碼或只用少量的地址碼的。那麼,就可以把操作碼擴展到這些位置。

舉個簡單的例子,如果一個指令系統的操作碼為2位,那麼可以有00、01、10、11四條不同的指令。現在把11作為保留,把操作碼擴展到4位,那麼就可以有00、01、10、1100、1101、1110、1111七條指令。其中1100、1101、1110、1111這四條指令的地址碼必須少兩位。

然後,為了達到操作碼擴展的先決條件:減少地址碼,設計師們又動足了腦筋,發明了各種各樣的定址方式,如基址定址、相對定址等,用以最大限度的壓縮地址碼長度,為操作碼留出空間。

就這樣,慢慢地,CISC指令系統就形成了,大量的復雜指令、可變的指令長度、多種的定址方式是CISC的特點,也是CISC的缺點:因為這些都大大增加了解碼的難度,而在現在的高速硬體發展下,復雜指令所帶來的速度提升早已不及在解碼上浪費點的時間。除了個人PC市場還在用x86指令集外,伺服器以及更大的系統都早已不用CISC了。x86仍然存在的唯一理由就是為了兼容大量的x86平台上的軟體。

(2) RISC的產生、發展和現狀

1975年,IBM的設計師John Cocke研究了當時的IBM370CISC系統,發現其中占總指令數僅20%的簡單指令卻在程序調用中佔了80%,而占指令數80%的復雜指令卻只有20%的機會用到。由此,他提出了RISC的概念。

事實證明,RISC是成功的。80年代末,各公司的RISC CPU如雨後春筍般大量出現,占據了大量的市場。到了90年代,x86的CPU如pentium和k5也開始使用先進的RISC核心。

RISC的最大特點是指令長度固定,指令格式種類少,定址方式種類少,大多數是簡單指令且都能在一個時鍾周期內完成,易於設計超標量與流水線,寄存器數量多,大量操作在寄存器之間進行。由於下文所講的CPU核心大部分是講RISC核心,所以這里就不多介紹了,對於RISC核心的設計下面會詳細談到。

RISC目前正如日中天,Intel的Itanium也將最終拋棄x86而轉向RISC結構
■CPU內核結構

好吧,下面來看看CPU。CPU內核主要分為兩部分:運算器和控制器。

一 運算器

1、算術邏輯運算單元ALU(Arithmetic and Logic Unit)

ALU主要完成對二進制數據的定點算術運算(加減乘除)、邏輯運算(與或非異或)以及移位操作。在某些CPU中還有專門用於處理移位操作的移位器。

通常ALU由兩個輸入端和一個輸出端。整數單元有時也稱為IEU(Integer Execution Unit)。我們通常所說的「CPU是XX位的」就是指ALU所能處理的數據的位數。

2、浮點運算單元FPU(Floating Point Unit)

FPU主要負責浮點運算和高精度整數運算。有些FPU還具有向量運算的功能,另外一些則有專門的向量處理單元。

3、通用寄存器組

通用寄存器組是一組最快的存儲器,用來保存參加運算的操作數和中間結果。

在通用寄存器的設計上,RISC與CISC有著很大的不同。CISC的寄存器通常很少,主要是受了當時硬體成本所限。比如x86指令集只有8個通用寄存器。所以,CISC的CPU執行是大多數時間是在訪問存儲器中的數據,而不是寄存器中的。這就拖慢了整個系統的速度。而RISC系統往往具有非常多的通用寄存器,並採用了重疊寄存器窗口和寄存器堆等技術使寄存器資源得到充分的利用。

對於x86指令集只支持8個通用寄存器的缺點,Intel和AMD的最新CPU都採用了一種叫做「寄存器重命名」的技術,這種技術使x86CPU的寄存器可以突破8個的限制,達到32個甚至更多。不過,相對於RISC來說,這種技術的寄存器操作要多出一個時鍾周期,用來對寄存器進行重命名。

4、專用寄存器

專用寄存器通常是一些狀態寄存器,不能通過程序改變,由CPU自己控制,表明某種狀態。

二 控制器

運算器只能完成運算,而控制器用於控制著整個CPU的工作。

1、指令控制器

指令控制器是控制器中相當重要的部分,它要完成取指令、分析指令等操作,然後交給執行單元(ALU或FPU)來執行,同時還要形成下一條指令的地址。

2、時序控制器

時序控制器的作用是為每條指令按時間順序提供控制信號。時序控制器包括時鍾發生器和倍頻定義單元,其中時鍾發生器由石英晶體振盪器發出非常穩定的脈沖信號,就是CPU的主頻;而倍頻定義單元則定義了CPU主頻是存儲器頻率(匯流排頻率)的幾倍。

3、匯流排控制器

匯流排控制器主要用於控制CPU的內外部匯流排,包括地址匯流排、數據匯流排、控制匯流排等等。

4、中斷控制器

中斷控制器用於控制各種各樣的中斷請求,並根據優先順序的高低對中斷請求進行排隊,逐個交給CPU處理。

三 CPU核心的設計

CPU的性能是由什麼決定的呢?單純的一個ALU速度在一個CPU中並不起決定性作用,因為ALU的速度都差不多。而一個CPU的性能表現的決定性因素就在於CPU內核的設計。

1、超標量(Superscalar)

既然無法大幅提高ALU的速度,有什麼替代的方法呢?並行處理的方法又一次產生了強大的作用。所謂的超標量CPU,就是只集成了多個ALU、多個FPU、多個解碼器和多條流水線的CPU,以並行處理的方式來提高性能。

超標量技術應該是很容易理解的,不過有一點需要注意,就是不要去管「超標量」之前的那個數字,比如「9路超標量」,不同的廠商對於這個數字有著不同的定義,更多的這只是一種商業上的宣傳手段。
2、流水線(Pipeline)

流水線是現代RISC核心的一個重要設計,它極大地提高了性能。

對於一條具體的指令執行過程,通常可以分為五個部分:取指令,指令解碼,取操作數,運算(ALU),寫結果。其中前三步一般由指令控制器完成,後兩步則由運算器完成。按照傳統的方式,所有指令順序執行,那麼先是指令控制器工作,完成第一條指令的前三步,然後運算器工作,完成後兩步,在指令控制器工作,完成第二條指令的前三步,在是運算器,完成第二條指令的後兩部……很明顯,當指令控制器工作是運算器基本上在休息,而當運算器在工作時指令控制器卻在休息,造成了相當大的資源浪費。解決方法很容易想到,當指令控制器完成了第一條指令的前三步後,直接開始第二條指令的操作,運算單元也是。這樣就形成了流水線系統,這是一條2級流水線。

如果是一個超標量系統,假設有三個指令控制單元和兩個運算單元,那麼就可以在完成了第一條指令的取址工作後直接開始第二條指令的取址,這時第一條指令在進行解碼,然後第三條指令取址,第二條指令解碼,第一條指令取操作數……這樣就是一個5級流水線。很顯然,5級流水線的平均理論速度是不用流水線的4倍。

流水線系統最大限度地利用了CPU資源,使每個部件在每個時鍾周期都工作,大大提高了效率。但是,流水線有兩個非常大的問題:相關和轉移。

在一個流水線系統中,如果第二條指令需要用到第一條指令的結果,這種情況叫做相關。以上面哪個5級流水線為例,當第二條指令需要取操作數時,第一條指令的運算還沒有完成,如果這時第二條指令就去取操作數,就會得到錯誤的結果。所以,這時整條流水線不得不停頓下來,等待第一條指令的完成。這是很討厭的問題,特別是對於比較長的流水線,比如20級,這種停頓通常要損失十幾個時鍾周期。目前解決這個問題的方法是亂序執行。亂序執行的原理是在兩條相關指令中插入不相關的指令,使整條流水線順暢。比如上面的例子中,開始執行第一條指令後直接開始執行第三條指令(假設第三條指令不相關),然後才開始執行第二條指令,這樣當第二條指令需要取操作數時第一條指令剛好完成,而且第三條指令也快要完成了,整條流水線不會停頓。當然,流水線的阻塞現象還是不能完全避免的,尤其是當相關指令非常多的時候。

另一個大問題是條件轉移。在上面的例子中,如果第一條指令是一個條件轉移指令,那麼系統就會不清楚下面應該執行那一條指令?這時就必須等第一條指令的判斷結果出來才能執行第二條指令。條件轉移所造成的流水線停頓甚至比相關還要嚴重的多。所以,現在採用分支預測技術來處理轉移問題。雖然我們的程序中充滿著分支,而且哪一條分支都是有可能的,但大多數情況下總是選擇某一分支。比如一個循環的末尾是一個分支,除了最後一次我們需要跳出循環外,其他的時候我們總是選擇繼續循環這條分支。根據這些原理,分支預測技術可以在沒有得到結果之前預測下一條指令是什麼,並執行它。現在的分支預測技術能夠達到90%以上的正確率,但是,一旦預測錯誤,CPU仍然不得不清理整條流水線並回到分支點。這將損失大量的時鍾周期。所以,進一步提高分支預測的准確率也是正在研究的一個課題。

越是長的流水線,相關和轉移兩大問題也越嚴重,所以,流水線並不是越長越好,超標量也不是越多越好,找到一個速度與效率的平衡點才是最重要的。
■CPU的外核

1、解碼器(Decode Unit)

這是x86CPU才有的東西,它的作用是把長度不定的x86指令轉換為長度固定的類似於RISC的指令,並交給RISC內核。解碼分為硬體解碼和微解碼,對於簡單的x86指令只要硬體解碼即可,速度較快,而遇到復雜的x86指令則需要進行微解碼,並把它分成若干條簡單指令,速度較慢且很復雜。好在這些復雜指令很少會用到。

Athlon也好,PIII也好,老式的CISC的x86指令集嚴重製約了他們的性能表現。

2、一級緩存和二級緩存(Cache)

以及緩存和二級緩存是為了緩解較快的CPU與較慢的存儲器之間的矛盾而產生的,以及緩存通常集成在CPU內核,而二級緩存則是以OnDie或OnBoard的方式以較快於存儲器的速度運行。對於一些大數據交換量的工作,CPU的Cache顯得尤為重要。
出自 http://it.crfly.com/simple/index.php?t53673_3.html