18
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.

Partes Microprocesador (1)

Embed Size (px)

DESCRIPTION

Juan Sebastian Parrado Romero

Citation preview

Page 1: Partes Microprocesador (1)

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.

Page 2: Partes Microprocesador (1)

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:

Page 3: Partes Microprocesador (1)

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

Page 4: Partes Microprocesador (1)

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)

Page 5: Partes Microprocesador (1)

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

Page 6: Partes Microprocesador (1)

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)

Page 7: Partes Microprocesador (1)

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

Page 8: Partes Microprocesador (1)

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

Page 9: Partes Microprocesador (1)

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.

Page 10: Partes Microprocesador (1)

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

Page 11: Partes Microprocesador (1)

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.

Page 12: Partes Microprocesador (1)

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

Page 13: Partes Microprocesador (1)

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.