Ростовський Державний Університет p>
Кафедра радіофізики p>
Реферат на тему: p>
«Підсистема пам'яті сучасних комп'ютерів» p>
Студент: Ілініч До . А. p>
Ростов-на-дону p>
2001 p>
Зміст: p>
1. Ієрархічна організація пам'яті 3 p>
a. Оперативна пам'ять 3 b. Дискова пам'ять 3 c. Пам'ять на зовнішніх носіях 3 d. Кеш-пам'ять 3 e. Організація кеш-пам'яті 4 p>
I. Розміщення блоку в кеш-пам'яті 4 p>
II. Пошук блоку, що знаходиться в кеш-пам'яті 5 p>
III. Заміщення блоку кеш-пам'яті при промаху 5 p>
IV. Що відбувається під час запису 6 p>
2. Динамічна пам'ять 7 p>
3. Загальний принцип доступу до даних 8 p>
4. Традиційна пам'ять з асинхронним інтерфейсом 9 p>
a. Традиційна пам'ять 9 b. Пам'ять FPM зі швидким сторінковим доступом 9 c. Пам'ять EDO, розширений висновок даних 9 d. Пам'ять BEDO, пакетна передача даних 9 p>
5. Пам'ять з синхронним інтерфейсом 10 p>
a. Синхронна динамічна пам'ять SDRAM 10 b. Пам'ять DDR SDRAM, подвоєна швидкість даних 12 p>
6. Організація оперативної пам'яті 12 p>
a. Банки пам'яті 12 b. Чергування банків 13 c. Шляхи збільшення продуктивності 13 p>
7. Пам'ять Rambus DRAM 14 p>
8. Модулі пам'яті 18 p>
9. Віртуальна пам'ять і організація захисту пам'яті 19 p>
a. Концепція віртуальної пам'яті 19 b. Сторінкова організація пам'яті 20 c. Сегментація пам'яті 21 p>
10. Термінологія 22 p>
11. Література 26 p>
Ієрархічна організація пам'яті p>
Пам'ять комп'ютера має ієрархічну структуру, центральним шаромякої є оперативна пам'ять - ОЗУ або RAM (Random Access Memory --пам'ять з довільним доступом). Оперативна пам'ять безпосередньодоступна процесору: у ній зберігається що виконується в даний момент частинапрограмного коду та дані, до яких процесор може звертатися за допомогоюоднією з багатьох команд. Довільного доступу на увазі, що процесорв будь-який момент може вважати чи записати будь-який байт (слово, подвійнеслово ...) з цієї пам'яті. 32-розрядні процесори x86 здатні адресуватидо 4 Гбайт фізичної пам'яті (крім 386SX, урізаних до 16 Мбайт), апроцесори P6 (Pentium Pro, Pentium II і старше) в режимі розширення адреси
- До 64 Гбайт. З цього потенційно доступного простору саме дляоперативної пам'яті використовується тільки частина: більшість системних платпоки що обмежують обсяг ОЗУ що встановлюється на рівні 256 Мбайт-1 Гбайт. Уцьому ж просторі розташовується і постійна пам'ять - ПЗУ, або ROM (Read
Only Memory), яка в звичайній роботі тільки читається. У ПЗУ розташовується
BIOS (базова система вводу-виводу) комп'ютера і деякі інші елементи. P>
Наступний рівень в ієрархії - дискова пам'ять. На відміну від ОЗУ і ПЗУ,для звернення до будь-якого елементу, що зберігається в дискової пам'яті, процесорповинен виконати певну процедуру або підпрограму, код якоїзнаходиться в оперативній або постійної пам'яті. Дискова пам'ять єблочної - процедура доступу до цієї пам'яті оперує блоками фіксованогодовжини (зазвичай це сектор з розміром 512 байт). Процедура доступу здатналише скопіювати цілу кількість образів блоків з оперативної (абопостійної) пам'яті на диск або назад. Дискова пам'ять є основнимсховищем файлів з програмами і даними. Крім того, вона використовується ідля організації віртуальної оперативної пам'яті: не використовується в даниймомент блок інформації (сторінка) з оперативної пам'яті вивантажується надиск, а на його місце з диска підкачуються сторінка, необхідна процесорудля роботи. p>
Остання щабель ієрархії - пам'ять на зовнішніх носіях, або простозовнішня пам'ять. Вона, так же, як і дискова, є сховищем файлів, ідоступ до неї здійснюється по блоках. p>
Ми перерахували програмно-видиму частину "айсберга" пам'яті - доступнудовільно або по блоках, прямо або послідовно. Є ще й "підводний"частина - кеш-пам'ять. Оперативна пам'ять за мірками сучасних процесорівволодіє дуже низькою швидкодією, і, звернувшись за даними,процесор змушений простоювати кілька тактів до готовності даних.
Починаючи з процесорів 80386, оперативну пам'ять стали кешувати (ця ідеявикористовувалася і в "древніх" великих машинах, де було СОЗУ --сверхоператівное ЗУ). Ідея кешування ОЗУ полягає в застосуванніневеликого (порівняно з ОЗУ) пристрою, що запам'ятовує - кеш-пам'яті збільш високою швидкодією. Невеликого - тому, що за техніко -економічних причин великий обсяг дуже швидкої пам'яті обходиться занадтодорого. У цій пам'яті зберігається копія вмісту частини ОЗП, до якої вданий момент процесор найбільш інтенсивно звертається. Визначати, якучастину вмісту ОЗУ копіювати в даний момент часу, повинен контролеркеша. Він це може робити, виходячи з припущення про локальності зверненьдо даних і послідовності вибірок команд. Кеш-пам'ять не даєдодаткового адресується простору, її присутність для програминепомітно. p>
Організація кеш-пам'яті p>
Концепція кеш-пам'яті виникла досить рано і сьогодні кеш-пам'ятьє практично в будь-якому класі комп'ютерів, а в деяких комп'ютерах --у множині. p>
Типові значення ключових параметрів для кеш-пам'яті робочих станцій ісерверів - типовий набір параметрів, який використовується для опису кеш -пам'яті: p>
| Розмір блоку (рядки) | 4-128 байт |
| Час потрапляння (hit time) | 1-4 такту синхронізації (зазвичай 1 |
| | Такт) |
| Втрати при промаху (miss penalty) | 8-32 такту синхронізації |
| (Час доступу - access time) | (6-10 тактів синхронізації) |
| (Час пересилання - transfer time) | (2-22 такту синхронізації) |
| Частка промахів (miss rate) | 1% -20% |
| Розмір кеш-пам'яті | 4 Кбайт - 16 Мбайт | p>
Розглянемо організацію кеш-пам'яті більш детально, відповідаючи на чотирипитання про ієрархію пам'яті. p>
Розміщення блоку в кеш-пам'яті p>
Принципи розміщення блоків в кеш-пам'яті визначають три основних типи їхорганізації: p>
Якщо кожен блок основної пам'яті має тільки одне фіксоване місце,на якому він може з'явитися в кеш-пам'яті, то така кеш-пам'яті називаєтьсякешем з прямим відображенням (direct mapped). Це найбільш простаорганізація кеш-пам'яті, при якій для відображення адрес блоків основнийпам'яті на адреси кеш-пам'яті просто використовуються молодші розряди адресиблоку. Таким чином, всі блоки основної пам'яті, що мають однакові молодшірозряди у своєму адресу, потрапляють в один блок кеш-пам'яті, тобто p>
(адреса блоку кеш-пам'яті) = p>
(адреса блоку основної пам'яті) mod (число блоків у кеші) p>
Якщо деякий блок основної пам'яті може розташовуватися на будь-якому місцікеш-пам'яті, то кеш називається повністю асоціативним (fully associative). p>
Якщо деякий блок основної пам'яті може розташовуватися на обмеженомубезлічі місць в кеш-пам'яті, то кеш називається множественно-асоціативним
(set associative). Зазвичай безліч є групою з двох абобільшого числа блоків у кеші. Якщо безліч складається з n блоків, то такерозміщення називається множественно-асоціативним з n каналами (n-way setassociative). Для розміщення блоку перш за все необхідно визначитибезліч. Безліч визначається молодшими розрядами адреси блоку пам'яті
(індексом): p>
(адреса безлічі кеш-пам'яті) = p>
(адреса блоку основної пам'яті) mod (число множин у кеш-пам'яті) p>
Далі, блок може розміщуватися на будь-якому місці даної множини. p>
Діапазон можливих організацій кеш-пам'яті дуже широкий: кеш-пам'ять зпрямим відображенням є просто одноканальна множественно-асоціативнакеш-пам'ять, а повністю асоціативна кеш-пам'ять з m блоками може бутиназвана m-канального множественно-асоціативної. У сучасних процесорахяк правило використовується або кеш-пам'яті з прямим відображенням, або двох-
(чотирьох-) канальна множественно-асоціативна кеш-пам'ять. p>
Пошук блоку що знаходиться в кеш-пам'яті p>
У кожного блоку в кеш-пам'яті є адресний тег, який вказує, якийблок в основній пам'яті даний блок кеш-пам'яті становить. Ці мітки зазвичайодночасно порівнюються з виробленим процесором адресою блоку пам'яті. p>
Крім того, необхідний спосіб визначення того, що блок кеш-пам'ятімістить достовірну або придатну для використання інформацію. Найбільшзагальним способом вирішення цієї проблеми є додавання до тегу такзваного біта достовірності (valid bit). p>
Адресація множественно-асоціативної кеш-пам'яті здійснюється шляхомподілу адреси, що надходить з процесора, на три частини: поле зміщеннявикористовується для вибору байти всередині блоку кеш-пам'яті, поле індексувизначає номер множини, а поле тега використовується для порівняння. Якщозагальний розмір кеш-пам'яті зафіксувати, то збільшення ступеняасоціативності призводить до збільшення кількості блоків у множині, прицьому зменшується розмір індексу і збільшується розмір тега. p>
Заміщення блоку кеш-пам'яті при промаху p>
При виникненні промаху, контролер кеш-пам'яті повинен вибратищо підлягає заміщенню блок. Користь від використання організації з прямимвідображенням полягає в тому, що апаратні рішення тут найбільшпрості. Вибирати просто нема чого: на потрапляння перевіряється тільки один блокі тільки цей блок може бути заміщений. При повністю асоціативної абомножественно-асоціативної організації кеш-пам'яті є декілька блоків,з яких треба вибрати кандидата в разі промаху. Як правило длязаміщення блоків застосовуються дві основні стратегії: випадкова і LRU. p>
У першому випадку, щоб мати рівномірний розподіл, блоки-кандидативибираються випадково. У деяких системах, щоб отримати відтворюванеповедінка, що особливо корисно під час налагодження апаратури, використовуютьпсевдовипадковий алгоритм заміщення. p>
У другому випадку, щоб зменшити ймовірність викидання інформації,яка скоро може знадобитися, всі звернення до блоків фіксуються.
Замінюється той блок, який не використовувався найдовше (LRU - Least-
Recently Used). P>
Гідність випадкового способу полягає в тому, що його простішереалізувати в апаратурі. Коли кількість блоків для підтримки трасизбільшується, алгоритм LRU стає все більш дорогим і часто тількинаближеним. p>
Відмінності у частках промахів при використанні алгоритму заміщення LRU p>
і випадкового алгоритму (при декількох розмірах кешу і різних асоціативність при розмірі блоку 16 байт): p>
| асоціативність: | 2-канальна | 4-канальна | 8-канальна |
| Розмір кеш-пам'яті | LRU, Random | LRU, Random | LRU, Random |
| 16 KB | 5.18%, 5.69% | 4.67%, 5.29% | 4.39%, 4.96% |
| 64 KB | 1.88%, 2.01% | 1.54%, 1.66% | 1.39%, 1.53% |
| 256 KB | 1.15%, 1.17% | 1.13%, 1.13% | 1.12%, 1.12% | p>
Що відбувається під час запису p>
При зверненнях до кеш-пам'яті на реальних програмах переважаютьзвернення з читання. Всі звернення за командами є зверненнями зчитання і більшість команд не пишуть у пам'ять. Зазвичай операції записустановлять менше 10% загального трафіку пам'яті. Бажання зробити загальний випадокшвидшим означає оптимізацію кеш-пам'яті для виконання операційчитання, однак при реалізації високопродуктивної обробки данихне можна нехтувати і швидкістю операцій запису. p>
На щастя, загальний випадок є і більш простим. Блок з кеш-пам'ятіможе бути прочитаний в той же самий час, коли читається і порівнюється йоготег. Таким чином, читання блоку починається відразу як тільки стаєдоступним адресу блоку. Якщо читання відбувається з попаданням, то блокнегайно направляється в процесор. Якщо ж відбувається промах, то відзаздалегідь вважає блок немає ніякої користі, правда немає і ніякої шкоди. p>
Проте при виконанні операції запису ситуація докоріннозмінюється. Саме процесор визначає розмір запису (зазвичай від 1 до 8байтів) і тільки ця частина блоку може бути змінена. У загальному випадку цемає на увазі виконання над блоком послідовності операцій читання -модифікація-запис: читання оригіналу блоку, модифікацію його частини і записнового значення блоку. Більш того, модифікація блоку не може починатися дотих пір, поки перевіряється тег, щоб переконатися в тому, що зверненняє попаданням. Оскільки перевірка тегів не може виконуватисяпаралельно з іншою роботою, то операції запису забирають більше часу,чим операції читання. p>
Дуже часто організація кеш-пам'яті в різних машинах відрізняється саместратегією виконання запису. Коли виконується запис у кеш-пам'ять єдві базові можливості: наскрізна запис (write through, store through) - інформаціязаписується в два місця: у блок кеш-пам'яті і в блок більш низького рівняпам'яті. запис із зворотним копіюванням (write back, copy back, store in) --інформація записується тільки в блок кеш-пам'яті. Модифікований блок кеш -пам'яті записується в основну пам'ять тільки коли він заміщується. Дляскорочення частоти копіювання блоків при заміщенні зазвичай з кожним блокомкеш-пам'яті зв'язується так званий біт модифікації (dirty bit). Цей бітстану показує чи був модифікований блок, що знаходиться в кеш-пам'яті.
Якщо він не модифікований, то зворотне копіювання скасовується, оскількибільш низький рівень містить ту ж саму інформацію, що і кеш-пам'ять. p>
Обидва підходи до організації записи мають свої переваги і недоліки.
Під час запису із зворотним копіюванням операції запису виконуються зі швидкістюкеш-пам'яті, і декілька записів в один і той же блок вимагають тільки одногозапису в пам'ять більш низького рівня. Оскільки в цьому разі звернення доосновної пам'яті відбуваються рідше, взагалі кажучи потрібна менша смугапропускання пам'яті, що дуже привабливо для мультипроцесорних систем.
При наскрізний запису промахи з читання не впливають на записи в більш високийрівень, і, крім того, наскрізний запис простіше для реалізації, ніж запис ззворотним копіюванням. Наскрізна запис має також перевага в тому, щоосновна пам'ять має найбільш свіжу копію даних. Це важливо вмультипроцесорних системах, а також для організації введення/виводу. p>
Коли процесор очікує завершення запису при виконанні наскрізноїзапису, то говорять, що він призупиняється для запису (write stall).
Загальний прийом мінімізації зупинили по запису пов'язаний з використанням буферазапису (write buffer), який дозволяє процесору продовжити виконаннякоманд під час оновлення вмісту пам'яті. Слід зазначити, щозупинили по запису можуть виникати і при наявності буфера запису. p>
При промаху під час запису є дві додаткові можливості: розмістити запис в кеш-пам'яті (write allocate) (називається такожвибіркою при записі (fetch on write)). Блок завантажується в кеш-пам'ять, слідомза чим виконуються дії аналогічні що виконуються при виконанні записуз попаданням. Це схоже на промах при читанні. не розміщувати запис в кеш-пам'яті (називається також записом в оточення
(write around)). Блок модифікується на більш низькому рівні і незавантажується у кеш-пам'ять. p>
Зазвичай в кеш-пам'яті, що реалізує запис із зворотним копіюванням,використовується розміщення запису в кеш-пам'яті (з надією, що наступназапис в цей блок буде перехоплена), а в кеш-пам'яті з наскрізною записомрозміщення запису в кеш-пам'яті часто не використовується (оскільки подальшазапис до цього блоку все одно піде в пам'ять). p>
Цілком зрозуміло, що продуктивність комп'ютера безпосередньозалежить від продуктивності процесора і продуктивності оперативноїпам'яті. Теоретична продуктивність (пропускна здатність) пам'ятіпропорційна розрядності і тактовою частотою шини і назадпропорційна сумарної тривалості пакетного циклу. Для підвищення цієїпродуктивності збільшують розрядність шини (так, починаючи з P5 32 --розрядні процесори мають 64-розрядну системну шину), тактову частоту
(з 66 МГц нарешті піднялися до 100 з прицілом на 133 МГц). При цьому,природно, прагнуть і до зменшення числа терактів в пакетному циклі. Крімтого, шина P6 дозволяє процесору виставити до 16 запитів конкуруючихтранзакцій, так що у підсистеми пам'яті є теоретична можливість
"Багатоверстатного" роботи. P>
Динамічна пам'ять p>
Тепер подивимося на оперативну пам'ять зсередини. Протягом уже трьохдесятиліть в якості основної пам'яті використовують масиви осередківдинамічної пам'яті. Кожна комірка містить всього лише один КМОП-транзистор
(комплементарні польові траезістори), завдяки чому досягається високащільність упаковки осередків при низькій ціні. Запам'ятовуючих елементів у нихє конденсатор (ємність затвора), та осередок може пам'ятати своєстан недовго - всього десятки мілісекунд. Для тривалого зберіганняпотрібно регенерація - регулярне "освіження" (refresh) пам'яті, за що цяпам'ять і отримала назву "динамічна" - DRAM (Dynamic RAM). Осередкиорганізуються в двовимірні матриці, і для звернення до комірки потрібнопослідовно подати два вибирають сигналу - RAS # (Row Access Strobe,строб строки) і CAS # (Column Access Strobe, стрибає стовпця). Тимчасовадіаграма циклів читання традиційної динамічної пам'яті наведена намалюнку (цикли запису для простоти тут розглядати не будемо).
Мікросхеми динамічної пам'яті традиційно мають мультиплексованих шинуадреси (MA). Під час дії RAS # на ній повинен бути адреса рядки, підчас дії CAS # - адреса стовпця. Інформація на вихід шини данихщодо початку циклу (сигналу RAS #) з'явиться не раніше, ніж черезінтервал TRAC, який називається часом доступу. Є також мінімальназатримка даних щодо імпульсу CAS # (TCAC), і мінімально необхідніінтервали пасивності сигналів RAS # і CAS # (часи передзарядження). Всі ціпараметри та визначають межу продуктивності пам'яті. Ключовий параметрмікросхем - час доступу - за всю історію вдалося поліпшити всього напорядок - з сотень до кількох десятків наносекунд. За меншийісторичний період тільки тактова частота процесорів x86 виріс на 2порядку, так що розрив між потребами процесорів і можливостямикомірок пам'яті збільшується. Для подолання цього розриву, по-перше,збільшують розрядність даних пам'яті, а по-друге, будують навколо масивівкомірок пам'яті різні хитрі оболонки, що прискорюють процес доступу до даних.
Все, навіть "наймодніші", типи пам'яті - SDRAM, DDR SDRAM і Rambus DRAMмають запам'ятовуючий ядро, яке обслуговується описаним вище способом. p>
p>
Тимчасова діаграма читання динамічної пам'яті p>
Загальний принцип доступу до даних p>
Масив даних являє собою якусь подібність координатної сітки, деє положення по горизонталі (адреса рядка) і по вертикалі (адресастовпця). На перетині кожного конкретного адреси рядка і стовпцязнаходиться одиничний «будівельний елемент» пам'яті - осередок, якийявляє собою ключ (транзистор) і запам'ятовуючий елемент (конденсатор).
Наприклад, для читання чи запису однієї комірки пам'яті необхідно п'ять тактів.
Спочатку на шину виставляється адреса рядка. Потім подається сигнал RAS #,який є свого роду контрольним сигналом, що передає отриманийадреса для запису в спеціально відведене місце - регістр мікросхеми пам'яті.
Після цього передається сигнал стовпця, наступним тактом за яким ідесигнал підтвердження приймається адреси, але вже для стовпця - CAS #. І,нарешті слід операція читання-запису до/з комірки, контрольована сигналомдозволу - WE #. Однак, якщо зчитуються сусідні клітинки, то тоді немаєнеобхідності передавати щоразу адреса рядка або стовпця - процесор
«Сподівається», що зчитує дані розташовані по сусідству. Тому, назчитування кожної наступної комірки знадобиться вже 3 такту системноїшини. Звідси і беруть свій початок існування певних схемфункціонування (таймінги) окремо взятої різновиди пам'яті: x-yyy -yyyy-..., де "x" - кількість тактів шини, необхідне для читання першихбита, а у - для всіх наступних. Так, цикл доступу процесора до пам'ятіскладається з двох фаз: запиту (Request) і відповіді (Response). Фаза запитускладається з трьох дій: подання адреси, подача запиту (читання-запису) іпідтвердження (необов'язково). У фазу відповіді входить видача запитуванихданих і підтвердження прийому. Досить часто відбувається читання чотирьохсуміжних клітинок, тому багато типів пам'яті спеціально оптимізовані дляданого режиму роботи, і в порівняльних характеристиках швидкодіїзазвичай наводиться тільки кількість циклів, необхідне для читання першихчотирьох осередків. Тут мова йде про пакетної передачі, що має на увазіподачу одного початкового адреси і подальшу вибірку по осередках ввстановленому порядку. Такого роду передача покращує швидкість доступу доділянок пам'яті із заздалегідь визначеними послідовними адресами. Зазвичайпроцесор виробляє адресні пакети на чотири передачі даних по шині,оскільки передбачається, що система автоматично поверне дані звказаної комірки і трьох наступних за нею. Перевага такої схеми очевидно
- На передачу чотирьох порцій даних потрібно всього одна фаза запиту.
Наприклад, для пам'яті типу FPM DRAM застосовується найпростіша схема 5-333 -
3333 -... Для пам'яті типу EDO DRAM після першого зчитування блоку даних,збільшується час доступності даних того ряду, до якого відбуваєтьсядоступ в даний момент, при цьому зменшуючи час отримання пакету даних,і пам'ять вже може працювати за схемою 5-222-2222 -... Синхронна пам'ять типу
SDRAM, на відміну від асинхронної (FPM і EDO), «вільна» від передачі упроцесор сигналу підтвердження, і видає і приймає дані в строгопевні моменти часу (тільки спільно з сигналом синхронізаціїсистемної шини), що виключає неузгодженість між окремимикомпонентами, спрощує систему управління і дає можливість перейти набільш «коротку» схему роботи: 5-111-1111 -... Тому в розглянутомупункті меню настройки можна зустріти варіанти допустимих значень дляциклів звертання до пам'яті: x333 або x444 - оптимально підходить для FPM
DRAM, x222 або x333 - для EDO DRAM, і x111 або x222 - для SDRAM. P>
Традиційна пам'ять з асинхронним інтерфейсом p>
У традиційній пам'яті сигнали RAS # і CAS #, обслуговуючі запам'ятовуючіосередку, вводяться безпосередньо з відповідних лініях інтерфейсу. Всяпослідовність процесів в пам'яті прив'язується саме до цих зовнішнімсигналами. Даних при читанні будуть готові через час TCAC після сигналу
RAS #, але не раніше, ніж через TRAC після сигналу RAS #. P>
На основі стандартних осередків будується пам'ять з швидким сторінковимдоступом - FPM (Fast Page Mode) DRAM. Тут для доступу до осередків,розташованим в різних колонках одного рядка, використовується всього одинімпульс RAS #, під час якого виконується серія звернень за допомогоютільки імпульсів CAS #. Неважко здогадатися, що в пакетних циклах доступувиходить виграш у часі (пакети укладаються в сторінки
"Природним" чином). Так, пам'ять FPM з часом доступу 60-70 нс причастоті шини 66 МГц може забезпечити цикл читання 5-3-3-3. p>
Наступним кроком стала пам'ять EDO (Extended Data Out, розширений висновокданих) DRAM. Тут в мікросхеми пам'яті ввели регістри-засувки, ізчитує дані присутні на виході навіть після підйому CAS #.
Завдяки цьому можна скоротити час дії CAS # і не чекаючи, покизовнішня схема прийме дані, приступити до передзарядження лінії CAS #. Такимчином можна прискорити передачу даних всередині пакету і на тих же осередкахпам'яті отримати цикл 5-2-2-2 (60 нс, 66 МГц). Ефект отриманого прискореннякомп'ютера, отриманого досить простим способом, був еквівалентнийзапровадження вторинного кеша, що і послужило приводом для міфу про те, що "в
EDO вбудований кеш ". Сторінковий цикл для пам'яті EDO називають і
"Гіперстранічним", так що друга назва у цій пам'яті - HPM (Hyper Page
Mode) DRAM. Регістр-клямка ввів в мікросхему пам'яті елемент конвеєра --імпульс CAS # передає дані на цей ступінь, а поки зовнішня схема зчитуєїх, лінія CAS # готується до наступного імпульсу. p>
Пам'ять BEDO (Burst EDO, пакетне EDO) DRAM орієнтована на пакетнупередачу. Тут повна адреса (з стробі RAS # і CAS #) подається тільки впочатку пакетного циклу; подальші імпульси CAS # адресу не стробіруют, атільки виводять дані - пам'ять вже "знає", які наступні адресибудуть потрібні в пакеті. Результат - за тих самих умов цикл 5-1-1-1. P>
Пам'ять EDO з'явилася за часів Pentium і стала застосовуватися також усистемах на 486. Вона витіснила пам'ять FPM і навіть стала її дешевше. Пам'ять
BEDO широкого поширення не отримала, оскільки їй вже "наступала нап'яти "синхронна динамічна пам'ять. p>
Перераховані вище типи пам'яті є асинхронними по відношенню дотактірованію системної шини комп'ютера. Це означає, що всі процесиініціюються тільки імпульсами RAS # і CAS #, а завершуються через якийсьпевний (для даних мікросхем) інтервал. На час цих процесорівшина пам'яті виявляється зайнятою, причому, в основному, очікуванням даних. p>
Пам'ять з синхронним інтерфейсом - SDRAM і DDR SDRAM p>
Для обчислювального конвеєра, в якому можуть виконуватися паралельнокілька процесів і запитів до даних, набагато зручніше синхроннийінтерфейс. У цьому випадку всі події прив'язуються до фронтах загального сигналусинхронізації, і система чітко "знає", що, виставивши запит на дані втакому-то такті, вона отримає їх через певне число тактів. А міжцими подіями на шину пам'яті можна виставити і інший запит, і якщо вінадресований до вільного банку пам'яті, почнеться прихована (latency) фаза йогообробки. Таким чином вдається підвищити продуктивність підсистемипам'яті та її шини, причому не за рахунок шаленого збільшення числа проводів
(збільшення розрядності і числа незалежних банків, про що буде сказанопізніше). p>
Мікросхеми синхронної динамічної пам'яті SDRAM (Synchronous DRAM)являє собою конвейерізірованние пристрої, які на основі цілкомзвичайних комірок (час доступу - 50-70 нс) забезпечують цикл 5-1-1-1, але вжепри частоті шини 100 МГц і вище. По складу сигналів інтерфейс SDRAM близькийдо звичайної динамічної пам'яті: крім входів синхронізації, тут ємультиплексованих шина адреси, лінії RAS #, CAS #, WE (дозвіл запису)і CS (вибір мікросхеми) і, звичайно ж, лінії даних. Усі сигналистробіруются по позитивного перепаду синхроімпульсів, комбінаціякеруючих сигналів в кожному такті кодує певну команду. Здопомогою цих команд організується та ж послідовність внутрішніхсигналів RAS # і CAS #, яка розглядалася і для пам'яті FPM. p>
Кожна мікросхема внутрішньо може бути організована як набір з 4банків з власними незалежними лініями RAS #. Для початку будь-якого циклузвернення до пам'яті потрібно подати команду ACT, що запускаєвнутрішній формувач RAS # для потрібної рядки обраного банку. Черездеяку кількість тактів можна вводити команду читання RD або запису WR,в якій передається номер стовпчика першого циклу пакета. За цією командоюзапускається внутрішній формувач CAS #. Передача даних для циклівзапису та читання розрізняється. Дані для першої передачі пакету записувстановлюються разом з командою WR. У наступних тактах подаються данідля інших передач пакета. Перші дані пакета читання з'являються нашині через певну кількість тактів після команди. Це число,зване CAS # Latency (CL), визначається часом доступу TCAC і тактовоючастотою. У наступних тактах будуть видані решта даних пакета. Післязвернення необхідно деактивувати банк - перевести внутрішній сигнал RAS #в пасивний стан, тобто здійснити передзарядження (precharge). Це можебути зроблено або явно командою PRE, або автоматично (якмодифікований варіант команд RD або WR. Внутрішні сигнали CAS #формуються автоматично за командами обігу та додаткових турбот невимагають. p>
Регенерація виконується за командою REF, за заданий період регенерації
(стандартний 64 мс) повинно бути виконано 4096 або 8192 (в залежності відобсягу мікросхеми) команд REF. p>
На перший погляд з цього опису не видно ніяких особливих переваг
SDRAM в порівнянні з BEDO. Однак синхронний інтерфейс у поєднанні звнутрішньої мультібанковой організацією забезпечує можливість підвищенняпродуктивності пам'яті при множинних зверненнях. Тут мається наувазі здатність сучасних процесорів формувати наступні запити допам'яті, не чекаючи результатів виконання попередніх. У SDRAM післявибору рядка (активації банку) її можна закривати не відразу, а післявиконання серії звернень до її елементів, причому як по запису, так і зачитання. Ці звернення будуть виконуватися швидше, оскільки для них непотрібно подачі команди активації і вичікування TRCD. Максимальний часутримання рядка відкритої обмежується періодом регенерації. Можливістьроботи з відкритою рядком була використана вже в FPM DRAM. Однак у SDRAMможна активувати рядки у кількох банках - кожну своєю командою ACT,ця особливість і стоїть за словами "Single-pulsed RAS # interface" вперерахування ключових особливостей SDRAM. Активувати рядок можна підчас виконання будь-якої операції з іншим банком. Звернення до відкритоїрядку необхідного банку виконується за командами RD і WR, у яких вЯк параметри крім адреси стовпця фігурує і номер банку. Такимчином можна так спланувати транзакції, що шина даних в кожному тактібуде нести чергову порцію даних, і такий потік буде тривати нелише в межах одного пакету, а й для серії звернень до різних областейпам'яті. До речі, тримати відкритими можна і рядки в банках різних мікросхем,об'єднаних загальною шиною пам'яті. p>
p>
Тимчасова діаграма читання SDRAM p>
Мікросхеми SDRAM оптимізовані для пакетної передачі. У них приініціалізації програмується довжина пакету та операційний режим. Пакетнийрежим може включатися як для всіх операцій (normal), так і тільки длячитання (Multiple Burst with Single Write). Цей вибір дозволяєоптимізувати пам'ять для роботи або з WB, або з WT-кешем. Звернемоувагу, що внутрішній лічильник адреси працює за модулем, який дорівнюєзапрограмованої довжині пакетного циклу (наприклад, при довжині пакета 4 вінне дозволяє перейти кордон звичайного четирехелементного пакетного циклу). p>
Пакетні цикли можуть перериватися (примусово завершаться)наступними командами, при цьому, що залишилися, адреси відкидаються. Намалюнку наведено приклад переривання команди читання за адресою A командоючитання за адресою B (мається на увазі, що для адреси B рядок вже відкрита).
У разі переривань пакетів, як і при повних пакетах, шина даних приактивованих банках може бути корисно навантаженої в кожному такті, завинятком випадку читання, наступного за записом. При цьому шина будепростоювати CL тактів. У команді WR є можливість блокування записуданих будь-якого елемента пакета - для цього досить у його такті встановитивисокий рівень сигналу маскування. p>
Мікросхеми SDRAM мають засоби енергозбереження. В режимісаморегенераціі Self Refresh мікросхеми періодично виконують циклирегенерації по внутрішньому таймеру, в цьому режимі вони не реагують назовнішні сигнали і зовнішня синхронізація може бути зупинена. В режимізниженого споживання Power Down мікросхема не сприймає команди ірегенерація не виконується, тому тривалість перебування в ньомуобмежена періодом регенерації. p>
Синхронний інтерфейс дозволяє досить ефективно використовувати шину ізабезпечити на частоті 100 МГц пікову продуктивність 100 Мбіт/пин (на 1висновок шини даних). SDRAM використовують у складі модулів DIMM з 8-байтногорозрядністю, що дає продуктивність 800 Мбайт/с. Однак цятеоретична продуктивність не враховує накладні витрати нарегенерацію і має на увазі, що необхідні сторінки вже відкриті. Череззазначених вище обмежень на реальному довільному потоці запитівпродуктивність, звичайно ж, буде нижчою. Потенційні можливості майжеодночасного обслуговування безлічі запитів, що надаєтьсямікросхемами SDRAM, будуть реалізовані лише при досить "розумному"контролері пам'яті. Від його передбачливості ефективність пам'ятізалежить, мабуть, більше, ніж у простих FPM і EDO DRAM. p>
Пам'ять DDR SDRAM (Dual Data Rate - подвійна швидкість даних)являє собою подальший розвиток SDRAM. Як випливає з назви, умікросхем DDR SDRAM дані всередині пакету передаються з подвоєною швидкістю --вони перемикаються по обох фронтах синхроімпульсів. На частоті 100 МГц DDR
SDRAM має пікову продуктивність 200 Мбіт/пін, що в складі 8 --байтних модулів DIMM дає продуктивність 1600 Мбайт/с. На високихтактових частотах (100 МГц) подвійна синхронізація висуває дуже високівимоги до точності витримування тимчасових діаграм. Для підвищенняточності синхронізації здійснено ряд заходів. p>
Сигнал синхронізації мікросхеми подається в диференційній формі, щодозволяє знизити вплив зміщення рівнів на точність синхронізації. p>
Для синхронізації даних в інтерфейс введено новий двонаправленийстробірующій сигнал DQS. Строб генеруються джерелом даних: приопераціях читання DQS генерується мікросхемою пам'яті, під час запису --контролером пам'яті (чіпсетом). p>
Для синхронізації DQS з системної тактовою частотою (CLK) мікросхемимають вбудовані схеми DLL (Delay Locked Loop) для автопідстроювання затримкисигналу DQS щодо CLK. Ця схема працює на зразок фазовоїавтопідстроювання (PLL) і здатна виконувати синхронізацію (забезпечуватизбіг фронтів DQS і CLK) лише в деякому обмеженому діапазонічастот синхронізації. p>
На відміну від звичайних SDRAM, у яких дані для запису передаютьсяодночасно з командою, в DDR SDRAM дані для запису (і маски DQM)подаються з затримкою на один т?? кт (write latency). Значення CAS # Latencyможе бути і дробовим (CL = 2, 2.5, 3). Мікросхеми SDRAM до "штатного"використання повинні бути ініціалізований - крім передзарядження банків у нихповинні бути запрограмовані параметри конфігурування. У DDR SDRAM черезнеобхідності налаштування ланцюгів DLL програмування дещо складніше. p>
Організація оперативної пам'яті p>
Тепер, маючи загальне уявлення про роботу різних типів динамічноїпам'яті, обговоримо варіанти побудови модулів пам'яті і "організаційні"способи підвищення продуктивності. p>
Мікросхеми DRAM випускають з розрядністю даних 1, 4, 8/9, 16/18 біт.
Мінімальною одиницею упаковки, яка сприймається системною платоюкомп'ютера, є банк пам'яті. Банк є об'єднанняммікросхем, що забезпечує розрядність даних шини пам'яті. Так, для 386SXбанк має розрядність 16 біт, для 386DX-486 - 32 бита, а для P5-P6 - 64біти (8 байт). У банку всі однойменні адресні входи мікросхем і лінії
RAS # з'єднуються паралельно. Кожен банк вибирається своїм сигналом RAS #.
Лінії CAS # або (і) WE повинні бути індивідуальними для кожного байта, щобзабезпечити можливість індивідуального записи в будь-який байт банку. Мікросхемизбираються в модулі розрядністю 1 (SIMM-30, SIPP), 4 (SIMM-72) або 8 байт
(DIMM). Модулі можуть містити один або два банки мікросхем (двостороннімодулі). Однак повний банк пам'яті для ПК з процесорами P5-P6набирається парою модулів SIMM-72 або одним DIMM. Кількість банків насистемній платі обмежується можливостями чіпсета (кількістю ліній
RAS #) або (і) кількістю слотів для пам'яті. Перше обмеження єпричиною відомої проблеми з "двосторонніми" модулями - у ряді платустановка такого модуля в один слот не дозволяє використовувати ще одинслот. Збільшенню кількості слотів перешкоджає обмежена навантажувальназдатність шини пам'яті - кожен слот (тим більше, з модулем) вноситьпаразитне ємність і індуктивність, що обмежують швидкодію шини. Черезза впливу цього навантаження для роботи модулів SDRAM на частоті шини 100 МГцбула розроблена специфікація PC100, в якій крім вимог дошвидкодії мікросхем пам'яті задаються і правила розведення сигнальних таживлять провідників та інші конструктивні нюанси. Тепер з'являється іаналогічна специфікація PC133 - для частоти шини 133 МГц. Однак підвищеннятактової частоти традиційної шини пам'яті технічно складно через великучисла сигнальних провідників. Популярні нині модулі DIMM SDRAM використовують
32 адресних і керуючих лінії і 64 (72 або 80 з контрольними) лініїданих, при цьому кожен додатковий слот пам'яті вимагає ще кількакеруючих ліній. На високих частотах доводиться враховувати затримкипоширення сигналів в провідниках, і що найнеприємніше --неоднаковість цих затримок, або перекіс (skew). p>
Установка більше одного банку пам'яті дає потенційну можливістьпідвищення продуктивності пам'яті за рахунок організації чергування банків
(bank interleaving). Ідею чергування простіше пояснити на прикладі двохбанків. Адресація пам'яті організується так, щоб яче