SIMD

SIMD (Single Instructions Multiple Data stream). Jeden tok inštrukcií, viac tokov údajov. 

 

Táto architektúra má významné použitie pri tvorbe paralelných počítačov. Používa sa  hlavne pri tvorbe systémov ktoré vytvárajú maticové alebo vektorové operácie. Súčasne sa vykonáva operácia s viacerými údajovými štruktúrami rovnakého typu. Jeden program sa vykonáva zároveň s viacerými prúdmi údajov vo viacerých procesných elementoch v takzvaných pasívnych procesoch, ktoré dostanú inštrukciu z riadiacej jednotky a vykonajú ju.

 

 Takýto druh systémov dosahuje lepšie výsledky ako architektúra SISD pri riešení úloh uvedenej triedy. Do tejto kategórie procesorov patria maticové procesory, napr.: ICL DAP (Distributed Array Processor) a vektorové procesory, napr.: CRAY 1 & 2 a CYBER 205. SIMD počítače sú obzvlášť vhodné na riešenie úloh, ktoré majú pravidelnú štruktúru. TJ. rovnaká inštrukcia sa vykoná so skupinou dát.

 

Príklad: Spočítajme dve matice C = A + B. Nech A a B sú druhého rádu. Majme štyri procesory. Každý nech vykoná tú istú operáciu súčasne – spočítanie dvoch čísiel.C_{11} = A_{11} + B_{11}C_{12} = A_{12} + B_{12}C_{21} = A_{21} + B_{21}C_{22} = A_{22} + B_{22}.

TJ. počítaču so štruktúrou SIMD úloha trvá jeden takt a počítaču SISD štyri takty. Niekedy môžeme požadovať, aby len niektoré procesoru vykonali danú inštrukciu. Takáto informácia môže byť zakódovaná v samotnej inštrukcii a danému procesoru oznámi či má byť aktívny, resp. pasívny v danom okamžiku – čakať na príchod ďalšej inštrukcie.