晶元上的資料流

2022-08-19 08:45:09 字數 1899 閱讀 5997

人們對於高效能低成本資料處理的追求是無止境的!

伴隨大規模積體電路的快速發展,從第一塊微處理器晶元

1971

年在intel

誕生到今天,微處理器已經歷了

35年的發展。在這

35年中,微處理器晶元上的電晶體數量增加了

4個數量級,效能增加了

5個數量級

。其發展同著名的摩爾(

moore

)定律十分吻合,即在單個晶元上的器件整合度將以每

18個月到

24個月的速度翻一番。即便如此,為了滿足計算機與其它相關應用科學等學科發展的需求,微處理器體系結構仍處於不斷的變革中。

按照功能分類,微處理器總體可分為專用和通用兩大類。通用微處理器的設計目標是使處理器能夠高效執行指令序列。現代通用處理器,如

intel

的i486

和pentium

通用處理器,經歷了序列、流水線、超流水線到超標量的發展過程。專用的處理器針對不同的應用領域體系結構有很大不同,如數字訊號處理器(

dsp)和圖形處理器(gpu

)。實際中的專用和通用並無嚴格的界限,處理器的設計完全取決與應用的需求。

1997

年,intel

在其通用處理器

p6核心中加入了

mmx指令集執行單元

,針對**應用提供了單指令多資料

(simd)

的並行操作。另一方面,

2002

年,nvidia

在其nv30

圖形處理器中引入可程式設計流處理器(

programmable stream processor

)的概念,使得圖形處理器具有一般意義的資料流平行計算能力。

圖-1資料流並行處理模型

流處理的概念由實時的多**應用發展而來,該計算模型如圖-

1。資料流從輸入端進入處理器。在處理器內部,資料來源分配給不同的處理器單元執行一段稱為計算核或演算法核(

kernel

)的處理**。處理完成後的輸出資料,交給下一級處理單元執行另一段計算核,

直到輸出。資料流處理的並行,主要表現在以下

3個層次上:1)

指令級的並行。指令級的並行可以看作是向量操作,比如圖形學中的座標平移,點的位置由乙個

4元向量(

x, y, z, w

)確定,對其位移操作是對這

4個元素同時加上位移分量。

2)資料級的並行。資料級的並行是

simd

的並行,資料流可同時分配給幾個處理器執行相同的計算核。每個資料的計算不依賴其它資料的計算結果。

3)任務級的並行。任務級的並行是指不同計算核的並行執行,既可以是空間上的並行,針對不同的資料流執行不同的任務即多指令多資料

mimd

處理;也可以是時間上的並行,如圖形處理器中的硬體圖形管線。

由於**資料處理要求實時與便攜,資料流並行處理是借助現代微處理器技術實現在單片晶元上,而不同與由多處理器和區域網路組成的高效能並行處理機。典型的流處理器有史丹福大學的

imagine

,和merrimac。

具有流處理器並行概念的處理器還有麻省理工的

raw和

ibm的

cell

處理器,clearspeed的csx600 實際上也可以認為是一類流處理器。和當前在個人

pc上廣泛使用的通用處理器比較,以上的處理器大大加強了片上資料流並行處理能力。這些通用處理器中有的剛剛開始商業應用,有的處於研究發展階段。雖然片上資料流並行處理是優秀的微體系結構設計理念,但是能否在具體實際應用領域得到認可和推廣,目前還不得而知。

值得關注的是,自從資料流並行處理的概念被現代圖形處理器設計所採用,商用的圖形處理器就實現了從固定圖形管線向可程式設計圖形管線過渡,不僅為圖形領域的應用提供強大而靈活的處理能力,同時也使得在圖形處理器上實現資料流平行計算成為可能。

TCP互動資料流 成塊資料流

tcp資料流分類 基於tcp的各類解決方案,可以根據資料吞吐量來大致分成兩大類 1 互動資料型別,例如telnet,ssh,這種型別的協議在大多數情況下只是做小流量的資料交換,比如說按一下鍵盤,回顯一些文字等等。2 資料成塊型別,例如ftp,這種型別的協議要求tcp能盡量的運載資料,把資料的吞吐量做...

C 的資料流

1 stringstream std stringstream png file png file qq 此時是把qq賦值給png file,png file.str 就是qq 即 std cout png file.str 輸出是qq 2 ofstream ofstream outfile out...

HDFS的資料流

1.客戶端通過distributed filesystem模組向namenode請求上傳檔案,namnode檢查目標未見是否已經存在,父目錄是否存在.2.namenode返回是否可以上傳 3.客戶端請求第乙個block上傳送到那幾個datanode伺服器上 4.namenode返回三個datanod...