05 - Архітектура персонального комп'ютера

Тема 7 - Пам'ять

Конспект лекції


Ключові терміни:

atatic random access memory, dynamic random access memory, random access memory, read only memory, static random memory access, surface mounting technology, асинхронний режим роботи, логічна комірка, лінія адреси, лінія даних, модуль пам'яті, мікросхема пам'яті, непряма адресація, оперативний запам'ятовуючий пристрій, пряма адресація, регенерація, синхронний режим роботи, тригер, фізична комірка

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

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

7.1 Класифікація пам'яті

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

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

7.1.1. Класифікація за вимогою наявності живлення:

7.1.2. Класифікація за типом запам'ятовуючих комірок.

У комп'ютерних системах робота з пам'яттю грунтується на дуже простій концепції – зберігати один біт інформації так, щоб потім він міг бути витягнутий звідти. З огляду на це існує така класифікація:

7.1.3. Класифікація за типом доступу

Залежно від типу адресації модулі пам'яті діляться на такі:

7.2 Форм-фактор модулів

7.2.1. DIP

(Dual In-line Package). Це типова мікросхема з двома рядами ніжок з боків. Раніше, поки не існувало SIMM, половина поверхні материнської плати була покрита такими мікросхемами, які становили цілий мегабайт оперативної пам'яті. Можливості додавання пам'яті при цьому виявлялися досить обмеженими.

Рисунок 7.4 - Модуль пам'яті DIP

7.2.2. SIMM

Single In-line Memory Module – один з перших модулів пам'яті з однорядним розташуванням мікросхем (рис. 7.2). Це модуль пам'яті використовується також у багатьох адаптерах, принтерах і інших пристроях. SIMM має контакти з двох сторін модуля, але усі вони з'єднані між собою, утворюючи один ряд контактів. Модулі цього типу мають два основних розміру (30 і 72 pin) і підключаються, відповідно, в гнізда різних розмірів. Зараз модулі SIMM є технологією вчорашнього дня, чий час пройшло ще на початку 90-х

Рисунок 7.4 - Модуль пам'яті SIMM

7.2.3. DIMM

Dual In-line Memory Module – подвійний модуль пам'яті, схожий на SIMM, але з роздільними контактами, розташованими з 2-ох сторін (рис. 7.3). Маючи більший обсяг пам'яті, вони коштували дорожче і підключалися до спеціальних гнізд, забезпеченим маленькими затисками. Модуль DIMM створений для задоволення зрослих потреб у додаткових обсягах пам'яті більш потужних процесорів Pentium і AMD. Плата пам'яті, подібна за внутрішньою архітектурою з SIMM, але відрізняється від неї більш широкої шиною, завдяки якій досягається підвищення швидкості обміну даних.

Рисунок 7.3 - Модуль пам'яті DIMM

7.2.4. RIMM

Rambus Dynamic Random Access Memory – модуль, що використовує чіп динамічної пам'яті Rambus (рис. 7.4). Компанія Rambus, Inc. в кінці 90-х створила надшвидкі і супердорогі модулі оперативної пам'яті, які були покриті захисними пластиковими пластинами. Вимоги до модуля описані дуже жорстко і детально (наприклад, число установок модуля в один і той же роз'єм обмежена 20). Для модуля передбачений власний тепловідвід.

Рисунок 7.4 - Модуль пам'яті RIMM

7.3 ОПЕРАТИВНА ПАМ'ЯТЬ

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

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

7.3.1. Мікросхеми і модулі.

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

Основною характеристикою мікросхеми пам'яті є режими роботи:

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

7.3.2. Модуль пам'яті

Модуль пам'яті являє собою друковану плату зі встановленими на ній сумісними мікросхемами пам'яті, що має один ряд двосторонніх виводів і вставляється в пристрій як єдиний модуль по так званій SMT-технології (Surface Mounting Technology – технологія поверхневого монтажу). Модулі підключаються до роз'ємів різної величини, тому необхідно встановлювати саме такий модуль, який може бути підключений до даної материнської плати.

7.3.3. Швидкодія

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

ОЗП має високу швидкодію, тому процесор не потребує очікування при читанні даних з пам'яті запису. Якщо комірок ОЗП не вистачає для запису інформації, то в роботу вступає файл підкачки. Цей файл розташований на жорсткому диску і туди записується все, що не входить в комірки оперативної пам'яті. Оскільки швидкодія жорсткого диска значно нижче ОЗП, то робота файлу підкачки сильно уповільнює роботу системи. Крім цього, це знижує довговічність самого жорсткого диска.

Існує два основних типи оперативної пам'яті: статична і динамічна.

7.3.4. Sram - статична оперативна пам'ять

SRAM (Statically RAM, Static Random Access Memory) – статична оперативна пам'ять. Цей тип пам'яті названий таким чином, тому що ця пам'ять не вимагає регенерації. Незважаючи на явну перевагу перед DRAM, вона має велику вартість і, як результат, використовується для виконання спеціальних завдань, в основному, в якості кеш-пам'яті. На SRAM також знаходяться значення змінюваних налаштувань BIOS.

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

7.3.4.1. Тригери SRAM

Ядро мікросхеми SRAM являє собою сукупність тригерів.

Тригер – перемикач, логічний пристрій, що використовується для зберігання інформації, який як завгодно довго зберігає один з двох станів стійкої рівноваги (одне з яких умовно відповідає логічному нулю, а інше – логічній одиниці) і стрибкоподібно переключається по сигналу ззовні з одного стану в інший. Зазвичай тригер пам'яті SRAM складається з 6 транзисторів і 2 резисторів, і комірки SRAM зберігають дані не шляхом ємнісної зарядки (як комірки DRAM), а шляхом перемикання транзисторів в потрібний стан, подібно транзисторам в CPU. Читання комірки SRAM не деструктивно і отже в оновленні комірка SRAM не потребує.

Переваги тригера перед конденсаторами:

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

7.3.4.2. Матриці SRAM

Тригери об'єднуються в єдину матрицю, що складається з рядків (row) і стовпців (column), останні з яких так само називаються бітами (bit).

Тригер, на відміну від конденсатора, має роздільні входи для запису логічного нуля і одиниці відповідно. Таким чином, на комірку статичної пам'яті витрачається цілих вісім транзисторів – чотири йдуть, власне, на сам тригер і ще два – на керуючі «засувки».

SRAM може працювати на більш високих частотах, ніж DRAM, але найбільш важливою її перевагою є набагато нижча латентність – затримка за часом – при отриманні перших 8 байт (машинне слово) даних. SRAM необхідно близько 2-3 циклів для отримання необхідних даних, в той час як DRAM вимагає від 3 до 9 циклів для накопичення необхідних даних у вихідних буферах. Але так як SRAM вимагає в 4 рази більшої кількості транзисторів, ніж DRAM, то має значно більш дорогу собівартість при виробництві. Так що з одного боку модулі SRAM мають вкрай низьку латентність і можуть працювати при високих частотах, а з іншого вони приблизно в 8 разів дорожче, ніж DRAM. Тобто в 2-3 рази дорожче, ніж RAMBUS (з розрахунку ціни за 1Mb).

7.3.4.4. Типи статичної пам'яті

Існує три типи статичної пам'яті: асинхронна, синхронна і конвеєрна. Всі вони практично нічим не відрізняються від відповідних їм типів динамічної пам'яті.

• Async SRAM (Asynchronous Static Random Access Memory) – асинхронна статична пам'ять. SRAM працює незалежно від контролера й тому, контролер не може бути впевнений, що закінчення циклу обміну збіжиться з початком чергового тактового імпульсу.

• SyncBurst SRAM (Synchronous Burst Random Access Memory) – синхронна пакетна статична пам'ять з довільним порядком вибірки. Цей тип пам'яті синхронізований з системною шиною і найкраще підходить для виконання пакетних операцій.

• PipBurst SRAM (Pipelined Burst Random Access Memory) – конвеєрна пакетна статична пам'ять з довільним порядком вибірки. Являє собою синхронну пам'ять, оснащену спеціальними «клямками», які утримують лінії даних, що дозволяє читати/записувати вміст однієї комірки паралельно з передачею адреси інший. Так само, конвеєрна пам'ять може обробляти декілька суміжних комірок за один робочий цикл.

7.3.5. DRAM - динамічна оперативна пам'ять

DRAM (Dynamically RAM, Dynamic Random Access Memory) – динамічний запам'ятовуючий пристрій створений на базі технології метал-оксид-напівпровідник (CMOS, Complimentary Metal Oxide Semiconductor). В більшості випадків DRAM використовується в якості оперативної пам'яті і відеопам'яті.

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

7.3.5.1. Організація DRAM

Ядро мікросхеми динамічної пам'яті складається з безлічі елементарних комірок, кожна з яких зберігає всього один біт інформації. Кожен біт може бути в двох станах: включено (так, 1) або виключений (ні, 0). Будь-який обсяг інформації в кінцевому підсумку складається з включених і виключених бітів. Таким чином, щоб зберегти або передати будь-якої обсяг даних, необхідно зберегти або передати кожен біт цих даних. Якщо конденсатор комірки заряджений, то це означає, що біт включений, якщо розряджений – вимкнений. Байт – найменша адресуєма частина пам'яті. Якщо необхідно запам'ятати один байт даних, то знадобиться 8 комірок (1 байт = 8 бітам), що дозволяє представити 256 можливих комбінацій.

Будь-яка комірка складається з одного транзистора і одного конденсатора – це найбільш дешевий спосіб виробництва комірок пам'яті. Комірки, що складаються з конденсаторів і транзисторів, розташовані в матрицях і кожна з них має свою адресу, що складається з номера рядка і номера стовпця.

З часом конденсатор втрачає заряд, і тому необхідно час від часу його оновлювати. Виробники DRAM кажуть, що подібне оновлення повинно проводитися кожні 64мс, тобто комірка пам'яті недоступна менш, ніж 1% всього часу. Але найбільша проблема з DRAM в тому, що при операції читання з комірки конденсатор втрачає свій розряд, тобто читання деструктивно, і комірка після читання повинна бути відновлена. Таким чином, кожен раз при читанні повинен виконуватись і запис. В результаті збільшується час циклічного доступу, підвищується латентність. Час затримки виведення даних DRAM вимірюється величинами від десятків до сотень наносекунд.

На фізичному рівні весь простір пам'яті можна представити, як прямокутну матрицю, що складається з комірок. Горизонтальні лінійки матриці називаються рядки (row), а вертикальні – стовпці (column) або сторінки (page). Одна матриця складається з певної кількості рядків і стовпців називається сторінка, сторінка – це логічна категорія, існуюча для зручності звернення до матриці пам’яті. Сукупність сторінок малого об'єму називається банком – пам'ять розбивається на парну кількість банків.

Стовпці і рядки матриці пам'яті поєднуються в єдиних адресних лініях:

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

Транзистор в динамічній комірці працює як ключ, керуючий передачею заряду. При записі в конденсатор біта інформації ключ відкривається, заряджаючи конденсатор до певної величини.

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

В зв'язку з тим, що напруга на конденсаторах досить мала, то для перетворення до логічного нуля і одиниці необхідно посилювати напругу. У кожному банку пам'яті є, чутливий підсилювач sense amp (amps = amplifiers, підсилювач), перетворювач рядків row decoder і стовпців column decoder. Чутливий підсилювач, підключений до кожного з стовпців матриці, реагуючи на слабкий потік електронів, що спрямувалися через відкриті транзистори з обкладок конденсаторів, декодує всю сторінку цілком відповідно до переданим адресою, перетворюючи її в послідовність нулів і одиниць, і зберігає отриману інформацію в спеціальному буфері.

Саме сторінка є мінімальною порцією обміну з ядром динамічної пам'яті. Читання/запис окремо взятій комірки неможливий, оскільки відкриття одного рядка приводить до відкриття всіх, підключених до нього транзисторів, а, отже, – розряду закріплених за цими транзисторами конденсаторів. Транзисторний підсилювач вносить основну затримку при видачі даних.

Розташування матриці з комірками забезпечує зчитування за один раз декількох бітів. Якщо паралельно розташовано 8 матриць, то відразу зчитуваться буде один байт. Це називається розрядністю. Кількість ліній, по яких будуть передаватися дані від/на паралельних матриць, визначається розрядністю шини вводу/виводу мікросхеми.

На відміну від SRAM, динамічна пам'ять енергозалежна і вимагає періодичного поповнення енергії в паразитних ємностях. Процес заряджання конденсаторів, щоб уникнути їх розрядження і втрати збережених даних через досить малі проміжки часу називається регенерацією. Регенерація (refresh, рефреш) – процес періодичного прочитування комірок з подальшим перезаписом. Протягом часу, який називається кроком регенерації, в DRAM перезаписується цілий рядок комірок.

7.3.5.2 Основні типи dram

FPM DRAM (Fast Page Memory Mode DRAM) – пам'ять з прискореним сторінковим режимом розроблена в 1995 році. Що б скоротити час очікування, стандартна пам'ять DRAM розбивається на сторінки, що забезпечує найбільш швидкий доступ до всіх даних у межах даного рядка пам'яті, тобто якщо не змінюється номер рядка, а змінюється тільки номер стовпця. Цей спосіб доступу називається FPM (Fast Page Mode – швидкий посторінковий режим). Є й інші варіанти посторінкового режиму: Static Column і Nibble Mode.

EDO DRAM (Extended Data Output DRAM) – пам'ять з розширеним виведенням даних. Цей тип пам'яті розроблений в 1995 році Micron Technology і в принципі, є удосконаленням FPM. Використовує стандартний інтерфейс DRAM, але передача даних в і з пам'яті відбувається з більш високою швидкістю або на більш високій частоті.

BURST EDO (BEDO, Burst Extended Data Out Dynamic Random Access Memory – пакетна EDO RAM). В принципі BEDO мало, чим відрізняється від EDO. Після звернення до довільної комірки мікросхема BEDO автоматично, без вказівок з боку контролера, збільшує номер стовпця на одиницю, не вимагаючи його явної передачі.

SDRAM – динамічна синхронізована пам'ять. Виробляється з 1997 р по стандартам JEDEC, має більшу продуктивність, ніж DRAM. Частіше використовується в якості основної системної пам'яті. По суті, це пам'ять DRAM, яка готує до передачі більше інформації, ніж потрібно в розрахунку на те, що саме ці дані центральний процесор запросить наступними. Мікросхеми пам'яті SDRAM працюють синхронно з контролером, що гарантує завершення циклу в строго заданий термін. Оскільки SDRAM прив'язаний до системної частоті, він міряється мегагерцами, а не наносекундами, і зобов'язаний працювати, принаймні, на тій же частоті або трохи швидше, що і системна шина.

У SDRAM використовується декілька специфічних методів для зменшення різниці між швидкостями процесора і пам'яті:

DDR SDRAM (DDR, Double Data Rate SDRAM) – це синхронна пам'ять з подвоєною швидкістю передачі даних, яка з'явилася на ринку в 1998 р. Інженери корпорації AMD модернізували специфікації існуючої SDRAM-технології. Вони запозичили ідею «подвоєння» робочої частоти інтерфейсу по відношенню до його реальної тактової частоті. На сьогоднішній день, цей тип пам'яті найбільш часто застосовується в ПК, тому DDR поєднує в собі прийнятну швидкість і при цьому відносну дешевизну. Ці модулі можуть суміщати пряму і зворотну передачі пакетів даних, в результаті чого їх швидкодія різко зростає.

DDR2 – новий стандарт пам'яті, затверджений JEDEC. Головна перевага другої версії полягає в більш високій частоті роботи інтерфейсу і, відповідно, подвоєній пропускній здатності. При цьому самі мікросхеми пам'яті продовжують функціонувати на частоті 100 МГц, а для того щоб забезпечити даними більш швидкісний інтерфейс, використовуються збільшені буферні регістри.

RDRAM (Rambus DRAM) – запатентована динамічна пам'ять Rambus. Основа архітектури Rambus – банки пам'яті, «пронизані» швидкісним каналом. Канал являє собою електричну шину, підключати елементи пам'яті до контролера і роз'ємів. Канал входить в модуль на одному його кінці, проходить через всі чіпи і виходить на іншому кінці модуля.

Основних відмінностей від пам'яті попередніх поколінь три:

Найбільший недолік Rambus – складність і, як наслідок, більший розмір кожного чіпа.

ESDRAM (Enhanced SDRAM) – більш швидкий варіант архітектури SDRAM. Відрізняється значно меншим часом доступу до основному масиву пам'яті і наявністю вбудованого блоку кеш-регістрів SRAM. ESDRAM повністю сумісна з SDRAM.

VC SDRAM (Virtual Channel SDRAM) – розроблена компанією NEC. Містить SRAM-кеш, що містить 16 віртуальних каналів, або 16 SRAM-кешей по 1 KБ. У той час як ESDRAM сам піклується про кешуванні, кеш VC SDRAM управляється чіпсетом.

CDRAM (Cached DRAM) – буферізірованний DRAM. Ця пам'ять є попередником 3D RAM з вбудованим в мікросхему кешем. Працює з зовнішнім контролером кеш-пам'яті. Комбінований варіант статичної та динамічної пам'яті, в якому перша служить кешем для другої. Цей тип пам'яті ідеально пристосований бути основою для текстурної пам'яті, і може бути органічним доповненням пам'яті типу 3D RAM з її високою пропускною здатністю.

3D RAM – застосовується у вбудованих обчислювальних засобах і кеш-пам'яті, реалізованих на рівні чіпа. Це технологія робочих станцій для обробки 3D графіки, яка забезпечує додаткове збільшення продуктивності. Відрізняється високою оптимізацією для використання при виконанні тривимірних операцій.

FCRAM (Fast Cycle RAM) – RAM з швидким циклом. Має суттєві відмінності від DRAM. За швидкістю роботи цей тип пам'яті близький до SRAM, а за обсягом не відрізняється від SDRAM.

MRAM (Magnetic RAM) – магнітний ОЗП. Технологія зберігання інформації в MRAM полягає в розміщенні елемента, що містить молекули платини і кобальту, між двома магнітопроводящімі шарами. Запис і читання проводиться шляхом зміни магнітної активності в керуючих шарах. Цикл читання даного типу пам'яті складає всього 6 нс.

NVRAM (Non Volatile RAM, постійна пам'ять) – енергонезалежна пам'ять, що зберігає інформацію тривалий час при повній відсутності живлення, виконана за технологією flash, розробленої компанією Intel.

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

SGRAM – виробляється за стандартами JEDEC, різновид SDRAM, однопортовая. Продуктивність оптимізована для графічних операцій, але при цьому має характеристики, властиві високошвидкісної пам'яті, що дозволяють використовувати цей тип пам'яті для зберігання текстур і z-буферизации. Ідеально підходить для графічних адаптерів з одним недорогим банком пам'яті, що використовується для 2D/3D графіки та цифрового відео.

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

WRAM – високошвидкісна, двопортова технологія пам'яті, використовувана тільки двома виробниками відеоадаптерів – компаніями Matrox і Number Nine. Цей тип пам'яті виготовляє один виробник – Samsung. Нестандартний тип пам'яті, що вимагає використання спеціальної технології в контролерах. Технологія виготовлення таких контролерів запатентована, отже, не є загальнодоступною.


© 2016 СумГУ
created with Lectur'EDbeta