18 de agosto de 2007

x86

x86 es la denominación genérica dada a ciertos microprocesadores de la familia Intel, sus compatibles y a la arquitectura básica de estos procesadores, por la terminación de sus nombres: 8086, 80286, 80386 y 80486. Los sucesores del 80486 pasarán a ser llamados por nombres no numéricos, bajo la denominación Pentium, sin embargo todavía se los llama procesadores de la familia x86.
Es la arquitectura más popular comercialmente, siendo producidos por fabricantes como AMD, Cyrix, NEC Corporation y Transmeta.
La arquitectura es notablemente no limpia, por mantener compatibilidad con la línea de procesadores de 16 bits de Intel, que a su vez también eran compatibles con una familia de procesadores de 8 bits. Existen dos sucesores de 64 bits para esta arquitectura:
IA64, empleada en los procesadores Itanium de Intel y no compatible con X86, excepto bajo emulación.
AMD64 o x86-64, de AMD, que es básicamente una extensión de 64 bits de la familia x86.
Técnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits).

Interrupciones

Interrupción (también conocida como interrupción hardware) 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.

Motivacion.
Las interrupciones surgen de la 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) el dispositivo 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 necesitaba. 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.).
Cada dispositivo que desea comunicarse con el procesador por interrupciones debe tener asignada una línea única capaz de avisar a éste de que le requiere para una operación. Esta línea es la llamada IRQ ("Interrupt ReQuest", petición de interrupción).
Las IRQ son líneas que llegan al controlador de interrupciones, un componente hardware dedicado a la gestión de las interrupciones, y que puede estar integrado en el procesador principal o ser un circuito separado conectado al procesador principal. El controlador de interrupciones debe ser capaz de habilitar o inhibir líneas de interrupción (operación llamada comúnmente enmascarar por la utilización de una máscara), 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 (sin 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. Al activarse esta línea, el procesador consulta los registros del controlador de interrupciones para averiguar qué IRQ es la que ha de atender. A partir del número de IRQ busca en el vector de interrupciones qué rutina debe llamar para atender una petición del dispositivo asociado a dicha IRQ.
Las rutinas de interrupción generalmente toman un pequeño tiempo de ejecución y la mayoría no pueden ser interrumpidas cuando se están atendiendo, porque al entrar en ellas se almacena el estado de los registros en una pila y si se interrumpen muchas veces, la pila se puede desbordar.

Un ordenador PC típico dispone en su placa base de un controlador de interrupciones 8259 de Intel o de un circuito integrado análogo. Este dispositivo electrónico dispone de hasta 16 líneas IRQ, numeradas desde el 00 hasta el 15. En las nuevas placas base este circuito está integrado junto con el resto del chipset y permite hasta 24 interrupciones

En procesadores x86, también se denomina interrupción (o interrupción software) a las interrupciones causadas por software mediante una instrucción en código ensamblador. Este tipo de interrupciones se llaman también traps o excepciones, para distinguirlas de las interrupciones hardware

Kernel

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:
Administración de la memoria para todos los programas y procesos en ejecución.
Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda

Memoria cache

Una caché es un conjunto de datos duplicados de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en el caché. Cuando se accede por primera vez a un dato, se hace una copia en el caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.

Composición interna
Las memorias caché están compuestas por dos elementos distintos unos a otros, un directorio que almacena etiquetas que identifican la dirección de memoria almacenada, y bloques de información, todos de igual tamaño, que guardan la información propiamente dicha. Por lo cual este tipo de memoria no es de tipo temporal como la RAM

Memoria ROM

ROM es la sigla de read-only memory, que significa "memoria de sólo lectura": una memoria de semiconductor destinada a ser leída y no destructible, es decir, que no se puede escribir sobre ella y que conserva intacta la información almacenada, incluso en el caso de que se interrumpa la corriente (memoria no volátil). La ROM suele almacenar la configuración del sistema o el programa de arranque de la computadora.
Las memorias de sólo lectura o ROM son utilizada como medio de almacenamiento de datos en las computadoras. Debido a que no se puede escribir fácilmente, su uso principal reside en la distribución de programas que están estrechamente ligados al soporte físico de la computadora, y que seguramente no necesitarán actualización. Por ejemplo, una tarjeta gráfica puede realizar algunas funciones básicas a través de los programas contenidos en la ROM.
Las computadoras domésticas a comienzos de los 80 venían con todo su sistema operativo en ROM. No había otra alternativa razonable ya que las unidades de disco eran generalmente opcionales. La actualización a una nueva versión significa usar un soldador o un grupo de interruptores DIP y reemplazar el viejo chip de ROM por uno nuevo. En el año 2000 los sistemas operativos en general ya no van en ROM. Todavía las computadoras pueden dejar algunos de sus programas en memoria ROM, pero incluso en este caso, es más frecuente que vaya en memoria flash. Los teléfonos móviles y los asistentes personales digitales (PDA) suelen tener programas en memoria ROM (o por lo menos en memoria flash).
Algunas de las consolas de videojuegos que utilizan programas basados en la memoria ROM son el Super Nintendo, el Nintendo 64, el Mega Drive o el Game Boy. Estas memorias ROM, pegadas a cajas de plástico aptas para ser utilizadas e introducidas repetidas veces, son conocidas como cartuchos. Por extensión la palabra ROM puede referirse también a un archivo de datos que contenga una imagen del programa que se distribuye normalmente en memoria ROM, como una copia de un cartucho de videojuego.
Una razón de que todavía se utilice la memoria ROM para almacenar datos es la velocidad ya que los discos son más lentos. Aún más importante, no se puede leer un programa que es necesario para ejecutar un disco desde el propio disco. Por lo tanto, la BIOS, o el sistema de arranque oportuno de la computadora normalmente se encuentran en una memoria ROM.
La memoria RAM normalmente es más rápida para lectura que la mayoría de las memorias ROM, por lo tanto el contenido ROM se suele traspasar normalmente a la memoria RAM cuando se utiliza

Bus

BUS
El bus es el "camino" que recorre un impulso eléctrico transportando datos de un componente hacia otro. Estos caminos son los medios de comunicación que permiten el intercambio de datos. En una PC se pueden encontrar varios tipos de bus:

BUS DEL PROCESADOR
El bus del procesador es el canal de comunicación entre el procesador y los componentes de soporte, como por ejemplo la memoria caché externa. Además este bus transmite los datos hacia el bus principal del sistema. Este bus opera regularmente mucho más rápido que el resto de buses. Se compone de tres tipos de circuitos: de direcciones, de control y de datos.

BUS DE MEMORIA
Este bus sirve de canal de comunicación entre el procesador y la memoria. De acuerdo al fabricante de la mainboard, este bus puede ser independiente del bus del procesador o estar integrado a él.

BUS DE DIRECCIONES
El bus de direcciones es un subconjunto de los buses del procesador y de la memoria. Este tipo de bus es utilizado para indicar una dirección de memoria o de sistema. Este bus también determina el tamaño de la memoria de acuerdo a la cantidad de direcciones que pueda direccionar.

BUS DE ENTRADA/SALIDA O RANURAS DE EXPANSION
Este tipo de bus es el más conocido y usualmente se le llama simplemente "bus". Tiene una gran importancia, pues permite la comunicación con los dispositivos de video, disco o impresora. También es llamado bus principal del sistema. Su identificación física es simple, pues esta representada por las llamadas ranuras de expansión. Su evolución ha ido siempre a razón de su estandarización y su velocidad. Entre los tipos más reconocidos de bus tenemos: