Мультипроцесори складно будувати, але легко програмувати. Мультикомпьютеры легко будувати, але складно програмувати.
Тому стали робитися спроби створення гібридних систем, які відносно легко конструювати і відносно легко програмувати. Це привело до усвідомлення того, що сумісну пам'ять можна реалізовувати по-різному, і в кожному випадку будуть якісь переваги і недоліки.
Практично всі дослідження в області архітектури з паралельною обробкою направлені на створення гібридних форм, які поєднують в собі переваги обох архітектур. Тут важливо отримати таку систему, яка продовжуватиме справно працювати при додаванні все нових і нових процесорів.
9.3 Багаторівнева організація загальної пам'яті
Сучасні комп'ютерні системи не монолітні, а складаються з ряду рівнів. Це дає можливість реалізувати загальну пам'ять на будь-якому з декількох рівнів:
- загальна пам'ять реалізована на апаратному забезпеченні(одна копія операційної системи з однією таблицею розподілу пам'яті. Для ОС пам'ять монолітна);
- загальна пам'ять реалізована на основі ОС і апаратного забезпечення (такий підхід називається DSM (Distributed Shared Memory - розподілена спільно використовувана пам'ять).Кожна машина містить свою власну віртуальну пам'ять і власні таблиці сторінок. По суті, операційна система просто викликає бракуючі сторінки не з диска, а з пам'яті. Але у користувача створюється враження, що машина містить загальну розділену пам'ять);
- реалізація загальної розділеної пам'яті на рівні програмного забезпечення (при такому підході абстракцію розділеної пам'яті створює мова програмування, і ця абстракція реалізується компілятором).
9.4 Пам'ять з чергуванням адрес
Фізично пам'ять комп’ютерної системи складається з декількох модулів (банків), при цьому істотним питанням є те, як в цьому випадку розподілений адресний простір (набір всіх адрес, які може сформувати процесор). Один із способів розподілу віртуальних адрес по модулях пам'яті полягає в розбитті адресного простору на послідовні блоки. Якщо пам'ять складається з n банків, то комірка з адресою i при поблочному розбитті знаходитиметься в банку з номером i/n. У системі пам'яті з чергуванням адрес (interleaved memory) послідовні адреси розташовуються в різних банках: комірка з адресою i знаходиться в банку з номером i mod n. Нехай, наприклад, пам'ять складається з чотирьох банків, по 256 байт в кожному. У схемі, орієнтованій на блокову адресацію, першому банку будуть виділені віртуальні адреси 0-255, другому - 256-511 і т.д. В схемі з чергуванням адрес послідовні комірки в першому банку матимуть віртуальні адреси 0, 4, 8, а у другому банку - 1, 5, 9 і т.д.
Розподіл адресного простору по модулях дає можливість одночасної обробки запитів на доступ до пам'яті, якщо відповідні адреси відносяться до різних банків. Процесор може в одному з циклів зажадати доступ до комірки i, а в наступному циклі - до комірки j. Якщо i і j знаходяться в різних банках, інформація буде передана в послідовних циклах. Тут під циклом розуміємо цикл процесора, тоді як повний цикл пам'яті займає декілька циклів процесора. Таким чином, в даному випадку процесор не повинен чекати, поки буде завершений повний цикл звернення до комірки i. Розглянутий прийом дозволяє підвищити пропускну спроможність: якщо система пам'яті складається з достатнього числа банків, є можливість обміну інформацією між процесором і пам'яттю з швидкістю одне слово за цикл процесора, незалежно від тривалості циклу пам'яті.
Рішення про те, який варіант розподілу адрес вибрати (поблочний або з розшаруванням), залежить від очікуваного порядку доступу до інформації. Програми компілюються так, що послідовні команди розташовуються в комірках з послідовними адресами, тому висока вірогідність, що після команди, витягнутої з комірки з адресою i, виконуватиметься команда з комірки i +1. Елементи векторів компілятор також поміщає в послідовні комірки, тому в операціях з векторами можна використовувати переваги методу чергування (рис.9.3). З цієї причини у векторних процесорах зазвичай застосовується який-небудь варіант чергування адрес. У мультипроцесорах із спільно використовуваною пам'яттю, проте, використовується поблочна адресація, оскільки схеми звертання до пам'яті в MIMD-системах можуть сильно відрізнятися. У таких системах метою є з'єднати процесор з блоком пам'яті і задіяти максимум інформації, що знаходиться в ньому, перш ніж перемкнутися на інший блок пам'яті.
Рисунок 9.3 – Пам'ять з чергуванням адрес та пам'ять з послідовними адресами
9.5 Асоціативна пам'ять
Зазвичай в пристроях, що запам'ятовують, доступ до інформації вимагає вказівки адреси комірки. Проте значно зручніше шукати інформацію не за адресою, а спираючись на яку-небудь характерну ознаку, що міститься в самій інформації. Такий принцип лежить в основі ЗП, відомого як асоціативний пристрій, що запам'ятовує (АЗП). У літературі зустрічаються і інші назви подібного ЗП: пам'ять, що адресується за змістом (content addressable memory); пам'ять, що адресується по даним (data addressable memory); пам'ять з паралельним пошуком (parallel search memory); каталогова пам'ять (catalog memory); інформаційний ЗП (information storage); тег. пам'ять (tag memory).
Асоціативний ЗП - це пристрій, здатний зберігати інформацію, порівнювати її з деяким заданим зразком і вказувати на їх відповідність або невідповідність один одному (рис.9.4).
На відміну від звичайної машинної пам'яті (пам'яті довільного доступу або RAM), в якій користувач задає адресу пам'яті і ОЗП повертає слово даних, що зберігається за цією адресою, АП розроблена так, щоб користувач задавав слово даних, і АП шукає його у всій пам'яті, щоб з'ясувати, чи зберігається воно де-небудь в ній. Якщо слово даних знайдене, АП повертає список одної або більше адрес зберігання, де слово було знайдене (і в деякій архітектурі, також повертає саме слово даних, або інші зв'язані частини даних). Таким чином, АП - апаратна реалізація того, що в термінах програмування назвали б асоціативним масивом.
Асоціативна ознака - ознака, по якій проводиться пошук інформації.
Ознака пошуку - кодова комбінація, виступаюча в ролі зразка для пошуку.
Асоціативна ознака може бути частиною шуканої інформації або додатково додаватися їй. У останньому випадку її прийнято називати тегом або ярликом.
Рисунок 9.4 – Структура асоціативного ЗП
Асоціативний ЗП включає:
- запам'ятовуючий масив для зберігання N m-розрядних слів, в кожному з яких декілька молодших розрядів займає службова інформація;
- регістр асоціативної ознаки, куди розміщується код шуканої інформації (ознака пошуку). Розрядність регістра k зазвичай менше довжини слова т;
- схеми співпадіння, які використовуються для паралельного порівняння кожного біта всіх слів, що зберігаються, з відповідним бітом ознаки пошуку і вироблення сигналів співпадіння;
- регістр співпадіння, де кожній комірці запам'ятовуючого масиву відповідає один розряд, в який заноситься одиниця, якщо всі розряди відповідної комірки співпали з однойменними розрядами ознаки пошуку;
- регістр маски, що дозволяє заборонити порівняння певних бітів;
- комбінаційну схему, яка на підставі аналізу вмісту регістра співпадіння формує сигнали, що характеризують результати пошуку інформації.
При зверненні до АЗП спочатку в регістрі маски обнуляються розряди, які не повинні враховуватися при пошуку інформації. Всі розряди регістра співпадіння встановлюються в одиничний стан. Після цього в регістр асоціативної ознаки заноситься код шуканої інформації (ознака пошуку) і починається її пошук, в процесі якого схеми співпадіння одночасно порівнюють перший біт всіх комірок запам'ятовуючого масиву з першим бітом ознаки пошуку. Ті схеми, які зафіксували неспівпадання, формують сигнал, що переводить відповідний біт регістра співпадіння в нульовий стан. Так само відбувається процес пошуку і для решти незамаскованих бітів ознаки пошуку. У результаті одиниці зберігаються лише в тих розрядах регістра співпадіння, які відповідають коміркам, де знаходиться шукана інформація. Конфігурація одиниць в регістрі співпадінь використовується як адреси, по яких проводиться прочитування з запам'ятовуючого масиву. Із-за того що результати пошуку можуть виявитися неоднозначними, вміст регістра співпадіння подається на комбінаційну схему, де формуються сигнали, що сповіщають про те, що шукана інформація:
- а0 - не знайдена;
- а1 - міститься в одній комірці;
- а2 - міститься більш ніж в одній комірці.
Формування вмісту регістра співпадіння і сигналів a0, a1, а2 носить назву операції контролю асоціації. Вона є складовою частиною операцій прочитування і запису, хоча може мати і самостійне значення.
При прочитуванні спочатку проводиться контроль асоціації по аргументу пошуку. Потім, при а0=1 прочитування відміняється через відсутність шуканої інформації, при a1=1 прочитується слово, на яке указує одиниця в регістрі збігів, а при а2=1 скидається сама старша одиниця в регістрі збігів і витягується відповідне їй слово. Повторюючи цю операцію, можна послідовно рахувати всі слова.
Запис в АП проводиться без вказівки конкретної адреси, в першу вільну комірку. Для відшукання вільної комірки виконується операція прочитування, в якій не замасковані тільки службові розряди, що показують, як давно проводилося звернення до даної комірки, і вільною вважається або порожня комірка, або та, яка найдовше не використовувалася.
Головна перевага асоціативних ЗП визначається тим, що час пошуку інформації залежить тільки від числа розрядів в ознаці пошуку і швидкості опиту розрядів і не залежить від числа комірок в запам'ятовуючому масиві.
Спільність ідеї асоціативного пошуку інформації зовсім не виключає різноманітності архітектури АЗП. Конкретна архітектура визначається поєднанням чотирьох чинників:
- виду пошуку інформації;
- техніки порівняння ознак;
- способу прочитування інформації при множинних співпадіннях;
- способу запису інформації.
У кожному конкретному застосуванні АЗП завдання пошуку інформації може формулюватися по-різному.
Види пошуку інформації:
- простий (потрібний повний збіг всіх розрядів ознаки пошуку з однойменними розрядами слів, що зберігаються в запам'ятовуючому масиві).
- складний:
- пошук всіх слів, великих або менших заданого. Пошук слів в заданих межах.
- пошук максимуму або мінімуму.
Багатократна вибірка з АЗП слова з максимальним або мінімальним значенням асоціативної ознаки (з виключенням його з подальшого пошуку), по суті, є впорядкованою вибіркою інформації. Впорядковану вибірку можна забезпечити і іншим способом, якщо вести пошук слів, асоціативна ознака яких по відношенню до ознаки опиту є найближчим великим або меншим значенням.
Очевидно, що реалізація складних методів пошуку пов'язана з відповідними змінами в архітектурі АЗП, зокрема з ускладненням схеми ЗП і введенням в неї додаткової логіки.
Техніка порівняння ознак
При побудові АЗУ вибирають з чотирьох варіантів організації опиту вмісту пам'яті. Варіанти ці можуть комбінуватися паралельно по групі розрядів і послідовно по групах. У плані часу пошуку найбільш ефективним можна рахувати паралельний опит як по словах, так і по розрядах, але не всі види запам'ятовуючих елементів допускають таку можливість.
Спосіб прочитування інформації при множинних співпадіннях:
- з ланцюгом черговості (за допомогою достатньо складного пристрою, де фіксуються слова, створюючі багатозначну відповідь. Ланцюг черговості дозволяє проводити читання слів в порядку зростання номера комірки АЗП незалежно від величини асоціативних ознак);
- алгоритмічно (в результаті серії опитувань).
Спосіб запису інформації:
- за адресою;
- з сортуванням інформації на вході АЗП по величині асоціативної ознаки (місцеположення комірки, куди буде поміщено нове слово, залежить від співвідношення асоціативних ознак знов записуваного слова і слів, що вже зберігаються в АЗП).
- по збігу ознак;
- з ланцюгом черговості.
Через високу вартість АЗП рідко використовується як самостійний вид пам'яті.
Контрольні запитання
1 Як здійснюється виконання команди Load R0, i в комп’ютерних системах з загальною пам’яттю?
2 Як організована багаторівнева загальна пам'ять?
3 Яка структура асоціативного запам’ятовуючого пристрою?
4 Як організована асоціативна пам'ять?
5 Як працює пам'ять з чергуванням адрес?
Лекція № 10