memoria - UIS Procesadores 2008

Download Report

Transcript memoria - UIS Procesadores 2008

PROCESADORES
Clase Teórica N°3
Procesador de Pardo y Boluda
Agenda
•
Introducción y Conceptos previos
–
–
•
Arquitectura Harvard y Von Newmann
Diagrama de tiempos del bus de un procesador
Estudio del DataPath del procesador de Boluda
–
Vista sin señales de control.
•
•
•
–
•
•
Códigos de operación.
Actividad para estudiar como es el flujo de datos en algunas instrucciones.
Estudio del Código en VHDL del procesador
–
–
–
–
•
Vista con señales de control.
Estructura de la memoria
Set de instrucciones (ISA)
–
–
•
Contador de programa
Registro de Instrucción
Acumulador
Registros
Triestado
Máquina de estados
Sección Combinacional
Sobre el laboratorio
–
Descripción VHDL de una memoria RAM
Arquitectura general de un sistema
de cómputo
Bus de direcciones
Bus de datos
Bus de control
•RW
•CS
•CE
•OE
MEMORIA
Programas – Datos - Pilas
PERIFÉRICOS
Sensores – Actuadores –
Comunicaciones
Arquitectura Von Newmann y
Harvard
MEMORIA
Datos
+
Programa
Von Newmann
MEMORIA
Datos
MEMORIA
Datos
Harvard
Datapath del procesador de Boluda
Datapath del procesador de Boluda
Estructura de la memoria
00
Programa
Datos
FF
00
Código de Instrucción 0
01
Dato 0
02
Código de Instrucción 1
03
Dato 1
04
Código de Instrucción 2
05
Dato 2
06
Código de Instrucción 3
07
Dato 3
Estructura de la memoria
r_w
Direcciones
Datos
Memoria
Procesador
Set de instrucciones
Mnemónico
• ld a,(xx)
• ld (xx),a
• and a,(xx)
• add a,(xx)
• sub a(xx)
• jz xx
• jmp xx
• nop
Código de operación
• 000
• 001
• 010
• 011
• 100
• 101
• 110
• 111
Máquina de estados
reset
Inicial
Búsqueda
jz
Ejecución
ld a xx
jmp
sub a
and a
ld xx a
add a
Ejecución de una instrucción
jmp 0x02
reset
Inicial
Búsqueda
0x??
0x06
0x20
jz
Ejecución
ld a xx
jmp
sub a
and a
ld xx a
add a
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x00
0x80
0x04
0x81
0x05
0x08
0x06
0x02
lda 0x80
suba 0x81
jz 0x08
jmp 0x02
Ejecución de una instrucción
jmp 0x02
reset
Inicial
Búsqueda
0x06
0x07
0x20
jz
Ejecución
ld a xx
jmp
sub a
and a
ld xx a
add a
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x00
0x80
0x04
0x81
0x05
0x08
0x06
0x02
lda 0x80
suba 0x81
jz 0x08
jmp 0x02
Ejecución de una instrucción
jmp 0x02
reset
Inicial
Búsqueda
0x10
0x02
0x20
jz
Ejecución
ld a xx
jmp
sub a
and a
ld xx a
add a
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x00
0x80
0x04
0x81
0x05
0x08
0x06
0x02
lda 0x80
suba 0x81
jz 0x08
jmp 0x02
Código VHDL del procesador
Componentes
•
•
•
•
Registros
Triestado
Combinacional
Máquina de
estados
Laboratorio
Diagrama de bloques
MEMORIA
Datos
+
Programa
PERIFERICO
Puerto de
Salida
LEDS
Laboratorio
Código en assembler
MEMORIA
Datos
+
Programa
PERIFERICO
Puerto de
Salida
LEDS
0
1
2
3
4
5
6
7
??
??
??
??
??
??
??
??
lda 0x80
128
129
130
131
132
133
255
1
0
255
255
6
Constantes
255
0
suba 0x81
jz 0x08
jmp 0x02
GPO
Variables
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
lda posición 128
suba posición 129
jz posición 8
jmp posición 2
lda posición 131
suba posición 129
ldxxa posición 131
jz posición 18
jmp posición 0
lda posición 132
suba posición 129
ldxxa posición 132
jz posición 28
jmp posición 0
lda posición 133
ldxxa posición 132
lda posición 130
adda posición 129
ldxxa posición 130
nop,nop
jmp posición 0