partes microprocesador (1)
DESCRIPTION
Juan Sebastian Parrado RomeroTRANSCRIPT
1.COMUNICACION INTERNA DE UNA COMPUTADORA
BUS
En arquitectura de computadores, el bus (o canal) es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados.En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes del computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.La tendencia en los últimos años es hacia uso de buses seriales como el USB, Firewire para comunicaciones con periféricos reemplazando los buses paralelos, incluyendo caso como el del microprocesador con el chipset en la placa base. Esto a pesar de que el bus serial posee una lógica compleja (requiriendo mayor poder de cómputo que el bus paralelo) a cambio de velocidades y eficacias mayores.Existen diversas especificaciones de bus que definen un conjunto de características mecánicas como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.
BUS LOCAL
El bus local PCI (Peripheral Component Interconnect) es un bus de alta perfomance de 32 o 64 bits con líneas de dirección y de datos multiplexadas. Su uso se orienta como mecanismo de interconexión entre controladores de periféricos altamente integrados, placas periféricas de expansión y sistemas procesador/memoria.
Se ha definido como meta principal establecer un estándar industrial, con una arquitectura de bus local de alta perfomance que ofrezca bajo costo y permita diferenciación. El punto fundamental es permitir nuevos valores en cuanto a precio y perfomance de los sistemas actuales, pero también es importante que el nuevo estándar se acomode a los requerimientos de sistemas futuros y sea aplicable a múltiples plataformas y arquitecturas.
BUS DE DATOS
bus de datos, por el que circulan, como el nombre indica, los datos que se transfieren entre los diferentes dispositivos de entrada, salida y almacenamiento, gobernadas por otros dispositivos como los controladores PCI.
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 (dos elevado a la ene) el tamaño máximo en bytes del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para direccionar una memoria de 256 bytes, 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 CONTROL
El Bus de Control tiene la tarea de marcar el estado de una instrucción dada a la PC.Gobierna el uso y acceso a las líneas de datos y de direcciones. Como estas 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 ordenes como información de temporización entre los módulos del sistema.Un bus de control, es parte del bus de la computadora (la conexión física), que es utilizado por la CPU para comunicarse con otros dispositivos. El bus de control transmite comandos desde la CPU y devuelve una señal de estado desde el dispositivo.El Bus de Control es utilizado para sincronizar las actividades y transacciones con los periféricos del sistema. Algunas de estas señales, como R / W , son señales que la CPU envía para indicar que tipo de operación se espera en ese momento. Los periféricos también pueden remitir señales de control a la CPU, como son INT, RESET, BUS RQ. Las señales más importantes en el bus de control son las señales de cronómetro, que generan los intervalos de tiempo durante los cuales se realizan las operaciones. Este tipo de señales depende directamente del tipo del microprocesador.
BUS 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 velociades superiores a los 2MB/s a causa de los periféricos conectados.SCSI-II:Esta versión no es más que una revisión de la SCSI, por lo que solo le aporta nuevos comandos de control. La velocidad de transferencia sigue en la misma línea que le SCSI.Fast SCSI-II:Esta si que es una versión nueva, que ofrece velocidades de hasta 10MB/s, en modo síncrono, siempre de forma teórica.Wide SCSI:Nueva versión de la norma SCSI que ofrece un ancho de bus de 16 bits, lo que dobla (teóricamente) la velocidad de transferencia, puesto que en una mismo ciclo se transmiten el doble de bytes. Existen adaptadores Wide SCSI - SCSI, por lo que este tipo de periféricos pueden ser usados en un Amiga.Differencial SCSI:Esta versión SCSI utiliza un sistema de cableado diferencial en sus líneas, lo que permite extender la longitud del bus hasta 25 metros.Existen adaptadores Differencial SCSI - SCSI, por lo que este tipo de periféricos pueden ser usados en un Amiga.Fast Wide SCSI:Nueva revisión de la norma Wide SCSI, que ofrece un ancho de bus bien de 16 o de 32 bits, aunque esta última variante es muy rara.
2.PAGINACION DE MEMORIA
En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen
los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en
trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la
cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que
minimiza la fragmentación interna y evita la externa.
En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes
procesos, mientras que algunos marcos están disponibles para su uso. El sistema operativo
mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en
qué marco se encuentra cada página del proceso. De esta forma, las páginas de un proceso
pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las páginas
de otros procesos.
En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a
cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de
página y de un desplazamiento dentro de esa página (conocido comúnmente como offset).
El número de página es usado como un índice dentro de la tabla de páginas, y una vez
obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la
dirección real o dirección física. Este proceso se realiza en una parte del computador
específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.
De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en
marcos libres y se completa su tabla de páginas.
Veamos un ejemplo:
Número de marco Programa.#página Dirección física
0 Programa A.0 1000:0000
1 Programa A.1 1000:1000
2 Programa A.2 1000:2000
3 Programa D.0 1000:3000
4 Programa D.1 1000:4000
5 Programa C.0 1000:5000
6 Programa C.1 1000:6000
7 Programa D.2 1000:7000
La tabla de la derecha muestra una posible configuración de la memoria en un momento
dado, con páginas de 4Kb. La forma en que se llegó a este estado puede haber sido la
siguiente:
Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3
páginas.
1. El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)
2. El programa B se carga en memoria (se le asignan los marcos 3 y 4)
3. El programa C se carga en memoria (se le asignan los marcos 5 y 6)
4. El programa B termina, liberando sus páginas
5. El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el
proceso B y el marco 7 que permanecía libre)
De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:
Proceso A
Página Dirección física
0 1000:0000
1 1000:1000
2 1000:2000
Proceso B
Página Dirección física
- -
- -
Proceso C
Página Dirección física
0 1000:5000
1 1000:6000
Proceso D
Página Dirección física
0 1000:3000
1 1000:4000
2 1000:7000
Ahora consideremos qué sucede cuando un programa quiere acceder a su memoria. Si el
programa A contiene una referencia a la memoria con dirección 20FE, se realizará el
siguiente procedimiento. 20FE es 0010000011111110 en notación binaria (en un sistema de
16 bit), y en el ejemplo se están usando páginas de 4Kb de tamaño. Cuando la petición de la
dirección de memoria 20FE es realizada, la Unidad de Gestión de memoria se ve de esta
forma:
0010000011111110 = 20FE|__||__________| | | | v | Posición de memoria dentro de la página (0FE) vNúmero de página (0010 = 2)
Tabla de paginación
Entrada a la tabla de páginas
n = @ página física V P L E M
* n = bits de la @ lógica -log2(número de palabras de una página).* V: bit de validez.* P: bit de persistencia.* L: bit de derecho a lectura.* E: bit de derecho a escritura.* M: bit de modificación.
Al usar páginas de 4096 bytes, todas las ubicaciones dentro de una página pueden ser
representadas por 12 bits, en el sistema binario (212=4096), lo que deja 4 bits para
representar el número de página. Si las páginas hubieran sido de la mitad del tamaño (2048)
se podrían tener 5 bits para el número de página, lo que significa que a menor tamaño de
página se pueden tener tablas con más páginas.
Cuando el pedido de acceso a memoria es realizado, la MMU busca en la tabla de páginas
del proceso que realizó el pedido por la relación en memoria física. En nuestro ejemplo, la
página número 2 del proceso A corresponde al marco número 2 en memoria física, con
dirección real 1000:2000, por lo tanto, la MMU devolverá la dirección del marco en
memoria física, con el desplazamiento dentro de esa página: 1000:20FE.
Paginación en memoria virtual[editar]
El único inconveniente de paginación pura es que todas las páginas de un proceso deben
estar en memoria para que se pueda ejecutar. Esto hace que si los programas son de tamaño
considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de
multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de
referencias donde se puede esperar que un programa trabaje con un conjunto cercano de
referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus
páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de
intercambio (fragmentación interna) mientras no se necesiten.
Cuando la paginación se utiliza junto con memoria virtual, el sistema operativo mantiene
además el conocimiento sobre qué páginas están en memoria principal y cuáles no, usando
la tabla de paginación. Si una página buscada está marcada como no disponible (tal vez
porque no está presente en la memoria principal, pero sí en el área de intercambio), cuando
la CPU intenta referenciar una dirección de memoria en esa página, la MMU responde
levantando una excepción (comúnmente llamada fallo de página). Si la página se encuentra
en el espacio de intercambio, el sistema operativo invocará una operación
llamada intercambio de página, para traer a memoria principal la página requerida. La
operación lleva varios pasos. Primero se selecciona una página en memoria, por ejemplo
una que no haya sido usada recientemente (para más detalles ver algoritmos de reemplazo
de páginas). Si la página fue modificada, se escribe la misma en el espacio de intercambio.
El siguiente paso en el proceso es leer la información en la página necesitada desde el
espacio de intercambio. Cuando esto sucede, las tablas para traducción de direcciones
virtuales a reales son actualizadas para reflejar los contenidos de la memoria física.
Entonces el intercambio de página sale, y el programa que usó la dirección que causó la
excepción es vuelto a ejecutar desde el punto en que se dio la misma y continúa como si
nada hubiera pasado. También es posible que una dirección virtual sea marcada como no
disponible porque no fue localizada previamente. En estos casos, una página de memoria es
localizada y llenada con ceros, la tabla de paginación es modificada para mostrar los
cambios y el programa se reinicia como en el otro caso.
Si la página que ha provocado el fallo de página no se encuentra en el espacio de
intercambio, habrá que ir a buscarla a la unidad de disco. El proceso, por lo demás sería
análogo.
3.UNIDAD DE SEGMENTACIÓN:
La segmentación (en inglés pipelining, literalmente 'tubería' o 'cañería') es un método por el
cual se consigue aumentar el rendimiento de algunos sistemas electrónicos digitales. Se usa
principalmente en losmicroprocesadores.
El nombre, por analogía, viene de que para impulsar el gas en un oleoducto a la máxima
velocidad posible es necesario dividir el oleoducto en tramos y colocar una bomba que dé
un nuevo impulso al gas. El símil con la programación existe en que los cálculos deben ser
registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crítica (tramo
con más carga o retardo computacional entre dos registros de reloj) se reduzca.
La ruta crítica es en realidad la frecuencia máxima de trabajo alcanzada por el conjunto. A
mayor ruta crítica (tiempo o retraso entre registros) menor es la frecuencia máxima de
trabajo y a menor ruta crítica mayor frecuencia de trabajo. La una es la inversa de la otra.
Repartir o segmentar equitativamente el cálculo hace que esa frecuencia sea la óptima a
costa de más área para el almacenamiento o registro de los datos intervinientes y de un
retraso o latencia (en ciclos de reloj/tiempo) en la salida del resultado equivalente al
número de segmentaciones o registros realizados. La ventaja primordial de este sistema es
que, tal y como se muestra en la imagen, una vez el pipe está lleno, es decir, después de una
latencia de cuatro en la imagen, los resultados de cada comando vienen uno tras otro cada
flanco de reloj y sin latencia extra por estar encadenados dentro del mismo pipe. Todo esto
habiendo maximizado la frecuencia máxima de trabajo.
Detalle de la segmentación de instrucciones.
El alto rendimiento y la velocidad elevada de los modernos microprocesadores, se debe,
principalmente a la conjunción de tres técnicas:
Arquitectura Harvard (arquitectura que propicia el paralelismo).
Procesador de tipo RISC.
La propia segmentación.
La segmentación consiste en descomponer la ejecución de cada instrucción en varias etapas
para poder empezar a procesar una instrucción diferente en cada una de ellas y trabajar con
varias a la vez.
En el caso del procesador podemos encontrar las siguientes etapas en una instrucción:
IF (instruction fetch): búsqueda.
ID (instruction decode): decodificación.
EX (execution): ejecución en la unidad loguica .
MEM (memory): memoria.
WB (writeback): escritura.
Cada una de estas etapas de la instrucción usa en exclusiva un hardware
determinado del procesador, de tal forma que la ejecución de cada una
de las etapas en principio no interfiere en la ejecución del resto.
En el caso de que el procesador no pudiese ejecutar las instrucciones en
etapas segmentadas, la ejecución de la siguiente instrucción sólo se
podría llevar a cabo tras la finalización de la primera. En cambio en un
procesador segmentado, salvo excepciones de dependencias de datos o
uso de unidades funcionales, la siguiente instrucción podría iniciar su
ejecución tras acabar la primera etapa de la instrucción actual.
4.UNIDAD DE CONTROL:
La unidad de control es uno de los tres bloques funcionales principales en los que se divide
una unidad central de procesamiento (CPU). Los otros dos bloques son la unidad de
proceso y el bus.
Su función es buscar las instrucciones en la memoria principal, decodificarlas
(interpretación) y ejecutarlas, empleando para ello la unidad de proceso.
Existen dos tipos de unidades de control: las cableadas, usadas generalmente en máquinas
sencillas, y las microprogramadas, propias de máquinas más complejas. En el primer caso,
los componentes principales son el circuito de lógica secuencial, el de control de estado, el
de lógica combiana nacional y el de emisión de reconocimiento de señales de control. En
el segundo caso, la microprogramación de la UC se encuentra almacenada en una
micromemoria, a la cual se accede de manera secuencial para posteriormente ir ejecutando
cada una de las microinstrucciones.
5.REGISTRO EN UNA COMPUTADORA:
En arquitectura de ordenadores, un registro es una memoria de alta velocidad y poca
capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder
a valores muy usados, generalmente en operaciones matemáticas.
Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida
que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número
de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits". Los
registros generalmente se implementan en un banco de registros, pero antiguamente se
usaban vi estables individuales, memoria SRAM o formas aun más primitivas.
El término es usado generalmente para referirse al grupo de registros que pueden ser
directamente indexados como operandos de una instrucción, como está definido en
el conjunto de instrucciones. Sin embargo, los microprocesadores tienen además muchos
otros registros que son usados con un propósito específico, como el contador de programa.
Por ejemplo, en la arquitectura IA32, el conjunto de instrucciones define 8 registros de 32
bits.
Tipos de registros:
Los registros de datos son usados para guardar números enteros. En algunas
computadoras antiguas, existía un único registro donde se guardaba toda la
información, llamado acumulador.
Los registros de memoria son usados para guardar exclusivamente direcciones de
memoria. Eran muy usados en la arquitectura Harvard, ya que muchas veces las
direcciones tenían un tamaño de palabra distinto que los datos.
Los registros de propósito general
pueden guardar tanto datos como direcciones. Son fundamentales en la arquitectura de
von Neumann. La mayor parte de las computadoras modernas usa GPR.
Los registros de coma flotante son usados para guardar datos en formato de coma
flotante.
Los registros constantes tienen valores creados por hardware de sólo lectura. Por
ejemplo, en MIPS el registro cero siempre vale 0.
Los registros de propósito específico guardan información específica del estado del
sistema, como el puntero de pila o el registro de estado.
6.UNIDAD DE ARITMÉTICA LÓGICA:
En computación, la unidad aritmética lógica o unidad aritmético-lógica, también conocida
como ALU ), es un circuito digital que calcula operaciones aritméticas (como suma, resta,
multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre valores (generalmente uno o
dos) de los argumentos.
Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética,
así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula que se
mantiene sumando 1 al tiempo actual, y se mantiene comprobando si debe activar el sonido
de la alarma, etc.
Por mucho, los circuitos electrónicos más complejos son los que están construidos dentro
de los chips de microprocesadores modernos. Por lo tanto, estos procesadores tienen dentro
de ellos un ALU muy complejo y potente. De hecho, un microprocesador moderno puede
tener múltiples núcleos, cada núcleo con múltiples unidades de ejecución, cada una de ellas
con múltiples ALU.
Muchos otros circuitos pueden contener en el interior una unidad aritmético
lógica: unidades de procesamiento gráfico como las que están en las GPU
modernas, FPU como el viejo coprocesador matemático 80387, y procesadores digitales de
señales como los que se encuentran en tarjetas de sonido, lectoras de CD y los televisores
de alta definición. Todos éstos tienen en su interior varias ALU potentes y complejas.
Circuito operacional:
La ALU se compone básicamente de: Circuito Operacional, Registros de Entradas, Registro
Acumulador y un Registro de Estados, conjunto de registros que hacen posible la
realización de cada una de las operaciones.
La mayoría de las acciones de la computadora son realizadas por la ALU. La ALU toma
datos de los registros del procesador. Estos datos son procesados y los resultados de esta
operación se almacenan en los registros de salida de la ALU. Otros mecanismos mueven
datos entre estos registros y la memoria.2
7.UNIDAD DE PRUEBA DE PROTECCIÓN:
La protección de memoria, es un método para controlar el uso de memoria en una computadora, y es parte esencial de prácticamente todos los sistemas operativos modernos. El principal propósito de la protección de memoria es evitar que un proceso en un sistema operativo acceda a la memoria que no le ha sido asignada. Así pueden evitarse problemas durante la ejecución del software, y también se evita que software maligno acceda a los recursos del sistema.
8.UNIDAD DE DECODIFICACION
Se encarga de decodificar la instrucción que se va a ejecutar. Es decir, saber qué instrucción es. Cuando el microprocesador lee de memoria una instrucción, el código de esa instrucción le llega a esta unidad. Esta unidad se encarga de interpretar ese código para averiguar el tipo de instrucción a realizar. Por ejemplo, instrucciones de suma, multiplicación, almacenamiento de datos en memoria,etc.