05_8086_arhitektura

Post on 23-Oct-2014

98 views 5 download

Tags:

Transcript of 05_8086_arhitektura

INTEL 8086/8088АРХИТЕКТУРА

И Мдоц. д-р Игор Мишковски

МИКРОПРОЦЕСОР 8086

8086 е 16-битен микропроцесор дизајниран од страна на Intel во1978 со што започнал развој на x86 1978 со што започнал развој на x86 архитектурата.

I t l 8088 ( ) Intel 8088 (издаден подоцна) е во суштина истиот чип, но со 8-битна магистрала со што се овозможило поевтино и подостапно производство со користење на помалку помошни чипови.у

8088 процесорот е користен кај оригиналниот IBM PC.оригиналниот IBM PC.

МИКРОПРОЦЕСОР 8086

Процесорите биле базирани на креацијата на 8080 и 8085 со сличен регистарски сет.8080 и 8085 со сличен регистарски сет.

8086 со 8088 не биле директно компатибилни со 8085.

Кодот за 85-ката можел лесно да се конвертира во д д р рсубоптимален код на 8086 со малку или воопшто рачно едитирање.

8086 дизајнот бил проширен за полна поддршка на 16-битно процесирање наместо р р рскромните можности на 8085.

МИКРОПРОЦЕСОР 8086 Магистрали:

Адресна - 20-битна адресна магистрала и може да пристап кон 220 мемориски локации == 1 MB меморија. р р ц р ј

Податочна магистрала со 16 бита, може да пристап кон 16 битни податоци во една операција 16 битни податоци во една операција.

Контролна магистрала, ги носи контролните сигнали за различни операции за различни операции.

И 4 16 б Има 4 16-битни регистри за општа намена кои можат да бидат пристапувани како 8 осумбитни регистри и 4 16-битни индексни регистри.

МИКРОПРОЦЕСОР 8086

Има 64K 8-bit I/O (или 32K 16 bit) порти и фиксни векторирани прекини. Повеќето инструкции може да пристапат кон само една мемориска локација така што еден операнд мора да биде регистар и резултатот се чува кај едниот операнд.д р д

Постојат и 4 сегментни регистри преку кои се пристапува кон 1 МБ меморијата на невообичаен начин 1 МБ меморијата на невообичаен начин. Наместо само да се додадат бајтовите од поместувањето 8086 го поместува на лево

сегментниот регистар за 4 бита и се додава на адресата. Како резултат на тоа некои од сегментите може да бидат преклопени.

Процесорот работи на такт 4.77 (како кај 8088 верзијата користена кај оригиналниот IBM PC), 8 MHz и 10 MHz

8086 микрокомјутерски р ју рсистеми

2 режими на работа: минимален -одредени пинови пренесуваат минимален -одредени пинови пренесуваат контролни сигнали до меморијата и периферните уреди.р ф р ур

максимален- истите пинови имаат функции за средни и големи системи (повеќе-процесорски

) М системи). Мора да постои контролор на магистрала (8288)

СПОРЕДБА СО 8085

Две суштински разлики во однос на 8085А сегментирање на меморија (каракт. за Intel), освен физичка имаме и логичка структура на меморијата.

предвремено земање на кодот на инструкцијата(подобри перформанси).( д р рф р )

АРХИТЕКТУРА НА 8086

Извршувањето на програмскиот код се стои од повеќекратно повторување на чекорите:

1. Fetch на инструкцијата од меморија.2. Читање на операндот (доколку е потребно) од

меморијамеморија.3. Извршување на инструкцијата.4. Запишување на резултатот (доколку е потребно).у р у (д у р )

8086/8 ИНТЕРНА ОРГАНИЗАЦИЈА8086/8 ИНТЕРНА ОРГАНИЗАЦИЈА

АРХИТЕКТУРА НА 8086 Кај 8086/88 постојат посебни градбени единици

кои паралелно извршуваат некои од претх. чекори.

Така во архитектурата на 8086/88 се издвојуваат Така во архитектурата на 8086/88 се издвојуваат две битни и независни единици :

1. Извршна единица (Execution Unit, EU).2. Единица за комуникација со магистралата (Bus

Interface Unit, BIU).

ИЗВРШНА ЕДИНИЦАИЗВРШНА ЕДИНИЦА(EXECUTION UNIT,EU)

Ги извршува инструкциите.

8086 8088 8086 и 8088 –идентична извршна единица.

16bit (8bit-8088) аритметичко-логичка единица (ALU) во 16bit (8bit 8088) аритметичко логичка единица (ALU) во EU ги чува статусните и контролните знаменца (флегови), манипулира со регистрите за општа намена и инструкциските операнди.инструкциските операнди.

EU нема директна врска со надворешниот свет.

Инструкциите ги добива од редот на чекање на BIU.

ИЗВРШНА ЕДИНИЦАД Ц(EXECUTION UNIT,EU)

Ако инструкцијата бара пристап до меморија или периферен уред EU праќа барање до BIUили периферен уред, EU праќа барање до BIUда прати или прими податок.

Адресите со кои манипулира EU се сите 16bit-ни.

BIU всушност прави адресна релокација, така у р др р ц ј ,да се користат 20 адресни линии→1МВ меморија

ЕДИНИЦА ЗА КОМУНИКАЦИЈА СОМАГИСТРАЛАТАМАГИСТРАЛАТА(BUS INTERFACE UNIT,BIU)

Прави fetch на инструкциите, ги чита операндите и ги враќа резултатите.р р у

BIU ја извршува целата комуникација на EU со меморијата и периферните уреди.р ј р ф р ур д

Додека EU→извршува инструкции, BIU→меморира инструкции предвремено во инструкцискиот ред инструкции предвремено во инструкцискиот ред на чекање долг 6В.

BIU иницира инстр fetch→барем 2В од BIU иницира инстр. fetch→барем 2В од инструкцискиот ред се слободни.

При еден fetch се читаат по 2 инструкции При еден fetch се читаат по 2 инструкции(16-битна податочна магистрала)

ЕДИНИЦА ЗА КОМУНИКАЦИЈА СОМАГИСТРАЛАТА(BUS INTERFACE UNIT,BIU)

Ако EU изврши инструкција за разгранување, тогаш BIU BIU го ресетира инструкцискиот ред и почнува да го полни со инструкциите од разгранувачката адреса.

Кога треба да се оствари комуникација со меморијата или периферните уреди, на барање на EU, привремено се запира полнењето на инструкцискиот ред се запира полнењето на инструкцискиот ред.

Функционално идентична, но различна имплементација у ц о а о де а, о раз а е е ац ја на BIU кај 8086 и 8088, за да одговара на структурата и перформансите на соодветните магистрали.

ПРОТОЧНОСТ

8086 ПРОГРАМСКИ МОДЕЛ

ESCS

Extra SegmentCode SegmentBIU

регистриSSDSIP

gStack SegmentData SegmentInstruction Pointer

регистри(20 bit adder)

IP

AH ALAX

Instruction Pointer

AccumulatorEU

BHCHDH

BLCLDL

BXCXDX

Base RegisterCount RegisterData Register

регистри

DH DLSPBPSI

DX Data RegisterStack PointerBase PointerSource Index RegisterSI

DIFLAGS

Source Index RegisterDestination Index Register

РЕГИСТРИ ЗА ОПШТА НАМЕНА

И двата процесори имаат исти 8x16-битни општи регистри поделени во две групи од по 4 регистри.р р д д ру д р р

податочни регистри(AX, BX, CX, DX)- овие можат да се адресираат по половинки → 8x8-битни регистри.

П (SP BP) (SI DI) 16 Поинтер (SP, BP) и индекс регистри (SI, DI)- исклучиво 16-битни регистри.

8086/88 ИНТЕРНИ РЕГИСТРИ 16 BITS8086/88 ИНТЕРНИ РЕГИСТРИ 16 BITS

AX, BX, CX и DX се два бајти ји секој бајт може

поединечно да се пристапи

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

Знаменцата ќе бидат објаснети подоцна

Сегментните регистри се користаткако базна адресакако базна адреса

за сегмент во 1 MБ меморија

Податочни регистри:Податочни регистри: AX, BX, CX, DX

• Инструкцијата се извршува побрзо ако податоците се во регистрите

• AX, BX, CX, DX се податочни регистри

• На понискиот и повисокиот бајт на овие регистри може да им се пристапи поединечно– AH, BH, CH, DH се повисоки бајти

AL BL CL и DL се пониски бајти– AL, BL, CL, и DL се пониски бајти

• Податочните регистри се за општа намена• Податочните регистри се за општа намена,но може да се користат и за специјални функции

Податочни регистри:Податочни регистри: AX, BX, CX, DX

AXAccumulator регистарСе користи во аритметички, логички и функции за пренос на податоци затоа што генерира најкраток машински код

Мора да се користи при операции на делење и множењеМора да се користи при В/И операции

BXБазен регистарС Служи и како адресен регистарСе користи за операции со низиСе користи во Table Lookup операции (XLAT)р p р ц ( )

Податочни регистри:Податочни регистри: AX, BX, CX, DX

CXРегистар бројач (Count register)Регистар – бројач (Count register)Се користи како бројач на јамкиСе користи во операции на поместување и Се користи во операции на поместување и ротација

DXПодаточен регистар (Data register)С Се користи при делење и множењеИсто и при В/И операции

СЕГМЕНТНИ РЕГИСТРИ

8086/88 воведуваат сегментација на меморискиот простор, директно достапни за програмерите.

Меморијата се дели на логички сегменти од по 64КВ.

Процесорот има пристап до 4 сегменти одеднаш, а нивните базни адреси се чуваат во сегментните регистри. CS(Code Segment) покажува кон тековниот сегмент од кој се CS(Code Segment) -покажува кон тековниот сегмент од кој се читаат програмските инструкции.

SS(Stack Segment) -покажува кон тековниот стек сегмент. DS(Data Segment) покажува кон тековниот податочен DS(Data Segment)-покажува кон тековниот податочен сегмент со сите програмски променливи.

ES(Extra Segment)-покажува кон тековниот екстра податочен сегмент.податочен сегмент.

Покажувачки и индексни регистриПокажувачки и индексни регистриPointer and Index Registers

• Ги содржат адресните поместувања на мемориските локациимемориските локации

• Може да се користат и во аритметички и други операции

SP: Stack pointer Се користи заедно со SS за пристап на стек сегментотСе користи заедно со SS за пристап на стек сегментот

BP: Base PointerПримарно се користи за пристап на податоците на стекотМоже да се користи за пристап на податоците и во други

сегментисегменти

Покажувачки и индексни регистриПокажувачки и индексни регистриPointer and Index Registers

SI: Source Index registerПотребен за некои стринг операции (низи од податоци)Кога стринг операциите се изведуваат SI регистарот покажува на Кога стринг операциите се изведуваат SI регистарот покажува на мемориската локација во податочниот сегмент адресиран со DSрегистарот. Затоа, SI е придружен со DS во операции со стрингови.

DI: Destination Index register Се бара при стринг операции.Кога се изведуваат стринг операциите DI регистарот покажува на Кога се изведуваат стринг операциите DI регистарот покажува на мемориските локации во податочниот сегмент кои се адресирани со ES регистарот, така DI е придружен со ES регистарот во операциите со стрингови.

SI и DI регистри може да се користат за пристап на податоцитекои се чуваат во низи

ЗНАМЕНЦА (FLAGS)

8086/88 имаат 6x1-битни статусни знаменца контролирани од EU –рефлектираат одредени р р р ф р рпараметри на резултатот од аритметичка или логичка операција.

Контролни: TF(Trap), DF(Direction), IF(Interrupt Enable);

Статусни: OF(Overflow), SF(Sign), ZF(Zero), AF(AuxillaryCarry) PF(Parity) CF(Carry)AF(AuxillaryCarry), PF(Parity), CF(Carry).

Знаменца (flags)Знаменца (flags)

Carry flagOverflowParity flag

A ili fl

Direction

I t t bl Auxiliary flag

Zero

Interrupt enable

Trap

Sign6 се статусниу3 се контролни

ЗНАМЕНЦА (FLAGS) Условни (статусни) знаменца:

Се поставуваат според одредени резултати на аритметички операции и не треба да се менуваат имплицитно.

Контролни знаменца: Се користат за контрола на некои операции на MPU. Може да се

Flag O D I T S Z A P C

поставуваат за определени намени.

Bit no. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

CF (carry) содржи пренос од најлевиот бит по аритметичка операција како и последниот бит од операцијата на поместување или ротирањепоместување или ротирање

З (fl )Знаменца (flags)

OF (overflow) покажува дали има пречекорување на најлевиот бит при аритметичка операцијанајлевиот бит при аритметичка операција.

DF (direction) покажува лево или десно за поместување или споредување на податоците.

IF (i t t) IF (interrupt) покажува дали надворешните прекини се процесираат или се игнорираат.

TF (trap) дозволува операција на процесорот во „single step“ начин. Ако се постави овој бит, се извршува рутина на прекин со која се прикажуваат различните регистри и мемориски содржини на р р р р дрекран при извршување на секој инструкција. Корисно за програмерот.

ЗНАМЕНЦА (FLAGS)

SF (sign) резултантен знак од аритметичка операција (1=negative)операција (1 negative)

ZF (zero) покажува дали е резултатот од аритметичката операција или споредба е нула. (1=yes)

AF (auxiliary carry) содржи пренос од bit 3 во bit 4 за специјализирана аритметика (BCD)за специјализирана аритметика (BCD).

PF (parity) го покажува бројот на единици кои резултираат по операцијата (непарна парност).

ПРИМЕРИ

ИНСТРУКЦИСКИ ПОКАЖУВАЧ(IP)

16bit адресен регистар аналоген на програмскиот покажувач (PC) кај 8085.у ( ) ј

Контролиран е од страна на BIU.

IP покажува секогаш на следната инструкција која треба да се прочита од BIU (оддалеченоста во бајти на да се прочита од BIU (оддалеченоста во бајти на следната инструкција од почетокот на тековниот коден сегмент).

Програмерите немаат директен пристап до него, но може да предизвикаат негова промена или сместат на стек.

МИНИМАЛЕН И МАКСИМАЛЕНМИНИМАЛЕН И МАКСИМАЛЕНРЕЖИМ НА РАБОТА

Барањата за поддршка на минималните и максималните 8086 системи се доволно различни за да не бидат доволни 40 пинови.

Затоа 8086 е опремен со пин за избор на системската конфигурација (MN/MX).

Дефиницијата за одредени пинови се менува според состојбата на овој пин.

МИНИМАЛЕН ИМАКСИМАЛЕН РЕЖИМ НАРАБОТА

Кога MN/MX пинот е поврзан на GND, 8086 ги третира пиновите 24 до 31 во максимален режимтретира пиновите 24 до 31 во максимален режим.

8288 контролер на магистрала ја интерпретира статусната информација кодирана во S0, S1, S2 за генерирање на тактот на магистралата и

б контролните сигнали компатибилни со MULTIBUS архитектурата.

Кога MN/MX пинот е закачен на VCC, 8086 генерира контролни сигнали на магистралата самостојно 24 до 31.

8086 ПИНОВИ И СИГНАЛИ

1

ОПИС НА ПИНОВИТЕ(ЗА ДВАТА РЕЖИМИ)

Симбол Тип Име и функција

AD15-AD0 I/O Адресно-податочна магистрала. Во Т1 се наоѓа мемориската/IO адреса, а во останатите Т се наоѓа податок.податок.

А19/S6 – A16/S3 O Адресно-статусна магистрала. Во Т1 се најзначајните 4 бита на мемориската адреса. За I/O операции се на ниско ниво Во останатите T се I/O операции се на ниско ниво. Во останатите T се излезни статусни сигнали со кои се кажува која операција ќе се изврши во тој циклус. Со S5 се кажува нагодувањето на IF знаменцето S6 е кажува нагодувањето на IF знаменцето, S6 е постојано 0.

ОПИС НА ПИНОВИТЕ(ЗА ДВАТА РЕЖИМИ)

Симбол Тип Име и функција

BHE/S7 O BUS HIGH ENABLE/STATUS. Ниско ниво на BHE во T1 значи дека најмалку еден бајт од тековниот трансфер ќе се пренесе на AD15-AD8; во тековниот трансфер ќе се пренесе на AD15 AD8; во спротивно се пренесува бајт на AD7-AD0

RD ОREAD.На ниско секогаш кога 8086 чита податок од меморија или I/O уредRD О меморија или I/O уред.

ОПИС НА ПИНОВИТЕ(ЗА ДВАТА РЕЖИМИ)

Симбол Тип Име и функција

READY I READY Доколку е на ниско ниво 8086 влегува во READY I READY. Доколку е на ниско ниво, 8086 влегува во состојба на чекање. Се користи за синхронизација со бавни периферии. Мора да е синхронизиран со 8284 такт генераторот.р р

INTR I INTERRUPT REQUEST. Активен на високо ниво, маскирачки прекин И се проверува (семплира) на маскирачки прекин. И се проверува (семплира) на последниот такт од секоја инструкција, за да се провери дали процесорот треба да извршува некоја рутина за опслужување на прекинот.ру у у р

TEST I TEST. Сигнал кој се користи само од WAIT инструкција. Процесорот е во состојба на чекање се додека не се појави ниско ниво на овој влез додека не се појави ниско ниво на овој влез. Синхронизиран со тактот.

ОПИС НА ПИНОВИТЕ(ЗА ДВАТА РЕЖИМИ)

Симбол Тип Име и функцијаСимбол Тип Име и функција

NMI I NON-MASKABLE INTERRUPT. Барање за немаскирачки прекин осетлив на растечка ивица.

RESET I RESET. Се чисти PSW, IP, DS, SS, ES и инструкцискиот ред. CS се поставува на адреса FFFFh С ј FFFFh. Сигналот мора да е на високо ниво најмалку 4 такта. Откако ќе падне на ниско, продолжува работата на 8086 со што се зема (fetch) првата инструкција од физ aдреса FFFF0hинструкција од физ. aдреса FFFF0h

CLK I CLOCK. Такт со duty cycle од 33%.

ОПИС НА ПИНОВИТЕ(ЗА ДВАТА РЕЖИМИ)

Симбол Тип Име и функција

Vcc I Напојување: 5V

GND I ЗаземјувањеMN/MX I MINIMUM/MAXIMUM. Ако е на 0, процесорот работи

во минимален режим, во спротивно во максимален.

ОПИС НА ПИНОВИТЕ(МИНИМАЛЕН РЕЖИМ)

Симбол Тип Име и функција

M/IO O Memory/Input-Output Се користи за да се направи M/IO O Memory/Input-Output.Се користи за да се направи разлика помеѓу мемориски податочен трансфер (M/IO=1) и I/O трансфер (M/IO=0)

WR O WRITE Секогаш е на 0 кога процесорот запишува WR O WRITE. Секогаш е на 0, кога процесорот запишува податок во меморија или испраќа на I/O уред.

INTA O INTERRUPT ACKNOWLEDGE. По препознавање на барање за прекин се испраќаат два негативни на барање за прекин се испраќаат два негативни импулси во два последователни такта. Со првиот се информира соодветниот интерфејс (Контролер) дека барањето е препознаено, а вториот за да му укаже на р р , р д у уконтролерот да го испрати типот на прекин на податочната магистрала.

ALE O Address Latch Enable. Сигнал кој се користи за ALE O Address Latch Enable. Сигнал кој се користи за демултиплексирање на AD0-AD15 со користење на внатрешни лечеви.

ОПИС НА ПИНОВИТЕ(МИНИМАЛЕН РЕЖИМ)

Симбол Тип Име и функција

DT/R O Data Transmit/Receive Со овој излез се контролира DT/R O Data Transmit/Receive. Со овој излез се контролира насоката на податоците (се користи 8286/8287 трансивер)

DEN O DATA ENABLE Со овој сигнал процесорот му DEN O DATA ENABLE. Со овој сигнал процесорот му сигнализира на трансиверот дека процесорот е спремен да испраќа/прима податоци.

HOLD/HLDA I/O HOLD Високо ниво на HOLD кажува дека некој HOLD/HLDA I/O HOLD. Високо ниво на HOLD кажува дека некој надреден (DMA контролер) ја бара системската магистрала. Откако ќе го прими овој сигнал, 8086 го поставува HLDA како потврда и ја ослободува у рд ј дусистемската магистрала (нема да ја води, трета состојба). Откако HOLD ќе падне на ниско, HLDA паѓа на ниско и процесорот ќе ја води повторно локалната магистрала и контролните линии.

ОПИС НА ПИНОВИТЕ(МАКСИМАЛЕН РЕЖИМ)

Симбол Тип Име и функцијаQS1, QS0 O QUEUE STATUS. Со овие два излезни сигнали се

соопштува состојбата на инструкцискиот ред од соопштува состојбата на инструкцискиот ред од претходниот такт сигнал

S2, S1, S0 O STATUS. 8086 кажува на контролерот на магистралата (8288) како тип на трансфер ќе

извршува во наредниот циклус

ОПИС НА ПИНОВИТЕ(МАКСИМАЛЕН РЕЖИМ)

Симбол Тип Име и функција

LOCK O Сигнализира извршување инструкција со lock префикс, притоа магистралата не смее да се користи од останатите микропроцесори

RQ/GT1 иRQ/GT

I/O Bus request/Bus grant. Со користење на RQ сигналот некој друг мастер во сигналот може да ја RQ/GT0 сигналот некој друг мастер во сигналот може да ја побара системската магистрала. Процесорот кој ја користи му соопштува преку GT дека магистралата е ослободена. RQ/GT0 има повисок приоритет од д Q 0 р р дRQ/GT1.

ДЕМУЛТИПЛЕКСИРАЊЕ НА АДРЕСНО-Д ДПОДАТОЧНАТА МАГИСТРАЛА

МИНИМАЛНА КОНФИГУРАЦИЈАМИНИМАЛНА КОНФИГУРАЦИЈА

stbOE

OET

МАКСИМАЛНА КОНФИГУРАЦИЈА

stbOE

OET

КОНТРОЛЕР НА МАГИСТРАЛА

ТАКТОВИ НА МАГИСТРАЛА

Запишување:се поставува адресата на адресната магистрала.се поставува податокот на податочната магистрала.се објавува (WR) и поставува M/IO на 1.се објавува (WR) и поставува M/IO на 1.

ТАКТОВИ НА МАГИСТРАЛА Читање:се поставува адресата на адресната магистрала.се објавува (RD) и поставува M/IO на 1. се чека на циклус на пристап на меморијатасе чека на циклус на пристап на меморијата

ТАКТОВИТЕ НА МАГИСТРАЛАТА

ТАКТОВИТЕ НА МАГИСТРАЛАТА

Во тек на T1: Адресата се поставува на Address/Data bus.р у Контролните сигнали M/IO, ALE и DT/R одредуваат меморија или В/И, се лечува адресата на адресната магистрала и се поставува насоката на преносот на магистрала и се поставува насоката на преносот на податоците на податочната магистрала.

В T2Во тек на T2: 8086 издава RD или WR сигнал, DEN, и за запишување на податоците

DEN овозможува меморијата или В/И уредот да ги прими податоците за запишување.

ТАКТОВИТЕ НА МАГИСТРАЛАТА

Во тек на T3: Овој циклус овозможува на меморијата да пристапи кон ј ц у у р ј д рподатоците

READY се семплува на крајот од T2. А T3 јб it t t “ Ако е низок, T3 станува состојба на чекање „wait state“. Инаку, податочната магистрала се семплува на крајот од

T3.

Во текот на T4:С Сите сигнали на магистралата се деактивирани за подготовка на следен циклус.

ТАКТ

Секој BUS CYCLE на 8086 е еднаков на 4 системски периоди (Tstates).

Брзината на часовникот е 5MHz (такт = 200ns), затоа еден машински циклус (4*T) е ), д ц у ( )800ns.

Брзината на пренос е 1 25MHz (5MHz/4)Брзината на пренос е 1.25MHz (5MHz/4).

Спецификацијата на меморијата (време на ц ф ц ј р ј ( рпристап) мора да ги задоволи ограничувањата на системот.

ПРИМЕР

Тактот на магистралата за операција на читање покажува дека 600ns се потребни за читање на податоците.

Меморијата треба побрзо да работи заради времињата на поставување (setup times) на примерпоставување (setup times), на пример Address setup и data setup. Ова одзема околу 150ns.

Следствено меморијата треба да пристапи во најмалку 450ns минус уштте 30-40ns маргина за стабилизација на 450ns минус уштте 30 40ns маргина за стабилизација на баферите и декодерите.

З б DRAM ( МH ) Значи потребен е 420ns DRAM за 8086 (2.4 МHz).