Центральний процесор та пам'ять комп'ютера

Автор: Пользователь скрыл имя, 27 Февраля 2013 в 15:22, лабораторная работа

Описание работы

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

Работа содержит 1 файл

MPT_1U.DOC

— 226.00 Кб (Скачать)

Лабораторна робота  № 1

 

 Центральний  процесор та пам'ять

комп'ютера

 

 

Мета роботи:

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

 

Теоретичні відомості

Більшість сучасних мікропроцесорних систем мають подібні основні  принципи побудови. В той же час, зважаючи на переважаючу розповсюдженість ПЕОМ, основаних на процесорах Іntel сімейства  х86 або сумісних, більш детально розглянемо особливості архітектури саме таких комп'ютерів. Розглянемо системи, побудовані на найпростішому ЦП з цього сімейства - і8086.

 

Оперативна пам'ять


 

Важливим компонентом ПЕОМ є  оперативна пам'ять (ОП), яка призначена для тимчасового зберігання інформації будь-якого роду (програм, даних, текстів, зображень, тощо). ОП взаємодіє з процесором (ЦП) в темпі його роботи при обробці цієї інформації. Логічно ОП організована у вигляді послідовності однобайтових слів (клітинок пам'яті) з адресами від 0 до 2n – 1, де n –  кількість розрядів адреси. Область пам'яті, що може бути адресована процесором з 20-розрядним форматом адреси  складає 1 Мбайт ( 1Мбайт = 220 =1048576 байт). Сам ЦП 16-розрядний і маніпулює логічними адресами, які містять 16-розрядну базову (сегментну) адресу і 16-розрядне внутрішньосегментне зміщення. Механізм сегментації пам'яті передбачає розбиття всього адресованого простору на області-сегменти фіксованого розміру, по 64 Кбайт кожна (мал. 1.1).

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

Одночасно процесор може використовувати чотири сегменти :

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

2. Сегмент даних. Сегмент даних містить визначені дані, константи та робочі області, що необхідні програмі.

3. Сегмент стеку. Стек містить адреси повернення як для програми при поверненні в операційну систему, так і для викликів підпрограм при поверненні в головну програму.

4. Екстракодовий сегмент  використовується для передачі даних між клітинками  ОП, що не потрапляють в неперервну область обсягом 64 К байт.

 

Початкова адреса будь-якого сегменту зберігається в 16-розрядному сегментному регістрі, а звернення до байту або слова всередині сегменту здійснюється з використанням 16-розрядного зміщення. Більшість команд МП оперує тільки 16-розрядними зміщеннями, а адреси сегментів знаходяться в одному з 4-х регістрів: CS – код (програма); DS – дані; SS – стек; ES – екстракод (додаткові дані).

 

 

   

Адреса

   

Пам'ять

       
                   

 

FFFFF

             

                 
                   
                   
         

СЕГМЕНТ

     

Схема обчислення

                 

фізичної адреси

                 

операнду

   

40D54

   

Операнд

       

               

В шістнадцятковій  формі

 

Зміщення

               
 

в сегменті

               

3

E

A

5

0

 
 

2304

             

+

 

2

3

0

4

 

Фізична

 

3EA50

             

4

0

D

5

4

 

(абсолютна)

                 

адреса

       

СЕГМЕНТ

       

операнду

               

В двійковій  формі

                 
 

База

             

0011

1110

1010

0101

0000

 
 

сегменту

           

+

 

0010

0011

0000

0100

 
 

3EA5

             

0100

0000

1101

0101

0100

 

               

¯

¯

¯

¯

¯

 
                 

4

0

D

5

4

 
                 

 

 
   

00000

           

 

 

 

 

Мал. 1.1   Адресація пам'яті з використанням механізму сегментації

 

 

Для звернення  до довільної адреси пам'яті, заданої  в програмі, комп'ютер за спеціальною  схемою складає адресу в регістрі сегменту і зміщення. Враховуючи, що початок сегменту завжди знаходиться  на границі параграфу, молодші (праві) чотири біти його початкової адреси дорівнюють нулю. Спеціалісти вирішили, що немає сенсу тримати місце задля бітів, котрі завжди являють собою нулі. Тому адреса зберігається в сегментному регістрі як шістнадцяткове  NNNN16, а комп'ютер вважає, що присутні ще чотири нульових молодших біти (одна шістнадцяткова цифра О), тобто, NNNNO16. Таким чином, FFFFO16 дозволяє адресувати аж до 1048560»220  байт.

 

Внутрішні регістри процесору


 

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

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

 

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0


 

На мал. 1.2 показана логічна організація, а на мал. 1.3 – загальна структура  МП іntel 8086, в склад якого входить 14 програмно-доступних регістрів розрядністю 16 біт. Процесори наступних поколінь цієї серії (80286, 80386, т.ін.) мають ряд додаткових регістрів, зазвичай, більш високої розрядності. Ці регістри ми  розглядати не будемо.

 

Сегментні регістри: CS, DS, SS та ES

Кожний сегментний регістр забезпечує адресацію пам'яті об'ємом 64 Кбайт, яка називається поточним сегментом.

1. Регістр CS. Регістр сегменту кодів містить початкову адресу сегменту кодів оперативної пам'яті. Ця адреса плюс значення зміщення в командному вказівнику іP визначає адресу команди, яка повинна бути вибраною для виконання.

2. Регістр DS. Регістр сегменту даних вміщує початкову адресу сегменту  даних. Зазначена адреса плюс зміщення, що визначене в команді, вказують на конкретну клітинку пам'яті в сегменті даних.

3. Регістр SS. Регістр сегменту стека містить початкову адресу сегменту стека.

4. Регістр ES. Деякі операції над символьними рядками використовують додатковий сегментний регістр для управління адресацією пам'яті.

 

Регістри загального призначення:  AX, BX, CX та DX

Регістри загального призначення (РЗП) є найбільш інтенсивно використовуваними при обчисленнях. Особливість цих регістрів складається в тому, що можлива адресація їх як одного цілого слова (16 байт), або лише як його однобайтової частини. Лівий байт є старшою частиною (Hіgh), а правий – молодшою частиною (Low). Наприклад, двохбайтовий регістр CX складається з двох однобайтових CH та CL, і посилання на регістр можливі за будь-яким з цих трьох імен (див. мал.1.2).

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

 

РЕГІСТРИ ЗАГАЛЬНОГО        ВказіВНі

ПРИЗНАЧЕННЯ  (РЗП)       ТА індексні РЕГІСТРИ

 

15

8

7

0

 

15

0

 

AX

AH

AL

 акумулятор

 SP (Stack  Poіnter)

 вказівник стеку

BX

BH

BL

 база

 BP (Base Poіnter)

 вказівник бази

CX

CH

CL

 лічильник

 SІ  (Source Іndex)

 індекс операнду

DX

DH

DL

 дані

 DІ (Destіnatіon Іndex)

 індекс результату


 

СЕГМЕНТНі РЕГІСТРИ         РЕГІСТР АДРЕСИ КОМАНД

 

15

0

 

15

0

 

 СS  (Code Segment)

 сегмент кодів

ІP (Іnstructіon  Poіnter)

 

DS (Data Segment)

 сегмент даних

 

SS (Stack Segment)

 сегмент стеку

 

ES  (Extra Segment)

 сегмент екстракодів


 

РЕГІСТР ОЗНАК (ПРАПОРЦІ)

 

15

                           

0

         

OF

DF

ІF

TF

SF

ZF

 

AF

 

PF

 

CF



переповнення

напрям

дозвіл переривання

покроковий режим

знак

нуль

допоміжний  перенос

парність

перенос

 

Мал. 1.2   Логічна організація МП Іntel 8086

 

 

Особливості РЗП.

1. Регістр AX. Регістр AX є основним суматором і застосовується для всіх операцій вводу-виводу, деяких операцій над рядками та арифметичних операцій. Наприклад, команди множення, ділення і зсуву передбачають використання регістра AX. Окремі команди генерують більш ефективний код, якщо вони мають посилання на регістр AX.

2. Регістр BX. Це єдиний регістр загального призначення, який може бути використаний в якості “індексу” для розширеної адресації.

3. Регістр CX. Використовується як лічильник для управління числом повторень циклів та для операцій зсуву вліво чи вправо.

4. Регістр DX. Регістр  DX є регістром даних. Він вживається для деяких операцій вводу-виводу і тих операцій множення та ділення над великими числами, які використовують регістрову пару DX:AX.

Мал. 1.3   Структура процесору Іntel 8086

 

 


Регістри SP, BP, SІ, DІ, ІP, прапорці

Чотири 16-розрядних вказівних та індексних регістра (SP, BP, SІ, DІ) призначені для зберігання внутрішньосегментних зміщень. Ці ж регістри можуть брати  участь у виконанні арифметичних і логічних операцій над двохбайтними словами.

Регістри SP и BP використовуються для доступу до даних в поточному сегменті стека, а SІ та DІ – в поточному сегменті даних.

Регістр адреси (або лічильник команд) ІP використовується для вибору команд програми в поточному сегменті коду CS. Це єдиний регістр, вміст якого завжди оновлюється при виконанні кожної команди програми.

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

Информация о работе Центральний процесор та пам'ять комп'ютера