Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка.doc
Скачиваний:
20
Добавлен:
08.11.2018
Размер:
1.15 Mб
Скачать

3.2 Типи запам'ятовуючих елементів озп

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

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

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

Основний недолік напівпровідникових ОЗП - енергозалежність.

3.3 Організація основної пам'яті еом - стекова пам’ять

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

Стекова пам'ять

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

Це пам'ять типу LIFO - Last In First Out - Останнім прийшов, першим вийшов.

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

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

При цьому як стек звичайно використовують просто частину адресної пам'яті, що дозволяє міняти місткість стека і економити апаратуру. Зовні модель стека відрізняється від апаратного, але функціонує за тим же принципом LIFO. Це забезпечується за допомогою спеціального регістра процесора – вказівника стека SP (Stack Pointer), який містить адресу плаваючої вершини стека. В процесі виконання команд, що використовують стек, вміст SP автоматично збільшується або зменшується на 1 або 2 ( при 2-х байтових словах пам'яті).

У ПК, що працює з 2-байтовими словами обмін даними між процесором і стеком відбувається таким чином: При завантаженні нового слова спочатку відбувається зменшення вмісту SP на 2, а потім запис цього слова в елемент, на який указує новий вміст SP. При витяганні слова із стека спочатку виконується читання вмісту елементу, на який указує SP, а потім збільшення SP на 2.

Стек росте у зворотний бік, таким чином при додаванні даних вершина стека все більш і більш просувається до менших адрес і значення SP всякий раз зменшується.

3.4 Сегментна адресація Intel-8086

Intel-8086- 16-розрядний мікропроцесор, він не може працювати з числами великими. Максимально 2 16- 1 = 65 535 = 64 Кбайт.

Теоретично це означає, що він може використовувати тільки 65536 (64К) адрес. Проте, практично цей мікропроцесор використовує значно більше - 1024Кбайт, оскільки використовується 20-розрядна адреса ( 220 = 1 Мбайт ).

Адресний простір ділиться на довільну кількість сегментів, кожний з яких містить не більше 64 Кбайт. Адресою сегменту або параграфом сегменту називається адреса першого байта сегменту, він завжди кратний 16 байтам.

Для звернення до байта усередині сегменту використовується додаткова адреса - зсув. Він указує розташування байта щодо параграфа сегменту.

Фізична адреса утворюється за допомогою об'єднання 16-разрядного параграфа сегменту і 16-розрядного відносного зсуву. Якщо параграф сегменту змістити вліво на 4 біта, доповнивши справа нулями, то ми одержимо 20-розрядну фізичну адресу початку сегменту. Склавши цю адресу з 16-розрядним зсувом байта усередині сегменту, одержимо 20-розрядну фізичну адресу байта.

Параграф сегменту записується у вигляді п'ятизначного шістнадцяткового числа, остання цифра якого завжди 0 (FFE40, BCD80 ). 0 виходить в результаті множення шістнадцяткового 4х значного числа на 16 ( це і призводить до того, що сегментна частина може указувати тільки на елементи пам'яті з адресою, яка кратна 16). Зсув записується у вигляді 4х значного шістнадцяткового числа. Сума зсуву і параграфа сегменту дає п'ятизначне шістнадцяткове число (20- розрядну адресу).

Наприклад для логічної адреси 1234:5678 отримуємо наступну фізичну адресу:

12340

+ 5678

179B8

Хоча одиницею пам'яті, що адресується, в ПК є байт, багато операцій здійснюються над словами (16 розрядів). Слово в пам'яті зберігається в двох сусідніх байтах. Молодший байт слова має меншу адресу, а старший - на 1 більший.

Наприклад число ABCD в пам'яті зберігається як CDAB.