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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

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

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

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

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

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

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

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

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

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

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

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

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

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[en], SONOS[en], RRAM[en], бігова пам'ять[en], NRAM[en] і IBM Millipede.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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