Resto tema 1

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
Es un sistema tan complejo que se estudia desde distintos puntos
de vista, mediante una jerarquía de niveles de abstracción
Al principio solo había dos niveles (totalmente dependientes):
- hardware: los circuitos digitales y su construcción
- software: los programas de instrucciones (lenguaje máquina)
Evolución del software
El software ha evolucionado desde programar con 0’s y 1’s hasta
los entornos gráficos de hoy en día
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
Veamos cada uno:
(1) Lenguaje máquina
El lenguaje que realmente entiende la máquina formado por ceros y
unos (números binarios)
P.e. programa de 7 instrucciones:
Formado por órdenes individuales: instrucciones
ÆUna instrucción será un número binario almacenado en memoria
P.e. “00000000100011100001100000100001”(la 2ª instrucción)
indica al computador que sume dos números
(2) Lenguaje ensamblador
Programar usando números binarios es muy laborioso
Se inventó notación simbólica (caracteres alfanuméricos) para
cada instrucción máquina, p.e. “add A, B, C”
Al principio traducción a mano, pero luego se creó un software
traductor: el programa ensamblador
P.e. el programador escribiría “add $2, $4, $2” y el ensamblador
traduciría esta notación a “00000000100011100001100000100001”
Este lenguaje simbólico se llamó lenguaje ensamblador
swap:muli $2, $5,4
add $2, $4,$2
lw $16, 4($2)
sw $16, 0($2)
jr $31
[Programa en ensamblador]
(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
Solución: tener una notación de alto nivel (algorítmica) que se
traduzca a lenguaje ensamblador
Programa traductor: compilador
(4) Sistema operativo
(a) 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 impresoras,
cintas magnéticas…
(b) Necesidad de programa independiente que supervisara la
ejecución del conjunto de programas
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 específicos: procesadores de
texto, hojas de cálculo, bases de datos,…
Jerarquía de niveles para estudiar un computador
El modelo de computador que tenemos es:
Veamos cada uno de los niveles:
(1) Diseño de circuitos
Cómo implementar las funciones lógicas del nivel superior con
transistores, diodos, resistencias, y capacitores
Se habla de diferentes tecnologías de circuitos integrados (familias
lógicas) y la estructura interna de las puertas lógicas
P.e. puerta NOR:
Se caracterizan los circuitos integrados por su fan-in, fan-out,
tiempo de respuesta…
(2) Diseño digital (FCI)
Conceptos de representación, síntesis, simulación y test de circuitos
digitales:
- puertas lógicas
- bloques combinacionales y secuenciales
- elementos de memoria…
Bloques digitales básicos para diseñar un procesador
(3) Procesador del repertorio de instrucciones y subsistema de
entrada y salida
Da lugar al concepto de sistema digital complejo que ejecuta
instrucciones
Estudio de formas de realizar la ruta de datos y la unidad de
control
Se definen las etapas en que se divide la ejecución de las
instrucciones: descodificación, acceso a memoria, escritura en
registros…
También cómo realizar entrada/salida: sincronización y
transferencia de datos procesador-controladores periféricos
(4) Arquitectura del repertorio de instrucciones o nivel ISA
(Instruction Arquitecture Set)
Nivel más bajo al que se puede programar (nivel de lenguaje
máquina)
Interface entre el hardware y el software (nivel fundamental)
Elementos manejados en este nivel:
- conjunto de instrucciones que ejecuta el procesador
- modos de direccionamiento de los operandos
- tipos de datos
- registros del procesador
Con ellos se especificarán los programas que ejecutarán los niveles
inferiores
(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
(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
(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
¿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
(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
1.3. Conceptos de arquitectura y estructura de un computador
Arquitectura (qué hace)
Comportamiento funcional desde el punto de vista de
- el programador en lenguaje ensamblador
- el generador de código del compilador
Atributos que definen una arquitectura (visibles a un programador a
bajo nivel):
- repertorio y formato de las instrucciones
- los registros
- modos direccionamiento
- tipos de datos
Estructura (cómo se hace)
Los componentes (sumadores, multiplexores, registros,…) y sus
conexiones para realizar una determinada arquitectura
Detalles del hardware transparentes al programador
Se especifican:
- flujos de datos entre los componentes
- señales de control
Estructura del procesador MIPS
1.4. Estructura y funcionamiento de un computador
Un sistema computador se compone de procesador, memoria y
entrada/salida:
- procesador: procesa los datos siguiendo las instrucciones
- memoria: almacena los datos y las instrucciones
(representación binaria)
- entrada/salida: para transferir información con el exterior
El procesador está formado por:
- camino de datos: realiza la transformación de los datos
- unidad de control: lee las instrucciones de memoria, las
interpreta y controla todos los componentes para que se
ejecuten
El camino de datos se compone de:
- unidad aritmético-lógica (ALU): realiza operaciones (suma,
and,…) sobre los datos
- registros: contienen los operandos y los resultados
La memoria
Se organiza como un vector de bytes (8 bits)
Cada byte es referenciado por su dirección, su posición dentro de
la memoria
Una dirección de memoria hace referencia al contenido (bits que
forman la palabra) de esa posición
Las operaciones que hace el procesador con la memoria son:
- lectura (load): transferir un dato en memoria al procesador
- escritura (store): transferir un dato del procesador a memoria
En ambos casos se tendrá que especificar:
- la dirección: posición en la memoria del dato a transferir
- el tamaño (número de bytes) del dato a transferir
Acceso a las instrucciones en memoria
El procesador tiene que acceder a las instrucciones en memoria,
donde están almacenadas, para ejecutarlas
El procesador tiene dos registros, de uso específico, para leer las
instrucciones de memoria:
(1) contador de programa (PC): contiene la dirección en memoria
de la instrucción a ejecutar
Es un registro contador con carga en paralelo
(2) registro de instrucción (IR): donde se carga la instrucción a
ejecutar
El funcionamiento básico de un computador
Consiste en procesar instrucciones una tras otra según están en
memoria
Cada instrucción es procesada en dos fases:
- fase de captación: cargar la instrucción en el IR
- fase de ejecución: llevar a cabo la operación especificada por la
instrucción
(1) Fase de captación de instrucción:
– El registro contador de programa (PC) contiene la dirección de
la instrucción a ejecutar
– El procesador carga la instrucción señalada por el PC en el
registro de instrucciones (IR)
– El procesador incrementa el contador de programa para que
apunte a la siguiente instrucción
Contenido de IR y PC después de la fase de captación
(2) Fase de ejecución: según el tipo de instrucción (4 tipos)
– Procesador-memoria: transferencia de datos desde la CPU a la
memoria o al revés
– Procesador-E/S: transferencia de datos a o desde el exterior
– Procesamiento de datos: la CPU ha de realizar alguna
operación aritmética o lógica con los datos
– Control: una instrucción puede especificar que la secuencia de
ejecución sea alterada (fundamental)
Descargar