Ієрархічна структура пам’яті, контент-платформа

Ієрархічна структура пам'яті є традиційним рішенням проблеми зберігання великих обсягів даних (рис. 2.15). На самому верху ієрархії знаходяться регістри процесора. Доступ до регістрів здійснюється швидше за все. Далі йде кеш-пам'ять, обсяг якої зараз становить від 32 Кбайт до декількох мегабайтів. Потім слід основна пам'ять, яка в даний час може вміщати від 16 Мбайт до десятків гігабайтів. Потім йдуть магнітні диски і, нарешті, накопичувачі на магнітній стрічці і оптичні диски, які використовуються для зберігання архівів.

Ієрархічна структура пам'яті, контент-платформа

Мал. 2.15. П'ятирівнева організація пам'яті

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

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

По-третє, збільшується кількість бітів, яке ви отримуєте за 1 долар. Вартість обсягу основної пам'яті становить кілька доларів за мегабайт1,

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

магнітних дисків - кілька центів за мегабайт, а магнітної стрічки - кілька доларів за гігабайт або ще дешевше.

Регістри, кеш-пам'ять і основну пам'ять ми вже розглянули. У наступних розділах ми розповімо про магнітних дисках, а потім приступимо до вивчення оптичних дисків. Накопичувачі на магнітних стрічках ми розглядати не будемо, оскільки використовуються вони рідко; до того ж про них практично нічого сказати.

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

Основні характеристики оперативної пам'яті

Швидкодія (час доступу до пам'яті), Латентність (затримка при передачі даних) - час, необхідний для читання з пам'яті або запису в пам'ять мінімальної порції інформації (наносекунди - 10-9с).

Обсяг (місткість) модуля пам'яті - максимальна кількість інформації на одиницю носія. Ємність оперативної пам'яті сучасного комп'ютера зросла до 4 Гб.

Розрядність - кількість ліній вводу / виводу, які мають мікросхеми оперативної та постійної пам'яті або зовнішні накопичувачі.

За принципами розміщення і пошуку інформації пристрою оперативної пам'яті поділяються на:

Байт - це кількість біт, необхідне для кодування символів в використовуваних стандартних кодах. В даний час байт - це 8 біт.

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

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

У асоціативної пам'яті пошук реалізується апаратно шляхом паралельного порівняння слова-еталона з усіма записаними словами. Для цього кожен набір елементів зберігання програмних об'єктів доповнюється схемами порівняння.

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

Стек може використовуватися в апаратних процедурах, наприклад для збереження контексту програм (див. 1.7 - контекст програми) в процедурах передач управління на підпрограми (включаючи програми обробки переривань) і повернення з підпрограм.

Використання спеціальних команд для організації стека

Багато процесори мають набори команд роботи зі стеком. Найбільш загальними з них є команди:

PUCH А - помістити в стек А, де А - безпосередній операнд, регістр або елемент пам'яті;

POP A - відновити (вибрати) дані з стека в А, де А - регістр або комірка пам'яті.

§ Безпосередня - вказує на певне число, константу (Наприклад: mov A, # 50H - записати число 50H в акумулятор).

§ Регістрова - вказує на певний регістр РОН (регістри загального призначення).

§ Стекова - з використанням спеціального регістра - покажчика стека (SP - Stack Pointer). Використовується для занесення операндів в стек в одному порядку і вилучення в зворотному порядку.

§ Неявна - регістр джерело або регістр приймач мається на увазі в самому коді операції.

Застосування механізму віртуальної пам'яті дозволяє:

§ раціонально управляти оперативною пам'яттю комп'ютера (зберігати в ній тільки активно використовуються області пам'яті);

§ ізолювати процеси один від одного (процес вважає, що монопольно володіє всією пам'яттю).

В даний час ця технологія має апаратну підтримку на всіх сучасних побутових процесорах.

Сторінкова організація віртуальної пам'яті

Сегментна організація віртуальної пам'яті

Кеш або кеш (англ. Cache. Від фр. Cacher - «ховати», вимовляється [kæ# 643;] - «кеш») - проміжний буфер з швидким доступом, що містить інформацію, яка може бути запрошена з найбільшою ймовірністю. Доступ до даних в кеші йде швидше, ніж вибірка вихідних даних з оперативної (ОЗУ) і швидше зовнішньої (жорсткий диск або твердотільний накопичувач) пам'яті, за рахунок чого зменшується середній час доступу і збільшується загальна продуктивність комп'ютерної системи. Прямий доступ до даних, що зберігаються в кеші, програмним шляхом неможливий.

функціонування

Ієрархічна структура пам'яті, контент-платформа

Діаграма кешу пам'яті ЦПУ

Кеш - це пам'ять з більшою швидкістю доступу, призначена для прискорення доступу до даних, що містяться постійно в пам'яті з меншою швидкістю доступу (далі «основна пам'ять»). Кешування застосовується ЦПУ, жорсткими дисками, браузерами, веб-серверами, службами DNS і WINS.

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

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

Наприклад, веб-браузер перевіряє локальний кеш на диску на наявність локальної копії веб-сторінки, що відповідає запрошенням URL. У цьому прикладі URL - це ідентифікатор, а вміст веб-сторінки - це елементи даних.

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

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

У кеші з негайною записом кожну зміну викликає синхронне оновлення даних в основній пам'яті.

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

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

рівні кешу

Кеш центрального процесора розділений на кілька рівнів. В універсальному процесорі в даний час число рівнів може досягати 3. Кеш-пам'ять рівня N + 1 як правило більше за розміром і повільніше за швидкістю доступу і передачі даних, ніж кеш-пам'ять рівня N.

Найшвидшим пам'яттю є кеш першого рівня - L1-cache. По суті, вона є невід'ємною частиною процесора, оскільки розташована на одному з ним кристалі і входить до складу функціональних блоків. У сучасних процесорах зазвичай кеш L1 розділений на два кеша, кеш команд (інструкцій) і кеш даних (Гарвардська архітектура). Більшість процесорів без L1 кешу не можуть функціонувати. L1 кеш працює на частоті процесора, і, в загальному випадку, звернення до нього може проводитися кожен такт. Найчастіше є можливим виконувати декілька операцій читання / запису одночасно. Латентність доступу зазвичай дорівнює 2-4 тактів ядра. Обсяг зазвичай невеликий - не більше 128 Кбайт.

Другим за швидкодією є L2-cache - кеш другого рівня, зазвичай він розташований на кристалі, як і L1. У старих процесорах - набір мікросхем на системній платі. Обсяг L2 кеша від 128 Кбайт до 1-12 Мбайт. В сучасних багатоядерних процесорах кеш другого рівня, перебуваючи на тому ж кристалі, є пам'яттю роздільного користування - при загальному обсязі кеша в nM Мбайт на кожне ядро ​​доводиться по nM / nC Мбайта, де nC кількість ядер процесора. Зазвичай латентність L2 кешу, розташованого на кристалі ядра, становить від 8 до 20 тактів ядра.

Кеш третього рівня найменш швидкодіючий, але він може бути дуже значного розміру - більш 24 Мбайт. L3 кеш повільніше попередніх кешей, але все одно значно швидше, ніж оперативна пам'ять. У багатопроцесорних системах знаходиться в загальному користуванні і призначений для синхронізації даних різних L2.

Іноді існує і 4 рівень кеша, звичайно він розташований в окремій мікросхемі. Застосування кеша 4 рівня виправдано тільки для високопродуктивних серверів імейнфреймов.

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

Інклюзивна архітектура передбачає дублювання інформації кеша верхнього рівня в нижньому (краще фірма Intel).

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

У неексклюзивної кеші можуть вести себе як завгодно.

асоціативність кеша

При однаковому обсязі кешу схема з більшою асоціативністю буде найменш швидкої, але найбільш ефективною (після 4-way ефективність на 1 потік зростає мало).

Оперативний пристрій. ОЗУ - технічний пристрій, що реалізує функції оперативної пам'яті.

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

Фізичні види ОЗУ

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

Пам'ять динамічного типу (англ. DRAM (DynamicRandomAccessMemory))

Пам'ять статичного типу (англ. SRAM (StaticRandomAccessMemory))

Статична оперативна пам'ять з довільним доступом (SRAM, staticrandomaccessmemory) - напівпровідникова оперативна пам'ять, в якій кожен двійковий або трійчастий розряд зберігається в схемі з позитивним зворотним зв'язком, що дозволяє підтримувати стан сигналу без постійної перезапису, необхідної в динамічної пам'яті (DRAM). Проте, зберігати дані без перезапису SRAM може тільки поки є харчування, тобто SRAM залишається енергозалежною типом пам'яті. Довільний доступ (RAM - random access memory) - можливість вибирати для запису / читання будь-який з бітів (тритію) (частіше байтів (Трайтен), залежить від особливостей конструкції), на відміну від пам'яті з послідовним доступом (SAM - sequental access memory).

застосування

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

У пристроях з великим об'ємом ОЗУ робоча пам'ять виконується як DRAM. SRAM'ом ж роблять регістри і кеш-пам'ять.

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

Класифікація

За типом виконання

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

§ Один з внутрішніх ресурсів однокристальної мікроЕОМ (мікроконтролера), як правило FlashROM.

§ Масив даних існує самостійно:

§ монтажні «1» і монтажні «0».

По різновидах мікросхем ПЗУ

§ За технологією виготовлення кристала:

§ ROM - (англ. Read-onlymemory. Постійний запам'ятовуючий пристрій), масочное ПЗУ. виготовляється промисловим способом. Надалі немає можливості змінити записані дані.

§ PROM - (англ. Programmableread-onlymemory. Програмований ПЗУ (ППЗУ)) - ПЗУ. одноразово «прошиває» користувачем.

§ EPROM - (англ. Erasable programmable read-only memory. Перепрограммируемое ПЗУ (ПППЗУ)). Наприклад, вміст мікросхеми К537РФ1 стиралася за допомогою ультрафіолетової лампи. Для проходження ультрафіолетових променів до кристалу в корпусі мікросхеми було передбачено віконце з кварцовим склом.

§ EEPROM - (англ. Electrically erasable programmable read-only memory. Електрично стирається перепрограммируемое ПЗУ). Пам'ять такого типу може стиратися і заповнюватися даними кілька десятків тисяч разів. Використовується в твердотільних накопичувачах. Однією з різновидів EEPROM є флеш-пам'ять (англ. Flash memory).

§ ПЗУ на магнітних доменах. наприклад К1602РЦ5, мало складний пристрій вибірки і зберігало досить великий обсяг даних у вигляді намагнічених областей кристала, при цьому не маючи рухомих частин (див. Комп'ютерна пам'ять). Забезпечувалося необмежену кількість циклів перезапису.

застосування

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