lunes, 23 de abril de 2018

Chipsets


¿Qué es el chipset?
Es el componente más importante de la tarjeta madre, es un grupo de chips que trabajan en conjunto para realizar una tarea determinada y su misión es comunicar a todos los elementos que componen el sistema.
El chipset especificara las prestaciones de la tarjeta madre, es decir, el chipset condiciona que procesador soportara la tarjeta madre, a que frecuencia operaran los buses, que tipo de memoria RAM será compatible, y que interfaces de video, disco y los demás puertos serán soportados.
Es ahí donde radica la importancia de conocer sobre el chipset al momento de elegir una computadora.



Funciones y aplicaciones:
El chipset es fundamental para que cualquier computadora funcione ya que es el encargado de enviar las órdenes de la tarjeta madre a procesador para que ambos puedan trabajar con armonía, es decir, permite que la tarjeta madre sea el eje central de nuestra PC comunicando a sus componentes a través de buses
Además se encarga de administrar la información que ingresa y egresa a través de bus principal del procesador e inclusive su función se extiende al uso de la memoria RAM, ROM y las placas de video.
También puede controla la velocidad y la función de la memoria ram, administrar diversos tipos de buses, los discos rigidos y su ancho de banda, asi como gestionar la calidad del acelerador grafico.
El chipset y la tarjeta madre forma un conjunto indisoluble muy importante, se debe tener en cuenta que un buen chipset por si mismo no implica que la tarjeta madre sea en conjunto de calidad.


Como está conformado el chipset (características):
El chipset está formado por dos componentes principales el northbridge (puente norte) y e southbridge (puente sur), cuyos nombre provienen de su ubicación dentro del PCB (circuito impreso) de la tarjera madre, si miramos verticalmente el northbridge quedara junto al procesador mientras que el southbridge quedara abajo junto a las placas de expansión



En la actualidad el northbridge se encuentra integrado dentro del microprocesador.

Importancia:
El northbridge es la parte principal del chipset, se encarga de controlar el tráfico entre el procesador, la memoria RAM, la interfaz de video, las ranuras de expansión y el southbridge a través de una interconexión de buses.
El objetivo del southbridge es controlar un gran número de dispositivos como la PCI (componentes periféricos de interconexión), los puertos USB, el firewire, así como los controladores de las unidades serial ATA y parallel ATA, entre otras funciones importantes.
El chipset es sin duda alguna uno de los componentes  más importantes de la computadora y a su vez es el elemento más olvidado, sin embargo es el encargado de comunicar todos los elementos haciendo posible el funcionamiento del sistema, es por eso que se puede considerar la columna vertebral de la computadora.

Aqui dejamos un link para obtener mas informacion sobre los Chipsets

CPU
CPP o procesador, interpreta y lleva a cabo las instrucciones de los programas, efectúa manipulaciones aritméticas y lógicas con los datos y se comunica con las demás partes del sistema. Una CPU es una colección compleja de circuitos electrónicos. Cuando se incorporan todos estos circuitos en un chip de silicio, a este chip se le denomina microprocesador. La CPU y otros chips y componentes electrónicos se ubican en un tablero de circuitos o tarjeta madre2.
El chip más importante de cualquier placa madre es el procesador. Sin el la computadora no podría funcionar. A menudo este componente se determina CPU, que describe a la perfección su papel dentro del sistema. El procesador es realmente el elemento central del proceso de procesamiento de datos.
Los procesadores se describen en términos de su tamaño de palabra, su velocidad y la capacidad de su RAM asociada.
Tamaño de la palabra: Es el número de bits que se maneja como una unidad en un sistema de computación en particular.
Velocidad del procesador: Se mide en diferentes unidades según el tipo de computador:
MHz (Megahertz): para microcomputadoras. Un oscilador de cristal controla la ejecución de instrucciones dentro del procesador. La velocidad del procesador de una micro se mide por su frecuencia de oscilación o por el número de ciclos de reloj por segundo. El tiempo transcurrido para un ciclo de reloj es 1/frecuencia1.

MIPS (Millones de instrucciones por segundo): Para estaciones de trabajo, minis y macrocomputadoras. Por ejemplo una computadora de 100 MIPS puede ejecutar 100 millones de instrucciones por segundo.
FLOPS (floating point operations per second, operaciones de punto flotante por segundo): Para las supercomputadoras. Las operaciones de punto flotante incluyen cifras muy pequeñas o muy altas. Hay supercomputadoras para las cuales se puede hablar de GFLOPS (Gigaflops, es decir 1.000 millones de FLOPS)2.
Capacidad de la RAM: Se mide en términos del número de bytes que puede almacenar. Habitualmente se mide en KB y MB, aunque ya hay computadoras en las que se debe hablar de GB.

Controlador de  Bus Ensamble Componentes
El controlador del bus se encarga de la frecuencia de funcionamiento y las señales de sincronismo, temporización y control.
El Bus es la vía a través de la que se van a transmitir y recibir todas las comunicaciones, tanto internas como externas, del sistema informático. El bus es solamente un Dispositivo de Transferencia de Información entre los componentes conectados a él, no almacena información alguna en ningún momento. Los datos, en forma de señal eléctrica, sólo permanecen en el bus el tiempo que necesitan en recorrer la distancia entre los dos componentes implicados en la transferencia.
Puertos De E/S
PUERTO PARALELO
El puerto paralelo (protocolo Centronics) se utiliza generalmente para manejar impresoras. Sin embargo, dado que este puerto tiene un conjunto de entradas y salidas digitales, se puede emplear para hacer prácticas experimentales de lectura de datos y control de dispositivos Un puerto paralelo es una interfaz entre un ordenador y un periférico cuya principal característica es que los bits de datos viajan juntos enviando un byte (8 bits) completo o más a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus. El puerto paralelo más conocido es el puerto de impresora.
Se conoce cuatro tipos de puerto paralelo:
· Puerto paralelo estándar (Standart Parallel Port SPP)
· Puerto Paralelo PS/2 (bidireccional)
· Enhanced Parallel Port (EPP)
· Extended Capability Port (ECP)
Controlador Interrupciones
Este circuito integrado controla las interrupciones del sistema. Como el microprocesador sólo posee dos entradas de interrupción, y puede controlar muchas más, es necesario algún integrado que no permita ello. El 8259 cumple este propósito.
El funcionamiento del 8259 es muy sencillo: Supongamos que no queda ninguna interrupción pendiente y el CPU está trabajando en el “Programa principal”. Al activarse una línea de interrupción, el 8259 verifica que no haya otra interrupción pendiente, y si no la hay, envía una señal a través del pin INTR hacia el pin INTR del CPU, adicionalmente, envía a través del bus de datos, el número de interrupción que se ha activado, de tal manera que el CPU ya sabe qué servicio de interrupción va a usar. Una vez que recibió el CPU este valor, activa su pin INTA, indicando que ya recibió y está ejecutando el servicio. Una vez que el CPU termina, el pin INTA se desactiva, indicando al 8259 que está listo para procesar otras interrupciones.
Las rutinas de los servicios de interrupción están vectorizadas en las primeras posiciones de memoria, y están distribuidas de la manera siguiente: El los dos primeros bytes corresponden al valor que irá al registro IP, que indica el desplazamiento; y los dos siguientes, corresponden al registro CS, que indica el segmento donde está el servicio de interrupción. Estos dos pares de bytes se inician en la posición de memoria 0000h y corresponden a la interrupción 0; los siguientes cuatro corresponden a la interrupción 1, y así sucesivamente hasta las 256 interrupciones (total 1024 bytes). Esto significa que el usuario puede crear su propio servicio de interrupción y accederlo a través de la manipulación de estos bytes.El 8259, posee varios modos de configuración, dependiendo de la manera cómo se desea que se traten a las interrupciones

Hay que tener en cuenta que la interrupción no enmascarable NMI, va directamente a CPU y es la encargada de indicar errores de paridad en la memoria, fallos de circuiteria y el procesador matemático. En el PC/XT original es posible un total de 256 interrupciones, de las cuales 8 son por hardware y las demás por software.
Controlador Dma
El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU) principal. 1Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, esta se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa al procesador y, por ende, éste puede efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.
 El Circuito de temporizador y control
Es una red secuencial que acepta un código que define la operación que se va a ejecutar y luego prosigue a través de una secuencia de estados, generando una correspondiente secuencia de señales de control. Estas señales de control incluyen el control de lectura escritura y señales de dirección de memoria válida en el bus de control del sistema. Otras señales generadas por el controlador se conectan a la unidad aritmética lógica y a los registros internos del procesador para regular el flujo de información en el procesador y a, y desde, los buses de dirección y de datos del sistema.
Controladores De Video
Un controlador de vídeo o VDC es un circuito integrado que es el principal componente de un generador de señal de vídeo, un dispositivo encargado de la producción de una señal de vídeo en informática o un sistema de juego. Algunos de Desarrollo de Aldea también generar una buena señal, pero en ese caso no es su función principal3.
La mayoría de los CDA se utilizan a menudo en la antigua casa-ordenadores de los años 80, sino también en algunos de los primeros sistemas de video juego.

El VDC siempre es el principal componente de la señal de vídeo generador de la lógica, pero a veces también hay otros chips utilizados, tales como RAM para celebrar el píxel de datos, para celebrar ROM carácter fuentes, o quizás algunos discretos lógica, como los registros de cambio eran necesarias para construir un sistema completo. En cualquier caso, es el VDC de la responsabilidad de generar el calendario de las necesarias señales de vídeo, tales como la horizontal y vertical de sincronización de señales, y el intervalo de corte de señal.


REFERENCIAS

[1] Sánchez Iglesias, Á. (2017). ¿Qué es el chipset de un PC?aboutespanol.  de https://www.aboutespanol.com/que-es-el-chipset-de-un-pc-841341
[2] Gallego, José Carlos; Folgado, Laura (27 de julio de 2011). Montaje y mantenimiento de equipos. Editex. Consultado el 18 de octubre de 2017.

[3] Tejada, Ester Chicano (6 de noviembre de 2015). Gestionar el crecimiento y las condiciones ambientales. IFCT0510. IC Editorial.  Consultado el 18 de octubre de 2017.


 [5] Montero, Isidoro Berral (2014). Montaje y mantenimiento de sistemas y componentes informáticos. Ediciones Paraninfo, S.A.  Consultado el 18 de octubre de 2017.

martes, 20 de marzo de 2018

Interrupciones de Hardware



Interrupción (también conocida como interrupción de hardware o petición de interrupción) es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación.
Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa (generalmente perteneciente al sistema operativo, o al BIOS). Luego de finalizada dicha subrutina, se reanuda la ejecución del programa.
Las interrupciones surgen de las necesidades que tienen los dispositivos periféricos de enviar información al procesador principal de un sistema de computación. La primera técnica que se empleó fue que el propio procesador se encargara de sondear (polling) los dispositivos cada cierto tiempo para averiguar si tenía pendiente alguna comunicación para él. Este método presentaba el inconveniente de ser muy ineficiente, ya que el procesador constantemente consumía tiempo en realizar todas las instrucciones de sondeo.
El mecanismo de interrupciones fue la solución que permitió al procesador desentenderse de esta problemática, y delegar en el dispositivo la responsabilidad de comunicarse con el procesador cuando lo necesitara. El procesador, en este caso, no sondea a ningún dispositivo, sino que queda a la espera de que estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya sea un evento, una transferencia de información, una condición de error, etc.)


  • ENMASCARABLE

Todos los microprocesadores prevén algún mecanismo para sincronizar sucesos externos, tales como los fallos de alimentación, peticiones de servicio de señales exteriores, etc. Un método sencillo es el llamado “pollin” que consiste en asociar cada posible suceso asíncrono a un indicador que permite reconocer si el suceso correspondiente necesita ser atendido o no. El microprocesador comprueba todas los indicadores siguiendo una secuencia determinada, y da servicio a aquel que lo precisa. Este método es poco eficiente ya que el microprocesador ha de dedicarse exclusivamente a verificar el estado de los indicadores y, si el número de posibles sucesos externos es grande, el tiempo que pasa hasta que los atiende puede ser excesivamente largo.

El método de interrupciones es mucho más eficaz a la hora de atender peticiones aleatorias. El principio de funcionamiento es el siguiente: un suceso asíncrono que necesita servicio genera una petición de interrupción; cuando el microprocesador la recibe suspende momentáneamente el trabajo que está ejecutando y pasa a realizar la rutina de atención a la interrupción. Una vez finalizada continúa realizando el programa por donde lo dejó. Con este método el microprocesador sólo se ocupa de los sucesos externos cuando se recibe una petición de interrupción, pudiéndose dedicar el resto del tiempo a realizar otras tareas.





  •  NO ENMASCARABLE

Una interrupción no enmascarable (o NMI) es un tipo especial de interrupción usada en la mayoría de los microordenadores como el IBM PC y el Apple II.
Una interrupción no enmascarable causa que la CPU deje lo que está haciendo, cambie el puntero de instrucción para que apunte a una dirección particular y continúe ejecutando el código de esa dirección. Se diferencia de los otros tipos de interrupción en que los programadores no pueden hacer que la CPU las ignore, aunque algunos ordenadores pueden por medios externos bloquear esa señal, dando un efecto similar al resto de las interrupciones.




Acceso directo a memoria



El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU). Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.

Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa al procesador y, por ende, éste puede efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.



  • PROBLEMAS DE COHERENCIA EN LA MEMORIA CACHE


La DMA puede llevar a problemas de coherencia de caché. Imagine una CPU equipada con una memoria caché y una memoria externa que se pueda acceder directamente por los dispositivos que utilizan DMA. Cuando la CPU accede a X lugar en la memoria, el valor actual se almacena en la caché. Si se realizan operaciones posteriores en X, se actualizará la copia en caché de X, pero no la versión de memoria externa de X. Si la caché no se vacía en la memoria antes de que otro dispositivo intente acceder a X, el dispositivo recibirá un valor caducado de X.

Del mismo modo, si la copia en caché de X no es invalidada cuando un dispositivo escribe un nuevo valor en la memoria, entonces la CPU funcionará con un valor caducado de X.

Este problema puede ser abordado en el diseño del sistema de las siguientes dos formas:

Los sistemas de caché coherente implementan un método en el hardware externo mediante el cual se escribe una señal en el controlador de caché, la cual realiza una invalidación de la caché para escritura de DMA o caché de descarga para lectura de DMA.
Los sistemas no-coherente dejan este software, donde el sistema operativo debe asegurarse de que las líneas de caché se vacían antes de que una transferencia de salida de DMA sea iniciada y anulada antes de que una parte de la memoria sea afectada por una transferencia entrante de DMA que se haya requerido. El sistema operativo debe asegurarse de que esa parte de memoria no es accedida por cualquier subproceso que se ejecute en ese instante. Este último enfoque introduce cierta sobrecarga a la operación de DMA, ya que la mayoría de hardware requiere un bucle para invalidar cada línea de caché de forma individual.
Los híbridos también existen, donde en la caché secundaria L2 es coherente, mientras que en la caché L1 (generalmente la CPU) es gestionado por el software.

  • SECUENCIA DE EVENTOS




Una operación de E/S por DMA se establece ejecutando una corta rutina de inicialización. Consiste en varias instrucciones de salida para asignar valores iniciales a:

AR: Dirección de memoria de la región de datos de E/S IOBUF (buffer de entrada/salida).
WC: Número N de palabras de datos a transferir.
Una vez inicializado, el DMA procede a transferir datos entre IOBUF y el dispositivo de E/S. Se realiza una transferencia cuando el dispositivo de E/S solicite una operación de DMA a través de la línea de petición del DMAC.}

Después de cada transferencia, se decrementa el valor de WC y se incrementa el de AR.

La operación termina cuando WC=0, entonces el DMAC (o el periférico) indica la conclusión de la operación enviando al procesador una petición de interrupción.

  • SECUENCIA DE EVENTOS DETALLADA


El procesador inicializa el DMAC programando AR y WC.
El dispositivo de E/S realiza una petición de DMA al DMAC.
El DMAC le responde con una señal de aceptación.
El DMAC activa la línea de petición de DMA al procesador.
Al final del ciclo del bus en curso, el procesador pone las líneas del bus del sistema en alta impedancia y activa la cesión de DMA.
El DMAC asume el control del bus.
El dispositivo de E/S transmite una nueva palabra de datos al registro intermedio de datos del DMAC.
El DMAC ejecuta un ciclo de escritura en memoria para transferir el contenido del registro intermedio a la posición M[AR].
El DMAC decrementa WC e incrementa AR.
El DMAC libera el bus y desactiva la línea de petición de DMA.
El DMAC compara WC con 0:
Si WC > 0, se repite desde el paso 2.
Si WC = 0, el DMAC se detiene y envía una petición de interrupción al procesador.
MOTOR DE ACCESO DIRECTO A MEMORIA:



Además de la interacción de hardware, el acceso directo a memoria puede ser utilizado para descargar costosas operaciones de memoria, tales como copias de gran tamaño u operaciones de dispersión-reunión, desde la CPU a un motor de acceso directo a memoria dedicada. Intel incluye estos motores en los servidores de gama alta, llamado I/O Acceleration Technology (IOAT).

  • TRANSFERENCIAS:




Durante las operaciones del DMA, el rendimiento del sistema puede verse afectado debido a que este dispositivo hace un uso intensivo del bus y por lo tanto la cpu no puede leer datos de memoria, por ejemplo para leer la siguiente instrucción a ejecutar. Esto provoca que mientras el DMA está operando, la cpu deba esperar a que finalice dicha tarea sin ejecutar ninguna instrucción. Para solventar esto, existe una memoria cache dentro de la CPU que permite a ésta seguir trabajando mientras el DMA mantiene ocupado el bus.

En computadores que no disponen de memoria cache,el DMA debe realizar su tarea evitando ocupar el bus de datos mientras la CPU realiza la fase de captación de la instrucción. A partir de estas dos posibilidades, existen dos tipos de transferencias de datos del DMA:

TRANSFERENCIAS MODO RÁFAGA: una vez que la CPU concede el bus al DMA, este no lo libera hasta que finaliza su tarea completamente. Este tipo de transferencia se usa en sistemas que disponen de una memoria cache en la unidad de procesamiento, ya que mientras la CPU puede seguir trabajando utilizando la cache.
TRANSFERENCIAS MODO ROBO DE CICLO: una vez que la CPU concede el bus al DMA, este lo vuelve a liberar al finalizar de transferir cada palabra. Teniendo que solicitar de nuevo el permiso de uso del bus a la CPU. Esta operación se repite hasta que el DMA finaliza la tarea. Este tipo de transferencia se suele usar en sistema que no disponen de memoria cache en la unidad de procesamiento, ya que de este modo, aunque la transferencia de datos tarda más en realizarse, la CPU puede seguir ejecutando instrucciones.

Temporización



El temporizador es un circuito digital, dispone de dos salidas al igual que un flip flop, una salida es la inversa de la otra, a diferencia del flip flop quién cuenta con dos estados estables, el temporizador solamente posee un estado estable, el otro estado es inestable, permanece en su estado estable, hasta que se activa con un pulso de entrada, una vez que se activa cambia a su estado inestable y ahí permanece por un periodo fijo de tiempo tw , este tiempo lo determina una constante de tiempo RC externa que se conecta al temporizador, después de que transcurre el tiempo tw , las salidas dos salidas del temporizador regresan a su estado estable, hasta que se activan otra vez. La finalidad de la temporización es retardar el paso de una señal desde un nodo del circuito hasta otro punto, el diseño de este circuito se realiza con un dispositivo que se conoce con el nombre de “monoestable” ó “temporizador”, éste elemento electrónico dispone de una entrada “E” y una salida “S”, se tienen tres temporizadores básicos que se denominan; el primero, temporización a la activación, el segundo se llama temporización a la desactivación y el tercero es una combinación de las dos anteriores, temporización a la “activación y desactivación” simultaneas. Se dispone de dos tipos de comportamiento en que se manifiestan las salidas de los temporizadores, "redisparables" y "no redisparables" y su entrada responde a dos tipos de disparo, "activación" y "desactivación"



  • Estados de espera


Cuando se conectan tarjetas al bus de la PC, un problema común es igualar la velocidad de los ciclos del bus con la de las tarjetas. Es común que una tarjeta sea más lenta que el bus. Así, el bus de la PC esta diseñado para resolver este problema. La señal READY del bus se puede usar para extender la longitud del ciclo del bus para igualar una tarjeta lenta o parar el bus del sistema hasta que se sincronice con el ciclo de la tarjeta.
Como se mencionó anteriormente, los ciclos del bus del 8088 normalmente son de cuatro pulsos y se describen por T1 hasta T4. En algunos ciclos el hardware de la PC, automáticamente inserta un pulso ocioso extra llamado TW. La señal READY se usa para insertar estados nuevos o adicionales de espera. Debido a que los diferentes ciclos del bus requieren distintos tiempos, la señal READY se debe controlar de manera diferente.
Generación de estados de espera en ciclos de bus de memoria
El hardware de la PC no inserta estados de espera en los ciclos de lectura o escritura a memoria, sino que esto lo hace la tarjeta usando la señal READY. La figura 22 ilustra las señales de tiempo necesarias para generar un estado de espera para un ciclo de lectura o escritura a memoria.




  • Reloj del sistema

El reloj de una computadora se utiliza para dos funciones principales:
1. Para sincronizar las diversas operaciones que realizan los diferentes subcomponentes del sistema informático.
2. Para saber la hora.
El reloj físicamente es un circuito integrado que emite una cantidad de pulsos por segundo, de manera constante. Al número de pulsos que emite el reloj cada segundo se llama Frecuencia del Reloj.
La frecuencia del reloj se mide en Ciclos por Segundo, también llamados Hertzios, siendo cada ciclo un pulso del reloj. Como la frecuencia del reloj es de varios millones de pulsos por segundo se expresa habitualmente en Megaherzios.
El reloj marca la velocidad de proceso de la computadora generando una señal periódica que es utilizada por todos los componentes del sistema informático para sincronizar y coordinar las actividades operativas, evitando el que un componente maneje unos datos incorrectamente o que la velocidad de transmisión de datos entre dos componentes sea distinta.
Cuanto mayor sea la frecuencia del reloj mayor será la velocidad de proceso de la computadora y podrá realizar mayor cantidad de instrucciones elementales en un segundo.
El rango de frecuencia de los microprocesadores oscila entre los 4,77 megaherzios del primer PC diseñado por IBM y los 200 megaherzios de las actuales computadoras basadas en los chips Intel Pentium.
En máquinas de arquitectura Von Neumann la mayoría de las operaciones son serializadas, esto significa que la computadora ejecuta los comandos en un orden preestablecido. Para asegurarnos de que todas las operaciones ocurren justo en el tiempo adecuado, las máquinas 80×86 utilizan una señal alternante llamada el reloj del sistema.
En su forma básica, el reloj del sistema maneja toda la sincronización de un sistema de cómputo. El reloj del sistema es una señal eléctrica en el bus de control que alterna entre los valores de cero y uno a una tasa dada. La frecuencia en la cual el reloj del sistema alterna entre cero y uno es llamada frecuencia del reloj de sistema. El tiempo que toma para cambiar de cero a uno y luego volver a cero se le llama periodo de reloj, también llamado ciclo de reloj. La frecuencia del reloj es simplemente el número de ciclos de reloj que ocurren en un segundo, en sistemas actuales, éste valor excede los 200 ciclos por segundo, siendo ya común frecuencias del orden de los 366 Mhz. (Mega Hertz?, que equivale a un millón de ciclos por segundo). Observe que el periodo de reloj es el valor inverso de la frecuencia, por lo tanto, para un sistema de 200 Mhz el periodo es igual a 5 nanosegundos. Para asegurar la sincronización, el CPU inicia una operación ya sea en el flanco ascendente (cuando la señal cambia de cero a uno) ó en el descendente (cuando la señal cambia de uno a cero). Como todas las operaciones de un CPU están sincronizadas en torno a su reloj, un CPU no puede ejecutar operaciones más rápido que la velocidad del reloj.



  • Reset del sistema


 Se conoce como reset a la puesta en condiciones iniciales de un sistema. Este puede ser mecánico, electrónico o de otro tipo. Normalmente se realiza al conectar el mismo, aunque, habitualmente, existe un mecanismo, normalmente un pulsador, que sirve para realzar la puesta en condiciones iniciales manualmente.
En el ámbito de códigos binarios, trata de poner a 0, así como set, poner a 1.





Direccionamiento


Cuando un proceso de aplicación desea establecer una conexión con un proceso de aplicación remoto, debe especificar a cuál debe conectarse, ya sea con transporte con conexión o sin conexión. El método que se emplea es definir direcciones de transporte en las que los procesos pueden estar a la escucha de solicitudes de conexión. Se usará el término neutral TSAP (Transport Service Acces Point, punto de acceso al servicio de transporte). Los puntos terminales análogos de la capa de red se llaman NSAP(Network Service Access Point, puntos de acceso al servicio de red), como por ejemplo las direcciones IP.
Unos de los esquemas que se utilizan en Unix se conoce comoprotocolo inicial de conexión. Aquí cada servidor tiene un servidor de procesos especial que actúa como apoderado (proxy) de los servidores de menor uso y escucha en un grupo de puertos al mismo tiempo, esperando una solicitud de conexión TCP. Cuando un usuario comienza por emitir una solicitud CONNECT, especificando la dirección TSAP (puerto TCP) del servicio que desea, si no hay ningún servidor esperándolos, consiguen una conexión al servidor de procesos.
Trás obtener la solicitud entrante, el servidor de procesos genera el servidor solicitado permitiéndole heredar la conexión con el usuario existente. El nuevo servidor entonces hace el trabajo requerido, mientras que el proceso retorna a escuchar nuevas peticiones



  • MODO REAL


El modo real (también llamado modo de dirección real en los manuales de Intel) es un modo de operación del 80286 y posteriores CPU compatibles de la arquitectura x86. El modo real está caracterizado por 20 bits de espacio de direcciones segmentado (significando que solamente se puede direccionar 1 MB de memoria), acceso directo del software a las rutinas del BIOS y el hardware periférico, y no tiene conceptos de protección de memoria o multitarea a nivel de hardware. Todos los CPUs x86 de las series del 80286 y posteriores empiezan en modo real al encenderse el computador; los CPU 80186 y anteriores tenían solo un modo operacional, que era equivalente al modo real en chips posteriores.
La arquitectura 286 introdujo el modo protegido, permitiendo, entre otras cosas, la protección de la memoria a nivel de hardware. Sin embargo, usar estas nuevas características requirió instrucciones de software adicionales no necesarias previamente. Puesto que una especificación de diseño primaria de los microprocesadores x86 es que sean completamente compatibles hacia atrás con el software escrito para todos los chips x86 antes de ellos, el chip 286 fue hecho para iniciarse en ' modo real ' - es decir, en un modo que tenía apagadas las nuevas características de protección de memoria, de modo que pudieran ejecutar sistemas operativos escritos para microprocesadores más viejos. Al día de hoy, incluso los más recientes CPU  x86 se inician en modo real al encenderse, y pueden ejecutar el software escrito para cualquier chip anterior.
Los sistemas operativos DOS (MS-DOS, DR-DOS, etc.) trabajan en modo real. Las primeras versiones de Microsoft Windows, que eran esencialmente un shell de interface gráfica de usuario corriendo sobre el DOS, no eran realmente un sistema operativo por sí mismas, corrían en modo real, hasta Windows 3.0, que podía ejecutarse tanto en modo real como en modo protegido. Windows 3.0 podía ejecutarse de hecho en dos "sabores" de modo protegido - el "modo estándar", que corría usando modo protegido, y el "modo mejorado 386", que además usaba direccionamiento de 32 bits y por lo tanto no corría en un 286 (que a pesar de tener modo protegido, seguía siendo un chip de 16 bits; los registros de 32 bits fueron introducidos en la serie 80386). Con Windows 3.1 se retiró el soporte para el modo real, y fue el primer ambiente operativo de uso masivo que requirió por lo menos un procesador 80286 (no contando con el Windows 2.0 que no fue un producto masivo). Casi todos los sistemas operativos modernos x86 (Linux, Windows 95 y posteriores, OS/2, etc.) cambian el CPU a modo protegido o a modo largo en el arranque.



  • MODO PROTEGIDO

El modo protegido es un modo operacional de los CPU compatibles x86 de la serie 80286 y posteriores.
El modo protegido tiene un número de nuevas características diseñadas para mejorar la multitarea y la estabilidad del sistema, tales como la protección de memoria, y soporte de hardware para memoria virtual como también la conmutación de tarea. A veces es abreviado como p-mode y también llamado Protected Virtual Address Mode (Modo de Dirección Virtual Protegido) en el manual de referencia de programador del iAPX 286 de Intel, (Nota, iAPX 286 es solo otro nombre para el Intel 80286). En el 80386 y procesadores de 32 bits posteriores se agregó un sistema de paginación que es parte del modo protegido.


  • MODO REAL VIRTUAL

En el microprocesador 80386 y posteriores, el modo 8086 virtual, también llamado modo real virtual o VM86, permite la ejecución de aplicaciones de modo real que violan las reglas bajo control de un sistema operativo de modo protegido.
El VM86 usaba la forma de segmentación del modo real, pero usaba la dirección resultante de 20 bits (realmente 21 bits), tratándola como una dirección lineal, de tal manera que era sujeta a paginación.
Era usado para ejecutar programas DOS en Microsoft Windows/386, Windows 3.x, Windows 95, Windows 98, Windows Me, y OS/2 2.x y más adelante, a través de las máquinas DOS virtuales, también en SCO UNIX a través de Merge, y en Linux.
Los programas de DOS de modo protegido, tanto de 16 como de 32 bits, no se ejecutan en el modo 8086 virtual, sino en modo usuario, siempre y cuando fueran compatibles con DPMI. Así que los emuladores arriba mencionados hacen de hecho más que solo el soporte para el modo 8086 virtual



























Buses

  • BUS LOCAL

Bus local. Bus entre la CPU, la memoria y dispositivos periféricos que corre a la velocidad de la CPU. En un computador personal, el bus VL y el PCI suministran una transferencia de datos más rápida que el bus ISA tradicional. A partir del 386, cuando las velocidades de la CPU comenzaron a acelerarse enormemente, los computadores personales vienen con dos buses. La CPU tiene acceso a sus chips de memoria a través de una vía de acceso interna de 32 bits (63 bits con el Pentium), conocida como bus local, a la velocidad más alta del reloj de la CPU (25MHz, 33MHz, etc.). Sin embargo, tradicionalmente ha tenido acceso a sus dispositivos periféricos en forma más lenta, en un bus ISA de 16 bits sólo a 8MHz. Incluso en el bus EISA de 32 bits inherentemente más rápido corre en forma lenta para acomodar las tarjetas ISA, que se conectan a éste. Los estándares de bus VL de VESA y de bus local PCI de Intel se crearon para aprovechar las velocidades más altas de la CPU. El PC corre a 33MHz; el bus VL hasta a 40MHz; esperándose más altas velocidades. Las tarjetas base ISA y EISA se construyen ahora con ranuras adicionales para el bus VL o las tarjetas PCI, o ambos.



  • BUS DE CONTROL

El bus de control gobierna el uso y acceso a las líneas de datos y de direcciones. Como éstas líneas están compartidas por todos los componentes, tiene que proveerse de determinados mecanismos que controlen su utilización. Las señales de control transmiten tanto órdenes como información de temporización entre los módulos. Mejor dicho, es el que permite que no haya colisión de información en el sistema.



  • BUS DE DIRECCIONES

El bus de direcciones es un canal del microprocesador totalmente independiente del bus de datos donde se establece la dirección de memoria del dato en tránsito.
El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección. La capacidad de la memoria que se puede direccionar depende de la cantidad de bits que conforman el bus de direcciones, siendo 2n el tamaño máximo en bits del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para direccionar una memoria de 256 bits, son necesarias al menos 8 líneas, pues 28 = 256. Adicionalmente pueden ser necesarias líneas de control para señalar cuando la dirección está disponible en el bus. Esto depende del diseño del propio bus.




  • BUS DE DATOS

El bus de datos permite el intercambio de datos entre la CPU y el resto de unidades.



  • BUSES NORMALIZADOS

SCSI: Esta es la norma original, a partir de la cual se desarrollaron todas las demás. El ancho de bus es de 8 bits. No permite una longitud de bus mayor de 6 metros y una velocidad de transferencia teórica de hasta 5MB/s, aunque en la práctica no se alcanzan velocidades superiores a los 2MB/s a causa de los periféricos conectados.




MAS INFORMACION EN:


lunes, 5 de febrero de 2018

Análisis de los componentes: CPU, arquitectura, memoria, dispositivos de I/O.

  • CPU
La unidad central de proceso es la circuiteria electronica dentro de la computadora que ejecuta las instrucciones del programa almacenado, llevando a cabo operaciones básicas de tipo aritmético, lógico, de control y de entrada/salida, las cuales son especificadas por las instrucciones.

Los componentes principales de la CPU incluyen:
    • La ALU que ejecuta operaciones aritméticas y lógicas
  • Los registros de procesamiento que suplementan de operandos a la ALU y almacenan los resultados de las operaciones de la ALU.
  • La unidad de control que orquesta el fetching (en la memoria) y la ejecución de instrucciones dirigiendo operaciones coordinadas de la ALU, registros y otros componentes (p.ej. dispositivos de E/S).

Descripción de los componentes de la CPU: la ALU 
1) La ALU es un circuito digital dentro del procesador que realiza operaciones aritméticas enteras y lógicas bit a bit. 
2) Las entradas a la ALU son: las palabras de datos a ser operadas (llamadas operandos), información de estado de operaciones previas, y un código de la unidad de control que indica qué operación realizar.
3) Dependiendo de la instrucción que se ejecute, los operandos pueden provenir de registros de la CPU internos o memoria externa, o pueden ser constantes generadas por la misma ALU.
4) Cuando todas las señales de entrada se han estabilizado y propagado a través de los circuitos de la ALU, el resultado de la operación realizada aparece en las salidas de la ALU. El resultado consiste tanto en una palabra de datos, que puede almacenarse en un registro o memoria, como en información de estado que normalmente se almacena en un registro interno especial de la CPU reservado para este fin. 
Descripción de los componentes de la CPU: la unidad de control
1) La unidad de control contiene la circuiteria electronica necesaria para a través de señales eléctricas dirigir el sistema computacional completo que lleva acabo la ejecución de las instrucciones del programa almacenado. 
2) La unidad de control no ejecuta instrucciones pero administra otras partes del sistema para que lo hagan.
 3) La unidad de control se comunica con la ALU y la memoria. 

Un dígito binario es almacenado en una célula de memoria la cual puede cambiar entre dos posibles valores [8].




Los programas almacenados contienen miles de bits, los cuales son procesados por la CPU.



  • Memorias
Dynamic random-access memory (DRAM)
Necesita reescribirse periodicamente. Gran capacidad a bajo costo. Para los procesadores actuales es “lenta” (aprox. 100 ns) [9].





S t a t i c R a n d o m - A c c e s s Memory(SRAM)
No necesita reescribirse. Es la memoria más rápida en el sistema computacional. Costosa y ocupa 3 veces más espacio que la DRAM [9].

DRAM y SRAM son volátiles.


Las memorias flash son los dispositivos de almacenamiento más rápidos dentro del grupo de largo plazo (o no volátiles).





  • Análisis de los componentes: dispositivos de E/S










jueves, 1 de febrero de 2018

Modelos de la Arquitectura de Cómputo


  • Clásico
Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío. Aun son usadas en procesadores empotrados de gama baja y son la base de la mayoría de las arquitecturas modernas Arquitectura Mauchly-Eckert (Von Newman) Esta arquitectura fue utilizada en la computadora ENIAC. Consiste en una unidad central de proceso que se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los códigos de instrucción del programa, como los datos que serán procesados por este. Esta arquitectura es la más empleada en la actualidad ya, que es muy versátil. Ejemplo de esta versatilidad es el funcionamiento de los compiladores, los cuales son programas que toman como entrada un archivo de texto conteniendo código fuente y generan como datos de salida, el código maquina que corresponde a dicho código fuente (Son programas que crean o modifican otros programas). Estos datos de salida pueden ejecutarse como un programa posteriormente ya que se usa la misma memoria para datos y para el código del programa [1].

(Diagrama a bloques de la arquitectura Von Newman)


La principal desventaja de esta arquitectura, es que el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria, obligando a que todos los accesos a esta sean secuenciales. Esto limita el grado de paralelismo (acciones que se pueden realizar al mismo tiempo) y por lo tanto, el desempeño de la computadora. Este efecto se conoce como el cuello de botella de Von Newman En esta arquitectura apareció por primera vez el concepto de programa almacenado. Anteriormente la secuencia de las operaciones era dictada por el alambrado de la unidad de control, y cambiarla Procesador Memoria Principal Almacena el programa y los datos Entrada y salida Bus principal Registros ALU Unidad de Control implicaba un proceso de recableado laborioso, lento(hasta tres semanas) y propenso a errores. En esta arquitectura se asigna un código numérico a cada instrucción. Dichos códigos se almacenan en la misma unidad de memoria que los datos que van a procesarse, para ser ejecutados en el orden en que se encuentran almacenados en memoria. Esto permite cambiar rápidamente la aplicación de la computadora y dio origen a las computadoras de propósito general Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lógica aritmética (A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente datos y estado del procesador. La unidad aritmética lógica proporciona la capacidad de realizar operaciones aritméticas y lógicas. La unidad de control genera las señales de control para leer el código de las instrucciones, decodificarlas y hacer que la ALU las ejecute. Arquitectura Harvard Esta arquitectura surgió en la universidad del mismo nombre, poco después de que la arquitectura Von Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura Von Newman, el programa se almacena como un código numérico en la memoria, pero no en el mismo espacio de memoria ni en el mismo formato que los datos. Por ejemplo, se pueden almacenar las instrucciones en doce bits en la memoria de programa, mientras los datos de almacenan en ocho bits en una memoria aparte [6]. 

(Diagrama a bloques de la arquitectura Harvard)

El hecho de tener un bus separado para el programa y otro para los datos permite que se lea el código de operación de una instrucción, al mismo tiempo se lee de la memoria de datos los operados de la instrucción previa. Así se evita el problema del cuello de botella de Von Newman y se obtiene un mejor desempeño. En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera similar a a la arquitectura Von Newman, con un banco de memoria masivo único, pero internamente incluyen varios niveles de memoria cache con bancos separados en cache de programa y cache de datos, buscando un mejor desempeño sin perder la versatilidad [7].






  • Segmentado
Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando paralelamente varias etapas del ciclo de instrucción al mismo tiempo. El procesador se divide en varias unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. Para Procesador Memoria de datos Entrada y salida Bus de datos Memoria de programa Bus de programa Registros ALU Unidad de Control comprender mejor esto, supongamos que un procesador simple tiene un ciclo de instrucción sencillo consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de la instrucción. En un procesador sin segmentación del cauce, las dos etapas se realizarían de manera secuencial para cada una de la instrucciones, como lo muestra la siguiente figura.

(Búsqueda y ejecución en secuencia de tres instrucciones en un procesador sin segmentación del cause)


En un procesador con segmentación del cause, cada una de estas etapas se asigna a una unidad funcional diferente, la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución. Estas unidades pueden trabajar en forma paralela en instrucciones diferentes. Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de búsqueda coloca los códigos de instrucción que leyó para que la unidad de ejecución los tome de la cola y los ejecute. Esta cola se parece a un tubo donde las instrucciones entran por un extremo y salen por el otro. De esta analogía proviene el nombre en ingles: Pipelining o entubamiento. 


 (Comunicación entre las unidades en un procesador con segmentación de cauce)

Completando el ejemplo anterior, en un procesador con segmentación, la unidad de búsqueda comenzaría buscando el código de la primera instrucción en el primer ciclo de reloj. Durante el segundo ciclo de reloj, la unidad de búsqueda obtendría el código de la instrucción 2, mientras que la unidad de ejecución ejecuta la instrucción 1 y así sucesivamente. La siguiente figura muestra este proceso. 

 (Búsqueda y ejecución en secuencia de tres instrucciones en un procesador con segmentación del cause)

En este esquema sigue tomando el mismo numero de ciclos de reloj (el mismo tiempo), pero como se B1 E1 B2 E2 B3 E3 Unidad de Búsqueda Unidad de ejecución Cola de Instrucciones trabaja en varias instrucciones al mismo tiempo, el número promedio de instrucciones por segundo se multiplica. La mejora en el rendimiento no es proporcional al numero de segmentos en el cauce debido a que cada etapa no toma el mismo tiempo en realizarse, además de que se puede presentar competencia por el uso de algunos recursos como la memoria principal. Otra razón por la que las ventajas de este esquema se pierden es cuando se encuentra un salto en el programa y todas las instrucciones que ya se buscaron y se encuentran en la cola, deben descartarse y comenzar a buscar las instrucciones desde cero a partir de la dirección a la que se salto. Esto reduce el desempeño del procesador y aún se investigan maneras de predecir los saltos para evitar este problema [1].

(Consecuencias de la competencia por un recurso)







  • Multiprocesamiento 
Cuando se desea incrementar el desempeño más aya de lo que permite la técnica de segmentación del cauce (limite teórico de una instrucción por ciclo de reloj), se requiere utilizar más de un procesador para la ejecución del programa de aplicación. Las CPU de multiprocesamiento se clasifican de la siguiente manera (Clasificación de Flynn): 

● SISO – (Single Instruction, Single Operand ) computadoras Monoprocesador 
● SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales, Exenciones MMX 
● MISO – (Multiple Instruction, Single Operand ) No implementado 
● MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters, GPUs

 Procesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo numérico a una serie de datos matriciales, en especial en la simulación de sistemas físicos complejos, tales como simuladores para predecir el clima, explosiones atómicas, reacciones químicas complejas, etc., donde los datos son representados como grandes números de datos en forma matricial sobre los que se deben se aplicar el mismo algoritmo numérico. La mayoría de los procesadores modernos incluye algunas instrucciones de tipo vectorial, tales como las extensiones al conjunto de instrucciones tales como MMX y SSE. Estas instrucciones les permiten procesar flujos multimedia más eficientemente. Los Procesadores Digitales de Señales (DSP), son procesadores especializados en el procesamiento de señales tales como audio, vídeo, radar, sonar, radio, etc. Cuentan con instrucciones tipo vectorial que los hace muy aptos para dicha aplicación. Suelen utilizarse en conjunto con un microcontrolador en dispositivos como reproductores de audio, reproductores de dvd y Blueray, teléfonos celulares, sistemas de entretenimiento, sistemas de adquisición de datos, instrumentos médicos, controles industriales, etc. Búsqueda Ejecución Espera Espera En los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten la misma memoria principal y periféricos de I/O, Normalmente conectados por un bus común. Se conocen como simétricos, ya que ningún procesador toma el papel de maestro y los demás de esclavos, sino que todos tienen derechos similares en cuanto al acceso a la memoria y periféricos y ambos son administrados por el sistema operativo. Pueden formarse con varios núcleos en un solo circuito integrado o con varios circuitos integrados en una misma tarjeta madre. La primera opción ha sido popularizada al hacerse más económicos los procesadores multinucleo de los principales fabricantes y con su uso en sistemas de gama media y baja, e inclusive en teléfonos celulares y tabletas. La segunda opción fue la que se uso en un principio y sigue siendo usada en en estaciones de trabajo y en servidores de alto rendimiento debido a que incrementa el poder computacional del sistema, pero también incrementa considerablemente el costo del sistema. 


 (Diagrama a bloques de un sistema multiprocesador simétrico)


Los Clusters son conjuntos de computadoras independientes conectadas en una red de área local o por un bis de interconexión y que trabajan cooperativamente para resolver un problema. Es clave en su funcionamiento contar con un sistema operativo y programas de aplicación capaces de distribuir el trabajo entre las computadoras de la red. Este tipo de computadora paralela se ha vuelto muy popular por que permite usar los avances en los procesadores comerciales que tienen una muy buena relación costo rendimiento y se puede incorporar rápidamente los avances que proporciona las nuevas tecnologías en cuanto es económicamente viable. Sin embargo, se debe tener cuidado al implementar la aplicación, ya que si los datos que hay que pasar de un procesador a otro son demasiados, el tiempo empleado en pasar información de un nodo a otro puede sobrepasar a la ganancia que se tiene al dividir el trabajo entre varios procesadores. 

(Diagrama a bloques de un cluster)


Las unidades de procesamiento gráfico (Graphics Processing Unit GPU) – sistemas diseñados originalmente para el procesamiento de Gráficos, con múltiples procesadores vectoriales sencillos compartiendo la misma memoria, la cual también puede ser accedida por el CPU. Por la gran cantidad de núcleos con los que cuenta, logran un excelente desempeño al ejecutar algoritmos que se adaptan a ser paralelizados, a tal grado que muchas de las supercomputadoras más rápidas de la actualidad utilizan estos procesadores, y los fabricantes de tarjetas gráficas producen versiones de sus productos especializadas en acelerar los cálculos de propósito general [3]. 
(Diagrama a bloques de una unidad de procesamiento gráfico) 

Para mas información visita aquí: 






Chipsets

¿Qué es el chipset? Es el componente más importante de la tarjeta madre, es un grupo de chips que trabajan en conjunto para realizar una...