Arquitectura de Computadores Clases 7-10 Diseño de una CPU Básica IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.

Slides:



Advertisements
Presentaciones similares
El modelo de Von Neumann
Advertisements

ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Composición Interna de un Procesador
Computer Architecture Notes Jan 26, 2004 Dusan Kuzmanovic Jimmy Ortegon.
Unidad 2: Organización del CPU
Arquitectura de Computadores
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
CLASE 13.
ARQUITECTURA DE COMPUTADORES
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
[ Arquitectura de Computadores ] ORGANIZACIÓN FUNCIONAL Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadores Clase 2 Algebra Booleana y Número Binarios IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Arquitectura de Computadores Clase 21 Memoria Virtual IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadores Clase 6 Ciclo y Conjunto de Instrucciones IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Arquitectura de Computadores Clase 13 Subrutinas y Manejo de Stack IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Arquitectura de Computadores Clase 12 Instrucciones en lenguaje de máquina IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile.
Arquitectura de Computadores Clase 0 Presentación del Curso IIC 2342 Semestre José Tomás Eterović Pontificia Universidad Católica de Chile Escuela.
ARQUITECTURA DE COMPUTADORES ESCUELA: NOMBRES: Escuela de Ciencias de la Computación Ing. Greyson Alberca P. BIMESTRE: Primero.
Arquitectura Básica de un Ordenador -Ana Mª Torres Ordóñez.
Estructura de un ordenador. Ronald Valverde Zambrano.
Arquitectura Básica de un Ordenador -Ana Mª Torres Ordóñez.
PLACA MADRE DE UNA COMPUTADORA IPCC - INFORMATICA APLICADA- -Baolini María Belén -Camargo Facundo.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
1 MEMORIAS Fundamentos de Informática Ingeniería Técnica Diseño Industrial.
INTRODUCCION A LOS SISTEMAS DE COMPUTO ARQUITECTURA VON NEUMAN Ing. David Gonzalez.
ITESCO – Arquitectura Computadoras L. S. C. A. Raúl Monforte Chulin - MORCH Systems 1.1. Arquitectura básica y sus operaciones. Objetivo: El estudiante.
NOMBRE: ERICK ANTONIO MATA BARBALENA PROF: ING. LEONOR FALCON MATERIA: MICROPORCESADORES TURNO VESPERTINO 27/04/2017.
Organización de computadoras
Unidad 01 Introducción a la computación
Estructuras de interconexión de un computador
Unidad aritmético-lógica
El procesador Diseño del control.
Pipelining Datapath y control.
Datapath para las instrucciones aritméticas y lógicas
Datapath para las instrucciones de brinco
Organización del Computador
Computadora La computadora es una máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicado que requieren una toma rápida de.
Componentes básicos de una computadora
Clase 7 Assembly - Simulador MSX88.
Arquitectura básica de una computadora
Computación Curso 2017.
Creando un solo datapath
Organización del Computador
ORDENADORES Y EL SISTEMA COMPUTACIONAL
INFORMATICA BASICA BIENVENIDAS.
Almacenamiento El computador tiene 2 aspectos
JAVIER ANDRES MARTÀ MARTINEZ CODIGO 37772
PICOBLAZE RESUMEN.
Hardware Description Language
Conceptos básicos.
CONCEPTOS BÁSICOS DE COMPUTACIÓN E HISTORIA
Modelo de Von Neumman U.A.C.M Alejandra Andrade.
.La Computadora. La computadora es una maquina capaz de realizar y controla a gran velocidad cálculos y procesos complicados que requieren una toma.
8. Diseño del Procesador Fundamentos de los Computadores
ARQUITECTURA DEL COMPUTADOR Ing. Diana E. López.
Pipelining Peligros de control.
Microarquitectura Modelo de estudio: Mic-1
Arquitectura de ordenadores
Centro Universitario UAEM Ecatepec Asignatura: Introducción al software base Licenciatura en informática Administrativa Lia 4to semestre Mtra. Patricia.
Sesión 2: Modos de direccionamiento Indirecto, bucles y saltos condicionales Fulgencio Montilla Meoro Universidad Politécnica de Valencia.
El procesador Datapath y control.
Estructura de un equipo microinformático
1 ALU (Unidad aritmético lógica) Registros Unidad de control I/O y buses internos (usualmente 3 estados) I/O y buses internos Los buses I/O son de tres.
Arquitectura de Hardware
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
Transcripción de la presentación:

Arquitectura de Computadores Clases 7-10 Diseño de una CPU Básica IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Objetivos Capítulo 4 : Unidad de Procesamiento Central (CPU) Entender en detalle la arquitectura, diseño y funcionamiento de una CPU básica, a nivel de: Hardware Set de instrucciones Ciclo de ejecución Programación en lenguaje assembler Limitaciones Ser capaz de modificar y ampliar las capacidades de esta CPU a nivel de: Hardware Set de instrucciones Objetivos R.Mitnik 2Arquitectura de Computadores

R.Mitnik Arquitectura de Computadores3 Índice Capítulo 4 : Unidad de Procesamiento Central (CPU) 4.1 Partes de la CPU. 4.2 Ciclo de la Instrucción. 4.3 Conjunto de Instrucciones y tipos de funcionalidad. 4.4 Diseño de una CPU básica. 4.5 CISC/RISC. 4.6 Modos de direccionamiento. 4.7 Instrucciones en lenguaje de máquina. 4.8 Subrutinas y Manejo de Stack. 4.9 Interrupciones de software y hadware.

R.Mitnik 4 Repaso Capítulo 4 : Unidad de Procesamiento Central (CPU) Arquitectura de Computadores Ejecutar Operaciones y Algoritmos Requisitos: Procesar instrucción Leer datos Almacenar Temporalmente los datos ALU – FPU Almacenar Resultados

R.Mitnik 5 Repaso Capítulo 4 : Unidad de Procesamiento Central (CPU) Arquitectura de Computadores Control de Flujo Requisitos: Instruction Pointer Mecanismos de Salto

R.Mitnik 6 Repaso Capítulo 4 : Unidad de Procesamiento Central (CPU) Arquitectura de Computadores Controlar Circuitos Internos Requisitos: Buses internos Señales de control ALU (función) Mux Registros (Load,etc) Contador (Inc, Load,etc)

R.Mitnik Arquitectura de Computadores7 Repaso Capítulo 4 : Unidad de Procesamiento Central (CPU) Instrucciones de transferencias de datos Instrucciones aritméticas Instrucciones lógicas Control de flujo Entrada / Salida Set de Instrucciones Ciclo de la Instrucción

R.Mitnik 8 Partes de la CPU CPU Básica Capítulo 4 : Unidad de Procesamiento Central (CPU) Arquitectura de Computadores

9 IRE PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode CC Clock Mux0Mux1 AB 010 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV 00 OffsetBase CCE S0, S1, S2 S40, S41 S30, S31 ACEIXE WE D in D out S50S51 LDPC, INCPC S10 Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Q1 Address

10 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Address CC

11 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Contador (incrementa con flanco de bajada) Address CC

12 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Registros (almacenan con flanco de bajada) Address CC

13 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Multiplexores Address CC

14 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV ALU (Add, Sub, And, Or, Xor, Shift Right, Shift Left) Address CC

15 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Condition Codes (Carry, Negative, Zero, Overflow) Address CC

16 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Sumador (en complemento de 2) Address CC

17 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV RAM (2048 x 16 bits) Address CC

18 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV EPROM (1024 x 17 bits) Address S0, S1, S2 S40, S41 S30, S31 S50S51 S10 CC

R.MitnikArquitectura de Computadores 19 CPU Básica: Control & Decode

20 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Clock (director de orquesta) Address CC

21 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Bus de Datos (16 bits) Address CC

22 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Bus de Direcciones (11 bits) Address CC

23 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Instrucción (Opcode: 5 bits) Address CC

24 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV ¿Y cómo funciona todo esto? Address CC

25 IRE LDPC, INCPC PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 AB 010 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV 00 OffsetBase CCE ACEIXE WE D in D out a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Address CC

26 IRE LDPC, INCPC PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 AB 010 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV 00 OffsetBase CCE ACEIXE WE D in D out Toda instrucción incluye un FETCH IR = M[pc] PC = PC+1 a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Address CC

27 PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 AB 010 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV 00 OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Flujo de instrucción: LDA A = M[a] a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Address CC

28 0 PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 AB 010 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV 0 OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Flujo de instrucción: LDAI A = M[a+x] a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Address Control & Decode CC

PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 AB 010 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV 00 OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC Flujo de instrucción: LDX X = M[a] a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Address Control & Decode CC

PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 AB S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: STA M[a] = A Address Control & Decode CC

PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 AB S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: STAI M[a+x] = A Address Control & Decode CC

PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 AB S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: STX M[a] = X Address Control & Decode CC

33 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: LIT A = a Address Control & Decode CC

34 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: LIX X = a Address Control & Decode CC

35 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: ADD, SUB, AND, OR, XOR A = A {op} M[a] Address Control & Decode CC

36 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: ADDI, SUBI, ANDI, ORI, XORI A = A {op} M[a+x] Address Control & Decode CC

37 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: SRA, SLA A = A >> 1 (A = A/2) A = A << 1 (A = Ax2) Address Control & Decode CC

38 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: BRA PC = a Address Control & Decode CC

39 Control & Decode AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: BEQ, BNE, BLT, BGE, BLE, BGT, BCS, BOV PC = a (condicional) Address

40 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: JSR X = PC PC = a Address Control & Decode CC

41 AB PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Clock Mux0Mux1 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV OffsetBase CCE ACEIXE IRE WE D in D out LDPC, INCPC a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Flujo de instrucción: RFS PC = X Address Control & Decode CC

42 IRE PC IR ACIX Mux2 Mux3Mux4 Adder ALU RAM Control & Decode Clock Mux0Mux1 AB 010 S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE C, N, Z, OV 00 OffsetBase CCE S0, S1, S2 S40, S41 S30, S31 ACEIXE WE D in D out S50S51 LDPC, INCPC S10 Arquitectura general a: dirección A: acumulador X: reg. índice Condition Code CC: Z, N, C, OV Q1 Address CC

43 Formato de Instrucciones Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

44 Set de Instrucciones Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

45 Control & Decode Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

46 Subrutina de Multiplicación Ejemplo de uso de la CPU: Subrutina de Multiplicación Diseño de una CPU Básica Capítulo 4 : Unidad de Procesamiento Central (CPU)

47 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

48 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

49 Inicio subrutina Salida de subrutina Datos y resultado Instrucciones Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

50 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

51 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

52 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

53 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

54 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

55 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

56 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

57 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

58 byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

59 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

60 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

61 Dirección real en RAM Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

62 Dirección real en RAM Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

63 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

64 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

65 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

66 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

67 Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

68 Código en lenguaje de máquina Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

69 Programa en RAM Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

70 Programa en RAM byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } Programa en C Uso de CPU: Multiplicación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

R.Mitnik Arquitectura de Computadores71 Diseño de una CPU Básica Detalles de la implementación En subrutina no puedo utilizar IX No puedo invocar una subrutina dentro de una subrutina Capítulo 4 : Unidad de Procesamiento Central (CPU)

R.Mitnik Arquitectura de Computadores72 En subrutina no puedo utilizar IX No puedo invocar una subrutina dentro de una subrutina Solución  Stack Pointer Contador que partiera en 7FFh y decreciera con cada JSR y aumentara con cada RFS. Así, el PC lo guardo en memoria en vez de en IX Mux2 necesitaría dos entradas para poder seleccionar el SP Aumentarían en tres bits las palabras del Control & Decode  uno para el Mux2 y otros dos para el Stack Pointer (señal de aumento y de decremento). Detalles de la Implementación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

R.Mitnik Arquitectura de Computadores73 LDXI no está implementado (trivial) Branching indexado no está implementado (trivial) Una Alu con más funciones simplemente requiere de más señales de control (ej: rotate, parity, etc) Detalles de la Implementación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

R.Mitnik Arquitectura de Computadores74 Para aumentar la memoria: Ampliar el bus de direcciones en N bits El bus de datos tendría que ser de 16+N bits (5 de instrucción + (11+N) de direccionamiento) La RAM tendría que ser de (2048*2 N ) x (16+N). El Control & Decode no variaría Todos los Mux y demases tendrían que ser para 11+N bits. Detalles de la Implementación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

R.Mitnik Arquitectura de Computadores75 Esta arquitectura no permite efectuar operaciones directamente entre registros (los dos están en un mismo Mux) Pese a esto se podría guardar el contenido de un registro en otro (instrucción no implementada) Detalles de la Implementación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica

R.Mitnik Arquitectura de Computadores76 Detalles de la Implementación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica IX es de 11 bits dado que es para direccionamiento Sin embargo, perfectamente podría ser de 16 bits y cumplir ambas funciones, direccionar y apoyar para cálculos y datos. LIT y LIX solo pueden cargar palabras de 11 bits (problema sólo para AC)

R.Mitnik Arquitectura de Computadores77 Detalles de la Implementación Capítulo 4 : Unidad de Procesamiento Central (CPU) – Diseño de una CPU Básica Se pueden agregar registros modificando el Control & Decode Aumentar número de salidas Aumentar número de instrucciones

R.Mitnik Arquitectura de Computadores78 Mejoras para esta CPU Diseño de una CPU Básica Capítulo 4 : Unidad de Procesamiento Central (CPU) I/O (Input/Output)? Interrupciones ? Manejo de Stack?

Resumen Capítulo 4 : Unidad de Procesamiento Central (CPU) Diseño de la CPU Básica Arquitectura Hardware Set de instrucciones Ciclo de ejecución Limitaciones del diseño Programación en lenguaje assembler Uso de instrucciones Asociación del código en memoria Código en lenguaje de máquina (representación binaria) Programa en RAM R.Mitnik 79Arquitectura de Computadores Resumen