Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пащенко.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
406.02 Кб
Скачать

2.2. Оперативна пам’ять

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

Місткість оперативної пам’яті складає від декількох сотень мегабайт до декількох гігабайт. Для сучасної оперативної пам’яті швидкість обміну даними між нею і процесором – більше 10 гигабіт в секунду.

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

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

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

Мікросхеми оперативної пам’яті (RАМ) іноді називають енергозалежною пам’яттю: після виключення комп’ютера дані, що зберігаються в них, будуть втрачені, якщо вони раніше не були збережені на диску або іншому пристрої зовнішньої пам’яті. Щоб уникнути цього, деякі додатки автоматично роблять резервні копії даних.

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

Як і процесор, пам’ять – один з найдорожчих компонентів сучасного комп’ютера, хоча загальна вартість пам’яті в звичайному комп’ютері за останні декілька років знизилася. Але навіть після падіння цін пам’ять системи як правило стоїть удвічі дорожче, ніж системна платня. До обвального падіння цін на спомин у середині 1996 року протягом багатьох років ціна одного мегабайта пам’яті трималася приблизно на рівні 40 доларів. Шістнадцять мегабайт (у той час це типова конфігурація) коштували більше 600 доларів. Фактично до середини 1996 роки пам’ять була неймовірно дорога: її ціна перевищувала вартість злитка золота такої ж ваги. Оперативна пам’ять є одним з найважливіших елементів комп’ютера.

Саме з неї процесор бере програми і початкові дані для обробки, в неї він записує отримані результати. Назву «оперативна» ця пам’ять одержала тому, що вона працює дуже швидко, так що процесору практично не доводиться чекати при читанні даних з пам’яті або запису в пам’ять. Проте дані, що містяться в ній, зберігаються тільки поки комп’ютер включений. При виключенні комп’ютера вміст оперативної пам’яті стирається. Часто для оперативної пам’яті використовують позначення RAM (Random Access Memory, тобто пам’ять з довільним доступом).

Важко недооцінити все значення і всю важливість цієї невеликої за своїми розмірами платні. Сьогоднішні програми стають всі требовательнєє не тільки до кількості, але і до швидкодії ОЗУ. Проте до недавнього часу ця область комп’ютерної індустрії практично не розвивалася (в порівнянні з іншими напрямами). Узяти хоч би відео, аудіопідсистеми, продуктивність процесорів і. т.д. Удосконалення були, але вони не відповідали темпам розвитку інших компонентів і стосувалися лише таких параметрів, як час вибірки, був доданий кеш безпосередньо на модуль пам’яті, конвейєрне виконання запиту, змінений сигнал виведення даних, що управляє, але технологія виробництва залишалася тією самою, вичерпала свій ресурс. Пам’ять ставала вузьким місцем комп’ютера, а, як відомо, швидкодія всієї системи визначається швидкодією найповільнішого її елементу. І ось кілька років тому хвиля технологічного буму докотилася і до оперативної пам’яті. Стали з’являтися нові типи RAM мікросхем і модулів. Зустрічаються такі поняття, як FPM RAM, EDO RAM, DRAM, VRAM, WRAM, SGRAM, MDRAM, SDRAM, SDRAM II (DDR SDRAM), ESDRAM, SLDRAM, RDRAM, Concurrent RDRAM, Direct Rambus.

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

У пам’яті комп’ютера зберігаються програми і оброблювана інформація.

Основними характеристиками різних типів і пристроїв пам’яті є їх об’єм і швидкодія.

Внутрішня пам’ять – це електронні схеми [14, с. 25]. Внутрішня пам’ять дискретна – це означає, що вона складається з певних “частинок” – осередків. Елемент пам’яті називається біт. Один біт – це двійковий розряд пам’яті. Він зберігає двійковий код (0 або 1). Слово “біт” – скорочення від англійського binary digit – двійкова цифра. Отже, пам’ять комп’ютера – це впорядкована послідовність двійкових розрядів (біт). Ця послідовність ділиться на групи по 8 розрядів, кожна така група утворює байт пам’яті.

Отже, слова “біт” і “байт” позначають назви основних одиниць вимірювання місткості пристроїв, що запам’ятовують. Також використовуються похідні одиниці: кілобайт (1 Кбайт (Кб) = 210 байта = 1024 байти), мегабайт: (1 Мбайт (Мб) – 1024 Кбайт). Гігабайт: (1 Гбайт (Гб) – 1024 Мбайт). Внутрішня пам’ять складається з пристрою (ОЗУ), що оперативного запам’ятовує, або оперативної пам’яті (ОП), і що постійного запам’ятовує пристрої (ПЗП).

ОЗУ – швидка напівпровідникова незалежна пам’ять. У ОЗУ зберігаються виконувана програма в даний момент, і дані, з якими вона безпосередньо працює. ОЗУ – це пам’ять, яку використовують як для читання, так і для запису інформації. У разі відключення електроживлення інформація в ОЗУ зникає (енергозалежність). Англійська назва ОЗУ – Random Access Memory (RAM), що переводиться як “пам’ять з довільним доступом”. Цією назвою підкреслюється той факт, що процесор може звертатися до елементів пам’яті в довільному порядку, при цьому при читанні / запису інформації для всіх осередків однаковий (він вимірюється мікросекундами). ПЗП – швидка, незалежна пам’ять. ПЗП – це пам’ять, призначена тільки для читання. Інформація заноситься в неї один раз (звичайно в заводських умовах) і зберігається постійно (при включеному і вимкненому комп’ютера). У ПЗП зберігається інформація, наявність якої постійно необхідна в комп’ютері.

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

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

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

ЕОМ першого покоління по елементній базі були украй ненадійними. Так, середнє брешемо роботи повністю для ЕОМ «ENIAC» складала 30 хвилин. Швидкість рахунку при цьому була незрівняна із швидкістю рахунку сучасних комп’ютерів. Тому вимоги до збереження даних в пам’яті комп’ютера при відмові ЕОМ були строго, чим вимоги до швидкодії оперативної пам’яті. Внаслідок цього в цих ЕОМ використовувалася незалежна пам’ять.

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

Внаслідок цього намагніченість цього сердечника міняється скачками (положення двійкового 0 або 1).

Пам’ять на феритових сердечниках працювала поволі і неефективно: адже на перемагнічування сердечника потрібен час і витрачалося багато електричної енергії. Тому з поліпшенням надійності елементної бази ЕОМ незалежна пам’ять стала витіснятися енергозалежною – швидшої, економнішої і дешевий. Проте, учені різних країн як і раніше ведуть роботи по пошуку швидкої енергозалежної пам’яті, яка могла б працювати в ЕОМ для критично важливих додатків, раніше військових.

На відміну від пам’яті на феритових сердечниках напівпровідникова пам’ять енергозалежна. Це означає, що при виключенні живлення її вміст втрачається.

Перевагами ж напівпровідникової пам’яті перед її замінниками є:

- Мала потужність, яка розсівається;

- Висока швидкодія;

- Компактність.

Ці переваги набагато перекривають недоліки напівпровідникової пам’яті, роблять її незамінною в ОЗУ сучасних комп’ютерів.

Напівпровідникова оперативна пам’ять в даний час ділиться на статичне ОЗУ (SRAM) і динамічне ОЗУ (DRAM). Перш, ніж пояснювати різницю між ними, розглянемо еволюцію напівпровідникової пам’яті за останні сорок років.

Трігером називають елемент на транзисторах, який може знаходитися в одному з двох стійких станів (0 і 1), а по зовнішньому сигналу він здатний міняти стан. Таким чином, трігер може служити елементом пам’яті, що зберігає один біт інформації. Будь-який трігер можна створити з трьох основних логічних елементів: І, АБО, НЕ. Тому все, що відноситься до елементної бази логіки, відноситься і до трігерів. Сама ж пам’ять, заснована на трігерах, називається статичною (SRAM).

РТЛ – резистивно-транзисторна логіка. Історично є першою базою логіки, що працює на ЕОМ другого покоління. Володіє великою розсіюючою потужністю (понад 100 мВт на логічний елемент). Не застосовувалася вже в ЕОМ третього покоління.

ТТЛ або Т2Л-транзисторно-транзисторная логіка. Реалізована на біполярних транзисторах. Використовувалася в інтегральних схемах малого і середнього ступеня інтеграції. Має час затримки сигналу в логічному елементі 10 – нс, а споживана потужність на елемент -10 мВт.

ІІЛ, або И2Л-интегральная інжекторная логіка. Це різновид ТТЛ, базовим елементом якого є не біполярні транзистори одного роду (pnp або npn), а горизонтально розташованого p + n + p транзистора і вертикально розташованого npn транзистора. Це дозволяє створити високу щільність елементів ВІС і СБІС. При цьому споживана потужність рівна 50 мкВт на елемент і час затримки сигналу -10 нс. ЭСЛ – логічні елементи з емітерними зв’язками. Ця логіка також побудована на біполярних транзисторах. Час затримки в них -0,5 -2 нс, споживана потужність -25 -50 мВт.

Елементи на МДП (МОН) – транзисторах. Це схеми, в яких біполярні транзистори замінені на польові. Час затримки таких елементів складає від 1 до 10 нс, споживана потужність – від 0,1 до 1,0 мВт. CMOS) КМОП-логіка (комплементарная логіка.) В цій логіці використовуються симетрично включені n-МОП і p-МОП транзистори. Споживана потужність в статичному режимі -50 мкВт, затримка -10 -50 нс. Як видно з цього огляду, логіка на біполярних транзисторах найшвидша, але одночасно найдорожча і володіє високою потужністю розсіяння (і означає краще «гріється».) За інших рівних умов логіка на польових транзисторах повільніша, але володіє меншим електроспоживанням і меншою вартістю.

Для того, щоб здешевити оперативну пам’ять, в 90-х роках XX століття замість дорогого статичного ОЗУ на трігерах стали використовувати динамічне ОЗУ (DRAM). Принцип пристрою DRAM наступний: система металл-диэлектрик-напівпровідник здатні працювати як конденсатор. Як відомо, конденсатор здатний якийсь час «тримати» на собі електричний заряд. Позначивши «заряджений» стан як 1 і «незаряджене» як 0, ми одержимо елемент пам’яті місткістю 1 біт. Оскільки заряд на конденсаторі розсівається через деякий проміжок часу (який залежить від якості матеріалу і технології його виготовлення), то його необхідно періодично «заряджати» (регенерувати), прочитуючи і знов записуючи в нього дані. Через це і виникло поняття «динамічна» для цього виду пам’яті.

Динамічне ОЗУ з часу своєї появи пройшло декілька стадій зростання, і процес її вдосконалення не зупиняється. За свою десятирічну історію DRAM міняйло свій вигляд кілька разів. Спочатку мікросхеми динамічного ОЗУ проводилися в DIP-корпусах. Потім їх змінили модулі, що складаються з декількох мікросхем SIPP, SIMM і, нарешті, DIMM і RIMM.

2.3. Кеш- пам’ять

Для підвищення швидкості обміну даними між процесором і оперативною пам’яттю використовують кеш-пам’ять (англ. Cache memory – пам’ять про запас). У ній робиться своєрідний запас даних, до яких може звернутися процесор при подальшій роботі.

Вона має велику швидкість обміну даними з процесором в порівнянні з оперативною пам’яттю.

Розрізняють кеш-пам’ять першого рівня (місткість 32 кілобайти), другого рівня (місткість 6 мегабайт і більше) і третього рівня (місткість більше 8 мегабайт). Кеш-пам’ять першого і другого рівня розміщують у складі мікросхеми процесора, третього рівня, як правило, - на системній платні.

Принцип роботи кеш-пам’яті полягає в наступному. Процесор рідко використовує весь об’єм ОЗУ практично одночасно. Частіше всі звернення процесора до пам’яті зосереджені в невеликій області (як показує статистика – 5-10% від загального об’єму). Якщо дані з області апаратний скопіювати в кеш, а потім постійно звіряти кеш і ОЗУ на предмет цілісності даних, то можна забезпечити режим роботи, при якому процесор звертатиметься тільки до кеш-пам’яті, витрачаючи на це значно менше ресурсів і часу, чим звичайно.

Природно, що весь об’єм ОЗУ скопіювати в кеш немає можливості – такий об’єм кеш-пам’яті за ціною порівнюється з вартістю комп’ютера, а сенсу зменшувати об’єм ОЗУ теж немає. Було вирішено реалізувати алгоритм роботи процесора, кеш-пам’яті і ОЗУ апаратний, щоб не витрачати ресурси процесора.

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

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

- апаратне кешування жорстких дисків (кеш-пам’ять встановлюється безпосередньо на жорсткому диску або на спеціальному контроллері).

- програмне кешування CD-ROM, а також інших пристроїв зберігання інформації (програмно – за допомогою операційної системи, апаратний – на самому пристрої або на контроллері).

Але все таки найбільш популярною є кеш-пам’ять першого рівня (процесорна) і другий (встановлена __на материнській платі). Внутрішньо кешування звернень до пам’яті застосовується в процесорах, починаючи з 486-го. З кешуванням пов’язані нові функції процесорів, біти регістрів і зовнішні сигнали.

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

Будь-який внутрішній запит процесора на звернення до пам’яті прямує на внутрішній кеш. Теги чотирьох рядків набору, який обслуговує цю адресу, порівнюються із старшими бітами запитаної фізичної адреси. Якщо область, що адресується, представлена __в рядку кеш-пам’яті (випадку попадания-cache hit), запит на читання обслуговується тільки кеш-пам’яті, не виходячи на зовнішню шину. Запит на запис модифікує даний рядок, і залежно від політики запису або відразу виходить на зовнішню шину (при крізному записі), або трохи пізніше (при використанні алгоритму зворотного запису).

У разі промаху (Cache Miss) запит на запис прямує тільки на зовнішню шину, а запит на читання обслуговується складніше. Якщо цей запит відноситься до кешируємий області пам’яті, виконується цикл заповнення цілого рядка кеша – всі 16 байт (32 для Pentium) читаються з оперативної пам’яті і поміщаються в один з рядків кеша, обслуговуючого дану адресу. Якщо дані, що зажадалися, не укладаються в одному рядку, заповнюється і сусідня. Заповнення рядка процесор прагне виконати найшвидшим способом – пакетним циклом з 32-бітовими передачами (64-бітовими для Pentium і старше).

Внутрішній запит процесора на дані задовольняється відразу, як тільки дані, що зажадалися, прочитуються з ОЗУ – заповнення рядка до кінця може відбуватися паралельно з обробкою одержаних даних. Якщо в наборі, який обслуговує дану адресу пам’яті, є вільний рядок (з нульовим бітом достовірності), заповнена буде вона і для неї встановиться біт достовірності. Якщо вільних рядків в наборі немає, буде заміщений рядок, до якого довше не було звернень. Вибір рядка для заміщення виконується на основі аналізу біт LRU (Least Recently Used) по алгоритму «псевдо-LRU». Ці біти (по три на кожний з наборів) модифікуються при кожному зверненні до рядка даного набору (попаданні кеша або заміщення).

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

Очищення внутрішньої кеш-пам’яті при крізному записі (обнулення біт достовірності всіх рядків) здійснюється зовнішнім сигналом FLUSH # за один такт системної шини (і, звичайно ж, по сигналу RESET). Крім того, є інструкції анулювання INVD і WBINVD. Інструкція INVD анулює рядки внутрішнього кеша без вивантаження модифікованих рядків, тому її необережне використання при включеній політиці зворотного запису може привести до порушення цілісності даних в ієрархічної пам’яті. Інструкція WBINVD заздалегідь вивантажує модифіковані рядки в основну пам’ять (при крізному записі її дія співпадає з INVD). При зворотному записі очищення кеша має на увазі і вивантаження всіх модифікованих термін в основну пам’ять. Для цього, природно, може потрібно і значне число тактів системної шини, необхідних для проведення всіх операцій запису.

На відміну від внутрішньої кеш-пам’яті, зовнішня більше нагадує звичайну пам’ять. Проте алгоритм роботи з нею практично такий же. Зовнішня кеш-пам’ять складається з пам’яті даних, побудована на мікросхемах SRAM, і контроллера кеша. У кеш-пам’яті зберігається інформація, копійований з основної оперативної пам’яті. Кожного разу при зверненні мікропроцесора до пам’яті контроллер кеш-пам’яті перевіряє наявність даних в кеші. Якщо ці дані в кеші є («попадання»), то мікропроцесор одержує дані з кеша. Якщо цих даних немає («промах»), виконується звичайний цикл звернення до оперативної пам’яті DRAM.

Основним чинником, що визначає вірогідність попадання, є місткість кеш-пам’яті. Як правило, при об’ємі кеша в 2 Кбайта вірогідність попадання складає від 50 до 60%. Оскільки розмір кеш-пам’яті на сучасних комп’ютерах перевищує 256 Кбайт, то вірогідність попадання буде вищий 90% (для комп’ютерів з об’ємом пам’яті ~ 256 Мбайт.)

Для реалізації кеш-пам’яті в даний час розроблені ефективні однокристальні контроллери. Найбільш широкого поширення набули контроллери i82385 фірми Intel і A38152 фірми Asustec Microsystems.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]