jueves, 19 de noviembre de 2015

Practica de lenguaje ensamblador

Buen día.

El día de hoy vamos hacer un programa con el lenguaje ensamblador, recordemos que el lenguaje ensamblador es un lenguaje de bajo de nivel.

Imagen tomada por Yeferson Ladino

Primero montamos la unidad de  ejecutamos el programa debug, para comprobar que el programa debug funcione validamos  con el comando r  para ver los registros de memoria, con esto comprobamos que estamos ejecutando el programa debug.
Después editamos las posiciones de memoria 0200  y 0201 en la cual colocamos 0 y 1 para que nos guarde esos dos caracteres y podamos hacer la suma.

Imagen tomada por Yeferson Ladino

Validamos  con el comando d en la posición de memoria 0200 que nos halla guardado los caracteres 0 y 1.
Imagen tomada por Yeferson Ladino

Editamos con el comando a, la cual nos escoge la posición de memoria 0100 que es donde se realiza los comandos  o movimientos, para ser la serie de fibonnaci. En la línea 0100  es el contador de dirección (direccionamiento directo), en la posición 0103  se indica mover el contenido a 0200 (direccionamiento directo por registro).  En la posición de memoria 0106 se india que en el direccionamiento  adiciónele un 1, en la posición de memoria 0109 se indica adicionar al registro al, en la posición de memoria 010B se indica que incremente el direccionamiento en bp, en la posición de memoria 010C se indica mover al registro al y adicionarle 1. Por ultimo en la posición 010F se indica hacer un salto en la posición de memoria 0103, se da enter y se sale de la edición del código.

Imagen tomada por Yeferson Ladino

Digitamos el comando t, la cual hace que el programa valla adicionando  sumando en las posiciones de memoria en 0200, hay que dar varias veces la opción para que nos muestre varios números.

Imagen tomada por Yeferson Ladino

Comprobamos que la aplicación funciona con el comando d y la posición de memoria 0200 y la secuencia aparece correctamente.






martes, 17 de noviembre de 2015

Infografia del Disco Duro

Buen día.

El día de hoy les comparto otra infografía realizada por mis compañero Erik Montaña, Samir Díaz y Dario Montealegre.

Imagen tomada por Yeferson Ladino.

miércoles, 11 de noviembre de 2015

INFOGRAFÍA PLACA BASE

Buen día

El día de hoy les comparto una infografía de la placa base realizada con mis compañeros Samir Diaz, Erik Montaña y Dario Montealegre.

Imagen tomada por Yeferson Ladino

jueves, 5 de noviembre de 2015

Instalación maquina virtual DosBox y Debug.

El día de hoy les comparto un link de el canal de youtube "Programación y más", para la instalación y de la maquina virtual y el debug, dar click a la imagen para dirigirnos al canal de youtube.

Imagen tomada de https://www.youtube.com/watch?v=fsmHXU4MyM0








miércoles, 21 de octubre de 2015

Memoria CMOS-LA BIOS Y MENEJO DE INTERRUPCIONES

Imagen creada por Yeferson Ladino

La memoria CMOS es la unión entre software y el hardware llamado Firmware, cabe resaltar que los dispositivos de hora son firmware como las usb, ya que llevan sus controladores dentro del dispositivo sin necesidad de instalarlo.
Esta compuesta por dos partes El BIOS y el SETUP:

SETUP: Son los parámetros de configuración personalizada por el usuario al arrancar el sistema, tales como la hora y la fecha, el inicio del boot, contraseña para ingresar el setup, etc.  Hay que recordar que no es recomendable configurar bastantes parámetros,  porque si no el sistema se va a demorar en arrancar.

El BIOS: (Basic Input/Output System ) El sistema básico de entrada y salida, le proporciona información al sistema operativo de los componentes físicos del sistema. El proceso del BIOS es el siguiente:
* El que arranca el sistema  es la fuente por un pulso de energía, esto se llama el power good, esto le indica al procesador que los dispositivos conectados al equipo ya se encuentran energizados.
* El Boot Strap Este contiene una dirección después del primer mega de la memoria en la cual apunta a un arranque del BIOS.
* Se genera una copia del BIOS en la memoria RAM, esto va después del primer MEGA.
* Se inicia la ejecución del BIOS con la tabla de interrupción.
* Después el POST  hace un testeo de los dispositivos y detecta anomalías.  Si un dispositivo tiene una anomalía identificada por el POST, de inmediato este da señales de error, por medio de pitidos

Al finalizar este proceso se inicia el sistema operativo.

Manejo de Interrupciones

El manejo de interrupciones es el tiempo de procesador en la cual se puede realizar una tarea en el sistema operativo, para el manejo de interrupción existen dos llamados:
* Llamados al sistema: Estas interrupciones son del sistema operativo, es decir que el usuario no tiene interacción con estas acciones porque en esta interrupción el sistema operativo entra en modo kernel.

* Llamados al usuario: Estas interrupciones interactuan con el usuario y los periféricos conectados al sistema, ejemplo cuando el usuario mueve el mouse, en ese instante de tiempo hay una interrupción que es bastante rápida y que tiene varias instrucciones para que se mueva el puntero en la pantalla.


miércoles, 14 de octubre de 2015

Mapeado de la memoria RAM

Se construyeron  con circuitos de 64 KB, migrados a 640 MB, los primeros 64 KB componen el modo kernel del sistema operativo, es decir esta parte el usuario no tiene permitido interactuar con la maquina. Esto se llama memoria convencional. Después vienen 6 sectores más de 384 KB este es llamada memoria alta. La unión de estas dos partes forman el primer mega  y es la memoria del sistema operativo DOS, como lo repetimos este sistema esta restringida por el kernel.

Imagen creada por Yeferson Ladino.
Memoria convencional:

Segmento 0: Es la tabla de vectores de interrupción, es el que interrumpe la tarea, para dar paso a la siguiente tarea en la memoria.
Segmento 1: Esta ocupado por datos de el BIOS.
Segmento 2: Esta ocupado por el núcleo del DOS. Tiene tres archivos principales (command.com,  Io.sys y Ms-do.sys).
Segmento 3,4 y 5: Son segmentos que están ocupados por el usuario.
Segmento 6: Parte transitoria del sistema operativo.
Segmento 7: Reservado para el sistema MONO .
Segmento  8: Reservado para GCA .
Segmento  9: Reservado para el VGA .

Memoria Alta:

Segmento A y B (640 Kb a 768 Kb): Adaptador gráfico, son los encargados de la memoria de video del procesador y dependiendo la tarjeta de video que este instalada en la board.
Segmento C (768 Kb a 832 Kb): Es destinada para la memoria del disco y el video el BIOS.
Segmento D (632 Kb a 896 Kb): Se utiliza para las plaquetas que tienen una tarea especifica, tales como la tarjeta de red, tarjeta PCI o la unidad de CD.
Segmento E(896 Kb a 960 Kb): Es el encargado de intercambio de información entre la memoria expandida y la memoria DOS, entre 0 y 1 MB.
Segmento F (960 Kb a 1024 Kb): Contiene las instrucciones de la memoria ROM, como el inicio del  BIOS.


Después viene la memora extendida que va de 32 MB hasta los 32 GB , el resto de los procesos de la memoria son procesos del usuario de entrada y salida.

jueves, 8 de octubre de 2015

Jerarquía de la memoria

La memoria tiene la siguiente jerarquía:

Imagen creada por Yeferson Ladino.

Memoria Virtual: Es parte del HD o Hard Disk, es el doble de la memoria fisica (RAM), se extrae de la memoria direccionable al  disco duro, en la cual es acorde con la RAM es decir en el momento de apagar el equipo esa memoria se borra. Esta memoria posibilita lo que es la multiprogramación. 

Memoria principal (RAM):  Es una organización de bits  de a 8 Bytes, se habilitan por medio de un bus, que se controla por medio del bus de direcciones (rw-). Los tipos de memoria que han habidos son:
SIMM o Single In-line Memory Module: Esta memoria estaba compuesta por Flip Flops .
Tomado de http://gopichi.blogspot.com/2010/10/memoria-ram-simm-dimm-rimm-y-ddr2.html


DIMM o dual in-line memory module:  Esta memoria estaba compuesta por Flip Flops y tenía dos canales de transferencia de datos.
Tomado de http://tusalonhogar.net/ciencias/tecnologia/haciendounacomputadora/sellecion.htm


DDR o Double Data Rate: Son memorias que tienen circuitos capacitivos (condensadores), esto sirve para que tenga un refresco dinámico es decir que cada capacidad de tiempo cuando esta en el bit 1 se transfiere cierto voltaje al capacitador.
Tomado de http://www.informatica-hoy.com.ar/hardware-pc-desktop/Tipos-de-Memorias-DDR-SDRAM.php

Nota: cabe resaltar que RIMM no es una memoria, es un encapsulado externo que blinda y disipa el calor de las memorias. 


La memoria Cache: memoria especial de acople de velocidad, regula la velocidad baja de la memoria RAM a los registros del procesador, tiene bajo nivel de almacenamiento. La memoria cache tiene tres niveles de ubicación:

Nivel 1: Ubicada en la Board.
Nivel 2: Ubicada en la Board y procesador.
Nivel 3: Ubicaada en la Board, procesador y Chipset.



Comparto una presentación de comparaciones de la jerarquía la memoria:

Imagen creada por Yeferson Ladino.



sábado, 3 de octubre de 2015

Caracteristicas de la ALU y la UC

Comparto un archivo powert point con información de Set de registros,ALU Y UC.


Imagen de Yeferson Ladino

lunes, 28 de septiembre de 2015

Registro de Banderas de 16 bits


Buen día hoy les comparto una tabla del registro de bandera de 16 bits.


Imagen sacada de http://www.zator.com/


Imagen sacada de http://www.zator.com/







viernes, 25 de septiembre de 2015

Arquitectura del procesador (Diagrama en bloques)

Características importantes:


Imagen creada por Yeferson Ladino.



Decodificador de Instrucciones: Tiene como función traducir las instrucciones de un lenguaje ensamblador a un lenguaje de maquina.



Imagen creada por Yeferson Ladino.

Reloj: Esta en Sincronía con el sincronizador de la Board, Sincroniza el flujo de la información.


Set de registros:  El procesador tiene mucho set de registros; son la principales características de los procesadores (core duo, cori 5, Quad core...etc). Cuando el procesador solo tenía un núcleo solo se tenía un set de registros.



Imagen sacada de http://www.zator.com




ALU: Es el registro que le permite al procesador hacer cálculos aritméticos.

UC: Esta a cargo del bus de control y es aquel que da las instrucciones.


Registro de estado: Tiene el registro del procesador de como quedo antes de las instrucciones que se van asignar.


Registro de uso general: Tienen 4 registros de uso general AX BX CX y DX, estos registros son de 16 Bits y se pueden  dividir en 8 (High y Low).

AX 16 bits = AH y AL : Acomulador
BX 16 bits = BH y BL: Base
CX 16 bits = CH Y CL : Contador
DX 16 bits = DH Y DL : datos

Registro de segmento: permiten manejar la totalidad de la memoria direccionable, tiene 4 registros

CS: Code Segment  o segmento de codigo; Es el registro que da las instrucciones.
DS: Data Segment o segmento de datos;  Es el registro que tiene los tipos de caracteres (enteros, caracteres..etc).
SS: Stack Segment o segmento de pila; Es el registro que hace los cálculos entre los segmentos. 
ES: Extra Segement o segmento extra;  Es el que hace las operaciones entre registros.

Registro apuntador: No tiene dato especifico, tiene una dirección  de memoria.

IP: Instruccion Pointer  o Instrucciones a apuntar;  Es el encargado de informar cual es la  siguiente instrucción .
SP: Stack Pointer o Puntero de pila; Es la dirección de donde quedo el ultimo dato de la pila.
BP: Base Pointer o puntero de la base: Es el que ejecuta las instrucciones.
SI y DI: Source Index y Destination Index o Indice fuente y Indice de destino; Utiliza los registros de uso generar para transferir datos (dentro de un rango de posiciones de memoria).

Arquitectura del procesador.

Sabemos que el procesador es el componente que marca la diferencia en una computadora, existen 2 arquitecturas  del procesador y la maquina:

RISC: Reduced Instruction Set Computer o Computador con Conjunto de Instrucciones Reducidas. Esta arquitectura  utiliza la memoria ROM, son procesadores que están dedicado a la red, es decir son procesadores que están diseñados para trabajar en servidores, su forma de funcionar es  con poca cantidad de instrucciones a gran velocidad.

CISC: Complex Instruction Set Computer o Computador con Conjunto de Instrucciones Complejas. Esta arquitectura esta diseñada para trabajar mas en computadores de escritorio, tienen amplia variedad de instrucciones, su función es dividir la instrucciones en pequeñas micro-instrucciones a menor velocidad.

Estas dos arquitecturas están asociadas con 2 arquitecturas de la computadora:

Arquitectura Von Neumann: Trabajan con un solo bus  bidireccional, es decir en un mismo bus entra la entrada de datos y por el mismo bus sale la salida de datos, en cierta velocidad de transferencia. Esta arquitectura esta asociada con la arquitectura del procesador CISC.

Arquitectura Harvard: Esta arquitectura Utiliza módulos separados , maneja mayor comunicación y tiene un bus para lectura y otro bus para escritura, esta arquitectura esta asociada con la arquitectura del procesador RISC.




martes, 22 de septiembre de 2015

Primer parcial

Buen día.

Hoy adjunto las correcciones a las preguntas del primer parcial :



Imagen sacada de preaulas.ecci.edu.co


Corrección: Los tres eventos que marcaron antes de la llegada del procesador, fue la pascalina, la cual era la maquina que ayudaba hacer cálculos rápidos para la época. La maquina analítica, la cual fue la primera computadora en hacer y guardar cálculos mas grandes, los dos echos históricos anteriores ayudaron hacer procesos mas rápidos  de información. Y por ultimo hablamos de la creación del primer transistor por   William Bradford Shockley, la cual ayuda a miniaturizar y los procesadores son unos de los componentes mas pequeños de las computadoras.



Imagen sacada de preaulas.ecci.edu.co

La respuesta es la d, ya que la utilización de sistemas de numeración binaria permitía almacenar y leer muchas cantidades de información en poco tiempo.

Imagen sacada de preaulas.ecci.edu.co

La respuesta a la pregunta 10  es el la b, bus de Control .
La respuesta a la pregunta 11 es bit.

Imagen sacada de preaulas.ecci.edu.co

La respuesta a la pregunta del bit menos significativo del Byte 1 es la respuesta b E.

Imagen sacada de preaulas.ecci.edu.co


La respuesta a la pregunta es en binario 1001001011011001.

lunes, 24 de agosto de 2015

Estructura de datos - organización.

La estructura de datos tiene la siguiente organización:

Bit: Es la unidad mínima de almacenamiento 0 o 1.
Nibble: son 4 bits,  se pueden escribir en número hexadecimal.
Byte: son 8 bits, 2 Nibble.
Word: son 16 bits, 4 Nibble, 2 Byte, almacena tipo de datos (Int,Double).
Double: son 32 bits, 8 Nibble, 4 Byte, 2 Word.
Quat: son 64 bits, 16 Nibble, 8 Byte,  4 Word, 2 Double.

Códigos binarios:  otra forma de representar los números binarios son:

Código ASCII: Es la tabla de números extendidos
                                                                                                                                                                           
tabla de www.elcodigoascii.com.ar


Código BCD: Decimal codificado en binario, este código solo utiliza los 10 primero combinaciones.


Código de Gray o reflejado:  Este código  no pueden cambiar mas de dos bits en la secuencia.











Estructura matemática de la memoria.

En electrónica las primeras memorias eran volátiles, esto significa que sin energía la memoria  se borraba, estos componentes electrónicos se conoces como flip flop.


Para resolver este problema de la energía, volvieron la memoria volatil a una memoria flash insertando en el flip flop un condensador así este almacenaba energía y guardaba los datos de la memoria.


Las memorias tienen 2 acciones leer o escribir (R/W)  y se definen Read es igual a 1 y Write es = 0. Hay que recordar que un bit es un 0 o 1, un Byte tiene 8 bits, la memoria la escribe o lee en 2 cifras hexadecimales, ejemplo:



Se concluye que un registro tiene una longitud de 8 bits, la cual es la unidad de almacenamiento de un Byte.


Ya con los conceptos claros de la imagen anterior podemos de finir que el primer bit de izquierda a derecha es el bit del bus de control la cual hace el control de los operandos con un bit (0 o 1), en la imagen como esta en 0 entonces esta escribiendo la dirección. los dos siguientes bits 1 0  indican la dirección entonces es el bus de direcciones la cual busca la posición en la memoria y escribe el dato, dado que el caso fuera leer y en ningún bus de dirección este el dato, el dato a leer se desecha. Por ultimo encontramos los ultimos 8 bits que es el dato.

En general podemos decir que toda la imagen pertenece a un bus de datos, la cual afecta todas las posiciones en la memoria.






martes, 11 de agosto de 2015

Sistemas de numeración

Podemos definir que un sistema de numeración es un conjunto de números, los cuales son elementos consecutivos del sistema.

Sistema de numeración decimal: Es el sistema que esta conformado por un conjunto de números que van de 0 a 9. Adicional el sistema de numeración tiene operaciones que son suma, resta y multiplicación. También tiene la regla de la Unicidad la que significa que el resultado de las operaciones con los elementos del sistema va  a dar un elemento del sistema.

Sistemas posicionales: Es el sistema que clasifica el número por la magnitud y la ubicación de la cantidad dada. Este sistema esta conformado por:
-Número
-Posición
-Multiplicador

Ejemplo: 572245*10^n-1







Donde 10^n-1 es la magnitud (multiplicador). Entonce el ejemplo terminaría de la siguiente manera:

5*10^0
4*10^1
2*10^2
2*10^3
7*10^4
5*10^5

Notación Ponderada: Sirve para cualquier base, y todos los sistemas de numeración necesitan de la notación ponderada  para expresar las cantidades : e * b ^ n. Ejemplo:
























lunes, 10 de agosto de 2015

Historia de los procesadores.

Buen día.

El día de hoy comparto una línea de tiempo, la cual para mi fueron los echos mas importantes de la historia de los procesadores.

Click en la imagen.


sábado, 8 de agosto de 2015

Historia de los computadores.

Se dice que la primera computadora llega de la era paleolítica, cuando los homo sapiens  utilizaban rocas para hacer cálculos matemáticos básicos para contar los días o meses, después de que pasara esa era llega de China el ábaco, la cual su función no cambiaba porque servia para contar. Mas adelante un matemático Blaise Pascal, se ingenia una maquina diseñada de engranes la cual ayuda a contar con mas rapidez que un ábaco denominada la PASCALINA, en 1816 llega lo que se podría denominar la primera computadora llamada la maquina analítica, diseñada por el Charles Babbage  denominado padre de la computación. Esta maquina hacia cálculos y estaba diseñado por engranes y palancas, la cual tenía tarjetas perforados y por estas tarjetas perforadas se graban los cálculos hechos por dicha maquina. en 1834 la condesa Ada Byron indica que esta maquina analítica además de estar integrada por componentes mecánicos, debería tener un programa interno el cual le ayude hacer cálculos. Este pensamiento la llevo hacer la primera programadora del planeta;  (ADA lenguaje de programación de inteligencia artificial, es llamado así por homenaje a la condesa).


En 1880 Thomas Alva Edison patenta el bombillo incandescente y con esto se empiezan a crear aparatos que tengan electricidad. En 1900 nace la ciencia de la electrónica, la computadoras en esta época estaban diseñadas en tubos de vació es decir que su estado era o encendido o apagado este quiere decir que ya era un lenguaje binario o es 0 o 1. En 1947 nace el primer transistor diseñado por el físico William Bradford Shockley la cual para muchos este suceso parte la historia de la humanidad en dos, este transistor es la unión de 2 materiales químicamente añadidos, la cual tienen electrones libres , gracias al transistor se busca la miniaturización de los aparatos eléctricos.

En 1951 fabrican la primera computadora comercial, llamada UNIVAC, esta computadora hacia cálculos matemáticos bastantes rápidos para la época,  pesaba 7.250 Kg. y ocupaba un cuarto entero. Después de la UNIVAC llega la IBM 701 la cual tenía bancos de conmutación y ya se manejaba con un lenguaje de programación llamado asembler, en 1954 llega el IBM 704, esta maquina estaba soportaba por datos de cintas, la cual ayudaría para mucho después el diseño de los discos duros. Un dato importante para mi país natal llega el primer computador entre los años 1958 a 1960 llega el IBM 1401 a Colombia la cual fue suministrada para el ministerio de hacienda. En 1976 Apple lanza el primer pc personal, era el primer pc la cual combinaba monitor y teclado y estaba a la venta para todo publico.


martes, 4 de agosto de 2015

Primer día de clase.

El primer día de clase de arquitectura de hardware, se realizo la presentación del profesor Oscar Mendoza y los alumnos, adicional se deja estipulado la entrega de trabajos y parciales para el semestre, con los siguientes porcentajes:

40% parcial.
20% Entradas por semana en el blog.
20% Actividad web.
20% Actividad en clase.


Nota: la imagen principal del blog es de http://allsciencemag.com/ pagina de Wallpapers.