Page 74 - 6111
P. 74
Клас КС SIMD розділяють на дві підгрупи. У першу підгрупу
потрапляють численні суперкомп’ютери і інші машини, які
оперують векторами, виконуючи одну і ту ж операцію над кожним
елементом вектора. У другу підгрупу потрапляють машини типа
ILLIAC IV, в яких головний блок управління посилає команди
декільком незалежним АЛП.
Клас КС MIMD розділяють на мультипроцесори (машини з
пам’яттю сумісного використання) і мультикомп’ютери (машини з
передачею повідомлень). Існує три типи мультипроцесорів. Вони
відрізняються один від одного за способом реалізації пам’яті
сумісного використання. Вони називаються UMA (Uniform
Memory Access - архітектура з однорідним доступом до пам’яті),
NUMA (NonUniform Memory Access - архітектура з
неоднорідним доступом до пам’яті) і СОМА (Cache Only
Memory Access - архітектура з доступом тільки до кеш-пам’яті).
У машинах UMА кожен процесор має один і той же час
доступу до будь-якого модуля пам’яті (найшвидші звернення
сповільнюються, щоб відповідати найповільнішим). Це і означає
«однорідний». Така однорідність робить продуктивність
передбаченою, а цей чинник дуже важливий для написання
ефективної програми.
Мультипроцесор NUMA, навпаки, не володіє цією властивістю.
Зазвичай є такий модуль пам’яті, який розташований близько до
кожного процесора, і доступ до цього модуля пам’яті відбувається
набагато швидше, ніж до інших. З погляду продуктивності дуже
важливо, куди поміщаються програма і дані. Машини СОМА теж з
неоднорідним доступом, але з іншої причини.
У другу підкатегорію класу КС MIMD потрапляють
мультикомп’ютери, які на відміну від мультипроцесорів не мають
пам’яті сумісного використання на архітектурному рівні. Іншими
словами, операційна система в процесорі мультикомп’ютера не
може дістати доступ до пам’яті, що відноситься до іншого
процесора, просто шляхом виконання команди LOAD. Йому
доводиться відправляти повідомлення і чекати відповіді. Саме
здатність операційної системи прочитувати слово з віддаленого
73