1.2. Jerarquía de niveles de un computador ¿Qué es un computador

Anuncio
1.2. Jerarquía de niveles de un computador
¿Qué es un computador?
Sistema electrónico 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
jerarquía:
- en cada nivel se hace una abstracción 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 había dos niveles totalmente dependientes*1:
- hardware: los circuitos digitales y su construcción.
- software: los programas de instrucciones (lenguaje máquina).
(*1)
Esto fue así hasta 1964.
IBM desarrolla el sistema 360 (family of business mainframe
computers)
Introduce el término “arquitectura de computadores” = conjunto
de instrucciones y elementos hardware visibles al programador.
Construyó 6 realizaciones de la arquitectura que variaban en precio
y rendimiento.
Máquinas que ejecutaban el mismo software independientemente
de su implementación hardware.
2
La jerarquía de niveles de abstracción 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
Evolución del software:
- al principio: programar en lenguaje máquina (con 0’s y 1’s),
teniendo que cargar en memoria y ejecutar cada programa.
- hoy en día: entornos gráficos.
Los pasos de esta evolución fueron la aparición de:
(1) Lenguaje máquina
(2) Lenguaje ensamblador
(3) Lenguaje de alto nivel
(4) Sistema operativo
(5) Aplicaciones
4
(1) Lenguaje máquina
El lenguaje que realmente entiende la máquina (sistema digital) está
formado por ceros y unos (bits).
Ejemplo real (MIPS) de programa en lenguaje máquina:
Este conjunto de bits (programa) puede ser cargado en memoria y
ejecutado.
Como resultado de la ejecución se produce un proceso de datos.
5
Cada línea de este conjunto de bits es una instrucción.
Una instrucción es una orden individual al computador para realice
una operación determinada.
Una instrucción será un número binario almacenado en memoria.
Por ejemplo, el número (00000000100011100001100000100001)2
que es la segunda instrucción del programa, indica al computador
que sume dos números.
El programador de lenguaje máquina, utiliza secuencias de bits para
escribir sus programas.
6
(2) Lenguaje ensamblador
Programar usando números binarios es muy laborioso.
Se inventó notación simbólica (caracteres alfanuméricos) para
representar cada instrucción máquina
Por ejemplo, la segunda instrucción del programa ejemplo visto se
escribiría add $2, $4, $2.
Al principio traducción se hacía 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 máquina.
7
Por ejemplo, el programador escribiría 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 generaría el programa a lenguaje máquina:
8
(3) Lenguaje de alto nivel
Expresar resolución de problemas es difícil en lenguaje
ensamblador (ya lo comprobarán).
Fuerza al programador a pensar como funciona la máquina:
movimiento de datos, operaciones aritméticas y lógicas básicas y
saltos (cambios de secuencia).
Solución: tener un lenguaje de alto nivel (algorítmico) que se
traduzca a lenguaje ensamblador.
Programa traductor: compilador.
9
10
(4) Sistema operativo
Con el desarrollo de la programación surgió la idea de reutilizar
programas para tareas rutinarias Æ bibliotecas de subrutinas.
Las primeras para entrada/salida de datos: controlar los distintos
periféricos impresoras, cintas magnéticas…
También surgió la necesidad de un programa independiente que
supervisara la ejecución del conjunto de programas de los distintos
programadores.
Programa supervisor + bibliotecas de subrutinas de entrada/salida =
base de un sistema operativo (programa para la gestión de los
recursos del computador)
(5) Aplicaciones
Programas que realizan tratamientos de datos específicos:
procesadores de texto, hojas de cálculo, bases de datos,…
11
Jerarquía de niveles para estudiar un computador
El modelo de computador que tenemos es:
Veamos cada uno de los niveles:
12
(0) Nivel físico
Cómo
construir
diodos,
transistores,
resistencias
condensadores con semiconductores de tipo n y p.
y
Se aplican las leyes de la física electrónica.
Por ejemplo, un transistor se construiría
13
(1) Diseño de circuitos
Cómo implementar puertas lógicas y biestables con transistores,
diodos, resistencias, y capacitores.
Se aplican las leyes de la electricidad: descripción del circuito en
términos de corriente, tensión, etc.
Por ejemplo la construcción de una puerta NOR sería:
14
(2) Diseño digital (FCI)
Definir circuitos combinacionales y secuenciales a partir de puertas
lógicas y biestables.
Estos circuitos serán los bloques digitales básicos para diseñar 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
Diseño 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 transformación a través de
circuitos combinacionales y elementos de memoria.
- la unidad de control: generación sincronizada de señales 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 cómo 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
diseño de este nivel.
También describiremos y utilizaremos (creando programas) este
nivel para el procesador MIPS.
19
(5) Sistema operativo
Este nivel es el que realiza la gestión de los recursos que ofrecen
los niveles inferiores del sistema computador: CPU, memoria…
Para obtener un uso fácil, eficiente, compartido y seguro de los
mismos: gestión de archivos, procesos, memoria virtual…
Proporciona a los usuarios una máquina más manejable.
20
(6) Compilador
Permite al programador expresar los programas en un lenguaje
cercano a su descripción algorítmica
Traduce estos programas escritos en lenguajes de alto nivel a
programas especificados en lenguaje máquina
21
(7) Aplicaciones
Programas que se ejecutan para realizar funciones útiles al
usuario: bases de datos, las hojas de cálculo 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) Cómo diseñar este nivel ‘mirando’ (en la jerarquía de niveles)
hacia:
- arriba: ‘sostener’ los lenguajes de alto nivel
- abajo: fácil implementación hardware
(Cuestión de compromiso)
(b) Descripción de este nivel de una máquina en concreto: la MIPS
(c) Además escribirán programas de este nivel para la MIPS
23
(2) Procesador del repertorio de instrucciones y subsistema de
entrada y salida
Estudiaremos:
(a) Cómo diseñar un procesador con circuitos lógicos (sumadores,
multiplexores, registros, memoria,…) que ejecute un repertorio de
instrucciones determinado (implementación del nivel ISA)
(b) Organización de la memoria
(c) Gestión de la entrada/salida
24
Descargar