Оперативна пам'ять — Вікіпедія

Модулі оперативної пам'яті ПК з радіаторами (DDR2)

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

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

Термінологія[ред. | ред. код]

Архаїчний синонім пам'яті — сховище.[1]

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

Типи та будова[ред. | ред. код]

Є два основні типи напівпровідників пам'яті, летючі і нелетючі. [уточнити] Приклади незалежної пам'яті — це флеш-пам'ять (використовується як вторинна пам'ять) і ROM, PROM, EPROM і EEPROM (використовуються для зберігання прошивки, такі як BIOS). Прикладом незалежної пам'яті є первинне зберігання (як правило, динамічне RAM, DRAM) і швидкий процесор кеш-пам'яті (зазвичай статична оперативна пам'ять RAM, SRAM, яка є швидкою, але енергоємною, і пропонує меншу ємність пам'яті на одиницю площі, ніж DRAM).

Найбільший напівпровідниковий запам'ятовувальний пристрій складається з комірок пам'яті або бістабільних тригерів, кожен з яких зберігає один біт (0 або 1). Організація флеш-пам'яті включає в себе як один біт на комірку пам'яті, так і кілька бітів на клітинку (так звані ДОК, кілька осередків). Осередки пам'яті згруповані в слова фіксованої довжини, наприклад, 1, 2, 4, 8, 16, 32, 64 або 128 біт. Кожне слово можна отримати за допомогою довільної адреси N біт. Це означає, що регістри процесора зазвичай не розглядаються як пам'ять, позаяк вони тільки зберігають одне слово і не включають в себе механізм адресації.

Типові вторинні пристрої зберігання жорстких дисків і твердотілих накопичувачів.

В 2024 році за повідомленням видання Tom's Hardware, корпорація Samsung розробила та впровадила новий тип пам'яті, який отримав назву Low Latency Wide I/O (LLW) DRAM з пропускною здатність — 128 Гбайт/с на модуль[2][неавторитетне джерело][3][неавторитетне джерело].

Історія[ред. | ред. код]

Деталь задньої секції ENIAC, видно електровакуумні лампи

На початку 1940-х, технології пам'яті обмежувалися переважно ємністю в кілька байтів. Перший електронний програмований цифровий комп'ютер, ENIAC, використовуючи тисячі вісімкових радіоламп, міг виконувати прості обчислення, що включали 20 десятків десяткових цифр, які були проведені у акумуляторах вакуумних ламп.

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

Дві альтернативи до лінії затримки, трубка Вільямса і трубка Селектрона[en], виникли в 1946 році, використовуючи електронні пучки в скляних трубках як засіб зберігання. Використовуючи електронно-променеві трубки, Фред Вільямс винайде трубку Вільямса, яка стане першою пам'яттю комп'ютера довільного доступу. Трубки Вільямса виявляться більш ємними, ніж трубки Селектрона (Селектрон був обмежений до 256 біт, в той час як трубки Вільямса можуть зберігати тисячі), і дешевшими. Труба Вільямса, тим не менш виявиться гнітюче чутливою до екологічних порушень.

Зусилля почалися наприкінці 1940-х років під час спроб знайти незалежну пам'ять. Джей Форрестер, Ян А. Рейчмен[en] і Ан Ванг[en] розробили пам'ять на магнітних осердях, що дозволило відкликати пам'ять після відключення живлення. Пам'ять на магнітних осердях стане домінуючою формою пам'яті до розвитку пам'яті на основі транзистора наприкінці 1960-х років.

Зміни в технології та економії на масштабі зробили можливими так звані Very Large Memory Computers (комп'ютери з дуже великою пам'яттю).[4]

Термін «пам'ять» при використанні з посиланням на комп'ютери в цілому відноситься до пам'яті довільного доступу або оперативної пам'яті.

Енергозалежна пам'ять[ред. | ред. код]

DDR-SD-RAM, SD-RAM і 2 старіші форми RAM.

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

SRAM не підходить для робочого столу системної пам'яті, де домінує DRAM, але використовується для кешу. SRAM є звичайною справою в невеликих вбудованих системах, які, можливо, потребують тільки десятки кілобайт або менше. Майбутні летючі технології пам'яті, які сподіваються замінити або конкурувати з SRAM і DRAM і включають Z-RAM[en] та A-RAM[en].

Енергонезалежна пам'ять[ред. | ред. код]

Твердотільні диски є одними з новітніх форм незалежної пам'яті.

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

Майбутні енергонезалежні технології пам'яті включають FRAM, CBRAM[en], PRAM, SONOS[en], RRAM, бігова пам'ять, NRAM і IBM Millipede.

Управління пам'яттю[ред. | ред. код]

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

Майже всі програмісти повинні розглянути, як управляти пам'яттю. Навіть збереження номера в пам'яті вимагає від програміста вказати, як пам'ять повинна зберігати його.

Помилки управління пам'яттю[ред. | ред. код]

Неправильне керування пам'яттю є поширеною причиною помилок, включаючи наступні типи:

  • Арифметичне переповнення відбувається, коли над коміркою пам'яті виконується операція, результат якої не поміщається в комірку. Наприклад, 8-бітове ціле число зі знаком дозволяє зберігати цілі числа від -128 до +127. Якщо його значення дорівнює +127, і комп'ютеру доручити збільшити його на одиницю, то результатом операції стане -128, оскільки для збереження правильного результату (+128) потрібно не менше 9 бітів (16 бітів у звичній комп'ютерній архітектурі).
  • Витік пам'яті відбувається, коли програма через помилку у своєму коді втрачає інформацію про раніше виділені для роботи ділянки пам'яті, внаслідок чого більше не може зберігати там дані та змушена для продовження функціонування виділяти все нові блоки пам'яті, доки не вичерпає весь доступний запас.
  • Помилка сегментації виникає, коли програма намагається отримати доступ до не дозволеного для неї блоку пам'яті або не дозволену операцію над своїм блоком.
  • Переповнення буфера означає, що програма записує дані в кінці свого виділеного простору, а потім продовжує писати дані в пам'ять, яка знаходиться безпосередньо після нього та могла бути виділена для інших цілей. Це може призвести до непередбачуваної поведінки програми, у тому числі помилки сегментації, отримання неправильних результатів, аварії або порушення безпеки системи. Така помилка є основою багатьох вразливостей програмного забезпечення і може бути зловмисно використана.

Ранні комп'ютерні системи[ред. | ред. код]

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

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

Віртуальна пам'ять[ред. | ред. код]

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

Це дає ряд переваг. Програмісту більше не потрібно турбуватися про те, де пам'ять фізично зберігаються, або чи має комп'ютер користувача достатньо пам'яті. Це також дозволяє використовувати кілька типів пам'яті. Наприклад, деякий обсяг пам'яті може зберігатися в RAM фізичних чипів, а інша пам'ять зберігається на жорсткому диску. Це різко збільшує обсяг пам'яті, доступний для програм. Операційна система розміщує активно-використовувану пам'ять у фізичну оперативну пам'ять, що значно швидше, ніж жорсткий диск. Коли об'єму оперативної пам'яті не достатньо, щоб запустити всі поточні програми, це може призвести до ситуації, коли комп'ютер проводить більше часу рухаючи пам'ять з оперативної пам'яті на диск і назад, ніж вирішуючи завдання; це відомо як «пробуксовка[en]».

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

Захищена пам'ять[ред. | ред. код]

Докладніше: Захист пам'яті

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

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

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

Захищені системи пам'яті майже завжди включають віртуальну пам'ять.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. A. Тюрінг and R.A. Brooker (1952). Керівництво з програмування для Manchester Electronic Computer Mark II. Манчестерський університет.
  2. Samsung розробила швидку оперативну пам'ять LLW DRAM. // Автор: Артем Житкевич. 10.01.2024
  3. Samsung виводить на ринок ОЗП LLW DRAM: найновіший стандарт з низьким енергоспоживанням. 11.01.2024
  4. Stanek, William R. (2009). Windows Server 2008 Inside Out. O'Reilly Media, Inc. с. 1520. ISBN 9780735638068. Процитовано 20 серпня 2012. [...] Windows Server Enterprise підтримує кластеризацію до восьми вузлів-кластерів і дуже Великий Обсяг Пам'яті (ВОП) конфігурацій до 32 Гб на 32-бітних системах і 2 ТБ на 64-бітних системах.

Література[ред. | ред. код]

  • Стівен В. Міллер. Пам'ять і технології зберігання. — Монтвейл: AFIPS Press, 1977. — ISBN.
  • Пам'ять і технології зберігання. — Олександрія, Вірджинія: Time Life Books, 1988. — ISBN.

Посилання[ред. | ред. код]