lunes, 25 de junio de 2012

Ciclo de Procesamiento - (CPU)

Ciclo de procesamiento.
Es posible maravillarse al darse cuenta la cantidad de cosas que puede hacer una computadora, incluso puede parecer cosa de magia, pero la forma en que la computadora trabaja está basada en conceptos simples. Todos los datos, como palabras, números, imágenes o sonidos que se ponen en las computadoras son traducidos a códigos sencillos y manipulados de modo relativamente simple por los componentes de procesamiento de la computadora. Gracias a esa simpleza para representar datos y el poder de procesamiento, pueden procesarse millones de esas codificaciones en cada segundo.
El procesamiento de una microcomputadora tiene lugar en la unidad Central de Procesamiento (CPU). Dentro del CPU las instrucciones de programa son recibidas y traducidas con ayuda de un conjunto de instrucciones internas y del microcódigo. La manipulación de los datos es dirigida por la unidad de control y cuando se trata de operaciones lógicas o aritméticas, es llevada a cabo en la Unidad Aritmético Lógica. Estas unidades se encuentran conectadas a los registros que mantienen los datos durante su procesamiento.

Memoria

Memoria: El CPU contiene instrucciones básicas para operar la computadora, pero no tiene capacidad para mantener programas enteros o grandes cantidades de datos de manera permanente. Los registros del CPU, señalados en el párrafo anterior, son ubicaciones pequeñas que sólo pueden mantener algunos bytes a la vez. Por esta razón se hace necesario contar con algún recurso con capacidad disponible para millones de bytes que permita almacenar instrucciones y datos mientras estén en uso. Este espacio es llamado memoria principal, almacenamiento primario o interno, o simplemente memoria. En la memoria principal es donde se almacenan de manera temporal: los datos que van a ser procesados, las instrucciones para tratar los datos (que constituyen el programa) y los datos resultantes del proceso (la información) antes de ser guardados en un dispositivo de almacenamiento secundario o en espera de ser enviados a un dispositivo de salida.

Esta memoria principal que se encuentra incorporada a la unidad del sistema puede ser de dos tipos: la memoria permanente y la memoria volátil. Los chips capaces de conservar los datos aun cuando la computadora esté apagada se llaman memoria permanente o no volátil. Por otro lado, aquellos chips, que pierden los contenidos que almacenan al interrumpir la energía de la computadora, es decir, conservan su contenido de manera temporal y sólo mientras está encendida la computadora, se denomina memoria volátil o no permanente.

La mayor parte de la memoria en una microcomputadora es memoria de tipo volátil y su finalidad es mantener datos e instrucciones para su procesamiento al ejecutar un programa. Como al apagar la máquina el contenido de la memoria volátil se borra, es importante guardar los trabajos a medida que se van realizando o modificando en un medio de almacenamiento secundario, como el disco duro. Una vez allí almacenado, si hay un corte de luz, el trabajo realizado hasta ese momento no se pierde. Algunas aplicaciones cuentan con la funcionalidad de guardar automáticamente cada determinado tiempo, facilidad que es bastante recomendable usar. Mientras que la memoria permanente tiene una finalidad distinta. En ella están almacenadas de forma permanentemente las instrucciones de inicio, que son las que activan los componentes de la computadora cuando se enciende.

Unidad Central de Procesamiento - CPU (UC+ALU)

Unidad central de procesamiento
La Unidad Central de Procesamiento (CPU – Central Processing Unit) , también es denominada procesador, porque es la parte de la computadora que se encarga de ejecutar las instrucciones del programa y procesar datos.
Por si misma, la Unidad Central de Procesamiento puede considerarse constituida por dos partes distintivas, que en las microcomputadoras se encuentran juntas en el mismo chip del microprocesador. Estas dos partes son: La unidad de control y la unidad aritmético-lógica.


Unidad de control
La unidad de control le indica al resto del sistema como llevar a cabo las instrucciones de un programa. Comanda las señales electrónicas entre la memoria y la unidad aritmético-lógica, y entre el CPU y los dispositivos de entrada y salida. Puede compararse con un agente de tránsito dirigiendo el flujo de datos. El conjunto de instrucciones para llevar a cabo los comandos están incorporadas en la unidad de control y enumeran todas las operaciones que puede realizar el CPU.
Cada instrucción constitutiva de este conjunto de instrucciones es expresado en una serie de direcciones básicas llamadas microcódigo, que le dicen al CPU cómo realizar operaciones más complejas. Para ejecutar cualquier programa, cada comando del mismo se desglosa en instrucciones que corresponden a las del juego de instrucciones disponibles en el CPU. Cuando se ejecuta un programa, se lleva a cabo un proceso a gran velocidad, en que el CPU traduce a microcódigo y lleva a cabo ordenadamente (según indica el programa) millones de instrucciones en cada segundo.
Unidad aritmético – lógica
El procesamiento practicado a los datos en una computadora involucra en gran medida operaciones de comparación y aritmética puesto que, como se muestra más adelante, esos datos se almacenan como números o código binario. Las operaciones lógicas se refieren a comparaciones, como determinar si un número es igual, mayor o menor que otro. Las operaciones lógicas además cuentan con sus opuestos, es decir, para “igual que” existe el “no es igual que”. Las operaciones aritméticas se refieren a la suma, resta, multiplicación y división.
Si la instrucción implica operaciones aritméticas o lógicas, la unidad de control pasa ésta instrucción directamente a la Unidad Aritmético Lógica (ALU – arithmetic-logic unit) que está reservada específicamente para realizar las operaciones aritméticas y las operaciones lógicas en la computadora. Dentro del CPU, formando parte de la unidad de control y de la unidad aritmético lógica, se incluyen un grupo de registros. Los registros constituyen áreas especiales de almacenamiento adicional y de montaje de alta velocidad, que mantienen temporalmente datos e instrucciones durante el procesamiento. Su finalidad es hacer más eficiente el procesamiento. Al formar parte de la unidad de control y de la Unidad aritmético lógica su contenido se manipula con más rapidez inclusive que el de la memoria principal.

lunes, 19 de abril de 2010

Circuitos Integrados - Compuertas Lógicas

Circuitos digitales
Son circuitos electrónicos que trabajan con números, y que con la tecnología con la que están realizados, estos números están representados en binario. En la figura 1 se muestra el esquema general de un circuito digital, que tiene m bits de entrada y n bits de salida.
Si tomamos un circuito genérico y miramos en su interior, podemos ver que está constituido por otros circuitos más simples, interconectados entre sí. En la figura 2 hay un ejemplo de un circuito con 4 bits de entrada y 3 de salida, constituido por otros dos circuitos más simples e interconectados entre ellos.
Estos subcircuitos se pueden clasificar en dos tipos:

  • Circuitos combinacionales
  • Circuitos secuenciales

Figura 1: Un circuito digital, con m bits de entrada y n de salida

Figura 2: Un circuito digital constituido por otros dos circuitos interconectados

Así, podemos decir que todo circuito digital genérico tendrá una parte combinacional y otra parte secuencial. Nos centraremos en los circuitos combinacionales, que no tienen parte secuencial. Estos circuitos se caracterizan porque NO almacenan información.
Las salidas están relacionadas con las entradas a través de una función booleana. Los circuitos secuenciales son capaces de “recordar” números que han recibido anteriormente.

En un circuito combinacional, las salidas dependen directamente del valor de las entradas, y no pueden por tanto almacenar ningún tipo de información, sólo realizan transformaciones en las entradas. Estos circuitos quedan caracterizados mediante funciones booleanas.

Cada bit de salida de un circuito combinacional, se obtiene mediante una función booleana aplicado a las variables de entrada. Así, si un circuito tiene n salidas, necesitaremos n funciones booleanas para caracterizarlo.

COMPUERTAS LÓGICAS

Las computadoras digitales utilizan el sistema de números binarios, que tiene dos dígitos 0 y 1. Un dígito binario se denomina un bit. La información está representada en las computadoras digitales en grupos de bits. Utilizando diversas técnicas de codificación los grupos de bits pueden hacerse que representen no solamente números binarios sino también otros símbolos discretos cualesquiera, tales como dígitos decimales o letras de alfabeto. Utilizando arreglos binarios y diversas técnicas de codificación, los dígitos binarios o grupos de bits pueden utilizarse para desarrollar conjuntos completos de instrucciones para realizar diversos tipos de cálculos.
La información binaria se representa en un sistema digital por cantidades físicas denominadas señales, Las señales eléctricas tales como voltajes existen a través del sistema digital en cualquiera de dos valores reconocibles y representan una variable binaria igual a 1 o 0. Por ejemplo, un sistema digital particular puede emplear una señal de 3 volts para representar el binario "1" y 0.5 volts para el binario "0". La siguiente ilustración muestra un ejemplo de una señal binaria.
Como se muestra en la figura, cada valor binario tiene una desviación aceptable del valor nominal. La región intermedia entre las dos regiones permitidas se cruza solamente durante la transición de estado. Los terminales de entrada de un circuito digital aceptan señales binarias dentro de las tolerancias permitidas y los circuitos responden en los terminales de salida con señales binarias que caen dentro de las tolerancias permitidas.
La lógica binaria tiene que ver con variables binarias y con operaciones que toman un sentido lógico. La manipulación de información binaria se hace por circuitos lógicos que se denominan Compuertas.
Las compuertas son bloques del hardware que producen señales en binario 1 ó 0 cuando se satisfacen los requisitos de entrada lógica. Las diversas compuertas lógicas se encuentran comúnmente en sistemas de computadoras digitales. Cada compuerta tiene un símbolo gráfico diferente y su operación puede describirse por medio de una función algebraica. Las relaciones entrada - salida de las variables binarias para cada compuerta pueden representarse en forma tabular en una tabla de verdad.
A continuación se detallan los nombres, símbolos, gráficos, funciones algebraicas, y tablas de verdad de las compuertas más usadas.

Compuerta AND:

Cada compuerta tiene dos variables de entrada designadas por A y B y una salida binaria designada por x.
La compuerta AND produce la multiplicación lógica AND: esto es: la salida es 1 si la entrada A y la entrada B están ambas en el binario 1: de otra manera, la salida es 0.
Estas condiciones también son especificadas en la tabla de verdad para la compuerta AND. La tabla muestra que la salida x es 1 solamente cuando ambas entradas A y B están en 1.
El símbolo de operación algebraico de la función AND es el mismo que el símbolo de la multiplicación de la aritmética ordinaria (*).
Las compuertas AND pueden tener más de dos entradas y por definición, la salida es 1 si todas las entradas son 1.

Compuerta OR:
La compuerta OR produce la función sumadora, esto es, la salida es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra manera, la salida es 0.
El símbolo algebraico de la función OR (+), es igual a la operación de aritmética de suma.
Las compuertas OR pueden tener más de dos entradas y por definición la salida es 1 si cualquier entrada es 1.

Compuerta NOT:
El circuito NOT es un inversor que invierte el nivel lógico de una señal binaria. Produce el NOT, o función complementaria. El símbolo algebraico utilizado para el complemento es una barra sobra el símbolo de la variable binaria.
Si la variable binaria posee un valor 0, la compuerta NOT cambia su estado al valor 1 y viceversa.
El círculo pequeño en la salida de un símbolo gráfico de un inversor designa un inversor lógico. Es decir cambia los valores binarios 1 a 0 y viceversa.

Compuerta Separador (yes):
Un símbolo triángulo por sí mismo designa un circuito separador, el cual no produce ninguna función lógica particular puesto que el valor binario de la salida es el mismo de la entrada.
Este circuito se utiliza simplemente para amplificación de la señal. Por ejemplo, un separador que utiliza 5 volt para el binario 1, producirá una salida de 5 volt cuando la entrada es 5 volt. Sin embargo, la corriente producida a la salida es muy superior a la corriente suministrada a la entrada de la misma.
De ésta manera, un separador puede excitar muchas otras compuertas que requieren una cantidad mayor de corriente que de otra manera no se encontraría en la pequeña cantidad de corriente aplicada a la entrada del separador.

Compuerta NAND:

Es el complemento de la función AND, como se indica por el símbolo gráfico, que consiste en una compuerta AND seguida por un pequeño círculo (quiere decir que invierte la señal).
La designación NAND se deriva de la abreviación NOT - AND. Una designación más adecuada habría sido AND invertido puesto que es la función AND la que se ha invertido.
Las compuertas NAND pueden tener más de dos entradas, y la salida es siempre el complemento de la función AND.

Puerta XOR

Fijándonos en esta tabla podemos ver lo que hace: esta operación devuelve ’0’ cuando los dos bits sobre los que operan son iguales, y ’1’ cuando son distintos.




miércoles, 7 de abril de 2010

Bibliografía

Bibliografía:
Los microprocesadores Intel avanzados. Barry B. Brey
Organización de computadoras. Un enfoque estructurado. Andrew S. Tanenbaum – Prentice Hall
Organización y arquitectura de computadoras. Garza Rodríguez – Prentice Hall

BIBLIOGRAFIA RECOMENDADA
- M. Morris Mano : Arquitectura de Computadoras
- M.C. Guinzburg : Técnicas Digitales con Circuitos Integrados
- Taub - Schilling : Electrónica Digital Integrada
- A.M. Rojas Lagarde : Diseño Lógico de Circuitos Binarios
- Tokheim : Introducción a los Microprocesadores
- Loewenthal : Introducción a los Microprocesadores
- M.C. Guinzburg : Operación y Programación de Micros, Minis y Grandes Computadoras
- M.C. Guinzburg : Operación y Programación de Computadoras (Edición 4)
- W.A. Triebel - B. Skar : El microprocesador 80386 DX
- Barry B. Brey : Los microprocesadores Intel
- B. B. Brey : Los microprocesadores Intel Avanzados
- R. Martinez Tomas : Lenguajes Ensambladores
- J. Terry Godfrey : Lenguaje Ensamblador para Microcomputadora IBM
- Andrew S. Tanenbaum : Organización de Computadoras
- Peterson : Sistemas Operativos
- Donovan : Introducción a los Sistemas Operativos
- Salas Parrilla : Sistemas Operativos y Compiladores
- Peter Abel : Lenguaje Ensamblador y Programación para PC IBM y Compatibles

Unidad 1

Sistema Binario
Es el Sistema de numeración que utiliza internamente el hardware de las computadoras actuales. Se basa en la representación de cantidades utilizando los dígitos 1 y 0. Por lo tanto, es base es 2 (Numero de dígitos del sistema).
Cada dígito de un número representado en este sistema se denomina Bit (Contracción de Binary Digit).

Operaciones del Álgebra de Boole:
Las propiedades del Algebra de Boole son las siguientes:
CONMUTATIVAS
A+B = B+A
A.B = B.A
ELEMENTO NEUTRO
A+0 = A
A.1 = A
DISTRIBUTIVA
A + (B.C) = (A+B).(A.C)
A.(B+C) = A.B + A.C
ELEMENTO INVERSO
A + A = 1
A . A = 0
NEGACION
0 = 1
1 = 0

Terminología

Unidades de Almacenamiento ó Memoria

1 Bit (es la unidad mínima de almacenamiento, 0/1)
8 Bits = 1 Byte
1024 Bytes = 1 Kilobyte (un archivo de texto plano, 20 kb)
1024 Kilobytes = 1 Megabyte (un mp3, 3 mb)
1024 Megabytes = 1 Gigabyte (una película en DivX, 1 gb)
1024 Gigabytes = 1 Terabyte (800 películas, 1 tb)
1024 Terabytes = 1 Petabyte (toda la información de Google, entre 1 y 2 petabytes)
1024 Petabytes = 1 Exabyte (Internet ocupa entre 100 y 300 Exabytes)
1024 Exabytes = 1 Zettabyte (a partir de aqui no existen comparativas reales)
1024 Zettabytes = 1 YottaByte
1024 YottaBytes = 1 Brontobyte
1024 Brontobytes = 1 GeopByte
1024 GeopBytes = 1 Saganbyte
1024 Saganbytes = 1 Jotabyte

Significado de los términos CISC y RISC:

CISC (complex instruction set computer) Computadoras con un conjunto de instrucciones complejo.
RISC (reduced instruction set computer) Computadoras con un conjunto de instrucciones reducido.