複製鏈接
請複製以下鏈接發送給好友

多指令流多數據流

鎖定
多指令流多數據流MIMD是用於實現並行性的技術。MIMD計算機具有多個異步和獨立工作的處理器。在任何時鐘週期內,不同的處理器可以在不同的數據片段上執行不同的指令,也即是同時執行多個指令流,而這些指令流分別對不同數據流進行操作。MIMD架構可以用於諸如計算機輔助設計、計算機輔助製造、仿真、建模、通信交換機的多個應用領域。 MIMD機器可以是共享存儲器或分佈式存儲器類別。共享存儲器機器包括UMA、NUMA、COMA等。分佈式存儲器機器包括NORAM等。
中文名
多指令流多數據流
外文名
Multipe Instructions Stream Multiple Data Stream
簡    稱
MIMD
含    義
實現空間上的並行性的技術
應用學科
計算機
適用領域
計算機、互聯網、人工智能

多指令流多數據流定義

多指令流多數據流(Multipe Instructions Stream Multiple Data Stream,MIMD),是Michael J. Flynn提出的根據指令流、數據流的多倍性特徵對計算系統進行分類的方法(通常稱為Flynn分類法)。 [1] 
MIMD是使用多個控制器來異步地控制多個處理器,能實現作業、任務、指令、數組各級全面並行的多機系統。多處理機屬於MIMD。當前的高性能服務器與超級計算機大多具有多個處理機,能進行多任務處理,稱多處理機系統 [2] 
並行計算機系統絕大部分為MIMD系統,包括並行向量處理機(PVP,Parallel Vector Processor),對稱對多處理機(SMP,Symmetrical Multi Processor),規模並行處理機(MPP,Massively Parallel Processor),工作站機羣(COW,Cluster Of Workstations),分佈式共享存儲系統(DSM,Distributed shared Memory)。 [1] 

多指令流多數據流計算機系統分類

Michael J. Flynn提出按指令流和數據流的多倍性對計算系統分類(通常稱為Flynn分類法)。
指令流:機器執行的指令序列。
數據流:由指令流調用的數據序列,包括輸入數據和中間結果。
多倍性:在系統性能瓶頸部件上處於同一執行階段的指令或數據的最大可能個數。 [2] 
Flynn分類法 [2] 

單指令流
多指令流
單數據流
單指令單數據流(SISD)
多指令流單數據流(MISD)
多數據流
單指令流多數據流(SIMD)
多指令流多數據流(MIMD)
(1)單指令單數據流(Single Instruction Stream Single Data Stream,SISD)
SISD其實就是傳統的順序執行的單處理器計算機,其指令部件每次只對一條指令進行譯碼,並只對一個操作部件分配數據。流水線方式的單處理機有時也被當作SISD。 [2] 
SISD機器是一種傳統的串行計算機,它的硬件不支持任何形式的並行計算,所有的指令都是串行執行。並且在某個時鐘週期內,CPU只能處理一個數據流。因此這種機器被稱作單指令流單數據流機器。早期的計算機都是SISD機器,如馮諾.依曼架構,如IBM PC機,早期的巨型機和許多8位的家用機等。 [3] 
(2)單指令流多數據流(Single Instruction Stream Multiple Data Stream,SIMD)
SIMD是採用一個指令流處理多個數據流。
SIMD以並行處理機(陣列處理機)為代表,並行處理機包括多個重複的處理單元PU1~PUn,由單一指令部件控制,按照同一指令流的要求為它們分配各自所需的不同數據。這類機器在數字信號處理、圖像處理、以及多媒體信息處理等領域非常有效。 [2] 
Intel處理器實現的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3擴展指令集,都能在單個時鐘週期內處理多個數據單元。也就是説我們用的單核計算機基本上都屬於SIMD機器。 [3] 
(3)多指令流單數據流(Multiple Instruction Stream Single Data Stream,MISD)
MISD具有n個處理單元,按n條不同指令的要求對同一數據流及其中間結果進行不同的處理。一個處理單元的輸出又將作為另一個處理單元的輸入。 [2] 
MISD是採用多個指令流來處理單個數據流。由於實際情況中,採用多指令流處理多數據流才是更有效的方法,因此MISD只是作為理論模型出現,沒有投入到實際應用之中。 [3] 
(4)多指令流多數據流(Multiple Instruction Stream MultipleData Stream,MIMD)
MIMD系統是指能實現作業、任務、指令、數組各級全面並行的多機系統。 [2] 
MIMD機器可以同時執行多個指令流,這些指令流分別對不同數據流進行操作。最新的多核計算平台就屬於MIMD的範疇,例如Intel和AMD的雙核處理器等都屬於MIMD。 [3] 

多指令流多數據流按Flynn分類法對計算機分類舉例

按Flynn分類法對計算機分類舉例 [2] 
類型
計算機的型號
SISD
單功能部件
IBM701,IBM401,IBM1620,IBM7090,PDP-11,VAX-11/780
多功能部件
IBM360/91,IBM370/168UP,CDC6600
SIMD
數據全並行
PEPE,BSP,CDCSTAR-100,TI-ASC,FPS AP-120B,FPS-164,IBM3838,CRAY-1,
VP-200,CYBER205,B-5000,CDC-NASF
數據位片串字並
STARAN,MPP,DAP
MIMD
松耦合
IBM370/168MP,UNIVAC1100/80,IBM3081/308
緊耦合
Burroughs D-825,C.mmp,CRAY-2,S-1,CRAY-XMP,DenelcorHEP

多指令流多數據流五種MIMD計算和結構特徵比較

MIMD計算機包括:並行向量處理機(PVP)、對稱對多處理機(SMP)、大規模並行處理機(MPP)、工作機羣(COW)、分佈式共享存儲系統(DSM)。 [4] 
MIMD計算機體系結構合一的結構模型 20 世紀 90 年代以後,上述各種並行計算機的體系結構呈現漸趨一致的趨勢。促使體系結構漸 趨一致而最終合一的主要因素是:所有體系結構 都要求快速的高質量的互連網絡;都希望儘量避 免或降低延遲;都希望能儘量隱藏通信代價;都必須支持不同的同步形式。
五種MIMD計算和結構特徵比較 [5] 
屬性
PVP
SMP
MPP
DSM
COW
結構類型
MIMD
MIMD
MIMD
MIMD
MIMD
處理器類型
專用定製
商用
商用
商用
商用
互連網絡
定製交叉開關
總線、交叉開關
定製網絡
定製網絡
商用網絡(以太網、ATM)
通信機制
共享變量
共享變量
消息傳遞
共享變量
消息傳遞
地址空間
單地址空間
單地址空間
多地址空間
單地址空間
多地址空間
系統存儲器
集中共享
集中共享
分佈非共享
分佈共享
分佈非共享
訪存模型
UMA
UMA
NORMA
NUMA
NORMA
代表機器
Cray C-90,
Cray T-90,
NEC SX4,
銀河1號
SGI Power Challenge,
DEC Alpha
服務器8400,
曙光1號
Intel Paragon,
IBM SP2,
Intel TFLOPS,曙光-1000/2000
Stanford DASH,Cray T 3D
Berkeley NOW,Alpha Farm,
Digital Trucluster

多指令流多數據流共享式存儲器模型

處理器都通過軟件或硬件裝置連接到“全局可用”存儲器。操作系統通常保持其內存一致性。從程序員的角度來看,這種存儲器模型比分佈式存儲器模型更好理解。而且,存儲器一致性由操作系統管理而不是靠寫入程序管理。當然共享存儲模型也右明顯的缺點:當處理器數量超過三十二個時,處理起來非常困難;共享存儲器模型不如分佈式存儲器模型靈活。
UMA(均勻存儲訪問),COMA(全高速緩存存儲訪問)和NUMA(非均勻存儲訪問)都屬於共享存儲器(多處理機)。

多指令流多數據流UMA多處理機模型

UMA多處理機模型 UMA多處理機模型
UMA模型的特點: [5] 
物理存儲器(SM1~SMm)被所有處理器均勻共享。所謂均勻共享是指:所有處理器訪問任 何存儲器所需的時間都相同。
② 每個處理器可帶有私有高速緩存。
③ 外圍設備以一定的形式被共享。

多指令流多數據流NUMA多處理機模型

NUMA模型的特點: [5] 
① 被共享的存儲器在物理上是分佈在所有的處理器中,所有的本地存儲器(LM1~LMn)的集合組成全局地址空間。
② 處理器訪問存儲器所需的時間不相等,訪問本地存儲器LM或通過羣內互連網絡( Cluster Interconnection Network,CIN)訪問羣內共享存儲器 ( Cluster Shared Memory,CSM)費時較少,訪問非本地存儲器或通過全局互連網絡 ( Global Interconnection Network,GIN)訪問全局共享存儲器 (Global Shared Memory,GSM)費時較多,即所謂非均勻存儲訪問。
③ 每個處理器可帶有私有高速緩存,外設也可以以某種形式共享。

多指令流多數據流COMA多處理機模型

COMA多處理機模型 COMA多處理機模型
COMA模型的特點: [5] 
① 各處理器結點中沒有存儲層次結構,全部高速緩存組成全局地址空間。
② 利用分佈的高速緩存目錄D對遠程高速緩 存進行訪問。
③ COMA中的高速緩存容量一般都大於二級高速緩存容量。
④ 開始使用COMA時,數據可以任意分配到 高速緩存C中,在運行過程中,數據將被遷移到 使用該數據的處理器結點的高速緩存中。

多指令流多數據流分佈式存儲器模型

在分佈式存儲器中,每個處理器具有其自己的單獨存儲器地址。對於要共享的數據,它必須作為消息從一個處理器傳遞到另一個處理器。例如NORMA就屬於分佈式存儲器。
NORMA分佈式存儲器模型 NORMA分佈式存儲器模型
在一個分佈存儲的多處理機系統中,如果所有的存儲 器都是私有的,僅能由本地處理器訪問,就稱為非遠程儲訪問(NO-Remote Memory Access,NORMA)。 [5] 
NORMA模型的特點:
① 每個結點都是由處理器( P)、本地存儲 器( M)和(或) I/O 設備組成的自治計算機。多個結點由基於消息傳遞的互連網絡互連。
② 所有的存儲器都是私有的。
③ 絕大多數 NORMA 都不支持遠程存儲器的。
參考資料