簡介
計算機指令就是指揮機器工作的指示和命令,程式就是一系列按一定順序排列的指令,執行程式的過程就是計算機的工作過程。一台計算機通常有幾十條到幾百條指令,根據指令完成的主要功能而對指令所進行的分類可分為:算術邏輯運算指令、 移位指令、 浮點運算指令、 十進制運算指令、 數據傳送指令和多處理機指令等等。多處理機指令是指對公共資源(如共享記憶體)進行管理和用於多處理機之間相互通信的指令,如數據交換指令。這些指令執行過程不允許發生中斷,主要是為了防止指令執行時,共享數據區中的數據被修改。數據交換是指為了滿足不同處理機之間數據資源的共享需要,依據一定的原則,採取相應的技術,實現不同處理機之間數據資源共享的過程。數據交換指令的功能是實現兩個運算元據之間的位置互換,這兩個運算元可以是兩個暫存器運算元,或一個暫存器運算元與一個存儲器運算元,或兩個存儲器運算元,在多處理機中,也可以是一個暫存器運算元和一個共享存儲器運算元。數據交換指令實現了數據的雙向傳送。
多處理機
多個處理機及存儲器模組構成的並行處理機被稱為多處理機 。在作業系統控制下,通過共主存或I/O系統或高速通信網路進行通信。產生多處理機的主要原因是:利用多台處理機進行多任務處理,協同解題以提高對複雜問題的求解速度;利用依靠處理機冗餘提高系統可靠性、適用性和可用性。多處理機屬於多指令流、多數據流系統,實現作業、任務之間的並行。因此要求多個處理機用多個指令部件分別控制,利用機間互連網路通信。充分挖掘算法的並行性,更多地依靠軟體手段實現有效的資源分配和管理,如任務分配、處理機調度、進程同步和通信等。多處理機實現作業、任務、程式段的並行。結構靈活,可以適應多種算法。多處理機並行性存在於指令外部,實現任務間的並行。程式並行性識別較難,需利用算法、程式設計語言、編譯程式、作業系統、指令、硬體實現。多處理機需有專門的指令或語句指明程式中各程式段的並發關係,可控制程式段的並發執行。多處理機實現指令、任務、作業級的並行,不同處理機實行不同指令,工作進程不需要保持一致。
共享記憶體
共享記憶體指在多處理器的計算機系統中,可以被不同中央處理器訪問的大容量記憶體。由於多個CPU需要快速訪問存儲器,這樣就要對存儲器進行快取。由於其他處理器可能也要存取,任一快取數據更新後,共享記憶體就需要立即更新,否則不同處理器可能用到不同的數據。
分布共享存儲器。在松耦合多處理機中,為了減少存儲器訪問衝突,存儲器被分割成多個模組,每個模組直接與單個處理機相連。這時的存儲器模組稱為本地存儲器。當一個處理機訪問自己的本地存儲器時,不必通過網際網路,直接訪問即可。這時所有存儲器模組仍像緊耦合多處理機一樣,採用統一的線性編址,被所有處理機共享,一個處理機除了可以訪問本地存儲器模組(本地存儲器訪問)之外,還可以通過網際網路訪問其它處理機的存儲器模組(遠程存儲器訪問),但訪問時間比起本地存儲器的訪問時間要長。
集中共享存儲器。在緊耦合多處理機中,一個中央存儲器系統為每個處理機提供相同的訪問機制(訪問時間相同),中央存儲器通常被稱為主存儲器、共享存儲器、全局存儲器,或集中共享存儲器。中央存儲器系統可以是一個大容量的存儲器模組,也可以是多個存儲器模組。後者可以由多個處理機並行訪問,從而減少存儲器訪問衝突,提高存儲器的訪問頻寬。存儲器訪問衝突是指多個處理機同時訪問同一個存儲器模組,導致處理機的存儲器訪問時間變長。