El documento describe la estructura interna de una computadora. Explica que la CPU está compuesta de una unidad de control, una unidad aritmética y lógica (ALU), y registros. La unidad de control dirige el funcionamiento de la CPU al decodificar e interpretar las instrucciones y generar las señales de control necesarias para ejecutar cada instrucción. La CPU se comunica con la memoria principal, memoria secundaria y periféricos a través de buses.
Una breve explicación de como esta formado internamente el procesador.
Bibliográfica:
1. Introducción a un Lenguaje Ensamblador para Arquitectura de Computadoras. Karen Millar. Oxford, 1999.
2. Organización y arquitectura de computadoras -principios y estructura de funcionamiento- Willian Stallings, Megabyte, 1995
3. Lógica y dseño. Digital, Morris Mano. Prentice-Hall, 2000
Es el encargado de hacer todas las
instrucciones que se denominan atraves de
los comandos o atraves de los programas,
se envían al procesador y el procesador se
encarga de procesar.
Partes del Microprocesador.
Capacidad de la unidad de procesamientoRosangelGarca
ORGANIZACIÓN DEL COMPUTADOR
Prof.: Ing. DIÓGENES RODRÍGUEZ
ASIGNACIÓN: # 2.
1.UNIDAD DE CONTROL
2. EXPLICAR LOS MODOS DE DIRECCIONAMIENTO
3. ORGANIZACIÓN DE LA INSTRUCCIÓN DE MÁQUINA
4. CLASIFICACIÓN DE LOS TIPOS DE CÓDIGOS DE OPERACIÓN
5. MODOS DE DIRECCIONAMIENTO
6. SISTEMAS DE BARRAS INTERNAS PARA EL PROCESAMIENTO
DE DATOS
Una breve explicación de como esta formado internamente el procesador.
Bibliográfica:
1. Introducción a un Lenguaje Ensamblador para Arquitectura de Computadoras. Karen Millar. Oxford, 1999.
2. Organización y arquitectura de computadoras -principios y estructura de funcionamiento- Willian Stallings, Megabyte, 1995
3. Lógica y dseño. Digital, Morris Mano. Prentice-Hall, 2000
Es el encargado de hacer todas las
instrucciones que se denominan atraves de
los comandos o atraves de los programas,
se envían al procesador y el procesador se
encarga de procesar.
Partes del Microprocesador.
Capacidad de la unidad de procesamientoRosangelGarca
ORGANIZACIÓN DEL COMPUTADOR
Prof.: Ing. DIÓGENES RODRÍGUEZ
ASIGNACIÓN: # 2.
1.UNIDAD DE CONTROL
2. EXPLICAR LOS MODOS DE DIRECCIONAMIENTO
3. ORGANIZACIÓN DE LA INSTRUCCIÓN DE MÁQUINA
4. CLASIFICACIÓN DE LOS TIPOS DE CÓDIGOS DE OPERACIÓN
5. MODOS DE DIRECCIONAMIENTO
6. SISTEMAS DE BARRAS INTERNAS PARA EL PROCESAMIENTO
DE DATOS
Universidad Técnica Particular de Loja
Ciencias de la Computación
Arquitectura de Computadores
II Bimestre
Abril-Agosto 2007
Ponente: Ing. Marcia Contento
1. Estructura de la computadora Präsentation . Estructura y Prog. de Computadoras
2. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Computador Memoria Principal Entrada Salida Sistema de interconexión periféricos Líneas de comunicación Unidad Central de Proceso CPU Computadora
3. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Memoria Secundaria Memoria Principal CPU Periféricos Bus de Datos Bus de Direcciones Bus de Control Ejemplo:
5. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Computer Unidad Aritmética y Lógica Unidad de Control Interconexión Interna de la CPU Registros CPU I/O Memory System Bus CPU
6. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras CPU Memoria de control Unidad de control de registros y decodificadores Lógica Secuencial Registers Internal Bus Unidad de Control ALU Control Unit
7.
8.
9.
10. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Componentes del computador:
11.
12. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Registros ALU Unidad de Control Bus de control Bus de datos Bus de direcciones Bus del sistema
13.
14.
15.
16. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Ejemplos de Unam de registros:
17.
18.
19.
20. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 1. Recuperar la siguiente instrucción desde memoria (apuntada por el program counter ) y luego incrementar el program counter . 2. Decodificar el patrón de bits en el registro de instrucción IR 3. Ejecutar la instrucción indicada en el registro de instrucción IR Ciclo de instrucción
21.
22.
23.
24. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 1. El PC contiene el valor 300. Se carga esta instrucción en IR (esto implica el uso de MAR y MBR) Ejemplo:
25. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 2. Los primeros 4 bits de IR (“1”) indican que el acumulador AC se va a cargar con un dato de la memoria. Los restantes 12 bits especifican la dirección (es decir “940”). Ejemplo:
26. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 3. El registro de PC se incrementa y se capta la siguiente instrucción. Ejemplo:
27. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 4. Los primeros 4 bits (“5”) indican que la instrucción es de suma entre el acumulador y una memoria. Los siguientes 12 bits indican la dirección de memoria (“941”). El contenido de AC y el de la posición 941 se suman y el resultado se almacena en AC. Ejemplo:
28. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 5. El registro PC se incrementa en 1 y se capta la siguiente instrucción. Ejemplo:
29. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 6. Los primeros 4 bits indican (“2”) que el acumulador se debe almacenar en una memoria. Los siguientes 12 bits indican la dirección de la memoria (“941”). El contenido de AC se almacena en la posición 941. Ejemplo:
30. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras ¿Cuántos ciclos de instrucción se necesitan?
31. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras ¿Cuántos ciclos de instrucción se necesitan? R/. Tres
32. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras Las instrucciones de una CPU a otra difieren bastante, sin embargo en todas las CPU se puede encontrar el siguiente conjunto de instrucciones : 1.- Instrucciones de transferencias de datos 2.- Instrucciones aritméticas 3.- Instrucciones lógicas 4.- Control de flujo 5.- Entrada / Salida
33. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 1.- Instrucciones de transferencias de datos MOVE transferir registros en la CPU STORE registro -> memoria LOAD memoria -> registro CLEAR pone un registro en ceros SET pone un registro en unos PUSH introduce en la pila POP extrae en la pila
34.
35. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 2.- Instrucciones aritméticas ADD suma dos operandos SUBSTRACT resta dos operandos MULTIPLY multiplica dos operandos DIVIDE divide dos operandos ABSOLUTE calcula valor absoluto del operando NEGATE cambia el signo del operando INCREMENTE sube en 1 el operando DECREMENTE baja en 1 el operando
36. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 2.- Instrucciones aritméticas Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición.
37. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 3.- Instrucciones lógicas AND Y lógico bit a bit OR O lógico bit a bit NOT no lógico bit a bit XOR o exclusivo lógico bit a bit TEST evalúa condiciones COMPARE comparación de dos operandos SHIFT desplazamiento izquierda o derecha ROTATE desplazamiento cíclico
38. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 3.- Instrucciones lógicas Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición .
39. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 4.- Control de flujo JUMP salto incondicional JUMP CON salto condicional JUMP SUB salto a subrutina RETURN retorno de subrutina SKIP incrementa PC en 1 SKIP CON incremento condicional de PC en 1 HALT detiene la ejecución del programa WAIT detiene la ejecución hasta una condición NOP no ejecuta operación alguna
40. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 4.- Control de flujo Acciones : Actualiza el contador de programa. En el caso de llamadas y retornos de subrutinas, gestiona la transferencia y enlace de parámetros.
41. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 5.- Entrada / salida INPUT transferir I/O -> memoria o registro OUTPUT transferir memoria o registro -> I/O START I/O inicializa dispositivo I/O TEST I/O transfiere información de estado de I/O
42. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 5.- Entrada / salida Acciones: Cursa una orden a un módulo de E/S En el caso de E/S asignada en memoria, determina la dirección de memoria correspondiente.
43. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras Una instrucción tiene “operandos”: Ej: ADD A,(940) %( A = A + (940)) Los operandos son A y el contenido de 940.
44. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras Una instrucción tiene “operandos”: Ej: ADD A,(940) %( A = A + (940)) Los operandos son A y el contenido de 940. ¿Cómo se pueden referenciar los operandos? R/. Con los modos de direccionamiento.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Además hay que poner en las direcciones 500, 501 y 502 los valores de las variables X, Y y Z: 500 0000 0000 0010 0001 X es 0021 501 0000 0000 0011 0010 Y es 0032 502 0000 0001 0001 1010 Z es 011A
64. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Programa en binario: Explicación 000 0010 0101 0000 0000 A (500) 001 0011 0101 0000 0001 A A + (501) 002 0011 0101 0000 0010 A A + (502) 003 0001 0101 0000 0011 (503) A : 500 0000 0000 0010 0001 Dato X 501 0000 0000 0011 0010 Dato Y 502 0000 0001 0001 1010 Dato Z 503 0000 0000 0000 0000 Libre para escribir T
65. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 001 0011 0101 0000 0001 002 0011 0101 0000 0010 003 0001 0101 0000 0011 : 500 0000 0000 0010 0001 501 0000 0000 0011 0010 502 0000 0001 0001 1010 503 0000 0000 0000 0000 Lenguaje máquina
66. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 000 2500 001 0011 0101 0000 0001 001 3501 002 0011 0101 0000 0010 002 3502 003 0001 0101 0000 0011 003 1503 : 500 0000 0000 0010 0001 500 0021 501 0000 0000 0011 0010 501 0032 502 0000 0001 0001 1010 503 011A 503 0000 0000 0000 0000 504 0000 Programa en hexa
67. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 000 LDA (500) 001 0011 0101 0000 0001 001 ADD (501) 002 0011 0101 0000 0010 002 ADD (502) 003 0001 0101 0000 0011 003 STA (503) : 500 0000 0000 0010 0001 500 DAT 0021 501 0000 0000 0011 0010 501 DAT 0032 502 0000 0001 0001 1010 502 DAT 011A 503 0000 0000 0000 0000 503 DAT 0000 Programa simbólico
68. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 INICIO LDA (VX) 001 0011 0101 0000 0001 ADD (VY) 002 0011 0101 0000 0010 ADD (VZ) 003 0001 0101 0000 0011 STA (VT) : 500 0000 0000 0010 0001 VX DAT 0021 501 0000 0000 0011 0010 VY DAT 0032 502 0000 0001 0001 1010 VZ DAT 011A 503 0000 0000 0000 0000 VT DAT 0000 Programa en assembler
69. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Frecuentemente la misma pieza de código debe escribirse varias veces en muchas partes diferentes de un programa. En vez de repetir el código cada vez que sea necesario, hay una ventaja obvia si las instrucciones comunes se escriben solamente una vez. Un conjunto de instrucciones comunes que pueden utilizarse en un programa muchas veces se denomina subrutina .
70. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Cada vez que la subrutina se utiliza en la parte del programa principal, una ramificación se ejecuta al comienzo de la subrutina. Después que la subrutina ha sido ejecutada, una ramificación se hace de nuevo al programa principal.
71. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Programa principal Subrutina Llamado a Subrutina
72. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Programa principal Subrutina Llamado a Subrutina Llamado a Subrutina j j+ 1
73. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Los registros y las memorias son comunes para el programa principal y para la subrutina, i.e., se consideran variables globales. Ventaja: la comunicación de los parámetros entre el programa principal y la subrutina es simple y rápido. Desventaja: el programador puede olvidar que ciertos registros usados por en el programa principal no deben ser alterados en la subrutina, esto puede causar serios problemas y la detección de este error es difícil.
74. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100) (0100) + 5 (0200) (0200) + 5 (0204) (0204) + 5
75. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100) (0100) + 5 (0200) (0200) + 5 (0204) (0204) + 5 La mejor solución sería utilizando una subrutina que tenga como parámetro una dirección X y que realice la operación: (X) (X) + 5 El programa principal debe cargar correctamente el registro X y llamar a la subrutina tres veces.
76. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100) (0100) + 5 (0200) (0200) + 5 (0204) (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5
77. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100) (0100) + 5 (0200) (0200) + 5 (0204) (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5 ¿Qué pasa si el programa principal estaba usando A?
78. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100) (0100) + 5 (0200) (0200) + 5 (0204) (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5 ¿Qué pasa si el programa principal estaba usando A? kaput!!
79. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100) (0100) + 5 (0200) (0200) + 5 (0204) (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 PUSH A CALL SUM5 LOAD A,(X) LOAD X,0200 ADD 5 CALL SUM5 STORE (X),A LOAD X,0204 POP A CALL SUM5 RET Solución: se usa la pila
80. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras La Pila (stack): Existe una memoria direccionada por el registro SP (stack pointer). ¿Cómo se usa? Cada vez que se hace PUSH X: (SP) X SP SP + 1 Cada vez que se hace POP X: SP SP - 1 X (SP) (es posible hacer PUSH X y luego POP Y)
84. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t CPU solicita datos CPU recibe datos Unidad de disco lee y envía datos
85. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t ¿Qué hace la CPU en este tiempo? CPU solicita datos CPU recibe datos
86. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t ¿Qué hace la CPU en este tiempo? NADA!! la CPU espera… CPU solicita datos CPU recibe datos
87.
88. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo con interrupciones : un programa quiere leer datos del disco duro. 1 2 4 t CPU solicita datos CPU recibe datos CPU hace otra cosa Unidad de disco lee y envía datos 3 interrupción
89. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo con interrupciones : un programa quiere leer datos del disco duro. 1 2 4 t CPU solicita datos CPU recibe datos CPU hace otra cosa Unidad de disco lee y envía datos 3 interrupción Ahorro de tiempo
93. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras CPU ROM RAM Bus de direcciones Bus de datos A12 A11 : A0 A12 CE CE RD RD WR A0 A0 A11 A11 D0 D7 D0 D7 D0 D7 A0 A12 WR RD MREQ
94. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras CPU I/O RAM Bus de direcciones Bus de datos CE CE A0 A11 D0 D7 D0 D7 A0 A12 WR RD MREQ decoder ROM CE INT IORQ