Está en la página 1de 24

1.2. Jerarqua de niveles de un computador Qu es un computador?

Sistema electrnico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.

Sistema complejo

se estudia desde distintos puntos de vista.

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

La jerarqua de niveles de abstraccin para el estudio del computador que veremos es

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.

Programa traductor: compilador.


9

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:

Veamos cada uno de los niveles:


12

(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

Por ejemplo, un transistor se construira

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.

Por ejemplo la construccin de una puerta NOR sera:

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

Ruta de datos multiciclo de la MIPS (en negro)

17

Control multiciclo de la MIPS

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

(2) Procesador del repertorio de instrucciones y subsistema de entrada y salida

Estudiaremos:

(a) Cmo disear un procesador con circuitos lgicos (sumadores, multiplexores, registros, memoria,) que ejecute un repertorio de instrucciones determinado (implementacin del nivel ISA)

(b) Organizacin de la memoria

(c) Gestin de la entrada/salida

24

También podría gustarte