• No se han encontrado resultados

ARQUITECTURA VON NEUMANN

N/A
N/A
Protected

Academic year: 2021

Share "ARQUITECTURA VON NEUMANN"

Copied!
40
0
0

Texto completo

(1)

ARQUITECTURA VON NEUMANN Unidad Central de Proceso Memoria Unidad de Entrada /Salida principal bus de datos bus de direcciones bus de control Computador Periféricos de entrada y salida de datos Lógica Digital Microprogramación Sistema operativo Lenguajes de alto nivel Usuario y aplicaciones

(2)

Descripción de la Arquitectura de la MR LA MEMORIA ... 0 1 2 3 4 5 253 254 255 328 32767 -45 5 -19452 -13050 3984 12347 15324 Min Mout @ L/E 16 16 8

(3)

LA CPU Banco de ALU Flags N Z Registros R0-R7 PC IR SISTEMA SECUENCIAL Unidad de Proceso Unidad de Control

3 12

entradas salidas UNIDAD CENTRAL DE PROCESO (CPU)

(4)

ARQUITECTURA DE LA MR Unidad Central de Proceso Memoria Unidad de Entrada/ Salida principal datos direcciones control Unidad Central de Proceso datos direcciones control 1 16 16 8 Memoria Principal (28x16)

(5)

... 23 24 25 ... instr. a instr. b (salto) instr. c ... ... ... 35 36 37 ... instr. j instr. k instr. l ... ... SECUENCIAMIENTO

(6)

Nivel de Lenguaje Máquina de la MR INSTRUCCIONES : ARITMÉTICO-LÓGICAS DE ACCESO A MEMORIA DE SALTO INSTRUCCIONES ARITMÉTICO-LÓGICAS Suma - ADD Resta - SUB

Desplazamiento aritmético a la derecha - ASR

And-lógica - AND

Suma con inmediato - ADDI

(7)

CO Rd Rf1 Rf2 OP

2 3 3

15 13 10 7 4 2

CO Rd Rf1 número OP

15 13 10 7 2

00 Formato de las instruccionesde suma, resta, desplazamiento a la derecha, y and lógica.

11 Rd Rf1 Rf2 100 15 13 10 7 4 2 00 11 Rd Rf1 Rf2 101 15 13 10 7 4 2 00 11 Rd Rf2 110 15 13 10 7 4 2 00 11 Rd Rf1 Rf2 111 15 13 10 7 4 2 00 Suma Resta Desplazamiento a la derecha And lógica

Formato de las instrucciones de suma y resta de inmediato.

11 Rd Rf1 número 000

15 13 10 7 2

11 Rd Rf1 número 001

15 13 10 7 2

Suma con inmediato Resta con inmediato

2

3 3

2 3 3 5 3

(8)

INSTRUCCIONES DE ACCESO A MEMORIA

LOAD

STORE

Dirección operando: Dirección_base + [Ri]

CO Rx Ri Dirección_Base Formato de las instrucciones

2 3 3 8 15 13 10 7 Load/Store 00 Rd Ri 15 13 10 7 01 Rf Ri 15 13 10 7 Load Store Dirección_Base Dirección_Base

(9)

INSTRUCCIONES DE SALTO

Saltar si más pequeño - BL

Saltar si más grande - BG

Saltar si igual - BEQ

Saltar si no igual - BNE

Saltar si más pequeño o igual - BLE

Saltar si más grande o igual - BGE

(10)

CO COND Dirección 2 3 3 8 000 15 13 10 7 10 000 000 Dirección 15 13 10 7 10 101 000 Dirección 15 13 10 7 10 001 000 Dirección 15 13 10 7 10 010 000 Dirección 15 13 10 7 10 011 000 Dirección 15 13 10 7

Formato de las instrucciones de salto

Salto incondicional Saltar si igual

Saltar si más pequeño

Saltar si más pequeño o igual Saltar si no igual

10 111 000 Dirección

15 13 10 7

10 110 000 Dirección

15 13 10 7

Saltar si más grande o igual Saltar si más grande

(11)

10 COND Dirección

2 3 3 8

000

15 13 10 7

Formato de las instrucciones de salto 00 Formato de la instrucción Rd Ri Dirección_Base 2 3 3 8 15 13 10 7 Load 11 Rd Rf1 Rf2 OP 2 3 3 15 13 10 7 4 2 11 Rd Rf1 número OP 15 13 10 7 2 00

Formato de las instrucciones de suma, resta, desplazamiento a la derecha, y and lógica. Formato de las instrucciones de suma y resta de inmediato.

2

3 3

2 3 3 5 3

01

Formato de las instrucción

Rf Ri Dirección_Base

2 3 3 8

15 13 10 7

Store

(12)

Tabla 1. Instrucciones Aritmético-lógicas.

Notación en LE CO OP0-2 Operación Flags de Condición

Addi Rf1, #núm, Rd 11 000 Rd := Rf1 + núm Z := (Rf1 + núm = 0), N := (Rf1 + núm < 0). Subi Rf1, #núm, Rd 001 Rd := Rf1 - núm Z := (Rf1 - núm = 0), N := (Rf1 - núm < 0). Add Rf1, Rf2, Rd 100 Rd := Rf1 + Rf2 Z := (Rf1 + Rf2 = 0), N := (Rf1 + Rf2 < 0). Sub Rf1, Rf2, Rd 101 Rd := Rf1 - Rf2 Z := (Rf1 - Rf2 = 0), N := (Rf1 - Rf2 < 0). Asr Rf2, Rd 110 Rd := Rf2 >> 1 Z := (Rf2 >> 1 = 0), N := Rf215. And Rf1, Rf2, Rd 111 Rd := Rf1 ∧ Rf2 Z := (Rf1 ∧ Rf2 = 0), N := (Rf1 ∧ Rf2 < 0). LENGUAJE ENSAMBLADOR

(13)

Tabla 2. Instrucciones de Acceso a Memoria.

Notación en LE CO Operación Flags de Condición

LOAD dir_base(Ri), Rd 00 Rd := M[dir_base+Ri] Z := (M[dir_base+Ri] = 0), N := (M[dir_base+Ri] < 0), STORE Rf, dir_base(Ri) 01 M[dir_base+Ri] := Rf Z y N no cambian.

Tabla 3. Instrucciones de Salto.

Notación en LE CO COND Condición Comentarios

BR dir_absoluta

10

000 1 Salto incondicional

BEQ dir_absoluta 001 Z Salta si igual

BL dir_absoluta 010 N Salta si más pequeño

BLE dir_absoluta 011 N v Z Salta si más pequeño o igual

100 - Codificación no usada.

BNE dir_absoluta 101 Z Salta si no igual

BGE dir_absoluta 110 N Salta si más grande o igual

(14)

PROGRAMA EJEMPLO

Programa a_por_b

var a, b, sum: entero; a:=10; b:=5; sum:=0; mientras b>0 hacer sum:=sum+a; b:=b-1; fmientras fprograma 0 [@0]=10 1 [@1]=5 2 [@2]=0 3 LOAD 0(R0), R1 4 LOAD 1(R0), R2 5 ADDI R0, #0, R3 6 SUBI R2, #0, R0 7 BLE 11 8 ADD R3, R1, R3 9 SUBI R2, #1, R2 10 BR 6 11 STORE R3, 2(R0) Lenguaje Alto Nivel Lenguaje Ensamblador

0 0000000000001010 1 0000000000000101 2 0000000000000000 3 00 001 000 00000000 4 00 010 000 00000001 5 11 011 000 00000 000 6 11 000 010 00000 001 7 10 011 000 00001011 8 11 011 011 001 00 100 9 11 010 010 00001 001 10 10 000 000 00000110 11 01 011 000 00000010 Lenguaje Máquina

(15)

UP:UNIDAD ARITMÉTICO-LÓGICA

OPERACIONES A REALIZAR:

SUMA: add, addi

RESTA: sub, subi

DESPLAZAMIENTO ARITMÉTICO 1 BIT A LA DERECHA: ASR

AND LÓGICA: and

(16)

UP:UNIDAD ARITMÉTICO-LÓGICA Cin Cout A B Resta -Sumador Restador 16 16 16 Cin Cout A B Suma + 16 16 16 en Ca2 B15 Desplazador Desplazamiento 1 bit a la derecha B0 O15 O0

(17)

UP:UNIDAD ARITMÉTICO-LÓGICA 0-3 5 6 7 MUX2 MUX1 4 MUX0 A B

Sumador Restador Desplazador

16 AND 16 16 Z 16 16 16 16 16 OPERAR (UC) OP1 OP0 OALU N=O15 16 OPERAR OP1 OP0 Operación 0xx Dejar pasar B 100 A + B 101 A - B 110 B >> 1 111 A and B

(18)

UP:UNIDAD ARITMÉTICO-LÓGICA 16 16 16 A B O N Z ALU OPERAR (UC) OP1 OP0 OPERAR OP1 OP0 Operación 0xx Dejar pasar B 100 A + B 101 A - B 110 B >> 1 111 A and B (IR1-0) Registros de 1 bit RN RZ

(19)

UP: BANCO DE REGISTROS R0 = 0 R1 R2 R3 R4 R5 R6 R7 3 Selección 16 Permiso de 16 3 16 16 16 16 16 16 16 16 de Escritura Selección de Lectura Dato de Lectura Dato de Escritura Escritura 16 16 3 Rin - Dato de Escritura Rout - Dato de Lectura PE - Permiso de Escritura SE - Selección de Escritura SL - Selección de Lectura -+ -+ Banco de Registros Rout Rin SL SE PE 3 1

(20)

UP: COMUNICACIÓN B. DE REGISTROS-ALU-MEMORIA Banco de Registros Rout Rin 3 3 0 1 2 3 3 3 IR13-11 IR10-8 IR7-5 2 no usado Rf2 Rf1 Ri Rd CO UNIDAD DE CONTROL SL SE 3 ALU PE Rin - Dato de Escritura Rout - Dato de Lectura PE - Permiso de Escritura SE - Selección de Escritura SL - Selección de Lectura Rf MEMORIA ALU 16 16 IR

(21)

UP: REGISTROS ESPECIALES: PC, IR 16 IR Memoria Mout +1 8 PC

(22)

UP: SELECCIÓN DE LA DIRECCIÓN DE LA SIGUIENTE INSTRUCCIÓN A EJECUTAR +1 8 PC 0 1 8 16 Dirección de memoria @ 8 IR Datos de memoria UNIDAD DE CONTROL

(23)

UP: LÓGICA DE GENERACIÓN DE DIRECCIONES +1 8 PC IR 0 1 8 16 Dirección de memoria @ 8 + 8 8 Rx7-0 R@ Datos de memoria UNIDAD DE CONTROL

(24)

UP: EVALUACIÓN DE LA CONDICIÓN DE SALTO IR13-11 RN RZ COND EVALUACIÓN DE LA CONDICIÓN DE SALTO 3 IR UNIDAD DE CONTROL 1 SLC 1 1

(25)

UP: COMUNICACIÓN MEMORIA-ALU-IR-B. DE REGISTROS 16 IR Memoria Mout Banco de Registros Rin OPERAR OP1 OP0 16 B A O 16 IR 5

EXTENSIÓN DE SIGNO DEL OPERANDO INMEDIATO ? ? Rout 16 5 16 16

(26)

UP: COMUNICACIÓN MEMORIA-B. DE REGISTROS-IR-ALU 16 IR Memoria Mout Banco de Registros Rout OPERAR (UC) OP1 OP0 B A O 16 Ext 0 1 2 3 16 16 16 2 A 5 Rin UC (IR1-0)

(27)

3 R0 8 E 16 Rx0-7 PC / @ R1 load R2 load R3 load R4 load R5 load R6 load R7 load 0 1 2 3 4 5 6 7 3 0 1 2 3 3 3 IR13-11 (Rf) IR10-8 (Rf1/Ri) IR7-5 (Rf2) CRf 2 3 no usado ERd Ld_RZ Ld_RN Ld_A OPERAR CRf Ld_IR Ld_PC Ld_R@ L / E 2 UNID A D D E CONTR O L ERd 0 1 2 3 4 5 6 7 Rx0-15 RA load Ld_RA 16 IR2 (OP2) load 16 16 16 RZ RN load Ld_RZ Ld_RN ALU 2 A B OPERAR IR1-0 (OP1-0) IR13-11(COND) 3 Z N Evaluación de la condición IR15-14 (CO) 2 Cond @ Mout ME MORIA 3 IR13-11 (Rd) UNIDAD DE PROCESO Min 3 2 1 0 1 0 L/E 8 OPERAR R@ PC +1 8 8 8 Ld_PC load Ld_R@ load 8 IR load Ld_IR 8 16 16 16 16 16 EXT 5 1 0 16 16 16 16 IN OUT + IR0-7 IR7-3 PC / @

(28)

CO Rd / Rf Ri dir_base CO COND 000 dir_absoluta CO Rd Rf1 número OP 15 14 13 11 10 8 7 0 15 14 13 11 10 8 7 0 15 14 13 11 10 8 7 3 2 0 LOAD / STORE SALTO ARIT- INMEDIATO Instrucción CO OP ADD Rf1, Rf2, Rd 11 100 SUB Rf1, Rf2, Rd 101 ASR Rf2, Rd 110 AND Rf1, Rf2, Rd 111 ADDI Rf1, #num, Rd 000 SUBI Rf1, #num, Rd 001 Instrucción CO LOAD dir_base(Ri), Rd 00 STORE Rf, dir_base(Ri) 01

Instrucción CO COND Condición

BR dir_absoluta 10 000 1 BEQ dir_absoluta 001 Z BL dir_absoluta 010 N BLE dir_absoluta 011 Z + N BNE dir_absoluta 101 Z BGE dir_absoluta 110 N BG dir_absoluta 111 N + Z CO Rd Rf1 Rf2 00 OP 15 14 13 11 10 8 7 5 4 3 2 0 ARIT / LOGIC RESUMEN DE INSTRUCCIONES

(29)

FASES DE EJECUCIÓN DE UNA INSTRUCCIÓN

Fetch

Decodificación

Búsqueda de operandos + Evaluacion Cond. de Salto

(30)

FASES DE FETCH Y DECODIFICACIÓN

Inicio de la fase de fetch Ld_PC =1

Tmux Tmem

Tmux: Tiempo de respuesta del multiplexor

Tmem: Tiempo de respuesta de la memoria Inicio de la fase de decodificacion. Carga del IR y PC. Ld_IR = 1 señal de reloj Tinc

Tinc: Tiempo de respuesta del incrementador

(31)

GRAFO DE ESTADOS DE LAS FASES DE FETCH Y DECODIFICACIÓN TABLA DE SALIDAS Salidas UC F DE Ld_IR 1 0 Ld_PC 1 0 Ld_R@ 0 0 Ld_RA 0 0 Ld_RZ 0 0 Ld_RN 0 0 ERd 0 0 L/E 0 0 PC/@ 0 x CRf xx xx OPERAR x x xxx IR15, IR14, Cond Estado Salida FETCH F DEC DE Store Load Aritméticas 01x 00x 10x Salto 11x

(32)

GRAFO DE ESTADOS DE LAS INSTRUCCIONES ARITMÉTICAS TABLA DE SALIDAS Salidas UC PO SOE Ld_IR 0 0 Ld_PC 0 0 Ld_R@ 0 0 Ld_RA 1 0 Ld_RZ 0 1 Ld_RN 0 1 ERd 0 1 L/E 0 0 PC/@ x x CRf 01 10 OPERAR x 1 xxx IR15, IR14, COND Estado Salida FETCH F DEC DE xxx LPO PO LSOE SOE 11x

(33)

GRAFO DE ESTADOS DE LAS INSTRUCCIONES DE ACCESO A MEMORIA TABLA DE SALIDAS Salidas UC AD L S Ld_IR 0 0 0 Ld_PC 0 0 0 Ld_R@ 1 0 0 Ld_RA 0 0 0 Ld_RZ 0 1 0 Ld_RN 0 1 0 ERd 0 1 0 L/E 0 0 1 PC/@ x 1 1 CRf 01 xx 00 OPERAR x 0 x xxx IR15, IR14, COND Estado Salida FETCH F DEC DE x1x ADR1 AD STORE S 0xx xxx LOAD L x0x xxx

(34)

GRAFO DE ESTADOS DE LAS INSTRUCCIONES DE SALTO TABLA DE SALIDAS Salidas UC DE AD B Ld_IR 0 0 1 Ld_PC 0 0 1 Ld_R@ 0 1 0 Ld_RA 0 0 0 Ld_RZ 0 0 0 Ld_RN 0 0 0 ERd 0 0 0 L/E 0 0 0 PC/@ x x 1 CRf xx 01 xx OPERAR x x x IR15, IR14, COND Estado Salida xxx FETCH F DEC DE xxx ADR2 AD BRANCH B 10x ACS DE xx1 xxx xx0

(35)

GRAFO DE ESTADOS DE LA UC DE LA MR xxx FETCH F DEC DE xxx ADR2 AD BRANCH B 10x ACS DE xx1 x1x STORE S xxx LPO PO LSOE SOE 11x x0x ADR1 AD LOAD L 0xx ARITMETICAS LOAD STORE SALTO xxx xxx xxx xx0 xxx

(36)

TABLA DE SALIDAS DE LA UC DE LA MR Salidas UC F DE AD L S PO SOE B Ld_IR 1 0 0 0 0 0 0 1 Ld_PC 1 0 0 0 0 0 0 1 Ld_R@ 0 0 1 0 0 0 0 0 Ld_RA 0 0 0 0 0 1 0 0 Ld_RZ 0 0 0 1 0 0 1 0 Ld_RN 0 0 0 1 0 0 1 0 ERd 0 0 0 1 0 0 1 0 L/E 0 0 0 0 1 0 0 0 PC/@ 0 x x 1 1 x x 1 CRf xx xx 01 xx 00 01 10 xx OPERAR x x x 0 x x 1 x

(37)

xxx FETCH F DEC DE BRANCH B 10x 01x STORE S xxx LPO PO LSOE SOE 11x 00x ADR AD LOAD L 0xx ARITMETICAS LOAD STORE SALTO xxx xxx xxx xxx 100 101

(38)

GRAFO DE ESTADOS SIMPLIFICADO DE LA UC . xxx FETCH F DECO D BRANCH B 101 ARIT A 11x LOAD L 00x STORE S 01x xxx xxx xxx 100 xxx IR15, IR14, COND Estado Salida

(39)

TABLA DE SALIDAS SIMPLIFICADA DE LA UC Salidas UC F D A L S B Ld_IR 1 0 1 0 0 1 Ld_PC 1 0 1 0 0 1 Ld_R@ 0 1 0 0 0 0 Ld_RA 0 1 0 0 0 0 Ld_RZ 0 0 1 1 0 0 Ld_RN 0 0 1 1 0 0 ERd 0 0 1 1 0 0 L/E 0 0 0 0 1 0 PC/@ 0 X 0 1 1 1 CRf xx 01 10 xx 00 xx OPERAR x x 1 0 x x

(40)

IMPLEMENTACIÓN CON ROM DE LA UC PC / @ D Q D Q D Q IR15 IR14 COND Q2 Q1 Q0 D2 D1 D0 ER d Ld _RZ Ld _RN Ld_ R A OPERAR CR f Ld_ IR Ld_ P C Ld_ R @ L / E 2 ROM 26x15 clk +

Referencias

Documento similar

1938, John von Neumann trató este problema no en términos de ecuaciones, como se había hecho hasta entonces, sino con inecuaciones, probando en un caso particular que la existencia

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

Las reglas de dise˜ no de la arquitectura von Neuman contin´ uan vigentes hoy en d´ıa para la construcci´ on de ordenadores: la unidad de control y la unidad aritm´etico-l´

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

This paper has presented a common architectural framework for the development of teleoperated service robots control units (ACROSET), and also two application examples in

• Sensores ópticos situados a la entrada a planta de los ascensores de bajada y en la salida a planta de los ascensores de salida para el contaje de los vehículos y el control

De la Salud de la Universidad de Málaga y comienza el primer curso de Grado en Podología, el cual ofrece una formación generalista y profesionalizadora que contempla

SelZ Señal de control a un multiplexor que selecciona como dato a escribir en el registro de estado como flag de Cero, el bit 0 del registro acumulador o el indicador de Cero