Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Опорний конспект лекцій з дисципліни_КС_ЛК4(ОЗП).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
344 Кб
Скачать
☆

Робота динамічної пам'яті в стані спокою.

Стан спокою передбачає, що до пам'яті відсутні звернення, і вона не в стадії регенерації даних. DRAM - пам'ять енергозалежна, тому робота з нею можлива тільки при подачі живлення. На схемі живлення позначено, як Uп. Якщо пам'ять знаходиться в стані спокою - від контролера шини пам'яті не приходить ніяких команд, то дешифратор адреси рядка видає сигнал низького рівню (лог.0) на всі рядки (S1-Sn) матриці пам'яті. Відповідно, транзистори VT1 і VT3 комірки пам'яті M11 закриті, також як і аналогічні транзистори всіх інших комірок пам'яті.

Отже, напруга живлення по лінії AE для першого стовпця і аналогічно для всіх інших стовпців матриці пам'яті поступає на виходи Q1-Qm, на яких встановлюється «високий» рівень напруги, що відповідає значенню логічної «1». Але так як ніяких команд від блоку управління немає, то «Буфер даних» ігнорує отримані сигнали.

Тут стає зрозуміло, навіщо потрібен транзистор VT3. Він захищає конденсатор від розряду, коли до даної комірки пам'яті немає звернення.

Струм по лінії AE також потрапляє на «Блок регенерації 1», а саме, на нижній вхід елемента L3 (логічне «І»), тобто на нижній вхід елемента L3 подається логічна одиниця. Розглянемо, як у цьому випадку буде працювати блок регенерації.

Так як від контролера пам'яті немає ніяких сигналів, то на вході елемента L1 (логічне «НІ») буде логічний нуль, а, відповідно, на виході - логічна «1». Таким чином, на верхньому вході елемента L3 (логічне «І») буде логічна одиниця. Маючи на входах елемента L3 (логічне «І») дві логічні одиниці, на виході отримаємо так само логічну одиницю. На виході елемента L2 (логічне «І») буде логічний нуль, так як на обох його входах напруга відсутня, так як від контролера пам'яті немає ніяких команд і даних. В результаті, на входах елемента L4 (логічне «АБО-НI») буде логічний нуль і логічна одиниця, а, відповідно, на його виході буде логічний нуль, тобто напруга буде відсутня. Так як напруга відсутня, то жоден конденсатор першого рядка матриці пам'яті заряджатися не буде. Навіть у випадку наявності напруги, все одно підзарядка С була б неможлива, оскільки транзистор підзарядки (VT1) закритий, бо ні на один рядок матриці пам'яті (S1-Sn) від дешифратора рядків напруга не подається. Точно така ж ситуація буде з усіма стовпцями матриці пам'яті. Таким чином, в режимі зберігання інформації конденсатори НЕ підзаряжаються і зберігають той заряд (а, відповідно, і той біт даних), який у них був з моменту останньої підзарядки. Однак довго це тривати не може, так як через саморазряд конденсатор, через кілька десятків мілісекунд, розрядиться, і дані будуть втрачені. Тому необхідно постійно проводити регенерацію пам'яті.

Робота динамічної пам'яті при читанні даних і регенерації.

Процес зчитування інформації передбачає, що інформація зчитується з тих комірок, адреса яких поступає через шину в контролер пам’яті. У випадку 32-розрядного процесора мінімальною одиницею обміну, зазвичай, є 32 бітна адресу. Контролер шини пам'яті перетворює адресу в номер рядка та номер стовпчика і видає номер рядка в дешифратор адреси рядка. Дешифратор адреси рядка видає сигнал у відповідний рядок матриць пам'яті. Ми домовилися, що в прикладі дані будемо читати з першої комірки пам'яті. Тому дешифратор адреси рядка подасть напругу високого рівня на перший рядок (S1). Напруга, подана в рядок S1, відкриє транзистори VT1 і VT3 першої комірки пам'яті і відповідні транзистори всіх інших комірок першого рядка.

Подальша робота пам'яті залежить від наявності або відсутності заряду на конденсаторі. Розглянемо окремо два випадки, коли на конденсаторі комірки М11 є заряд, і коли немає.

На початку розглянемо випадок, коли заряд в конденсаторі є. Даний потенціал відкриє транзистор VT2, відповідно на сток VT3 буде подано низький потенціал (точка В) а на затвор високий. Це зумовить відкриття і VT3. Відповідно струм через резистор R по лінії AB піде на землю. В результаті, на виході Q1 першого стовпця встановиться рівень лог. 0. Відповідна інформація про зчитаний біт з першого стовпця буде записана в «Буфер даних».

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

Так як на виході Q1 cигнал лог.0, то він поступає і в «Блок регенерації 1» на вхід елементу L3 (логічне «І»). Так як ми розглядаємо випадок читання даних, то сигнал записи V1 і дані для запису D1 в «Блок регенерації 1» подаватися не будуть (лог.0). В інші блоки регенерації відповідні сигнали D1-Dm і V1-Vm також подаватися не будуть. В результаті, на вході елемента L1 (логічне «НІ») буде логічний «0», а на виході - логічна «1», тому на входах елемента L3 (логічне «І») буде логічний «0» і логічна «1». Це означає, що на виході цього елемента буде логічний «0». На виході логічного елемента L2 (логічне «І») буде логічний нуль, так як на обох його входах напруга відсутня, так як від контролера шини пам'яті відсутні команди на запис і дані для запису. Маючи на обох входах елемента L4 (логічне «АБО-НІ») логічний «0», на його виході матимемо логічну «1», тобто з блоку регенерації піде струм зарядки конденсатора С. Так як транзистор підзарядки VT1 комірки пам'яті М11 відкритий, то струм зарядки безперешкодно пройде в конденсатор С. Решта комірок пам'яті першого стовпчика мають закритий VT1, а, отже, підзарядка їх конденсаторів відбуватися не буде.

Тепер розглянемо випадок, коли в конденсаторі немає заряду – транзистор VT1 закритий (комірка пам'яті зберігає біт зі значенням «1»). Струм по лінії AВ рівний нулю, тому на вході Q1 «Буфера даних» буде значення лог.1, що означає - з комірки пам'яті зчитана одиниця. Інформація про зчитаний біт з першого рядка буде записана в «Буфер даних».

Так як в конденсаторі заряду не було, то і заряджати його потреби немає. Отже, з блоку регенерації струм зарядки піти не повинен. Дійсно потенціал лог.1 з входу Q1 поступає на вхід елемента L3 (логічне «І»). Так як відбувається зчитування даних, то сигнали запису V1 і даних для запису D1 в «Блок регенерації 1» рівні лог.0. Так само в інші блоки регенерації, відповідні сигнали D1-Dm і V1-Vm так само подаватися не будуть. Отже, на вході елемента L1 (логічне «НІ») буде логічний нуль, а на виході - логічна «1». Таким чином, на входах елемента L3 (логічне «І») будуть дві логічні одиниці. В результаті, на виході отримаємо так само логічну одиницю.

На виході логічного елемента L2 (логічне «І») буде логічний нуль, так як на обох його входах напруга відсутня, так як від контролера пам'яті немає команд на запис і даних для запису. В результаті, на входах елемента L4 (логічне «АБО-НІ») буде логічний нуль і логічна одиниця, а, відповідно, на його виході буде лог.0, тобто напруга на стоці VT1 буде рівна нулю. Так як напруга відсутня, то жоден з конденсаторів першого стовпця матриці пам'яті підзаряджатися не буде.

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

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

З дешифратора адреси стовпців номери стовпців передаються в «Буфер даних», звідки відповідні дані зчитуються і передаються в процесор. На цьому цикл зчитування даних закінчується.

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

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

Тому «Блок управління» з певною частотою, в моменти простою пам'яті або між зверненням до пам'яті процесора (або інших пристроїв), регенерує дані у всіх комірках пам'яті.