T1-FUH. Elementos funcionales de un ordenador digital.

TEMA 1.- ELEMENTOS FUNCIONALES DE UN ORDENADOR

1. Introducción.

Informática: ciencia que estudia el tratamiento automático y lógico de la información, y comprende:

    • Los medios para su tratamiento (equipos informáticos)
    • Los métodos para su tratamiento (programas)
    • Las áreas de aplicación.

Sistema informático: conjunto interrelacionado de elementos (equipo-programas-personal), principalmente hardware y software, utilizados para procesar información.

Ordenador: todo dispositivo programable destinado a procesar información, entendiéndose por proceso las sucesivas fases, manipulaciones o transformaciones que sufre la información para resolver un problema determinado, capaz de realizar distintos tipos de cálculos, incluyendo operaciones aritméticas y lógicas, a gran velocidad.

2. Arquitectura de un ordenador. Von Neumann

El modelo básico de arquitectura empleada en los computadores digitales fue establecida en 1945 por Von Neumann. Esta arquitectura es todavía, aunque con pequeñas modificaciones, la que emplean la gran mayoría de los fabricantes.

La siguiente figura muestra la estructura general de un computador tipo Von Neumann. Esta máquina es capaz de ejecutar una serie de instrucciones u órdenes elementales llamadas instrucciones de máquina, que deben estar almacenadas en la memoria principal para poder ser leídas y ejecutadas.

Puede observarse de la figura que esta máquina está compuesta por las siguientes unidades: memoria principal, unidad aritmética, unidad de control, y unidad de entrada/salida.

3.Componentes físicos. El hardware.

Se denomina hardware o soporte físico al conjunto de elementos materiales que componen un computador. El hardware se refiere a todos los componentes físicos (que se pueden tocar) de la computadora: disco duro, dispositivo de CD-ROM, disquetera, etc. En dicho conjunto se incluyen los dispositivos electrónicos y electromecánicos, circuitos, cables, tarjetas, armarios o cajas, periféricos de todo tipo y otros elementos físicos.

Analizaremos el ordenador desde el punto de vista funcional, es decir, especificando la función que realizan sin entrar en ningún caso en cómo la realizan internamente.

3.1. La Unidad Central de Proceso (UCP-CPU).

Se encarga de gobernar el funcionamiento global del ordenador, generando para ello en todo momento las señales de control del resto de elementos funcionales existentes, así como las direcciones de memoria o de entrada/salida en las que se realizan las transferencias de información.

3.1.1. La Unidad de Control (UC-CU).

Se encarga de leer una tras otra las instrucciones almacenadas en la memoria principal, y de generar las señales de control necesarias para que el ordenador funcione y ejecute las instrucciones leídas

Recoger las instrucciones que componen un programa, interpretarlas y controlar su ejecución.

1º.- Dado que las instrucciones se encuentran almacenadas en la unidad de memoria, deberá encargarse primero de recibirlas en el orden establecido.

2º.- Identificar de qué instrucción se trata.

3º.- Generar la secuencia de órdenes adecuada para el resto de elementos funcionales que constituye el ordenador, de manera que la instrucción se ejecute correctamente.

Dentro de esta unidad encontraremos el decodificador, el secuenciador, el reloj, la batería de registros ,el registro contador de programas, el registro de instrucción, etc.

  • Decodificador: identifica, interpreta (decodifica) la instrucción almacenada en el registro de instrucción.
  • Secuenciador: distribuir ordenadamente a los elementos del sistema las correspondientes señales de control.
  • Contador de programa: registro que almacena en cada caso la dirección de memoria de la siguiente instrucción a ejecutar.
  • Registro de instrucción: almacena la instrucción en curso.
  • Registros de estado: contiene información sobre la operación anterior o posibles situaciones anómalas o especiales como desbordamientos, interrupciones,…, estado del computador.
  • Reloj: circuito oscilador que genera autónomamente (sin necesidad de ninguna entrada) una señal constante en forma de pulsos (marca la temporización básica del sistema pues determina el menor tiempo que puede durar una operación elemental. Periodo: duración entre dos pulsos consecutivos

3.1.2. La Unidad aritmético-lógica (UAL-ALU).

Dispositivo encargado de realizar las operaciones aritméticas (+,-,*,/,…), lógicas (and, or, not) y de otro tipo (rotaciones, bit,…)

3.1.3. Banco de registros.

Almacenamiento interno del procesador (CPU) que se utilizan para memorizar datos relativos al programa que se está ejecutando y al control del propio procesador.

3.2. La unidad de memoria.

Dispositivo diseñado para almacenar tanto las instrucciones que forman los programas como los propios datos de trabajo. Las operaciones básicas que permite son dos: escritura o almacenamiento y lectura.

En la escritura o almacenamiento la memoria necesita que le suministren una información y una dirección. La operación consiste en grabar la información en la dirección especificada.

En la lectura la memoria recibe la dirección de la información deseada. La operación consiste en suministrar la información previamente escrita en esa dirección.

Los dispositivos de memoria pueden verse como cajas negras, a las que hay que suministrar una dirección y unas señales de control que especifican la operación que se desea realizar. Además, hay que enviar o recibir el dato o bloque de datos correspondiente.

La capacidad de las memorias se puede expresar en unidades de bits, octetos o palabras. Lo más frecuente es expresarla en octetos (en la literatura es muy corriente encontrar el término de byte en vez del octeto). Se emplean los prefijos de:

K = kilo (1 K = 210 = 1024 unidades)

M = mega (1 M = 220 = 210 K)

G = giga (1 G = 230 = 220 K = 210 M)

T = tera (1 T = 240 = 230 K = 220 M = 210 G)

P = peta (1 P = 250 = 240 K = 230 M = 220 G = 210 T)

Vamos a definir en principio varios términos que nos ayudarán a entender el concepto de memoria.

  • Biestable: dispositivo capaz de adoptar dos estados posibles. Es capaz de almacenar un solo bit.
  • Registro: conjunto de biestables asociados entre sí que funcionan simultáneamente.

Longitud del registro: número de bits que es capaz de almacenar el registro simultáneamente

  • Memoria: agrupación de un gran número de registros de igual longitud.

Conceptos básicos de la memoria:

  • Dirección de memoria (posición de memoria): número que identifica biunívocamente una palabra o registro elemental de memoria
  • Ancho de palabra : longitud del registro elemental (nº de bits del registro elemental)
  • Tamaño de memoria o número de palabras: número de registros individuales que la componen.
  • Capacidad de memoria: tamaño x ancho

3.2.1. Jerarquía de memoria.

En los computadores se desea que la memoria tenga una gran capacidad de almacenamiento, un tiempo de acceso pequeño y un precio reducido. Para ello,

la memoria se suele estructurar en varios niveles. Existirá un nivel rápido, de pequeña capacidad, y niveles sucesivos, de menor velocidad, pero mayor capacidad. La información se ubicará en uno de los niveles, de acuerdo a su probabilidad de uso. Si en un momento determinado se necesita esta información, se transfiere al nivel superior más rápido para ser utilizada.

La siguiente figura muestra los niveles que pueden existir en la jerarquía de memoria, indicando algunas de las características de los mismos.

3.4. La unidad de E/S.

Dispositivo que actúa como mediador entre el ordenador y el mundo exterior, realizando operaciones de recogida y envío de información a través de los dispositivos periféricos conectados.

3.4. Los buses del sistema.

Son elementos de comunicación que permiten realizar transferencias de información entre unos dispositivos y otros.

Ancho del bus: nº de bits que es capaz de transportar el bus simultáneamente.

Tipos de buses:

  • B. datos:Bidireccional, datos entre todas las unidades.

Ancho del bus de datos

  • B. direcciones: Unidireccional, desde la C.P.U. (Unidad de Control y ALU) a la Unidad de memoria y Unidad de Entrada/Salida (direcciones siempre generadas en la CPU).

Ancho del bus de direcciones.

  • B. control: Bidireccional, señales de control generadas por la Unidad de Control para gobernar el resto de unidades y desde las unidades para informar a la U.C. de determinados eventos.

Diferencia B.D.-B.C. es que en el BC unas líneas se dedican a un sentido y otras a otro y en el BD todas en los dos sentidos.

4. Componentes lógicos. El software.

Se denomina software o soporte lógico, a todos los componentes intangibles de un ordenador o computadora, es decir, al conjunto de programas, aplicaciones y datos necesarios para hacer posible la realización de una tarea específica en un ordenador.

Probablemente la definición más formal de software sea la siguiente:

Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación

Extraído del estándar 729 del IEEE[6]. Considerando esta definición, el concepto de software va más allá de los programas de cómputo en sus distintos estados: código fuente, binario o ejecutable; también su documentación, datos a procesar e información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo “no físico” relacionado.

El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En las ciencias de la computación y la ingeniería de software, el software es toda la información procesada por los sistemas informáticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, “Los números computables”, con una aplicación al problema de decisión.

4.1. Clasificación del software

Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a fines prácticos podemos clasificarlo en tres grandes tipos:

  • SOFTWARE DE SISTEMA:

Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:

• Sistemas operativos
• Controladores de dispositivos
• Herramientas de diagnóstico
• Herramientas de Corrección y Optimización
• Servidores
• Utilidades

  • SOFTWARE DE PROGRAMACIÓN:

Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros:

• Editores de texto
• Compiladores e intérpretes
• Enlazadores
• Depuradores

• Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).

  • SOFTWARE DE APLICACIÓN: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Entre otros:

• Aplicaciones para Control de sistemas y automatización industrial
• Aplicaciones ofimáticas
• Software educativo
• Software empresarial
• Bases de datos
• Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
• Videojuegos
• Software médico
• Software de Cálculo Numérico y simbólico.
• Software de Diseño Asistido (CAD)
• Software de Control Numérico (CAM)