Tarea 2INVESTIGA QUE SON LOS REGISTROS INTERNOS, LA MEMORIA, INTERRUPCIONES YMODOS DE DIRECCIONAMIENTO EN UNA COMPUTADORA ...
Fundamentos de Lógica DigitalLUNES, 19 DE NOVIEMBRE DE 2007Suplemento # 4a: Las instrucciones del µP 8086Todo microprocesa...
"entender" las instrucciones que podían ser "entendidas" por los modelos previos, ya que de no serasí basta una sola instr...
memoria RAM es que con 16 bits solo se pueden especificar 65,536 ( = 2n = 216 ) localidadesdiferentes de memoria RAM con t...
Generalmente hablando, el registro de las banderas no tiene como objetivo el ser accesadodirectamente por el programador d...
C = Carryflag (bandera de "llevar")El registro AX en el microprocesador es el registro mejor conocido en las computadorasc...
ASCII adjust after subtractionadcadd with carryaddadd without carryandlogical ANDcall targetcall procedurecbwconvert byte ...
cwdconvert word to doubleworddaadecimal adjust after additiondasdecimal adjust after subtractiondec destinationdecrementdi...
int immediatecall interrupt service routineintointerrupt on overflowiretinterrupt returnjajump if above; (carry flag = 0) ...
jump if less or equal; (sign flag less than or greater than overflow flag) or (zero flag = 1)jnajump if not above (carry f...
jnzjump if not zero; (zero flag = 0)jojump if overflow; (oveflow flag = 1)jpjump if parity; (parity flag =1)jpejump if par...
lodsbload string bytelodswload string wordloop targetloop on register cxloope targetloop on register cx while equalloopz t...
no operationnot destinationones complement negationor destination, sourcelogical ORout port, accumulatoroutput to portouts...
repe string instructionrepeat while equalrepz string instructionrepeat while zero flag = 1repne string instructionrepeat w...
scaswscan string wordshl destination, countshift leftshr destination, countshift rightstcset carry flagstdset direction fl...
translate from tablexlatbtranslate from tablexor destination, sourceexclusive ORVarias de estasinstruccionesprácticamented...
add ax,dx...Este pequeño fragmento "carga" el registro AX con el número 5 (o mejor dicho, con el númerobinario 00000101), ...
Registros de segmentoUn registro de segmento tiene 16 bits de longitud y facilita un área de memoriapara direccionamiento ...
Registros de propósito general.Los registros de propósito general AX, BX, CX y DX son los caballos de batalladel sistema. ...
Registro de Apuntador de Instrucciones.El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamientode...
En el ejemplo siguiente, el registro SS contiene la dirección de segmento27B3[0]H y el SP el desplazamiento 312H. Para enc...
Regresar ArribaRegistro de Banderas.De los 16 bits del registro de banderas, nueve son comunes a toda la familia deprocesa...
SF (signo). Contiene el signo resultante de una operación aritmética (0 = positivoy 1 = negativo).ZF (cero). Indica el res...
Registros de PILALa pila es un área de memoria importante y por ello tiene, en vez de uno, dosregistros que se usan como d...
bytes (AH o AL). También se utiliza este registro (junto con DX a veces) en   multiplicaciones y divisiones.2. BX = Regist...
7. SI = Puntero índice (no se puede subdividir). Sirve como puntero fuente      para las operaciones con cadenas. También ...
PF (ParityFlag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, unnúmero par de bits a 1. Este indicador se...
OF (Overflowflag, bit 11): Si vale 1, hubo un desborde en una operaciónaritmética con signo, esto es, un dígito significat...
Flag de Cero(Z): Toma el valor 1 si el resultado de una operación es cero. Es elbit seis.Flag de signo(S): Toma el valor 1...
Es un registro de 16 bits que indica la dirección de una memoria RAM externadenominada Stack. El objetivo de esta área de ...
DIMM normal y corriente de memoria RAM tipo DDR3 de 240 contactos.La memoria de acceso aleatorio (en inglés: random-access...
9 Referencias10 Enlaces externos[editar]NomenclaturaLa expresión memoria RAM se utiliza frecuentemente para describir a lo...
Módulos de memoria tipo SIPP instalados directamente sobre la placa base.Uno de los primeros tipos de memoria RAM fue la m...
A finales de los 80 el aumento en la velocidad de los procesadores y el aumento en el ancho de bandarequerido, dejaron rez...
mercado, dado que Intel y otros fabricantes se decidieron por esquemas de memoria sincrónicos que sibien tenían mucho del ...
Artículo principal: SDRAM.Memoria síncrona, con tiempos de acceso de entre 25 y 10 ns y que se presentan en módulos DIMM d...
Módulos de memoria instalados de 256 MiB cada uno en un sistema con doble canal.Artículo principal: DDR2.Las memorias DDR ...
   PC3-14900 o DDR3-1866: funciona a un máx de 1866,6 MHz.   PC3-17000 o DDR3-2133: funciona a un máx de 2133,3 MHz.[edi...
Diagrama de la arquitectura de un ordenador.Dentro de la jerarquía de memoria la RAM se encuentra en un nivel después de l...
Algunos controladores de memoria en sistemas como PC y servidores se encuentran embebidos en elllamado "North Bridge" o "P...
Para los fallos de memoria se pueden utilizar herramientas de software especializadas que realizanpruebas sobre los módulo...
perteneciente al sistema operativo, o al BIOS). Luego de finalizada dicha subrutina, se reanuda laejecución del programa.L...
[editar]Funcionamiento           del mecanismo de interrupcionesCada dispositivo que desea comunicarse con el procesador p...
El bus de control dispone de líneas específicas para el sistema de interrupciones. En el IBMPC y XT existen 8 líneas de pe...
IRQ3    0B        Puertos serie COM2/COM4 Puerto serie COM2/COM4IRQ4    0C        Puertos serie COM1/COM3 Puertos serie CO...
Un ordenador PC típico dispone en su placa base de un controlador de interrupciones 8259 de Intel o deun circuito integrad...
y cuando el dispositivo esté de nuevo disponible será el encargado de notificarle al procesador mediantela línea de interr...
1. Un programa que se venía ejecutando luego de su instrucción I5 , llama al Sistema Operativo,         por ejemplo para l...
Hay distintas metodologías de diseño para las interrupciones con direcciones variables. En la actualidad,las alternativas ...
otras desventajas que no podemos olvidar y es que suele ser lento porque tiene que comprobar en    serie todos los disposi...
tantos colectores conectados como dispositivos tengamos (se entiende que son dispositivos que    mandan petición de interr...
interrupciones suelen ser causadas por dispositivos de hardware que no son compatibles con una tasade interrupción limitan...
4 Direccionamiento paginado y direccionamiento segmentado5 Algunos modos de direccionamiento obsoletos6 Direccionamiento a...
[editar]AdvertenciaTenga en cuenta que no existe una forma generalmente aceptada de nombrar a los distintos modos dedirecc...
top() es 1ntop() es 2donde top() representa el tope de la pila y ntop() el siguiente al tope de la pila y son estos argume...
En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando resideen la memoria y s...
Ejemplo: MOV A,@17H[editar]AbsolutoEl campo de operando contiene una dirección en memoria, en la que se encuentra la instr...
Ejemplo: MOV A,R0[editar]Indirecto    mediante registrosEl campo de operando de la instrucción contiene un identificador d...
Ejemplo: MOV A,@R0[editar]De   desplazamientoCombina el modo directo e indirecto mediante registros[editar]De   pilaSe uti...
EA = RB+offset RB = registro base offset = desplazamiento -> RB secomporta como una dirección de memoria a la que se le su...
[editar]Instrucción     de salto con direccionamiento absolutoConsiste en cargar en el PC el valor que se especifica en la...
Segmentado: La memoria se divide en porciones cuyos tamaños son variables. Así, para acceder aellos se tiene una tabla de ...
Tarea 2 mapa mental int,mod dir,mem and reg
Tarea 2 mapa mental int,mod dir,mem and reg
Tarea 2 mapa mental int,mod dir,mem and reg
Tarea 2 mapa mental int,mod dir,mem and reg
Tarea 2 mapa mental int,mod dir,mem and reg
Upcoming SlideShare
Loading in...5
×

Tarea 2 mapa mental int,mod dir,mem and reg

462

Published on

Mapa mental de la relacion de interrucion ,modos de direcionamiento y memoria RAM,adema de registros.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
462
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tarea 2 mapa mental int,mod dir,mem and reg

  1. 1. Tarea 2INVESTIGA QUE SON LOS REGISTROS INTERNOS, LA MEMORIA, INTERRUPCIONES YMODOS DE DIRECCIONAMIENTO EN UNA COMPUTADORA Y ELABORA UN MAPA MENTAL.Puntos Criterio Indicador Nivel excelente Nivel bueno Nivel regular 4 3 2 Contiene el tema central y Contiene el tema F la mayoría de las ideas primarias y secundarias central, la mayoría de p Contiene el tema central y relevantes. Ideas principales todas las ideas primarias y las ideas primarias y s y secundarias secundarias relevantes. solamente algunas Secundarias. No tiene errores de Tiene menos de tres Tiene menos de cuatro T Ortografía y ortografía, y la redacción errores de ortografía, y la errores de ortografía, y la e redacción es clara, precisa y redacción es clara, precisa redacción es clara, precisa r pertinente. y pertinente. y pertinente. s Identifica todas las Identifica las ideas Identifica las ideas E primarias y secundarias primarias y secundarias r ideas primarias y importantes, pero tiene importantes, pero realiza p pocos errores en las algunas relaciones entre Relaciona ideas secundarias relaciones entre éstas. éstas de manera incorrecta. m principales y secundarias importantes y establece de manera correcta las relaciones entre éstas. Utiliza imágenes acordes Utiliza imágenes acordes Presenta un mapa mental el Imágenes al tema, las cuales al tema, las cuales cual no contiene imágenes, ejemplifican claramente y ejemplifican claramente y son acordes al tema son acordes al tema Disponible en: Wednesday, 29 de August de 2012, 14:15Fecha de entrega: Thursday, 6 de September de 2012, 14:15
  2. 2. Fundamentos de Lógica DigitalLUNES, 19 DE NOVIEMBRE DE 2007Suplemento # 4a: Las instrucciones del µP 8086Todo microprocesador, desde el primero que hizo su aparición hasta los más complejos en laactualidad, desde el momento en que es puesto a la venta es entregado con un conjunto deinstrucciones en lenguaje de máquina en las cuales se detallan las operaciones que elmicroprocesador es capaz de hacer. En cada versión nueva de microprocesador la primera prioridades aumentar el número de instrucciones disponibles para ofrecer más opciones de programación alprogramador.Aunque pudiera parecerle a muchos un ejercicio inútil la familiarización con el conjunto deinstrucciones de las operaciones que puede llevar a cabo cualquier microprocesador, es de enormeinterés el estar familiarizados con el conjunto "primitivo" de las instrucciones de los primerosmicroprocesadores que aparecieron en el mercado por una razón muy sencilla:todas lasinstrucciones de cada microprocesador se han ido incorporando dentro del conjunto deinstrucciones del nuevo modelo que lo reemplaza. Esto se debe a una característica impuesta porlos consumidores: la demanda de algo conocido como upwardcompatibility. Esencialmente, estoconsiste en el hecho de que una de las grandes inversiones en cualquier computadora personal deescritorio son los programas que se van a ejecutar en ella. A nadie le gusta invertir mucho dinero enla adquisición de programas para utilizar procesadores de palabras como Microsoft Word o hacerdiseños gráficos como AutoCAD si dichos programas no se podrán correr en las nuevascomputadoras que vayan saliendo al mercado. Esto prácticamente exige a los fabricantes de losmicroprocesadores continuar incorporando dentro de sus nuevos modelos la capacidad para poder
  3. 3. "entender" las instrucciones que podían ser "entendidas" por los modelos previos, ya que de no serasí basta una sola instrucción ausente para poder inutilizar potencialmente una inversión de cientoso quizá miles de dólares en "software". Es por esto que es de enorme interés el lograr unafamiliarización con los conjuntos de instrucciones de los microprocesadores más sencillos, puestoquien no logra tal cosa menos podrá comprender los nuevos conjuntos de instrucciones mucho másamplios y mucho más complejos de los microprocesadores de la actualidad.Para poder entender el significado del conjunto de instrucciones del microprocesador 8086 esnecesario tomar conocimiento de algunos detalles internos a la arquitectura de estemicroprocesador. Lo más importante es que el 8086 posee varios registros de almacenamiento,construídos cada uno de ellos con 16 flip-flops:Estos registros pueden ser clasificados en cuatro categorías: el registro de las banderas(flags),los ocho registros de propósito general (AX, BX, CX, DX, SI, DI, BP y SP, cada uno de 16bits), el puntero de instrucciones IP, y los registros de segmentos (CS,DS, ES y SS).El problema principal en utilizar únicamente 16 bits para "domiciliar" cada dato contenido en una
  4. 4. memoria RAM es que con 16 bits solo se pueden especificar 65,536 ( = 2n = 216 ) localidadesdiferentes de memoria RAM con todas las combinaciones posibles de "unos" y "ceros" que permiteuna palabra de 16 bits. Los registros de segmentos son utilizados para un ingenioso esquema deadición de "segmentos" de bits al domicilio básico de 16 bits mediante estos registros especiales,esquema manejado por el microprocesador 8086 con el propósito de poder "domiciliar" más de65,536 bytes cuando se cuenta únicamente con registros de 16 bits para ello, esto es, cuando serequiere "domiciliar" para la ejecución de cualquier programa decente una cantidad de memoriaRAM mucho mayor que la que normalmente podría "domiciliar" un microprocesador limitado aluso de palabras binarias con una extensión de 16 bits. El proceso de ampliación del espacio dememoria "domiciliable" se puede bosquejar en su esencia más sencilla de la siguiente manera:Es así como en las primeras computadoras personales de escritorio no hubo ninguna dificultad paraque el microprocesador 8086 pudiese manejar memorias RAM con una capacidad de un millón delocalidades diferentes (1 millón 48 mil 576 para ser exactos) ó 1 Megabytes, con cada localidadalmacenando un byte (8 bits) de información:
  5. 5. Generalmente hablando, el registro de las banderas no tiene como objetivo el ser accesadodirectamente por el programador del microprocesador; estas "banderas" son "izadas" (puestas en"1") cuando ocurre alguna condición especial, por ejemplo cuando el resultado de alguna operaciónaritmética es cero, lo cual iza la "bandera de cero" o zeroflagponiéndo dicho registro en el estado"1". La posición relativa de cada una de las "banderas" en este registro es la siguiente:Las "banderas" guardadas por el registro son las siguientes:O = Overflowflag (bandera de sobreflujo)D = Directionflag (bandera de dirección)T = Trapflag (bandera de trampa)S = Signflag (bandera de signo aritmético)Z = Zero flag (bandera de cero)A = AuxiliaryCarryflag (bandera de "llevar" auxiliar)
  6. 6. C = Carryflag (bandera de "llevar")El registro AX en el microprocesador es el registro mejor conocido en las computadorasconvencionales como el acumulador. Siempre está involucrado cuando se llevan a cabo lasoperaciones de multiplicación y división, y también es el registro más eficiente de utilizar cuando sellevan a cabo ciertas operaciones aritméticas, lógicas, y de movimiento de datos.El registro BX puede ser utilizado como puntero hacia localidades de la memoria RAM.La especialidad del registro CX es contar.El registro DX es el único registro en el microprocesador 8086 que puede ser utilizado como unpuntero hacia domicilios relacionados con las unidades de Entrada/Salida(Input/Output) con lasinstrucciones IN y OUT.El registro SP es el conocido como el puntero hacia la pila (stack pointer).A continuación se presenta el conjunto de instrucciones disponibles dentro de dos de los primerosgrandes microprocesadores "abuelos", el microprocesador 8086 y el microprocesador 8088, juntocon las descripciones que les fueron dadas originalmente. Es importante señalar que este conjuntode instrucciones está dado en las mnemónicas(abreviaturas de fácil memorización) que fuerondadas por los fabricantes, porque a fin de cuentas todas estas instrucciones en realidad soninstrucciones en lenguaje de "unos" y "ceros", y para poder convertir un programa escrito con estasmnemónicas a un programabinario que la máquina pueda correr directamente es necesario utilizarla ayuda de un lenguaje ensamblador (assembler):aaaASCCI adjust after additionaadASCII adjust before divisionaamASCII adjust after multiplicationaas
  7. 7. ASCII adjust after subtractionadcadd with carryaddadd without carryandlogical ANDcall targetcall procedurecbwconvert byte to wordclcclear carry flagcldclear direction flagcliclear interrupt flagcmccomplement carry flagcmp destination, sourcecomparecmps source, destinationcompare stringscmpsbcompare string bytescmpswcompare string words
  8. 8. cwdconvert word to doubleworddaadecimal adjust after additiondasdecimal adjust after subtractiondec destinationdecrementdiv sourceunsigned divideesc immediate, sourceescapehithaltidiv sourcesigned integer divideimul sourcesigned integer multiplyin accumulator, portinput from portinc destinationincrementins destination, portinput from port to stringinsbinput from port to string byteinswinput from port to string word
  9. 9. int immediatecall interrupt service routineintointerrupt on overflowiretinterrupt returnjajump if above; (carry flag = 0) and (zero flag = 0)jaejump if above or equal; (carry flag = 0)jbjump if below (carry flag = 1)jbejump if below or equal; (carry flag = 1) or (zero flag = 1)jcjump if carry; (carry flag = 1)jcxzjump if register cx equals 0jejump if equal; (zero flag = 1)jgjump if greater; (sign flag = overflow flag) and (zero flag = 0)jgejump if greater or equal; (sign flag = overflow flag)jljump if less; (sign flag less than or greater than overflow flag)jle
  10. 10. jump if less or equal; (sign flag less than or greater than overflow flag) or (zero flag = 1)jnajump if not above (carry flag = 1) or (zero flag = 1)jnaejump if not above or equal (carry flag = 1)jnbjump if not below; (carry flag = 0)jnbejump if not below or equal; (carry flag = 0) and (zero flag = 0)jncjump if not carry; (carry flag = 0)jnejump if not equal; (zero flag = 0)jngjump if not greater; (sign flag less than or greater than overflow flag) or (zero flag = 1)jngejump if not greater or equal; (sign flag less than or greater than overflow flag)jnljump if not less; (sign flag = overflow flag)jnlejump if not less or equal; (sign flag = overflow flag) and (zero flag = 0)jnojump if not overflow; (overflow flag = 0)jnpjump if not parity; (parity flag = 0)jnsjump if not sign; (sign flag = 0)
  11. 11. jnzjump if not zero; (zero flag = 0)jojump if overflow; (oveflow flag = 1)jpjump if parity; (parity flag =1)jpejump if parity even; (parity flag = 1)jpojump if parity odd; (parity flag = 0)jsjump if sign; (sign flag = 1)jzjump if zero; (zero flag = 1)jump targetjump unconditionallylahfload (some) flags into register ahlds register, sourceload pointer and register dslea register, sourceload effective addressles register, sourceload pointer and register eslocklock the buslod sourceload string
  12. 12. lodsbload string bytelodswload string wordloop targetloop on register cxloope targetloop on register cx while equalloopz targetloop on register cx while zero flag = 1loopne targetloop on register cx while not equalloopnz targetloop on register cx while zero flag = 0mov destination, sourcemove datamov destination, sourcemove stringmovsbmove string bytemovswmove string wordmul sourceunsigned multiplicationneg destinationtwos complemente negationnop
  13. 13. no operationnot destinationones complement negationor destination, sourcelogical ORout port, accumulatoroutput to portouts port, sourceoutput from string to portoutsboutput from string byte to portoutswountput from string word to portpop destinationpop from stackpopfpop flagspush sourcepush onto stackpushfpush flagsrcl destination, countrotate through carry-leftrcr destination, countrotate through carry-rightrep string instructionrepeat
  14. 14. repe string instructionrepeat while equalrepz string instructionrepeat while zero flag = 1repne string instructionrepeat while not equalrepnz string instructionrepeat while zero flag = 0ret immediatereturnretf immediatereturn farretn immediatereturn nearrol destination, countrotate leftror destination, countrotate rightsahfstore ah register to flags registersal destination, countshift arithmetic leftsar destination, countshift arithmetic rightsbb destination, sourcesubtract integers with borrowscasb destinationscan string
  15. 15. scaswscan string wordshl destination, countshift leftshr destination, countshift rightstcset carry flagstdset direction flagstiset interrupt-enable flagstos destinationstore stringstosbstore string bytestoswstore string wordsub destination, sourcesubtracttest destination, sourcetest bitswaitwait until not busyxchg destination, sourceexchangexlat source
  16. 16. translate from tablexlatbtranslate from tablexor destination, sourceexclusive ORVarias de estasinstruccionesprácticamentedelatan la arquitecturadelmicroprocesador. Lasinstrucciones shl (shift left) y shr (shift right) delatan la presencia de unregistro dedesplazamiento en ambasvías, quepuedesercapaz de irdesplazandounapalabrabinaria bit-por-bit yasea hacia la izquierda o hacia la derecha. Porotrolado, lasinstrucciones popy push revelanque sepuedeoperarunapila de datosdesdedelmicroprocesador.A manera de ejemplo de cómo seusanestasinstruccionesparairforjandounprogramaelaboradoparaestemicroprocesador 8086 deIntel, tenemos el siguientefragmentoescrito en algúnlenguajeensambladorcomo Turbo Assembler:...mov ah,0moval,ahinc al...en donde la primerainstrucción mov "carga" el registro AH con el valor de 0 (o mejordicho, con elbyte de cero, "00000000"), con la segundainstrucción mov se copia el valor almacenado en elregistro AH al registro AL, y trasestoincrementa en unaunidad el contenido del registro AL con lainstrucción inc.El resultado final nos deja ambos registrosAL y AH "cargados" con elvalor 00000000, "limpiando" ambos registros a cero. (La instrucción mov en realidad deberíahaberse llamado copy, porque el contenido tomado del registro original no es removido de dichoregistro.)Aquí tenemos otro ejemplo:...mov ax,5mov dx,9
  17. 17. add ax,dx...Este pequeño fragmento "carga" el registro AX con el número 5 (o mejor dicho, con el númerobinario 00000101), tras lo cual "carga" el registro DX con el número 9 (o mejor dicho, con elnúmero binario 00001001), y en la tercera instrucción suma los contenidos en ambos registrosdejando el resultado en el registro AX. En castellano, esto ser resumiría como "poner al acumuladoren el estado 5 (cargar sus flip-flops con el equivalente binario del número 5), "poner al registro dxen el estado 9", "y sumar el contenido del registro DX al contenido del acumulador dejando elresultado en el acumulador". REGISTROS DEL PROCESADORLos registros del procesador se emplean para controlar instrucciones enejecución, manejar direccionamiento de memoria y proporcionar capacidadaritmética. Los registros son direccionables por medio de un nombre. Los bits porconvención, se numeran de derecha a izquierda, como en: ... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0Los registros internos del procesador se puede clasificar en 6 tipos diferentes 1. Registros de segmento 2. Registros de propósito general 3. Registros de apuntadores 4. Registros de banderas 5. Registros de Puntero de instrucción 6. Registros de Pila
  18. 18. Registros de segmentoUn registro de segmento tiene 16 bits de longitud y facilita un área de memoriapara direccionamiento conocida como el segmento actual.Registro CS. El DOS almacena la dirección inicial del segmento de código de unprograma en el registro CS. Esta dirección de segmento, mas un valor dedesplazamiento en el registro apuntador de instrucción (IP), indica la dirección deuna instrucción que es buscada para su ejecución.Registro DS. La dirección inicial de un segmento de datos de programa esalmacenada en el registro DS. En términos sencillos, esta dirección, mas un valorde desplazamiento en una instrucción, genera una referencia a la localidad de unbyte especifico en el segmento de datos.Registro SS. El registro SS permite la colocación en memoria de una pila, paraalmacenamiento temporal de direcciones y datos. El DOS almacena la direcciónde inicio del segmento de pila de un programa en le registro SS. Esta dirección desegmento, mas un valor de desplazamiento en el registro del apuntador de pila(SP), indica la palabra actual en la pila que esta siendo direccionada.Registros ES. Alguna operaciones con cadenas de caracteres (datos decaracteres) utilizan el registro extra de segmento para manejar eldireccionamiento de memoria. En este contexto, el registro ES esta asociado conel registro DI (índice). Un programa que requiere el uso del registro ES puedeinicializarlo con una dirección de segmento apropiada.Registros FS y GS. Son registros extra de segmento en los procesadores 80386 yposteriores. Regresar Arriba
  19. 19. Registros de propósito general.Los registros de propósito general AX, BX, CX y DX son los caballos de batalladel sistema. Son únicos en el sentido de que se puede direccionarlos como unapalabra o como una parte de un byte. El ultimo byte de la izquierda es la parte"alta", y el ultimo byte de la derecha es la parte "baja". Por ejemplo, el registroCX consta de una parte CH (alta) y una parte Cl (baja), y usted puede referirse acualquier parte por su nombre.Registro AX. El registro AX, el acumulador principal, es utilizado paraoperaciones que implican entrada/salida y la mayor parte de la aritmética. Porejemplo, las instrucciones para multiplicar , dividir y traducir suponen el uso delAX. También, algunas operaciones generan código mas eficiente si se refieren alAX en lugar de a los otros registros.Registro BX. El BX es conocido como el registro base ya que es el únicoregistro de propósito general que puede ser índice para direccionamientoindexado. También es común emplear el BX para cálculos.Registro DX. El DX es conocido como l registro de datos. Alguna operacionesde entrada/salida requieren uso, y las operaciones de multiplicación y divisióncon cifras grandes suponen al DX y al AX trabajando juntos. Regresar Arriba
  20. 20. Registro de Apuntador de Instrucciones.El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamientode dirección de la siguiente instrucción que se ejecuta. El IP esta asociado con elregistro CS en el sentido de que el IP indica la instrucción actual dentro delsegmento de código que se esta ejecutando actualmente. Los procesadores 80386y posteriores tienen un IP ampliado de 32 bits, llamado EIP.En el ejemplo siguiente, el registro CS contiene 25A4[0]H y el IP contiene 412H.Para encontrar la siguiente instrucción que será ejecutada, el procesador combinalas direcciones en el CS y el IP:Segmento de dirección en el registro CS: 25A40H Desplazamiento de direcciónen el registro IP: + 412H Dirección de la siguiente instrucción: 25E52H Regresar ArribaRegistros Apuntadores.Los registros SP (apuntador de la pila) Y BP (apuntador de base) están asociadoscon el registro SS y permiten al sistema accesar datos en el segmento de la pila.Registro SP. El apuntador de la pila de 16 bits esta asociado con el registro SS yproporciona un valor de desplazamiento que se refiere a la palabra actual que estasiendo procesada en la pila. Los procesadores 80386 y posteriores tienen unapuntador de pila de 32 bits, el registro ESP. El sistema maneja de formaautomática estos registros.
  21. 21. En el ejemplo siguiente, el registro SS contiene la dirección de segmento27B3[0]H y el SP el desplazamiento 312H. Para encontrar la palabra actual queesta siendo procesada en la pila, la computadora combina las direcciones en el SSy el SP:Registro BP. El BP de 16 bits facilita la referencia de parámetros, los cuales sondatos y direcciones transmitidos vía pila. Los procesadores 80386 y posteriorestienen un BP ampliado de 32 bits llamado el registro EBP. Regresar ArribaRegistros Indice.Los registros SI y DI están disponibles para direccionamiento indexado y parasumas y restas.Registro SI. El registro índice fuente de 16 bits es requerido por algunasoperaciones con cadenas (de caracteres). En este contexto, el SI esta asociado conel registro DS. Los procesadores 80386 y posteriores permiten el uso de unregistro ampliado de 32 bits, el ESI.Registro DI. El registro índice destino también es requerido por algunasoperaciones con cadenas de caracteres. En este contexto, el DI esta asociado conel registro ES. Los procesadores 80386 y posteriores permiten el uso de unregistro ampliado de 32 bits, el EDI.
  22. 22. Regresar ArribaRegistro de Banderas.De los 16 bits del registro de banderas, nueve son comunes a toda la familia deprocesadores 8086, y sirven para indicar el estado actual de la maquina y elresultado del procesamiento. Muchas instrucciones que piden comparaciones yaritmética cambian el estado de las banderas, algunas cuyas instrucciones puedenrealizar pruebas para determinar la acción subsecuente. En resumen, los bits delas banderas comunes son como sigue:OF (Overflow, desbordamiento). Indica desbordamiento de un bitde orden alto (mas a la izquierda) después de una operación aritmética.DF (dirección). Designa la dirección hacia la izquierda o hacia la derecha paramover o comparar cadenas de caracteres.IF (interrupción). Indica que una interrupción externa, como la entrada desde elteclado, sea procesada o ignorada.TF (trampa). Permite la operación del procesador en modo de un paso. Losprogramas depuradores, como el DEBUG, activan esta bandera de manera queusted pueda avanzar en la ejecución de una sola instrucción a un tiempo, paraexaminar el efecto de esa instrucción sobre los registros de memoria.
  23. 23. SF (signo). Contiene el signo resultante de una operación aritmética (0 = positivoy 1 = negativo).ZF (cero). Indica el resultado de una operación aritmética o de comparación (0 =resultado diferente de cero y 1 = resultado igual a cero).AF (acarreo auxiliar). Contiene un acarreo externo del bit 3 en un dato de 8 bitspara aritmética especializada.PF (paridad). Indica paridad par o impar de una operación en datos de 8 bits debajo orden (mas a la derecha).CF (acarreo). Contiene el acarreo de orden mas alto (mas a la izquierda) despuésde una operación aritmética; también lleva el contenido del ultimo bit en unaoperación de corrimiento o de rotación. Las banderas están en el registro debanderas en las siguientes posiciones:Las banderas mas importantes para la programación en ensamblador son O, S, Zy C, para operaciones de comparación y aritméticas, y D para operaciones decadenas de caracteres. Los procesadores 80286 y posteriores tienen algunasbanderas usadas para propósitos internos, en especial las que afectan al modoprotegido. Los procesadores 80286 y posteriores tienen un registro extendido debanderas conocido como Eflags. Regresar Arriba
  24. 24. Registros de PILALa pila es un área de memoria importante y por ello tiene, en vez de uno, dosregistros que se usan como desplazamiento (offset) para apuntar a su contenido.Se usan como complemento al registro y son:-SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva elprocesador para uso propio en instrucciones de manipulado de pila. Por logeneral , el programador no debe alterar su contenido.-BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlopara su provecho.Claro que estos nombres y tipos de registros son estándar, ya que cada fabricantepuede utilizar otros registro que reemplacen a estos o los auxilien, aun así, losfabricantes que usan otros registro tienen la misma función que los anteriormentemencionadosEjemploRegistros de uso general del 8086/8088:Tienen 16 bits cada uno y son ocho: 1. AX = Registro acumulador, dividido en AH y AL (8 bits cada uno). Usándolo se produce (en general) una instrucción que ocupa un byte menos que si se utilizaran otros registros de uso general. Su parte más baja, AL, también tiene esta propiedad. El último registro mencionado es el equivalente al acumulador de los procesadores anteriores (8080 y 8085). Además hay instrucciones como DAA; DAS; AAA; AAS; AAM; AAD; LAHF; SAHF; CBW; IN y OUT que trabajan con AX o con uno de sus dos
  25. 25. bytes (AH o AL). También se utiliza este registro (junto con DX a veces) en multiplicaciones y divisiones.2. BX = Registro base, dividido en BH y BL. Es el registro base de propósito similar (se usa para direccionamiento indirecto) y es una versión más potente del par de registros HL de los procesadores anteriores.3. CX = Registro contador, dividido en CH y CL. Se utiliza como contador en bucles (instrucción LOOP), en operaciones con cadenas (usando el prefijo REP) y en desplazamientos y rotaciones (usando el registro CL en los dos últimos casos).4. DX = Registro de datos, dividido en DH y DL. Se utiliza junto con el registro AX en multiplicaciones y divisiones, en la instrucción CWD y en IN y OUT para direccionamiento indirecto de puertos (el registro DX indica el número de puerto de entrada/salida).5. SP = Puntero de pila (no se puede subdividir). Aunque es un registro de uso general, debe utilizarse sólo como puntero de pila, la cual sirve para almacenar las direcciones de retorno de subrutinas y los datos temporarios (mediante las instrucciones PUSH y POP). Al introducir (push) un valor en la pila a este registro se le resta dos, mientras que al extraer (pop) un valor de la pila este a registro se le suma dos.6. BP = Puntero base (no se puede subdividir). Generalmente se utiliza para realizar direccionamiento indirecto dentro de la pila.
  26. 26. 7. SI = Puntero índice (no se puede subdividir). Sirve como puntero fuente para las operaciones con cadenas. También sirve para realizar direccionamiento indirecto. 8. DI = Puntero destino (no se puede subdividir). Sirve como puntero destino para las operaciones con cadenas. También sirve para realizar direccionamiento indirecto.Cualquiera de estos registros puede utilizarse como fuente o destino enoperaciones aritméticas y lógicas Regresar ArribaIndicadores (flags)Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits mássignificativos están indefinidos, mientras que hay tres bits con valoresdeterminados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno (estotambién ocurría en los procesadores anteriores).CF (CarryFlag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma)hacia, o "préstamo" (en caso de resta) desde el bit de orden más significativo delresultado. Este indicador es usado por instrucciones que suman o restan númerosque ocupan varios bytes. Las instrucciones de rotación pueden aislar un bit de lamemoria o de un registro poniéndolo en el CF.
  27. 27. PF (ParityFlag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, unnúmero par de bits a 1. Este indicador se puede utilizar para detectar errores entransmisiones.AF (AuxiliarycarryFlag, bit 4): Si vale 1, indica que hubo "arrastre" o"préstamo" del nibble (cuatro bits) menos significativo al nibble mássignificativo. Este indicador se usa con las instrucciones de ajuste decimal.ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operación escero.SF (SignFlag, bit 7): Refleja el bit más significativo del resultado. Como losnúmeros negativos se representan en la notación de complemento a dos, este bitrepresenta el signo: 0 si es positivo, 1 si es negativo.TF (TrapFlag, bit 8): Si vale 1, el procesador está en modo paso a paso. En estemodo, la CPU automáticamente genera una interrupción interna después de cadainstrucción, permitiendo inspeccionar los resultados del programa a medida quese ejecuta instrucción por instrucción.IF (InterruptFlag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupciónexternas enmascarables (por el pin INTR). Si vale 0, no se reconocen talesinterrupciones. Las interrupciones no enmascarables y las internas siempre sereconocen independientemente del valor de IF. DF (DirectionFlag, bit 10): Sivale 1, las instrucciones con cadenas sufrirán "auto-decremento", esto es, seprocesarán las cadenas desde las direcciones más altas de memoria hacia las másbajas. Si vale 0, habrá "auto-incremento", lo que quiere decir que las cadenas seprocesarán de "izquierda a derecha".
  28. 28. OF (Overflowflag, bit 11): Si vale 1, hubo un desborde en una operaciónaritmética con signo, esto es, un dígito significativo se perdió debido a quetamaño del resultado es mayor que el tamaño del destino. Regresar ArribaEl procesador Z80Registros de propósito generalEl Z80 posee 14 registros de propósito general de 8 bits denominados A, B, C, D,H, L y A, B, C, D, H , L. Solamente un set de siete registros y elcorrespondiente registro de Flags F pueden estar activos al mismo tiempo. Unainstrucción especial selecciona A y F o A y F mientras que otra instrucciónselecciona B, C, D, E, H, L o C, D, E ,H L.El programador puede cambiar rápidamente de un conjunto de registros depropósito general a otro. Esto proporciona una mayor capacidad dealmacenamiento en registros. El acceso a datos presentes en registros de la CPUes mucho más rápido que el acceso a datos en memoria.Los registros pueden agruparse de a pares formando registros de 16 bits. Estosson los pares BC, DE y HL (sus equivalentes primas también pueden agruparse).FlagsAunque los Flags existen físicamente dentro de la CPU están agrupadoslógicamente formando un registro. Los Flags del Z80 son los siguientes:
  29. 29. Flag de Cero(Z): Toma el valor 1 si el resultado de una operación es cero. Es elbit seis.Flag de signo(S): Toma el valor 1 si el resultado de una operación es negativo. Esel bit siete.Flag de Carry(C): Este flag es afectado por las instrucciones de desplazamiento yes puesto en 1 ó 0 según el valor del bit desplazado. También es afectado por lasoperaciones aritméticas. Este flag es el bit cero.Flag de Paridad y overflow(P/V): En el caso de paridad, se pone en 1 si elresultado de una operación posee un número par de unos. Cuando el flag P/V seusa para representar overflow, el flag se pone en 1 si ocurre un overflow despuésde una operación aritmética. Este flag es el bit 2.Flag H y N: Son dos FlipFlop que no pueden ser examinados por lasinstrucciones de salto condicional. El Z80 los usa para las operaciones BCD. Hrepresenta el rebalse que genera considerando los cuatro bits menos significativosdel resultado y N es el flag de resta, el cual se activa para indicar si la últimainstrucción ejecutada fue suma o resta. En el caso general, una instrucción deresta coloca en 1 el flag N y una instrucción de suma lo coloca en 0. Los Flags Hy N son los bits 4 y 1 respectivamente.Registros de propósito especialProgramCounter:Es un registro de 16 bits que indica la dirección de la próxima instrucciónejecutar. Las instrucciones del Z80 pueden contar de uno, dos, tres o cuatrobytes.Stack-Pointer:
  30. 30. Es un registro de 16 bits que indica la dirección de una memoria RAM externadenominada Stack. El objetivo de esta área de memoria es proporcionar un mediode almacenamiento temporal de los registros del usuario, registro de Flags y delprogramCounter. La provisión de Stack es fundamental para operaciones talescomo los llamados a sub-rutinas e interrupciones.Registros índices IX e IY: Estos registros son de 16 bits, diseñados para permitirun direccionamiento indexado en los programas del Z80. Cuando se ejecuta unainstrucción en un modo de direccionamiento indexado, se usa uno de los dosregistros índices para calcular la dirección del operando.Registro de interrupciones I: Es un registro de 8 bits que puede ser cargadopara especificar el byte más significativo de una dirección de memoria. El bytemenos significativo es proporcionado por el dispositivo que solicita lainterrupción.Registro de refresh de memoria R: Es un registro especial diseñado paraproporcionar un refresh automático de las memorias RAM dinámicas.Registro de instrucciones:El registro de instrucciones tiene por misión almacenar el código de operación dela instrucción leída desde memoria. Este código es descodificado y con estainformación se dirigen todos los micro-pasos.Memoria de acceso aleatorioPara otros usos de este término, véase RAM (desambiguación).
  31. 31. DIMM normal y corriente de memoria RAM tipo DDR3 de 240 contactos.La memoria de acceso aleatorio (en inglés: random-accessmemory),se utiliza como memoria detrabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargantodas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan "deacceso aleatorio"porque se puede leer o escribir en una posición de memoria con un tiempo de esperaigual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de lamanera más rápida posible. Durante el encendido del computador, la rutina POST verifica que losmódulos de memoria RAM estén conectados de manera correcta. En el caso que no existan o no sedetecten los módulos, la mayoría de tarjetas madres emiten una serie de pitidos que indican la ausenciade memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre lamemoria RAM indicando fallos mayores en la misma. Contenido [ocultar]1 Nomenclatura2 Historia3 Tecnologías de memoria o 3.1 SDR SDRAM o 3.2 RIMM RDRAM o 3.3 DDR SDRAM o 3.4 DDR2 SDRAM o 3.5 DDR3 SDRAM4 Módulos de la memoria RAM5 Relación con el resto del sistema6 Detección y corrección de errores7 Memoria RAM registrada8 Véase también
  32. 32. 9 Referencias10 Enlaces externos[editar]NomenclaturaLa expresión memoria RAM se utiliza frecuentemente para describir a los módulos dememoria utilizados en los computadores personales y servidores. En el sentido estricto, esta memoriaes solo una variedad de la memoria de acceso aleatorio: las ROM, memorias Flash, caché (SRAM),los registros en procesadores y otras unidades de procesamiento también poseen la cualidad depresentar retardos de acceso iguales para cualquier posición. Los módulos de RAM son la presentacióncomercial de este tipo de memoria, que se compone de circuitos integrados soldados sobre un circuitoimpreso independiente, en otros dispositivos como las consolas de videojuegos, la RAM va soldadadirectamente sobre la placa principal.[editar]HistoriaIntegrado de silicio de 64 bits sobre un sector de memoria de núcleo magnético (finales de los 60).4MiB de memoria RAM para un computador VAX de finales de los 70. Los integrados de memoria DRAM están agrupadosarriba a derecha e izquierda.
  33. 33. Módulos de memoria tipo SIPP instalados directamente sobre la placa base.Uno de los primeros tipos de memoria RAM fue la memoria denúcleo magnético, desarrollada entre1949 y 1952 y usada en muchos computadores hasta el desarrollo de circuitos integrados a finales delos años 60 y principios de los 70. Esa memoria requería que cada bit estuviera almacenado enuntoroide de material ferromágnetico de algunos milímetros de diámetro, lo que resultaba en dispositivoscon una capacidad de memoria muy pequeña. Antes que eso, las computadoras usaban relés y líneasde retardo de varios tipos construidas para implementar las funciones de memoria principal con o sinacceso aleatorio.En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de silicio porparte de Intel con el integrado 3101 de 64 bits de memoria y para el siguiente año se presentó unamemoria DRAM de 1024 bytes, referencia 1103 que se constituyó en un hito, ya que fue la primera enser comercializada con éxito, lo que significó el principio del fin para las memorias de núcleo magnético.En comparación con los integrados de memoria DRAM actuales, la 1103 es primitiva en varios aspectos,pero tenía un desempeño mayor que la memoria de núcleos.En 1973 se presentó una innovación que permitió otra miniaturización y se convirtió en estándar para lasmemorias DRAM: la multiplexación en tiempo de la direcciones de memoria. MOSTEK lanzó lareferencia MK4096 de 4096 bytes en un empaque de 16 pines,1 mientras sus competidores lasfabricaban en el empaque DIP de 22 pines. El esquema de direccionamiento2 se convirtió en unestándar de facto debido a la gran popularidad que logró esta referencia de DRAM. Para finales de los70 los integrados eran usados en la mayoría de computadores nuevos, se soldaban directamente a lasplacas base o se instalaban en zócalos, de manera que ocupaban un área extensa de circuito impreso.Con el tiempo se hizo obvio que la instalación de RAM sobre el impreso principal, impedía laminiaturización , entonces se idearon los primeros módulos de memoria como el SIPP, aprovechandolas ventajas de la construcción modular. El formato SIMM fue una mejora al anterior, eliminando lospines metálicos y dejando unas áreas de cobre en uno de los bordes del impreso, muy similares a los delas tarjetas de expansión, de hecho los módulos SIPP y los primeros SIMM tienen la misma distribuciónde pines.
  34. 34. A finales de los 80 el aumento en la velocidad de los procesadores y el aumento en el ancho de bandarequerido, dejaron rezagadas a las memorias DRAM con el esquema original MOSTEK, de manera quese realizaron una serie de mejoras en el direccionamiento como las siguientes:Módulos formato SIMM de 30 y 72 pines, los últimos fueron utilizados con integrados tipo EDO-RAM. FPM-RAM (Fast Page Mode RAM)Inspirado en técnicas como el "BurstMode" usado en procesadores como el Intel 486,3 se implantó unmodo direccionamiento en el que el controlador de memoria envía una sola dirección y recibe a cambioesa y varias consecutivas sin necesidad de generar todas las direcciones. Esto supone un ahorro detiempos ya que ciertas operaciones son repetitivas cuando se desea acceder a muchas posicionesconsecutivas. Funciona como si deseáramos visitar todas las casas en una calle: después de la primeravez no seria necesario decir el número de la calle únicamente seguir la misma. Se fabricaban contiempos de acceso de 70 ó 60 ns y fueron muy populares en sistemas basados en el 486 y los primerosPentium. EDO-RAM (Extended Data Output RAM)Lanzada en 1995 y con tiempos de accesos de 40 o 30 ns suponía una mejora sobre su antecesora laFPM. La EDO, también es capaz de enviar direcciones contiguas pero direcciona la columna que vautilizar mientras que se lee la información de la columna anterior, dando como resultado una eliminaciónde estados de espera, manteniendo activo el búffer de salida hasta que comienza el próximo ciclo delectura. BEDO-RAM (Burst Extended Data Output RAM)Fue la evolución de la EDO RAM y competidora de la SDRAM, fue presentada en 1997. Era un tipo dememoria que usaba generadores internos de direcciones y accedía a más de una posición de memoriaen cada ciclo de reloj, de manera que lograba un desempeño un 50% mejor que la EDO. Nunca salió al
  35. 35. mercado, dado que Intel y otros fabricantes se decidieron por esquemas de memoria sincrónicos que sibien tenían mucho del direccionamiento MOSTEK, agregan funcionalidades distintas como señales dereloj.[editar]Tecnologías de memoriaLa tecnología de memoria actual usa una señal de sincronización para realizar las funciones de lectura-escritura de manera que siempre esta sincronizada con un reloj delbus de memoria, a diferencia de lasantiguas memorias FPM y EDO que eran asíncronas. Hace más de una década toda la industria sedecantó por las tecnologías síncronas, ya que permiten construir integrados que funcionen a unafrecuencia superior a 66 MHz.Tipos de DIMMs según su cantidad de Contactos o Pines: 72-pin SO-DIMM (not the same as a 72-pin SIMM), usadospor FPM DRAM y EDO DRAM 100-pin DIMM, usados por printer SDRAM 144-pin SO-DIMM, usados por SDR SDRAM 168-pin DIMM, usadospor SDR SDRAM (less frequently for FPM/EDO DRAM in workstations/servers) 172-pin MicroDIMM, usados por DDR SDRAM 184-pin DIMM, usados por DDR SDRAM 200-pin SO-DIMM, usados por DDR SDRAM y DDR2 SDRAM 204-pin SO-DIMM, usados por DDR3 SDRAM 240-pin DIMM, usados por DDR2 SDRAM, DDR3 SDRAM y FB-DIMM DRAM 244-pin MiniDIMM, usados por DDR2 SDRAMMemorias RAM con tecnologías usadas en la actualidad.[editar]SDR SDRAM
  36. 36. Artículo principal: SDRAM.Memoria síncrona, con tiempos de acceso de entre 25 y 10 ns y que se presentan en módulos DIMM de168 contactos. Fue utilizada en los Pentium II y en los Pentium III , así como en los AMD K6, AMDAthlon K7 y Duron. Está muy extendida la creencia de que se llama SDRAM a secas, y que ladenominación SDR SDRAM es para diferenciarla de la memoria DDR, pero no es así, simplemente seextendió muy rápido la denominación incorrecta. El nombre correcto es SDR SDRAM ya que ambas(tanto la SDR como la DDR) son memorias síncronas dinámicas. Los tipos disponibles son: PC66: SDR SDRAM, funciona a un máx de 66,6 MHz. PC100: SDR SDRAM, funciona a un máx de 100 MHz. PC133: SDR SDRAM, funciona a un máx de 133,3 MHz.[editar]RIMM RDRAMArtículo principal: RIMM RDRAM.Se presentan en módulos RIMM de 184 contactos. Fue utilizada en los Pentium IV . Era la memoriamasrapida en su tiempo pero por su elevado costo fue rapidamente cambiada por la economica DDR.Los tipos disponibles son: PC600: RIMM RDRAM, funciona a un máx de 300 MHz. PC700: RIMM RDRAM, funciona a un máx de 356 MHz. PC800: RIMM RDRAM, funciona a un máx de 400 MHz. PC1066: RIMM RDRAM, funciona a un máx de 533 MHz.[editar]DDR SDRAMArtículo principal: DDR SDRAM.Memoria síncrona, envía los datos dos veces por cada ciclo de reloj. De este modo trabaja al doble develocidad del bus del sistema, sin necesidad de aumentar la frecuencia de reloj. Se presenta enmódulos DIMM de 184 contactos en el caso de ordenador de escritorio y en módulos de 144 contactospara los ordenadores portátiles. Los tipos disponibles son: PC1600 o DDR 200: funciona a un máx de 200 MHz. PC2100 o DDR 266: funciona a un máx de 266,6 MHz. PC2700 o DDR 333: funciona a un máx de 333,3 MHz. PC3200 o DDR 400: funciona a un máx de 400 MHz. PC4500 o DR4 400: funciona a una máx de 500 MHz[editar]DDR2 SDRAM
  37. 37. Módulos de memoria instalados de 256 MiB cada uno en un sistema con doble canal.Artículo principal: DDR2.Las memorias DDR 2 son una mejora de las memorias DDR (Double Data Rate), que permiten que losbúferes de entrada/salida trabajen al doble de la frecuencia del núcleo, permitiendo que durante cadaciclo de reloj se realicen cuatro transferencias. Se presentan en módulos DIMM de 240 contactos. Lostipos disponibles son: PC2-4200 o DDR2-533: funciona a un máx de 533,3 MHz. PC2-5300 o DDR2-667: funciona a un máx de 666,6 MHz. PC2-6400 o DDR2-800: funciona a un máx de 800 MHz. PC2-8600 o DDR2-1066: funciona a un máx de 1066,6 MHz. PC2-9000 o DDR2-1200: funciona a un máx de 1200 MHz[editar]DDR3 SDRAMArtículo principal: DDR3.Las memorias DDR 3 son una mejora de las memorias DDR 2, proporcionan significantes mejoras en elrendimiento en niveles de bajo voltaje, lo que lleva consigo una disminución del gasto global deconsumo. Los módulos DIMM DDR 3 tienen 240 pines, el mismo número que DDR 2; sin embargo, losDIMMs son físicamente incompatibles, debido a una ubicación diferente de la muesca. Los tiposdisponibles son: PC3-6400 o DDR3-800: funciona a un máx de 800 MHz. PC3-8500 o DDR3-1066: funciona a un máx de 1066,6 MHz. PC3-10600 o DDR3-1333: funciona a un máx de 1333,3 MHz. PC3-12800 o DDR3-1600: funciona a un máx de 1600 MHz.
  38. 38.  PC3-14900 o DDR3-1866: funciona a un máx de 1866,6 MHz. PC3-17000 o DDR3-2133: funciona a un máx de 2133,3 MHz.[editar]Módulos de la memoria RAMFormato SO-DIMM.Los módulos de memoria RAM son tarjetas de circuito impreso que tienen soldados integrados dememoria DRAM por una o ambas caras. La implementación DRAM se basa en una topología de Circuitoeléctrico que permite alcanzar densidades altas de memoria por cantidad de transistores, lograndointegrados de cientos o miles de megabits. Además de DRAM, los módulos poseen un integrado quepermiten la identificación de los mismos ante el computador por medio del protocolo decomunicación SPD.La conexión con los demás componentes se realiza por medio de un área de pines en uno de los filosdel circuito impreso, que permiten que el modulo al ser instalado en un zócalo apropiado de la placabase, tenga buen contacto eléctrico con los controladores de memoria y las fuentes de alimentación. Losprimeros módulos comerciales de memoria eran SIPP de formato propietario, es decir no había unestándar entre distintas marcas. Otros módulos propietarios bastante conocidos fueron los RIMM,ideados por la empresa RAMBUS.La necesidad de hacer intercambiable los módulos y de utilizar integrados de distintos fabricantescondujo al establecimiento de estándares de la industria como los JEDEC. Módulos SIMM: Formato usado en computadores antiguos. Tenían un bus de datos de 16 o 32 bits Módulos DIMM: Usado en computadores de escritorio. Se caracterizan por tener un bus de datos de 64 bits. Módulos SO-DIMM: Usado en computadores portátiles. Formato miniaturizado de DIMM.[editar]Relación con el resto del sistema
  39. 39. Diagrama de la arquitectura de un ordenador.Dentro de la jerarquía de memoria la RAM se encuentra en un nivel después de los registros delprocesador y de las cachés en cuanto a velocidad. Los módulos de memoria se conectan eléctricamentea un controlador de memoria que gestiona las señales entrantes y salientes de los integrados DRAM.Las señales son de tres tipos: direccionamiento, datos y señales de control. En el módulo de memoriaesas señales están divididas en dos buses y un conjunto misceláneo de líneas de control y alimentación,Entre todas forman el bus de memoria que conecta la RAM con su controlador: Bus de datos: Son las líneas que llevan información entre los integrados y el controlador. Por lo general están agrupados en octetos siendo de 8,16,32 y 64 bits, cantidad que debe igualar el ancho del bus de datos del procesador. En el pasado, algunos formatos de modulo, no tenían un ancho de bus igual al del procesador.En ese caso había que montar módulos en pares o en situaciones extremas, de a 4 módulos, para completar lo que se denominaba banco de memoria, de otro modo el sistema no funciona. Esa fue la principal razón para aumentar el número de pines en los módulos, igualando al ancho de bus de procesadores como el Pentium a 64 bits, a principios de los 90. Bus de direcciones: Es un bus en el cual se colocan las direcciones de memoria a las que se requiere acceder. No es igual al bus de direcciones del resto del sistema, ya que está multiplexado de manera que la dirección se envía en dos etapas.Para ello el controlador realiza temporizaciones y usa las líneas de control. En cada estándar de módulo se establece un tamaño máximo en bits de este bus, estableciendo un límite teórico de la capacidad máxima por módulo. Señales misceláneas: Entre las que están las de la alimentación (Vdd, Vss) que se encargan de entregar potencia a los integrados. Están las líneas de comunicación para el integrado de presencia que sirve para identificar cada módulo. Están las líneas de control entre las que se encuentran las llamadas RAS (rowaddressstrobe) y CAS (columnaddressstrobe) que controlan el bus de direcciones, por último están las señales de reloj en las memorias sincrónicas SDRAM.
  40. 40. Algunos controladores de memoria en sistemas como PC y servidores se encuentran embebidos en elllamado "North Bridge" o "Puente Norte" de la placa base. Otros sistemas incluyen el controlador dentrodel mismo procesador (en el caso de los procesadores desde AMD Athlon 64 e Intel Core i7 yposteriores). En la mayoría de los casos el tipo de memoria que puede manejar el sistema está limitadopor los sockets para RAM instalados en la placa base, a pesar que los controladores de memoria enmuchos casos son capaces de conectarse con tecnologías de memoria distintas.Una característica especial de algunos controladores de memoria, es el manejo de la tecnología canaldoble (Dual Channel), donde el controlador maneja bancos de memoria de 128 bits, siendo capaz deentregar los datos de manera intercalada, optando por uno u otro canal, reduciendo las latencias vistaspor el procesador. La mejora en el desempeño es variable y depende de la configuración y uso delequipo. Esta característica ha promovido la modificación de los controladores de memoria, resultando enla aparición de nuevos chipsets (la serie 865 y 875 de Intel) o de nuevos zócalos de procesador en losAMD (el 939 con canal doble , reemplazo el 754 de canal sencillo). Los equipos de gama media y altapor lo general se fabrican basados en chipsets o zócalos que soportan doble canal o superior, como enel caso del zócalo (o socket, en inglés) 1366 de Intel, que usaba un triple canal de memoria, o su nuevoLGA 2011 que usa cuádruple canal.[editar]Detección y corrección de erroresExisten dos clases de errores en los sistemas de memoria, las fallas (Hardfails) que son daños en elhardware y los errores (softerrors) provocados por causas fortuitas. Los primeros son relativamentefáciles de detectar (en algunas condiciones el diagnóstico es equivocado), los segundos al ser resultadode eventos aleatorios, son más difíciles de hallar. En la actualidad la confiabilidad de las memorias RAMfrente a los errores, es suficientemente alta como para no realizar verificación sobre los datosalmacenados, por lo menos para aplicaciones de oficina y caseras. En los usos más críticos, se aplicantécnicas de corrección y detección de errores basadas en diferentes estrategias: La técnica del bit de paridad consiste en guardar un bit adicional por cada byte de datos, y en la lectura se comprueba si el número de unos es par (paridad par) o impar(paridad impar), detectándose así el error. Una técnica mejor es la que usa ECC, que permite detectar errores de 1 a 4 bits y corregir errores que afecten a un sólo bit. Esta técnica se usa sólo en sistemas que requieren alta fiabilidad.Por lo general los sistemas con cualquier tipo de protección contra errores tiene un costo más alto, ysufren de pequeñas penalizaciones en desempeño, con respecto a los sistemas sin protección. Paratener un sistema con ECC o paridad, el chipset y las memorias deben tener soporte para esastecnologías. La mayoría de placas base no poseen dicho soporte.
  41. 41. Para los fallos de memoria se pueden utilizar herramientas de software especializadas que realizanpruebas sobre los módulos de memoria RAM. Entre estos programas uno de los más conocidos es laaplicación Memtest86+ que detecta fallos de memoria.[editar]Memoria RAM registradaEs un tipo de módulo usado frecuentemente en servidores, posee circuitos integrados que se encargande repetir las señales de control y direcciones: las señales de reloj son reconstruidas con ayuda del PLLque está ubicado en el módulo mismo. Las señales de datos se conectan de la misma forma que en losmódulos no registrados: de manera directa entre los integrados de memoria y el controlador. Lossistemas con memoria registrada permiten conectar más módulos de memoria y de una capacidad másalta, sin que haya perturbaciones en las señales del controlador de memoria, permitiendo el manejo degrandes cantidades de memoria RAM. Entre las desventajas de los sistemas de memoria registradaestán el hecho de que se agrega un ciclo de retardo para cada solicitud de acceso a una posición noconsecutiva y un precio más alto que los módulos no registrados. La memoria registrada es incompatiblecon los controladores de memoria que no soportan el modo registrado, a pesar de que se puedeninstalar físicamente en el zócalo. Se pueden reconocer visualmente porque tienen un integradomediano, cerca del centro geométrico del circuito impreso, además de que estos módulos suelen seralgo más altos.4Durante el año 2006 varias marcas lanzaron al mercado sistemas con memoria FB-DIMM que en sumomento se pensaron como los sucesores de la memoria registrada, pero se abandono esa tecnologíaen 2007 dado que ofrecía pocas ventajas sobre el diseño tradicional de memoria registrada y los nuevosmodelos con memoria DDR3.5Interrupción Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar al autor principal del artículo en su página de discusión pegando: {{subst:Avisoreferencias|Interrupción}} ~~~~Interrupción (también conocida como interrupción de hardware o petición de interrupción) es unaseñal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso deejecució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 unasubrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa (generalmente
  42. 42. perteneciente al sistema operativo, o al BIOS). Luego de finalizada dicha subrutina, se reanuda laejecución del programa.Las interrupciones surgen de las necesidades que tienen los dispositivos periféricos de enviarinformació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 paraaveriguar si tenía pendiente alguna comunicación para él. Este método presentaba el inconveniente deser muy ineficiente, ya que el procesador constantemente consumía tiempo en realizar todas lasinstrucciones de sondeo.El mecanismo de interrupciones fue la solución que permitió al procesador desentenderse de estaproblemática, y delegar en el dispositivo la responsabilidad de comunicarse con el procesador cuando lonecesitara. El procesador, en este caso, no sondea a ningún dispositivo, sino que queda a la espera deque estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya sea un evento, unatransferencia de información, una condición de error, etc.). Contenido [ocultar]1 Funcionamiento del mecanismo de interrupciones2 Líneas de petición de interrupción3 Mecanismo de interrupciones en un PC4 Tipos de interrupciones5 Usos de las interrupciones o 5.1 Interrupciones de hardware o 5.2 Trampas o 5.3 Interrupciones por software6 Determinación de la dirección de la rutina de servicio de interrupción7 Direcciones variables8 Determinación de la fuente que genera la interrupción9 Sistemas de prioridad o 9.1 Interrupciones simultáneas o 9.2 Interrupciones anidadas o 9.3 Inhibición de interrupciones10 Tormenta de interrupciones11 Véase también
  43. 43. [editar]Funcionamiento del mecanismo de interrupcionesCada dispositivo que desea comunicarse con el procesador por medio de interrupciones debe tenerasignada una línea única capaz de avisar al CPU que le requiere para una operación. Esta línea es lallamada IRQ ("InterruptReQuest", petición de interrupción).Las IRQ son líneas que llegan al controlador de interrupciones un componente de hardware dedicado ala gestión de las interrupciones, y que puede estar integrado en el procesador principal o ser un circuitoseparado conectado al procesador principal. El controlador de interrupciones debe ser capaz de habilitaro inhibir líneas de interrupción (operación llamada comúnmente enmascarar por la utilización deuna máscara), y establecer prioridades entre las distintas interrupciones habilitadas. Cuando variaslíneas de petición de interrupción se activan a la vez, el controlador de interrupciones utilizará estasprioridades para escoger la interrupción sobre la que informará al procesador principal. También puededarse el caso de que una rutina de tratamiento de interrupción sea interrumpida para realizar otra rutinade tratamiento de una interrupción de mayor prioridad a la que se estaba ejecutando.Sin embargo hayinterrupciones que no se pueden enmascarar o deshabilitar, las conocidas como interrupciones noenmascarables o NMI.Un procesador principal que no tenga un controlador de interrupciones integrado, suele tener una únicalínea de interrupción llamada habitualmente INT. Esta línea es activada por el controlador deinterrupciones cuando tiene una interrupción que servir. Al activarse esta línea, el procesador consultalos registros del controlador de interrupciones para averiguar cual IRQ hay que atender. A partir delnúmero del IRQ busca en la tabla de vectores de interrupción la dirección de la rutina que debe llamarpara atender una petición del dispositivo asociado a dicha IRQ.Las rutinas de interrupción generalmente toman un pequeño y orejon tiempo de ejecución.Pasos para el procesamiento de una IRQ: 1. Terminar la ejecución de la instrucción de máquina en curso. 2. Salva el valor de contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la última instrucción. 3. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (InterruptServiceRoutine (ISR)) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción. 4. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.[editar]Líneas de petición de interrupción
  44. 44. El bus de control dispone de líneas específicas para el sistema de interrupciones. En el IBMPC y XT existen 8 líneas de petición de interrupción manejadas por el controlador de interrupciones Intel8259. Estas líneas están numeradas del 0 al 7, las dos primeras están asignadasal timertick del temporizador Intel 8253, y al teclado. Solo quedaban 6 líneas para otros dispositivos, queaparecen como tales en el bus de control (IRQ2 - IRQ7). A partir del modelo AT se añadieron otras 8líneas, numeradas del 8 al 15, mediante un segundo controlador de interrupciones (PIC), aunque latecnología empleada exigió colgarlo de la línea IRQ2 del primero, de forma que esta línea se dedica aatender las interrupciones del segundo controlador a través de la línea 9 de este último, y la línea 8 sededicó al reloj de tiempo real, un dispositivo que no existía en los modelos XT.Aunque internamente se manejan 16 líneas, no todas tienen contacto en los zócalos del bus externo(son las marcadas con asterisco en la tabla que sigue). La razón de esta ausencia en los zócalos deconexión es que son de asignación fija, y solo son usadas por ciertos dispositivos instalados en lapropia placa base. En concreto la línea NMI está asignada al mecanismo de control de paridad de lamemoria, la línea 0 está asignada al cronómetro del sistema y la línea 1 al chip que controla el teclado(dispositivos que pueden requerir atención urgente por parte del procesador). Es costumbre denominarIRQx a las que tienen prolongación en el bus.Teóricamente las restantes líneas podrían ser asignadas a cualquier nuevo dispositivo, pero en lapráctica algunas están reservadas a dispositivos estándar. Por ejemplo, IRQ3 está casi siempreasignado al puerto serie COM2 y el IRQ4 al COM1; IRQ6 al controlador estándar de disquetes y IRQ7al puerto de impresora LPT1. La tabla 1 muestra las asignaciones clásicas para el XT y el ATEn sistemas más modernos utilizan la arqitectura APIC de Intel con 24 líneas y 8 extra para enrutar lasinterrupciones PCI.Nombre Int (hex) XT: Descripción AT: DescripciónNMI --- Paridad* Paridad*0 08 Temporizador* Temporizador*1 09 Teclado* Teclado*IRQ2 0A Reservado Interrupciones 8 a 15 (PIC#2)
  45. 45. IRQ3 0B Puertos serie COM2/COM4 Puerto serie COM2/COM4IRQ4 0C Puertos serie COM1/COM3 Puertos serie COM1/COM3IRQ5 0D Disco duro Impresora secundaria LPT2IRQ6 0E Disquete DisqueteIRQ7 0F Impresora primaria LPT1 Impresora primaria LPT18 70 No aplicable Reloj de tiempo real*9 71 No aplicable Redirigido a IRQ2*IRQ10 72 No aplicable no asignadoIRQ11 73 No aplicable no asignadoIRQ12 74 No aplicable Ratón PS213 75 No aplicable Coprocesador 80287*IRQ14 76 No aplicable Contr. disco IDE primarioIRQ15 77 No aplicable Contr. disco IDE secundarioCuando se instala un dispositivo de E/S que puede necesitar atención del procesador, debe asignárseleuna IRQ adecuada. Dicho en otras palabras, cuando requiera atención debe enviar una señal en la líneaIRQ especificada. Inicialmente esta asignación se efectuaba de forma manual, por medio de puentes(jumpers) en la placa o dispositivo, pero actualmente esta selección puede hacerse por software.[editar]Mecanismo de interrupciones en un PC
  46. 46. Un ordenador PC típico dispone en su placa base de un controlador de interrupciones 8259 de Intel o deun circuito integrado análogo. Este dispositivo electrónico dispone de hasta 16 líneas IRQ, numeradasdesde el 00 hasta el 15. En las nuevas placas base este circuito está integrado junto con el restodel chipset y permite hasta 24 interrupciones.[editar]Tipos de interrupcionesEn este subapartado vamos a hacer una clasificación de las distintas clases de interrupciones que nospodemos encontrar atendiendo a la fuente que las produce. Por un lado distinguiremos si se producenpor causas internas o externas al procesador y remarcaremos que este hecho está íntimamente ligadocon que las interrupciones sean síncronas o asíncronas: Interrupciones de hardware. Estas son asíncronas a la ejecución del procesador, es decir, se pueden producir en cualquier momento independientemente de lo que esté haciendo el CPU en ese momento. Las causas que lo producen son externas al procesador y a menudo suelen estar ligadas con distintos dispositivos de E/S. Traps. Normalmente son causadas al realizarse operaciones no permitidas tales como la división por 0, el desbordamiento, el acceso a una posición de memoria no permitida, etc. Interrupciones por software. Las interrupciones por software son generadas por el programa en ejecución. Para generarla, existen distintas instrucciones en el código máquina que permiten al programador producir una interrupción, suelen tener nemotécnicos tales como INT. Suelen ser de vital importancia ya que a partir de estas interrupciones se solicita al sistema operativo realizar determinadas funciones, para ello. Por ejemplo, en DOS se realiza la instrucción INT 0x21 y en Unix se utiliza INT 0x80 para hacer llamadas de sistema.[editar]Usos de las interrupcionesSe utilizan las interrupciones generalmente para dos motivos: Permitir una comunicación sin bloqueo con los periféricos externos. Conmutar las tareas dentro de un planificador[editar]Interrupciones de hardwareSon interrupciones que se producen como resultado de, normalmente, una operación de E/S. No sonproducidas por ninguna instrucción de un programa sino por señales que producen los dispositivos paraindicarle al procesador que necesitan ser atendidos. Las interrupciones de hardware son interesantes encuanto a que permiten mejorar la productividad del procesador ya que este último puede ordenar unaoperación de E/S y en lugar de tener que esperar realizando una espera activa, a que el dispositivotermine, es decir, sin hacer ningún trabajo útil, se puede dedicar a atender a otro proceso o aplicaciones
  47. 47. y cuando el dispositivo esté de nuevo disponible será el encargado de notificarle al procesador mediantela línea de interrupción que ya está preparado para continuar/terminar la operación de E/S.Entradas/salidas:Cuando un microprocesador accesa un periférico (disco duro, puerto de comunicación...), puedetranscurrir algún tiempo antes de que los datos puedan ser obtenidos o bien transmitidos. La soluciónmás simple es esperar hasta recibir un dato o bien hasta que se efectúa una transmisión (esperaocupado, o polling), pero esta solución bloquea todos los programas en ejecución, y eso no puedeadmitirse bajo un sistema multitarea. En los sistemas modernos se prefiere un funcionamiento medianteinterrupciones:El periférico señala una eventualidad mediante una interrupción, como por ejemplo que ha acabado latransmisión de los datos, y una rutina trata esta interrupción. Para que la transferencia sea más eficientesuele usarse el acceso directo a memoria (DMA), mediante el cual los bloques son leídos o bien escritosen memoria sin la intervención del CPU.[editar]TrampasEs un tipo de interrupción sincrónica típicamente causada por una condición de error, por ej. una divisiónpor 0 o un acceso inválido a memoria en un proceso de usuario. Normalmente genera un cambio decontexto a modo supervisor para que el sistema operativo atienda el error. De manera que podemos vercomo las excepciones son un mecanismo de protección que permite garantizar la integridad de los datostanto en el espacio de usuario como en el espacio kernel. El SO cuando detecta una excepción intentasolucionarla pero en caso de no poder simplemente notificará la condición de error a la aplicación yabortará la misma.[editar]Interrupciones por software Este artículo o sección tiene un estilo difícil de entender para los lectores interesados en el tema. Si puedes, por favor edítalo y contribuye a hacerlo más accesible para el público general, sin eliminar los detalles técnicos que interesan a los especialistas.A las interrupciones por software, se las denomina excepciones. En este apartado se consideran lasllamadas al sistema operativo mediante una instrucción, normalmente de Entrada/Salida, por ejemplouna división por 0.Una interrupción por software, se generará por un programa mientras está ejecutándose. En generalactúa de la siguiente manera:
  48. 48. 1. Un programa que se venía ejecutando luego de su instrucción I5 , llama al Sistema Operativo, por ejemplo para leer un archivo de disco.(cuando un programa necesita un dato exterior , se detiene y pasa a cumplir con las tareas de recojer ese dato) 1. A tal efecto, luego de I5 existe en el programa, la instrucción de código de máquina CD21, simbolizada INT 21 en Assembler, que realiza el requerimiento del paso 1. Puesto que no puede seguir le ejecución de la instrucción I6 y siguientes del programa hasta que no se haya leído el disco y esté en memoria principal dicho archivo, virtualmente el programa se ha interrumpido, siendo, además, que luego de INT 21, las instrucciones que se ejecutarán no serán del programa, sino del Sistema Operativo. ( se detiene el programa y ordena en este caso mediante INT21 ( interrupcion predefinida ) que recoge el dato solicitado, para poder sequir el programa que la ordeno ) 1. La ejecución de INT 21 permite hallar la subrutina del Sistema Operativo. 1. Se ejecuta la subrutina del Sistema Operativo que prepara la lectura del disco. 1. Luego de ejecutarse la subrutina del Sistema Operativo, y una vez que se haya leído el disco y verificado que la lectura es correcta, el Sistema Operativo ordenará reanudar la ejecución del programa autointerrumpido en espera. 1. La ejecución del programa se reanuda.[editar]Determinación de la dirección de la rutina de servicio deinterrupciónHay dos alternativas para determinar la dirección de la rutina de servicio de interrupción que debeejecutarse al recibir una interrupción determinada: Direcciones fijas. Se hallan cableadas en el procesador y por tanto nunca pueden ser cambiadas. Esto implica que las RSI siempre estarán en una determinada posición de la memoria. Direcciones variables (por interrupciones vectorizadas). En este grupo se incluyen aquellas que presentan una dirección variable y que, por tanto, no se halla cableada en el procesador. De esta manera el dispositivo debe dar información acerca de la localización de la dirección de comienzo de la RSI asociada a dicho periférico.[editar]Direcciones variables
  49. 49. Hay distintas metodologías de diseño para las interrupciones con direcciones variables. En la actualidad,las alternativas que son implementadas de manera habitual son las siguientes: Direccionamiento absoluto. En este caso es el dispositivo o la interfaz del dispositivo la encargada de conocer la dirección de la RSI y de enviarla al procesador para que éste pueda localizar dicha subrutina y ejecutarla. Direccionamiento relativo. El dispositivo solo suministra parte de la dirección de comienzo y es el procesador el encargado de completarla (añadiendo bits o sumando una determinada cantidad, que siempre será fija). Esta alternativa tiene una ventaja sobre la anterior y es que permite especificar la dirección de comienzo con menos bits y por tanto simplifica el diseño. Ahora bien tiene una desventaja principal y es que limita el número de dispositivos que podemos conectar y además ciertos bits de la dirección quedan fijados de forma permanente por la CPU lo que reduce la capacidad de reubicabilidad de la RSI. Una alternativa que utilizan ciertos procesadores como el 8080 o el 8085 es que en vez de enviar solamente la dirección de comienzo de la RSI se envía también el código de la operación de salto (por ejemplo CALL). Direccionamiento indirecto. También conocida como direccionamiento por interrupciones vectorizadas. Se mantiene una tabla de vectores de interrupción (direcciones de comienzo de las distintas RSI) y a cada interrupción se le asocia un número que será el índice por el cual se accederá a la tabla y se recuperará la información de la dirección de comienzo. Necesita señales de conformidad o handshaking para sincronizar al procesador con la interfaz, ya que esta última tiene que indicarle al procesador cuando va a enviarle el índice que necesita para buscar el vector de interrupción (INT) y el procesador deberá enviar otra señal para indicar que se ha reconocido la interrupción (INTA#).[editar]Determinación de la fuente que genera la interrupciónHay distintas formas de identificar la fuente de una determinada interrupción. La primera alternativa quese consideró fue asignar una línea (un bit) para cada interrupción pero esto suponía un gran costo encuanto a la relación de número de dispositivos y número de bits usados y a menudo fijaba el límite dedispositivos que se podían conectar. Por tanto, se pensó con posterioridad que en cada patilla deinterrupción deberían poder conectarse más de un dispositivo, pero entonces tendríamos que imponeruna metodología que permitiese identificar de forma unívoca de qué dispositivo se trataba. Para ello hayvarias directrices: Polling. Se trata de que la CPU comprueba de manera sistemática todos los dispositivos de manera que "busca" cuál de ellos fue el que solicitó la interrupción. Esto tiene una ventaja y es que es barato a nivel de coste hardware ya que el "polling" se implementa en software, no obstante tiene
  50. 50. otras desventajas que no podemos olvidar y es que suele ser lento porque tiene que comprobar en serie todos los dispositivos y establece una prioridad en los dispositivos (el orden de sondeo) y por tanto puede provocar inanición. Interrupciones vectorizadas. Este concepto fue ya tratado en el apartado anterior y como ventajas podemos destacar que suele ser rápido pero implica un alto costo en el hardware. Hardware paralelo. Se utiliza un registro de interrupción cuyos bits se controlan de forma independiente por las señales de petición de interrupción de cada periférico. Según la posición de cada bit en el registro, se establece la prioridad.[editar]Sistemas de prioridadSe necesita un mecanismo para priorizar las interrupciones y tratar primero las más urgentes. Existenvarias alternativas: Interrupciones simultáneas. No tienen por qué ocurrir de manera simultánea sino que se refiere a que en un momento dado pueden haber varias interrupciones activas. Interrupciones anidadas. Mientras se está procesando una determinada rutina de servicio de interrupción sucede otra señal de interrupción. Inhibición de interrupciones. Se deshabilitan las demás interrupciones mientras se está tratando una.[editar]Interrupciones simultáneasEn este método tenemos dos alternativas, una de ellas es que exista algún hardware que tenga comoentradas las señales de interrupción y de como salida la interrupción más prioritaria que está activa enese momento. Otra alternativa es tener un método de identificación de prioridades distribuida y nogeneralizada como en el caso anterior, en este caso tenemos que destacar dos técnicas distintas que sepueden implementar en la práctica: Polling. Como ya vimos es el CPU el que chequea los dispositivos y el orden de sondeo determina la prioridad. Daisy-chain. (conexión en cadena) Podemos conectar los distintos dispositivos en cadena, en orden decreciente de prioridad y por tanto la señal de reconocimiento de interrupción (INTA#) solo será pasada al siguiente dispositivo en caso de que el anterior (más prioritario) no haya solicitado los servicios del procesador. Sin embargo, algo importante es que las señales de interrupción que van al procesador están conectadas todas a un mismo cable, por tanto, deberemos utilizar alguna técnica especial para que no se produzca un cortocircuito. Para evitar precisamente que la pista se cortocircuite se utiliza la técnica del "open-collector" o "colector abierto" y consiste en conectar el colector de un transistor a la pista común (un transistor por cada dispositivo) y por tanto estarán
  51. 51. tantos colectores conectados como dispositivos tengamos (se entiende que son dispositivos que mandan petición de interrupción al procesador). Híbrida. Mezcla las dos técnicas explicadas anteriormente.[editar]Interrupciones anidadasExisten dos métodos para tratar las interrupciones anidadas. El primero se basa en inhabilitar lasinterrupciones mientras se está ejecutando una determinada RSI. Esto puede realizarlo el hardware demanera automática en algunos procesadores, pero en otros será el usuario el encargado dedeshabilitarlas en caso de que no desee que ninguna otra interrupción pueda interrumpir el transcursonormal de la rutina de servicio de interrupción. No es aconsejable deshabilitar las interrupciones durantemucho tiempo ya que esto puede provocar errores y pérdida de información.La otra alternativa es permitir que solo las interrupciones más prioritarias puedan suspender la ejecuciónde la RSI actual. Para esto tendremos que definir qué líneas son más prioritarias que otras. Otraconsideración de esta segunda alternativa es que al anidar distintas llamadas a rutinas tendremos quecontar con una pila suficientemente grande para que esta no se desborde.[editar]Inhibición de interrupcionesHay distintas alternativas de inhibición de interrupciones. Como ya hemos visto estas se pueden hacerde manera automática por el hardware en algunos casos mientras que en otros será el usuario elencargado de realizarlo por software y esto depende de la arquitectura del procesador queconsideremos. Las distintas opciones son: Deshabilitar todas las interrupciones. Para esto basta con inhibir el bit del registro de flag dedicado a las interrupciones. Deshabilitar al principio de la RSI y activarlas de nuevo al finalizar la misma. Puede ser de manera automática o por el usuario. Desactivar solo las interrupciones que tengan menor prioridad que la asociada a la RSI que se está ejecutando en ese momento. Deshabilitar de forma selectiva distintos niveles de prioridad de interrupción. Para lo cual se emplean registros especiales denominados máscaras en el que cada uno de sus bits identifican a un nivel distinto y modificando su contenido se puede establecer que niveles están activos en ese momento. Se puede cambiar por el programador.[editar]Tormenta de interrupcionesEste evento se puede producir cuando un procesador recibe un número demasiado grande deinterrupciones, las cuales consumen la mayor parte del tiempo del procesador. Las tormentas de
  52. 52. interrupciones suelen ser causadas por dispositivos de hardware que no son compatibles con una tasade interrupción limitante.Como curiosidad, se conjetura que la primera tormenta de interrupciones pudo ocurrir durante eldescenso lunar del Apollo 11 en 1969.[editar]Véase tambiénModos de direccionamientoLos llamados modos de direccionamiento son las diferentes maneras de especificar en informática unoperando dentro de una instrucción en lenguaje ensamblador.Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de unoperando mediante el uso de la información contenida en registros y / o constantes, contenida dentro deuna instrucción de la máquina o en otra parte. Contenido [ocultar]1 ¿Cuántos modos de direccionamiento existen?2 Advertencia3 Tipos de Direccionamiento o 3.1 Implícito o 3.2 Inmediato o 3.3 Directo o 3.4 Indirecto o 3.5 Absoluto o 3.6 De registro o 3.7 Indirecto mediante registros o 3.8 De desplazamiento o 3.9 De pila o 3.10 Respecto a un registro base o 3.11 Respecto a un registro índice o 3.12 Respecto al contador de programa o 3.13 Indexado con autoincremento/autodecremento o 3.14 Instrucción de salto con direccionamiento absoluto o 3.15 Instrucción de salto con direccionamiento relativo
  53. 53. 4 Direccionamiento paginado y direccionamiento segmentado5 Algunos modos de direccionamiento obsoletos6 Direccionamiento absoluto vs Direccionamiento relativo7 Modos de direccionamiento secuencial o 7.1 Ejecución secuencial o 7.2 CPUS que no utilizan la ejecución secuencial o 7.3 Ejecución condicional o 7.4 Salto8 Modos simples de direccionamiento de datos o 8.1 Registro o 8.2 Base más desplazamiento y variaciones[editar]¿Cuántos modos de direccionamiento existen?Diferentes arquitecturas de computadores varían mucho en cuanto al número de modos dedireccionamiento que ofrecen desde el hardware. Eliminar los modos de direccionamiento máscomplejos podría presentar una serie de beneficios, aunque podría requerir de instrucciones adicionales,e incluso de otro registro. Se ha comprobado que el diseño de CPUs segmentadas es mucho más fácilsi los únicos modos de direccionamiento que proporcionan son simples.La mayoría de las máquinas RISC disponen de apenas cinco modos de direccionamiento simple,mientras que otras máquinas CISC tales como el DEC VAX tienen más de una docena de modos dedireccionamiento, algunos de ellos demasiado complejos. El mainframe IBM System/360 disponíaúnicamente de tres modos de direccionamiento; algunos más fueron añadidos posteriormente parael System/390.Cuando existen solo unos cuantos modos, estos van codificados directamente dentro de la propiainstrucción (Un ejemplo lo podemos encontrar en el IBM/390, y en la mayoría de los RISC). Sinembargo, cuando hay demasiados modos, a menudo suele reservarse un campo específico en la propiainstrucción, para especificar dicho modo de direccionamiento. El DEC VAX permitía múltiples operandosen memoria en la mayoría de sus instrucciones, y reservaba los primeros bits de cada operando paraindicar el modo de direccionamiento de ese operando en particular.Incluso en computadores con muchos modos de direccionamiento, algunas medidas realizadas aprogramas indican que los modos más simples representan cerca del 90% o más de todos los modos dedireccionamiento utilizados. Dado que la mayoría de estas medidas son obtenidas a partir de códigos dealto nivel generados a partir de compiladores, nos da una idea de las limitaciones que presentan loscompiladores que se utilizan.
  54. 54. [editar]AdvertenciaTenga en cuenta que no existe una forma generalmente aceptada de nombrar a los distintos modos dedireccionamiento. En particular, los distintos autores y fabricantes de equipos pueden dar nombresdiferentes para el modo de hacer frente al mismo, o los mismos nombres, a los diferentes modos dedireccionamiento. Además, un modo de direccionamiento que en una determinada arquitectura se tratacomo un modo de direccionamiento, puede representar la funcionalidad que en otra arquitectura estácubierto por dos o más modos de direccionamiento.El término "modo de direccionamiento" está sujeta a interpretaciones diferentes: o bien "dirección dememoria de modo de cálculo" o "modo de acceso operando". Bajo las instrucciones de la primerainterpretación, que no puede leer o escribir de la memoria a la memoria (como "añadir literal deregistro"), se considerará que no tienen un "modo de direccionamiento". La segunda interpretaciónpermite para las máquinas tales como VAX, que utilizan bits de modo operando para permitir unoperando literal.Sólo la primera interpretación se aplica a las instrucciones tales como "carga efectiva dedirección".Las instrucciones que aparecen a continuación son meramente representativas a fin de ilustrar losmodos de direccionamiento, y no necesariamente reflejan los mnemónicos utilizado por cualquier equipoen particular.[editar]Tipos de Direccionamiento[editar]ImplícitoEn este modo de direccionamiento no es necesario poner ninguna dirección de forma explícita, ya queen el propio código de operación se conoce la dirección del (de los) operando(s) al (a los) que se deseaacceder o con el (los) que se quiere operar.Supongamos una arquitectura de pila, las operaciones aritméticas no requieren direccionamientoexplícito por lo que se ponen como:- add- sub...¿Por qué? Porque cuando se opera con dos datos en esta arquitectura se sabe que son los doselementos del tope de la pila:Ejemplo de una pila1 2 3 4 5 6 <- pila
  55. 55. top() es 1ntop() es 2donde top() representa el tope de la pila y ntop() el siguiente al tope de la pila y son estos argumentoscon los que se opera al llamar a una orden en concreto.Otro ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador(AC) donde siempre hay un parámetro implícito y este es el AC.Para finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas más usuales,remarcamos que también podemos encontrarlo en la arquitectura con registros de propósito general, porejemplo con órdenes como setc, que pone a 1 el registro c (acarreo).[editar]InmediatoEn la instrucción está incluido directamente el operando.En este modo el operando es especificado en la instrucción misma. En otras palabras, una instrucciónde modo inmediato tiene un campo de operando en vez de un campo de dirección. El campo deloperando contiene el operando actual que se debe utilizar en conjunto con la operación especificada enla instrucción. Las instrucciones de modo inmediato son útiles para inicializar los registros en un valorconstante.Cuando el campo de dirección especifica un registro del procesador, la instrucción se dice que está enel modo de registro.ejemplo:MOV A,#17H[editar]DirectoEl campo de operando en la instrucción contiene la dirección en memoria donde se encuentra eloperando.
  56. 56. En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando resideen la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En unainstrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual.Con este tipo de direccionamiento, la dirección efectiva es contenida en la misma instrucción, tal comolos valores de datos inmediatos que son contenidos en la instrucción. Un procesador de 16 bits suma ladirección efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir ladirección física del operando.Ejemplo: MOV A,17H[editar]IndirectoEl campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectivadel operando.
  57. 57. Ejemplo: MOV A,@17H[editar]AbsolutoEl campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción.[editar]De registroSirve para especificar operandos que están en registros.
  58. 58. Ejemplo: MOV A,R0[editar]Indirecto mediante registrosEl campo de operando de la instrucción contiene un identificador deregistro en el que se encuentra la dirección efectiva del operando.En este modo el campo de la dirección de la instrucción da la dirección en donde la dirección efectiva sealmacena en la memoria. El control localiza la instrucción de la memoria y utiliza su parte de direcciónpara accesar la memoria de nuevo para leer una dirección efectiva. Unos pocos modos dedireccionamiento requieren que el campo de dirección de la instrucción sea sumado al control de unregistro especificado en el procesador. La dirección efectiva en este modo se obtiene del siguientecálculo:Dir. efectiva = Dir. de la parte de la instrucción + Contenido del registro del procesador
  59. 59. Ejemplo: MOV A,@R0[editar]De desplazamientoCombina el modo directo e indirecto mediante registros[editar]De pilaSe utiliza cuando el operando está en memoria y en la cabecera de la pila.Este direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO), las cuales estánmarcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta a la última posiciónocupada. Así, como puntero de direccionamiento usaremos el SP. El desplazamiento más el valor delSP nos dará la dirección del objeto al que queramos hacer referencia. En ocasiones, si no existe C. dedesplazamiento solo se trabajara con la cima de la pila. Este tipo de direccionamiento nos aportaflexibilidad pero por el contrario, es mucho más complejo que otros tipos estudiados más arriba.[editar]Respecto a un registro baseEste modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones(para acceder a los parámetros apilados en la pila, valga la redundancia). Consiste, al igual que elindirecto a través de registro, en calcular la EA (EffectiveAddress) como la suma del contenido delregistro base y un cierto desplazamiento (u offset) que siempre será positivo. Esta técnica permitecódigos reentrantes y acceder de forma fácil y rápida a posiciones cercanas de memoria.
  60. 60. EA = RB+offset RB = registro base offset = desplazamiento -> RB secomporta como una dirección de memoria a la que se le sumará eldesplazamiento[editar]Respecto a un registro índiceEs similar al anterior, lo único que es el contenido del registro índice el que indica el desplazamiento quese produce a partir de una dirección de memoria que se pasa también como argumento a la orden queutiliza este modo de direccionamiento. Aunque en esencia son dos modos equivalentes. La EA secalcula como la suma del contenido del registro índice y una dirección de memoria:EA = RI+DM RI = registro índice DM = dirección de memoria -> RI secomporta como un offset=== Indexado respecto a una base === Se trata de una combinación de los dos anteriores y consiste encalcular la dirección efectiva como:EA = RI+RB+DM-> Las siglas significan lo mismo que en el caso anterior[editar]Respecto al contador de programaConsiste en dirección una posición de memoria usando como registro base al contador de programa(PC), el funcionamiento es análogo al direccionamiento respecto a registro base con la salvedad de que,en este caso, el offset puede ser también negativo.[editar]Indexado con autoincremento/autodecrementoEs un modo de direccionamiento análogo al indexado, explicadoanteriormente.La única diferencia es que permite un incremento o decremento de ladirección final o el registro índice segúnlos siguientes casos:-> Indexado con autopreincremento: Incrementa el registro índice primero (se incrementa un valor,según el tamaño del objeto direccionado) y luego calcula la EA al igual que el direccionamientoindexado.-> Indexado con autoposincremento: Calcula la dirección efectiva y después incrementa esta.-> Indexado con autopredecremento: Decrementa el registro índice y después calcula la direcciónefectiva.-> Indexado con autoposdecremento: Calcula la dirección efectica y después decrementa esta.
  61. 61. [editar]Instrucción de salto con direccionamiento absolutoConsiste en cargar en el PC el valor que se especifica en la orden desalto, p.e:jmp 0xAB ----> Carga 0xAB en PC[editar]Instrucción de salto con direccionamiento relativoEs parecida a la especificada anteriormente la diferencia es que el salto es relativo al PC, pongamos unejemplo:Supongamos que PC vale = 0x0A, si nosotros interpretamos la instrucción jr +03, saltaremos tresposiciones posteriores a PC (también podría ser -03 y serían posiciones anteriores). Pero, ¡cuidado! siesa instrucción estaba en la posición 0x0A la dirección de PC a incrementar será la inmediatamenteposterior (ya que PC se incrementa automáticamente después de leer la instrucción), por lo quequedaría:PC = 0x0B ---> nuevo PC = 0x0B+0x03 = 0x0E, con lo que el PC quedaría como 0x0E.[editar]Direccionamiento paginado y direccionamiento segmentado Paginado: La memoria se encuentra actualmente dividida en páginas(bloques de igual longitud).Para obtener las direcciones necesitamos: Indicador de página (IP): en un registro específico o de propósito general de la máquina. Dirección de la palabra (DP): en el campo CD de la instrucción.Así, concatenando ambas partes obtenemos la dirección completa.
  62. 62. Segmentado: La memoria se divide en porciones cuyos tamaños son variables. Así, para acceder aellos se tiene una tabla de segmentos que contiene la dirección del comienzo y del final de cadasegmento en memoria.Usar este tipo de direccionamiento tiene como ventajas que se puede definir segmentos de tamañoarbitrario. Por otro lado, esta misma ventaja, el fraccionamiento de memoria es uno de sus problemas.Ambos modos de direccionamiento facilitan la multiprogramación gracias a la técnica de la memoriavirtual que permite que un proceso no tenga que estar cargado íntegramente en memoria, si no que secargan distintas páginas del mismo (o segmentos). Si se intenta cargar una página o segmento que nose encuentra en la memoria principal se produce una excepción de falta de página o segmento y seaccede a la memoria para cargar la información requerida en la memoria principal.[editar]Algunos modos de direccionamiento obsoletosEstos modos fueron usados durante 1950-1980 y ya no están disponibles en los computadoresmodernos. Esta lista no es completa, puesto que hubo otros muchos modos de direccionamiento más,algunos más interesantes y peculiares. Indirecto de multinivel de memoria

×