Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema electrnico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.
Sistema complejo
Su estudio se divide en niveles (puntos de vista) que forman una jerarqua: - en cada nivel se hace una abstraccin de los detalles definidos en el nivel inmediatamente inferior. - en cada nivel se estudian solamente los aspectos que interesan en este nivel.
1
Al principio solo haba dos niveles totalmente dependientes*1: - hardware: los circuitos digitales y su construccin. - software: los programas de instrucciones (lenguaje mquina). (*1) Esto fue as hasta 1964. IBM desarrolla el sistema 360 (family of business mainframe computers) Introduce el trmino arquitectura de computadores = conjunto de instrucciones y elementos hardware visibles al programador. Construy 6 realizaciones de la arquitectura que variaban en precio y rendimiento. Mquinas que ejecutaban el mismo software independientemente de su implementacin hardware.
2
Los niveles por debajo del ISA son hardware. Los niveles por encima del ISA son software.
3
Niveles software
Evolucin del software: - al principio: programar en lenguaje mquina (con 0s y 1s), teniendo que cargar en memoria y ejecutar cada programa. - hoy en da: entornos grficos.
Los pasos de esta evolucin fueron la aparicin de: (1) Lenguaje mquina (2) Lenguaje ensamblador (3) Lenguaje de alto nivel (4) Sistema operativo (5) Aplicaciones
4
(1) Lenguaje mquina El lenguaje que realmente entiende la mquina (sistema digital) est formado por ceros y unos (bits). Ejemplo real (MIPS) de programa en lenguaje mquina:
Este conjunto de bits (programa) puede ser cargado en memoria y ejecutado. Como resultado de la ejecucin se produce un proceso de datos.
5
Cada lnea de este conjunto de bits es una instruccin. Una instruccin es una orden individual al computador para realice una operacin determinada.
Una instruccin ser un nmero binario almacenado en memoria. Por ejemplo, el nmero (00000000100011100001100000100001)2 que es la segunda instruccin del programa, indica al computador que sume dos nmeros.
El programador de lenguaje mquina, utiliza secuencias de bits para escribir sus programas.
6
(2) Lenguaje ensamblador Programar usando nmeros binarios es muy laborioso. Se invent notacin simblica (caracteres alfanumricos) para representar cada instruccin mquina Por ejemplo, la segunda instruccin del programa ejemplo visto se escribira add $2, $4, $2.
Al principio traduccin se haca a mano, pero luego se cre un software traductor: el programa ensamblador. El ensamblador traduce un programa escrito en lenguaje ensamblador a el programa equivalente en lenguaje mquina.
Por ejemplo, el programador escribira su programa en lenguaje ensamblador: muli $2, $5, 4 add $2, $4, $2 lw $16, 4($2) sw $16, 0($2) jr $31 sw $15, 3($3) lw $15, 0($4) y el ensamblador generara el programa a lenguaje mquina:
(3) Lenguaje de alto nivel Expresar resolucin de problemas es difcil en lenguaje ensamblador (ya lo comprobarn). Fuerza al programador a pensar como funciona la mquina: movimiento de datos, operaciones aritmticas y lgicas bsicas y saltos (cambios de secuencia). Solucin: tener un lenguaje de alto nivel (algortmico) que se traduzca a lenguaje ensamblador.
10
(4) Sistema operativo Con el desarrollo de la programacin surgi la idea de reutilizar programas para tareas rutinarias bibliotecas de subrutinas. Las primeras para entrada/salida de datos: controlar los distintos perifricos impresoras, cintas magnticas Tambin surgi la necesidad de un programa independiente que supervisara la ejecucin del conjunto de programas de los distintos programadores. Programa supervisor + bibliotecas de subrutinas de entrada/salida = base de un sistema operativo (programa para la gestin de los recursos del computador) (5) Aplicaciones Programas que realizan tratamientos de datos especficos: procesadores de texto, hojas de clculo, bases de datos,
11
Jerarqua de niveles para estudiar un computador El modelo de computador que tenemos es:
(0) Nivel fsico Cmo construir diodos, transistores, resistencias condensadores con semiconductores de tipo n y p. Se aplican las leyes de la fsica electrnica. y
13
(1) Diseo de circuitos Cmo implementar puertas lgicas y biestables con transistores, diodos, resistencias, y capacitores. Se aplican las leyes de la electricidad: descripcin del circuito en trminos de corriente, tensin, etc.
14
(2) Diseo digital (FCI) Definir circuitos combinacionales y secuenciales a partir de puertas lgicas y biestables. Estos circuitos sern los bloques digitales bsicos para disear un procesador. Las leyes que se aplican son las del lgebra de Boole. Por ejemplo, multiplexor de 2 entradas de control:
15
(3) Procesador del repertorio de instrucciones Diseo de un sistema digital complejo que ejecuta instrucciones a partir de buses, registros, bloques combinacionales, memorias
El procesador se compone de: - la ruta de datos: flujo de datos y su transformacin a travs de circuitos combinacionales y elementos de memoria. - la unidad de control: generacin sincronizada de seales para controlar la ruta de datos. Veremos las formas de realizar cada uno.
16
17
18
(4) Arquitectura del repertorio de instrucciones Es el nivel fundamental que define cmo es un computador. Este nivel est definido por: - el repertorio de instrucciones. - los modos de direccionamiento de los operandos. - los tipos de datos. - los registros del procesador.
Es la interface entre el hardware y el software y veremos pautas de diseo de este nivel. Tambin describiremos y utilizaremos (creando programas) este nivel para el procesador MIPS.
19
(5) Sistema operativo Este nivel es el que realiza la gestin de los recursos que ofrecen los niveles inferiores del sistema computador: CPU, memoria Para obtener un uso fcil, eficiente, compartido y seguro de los mismos: gestin de archivos, procesos, memoria virtual Proporciona a los usuarios una mquina ms manejable.
20
(6) Compilador Permite al programador expresar los programas en un lenguaje cercano a su descripcin algortmica Traduce estos programas escritos en lenguajes de alto nivel a programas especificados en lenguaje mquina
21
(7) Aplicaciones Programas que se ejecutan para realizar funciones tiles al usuario: bases de datos, las hojas de clculo o los procesadores de texto Son programas escritos en lenguajes de alto nivel Su objetivo es crear un entorno amigable para el usuario del sistema computador
22
Desde que puntos de vista estudiaremos el computador en esta asignatura? (1) Arquitectura del repertorio de instrucciones Estudiaremos: (a) Cmo disear este nivel mirando (en la jerarqua de niveles) hacia: - arriba: sostener los lenguajes de alto nivel - abajo: fcil implementacin hardware (Cuestin de compromiso) (b) Descripcin de este nivel de una mquina en concreto: la MIPS (c) Adems escribirn programas de este nivel para la MIPS
23
Estudiaremos:
(a) Cmo disear un procesador con circuitos lgicos (sumadores, multiplexores, registros, memoria,) que ejecute un repertorio de instrucciones determinado (implementacin del nivel ISA)
24