Оптимізація роботи оперативної пам'яті
курсова робота з інформатики
ЗМІСТ
1. Основні параметри оперативної пам'яті
Основна або оперативна пам'ять (Main Memory) комп'ютера використовується для оперативного обміну інформацією (командами і даними) між процесором, зовнішньою пам'яттю (наприклад, дисковою) і периферійними підсистемами (графіка, введення-виведення, комунікації і т. п.). Її інша назва – ОЗП (оперативний запам'ятовуючий пристрій) – приблизно відповідає англійському терміну RAM (Random Access Memory) – пам'ять з довільним доступом. Довільність доступу має на увазі можливість операцій запису або читання з будь-яким осередком ОЗП в довільному порядку. Вимоги, що пред'являються до основної пам'яті:
великий (для електронної пам'яті) об'єм, обчислюваний одиницями, десятками і навіть сотнями мегабайт;
швидкодія і продуктивність, що дозволяє реалізувати обчислювальну потужність сучасних процесорів;
висока надійність зберігання даних – помилка навіть в одному біті в принципі може привести і до помилок обчислень, і до спотворення і втрати даних, іноді й на зовнішніх носіях.
Оперативна, або основна, пам'ять є одним з "трьох китів", на яких тримається "комп'ютерний світ" (процесор, пам'ять і периферійні пристрої). Основний вантаж оперативного зберігання інформації лягає на динамічну пам'ять, яка на сьогоднішній день має найкраще поєднання об'єму, щільності упаковки, енергоспоживання і ціни. Проте їй властиво невисока (за мірками сучасних процесорів) швидкодія, і тут на виручку приходить статична пам'ять, швидкодія якої вища, але досяжна місткість принципово нижча, ніж у динамічної пам'яті.
Швидкодія пам'яті визначається часом виконання операцій запису або зчитування даних. Основними параметрами будь-яких елементів пам'яті є мінімальний час доступу і тривалість циклу звертання. Час доступу (асcess time) визначається як затримка появи дійсних даних на виході пам'яті відносно початку циклу читання. Тривалість циклу визначається як мінімальний період наступних один за одним звернень до пам'яті, причому цикли читання і запису можуть вимагати різних витрат часу. В цикл звертання окрім активної фази самого доступу входить і фаза відновлення (повернення пам'яті до початкового стан), яка порівнянна за часом з активною. Тимчасові характеристики самих запам'ятовуючих елементів визначаються їх принципом дії і технологією виготовлення, що використовується.
Продуктивність пам'яті можна характеризувати як швидкість потоку записуваних або прочитуваних даних і вимірювати в мегабайтах за секунду. Продуктивність підсистеми пам'яті нарівні з продуктивністю процесора суттєвим чином визначає продуктивність комп'ютера. Виконуючи певний фрагмент програми, процесору доведеться, по-перше, завантажити з пам'яті відповідний програмний код, а по-друге, провести необхідні обміни даними, і чим менше часу буде потрібно підсистемі пам'яті на забезпечення цих операцій, тим краще.
Продуктивність підсистеми пам'яті залежить від типу і швидкодії вживаних запам'ятовуючих елементів, розрядності шини пам'яті і деяких "хитрощів" архітектури.
Продуктивність мікросхем або модулів пам'яті підвищують застосуванням різних варіантів конвеєризації всередині модуля пам'яті.
Конвеєр (Pipe line) в електроніці по своїй ідеї нагадує виробничий: складний процес обробки виробу розбивається на ступені (stage), виконувані на спеціалізованих робочих місцях. Виріб послідовно просувається по всіх ступенях, на кожному ступені виконується тільки одна операція, але дуже швидко. Один виріб можна б було обробити на одному місці і швидше (скоротити хоча б транспортні витрати), але коли вироби йдуть потоком, ефект підвищення продуктивності при конвеєрному методі безперечний. Конвеєрна архітектура в PC успішно розвивається в мікропроцесорах, а останніми роками дісталася і до елементів пам'яті.
Розрядність шини пам'яті – це кількість байт (або битий), з якими операція читання або запису може бути виконана одночасно. Розрядність основної пам'яті звичайно узгоджується з розрядністю зовнішньої шини процесора (1 байт – для 8088; 2 байти – для 8086, 80286, 386SX; 4 байти – для 386DX, 486; 8 байт – для Pentium і старше). Цілком очевидно, що при однаковій швидкодії мікросхем або модулів пам'яті продуктивність блоку з більшою розрядністю буде вище, ніж у малорозрядного. Саме з метою підвищення продуктивності в 32-бітного (по внутрішніх регістрах) процесора Pentium зовнішня шина, що пов'язує його з пам'яттю, має розрядність 64 біти. Бажання виробників процесорів і системної плати заощадити на розрядності пам'яті завжди приводить до зниження продуктивності: комп'ютери на процесорах з повнорозрядною шиною (8086, 386DX) більш ніж на 50% обганяють своїх "молодших братів" (8088, 386SX) при однаковій тактовій частоті. В той же час існують чіпсети, що працюють з 32-бітною пам'яттю навіть для Pentium, але при нинішніх цінах на пам'ять ефективність подібної економії сумнівна.
Банком пам'яті називають комплект мікросхем або модулів (а також їх посадочних місць – "ліжечок" для мікросхем, слотів для SIMM або DIMM), що забезпечує необхідну для даної системи розрядність збережених даних. Працездатним може бути тільки повністю заповнений банк. Усередині одного банку практично завжди повинні застосовуватися однакові (по типу і об'єму) елементи пам'яті.
Банк пам'яті для 386SX звичайно складається з пари "коротких" (32-pin) SIMM або набирається DIP-мікросхемами, для 386DX – з чотирьох 32-pin SIMM. У комп'ютерах на 486-х процесорах банком є один "довгий" (72-pin) SIMM, на старих платах буває можливість набору банку четвіркою 32-pin SIMM (іноді їх установка не допускає використовування одного з 72-pin SIMM). В комп'ютерах на процесорі Pentium і старше банком є пара 72-pin SIMM або один модуль DIMM. На деяких платах базовий об'єм пам'яті (один банк) може бути запаяний на системну плату.
Якщо встановлюваний об'єм пам'яті набирається декількома банками, з'являється резерв підвищення продуктивності за рахунок застосування чергування банків (bank interleaving). Ідея чергування полягає в тому, що суміжні блоки даних (розрядність такого блоку даних відповідає розрядності банку) розташовуються по черзі в різних банках. Тоді