dijous, 27 d’octubre del 2011

MME - PERIFÉRICOS DE ENTRADA, SALIDA Y MIXTOS

PERIFÉRICOS

Los periféricos son los dispositivos que nos permiten la entrada y salida de información en un ordenador. 
Los puede haber de entrada, de salida y mixtos:

- Periféricos de Entrada:  Teclado, Raton, Joystick, Webcam, Lector de códigos de barras, Microfono, Escaner, etc...
- Periféricos de Salida: Monitor, Impresora, Fax, Altavoces, Proyerctor digital, Auriculares, etc...
- Periféricos Mixtos: Grabadora y/o lector de CD y DVD, Pantalla táctil, Impresoras multifunción, etc...

IRQ

¿Que son?

Una interrupción es una suspensión temporal de la ejecución de un programa, para pasar a ejecutar una subrutina de servicio de interupción, la cual, por lo general, no forma parte del programa (generalmente perteneciente al sistema operativo, o a la BIOS). Luego de finalizada dicha subrutina, se reanuda la ejecución del programa.

Relación IRQ-Periféricos


Colisiones entre IRQ

Todos los dispositivos que quieran comunicarse con el procesador por medio de interrupciones debe tener asignada una línea única capaz de avisar al CPU que le requiere para una operación. Esta línea es la llamada IRQ (Interrupt ReQuest, petición de interrupción).
Este debe ser capaz de habilitar o inhibir líneas de interrución (enmascarar), y establecer prioridades entre las distintas interrupciones habilitadas.

Cuando varias líneas de petición de interrupción se activan a la vez, el controlador de interrupciones utilizará estas prioridades para escoger la interrupción sobre la que informará al procesador principal. Sin embargo hay interrupciones que no se pueden enmascarar o deshabilitar, las conocidas como interrupciones no enmascarables o NMI.
Un procesador principal que no tenga un controlador de interrupciones integrado, suele tener una única línea de interrupción llamada habitualmente INT. Esta línea es activada por el controlador de interrupciones cuando tiene una interrupción que servir.
Las rutinas de interrupción generalmente toman un pequeño tiempo de ejecución.

Pasos para el procesamiento de una IRQ:
  1. Terminar la ejecución de la instrucción de máquina en curso.
  2. Salva el valor de contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la última instrucción.
  3. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (Interrupt Service Routine (ISR)) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción.
  4. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.

dilluns, 10 d’octubre del 2011

10.10.11 - MME - ELEMENTOS FUNCIONALES DE UN ORDENADOR

JOHN VON NEUMANN (1903-1957)

Fue uno de los más grandes matemáticos del siglo XX. Húngaro-estadounidense que realizó contribuciones importantes en física cuántica, análisis funcional, teoría de conjuntos, ciencias de la computación, economía, análisis numérico, cibernética, hidrodinámica, estadística y muchos otros campos de la matemática.


Fue seleccionado para la primera facultad del Instituto para Estudios Avanzados. Trabajo en el Proyecto Manhattan. Resolvió pasos fundamentales de la física nuclear. Se le considera el padre de la teoría de juegos.
Fue pionero de la computadora digital moderna, y de la aplicación de la teoría de operadores a la mecánica cuántica. Creo el concepto de programa almacenado, lo que permitió la lectura de un programa dentro de la memoria de la computadora, y después la ejecución de las instrucciones del mismo sin tener que volverlas a escribir. Esto dio a las computadoras flexibilidad y confiabilidad, haciéndolas más rápidas y menos sujetas a errores que los programas mecánicos. Su nueva tecnología usaba el sistema Binario en vez del Decimal.





ARQUITECTURA DE VON NEUMANN


Es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos. Nace a raíz de su colaboración en el proyecto ENIAC. En 1949, había encontrado y desarrollado la solución a este problema. 
La organización de esta arquitectura es la siguiente:


Consta de 5 partes:  La unidad aritmético-lógica, o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida, y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes. Realiza, los siguientes pasos:



1.- Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.
2.- Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.
3.- Decodifica la instrucción mediante la unidad de control. Está se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.
4.- Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda tomar decisiones, que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.


¿QUE ES UN PROCESADOR?

La CPU, es un componente digital capaz de interpretar instrucciones de forma ordenada, de procesar datos y de generar la información requerida.
Se encarga de controlar todas las tareas y procesos que se realizan dentro del ordenador: la memoria disponible, información a procesar, etc..
Consta de dos partes:
Unidad de Control y Unidad Aritmetologica.

Estructura de un procesador:

Funcionamiento de un procesador:

  1. El PC (Program Counter), contiene la dirección de la instrucción a ejecutar. La UC (Unidad de control), genera las señales necesarias para activar la memoria (mediante el Bus de Control) y introduce la dirección del PC en el bus de direcciones.
  2. La memoria, recibe la señal e introduce el dato que obtiene dentro de la dirección pedida, en el bus de datos. Activa una señal de control para indicarle a la CPU, que ya ha realizado la instrucción.
  3. La CPU recibe la señal y envía el dato obtenido al registro de instrucción (en la UC). Ahora se actualiza el PC con la siguiente instrucción. El dato arriba al descodificador y este genera las señales para poder ejecutar la instrucción.
  4. Una vez realizada la instrucción completa, la UC, introduce el resultado en el bus de datos, y en el bus de control envia una señal para activar la memoria, y en el bus de direcciones introduce el contenido de la dirección de destino.



CRONOLOGÍA DE LOS PROCESADORES

PROCESADOR
BITS
MARCA
VELOCIDAD (aprox)
4004 (a.1971)
4
INTEL
740KHz
8008 (a.1972)
8
INTEL
740KHz
i8008
14
INTEL
2MHz
MOS6502 (a.1975)
8
MOS Technology
1,79MHz
Zilog Z80 (a.1976)
8
Zilog
1,77MHz
iAPX 86 & i8088 a,1978/79)
16
INTEL
4,77MHz
iAPX 286 (a.1982)
16
INTEL
6/8MHz inicialmente
I386 (a.1985)
32
INTEL
33MHz
AMD80386 (a.1991)
32
AMD
40MHz
i486 (a.1989)
32
INTEL
40MHz a 120MHz
PENTIUM (a.1993)
32
INTEL
PENTIUM PRO (a.1995)
64




166MHz a 650MHz
PENTIUM II (a.1997)
64
INTEL
PENTIUM III (a.1999)
64
INTEL
PENTIUM IV (a.2000)
64
INTEL
AMD586
64
AMD


233 a 550 MHz
K5 (a.1996)
32
AMD
K6-2 (a.1997)
32
AMD
DUAL CORE
64
INTEL




LÓGICA CABLEADA

Es una forma de realizar controles, en la que el tratamiento de datos se efectúa en conjunto con contactores o relés auxiliares, frecuentemente asociados a temporizadores y contadores.
En informática, utiliza compuertas lógicas discretas.

Circuitos creados con un cierto valor de entrada, para que nos den una salida.

LÓGICA PROGRAMADA

Son dispositivos logicos programables (PLD), los cuales no tienen una función establecida. Antes de utilizarlo, tiene que ser programado.

RISC: (Reduced Instruction Set Computer)

Es un tipo de microprocesador con las siguientes características fundamentales:
  1. Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
  2. Solo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

CISC: (Complex Instruction Set Computer)

Los microprocesadores cisc tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operacioens complejas entre operandos situados en la memoria o en los registros internos, en contraposicion a la arquitectura RISC.

Mips: (millones de instrucciones por segundo)

Es una forma de medir la potencia de los procesadores, sin embargo esta medida solo es útil para comparar procesadores con el mismo juego de instrucciones y usando benchmarks que fueron compilados por el mismo compilador y con el mismo nivel de optimización.

Mflops: (millones de operaciones de punto flotante por segundo)

Para usarlos como medida de rendimiento de punto flotante una referencia estándar debe ser establecida para todas las computadoras de interés. Uno de ellos es el estándar LINPACK.

BENCHMARK

Es una técnica utilizada para medir el rendimiento de un sistema o componente del mismo, (benchmark=comparativa).
Se entiende que un benchmark es el resultado de la ejecución de un programa informático o un conjunto de programas en una máquina, con el objetivo de estimar el rendimiento de un elemento concreto y poder comparar los resultados con máquinas similares.

CACHE

Es una memoria más pequeña y rápida, la cual almacena copias de datos ubicados en la memoria principal que se utilizan con más frecuencia. Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.

¿Que son los niveles de cache? ¿Donde están situados los niveles de cache?

Cuanto más cercana al procesador más rápida, más cara y más pequeña. Debido a esto usamos los niveles de cache L1, L2, L3 y L4.

  • L1: Conocido como caché interno, es el nivel más cercano a la CPU (mismo núcleo) con lo que el acceso se produce a la velocidad de trabajo del procesador. Presenta un tamaño muy reducido. Dividido en dos partes: Una para datos (localidad temporal) y otra para instrucciones (localidad espacial)
  • L2: Conocido como caché externo, inicialmente se instalaba en la placa base. Ahora generalmente vienen incorporados en el procesador.
  • L3: Se encuentra en algunas placas base, procesadores y tarjetas de interfaz.
  • L4: Se encuentra ubicado en los periféricos y en algunos procesadores.
Si el procesador necesita un dato de la memoria, comprueba nivel a nivel en cual de ellos se encuentra. El sistema se complementa con un algoritmo que es capaz de colocar los datos que más utilizas en los niveles más cercanos al procesador.




divendres, 7 d’octubre del 2011

07.10.11 - MME - Números Reales: Coma o Punto Flotante

Son un convenio al que se ha llegado para el estándar de los números reales.

Hay dos tipos de Punto Flotante:


- Coma Flotante Simple (32 Bits).
- Coma Flotante Extenso (64 Bits).

Dentro del Punto Flotante existen 3 elementos.


PUNTO FLOTANTE
SIGNO
EXPONENTE
MANTISA

SIMPLE
1 BIT
8 BITS
23 BITS
EXTENSO
1 BIT
10 BITS
53 BITS


El exponente usa un código de Exceso 128 para el formato simple. (És el nº de veces que adelantas o retrasas la coma, +128).

Exp -128 = 0
Exp       0 = 128
Exp   128 = 256


La mantisa, siempre en forma normal 0,1... es todo lo que hay detras de la coma.

dimarts, 4 d’octubre del 2011

04.10.11 - MME - SISTEMAS DE NUMERACIÓN


DECIMAL A BINARIO

Cogemos el nº decimal y buscamos la mitad aproximada del número hasta llegar a uno. A cada valor resultante le aplicamos un 1 o un 0. Los números pares, los anotaremos como 0's y los números impares, los anotaremos como 1's.
A continuación, cogemos el último nº resultante y se coloca el primero, y el resto los colocamos de abajo a arriba, siguiendo el patrón de la división lineal.

BINARIO A DECIMAL

Consiste en que cada Bit a 1, lo sustituimos por 2x, donde x hace referencia a su posición, y los vamos sumando hasta obtener el resultado final.

Cogemos el nº binario, y marcamos las posiciones, y descartamos los 0's y colocamos los valores en las posiciones (con ayuda de la tabla) y sumamos.

POSICIONES

20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
26 = 64
27 = 128


OPERACIONES ARITMÉTICAS CON NÚMEROS BINARIOS

SUMA:

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 =10
Ejemplos:

111
+ 01
100


1 + 1 es 0 y me llevo 1; 1 + 1 es 0 y me llevo 1 = 100


1101111
+ 0 1 1 1
10010

En casos como este en el que se acumulan tres 1's se suma 1 + 1 = 0 y me llevo 1, y 1 + 0 = 1


RESTA:

0 – 0 = 0
                  0 – 1 = 1 (+1 al sig.)
1 – 0 = 1
1 – 1 = 0
1010
-111111
0011
0 – 1 = 1 y me llevo 1 abajo, 1 – 1 = 0; = 0 – 1 = 1 y 1 para el siguiente e igual.

MULTIPLICACIÓN:

0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1


TABLA DE LA VERDAD:

A
B
NO (A)
“and” A Y B
(…multiplicar)
“or”
A o B
“Exclusive”
A XOR B
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0

* Con estas 8 operaciones, podemos construir todas las operaciones de un procesador.

SISTEMA OCTAL

Tiene una Base 8 = 23 . Valores individuales entre 0 y 7, y tiene un máximo de 3 bits 111.

PASAR DE DECIMAL A OCTAL

Primero, pasamos el decimal a binario, siguiendo el procedimiento que hemos explicado antes. A partir de aquí, hacemos grupos de 3 comenzando desde la derecha (LSB), y representamos el nº decimal de cada trío. (Cada grupo es la relación con un dígito, y cada grupo se reposiciona).

PASAR DE OCTAL A DECIMAL

Primero, representaremos cada símbolo octal en forma de 3 bits. Por ejemplo el nº 23 se descompondría así:
2 = 010 y 3 = 011

Se tomaría el nº seguido, por el orden que tienen los símbolos y quedaría así: 010011. Entonces, posicionamos los números y calculamos su valor individual, dejando atrás los 0's y sumamos.

SISTEMA HEXADECIMAL

Tiene una Base 16 = 24. Valores individuales entre 0 y 15, y tiene un máximo de 4 bits 1111.

PASAR DE DECIMAL A HEXADECIMAL

Es el mismo procedimiento que en el sistema octal, pero haciendo grupos de 4 en vez de tríos.

Otra de las diferencias, es que como solo podemos representar dígitos de bit, cuando llegamos al 10, los sustituimos por letras: A = 10; B = 11; C = 12; D = 13; E = 14 y F = 15.

PASAR DE HEXADECIMAL A DECIMAL

Seguimos el mismo proceso que en el sistema octal, pero con un número de 8 bits.



REPRESENTACIÓN DE NÚMEROS NEGATIVOS

Bit Signo: De los bits que utilizamos, reservamos el de mas a la izquierda (MSB) para el signo.

Ej: 8 Bits x xxxxxxx                    0 = Negativo
                ↑      ↑                         1 = Positivo
             signo número


Complemento A1 → Ca1:

1º.- Pasar el Nº Binario en forma del Nº de Bits indicado.2º.- Complementamos todos los bits 1 a 1, si el nº es negativo.

-23 = 10111               0 00 10111
                                   1 11 01000

Pasar de Ca1 a Decimal:

1º.- Mirar si el MSB es 1, para el complemento 1 a 1 de cada bit.
2º.- Pasar el resultado a decimal, con la operación normal.

Ex: -23               1 11 01000
                          0 00 10111



Complemento A2 → Ca2:

1º.- Hacer el Ca1.
2º.- Si es negativo, sumar 1.

Ex: -23                 0 00 10111
                            1 11 01000
                                          +1
                            1 11 01001 = -23Ca2


Forma práctica, en caso de que sea negativo: Una vez que tenemos el binario en la forma de bits indicada, comenzamos por el LSB, escribimos el mismo bit, hasta que encontremos el 1r uno. Y copiamos este 1, tal cual esta y después complementamos el resto de bits.