Оперативна пам'ять комп'ютера

6b8bdc07
Оперативная память компьютера

Отже, оперативна пам'ять комп'ютера, яка ще називається енергозалежною. Вона ж - DRAM (Dynamic Random Access Memory) - динамічна пам'ять з довільним доступом або оперативний пристрій, скорочено - ОЗУ.

Давайте розберемося чому ж вона саме так називається? Під час роботи комп'ютера в оперативній пам'яті зберігаються всі дані і програми, запущені під час роботи користувачем. Слово «енергозалежна» щодо пам'яті означає лише те, що при виключенні живлення системного блоку (завершення роботи) оперативна пам'ять комп'ютера обнуляється. Зникає все її вміст.

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

«Динамічна пам'ять з довільним доступом»: доступ (звернення) до різних її осередкам відбувається в довільному порядку і в різні моменти часу, звідси і визначення. А ось зі словом «динамічна» ситуація складніша. Давайте розбиратися!

Найменшою одиницею структури оперативної пам'яті комп'ютера є осередок. Масив близько розташованих осередків об'єднується в умовні прямокутні таблиці, які називаються матрицями. Горизонтальні лінійки такої матриці називають рядками, а вертикальні стовпцями. Весь прямокутник матриці носить назву «сторінка», а сукупність сторінок називається банком. Всі ці речі трохи віртуальні, в тому сенсі, що, наприклад, «банком» може називатися як цілий модуль DIMM, так і окрема його частина (мікросхеми пам'яті, розташовані з одного його боку).

У будь-якому випадку, схему будови оперативної пам'яті комп'ютера (її фрагмента) можна бачити на зображенні нижче:

Схема будови оперативної пам'яті Схема будови оперативної пам'яті

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

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

В теорії схема організації роботи оперативної пам'яті виглядає красиво, але ідеальних рішень немає і на практиці розробникам доводиться стикатися з тим, що заряд з конденсатора досить швидко йде або відбувається його часткова мимовільна розрядка (не рятують ситуацію і «ключі»), тому не залишається іншого виходу, як періодично заряджати його. Наскільки часто? Кілька десятків разів в секунду! І це при тому, що таких конденсаторів в одному чіпі пам'яті - кілька мільйонів!

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

Також потрібно враховувати те, що процес зчитування в DRAM деструктивний: після звернення до будь-якому осередку її конденсатор розряджається і щоб не втратити містяться в ній дані конденсатор потрібно знову зарядити. Другий «сюрприз» полягає в тому, що, в силу конструктивних особливостей, дешифратор адреси рядка / стовпця віддає команду на зчитування не однієї конкретної комірки, а відразу всієї рядки (чи шпальти). Лічені дані повністю зберігаються в буфері даних і потім з них вже відбираються запитувані додатком. Після цього відразу ж потрібно перезарядити цілий ряд осередків!

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

Колись я прочитав хорошу фразу: «Динамічне пам'ять можна порівняти з дірявим відром. Якщо його постійно не поповнювати, то вся вода витече! »Щось умовно схоже і відбувається в ситуації з DRAM. Природно, всі ці додаткові команди і цикли зарядки-розрядки призводять до додаткових затримок в роботі і не є ознакою високого ККД кінцевого виробу. Так чому не можна придумати щось більш ефективне? Можна, можливо! І воно вже придумано - статична пам'ять з довільним доступом (SRAM - Static Random Access Memory).

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

Думаю, логічно, якщо розглядати ми будемо оперативну пам'ять типу DIMM. Абревіатура розшифровується як «Dual In-Line Memory Module» (двосторонній модуль пам'яті), а саме такі плати до сьогоднішнього дня і використовуються в персональних комп'ютерах.

Пам'ять стандарту DIMM в кінці 90-х років минулого століття прийшла на зміну попередньому стандарту SIMM (Single In-Line Memory Module - односторонній модуль пам'яті). Фактично, модуль DIMM є друковану плату з нанесеними на неї контактними майданчиками. Це - своєрідна основа: чіпи пам'яті та інша електрична «обв'язування» виробником додаються вже потім.

Принципова відмінність DIMM від SIMM, крім розмірів, полягає в тому, що в новому стандарті електрично контакти на модулі розташовані з двох сторін і є незалежними, а в SIMM вони розташовані тільки з одного його боку (зустрічаються і з двох, але там вони просто закільцьовані і передають, по суті, один і той же сигнал). Стандарт DIMM здатний також реалізовувати таку функцію, як виявлення і виправлення помилок з контролем парності (ECC), але про це нижче.

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

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

Давайте подивимося на те, як виглядають звичайні модулі DIMM:

Оперативна пам'ять комп'ютера Оперативна пам'ять комп'ютера

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

Роз'єм модуля, фактично, визначає тип нашої DRAM (SDRAM, DDR, DDR2, DDR3 і т.д.). Придивіться уважніше і Ви побачите, що на фотографії роз'єм розділений навпіл невеликим розрізом (його називають «ключ»). Саме цей «ключ» не дозволяє вставити модуль пам'яті в несумісний з нею роз'єм на материнській платі. Важливо: «ключі» на модулі і на платі повинні збігатися ідеально. Це захист від неправильної установки в плату.

На схемі нижче представлено розташування «ключів» для різних типів модулів:

Розташування ключів на оперативній пам'яті Розташування ключів на оперативній пам'яті

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

Тепер коротко розглянемо найпоширеніші типи оперативної пам'яті. Різні її покоління:

  • SDRAM - (Synchronous Dynamic Random Access Memory - синхронна динамічна пам'ять з довільним доступом). Модуль з 168-мю пинами (контактами), який живиться від напруги 3,3 Вольта (V).
  • DDR - (Double Data Rate - подвоєна швидкість передачі даних). Дозволяє (на відміну від SDRAM) робити вибірку (або передавати дані) двічі за один такт шини пам'яті. Модуль має 184 контакту, його напругу живлення - 2,6 V. З появою пам'яті стандарту DDR ​​попереднє покоління пам'яті стали називати SDR SDRAM (Single Data Rate DRAM).
  • DDR2 - наступне покоління чіпів. Вона дозволяє за один такт передавати вже 4 біти інформації (два набори даних) з осередків мікросхем пам'яті в буфери введення-виведення. Друкована плата з 240-ка контактами (по 120 з кожного боку). Її напруга живлення - 1,8 В.
  • DDR3 - наступне покоління, здатне за один такт робити вибірку 8-ми біт даних, 240 контактів і напругу живлення в 1,5 Вольта. При цьому енергоспоживання пам'яті DDR3 на 40% менше, ніж у DDR2, що досить важливо при її використанні з мобільних пристроях (ноутбуках). Зниження енергоспоживання досягається за рахунок переходу на більш «тонкий» техпроцес (90-65-50-40 нанометрів).
  • DDR4 - з'явилася на ринку в 2014-му році. Еволюція DDR3 (знижена напруга (1.2V), трохи більше контактів - 288, трохи вище модуль, швидкість передачі подвоєна за рахунок подвійного кількості самих чіпів пам'яті). Швидкість передачі даних до 3.2 гігабіта в секунду. Максимальна частота роботи пам'яті даного типу - 4 266 МГц

Отже, ознаками, які характеризують оперативну пам'ять комп'ютера можна вважати наступні:

  1. Тип ОЗУ (SDRam, DDR і т.д.)
  2. обсяг модулів
  3. Тактова частота їх роботи
  4. Таймінги (затримки при доступі і вибірці даних з чіпів - латентність)

Пункт перший ми розглядали вище, а ось по іншим давайте пройдемося. Обсяг мікросхем пам'яті зараз постійно збільшується і зараз модулем в 1 Gb (гігабайт) вже нікого не здивуєш. А раніше я добре пам'ятаю, який побожний трепет викликала в мені фраза: «У мене на роботі на комп'ютері встановлено 128 мегабайт RAM!» Причому знайомий на той момент працював з тривимірною графікою в програмі моделювання «3DMax» :) Зараз є модулі по 16 гігабайт кожен і я впевнений, що це не межа.

Йдемо далі: тактова частота. Вимірюється в мегагерцах (МГц - MHz) і загальним правилом є те, що чим вона більша, тим пам'ять працює швидше. Наприклад, пам'ять DDR4 працює на частоті 4266 мегагерц. При більш високій частоті зростає і пропускна здатність оперативної пам'яті (то, скільки даних вона може «прокачати» через себе за одиницю часу).

Ось невелика зведена таблиця, що наочно показує цей момент:

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

Користуючись нагодою, хотілося б додати невелику ремарку з приводу всіх цих «нових» типів пам'яті: DDR2, 3, 4 і т.д. Грубо кажучи, це все той же старий добрий SDRAM модуль, але трохи перероблений. Оскільки збільшувати частоту роботи самої пам'яті накладно (ніхто не любить займатися цим через неминуче нагріву, що виникає після цього), виробники пішли на хитрість.

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

Ще однією «прийомом», що дозволяє підняти швидкодію без збільшення частоти є паралельна установка модулів для включення двох і трехканального режимів роботи (double і triple-channel відповідно). Це ще трохи збільшує швидкодію підсистеми пам'яті (5-10 відсотків). Для роботи в такому режимі переважно використовувати Kit-и. «KIT» - це набір модулів, що складається з декількох «планок», які вже протестовані для кооперативної роботи один з одним.

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

А ось так можуть виглядати на платі чотири канали оперативної пам'яті (quad-channel):

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

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

Тепер кілька слів про мікросхемах оперативної пам'яті (чіпах). Як і будь-який елемент комп'ютера на який подається напруга, пам'ять гріється. Як ми пам'ятаємо, комплектуючі всередині системного блоку підживлюються певною кількістю постійного струму, яке їм віддає блок живлення - 12V, 5V або 3 Вольта.

Гріються безпосередньо самі мікросхеми. І деякі виробники плат ставлять на свої вироби невеликі радіатори для відведення тепла. Радіатори, як правило, просто приклеюються за допомогою спеціального складу або тримаються на термопасте.

Радіатор також може замикатися зверху:

Ось, наприклад, який зразок оперативної пам'яті комп'ютера від брендової компанії «OCZ» знаходиться в моїй домашній колекції:

Річ! Подвійний радіатор, плата приємно обважнює долоню і взагалі справляє враження предмета, зробленого на совість. Плюс - знижені тайминги роботи :)

Пам'ятаю в 2008-му році я деякий час працював на одній великій фірмі. Комп'ютеризовано там було все досить серйозно. В IT відділі там працювали, в хорошому сенсі цього слова, справжні «маніяки» своєї справи :) Коли я вперше подивився на вкладку властивостей тамтешнього термінального сервера, який працював під управлінням 64-х розрядної ОС Windows Server 2003, я м'яко кажучи, дуже здивувався . Я побачив цифру в 128 (сто двадцять і вісім) гігабайт оперативної пам'яті! Розуміючи, що виглядаю нерозумно, я все таки вирішив перепитати, чи так це? Виявилося, що так воно і є насправді (128 гігабайт DRAM). Шкода, що мені тоді не вдалося поглянути на ту материнську плату :)

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

Наприклад, якщо у нас планка має обсяг в 256 мегабайт і складається з 8-ми чіпів то (ділимо 256 на 8) і отримуємо, що в кожної мікросхемі міститься по 32 мегабайта.

Не можу обійти увагою особливий клас пам'яті - серверну DRAM. На фото нижче представлені кілька модулів: перший і третій - серверні варіанти (можете натиснути на фото для збільшення).

Серверна ECC пам'ять Серверна ECC пам'ять

Чим же серверна пам'ять відрізняється від звичайної? Навіть візуально на фото вище видно, що рішення для серверів мають додаткові чіпи на платі, які забезпечують їй додатковий функціонал. Який? Давайте подивимося! Перш за все, з'ясуємо, які додаткові компоненти на друкованій платі оперативної пам'яті (крім самих чіпів ОЗУ) є стандартними? Це ряд твердотільних танталових SMD конденсаторів, розташованих безпосередньо над контактними майданчиками модуля. Це - компоненти «обв'язки» плати пам'яті.

Другим обов'язковим елементом (на фото вище відзначений зеленим) можна назвати мікросхему SPD. Абревіатура розшифровується як «Serial Presence Detect» - інтерфейс послідовного детектування або послідовне визначення наявності. Якось так :) По суті, - це програмований ПЗУ, в якому «зашиті» настройки кожного модуля пам'яті: всі параметри, частоти, таймінги, режими роботи і т.д. Саме звідти при старті комп'ютера вони зчитуються мікросхемою біоса.

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

Примітка: ECC - (error-correcting code - код корекції помилок) Алгоритм виявлення та виправлення випадкових помилок при передачі даних (не більше одного-двох бітів в байті).

Для реалізації цих можливостей на модуль встановлюється додаткова мікросхема пам'яті і він стає 64-х розрядних, як звичайні DIMM, а 72-ти двох. Тому далеко не всі материнські плати можуть працювати з подібною пам'яттю. Деякі, треба віддати їм належне, - працюють! :)

Натисніть на фото вище і Ви зможете побачити додаткові позначення на стікері (виділені червоним), яких немає для звичайної пам'яті. Я маю на увазі такі скорочення, як: «SYNCH», «CL3 (2.5)», «ECC» і «REG». Зупинимося на них окремо. Оскільки перший з наведених на фото модулів відноситься до періоду поширення персональних комп'ютерів під загальним брендом «Pentium», то на ньому окремо присутній позначення «SYNCH».

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

Саме про величину латентності модуля серверної пам'яті говорить нам другий показник на стікері «CL3». Розшифровується як «Cas Latency» - мінімальний час, що вимірюється в тактах системної шини, між командою на читання (CAS, по факту - передачею в пам'ять потрібної адреси рядки чи шпальти) і початком передачі даних.

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

Для прикладу, деякі (далеко не всі) затримки представлені в таблиці нижче:

Таблиця таймінгів оперативної пам'яті Таблиця таймінгів оперативної пам'яті

Таким чином, вказуючи значення латентності тільки для одного параметра (CL) з найменшим показником і не даючи уявлення про затримки пам'яті при інших операціях, нам намагаються це справа втюхати! Не буду стверджувати, що так і відбувається, але відчуття виникає саме таке :)

Позначення ECC ми вже розглядали вище, не будемо повторюватися. А ось з покажчиком «REG» давайте розберемося! Як правило, так позначаються реєстрові (Registered) модулі оперативної пам'яті. Що це означає? Між чіпами ОЗУ і шиною встановлюється додаткова мікросхема, яка виконує роль своєрідного буфера. Тому подібний тип реєстрової пам'яті часто називають буферизує (Buffered) або з частковою буферизацией.

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

Оперативна пам'ять для ноутбуків називається SO-Dimm і має, в силу зрозумілих причин, укорочений дизайн. Виглядає вона наступним чином:

Оперативна пам'ять для ноутбука Оперативна пам'ять для ноутбука

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

І зовсім вже наостанок: купуйте оперативну пам'ять зарекомендували себе виробників: «Samsung», «Corsair», «Kingston», «Patriot», «Hynix», «OCZ» і тоді проблеми оперативної пам'яті будуть обходити Вас стороною.

2516
adminpc
-