Ⅰ pipeline 和flow-through結構是什麼
1)結構差別
二者在寫入過程中完全一樣,都是通過輸入寄存器緩沖數據,但在讀出過程中,流水線模式通過輸出寄存器緩沖數據而流通模式則沒有。
2)時序區別
pipeline方式加了一級觸發器緩沖,則輸出比flow-through慢了一個節拍。
這樣pipeline的輸出比flow-through慢,但是因為是在由時鍾同步輸出,因此數據建立時間比較穩定,在高頻時鍾下比較可靠
而flow-throgh可以與輸入地址同步輸出,這樣輸出雖然周期早,但是不穩定,適合低頻時鍾使用
Ⅱ 「流水線」英文怎說
flow line;
assembly line;
pipeline;
stream-lined line
流水線操作 pile line operation;
流水線控制 pipeline control;
流水線生產 flow-line proction; continuous line proction;
流水線系統 pipeline system;
Ⅲ cpu的流水線技術是什麼說的詳細點好嗎我很菜的
CPU的流水線
1.主頻
主頻也叫時鍾頻率,單位是MHz,用來表示CPU的運算速度。CPU的主頻=外頻×倍頻系數。很多人認為主頻就決定著CPU的運行速度,這不僅是個片面的,而且對於伺服器來講,這個認識也出現了偏差。至今,沒有一條確定的公式能夠實現主頻和實際的運算速度兩者之間的數值關系,即使是兩大處理器廠家Intel和AMD,在這點上也存在著很大的爭議,我們從Intel的產品的發展趨勢,可以看出Intel很注重加強自身主頻的發展。像其他的處理器廠家,有人曾經拿過一快1G的全美達來做比較,它的運行效率相當於2G的Intel處理器。
所以,CPU的主頻與CPU實際的運算能力是沒有直接關系的,主頻表示在CPU內數字脈沖信號震盪的速度。在Intel的處理器產品中,我們也可以看到這樣的例子:1 GHz Itanium晶元能夠表現得差不多跟2.66 GHz Xeon/Opteron一樣快,或是1.5 GHz Itanium 2大約跟4 GHz Xeon/Opteron一樣快。CPU的運算速度還要看CPU的流水線的各方面的性能指標。
當然,主頻和實際的運算速度是有關的,只能說主頻僅僅是CPU性能表現的一個方面,而不代表CPU的整體性能。
3.前端匯流排(FSB)頻率
前端匯流排(FSB)頻率(即匯流排頻率)是直接影響CPU與內存直接數據交換速度。有一條公式可以計算,即數據帶寬=(匯流排頻率×數據帶寬)/8,數據傳輸最大帶寬取決於所有同時傳輸的數據的寬度和傳輸頻率。比方,現在的支持64位的至強Nocona,前端匯流排是800MHz,按照公式,它的數據傳輸最大帶寬是6.4GB/秒。
6.緩存
緩存大小也是CPU的重要指標之一,而且緩存的結構和大小對CPU速度的影響非常大,CPU內緩存的運行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統內存和硬碟。實際工作時,CPU往往需要重復讀取同樣的數據塊,而緩存容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到內存或者硬碟上尋找,以此提高系統性能。但是由於CPU晶元面積和成本的因素來考慮,緩存都很小。
11.超流水線與超標量
在解釋超流水線與超標量前,先了解流水線(pipeline)。流水線是Intel首次在486晶元中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5—6步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鍾周期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分為四級流水,即指令預取、解碼、執行、寫回結果,浮點流水又分為八級流水。
超標量是通過內置多條流水線來同時執行多個處理器,其實質是以空間換取時間。而超流水線是通過細化流水、提高主頻,使得在一個機器周期內完成一個甚至多個操作,其實質是以時間換取空間。例如Pentium 4的流水線就長達20級。將流水線設計的步(級)越長,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。但是流水線過長也帶來了一定副作用,很可能會出現主頻較高的CPU實際運算速度較低的現象,Intel的奔騰4就出現了這種情況,雖然它的主頻可以高達1.4G以上,但其運算性能卻遠遠比不上AMD 1.2G的速龍甚至奔騰III。
12.封裝形式
CPU封裝是採用特定的材料將CPU晶元或CPU模塊固化在其中以防損壞的保護措施,一般必須在封裝後CPU才能交付用戶使用。CPU的封裝方式取決於CPU安裝形式和器件集成設計,從大的分類來看通常採用Socket插座進行安裝的CPU使用PGA(柵格陣列)方式封裝,而採用Slot x槽安裝的CPU則全部採用SEC(單邊接插盒)的形式封裝。現在還有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封裝技術。由於市場競爭日益激烈,目前CPU封裝技術的發展方向以節約成本為主。
好了,上面貼的一些都是和CPU的運行效率直接相關的參數,剩下的參數,有的太簡單,有的我們不常接觸到.沒有貼,
好,看一下流水線的來由,大家都知道,兩個CPU會比一個CPU快,但是為什麼呢,也不會出現,一個CPU,運行WORD,一個CPU,運行CS呀, 那是因為,把指令細分成線程後,他們可以分別運行,cyrix的MII,當時不是有個技術么,亂序運行!!就是提高運行效率的一個手段,流水線,也是這種目的,P4,的時候,就20級流水線了,就是說,CPU運行一次的時候,等於,20個CPU(沒有流水線),同時運行一樣,這本來是什麼呢,運行速度一下子,提高了20倍
但是,事實上並不是這樣,為什麼呢,這20個東東運行完了,得把他們再拼一起呀,還有一件事,如果拼錯了,(下面的工人裝不上,就認為是原料有問題)他就認為,這次的運行結果是錯的,說,"重來"吧. 那麼,有一個CPU,只有10級流水線,但是由於他們的管理很好,每次運行都不返工,所以,他們的生產效率反而更高!!!
AMD,和INTEL,現在正是這種情況,一個抓管理,管理上去了,下面的工人出錯的才少,(返工次數少)
一個抓技術,工人熟練了,生產的東西,質量才高!!(每次出來的東西多)
當然,又抓管理,又抓技術,兩手都要抓,兩手都要硬,這是中國人的想法,都抓的人,顯然什麼都沒抓好,都破產了,現在只有這兩家還存活著,......現在我想給流水線一個公正一點的說法, 如果你的CPU組裝的水平很差,那當然,流水線越多,你越亂,就像,你的水平不行, 管理了,10000多個程序員高手, 項目亂的一團糟, 但是,如果你是一個管理經驗豐富的人, 下面的人一下也不會做活, 那麼,項目也是一個失敗, 幸好,事實上,並不是這樣絕對,管理員也是差不多的水平, 程序員也是差不多的水平, 那麼你建一個項目, 你選好的程序員,還是好的管理員!!!
我說,不一定,我得看是什麼項目, 如果項目是一般的項目, 一般的管理員就可以了,那麼,我當然選好的程序員, 項目完成的又快又好, 一個程序,本身就可以亂序運行, 那麼,INTEL的CPU當然就是最好了, 反正,大家都不會返工!!!!! 但是一個項目是很復雜的, 而代碼量並不多, 那麼,當然是選好的管理員, 如果一個程序,就是針對測試而測試的, 導致,CPU運算不斷的返工, 那當然就是AMD的CPU好, 比如,大浮點數的運行,AMD,比INTEL的高50%現在看不到這種比較了, 但是,你可以查一查,以前的資料, 有PIII1G,與AMD速龍1G的比較, 這個差異到現在也沒有改變, 這就是為什麼AMD的CPU,顯卡得分,會比INTEL的高, 3Dmark2001的得分,一般都比INTEL的高, 而,business stone,INTEL 一般都比AMD要高, SYSMARK,也是,INTEL 比AMD要高, 因為這些程序不復雜,(線程復雜,和我們想的程序本身復雜是兩回事)
買CPU也是一樣, AMD,和INTEL誰好,????? 我也不知道,我喜歡AMD,但我目前確實使用的是INTEL, 家裡的兩台機子全是INTEL. 沒有AMD,INTEL不會這么便宜, 沒有AMD,中國的D版軟體..... 中國的組裝機.............但是,我要為流水線正一正名, 並不是流水線長了,運行效率就低了, 流水線長了,運行效率絕對是高了, 但是,運行出錯的代價是大了,流水線,這本身是一個提高效率的技術, 怎麼現在的人,都當成是,因為提高頻率,所必須採用的手段呢????? 當時沒有流水線的時候, 流水線一出來的時候, 大家都認為這是提高效率的秘密武器呀!!!
越是實際的程序,越容易發生流水線返工,因此P4效能越差。
倒是純粹的理論測試,比如sandra,pcmark還有3dmark之類P4表現不錯(老實說P4在3dmark裡面的表現相對於在bussiness winstone裡面算好的了),而到了實際測試,特別是bussiness winstone(直接調用office源代碼)或者sciencemark(直接編譯的標准量子化學代碼)裡面,p4的表現那叫一個菜。。。。連P4c都不是同PR的AthlonXP的對手。
至於sysmark裡面Intel的分高,那是一個著名的bug,因為sysmark認為AthlonXP不支持SSE,結果是AthlonXP用x87浮點對抗專門為SSE優化的多媒體代碼,自然性能不成(即使這樣Intel也沒有多少優勢)
在bussiness winstone 2002的測試結果,看看就會發現,P4 3.2c的性能剛剛可以匹敵公認為虛標最嚴重的AthlonXp 3200+。 當然,多媒體性能上P4 3.2c還是毫無疑問的戰勝AXP 3200+,畢竟,AXP不支持SSE2。
即使沒有流水線返工,長流水線的性能也就和短流水線相同,因為每條流水線每周期就只能執行一條指令(p4有個怪異的設計就是如果跑配對的兩個簡單微指令,那麼兩個可以並成一個執行,所以如果你反復執行完全相同的指令比如a=a+1一百億次,那麼P4比AthlonXP要快一倍),所以長流水在任何角度也不可能提升效率。
長流水的唯一好處就是,電路比較簡單,設計起來比較容易.解釋的詳細一點就是,並不是說20級流水線每次執行的動作比10級流水線多一倍,相反,他們能執行的實際功能是一樣的,只是每級執行的操作簡單了一些。
比如,一個工廠造螺絲,可以分成兩級流水,一個人造螺絲,一個人車螺紋。也可以分成100個步驟,第一個人負責拿鐵塊,第二個人負責遞,第三個人負責往上畫線。。。。第99個人車單數螺紋,第100個人負責擦掉粉塵。
如果每個步驟耗費的時間都一樣,那麼兩種做法速度完全一樣,唯一的區別是,前面的辦法工人素質必須很高,因為他每個人幹了對方50個人的活
看看吧,多少能了解點
http://rediceberg.bokee.com/viewdiary.11290690.html
Ⅳ CPU中的流水線結構是什麼意思
在解釋超流水線與超標量前,先了解流水線(pipeline)。流水線是Intel首次在486晶元中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5—6步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鍾周期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分為四級流水,即指令預取、解碼、執行、寫回結果,浮點流水又分為八級流水。
超標量是通過內置多條流水線來同時執行多個處理器,其實質是以空間換取時間。而超流水線是通過細化流水、提高主頻,使得在一個機器周期內完成一個甚至多個操作,其實質是以時間換取空間。例如Pentium 4的流水線就長達20級。將流水線設計的步(級)越長,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。但是流水線過長也帶來了一定副作用,很可能會出現主頻較高的CPU實際運算速度較低的現象,Intel的奔騰4就出現了這種情況,雖然它的主頻可以高達1.4G以上,但其運算性能卻遠遠比不上AMD 1.2G的速龍甚至奔騰III
Ⅳ 如何用Jenkins/Hudson創建真正的pipeline
第一步,我們先創建一個最簡單的pipeline。所謂pipeline,顧名思義,就是一個流水線,由多個步驟(steps)組成。每走完一步,就來到下一步。用Build Pipeline Plugin就可以很方便地實現。
UnitTest是我們的初始任務。UnitTest結束之後,自動觸發AC Test。如果通過了AC Test,團隊可以有選擇地部署到任意測試環境。
在配置這個插件時,最重要的就是選擇Initial Job。然後,在每一個step(job)中選擇downstream step。可以是自動觸發(Build Other Projects),也可以選擇手動觸發(Manually Execute Downstream Project)。
第二步
第一步中我們實現了一個流水線,但這個只是看上去的流水線而已。在工廠的流水線中,歷經流水線上游到下游的,應該是同一個產品。但上例中顯然不是,Unit Test和Acceptance Test所運行的可能是不同版本的代碼。
要讓幾個step的代碼運行在同一個版本,可以使用一個叫做Parameterized Trigger Plugin。
選擇把Subversion revision傳到下面的steps,則接下來的Steps都會checkout同一個版本的代碼。但這個也有限制,就是這些Steps必須有相同的subversion URL配置。
另外,你應該還注意到我們還傳了另一個參數:PL_BUILD_NUMBER。這個參數會另有用途。
除了希望保持相同版本,我們很可能希望重用upstream step生成的artifact。比如,在AC Test step會生成一些artifacts,這些artifacts經過測試之後,希望可以用於Deploy步驟。一方面,這會節省重新構建artifact的時間;另一方面,這些artifact是已經經過測試的,是可用的,而重新構建生成的卻是未經測試的,可用與否未知。(雖然他們應該是一樣的,但誰知道呢。。)我們可以使用ArtifactDepolyerPlugin實現。
第三步
在上例中,Unit Test和Acceptance Test雖然運行在同一個版本的代碼之上,但它們並不真正工作在同一份代碼中,而且它們之間沒有復用任何東西。比如,Unit Test已經compile過代碼,但在AC Test步驟中還是要Compile。如果我們希望幾個step工作在同一份代碼之上,而且後面的step可以享用前面step的成果,可以使用Clone Workspace SCM plugin:
在upstream step中,比如Unit Test,把整個workspace打包。在downstream step中,比如Acceptance Test中,clone workspace,如下圖:
在上圖配置中指定parent project: Unit Test。如果我們使用了Clone Workspace,那麼就沒必要在steps之間傳遞Subversion revision了。
第四步
通過前三步,我們已經實現了一個實際意義上的pipeline。但還可以做一些增強。
首先,我們可以使用統一的build number來指定一個pipeline上的所有step。需要用到Build Name Setter Plugin (以及它所依賴的Token Marco Plugin)來為所有steps指定相同的名字
另外,我們還可以加一個check來檢查是否這些steps都運行在同一個workspace,這里需要用到Conditional BuildStep Plugin。可以使用的方法有多種,比如在upstream step中在workspace里生成一個跟此次build相關的特定名稱的文件,然後在downstream step中使用這個plugin來檢查這個文件是否存在,這樣就可保證所有steps運行在同一份代碼中了。