introducción al microprocesador i386ex
Post on 01-Jan-2016
38 Views
Preview:
DESCRIPTION
TRANSCRIPT
Introducción al microprocesador i386ex
Un procesador que incluye dispositivos en su mismo chip
i386ex: Un microprocesador empotrado Pertenece a la familia x86 de intel Arquitectura CISC
Sólo 8 registros de propósito general: AX BX CX DX SI DI SP BP Ancho de 8, 16 y 32 bits
Memoria segmentada: Segmentos de 64 Kbytes de tamaño 6 registros de segmento: CS (CODE), DS (DATA), SS
(STACK). 16 bits Dirección final de memoria = Reg Seg x 16 + Offset El offset es el modo de direccionamiento = R base + R
indice + Desplazamiento
¿Empotrado? En inglés embedded Embedded system según
www.wikipedia.org:An embedded system is a special-purpose computer
controlled electo-mechanical system in which the computer is completely encapsulated by the device it controls. An embedded system has specific requirements and performs pre-defined tasks, unlike a general-purpose personal computer. An embedded system is a computer-controlled system. The core of any embedded system is a microprocessor, programmed to perform a few tasks (often just one task). This is to be compared to other computer systems with general purpose hardware and externally loaded software. Embedded systems are often designed for mass production.
El microprocesador i386ex se emplea en el diseño de sistemas empotrados Además de su núcleo (core) computacional
contiene Dispositivos usados en sistemas empotrados:
Temporizadores Contadores Controlador de interrupciones Acceso directo a memoria Líneas de salida digital de uso general
Arquitectura de 32 bits compatible con el PC Modo de bajo consumo Medidas de seguridad anti-cuelgues del bus
Bloques funcionales
Unidadde
controldel bus
SIO 1 y 2
Núcleo computacional
microprocesador i386 SX
Datapath y Unidades deEjecución
Controlador deDMA, acceso
directo a memoria
Árbitrodel Bus
SSIO
WDT/ Monitorde Bus
Reloj y Potencia
JTAGCSU
I/O Ports
ICU
Address Bus
Data Bus
i386EX
Cola deprerrecojida deinstrucciones
SIO: Serial input output
ICU: Interrupt controller unit
DMA: Direct memory access
El núcleo computacional i386sx : funcionamiento.
R ecogidain str 1
D ecodifi ca-ción in str 1
E jecu ciónin str 1
R ecogidain str 2
D ecodifi ca-ción in str 2
E jecu ciónin str 2
T iem po tr an scu r r ido
R ecogidain str 1
R ecogidain str 2
R ecogidain str 3
R ecogidain str 4
Wresu l tado 1
R ecogidain str 5
D ecod 1 D ecod 2 D ecod 3 D ecod 4 D ecod 5
E xec 1 E xec 2 E xec 3 E xec 4
A ddr &M M U
A ddr &M M U
B I U
U nidad dedecodifi cación
U na unidad deejecución
M M U
C auce de ejecución del i386E X
P rocesador no encauzado
El núcleo computacional i386sx : estructura. Núcleo computacional 386SX
Cola de instruccionesde 16 bytes
Árbitrodel Bus
holdintrnmi
#error#busyreset
#smiactpereq
Rec
ogid
a de
cód
igo
y de
pág
inas
Bus
de
dire
ccio
nes
real
es
Unidad de controldel bus
Drivers dedirecciones
Control detamaño del
bus yencauza-
miento delbus
Transcepto-res y
Multiplexores
m/#iod/#c#lock#ads #na#ready
d15:0
#be0,#be1,A25:1
Con
trol
de pr
iori
dad
deac
ceso
al b
usPLA de control y deatriibutos
Sumador
Unidad de paginación
PLA de límites yatributos
Registro dedescriptores
Sumador de 3 entradas
Unidad de segmentación
32
32
Anticipador de recogidade instrucciones
32
Bus
de
dire
ccio
nes
linea
les
32
Decodificador deinstrucciones
Cola de 3instruccionesdecodificadas
Unidadde
ControlMicropro-gramada yROM demicro-código
Bus de control interno
Statusflags
ALU
Fich
ero
de reg
i str
os
Mul
t ipl
icad
or, d
i vis
or y
desp
l aza
dor
rápi
do
32
32
Bus
de
dire
ccio
nes
efec
tiva
s
Bus
de
dire
ccio
nes
efec
tiva
s
Controlde laALU
32Flujo decódigo
32Bus de la ALU dedicado
Datapath
Cache de páginas
Introducción al bus del µP i386ex
El canal de comunicación del µP con la memoria y los periféricos.
Buses de datos y de direcciones El bus de datos es de 16 bits de ancho, una word. Contiene siempre la dirección de la word que el
procesador necesita leer o escribir.
i386EX
B u s dedi r eccion es.C on ten ido = 3
8-15
0-7
B y te bajoB y te al to
1
0
7
6
5
4
3
2
Nºwor d
B u s de datos 0-15
L a w or ddi r eccion adaes l a n ú m er o
3
E l by te bajo de l a w or d 3, sudi r ección de by te es l a 6
E l by te al to de l a w or d 3, sudi r ección de by te es l a 6+1
Buses de datos y de direcciones El bus de datos es de 16 bits de ancho, una word. Contiene siempre la dirección de la word que el
procesador necesita leer o escribir.
R u ta baja 0:7 R u ta al ta 8:15
B u s de datos16 bi ts
R esto de gr u pos B u s de d i r eccion es25 bi ts
E l bu s del i 386E X
El bus de datos: ruta baja y ruta alta.
i386EX
B u s dedi r eccion es.C on ten ido = 3
8-15
0-7
B y te al to
1
0
7
6
5
4
3
2
Nºwor dB y te bajo
B u s de datos 0-15
L a w or d di r eccion ada esla n ú m er o 3
E l by te r esiden te en lad i r ección (de by te) n ú m er o 6es el ú n ico by te d i r eccion ado
en esta tr an sacción
#ble
#ble
E ste n iv el 0 en la señ al # ble sign ifi ca qu eel pr ocesador n ecesi ta u sar l a r u ta baja del
bu s de datos
Usando sólo la ruta alta: #bhe
i386EX
B u s dedi r eccion es.C on ten ido = 3
8-15
0-7
1
0
7
6
5
4
3
2
Nºwor dB y te bajoB y te al to
B u s de datos 0-15
L a w or d di r eccion ada esla n ú m er o 3
E l by te r esiden te en lad i r ección (de by te) n ú m er o 7es el ú n ico by te d i r eccion ado
en esta tr an sacción
#ble
#ble
E ste n iv el 1 en la señ al # ble sign ifi ca qu eel pr ocesador n o n ecesi ta u sar la r u ta baja
del bu s de datos
# bhe
E ste n iv el 0 en la señ al # bhe sign ifi ca qu eel pr ocesador n ecesi ta u sar la r u ta al ta del
bu s de datos
# bhe
Checkpoint!
R u ta baja 0:7 R u ta al ta 8:15
B u s de datos16 bi ts
bid i r eccion al
R esto de gr u pos B u s de d i r eccion es25 bi ts
U n id i r eccion al
B y te en ables#ble#bhe
E l bu s del i 386E X
Un bus síncrono
i386EX
clk2 clkou t
clk2
E stado T 1
C icl o de bu s m ín im o
E stado T 2
clkou t(ph1)
ph2
La señal reset
i386EX
clk2 clkout
reset
boot
La recepción de un reset lleva al procesador a su estado inicial (boot o arranque).
#ads: Comienzo de un nuevo ciclo de bus
clk2
clkout
Estado T1Fase 1 (ph1)
Ciclo de bus mínimo
Estado T2Fase 2 (ph2)
#ads
w/#r
d/#c
m/#io
A1:25
#ble
#bhe
Dirección de memoria(word)válida
i386EX
clkout
w/#rd/#cm/#io
clk2#ads
Memoria
A1:25
Checkpoint!
R eloj ex ter n oclk2
R eloj del pr ocesadorcl kou t
A 0:7 A 8:15
B u s de datos16 bi tsbid i r eccion al
B y te en ables#ble#bhe
B u s de d i r eccion es25 bi tsU n id i r eccion al
D efi n ición de ci cl o de bu sw /#r m /#io d/#c
I n i ci o de ci cl o de bu s#ads
E l bu s del i 386E X
Terminación de un ciclo de bus: #ready
i386EX
clkout
w/#rd/#cm/#io
clk2#ads
Memoria
A1:25
Generadorexterno dewait states
#ready
d0:15
clk2
ph2
Estado T1Fase 1 (ph1)
Ciclo de bus mínimo
Estado T2Fase 2 (ph2)
#ads
w/#r
d/#c
m/#io
A1:25
#ble
#bhe
Dirección de memoria(word)válida
#ready
D0:15 Datoslistos
¿Qué tipos de ciclos de bus existen?
m/#io
d/#c
w/#r
Tipo de ciclo de bus
0 0 0 Ciclo de reconocimiento de interrupción
(Interrupt Acknowledge Cycle).
0 0 1 -
0 1 0 Lectura de datos procedente del espacio de i/o
0 1 1 Escritura de datos hacia el espacio de i/o
1 0 0 Lectura de instrucción desde memoria
1 0 1 Ciclo de halt o shutdown
1 1 0 Lectura de datos desde memoria
1 1 1 Escritura de datos en memoria
Little-endian
cf 12
La word que está presente en el registro AX se almacenaría en la dirección 1AB21h del modo representado en la figura.
1AB22
1AB21
1AB23
1AB24
1AB20
1AB1F
Memoria del
Sistema
Registro AXalah
12
cf
Cómo se direcciona la memoria y los periféricos
B u s de di r eccion es+ 2 by te en ables
0000003h
0000002h
0000004h
0000005h
0000001h
0000000h
E spaciode
m em or ia
8 bi ts(1by te)
3ffffffh
26 bi ts efect i v os
B u s de di r eccion es+ 2 by te en ables
16 l í n easefect i v as
64 Mbytes
i386EX
0003h
0002h
0004h
0005h
0001h
0000h
E spaciode i /o
(P u er tos d e en tr ad a/sal i d a)
8 bi ts(1 by te)
ffffh
64 Kbytes
m /# io
0 1
La memoria vista por el programador: Un array de bytes.
0000003h
0000002h
0000004h
0000005h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
64 Mbytes
La memoria vista por el i386ex: Un array de words (16 bits)
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
32 Mwords
i386EX
8 bi ts(1by te)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
0000004h0000005h
0000006h0000007h
3fffffeh
D i r ección de by te n ú m er o...
B y te bajo decada w or d
B y te al to decada w or d
N ú m er o de w or d =C on ten ido del bu s
de d i r eccion es
D i r ección de by te n ú m er o...
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
32 Mwords
i386EX8 bi ts
(1by te)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
0000006h0000007h
3fffffeh
B y te bajo decada w or d
B y te al to decada w or d
D irección de w ord0000005h f8h 0000004h
ah al
D i r ección d e by te d e esta celd a.
C on ten id o d e esta celd a (1 by te)
N ú m er o de w or d =C on ten ido del bu s
de d i r eccion es
B us de direccionesa1:25 = 0000002h
# bhe
# ble
d8:15
d0:7
f8h
f8h
f8hf8hf8hf8h
f8h
f8h
f8h
f8h
f8h
f8h
f8h
E l i386E X está ejecu tan do m ov ah, ds:[5]
Redes de intercambio de bytes. Transferir el byte bajo de
una word a la parte alta del registro de destino, o al revés:
Hay que utilizar una red de intercambio.
El 386ex, ya la tiene. En otros procesadores,
habrá de ser provista por el diseñador.
i386EX
ah al
R ed de in ter cam bio de by tes
i486GX
ah al
R ed de in ter cam biode by tes ex ter n a
Ejemplo:
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
32 Mwords
i386EX8 bi ts
(1by te)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
0000006h0000007h
3fffffeh
B y te bajo decada w or d
B y te al to decada w or d
D irección de w ord0000005h f8h 0000004h
ah al
D i r ección d e by te d e esta celd a.
C on ten id o d e esta celd a (1 by te)
N ú m er o de w or d =C on ten ido del bu s
de d i r eccion es
B us de direccionesa1:25 = 0000002h
# bhe
# ble
<
d8:15
d0:7
f8h
f8h
f8hf8hf8hf8h
f8h
f8h
f8h
f8hf8h
f8h
f8h
E l i386E X está ejecu tan do m ov al , ds:[5]
f8h
f8h
f8h
Lectura de una word: Visión lógica.
0000003h
0000002h
0000004h
0000005h
0000001h
0000000h
7fh
50h
8 bi ts(1by te)
3ffffffh
64 Mbytes
7fh7fhalah
ax
Lectura de una word: Visión real.
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
32 Mwords
i386EX8 bi ts
(1by te)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
0000006h0000007h
3fffffeh
B y te bajo decada w or d
B y te al to decada w or d
D irección de w ord0000005h
f8h
0000004h
ah al
D i r ección d e by te d e esta celd a.
C on ten id o d e esta celd a (1 by te)
N ú m er o de w or d =C on ten ido del bu s
de d i r eccion es
B us de direccionesa1:25 = 0000002h
# bhe
# ble
d8:15
d0:7
f8h
f8h
f8hf8hf8hf8h
f8h
f8h
f8h
f8h
f8h
f8h
f8h
E l i386E X está ejecu tan do m ov ax , ds:[2]
6ch
6ch
6ch
6ch
6ch6ch6ch6ch6ch6ch
6ch
6ch
6ch
6ch
6ch
Lectura de una word no alineada
4bh
0000003h
0000002h
0000004h
0000005h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
64 Mbytes
4bh7fhalah
ax
7fh 0000006h
Dirección inicial de la word = 5 Tamaño de una word = 2 5 mod 2 = 1 ≠ 0, está desalineada, por tanto, la word lógica está en dos words físicas
seguidas
Lectura de una word desalineada: Primer ciclo.
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
32 Mwords
i386EX8 bi ts
(1by te)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
0000007h
3fffffeh
B y te bajo decada w or d
B y te al to decada w or d
D irección de w ord0000005h f8h 0000004h
ah al
N ú m er o de w or d =C on ten ido del bu s
de d i r eccion es
B us de direccionesa1:25 = 0000003h
# bhe
#ble
d8:15
d0:7
E l i386E X está ejecu tan do el pr im er ci clo debu s de an cho 1 by te cor r espon dien te a la
in str u cción m ov ax , ds:[5]
6ch
6ch
6ch
6ch6ch6ch6ch6ch6ch
6ch
6ch
6ch6ch
6ch
6ch0000006h
6ch
6ch
E l ci r cu i to i n ter cam biador deby tes en r u ta el dato
pr oceden te de la r u ta dedatos i n fer i or a l a
par te al ta del r egi str o
C on ten id o d e esta celd a (1 by te)
D i r ección d e by te d e esta celd a.
Lectura de una word desalineada: segundo ciclo.
0000003h
0000002h
0000001h
0000000h
8 bits (1byte)
3ffffffh
32 Mwords
i386EX
8 bits (1byte)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
0000007h
3fffffeh
Byte bajo decada word
Byte alto decada word
Dirección de word 0000005h f8h 0000004h
ah al
Número de word =Contenido del bus
de direcciones
Bus de direccionesa1:25 = 0000002h
#bhe
#ble
d8:15
d0:7
El i386EX está ejecutando el segundo ciclo de bus de ancho 1 byte correspondiente a la
instrucción mov ax, ds:[5]
6ch
6ch0000006h
El circuito intercambiador debytes enruta el dato
procedente de la ruta dedatos alta a la
parte inferior del registro
Contenido de esta celda (1 byte)
Dirección de byte de esta celda.
f8h
f8h
f8h
f8h
f8hf8hf8hf8hf8h
f8h
f8h
f8h
f8hf8h
f8h
f8h
Lectura de una dword desalineada.
4bh
0000003h
0000002h
0000004h
0000005h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
64 Mbytes
4bh7fhalah
eax
7fh 0000006h
81h00h
81h
00h 0000008h
0000007h
Dirección inicial de la dword = 5 Tamaño de una dword = 4 5 mod 1 = 1 ≠ 0, está desalineada, por tanto, la dword lógica está en tres words
físicas seguidas
Lectura dedworddesalineada:Ciclo 1 (byte).
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te
)
1ffffffh
32 Mwords
i386EX8 bi t s(1by te
)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
0000007h
3fffffeh
B y te baj ode
cada w or d
B y te al tode
cada w or d
D irecc ió n de w o rd4bh 0000004h
ah al
D i r ecci ón d e by te d e esta cel d a .
N ú m er o de w or d=
C on ten i do del bu sde d i r ecci on es
B us de d i recci o nesa 1:25 = 0000004h
# bhe
# bl e
<
d8:15
d0:7
0000009h
81h 7fh
C on ten i d o d e esta cel d a (1 by te)
0000006h
0000005h
00h
00h00h00h00h00h
00h
00h
00h
00h
00h
00h
00h
00h
0000008h 00heax
mov eax, [5]
Lectura dedworddesalineada:Ciclo 2 (word)
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
32 Mwords
i386EX8 bi ts
(1by te)
0000004h
0000005h
3ffffffh
0000000h0000001h
0000002h0000003h
3fffffeh
B y te bajo decada w or d
B y te al to decada w or d
D irección de w ord4bh 0000004h
ah al
N ú m er o de w or d =C on ten ido del bu s
de d i r eccion es
B us de direccionesa1:25 = 0000003h
#bhe
#ble
d8:15
d0:7
0000009h
7fh0000006h
0000008h 00heax0000007h
D i r ección d e by te d e esta celd a.
81h
C on ten id o d e esta celd a (1 by te)
0000005h
7fh
7fh
7fh
7fh
7fh7fh7fh7fh
7fh
7fh
7fh
7fh
7fh81h
81h
81h
81h
81h
81h81h81h81h81h
81h
81h
81h
81h
81h
81h
81h
7fh
mov eax, [5]
Lectura dedworddesalineada:Ciclo 3 (byte)
mov eax, [5]
0000003h
0000002h
0000001h
0000000h
8 bi ts(1by te)
3ffffffh
32 Mwords
i386EX8 bi ts
(1by te)
0000004h
0000005h
3ffffffh
0000000h
0000002h
0000006h0000007h
3fffffeh
B y te bajo decada w or d
B y te al to decada w or d
D irección de w ord0000005h 0000004h
N ú m er o de w or d =C on ten ido del bu s
de d i r eccion es
B us de direccionesa1:25 = 0000001h
#bhe
# ble
d8:15
d0:7
ah al
eax7fh
00h
81h
4bh
D i r ección d e by te d e esta celd a.
0000001h
C on ten id o d e esta celd a (1 by te)
0000003h
81h
81h
81h
81h
81h
81h
81h81h81h81h81h81h81h
81h
81h
81h
81h
81h81h
81h
81h
Temporización de los tres ciclos seguidos.
clk2
ph2
E stado T 1F ase 1 (ph1)
C i cl o de bu s m ín im o
E stado T 2F ase 2 (ph2)
#ads
w /#r
d/#c
m /#io
A 1:25
#ble
#bhe
D i rección de m em oria(w ord)
4
#r eady
D 0:15 - -00h 817fh
D i rección de m em oria(w ord)
3
4b- -h
D i rección de m em oria(w ord)
2
C icl o de bu s m ín im o
ci clo de bu s 1 ci clo de bu s 2 ci clo de bu s 3
top related