DIRECCIONAMIENTO DE MEMORIA EN MODO REAL El campo o campos de direcciones en un formato de instrucción usual está bastante limitado.

El modo real (también llamado modo de dirección real en los manuales de Intel) es un modo de operación del 80286 y posteriores CPU compatibles de la arquitectura x86. El modo real está caracterizado por 20 bits de espacio de direcciones segmentado (significando que solamente se puede direccionar 1 MB de memoria), acceso directo del software a las rutinas del BIOS y el hardware periférico, y no tiene conceptos de protección de memoria o multitarea a nivel de hardware. Todos los CPU x86 de las series del 80286 y posteriores empiezan en modo real al encenderse el computador; los CPU 80186 y anteriores tenían solo un modo operacional, que era equivalente al modo real en chips posteriores. La operación de modo real permite a los microprocesadores direccionar solamente el primer megabyte del espacio de memoria, aun en el caso del microprocesador Pentium II. El primer megabyte de memoria se conoce como sistema de memoria real o de memoria convencional.

SEGMENTOS Y DESPLAZAMIENTOS La combinación de una dirección de segmento y una dirección de desplazamiento acceden a una localidad de memoria en el modo real. Todas las direcciones de memoria en modo real deben constar de una dirección de segmento más una de desplazamiento. La dirección de segmento localizada dentro de uno de los registros de segmento define la dirección inicial de cualquier segmento de memoria de 64 KB. La dirección de desplazamiento selecciona cualquier localidad dentro del segmento de memoria de 64 KB. (En el modo real, los segmentos siempre tienen una longitud de 64 KB.) Dado que un segmento de memoria en modo real tiene una longitud de 64 KB, una vez conocida la dirección inicial, la dirección final se encuentra sumando FFFFH a la inicial. La dirección de desplazamiento, que es parte de la dirección, es sumada al inicio del segmento para direccionar a una localidad de memorias seleccionadas por cada dirección de segmento. La dirección de desplazamiento siempre se suma a la dirección inicial del segmento para localizar los datos. Algunos modos de direccionamiento combinan más de un registro y un valor de desplazamiento para integrar una dirección de desplazamiento. El esquema de direccionamiento por segmentos y desplazamiento parece innecesariamente complicado. En efecto, este esquema es complicado, pero también representa una ventaja para el sistema. Este esquema de direccionamiento por segmento más desplazamiento permite la reubicación de programas en el sistema de memoria. También permite que los programas escritos para operar en el modo real funcionen en un sistema de modo protegido. Un programa reubicable es aquel que puede ser colocado en cualquier área de la memoria y ser ejecutado sin ningún cambio. Los datos reubicables son aquellos que pueden ser colocados en cualquier área de la memoria y ser utilizados sin modificar el programa. El esquema de direccionamiento por segmento y desplazamiento permite reubicar tanto programas como datos sin ningún cambio en ellos. Esto es ideal para uso en un sistema de cómputo de propósito general, en el cual no todas las maquinas contienen las mismas áreas de memoria. La estructura de memoria de las computadoras personales varia de una maquina a otra, lo que hace necesarios software y datos reubicables. SEGMENTACION La segmentación es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma. Un espacio de direcciones lógicas es una colección de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada dirección mediante dos cantidades: un nombre de segmento y un desplazamiento. (Compárese este esquema con la paginación, donde el usuario especificaba solamente una única dirección, que el hardware particionaba en número de página y desplazamiento, siendo todo ello invisible al programador). Por simplicidad de implementación, los segmentos están numerados y se referencian por un número de segmento en lugar de por un nombre. Normalmente el programa de usuario se ensambla (o compila), y el ensamblador (o el compilador) construye automáticamente segmentos que reflejan el programa de entrada. Un compilador de Pascal podría crear segmentos separados para (1) las variables globales, (2) la pila de llamada de procedimientos, para almacenar parámetros y devolver direcciones, (3) el código de cada

el código maquina que corresponde a dicho código fuente (Son programas que crean o modifican otros programas). y (4) las variables locales de cada procedimiento y función. . Los registros sirven para almacenar internamente datos y estado del procesador. En esta arquitectura se asigna un código numérico a cada instrucción. Anteriormente la secuencia de las operaciones era dictada por el alambrado de la unidad de control.U. Mas a detalle. Esto permite cambiar rápidamente la aplicación de la computadora y dio origen a las computadoras de propósito general. El cargador tomaría todos esos segmentos y les asignaría números de segmento. La unidad de control genera las señales de control para leer el código de las instrucciones. decodificarlas y hacer que la ALU las ejecute. que es muy versátil. es que el bus de datos y direcciones único se convierte en un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria. los cuales son programas que toman como entrada un archivo de texto conteniendo código fuente y generan como datos de salida. Dichos códigos se almacenan en la misma unidad de memoria que los datos que van a procesarse. para ser ejecutados en el orden en que se almacenados en memoria. Consiste en una unidad central de proceso se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los códigos de instrucción del programa. Arquitectura Mauchly-Eckert (Von Newman) Esta arquitectura fue utilizada en la computadora ENIAC. La unidad aritmética lógica proporciona la capacidad de realizar operaciones aritméticas y lógicas. Esta arquitectura es la más empleada en la actualidad ya. PROCESADOR BUS PRINCIPAL UNIDAD DE CONTROL ALU REGISTROS MEMORIA PRINCIPAL ALMACENA EL PROGRAMA Y LOS DATOS ENTRADA Y SALIDA Diagrama a bloques de la arquitectura Von Newman La principal desventaja de esta arquitectura. Estos datos de salida pueden ejecutarse como un programa posteriormente ya que se usa la misma memoria para datos y para el código del programa.procedimiento o función. Esto limita el grado de paralelismo (acciones que se pueden realizar al mismo tiempo) y por lo tanto. obligando a que todos los accesos a esta sean secuenciales.1.L. el procesador se subdivide en una unidad de control (C. lento (hasta tres semanas) y propenso a errores. e cambiarla implicaba un proceso de recableado laborioso.). Este efecto se conoce como el cuello de botella de Von Newman En esta arquitectura apareció por primera vez el concepto de programa almacenado.U. Ejemplo de esta versatilidad es el funcionamiento de los compiladores.) y una serie de registros.1 Clásicas Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de Aun son usadas en procesadores empotrados de gama baja y son la base de la mayoría de las Arquitecturas modernas. una unidad lógica aritmética (A. el desempeño de la computadora. como los datos que serán procesados por este. ARQUITECTURAS 1.

pero internamente incluyen varios niveles de memoria cache con bancos separados en cache de programa y cache de datos. como lo muestra la siguiente figura.Arquitectura Harvard Esta arquitectura surgió en la universidad del mismo nombre. Para comprender mejor esto.1. el programa se almacena como un código numérico en la memoria.2 Segmentadas Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando paralelamente varias etapas del ciclo de instrucción al mismo tiempo. pero no en el mismo espacio de memoria ni en el mismo formato que los datos. se pueden almacenar las instrucciones en bits en la memoria de programa. buscando un mejor desempeño sin perder la versatilidad 1. supongamos que un procesador simple tiene un ciclo de instrucción sencillo consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de la instrucción.) y las conexiones necesarias para formarlo. B1 E1 B2 E2 B3 E3 . las dos etapas se realizarían de manera secuencial para cada una de las instrucciones. Al igual que en la arquitectura Von Newman. La Unidad Central de Proceso es el lugar donde se realizan las operaciones de cálculo y control de los componentes que forman la totalidad del conjunto del sistema informático. Las CPU de las actuales computadoras son microprocesadores construidos sobre un cristal de silicio semiconductor donde se crean todos los elementos que forman un circuito electrónico (transistores. poco después de que la arquitectura Von Newman apareciera en la universidad de Princeton. al mismo tiempo se lee de la memoria de datos los operados de la instrucción previa. mientras los datos de almacenan en 8 bits en una memoria aparte Bus de programa MEMORIA DE PROGRAMA PROCESADOR Unidad de control ALU Bus de datos Memoria de datos REGISTRO Entrada y Salida Diagrama a bloques de la arquitectura de Harvard El hecho de tener un bus separado para el programa y otro para los datos permite que se lea el código operación de una instrucción. El procesador se divide en varias unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. Por ejemplo. con un banco de memoria masivo único. etc. En un procesador sin segmentación del cauce. Así se evita el problema del cuello de botella de Von Newman y se obtiene un mejor desempeño En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera similar a la arquitectura Von Newman.

ESPERA ESPERA . La mejora en el rendimiento no es proporcional al número de segmentos en el cauce debido a que cada etapa no toma el mismo tiempo en realizarse. La siguiente figura muestra este proceso B1 B2 B3 B3 Unidad de búsqueda E1 E2 E3 Unidad de ejecución Búsqueda y ejecución en secuencia de tres instrucciones en un procesador sin segmentación del cause En este esquema sigue tomando el mismo numero de ciclos de reloj (el mismo tiempo).Búsqueda y ejecución en secuencia de tres instrucciones en un procesador En un procesador con segmentación del cause. pero como se trabaja en varias instrucciones al mismo tiempo. Durante el segundo ciclo de reloj. el número promedio de instrucciones por segundo se multiplica. la unidad de búsqueda obtendría el código de la instrucción 2. además de que se puede presentar competencia por el uso de algunos recursos como la memoria principal. Otra razón por la que las ventajas de este esquema se pierden es cuando se encuentra un salto en el programa y todas las que ya se buscaron y se encuentran en la cola. deben descartarse y comenzar a buscar las instrucciones desde cero a partir de la dirección a la que se salto. Esta cola se parece a un tubo donde las instrucciones entran por un extremo y salen por el otro. la unidad de búsqueda comenzaría buscando el código de la primera instrucción en el primer ciclo de reloj. Esto reduce el desempeño del procesador y aún se investigan maneras de predecir los saltos para evitar este problema. en un procesador con segmentación. la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución. mientras que la unidad de ejecución ejecuta la instrucción 1 y así sucesivamente. Estas pueden trabajar en forma paralela en instrucciones diferentes. De esta analogía proviene el nombre en ingles: Pipelining o entubamiento UNIDAD DE BUSQUEDA Cola de instrucción UNIDAD DE EJECUCION Comunicación entre las unidades en un procesador con segmentación de cauce Completando el ejemplo anterior. Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de búsqueda coloca los códigos de instrucción que leyó para que la unidad de ejecución los tome de la cola y los ejecute. cada una de estas etapas se asigna a una unidad funcional diferente.

Single Operand) computadoras independientes SIMO – (Single Instruction.3 De multiprocesamiento Cuando se desea incrementar el desempeño más haya de lo que permite la técnica de segmentación del cauce (limite teórico de una instrucción por ciclo de reloj). Fisicamente consiste en unos chips o pequeños tableros de circuitos conectaddos a la tarjeta madre(placa base). ARQUITECTURAS CPU Existen dos tipos más comunes: CISC: Su sistema de trabajo se basa en la microprogramación. sin que tengan que realizarse accesos al disco duro en busca de datos. Consiste en hacer que cada instrucción sea interpretada por un miniprograma. ya que ningún procesador toma el papel de maestro y los demás de esclavos. Single Operand ) No implementado MIMO – (Multiple Instruction. en especial en la simulación de sistemas físicos complejos En los sistemas SMP (Simetric Multiprocesesors). Se basan en estructuras simples y por lo tanto su complejidad total de la CPU es menor. RISC: Microprocesador con un conjunto de instrucciones muy reducidas en contraposición.Consecuencias de la competencia por un recurso 1. Multiple Operand ) procesadores vectoriales MISO – (Multiple Instruction. varios procesadores comparten la misma memoria principal y periféricos de I/O. TIPOS: Supercomputadoras minicomoutadoras macrocomputadoras Unidad de memoria Las memorias se refieren al área donde se almacenan los datos y programas que son utilizados por la CPU. Clusters Procesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo numérico a una serie de datos matriciales. Tiene por objetivo permitir a la CPU el almacenar y recuperar datos muy rápidamente. Se conocen como simétricos. Es clave en su funcionamiento contar con un sistema operativo y programas de aplicación capaces de distribuir el trabajo entre las computadoras de la red. Multiple Operand ) sistemas SMP.1. sino que todos tienen derechos similares en cuanto al acceso a la memoria y periféricos y ambos son administrados por el sistema operativo Los Clusters son conjuntos de computadoras independientes conectadas en una red de área local o por un bis de interconexión y que trabajan cooperativamente para resolver un problema. . se requiere utilizar más de un procesador para la ejecución del programa de aplicación Las CPU de multiprocesamiento se clasifican de la siguiente manera: - SISO – (Single Instruction. Normalmente conectados por un bus común.

Merira cache: su función es dar mayor rapidez entre el movimiento de datos de los registros de la CPU y la RAM. los datos grabados en las fabricas de estos chips. ALU. UNIDAD DE CONTROL. LOS REGISTROS son una pequeña memoria interna existente en la CPU que permiten a la ALU el manejo de las instrucciones y los datos precisos para realizar las diferentes operaciones elementales. etc. los cuales no pueden borrar. Luego determina cuales son los pasos necesarios para cumplir con dicha instrucción. INTERCONEXION DEL SISTEMA. instrucciones y otros datos para su ejecución o procesamiento posterior . De la misma forma que la placa principal tiene un bus para conectar la CPU con los diferentes dispositivos del sistema informático. solo se pueden leer y usar. UNIDAD DE CONTROL: LOGICA SECUENCIAL. Buffer: espacio de memoria de almacenamiento PAGINACION: dividen los programas en pequeñas partes o páginas. Las CPU proporcionan la característica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo. Memoria principal. Es el programa que se encarga de compilar los códigos fuentes escritos en un lenguaje de alto nivel y lo traduce a un lenguaje compresible por computadoras . Su propósito es conservar datos y programas en uso por el procesador y pierde su contenido si se desconecta la energía eléctrica al computador. La memoria cache trabaja como auxiliar entre la CPU y la RAM. debe recordarse que todo el funcionamiento del sistema de una computadora se realiza sobre la base de una serie de operaciones matemáticas en código binario. Memorias ROM: memoria de solo lectura. CPU: UNIDAD DE CONTROL. La Unidad Central de Proceso es el lugar donde se realizan las operaciones de cálculo y control de los componentes que forman la totalidad del conjunto del sistema informático. REGUSTROS. Compilador. INTYERCONEXION INTERNA DE LA CPU. Las CPU de las actuales computadoras son microprocesadores construidos sobre un cristal de silicio semiconductor donde se crean todos los elementos que forman un circuito electrónico (transistores.) y las conexiones necesarias para formarlo. COMPUTADORA: CPU. Su función es contener el conjunto de instrucciones de inicio de la computadora. busca ala SO en las unidades de disco de las computadoras. REGISTROS Y DECODIFICADORES Y MEMORIA PRINCIPAL. dado que esta ultima es mas lenta que la CPU. la unidad de control tiene un bus interno para conectar sus componentes Un DECODIFICADOR DE INSTRUCCIONES. INICIO DE SEGMENTO: Indica donde se empieza a meter la información. LA UNIDAD ARITMÉTICO-LÓGICA realiza los diferentes cálculos matemáticos y lógicos que van a ser necesarios para la operatividad de la computadora.Básicamente hay 2 tipos de memoria: RAM Y ROM. CARACTERIASTICAS LA UNIDAD DE CONTROL maneja y coordina todas las operaciones del sistema informático. CPU Es el componente principal del computador y otros dispositivos programables. Selecciona bloques iguales. Siempre conservan los mismo datos. Es una memoria direccionable por programa en la que se pueden cargar en posiciones. que interpreta las instrucciones contenidas en los programas y procesa los datos. que toma la instrucción desde el buscador y la traslada hasta que la CPU la entienda. tales como: verificar los dispositovs de hardaware. junto con la memoria principal y los dispositivos deentrada/salida. dando prioridades y solicitando los servicios de los diferentes componentes para dar soporte a la unidad aritmético-lógica en sus operaciones elementales. MEMORIA PRINCIPAL Y E/S.

los datos se intercambian entre el procesador y el modulo de E/S. El módulo de DMA es capaz de sustituir a la CPU tomando control del bus. • Conectar con los periféricos mediante conexiones de datos particularizadas. Una CPU puede entender y ejecutar las instrucciones de maquina tales instrucciones tan solo son números binarios almacenados en la computadora. envía un comando al módulo DMA con la siguiente información: • Petición de lectura/escritura. La CPU encarga una operación al módulo y continúa realizando otras tareas. se denomina canal E/S o procesador E/S. es el control por interrupción. • Comunicación con la CPU. (REG. interrumpirá a la CPU para tansferir los datos. La CPU realiza la transferencia y continúa después en el lugar en que se quedó con la otra tarea. que requiere repetidas consultas por parte de la CPU. (CONTADOR) . Ensamblador. Con la E/S programada. Cuando la CPU desea leer o escribir un bloque de datos. se denominan controladores E/S o controlador de periféricos. • Buffer de datos. DIRECCIONES) • El número de palabras a leer/escribir. Cuando el módulo concluya la operación. Es responsabilidad de la CPU comprobar periódicamente el estado hasta que se complete la instrucción. ocultando otras funciones más específicas (por ejemplo. • Comunicación con los periféricos. el modulo E/S realiza la acción solicitada y después activa los bits apropiados en el registro de estado de E/S. El modulo de E/S no lleva acabo otra acción para avisar a procesador. Cuando el procesador esta ejecutando un programa y encuentra una instrucción relacionada con una E/S. ejecuta dicha instrucción mandando una orden al modulo de E/S apropiado. Desde el punto de vista del módulo ACCESO DIRECTO A MEMORIA Cuando se necesita transferir grandes cantidades de datos. Esto implica la inclusión de un módulo adicional al bus del sistema. este módulo no interrumpe al procesador y es así como el procesador es responsable de comprobar periódicamente el estado del modulo de E/S hasta que encuentre que la operación ha terminado. (REG. Con E/S programable. Los módulos de bajo nivel.. DIRECCIONES) • La posición de comienzo en memoria de la que leer/escribir. el módulo realiza la instrucción que le encarga la CPU y coloca los bits correspondientes en el registro de estado. Con el modulo E/S programada. Las funciones o requerimientos principales de los módulos de E/S se agrupan en las siguientes categorías: • Control y temporización. su función el programa el fichero escrito en lenguaje ensamblador y sustituye a cada uno de los códigos FUNCION DEL MODULO ENTRADA/SALIDA Los módulos de entrada/salida (E/S) tienen las siguientes funciones básicas: • Conectar con la CPU y memoria vía bus del sistema. que requieren control detallado. es decir. Cuando el módulo asume funciones de alto nivel. el acceso directo a memoria (DMA) es más eficiente. • Detección de errores Un módulo de E/S permite a la CPU controlar al periférico únicamente con operaciones de lectura/escritura. E/S PROGRAMADA Son posibles tres técnicas para las operaciones de E/S. (CONTROL) • Dirección del módulo E/S implicado. E/S MEDIANTE INTERRUPCIONES Una alternativa a la E/S programada. rebobinar la cinta para acceder al dato).

sólo cuando la CPU no lo utiliza o suspendiendo temporalmente el funcionamiento de la CPU. BUSES Son espacios físicos que permiten en transporte de información y energía entredos puntos de la computadora se clasifican en tres bus de datos de dirección ybus de control 2. El módulo DMA necesita controlar el bus para realizar la transferencia. es uno de los principales. la memoria RAM.1.3 BUS DE DIRECCIONES El Bus de Direcciones. Interconexión de componentes Periféricos. un conjunto de 32 bits. "2" porque son dos las señales binarias. simplificando mucho el asunto.. los bits 1 y 0. el Monitor. Esa cantidad de ubicaciones resulta de elevar el 2 a la 32ª potencia. el Disquete o la Memoria-Flash.La CPU puede continuar con otra tarea. Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos. Nos sirve para calcular la capacidad de memoria en el CPU. 2. el "ancho de canal" explica así mismo la cantidad de ubicaciones o Direcciones diferentes que el microprocesador puede alcanzar. Bus de dirección: son una red de lisneas de comucnicacion que conectan los elementos internos del procesador con la memoria RAM y transporta las direcciones de memoriua. está vinculado al bloque de Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la ejecución de los procesos de cómputo. Su trabajo equivale. el DMA interrumpe a la CPU. Buses: representa las rutas entre los componentes de una compuitadora: principalmente los hay de dos tipos:   Bus de datos: los datos viajan de un lugar a otro dentro de la computadora en un trayecto o circuito electrónico llamado bus de datos. en un instante dado. es el encargado de conectar la CPU. dependiendo de la cantidad de cables en este. Están formados por cables o pistas en un circuito impreso.2 BUS DE DATOS Mueve los datos entre los dispositivos del hardware de Entrada como el teclado. "Peripheral Component Interconnect". . se determonina la cantidad máxima de direcciones de memoria. de los cuales el Controlador PCI. mientras el DMA transfiere el bloque de datos. el ratón. palabra a palabra.1. dispositivos como resistencias y condensadores además de circuitos integrados. por otra parte. de salida como la Impresora. Cuando la transferencia se ha completado.4 BUS DE CONTROL Este bus transporta señales de estado de las operaciones efectuadas por la CPU. El método utilizado por el ordenador para sincronizar las distintas operaciones es por medio de un reloj interno que posee el ordenador y facilita la sincronización y evita las colisiones de operaciones (unidad de control). y de Almacenamiento como el Disco Duro. El bus es un sistema digital que transfiere datos entre los componentes de un computador o entre computadores. etc. y "32ª potencia" porque las 32 pistas del Bus de Direcciones son. 2. Para el Bus de Direcciones. a una central de semáforos para el tráfico en las calles de una ciudad.1. los otros dispositivos del hardware en la tarjeta madre. Esta última técnica se conoce como 'robo de ciclo'.Estas operaciones se transmiten en un modo bidireccional.