Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Inicios de la computacin
Turing y Church sientan las bases tericas de la computacin Mquina de Turing
consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, lo borra y en su lugar escribe un nuevo valor. Las operaciones que se pueden realizar en esta mquina se limitan a:
avanzar el cabezal lector/escritor para la derecha. avanzar el cabezal lector/escritor para la izquierda.
Trabaja en base a un conjunto finito de estados Un programa cableado del tipo (condicin, accin)
Mquina de Turing
El clculo se efecta a partir de una tabla de estados de la forma:
(estado, valor) -> (\nuevo estado, \nuevo valor, direccin)
Ingresa a la tabla con el estado actual de la mquina y el caracter ledo de la cinta, y se obtiene el valor a ser escrito en la cinta en la posicin actual, la direccin en que se debe mover el cabezal, y el nuevo estado de la mquina. Permite realizar cualquier clculo que un computador digital sea capaz de realizar.
Otra forma de expresarla S1,1 0,S2,D S2,1 1,S2,D S2,0 0,S3,D S3,0 1,S4,I S3,1 1,S3,D S4,1 1,S4,I S4,0 0,S5,I S5,1 1,S5,I S5,0 1,S1,D
S1 S2 S2 S3 S3 S4 S4 S5 S5
1 1 0 0 1 1 0 1 0
0 1 0 1 1 1 0 1 1
D D D I D I I I D
S2 S2 S3 S4 S3 S4 S5 S5 S1
S1 S2 S2 S3 S3 S4 S4 S5 S5
1 1 0 0 1 1 0 1 0
0 1 0 1 1 1 0 1 1
D D D I D I I I D
S2 S2 S3 S4 S3 S4 S5 S5 S1
Caractersticas principales
3 componentes principales:
CPU:
Unidad de Control, Unidad aritmtico lgica (ALU), Registros
Memoria principal:
Almacena programas y datos
Sistema de Entrada/Salida
Conecta con el mundo exterior
CPU
Unidad de Control (UC) Controla todos los componentes Interpreta instrucciones
Decodifica y Ejecuta instrucciones. Transforma instrucciones en rdenes a otros componentes Puede ser programada por hardware (cableada) y microprogramada (varias microinstrucciones por instruccin)
Registros Almacenan datos binarios Acceso rpido Tamao fijo De propsito general (programas) Especficos
Acumulador Program counter Puntero a memoria
CPU
DataPath Conexionado interno que comunica la UC con las otras unidades y registros. Mueve datos entre los diferentes componentes Controlado por un reloj.
Ciclo de instruccin
1. Recuperar la siguiente instruccin desde memoria (apuntada por el program counter) y luego incrementar el program counter. 2. Decodificar el patrn de bits en el registro de instruccin IR
Ciclo de Ejecucin
1. 2. 3. 4. 5. 6.
UC obtiene la prxima instruccin de memoria (usando el registro PC) Se incrementa el PC La instruccin es decodificada a un lenguaje que entiende la ALU Obtiene de memoria los operandos requeridos por la instruccin La ALU ejecuta y deja los resultados en registros o en memoria Volver al paso 1
Ciclo de ejecucin
La unidad de control levanta la prxima de memoria usando el contador de programa (o RPI) que dice en que direccin esta la prxima instruccin.
Ciclo de ejecucin
La instruccin es decodificada a un lenguaje que entiende la ALU (unidad aritmtica lgica).
Ciclo de ejecucin
Cada operando requerido para ejecutar es levantado de la memoria principal y ubicado en registros dentro de la CPU.
Ciclo de ejecucin
La ALU ejecuta la instruccin y coloca los resultados en registros o en memoria.
Tipos de Operaciones
Procesador-memoria
Transferencia de datos entre la CPU y la memoria
Procesador-E/S
Transferencia de datos entre la CPU y un modulo de E/S
Procesamiento de datos
Alguna operacin aritmtica o lgica sobre los datos
Control
Alteracin de la secuencia de operaciones Ej.: jump
IAS: Diagrama
Estructura de la IAS
Registros
MBR: Memory Buffer Register MAR: Memory Address Register IR: Instruction Register IBR: Instruction Buffer Register PC: Program Counter AC: Accumulator MQ: Multiplier Quotient
(UC)
39
Palabra instruccin 0
Codop
8
Direccin
19 20
Codop
28
Direccin
39
Instruccin
Palabra instruccin 0
Codop
8
Direccin
19
La parte codop (los primeros 8 bits) especifican cul instruccin ser ejecutada. La parte de la direccin (los 12 bits restantes) especifican un operando (en memoria) que participa de la operacin.
(UC)
(UC)
(UC)
(UC)
(UC)
(UC)
Buses
Bus = Va comunicacin que conecta 2 o ms dispositivos En general broadcast (todos lo ven) En general agrupados
Varios canales en un grupo Ej: Data bus de 32 bits, son 32 canales de 1 bit
Data Bus
Transfieren informacin Su tamao es un punto clave en la performance del sistema
8, 16, 32, 64 bits
Address bus
Identifican la fuente o destino de un dato Ej: la CPU necesita leer una instruccin (dato) de una locacin en memoria Su tamao determina la capacidad mxima de memoria del sistema
Ej: el Intel 8080 tiene 16 bit => 64k de espacio direccionable
Control Bus
Control y sincronizacin
Seal de lectura escritura a memoria Seales del reloj Solicitud de interrupcin
Mejoras:
Buses especializados (DSPs usan buses de address y datos separados para instrucciones y operandos) Interrupciones Unidades de punto flotante Caches, Pipelines
Otro enfoque: apartarse de la arquitectura clsica de von Neumann. Agregar procesadores es una posibilidad
Una computadora es mucho ms que chips. Para que la computadora haga algo necesita software Para escribir programas complejos se suele dividir el problema en mdulos que resuelven problemas mas simples En las computadoras
Varios niveles de mquinas virtuales
Jerarqua de niveles
Cada capa es una mquina virtual que abstrae a las maquina del nivel inferior. Las mquinas, en su nivel, interpretan sus instrucciones particulares, utilizando servicios de su capa inferior para implementarlas. En ltima instancia los circuitos terminan haciendo el trabajo
Jerarqua de niveles
Level 6: Nivel Usuario Ejecucin de programas e interfaces de usuario. Pensamos en terminos de la aplicacin que se ejecuta Level 5: Lenguajes de alto nivel El nivel donde interactuamos cuando escribimos programas en Haskell, C, Java, etc. Pensamos el algoritmos, TADs, etc.
Jerarqua de niveles
Level 4: Nivel de Lenguaje Ensamblador Lenguaje ensamblador, en general producido por compiladores, o escrito directamente por programadores. Muy cercano a la arquitectura de la computadora. Level 3: Nivel del software del Sistema Controla la ejecucin de los procesos del sistema. Protege los recursos. Brinda servicios para acceder a dispositivos de E/S Muchas instrucciones en Assembler pasan este nivel sin modificacin.
Jerarqua de niveles
Level 2: Nivel del Lenguaje de mquina Tambin conocido como nivel ISA (Instruction Set Architecture). Consiste en las instrucciones particulares para la arquitectura de la maquina. Los programas escritos en lenguaje de maquina no necesitan compilacin ni ensamblado.
Jerarqua de niveles
Level 1: Nivel de Control La unidad de control (UC) decodifica y ejecuta instrucciones y mueve datos a traves del sistema. Puede ser microprogramada o cableada.
Un microprograma es un programa escrito en un lenguaje de bajo nivel que puede ser implementado enl hardware. Las UC cableadas tienen hardware que ejecuta directamente las instrucciones en codigo de maquina
Jerarqua de niveles
Level 0: Nivel de Lgica Digital Aqu encontramos los circuitos digitales (chips). Son bsicamente compuertas y cables. Implementan la lgica matemtica de los niveles superiores.
Links
http://www.turing.org.uk
John von Neumann, First Draft of a Report on the EDVAC, 1946 (en seccin download) Computer Architecture home page: www.cs.wisc.edu/~arch/www Null, L. and J. Lobur. The Essentials of Computer Organization and Architecture, Jones and Bartlett Publishers, Feb. 2003