多核CPU硬件架構介紹


轉自:http://book.51cto.com/art/201004/197196.htm

SISD、MIMD、SIMD、MISD計算機的體系結構

1. 計算平台介紹

Flynn於1972年提出了計算平台的Flynn分類法,主要根據指令流和數據流來分類,共分為四種類型的計算平台,如下圖所示:

 

單指令流單數據流機器(SISD)

SISD機器是一種傳統的串行計算機,它的硬件不支持任何形式的並行計算,所有的指令都是串行執行。並且在某個時鍾周期內,CPU只能處理一個數據流。因此這種機器被稱作單指令流單數據流機器。早期的計算機都是SISD機器,如馮諾.依曼架構,如IBM PC機,早期的巨型機和許多8位的家用機等。

單指令流多數據流機器(SIMD)

SIMD是采用一個指令流處理多個數據流。這類機器在數字信號處理、圖像處理、以及多媒體信息處理等領域非常有效。

Intel處理器實現的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3擴展指令集,都能在單個時鍾周期內處理多個數據單元。也就是說我們現在用的單核計算機基本上都屬於SIMD機器。

多指令流單數據流機器(MISD)

MISD是采用多個指令流來處理單個數據流。由於實際情況中,采用多指令流處理多數據流才是更有效的方法,因此MISD只是作為理論模型出現,沒有投入到實際應用之中。

多指令流多數據流機器(MIMD)

MIMD機器可以同時執行多個指令流,這些指令流分別對不同數據流進行操作。最新的多核計算平台就屬於MIMD的范疇,例如Intel和AMD的雙核處理器等都屬於MIMD。

本書所講述的主要內容就是圍繞多核計算平台而來的,下面就來介紹一下多核的硬件結構。

2. 多核CPU硬件結構

多核CPU是將多個CPU核集成到單個芯片中,每個CPU核都是一個單獨的處理器。每個CPU核可以有自己單獨的Cache,也可以多個CPU核共享同一Cache。下圖便是一個不共享Cache的雙核CPU體系結構。

 

在現代的多核硬件結構中,內存對多個CPU核是共享的,CPU核一般都是對稱的,因此多核屬於共享存儲的對稱多處理器(Symmetric Multi-processor,SMP)。

在多核硬件結構中,如果要充分發揮硬件的性能,必須要采用多線程(或多進程)執行,使得每個CPU核在同一時刻都有線程在執行。

和單核上的多線程不同,多核上的多個線程是在物理上並行執行的,是一種真正意義上的並行執行,在同一時刻有多個線程在並行執行。而單核上的多線程是一種多線程交錯執行,實際上在同一時刻只有一個線程在執行。

3. 多核編程模型

前面談到過多核屬於共享存儲的SMP,但實際上SMP系統出現在多核之前,服務器硬件中就廣泛采用多個CPU構成的SMP系統,如雙CPU、四CPU的服務器很早就出現了。多核CPU系統中的編程和多CPU的SMP系統的編程模型是一致的,都屬於共享存儲的編程模型,在本書中把它叫做多核編程,實際上並不限於在多核CPU系統中的編程,而是可以應用於共享存儲的SMP系統中的編程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM