SEKVENCIRANJE MIKROINSTRUKCIJA

Slides:



Advertisements
Presentaciones similares
Sistema de gestos de apoyo a la lecto-escritura.
Advertisements

Sonido de las sílabas. Sonido de las sílabas.
LA ACENTUACION Acentuación Palabra terminada en Palabra terminada en
Pan.
El nivel de la Microprogramación
LOS NOMBRES (imenice). Rod imenica (género del nombre) U španskom jeziku imenice mogu biti samo muškog ili ženskog roda ( ne postoje imenice srednjeg.
Computer Architecture Notes Jan 26, 2004 Dusan Kuzmanovic Jimmy Ortegon.
MICRO Y MACRO ARQUITECTURA
Unidad 2: Organización del CPU
nu ba po po op na en pe pi pa ba ni be an ba an pi bu pa po no ne en
Los acentos de español.
ACTIVIDADES DE MÉTRICA
Leamos más.
Clase 185 La elipse (continuación).
RANA ROSA RATA RUEDA LLORA LLAVE SILLA LLAMA LLUVIA
Clase 191. Dada la hipérbola de ecuación 25x 2 25x 2 – 144y 2 144y 2 = determina: posición, longitud del eje principal, distancia focal y excentricidad.
TAREAS DE ESPAÑOL DE PRE-ESCOLAR
Repaso lectura Vacaciones - Mayo 2014.
Organización del Computador
Química U.2 Unión entre átomos y propiedades de las sustancias
DESCUBRIMIENTO DE LOS ELEMENTOS
Ña Un Una Unos Unas ni.
Pa ra guas.
Organización del Computador
Fenómenos químicos U.2 Reacción química
Ejercicios de ecuaciones con radicales fraccionaria
bosquejo objetivos Calentamiento — las letras Repaso del alfabeto
Química General Básica
Química U.2 Unión entre átomos y propiedades de las sustancias
Unidad Central de Proceso
Controles, análisis y evaluación de los datos. Reactivos Materiales Equipo Tecnica Operador.
Belgrade University Aleksandra Smiljanić: High-Capacity Switching Uvod 
El abecedario en español
Estructura funcional (Von Neumann)
Cuanto más leo más aprendo
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
Palabras de dos sílabas con la letra a Por Beatriz M☺ren☺
4º E.S.O. Química U.2 Unión entre átomos y propiedades de las sustancias Relación entre la tabla periódica y la estructura atómica.
¿CUÁNTAS SÍLABAS TIENEN ESTOS DIBUJOS?
Марио Варгас Љоса Биографија.
Universidad Simón Bolívar
Organización del Computador
Organización del Computador
Fenómenos químicos U.2 Reacción química
Química U.2 Unión entre átomos y propiedades de las sustancias
EJERSIL_2 y ll ch repaso 1 zc qc repaso 2 g ñ f repaso 3
7MO BÁSICO.
Antonela Bošnjak i Karlo Obrovac
Hardverske komponente računara
Organización del Computador
DOBRO DOŠLI !.
v.as.mr. Samir Lemeš Univerzitet u Zenici
METODE PROGNOZIRANJA POGODNE ZA PRIMENU U POŠTANSKOM SEKTORU
VHDL opis jednostavnog procesora
Dos figuras que tienen la misma forma, aun con diferentes dimensiones, se llaman semejantes. Dos figuras son semejantes si sus ángulos correspondientes.
Química U.2 Unión entre átomos y propiedades de las sustancias
TERMINOLOGIJA TEFSIRA
Svakoga jutra... život počinje....
EJERCICIOS DE FONÉTICA
TABLA PERIÓDICA Lantanidos Actinidos H He Li Be B C N O F Ne Na Mg Al
Svakoga jutra... život poćinje....
كلمه رئيس البلديه السيد المحامي عادل بدير بسم الله الرحمن الرحيم برعاية بلديه كفر قاسم تم بعون الله في شهر اكتوبر 2014 افتتاح قسم الخدمات النفسية الجديد.
Професор: Наставни предмет: Тема: Узраст: Потребна технологија:
ŠOLSKO LETO 2007/2008 PROJEKT 10x10x10.
9 l e t r a s 9 l e t r a s 9 l e t r a s 9 l e t r a s
Mensaje: Temático Propósito General: Edificación Clasificación: _________ Fecha:/17/09/04 Texto:
KOMPENZACIJSKI MENADŽMENT
Costa Concordia Bruno Akmačić, 6.b.
El alfabeto.
KOMPENZACIJSKI MENADŽMENT 7. Beneficije
Transcripción de la presentación:

SEKVENCIRANJE MIKROINSTRUKCIJA Kako se određuje sljedeća mikroinstrukcija?

2 načina sekvenciranja MPC<=MPC+1 inkrementiranjem MPC-a i uslovni skokovi u mikroprogramu polja COND i ADRESA COND odlučuje o sljedećoj adresi – izbor je (MPC+1) ili ADRESA svaka mikroinstrukcija može imati dvije nasljednice!

-SEKVENCIJALNA LOGIKA Određuje sljedeću adresu mikroinstrukcije za vrijeme četvrtog podciklusa Tada su ALU izlazi N i Z stabilni Na osnovu COND upravlja MMUX-om

COND polje Lijevi bit Desni bit Sljedeća adresa 1 Nema skoka - MPC+1 1 Nema skoka - MPC+1 Skok na ADRESA ako je N=1 Skok na ADRESA ako je Z=1 Skok na ADRESA Mmux = /LRN + L/RZ + LR Mmux = RN + LZ + LR

MAKROARHITEKTURA OGLEDNOG PROCESORA (programski model) Memorijski prostor 4096 16-bitnih riječi 3 registra dostupna programeru (PC, AC i SP), a ostale vidi mikroprogramer !!!

3 načina adresiranja: DIREKTNO (12-bitno polje za apsolutnu adresu ) za pristup globalnim varijablama INDIREKTNO (izračunata adresa u AC) za pristup nizovima, tabelama itd. i LOKALNO (8-bitni offset u odnosu na SP) za pristup lokalnim varijablama. Sva tri načina su jednostavna i efikasna!!!

SKUP INSTRUKCIJA OGLEDNOG PROCESORA Binarni kod Mnemonik Instrukcija Značenje 0000 xxxx xxxx xxxx LODD Napuni direktno ac:=m(x) 0001 xxxx xxxx xxxx STOD Smjesti direktno m(x):=ac 0010 xxxx xxxx xxxx ADDD Dodaj direktno ac:=ac+m(x) 0011 xxxx xxxx xxxx SUBD Oduzmi direktno ac:=ac-m(x) 0100 xxxx xxxx xxxx JPOS Skoči ako je (ac)0 if (ac)  0 then pc:=x 0101 xxxx xxxx xxxx JZER Skoči ako je (ac)=0 if (ac)=0 then pc:=x 0110 xxxx xxxx xxxx JUMP Bezuslovan skok pc:=x 0111 xxxx xxxx xxxx LOCO Napuni konstantu ac:=x (0  x  4096) 1000 xxxx xxxx xxxx LODL Napuni lokalno ac:=m(sp+x) 1001 xxxx xxxx xxxx STOL Smjesti lokalno m(sp+x):=ac 1010 xxxx xxxx xxxx ADDL Saberi lokalno ac:=ac+m(sp+x) 1011 xxxx xxxx xxxx SUBL Oduzmi lokalno ac:=ac-m(sp+x) 1100 xxxx xxxx xxxx JNEG Skoči ako je (ac)0 if (ac)0 then pc:=x

SKUP INSTRUKCIJA OGLEDNOG PROCESORA II 1101 xxxx xxxx xxxx JNZE Skoči ako je (ac)0 If (ac) 0 then pc:=x 1110 xxxx xxxx xxxx CALL Poziv procedure sp:=sp-1; m(sp):=pc; pc:=x 1111 0000 0000 0000 PSHI Smjesti na stek indirektno sp:=sp-1; m(sp):=m(ac) 1111 0010 0000 0000 POPI Pokupi sa steka indirektno m(ac):=m(sp); sp:=sp+1 1111 0100 0000 0000 PUSH Smjesti na stek sp:=sp-1; m(sp):=ac 1111 0110 0000 0000 POP Pokupi sa steka ac:=m(sp); sp=sp+1 1111 1000 0000 0000 RETN Povratak iz procedure pc:=m(sp); sp:=sp+1 1111 1010 0000 0000 SWAP Zamijeni sadržaj AC i SP tmp:=ac; ac:=sp; sp:=tmp 1111 1100 yyyy yyyy INSP Inkrementiraj SP sp:=sp+y (0y255) 1111 1110 yyyy yyyy DESP Dekrementiraj SP sp:=sp-y (0y255)

U/I prostor? Ogledni procesor nema U/I instrukcija U/I uređaji su u memorijskom prostoru - memorijski preslikani (mapirani).

MIKROPROGRAM Mikroprogram je program koji se izvršava na mikroarhitekturi i interpretira instrukcije procesora Pisanje mikroprograma/mikroinstrukcija u binarnoj formi - nije pogodno ! Potreban je simbolički jezik za pisanje

Simbolički jezik Za sabiranje sadržaja AC i A registara i smještaj rezultata u AC može se pisati ENC = 1, C = 1, B = 1, A = 10 (adr. A-reg.) Bolje je to izraziti “mikroasemblerskom” instrukcijom koji se jednoznačno pretvara u mašinsku mikroinstrukciju ac:=a+ac

Ostale ALU operacije... a:=band (ir,smask) operacija (A B) ac:=a operacija A a:=inv(a) operacija /A logičko pomijeranje lshift - pomjeranje lijevo jedno mjesto npr. tir:= lshift (tir + tir) rshift - pomjeranje desno jedno mjesto.

Skokovi u mikroprogramu "goto“ – bezuslovni skok uslovni - testiranjem N/Z - if n then goto 27 Dodjeljivanja i skokovi se mogu pisati u istoj liniji Samo za testiranje vrijednosti - "alu" alu:= tir; if n then goto 27 čitanja/pisanja memorije samo sa "rd" ili"wr"

Mikroasembler Mikroinstrukcija AMUX COND A LU SH MBR MAR RD WR ENC C B A D R mar:=pc; rd 2 1 00 Rd ir:=mbr 3 pc:=pc+1 6 mar:=ir; mbr:=ac; wr alu:=tir; if n then goto 15 4 15 ac:=inv(mbr) tir:=lshift(tir); if n then goto 25 25 alu:=ac; if z then goto 22 22 ac:=band(ir,amask); goto 0 8 sp:=sp+(-1); rd 7 tir:=lshift(ir+ir); if n then goto 69 69

MIKROPROGRAM OGLEDNOG PROCESORA Osim PC, AC i SP, registri imaju uloge: -  IR - instrukcijski registar, -  TIR - privremeni IR - služi za dekodiranje ... - 0, +1 i -1 - registri sa ožičenim konstantama, - AMASK - adresna maska #0FFF za direktno ad. - SMASK - stek-maska #00FF za lokalno adres. Ostalih 6 registara nemaju posebnu namjenu i na raspolaganju su mikroprogrameru!

Sadržaj mikroprograma 0 mar:=pc; rd; glavna petlja - čitanje instrukcije 1 pc:=pc+1; rd; inkr. PC-a i drugi ciklus čitanja 2 ir:=mbr; if n then goto 28; početak dekodiranja instrukcije 1XXX ili 0XXX 3 tir:=lshift(ir+ir); if n then goto 19; prvo ALU pa shifter, 00XX ili 01XX? 4 tir:=lshift (tir); if n then goto 11; 000X ili 001X ?

5 alu:=tir; if n then goto 9; 0000 ili 0001 ? 6 mar:=ir; rd; 0000 - LODD instrukcija 7 rd; 8 ac:=mbr; goto 0; 9 mar:=ir; mbr:=ac; wr; 0001 -STOD instrukcija 10 wr; goto 0; 11 alu:=tir; if n then goto15; 0010 ili 0011 ? 12 mar:=ir;rd; 0010 - ADDD instrukcija 13 rd; 14 ac:=mbr+ac; goto 0;

15 mar:=ir; rd; 0011 - SUBD ! 16 ac:=ac+1; rd; (X-Z=X+1+ /Y) 17 a:=inv(mbr); 18 ac:=ac+a; goto 0; 19 tir:=lshift(tir); if n then goto 25; 010X ili 011X ? 20 alu:=tir; if n then goto 23; 0100 ili 0101 ? 21 alu:=ac; if n then goto 0; 0100 - JPOS ! 22 pc:=band(ir, amask); goto 0; skok ako AC 0 23 alu:=ac; if z then goto 22; 0101 - JZER ! 24 goto 0;

25 alu:=tir; if n then goto 27; 0110 ili 0111 ? 26 pc:=band(ir,amask); goto 0; 0110 - JUMP !  27 ac:=band(ir,amask); goto 0; 0111 - LOCO !  28 tir:=lshift(ir+ir); if n then goto 40; 10XX ili 11XX ? 29 tir:=lshift(tir); if n then goto 35; 100X ili 101X ? 30 alu:=tir; if n then goto 33; 1000 ili 1001 ? 31 a:=ir+sp; 1000 - LODL ! 32 mar:=a; rd; goto 7; (nema maskiranja OPCOD-a !) ; na 7 se dovrši instrukcija

33 a:=ir+sp; 1001 - STOL instrukcija! 34 mar:=a; mbr:=ac; wr; goto 10; dovrši na 10 35 alu:=tir; if n then goto 38; 1010 ili 1011 ? 36 a:=ir+sp; 1010 - ADDL instrukcija! 37 mar:=a; rd; goto 13; 38 a:=ir+sp; 1011 - SUBL instrukcija! 39 mar:= a; rd; goto 16; 40 tir:=lshift(tir); if n then goto 46; 110X ili 111X ? 41 alu:=tir; if n then goto 44; 1100 ili 1101 ? 42 alu:=ac; if n then goto 22; 1100 - JNEG ! 43 goto 0;

44 alu:=ac; if z then goto 0; 1101 - JNZE ! 45 pc:=band(ir,amask); goto 0; skok 46 tir:=lshift(tir); if n then goto 50; 1110 ili 1111 ? 47 sp:=sp+(-1); 1110 - CALL instrukcija! 48 mar:=sp; mbr:=pc; wr; 49 pc:=band(ir,amask); wr; goto 0; 50 tir:=lshift(tir); if n then goto 65; 1111 - ispitati sljedeća 3 bita 51 tir:=lshift(tir); if n then goto 59; 52 alu:=tir; if n then goto 56; 53 mar:=ac; rd; 1111 000 - PSHI instrukcija! 54 sp:=sp+(-1); rd; mbr <- (ac); 55 mar:=sp; wr; goto 10; mbr ->> m(sp-1); 56 mar:=sp; sp:=sp+(+1); rd; 1111 001 - POPI ! 57 rd; ;mbr <- (sp) 58 mar:=ac; wr; goto 10; mbr -> m(ac)

59 alu:=tir; if n then goto 62; 1111 010 ili 1111 011 ? 60 sp:=sp+(-1); 1111 010 - PUSH instrukcija 61 mar:=sp; mbr:=ac; wr; goto 10; 62 mar:=sp; sp:=sp+(+1); rd; 1111 011 - POP instrukcija 63 rd; 64 ac:=mbr; goto 0; 65 tir:=lshift(tir); if n then goto 73; 1111 10X ili 1111 11X ? 66 alu:=tir; if n then goto 70; 1111 100 ili 1111 101 ? 67 mar:=sp; sp:=sp+(+1); rd; 1111 100 - RETN instrukcija 68 rd; 69 pc:=mbr; goto 0; 70 a:=ac; 1111 101 - SWAP instrukcija 71 ac:=sp; 72 sp:=a; goto 0; 73 alu:=tir; if n then goto 76; 1111 110 ili 1111 111 ? 74 a:=band(ir,smask); 1111 110 - INSP instrukcija 75 sp:=sp+a; goto 0; 76 a:=band(ir,smask); 1111 111 - DESP instrukcija 77 a:=inv(a); 78 a:=a+(+1); goto 75;

mar := pc; ac:= mbr; rd; goto 1; Diskusija... PC se inkrementira u liniji 1 iako se to moglo uraditi i u liniji 0, ostavljajući liniju 1 za neke druge poslove (npr. traže li U/I uređaji obradu, DMA, refresh i sl.). Ako se linija 1 ne promijeni, procesor se može ubrzati promjenom linije 8 u: mar := pc; ac:= mbr; rd; goto 1; Time se počinje donošenje sljedeće instrukcije prije završetka tekuće - jednostavna forma protočne strukture (engl. pipeline). puno vremena gubi u dekodiranju instrukcija !

HORIZONTALNO ILI VERTIKALNO MIKROPROGRAMIRANJE?