organización y diseño básico de...
TRANSCRIPT
Unidad 2
Organización y diseño básico de computadoras
Temario● códigos de instrucción
● Registros de la computadora
● Instrucciones de la computadora
● Temporización y control
● Ciclo de instrucción
● Instrucciones de referencia a memoria
● Entradasalida e interrupción
● Descripción completa de una computadora basica
● Diseño de una computadora básica
● Diseño de un acumulador lógico
Organización y arquitectura
● La organización de una computadora se define mediante sus registros internos, la estructura de temporización y control y la secuencia de microoperaciones que ejecuta sobre los datos almacenados es sus registros
● La arquitectura de una computadora es el conjunto de registros e instrucciones que debe conocer un programador para utilizarla
Programa e instrucción● Programa: conjunto de instrucciones que
especifican las operaciones, operandos, y la secuencia mediante la cual tiene que ocurrir el procesamiento
● Instrucción: es un código binario que especifica una secuencia de microoperaciones para la computadora
● Usualmente se forma por dos campos:– código de operación
– operandos
Organización de un programa almacenado
Código de operación
Dirección del operando
012 1115
Operando binario
015
Instrucciones(Programa)
Operandos(Datos)
Memoria de 4096 x 16
Registro del procesador(Acumulador o AC)
015
Operandos
● Formato de 3 operandos
a=b+c suma a,b,c● Formato de dos operendos
a=a+b suma a,b● Formato de un operando
AC=AC+a suma a
Modos de direccionamiento
● Modo de direccionamiento: es la forma en como se obtienen los operandos de una instrucción
● Modo de direccionamiento Inmediato: el operando es una constante y se almacena inmediatamente después del código de operación, en la segunda parte del código de instrucción
● Modo de direccionamiento directo: el operando se encuentra en memoria y su dirección se encuentra inmediatamente después del código de operación.
● Modo de direccionamiento indirecto: el operando esta almacenado en memoria y su dirección se almacena en otra dirección de memoria cuya dirección se encuentra inmediatamente después del código de operación.
SUMA 300
012 1115 14
I
Formato de instrucción
AC
+
Operando
SUMA 457I
AC
+
Operando
1350
Código de operación
Dirección del operando
I
22
457
35
300
1350
direccionamiento indirectodireccionamiento directo
Registros de la computadora
Símbolo Tamaño Nombre Función
DR 16 Registro de datos
AR 12
AC 16 Acumulador Registro del procesador
IR 16 Contiene el código de instrucción
PC 12
TR 16 Registro temporal Contiene datos temporales
INPR 8 Registro de entradaContiene el carácter de entrada
Contiene el operando de la memoria
Registro de dirección
Contiene la direción para la memoria
Registro de instrucciónContador de programa
Contiene la direción de la instrucción
Registros y memoria
PC
AR
11 0
11 0
AC
DR
15 0
15 0
INPROUTR7 07 0
IR
TR
15 0
15 0
Memoria de 4096 x 16
Bus de datos de la computadora
Formatos de instrucción de la computadora básica
Instrucción de entrada y salida
012 1115
1111 Operación de I/O
Instrucción de referencia a memoria
012 1115 14
Código de operación Dirección del operandoI
Instrucción de referencia a registro
012 1115
0111 Operación de registro
Instrucciones de la computadora básica
Código Hexadecimal
Símbolo I=0 I=1 Descripción
AND 0XXX 8XXX
ADD 1XXX 9XXX Sumar la palabra de memoria a ACLDA 2XXX AXXX Cargar la palabra de memoria a ACSTA 3XXX BXXX Almacenar el contenido de AC en la memoriaBUN 4XXX CXXX Brincar en forma incondicional
Aplicar la función and de la palabra de memoria a AC
Instrucciones de la computadora básica (2)
Símbolo Descripción
CLA 7800 Borra ACCLE 7400 Borra ECMA 7200 Complementa ACCME 7100 Complementa ECIR 7080 Rotar AC y E a la derechaCIL 7040 Rotar AC y E a la izquierdaINC 7020 Incrementar ACSPA 7010 Omitir la siguiente instrucción si AC es positivoSNA 7008 Omitir la siguiente instrucción si AC es negativoSZA 7004 Omitir la siguiente instrucción si AC es ceroSZE 7002 Omitir la siguiente instrucción si E es cero
Código Hexadecimal
Instrucciones de la computadora básica (3)
Símbolo Descripción
INP F800 Introducir un carácter en ACOUT F400 Sacar un carácter desde ACSKI F200 Omitir si la bandera de entrada esta puestaSKO F100 Omitir si la bandera de salida esta puestaION F080 Habilitar interrupción
Código Hexadecimal
● El conjunto de instrucciones es completo, pero esta lejos de ser óptimo, ya que faltan operaciones como la OR, XOR, resta, multiplicación, etc.
Control cableado y microprogramado
● Control cableado: la lógica de control se logra mediante compuertas, flip flops y otros circuitos digitales
● Es más rápido pero menos flexible● Control microprogramado: la información de
control esta almacenada en una memoria.● Se puede modificar la operación de una o
más instrucciones modificando la memoria de control
Unidad de control
Ciclo de instrucción
● Buscar una instrucción de memoria(Buscar = Fetch= Leer un código de instrucción)
● Decodificar la instrucción● Leer la dirección efectiva del operando
si es modo de direccionamiento indirecto
● Ejecutar la instrucción
Búsqueda de la instrucciónT0: AR<PCT1: IR<M[AR], PC<PC+1T2: D0...D7 < Decodificar IR(12 a 14), AR<IR(0 a 11), I<IR(15)
Para efectuar T0: AR<PC se debe:●Colocar el contenido de PC dentro del bus haciendo que las señales de selección del bus S2, S1 y S0 sean iguales a 010●Transferir el contenido del bus a AR al habilitar la señal LD de AR
Para efectuar T1: IR<M[AR], PC<PC+1 se debe:●Habilitar la entrada de lectura de memoria●Colocar el contenido de la memoria en el bus al hacer S2S1S0=111●Transferir el contenido del bus a IR al habilitar la entrada LD de IR●Incrementar PC al habilitar la entrada INR de PC
Ciclo T3
AR<M[AR] //direccionamiento indirecto
D7' I T3: AR<M[AR]
D7' I' T3: Nada
D7 I' T3: Ejecutar instrucción de referencia a registro
D7 I T3: Ejecutar instrucción de entrada salida
Ejecución de las instrucciones de referencia a registro
D7 I' T3 = r (Común a todas las instrucciones de referencia a registro)
Instrucción ComentarioTodas r: SC < 0 Regresa a T0CLA rB11: AC < 0 Borra ACCLE rB10: E < 0 Borra ECMA rB9: AC < /AC Complementa ACCME rB8: E < /E Complementa ECIR rB7: Circular a la derechaCIL rB6: Circular a la izquierdaINC rB5: AC < AC +1 Incrementar ACSPA rB4: Si(AC(15) = 0) entonces PC < PC +1 Omitir si AC es positivoSNA rB3: Si(AC(15) = 1) entonces PC < PC +1 Omitir si AC es negativoSZA rB2: Si(AC = 0) entonces PC < PC +1 Omitir si AC es ceroSZE rB1: Si(E= 0) entonces PC < PC +1 Omitir si E es ceroHLT rB0: S < 0 (S es un FF que habilita el reloj) Detener la computadora
IR(i) = Bi [bit i en IR(0..11) que especifica la operación]
microoperación
AC < shr AC, AC(15) < E, E < AC(0)AC < shl AC, AC(0) < E, E < AC(15)
Instrucciones de referencia a memoria
Símbolo Decodificador Descripción simbólicaAND D0 AC < AC and M[AR]ADD D1 AC < AC + M[AR], E < CsalLDA D2 AC < M[AR]STA D3 M[AR] < ACBUN D4 PC < ARBSA D5 M[AR] < PC, PC < AR + 1
ISZ D6 M[AR] < M[AR] + 1Si (M[AR]+1 = 0) entonces PC < PC +1
Ejecución de inst. de ref. a memoria
● AND– D0 T4: DR <M[AR]
– D0 T5: AC < AC and DR, SC < 0
● ADD– D1 T4: DR <M[AR]
– D1 T5: AC < AC + DR, E < Csal, SC < 0
● LDA– D2 T4: DR <M[AR]
– D2 T5: AC < DR, SC < 0
Ejecución de inst. de ref. a memoria (2)
● STA– D3 T4: M[AR] < AC, SC < 0
● BUN– D4 T4: PC < AR, SC < 0
● BSA– D5 T4: M[AR] < PC, AR < AR +1
– D5 T5: PC < AR, SC < 0
Subrutinas
Ejecución de inst. de ref. a memoria (3)
● ISZ– D6 T4: DR < M[AR]
– D6 T5: DR < DR +1
– D6 T6: M[AR] < DR,Si (DR = 0) PC < PC +1,
SC < 0
Instrucciones de entrada y salida
Ejecución de las instrucciones de entrada y salida
D7 I T3 = p (Común a todas las instrucciones de entrada y salida)IR(i) = Bi [bit i en IR(0..11) que especifica la operación]
Instrucción microoperación ComentarioTodas p: SC < 0 Regresa a T0INP pB11: AC(0..7) < INPR, FGI < 0 Introducir carácterOUTP pB10: OUTR < AC(0..7) , FGO < 0 Sacar un carácter
SKI pB9: Si(FGI = 1) entonces PC < PC +1
SKO pB8: Si(FGO = 1) entonces PC < PC +2ION pB7: IEN < 1 habilitar Interrupción
Omitir si haybandera de entradaOmitir si haybandera de Salida
Modificación de la fase de búsqueda
R T0: AR < 0, TR<PCR T1: M[AR] < TR, PC<0R T2: PC<PC+1, IEN < 0, R < 0, SC < 0
R' T0: AR<PCR' T1: IR<M[AR], PC<PC+1R' T2: D0...D7 < Decodificar IR(12 a 14), AR<IR(0 a 11), I<IR(15)
T0' T1' T2' (IEN) (FGI + FGO): R < 1
Activación del flip flop de interrupción
Búsqueda R' T0: AR<PCR' T1: IR<M[AR], PC<PC+1R' T2: D0...D7 < Decodificar IR(12 a 14), AR<IR(0 a 11), I<IR(15)
Indirecto D7' I T3: AR<M[AR]
Interrupción T0' T1' T2' (IEN) (FGI + FGO): R < 1R T0: AR < 0, TR<PCR T1: M[AR] < TR, PC<0R T2: PC<PC+1, IEN < 0, R < 0, SC < 0
AND D0 T4: DR <M[AR]D0 T5: AC < AC and DR, SC < 0
ADD D1 T4: DR <M[AR]D1 T5: AC < AC + DR, E < Csal, SC < 0
LDA D2 T4: DR <M[AR]D2 T5: AC < DR, SC < 0
STA D3 T4: M[AR] < AC, SC < 0BUN D4 T4: PC < AR, SC < 0BSA D5 T4: M[AR] < PC, AR < AR +1
D5 T5: PC < AR, SC < 0ISZ D6 T4: DR < M[AR]
D6 T5: DR < DR +1D6 T6: M[AR] < DR, Si (DR = 0) PC < PC +1, SC < 0
Descripción de la computadora
Descripción de la computadora
D7 I T3 = p (Común a todas las instrucciones de entrada y salida)
Instrucción ComentarioTodas p: SC < 0 Regresa a T0INP pB11: AC(0..7) < INPR, FGI < 0 Introducir carácterOUTP pB10: OUTR < AC(0..7) , FGO < 0 Sacar un carácter
SKI pB9: Si(FGI = 1) entonces PC < PC +1
SKO pB8: Si(FGO = 1) entonces PC < PC +2ION pB7: IEN < 1 habilitar InterrupciónIOF pB6: IEN < 0 Deshabilitar Interrupción
IR(i) = Bi [bit i en IR(0..11) que especifica la operación]microoperación
Omitir si haybandera de entradaOmitir si haybandera de Salida
D7 I' T3 = r (Común a todas las instrucciones de referencia a registro)
Instrucción ComentarioTodas r: SC < 0 Regresa a T0CLA rB11: AC < 0 Borra ACCLE rB10: E < 0 Borra ECMA rB9: AC < /AC Complementa ACCME rB8: E < /E Complementa ECIR rB7: Circular a la derechaCIL rB6: Circular a la izquierdaINC rB5: AC < AC +1 Incrementar ACSPA rB4: Si(AC(15) = 0) entonces PC < PC +1 Omitir si AC es positivoSNA rB3: Si(AC(15) = 1) entonces PC < PC +1 Omitir si AC es negativoSZA rB2: Si(AC = 0) entonces PC < PC +1 Omitir si AC es ceroSZE rB1: Si(E= 0) entonces PC < PC +1 Omitir si E es ceroHLT rB0: S < 0 (S es un FF que habilita el reloj) Detener la computadora
IR(i) = Bi [bit i en IR(0..11) que especifica la operación]microoperación
AC < shr AC, AC(15) < E, E < AC(0)AC < shl AC, AC(0) < E, E < AC(15)
Componentes de la computadora
● Unidad de memoria de 4096 x 16
● Nueve registros: AR, PC, DR, IR, TR, OUTR, INPR Y SC
● Siete flip flops
● Dos decodificadores: uno de operación y otro de temporización un bus común de 16 bits
● Compuertas lógicas de control
● Un circuito sumador y lógico conectado a la entrada de AC
Diseño de la lógica de control de AR
● Se agrupan todos los enunciados que modifican a AR
– R' T0: AR < PC
– R' T2: AR < IR(0..11)
– D7' I T0: AR < M[AR]
– R T0: AR < 0
– D5 T4: AR < AR+1
● Las funciones de control pueden combinarse en tres funciones OR
– LD(AR)= R' T0 + R' T2 +D7' I T3
– CLR(AR)= R T0
– INR(AR)= D5 T4
Control de FF únicos● Para IEN
– p B7: IEN < 1
– p B6: IEN < 0
– R T2: IEN < 0
Circuitería asociada con AC