Смекни!
smekni.com

Огляд архітектури IBM PC-сумісного компютера (стр. 9 из 11)

Коли процесор очікує завершення запису при виконання наскрізного запису, то кажуть що він призупиняється для запису (write stall). Загальний метод мінімізації по запису пов‘язаний з використанням буфера запису (write buffer), який дозволяє процесору продовжити виконання команд під час оновлення вмісту пам‘яті. Але зупинки по запису можуть виникати навіть при наявності буфера запису.

При промаху під час запису маємо дві додаткові можливості:

- розмістити запис у кеш-пам‘яті (вибірка при записі (fetch on write)). Блок завантажується у кеш, після чого виконуються дії аналогічні до виконання запису з попаданням. Це схоже на промах при читанні.

- Не розміщувати запис у кеш-пам‘яті (називається також записом в оточення (write around)). Блок модифікується на більш низьком рівні та не завантажується в пам‘ять.

2.2 Принципи організації основної пам’яті у сучасних комп‘ютерах

Основна пам‘ять представляє собою наступний рівень ієрархії пам‘яті. Основна пам‘ять задовольняє запити з кешу ту служить в якості інтерфейсу вводу-виводу, оскільки є місцем призначення для вводу та джерелом для виводу. Для оцінки швидкодії основної пам‘яті використовують 2 основні параметри: затримка та смуга пропускання. Традиційно затримка основної пам‘яті має відношення до кешу, а смуга пропускання чи пропускна здатність відноситься до вводу/виводу. У зв‘язку із зростанням популярності кеш-пам‘яті другого рівня та збільшенням розміру блоків у такій кеш-пам‘яті, смуга пропускання основної пам‘яті стає важливою також і для кеш-пам‘яті.

Затримка пам‘яті традиційно оцінюється двома параметрами: часом доступу та тривалістю циклу пам‘яті. Час доступу представляє собою проміжок між видачею запиту на читання та моментом надходження замовленого слова з пам‘яті. Тривалість циклу пам‘яті визначається мінімальним часом між двома послідовними зверненнями до пам‘яті.

Основна пам‘ять сучасних комп‘ютерів реалізується на мікросхемах статичних да динамічних ЗПДВ (Запам‘ятовуючий пристрій з довільною вибіркою). Мікросхеми статичних ЗПДВ (СЗПДВ) мають менший час доступу та не потребують циклів регенерації. Мікросхеми динамічних ЗПДВ (ДЗПДВ) характеризується більшою ємністю та меншою вартістю, але потребує схем регенерації та мають значно більший час доступу.

У процесі розвитку ДЗПДВ із зростанням їх ємності основним питанням вартості таких мікросхем було питання о кількості адресних ліній та вартості відповідного корпусу. У ті роки було прийнято рішення про необхідність мультиплексування адресних ліній, що дозволило скоротити наполовину кількість контактів корпусу, необхідних для передачі адреси. Тому звернення до ДЗПДВ відбувається за два етапи: перший етап починається з видачі сигналу RAS (RowAccessStrobe), який фіксує у мікросхемі адресу рядка, другий етап включає перемикання адреси для надання адреси стовбчика та подання сигналу CAS. Назви цих сигналів пов‘язані із внутрішньою організацією мікросхеми, яка як правило представляє собою прямокутну матрицю.

Додатковою вимогою організації ДЗПДВ є необхідність періодичної регенерації її стану. При цьому всі біти в рядку можуть регенеруватися одночасно, наприклад шляхом читання цього рядка. Тому до всіх рядків ДЗПДВ періодично повинно бути звернення, причому з періодичністю приблизно 8 мілісекунд.

Ця вимога означає що система основної пам‘яті іноді буває недоступною процесору, тому що вона очікує сигнали регенерації. Розробники ДЗПДВ намагаються підтримувати такий час не більший ніж 5% загального часу. Часто контролери ДЗПДВ включають апаратуру для періодичного оновлення ДЗПДВ.

На відміну від динамічних, статичні ЗПДВ не потребують регенерації та час доступу до них співпадає з тривалістю циклу. Для мікросхем що використовують приблизно одну і ту саму технологію, ємність ДЗПДВ у 4-8 разів перевищує ємність СЗПДВ, але останні мають у 8-16 разів меншу тривалість циклу та більшу вартість. Тому в основної пам‘яті практично кожного комп‘ютера зараз використовується ДЗПДВ. Але існують і виключенні, наприклад суперкомп‘ютери Cray Research мають СЗПДВ у якості основної пам‘яті.

Для забезпечення збалансування системи зі зростанням швидкості процесорів повинна лінійно зростати і швидкість пам‘яті. У останні роки ємність мікросхем динамічної пам‘яті почетверялася кожні 3 роки, збільшуючись приблизно на 60% кожного року. Нажаль швидкість цих мікросхем зростає тільки на 7% у рік. У той же час швидкість процесорів збільшувалась на 50% за рік починаючи з 1987 року. У таблиці наведені основні характеристики мікросхем пам‘яті різних поколінь:

Рік появи Ємність кристала Тривалість RAS Тривалість СAS Час циклу Оптимізований режим
max min
1982 64КБіт 180нс 150 75нс 250нс 150нс
1985 256КБіт 150 120 50 220 100
1988 1 МБіт 120 100 25 190 50
1991 4 МБіт 100 80 20 165 40
1994 16 МБіт 80 60 15 120 30
1997 64 МБіт 65 45 10 100 20

Ясно, що узгодження продуктивності сучасних процесорів із швидкодією основної пам‘яті залишається однією з основних проблем. Наведені вище рішення підвищення швидкодії системи за рахунок введення великої кеш-пам‘яті або введення багаторівневої кеш-пам‘яті можуть бути непридатні з точки зору вартості. Тому важливим напрямком сучасних розробок є методи підвищення смуги пропускання при пропускній здатності пам‘яті за рахунок її організації, включаючи спеціальні методи організації ДЗПДВ.

Основними методами збільшення смуги пропускання пам‘яті є збільшення розрядності, або "ширини" пам‘яті, використання розшарування пам‘яті, використання незалежних банків пам‘яті, використання спеціальних режимів роботи схем ДЗПДВ.

2.3 Збільшення розрядності основної пам‘яті

Кеш першого рівня у багатьох випадках має фізичну ширину шин даних відповідну до кількості розрядів у слові, оскільки більшість комп‘ютерів звертаються саме до такої одиниці інформації. У системах без кешу другого рівня ширина шин даних основної пам‘яті комп‘ютера часто відповідає ширині шин даних кеша. Подвоєння або почетверення ширини шин кешу та основної пам‘яті подвоює або почетверює відповідну смугу пропускання системи пам‘яті.

Реалізація більш широких шин викликає необхідність мультиплексування між кешем та процесором, оскільки основною одиницею обробки інформації залишається слово. Кеш другого рівня дещо пом‘якшує цю проблему тому що мультиплексори можуть знаходитися між двома рівнями кешу, тобто затримка не така велика. Інша проблема, пов‘язана із збільшенням розрядності пам‘яті, визначається необхідністю визначення мінімального об‘єму для поступового нарощення пам‘яті яке виконується вже користувачем у процесі експлуатації системи. Подвоєння ширини шини веде до подвоєння цього мінімального інкременту. Також присутні проблеми корекції помилок у системах з широкою пам’яттю.

Прикладом може служити система Alpha AXP 21064, у якій кеш другого рівня, шина пам‘яті та сама пам‘ять мають розрядність 256 біт.

2.4 Пам‘ять з розшаруванням

Наявність в системі багатьох мікросхем пам‘яті дозволяє використовувати потенційний паралелізм, закладений у такій організації. Для цього мікросхеми пам‘яті часто об‘єднуються у модулі або банки, що містять фіксоване число слів, причому тільки до одного слова у банку можлива звернення в кожний момент часу. У реальних системах швидкість доступу до цих банків рідко буває достатньою. Тому для підвищення швидкості треба забезпечити одночасний доступ до декількох банків пам‘яті. Одна з загальних методик називається розшаренням пам‘яті. При розшаренні банки впорядковуються таким чином, щоб N послідовних адресів i, i+1, i+2,….i+N-1 припадали б на N послідовних банків. В і-м банку пам’яті знаходяться тільки адреси kN+i, 0<= k <=M, де M – кількість слів у одному банку. Таким чином можна досягти підвищення швидкодії у N разів. Існують різні способи розшарення пам‘яті. Більшість з них нагадує конвеєри, що забезпечують посилку адресів у різні банки. Якщо потрібне звернення до непослідовних адресів у пам‘яті, швидкодія такого рішення зменшується.

Узагальненням ідеї розшарення пам‘яті є можливість реалізації декількох незалежних звернень, коли декілька контролерів пам‘яті дозволяють банкам пам‘яті (або групам розшарених банків пам‘яті) працювати незалежно.

Якщо система пам‘яті розроблена для підтримки багатьох незалежних запитів (як це має місце при роботі з кеш-пам'яттю, при реалізації багатопроцесорної та векторної обробки), ефективність системи буде в значній мірі залежати від частоти надходження незалежних запитів до різних банків. Звернення до послідовних адрес, або у більш загальному випадок звернення по адресах що відрізняються на непарне число, добре обробляється традиційними схемами розшарення пам‘яті. Проблеми виникають, коли різниця у послідовних зверненнях парна. Одне з рішень, запропоноване у великих комп’ютерах, полягає у тому, щоб статистично зменшити імовірність подібного звернення шляхом значного збільшення кількості банків пам‘яті. Наприклад, в суперкомп‘ютері NEC SX/3 використовуються 128 банків пам‘яті.