P. 1
Organización y Arquitectura de computadoras

Organización y Arquitectura de computadoras

|Views: 1.368|Likes:
Publicado porguidosh

More info:

Published by: guidosh on May 29, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

06/01/2013

pdf

text

original

Sections

  • ENIAC
  • Buses
  • Jerarquía de buses:
  • Memoria Interna
  • Memoria semiconductora:
  • Organización de la memoria semiconductora:
  • Lógica del chip de memoria:
  • Memoria Cache:

Organización y Arquitectura de computadoras

Esta sección esta hecha solamente para hacer un repaso de la materia a rendir, y de paso le puede parecer interesante para leer a alguien, el libro que mas uso es el de Stalling, por lo cual se va a notar la similitud en el contenido. El nivel de los temas tratados es superficial, para mas detalles aconsejo empezar por leer el libro. Todo esto esta colgado también acá

Introducción: Es a veces difícil identificar donde esta la diferencia entre la arquitectura y la
organización de computadores. La arquitectura se refiere a las características del sistema que son visibles al programador, o sea que el programador va a tener que tener en cuenta al momento de programar (ejemplo de esto serian modos de direccionamiento, conjunto de instrucciones, cantidad de bits usados para representas los distintos tipos de datos. La organización en cambio es transparente a el programador, este no se preocupa por estos temas, señales del bus de control, interfaces entre periféricos y computador, tecnología usada en memoria, cantidad de caches, etc. En general lo fabricantes de máquinas producen familias de pc con una misma arquitectura y a medida que pasa el tiempo salen nuevos modelos con la misma arquitectura, pero con una organización diferente, con lo cual logran una compatibilidad de software. Ejemplo de esto serian las PC comunes y una Macintoch, por poseer distinta arquitectura no son compatibles sus software.

Estructura y funcionamiento:
La descripción del sistema se va a ser la la siguiente forma: Se comenzara con una visión muy superficial, para de a poco introducirnos en las capas mas bajas en cuestión de estructura y funcionamiento.

Funciones básicas de un computador:
1. Procesamiento de datos. 2. Almacenamiento de datos. 3. Trasferencia de datos. 4. Control.

Gráficamente seria así:

Gráficamente las funciones serian algo así:

* A) Transferencia de datos. * B) Almacenamiento. * C) Procesamiento de datos almacenados. * D) Entrada o salida de datos con un procesamiento previo.

Estructura del Computador
La representación mas sencilla y superficial de un computador podría ser la siguiente:

podemos distinguir 4 componentes principales: . Computador: Entrando un poco mas en el detalle del computador. Las formas que esta se comunica con el entorno exterior se pueden clasificar en 2 grandes grupos: Periféricos y lineas de comunicación.El computador es el que vamos a analizar mas en detalle.

El componente que vamos a analizar ahora mas en detalle es la CPU: . * MainMemory(Memoria principal): Almacena datos. comúnmente se lo llama procesador. * SystemInterconnection (sistema de interconexión): Proporciona comunicación entre las tres partes.* CPU (Central ProsesingUnit): Controla el funcionamiento de la computadora y se encarga del procesamiento de datos. * Input/Output (I/O o entrada y salida): se encarga de la transferencia de datos entre en computador y el entorno externo.

etc) * Unidad de Control: Controla el funcionamiento de la CPU. con lo cual controla el funcionamiento del computador. .OR. XOR.Los principales componentes son los siguientes: * Registros: Proporcionan un almacenamiento interno a la CPU. etc) y logicas (AND. * ALU (Unidad Aritmético-Lógica): En ella se realizan las operaciones de procesamiento. aritméticas (suma resta.

Un ejemplo de esto es la famosa ENIAC. Pesaba 30 toneladas Poseía 18000 válvulas. Consumía 140 Kilowatios. Realizaba 5000 sumas por segundo. dicho procesamiento se configuraba antes de empezar por medio de cableado. para distraerme un poco vamos a poner algo de ella: Unos datos interesantes: Trabajaba con numeración decimal. Como se puede apreciar el procesador era para un uso especifico. la enciclopedia libre . Principios de la programación En los primeros computadoras se puede observar aproximadamente el siguiente funcionamiento: Al computador entraban datos. a esos datos se les daba un procesamiento.php?video=sJnMBnZElqw ENIAC De Wikipedia.com/watch.* Interconexiones: Proporcionan comunicación entre los 3 componentes anteriores.videos-star. y del computador salían los resultados. Vídeo de YouTube link: http://www.

.

Además está relacionada con el Colossus.200 diodos de cristal. utilizaba 1.468 válvulas electrónicas o tubos de vacío. siendo recientemente restaurada para un museo británico. la ENIAC tenía 17. Era totalmente digital. los que pasaron a la historia de la . la ENIAC fue desactivada para siempre. La ENIAC elevaba la temperatura del local a 50ºC. Físicamente. cuando requería modificaciones.4 m x 0. 10. Ese honor se le debe al Z3 construido en el 1941.500 conmutadores electromagnéticos y relés. que ejecutaba sus procesos y operaciones mediante instrucciones en lenguaje máquina.9 m x 30 m.000 interruptores. y su programa o software.000 resistencias. que fue usado para descifrar código alemán durante la Segunda Guerra Mundial y destruido tras su uso para evitar dejar pruebas. conectar y reconectar los cables como se hacía. A las 23.45 del 2 de octubre de 1955. Para efectuar la s diferentes operaciones era preciso cambiar. La ENIAC podía resolver 5. La ENIAC fue construida en la Universidad de Pennsylvania por John PresperEckert y John William Mauchly. pues su consumo era de 160 kW.000 condensadores y 5 millones de soldaduras. Las programadoras de ENIAC Si bien fueron los ingenieros de ENIAC.ENIAC ENIAC es un acrónimo inglés de ElectronicNumericalIntegrator And Computer (Computador e Integrador Numérico Electrónico). en esa época. Uno de los mitos que rodea a este aparato es que la ciudad de Filadelfia. En 1. ocupaba una superficie de 167 m² y operaba con un total de 17. 7. utilizada por el Laboratorio de Investigación Balística del Ejército de los Estados Unidos.468 tubos de vacío. Contenido * 1 Modalidad * 2 Prestaciones * 3 Las programadoras de ENIAC * 4 Enlaces externos Modalidad No fue la primera computadora electrónica de propósito general. en las centrales telefónicas. donde se encontraba instalada. tardaba semanas de instalación manual. Prestaciones La computadora podía calcular trayectorias de proyectiles. Pero entre las anécdotas estaba la poco promisoria cifra de un tiempo de rotura de 1 hora. de allí el concepto. Presentada en público el 15 de febrero de 1946. Pesaba 27 Tm. 1. Mauchly y Eckert.500 relés. medía 2.000 sumas y 360 multiplicaciones en 1 segundo. a diferencia de otras máquinas computadoras contemporáneas de procesos analógicos. sufría de apagones cuando la ENIAC entraba en funcionamiento. requería la operación manual de unos 6. Este trabajo podía demorar varios días dependiendo del cálculo a realizar. es decir.5 segundos era posible calcular la potencia 5000 de un número de hasta 5 cifras. lo cual fue el objetivo primario al construirla. 70.

Hasta la década del 80. . Su trabajo modificó drásticamente la evolución de la programación entre las décadas del 40 y el 50. las primeras aplicaciones de software y las primeras clases en programación. MarlynWescoffMeltzer. cuya historia ha sido silenciada a lo largo de los años y recuperada en las últimas décadas. crearon el primer set de rutinas. sus ingenieros se hicieron famosos. se dijo incluso que ellas eran sólo modelos que posaban junto a la máquina ("Refrigerator ladies". posiblemente por una cuestión de género o para reducir los costos laborales. estas mujeres sentaron las bases para que la programación fuera sencilla y accesible para todos. Betty SnyderHolberton. Jean JenningsBartik. este equipo de programadoras destacaba por ser hábiles matemáticas y lógicas y trabajaron inventando la programación a medida que la realizaban. Muchos registros fotográficos de la época muestran la ENIAC con mujeres de pie frente a ella. KathleenMcNultyMauchly Antonelli. Sin embargo. ------------------------------------------------------------------------------------------------------------------------Bueno. programar este computador para que realice una tarea determinada. En esta época surgió la idea de programa almacenado. mientras que nunca se le otorgó crédito alguno a estas seis mujeres que se ocuparon de la programación. mas dedicaron largas jornadas a trabajar con la máquina utilizada principalmente para cálculos de trayectoria balística y ecuaciones diferenciales y contribuyeron al desarrollo de la programación de computadoras. Cuando la ENIAC se convirtió luego en una máquina legendaria. Ruth LichtermanTeitelbaum y FrancesBilasSpence prácticamente no aparecen en los libros de historia de la computación. consistía en cambiar las conexiones de todos esos cables que se aprecian en las imágenes. hubo seis mujeres que se ocuparon de programar la ENIAC. que se le atribuye principalmente al matemático asesor del proyecto Eniac John Von Neumann.computación. Clasificadas entonces como "subprofesionales".

¡   .Las i as del programa almacenado fue desarrollada al mismo tiempo por Turing (Recomiendo leer la historia de este genio).

bastara solo con leer otro conjunto de ordenes almacenadas en memoria. de esta manera nace el SOFTWARE. proponiendo la EDVAC (ElectronicDiscrete Variable Computer). en ves de tener un procesador que realiza una sola tarea.Pero la primera publicación fue hecha por Neumann en 1945. y es la base general de los computadores de hoy en día. En este diagrama se ejemplifica el computador realizaba una tarea fija con los datos . encontrar la forma de cambiar esas conexiones por medio de ordenes almacenadas en memoria junto a los datos. La idea era la siguiente. A la idea de la llamo "La máquina de Von Neumann". Con esto para cambiar la tarea que realizara la computadora. y la programación sea cableada. Esta se empezó a d iseñar en la universidad de Princeton en 1946 y fue completado en 1952.

se decodifica. la unidad de control manda las señales necesarias por los buses. y se realiza la operación. la memoria y los datos provienen de la misma memoria. Con este avance se logro tener el primer computador de propósito general. Hoy en día. .En este diagrama vemos ejemplificado que por medio de instrucciones al procesador. Buses Los buses son el mecanismo mas común para la comunicación entre los dispositivos del computador. dich a unidad realizaba las conexiones correspondientes para que la ALU realizara una tarea determinada. y el resultado salia por algún dispositivo de E/S. se leía una instrucción. a grandes rasgos es similar. era mas fácil usarlo p ara diversas tareas. esta realizaba las operaciones. esta pasaba a la unidad de control. los datos se mandan a la ALU. entraban los datos a la ALU. se lee una instrucción. La idea es la siguiente. se podía hacer que el computador sea de uso general y realizar distintas tareas Como se puede apreciar en la ultima figura.

.Físicamente son conductores por donde viajan señales eléctricas.

de a una señal por unidad de tiempo. Bus de datos: Por estas lineas se transfieren los datos. pueden ser de 8. La cantidad de lineas del bus a medida que pasa el tiempo se va incrementando como uno de los métodos para incrementar la velocidad de transferencia de señales en el computador. 16. Para poder transmitir 1 byte en 1 sola unidad de tiempo tendríamos que usar 8 lineas al mismo tiempo. y hay una gran diversidad de implementaciones. una detrás de otra. Cada linea tiene un uso especifico. al bus que comunica al procesador. Existen varios tipos de buses que realizan la tarea de interconexión entre las di stintas partes del computador. los buses son casi todos esos caminos que se ven en las motherboard de las imágenes anteriores. pero en general podemos distinguir 3 grandes grupos de buses. Por dicho motivo existe un arbitraje para decidir quien hace uso del bus. Por cada linea se pueden trasmitir señales que representan unos y ceros. se deberán mandar 8 señales. si dos dispositivos transmiten al mismo tiempo señales las señales pueden distorcionarce y consecuentemente perder información.Bueno. El bus es un dispositivo en común entre dos o mas dispositivos. memoria y E/S se lo denomina BUS DEL SISTEMA y es que que vamos a detallar ahora. en consecuencia se tardaría 8 unidades de tiempo. 32 o maslineas( no se . en secuencia. y así incrementar el desempeño. Si se desea por ejemplo transmitir 1 byte.

Bus de control:Estas líneas son utilizadas para controlar el uso del bus de control y del bus de datos. Se transmiten ordenes y señales de temporización. en consecuencia el ancho del bus de datos nos indica la cantidad de direcciones de memoria a la que podemos hacer referencia. Bus de direcciones:Por estas lineas se envía la dirección a la cual se requiere hacer referencia para una lectura o escritura. lo cual nos indica cuantos datos podemos transferir al mismo tiempo. * Petición del bus. * Transferencia reconocida.realmente en cuanto andan hoy en día). las ordenes son muy diversas las mas comunes son: * Escritura en memoria. el doble de tiempo en leer instrucciones comparado con un bus de datos de 16 lineas. el sistema va a tener que acceder 2 veces a memoria para poder leer la instrucción. * Cesión del bus. Por ejemplo si el bus es de 8 lineas y las instrucciones son de 16 bits. * Lectura de E/S. una parte las usa para hacer referencia a los puertos de E/S. en general el sistema no usa todas para hacer referencia a la memoria principal. * Inicio. * Petición de interrupción. son 256 combinaciones posibles. * Señal de reloj. y es muy influyente en el rendimiento del sistema. * Lectura de memoria. * Interrupción reconocida. Dentro de la direcciones posibles. .. Las señales de temporización indican la validez de los datos que están en el bus en un momento dado. * Escritura de E/S. las combinaciones posibles para identificar una dirección irían del 00000000 al 11111111. si el bus es de 8 lineas por ejemplo.

Jerarquía de buses: Para mejorar el rendimiento del bus. una primera aproximación a una jerarquía de bus básica seria la siguiente: . En general. y puede emitir algún tipo de señal por el bus de control (señal de interrupción. las causantes de esto son varias. pero las mas importantes son el tiempo de sincronización que se necesita para coordinar el uso del bus entre todos los dispositivos. la cual puede llegar a convertirse en un cuello de botella del sistema.Todo elemento que este conectado al bus tiene que saber reconocer si la dirección que esta en el bus de datos le corresponde. cuanto mas dispositivos conectamos al bus. etc). tiene que reconocer algunas ordenes transmitidas por el bus de control. señal de reconocimiento de alguna petición. disminuye el rendimiento del sistema. las jerarquías de buses fueron implementadas cada vez mas. y que el bus tiene una capacidad máxima. Una de las formas de tratar este problema es implementando jerarquía de buses.

por ejemplo para un dispositivo muy lento conectado al bus de expansión la interfase podría acumular una cierta cantidad de datos y luego transmitirla a través del bus del sistema. serán entregados a una alta velocidad. debajo de este bus tenemos el bus de expansión. con esta implementación.Primero tenemos un bus local. la mayor parte de los datos a los que va a acceder el procesador. hizo que los fabricantes implementaran los buses de alta velocidad. Luego tenemos el bus del sistema. solo hay un adaptador que los une. entre el bus del sistema y el bus de expansion se encuentra una interfase. al cual se pueden conectar una amplia diversidad de dispositivos. el controlador de la cache también puede acceder al bus del sistema. otro punto a destacar de esta parte es que los accesos a memoria por parte de la cache no van a interrumpir el flujo de datos entre procesador y cache. que están en la cache. El hecho de que cada vez mas salgan al mercado dispositivos que requieren mas velocidad de transmision en los buses. de alta velocidad que conecta el procesador a la cache. el cual esta muy estrechamente ligado al bus local. que entre las principales tareas esta la de adaptar las velocidades de transmision. También se ve la posibilidad de conectar un dispositivo de entrada salida al bus local. . mas lento conectado mediante otro adaptador. al cual esta conectada la memoria y por debajo el bus de expansión.

Esto funcionaria a grandes rasgos de la siguiente forma: Al comienzo de la transferencia se sitúa en el bus la dirección de donde se quiere leer o a donde se desea escribir. Tipos de buses: Una clarificación que podemos hacer es según la funcionalidad de este. pero podría llegar a implementarse con un solo bus multiplexado el el tiempo. cada uno se utiliza solo para una función especifica. los podríamos dividir en dedicados o multiplexados..Existen varios parámetros y elementos en los buses con los cuales podemos clasificarlos. luego se emite por el bus de datos una señal indicando que en el bus se encuentra una dirección valida. Un ejemplo común de dedicados serian el bus de datos y el bus de direcciones. Esta situación de bus de datos y de direcciones dedicados es lo mas común. .

Método de arbitraje: Por la razón de que en un momento dado solo puede usar el bus un solo dispositivo. Temporización: La temporización clasifica al método utilizado para coordinar los eventos dentro del bus. modulo de E/S o memoria. y que el rendimiento del sistema sera menor por no poder transmitir los datos simultáneamente. procesador. Arbitraje distribuido: En este esquema no existe un controlador centralizado. ya que solo van a operar con el los módulos de E/S. En cualquiera de los dos casos lo que se busca es que se decida quien va a tener la posesión del bus en un momento dado. Ventaja de este método es la reducción de la cantidad de lineas. la desventaja son que para poder implementar es forma de operar la circuitería en cada modulo tiene que ser mas compleja. en su lugar. este dispositivo puede ser un modulo separado o puede estar incorporado al procesador. Al intervalo transcurrido en la emisión de un uno y un cero se lo llama ciclo de reloj. la cual puede ser leída por todos los dispositivos conectados al bus. Según la temporización usada podemos clasificar los buses en 2 grupos. todo los eventos ocurridos dentro del bus comienzan el principio del ciclo y pueden durar uno mas . En este método de temporización todos van al ritmo del reloj.A partir de ese momento se dispone de una unidad de tiempo para que los dispositivos identifiquen si es su dirección. Temporización síncrona: Todos los eventos del bus se rigen a través del reloj del computador. este ejemplo lo voy a explicar mas detalladamente cuando llegue al la parte de E/S. Una de las líneas del bus transmite continuamente una señal de reloj. simplemente una secuencia de unos y ceros. la ventaja esta en que al ser dedicado solo a E/S. . cada dispositivo que hace uso del bus tiene que tener incorporada la logica necesaria para poder interactuar con los demás dispositivos y decidir quien hace uso del bus. y no va a haber tanta competencia por el bus. luego de esto se pone en el mismo bus los datos y se realiza la transferencia en el sentido que lo indique una orden emitida por el bus de control. debe existir un método para decidir quien hace uso de el. el rendimiento de este va a ser mejor. Todos los métodos que existen en general pueden ser clasificados en 2 grandes grupos: Arbitraje centralizado: Una parte del hardware del sistema denominada controlador del bus se encarga de decidir el uso del bus en cada momento. este bus se conecta al bus principal mediante algún adaptador. al cual se lo denomina maestro del bus. en paralelo (datos y dirección). lo cual ahorra espacio y costos. el maestro del bus establecerá una comunicación con otro dispositivo (lectura o escritura) al cual se lo denominara esclavo. el cual se encarga de conectar solo los dispositivos de E/S. Otro tipo de clarificación podría ser según su dedicación física: Podríamos poner como ejemplo el bus de E/S.

en el diagrama anterior podemos apreciar como seria en forma simplificada una lectura de datos a travez del bus. . uno o cero. por ejemplo la linea del reloj. al aumentar la velocidad del ciclo vamos a aumentar la velocidad del sistema. La velocidad en el ritmo que se alterna de un uno a un cero en la linea del reloj nos da la velocidad del bus. Tener en cuenta que hay muchísimas maslineas que no se figuran en el gráfico. y como todas las operaciones se van a realizar al ritmo del reloj. que seria algo mas constante como el siguiente gráfico. Las lineas solo pueden tener uno de dos estados.Bien.

el modulo correspondiente reconocerá su dirección. en general la mayoría de los eventos tiene un duración de un ciclo. si hay uno mas rápido. Por ejemplo. en el caso de que hubiesen varios dispositivos conectados al bus. y pone en el bus de datos la información solicitada. luego de un breve tiempo para que las señales eléctricas se estabilicen. son los datos solicitados) Todo con este método de temporización empieza o finaliza rigiendose de las señales del reloj.Con referencia al gráfico de un ciclo de lectura de datos. el maestro (el que tiene permiso para el uso del bus) pone en el bus de direcciones la dirección de la cual desea leer su contenido. luego de haber puesto la dirección en las lineas correspondientes. envía por una linea del bus de control una señal indicando que desea hacer una lectura. este tiene que . el dispositivo correspondiente a esa dirección reconoce la dirección. pero es menos flexible que la síncrona. pone el dato solicitado en el bus de datos y emite una señal (SSYN sincronización del esclavo) por la en bus de control indicando el las señales del bus de datos son validas(son los datos solicitados) La temporización síncrona es mas fácil de implementar y comprobar. El procesador pone en el bus de direcciones la dirección a ser leída y en el bus de control por la linea correspondiente señal de lectura. tras lo cual. Temporización asíncronica: Acá los eventos no se rigen por la linea del reloj. manda otra señal por una linea del bus de control indicando que se le a reconocido su petición (que los datos situados en el bus de datos son validos. se manda señal por la linea MSYN (sincronización del maestro) indicando que hay señales validas en el bus de dirección y de control. en general todo evento es disparado por otro evento anterior. todos tienen que funcionar a la velocidad del reloj. de distintas velocidades.

Todo esto es una sola operación. y cuanto mas ancho el bus de datos. En el segundo diagrama se puede apreciar un periodo nombrado con "Access time".bajar su velocidad: En cambio con el asíncrono. memoria principal. es simplemente la cantidad de lineas que posee. en el mismo bus se trabajaría a distintas velocidades. Para optimizar el rendimiento existen algunas operaciones combinadas en las cuales se pasa la dirección una sola vez. primero se utiliza para transmitir la dirección y luego los datos. cuanto mas ancho el bus de direcciones. y esta directamente relacionado con el rendimiento del sistema. En el gráfico tenemos ejemplificado una escritura y una lectura. nadie puede acceder al bus en el medio de la operación. se utiliza para proteger los recursos de memoria compartida en si stemas con multiprogramación para mantener la integridad de los datos. la cantidad de direcciones siguientes también es un parámetro que hay que pasar. en este caso el bus esta multiplexado en el tiempo. cada transferencia se haría con la velocidad óptima de sus dos partes (maestro-esclavo). ya sea para escritura como para lectura. Anchura del bus: La anchura del bus ya lo he explicado. cada uno funcionaria a su velocidad. se pasa al principio de la operaci ón la dirección inicial y luego se realiza lectura o escritura a las siguientes direcciones. mayor ya a ser la cantidad de bis que se va a poder transmitir en paralelo. por ejemplo "lectura-modificación-escritura". . ese tiempo es el necesario para acceder al medio en donde se encuentra el dato (disco rígido. seria la lectura del dato. Otra instrucción es "lectura después de escritura" que serviría para comprobar el resultado. se le aplica alguna modificación y luego se escribe nuevamente. Otra operación muy común es la transferencia por bloque. etc) y ponerlo en el bus. mayor va a ser la cantidad de direcciones posibles utilizadas para direccionar memoria y dispositivos de E/S. Tipo de transferencia de datos: Todos los buses permiten la transferencia de datos.

Nobleza obliga. ahora tendría que enumerar algunos buses en especial.Bien. voy a poner algunas imágenes donde se pueden ver distintas implementaciones y velocidades. . pero como tienen muchos datos técnico que pueden ser medios pesados. estas diapositivas las tome de las teorías de la catedra de Arquitectura de computadoras de la carrera de Licenciatura en Informática de la Universidad Nacional de La Plata.

.

.

.

.

.

.

.

.

.

.

. No existe un tipo de memoria óptima para un computador.Memoria Interna La memoria interna de un computador tiene tan amplia diversidad que provoca un poco extenso estudiarla. * Costo. * Capacidad. por lo cual hay que utilizar varias clases en una misma máquina en busca de la combinación lo mas aceptable posible teniendo en cuenta principalmente 3 parámetros: * Velocidad de acceso.

el tiempo de acceso se asemeje a los tiempos de las memorias de los niveles superiores y las capacidades se asemejen a las de los niveles inferiores. . Entonces. cuanto mas arriba menor la capacidad y cuanto mas arriba menor el tiempo de acceso. tenemos que armar una jerarquía dentro de la máquina con varios de estos tipos de memoria. mas cerca (físicamente) del procesador nos encontramos.En esta pirámide podemos observar lo siguiente: cuanto mas arriba de la pirámide. mayor el costo. tratando de lograr que el costo se asemeje a los costos de las memorias de los niveles inferiores. Cuanto mas arriba. Esto se logra utilizando una jerarquía de memorias.

pero en algunos casos se puede direccionar de a nivel de byte. Un ejemplo de este tipo de acceso son las cintas magnéticas.Antes de abordar las técnicas de comunicación entre los distintos tipos de memorias. y no nos olvidemos que las unidades direccionables están directamente relacionadas con la anchura del bus de direcciones. las memorias externas son mayores y se suelen medir en términos de bytes(Kbyte. Cuando hablamos de memoria interna nos referimos generalmente a la memoria principal. en general coincide a la longitud de palabra del modulo de memoria. Memorias internas y externas. Para l memoria externa la unidades son mas grandes y se las llaman bloques. etc). Vamos a aclarar 2 términos usados comúnmente para que se aclare un poco el tema. lectoras de CD/DVD. Métodos de acceso: Esta otra clarificación que podemos hacer varía según al la forma de acceder al dato. . Entonces finalizando este punto. siendo las longitudes mas comunes para las palabras las de 8. Además de los datos se agrega información que permite distinguir donde comienza un registro y comienza otro y permite la escritura/lectura de los datos. cintas. Capacidad: Las memorias internas son las mas pequeñas y se miden en bytes o palabras. suele coincidir con con el numero de bits utilizados para representar los números y con la longitud de las instrucciones. la unidad de transferencia es la cantidad de bits que se pueden lee o escribirá la vez y comúnmente coincide con la unidad de palabra o con la unidad direccionable. Mbytes. Cundo decimos memoria externa. pero como siempre hay excepciones. Unidades direccionables: En muchos sistemas la unidad direccionable es la palabra. teniendo que pasar por todos los registros intermedios. hasta llegar al registro deseado. Acceso secuencial: Los datos se organizan en unidades llamadas registros. nos vamos a estar refiriendo a dispositivos periféricos a los cuales se accede a través de algún controlador de E/S (discos rígidos. pen-drivers. debemos saber un poco mas de sus características y clasificarlas según ellas. 16 y 32 bits. el procesador necesita su memoria propia (registros del procesador) y la unidad de control puede llegar a necesitar memoria propia. pero no debemos olvidar que existen otras. Tbytes. anteriores al que deseamos acceder. por lo general. El tiempo de acceso es variable dependiendo de la ubicación del registro deseado. el acceso se logra mediante un acceso lineal especifico. Palabra: Es la unidad natural en que esta organizada la memoria. L a forma de acceder como su nombre lo indica es secuencial. Unidad de transferencia: En general la unidad de transferencia es igual al numero de lineas de entrada/salida de datos que posee el modulo de memoria. etc).

.

El acceso es directo. Acceso aleatorio: Cada posición de memoria direccionable tiene una acceso directo para acceder.Acceso directo: Cada unidad de información en que esta dividida la unidad tiene una dirección única basada en su ubicación física. . Un ejemplo de esto son los discos magnéticos. cableado físicamente. pero no al dato especifico. El tiempo de acceso es variable. sino a toda la vecindad. El tiempo de acceso a cada posición es constante y no depende de accesos anteriores.Un ejemplo de este tipo de acceso es la memoria principal y algunos sistemas de cache. luego dentro de la vecindad se hace un acceso secuencial contando o esperando alcanzar la posición final.

El tiempo de acceso es constante y no depende de accesos anteriores.Acceso asociativo: Se compara una parte de la dirección a buscar contra una parte de las palabras almacenadas en este tipo de memoria. cableado físicamente.Un ejemplo de este tipo de acceso son algunos sistemas de cache. La comparación se hace en paralelo con todas las palabras almacenadas en la memoria. . dichas palabras además de los datos contienen información para identificar a que posición corresponden. Cada palabra de memoria tiene una acceso directo para acceder.

Tiempo de acceso: es el tiempo en que se tarda en la operación de lectura o escritura. Tiempo de ciclo de memoria: Es el tiempo necesario que se requiere para realizar la segunda lectura luego de haber realizado la primera. de ahí que tenga dos chips en un solo procesador. para memorias de tiempo aleatorio esto equivale a la inversa del tiempo de ciclo. Para memorias de otro tipo de acceso. Para este cometido implementaron junto al Pentium MMX otro chip que era la memoria caché (256Kb). muchas gracias. Generalmente este termino se usa con las memorias de tipo aleatorio. y es requerido para que finalizen las transacciones en las lineas de controlo para regenerar los datos si se trata de lecturas destructivas. El Pentium Pro fué el primer procesador de intel diseñado específicamente para entornos de servidor. El chip de la izquierda es el procesador mientras que el de la derecha es una memoria caché (se denota por lo regular de la superficie).Este es un Pentium Pro a 200 Mhz. el tiempo de acceso es el tiempo que se tarda en ubicar el mecanismo de lectura/escritura en la posición deseada. para los otros tipos de memoria se utiliza la siguiente relación: . Muy buena imagen tomada de http://karman. Velocidad de transferencia: Es la velocidad a la cual se pueden transmitir datos desde o hacia memoria.net.homelinux. En memorias de acceso de acceso aleatorio es el tiempo entre que se pone la dirección en el bus y el momento en que el dato ha sido guardado (escritura) o el dato se encuentra disponible (lectura).

por lo cual cuando estos datos se requieran. se va a buscar el dato a memoria. hay muy altas posibilidades que se requieran otros datos que contiene el bloque guardado en cache. también lo serán en un futuro próximo. si no se encuentra ahí. Para que quede mas claro el gran beneficio de la cache Supongamos que tenemos 2 niveles de cache L1 (nivel 1) y L2(nivel 2) . La motivación principal a este tema es la siguiente: La prioridad de todo el sistema es que la CPU e jecute la mayor cantidad de instrucciones. ‡ Localidad espacial: los elementos cuyas direcciones están cercanas tienden a ser referenciados. Debido a los muy buenos algoritmos que manejan las cache. se debe tratar de que no se detenga para esperar que lleguen las instrucciones y datos desde la memoria.Estas 3 ultimas características de la memoria son las mas importantes desde el punto de vista del usuario junto a la capacidad. mas rápido es el acceso. El bloque extraído se guarda en la cache. Debido al principio de localidad. Las que están ubicadas en el mismo procesador se las llama de nivel uno (on chip). Esta memoria puede estar ubicada en distintas partes del computador. el acceso va a ser muy rápido. Jerarquía de memoria: El tema clave de toda la organización de los distintos tipos de memoria esta en obtener una disminución de los accesos a las clases mas lentas de memoria. primero se busca en la primera cache (rápidamente). cuanto mas cerca del CPU. mas cara. cuando se accede a memoria. podemos podemos dar una aproximación de como se utilizan las cache: Cuando la CPU solicita un el contenido de una dirección. Teniendo el claro este principio. El procesador es mucho mas rápido que la memoria principal. no se extrae solo el contenido solicitado. Antes de proseguir debemos conocer a lo que se le llama "Principio de localidad" Principio de localidad de programas y datos ‡ Localidad temporal: los elementos (datos o instrucciones) accedidos recientemente. a conjunto extraído se lo llama bloque. en este punto para solucionar el tema entra la memoria cache. también están las de nivel 2 y nivel 3. y de ese bloque el dato solicitado se manda a la CPU. sino que todo el conjunto de direcciones lo rodea. la tasa de acierto es aproximadamente del 95%. una mas lejos que la otra. mas pequeña pero mas rápida.

Memoria semiconductora: Antes de empezar con este tema aconsejo leer la muy interesante pagina que habla de la forma mas común de almacenar información en los computadores antiguos.05*(0.15µs a cada dirección de memoria. A L2 accedemos solo el 0. ya que no se tienen en cuenta muchos factores.95 + 0. L1 tiene un tiempo de acceso de 0.0025 % de las veces y a la memoria principal solo el 0.Estos cálculos son solo para tener una aproximación.05% de las veces. a L3 solo tendríamos acceder el 0. La mayor parte del tiempo el procesador recibe datos e instrucciones rápidamente de la cache.1µs) + (0.1µs + 1µs)= 0.000125. . Mas adelante voy a detallar mas su funcionamiento e implementaciones. agregando un nivel mas L3. los núcleos de ferrita. por lo cual va a estar menos tiempo esperando.15µs Estamos teniendo un tiempo de acceso aproximadamente de 0.1µs y L2 de 1µs ( 0.

Las dinamicasestan compuestas por celdas que conservan la carga. Todas los tipos de memoria que veremos aca son de acceso aleatorio. estaticas y dinamicas. lo acual hace que sean mas pequeñas y economicas. Estas cargas disminuyen gradualmente por lo cual tienen implementadas un sistema de refresco.[align=center]Diálogo sobre las memorias de anillos de ferrita. o sea que se pierden los datos cuando se apaga el computador. (Random Access Memory) . vamos a enumerarlas y dar una breve descripción. Se puede escribir como leer rapidamente en ella. que pueden mantener uno de dos estados mientras esten alimentadas. . es volatil. Las RAM dinamicas son mas simples y compactas.[/align] Hoy en las memorias principales utilizan memoria principas. como un condensador. Se las puede dividir en 2 grupos. el cual cargara periodicamente las celdas con carga. como los Flip-Flops. a cada palabra que las componen se la puede acceder directamente. Las RAM estaticas estas conformadas por puertas bioestables. obviamente todas las memorias que vamos a ver en esta parte son pero a esta se la llama asi. RAM: La mas común. con lo cual se identifica un uno o un cero. el hecho de que tenga carga o no diferencia un uno de un cero.

los datos bienen grabados ficicamente. solo se pueden leer. como un circuito y no es volatil .ROM: ReadOnlyMemory.

. EPROM: Memoria de solo lectura programable y borrable ópticamente. Podría grabarla el fabricante o el posterior comprador con un equipo especial. lo cual se realiza exponiendo la ventanita del chip a rayos ultravioleta. No es volátil. No es volátil. pero nos da mas ventajas. estas memorias se pueden leer y grabar eléctricamente. el tema importante es que antes de grabarla hay que borrarla completamente. que viene tapada con una etiqueta para evitar borrados no intencionados.PROM: Son iguales que las ROM pero estas se pueden grabar eléctricamente una vez.Sonmas costosas que las ROM y PROM. En la imagen se puede apreciar la ventana. suele tardar unos cuantos minutos en borrarse.

.

EEPROM: Memoria de sobre todo lectura programable y borrable eléctricamente. Son mas costosas y menos densas. pero nos dan gran flexibilidad al poder actualizables mediante las lineas de datos. Se puede leer tanto como escribir de forma eléctricamente y solo el o los byte direccionados. direcciones y control. La escritura demora mucho mas tiempo que la lectura. .

Flash: Iguales que las EEPROM pero masmasrapidas. La ultima es de 64GB de Samnsung. solo se puede borrar a nivel de bloque. las podemos ver comunmente en los pen drivers. otra diferencia es que no permiten borrar a nivel de byte. . Estas 3 imagenes son de memorias flash.

.

.

Organización de la memoria semiconductora: El elemento básico de la memoria semiconductora es la celda de memoria. uno para seleccionar la celda para lectura o escritura. Lo mas común es que posean tres terminales. y ot ro para los datos. los cuales se utilizan para representar un uno o un cero. * Puede escribirse en ellas al menos una vez. * Presentan 2 estados. . aunque existen muchas tecnologías utilizadas para su implementación. todas compartes algunas propiedades. otra para indicar el tipo de operación (lectura/escritura). como salida (lectura) o entrada (escritura). * Pueden leerse para saber su estado.

Una de las características mas importantes de los chips de memoria. en un extremo tenemos una memoria en la cual la organización física es igual a la lógica (igual a como la percibe el procesador).Lógica del chip de memoria: Las memorias semiconductoras vienen encapsuladas. es la cantidad de bits que se pueden leer/escribir simultáneamente. esto seria que el chip de memoria esta organizado en W palabras de B bits cada una. y desarrollare a continuación. Por ejemplo una memoria de 16 Mbits podría estar organizado en 1Mpalabras de 16 bits cada una. Tenemos muchas formas de organizar la memoria. y cada chip contiene una matriz de celdas de memoria. Organización típica de una DRAM de 16Mbits en la que se leen/escriben de a 4 bits simultáneamente: . En el otro extremo tenemos la estructura llamada "un bit por chip" en la cual los datos se lee/escriben por bits.

Lógicamente la matriz esta compuesta por 4 matrices cuadradas de 2048 X 2048 elementos. Para poder seleccionar un elemento particular de cada chip de 2048 X 2048 se necesitan, para poder expresar 2048 combinaciones, necesitamos 11 lineas, por lo cual a cada chip entran 11 lineas para especificar la fila de la matriz y 11 lineas para especificar la columna de la matriz. Como se puede ver en este gráfico, a la DRAM solo entran 11 lineas de datos ( de A0 a A10), esto se debe a que estas lineas dedicadas a especificar la dirección están multiplexadas en el tiempo, primero se pasa la dirección que especifica la fila y luego se pasa la dirección que especifica la columna. De cada chip obtengo un elemento, los 4 de la misma posición relativa dentro de cada uno de los chips. Si el bus de datos del sistema fuera de 16 bits, tendría que tener 4 DRAM conectadas al controlador de memoria para poder leer/escribir una palabra en el bus de datos. Como comentario, el uso de matrices cuadradas y de lineas de direcciones multiplexadas provoca que con

cada linea que se agrega a las lineas de direcciones la capacidad se podria cuadriplicar, por ejemplo con el caso anterior con 11 lineas se obtienen 2048 posibles combinaciones, con 12 lineas 4096, el doble, el doble de filas y el doble de columnas, o sea, el cuadruple de capacidad de direccionamiento con el solo hecho de agregar una lineamas.

En el diagrama anterior se muestra el encapsulado típico de una DRAM de 16Mbits. Ahora, en el ejemplo anterior el chip tenia una entrada/salida de 4 bits, en cambio si cada chip tiene 1 bit de entrada/salida, claramente necesito N chips, donde N es igual a la cantidad de bits por palabra. Para ejemplificar veamos una forma de organizar un modulo de memoria de 256K palabras de 8 bits.

Aclaración: El diagrama anterior tiene un error, en el chip inferi or del gráfico debería decir "Chip #8" En el diagrama podemos apreciar que las lineas de datos no se multiplexan. Cada chip posee 512 X 512 (256K) elementos de 1 bit, al momento de leer una de las 256k palabras de 8 bits, se envía la dirección y se selecciona un bit de cada chip (la misma ubicación en cada chip), cada bit seleccionado de cada chip conformara la palabra.

Memoria Cache:
El objetivo de la memoria cache es obtener un tamaño grande de memoria, con una velocidad tendiendo a

. pasa la dirección solicitada a el procesador. primero se pasa el bloque a la cache y luego se pasa la palabra a el procesador. al mismo tiempo. para aprovechar el principio de proximidad.la de las memorias mas rápidas y un costo tendiendo a las mas baratas. si no esta en la cache. se llama fallo o "MISS". Este seria el diagrama del del segundo caso. una es que se pasa el bloque de memoria a cache y se pasa la dirección solicitada al procesador en paralelo. se llama acierto o "HIT". si esta. En esta parte tenemos dos organizaciones mas comunes. la otra primero se pasa el bloque de palabras a la cache y luego esta. primero se fija si esta en la cache. Como ya hemos visto cuando el procesador necesita acceder a una dirección de memoria. entonces se accede a la memoria principal y se extrae el conjunto próximo a la dirección buscada y se pone en la cache. entonces la dirección es accedido directam ente de la cache.

realmente no se bien a que se refiere con RA. si esta se capta la palabra para luego pasarla al procesador. . si no esta se accede a memoria. este seria el primer caso que hacia referencia el párrafo anterior y es la organización que se usa en general en las cache actuales. se decide en que lugar de la cache se va a alojar el bloque y EN PARALELO se pasa el bloque a la cache y se pasa la palabra al procesador. un registro donde el procesador pone la dirección a la que quiere hacer referencia.Es este diagrama podemos ver la operación de lectura. se chequea si la dirección esta en cache. El flujo seria algo así: el procesador pone la dirección requerida en RA. me imagino que es Registryaddress.

y por medio del bus del sistema se accede a la memoria principal. quiere decir que las referencias en un lapso de tiempo hacen referencia a un conjunto de palabras que están próxima físicamente. Antes de seguir con las características de la cache vamos a ver un poco mas sobre el principio de localidad. si hay un acierto. se coloca la dirección en el buffer de direcciones. luego se transfiere el bloque de da tos a la cache para después esta entregar la palabra al procesador.En este diagrama se ve como estaría dispuesta la cache con sus lineas de conexión. pero durante periodos cortos de tiempo el procesador hace referencia a algun conjunto en particular. en el caso de entregar los datos primero a la cache y luego al procesador. estas agrupaciones cambian. si hay un fallo. Este principio establece que las referencias a memoria tienden a formar agrupaciones. se inhabilitan los dos buffer y el trafico es solo de cache a procesador. el tema es que ese grupo o bloque este en ese periodo de tiempo . La cache se interpone físicamente entre la memoria y el procesador.

por lo cual se va a estar haciendo referencia a un mismo bloque de datos. en general el programa queda confinado a una ventana bastante estrecha de profundidad o nivel de anidamiento de procedimientos. Algunas afirmaciones para ver que la localidad tiene sentido: * Exepto cuando hay instrucciones de salto. Este tema es muy estudiado por su gran importancia en el rendimiento del computador. o sea que la proximainstruccion a captar es la inmediatamente siguiente a la ultima captada. y la ventana de profundidad durante la iteracion va a ser pequeña. se va a hacer referencia a instrucciones contiguas. para tener un tiempo de acceso rapido. . * Es raro tener una seguencia larga initerrumpida de llamadas a procedimientos con sus retornos correspondientes. por lo cual. * En muchos programas se hecen referencias a estruccturas de datos como secuencia de registros o matrices. en muchos casos estas unidades de datos se encuentran en posiciones contiguas de memoria. por lo cual. en un periodo corto de tiempo las referencias tienden a localizarce en unos pocos procedimientos. * La mayoria de las instruccioes iterativas contienen pocas instrucciones.en cache. durante el periodo que dure la iteracion. en general la ejecucion de un programa es secuencial.

Función de correspondencia: .Este gráfico se basa en las llamadas a procedimiento de un programa con su retorno correspondiente. para eso seguiré con las características de las cache. y que sea lo suficientemente grande para que la velocidad de acceso promedio se aproxime a la velocidad de la memoria cache. y la cache depende de eso. se aprecia como durante un periodo apreciable de tiempo se hace referencia a llamadas que contiene una misma ventana. es imposible predecir un tamaño óptimo. Igualmente hay otros motivos que nos restringen a tamaños de cache grandes. ahora para aprovecharlo tendríamos que saber el tamaño óptimo del bloque para pasar de memoria a cache y la cantidad de bloques que tendría que alojar la cache. ya que hay muchos datos interesantes. uno es que cuanto mas grandes las caches. Mas adelante vos a ampliar esta parte. Como se vera que no hay duda de los beneficios de tener en cuenta este principio. Estructura de la cache: Vamos a ver algunos criterios básicos de diseño que nos van a servir para clasificarlas y poder diferenciar las distintas arquitecturas de cache. Diversos estudios han llegado a que el tamaño óptimo estaría entre 1K y 512K palabras. Como las tareas a realizar por el procesador son muy variables. en el se puede observar ventanas de profundidad igual a 5. Tamaño de la cache: Lo ideal seria tener una cache lo suficientemente pequeña para que el costo promedio por bit se aproxime al costo de la memoria principal. mayor puertas implicadas en el direccionamiento de estas. lo cual implica que un mayor el tamaño tiende a cache mas lentas.

La cache consta de C líneas de K palabras cada una. * Asociativa. Pueden utilizarse 3 técnicas de correspondencia: * Directa. En todo momento hay un subconjunto de bloques alojado en la cache. debe haber una función de correspondencia que nos indique a que bloque de memoria principal corresponde cada línea de la cache.La memoria principal consta de hasta 2 elevado a la N palabras direccionables de n bits cada una. estas palabras están agrupadas en M bloques de k palabras cada uno. además que necesitamos elegir que bloque se van a almacenar en la cache. * Asociativa por conjuntos. y como hay menos líneas en la cache que bloques en la memoria principal. .

Correspondencia directa: Es la más simple. cada bloque de la memoria principal se puede alojar solo en una línea específica de la cache. por lo cual la cache esta organizada en 16K líneas de 4 bytes cada una. . direccionable de a byte. para lo cual se necesita una dirección de 24 bits para poder hacer referencia a los 16M de direcciones. Para poder realizar la correspondencia vamos a considerar que la memoria consta de 4M bloques de 4 bytes cada uno.Para explicar las tres técnicas vamos a usar los siguientes elementos: * Cache de 64 Kbyte. * Los datos se transfieren entre memoria y cache en bloques de 4 bytes. * Una memoria principal de 16Mbytes.

este numero de línea se corresponde con la línea de cache. la parte menos significativa identifica la palabra dentro del bloque. la parte mas significativa identifica la etiqueta. y va a la cache y busca en ese mismo numero de línea la etiqueta. cada etiqueta identifica un conjunto de bloques. y el resto identifica la línea dentro de este conjunto de bloques. el sistema toma de la dirección la parte que identifica la línea. . Debido a este tratamiento cuando se necesita buscar una dirección en cache. lo que resta se divide en dos.La función de correspondencia se implementa tomando la dirección de memoria y dividiéndola en tres.

Correspondencia asociativa: Esta correspondencia supera la desventaja de la anterior. . tendría que comparar cada etiqueta de cada linea de la cache hasta encontrar coincidencia o el final de la cache. por lo cual menos costosa pero tiene un problema importante. el costo es mayor. cada posición de la memoria principal se puede alojar solo en una posición de la cache. a los que les corresponde la misma línea dentro de la cache. y al resto de los bits se lo llama etiqueta y sirve para identificar si la linea le corresponde al bloque requerido. simultáneamente. asiendo que baje la tasa de asierto. para que la búsqueda tarde lo mismo que en la correspondencia directa. para lo cual la lógica de la cache interpreta la dirección de memoria de la siguiente forma: los bits menos significativos sirven para identifi car la palabra dentro de la linea. mediante circuitería extra se hace la comparación de todas las etiquetas de las lineas de la cache en paralelo. Es la función más fácil de implementar. En el caso de la asociativa. Como se puede ver. entonces recién ahí se usan los bits menos significativos de la dirección para identificar la palabra dentro de la línea de la cache. En la correspondencia directa la lógica de la cache se dirigía directamente a una linea en particular de la cache. como un bloque de memoria puede alojarse en cualquier linea de la cache. Obviamente al ser mas compleja la circuitería. Este problema se resuelve con la siguiente función de correspondencia. Imaginemos que el procesador hace referencia repetidas veces a dos palabras de bloques de memoria principal diferentes. una sola comparación. porque cada bloque se podía ubicar solo en una linea determinada de la cache. los bloques de la memoria principal se pueden ubicar en cualquier linea de la cache. en ese caso el sistema estaría cambiando continuamente el bloque dentro de la cache.si en esa línea encuentra la etiqueta igual a la etiqueta de la dirección de memoria se ha producido un acierto. La principal desventaja de esta correspondencia es la complejidad de la circuitería requerida.

pero de cualquier conjunto. y se la llama correspondencias asociativa por . Lo mas común son las cache organizadas en 2 conjuntos. la lógica de la cache solo tiene que chequear una posición de cada conjunto.Correspondencia asociativa por conjuntos: Esta correspondencia toma lo bueno de las dos anteriores. la cache se divide en conjuntos y un bloque de memoria principal puede ubicarse solo en una posición.

conjuntos de 2 vías. y además hay que compararla contra menos posiciones de la cache. Las de 4 vías producen una leve mejora y mas vías producen muy poca mejora. la etiqueta a comparar posee menos bits. . una comparación por vía. Como un bloque de memoria principal solo se puede ubicar en un solo conjunto. mejora considerablemente el rendimiento de la asociativa.

.Este gráfico ejemplifica una correspondencia asociativa por conjuntos de 2 vías. un bloque de memoria principal puede ubicarse en una sola ubicación de cualquiera de los dos conjuntos de la cache.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->