Техника

Компютърна архитектура III

Компютърна архитектура III
(0 от 0 гласували)

Компютърна архитектура III.
Микропроцесорна фамилия 80x88/86

1. Обша характеристика на I8088/I8086.

·         16 битов процесор - I8086 - структура 16/16/20, I8088 - структура 8/16/20

o    16 битова вътрешна шина за данни

o    16(8) битова външна шина за данни

o    20 битова адресна шина (max 1 Mb системна памет).

·         Максимална тактова честота - ~ 5 MHz (базов модел).

·         Адресация на I/O - отделно I/O адресно пространство.

·         Прекъсвания:

o    Векторна организация с фиксирани векторни адреси в паметта

o    до 255 източника

o    апаратни(външни), програмни (софтуерни), вътрешни

·         Опашка от команди - FIFO

·         Извличането (Fetching) се припокрива с изпълнението (Execution) на предишната инструкция:

Извличане

Изпълнение

Изпълнение

Извличане

 
 

2. Програмен модел.

·         Регистри - вътрешно съхранениен на данни + специфични цели: напр.
BX - базов регистър за адрес
CX - неявен брояч
DX - в I/O команди - адрес на порт

·         Указатели и индексни регистри - формиране на адрес

·         Сегментни регистри - формиране на адрес

3. Формиране на физически адрес, Сегментна организация на паметта.

·         Формиране на физически адрес

                

                                                       Формиране на физически адрес от segment:offset

  • Защо сегментна организация?
    • Съвместимост

    • Осигурява съответствие между ширината на адресната шина и шината за данни
    •  
  • Нормалнo (но може да се форсира друго):
    • IP работи с CS -> CS:IP - извличане на инструкции
    • Обмен на данни - с DS (или ES)
    • Стекови операции - с SS (или ES)

 

 

  • Пример :


 

4. Хардуерна структура.

 

 

 

 

 

В блока на регистрите за данни (Data registers) са включени четири 16-битови регистъра, означени като AX, BX, CX и DX. Във всеки от тях може да се записват операндите и резултата от операциите. Възможно е половинките на тези регистри да се използват поотделно като 8-битови регистри, означени съответно като AH, AL, BH, BL, CH, CL, DH и DL. Всеки от тези регистри може да се използва като акумолатор за операндите и резултата от аритметичните и логически операции. Най – често за тази цел се използва регистър АН (16 бита) или AL (8 бита). Регистрите BX, CX и DX освен аритметически имат и следните специфични предназначения:

                   - BX се използва като базов регистър при изчисляване на адресите;

                   - CX се използва в някои команди като неявно адресиран брояч

                   - DX в някои операции с входно – изходни устройства съдържа адреса на                       

                      клетката от интерфейса, чрез която се извършва обмен на данни с

                      конкретнно устрйство.     

 

В микропроцесора има 6 регистъра за инструкции (Instruction queue) в който се записва (6 байтова) опашка от инструкции за изпълнение. Тези регистри се запълват в моментите кога микропроцесорът изпълнява вътрешни операции. В този момент системната магистрала е свободна и може от паметта да се извлича следващата инструция. В момента на завършване на командата следващата вече се намира в МП и започва изпълнение. Има случай, в който е нижен преход, в този момент съдържанието на опашката се изтрива и продължава изпълнение от новия адрес.

 

ALU(аритметико – логическо устройство)

Има две вхосдни 16 битови магистрали – една за първия операнд и една за втория. Освен това има и вход за пренос (заем) от преходни изчисления. Резултатът се подава към изхода на АЛУ.

       16 битови – събуране, изваждане

       32 битови – умножение, деление

       За запис се използват 1 или 2 16 – битови регистъра (AX и DX)

 

PSW – регистър на състоянието

Той е 16 – битов, но се използват само 9 – бита, означени като флагове на състоянията. Ако в резултат на операцията е възникнал пренос (заем) се активират определени битове от регистъра PSW

·         40 извода - DIP40

·         22 управляващи сигнали

·         16 - младша част на адреса мултиплексирана с данните

4. Организация на стека.

5. Прекъсвания.

Три вида

·         Апаратни

o    маскируеми

o    немаскируеми

·         програмни (Пример: INT #)

·         вътрешни (Пример : деление на 0, TRAP - TF)

·         RESET - всички reg=0 с изключение на CS=0FFFFh

·         256 вектора на прекъсване - адреси 00000h - 003FFh (1 Kb) - x4 bytes на вектор - segment:offset

Таблица на векторите на прекъсване в паметта

Протокол при прекъсване - 1. INTR (вход - заявка); 2. INTA (изход - потвърждение) 3. DB (входове - # на прекъсв

- Микропроцесора и контролера на прекъсванията

6. Набор от инструкции (Instruction Set).

·         Основни групи

o    Преместване на информация - MOV dest, src, XCHG dest,src - единия операнд е задължително регистър

o    Преобразувания - XLAT ---- AL<- [[BX]+AL]

o    Стекови - PUSH src, POP dest

o    Аритметични - ADD AX, src
DIV -- DX,AX : AX|BX|CX|DX -> DX(остатък)AX(частно)

o    Логически - AND , XOR

o    Ротации и премествания (shifts)

o    Проверка - TEST AX

o    Обработка на низове -
LODS AL(AX) -> (DS:SI)->AL(AX), SI++ (or--) [see DF)
STOS AL(AX) -> (DS:SI)<-AL(AX), SI++ (or--) [see DF)

o    Префикси - REP - loop operation CX-- until CX=0

o    Работа с подпрограми - JSR dest, RET

o    Условни преходи - JZ dest

o    Безусловни преходи - JMP dest

o    Флагове - CLC

o    Прекъсвания - INT num

 

·         Методи на адресация

o    Непосредствена - MOV AX, #$FFFA

o    Пряка - MOV AX, [$FFFA]

o    Регистрова - INC AX

o    Регистрова косвена - MOV AX, [BX]

o    Регистрова относителна
EA =[BX|BP|SI|DI]+{8|16 бита отместване}

o    Базова индексна
EA =[BX|BP]+[SI|DI]

o    Относителна базова индексна
EA =[BX|BP]+[SI|DI]+{8|16 бита отместване}

o    Относителна - условни преходи

o    Безусловна - безусловни преходи

Компютърна архитектура III

Коментари