Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

569
8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 1/569  Alfredo Cuesta Infante  José Ignacio Hidalgo Pérez  Juan Lanchares Dávila  José Luis Risco Martín Problemas de fundamentos y estructura de computadores

Transcript of Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

Page 1: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 1/569

 Alfredo Cuesta Infante José Ignacio Hidalgo Pérez Juan Lanchares Dávila  José Luis Risco Martín

Problemas de fundamentosy estructura de computadores

Page 2: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 2/569

Page 3: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 3/569

Problemas de fundamentosy estructura de computadores

Page 4: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 4/569

a

Page 5: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 5/569

Problemas de fundamentosy estructura de computadores

Alfredo Cuesta infanteProfesor Contratado

Centro de Estudios Superiores Felipe II

Universidad Complutense de Madrid 

José Ignacio Hidalgo PérezProfesor Titular de Universidad

Facultad de Informática

Universidad Complutense de Madrid 

Juan Lanchares DávilaProfesor Titular de Universidad

Facultad de Informática

Universidad Complutense de Madrid 

José Luis Risco MartínProfesor Contratado Doctor

Facultad de Informática

Universidad Complutense de Madrid 

Madrid México Santafé de Bogotá Buenos Aires Caracas Lima Montevideo

San Juan San José Santiago Sao Paulo Reading, Massachusetts Harlow, England

Page 6: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 6/569

Datos de catalogación bibliográfica

PROBLEMAS DE FUNDAMENTOS Y ESTRUCTURA

DE COMPUTADORES

Alfredo C. Infante, José I. Hidalgo Pérez, Juan Lanchares Dávila,

José L. Risco MartínPEARSON EDUCACIÓN, S.A., 2009

ISBN: 978-84-8322-591-2

Materia: 004, Computadores

Formato 195#250 mm. Páginas: 568

Todos los derechos reservados.

Cualquier forma de reproducción, distribución, comunicación pública o transformaciónde esta obra sólo puede ser realizada con la autorización de sus titulares, salvoexcepción prevista por la ley. La infracción de los derechos mencionados puedeser constitutiva de delito contra la propiedad intelectual (arts. 270 y sgts. Código penal).

Diríjase a CEDRO (Centro Español de Derechos Reprográficos: www.cedro.org), si necesitafotocopiar o escanear algún fragmento de esta obra.

5 PEARSON EDUCACIÓN, S.A., 2009Ribera del Loira, 2828042 Madrid (España)www.pearsoneducacion.com

ISBN: 978-84-8322-591-2Depósito legal:

Equipo editorial:Editor: Miguel Martín-RomoTécnico editorial: Esther Martín

Equipo de producción:Director: José Antonio ClaresTécnico: Isabel Muñoz

Diseño de cubierta: Equipo de diseño de Pearson Educación, S.A.

Composición COPIBOOK, S.L.Impreso por:

Nota sobre enlaces a páginas web ajenas:  Este libro puede incluir enlaces a sitios web gestionados por terceros yajenos a PEARSON EDUCACIÓN, S.A. que se incluyen sólo con finalidad informativa. PEARSON EDUCACIÓN, S.A.no asume ningún tipo de responsabilidad por los daños y perjuicios derivados del uso de los datos personales que puedahacer un tercero encargado del mantenimiento de las páginas web ajenas a PEARSON EDUCACIÓN, S.A. y delfuncionamiento, accesibilidad o mantenimiento de los sitios web no gestionados por PEARSON EDUCACIÓN, S.A.Las referencias se proporcionan en el estado en que se encuentran en el momento de publicación sin garantías, expresaso implícitas, sobre la información que se proporcione en ellas.

Impreso en España -  Printed in Spain

Este libro ha sido impreso con papel y tintas ecológicos

Page 7: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 7/569

 A mis padres.

A. Cuesta

 A Esther, Elena y Julia que dan alegría y sentido a mi vida.

J. I. Hidalgo

 A Paloma y Juan: empezar todos los días riendo es lo mejor que te puede ocurrir,

 y gracias a ellos yo lo consigo.

J. Lanchares

 A mi hijo Jaime. Y, naturalmente, a mi mujer Esther, porque les quiero y son lo más

importante para mí.

J. L. Risco

Page 8: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 8/569

a

Page 9: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 9/569

Introducción   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

Capítulo 1  Representación de la información   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Sistema de numeración binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Cambios de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1 Sustitución en serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.2 Multiplicación y división . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.3 Cuando una base es potencia de la otra ( R% S  x  o  S % R x ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Representación de números enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3.1 Magnitud y Signo (MyS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3.2 Complemento a 2 (C 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.3 Complemento a 1 (C 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.4 Código BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Representación de números en coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.6 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Capítulo 2   Sistemas combinacionales   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.1 Especificación mediante Funciones de Conmutación (F.C.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2 Especificación mediante Expresiones de Conmutación (E.C.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.3 Simplificación mediante mapas de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.4 Implementación de sumas de productos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.5 Análisis de sistemas combinacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.6 Conjuntos universales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.7 Descodificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.8 Multiplexores o selectores (MUX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.9 ROMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.10 Otros módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.11 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.12 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Page 10: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 10/569

Capítulo 3   Sistemas secuenciales   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.1 Definición de sistema secuencial y concepto de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.1.1 Sistema secuencial (Definición formal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.1.2 Concepto de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.2 Clasificación de sistemas secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.2.1 Sistemas síncronos y asíncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.3 Especificación binaria. Obtención de diagramas de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.3.1 Reconocedores de secuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.3.2 Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.4 Implementación no canónica de reconocedores con biestables  D   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803.5 Implementación canónica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.6 Módulos secuenciales estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.6.1 Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.6.2 Registros de desplazamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.6.3 Banco de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.6.4 Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.7 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.8 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Capítulo 4   Introducción al diseño algorítmico de sistemas   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

4.1 Esquema general de un sistema diseñado algorítmicamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194.2 Proceso de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214.3 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214.4 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Capítulo 5  Estructura de un computador sencillo   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1795.1 Diseño de la unidad de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1795.2 Diseño de la ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815.3 Formato de las instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1825.4 Diseño de la unidad de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1835.5 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1855.6 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Capítulo 6   Introducción a la programación en lenguaje ensamblador   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

6.1 Instrucciones aritmético-lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306.2 Instrucciones de acceso a memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306.3 Instrucciones de salto (BCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306.4 Directivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316.5 Diagramas de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2316.6 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326.7 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

Capítulo 7  Rendimiento   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

7.1 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2677.2 Medidas de rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

viii   Introducción

Page 11: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 11/569

7.3 MIPS: Millones de instrucciones por segundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2687.4 MFLOPS: Millones de instrucciones en coma flotante por segundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2697.5 Ley de AMDAHL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2697.6 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

7.7 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

Capítulo 8   Modos de direccionamiento   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

8.1 Direccionamiento inmediato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2938.2 Direccionamiento directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2948.3 Direccionamiento relativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2958.4 Direccionamiento indirecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2988.5 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2998.6 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

Capítulo 9  Teoría del formato de instrucciones   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

9.1 Campos de la instrucción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3189.2 Características del conjunto de formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3199.3 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3209.4 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

Capítulo 10  Diseño del camino de datos y la unidad de control   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

10.1 Partes básicas de un procesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

10.1.1 Los registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35310.1.2 La memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35510.1.3 Unidad aritmético-lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35510.1.4 Estudio y diseño del camino de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

10.1.5 La unidad de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35710.2 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35810.3 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

Capítulo 11  Procesadores segmentados   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

11.1 Segmentación básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39011.2 Problemas y soluciones: técnicas básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39111.3 Pipeline multifuncional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39411.4 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39611.5 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

Capítulo 12   Memoria   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43112.1 Propiedades de la jerarquía de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43212.2 La memoria cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43312.3 Memoria virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43612.4 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43812.5 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478

Capítulo 13  Entrada/salida   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483

13.1 Bus de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484

Introducción   ix

Page 12: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 12/569

13.2 Módulos de E/ S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48413.3 Gestión de la comunicación CPU-periféricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484

13.3.1 Selección del periférico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48513.3.2 Gestión de las señales de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

13.3.3 Sincronización con la CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48513.4 E/ S programada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48513.5 E/ S mediante interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486

13.5.1 Petición de interrupción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48613.5.2 Reconocimiento de interrupción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48613.5.3 Identificación del dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48713.5.4 Prioridades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

13.6 E/ S DMA (Direct Memory Access) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48713.7 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48813.8 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

Capítulo 14   Buses   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51914.1 Estructura del bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52014.2 Uso básico del bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52014.3 Clases de buses y jerarquías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52114.4 Diseño del bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522

14.4.1 Temporización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52214.4.2 Tipos de transferencia de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52414.4.3 Esquemas de arbitraje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52414.4.4 Decisiones de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525

14.5 Problemas resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52514.6 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546

Bibliografía   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551

x   Introducción

Page 13: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 13/569

Aunque existen bastantes textos teóricos sobre Fundamentos y Estructura de Computadores,es difícil encontrar una recopilación de problemas resueltos sobre esta materia. Con la llegadade los nuevos títulos de grado y la implantación del Espacio Europeo de Educación Superior,el trabajo práctico en clase y su extensión a las horas de estudio se hace cada vez más impor-tante. Para que el alumno pueda afianzar sus conocimientos, sin duda, la mejor metodologíaes la realización de supuestos prácticos y para realizarlos se hacen necesarias herramientascomo el libro que aquí presentamos.  Problemas de Fundamentos y Estructura de Computado-

res pretende ofrecer al lector una amplia variedad de problemas resueltos que cubran los as-pectos más importantes de las asignaturas de Fundamentos y Estructura de Computadores,

desde el diseño secuencial y combinacional hasta los procesadores segmentados.El libro está dividido en dos partes claramente diferenciadas y que responden a su propio

título. Los primeros 6 capítulos se dedican a lo que generalmente se conoce como Fundamen-tos de Computadores y en la segunda parte, capítulos 8 a 14, se avanza en temas algo máscomplejos relacionados con la Estructura de Computadores, de tal forma que el texto profun-diza en complejidad de forma gradual.

Los capítulos están organizados en tres partes. En primer lugar se realiza una breve intro-ducción teórica que recuerda los conceptos más importantes. A continuación se exponen unconjunto de problemas resueltos (en torno a 20 por capítulo) y se concluye con una serie deproblemas propuestos.

En el Capítulo 1 se trata el tema de representación de la información. Este libro cubre unagran parte los conceptos estudiados en las asignaturas dedicadas al diseño, análisis e imple-mentación de sistemas de computación. Entenderemos por sistema un dispositivo que recibe,procesa y genera información en un tiempo finito. Conocer el modo en el que se representa lainformación es por tanto un pilar esencial pues en esa codificación arranca el resto de procedi-mientos que se estudiarán. La información, una vez codificada, se transformará en un númerobinario. Es por tanto natural comenzar por decidir el modo en el que se representarán los nú-meros enteros y reales utilizando un sistema de numeración binaria. En el libro se resuelven yproponen ejercicios de cambios de base, notación Magnitud y Signo (MyS),  C 1 y C 2, así comode representación en coma flotante y el standard IEEE 754.

Page 14: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 14/569

Los primeros sistemas de cómputo que se deben estudiar son los que se tratan en el Capí-tulo 2 y son los denominados combinacionales. Los motivos son varios. En primer lugar estetipo de sistemas no necesita ningún elemento de memoria complejo y la salida depende exclu-sivamente de los últimos valores recibidos en la entrada. El lector comenzará a trabajar con la

operación aritmética más básica como sumar, o las operaciones lógicas AND, OR y NOT queson esenciales en aritmética binaria. En segundo lugar, son precisamente los sistemas que im-plementan estas operaciones lógicas los que, agrupados en módulos que gradualmente vancreciendo en tamaño, dan lugar a sistemas más complejos. Los problemas de este capítulotratan conceptos como el de conjunto universal, el uso de módulos e incide especialmente enla correcta codificación de un problema con enunciados contextualizados, es decir, tal y comose podrían plantear en la vida real.

Una vez vistos los conceptos iniciales de diseño lógico de sistemas combinacionales, en elCapítulo 3 se tratan los sistemas secuenciales, que son aquellos que incorporan elementos dememoria o de almacenamiento de la información. De este modo, la salida en un instante dadodepende, no sólo de la entrada del sistema en el momento de proporcionar la salida, sino tam-bién de los valores recibidos hasta ese momento. Puesto que es imposible almacenar toda lainformación recibida desde el comienzo, es imprescindible comprender el concepto de Estadoy de Máquina de estados. Por otro lado, es necesario también estudiar los diferentes módulossecuenciales que, junto con las máquinas de estados y los módulos combinacionales, sentaránlas bases del diseño de sistemas complejos capaces de resolver algoritmos y finalmente deimplementar computadores.

En el Capítulo 4 se aborda el diseño algorítmico de sistemas digitales. Una vez que ellector se ha afianzado en el manejo de los sistemas combinacionales y secuenciales es el mo-mento de pasar a diseñar sistemas procesadores sencillos. Cualquier sistema se puede ver co-mo un pequeño procesador compuesto por una Unidad de Proceso y una Unidad de Control.

El diseño algorítmico nos permite obtener la implementación de un sistema atendiendo a esteesquema.

El Capítulo 5 amplía los conceptos de Unidad de Control y Unidad de Proceso para estu-diar las características de un sistema computador sencillo pero completo y sus modificacio-nes: Partiendo de unas especificaciones estándar, la máquina rudimentaria, se resuelven pro-blemas sobre cambios en el formato de instrucciones, la ruta de datos y la unidad de control.Con este capítulo el lector obtiene una primera aproximación a la estructura de un computa-dor. La máquina Rudimentaria se describe y explica en profundidad en (Hermida  et al. 2000).

El lenguaje ensamblador permite programar directamente las máquinas que se han diseña-

do en los dos capítulos anteriores. En este momento el lector ya tiene una idea clara de cómola máquina procesa las instrucciones codificadas en binario que incluyen información de con-trol y los operandos del procesador. Para evitar que el programador tenga que utilizar eselenguaje tedioso de 0’s y 1’s, se utiliza un lenguaje nemotécnico conocido como lenguajeensablador y que utiliza expresiones similares al lenguaje natural para especificar las instruc-ciones. El Capítulo 6 presenta una serie de problemas relativos a la programación en ensam-blador. El objetivo principal no es que el alumno realice programas muy complejos, sino queobtenga una visión clara de la forma en que se deben manejar los registros y la informaciónuna vez que ha diseñado y modificado máquinas de procesamiento básicas. El simulador de laMáquina Rudimentaria está disponible en ftp:// ftp.ac.upc.es/ .

xii   Introducción

Page 15: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 15/569

En el Capítulo 7 se tratan los aspectos de cómo medir el coste y rendimiento de un compu-tador. Al diseñar un computador o al mejorar un subsistema de alguno existente, el arquitectode computadores debe tener en cuenta los objetivos de la máquina a modificar teniendo pre-sentes estos dos importantes parámetros.

El Capítulo 8 recoge una serie de problemas de modos de direccionamiento y pretendeque el lector conozca la flexibilidad que los modos de direccionamiento dan al programador ala hora de acceder a los datos almacenados en la memoria. Este capítulo tiene continuidad enel Capítulo 9, dedicado a los formatos de las instrucciones, y 10, sobre diseño de camino dedatos. En el de formatos porque en él se ve cómo el número y modos de direccionamientosafecta al formato final de instrucciones, sobre todo en lo que a tamaños de memoria y tama-ños de palabra se refiere. Por otro lado, en el Capítulo 10, se estudia en profundidad cómoimplementar las unidades secuenciadoras, es decir las unidades que implementan los modosde direccionamiento. Además, al estudiar cómo se implementa cada modo de direccionamien-to, el alumno entiende las implicaciones que la elección de los mismos tiene en los tiempos deejecución de una instrucción.

En formatos de instrucciones se abordan algunos aspectos ya tratados en el Capítulo 5.Como se ha explicado, la misión de las instrucciones y sus formatos es recoger y codificartoda la información necesaria para que las instrucciones del repertorio de instrucciones se eje-cuten correctamente. En este capítulo se pretende que los estudiantes aprendan a implementarformatos teniendo en cuenta que deben interrelacionar formatos de diferentes tipos de instruc-ciones con el objetivo de conseguir un diseño óptimo. Este capítulo está muy relacionado conel Capítulo 10 ya que las decisiones de formato pueden afectar a la complejidad de la unidadde control y por lo tanto al rendimiento final del procesador.

Por lo que se refiere al Camino de datos y unidad de control, el diseño de procesadores

multiciclo permite al alumno comprender las diferentes etapas de ejecución de una instruc-ción. Se pretende que el alumno se acostumbre a pensar en la descomposición del sistemaglobal en etapas, con los subcaminos necesarios y las señales de control. La ejecución secuen-cial le permite centrarse en la implementación instrucción a instrucción sin tener que disper-sarse estudiando las implicaciones de tener varias instrucciones ejecutándose en paralelo en elprocesador. Los problemas se han propuesto de manera que paso a paso se vaya implementan-do un procesador que hemos llamado TIFÓN. A lo largo del capítulo se van dando diferentestipos de instrucciones para que se estudie el formato, el camino de datos y el control necesa-rios para implementarlos. A continuación se van integrando estos caminos en uno único. Deesta manera los alumnos pueden observar no sólo cómo se realiza esta integración sino lasdiferentes opciones de diseño que surgen en este proceso y cómo pueden afectar las decisio-

nes al rendimiento final del procesador.El objetivo del Capítulo 11 son los procesadores segmentados. En este capítulo no se pro-

fundiza en implementaciones hardware propiamente dichas, es decir, no se explica cómo im-plementar las detecciones de riesgos, las paradas o los cortocircuitos, ni se explican técnicasavanzadas como puede ser la planificación dinámica, la predicción de saltos, la especulacióno el multilanzamiento. La idea es trabajar sobre los conceptos de segmentación de manera queel lector sea capaz de comprender los riesgos que aparecen para unas determinadas caracterís-ticas de segmentación, cómo funcionan las técnicas básicas para evitar pérdidas de rendimien-to, y cómo afectan estos riesgos y su tratamiento en el rendimiento final del procesador.

Introducción   xiii

Page 16: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 16/569

El Capítulo 12 trata de la jerarquía de memoria y de sus principios de localidad espacial ytemporal. Desde el inicio de las ciencias de la computación, el programador ha deseado dispo-ner de una memoria ilimitada y extremadamente rápida. El diseño de un espacio de direccio-nes virtuales y la jerarquía de memoria permiten acercarnos a este hecho.

Disponer de un procesador, una jerarquía de memoria y un repertorio de instrucciones tie-ne poco valor si no existe comunicación o interacción con el mundo exterior, o bien, si alcomputador inicial no se le pueden acoplar módulos que incorporen nueva funcionalidad alsistema original. Estos módulos son los dispositivos de entrada/ salida y se tratan en el Capítu-lo 13, donde se hace también especial énfasis en los métodos de entrada / salida (programada,por interrupciones o con DMA).

El Capítulo 14 complementa al anterior capítulo tratando las interconexiones o buses delcomputador, ya sea entre sus componentes internos (procesador, memoria) como con los dis-positivos de entrada/ salida. En este caso no nos hemos centrado tanto en los dispositivos espe-cíficos (CD-ROM, ratón, teclado, etc.) como en la arquitectura propia de la entrada/ salida ysu rendimiento en términos de: ¿qué cantidad de datos se puede mover por el computador porunidad de tiempo?, y ¿cuántas operaciones de entrada/ salida se pueden realizar por unidad detiempo?

xiv   Introducción

Page 17: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 17/569

1.1 Sistema de numeración binario

Un sistema de numeración consta de: Un conjunto ordenado de cifras y un conjunto de opera-

ciones.

Llamaremos Base  al número de cifras que hay en dicho conjunto.

De este modo, el sistema de numeración binario consta de: el conjunto {0, 1}, cuya base es 2.

Las operaciones más sencillas son:

La suma.

La multiplicación.

La multiplicación por potencias de la base.

Para realizar las dos primeras acudiremos a las tablas de sumar y multiplicar.

!   0 1   #   0 1

0 0 1 0 0 0

1 1 0* 1 0 1

*%Genera arrastre

La multiplicación por potencias de la base se realiza del siguiente modo.

Sea un número binario  n al que vamos a multiplicar por 2m.

Si  m  es positivo moveremos la coma decimal de  n  m  posiciones a la derecha; o también

añadiremos m ceros al final.

Si  m  es negativo moveremos la coma decimal de  n  m  posiciones a la izquierda; o tam-

bién quitaremos  m ceros empezando por el final.

Page 18: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 18/569

Ejemplo 1:    Sea  n%11011 y m%3; entonces:   n . 2m%11011000

n . 2.m%11.011

Ejemplo 2:    Sea  n%101.01 y  m%2; entonces:   n . 2m%10101

n . 2.m%1.0101

Multiplicar por potencias de la base un número significa multiplicar dicho número por:

M%0 M%1 M%2 M%3 M%4 M%5 M%6 M%7 M%8 M%9 M%10

1 2 4 8 16 32 64 128 256 512 1024

1.2 Cambios de base

1.2.1 Sustitución en serie

Se usa cuando  S % 10; es decir, cuando queremos pasar a decimal.

( N )10%;i

ai. Ri%an.1

. Rn.1!ñ! a0

. R0!a

.1. R.1

!ñ!a.m

. R.m

Es decir, escribimos el número en notación polinomial y luego calculamos en decimal.

Ejemplo 1:    (1 A4.C )16% 1 . 162! 10 . 161! 4 . 160! 12 . 16.1% 420.75

1.2.2 Multiplicación y división

Se usa cuando  R% 10; es decir, cuando queremos pasar de decimal a otra.

Parte entera:

– Dividir ( N )10 por  S .

– El resto será el dígito menos significativo de ( N )S .

– Repetir el proceso tomando como dividendo el cociente de la división anterior.

– El resto será el siguiente dígito menos significativo.

– El proceso concluye cuando el cociente es 0.

Parte fraccionaria:

– Multiplicar por S   la parte fraccionaria.

– La parte entera del resultado será el dígito más significativo de la parte fraccionaria

de ( N )S .

– Repetir el proceso (puede que no se acabe nunca).

2   Problemas de fundamentos y estructura de computadores

Page 19: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 19/569

Ejemplo:    Pasar (826.17)10 a base 5

1.2.3 Cuando una base es potencia de la otra (R %S x  o S %R x )

Se usa para pasar de binario a octal y hexadecimal y viceversa:

Si  R% S  x: Reescribir  las cifras de ( N ) R

, en la nueva base  S , en grupos de x% Expandir .

Ejemplo:    (736.2)8% (111 011 110 . 010)2

Ejemplo:    (1 A4.C )16% (0001 1010 0100 . 1100)2

Si   S % R x: Juntar las cifras de ( N ) R   en grupos de   x   pasar dichos grupos a la base

S %Comprimir .

Ejemplo:    (101 001 011 . 110)2% (513.6)8

Ejemplo:    (0101 1110 1101 . 0011)2% (5 ED.3)16

Regla Mnemotécnica:

«Si dan el n.o en binario hay que  comprimir . Si lo dan en octal o hexadecimal hay que

expandir ».

1.3 Representación de números enteros

1.3.1 Magnitud y Signo (MyS)

Bit más significativo%

signoSi el n.o es positivo   r   0

Si el n.o es negativo   r   1

Resto de los bits%Magnitud.

Rango representable: [.(2n.1.1), 2n.1

.1].

El cero tiene doble representación (0 000.0)MyS y (1 000.0)MyS

Cálculo del opuesto: Cambiar el signo.

Capítulo 1  Representación de la información   3

Page 20: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 20/569

Cálculo del valor absoluto (en decimal): Puesto que la magnitud se representa en binario,

ya sea el número positivo o negativo, simplemente hay que calcular su equivalente en decimal

(se recomienda el método de sustitución en serie).

1.3.2 Complemento a 2 (C 2)

Mismo convenio para el signo.

Resto de los bits%Magnitud.

Rango representable: [.(2n.1), 2n.1.1]

donde el .(2n.1) se representará como (1 000...(n.1)...00)C 2.

El cero tiene una única representación: (0 000...0)C 2.

Cálculo del opuesto: Tomar el n.o dado (ya sea positivo o negativo) y calcular su  C 2. Para

ello usaremos el siguiente método:

1.o Copiar los bits uno a uno, empezando por la derecha, hasta que aparezca el primer 1

(inclusive).

2.o Negar los bits restantes, es decir cambiar los 0’s por 1’s y los 1’s por 0’s.

Cálculo del valor absoluto (en decimal):

– Si el n.o es positivo r la mag. está en binario  r  Aplicar el método de sust. en serie.

– Si el n.o es negativo r la mag. está en C 2  r  Calcular su opuesto (i.e. su C 2)  r   ñ

ñ  r  Aplicar el método de sustitución en serie.

1.3.3 Complemento a 1 (C 1)

Mismo convenio para el signo.

Resto de los bits%Magnitud.

Rango representable: [.(2n.1.1), 2n.1

.1].

El cero tiene dos representaciones: (0 000 ñ0)C 1 y (1 111ñ1)C 1.

Cálculo del opuesto: Tomar el n.o dado (ya sea positivo o negativo) y calcular su  C 1. Para

ello usaremos el siguiente método: Copiar los bits uno a uno, empezando por la derecha, cam-

biando los 0’s por 1’s y los 1’s por 0’s (es decir, negarlo).

Cálculo del valor absoluto (en decimal):

– Si el n.o es positivo  r  la mag. está en binario  r   Aplicar el método de sust. en serie.

– Si el n.o es negativo  r   la mag. está en  C 1  r  Calcular su opuesto (i.e. su C 1)  r   ñ

ñ  r  Aplicar el método de sustitución en serie.

Utilidad del C 1: Podemos calcular un n.o en notación C 2 sumándole 1 a la notación C 1 que

tiene un método más rápido (desde el punto de vista del PC).

4   Problemas de fundamentos y estructura de computadores

Page 21: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 21/569

1.3.4 Código BCD

Cada dígito del número dado se codifica con su equivalente en binario, usando 4 bits:

0%

0000 1%

0001 2%

00103%0011 4%0100 5%0101

6%0110 7%0111 8%1000 9%1001

Ejemplo:    (0010 0110 1000)BCD%268

1.4 Representación de números en coma flotante

La representación en coma flotante está basada en la notación científica.

La coma decimal no se halla en una posición fija dentro de la secuencia de bits, sino quesu posición se indica como una potencia de la base:

signo exponente signo exponente YZ[ YZ[ YZ[ YZ[ 

! 6.02   . 10.23! 1.01110   . 2.1101

 VWX    VWX V   ∫∫  W  ∫∫  X VWX mantisa base mantisa base

En todo número en coma flotante se distinguen tres componentes:

—   Signo: indica el signo del número (0%positivo, 1%negativo).

—   Mantisa: contiene la magnitud del número (en binario puro).

—   Exponente: contiene el valor de la potencia de la base (sesgado).— La base queda implícita y es común a todos los números, la más usada es 2.

El valor de la secuencia de bits (s,  e p.1, ...,  e0,  mq.1, ..., m0) es:

(.1)s . V (m) . 2V (e)

Dado que un mismo número puede tener varias representaciones

(0.110 . 25%110 . 22%0.0110 . 26)

los números suelen estar normalizados:

– un número está normalizado si tiene la forma 1.xx... . 2xx... (o 0.1xx ... . 2xx...)

– dado que los números normalizados en base 2 tienen siempre un 1 a la izquierda, éste

suele quedar implícito (pero debe ser tenido en cuenta al calcular el valor de la secuen-

cia).

Sea el siguiente formato de coma flotante de 32 bits (base 2, normalizado)

Capítulo 1  Representación de la información   5

Page 22: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 22/569

El rango de valores representable por cada uno de los campos es:

–   Exponente (8 bits con sesgo de 128): .128 ... !127.

–   Mantisa (23 bits normalizados): los valores binarios representables oscilan entre 1.00...

y 1.11..., es decir entre 1 y 2-2

.23

(2-ulp) (1.11...1%

10.00...0.0.0...1).

Obsérvese que la cantidad de números representables es 2

32

(igual que en coma fija). Loque permite la representación en coma flotante es ampliar el rango representable a costa de

aumentar el espacio entre números representable (un espacio que no es uniforme).

IEEE 754

2 formatos   con signo explícito, representación sesgada del exponente (sesgo igual a

(2n.1.1% 127), mantisa normalizada con un 1 implícito (1.M) y base 2.

–   precisión simple  (32 bits): 1 bit de signo, 8 de exponente, 23 de mantisa

1.0 . 2.126 ... (2.2.23) . 2127%1.2 . 10.38 .. 3.4 . 1038

–   precisión doble  (64 bits): 1 bit de signo, 11 de exponente, 52 de mantisa

1.0 . 2.1022 ... (2.2.52) . 21023%2.2 . 10.308 .. 1,8 . 10308

2 formatos  ampliados para cálculos intermedios (43 y 79 bits).

Codificaciones con significado especial

–   Infinito (e%255,  m% 0): representan cualquier valor de la región de overflow.

–   NaN  ( Not-a-Number ) (e% 255,  mb0): se obtienen como resultado de operaciones in-

válidas.

–  Número denormalizado (e% 0, mb 0): es un número sin normalizar cuyo bit implícito

se supone que es 0. Al ser el exponente 0, permiten representar números en las regiones

de underflow. El valor del exponente es el del exponente más pequeño de los números

no denormalizados: .126 en precisión simple y .1022 en doble.

–   Cero (e%0, m%0): número no normalizado que representa al cero (en lugar de al 1).

6   Problemas de fundamentos y estructura de computadores

Page 23: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 23/569

Excepciones:

– Operación inválida:  äuä, 0ä#, 0$0,  ä$ä,   x   mod 0,  ∂  x   cuando   xa 0,

 x%ä.

–   Inexacto:  el resultado redondeado no coincide con el real.–   Overflow  y  underflow.

–   División por cero.

El estándar exige que el resultado de las operaciones sea el mismo que se obtendría si se

realizasen con precisión absoluta y después se redondease.

Hacer la operación con precisión absoluta no tiene sentido pues se podrían necesitar ope-

randos de mucha anchura.

Existen 4 modos de redondeo:

– Redondeo al más cercano  (al par en caso de empate).– Redondeo a más infinito (por exceso).

– Redondeo a menos infinito (por defecto).

– Redondeo a cero  (truncamiento).

Al realizar una operación, ¿cuántos bits adicionales se necesitan para tener la precisión

requerida?

– Un bit r para el redondeo.

– Un bit s (sticky) para determinar, cuando r%1, si el número está por encima de 0,5.

Tabla de operaciones de redondeo

Tipo de redondeo Signo del resultadon 0 Signo del resultadoa0

.ä   !1 si (r  or  s )

!ä   !1 si (r  or  s )

0

Más próximo   !1 si (r  and  p 0) or (r  and  s )   !1 si (r  and  p 0) or (r  and  s )

1.5 Problemas resueltosPROBLEMA 1

Sea la siguiente secuencia de ceros y unos:  A%00101100 y  B% 10010111.

Indicar qué valor representan en decimal si son números:

a)   Binarios   b)   En notación C 1   c)   En notación C 2

d)   En código BCD   e)   En código Exceso-3

Capítulo 1  Representación de la información   7

Page 24: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 24/569

Solución: 

a)   Para pasar de binario a decimal hay que sumar los pesos de los unos.

En A  tenemos unos en las posiciones 2, 3 y 5 (recordar que el bit menos significativo

ocupa la posición 0).En  B  tenemos unos en las posiciones 0, 1, 2, 4 y 6.

En definitiva: ( A)10% 22! 23!25%44; ( B)10%20! 21!22!24! 27%151.

b)   Para pasar de notación C 1 a decimal los números cuyo signo es positivo, o sea el bit más

significativo es 0, se procede exactamente igual que si estuvieran en binario puro.

( A)10%! (22!23! 25)%44

Si el número es negativo, el bit más significativo es 1, primero hay que pasar a bina-

rio puro su magnitud. Esto se logra complementando todos los bits. Después ya se proce-

de igual que en los casos anteriores.

( B)10%. (01101000)2%. (23! 25!26)%.104

c)   Para pasar de notación C 2 a decimal los números cuyo signo es positivo, o sea el bit más

significativo es 0, se procede exactamente igual que si estuvieran en binario puro o en C 1

( A)10%! (22!23! 25)%44

Si el número es negativo, el bit más significativo es 1, primero hay que pasar a binario

puro su magnitud. Esto se logra copiando los bits del número, comenzando por el menos

significativo, hasta que aparece el primer uno inclusive. A partir de él se complementan

todos los demás. Después ya se procede igual que en los casos anteriores.

( B)10%. (01101001)2%. (20!23!25! 26)%.105

d)   A  no puede ser BCD porque el 1101 no pertenece al código; ( B)10%97.

e)   A no puede ser Ex3 porque el 0010 no pertenece al código; ( B)10% 64.

PROBLEMA 2

Marca con un círculo la única afirmación cierta:

a)   (1000)2% ...

b)   (37)8% ...

c)   (1000)BCD% ...

d)   (0101)C 2! (1010)C 2% ...

a)   (.8)10   b)   (8)10   c)   Overflow si ancho%4   d)   Ninguna

a)   (011111)2   b)   (0307)16   c)   (00110111)BCD   d)   Ninguna

a)   (1000)2   b)   (.8)10   c)   El 1000 no es BCD   d)   Ninguna

a)   (15)10   b)   (.1)10   c)   Overflow si ancho%4   d)   Ninguna

8   Problemas de fundamentos y estructura de computadores

Page 25: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 25/569

Solución: 

a)   (1000)2%b)   (8)10  porque al ser un número en binario puro calculamos su equivalente

en decimal sumando los pesos de los unos que aparecen. El único uno está en la posición

3 y por tanto su peso es 23%8.

b)   (37)8%a)   (011111)2 porque para pasar de base 8(% 23) a base 2 debemos rescribir ca-

da cifra del número en base 8 con 3 bits; de este modo 3 %011 y 7%111.

c)   (1000)BCD%a)   (1000)2 porque el dato dado es la codificación del 8 en base 10.

d)   (0101)C 2! (1010)C 2%b)   (.1)10 porque el primer operando es el (5)10 y el segundo es

el (.6)10.

PROBLEMA 3

Completar la tabla

a)   (128)10% (...................................)16

b)   (12)10% (...................................)BCD

c)   (10000)C 2! (01010)C 2% (...................................)C 2

d)   (1101)MyS% (...................................)C 1

Solución: 

a)   (128)10%27%(10000000)2%(80)16.

b)   Rescribiendo 1 % 0001 y 2 % 0010 queda (12)10%(00010010)BCD.

c)   La suma de dos números en notación C 2 se realiza bit a bit y el último acarreo se pierde,por tanto:

(10000)C 2! (01010)C 2% (11010)C 2

d)   El (1101)MyS%.(5)10   porque el bit más significativo representa el signo y el resto su

valor absoluto en binario puro. Para representar el .(5)10  en la notación  C 1  con 4 bits

simplemente hay que escribir el !(5)10 en binario puro con 4 bits y despues complemen-

tar todos los bits. Así tendríamos primero 0101 y tras complementar todos los bits queda

(1010)C 1.

PROBLEMA 4Responde Verdadero o Falso con una V o una F dentro de la casilla de la izquierda de cada

frase.

a)     (.1)10% (11111111)C 2

b)     (1000)C 2! (0001)C 2 desborda con 4 bits

c)     (10011001)BCD% (99)16

d)     (1100)C 2. (0011)C 2% (1001)C 2

Capítulo 1  Representación de la información   9

Page 26: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 26/569

Solución: 

a)   V. (11111111)C 2%.(00000001)2%.(1)10

b)   F. (1000)C 2! (0001)C 2% (1001)C 2%.(0111)2%.(7)10 que está dentro del rango con

4 bits.

c)   F. (10011001)BCD% (99)10Ç (99)16

d)   V. (1100)C 2. (0011)C 2%.(0100)2. (0011)2%.(4)10. (3)10%.(7)10% (1001)C 2

PROBLEMA 5

Completar la tabla

a)   (11001)C 2! (11011)C 2% (.............)C 2 usando 5 bits. ¿Se produce algún error?

b)   (F )16% (.............)8

c)   (16)10%(.............)BCD

Solución: 

a)   Usando 5 bits (11001)C 2! (11011)C 2% (10100)C 2. No se produce ningún error porque la

operación, en decimal, es (.7)! (.5)% (.12); precisamente el resultado obtenido.

b)   (F )16% (001111)2% (17)8

c)   (16)10% (00010110)BCD

PROBLEMA 6

Responde Verdadero o Falso con una V o una F dentro de la casilla de la izquierda de cada

frase.

a)     ( AB)16 no se puede representar en  C 2

b)     (468)8% (0100 0110 1000)2

c)     (1111)BCD%.(1)10

d)     (1010)C 2! (0101)C 2 desborda con ancho de 4 bits

Solución: 

a)   F. ( AB)16   se corresponde con un número entero positivo, que con los suficientes bits,

siempre se podrá representar en el convenio  C 2, en (010101011)C 2.

b)   F. Es imposible que el 468 sea un número en base 8, la representación utiliza los dígitos

de 0 a 7.

c)   F. 1111 no pertenece al código BCD.

d)   F. (1010)C 2! (0101)C 2% (1111)C 2. No se produce desbordamiento.

10   Problemas de fundamentos y estructura de computadores

Page 27: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 27/569

PROBLEMA 7

Escribir el siguiente sistema de ecuaciones, representado en decimal, en base 5:

6 x. 5 y%

113 x. 14 y%9

Solución: 

Debemos rescribir cada una de las cifras del sistema de ecuaciones en base 5.

(6)10% (11)5, (5)10% (10)5, (11)10% (21)5, (3)10% (3)5, (14)10% (24)5, (9)10% (14)5

luego el sistema es

11 x. 10 y%21

3 x. 24 y%14

PROBLEMA 8

Indicar, razonando la respuesta, en qué casos hay desbordamiento si queremos:

a)   Representar (16)2 con 4 bits.

b)   Representar (.4)C 1 con 3 bits.

c)   Representar (.8)C 2 con 4 bits.

d)   Representar (5)MyS con 3 bits.

Solución: 

Habrá desbordamiento cuando el número que queremos representar no pertenece al rango se-

gún el número de bits disponibles.

a)   Con 4 bits el rango en binario es [0, 15] por tanto hay desbordamiento.

b)   Con 3 bits el rango en C 1  es [.3, !3] por tanto hay desbordamiento.

c)   Con 4 bits el rango en C 2 es [.8, !7] por tanto no hay desbordamiento.

d)   Con 3 bits el rango en MyS es [.3, !3] por tanto hay desbordamiento.

PROBLEMA 9

Sea la secuencia 0110 1000 0011 1010.

a)   Suponiendo que se trata de un n.o binario, calcular su equivalente en octal y en hexa-

decimal e indicar su equivalente en decimal.

b)   Suponiendo que se trata de un n.o en BCD calcular su equivalente decimal.

Capítulo 1  Representación de la información   11

Page 28: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 28/569

Solución: 

a)   (64072)8% (683A)16% (21!23! 24!25!23! 211! 213! 214)10

b)   Es imposible que sea BCD puesto que el 1010 no pertenece a dicho código.

PROBLEMA 10

Responde a las siguientes preguntas.

a)   ¿Cuál es el equivalente, en decimal, del (1000)C 2?

b)   ¿Cuál es el equivalente, en notación C 2, del (1011)BCD?

c)   ¿Cuál es el equivalente, en binario, del (257)8?

d)   ¿Cuál es el equivalente, en notación C 1, del (1100)C 2?

Solución: 

a)   Con 4 bits el rango representable en C 2 es [.8,!7] siendo.8 precisamente un 1 segui-

do de tres ceros. Luego la respuesta es .(8)10.

b)   El 1011 no pertenece al BCD por lo tanto no puede tener equivalente en  C 2.

c)   Como el número dado está en base 8%23 debemos rescribir cada cifra con 3 bits. Así 

2% 010, 5%101, 7% 111 y el resultado final es (010 101 111)2.

d)   El (1100)C 2 es el .(0100)2. Complementando los bits obtenemos la representación en

notación  C 1: (1011)C 1.

PROBLEMA 11

Responde a las siguientes preguntas.

a)   ¿Cuánto hay que sumar a (111)C 2 para obtener (100)C 2?

b)   ¿Cuánto hay que restar a (111)C 1 para obtener (100)C 1?

c)   ¿Cuánto hay que sumar a (111)MyS para obtener (100)MyS?

Solución: 

a)   (111)C 2! ( X )C 2% (100)C 2, luego ( X )C 2% (100)C 2. (111)C 2(100)C 2.(111)C 2%(100)C 2!(001)C 2% (101)C 2; Recordar que el último carry se pierde.

b)   (111)C 1. ( X )C 1% (100)C 1, luego ( X )C 1% (100)C 1. (111)C 1(111)C 1. (100)C 1% (111)C 1! (011)C 1% (011)C 1; Recordar que el último carry se vuelve

a sumar.

c)   .(3)10! X % 0, luego  X % (3)10% (011)MyS

12   Problemas de fundamentos y estructura de computadores

Page 29: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 29/569

PROBLEMA 12

Cambiar a decimal los siguientes números. En caso de que no se pueda indicar qué tipo de

error es.

a)   (10101)C 2%b)   (1111)mys%

c)   (10000)C 1%

d)   (0111)C 2%

e)   (0011 1100)ex3%

f)   (1010)BCD%

Solución: 

a)   Es negativo y está en notación C 2 de modo que tenemos que obtener su magnitud copian-

do hasta el primer uno inclusive y complementando el resto de bits. Queda.(01011)2%.11.

b)   Es negativo y está en Magnitud y Signo por tanto su bit más significativo es el signo y el

resto la magnitud en binario puro. Queda entonces .(0111)2%.7.

c)   Es negativo y está en notación  C 1  de modo que tenemos que obtener su magnitud com-

plementando todos los bits. Queda .(01111)2%.15.

d)   Es positivo y por tanto su equivalente decimal se calcula como si se tratase de un número

binario puro de 4 bits. En este caso se trata del 7.

e)   En el código exceso 3 cada cifra del sistema decimal se representa con 4 bits de modo

que el 0 se corresponde con el 0011, el 1 con el 0100, el 2 con el 0101... es decir cada

cifra se codifica con su equivalente binario de ancho 4 al que se le ha sumado 3. En estecaso 0011%0 y 1100% 9; por tanto el resultado es 9.

f)   El código 1010 no pertenece al BCD.

PROBLEMA 13

Contesta las siguientes preguntas

a)   (1110 1000)C 1% (¿?)C 2

b)   (0101 1011)MyS% (¿?)C 2

c)   (F 5)16% (¿?)8

d)   (1111 1000)C 2% (¿?)10

Solución: 

a)   Puesto que es un número negativo en notación  C 1, para calcular su representación en  C 2basta con sumarle 1. El motivo es que la operación  C 1( X )% (2n

. X ).1%C 2( X ). 1,

siendo n  el ancho utilizado. Despejando queda C 2( X )%C 1( X )!1. En definitiva el resul-

tado es (1110 1001)C 2

b)   Como se trata de un número positivo tendrá la misma representación en Magnitud y Sig-

no, en notación C 1  y en notación  C 2, o sea (0101 1011)C 2

.

Capítulo 1  Representación de la información   13

Page 30: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 30/569

c)   El modo más fácil es cambiar primero a base 2 y luego a base 8. Puesto que 16% 24

debemos rescribir cada cifra del número dado con 4 bits. Así tendríamos (1111 0101)2.

Para cambiar ahora a base 8% 23 agrupamos de 3 en 3, comenzanzo por el bit menos

significativo, quedando (011 110 101)2% (365)8.

d)   El procedimiento es el ya comentado en ejercicios anteriores para números negativos ennotación  C 2. Así obtendríamos primero .(0000 1000)2%.(8)10.

PROBLEMA 14

Realizar las siguientes operaciones indicando si hay error de desbordamiento:

a)   (1011)C 2. (0111)C 2, con 4 bits.

b)   (1000)BCD! (0101)BCD, en BCD, usando tantos bits como necesites.

c)   Completar (001010111000101)2% (¿?)8.

Solución: 

a)   La notación C 2 se introduce precisamente para evitar hacer restas. En su lugar se realizarála suma del primer operando más el opuesto del segundo.

El segundo operando es !(7)10 por tanto su opuesto es.(7)10 que en notación C 2 es

(1001)C 2. Por último recordar que cuando se suman dos números en notación  C 2 el últimoacarreo se pierde, sin que ello signifique necesariamente que se ha producido un error dedesbordamiento. El resultado es:

(1011)C 2! (1001)C 2% (0100)C 2

En este caso, sin embargo, sí se produce desbordamiento porque la operación en decimal

es .5.7%.12 que no se puede representar en  C 2 con sólo 4 bits.

b)   Pasando a decimal cada uno de los operandos tenemos 8!5% 13% (0001 0011)BCD.

c)   Agrupando de 3 en 3 como se explicó en el apunte teórico y en ejercicios anteriores que-da (12705)8.

PROBLEMA 15

Completar la tabla:

a)   (38)10% (...............)8

b)   (10000111)BCD%(...............)10

c)   (10000)C 2% (...............)C 2. (01010)C 2

d)   (0101)C 1% (...............)MyS

Solución: 

a)   %32! 6% (100000)2! (00110)2% (100110)2% (46)8.

b)   Agrupando de 4 en 4, comenzando por el menos significativo tenemos 1000%8 y0111%7.

En definitiva (87)10.

14   Problemas de fundamentos y estructura de computadores

Page 31: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 31/569

c)   (10000)C 2% ( X )C 2. (01010)C 2. Despejando (10000)C 2! (01010)C 2% ( X )C 2. Finalmentela suma en  C 2  se realiza directamente (10000)C 2! (01010)C 2% (11010)C 2.

d)   Es un número positivo y por tanto tiene la misma representación% (0101)MyS.

PROBLEMA 16

Completar la tabla:

a)   (128)10% (...................)16

b)   (12)10% (...................)BCD

c)   (10000)C 2! (01010)C 2% (...................)C 2

d)   (1101)MyS% (...................)C 1

Solución: 

a)   % 27% (1000 0000)2% (80)16

b)   (0001 0010)BCD

c)   (10000)C 2! (01010)C 2% (11010)C 2

d)   %.(0101)2% (1010)C 1

PROBLEMA 17

Calcular:

a)   (11001)C 2! (11011)C 2% (................)C 2 usando 5 bits.

b)   ¿Se produce algún error en el cálculo anterior?

c)   (F )16% (................)8

d)   (16)10% (................)BCD

Solución: 

a)   (11001)C 2! (11011)C 2% (10100)C 2

b)   La operación en decimal es  .7!.5%.12, que con 5 bits en   C 2   se representa

(10100). Por tanto no hay ningún error.

c)   % (1111)2% (001 111)2(17)8

d)   (0001 0110)BCD

PROBLEMA 18

Encuentre el número decimal cuya representación en formato IEEE 754 en coma flotante

de 32 bits, compactada en hexadecimal es C19E0000.

Capítulo 1  Representación de la información   15

Page 32: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 32/569

Solución: 

Paso 1.o Obtención de la información almacenada en el registro a partir de la expresión

compactada en hexadecimal.

C 1 9 E 0 0 0 0

1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Paso 2.o Obtención de la información almacenada en el registro a partir de la expresión

compactada en hexadecimal.

C 1 9 E 0 0 0 0

1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

SGN EXPONENTE MANTISA

Paso 3.

o

Cálculo de los diferentes componentes de la representación en punto flotante:– Bit de signo%1   ú   El número es negativo

– Mantisa%%1.001111

– Exponente auténtico%Exponente representado.Exceso

%10000011

.   %1111111

00000100%4

Paso 4.o Cambio de representación del número desde punto flotante a punto fijo

Número%.(%1.001111) . (24)%.1.234375 . 16%.19.75

PROBLEMA 19

Calcule el error, en valor absoluto, que se comete al representar el número decimal

291.072 con el número 4391 en formato IEEE754 (de 16 bits).

Solución: 

Debido a la limitación de la longitud del registro donde se almacena el número IEEE754 (en

este caso es de 16 bits, pero siempre existirá algún límite), puede suceder que al convertir de

decimal a IEEE754 haya que truncar la mantisa del número decimal.

1 PARTE FRACCIONARIA QUE CABE EN EL REGISTRO PARTE FRACCIONARIA TRUNCADA

Por este motivo, existe la posibilidad de que diferentes números decimales tengan la mis-

ma representación IEEE754.

D1 1 IGUAL DIFERENTE 1

D2 1 IGUAL DIFERENTE 2

16   Problemas de fundamentos y estructura de computadores

Page 33: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 33/569

En este caso, el número en IEEE754 se corresponde exáctamente sólo con aquel decimal

cuya parte truncada es nula.

DEXACTO 1 IGUAL 000...

Cuando se quiere conocer el error (en valor absoluto) cometido al representar un decimal

d i con el número F  en IEEE754, por definición se calcula el valor absoluto de su resta:  Error 

absoluto% |d i.F | (en esencia, toda comparación consiste en una substracción). Por suspues-

to, las comparaciones sólo se pueden hacer entre entidades homogéneas, por ello ambos nú-

meros deben estar en el mismo formato. Como las operaciones artiméticas se realizan de for-

ma más directa en decimal que en IEEE754, convertimos el IEEE754 a decimal; y luego

calculamos el valor absoluto de la resta. Obsérvese que al hacer esto estamos comparando el

número d i con el número d exacto.

Conversión del IEEE754 a decimal

Paso 1.o

Obtención de la información almacenada en el registro a partir de la expresióncompactada en hexadecimal.

Paso 2.o Identificación de los diferentes campos presentes en el registro.

Paso 3.o Cálculo de los diferentes componentes de la representación en punto flotante.

– Bit de signo%0   ú   El número es positivo.

– Mantisa%%1.0010001

– Exponente auténtico%Exponente representado.Exceso.

%10000111

.   %1111111

00001000%

8Paso 4.o Cambio de representación del número desde punto flotante a punto fijo.

Número% (%1.0010001) . (28)%%100100010%&200

Comparación

Error absoluto% |d i.d exacto|% |291.072-290|% 1.072

PROBLEMA 20

Se tiene un sumador/ restador en coma flotante que opera con números de 16 bits represen-

tados con el siguiente formato:

Exponente: 8 bits en exceso 28-1.

Mantisa: 8 bits en complemento a 2, normalizada y fraccionaria.

a) Realizar la suma de los números  A  y  B, tal como lo haría dicho sumador. Suponiendo

que A: 1000 0011 | 0110 0011 y  B: 1000

0110 | 1001 1100 (exponente | mantisa)

b)   ¿Existe alguna diferencia entre el resultado obtenido por este sumador y el resultado

real? ¿Por qué?

Capítulo 1  Representación de la información   17

Page 34: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 34/569

Solución: 

a)   1. Primero separamos mantisa y exponentes:

 A B

Exponente 1000 0011 1000 0110Mantisa 0110 0011 1001 1100

2. Comparamos los exponentes

Exponente A% 3

Exponente B% 6

3. Alineamos las mantisas y realizamos la suma.

Para alinear desplazamos hacia la derecha la mantisa afectada del menor expo-

nente. Se desplaza 3 veces (exponente  B. exponente A) y realizamos la suma:

1001 1100

0000 1100 011 ! (los bits tachados se pierden al desplazar)1010 1000

4. Normalizar el resultado.

El valor del resultado se encuentra normalizado ya que la mantisa está expresada

en  C 2.

Por tanto el resultado es

Resultado

Exponente 1000 0110

Mantisa 1010 1000

b)   1. Valor de  A

Exponente 1000 0011

Mantisa 0110 0011

Valor (2.2!2.3

! 2.7!2.8) . 23% 3,09375

2. Valor de  B

Exponente 1000 0011

Mantisa 1001 1100

Valor   .(2.2!2.3

! 2.8) . 26%.25

3. Calculamos el valor del resultado anterior

Exponente 1000 0110

Mantisa 1010 1000

Valor   .(2.2!2.4

! 2.5) . 26%.22

4. Realizando la suma de ambos valores

 A! B%.25! 3,09375%.21,09625.

El resultado tiene un error con respecto al obtenido debido a que al desplazar a la

derecha la mantisa se pierden bits con información significativa.

18   Problemas de fundamentos y estructura de computadores

Page 35: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 35/569

PROBLEMA 21

Se tiene un sumador de coma flotante que opera con números de 16 bits representados en

el formato siguiente:

Exponente MantisaExponente: 8 bits, representado en exceso 2n. 1.

Mantisa: 8 bits, representada en complemento a 2, fraccionaria, normalizada y no

emplea bit implícito.

El sumador opera con un bit de guarda y un bit retenedor y se emplea como técnica de

redondeo la de redondeo al más próximo.

Sean los números  A  y  B  siguientes

 A B

1000 1010 0100 0011 1000 0101 0111 0000

Se pide:

a)   Realizar la suma de A  y  B  tal y como lo haría el sumador.

b)   Calcular el valor en decimal del resultado.

c)   Calcular el valor real de la suma, también en decimal si se hubiese realizado a mano.

d)   Si existe diferencia entre los apartados b) y c) explicar a qué es debido.

e)   ¿Cambiaría el resultado si en lugar de redondeo al más próximo empleásemos la técni-

ca de forzar el bit menos significativo a uno?

Solución: 

a)   1. Separar mantisas y exponentes.

 A B

Exponente 1000 1010 1000 0101

Mantisa 0100 0011 0111 0000

2. Comparar los exponentes

Exponente A% 10

Exponente B% 5

Por tanto el exponente para el resultado, salvo que haya que normalizar, será el

exponente de A.

3. Alineamos las mantisas y realizamos la suma.

Para alinear desplazamos hacia la derecha la mantisa afectada del menor expo-

nente. Se debe desplazar 5 veces (exponente  A. exponente B) y realizar la suma.

0100 0011 00

0000 1100 10 ! (los bits en cursiva son el bit de guarda y el retenedor

respectivamente)0100 0110 10

4. Normalizar el resultado.

El valor del resultado se encuentra normalizado ya que la mantisa está expresada

en C 2.

Capítulo 1  Representación de la información   19

Page 36: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 36/569

5. Redondear el resultado.

Al ser redondeo al más próximo y contar con los bits de guarda y retenedor con

el valor 10, se deberá comprobar si el bit menos significativo del resultado es cero o

uno, para sumar cero o uno respectivamente al mismo.

Al ser 0 (0100 0110) se le sumaría cero y por lo tanto el resultado es:

Resultado

Exponente 1000 1010

Mantisa 0100 0110

b)   Calculamos el valor del resultado anterior

Exponente 1000 0110

Mantisa 1010 1000

Valor (2.2!2.6

! 2.7) . 210%280,0

c)   Calculamos el valor de A

Exponente 1000 1010

Mantisa 0100 0011

Valor (2.2!2.7

! 2.8) . 210%268,0

Calculamos el valor de  B

Exponente 1000 0101

Mantisa 0111 0000

Valor (2.2!2.3

! 2.4) . 25%14,0

Por lo tanto tendríamos 268,0! 14,0% 282,0

d)   Es debido a los desplazamientos para alinear las mantisas y a la pérdida de precisión que

sufren los números fraccionarios al pasarlos a coma flotante.

e)   Al forzar el bit menos significativo a uno, el resultado sería el siguiente:

Exponente 1000 1010

Mantisa 0100 0111

Valor (2.2!2.6

! 2.7!2.8) . 210%284,0

PROBLEMA 22

Dados los siguientes números representados en decimal:

a)   35

b)   12,5

Representar dichos números en coma flotante según el estándar IEEE 754 de precisión

simple.

Solución: 

a)   35%17,5* 21%8,75*22% 4,375 * 23%2,1875 * 24%1,09375 * 25

Mantisa: 0,09375   ú   00011000000000000000000

Exponente: 5!127% 132   ú   10000100

20   Problemas de fundamentos y estructura de computadores

Page 37: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 37/569

b)   12,5%6,25* 21%3,125 * 22% 1,5625 * 23

Mantisa: 0,5625   ú   10010000000000000000000

Exponente: 3! 127%130   ú   10000010

PROBLEMA 23

Considérese un computador que representa los números en coma flotante según un supues-

to estándar IEEE754 de precisión reducida con 16 bits (1 bit para el signo, 5 bits para el

exponente sesgado y 10 bits para la mantisa).

Se pide:

a)   ¿Cuál es el valor del sesgo para el exponente?

b)   ¿Cuál es el valor del menor número representable en valor absoluto?

c)   ¿Cuál es el valor del menor número representable?d)   Representar los números decimales 8,5 y 3,75 en el estándar definido.

e)   Sumar los números anteriores siguiendo el algoritmo de suma del estándar IEEE754

aplicado al formato de 16 bits.

Solución: 

a)   El sesgo será 2k .1.1, siendo   k   el número de bits utilizados en el campo exponente.

Como k %5, el sesgo será 25.1.1% 15.

b)   Como el exponente tiene 5 bits, tendrá valores comprendidos entre 0 y 31, pero el 0 y el

31 se utilizan como excepciones, por lo que el menor valor del exponente será 1.La menor mantisa será 0000000000.

Por tanto el menor número representable en valor absoluto será:

2 E .15#1. M %21.15

#1.0000000000% 2.14

c)   El menor número representable será el número negativo con mayor valor absoluto.

Signo negativo%1

Mayor exponente%30 (ya que el 31 se usa como excepción).

Mayor mantisa%1111111111Por tanto el menor número representable será:

(.1)S 2 E .15#1. M %.230.15

#1.1111111111%.215# (2.2.10)

ya que:

2   %  10.0000000000

2.10%   0.0000000001

2. 2.10%   1.1111111111

Capítulo 1  Representación de la información   21

Page 38: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 38/569

d)   8,5%1000,1(2% 1,0001#23 ú   0 10010 (3! 15) 0001000000

3,75%11,11(2   % 1,111   #21 ú   0 10000 (1! 15) 1110000000

e)   N 1% 8,5%0 10010 0001000000

 N 2% 3,75%0 10000 1110000000

Se restan los exponentes:  E 1. E 2%10010. 10000%00010%2(10.

Se desplaza la mantisa del número de menor exponente dos lugares a la izquierda,

incluyendo el bit no visible. 1. M 2%1.1110000000   ú   0.0111100000

Se suman las mantisas 1. M 1 y 1. M 2 desplazada:

1.0001000000!0.0111100000% 1.1000100000

Como es de la forma 1. M , no es necesario normalizar el resultado.

El resultado final es:

0 10010 1000100000%!218.15#(20!2.1

!2.5)%8#(1!0,5!0.03125)%12,25

1.6 Problemas propuestos

PROBLEMA 1

¿Cuál de las afirmaciones es cierta? (Sólo hay una en cada caso)

(1001)C 2%   (9)10   (.9)10   (7)10   (.7)10

(0101)2%   (0101)BCD   (1010)C 1 (1011)C 2 Ninguna

(10100101)2%   (105)BCD   (505)8   ( A5)16   Ninguna

(101)C 2. (111)C 2%   (110)C 2   (100)C 2 (000)C 2 Ninguna

PROBLEMA 2

Marca con un círculo la única afirmación es cierta:

(100)C 2% ...

a)   (.4)10   b)   (4)10   c)   Overflow   d)   Ninguna de las anteriores

(25)16% ...

a)   (00100101)2   b)   (0205)8   c)   (00100101)BCD   d)   Ninguna de las anteriores

(1111)BCD% ...

a)   (15)10   b)   (0101)2   c)   (1010)C 1 d)   Ninguna de las anteriores

(0111)C 2. (1110)C 2% ...

a)   (1111)C 2 b)   (1001)C 2 c)   Overflow   d)   Ninguna de las anteriores

22   Problemas de fundamentos y estructura de computadores

Page 39: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 39/569

PROBLEMA 3

Marca la casilla que contenga la única respuesta correcta:

a)   (0101)BCD! (0111)BCD%

..(1100)BCD,   ..(0011)BCD,   ..(0010)BCD,   ..Ninguna de las

anteriores

b)   (01101)C 2! (00110)C 2, utilizando un máximo de 5 bits, es igual a:

..(01101)C 2,   ..(10000)C 2,   ..Desbordamiento,   ..Ninguna de las

anteriores

c)   ( A42)16%

..(1042)10,   ..(5102)8,   ..(1010 0100 0010)BCD,   ..Ninguna de las

anteriores

d)   El rango representable con 5 bits en la notación Complemento a 2 es:

..[.31, 31],   ..[.32, 32],   ..[.31, 32],   ..Ninguna de las

anteriores

PROBLEMA 4

Sean A% (10101)C 2 y B% (00100)C 2; entonces ( A. B)C 2, con ancho  n%5,...

..es igual a (11000)C 2 ..es igual a (.15)10

..desborda   ..Ninguna de las anteriores

PROBLEMA 5

Sea A% (0010 1110)2; entonces.

..( A)8% (216)8   ..( A)16% (2 E )16

..( A)BCD no se puede representar   ..Ninguna de las anteriores

PROBLEMA 6

Con ancho  n%3, el rango representable en notación  C 2 es...

..[.4, !4]   ..[.3, !3]

..[.4, !3]   ..Ninguna de las anteriores

PROBLEMA 7

Utilizando ancho  n% 5. ¿Qué número hay que sumar a (10000)C 1 para obtener (10101)C 1?

..(00101)C 1 ..(11010)C 1

..El número necesario no cabe en 5 bits   ..Ninguna de las anteriores

Capítulo 1  Representación de la información   23

Page 40: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 40/569

PROBLEMA 8

En qué base está la siguiente ec: 3 x. y! z%11 si tiene como soluciones { x%5,   y% 4,

 z%2}

..14   ..15

..16   ..Ninguna de las anteriores

PROBLEMA 9

Obtenga la representación del número 1540 en formato normalizado IEEE 754 para coma flo-

tante de 32 bits.

PROBLEMA 10

Considerar un sumador/ restador que opera con datos representados en coma flotante, con

mantisa normalizada y fraccionaria expresada en Ca1 y exponente representado en exceso 24-1,

además dicha unidad opera con dos dígitos de guarda y un bit retenedor. Emplea el redondeoal más próximo.

Calcular la suma de  A! B, siendo

 A: 1101 | 10110 y   B: 1101 | 01011 (exponente | mantisa)

PROBLEMA 11

Sabiendo que  A: 110011 y  B: 010001 están ambos representados en binario puro calcular el

producto de  A# B  utilizando el algoritmo de suma-desplazamiento. Realizar paso a paso di-

cho producto, sabiendo que el resultado se almacenará en un registro  P  de 12 bits, formado

por dos registros concatenados  P1

 y  P0

 de 6 bits.

PROBLEMA 12

Calcular el producto de   A# B, sabiendo que   A: 111110 y   B: 1111111 están representados

en C 2.

PROBLEMA 13

Sea un computador que trabaja con el siguiente sistema de representación de la información

para coma flotante:

Exponente expresado en exceso 2n. 1 con 8 bits.

Mantisa expresada en complemento a 1, normalizada y sin bit implícito con 8 bits.

24   Problemas de fundamentos y estructura de computadores

Page 41: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 41/569

2.1 Especificación mediante Funciones de Conmutación(F.C.)

Una tabla de verdad expresa la salida del sistema para cada una de las posibles combinacionesde los bits de entrada. Para construirla escribimos todos los posibles valores que pueden tomarlas entradas y su correspondiente salida. Si el sistema tiene   n  bits para codificar la entradahabrá 2n posibilidades (filas). Las columnas de la derecha son las FC de cada una de las  m

salidas del sistema.

Las FC se obtendrán a partir de la descripción de alto nivel que hagamos del sistema y dela codificación que elijamos. Sólo en el caso de que la entrada no esté permitida podremos

dejar la salida sin especificar o  don’t care, y en este libro se representará por  X .

2.2 Especificación mediante Expresiones de Conmutación(E.C.)

Otra forma de describir el comportamiento de un sistema es mediante el Álgebra de Boole yecuaciones que relacionen las salidas con las entradas. A grosso modo podemos decir queestas ecuaciones se construyen con los operadores básicos del Álgebra de Boole

NOT, AND y OR (.,! ,   . )

Page 42: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 42/569

Ejemplo:    x2 x1! ( x3! x1) x2

A partir de una E.C., y mediante el álgebra de Boole, podemos encontrar otras E.C. equi-valentes, es decir, que modelan el mismo sistema combinacional.

E.C.rF.C.

Para encontrar la F.C. correspondiente a una E.C. dada simplemente tenemos que calcular quéresultado da la E.C. cuando la evaluamos sobre todas y cada una de las posibles entradasque puedan ocurrir.

Ejemplo:    Sea un sistema modelado por la siguiente E.C. z% x1! x0; del que queremos cal-cular sus F.C.s. Es decir, queremos calcular su Tabla de Verdad. Lo primero será escribir laT.V. que siempre es igual a todo sistema de dos entradas y 1 salida:

F.C.rE.C.

Definición de minitérmino: Es un término producto donde todas las variables aparecen una y

sólo una vez, ya sea complementadas o sin complementar. Los minitérminos se representanpor  mi, donde i  es el equivalente en decimal del número binario que se obtiene al sustituir lasvariables negadas por 0 y las no negadas por 1.

Ejemplo:    x3 x2 x1 x0% 1010% 10   á   m10

De esta manera puedo ver la tabla de verdad como una tabla que me indica qué minitérmi-nos dan salida 0, qué minitérminos dan salida 1 y cuáles dan salida indeterminada.

A partir de la F.C. podemos calcular la E.C. como la suma de todos los minitérminos quedan salida% 1; es decir, la salida  Z %1 si se cumple alguna de las entradas correspondientes.A dicha suma la llamamos  Suma de Productos Canónica.

26   Problemas de fundamentos y estructura de computadores

Page 43: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 43/569

En el ejemplo tendríamos:

 Z %; m(0, 1, 4)% x2 x1 x0! x2 x1 x0! x2 x1 x0

2.3 Simplificación mediante mapas de KarnaughLos mapas de K. son otra forma de escribir las F.C.; en vez de hacerlo en columnas se hace enforma matricial. Cada casilla de la matriz representa un minitérmino. Además se cumple quelos minitérminos correspondientes a dos casillas juntas o adyacentes se diferencian en  un úni-co literal (o bit).

Los mapas sirven para simplificar Sumas de Productos canónicas (i.e. Sumas de minitér-minos), obteniendo Sumas de Productos tal que haya el mínimo número de términos produc-to. El procedimiento es el siguiente:

1.   Introducir en las casillas los valores de la F.C.

2.   Cubrir todas las casillas con el menor n.o de rectángulos, cada uno de ellos lo másgrande posible.

3.   Cada rectángulo es%producto de los literales idénticos de los minitérminos que loforman.

4.   Las casillas que den salida indeterminada se usarán como comodín, de modo que po-dré formar rectángulos con ellas sólo si me conviene.

5.   La E.C.%Suma de los  cuadrados.

6.   Para averiguar qué literales son comunes a los minitérminos que forman un rectángu-lo veremos en qué franjas está  sumergido.

En las figuras se muestran los mapas de 3 y 4 variables tal y como se utilizarán a lo largode este libro. La numeración se corresponde con el minitérmino asociado a la casilla.

2.4 Implementación de sumas de productosCon puertas NOT, AND y OR

Capítulo 2  Sistemas combinacionales   27

Page 44: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 44/569

1.   Una puerta OR con n  entradas (tantas como términos producto haya).

2.   Tantas puertas AND como términos producto haya (en general serán n).

3.   La salida de cada puerta AND se conecta con una de las entradas de la puerta OR.

4.   Para implementar los literales (negados y sin negar) uso puertas negadoras.

Ejemplo:    f ( x,  y,  z)% xy! xz! y, y su implementación es la Figura 1.

Con puertas NAND

1.   Implementar la ecuación con puertas AND y OR.

2.   Cambiar todas las puertas AND por puertas NAND.

3.   Cambiar la puerta OR por una puerta OR con las entradas negadas.

4.   Si alguna de las entradas de la puerta OR venía de un literal en vez de a unaANDr negar dicho literal (podemos usar una NOT o, mejor aún, construir una a par-

tir de puertas NAND).5.   Sustituir la OR con entradas negadas por su equivalente, i.e.: la NAND.

Ejemplo:    f ( x,  y,  z)% xy! xz! y, y su implementación es la Figura 2.

2.5 Análisis de sistemas combinacionalesEl análisis es el proceso mediante el cual se obtiene la especificación de un sistema a partir deuna implementación dada.

Método general

1.   Colocar  puntos a la salida de cada puerta o módulo del sistema.

2.   Resolver la red; i.e.: ir despejando cada punto, que la mayor parte de las veces depen-de del valor de otros puntos anteriores, hasta que obtengamos la ecuación de la salida.

Red NAND /  NOR

1.   Identificar los niveles a los que pertenecen las puertas.

2.   Cambiar las puertas de los niveles impares por su puerta equivalente (de entradas ne-gadas) de forma que las negaciones a la salida de los niveles pares se anulen con lasentradas negadas de los niveles impares.

3.   De este modo nos queda una red de puertas AND-OR mucho más sencilla de analizar.

28   Problemas de fundamentos y estructura de computadores

Page 45: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 45/569

2.6 Conjuntos universales

Un conjunto de puertas o módulos combinacionales se llama   conjunto universal  si con élpuedo implementar  cualquier función de conmutación.

Puesto que toda F.C. se puede expresar como la suma de los minitérminos que dan sali-da%1, entonces necesitaremos siempre una puerta OR y un cierto número de puertas AND yNOT. Por lo tanto el conjunto {NOT, AND, OR} es universal.

Además se demuestra que si nos falta la puerta AND o la puerta OR la podemos construircon las demás haciendo uso de las leyes de De Morgan:

Para construir la puerta OR con NOTsy ANDs

Para construir la puerta OR con NOTsy ANDs

a!

b%

a b ab%

a!

bPero yo quiero  a!b por lo que, negandoambos términos de la ecuación:

Pero yo quiero  ab  por lo que, negandoambos términos de la ecuación:

a! b% a!b%a b ab%ab%a! b

Por lo tanto podemos decir que los conjuntos {NOT, AND} y {NOT, OR} son tambiénconjuntos universales porque con ellos puedo implementar el conjunto {NOT, AND, OR} quees universal, es decir, que puedo implementar cualquier F.C.

Podemos ver que la puerta OR se implementa con una puerta AND negada a la sali-da%NAND.

Del mismo modo la puerta AND se implementa con una puerta OR negada a la sali-da%NOR.

Por otro lado podemos construir una puerta NOT forzando la misma entrada en las dosbocas de una puerta NAND o NOR.

Si colocamos un negador, construido por mí a partir de puertas NAND, detrás de unaNAND%AND.

De este modo con una NAND puedo construir puertas NOT y ANDr también puedoconstruir OR. Con las puertas NOR seguiría el mismo razonamiento.

Capítulo 2  Sistemas combinacionales   29

Page 46: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 46/569

Por lo tanto podemos decir que los conjuntos {NAND} y {NOR} son también conjuntosuniversales, ya que a partir de ellos puedo construir el conjunto {NOT, AND, OR} y por lotanto implementar cualquier sistema combinacional.

2.7 DescodificadoresUtilidad:

Descodificar un número en binario a decimal.

Implementar los 2n minitérminos posibles de una función de  n  variables.

Funcionamiento:

2.8 Multiplexores o selectores (MUX)Utilidad:

Seleccionar, de entre varias entradas, la que queremos que aparezca en la salida.

30   Problemas de fundamentos y estructura de computadores

Page 47: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 47/569

Funcionamiento:

Aplicación en la Implementación de Sistemas Combinacionales:

Implementación con MUX:

Si queremos implementar una FC de   n  variables con un MUX. de   m  variables de control,siendo nbm:

1.   Pintar el MUX indicando los números de las puertas.

2.   Elegir  m  de las  n  variables. Estas  m  variables serán las variables de control. Situarlasen el MUX.

3.   Las  m variables escogidas dividen el mapa de Karnaugh en zonas. Habrá 2m zonas,tantas como posibles combinaciones se pueden hacer con las  m variables, negadas osin negar.

4.   Para numerar cada zona sustituimos las variables negadas que la definen por ceros ylas no negadas por unos. Después pasamos el número binario obtenido a decimal.

5.   Hacer rectángulos dentro de las zonas. Los rectángulos nunca podrán coger casillas deotra zona.

Capítulo 2  Sistemas combinacionales   31

Page 48: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 48/569

6.   A la hora de resolverlos aplicaremos las mismas reglas que para formar y simplificarrectángulos, pero eliminaremos de cada término producto aquellas variables que he-mos decidido sean las de control.

Ejemplo:    Implementar la siguiente F.C. con un MUX de 4 a 1.

2.9 ROMS

Utilidad:

Implementar k  funciones de conmutación de  n  variables.

Grabar 2n datos de ancho igual a  k  bits.

Funcionamiento:

Haciendo que las variables de las FC sean las líneas de dirección y grabando las FC en colum-nas implementamos hasta  k  FC distintas.

También podemos grabar en filas hasta 2n datos de ancho k , que se direccionarán con las  n

líneas de dirección.

32   Problemas de fundamentos y estructura de computadores

Page 49: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 49/569

2.10 Otros módulosCodificadores

Los codificadores realizan la operación inversa de los descodificadores: Toman un valor deci-mal y lo convierten en binario puro (sin signo). Para indicar el valor decimal situamos un 1 enla línea cuyo número sea el que queremos codificar. Un codificador tendrá, por tanto: 2n en-tradas y  n  salidas.

Además habrá que añadir una entrada de  Encendido y una salida de Activado, que se pon-drá a 1 cuando alguna de las líneas de entrada tenga un 1.

Los codificadores normales no permiten tener más de una línea de entrada  levantada. Paraevitar este problema podemos usar los codificadores con prioridad. En estos obtendremos elnúmero binario equivalente al de la línea de entrada   levantada más prioritaria. (La línea conel número más alto será la más prioritaria.)

Los codificadores con prioridad son unos codificadores normales con un módulo a la en-

trada que resuelve las prioridades.

PAL (Programable Array Logic)

La PAL es una red de  k  puertas OR,  m  puertas AND y  n  puertas NOT.

Las OR agrupan las puertas AND de un modo fijo.

Nosotros conectamos las entradas de las puertas AND con los literales formando términosproducto. De este modo lo que al final conseguimos implementar es  k  F.C. expresadas comosuma de términos producto, de  n variables cada una. Hay que tener en cuenta que tal vez no sepuedan formar debido a que las conexiones de la  matriz OR son fijas.

2.11 Problemas resueltosPROBLEMA 1

¿Cuál de las afirmaciones es cierta? (Sólo hay una en cada caso.)

a)   x! y%

 x! y,    x . y,    x . y,    x . y

b)   x! y! x%

 y,    x! y,   0,   1

c)   z! y! x! xz%

0,   1,    x . z,    x! y! z

d)   f ( x, y,  z)%Gm(0, 2, 3, 6, 7)%

 y! ( z . x),    z! ( y . x),    y . z! x . y! z . x,    xy! yz! xz

Solución: 

a)   La solución es la tercera opción. Una de las leyes de DeMorgan es la equivalencia x! y% x . y.

Capítulo 2  Sistemas combinacionales   33

Page 50: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 50/569

b)   Aplicando las leyes de De Morgan primero y la propiedad distributiva de la suma des-pués obtenemos la segunda opción:

 x! y! x% x! ( y . x)% ( x! y) . ( x . x)% ( x! y) . 1% x! y

c)   Operando obtenemos la tercera opción.

 z! y! x! xz% z! y! x . xz% ( z! y! x)( xz)% ( z! y . x)( xz)%% x . z . z! x . z . y . x% x . z! 0% x . z

d)   Resolviendo el mapa de Karnaugh se obtiene la primera opción.

PROBLEMA 2

Simplificar lo máximo posible la función

 f ( x,  y,  z,  w)% ( z . ( y!w . x!w . x)) . ( x! ( z . w! y))

Solución: 

 f ( x,  y,  z,  w)% ( z . ( y!w . x!w . x)) . ( x! ( z . w! y))%

% z . ( y!w . x!w . x)! x ( z . w! y)% ( z y! zwx! z w x)! x( z . w! y)%

% z y! zwx! z w x! xzw! xy

Llegados a este punto puede simplificar muy rápidamente si recurrimos a un mapa de Kar-naugh. Introduciendo cada uno de los términos producto como rectángulos del mapa. De estemodo tenemos:

34   Problemas de fundamentos y estructura de computadores

Page 51: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 51/569

Y la función simplificada es finalmente

 f ( x,  y,  z, w)% xy! zw! y z

PROBLEMA 3

Sea un sistema cuya entrada es un número en  C 2, codificado con 3 bits, y cuya salida esdicho número!3, también en C 2 codificado con 3 bits. Además genera otra señal de errorque da 1 cuando el resultado de la operación NO es representable con 3 bits.

Se pide: Especificar dicho sistema mediante tablas de verdad e Implementar LA SE-ÑAL DE ERROR SOLO con puertas NAND.

AYUDA: No hace falta usar mapas de Karnaugh.

Solución: 

Con 3 bits en  C 2 se puede codificar el intervalo de números enteros [.4,!3].

Por tanto el comportamiento del sistema viene descrito por la siguiente tabla:

Alto Nivel Binario

X Z X 2   X 1   X 0   Z 2   Z 1   Z 0   E 

0 3 0 0 0 0 1 1 01 4 0 0 1 x x x 12 5 0 1 0 x x x 13 6 0 1 1 x x x 1

.4   .1 1 0 0 1 1 1 0

.3 0 1 0 1 0 0 0 0

.2 1 1 1 0 0 0 1 0

.1 2 1 1 1 0 1 0 0

donde se ha marcado con  x  aquellas salidas que se dejan indeterminadas ya que producen unerror.

La EC de la señal de error   E  es   E %Gm(1, 2, 3). Por tanto su diseño con una red depuertas NAND es la mostrada en la figura.

Capítulo 2  Sistemas combinacionales   35

Page 52: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 52/569

PROBLEMA 4

Simplificar lo más posible la E.C.

w . x . y!w . x . y!w . z . x! z . y

e implementar la ecuación simplificada usando ÚNICAMENTE puertas NAND.

Solución: 

Puesto que la EC es una suma de productos, cada término producto será un rectángulo delmapa de Karnaugh de 4 variables. Así, resolviendo el mapa de Karnaugh podemos encontrarla suma de productos más simplificada posible.

Resolviendo el mapa tenemos:   f ( x, y, z, w)% x . y! x . y . z! x . y . w! x . z . w, que im-plementado con puertas NAND sería:

36   Problemas de fundamentos y estructura de computadores

Page 53: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 53/569

PROBLEMA 5

Sea la F.C:   f %Gm(0, 2, 7, 8, 12, 13)!Gd (3, 10, 11, 14). Encontrar su expresión mássimplificada e implementarla usando únicamente puertas NAND.

Solución: 

Resolviendo el mapa, tenemos:

 f ( x3,  x2, x1,  x0)% x2 x1 x0! x3 x2 x1! x2 x1! x3 x1 x0

cuya implementación con puertas NAND es:

Capítulo 2  Sistemas combinacionales   37

Page 54: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 54/569

PROBLEMA 6

Dada la siguiente tabla de verdad se pide:

a)   Representar la EC de cada salida como Suma de Productos Canónica.

b)   Implementar todo el sistema con 1 descodificador y puertas.

c)   Implementar la salida U con el menor número de puertas NAND.

d)   Implementar la salida V con un único MUX.

e)   Implementar la salida W con MUXs de 4 a 1.

A B C D U V W  

0 0 0 0 1 0 0

0 0 0 1 1 1 1

0 0 1 0 0 0 0

0 0 1 1 1 1 0

0 1 0 0 0 1 1

0 1 0 1 1 0 X

0 1 1 0 0 1 1

0 1 1 1 X X 0

1 0 0 0 X X 0

1 0 0 1 0 X X

1 0 1 0 0 0 0

1 0 1 1 1 1 0

1 1 0 0 0 1 1

1 1 0 1 1 0 0

1 1 1 0 1 1 X

1 1 1 1 X X 1

38   Problemas de fundamentos y estructura de computadores

Page 55: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 55/569

Solución: 

a)   U ( A,  B, C ,  D)%Gm(0, 1, 3, 5, 11, 13, 14)!Gd (7, 8, 15)

V ( A,  B,  C ,  D)%Gm(1, 3, 4, 6, 11, 12, 14)!Gd (7, 8, 9, 15)

W ( A,  B,  C ,  D)%Gm(1, 4, 6, 12, 15)!Gd (5, 9, 14)

b)   Necesitaremos un descodificador de 4 a 16 y 3 puertas OR, una por cada FC.

c)   Resolviendo el mapa de Karnaugh para  U  tenemos:

Capítulo 2  Sistemas combinacionales   39

Page 56: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 56/569

 X ( A,  B,  C ,  C )% A . B . C ! A . B . C ! B . D!C  . D

d)   Usando un MUX de 16 a 1 la implementación es inmediata. Los minitérminos que estánsin especificar se han tomado como cero.

e)   Para implementar   W  con un MUX de 4 a 1 es necesario seleccionar dos variables decontrol. Eligiendo  A  y  B  obtenemos una implementación mínima,

40   Problemas de fundamentos y estructura de computadores

Page 57: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 57/569

PROBLEMA 7

Dado el siguiente sistema combinacional, se pide averiguar si es un conjunto universal.

 NOTA: Todos los multiplexores están capacitados.

Capítulo 2  Sistemas combinacionales   41

Page 58: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 58/569

Solución: 

Dado que el sistema tiene sólo dos entradas el modo más rápido de abordar este problema escompletar la tabla de verdad. Llamando  T 1 a la salida del Mux de arriba y  T 0 a la salida delMUX de abajo, tenemos:

X 1   X 0   T 1   T 0   Z 

0 0 0 0 1

0 1 0 1 0

1 0 1 0 1

1 1 1 1 0

El sistema no es conjunto universal porque  Z  es, en definitiva, la entrada  X 0 negada. Portanto es imposible construir una puerta AND o una puerta OR.

PROBLEMA 8

Sea una puerta combinacional con la Tabla de verdad de la derecha. ¿Para qué valores de a

y b  podemos decir que la puerta es un conjunto universal? ¿Por qué?

X Y    Salida

0 0 00 1   a 1 0   b 1 1 1

Solución: 

Hay 4 posibilidades que dan lugar a los 4 sistemas diferentes mostrados en la tabla:

X Y S 0   S 1   S 2   S 3

0 0 0 0 0 00 1   0 0 1 11 0   0 1 0 11 1 1 1 1 1

El sistema  S 0 es una puerta OR, por tanto no es conjunto universal.

El sistema  S 1 es  X , por lo que tampoco puede ser conjunto universal.

El sistema  S 2 es  Y , por tanto, al igual que con  S 1, no puede ser conjunto universal.

El sistema  S 3 es una puerta AND, de modo que tampoco es conjunto universal.

En definitiva ninguno de los 4 es conjunto universal.

42   Problemas de fundamentos y estructura de computadores

Page 59: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 59/569

PROBLEMA 9

Analizar el sistema y razonar si es conjunto universal.

Solución: 

Lo primero es analizar el circuito. Para simplificar esta tarea es recomendable sustituir lapuerta NAND del nivel 1 por una puerta OR con las entradas negadas, que es la implementa-ción equivalente tal y como dictan las leyes de DeMorgan. Una vez hecho esto dos negadoresenfrentados en el mismo cable se anulan tal y como muestra la figura. Finalmente se procedea calcular la EC de F .

T 1% X  . Y 

T 2% X  . Y 

T 3%T 1!T 2% X  . Y ! X  . Y % ( X ! X )Y % (1)Y %Y 

T 4% X  . Z 

F %T 3!T 4%Y ! X  . Z 

El sistema es equivalente a bloque combinacional que tuviera 3 entradas ( X ,  Y ,  Z ) y unasalida F  con la ecuación obtenida.

Podemos construir un conjunto universal si forzamos la entrada  Y % 0. De este modo ten-dríamos F % X  . Z % X ! Z , es decir un bloque equivalente a una puerta NOR. Puesto que lapuerta NOR es conjunto universal y ésta se puede construir con el circuito dado, éste tambiénes conjunto universal.

Capítulo 2  Sistemas combinacionales   43

Page 60: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 60/569

PROBLEMA 10

Dado el sistema de la figura, construir una puerta AND a partir de él. ¿Es conjunto univer-sal?¿Por qué?

Solución: 

La ecuación de un MUX 2 a 1 es sencillamente  Z % D0S ! D1S , donde D0 y  D1 son las entra-das de datos conectadas a la entrada 0 y 1 respectivamente y  S  es el bit de selección.

Por tanto sustituyendo tenemos:

 D0% X  . Y !Y % X !Y !Y % X !1% 1

 D1%Y 

S % X 

 Z % (1) X ! (Y ) X % X !YX 

 Z  aún se puede simplificar más. Usando el mapa de Karnaugh se obtiene finalmente que

 Z % X !Y % X  . Y 

1 1

X    1

Por tanto el circuito es equivalente a una puerta NAND, que es conjunto universal. Portanto el circuito dado también lo es.

Si forzamos la entrada  Y %1 entonces Z % X ! 1% X !0% X ; es decir habremos cons-

truido una puerta NOT.Para construir la puerta AND basta con conectar la puerta NOT que acabamos de construir

a la salida del circuito dado tal y como muestra la figura.

44   Problemas de fundamentos y estructura de computadores

Page 61: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 61/569

PROBLEMA 11

Analiza el circuito y da su expresión de conmutación:

a)   Como suma de productos canónica.

b)   Como suma de productos lo más simplificada posible.

c)   ¿Es conjunto universal? Justifica la respuesta.

Solución: 

a)   Para analizar este sistema conviene transformarlo primero en el equivalente que se mues-tra a continuación.

b)   T 1% AC 

T 2%CB

T 3% AC 

T 4%T 1!T 2!T 3% AC !CB! AC % A(C !C )!CB% A!CB

T 5%T 3! B% AC ! B

 f %T 4 A!T 5 A% ( AC ! B) A! ( AC ! B) A% A B! AC ! AB% AC ! B

c)   El sistema es un conjunto universal porque podemos construir una puerta NAND dedos entradas si hacemos que la entrada   A   tome el valor 1. De este modo f % AC ! B%C ! B%C  . B, donde se ha aplicado la Ley de DeMoore. Puesto que lapuerta NAND es conjunto universal, una vez construida podríamos implementar cual-quier sistema combinacional y por tanto también es conjunto universal.

Capítulo 2  Sistemas combinacionales   45

Page 62: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 62/569

Para encontrar la suma de productos canónica podemos introducir la suma de produc-tos obtenida en un mapa de Karnaugh de 4 variables y observar aquellas casillas quetoman valor 1.

Por tanto la suma de productos canónica es:

 f ( A,  B, C )%Gm(0, 1, 4, 5, 6)

F 1   C 

1 1

A   1 1 1

PROBLEMA 12

Sea el sistema de la figura, donde el módulo M da salida 1 cuando en la entrada hay dosceros o dos unos adyacentes, leyendo las entradas de arriba abajo (o sea  A-B-C ).

Calcular la suma de productos más simplificada de  F 1 y  F 2.

Solución: 

Para resolverlo es necesario encontrar primero la FC del módulo M.

Puesto que sólo tiene 3 entradas, el modo más rápido y directo es hacer la tabla de verdad.

A B C M F  1   F 2

0 0 0 1 1 10 0 1 1 1 10 1 0 0 0 00 1 1 1 1 0

1 0 0 1 0 11 0 1 0 0 01 1 0 1 0 01 1 1 1 0 0

Para calcular la suma de productos más simplificada posible de  F 1 y  F 2 hay que resolverlos siguientes mapas de Karnaugh:

46   Problemas de fundamentos y estructura de computadores

Page 63: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 63/569

Las expresiones son:

F 1( A,  B,  C )% A . B! A . C    y   F 2( A, B, C )% A . B! B . C 

PROBLEMA 13

Sea un sistema  P  con la tabla de verdad dada. ¿Para qué valores de  a  y  b  dicho sistema esconjunto universal? Razona las respuestas.

X Y P 

0 0   a 

0 1   b 

1 0 1

1 1 0

Solución: 

Hay 4 posibilidades que dan lugar a los 4 sistemas diferentes mostrados en la tabla:

X Y P 0   P 1   P 2   P 3

0 0   0 0 1 10 1   0 1 0 11 0 1 1 1 11 1 0 0 0 0

El sistema   P1  es una puerta XOR, con la que nunca podremos construir puertas OR ni

AND, por lo tanto no es conjunto universal.El sistema  P2 es la negación de  Y , por tanto, al igual que  P1, no puede ser conjunto uni-

versal.

El sistema  P3 es una puerta NAND, de la cual sabemos que sí es conjunto universal.

El sistema  P0 tiene la siguiente EC.

P0( X ,  Y )% XY 

Forzando X %1 podemos construir un negador.

Capítulo 2  Sistemas combinacionales   47

Page 64: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 64/569

Una vez tenemos el negador podemos construir la puerta AND de dos entradas  A  y  B  delsiguiente modo:

En definitiva, podemos construir tanto puertas AND como puertas NOT utilizando sólo elsistema P0. Puesto que con el conjunto {AND, NOT} se puede implementar cualquier sistema

combinacional, el sistema  P0 es conjunto universal.

PROBLEMA 14

Una avioneta tiene 2 luces de seguridad: {Peligro, Emergencia}.

La luz de Peligro se encenderá si ocurre alguno de estos casos:

– Altura menor de 1000 pies, sin sistema de navegación y sin visibilidad.– Altura mayor de 1000 pies y fallo del motor.– Altura mayor de 1000 pies y no hay visibilidad.

La luz de Emergencia se encenderá si ocurre alguno de estos otros casos:

– Altura menor de 1000 pies y fallo del motor.– Altura mayor de 1000 pies, sin sistema de navegación y sin visibilidad.– Altura mayor de 1000 pies, sin sistema de navegación y fallo del motor.

Dar una descripción de alto nivel y especificar claramente cómo se codifican los datosdel problema.

Diseñar el sistema que gobierna la luz de Peligro usando SOLO MUX de 4 a 1.

Diseñar el sistema que gobierna la luz de Emergencia usando descodificadores y puertas.

¿En qué casos se encenderán ambas luces?

Solución: En primer lugar se codifica el problema con variables binarias. Una posibilidad (no la única)es la siguiente:

Variable Significado Codificación Descodificación

M    Fallo de motor 0/1 No/Sí hay falloN    Fallo del sistema de navegación 0/1 No/Sí hay falloV    Visibilidad 0/1 No/Sí hayA   Altura superior a 1.000 pies 0/1 No/Sí

48   Problemas de fundamentos y estructura de computadores

Page 65: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 65/569

Entonces las condiciones para encender la luz de peligro (P) y emergencia ( E ) son:

P% A . N  . V ! A . M ! A . V 

 E % A . M ! A . N  . V ! A . N  . M 

Para expresar P y  E  como suma de productos canónica introducimos los términos produc-to en mapas de Karnaugh y de este modo aparecerán los minitérminos que dan salida 1.

El orden en el que se coloquen las variables en el mapa de Karnaugh no importa, pero unavez elegido se debe mantener hasta el final del ejercicio.

 E %Gm(1, 3, 5, 7, 9, 11, 12, 13)

P%Gm(4, 5, 8, 9, 11, 12, 13, 15)

Para implementar con MUX de 4 a 1 la luz  P se toman como variables de control S 1% A yS 0%V  de modo que:

Capítulo 2  Sistemas combinacionales   49

Page 66: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 66/569

La ecuación para encender ambas luces es (P)AND( E )%Gm(5, 9, 11, 12, 13), que sim-plificando resulta:

(P)AND( E )% A . N  . V ! A . M  . N ! N  . M  . V , es decir si la altura es mayor de 1000 pies,falla la navegación y no hay visibilidad o si la altura es mayor de 1000 pies, falla el motor yno falla la navegación y si no hay visibilidad, falla la navegación y falla el motor.

PROBLEMA 15

El ángulo de inclinación de la cola de un caza se clasifica según el gráfico, donde los nú-meros son las decenas de grado.

Queremos diseñar un sistema que activará el traje anti-G y encenderá la alarma del

caza según el ángulo de inclinación. La alarma se encenderá cuando haya inclinación devulnerabilidad y de bajada; y se apagará en los demás casos. El traje anti-G soló se activarácuando la inclinación sea de pérdida o de máximo esfuerzo.

El sistema debe recibir las decenas de grado, con su correspondiente signo, codificadasen C 2.

50   Problemas de fundamentos y estructura de computadores

Page 67: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 67/569

a)   Dar la tabla de verdad del sistema.

b)   Implementar la señal Alarma usando sólo MUXs de 4 a 1.

c)   Implementar la señal Anti-G usando sólo las puertas NAND imprescindibles.

Solución: 

Codificación:

El ángulo de inclinación varía desde .7 hasta!7. Usando notación C 2 necesitaríamos 4bits para codificar la información. Dependiendo de dicho ángulo se activa o desactiva la señalde alarma y el traje anti-G. Son por tanto dos salidas binarias  A  y  G  sobre las que se toma elsiguiente convenio:

 A% 1: Encender alarma,   A%0: Apagar alarma

G%

1: Activar antiG,   G%

0: Desactivar antiGSe obtendría entonces la siguiente tabla:

Ángulo Código  Régimen

de inclinación  A G 

.7 o menor 1001 Máximo

esfuerzo

0 1

.6 1010 0 1

.5 1011

Subida

0 0

.4 1100 0 0

.3 1101 0 0

.2 1110

Vulnerabilidad

1 0

.1 1111 1 0

0 0000 1 0

1 0001 1 0

2 0010 1 0

3 0011

Bajada

1 0

4 0100 1 0

5 0101 1 0

6 0110Pérdida

0 1

7 o mayor 0111 0 1

Para trabajar es más conveniente escribir la tabla de verdad en el orden habitual, comen-zando por el minitérmino 0 y acabando en el 15.

Capítulo 2  Sistemas combinacionales   51

Page 68: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 68/569

Ángulo Código   A G 

0 0000 1 0

1 0001 1 0

2 0010 1 0

3 0011 1 0

4 0100 1 0

5 0101 1 0

6 0110 0 1

7 0111 0 1

1000 * *

.7 1001 0 1

.6 1010 0 1

.5 1011 0 0

.4 1100 0 0

.3 1101 0 0

.2 1110 1 0

.1 1111 1 0

Esto ha facilitado detectar un caso que no había sido contemplado. El (1000)C 2 se corres-ponde con el .8. Según la codificación inicial, en la que el (1001)C 2 codifica ángulos meno-res o iguales a .70o este caso no se daría nunca y por tanto la mejor opción sería dejar dicho

minitérmino sin especificar (*).

Para implementar la señal  A  con un MUX de 4 a 1 es necesario resolver un mapa de Kar-naugh. Por la disposición de los minitérminos que dan salida 1, la elección de  X 3 y  X 2 (los dosbits más significativos de la entrada) logra una de las implementaciones más sencillas.

Puesto que se exige utilizar sólo MUX de 4 a 1, para implementar la FC es necesarioconstruir un negador con un MUX de 4 a 1.

52   Problemas de fundamentos y estructura de computadores

Page 69: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 69/569

Para implementar la señal  Anti-G con puertas NAND de nuevo es necesario resolver unmapa de Karnaugh. La suma de términos producto más simplificada es entonces:

G( X 2,  X 2,  X 1,  X 0)%

 X 3 X 2 X 1!

 X 3 X 2 X 1!

 X 3 X 2 X 0

PROBLEMA 16

Se quiere diseñar un sistema de limitación de velocidad de un buque gobernado por losparámetros de  Estado de la mar y Sentido de la marcha. El sistema da tres posibles límites:

20 nudos: cuando el buque se mueve hacia atrás o cuando la mar está encrespada.30 nudos: cuando el buque se mueve hacia delante y el estado de la mar sea agitada.40 nudos: del resto de los casos, cuando la mar esté en calma.

a)   Dar una descripción del número de entradas y salidas del sistema y una codificación.

b)   Implementar las salidas usando únicamente puertas NAND.

Añadimos ahora un sistema que toma la velocidad real del buque (20, 30 o 40nudos), la compara con la permitida y emite una señal de peligro cuando la velocidadreal es superior.

c)   Implementar este último sistema usando un único MUX de 8 a 1 y negadores.

( Hay   varias posibilidades para codificar el problema.)

Capítulo 2  Sistemas combinacionales   53

Page 70: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 70/569

Solución: 

Codificación:

El sistema de limitación será un sistema combinacional con 2 salidas binarias con las que secodifican los tres posibles límites de velocidad:

 L1 L0% 00: 20 nudos ;   L1 L0%01: 30 nudos ;   L1 L0% 10: 40 nudos

Las entradas del sistema son: Estado de la mar ( E ) y Sentido de la marcha (S ) sobre lasque se toma el siguiente convenio:

 E 1 E 0%00: Calma ;   E 1 E 0% 01: Agitada

 E 1 E 0%10: Encrespada ;   S % 0/ 1: Atras/ Adelante

En definitiva el sistema tiene 3 entradas y 2 salidas y por tanto un modo fácil de abordar elproblema es utilizar la tabla de verdad, cuya cabecera sería:

E 1   E 0   S L1   L0

El procedimiento es completar el lado derecho con todas las posibilidades y codificar cadauno de los casos con el límite de velocidad correspondiente según las especificaciones.

E 1   E 0   S L1   L0

0 0 0 0 00 0 1 1 00 1 0 0 00 1 1 0 1

1 0 0 0 01 0 1 0 01 1 0 X X

1 1 1 X X

Los casos 110 y 111 han quedado sin especificar porque no existe ningún estado de la marcon código 11 y por tanto nunca ocurrirán.

Para implementar L1 y L0 no hace falta resolver ningún mapa de Karnaugh puesto que sólohay un minitérmino que da salida 1 para cada caso. Es decir:

 L1%Gm(1) y   L0%Gm(3)

Con puertas NAND tendríamos el siguiente diseño:

54   Problemas de fundamentos y estructura de computadores

Page 71: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 71/569

El sistema de seguridad que avisa cuando la velocidad real es superior a la permitida tienepor un lado la entrada del límite de velocidad en cada caso ( L1 L0) y por otro la velocidad realdel buque. Codificando con 2 bits la velocidad real del siguiente modo:

V 1V 0% 00: 20 nudos ;   V 1V 0%01: 30 nudos ;   V 1V 0% 10: 40 nudos

entonces la señal de Peligro se activará (P% 1) según la siguiente tabla de verdad:

L1   L0   V 1   V 0   P 

0 0 0 0 0

0 0 0 1 1

0 0 1 0 1

0 0 1 1 X

0 1 0 0 0

0 1 0 1 00 1 1 0 1

0 1 1 1 X

1 0 0 0 0

1 0 0 1 0

1 0 1 0 0

1 0 1 1 X

1 1 0 0 X

1 1 0 1 X

1 1 1 0 X

1 1 1 1 X

Para implementar la salida P con un único MUX de 8 a 1 es necesario elegir 3 variables decontrol. Tomando L1, L0 y  V 1 conseguimos una implementación mínima y ni siquiera es nece-sario utilizar negadores.

Capítulo 2  Sistemas combinacionales   55

Page 72: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 72/569

PROBLEMA 17

Diseñar un sistema,  S , que abre 2 válvulas,  V 1 y  V 0, mezclando dos medicinas, A y B. Laválvula V 1 se abrirá siempre que el paciente tenga menos de 40 pulsaciones y fallo renal o

entre 40 y 90 pulsaciones y fallo respiratorio o si tiene más de 90 pulsaciones. La válvulaV 0 se abrirá cuando el paciente tenga menos de 40 pulsaciones o cuando tenga más de 90pulsaciones y fallo respiratorio y renal. Se pide:

a)   Hacer una codificación y dar la tabla de verdad del sistema y la E.C. más simplificadade V 1 y  V 0.

b)   Diseñar el sistema usando un descodificador y puertas.

c)   Implementar la F.C. de  V 1 con MUXs de 8 a 1 y la F.C. de  V 0 con MUXs de 4 a 1.

(Las únicas puertas que se pueden usar en este apartado son las NOT.)

d)   Se añade un sensor a cada botella que se activa cuando ésta se encuentra vacía.

Diseñar un sistema, al que se conectan 5 botellas, que detecte cuándo hay másbotellas vacías que llenas.

Solución: 

En primer lugar se codifica el problema con variables binarias. Una posibilidad (no la única)es la siguiente:

Variable Significado Codificación Descodificación

P 1,  P 

0  Pulsaciones 00/01/10 Menos de 40/Entre 40 y 90/Más de 90

R    Fallo renal 0/1 No/Sí hay fallo

T    Fallo respiratorio 0/1 No/Sí hay fallo

Las expresiones de conmutación para las válvulas V 1 y  V 0, según las especificaciones da-das, son:

V 1%P1P0 R!P1P0T !P1P0   y   V 0%P1P0!P1P0 R

Para implementar el sistema   S  con un descodificador y puertas es necesario conocer laSuma de Productos Canónica (SPC). Puesto que tenemos las EC de las válvulas como sumade productos, podemos trasladar cada término producto a un mapa de Karnaugh.

56   Problemas de fundamentos y estructura de computadores

Page 73: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 73/569

Por tanto las SPC de las válvulas son:

V 1(P1, P0,  R,  T )%Gm(2, 3, 5, 7, 8, 9, 10, 11) y   V 0(P1, P0, R, T )%Gm(0, 1, 2, 3, 10, 11)

El diseño con descodificadores es ahora inmediato:

Para implementar V 1 con un MUX de 8 a 1 se elige  P1, P0 y R como variables de seleccióndel MUX. Otra elección diferente no simplificaría el diseño. De este modo el mapa deKarnaugh se divide en 8 zonas con las siguientes EC:

F 0%0,  F 1%1, F 2%T , F 3%T , F 4%1, F 5%1, F 6% 1, F 7% 0

Capítulo 2  Sistemas combinacionales   57

Page 74: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 74/569

Para implementar  V 0 con un MUX de 4 a 1 se eligen P1 y  P0 como variables de selección.

Ahora el mapa de Karnaugh se divide en 4 zonas con las siguientes EC:

F 0%1,   F 1%0,   F 2% R   y   F 3%0

Por último, para diseñar el sistema que detecta cuándo hay más botellas vacías que llenas,dado que se conecta a 5 sensores se podría recurrir a una tabla de verdad de 32 filas e imple-mentarla posteriormente con alguno de los métodos que se conocen. Este procedimiento ya noes eficaz si hubiera más sensores pues por cada sensor que se añadiera la tabla duplicaría sutamaño. Esta solución queda propuesta.

Una alternativa, que es válida para cualquier número de sensores, es averiguar cuántoshay activos sumándolos y comparando después el número obtenido con la mitad de los senso-res conectados. Para ello es importante darse cuenta de que un sumador se puede ver como unsistema que devuelve (en binario) el número de unos a la entrada. Es decir, si recibe dos entra-das binarias  A  y  B, el número  N  formado por el carry  C out y la salida  S  indica si hay 0, 1 o 2unos entre  A  y  B.

58   Problemas de fundamentos y estructura de computadores

Page 75: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 75/569

Dispongamos entonces los 5 sensores:  A,  B,  C ,  D  y  E  en parejas que se conectan a suma-dores. Puesto que tenemos un número impar, el sensor  E  se empareja con un cero.

 N  AB, N CD y  N  E  son 3 números binarios de dos bits.

El siguiente paso es añadir una nueva capa de sumadores, ahora de 2 bits, para sumar  N  ABcon N CD y N  E  con 0. Finalmente una nueva capa con un sumador de 3 bits obtendríamos 4 bitsque forman el número binario  N % ( N 3 N 2 N 1 N 0)2 que se corresponde con el total de unos quehay en las entradas. Este dispositivo sería capaz de contar desde 0 hasta 8 unos en caso de quese utilizaran sus 8 entradas.

Cuando N  sea mayor o igual que 3 se debe activar el detector de más botellas vacías quellenas. Teniendo en cuenta que el número  N  nunca será mayor que 5 se plantea el siguientemapa de Karnaugh que da lugar a la EC del detector: Detector% N 2! N 1 N 0.

Capítulo 2  Sistemas combinacionales   59

Page 76: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 76/569

Con todo el circuito detector es el siguiente:

PROBLEMA 18

Para transmitir información numérica en estaciones de esquí se colocan 5 luces en un disco

elevado 3 metros por un poste y se establece el código de la figura, donde el círculo oscurosignifica que está encendido.

Diseñar un sistema que conste de un teclado, el poste de luces y un subsistema quetransforma la información del teclado en luces encendidas y apagadas en el poste.

a)   Explica claramente los módulos que se utilizan y la codificación elegida.

b)   Utiliza descodificadores y puertas OR para implementar las luces  A,  B  y  C .

c)   Utiliza el menor número posible de MUXs de 4 a 1 para implementar las luces D y  E .

60   Problemas de fundamentos y estructura de computadores

Page 77: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 77/569

Solución: 

La tabla de verdad del sistema que enciende y apaga las luces es:

N 3   N 2   N 1   N 0   A B C D E  

0 0 0 0 0 1 0 0 10 0 0 1 1 0 0 0 00 0 1 0 1 0 1 0 00 0 1 1 1 1 1 0 0

0 1 0 0 1 1 1 1 00 1 0 1 1 1 1 1 10 1 1 0 1 1 0 0 00 1 1 1 0 1 1 0 0

1 0 0 0 0 0 1 1 01 0 0 1 0 0 0 1 1

1 0 1 0 X X X X X1 0 1 1 X X X X X

1 1 0 0 X X X X X1 1 0 1 X X X X X1 1 1 0 X X X X X1 1 1 1 X X X X X

La implementación con descodificadores y puertas OR es inmediata.

Para implementar  D y  E  con MUX de 4 a 1 es necesario elegir 2 variables de control yresolver el mapa de Karnaugh. Eligiendo  N 3 y  N 2 tenemos una implementación mínima para

 D y para  E .

Capítulo 2  Sistemas combinacionales   61

Page 78: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 78/569

El resultado es el siguiente:

Es interesante resaltar que puesto que no se permite utilizar otro elemento combinacional,las expresiones de conmutación  F 0 y  F 1 del MUX que implementa  E  se deben implementar asu vez con otro MUX de 4 a 1. Esto no es difícil ya que ambas son FC de dos variables ( N 1 y

 N 0) y por tanto basta con colocar sus funciones de conmutación en la entrada de datos. Igual-mente para la expresión de conmutación  F 1 del MUX que implementa  D es necesario cons-truir un negador con un MUX de 4 a 1. En definitiva:

62   Problemas de fundamentos y estructura de computadores

Page 79: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 79/569

PROBLEMA 19

Dar las ecuaciones y los circuitos, con los elementos combinacionales que prefieras, deuna red iterativa que reciba y genere  n  bits y funcione del siguiente modo:

 zi%

E1 si ( xi% 1)p ( xi.1%0)p ( xi.2%1)

0 en otro caso

Es decir, una celda da salida%1 cada vez que detecta una   ventana con el 101.

El siguiente gráfico representa una red de 8 celdas como la que se desea diseñar, dondese puede apreciar un ejemplo de funcionamiento para una cierta entrada. Los recuadros sonlas celdas y el número inscrito es su índice.

Solución: 

La red iterativa se compone de n celdas, cada una de las cuales recibe un bit  X i y genera un bit Z i. Para que la red funcione, además es necesario que cada celda transmita a la siguiente (laque se encuentra a su izquierda) la información que  resume   todo lo que ha ocurrido en lasceldas anteriores (las de la derecha) más la información que recibe la propia celda.

Capítulo 2  Sistemas combinacionales   63

Page 80: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 80/569

Esta información se codifica con 2 bits del siguiente modo:

Significado   A B 

Ninguno de los siguientes 0 0X 

i %1 0 1

X i %0pX 

i .1%1 1 0

La red iterativa tendrá entonces el siguiente aspecto:

Y, según la codificación dada, la celda genérica   i tendrá el siguiente esquema y tabla deverdad.

X i    Ai    B i    Z i    Ai !1

  B i !1

0 0 0 0 0 0

0 0 1 0 1 00 1 0 0 0 00 1 1 X X X

1 0 0 0 0 11 0 1 0 0 11 1 0 1 0 01 1 1 X X X

Para la implementación simplificamos las FC de  Z i,  Ai!1 y  B i!1.

64   Problemas de fundamentos y estructura de computadores

Page 81: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 81/569

Por último, para que la red funcione correctamente, es necesario que  A0%0 y  B0%0.

PROBLEMA 20

Diseña un multiplexor de 4 a 1 usando un descodificador de 2 a 4 y puertas.

Solución: 

Para resolverlo basta recordar que un multiplexor es un sistema que contiene todos los mini-términos que se pueden formar con las entradas de selección multiplicados a su vez por suentrada de datos correspondiente; y que un descodificador es un sistema que contiene todos

los minitérminos que se pueden formar con las entradas de datos. Por tanto habrá que multi-plicar cada una de las salidas del descodificador por la entrada correspondiente de datos. Fi-nalmente todas las salidas se deben sumar.

Llamando {S 1, S 0} a las entradas de selección  E  a la capacitación y { X 3,  X 2, X 1,  X 0} a lasentradas de datos, el MUX de 4 a 1 se construiría como muestra la figura.

Capítulo 2  Sistemas combinacionales   65

Page 82: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 82/569

PROBLEMA 21

Se ha diseñado un sistema de visión artificial capaz de distinguir accesos en una pared.Para probarlo se integra en un robot motorizado y se construye un laberinto de habitacio-

nes triangulares tal que cada una de las paredes puede tener o no un acceso.Cuando el sistema de visión identifica un acceso lo etiqueta según esté en la pared de la

izquierda (a) o de la derecha (b).

Diseñar el sistema que gobierna los movimientos del robot en función de los accesosque «ve» en una habitación al entrar; teniendo en cuenta que se quiere construir con elmenor número de circuitos 7400, que contienen 4 puertas NAND de 2 entradas. El robotrecorrerá el laberinto del siguiente modo:

– Si llega a una habitación y no   ve accesos, debe retroceder.

– Si llega a una habitación y  ve 1 acceso debe avanzar (hacia la izquierda o la derecha)para salir por el que no entró.

– Si llega a una habitación y   ve 2 accesos debe avanzar para salir siempre por la dere-cha.

En la figura se muestra una habitación con 3 accesos (a y b más el acceso por el que haentrado), tal como la   vería el robot.

Solución: 

El robot tiene 3 posibles movimientos:

{retroceder, ir a la izquierda, ir a la derecha}

El movimiento se decide en función del número de accesos que ve y tiene 4 posiblidades:

{ninguno, uno a la derecha (b), uno a la izquierda (a), uno a cada lado (a y b)}

Por tanto habrá que codificar con 2 bits ( A y B) la entrada (accesos vistos) y con 2 bits ( M 1y M 0) la salida (movimientos). Se propone la siguiente codificación:

Accesos vistos   A B    Movimiento   M 1   M 0

Ninguno 0 0 Retroceder 0 0Uno a la derecha 0 1 Derecha 0 1

Uno a la izquierda 1 0 Izquierda 1 0Uno a cada lado 1 1

66   Problemas de fundamentos y estructura de computadores

Page 83: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 83/569

La tabla de verdad del sistema será sencillamente:

A B M 1   M 0

0 0 0 00 1 0 11 0 1 01 1 0 1

Las EC de  M 1 y  M 0 son  M 1% AB y  M 0% B.

PROBLEMA 22

Se quiere construir un sistema de control de movimiento de una plataforma en la que semonta una cámara. La plataforma se maneja a distancia por radio a través de un mando(ver figura) y que funciona del siguiente modo:

La rueda con 3 posiciones excluyentes { I ,  N ,   D} maneja el giro de la cámara del si-guiente modo:

— En en el sentido de las agujas del reloj si la rueda se lleva a  D.

— En el sentido contrario a las agujas del reloj si la rueda se lleva a  I .— No gira si la rueda se lleva a  N .

La rueda con 3 posiciones excluyentes { R, N , A} maneja el giro del brazo que sujeta lacámara del siguiente modo:

— Hacia delante si la rueda se lleva a  A.

— Hacia detrás si la rueda se lleva a  R.

— Se detiene si la rueda se lleva a  N .

En la plataforma tanto el brazo como la cámara tienen, cada uno, un pequeño motorcon 8 posibles funcionalidades diferentes. A nosotros sólo nos interesan las siguientes:

— Detener movimiento % código 110.

— Girar en sentido de las agujas del reloj% código 001.

— Girar en sentido contrario a las agujas del reloj% código 011.

El mando envía la información acerca de la posición de las ruedas y además añade unbit de paridad tal que el número de ceros que se transmitan sea siempre IMPAR.

El robot recibe la información y genera los bits necesarios para que se muevan los mo-tores del brazo y de la cámara.

Capítulo 2  Sistemas combinacionales   67

Page 84: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 84/569

a)   Hacer una codificación completa, tanto del mando como de la plataforma, y dar lastablas de verdad de ambos.

b)   Implementar el bit de paridad con un descodificador y puertas.

c)   Implementar el movimiento del motor del brazo sólo con MUXs de 2 a 1.d)   Implementar el movimiento del motor de la plataforma sólo con MUXs a elegir.

 NOTA: El mando tiene varios canales por lo que emite todos los bits al mismo tiempo y laplataforma los recibe al mismo tiempo.

Solución: 

El mando tiene 2 ruedas con 3 posiciones por lo que cada rueda se debe codificar con 2 bits

Cámara   C 1   C 0   Brazo   B 1   B 0

N    0 0   N    0 0D    0 1   A   0 1I    1 0   R    1 0

La rueda «Cámara» gobierna el motor MC en la plataforma que sostiene la cámara y quesirve para girar en el eje vertical, mientras que la rueda «Brazo» gobierna el motor MB dedicha plataforma, que sirve para girar en el eje horizontal.

Tenemos que decidir cómo colocar los motores MC y MB para que al girar funcionencomo se pide. Se propone lo siguiente:

Sentido de giro MC MB Código

Horario   D A   001Antihorario   I R    011

Detener   N N    110

De este modo se obtendrían las siguientes tablas de verdad:

C 1   C 0

Código MCB 1   B 0

Código MB

MC2   MC1   MC0   MB2   MB1   MB0

0 0 1 1 0 0 0 1 1 00 1 0 0 1 0 1 0 0 11 0 0 1 1 1 0 0 1 11 1 X X X 1 1 X X X

68   Problemas de fundamentos y estructura de computadores

Page 85: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 85/569

Gracias a la adecuada elección de la posición de los motores ambas tablas de verdad sonidénticas, lo que falicita la tarea.

El bit de paridad  P  se genera con la posición de ambas ruedas según la siguiente tabla deverdad y su implementación se muestra en la figura.

C 1   C 0   B 1   B 0   P 

0 0 0 0 10 0 0 1 00 0 1 0 00 0 1 1 1

0 1 0 0 00 1 0 1 10 1 1 0 10 1 1 1 0

1 0 0 0 0

1 0 0 1 11 0 1 0 11 0 1 1 0

1 1 0 0 11 1 0 1 01 1 1 0 01 1 1 1 1

Capítulo 2  Sistemas combinacionales   69

Page 86: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 86/569

Para implementar el movimiento del brazo necesito generar los bits del código correspon-diente a partir de las entradas  B1 y  B0. Además se pide hacerlo con MUX de 2 a 1 por lo quese deben calcular las funciones de conmutación con los mapas de Karnaugh.

Para implementar el movimiento de la cámara se eligen MUXs de 4 a 1 pues así no esnecesario realizar ningún cálculo. Los valores indeterminados se tomaron como 0. El resulta-do es:

70   Problemas de fundamentos y estructura de computadores

Page 87: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 87/569

2.12 Problemas propuestos

PROBLEMA 1

Implementar las siguientes funciones de conmutación con el menor número de puertas NAND:F 1( x3,  x2,  x1,  x0)%Gm(0, 2, 4, 8, 9, 10, 11, 12, 14, 15)

F 0( x3,  x2,  x1,  x0)% x3 x0! x3 x2 x0! x3. x2

. x0! x3. x1

PROBLEMA 2

Se quiere construir un sitema de control de movimiento de un robot en el que se monta unsistema de visión artificial. El robot se maneja por radiofrecuencia con un mando de 1 palancacon 4 posiciones excluyentes {Neutro,  Adelante ( A), Izquierda ( I ) y Derecha ( D)} y un botón

 Reverse ( R).

Cuando R  no esta apretado el robot se mueve del siguiente modo:

– En línea recta mientras se lleva la palanca hacia  A.

– Hacia la izquierda mientras se lleva la palanca hacia  I .

– Hacia la derecha mientras se lleva la palanca hacia  D.

Cuando   R  está apretado el robot se mueve hacia detrás, del mismo modo que lo hacíahacia delante.

Las ruedas de delante del robot puden estar detenidas, moverse hacia delante o moversehacia detras.

— Para avanzar recto (tanto hacia delante como hacia detrás) se deben mover ambas enel mismo sentido.

— Para avanzar a la derecha se debe mover (adelante o atrás) la rueda izquierda y detenerla derecha.

— Para avanzar a la izquierda se debe mover (adelante o atrás) la rueda derecha y detenerla izquierda.

El mando envía la información acerca de la posición de la palanca y el botón R  y ademásañade un bit de paridad tal que el número de unos que se transmitan sea siempre PAR.

El robot recibe la información y genera el movimiento que tiene que realizar la rueda iz-quierda y derecha.

a)   Hacer una codificación completa, tanto del mando como del robot, y dar las tablas deverdad.

b)   Implementar el bit de paridad con un único MUX.

c)   Implementar el movimiento de las ruedas con un descodificador y puertas OR.

d)   Implementar de nuevo el movimiento de las ruedas sólo con MUX de 4 a 1 y NOT.

 NOTA: El mando tiene varios canales por lo que emite todos los bits al mismo tiempo y laplataforma los recibe al mismo tiempo.

Capítulo 2  Sistemas combinacionales   71

Page 88: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 88/569

PROBLEMA 3

Una pequeña tienda de música quiere un aparato que le avise de cuándo hay que llamar alproveedor. El aparato tiene 4 botones con los que codifica la siguiente información:

– Se ha vendido al menos el 20% de las existencias de Springsteen.

– Se ha vendido al menos el 30% de las existencias de Elton John.

– Se ha vendido al menos el 40% de las existencias de Garth Brooks.

– Se ha vendido al menos el 50% de las existencias de la tienda.

Queremos avisar al proveedor cuando ocurra alguno de estos casos:

– Se ha vendido el 20% de S. , menos del 30% de E. y el 50% de la tienda.

– Se ha vendido más del 30% de E. y más del 50% de la tienda.

– Se ha vendido al menos el 40% de G. y más del 50% de la tienda.

– Se ha vendido menos del 20% de S.

Dar la tabla de verdad del sistema y diseñarlo usando MUX de 4 a 1 y puertas.

PROBLEMA 4

Sea un sistema digital con dos entradas y dos salidas.

Las entradas son:

 X %número, en convenio  C 1 o  C 2, codificado con 3 bits.

C % {0, 1}

Y las salidas son:

 Z 1%1 si (( X )C 2!C )10 es PAR; y 0 en caso contrario.

 Z 0%1 si (( X )C 1!C )10 es IMPAR; y 0 en caso contrario.

Se pide:

a)   Dar una especificación de alto nivel.

b)   Hacer la tabla de verdad de Z 1(C ,  x2,  x1, x0) y  Z 0(C ,  x2,  x1,  x0).

c)   Implementar  Z 1 usando MUX de 8 a 1.

72   Problemas de fundamentos y estructura de computadores

Page 89: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 89/569

PROBLEMA 5

Obtener las E.C. más simplificadas para  F 1 y  F 2.

PROBLEMA 6

Una empresa está probando un sistema de frenado y otro de servodirección en un prototipo.

Dicho prototipo lleva un sensor de   frenazo y otro de  derrape.

El sistema de frenado se  activa en los siguientes casos:

— El coche va a 1/ 3 de su potencia máxima y hay frenazo y derrape.

— El coche va a 2/ 3 de su potencia máxima y hay frenazo.

— El coche va a la máxima potencia y hay frenazo o derrape.

El sistema de servodirección se  desactiva en los siguientes casos:

— El coche está parado.

— El coche va a 1/ 3 de su potencia máxima y no derrapa.

— El coche va a 2/ 3 de su potencia máxima y no frena.

a)   Dar las S.P.C. del sistema que activa los sistemas de frenado y servodirección.

b)   Implementar el sistema de frenado utilizando el menor número de puertas NAND.

c)   Implementar el sistema de servodirección utilizando únicamente MUX de 4 a 1.

d)   Implementar ambos sistemas utilizando un descodificador adecuado y puertas.

PROBLEMA 7

Analiza la red de la figura y da la suma de productos más simplificada posible.

¿Es conjunto universal? Razona la respuesta.

Capítulo 2  Sistemas combinacionales   73

Page 90: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 90/569

PROBLEMA 8

Dado el sistema de la figura se pide:

a)   Suma de productos canónica de Z 3 y  Z 2.

b)   Suma de productos simplificada de Z 3 y  Z 2.

c)   Reimplementa  Z 3 y  Z 2 utilizando el menor número de puertas NAND.

PROBLEMA 9

Diseñar detalladamente un descodificador de 3 a 8 utilizando únicamente descodificadores de

menor tamaño.¿Es el descodificador un conjunto universal? Razona la respuesta.

PROBLEMA 10

Sea la F.C.:   f ( x3,   x2,   x1,   x0)%Gm(0, 1, 2, 7, 8, 15)!Gd (5, 11, 12). Escribe la suma deproductos más simplificada posible.

PROBLEMA 11

Sea el sistema de la figura donde el módulo M da salida 1 sólo si tiene un número par o cerode unos en la entrada. Escribe las ecuaciones del módulo M, de la salida  F 1 y de la salida F 2.

74   Problemas de fundamentos y estructura de computadores

Page 91: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 91/569

PROBLEMA 12

Diseñar un sistema que transforme un número recibido a través de un teclado (del 0 al 9) en suequivalente braille levantando o bajando los 6 puntos de una  pantalla táctil.

Diseña modularmente el sistema completo.

Escribe la tabla de verdad del módulo traductor de decimal a braille.

Implementa dicho módulo utilizando un descodificador y las puertas necesarias.

PROBLEMA 13

Se pretende diseñar un termostato que encienda o apague la climatización de una sala. Dichosistema tiene un regulador con 4 posiciones: {Apagado, 1/ 3, 2/ 3, Máximo}. Además tiene unsensor para la humedad que se activa si está por encima del 50% y otro sensor que se activacuando la energía consumida supera los 4200 kWh.

El sistema de climatización funciona cuando se cumple alguno de estos casos:

– En posición de apagado, en el caso de que la humedad supere el 50%.

– Si la energía consumida supera el límite pero se pone al máximo.

– Si pone a 2/ 3 y no se supera el límite de energía.

– Si se pone a 1/ 3.

– Si la humedad supera el 50% y no se supera el límite de energía.

– Si se pone al máximo y sin superar el límite de energía y la humedad no llega al 50%.

Se pide:

a)   Hacer una codificación adecuada.

b)   Implementar el termostato utilizando multiplexores de 4 a 1 y puertas NOT si son nece-sarias. Escribe todos los cálculos necesarios.

c)   Reimplementar utilizando ahora únicamente puertas NAND.

PROBLEMA 14Diseñar una red iterativa que reciba  n  bits y funcione del siguiente modo:

 zi%E xi   si ( xi.1%1)p ( xi.2% 0)

 xi   en otro caso

Es decir: un bit de entrada se copiará si su bit «de la derecha» es 1 y «el de la derecha» deeste último es 0 y se negará en cualquier otro caso.

En otro caso el bit se cambia.

Capítulo 2  Sistemas combinacionales   75

Page 92: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 92/569

PROBLEMA 15

Dada la función de conmutación   f ( x2,   x1,   x0)% x2 x1! x2 x1 x0! x2 x1 x0! x2 x0! x2 x1, ex-presarla como suma de productos canónica y como suma de productos lo más simplificadaposible.

Implementar la función utilizando:

a)   Únicamente puertas NAND, utilizando el ménor número posible de ellas.

b)   Un MUX de 8 a 1.

c)   Un descodificador y puertas.

d)   Únicamente MUX de 4 a 1.

PROBLEMA 16

Analizar la siguiente red de puertas NAND y expresar la función  F ( x, y) como suma de mini-

términos y como suma de productos lo más simplificada posible.¿Es conjunto universal? Razonar la respuesta.

PROBLEMA 17

Dado un elemento combinacional con la siguiente tabla de verdad.

A   0 0 1 1

B    0 1 0 1

¿Existe algún valor de  X  para el cual dicho elemento sea conjunto universal? Justifica larespuesta.

PROBLEMA 18

Analiza la red de puertas y da la expresión de conmutación de la salida tanto en su forma

canónica como en suma de productos lo más simplificada posible.

76   Problemas de fundamentos y estructura de computadores

Page 93: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 93/569

3.1 Definición de sistema secuencial y concepto de estado

3.1.1 Sistema secuencial (Definición formal)

Un sistema secuencial es aquel en el que la salida  z  en un instante dado  t i  es función  F  de la

entrada x  y el estado del sistema  s  en ese instante. Es necesario por tanto definir también el

concepto de estado. Sin embargo no se define el estado actual, en el instante  t i, el estado trans-

currido un cierto tiempo desde el instante dado s(t i!B), como una función G  de la entrada  xy el estado del sistema  s  en el instante t i.

E z (t i)%F ( x(t i),   s (t i))

s (t i!B)%G( x (t i),   s(t i))

s (t i%0)% DATO

3.1.2. Concepto de estado

Los estados engloban los diferentes comportamientos que presenta el sistema de modo que se

contemplen todos los posibles casos.

Siempre definiremos el estado próximo al actual de modo que el estado inicial debe ser un

DATO.

Al ir entrando valores al sistema secuencial, éste irá modificando su estado, de modo que

el estado en un instante determinado depende de todos los valores que han entrado hasta ese

momento. Por esa razón, conociendo el estado actual (que es casi como conocer todos los

valores posteriores) y la entrada actual podemos determinar la salida y también el comporta-

miento del sistema en el futuro inmediato, esto es el estado siguiente.

Page 94: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 94/569

3.2 Clasificación de sistemas secuenciales

3.2.1 Sistemas síncronos y asíncronos

Son sistemas síncronos aquellos en los que el estado cambia cada cierto tiempo constante lla-

mado  Periodo. Para marcar estos periodos de tiempo los sistemas síncronos están gobernados

por una señar de reloj (CK) y en vez de escribir  S (t i!B) diriamos:  S (t i! 1).

En los sistemas asíncronos no tenemos señal de reloj y por lo tanto los cambios de estado

se producirán con los cambios de la entrada.

Máquina de Mealy Máquina de Moore

E

 z(t i)%F ( x(t i),   s(t i))

s(t i!B)%G( x(t i),   s(t i))

s(t i%0)% DATO

  E

 z (t i)%F (s(t i))

s (t i!B)%G( x(t i),   s(t i))

s (t i%0)% DATO

La salida SOLO depende

del estado, no  de la entradaπ∫ 

Escribiremos las salidas Escribiremos las salidasen las aristas del diagrama de estados en los estados del diagrama

3.3 Especificación binaria. Obtención de diagramasde estado

3.3.1 Reconocedores de secuencias

Supongamos una secuencia de N  estados.

Maq. Mealy

Estado inicial (Estado cero): Aún no hemos reconocido nada.

Primer estado: Hemos reconocido el bit más antiguo de la secuencia.

Segundo estado: Hemos reconocido los dos bits más antiguos; i.e: puesto que

ya habíamos reconocido el más antiguo lo que hemos hecho ahora es reconocer

el siguiente más antiguo.

Tercer estado: Hemos reconocido los tres bits más antiguos.

......

Estado N-1: Hemos reconocido todos los bits de la secuencia excepto el último.

Maq. Moore

Estado inicial (Estado cero): Aún no hemos reconocido nada.

Primer estado: Hemos reconocido el bit más antiguo de la secuencia.

......

Estado N-1: Hemos reconocido todos los bits de la secuencia excepto el último.

Estado N: Hemos reconocido TODOS los bits de la secuencia   ú   SALIDA%1

78   Problemas de fundamentos y estructura de computadores

Page 95: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 95/569

Ejemplo:    Sea el siguiente Sist. Sec.

E z% 1 si   x(t . 2)% ap x(t .1)% bp x(t )% b

 z% 0 en otro caso

Lo que nos pide es, en definitiva, reconocer la secuencia  a-b-b, donde la última   b  es el

último bit que debe entrar.

Los estados del sistema serían (haciéndolo como Mealy):

El siguiente paso es unir los estados con aristas marcadas con las entradas adecuadas para

pasar del estado del que parten al que llegan; esto es:

La arista que une dos estados está marcada con el nuevo bit que reconoce.

– Si la máquina es de Mealy: en la arista también marcaremos la salida, que será 1 sólo en

el caso de que partamos del estado  N . 1 puesto que ya habremos reconocido todos los

bits anteriores y es justo en este momento cuando reconocemos el que quedaba.

– Si la máquina es de Moore entonces la salida será 0 en todos los estados menos en el

último (estado  N ) en el que daremos salida 1 puesto que YA hemos reconocido la se-

cuencia.

El último paso es completar el diagrama de estados con las aristas que faltan. De cada

estado deben partir tantas aristas como posibles valores tiene el sistema para la entrada. La

dificultad de los reconocedores está en dibujar correctamente las aristas. Si están mal la má-

quina realizará unas transiciones de estados incorrectas y por lo tanto dará salida 1 cuando

debería dar salida 0!!!

Versión Mealy: 

Capítulo 3  Sistemas secuenciales   79

Page 96: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 96/569

Versión Moore: 

3.3.2 Contadores

Son máquinas de Moore que recorren los estados de manera correlativa. Su diagrama es:

Obviamente este es el diagrama de estados de un contador ascendente, desde 0 hasta

 p.1 (i.e., módulo  p). Si fuera descendente las flechas irían en sentido contrario. También

podemos convertirlo en un contador ascendente/ descendente.

3.4 Implementación no canónica de reconocedorescon biestables  D 

Los biestables  D  síncronos tienen la característica de retrasar la marcha de la información un

ciclo de reloj. De este modo, uniendo en  cascada varios biestables podemos tener en un mis-

mo instante la entrada actual (en t i) y el valor de la entrada en tantos instantes anteriores como

biestables pongamos:

80   Problemas de fundamentos y estructura de computadores

Page 97: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 97/569

3.5 Implementación canónica

Para la implementación de sistemas secuenciales a partir de su diagrama de estados necesita-

mos, como norma general, dos bloques combinacionales: uno para implementar la salida y

otro para implementar el próximo estado.

Si la máquina es de Moore la salida no dependerá de la entrada, mientras que las de

Mealy sí.

Es(t i!1)%F ( x (t i),  s(t i))

 z(t i)%EG(s(t i))   ú   Moore

G( x(t i),  s(t i))   ú   Mealy

s(t i%0)% DATO

– El Próximo Estado (P.E.) está siempre a la ENTRADA del reg. de estado.

– El Estado Actual (E.A.) está siempre a la SALIDA del reg. de estado.

– Es imprescindible que el reg. de estado (los biestables que lo forman) se puedan inicia-

lizar de una manera ASINCRONA; para ello disponemos de la señal CLEAR.

3.6 Módulos secuenciales estándar

3.6.1 Registros

Agrupación de biestables  D  que permiten cargar  n  bits en paralelo.

Sólo carga si Clear% 0 y Load%1.

Capítulo 3  Sistemas secuenciales   81

Page 98: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 98/569

3.6.2 Registros de desplazamiento

Además de la carga en paralelo, permite desplazar el contenido del registro hacia la izquierda

o derecha un bit con cada golpe de reloj. Podemos aprovechar esto para realizar multiplicacio-

nes y divisiones por la base.

C 0   C 0   Acción   Z (t !1)

0 0 Nada   Z (t )0 1   @   Z 

n .2(t ), ..., Z 0(t ), D 

1 0   A   I , Z n .2

(t ), ..., Z 0(t )0 1 Carga   Z 

n .1(t ), ..., Z 0(t )

3.6.3 Banco de registros

Un banco de registros es una agrupación de 2m registros, todos ellos de ancho n, sobre los que

puedo leer o escribir. Tanto la lectura como la escritura se hace en paralelo, es decir lee/ escri-

be los n  bits en un único golpe de reloj.

Para leer tenemos que dar:

– ¿De qué registro vamos a leer?

– Señal de Lectura.

Para escribir tenemos que dar:

– ¿En qué registro vamos a escribir?

– ¿Qué vamos a escribir en ese registro?

– Señal de Escritura.

El dato que queramos escribir se coloca en las líneas de entrada.

El dato que hayamos leído lo tendremos en las líneas de salida.

Indicamos un registro poniendo su número, en binario, en las líneas de dirección.

82   Problemas de fundamentos y estructura de computadores

Page 99: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 99/569

3.6.4 Contadores

– Clear%0:  Q(t !Bt )% 0r Resetear  (asíncronamente)

– Clear%1

Load%1:  Q(t !1)% X (t )rCargar Load%0

Contar%1:  Q(t !1)%Q(t )! 1r Incrementar 

Contar%0:  Q(t !1)%Q(t )r No hace nada

Implementación alternativa de sistemas secuenciales usando contadores

Dado que el contador se puede comportar como un registro siempre podremos implementarun sistema secuencial usándolo para almacenar el estado siguiente; sin embargo para eso yatenemos la implementación canónica.

Si la mayoría de las transiciones entre estados es en el orden en que se modifica un conta-

dor, es decir:  S 0-S 1-S 2-S 3-etc., o con muy pocas modificaciones en dicho orden tiene más sen-tido usar un contador que hacer la implementación canónica, puesto que los contadores imple-mentan precisamente este tipo de diagramas de estado.

Método:

1.   Escribir la tabla de transición de estados.

2.   Añadir a la derecha dos nuevas F.C.: LOAD y CONTAR.

3.   Ir línea por línea de la tabla haciendo el siguiente cálculo:

– Si P.E.%E.A.!1 entonces: LOAD%0 y CONTAR%1

– Si P.E.%E.A. entonces: LOAD% 0 y CONTAR%0

– En cualquier otro caso LOAD%1 y CONTAR% - -4.   Habrá que generar la señal LOAD y la señal CONTAR.

Para ello sabemos que ambas son señales combinacionales que dependen del E.A.(Q) y de las entradas del sistema secuencial.

5.   Habrá que definir los valores de entrada para las ocasiones en que utilizamos la señalde LOAD para cambiar la transición «natural» del contador.

Esto también lo haremos con un módulo combinacional que tiene por entradas elE.A. (Q) y las entradas del sistema secuencial.

La implementación de la salida se hace igual que en la canónica y será diferente paramáquinas de Mealy o de Moore.

Capítulo 3  Sistemas secuenciales   83

Page 100: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 100/569

3.7 Problemas resueltos

PROBLEMA 1

Dar una especificación mediante diagrama de estados de un restador binario puro. AYUDA:  Al restador le entran dos números representados en binario, empezando por el

menos significativo y de modo que en cada instante de tiempo sólo entra un solo bit de

cada uno de ellos.

Solución: 

Denotando cada arco del diagrama de estados  ab/ c , donde  a  es el bit del primer operando,  b

el del segundo y  c  la salida del sistema, el diagrama final queda:

PROBLEMA 2

Obtener el diagrama y la tabla de transición de estados de un sistema secuencial con un bitde entrada y un bit de salida. La salida será  igual a la entrada hasta que aparezca el  segun-

do cero. A partir de ese instante la salida será   la entrada negada.

Ejemplo:    Entrada: 1 1   0   1 1   0   1 1 0 1 0 ...

Salida: 1 1 0 1 1 0 0 0 1 0 1 ...

Solución: 

El diagrama consta de 3 estados que codifican la siguiente información:

–   S 0: Aún no ha aparecido ningún cero.

–   S 1: Ha aparecido el primer uno

–   S 2: Ha aparecido el segundo uno, que según el enunciado no tiene por qué ser consecu-

tivo.

84   Problemas de fundamentos y estructura de computadores

Page 101: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 101/569

Se trata de una máquina de Mealy, es decir, tanto el próximo estado como la salida en un

instante dado dependen de la entrada en dicho instante. Por lo tanto la tabla de transición de

estados y la tabla de salidas se pueden representar en una única tabla que, según el diagrama

de estados, es:

Entrada E.A. P.E. Salida

X Q 1   Q 0   D 1   D 0   Z 0

0 0 0 0 1 00 0 1 1 0 00 1 0 1 0 10 1 1 X X X

1 0 0 0 0 11 0 1 0 1 11 1 0 1 0 01 1 1 X X X

PROBLEMA 3

Obtener el diagrama y la tabla de transición de estados de un sistema secuencial que cum-

pla la siguiente función de salida para una entrada  x(t ):

2 si   x(t .2)%1p x(t . 1)%0p x(t )%0

1 si   x(t .2)%1p x(t . 1)%1p x(t )%1

0 si se da cualquier otro caso

Ejemplo:    Entrada: 1 0 0 1 1 1 1 1 0 0 1 ...

Salida: 0 0 2 0 0 1 1 1 0 2 0 ...

Solución: 

El diagrama consta de 4 estados que codifican la siguiente información:

–   S 0:  x(t . 2)%0 (Estado inicial)

–   S 1:  x(t . 2)%1

–   S 2:  x(t . 2)%1p x(t . 1)%1

–   S 3:  x(t . 2)%1p x(t . 1)%0

Capítulo 3  Sistemas secuenciales   85

Page 102: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 102/569

Al igual que en el problema anterior, la tabla de transición de estados y la tabla de salidas

se pueden representar en una única tabla que, según el diagrama de estados, es:

Entrada E.A. P.E. Salida

X Q 1   Q 0   D 1   D 0   Z 1   Z 0

0 0 0 0 0 0 00 0 1 1 0 0 00 1 0 0 0 1 00 1 1 1 0 0 0

1 0 0 0 1 0 11 0 1 1 1 0 01 1 0 0 1 0 01 1 1 1 1 0 1

PROBLEMA 4

Especificar mediante un diagrama de estados un sistema secuencial cuya salida  z  toma va-

lor 1 sólo cuando  x(t )%1p x(t . 1)%0p x(t .2)% 1p x(t .3)%1.

Realizar una implementación canónica con puertas AND, OR y NOT.

Solución: 

Siguiendo los pasos sugeridos en el apunte teórico el diagrama constaría de 4 estados que

codifican la siguiente información:

–   S 0:  x(t . 3)%0 (Estado inicial)

–   S 1:  x(t . 3)%1

–   S 2:  x(t . 3)%1p x(t . 2)%1

–   S 3:  x(t . 3)%1p x(t . 2)%1p x(t .1)% 0

86   Problemas de fundamentos y estructura de computadores

Page 103: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 103/569

Simplificando obtenermos las EC del próximo estado (P.E.):

 D1%Q1Q0! XQ1Q0

 D0% XQ1Q0! XQ1Q0! XQ1 . Q0

Y para la salida:

 Z % XQ1Q0

Entrada E.A. P.E. Salida

X Q 1   Q 0   D 1   D 0   Z 0

0 0 0 0 0 0

0 0 1 0 0 0

0 1 0 1 1 0

0 1 1 0 0 0

1 0 0 0 1 0

1 0 1 1 0 0

1 1 0 1 0 0

1 1 1 0 1 1

Capítulo 3  Sistemas secuenciales   87

Page 104: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 104/569

PROBLEMA 5

Sea un sistema secuencial que da salida  Z % 1 cuando se cumple que:

 X (t )%0 ;   X (t . 1)%1 ;   X (t .2)% 0 ;   X (t .3)% 1

(es decir, reconoce la secuencia 1010, empezando por la izquierda).

Se pide dibujar su diagrama de estados y hacer una implementación canónica con puer-

tas AND, OR y NOT.

Solución: 

El diagrama consta de 4 estados que codifican la siguiente información:

–   S 0:  x(t . 3)%0 (Estado inicial)

–   S 1:  x(t . 3)%1

–   S 2:  x(t . 3)%1p x(t . 2)%0–   S 3:  x(t . 3)%1p x(t . 2)%0p x(t .1)% 1

Entrada E.A. P.E. Salida

X Q 1   Q 0   D 1   D 0   Z 0

0 0 0 0 0 0

0 0 1 1 0 0

0 1 0 0 0 0

0 1 1 1 0 1

1 0 0 0 1 0

1 0 1 0 1 0

1 1 0 1 1 0

1 1 1 1 0 1

88   Problemas de fundamentos y estructura de computadores

Page 105: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 105/569

Simplificando tenemos:

 D1% XQ1! XQ0   ,   D0% XQ1! XQ0   y   Z %Q1Q0

PROBLEMA 6

Sea un sistema secuencial que da salida% 1 si ha recibido un número par de unos y laentrada actual y la anterior son ambas igual a cero.

a)   ¿Se puede diseñar como máquina de Mealy, de Moore, o ambas? Justifica la respuesta.

b)   Dibuja el diagrama de estados.

 NOTA: No haber recibido  ningún  uno se considerará  distinto  a haber recibido un número

 par  de unos.

c)   Diseñar un sistema combinacional de n  entradas que da salida% 1 sólo cuando recibe

un número impar de unos por ellas y las dos últimas ( xn.1 y  xn.2) son iguales a cero.

Dar las tablas de verdad que consideres necesarias e implementar con los módulos o

puertas que prefieras.

Solución: 

a)   Puesto que según el enunciado la salida depende de la entrada actual entonces es necesa-

rio diseñarlo como máquina de Mealy.

b)   El diagrama consta de 4 estados que codifican la siguiente información:

–   S 0: Estado inicial. No se ha recibido ningun uno.

–   S 1: Se ha recibido un número impar de unos, no tiene por qué ser consecutivos.

–   S 2: Se ha recibido un número par de unos, no tiene por qué ser consecutivos.

Capítulo 3  Sistemas secuenciales   89

Page 106: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 106/569

Page 107: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 107/569

Aunque este último apartado pertenece a circuitos combinacionales ha sido incluido

en este ejercicio para mostrar cómo un autómata finito y una red iterativa sencilla guar-

dan muchos puntos en común. La información que una celda transmite a su izquierda

resume la información recibida por el sistema en las celdas de su derecha. Esta es precisa-

mente la definición de  estado, con la diferencia fundamental de que el estado resume la

información recibida anteriormente, es decir en el tiempo, no en el  espacio.

PROBLEMA 7

Sea un sistema secuencial  S 1 que da salida  Z 1% 1 si los cuatro últimos bits que ha recibido

son 1001.

Sea un sistema secuencial  S 2 que da salida Z 2%0 si los tres últimos bits que ha recibi-

do son 010.

Sea un sistema secuencial  S 3 que genera la secuencia 1 0 0 mientras su entrada valga 1.

a)   Dibujar el diagrama de estados de cada uno de los sistemas.

b)   Dar la tabla de transición de estados y de salida de S 2.

c)   Diseñar el sistema  S 1 y  S 2 usando biestables  D  y puertas lógicas.

 NOTA: No es necesario hacer una implementación canónica.

Solución: 

a)   Siguiendo las indicaciones del apunte teórico se puede obtener fácilmente el diagrama de

estados de los sistemas  S 1  y  S 2.

Para el sistema  S 1 se tienen 4 estados que codificarían la siguiente información:

–   S 0:  x(t . 3)%0 (Estado inicial)

–   S 1:  x(t . 3)%1

–   S 2:  x(t . 3)%1p x(t .2)% 0

–   S 3:  x(t . 3)%1p x(t .2)% 0p x(t . 1)%0

Para el sistema  S 2 se tendría los siguientes 3 estados:

–   S 0:  x(t . 2)%1 (Estado inicial)

–   S 1:  x(t . 2)%0

–   S 2:  x(t . 2)%0p x(t .1)% 1

Capítulo 3  Sistemas secuenciales   91

Page 108: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 108/569

Para el sistema  S 3  es un generador. Su diagrama de estados es el de un contador, en

este caso módulo 3.

b)   Las tablas de transición y salida de S 2 se pueden juntar en una única tabla, pues  S 2 es una

máquina de Mealy por lo que tanto el próximo estado como la salida en un instante dado

dependen del estado actual y de la entrada en dicho instante. La tabla será entonces:

Entrada E.A. P.E. Salida

X Q 1   Q 0   D 1   D 0   Z 0

0 0 0 0 1 10 0 1 0 1 00 1 0 0 1 00 1 1 X X X

1 0 0 0 0 11 0 1 1 0 11 1 0 0 0 11 1 1 X X X

92   Problemas de fundamentos y estructura de computadores

Page 109: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 109/569

c)   Utilizando biestables D  se pueden implementar los sistemas S 1 y  S 2 sin conocer el diagra-

ma de estados, simplemente almacenando las 3 últimas entradas para el caso de  S 1  y las

dos últimas para  S 2. El resultado es:

PROBLEMA 8

Sea un reconocedor de dígitos codificados en BCD tal que los bits llegan en serie (es decir,

uno tras otro) comenzando por el menos significativo.

a)   Especificarlo mediante un diagrama de estados, diciendo si se hace como máquina de

Moore o de Mealy.

b)   Diseñar el sistema, usando biestables D  y puertas de un único tipo sin recurrir al dia-grama de estado.

Solución: 

El BCD es un código de 4 bits. Por tanto, hasta que no se reciben 4 bits seguidos no se consi-

dera un nuevo número.

Puesto que los bits llegan al sistema comenzando por el menos significativo se pueden dar

dos casos distintos:

– Si el primer bit que llega es un 0 o un 1 y después un 0:

Entonces para que la salida sea 1 debe llegar a continuación:

o bien un 0 y luego un 0 o 1

o bien 1 y luego 0.

– Si el primer bit que llega es un 0 o un 1 y después un 1.

Entonces para que la salida sea 1 debe llegar a continuación un 0 o un 1 y luego

un 0.

Capítulo 3  Sistemas secuenciales   93

Page 110: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 110/569

En resumen, el diagrama de estados resultante es:

Respecto a la implementación, dado que los biestables  D  añaden un retardo de un ciclo, se

puede diseñar un sistema que reconozca cuándo los 4 últimos bits recibidos por el sistema

pertenecen al código BCD, teniendo en cuenta las siguientes consideraciones:

Puesto que la secuencia comienza por el menos significativo el número en BCD N  forma-

do por la sucesión de 4 bits es ( X (t ) X (t .1) X (t . 2) X (t .3))BCD.

La Suma de Productos Canónica que determina si  N  es BCD es:

 f ( X (t ),  X (t . 1), X (t . 2),  X (t . 3))%Gm(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

La Suma de Productos más simplificada es

 f ( X (t ),  X (t .1),  X (t .2), X (t . 3))% X (t )! X (t . 2) X (t .1)

Puesto que la salida depende sólo de los últimos bits almacenados, se puede implementar

con una serie de biestables  D  del siguiente modo:

94   Problemas de fundamentos y estructura de computadores

Page 111: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 111/569

Como se indicó al comienzo del problema, hasta que no se reciben 4 bits seguidos no se

considera un nuevo número. Sin embargo, la salida del diseño propuesto tomaría valor 1 tras

una secuencia de 4 ceros, en el momento en el que recibiera el siguiente bit, tanto si es cero

como si es uno. O sea que la salida toma valor 1 pero el nuevo número aún no se ha formado,

de hecho sólo ha recibido el bit menos significativo.

Para evitar esto debemos añadir al sistema generado un contador módulo 4 de modo que

cuando llegue al final de la cuenta capacite la salida.

Llamando S  al sistema diseñado arriba, el sistema completo sería:

Como última nota, la segunda puerta NAND es necesaria para construir un negador que

anule el efecto de la primera NAND, ya que según el enunciado sólo permite el uso de un tipo

de puertas y S  está implementado con NANDs.

PROBLEMA 9

Dado el siguiente diagrama de estados:

Dibujar de forma esquemática su implemen-

tación canónica.

Implementar dicho sistema usando un conta-dor y los módulos combinacionales necesa-

rios.

Implementar dicho sistema usando biesta-

bles  D  y multiplexores 4 a 1.

Capítulo 3  Sistemas secuenciales   95

Page 112: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 112/569

Solución: 

Las tablas de transición de estados y de salida se pueden agrupar en una sola pues es una

máquina de Mealy. Por tanto el esquema de su implementación canónica es:

Para implementar con un contador con carga en paralelo hay que analizar el diagrama de

estados; i.e., obtener su especificación en forma de tabla de transición de estados y de salidas.

En la tabla se añade una columna L  para indicar en qué transiciones se debe cargar la entrada

del contador. Se supone además que  C %1 de modo que cuando  L%0 el contador se incre-

menta.

Entrada E.A. P.E. Salida Contador

X Q 1   Q 0   D 1   D 0   Z L E 1   E 0

0 0 0 0 1 1 0 X X

0 0 1 1 0 1 0 X X

0 1 0 1 1 0 0 X X

0 1 1 0 0 0 0 X X

1 0 0 1 0 0 1 1 0

1 0 1 1 0 1 X 1 0

1 1 0 1 0 0 1 1 0

1 1 1 1 0 1 1 1 0

96   Problemas de fundamentos y estructura de computadores

Page 113: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 113/569

La implementación basada en contador es:

La implementación canónica con MUX de 4 a 1 es:

Capítulo 3  Sistemas secuenciales   97

Page 114: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 114/569

PROBLEMA 10

Sea un reconocedor de secuencias que da salida%1 en alguno de estos dos casos:

 x(t .2)%1p x(t . 1)%0p x(t )%0

 x(t .2)%0p x(t . 1)%1p x(t )%1

a)   Dibujar el diagrama de estados.

b)   Realizar su implementación canónica.

Solución: 

a)   Este problema, que en apariencia es similar a otros reconocedores de dos secuencias, y

que a priori no parece entrañar una excesiva dificultad, resulta complejo porque las se-

cuencias que se desea reconocer se pueden solapar. Es decir, si el bit que recibe el siste-

ma en el instante actual es un 0 puede darse el caso de que dicho cero, pasados dos flan-cos de reloj, sirva para reconocer la segunda secuencia del enunciado.

De este modo son necesarios 5 estados que codifican la siguiente información:

–   S 0: Estado inicial de la máquina, aún no ha recibido ningún bit.

–   S 1:  x(t . 2)%0

–   S 2:  x(t . 2)%0p x(t .1)% 1

–   S 3:  x(t . 2)%1

–   S 4:  x(t . 2)%1p x(t .1)% 0

El diagrama de estados y las tablas de transición de estados y de salida a la que dalugar son:

98   Problemas de fundamentos y estructura de computadores

Page 115: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 115/569

Entrada Est. actual Próximo est. Salida

X Q 2   Q 1   Q 0   D 2   D 1   D 0   Z 

0 0 0 0 0 0 1 00 0 0 1 0 0 1 0

0 0 1 0 1 0 0 00 0 1 1 1 0 0 0

0 1 0 0 1 0 1 10 1 0 1 X X X X0 1 1 0 X X X X0 1 1 1 X X X X

1 0 0 0 0 1 1 01 0 0 1 0 1 0 01 0 1 0 0 1 1 11 0 1 1 0 1 1 0

1 1 0 0 0 1 0 01 1 0 1 X X X X1 1 1 0 X X X X1 1 1 1 X X X X

b)   Para la implementación canónica utilizamos un decodificador de 4 a 16 y puertas OR.

Capítulo 3  Sistemas secuenciales   99

Page 116: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 116/569

PROBLEMA 11

Sea un reconocedor de secuencias cuya salida% 1 cuando la entrada actual es 1, antes de

ella, en algún momento, ha habido un número cualquiera de ceros (incluso ninguno) y an-

tes de dicha secuencia hubo un uno. Por ejemplo:

Entrada: 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 1...

Salida: 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1...

a)   Dibujar el diagrama de estados.

b)   Realizar su implementación canónica.

Solución: 

a)   El diagrama de estados más sencillo es el siguiente:

–   S 0: Ha habido un número cualquiera de ceros o ninguno (estado inicial).

–   S 1: Ha aparecido el primer uno.

b)   La tabla de transición de estados y de salidas es por tanto:

X Q D Z  

0 0 0 00 1 1 00 0 1 00 1 1 1

Es fácil ver que la EC del próximo estado   D% X !Q   y que la EC de la salida

 Z % X  . Q  luego la implementación canónica es:

100   Problemas de fundamentos y estructura de computadores

Page 117: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 117/569

PROBLEMA 12

Implementar el siguiente diagrama de estados en el que la salida% estado actual.

a)   Mediante una implementación canónica usando un descodificador y puertas.

b)   Utilizando un contador módulo 8 con carga en paralelo y puertas NAND.

Solución: 

La siguiente tabla representa la entrada ( X ), el estado actual (Q2, Q1, Q0) y el próximo estado

( D2, D1, D0). La salida, según el enunciado es igual al estado actual. Además para resolver el

apartado b) se amplía con las entradas del contador:   L%Load,   C % Incrementar cuenta,

 E 2 E 1 E 0%Entradas en paralelo.

Entrada Est. actual Próximo est. Contador

X Q 2   Q 1   Q 0   D 2   D 1   D 0   L C E 2   E 1   E 0

0 0 0 0 0 0 1 0 1 X X X

0 0 0 1 0 1 0 0 1 X X X

0 0 1 0 0 1 1 0 1 X X X

0 0 1 1 1 0 0 0 1 X X X

0 1 0 0 0 0 0 1 X 0 0 0

0 1 0 1 X X X X X X X X

0 1 1 0 X X X X X X X X

0 1 1 1 X X X X X X X X

1 0 0 0 0 1 0 1 X 0 1 0

1 0 0 1 0 1 1 1 X 0 1 1

1 0 1 0 0 1 0 0 0 X X X

1 0 1 1 0 0 1 1 X 0 0 1

1 1 0 0 1 0 0 0 0 X X X

1 1 0 1 X X X X X X X X

1 1 1 0 X X X X X X X X

1 1 1 1 X X X X X X X X

Capítulo 3  Sistemas secuenciales   101

Page 118: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 118/569

a)   La implementación canónica es la siguiente:

b)   Es necesario calcular la suma de productos simplificada para las señales   L,   C ,   E 2,   E 1y  E 0.

102   Problemas de fundamentos y estructura de computadores

Page 119: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 119/569

PROBLEMA 13

Dado el sistema secuencial implementado en la figura, se pide responder razonadamente a

las siguientes cuestiones:

a)   Dar el diagrama de estados.

b)   Dar la E.C. más simplificada posible de la señal LOAD y CONTAR que usaríamos si

quisiésemos hacer una implementación con contador. ¿Sería conveniente usar un con-

tador para implementar el sistema?

Capítulo 3  Sistemas secuenciales   103

Page 120: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 120/569

c)   Suponer que hay un biestable más ( D3), a cuya entrada conectamos  X  y cuya salida se

une con la línea de dirección E 2 de la ROM. ¿Cuántos estados tendrá el sistema?, ¿es

una máquina de Mealy o de Moore?

Solución: 

La tabla de verdad es:

Entrada E.A. P.E. Salida Contador

X D 1   D 0   Q 1   Q 0   Z L C 

0 0 0 0 1 0 0 10 0 1 1 0 0 0 10 1 0 1 0 1 0 00 1 1 0 0 1 0 1

1 0 0 0 0 0 0 01 0 1 1 0 1 0 11 1 0 1 1 1 0 11 1 1 1 1 0 0 0

104   Problemas de fundamentos y estructura de computadores

Page 121: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 121/569

Aunque la EC de la señal Contar (C ) es algo compleja, L%0 por lo que no hay que gene-

rar las señales de entrada la contador. En conclusión la alternativa de una implementación con

es aceptable.

Si se añade el biestable  D3 como indica el enunciado entonces habría 3 bits para codificar

el estado y por tanto 8 estados. El bit más significativo del PE% X . Ahora Z (t ) no depende de

 X (t ), sólo del Estado Actual EA(t ) y por tanto se convertiría en una máquina de Moore.

PROBLEMA 14

Obtener la tabla de transición de estados y de salida del siguiente sistema secuencial y

realizar una implementación canónica usando sólo multiplexores de 4 a 1, negadores y

biestables.

Solución: 

Lo más importante a la hora de analizar un sistema secuencial es escribir correctamente la

cabecera de la tabla de verdad de transición de estados y de salidas. Mirando la red de puertas

NOR parece, salvo posteriores simplificaciones, que  Z (t ) depende de X (t ). Por tanto se trataría

de una máquina de Mealy y podemos juntar ambas tablas en una sola. Por último, puesto que

hay dos biestables el estado se codifica con dos bits.

Capítulo 3  Sistemas secuenciales   105

Page 122: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 122/569

En definitiva, la cabecera sería:

Entrada Estado Actual Próximo Estado Salida

X Q 1   Q 0   D 1   D 0   Z 

Para analizar el sistema combinacional que da lugar a la salida y al próximo estado con-

viene en primer lugar trabajar sobre el circuito equivalente de la figura, donde se han transfor-

mado las puertas NOR de los niveles impares por sus equivalentes AND con entradas nega-

das. Además se han eliminado los biestables para mayor claridad.

Aplicando la ley de Moore para la suma,  x! y% x . y, se puede sustituir algunas puertas

NOR por su equivalente AND con entradas negadas de modo que en un mismo cable se en-

frenten dos negadores y por tanto se anulen. De este modo la red resultante queda:

Calculando los puntos  T i obtenemos:

T 1% X  . Q1

T 2%Q1. Q0

T 3% X !T 1% X ! X  . Q1% X !Q1

T 4%

T 1!

T 2%

 X  .

Q1

!

Q1

.Q0

T 5%Q0! X 

 Z %T 3. T 4% ( X !Q1) X  . Q1% X  . Q1

 D1% X  . T 4% X ( X  . Q1!Q1. Q0)% X  . Q1(1!Q0)% X  . Q1

 D0%T 4. T 5% ( X  . Q1!Q1

. Q0)(Q0! X )% X  . Q1. Q0! X  . Q1

. Q0

106   Problemas de fundamentos y estructura de computadores

Page 123: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 123/569

La tabla de verdad queda:

Entrada E.A. P.E. Salida

X Q 1   Q 0   D 1   D 0   Z 

0 0 0 1 0 10 0 1 1 1 10 1 0 0 0 00 1 1 0 0 0

1 0 0 0 1 01 0 1 0 0 01 1 0 0 0 01 1 1 0 0 0

Para la implementación con MUX de 4 a 1 se eligen las variables de control  X  y  Q1.

PROBLEMA 15

Diseñar una pila de 4 bits, síncrona y con señal de Clear. La pila se controla con una señal

como se puede apreciar en la figura.

En una pila el primer bit que se recibe es el último que se genera, el segundo bit que se

recibe es el penúltimo que se genera y así sucesivamente hasta el último bit que se recibe,

que es el primero en generarse.

Solución: 

Se trata de modificar el diseño de un registro de desplazamiento para que se ajuste a la especi-

ficación.

Capítulo 3  Sistemas secuenciales   107

Page 124: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 124/569

Suponemos que cuando la pila está «vacía» contiene 4 ceros.

Por último, el diseño no incluye la señal de CLEAR para resultar más claro. Todos los

biestables deben recibir dicha señal, que generalmente es asíncrona y se activa en baja.

La señal de reloj (CK), como es habitual, se conecta en la marca triangular de los biesta-bles. Todos deben funcionar con la misma CK.

El diseño finalmente es:

PROBLEMA 16

Diseñar un registro de 4 bits con entrada y salida en paralelo y las siguientes funciones:

C 1   C 0   Q (t !1)

0 0   Q (t )0 1 2#Q (t )1 0 4#Q (t )1 1   E (t )

 AYUDA: Para multiplicar por dos un número binario desplazamos hacia la izquierda todos

los elementos una posición, introduciendo un cero por la derecha.

Para multiplicar por cuatro hay que desplazar dos posiciones e introducir dos ceros.

108   Problemas de fundamentos y estructura de computadores

Page 125: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 125/569

Solución: 

PROBLEMA 17

Diseñar el control de un brazo robot que ponga tapones a presión en botellas.

Las botellas se desplazan sobre una cinta, en cajas 3#3.

El robot realiza el siguiente trayecto sobre una caja:

n%El brazo se mueve una posición hacia abajo

p%El brazo se mueve una posición a la izquierda

m%El brazo se mueve una posición hacia arriba

ú%El brazo se mueve dos posiciones a la derecha y la cinta avanza hasta la próxima caja

de botellas.

Para ello utilizaremos un contador más las puertas y/ o módulos combinacionales que

creamos convenientes.

 AYUDA:  Considerar los cuatro movimientos como la   salida   del sistema secuencial que

implementamos con el contador y que serán entradas del sistema del brazo y la cinta (y de

los cuales  NO  nos piden nada).

Capítulo 3  Sistemas secuenciales   109

Page 126: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 126/569

Solución: 

Necesitamos un contador de 1 a 9. Para construirlo utilizaremos un contador módulo 16 modi-

ficándolo para que comience en 1 y acabe en 9.

Por otro lado mi sistema produce 4 salidas diferentes {m,  n,  p, ú}, por lo que necesita-

mos 2 bits para codificarlas y un sistema combinacional que las implemente.

Salida  Estado en el que

se produce  Codificación

m   4, 5 0 0n   1, 2, 7, 8 0 1p   3, 6 1 0ú   9 1 1

Utilizando una puerta AND para truncar la cuenta y un descodificador 4 a 16 y puertas OR

para generar la salida Z % [ Z 1, Z 0], que codifica la información que recibe tanto el brazo como

la cinta, el diseño quedaría como muestra la figura.

PROBLEMA 18

Diseñar un sistema secuencial que recibe bits en serie con cada flanco de reloj y da sali-

da%1 cuando el número binario formado por los 4 últimos bits que han entrado, siendo

 x(t ) el bit más significativo, es múltiplo del 3, del 5 o del 7. El sistema tiene 2 entradas

adicionales (S 1  y  S 0) para seleccionar de cuál debe ser múltiplo.

Usar un descodificador de 4 entradas y un MUX de 4 a 1, puertas y los biestables  D

que consideres necesarios.

 AYUDA: No es necesario hacer ningún diagrama de estados.

110   Problemas de fundamentos y estructura de computadores

Page 127: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 127/569

Solución: 

El sistema se compone de los siguientes módulos. Un registro con carga en serie y salida en

paralelo de 4 bits y un subsistema combinacional que recibe los 4 últimos bits recibidos y una

entrada de dos bits que codifica el divisor que queremos probar del siguiente modo:

Múltiplo: 0 0 0 1 1 0

Divisor: 3 5 7

Para el registro se utilizan biestables  D  y para el subsistema combinacional se utiliza el

descodificador y el MUX de 4 a 1. El descodificador recibe los 4 últimos bits que forman un

número binario entre 0 y 15. Una puerta OR agrupa todas las líneas de salida del descodifica-

dor múltiplo de 3. Igualmente otras dos puertas OR agrupan las líneas múltiplo de 5 y de 7.

Finalmente cada una de estas puertas OR se conecta al MUX de 4 a 1, en la entrada de datos

adecuada según la codificación de los divisores. El resultado es:

Capítulo 3  Sistemas secuenciales   111

Page 128: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 128/569

PROBLEMA 19

Diseñar un generador de secuencias con el siguiente funcionamiento:

Mientras la entrada G  sea igual a 1 se genera cíclicamente la secuencia de 4 bits defini-da por el usuario, {u3, u2, u1, u0}; si G  es igual a 0 la secuencia genera continuamente el bit

en el que se quedó.

Dar una descripción modular del generador y especificar mediante un diagrama de es-

tados los elementos secuenciales que aparezcan.

Solución: 

El sistema se compone de un contador módulo 4 que se avanza cuando la señal  G% 1 y se

detiene en un estado cuando  G%0. La salida del contador coincide con el estado en el que se

encuentra. Dicho estado actúa como señales de selección sobre un multiplexor al que se co-

nectan las entradas de usuario. Se ha supuesto que el primer bit en generarse es  u3.

El resultado es:

112   Problemas de fundamentos y estructura de computadores

Page 129: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 129/569

PROBLEMA 20

La torre de control de un aeropuerto rastrea una circunferencia de radio 60 millas cada

segundo. Cuando detecta un avión por debajo de los 4000 pies le envía un código por radio

indicándole el sector en el que se encuentra (todos los bits se envían al mismo tiempo, nouno tras otro).

El sistema de aterrizaje del avión dispone de un dispositivo que detecta cuándo se pasa

de un sector a otro y genera mensajes, según sea la transición, siguiendo la tabla.

Mensaje Transición de sectores

Acercamiento Del 0 al 1 y del 1 al 2

Alejamiento Del 3 al 1 y al 2, del 2 al 1 y del 1 al 0

Aproximación final Del 2 al 3

Aproximación de emergencia Del 1 al 3

Aproximación negada Del 0 al 3

Salir de vía aérea Del 3 al 2

Diseñar el sistema que genera la señal de cambio de sector y los mensajes en función

de los códigos que va recibiendo de la torre de control usando biestables  D   y elementos

combinacionales. El mensaje debe permanecer hasta que se produzca uno nuevo. Explica

claramente la codificación realizada.

 NOTA: No es necesario hacer diagrama de estados.

Capítulo 3  Sistemas secuenciales   113

Page 130: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 130/569

Solución: 

En primer lugar se codifican los diferentes mensajes en binario. Necesitamos 3 bits. Una posi-

ble codificación es:

000%   Acercamiento001%   Alejamiento

010%   Aprox. final

011%   Aprox. de emergencia

100%   Aprox. negada

101%   Salir de la vía aérea

Respecto a los sectores, al haber 4 serían necesarios dos bits. La codificación es directa-

mente en binario.

El sistema debe almacenar continuamente el penúltimo mensaje recibido para compararlocon el último y detectar un cambio (Señal  C ) así como el mensaje que se debe generar en

dicho caso. Para almacenar el sector en el que se encuentra se deben utilizar dos biestables D.

Finalmente, para que el último mensaje esté activo hasta que se genere uno nuevo, es decir,

hasta que haya una nueva señal  C , se debe almacenar también. Puesto que consta de 3 bits

necesitaremos 3 biestables. Un descodificador activa una de las 6 luces del cuadro de contro-

les del avión según el código que recibe.

El diseño final es el siguiente:

114   Problemas de fundamentos y estructura de computadores

Page 131: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 131/569

El sistema combinacional utilizado viene especificado por la siguiente tabla de verdad:

Sector antes Sector ahora Mensaje Cambio

C 1(T . 1)   C 0(T . 1)   C 1(T )   C 0(T )   M 2   M 1   M 0   C 

0 0 0 0 X X X 00 0 0 1 0 0 0 10 0 1 0 X X X X0 0 1 1 1 0 0 1

0 1 0 0 0 0 1 10 1 0 1 X X X 00 1 1 0 0 0 0 10 1 1 1 0 1 1 1

1 0 0 0 X X X X1 0 0 1 0 0 1 1

1 0 1 0 X X X 01 0 1 1 0 1 0 1

1 1 0 0 0 0 1 11 1 0 1 0 0 1 11 1 1 0 1 0 1 11 1 1 1 X X X 0

3.8 Problemas propuestos

PROBLEMA  1

Queremos diseñar un juego de azar compuesto por 2 botones ( J 1  y   J 0) y una pantalla que se

ilumina cuando el jugador gana.

Tiene el aspecto externo de la figura y funciona del siguiente modo:

Apretando   J 1   ponemos en marcha un contador que genera la secuencia {2, 3, 6, 7} de

forma cíclica y tiene una frecuencia de reloj de 100 Hz.

Apretando  J 0 ponemos en marcha otro contador. Este genera la secuencia {1, 3, 7, 2, 5, 6},

también de forma cíclica, y su frecuencia es de 250 Hz.

Si al soltar los dos botones coinciden los números de sendos contadores se iluminará la

pantalla y el jugador habrá ganado.

Hacer un diseño modular del aparato.

Dibujar el diagrama de estados de ambos contadores razonando si se trata de máquinas de

Mealy o de Moore.

Capítulo 3   Sistemas secuenciales   115

Page 132: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 132/569

Implementar el Sistema Combinacional que provoca la salida.

¡¡No se recomienda hacer una tabla de verdad!!

PROBLEMA 2

Dado el siguiente sistema secuencial:

– Si  X (t . 2)%b     X (t .1)% b     X (t )% b, salida%1,

– Si  X (t . 2)%b     X (t .1)% b     X (t )% a, salida%2,

– Si  X (t . 2)%b     X (t .1)% a     X (t )% a, salida%3,

– En cualquier otro caso, salida%0.

Se pide:

Dibujar el diagrama de estados de la máquina.

Escribir la tabla de transición de estados y la tabla de verdad.

Realizar una implementación canónica usando descodificadores y puertas.

PROBLEMA 3

Diseñar un sistema secuencial cuya salida sea:

– Igual a la entrada bit a bit hasta el instante en que hayan entrado dos unos consecutivos.

– A partir de ese momento la salida será el negado de la entrada hasta que el sistema

reciba dos ceros consecutivos.

— Desde ese momento la salida volverá a ser igual a la entrada.

Ejemplo:    Entrada: 0 1 0 1 1 0 1 0 1 0 0 1 0 1 1 1...

Salida: 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0...

Se pide:

a)   Dibujar el diagrama de estados y la tabla de transición del sistema.

b)   Realizar una implementación canónica usando biestables D, descodificadores y puertas R.

c)   Dar la E.C. más simplificada posible de la señal LOAD que usaríamos si quisiésemos

hacer una implementación con contador. ¿Merece la pena usar un contador para imple-

mentar el sistema? (Razona la respuesta.)

 NOTA: Se valorará más un diagrama de estados minimizado.

PROBLEMA 4

Diseñar un registro de 3 bits con capacidad de desplazamiento a la izquierda, y carga en para-

lelo usando multiplexores y biestables. El registro tendrá una entrada de control de 1 bit que

indicará la función a realizar. Además tendrá entrada para la carga en serie y paralelo.

PROBLEMA 5

Sea un sistema secuencial  S 1  que da salida  Z 1%1 si los cuatro últimos bits que han entrado

son 1001.

116   Problemas de fundamentos y estructura de computadores

Page 133: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 133/569

Sea un sistema secuencial  S 2 que da salida  Z 2% 0 si los tres últimos bits que han entrado

son 010.

Sea un sistema secuencial  S 3 que genera la secuencia 1 0 0 mientras su entrada esté a 1.

a)   Dibujar el diagrama de estados de cada uno de los sistemas secuencialesb)   Dar la tabla de transición de estados y de salida de S 2.

c)   Diseñar el sistema  S 1 y  S 2 usando biestables  D  y las puertas lógicas que necesites.

PROBLEMA 6

Implementar el diagrama de estados dado utilizando un contador y los módulos combinacio-

nales que sean necesarios. La salida es igual al estado actual.

PROBLEMA 7

Diseñar un reconocedor de secuencias tal que la salida es:

 Z 1%1 si [ x(t . 3), x(t .2), x(t .1), x(t )] es un número en notación C 2 con valor abso-

luto mayor o igual que 3.

 Z 0%1 si [ x(t . 3),   x(t . 2),   x(t .1),   x(t )] es un número que representa un código

BCD.

 Z 1% Z 0%0 en cualquier otro caso.

PROBLEMA 8

Diseñar un sistema secuencial que admita bits en serie y da salida%1 sólo cuando el número

binario formado por los cuatro últimos bits recibidos, { x(t ), x(t . 1), x(t . 2), x(t .3)}, sien-

do x(t ) el bit más significativo, sea igual a 0, 4, 8, 10, 13 o 15. Utilizar únicamente biestables

 D, puertas NOT (si son necesarias) y MUXs de 4 a 1.

PROBLEMA 9

Especificar mediante un diagrama de estados un sistema secuencial que admita de salida

 Z %1 sólo cuando  x(t )% 1p x(t .1)% 0p x(t . 2)%1p x(t .3)% 1.

Capítulo 3  Sistemas secuenciales   117

Page 134: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 134/569

PROBLEMA 10

Diseñar un banco de 32 registros de 8 bits tal que se pueda escribir en uno de ellos y leer de

dos distintos en el mismo ciclo de reloj.

Señales:– SE: Selección de escritura.

– SL1: Selección de Lectura del primer registro.

– SL2: Selección de Lectura del segundo registro.

– D in: Datos de entrada.

– Dout 1: Dato de salida del primer registro.

– Dout 2: Dato de salida del segundo registro.

– E: Enable (capacitación).

– Escribir: Señal de escritura.

118   Problemas de fundamentos y estructura de computadores

Page 135: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 135/569

Una vez que se han estudiado y comprendido los distintos módulos digitales y secuenciales, el

lector ya debe tener asimilados los conceptos fundamentales de sistemas digitales y su diseño

a través de una relación entre las entradas y las salidas del sistema. Concibiendo el diseño de

un procesador, o incluso un computador completo, como un conjunto de sistemas digitales

conectados entre sí, el paso previo al diseño de un computador sencillo es el diseño algorítmi-

co de sistemas digitales.

4.1 Esquema general de un sistema diseñadoalgorítmicamente

A la hora de realizar el diseño algorítmico de un sistema digital debemos introducir dos con-

ceptos:

Ruta de datos.

Unidad de control.

La ruta de datos o procesador del sistema se encarga de procesar la información de entra-da y proporcionar la información de salida. Para generar esta información de salida debe se-

guir los pasos que la unidad de control le indique. Para ello la unidad de control generará las

señales necesarias para que los datos se procesen correctamente y se las enviará a la ruta de

datos. El diseño algorítmico de un sistema consiste en, partiendo de una especificación del

sistema en forma de algoritmo o pseudocódigo, obtener la ruta de datos y la unidad de control

que realizan la funcionalidad descrita por el algoritmo.

El esquema general de un sistema diseñado algorítmicamente aparece en la figura de la

página siguiente.

Page 136: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 136/569

La ruta de datos estará compuesta por un conjunto de módulos digitales combinacionales

y secuenciales que procesan la información. Estos módulos serán los utilizados y diseñados en

los capítulos anteriores:

Multiplexores y demultiplexores.

Codificadores y decodificadores.

Puertas lógicas y sistemas combinacionales.

Comparadores.

Registros de carga y/ o desplazamiento.

Contadores.

Sumadores.

Etcétera.

Asociados a todos ellos existen generalmente un conjunto de señales que los controlan.

Estas señales las genera la unidad de control en cada uno de los pasos que debe seguir la ruta

de datos. El sistema seguirá una serie de pasos para cumplir el algoritmo que serán marcadospor esta unidad de control, que será por tanto un sistema secuencial en el que cada estado

corresponde con uno de los pasos necesarios para que se resuelva el algoritmo y en el que el

proceso de diseño será el típico asociado a un sistema secuencial. De igual forma la unidad de

control proporcionará a la ruta de datos las señales de carga, desplazamiento, selección, etc.,

que correspondan en cada estado.

120   Problemas de fundamentos y estructura de computadores

Page 137: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 137/569

4.2 Proceso de diseño

4.3 Problemas resueltos

PROBLEMA 1

Dados el siguiente algoritmo y la siguiente ruta de datos (U.P.) que lo implementa:

 Ap dato 1

 Bp dato 2

If ( A% B) then

 Ap (2*A)! ( B/ 2)

Else

 A% A

Capítulo 4  Introducción al diseño algorítmico de sistemas   121

Page 138: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 138/569

Se pide dibujar el diagrama de estados de la U.C. y dar la tabla de verdad con los valores

que toman las señales de control en cada estado.

La U.C. genera, además de las señales indicadas, una señal de FIN.

 AYUDA: Funcionamiento de los registros.

C 1   C 0   Función

0 0 Cargar

0 1   A

1 0   @

1 1 –Nada–

Solución: 

A la hora de saber cuántos estados tiene la unidad de control, lo primero que tenemos que

identificar son los registros de datos ya que son ellos los que van a marcar el número de ciclos

del proceso. Cada vez que un dato llega a un registro se produce un almacenamiento con la

llegada del reloj, o lo que es lo mismo hasta que no haya un ciclo nuevo no puede atravesar el

registro.

Hay que decidir cómo se implementa la unidad de control, lo habitual es hacerlo como

una máquina de Moore en el que cada estado tenga sus correspondientes valores de salida yen ocasiones se pueden establecer estados en los que realmente sólo se hagan cálculos combi-

nacionales y obtención de condiciones.

Debemos por tanto establecer el número de estados y para ello construimos primero el

diagrama de flujo el algoritmo. De él prácticamente obtenemos el diagrama de estados. En

todos los problemas supondremos que existe una señal de inicio que llevaría al sistema al

estado inicial, aunque no la representemos en todos los diagramas de estado para obtener dia-

gramas más claros y didácticos.

122   Problemas de fundamentos y estructura de computadores

Page 139: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 139/569

También es conveniente identificar los estados y dar una breve explicación de la actuación

de la ruta de datos. En este caso los estados son 4 según la siguiente tabla.

Estado 0 (S 0) Carga de datos

Estado 1 (S 1) Comparación

Estado 2 (S 2) Cálculo de la operación

Estado 3 (S 3) Fin

El esquema de conexión entre la ruta de datos y la unidad de control será:

Capítulo 4  Introducción al diseño algorítmico de sistemas   123

Page 140: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 140/569

Y el diagrama de estados con la señal de inicio explícita:

Cada vez que se quiera comenzar se debe pasar la señal de borrado (Clear) de los registros

a 0 y luego a 1 para regresar al estado 0. La correspondencia de los estados con las salidas

será:

Estado MUX   C 1A

  C 0A

  C 1B 

  COB Fin

0 1 0 0 0 0 0

1 X 1 1 1 1 0

2 0 1 0 0 1 0

3 0 0 0 X X 1

Una opción interesante sería hacer la que la señal de Clear coincida con la de Inicio, de

esta forma podríamos reducir el tamaño de las tablas de transición de estados ya que, al ser

asíncrona no aparecería explícitamente en el diagrama.

PROBLEMA 2

Dado el siguiente algoritmo:

Contp 8;

 Apdato;

Repeat

 BpCont* 2;

 Decrementar Cont ;

Until  Bn A

124   Problemas de fundamentos y estructura de computadores

Page 141: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 141/569

Se pide:

Diseñar la unidad de proceso usando un sumador/ restador y multiplexores como únicos

elementos combinacionales (ver gráfico). Suponer números de 8 bits en complemento a 2.

Dibujar el diagrama de estados de la unidad de control y explicar qué señales de control se

activarían en cada estado.

Solución: 

La principal dificultad radica en el diseño de la ruta de datos con la restricción impuesta por el

enunciado. Los elementos hardware que compondrán la misma son:

3 Registros para Almacenar  A,  B  y Cont (es un registro normal de 8 bits).

– 1 sumador/ restador para hacer las operaciones de Cont*2 (Cont!Cont), Decremen-

tar Cont (Cont. 1) y la generación de la señal de comparación. Para esta señal se

realiza la operación  B. A y si el resultado empieza por 0 ( R7% 0) significará que la

resta es positiva y que por tanto   Bn A  que es la condición que el algoritmo debe

evaluar.

Capítulo 4  Introducción al diseño algorítmico de sistemas   125

Page 142: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 142/569

Traduciendo el algoritmo al diagrama de flujo obtendremos fácilmente el diagrama de es-

tados:

126   Problemas de fundamentos y estructura de computadores

Page 143: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 143/569

Y la tabla de salidas será:

Estado   C B    C A   C C    M 3   M2   M 1   M 0   Sumar/Restar Fin

S 0   0 1 1 0 X X X X 0

S 1   1 0 0 X 1 0 0 1

S 2   0 0 1 1 1 0 1 0 0

S 3   0 0 0 X 1 0 0 0

S 4   0 0 0 X X X X X 1

PROBLEMA 3

La unidad de proceso dada implementa, entre otros, el siguiente algoritmo:

while  Ba 0 do

begin

 Bp A! 1;

 Ap 2 . A;

 Bp B/ 2;

 Ap A B;

end;

Los registros A  y  B  están inicializados a un valor dado antes de empezar a ejecutarse el

algoritmo.

C 2   C 1   C 0   Op.   C 2   C 1   C 0   Op.

0 0 0   A!1 0 1 0   B A

0 0 1   A!B    1 0 0   C 2(A)

0 1 0   A@   1 0 1   AB 

Se pide:

a)   Diseñar detalladamente la A.L.U.

b)   Diseñar la unidad de control (i.e.: dar un diagrama de flujo y una tabla de salidas).

Capítulo 4  Introducción al diseño algorítmico de sistemas   127

Page 144: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 144/569

Solución: 

a)   La unidad aritmético-lógica debe seguir la tabla del enunciado. La parte más importantees la utilización del sumador. En el diseño de la figura se utiliza el sumador para realizar3 operaciones:

 A! 1.

 A! B.

C 2( A): Para obtener el complemento a 2 invertimos bit a bit y sumamos 1.

Para obtener la señales de control de los multiplexores de entrada al sumador, sólodebemos simplificarlos de acuerdo a la tabla:

C 2   C 1   C 0   M A   M B 

0 0 0 0 1

0 0 1 0 0

0 1 0 X X

0 1 1 1 1

1 0 0 X X

1 0 1 X X

1 1 0 X X

1 1 1 X X

128   Problemas de fundamentos y estructura de computadores

Page 145: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 145/569

b)   Comencemos por el diagrama de flujo, traduciendo el algoritmo:

Las señales de control se pueden representar de la siguiente forma:

Capítulo 4  Introducción al diseño algorítmico de sistemas   129

Page 146: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 146/569

Y la tabla de salidas será:

Estado   LB    LA   C 2   C 1   C 0   Fin

S 0   1 1 X X X 0

S 1   0 0 1 1 1 0

S 2   1 0 0 0 0 0

S 3   0 1 0 1 0 0

S 4   1 0 0 1 1 0

S 5   0 1 1 0 1 0

S 6   0 0 X X X 1

PROBLEMA 4

Diseñar una U.C. adecuada para que la U.P. de la figura ejecute el siguiente algoritmo:

Reg A:% A;

Reg B:% B;

Repeat

 A% 2*A;

 B:% B/ 2;

if  A% B then B:% A! B;

Until  Bb A

a)   Realiza el diagrama de estados detallando las entradas y salidas.

b)   Realiza una tabla de salidas de la U.C.

 AYUDA: True es una señal de condición, resultado de las operaciones ‘% ’ y ‘b ’ y toma

el valor 1 cuando A% B y  Ab B respectivamente.

130   Problemas de fundamentos y estructura de computadores

Page 147: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 147/569

Solución: 

De la ruta de datos especificada en el enunciado podemos obtener el diagrama de conexión

entre la ruta de datos y la unidad de control.

Capítulo 4  Introducción al diseño algorítmico de sistemas   131

Page 148: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 148/569

Estado SEL A C A1

C A0

SEL B C B 1

C B 0

ALU1   ALU0   Fin

S 0   1 0 0 1 0 0 X X 0

S 1   X 1 1 X 1 1 1 1 0

S 2   X 1 0 X 0 1 X X 0

S 3   X 1 1 X 1 1 1 0 0

S 4   X 1 1 0 0 0 0 0 0

S 5   X 1 1 X 1 1 X X 1

PROBLEMA 5

Diseñar una U.P. y las conexiones a la U.C. para ejecutar el algoritmo con datos de 8 bits.

Dibuja también el diagrama de estados de la unidad de control indicando qué valores

toman las entradas y salidas.

si ( Bn A) entonces

C p 4*A

sino

C p ( A! B)/ 4

132   Problemas de fundamentos y estructura de computadores

Page 149: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 149/569

Solución: 

Partiendo del algoritmo necesitamos saber en primer lugar qué módulos hardware necesita-

mos:

3 registros para almacenar   A,   B  y  C . Además  C  debe permitir hacer desplazamientospara poder realizar las operaciones de multiplicación y división por 4 respectivamente.

Recordemos que desplazar a la derecha (0 A) es equivalente a multiplicar por 2 y que

desplazar hacia la izquierda (@ 0) da como resultado multiplicar por 2 el dato almace-

nado en el registro.

Un comparador para saber si  Bn A.

Un sumador para realizar la operación  A! B.

A continuación debemos conectar estos elementos.

Las señales de control y de condición son por lo tanto:

C  B: Señal de carga del registro  B.

C  A: Señal de carga del registro  A.C C 1: Señal de control 1 del registro  C .

C C 0: Señal de control 0 del registro  C .

GE : Señal que indica que B% A.

 M : Selección del multiplexor.

A partir del diagrama algorítmico podemos obtener casi de inmediato el diagrama de

estados.

Capítulo 4  Introducción al diseño algorítmico de sistemas   133

Page 150: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 150/569

Page 151: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 151/569

Y la tabla de salidas será:

Estado   C B    C A   C C 1

C C 0

M Fin

S 0   1 1 0 0 X 0

S 1   0 0 0 0 X 0

S 2   0 0 0 0 1 0

S 3   0 0 0 1 X 0

S 4   0 0 0 1 X 0

S 5   0 0 0 0 0 0

S 6   0 0 1 0 X 0

S 7   0 0 1 0 X 0

S 8   0 0 1 1 X 1

PROBLEMA 6

Sea la U.P. de la figura. Diseñar la unidad de control necesaria para ejecutar el siguiente

algoritmo. Para ello realizar el diagrama de estados indicando claramente las entradas y

una tabla con las salidas en cada uno de ellos.

 A:% dato1;   B:% dato2;

While  A% B

 B:% B. A;

If  B%0 then

 A:% A/ 2;

End

Capítulo 4  Introducción al diseño algorítmico de sistemas   135

Page 152: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 152/569

Page 153: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 153/569

Capítulo 4  Introducción al diseño algorítmico de sistemas   137

Page 154: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 154/569

Estado MA RA MB RB OP Fin

S 0   1 1 1 1 XX 0

S 1   X 0 X 0 01 0

S 2   X 0 0 1 01 0

S 3   X 0 X 0 11 0

S 4   0 1 X 0 10 0

S 5   X 0 X 0 XX 1

PROBLEMA 7Diseñar algorítmicamente un sistema que realice operaciones sobre dos datos de 16 bits. El

sistema tendrá como entrada, además de los operandos, un código que especifique cuál de

las 4 operaciones fundamentales (suma, resta, multiplicación o división) debe realizar. El

resultado se almacenará en un registro de resultado y el diseñador dispone de módulos de

suma/ resta y multiplicación/ división ya implementados.

Solución: 

La especificación del sistema en forma de bloques es la siguiente:

A partir de él podemos obtener fácilmente el algoritmo que debe manejarlo pero previa-

mente debemos codificar las operaciones, dado que son 4 operaciones con 2 bits de código de

operación será suficiente y podemos por ejemplo definirlo según la tabla siguiente:

Código Operación

00 Suma

01 Resta

10 Multiplicación

11 División

138   Problemas de fundamentos y estructura de computadores

Page 155: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 155/569

Page 156: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 156/569

Si utilizamos el código almacenado en el registro OP, podemos diseñar una unidad de

control más sencilla reduciendo el número de estados. Las señales de control serán:

C  A: señal de carga del registro RA que contiene uno de los operandos.

C  B: señal de carga del registro RB que almacenará el otro operando.C C : señal de carga del registro de resultado, en la figura RC.

C OP: señal de carga del registro OP que almacena el código de operación.

En este caso el diagrama de estados es inmediato:

El estado  S 0  es el estado inicial y en él se cargan los datos en los registros, en el   S 1  se

realiza el cálculo aritmético y se almacena el resultado y  S 2  es un estado final en el que elsistema permanecerá estable, almacenando el resultado, mientras no se reciba una señal de

inicio para realizar otra operación. La tabla de salidas será por lo tanto la representada en la

tabla siguiente:

Estado   C A   C B    C C    C OP

  Fin

S 0   1 1 0 1 0

S 1   0 0 1 0 0

S 2   0 0 0 0 1

Un aspecto interesante de este ejercicio es observar cómo un computador es al fin y al

cabo un sistema algorítmico complejo. En este ejemplo se trata de un computador muy senci-

llo con 4 operaciones únicamente, pero que se codifican con un código de operación y unos

operandos almacenados en registros. En los temas sucesivos se ampliarán estos conceptos pa-

ra diseñar computadores y rutas de datos más complejas que constituyan lo que conocemos

como máquinas sencillas.

140   Problemas de fundamentos y estructura de computadores

Page 157: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 157/569

PROBLEMA 8

Un cierto algoritmo se ejecuta en la UP dada siguiendo el diagrama de flujo mostrado.

Programa la tabla de señales de control y construye el circuito secuencial que implementa

el estado actual de la UC utilizando un contador y los elementos combinacionales quequieras. Indica el funcionamiento del registro  R con una tabla.

Solución: 

Capítulo 4  Introducción al diseño algorítmico de sistemas   141

Page 158: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 158/569

Estado   Q 2Q 1Q 0   M AM B    LALB    R 1R 0   Fin

S 0   000 11 11 00 0

S 1   001 XX 00 00 0

S 2   010 XX 00 11 0

S 3   011 XX 00 01 0

S 4   100 00 11 00 0

S 5   101 XX 00 00 1

 — 110 — — — —

 — 111 — — — —

142   Problemas de fundamentos y estructura de computadores

Page 159: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 159/569

B 0   Q 2Q 1Q 0   E 2E 1E 0   L C 

0 000 XXX 0 1

0 001 101 1 X

0 010 XXX 0 1

0 011 XXX 0 1

0 100 001 1 X

0 101 101 0 0

0 110 XXX X X

0 111 XXX X X

1 000 XXX 0 1

1 001 XXX 0 11 010 XXX 0 1

1 011 XXX 0 1

1 100 001 1 X

1 101 101 0 0

1 110 XXX X X

1 111 XXX X X

R 1R 0   Acción

00 Nada

01   A

10   @

11 Carga del dato

Capítulo 4  Introducción al diseño algorítmico de sistemas   143

Page 160: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 160/569

PROBLEMA 9

En la U.P. de la figura se desea ejecutar el siguiente algoritmo.

a)   Identificar y nombrar las señales de control y de condición sobre el dibujo de la U.P.

b)   Dibujar un diagrama de estados de la U.C. necesaria para ejecutar el algoritmo.

c)   Programar la tabla de salidas de la U.C.

RApdatoA;

RBpdatoB;

while RA%RB

RCpRB;

RApRC;

RCpRA!RB;

end

Solución: 

a)   Observando el algoritmo y la ruta de datos podemos deducir claramente las señales de

carga de los registros y de los multiplexores. La parte más compleja es delimitar las seña-

les que controlan la Unidad Aritmético Lógica (ALU). Para establecerlas veamos quéoperaciones tiene que realizar dicha ALU:

 A. B para calcular si  A% B, esto activará el bit  Z  (única señal de condición) que val-

drá 1 cuando el resultado de la resta sea cero, es decir cuando  A y  B  tengan el mismo

valor.

144   Problemas de fundamentos y estructura de computadores

Page 161: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 161/569

 A! B para realizar la operación RCpRA!RB.

Dejar pasar RB para cargarlo en RC.

Aunque no es necesario y dado que tenemos dos señales de control y están disponibles

4 opciones codificaremos también una combinación de las señales de control de ALU

para dejar pasar el valor del registro RA.

Las señales de control serán por lo tanto  M 1 para el multiplexor de paso a RA,  M 2 para el

multiplexor de paso a RB,  L A señal de carga del registro RA,  L B señal de carga del regis-

tro RB, LC  señal de carga del registro RC, y OP1OP0 para controlar la ALU de acuerdo a

la siguiente tabla:

OP1OP2   Acción de la ALU

00 Pasa  A

01   A!B 

10   A.B 

11 Pasa  B 

La figura muestra dónde van conectadas las señales de control en la ruta de datos.

Capítulo 4  Introducción al diseño algorítmico de sistemas   145

Page 162: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 162/569

Y el esquema general de conexión entre la ruta de datos y la unidad de control será

por lo tanto:

b)   Como en el resto de problemas obtenemos en primer lugar el diagrama de flujo del algo-

ritmo a partir del cual obtendremos el diagrama de estados, casi de inmediato.

146   Problemas de fundamentos y estructura de computadores

Page 163: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 163/569

c)   La tabla de salida para este diagrama de estados incluyendo la señal de FIN de operación

será la siguiente. Se incluye también en la tabla la codificación escogida para los estados

(q2 q1 q0).

Estado   Q 2Q 1Q 0   M 1   M 2   LA   LB    LC    OP1OP0   Fin

S 0   000 1 1 1 1 0 XX 0

S 1   001 X X 0 0 0 10 0

S 2   010 X X 0 0 1 11 0

S 3   011 0 X 1 0 0 XX 0

S 4   100 X X 0 0 1 01 0

S 5   101 X X 0 0 0 XX 1

 — 110 — — — — — — —

 — 111 — — — — — — —

Capítulo 4  Introducción al diseño algorítmico de sistemas   147

Page 164: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 164/569

PROBLEMA 10

Diseñar la unidad de proceso y su correspondiente unidad de control para ejecutar el si-

guiente algoritmo:

Algoritmo:

 A:% dato1;   B:% dato2;   C % dato3

if  A% B

if  C %2

 B:% B*2;

else

 B% B/ 2

endif 

else

 A:% A/ 2;endif 

Para ello realizar el diagrama de estados indicando claramente las entradas y una tabla

con las salidas en cada uno de ellos. Realizar la implementación completa del sistema.

Solución: 

Lo primero que hay que identificar son los elementos hardware que necesitamos. En este caso

necesitaremos tres registros para almacenar los datos, un comparador de  A y  B, un compara-

dor de  C  con 2. Si los registros  A  y  B  son de desplazamiento, pueden realizar las operaciones

de multiplicación y división por lo que no haría falta ningún módulo hardware adicional. El

organigrama del algoritmo es

148   Problemas de fundamentos y estructura de computadores

Page 165: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 165/569

Si no tenemos ninguna restricción podemos cargar los datos después de compararlos aun-

que esto no es lo más seguro, como regla general intentaremos tener almacenados los datos

para poder partir de un estado inicial de borrado. En este organigrama los estados se identifi-

carían con los rectángulos ya que son almacenamiento de valores en registro.

Estado   S 1   S 0   C 0A

  C 1A

  C 0B 

  C 1B 

  C 0C 

  C 1C 

  Fin

S 0   0 0 0 0 0 0 0 0 0

S 1   0 1 1 1 0 1 1 1 1

S 2   1 0 1 1 1 0 1 1 1

S 3   1 1 0 1 1 1 1 1 1

C 0 A%S 0 S 1

C 1 A%S 0!S 1

C 0 B%S 1

C 1 B%S 0

C 0C %C 1C %C 1 A%Fin

Capítulo 4  Introducción al diseño algorítmico de sistemas   149

Page 166: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 166/569

Inicio IG1   IG2   S 1   S 0   S 1(T !1)   S 0(T !1)

0 0 0 0 0 1 1

0 0 0 0 1 0 1

0 0 0 1 0 1 0

0 0 0 1 1 1 1

0 0 1 0 0 1 1

0 0 1 0 1 0 1

0 0 1 1 0 1 0

0 0 1 1 1 1 1

0 1 0 0 0 1 0

0 1 0 0 1 0 1

0 1 0 1 0 1 0

0 1 0 1 1 1 1

0 1 1 0 0 0 1

0 1 1 0 1 0 1

0 1 1 1 0 1 0

0 1 1 1 1 1 1

1 0 0 0 0 0 0

1 0 0 0 1 0 0

1 0 0 1 0 0 0

1 0 0 1 1 0 0

1 0 1 0 0 0 0

1 0 1 0 1 0 0

1 0 1 1 0 0 0

1 0 1 1 1 0 0

1 1 0 0 0 0 0

1 1 0 0 1 0 0

1 1 0 1 0 0 0

1 1 0 1 1 0 0

1 1 1 0 0 0 0

1 1 1 0 1 0 0

1 1 1 1 0 0 0

1 1 1 1 1 0 0

Esta tabla se podría simplificar añadiendo un estado.

150   Problemas de fundamentos y estructura de computadores

Page 167: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 167/569

Ahora debemos simplificar las señales de cambio de estado.

Mediante mapas de Karnaugh podemos llegar a las expresiones siguientes:

S 1(t ! 1)% Inicio . (S 1!S 0. IG2!S 0

. IG1)

S 0(t ! 1)% Inicio . (S 0!S 1. IG2!S 1

. IG1)

PROBLEMA 11

Diseñar el sistema de cambio de una máquina automática que reciba monedas de 2 euros, 1

euro, 50 céntimos, y 20 céntimos. El sistema dispone de monedas de 1 euro y 50, 20 y 10

céntimos. Para la ruta de datos se utilizarán 4 contadores y un registro que almacenen el

importe de entrada y el cambio.

Solución: 

Lo primero que debemos hacer es obtener el algoritmo, para ello establecemos que el valor de

la moneda de entrada se almacena en una variable M . También debemos establecer una estra-

tegia de cambio, es decir cuántas monedas de cada tipo vamos a proporcionar. Nuestra deci-

sión se encuentra recogida en la tabla siguiente en la que la variable  U  expresa el número de

monedas de 1 euro,  C  el número de monedas de 50 céntimos,  V  el número de monedas de 20

céntimos y D  el número de monedas de 10 céntimos que se van a devolver:

Moneda   M U C V D  

2 e   00 2 0 0 0

1 e   01 0 2 0 0

0,50 e   10 0 0 2 1

0,20 e   11 0 0 0 2

El algoritmo será por tanto:

 M %   Data in

if  M %0 then  U %2;

else if  M % 1 then  C % 2;

else if  M % 2 then  V %2;  D%1;

else  D%2;

end if 

Cada uno de los registros contadores se activará con una señal y al final del proceso debe-

rá contener un valor igual a la cantidad de monedas que debe devolver el sistema. La ruta de

datos en este caso es muy sencilla:

Capítulo 4  Introducción al diseño algorítmico de sistemas   151

Page 168: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 168/569

En la ruta de datos  M 1 M 0 codifican en binario el tipo de moneda recibido atendiendo a la

tabla anterior (columna   M ). En un sistema real esto se implementaría utilizando un sistema

mecánico que recibiera las monedas en función de su peso. Traduciendo el algoritmo a un

diagrama nos queda definido igualmente el diagrama de estados.

152   Problemas de fundamentos y estructura de computadores

Page 169: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 169/569

Y la tabla de salidas para cada estado será:

Estado CargarM   Contar U   Borrar U   Contar C   Borrar C   Contar  V    Borrar V   Contar D   Borrar D    Fin

S 0   1 0 1 0 1 0 1 0 1 0

S 1   0 0 0 0 0 0 0 0 0 0

S 2   0 1 0 0 0 0 0 0 0 0

S 3   0 0 0 1 0 0 0 0 0 0

S 4   0 0 0 0 0 1 0 0 0 0

S 5   0 0 0 0 0 0 0 1 0 0

S 6   0 1 0 0 0 0 0 0 0 0

S 7   0 0 0 1 0 0 0 0 0 0

S 8   0 0 0 0 0 1 0 0 0 0

S 9   0 0 0 0 0 0 0 0 0 0

S 10

  0 0 0 0 0 0 0 1 0 1

PROBLEMA 12

Dada la siguiente UC y la tabla de señales de estado, obtener una ruta de datos que sea

factible con ellas. Se permite incorporar señales de control de multiplexores si fueran nece-

sarios.

OP1OP0   Operación ALU

00   A.C 

01   A.B 

10   A!B 

11   A!C 

Capítulo 4  Introducción al diseño algorítmico de sistemas   153

Page 170: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 170/569

Estado   Q 2Q 1Q 0   OP1OP0   LALB LC    Fin

S 0   000 XX 111 0

S 1   001 01 000 0

S 2   010 10 100 0

S 3   011 00 000 0

S 4   100 11 010 0

S 5   101 10 001 0

S 6   110 XX 000 1

 — 111 — — —

Solución: Como resulta evidente del planteamiento del problema existen múltiples soluciones a este

problema, pero lo interesante es analizar las señales y comprender su significado. Iremos ana-

lizando la tabla y sacando conclusiones para poder obtener una ruta de datos que sea coheren-

te con el enunciado.

En primer lugar, parece claro que existen 3 registros  A, B  y  C  que se corresponden con las

señales de carga  L A,  L B  y  LC . Parece también claro que existe una unidad aritmético lógica

(ALU) que realiza las operaciones de suma y resta de estos registros. Por lo tanto en cada

estado se realizará en la ALU la operación que indiquen los valores de operación OP1 y OP0,

y el resultado de esta operación se almacenará en el registro cuya señal de carga  L, esté a 1.

Por ejemplo:

Estado   Q 2Q 1Q 0   OP1OP0   LALB LC    Fin

S 2   010 10 100 0

Los valores de las señales de control mostrados en esta fila nos indican que:

El estado  S 2 se codifica como 010.

Que según la tabla del enunciado OP1OP0  corresponde con la operación   A! B   en la

ALU.

Y que el registro  A  se cargará un valor ( L A%1), previsiblemente el resultado de la ope-

ración realizada en la ALU y así lo supondremos.

Observando el diagrama de estados también podemos deducir que el estado 1 y 3 son esta-

dos donde se evalúan condiciones. Esto concuerda también con la tabla de salidas, ya que

para estos estados todas las señales de carga están a cero. Del enunciado podemos saber que

se evalúan las condiciones ¿ A% B? y ¿ A%C ? respectivamente. La ALU en estos casos reali-

za una operación de resta según los códigos OP1OP0 asignados para la ALU. Por lo tanto debe

existir una señal de condición ( Z ) que indique si el resultado de la operación ha sido cero.

Siguiendo el convenio habitual si la operación ha sido cero  Z %1 y Z % 0 en caso contrario.

Siguiendo con este razonamiento podemos deducir qué sucede en todos los estados y pode-

mos así establecer el algoritmo. Una posible solución sería:

154   Problemas de fundamentos y estructura de computadores

Page 171: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 171/569

Y la ruta de datos que realice el algoritmo podría ser la siguiente:

Capítulo 4  Introducción al diseño algorítmico de sistemas   155

Page 172: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 172/569

PROBLEMA 13

Se desea diseñar un computador sencillo que codifique las instrucciones en dos registros.

Por un lado un registro de 24 bits almacenará en 3 campos los valores de tres operandos  A,

 B y  C . Y por otro lado un registro de 5 bits especificará en 2 campos la operación a realizar

(suma, resta, multiplicación y división) y qué registro es el operando destino. Para esto

último utilizará un código de 3 bits (uno para  A, otro para  B  y otro para  C ) en el que un

valor de «1» indicará que se trata de un operando fuente y un valor de «0» que actúa como

operando destino. Se pide:

a)   Diseñar los dos registros implicados.

b)   Definir el algoritmo.

c)   Diseñar un diagrama de la ruta de datos.

Solución: 

a)   Los registros que hay que diseñar son el equivalente a los registros de instrucciones de un

computador sencillo. El primer registro deberá tener la siguiente definición de campos:

Operando A (8 bits) Operando B (8 bits) Operando C (8 bits)

El segundo registro tendrá la siguiente forma:

OP1OP

0  D 

2D 1D 0

Este registro debe llevar asociado un detector de códigos erróneos. Según el enuncia-

do si debemos tener 2 operandos fuente y uno destino tendremos 5 combinaciones de

código que no representan configuraciones válidas. Por ejemplo, un código 001 indicaría

que el operando  B  y el  A  son operandos fuentes, lo cual no es compatible con las opera-

ciones definidas en la especificación funcional. La tabla de detección de errores será:

D 2D 1D 0   Error Operando destino

000 1   ññññññ

001 1   ññññññ

010 1   ññññññ

011 0   A

100 1  ññññññ

101 0   B 

110 0   C 

111 1   ññññññ

La señal de error será por lo tanto:

 Error % D1 D0! D2 D1! D2 D0! D2 D1 D0

156   Problemas de fundamentos y estructura de computadores

Page 173: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 173/569

b)   Para definir el algoritmo utilizamos como valores de entrada los de los registros diseña-

dos en el apartado anterior.

A:%Dato 1

B:%Dato 2OP%Código de OperaciónIf Error% ‘‘1’’ then Finelse

if OP% ‘‘00’’C%A!B;

else if OP% ‘‘01’’C%A.B;

else if OP% ‘‘10’’C%A*B;else

C%A/B

end ifend if

c)   La ruta de datos será:

Capítulo 4  Introducción al diseño algorítmico de sistemas   157

Page 174: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 174/569

Las señales de control que debe suministrar la unidad de control son:

 LROP: Cargar datos en el registro de operandos.

 LC : Cargar datos en el registro de códigos de operación y fuentes-destino.

 M 1 a  M 7: Selección de operandos y destinos.

Y por otro lado la unidad de control debe recibir   D2 D1 D0  para generar la señal de

error definida en el apartado a).

PROBLEMA 14

Diseñar un sistema algorítmico que realice la suma de 4 valores de 8 bits, utilizando única-

mente un registro denominado RR (Registro de Resultados), un sumador y un multiplexor

de 8 bits para la ruta de datos. Diseñar la unidad de control de tal forma que sólo se permita

reiniciar el sistema si se ha llegado al final del proceso de suma de los 4 valores. Utilizar

un contador módulo 8 para implementar la unidad de control. El registro RR se borra deforma síncrona.

Solución: 

Dado que sólo tenemos un registro los 4 datos tendrán que estar disponibles durante todo el

proceso y la única forma de ir incorporándolos es multiplexándolos. El algoritmo a seguir

deberá ir haciendo sumas parciales y almacenándolas en el único registro disponible RR.

El primer paso en realidad se podría eliminar ya que podría cargarse directamente el valor

de Dato 1 en el registro y con eso quedaría eliminado el valor anterior. Sin embargo, dado que

los datos de entrada no van a estar almacenados en un registro conviene hacer un borrrado del

registro al mismo tiempo que se comienza la ejecución del algoritmo.

158   Problemas de fundamentos y estructura de computadores

Page 175: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 175/569

Las señales de control serán en este caso las habituales de carga ( L R) y borrado del regis-

tro ( B R) y las señales del control de multiplexor  M 1 M 0. El diagrama de estados debe tener en

cuenta que sólo se puede reiniciar el proceso si se ha llegado hasta el final, en ese caso queda-

ría de la siguiente forma:

La implementación de la unidad de control con el contador es directa, sólo tenemos que

conectar la señal de cuenta (C ) y de carga ( L). Los valores que se obtienen son:

C % 1

 L%q2q1q0

e2% e0% Inicio . q2q1q0

e1%0

FIN %q2q1q0

Por otro lado, la tabla de valores de las señales de control para cada estado será:

Estado   q 2q 1q 0   M 1M 0   LR    B R    Fin

S 0   000 XX 0 1 0

S 1   001 00 1 0 0

S 2   010 01 1 0 0

continúa

Capítulo 4  Introducción al diseño algorítmico de sistemas   159

Page 176: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 176/569

continuación

S 3   011 10 1 0 0

S 4   100 11 1 0 0

S 5   101 XX 0 0 1

 — 110 — — — —

 — 111 — — — —

Podemos igualmente obtener las ecuaciones que relacionen las señales de control con el

estado de la unidad de control sin más que simplificar las expresiones por mapas de Karnaugh

de la tabla anterior.

 L R% q1! (q2 q0)

C  R%q2! q1!q0

 M 1%q2! q1q0 M 0%q0

En este caso resulta fácil diseñar el sistema completo, conectando completamente la uni-

dad de control y la ruta de datos:

160   Problemas de fundamentos y estructura de computadores

Page 177: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 177/569

PROBLEMA 15

Diseñar un sistema que permita calcular potencias de 2. El sistema debe disponer de una

entrada que permita especificar la potencia que se pretende calcular entre 20 y 215 y el

resultado quedará almacenado en un registro.

Solución: 

La especificación algorítmica es prácticamente equivalente al diagrama de flujo que tendrá la

forma siguiente:

Para implementar la ruta de datos necesitaremos:

Un registro de 15 bits para almacenar el resultado (RR).

Un registro contador de 4 bits para especificar el exponente (Cont).

Capítulo 4  Introducción al diseño algorítmico de sistemas   161

Page 178: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 178/569

Las señales de control enviadas desde la unidad de control serán:

 L R: Cargar dato en el registro.

 D R: Desplazamiento hacia la izquierda.

 BC : Borrar el contador.C –: Cont%Cont-1.

Y la señal de condición ( Z ) indicará cuándo el contador ha llegado a cero. Sólo nos queda

diseñar la unidad de control, que será una máquina de Moore con 5 estados siguiendo el es-

quema del diagrama de flujo. Incorporamos en este caso una señald de Inicio.

PROBLEMA 16

Diseñe la ruta de datos de un sistema secuencial que implemente el siguiente al algoritmo:

if  An B then

C :% 2 B. A/ 4;

else

C :% (( A! B)*4);

Los datos de entrada y de salida son de 8 bits. Especifique las señales de control nece-

sarias para gobernar el procesador.

Solución: 

En este caso debemos traducir el algoritmo a un diagrama de flujo y a partir de ahí obtener la

ruta de datos y las señales de control que se enviarán a la unidad de control.

162   Problemas de fundamentos y estructura de computadores

Page 179: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 179/569

Si dibujamos la ruta de datos obtendremos que las señales de control son las que aparecen

en la figura:

 L A: señal de carga del registro RA que contiene uno de los operandos.

 L B: señal de carga del registro RB que almacenará el otro operando.

 LC : señal de carga del registro de resultado, en la figura RC.

 D A: señal de carga del registro RA que contiene uno de los operandos.

 D B: señal de carga del registro RB que almacenará el otro operando.

 DC : señal de carga del registro de resultado, en la figura RC.

!/ .: Señal de suma y resta del sumador para realizar  A! B o  A. B.

Capítulo 4  Introducción al diseño algorítmico de sistemas   163

Page 180: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 180/569

PROBLEMA 17

Un sistema secuencial recibe dos datos de entrada  X  e  Y  expresados en complemento a 2 y

con un tamaño de 8 bits, proporcionando el resultado de la operación:

 Z % X*( X . 1)*( X . 2) si  X b Y 

 Z %Y*(Y . 1)*(Y . 2) si  X m Y 

Diseñar el algoritmo que realice la operación y hacer una implementación de la ruta de

datos. Definir la función de salida y cambio de estado de la unidad de control teniendo en

cuenta que se diseñará como una máquina de Mealy.

Solución: 

El diagrama de flujo del algoritmo debemos pensarlo teniendo en mente utilizar el menor nú-

mero de módulos hardware posible. Al ser la unidad de control diseñada como máquina de

Mealy, podemos tener varias opciones dentro de cada estado, ya que lo que cambiará serán las

señales de salida en las transiciones. Con esto el algoritmo propuesto queda de la siguienteforma:

164   Problemas de fundamentos y estructura de computadores

Page 181: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 181/569

Y la ruta de datos necesitará los siguientes elementos:

2 registros de 9 bits que almacenen  X  y  Y  (RX y RY). Aunque los números son de 8 bits

tenemos que tener en cuenta que al tener almacenada una información en complemento

a 2 al restar uno al valor más pequeño podemos necesitar un bit más para representarlo.

Un registro de 16 bits para almacenar el resultado de la multiplicación (RC).

Un sumador/ restador para realizar la operación X % X . 1.

Un multiplicador de números de 8 bits.

Multiplexores para seleccionar la información.

Capítulo 4  Introducción al diseño algorítmico de sistemas   165

Page 182: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 182/569

A este diseño de la ruta de datos cabría hacerle una salvedad relativa al almacenamiento

del resultado de la comparación  X bY ?. Dado que este valor lo proporciona un módulo com-binacional y que éste se modifica cada vez que lo hacen sus entradas, habría que tener previs-

ta la inclusión de un registro que sólo cargara el valor en el estado  S 1. Sin embargo, es posible

eliminar ese registro, y por lo tanto un estado, si lo tenemos en cuenta a la hora de diseñar la

unidad de control. En este caso habría que hacer que la transición entre los estados  S 1,  S 2 y  S 3se realizara conforme al valor inicial que lee la unidad de control y no chequeando en cada

transición. Por lo tanto la unidad de control debería guardar ese valor en un registro interno o

166   Problemas de fundamentos y estructura de computadores

Page 183: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 183/569

registro de estado correspondiente, lo que en la práctica es equivalente a realizar el diseño

como una máquina de Moore.

Para esta unidad de control lo interesante es definir las funciones de salidas asociadas a

cada transición, ya que es la principal diferencia con respecto a los ejercicios que se han re-

suelto en este capítulo que utilizan como diseño una máquina de Moore.

La función de salida incluirá las señales de control que aparecen en la figura anterior y

una señal de Fin de cálculo. Para mejorar la compresión se omite cualquier posible señal de

Inicio o borrado de registros, pero, como ya se ha comentado, el lector debe tener en cuenta

que estas señales deben implementarse para poder reiniciar el sistema:

XbY Q2   Q1   Q0   MX   LX   MY   LY   MC   LC   MR   Fin Q2(t!1) Q1(t!1) Q0(t!1)

0 0 0 0 1 1 1 1 X 0 X 0 0 0 1

0 0 0 1 X 0 0 1 1 1 1 0 0 1 0

0 0 1 0 X 0 0 1 0 1 1 0 0 1 1

0 0 1 1 X 0 0 0 0 1 1 0 1 0 0

0 1 0 0 X 0 X X X 0 X 1 1 0 0

0 1 0 1 X X X X X X X X X X X

0 1 1 0 X X X X X X X X X X X

0 1 1 1 X X X X X X X X X X X

1 0 0 0 0 1 1 1 X 0 X 0 0 0 1

1 0 0 1 0 1 X 0 1 1 0 0 0 1 0

1 0 1 0 0 1 X 0 0 1 0 0 0 1 1

1 0 1 1 0 1 X 0 0 1 0 0 1 0 0

1 1 0 0 X 0 X 0 X 0 X 1 1 0 0

1 1 0 1 X X X X X X X X X X X

1 1 1 0 X X X X X X X X X X X

1 1 1 1 X X X X X X X X X X X

Capítulo 4  Introducción al diseño algorítmico de sistemas   167

Page 184: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 184/569

PROBLEMA 18

Diseñar algorítmicamente un multiplicador de números de 16 bits. El algoritmo viene de-

terminado por el siguiente diagrama. En él, RMP representa el registro multiplicador,

RMD es el registro multiplicando y RP es el registro producto. Explique cómo se podríamejorar este diseño.

168   Problemas de fundamentos y estructura de computadores

Page 185: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 185/569

Solución: 

En este caso no necesitamos obtener la descripción algorítmica, ya que viene especificada

por el esquema que nos proporciona el enunciado. En cualquier caso conviene familiarizar-

se con el funcionamiento del proceso, para ello veamos en una tabla cómo se realiza la

multiplicación de dos números de 4 bits: 0110# 0011% 0110 en binario (6# 3% 18) en

decimal.

I RMP RMD RP RMP%0? I%4?

0 (0110)2% (6)10

  (0011)2% (3)10

  (00000000)2% (0)10

  SI NO

1 (0011)2% (3)10

  (00110)2% (6)10

  (00000000)2% (0)10

  NO NO

2 (0001)2% (1)10

  (001100)2% (12)10

  (00000110)2% (6)10

  NO NO

3 (0000)2% (0)10   (0011000)2% (24)10   (00010010)2% (18)10   SI NO

4 (0000)2% (6)10

  (00110000)2% (48)10

  (00010010)2% (18)10

  XX SI

De nuevo es importante tener en cuenta la forma de definir la unidad de control. Si

lo hacemos como máquina de Mealy en el momento en que  i  sea igual a 4 pasará al estado

final y se debe implementar una señal de Fin. Comencemos con el diseño propiamente

dicho.

Selección y conexión de los módulos de la ruta de datos

Observando el diagrama necesitaremos los siguientes elementos:

Dos registros de 16 bits para almacenar el multiplicador y el multiplicando y que deno-

minaremos RMP y RMD respectivamente para seguir la nomenclatura del enunciado.

Los registros deberán permitir realizar desplazamiento para realizar las operaciones

(RMD@0) y (0ARMP).

Un registro de 32 bits para almacenar el resultado, RP.

Un registro contador de 5 bits para almacenar e incrementar el valor de  i.

Un comparador para saber si se ha llegado a la última iteración.

Un sumador de 32 bits para realizar la operación RP%RMD!RP.

Un extensor de signo (EXT) para operar con datos de 32 bits.

Capítulo 4  Introducción al diseño algorítmico de sistemas   169

Page 186: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 186/569

La forma de conectarlos será la siguiente:

Selección de las señales de control y de condiciónLas señales de control serán las necesarias para controlar los elementos anteriores. Siguiendo

el mismo orden:

LRMP: Carga del Registro Multiplicador, RMP.

DRMP: Desplazamiento del Registro Multiplicador, RMP.

LRMD: Carga del Registro Multiplicador, RMD.

DRMD: Desplazamiento del Registro Multiplicando, RMD.

LRR: Carga del Registro de Resultado, RR.

CONTAR: Avance del contador   i.

BORRADO: Inicialización del contador.

FIN: Salida de control que indica el final del proceso.

Y las señales de condición serán:

RMP0

PROCESAR

170   Problemas de fundamentos y estructura de computadores

Page 187: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 187/569

Definición de los distintos estados del procesador

La implementación se va a realizar siguiendo la organización del diagrama de flujo y conside-

rando la unidad de control como una máquina de Moore.

Especificación de las salidas para cada estado

Estado q2q1q0   LRMP DRMP LRMD DRMD LRP Contar Borrado Fin

S 0   000 1 0 1 0 0 0 1 0

S 1   001 0 0 0 0 0 0 0 0

S 2   010 0 0 0 0 1 0 0 0

S 3   011 0 0 0 1 0 0 0 0

S 4   100 0 1 0 0 0 0 0 0

S 5   101 0 0 0 0 0 1 0 0

S 6   110 0 0 0 0 0 0 0 0

S 7   111 0 0 0 0 0 0 0 1

Capítulo 4  Introducción al diseño algorítmico de sistemas   171

Page 188: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 188/569

Implementación de la unidad de control como sistema secuencial

La implementación de la unidad de control con el contador es directa, sólo tenemos que co-

nectar la señal de cuenta (C ) y de carga ( L). Los valores que se obtienen son:

C % 1

 L%PROCESAR . S 2. S 1! S 2

. S 1. S 0! RMP . S 2

. S 1. S 0

e2%S 1. S 0

e1%q1

e0%1

FIN %q2. q1

. q0

Para completar el diseño sólo debemos realizar la implementación de estas ecuaciones de

la misma forma que se hace en el problema 14.

Mejora del diseño

Para mejorar el diseño deberíamos reagrupar los estados   S 4,   S 5   y   S 6, ya que se realizan en

recursos hardware independientes y no es necesario hacerlos en ciclos separados.

PROBLEMA 19

Diseñar un sistema algorítmico que realice la operación 2 A! 2 B  utilizando un único re-

gistro.

Solución: 

Una posible solución sería reutilizar el diseño del problema 14 y cambiar las entradas. Para

reutilizar también la unidad de control deberíamos dejar el diseño como sigue.

172   Problemas de fundamentos y estructura de computadores

Page 189: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 189/569

Page 190: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 190/569

Utilizando los elementos que nos indica el enunciado debemos conectarlos de la siguiente

forma para que realicen el algoritmo indicado en el diagrama de flujo.

Y la unidad de control enviará las señales de control indicadas en el siguiente es-

quema.

El diagrama de estados será simple y sin bifucarciones ya que no existen decisiones a

tomar ni señales de control de las que dependa el flujo de datos. Identificando cada bloque del

diagrama de datos con un estado de la unidad de control obtenemos el siguiente diagrama de

transición de estados en el que está incluida la señal de Inicio del proceso que sólo se puede

activar en el estado final.

174   Problemas de fundamentos y estructura de computadores

Page 191: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 191/569

Y la tabla de salidas de control será:

Estado   Q 2Q 1Q 0   M LA   D A   LB    D B    Fin

S 0   000 1 1 0 1 0 0

S 1   001 X 0 1 0 1 0

S 2   010 X 0 0 0 1 0

S 3   011 X 0 0 0 1 0

S 4   100 0 1 0 0 0 1

 — 101 — — — — — —

 — 110 — — — — — —

 — 111 — — — — — —

4.4 Problemas propuestosPROBLEMA 1

Diseñar un sistema algorítmico que realice la operación (nA!mB) utilizando dos registros y

elementos combinacionales, para valores de  n  y  m potencias de 2 (entre 20 y 27).

PROBLEMA 2

Diseñar un sistema secuencial que calcule el factorial de un número positivo de 16 bits.

PROBLEMA 3

Diseñar la unidad de control y definir la tabla de salidas del problema resuelto n.o 13. Definirtambién el diagrama de conexiones entre la unidad de control y la unidad de proceso, especifi-

cando además las señales de entrada, señales de salida, entradas y salidas de control.

PROBLEMA 4

Un sistema secuencial recibe dos datos de entrada  X  e  Y  expresados en complemento a 2 y con

un tamaño de 8 bits, proporcionando el resultado de la operación:

 X ! ( X . 1)! ( X . 2)! (Y . 1)! (Y . 2)

Capítulo 4  Introducción al diseño algorítmico de sistemas   175

Page 192: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 192/569

Diseñar algorítmicamente el sistema. Para ello deberá definir la ruta de datos y el diagra-

ma de estados con su tabla de salidas. La unidad de control se diseñará como una máquina de

Moore.

PROBLEMA 5

Diseñar algorítmicamente un sistema que realice la operación 2 A! 2 B  utilizando todos los

elemento que estime oportuno.

PROBLEMA 6

Diseñar un sistema que implemente el siguiente algoritmo

IF (A%B%C) THEN

C%C/ 2;

ELSE IF (A%B) THEN

B%B!C;

ELSE IF (A%C) THEN

A%A!B;

ELSE

A%A!C!B;

ENDIF

PROBLEMA 7Rediseñar la unidad de control del problema resuelto n.o 18 para que el multiplicador tarde

menos ciclos en proporcionar el resultado.

PROBLEMA 8

Diseñar un sistema que permita calcular potencias de 3. El sistema debe disponer de una en-

trada que permita especificar la potencia que se pretende calcular entre 30 y 315 y el resultado

quedará almacenado en un registro. Utilice un multiplicador como el diseñado en el problema

18. ¿Cuántos ciclos tardaría el sistema en devolver el valor de 37?

PROBLEMA 9

Dada la U.P., diseñar la unidad de control (diagrama de estados y tabla de salidas) para ejecu-

tar el siguiente algoritmo:

 Bpmem;

while z%1

 Ap B!mem

end

176   Problemas de fundamentos y estructura de computadores

Page 193: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 193/569

PROBLEMA 10

Diseñar un contador gobernado por dos señales  A y  B  que indiquen si la cuenta se realiza de

uno en uno o de dos en dos.

Capítulo 4  Introducción al diseño algorítmico de sistemas   177

Page 194: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 194/569

a

Page 195: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 195/569

Aunque en capítulos sucesivos se van a estudiar en mayor profundidad los conceptos de es-tructura de computadores, es conveniente que, una vez desarrollados todos los conceptos desistemas combinacionales y secuenciales, se realice una primera aproximación a un computa-dor sencillo. Este computador está basado en la arquitectura de Von Neumman. En la mayoríade textos de Fundamentos de Computadores se suele utilizar el modelo estándar de la Máqui-na Rudimentaria (MR), que sirve como base para los ejercicios de este capítulo. La máquinarudimentaria ha sido desarrollada por la Universidad Politécnica de Cataluña y se encuentradesarrollada en profundidad en el texto de Hermida, Corral, Pastor y Sánchez (2000).

Como se ha visto en el capítulo anterior, un procesador, ya sea simple o más complejo, se

compone de dos elementos fundamentales: una Unidad de Proceso y una Unidad de Control(UC). Por ello, definiremos a continuación las características del computador sencillo que va-mos a utilizar, especificando y detallando las características de su UP y su UC.

5.1 Diseño de la unidad de proceso

La memoria es de 28 palabras de 16 bits, por lo tanto tendrá un bus de direcciones de 8 bits, unbus de entrada de datos de 16 bits, un bus de salida de datos también de 16 bits y una señal delectura/ escritura. Los datos leídos estarán disponibles en el bus de salida y el almacenamientode los datos en la memoria se hará a través del bus de entrada.

El Registro de Instrucciones (IR) almacena la instrucción que se está ejecutando. Puestoque las instrucciones se guardan en la memoria, ésta saldrá por el bus de salida de la memoriapara llegar al IR. El tamaño del IR será de 16 bits.

Para leer una instrucción (o un dato) es necesario indicar la dirección de memoria en quese encuentra. En el caso de las instrucciones la dirección estará, generalmente, en el registrocontador de programa (PC). Si la instrucción no está en ese registro estará en el registro auxi-liar de direcciones (R@). Por lo tanto el PC tendrá un ancho de 8 bits para poder acceder a las28 palabras de la memoria y su salida estará conectada al bus de direcciones de la memoria.Como se trata de una máquina en la que la siguiente instrucción en memoria será la próxima

Page 196: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 196/569

Estructura general de la Máquina Rudimentaria.

180   Problemas de fundamentos y estructura de computadores

Page 197: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 197/569

instrucción a ejecutar (salvo para instrucciones de salto), el PC debe tener capacidad deautoincremento.

El banco de registros es de 8 posiciones de 16 bits. Tiene «bus» de datos de entrada, desalida, una señal de escritura, y dos buses de direcciones, uno para seleccionar el registro

de lectura y otro para seleccionar el de escritura. Dado que tenemos 8 registros, estos buses dedirecciones son de 3 bits.

La Unidad Aritmético Lógica (ALU) realiza las operaciones aritmético-lógicas y modificalos registros de estado N  y Z . El registro N  valdrá 1 cuando el resultado de la última operaciónhaya sido negativo y 0 en caso contrario. Por su parte, el registro  Z  valdrá 1 cuando el resulta-do de la última operación haya sido cero y tomará el valor de 0 si el resultado ha sido distintode cero.

Existen dos tipos de operaciones aritmético-lógicas: las que operan con dos valores alma-cenados en registros del banco y las que operan con un valor de un registro y un operandoinmediato. El operando inmediato estará grabado en la instrucción, y como hemos indicado,

ésta se encuentra almacenada en IR. Por lo tanto, el operando tendrá que ir desde el IR a unaentrada de la ALU, extendiendo previamente el signo para llegar a los 16 bits con los queopera la ALU (ya que en la instrucción sólo ocupa 5 bits). El otro operando estará guardadoen un registro y por lo tanto el dato saldrá del banco de registros e irá a la otra entrada dedatos de la ALU.

Debido al formato de instrucción que hemos elegido tenemos 3 posibilidades de lecturadel banco de registros. Podemos querer leer del RF1 (Registro Fuente 1, que coincide con losbits del RI de las instrucciones de LOAD), del RF2 (Registro Fuente 1), o del RF cuando setrata de la instrucción Store. Estas tres posibilidades se traducen en 3 líneas, de 3 bits cadauna, que son las entradas del multiplexor de la entrada de selección de lectura (SL) en elbanco de registros.

5.2 Diseño de la ALU

La Unidad Aritmético Lógica (ALU) actúa en las instrucciones Aritmético-Lógicas y enLoad. En esta última el dato viene de memoria por el bus y llega a la ALU por la entrada de laderecha (atravesando el multiplexor correspondiente). En la ALU se realizan todas las opera-ciones al mismo tiempo y luego se selecciona la solicitada por la instrucción mediante unMultiplexor de salida. Aunque esta solución no es la más eficiente en términos de energía, sí que resulta la más apropiada para una primera aproximación al diseño de unidades funciona-les y aritmético-lógicas.

El esquema de la Unidad Aritmético-Lógica incluida en la Máquina Rudimentaria es elsiguiente:

Capítulo 5  Estructura de un computador sencillo   181

Page 198: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 198/569

5.3 Formato de las instrucciones

El formato de las instrucciones que vamos a considerar es el siguiente:

Tipo de

instrucción  Formato de instrucción de 16 bits

ALU entre

registros

Código

IR15-14

RD

IR13-11

RF1

IR10-8

RF2

IR7-5

XX

IR4-3

OP

IR2-0

ALU entre

registro

e inmediato

Código

IR15-14

RD

IR13-11

RF1

IR10-8

NUM

IR7-3

OP

IR2-0

Salto CódigoIR

15-14

CONDIR

13-11

000IR

10-8

DirecciónIR

7-0

STORE Código

IR15-14

RD

IR13-11

RI

IR10-8

Dirección

IR7-0

LOAD Código

IR15-14

RF

IR13-11

RI

IR10-8

Dirección

IR7-0

182   Problemas de fundamentos y estructura de computadores

Page 199: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 199/569

Tipo de instrucción Código IR15-14

LOAD 00

STORE 01

Salto 10

ALU entre registro e inmediato 11

ALU entre registros 11

Instrucción enlenguaje ensamblador

  CC  Condición

a evaluar  Tipo de salto

BR dirección    000 1 Incondicional

BEQ dirección    001 Z Salto SI  resultado %0

BL dirección    010 N Salto SI  resultado a 0

BLE dirección    011 N(OR)Z Salto SI  resultado m 0

BNE dirección    101 NOT(Z) Salto SI resultado Ç 0

BGE dirección    110 NOT(N) Salto SI  resultado n 0

BG dirección    111 NOT(N (OR) Z) Salto SI  resultado b 0

Instrucción Tipo (IR15IR14) OP% IR2IR1IR0

ADDI 11 000

SUBI 11 001

ADD 11 100

ADDI 11 101

ASR 11 110

AND 11 111

5.4 Diseño de la unidad de control

La unidad de control utilizada será la de la máquina rudimentaria simplificada cuyo diagramade transición de estados tiene por señales de control de la transición EVAL y el tipo de opera-ción, es decir IR15IR14. El diagrama de transición de estados es:

Capítulo 5  Estructura de un computador sencillo   183

Page 200: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 200/569

Las instrucciones realizan las siguientes fases:

Instrucción Estados

ADDI FETCH*!DECO!ARIT

SUBI FETCH*!DECO!ARIT

ADD FETCH*!DECO!ARIT

ADDI FETCH*!DECO!ARIT

ASR FETCH*!DECO!ARIT

AND FETCH*!DECO!ARIT

LOAD FETCH*!DECO!LOAD

STORE FETCH*!DECO!STORE

BR FETCH*!DECO!SALTO

BEQ FETCH*!DECO!SALTO

BL FETCH*!DECO!SALTO

BLE FETCH*!DECO!SALTO

BNE FETCH*!DECO!SALTO

BGE FETCH*!DECO!   ALTO

BG FETCH*!DECO!SALTO

* La fase de FETCH no se realiza si la instrucción anterior fue ARIT o SALTO ya

que en esas fases ya se realiza la carga del registro de instrucciones y la actuali-

zación del contador de programa. La fase de SALTO se realiza sólo en caso de que la señal EVAL sea igual a 1

como muestra el diagrama de transición de estados.

184   Problemas de fundamentos y estructura de computadores

Page 201: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 201/569

Las señales de control serán las que realicen las siguientes operaciones en cada fase oestado:

Estado de la UC Operaciones que se realizan

FETCH  Carga de la instrucción en el IR

Actualización del PC

DECOLectura del primer operandoCálculo de la dirección efectivaEvaluación de la condición de salto

LOAD Escritura desde la memoria en el RD

STORE  Selección de la dirección

Escritura en memoria desde el RF

ARIT

Lectura del segundo operando y ejecución en la ALU

Carga de la instrucción en el IRActualización del PC

SALTO  Carga de la instrucción destino del salto en el IR

Actualización del PC

Estado de la UC LPC CRF E LR@ C@ R/W LN LZ LAUX ALU LIR

FETCH 1 X 0 0 0 0 0 0 0 X 1

DECO 0 1 0 1 X 0 0 0 1 X 0

LOAD 1 2 1 0 0 0 1 1 0 1 1

STORE 0 X 1 0 1 0 1 1 0 0 0

ARIT 0 0 0 0 1 1 0 0 0 X 0

SALTO 1 X 0 0 1 0 0 0 0 X 1

NOTA ACLARATORIA

En otros textos que utilizan como referencia la máquina rudimentaria, el estado SALTO sedenomina BRANCH.

5.5 Problemas resueltos

PROBLEMA 1

Sea un computador básico con las siguientes características:

Banco de 4 registros, todos ellos con capacidad de lectura y escritura.

Memoria de 29 palabras de 16 bits.

Bits de condición N y Z.

Capítulo 5  Estructura de un computador sencillo   185

Page 202: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 202/569

Y el siguiente repertorio de instrucciones:

Instrucción Operandos Operaciones que realiza Acciones sobre N y Z

ADDI RF1,NUM,RD RDp

RF1!NUM Modifica N y Z

SUBI RF1,NUM,RD RDpRF1-NUM Modifica N y Z

NOT RF,RD RDpNOT(RF) Modifica N y Z

ASL RF,RD RDp (RF)X2 Modifica N y Z

OR RF1,RF2,RD RDp (RF1)OR(RF2) Modifica N y Z

LOAD A(RI),RD RDpMEM(A!RI) Modifica N y Z

STORE RF,A(RI) MEM(A!RI)pRF

BEQ DIR SI Z%1pPROX.INST%MEM(DIR)

BLT DIR SI N%1pPROX.INST%MEM(DIR)

BRA DIR PROX.INST%MEM(DIR)

BSR DIR PROX.INST%MEM(DIR);MEM(R0)pPC

a)   Decidir el formato de las instrucciones y, basándose en él, diseñar detalladamente launidad de proceso.

b)   Diseñar la unidad aritmético-lógica.

Solución: a)   Las instrucciones deben incluir el código de operación y los operandos necesarios. Para

decidir cuántos bits del formato se utilizan para cada campo analizamos el repertorio deinstrucciones. Consideramos que existen 4 tipos de instrucciones:

Aritmético-Lógicas: ADDI, SUBI, NOT, ASL y OR

LOAD

STORE

Bifurcación: BEQ, BLT, BRA y BSR

Por lo tanto, para diferenciarlas necesitaremos 2 bits en la instrucción que nos indi-

quen el tipo de instrucción. Por analogía con la máquina rudimentaria establecemos:

Tipo de instrucción Código

LOAD 00

STORE 01

Bifurcación 10

Aritmético-lógicas 11

186   Problemas de fundamentos y estructura de computadores

Page 203: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 203/569

A continuación la instrucción debe proporcionar los operandos necesarios y en el casode las instrucciones aritmético-lógicas y de bifurcación además tienen que incluir unosbits que diferencien las distintas operaciones o condiciones que se evalúan.

Otra característica que nos proporciona el repertorio de instrucciones es que hay quedefinir seis formatos diferentes de las instrucciones en función de los operandos que esténimplicados en cada una de las instrucciones. Así habrá que especificar un formato paraADDI y SUBI, otro para NOT y ASL, otro para la instrucción OR, uno para LOAD, unopara STORE y finalmente uno para las instrucciones de bifurcación.

De las características de la máquina sabemos también que:

Necesitaremos 2 bits para diferenciar los 4 registros del banco.

9 bits para especificar una dirección de memoria.

3 bits (OP) para especificar la operación de la ALU (tenemos 5 operaciones aritmético-

lógicas; ADDI, SUBI, NOT, ASL y OR).2 bits (CC) para especificar la condición a evaluar (hay que diferenciar entre BEQ,BLT, BRA y BSR).

Dado que no nos indican el tamaño del operando inmediato (NUM) podremos defi-nirlo con tantos bits como queden libres en las instrucciones correspondientes.

Con ello, el formato de las instrucciones quedará de la siguiente forma:

Aritmético-lógicas: ADDI y SUBI

Código (2 bits) 2 bits 2 bits 7 bits 3 bits

11 RD RF1   NUM OP

Aritmético-lógicas: NOT y ASL

Código (2 bits) 2 bits 2 bits 2 bits 5 bits 3 bits

11 RD XX RF XXXXX OP

Aritmético-lógicas: OR

Código (2 bits) 2 bits 2 bits 2 bits 5 bits 3 bits

11 RD RF1 RF2 XXXXX OP

LOAD

Código (2 bits) 2 bits 2 bits 1 bits 9 bits

00 RD RI X Dirección

Capítulo 5  Estructura de un computador sencillo   187

Page 204: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 204/569

STORE

Código (2 bits) 2 bits 2 bits 1 bits 9 bits

01 RF RI X Dirección

Bifurcación: BEQ, BLT, BRA y BSR

Código (2 bits) 2 bits 2 bits 1 bits 9 bits

10 CC 00 X Dirección

En el caso de las instrucciones de bifurcación y salto es necesario fijar dos bits a ceropara poder reutilizar correctamente los elementos de la máquina rudimentaria en la quepara el cálculo de la dirección efectiva se hace una suma con el registro R0 cuyo conteni-

do es siempre cero.

b)   EL diseño de la unidad aritmético-lógica debe incluir los distintos módulos que puedenintervenir:

PROBLEMA 2

Sea un computador básico que tiene las siguientes características:

Un banco de 4 registros.

Memoria de 28 palabras#16 bits.

Bits de condición N y Z.

188   Problemas de fundamentos y estructura de computadores

Page 205: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 205/569

Y el siguiente repertorio de instrucciones:

Instrucción Operandos Operaciones que realiza Acciones sobre N y Z

ADD RF1,DIR,RD RDp

RF1!

MEM(DIR) Modifica N y ZSUB RF1,DIR,RD RDpRF1.MEM(DIR) Modifica N y Z

ADDI RF1,NUM,RD RDpRF1!NUM Modifica N y Z

SUBI RF1,NUM,RD RDpRF1.NUM Modifica N y Z

LOAD A(RI),RD RDpMEM(A!RI) Modifica N y Z

STORE RF,A(RI) MEM(A!RI)pRF

BCC DIR Si se cumple la condición CCpEjecuto el salto

a)   Decidir el formato de las instrucciones.b)   Responder razonadamente:

– ¿Puedo ampliar el número de instrucciones aritmético-lógicas?

– ¿Cuántas instrucciones de salto puedo codificar?

– ¿Cuál es el rango representable por el número inmediato num?

(Todo ello sin modificar en absoluto ninguno de los componentes.)

Solución: 

a)   Decidir el formato de las instrucciones.

Siguiendo un procedimiento similar al llevado a cabo en el problema 1 podemos esta-blecer que:

Necesitaremos 2 bits para diferenciar los 4 registros del banco.

8 bits para especificar una dirección de memoria.

2 bits (OP) para especificar la operación de la ALU (tenemos 4 operaciones aritmético-lógicas: ADDI, SUBI, ADD y SUB).

2 bits (CC) para especificar la condición a evaluar (hay que evaluar N y Z ya que noespecifica nada el enunciado).

Dado que no nos indican el tamaño del operando inmediato (NUM) podremos defi-

nirlo con tantos bits como queden libres en las instrucciones correspondientes. Como eltamaño de la instrucción es 16 se puede obtener que podrán destinarse 8 bits a tal efec-to (ver formato de ADDI y SUBI).

Con ello el formato de las instrucciones quedará de la siguiente forma:

Aritmético-lógicas: ADDI y SUBI

Código (2 bits) 2 bits 2 bits 8 bits 2 bits

11 RD RF   NUM OP

Capítulo 5  Estructura de un computador sencillo   189

Page 206: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 206/569

Aritmético-lógicas: ADD y SUB

Código (2 bits) 2 bits 2 bits 8 bits 2 bits

11 RD RF Dirección OP

LOAD

Código (2 bits) 2 bits 2 bits 8 bits 2 bits

00 RD RI Dirección XX

STORE

Código (2 bits) 2 bits 2 bits 8 bits 2 bits

01 RF RI Dirección XX

Bifurcación: BCCCódigo (2 bits) 2 bits 2 bits 8 bits 2 bits

10 CC 00 Dirección XX

De nuevo en las instrucciones de salto es necesario fijar dos bits a cero para poderreutilizar correctamente los elementos de la máquina rudimentaria.

b)   Responder razonadamente:

– ¿Puedo ampliar el número de instrucciones aritmético-lógicas?

No. No es posible sin modificar el formato de las instrucciones, ya que tanto los bitsdestinados a especificar el código como los de OP están en uso por las instrucciones es-pecificadas.

– ¿Cuántas instrucciones de salto puedo codificar?

Podríamos especificar 16 instrucciones diferentes. Aunque hemos destinado 2 bitspara los códigos (CC), sería posible utilizar también los 2 bits iniciales de ese formatoIR1IR0. Por lo tanto podríamos codificar 22!2%16 instrucciones con el código de la ins-trucción de salto (10).

– ¿Cuál es el rango representable por el número inmediato num?

Disponemos de 8 bits y dado que suponemos números representados en complementoa 2, el rango será [.27, 27.1], o lo que es lo mismo [.128, 127].

PROBLEMA 3

Dibujar la unidad de proceso y la ALU de un computador básico con el repertorio de ins-trucciones de la máquina rudimentaria expuesta, al que le hemos añadido dos instruccionesaritmético-lógicas:

NORI RF,NUM,RD RDpRF(NOR)NUM Realiza la NOR

INC REG; REGpREG!1 (Reg. actúa como fuente y destino)

190   Problemas de fundamentos y estructura de computadores

Page 207: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 207/569

Solución: 

La unidad de proceso será la de la máquina rudimentaria en el que cambien la unidad aritmé-tico-lógica para incluir las dos operaciones indicadas. La figura incluye la nueva ALU en laestructura general de la MR.

Capítulo 5  Estructura de un computador sencillo   191

Page 208: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 208/569

PROBLEMA 4

Sea un computador básico con una memoria de 214 palabras de 24 bits, un banco de 16registros, un registro acumulador (AC) y el repertorio de instrucciones dado:

a)   Dar un formato de instrucción válido.

ADD RF ACpRF!AC

ADDI RF,NUM ACpRF!NUM

CD RF ACpC2(RF)

CDI   NUM ACpC2(NUM)

LOAD A(RI),RD RDpMEM(EA)

STORE A(RI) MEM(EA)pAC

BCC Dirección Salta SI cierto

b)   ¿Cuál es el tamaño del contador de programa? Justifica la respuesta.c)   ¿Cuántas instrucciones aritméticas se pueden añadir? Justifica la respuesta.

Solución: 

a)   Dar un formato de instrucción válido.

Por analogía con la MR vamos a utilizar 2 bits para diferenciar el tipo de operaciónaunque hay varias soluciones posibles al disponer de 24 bits para codificar la instruccio-nes, ya que ese es el tamaño de palabra que almacena la memoria y por lo tanto el tamañomáximo que puede tomar el IR.

Aritmético-lógicas: ADDI, CDI

2 bits 4 bits 16 bits 2 bits

Cód RF   NUM OP

Aritmético-lógicas: ADD, CD

2 bits 4 bits 16 bits 2 bits

Cód RF XXXX XXXX XXXX XXXX OP

LOAD

2 bits 4 bits 4 bits 14 bits

Cód RF RI Dirección

STORE

2 bits 4 bits 16 bits 2 bits

Cód RD RI Dirección

BCC2 bits 4 bits 16 bits 2 bits

Cód COND 0000 Dirección

192   Problemas de fundamentos y estructura de computadores

Page 209: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 209/569

b)   ¿Cuál es el tamaño del contador de programa?

El tamaño del contador de programa viene determinado por la memoria y por lo tantoserá de 14 bits para poder acceder a todas las posiciones de la misma.

c)   ¿Cuántas instrucciones aritméticas se pueden añadir?Con el diseño que se ha propuesto del formato de las instrucciones no se podrían aña-dir instrucciones aritmético-lógicas, ahora bien se podría modificar el formato de las ins-trucciones aritmético-lógicas incrementando el tamaño del campo OP todo lo que nospermita el tamaño del operando inmediato. Suponiendo un tamaño de 5 bits para el cam-po inmediato podríamos definir de nuevo los formatos como:

Aritmético-lógicas con inmediato:

2 bits 4 bits 16 bits 2 bits

Cód RF   NUM OP

Aritmético-lógicas sin operando inmediato:

2 bits 4 bits 16 bits 2 bits

Cód RF XXXXX OP

Este nuevo diseño permitiría definir hasta 213 instrucciones aritmético-lógicas.

PROBLEMA 5

Sea un computador básico con una memoria de 26 palabras de 16 bits, un banco de 16

registros, un registro acumulador (AC) y el repertorio de instrucciones dado:a)   Dar un formato de instrucción válido.

ADD RF ACpRF!AC

ADDI RF,NUM ACpRF!NUM

CD RF ACpC2(RF)

CDI   NUM ACpC2(NUM)

LOAD A(RI),RD RDpMEM(EA)

STORE A(RI) MEM(EA)pAC

BCC Dirección Salta SI cierto

b)   Diseña la unidad de proceso de dicho computador indicando el tamaño de los buses ylas señales de control.

¡¡ Load no modifica los bits de condición!!

c)   ¿En cuántas fases se ejecutaría la instrucción LOAD de este computador? ¿Qué seña-les de control deberían activarse en cada fase? La respuesta debe ser coherente con eldiseño del apartado anterior.

Capítulo 5  Estructura de un computador sencillo   193

Page 210: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 210/569

Solución: 

a)   Dar un formato de instrucción válido.

El repertorio de instrucciones es el mismo que el del problema 4, por lo tanto sólo

debemos adaptar el formato a los tamaños de memoria, palabra y banco de registro indi-cados:

Aritmético-lógicas: ADDI, CDI

2 bitsIR

15-14

4 bitsIR

13-10

8 bitsIR

9-2

2 bitsIR

1-10

Cód RF   NUM OP

Aritmético-lógicas: ADD, CD

2 bitsIR

15-14

4 bitsIR

13-10

8 bitsIR

9-2

2 bitsIR

1-10

Cód RF XXXX XXXX OP

LOAD

2 bitsIR

15-14

4 bitsIR

13-10

4 bitsIR

9-6

6 bitsIR

5-0

Cód RF RI Dirección

STORE

2 bitsIR

15-14

4 bitsIR

13-10

4 bitsIR

9-6

6 bitsIR

5-0

Cód RD RI Dirección

BCC

2 bitsIR

15-14

4 bitsIR

13-10

4 bitsIR

9-6

6 bitsIR

5-0

Cód COND 0000 Diección

b)   Diseña la unidad de proceso de dicho computador indicando el tamaño de los buses y lasseñales de control.

La modificación principal se debe realizar cerca de la ALU, debemos sustituir (o reu-tilizar) el registro auxiliar por un registro acumulador y añadir un multiplexor para selec-cionar los operandos también en la entrada del operando A.

En cuanto al tamaño de los buses, se verán modificados todos aquellos que tenga quever con las direcciones que pasarán de 8 a 6 bits. Los bits de selección de los registrostambién cambiarán de 3 a 4 bits para poder acceder a los 16 registros, que es el nuevotamaño del banco de registros.

194   Problemas de fundamentos y estructura de computadores

Page 211: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 211/569

Por otra parte, dado que ahora sólo tenemos dos opciones de acceso al banco de regis-tros para lectura, el multiplexor de selección de lectura sólo tendrá dos entradas activas.Podríamos sustituirlo de igual forma por un multiplexor de 2 a 1, pero de esta forma nodeberemos modificar el diseño inicial.

Las señales de control de la unidad aritmético-lógica también podrían modificarse osimplemente reutilizar las conexiones y cambiar las señales de control para cada estado.

Capítulo 5  Estructura de un computador sencillo   195

Page 212: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 212/569

c)   ¿En cuántas fases se ejecutaría la instrucción LOAD de este computador? ¿Qué señalesde control deberían activarse en cada fase? La respuesta debe ser coherente con el diseñodel apartado anterior.

La instrucción LOAD debe realizar los siguientes pasos:

1.   FETCH: Carga de la instrucción en el registro IR y PCpPC!1.

2.   DECO: Decodificación de la instrucción.

3.   ADDR: Calcular la dirección efectiva.

4.   LOAD: Acceder a la posición de memoria calculada en el paso anterior y almacenarsu contenido en el registro destino.

Las señales de control necesarias son:

CRF: Control del multiplexor de selección del registro fuente.

LPC: Señal de carga del PC.

LIR: Señal de carga del IR.

LR@: Señal de carga del R@.

R/ W: Señal de lectura/ escritura de la memoria.

E: Señal de escritura en el banco de registros.

LN: Carga del registro de estado N.

LZ: Carga del registro de estado Z.

ALU: Operación de la ALU.

CMUX: Control del multiplexor de entrada a la ALU.

CMAC: Control del multiplexor al que se conecta el registro acumulador.

C@: Control del multiplexor de selección de direcciones.

LAC: Carga del registro acumulador (AC).

Fase CRF LPC LIR LR@ R/W E LN LZ ALU CMUX CMAC C@ LAC

FETCH X 1 1 0 0 0 0 0 X X X 0 0

DECO 1 0 0 0 0 0 0 0 X X X 0 0

ADDR 1 0 0 1 0 0 0 0 X X X X 0

LOAD X 0 0 0 0 1 0 0 0 1 X 1 0

PROBLEMA 6

a)   Explicar breve pero detalladamente la función de los siguientes elementos de la uni-dad de proceso de la máquina rudimentaria.

– El registro de instrucciones (IR).

– La unidad aritmético-lógica (ALU).

196   Problemas de fundamentos y estructura de computadores

Page 213: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 213/569

b)   Completar el siguiente gráfico «correspondiente» a la lógica necesaria para realizar elcálculo de direcciones; explicando por qué se añaden los nuevos elementos.

Solución: 

a)   Explicar breve pero detalladamente la función de los siguientes elementos de la unidadde proceso de la máquina rudimentaria.

– El registro de instrucciones (IR).El registro de instrucciones almacena la instrucción que se está ejecutando en el pro-

cesador. El dato procede de la memoria y por lo tanto tendrá el mismo ancho que la pala-bra de memoria. El registro de instrucciones se carga durante la fase de FETCH y nodebe modificarse durante ninguna de las fases que pertenecen a la misma instrucción, yaque en el código de instrucción se incluyen señales de selección que afectarán a la ejecu-ción de la instrucción en esas fases.

– La unidad aritmético-lógica (ALU).

La unidad aritmético-lógica se encarga de realizar las operaciones aritmético-lógicas

y modifica los bits N y Z que sirven para tomar las decisiones en las instrucciones debifurcación.

b)   Completar el siguiente gráfico «correspondiente» a la lógica necesaria para realizar elcálculo de direcciones de 12 bits; explicando por qué se añaden los nuevos elementos.

La lógica necesaria para el cálculo de direcciones es la siguiente:

Capítulo 5  Estructura de un computador sencillo   197

Page 214: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 214/569

Al esquema del enunciado se han añadido varios elementos. En primer lugar, se haincorporado el sumador !1 que se encarga de hacer el autoincremento de la dirección.Recordemos que la máquina con la que estamos trabajando supone secuenciamiento im-plícito que significa que la siguiente instrucción a ejecutar es la siguiente instrucción en

memoria, salvo que una condición de salto indique lo contrario.Para calcular la dirección efectiva utilizamos un sumador que la obtiene sumando el

contenido del registro índice con la dirección base contenida en la instrucción.

PROBLEMA 7

Queremos añadir dos nuevas instrucciones aritmético-lógicas:

– ANDI Rf,num,Rd

– ORI Rf,num,Rd

a)   Dar un formato a dichas instrucciones.b)   Rediseñar la ALU y, si aparecen nuevas señales, diseñar los sistemas que las crean.

Solución: 

a)   Dar un formato a dichas instrucciones.

Para codificar las instrucciones debemos aprovechar los dos códigos que quedaronlibres en el diseño del repertorio de la máquina rudimentaria. Además como los dos códi-gos de los que disponemos se corresponden con operaciones de inmediato en la ALUpodremos codificarlos sin problemas de la siguiente forma:

ANDI:

Código (2 bits)

IR15-14

3 bits

IR13-11

3 bits

IR10-8

5 bits

IR7-3

3 bits

IR2-0

11 RD RF1   NUM OP

010

ORI:

Código (2 bits)

IR15-14

3 bits

IR13-11

3 bits

IR10-8

5 bits

IR7-3

3 bits

IR2-0

11 RD RF1   NUM OP

011

198   Problemas de fundamentos y estructura de computadores

Page 215: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 215/569

b)   Rediseñar la ALU y, si aparecen nuevas señales, diseñar los sistemas que las crean.

Reutilizando las señales del código de operación (OP) no es necesario definir nuevas se-ñales. La señal ALU valdrá 0 para las instrucciones de LOAD y 1 para las instrucciones arit-mético-lógicas.

PROBLEMA 8

Sea un computador básico con un banco de 32 registros, un bus de datos de 16 bits y elrepertorio de instrucciones dado a continuación:

ADD RF,RD RDpRF!RD

SUB RF, RD RDpRF.RD

ADDI   NUM, RD RDpRD!NUM

SUBI   NUM, RD RDpRD-NUM

LOAD A(RI),RD RDpMEM(A!RI)

STORE A(RI) MEM(A!RI)pRF

BCC Dirección Salta SI cierto

Capítulo 5  Estructura de un computador sencillo   199

Page 216: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 216/569

Contesta las siguientes preguntas:

a)   Dar un formato de instrucción válido.

b)   ¿Cuál es el rango del número inmediato (num) si este se codifica en notación C2?

c)   ¿Cuál es el tamaño del contador de programa? Justifica la respuesta

d)   ¿Cuántas instrucciones de salto se podrían llegar a codificar?

e)   ¿Cuántas instrucciones aritméticas con operandos en registro se pueden añadir? Justi-fica la respuesta.

f)   Diseñar la unidad de proceso indicando el tamaño de las líneas y las señales de controlnecesarias sabiendo que sólo las instrucciones aritméticas modifican N y Z.

g)   Indicar el valor que deben tomar las señales de control, descritas en el apartado ante-rior, en la fase «Lectura del primer operando».

Solución: 

a)   Dar un formato de instrucción válido.

De las características de la máquina sabemos también que:

Necesitaremos 5 bits para diferenciar los 32 registros del banco.

No nos índican el tamaño de la memoria por lo que habrá que asignarles tantos bitscomo podamos en las instrucciones de LOAD y STORE.

2 bits (OP) para especificar la operación de la ALU (tenemos 4 operaciones aritmético-

lógicas; ADDI, SUBI, ADD y SUB).3 bits (CC) para especificar la condición a evaluar (si no nos indican lo contrario utili-zamos la configuración base de la MR).

Dado que no nos indican el tamaño del operando inmediato (NUM) podremos defi-nirlo con tantos bits como queden libres en las instrucciones correspondientes.

Con ello el formato de las instrucciones quedará de la siguiente forma:

ADDI

Código

IR15-14

5 bits

IR13-9

7 bits

IR8-2

2 bits

IR1-0

11 RD   NUM OP%00

SUBI

CódigoIR

15-14

5 bitsIR

13-9

7 bitsIR

8-2

2 bitsIR

1-0

11 RD   NUM OP%10

200   Problemas de fundamentos y estructura de computadores

Page 217: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 217/569

ADD

CódigoIR

15-14

5 bitsIR

13-9

5 bitsIR

8-4

2 bitsIR

3-2

2 bitsIR

1-0

11 RD RF XX OP%01

SUB

CódigoIR

15-14

5 bitsIR

13-9

5 bitsIR

8-4

2 bitsIR

3-2

2 bitsIR

1-0

11 RD RF XX OP%11

LOAD

CódigoIR

15-14

5 bitsIR

13-9

5 bitsIR

8-4

4 bitsIR

3-0

01 RF RI Dirección

STORE

CódigoIR

15-14

5 bitsIR

13-9

5 bitsIR

8-4

4 bitsIR

3-0

11 RF RI Dirección

Bifurcación:

CódigoIR

15-14

5 bitsIR

13-9

5 bitsIR

8-4

4 bitsIR

3-0

11 CC 00000 Dirección

b)   ¿Cuál es el rango del número inmediato (num) si éste se codifica en notación C2?

Dado que disponemos de 7 bits, el rango será [.26, 26. 1]% [.64, 63].

c)   ¿Cuál es el tamaño del contador de programa?

Este es uno de los grandes inconvenientes que presentaría este computador, ya que lamemoria que podemos direccionar se ha quedado reducida a 24 posiciones, ya que esosson los bits disponibles en el formato de las instrucciones LOAD y STORE. Como resul-ta evidente, este diseño sería conveniente modificarlo y conseguir tener acceso a másposiciones de memoria, ya que de lo contrario no podríamos codificar prácticamente nin-gún programa. El PC tiene un tamaño de 4 bits.

Capítulo 5  Estructura de un computador sencillo   201

Page 218: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 218/569

d)   ¿Cuántas instrucciones de salto se podrían llegar a codificar?

Dado que en la instrucción de salto se han destinado 5 bits para el código de condi-ción, podríamos tener 25 instrucciones diferentes.

e)   ¿Cuántas instrucciones aritméticas con operandos en registro se pueden añadir? Justificala respuesta.

Al asignar los códigos de operación hemos utilizado IR0 para indicar si la operaciónutiliza un inmediato (IR0% 0) o un registro (IR0% 1). El segundo bit IR1 especifica eltipo de operación. Para las operaciones con registro disponemos de dos bits libres (IR3-2),por lo que los códigos disponibles para nuevas instrucciones serían los 6 recogidos en latabla siguiente en la que ya se han ocupado los códigos de operación asignados anterior-mente a la suma y a la resta entre registros:

Instrucción IR3-1

  IR0

ADD 000 1

SUB 001 1

Nueva 010 1

Nueva 011 1

Nueva 100 1

Nueva 101 1

Nueva 110 1

Nueva 111 1

f)   Diseñar la unidad de proceso indicando el tamaño de las líneas y las señales de controlnecesarias sabiendo que sólo las instrucciones aritméticas modifican N y Z. Las principa-les modificaciones son las siguientes:

El multiplexor de selección de lectura será de dos entradas para discernir entre RD yRI/ RF.

La instrucción de LOAD no pasa por la ALU, puesto que no modifica los bits N y Zpuede ir directamente a la entrada del banco de registros, donde se utiliza la señal ALUpara cargar el dato de la memoria (ALU%0) o almacenar el resultado de la ALU(ALU% 1).

La entrada del segundo operando a la unidad aritmético-lógica se selecciona ahora conun solo bit indicado por IR0, que como se ha explicado nos indica si el operando esinmediato o procede de un registro.

La unidad aritmético-lógica sólo necesita un bit de control para indicar si es una opera-ción de suma o de resta (IR1).

El tamaño de los buses de direcciones se ha reducido a 4 bits.

El tamaño de los buses de selección de registros se ha aumentado a 5 bits, tanto paralectura como para escritura.

202   Problemas de fundamentos y estructura de computadores

Page 219: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 219/569

g)   Indicar el valor que deben tomar las señales de control, descritas en el apartado anterior,en la fase «Lectura del primer operando».

Para hacer la lectura del primer operando debemos cargarlo en el registro auxiliar,por lo tanto la señal de carga de ese registro debe estar activa LRAUX%1; CRF debe ser0 para seleccionar el registro RD, ya que es el que hemos considerado como primer ope-

Capítulo 5  Estructura de un computador sencillo   203

Page 220: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 220/569

rando en el diseño (al poner el inmediato en la otra entrada). El resto de señales de cargalas dejaremos a cero para evitar escritura de datos erróneos, al igual que las señales deescritura de memoria y del banco de registros. El resto de señales de selección de losmultiplexores no son transcendentes en esta fase y por tanto no es necesario asignarles un

valor concreto.

PROBLEMA 9

Diseñar detalladamente la ALU de una máquina similar a la MR con el siguiente repertoriode instrucciones aritmético-lógicas:

{ADD, SUB, AND, XOR, NOT, ASR, ASL, ADDI, SUBI, ANDI}

Todas ellas, junto con LOAD, modifican N y Z. Dar además un código de operaciónpara cada una.

¿Cuántas instrucciones aritmético-lógicas más se podrían añadir?¿Por qué?

Solución: 

La forma más sencilla es seguir el esquema de conexión de otros ejercicios:

Para que funcione correctamente debemos definir los códigos (COD), que controlan elmultiplexor de 8 a 1, de la siguiente forma:

204   Problemas de fundamentos y estructura de computadores

Page 221: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 221/569

Instrucción ALU COD

ADD 0 000

SUB 0 001

AND 0 010

XOR 0 011

NOT 0 100

ASR 0 101

ASL 0 110

ADDI 1 000

SUBI 1 001

ANDI 1 010

La elección entre el operando que proporciona el registro y el operando inmediato se haráfuera de la unidad aritmético-lógica y se controlará mediante un bit adicional (ALU) en elformato de las instrucciones. El número total de instrucciones que se pueden codificar son 16y para ello utilizaríamos las posiciones que han quedado libres en la tabla anterior. Es decir:

Instrucción ALU COD

Libre 0 111

Libre 1 011

Libre 1 100

Libre 1 101

Libre 1 110

Libre 1 111

PROBLEMA 10

Dibujar detalladamente sólo los elementos de la unidad de proceso involucrados en la fase

STORE (la última de la instrucción STORE) de una máquina similar a la MR pero con unamemoria de 1K%210 palabras y un banco de 16 registros. Además responder razonada-mente a las siguientes preguntas:

¿Cuál será el tamaño de IR? ¿Por qué?

¿Cuál será el tamaño de PC? ¿Por qué?

Capítulo 5  Estructura de un computador sencillo   205

Page 222: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 222/569

Solución: 

Lo primero que hay que estudiar es el formato de las instrucciones que se debe utilizar y en sucaso comprobar qué anchos de los buses y tamaño de los registros se deben modificar. Paraello hay que tener en cuenta que para direccionar una memoria de 1 K palabras necesitamos

10 bits en los buses de dirección y para acceder a los 16 registros necesitamos 4 bits en losbuses de selección de lectura y de escritura, por lo que estos valores deben modificarse en elformato de las instrucciones original:

LOAD

Código (2 bits) 4 bits 4 bits 10 bits

00 RD RI Dirección

STORE

Código (2 bits) 4 bits 4 bits 10 bits

01 RF RI Dirección

Bifurcación: BCC

Código (2 bits) 4 bits 4 bits 10 bits

10 CC 0000 Dirección

Aritmético-lógicas: ADDI y SUBI

Código (2 bits) 4 bits 4 bits 7 bits 3 bits

11 RD RF1   NUM OP

Aritmético-lógicas: ADD y SUB

Código (2 bits) 4 bits 4 bits 4 bits 3 bits 3 bits

11 RD RF1 RF2 XXX OP

El proceso de diseño del formato debe comenzar por la instrucción que más bits necesitepara su codificación, en este caso son las instrucciones de LOAD y STORE. Eso nos fijará eltamaño de palabra y nos permitirá determinar el tamaño máximo del operando inmediato enlas instrucciones que lo utilicen. Para codificar las instrucciones de LOAD y STORE son ne-cesarios 20 bits, por lo que el inmediato NUM podrá utilizar hasta 7 bits. Con estos datos yapodemos contestar a las dos cuestiones planteadas. El registro de instrucciones IR debe tenerel mismo tamaño que la palabra para poder obtener la instrucción completa en las fases defi-nidas por la unidad de control, por lo tanto 20 bits. Para poder acceder a toda la memorianecesitamos 10 bits y dado que las instrucciones se pueden encontrar en cualquier direcciónde la misma el registro contador de programa (PC) debe tener un tamaño de 10 bits.

206   Problemas de fundamentos y estructura de computadores

Page 223: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 223/569

Page 224: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 224/569

bits en el formato obtenido para la instrucción en el problema anterior obtendremos cómo lointerpretará nuestra máquina:

LOAD

Código (2 bits) 4 bits 4 bits 10 bits

00 RD RI Dirección

00 0101 0010 (0010101000)2% (168)10

La instrucción es por tanto: LOAD DIRECCIÓN(RI), RD%LOAD 168(R2),R5.

Siguiendo el mismo procedimiento para el resto de datos obtenemos las instrucciones soli-citadas:

4A001h% (0100 1010 0000 0000 0001)2rSTORE RF, DIRECCION(RI)

Código (2 bits) 4 bits 4 bits 10 bits

01 RF RI Dirección

01 0010 1000 (0000000001)2% (1)10

La instrucción es por tanto: STORE R2,1(R8).

CA441h% (1100 1010 0100 0100 0001)2rADDI RF1,NUM,RD

Código (2 bits) 4 bits 4 bits 7 bits 3 bits

11 RD RF1   NUM OP

11 0010 1001 0001000 001

La instrucción es por tanto: ADDI R9, , R2.

CC4C5h% (1100 1100 0100 1100 0101)2rSUB RF1,RF2,RD

Código (2 bits) 4 bits 4 bits 4 bits 3 bits 3 bits

11 RD RF1 RF2 XXX OP

11 0011 0001 0011 000 101

La instrucción es por tanto: SUB R1, R3, R3.

Obsérvese que para las instrucciones aritmético-lógicas (ADDI y SUB), además de los dosbits más significativos, debemos chequear el código de operación para saber cuál es la ins-trucción que está codificada. Estos bits se encuentran en las posiciones menos significativasde la instrucción IR2-0.

208   Problemas de fundamentos y estructura de computadores

Page 225: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 225/569

PROBLEMA 12

Para el formato de instrucciones obtenido en el problema 9, escribir la codificación en he-xadecimal equivalente de las siguientes instrucciones:

a)   BG AAb)   SUB R1,R3,R5

c)   STORE R2,EE(R1)

Solución: 

a)   BG AA

El proceso para obtener las codificaciones es el inverso al anterior. Bastará con codi-ficar las instrucciones siguiendo el formato obtenido en el problema 9:

Bifurcación: BCC

Código (2 bits) 4 bits 4 bits 10 bits

10 CC 0000 Dirección

En este caso desconocemos cuál es el código de condición (CC). Dado que el enun-ciado original nos indicaba que partíamos de la máquina descrita en la introducción teóri-ca, supondremos los mismos valores pero teniendo en cuenta que los CC ahora tienen 4bits para adecuarse al formato definido:

Instrucción en lenguaje

ensamblador  CC

  Condición

a evaluar  Tipo de salto

BR dirección    0000 1 Incondicional

BEQ dirección    0001 Z Salto SI  resultado %0

BL dirección    0010 N Salto SI  resultado a 0

BLE dirección    0011 N(OR)Z Salto SI  resultado m 0

BNE dirección    0101 NOT(Z) Salto SI  resultado Ç 0

BGE dirección    0110 NOT(N) Salto SI  resultado n 0

BG dirección    0111 NOT(N (OR) Z) Salto SI  resultado b

0

La instrucción BG AA se codificará por lo tanto como (1001 1100 0000 10101010)2%9C0AAh

Código (2 bits) 4 bits 4 bits 10 bits

10 CC 0000 Dirección

10 0111 0000 (0010101010)2%AAh

Capítulo 5  Estructura de un computador sencillo   209

Page 226: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 226/569

b)   SUB R1,R3,R5

Código (2 bits) 4 bits 4 bits 4 bits 3 bits 3 bits

11 RD RF1 RF2 XXX OP

11 R5 R1 R3 000 001

11 0101 0001 0011 000 001

SUB R1,R3,R5 se codificará como (1101 0100 0100 1100 0101)2%D44C5h

c)   STORE R2,EE(R1)

Código (2 bits) 4 bits 4 bits 10 bits

01 RF RI Dirección

01 R2 R1 EE01 0010 0001 0011101110

STORE R2,EE(R1) se codificará como (0100 1000 0100 1110 1110)2% 484EEh

PROBLEMA 13

Se añaden dos instrucciones aritmetico-lógicas a la MR estudiada en el curso:

– XORI Rf,num,Rd

– XOR Rf1,Rf2 ,Rd

a)   Dar una codificación para las nuevas instrucciones.b)   ¿Cuál es ahora el rango de números representables en las instrucciones aritméticas con

operando inmediato? Razona la respuesta.

c)   ¿Cuál es ahora el tamaño del banco de registros? Razona la respuesta.

d)   ¿Cuál es ahora el tamaño del registro de direcciones R@? Razona la respuesta.

Propuestos

e)   ¿Cuánto tiempo tardaría en ejecutarse la fase fetch? Justifica la respuesta utilizandolos siguientes tiempos de respuesta:

Multiplexor 10 ns ALU 80 ns

Sumador 40 ns Leer / escribir en banco 40 nsEvaluador de condición 30 ns Leer / escribir en memoria 100 ns

f)   Diseña detalladamente la UP de dicha máquina teniendo en cuenta las nuevas instruc-ciones.

Solución: 

a)   Dar una codificación para las nuevas instrucciones.Para codificar las dos nuevas instrucciones debemos utilizar los códigos OP que que-

daron disponibles en el diseño original, que eran 010 y 011. Una posible solución es:

210   Problemas de fundamentos y estructura de computadores

Page 227: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 227/569

XORI RF, NUM, RD

Código (2 bits) 3 bits 3 bits 5 bits 3 bits

11 RD RF   NUM 010

XOR RF1,RF2,RD

Código (2 bits) 3 bits 3 bits 3 bits 2 bits 3 bits

11 RD RF1 RF2 XXX 011

Hay que tener en cuenta que esta modificación añade complejidad al diseño de launidad de proceso, puesto que anteriormente los códigos OP que comenzaban por ceroindicaban que se trataba de una operación con un operando inmediato (000 para ADDI y001 para SUBI9, mientras que los que comenzaban por uno (000 a 111) se utilizaban paraoperaciones cuyos dos operandos eran registros. Esto ya no es así porque la instrucciónXOR tiene asignado OP%011 y utiliza dos operandos almacenados en el banco de regis-tro. La solución es sencilla, únicamente hay que modificar la señal de control de accesodel multiplexor de entrada de la ALU, haciendo que se seleccionen correctamente losoperandos necesarios para cada instrucción. Las entradas correspondientes a la ALU que-darán ahora como indica la figura.

Capítulo 5  Estructura de un computador sencillo   211

Page 228: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 228/569

La señales SEL1SEL0 deben implementar la siguiente lógica:

Instrucción Tipo (IR15

IR14

) OP% IR2IR1IR0   SEL1SEL0   Operando 2

ADDI 11 000 00 Inmediato

SUBI 11 001 00 Inmediato

XORI 11 010 00 Inmediato

XOR 11 011 10 Registro

ADD 11 100 10 Registro

ADDI 11 101 10 Registro

ASR 11 110 10 Registro

AND 11 111 10 Registro

LOAD 00 XXX 01 Memoria

STORE 01 XXX 10 Memoria

Y los valores de las señales ALU2ALU1ALU0 deben seleccionar la operación co-rrecta tras el rediseño de la ALU para incluir la operación XOR.

b)   ¿Cuál es ahora el rango de números representables en las instrucciones aritméticas conoperando inmediato? Razona la respuesta.

No se modifica el tamaño del operando inmediato, por lo que seguimos teniendo 5bits para representar y el rango es [.16, 15].

c)   ¿Cuál es ahora el tamaño del banco de registros?

8 registros, no se modifica.d)   ¿Cuál es ahora el tamaño del registro de direcciones R@?

No se modifica el tamaño de las direcciones ni de la memoria, por lo que seguirásiendo de 8 bits.

PROBLEMA 14

Para un procesador como el definido en la parte teórica y suponiendo los siguientes tiem-pos de respuesta:

Multiplexor 10 ns

ALU 80 nsSumador 40 ns

Leer/ escribir en banco de registros 40 ns

Evaluador de condición 30 ns

Leer / escribir en memoria 100 ns

¿Cuánto tiempo tardaría en ejecutarse la fase fetch? Justifica la respuesta utilizando lossiguientes tiempos de respuesta:

212   Problemas de fundamentos y estructura de computadores

Page 229: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 229/569

Solución: 

Durante la fase de fetch debemos realizar las siguientes operaciones:

PCp PC!1 y cargar la instrucción en el registro IR. Estas dos operaciones se realizan

simultáneamente, por lo que para calcular el retardo  t  de esta etapa debemos calcular cuántotarda cada una de ellas y ver cuál es la operación con mayor retardo:

t PCpPC!1% t MULTIPLEXOR! t SUMADOR%50 ns

t IRpMEM[PC]% t MULTIPLEXOR! t MEMORIA% 110 ns

Por lo tanto el retardo de esta estapa viene marcado por la carga del registro de instruccio-nes y será 110 ns.

Capítulo 5  Estructura de un computador sencillo   213

Page 230: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 230/569

PROBLEMA 15

Sea una máquina similar a la MR con las siguientes modificaciones:

Un banco de 16 registros de 32 bits.

Dos instrucciones lógicas nuevas:– ANDI Rf,num,Rd

– ORI Rf,num,Rd

a)   Propón un formato de instrucción que optimice los bits.

b)   ¿Cuál es ahora el rango de números representables en las instrucciones aritméticas conoperando inmediato? Razona la respuesta.

c)   ¿Cuál es ahora el tamaño máximo que puede tener la memoria? Razona la respuesta.

d)   ¿Cuál es ahora el tamaño del contador de programa? Razona la respuesta.

Solución: 

a)   Propón un formato de instrucción que optimice los bits.

Para codificar las nuevas instrucciones debemos aprovechar los dos códigos que que-daron libres en el diseño del repertorio de la máquina rudimentaria. Además, como losdos códigos de los que disponemos se corresponden con operaciones de inmediato en laALU, podremos codificarlos sin problemas de la siguiente forma:

ANDI:

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

19 bitsIR

21-3

3 bitsIR

2-0

11 RD RF1   NUM OP010

ORI:

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

19 bitsIR

21-3

3 bitsIR

2-0

11 RD RF1   NUM OP011

El resto de instrucciones quedaráAritmético-lógicas: ADDI y SUBI

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

19 bitsIR

21-3

3 bitsIR

2-0

11 RD RF1   NUM OP

214   Problemas de fundamentos y estructura de computadores

Page 231: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 231/569

Aritmético-lógicas: ADD, SUB, AND y ASL

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

4 bitsIR

21-18

15 bitsIR

17-3

3 bitsIR

2-0

11 RD RF1 RF2 XXXXX OP

LOAD

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

14 bitsIR

21-8

8 bitsIR

7-0

00 RD RI XXXXXXXXXXXXXX Dirección

STORE

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

14 bitsIR

21-8

8 bitsIR

7-0

00 RF RI XXXXXXXXXXXXXX Dirección

Bifurcación: BEQ, BLT, BRA y BSR

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

14 bitsIR

21-8

8 bitsIR

7-0

00 CC 0000 XXXXXXXXXXXXXX Dirección

b)   ¿Cuál es ahora el rango de números representables en las instrucciones aritméticas conoperando inmediato?

El rango de números será el que nos indica el tamaño del operando inmediato en elformato propuesto (19 bits). Suponiendo igualmente representación en complemento a 2:[.218, 218.1].

c)   ¿Cuál es ahora el tamaño máximo que puede tener la memoria?

En el formato propuesto, la memoria sólo puede tener 256 posiciones que son las quese pueden acceder con los 8 bits asignados a la dirección. Ahora bien en todos los forma-tos de las instrucciones que implican una dirección, hay otros 14 bits que no están en usoy que podrían transformar ese campo en un campo de 22 bits, para permitir un acceso a

una memoria de 4 M%

222

palabras quedando entonces el formato:LOAD

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

22 bitsIR

21-0

00 RD RI Dirección

Capítulo 5  Estructura de un computador sencillo   215

Page 232: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 232/569

STORE

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

22 bitsIR

21-0

00 RF RI Dirección

Bifurcación: BEQ, BLT, BRA y BSR

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

22 bitsIR

21-0

00 CC 0000 Dirección

d)   ¿Cuál es ahora el tamaño del contador de programa?

Si ampliamos la memoria como se ha expuesto en el apartado c), el tamaño del conta-dor de programa debe ser de 22 bits.

PROBLEMA 16

Dada una máquina que posea el mismo juego de instrucciones que la máquina rudimenta-ria y donde se desean realizar las siguientes modificaciones:

Trabaje con números en complemento a 2 de 32 bits.

Tenga 16 registros de propósito general (del tamaño más conveniente).

Tenga una memoria de 64 Kpalabras en vez de 256 palabras.

a)   ¿Qué modificaciones habría que hacer en la ALU y los buses internos?

b)   ¿Y en el registro de instrucciones (IR) y anchura de la memoria?

c)   ¿Cuál deberá ser la anchura (tamaño de palabra) del banco de registros y registrosinternos de la UP?

d)   ¿Se verán afectadas las unidades funcionales para el cálculo de las direcciones de sal-to de la UP?

e)   Considerando la nueva arquitectura, ¿cómo se puede aumentar el número de instruc-ciones aritméticas hasta 32?

f)   ¿Tendría alguna repercusión en las instrucciones de salto de la máquina rudimentaria?

g)   Suponiendo que el banco de registros de la UP permitiera leer dos registros del bancode registros simultáneamente, ¿qué estados del diagrama de Moore de la unidad de

control simplificada habría que modificar y/ o eliminar?

Solución: 

a)   ¿Qué modificaciones habría que hacer en la ALU y los buses internos?

La ALU debe ser modificada para que todos sus circuitos internos trabajen con núme-ros de 32 bits en vez de 16, los buses internos deben ser de las siguientes anchuras:

Banco registros – Memoria de 32 bits.

Memoria – Registro de instrucciones (IR) de 32 bits.

216   Problemas de fundamentos y estructura de computadores

Page 233: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 233/569

Memoria – ALU de 32 bits.

Salida multiplexor SELDIR – M@ de 16 bits.

b)   ¿Y en el registro de instrucciones (IR) y anchura de la memoria?

El registro de instrucciones (IR) debe ser de 32 bits, al igual que la memoria, parapoder almacenar números en complemento a 2 de 32 bits.

c)   ¿Cuál deberá ser la anchura (tamaño de palabra) del banco de registros y registros inter-nos de la UP?

El banco de registros debe tener 16 posiciones de 32 bits cada una. Los registros de-ben ser de los siguientes tamaños en bits:

Contador de programa (PC) de 16 bits.

R@ de 16 bits.

RA de 32 bits.

d)   ¿Se verán afectadas las unidades funcionales para el cálculo de las direcciones de salto dela UP?

La lógica para el cálculo de direcciones sólo es el sumador que existe entre el bancode registros e IR y el registro R@, que debe ser de 16 bits en vez de 8 como en la máqui-na rudimentaria inicial.

e)   Considerando la nueva arquitectura, ¿cómo se puede aumentar el número de instruccio-nes aritméticas hasta 32?

Para poder tener 32 operaciones aritméticas harían falta 5 bits en vez de 3 bits para elcampo de operación (CO), en las posiciones IR2IR1IR0. Es decir, el formato de instruc-ciones para las operaciones aritméticas quedaría en 32 bits, para la nueva máquina rudi-mentaria propuesta en este ejercicio, de la forma:

Aritmético-lógicas entre registros

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

4 bitsIR

21-18

13 bitsIR

17-5

5 bitsIR

4-0

11 RD RF1 RF2 XXXXX OP

Aritmético-Lógicas registro-inmediato

CódigoIR

31-30

4 bitsIR

29-26

4 bitsIR

25-22

17 bitsIR

21-5

5 bitsIR

4-0

11 RD RF1   NUM OP

f)   ¿Tendría alguna repercusión en las instrucciones de salto de la máquina rudimentaria?

Esta modificación no tendría ninguna repercusión en el formato de las instruccionesde salto de la máquina rudimentaria.

g)   Suponiendo que el banco de registros de la UP permitiera leer dos registros del banco deregistros simultáneamente, ¿qué estados del diagrama de Moore de la unidad de controlsimplificada habría que modificar y/ o eliminar?

Capítulo 5  Estructura de un computador sencillo   217

Page 234: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 234/569

Se podría eliminar el estado DECO del diagrama de Moore ya que la activación de laseñal LRAUX no sería necesaria (dicho registro desaparecería de la unidad de proceso alpoder leerse los dos registros fuente en el mismo ciclo) y la otra señal de control genera-da en dicho estado (LR@) es compatible con los estados que aparecen a continuación en

el diagrama simplificado, por lo que se activaría en dichos estados directamente. Comoresultado, todas las operaciones reducirían en uno el número total de ciclos que tardan enejecutarse. Por ejemplo, las operaciones aritmético-lógicas pasarían a tardar 2 ciclos(FETCH!ARIT) en vez de 3, de manera análoga a como sucedería con el resto de tiposde instrucciones.

PROBLEMA 17

Se desea añadir a la máquina rudimentaria básica dos nuevas instrucciones:

 XOR Rf 1, Rf 2, Rd : Calcula la «O-exclusiva» bit a bit de dos operandos almacenadosen registros y deposita el resultado en un registro destino.

 NOT Rf , Rd : Realiza la negación de todos los bits de un operando y deposita el resul-tado en un registro destino.

a)   Define un formato válido para las instrucciones aritmético-lógicas de la nueva máqui-na, especificando todos los campos de las instrucciones y su significado, sin modificarla longitud total de las instrucciones, ni la longitud de los operandos inmediatos.

b)   Diseña la nueva ALU teniendo en cuenta las decisiones del apartado anterior. Ade-más, si la unidad de control se viera afectada por el diseño realizado se deben indicarlos cambios que son necesarios en sus diagramas de estados.

Solución: 

a)   Define un formato válido para las instrucciones aritmético-lógicas de la nueva máquina,especificando todos los campos de las instrucciones y su significado, sin modificar la lon-gitud total de las instrucciones, ni la longitud de los operandos inmediatos.

Existen varias posibilidades para la codificación, con objeto de no modificar la lógicade selección en el multiplexor de entrada a la ALU, proponemos el siguiente formato, enel que se utilizan los bits IR4-3, para asignar los nuevos códigos. De esta forma, todas lasoperaciones que utilizan dos operandos en registro tienen asignado un código de OP conIR2%1.

Instrucción  Código

IR15-14

4 bits

IR13-116

4 bits

IR10-8

4 bits

IR7-5

2 bits

IR4-3

3 bits

IR2-0

ADD 11 RD RF1 RF2 00 100

SUB 11 RD RF1 RF2 00 101

ASR 11 RD — RF2 00 110

AND 11 RD RF1 RF2 00 111

XOR 11 RD RF1 RF2 01 100

NOT 11 RD — RF2 01 101

218   Problemas de fundamentos y estructura de computadores

Page 235: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 235/569

b)   Diseña la nueva ALU teniendo en cuente las decisiones del apartado anterior.

Para la identificación de las nuevas operaciones en los bits de control de la ALU utili-zaremos la función: F% IR3IR2. Función a realizar por el multiplexor de selección de laALU (que pasa a ser de 8 a 1 en vez de 4 a 1):

F IR1   IR0   Instrucción

0 0 0 ADD

0 0 1 SUB

0 1 0 ASR

0 1 1 AND

1 0 0 XOR

1 0 1 NOT

1 1 0 —

1 1 1 —

Y la propuesta de nueva arquitectura interna de la ALU es:

Capítulo 5  Estructura de un computador sencillo   219

Page 236: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 236/569

PROBLEMA 18

La tabla representa un programa en lenguaje máquina de la MR.

Dir HEX   Códigomáquina

00 F818

01 FF09

02 9005

03 7F06

04 8001

05 C004

a)   Traduce a ensamblador las instrucciones.

b)   Si el programa se detiene tras ejecutar la instrucción de la dirección 05, ¿qué habráalmacenado en la dirección de memoria 06?

c)   ¿Cuántas veces se ejecuta la instrucción de la dirección 01?

Solución: 

a)   Traduce a ensamblador las instrucciones.

Dir HEX  Código

máquina  IR

15 IR

14 IR

13 IR

12 IR

11 IR

10  IR9   IR8   IR7   IR6   IR5   IR4   IR3   IR2   IR1   IR0

00 F818 1111 1000 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0

0001 1000

01 FF09 1111 1111 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1

0000 1001

02 9005 1001 0000 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1

0000 0101

03 7F06 0111 1111 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1

0000 0110

04 8001 1000 0000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

0000 0001

05 C004 1100 0100 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0

0000 0000

Interpretando los bits IR15IR14 podemos ver qué tipo de instrucción estamos codifi-cando y en el caso de las instrucciones ALU, además IR2 para saber si es una operacióncon inmediato o entre registros:

220   Problemas de fundamentos y estructura de computadores

Page 237: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 237/569

Dir HEX Código máquina IR15

IR14

  IR2   Tipo

00 F818 1111 1000 0001 1000 11 0 ALU con inmediato

01 FF09 1111 1111 0000 1001 11 0 ALU con inmediato

02 9005 1001 0000 0000 0101 10 1 Salto

03 7F06 0111 1111 0000 0110 01 1 STORE

04 8001 1000 0000 0000 0001 10 0 Salto

05 C004 1100 0000 0000 0100 11 1 ALU entre registros

Aplicando el siguiente formato de instrucciones obtendremos los operandos, condicionesy códigos OP de las instrucciones correspondientes.

ALU entreregistros CódigoIR15-14

RDIR13-11

RF1IR10-8

RF2IR7-5

XXIR4-3

OPIR2-0

Salto  Código

IR15-14

CONDIR

13-11

000IR

10-8

DirecciónIR

7-0

STORE  Código

IR15-14

RDIR

13-11

RIIR

10-8

DirecciónIR

7-0

LOAD  Código

IR15-14

RFIR

13-11

RIIR

10-8

DirecciónIR

7-0

Dir HEX Instrucción ensamblador Instrucción

00 F818  ALU con

inmediato

CódigoIR

15-14

11

RDIR

13-11

111

RF1IR

10-8

000

InmediatoIR

7-2

00011

OPIR

2-0

000ADDI R0,3,R7

01 FF09  ALU con

inmediato

CódigoIR

15-14

11

RDIR

13-11

111

RF1IR

10-8

111

InmediatoIR

7-2

00001

OPIR

2-0

001SUBI R7,1,R7

02 9005 SaltoCódigoIR

15-14

10

CONDIR

13-11

010

000IR

10-8

000

DirecciónIR

7-0

0000 0101BL 05h

03 7F06 STORE CódigoIR15-14

01

RFIR13-11

111

RIIR10-8

111

DirecciónIR7-0

0000 0110STORE R7, 06(R7)

04 8001 SaltoCódigoIR

15-14

10

CONDIR

13-11

000

000IR

10-8

000

DirecciónIR

7-0

0000 0001BR 01h

05 C004  ALU entre

registros

CódigoIR

15-14

11

RDIR

13-11

000

RF1IR

10-8

000

RF2IR

7-5

000

XXIR

4-3

00

OPIR

2-0

100ADD R0,R0,R0

Capítulo 5  Estructura de un computador sencillo   221

Page 238: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 238/569

b)   Si el programa se detiene tras ejecutar la instrucción de la dirección 05, ¿qué habrá alma-cenado en la dirección de memoria 06?

La ejecución completa del programa será:

ADDI R0,#3,R7; R7=3SUBI R7,###1,R7   R7=R7-1=2BL 05h; NO SALTASTORE R7, 06(R7); MEM[8]=R7=2BR 01h; SALTA A LA POSICIÓN 1SUBI R7,###1,R7   R7=R7-1=1BL 05h; NO SALTASTORE R7, 06(R7); MEM[7]=R7=1BR 01h; SALTA A LA POSICIÓN 1SUBI R7,###1,R7   R7=R7-1=0BL 05h; NO SALTASTORE R7, 06(R7); MEM[6]=R7=0BR 01h; SALTA A LA POSICIÓN 1SUBI R7,

###1,R7

  R7=R7-1=-1BL 05h; SALTA A O5h PORQUE LA OPERACIÓN ANTERIOR FUE<0ADD R0,R0,R0; nopEND

El contenido de la posición 6 será por lo tanto MEM[06h] %0000h.c)   ¿Cuántas veces se ejecuta la instrucción de la dirección 01?

Cuatro.

PROBLEMA 19

Considere que el tiempo de respuesta de los diferentes elementos de la ruta de datos de la

máquina rudimentaria es el siguiente:45 ns para los multiplexores

10 ns para el incrementador del PC

25 ns para el sumador de direcciones

40 ns para el extensor de signo

20 ns para la evaluación de la condición de salto

70 ns para leer un registro del banco de registros

120 ns el tiempo de respuesta de la ALU con operaciones aritmético-lógicas

25 ns el tiempo de respuesta de la ALU cuando la información pasa sin operar.

80 ns para una lectura de memoria y 120 ns para una escritura.

¿Cuál sería el período mínimo de la señal de reloj para poder ejecutar correctamenteuna instrucción en la MR siguiendo el diagrama simplificado?

Solución: 

Para averiguar el período mínimo debemos calcular el retardo de todas las fases de ejecución,y para esto debemos analizar qué operaciones realiza la unidad de proceso. Suponiendo eldiagrama de estados simplificado de la máquina rudimentaria, tenemos:

222   Problemas de fundamentos y estructura de computadores

Page 239: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 239/569

 ESTADO FETCH:

t PCpPC!1% t MULTIPLEXOR! t INCREMENTADOR%55 ns

t IRpMEM[PC]% t MULTIPLEXOR! t LECTURA–MEMORIA%125 ns

 ESTADO DECO:

t LECTURA–DEL–PRIMER–OPERANDO% t MULTIPLEXOR! t LECTURA–BANCO–REGISTROS% 115 ns

t CÁLCULO–DIRECCIÓN%t MULTIPLEXOR!t LECTURA–BANCO!t SUMADOR–DIRECCIONES%140 ns

t EVALUACIÓN–DE–CONDICIÓN% 20 ns

 ESTADO LOAD:

t ESCRITURA–EN–BANCO–DESDE–MEMORIA% t MULTIPLEXOR! t LECTURA–DE–MEMORIA!

! t MULTIPLEXOR! t ALU%195 ns

 ESTADO STORE:

t SELECCIÓN–DE–LA–DIRECCIÓN% t MULTIPLEXOR%45 ns

t ESCRITURA–EN–MEMORIA–DESDE–BANCO% t MULTIPLEXOR! t LECTURA–BANCO–REGISTROS!

! t ESCRITURA–EN–MEMORIA% 235 ns

 ESTADO ARIT:

t SEGUNDO–OPERANDO–Y–ALU% t MULTIPLEXOR! t LECTURA–BANCO–REGISTROS!

! t MULTIPLEXOR! t ALU%280 ns

t IRpMEM[PC]% t MULTIPLEXOR! t LECTURA–MEMORIA%125 ns

t PCpPC!1% t MULTIPLEXOR! t INCREMENTADOR%55 ns

 ESTADO BRANCH:

t IRpMEM[R@]% t MULTIPLEXOR! t LECTURA–MEMORIA%125 ns

t PCpR@!1% t MULTIPLEXOR! t INCREMENTADOR% 55 ns

El estado que más tiempo necesita para ejecutarse será el de ARIT, que tiene un tiempo delectura del segundo operando y realización de la operación aritmético-lógica de 280 ns, por lotanto éste será el tiempo ciclo mínimo que debemos asignar al procesador para que funcionecorrectamente con todas las instrucciones.

PROBLEMA 20Considere el siguiente programa, escrito en código ensamblador de la MR:

03h LOAD 0(R0),R104h SUBI R1,#6,R105h BLE 706h BR 907h LOAD 1(R0),R208h STORE R1,2(R0)09h ADD R1,R2,R3

Capítulo 5  Estructura de un computador sencillo   223

Page 240: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 240/569

a)   Indique el orden de ejecución del código.

b)   ¿Cuánto tiempo tardaría en ejecutarse en la máquina del apartado a) si ésta sigue eldiagrama simplificado de la MR y tiene un tiempo de ciclo de 50 ns?

c)   Calcule el tamaño del código (n.o de bits) del programa.

Solución: 

a)   Indique el orden de ejecución del código.

Suponiendo que se empieza a ejecutar por la primera instrucción (dirección 03h) yque las otras posiciones están vacías:

03h LOAD 0(R0),R1; R1=MEM[0]=0000h04h SUBI R1,#6,R1; R1=R1-6=-605h BLE 7; SALTA A 07h07h LOAD 1(R0),R2; R2=MEM[1]=0000h

08h STORE R1,2(R0); MEM[2]=-609h ADD R1,R2,R3; R3=R1+R2=-6

b)   ¿Cuánto tiempo tardaría en ejecutarse en la máquina del apartado a) si ésta sigue el dia-grama simplificado de la MR y tiene un tiempo de ciclo de 50 ns?

Para calcular el tiempo que tarda en ejecutarse debemos ver por qué fases pasa cadainstrucción, contar el total de fases que se ejecutan según el apartado a) y multiplicar porel tiempo de ciclo:

03h LOAD 0(R0),R1; FETCH+DECO+LOAD04h SUBI R1,#6,R1; FETCH+DECO+ARIT05h BLE 7; DECO+BRANCH

07h LOAD 1(R0),R2; DECO+LOAD08h STORE R1,2(R0); FETCH+DECO+STORE09h ADD R1,R2,R3; FETCH+DECO+ARIT

En total son 16 ciclos y por lo tanto el tiempo de ejecución total del programa será16*50 ns%800 ns.

c)   Calcule el tamaño del código (n.o de bits) del programa.

Si la palabra de memoria son 16 bits, el tamaño del programa Sprograma será:

Sprograma%16 bits * 7 instrucciones%112 bits

5.6 Problemas propuestos

PROBLEMA 1

El diagrama siguiente representa una posible codificación de la unidad de control de la má-quina rudimentaria. Implemente la unidad de control mediante un contador módulo 8 (conseñal de Load prioritaria sobre la de Contar y Reset asíncrono). La máquina secuencial sólodebe representar las transiciones de estados (no es necesario implementar las salidas de la UCen cada estado) en función de las señales Cond, OP15 y OP14.

224   Problemas de fundamentos y estructura de computadores

Page 241: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 241/569

PROBLEMA 2

Partiendo del diagrama de estados de la MR simplificado, indica cuántos ciclos tardará enejecutarse el siguiente programa:

SUB R1, R2, R5

ADDI R3, 1, R1

LOAD 3(R5), R1

STORE R4, 1(R4)ASR R2, R7

PROBLEMA 3

a)   Suponiendo que el tiempo de respuesta de los diferentes elementos de la UP de MR es elsiguiente, indique la frecuencia máxima de reloj a la que puede trabajar la máquina rudi-mentaria teniendo en cuenta que los multiplexores no retardan las señales y que el estadomás lento es el de LOAD:

10 ns para el multiplexor SELDIR.

20 ns para los multiplexores SELREG y SELDAT.15 ns para el incrementador del PC y para el sumador de direcciones.

80 ns para el extensor de signo.

20 ns para la evaluación de la condición de salto.

40 ns para leer un registro del banco de registros.

120 ns el tiempo de respuesta de la ALU.

40 ns para una lectura de memoria y 100 ns para una escritura.

Capítulo 5  Estructura de un computador sencillo   225

Page 242: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 242/569

Page 243: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 243/569

c)   ¿En qué dirección está almacenada la instrucción  LOAD 101(R0),R2?

d)   Especifique el contenido de los registros PC y R@ durante las fases DECO y BRANCHde la instrucción  BRA fin.

e)   Indique el contenido de los registros RZ y RN tras la ejecución de la instrucción   LOAD

101(R0),R2 . ¿Y tras ejecutar la instrucción  STORE R1,res(R0)?

f)   Calcule el tamaño del código del programa. ¿Cuál sería el tamaño de este mismo códigosi la máquina rudimentaria dispusiera de 32 registros de propósito general en lugar desolamente 8?

PROBLEMA 7

Considere que el tiempo de respuesta de los diferentes elementos de la ruta de datos de lamáquina rudimentaria es el siguiente:

15 ns para el multiplexor SELDIR.

25 ns para los multiplexores SELREG y SELDAT.25 ns para el incrementador del PC.

30 ns para el sumador de direcciones.

5 ns para el extensor de signo.

20 ns para la evaluación de la condición de salto.

50 ns para leer un registro del banco de registros.

125 ns el tiempo de respuesta de la ALU con operaciones aritmético-lógicas.

35 ns el tiempo de respuesta de la ALU cuando la información pasa sin operar.

50 ns para una lectura de memoria y 90 ns para una escritura.

Sabiendo que la fase de instrucción que más tarda en ejecutarse es la fase de ARIT, ¿cuálsería la frecuencia máxima de trabajo?

PROBLEMA 9

Indique cómo afectaría a los elementos de la ruta de datos y al formato de instrucciones de laMR las siguientes modificaciones por separado y de forma acumulativa para cada apartado:

a)   Cambiar la memoria de 256 palabras por una de 2 K.

b)   Un banco de registros de 64 posiciones.

c)   En las operaciones aritmético-lógicas el segundo operando indica tanto el registro fuente

2 como el registro de destino.d)   Implementar 32 operaciones aritmético-lógicas.

PROBLEMA 10

Para hacer más rápidos los movimientos de datos vamos a cambiar la instrucción LOAD, demodo que ahora ya no modifica los bits N y Z.

a)   Dibujar detalladamente la unidad de proceso con este cambio.

b)   ¿Habría algun cambio en la ALU?

Capítulo 5  Estructura de un computador sencillo   227

Page 244: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 244/569

a

Page 245: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 245/569

Una vez que se ha estudiado en el capítulo anterior el formato de instrucciones y el significa-

do de las mismas para el procesador, vamos a estudiar diversos ejemplos de programación en

ensamblador. El lenguaje ensamblador permite al programador realizar programas en un len-

guaje mnemónico que facilite la tarea de especificar al procesador las operaciones que debe

realizar. Una vez ensamblado el programa se obtiene un código máquina o binario (instruc-

ciones codificadas en binario) que es lo que comprende en realidad la máquina ya que, como

se ha explicado en el capítulo anterior, de estas instrucciones el procesador puede obtener

toda la información importante para implementar el programa solicitado.

Un programa en ensamblador se compone básicamente de instrucciones y directivas. Las

directivas son partes del programa que se encargan de controlar las acciones auxiliares nece-

sarias para el proceso de ensamblado, definir variables y constantes, reservar posiciones de

memoria, identificar partes de comienzo, fin y etiquetas para implementar los bucles, especi-

ficar posiciones de memoria donde se almacenan los datos o definir bloques autocontenidos

(macros). Las instrucciones son las que implementan el programa como tal.

En este capítulo se ha utilizado el lenguaje ensamblador de la máquina rudimentaria expli-

cado anteriormente, aunque los conceptos son extensibles a otras arquitecturas. Para imple-

mentar un programa en ensamblador seguiremos el proceso siguiente. Primero obtenemos el

pseudocódigo, a partir de él el diagrama de flujo y después se traduce a código en ensambla-

dor. El repertorio de instrucciones que vamos a seguir es el siguiente.

Page 246: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 246/569

6.1 Instrucciones aritmético-lógicas

Instrucción Descripción Notación

ADD RF1,RF2,RD  Suma el contenido de dos registros (RF1 y RF2)

y lo almacena en otro registro (RD)  RDpRF1!RF2

SUB RF1,RF2,RD  Resta el contenido de dos registros (RF1 y RF2)

y lo almacena en otro registro (RD)  RDpRF1-RF2

ASR RF,RD  Desplazamiento a la derecha de RF y almacena el

resultado en RD. Mantiene signo  RDpARF

AND RF1,RF2,RD

Multiplicación lógica (AND) del contenido de dos

registros (RF1, RF2) y almacena el resultado en otro

registro (RD)

RDpRF1(AND)RF2

ADDI RF1,NUM,RD

Suma el contenido de un reg. (RF1) con un número

inmediato (NUM) y almacena el resultado en otro

registro (RD)

RDpRF1!NUM

SUBI RF1,NUM,RD

Resta el contenido de un reg. (RF1) con un número

inmediato (NUM) y almacena el resultado en otro

registro (RD)

RDpRF1-NUM

Todas ellas actualizan los bits de condición Z y N.

6.2 Instrucciones de acceso a memoria

Instrucción Descripción Notación

LOAD A(RI),RD

Carga el contenido de la dirección efectiva (E.A).

en el registro RD

E.A.%RI!A

RDpMEM[RI!A]

STORE RF, A(RI)

Almacena el contenido del registro RF en la posición

de memoria (E.A).

E.A.%RI!A

RDpMEM[RI!A]

Sólo LOAD actualiza los bits de condición Z y N.

6.3 Instrucciones de salto (BCC)

Las instrucciones de salto evalúan una condición con respecto a la anterior instrucción. Para

evaluar si se cumple o no la instrucción se comprueba el valor de los registros de estado N y

Z, que habrán sido modificados por la instrucción anterior.

230   Problemas de fundamentos y estructura de computadores

Page 247: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 247/569

Instrucción Descripción

BL DIR Salta a  DIR  si menor (si N%1)

BG DIR Salta a DIR  si mayor (si N%0 y Z%0)

BEQ DIR Salta a DIR  si igual (si Z%1)

BNE DIR Salta a  DIR  si distinto (si Z%0)

BLE DIR Salta a  DIR  si menor o igual (si N%1 o Z%1)

BGE DIR Salta a  DIR  si mayor o igual (si N%0 o Z%1)

BR DIR Salto incondicional%Salta siempre a  DIR 

Ninguna modifica los bits de estado.

6.4 Directivas

Directiva Operación

.DW VALOR1, VALOR2, ...  VALORN   Define  N  posiciones de memoria consecutivos con

valores iniciales VALOR1, VALOR2, ...  VALORN 

.RW N  Reserva N  posiciones de memoria consecutivas sin valor

inicial

IDENTIFICADOR%VALOR  Define un identificador con el valor asociado al valor,

por ejemplo una constante

.BEGIN ETIQUETA

Indica la instrucción de comienzo de ejecución. Paraidentificarla en el programa aparecerá la instrucción

precedida de:ETIQUETA:

.END Indica el final de la ejecución del programa

.ORG VALOR  Indica que la instrucción escrita a continuación se

almacenará en la posición de memoria dada por  VALOR 

.DEF  NOMBRE – MACRO 

PARAMETROS   Indica el inicio de una macro (similar a una subrutina)

.ENDDEF Indica el final de una macro

6.5 Diagramas de flujo

Para realizar el diagrama de flujo, identificaremos los bloques más habituales a partir de los

cuales desarrollaremos el código. Un ejemplo de este proceso se recoge en el problema 1 y en

el resto de problemas resueltos el lector puede encontrar ejemplos de cómo se traducen los

bloques recogidos en las figuras siguientes.

Capítulo 6  Introducción a la programación en lenguaje ensamblador   231

Page 248: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 248/569

Nota aclaratoria:

En todos los problemas resueltos en este capítulo tanto las instrucciones como las directivas

las escribiremos en mayúsculas.

6.6 Problemas resueltos

PROBLEMA 1

El siguiente algoritmo cambia el signo de todos los números negativos de un vector «v» de

N elementos. Traducir el siguiente pseudocódigo a ensamblador de la máquina rudimentaria:

for i:%0 to N-1

if v[i]a0 then

v[i]:%0-v[i];

end

end

232   Problemas de fundamentos y estructura de computadores

Page 249: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 249/569

Page 250: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 250/569

en el banco de registros. La solución es elegir el registro R0, que siempre vale 0. Elsegundo operando es v[i]; pero este dato está almacenado en R2. Por último el resultadode una operación aritmética se debe volcar siempre en un registro. Elegimos por ejem-plo R3. Con todo, la instrucción debería ser: R3pR0.R2. Pero es necesario una caja

más para volcar el contenido de R3 en la palabra v[i]. Teniendo en cuenta esto se redi-buja el diagrama de flujo con más detalle:

Recorriendo el diagrama en vertical, comenzando por arriba, y traduciendo cada caja al

lenguaje máquina de la máquina rudimentaria finalmente se obtiene:

.BEGIN INICIO

V: .DW -1,-2,-3,-4,-5,-6

N: .DW 6

INICIO: ADDI R0,#0,R1

FOR: SUBI R1,#N,R0

BGE FIN

LOAD V(R1),R2

SUBI R2,#0,R0

BGE INC

SUB R0,R2,R3

STORE R3,V(R1)

INC: ADDI R1,#1,R1

BR FOR

FIN:

.END

234   Problemas de fundamentos y estructura de computadores

Page 251: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 251/569

Page 252: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 252/569

Solución: 

236   Problemas de fundamentos y estructura de computadores

Page 253: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 253/569

.BEGIN INICIO

VSIZE=7

V: .DW 4,9,6,0,8,3,7

W: .DW -1,-1,-1,-1,-1,-1,-1

K: .DW 6

X: .DW 0

INICIO: LOAD K(R0),R1; R1:=K

REPEAT: LOAD V(R1),R3; R3:=V(K)

SUBI R3,#5,R0; R3b5?

BLE ELSE

LOAD X(R0),R2; R2:=X

SUBI R2,#0,R0; R2=0?

BNE ELSE

ADDI R3,#2,R4; W(k):=V(K)!

2STORE R4,W(R1)

BR FINIF

ELSE: STORE R3,X(R0); X:=V(K)

STORE R0,W(R1); W(K):=0

FINIF: SUBI R1,#1,R1

BGE REPEAT ;EL RESULTADO DEBE SER W=[0,B,8,0,0,0,9]

.END

PROBLEMA 4

Codificar el siguiente algoritmo en el lenguaje máquina de la MR. Dibujar también un dia-

grama de flujo que sirva para la codificación en lenguaje máquina y sea lo más completo

posible.

v% [2 0 8 1];

X% 1; Y% 2;

Vsize%4;

{--Algoritmo--}

for k %0 to vsize.1

while (Xa3)and(YaX)

X:%v(k);v(k):%Y;

x:%x!y;

y:%y.1;

end

Capítulo 6  Introducción a la programación en lenguaje ensamblador   237

Page 254: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 254/569

Solución: 

.BEGIN INICIO

V: .DW 2,0,8,1

X: .DW 1

Y: .DW 2

INICIO: LOAD X(R0),R1; R1<-X

LOAD Y(R0),R2; R2<-Y

ADD R0,R0,R7; R7<-0

FOR:SUBI R7,#4,R0; vsize=4

238   Problemas de fundamentos y estructura de computadores

Page 255: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 255/569

BGE FIN

WHILE: SUBI R1,#4,R0; X<3?

BGE INC

SUB R2,R1,R0; Y<X?

BGE INCLOAD V(R7),R1; R1<-V(I)

STORE R2,V(R7); V(I)<-Y

BR WHILE

INC:ADDI R7,#1,R7; I++

ADD R1,R2,R1; X:=X+Y

SUBI R2,#1,R2; Y=Y-1

BR FOR

FIN:STORE R1,X(R0)

STORE R2,Y(R0)

.END

El resultado debe ser:

Posición Contenido Variable

00 0002 V(0)

01 0001 V(1)

02 0000 V(2)

03 0001 V(3)

04 0007 X

05 FFFE Y

PROBLEMA 5

Codificar en el lenguaje de la máquina rudimentaria el siguiente algoritmo:

VSIZE=7;

V=[0,2,4,1,5,3,7];

W=ARRAY[0..VSIZE-1];

X=0;

FOR K=0 TO VSIZE-1IF (V[K]<=3 AND (X=0) THEN

W[K]:=X-V[K];

ELSE

X:=X+1;

W[K]:=0;

END

END

Capítulo 6  Introducción a la programación en lenguaje ensamblador   239

Page 256: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 256/569

Solución: 

.BEGIN INICIO

VSIZE=7;

V .DW 0,2,4,1,5,3,7

W .RW VSIZE

X .DW 0

INICIO: ADD R0,R0,R1

FOR: SUBI R1, #VSIZE,R0

BGE FIN

LOAD V(R1),R2

LOAD X(R0),R3

240   Problemas de fundamentos y estructura de computadores

Page 257: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 257/569

SUBI R2,#3,R0

BG ELSE

SUBI R3,#0,R0

BNE ELSE

THEN: SUB R3,R2,R4

STORE R4, W(R1)

BR FINIF

ELSE: ADDI R3,#1,R3

STORE R0, W(R1)

FINIF: ADDI R1,#1,R1

BR FOR

FIN: STORE R3,X(R0)

.END

PROBLEMA 6

Reescribe el siguiente algoritmo en el lenguaje de la máquina rudimentaria.

Dibuja también el diagrama de flujo.

vsize%8

V: vector vació de vsize elementos

W: [-3, -2, -1, 0, 2, 4, 6, 8]

cont :% 1;

While (cont m 7)

If W(cont-1) n W(cont!1) then

V(cont)%W(cont)/ 2;

Else

V(cont)%15;

cont :% cont! 1;

endWHILE

Solución: 

Vamos a utilizar R1 para llevar el contador (cont), R2 para ir cargando los componentes del

vector W y R4 para cargar los componentes del vector V. Utilizaremos además dos registrosauxiliares R3 y R4 para almacenar las posiciones de los vectores con índice ( i!1) e (i. 1).

En realidad este paso no sería necesario, ya que se podría hacer con un direccionamiento en la

instrucción de LOAD directamente, pero pretendemos ilustrar cómo se haría en caso de que

no fuera posible realizar esta carga directamente.

Capítulo 6  Introducción a la programación en lenguaje ensamblador   241

Page 258: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 258/569

El diagrama de flujo será:

242   Problemas de fundamentos y estructura de computadores

Page 259: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 259/569

.BEGIN INICIO

VSIZE=8

V: .RW 8

W: .DW -3,-2,-1,0,2,4,6,8

INICIO: ADDI R0,#1,R1; CONT=R1=1WHILE: LOAD W(R1),R2; R2<-W(CONT)

SUBI R1,#7,R0; CONT<=7?

BG FIN

ADDI R1,#1,R3; R3=CONT+1

SUBI R1,#1,R4; R4=CONT-1

LOAD W(R4),R5; R5=W(R1-1)

LOAD W(R3),R6; R6=W(R1!1)

SUB R5,R6

BL ELSE

ASR R2,R7

BR ENDWHILE

ELSE: ADDI R0,#15,R7

ENDWHILE: STORE R7,V(R1)

ADDI R1,#1,R1

BR WHILE

FIN: .END

PROBLEMA 7

Codificar el siguiente algoritmo en el lenguaje máquina de la MR. Dibujar también un dia-

grama de flujo que sirva para la codificación en lenguaje máquina y sea lo más completo

posible.v% [2 0 8 1];

X% 1; Y% 2;

{--Algoritmo--}

for k %0 to vsize-1

if (Xa3)or(YaX)

Y:%v(k);

v(k):%X;

X!!;

end

Capítulo 6  Introducción a la programación en lenguaje ensamblador   243

Page 260: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 260/569

Solución: 

.BEGIN INICIO

V: .DW 2,0,8,1

X: .DW 1Y: .DW 2

VSIZE%4

INICIO: ADDI R0,#0,R1

FOR: SUBI R1,#VSIZE,R0

BGE FIN

LOAD X(R0),R2

LOAD Y(R0),R3

SUBI R2,#3,R0

BL THEN

SUB R3,R2,R0

244   Problemas de fundamentos y estructura de computadores

Page 261: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 261/569

BGE INC

THEN: LOAD V(R1),R3

STORE R2,V(R1)

STORE R3,Y(R0)

ADDI R2,#1,R2STORE R2,X(R0)

INC: ADDI R1,#1,R1

BR FOR; EL RESULTADO FINAL ES V=[1,2,1,0]

FIN: .END

PROBLEMA 8

Dado el siguiente código:

inicio SUBI R0,1,R0

BEQ fin

ADD R1,R0,R2

fin STORE R2,X(R0)

a)   ¿Cuántas veces se ejecuta la instrucción «ADD»?

b)   ¿Qué valor debe tener R1 al comienzo del programa para que al terminar la ejecuciónX valga 5?

Solución: 

Para responder al apartado a) debemos seguir el funcionamiento del programa. La primerainstrucción es:

inicio SUBI R0,#1,R0

En esta instrucción realizamos la operación 0. 1%.1, con lo que después de esta ope-ración no se realiza escritura en los registros, pero el bit Z valdrá 0 y el bit N será 1, ya que elresultado de la operación es negativa:

BEQ fin

Esta instrucción no bifurca por lo explicado para la primera instrucción

ADD R1,R0,R2

Esta instrucción realice la operación: R2pR1!R0%R1

fin STORE R2,X(R0)

Almacenamos el valor de r 2 en la posición de la variable  x.

Por la tanto, no hay paradas en la ejecución y sólo se ejecuta una vez.

b)   Es evidente que R1 debe valer 5 al principio del programa para que al terminar la ejecu-ción X valga 5.

PROBLEMA 9

Codificar el siguiente algoritmo en el lenguaje máquina de la MR(1.25). Dibujar también

un diagrama de flujo que sirva para la codificación en lenguaje máquina y sea lo más com-

pleto posible.

Capítulo 6  Introducción a la programación en lenguaje ensamblador   245

Page 262: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 262/569

v% [2.4 6.8];

X% 0; Y%.1;

{--Algoritmo--}

while (Xa

vsize)and(Ya

X)begin

if v(X)b0 then

v(x):%y;

X:%X!1;

end

Solución: 

246   Problemas de fundamentos y estructura de computadores

Page 263: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 263/569

.BEGIN INICIO

;Reservamos las variables y definimos las constantes:

V: .DW 2,-4,6,-8

X: .DW 0

Y: .DW -1VSIZE=4

INICIO: LOAD X(R0),R1; R1=X

LOAD Y(R0),R2; R2=Y

WHILE: SUBI R1,#VSIZE,R0

BGE FIN

SUB R2, R1,R0

BGE FIN

LOAD V(R1),R3; RE%V(K)

SUBI R3,#0,R0

BLE FINIF

STORE R2, V(R1)FINIF: ADDI R1,#1,R1

BR WHILE

FIN: STORE R1,X(R0)

;

; EL CONTENIDO FINAL DE LAS 4

; PRIMERAS POSICIONES DE MEMORIA DEBE SER:

; 00 FFFF

; 01 FFFC

; 02 FFFF

; 03 FFF8

.END

PROBLEMA 10

Codificar el siguiente algoritmo en el lenguaje máquina de la MR(1.25). Dibujar también

un diagrama de flujo que sirva para la codificación en lenguaje máquina y sea lo más com-

pleto posible.

N% 8

v% [-4 -3 -2 -1 0 1 2 3];

w% vector de N elementos;

{--Algoritmo--}

k:%0; x:%0;while (k aN)and(x%0)

begin

if v(X)b0 then

x:%x!1;

w(k):%v(k)!4;

k:%k !1;

end

Capítulo 6  Introducción a la programación en lenguaje ensamblador   247

Page 264: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 264/569

Solución: 

248   Problemas de fundamentos y estructura de computadores

Page 265: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 265/569

.BEGIN INICIO

N=8

V: .DW -4,-3,-2,-1,0,1,2,3

W: .RW 8

INICIO: ADDI R0,#0,R1; K=0ADDI R0,#0,R2; X%0

WHILE: SUBI R1,#N,R0; K<N?

BGE FIN

SUBI R2,#0,R0; X=0?

BNE FIN

LOAD V(R1),R3;

SUBI R3,#0,R0

BLE FINIF

ADDI R2,#1,R2

FINIF: ADDI R3,#4,R3

STORE R3, W(R1)

ADDI R1,#1,R1

BR WHILE

FIN: .END

PROBLEMA 11

Codificar el siguiente algoritmo en el lenguaje máquina de la MR(1.25). Dibujar también

un diagrama de flujo que sirva para la codificación en lenguaje máquina y sea lo más com-

pleto posible (1.25).

N% 4

v% [-2, 4, -6, 8]w% vector de N elementos

x%1

y%0

Begin

for k :% 0 to N-1

begin

w(k)%0

if v(k)ay AND x%N then

x:%x!2

else

w(k):%

v(k)!

1end

end

End.

Capítulo 6  Introducción a la programación en lenguaje ensamblador   249

Page 266: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 266/569

Solución: 

250   Problemas de fundamentos y estructura de computadores

Page 267: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 267/569

.BEGIN INICIO

N=4

V: .DW -2, 4,-6,8

W: .RW 4

X: .DW 1Y: .DW 0

INICIO: LOAD X(R0),R3

LOAD Y(R0),R2

ADD R0,R0,R7; R7=K

IF: SUBI R7,#N,R0

BGE FIN

LOAD V(R7),R1

STORE R0, W(R7)

SUB R1,R2,R0

BGE ELSE

SUBI R3,#N,R0

BG ELSE

THEN: ADDI R3,#2,R3

BR INCK

ELSE: ADDI R1,#1,R4

STORE R4,W(R7)

INCK: ADDI R7,#1,R7

BR IF

FIN: STORE R3,X(R0)

STORE R2, Y(R0); W=[0,5,0,9]

.END

PROBLEMA 12

Codificar el siguiente algoritmo en el lenguaje máquina de la MR. Dibujar también un dia-

grama de flujo que sirva para la codificación en lenguaje máquina y sea lo más completo

posible (1.25).

N% 6

v% [-1, -2, 3, 4, -5, 5]

w% vector de N elementos

Begin

for k :% 0 to N-1begin

w(k):%v(k)!1;

if w(k)b0 AND k mN-2 then

w(k):%w(k)!v(k !1);

end

end

End.

Capítulo 6  Introducción a la programación en lenguaje ensamblador   251

Page 268: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 268/569

Solución: 

252   Problemas de fundamentos y estructura de computadores

Page 269: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 269/569

.BEGIN INICIO

N%6

V: .DW -1,-2,3,4,-5,5

W: .RW 6

INICIO: ADDI R0,#0,R1; R1=K

FOR: SUBI R1,#N,R0;

BGE FIN

LOAD V(R1),R2; R2<-V(K)

ADDI R2,#1,R3; W(K)=V(K)!1

STORE R3,W(R1)

SUBI R3,#0,R0; R3>0?

BLE INC

SUBI R1,#4,R0

BL THEN

SUBI R3,#0,R0

BLE INC

ADDI R2,#1,R2

STORE R2,V(R2)

THEN: ADD R2,R3,R3

STORE R3, W(R1)

INC: ADDI R1,#1,R1

BR FOR

FIN: .END

PROBLEMA 13

Traducir el siguiente pseudocódigo a ensamblador:

Vsize%10

v : [0,1,2,3,4,5,6,7,8,9]

w : vector vacio de Vsize elementos

For i :% 0 to Vsize-1

If (v[i]b%3) Then w[i]:%0

Else w[i]:%v[i!1]

Capítulo 6  Introducción a la programación en lenguaje ensamblador   253

Page 270: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 270/569

Solución: 

.BEGIN INICIO

V: .DW 0,1,2,3,4,5,6,7,8,9

W: .RW 10

VSIZE=10

INICIO: ADDI R0,#0,R1; R1:=i

FOR: SUBI R1,#VSIZE,R0; Comparar (i, VSIZE)

BGE FIN; Salta si i>=VSIZE

LOAD V(R1),R2; R2:=V[i]

IF: SUBI R2,#3,R0; Comparar (V[i],3)

BL ELSE; Salta si V[i]a3

THEN: STORE R0,W(R1);

BR INC–I

ELSE: ADDI R1,#1,R2; R2:=i+1

LOAD V(R2),R2; R2:=V[i+1]

STORE R2, W(R1); ELSE W[i]:=V[I+1]

INC–I: ADDI R1,#1,R1; i++

BR FOR

FIN: .END

254   Problemas de fundamentos y estructura de computadores

Page 271: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 271/569

PROBLEMA 14

Dadas las siguientes instrucciones y el contenido de los registros especificado y sabiendo

que el contenido inicial de la posición de memoria 0003h es 0101h, indicar el contenido de

los registros después de la ejecución de las 4 instrucciones de manera consecutiva:SUB R1, R3,R2 R1= F454 h

ADDI R3,7,R2 R2= 0010 h

LOAD 1(R4), R5 R3= 6100h

ADDI R5,3,R5 R4= 0002 h

R5= 57BAh

Solución: 

Suponemos que el programa está almacenado en memoria a partir de la primera posición de

memoria:

00h SUB R1, R3,R2

01h ADDI R3, 7,R2

02h LOAD 1(R4), R5

03h ADDI R5,3,R5

A continuación escribimos las operaciones que realizan las instrucciones y el resultado de

la misma:

00h SUB R1, R3,R2 R2pR1-R3 F454h.6100h%9354h

01h ADDI R3, 7,R2 R2pR3!7 6100h!0007h%6107h

02h LOAD 1(R4), R5 R5pM[0003h] ****

03h ADDI R5,3,R5 R5pR5!3 ED18h!0003h%ED1B

****Exactamente lo que carga es el contenido de la posición de memoria número 3 que corresponde

con el código máquina de la instrucción: ADDI R5,3,R5.

Los registros quedarán por tanto:

R1%F454h

R2%6107h

R3%6100h

R4%0002hR5%ED1Bh

PROBLEMA 15

Indica cuál es el resultado de ejecutar las siguientes instrucciones, dando el contenido final

de los registros y posiciones de memoria que se modifican y el valor de los indicadores de

condición. Se supone para cada caso que el contenido inicial de los registros y posiciones

de memoria es el siguiente:

Capítulo 6  Introducción a la programación en lenguaje ensamblador   255

Page 272: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 272/569

R0 0000h

R1 3201h

R2 6352h

R3 0001hR4 0002h

R5 0003h

R6 FFFFh

R7 0000h

Dirección Contenido

00h 1228h

01h 36FAh

02h AB01h

03h 1234h

04h 7865h

05h 45ABh

ADD R1, R4, R5

ADDI R4, 8, R6

ASR R1,R5

LOAD 3(R4), R7

STORE R7, 0(R4)

ADD R1,R2,R3

Solución: 

Analizamos las operaciones que se realizan en cada una de las instrucciones y a continuación

actualizamos el contenido de los registros y memoria:

ADD R1, R4, R5Esta instrucción realiza la operación R1!R4 y almacena el resultado en R5:

R5p3201h! 0002h%3203h

Por lo tanto el contenido de los registros quedará:

R0 0000h

R1 3201h

R2 6352h

R3 0001h

R4 0002h

R5 3203h

R6 FFFFh

R7 0000h

ADDI R4, 8, R6

Esta instrucción realiza la operación R4!8 y almacena el resultado en R6:

R6p0002h! 0008h%000Ah

Por lo tanto el contenido de los registros quedará:

R0 0000hR1 3201h

R2 6352h

R3 0001h

R4 0002h

R5 3203h

R6   000Ah

R7 0000h

256   Problemas de fundamentos y estructura de computadores

Page 273: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 273/569

ASR R1,R5

Esta es una instrucción de desplazamiento. Desplaza el contenido de R1 una posición a la

izquierda y almacena el resultado en R5:

R5pA2454h% 122Ah

Y ahora el contenido del registro cambia:

R0 0000h

R1 3201h

R2 6352h

R3 0001h

R4 000Ah

R5 122Ah

R6 FFFFh

R7 0000h

LOAD 2(R7), R7

Estamos ahora ante una instrucción de carga que realiza la operación de almacenar en el

registro R7 el contenido de la posición de memoria indicado por la suma R7!2. La posición

de memoria que contiene el dato será por lo tanto 0002h cuyo contenido según el enunciado

es: AB01h. El nuevo estado de los registros será:

R0 0000h

R1 3201h

R2 6352h

R3 0001h

R4 000Ah

R5 122Ah

R6 FFFFh

R7 AB01h

STORE R7, 0(R3)

La operación de STORE almacena el contenido de un registro en la posición de memoria

indicada por el segundo operando, calculando dicha posición de manera análoga a como se

calcula en la instrucción LOAD. Por lo tanto debemos escribir el contenido del registro R7 en

la posición 0000h!R3% 0001h. Con esto el contenido de la memoria después de ejecutar la

instrucción será:

Capítulo 6  Introducción a la programación en lenguaje ensamblador   257

Page 274: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 274/569

Dirección Contenido

00h 1228h

01h AB01h

02h AB01h

03h 1234h

04h 7865h

05h 45ABh

ADD R1,R2,R3

La última instrucción es una suma de registros y escribirá en R3 el resultado de la opera-

ción R1!R2:

R3p3201h! 6352h%9553h

Con lo que el contenido final de los registros quedará:

R0 0000h

R1 3201h

R2 6352h

R3 9553h

R4 000Ah

R5 122Ah

R6 FFFFh

R7 AB01h

PROBLEMA 16

Escribir un programa en lenguaje ensamblador que ordene por el método de la burbuja el

siguiente vector de 8 elementos:

V% [0,3,7,6,2,5,1,4]

Solución: 

El algoritmo de la burbuja es un algoritmo clásico de iniciación a la programación y se puede

expresar en pseudocódigo de la siguiente forma:

for i%0 to tamaño–vector-1

for j%0 to tamaño–vector-2

if vector(j) b vector (j!1)

temp% v(j);

v(j)%v(j!1);

v(j!1)%temp;

end if 

end for

endfor

258   Problemas de fundamentos y estructura de computadores

Page 275: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 275/569

El diagrama de flujo resulta sencillo a partir de este pseudocódigo partiendo por ejemplo

del problema 17:

Capítulo 6  Introducción a la programación en lenguaje ensamblador   259

Page 276: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 276/569

.BEGIN INICIO

V: .DW 0,3,7,6,2,5,1,4

VSIZE=8

INICIO: ADDI R0,#0,R1; R1:=i

FORI: SUBI R1,#VSIZE,R0; Comparar (i, VSIZE)

BGE FIN; Salta si i>=VSIZE

ADDI R0,#0,R2;

FORJ: SUBI R2,#VSIZE,R0; Comparar (i, VSIZE)

BGE ENDFORI; Salta si i>=VSIZE

LOAD V(R2),R3; R3:=V[j]

ADDI R2,#1,R4; R4:=j+1

LOAD V(R4),R5; R5:=V[j+1]

SUB R5,R3,R0

BL ENDFORJ

STORE R5,V(R2);

STORE R3,V(R4);

ENDFORJ:ADDI R2,#1,R2; j++

BR FORJ

ENDFORI:ADDI R1,#1,R1

BR FORI

FIN: .END

PROBLEMA 17

Escribir un programa en lenguaje ensamblador que intercambie los siguientes dos vectores

almacenados en memoria:

V% [1,1,1,2] y W% [0,0,0,3]

Solución: 

El algoritmo de intercambio de vectores en pseudocódigo se reduce a un bucle for:

for i%0 to tamaño–vector

temp% v(i);

v(i)%w(i);

w(i)%temp;

endfor

260   Problemas de fundamentos y estructura de computadores

Page 277: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 277/569

y el diagrama de flujo quedará, identificando tamaño–vector con VSIZE:

Que se traduce en el siguiente código:

.BEGIN INICIO

V: .DW 1,1,1,2

W: .DW 0,0,0,3

VSIZE=4

INICIO:ADDI R0,#0,R1; R1:=i

FOR: SUBI R1,#VSIZE,R0; Comparar (i, VSIZE)

BGE FIN; Salta si i>=VSIZE

LOAD V(R1),R2; R2:=V[i]

LOAD W(R1),R3; R2:=V[i+1]

STORE R2, W(R1);

STORE R3, V(R1);

ADDI R1,#1,R1; i!!

BR FOR

FIN: .END

Capítulo 6  Introducción a la programación en lenguaje ensamblador   261

Page 278: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 278/569

PROBLEMA 18

Escribe en lenguaje ensamblador de la MR un programa que realice la división por 2n de

un número NUM. El exponente  n es un número positivo menor de 16.

Solución: 

A: dato

N

for i%0 to N

A:%A/2

end for

.BEGIN INICIO

A: .DW 256

N%6

INICIO:ADDI R0,#0,R1; R1:=i

LOAD A(R0),R2; R2:=A

FOR: SUBI R1,#N,R0; Comparar (i, VSIZE)

BGE FIN; Salta si i>=VSIZE

ASR R2,R2; DIVIDE POR 2

INC: ADDI R1,#1,R1; i++

BR FOR

FIN: STORE R2,A(R0);

.END

PROBLEMA 19

Traducir el siguiente pseudocódigo a ensamblador de la MR, suponiendo que los vectores

se almacenan a partir de la dirección de memoria 00h y el programa se almacena a partir

de la dirección 60h.

B% [2,1,2,2,3,9,8,8,7,5].

C% [0,9,8,6,7,6,6,7,8,2]

N%10;

For i%0 to N-1

If B[i]>C[i]

A[i]:=B[i]+C[i]

else

A[i]:=C[i]-B[i]

end if 

end for

262   Problemas de fundamentos y estructura de computadores

Page 279: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 279/569

Solución: 

.BEGIN INICIO

B: .DW 2,1,2,2,3,9,8,8,7,5

C: .DW 0,9,8,6,7,6,6,7,8,2

A: .RW 10

N%10

INICIO: ADDI R0,#0,R1; R1:=i

FOR: SUBI R1,#N,R0; Comparar (i, VSIZE)

BGE FIN; Salta si i>=VSIZE

LOAD B(R1),R2; R2:=B[i]

LOAD C(R1),R3; R3:=C[i]

SUB R2,R3,R0

BLE ELSE

ADD R2,R3,R4

BR INC

ELSE: SUB R3,R2,R4

INC: STORE R4,A(R1);

ADDI R1,#1,R1

BR FOR

FIN: .END

PROBLEMA 20

Realizar una macro que realice la operación A/ 2n y escribir un programa ejemplo que utili-

ce esa macro para  n%

6.

Solución: 

La macro la definimos de la siguiente forma:

.DEF POT $1,$2

;$1% REGISTRO FUENTE

;$2% EXPONENTE

ADDI R0,#0,R3;

FOR: SUB $2,R3,R0;

BLE FIN

ASR $1,$1;

ADDI R3,#1,R3;

BR FOR

FIN: .ENDDEF

Y el programa será:

.BEGIN INICIO

VALOR: . .DW 256

EXP: .DW 6

Capítulo 6  Introducción a la programación en lenguaje ensamblador   263

Page 280: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 280/569

RESULT: .RW 1

INICIO: LOAD VALOR(R0),R1

LOAD EXP(R0),R2

POT R1,R2

STORE R2,RESULT(R0).END

Que se traduciría a un programa conjunto como:

.BEGIN inicio

valor: .DW 256

exp: .DW 6

result: .RW 1

inicio: load valor(R0),R1

load exp(R0),R2

–pot R1,R2

addi R0,#0,R3

$010101: sub R2,R3,R0

ble $010102

asr R1,R1

addi R3,#1,R3

br $010101

$010102:

–end pot R1,R2

store R2,result(R0)

.END

6.7 Problemas propuestos

PROBLEMA 1

Codificar en el lenguaje de la máquina rudimentaria el siguiente algoritmo:

vsize%6;

V%[0,1,2,3,4,5];

W%vector vacio de vsize elementos;

cont%0;

repeat

If (cont % 1) or (cont b% 3) then

W(cont)%V(cont-1);

Else

W(cont) % vsize;

Until (cont% 6)

264   Problemas de fundamentos y estructura de computadores

Page 281: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 281/569

PROBLEMA 2

Indica cuál es el resultado de ejecutar las siguientes instrucciones, dando el contenido final de

los registros y posiciones de memoria que se modifican y el valor de los indicadores de condi-

ción. Se supone para cada caso que el contenido inicial de los registros y posiciones de memo-

ria es el siguiente:

R0 0000h

R1 3201h

R2 6352h

R3 0001h

R4 0002h

R5 0003h

R6 FFFFh

R7 0000h

Dirección Contenido

00h 1228h

01h 36FAh

02h AB01h

03h 1234h

04h 7865h

05h 45ABh

SUB R1, R4, R5

ADDI R4, 8, R6

ASR R1,R5

LOAD 3(R4), R7

STORE R7, 0(R4)

ADD R1,R2,R3

PROBLEMA 3

Codificar en lenguaje ensamblador de la máquina rudimentaria el siguiente programa:

IF AbBbCbD THEN F%A!B!C!D

ELSE A%B; B%C; C%D; D%E; E%A; F%0

PROBLEMA 4

Diseñar un programa en lenguaje ensamblador que calcule el máximo común divisor de 93,

75, 24 y 13.

PROBLEMA 5

Diseñar un programa en lenguaje ensamblador que calcule el mínimo común múltiplo de 93,

75, 24.

PROBLEMA 6

Diseñar una macro en lenguaje ensamblador de la máquina rudimentaria que realice el pro-

ducto de 3 números.

PROBLEMA 7

Diseñar un programa en lenguaje ensamblador de la máquina rudimentaria que almacene en

una variable el producto de 4 valores utilizando la macro diseñada en el problema propuesto 6.

Capítulo 6  Introducción a la programación en lenguaje ensamblador   265

Page 282: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 282/569

PROBLEMA 8

Diseñar un programa en lenguaje ensamblador que realice el producto de dos matrices de

3#3 valores. Defina claramente cómo se almacenarán los valores en memoria.

PROBLEMA 9

Codificar el siguiente algoritmo en el lenguaje máquina de la MR. Dibujar también un diagra-

ma de flujo que sirva para la codificación en lenguaje máquina y sea lo más completo posible

v% [2 0 8 3 4 6 7 9 1];

w% [1 2 2 2 3 0 8 8 6]

{--Algoritmo--}

for k %1 to vsize

if v(k)a w(k)

w(k)%v(K)

endif 

endfor

PROBLEMA 10

Implementar el lenguaje ensamblador una macro que realice la operación A*B/ 8 y escriba un

programa que la utilice.

266   Problemas de fundamentos y estructura de computadores

Page 283: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 283/569

Al diseñar un computador o al mejorar un subsistema de alguno existente, el arquitecto decomputadores debe tener presentes los objetivos de la máquina a modificar teniendo en cuentados parámetros importantes: el coste y el rendimiento. Dependiendo del equilibrio que se ha-ga de ellos se creará desde un ordenador personal (barato y rendimiento medio) hasta un su-percomputador (caro y con un rendimiento muy alto). En este capítulo se tratan los aspectosrelacionados con el rendimiento y el coste de un computador. Antes de exponer las principa-les métricas utilizadas para evaluar el rendimiento de un computador, proporcionamos algu-nas definiciones útiles.

7.1 Definiciones

Todos los computadores utilizan una señal periódica que determina el momento en que tienenlugar los eventos hardware: dicha señal se llama  reloj.

Tiempo de ciclo:  Es el tiempo en segundos que transcurre entre dos tics de reloj.

Frecuencia de reloj:  Es la inversa del tiempo de ciclo (medido en  Hz% s.1)

Ciclos de reloj por programa:

Instrucciones por programa

Ciclos promedio por instrucción

Los  Ciclos Promedio por Instrucción (CPI)  se calculan como una suma ponderada del

número de ciclos que tarda por separado cada tipo de instrucción. Ejemplo de ejecución de unprograma:

Operación Frecuencia Ciclos CPI % tiempo

Carga 20% 5 1,0 45%

Salto 20% 2 0,4 18%

CPI%2,2

Aritméticas 50% 1 0,5 23%

Almacenamiento 10% 3 0,3 14%

Page 284: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 284/569

7.2 Medidas de rendimiento

Las medidas de rendimiento permiten comparar objetivamente las prestaciones de computa-

dores distintos. Permiten determinar cuál ofrece mayor potencia de cálculo o mayor velocidad

de procesamiento, es decir, cuál tarda menos tiempo en ejecutar nuestras aplicaciones. Lasprincipales métricas son las siguientes:

Tiempo de ejecución (medido en segundos/programa):  Incluye, junto con el tiempo de eje-cución de un programa, los tiempos de E/ S, tiempos de acceso a memoria, tiempo de sistemaoperativo, etc. Es útil, pero depende de demasiados factores para poder ser usado eficiente-

mente.

Tiempo de CPU:  Sólo cuenta la fracción de tiempo de ejecución en la que la CPU está ocu-pada. Puede ser descompuesto en dos términos:

Tiempo de usuario: tiempo empleado por la CPU para ejecutar un programa.

Tiempo de sistema: tiempo empleado por la CPU para ejecutar tareas del sistema ope-

rativo en beneficio del programa.De los anteriores, consideraremos como métrica principal del rendimiento de un procesa-

dor para un programa  el tiempo de usuario de CPU. Se define como:

(Instrucciones por programa)#CPI# (Tiempo de ciclo)

Donde las   instrucciones por programa  dependen directamente de los programadores, los

compiladores y la arquitectura del repertorio de instrucciones. El  tiempo de ciclo  depende dela tecnología y la organización interna del computador, y   los ciclos promedio por instruccióndependen de la organización interna del computador y de la arquitectura del repertorio deinstrucciones.

El rendimiento se evalúa ejecutando programas reales, programas de prueba (benchmarks)que ejecutan un amplio abanico de operaciones de forma intensiva (operaciones multimedia,en coma flotante, desplazamiento, etc.).

Existen además otras métricas muy utilizadas para evaluar el rendimiento. A continuaciónenumeramos dos de ellas.

7.3 MIPS: Millones de instrucciones por segundo

Dado un programa, esta métrica se calcula usando una de las siguientes ecuaciones:

MIPS%Instrucciones por programa

Tiempo ejecución# 106

MIPS%Frecuencia de reloj

CPI#106

MIPS presenta algunas deficiencias:

Depende del repertorio de instrucciones: El tiempo que tarda en ejecutarse una mis-ma instrucción y el número de instrucciones máquina que genera el compilador puedevariar de un repertorio a otro. Dos programas distintos pueden tener comportamientos

opuestos.

268   Problemas de fundamentos y estructura de computadores

Page 285: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 285/569

La medida de MIPS puede variar mucho de un programa a otro:   Existen instruc-ciones que tardan más tiempo en ejecutarse que otras. Los programas en los que abun-dan instrucciones «rápidas» tardan menos en ejecutarse Los programas en los que abun-dan instrucciones «lentas» tardan más en ejecutarse.

Los fabricantes pueden dar medidas de MIPS muy optimistas:   Utilizando progra-mas donde predominan instrucciones que tardan poco en ejecutarse.

7.4 MFLOPS: Millones de instrucciones en coma flotantepor segundo

Esta métrica evalúa las instrucciones en coma flotante porque son las que más tardan en eje-

cutarse. Es una medida algo más fiable del rendimiento real del computador, se define como:

MFLOPS%Instrucciones de coma flotante por programa

Tiempo ejecución# 106

Al igual que MIPS, MFLOPS presenta algunas deficiencias:

Depende del repertorio de instrucciones en coma flotante: No todos los computado-

res ofrecen las mismas operaciones en coma flotante. Dos programas distintos pueden

tener comportamientos opuestos.

Es inútil para muchos programas:  Los programas enteros (sin operaciones en coma

flotante) no pueden medirse en MFLOPS.

Existen instrucciones en coma flotante de distinto tiempo de ejecución:  Por ejem-

plo, las operaciones aritméticas como la suma o la resta son rápidas. En cambio algunas

operaciones trigonométricas o logarítmicas son lentas.

Los fabricantes pueden dar también medidas de MFLOPS optimistas: Al igual que

en MILP, utilizando programas donde predominan instrucciones que tardan poco en

ejecutarse.

7.5 Ley de AMDAHL

La Ley de Amdahl establece que «la mejora obtenida en el rendimiento de un sistema debido

a la alteración de uno de sus componentes está limitada por la fracción de tiempo que se utili-

za dicho componente». Matemáticamente se puede describir mediante la siguiente ecuación:

 A% Tiempo sin mejoraTiempo con mejora

% 1

(1.F m)!F m

 Am

donde:

 A: es la aceleración o ganancia en velocidad conseguida en el sistema completo debido a

la mejora de uno de sus subsistemas.

 Am: Factor de mejora que ha introducido el subsistema alterado.

F m: Fracción de tiempo que el sistema emplea el subsistema alterado.

Capítulo 7   Rendimiento   269

Page 286: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 286/569

7.6 Problemas resueltos

PROBLEMA 1

Si la máquina A  corre un programa en 10 segundos y la máquina  B  corre el mismo progra-ma en 15 segundos, ¿cuántas veces es más rápida  A  que  B?

Solución: 

El rendimiento es la inversa del tiempo de ejecución:

 R%1

Por lo tanto la relación de rendimiento es:

 R A

 R B

%T  BT  A%1,5

Y A  es por tanto 1,5 veces más rápida que  B.

PROBLEMA 2

Se desea comparar el rendimiento de dos máquinas diferentes: M1 y M2. Se han tomado

las siguientes medidas:

Programa Tiempo en M1 Tiempo en M2

A 4,0 segundos 3,0 segundos

B 10,0 segundos 20,0 segundos

¿Qué máquina es más rápida para cada programa y en qué medida?

Solución: 

Programa A:

Tiempo en M1: 4,0 segundos

Tiempo en M2: 3,0 segundos

El computador M2 es más rápido para el programa A, de hecho es 4,0/ 3,0%1,33 veces

más rápido.

Programa B:

Tiempo en M1: 10,0 segundos

Tiempo en M2: 20,0 segundos

Claramente, M1 es más rápido que M2 para el programa B, 20,0/ 10,0% 2 veces más

rápido.

270   Problemas de fundamentos y estructura de computadores

Page 287: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 287/569

PROBLEMA 3

Considere los dos computadores del problema anterior. Se realizan las siguientes medidas

adicionales:

Programa Instrucciones en M1 Instrucciones en M2

A 5#109 6#109

Determinar el número de instrucciones por segundo para cada computador cuando és-

tos ejecutan el programa A.

Solución: 

Total de instrucciones ejecutadas en M1: 5#109 instrucciones.

Tiempo de M1: 4,0 segundos

Instrucciones por segundo: 5#109

/ 4% 1,25#109

instrucciones/ segundo.

Total de instrucciones ejecutadas en M2: 6#109 instrucciones.

Tiempo de M2: 3,0 segundos

Instrucciones por segundo: 6#109/ 3% 2#109 instrucciones/ segundo.

PROBLEMA 4

Una empresa está decidiendo comprar un lote de una de las dos máquinas del problema

anterior. Supongamos que la máquina M1 cuesta 400  e  y que M2 cuesta 700  e. Si el

programa A debe ejecutarse un mayor número de veces, ¿qué computador comprarías en

grandes cantidades? ¿Por qué?

Solución: 

Coste de M1: 400 e

Coste de M2: 700 e

Tiempo del programa A en M1: 4 segundos

Tiempo del programa A en M2: 3 segundos

En este caso deseamos maximizar el ratio de tiempo de cómputo a la vez que minimiza-

mos el coste requerido para hacerlo, es decir, calculamos el coste por unidad de rendimiento:

Coste1 ejecución programa A

Tiempo de ejecución

%Coste#Tiempo de ejecución

Por lo tanto:

Para M1: 400 e#4 s% 1.600 e s

Para M2: 700 e#3 s%2.100 e s

De donde se deduce que M2 sale menos rentable que M1, por lo que M1 es el que debe ser

elegido para adquirir el lote.

Capítulo 7   Rendimiento   271

Page 288: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 288/569

PROBLEMA 5

Un ingeniero está preocupado por el rendimiento de dos computadores, que ejecutando dos

programas ofrecen los siguientes resultados.

Programa Tiempo en M1 Tiempo en M2

1 2,0 segundos 1,5 segundos

2 5,0 segundos 10,0 segundos

Si M1 cuesta 500  e   y M2 cuesta 800  e. Si los programas 1 y 2 se ejecutan con una

frecuencia similar,

a)   ¿Qué computador ofrece un mejor rendimiento global? ¿En qué medida?

b)   ¿Qué computador es más efectivo en términos de rentabilidad?

Solución: 

a)   Como la carga de ambos programas es similar, podemos trabajar con la suma de tiempos

de ambos programas:

Tiempo total para M1: 2,0 s!5,0 s%7,0 s

Tiempo total para M2: 1,5 s!10,0 s%11,5 s

Por lo tanto M1 es 11,5 s/ 7,0 s%1,64 veces más rápido que M2.

b)   M1 es claramente más rentable, puesto que es el más barato además del más rápido.

PROBLEMA 6

Se quiere ejecutar un programa de 7,5#109 instrucciones en una máquina de 5 GHz con

un CPI de 0,8.

a)   ¿Cuál es el tiempo de CPU?

b)   Cuando se ejecuta el programa, este tarda 3 segundos en acabar, ¿cuál es el tiempo (en

porcentaje) tomado por la CPU para ejecutar el programa?

Solución: 

Número de instrucciones: 7,5#109

Frecuencia: 5 GHz

CPI: 0,8

a)   El tiempo de CPU viene dado por la siguiente ecuación:

t %Instrucciones#CPI

Frecuencia% 7,5#109#0,8#0,2# 109%1,2 segundos

272   Problemas de fundamentos y estructura de computadores

Page 289: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 289/569

b)   Si el tiempo real de ejecución es de tres segundos, el tiempo invertido en el programa por

la CPU será:

% tiempo tomado por CPU%1,2

3

#100% 40%

El resto del tiempo (60%) se habrá dedicado a entrada/ salida, sistema operativo, etc.

PROBLEMA 7

Se dispone de los siguientes datos respecto a dos potentes procesadores y una determinada

tarea de aplicación:

Power PC a 1,8 GHz de frecuencia y 700 MIPS de potencia.

Pentium 4: 1,6 GHz de frecuencia y 850 MIPS.

Calcular el CPI de cada procesador.

Solución: 

El número de Ciclos Promedio por Instrucción (CPI) se puede calcular sencillamente usando

la expresión:

MIPS%Frecuencia de reloj

CPI#106  á   CPI%

Frecuencia de reloj

MIPS#106

Por lo tanto, en el Power PC:

CPI%1,8# 109

700# 106

Ciclos

Instrucción% 2,57

Ciclos

Instrucción

Mientras que el Pentium 4:

CPI%1,6# 109

850# 106Ciclos

Instrucción% 1,88

Ciclos

Instrucción

PROBLEMA 8

Se dispone de un computador dotado del procesador Power PC a 1,8 GHz y otro con el

Pentium 4 a 1,6 GHz. Se sabe que el CPI del primero es de 5,5 y el del segundo de 7 para

un determinado programa escrito en lenguaje de alto nivel. El programa que traduce dicho

programa a instrucciones máquina del Power PC lo convierte en nueve millones de dichas

instrucciones, mientras el que realiza la misma traducción a instrucciones máquina del

Pentium lo convierte en 7,2# 105 instrucciones. ¿Cuál de los computadores ejecutará más

rápidamente la tarea?

Solución: 

El tiempo de ejecución del programa se puede calcular usando:

T % N  I #CPI# t 

Capítulo 7   Rendimiento   273

Page 290: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 290/569

Donde  N  I  es el número de instrucciones y   t   es el tiempo de ciclo. Por lo tanto podemos

calcular el tiempo de ejecución para ambos computadores. Para el Power PC tenemos:

T % N  I #CPI# t %9#106# 5,50#1

1,80#109

 s% 27,50 ms

Mientras que para el Pentium 4 resulta:

T % N  I #CPI# t %7,20#106# 7#1

1,60#109 s% 31,50 ms

PROBLEMA 9

Sea una arquitectura cuyo repertorio de instrucciones está formado por cuatro tipos de ins-

trucciones cuyas medidas de CPI se muestran en la siguiente tabla:

Tipo CPI

Tipo 1 1

Tipo 2 2

Tipo 3 3

Tipo 4 4

Se nos pide que evaluemos dos compiladores diferentes con vista a adquirir uno de

ellos para nuestro departamento de desarrollo.

Compilando un mismo programa en cada compilador se obtienen los siguientes valores

(en miles de millones para cada tipo de instrucción), tal y como se refleja en la tabla si-

guiente:

Compilador Total de instrucciones por tipo (miles de millones)

Tipo 1 Tipo 2 Tipo 3 Tipo 4

Compilador 1 5 1 1 2

Compilador 2 10 1 1 4

Si la frecuencia de reloj de los computadores que tenemos en nuestro departamento de

desarrollo es de 1,2 GHz, se pide:a)   Ejecutable más rápido en cuanto a tiempo de ejecución.

b)   Ejecutable más rápido tomando como medida los MIPS.

Solución: 

a)   Para averiguar cuál es el ejecutable más rápido basta con calcular el tiempo de ejecución

de cada uno de los programas utilizando la fórmula (t % tiempo de ciclo):

T % N  I #CPI# t 

274   Problemas de fundamentos y estructura de computadores

Page 291: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 291/569

Y como:

CPI%Ciclos de reloj

 N  I 

La ecuación anterior se reduce a:

T %Ciclos de reloj# t 

Podemos calcular directamente el tiempo de ejecución para el programa resultante de

cada compilador:

T 1% (5#109# 1!1#109# 2!1#109# 3!2#109# 4)t % 18#109t 

T 2% (10#109# 1!1#109# 2!1#109# 3!4#109# 4)t % 31#109t 

Y por lo tanto, el compilador 1 genera un programa que es 1,72 veces más rápido que

el generado por el compilador 2.b)   Podemos calcular los MIPS utilizando la fórmula:

MIPS%Instrucciones por programa

Tiempo ejecución#106

Por lo tanto, para cada compilador tenemos:

MIPS1%9# 109

18#109#106# 1,2#109%600

MIPS2%

16# 109

31#109#106# 1,2#109%619,4

Aunque el compilador 1 genera un programa más rápido, el compilador 2 ejecuta más

instrucciones por segundo.

PROBLEMA 10

Nuestro programa favorito se ejecuta en 10 s. en un computador   A  que tiene un reloj de

100 MHz. Estamos tratando de ayudar a un diseñador que construye una máquina  B, que

ejecutará este programa en 6 s. El diseñador ha determinado que es posible un incremento

sustancial en la frecuencia de reloj, pero este incremento afectará al resto del diseño de la

CPU, haciendo que la máquina  B  necesite 1,2 veces el número de ciclos de reloj que lamáquina A  para este programa. ¿Qué frecuencia de reloj debería utilizar el diseñador?

Solución: 

Primero calculamos el número de ciclos de reloj para el programa en  A. El tiempo de usuario

de CPU es el cociente entre el número de ciclos de un programa y la frecuencia de reloj:

T  A%C  A

F  A

Capítulo 7   Rendimiento   275

Page 292: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 292/569

por lo tanto

10 s%C  A

100 . 106  ciclos

sde donde

C  A%1.000# 106 ciclos

El tiempo para  B  se puede hallar mediante la ecuación anterior, teniendo en cuenta que

C  B%1,2#C  A:

T  B%1,2#C  A

F  Bá   6 s%

1,2# 1.000#106 ciclos

F  B

de donde finalmente se puede obtener la frecuencia para  B:

F  B%1,2#1.000#106 ciclos

6 s%200# 106

 ciclos

s%200 MHz

PROBLEMA 11

Supongamos que tenemos dos implementaciones de la misma arquitectura del repertorio

de instrucciones. La máquina  A  tiene una duración de ciclo de 10 ns y un CPI de 2,0 para

un programa. La máquina  B  tiene una duración de ciclo de 20 ns y un CPI de 1,2 para el

mismo programa. ¿Qué máquina es más rápida para este programa, y cuánto?

Solución: 

Como tienen el mismo repertorio, sabemos que las dos ejecutan el mismo número de instruc-

ciones para el programa, sea  N i. Los ciclos de reloj para cada máquina son:

C  A% N i# 2,0

C  B% N i# 1,2

Ahora podemos calcular el tiempo de CPU para cada máquina ( t % tiempo de ciclo):

T  A%C  A# t  A% N i#2,0#10 ns% 20# N i ns

T  B%C  B# t  B% N i#1,2#20 ns% 24# N i ns

Claramente, A  es más rápida que  B. La proporción es:

 R A

 R B

%T  B

T  A%

24# N i  ns

20# N i  ns%1,2

PROBLEMA 12

Se ha diseñado un procesador multiciclo basado en MIPS con la siguiente clasificación de

instrucciones y sus respectivos ciclos de ejecución:

276   Problemas de fundamentos y estructura de computadores

Page 293: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 293/569

Instrucción Ciclos

Carga 5

Almacenamiento 4

Aritmético-lógicas 4

Salto condicional, realizando el salto 4

Salto condicional, no realizando el salto 3

Salto incondicional 3

Inicialmente se determinó que la ruta crítica que fija la longitud del ciclo de reloj se

corresponde con las operaciones en las unidades aritméticas, y no con los accesos memo-

ria como realmente ocurre. Esto ha llevado a replantear la implementación para que la

frecuencia de reloj sea de 500 MHz en vez de 750 MHz inicialmente propuesta. Sin em-bargo, uno de los ingenieros ha propuesto como solución de compromiso que los ciclos

de acceso a memoria se subdividan en dos para, de este modo, admitir la frecuencia de

reloj inicial (750 MHz). Usando las proporciones de instrucciones que se muestran a con-

tinuación, determina la ganancia de velocidad que se obtiene empleando la máquina de 2

ciclos de acceso a memoria con reloj de 750 MHz, frente a la máquina con 1 ciclo de

acceso a memoria y reloj de 500 MHz.

Frecuencia de uso de las diferentes instrucciones para un caso típico:

Carga: 22%.

Almacenamiento: 11%.

Aritmético-lógicas: 49%.

Salto condicional, realizando el salto: 4%.

Salto condicional, no realizando el salto: 12%.

Salto incondicional: 2%.

Solución: 

Añadir un ciclo más a la etapa de acceso a memoria implica que las instrucciones de almace-

namiento y carga tardarán 5 y 6 ciclos respectivamente en lugar de los 4 y 5 ciclos que tenían

destinadas originalmente.

En este caso debemos calcular el tiempo de ejecución para cada arquitectura. El tiempo de

ejecución viene dado por la siguiente ecuación:

T % (instrucciones por programa)#CPI# (tiempo de ciclo)

Por lo tanto, en la máquina de 500 MHz

T 500MHz% N i#CPI500MHz# t 500MHz% N i#CPI500MHz#1

500#106 s

Capítulo 7   Rendimiento   277

Page 294: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 294/569

Mientras que en la máquina de 750 MHz

T 750MHz% N i#CPI750MHz# t 750MHz% N i#CPI750MHz#1

750#106 s

Para calcular los ciclos promedio por instrucción, basta calcular la suma ponderada con

los datos del problema. De esta forma, para la máquina a 500 MHz:

CPI500MHz%0,22# 5!0,11#4! 0,49#4!0,04# 4!0,12#3! 0,02# 3%4,08

Mientras que la máquina de 750 MHz tenemos:

CPI750MHz%0,22# 6!0,11#5! 0,49#4!0,04# 4!0,12#3! 0,02# 3%4,41

De donde el tiempo de ejecución en ambas máquinas es:

T 500MHz%

 N i#

4,08#

1

500# 106 s%

 N i#

8,16 s

T 750MHz% N i#4,41#1

750# 106 s% N i# 5,87 s

Según las ecuaciones anteriores podemos concluir que la máquina original a 750 MHz,

incrementando en un ciclo las instrucciones de acceso a memoria, es 1,39 veces más rápida

que una máquina con el repertorio original de instrucciones y con el reloj modificado

a 500 MHz.

PROBLEMA 13

Sea el siguiente juego de instrucciones para un computador, junto a los porcentajes de usopara un determinado programa:

Instrucción Ciclos Frecuencia

Carga 5 22%

Almacenamiento 4 11%

Aritmético-lógicas 4 49%

Salto condicional, realizando el salto 4 4%

Salto condicional, no realizando el salto 3 12%

Salto incondicional 3 2%

a)   Determinar cuál de las tres máquinas siguientes es la más rápida y con qué relación:

M1: ruta multiciclo con los ciclos definidos en la tabla y reloj de 500 MHz.

M2: ruta multiciclo en donde las instrucciones de carga y aritmético-lógicas tardan un

ciclo menos que en M1. Esto rebaja la frecuencia de reloj a 400 MHz al aumentar la

longitud del camino crítico.

278   Problemas de fundamentos y estructura de computadores

Page 295: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 295/569

M3: ruta multiciclo como la de M2 donde además las instrucciones de carga y almace-

namiento tardan un ciclo menos que en M2. Esto rebaja la frecuencia de reloj a 250

MHz, al alargar la longitud del ciclo para el camino crítico.

b)   ¿Hay proporciones de instrucciones que hiciesen que fuese otra la máquina más rápi-da? Si es así, ¿qué proporciones son esas?

Solución: 

a)   Sabemos que el tiempo de ejecución viene dado por la siguiente fórmula:

T % N i#CPI# t 

Por otro lado, los ciclos por instrucción en cada máquina se resumen en la siguiente

tabla:

Instrucción Ciclos M1 Ciclos M2 Ciclos M3

Carga 5 4 3

Almacenamiento 4 4 3

Aritmético-lógica 4 3 3

Salto-condicional (SI) 4 4 4

Salto-condicional (NO) 3 3 3

Salto-incondicional 3 3 3

Junto con los porcentajes dados en los enunciados, podemos obtener el CPI en cada

máquina:

CPIM1%0,22# 5!0,11#4! 0,49#4!0,04# 4!0,12#3! 0,02#3%4,08

CPIM2%0,22# 4!0,11#4! 0,49#3!0,04# 4!0,12#3! 0,02#3%3,37

CPIM3%0,22# 3!0,11#3! 0,49#3!0,04# 4!0,12#3! 0,02#3%3,04

De donde, el tiempo de ejecución será:

T M1

%

 N i#

4,08#

1

500#106 s%

 N i#

8,16 ns

T M2% N i# 3,37#1

400#106 s% N i# 8,42 ns

T M3% N i# 3,04#1

250#106 s% N i# 12,12 ns

Por lo tanto la máquina M1 es 1,03 veces más rápida que M2 y 1,49 veces más rápida

que M3.

Capítulo 7   Rendimiento   279

Page 296: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 296/569

b)   Por ejemplo, si el 100% de las instrucciones fuesen aritméticas, el CPI de M1 sería 4 y el

de las otras dos máquinas sería 3. En este caso, el tiempo de ejecución es:

T M1% N i#4#1

500#106

 s% N i#8 ns

T M2% N i#3#1

400#106 s% N i#7,5 ns

T M3% N i#3#1

250#106 s% N i#12 ns

En cuyo caso la máquina M2 sería la más rápida.

PROBLEMA 14

Se tiene un programa en un computador  X  que tarda 35 segundos en ejecutarse mientrasque en el computador  Y  emplea 21 segundos. Se sabe que el programa está formado por

522 millones de instrucciones. ¿Cuánto es más rápido el computador   Y   que el   X ? ¿Qué

cantidad de instrucciones por segundo (MIPS) ejecuta cada computador?

Solución: 

Se sabe que una máquina  Y  es  n  veces más rápida que otra  X  si:

 RY 

 R X 

%T  X 

T Y %n

Con lo que:

T  X 

T Y %1,67

De donde se desprende que el computador  Y  es 1,67 veces más rápido que el  X .

Para la segunda cuestión podemos utilizar la fórmula:

MIPS%Instrucciones por programa

Tiempo ejecución# 106

De donde, para la máquina  X  tenemos:

MIPS X %522#106 instrucciones

35 s# 106  %14,91

Mientras que para la máquina Y :

MIPSY %522#106 instrucciones

21 s#106  %24,86

280   Problemas de fundamentos y estructura de computadores

Page 297: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 297/569

PROBLEMA 15

En un concurso de algoritmos en ensamblador que realizan la misma tarea, el algoritmo

que menor tiempo emplee será el ganador. Se supone que el código estará formado por tres

tipos de instrucciones únicamente, recogiéndose en la tabla siguiente el número de ciclospor instrucción para cada uno de los tipos

Tipo 1 1

Tipo 2 2

Tipo 3 3

Tras un cuidadoso estudio del código de los participantes, el jurado se ha quedado con

dos programas cuyas características se muestran en la tabla siguiente:

Programa Total de instrucciones por tipo

Tipo 1 Tipo 2 Tipo 3

Programa 1 2 1 2

Programa 2 4 1 1

Se nos pide determinar el programa ganador.

Solución: 

Para averiguar cuál es el programa ganador basta con calcular el tiempo de ejecución de cada

uno de los programas utilizando la fórmula (t % tiempo de ciclo):

T % N i#CPI# t 

Y como:

CPI%Ciclos de reloj

 N i

La ecuación anterior se reduce a:

T %Ciclos de reloj# t 

Podemos calcular directamente el tiempo de ejecución para cada programa:

T 1% (2#1! 1#2!2# 3)t % 10t 

T 2% (4#1! 1#2!1# 3)t % 9t 

Y por lo tanto, el programa 2 es el ganador, pues es un 10% más rápido que el programa 1.

Capítulo 7   Rendimiento   281

Page 298: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 298/569

PROBLEMA 16

Un programa consta de 140 instrucciones de las cuales 70 tardan en ejecutarse cuatro

ciclos, 35 tardan cinco ciclos, 20 tardan tres ciclos y las 15 restantes tardan siete ciclos.

Calcular el CPI promedio para dicho programa. Si el procesador funciona a una frecuencia

de 2,0 GHz, averiguar el tiempo que se tarda en ejecutar el programa.

Solución: 

Para calcular el número de Ciclos Promedio por Instrucción (CPI) realizaremos la suma pon-

derada de cada tipo de instrucción del programa. En primer lugar debe calcularse la frecuen-

cia relativa de cada tipo, usando la expresión:

 f i%ni

 N 

Donde ni  es el número de instrucciones del  i-ésimo tipo y N  es el número total de instruccio-

nes del programa.

Finalmente el CPI del programa es la suma ponderada del número de ciclos de cada tipo

de instrucción (CPIi):

CPI%;   f i#CPIi

Teniendo en cuenta las expresiones anteriores puede completarse fácilmente la siguiente

tabla:

n i    CPIi    f i    f i #CPIi 

70 4 0,50 2

35 5 0,25 1,25

20 3 0,14 0,42

15 7 0,11 0,77

CPI%4,44

El tiempo de ejecucion del programa puede obtenerse usando el CPI calculado previa-

mente:

T % N i#CPI # t 

De donde

T % 140#4,44# 12,0# 109

 s%3,108#10.7 s] 0,321  ]s

PROBLEMA 17

Se desea mejorar el rendimiento de un computador introduciendo una tarjeta gráfica de

última generación que realice las operaciones en la mitad de tiempo.

a)   Calcular la ganancia en velocidad del sistema para la ejecución de un programa si el

87% del mismo se dedica a operaciones gráficas.

282   Problemas de fundamentos y estructura de computadores

Page 299: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 299/569

b)   Si el programa tarda 32 segundos en ejecutarse sin la mejora, ¿cuánto tardara con la

mejora?

Solución: 

a)   La ley de Amdahl se resume en la ecuación:

 A%Tiempo sin mejora

Tiempo con mejora%

1

(1.F m)!F m

 Am

donde:

 A: es la aceleración o ganancia en velocidad conseguida en el sistema completo de-

bido a la mejora de uno de sus subsistemas.

 Am: Factor de mejora que ha introducido el subsistema alterado.F m: Fracción de tiempo que el sistema emplea el subsistema alterado.

Para resolver el ejercicio debemos aplicar esta ley de Amdahl. De los datos del enun-

ciado se ve que  Am%2 y que  F m%0,87

 A%1

(1. 0,87)!0,87

2

%1,7699

De donde vemos que el nuevo sistema será un 76,99% mas rápido.

b)

 A%Tiempo ejecución sin mejora

Tiempo ejecución con mejoraú   1,7699%

32

Tiempo ejecución con mejora

De donde el programa, con la mejora tardará 18,08 s en ejecutarse.

PROBLEMA 18

Se desea mejorar el repertorio de instrucciones de un computador, y para ello se barajan las

alternativas siguientes, todas ellas del mismo coste:

Mejorar las instrucciones de suma.

Mejorar las instrucciones de salto condicional.

Mejorar las instrucciones de carga-almacenamiento.

Mejorar el resto de las instrucciones.

En la tabla siguiente se recoge el porcentaje de veces que se emplean las instrucciones

una vez pasadas las SPECint2006 y el factor de mejora que se puede introducir para cada

una de ellas

Capítulo 7   Rendimiento   283

Page 300: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 300/569

Tipo de instrucción Porcentaje de uso Factor de mejora

Suma 30% 10

Salto condicional 55% 2

Carga-almacenamiento 12% 8

Resto de instrucciones 3% 10

Se pide:

a)   Indicar cuál de las mejoras anteriores es la que recomendaramos.

b)   Si un programa tardaba antes de la mejora 37,02 s en ejecutarse, calcule cuánto tarda-

rá con la mejora que hemos elegido en a).

Solución: 

a)   Aplicando la ley de Amdahl para cada uno de los casos se obtiene:

Tipo de instrucción Fm

  Am

  A

Suma 30% 10 1,37

Salto condicional 55% 2 1,38

Carga-almacenamiento 12% 8 1,12

Otras 3% 10 1,03

Por lo que la mayor ganancia se da en las instrucciones de salto condicional.

b)   De la ley de Amdahl sabemos que:

 A%Tiempo ejecución sin mejora

Tiempo ejecución con mejoraú   1,38%

37,02

Tiempo ejecución con mejora

Por lo que el tiempo modificando las instrucciones de salto condicional será de 26,83 s.

PROBLEMA 19

Se desea mejorar el repertorio de instrucciones de un computador, y para ello se barajan las

alternativas siguientes, todas ellas del mismo coste:

Mejorar las instrucciones de suma.

Mejorar las instrucciones de salto condicional.

Mejorar las instrucciones de carga-almacenamiento.

Mejorar el resto de las instrucciones.

284   Problemas de fundamentos y estructura de computadores

Page 301: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 301/569

En la tabla siguiente se recoge el porcentaje de veces que se emplean las instrucciones

una vez pasadas las SPECint2006 y el factor de mejora que se puede introducir para cada

una de ellas.

Tipo de instrucción Porcentaje de uso Factor de mejora

Suma 30% 1

Salto condicional 34% 4

Carga-almacenamiento 32% 2

Resto de instrucciones 4% 7

Se pide:

a)   Indicar cuál de las mejoras anteriores es la que recomendaríamos.

b)   Si un programa tardaba antes de la mejora 28,3 s en ejecutarse, calcule cuánto tardarácon la mejora que hemos elegido en el apartado anterior.

Solución: 

a)   Aplicando la ley de Amdahl para cada uno de los casos se obtiene:

Tipo de instrucción Fm

  Am

  A

Suma 30% 5 1,31

Salto condicional 34% 4 1,34

Carga-almacenamiento 32% 2 1,19

Otras 4% 7 1,03

Por lo que la mayor ganancia se da en las instrucciones de salto condicional.

b)   De la ley de Amdahl sabemos que:

 A%Tiempo ejecución sin mejora

Tiempo ejecución con mejoraú   1,34%

28,3

Tiempo ejecución con mejora

Por lo que el tiempo modificando las instrucciones de salto condicional será de 22,12 s.

PROBLEMA 20

Un computador tiene un rendimiento de 3 MFLOPS normalizados a operaciones sencillas

en coma flotante. Si la operación de multiplicación equivale a cuatro operaciones en coma

flotante sencillas y la de exponenciación se equipara con 8:

a)   Calcular el tiempo que se tarda en realizar la tarea sabiendo que consta de las siguien-

tes operaciones en coma flotante: 4.000 sumas, 1.500 multiplicaciones y 2.200 opera-

ciones de de exponenciación.

Capítulo 7   Rendimiento   285

Page 302: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 302/569

Para el computador anterior se ofrecen tres alternativas de diseño de igual coste:

1.   Introducir una nueva ALU que realiza la operación de exponenciación en 5 ciclos.

2.   Introducir una nueva ALU que realiza la operación de multiplicación en 1 ciclo.

3.   Introducir algunas mejoras estructurales que permitan aumentar la frecuencia dereloj del procesador de forma que su rendimiento sea 3,5 MFLOPS.

b)   Analizar la rentabilidad de estas alternativas.

Solución: 

a)   En primer lugar transformamos las operaciones del enunciado a operaciones en coma flo-

tante sencillas. Esto nos dará el número total de instrucciones:

 N i%4.000! 4#1.500!8# 2.200%27.600

De la fórmula de cálculo de MFLOPS:

MFLOPS%Instrucciones de punto flotante por programa

Tiempo ejecución#106

Se desprende que:

Tiempo ejecución% N i

MFLOPS#106%

27.600

3# 106 s%9,2 ms

b)   La rentabilidad de estas alternativas se puede evaluar mediante la ley de Amdahl:

 A%Tiempo sin mejora

Tiempo con mejora

%1

(1.F m)!F m Am

donde:

 A: es la aceleración o ganancia en velocidad conseguida en el sistema completo de-

bido a la mejora de uno de sus subsistemas.

 Am: Factor de mejora que ha introducido el subsistema alterado.

F m: Fracción de tiempo que el sistema emplea el subsistema alterado.

Caso b.1)

En este caso mejoramos las operaciones de exponenciación, reduciéndolas a 5 ciclos.

El factor de mejora es  Am%8

5% 1,60.

El tiempo que el sistema original utiliza estas operaciones se puede deducir con una

regla de tres:

4.000! 4#1.500!8# 2.200r 100%

8#2.200rF m

De donde  F m%63,77%.

286   Problemas de fundamentos y estructura de computadores

Page 303: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 303/569

Y por lo tanto

 A%1

(1.

0,64)!

0,64

1,60

%1,32

Finalmente, podemos calcular el tiempo tras la mejora:

 A%Tiempo ejecución sin mejora

Tiempo ejecución con mejoraú   1,32%

9,2 ms

Tiempo ejecución con mejora

Por lo que el tiempo modificando las instrucciones de exponenciación será de 7 ms

aproximadamente.

Caso b.2)

En este caso mejoramos las operaciones de multiplicación, reduciéndolas a 1 ciclo.

El factor de mejora es  Am%4

1% 4.

El tiempo que el sistema original utiliza estas operaciones se puede deducir con una

regla de tres:

4.000! 4#1.500!8# 2.200r 100%

4#1.500rF m

De donde  F m%21,74%.

Y por lo tanto

 A%1

(1. 0,22)!0,22

4

%1,20

Finalmente, podemos calcular el tiempo tras la mejora:

 A%Tiempo ejecución sin mejora

Tiempo ejecución con mejoraú   1,20%

9,2 ms

Tiempo ejecución con mejora

Por lo que el tiempo modificando las instrucciones de multiplicación será de 7,7 msaproximadamente.

Caso b.3)

En este caso mejoramos todo el sistema, haciendo que éste trabaje a 3,5 MFLOPS.

El factor de mejora es  Am%3,5

3% 1,17.

El tiempo utilizado por el subsistema es en este caso del 100%, de donde  F m% 100%.

Capítulo 7   Rendimiento   287

Page 304: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 304/569

Y por lo tanto

 A%1

(1. 1)!1

1,17

%1,17

Finalmente, podemos calcular el tiempo tras la mejora:

 A%Tiempo ejecución sin mejora

Tiempo ejecución con mejoraú   1,17%

9,2 ms

Tiempo ejecución con mejora

Por lo que el tiempo modificando la frecuencia de reloj será de 7,9 ms aproximada-

mente.

Evidentemente, la mejora en las operaciones de exponenciación (b.1) será la más ren-

table (sin tener en cuenta factores de coste de implementación.)

PROBLEMA 21

Se desea mejorar el rendimiento de un computador introduciendo un coprocesador mate-

mático que realice las operaciones en la mitad de tiempo.

a)   Calcular la ganancia en velocidad del sistema para la ejecución de un programa si el

96% del mismo se dedica a operaciones aritméticas.

b)   Si el programa tarda 15 segundos en ejecutarse sin la mejora, ¿cuánto tardará con la

mejora?

Solución: 

a)   La ley de Amdahl se resume en la ecuación:

 A%Tiempo sin mejora

Tiempo con mejora%

1

(1.F m)!F m

 Am

donde:

 A: es la aceleración o ganancia en velocidad conseguida en el sistema completo de-

bido a la mejora de uno de sus subsistemas.

 Am: Factor de mejora que ha introducido el subsistema alterado.

F m: Fracción de tiempo que el sistema emplea el subsistema alterado.

Para resolver el ejercicio debemos aplicar esta ley de Amdahl. De los datos del enun-

ciado se ve que  Am%2 y que  F m%0,96

 A%1

(1. 0,96)%0,96

2

%1,9231

De donde vemos que el nuevo sistema será un 92,31% más rápido.

288   Problemas de fundamentos y estructura de computadores

Page 305: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 305/569

b)

 A%Tiempo ejecución sin mejora

Tiempo ejecución con mejoraú   1,9231%

15

Tiempo ejecución con mejora

De donde el programa con la mejora tardará 7,8 s en ejecutarse.

7.7 Problemas propuestos

PROBLEMA 1

Sean dos máquinas que arrojan los siguientes datos cuando se ejecutan dos programas en

ellas:

Programa Tiempo en M1 Tiempo en M2

P1 2,0 segundos 1,5 segundos

P2 5,0 segundos 10,0 segundos

P1 debe ejecutarse 1.600 veces cada hora. El tiempo restante se emplea en ejecutar P2. Si

cada máquina tiene suficiente capacidad como para ejecutar P1 el número de veces requerido,

esto significa que el rendimiento viene dado por el número de veces que puede ejecutarse P2.

¿Qué máquina es más rápida dada esta carga de trabajo? ¿Cuál de ellas es más rentable?

PROBLEMA 2

Consideremos dos implementaciones diferentes de un programa: P1 y P2, bajo el mismo re-

pertorio de instrucciones que contiene cinco clases de instrucciones (A, B, C, D y E).

P1 trabaja en un computador a una frecuencia de 4 GHz, P2 en uno de 6 GHz. Los ciclos

promedio por instrucción para P1 y P2 se dan en la siguiente tabla:

Clase CPI en P1 CPI en P2

A 1 2

B 2 2

C 3 2

D 4 4

E 5 4

a)   El pico de rendimiento se alcanza cuando el programa está compuesto sólo por las ins-

trucciones más rápidas. ¿Cuál es el pico de rendimiento para P1 y P2?

b)   Si el número de instrucciones ejecutadas en un programa dado se divide equitativamente

entre las instrucciones dadas excepto por las de tipo A, que aparecen el doble de veces,

¿cuánto más rápido es P2?

Capítulo 7   Rendimiento   289

Page 306: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 306/569

PROBLEMA 3

Sean dos implementaciones distintas de un programa P1 y P2, desarrollados en computadores

diferentes pero con el mismo repertorio de instrucciones. Existen tres clases de instrucciones

(A, B y C). P1 se ejecuta en un computador a 6 GHz, y P2 en un computador a 3 GHz. Los

ciclos promedio para cada clase de instrucción en P1 y P2 vienen dados en la siguiente tabla,

así como la proporción de instrucciones generadas por tres compiladores diferentes:

Clase CPI en P1 CPI en P2 Uso de C1 Uso de C2 Uso de C3

A 2 1 40% 40% 50%

B 3 2 40% 20% 25%

C 5 2 20% 40% 25%

Suponga que cada compilador genera el mismo número de instrucciones para ambos pro-

gramas.

a)   Usando C1 para compilar P1 y P2, ¿qué programa se ejecuta más rápido y en qué medida?

b)   Repita el apartado anterior, pero usando C2.

c)   Si el programa que usa es P1, ¿qué compilador utilizaría?

d)   Repite el apartado anterior para P2

e)   ¿Qué programa y compilador utilizaría suponiendo que el coste es el mismo? Recuerde

que P1 sólo se puede ejecutar en el computador de 6 GHz y P2 en el de 3 GHz.

PROBLEMA 4

Sea un programa, que se ejecuta en 10 s en un computador a 1 GHz. Se crea una nueva ver-

sión del programa, reemplazando todas las multiplicaciones por 4 ( x%4*x) con dos instruc-

ciones que suma la variable a sí misma ( x% x! x;  x% x! x). El CPI de la multiplicación

por 4 es 4, mientras que el CPI de la suma es 1. Después de compilar la nueva versión, el

programa se ejecuta en 9 s. ¿Cuántas multiplicaciones por 4 se han sustituido por sumas?

PROBLEMA 5

Una compañía quiere mejorar un programa Java añadiendo soporte hardware para el recolec-

tor de basura. La recolección de basura toma el 20% de los ciclos totales de un programa.

Existen dos alternativas para mejorar el computador. La primera solución consiste en recolec-

tar la basura completamente vía hardware. Esto produce un incremento del tiempo de ciclo enun factor de 1,2. La segunda alternativa consiste en proporcionar nuevas y mejores instruccio-

nes para recolectar los punteros no referenciados, lo que reduce a la mitad el tiempo que nece-

sita el recolector original pero incrementa el tiempo de ciclo en un factor de 1,1. ¿Cuál de

estas opciones deberíamos tomar?

PROBLEMA 6

Supongamos que mejoramos un computador para hacer que todas las operaciones en coma

flotante se ejecuten 5 veces más rápido. Si el tiempo de ejecución de un benchmark antes de

290   Problemas de fundamentos y estructura de computadores

Page 307: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 307/569

la mejora del hardware es de 10 s., ¿cuál es la mejora si la mitad del tiempo se emplea en

ejecutar operaciones en coma flotante?

PROBLEMA 7

Queremos implementar una nueva unidad en coma flotante para un procesador, y queremos

que el benchmark elegido para realizar las pruebas mejore el rendimiento en un factor de 3,0.

Utilizando nuestra vieja unidad de operaciones en coma flotante el benchmark se ejecuta en

100 s. ¿Cuánto mejorara el tiempo de ejecución del benchmark nuestra nueva unidad funcio-

nal?

PROBLEMA 8

Queremos mejorar un computador, y tenemos dos posibles alternativas. La primera es hacer

que las instrucciones de multiplicación se ejecuten cuatro veces más rápido. La segunda es

que las instrucciones de acceso a memoria se ejecuten dos veces más rápido. Ejecutamos re-

petidas veces un programa que tarda 100 s en ejecutarse. De este tiempo, el 20% se invierte enmultiplicación, el 50% en instrucciones de acceso a memoria y el 30% para otras instruccio-

nes.

a)   ¿Cuál será la ganancia si sólo mejoramos la multiplicación?

b)   ¿Cuál será la ganancia si sólo mejoramos los accesos a memoria?

c)   ¿Cuál será la ganancia si mejoramos las dos opciones?

PROBLEMA 9

Se desea mejorar el rendimiento de un computador introduciendo un coprocesador matemáti-

co que realice las operaciones en coma flotante en la mitad de tiempo.a)   Calcular la ganancia en velocidad del sistema para la ejecución de un programa si el 36%

del mismo se dedica a operaciones en coma flotante.

b)   Si el programa tarda 15 segundos en ejecutarse sin la mejora, ¿cuánto tardará con la me-

 jora?

PROBLEMA 10

En el dominio de los sistemas empotrados, donde el coste es crucial, a menudo los procesado-

res implementan sus operaciones en coma flotante vía software. Estamos interesados en dos

diseños de un computador, uno con hardware para operaciones en coma flotante y otro sin él.

Consideremos un programa con el siguiente juego de instrucciones en coma flotante:– Multiplicación en CF: 10%

– Suma en CF: 15%

– División en CF: 5%

– Instrucciones enteras: 70%

El computador CCF (computador con coma flotante) tiene hardware para realizar ope-

raciones en coma flotante. Los ciclos requeridos para cada tipo de instrucciones son los si-

guientes:

Capítulo 7   Rendimiento   291

Page 308: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 308/569

– Multiplicación en CF: 6

– Suma en CF: 4

– División en CF: 20

– Instrucciones enteras: 2El computador CSCF (sin coma flotante) debe emular las operaciones en coma flotante

usando instrucciones de tipo entero. Una instrucción de tipo entero consume dos ciclos de

reloj. Los números de instrucciones enteras requeridos para emular las operaciones en coma

flotante son las siguientes:

– Multiplicación en CF: 60

– Suma en CF: 20

– División en CF: 50

Calcular la métrica MIPS para ambos computadores.

292   Problemas de fundamentos y estructura de computadores

Page 309: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 309/569

Los modos de direccionamiento son procedimientos que permiten determinar la dirección de

un objeto, siendo un objeto cualquier elemento direccionable, es decir, una instrucción, un

operando o un resultado. Se define dirección efectiva como la dirección en la que se encuentra

el objeto. Los objetos pueden residir en la propia instrucción, en un registro o en la memoria

principal.

Los modos de direccionamiento sirven para ahorrar espacio de memoria. Por ejemplo, si

un bus de direcciones tiene 64 bits, para direccionar un objeto necesitamos 64 bits, si la ins-trucción utiliza 2 operandos fuente y un operando destino, necesitará tener un tamaño de más

de 192 bits puesto que una instrucción debe incluir mas información aparte de la dirección de

los operandos. Si implementamos un modo de direccionamiento que sólo utilice 32 bits se

consiguen instrucciones de menor tamaño. Cuanto menor sea el tamaño de las instrucciones,

menor es la memoria.

Por otro lado, su uso simplifica el manejo de las estructuras de datos complejas, dan flexi-

bilidad a los programadores de lenguaje máquina y facilitan el diseño de compiladores. De las

diferentes clasificaciones que existen vamos a usar la siguiente:

Inmediato.

Directo.Relativo o con desplazamiento.

Indirecto.

8.1 Direccionamiento inmediato

En este modo de direccionamiento el operando se incluye en la propia instrucción. Este modo

se utiliza para definir constantes. Para representar el inmediato se utilizan un número de bits

Page 310: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 310/569

menor que el del bus de datos, por eso cuando se carga en un registro del procesador hay que

realizar una operación de extensión de signo. Esta operación consiste en añadir al número

inmediato tantos bits como necesite para que alcance el mismo tamaño que el registro destino

conservando el mismo valor numérico que representaba antes de la operación. Su principal

ventaja es que no se tiene que acceder a memoria para obtener el dato, luego es muy rápido.Su principal desventaja es que la magnitud del dato está restringida por el tamaño del campo

inmediato.

8.2 Direccionamiento directo

Es aquel modo en el que la instrucción contiene la dirección efectiva del objeto. Se clasifi-

can en:

Directo de registro.

Directo de memoria.

De página base.

 Directo de registro. La instrucción contiene la dirección de un registro del banco de registros.

 De memoria. La instrucción contiene una dirección completa de memoria. Su inconveniente

es que el tamaño de la memoria está limitado por el número de bits asignado al campo direc-

ción. Como ventaja tiene su facilidad de implementación. En ocasiones también se le llama

absoluto.

294   Problemas de fundamentos y estructura de computadores

Page 311: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 311/569

 De página base. La información contenida es una dirección limitada, que permite acceder

sólo a una parte del mapa de memoria. Es decir, tiene menos bits de los necesarios para direc-

cionar toda la memoria. La principal ventaja que tiene es que se reduce el tamaño de la ins-

trucción, luego consume menos bits de memoria. Su principal desventaja es que no puede

acceder a todas las posiciones de la memoria. Por último sus tiempos de acceso son similares

a los anteriores.

8.3 Direccionamiento relativo

En este modo de direccionamiento la instrucción no contiene la dirección del objeto, sino

un  desplazamiento  que se suma al contenido de un   registro base  para obtener la dirección

efectiva. Su ventaja es que el desplazamiento necesita menos bits para realizar el direccio-

namiento que el directo a memoria. Una característica importante de la implementación es

que la suma no debe producir demasiado retardo en el cálculo de la dirección efectiva. Una

desventaja es que necesita más hardware para implementarse y es más lento que el directo,

puesto que previamente hay que acceder al registro base y realizar la suma. Es muy interesan-

te para tratar códigos reubicables y para recorrer de forma eficaz estructuras de datos. Se pue-

den encontrar los siguientes casos:

Relativo a contador de programa (PC).

Relativo a registro base.

Relativo a índice.

Relativo a pila.

 Direccionamiento relativo a contador de programa. En este modo de direccionamiento el re-

gistro base empleado es el contador de programa PC. Explota el concepto de localidad y por

lo tanto es indicado para alcanzar instrucciones próximas a la que se está ejecutando. Se suele

utilizar en instrucciones de bifurcación. Tiene la ventaja, frente otros direccionamientos rela-tivos, de no necesitar incluir la dirección del contador de programa en la instrucción puesto

que sólo hay uno. La dirección efectiva se consigue sumando el contenido del PC y el campo

desplazamiento del registro de instrucciones. Como probablemente no tengan el mismo tama-

ño, habrá que utilizar un módulo extensión de signo para implementarlo.

Capítulo 8  Modos de direccionamiento   295

Page 312: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 312/569

 Direccionamiento relativo a registro base. Se caracteriza porque la instrucción contiene dos

informaciones: la dirección del registro base y un desplazamiento que suele tener un tamaño

inferior al de una dirección de memoria. El registro base contiene una dirección de memoria.

Se utiliza cuando la dirección base no es conocida en tiempo de compilación (la informaciónque se conoce en tiempo de compilación es la información que conoce el programador mien-

tras escribe el programa) pero el desplazamiento relativo sí que lo es.

 Direccionamiento relativo a índice. También llamado indexado. Es una modificación del an-

terior y por lo tanto la instrucción debe contener dos informaciones: la dirección del registro

índice que contiene el desplazamiento (atención, darse cuenta que es lo contrario de lo que

ocurría en el indexado a registro base) y la dirección base de la memoria que debe estar refe-

renciada con todos los bits. Es decir se consume muchos bits, puesto que la dirección de me-

moria es grande. Esta es la principal diferencia con el relativo a registro base. Si el n.o bits de

desplazamiento del modo relativo a registro base y los de memoria del modo relativo a regis-

tro índice coinciden, estos modos son indistinguibles.

En ocasiones los direccionamientos relativos se implementan con incrementos y decre-

mentos automáticos del contenido del registro para facilitar el manejo de las estructuras de

datos. Esto complica el hardware, pero acorta los programas. Los más habituales son:

Preautoincremento.

Preautodecremento.

296   Problemas de fundamentos y estructura de computadores

Page 313: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 313/569

Postautoincremento.

Postautodecremento.

Se suele utilizar cuando se puede conocer la posición de un vector en tiempo de compila-

ción, pero el elemento exacto al que queremos acceder no se conoce nada más que en tiempode ejecución.

 Direccionamiento directo relativo a pila. Llamado también direccionamiento a pila. Recordar

que una pila es una cola del tipo primero en entrar último en salir. La máquina debe disponer

de un registro SP (puntero a pila). Los accesos a pila deben tener un tratamiento especial.

Para insertar un elemento en la pila, el direccionamiento relativo a SP debe generar un pre-

autoincremento, y para sacar un elemento de la pila el direccionamiento relativo a SP debe

realizar un post-autodecremento. Permite instrucciones muy compactas y si sólo se dispone de

un SP la instrucción no necesita información de dirección.

A continuación se ve una posible implementación del HW necesario para modificar el

puntero:

Capítulo 8  Modos de direccionamiento   297

Page 314: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 314/569

8.4 Direccionamiento indirecto

La dirección contenida en la instrucción NO es la del objeto, sino la de la dirección del objeto.

Existen dos tipos: indirecta de memoria e indirecta de registros

En ambos casos es necesario un acceso adicional para obtener el objeto. En el indirecto

a memoria se accede dos veces a la memoria, la primera vez para obtener la dirección efec-

tiva del objeto y la segunda para obtener el objeto. No se suele utilizar la indirección multi-

nivel porque retardaría en exceso la ejecución de los programas.

El indirecto a registro se utiliza muy a menudo por ser casi el doble de rápido que el indi-

recto a memoria, puesto que el acceso a registro es mucho más rápido que el acceso a memo-

ria. Es útil cuando la dirección de una estructura de datos sólo se conoce en tiempo de ejecu-

ción. Se puede encontrar con autoincremento y autodecrementos.

 Nota: El pseudo-ensablador para los modos de direccionamiento que se va a usar en los pro-

blemas es el siguiente.

298   Problemas de fundamentos y estructura de computadores

Page 315: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 315/569

Modo de direccionamiento Pseudo-ensamblador Cálculo de @efectiva

Inmediato   Numero

Directo a registro Ri

Directo a memoria @M @M

Directo a pila  SP    SP   aSPb

Indirecto a registro (Ri)   aRib

Indirecto a memoria (@M)   a@Mb

Relativo a contador de programa   desp(PC)   aPCb! desp

Relativo a registro base   despl(RB)   aRBb!desp%@M!desp

Relativo a registro índice @M(RI) @M!aRib%@M!desp

Los direccionamientos directo a pila, relativo a registro base, relativo a registro índice e

indirecto a registro e indirecto a memoria pueden usar además post-incremento (RB)!, post-

decremento (RB)., pre-decremento .(RB) y pre-incremento !(RB).

8.5 Problemas resueltos

PROBLEMA 1

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%60; aR4b%5;aR5b% 765; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@30b% 654

a@200b% 65, a@201b%424, a@202b%87, a@203b% 53,

a@204b% 765, a@205b%53

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   ADD R3,R5,R4

b)   SUB R3,R5,R4

Sabiendo que el primer operando de las operaciones es el destino.

 Nota:a Rib es el contenido del registro  Ri  y a@ib es el contenido de la posición  i  de

memoria.

Capítulo 8  Modos de direccionamiento   299

Page 316: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 316/569

Solución: 

a)   ADD R3,R5,R4 usa para los tres operandos direccionamiento directo a registro:

R5roperando1%765

R4roperando2%5

R3r resultado%aR3b% 765!5%770

b)   SUB R3,R5,R4 usa para los tres operandos direccionamiento directo:

R5r   operando1%765

R4roperando2%5

R3r resultado%aR3b% 765. 5%760

PROBLEMA 2

Sabiendo que el banco de registros contiene los siguientes datos:

a

R0b%

0;a

R1b%

100;a

R2b%

89;a

R3b%

60;a

R4b%

5;a

R5b%

765;aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@30b% 654

a@200b% 65, a@201b%424, a@202b%87, a@203b% 53,

a@204b% 765, a@205b%53

Indicar dónde se almacena y cuál es el resultado de las siguiente instrucción:

SUB R3,R4,45

Sabiendo que el primer operando de las operaciones es el destino

 Nota:a Rib es el contenido del registro  Ri  y a@ib es el contenido de la posición  i  de

memoria.

Solución: 

SUB R3,R4,45 usa para los dos operandos direccionamiento directo a registro y un operan-

do inmediato.

R4r operando1%5

45r operando2% 45

R3r resultado%aR3b%5. 45%.40

PROBLEMA 3

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b%0; aR1b% 100; aR2b% 89; aR3b% 60; aR4b% 5; aR5b%765,

aR6b% 676; aR7b% 837

300   Problemas de fundamentos y estructura de computadores

Page 317: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 317/569

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@30b% 654

a@200b% 65, a@201b%424, a@202b%87, a@203b% 53,

a@204b% 765, a@205b%53

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   SUB R7,@200,R3

b)   MUL @202,@203,@204

Sabiendo que el primer operando de las operaciones es el destino.

Solución: 

a)   SUB R7,@200,R3. Esta instrucción usa dos modos de direccionamiento: directo a regis-

tro para el destino y segundo operando, y directo a memoria para el segundo operando:

@200r@efectiva%@200roperando1%a@200b%65

R3roperando2%aR3b%60

R7r resultado%aR7b% 65. 60%5

b)   MUL @202,@203,@204. Usa el modo de direccionamiento directo a memoria para refe-

renciar sus tres operandos.

@203r

@efectiva%

@203r

operando1%a

@203b%

53@204r@efectiva%@204roperando2%a@204b%765

@202r@efectiva resultado%@2002r resultado%a@202b% 53X765%

% 40545

PROBLEMA 4

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@30b% 203

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b%27, a@205b%53

Capítulo 8  Modos de direccionamiento   301

Page 318: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 318/569

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   ADD R3,R5,(R4)

b)   SUB R3,(R4),(R5)

Sabiendo que el primer operando de las operaciones es el destino.

Solución: 

a)   ADD R3,R5,(R4). Esta instrucción usa dos modos de direccionamiento el directo a regis-

tro y el indirecto a registro.

R5roperando1%aR5b%27

(R4)r@efectiva%aR4b%@25roperando2%a@25b%87

R3r resultado%aR3b% 27!87%114

b)   SUB R3,(R4),(R5). Esta instrucción usa dos modos de direccionamiento: directo a regis-

tro e indirecto a registro:(R4)r@efectiva%aR4b%@25roperando1%a@25b% 87

(R5)r@efectiva%aR5b%@27roperando 2%a@27b% 75

R3r resultado%aR3b% 87. 75%12

PROBLEMA 5

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@30b% 203

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b% 27, a@205b%53

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   SUB R7,(@200),(R3)

b)   MUL (@202),(@203),(@204)

Solución: 

a)   SUB R7,(@200),(R3). Usa tres modos de direccionamiento: directo a registro, indirecto a

memoria e indirecto a registro.

(@200)r@efectiva%a@200b%@29roperando1%a@29b%63

(R3)r@efectiva%aR3b%@29roperando2%a@29b%63

R7r resultado%aR7b% 0

302   Problemas de fundamentos y estructura de computadores

Page 319: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 319/569

b)   MUL (@202),(@203),(@204). Esta instrucción usa tres modos de direccionamiento indi-

recto a memoria.

(@203)r@efectiva%a@203b%@30roperando1%a@30b%203

(@204)r

@efectiva%a

@204b%

@27r

operando2%a

@27b%

75(@202)r@efectiva resultado%a@202b%@28r resultado%a@28b%

%75# 203%15225

PROBLEMA 6

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@30b% 654

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b% 27, a@205b%53

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   ADD R3,R5,(R4)!

b)   SUB R3,(R4),(R5)

Sabiendo que el primer operando de las operaciones es el destino.

Solución: 

a)   ADD R3,R5,(R4)!.

Esta instrucción utiliza dos modos de direccionamiento: directo a registro para el pri-

mer operando y el destino, e indirecto a registro con post incremento para el segundo

operando.

R5roperando1%aR5b%27

(R4)!r@efectiva%aR4b%@25r operando2  a@25b% 87. Valor final de

R4 es aR4b%@26

R3p resultado%aR3b% 27! 87%114

b)   SUB R3,(R4),(R5).

Usa dos modos de direccionamiento: directo a registro para el destino e indirecto a

registro para los operandos:

(R4)r@efectiva%aR4b%@25roperando 1%a@25b% 87

(R5)r@efectiva%aR5b%@27roperando 2%a@27b% 75

R3r resultado%aR3b% 87! 75%162

Capítulo 8  Modos de direccionamiento   303

Page 320: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 320/569

PROBLEMA 7

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@30b% 654

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b% 27, a@205b%53

Indicar dónde se almacena y cuál es el resultado de la siguiente instrucción:

SUB R7,(@200),(R3)

Sabiendo que el primer operando de las operaciones es el destino.

Solución: 

SUB R7,(@200),(R3)

Usa tres modos de direccionamiento diferentes: directo a registro para el destino, indirecto

a memoria para el primer operando e indirecto a registro para el segundo operando:

(@200)r@efectiva%a@200b%@29r operando 1%a@29b%63

(R3)r@efectiva%aR3b%@29r operando 2ra@29b%63

R7r resultado%aR7b% 63. 63%0

PROBLEMA 8

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,a@30b% 654

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b% 27, a@205b%53

Indicar dónde se almacena y cuál es el resultado de la siguiente instrucción:

MUL -(@202),(@203),(@204)

Sabiendo que el primer operando de las operaciones es el destino.

304   Problemas de fundamentos y estructura de computadores

Page 321: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 321/569

Solución: 

MUL -(@202),(@203),(@204) Usa dos modos de direccionamiento diferentes: indirecto amemoria con pre decremento para el destino e indirecto a memoria para los dos operandos:

(@203)r@efectiva%a@203b%@30r operando1%a@30b% 654

(@204)r@efectiva%a@204b%@27roperando2%a@27b%75

-(@202)r@efectiva resultado%a@202b-1%@28-1rResultado%a@27b%

%49050. El valor final @202 es a@202b%@27

PROBLEMA 9

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@57b% 65

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b% 27, a@205b%53

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   ADD!20(R3),30(R5),45

b)   ADD 20(R3)-,30(R5)!,45

Solución: 

a)   ADD!20(R3),30(R5),45

Tiene tres modos de direccionamiento: relativo a registro base con pre-incrementopara el destino, relativo a registro base para el primer operando e inmediato para el se-gundo operando.

30(R5)r@efectiva%aR5b!30%27!30%57roperando1%a@57b%65

45r operando2%45

!20(R3)r@efectiva resultado%aR3b!20!1% 29!20!1% 50rr resultado%a@50b%65! 45%110. El valor final de R3 es aR3b% 30

b)   ADD 20(R3)-, 30(R5)!

, 45Tres modos de direccionamiento relativo a registro base con post decremento para el

destino, relativo a registro base con post incremento para el primer operando e inmediatopara el segundo operando.

30(R5)!r@efectiva%aR5b!30%27!30%@57roperando1%a@57b%%65. Valor final de R5 es aR5b%28

45r operando2%45

20(R3)-r@efectiva del resultado%aR3b! 29%29!20%%@49r resultado%a@49b%65!45%100. Valor final de R3 es aR3b%28.

Capítulo 8  Modos de direccionamiento   305

Page 322: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 322/569

PROBLEMA 10

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@57b% 65, a@54b%20

a@201b% 424, a@202b%28, a@203b%30, a@204b% 27,

a@205b% 53

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   SUB @25(R3),!(R4),(R5)!

b)   SUB!@25(R3),(R4)-,-(R5)

Solución: 

a)   SUB @25(R3),!(R4),(R5)!

Tiene 3 modos de direccionamiento: relativo a registro índice para el destino, indirec-

to a registro con pre incremento para el primer operando, indirecto a registro con postincremento para el segundo operando.

!(R4)r@efectiva%aR4b! 1%25!1%@26roperando1%a@26b%986.El valor final del registro R4 es aR4b% 26

(R5)!r@efectiva%aR5b% 27roperando2%a@27b%75. El valor final

del R5 es aR5b%28@25(R3)r@efectiva del resultado%aR3b! 25%29!25%%@54r resultado%a@54b%20

b)   SUB!@25(R3),(R4)-,-(R5)

Tres modos de direccionamiento: relativo a registro índice con pre incremento para eldestino, relativo a registro base con post decremento para el primer operando y relativo aregistro base con pre decremento para el segundo operando

(R4).r@efectiva%aR4b%@25r operando1%a@25b% 87. El valor fi-nal de R4 es 23

-(R5)r@efectiva%aR5b. 1%27. 1%@26r operando2%a@26b%986.

El valor final del registro R5 es 26!@25(R3)r@efectiva del resultado%aR3b! 25!1%25! 29!1%@55rr resultado%a@55b%87. 986%.899. El contenido final del registro R3 es 30.

PROBLEMA 11

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837; aPCb%100

306   Problemas de fundamentos y estructura de computadores

Page 323: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 323/569

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@57b% 65, a@54b%20

a@201b% 424, a@202b%28, a@203b%30, a@204b% 27,

a@205b% 53

Cuál es la dirección a la que saltan las instrucciones:

a)   BIF INCONDICIONAL @25

b)   BIF INCONDICIONAL (@25)

c)   BIF INCONDICIONAL (R7)

Solución: 

a)   BIF INCONDICIONAL @25

@25r@efectiva salto%@25

b)   BIF INCONDICIONAL (@25)

(@25)r@efectiva salto%a@25b%@87

c)   BIF INCONDICIONAL (R7)

(R7)r@efectiva de salto%aR7b%@837

PROBLEMA 12

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 202; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837; aPCb%100

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87,a@26b%986, a@27b%204, a@28b%876, a@29b%63,

a@57b% 65, a@54b%20

a@201b% 424, a@202b%75, a@203b%30, a@204b% 75,

a@205b% 7

Indicar para la secuencia de instrucciones propuestas, si salta o no salta la instrucción y

cuál es @efectiva de salto.

SUB R5, (@27)!,0(R1)

BIF SI CERO R5,50(PC)

Capítulo 8  Modos de direccionamiento   307

Page 324: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 324/569

Solución: 

 SUB R5, (@27)!, 0(R1)

(@27)!r@efectiva%a@27b%@204roperando1%a@204b% 75. El va-

lor final de @27 es 205.

0(R1)r@efectiva%aR1b!0%@202roperando2%a@202b%75

R5r resultado%aR5b%75. 75% 0

 BIF SI CERO R5,50(PC)

Como aR5b% 0 la instrucción salta.

50(PC)r@efectiva de salto%aPCb! 50% 100!50%@150

PROBLEMA 13

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 202; aR2b%89; aR3b%29; aR4b%25;

aR5b% 27; aR6b%676; aR7b%837; aPCb%100

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87,a@26b%986, a@27b%204, a@28b%876, a@29b%63,

a@57b% 65, a@54b%20

a@201b% 424, a@202b%75, a@203b%30, a@204b% 75,

a@205b% 7

Indicar para la secuencia de instrucciones propuestas, si salta o no salta la instrucción y

cuál es @efectiva de salto.

SUB R5!(@27),0(R1)

BIF SI CERO R5,50(PC)

BIF SI NO CERO, R5, !(@203)

Solución: 

  SUB R5 !(@27),0(R1)

!(@27)r@efectiva%a@27b!1%204!1%@205roperando1%a@205b%7.

Valor final de @27 es 205.

0(R1)r@efectiva%aR1b!0%202! 0%@202roperando2%

% a@202b%75

R5r resultado%aR5b%7. 75

 BIF SI CERO R5,50(PC)

Como R5 no es cero la instrucción no salta.

50(PC)r@efectiva de salto%aPCb!50% 102!50%@152. El PC inicial es100. Suponemos que en @100 está almacenada la primera instrucción. El PC se actuali-

za al principio de la ejecución de la instrucción. La segunda instrucción está en la posi-

308   Problemas de fundamentos y estructura de computadores

Page 325: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 325/569

ción 101, pero cuando se calcula la dirección de salto el PC ya ha sido actualizado, por

eso su valor es 102.

 BIF SI NO CERO, R5,!(@203)

Como R5 no es cero la instrucción salta.

!(@203)r@efectiva de salto%a@203b!1% 30!1%@31. El contenido fi-

nal de @203 es 31.

PROBLEMA 14

Sabiendo que

a@10b% 100; a@99b%50, a@100b% 25; aR4b% 50

Indicar el contenido de los registros y de la memoria cuando se ejecutan estas 3 instruc-

ciones.

a)   LOAD R6 ,-(@10)b)   ADD R7,R6, 50(R4)-

c)   STORE R7!(@10)

Solución: 

  a)   Load R6 ,-(@10)

-(@10)r@efectiva fuente%a@10b. 1% 100. 1%@99r contenido de la

posición de memoria fuente%a@99b% 50. El contenido final de @10 es 99

R6r contenido final del destino%aR6b% 50

  b)   ADD R7,R6,

50(R4)-

R6roperando 1%aR6b%50

50(R4)-r@efectiva%aR4b!50%50!50%

%@100roperando2%a@100b%25. El valor final de R4 es 49

R7r resultado%aR7b% 25!50%75.

  c)   STORE R7!(@10) usa

R7r contenido del registro fuente aR7b%75

!(@10)r@efectiva destino%a@10b!1% 99!1%@100r contenido fi-

nal del destino%a@100b% 75. El contenido final de a@10bes 100

Contenidos finales de memoria y registros

a@10b%100, a@99b%50,a@100b%75, aR4b%49,aR6b%50,aR7b%75

PROBLEMA 15

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0, aR1b%26, aR2b% 29; aR3b% 4; aR4b% 25; aR5b% 27;

aR6b% 676; aR7b% 200, aPCb%100

Capítulo 8  Modos de direccionamiento   309

Page 326: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 326/569

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-nuación:a@26b% 4, a@27b%3, a@28b%2, a@29b% 1,

a@300b% 29 a@301b%2 a@302b%1 a@303b% 2

Sabiendo que la instrucción de LOAD se almacena en la posición @400 indicar el con-tenido de los registros y de las posiciones de memoria cuando acaba de ejecutarse el bucle

LOAD R5,(R1)

ADD R4, ,R5, (R2).

STORE R4,(R1)!

SUB R3,R3,1

BNEZ R3,200(R7)

Solución: 

Lo primero de todo es ver que este segmento de código es un bucle controlado por lasinstrucciones. SUB R3,R3,1 y BNEZ R3,200(R7). El contenido inicial del registro indica

las veces que se va a repetir el bucle, es decir 4 veces. La dirección de salto utiliza un modo

de direccionamiento relativo a registro base. La @efectiva de salto%200!aR7b%

%200! 200%@400. Por lo tanto, salta a la instrucción de LOAD. Como el bucle se repite

4 veces esto quiere decir que el contenido final de R3 es 0.

LOAD R5,(R1), usa como modo de direccionamiento un indirecto a registro, luego la pri-

mera dirección de memoria a la que accede es aR1b%@26. El registro R1 ve modificado

su contenido por STORE R4,(R1)!, que usa un direccionamiento indirecto a registro con

post incremento, luego cada vez que se ejecuta esta instrucción se incrementa en el valor con-

tenido en R1, luego las direcciones sucesivas a las que acceden LOAD @26, @27, @28, @29

que contienen los datos 4,3,2,1.

ADD R4,R5,(R2)- utiliza un modo de direccionamiento indirecto a registro con post de-

cremento. La primera @efectiva a la que accede es @29 y cuando acaba de ejecutarse la ins-

trucción se decrementa el contenido de R2, por lo tanto las direcciones que recorre en el bucle

son @29, @28, @27, @26 que contienen los datos 1, 2, 3, 4.

Por lo tanto, el resultado de sumar estos datos con los obtenidos con la instrucción de

LOAD es 5, 5, 5,5 que mediante la instrucción de STORE se almacenan en las direcciones

@26, @27, @28, @29.

Visto lo anterior los contenidos de registros y posiciones de memoria al acabar el bucle

son las siguientes:

a@26b% 5, a@27b% 5, a@28b% 5, a@29b%5, aR1b% 29, aR2b% 26,

aR3b%0, aR4b% 5,aR5b% 1, aR7b%200

PROBLEMA 16

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 27; aR2b% 29; aR3b%6; aR4b%25; aR5b%27;

aR6b% 76; aR7b% 100, aPCb%100

310   Problemas de fundamentos y estructura de computadores

Page 327: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 327/569

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@26b% 4, a@27b%3, a@28b%2, a@29b% 1, a@30b%14,

a@300b% 29 a@301b%2 a@302b%1 a@303b% 2

Sabiendo que la instrucción de LOAD se almacena en la posición @130 indicar el con-

tenido de los registros y de las posiciones de memoria cuando acaba de ejecutarse el bucle

LOAD R5,3(R1)

ADD R4, R5, !(R2)

STORE R4,6(R1)!

SUB R6,R6,2

BEZ R6,30(R7)

Solución: 

Este segmento de programa es un bucle controlado por las instrucciones SUB R6,R6,2 y

BEQ R6,30(R7). El bucle se repite mientras el contenido de R6 sea cero, como inicialmente

aR6b% 76, el resultado de las resta es 74, luego este bucle sólo se ejecuta una vez. Al final

aR6b% 74

LOAD R5,3(R1):

3(R1)r@efectiva fuente%aR1b!3%27! 3%@30r operando

fuente%a@30b% 14

R5r contenido del destino%aR5b%14

ADD R4,R5,!(R2):

R5roperando1 aR5b%14

!(R2)r@efectiva%aR2b! 1%29!1%@30r operando2%a@30b% 14. El

contenido final del R2 es 30

R4r resultado%aR4b% 14! 14%28.

STORE R4,6(R1)!

R4r fuente%aR4b% 28

6(R1)!r@efectiva destino%aR1b! 6%27!6%@30ra@30b% 28. Elvalor final de R1 es aR1b% 28

PROBLEMA 17

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b%0; aR1b%202; aR2b% 89; aR3b% 29; aR4b%25; aR5b%27;

aR6b%676; aR7b% 202; aPCb%100

Capítulo 8  Modos de direccionamiento   311

Page 328: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 328/569

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a conti-

nuación:

a@25b% 87, a@26b%986, a@27b%202, a@28b%876, a@29b%63,

a@57b% 65, a@54b%20a@201b% 424, a@202b%75, a@203b%30, a@204b% 75,

a@205b% 7

Indicar 5 formas diferentes de direccionar al dato almacenado en la posición @202.

Solución: 

Directo a memoria @202

Indirecto a registro (R7)

Relativo a registro base 175(R5)

Relativo a contador de programa 102(PC)

Indirecto a memoria (@27)

8.6 Problemas propuestos

PROBLEMA 1

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b%0; aR1b% 100; aR2b% 89; aR3b% 29; aR4b%25; aR5b%27,

aR6b%676; aR7b%837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-

ción:

a@25b%87, a@26b%986, a@27b% 75, a@28b%876, a@29b%63,

a@30b% 203

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b% 27, a@205b%53

Indicar dónde se almacena, cuál es el resultado de las siguientes instrucciones y contenido

final de los registros R4 y R5:

a)   ADD R3,R5,!(R4)

b)   SUB R3,-(R4),(R5)!

Sabiendo que el primer operando de las operaciones es el destino.

PROBLEMA 2

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b%100; aR2b%89; aR3b%29; aR4b%25; aR5b% 27;

aR6b% 676; aR7b%837

312   Problemas de fundamentos y estructura de computadores

Page 329: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 329/569

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-

ción:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b% 63,

a@30b% 654

a@200b% 29, a@201b%424, a@202b%28, a@203b% 30,

a@204b% 27, a@205b%53

Indicar dónde se almacena, cuál es el resultado de las siguientes instrucciones y el conte-

nido final de R3 y @202,@203 y @204:

a)   SUB R7,(@200)!,1(R3)-

b)   MUL -(@202),(@203),(@204)!

Sabiendo que el primer operando de las operaciones es el destino.

PROBLEMA 3

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 100; aR2b% 89; aR3b%29; aR4b%25; aR5b%27;

aR6b% 676; aR7b% 837

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-

ción:

a@25b% 87, a@26b%986, a@27b%75, a@28b% 876, a@29b%63,

a@57b% 65, a@54b%20,

a@201b% 424,a@202b% 28, a@203b% 30,a@204b% 27,a@205b% 53

Indicar dónde se almacena y cuál es el resultado de las siguientes instrucciones:

a)   SUB @25(R3), (R4)!,!(R5)

b)   SUB @25(R3)-,(R4)!,!(R5)

PROBLEMA 4

Sabiendo que

a@10b% 100; a@99b%50, a@100b%25; aR4b% 50

Indicar el contenido de los registro y de la memoria cuando se ejecutan estas 3 instruc-

ciones

LOAD R6 ,(@10)-

ADD R7,R6, -50(R4)

STORE R7 (@10)

Capítulo 8  Modos de direccionamiento   313

Page 330: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 330/569

PROBLEMA 5

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b%26; aR2b%29; aR3b%10; aR4b%25; aR5b% 27;

aR6b% 80; aR7b%100, aPCb%100

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-

ción:

a@26b% 4, a@27b%3, a@28b%2, a@29b% 1, a@30b%14,

a@31b% 5, a@32b%76

a@300b% 29, a@301b%2, a@302b%1, a@303b% 2

Sabiendo que la instrucción de LOAD se almacena en la posición @47 indicar el conteni-

do de los registros y de las posiciones de memoria cuando acaba de ejecutarse el bucle

LOAD R5,3(R1)ADD R4, R5, !(R2)

MUL R7, (R4)-,45

STORE R4,28(R0)

SUB R6,R6,2

BEZ R6,37(R3)

PROBLEMA 6

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b%0, aR1b% 26, aR2b%29; aR3b% 4; aR4b% 25; aR5b% 27;

aR6b%676; aR7b%200, aPCb% 100

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-

ción:

a@25b% 6, a@26b%4, a@27b%3, a@28b% 2, a@29b%1,

a@30b% 302, a@31b%303

a@300b% 29, a@301b%2, a@302b%1, a@303b% 2

Sabiendo que la segunda instrucción de LOAD se almacena en la posición @400 indicar

el contenido de los registros y de las posiciones de memoria cuando acaba de ejecutarse elbucle

LOAD R3, (@25)

LOAD R5,!(@30)

ADD R4, ,R5, (@31)-

STORE R4,(R1)!

SUB R3,R3,1

BNEZ R3,200(R7)

314   Problemas de fundamentos y estructura de computadores

Page 331: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 331/569

PROBLEMA 7

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b% 26; aR2b% 29; aR3b%10; aR4b% 25; aR5b%27;

aR6b% 60; aR7b% 100, aPCb%100

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-

ción:

a@26b% 4, a@27b%3, a@28b%2, a@29b% 1, a@30b%14,

a@31b% 300, a@32b%301, a@33b%303, a@34b% 303

a@300b% 29, a@301b%2, a@302b%1, a@303b% 2, a@304b%7

Sabiendo que la segunda instrucción de LOAD se almacena en la posición de memoria

@47, indicar el contenido de los registros y de las posiciones de memoria cuando acaba deejecutarse el bucle

LOAD R6, @28

LOAD R5,!4(R1)

LOAD R7,!3(R1)

ADD R4, 0(R5)!, (R7)!

MUL R4, R4,45

STORE R4,28(R0)

SUB R6,R6,10

BEZ R6,37(R3)

PROBLEMA 8

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b%26; aR2b%29; aR3b%10; aR4b%25; aR5b% 27;

aR6b% 60; aR7b%100, aPCb%100

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-ción:

a@26b% 4, a@27b%3, a@28b%2, a@29b% 1, a@30b%14,

a@31b% 300, a@32b%301, a@33b%303, a@34b% 303,

a@300b% 29, a@301b%2, a@302b%1, a@303b% 2, a@304b%7

Proponer 5 modos de direccionamiento diferentes para acceder al dato que se encuentra

en @303.

Capítulo 8  Modos de direccionamiento   315

Page 332: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 332/569

PROBLEMA 9

Sabiendo que el banco de registros contiene los siguientes datos:

aR0b% 0; aR1b%26; aR2b%29; aR3b%10; aR4b%25; aR5b% 27;

aR6b% 60; aR7b%100, aPCb%100

Y que el contenido de un conjunto de posiciones de memoria es el que aparece a continua-

ción:

a@26b% 4, a@27b%3, a@28b%2, a@29b% 1, a@30b%14,

a@31b% 300, a@32b%301, a@33b%303, a@34b% 303,

a@300b% 29, a@301b%2, a@302b%1, a@303b% 2, a@304b%7

Proponer 5 modos de direccionamiento diferentes para acceder al dato que se encuentra

en @303.

316   Problemas de fundamentos y estructura de computadores

Page 333: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 333/569

El formato de las instrucciones es la forma en que se especifica el significado de cada bit de lainstrucción. El formato debe contener toda la información necesaria para que se ejecute lainstrucción. Esta información se agrupa en campos. Algunos de los campos más habitua-les son:

Operación que realiza la instrucción (OPCODE).

Modo de direccionamiento (CMD).

Dirección de los operandos (DIRF).

Dirección resultado (DIRD).

En las instrucciones de bifurcación dirección de la instrucción a la que salta (DIRS).

Tipos de representación de operandos (RN).

Por ejemplo, una instrucción del tipo A%B OP C podría tener un formato como el si-guiente:

a:b c:d f:g h:i j:k l:0

OPCODE CMD DIRA DIRB DIRC RN

La primera fila de la tabla indica los bits dedicados a cada campo de la instrucción, lasegunda fila indica el nombre de cada campo. Generalmente al representar el formato de unainstrucción se da el significado y los bits que ocupa cada campo en el formato. Si suponemosla instrucción A%B!C almacenada en el registro de instrucciones (RI) entonces se puededecir que

RIaa:bb%OPCODE

RIac:db%CMD

RIaf:gb%DIRA y así sucesivamente

Page 334: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 334/569

La longitud total de la instrucción viene dada por el número total de bits que necesita elformato para contener toda la información necesaria. En el caso del ejemplo en número debits de la instrucción sería a!1.

No todos los formatos necesitan los mismos campos ni el mismo número de campos. La

longitud total de la instrucción es la longitud del formato mayor. Por ejemplo, sea la instruc-ción de bifurcación condicional BIF RZ,@M que consulta un registro Z, y si se cumple lacondición salta a la dirección de memoria @M, su formato podría ser

m:n o:p q:0

OPCODE DIRZ @M

Si abm, esto quiere decir que el tamaño de la instrucción tiene que ser a!1, por lo tantola instrucción de bifurcación debe tener también un tamaño a!1. El nuevo formato quedaría

a:b c:d f:x y:0

OPCODE DIRA @M NSU

Siendo los bits RIay:0b%NSU un conjunto de bits que no se usan en este formato.La decisión del tamaño que debe tener una instrucción es crítica en el diseño del computadorya que determina la riqueza y flexibilidad de la máquina. El programador desea que su reper-torio de instrucciones tenga más códigos de operación, más modos de direccionamiento, másoperandos y mayor rango de direcciones, porque todo ello facilita la tarea de escribir progra-mas. Todas estas características necesitan mayores longitudes de instrucción. El diseñador delsistema debe buscar un equilibrio entre la riqueza del repertorio de instrucciones, la necesidadde salvar espacio de memoria y la complejidad final del camino de datos. Como norma gene-ral la longitud de instrucción debe ser igual a la longitud de la transferencia de memoria o sermúltiplo de ella.

9.1 Campos de la instrucción

Como ya hemos indicado, la instrucción se divide en campos, donde un campo es una cadenade bits continuos. Cada campo proporciona información específica. Campos típicos de unainstrucción son:

Código de operación.

Dirección de operandos.Modo de direccionamiento.

Extensión de campo.

El código de operación indica la operación a realizar por la instrucción. Este campo puedecontener más información. Por ejemplo, los modos de direccionamiento pueden ir incluidosen este código, o ir en un campo independiente.

El campo de dirección especifica la dirección de un dato, resultado o instrucción a la quese bifurca. Lógicamente existirán tantos campos dirección como operandos tenga la instruc-

318   Problemas de fundamentos y estructura de computadores

Page 335: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 335/569

ción. Igual que ocurría con el código de operación puede incluir implícitamente los modos dedireccionamiento utilizados (si el modo de direccionamiento se incluye en el código de opera-ción no se incluye aquí y viceversa).

En algunas ocasiones el código de operación no tiene un número constante de bits sinoque varía en función del tipo de instrucción. En estos casos se tiene un número bits fijo ypequeño para casi todas las operaciones y para algunas de ellas se utiliza una extensión. Elcódigo corto se suele utilizar en las instrucciones que más se usan. La extensión se suele utili-zar en instrucciones del tipo bifurcación condicional y desplazamiento. Vamos a ver un ejem-plo de esto. Supongamos que tenemos el siguiente conjunto de instrucciones a codificar:Suma, resta, multiplicación, bifurcación incondicional, bifurcación si z, bifurcación si c, bi-furcación si x, bifurcación si no x. La forma de utilizar la extensión de código sería la siguiente:

Suma 00

Resta 01

Multiplicación 10

Bifurcación 11.

La combinación de bits 11 le indica a la unidad de control que ese formato utiliza unaextensión de dos bits más para codificar la operación, quedando el código de operación deextensión variable como se ve a continuación:

Suma 00

Resta 01

Multiplicación 10

Bifurcación Incondicional 1100

Bifurcación si z 1101

Bifurcación si x 1110

Bifurcación si no x 1111

9.2 Características del conjunto de formatosComo se ha visto, un procesador puede tener varios formatos y cada instrucción encaja enuno. Cuando existen varios formatos, es el código de operación el que diferencia entre ellos.Cuanto menos formatos tenga el repertorio, más sencilla será la implementación en HW delprocesador. Los formatos múltiples complican el HW. Esta complejidad se reduce si de unformato a otro, los campos del mismo tipo tienen la misma longitud y ocupan la misma posi-ción. Esto simplifica la codificación y los caminos internos necesarios para mover la informa-ción. Además se debe intentar que instrucciones próximas utilicen codificaciones similaresPor ejemplo, sean estos dos formatos:

Capítulo 9  Teoría del formato de instrucciones   319

Page 336: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 336/569

OPCODE CMD DIRA DIRB DIRC RN

RN DIRQ OPCODE NSU

Los dos son correctos pero complican enormemente el diseño del camino de datos. Unosformatos óptimos serían:

OPCODE CMD DIRA DIRB DIRC RN

OPCODE NSU DIRQ NSU NSU RN

9.3 Problemas resueltos

PROBLEMA 1

Determinar la longitud del formato de las instrucciones de un procesador sabiendo que surepertorio tiene 8 instrucciones del tipo OP D,F que usan el modo de direccionamientodirecto a memoria. La memoria principal tiene 512 posiciones.

Solución: 

Hay 8 instrucciones, por lo tanto para el código de operación se necesitan 3 bits. Para512 posiciones de memoria se necesitan 9 bits de dirección, entonces:

20:18 17:9 8:0

OPCODE Destino (DM) Fuente (DM)

Las instrucciones tienen una longitud de 21 bits.

PROBLEMA 2

Sea un procesador con una palabra máquina de 64 bits y 128 registros de propósito general.El procesador puede ejecutar 12 instrucciones diferentes de un operando. Este operandopuede usar dos modos direccionamiento: el directo a registro (DR) y el relativo a registro-

base (RB).a)   Diseñar el formato de instrucción para este computador.

b)   Hallar el máximo valor del desplazamiento sabiendo que es un número expresado encomplemento a dos (C2).

c)   Si se quiere añadir las instrucciones LOAD RD,@M y LOAD RD,(@M) al procesadorusando RD un modo de direccionamiento directo a registro y siendo @M un direccio-namiento directo de memoria y (@M) un direccionamiento indirecto de memoria,¿cuál sería la máxima memoria direccionable?

320   Problemas de fundamentos y estructura de computadores

Page 337: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 337/569

Solución: 

a)   Como tiene 12 instrucciones diferentes necesita un campo código de operación (OPCO-DE) de 4 bits.

Como cada instrucción tiene dos modos de direccionamiento diferentes, necesita uncampo de un bit para seleccionar el modo de direccionamiento (CMD).

Modo de direccionamiento relativo a registro base

Necesitan un campo desplazamiento y un campo con la dirección del registro base. Elformato queda:

63:60 59 58:52 51:0

OPCODE CMD RB Desplazamiento

La máquina tendrá un desplazamiento de 52 bits.

Modo de direccionamiento directo a registro

63:60 59 58:52 51:0

OPCODE CMD RB NSU

b)   El máximo desplazamiento es desde.251 a 251. 1.

c)   La instrucción de LOAD tiene dos operandos, luego no encaja con ninguno de los forma-

tos estudiados. El número total de instrucciones es 14, que se codifican con 4 bits. Ade-más también necesita el campo CMD para diferenciar entre los dos modos de direcciona-miento de la memoria. El hecho de que una utilice un modo de direccionamiento directoa memoria y la otra un modo de direccionamiento indirecto a memoria no afecta al cam-po dirección de memoria (@M)

63:60 59 58:52 51:0

OPCODE CMD RB @M

La máxima memoria direccionable es 252.

PROBLEMA 3

Un computador con palabras de 128 bits posee 64 instrucciones diferentes de un operando,8 registros de propósito general, y 3 modos de direccionamiento (directo a registro (DR),indirecto a registro (IR) y relativo a registro-base (RB).

Diseñar un formato de instrucción para este computador. ¿Cuál es el rango de valoresdel desplazamiento en magnitud y signo?, ¿y en complemento a dos?

Capítulo 9  Teoría del formato de instrucciones   321

Page 338: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 338/569

Solución: 

Como son 64 instrucciones, se necesita un OPCODE de 6 bits.

Como son 3 modos de direccionamiento diferentes por instrucción se necesita un campomodo de direccionamiento (CMD) de 2 bits.

Formato para modo de direccionamiento directo a registro

Como el procesador tiene 8 registros el formato necesita un campo DR de 3 bits. El restode bits de la instrucción no se usan (NSU)

127:122 121:120 119:117 116:0

OPCODE CMD DR NSU

Formato para modo de direccionamiento indirecto con registro

El formato es idéntico al anterior. En el modo de direccionamiento IR, un registro contie-ne una dirección de memoria, luego el formato necesita un campo dirección de registro (RD).

Formato para el modo de direccionamiento relativo a registro base

En este caso el modo de direccionamiento necesita direccionar el registro base y el despla-zamiento luego el nuevo formato sería:

127:122 121:120 119:117 116:0

OPCODE CMD DR Desplazamiento

El desplazamiento es de 118 bits.

En magnitud y signo el rango de desplazamiento es: .2116!1m desplazam!2116. 1.

En complemento a dos el rango del desplazamiento es: .2116m desplazam 2116. 1.

PROBLEMA 4

Sabiendo que la palabra de memoria tiene 32 bit y que el repertorio de instrucciones tiene16 instrucciones diferentes, ¿cuál es la máxima memoria direccionable en los siguientescasos:

a)   La instrucción tiene dos operandos con direccionamiento directo a memoria (DM).b)   La instrucción tiene un operando con direccionamiento directo (DR) a un banco de 32

registros y un operando con modo de direccionamiento DM.

c)   La instrucción tiene 3 operandos con DM.d)   La instrucción tiene un solo operando DM.

Solución: 

a)   Como hay 16 instrucciones, el OPCODE es de 4 bits. Los 28 restantes se utilizan la mitadpara cada operando

31:28 27:14 13:0

OPCODE Operando 1 Operando 2

La máxima memoria direccionable son 214 posiciones.

322   Problemas de fundamentos y estructura de computadores

Page 339: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 339/569

b)   4 bits para el código, 5 bits para especificar la dirección del registro y 23 para dar ladirección de memoria.

31:28 27:23 22:0

OPCODE Operando 1 Operando 2

La máxima memoria direccionable son 223 posiciones.

c)   4 bits son para el código, y los 28 restantes se utilizan para dar la dirección de memoriade los tres operandos.

31:28 27:19 18:10 9:1 0

OPCODE Operando 1 Operando 2 Operando 3 NSU

La máxima memoria direccionable son 29 posiciones.

d)   Se necesitan 4 bits para el código de operación, los 28 restantes se utilizan para el únicooperando.

31:28 27:0

OPCODE Operando

La máxima memoria direccionable son 228 posiciones.

PROBLEMA 5

Sabiendo que la palabra de memoria tiene 28 bits y que el repertorio de instrucciones tiene12 instrucciones diferentes, la instrucción tiene dos operandos con un modo de direcciona-miento directo a memoria.

a)   ¿Cuál es la máxima memoria direccionable?

b)   ¿Qué tamaño debe tener el registro contador de programa?

c)   ¿Se te ocurre algún método para conseguir direccionar más memoria sin modificar losmodos de direccionamiento ni el tamaño de la palabra de memoria?

Solución: 

a)   Se tienen 12 instrucciones, por lo tanto para el código de operación necesito 4 bits, los

24 restantes se utilizan la mitad para cada operando

27:24 23:12 11:0

OPCODE Operando1 Operando 2

La máxima memoria direccionable son 212 posiciones.

b)   El contador de programa guarda la dirección de memoria de la siguiente instrucción aejecutar, por lo tanto, debe ser capaz de almacenar cualquier dirección de memoria, esdecir, debe tener un ancho de 12 bits.

Capítulo 9  Teoría del formato de instrucciones   323

Page 340: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 340/569

c)   Utilizar formatos que ocupen dos palabras de memoria. Se debería incluir un campo en lainstrucción que indicara a la UC que esa instrucción ocupa dos palabras de memoria.Suponiendo que esa información se incluye en el OPCODE el formato podría quedar:

Primera palabra 27:0 Segunda palabra 27:0

55:52 51:26 25:0

OPCODE Operando 1 Operando 2

La máxima memoria direccionable son 226 posiciones.

PROBLEMA 6

Se desea diseñar un repertorio de instrucciones con el menor número de bits posible. Lamemoria puede direccionar hasta 28 palabras. El código de operación va a ser fijo. El pro-

cesador va a tener 9 registros de propósito general. El repertorio está compuesto de:

20 instrucciones de 3 operandos que permiten direccionamiento directo e indirectode registro.

150 instrucciones de 2 operandos que permiten direccionamiento directo e indirectode memoria.

30 instrucciones de 1 operando con directo a memoria.

26 instrucciones de 0 operandos.

Hallar el formato de las instrucciones.

Solución: 

Primero se va a estudiar el formato de cada uno de los tipos sin tener en cuenta el resto.

3 operandos: todas pueden usar dos modos de direccionamiento (directo o indirecto),por lo tanto, se necesita un bit de modo de direccionamiento (CMD) por operando.Como existen 9 registros, se necesitan 4 bits para direccionarlos. Por lo tanto son 5 bitsdel código de operación ! 5 bits por cada operando.

19:15 14 13:10 9 8:5 4 3:0

OPCODE CMD1 DR1 CMD2 DR2 CMD3 DR3

2 operandos: 2 tipos de direccionamiento, por lo tanto se necesita 1 bit de modo dedireccionamiento, 8 bits para cada dirección y 8 bits para el OPCODE bits más paracada operando.

25:18 17 16:9 8 7:0

OPCODE CMD1 @M1 CMD2 @M2

324   Problemas de fundamentos y estructura de computadores

Page 341: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 341/569

1 operando: Direccionamiento directo de memoria, entonces se necesita acceder a 28

posiciones de memoria.

12:8 7:0

OPCODE @M1

0 operandos: Sólo se necesitan los 5 bits del código de operación.

4:0

OPCODE

Todos los formatos tienen que tener el mismo tamaño. Además para simplificar el diseñoy la complejidad del camino de datos y la unidad de control se intenta que de un formato a

otro, los campos del mismo tipo, tengan la misma longitud y ocupan la misma posición.

25:18 17 16 15 14:11 10:7 6:3 2:0

OPCODE CMD1 CMD2 CMD3 DR1 DR2 DR3 NSU

25:18 17 16 15:8 7:0

OPCODE CMD1 CMD2 @M1 @M2

25:18 17:8 7:0

OPCODE NSU @M2

25:18 17:0

OPCODE NSU

PROBLEMA 7

Sabiendo que una memoria tiene un bus de direcciones de 8 bits, un banco de 8 registros y

dieciséis operaciones diferentes, ¿cuál será la longitud del registro de instrucciones?

a)   Suponiendo que las instrucciones tienen dos operandos cuyo modo de direccionamien-to es directo a memoria.

b)   Suponiendo que la instrucción tiene tres operandos con modos de direccionamientodirecto a memoria.

c)   Suponiendo instrucciones de 3 operandos, con modo de direccionamiento directo aregistro y el resto indirecto a memoria.

Capítulo 9  Teoría del formato de instrucciones   325

Page 342: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 342/569

Solución: 

a)   Se tienen 16 instrucciones, por lo tanto para el código de operación se necesitan 4 bits.Para la memoria se necesitan 8 bits. (@M%Dirección de memoria).

19:16 15:8 7:0

OPCODE @M @M

b)

27:24 23:16 15:8 7:0

OPCODE @M @M @M

c)   Para seleccionar los registros se necesitan 3 bits.

22:19 18:16 15:8 7:0

OPCOD DR @M @M

PROBLEMA 8

Suponemos una memoria con un bus de direcciones de 16 bits y un banco de 16 registros.Los modos de direccionamiento utilizados van a ser tres: directo a memoria (DM), directoa registro (DR), inmediato de 8 bits (). Las operaciones con sus correspondientes modosde direccionamiento van a ser las siguientes:

ADD DR,DR

ADD DR,DM

ADD DM,DR

ADD DM,DM

MOVE ,DR

BCNE DM

BCGT,DM

¿Cuál es la longitud máxima de la instrucción? Encontrar todos los formatos de lasinstrucciones.

Solución: 

Para direccionar la memoria se necesitan 16 bits y para seleccionar un registro 4. A la hora decodificar las instrucciones tenemos dos opciones, podemos seleccionar la suma como una úni-ca operación con cuatro modos o podemos considerarlas como cuatro operaciones diferentes.En el primer caso, necesitamos 2 bits para codificar los 4 tipos de operaciones: ADD, MOVE,BCNE y BCGT. Además se deben añadir dos bits para diferenciar los modos de direcciona-miento de ADD, en total 4. Sin embargo, si considero cada operación de ADD como unainstrucción diferente, sólo debo codificar siete instrucciones y necesito únicamente 3 bits. Por

326   Problemas de fundamentos y estructura de computadores

Page 343: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 343/569

lo tanto esta última opción parece la más acertada si buscamos el formato de instrucción conel menor tamaño posible.

Utilizando el código de operación fijo, la longitud máxima corresponde a la instrucciónADD DM,DM. Esta instrucción tiene 3 bits para el código de operación y 16 para cada ope-

rando con direccionamiento directo a memoria, en total 35 bits.

Busquemos ahora todos los formatos de las instrucciones. (Nota NSU% bits que no seusan en el formato):

ADD DM,DM

34:32 31:16 15:0

OPCODE @M @M

ADD DR,DM

34:32 31:20 19:16 15:0

OPCODE NSU DR @M

ADD DR,DR

34:32 31:20 19:16 15:12 11:0

OPCODE NSU DR DR NSU

ADD DM,DR

34:32 31:16 15:12 11:0

OPCODE @M DR NSU

MOVE IN,DR

34:32 31:24 23:16 15:12 11:0

OPCODE NSU   INM DR NSU

BCNE DM

34:32 31:16 15:0

OPCODE @M NSU

BCGT DM

34:32 31:16 15:0

OPCODE @M NSU

Capítulo 9  Teoría del formato de instrucciones   327

Page 344: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 344/569

PROBLEMA 9

La máquina ESCOCIA tiene un tamaño de palabra de memoria de 64 bits, 64 registros depropósito general y además su repertorio de instrucciones tiene las siguientes caracterís-

ticas: 20 instrucciones de tipo I, con 3 operandos y modos de direccionamiento directo aregistro los 2 primeros e inmediato el tercero.

20 instrucciones de tipo R con 3 operandos y modos de direccionamiento directo aregistro los 2 primeros y relativo a registro base con desplazamiento el tercero.

24 instrucciones de tipo J que tienen 1 operando y modo de direccionamiento directoa memoria.

Sabiendo que el código de operaciones es fijo, calcular:

a)   El formato de las instrucciones.

b)   Tamaño de la memoria.

Solución: 

a)   Hay un total de 64 instrucciones, vamos a asignar un código que incluya el tipo de opera-ción y el modo de direccionamiento.

Instrucciones tipo I

63:58 57:52 51:46 45:0

OPCODE D F1   inmediato

Instrucciones de tipo R63:58 57:52 51:46 45:40 39:0

OPCODE D F1 RB   desplazamiento

Instrucciones de tipo J

63:58 57:0

OPCODE @dirección de memoria

b)   La memoria tendrá 258

posiciones.

PROBLEMA 10

Queremos implementar un procesador con el siguiente repertorio de instrucciones

ADD D,F1,F2

ADD D,F1,

SUB D,F1,F2

328   Problemas de fundamentos y estructura de computadores

Page 345: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 345/569

SUB D,F1,MUL D,F1,F2DIV D,F1,F2

BIF INCON,@MBIF MAYOR QUE, RC, D(PC)BIF MENOR QUE, RC, D(PC)BIF, IGUAL QUE, RC, D(PC)

Siendo los modos de direccionamiento:

D,F1,F2,RC directo a registro

inmediatoD(PC) relativo a contador de programa

@M directo de memoriaSuponer un banco de 32 registros y una memoria de 4 megas. Suponer también que

todas las instrucciones tienen el tamaño de una palabra de memoria. El repertorio de ins-trucciones del procesador no va a ser ampliado en un futuro.

Estudiar el formato de instrucciones del procesador, intentando que el tamaño de losoperandos inmediatos sea el mayor posible. ¿Cuál es este tamaño? ¿Qué tamaño tiene lapalabra de memoria?

Solución: 

Tenemos 5 tipos de operación diferentes, por lo tanto necesitamos 3 bits para codificar el

código de operación:Operación OPCODE

ADD 000

SUB 001

MUL 010

DIV 011

BIF 100

La suma y la resta.

Como tienen las mismas características las tratamos juntas. Estas dos instrucciones tienenque identificar el tipo de direccionamiento que están usando. Como tienen dos modos de di-reccionamiento cada una, con un bit será suficiente para identificarlos:

Modo de direccionamiento CMD

Registro-registro-registro 0

Registro-registro-inmediato 1

Capítulo 9  Teoría del formato de instrucciones   329

Page 346: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 346/569

Además para el primer modo de direccionamiento necesitan incluir en la instrucción lastres direcciones los dos operandos fuentes y el destino. Como el banco tiene 32 registros elnúmero de bits necesarios para direccionarlos es 5. Luego el formato quedaría de la siguientemanera:

18-16 15 14:10 9:5 4:0

OPCODE CMD RD RF1 RF2

Según este formato las instrucciones deberían tener un mínimo de 19 bits.

Vamos a ver el formato para el segundo modo de direccionamiento. En este caso se susti-tuye el campo RF2 por el campo inmediato, que provisionalmente vamos a considerar tiene 5bits, aunque sólo al final del estudio, cuando determinemos la longitud mínima necesaria paraincluir todos los formatos, se fijará su longitud:

18:16 15 14:10 9:5 0:4

OPCODE CMD RD RF1  

Multiplicación y división

Estas instrucciones sólo tienen un modo de direccionamiento, luego no es necesario añadirel campo CMD. El formato queda:

17:15 14:10 9:5 4:0

OPCODE RD RF1 RF2

Instrucciones de bifurcación

Como existen cuatro tipos de instrucciones necesitaremos dos bits para codificarlo:

Tipo de bifurcación CTB

Incondicional 00

Mayor que 01

Menor que 10

Igual que 11

Como el enunciado nos dice que no está pensado ampliar el repertorio de instrucciones enun futuro, eso nos indica que no tenemos que reservar bits en el código de operaciones parafuturas nuevas instrucciones. Como de los tres bits de código de operación que necesitamospara codificar los cinco tipos de instrucciones no se usan 4 combinaciones, vamos a usarlas

330   Problemas de fundamentos y estructura de computadores

Page 347: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 347/569

para incluir en el código de operación el tipo de instrucción condicional. Luego el código deoperación queda como sigue:

Operación OPCODE

ADD 000

SUB 001

MUL 010

DIV 011

BIF incondicional 100

BIF mayor que 101

BIF menor que 110

BIF igual que 111

Ahora, para cada una de estas instrucciones tenemos que ver el resto de campos que nece-sita. En general podemos decir que las instrucciones de bifurcación necesitan contener la di-rección a la que van a saltar, en caso de que la condición se cumpla, y un campo con la direc-ción del registro que contiene el valor que vamos a utilizar para calcular la condición.

En el caso de las bifurcaciones incondicionales, no necesitan condición, por lo tanto sólohay que incluir la dirección de salto, que en este caso es una dirección de memoria completa.Como la memoria tiene 4 megas se necesitan 22 bits para direccionar todas sus posiciones.Luego el formato queda:

24:22 21:0

OPCODE @dirección de memoria

Para el resto de bifurcaciones la dirección de memoria utiliza el modo relativo a contadorde programa. Como sólo hay un contador de programa en el procesador no se necesita direc-cionar explícitamente luego será suficiente un campo desplazamiento:

24:22 21:17 16:0

OPCODE RC Desplazamiento

Donde desplazamiento es la cantidad que se suma al contador de programa para obtener ladirección de salto.

Como de todos los formatos estudiados el que necesita más bits es el de la bifurcaciónincondicional, el tamaño de formato mínimo será 25. Teniendo esto en cuenta se tienen quereajustar el resto de formatos a este tamaño. Además vamos a cambiar la posición de los cam-pos de manera que los que tengan los mismos contenidos ocupen las mismas posiciones:

Capítulo 9  Teoría del formato de instrucciones   331

Page 348: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 348/569

ADD D,F1,F2 y SUB D,F1,F2

24:22 21:17 16:12 11 10:6 5:0

OPCODE RD RF1 CMD RF2 NSU

ADD D,F1,F2, y SUB D,F1,

24:22 21:17 16:12 11 10:0

OPCODE RD RF1 CMD  

MUL D,F1,F2 y DIV D,F1,F2

24:22 21:17 16:12 11 10:6 5:0

OPCODE RD RF1 NSU RF2 NSU

BIF INCON,@M

24:22 21:0

OPCODE @dirección de memoria

BIF CONDICIONALES

24:22 21:17 16:0

OPCODE RF Desplazamiento

PROBLEMA 11

Se quiere diseñar un procesador con un banco de 64 registros y una memoria de 1 giga. LaUnidad Aritmético-Lógica (UAL) se va controlar desde la unidad de control y el repertoriova a tener las siguientes instrucciones:

ADD R,@M,R, siendo @M modo de direccionamiento directo de memoria.

SUB D,R,R.

BIFURCACIÓN INCONDICIONAL con un modo de direccionamiento relativo aregistro base, suponiendo un desplazamiento de 15 bits.

LOAD que mueve información de la memoria a un registro y que utiliza los modosde direccionamiento directo a registro e indirecto a memoria.

Además, se quiere dejar preparado el repertorio de instrucciones para incluir 5 nuevostipos de instrucciones aritmético-lógicas en posteriores implementaciones del procesador.

Hallar los formatos de las instrucciones sabiendo que una instrucción debe ocupar solouna palabra de memoria e indicar el tamaño mínimo que debe tener la palabra de memoria.

¿Cómo será el formato de la instrucción STORE, que mueve información del banco deregistros a la memoria, si usa los mismos modos de direccionamiento que el LOAD?

332   Problemas de fundamentos y estructura de computadores

Page 349: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 349/569

Solución: 

Tenemos 4 instrucciones diferentes y se quiere dejar el formato preparado para ampliar elrepertorio con 5 tipos de instrucciones más, por lo tanto el número total de tipos de instruc-ción a codificar sería 9, por lo que el campo OPCODE necesita 4 bits:

Tipo de operación OPCODE

ADD 0000

SUB 0001

Bifurcación incondicional 0010

LOAD 0011

Futuras Resto de códigos

Vamos a estudiar los formatos de cada tipo de instrucción.

ADD

Tiene que tener dos campos que contengan la dirección de un registro. Como el banco deregistros es de 64 bit, necesita dos campos de 6 bits cada uno. El otro direccionamiento esdirecto a memoria, por lo tanto en la instrucción se tiene que incluir una dirección completade memoria. Como la memoria máxima direccionable es de 1 giga, el campo tiene que tener30 bits. Por lo tanto el formato de las instrucciones será. El siguiente

45:42 41:36 35:30 29:0

OPCODE RD RF1 @M

SUB

La resta tiene que incluir tres campos que contengan direcciones de registro

17:14 13:8 7:4 3:0

OPCODE RD RF1 RF2

BIFURCACIÓN INCONDICIONAL

El modo de direccionamiento relativo a registro base necesita un registro base que alma-cena una dirección de memoria y un desplazamiento. Luego el formato necesita una direcciónde registro y un desplazamiento

24:21 20:15 14:0

OPCODE RB Desplazamiento

Capítulo 9  Teoría del formato de instrucciones   333

Page 350: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 350/569

LOAD

Necesita un campo que contenga la dirección del registro y otro campo que contenga ladirección de memoria necesaria para implementar el modo de direccionamiento indirecto amemoria.

39:36 35:30 29:0

OPCODE RD @memoria

El formato de mayor tamaño es el de la suma, por lo tanto tenemos que adaptar todos losformatos a este tamaño.

ADD

45:42 41:36 35:30 29:0

OPCODE RD RF1 @memoria

SUB

45:42 41:36 35:30 29:24 23:0

OPCODE RD RF1 RF2 NSU

BIFURCACIÓN INCONDICIONAL

45:42 41:36 35:30 29:15 14:0

OPCODE NSU RF Desplazamiento NSU

LOAD

45:42 41:36 35:30 29:0

OPCODE RD NSU @memoria

Como una palabra de memoria debe ser capaz de contener como mínimo una instruccióncompleta el tamaño es de 46 bits.

Las instrucciones de LOAD y STORE tendrán el mismo formato. El campo de direcciónde registro será fuente o destino en función de que la instrucción sea STORE o LOAD.

45:42 41:36 35:30 29:0

OPCODE RD/RF NSU @memoria

334   Problemas de fundamentos y estructura de computadores

Page 351: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 351/569

PROBLEMA 12

Repite el problema 11 pero suponiendo que la unidad aritmético-lógica se controla desdeel registro de instrucciones.

Solución: 

En el primer caso las señales que controlan la unidad aritmético-lógica se generan en la uni-dad de control. En el segundo caso estas señales se extraen directamente del registro de ins-trucciones. En lo que al formato concierne, la diferencia reside en que hay que separar elcódigo de operación (OPCODE) de la operación aritmético-lógica a realizar (COPAL). Por lotanto consideramos 3 tipos de operaciones:

Las instrucciones aritmético-lógicas, que incluyen la suma, la resta y las futuras 5 ope-raciones aritmético-lógicas.

Las bifurcaciones incondicionales.

Las instrucciones de LOAD.

Por lo tanto se necesitan dos bits para codificarlas:

Tipo de instrucción OPCODE

Aritmético-lógicas 00

Bifurcación incondicional 01

LOAD 10

Los formatos de las instrucciones de LOAD y de bifurcación incondicional no se ven alte-rados sustancialmente, salvo en el tamaño del OPCODE y por lo tanto en el tamaño total delformato.

En las instrucciones de suma y resta aparece un nuevo campo, que llamamos COPAL, queindica el tipo de operación aritmética que se va a realizar. Los bits de este campo atacan di-rectamente a la unidad aritmético-lógica. Si sólo tuviéramos la suma y la resta con un bit seríasuficiente. Como además tenemos que dejar el formato preparado para 5 nuevas instrucciones

aritmético-lógicas vamos a necesitar 3 bits para codificarlas:

46:45 44:39 38:33 32:3 2:0

OPCODE RD RF1 @memoria COPAL

46:45 44:39 38:33 32:27 26:3 2:0

OPCODE RD RF1 RF2 NSU COPAL

Capítulo 9  Teoría del formato de instrucciones   335

Page 352: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 352/569

46:45 44:39 38:33 32:18 17:0

OPCODE NSU RF Desplazamiento NSU

46:45 44:39 38:33 32:3 2:0

OPCODE RD NSU @memoria NSU

PROBLEMA 13

Sea un procesador con un banco de 8 registros. Un modelo de ejecución, memoria, regis-tro, una memoria con una palabra de 32 bits que puede ejecutar las dos siguientes instruc-ciones:

MULTIPLICACIÓN Fuente1, Fuente2/ Destino

DIVISIÓN Fuente1, Fuente2/ Destino

Utilizando Fuente 1 un direccionamiento relativo a registro base y Fuente2/ Destino di-reccionamiento directo a registro. Hallar el formato de las instrucciones.

¿Qué tamaño podría tener la memoria?

Solución: 

El procesador sólo ejecuta dos instrucciones luego necesita sólo un bit como código de opera-

ción:Operación OPCODE

Multiplicación 0

División 1

Ambas instrucciones necesitan un campo para direccionar el Fuente2/ Destino y el Fuente1.El Fuente2/ Destino es una dirección de registro, como hay 8 registros necesitamos 3 bits. ElFuente1/ Destino utiliza un modo de direccionamiento relativo a registro base, por lo tantonecesita un campo para direccionar el registro base y otro que contiene el desplazamiento,luego el formato para ambas instrucciones sería el siguiente:

31 30:28 27:25 24:0

OPCODE RF2/D RB Desplazamiento

En el modo de direccionamiento relativo a registro base, el registro suele contener unadirección de memoria, luego el tamaño de la memoria vendrá fijado por el tamaño del regis-tro. Los registros se cargan desde memoria y la memoria tiene una palabra de 32 bits, luego lamáxima memoria direccionable será 232.

336   Problemas de fundamentos y estructura de computadores

Page 353: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 353/569

PROBLEMA 14

Sea un procesador que ejecuta instrucciones de tres operandos (Fuente1, Fuente2, Destino)con los siguientes modos de direccionamiento: la Fuente1 usa relativo a PC con un des-

plazamiento de 17 bits, la Fuente2 usa inmediato de 16 bits, el Destino el directo a me-moria y las bifurcaciones el relativo a PC con un desplazamiento de 10 bits. El repertoriode instrucciones es el siguiente:

Suma

Resta

And lógica

Or lógica

Bifurcación incondicional

Bifurcación condicional si positivo

Bifurcación condicional si negativo

Bifurcación condicional si cero

Las instrucciones de bifurcación consultan un registro de estado que contiene informa-ción sobre la última operación realizada. La UAL se controla desde el registro de instruc-ciones. La memoria tiene un tamaño de 128 K palabras con 64 bits por palabra. Hallar elformato de las instrucciones.

Solución: 

Hay dos tipos de instrucciones. Por un lado las aritmético-lógicas que comprende las suma,resta, and, or y bifurcaciones condicionales, a las que hay que añadir un campo que nos indi-que cuál es la operación a realizar COPAL y por el otro las bifurcaciones. Por lo tanto sólonecesito un bit como código de operación:

Tipo de instrucción OPCODE

Aritmético-lógicas 0

Bifurcaciones 1

Como tenemos 4 operaciones aritmético-lógicas necesitamos 2 bits para codificar el tipo

de operación aritmético-lógica:

COPAL

Suma 00

Resta 01

And 10

Or 11

Capítulo 9  Teoría del formato de instrucciones   337

Page 354: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 354/569

La suma, la resta, la and y la or tienen el mismo formato puesto que necesitan la mismainformación para direccionar los operandos y el destino:

Fuente1 necesita un desplazamiento, puesto que el contador de programa es único y nonecesita incluir la información en el formato. Fuente2 necesita un campo de 16 bits para elinmediato. Destino es una dirección de memoria y por lo tanto necesita 17 bits para direccio-narse

63 62:51 52:36 35:19 18:2 1:0

OPCODE NSU Desplazamiento   inmediato @memoria COPAL

Las bifurcaciones van a necesitar un campo extra para determinar el tipo de bifurcación:

CC

Incondicional 00

Si positivo 01

Si negativo 10

Si cero 11

63 62:51 52:36 35:19 18:2 1:0

OPCODE NSU Desplazamiento NSU NSU CC

El formato de las bifurcaciones incondicionales es idéntico al de las condicionales. Ladiferencia está en la ejecución de la instrucción porque las primeras no consultan el registrode estado.

PROBLEMA 15

Sea un procesador con una palabra máquina de 64 bits y 128 registros de propósito generalque puede ejecutar las siguientes instrucciones: suma, resta, LOAD y STORE. Las sumas yrestas pueden direccionar sus operandos y destinos de tres formas diferentes:

Los dos operandos y el destino usan modo de direccionamiento directo a registro(DR).

El primer operando y el destino usan DR y el segundo operando es un inmediato ().

El primer operando y destino con DR, y el segundo operando con un direcciona-miento de página base (PB).

El LOAD y el STORE pueden utilizar dos modos de direccionamiento diferentes parareferirse a la posición de memoria: directo a memoria (DM) y relativo a registro base (RB).

Hallar los formatos suponiendo que la unidad aritmético-lógica se controla desde launidad de control y que la página base es la mitad de la memoria.

338   Problemas de fundamentos y estructura de computadores

Page 355: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 355/569

Solución: 

Como se indica que la unidad aritmético-lógica se controla desde la unidad de control, no hayque incluir un campo COPAL en el formato de las instrucciones aritmético lógicas y toda la

información necesaria para distinguir el tipo de instrucción queda contenida en el código deoperación:

Instrucción OPCODE

Suma 00

Resta 01

LOAD 10

STORE 11

La suma y la resta tienen los mismos modos de direccionamiento, por lo tanto el formatova a ser común a las dos instrucciones. Cada una de ellas tiene tres modos de direccionamien-to diferentes, luego necesitamos un campo modo de direccionamiento (CMD) de 2 bits

Modo de direccionamiento CMD

DR-DR-DR 00

DR-DR-   01

DR-DR-PB 10

Vamos a ver el formato y el número de bits mínimo para cada uno de los casos

DR-DR-DR

63:62 61:60 59:53 52:46 45:39 38:0

OPCODE CMD RD RF1 RF2 NSU

DR-DR-

63:62 61:60 59:53 52:46 45:0

OPCODE CMD RD RF  

DR-DR-PB

63:62 61:60 59:53 52:46 45:0

OPCODE CMD RD RF1 Dir página base

Capítulo 9  Teoría del formato de instrucciones   339

Page 356: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 356/569

Vamos a ver el formato del LOAD/ STORE. Esta instrucción también tiene dos modos dedireccionamiento diferentes, luego en el formato habrá que incluir un campo de 1 bit que dis-tinga entre ellas.

Modo de direccionamiento CMD

Directo a memoria 0

Relativo a registro base 1

LOAD / STORE con direccionamiento directo a memoria:

El formato tiene que incluir un campo dirección de registro destino de 7 bits. Esta campova a ser común para el LOAD y el STORE. En el LOAD hace de registro destino, en el STO-RE hace de registro fuente. Además tiene que incluir un campo dirección de memoria. Comola página base es la mitad de la memoria y necesita 46 bit para direccionarse, para direccionarla memoria completa necesitamos 47 bits

63:62 61 60 59:53 52:47 46:0

OPCODE NSU CMD RD/RF NSU @dir memoria

Formato de LOAD/ STORE con direccionamiento relativo a registro base:

El modo de direccionamiento relativo a registro base necesita un campo para direccionarel registro y un campo para el desplazamiento

63:62 61 60 59:53 52:46 45:0

OPCODE NSU CMD RD/RF RB Desplazamiento

PROBLEMA 16

Sea un procesador con secuenciamiento explícito, una memoria de 4 K palabras de 64 bitscada una y 128 registros de propósito general que ejecuta 9 tipos diferentes de instruccio-nes aritmético-lógicas:

7 son de dos operandos, OP F1, F2/ D donde F1 usa modo de direccionamiento relati-vo a índice (RI) y directo a registro (RD) y F2/ D usa modo de direccionamiento(DR).2 son de un operando OP F1 y usa direccionamiento relativo a índice (RI) y directoa registro (RD).

Además ejecuta LOAD, STORE y bifurcaciones incondicionales con modos de direc-cionamiento DR y relativo a registro base (RB).

Las instrucciones aritmético-lógicas pueden operar con números representados en com-plemento a uno (C1), complemento a dos (C2) y magnitud y signo (MS).

Hallar el formato de las instrucciones suponiendo que la unidad aritmético-lógica secontrola desde el registro de instrucciones.

340   Problemas de fundamentos y estructura de computadores

Page 357: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 357/569

Solución: 

Como el direccionamiento es explícito, todos las instrucciones deben tener un campo quecontenga la dirección de la siguiente instrucción (@MIRSI).

Lo primero vamos a fijar el código de operación de las instrucciones. Como la UAL secontrola desde el registro de instrucciones el número total de instrucciones diferentes que po-demos ejecutar es 12. Por lo tanto necesitamos 4 bits de código de operación (OPCODE).

Formato de las instrucciones aritmético-lógicas de dos operandos

Cada una de ellas puede tener dos modos de direccionamiento diferentes para su primeroperando y un modo para su segundo, por lo tanto necesitamos un campo que indique el modode direccionamiento elegido (CMD). Con 1 bit será suficiente:

Modo de direccionamiento CMD

Relativo a índice-directo a registro 0

Directo a registro-directo a registro 1

Si suponemos que para las instrucciones de un operando la fuente es siempre la fuente 1 elformato de las de dos operandos y de uno es idéntico.

Aritmético-lógicas relativo a índice-directo a registro

El modo de direccionamiento relativo a índice necesita un campo dirección registro base yun campo dirección de memoria (@M). Además necesitamos un campo que contenga la di-rección del registro Fuente2/ Destino. Por último, un campo de dos bits para codificar el for-

mato de número usado (CFNU).

63:60 59 58:52 51:40 39:33 32:31 30:19 18:0

OPCODE CMD RB @M RF2/RD CFNU @MIRSI NSU

Aritmético lógicas directo a registro-directo a registro

63::60 59 58:52 51:40 39:33 32:31 30:19 18:0

OPCODE CMD RF1 NSU RF2/RD CFNU @MIRSI NSU

Instrucciones de LOAD y STORE

El modo de direccionamiento relativo a registro base necesita un campo registro base(DRB) y un campo desplazamiento que, para simplificar el formato, se va a suponer que tieneel mismo número de bits que la dirección de memoria. Por lo tanto el formato queda:

63::60 59 58:52 51:40 39:33 32:31 30:19 18:0

OPCODE NSU DRB Desplazamiento RF/RD NSU @MIRSI NSU

Capítulo 9  Teoría del formato de instrucciones   341

Page 358: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 358/569

Instrucción de bifurcación incondicional:

127 59 58:52 51:40 39:33 32:31 30:19 18:0

OPCODE NSU DRC Desplazamiento NSU NSU @MIRSI NSU

PROBLEMA 17

Sea un procesador con un banco de 16 registros y una palabra de memoria de 14 bits cuyorepertorio de instrucciones tiene las siguientes características:

Instrucciones tipo a: 3 instrucciones de tres operandos.Instrucciones tipo b: 14 instrucciones con dos operandos.Instrucciones tipo c :30 instrucciones con 1 operando.

¿Es posible codificar este repertorio si todos los operandos se encuentran en el bancode registros?

Solución: 

Está claro que con un código de tamaño fijo no es posible codificar todas estas instrucciones,pero sí es posible utilizando un código extensible o de tamaño variable. Este tipo de código seaprovecha de que las instrucciones con menos operandos necesitan menos bits para almacenarla información y utiliza los bits sobrantes para codificar las operaciones.

Codificación y formato de las instrucciones tipo A:

Hay tres instrucciones de este tipo, por lo tanto se necesitan 2 bits de OPCODE. La últimacombinación 11 no se usa. Además se necesitan 12 bits para direccionar los tres operandos

13:12 11:8 7:4 3:0

OPCODE R1 R2 R3

Siendo el OPCODE:

Instrucciones tipo A OPCODE

I1 00

I2 01

I3 10

No se usa 11

Codificación y formato de las instrucciones tipo B:

El código no usado antes, 11, le indica a la unidad de control que el código de operacióntiene 6 bits. Se utilizan los bits 11:8 para ampliar el código de operación. Por lo tanto el for-mato, y sus correspondientes códigos quedan como sigue

13:12 11:8 7:4 3:0

11 EXT – OPCODE R2 R3

342   Problemas de fundamentos y estructura de computadores

Page 359: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 359/569

Instrucciones tipo B OPCODE EXT –OPCODE

I0 11 0000

I1 11 0001

 — — —

I13 11 1101

No se usa 11 1110

No se usa 11 1111

Codificación y formato de las instrucciones tipo C:

Igual que ocurría antes, de las posibles combinaciones de los 6 bits más significativos(13:8) hay 2 combinaciones que no se usan: la 11 1110 y la 111 1111. Estas combinacionesindican a la unidad de control que el código de operación de las instrucciones no va a tener 6

bits sino 10 y se utilizan los bits 7:4 para extender el código de operación, puesto que estasinstrucciones no los necesitan

13:12 11:8 7:4 3:0

11 1110 EXT – OPCODE2 R3

13:12 11:8 7:4 3:0

11 1111 EXT – OPCODE2 R3

Instrucciones tipo B OPCODE EXT –OPCODE EXT –OPCODE2

I0 11 1110 0000

 — 11 1110 —

I15 11 1110 1111

I16 11 1111 0000

I17 11 1111 0001

 — 11 1111 —

I29 11 1111 1101

PROBLEMA 18

Un computador de 15 bits palabra máquina y 8 registros, tiene el siguiente repertorio deinstrucciones:

Tipo A: 7 instrucciones de referencia de un solo operando en memoria, con direccio-namiento directo a memoria (DM) e indirecto de memoria (IM).

Tipo B: 15 instrucciones con dos operados y dos modos de direccionamiento diferen-tes. En el primero los dos operandos usan un modo de direccionamiento directo a

Capítulo 9  Teoría del formato de instrucciones   343

Page 360: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 360/569

registro (DR) y en el segundo los dos operandos usan un modo de direccionamientoindirecto de registro (IR).

Tipo C: 16 instrucciones sin operando explícito.

a)   Hallar el formato de las instrucciones utilizando un código de operación extensibleintentando maximizar la memoria direccionable.

b)   Especificar la zona de memoria alcanzable en cada tipo de direccionamiento y rangoposible de valores de los operandos (en C2).

Solución: 

a)   Empezamos el estudio con las únicas instrucciones que tienen direcciones de memoria.Como hay 7 instrucciones se necesita un código de operación de 3 bits:

Tipo A OPCODE

I1 000

I2 001

 — —

I7 110

No se usa 111

Formato, hay que incluir un campo modo de direccionamiento de un bit:

14:13 12:1 0

OPCODE @M CMD

Instrucciones con dos operandos. Formato y codificación.

La última combinación del OPCODE (11) avisa a la UC que hay una extensión decódigo

Tipo B OPCODE EXT –OPCODE

I1 11 0000

I2 11 0001

 — 11

I15 11 1110

No se usa 11 1111

14:13 12:9 8:7 6:4 3:1 0

OPCODE EXT – OPCODE NSU DR DR CMD

344   Problemas de fundamentos y estructura de computadores

Page 361: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 361/569

Instrucciones sin operando.

Cuando la UC ve que OPCODE y EXT–OPCODE están todo a 1’s sabe que hay una ex-tensión de código

Tipo C OPCODE EXT –OPCODE EXT –OPCODE2

I1 11 1111 0000

I2 11 1111 0001

 — 11 — —

I16 11 1111 1111

14:13 12:9 8:5 4:0

OPCODE EXT – OPCODE EXT – OPCODE2 NSU

b)   211posiciones de memoria y rango de valores de .214 a 214. 1.

PROBLEMA 19

Se tiene un computador con un ancho de palabra de 32 bits y con un banco de 32 registros.El computador tiene 64 instrucciones y los siguientes modos de direccionamiento: directode página base (DPB), indirecto a página base (IPB), relativo a registro-base (RRB) y di-recto a registro (DR).

a)   Diseñar los formatos de las instrucciones de dos operandos sabiendo que siempre unoperando está en memoria y otro en registro.

b)   Si cada dirección de memoria especifica un byte, ¿a qué zona de memoria se puedeacceder con cada uno de los modos de direccionamiento?

Solución: 

a)   Se tienen 64 instrucciones, luego se necesitan 6 bits para codificar la operación (OPCO-DE). Como son 3 modos de direccionamiento, se necesitan 2 bits para codificar el modode direccionamiento (CMD).

Modo de direccionamiento CMD

DPB-DR 00

IPB-DR 01

RRB-DR 10

Estos dos campos son comunes a todas las instrucciones. Vamos a estudiar a conti-nuación el resto de los campos para cada tipo de modo de direccionamiento.

Capítulo 9  Teoría del formato de instrucciones   345

Page 362: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 362/569

Directo a memoria.

Necesita un campo que contenga la dirección de memoria, luego el formato quedaría:

31:26 25:24 23:5 4:0

OPCODE CMD @DIR MEMORIA DREG

Indirecto a memoria.

La instrucción contiene la dirección de una posición de memoria que contiene la di-rección de memoria en la que se encuentra la dirección. El formato es idéntico al de di-recto a memoria.

31:26 25:24 23:5 4:0

OPCODE CMD @DIR INDIR MEMORIA DREG

Relativo a registro base.

Este modo de direccionamiento necesita dos campos, uno que contenga la direccióndel registro base y otro que contenga el desplazamiento.

31:26 25:24 23:19 18:5 4:0

OPCODE CMD DRB Desplazamiento DREG

b)   Para el directo de página base se pueden direccionar 219 bytes, como una palabra de me-moria son 4 bytes, el rango direccionable es: 219/ 4%217 palabras de 32 bits.

Para el indirecto de página base, como la dirección efectiva se encuentra almacenadaen la memoria y la palabra de memoria son 32 bits del rango total será: 2 32 bytes, con4 bytes/ palabra luego el rango direccionable es: 232/ 4%230 palabras de 32 bits.

Para el indirecto con desplazamiento a registro-base: Suponiendo que el desplaza-miento se expresa en C2, el rango de desplazamiento es: [.213, 213

. 1]. Como el rangodel registro base es: [0,232. 1].

Se podría pensar en un rango total de: [.213, 232!213. 2].

Pero como el computador tiene ancho de palabra de 32 bits la suma RB!despl. sehace en módulo 232, lo que quiere decir que el rango direccionable es 232 B o lo que es lo

mismo 230 palabras.

PROBLEMA 20

Sea un computador con palabra máquina de 32 bits y 16 registros. La memoria es de 256M palabras. El juego de instrucciones de esta máquina se reduce a dos instrucciones orto-gonales: Move origen, destino y Add, operando1, operando2/ destino. Los modos de direc-cionamiento permitidos son: directo a registro (DR) y relativo a registro base (RRB). Dise-ñar los formatos de instrucción de la máquina descrita.

346   Problemas de fundamentos y estructura de computadores

Page 363: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 363/569

Solución: 

Hay dos tipos de instrucciones, luego el campo código de operación (OPCODE) tiene 1 bit.Los dos tipos de instrucciones tienen 4 modos de direccionamiento diferentes:

Modo de direccionamiento CMD

DR-DR 00

DR-RRB 01

RRB-DR 10

RRB-RRB 11

El formato será el mismo tanto para la instrucción de move como para la instrucción desuma.

Directo a registro-directo a registro

31 30:29 28:25 24:21 20:0

OPCODE CMD DRF1 DRF2/D NSU

Directo a registro-relativo a registro base y relativo a registro base-directo a registro

Les podemos hacer coincidir puesto que los campos código de modo de direccionamientonos indican en cada caso cuál de los dos operandos utiliza cada campo

31 30:29 28:25 24:21 20:0

OPCODE CMD DRF1 DRB Desplazamiento

Relativo a registro base-relativo a registro base

31 30:29 28:25 24:21 20:10 9:0

OPCODE CMD DRB1 DRB2 Desplaza1 Desplaza2

En este caso los desplazamientos serán más pequeños que en el caso anterior. El orden delos campos lo hemos elegido así para mantener el principio de que campos de diferentes for-matos con el mismo que representan la misma información ocupen las mismas posiciones delos formatos.

Capítulo 9  Teoría del formato de instrucciones   347

Page 364: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 364/569

Page 365: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 365/569

PROBLEMA 3

Diseñar los formatos para las instrucciones de tipo registro-registro, para el repertorio de ins-trucciones:

72 instrucciones de 3 operandos.26 instrucciones de 2 operandos.

56 instrucciones de 1 operando.

5 instrucciones de 0 operandos.

Utilizando el menor número posible de bits para la instrucción.

PROBLEMA 4

Sea un procesador con un tamaño de palabra de 64 bits y un banco de 32 registros. Ademástiene un registro puntero a pila SP que apunta a la primera posición vacía de la pila. Sabiendo

que su repertorio de instrucciones es:4 operaciones aritmético lógicas de dos operandos que usan como modo de direcciona-miento el directo a registro.

1 instrucción de mete pila siendo el origen un registro del banco de registros con direc-cionamiento directo a registro.

1 instrucción de escritura en memoria desde un registro con direccionamiento indirectoa memoria y directo a registro.

1 instrucción de lectura de memoria sobre un registro, con un direccionamiento directoa registro y direccionamiento directo a memoria.

Hallar el formato de las instrucciones.

PROBLEMA 5

Sea un procesador con 32 registros de propósito general y una memoria de 264 palabras queusa secuenciamiento explícito. Sabiendo que ejecuta 5 operaciones aritmético-lógicas diferen-tes de tres operandos que usan como modo de direccionamiento el directo a registro para elprimer operando y un modo indirecto a memoria para el segundo operando/ destino. Hallar suformato de instrucciones.

PROBLEMA 6

Sea un procesador con un banco de 8 registros y una memoria de 220 palabras. Además tieneun registro puntero a pila SP que apunta a la última posición ocupada de la pila. El procesadorpuede ejecutar el siguiente repertorio de instrucciones:

4 operaciones aritmético-lógicas que usan un modo de direccionamiento directo a regis-tro para el primer operando y el resultado; y un modo de direccionamiento relativo aregistro base con un desplazamiento de 8 bits para el segundo operando, coincidiendo ladirección del primer operando y la del resultado.

4 bifurcaciones condicionales que utilizan el modo de direccionamiento relativo a PC.

Capítulo 9  Teoría del formato de instrucciones   349

Page 366: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 366/569

1 instrucción de mete pila siendo el origen un registro del banco de registros con direc-cionamiento directo a registro.

1 instrucción de saca pila siendo el destino un registro del banco de registros con direc-cionamiento directo a registro.

1 instrucción de escritura en memoria desde un registro con direccionamientos directo amemoria y directo a registro.

1 instrucción de lectura de memoria sobre un registro con un direccionamiento directo aregistro y directo a memoria.

Hallar el formato de las instrucciones

PROBLEMA 7

Sea un procesador con 64 registros de propósito general y una memoria de 235. El procesadortiene además un registro puntero a pila SP que apunta a la última posición ocupada de la pila,

llenándose la pila hacia direcciones decrecientes de memoria. El repertorio de instruccionesque puede ejecutar es el siguiente:

4 operaciones aritmético-lógicas que usan un modo de direccionamiento directo a regis-tro para ambos operandos.

4 bifurcaciones condicionales que utilizan el modo de direccionamiento relativo a PC.

– Bifurcar si cero.

– Bifurcar si positivo.

– Bifurcar si negativo.

– Bifurcar si mayor o igual que.

1 instrucción de mete pila siendo el origen un registro del banco de registros con direc-cionamiento directo a registro.

1 instrucción de saca pila siendo el destino un registro del banco de registros con direc-cionamiento directo a registro.

1 instrucción de escritura en memoria desde un registro con direccionamientos relativoa registro índice y directo a registro.

1 instrucción de lectura de memoria sobre un registro con un direccionamiento directo aregistro e indirecto a memoria.

Hallar el formato de las instrucciones.

PROBLEMA 8

Sea un procesador con 128 registros de propósito general y una memoria de 256 megas. Elprocesador puede ejecutar las siguientes instrucciones: Sumas y restas con tres operandos queusan modo de direccionamiento directo a registros; instrucciones de bifurcación condicionalque usan modo de direccionamiento relativo a registro base, siendo las condiciones mayor quey menor que, instrucciones LOAD y STORE que usan modos de direccionamiento indirecto amemoria. Hallar los formatos de las instrucciones. ¿Cómo sería el formato si el secuencia-miento fuera explícito?

350   Problemas de fundamentos y estructura de computadores

Page 367: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 367/569

PROBLEMA 9

Sea un procesador con 8 registros de propósito general y una memoria de 1 mega palabras.Sabiendo que puede ejecutar 1 instrucción aritmético lógica que usa un modos de direcciona-miento directo a registro; 1 instrucción de bifurcación incondicional que utiliza el modo de

direccionamiento relativo a PC y 1 Instrucción de escritura en memoria desde un registro condireccionamientos relativo a registro base con un desplazamiento de 8 bits y directo a registro.Hallar el formato de sus instrucciones.

Capítulo 9  Teoría del formato de instrucciones   351

Page 368: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 368/569

a

Page 369: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 369/569

10.1 Partes básicas de un procesador

En este capítulo se va a abordar el estudio y especificación del camino de datos y la unidad decontrol de microprocesadores multiciclo. Un procesador multiciclo es aquel en el que una ins-trucción tarda varios ciclos en ejecutarse, y las instrucciones se ejecutan de una en una, sinaprovechar el posible paralelismo a nivel de instrucción existente en los programas. Este tipode procesadores se divide en dos módulos principales:

El camino de datos.La unidad de control.

El camino de datos es la parte del procesador que se encarga de leer, mover, modificar yalmacenar la información sobre la que computa el procesador. Se compone de registros, me-moria, unidad aritmética-lógica (UAL) y hardware (HW) auxiliar, como pueden ser los multi-plexores, incrementadores o sumadores.

La unidad de control (UC) es el módulo que se encarga de generar la señales que contro-lan el camino de datos. Es un sistema secuencial que genera para cada ciclo de reloj las seña-les necesarias para implementar una determinada fase de la instrucción. A la UC llega infor-mación desde el registro de instrucciones y desde diferentes biestables y registros del

procesador. Con esta información genera las señales necesarias en cada ciclo de reloj.

10.1.1 Los registros

Los registros son elementos de memoria que se encuentran en el interior del procesador cuyoobjetivo es permitir al procesador trabajar rápidamente con los datos que más se utilizan. Susprincipales características son su rapidez de acceso y su pequeño tamaño. El modo de trabajarde la mayoría de los procesadores actuales es enviar datos desde la memoria a los registros delprocesador mediante instrucciones de LOAD. Una vez que los datos se encuentran en los

Page 370: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 370/569

registros, estos se utilizan como operandos de las instrucciones. Cuando los cómputos acabanse envían los resultados a la memoria mediante instrucciones de STORE. Los registros necesi-tan una señal de control  carga del registro  ( Ld – RA) que activa la unidad de control en lasfases en las que se desea realizar la carga de una información. Los registros se pueden clasifi-

car en registros de propósito específico y registros de propósito general. Registros de propósito específico. Son registros que tienen la misión de almacenar el estadode procesador y la información necesaria para su control. Los más destacados son el Contadorde Programa (PC) que almacena la dirección de la siguiente instrucción que se va ejecutar. ElRegistro de Instrucciones (RI) que almacena la instrucción que se está ejecutando. El registrode estado del procesador (SR) es un registro que contiene información sobre el estado en quese encuentra el procesador. Suele estar dividido en campos o bits y cada uno de ellos tiene unsignificado diferente. Entre los campos más habituales están: desbordamiento (overflow), aca-rreo, cero, positivo, negativo. Por último, se puede encontrar puntero de pila (SP). Estos regis-tros suelen ser invisibles para el programador.

Otros registros invisibles para el programador son los   registros auxiliares. Se utilizanpara almacenar provisionalmente información necesaria para implementar algunos tipos deinstrucciones o modos de direccionamiento. Un ejemplo puede ser el registro auxiliar dedirecciones necesario para implementar el modo de direccionamiento indirecto a memoria.También se pueden usar para acortar caminos combinacionales demasiado largos. Un cami-no combinacional suele empezar y acabar en registros. Al incluir el registro auxiliar entreestos dos registros, generalmente partiendo la lógica combinacional, se consigue aumen-tar la frecuencia de trabajo del procesador aunque se añaden ciclos a la ejecución de lainstrucción.

 Registros de propósito general. Sirven para almacenar información de diferente tipo, comopuede ser datos o instrucciones. Este tipo de registros son visibles para el programador, es

decir están definidos en la arquitectura del procesador.

Los registros de propósito general se suelen agrupar en bancos de registros. Los bancos deregistros tienen puertos de escritura o entrada y puertos de lectura o salida. Los puertos cons-tan de un bus de direcciones y un bus de datos. En principio un banco de registros puede tener

tantos buses de entrada y salida como se desee. Se puede decir que cuantos más puertos tenga,mayor número de fases en paralelo permite. Por ejemplo, si un bus tiene un único puerto delectura, en las operaciones de dos operandos se necesita un registro auxiliar para almacenar elprimer operando. Si el banco tiene dos puertos de salida se pueden leer los dos operandos altiempo, con lo que se ahorran ciclos de ejecución. El número de registros también puede ser elque se desee, pero es importante recordar lo siguiente: cuantos más puertos tenga el banco,más complejo será y esto puede ralentizarlo. Lo mismo ocurre con el número de registros.Muchos registros dan mayor flexibilidad al programador pero también ralentiza el acceso albanco de registros. Además de los puertos, los bancos de registros necesitan una señal de ca-pacitación de escritura (ver figura sobre el párrafo).

354   Problemas de fundamentos y estructura de computadores

Page 371: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 371/569

10.1.2 La memoria

Es la unidad del sistema que almacena las instrucciones y los datos del proceso. Su tiempo deacceso es aproximadamente un orden de magnitud superior al de los registros. Esta es la razónpor la que hoy en día casi todos los procesadores trabajan directamente con registros en lugarde trabajar con memoria. Tienen un bus de direcciones y un bus de datos. En los problemassupondremos una memoria con un bus de direcciones, un bus de entrada de datos y un bus desalida de datos. Además supondremos una memoria con una señal de control L / E que actúa dela siguiente manera: si L/ E%0 lee, si L/ E% 1 escribe.

10.1.3 Unidad aritmético-lógica

Es la unidad que realiza las operaciones aritmético-lógicas sobre los operandos. Operacionestípicas son: suma, resta, multiplicación, and, or, desplazamientos, etc. Necesita una señal decontrol que seleccione la operación a realizar. Como se verá más adelante la unidad aritméti-co-lógica (UAL) se puede controlar desde la UC o desde el RI. Esta última opción simplificael diseño de la unidad de control.

Capítulo 10  Diseño del camino de datos y la unidad de control   355

Page 372: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 372/569

10.1.4 Estudio y diseño del camino de datos

Para diseñar un camino de datos es importante saber que en el procesador multiciclo una ins-trucción se ejecuta mediante una sucesión de pasos que se llaman fases, cada una de las cualesdura un ciclo de reloj. Una fase suele incluir:

Una lectura de información que puede estar almacenada en un registro o en memoria.Para realizar la lectura se puede necesitar una dirección.

Un movimiento de información, en el que suelen intervenir multiplexores que seleccio-nan entre diferentes caminos.

Una escritura de la información en un registro o en la memoria.

Fases clásicas de una instrucción son:

Envío de la instrucción desde memoria al registro de instrucciones.

Actualización del contador de programa.

Cálculo de las direcciones de los operandos.

Lectura de los operandos.

Ejecución de la operación.

Cálculo de la dirección del resultado.

Escritura del resultado.

En ocasiones, alguna de estas fases se puede descomponer en nuevas fases. Esto ocurrecuando durante la ejecución de una fase diferentes datos necesitan utilizar el mismo HW, estono es posible y obliga a dividir la fase en tantas como sea necesario. Un ejemplo es el cálculo

356   Problemas de fundamentos y estructura de computadores

Page 373: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 373/569

de la dirección efectiva para el modo de direccionamiento indirecto a memoria (dos usos dife-rentes del bus de direcciones de memoria).

Por el contrario si los datos de dos fases no utilizan el mismo HW se pueden agrupar enuna única fase. Un ejemplo clásico es el de la lectura de la instrucción y la actualización del

contador de programa. Agrupar fases es interesante porque ahorra ciclos de reloj en la ejecu-ción de una instrucción. En cualquier caso es muy importante cuando se agrupan o dividan lasfases para no perder de vista que la sucesión de fases debe ser la correcta.

Siguiendo el principio de divide y vencerás, lo más apropiado para abordar el diseño de uncamino de datos es estudiar la implementación de cada uno de los tipos de instrucciones ydespués unirlas todas en el camino de datos total. Implementar el camino de datos de unainstrucción consiste en implementar los caminos necesarios para ejecutar cada una de las fa-ses en que se descompone la instrucción. A la hora de implementar estos caminos es impor-tante que el diseñador tenga en cuenta las ligaduras de diseño. Una instrucción puede imple-mentarse de muchas maneras diferentes y cada implementación tiene unas características deárea, rendimiento y consumo. Las decisiones de diseño vendrán fijadas por las ligaduras deespecificación. Tanto la duración del ciclo de reloj como el número de ciclos de reloj porinstrucción están determinados por la implementación final. Para conseguir un mejor diseñoes conveniente tener en mente los dos principios que a continuación se enuncian:

Hacer rápido el caso común.

La regularidad favorece la simplicidad.

10.1.5 La unidad de control

La unidad de control es un sistema secuencial que forma parte de la unidad central de proceso(CPU). Su misión es generar las señales que controlan:

Las operaciones de la CPU, incluyendo las operaciones de la ALU.

Los movimientos de datos en el interior de la CPU.

Los movimientos de datos entre la CPU y la memoria.

Los movimientos de datos y de señales de control con los interfaces exteriores.

Las entradas del sistema secuencial son ciertos campos del registro de instrucciones, comoel campo código de operación, código de condición en instrucciones de bifurcación, y códigode operación aritmético-lógica a realizar. También pueden ser entrada algunos de los bits delregistro de estado, o de los biestables de condición. La salida son todas las señales necesariaspara controlar el camino de datos. Señales típicas son:

Ld–Rr capacitación de carga de registro.Mux–Caminor selección de un determinado camino.

L/ Er capacitación de la escritura/ lectura de memoria.

ECr capacitación en el banco de registros.

En principio, se puede afirmar que el diagrama de estados que especifica la UC tiene tan-tas ramas como tipos de instrucciones. Y cada rama tiene tantos estados como fases se necesi-tan para implementar la instrucción. La salida para cada estado son las señales que hay queactivar para que se ejecute esa fase.

Capítulo 10  Diseño del camino de datos y la unidad de control   357

Page 374: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 374/569

10.2 Problemas resueltos

PROBLEMA 1

Se quiere implementar el procesador TIFON. Este procesador tiene un banco de 4 regis-tros, con un bus de salida de datos y un bus de entrada de datos. La memoria tiene 1Kposiciones, un bus de salida de datos, un bus de entrada de datos y un bus de direcciones.Inicialmente TIFÓN tiene tres tipos de instrucciones diferentes, uno de los cuales com-prende 8 operaciones aritmético-lógicas del siguiente tipo:

OP D, F1, F2: donde D:%F1 OP F2

Los dos operandos y el destino usan el modo de direccionamiento directo a registro. Sequiere que las operaciones se controlen desde la unidad de control.

a)   Estudiar el formato de las instrucciones.

b)   Hallar el tamaño mínimo de la palabra del procesador.c)   Estudiar el módulo secuenciador.

Solución: 

a)   Como las instrucciones aritmético-lógicas se controlan desde UC, se incluyen dentro delcódigo de operación, luego en total hay 10 tipos de instrucciones diferentes, así pues senecesitan 4 bits para el código de operación (OPCODE). Además hay que añadir trescampos de 2 bits para incluir las direcciones de los operandos y el destino. El formatoqueda:

9:6 5:4 3:2 1:0

OPCODE D F1 F2

b)   Suponemos que una instrucción se puede leer en un único acceso a memoria, por lo tantoel tamaño de la palabra de procesador será 10 bits.

c)   El módulo secuenciador es el que se encarga de generar la dirección efectiva de memoria.En este caso la única dirección que se genera es la que indica la posición de la siguienteinstrucción y que se encuentra en el PC. Como se supone el procesador con direcciona-miento implícito, la siguiente dirección se genera incrementando en 1 el contenido delPC, luego el módulo secuenciador es:

358   Problemas de fundamentos y estructura de computadores

Page 375: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 375/569

PROBLEMA 2

Implementar el camino de datos de TIFÓN, especificando claramente las señales de con-trol del HW.

Solución: 

El registro auxiliar de datos, AUX, es necesario porque el banco de registros sólo tiene unbus de salida, por lo tanto el primer dato leído tiene que almacenarse porque si no se perderíaal leer el segundo operando. Las señales de control del camino de datos son las siguientes:

 Ld –PC  carga del contador de programa PC.

 Ld – RI  carga del registro de instrucciones RI.

 Ld –aux carga del registro auxiliar de datos AUX.

COPAL selección de la operación a realizar. Esta señal se genera en la unidad de control.

 Mux– L selecciona la dirección del registro que se va a leer.

 L/  E  lectura  / escritura de memoria (%0 lee,%1 escribe).

 EC  escritura del banco de registros.

PROBLEMA 3

Dado el procesador anterior

a)   Analizar la ejecución de las instrucciones sobre el camino de datos, indicando quéseñales de control se tienen que activar en cada caso.

b)   Estudiar el diagrama de estados de la unidad de control.

c)   Hallar la especificación de la unidad de control.

d)   ¿Cómo se puede simplificar esta unidad de control?

Capítulo 10  Diseño del camino de datos y la unidad de control   359

Page 376: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 376/569

Solución: 

a)   El análisis consiste en estudiar cada uno de los movimientos atómicos en los que se des-compone la ejecución de una instrucción, indicando las señales de control necesarias parallevarlos a cabo. La ejecución de todas las instrucciones empieza siempre por la lecturade la instrucción de la memoria y la decodificación de la misma:

1.a fase. Búsqueda de la instrucción (BUS). En esta fase se lee la instrucción de la me-moria y se incrementa el contador de programa

– Operaciones atómicas: RI:%M[PC]; PC:%PC!1

– Señales de control:  Ld  –  RI %1, Ld  – PC %1, L/E %0

2.a fase. Decodificación (DEC). Es una fase de decisión que necesita la UC para sabercuál es el tipo de instrucción cargada en RI. En principio, en esta fase no se realizaninguna acción, por lo tanto todas las señales de control están inactivas. En ocasionesse puede usar para ahorrar ciclos de reloj realizando acciones que no modifiquen el

estado del procesador y para las que no es necesario conocer el tipo de instrucción.3.a fase. Lectura del primer operando (POR)

– Operaciones atómicas: AUX:%F1

– Señales de control:  Ld –aux%1, Mux– L%1

4.a fase. Lectura del segundo operando, ejecución y escritura en banco de registros(SORE). Todas estas acciones se pueden realizar en la misma fase si el ciclo de reloj eslo suficientemente largo. Recordar que los registros se leen al principio del ciclo y queel banco de registro se escribe al final del ciclo.

– Operaciones atómicas: D:%F2 OP AUX

– Señales de control:  Mux– L%

0,  COPAL%

operación,  EC %

1b)   Como se puede ver en la figura, las dos primeras fases son comunes a todas las ins-

trucciones, pero a partir de ahí se bifurca en tantas ramas como instrucciones, en estecaso 8.

360   Problemas de fundamentos y estructura de computadores

Page 377: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 377/569

c)   La especificación para cada rama es:

Entrada UC Estado UC Señales de control

OPCODE Fase   Ld – PC Ld  – RI Ld  – aux Mux – L L/E EC COPAL

XXXX

BUS 1 1 0 X 0 0 X

DEC 0 0 0 X 0 0 X

POR 0 0 1 1 0 0 X

SOREi   0 0 0 0 0 1 OPi

Debajo de OPCODE aparece XXXX porque hasta el momento se desconoce el valordel código de operación para cada una de las operaciones aritmético-lógicas. Se puedeobservar que las señales de multiplexación en algunas ocasiones tienen el valor X. Esto

indica que es indiferente el valor que adopten en esa fase.

d)   Las señales de control que implementan las diferentes operaciones sólo se diferencian enla señal COPAL que depende de cada operación. Por lo tanto se pueden considerar lasfases BUS, DEC y POR comunes a todas las instrucciones. Como se puede ver en lasiguiente figura

Esta simplificación no ahorra ciclos de reloj pero la unidad de control será más senci-lla y por lo tanto más rápida.

PROBLEMA 4

Estudiar una optimización para la unidad de control de TIFÓN que permite ahorrar ciclosde reloj en las instrucciones sin modificar el HW.

Capítulo 10  Diseño del camino de datos y la unidad de control   361

Page 378: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 378/569

Solución: 

La fase de lectura de primer operando se realiza para todas las instrucciones. Esta fase nomodifica el estado del computador, por lo tanto se puede incluir dentro de decodificación, conlo que se ahorra un ciclo de reloj en todas las instrucciones. El diagrama de estado queda:

La especificación de la unidad de control queda:

Entrada UC Estado UC Señales de control

OPCODE Fase   Ld – PC Ld  – RI Ld  – aux Mux – L L/E EC COPAL

XXX

BUS 1 1 0 X 0 0 X

DEC/POR 0 0 1 1 0 0 X

SOREi   0 0 0 0 0 1 OPi

PROBLEMA 5

Considerando el procesador anterior:

a)   ¿Se ahorrarían ciclos de reloj si el banco de registros tuviera dos buses de salida enlugar de uno y dos buses de direcciones de lectura?

b)   ¿Se podría incluir en la fase de decodificación alguna otra fase para ahorrar ciclos dereloj a la ejecución de las instrucciones?

c)   Suponiendo una sola operación aritmético-lógica, ¿se podría incluir en decodificaciónalguna otra fase para ahorrar ciclos de reloj en la ejecución de las instrucciones?

Solución: 

a)   El camino de datos con un banco de registros con dos buses de salida quedaría de lasiguiente manera:

362   Problemas de fundamentos y estructura de computadores

Page 379: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 379/569

Como el banco de registros tiene dos buses de salida no se necesita el registro auxiliarde datos, AUX, para almacenar el primer operando. Por lo tanto, se puede realizar la lec-tura de los dos operandos, la ejecución y la escritura en el banco de registros en el mismociclo de reloj.

El análisis de las instrucciones es el siguiente:

1.a fase. Búsqueda de la instrucción (BUS).

– Operaciones atómicas: RI:%M[PC], PC:%PC!1

– Señales de control:  Ld – RI %1, Ld –PC %1,  L/  E %02.a fase. Decodificación (DEC).

3.a fase. Lectura de operandos ejecución y escritura en el banco de registros (LOSE).

– Operación atómica: D%F1 Op F2– Señales de control:  EC %1

El diagrama de estados es el siguiente:

Capítulo 10  Diseño del camino de datos y la unidad de control   363

Page 380: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 380/569

Por lo tanto, el número de ciclos necesarios para ejecutar una instrucción es el mismoque en el caso anterior, pero el tiempo de ciclo es más largo puesto que se leen los ope-randos, se ejecuta la operación y se escribe el resultado todo en el mismo ciclo, por lotanto es una opción peor puesto que el procesador trabaja a una frecuencia inferior. Ade-

más el banco de registros con dos puertos de lectura es más complejo, más lento y máscaro.

b)   No, la LOSE es diferente para cada operación puesto que tiene que generar la señalCOPAL que selecciona la operación que realiza la unidad aritmético-lógica.

c)   Esto quiere decir que en lugar de 8 ramas diferentes el diagrama tendría sólo una. Eldiagrama quedaría como se ve a continuación:

Con este diagrama antes de saber el tipo de instrucción que se está ejecutando se es-cribe un dato sobre el banco de registros, es decir se modifica el estado del procesador.Esto no tendría mayor importancia si esta fuera la única instrucción que se ejecuta, perorecordar que aparte de las operaciones aritmético-lógicas se ejecutan otros 2 tipos de ins-trucciones, por lo tanto no se puede realizar esta modificación.

PROBLEMA 6

Se quiere crear una nueva versión de TIFÓN que se llamará TIFÓN.20, La idea es simpli-ficar la unidad de control controlando las 8 operaciones aritmético-lógicas desde el registrode instrucciones.

a)   Estudiar el formato de las instrucciones.

b)   ¿Cómo afecta al camino de datos?

Solución: 

a)   La principal diferencia es que la señal de control COPAL se incluye en el registro deinstrucciones. OPCODE necesita dos bits para codificar los tres tipos de instrucciones.En el caso de las instrucciones aritmético-lógicas hay que añadir un campo que indique eltipo de operación que se va a ejecutar (COPAL). Este campo tiene 3 bits para codificarlas ocho operaciones. El formato queda:

10:9 8:7 6:5 4:3 2:0

OPCODE D F1 F2 COPAL

364   Problemas de fundamentos y estructura de computadores

Page 381: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 381/569

Tipos de instrucciones OPCODE

Tipo 1 00

Tipo 2 01

Tipo 3 – Aritmético-lógicas 10

La palabra mínima del procesador es de 11 bits.

b)   El cambio más notable es que se ha sustituido la señal COPAL generada por la UC por laseñal COPAL almacenada en RI, (RIa2:0b). También han cambiado los bits que sirvenpara direccionar los operandos y el destino.

PROBLEMA 7

Dado el procesador TIFÓN.20

a)   Analizar la ejecución de las instrucciones sobre el camino de datos, indicando quéseñales de control se tienen que activar en cada caso.

b)   Diagrama de estados de la unidad de control.

c)   Especificación de la unidad de control.

Solución: 

a)   1.a fase. Búsqueda de la instrucción (BUS).

– Operaciones atómicas: RI:%M[PC], PC:%PC!1;

– Señales de control:  Ld – RI %1,  Ld –PC %1,  L/  E %0

2.a fase. Decodificación (DEC).

Capítulo 10  Diseño del camino de datos y la unidad de control   365

Page 382: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 382/569

3.a fase. Lectura del primer operando (POR).

– Operación atómica: AUX:%F1– Señales de control:  Ld –aux%1, Mux– L%1

4.a

fase. Lectura del segundo operando, ejecución y escritura en banco de registros(SORE).

– Operación atómica: D:%F2!AUX– Señales de control:  Mux– L%0,  EC %1. Fijarse que en esta fase no aparece la señal

de control COPAL que se generaba en el problema 1.

b)   Este diagrama es más sencillo que el anterior por lo que resta complejidad a la unidad decontrol.

c)Entrada UC Estado UC Señales de control

OPCODE Fase   Ld – PC Ld  – RI Ld  – aux Mux – L L/E EC  

10

BUS 1 1 0 X 0 0

DEC 0 0 0 X 0 0

POR 0 0 1 1 0 0

SORE 0 0 0 0 0 1

PROBLEMA 8

Se quiere implementar el nuevo TIFÓN.30, más flexible que el anterior procesador. Paraconseguirlo se van a utilizar nuevos modos de direccionamiento en las operaciones aritmé-tico-lógicas dando lugar a las instrucciones OP D,F1,@M, donde F1 usa un modo de direc-cionamiento directo a registro, (DR), y @M es un modo de direccionamiento directo amemoria (DM):

a)   Estudia el formato de estas nuevas instrucciones.

b)   Estudia la unidad secuenciadora necesaria para implementarlas.

Solución: 

a)   El nuevo formato es:

18:17 16:15 14:13 12:3 2:0

OPCODE D F1 @M COPAL

Se incluye el campo @M que contiene una dirección de memoria de 10 bits. La pala-bra de máquina mínima es de 19 bits.

366   Problemas de fundamentos y estructura de computadores

Page 383: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 383/569

b)   Se necesita un multiplexor que seleccione entre las dos posibles direcciones de memoria:la almacenada en el contador de programa y la almacenada en el registro de instrucciones.

PROBLEMA 9

Estudia el camino de datos necesario para implementar las instrucciones del problema an-terior. Explica las señales necesarias para controlarlo.

Solución: 

No hace falta multiplexor para seleccionar las direcciones de lectura del banco de registrospuesto que sólo se lee un operando.

Desde el registro de instrucciones se proporciona la dirección del destino, y de los dosoperandos. Además se proporciona también la operación aritmético-lógica. Desde la unidadde control se generan las siguientes señales:

 Mux–@- selecciona la dirección efectiva de memoria.

 EC  capacitación de escritura del banco de registros.

 L/  E  lectura escritura de memoria (para L%0 lectura).

 Ld –PC  -capacitación de escritura del contador de programa.

 Ld – RI  capacitación de escritura del registro de instrucciones.

Capítulo 10  Diseño del camino de datos y la unidad de control   367

Page 384: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 384/569

PROBLEMA 10

Dado el procesador anterior:

a)   Analizar la ejecución de las instrucciones sobre el camino de datos, indicando qué

señales de control se tienen que activar en cada caso.b)   Diagrama de estados de la unidad de control.

c)   Especificación de la unidad de control.

Solución: 

a)   1.a fase. Búsqueda de la instrucción (BUS).

– Operaciones atómicas: RI:%M[PC], PC:%PC!1– Señales de control:  Ld –PC %1;  Ld – RI %1, MUX –@%0, L/  E %0

2.a fase. Decodificación (DEC).

3.a

fase. Lectura de los operandos, ejecución y escritura de la solución en el banco deregistros (LOEE).

– Operación atómica: D:%F1 OP M[@D]– Señales de control:  EC %1, MUX –@%1, L/  M %0

Los caminos de datos parciales necesarios para traer los dos operandos son diferentes,por lo tanto se pueden traer los dos en el mismo ciclo de reloj.

b)

c)

Entrada UC Estado UC Señales de control

OPCODE Fase   Ld – PC Ld  – RI Mux  – @   L/E EC  

10

BUS 1 1 0 0 0

DEC 0 0 X 0 0

LOEE 0 0 1 0 1

PROBLEMA 11

Analizando el camino de datos y la unidad de control del anterior problema, ¿cuál creesque es su principal problema y cómo se podría solucionar?

368   Problemas de fundamentos y estructura de computadores

Page 385: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 385/569

Solución: 

El camino que tiene que recorrer el segundo operando es demasiado largo. Tiene que llegar ladirección al bus de direcciones de la memoria pasando por el multiplexor, se tiene que leer lamemoria, tiene que llegar el dato hasta la unidad aritmético-lógica, se tiene que realizar la

operación, tiene que llegar el resultado a la entrada del banco de registros y se tiene que escri-bir el dato en el banco de registros. Como todas estas acciones se tienen que realizar en unciclo de reloj, la frecuencia final de trabajo va a ser muy baja, lo que puede perjudicar a otrotipo de instrucciones implementadas.

Una posible solución sería cortar el camino del segundo operando mediante un registro deauxiliar lo que añadiría un ciclo a todas estas instrucciones pero permitiría unos ciclos máscortos y por lo tanto mayor frecuencia, lo que podría beneficiar a los demás tipos de instruc-ciones:

Como ya se ha comentado la inclusión de este registro auxiliar de datos afecta a la ejecu-ción de estas instrucciones añadiéndoles un ciclo más. La 3.a fase LOEE se descompone endos fases: Una fase de lectura del segundo operando (SOM) y otra fase de ejecución y escritu-ra (EE). El primer operando no necesita ninguna acción especial para leerse. El diagrama deestados queda como sigue:

Capítulo 10  Diseño del camino de datos y la unidad de control   369

Page 386: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 386/569

Y la especificación de la unidad de control

Entrada UC Estado UC Señales de control

OPCODE Fase   Ld – PC Ld  – RI MUX  – @   Ld – aux L/E EC  

10

BUS 1 1 0 0 0 0

DEC 0 0 X 0 0 0

SOM 0 0 1 1 0 0

EE 0 0 x 0 0 1

PROBLEMA 12

Finalmente se va diseñar el procesador TIFÓN.30 incluyendo las instrucciones OPD,F1,F2 y OP D,F1,@M. Además se va usar un registro auxiliar de datos para conseguir

que trabaje a una frecuencia más elevada.a)   Estudiar el formato de instrucciones.

b)   Estudiar la unidad secuenciadora.

Solución: 

a)   A los formatos hay que añadirles un campo que indique el modo de direccionamiento delsegundo operando (CMD) de un bit. Además el tamaño del formato será el del mayorformato. Intentaremos que campos de diferentes formatos con el mismo significado ocu-pen las mismas posiciones:

Instrucciones OP D,F1,F2

19:18 17 16:15 14:13 12:11 10:3 2:0

OPCODE CMD D F1 F2 NSU COPAL

Instrucciones OP D,F1,@M

19:18 17 16:15 14:13 12:3 2:0

OPCODE CMD D F1 @M COPAL

Siendo los códigos para los tipos de operación y para los modos de direccionamiento

los siguientes:

Tipos de instrucciones OPCODE Modos de direccionamiento CMD

Tipo 1 00 DR-DR-DR 0

Tipo 2 01 DR-DR-DM 1

Tipo 3– Aritmético-lógicas 10

El tamaño de palabra máquina es de 20 bits.

370   Problemas de fundamentos y estructura de computadores

Page 387: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 387/569

b)   En el primer tipo de instrucciones la única dirección de memoria necesaria es la almace-nada en PC. En el segundo tipo de instrucciones se usan dos direcciones de memoria: laalmacenada en PC y la almacenada en RI. El secuenciador es:

PROBLEMA 13

Diseñar el camino de datos del procesador TIFÓN.30 para las instrucciones del Proble-ma 12 indicando la acción que controla cada señal de control.

Solución: 

Para implementar las instrucciones con las dos fuentes en el banco de registros necesita-mos un registro auxiliar, como vimos en el problema 1. Para implementar las instruccionescon un operando en memoria utilizábamos un registro auxiliar para hacer el ciclo total máscorto. Al unir los dos caminos de datos hemos decidido utilizar un único registro auxiliar, lo

Capítulo 10  Diseño del camino de datos y la unidad de control   371

Page 388: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 388/569

que permite reducir área y complejidad. Esto afectará a los pasos que hay que seguir paratraer los operandos, como se verá más adelante.

Señales de entrada a la unidad de control OPCODE y CMD.

Señales generadas por la unidad de control: Ld –PC  capacitación de carga del contador de programa PC.

 Ld – RI  capacitación de carga del registro de instrucciones.

 Ld –aux capacitación de carga del registro auxiliar de datos.

 Mux– L selección del registro a leer del banco de registros (%0 F2,%1 F1).

 Mux–SO selección de la fuente del segundo operando (%0 memoria,%1 banco de re-gistro).

 Mux–@ selección de la fuente de dirección de memoria (%0 PC, %1 banco de regis-tros).

 L/  E  capacitación escritura de memoria (%0 lee,%1 escribe).

 EC  capacitación de escritura en banco de registros (%1 escribe).

La unidad aritmético-lógica se controla desde RIa2:0b.

PROBLEMA 14

Considerando TIFÓN.30

a)   Analizar la ejecución de las instrucciones sobre el camino de datos, indicando quéseñales de control se tienen que activar en cada caso.

b)   Diagrama de estados de la unidad de control.c)   Especificación de la unidad de control.

d)   Suponiendo que el 70% de las instrucciones aritmético-lógicas que se ejecutan en elprocesador tienen sus dos operandos fuente en el banco de registros, ¿qué cambio sepodría introducir en la unidad de control para optimizarlas?

Solución: 

a)   Las fases de búsqueda y decodificación son comunes a los dos tipos de instrucciones:

1.a fase. Búsqueda de la instrucción (BUS).

– Operación atómica RI:%M[PC], PC%PC!1– Señales de control:  Ld –PC %1,  Ld – RI %1, Mux@%0, L/  E %0

2.a fase. Decodificación (DEC).

Instrucciones OP D,F1,F2 con OPCODE%10, CMD%0

3.a fase. Búsqueda del segundo operando en registro (SOR).

– Operación atómica: AUX:%F2

– Señales de control:  Ld –aux%1; Mux–SO%1, Mux– L%0

372   Problemas de fundamentos y estructura de computadores

Page 389: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 389/569

Se realiza primero la lectura del segundo operando porque sólo se ha puesto un regis-tro auxiliar de datos en la segunda entrada de la UAL.

4.a fase. Lectura del primer operando en registro y ejecución (POR).

– Operación atómica: D:%R1 OP AUX– Señales de control:  Mux– L%1,  EC %1

Instrucciones OP D,F1,@M con OPCODE%10, CMD%1

3.a fase. Lectura del segundo operando en memoria (SOM).

– Operación atómica: AUX :% M[@M]

– Señales de control:  Mux–@%1, Mux–SO%0, Ld –aux%1

4.a fase. Lectura del primer operando, ejecución y escritura (POR2).

– Operación atómica: D:%R1 OP AUX– Señales de control: Mux–L%1, EC%1

b)

c)

Entrada UC Estado UC Señales de control

OPCODE,CMD

  Fase   Ld – PC Ld  – RI Ld  – aux Mux – L Mux  – SO Mux – @   L/E EC  

XX, XXBUS 1 1 0 X X 0 0 0

DEC 0 0 0 X X X 0 0

10, 0SOR 0 0 1 0 1 X 0 0

POR 0 0 0 1 X X 0 1

10, 1SOM 0 0 1 X 0 1 0 0

POR2 0 0 0 1 X X 0 1

Capítulo 10  Diseño del camino de datos y la unidad de control   373

Page 390: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 390/569

d)   Se puede incluir la búsqueda del segundo operando de las instrucciones con fuente en elbanco de registros dentro de la fase de decodificación. De esta forma estas instruccionestardan un ciclo menos en ejecutarse. La carga de esta información en el registro auxiliarno afecta a las instrucciones con un operando en memoria, puesto que en la 3.a fase de

estas instrucciones se sobrescribe la información almacenada en la etapa de decodifica-ción. El diagrama de estados queda:

La especificación de la unidad de control queda:

Entrada UC Estado UC Señales de control

OPCODE,

CMD

  Fase   Ld – PC Ld  – RI Ld  – aux Mux – L Mux  – SO Mux – @   L/E EC  

XX, XBUS 1 1 0 X X 0 0 0

DEC/SOR 0 0 1 0 1 X 0 0

10, 0 POR 0 0 0 1 X X 0 1

10, 1SOM 0 0 1 X 0 1 0 0

POR2 0 0 0 1 X X 0 1

PROBLEMA 15

Se quieren añadir las siguientes instrucciones aritmético-lógicas OP D, (F1), @M siendo(F1) el modo de direccionamiento indirecto a registro (IR) y @M el modo de direcciona-miento directo a memoria (DM), a TIFÓN 30:

a)   Estudiar el formato de las instrucciones.

b)   Estudiar la unidad secuenciadora necesaria para implementarla.

374   Problemas de fundamentos y estructura de computadores

Page 391: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 391/569

Solución: 

a)18:17 16:15 14:13 12:3 2:0

OPCODE D F1 @M COPAL

b)

PROBLEMA 16

Estudiar el camino de datos del problema 15.

Solución: 

Capítulo 10  Diseño del camino de datos y la unidad de control   375

Page 392: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 392/569

PROBLEMA 17

Considerando el problema 16:

a)   Analizar la ejecución de las instrucciones sobre el camino de datos, indicando qué

señales de control se tienen que activar en cada caso.b)   Especificación de la unidad de control.

c)   Añadir estas instrucciones a TIFÓN.30, estudiando el nuevo formato, el camino dedatos y la unidad de control.

Solución: 

a)   1.a fase. Búsqueda de la instrucción (BUS).

– Operación atómica: RI:%M[PC], PC:%PC!1– Señales de control:  Ld –PC %1  y Ld – RI %1, Mux–@%0, L/  E %0

2.a

fase. Decodificación (DEC).3.a fase. Lectura del segundo operando (SOM):

– Operaciones atómicas: AUX:%M[@M]– Señales de control: Ld–aux%1, Mux–@%1

4.a fase. Lectura del primer operando, ejecución y escritura en el banco de registro(POME).

– Operación atómica: D:%M[F1] OP AUX– Señales de control:  Mux – @%2, L/E %0, EC %1

b)Entrada UC Estado UC Señales de control

OPCODE Fase   Ld – PC Ld  – RI Ld  – aux Mux – @   L/E EC  

XX, XBUS 1 1 0 0 0 0

DEC 0 0 0 X 0 0

SOM 0 0 1 1 0 0

POME 0 0 0 2 0 1

c)   Los formatos TIFÓN.30 eran los siguientes

19:18 17 16:15 14:13 12:11 10:3 2:0

OPCODE CMD D F1 F2 NSU COPAL

19:18 17 16:15 14:13 12:3 2:0

OPCODE CMD D F1 @M COPAL

El nuevo formato casa con el formato con modo de direccionamiento directo a memo-ria. La única diferencia es que el CMD necesita un bit más puesto que hay que codificarun nuevo modo de direccionamiento:

376   Problemas de fundamentos y estructura de computadores

Page 393: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 393/569

Instrucciones OP D,F1,F2

20:19 18:17 16:15 14:13 12:11 10:3 2:0

OPCODE CMD D F1 F2 NSU COPAL

Instrucciones OP D,(F1),@M y OP D,F1,@M

20:19 18:17 16:15 14:13 12:3 2:0

OPCODE CMD D F1 @M COPAL

Tipos de instrucciones OPCODE Modos de direccionamiento CMD

Tipo 1 00 DR-DR-DR 00

Tipo 2 01 DR-DR-DM 01

Tipo 3 – Aritmético-lógicas 10 DR-IR-DM 10

Camino de datos:

Capítulo 10  Diseño del camino de datos y la unidad de control   377

Page 394: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 394/569

Diagrama de estados:

Especificación de la unidad de control:

Entrada UC Estado UC Señales de control

OPCODE,

CMDFase   Ld – PC Ld – RI Ld – aux Mux – L Mux – PO Mux – SO Mux – @  L/E EC 

X, X

BUS 1 1 0 X X X 0 0 0

DEC 0 0 0 X X X X 0 0

10, 00

SOR 0 0 1 0 X 0 X 0 0

POR 0 0 0 1 0 X X 0 1

10, 01

SOM 0 0 1 X X 1 1 0 0

POR2 0 0 0 1 0 X X 0 1

10, 10 SOM2 0 0 1 X X 1 1 0 0

POIR 0 0 0 1 1 X 2 0 1

PROBLEMA 18

Se quieren implementar en TIFÓN.30 las instrucciones Op (@M),d(F1),F2, donde (@M)es un modo de direccionamiento indirecto a memoria (IM) y d(F1) es un modo de direc-cionamiento relativo a registro base con desplazamiento, siendo éste de 10 bits.

378   Problemas de fundamentos y estructura de computadores

Page 395: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 395/569

a)   Estudiar el formato de la instrucción.

b)   Estudiar la unidad secuenciadora.

c)   Estudiar el camino de datos.

d)   Estudiar la unidad de control.

Solución: 

a)30:29 28:27 26:25 24:23 22:13 12:3 2:0

OPCODE CMD RF2 RB   desplaza @M COPAL

b)

La entrada 0 del multiplexor implementa el secuenciamiento implícito.

La entrada 1 del multiplexor implementa el modo de direccionamiento relativo a regis-tro base con desplazamiento.

Las entradas 2 y 3 se utilizan para implementar el modo de direccionamiento indi-recto a memoria. Se necesita un registro auxiliar de direcciones (AUX@) paraguardar la dirección efectiva de memoria en la que se va a guardar el resultado de laoperación.

En el banco de registros se necesita un multiplexor para seleccionar entre los dos posi-bles registros de lectura, el registro base RB y el registro RF2.

La entrada de dirección de escritura no necesita entrada puesto que en esta instrucciónsólo se escribe en memoria.

Capítulo 10  Diseño del camino de datos y la unidad de control   379

Page 396: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 396/569

c)

AUX es necesario puesto que, aunque un operando se trae de memoria y el otro setrae del banco de registros, se necesita acceder dos veces al banco de registros para obte-ner los operandos.

d)   Análisis de las instrucciones:

1.a fase. Búsqueda de la instrucción (BUS).

– Operaciones atómicas: RI:%M[PC], PC:%PC!1

– Señales de control:  Ld –PC %1, Ld – RI %1,  Mux–@%0, L/  E %0

2.a fase. Decodificación (DEC).

3.a fase. Lectura del primer operando con modo de direccionamiento relativo a registrobase con desplazamiento (POM).

– Operación atómica: AUX:%M[F1!d]

– Señales de control:  Ld –aux%1, Mux– L%1, Mux–@%14.a fase. Cálculo de la dirección efectiva del destino (@ED).

– Operación atómica: AUX@:%M[@M]

– Señales de control:  Mux–@%2, Ld –aux@%1, L/  E %0

5.a fase. Ejecución y escritura en memoria (EEM).

– Operación atómica: M[AUX@]%AUX OP F2,

– Señales de control:  Mux– L%0, Mux–@%3, L/  E %1

380   Problemas de fundamentos y estructura de computadores

Page 397: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 397/569

Diagrama de estados:

Especificación de la unidad de control:

Entrada UC Estado UC Señales de control

OPCODE Fase   Ld – PC Ld  – RI Ld  – aux Ld – aux @   Mux – @   Mux – L L/E EC  

XX

BUS 1 1 0 0 0 X 0 0

DEC 0 0 0 0 x X 0 0

POM   0 0 1 0 1 1 0 0

@ED 0 0 0 1 2 x 0 0

EEM 0 0 0 0 3 0 1 0

PROBLEMA 19

Integrar estas últimas instrucciones en el procesador TIFÓN.30 especificando el formatode las instrucciones, el camino de datos y la unidad de control.

Solución: 

Las instrucciones estudiadas en los anteriores problemas necesitan un formato de 31 bits, porlo tanto los nuevos formatos tendrán 31 bits.

Instrucciones Op D,F1,F2

30:29 28:27 26:25 24:23 22:21 20:3 2:0

OPCODE CMD D F1 F2 NSU COPAL

Instrucciones Op D,(F1),@M y Op D,F1,@M

30:29 28:27 26:25 24:23 22:13 12:3 2:0

OPCODE CMD D F1 000.0 @M COPAL

Para las instrucciones Op D,F1,@M el campo RIa22:13b no se usa.

Para las instrucciones Op D,(F1),@M suponemos RIa22:13b%00..0. Esto se hace paraaprovechar la parte del secuenciador que implementa el modo de direccionamiento relativo aregistro base. Como se puede ver en el formato de más abajo los bits RIa22:13b contienen

Capítulo 10  Diseño del camino de datos y la unidad de control   381

Page 398: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 398/569

el desplazamiento, pero cuando el desplazamiento es cero, el modo de direccionamiento rela-tivo a registro base se puede considerar indirecto a registro. Con esta decisión se simplifica elsecuenciador.

Instrucciones Op (@M),d(F1),F2

30:29 28:27 26:25 24:23 22:13 12:3 2:0

OPCODE CMD RF2 RB   desplaza @M COPAL

Tipos de instrucciones OPCODE Modos de direccionamiento CMD

Tipo 1 00 DR-DR-DR 00

Tipo 2 01 DR-DR-DM 01

Tipo 3 – Aritmético-lógicas 10 DR-IR-DM 10

IRBD-DR-IM 11

Camino de datos:

382   Problemas de fundamentos y estructura de computadores

Page 399: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 399/569

Análisis de las instrucciones:

1.a fase. Búsqueda de la instrucción (BUS).

– Operaciones atómicas: RI:%M[PC] Pc:%PC!1

– Señales de control:  Ld –PC %1 y Ld – RI %1  Mux@%0, L/  E %02.a fase. Decodificación (DEC).

Instrucciones Op D,F1,F2 con OPCODE%10 y CMD%00

3.a fase. Lectura del primer operando en registro (POR).

– Operaciones atómicas: AUX1:%F1– Señales de control:  Mux– L%1, Mux–P0%0, Ld –aux1%1

4.a fase. Lectura del segundo operando en registro (SOR).

– Operación atómica: AUX2:%F2

– Señales de control:  Mux– L%

0, Mux–SO%

0, Ld –aux2%

15.a fase. Ejecución y escritura en banco de registros (EE).

– Operación atómica: D%AUX1 Op AUX2– Señales de control: EC%1

Instrucciones Op D,F1,@M con OPCODE%10 y CMD%01

3.a fase. Lectura del primer operando en registro (POR2).

– Operación atómica: AUX1:%F1– Señales de control: Mux– L%1, Mux–P0%0, Ld –aux1%1

4.

a

fase. Lectura del segundo operando de memoria (SOM).– Operación atómica: AUX2:%M[@M]– Señales de control: Mux–@%2, L/ E%0, Mux–SO%1, Ld–aux2%1

5.a fase. Ejecución y escritura en el banco de registros (EE2):

– Operación atómica: D:%AUX1 Op AUX2– Señales de control:  EC %1

Instrucciones Op D,(F1),@M con OPCODE%10 y CMD%10

3.a fase. Lectura del primer operando de memoria (POIR).

– Operaciones atómicas: AUX1%M[F1]– Señales de control:  Mux–@%1, L/  E %0, Mux–PO%1, Ld –aux1%1

4a fase. Lectura del segundo operando en memoria (SOM2).

– Operación atómica: AUX2%M[@M]– Señales de control:  Mux–@%2, L/  E %0, Mux–SO%1, Ld –aux2%1

5.a fase. Ejecución y escritura en banco de registros (EE3).

– Operación atómica: D%AUX1 OP AUX2;– Señales de control:  EC %1

Capítulo 10  Diseño del camino de datos y la unidad de control   383

Page 400: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 400/569

Instrucciones Op (@M),d(F1),F2 con OPCODE%10 y CMD%11

3.a fase. Lectura del primer operando en memoria (POM).

– Operaciones atómicas: AUX1%M[F1!d]

– Señales de control:  Mux– L%1, Mux–PO%1, Ld –aux1%14.a fase. Lectura del segundo operando (SOR2).

– Operaciones atómicas: AUX2:%F2

– Señales de control:  Mux– L%2, Mux–SO%0, Ld –aux2%1

5.a fase. Cálculo de la dirección efectiva del resultado(@ER).

– Operaciones atómicas: AUX@:%M[@M]

– Señales de control:  Mux–@%2, Ld –aux@%1

6.a fase. Ejecución y escritura en memoria (EEM).

– Operaciones atómicas: M[AUX@]:%

AUX1 Op AUX2– Señales de control:  Mux–@%3; L/  E %1

Especificación de la unidad de control

Entrada UC Estado UC Señales de control

OPCODE,

CMD  Fase   Ld – PC Ld  – RI Ld  – aux1 Ld – aux2 Mux – L Mux  – PO Mux – SO Mux – @   L/E EC Ld  – aux @

XX, XXBUS 1 1 0 0 X X X 0 0 0 0

DEC 0 0 0 0 X X X X 0 0 0

10, 00

POR 0 0 1 0 1 0 X X 0 0 0

SOR 0 0 0 1 0 X 0 X 0 0 0

EE 0 0 0 0 X X X X 0 1 0

10, 01

POR2 0 0 1 0 1 0 X 1 0 0 0

SOM 0 0 0 1 X X 1 2 0 0 0

EE2 0 0 0 0 X X X X 0 1 0

10, 10

POIR 0 0 1 0 X 1 X 1 0 0 0

SOM2 0 0 0 1 1 X 1 2 0 0 0

EE3 0 0 0 0 X X X X 0 1 0

10, 11

POM   0 0 1 0 1 1 X 1 0 0 0

SOR2 0 0 0 1 2 X 0 X 0 0 0

@ER 0 0 0 0 X X X 2 0 0 1

EEM 0 0 0 0 X X X 3 1 0 0

384   Problemas de fundamentos y estructura de computadores

Page 401: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 401/569

PROBLEMA 20

Estudiar como quedaría TIFÓN 30 al añadirle la instrucción BIFSIZ , @M que realizala siguiente función: SI FZ%1r PC%@M!1, siendo FZ un biestable que se pone a 1

si el resultado de la última operación aritmético lógica es cero y si no se carga con uncero.

¿Es posible implementar las operaciones de LOAD y STORE sin modificar el caminode datos del procesador X? indica cuales deberían ser sus características y como se podríahacer?

Solución: 

La instrucción de LOAD y STORE son instrucciones de movimiento de datos, de memo-ria a banco de registros y de banco de registros a memoria. Por lo tanto, si existe un caminoentre estos dos módulos se pueden implementar. Este camino existe pasando a través de launidad aritmético-lógica.

Para implementar las operaciones de LOAD se podría utilizar el camino de datos de lasinstrucciones que usan como operandos fuentes posiciones de memoria.

Capítulo 10  Diseño del camino de datos y la unidad de control   385

Page 402: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 402/569

Para implementar las operaciones se podría utilizar el camino de datos que implementa lasinstrucciones que tienen como destino una posición de memoria.

En la unidad aritmético-lógica habría que implementar una operación  dejar pasar el dato

sin operar sobre él.

10.3 Problemas propuestos

PROBLEMA 1

Se quiere diseñar un procesador, que llamaremos PPM, que tenga las siguientes caracterís-ticas:

Un banco de 64 registros de propósito general, con dos buses de salida y un bus deentrada.

Una memoria de 1G palabras con un bus de salida, un bus de entrada y un bus de direc-ciones.

Una palabra de procesador de 64 bits.

Que trabaje a la mayor frecuencia posible.

Para diseñarlo se van a estudiar caminos parciales de instrucciones para después irlas aña-diendo al camino total. Se comienza el estudio con 5 instrucciones aritmético-lógicas (AL) dedos operandos, uno de ellos es la Fuente1 y el otro hace las veces de Fuente2 y Destino. Losdos operandos utilizan el modo de direccionamiento directo a registro. Estudiar el formato deinstrucciones, el camino de datos y la unidad de control.

PROBLEMA 2

Estudiar el formato, el camino de datos y la unidad de control para 5 instrucciones aritmético-lógicas en las que el operando Fuente1 sea un inmediato de 10 bits.

PROBLEMA 3

Incluye en PPM las instrucciones del problema 1 y 2 estudiando sus formatos, camino dedatos y unidad de control.

PROBLEMA 4

Sea una instrucción de bifurcación incondicional y cinco instrucciones de bifurcación condi-cional con las siguientes condiciones de salto:

Mayor que.

Menor que.

Igual que.

Mayor o igual que.

Menor o igual que.

386   Problemas de fundamentos y estructura de computadores

Page 403: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 403/569

Las bifurcaciones pueden usar dos modos de direccionamiento: Directo a memoria y rela-tivo a contador de programa con un desplazamiento de 15 bits. Para implementar las bifurca-ciones condicionales vamos a usar un registro de estado (SR) de 3 bits cada uno de ellos conun significado:

 Z %1 si el resultado de la última operación AL ha sido cero,  Z % 0 en el resto de loscasos.

 N %1 si el resultado de la última operación AL ha sido negativo,  N %0 en el resto delos casos.

P%1 si el resultado de la última operación AL ha sido positivo,  P%0 en el resto delos casos.

Este registro SR se actualiza en cada operación AL. El HW necesario para generarlos sesupone incluido en la UAL.

PROBLEMA

 5Rediseñar el formato del camino de datos y la unidad de control del problema 4 utilizando unmódulo combinacional  Generador de Condición (GC) cuya misión es simplificar la unidad decontrol. Las entradas a GC son los bits de registro de estados SR y los bits que indican el tipode salto. La salida es un bit Condición (C) que le indica a la unidad de control si la condiciónde salto se cumple o no se cumple.

PROBLEMA 6

Se quieren añadir al procesador PPM las instrucciones del problema 4 utilizando en el diseñoel módulo GC. Estudiar el formato de las instrucciones, el camino de datos y la unidad de

control.

PROBLEMA 7

Se quiere añadir a PPM el modo de direccionamiento indirecto a memoria.

a)   Estudiar los formatos, el camino de datos y la unidad de control necesarios para imple-mentar las instrucciones AL en las que los dos operandos utilizan este modo de direc-cionamiento.

b)   Se quiere que las instrucciones AL sean ortogonales, es decir que cualquiera de los ope-randos pueda utilizar cualquiera de los modos de direccionamiento. Estudia los formatos,el camino de datos y la unida de control necesarios para implementar esta ortogonalidad.

PROBLEMA 8

Estudiar los formatos de instrucciones en camino de datos y la unidad de control que se obtie-nen al añadir a PPM los nuevos formatos estudiados en el problema 7b.

PROBLEMA 9

A PPM le falta un conjunto de instrucciones que permita realizar movimiento de datos. Estu-diar el formato de instrucciones, camino de datos y unidad de control de las instrucciones

Capítulo 10  Diseño del camino de datos y la unidad de control   387

Page 404: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 404/569

Move fuente-destino donde fuente y destino pueden ser indistintamente memoria y banco deregistros, utilizando los siguientes modos de direccionamiento:

Directo a registro.

Relativo a índice.Indirecto a memoria.

PROBLEMA 10

Añadir a PPM las instrucciones del problema 9.

388   Problemas de fundamentos y estructura de computadores

Page 405: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 405/569

En un procesador multiciclo las instrucciones se ejecutan de una en una, siguiendo el orden de

programa. Cada instrucción tiene varias fases y cada una de las cuales dura un ciclo de reloj.

Para realizar una primera aproximación a la segmentación se parte de un procesador multici-

clo que puede ejecutar los siguientes tipos de instrucciones:

Operaciones aritmético lógicas enteras: OP D,F1,F2.

Operaciones LOAD D,@M.

Operaciones STORE F,@M.

Operaciones de bifurcación condicional BIFS R,@M.

Si el procesador tiene un banco de registros con dos puertos de salida, las fases de cada tipo

de instrucción son las siguientes:

Fases de las instrucciones

Tipo de

instrucciones  Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5

Aritmético- lógicas Búsqueda Decodificación(*) Ejecución Escritura

LOAD Búsqueda Decodificación Ejecución (I) Memoria Escritura

STORE Búsqueda Decodificación Ejecución (I) Memoria

Bifurcaciones Búsqueda Decodificación Ejecución (II)

(*) Decodificación y lectura de operandos.(I) Cálculo de la dirección efectiva.

(II) Cálculo de la dirección de salto y comprobación de la condición.

Page 406: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 406/569

Vamos a ver cómo sería el diagrama fase-tiempo al ejecutar la siguiente secuencia de ins-

trucciones en el procesador multiciclo:

LOAD R4,@M

ADD R4,R4,R3

STORE R4,@M

1 2 3 4 5 6 7 8 9 10 11 12 13

LOAD R4,@M F D E M W

ADD R4,R4,R3 F D E W

STORE R4,@M F D E M

11.1 Segmentación básica

El objetivo de la segmentación es aumentar el rendimiento del procesador extrayendo parale-

lismo a nivel de instrucción permitiendo que varias instrucciones puedan ejecutarse en parale-

lo en el procesador. Esto se consigue desacoplando las fases de ejecución de una instrucción

mediante registros de pipeline.

Otra característica de la segmentación es que no existe unidad de control, sino que la

información de control de una instrucción avanza con la instrucción a lo largo del procesa-

dor. Por otro lado, puesto que las instrucciones en procesador multiciclo no tienen el mismo

número de fases, al implementar la segmentación se podría dar el caso de que dos instruc-

ciones intentaran acceder en el mismo ciclo a la misma etapa. Para evitar estos problemas

en los procesadores segmentados, todas las instrucciones tienen que pasar por todas las eta-

pas. Por lo tanto en algunas de estas etapas la instrucción puede estar inactiva, como es el

390   Problemas de fundamentos y estructura de computadores

Page 407: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 407/569

caso de la etapa de memoria en las operaciones enteras. Visto lo anterior, el diagrama fase-

tiempo de la anterior secuencia de instrucciones ejecutada en un procesador segmentado

sería:

1 2 3 4 5 6 7

LOAD R4,@M F D E M W

ADD R6,R5,R3 F D E M W

STORE R7,@M F D E M W

Como se puede observar, esta secuencia tarda 7 ciclos en ejecutarse, mientras que en el

multiciclo la misma secuencia tarda 13 ciclos.

11.2 Problemas y soluciones: técnicas básicas

En un procesador segmentado ideal el ciclo por instrucción es 1. En los procesadores reales

aparecen una serie de riesgos que provocan la parada del procesador y, por lo tanto, la pérdida

de rendimiento. Estos riesgos son:

Riesgos estructurales.

Riesgos de lectura después de escritura (LDE).

Riesgos de escritura después de lectura (EDL).

Riesgos de escritura después de escritura (EDE).

 Riesgos estructurales: dos instrucciones intentan acceder en el mismo ciclo de reloj al mismo

recurso hardware (HW). Por ejemplo, si una instrucción se encuentra en la etapa de búsqueda

y un LOAD se encuentra en la etapa de memoria, las dos intentan acceder a la memoria. Estos

riesgos se pueden eliminar parando la segunda instrucción, pero las paradas penalizan el ren-

dimiento. En la mayoría de los casos se pueden eliminar los riesgos añadiendo más HW. En el

caso de la memoria se van a utilizar dos memorias, una de instrucciones y otra de datos. Otra

optimización HW que evita paradas es permitir que el banco de registros se escriba en la pri-

mera mitad del ciclo de reloj y se lea en la segunda mitad del ciclo de reloj.

 Riesgos de lectura después de escritura, una instrucción intenta leer un dato antes de que haya

sido escrito en el banco de registros. Supongamos la secuencia de instrucciones:

LOAD R4,@M

ADD R6,R4,R3

En el siguiente cuadro puede observarse que la instrucción de LOAD escribe el dato en el

ciclo 5, pero que la instrucción ADD lo necesita en el ciclo 3, que es cuando lo tiene que leer

del banco de registros. Por lo tanto, si no se hace algo, la instrucción LOAD se ejecutará con

un valor erróneo.

Capítulo 11  Procesadores segmentados   391

Page 408: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 408/569

La solución más sencilla es parar la instrucción ADD hasta que ha acabado el LOAD.

Esto soluciona el problema pero penaliza el rendimiento. Darse cuenta que la parada en deco-

dificación provoca la parada de todas las instrucciones que van detrás.

Otra solución es el cortocircuito. La instrucción que proporciona el dato lo envía directa-

mente a la etapa de ejecución de la instrucción que lo espera.

Si la instrucción que proporciona el dato es un LOAD, el estudio es ligeramente diferente

porque el dato no se da desde ejecución sino desde memoria, es decir un ciclo más tarde. Por

lo tanto hay que provocar una parada además de activar el corto circuito. Es importante darse

cuenta que los cortocircuitos reducen las paradas, pero no las eliminan.

 Riesgos de control. Las instrucciones de bifurcación tienen que calcular la dirección de salto y

comprobar la condición de salto antes de poder leer la siguiente instrucción. Vamos a suponer

que las bifurcaciones realizan ese cálculo en la etapa de ejecución:

392   Problemas de fundamentos y estructura de computadores

Page 409: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 409/569

En estos casos hay que provocar dos paradas antes de poder leer la instrucción siguiente.

El problema se puede reducir adelantando el HW que calcula la condición y la dirección de

salto a la etapa de decodificación:

Con esta aproximación se reducen las paradas pero no se eliminan. Otra solución es utili-

zar saltos retardados. Esta es una técnica de compilación que consiste en que el compilador

busca una instrucción que se ejecute siempre y la coloca detrás del salto condicional. Además,

el HW del procesador en lugar de provocar una parada ejecuta esta instrucción, que viene

direccionada por el contador de programa

Evidentemente el compilador debe comprobar que al cambiar de posición esta instrucción

no se altera el resultado final del programa. Cuando no encuentra una instrucción de estas

características el compilador añade una instrucción NOP, que es una instrucción que no hace

nada. Se puede considerar equivalente a una parada.

Otra solución es la predicción estática. Esta es una solución HW. Por defecto se empieza a

ejecutar siempre la instrucción direccionada por el contador del programa. Si la predicciónfalla esta instrucción se convierte en una NOP y se ejecuta la instrucción correcta. En caso de

que acierte la predicción se sigue la ejecución normal. Con esto se consigue que sólo haya

paradas en los casos en los que falla la predicción.

Capítulo 11  Procesadores segmentados   393

Page 410: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 410/569

Existen otros dos tipos de riesgo. Escritura después de escritura en el que una instrucción

intenta escribir un dato en una posición del banco de registros antes de que una instrucción

anterior haya escrito su resultado en la misma posición del banco de registros. Las soluciones

a este tipo de riesgo las explicamos en el epígrafe de procesadores segmentados multifuncio-

nales. El riesgo de  escritura después de lectura  aparece cuando una instrucción intenta escri-

bir un dato en una posición del banco de registros antes de que una instrucción anterior lo

haya leído. Por construcción, no se pueden dar en ninguno de los dos procesadores segmenta-

dos que vamos a estudiar.

11.3 Pipeline multifuncional

En estos procesadores, además de la unidad funcional de enteros, se tiene un conjunto de uni-

dades funcionales de coma flotante que se caracterizan por tener latencias superiores a 1. Su-

poniendo una suma en coma flotante con una latencia de 2 ciclos y una multiplicación de 4

ciclos, el diagrama etapa-tiempo de la secuencia de instrucciones:

ADD F4,F2,F6

MUL F8,F10,F0

1 2 3 4 5 6 7 8 9

ADD F4,F2,F6 F D E1 E2 M W

MUL F8,F10,F0 F D E1 E2 E3 E4 M W

El estudio realizado para los riesgos de lectura después de escritura y de control es válido

para estos procesadores multifuncionales.

Debido a que ahora las instrucciones tienen diferente longitud se puede dar el caso de quedos instrucciones intenten escribir en el banco de registros en el mismo ciclo de reloj. Como

el banco de registros sólo tiene un puerto de escritura hay que evitarlo. Se puede utilizar un

banco de registros con dos puertos de escritura, pero esto es caro y complejo. Hay dos solu-

ciones: a) parar un ciclo de reloj la segunda instrucción en la etapa de decodificación, o b)

parar la segunda instrucción en la última etapa de ejecución.

Por último, se va a estudiar el tratamiento de los riesgos de escritura después de escritura.

En el siguiente cuadro se puede ver un ejemplo. La instrucción de suma debería ser la última

en escribir, pero dado que la multiplicación es más larga es la última que lo hace.

394   Problemas de fundamentos y estructura de computadores

Page 411: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 411/569

1 2 3 4 5 6 7 8 9

MUL F8,F10,F0 F D E1 E2 E3 E4 M W

ADD F8,F2,F6 F D E1 E2 M W

Existen dos soluciones: a) detener en decodificación la segunda instrucción lanzada o b)

inhibir la escritura de la primera instrucción lanzada.

Para calcular el ciclo por instrucción de estos procesadores se va a utilizar la siguiente

expresión:

CPI%CPIideal!

tipos de instrucción

;i

frecuenciai#penalizacióni

Donde frecuencia indica la frecuencia con la que aparece una determinada penalización.

Por ejemplo, si considero que las bifurcaciones condicionales siempre van a producir una pa-rada de dos ciclos y que el 30% de las instrucciones son bifurcaciones, el CPI sería:

CPI%CPIideal!

tipos de instrucción

;i

frecuenciai#penalización1% 1!0,3#2% 1,6

 NOTA:  instrucciones más usadas en los problemas.

Instrucción  N.o de ciclos

en ejecución

LD Fi,D(Rb) Movimiento de información de memoria a registro 1

SD D(Rb),Fi Movimiento datos de registro a memoria 1 ciclo

ADDD D,Fi,Fj Suma en coma flotante Variable

MULD D,Fi.Fj Multiplicación en coma flotante Variable

DIVD D,Ri,Rj División en coma flotante Variable

ADDI D,Ri,Rj Suma de enteros 1 ciclo

SUBI D,Ri,Rj Resta de enteros 1 ciclo

BEQZ Ri,@M Saltar si Ri%0 1 ciclo

BNEZ Ri,@M Saltar si RiÇ 0 1 ciclo

SGTI Ri, Rj, DONE Ri%1 si RjbDONE 1 ciclo

NOP Instrucción que introduce el compilador. No hace nada 1 ciclo

Capítulo 11  Procesadores segmentados   395

Page 412: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 412/569

11.4 Problemas resueltos

PROBLEMA 1

El siguiente fragmento de código se ejecuta en un procesador segmentado:

LOOP: LD F2, 0(R1)

MULTD F4, F2, F0

LD F6, 0(R2)

ADDD F6, F4, F6

SD 0(R2), F6

ADDI R1, R1, 8

ADDI R2, R2, 8

SGTI R3, R1, DONE

BEQZ R3, LOOP

NOP

Suponiendo que:

Un dato se puede escribir en un registro y leer su valor en el mismo ciclo.

La detección de riesgos LDE y parada se realiza en la etapa de decodificación.

La detección de riesgos estructurales y parada se realiza en la etapa de decodifica-

ción.

Los saltos se resuelven en la etapa de decodificación.

Se emplea la técnica de compilación salto retardado de una instrucción para reducir

las paradas por riesgo de control.

Se permite que coexista una STORE y una instrucción aritmético-lógica en la misma

etapa.

Las unidades funcionales tienen las siguientes características:

Determinar el CPI teniendo en cuenta que DONE% 0# 1000 y R1%0# 0100 al ini-

cio de la ejecución y se supone que no se dispone de lógica de cortocircuito.

Solución: 

Recordatorio: SGTI R3, R1, DONE carga un 1 en R3 si R1bDONE.

El dato no se puede tener hasta que se ha escrito en el banco de registros en la etapa de

escritura (W o WB del inglés «Write Back»).

396   Problemas de fundamentos y estructura de computadores

UF Cantidad Latencia Segmentación

FP ADD 1 4 No

FP MUL 1 5 No

INT ALU 1 1 No

Page 413: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 413/569

    1

    2

    3

    4

    5

    6

    7    8

    9

    1    0

    1    1

    1    2

    1    3

    1    4

    1    5    1    6

    1    7

    1    8

    1    9

    2    0

    2    1

    2    2

    2    3    2    4

    2    5

    2    6

    2    7

    1

     L     D     F    2 ,    0     (     R    1     )

     F

     D

     E

     M

     W

    2

     M     U     L     T     D     F    4 ,     F    2 ,     F    0

     F

     D       P

     D       P

     D

     E    1

     E    2     E

    3

     E    4

     E    5

     M

     W

    3

     L     D     F    6 ,    0     (     R    2     )

     F       P

     F       P

     F

     D

     E     M

     W

    4

     A     D     D     D     F    6 ,     F    4 ,     F    6

     F

     D       P

     D

       P

     D       P

     D       P

     D       P

     D

     E    1

     E    2

     E    3     E    4

     M

     W

    5

     S     D    0     (     R    2     ) ,     F    6

     F

       P

     F       P

     F       P

     F       P

     F       P

     F

     D       P

     D       P

     D       P

     D       P

     D       P

     D

     E

     M

     W

    6

     A     D     D     I     R    1 ,     R    1 ,    8

     F       P

     F       P

     F       P

     F       P

     F       P

     F

     D

     E

     M

     W

    7

     A     D     D     I     R    2 ,     R    2 ,    8

     F

     D

     E

     M

     W

    8

     S     G     T     I     R    3 ,     R    1 ,     D     O     N     E

     F

     D       P

     D

     E

     M

     W

    9

     B     E     Q     Z     R    3 ,     L     O     O     P

     F       P

     F

     D       P

     D

     E

     M

     W

    1    0

     N     O     P

     F       P

     F

     D

     E

    1    1

     L     D     F    2 ,    0     (     R    1     )

     F

Capítulo 11  Procesadores segmentados   397

Page 414: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 414/569

La parada de las instrucciones en la etapa de búsqueda (FP) se produce porque la ins-

trucción anterior está parada en decodificación (DP).

La instrucción número 2 (I2) se para por LDE con 1. La parada se mantiene hasta que la

instrucción 1 (I1) alcanza la etapa W, entonces I2 puede leer los registros en la segunda

parte del ciclo de reloj y por lo tanto finalizar su etapa de decodificación. Esto es aplica-ble al resto de los casos.

I4 se para por LDE con 2.

I5 se para por LDE con 4.

I8 se para por LDE con 6.

I9 se para por LDE con 8.

I11 es la primera instrucción del siguiente ciclo que se ejecuta

CPI%Ciclos totales

Instrucciones totales

%24

9

% 2,66

PROBLEMA 2

Sea el procesador y el fragmento de programa del problema anterior. Determinar el CPI

suponiendo que se dispone de lógica de cortocircuito.

Solución: 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

1 LD F2, 0(R1) F D E M W

2 MULTD F4, F2, F0 F DP   D E1 E2 E3 E4 E5 M W

3 LD F6, 0(R2) F D E M W

4 ADDD F6, F4, F6 F DP   DP   DP   D E1 E2 E3 E4 M W

5 SD 0(R2), F6 F DP   DP   D E M W

6 ADDI R1, R1, 8 FP   FP   F D E M W

7 ADDI R2, R2, 8 F D E M W

8 SGTI R3, R1, DONE F D E M W

9 BEQZ R3, LOOP F DP   D E M W

10 NOP F D E M

11 LD F2, 0(R1) F

I2 para en decodificación por una dependencia de LDE con I1.

I4 para en decodificación por una dependencia de LDE con I2.

I5 para en decodificación por una dependencia LDE con I4. El cortocircuito se produce

398   Problemas de fundamentos y estructura de computadores

Page 415: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 415/569

de la etapa de ejecución de I4 a la etapa de memoria de I5. Esto es posible porque se

permite que coexistan un STORE y una instrucción aritmético-lógica en las etapas M y

W. Para poder ganar este ciclo además el HW que implementa el STORE tiene que

permitir calcular la dirección efectiva de memoria (ciclo 13) sin tener todavía el dato

que se quiere enviar a memoria (ciclo 14).I9 para un ciclo debido a la dependencia LDE con I8. Esta parada aparece porque I de

bifurcación hace el cálculo de la dirección de salto y de la condición en la etapa de

decodificación. Si este cálculo se realizara en la etapa de ejecución esta parada no apa-

recería.

I11 es la primera instrucción que se ejecuta del siguiente bucle, por lo tanto un bucle

tarda 17 ciclos en ejecutarse. El total de instrucciones ejecutadas en bucle es 9 (recordar

que NOP no cuenta como instrucción). Con estos datos podemos decir que el ciclo por

instrucción de este programa es:

CPI%Ciclos totales

Instrucciones totales%

17#900

9# 900%1,88

En los casos en los que el bucle se repita muchas veces podemos despreciar los ci-

clos de llenado porque su valor es insignificante. También se puede despreciar si se

supone que el programa lleva ejecutándose un rato, puesto que el efecto del llenado del

pipeline ya se ha diluido.

PROBLEMA 3

El siguiente fragmento de código:

LOOP: LD F2, 0(R1)

MULTD F4, F2, F0

LD F6, 0(R2)

ADDD F6, F4, F6

LD F8, 0(R3)

ADDD F6, F8, F6

SD 0(R2), F6

ADDI R1, R1, 8

ADDI R2, R2, 8

ADDI R3, R3,

8SGTI R4, R1, DONE

BEQZ R4, LOOP

NOP

Se ejecuta en un procesador con segmentación con las siguientes características:

Un dato se puede escribir en un registro y leer su valor en el mismo ciclo.

Se dispone de lógica de cortocircuito a través de los registros de segmentación.

Capítulo 11  Procesadores segmentados   399

Page 416: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 416/569

Los saltos se resuelven en la etapa de decodificación (el PC se modifica en esta etapa).

La detección y parada se hace en decodificación para todos los casos (riesgos LDE y

riesgos estructurales).

Dos instrucciones no pueden coexistir en la misma etapa.Los riesgos de control se solucionan mediante la técnica de compilación del salto

retardado.

Las unidades funcionales tienen las siguientes características:

a)   Construye el diagrama de etapa-ciclo correspondiente a la primera iteración del bucle.b)   Determinar el CPI teniendo en cuenta que DONE%0# 1000 y R1%0# 0100 al

inicio de la ejecución.

Solución: 

a)   (Ver tabla de la página siguiente.)

Las instrucciones que paran en la etapa F (representado en el diagrama como FP) lo

hacen porque la instrucción anterior se encuentra parada en D (representado por DP) y

por lo tanto no pueden avanzar.

I2 para debido a la LDE con 1. En este caso el cortocircuito se realiza desde la etapa de

memoria de I1 a la etapa de ejecución de I2, pasando por el registro del pipeline corres-pondiente.

I4 para por LDE con 2 (produciéndose el cortocircuito desde la etapa de ejecución a la

etapa de ejecución) y por LDE con 3 (produciéndose en este caso el cortocircuito de la

etapa de memoria a la etapa de ejecución).

I5 para en D para evitar un riesgo estructural con I4 en el ciclo 10 (en caso de no parar

ambas instrucciones coincidirían en la etapa de memoria).

I6 para en D por LDE con 5.

I7 para en D por LDE con 6. En este caso se ha supuesto que I de STORE no empieza a

calcular la dirección efectiva hasta que tiene tanto el valor del registro entero que usa

para calcular la dirección efectiva, como el valor que quiere llevar a memoria.I8 tiene dos paradas en la etapa de decodificación. La primera para evitar un riesgo

estructural con I6 y la siguiente para evitar un riesgo estructural con I7, ambas en la

etapa de memoria.

I12 para debido a un riesgo LDE con 11. En este caso hay que recordar que el cálculo

de la dirección de salto y de la condición se realiza en la etapa de decodificación, por

eso se tiene que parar hasta que se tiene el valor de R4 necesario para el cálculo de la

condición.

I14 es la primera que se ejecuta del siguiente bucle.

400   Problemas de fundamentos y estructura de computadores

UF Cantidad Latencia Segmentación

FP ADD 2 No

FP MUL 1 3 No

INT ALU 1 1 No

Page 417: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 417/569

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1    0

    1    1

    1    2

    1    3

    1    4

    1    5

    1    6

    1    7

    1    8

    1    9

    2    0

    2    1

    2    2

    2    3

    2    4

    1

     L     D     F    2 ,    0     (     R    1     )

     F

     D

     E

     M

     W

    2

     M     U     L     T     D     F    4 ,     F    2 ,

     F    0

     F

     D       P

     D

     E    1

     E    2

     E    3

     M

     W

    3

     L     D     F    6 ,    0     (     R    2     )

     F       P

     F

     D

     E

     M

     W

    4

     A     D     D     D     F    6 ,     F    4 ,     F

    6

     F

     D       P

     D

     E    1

     E    2

     M

     W

    5

     L     D     F    8 ,    0     (     R    3     )

     F       P

     F

     D       P

     D

     E

     M

     W

    6

     A     D     D     D     F    6 ,     F    8 ,     F

    6

     F       P

     F

     D       P

     D

     E    1

     E    2

     M

     W

    7

     S     D    0     (     R    2     ) ,     F    6

     F       P

     F

     D       P

     D

     E

     M

     W

    8

     A     D     D     I     R    1 ,     R    1 ,    8

     F

     D       P

     D       P

     D

     E

     M

     W

    9

     A     D     D     I     R    2 ,     R    2 ,    8

     F       P

     F       P

     F

     D

     E

     M

     W

    1    0

     A     D     D     I     R    3 ,     R    3 ,    8

     F

     D

     E

     M

     W

    1    1

     S     G     T     I     R    4 ,     R    1 ,     D

     O     N     E

     F

     D

     E

     M

     W

    1    2

     B     E     Q     Z     R    4 ,     L     O     O

     P

     F

     D       P

     D

     E

     M

     W

    1    3

     N     O     P

     F       P

     F

     D

     E

     M

     W

    1    4

     L     D     F    2 ,    0     (     R    1     )

     F

     D

     E

     M

     W

Capítulo 11  Procesadores segmentados   401

Page 418: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 418/569

b)   Número de instrucciones en un bucle: 12 (recordar que NOP no se considera instruc-

ción).

Número de ciclos: 19.

Como el bucle se ejecuta 900 veces suponemos que los ciclos de llenado se puedendespreciar:

CPI%Ciclos totales

Instrucciones totales%

19

12%1,583

PROBLEMA 4

Sea un procesador segmentado multiciclo con las siguientes características:

Un dato se puede escribir y leer de un registro en el mismo ciclo de reloj.

Los saltos se resuelven en la etapa de decodificación.

Las detecciones de riesgos de datos y generación de paradas se realizan en la etapa

de decodificación.

La detección de riesgos EDE se realiza en la etapa de decodificación. Se soluciona

con una parada hasta que la instrucción ya lanzada entre a la etapa de memoria.

Lógica de cortocircuito.

Los riesgos de control se solucionan mediante compilación usando la técnica del sal-

to retardado de 1 instrucción.

No pueden coincidir dos instrucciones en las mismas etapas. Se resuelve con detec-

ción y parada de la segunda instrucción en la etapa de decodificación.

Unidad de ejecución multiciclo con los siguientes ciclos de ejecución:

Y el siguiente fragmento de código:

LOOP: LD F6, 0(R2)

MULD F8,F6,F0

ADDI R2,R2,1

LD F2, 0(R2)

DIVD F8,F2,F8

SD 0(R2), F8

MULD F8,F2,F0

402   Problemas de fundamentos y estructura de computadores

UF Cantidad Latencia Segmentación

FP ADD 1 2 No

FP DIV 1 5 No

FP MUL 1 4 No

INT ALU 1 1 No

Page 419: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 419/569

ADD F8,F4,F6

ADDI R3,R3,,8

SGTI R4,R3,DONE

BNEZ R4,LOOP

NOP

a)   CPI del pipeline, suponiendo que el bucle se ejecuta muchas veces.

b)   El hardware de la máquina puede inhibir la escritura en el registro destino de una ins-

trucción ya lanzada. Explica cómo usar esta característica para reducir las penalizacio-

nes debidas a los riesgos EDE. Calcula el nuevo valor de CPI.

Solución: 

a)   (Ver tabla de la página siguiente.)

Las instrucciones con parada en F (FP) lo están porque la instrucción anterior está para-da en D (DP).

I2 para por LDE con 1. El cortocircuito se realiza desde la etapa de memoria del

LOAD a la etapa de ejecución de MULD.

I5 para por LDE con 4 y con 2.

I6 para por LDE con 5. En este caso hemos supuesto que I de STORE no empieza a

calcular la dirección efectiva hasta que tiene tanto el valor del registro entero que usa

para calcular la dirección efectiva, como el valor que quiere llevar a memoria.

I8 para por EDE con 7. Esta dependencia puede aparecer por modificaciones que hace

el compilador en el programa.

I11 para por LDE con 10. Esta parada aparece porque I de bifurcación calcula la direc-

ción de salto y la condición en la etapa de decodificación y necesita el valor de R4 para

calcular la condición. Esta parada se podría eliminar mediante cortocircuito combina-

cional es decir que I10 mandara el valor de R4 a I11 directamente, es decir sin pasar

por el registro de pipeline correspondiente.

I13 corresponde a la primera instrucción ejecutada del siguiente ciclo.

Total de instrucciones ejecutadas: 11 (recordar que NOP no se cuenta como instrucción).

Total de ciclos: 22.

Despreciando los ciclos de llenado el CPI es

CPI%Ciclos totales

Instrucciones totales%

22

11% 2

b)   (Ver tabla de la página 405).

Las instrucciones paradas en F (FP) lo están porque la instrucción anterior está parada

en D (DP) y eso para todo el pipeline.

I2 para por LDE con 1.

I5 para por LDE con 4 y 2.

Capítulo 11  Procesadores segmentados   403

Page 420: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 420/569

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1    0

    1    1

    1    2

    1    3

    1    4

    1    5

    1    6

    1    7

    1    8

    1    9

    2    0

    2    1

    2    2

    2    3    2

    4

    2    5

    2    6

    1

     L     D     F    6 ,    0     (     R    2     )

     F

     D

     E

     M

     W

    2

     M     U     L     D     F    8 ,     F    6 ,     F    0

     F

     D       P

     D

     E    1

     E    2

     E    3

     E    4

     M

     W

    3

     A     D     D     I     R    2 ,     R    3    2 ,          1

     F       P

     F

     D

     E

     M

     W

    4

     L     D     F    2 ,    0     (     R    2     )

     F

     D

     E

     M

     W

    5

     D     I     V     D     F    8 ,     F    2 ,     F    8

     F

     D       P

     D

     E    1

     E    2

     E    3

     E    4

     E    5

     M

     W

    6

     S     D    0     (     R    2     ) ,     F    8

     F       P

     F

     D       P

     D       P

     D       P

     D       P

     D

     E

     M

     W

    7

     M     U     L     D     F    8 ,     F    2 ,     F    0

     F       P

     F       P

     F       P

     F       P

     F

     D

     E    1

     E    2

     E    3

     E    4

     M

     W

    8

     A     D     D     D     F    8 ,     F    4 ,     F    6

     F

     D       P

     D       P

     D

     E    1

     E    2

     M

     W

    9

     A     D     D     I     R    3 ,     R    3 ,          8

     F       P

     F       P

     F

     D       P

     D

     E

     M

     W

    1    0

     S     G     T     I     R    4 ,     R    3 ,     D     O     N     E

     F

     D

     E

     M

     W

    1    1

     B     N     E     Z     R    4 ,     L     O     O     P

     F

     D       P

     D

     E

     M

     W

    1    2

     N     O     P

     F       P

     F

     D

     E

     M

     W

    1    3

     L     D     F    6 ,    0     (     R    2     )

     F

     D

     E

     M

404   Problemas de fundamentos y estructura de computadores

Page 421: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 421/569

    1

    2

    3

    4

    5

    6

    7    8

    9

    1    0

    1    1

    1    2

    1    3

    1    4

    1    5    1    6

    1    7

    1    8

    1    9

    2    0

    2    1

    2    2

    2    3    2    4

    2    5

    2    6

    2    7

    1

     L     D     F    6 ,    0     (     R    2     )

     F

     D

     E

     M

     W

    2

     M     U     L     D     F    8 ,     F    6 ,     F    0

     F

     D       P

     D

     E    1

     E    2

     E    3     E    4

     M

     W

    3

     A     D     D     I     R    2 ,     R    3    2 ,          1

     F       P

     F

     D

     E

     M

     W

    4

     L     D     F    2 ,    0     (     R    2     )

     F

     D

     E     M

     W

    5

     D     I     V     D     F    8 ,     F    2 ,     F    8

     F

     D       P

     D

     E    1

     E    2

     E    3

     E    4

     E    5

     M

     W

    6

     S     D    0     (     R    2     ) ,     F    8

     F       P

     F

     D       P

     D       P

     D       P

     D       P

     D

     E

     M

     W

    7

     M     U     L     D     F    8 ,     F    2 ,     F    0

     F       P

     F       P

     F       P

     F       P

     F

     D

     E    1     E    2

     E    3

     E    4

     M

     N     W

    8

     A     D     D     D     F    8 ,     F    4 ,     F    6

     F

     D

     E    1

     E    2

     M

     W

    9

     A     D     D     I     R    3 ,     R    3 ,          8

     F

     D       P

     D       P

     D

     E

     M

     W

    1    0

     S     G     T     I     R    4 ,     R    3 ,     D     O     N     E

     F       P

     F       P

     F

     D

     E

     M

     W

    1    1

     B     N     E     Z     R    4 ,     L     O     O     P

     F

     D       P

     D

     E

     M

     W

    1    2

     N     O     P

     F       P

     F

     D

     E

     M

     W

    1    3

     L     D     F    6 ,    0     (     R    2     )

     F

Capítulo 11  Procesadores segmentados   405

Page 422: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 422/569

I6 para por LDE con 5.

I7 inhibe su escritura para evitar riesgos EDE. Como consecuencia I8 tienes menos

ciclos de parada.

I9 tiene dos paradas, la primera para evitar que accedan la 8 y la 9 en el mismo ciclo dereloj a la etapa m, el segunda para evitar que 7 y 9 accedan en el mismo ciclo de ck a la

etapa M.

I11 para por LDE con 10. Recordar que los saltos se resuelven en decodificación.

Total de instrucciones: 11, Total de ciclos: 21.

CPI%Ciclos totales

Instrucciones totales%

21

11%1,9

PROBLEMA 5

Supongamos un procesador segmentado en cinco etapas que posee anticipación de operan-

dos y utiliza saltos retardados con un «delay-slot» de un ciclo, pero que posee una sola

memoria cache para el almacenamiento de instrucciones y datos. Por esta razón no resulta

posible leer una instrucción y realizar la lectura o escritura de un dato en el mismo ciclo de

reloj. Suponemos que el HW que detecta el riesgo estructural en la memoria está en la

etapa de búsqueda (F). Las escrituras en el banco de registros se hacen en la primera mitad

de la fase W, mientras que las lecturas se hacen en la segunda mitad de la fase W. Supon-

gamos que este procesador ejecuta el siguiente programa:

bucle: LW R2,X(R6)

LW R3,Y(R6)

SUB R2,R2,R3

ADD R2,R2,R1

SUB R6,R6,4

SW Z(R6),R2

BNEZ R6,bucle

ADD R1,R1,1

SUB R3,R3,R7

Siendo el valor inicial de R6 2000.

a)   Construye el diagrama fase-ciclo correspondiente a la primera iteración del bucle indi-

cando los cortocircuitos que se activan.

b)   Calcula el valor del CPI.

c)   Si el computador trabaja con una frecuencia de 1 GHz, determina el rendimiento en

MIPS.

406   Problemas de fundamentos y estructura de computadores

Page 423: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 423/569

Solución: 

a)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 LW R2,X(R6) F D E M W

2 LW R3,Y(R6) F D E M W

3 SUB R2,R2,R3 F DP   D E M W

4 ADD R2,R2,R1 FP   FP   F D E M W

5 SUB R6,R6,4 F D E M W

6 SW Z(R6),R2 F D E M W

7 BNEZ R6, BUCLE F D E M W

8 ADD R1,R1,1 F D E M W

9 LW R2,X(R6) FP   F D E M WB

 NOTA: no siempre que coincide una etapa de memoria con una de búsqueda se produce

una parada. Sólo cuando la etapa de memoria pertenece a una instrucción que hace uso de

la memoria, es decir LOAD y STOREs. Estas etapas de memoria están marcadas en gris.

I3 para por LDE con I2. En este caso el cortocircuito se produce desde la etapa de

memoria de I2 a la etapa de ejecución de I3.

I4 tiene que parar dos ciclos en la etapa de búsqueda por riesgo estructural, primero con

I4 y luego con I5.

I9, que es la primera que se ejecuta del siguiente ciclo, tiene que parar por riesgo es-tructural con I6.

b)   Total de ciclos 11.

Total de instrucciones: 8.

CPI%Ciclos totales

Instrucciones totales%

11

8%1,375

c)   R6 es el registro que controla el bucle. Inicialmente tiene cargado el valor 2000 y se

decrementa de 4 en 4, luego el bucle se ejecuta 2000/ 4% 500 veces.

Instrucciones totales%8 por bucle#500 bucles%4.000

Ciclos totales% 11 por bucle#500 bucles%5.500

Tiempo total%Ciclos totales#Tiempo ciclo%Ciclos totales

Frecuencia%

%5.500 ciclos

109 Hz% 5,5 . 10.6 s

MIPS%Instrucciones ejecutadas . 10.6

Tiempo total%

4.000 . 10.6

5,5 . 10.6   %727,3 MIPS

Capítulo 11  Procesadores segmentados   407

Page 424: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 424/569

PROBLEMA 6

Sea un procesador segmentado con las siguientes características:

Un dato se lee y se escribe en el banco de registros en el mismo ciclo de reloj.

La etapa de ejecución es multiciclo y consta de 1 sumador/ restador de coma flotantesegmentado en 2 etapas, 1 multiplicador de coma flotante segmentado en 5 etapas y

1 unidad de enteros.

Las dependencias de LDE se detectan en la primera etapa de cada unidad funcional y

se resuelven mediante cortocircuito cuando los operandos están disponibles.

Los riesgos estructurales se detectan y se resuelven mediante espera en la última eta-

pa de cada unidad funcional.

Los riesgos de EDE entre dos instrucciones A y B tal que A precede a B se resuelven

mediante inhibición de escritura de la instrucción A.

Sabiendo que se ejecuta el siguiente código:

LD F10,0(R1)

MULD F4,F0,F10

LD F12,0(R2)

ADD F2,F12,F4

LD F4 8(R1)

MULD F12, F4, F12

LD F14,16(R1)

a)   Construye el diagrama fase-ciclo de reloj. Explica detalladamente en cada caso la cau-

sa de cualquier posible riesgo y cualquier posible parada.

b)   ¿Que ventaja tiene la detección y parada en la primera etapa de ejecución frente a la

detección y parada en decodificación?

Solución: 

a)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 LD F10,0(R1) F D E M W

2 MULD F4,F0,F10 F D X1P   X1 X2 X3 X4 X5 M NW

3 LD F12,0(R2) F D E M W

4 ADD F2,F12,F4 F D A1P  A1P  A1P  A1P   A1 A2 M W

5 LD F4 8(R1) F D E M W

6 MULD F12,F4,F12 F D X1P   X1 X2 X3 X4 X5 M W

7 LD F14,16(R1) F D EP   E M W

408   Problemas de fundamentos y estructura de computadores

Page 425: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 425/569

I2 tiene un riesgo LDE con la 1, por lo tanto se produce una parada en la primera etapa de

ejecución de la multiplicación. Además se inhibe la escritura para eliminar el riesgo EDE

con I5.

I4 tiene 4 paradas para evitar el riesgo LDE con I2.

I6 tiene una parada para evitar el riesgo LDE con I5.

I7 parada para evitar el riesgo estructural con I2 (ambas intentan acceder a memoria en

el ciclo 10). Esta parada puede eliminarse si se especifica que una instrucción de me-

moria y otra aritmético-lógica pueden estar simultáneamente en memoria puesto que

sólo una de ellas accede a memoria.

b)   Al producirse las paradas en la primera etapa de ejecución, el procesador no para puesto

que puede seguir leyendo, decodificando y mandando instrucciones a otras unidades fun-

cionales no ocupadas. Sólo cuando se envía una instrucción a la unidad funcional parada

se para todo el procesador. Vamos a hallar la tabla para este segundo caso para comparar

CPI:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

1 LD F10,0(R1) F D E M W

2 MULD F4,F0,F10 F DP   D E1 E2 E3 E4 E5 M W

3 LD F12,0(R2) FP   F D E M W

4 ADD F2,F12,F4 F DP   DP   DP   D E1 E2 M W

5 LD F4 8(R1) FP   FP   FP   F DP   D E M W

6 MULD F12,F4,F12 FP   F DP   D E1 E2 E3 E4 E5 M W

7 LD F14,16(R1) F D E M W

Las instrucciones que paran en F (FP) lo hacen porque la instrucción anterior está para-

da en D (DP), es decir una parada en D produce la parada del procesador, lo que quiere

decir que se dejan de buscar instrucciones.

I2 para debido a una dependencia de LDE con I1. Podemos observar que en este caso

no hace falta inhibir la escritura de esta instrucción puesto que ha desaparecido el ries-

go EDE con I5.

I4 para debido a un riesgo de LDE con I2.

I5 tiene una parada en decodificador para evitar un riesgo estructural con I4, puestoque las dos intentan acceder a la etapa de memoria en el ciclo 12.

I6 para en decodificación (DP) para evitar un riesgo de LDE con I5.

N.o de instrucciones ejecutadas en ambos casos: 7.

N.o de ciclos del primer caso desde que se lanza la primera instrucción hasta que aca-

ba de ejecutarse: 15.

CPI%Ciclos totales

Instrucciones totales%

15

7%2,14

Capítulo 11  Procesadores segmentados   409

Page 426: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 426/569

N.o de ciclos del segundo caso desde que se lanza la primera instrucción hasta que

acaba de ejecutarse: 20

CPI%Ciclos totales

Instrucciones totales%

20

7%2,857

Por otro lado, la opción inicial es más compleja de implementar puesto que tiene que

existir una lógica de detección y parada para cada una de las primeras etapas de las uni-

dades de ejecución.

PROBLEMA 7

El siguiente fragmento de código se ejecuta en un procesador segmentado:

LOOP: LD F2, 0(R1)

MULTD F4, F2, F0

LD F6, 0(R2)

ADDD F6, F4, F6

LD F8, 0(R3)

ADDD F6, F8, F6

SD 0(R2), F6

ADDI R1, R1, 8

ADDI R2, R2, 8

ADDI R3, R3, 8

SGTI R4, R1, DONE

BEQZ R4, LOOP

NOP

Suponiendo que:

Un dato se puede escribir en un registro y leer su valor en el mismo ciclo.

Sólo se dispone de lógica de cortocircuito a través de registros de segmentación de la

etapa de memoria a la etapa de ejecución.

Los saltos se resuelven en la etapa de decodificación.

Se está empleando salto retardado para eliminar las paradas por riesgo de control.

Las unidades funcionales tienen las siguientes características:

Determinar el CPI teniendo en cuenta que DONE% 0# 1000 y R1%0# 0100 al ini-

cio de la ejecución y explica cuál es el efecto de este tipo de cortocircuito.

Solución: 

410   Problemas de fundamentos y estructura de computadores

UF Cantidad N.

o

ciclos SegmentaciónFP ADD 1 4 No

FP MUL 1 5 No

INT ALU 1 1 No

Page 427: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 427/569

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1    0

    1    1

    1    2

    1    3

    1    4

    1    5

    1    6

    1    7    1

    8

    1    9

    2    0

    2    1

    2    2

    2    3

    2    4

    2    5

    2    6

    2    7    2    8    2    9    3    0

    1

     L     D     F    2 ,    0     (     R    1     )

     F

     D

     E

     M

     W

    2

     M     U     L     T     D     F    4 ,     F    2 ,     F    0

     F

     D       P

     D

     E    1     E    2     E    3     E    4     E    5

     M

     W

    3

     L     D     F    6 ,    0     (     R    2     )

     F       P

     F

     D

     E

     M

     W

    4

     A     D     D     D     F    6 ,     F    4 ,     F    6

     F

     D       P

     D       P

     D       P

     D       P

     D

     E    1     E    2     E    3     E    4

     M

     W

    5

     L     D     F    8 ,    0     (     R    3     )

     F       P

     F       P

     F       P

     F       P

     F

     D

     E

     M

     W

    6

     A     D     D     D     F    6 ,     F    8 ,     F    6

     F

     D       P

     D       P

     D       P

     D

     E    1     E    2     E

    3     E    4

     M

     W

    7

     S     D    0     (     R    2     ) ,     F    6

     F       P

     F       P

     F       P

     F

     D       P

     D       P     D

       P

     D       P

     D

     E

     M

     W

    8

     A     D     D     I     R    1 ,     R    1 ,    8

     F       P

     F       P     F

       P

     F       P

     F

     D

     E

     M

     W

    9

     A     D     D     I     R    2 ,     R    2 ,    8

     F

     D

     E

     M

     W

    1    0

     A     D     D     I     R    3 ,     R    3 ,    8

     F

     D

     E

     M

     W

    1    1

     S     G     T     I     R    4 ,     R    1 ,     D     O     N     E

     F

     D

     E

     M

     W

    1    2

     B     E     Q     Z     R    4 ,     L     O     O     P

     F

     D       P

     D       P

     D

     E

     M

     W

    1    3

     N     O     P

     F

     D

     E

     M

    1    4

     L     D     F    2 ,    0     (     R    1     )

     F

Capítulo 11  Procesadores segmentados   411

Page 428: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 428/569

Las instrucciones que paran en la etapa de búsqueda (FP) lo hacen porque la instrucción

anterior está parada en la etapa de decodificación (DP).

I2 para debido a la dependencia de LDE con I1.

Fijarse que entre I3 y I4 no aparece un riesgo de EDE aunque los dos escriben sobre elmismo registro. Esto se debe a que I3 es más corta que I4 y por lo tanto el riesgo desa-

parece, pero aun en el caso que I3 fuera más larga que la 4 no habría riesgo puesto que

entre 3 y 4 hay una dependencia de LDE y esto deshace los riesgos de EDE.

I4 tiene paradas por la dependencia de LDE con I2. Recuerda que el único cortocircuito

que existe es de la etapa de memoria a la etapa de ejecución. Esta es la razón por la que

la parada dura un ciclo más.

I6 para por dependencia de LDE con I4.

I7 para debido a su dependencia LDE con I6. En este caso se supone que STORE espera

a tener todos los valores que necesita para empezar a ejecutarse.

I12 tiene dos paradas, puesto que necesita el valor del registro R4 para calcular la condi-

ción de salto, y este valor sólo se le puede pasar desde la etapa de memoria de la ins-

trucción anterior.

La última instrucción, en gris, corresponde a la ejecución del siguiente bucle.

CPI%Ciclos totales

Instrucciones totales%

27

12% 2,25

En general, se puede decir que para todas las dependencias LDE aparece una parada más

puesto que el dato se envía un ciclo más tarde. En el caso del LOAD el número de paradas se

mantiene puesto que el dato se sigue enviando desde la etapa de memoria.

PROBLEMA 8

Imagina el procesador del problema anterior pero con cortocircuito sólo desde la etapa de

ejecución a la etapa de ejecución.

Determinar el CPI teniendo en cuenta que DONE%0# 1000 y R1%0# 0100 al ini-

cio de la ejecución.

Explica cuál es el efecto de este tipo de cortocircuito.

Solución: 

Si sólo hay cortocircuito de ejecución a ejecución, las instrucciones de LOAD no pueden en-

tregar un dato a la etapa de ejecución desde la etapa de memoria. Por lo tanto, la instrucción

dependiente tiene que esperar en decodificación hasta que LOAD llega a la etapa de escritura

(ver tabla de página siguiente).

I2 para en decodificación hasta que la I1 ha escrito en el banco de registros y puede leer

el dato. Esta lectura se realiza en el mismo ciclo de reloj que la escritura.

I4 para hasta el ciclo 10 porque además de la dependencia con el LOAD tiene depen-

dencia con I2.

412   Problemas de fundamentos y estructura de computadores

Page 429: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 429/569

    1

    2

    3

    4

    5

    6

    7    8

    9

    1    0

    1    1

    1    2

    1    3

    1    4

    1    5    1    6

    1    7

    1    8

    1    9

    2    0

    2    1

    2    2

    2    3    2    4

    2    5

    2    6

    2    7

    1

     L     D     F    2 ,    0     (     R    1     )

     F

     D

     E

     M

     W

    2

     M     U     L     T     D     F    4 ,     F    2 ,     F    0

     F

     D       P

     D       P

     D

     E    1

     E    2     E    3

     E    4

     E    5

     M

     W

    3

     L     D     F    6 ,    0     (     R    2     )

     F

     D

     E

     M

     W

    4

     A     D     D     D     F    6 ,     F    4 ,     F    6

     F

     D       P

     D

       P

     D       P

     D

     E    1

     E    2

     E    3

     E    4

     M

     W

    5

     L     D     F    8 ,    0     (     R    3     )

     F

     D

     E

     M

     W

    6

     A     D     D     D     F    6 ,     F    8 ,     F    6

     F

     D       P

     D       P

     D

     E    1     E    2

     E    3

     E    4

     M

     W

    7

     S     D    0     (     R    2     ) ,     F    6

     F

     D       P

     D       P

     D       P

     D

     E

     M

     W

    8

     A     D     D     I     R    1 ,     R    1 ,    8

     F

     D

     E

     M

     W

    9

     A     D     D     I     R    2 ,     R    2 ,    8

     F

     D

     E

     M

     W

    1    0

     A     D     D     I     R    3 ,     R    3 ,    8

     F

     D

     E

     M

     W

    1    1

     S     G     T     I     R    4 ,     R    1 ,     D     O     N     E

     F

     D

     E

     M

     W

    1    2

     B     E     Q     Z     R    4 ,     L     O     O     P

     F

     D       P

     D       P

     D

     E

     M

    1    3

     N     O     P

     F       P

     F       P

     F

     D

     E

    1    4

     L     D     F    2 ,    0     (     R    1     )

     F

Capítulo 11  Procesadores segmentados   413

Page 430: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 430/569

I6 para por las dos dependencias con las instrucciones 5 y 4 que se resuelven en el mis-

mo ciclo de reloj.

I7 para por la dependencia con I6. Suponemos la instrucciones de STORE no inician el

cálculo de su dirección efectiva hasta que tiene todos los datos para ejecutarse.

I12 para porque tiene una dependencia de LDE con la 11

CPI%Ciclos totales

Instrucciones totales%

25

12% 2,08

PROBLEMA 9

Supongamos un procesador en el que los accesos a la memoria cache de datos y cache de

instrucciones se han segmentado en dos etapas. La detección y paradas por riesgo LDE y

EDE se realizan en decodificación. La resolución del salto se realiza en decodificación. El

procesador utiliza la técnica de compilación del salto retardado para evitar las paradas porriesgos de control. Sabiendo que la multiplicación en coma flotante se ejecuta en 7 ciclos y

la suma en coma flotante en tres, si el procesador ejecuta el siguiente programa:

LOAD F2,0(R1)

LOOP: MULD F4, F2, F0

ADDD F6, F4,F2

SUBI R1,R1,8

BNZ LOOP

LOAD F2,0(R1)LOAD F4

Calcular el diagrama fase-ciclo para la ejecución del último bucle.

Solución: 

El LOAD después de la BNZ es la instrucción que el compilador utiliza para rellenar el delay

slot del salto condicional. Por otro lado, si queremos ver cómo se ejecuta el último bucle no es

suficiente ver cómo se comportan las instrucciones desde la MULT, puesto que esta instruc-

ción tiene una dependencia LDE con la instrucción LOAD F2,0(R1) que se acaba de ejecutar.

Teniendo esto en cuenta el diagrama que queda es el que se muestra en la tabla de la páginasiguiente.

Es importante darse cuenta de dos cosas. El comportamiento del pipeline es idéntico a los

ya vistos. Las paradas se producen en la etapa de decodificación y esas paradas se transmiten

a todas las etapas anteriores (F2 y F1) parándolas también. Las paradas por LDE serán mayo-

res debido a que el pipeline es más profundo.

I1 (en gris) corresponde a la ejecución del penúltimo bucle, es decir del último salto que

se toma. Es necesaria ponerla porque I2 tiene que parar debido a la dependencia de LDE

con ella.

414   Problemas de fundamentos y estructura de computadores

Page 431: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 431/569

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1    0

    1    1

    1    2

    1    3

    1    4

    1    5

    1    6

    1    7

    1    8

    1    9

    2    0

    2    1

    2    2

    2    3

    1

     L     O     A     D     F    2 ,    0     (     R    1     )

     F    1

     F    2

     D

     E

     M    1     M    2

     W

    2

     M     U     L     D     F    4 ,     F    2 ,     F    0

     F    1

     F    2

     D       P

     D       P

     D

     E    1

     E    2

     E    3

     E    3

     E    4

     E    5

     E    6     E    7

     M    1     M    2

     W

    3

     A     D     D     D     F    6 ,     F    4 ,     F    2

     F    1     F    2       P

     F    2       P

     F    2

     D       P

     D       P

     D       P

     D       P

     D       P

     D       P

     D       P

     D

     E    1

     E    2

     E    3     M    1     M    2

     W

    4

     S     U     B     I     R    1 ,     R    1 ,      

    8

     F    1       P

     F    1       P

     F    1

     F    2       P

     F    2       P

     F    2       P

     F    2       P

     F    2       P

     F    2       P

     F    2       P

     F    2

     D

     E

     M    1     M    2

     W

    5

     B     N     Z     R    1 ,     L     O     O

     P

     F    1       P

     F    1       P

     F    1       P

     F    1       P

     F    1       P

     F    1       P

     F    1       P

     F    1

     F    2

     D       P

     D

     E

     M    1     M    2

     W

    6

     L     O     A     D     F    2 ,    0     (     R    1     )

     F    1     F    2       P

     F    2

     D

     E

     M    1     M    2

     W

    7

     L     O     A     D

     F    4

     F    1

     F    2

     D

     E

     M    1     M    2

     W

Capítulo 11  Procesadores segmentados   415

Page 432: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 432/569

I2 para debido a una dependencia LDE con I1. En este caso el cortocircuito se realiza

desde la etapa M2 a la etapa E, por eso hay dos ciclos de parada.

I3 para en F2 porque I2 está parada en D. Además, para en D por una dependencia de

LDE con 2.

I4 para en F1 porque la 3 está parada en F2, y para en F2 porque I3 está parada en D.

I5 para en F1 porque la 4 está parada en F2 y para en D porque tiene una dependencia

de LDE con 4.

I6 para en F2 porque la 5 está parada en D.

PROBLEMA 10

Sea un procesador segmentado multifuncional en el que hay un 20% de riesgos de LDE, un

5% de riesgos de escritura después de escritura. Sabiendo que los riesgos de LDE tienen

como media 3 ciclos de penalización y que los riesgos de EDE se eliminan inhabilitando laescritura de la primera instrucción, ¿cuál es el CPI de este procesador?

Solución: 

CPI%CPIideal!

tipos de instrucción

;i

frecuenciai#penalizacióni

La inhibición de escritura no produce penalización, por lo tanto la única penalización que

existe es la debida a los riesgos de LDE, luego el ciclo por instrucción será:

CPI%1! 0,20#3%1,6

PROBLEMA 11

Supongamos un procesador segmentado de cinco etapas en el que se ejecutan 2 aplicacio-

nes diferentes. La aplicación A tiene un 10% de instrucciones con una penalización de 1

ciclo de reloj y un 5% de instrucciones con una penalización de 2 ciclos de reloj. La aplica-

ción B tiene un 15% de instrucciones con 1 ciclo de penalización.

a)   ¿Cuál es el ciclo por instrucción de cada una de las aplicaciones?

b)   ¿Cuál es el ciclo por instrucción promedio del procesador?

Solución: 

a)

CPI%CPIideal!

tipos de instrucción

;i

frecuenciai#penalizacióni

CPIA%1! 0,1#1!0,05# 2%1,2

CPIB%1!0,15# 1%1,15

416   Problemas de fundamentos y estructura de computadores

Page 433: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 433/569

b)

CPIMEDIO%1,2!1,15

2% 1,175

PROBLEMA 12

Supongamos el procesador del problema anterior.

a)   ¿Cuál es el SPEEDUP del procesador segmentado frente al procesador sin segmentar?

b)   ¿Cuál es la eficacia del procesador segmentado real frente al procesador segmentado

ideal?

Solución: 

a)   Vamos a suponer que el tiempo de ciclo es el mismo en las dos aproximaciones. Sabien-

do que el SPEEDUP es el tiempo de ejecución en la máquina primitiva partido por el

tiempo de ejecución en la que se han metido las modificaciones, el SPEEDUP del proce-sador segmentado frente al procesador multiciclo es el siguiente:

SPEEDUP%TIEMPOSIN SEGMENTAR

TIEMPOSEGMENTADO

%N.o instrucciones#CPI

N.o instrucciones X #CPI%

5

1,175%4,25

b)   La eficiencia trata de medir lo que se acerca el procesador real al ideal. Es una medida

que se encuentra comprendida entre 0 y 1, cuanto más cerca esté del 1 mayor será la

eficiencia:

Eficiencia%Tiempo cpuideal

Tiempo cpureal

%1

1,175%0,85

PROBLEMA 13

Sea un procesador segmentado en cinco etapas. Ejecutamos en este procesador una aplica-

ción con las siguientes características:

El 15% de las veces, las instrucciones Ii!1   tienen una dependencia de LDE con las

instrucciones Ii. El 50 %de éstas corresponden a instrucciones de LOAD.

El 3% de las veces las instrucciones Ii!2 tienen dependencias de LDE con la instruc-

ción Ii.

El 30% de las instrucciones son de bifurcación condicional, de las cuales se toman el

25%.Calcular los ciclos por instrucción del procesador para las siguientes características de

procesador:

a)   Procesador sin técnicas para reducir o eliminar paradas. Los saltos se resuelven en

ejecución. Se puede escribir y leer el registro en el mismo ciclo de reloj.

b)   Procesador con cortocircuito. Los saltos se resuelven en decodificación.

c)   Los saltos se resuelven en decodificación y se supone un HW de predicción estática

siempre no tomado.

Capítulo 11  Procesadores segmentados   417

Page 434: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 434/569

Solución: 

a)   Vamos a ver las paradas por dependencias que ocurren en cada caso:

Paradas por dependencia entre Ii!1 e Ii

Ii 

  F D E M W

Ii !1

  F DP   DP   D E M W

El número de paradas es 2. En este primer caso los LOAD y el resto de las instruccio-

nes con dependencia tienen el mismo número de paradas puesto que en todos los casos

tenemos que esperar hasta la etapa de escritura para poder leer el nuevo valor.

Paradas por dependencias entre Ii!2  e Ii

Ii 

  F D E M W

Ii !1   F D E M W

Ii !2

  F DP   D E M W

En este segundo caso se produce un ciclo de parada entre Ii  e Ii!2.

Paradas por bifurcación condicional

BC F D E M W

Ii !1

  FP   FP   F D E M W

Dos ciclos de paradaPor lo tanto el CPI de este procesador será:

CPI%CPIideal!

tipos de instrucción

;i

frecuenciai#penalizacióni

CPI% 1!0,15#2! 0,03#1!0,3# 2%1,9 CPI

b)   Procesador con cortocircuito y los saltos se resuelven en decodificación. Como hay cor-

tocircuito, sólo las instrucciones que dependan de un LOAD pararán por LDE.

LOAD F D E M WI

i !1  F DP   D E M W

Como el cálculo de la dirección y de la condición se realiza en decodificación sólo se

produce un ciclo de parada.

BC F D E M W

Ii !1

  FP   F D E M W

418   Problemas de fundamentos y estructura de computadores

Page 435: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 435/569

En este caso sólo producen parada por LDE las instrucciones que dependen del LOAD:

Instrucciones que dependen del LOAD%0,5#0,15% 0,075

CPI%1! 0,075#1!0,3# 1% 1,375

c)   Los saltos se resuelven en decodificación y se supone un HW de predicción estática

siempre no tomado. En este caso sólo hay que evaluar la penalización por los saltos en

los que falla la predicción. Como la predicción es  no tomado, la penalización se produce

cuando los fallos se toman, es decir en el 25% de los saltos. Como el 30% son saltos

entonces:

CPI% 1!0,075#1! 0,3#0,25#1% 1,15

PROBLEMA 14

Sea un procesador segmentado de cinco etapas que tiene el HW para la detección de riesgoy generación de la parada en decodificación. La resolución de los saltos condicionales se

realiza en decodificación. Los riesgos de control se resuelven mediante paradas en decodi-

ficación, y tiene implementada la técnica de cortocircuito. Supongamos que en este proce-

sador las etapas de ejecución y memoria se unen. Como consecuencia el ciclo de reloj

aumenta un 30%. Hallar la relación de velocidades entre la versión original del procesador

y la modificada. Supóngase que en el 15% de los casos existen dependencias LDE entre un

LOAD y la instrucción que le sigue y que el 23% son saltos condicionales.

Solución: 

Primero vamos a ver los efectos de unir las etapas de ejecución y de memoria.

Las dependencias entre dos operaciones aritméticas no producen paradas debido al cor-

tocircuito.

Ii 

  F D EM W

Ii !1

  F D EM W

Las dependencias entre una instrucción LOAD y una aritmético-lógica no producen pa-

radas, puesto que, debido a que se han unido ejecución y memoria, el dato ya no se

entrega un ciclo tarde.

LOAD F D EM WI

i !1  F D EM W

Las instrucciones de salto no se ven afectadas por este cambio, por lo tanto se produce

una parada de 1 ciclo.

BIFURCA F D EM W

Ii !1

  FP   F D EM W

Capítulo 11  Procesadores segmentados   419

Page 436: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 436/569

Vamos a ver cuál sería el CPI medio en los dos casos:

CPI%1! 0,15# 1!0,23# 1% 1,38

CPI%1! 0,23# 1%1,23

Con esta información parece que la segunda implementación es mejor. Pero tenemos que

tener en cuenta que los tiempos de ciclo son diferentes. Si suponemos   Tc–inicial% n   el

Tc–nuevo%1,3n

Tiempo total 1.o% N #CPI#Tc% N #1,38# n%1,38 . N  . n

Tiempo total 2.o% N #CPI#Tc% N #1,23# 1,3n%1,599 . N  . n

Speedup%1,38

1,599% 0,83

PROBLEMA 15Sean dos procesadores segmentados de 5 etapas. Uno de ellos realiza el cálculo de la direc-

ción efectiva y de la condición de salto en la etapa de decodificación, el otro lo hace en la

etapa de ejecución, siendo en este caso la frecuencia de reloj un 15% más rápida. En am-

bos casos vamos a utilizar el salto retardado para resolver los riesgos de control. El compi-

lador que utilizamos genera un 30% de bifurcaciones condicionales. El comportamiento

del compilador es el siguiente:

El 20% de los casos no encuentra instrucciones para colocar detrás del salto retarda-

do y por lo tanto coloca no operaciones.

El 45% de los casos encuentra una instrucción para ocupar el branch delay slot de la

bifurcación condicional.El 35% de los casos encuentra dos instrucciones para ocupar el branch delay slot de

la bifurcación condicional.

Sabiendo que el ciclo por instrucción de ambas implementaciones es el mismo, indica

cuál sería la mejor opción.

Solución: 

En el primer caso, el delay slot es de una instrucción (en gris la etapa en la que se hace el

cálculo de la dirección y de la condición de salto):

BIF F D E M WI

i !1  FP   F D E M W

En el segundo caso, el delay slot es de 2 instrucciones (en gris la etapa en la que se hace el

cálculo de la dirección y de la condición de salto):

BIF F D E M W

Ii !1

  FP   FP   F D E M W

420   Problemas de fundamentos y estructura de computadores

Page 437: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 437/569

Tiempo de CPU cuando la resolución del salto se realiza en decodificación.

Como sólo tiene un delay slot, el 20% de los casos el compilador no encuentra una

instrucción para colocar detrás de la bifurcación y coloca una NOP, que se considera una

penalización de 1 ciclo. Para el resto de los casos encuentra 1 o 2 instrucciones que son

suficientes para llenar el delay slot. Por lo tanto, sólo tiene penalización en el caso de lasNOP. Su ciclo por instrucción es el siguiente:

CPI D%1! 0,3#0,2% 1,06

Suponiendo que ejecuta un programa de   N   instrucciones y que el tiempo de ciclo es

T decodificación el tiempo de ejecución total del programa es:

TCPU decodificación% 1,06# N #T decodificación

Tiempo de CPU cuando la resolución del salto se realiza en ejecución.

En este caso el delay slot es de 2, por lo tanto ocurre lo siguiente: para el 35% de los

saltos el compilador encuentra dos instrucciones, luego estos casos no tienen penalización.El 45% de los casos encuentra sólo una instrucción, luego en estos casos tendrá un 1 ciclo

de penalización, porque el otro slot tendrá que llenarlo con una NOP. El 20% de los casos

no encuentra instrucciones, luego mete dos NOP y esto da lugar a dos ciclos de penaliza-

ción. El CPI en este caso es:

CPI E %1!0,3# (0,45#1! 0,2#2)% 1!0,3#0,85% 1,255

El tiempo de ejecución (TCPU ejecución) de un programa con N  instrucciones es:

TCPU ejecución% 1,255# N #T ejecución

Por otro lado, como la frecuencia del procesador con la resolución de saltos en la etapade ejecución ( f ejecución) es un 15% más rápida que la frecuencia de un procesador con la

resolución de saltos en la etapa de decodificación ( f decodificación) podemos decir lo siguiente:

 f ejecución%1,15# f decodificaciónrT decodificación%1,15#T ejecución

Sustituyendo este valor en TCPU decodificación

TCPU decodificación%1,06# N #T decodificación% 1,06# N #1,15# T ejecución

%1,219# N #T ejecución

PROBLEMA 16Un computador tiene su ciclo de instrucción segmentado en 4 etapas; F: Búsqueda de la

instrucción, D/ E: Decodificación de la instrucción, lectura de registros y ejecución en la

UAL, M: Acceso a memoria (LOAD y STORE), escritura del PC (Saltos) o vacía (resto),

W: Escritura de registros. El computador posee arquitectura con memorias de instruccio-

nes y datos separadas, los riesgos por dependencias de datos los resuelve mediante la técni-

ca del «cortocircuito», y los riesgos por dependencias de control mediante la técnica del

salto retardado. Dada la secuencia de instrucciones siguiente, dibuja un diagrama que indi-

que, para cada ciclo de reloj, qué instrucción y fase de la instrucción se está ejecutando:

Capítulo 11  Procesadores segmentados   421

Page 438: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 438/569

LOOP: LD R1,0(R3)

ADD R2,R4,R1

AND R5,R2,R4

BNEZ R2,loop suponemos que R2ab0

SW 0(R2),R5

ADD R4,R4,8

LD R1,24(R3)

Solución: 

Tal y como indica el enunciado se utiliza el salto retardado para evitar paradas por riesgos de

control. Como el nuevo PC se escribe en la etapa de memoria, hasta el siguiente ciclo no se

puede hacer la búsqueda como se ve en el siguiente diagrama:

BIF condicional F D/E M W

I siguiente FP   FP   F

Por lo tanto el delay slot es de dos instrucciones. Sabiendo esto el diagrama fase-ciclo es:

1 2 3 4 5 6 7 8 9 10 11

1 LD R1,0(R3) F D/E M W

2 ADD R2,R4,R1 F D/EP   D/E M W

3 AND R5,R2,R4 FP   F D/E M W

4 BNEZ R2,SALTO F D/E M W

5 SW 0(R2),R5 F D/E M W

6 ADD R4,R4,Á 8 F D/E M W

7 LD R1,0(R3) F D/E M W

I7 (sombreada) corresponde a la primera instrucción del siguiente bucle.

PROBLEMA 17

Supongamos que en una máquina segmentada en cuatro etapas las paradas vienen provoca-das por los riesgos entre una instrucción I

i, y las dos sucesoras, I

i!1  e Ii!2. Supongamos

que las frecuencias de los riesgos que provocan paradas y el número de ciclos de parada

son los indicados a continuación:

Instr. Ii!1 (y no i! 2) 20% 2 ciclos

Instr. Ii!2   5% 1 ciclo

¿Cuál es el Speedup obtenido como consecuencia de la segmentación?

422   Problemas de fundamentos y estructura de computadores

Page 439: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 439/569

Solución: 

En este caso no nos hace falta conocer en qué etapas se divide el procesador puesto que se da

toda la información que necesitamos para calcular el CPI:

CPI%1! 0,2# 2!0,5#1% 1,9 ; SPEEDUP%4

1,9%2,10

PROBLEMA 18

Un computador tiene el ciclo de instrucción segmentado en 7 etapas: F1, F2: Búsqueda de

la instrucción, D: Lectura de operandos y decodificación, E: Cálculo de la dirección efecti-

va, operación en la ALU y condición de saltos, M1, M2: Acceso a memoria, W: Escritura

del resultado. La frecuencia de reloj es de 200 MHz. La máquina usa cortocircuito para

resolver los riesgos de datos.

a)   ¿Cuánto vale el branch delay slot ?

b)   Si el compilador aplica la técnica de la carga retardada, ¿cuánto vale el  LOAD delay

slot ?

Solución: 

a)   Como la dirección de salto y el cálculo de la condición se realizan en la etapa de ejecu-

ción el branch delay slot es de tres instrucciones

BIF F1 F2 D E M1 M2 W

I siguiente BD BD BD F

b)   La instrucción de LOAD propociona el dato en la segunda etapa de memoria, por lo tanto

la instrucción que espera este dato tiene que esperar dos ciclos de reloj para poder utilizarel dato en ejecución

LOAD F1 F2 D E M1 M2 W

I siguiente F1 F2 DP DP D E

PROBLEMA 19

Si el procesador del problema anterior ejecuta el siguiente fragmento de programa

ADD R1,R2,R3

SUB R4,R1,R5

ADD R6,R1,R7

SUB R8,R1,R9

ADD R10,R1,R11

SUB R12,R1,R13

ADD R14,R1,R15

Indica los cortocircuitos necesarios para resolver todos los riesgos de datos que se pro-

duzcan.

Capítulo 11  Procesadores segmentados   423

Page 440: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 440/569

Solución: 

Se puede observar en el programa que todas las instrucciones tienen dependencias LDE con

I1, pero no se produce ninguna parada porque estamos utilizando cortocircuitos para evitarlo.

1 2 3 4 5 6 7 8 9 10 11 12 13

1 ADD R1,R2,R3 F1 F2 D E M1 M2 W

2 SUB R4,R1,R5 F1 F2 D E M1 M2 W

3 ADD R6,R1,R7 F1 F2 D E M1 M2 W

4 SUB R8,R1,R9 F1 F2 D E M1 M2 W

5 ADD R10,R1,R11 F1 F2 D E M1 M2 W

6 SUB R12,R1,R13 F1 F2 D E M1 M2 W

7 ADD R14,R1,R15 F1 F2 D E M1 M2 W

El destino de todos los cortocircuitos es la etapa de ejecución pero el origen varía en fun-

ción de la etapa en la que se encuentre la instrucción que tiene que proporcionar el dato.

I2 toma el dato del registro E/ M1.

I3 toma el dato del registro M1/ M2.

I4 toma el dato del registro M2/ W.

I5 se aprovecha de que el banco de registros se puede escribir en el primer ciclo de reloj

y leer en el segundo, por lo tanto ya no necesita cortocircuito.

El resto de las instrucciones lo leen del banco de registros durante su etapa de decodifi-

cación.

PROBLEMA 20

Sea un procesador segmentado en las siguientes nueve etapas: F1, F2: Búsqueda de ins-

trucción. D: Lectura de operandos y decodificación, E1, E2, E2: Ejecución, cálculo de di-

rección efectiva y condición de salto, E3: escritura del PC, M1, M2: Acceso a memoria,

WB: escritura en registro (1.er semiciclo). Sabiendo que el procesador también tiene imple-

mentada las técnica del cortocircuito.

a)   Si los riesgos de control se resuelven mediante paradas, ¿cuántas paradas hay que ge-

nerar para evitar el riesgo?

b)   Si para la instrucción de LOAD aplica parada y cortocircuito en decodificación cuan-

do existen instrucciones dependientes de ella, ¿qué casos y qué paradas habría que

meter en cada caso?

Solución: 

a)BIF F1 F2 D E1 E2 E3 M1 M2 W

I siguiente BD BD BD BD BD F1 F2 E1 E2 E3 M1 M2 W

El procesador tiene que generar 5 paradas para evitar los riesgos de control.

424   Problemas de fundamentos y estructura de computadores

Page 441: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 441/569

b)   Vamos a poner en un solo diagrama todos los casos en los que hay una instrucción que

depende del resultado del LOAD

LOAD F1 F2 D E1 E2 E3 M1 M2 W

Ii !1   F1 F2 DP   DP   DP   DP   D E1 E2 E3 M1 M2 W

Ii !2

  F1 F2 DP

  DP

  DP

  D E1 E2 E3 M1 M2 W

Ii !3

  F1 F2 DP

  DP

  D E1 E2 E3 M1 M2 W

Ii !4

  F1 F2 DP

  D E1 E2 E3 M1 M2 W

Ii !5

  F1 F2 D E1 E2 E3 M1 M2 W

11.5 Problemas propuestos

PROBLEMA 1El siguiente fragmento de código se ejecuta en un procesador segmentado:

LOOP: LD F2, 0(R1)

LD F10,0(R5)

MULTD F4, F2, F0

MULTD F8,F0,F10

LD F6, 0(R2)

ADDD F6, F4, F6

ADDD F8, F4,F8

SD 0(R2), F6

SD 0(R6),F8

ADDI R1, R1, 8

ADDI R2, R2, 8

ADDI R5,R5,8

ADDI R6,R6,8

SGTI R3, R1, DONE

BEQZ R3, LOOP

NOP

Sabiendo que:

Un dato se puede escribir en un registro y leer su valor en el mismo ciclo.

La detección de riesgos LDE y parada se realiza en la etapa de decodificación.

La detección de riesgos estructurales y parada se realiza en la etapa de decodificación.

Los saltos se resuelven en la etapa de decodificación.

Capítulo 11  Procesadores segmentados   425

Page 442: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 442/569

Se emplea la técnica de compilación salto retardado de una instrucción para reducir las

paradas por riesgo de control.

Se permite que coexista una STORE y una instrucción aritmético-lógica en la misma

etapa.

Las unidades funcionales tienen las siguientes características:

Determinar el CPI teniendo en cuenta que done%0# 1000 y R1%0# 0100 al inicio de

la ejecución y se supone que no se dispone de lógica de cortocircuito.

PROBLEMA 2

El siguiente fragmento de código se ejecuta en un procesador segmentado:

LOOP: LD F2, 0(R1)

LD F10,0(R5)

MULTD F4, F2, F0

MULTD F8,F0,F10

LD F6, 0(R2)

ADDD F6, F4, F6

ADDD F8, F4,F8

SD 0(R2), F6

SD 0(R6),F8

ADDI R1, R1, 8

ADDI R2, R2, 8

ADDI R5,R5,8

ADDI R6,R6,8

SGTI R3, R1, DONE

BEQZ R3, LOOP

NOP

Suponiendo que:

Un dato se puede escribir en un registro y leer su valor en el mismo ciclo.

La detección de riesgos LDE y parada se realiza en la etapa de decodificación.

La detección de riesgos estructurales y parada se realiza en la etapa de decodificación.

426   Problemas de fundamentos y estructura de computadores

UF Cantidad Latencia Segmentada

FP ADD 1 2 No

FP MUL 1 3 No

INT ALU 1 1 No

Page 443: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 443/569

Los saltos se resuelven en la etapa de decodificación.

Se emplea la técnica de compilación salto retardado de una instrucción para reducir las

paradas por riesgo de control.

Se permite que coexista una STORE y una instrucción aritmético-lógica en la mismaetapa.

Las unidades funcionales tienen las siguientes características:

a)   Determinar el CPI teniendo en cuenta que done% 0#1000 y r1% 0#0100 al inicio de

la ejecución y se supone que se dispone de lógica de cortocircuito.

b)   Determinar el CPI teniendo en cuenta que done% 0# 1000 y r1%0#0100 al inicio de

la ejecución y se supone que no se dispone de lógica de cortocircuito.

PROBLEMA 3

Considerar los procesadores de los dos problemas anteriores. Se sabe que el procesador con

las unidades sin segmentar trabaja a una frecuencia de 500 Mhz y el procesador con las unida-

des segmentadas trabaja a una frecuencia de 400 MhZ. Calcular:

a)   Tiempo de ejecución del segmento de programa en cada procesador.

b)   MIPS de cada procesador.

c)   Speedup del procesador con unidades segmentadas frente a unidades sin segmentar.

PROBLEMA 4

El siguiente fragmento de código se ejecuta en un procesador segmentado:

LOOP: LD F2, 0(R1)

LD F10,0(R5)

MULTD F4, F2, F0

MULTD F8,F0,F10LD F6, 0(R2)

ADDD F6, F4, F6

ADDD F8, F4,F8

SD 0(R2), F6

SD 0(R6),F8

ADDI R1, R1, 8

ADDI R2, R2, 8

Capítulo 11  Procesadores segmentados   427

UF Cantidad Latencia Segmentada

FP ADD 2 Sí

FP MUL 1 3 Sí

INT ALU 1 1 No

Page 444: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 444/569

ADDI R5,R5,8

ADDI R6,R6,8

SGTI R3, R1, DONE

BEQZ R3, LOOPLOAD F4,67(R5)

Suponiendo que:

Un dato se puede escribir en un registro y leer su valor en el mismo ciclo.

La detección de riesgos LDE y parada se realiza en la etapa de decodificación.

La detección de riesgos estructurales y parada se realiza en la etapa de decodificación.

Los saltos se resuelven en la etapa de ejecución.

Se emplea la predicción estática HW salto no tomado sabiendo que la predicción acierta

el 45% de las veces.

No se permite que coexista una STORE y una instrucción aritmético-lógica en la misma

etapa.

Las unidades funcionales tienen las siguientes características:

a)   Determinar el CPI teniendo en cuenta que done%

0#

1000 y r1%

0#

0100 al inicio dela ejecución y se supone que se dispone de lógica de cortocircuito.

b)   Determinar el CPI teniendo en cuenta que done% 0# 1000 y r1%0#0100 al inicio de

la ejecución y se supone que no se dispone de lógica de cortocircuito.

PROBLEMA 5

Suponiendo las características de los procesadores del problema anterior:

a)   Sabiendo que la frecuencia es la misma para los dos procesadores, calcular el speedup del

procesador con cortocircuito, frente al que no usa cortocircuito.

b)   Calcular el CPI para los dos casos suponiendo que soluciona los riesgos de control me-

diante predicción estática de HW siempre tomado, sabiendo que acierta el 88% de lasveces.

PROBLEMA 6

Supongamos que la versión básica de un procesador segmentado en cinco etapas para opera-

ciones enteras se modifica de la siguiente forma:

– Las etapas DEC y EX se funden en una sola.

– Como consecuencia la duración del ciclo de reloj debe incrementarse en un 45%.

428   Problemas de fundamentos y estructura de computadores

UF Cantidad Latencia Segmentada

FP ADD 1 2 No

FP MUL 1 3 No

INT ALU 1 1 No

Page 445: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 445/569

Hallar la relación de velocidades entre la versión original del procesador y la modificada.

Supóngase que el 13% de las instrucciones son de carga seguidas de un uso inmediato del

operando cargado, y que el 35% son saltos condicionales donde la política de tratamiento de

saltos no permite realizar trabajo útil en el «delay slot».

PROBLEMA 7

Consideremos la organización básica de un procesador segmentado en 5 etapas con una carga

de trabajo tal que:

En el 23% de los casos la instrucción  i! 1 presenta una dependencia LDE respecto de

la  i. En el 18% de estas situaciones la instrucción  i  es de LOAD.

En el 11% de los casos la instrucción  i!2, pero no la  i!1, presenta una dependencia

LDE respecto de la  i. En el 9% de los casos la instrucción  i  es de LOAD.

En el 2% de los casos la instrucción  i! 3, pero no la   i!2, ni la  i!1, presentan una

dependencia LDE respecto de la  i.

El 25% de las instrucciones son de salto y el 40% de los saltos se toman.

a)   Determinar en promedio el número de ciclos de reloj que se precisan para ejecutar cada

instrucción, en cada uno de los siguientes supuestos.

b)   Si además se añade el HW necesario para resolver los saltos en la etapa de decodifica-

ción y se asume la predicción de que los saltos no se toman.

c)   Si con la estructura HW del apartado anterior, se implementa una política de saltos retar-

dados, donde en el 60% de los casos el hueco de retardo (delay slot) se rellena con una

instrucción. De éstas no se deberían haber ejecutado el 35%. En el resto de casos lo relle-

na con NOP.

PROBLEMA 8

Supongamos un procesador en el que los accesos a la memoria cache de datos y cache de

instrucciones se han segmentado en tres etapas. Las lecturas de datos y de instrucciones se

pueden realizar en la etapa 2 de memoria, mientras que la escritura se realiza en la etapa 3. La

detección y paradas por riesgo LDE y EDE se realizan en decodificación. La resolución del

salto se realiza en ejecución. El procesador utiliza la técnica de salto retardado para evitar, en

la medida de lo posible, las paradas por riesgos de control. Sabiendo que la multiplicación en

coma flotante se ejecuta en cuatro ciclos y la suma en coma flotante en dos, si el procesador

ejecuta el siguiente programa:

LOAD F2,0(R1)

LOOP: MULD F4, F2, F0

ADDD F6, F4,F2

SUBI R1,R1,8

BNZ LOOP

LOAD F2,0(R1)

LOAD F4

Calcular el diagrama fase-ciclo para la ejecución del último bucle.

Capítulo 11  Procesadores segmentados   429

Page 446: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 446/569

Page 447: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 447/569

El sistema de memoria es el lugar donde residen los programas y datos ya que según la arqui-

tectura Von Neumann un programa debe estar almacenado en memoria para poder ser ejecu-

tado. El sistema de memoria se organiza de manera jerárquica de forma que se tenga un siste-

ma de alta capacidad y velocidad próxima a la de los dispositivos más rápidos y un coste

cercano al de los dispositivos más lentos y baratos, tal y como muestra la figura siguiente:

Jerarquía de memoria. Relación coste, capacidad y tiempo de acceso.

El hecho de encontrar (acierto) o no encontrar (fallo) un elemento en un determinado ni-

vel de la jerarquía determinará la bondad y el rendimiento del sistema completo.

Para aumentar el rendimiento de la memoria principal se debe aumentar el ancho de banda

de la misma. Los mecanismos generales para aumentar el ancho de banda de memoria se

muestran en la siguiente figura:

Page 448: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 448/569

Aumento del rendimiento de memoria.

Estos mecanismos son: (a) reducción de su tiempo de acceso, (b) aumento del tamaño de

palabra y (c) permitir el acceso concurrente a varios módulos de memoria mediante una orga-

nización entrelazada.

12.1 Propiedades de la jerarquía de memoriaInclusión:  Cualquier información almacenada en el nivel de memoria M i, debe encontrarse

también en los niveles Mi!1, Mi!2, ..., Mn.

Coherencia: Las copias de la misma información existentes en los distintos niveles deben ser

consistentes, es decir, si un bloque de información se modifica en el nivel Mi, deben actuali-

zarse los niveles Mi!1, ..., Mn. Esto se consigue mediante dos métodos:

Escritura directa (write-through):   Cuando una palabra se modifica en el nivel M i,

inmediatamente se actualiza en el nivel Mi!1.

Post-escritura (write-back):  La actualización del nivel Mi!1   se retrasa hasta que el

bloque que se modificó es reemplazado o eliminado en el nivel Mi.

Localidad:   La propiedad de localidad dice que las referencias a memoria generadas por la

CPU, para acceso a datos o a instrucciones, están concentradas o agrupadas en ciertas regio-

nes del tiempo y del espacio.

Localidad temporal: Si se referencia un elemento, éste tenderá a ser referenciado en un

corto intervalo de tiempo.

Localidad espacial: Si se referencia un elemento, los elementos cercanos a él tenderán

a ser referenciados también.

Se denomina  bloque a la unidad mínima de transferencia entre los dos niveles.

432   Problemas de fundamentos y estructura de computadores

Page 449: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 449/569

Se produce un acierto (hit) si el dato solicitado está en el nivel i. Se conoce como  tasa de

aciertos (hit ratio) a la fracción de accesos encontrados en el nivel  i. El tiempo de acierto  es

el tiempo de acceso del nivel  i ! el tiempo de detección de acierto.

De la misma forma se produce un fallo (miss) cuando el dato solicitado no está en el nivel

i y es necesario buscarlo en el nivel  i ! 1. La tasa de fallos (miss ratio)  es 1. tasa de acier-tos. El  tiempo de penalización por fallo  es el tiempo de sustitución de un bloque del nivel

i ! tiempo de acceso al dato.

Se cumple que, en un sistema de memoria formado por dos niveles,  Memoria Cache (MC)

y Memoria Principal (MP), el tiempo medio de acceso viene dado por la siguiente expresión:

t acc % h # t c ! (1. h) # (t c ! t  p)

Donde h  es la tasa de aciertos en la MC,  t c es el tiempo de acceso a MC y  t  p es el tiempo

de acceso a MP.

En una jerarquía con varios niveles, el tiempo de acceso viene dado por la siguiente fór-

mula:

t acc %

n

;i%1

(1. h( Li.1)) # t i

Donde h( Li.1) es la razón de aciertos en el nivel   i. 1 y   t i  es el tiempo de acceso en el

nivel i.

Cuando se produce un fallo, no sólo se transfiere la palabra necesaria, sino que se transfie-

re todo un bloque. Esto se realiza en favor de los principios de localidad espacial y temporal.

12.2 La memoria cache

La memoria cache es una memoria pequeña y rápida situada entre el procesador y la memoria

principal. Almacena una copia de la porción de información actualmente en uso de la memo-

ria. Su objetivo es disminuir el tiempo de acceso al sistema global de memoria.

La figura siguiente muestra la estructura del sistema MC/ MP, así como el formato de la

 Dirección Física (DF):

Estructura del sistema MC-MP.

Capítulo 12   Memoria   433

Page 450: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 450/569

Así, la MP está formada por 2n palabras direccionables, dividida en nB  bloques de tamañofijo de 2k  palabras por bloque.

La MC, en cambio, está formada por   nM   marcos de bloque de 2k  palabras cada uno(nM @ nB). El directorio de memoria cache indica qué subconjunto de los nB  bloques residen

en los nM  marcos de bloque.

En el diseño de la MC se debe tener en cuenta la optimización de los siguientes paráme-tros: probabilidad de acierto, tiempo de acceso efectivo, retardos debidos a fallos y manteni-miento de la correspondencia entre bloques de MP y MC. Para ello se deben definir adecuada-mente y tener en cuenta las políticas y parámetros siguientes:

Política de emplazamiento:   determina la correspondencia entre bloques de MP y MC. Di-chas políticas son:

Emplazamiento directo:  Cada bloque   B   tiene asignado un único marco   M  en dondeubicarse. Este marco viene dado por la expresión:  M % B mod nM . Si  nM % 2m enton-ces   M % (m bits menos significativos de B). En este caso el directorio almacena para

cada marco una etiqueta con los  n-k-m bits que completan la dirección del bloque alma-cenado. El acceso al marco y al directorio es directo. Para conocer si un bloque estácargado en MC, basta con comparar las etiquetas.

Emplazamiento asociativo: Cada bloque B  puede ubicarse en cualquier marco  M  (tam-bién se denomina vía). El directorio guarda para cada marco una etiqueta con los  n-k 

bits que identifican al bloque almacenado. El acceso al marco y al directorio es asociati-vo. Para conocer si un bloque está cargado, la MC compara la etiqueta dada con todaslas etiquetas del directorio.

Emplazamiento asociativo por conjuntos: La MC está dividida en   nC   conjuntos denM / nC  marcos cada uno. Cada bloque  B   tiene asignado un conjunto fijo C  y puede ubi-carse en cualquiera de los marcos que componen dicho conjunto. Este conjunto viene

dado por la expresión: C % B mod nC . Si  nC % 2m entonces C % (m bits menos signifi-cativos de B). El directorio almacena para cada marco una etiqueta con los  n-k-m  bitsque completan la dirección del bloque almacenado. El acceso al conjunto es directo y almarco dentro del conjunto asociativo.

Formatos de dirección física con respecto a las distintas políticas de emplazamiento en memoria cache.

Política de sustitución: Determina qué bloque abandona MC para dejar espacio a otro de MP

cuando no existe espacio libre para este bloque en MC. Así, se define espacio de reemplaza-

434   Problemas de fundamentos y estructura de computadores

Page 451: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 451/569

miento  al conjunto de posibles bloques que pueden ser sustituidos por el nuevo bloque. Laspolíticas más usadas son:

Directa: El bloque que reside en marco que el nuevo bloque tiene asignado. Al no exis-tir alternativas no se requieren algoritmos de sustitución.

Asociativa: Se sustituye cualquier bloque que resida en la MC.

Asociativa por conjuntos: Se sustituye cualquier bloque que resida en el conjunto queel nuevo bloque tiene asignado.

Mediante algoritmo:  Los algoritmos más usados son (1) aleatorio, donde se escoge unbloque del espacio de reemplazamiento al azar, (2) FIFO, en que se sustituye el bloquedel espacio de reemplazamiento que lleve más tiempo cargado, (3) LRU (least recentlyused), donde se sustituye el bloque del espacio de reemplazamiento que lleve más tiem-po sin haber sido referenciado, y (4) LFU (least frequently used), en que se sustituye elbloque que haya sido referenciado en menos ocasiones.

Política de actualización:  Es necesaria para mantener la coherencia entre la MC y la MP.Determina cuándo se actualiza un bloque de la MP si éste ha sido previamente modificado enla MC. Existen dos alternativas:

Escritura inmediata (write-through): Cada vez que se hace una escritura en la MC seactualiza inmediatamente la MP. Existen dos variantes en función de lo que sucede encaso de fallo de escritura: (a)  con asignación en escritura, es decir, un bloque se cargaen MC como consecuencia de fallos de lectura y escritura, y (b)  sin asignación en es-critura, donde un bloque se carga en MC solamente como consecuencia de fallos de

lectura, lo fallos de escritura no cargan bloque y acceden directamente a MP.

Post-escritura (write-back):  La MP se actualiza sólo cuando se reemplaza el bloque.En MC se cargan bloques tanto por fallos de lectura como de escritura. Por lo tanto, se

utiliza un bit de actualización por bloque que indica si debe actualizarse en MP, de for-ma que cuando se realiza una escritura se activa y cuando se realiza una sustitución secomprueba si está activado o no.

Política de búsqueda: Determina qué bloques (y en qué momento) deben cargarse en MC.

Búsqueda por demanda:  Un bloque se trae a MC cuando se necesita, es decir, comoconsecuencia de un fallo.

Búsqueda anticipativa: Un bloque se trae a MC antes de que se necesite para reducir latasa de fallos. Lo más común es elegir el bloque siguiente al referenciado (one block lookahead). Existen dos variantes, a saber, (1) pre-búsqueda por fallo, donde si se pro-

duce un fallo al acceder a un bloque se buscan dicho bloque y el siguiente, y (2) pre-búsqueda siempre, en la que la primera vez que se referencia un bloque se pre-busca elsiguiente.

Organización de la cache:  En cuanto al tamaño de la MC y sus bloques, aumentar el tamañodel bloque hace que aumente la tasa de aciertos, por la localidad espacial y que disminuya elnúmero de bloques en MC por la localidad temporal. Mientras, disminuir el tamaño del blo-que hace que disminuya la cantidad de tráfico de información entre MC y MP. Respecto a launicidad y homogeneidad de la MC, las instrucciones presentan localidad temporal y los datosespacial; tener dos caches separadas una para datos y otra para instrucciones permite el accesosimultáneo a instrucciones y datos (aumenta la velocidad) y definir las políticas más adecua-das para cada una de ellas. Finalmente, en cuanto a caches de uno o dos niveles, existe una

Capítulo 12   Memoria   435

Page 452: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 452/569

mejora de las prestaciones con una MC de dos niveles. Normalmente el primer nivel de MCse encuentra integrado en el procesador lo que elimina el acceso al bus y disminuyen los tiem-pos de ejecución.

12.3 Memoria virtual

El objetivo es dar la impresión de que el computador dispone de una memoria ilimitada. Paraello combina dos dispositivos de almacenamiento de diferente capacidad, velocidad y coste.La  Memoria Virtual (MV)  separa los conceptos de direcciones lógicas o virtuales (capacidadde direccionamiento) y direcciones físicas (la memoria instalada). La siguiente figura muestraun esquema de traducción de MV a MP. El procesador trabaja con la memoria principal, perosus direcciones pertenecen a la memoria virtual.

Traducción de direcciones virtuales.

Por lo tanto, la traducción es necesaria debido a que los programas generan direcciones

lógicas (virtuales) pero para la ejecución se necesitan direcciones físicas.

Traducción de direcciones: Existen tres alternativas.

Memoria virtual paginada

El espacio virtual de direcciones se divide en páginas de tamaño fijo. El espacio físico de

direcciones se divide en marcos de página del mismo tamaño que una página. El esquema detraducción de direcciones se muestra en la figura de la página siguiente.

En este caso existen varios mecanismos de traducción:

Traducción directa:  Existe una  Tabla de Páginas (TP)  por cada proceso con una en-

trada por cada página que nos dice si la página está en MP y en qué marco está ubicada.

Cada proceso tiene un registro base que señala a su TP.

Traducción asociativa:  El objetivo es reducir el tamaño de la TP. Sólo es necesario

mantener una entrada en la TP para aquellas páginas que están en MP, es decir, la TP

tiene una entrada por cada marco de página en MP.

436   Problemas de fundamentos y estructura de computadores

Page 453: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 453/569

Memoria virtual paginada. Traducción de direcciones.

Traducción mixta: Se pretende reducir el tamaño de la tabla asociativa para reducir su

coste. Para ello se mantiene una pequeña tabla asociativa con las páginas más activas,

llamada TLB  (Translation Lookaside Buffer). Por otro lado se debe guardar la TP com-pleta para traducir una dirección cuya entrada no se encuentre en la TLB.

Traducción a varios niveles:  El objetivo en este caso es resolver el problema del alma-

cenamiento de la TP. Para ello se divide la TP en varias páginas. Algunas páginas de la

TP pueden residir en MP (no necesariamente contiguas), mientras que el resto de pági-

nas pueden residir en  Memoria Secundaria (MS). Con esto se utiliza una tabla de direc-

torios que almacena las direcciones de comienzo de las páginas de la TP. Esta tabla se

almacena en MP. Por lo tanto, la dirección virtual se divide en tres campos:  DV % (N.o

de Directorio, N.o de Página, Desplazamiento). Este mecanismo se puede combinar con

el uso de una TLB con las páginas más activas.

Memoria virtual segmentada

El espacio virtual de direcciones se divide en segmentos de tamaño variable. La siguiente

figura muestra un esquema del mecanismo de traducciones

Memoria virtual segmentada. Traducción de direcciones.

Capítulo 12   Memoria   437

Page 454: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 454/569

El mecanismo de traducción es el de   traducción directa, donde cada proceso almacena

una Tabla de Segmentos (TS)  que contiene una entrada por cada posible segmento del proce-

so. La entrada S-ésima de la TS contiene la dirección inicial de MP donde comienza el seg-

mento S (si está en MP). Cada proceso guarda en un registro la dirección inicial de la TS.

Memoria virtual segmentada/paginada

El espacio virtual de direcciones se divide en segmentos de tamaño variable. Cada segmento

está compuesto por un número variable de páginas de igual tamaño. El espacio físico de direc-

ciones se divide en marcos de página del mismo tamaño que una página.

Memoria virtual segmentada/paginada. Traducción de direcciones.

Los mecanismos de traducción son:

Traducción directa:   Cada entrada de la TS almacena la dirección de comienzo de la

tabla de páginas (TP) de ese segmento. La TP del segmento S contiene una entrada por

cada página P de ese segmento. Cada proceso mantiene una tabla de segmentos (TS).

Traducción mixta:   Se mantiene una pequeña tabla asociativa (TLB) con las páginas

más activas. Por otro lado debemos guardar la TS (en MP) y las TPs de los distintos

segmentos (en MP o MS) para traducir las direcciones cuya entrada no se encuentre en

la TLB.

12.4 Problemas resueltos

PROBLEMA 1

Determinar el tiempo medio de acceso a un sistema de memoria formado por una memoria

cache (MC), con un tiempo de acceso de 10 ns, y una memoria principal (MP) con un

tiempo de acceso de 60 ns. La probabilidad de acierto de la memoria cache es del 70%.

438   Problemas de fundamentos y estructura de computadores

Page 455: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 455/569

Solución: 

En un sistema de memoria formado por dos niveles (MC y MP), el tiempo medio de acceso

viene dado por la expresión:

t acc % h # t c ! (1. h) # (t c ! t  p)

Donde h  es la tasa de aciertos en la MC,  t c es el tiempo de acceso a MC y  t  p es el tiempo

de acceso a MP.

En nuestro caso,  h % 0,7, t c % 10 ns y  t  p%60 ns, por lo tanto:

t acc % 0,7 # 10 ! (1. 0,7) # (10 ! 60) % 28 ns

PROBLEMA 2

Un sistema jerárquico de memoria está formado por los siguientes niveles:

t acc 

  Tamaño Coste   h 

Memoria cache (MC) 5 ns 512 KB 50 e /MB 0,95

Memoria principal (MP) 50 ns 128 MB 0,4 e /MB 0,99999995

Disco magnético 10 ms 20 GB 0,01 e /MB 1,00

a)   Calcular el tiempo medio de acceso para dicho sistema.

b)   Calcular el coste medio, en  e/ MB, del mismo.

c)   Comentar los resultados obtenidos.

Solución: 

a)   En una jerarquía con varios niveles, el tiempo de acceso viene dado por la siguiente fór-

mula:

t acc %

n

;i%1

(1. h( Li.1)) # t i

Donde h( Li.1) es la razón de aciertos en el nivel  i. 1 y t i  es el tiempo de acceso en

el nivel  i.

En este caso tenemos tres niveles, con sus respectivos tiempos de acceso y razón de

aciertos. Teniendo en cuenta que  h( L0) % 0, ya que el nivel cero no existe, podemos sus-

tituir los datos en la ecuación anterior, obteniendo:

t acc % 1 # 5 # 10.9! 0,05 # 50 # 10.9

! 0,00000005 # 10 # 10.8% 8 ns

b)   El coste medio vendrá dado por el coste total de la memoria (en euros) dividido por el

tamaño total de ésta (en MB):

Coste medio %Coste total

Tamaño

Capítulo 12   Memoria   439

Page 456: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 456/569

Coste medio%0,5#50!128#0,4!20#1.024#0,01

0,5!128!20#1.024%

281  e

20.608,5 MB%0,0136  e/ MB

c)   Empleando una jerarquía de memoria obtenemos un sistema con una capacidad total del

orden del tamaño del disco magnético, con un tiempo medio de acceso próximo al de lamemoria más rápida (memoria cache) y con un coste medio por MB próximo al de la

memoria más barata (disco magnético).

PROBLEMA 3

Sea una memoria principal de 1 Mpalabras de tamaño con unos tiempos de acceso de 100

ns y dividida en bloques de 2 palabras. Sabiendo que el sistema tiene una memoria cache

asociativa por conjuntos de 28 palabras, un grado de asociatividad de 4 y un tiempo de

acceso de 10 ns, calcular:

a)  Número de bits de la dirección física.

b)   Número de conjuntos de la memoria cache.

c)   Formato de las direcciones de memoria cache.

d)   Mejora del rendimiento del sistema si la tasa de fallos es del 25%.

Solución: 

a)   Si la memoria tiene un tamaño de 1 Mpalabras necesitaremos acceder a 220 posiciones y

por tanto el ancho de direcciones físicas es de 20 bits.

b)   Como el grado de asociatividad es 4, disponemos de 4 bloques por conjunto.

Dado que la MC disponde de 28 marcos de bloque, el número de conjuntos será:

nC %28 palabras

22  marcos

conjunto# 2

palabras

marco

% 25 conjuntos % 32 conjuntos

c)   Para acceder a 32 conjuntos necesitamos 5 bits, para diferenciar entre 2 palabras/ bloque

un único bit, por lo tanto la etiqueta será de 20. 5. 1 % 14 bits y el formato quedará:

d)   El rendimiento sin memoria cache será de 100 ns para cada acceso. Si incorporamos la

memoria cache será:

t acc % 0,75 # 10 ns ! (1. 0,75) # (10 ns ! 100 ns) % 35 ns

Que representa un 35% del tiempo original.

440   Problemas de fundamentos y estructura de computadores

Page 457: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 457/569

PROBLEMA 4

La memoria cache de una máquina tiene un tiempo de acceso de 5 ns, siendo el tiempo de

acceso de la memoria principal de 50 ns. Se supone que el 30% de las peticiones de acceso

son para escritura y el resto para lectura. Si la razón de aciertos de la memoria cache es de0,80 y se emplea una política de actualización inmediata (write-through), calcular:

a)   El tiempo medio de acceso teniendo en cuenta sólo los ciclos de lectura.

b)   El tiempo medio de acceso si se tienen en cuenta también los ciclos de escritura.

Solución: 

a)   Sabemos que el tiempo medio de acceso (en este caso lectura) viene dado por:

t lec % h # t c(1. h) # (t c ! t  p)

Donde  h  es la tasa de aciertos en la MC,   t c

 es el tiempo de acceso a MC y   t  p

 es el

tiempo de acceso a MP. Por lo tanto, según los datos del enunciado, tenemos

t lec % 0,8 # 5 ! (1. 0,8) # (5 ! 50) % 15 ns

b)   Es fácil deducir que el tiempo medio de lectura/ escritura será:

t lec/ esc % Prob. lectura # t lec ! Prob. escritura # t esc

De los datos del enunciado tenemos:

Probabilidad de acceso de lectura: 0,70.

Probabilidad de acceso de escritura: 0,30.

t lec % 15 ns, del apartado a).

t esc % 50 ns, dado que se escribe a la vez en memoria principal y en memoria cache

(política de escritura inmediata).

Por lo tanto:

t lec/ esc % 0,70 # 15 ! 0,30 # 50 % 25,50 ns

PROBLEMA 5

Los parámetros que definen la memoria de un computador son los siguientes:

Memoria principal (MP): 8 Kbloques.Memoria cache (MC): 512 bloques.

Bloque: 8 bytes.

Determinar el formato de las direcciones físicas en los siguientes supuestos:

a)   Emplazamiento directo.

b)   Emplazamiento asociativo.

c)   Emplazamiento asociativo por conjuntos, con 16 bloques por conjunto.

Capítulo 12   Memoria   441

Page 458: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 458/569

Solución: 

En primer lugar, calculamos los parámetros del sistema de memoria, suponemos que la uni-

dad direccionable es el byte.

Memoria principal: Dirección: 8 Kbloques # 8 bytes/ bloque % 64 KB % 26

# 210 bytes % 216 bytes.

Número de bloques en la MP: nB % 8 Kbloques % 213 bloques.

Tamaño de bloque: 8 bytes % 23 bytes.

Con lo que el formato de direcciones es:

Memoria cache: 

Tamaño: 521 bloques # 8 bytes/ bloque % 4 KB % 212 bytes.

Número de marcos de bloque en la MC: nM % 512 marcos de bloque % 29 marcos de bloque.

Con estos parámetros podemos resolver los distintos apartados del problema.

a)   Un bloque B de la memoria principal se carga siempre sobre el marco de bloque M % B

mod nM de la memoria cache. Una dirección de  n % 16 bits de la MP se interpreta de la

siguiente manera:

Campo palabra (P): como un marco de bloque contiene 23 bytes, este campo es de 3 bits.

Campo marco de bloque (M): al disponer de 29 marcos en MC, este campo es de 9 bits.

Etiqueta: Será el número de bits restante de la dirección de MP, esto es 16.3.9%4 bits.

b)   Un bloque B de MP puede cargarse en cualquier marco de bloque M de MC. Los 16 bits

de dirección se reparten en 3 bits para el byte dentro del bloque y el resto (13 bits) se

reservan para la etiqueta, por lo tanto el formato queda:

c)   En este caso se dispone en MC de 16 bloques por conjunto. Como la memoria cache

dispone de un total de 512 bloques, el número de conjuntos en MC es:

nC %512 bloques

16bloques

conjunto

% 32 conjuntos % 25 conjuntos

442   Problemas de fundamentos y estructura de computadores

Page 459: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 459/569

Se reservan entonces 3 bits para la palabra, 5 bits para el conjunto y el resto

(16. 5. 3 % 8) para la etiqueta.

PROBLEMA 6

Un computador posee una memoria principal (MP) de 256 MB y una memoria cache (MC)

de 128 KB. Los datos se transfieren entre MP y MC en bloques de 8 B. Determinar el

tamaño de los diferentes campos que conforman una dirección física en cada uno de los

siguientes supuestos:

a)   Emplazamiento directo.

b)   Emplazamiento asociativo.

c)   Emplazamiento asociativo por conjuntos de dos vías.

Solución: 

En primer lugar, calculamos los parámetros del sistema de memoria, suponemos que la uni-

dad direccionable es el byte.

Memoria principal: 

Dirección: 256 MB % 28# 220 bytes % 228 bytes. Tenemos por tanto 28 bits de dirección.

Tamaño de bloque: 8 bytes % 23 bytes.

Número de bloques en la MP: nB%

256 MB / 8 B/ bloque%

32 Mbloques%

2

25

bloques.Con lo que el formato de direcciones es:

Memoria cache: 

Tamaño: 128 KB % 217 bytes.

Número de marcos de bloque en la MC: nM % 128 KB / 8 B/ bloque % 16 Kbloques %

% 214

bloques.Con estos parámetros podemos resolver los distintos apartados del problema.

a)   Un bloque B de la memoria principal se carga siempre sobre el marco de bloque M % B

mod nM de la memoria cache. Una dirección de  n % 28 bits de la MP se interpreta de la

siguiente manera:

Campo palabra (P): como un marco de bloque contiene 23 bytes, este campo es de 3 bits.

Campo marco de bloque (M): al disponer de 214 marcos en MC, este campo es de 14 bits.

Etiqueta: Será el número de bits restante de la dirección de MP, esto es 28.14.3%11 bits.

Capítulo 12   Memoria   443

Page 460: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 460/569

b)   Un bloque B de MP puede cargarse en cualquier marco de bloque M de MC. Los 28 bits

de dirección se reparten en 3 bits para el byte dentro del bloque y el resto (25 bits) se

reservan para la etiqueta, por lo tanto el formato queda:

c)   En este caso se dispone en MC de 2 bloques por conjunto (2 vías). Como la memoria

cache dispone de un total de 214 bloques, el número de conjuntos en MC es:

nC %214 bloques

2bloques

conjunto

% 213 conjuntos

Se reservan entonces 3 bits para la palabra, 13 bits para el conjunto y el resto

(28. 13. 3 % 12) para la etiqueta.

PROBLEMA 7

Una memoria cache con emplazamiento asociativo por conjuntos dispone de un total de 64

bloques divididos en conjuntos de 4 bloques cada uno. La memoria principal dispone de

1.024 bloques con 16 palabras por bloque. ¿Cuántos bits se necesitan para los campos eti-

queta, conjunto y palabra de la dirección de memoria principal?

Solución: 

Memoria principal: 

Tamaño: 1.024 bloques # 16 palabras/ bloque % 16 Kpalabras % 214 palabrasr14 bits.

Tamaño de bloque: 16 palabras % 24r 4 bits.

Número de bloques: nB % 1.024 bloques % 210 bloquesr10 bits.

Memoria cache: 

Número de conjuntos: nC % 64 bloques / 4 bloques/ conjunto % 16 conjuntos % 24 conjun-

tosr 4 bits.

444   Problemas de fundamentos y estructura de computadores

Page 461: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 461/569

El formato de dirección es:

El campo conjunto será de 4 bits, mientras que el campo palabra será también de 4 bits. El

campo etiqueta será por tanto de 14. 4. 4 % 6 bits, tal como muestra la siguiente figura:

PROBLEMA 8

Sea un computador con una MP de 1 MB y dotado con una MC de 16 marcos de bloque de

64 bytes cada uno.

a)   Determinar el formato de la dirección de memoria física desde el punto de vista de la

política de ubicación en memoria cache, especificando el número de bits que ocupa

cada uno de los campos que la componen para los siguientes casos: (1) emplazamiento

directo, (2) asociativo y (3) asociativo por conjuntos con 4 bloques por conjunto.

b)   Si se utiliza una política de sustitución LRU (implementada por registros de edad),

calcular el número total de bits necesarios para implementar la MC en cada uno de los

casos anteriores (incluyendo datos, etiquetas y registros de edad).

Solución: 

a.1) Emplazamiento directo

En el caso de emplazamiento directo puro, cada bloque de memoria principal puede

ubicarse únicamente en un marco de bloque de cache concreto, dado por la expresión B

mod nM.

Por tanto el campo de marco de bloque en cache está formado por los bits que ha-

cen falta para representar todos los bloques de cache. En este caso se indica que hay 16

marcos de bloque, por lo que se requieren 4 bits para representarlos en cache. El resto

de bits de la dirección de memoria, tras descontar los que son utilizados para indicar el

desplazamiento dentro de un bloque para acceder a una palabra (6 bits), son utilizados

para la etiqueta. En el caso que nos ocupa son 20. 4. 6 % 10 bits, y la representa-

ción global de memoria principal para la cache que queda entonces es:

a.2) Emplazamiento asociativo

En el caso de emplazamiento asociativo puro, cualquier bloque de memoria principal

puede ubicarse en cualquier marco de bloque de cache, por tanto la etiqueta de marco

Capítulo 12   Memoria   445

Page 462: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 462/569

de bloque en cache está formada por todo el conjunto de bits que no sean utilizados

para indicar el desplazamiento dentro de un bloque para acceder a una palabra. De este

modo, ya que los bloques son de 64 bytes, se requieren 6 bits para acceder a la palabra

y el resto de bits de la dirección de memoria principal (20. 6 % 14 bits) se utilizan

para la etiqueta. La representación de memoria principal para la cache queda:

a.3) Emplazamiento asociativo por conjuntos con 4 bloques por conjunto

En este caso, hay 4 posibles conjuntos, ya que hay 16 marcos y en cada conjunto hay 4

bloques. Por lo tanto el campo que representa a los conjuntos requiere 2 bits y la repre-

sentación de memoria principal para la cache queda:

b.1) Emplazamiento directo

En el caso del emplazamiento directo no tiene sentido implementar ningún tipo de al-

goritmo de sustitución, ya que la ubicación de un cierto bloque queda fijada según la

fórmula:

M % B mod nM

de este modo, no se utilizan registros de edad ni se puede implementar una política

LRU.

El número total de bits que se utilizan para implementar la MC es:

Por marco: 10 bits para la etiqueta y 64 B para los datos.

Al haber 16 marcos, el total es: 16 # 10 bits ! 16 # 64 B % 20 B ! 1.024 B %

% 1.044 B % 8.352 bits.

b.2) Emplazamiento asociativo

En el caso del emplazamiento asociativo, cualquier bloque nuevo puede reemplazar

cualquier bloque de la cache, por tanto necesitamos implementar un registro de edadque nos permita identificar el más antiguo entre los 16 marcos de bloques de la cache,

es decir, necesitamos 4 bits para su implementación.

Por tanto, el número total de bits que se utilizan para implementar la MC es:

Por marco: 14 bits para la etiqueta, 4 bits para el registro de edad y 64 B para los

datos.

Al haber 16 marcos, el total es: 16#(14!4) bits!16#64 B %36 B !1.024 B%

% 1.060 B % 8.480 bits.

446   Problemas de fundamentos y estructura de computadores

Page 463: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 463/569

b.3) Emplazamiento asociativo por conjuntos con 4 bloques por conjunto

En el caso del emplazamiento asociativo por conjunto, cada bloque nuevo puede reem-

plazar uno de los 4 bloques de su conjunto asignado según la fórmula:

M % B mod nM/ nC

de este modo, necesitamos implementar un registro de edad de 2 bits, que nos permi-

ta identificar el más antiguo entre los 4 marcos del conjunto asignado a cada bloque

de MP.

Por tanto, el número total de bits que se utilizan para implementar la MC es:

Por marco: 12 bits para la etiqueta, 2 bits para el registro de edad y 64 B para los

datos.

Al haber 16 marcos, el total es: 16#(12!2) bits!16#64 B %8 B!1.024 B %

%1.052 B

%8.416 bits.

PROBLEMA 9

Diseñar un sistema paginado de memoria virtual de acuerdo con las siguientes especifica-

ciones:

Tamaño del espacio virtual direccionable: 64 K.

Tamaño del espacio de direcciones físicas: 8 K.

Tamaño de la página: 512 palabras.

Traducción directa.

Solución: 

Número de páginas en memoria virtual:

64 # 1.024

512% 128

Número de marcos de página en memoria física:

8 # 1.024

512 % 16

64 K % 216 direcciones virtuales implican 16 bits para la dirección virtual.

8 K % 213 direcciones físicas implican 13 bits para la dirección física.

Como existen 128 páginas, la tabla de páginas contendrá 128 % 27 registros. Por lo tanto,

los 7 bits más significativos de la dirección virtual se emplearán para seleccionar el registro

correspondiente. Los 16. 7 % 9 bits restantes conforman el desplazamiento dentro de la pá-

gina. La siguiente figura ilustra un diseño básico del mecanismo de traducción de direcciones:

Capítulo 12   Memoria   447

Page 464: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 464/569

Traducción de direcciones.

PROBLEMA 10

Un sistema de memoria virtual segmentada emplea un formato para las direcciones virtua-les de 12 bits: los tres de más peso se corresponden con el segmento y los nueve restantes

al desplazamiento. Considere la siguiente información ubicada en la Tabla de Segmentos:

N.o de segmento Dirección base Longitud

0 0D116

  25816

1 8FC16

  00E16

2 05A16

  06416

3 52F16

  24416

Se pide calcular las direcciones físicas correspondientes a las siguientes direcciones

lógicas:

a)   1FE16

b)   21A16

c)   20B16

d)   59016

e)   79016

Solución: 

a)   1FE16 % 000 1111111102

En primer lugar obtenemos el número de segmento, que se corresponde con los tres

bits más significativos de la dirección virtual:

Número de segmento r0002 % Segmento 0

Podemos calcular el desplazamiento con los bits restantes de la dirección:

Desplazamientor1111111102 % 1FE16a 25816 (permiso de acceso)

448   Problemas de fundamentos y estructura de computadores

Page 465: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 465/569

Se obtiene permiso de acceso con el desplazamiento dado, ya que éste es menor que

la longitud del segmento en este caso. La dirección física asociada será entonces:

Dirección físicar0D116 (dir. base) ! 1FE16 (desplazamiento) % 2CF16

Procedemos de igual forma con el resto de los apartados.

b)   21A16 % 001 0000110102

Número de segmentor 0012 % Segmento 1

Desplazamientor  0000110102 % 01A16b 00E16 (permiso denegado)

Como el desplazamiento es mayor que la longitud del segmento se produce una ex-

cepción en la traducción de direcciones.

c)   20B16 % 001 0000010112

Número de segmento r0012 % Segmento 1

Desplazamientor

0000010112

%

00B16

a

00E16 (permiso de acceso)Dirección físicar 8FC16 (dir. base) ! 00B16 (desplazamiento) % 90716

d)   59016 % 010 1100100002

Número de segmento r 0102 % Segmento 2

Desplazamientor 1100100002 % 19016b 06416 (permiso denegado)

Como el desplazamiento es mayor que la longitud del segmento se produce una ex-

cepción en la traducción de direcciones.

e)   79016 % 011 1100100002

Número de segmentor

0112%

Segmento 3Desplazamientor1100100002 % 19016a 24416 (permiso de acceso)

Dirección físicar 52F16 (dir. base) ! 19016 (desplazamiento) % 6BF16

PROBLEMA 11

Un sistema de memoria virtual segmentada/ paginada tiene una longitud para las direccio-

nes virtuales de 32 bits dividida en los siguientes campos: La longitud del campo de núme-

ro de segmento es de 12 bits, la del número de página es de 8 bits y la longitud del campo

desplazamiento es de 12 bits.

Se pide determinar el valor de la dirección física bajo los siguientes supuestos:

El registro de inicio de la tabla de segmentos contiene el valor 1000016.

La dirección virtual a decodificar es la 01B2A10F16.

El contenido de la dirección 1001B16 en la tabla de segmentos es: 100F216.

El contenido de algunos registros de la tabla de páginas es:

– 1011B16r1516

– 1011C16rFA16

– 1011D16rAF16

Capítulo 12   Memoria   449

Page 466: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 466/569

Solución: 

La dirección virtual definida en el enunciado sigue el siguiente esquema:

El registro base de la tabla de segmentos contiene la dirección de memoria donde comien-

za la tabla de segmentos. Cada uno de los registros de esta tabla contiene la dirección base de

la tabla de páginas correspondiente a un segmento.

La dirección del registro de la tabla de segmentos la obtenemos al sumar la dirección base

de la tabla de segmentos con el campo  Segmento  de la dirección virtual:

1000016 ! 01B16 % 1001B16

El contenido de la dirección 1001B16  en la tabla de segmentos es, según el enunciado,

100F216. Esta se corresponde con la dirección base de la tabla de páginas de este segmento.

Sumándole el campo Página obtendremos la dirección del registro que contiene el número de

marco de página:

100F216 ! 2A16 % 1011C16

Y, por lo tanto, el número de marco de página es: 10011C16rFA16.

Finalmente, la dirección física se obtiene concatenando el desplazamiento al número de

marco de página.

Dirección física: FA10F16.

PROBLEMA 12

Un computador emplea memoria virtual segmentada/ paginada y un mecanismo de traduc-

ción mixta mediante TLB. El tiempo de acceso a la memoria principal es de 50 ns y el

tiempo empleado en una búsqueda en la TLB es de 5 ns. Considerando una razón de acier-

tos en la TLB del 85%, determinar el tiempo medio de acceso a la información almacenada

en memoria.

Solución: 

La TLB (Translation Lookaside Buffer) acelera de forma importante el acceso a la informa-

ción. Suele almacenar la información relativa a las últimas direcciones de memoria a las que

se ha accedido y proporciona directamente el número de marco de página para un conjunto

reducido de pares segmento-número de página.

Si suponemos que las páginas pedidas se encuentran en la memoria física, el tiempo de

acceso suponiendo que se produce acierto en la TLB para extraer la página correspondien-

te es:

t 1 % tiempo de búsqueda en la TLB ! tiempo de acceso a memoria principal

450   Problemas de fundamentos y estructura de computadores

Page 467: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 467/569

de donde:

t 1 % 5 ns ! 50 ns % 55 ns

Si dicha información no se encuentra en la TLB hay que acceder tres veces a la memoria

principal: una a la tabla de segmentos para obtener la tabla de páginas asociada, otra a la tablade páginas para obtener el número de marco de página, y finalmente una tercera vez para

obtener la información. Por tanto

t 2 % tiempo de búsqueda en la TLB ! tiempo de tres accesos a memoria principal

de donde:

t 2 % 5 ns ! 3 # 50 ns % 155 ns

El tiempo medio de acceso será entonces:

t acc % h # t 1 ! (1. h) # t 2 % 0,85 # 55 ns ! 0,15 # 155 ns % 70 ns

Si no existiese TLB, el tiempo medio de acceso para acceder a la información sería de3 # 55 ns % 150 ns, ya que en este caso todos los accesos requerirían la consulta a la tabla de

segmentos y a la tabla de páginas antes de acceder a la palabra buscada.

PROBLEMA 13

Una memoria principal contiene tres marcos de página, que inicialmente están vacíos. Si se

produce la siguiente secuencia de peticiones de página: 4, 2, 4, 5, 1, 4, 3, 1, 6, 5, 1.

Determinar la razón de aciertos en los tres supuestos siguientes:

a)   Empleando una política de sustitución FIFO.

b)   Empleando una política de sustitución LRU.c)   Empleando la política de sustitución óptima.

Solución: 

a) Sustitución FIFO (First In, First Out)

Es algoritmo procede de una forma muy sencilla. Cuando es necesario sustituir una pági-

na, este algoritmo selecciona la página que lleva más tiempo en la memoria, es decir, la

que se ubicó primero.

Páginassolicitadas 4 2 4 5 1 4 3 1 6 5 1

4 4 4 4 1 1 1 1 6 6 6

2 2 2 2 4 4 4 4 5 5

5 5 5 3 3 3 3 1

! !

Página más antigua

Número de aciertos: 2.

Razón de aciertos: 2/ 11.

Capítulo 12   Memoria   451

Page 468: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 468/569

b) Sustitución LRU (Least Recently Used)

En este caso se sustituye la página que no ha sido referenciada durante un intervalo de

tiempo más largo, es decir, la menos recientemente usada.

Páginassolicitadas 4 2 4 5 1 4 3 1 6 5 1

4 4 4 4 4 4 4 4 6 6 6

2 2 2 1 1 1 1 1 1 1

5 5 5 3 3 3 5 5

! ! ! !

Página a sustituir

Número de aciertos: 4.

Razón de aciertos: 4/ 11.

c) Sustitución óptima

En este caso se sustituye la página que no vaya a utilizarse durante el periodo más largo

de tiempo. Este algoritmo no puede implementarse, porque se basa en la petición futura

de páginas, y por lo tanto no es posible su implementación. Sin embargo es un buen pun-

to de referencia para hacer comparativas entre distintos algoritmos de sustitución.

Páginas

solicitadas 4 2 4 5 1 4 3 1 6 5 1

4 4 4 4 4 4 3 3 6 6 6

2 2 2 1 1 1 1 1 1 1

5 5 5 5 5 5 5 5

! ! ! !

Página a sustituir

Número de aciertos: 5.

Razón de aciertos: 5/ 11.

Podemos por tanto concluir que en este caso el algoritmo LRU es el que ofrece mejo-

res resultados.

PROBLEMA 14

Supongamos un sistema con las siguientes características: memoria principal de 1 KB, me-

moria cache de 4 marcos de bloque de 4 palabras de 1 byte, inicialmente vacía con sustitu-

ción LRU (en los casos en que sea necesario).

Se solicitan los accesos a las siguientes direcciones de una memoria de 1 KB: 1, 4, 8, 5,

20, 17, 19, 56, 9, 11, 4, 43. Se pide mostrar la evolución de la memoria cache para las

siguientes políticas de emplazamiento:

452   Problemas de fundamentos y estructura de computadores

Page 469: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 469/569

a)   Emplazamiento directo.

b)   Emplazamiento asociativo.

c)   Emplazamiento asociativo por conjuntos de dos marcos/ conjunto.

Solución: 

a)   En este caso, como cada bloque dispone de cuatro palabras, B % DIR/ 4. Por otro lado,

cada dirección tiene asociada un marco M % B mod nM % B mod 4. En consecuencia,

los números de bloque y marco quedan como sigue:

DIR:   1 4 8 5 20 17 19 56 9 11 4 43

B   0 1 2 1 5 4 4 14 2 2 1 10

M   0 1 2 1 1 0 0 2 2 2 1 2

Una vez obtenido esto vemos la evolución de la memoria cache, teniendo en cuenta

que si llamamos a la dirección 0 llevaremos a la memoria cache todo su bloque B % 0,

es decir de la palabra 0 a la 3. La siguiente tabla muestra la evolución de la memoria

cache. En lugar de direcciones se indica directamente el bloque solicitado. Las celdas en

fondo gris representan que se ha producido un fallo e indican dónde se produce la sustitu-

ción.

M/B 0 1 2 1 5 4 4 14 2 2 1 10

0   0 0 0 0 0 4 4 4 4 4 4 4

1   1 1 1 5 5 5 5 5 5 1 1

2   2 2 2 2 2 14 2 2 2 10

3

b)   En este caso no hace falta calcular M puesto que el marco será el primero que quede

libre. Por el contrario hemos de llevar un registro de edad para saber qué marco sustituir

en caso de que el conjunto correspondiente esté lleno. Representamos en la siguiente ta-

bla la evolución de la memoria cache, donde el segundo número en cada celda representa

el valor del registro de edad.

M/B 0 1 2 1 5 4 4 14 2 2 1 10

0   00 01 02 02 03 40 40 41 42 42 43 100

1   10 11 10 11 12 12 13 20 20 21 22

2   20 21 22 23 23 140 141 141 142 143

3   50 51 51 52 53 53 10 11

Capítulo 12   Memoria   453

Page 470: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 470/569

c)   En este caso el conjunto asociado es C % B mod nC % B mod 2, y dentro de este conjun-

to se tomará el primer marco que quede libre.

DIR:   1 4 8 5 20 17 19 56 9 11 4 43

B   0 1 2 1 5 4 4 14 2 2 1 10

M   0 1 0 1 1 0 0 0 0 0 1 0

Al igual que en el caso anterior, necesitamos un registro de edad, pero en esta ocasión

restringido al conjunto al que se refiere cada bloque.

C M/B 0 1 2 1 5 4 4 14 2 2 1 10

0 0   00 00 01 01 01 40 40 41 20 20 20 21

1   20 20 20 21 21 140 141 141 141 100

1 0   10 10 10 11 11 11 11 11 11 10 10

1   50 50 50 50 50 50 51 51

Resumimos la secuencia de aciertos y fallos en cache bajo las tres políticas de empla-

zamiento:

DIR. Directo Asociativo Asociativo por conjuntos Tipo fallo

1 Fallo Fallo Fallo Inicio

4 Fallo Fallo Fallo Inicio

8 Fallo Fallo Fallo Inicio

5 Acierto Acierto Acierto XXX

20 Fallo Fallo Fallo Conflicto

17 Fallo Fallo Fallo Conflicto

19 Acierto Acierto Acierto XXX

56 Fallo Fallo Fallo Conflicto

9 Fallo Fallo Fallo Conflicto

11 Acierto Acierto Acierto XXX

4 Fallo Fallo Acierto Conflicto

43 Fallo Fallo Fallo Conflicto

454   Problemas de fundamentos y estructura de computadores

Page 471: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 471/569

Y finalmente, mostramos un mapa de la memoria cache al finalizar todas las referencias:

Directo Asociativo Asociativo por conjuntos

Etiqueta M P DIR Etiqueta P DIR Etiqueta C P DIR

000001 00 00 16 00001010 00 40 0000010 0 00 8

00 01 17 01 41 0 01 9

00 10 18 10 42 0 10 10

00 11 19 11 43 0 11 11

000000 01 00 4 00000010 00 8 0000101 0 00 40

01 01 5 01 9 0 01 41

01 10 6 10 10 0 10 42

01 11 7 11 11 0 11 43

000010 10 00 40 00001110 00 56 0000000 1 00 4

10 01 41 01 57 1 01 5

10 10 42 10 58 1 10 6

10 11 43 11 59 1 11 7

11 00 00000001 00 4 0000010 1 00 20

11 01 01 5 1 01 21

11 10 10 6 1 10 22

11 11 11 7 1 11 23

PROBLEMA 15

Un computador tiene una memoria principal de 32 Kpalabras de 16 bits, y una memoria

cache de 4 Kpalabras, dividida en 4 bloques/ conjunto, con 64 palabras/ bloque. Se supone

que inicialmente la memoria cache está vacía. La CPU lee de forma consecutiva el conte-

nido de las posiciones de memoria 0, 1, 2, ..., 4.351. A continuación, repite 9 veces más

esta secuencia de lectura. La memoria cache es 10 veces más rápida que la memoria princi-

pal. Para la sustitución de bloques en la memoria cache se emplea la estrategia LRU. Esti-

mar la mejora que se obtiene por la utilización de la memoria cache:

MEJORA % 100 #T MP.T cache

T MP

 NOTA: Suponer que el tiempo empleado por el algoritmo LRU y el tiempo de escritura en

cache se solapa con el tiempo de lectura de MP.

Capítulo 12   Memoria   455

Page 472: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 472/569

Solución: 

En primer lugar determinamos el formato de dirección de memoria principal:

32 Kpalabras necesitan 15 bits de direcciones (32K % 215).

32 Kpalabras, con bloques de 64 palabras/ bloque, implican 512 bloques en memoriaprincipal.

Una memoria cache de 4 Kpalabras, dividida en 4 marcos/ conjunto, con 64 palabras/ marco, hacen un total de 16 conjuntos (24

% 16) en memoria cache. Por tanto el campo

conjunto tendrá 4 bits.

Los bloques son de 64 palabras, por lo que el campo palabra tendrá 6 bits.

Los 5 bits restantes, hasta completar los 15 bits de direcciones, constituyen el campo

etiqueta.

Resumiendo:

Etiqueta: 5 bits.

Conjunto: 4 bits.

Palabra: 6 bits.

Ahora se puede estudiar cómo la CPU lee 10 veces las direcciones 0 a 4.351, consideran-

do dos casos: sin memoria cache y con ella.

Se define:

– Tiempo de acceso por palabra a la memoria cache % t .

– Tiempo de acceso por palabra a la memoria principal % 10t .

Sin memoria cache:

Hay que leer 10 veces el contenido de las 4.352 direcciones de memoria. EI tiempo total de

lectura en memoria principal (MP) es por tanto:

T MP % 4.352 pal. # 10 #10t 

pal.% 435.200t 

Con memoria cache:

El tiempo de lectura total es el tiempo de gestión de fallos (tiempo ocupado en traer los blo-

ques desde MP a la memoria cache) más el tiempo de lectura de la memoria cache:

T % T fallos ! T cache

Como, tal como dice el enunciado, el tiempo empleado por el algoritmo LRU (si se utili-

za) y el tiempo de escritura en la memoria cache se solapa con el tiempo de lectura en MP, el

tiempo total en traer un bloque de MP es:

64pal.

bloque#

10t 

pal.% 640t 

456   Problemas de fundamentos y estructura de computadores

Page 473: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 473/569

Las direcciones 0..4351 se corresponden con los bloques 0..67 (68 en total). Como en la

memoria cache sólo caben 64 bloques, habrá que hacer sustituciones aplicando el algoritmo

LRU: se sustituye, dentro de un conjunto, el bloque que ha sido usado menos recientemente.

Primer ciclo de lectura (cache vacía):Tiempo debido a la gestión de fallos:

En el primer ciclo de lectura, al estar la memoria cache vacía, se emplazan exitosamente los

64 primeros bloques (bloques 0 a 63, palabras 0 a 4095), que son los que caben en memoria

cache. El estado de la memoria cache tras leer el bloque 63 se ilustra en la siguiente figura.

A cada bloque B le corresponde el conjunto B mod nC % B mod 16. Dado un conjunto al que

va destinado un bloque, el marco se escoge de forma asociativa.

Mapa de la memoria cache tras leer los primeros 64 bloques en la 1. a  vuelta.

Por lo tanto, al bloque 64 le vuelve a corresponder el conjunto 16 mod 16%

0, que estácompleto. Aplicando el algoritmo de sustitución LRU determinamos que el marco a sustituir

es el 0, que es menos recientemente referenciado. Lo mismo ocurre con los bloques 65 a 67.

Por lo tanto, el mapa de la memoria cache tras acceder a los 68 bloques queda como ilustra la

figura.

Capítulo 12   Memoria   457

Page 474: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 474/569

Mapa de la memoria cache tras leer los 68 bloques en la 1. a  vuelta.

Se han producido por tanto 68 fallos, es decir, traemos 68 bloques de MP a MC, por lo

tanto, el tiempo de gestión de fallos viene dado por:

T fallos % 68 bloques # 64pal.

bloque#

10t 

pal.% 43.520t 

Tiempo de lectura de MC:

Dado que estamos leyendo 4.352 palabras en cada ciclo del programa, el tiempo de lectura

suponiendo que todos los bloques se encuentran en MC vendrá dado por:

T cache % 4.352 pal. #1t 

pal.% 4.352t 

Tiempo total de lectura:

Por lo tanto el tiempo de ejecución del primer ciclo será:

T 1 % T fallos ! T cache % 43.520t ! 4.352t % 47.872t 

Segundo ciclo de lectura:

Tiempo debido a la gestión de fallos:

En el segundo ciclo de lectura empezamos con el estado de la memoria cache que refleja la

figura anterior. Leemos la palabra 0 que se corresponde con el bloque 0, y que no se encuentra

en memoria cache. Por lo tanto sustituimos el bloque 16 que es el menos recientemente refe-

458   Problemas de fundamentos y estructura de computadores

Page 475: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 475/569

renciado, quedando almacenados en el conjunto 0 los bloques 64, 0, 32, 48. Lo mismo ocurre

cuando el programa alcanza los bloques 1, 2 y 3, que fueron sustituidos en los conjuntos 1, 2,

y 3, respectivamente. Hasta aquí se han producido 4 fallos.

Desde el bloque 4 y hasta el 15 no se producen fallos, debido a que estos bloques ya se

encuentran en MC y no han sido sustituidos previamente.

Llegamos al bloque 16, que no se encuentra en cache, pues ya ha sido sustituido en el

conjunto 0. Realizamos por tanto una nueva sustitución. Lo mismo ocurre con los bloques 17,

18 y 19. 4 fallos más.

Desde el bloque 20 hasta el bloque 31 no se producen fallos, pues ya están ubicados en los

conjuntos 4 a 15, respectivamente.

Y así sucesivamente.

Es fácil deducir que en los conjuntos 0 a 3 se producen un total de 5 fallos en cada uno, y

que en los conjuntos 4 a 15 no se producen fallos.

La siguiente figura muestra un esquema de la evolución temporal de la memoria cache en

todos los ciclos del programa. Podemos apreciar que el número de fallos es el mismo en lasegunda vuelta y sucesivas.

Evolución temporal de la memoria cache.

Como se producen 5 fallos en 4 conjuntos, cada uno de los cuales origina la lectura desde

MP de 64 palabras (el tamaño de un bloque):

T fallos % 5 # 4 # 64 pal. #10t 

pal.% 12.800t 

Capítulo 12   Memoria   459

Page 476: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 476/569

Tiempo de lectura de MC:

El tiempo de lectura de la memoria cache es el mismo que el tiempo de lectura de la primera

vuelta:

T cache % 4.352 pal. #

1t 

pal. % 4.352t 

Tiempo total de lectura:

Por lo tanto el tiempo total viene dado por:

T 2 % T fallos ! T cache % 17.152t 

Del tercer al décimo ciclo son iguales al segundo. De donde:

T cache % T 1 ! 9 # T 2 % 47.872t ! 9 # 17.152t % 202.240t 

La mejora obtenida es por tanto:

MEJORA % 100 #T MP.T cache

T MP

% 100 #435.200t . 202.240t 

435.200t % 53,53%

PROBLEMA 16

Se ejecuta el siguiente código C en una máquina con un procesador que dispone de una

memoria cache de datos de 256 bytes con bloques de 4 palabras (de 32 bits cada una):

int  i,j,salto,vector[256];

...

for(i=0; i<10000; i++)

for(j=0; j<256; j=j+salto)

c = vector[j]+5;

Suponga que sólo se accede a la memoria cache de datos para acceder al vector, y se

supone que los enteros son palabras. Se pide:

a)   ¿Cuál es la tasa de fallos cuando la memoria cache es de emplazamiento directo y

salto%132?

b)   ¿Y si salto es 131?

c)   ¿Cambiaría algo si la memoria cache fuera asociativa por conjuntos de dos vías?

d)   Suponiendo que la memoria cache de datos es 20 veces más rápida que la memoria

principal y que el tiempo de acceso a memoria cache es de  t  ciclos, calcule el tiempototal de acceso a memoria en los casos a) y b).

Solución: 

a)   Antes de averiguar la tasa de fallos debemos saber el número de marcos de bloque con

que cuenta la memoria cache. Hay una capacidad 256 B % 28 B en la memoria cache.

Además se dice que un bloque ocupa 16 B (4 palabras de 32 bits % 4 # 4 B). Por lo tanto

el número de marcos de bloque es: 28/ 24% 24

% 16 bloques. Así pues un esquema de la

memoria cache sería el siguiente:

460   Problemas de fundamentos y estructura de computadores

Page 477: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 477/569

Marco Palabra

0 0 1 2 3

ñ ñ ñ ñ ñ

ñ ñ ñ ñ ñ

15 60 61 62 63

Como se puede ver sólo podemos introducir un total de 64 palabras como máximo.

Debemos tener en cuenta que un número entero en C ocupa 32 bits, es decir, una palabra.

Por lo tanto la memoria cache podría en el mejor de los casos almacenar hasta 64 núme-

ros enteros.

Ahora hay que analizar el comportamiento del bucle interno. El bucle externo simple-

mente repite lo que hace el bucle interno varias veces. Se dice en el enunciado que la

memoria es de emplazamiento directo. Vamos a ir viendo a qué elementos se accede.

 j % 0rElemento 1

 j % 132rElemento 133

Por lo tanto accedemos a dos números del vector o palabras. La pregunta que debe-

mos responder a continuación es a qué bloques de memoria principal corresponden estas

palabras y dónde se ubicarían estos bloques en la memoria cache. Ya que el enunciado no

lo dice suponemos por simplicidad que el vector se carga a partir de la dirección y bloque

0 de MP (memoria principal). Como no se dice nada suponemos también que la memoria

cache está inicialmente vacía.

 j % 0rBloque 0 de memoria principal. rM % B mod nM % 0 mod 16 % 0

 j % 132rBloque 33 de memoria principal (132/ 4 % 33)rM % 33 MOD 16 % 1

Podemos concluir que una vez traídos los dos bloques de memoria principal corres-

pondientes a los accesos efectuados por el programa, estos se ubicarán en los marcos 0 y

1 de la memoria cache. No existen por lo tanto fallos de sustitución y sólo hay que tener

en cuenta dos fallos forzosos en la primera iteración del bucle interno (durante la primera

iteración del bucle externo). Los fallos de sustitución se descartan porque sólo se accede

a dos palabras/ enteros y en la cache hay espacio para 64 palabras/ números. Repetidos

estos accesos 10.000 veces (bucle exterior) se puede concluir por tanto que   la tasa de

fallos es aproximadamente cero.

b)   Ahora salto es igual a 131. Siguiendo un razonamiento análogo al anterior se trata de

averiguar los elementos accedidos del vector al igual que los bloques de MP donde estáncontenidos para saber dónde se ubicarían una vez traídos a la memoria cache.

 j % 0rElemento 1

 j % 131rElemento 132

Los bloques de memoria principal:

 j % 0rBloque 0 de memoria principal rM % B mod nM % 0 mod 16 % 0

 j % 131rBloque 32 de memoria principal (131/ 4 % 32)rM % 32 mod 16 % 0

Capítulo 12   Memoria   461

Page 478: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 478/569

Ahora resulta que los dos accesos que se producen a MP debido a la lectura de dos

números/ palabras corresponden a dos bloques no consecutivos (el bloque 0 y el 32) de

MP que han de ubicarse en el mismo marco de la memoria cache. Esto supone que hay

que traer y expulsar sucesivamente bloques del marco cero de la memoria cache produ-

ciéndose dos fallos de conflicto en cada iteración del bucle interior. Repetidos estos acce-sos 10.000 veces (bucle exterior) podemos concluir por tanto que   la tasa de fallos es

exactamente uno.

c)   Si la memoria cache se convierte en una cache asociativa por conjuntos de dos vías se

soluciona el problema anterior y la tasa de fallos es aproximadamente 0 en los dos casos.

Esto es así porque sólo se han de traer dos bloques distintos de memoria principal en todo

el programa y ahora disponemos de dos marcos de bloque por conjunto, es decir, hay espa-

cio suficiente para ubicar esos dos bloques en el mismo conjunto en caso de necesidad.

d)   En primer lugar calculamos el tiempo de acceso para el caso a). Sabemos que el tiempo

de acceso a memoria cache viene dado por la expresión:

t acc % h # t c ! (1. h) # (t c ! t  p) % t c ! (1. h) # t  p

donde t c es el tiempo de acceso a cache y  t  p es el tiempo de acceso a memoria principal.

Con los datos del problema esto resulta en:

t acc % t !2

20.000# (4 # 20t ) % 1,008t 

En caso de fallo traer un bloque a memoria cache cuesta lo mismo que traer 4 pala-

bras por separado.

Para el caso b) se realiza un razonamiento similar:

t acc % t ! 1 # (4 # 20t ) % 81t 

Como podemos ver con estos valores el hecho de tener una cierta organización u otra

en la memoria cache puede influir de forma decisiva en el rendimiento general de un

computador en determinadas aplicaciones.

PROBLEMA 17

Sea el siguiente programa

que se ejecuta en un computador con una MP de 64 Kpalabras, dotado de una MC con

emplazamiento directo de 1 Kpalabras y con bloques de 128 palabras. El tiempo de ciclo

462   Problemas de fundamentos y estructura de computadores

Page 479: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 479/569

de la memoria principal es 10t , el de la memoria cache es t  y el tiempo de transferencia de

un bloque de MP a MC es de 500t .

a)   Especificar el n.o de bits de los campos etiqueta, marco y palabra.

b)   Considerando solamente el tiempo de búsqueda en memoria de las instrucciones, cal-cular el tiempo necesario para la ejecución del programa y la ganancia con respecto a

un computador sin cache.

Solución: 

a)   La memoria principal (MP) tiene 16 bits para poder cubrir las 64 Kpalabras, de estos

16 bits 7 se dedican a direccionar la palabra (128 palabras/ bloque % 27 palabras/ bloque),

y el resto (9 bits a direccionar el bloque).

La memoria cache (MC) utiliza 10 bits para contener las 1 Kpalabras indicadas (210

palabras). Esto indica que el campo etiqueta será de 16. 10 % 6 bits. Con 7 bits para

direccionar la palabra esto nos deja 16. 10. 7 % 3 bits para el marco.

Como resultado quedan las siguientes anchuras en bits para los campos etiqueta, mar-

co y palabra para ambos tipos de memoria:

Memoria principal:

Memoria cache:

b.1) Sin memoria cache

En primer lugar analizamos los accesos totales a memoria del bucle anterior dividiendo

la ejecución de una vuelta en las distintas fases que comprende:

Así resultan para el bucle externo:

10 # (142 ! 1.500 ! 961) % 10 # 2.603 % 26.030 accesos

Capítulo 12   Memoria   463

Page 480: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 480/569

Entonces, para todo el fragmento de código:

6 ! 26.030 ! 300 % 26.336 accesos

Por lo tanto, el tiempo total consumido sin cache para este bucle resulta:

26.336 # 10t % 263.360t 

b.2) Con memoria cache

En el caso de un sistema con un nivel de cache, la cantidad de accesos básica será igual

ya que el procesador siempre accede a memoria a través de la cache, pero tenemos que

añadir el coste de transferencias de MP-MC por fallos en cache. Realizamos el estudio

para las distintas fases del código anterior:

 Inicio:  en los accesos a direcciones 17 a 22, hay un 1 fallo de cache al estar la cache

vacía y se carga el bloque 0..127 en cache al fallar el acceso a la posición 17, Marco de

Bloque 0.

Distinguiremos entre la primera iteración y las restantes del bucle interno:

1. a iteración: En total hay 9 fallos, que son los siguientes:

 Accesos direcciones 23 a 164:  hay 1 fallo de cache al acceder a la posición 128,

que no se encuentra cubierta por el bloque 0 cargado anteriormente.

 Accesos del bucle interno a direcciones 165 a 239: 0 fallos para las 20 iteraciones

al haber cargado el bloque en la secuencia de accesos anterior.

 Accesos direcciones 240 a 1200:  hay 8 fallos de cache al acceder a las siguientes

direcciones:

256 (traemos al marco de bloque 2 el rango 256..383)

384 (bloque 3, rango 384..511)

512 (bloque 4, rango 512..639)

640 (bloque 5, rango 640..767)

768 (bloque 6, rango 768..895)

896 (bloque 7, rango 896..1023)

1024 (sobrescribimos bloque 0, rango 1024..1151)

1152 (sobrescribimos bloque 1, rango 1152..1279).

 2. a  a 9. a iteraciones: En total hay 36 fallos, 4 cada iteración, que son los siguientes:

 Accesos direcciones 23 a 164: hay 2 fallo de cache al acceder a la posición 128 y a

la 23 también, ya que el bloque 0 contiene ahora el rango 1024 a 1151 al comienzo de

todas las iteraciones.

 Accesos del bucle interno a direcciones 165 a 239: sigue habiendo 0 fallos para las

20 iteraciones al haber cargado los dos bloques en la secuencia de accesos anterior du-

rante los dos fallos.

 Accesos direcciones 240 a 1200: hay 2 fallos de cache al acceder a las siguientes

direcciones

1024 (sobrescribimos bloque 0, rango 1024..1151)

1152 (sobrescribimos bloque 1, rango 1152..1279)

464   Problemas de fundamentos y estructura de computadores

Page 481: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 481/569

El resto de bloques (bloque 2 a bloque 7) contienen las posiciones de memoria co-

rrectas ya que se cargaron en la primera iteración y nunca se sobrescribieron posterior-

mente.

Fin:  en los accesos a direcciones 1201 a 1500, hay dos fallos de cache al acceder a las

direcciones:

1280 (traemos al marco de bloque 2 el rango 1280..1407)

1408 (bloque 3, rango 1408..1535)

En total, para la ejecución completa del fragmento de código hay:

1 ! 9 ! 36 ! 2 % 48 fallos

Por tanto, el tiempo de ejecución de MP ! MC resulta:

48 # 500t ! 26.336t % 50.336t 

Finalmente, el tiempo de ejecución se reduce al tener MP!

MC con respecto alsistema sólo con MP un total de 263.360t / 50.336t % 4,06 veces.

PROBLEMA 18

Sea un ordenador con un procesador de 8 bits, con sistema de memoria de las siguientes

características:

Memoria principal de 4 GB, entrelazada simple de orden inferior con 16 módulos,

tiempo de acceso de 32 ns.

Memoria cache de dos módulos independientes (instrucciones y datos), capacidad de

ambas caches de 64 KB, tiempo de acceso de 4 ns, bloques de 16 B, política de emplaza-

miento asociativo por conjuntos de dos bloques, política de actualización escritura inme-diata sin ubicación, política de sustitución FIFO.

En este computador se ejecuta el siguiente código:

while  (i < n) {

total = total + precio[i]*cantidad[i];

i = i + 1;

}

Si inicialmente, la memoria cache de datos se encuentra vacía:

a)   Indicar la correspondencia entre una dirección de memoria principal y una de memo-

ria cache.b)   Indicar la traza de los 3 primeros accesos, a los datos, realizada por este fragmento de

código suponiendo que:

Las variables  i, n  y total se almacenan en dos de los registros, inicializadas a 0.

Los vectores precio y cantidad se almacenan a partir de las direcciones de memoria

principal 8001816 y 7001816 respectivamente.

Indicar además en cuáles de las anteriores referencias a la memoria principal pro-

ducen fallos en la memoria cache, considerando las tres iteraciones del bucle.

Capítulo 12   Memoria   465

Page 482: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 482/569

c)   Calcular la tasa de aciertos de la memoria cache de datos para el anterior fragmento de

programa.

d)   Calcular el tiempo de ejecución del fragmento del programa anterior debido única-

mente a los accesos a memoria.

Solución: 

Una memoria entrelazada de orden inferior separa la memoria en diferentes módulos, de for-

ma que direcciones consecutivas de memoria se encuentran en módulos consecutivos. Bajo

esta configuración, se puede acceder a distintos módulos en paralelo. Como un bloque ocupa

en este caso 16 B y disponemos de 16 módulos, podemos traer un bloque de memoria princi-

pal de una sola vez.

a) Correspondencia entre dirección de MP y MC

Tamaño de la memoria principal: 4 GB % 232 B

Tamaño de bloque: 16 B % 24

BNúmero de bloques en MP:

nB %232 B

24  B

bloque

% 228 bloques

Tamaño de la cache de datos: 64 KB % 26# 210 B % 216 B

Número de marcos en MC:nM %

216 B

24  B

bloque

% 212 bloques

Número de conjuntos en MC:

nC%

212 bloques

21  bloques

conjunto

%211

conjuntos

Un bloque de memoria principal se ubica en el conjunto correspondiente a la posición

B mod nC % B mod 211 de memoria cache de datos, siendo B el número de bloque de

memoria principal. Como la longitud de la dirección es de 32 bits, el campo palabra es de

4 bits y el campo conjunto es de 11 bits, podemos concluir que el campo etiqueta será de

32. 11. 4 % 17 bits, tal como se muestra en la siguiente figura:

b) Traza de tres primeros accesos

La tabla siguiente muestra la traza de los tres primeros accesos. En la dirección de me-

moria principal, los dígitos en negrita representan el conjunto, mientras que los dígitos en

negrita y cursiva representan la palabra. La dirección de memoria cache se divide en los

campos etiqueta, conjunto y palabra, todos en decimal. Dado que disponemos de un pro-

cesador de 8 bits (1 B), elementos consecutivos de un vector estarán en posiciones conse-

cutivas de memoria:

466   Problemas de fundamentos y estructura de computadores

Page 483: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 483/569

Variable DIR. MP DIR. MC Acierto

precio[0]  80018

16

0..01 0000 000 0000 0001  1000 2

Etiqueta: 16Conjunto: 1Palabra: 8

Fallo de lectura

cantidad[0]  70018

16

0..00 1110 000 0000 0001  1000 2

Etiqueta: 14Conjunto: 1Palabra: 8

Fallo de lectura

precio[1]  80019

16

0..01 0000 000 0000 0001  1001 2

Etiqueta: 16Conjunto: 1Palabra: 9

Acierto de lectura

cantidad[1]  70019

16

0..00 1110 000 0000 0001  1001 2

Etiqueta: 14Conjunto: 1Palabra: 9

Acierto de lectura

precio[2]   8001A16

0..01 0000 000 0000 0001  1010 2

Etiqueta: 16Conjunto: 1Palabra: 10

Acierto de lectura

cantidad[2]  7001A

16

0..00 1110a000 0000 0001  1010 2

Etiqueta: 14Conjunto: 1Palabra

Acierto de lectura

c) Tasa de aciertos

La tasa de aciertos vendrá dada por el número de aciertos que se producen al acceder

sobre el número de accesos totales. Del apartado anterior podemos concluir que

Tasa de aciertos % 4/ 6 % 0,6667 % 66,67%

d) Tiempo de ejecución

Los dos primeros accesos (ver apartado b) implican acceder a memoria cache a buscar la

información y al no encontrarla se debe acceder a memoria principal a llevar el bloque a

la cache. Como es entrelazada simple de orden inferior de 16 módulos podemos leer un

bloque entero en un acceso. Por lo que los dos primeros accesos tienen un acceso a me-

moria cache y otro a memoria principal.

Los siguientes accesos son aciertos por lo que solamente se accede a la cache.

Por tanto son 6 accesos a cache y 2 a memoria principal:

T % 6 # 4 ns ! 2 # 32 ns % 88 ns

PROBLEMA 19

El sistema de memoria virtual de un computador tiene 16 MB de capacidad, y dispone de

una memoria física de 512 KB. El tamaño de página es de 4 KB y se realizan las siguientes

referencias a páginas virtuales (se referencian todas las palabras contenidas en cada pági-

na): 17, 13, 9, 17, 17, 24, 25, 25, 25, 13, 13, 14, 15, 15, 13, 13, 24, 24, 36, 37 y 40. Se pide:

Capítulo 12   Memoria   467

Page 484: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 484/569

a)   Tamaño de la tabla de páginas.

b)   Número total de accesos a memoria principal suponiendo que inicialmente la tabla de

páginas está vacía.

c)   Número total de accesos a memoria principal suponiendo que inicialmente la tabla depáginas está vacía y que se dispone de un TLB de 32 entradas con una corresponden-

cia totalmente asociativa.

d)   Si un acceso a memoria principal tarda t  unidades de tiempo y se tarda 106t  unidades

de tiempo en leer una página de disco, ¿qué mejora en el tiempo de acceso produce el

uso del TLB? Calcúlese este factor teniendo en cuenta el acceso a disco y sin tenerlo

en cuenta.

 NOTA: Se considerarán accesos a memoria todos aquellos accesos del programa de usua-

rio así como los producidos por la actualización de la tabla de páginas y la carga de una

página en memoria principal.

Solución: 

a) Tamaño de la tabla de páginas

N.o de páginas en MV % 16 MB / 4 KB % 224 / 212% 212

% 4.096 páginas

rEntradas en la tabla de páginas % 4.096

Cada entrada contiene (como mínimo) 1 bit de presencia ! bits del marco de página

N.o de páginas en MP % 512 KB / 4KB % 219 / 212% 27

% 128 páginasr bits de marco

de página % 7 bits

Por lo tanto:

Tamaño de la TP % 4.096 # (7 ! 1) % 37.768 bits % 4 KB

b) Número de accesos a MP

N.o de fallos de página % 10 (existen 10 páginas diferentes en la secuencia del enuncia-

do)

Accesos en cada fallo:

1 a TP

212 para llevar la página a MP (4 KB)

1 para actualizar TP

1 para acceder a TP y obtener la dirección de MP

1 para acceder a la posición deseada

Total: 4 ! 212rN.o total de accesos en fallos % 10 # (4 ! 212) % 41.000

Accesos en cada acierto:

1 a TP

1 a posición deseada

Total: 2

468   Problemas de fundamentos y estructura de computadores

Page 485: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 485/569

N.o de aciertos % N.o de referencias total.N.o de fallos % N.o de páginas del progra-

ma # tamaño de página

N.o de aciertos % 21 # 212. 10 % 86.006

N.

o

total de accesos en los aciertos%

86.006#

2%

172.012N.o total de accesos a memoria % 41.000 ! 172.012 % 213.012

c) Número total de accesos a memoria con TLB de 32 entradas

TLB % 32 entradas r capacidad para soportar las entradas de TP correspondientes a las

páginas del programa.

En fallos se produce el mismo n.o de accesos a MP (1 ! 212! 1 ! 1 ! 1)

En aciertos se produce un solo acceso a MP. El correspondiente a la posición deseada, el

otro se realiza sobre TLB.

N.o total de accesos a MP % 41.000 ! 86.006 % 127.006

d) Mejora al usar TLB, teniendo en cuenta el acceso al disco

Teniendo en cuenta el acceso al disco

Tiempo con TLB % 10 # 106t ! 127.006t 

Tiempo sin TLB % 10 # 106t ! 213.012t 

Tiempo con TLB/ Tiempo sin TLB % 0,9916r99,16%

Sin tener en cuenta el acceso al disco:

Tiempo con TLB % 127.006t 

Tiempo sin TLB % 213.012t 

Tiempo con TLB/ Tiempo sin TLB % 0,5962r59,62%

PROBLEMA 20

Sea un computador con memoria virtual paginada y memoria cache con las características

siguientes:

Tamaño de página: 16 KB cada una (las palabras son de 1 B).

Memoria virtual: 1 MB con traducción asociativa y sustitución LRU.

Memoria física: 64 KB.

Memoria cache de 256 B, asociativa por conjuntos, con bloques de 64 B, 2 bloques por

conjunto y sustitución LRU (mediante registros de edad).

El tiempo de acceso a la cache es Tc, el tiempo de acceso a memoria principal es Tm,

tiempo de transferencia de un bloque de memoria principal a memoria cache es Tb y el

tiempo de transferencia de una página de memoria secundaria a memoria principal es Tp.

Se pide:

a)   Indicar el formato de la dirección virtual y de la dirección física. Calcular el número

de páginas que contiene la memoria virtual y la memoria principal, así como el núme-

ro de bloques que contiene la memoria principal y la memoria cache.

Capítulo 12   Memoria   469

Page 486: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 486/569

b)   Calcular el número de bits necesarios para implementar la memoria cache (incluyendo

datos, etiquetas y registros de edad) y el número de bits necesarios para implementar

la tabla de páginas asociativa.

c)   Si en un momento dado los contenidos de la tabla de páginas y de la cache (en deci-

mal) son los siguientes:

Tabla de páginas asociativa Etiquetas en la cache

N.o de página N.o de marco Etiqueta Conjunto Bloque

5 0 18 0 024 1 259 0 163 2 130 1 050 3 511 1 1

Expresar en hexadecimal el rango de direcciones virtuales y físicas ubicadas en cada

marco de página de la memoria principal, así como el rango de direcciones virtuales y

físicas ubicadas en cada bloque de la memoria cache.

d)   Supongamos que un programa realiza la siguiente cadena de referencias virtuales para

lectura (en hexadecimal): 14910-1492F, 60170-6018F, CBFF0, 60190-6019F, 1100-

111F. Calcular el tiempo total de acceso a memoria para satisfacer esa cadena de refe-

rencias, suponiendo que inicialmente los contenidos de la cache son los que se mues-

tran en la tabla anterior. Indicar claramente cómo evolucionan los contenidos de la

memoria principal y de la memoria cache (indicando las direcciones virtuales que se

ubican en cada bloque y los cambios en las etiquetas), cuando se realiza la cadena de

referencias anterior.

Solución: 

a) Formatos y número de páginas

La dirección virtual (DV) es de 1 MB % 220 B y tiene por tanto 20 bits. Además, el tama-

ño de página es de 16 KB % 214 B, por lo que se utilizan 14 bits para el desplazamiento, y

quedan entonces 6 bits para indicar el número de página.

En la misma línea, la dirección física (DF) es de 64 KB % 216 B y por tanto necesita

16 bits. Por tanto, con respecto a la memoria virtual (MV) la dirección física necesita de

14 bits para el desplazamiento y 16. 14 % 2 bits para indicar el marco de página.

470   Problemas de fundamentos y estructura de computadores

Page 487: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 487/569

Desde el punto de vista de la memoria cache (MC), un bloque consta de 64 B % 26 B.

El número de conjuntos se puede calcular fácilmente mediante la siguiente ecuación:

nC %

256 B

64 Bbloque

2bloques

conjunto

% 2 conjuntos

De donde la DF necesita de 6 bits para indicar la palabra, 1 bit para el conjunto y

16. 1. 6 % 9 bits para la etiqueta.

b) Número de bits necesarios para implementar la MC y la tabla de páginas (TP)

La Tabla de Páginas (TP) Asociativa tiene una entrada por cada marco de página en MP,

posee por tanto 4 entradas (64 KB de tamaño de MP/ 16 KB por página). Además, cada

entrada está compuesta por el número de página en la DV (6 bits) y el marco de página

en la DF (2 bits) (ver apartado anterior). Con esto resulta:

Tamaño de la TP: 8 bits/ registro # 4 registros % 32 bits

Con respecto a la MC, al utilizar una política LRU con 2 % 21 marcos por conjunto,

utilizamos un registro de edad que sólo requiere 1 bit. Por tanto, el tamaño de cada marco

de bloque en la MC con algoritmo LRU es:

Etiqueta: 9 bits.

Registro de edad: 1 bit.

Datos: 64 bytes.

Como tenemos 4 marcos de bloque en MC, podemos concluir:

Tamaño de MC: 4 # (9 ! 1 bits) ! 4 # 64 B % 5 B ! 256 B % 261 B (2.088 bits)

c) Rango de DV y DF en cada marco de página y en cada marco de bloque

Tabla de páginas

Como el esquema de una DV es 6 bits de página y 14 bits para el desplazamiento, el

rango de DV para esta página será (en binario y hexadecimal):

Rango en binario Rango en hexadecimal

Páginar5

000101 00000000000000..000101 11111111111111 14000..17FFF

Capítulo 12   Memoria   471

Page 488: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 488/569

Podemos operar de la misma forma para el resto de las páginas de la tabla de páginas,

quedando:

Páginar5

000101 00000000000000..000101 11111111111111 14000..17FFF

Página r24

011000 00000000000000..011000 11111111111111 60000..63FFF

Página r63

111111 00000000000000..111111 11111111111111 FC000..FFFFF

Página r50

110010 00000000000000..110010 11111111111111 C8000..CBFFF

Para el caso de las direcciones físicas, disponemos de los marcos 0, 1, 2, 3 en la tabla

de páginas. Dado que el marco de página está compuesto de dos bits y el desplazamiento

de 14 bits, podemos proceder de forma similar a la anterior:

Rango en binario Rango en hexadecimal

Marco de páginar0

00 00000000000000..00 11111111111111 0000..3FFF

Marco de páginar1

01 00000000000000..01 11111111111111 4000..7FFF

Marco de páginar2

10 00000000000000..10 11111111111111 8000..BFFF

Marco de páginar3

11 00000000000000..11 11111111111111 C000..FFFF

 Memoria cache

En el caso de la MC vemos cómo resulta la traducción de direcciones de MP a MC según

la primera entrada de la tabla, considerando 9 bits para la etiqueta, 1 para el conjunto y 6para la palabra:

Etiqueta Conjunto Bloque

18 0 0

Rango en binario Rango en hexadecimal

000010010 0 000000 0900000010010 0 111111 093F

472   Problemas de fundamentos y estructura de computadores

Page 489: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 489/569

Podemos proceder de forma similar con el resto de entradas de la memoria cache:

18 0 0

000010010 0 000000 0900

000010010 0 111111 093F

259 0 1

100000011 0 000000 8180100000011 0 111111 81BF

130 1 0

010000010 1 000000 4140010000010 1 111111 417F

511 1 1

111111111 1 000000 FFC0

111111111 1 111111 FFFF

Finalmente comprobamos cómo resulta la traducción de direcciones de MC a direc-

ciones de MV según la TP. En el caso de la etiqueta 18, ubicada en el conjunto 0, bloque

0 de MC, está en las direcciones físicas 090016 a 093F16. Como las direcciones físicas son

de 16 bits, los dos bits más significativos de este rango son 00 2, lo que se corresponde

con el marco de página 0. Según la tabla de páginas, al marco de página 0 le corresponde

la página 5. Uniendo a este número de página el campo desplazamiento (14 bits) contem-

plado en el rango 090016 a 093F16, resulta en el rango de direcciones virtuales:

00002  90016: 000101 00 1001 0000 0000, resultando en MV: 1490016

00002  93F16: 000101 00 1001 0011 1111, resultando en MV: 1493F16

que representa el rango de MV para el bloque ubicado en el marco 0, conjunto 0 de MC.

Podemos proceder de la misma manera para el resto de marcos de bloque de MC, que-

dando el mapa de MC como sigue:

Rango en MP Rango en MV Rango en MV

Etiqueta 18, conjunto 0, marco 0

00002 90016

00002 93F16

000101 00 1001 0000 0000000101 00 1001 0011 1111

149001493F

Etiqueta 259, conjunto 0, marco 1

10002 18016

10002 1BF16

111111 00 0001 1000 0000111111 00 0001 1011 1111

FC180FC1BF

Etiqueta 130, conjunto 1, marco 0

01002 14016

01002 17F16

011000 00 0001 0100 0000011000 00 0001 0111 1111

601406017F

Etiqueta 511, conjunto 1, marco 1

11112 FC016

11112 FFF16

110010 11 1111 1100 0000110010 11 1111 1111 1111

CBFC0CBFFF

Capítulo 12   Memoria   473

Page 490: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 490/569

d) Ejecución de: 14910-1492F, 60170-6018F, CBFF0, 60190-6019F, 1100-111F

Para seguir la evolución de esta ejecución, realizamos una traza de los distintos interva-

los utilizando los resultados del apartado anterior:

 Intervalo 14910-1492F

Como podemos apreciar en el apartado anterior (ver columna «Rango en MV»), todas

estas direcciones se encuentran cargadas en memoria cache. Por lo tanto el tiempo de

ejecución en este caso será:

T 1 % 32 # t c

 Intervalo 60170-6018F

Como se puede apreciar en el mapa de la memoria cache (ver apartado anterior), las di-

recciones de este intervalo contenidas en memoria cache van desde 60170 a 6017F, todas

en el conjunto 1, marco 0.

Traducción de direcciones en el intervalo de MV 60180 a 6018F a dirección física

60180r0110 0000 0001 1000 0000rPágina 24rMarco de página 1

6018Fr0110 0000 0001 1000 1111rPágina 24rMarco de página 1

Por lo tanto este rango se encuentra en MP. Como hay que traerlo a MC, para averi-

guar el conjunto al que pertenece, basta con traducir el rango a direcciones físicas:

60180r0110 0000 0001 1000 0000r0100 0001 1000 0000r 4180

6018Fr0110 0000 0001 1000 1111r 0100 0001 1000 1111 r 418F

Traduciendo estas direcciones al formato de memoria principal, tenemos:

4180r 010000011 0 000000rConjunto 0

418Fr010000011 0 001111rConjunto 0

Esto quiere decir que para leer las DV en el rango pedido (60180-6018F), se deben

traer de MP a MC las direcciones físicas de la etiqueta 131, conjunto 0 (direcciones físi-

474   Problemas de fundamentos y estructura de computadores

Page 491: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 491/569

cas 4180-418F), y se trae de memoria MP a MC el bloque 262, cuyo rango de direcciones

físicas es en realidad (al ser de 64 bytes cada bloque):

010000011 0 000000.. 010000011 0 111111r 4180..41BF

Como estamos aplicando el algoritmo LRU, se sustituye el marco 1 del conjunto 0,

porque el marco 0 ha sido referenciado anteriormente. En este caso la memoria cache

queda como sigue:

Rango en MP Rango en MV Rango en MV

Etiqueta 18, conjunto 0, marco 0

00002 90016

00002 93F16

000101 00 1001 0000 0000000101 00 1001 0011 1111

149001493F

Etiqueta 131, conjunto 0, marco 1

01002 18016

01002 1BF16

011000 00 0001 1000 0000011000 00 0001 1011 1111

60180601BF

Etiqueta 130, conjunto 1, marco 0

01002 14016

01002 17F16

011000 00 0001 0100 0000011000 00 0001 0111 1111

601406017F

Etiqueta 511, conjunto 1, marco 1

11112 FC016

11112 FFF16

110010 11 1111 1100 0000110010 11 1111 1111 1111

CBFC0CBFFF

En consecuencia, el tiempo de ejecución de este intervalo se divide en dos: El debido

al sub-intervalo que se encuentra en MC y el que está en MP. Tenemos entonces:

T 2 % (16 # t c) ! (t m ! t b ! 16 # t c) % t m ! t b ! 32 # t c

 Intervalo CBFF0

Esta dirección se encuentra directamente en MC, por lo que el tiempo de ejecución es:

T 3 % t c

 Intervalo 60190-6019F

Son 16 palabras que ya se encuentran en MC, por lo que el tiempo de ejecución es:

T 4 % 16 # t c

 Intervalo 01100-0111F

En este caso el intervalo completo no se encuentra en memoria cache.

Traducimos las direcciones en el intervalo a dirección física:

Capítulo 12   Memoria   475

Page 492: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 492/569

01100r0000 0001 0001 0000 0000rPágina 0rNo está en MP (ver tabla de páginas)

0111F r0000 0001 0001 0001 1111 rPágina 0rNo está en MP (ver tabla de páginas)

Por lo tanto tenemos que llevar la página 0 de memoria secundaria a memoria princi-

pal. Hay que comprobar las secuencias de referencias a páginas para ver cuál debemossustituir:

14910..1492Fr0001 0100 1001 0001 0000 ..  0001 0100 1001 0010 1111rPágina 5

60170..6018Fr0110 0000 0001 0111 0000 ..  0110 0000 0001 1000 1111rPágina 24

CBFF0   r1100 1011 1111 1111 0000 ................................................rPágina 50

60190..6019Fr0110 0000 0001 1001 0000 ..  0110 0000 0001 1001 1111rPágina 24

Podemos comprobar que la página 63 no ha sido referenciada, y por tanto sustituimos

la página 63 por la página 0, quedando como sigue:

Tabla de páginas asociativa

N.o de página N.o de marco

5 024 1

0 250 3

De este modo, las direcciones virtuales traídas a MP son (página 0):

00000 00000000000000r 00000rPágina 0rMarco de página 2

00000 11111111111111r 03FFFrPágina 0rMarco de página 2

Por lo tanto este rango se encuentra ya en MP. Ahora hay que traerlo a MC. Para

averiguar el conjunto al que pertenece, basta con traducir el rango a direcciones físicas:

01100r0000 0001 0001 0000 0000r1001 0001 0000 0000r 9100

0111Fr0000 0001 0001 0001 1111r 1001 0001 0001 1111 r 911F

Traduciendo estas direcciones al formato de memoria principal, tenemos:

9100r 100100010 0 000000rConjunto 0

911Fr100100010 0 011111rConjunto 0

476   Problemas de fundamentos y estructura de computadores

Page 493: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 493/569

Esto quiere decir que para leer las DV en el rango pedido (01100-0111F), se deben

traer de MP a MC las direcciones físicas de la etiqueta 290, conjunto 0 (direcciones físi-

cas 9100-911F), y se trae de memoria MP a MC el bloque 580, cuyo rango de direcciones

físicas es en realidad (al ser de 64 bytes cada bloque):

100100010 0 000000..100100010 0 111111r 9100..913F

Como estamos aplicando el algoritmo LRU, se sustituye el marco 0 del conjunto 0,

porque el marco 1 ha sido referenciado anteriormente. En este caso la memoria cache

queda como sigue:

Rango en MP Rango en MV Rango en MV

Etiqueta 18, conjunto 0, marco 0

10012 10016

10012 13F16

000000 01 1001 0000 0000000000 01 1001 0011 1111

019000193F

Etiqueta 131, conjunto 0, marco 1

01002 18016

01002 1BF16

011000 00 0001 1000 0000011000 00 0001 1011 1111

60180601BF

Etiqueta 130, conjunto 1, marco 0

01002 14016

01002 17F16

011000 00 0001 0100 0000011000 00 0001 0111 1111

601406017F

Etiqueta 511, conjunto 1, marco 1

11112 FC016

11112 FFF16

110010 11 1111 1100 0000110010 11 1111 1111 1111

CBFC0CBFFF

En consecuencia, el tiempo de ejecución de este intervalo se corresponde con traeruna página de memoria secundaria y un bloque de memoria principal. Tenemos entonces:

T 5 % t  p % t m ! t b ! 32 # t c

El tiempo total será por tanto la suma de estos cinco tiempos:

T %

5

;i%1

T i%(32 # t c) ! (t m ! t b ! 32 # t c) ! (t c) ! (16 # t c) !(t  p!t m!t b!32# t c)

de donde finalmente se obtiene:

T % t  p ! 2 # t m ! 2 # t b ! 113 # t c

PROBLEMA 21

Diseñar una memoria de 64 K # 20 bits a partir de pastillas de RAM de 8 K # 8 bits y

32 K # 1 bit.

Solución: 

Una memoria de 64 K % 216 necesita de 16 bits para direccionar cualquier palabra (A15  A14

A13  ... A0). Al disponer las pastillas en forma matricial, necesitamos usar, para reducir espa-

Capítulo 12   Memoria   477

Page 494: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 494/569

cio, 8 filas # 2 columnas de pastillas de 8 K # 8 bits (3 columnas sobrepasaría el tamaño de

la palabra, que es de 20 bits), lo que hace 64 Kpalabras de 16 bits/ palabra. Para completar los

20 bits añadimos 2 filas # 4 columnas de pastillas de 32 K # 1 bit lo que completan las

64 Kpalabras de 20 bits por palabra.

Para seleccionar una palabra en las pastillas de 8K % 213, utilizamos los 13 bits menossignificativos (A12 ... A0), mientras que la selección de una fila u otra (de las ocho posibles) se

realiza con los 3 bits restantes utilizando un decodificador. En el caso de las pastillas de

32K % 215, se procede de la misma forma, los 15 bits menos significativos de la dirección

(A14 ... A0) seleccionan la palabra mientras que el bit más significativo selecciona una fila u otra.

La siguiente figura muestra un esquema de diseño de lo anteriormente mencionado:

12.5 Problemas propuestos

PROBLEMA 1

En un procesador con 10 ns de periodo de reloj, se tiene una cache con una tasa de fallos de0,05, y una penalización por fallo de 20 ciclos de reloj. Calcular el tiempo medio de los acce-

sos a memoria en función del número N de ciclos que se invierte en un acierto. Suponiendo

que se pueda mejorar la tasa de fallo a 0,03 pero aumentando 2 ciclos el tiempo de acceso a la

cache. ¿Se consigue mejorar el tiempo medio de acceso a memoria?

PROBLEMA 2

Se tiene un computador A, con una cache de 4 vías con 256 entradas en cada vía. El tamaño

total de la memoria que almacena las etiquetas de la memoria cache es de 16 Kbits. La memo-

478   Problemas de fundamentos y estructura de computadores

Page 495: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 495/569

ria que almacena los datos en la cache es de 64 Kbits. ¿Cuál es la organización de la memoria

principal (profundidad y anchura) en el computador A?

Se tiene un segundo computador B, con una cache con la misma estructura y tamaño que

el A. La memoria cache B, sin embargo, carga un bloque de 4 palabras cada vez que se produ-

ce un fallo de cache (intenta aprovechar el principio de localidad espacial) ¿Cuál es la organi-zación de la memoria principal (profundidad y anchura) en el computador B?

PROBLEMA 3

Considere el siguiente trozo de código C:

for(j=0;j<100;j=j+1)

for(i=0;i<5000;i=i+1)

x[i][j]=2*x[i][j];

Dicho código es perfectamente correcto desde el punto de vista lógico, pero ¿cómo podría

mejorarse desde el punto de vista de la jerarquía de memoria?

PROBLEMA 4

Sea una memoria principal de 264 palabras y una memoria cache de 26. Sabiendo que la me-

moria principal tiene unos tiempos de acceso de 150 ns, la memoria cache unos tiempos de

acceso de 8 ns y sabiendo que la MP se divide en 262 bloques, calcular:

a)   Formato de la dirección cache para la política de emplazamiento directo, formato para la

política de emplazamiento asociativo.

b)   Formato para la política de emplazamiento asociativa por conjunto sabiendo que es una

memoria cache de 4 vías.c)   Tiempo de trabajo de la cache sabiendo que la tasa de fallos es del 20%.

d)   Sabiendo que el tamaño de dirección virtual es el mismo que de dirección real y que una

página es de 29 palabras, dar el formato de la dirección virtual.

e)   ¿Cuántas páginas puede tener un proceso activo?

f)   Suponiendo que el sistema operativo reserva 258 posiciones de memoria para virtualizar

la memoria, ¿cuántos procesos activos puede haber simultáneamente en el sistema.

PROBLEMA 5

Un computador dispone de un sistema de memoria central constituido por una memoria prin-cipal MP de 4 MB y una memoria cache MC de 32 KB. La MC tiene un tamaño de línea de 8

bytes, un grado de asociatividad de 4 y una política de sustitución LRU. La MP está diseñada

como memoria entrelazada de orden inferior de manera que direcciones consecutivas se en-

cuentran ubicadas en módulos consecutivos y con un número de módulos tal que permita mi-

nimizar el tiempo de transferencia de bloques entre MP y MC. Se pide:

a)   Número de módulos de MP y tamaño de los mismos.

b)   Interpretación de los bits de la dirección física del sistema de memoria para MP.

c)   Interpretación de los bits de la dirección física del sistema de memoria para MC.

Capítulo 12   Memoria   479

Page 496: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 496/569

d)   Si un programa referencia direcciones pertenecientes a los bloques: 63, 64, 128, 1025,

1026, 1027, 2049, 127, 340, 4097, 1025, 1024, 6145, 6147, 6148, 3073, 128, 0, 125, de-

terminar el contenido de los bits de etiqueta correspondientes al conjunto 1.

PROBLEMA 6

En un computador que dispone de un sistema de memoria central con una memoria principal

MP de 64 Kpalabras y una cache de datos MC de 128 palabras con correspondencia asociativa

de 2 vías y 8 palabras por bloque, se ejecuta el siguiente programa:

for(j=0; j<16; j=j+1)

for(i=0; i<2; i=i+1)

z[i][j] = (x[i][j]+y[i][j])/2;

El tiempo de acceso a MP es 10 veces superior al de MC, que es de 5 ns. Suponiendo que

los arrays x[i][j], y[i][j], z[i][j] son ubicados en posiciones consecutivas de memoria a partir

de la dirección 0, uno a continuación de otro, ordenados por filas, y que sus elementos están

codificados con 4 palabras:

a)   Calcular el tiempo total de acceso a los arrays x[i][j], y[i][j], z[i][j] durante la ejecución

del programa sabiendo que en MC opera una política de escritura directa (write through)

sin asignación en cache.

b)   Calcular la ganancia de velocidad (speedup) del programa que resulta de intercambiar los

bucles i y j respecto a la versión original.

c)   Si el programa anterior es parte de una aplicación en la que el acceso a los arrays x[i][j],

y[i][j], z[i][j] supone el 30% del tiempo total de ejecución de la aplicación, calcular la

ganancia de velocidad (speedup) de la aplicación cuando se introduce el intercambio de

bucles.

 NOTA: Se supone que todas las referencias del programa a los arrays x[i][j], y[i][j], z[i][j] son

convertidas por el compilador en accesos al sistema de memoria (MC-MP), sin la utilización

de registros internos.

PROBLEMA 7

Se desea conectar a un microprocesador de 32 líneas de dirección (A31...A0) una memoria

ROM de 8 Kpalabras y una memoria RAM de 128 Kpalabras de manera tal que la ROM se

ubique en la zona más baja del espacio de direcciones y la RAM en las direcciones contiguas

a la ROM. Calcular las funciones lógicas de selección respectivas.

PROBLEMA 8

Un computador dispone de 128 MB de memoria virtual, 16 MB de memoria principal y

128 KB de memoria cache. Se pide:

a)   Indicar la codificación de la dirección de la memoria virtual para los siguientes casos:

Memoria virtual paginada con tamaño de página de 4 MB.

Memoria virtual segmentada con tamaño máximo de segmento de 16 MB.

Memoria virtual paginada segmentada con páginas de 4 MB y tamaño máximo del seg-

mento de 16 MB.

480   Problemas de fundamentos y estructura de computadores

Page 497: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 497/569

b)   Si la memoria cache presenta 2 vías y un tamaño del marco de bloque de 16 KB, además

de los siguientes valores de las tablas de memoria virtual (re-emplazamiento FIFO) y

memoria cache (re- emplazamiento LRU). Indicar detalladamente qué ocurre cuando se

accede consecutivamente a las siguientes direcciones de memoria virtual: 5A341B1,

0404AFF, 10FFFFF.

N.o pág. M pág. FIFO Etiqueta Conj. Vía LRU

16 0 2 23 0 0 1

5A 1 3 10 0 1 0

52 2 0 43 1 0 0

04 3 1 18 1 1 1

23 2 0 1

52 2 1 0

04 3 0 0

23 3 1 1

c)   Indicar el conjunto de direcciones tanto de memoria principal como de memoria virtual

del marco de bloque con etiqueta 04.

Capítulo 12   Memoria   481

Page 498: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 498/569

a

Page 499: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 499/569

Al diseñar un computador, uno de los puntos a tener en cuenta es el diseño del sistema de

entrada-salida, ya que de él dependerá el rendimiento con el que el computador se comunicará

con los periféricos, y en definitiva, con el mundo exterior. En la siguiente figura se ilustra un

esquema general de entrada/ salida.

Antes de empezar a hablar sobre lo que son los métodos y técnicas de entrada y salida de

datos debemos conocer los principios de éstas, por lo cual es conveniente hablar sobre el me-

dio de transporte de la información, tal y como lo es el bus de direcciones, para que una vez

Page 500: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 500/569

comprendido el concepto de éste nos sea más fácil entender los términos y el contenido en

general sobre la entrada y salida de datos.

13.1 Bus de direccionesEs utilizado por el microprocesador para señalar la celda de memoria (o el dispositivo de E/ S)

con el que se quiere operar. El tipo de operación será de lectura o de escritura y los datos

implicados viajarán por el bus de datos.

Por él circula la expresión binaria de la dirección de memoria a la cual el microprocesador

quiere acceder. Tiene sentido de flujo unidireccional desde el microprocesador hacia la me-

moria. Una vez localizados los datos perdidos, su transmisión hacia el microprocesador (o

hacia donde sea) se hará a través del bus de datos.

Los dispositivos de E/ S intercambian la información con el microprocesador mediante los

puertos de E/ S. Cada puerto está asociado con un determinado dispositivo y tiene una direc-

ción que lo identifica.El ancho de este bus también es una medida de la potencia del microprocesador, ya que

determina la cantidad de memoria a la que éste puede acceder, es decir, la cantidad de espacio

direccionable. El espacio de direcciones es el rango de valores distintos que el microprocesa-

dor puede seleccionar. La cantidad máxima de direcciones disponibles será 2n, siendo   n   el

número de líneas del bus de direcciones.

13.2 Módulos de E/S

Los periféricos los hay de entrada, de salida y de entrada-salida. Destinados a la comunica-

ción con el ser humano o con otros computadores, pero todos ellos constan de dos partes cla-ramente diferenciadas: el controlador y el dispositivo.

El  controlador   del periférico es el encargado de la comunicación con la CPU. El que

lleva a cabo el protocolo de comunicación y el que realiza la transferencia de datos propiamente

dicha. Los dispositivos de E/ S se conectan al computador a través de un controlador de E / S.

Cada controlador está a cargo de un tipo específico de dispositivo.

Dependiendo del controlador, pueden estar varios dispositivos conectados al mismo

controlador.

El controlador se encarga de mover datos entre el dispositivo periférico que controla y

el buffer de almacenamiento local. El tamaño del buffer varía de un controlador a otro y

depende del dispositivo que controla.El dispositivo es realmente el periférico, electrónico una memoria USB, electromecánico

como un disco duro, un transductor como en el caso de los sensores de temperatura o movi-

miento.

13.3 Gestión de la comunicación CPU-periféricos

En la gestión de la comunicación de la entrada/ salida se deben tener en cuenta tres aspectos

que detallamos a continuación.

484   Problemas de fundamentos y estructura de computadores

Page 501: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 501/569

13.3.1 Selección del periférico

Identificar el periférico entre todos los disponibles mediante el direccionamiento del mismo.

Para comunicarse con un periférico la CPU debe seleccionarlo, indicar el sentido de la comu-

nicación (lectura o escritura) y enviar los datos. Para seleccionar la dirección de un periférico(comúnmente denominado puerto), la CPU suele utilizar direcciones. Existen dos métodos

generales para ubicar las direcciones de E/ S:

E/S aislada: los espacios de direccionamiento de puertos y de direcciones de memoria

son diferentes por lo que se deberán incluir instrucciones propias de entrada-salida. Por

ejemplo, en el i80x86 posee instrucciones IN y OUT.

E/S localizada en memoria: El espacio de direcciones es común, es decir, tanto di-

recciones de memoria como de puertos de entrada-salida forman un espacio de direc-

ciones común, por lo que las instrucciones del repertorio son las mismas para ambos

tipos de transferencia (por ejemplo, MOVE X, Y para mover dato a registro o dato a

periférico).

13.3.2 Gestión de las señales de control

Determinar para cada tipo de sincronización y cada tipo de selección de periférico el conjunto

de señales de control que deberán ser tenidos en cuenta por la Unidad de Control para la co-

rrecta gestión de la comunicación.

13.3.3 Sincronización con la CPU

Se trata de evitar los problemas surgidos de las diferentes velocidades de trabajo de la CPU y

de los periféricos, de evitar inundar al periférico con datos provenientes de la CPU y evitar

que ésta se quede esperando los datos del periférico.

Son posibles tres técnicas de sincronización:

E/ S programada.

E/ S mediante interrupciones.

E/ S mediante DMA.

13.4 E/S programada

Los datos se intercambian entre la CPU y el módulo de E/ S. La CPU ejecuta un programa que

controla directamente la operación de E/ S, incluyendo la comprobación del estado del dispo-

sitivo, el envío de la orden de lectura o escritura y la transferencia del dato. Cuando la CPU

envía la orden debe esperar hasta que la operación de E / S concluya. Si la CPU es más rápida,

ésta estará ociosa. La CPU es la responsable de comprobar periódicamente el estado del mó-

dulo de E/ S hasta que encuentre que la operación ha finalizado.

Capítulo 13   Entrada/salida   485

Page 502: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 502/569

Algoritmo de lectura y escritura mediante E/S programada para un único periférico.

13.5 E/S mediante interrupcionesLos periféricos avisan a la CPU cuando están listos para ser atendidos. Cuando la interrupción

es aceptada por la CPU, ésta abandona momentáneamente el programa principal para ejecutar

la Rutina de Tratamiento de Interrupciones (RTI)  y realiza la transferencia. Es necesario men-

cionar que antes de que se ejecute la correspondiente RTI se deben deshabilitar el resto de las

interrupciones.

13.5.1 Petición de interrupción

Para realizar la petición de interrupción existen diversas alternativas:

Una única línea de petición de interrupción (INTR): A esta línea se conectan todos los

periféricos.

Varias líneas de petición de interrupción (INTRi): En este esquema cada uno o cada

grupo de periféricos solicitan ser atendidos por una línea diferente.

13.5.2 Reconocimiento de interrupción

A la hora de conceder una determinada petición de interrupción existen varias posibilidades.

486   Problemas de fundamentos y estructura de computadores

Page 503: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 503/569

Por encuesta software: Una vez recibida la petición de interrupción por INTR, la CPU

utiliza un mecanismo de encuesta vía software para identificar el periférico que solicitó

la interrupción.

Una única línea de reconocimiento de interrupción (INTA): En este caso la CPU envía

una señal cableada a todos los periféricos para indicar que se ha concedido la interrup-ción.

Varias líneas de concesión (INTAi): La CPU envía una señal de reconocimiento al nivel

que solicitó la interrupción.

13.5.3 Identificación del dispositivo

Cuando la CPU concede la interrupción por alguno de los mecanismos anteriores, esta debe

identificar el dispositivo que la solicitó para ejecutar la RTI correspondiente. Existen varias

alternativas:

Identificación software: Se dispone de una única RTI que realiza una encuesta a todos

los periféricos para saber qué operaciones debe ejecutar.

Identificación hardware: En este caso cada periférico o nivel (en el caso de tener varias

líneas de petición de interrupción) dispone de un vector o autovector, respectivamente,

a partir de los cuales se calcula la dirección de comienzo de la RTI correspondiente.

Otros: En algunos casos, especialmente en las interrupciones por niveles, se dispone de

una RTI por nivel que se obtiene mediante un vector o autovector. A continuación un

mecanismo de encuesta software suele reconocer el periférico del nivel para ejecutar las

operaciones oportunas.

13.5.4 Prioridades

Existen muchos mecanismos para establecer prioridades entre interrupciones, los más utiliza-

dos son:

Prioridad en orden: Es el orden de la encuesta software o la propagación de la señal

INTA la que determina qué periférico será atendido en primer lugar.

Codificadores de prioridad: Se pueden añadir codificadores de prioridad para establecer

qué interrupción será atendida en primer lugar.

Enmascaramiento selectivo: En algunas ocasiones se puede introducir un registro de

máscara para descapacitar (vía puertas AND, por ejemplo) distintos niveles de interrup-

ciones.

13.6 E/S DMA (Direct Memory Access)

La E/ S con interrupciones, aunque más eficiente que la E/ S programada, también requiere la

intervención de la CPU para transferir datos entre la memoria y el módulo de E/ S.

Sea el siguiente ejemplo: cuando se va a leer una línea desde un monitor, el primer carác-

ter escrito es enviado al computador. Cuando el carácter es recibido por el controlador, éste

Capítulo 13   Entrada/salida   487

Page 504: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 504/569

interrumpe a la CPU. La CPU le da servicio a la interrupción y luego continua con el proceso

que estaba ejecutando. Esto es posible cuando el dispositivo es muy lento comparado con la

CPU. Entre un carácter y otro la CPU lleva a cabo gran cantidad de procesamiento. Pero ¿qué

sucede cuando estamos trabajando con dispositivos de E/ S más veloces? Tendríamos

interrupciones muy seguidas y se estaría desperdiciando mucho tiempo.

Para evitar esto, se utiliza DMA para dispositivos de E/ S de alta velocidad. El controlador

del dispositivo transfiere un bloque de datos desde o para sus buffers de almacenamiento a

memoria directamente sin intervención de la CPU. Sólo se produce una interrupción por blo-

que en lugar de tener una interrupción por cada byte (o palabra).

Por ejemplo, un programa solicita una transferencia de datos. El Sistema de Operación

busca un buffer disponible. El controlador de DMA tiene sus registros actualizados con las

direcciones de la fuente y del destino y la longitud de la transferencia. Por lo general esta

actualización es realizada por el manejador de dispositivo (rutina). Se indica al controlador de

DMA a través de bits de control en un registro de control para que inicie la operación de E / S.

Mientras tanto la CPU puede llevar a cabo otras operaciones. El controlador de DMA

interrumpe la CPU cuando la transferencia ha sido terminada. La CPU interviene sólo al co-

mienzo y al final de la transferencia.

Algunos dispositivos de entrada/ salida envían datos a la memoria más rápido de lo que el

microprocesador puede manejar. El controlador de DMA es un circuito integrado dedicado

que puede enviar y recibir datos más rápido que el microprocesador. Luego, dispositivos co-

mo discos ópticos y magnéticos utilizan este integrado para acceder a la memoria del sistema.

Finalmente, también se dispone de entrada/ salida mediante procesadores de entrada/ sali-

da. En este caso se emplea una CPU secundaria dedicada a la gestión de la operación de entra-

da/ salida.

13.7 Problemas resueltos

PROBLEMA 1

Determinemos el impacto de la sobrecarga de la encuesta en el caso de tres dispositivos

diferentes suponiendo que el número de ciclos que requiere una operación de encuesta es

100 y que el procesador trabaja con un reloj de 50 MHz. Determinar la fracción de tiempo

de CPU que se consume en cada uno de los 3 casos siguientes:

a)   El ratón debe ser encuestado 30 veces por segundo para asegurar que no se pierde

ningún movimiento realizado por el usuario.

b)   El CD transfiere datos al procesador en unidades de 16 bits a una velocidad de

50 KB/ s. No debe perderse ningún dato.

c)   El disco duro transfiere datos en bloques de 4 bytes a una velocidad de 2 MB/ s. No

debe perderse ningún dato.

Solución: 

a)   Ciclos de reloj por segundo para realizar la encuesta%30#100% 3.000 ciclos por se-

gundo.

488   Problemas de fundamentos y estructura de computadores

Page 505: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 505/569

Fracción de ciclos de reloj consumidos por el procesador%3.000

50# 106%0,006%

Por tanto, la encuesta puede ser utilizada para el ratón sin mucho impacto en el rendi-

miento del procesador.

b)   Para el CD, la velocidad a la que se debe preguntar es:

50KB

s

2B

encuesta

%25 Kencuestas

s% 25#210

 encuestas

s

Y por tanto, el número de ciclos es:

25#210

 encuestas

s #100

ciclos

encuesta% 25,6#105

 ciclos

s

Y finalmente:

Fracción consumida por el procesador%25,6# 105

50# 106  % 5%

Aunque el porcentaje es sustancial, aún puede ser tolerado en un sistema de bajas

prestaciones.

c)   Es similar al apartado anterior:

2 MBs

4B

encuesta

# 100ciclos

encuesta% 51,2#106

 ciclos

s

Fracción consumida por el procesador%51,2#106

50#106  ]100%

Por lo tanto la CPU estará totalmente ocupada encuestando al disco.

PROBLEMA 2

Se dispone de un procesador que trabaja con un reloj de 50 MHz y de un CD que transfiere

datos al procesador en unidades de 16 bits a una velocidad de 50 KB/ s. A este sistema se le

añade un controlador de interrupciones tal que el tiempo invertido en una transferencia es

de 100 ciclos de reloj. Determinar la fracción consumida por el procesador cuando el CD

está activo.

Solución: 

La velocidad a la cual el CD debe interrumpir cuando está transfiriendo es:

Capítulo 13   Entrada/salida   489

Page 506: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 506/569

50KB

s

2B

interrupción

#100ciclos

interrupción%2.500# 210

 ciclos

s%25,6# 105

 ciclos

s

Y por tanto:

Fracción consumida por el procesador%25,6# 105

50# 106  % 5%

La gran diferencia con la E/ S programada es que el CD no está leyéndose el 100% del

tiempo y por tanto el dispositivo no perturba a la CPU, al contrario que con la E/ S programa-

da, donde la CPU encuesta sin descanso a los dispositivos. Por ejemplo, si el CD está transfi-

riendo el 10% del tiempo total del sistema, la CPU será perturbada solamente el 0,5%.

PROBLEMA 3

Se dispone de un procesador que trabaja con un reloj de 50 MHz y de un disco duro que

transfiere datos en bloques de 4 bytes a una velocidad de 2 MB / s. A este sistema se le

añade un controlador de DMA. Una transferencia de DMA utiliza 1.000 ciclos de reloj del

procesador, y el tratamiento de interrupción tras la finalización de la transferencia necesita

500 ciclos de reloj. Si la transferencia media del disco es de 4 KB, determinar la fracción

consumida por el procesador cuando el disco duro está activo.

Solución: 

Cada transferencia de DMA utiliza:

4

KB

transf.

2MB

s

%2#10.3  s

transf.

Si el disco está transfiriendo constantemente, éste requiere:

(1.000!500)ciclos

transf.

2#10.3  s

transf.

% 750#103 ciclos

s

Como el procesador es de 50 MHz:

Fracción consumida por el procesador%750# 103

50# 106 %1,5%

PROBLEMA 4

En la siguiente figura se presenta un diagrama con el circuito de gestión de interrupciones

de un sistema de E/ S, tal que la prioridad es ascendente: prioridad   INTR0a INTR1a

a INTR2a INTR3. Determine la expresión lógica que define  INTR.

490   Problemas de fundamentos y estructura de computadores

Page 507: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 507/569

Solución: 

La figura muestra un sistema de gestión de interrupciones. En este caso no nos importa lagestión interna de las prioridades, ya que lo que pide el enunciado es el diseño lógico de la

señal  INTR. Esto es, independientemente de cómo se diseñen las prioridades, se producirá una

solicitud de interrupción siempre que se active alguna de las señales  INTRi  (i%0..3). Dicho

esto la función asociada a  INTR no es más que la suma lógica de las  INTRi:

 INTR% INTR0! INTR1! INTR2! INTR3

PROBLEMA 5

Un computador tiene tres líneas de petición de interrupción de distinta prioridad:

 INTR0a INTR1a INTR2  y tres líneas de aceptación asociadas:  INTA0,  INTA1, INTA2.

a)   Obtener la tabla de verdad de las salidas INTA0,  INTA1, INTA2 en función del valor de

las entradas  INTR0,  INTR1, INTR2.

b)   Diseñar un circuito lógico que implemente ese esquema de prioridades.

Solución: 

El sistema de gestión de interrupciones viene dado por la siguiente figura.

Capítulo 13   Entrada/salida   491

Page 508: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 508/569

a)   La tabla de verdad que resulta según las prioridades indicadas es la siguiente:

INTR 2   INTR 1   INTR 0   INTA2   INTA1   INTA0

0 0 0 0 0 0

1 X X 1 0 0

0 1 X 0 1 0

0 0 1 0 0 1

de donde las funciones de conmutación que se obtienen son las siguientes:

 INTA2% INTR2

 INTA1% INTR1. INTR2

 INTA0% INTR0. INTR1

. INTR2

b)   El circuito lógico que resulta es un sistema combinacional puro simple que tiene la si-

guiente implementación:

PROBLEMA 6

Una CPU dispone de una línea de petición de interrupción ( INTR) y de una línea de acepta-

ción de interrupción ( INTA). Se desea diseñar para esa CPU un controlador de interrupcio-

nes de forma que:

Se pueda atender interrupciones generadas por 3 dispositivos externos mediante lí-

neas de petición de interrupción (ver figura).

Cuando se reciben peticiones de interrupción simultáneas, sólo se reconoce la más

prioritaria. La mínima prioridad la tiene  INTR0  y la máxima  INTR2.

Cada una de estas líneas de interrupción se ha de poder enmascarar de manera selec-

tiva mediante un registro de máscara ( M 2 M 1 M 0) del controlador de interrupciones.

Cuando la CPU activa su línea de aceptación,  INTA, se debe informar al periférico

correspondiente, de manera individual, que su petición ha sido aceptada utilizando

las líneas de aceptación  INTA2,  INTA1, INTA0.

492   Problemas de fundamentos y estructura de computadores

Page 509: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 509/569

Controlador de interrupciones enmascarables.

a)   Obtener la función lógica de las líneas  INTR,  INTA2,  INTA1,  INTA0 en función de las

líneas INTR0,  INTR1, INTR2,  INTA y de los bits del registro de máscara.

b)   Diseñar el circuito lógico del controlador de interrupciones.

c)   Diseñar una conexión de varios controladores de interrupciones de 3 entradas, como el

diseñado en el apartado anterior, para poder atender las peticiones de interrupción de 7

periféricos externos.

Solución: 

a)   La señal INTR  se activa si alguna de las señales  INTRi  se activa y siempre y cuando sucorrespondiente bit de máscara  M i  esté activo:

 INTR% INTR2. M 2! INTR1

. M 1! INTR0. M 0

La obtención de las tres líneas de aceptación   INTAi   es casi inmediata teniendo en

cuenta que:

 INTA2   se activa siempre y cuando la CPU haya concedido la petición, es decir, haya

activado INTA, la petición del dispositivo 2 esté activa ( INTR2% 1) y este nivel no esté

enmascarado ( M 2%1).

 INTA1   se activa si   INTA% 1, si el dispositivo 1 ha solicitado una interrupción

( INTR1% 1 y M 1%1) y el dispositivo 2 no lo ha hecho ( INTR2% 0 o  M 2% 0).

 INTA0   se activa si   INTA% 1, si el dispositivo 0 ha solicitado una interrupción

( INTR0% 1 y  M 0%1) y ni el dispositivo 1 ni el 2 lo han hecho ( INTR1% 0 o M 1%0 y

 INTR2% 0 o M 2% 0).

A esta conclusión también se puede llegar construyendo las tablas de verdad. En cual-

quier caso resulta:

 INTA2% INTA . INTR2. M 2

 INTA1% INTA . INTR1. M 1

. ( INTR2. M 2)

 INTA0% INTA . INTR0. M 0

. ( INTR2. M 2) . ( INTR1

. M 1)

Capítulo 13   Entrada/salida   493

Page 510: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 510/569

b)   La siguiente figura muestra un posible diseño:

c)   La conexión de los controladores puede realizarse como se muestra en la siguiente fi-

gura:

Con la estructura mostrada en la figura anterior, el dispositivo más alejado de la CPU

es el que tiene mayor preferencia.

Cuando se produce una petición por cualquiera de las líneas  INTRi, ésta se propaga

por los controladores intermedios mediante sus líneas originales  INTR2  hasta llegar a la

CPU. De la misma forma, cuando la CPU activa su señal de reconocimiento de interrup-

494   Problemas de fundamentos y estructura de computadores

Page 511: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 511/569

ción INTA, los controladores intermedios propagan esta señal a través de la línea original

de aceptación INTA2.

PROBLEMA 7

Un procesador de 16 bits (direcciones y datos) dispone de una única línea de interrupción

 INTR con vector en la dirección FFFF 16. El procesador no dispone de señal INTA, es decir,

cuando decide conceder una interrupción, vuelca directamente la dirección del vector so-

bre el bus de direcciones. Diseñar un controlador de interrupciones para dotar al procesa-

dor de 4 líneas autovectorizadas   INTR0,  INTR1,  INTR2  e  INTR3   con prioridad ascendente

( INTR0   la menos prioritaria e   INTR3   la más prioritaria) con vectores en las direcciones

FFFC 16,  FFFD16,  FFFE 16 y  FFFF 16 respectivamente.

Solución: 

En este caso cuando el procesador concede una petición de interrupción, vuelca directamente

la dirección del vector (FFFF 16) sobre el bus de direcciones.

Para introducir 4 líneas de petición de interrupción, basta con utilizar un codificador de

prioridad 4 a 2:

Cuatro líneas de petición de interrupción.

De esta forma, si alguna de las líneas  INTRi   solicita una interrupción, el codificador pon-drá su línea de activación ( A) a 1 y en consecuencia se activará  INTR. A continuación, la CPU

volcará la dirección   FFFF 16   sobre el bus de direcciones, dirección que debemos modificar

para obtener el valor correcto en función de la línea que haya solicitado la interrupción

(FFFC 16,   FFFD16,   FFFE 16   y   FFFF 16). Como se puede apreciar, de las cuatro direcciones

sólo habrá que modificar dos de los 16 bits.

Capítulo 13   Entrada/salida   495

Page 512: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 512/569

Page 513: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 513/569

b)   Se resuelvan las prioridades de los distintos niveles.

c)   Se identifique el dispositivo mediante un vector de 8 bits. Describir el funcionamiento

de la unidad diseñada.

Solución: 

Disponemos de cuatro niveles y cuatro dispositivos por nivel. Utilizaremos la siguiente no-

menclatura:

 INTRij  para denotar la petición de interrupción del periférico  j  por el nivel   i.

 INTAij  para denotar el reconocimiento de la interrupción del periférico  j  en el nivel  i.

 INTRi  para denotar la petición de interrupción por el nivel  i.

 INTAi  para denotar el reconocimiento de la interrupción al nivel  i.

Recuerda: La CPU comprueba si hay interrupciones pendientes (línea INTR activada) al

final de la ejecución de cada instrucción. La secuencia básica a seguir es:

1.   El periférico activa INTR.

2.   La CPU activa la confirmación INTA.

3.   El periférico que ha solicitado la interrupción, si recibe INTA, propaga el número de

vector por el bus de datos.

4.   La CPU ejecuta la RTI correspondiente al número de vector recibido.

Este esquema presenta algunas variantes en función del diseño que se lleve a cabo del trata-

miento de interrupciones.

a)   En cuanto a la solicitud de interrupción por el mismo nivel, podemos establecer un es-

quema de prioridad ascendente, es decir, para el nivel   i,   INTRi0a INTRi1a INTRi2a

a INTRi3.

Teniendo todo esto en cuenta, y utilizando codificadores de prioridad, el esquema

hardware para un nivel dado  i  es el que sigue:

El codificador de prioridad codifica la entrada de mayor prioridad activa. Si al menos

una entrada al codificador está activa, entonces  A%1. Si  A%0, significa que todas las

Capítulo 13   Entrada/salida   497

Page 514: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 514/569

entradas al codificador están inactivas. Las salidas  O1 y  O0  las utilizaremos más adelante

para generar el vector de interrupciones. De momento no son necesarias.

b)   Al igual que en el apartado anterior, en cuanto a la solicitud de interrupción por distintos

niveles, podemos establecer un esquema de prioridad ascendente, es decir,

 INTR0a INTR1a INTR2a INTR3

Para resolver la petición de interrupción entre distintos niveles basta con conectar las

salidas INTRi (i% 0..3) del apartado anterior a un nuevo codificador de prioridad, de for-

ma que la salida  A  de este codificador se corresponde con la entrada  INTR a la CPU:

Según la figura, podemos observar que en cuanto uno de los niveles solicita una

interrupción, la entrada  A  se activa y en consecuencia la CPU recibe la notificación (se

activa  INTR).

De la señal  INTA nos ocuparemos en el siguiente apartado.

c)   Una vez que la CPU recibe INTR, ésta activará la señal INTA, y en consecuencia se leerá

el número de vector correspondiente al periférico que solicitó la interrupción.

Con el diseño que hemos venido desarrollando, y dado que se deja en nuestras manos

la elección del número de vector, la codificación del vector va a ser sencilla.

Hasta ahora no hemos utilizado las salidas O1 y  O0 de los codificadores de prioridad,

pero está claro que el número de vector puede tener la forma 0000XXYY, donde XX esla salida del codificador de niveles e YY es la salida del codificador de cuatro periféricos.

Evidentemente INTA debe habilitar la salida de este número de vector. Una posible

implementación por tanto puede ser la que se muestra en la figura de la pagina siguiente.

Como se puede apreciar en dicha figura hemos obviado algunas implementaciones,

como la del multiplexor y algunas agrupaciones de líneas. En cualquier caso podemos

observar cómo la información del número de vector es generada únicamente si  INTA está

activa, debido al búfer triestado de la figura, que es habilitado mediante esta señal.

498   Problemas de fundamentos y estructura de computadores

Page 515: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 515/569

Implementación final.

PROBLEMA 9

Una CPU dispone de 8 líneas de datos, 16 líneas de direcciones, una línea de petición de

interrupción   INTR   y una línea de reconocimiento   INTA. Diseñar un controlador de

interrupciones para dotar a este sistema de 4 niveles vectorizados enmascarables selectiva-

mente, de tal forma que:

Capítulo 13   Entrada/salida   499

Page 516: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 516/569

Los registros que almacenan los vectores forman parte del controlador de interrupcio-nes y pueden leerse y escribirse desde la CPU. Estos registros ocupan las direcciones hexa-decimales FFF0-FFF3.

Lo mismo para el registro de máscara. Su dirección es la  FFF416.

Solución: 

La solución de este problema se puede plantear en dos etapas:

La primera consiste en diseñar el mecanismo de petición y reconocimiento de interrupciones.

La segunda consiste en diseñar el mecanismo de lectura/ escritura de los vectores y delregistro de máscara.

En cualquier caso, el diagrama simplificado del controlador solicitado podría ser el mos-trado en la figura. Este diagrama incluye los registros (de vectores y máscara), las señales depetición y reconocimiento de interrupción, el bus de datos, el bus de direcciones y la señal delectura/ escritura (1r lectura, 0r escritura).

Esquema del controlador de interrupciones.

En primer lugar procedemos con la resolución de peticiones y reconocimiento de interrup-

ciones. En cuanto a la petición de interrupciones, y siguiendo el esquema de problemas ante-

riores, podemos hacer uso de un codificador de prioridad que junto con el registro de máscara

filtre la línea que solicita la interrupción. Es importante destacar que debido a que el registro

de máscara forma parte del controlador no es necesario hacer uso de los buses para solicitar la

información del mismo. Por otro lado, podemos utilizar un mecanismo de prioridad ascenden-

te ( INTR0a INTR1a INTR2a INTR3), con lo que el diseño podría ser el siguiente:

500   Problemas de fundamentos y estructura de computadores

Page 517: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 517/569

Diseño de petición de interrupciones.

Por otro lado, el reconocimiento de interrupción por los distintos niveles ( INTAi) puede

realizarse de múltiples formas. Una de ellas es utilizar un decodificador 2 a 4 con una señal de

capacitación ( E ). Esta señal estará directamente conectada a  INTA, de forma que el decodifi-

cador se pondrá en funcionamiento siempre y cuando la CPU reconozca la petición. Cada

salida del decodificador se corresponde con una línea de reconocimiento de interrupción ( IN-

TAi). El diseño final se muestra en la siguiente figura:

Diseño de solicitud y reconocimiento de interrupciones.

En cuanto a la lectura y escritura de los registros del controlador, el procedimiento consis-

te en conectar los cuatro registros al bus de datos con dos caminos, uno para lectura (del regis-

tro al bus de datos) y otro para escritura (del bus de datos al registro). Un posible esquema

podría ser el de la figura siguiente.

Capítulo 13   Entrada/salida   501

Page 518: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 518/569

Lectura y escritura de los registros. Señales de control.

Por otro lado, ¿cuál es la lógica de las señales de control  MaskRead , MaskWrite, ViRead  y

ViWrite? Con respecto al registro de máscara parece claro que solamente una instrucción del

repertorio podrá hacer las funciones de lectura o escritura. En cuanto a los vectores   V i, la

operación de escritura podrá ser realizada por instrucciones del repertorio, pero la operaciónde lectura podrá hacerse cuando: (a) una instrucción lo requiera o (b) se reconozca una

interrupción ( INTAi% 1), es decir:

ViRead %ViRead’! INTAi

donde ViRead’  denota la lectura del vector por parte de una instrucción.

Finalmente, la activación de las señales de control anteriores debe ir acompañada por las

señales de control de la CPU junto con la dirección correcta en el bus de direcciones. En la

figura se ilustra el procedimiento de activación de dichas señales.

Diseño de activación de las señales de control para lectura (izquierda) y escritura (derecha).

502   Problemas de fundamentos y estructura de computadores

Page 519: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 519/569

Como se puede apreciar en la figura, se activarán las señales de control en función de la

señal  R/ W , (1 lectura, 0 escritura) y de que la dirección suministrada por la CPU ( A15.. A0) sea

la correcta (FFF016 a FFF416).

Finalmente, para resumir, en la siguiente figura se muestra el diseño completo.

Esquema del diseño completo.

Capítulo 13   Entrada/salida   503

Page 520: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 520/569

PROBLEMA 10

Un procesador dispone de ocho líneas de interrupción (numeradas del 0 al 7) y una política

en la que las interrupciones con un número bajo tienen mayor prioridad sobre aquellas de

número más alto. El procesador comienza sin interrupciones pendientes y se produce lasiguiente secuencia de interrupciones: 4, 7, 1, 3, 0, 5, 6, 4, 2, 1. Suponga que la gestión de

una interrupción tarda el tiempo suficiente para que se produzcan dos nuevas interrupcio-

nes y que las interrupciones no se pueden interrumpir entre sí. Calcule el orden en que se

gestionan las interrupciones.

Solución: 

Según el enunciado «la gestión de una interrupción tarda el tiempo suficiente para que se

produzcan dos nuevas interrupciones». Esto significa que mientras se atiende la primera

interrupción (4) se pueden producir hasta dos nuevas interrupciones (7, 1). Después de (4) se

atenderá la de mayor prioridad (1), lo que dará tiempo a dos nuevas interrupciones (3, 0).

Como se está procesando la interrupción 1, las interrupciones pendientes hasta ahora son (7,3, 0). Una forma de resolver este problema es crear una lista de interrupciones pendientes.

Cada vez que el procesador queda libre se gestiona la interrupción pendiente de mayor priori-

dad (que es la de menor número), eliminándola de la lista. En la tabla siguiente se muestra el

orden en que van siendo atendidas las interrupciones, así como las interrupciones solicitadas y

pendientes en cada momento.

Interrupción atendida Interrupciones solicitadas Interrupciones pendientes

4 7, 1 7, 1

1 3, 0 7, 3, 0

0 5, 6 7, 3, 5, 6

3 4, 2 7, 5, 6, 4, 2

2 1 7, 5, 6, 4, 1

La interrupción 4 es la que se gestiona en primer lugar, ya que es la primera en llegar.

Cuando el procesador termina de gestionar la interrupción 4, están pendientes las interrupcio-

nes 7 y 1, por lo que se gestiona la interrupción 1. Repitiendo dicho proceso, se obtiene el

orden de gestión de las interrupciones siguientes: 4, 1, 0, 3, 2. Después de atender la interrup-

ción 2 quedan cinco interrupciones pendientes (7, 5, 6, 4, 1), que se atenderán según su priori-

dad. Es decir, en el orden: 1, 4, 5, 6, 7.Por lo tanto, el orden en el que se gestionan las interrupciones es el siguiente: 4, 1, 0, 3, 2,

1, 4, 5, 6, 7.

PROBLEMA 11

Un controlador de DMA está transmitiendo, mediante robo de ciclos, caracteres a memoria

desde un periférico a una velocidad de 19.200 bps (bits/ s). Por su parte la CPU realiza la

búsqueda de las instrucciones con una velocidad de 2 millones de instrucciones por segun-

504   Problemas de fundamentos y estructura de computadores

Page 521: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 521/569

do (2 MIPS). ¿En qué porcentaje se reduce la velocidad del procesador debido al controla-

dor de DMA?

Suponer una longitud de palabra de M bits y que la CPU emplea, en promedio, N ciclos

para ejecutar una instrucción.

Solución: 

La siguiente figura muestra un esquema de funcionamiento de DMA con robo de ciclo. Cuan-

do el DMA toma el control retiene el bus durante un ciclo, transmite la palabra y libera el bus.

DMA con robo de ciclo.

El controlador de DMA está transmitiendo a una velocidad de 19.200 bps. Como la longi-

tud de palabra es de M  bits, el número de palabras por segundo que se transmiten es:

19.200 bps

 M 

bits

palabra

%19.200

 M 

palabras

segundo

Como en cada ciclo el DMA transmite una palabra completa se produce igual número de

robo de ciclos:

Ciclos robados por segundo%19.200

 M 

ciclos

segundo

¿Cuántas instrucciones deja de ejecutar la CPU cada segundo? Podemos calcularlo tenien-

do en cuenta que la CPU emplea una media de N ciclos en ejecutar una instrucción:

Instrucciones que deja de ejecutar la CPU por segundo%

19.200

 M 

ciclos

segundo

 N ciclos

instrucción

%

%19.200

 M # N 

instrucciones

segundo

Ahora bien, la CPU cuando no dispone de DMA ejecuta 2# 106 instrucciones por segun-

do, por lo tanto, la fracción de instrucciones no ejecutadas es (en porcentaje):

Capítulo 13   Entrada/salida   505

Page 522: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 522/569

% instrucciones no ejecutadas por segundo%

19.200

 M # N 

instrucciones

segundo

2# 106 instrucciones

segundo

#100%

%1.920.000

 M # N #2#106 %%

0,96

 M # N %

Por lo tanto, el porcentaje de reducción nunca será mayor del 0,96%.

PROBLEMA 12

Un computador dispone de una unidad de disco con una velocidad de lectura de 221 pala-

bras por segundo que para transferir su contenido a la memoria principal utiliza DMA por

ráfagas. El controlador de DMA tarda 4 ciclos de reloj en transmitir cada palabra. Cuando

la CPU dispone en exclusiva del bus las instrucciones emplean, en promedio, 8 ciclos dereloj en ser ejecutadas. Si la frecuencia de reloj del computador son 500# 106 ciclos/ s, en

una operación de lectura del disco ¿Cuántas instrucciones por segundo dejan de ser ejecu-

tadas por la CPU?

Solución: 

En un segundo la unidad de disco lee 221 palabras.

Estas palabras necesitan 221 palabras#4 ciclos/ palabra%223 ciclos para transferirse a

memoria cada segundo.

Estos 223 ciclos suponen 223/ 8% 220 instrucciones que la CPU no ejecuta en un segundo.

Esto supone un porcentaje de uso de la CPU de aproximadamente el 0,02%.

PROBLEMA 13

Un controlador de DMA está transmitiendo palabras a memoria mediante la estrategia

transparente. Cuando la CPU dispone en exclusiva del bus las instrucciones emplean, en

promedio, 4 ciclos de reloj en ser ejecutadas, aunque en 2 de ellos no se requiere el acceso

al bus. El controlador de DMA tarda 1 ciclo de reloj en transmitir una palabra. Si la fre-

cuencia de reloj del computador es de 106 ciclos/ s, ¿cuánto tiempo tardará el controlador

de DMA en mover un bloque de datos compuesto por 106 palabras?

Solución: 

El controlador de DMA aprovecha los dos ciclos de reloj en los que la CPU no utiliza el bus

cuando ejecuta una instrucción, para transmitir una palabra. Por tanto, en los 4 ciclos de reloj

que tarda la CPU en ejecutar una instrucción, el controlador de DMA transmite 2 palabras. La

velocidad de transferencia resultante, si el reloj del computador tiene una frecuencia de 10 6

ciclos/ s, es de:

106  ciclos

segundo#

2

4

palabras

ciclo%0,5# 106

 palabras

segundo

506   Problemas de fundamentos y estructura de computadores

Page 523: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 523/569

Con esta velocidad de transferencia, para mover un bloque de 106 palabras el controlador

de DMA tardará:

106 palabras

0,5#106

 palabras

s

% 2 s

PROBLEMA 14

Un computador funciona a una frecuencia de 10 MHz (107 ciclos/ s) con un CPI%4 ciclos y

cada operación de lectura o escritura de memoria tarda un ciclo. Determinar la máxima velo-

cidad de transferencia de datos, en palabras por segundo, para los cuatro casos siguientes:

a)   E/ S controlada por programa que utiliza 3 instrucciones en transferir cada palabra.

b)   DMA con transferencia por ráfagas.

c)   DMA con transferencia por robo de ciclo.

d)   DMA con transferencia transparente suponiendo que en cada instrucción, en prome-

dio, hay 2 ciclos en los cuales la CPU no utiliza el bus.

Solución: 

a) E/S programada

N.o de ciclos para transferir una palabra%3 intrucciones/ palabra# 4 ciclos/ instruc-

ción%12 ciclos/ palabra.

Velocidad del computador 107 ciclos/ segundo.

Velocidad de transferencia máxima%107 ciclos/ segundo / 12 ciclos/ palabra%

%8,3#

10

5

palabras/ segundo.b) DMA por ráfagas

Esta figura muestra un esquema del procedimiento de transferencia por ráfagas.

Esquema de transferencia por ráfagas.

Velocidad de transferencia máxima%107 ciclos/ segundo / 1 ciclos/ palabra%107 pala-

bras/ segundo.

c) DMA por robo de ciclo

A continuación se muestra un esquema de transferencia por robo de ciclo.

Esquema de transferencia por robo de ciclo.

Velocidad de transferencia máxima% 107 ciclos/ segundo / 5 ciclos/ palabra%2# 106

palabras/ segundo.

Capítulo 13   Entrada/salida   507

Page 524: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 524/569

d) DMA transparente

Con esta técnica, el DMA aprovecha los ciclos de la instrucción que no utiliza el bus. La

siguiente figura presenta un esquema de esta transferencia.

Esquema de transferencia de DMA transparente.

Velocidad de transferencia máxima%107 ciclos/ segundo / 2 ciclos/ palabra%5# 106

palabras/ segundo.

PROBLEMA 15

Un periférico con una velocidad de transferencia de 1,5#106 bytes/ segundo se conecta

mediante un DMA a un procesador que tarda una media de 200 nanosegundos en ejecutar

una instrucción. El DMA requiere 10 instrucciones de inicialización y la transferencia de

un byte mantiene ocupados los buses durante 100 nanosegundos. Se quieren transferir 500

bytes. Calcular en DMA con transferencia por robo de ciclo:

a)   El tiempo que se le roba al procesador a la transferencia de los 500 bytes.

b)   El número de instrucciones que podría dedicar el procesador a otro proceso mientrasse realiza la transferencia del bloque de datos.

Solución: 

a)   El tiempo que dedica el procesador a la transferencia será el tiempo de inicialización del

DMA más el tiempo propio de transferencia del DMA.

El tiempo de inicialización del DMA es:

t ini.%10 instr.# 200ns

instr.

%2.000 ns%2  ]s

El tiempo robado por el DMA en la transferencia es:

t robo% 500 B#100ns

B%50.000 ns%50  ]s

El tiempo total robado al procesador será:

T % t ini.! t robo%52  ]s

508   Problemas de fundamentos y estructura de computadores

Page 525: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 525/569

b)   El tiempo que tarda en realizarse la transferencia del bloque de datos una vez que se ha

inicializado el DMA es:

t transf.% 500 B#1

1,5# 106

B

s

%3,33# 10.4 s% 333  ]s

Durante este tiempo, 50  ]s se pierden en robos de ciclo del DMA, luego el tiempo

que podrá dedicar la CPU a la ejecución de otro proceso será de 333  ]s.50  ]s%283  ]s.

En 283  ]s, la CPU puede ejecutar el siguiente número de instrucciones:

 N instr.%283  ]s#1

200

ns

instr.% 1.415 instr.

PROBLEMA 16

Sea un computador capaz de ejecutar 10 MIPS (107 instrucciones por segundo). Se desea

conectar al computador únicamente un periférico con una velocidad de transferencia de20.000 bytes/ segundo y sobre el que se realizan operaciones de lectura de bloques de 1.024

bytes.

Se pretende ver el comportamiento de la pareja computador-periférico ante las diferen-

tes técnicas de entrada-salida (programada, mediante interrupciones y por DMA). Se sabe

que:

La rutina de transferencia de E/ S programada consta de 10 instrucciones.

La rutina de tratamiento de interrupción en la E/ S mediante interrupciones consta de

20 instrucciones.

La rutina de inicialización del DMA consta de 8 instrucciones. Y en cada operaciónde escritura de un dato en memoria el controlador ocupa los buses durante 500 ns.

Se pide indicar el número de instrucciones de otros procesos que puede realizar el com-

putador durante cada uno de los siguientes tipos de E/ S:

a)   E/ S programada.

b)   E/ S mediante interrupciones.

c)   E/ S mediante DMA.

Solución: 

El periférico suministra 20.000 bytes/ segundo, es decir, enviará un byte cada 50  ]s.

Como los bloques son de 1.024 bytes, una operación de E/ S durará:

50  ]s

B#1.024 B%51.200  ]s

La CPU en ese tiempo es capaz de ejecutar:

Instrucciones ejecutadas por la CPU en 51.200  ]s% 107 instr.

s#51.200  ]s%512.000 instr.

Capítulo 13   Entrada/salida   509

Page 526: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 526/569

a)   Al ser entrada-salida programada, la CPU está plenamente dedicada a ejecutar las ins-

trucciones de la rutina de entrada-salida y a realizar encuesta, con lo que no es capaz de

ejecutar ninguna instrucción de otro proceso.

b)   La rutina de interrupción consta de 20 instrucciones.

Esta rutina se ejecuta cada vez que se transfiere un byte.

Número de ejecuciones de la RTI%1.024 B

1B

ejecución

% 1.024 ejecuciones

Lo que supone un total de:

Número de instrucciones de E/ S%1.024 ejecuciones#20instrucciones

ejecución%

%20.480 instrucciones

Esto supone que la CPU podría dedicar tiempo a otros procesos:

512.000 instrucciones. 20.480 instrucciones%491.520 instrucciones

c)   La CPU dedicará el tiempo necesario para poder programar el controlador de DMA. El

DMA emplea robo de ciclo, con lo que el periférico ocupará los buses 500 ns/ B. Con lo

que para leer 1.024 B, tardará:

500 ns/ B# 1.024 B%512.000 ns%512  ]s

Dado que la rutina de inicialización del controlador del DMA consta de 8 instruccio-

nes, podemos aproximar el cálculo a los 512   ]s que se corresponden con los robos de

ciclo.

En ese tiempo, la CPU habrá ejecutado 5.120 instrucciones, que se corresponderán

con el hecho de que durante el robo de ciclo por cada dato, la CPU no puede acceder a los

buses. La CPU podrá ejecutar:

512.000 instrucciones.5.120 instrucciones% 506.880 instrucciones

506.880 instrucciones correspondientes a otros procesos.

Resumiendo:

Tipo de E/S  Instrucciones

totalesInstrucciones

para otros procesos

E/S programada 512.000 0

E/S mediante interrupciones 20.480 491.520

E/S mediante DMA 5.120 506.880

510   Problemas de fundamentos y estructura de computadores

Page 527: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 527/569

PROBLEMA 17

Supongamos dos sistemas de E/ S diseñados para realizar transacciones:

El sistema A soporta 1.500 operaciones de E/ S por segundo.

El sistema B soporta 1.000 operaciones de E/ S por segundo.

Ambos sistemas usan el mismo procesador que puede ejecutar 500 millones de instruc-ciones por segundo. Cada transacción requiere 5 operaciones de E/ S y cada operación deE/ S requiere 10.000 instrucciones. Asumiendo que las transacciones se pueden ajustar almáximo e ignorando tiempos de respuesta, ¿cuál es el máximo número de transaccionespor segundo que cada sistema puede soportar?

Solución: 

La solución es sencilla siempre y cuando apliquemos correctamente las conversiones, para elprocesador tenemos:

1 transac.5 operaciones

# 1 operación10.000 instr.

#500#106 instr.s%50.000 transac.

segundo

Sin embargo cada sistema introducirá un cuello de botella a esta capacidad. El sistema Aadmite 1.500 operaciones de E/ S por segundo, esto implica:

1.500operación

segundo#

1 transac.

5 operaciones%300

transac.

segundo

Mientras que para el sistema B:

1.000operación

segundo#

1 transac.

5 operaciones%200

transac.

segundo

PROBLEMA 18

Considere un computador portátil cuya batería almacena hasta 100.000 julios. Queremos

transferir archivos de 400 MB desde este computador a otro mediante una tarjeta de cone-

xión inalámbrica de 5 Mb/ s.

La tarjeta consume 5 W mientras está transmitiendo. El disco duro consume 6 W cuan-

do gira y 1 W cuando no gira. La potencia consumida por el portátil aparte del disco duro y

la tarjeta de red inalámbrica es de 32 W. Suponga que en promedio el sistema emplea 10 s

en buscar un fichero, que la tasa de transferencia del disco duro es de 50 MB / s, que el

retardo al inicio de una transferencia es de 20 ms, y que el resto del tiempo el disco no gira.

a)   ¿Cuántos archivos completos podemos transferir antes de que se agote la batería del

portátil?

b)   ¿Cuánta energía se requerirá para enviar 100 ficheros?

Solución: 

Potencia consumida por el portátil mientras busca un fichero: 32 W!6 W%38 W.

Potencia consumida por el portátil mientras transfiere un fichero: 33 W !5 W%38 W.

Tiempo empleado en buscar un fichero: 10 s.

Capítulo 13   Entrada/salida   511

Page 528: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 528/569

Tiempo empleado en enviar un fichero: 400 MB / 50 MB/ s%8 s.

Retardo inicial: 20 ms.

Por lo tanto el tiempo total en enviar un fichero es % 10 s!8 s!0,02 s%18,02 s.

Y la energía consumida en enviar un fichero es%

18,02 s#

38 W%

684,76 J/ fichero.a)   El número de ficheros a enviar será la energía total del portátil entre la energía necesaria

para enviar un fichero:

C  100.000 J

684,76J

ficheroD%146 ficheros

b)   La energía necesaria para enviar 600 archivos será:

100 ficheros#684,76J

fichero% 6.847,6 J

PROBLEMA 19

Un formato típico de los disquetes de 3,5 pulgadas tiene 2 superficies, 80 cilindros, 18

sectores por pista y 512 bytes por sector.

a)   Calcular su capacidad total.

b)   Suponiendo que el disco gira a 360 r.p.m., ¿cuál será su velocidad de transferencia?

Solución: 

a)   2 superficies#80 pistas/ superficie#18 sectores/ pista#512 B/ sector%10.474,560 B%

%

1,40 MB.b)   La velocidad de transferencia es:

V t %b

t t %P# f 

donde   b   representa el número de bytes que se desean transferir,   t t   es el tiempo que se

emplea en la transferencia, P  el número de bytes que hay en una pista y   f   la velocidad de

rotación en revoluciones por segundo. Así,

V t %512#18#360

60%55.296

B

s

PROBLEMA 20

Calcular el tiempo medio de lectura o escritura de un sector de 512 bytes en un disco duro

que gira a 4.500 r.p.m. suponiendo que:

El tiempo medio de posicionado es de 20 ms.

La velocidad de transferencia es de 2 MB/ s.

La sobrecarga debida al controlador es de 2 ms.

No existe tiempo de espera porque el disco está desocupado.

512   Problemas de fundamentos y estructura de computadores

Page 529: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 529/569

Solución: 

El acceso medio de lectura es igual al tiempo medio de posicionado! retardo medio de rota-ción (se corresponde con la rotación de medio disco) ! tiempo de transferencia! sobrecargadel controlador.

El retardo medio de rotación, dato no proporcionado en el enunciado es:

0,5 rotación / 4.500 r.p.m.% 0,5/ (4.500 r.p.m. / 60 s/ min)%6,7 ms

Utilizando el tiempo medio de posicionamiento la respuesta es:

20 ms!6,7 ms!0,5 KB

2,0MB

s

!2 ms% 20!6,7!0,2! 2%28,8 ms

PROBLEMA 21

Un disco magnético tiene dos superficies. El área de almacenamiento en cada superficietiene un radio interior de 1 cm y un radio exterior de 5 cm. Si bien el tamaño de cada pista

es diferente, cada una de ellas almacena el mismo número de bits. La densidad de almace-

namiento máximo que soporta este disco es de 10.000 bits/ cm. El espaciado entre puntos

correspondientes en pistas adyacentes es de 0,1 mm, lo que incluye además el espaciado

entre pistas. Supóngase despreciable el espaciado entre sectores. Se pide:

a)   ¿Cuál es el máximo número de bits que se puede almacenar en el disco?

b)   Suponiendo que el disco tiene la capacidad de almacenamiento anteriormente calcula-

da, ¿cuál es la velocidad de transferencia de datos desde el disco a la cabeza de lectu-

ra/ escritura en bits/ s si el disco gira con una velocidad de rotación de 3.600 r.p.m.?

Para realizar este cálculo suponga que el disco no tiene entrelazado y que en un deter-

minado instante sólo se puede acceder a una de las superficies del disco.

Solución: 

a)   Desde el punto de vista del almacenamiento de la información, se considera que cadasuperficie del disco está constituida por un conjunto de pistas a lo largo de las cuales seva almacenando la información con una densidad lineal de almacenamiento de 10.000bits/ cm.

Diagrama de superficies, sectores y pistas.

Cada pista del disco magnético se divide en sectores. Como el enunciado indica ex-

plícitamente que se supone despreciable el espaciado que hay entre los sectores, no hay

Capítulo 13   Entrada/salida   513

Page 530: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 530/569

que considerar en lo que sigue la subdivisión de las pistas en sectores, y por lo tanto, lainformación se distribuye regularmente a lo largo de cada pista con la densidad linealdada.

Anchura de la zona de almacenamiento.

Los pasos a seguir para el cálculo de la capacidad son los siguientes:

1.   Número de pistas que contiene cada superficie:

Para calcular este número se dispone de la anchura de la zona de almacenamiento,

que es:

r 2. r 1%4cm

superficie% 40

mm

superficie

y del espaciado entre pistas adyacentes, que es 0,1 mm (lo que equivale a 10 pistas/ mm).

El número de pistas de almacenamiento es:

40mm

superficie#10

pistas

mm%400

pistas

superficie

2.   El enunciado señala que cada pista contiene el mismo número de bits. La pista

más interna tiene la menor capacidad de almacenamiento, así pues todas las pistas no

almacenarán más datos que la pista más interna. El número de bits que almacena dicha

pista es:

10.000bits

cm#2#n#1

cm

pista% 2.000#n

bits

pista%62.832

bits

pista

3.   El almacenamiento por superficie es:

62.832bits

pista# 400

pistas

superficie% 8#n#106

  bits

superficie% 25,13#106

  bits

superficie

4.   El almacenamiento en el disco es:

2superficies

disco#25,13#106

  bits

superficie% 16#n# 106

  bits

disco%50,26

Mb

disco

514   Problemas de fundamentos y estructura de computadores

Page 531: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 531/569

b)   En el segundo apartado del problema, se pregunta cuál es la velocidad de transferencia de

datos desde el disco a la cabeza de lectura/ escritura en bits/ s. El disco gira con una velo-

cidad de rotación de 3.600 r.p.m., que es equivalente a 60 r.p.s.

La velocidad de transferencia es igual al número de bits que hay en una pista

(P%62832 bits / pista) multiplicado por la velocidad de rotación en r.p.s. ( f % 60 r.p.s.).

V T %P# f %20.000#n#60%62.832# 60%3,77Mb

s

13.8 Problemas propuestos

PROBLEMA 1

Consideremos un programa que requería de 0,1 segundos para su ejecución sobre un cierto

computador de hace 8 años, de los cuales el 60% se corresponde a tiempo de CPU y el 40%restante se corresponde con operaciones de entrada y salida sobre una cierta interfaz.

Supongamos que dicho programa se ejecuta sobre un nuevo computador de este año y

supóngase asimismo la siguiente evolución desde hace 10 años:

El rendimiento de la CPU se multiplica por dos cada dos años, es decir, se reduce a la

mitad el tiempo de CPU.

El rendimiento de la interfaz de entrada y salida se multiplica por dos cada cuatro años,

es decir, el tiempo necesario para mover la misma información entre la interfaz y la

memoria requiere la mitad del tiempo.

¿Cuál pasa a ser el tiempo de ejecución del programa en el nuevo computador de este año?

PROBLEMA 2

Calcula la interferencia con el procesador de un periférico que recibe bloques de datos de 64

bytes con una velocidad de transferencia de 1 MB/ s. La frecuencia del procesador es de 100

MHz, y el módulo de E/ S de este periférico lo interrumpe cada vez que recibe un bloque,

consumiendo la rutina de tratamiento de la interrupción de este periférico 400 ciclos de proce-

sador.

PROBLEMA 3

Supongamos un disco duro que utiliza el modo de transferencia con las siguientes caracterís-

ticas:

Se transfiere una palabra de 16 bits entre el disco y la interfaz en cada ciclo de reloj, de

periodo 120 ns.

Cada vez que se transfiere un bloque de 512 bytes (un sector) entre el disco y la inter-

faz, ésta solicita una interrupción.

El movimiento de un bloque de datos entre la interfaz y la memoria lo lleva a cabo la

CPU durante la rutina de tratamiento de la interrupción. Esta rutina de servicio tiene un

coste de 4.000 ciclos de reloj en una CPU de frecuencia 1 GHz.

Capítulo 13   Entrada/salida   515

Page 532: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 532/569

¿Cuál es la máxima velocidad de transferencia?

¿Cuál es el porcentaje del tiempo de procesador consumido cuando el disco transfiere a la

máxima velocidad permitida?

Para mejorar la velocidad de transferencia y disminuir a la vez el porcentaje de ocupaciónde la CPU durante las transferencias, se dota a este sistema de un controlador DMA para

transferir directamente datos entre la interfaz de disco y la memoria, a una velocidad máxima

de 100 Mbytes/ s. En este caso, la interrupción simplemente avisa a la CPU del final de la

transferencia, por lo que la RTI tiene poco trabajo que hacer. Supondremos que la RTI consu-

me sólo 40 ciclos de reloj de la CPU en esta situación.

¿Qué porcentaje del tiempo de procesador se consume empleando el modo DMA?

PROBLEMA 4

Supongamos CPUs con bus de direcciones de ancho idéntico. Si una de ellas emplea E/ S ais-lada, y la otra localizada en memoria, ¿cuál podrá acceder a una mayor cantidad de memoria

y por qué?

PROBLEMA 5

Sea una CPU con un único nivel de interrupción por una línea  INTR, una señal de reconoci-

miento   INTA   y una entrada   AVEC  que le indica el tipo de la interrupción ( AVEC % 1 si es

autovectorizada y  AVEC %0 si es con vector de usuario). La señal  INTA  sólo se activa si la

interrupción es de usuario ( AVEC %0).

a)   Diseñar la lógica de control de interrupciones necesaria para dotar a un computador basa-do en dicha CPU de 8 niveles de interrupción, 4 autovectorizadas y 4 vectorizadas o de

usuario. Asignar las prioridades de modo que el nivel 3 sea el más prioritario en cada

caso, y las autovectorizadas más prioritarias que las de usuario.

b)   En el caso de interrupciones autovectorizadas diseñar la lógica necesaria para generar un

autovector distinto por cada nivel.

c)   En el caso de interrupciones de usuario diseñar la lógica para la resolución de prioridades

entre los dispositivos de un mismo nivel y para el envío del vector almacenado en el

dispositivo. Suponer el flag de petición de interrupción almacenado en un biestable, y el

número de vector en un registro de 8 bits.

PROBLEMA 6

El sistema de E/ S de un computador puede ejecutar transferencias DMA tanto en modo robo

de ciclo como en modo ráfaga. La latencia de atención a peticiones DMA es de 9 ciclos, el

número de instrucciones de una rutina de programación de una transferencia DMA es de 437

y el CPI medio es de 5 ciclos. El tiempo de transferencia de un bloque DMA de 16 bytes es

de 28 ciclos. Determinar el tiempo total en ciclos invertido en realizar una transferencia de

512 bytes en ambos modos.

516   Problemas de fundamentos y estructura de computadores

Page 533: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 533/569

PROBLEMA 7

Calcula la interferencia con un procesador a 2 GHz de un periférico que recibe bloques de

datos de 2 KB con una velocidad de transferencia de 512 MB/ s, en los siguientes casos:

a)   Se utiliza un DMA donde se consumen 900 ciclos en la programación del DMA y 100 enla interrupción final.

b)   Se utiliza E/ S con interrupciones y el módulo de E/ S de este periférico interrumpe al

procesador cada vez que recibe una palabra (32 bits/ palabra). La rutina para el tratamien-

to de la interrupción de este periférico consume 40 ciclos del procesador.

PROBLEMA 8

Un procesador que opera a 200 MHz con un CPI% 4 dispone de un sistema de interrupciones

con un tiempo de reconocimiento de interrupción de 100 ns. Se conecta a un disco magnético

con 128 sectores/ pista y 1.024 bytes/ sector a través del sistema de interrupciones. En cada

interrupción se transmiten 8 bytes utilizando una rutina de tratamiento de interrupciones queejecuta 20 instrucciones. Determinar:

a)   Capacidad de entrada de datos (ancho de banda) máxima en bytes/ segundo a través del

sistema de interrupciones.

b)   Velocidad de rotación máxima a la que podrá operar el disco en r.p.m. (revoluciones por

minuto).

c)   Si el disco se conecta a través de DMA operando por robo de ciclo y cada vez que se le

concede el bus transmite 8 bytes, calcular el tiempo que el DMA roba a la CPU durante

la lectura de un sector.

d)   Porcentaje de tiempo que la CPU dedica a la E/ S durante la operación del DMA si eldisco opera a la velocidad determinada en el apartado b).

PROBLEMA 9

Considere una CPU que ejecuta 300 millones de instrucciones por segundo y que emplea una

media de 50.000 instrucciones de sistema operativo en cada operación de entrada / salida, junto

con un bus de memoria backplane con una velocidad de transferencia de 100 MB / s. Se dispo-

ne de controladores SCSI-2 con velocidad de transferencia de 20 MB/ s que permiten la cone-

xión de hasta siete discos y de unidades de disco con ancho de banda de lectura/ escritura de

5 MB/ s y un tiempo medio de posicionado más latencia de rotación de 10 ms. Suponiendo

que la carga de trabajo consiste en lecturas de bloques de 64 KB (cada bloque se encuentrasecuencialmente en una pista) y que un programa de usuario necesita 100.000 instrucciones

por cada operación de E/ S, encuentre la máxima velocidad de E/ S que puede mantenerse y el

número de discos y controladores SCSI necesarios. Suponga que las lecturas siempre se pue-

den realizar en un disco inactivo, si es que existe (es decir, ignore los conflictos en el disco).

PROBLEMA 10

El CD almacena bloques de 2.352 bytes cada uno, los cuales se reproducen a un ritmo de

75 bloques por segundo cuando almacena audio. Cuando un CD almacena datos, de los

Capítulo 13   Entrada/salida   517

Page 534: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 534/569

2.352 bytes por bloque sólo 2.048 almacenan efectivamente datos mientras que los restan-

tes bytes almacenan códigos de detección y corrección de errores. Una situación intermedia

ocurre cuando el CD almacena vídeo en formato VCD o SVCD, pues en este caso, de los

2.352 bytes totales se emplean sólo 2.324 para almacenar datos.

¿Qué capacidad en Mbytes tiene un CD etiquetado con 74 minutos cuando almacena

audio?

¿Qué capacidad en Mbytes tiene un CD etiquetado con 74 minutos cuando almacena

datos?

¿Qué capacidad en Mbytes tiene un CD etiquetado con 74 minutos cuando almacena

video SVCD?

518   Problemas de fundamentos y estructura de computadores

Page 535: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 535/569

Las distintas unidades funcionales de un computador necesitan comunicarse. Deben existir,

por lo tanto, líneas para interconectar estos módulos.

Figura 14.1.   Líneas definidas para la interconexión de módulos.

Los tipos de transferencias a las que debe dar cobertura la estructura de interconexión son:

ProcesadorTMemoria.

ProcesadorTE/ S.

MemoriaTE/ S (DMA).

Un bus es un canal de comunicación compartido que utiliza un conjunto de líneas para

conectar múltiples subsistemas. Cada cable o línea transmite un único bit de información en

un determinado momento.

Sus ventajas incluyen la versatilidad y el bajo coste.

Una gran desventaja es la aparición de un cuello de botella, limitando la productividad

máxima del sistema.

A la hora de diseñar un sistema de buses, el reto consiste en cubrir la demanda de comuni-

cación del sistema y permitir la conexión de un gran número de dispositivos de E/ S.

Las características deseables de un bus son la heterogeneidad, escalabilidad, baja latencia

y alto ancho de banda.

Page 536: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 536/569

El principal problema en el diseño de un bus es que la velocidad máxima (y por tanto el

rendimiento) está fuertemente limitada por cuestiones físicas, tales como la longitud del bus,

el número de dispositivos conectados. También debe dar soporte a una gran variedad de dis-

positivos con muy distintas latencias y anchos de banda.

14.1 Estructura del bus

Las líneas que componen un bus se pueden clasificar en tres grupos funcionales:

Las líneas de datos  del bus proporcionan el camino para transmitir datos entre los módu-

los del sistema. El número de líneas del bus de datos determina el número máximo de bits que

es posible transmitir al mismo tiempo.

Las líneas de dirección se utilizan para designar (direccionar) la fuente o el destino de los

datos situados en el bus de datos. La anchura del bus de direcciones determina la cantidad

máxima de memoria (y de dispositivos de E/ S) direccionable en el sistema.

Las líneas de control se emplean para gestionar el acceso y el uso de las líneas de datos ydirección, señalizando peticiones y reconocimientos e indicando qué tipo de información pasa

por las líneas de datos.

Figura 14.2.   Esquema de bus.

La clasificación según las características eléctricas es:

Unidireccionales con un transmisor y múltiples receptores.

Unidireccionales con múltiples transmisores y un único receptor.

Bidireccionales.

Algunas líneas de control típicas son: escritura en memoria (Memory Write), lectura de

memoria (Memory Read), escritura de E/ S (I/ O Write), lectura de E/ S (I/ O Read), transferen-cia reconocida (Transfer ACK), petición de bus (Bus Request), cesión de bus (Bus Grant),

petición de interrupción (Interrupt Request), interrupción reconocida (Interrupt ACK), reloj

(Clock), e inicio (Reset).

14.2 Uso básico del bus

Cuando un módulo necesita enviar un dato a otro módulo, se deben realizar las siguientes

acciones:

520   Problemas de fundamentos y estructura de computadores

Page 537: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 537/569

1.   Obtener el uso del bus.

2.   Transferir el dato a través del bus.

Cuando un módulo necesita pedir un dato a otro módulo, se deben realizar las siguientes

acciones:

1.   Obtener el uso del bus.

2.   Transferir la petición al otro módulo mediante las líneas de control y dirección apro-

piadas.

3.   Esperar a que el segundo módulo envíe el dato.

14.3 Clases de buses y jerarquías

Aunque existen muchas clases y jerarquías de buses, generalmente podemos encontrar:

Bus local y bus de sistema:  Son rápidos y de corta longitud, suelen ser buses propietarios

y por tanto diseñados para dispositivos específicos y optimizados para la arquitectura a la quevan destinados.

Bus de expansión o de E/S:   Son buses más largos y por tanto más lentos, suelen tener

especificaciones abiertas y son accesibles por el usuario. En ellos se puede conectar un núme-

ro indeterminado de dispositivos de distintas prestaciones.

Figura 14.3.   Jerarquía de buses.

Capítulo 14   Buses   521

Page 538: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 538/569

14.4 Diseño del bus

Al diseñar un bus, hay que tener en cuenta multitud de parámetros de configuración. A conti-

nuación, se enumeran algunos de estos parámetros:

Tipo de bus Anchura del bus TemporizaciónDedicado Dirección SíncronoCompartido Datos Asíncrono

Número de maestros del bus Tipo de transferencia de datosUno LecturaVarios Escritura

Método de arbitraje Lectura-modificación-escrituraCentralizado Lectura después de escrituraDistribuido Bloque

Transacción partida: Se dividen los eventos del busen peticiones y respuestas. Otro maestro puede usar el bus.

A continuación describimos algunos de estos parámetros de diseño:

14.4.1 Temporización

Bus síncrono:  Entre sus líneas de control se incluye una señal de reloj. El protocolo para la

comunicación es fijo y está gobernado por la señal de reloj. Se asume que los envíos llegan

correctamente.

Ventajas:   Puede funcionar a gran velocidad y se puede implementar con un sistema se-

cuencial sencillo.

 Inconvenientes: No es adecuado para mezclar dispositivos con grandes diferencias de ve-

locidad.

Su diseño tiene que ser muy cuidadoso ya que puede presentar problema el sesgo del reloj

(clock skew). Los buses de memoria suelen ser síncronos.

Figura 14.4.   Lectura síncrona.

Bus asíncrono:  Sin reloj. Las transmisiones de datos se coordinan con un protocolo de hand-

shaking entre emisor y receptor: un evento origina el siguiente, y así sucesivamente.

Ventajas: Permite la conexión de dispositivos de un amplio rango de velocidades diferen-

tes. Escalan mejor tanto con el número de dispositivos como con los cambios tecnológicos en

los mismos. No hay problemas de sesgo de reloj, por lo que permite distancias más largas.

522   Problemas de fundamentos y estructura de computadores

Page 539: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 539/569

 Inconvenientes: Es más lento, debido a la sobrecarga introducida para sincronizar a emi-

sor y receptor. Puede necesitar un cierto número de líneas de control adicionales para imple-

mentar el protocolo. Es más difícil predecir el tiempo que va a llevar una determinada tran-

sacción.

Los buses de E/ S son habitualmente asíncronos.

A continuación ilustramos un ejemplo sencillo acerca de cómo trabajan los buses asíncro-

nos. Consideremos un dispositivo que solicita un dato del sistema de memoria. Consideramos

tres líneas de control: (1) ReadReq utilizada para realizar una petición de lectura, (2)  DataRdy

usada para indicar que el dato está listo en el bus de datos, y (3)  Ack  usada por la otra parte

para indicar la recepción de la señal  ReadReq o  DataRdy.

Figura 14.5.   Protocolo asíncrono «handshaking». Las líneas de mayor grosor son aquellas asertadas 

por el dispositivo (el procesador, por ejemplo), el resto son las controladas por la memoria.

De acuerdo con la figura anterior la secuencia de pasos a seguir es la siguiente:

0. El protocolo comienza con el maestro (el procesador, por ejemplo) poniendo una di-

rección de memoria en el bus de datos y activando la señal de petición de lectura

(ReadReq).

1. El esclavo (la memoria, por ejemplo) ve la petición y coge la dirección de memoria

del bus de datos, activando la señal de aceptación (ACK).

2. El maestro ve activa la señal de ACK y libera el bus de datos y desactiva la señal de

petición de lectura, que sirve de aviso al esclavo.

3. El esclavo ve la desactivación de la señal de petición y contesta asimismo con la de-

sactivación de la señal de ACK.

4. Cuando el esclavo tiene listo el dato a leer lo pone en el bus y activa la señal que

indica que el dato está listo (DataReady).

5. El maestro ve la señal DataReady, con lo que sabe que el dato está listo en el bus y

realiza su lectura. Cuando completa la operación activa la señal de ACK.

6. El esclavo ve la señal de ACK, lo que le dice que el maestro ya tiene el dato leído, y

desactiva la señal DataReady y libera el bus de datos.

7. Por último, el maestro responde a la desactivación de DataReady con la bajada de su

señal de ACK, lo que da por concluida la transmisión.

Capítulo 14   Buses   523

Page 540: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 540/569

14.4.2 Tipos de transferencia de datos

La Figura 14.6 muestra esquemáticamente los distintos tipos de transferencias de datos que

generalmente se pueden dar en un bus.

Figura 14.6.   Tipos de transferencias de datos que generalmente se pueden dar en un bus.

14.4.3 Esquemas de arbitraje

Los esquemas de arbitraje sirven para gestionar el uso del bus por parte de múltiples maestros.

Se deben considerar dos factores a la hora de diseñar un esquema de arbitraje: el tipo de prio-

ridad y la imparcialidad. Una clasificación genérica de técnicas de arbitraje puede ser la si-

guiente:

Arbitraje en serie (daisy chain):  La línea de concesión de bus (GRANT) recorre los dis-

positivos desde el más hasta el menos prioritario. Las prioridades se determinan así en fun-

ción de la posición del dispositivo en el bus.

Arbitraje paralelo centralizado:  Se utilizan múltiples líneas de petición, por las que los

diferentes dispositivos piden acceso al bus de forma independiente. Un árbitro centralizado

selecciona uno de entre los dispositivos que han solicitado el bus y le notifica que ahora es el

maestro del bus.

524   Problemas de fundamentos y estructura de computadores

Page 541: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 541/569

Arbitraje distribuido por autoselección:  Se emplean también múltiples líneas de peti-

ción de bus, pero ahora cada dispositivo determina de forma independiente si él es el solici-

tante de mayor prioridad sin necesidad de un árbitro.

Arbitraje distribuido por detección de colisión:  Cada dispositivo solicita de forma in-

dependiente el bus. En caso de múltiples peticiones simultáneas de bus se produce una coli-

sión. Una vez detectada la colisión se aplica un esquema que determine el dispositivo que será

maestro de bus entre las partes en colisión.

14.4.4 Decisiones de diseño

En cuanto a las decisiones de diseño, la siguiente tabla resume las diferentes decisiones y su

efecto en rendimiento y en el coste:

Opción Alto rendimiento Bajo coste

Ancho de bus Líneas de datos y direcciones

indep.

Líneas de datos y direcciones

multiplexadas

Ancho de datos Más ancho es más rápido Menos ancho es más barato

Tamaño de la

transferencia

Transferencia bloque de múltiples

palabras

Transferencia bloque de una palabra

Maestros de bus Múltiples maestros

(req. arbitraje)

Un único maestro

Transac. partida Sí. Aumenta ancho de banda(necesita varios maestros)

No. Conexión continua más barata(y con menor latencia)

Temporización Síncrono Asíncrono

14.5 Problemas resueltos

PROBLEMA 1

Sea un procesador de 32 bits, con un bus de datos de 16 bits, y con un reloj de 8 MHz. Elprocesador tiene un ciclo de bus cuya duración mínima es igual a cuatro ciclos de reloj.

¿Cuál es la velocidad de transferencia máxima que soporta el sistema?

Solución: 

Tiempo de ciclo%1

8 MHz%125 ns

Ciclo de bus% 4#125 ns%500 ns

Capítulo 14   Buses   525

Page 542: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 542/569

Esto significa que se pueden llegar a transferir 16 bits cada 500 ns, o lo que es lo mismo:

Velocidad de transferencia máxima%2 B

500 ns%

4 MB

s

PROBLEMA 2

Considerar dos microprocesadores con buses de datos de 8 y 16 bits, respectivamente. Los

dos procesadores son idénticos en todo lo demás y sus ciclos de bus son iguales.

a)   Suponiendo que todas las instrucciones y operandos son de dos bytes, ¿en qué factor

difieren las velocidades de transferencia de los dos microprocesadores?

b)   ¿Cuál sería la respuesta si en la mitad de los casos los operandos y las instrucciones

son de un byte?

Solución: 

a)   Durante un ciclo de bus, el microprocesador de 8 bits transfiere 1 byte, mientras que el

micro de 16 bits transfiere dos bytes. Esto implica que el micro de 16 bits duplica la

velocidad de transferencia del micro de 8 bits.

b)   Supongamos que realizamos 100 transferencias de operandos e instrucciones, de las cua-

les 50 son de un byte y 50 son de dos bytes de longitud. El microprocesador de 8 bits

necesita de:

Número de ciclos en el micro de 8 bits% 50! (2# 50)%150

En cambio, el microprocesador de 16 bits necesita:

Número de ciclos en el micro de 16 bits% 50!50%100

Por lo tanto, la velocidad de transferencia de datos difiere en un factor de 1,5.

PROBLEMA 3

Un procesador con un bus de 10 MHz tiene una instrucción de incremento de memoria

directo que suma 1 al valor almacenado en una posición de memoria. La instrucción tiene

cinco etapas: captación del código de operación (4 ciclos de bus), captación de la dirección

del operando (3 ciclos), captación del operando (3 ciclos), suma de 1 al operando (3 ci-

clos), y almacenar el operando (3 ciclos).

a)   ¿En qué porcentaje se incrementa la duración de la instrucción si hemos de insertardos ciclos de bus de espera en cada operación de lectura o escritura de memoria?

b)   Cuando el procesador se encuentra en la etapa de captación de operando cuando el

teclado activa una línea de petición de interrupción. ¿Después de cuánto tiempo entra

el procesador en el ciclo de reconocimiento de interrupción?

c)   Repetir el apartado (a) para el caso en que la operación de incremento necesite 13

ciclos en lugar de 3.

526   Problemas de fundamentos y estructura de computadores

Page 543: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 543/569

Solución: 

a)   Sin los ciclos de espera, la instrucción tarda 16 ciclos de bus.

La instrucción necesita de cuatro accesos a memoria, lo que implica 8 estados de

espera.La instrucción, incluyendo los ciclos de espera tarda 24 ciclos.

Esto supone un incremento del 50%.

b)   El procesador necesita de otros nueve ciclos para completar la instrucción, es decir,

INTA se activará tras:

9# 100 ns% 900 ns

c)   En este caso la instrucción tarda 26 ciclos de bus sin espera y 34 con espera, lo que supo-

ne un incremento del 33%.

PROBLEMA 4Considerar un procesador de 32 bits cuyo ciclo de bus tiene la misma duración que el de

un procesador de 16 bits. Asumir que en promedio, el 20% de los operandos e instruccio-

nes son de 32 bits, el 40% son de 16 bits y el 40% restante son de sólo 8 bits. Calcular la

mejora que se consigue con la captación de instrucciones y operandos con el procesador de

32 bits.

Solución: 

Sea un conjunto de 100 instrucciones y operandos. En promedio, el conjunto está formado por

20 elementos de 32 bits, 40 de 16 bits, y 40 de un byte. El número de ciclos de bus requeridos

por el procesador de 16 bits es:

(2#20)!40!40% 120

Para el procesador de 32 bits es:

20!40!40% 100

Esto provoca una mejora del 16,67%.

PROBLEMA 5

En la operación de lectura síncrona de la Figura 14.7, el módulo de memoria debe situar el

dato en el bus de datos con la suficiente antelación al flanco de bajada de la señal de lectu-ra para asegurar que las señales se han estabilizado. Si el bus de un microprocesador utiliza

un bus de 10 MHz y la señal de lectura empieza a caer en el tercer cuarto del ciclo  T 3:

a)   Determinar la longitud del ciclo de instrucción de una lectura de memoria.

b)   ¿Cuándo debería situarse el dato de memoria en el bus como muy tarde? Suponer un

tiempo de 20 ns para la estabilización de las líneas de datos.

Capítulo 14   Buses   527

Page 544: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 544/569

Figura 14.7.   Temporización síncrona de las operaciones de bus.

Solución: 

a)   Con una frecuencia de reloj de 10 MHz, el periodo de reloj es de 10.7 s% 100 ns, tene-

mos que la longitud del ciclo de lectura de memoria es de 3# 100 ns%300 ns.

b)   La señal de lectura comienza a caer a 75 ns del comienzo del tercer ciclo. Por lo tanto, la

memoria debe ubicar los datos en el bus no más tarde de 55 ns desde el comienzo de  T 3.

PROBLEMA 6

Considerar un microprocesador con la temporización de lectura de memoria de la Figu-

ra 14.7. Después de analizar la situación, un diseñador determina que la memoria no es

capaz de proporcionar el dato a leer en un tiempo inferior a 180 ns.

a)   ¿Cuántos ciclos de espera deben insertarse para conseguir una lectura adecuada de

memoria si el reloj de bus opera a 8 MHz?

b)   Para utilizar los ciclos de espera se añade una línea de estado denominada «READY».

Una vez que el procesador ha activado la señal de lectura debe esperar a que la línea

«READY» se active para intentar leer el dato de las líneas del bus. ¿Durante qué inter-

valo de tiempo hay que mantener la señal «READY» en baja para que el procesador

inserte los ciclos de espera necesarios?

528   Problemas de fundamentos y estructura de computadores

Page 545: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 545/569

Solución: 

a)   El periodo de reloj es de 8 MHz%125 ns. Por lo tanto, necesitamos insertar dos ciclos de

reloj.

b)   Según la figura, la señal de lectura comienza a activarse al comienzo de T 2. Con el objetode insertar dos ciclos de reloj, la línea «READY» debe ser puesta en baja al comienzo de

T 2 y permanecer así durante 250 ns.

PROBLEMA 7

Un microprocesador utiliza la temporización que se muestra en la Figura 14.7 para la escri-

tura en memoria. Su fabricante especifica que la extensión temporal de la señal de escritura

viene dada por  T -50, donde  T  es el ciclo de reloj en nanosegundos.

a)   ¿Cuál es la extensión de la señal de escritura si la frecuencia de reloj del bus es de

5 MHz?

b)   La hoja de características del microprocesador especifica que, tras el flanco de bajadade la señal de escritura, los datos se mantienen válidos durante 20 ns. ¿Durante cuánto

tiempo se mantienen válidos los datos que se van a escribir en memoria?

c)   ¿Cuántos ciclos de espera deberían insertarse si la memoria necesita que los datos se

mantengan válidos durante al menos 190 ns?

Solución: 

a)   Un reloj de 5 MHz se corresponde con un periodo de 200 ns. Por lo tanto, la extensión de

la señal de escritura es de:

Extensión de la señal de escritura%

T .

50 ns%

200 ns.

50 ns%

150 ns

b)   El dato debe permacer válido durante 150 ns! 20 ns% 170 ns

c)   En este caso el dato debe permanecer válido durante 150 ns!190 ns%240 ns.

Esto implica utilizar dos ciclos, o lo que es lo mismo, un ciclo de espera.

PROBLEMA 8

El microprocesador 8088 de Intel tiene una temporización de bus para la lectura similar a

la de la Figura 14.7, pero necesita cuatro ciclos de reloj del procesador. El dato se mantiene

válido en el bus hasta el cuarto ciclo de reloj del procesador. Si la frecuencia de reloj del

procesador es de 8 MHz:a)   ¿Cuál es la velocidad máxima de transferencia de datos?

b)   Repetir el apartado anterior suponiendo que hay que insertar un ciclo de espera por

cada byte transferido.

Solución: 

a)   El periodo de reloj es de 1/ 8 MHz% 125 ns.

Un ciclo de lectura de bus es entonces de: 125 ns# 4%500 ns.

Capítulo 14   Buses   529

Page 546: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 546/569

Esto implica una velocidad de transferencia máxima de:

Velocidad de transferencia máxima%1 byte

500 ns% 2

MB

s

b)   El ciclo de espera extiende el ciclo de lectura de bus a: 125 ns#5% 625 ns.

Por lo tanto:

Velocidad de transferencia máxima%1 byte

625 ns% 1,6

MB

s

PROBLEMA 9

Suponer que tenemos un sistema con las siguientes características:

Un sistema de memoria y bus que soportan acceso a bloques de entre 4 y 16 palabras

de 32 bits.

Un bus síncrono de 64 bits a 200 MHz en el que una transferencia de 64 bits requiere

un ciclo de reloj. El envío de la dirección a memoria también requiere un ciclo de

reloj.

Se necesitan 2 ciclos de reloj entre dos operaciones de bus.

El tiempo de acceso a memoria para las 4 primeras palabras es de 200 ns; cada grupo

adicional de cuatro palabras se lee en 20 ns.

El sistema descrito anteriormente se utiliza para gestionar accesos simultáneos a discos

con una velocidad de transferencia de 50 MB/ s. Calcular el número de transferencias a

disco que se pueden realizar simultáneamente con los dos tamaños de bloque.

Solución: 

1 bloque de 4 palabras de 32 bits

Tiempo requerido para las cuatro primeras palabras:

1 ciclo de reloj para enviar la dirección de memoria

!200 ns / 5 ns/ ciclo% 40 ciclos de tiempo de acceso

!2 ciclos para transferir los datos (4 palabras, cuando el bus soporta 2 palabras implican

2 ciclos)

!2 ciclos de reloj entre operaciones de bus

%45 ciclosPor otro lado, el tiempo empleado en 45 ciclos es:

45 ciclos# 5 ns / ciclo% 225 ns

Lo que da un ancho de banda:

Ancho de banda%

4 palabras#32 bits

palabra

225 ns%

16 B

225 ns%

16# 103 MB

225 s% 71,11

MB

s

530   Problemas de fundamentos y estructura de computadores

Page 547: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 547/569

Como la velocidad de transferencia de disco es de 50 MB/ s, el número máximo de acce-

sos a disco que podemos gestionar es:

Transferencia a disco%71,11 MB/ s

50 MB/ s

% 1

1 bloque de 16 palabras de 32 bits

El procedimiento es parecido al caso anterior, con la excepción de que ahora leeremos 16

palabras consecutivas en memoria, lo que implica que tendremos un tiempo de acceso de 40

ciclos al primer bloque de 4 palabras y de 20 ns / 5 ns/ ciclo%4 ciclos en los restantes 3 blo-

ques de 4 palabras:

Tiempo requerido para el primer bloque de cuatro palabras:

1 ciclo de reloj para enviar la dirección de memoria

!200 ns / 5 ns%40 ciclos de tiempo de acceso

!

2 ciclos para transferir los datos (4 palabras, cuando el bus soporta 2 palabras implican2 ciclos)

!2 ciclos de reloj entre operaciones de bus

%45 ciclos

Por otro lado, el tiempo empleado en 45 ciclos es:

45 ciclos# 5 ns/ ciclo%225 ns

Debemos tener presente que ahora podemos solapar el tiempo de acceso por parte de la

memoria con el tiempo de operaciones de bus. Es decir, si observamos la Figura 14.8, el tiem-

po de acceso del segundo ciclo se puede solapar con el volcado de datos en el bus y el tiempo

de espera del mismo.

Figura 14.8.   Solapamiento del tiempo de acceso con las operaciones de bus.

Esto implica que cada transferencia adicional de bloque consumirá 4 ciclos de reloj.

Tiempo requerido para los tres bloques restantes:! 3#

!2 ciclos para transferir los datos (4 palabras, cuando el bus soporta 2 palabras implican

2 ciclos)

!2 ciclos de reloj entre operaciones de bus

%4 ciclos

Capítulo 14   Buses   531

Page 548: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 548/569

Por otro lado, el tiempo empleado en 4 ciclos es:

4 ciclos# 5 ns/ ciclo%20 ns

Esto hace un total de 225 ns!3#20 ns% 285 ns

Lo que da un ancho de banda:

Ancho de banda%

16 palabras#32 bits

palabra

285 ns%

64 B

285 ns%

64# 103 MB

285 s%224,56

MB

s

Como la velocidad de transferencia de disco es de 50 MB/ s, el número máximo de acce-

sos a disco que podemos gestionar es:

Transferencias a disco%224,56 MB/ s

50 MB/ s% 4

PROBLEMA 10

Suponer que tenemos un sistema con las siguientes características:

Un sistema de memoria y bus que soportan acceso a bloques de entre 4 y 16 palabras

de 32 bits.

Un bus síncrono de 64 bits a 200 MHz en el que una transferencia de 64 bits requiere

un ciclo de reloj. El envío de la dirección a memoria también requiere un ciclo de

reloj.

Se necesitan 2 ciclos de reloj entre dos operaciones de bus.

El tiempo de acceso a memoria para las 4 primeras palabras es de 150 ns; cada grupoadicional de cuatro palabras se lee en 30 ns.

Calcular el ancho de banda y la latencia del sistema al leer 256 palabras mediante

transferencias que usan:

a)   Bloques de 4 palabras.

b)   Bloques de 16 palabras.

Calcular también el número de transacciones de bus por segundo en cada caso.

Solución: 

a) 256/4% 64 bloques de 4 palabras de 32 bits

Tiempo requerido para cada bloque de cuatro palabras: 64#

1 ciclo de reloj para enviar la dirección de memoria

! 150 ns / 5 ns/ ciclo%30 ciclos de tiempo de acceso

! 2 ciclos para transferir los datos (4 palabras, cuando el bus soporta 2 palabras im-

plican 2 ciclos)

! 2 ciclos de reloj entre operaciones de bus

% 35 ciclos

532   Problemas de fundamentos y estructura de computadores

Page 549: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 549/569

Lo que hace un total de:

Ciclos totales%64 bloques#35ciclos

bloque% 2.240 ciclos

Esto implica:

Latencia% 2.240 ciclos#5ns

ciclo%11.200 ns

Transacciones por segundo%64 transacciones

11.200 ns%5,71#106

 transacciones

segundo

Ancho de banda%

64 bloques#4palabras

bloque# 4

B

palabra

11.200 ns% 91,43

MB

s

b) 256/16% 16 bloques de 16 palabras de 32 bitsEl procedimiento es parecido al caso anterior, con la excepción de que ahora leeremos 16

palabras consecutivas en memoria, lo que implica que tendremos un tiempo de acceso de

30 ciclos al primer bloque de 4 palabras y de 30 ns / 5 ns/ ciclo% 6 ciclos en los restantes

3 bloques de 4 palabras:

Tiempo requerido para el primer bloque de cuatro palabras:

1 ciclo de reloj para enviar la dirección de memoria

! 150 ns / 5 ns%30 ciclos de tiempo de acceso

! 2 ciclos para transferir los datos (4 palabras, cuando el bus soporta 2 palabras im-

plican 2 ciclos)

! 2 ciclos de reloj entre operaciones de bus% 35 ciclos

Debemos tener presente que ahora podemos solapar el tiempo de acceso por parte de

la memoria con el tiempo de operaciones de bus. Es decir, si observamos el tiempo de

Figura 14.9.   Solapamiento del tiempo de acceso con las operaciones de bus.

Capítulo 14   Buses   533

Page 550: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 550/569

acceso del segundo ciclo se puede solapar con el volcado de datos en el bus y el tiempo de

espera del mismo.

Esto implica que cada transferencia adicional de bloque consumirá 6 ciclos de reloj.

Tiempo requerido para los tres bloques restantes:! 3#

!2 ciclos de tiempo de acceso

!2 ciclos para transferir los datos (4 palabras, cuando el bus soporta 2 palabras implican

2 ciclos)

! 2 ciclos de reloj entre operaciones de bus

% 6 ciclos

Esto hace un total de 35 ciclos! 3#6 ciclos% 53 ciclos

Este es el número de ciclos empleado en leer un bloque de 16 palabras. Como tene-

mos que leer 16 bloques, da un total de 53 ciclos#16% 848 ciclos.

Con esta información podemos calcular los datos solicitados en el enunciado:

Latencia% 848 ciclos#5ns

ciclo%4.240 ns

Transacciones por segundo%16 transacciones

4.240 ns%3,77#106

 transacciones

segundo

Ancho de banda%

16 bloques#16palabras

bloque

#4B

palabra4.240 ns

% 241,50 MBs

PROBLEMA 11

Suponer que tenemos un sistema de escritura en memoria con las siguientes características:

Un bus síncrono de líneas dedicadas: 32 bits para direcciones y 32 bits para datos. El

bus trabaja a 200 MHz en el que una transferencia de 32 bits requiere un ciclo de

reloj. El envío de la dirección a memoria también requiere un ciclo de reloj.

Se necesitan 2 ciclos de reloj entre dos operaciones de bus.

La primera palabra se escribe en memoria 200 ns después de que la dirección está

disponible; cada escritura adicional se realiza en 20 ns. La transferencia de una pala-

bra y la escritura de la anterior puede superponerse.

Calcular el ancho de banda y la latencia del sistema al escribir 256 palabras de 32 bits

mediante transferencias que usan:

a)   Bloques de 4 palabras.

b)   Bloques de 8 palabras.

534   Problemas de fundamentos y estructura de computadores

Page 551: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 551/569

Solución: 

a) 256/4% 64 bloques de 4 palabras de 32 bits

Tiempo requerido% 64# tiempo de transferencia de 4 palabras%64#

1 ciclo de reloj para enviar la dirección de memoria y la primera palabra simultánea-mente

! 200 ns / 5 ns/ ciclo%40 ciclos de escritura

! 3 ciclos para enviar las tres palabras restantes

! 2 ciclos de reloj entre operaciones de bus

% 46 ciclos

Lo que hace un total de:

Ciclos totales%

64 bloques#

46

ciclos

bloque%

2.944 ciclos

Esto implica:

Latencia% 2.944 ciclos#5ns

ciclo%14.720 ns

Anchos de banda%

64 bloques# 4palabras

bloque# 4

B

palabra

14.720 ns%69,57

MB

s

b) 256/8% 32 bloques de 8 palabras de 32 bits

Tiempo requerido para cada bloque de ocho palabras:

1 ciclo de reloj para enviar la dirección de memoria y la primera palabra simultánea-

mente

! 200 ns / 5 ns%40 ciclos de escritura

! 7 ciclos para enviar las siete palabras restantes

! 4 ciclos de reloj debido a dos operaciones de bus

% 52 ciclos

Que para 32 bloques hacen 1.664 ciclos.Con esta información podemos calcular los datos solicitados en el enunciado:

Latencia% 1.664 ciclos#5ns

ciclo%8.320 ns

Anchos de banda%

32 bloques# 8palabras

bloque#4

B

palabra

8.320 ns%123,08

MB

s

Capítulo 14   Buses   535

Page 552: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 552/569

PROBLEMA 12

Se desea comparar los anchos de banda máximos de un bus síncrono y otro asíncrono. Elbus síncrono tiene un tiempo de ciclo de reloj de 50 ns, y cada transacción del bus requiere1 ciclo de reloj. El bus asíncrono requiere 20 ns para el protocolo de handshaking. Paraambos la sección de datos tiene una anchura de 32 bits. Encontrar el ancho de banda deambos buses cuando realizan lecturas de una memoria de 100 ns. Suponer que siempre selee una palabra.

Solución: 

Analicemos ambos casos:

Bus síncrono

En caso de utilizar un bus síncrono, el proceso de envío de una palabra tiene 3 fases:

1.   Enviar la dirección de memoria (50 ns).

2.   Leer el dato (100 ns).3.   Enviar el dato (50 ns).

Por lo tanto el tiempo total de envío de 32 bits (una palabra) es de 200 ns. Para hallar elancho de banda basta con realizar una sencilla regla de tres:

32 bits

200 ns%

4 Bytes

200#10.9 s%20 MB/ s

Bus asíncrono

Tal y como hemos visto en teoría, en el protocolo de handshaking (ver Figura 14.5) hacen

falta 7 pasos, cada uno de ellos de 20 ns, sin embargo algunos de los pasos pueden solaparse:

Paso 1: la memoria detecta la activación de  ReadReq, lee la dirección que hay en el bus yactiva Ack . Tiempo 20 ns.

Pasos 2, 3 y 4: el periférico libera los buses y desactiva  ReadReq, la memoria activa  Ack para indicar que va a leer y activa  DataRdy  para indicar que tiene el dato. Tiempo máximo(3#20 ns, 100 ns)%100 ns.

Pasos 5, 6 y 7: el periférico detecta  DataRdy y lee los datos, activando al terminar  Ack . Lamemoria ve la activación y libera el bus de datos y desactiva DataRdy. El periférico desactivasu señal de  Ack  indicando que la transferencia ha terminado. Tiempo 3#20 ns% 60 ns.

El tiempo total es de: 180 ns.

Por lo tanto el ancho de banda máximo para transmitir 4 bytes cada 180 ns será:

4 B

180 ns%

4 MB

0,18 s%22,22 MB/ s

PROBLEMA 13

Se desea comparar los anchos de banda máximos de un bus síncrono y otro asíncrono. El

bus síncrono tiene un tiempo de ciclo de reloj de 30 ns. Y cada transacción requiere 1 ciclo

de reloj. El bus asíncrono requiere 25 ns. Para el protocolo de handshaking, en ambos bu-

ses, la sección de datos tiene una anchura de 32 bits.

536   Problemas de fundamentos y estructura de computadores

Page 553: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 553/569

Se pide:

Calcular el ancho de banda de ambos buses cuando realizan lecturas de una memoria

de 60 ns suponiendo que las lecturas siempre son de una palabra.

Solución: 

Bus síncrono

Tiene un ciclo de bus de 30 ns.

El bus síncrono deberá:

1.   Enviar la dirección a la memoria: 30 ns.

2.   Leer la memoria: 60 ns.

3.   Enviar los datos al dispositivo: 30 ns.

El tiempo total será de 120 ns. El ancho de banda máximo para transmitir 32 bits (4 bytes)

cada 120 ns será de:

4 B

120 ns%33,33

MB

s

Bus asíncrono

Tal y como vemos, en el protocolo de handshaking hacen falta 7 pasos (Figura 14.5), cada

uno de ellos de 25 ns, pero los pasos 2, 3 y 4 pueden solaparse con el acceso a memoria.

Paso 1: la memoria detecta la activación de  ReadReq, lee la dirección que hay en el bus y

activa Ack . Tiempo 25 ns.

Pasos 2, 3 y 4: el periférico libera los buses y desactiva  ReadReq, la memoria activa  Ack 

para indicar que va a leer y activa  DataRdy  para indicar que tiene el dato. Tiempo máximo(3# 25 ns, 60 ns)%75 ns.

Pasos 5, 6 y 7: el periférico detecta  DataRdy y lee los datos, activando al terminar  Ack . La

memoria ve la activación y libera el bus de datos y desactiva DataRdy. El periférico desactiva

su señal de  Ack  indicando que la transferencia ha terminado. Tiempo 3#25 ns% 75 ns.

El tiempo total es de: 175 ns. Por lo tanto el ancho de banda máximo para transmitir 4

bytes cada 180 ns será:

4 B

175 ns%22,86

MB

s

PROBLEMA 14

Se dispone de un bus asíncrono de 128 bits (4 palabras) para enviar datos de memoria a un

dispositivo de E/ S. Una petición del dispositivo implica leer 16 palabras de 32 bits de la

memoria. El bus sigue un protocolo de handshaking como el mostrado en la Figura 14.5,

salvo que éste es extendido para que la memoria pueda continuar enviando bloques adicio-

nales de datos hasta que la transacción se complete. Asumiendo que cada comunicación en

el protocolo lleva 20 ns y que el acceso a memoria es de 60 ns, ¿cuánto tiempo lleva com-

pletar una transferencia?, ¿cuál es el ancho de banda de este bus?

Capítulo 14   Buses   537

Page 554: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 554/569

Solución: 

Para realizar una transferencia de 16 palabras, se enviarán 4 bloques de 4 palabras cada uno a

través del bus. En la Figura 14.5, la señal  ReadReq  está destinada al envío de un bloque de

datos a través del bus, no a la transferencia de bloques consecutivos. Es por esto que al proto-

colo original de  handshaking  debemos añadir una línea adicional. Esta línea generalmente es

conocida como «Burst Request» o  BurstReq.

El protocolo de handshaking para bloques consecutivos queda entonces como sigue:

0. El protocolo comienza con el maestro (el dispositivo de E/ S) poniendo una dirección

de memoria en el bus de datos y activando la señal de petición de lectura ( ReadReq y

 BurstReq).

1. La memoria ve ReadReq  y  BustReq y coge la dirección de memoria del bus de datos

(comienzo de las 16 palabras), activando la señal de aceptación ( Ack ).

2. El dispositivo ve activa la señal de Ack  y libera el bus de datos y desactiva la señal de

petición de lectura ReadReq, que sirve de aviso a la memoria, sin embargo  BurstReqpermanece activa.

3. La memoria ve la desactivación de la señal de petición y contesta asimismo con la

desactivación de la señal de Ack .

4. Este paso comienza cuando  BurstReq   está activa y  Ack   está en baja y la memoria

tiene listas las 4 palabras, las pone en el bus y activa la señal que indica que el dato

está listo ( DataRdy).

5. El dispositivo ve la señal DataReady, con lo que sabe que el dato está listo en el bus y

realiza su lectura. Cuando completa la operación activa la señal de  Ack .

6. La memoria ve la señal de Ack , lo que le dice que el maestro ya tiene el dato leído, ydesactiva la señal  DataRdy  y libera el bus de datos.

7. El maestro responde a la desactivación de  DataRdy con la bajada de su señal de  Ack ,

pero continúa con la señal  BurstReq   activa si se deben leer más datos. Por tanto, el

paso 4 será el siguiente si  BurstReq  sigue activa.

8. Si las últimas 4 palabras se han leído, el dispositivo desactiva BurstReq.

Considerando que cada comunicación en el protocolo lleva 20 ns y que el acceso a memo-

ria lleva 60 ns, una transferencia de bus tardará lo siguiente:

Paso 1: 20 ns (la memoria recibe la dirección y comienza su lectura, el dato estará dispo-

nible en el paso 5).

Pasos 2, 3, 4: Será el máximo del tiempo de protocolo o la lectura de memoria, esto es

máximo (3# 20 ns, 60 ns)% 60 nsr4 palabras.

Pasos 5, 6, 7, 4: Comienza el bucle de lecturas, máximo (4#20 ns, 60 ns)% 80 nsr 8

palabras.

Pasos 5, 6, 7, 4: Lo mismo, máximo (4# 20 ns, 60 ns)% 80 nsr12 palabras.

Pasos 5, 6, 7, 4: Lo mismo, máximo (4# 20 ns, 60 ns)% 80 nsr16 palabras.

TOTAL en completar una transferencia: 320 ns.

538   Problemas de fundamentos y estructura de computadores

Page 555: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 555/569

Con lo que podemos calcular el ancho de banda:

Ancho de banda%

16 palabras#4 B

palabra

320 ns%200

MB

s

PROBLEMA 15

La memoria de un computador consta de  N  módulos independientes conectados a un bus

de memoria común. Al comienzo de una operación de escritura en memoria, el bus está

ocupado por las señales de datos, dirección y control durante 20 ns. Durante los 80 ns si-

guientes, el módulo de memoria direccionado completa el ciclo de escritura, aceptando y

almacenando el dato. Las operaciones de los módulos de memoria pueden solaparse pero

sólo puede haber una petición en un instante de tiempo. Indique cuál es el número de mó-

dulos de memoria conectados al bus si la velocidad máxima posible con la que se pueden

escribir los datos en memoria es de 50 Mpalabras/ s.

Solución: 

El ciclo de escritura en los módulos de memoria se muestra gráficamente en la Figura 14.10.

Figura 14.10.   Ciclo de escritura en un módulo de memoria.

El tiempo de ciclo de lectura es de 100 ns. El módulo de memoria utiliza el bus en exclusi-

va durante los primeros 20 ns, mientras que en los restantes 80 ns, cualquier otro módulo

puede hacer uso del bus. Según se indica en el enunciado, la velocidad máxima de escritura en

memoria es de 50 Mpalabras/ s. Considerando que los ciclos de escritura se solapan al máxi-

mo, esa velocidad máxima se corresponde con un número de módulos de memoria mayor que

cuatro.

Figura 14.11.   Ciclo de escritura en 2 módulos de memoria.

Figura 14.11:  N %2

Velocidad máxima de transferencia%2 palabras

100 ns%20

Mpal

s

Capítulo 14   Buses   539

Page 556: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 556/569

Figura 14.12.   Ciclo de escritura en 3 módulos de memoria.

Figura 14.12:  N %3

Velocidad máxima de transferencia%3 palabras

100 ns%30

Mpal

s

Figura 14.13.   Ciclo de escritura en 4 módulos de memoria.

Figura 14.13:  N %4

Velocidad máxima de transferencia%4 palabras

100 ns%40

Mpal

s

Figura 14.14.   Ciclo de escritura en 5 módulos de memoria.

Figura 14.14:  N %5

Velocidad máxima de transferencia%5 palabras

100 ns%50

Mpal

s

540   Problemas de fundamentos y estructura de computadores

Page 557: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 557/569

Figura 14.15.   Ciclo de escritura en 6 módulos de memoria.

Figura 14.15:  N %6

Velocidad máxima de transferencia%

6 palabras

120 ns%

50

Mpal

s

PROBLEMA 16

Se considera un computador con una longitud de palabra de 48 bits. Cada transmisión so-

bre el bus multiplexado necesita 750 ns para activar las diferentes órdenes del protocolo de

comunicación y transmitir el dato por el bus. La velocidad de transferencia desde el disco

es de 107 bits/ s y el tiempo de ciclo de la memoria principal es de 600 ns.

a)   ¿Qué formato del bus se escogería?

b)   Representar el cronograma de los sucesos que tienen lugar durante la transmisión de

una operación de entrada continua desde el disco a la memoria principal.

c)   ¿Qué fracción del ancho de banda de la memoria principal se consume en una opera-

ción de E/ S del disco?

Solución: 

a)   Para elegir un formato de bus, hay que estudiar el tipo de dispositivos que hacen uso de

él; en este caso, la memoria principal y el disco. Ambos dispositivos tienen unas veloci-

dades de transferencia muy distintas.

El tiempo que el disco tarda en disponer de los 48 bits que componen una palabra

completa es:

48 bits

107 bits

s

% 48# 10.7 s%4.800 ns

Este tiempo es mucho mayor que los 750 ns que tarda el bus en transmitir esa palabra

o que los 600 ns que emplea la memoria principal en almacenarla. Es aconsejable utilizar

un bus con temporización asíncrona. Con este tipo de temporización pueden compartir el

bus una mezcla de dispositivos lentos y rápidos. Por otro lado, no es necesario utilizar un

bus dedicado a E/ S ya que una única unidad de disco, al ser tan relativamente lenta, no lo

 justifica.

Capítulo 14   Buses   541

Page 558: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 558/569

b)   En la Figura 14.16 se representa el cronograma de sucesos que tienen lugar durante una

operación de entrada desde el disco a la memoria principal.

Figura 14.16.   Cronograma de transferencia.

Los números del cronograma se corresponden con los siguientes eventos:

1.   El disco finaliza la lectura de una palabra completa y se inicia el proceso de su

transferencia a través del bus. Durante 750 ns se activan las señales del protocolo

de comunicaciones y se coloca el dato en el bus.

2.   Las diferentes señales de protocolo han sido activadas y el dato está estable en el

bus. La memoria comienza a almacenar la palabra, lo que llevará 600 ns.

3.   La memoria finaliza el almacenamiento de la palabra y el dato se puede retirar

del bus. Sin embargo, el siguiente dato todavía no está disponible.

c)   El ancho de banda se puede definir, en este caso, como la máxima velocidad de transfe-rencia.

Para el disco  su valor viene indicado directamente en el enunciado del problema:

 Bdisco%107 bps%

107 bits

s

8bits

byte

%12,5MB

s

El ancho de banda de la memoria  se calcula teniendo en cuenta que es capaz de

almacenar una palabra de 48 bits cada 600 ns.

 Bmem.%48 bits

600 ns%8# 107 bps%10

MB

s

Para calcular la  fracción  basta con dividir ambas cantidades:

 Bdisco

 Bmem.

%

1,25MB

s

10MB

s

%0,125r12,5%

542   Problemas de fundamentos y estructura de computadores

Page 559: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 559/569

En operaciones de E/ S entre la memoria y el disco, tan sólo se produce una ocupaciónde 12,5% de la velocidad de transferencia de la memoria. Esto permitiría a la memoria, sifuera necesario y el bus lo aceptara, atender simultáneamente a varias unidades de disco.

PROBLEMA 17

Un computador tiene un bus de sistema de 64 líneas de datos que trabaja a una frecuenciade 33 MHz.

a)   Determinar cuántos contralores SCSI se pueden conectar al bus antes de saturarlo, te-niendo en cuenta que el bus SCSI tiene 16 líneas de datos y trabaja a una frecuencia de10 MHz.

b)   Al bus SCSI se conectan discos cuya velocidad de transferencia es 7 MB/ s. Determi-nar cuántos discos se pueden conectar al bus SCSI sin llegar a saturarlo.

Solución: 

a) Ancho de bandaEl ancho de banda del bus es:

8B

ciclo# 33#106

 ciclos

s% 264 MB/ s

El ancho de banda del controlador SCSI es:

2 B#10 MHz%20 MB/ s

Por lo tanto se pueden conectar un total de:

264

20

%13 controladores

b) Número máximo de discos

Si el ancho de banda del controlador es de 20 MB/ s, se le pueden conectar un total de:

20

7%3 discos

PROBLEMA 18

Un computador dispone de un canal multiplexor que controla 5 unidades de disco y10 unidades de cinta. Las unidades de disco tienen una velocidad de transferencia de106 bytes/ s, y las de cinta de 2# 105 bytes/ s. Si para la transferencia de un byte del canalmultiplexor a memoria principal se utiliza el bus del sistema durante 200 ns, ¿cuál es lavelocidad máxima de transferencia de E/ S agregada en este sistema?

Solución: 

El canal multiplexor es capaz de atender a varios dispositivos simultáneamente. La máximavelocidad agregada se logrará cuando todos ellos estén transmitiendo.

En este caso, la máxima velocidad de transferencia sería:

5#106!10# 2#105

%7# 106 bytes/ segundo

Capítulo 14   Buses   543

Page 560: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 560/569

Ahora bien, si para transferir un byte hacen falta 200 ns%200# 10.9 s, en un segundosólo se podrá transferir un máximo de

1 s

200#10.9   sB

%1

200

#109 B% 5#106 B

en lugar de los 7# 106 bytes/ segundo que cabría esperar.

Por lo tanto, el bus no es capaz de proporcionar el ancho de banda suficiente. Es decir, lamáxima velocidad agregada viene dada por la limitación en la velocidad de transferencia en-tre el canal multiplexor y la memoria.

PROBLEMA 19

Un sistema tiene la siguiente jerarquía de buses:

Figura 14.17.   Jerarquía de buses.

544   Problemas de fundamentos y estructura de computadores

Page 561: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 561/569

a)   ¿Cuál es la velocidad del bus de sistema?

b)   ¿Cuál es la velocidad de los buses de expansión?

c)   ¿Cuál es la velocidad de los buses de entrada/ salida?

d)   ¿Cuántos controladores SCSI se pueden conectar al bus antes de saturarlo?

e)   ¿Cuántos discos se pueden conectar al SCSI sin llegar a saturarlo?

f)   ¿Cuántos fax-modems pueden conectarse al bus EISA sin llegar a saturarlo?

Solución: 

a)   8 bytes#200 MHz% 1.600 MB/ s

b)   8 bytes# 66 MHz% 528 MB/ s

c)   4 bytes#8 MHz%32 MB/ s

d)   Controlador SCSIr4 B# 20 MHz% 80 MB/ s

e)80

20% 4 discos

f)   56.000 bps%7.000 bytes/ s% 7#103 MB/ s

32# 103

7%4.571 fax/ modems

PROBLEMA 20

Suponer un sistema de arbitraje de 4 dispositivos master conectados a un bus con prioridad

decreciente (Prioridad M1bM2bM3bM4). Considere un tiempo de respuesta de 25ns.

En este sistema se produce la siguiente secuencia: M4 pide el bus en   t % 100 ns y lo

utiliza durante 50 ns, M2 lo pide en  t % 200 ns por 50 ns, M3 en t %330 ns y por 200 ns y

finalmente M1 pide el control del bus en   t %400 ns hasta un nuevo evento. Dibujar el

cronograma del sistema para un protocolo de 3 hilos.

Solución: 

Según el enunciado el esquema de comunicaciones sería el siguiente:

Capítulo 14   Buses   545

Page 562: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 562/569

El proceso de comunicación seguirá los siguientes pasos:

Evento Instante de tiempo (ns)

M4 pide el bus 100

Arbitro recibe req 125

Arbitro envía grant a M1 150

M1 envía grant a M2 175

M2 envía grant a M3 200

M2 pide el bus 200

Arbitro recibe req 225

M3 envía grant a M4 y se activa BUS BUSY 225

M4 libera el bus 275

Arbitro envía grant a M1 300

M1 envía grant a M2 325

M2 controla el bus 325

M3 pide el bus 330

Arbitro recibe req 355M2 libera el bus 375

Arbitro envía grant a M1 400

M1 pide el bus 400

M1 envía grant a M2 425

Arbitro recibe req 425

14.6 Problemas propuestos

PROBLEMA 1

Suponer que tenemos un sistema con las siguientes características:

Un sistema de memoria y bus que soportan acceso a bloques de 4 o 16 palabras de

32 bits.

Un bus síncrono de 64 bits a 200 MHz en el que una transferencia de 64 bits requiere un

ciclo de reloj. El envío de la dirección a memoria también requiere un ciclo de reloj.

Se necesitan 2 ciclos de reloj entre dos operaciones de bus.

El tiempo de acceso a memoria para las 4 primeras palabras es de 200 ns; cada grupo

adicional de cuatro palabras se lee en 20 ns. La transferencia de los datos leídos más

recientemente y la lectura de las siguientes 4 palabras puede superponerse.

Encontrar la latencia y el ancho de banda del bus al leer 256 palabras de memoria conambos tamaños de bloque.

PROBLEMA 2

Suponer que tenemos un sistema con las siguientes características:

Un sistema de memoria y bus que soportan acceso a bloques de palabras de 32 bits.

Un bus síncrono de 64 bits a 200 MHz en el que una transferencia de 64 bits requiere un

ciclo de reloj. El envío de la dirección a memoria también requiere un ciclo de reloj.

546   Problemas de fundamentos y estructura de computadores

Page 563: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 563/569

Se necesitan 2 ciclos de reloj entre dos operaciones de bus.

El tiempo de acceso a memoria para las 4 primeras palabras es de 150 ns; cada grupo

adicional de cuatro palabras se lee en 30 ns.

Encontrar la latencia y el ancho de banda del bus al leer 256 palabras de memoria. Consi-dere tamaños de bloque de 4, 5, 6 ... 16 palabras y representar los datos en una gráfica, anali-

zando los resultados.

PROBLEMA 3

Suponer que tenemos un sistema con las siguientes características:

Un sistema de memoria y bus que soportan acceso a bloques 4 o 16 palabras de 32 bits.

Un bus síncrono de 64 bits a 200 MHz en el que una transferencia de 64 bits requiere un

ciclo de reloj. El envío de la dirección a memoria también requiere un ciclo de reloj.

Se necesitan 2 ciclos de reloj entre dos operaciones de bus.

El tiempo de acceso a memoria para las 4 primeras palabras es de 150 ns; cada grupo

adicional de cuatro palabras se lee en 30 ns.

Encontrar la latencia y el ancho de banda del bus al leer 4, 5, 6, ..., 256 palabras de memo-

ria. Considerar ambos tamaños de bloque y representar los datos en una gráfica, analizando

los resultados.

PROBLEMA 4

Se desea comprobar los anchos de banda máximos de un bus síncrono y otro asíncrono. El bus

síncrono tiene un tiempo de ciclo de reloj de 50 ns, y cada transición de bus requiere un ciclo

de reloj. El bus asíncrono requiere 40 ns para el protocolo de handshaking. En ambos buses, la

sección de datos tiene una anchura de 32 bits. Encontrar el ancho de banda de ambos buses

cuando realizan lecturas de una memoria de 200 ns. Suponger que las lecturas son siempre de

una palabra.

PROBLEMA 5

El microprocesador de ocho bits 8086 de Intel utiliza un bus de 16 bits que puede transferir 2

bytes a la vez, siendo par la dirección del byte menos significativo. Sin embargo, el 8086

permite palabras de operandos alineadas tanto en direcciones pares (even-aligned) como im-

pares (odd- aligned). Si se hace referencia a una palabra alineada en una dirección impar se

necesitan dos ciclos, cada uno de cuatro ciclos de reloj de bus para transferir la palabra. Con-

siderar una instrucción del 8086 que utiliza dos operandos de 16 bits. ¿Cuánto tiempo se tardaen captar los dos operandos según las distintas posibilidades? Considerar una frecuencia de

reloj de 4 MHz y que no hay estados de espera.

PROBLEMA 6

La memoria de un computador consta de 4 módulos conectados a un bus de memoria común.

Cuando se realiza una petición de escritura, el bus está ocupado por las señales de datos, di-

rección y control durante 50 ns. En esos mismos 50 ns y en los 200 ns siguientes, el módulo

de memoria direccionado ejecuta 1 ciclo aceptando y almacenando el dato. Las operaciones

Capítulo 14   Buses   547

Page 564: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 564/569

de los módulos pueden solaparse, pero sólo puede haber una petición por instante de tiem-

po. Si   t C  representa el tiempo de ciclo de escritura, calcular cuál es la velocidad máxima de

escritura.

PROBLEMA 7

Suponer un sistema de arbitraje de 4 dispositivos master conectados a un bus con prioridad

decreciente (Prioridad M1bM2bM3). Considerar un tiempo de respuesta de 25 ns. Se pro-

duce la siguiente secuencia: M3 pide el bus en   t % 100 ns y lo utiliza durante 50 ns, M2 lo

pide en  t %200 ns por 50 ns, M1 en  t % 290 ns y por 75 ns. Dibujar el cronograma del siste-

ma para a) un protocolo de arbitraje de 3 hilos y b) un protocolo daisy-chain.

PROBLEMA 8

Considerar la disposición de las líneas de petición del bus (BR) y de autorización del bus

(BG) mostradas en la Figura 14.18.

Figura 14.18.   Esquema de arbitraje de bus.

a)   ¿Cómo debería el dispositivo generar BR?

b)   Interpretar la entrada BGN.

c)   Generar la salida BGO.

d)   Especificar el cronograma de las señales y la prioridad de cada dispositivo.

e)   Identificar los posibles conflictos que pueden aparecer en este sistema e indicar la manera

de solucionarlos.

PROBLEMA 9

El bus de E/ S de un computador posee un mecanismo de arbitraje por encadenamiento (daisy

chain) y tiene conectados k  dispositivos (d 1, d 2, ..., d k ). Cada dispositivo d i utiliza una fracción

ai  de la capacidad del bus, que tiene un valor normalizado a 1:

0a aia 1, siendok 

;i%1

ai%1

548   Problemas de fundamentos y estructura de computadores

Page 565: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 565/569

a)   ¿Cómo se deberían conectar los dispositivos para conseguir el máximo de la capacidad

media sobrante? Se define la capacidad sobrante de un dispositivo como 1 menos la suma

de las capacidades utilizadas por todos los dispositivos que tienen una prioridad superior.

b)   Comentar brevemente lo que significan esos resultados y dar un ejemplo de cuándo no se

pueden aplicar.

PROBLEMA 30

A continuación se describen varios bloques usados en un sistema de E/ S que tiene un bus

síncrono procesador-memoria que funciona a 200 MHz y uno o varios adaptadores de E/ Spara realizar la interfaz de buses de E/ S al bus procesador-memoria:

Sistema de memoria: Dispone de una interfaz de 32 bits y soporta transferencia de 4 pala-

bras. Dispone de líneas separadas para direcciones y datos. Para las escrituras a memoria

acepta una palabra por ciclo durante 4 ciclos consecutivos y luego requiere de 4 ciclos para

almacenar los datos y estar disponible para una nueva transacción.

DMA: Los adaptadores de E/ S utilizan DMA para transferir los datos entre los buses de

E/ S y el bus procesador-memoria. El controlador de DMA realiza el arbitraje para acceder al

bus procesador-memoria y envía/ recibe bloques de 4 palabras hacia/ desde el sistema de me-

moria. El controlador de DMA puede gestionar hasta 8 discos. La inicialización de una opera-

ción de E/ S (incluidos el posicionamiento y el acceso) requiere de 1 ms, durante el cual el

controlador no puede iniciar un nuevo acceso, aunque sí pueden completarse operaciones pen-

dientes.

Bus de E/ S: El bus de E/ S es síncrono con un ancho de banda de 10 MB / s. El tamaño de

cada transferencia es de 1 palabra.

Discos: Los discos tienen un tiempo de posicionamiento medio más latencia de rotación

de 12 ms. Los discos tienen un ancho de banda para la lectura/ escritura de 5 MB/ s.Encuentre el tiempo necesario para leer un sector de 16 KB del disco a memoria, supo-

niendo que ésta es la única actividad en el bus.

Capítulo 14   Buses   549

Page 566: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 566/569

a

Page 567: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 567/569

Abánades, M. A., Cuesta, A., Granados A., Joglar, N., Martín. D. Exámenes finales: La solu-

ción del profesor . Felipe II Libros, 2007.

Angulo Usategi, J. M.  Sistemas digitales y tecnología de computadores. Paraninfo, 2002.

Baena, C.; Bellido, J.; Molina, A.; Parra, M.; Valencia, M.  Problemas de circuitos y sistemas

digitales. McGraw-Hill, 1997.

Beekman G.  Introducción a la informática. Pearson, 2004. 6.a edición.

Ercegovac, M., Lang, T.  Digital Systems and hardware/  firmware algorithms. John Wiley &

Sons, 1985.

Floyd, T. L.  Fundamentos de sistemas digitales. Prentice Hall, 2006, 9.a edición.

Gajski, D. D.  Principios de diseño digital. Prentice Hall, 1997.

Gascón de Toro, M., Leal Hernández, A., Peinado Bolos, V.  Problemas prácticos de diseño

lógico,  hardware. Paraninfo, 1990.

Hamacher, C., Vranesik, Z., Zaky, F.   Computer Organization. McGraw-Hill, 2002. 5.a edi-

ción.

Hayes, J. B.   Introducción al diseño lógico digital. Addison Wesley, 1996.

Hennessy, J. L., Patterson, D. A.  Computer Architecture.  A Quantitative Approach. Morgan

Kaufmann, 2007, 4.a edición.

Hermida R., Corral A. M. del, Pastor E. y Sánchez F.  Fundamentos de computadores. Sínte-sis, 1998.

Hill, F. J., Peterson, G. R.  Introduction to Switching Theory & Logical Design. John Wiley &

Sons, 1981, 3.a edición.

Irvine, K. R. Lenguaje ensamblador para computadoras basadas en intel. Prentice Hall, 2007,

5.a edición.

Koren, I. Computer arithmetic algorithms, A. K. Peters, 2002, 2.a edición.

Mano, M. Ingeniería computacional:  diseño del hardware. Prentice Hall, 1991.

Page 568: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 568/569

Mano, M. Diseño digital. Prentice Hall, 2003, 3.a edición.

Miguel, P. de y otros.  Problemas de estructura de computadores. Paraninfo, 1990.

Murdocca, M. J., Heuring, V. P.   Principios de arquitectura de computadoras. Prentice Hall,

2002.Ortega J., Anguita M., Prieto A.  Arquitectura de computadores. Thomson-Paraninfo, 2004.

Parhami, B. Computer arithmetic: algorithms and hardware design. Oxford University Press,

2000.

Pastor E. y Sánchez F.  La máquina rudimentaria: un procesador pedagógico. III Jornadas de

Enseñanza Universitaria sobre Informática JENUI’97, junio 1997, págs. 395-402.

Patterson, D. A., Hennessy, J. L.  Computer Organization and Design: The Hardware/Softwa-

re Interface. Morgan Kaufmann, 2005, 3.a edición.

Roth, Charles H.  Fundamentos de diseño lógico. Thomson, 2004, 5.a edición.

Septién, J., Mecha, H., Moreno, R., Olcoz, K.  La familia del MC68000. Lenguaje ensambla-

dor: conexión y programación de interfaces. Síntesis, 1995.

Stallings, W. Organización y arquitectura de computadores. Prentice Hall, 2007, 7.a edición.

552   Bibliografía

Page 569: Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

8/18/2019 Problemas de Fundamentos y Estr - Alfredo Cuesta Infante

http://slidepdf.com/reader/full/problemas-de-fundamentos-y-estr-alfredo-cuesta-infante 569/569