31 СПЕЦІАЛЬНІ ТИПИ ОПЕРАТИВНОЇ ПАМ'ЯТІ

У ряді практичних завдань вигіднішим виявляється використання спеціалізованої архітектури ОЗП, де стандартні функції (запис, зберігання, зчитування) поєднуються з деякими додатковими можливостями або враховують особливості застосування пам'яті. Такі види ОЗП називають спеціалізованими і до них відносять: 

Два останні типи відносяться до статичних ОЗП.

31.1  Оперативні  запам'ятовуючі  пристрої для  відеокарт (відеопам'ять)

Використання пам'яті в відеоадаптерах має свою специфіку і для реалізації додаткових вимог звертаються до дещо інших типів мікросхем. Так, під час створення динамічних зображень часто досить просто змінити розташування інформації, що вже зберігається у відеопам'яті. Замість того щоб багато разів пересилати по шині одні і ті ж дані, лиш дещо змінивши їх розташування, вигідніше змусити мікросхему пам'яті перемістити дані, що вже в ній зберігаються, з однієї області ядра в іншу. На ІМС пам'яті можна також покласти операції по зміні кольору точок зображення. 

Стисло розглянемо деякі з типів ОЗП, орієнтованих на застосування як відеопам'ять. 

Мікросхеми SGRAM.  Абревіатура SGRAM (Synchronous Graphic DRAM – синхронний графічний динамічний ОЗП) позначає спеціалізований вид синхронної пам'яті з підвищеною внутрішньою швидкістю передачі даних. SGRAM може самостійно виконувати деякі операції над відеоданими, зокрема блочний запис. Передбачено два режими такого запису. В першому – режимі блочного запису (Block Write) – можна змінювати колір відразу восьми елементів зображення (пікселів). Призначення другого режиму – блочного запису з маскуванням певних бітів (Masked Write або Write-per-Bit) – запобігти зміні кольору для окремих пікселів блока, що пересилається. Є також модифікація даної мікросхеми, відома як DDR SGRAM, відмінність якої очевидна з приставки DDR. Використання обох фронтів синхросигналів веде до відповідного підвищення швидкодії ІМС.

Мікросхеми VRAM.  ОЗП типу VRAM (Video RAM) відрізняється високою продуктивністю і призначений для потужних графічних систем. Під час розробки ставилося завдання забезпечити постійний потік даних у разі оновлення зображення на екрані. Для типових значень роздільності і частоти оновлення зображення інтенсивність потоку даних наближається до 200 Мбіт/с.

В таких умовах процесору важко отримати доступ до відеопам'яті для читання або запису.

Щоб вирішити цю проблему, в мікросхемі зроблені істотні архітектурні зміни, які дозволяють відособити обмін між процесором і ядром VRAM для читання/запису інформації і операції по видачі інформації на схему формування відеосигналу (ЦАП – цифро-аналоговий перетворювач). Зв'язок пам'яті з процесором забезпечується паралельним портом, а з ЦАП – додатковим послідовним портом. Крім того, динамічне ядро DRAM доповнене пам'яттю з послідовним доступом (SAM – Serial Access Memory) ємністю 4 Кбайт. Обидва види пам'яті зв'язані між собою широкою внутрішньою шиною. Інформація, що виводиться на екран, порціями по 4 Кбайт з ядра пересилається в SAM і вже звідти, в послідовному коді (послідовний код формується за допомогою підключених до SAM регістрів зсуву), поступає на ЦАП. У момент перезапису в SAM нової порції ядро VRAM повністю готове до обслуговування запитів процесора. Разом з цими режимами мікросхема реалізує режим Flash Write, що дозволяє очистити цілий рядок пам'яті. Є також можливість маскувати певні комірки, захищаючи їх від запису.

Мікросхеми WRAM.  Даний вид мікросхем, розроблений компанією Samsung, багато в чому схожий на VRAM. Це також двопортова пам'ять, що допускає одночасний доступ з боку процесора і ЦАП, але по конструкції вона дещо простіша, ніж VRAM. Наявні в VRAM, але рідко використовувані функції виключені, а замість них введені додаткові функції, що прискорюють вивід на екран тексту і заповнення одним кольором великих площ екрана. В WRAM застосована швидкісніша схема буферизації даних і збільшена розрядність внутрішньої шини. Прискорено також ядро мікросхеми, за рахунок використання режиму швидкісного сторінкового режиму (UFP - Ultra Fast Page), що забезпечує час доступу близько 15 нс. В середньому WRAM на 50% продуктивніша, ніж VRAM, і на 20% дешевша. Застосовується мікросхема в потужних відеоадаптерах. 

Мікросхеми MDRAM.  Мікросхема типу MDRAM (Multibank DRAM – багатоблоковий динамічний ОЗП) розроблена компанією MoSys і орієнтована на графічні карти. Пам'ять містить багато незалежних банків по 1К 32-розрядних слів кожен. Банки підключені до швидкої і широкої внутрішньої шини. Кожен банк може виконувати певні операції незалежно від інших банків. Відмова будь-якого з банків веде лише до скорочення сумарної ємності пам'яті і деякого зниження показників швидкодії. Завдяки блоковій побудові технологія дозволяє виготовляти мікросхеми практично будь-якої ємності, не обов'язково кратної степеню числа 2. 

Мікросхеми 3D-RAM. Цей тип пам'яті розроблений спільно компаніями Mitsubishi і Sun Microsystems з орієнтацією на тривимірні графічні прискорювачі. Крім масиву запам'ятовуючих елементів, мікросхема 3D-RAM (тривимірна RAM) містить процесор (арифметико-логічний пристрій) і кеш-пам'ять. Процесор дозволяє виконувати деякі операції із зображенням прямо в пам'яті. Основні перетворення над пікселами реалізуються за один такт, оскільки стандартна послідовність дій «зчитав, змінив, записав» зводиться до однієї операції – «змінити», виконуваної в момент запису. Процесор мікросхеми дозволяє за секунду виконати близько 400 млн. операцій по обробці даних і зафарбувати до 4 млн. елементарних трикутників. Кеш-пам'ять забезпечує більш рівномірне навантаження на процесор під час інтенсивних обчислень. Ядро 3D-RAM складається з чотирьох банків загальною ємністю 10 Мбіт. Розмір рядків пам'яті вибраний таким, щоб у межах однієї і тієї ж області пам'яті знаходилися якомога більше тривимірних об'єктів. Це дає можливість заощадити час на переходи з рядка на рядок. За ціною даний тип мікросхем порівнянний з VRAM. 

31.2 Багатопортові  ОЗП

Стандартний однопортовий ОЗП має по одній шині адреси, даних і управління і в кожен момент часу забезпечує доступ до комірки пам'яті тільки одному пристрою. 

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

У двопортовій пам'яті є два набори адресних, інформаційних і управляючих сигнальних шин, кожен з яких забезпечує доступ до загального масиву ЗЕ (рис. 31.1). Оскільки двопортовому ОЗП властива симетрична структура, надалі набори шин називатимемо «лівим» (Л) і «правим» (П). В цілому організація матриці ЗЕ залишається традиційною.

Рисунок 31.1 -  Структура двопортового ОЗП

 

Доступ до комірок можливий як через ліву, так і через праву групу шин, причому якщо Л- і П-адреси різні, ніяких конфліктів не виникає. Проблеми потенційно можливі, коли Л- і П-пристрої одночасно звертаються за однією і тією ж адресою і хоча б один з цих пристроїв намагається виконати операцію запису. В цьому випадку, якщо один з портів читає інформацію, а інший проводить запис в ту ж комірку, вірогідне зчитування недостовірної інформації. Під час спроби одночасного введення в комірку з двох напрямів в неї може бути занесена невизначена комбінація із записуваних слів. Незважаючи на те що вірогідність подібних ситуацій по оцінках не перевищує 0,1%, такий варіант необхідно враховувати, для чого в двопортовій пам'яті є схема арбітражу з використанням сигналів «Зайнято». 

Логіка арбітражу в мікросхемі реалізована апаратними засобами, які забезпечують формування сигналу «Зайнято», що забороняє запис у комірку для тієї половини, на якій адреса з'явиться пізніше, а також ухвалення рішення на користь одного з вхідних портів при одночасному надходженні адрес. 

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

В системі переривань двопортової пам'яті дві останні комірки мікросхеми (з найбільшими адресами) використовуються як «поштові скриньки» для обміну повідомленнями між пристроями, підключеними до Л- і П-портів. Повідомленню від лівого пристрою виділена комірка з парною адресою (якщо ємність пам'яті рівна 1К, то це буде адреса 3FF16), а від правого – з непарним (3FE16). Коли пристрій записує інформацію в свою «поштову скриньку», формується запит переривання до пристрою, підключеного до протилежного порту. Цей сигнал автоматично скидається, коли адресат прочитує інформацію зі своєї «поштової скриньки». 

Система семафорів – це наявний у двопортовій пам'яті набір з восьми тригерів, стан яких може бути прочитаний і змінений з боку будь-якого з портів. Тригери грають роль програмних семафорів або прапорів, за допомогою яких Л- і П-пристрої можуть сповіщати один одного про якісь події. Суть цих подій не зафіксована і визначається програмами, що реалізуються. Зазвичай семафори потрібні для надання одному з процесорів монопольного права роботи з певним блоком даних до завершення всіх необхідних операцій з цим блоком. У цьому випадку процесор, що монополізує блок даних, встановлює один з семафорів у стан 1, а після закінчення – в 0. Другий процесор, перш ніж звернутися до даного блока, прочитує семафор і у разі одиничного стану останнього повторює прочитування і аналіз семафора до тих пір, поки перший процесор не встановить його в стан 0. Природно, що в програмному забезпеченні Л- і П-процесорів розподіл і правила використання семафорів повинні бути узгоджені.

Часто однієї мікросхеми багатопортової пам'яті не вистачає через недостатню ємність однієї ІМС або зважаючи на малу розрядність комірок. У обох випадках необхідно з'єднати декілька мікросхем, відповідно паралельно або послідовно. Якщо декілька мікросхем об'єднуються в ланцюжок для досягнення потрібної розрядності слова, виникає проблема з арбітражем під час одночасного звернення до однєї і тієї ж комірки. Для виключення подібної ситуації мікросхеми багатопортової пам'яті випускаються в двох варіантах: ведучі (master) і ведені (slave). Ухвалення рішення проводиться тільки у ведучих мікросхемах, а ведені функціонують відповідно до інструкції, отриманої від ведучого. Таким чином, у ланцюжку використовується тільки одна мікросхема типу «ведучий», а усі інші ІМС повинні мати тип «ведений».

31.3  Пам'ять  типу  FIFO

У багатьох випадках ОЗП застосовується для буферизації потоку даних, коли дані зчитуються з пам'яті в тій же послідовності, в якій вони туди заносилися, але надходження і зчитування відбуваються з різною швидкістю. Часто для цієї мети застосовують звичайний ОЗП, проте тут одночасний запис і зчитування інформації неможливі. Ефективнішим видом ОЗП, де обидві дії можуть вестися одночасно, служить пам'ять типу FIFO. Мікросхема є двопортовим ОЗП, де один порт призначений для занесення інформації, а другий – для зчитування. Для FIFO-пам'яті характерні всі технологічні прийоми, властиві двопортовій пам'яті, зокрема способи арбітражу під час одномоментного звернення до однієї і тієї ж комірки. В той же час є і істотні відмінності.

Перша – у мікросхеми немає входів для вказівки адреси комірки, занесення і зчитування даних проводиться в порядку їх надходження через одну вхідну точку і одну вихідну.

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