Está en la página 1de 22

Según William Stallings una computadora es una máquina digital combinaciones.

Mediante funciones booleanas comparaba


electrónica, programable, para el tratamiento automático de la mensajes (5.000 caracteres por segundo). Tenía más de 2.000 tubos
información, capaz de recibirla, operar sobre ella mediante procesos de vacío. Con dos Colossus se probó el trabajo simultáneo entre
determinados y suministrar resultados. ellas dando lugar a lo que hoy se denomina “computación paralela”.
1946 se construye el primer computador digital de propósito
ORGANIZACIÓN Y FUNCIONAMIENTO: general después de la Z1 alemana. El ENIAC (Electronic Numerical
Se conecta con los datos que recibe, los almacena en algún lugar, Integrator And Computer). Se la podía programar conectando y
tiene una unidad que hace el procesamiento gracias a un programa desconectando cables en tableros. Fue construida para calcular las
que le indica los pasos a seguir y finalmente el resultado de dicho trayectorias de proyectiles llamadas tablas de tiro para la artillería
proceso lo almacena para transferirlo al dispositivo que lo recibe. del ejército USA. Los ingenieros que la construyeron fueron John
Unidad Central de Se encarga de ejecutar el programa Eckert y John Mauchly y fue programada por 6 mujeres (se
Proceso automático que procesa la información utilizaban mujeres para programarla conectando cables para que
(CPU) pareciera que operaban centrales telefónicas en lugar de un
Unidad de Residen programas y datos tanto de ordenador). Poseía más de 17.000 tubos de vacío para realizar hasta
Almacenamiento entrada como de salida 5.000 sumas, 300 multiplicaciones y 200 divisiones por segundo.
Interna Además poseía más de 100.000 otros componentes. Costosa y
Unidad de Sirve para conectarse con los consumidora de mucha energía.
Entrada/Salida dispositivos que ingresan los datos y 1945, un colaborador del proyecto ENIAC llamado John Von
los colectan (llamados periféricos) Neumann presentó y publico la llamada “máquina de programa
almacenado” que llamó computadora, pero algunos creen que tomó
Sistema de Conecta a todas las unidades la idea de Eckert y Mauchly sin consultarles (ellos documentaron
interconexión anteriores entre sí la idea de almacenar programas como base de la máquina EDVAC
que no llegaron a publicar). La máquina de Von Neumann era de
propósito general que podía guardar en la memoria principal tanto
GENERACIÓN 0 (CERO) – DISPOSITIVOS MECÁNICOS Y
datos como instrucciones pudiéndose direccionar a ambas cosas en
ELECTROMECÁNICOS
un solo espacio de memoria. Introduce el concepto de Unidad
Las primeras máquinas de cálculo fueron desarrolladas con sistemas
Aritmético-Lógica (UAL o ALU) y el de Unidad de Control (UC o CU)
mecánicos y electromecánicos comenzando con un simple ábaco.
que permitía la ejecución de
1822 Charles Babbage introduce su primera máquina computadora
instrucciones en secuencia salvo que se indique lo contrario.
mecánica llamada “máquina diferencial”.
1949, Eckert y Mauchly desarrollan la UNIVAC I (UNIVersal
Usaba el método de las diferencias finitas para el cálculo de
Automatic Computer I) ya en la empresa Remington Rand (que hacía
polinomios de 2° grado y estaba compuesta de más de 20.000
máquinas de escribir también...). Costosa y pesada, podía ejecutar
partes y en 1847 desarrolló una versión más pequeña que no llegó a
alrededor de 1.000 cálculos por segundo gracias a sus 5.000 tubos
construirse totalmente.
de vacío. Usaba un tipo de memorias diferentes a las de tubos de
1834 introduce la primera computadora digital mecánica llamada la
vacío. Se utilizó en el censo poblacional de Estados Unidos de
“máquina analítica” que estaba basada en los telares de Joseph
Norteamérica en el año 1951. Incorporó las unidades de entrada y
Jacquard. Estos telares eran configurados a través de tarjetas rígidas
salida de datos por cinta magnética y tarjetas perforadas. Orientada
enganchadas unas con otras formando carreteles. Cada tarjeta
más para uso comercial.
contaba con agujeros de distinto diámetro y en diferentes lugares
1924, la Computer-Tabulating-Recording Company se convierte en
de la tarjeta. El telar “leía” la tarjeta gracias a varillas de metal que
la Internationa Bussiness Machines Corporation, la IBM. En
pasaban por ellos. De esa “lectura” se obtenían los dibujos que el
1952, introduce el IBM 701 como primer calculadora científica
telar produciría. La máquina analítica calculaba cualquier función
comercial, con más de 70 tubos de vacío. Se podía ampliar la
algebraica y almacenaba números. Fracasó por su costo y necesidad
memoria de tubos de vacío añadiendo memoria de núcleos
de tener mucha precisión al construirla.
magnéticos. La 701 tenía una completa familia 7xx con perforadoras
1939 y 1944 se construyó la Mark-I, proyecto realizado entre la IBM
y lectoras de tarjetas, unidades de cinta magnética, impresora,
y la universidad de Harvard. Era mecánica y eléctrica y poseía más
fuente de energía, etc.
de 700.000 engranajes o ruedas. Su concepto estaba basado en la
1954 introduce la IBM 650, primera computadora producida en
máquina analítica de Babbage. Tardaba hasta 10 segundos en
serie que se continuó hasta 1969. Venía con tres unidades, consola,
realizar una cuenta decimal y se la podría programar mediante
alimentación y lector y perforador de tarjetas. Costaba la mitad o
cintas de papel.
menos que la 701. Poseía una memoria auxiliar pequeña pero veloz.
Introdujo en ella instrucciones de coma flotante (mantisas con
PRIMERA GENERACIÓN – TUBOS DE VACÍO Y TABLEROS
exponentes enteros).
1937 y 1942 Clifford Berry y John Atanasoff construyeron la ABC
(Atanasoff-Berry Computer). Primera computadora binaria que
SEGUNDA GENERACIÓN – TRANSISTORES
realizaba los cálculos mediante electrónica, ya no con ruedas.
Desde 1925 se trabajó para reemplazar las válvulas de vacío debido
Estaban separadas las unidades de cálculo y almacenamiento.
a su fragilidad, costo, consumo de energía y espacio que ocupaban.
Introdujo el concepto de almacenamiento primario y secundario. No
1947 los Laboratorios Bell lanzan a la luz el primer transistor,
era de uso general, se la utilizaba para la resolución de sistemas
dispositivo de estado sólido, de bajo consumo, robusto y fabricados
lineales de ecuaciones.
con silicio.
1944 entra en funcionamiento la Colossus Mark I y luego llegaría la
1959 IBM introduce el procesador modelo 1401 con la unidad
Colossus Mark II, computadoras británicas destinadas a descifrar los
lectora y perforadora de tarjetas 1402 y la impresora 1403. Con un
mensajes alemanes encriptados durante la segunda guerra mundial
generados con la maquina “Enigma” que manejaba 150 trillones de
costo mensual de U$D 2.500 fue orientado a negocios medianos y contenía un microprocesador a un teclado y a un monitor. A
pequeños. Poseía 4Kb de memoria expandible a 16Kb. diferencia del kit de la Altair, la Apple I venía ensamblada toda en
1950 se comienza con la construcción de computadores de gran una sola placa madre. Llego a costar U$D 475.- Sus características
tamaño y capacidad llamados “mainframes”. La serie 7000 era eran: CPU Moz Technology 6502 de 1.023 MHz, 4 Kb de memoria
totalmente transistorizada. Trabajaban los formatos de números de RAM, expandible a 8 Kb, puertos para teclado ASCII estándar y para
coma fija y flotante con precisión simple y doble con 36 bits. Los cualquier tipo de monitor o televisor, memoria ROM de 256 Kb,
caracteres alfanuméricos eran de 6 bits. Se utilizaba el formato de soporte de gráficos de 40x24 caracteres, con scrolling automático. A
complemento a 2 para la resta de direcciones de los registros lo largo del tiempo Apple produciría las Apple II, III y Macintosh.
internos. El modelo 7094 de la serie contaba con unidades de cinta 1968 nace Intel Corporation (INTegrated ELectronics) fundada por
magnética para la entrada de información (datos y programas) y Gordon Moore (ley de Moore) y Robert Noyce luego ambos de pasar
para la salida o el resultado del proceso. Este 7094 se lo combinaba por Fairchild Semiconductor. Luego se les sumaría Andy Groove.
con unidades 1401 para mover los datos y programas de las tarjetas 1971 se anuncia el primer microprocesador de la historia, el Intel
perforadas hacia cintas magnéticas que se cargaban en el 7094. Lo 4004, fabricado bajo pedido de una fábrica de calculadoras
mismo, las cintas con los resultados del 7094 se cargaban en una japonesas. Tenía 16 patitas, era de 4 bits y poseía 2.300 transistores.
1401 que las leía e imprimía en su impresora. Utilizaba el programa Su velocidad de reloj era de 740 mil ciclos por segundo o KHz. Poseía
FORTRAN (FORmula TRANslator) como macro ensamblador. la capacidad de utilizar memoria ROM y RAM para procesamiento
de los datos y tenía un registro de desplazamiento para el puerto de
TERCERA GENERACIÓN – CIRCUITOS INTEGRADOS entrada/salida. Fue el primer microprocesador programable del
1959 Jack Kilby en los laboratorios de la Texas Instruments presentó mercado. Hoy en día Intel es una corporación que fabrica no solo
el primer circuito integrado que contaba con 6 transistores en una procesadores de altas prestaciones, sino también placas madre, kits,
misma pastilla de silicio. Sin embargo Robert Noyce perfeccionó el circuitos integrados que acompañan a los microprocesadors
modelo de Kilby y en unos seis meses mejoró el dispositivo (Chipsets), discos de estado sólido, placas de red y wifi, FPGA,
haciéndolo más adecuado para su producción en masa. software entre otros.
Posteriormente Noyce sería uno de los co-fundadores de Intel
Corporation, uno de los más grandes fabricantes de circuitos EL SOFTWARE SISTEMA OPERATIVO
integrados del mundo. Estos circuitos hicieron que los tubos de 1975 en Albuquerque, nace Microsoft de la mano de Bill Gates y
vacío rápidamente queden obsoletos. Sus mayores ventajas son su Paul Allen. Dedicada al desarrollo de software, desarrolla el Altair
bajo costo, su eficiencia y su reducido tamaño. BASIC.
1964 IBM introduce su S/360 (Sistema 360). El éxito de este sistema 1980 Desarrollan un sistema operativo como alternativa al UNIX
fue la posibilidad de adaptar su capacidad de procesamiento al llamado Xenix, que Santa Cruz Operation (SCO) adaptó para
tamaño del negocio del comprador y poder escalar dentro del plataformas importantes. Inventores del slogan “WYSIWYG” (lo que
mismo sistema migrando hacia mayores capacidades. Es ve es lo que obtiene), introducen su primera versión de procesador
considerado como uno de los diseños más influyentes en el futuro de textos Word. 1981 de la mano de su D.O.S. (Disk Operating
de la computación. Era compatible con los 7094 y 1401. Programas System) o sistema operativo de disco. IBM les encarga un sistema
desarrollados en operativo para su computadora personal IBM PC y allí nace el PC-
1401 podían correrse en un 360 mediante emuladores, lo que DOS. Como el contrato con IBM permitía a Microsoft comercializar
permitía preservar la inversión en software de los su DOS, la versión MS-DOS apuntó al mercado de clones o
clientes. Esta familia introdujo el uso de “terminales bobas” para el compatibles con la IBM PC. Esto lo catapultó al principal vendedor
ingreso de datos por parte de un operador. Aparece en ellos el de software de computadores personales. 1985 lanza su primera
concepto de Unidad de Gestión de Memoria (MMU) a partir de su versión de Microsoft Windows para competir con Apple.
unidad llamada “Dynamic Address Translator”. IBM introdujo un 1987 lanza su Windows 2.0 en el cual las ventanas podían solaparse
sistema operativo multitarea que luego se convirtió en el CP/CMS, gráficamente. Esto provocó una demanda de Apple por derechos de
sistema original de máquina virtual que luego se convirtiera en el autor de esta característica gráfica. Por aquellos días Microsoft lanza
VM/CMS. Los sistemas 360 estuvieron activos hasta 1977. Microsoft Works, una plataforma de oficina con procesador de
palabras, planilla de cálculo y otras herramientas para la plataforma
CUARTA GENERACIÓN – MICROPROCESADORES Macintosh.
1975 Micro Instrumentation and Telemetry Systems (MITS) 1987 el profesor Andrew Tanenbaum escribió un sencillo pero a la
introduce el Altair 8800 basado en el procesador Intel 8080. vez completo sistema operativo para publicar su código fuente en
Presentado como parte de un kit para armar y configurar por parte un apéndice de su libro de Sistemas Operativos. Adoptó el nombre
del cliente. Es considerado como el primer equipo que inicia la era de Minix y simulaba un sistema UNIX en gran parte. Linus Torvalds
de la computación personal. Bill Gates y Paul Allen escribieron el decidió reescribirlo para que usara las características avanzadas del
lenguaje de programación de esta máquina llamado Altair BASIC. Intel 80386 como ser el uso de memoria virtual. Esta versión se
Ambos luego fundarían Microsoft Corporation. Este Altair 8800 tuvo popularizó en Internet y cientos de colaboradores por todo el
un éxito inmediato, pero luego fue sometido a la competencia de mundo escribieron todo tipo de drivers (gestores de dispositivos)
otro computador equipado con el procesador 8080 y esto causó que para el nuevo sistema operativo. Este nuevo sistema, conocido
MITS saliera del mercado. Su bus denominado S-100 fue adoptado como Linux, se convertía en el clon de UNIX más completo para
rápidamente por el mercado. Utilizaba para la conexión de sus 5 computadoras personales. El uso de programas GNU (compatibles
placas un modelo de bus que era común para todas que luego se con UNIX y libres de licencias comerciales), dio al Linux muchas
denominaría “backplane”. aplicaciones y herramientas de desarrollo.
1976 Stephen Wozniak y Steve Jobs presentaron su computador
Apple I fabricado bajo la premisa de conectar una placa que
EL COMPUTADOR posteriores mantienen compatibilidad con las arquitecturas
anteriores!! ¿Esto qué significa? Si en un Xeon o Core ejecuto la
Definición: Dispositivo electrónico que está preparado para realizar instrucción MOV AX,34F2h se hará exitosamente ya que hay
cálculos u operaciones fijadas en un programa o secuencia de compatibilidad binaria con el pasado. Pero, ¿tiene un Xeon o un
instrucciones. Luego, aceptará datos de entrada que tras Core la misma cantidad de registros que el 8086/8088 y el mismo
procesarlos obtendrá resultados o datos de salida que almacenará conjunto de instrucciones? Claro que no, tiene muchísimos más
en algún repositorio. Hay muchos lenguajes para programar un registros en su arquitectura y de muchos más bits. Lo mismo, tiene
ordenador, pero al final todo será traducido a ceros y unos para que muchísimas instrucciones más y de mayor complejidad, pero acepta
puedan ser interpretados y ejecutados por el procesador del las instrucciones de cualquier familia anterior. De esta manera
ordenador. podemos instalar y ejecutar un D.O.S. (Sistema Operativo de Disco)
versión 1.0 tanto en un 8086 como en un Xeon o un Core de última
Hay 4 conceptos clave para entender a los ordenadores: generación. No perderemos nuestra inversión de software. Ambos
procesadores no tienen la misma arquitectura pero los posteriores
Arquitectura de un ordenador mantienen la compatibilidad con la pasada.
Se refiere a todos los atributos del ordenador visibles al
programador. Estos atributos tienen un impacto directo en la Organización de un computador
ejecución de los programas. La organización de un computador se refiere a la interconexión de
Para el caso de un procesador o microprocesador, estos atributos sus unidades operativas necesarias para implementar las
son, por ejemplo, su conjunto de instrucciones, longitud de palabra, especificaciones de su arquitectura.
cantidad de registros, mecanismos de direccionamiento de memoria En el caso de un procesador o microprocesador, estas conexiones
y acceso a los periféricos, etc. entre sus módulos nos hablarán de su organización. Hagamos la
Tomemos el conjunto de instrucciones que el fabricante nos entrega analogía con el organigrama de una empresa o institución. En él
para que podamos interactuar con el procesador del computador. encontraremos las unidades funcionales de compras, ventas,
En él se indica la única forma en que podemos escribir las órdenes, mercadotecnia, producción, recursos humanos, contabilidad,
algoritmos y cálculos que queremos que el procesador realice. finanzas, maestranza, administración, por dar un ejemplo, todas
Como programador del computador, es mandatorio que yo conozca ellas unidas por líneas de dependencia jerárquica o de reporte y
este atributo fundamental que, sin él, no podría realizar los procesos control. Pues bien, es así como se manifiesta la organización de esa
que deseo. empresa. Si tomamos otras veremos quizás que no hay una unidad
La cantidad de bits que se utilizan para procesar los datos en el de producción pero si una de atención al cliente o de despacho
ordenador es fundamental también. Hoy vemos procesadores logístico, por mencionar un ejemplo. Cada empresa tiene su
hogareños de 32 y 64 bits, cantidad de bits que denominaremos organigrama (denotando su organización). Lo mismo ocurre con un
longitud de la palabra del procesador. Los primeros procesadores procesador.
tuvieron longitud de palabra de 4 y 8 bits. Cada procesador tiene una organización diferente, uno tendrá una
En un procesador de estudio como el 8080 de Intel, existen registros unidad de cálculo entera, otro tendrá dos, otro tendrá 4 de punto
que son pequeñas porciones de memoria muy rápidas que están flotante y lo mismo con las unidades de ejecución y otras más.
dentro de la pastilla de silicio del microprocesador. Ellos serán los SI bien, en el ejemplo anterior de la arquitectura, una misma
encargados de albergar operandos y resultados de las operaciones instrucción se puede ejecutar en dos familias de procesadores
que se realicen. diferentes con el mismo éxito, claramente tienen las dos
Necesito como programador saber con cuántos dispongo, cómo se organizaciones internas completamente distintas. Veamos estas dos
utilizan, como los puedo acceder, etc. Tomemos el caso del Intel organizaciones completamente diferentes: 8086 (Von Neumann)
8086/8088, el fabricante nos dice que tiene estos 4 registros AX Core
(Acumulator = Totalizador), BX (Base), CX (Count = Contador) y DX Estructura de un computador
(Data = Datos) que son de 16 bits y se podrán manipular también de La estructura de cualquier sistema se refiere a sus componentes o
a 8 bits; es decir, el AX de 16 bits está compuesto por el AH (AX High módulos. Podremos tomar al ordenador como un todo y ponerlo en
= Byte más significativo de AX) y AL (AX Low = Byte menos el centro rodeado de líneas de interconexión con periféricos
significativo de AX). Lo mismo pasa con BH y BL, CH y CL y DH y DL. (monitor, teclado, mouse, dispositivos de comunicación, etc.)
Hay otros registros que no se pueden manipular de a 1 byte como Dentro del ordenador encontraremos distintos niveles estructurales
ser los de segmento de 16 bits DS, ES, SS y CS; 3 punteros de 16 bits que se detallan a continuación. Todo computador, básicamente
IP, SP y BP; 2 índices de 16 bits SI y DI y un registro F (Flag) de contendrá la siguiente estructura:
banderas. Todo esto es parte de la arquitectura que me permite Compuesto por:
operar desde afuera el procesador. Ahora bien, ¿son estos todos los • Una Unidad Central de Proceso (UCP o Central Processor
registros que posee? Absolutamente no, posee miles o millones de Unit = CPU) encargada del procesamiento de los datos y el
registros internos temporales y de uso propio del ordenador pero control de ejecución de los programas. Los procesadores
que no son visibles desde afuera por lo tanto, no pertenecen a su modernos tienen más de un “Core” o núcleo para el
arquitectura. El programador no puede accederlos ni para leerlos ni procesamiento y ejecución de instrucciones.
alterarlos. En cambio, por ejemplo, el AX fácilmente lo podemos • Una Memoria Principal encargada del almacenamiento de
alterar con la instrucción MOV AX,34F2h escrita en lenguaje los datos y programas.
ensamblador del 8086/088 (se verá en otros módulos). Esta • Una Unidad de Entrada/Salida para la conexión del
instrucción, al ejecutarse, producirá que el contenido del AX sea computador con los periféricos a través de placas o
modificado a 34F2h perdiéndose su valor anterior. unidades que adaptan las señales y temporización internos
Ahora si nos movemos de la familia 80XX a la 80386, 80486, del ordenador con los dispositivos externos (placas de red,
Pentium y posteriores encontraremos que todas las familias de vídeo, de sonido, teclado, etc.).
• Un sistema formal y definido de interconexión entre estas Durante el proyecto ENIAC, John Von Neumann trabajó en el diseño
unidades estructurales llamado Bus. de una máquina cuyo programa estuviera almacenado dentro de su
Sigamos adentrándonos en las unidades estructurales más memoria. Una idea similar fue desarrollada simultáneamente por
importantes. Alan Turing pero el primero en publicar esta idea fue Von Neumann
en su proyecto EDVAC (Electronic Discrete Variable Computer).
Una CPU básica y elemental contendrá la siguiente estructura: Desde 1946 a 1952 se trabajó en el diseño y construcción de un
computador llamado IAS (Institute of Advanced Study) en la
Dentro de ella encontraremos: Universidad de Princeton. Esta máquina fue la base para todos los
• Varios Registros (antes mencionados) de propósito general ordenadores posteriores denominados de propósito general, es
o específico. decir, no están fabricados para una tarea específica (como el
• Una Unidad Aritmético-Lógica para realizar el Colossus), sino que pueden ser reprogramados fácilmente para
procesamiento propiamente dicho. En los procesadores ejecutar diferentes algoritmos de cálculo y proceso.
actuales hay muchas de ellas en un solo chip y de varios La arquitectura de Von Neumann tiene la siguiente estructura que
tipos, enteras, consiste en:
vectoriales, de punto fijo, de punto flotante. • Una Memoria Principal (MP): destinada a almacenar tanto
• Una Unidad de Control encargada de la ejecución de los instrucciones de programas como
programas. • datos, ya sea de entrada para la ejecución de los programas
• Un sistema de interconexión propio de cada o de salida producto del procesamiento.
microprocesador. Modelos modernos tienen • Una Unidad Aritmético-Lógica (UAL): encargada del
buses definidos como el Front-Side Bus, Back-Side Bus, entre otros. procesamiento de la información, la que ejecuta el
algoritmo de cálculo y produce los resultados.
3.3. Estructura de una Unidad de Control • Una Unidad de Control (UC): que lee las instrucciones
La sencilla pero completa Unidad de Control contendrá la siguiente almacenadas en la memoria (programa), las interpreta y
estructura: en ella encontraremos: causa que se ejecuten.
• Toda la Lógica Secuencial que permite la ejecución de • Unidades de Entrada y Salida (UES): destinadas a efectuar
micro-tareas dentro de cada instrucción. la conexión con los dispositivos externos (periféricos) y
• Una Memoria de Control que contiene todos los 0 y 1 que controlada por la Unidad de Control.
se convertirán en señales eléctricas que serán distribuidas
dentro de todo el procesador e incluso hacia el exterior.
• Una serie de registros temporales, decodificadores, Esta estructura básica del ordenador de Von Neumann podemos
multiplexores que implementarán el secuenciamiento de observarla en casi todos los ordenadores actuales. En esta
las micro-tareas para la ejecución de cada instrucción. arquitectura, la palabra del procesador (cantidad de bits que opera
A lo largo del tiempo, las estructuras internas de un procesador se simultáneamente) era de 40 bits. En los 40 bits se acomodaban 2
han potenciado y especializado. Aquí vemos un ejemplo del instrucciones de 20 bits. Cada una de ellas poseía un código de
procesador PowerPC G5: operación de 8 bits (orden propiamente dicha) y los restantes 12
En este procesador, por ejemplo podemos ver dos ALU de números bits contenían la dirección del operando en memoria. La memoria
enteros y dos de punto flotante, diferentes niveles de memoria era de 1.000 palabras.
caché, por ejemplo. La Unidad de Control buscaba las instrucciones en la memoria y las
ejecutaba de a una por una. Para la ejecución, se utilizarán los
FUNCIÓN DE UN COMPUTADOR llamados registros para almacenar temporalmente los datos y
La función de cualquier componente indica que operación realiza o códigos de operación. Algunos de estos registros son:
para que se utiliza o está destinado. En el caso del computador
general, las funciones básicas de todo ordenador son las siguientes: • MBR (Memory Buffer Register): Contiene los datos a ser
MOVER - ALMACENAR - PROCESAR - CONTROLAR guardados en memoria o enviados a la Unidad de Entradas
Encontraremos movimientos de datos (MOVER) desde el exterior al y Salidas.
ordenador a través de los periféricos conectados a sus respectivas • MAR (Memory Address Register): Contiene la dirección en
Unidades de Entrada/Salida. También se moverán datos desde la donde serán guardados los datos en la memoria.
Memoria Principal a la Unidad Central de Proceso y viceversa. • IR (Instruction Register): Contiene los 8 bits del código de
El almacenamiento de datos (ALMACENAR) ocurre cuando el operación a ser ejecutado.
procesador interactúa con la Memoria Principal grabándola o • PC (Program Cunter): Contiene la dirección de memoria en
leyéndola. donde se encuentra la próxima “pareja” de instrucciones a
Existen otros medios de almacenamiento como unidades de disco ejecutar.
flexible, rígido, pen drives, etc. • AC (Accumulator): Utilizado para guardar temporalmente el
El procesamiento de los datos (PROCESAR) se da en la Unidad resultado de una operación realizada por la UAL.
Central de Proceso o CPU. En ella se ejecutan los programas y
algoritmos requeridos a través de instrucciones en código binario. 1. La máquina IAS operaba ejecutando una instrucción detrás
Por último el CONTROL de todo el flujo de datos y ejecución de de la otra en forma repetitiva en lo que se llamó el Ciclo de
instrucciones es la función más importante de un ordenador. Todo Instrucción. Cada ciclo consistía en dos sub-ciclos, uno para
se basará en unidades que controlan la ejecución de los programas cada código de operación en la palabra de 40 bits. Esta
generando todas las señales eléctricas necesarias para tal fin. máquina poseía un total de 21 instrucciones (o códigos de
4. ARQUITECTURA DE VON NEUMANN operación) distintas agrupadas en las siguientes categorías:
2. Transferencias de datos: mueven data entre la memoria y por los chips de memoria, basándose en dispositivos de
la ALU y entre los registros almacenamiento secundario como discos rígidos.
3. Saltos incondicionales: Un programa o conjunto de 2. CONCEPTO, CARACTERÍSTICAS, JERARQUÍA
instrucciones se va ejecutando normalmente una detrás de La memoria de un ordenador está definida como una unidad de
la otra en forma ordenada (la primera, luego la segunda, almacenamiento de datos, ceros y unos. Algunos de estos
luego la tercera y así). Sin embargo existen situaciones en dispositivos retendrán dicha información aunque se los desconecte
que se necesita repetir ciertas instrucciones o continuar de su fuente de energía. Estas memorias se implementan
con la ejecución de la próxima instrucción fuera del orden físicamente mediante dispositivos de estado sólido encapsulados en
normal. Estas instrucciones modificaban el curso de circuitos integrados también llamados “chips”.
ejecución de las instrucciones sin condición alguna. Estos dispositivos están organizados en “p” filas de “n” bits o celdas
• Saltos condicionales: En este grupo de instrucciones, el de memoria. En cada celda se guardará un “0” o un “1”.
salto a otra porción del código para continuar la ejecución Sus características principales son:
depende del cumplimiento (o no) de una condición, como • Capacidad de almacenamiento: expresada en bits, bytes,
por ejemplo si un registro es cero. Ante estas condiciones kilobytes, megabytes y otros múltiplos. Da idea de la
planteadas podemos decir que la unidad de ejecución cantidad de datos que puede almacenar en un solo chip.
tomara la decisión de saltar o no. • Tiempos de acceso: define cuánto tiempo requiere el
• Aritméticas: Operaciones que se llevan a cabo en la UAL dispositivo para realizar una lectura, escritura o cualquier
(suma, resta, multiplicación, etc.) otra tarea adicional (borrarse por completo,
• Modificadoras de direccionamiento: Permiten calcular una mantenimiento de los datos a escribir, etc.).
dirección de memoria lo que hace realmente muy flexible • Volatilidad de sus datos: se refiere a la permanencia de los datos
para la programación de direcciones dentro del ordenador. que almacena gracias a estar conectada a una fuente de energía o
Todas estas instrucciones serán ejecutadas en más de un paso, es sin necesidad de ella. La que pierden todos sus datos al quitarles la
decir, se requerirán varias operaciones, pasos o micro-tareas para energía se denominan volátiles y las que los preservan sin necesidad
completar una instrucción. Para cada una de ellas podrán de energía de denominan no volátiles.
necesitarse diferente cantidad de estas operaciones. Por ejemplo, • Presentación o encapsulamiento: las memorias vienen en distintos
una multiplicación necesitaba 39 micro-tareas antes de terminarse. encapsulamientos y formas de interconexión con las placas madres
Es de hacerse notar que esta máquina era totalmente asincrónica, o circuitos impresos ya sea a través de montaje superficial o con
es decir, su operación no estaba atada o basada en un reloj. Cada zócalos de fijación. Algunos ejemplos son:
instrucción se ejecutaba cuando se terminaba la anterior. 2.3. Jerarquía de memorias
4.1. Evolución de la máquina de Von Neumann En el siguiente cuadro podremos ver los diferentes tipos de
A lo largo de los subsiguientes años, los ordenadores se hicieron memoria más importantes y su relación entre ellas en función de su
más pequeños y sus unidades estructurales fueron evolucionando. velocidad, costo y capacidad de almacenamiento:
El tratamiento de los dispositivos periféricos cambió y hoy el
direccionamiento de las unidades de entrada/salida se ha 3. BI-ESTABLES Y REGISTROS. DESPLAZAMIENTO Y ROTACIÓN
simplificado a tal punto que su mecanismo es similar al del Bi-estables o Flip-flops
direccionamiento de la memoria principal. Son dispositivos que almacenan 1 bit. Se los denomina bi-estables
Asimismo, las interconexiones entre las distintas unidades fue porque pueden tener dos estados, “0” o “1”. Están constituidos por
especializándose y reagrupándose dando como resultado un sistema un flip- flop de tipo “D”, dispositivo que presenta el menor tiempo
de interconexión de diferentes buses según su función. de acceso. Este dispositivo implementa una función lógica
También fue incorporándose memorias no volátiles (ROM) para secuencial ya que el valor que toma su señal de salida no solo
proporcionar las instrucciones necesarias para el encendido del depende de las variables de entrada sino que también de su estado
ordenador. anterior.
Los modernos ordenadores ya no son asincrónicos sino que son Por eso, el flip-flop no es un circuito lógico combinacional, es
sincrónicos con una señal de “CLOCK” o reloj que llega a todas las secuencial.
unidades para establecer dicho sincronismo. Esa señal se encuentra Sus señales de entrada son D, CLK, SET y CLR. Sus señales de salida
dentro de las líneas de interconexión de control, ya que en general son Q y ˜Q.
esta señal es provista por el procesador o UCP. Este dispositivo es volátil, es decir, si se le quita la energía se pierde
En la siguiente figura podemos visualizar lo antes mencionado: el dato almacenado.
Tiene dos formas de operación:
MEMORIAS FÍSICAS • Forma sincrónica: para que almacene un dato (“0” o “1”) se
Son el componente de la unidad estructural denominada Memoria deberán utilizar dos señales de entrada que son la D y la CLK. En la
Principal (MP). Interactúa con la UCP y las UES a través de los buses entrada D, se colocará el valor que se quiera almacenar o mantener
del sistema. Esta memoria es de lecto-escritura y alojará tanto datos en el flip-flop. En la entrada CLK (o también CLOCK) se aplicará un
como instrucciones siguiendo el modelo de Von Neumann. pulso ascendente positivo que hará de “disparo” para que el flip-flop
Ordenadores modernos poseen una memoria de solo lectura (ROM) tome una muestra de la señal D y la presente en la salida Q. La salida
en donde se alojan los programas de inicialización del ordenador al Q solo cambiará ante un flanco ascendente de la señal CLK. SI
tiempo de encendido. hacemos la analogía con una cámara de fotos, el pulso en CLK
Memoria Caché, pequeña porción de memoria física muy rápida presiona el disparador y el flip-flop toma una foto de la entrada D y
interpuesta entre la UCP y la Memoria Principal. la presenta en la salida Q. Mientras no haya un pulso de disparo en
Para finalizar, el concepto de Memoria Virtual se tratará en otros CLK, la señal Q permanecerá inalterada (no cambiará).
módulos, brinda al procesador un espacio de memoria principal de • Forma asincrónica: no hará falta un pulso de sincronismo para que
trabajo mucho mayor que la capacidad física existente compuesta se almacene un dato (“0” o “1”). Se deberán utilizar dos señales de
entrada que son la SET (setup o establecer) y CLR (clear o borrar). La
señal o valor que esté presente en la entrada D no será tenido en Nótese en fondo amarillo el valor cargado asincrónicamente antes
cuenta. Si queremos que se almacene un “0” (que Q = 0) tendremos de comenzar con el desplazamiento. Podemos ver que aquí también
que darle los siguientes valores a las señales: SET = 0, CLR = 1. En que con 3 pulsos de CLK hemos desplazado todos los bits del mismo
cambio si queremos almacenar un “1” (que Q = 1) tendremos que (+ultimo bit con fondo verde).
darle los siguientes valores a las señales: SET = 1, CLR = 0.
Podemos observar que hay dos posibilidades más de combinar 3.4. Registros de rotación a derecha e izquierda (Rotate Register)
valores en SET y CLR. Estos son: En la configuración de desplazamiento a derecha, si conectamos la
- SET = 0, CLR = 0 → Con esta combinación, se indica que el flip-flop entrada serie con la salida serie obtendremos el siguiente dispositivo
trabaje en forma sincrónica que constantemente, a cada pulso de CLK, rotará sus bits a derecha.
- SET = 1, CLR = 1 → Combinación prohibida (no permitida) Análogamente podremos construir uno que rote a izquierda. En 4
3.2. Registros pulsos de CLK, volvemos a tener los 4 bits en su posición inicial,
Si concatenamos n flip-flops tipo D, obtendremos un registro, tal listos para volver a rotar.
como podremos ver en nuestra UCP con los nombres AX, BX, CX,
etc. como podemos ver en un diagrama general del procesador Intel
8086: 3.5. SRAM (Static Random-Access Memory)
Estas memorias son fabricadas con celdas construidas con flip-flops
También se lo podrá cargar en forma asincrónica pero no lo hemos o biestables.
diagramado para no complicar el dispositivo. Se disponen “n” flip-flops para formar una palabra de la memoria
Se colocan los valores en D (8 bits) y cuando se registra el pulso que formaría una “fila” de la memoria.
ascendente del CLK, el valor de D queda en Q estable hasta que se Para acceder a cada fila o posición de la memoria SRAM se deberá
detecte otro pulso de CLK. proporcionar una dirección binaria la que luego de hacerla pasar por
3.3. Registros de desplazamiento (Shift Register) un decodificador, determinará cuál de todas las filas de la memoria
Desplazamiento a derecha se está queriendo acceder ya sea para leerla o escribirla.
Si conectamos las salidas Qn con las entradas Dn-1 y en la entrada Un decodificador tiene una entrada codificada de “n” bits (en
Dn colocamos un “0” como se muestra en la figura, haremos que a nuestro caso en binario) y poseerá 2n salidas. En el ejemplo que se
la llegada del cada pulso de CLK, se desplacen todos los valores una muestra, vemos un decodificador de 4 bits de entrada y 16 salidas.
posición hacia la derecha. Esta configuración es un registro de Para cada combinación binaria de entrada se presentará un “1” en
desplazamiento a derecha. una única salida que corresponderá al valor decimal del binario de
Habiendo cargado inicialmente el valor 1011b (4 bits) en el registro entrada. Todas las restantes salidas estarán en “0”. Por ejemplo, si
vemos como se desplazan las cifras binarias a derecha mientras se colocamos 1011b en la entrada, la única salida que tendrá un “1”
inyecta un cero por izquierda. Este procedimiento es el que hemos será la 11d, las restantes serán “0”. Podremos seleccionar 1 de las
mencionado en la división de binarios por su base. En el primer paso 16 posiciones o filas de memoria a través de un código binario de 4
está 1011b = 11d, luego del primer pulso de clock los valores bits. A ese código se lo llama dirección de memoria.
quedan 0101b = 5d para que en el segundo pulso quede 0010b = 2d. Las características de las memorias estáticas son:
Es un divisor por la base! • Las más rápidas o mejor performantes con un tiempo de
acceso promedio de 10 ns (10-9 segundos)
Nótese en fondo amarillo el valor cargado asincrónicamente antes • Las de mayor costo por bit
de comenzar con el desplazamiento. Podemos ver que al 3er pulso • Ocupan mayor lugar (menor densidad de integración)
de CLK hemos desplazado todos los bits del mismo (+ultimo bit con • Bajo consumo en estado de reposo. Si se la accede muchas
fondo verde). No son 4 pulsos porque en el tiempo 0 (cero) ya tengo veces, su consumo crece significativamente
el primer bit listo en Q0 para ser tomado o leído.
Estos registros pueden utilizárselos para convertir un dato cargado 4 MEMORIAPRINCIPAL
en paralelo (todos los 4 bits juntos) en datos en serie, obteniendo su 4.1. Celda de memoria dinámica
contenido de a 1 bit por la señal de salida (conversor paralelo-serie). Se fabrican con un transistor MOS FET (Metal-Oxide-Semiconductor
Asimismo, si colocamos los datos de a uno en la señal de entrada y Field-Effect-Transistor) y un capacitor tal como se muestra en la
los hacemos entrar al flip- flop con cada pulso de CLK, al cabo de 4 figura.
ciclos podremos leer el dato de 4 bits completo en paralelo El principio de funcionamiento es el siguiente: Cuando se selecciona
(conversor serie-paralelo) la celda con un “1” en la línea roja, si se coloca un “1” en la línea
Desplazamiento a izquierda azul o bit de dato, el MOS FET conducirá y ese “1” del dato cargará
Si conectamos las salidas Qn con las entradas Dn+1 y en la entrada el capacitor. Este capacitor permanecerá cargado lo que indica que
D0 colocamos un “0” como se muestra en la figura, haremos que a un “1” es almacenado. Cuando se quita la selección de la celda, las
la llegada del cada pulso de CLK, se desplacen todos los valores una cargas quedan atrapadas.
posición hacia la izquierda. Esta configuración es un registro de Si se quiere almacenar un “0”, se lo debe colocar en la línea azul de
desplazamiento a izquierda. bit de dato y eso provocará la descarga completa del capacitor
Habiendo cargado inicialmente el valor 1011b (4 bits) en el registro indicando, que un cero fue guardado.
vemos como se desplazan las cifras binarias a izquierda mientras se El capacitor es un dispositivo especialmente construido para
inyecta un cero por derecha. Este procedimiento es el que hemos almacenar y retener cargas eléctricas, pero este
mencionado en la multiplicación de binarios por su base. En el diminuto capacitor se descarga por si solo rápidamente con lo cual,
primer paso está 0011b = 3d, luego del primer pulso de clock los este tipo de celdas de memoria necesitará un refresco.
valores quedan 0110b = 6d para que en el segundo pulso quede Dicho refresco se trata de un pulso que “reavivará” el “1” que se
1100b = 12d. Es un multiplicador por la base! está descargando en la celda en un intervalo de tiempo muy rápido,
no dejándolo caer. Si el circuito de refresco no detecta carga en el 5. ORDENAMIENTO BIG Y LITTLE ENDIAN
capacitor no lo refresca. Se refrescan o mantienen los “1” solamente
(o sea los capacitores cargados). 5.1. Little Endian
El circuito de refresco es automático y no está gestionado por el Intel utiliza el ordenamiento Little Endian para acomodar los 2 bytes
usuario, lo hace solo la celda. de sus registros de 16 bits del 8086 / 8088 en posiciones de
SI asociamos “n” celdas dinámicas formaremos palabras de una memoria de 1 byte. Si el siguiente registro tiene el valor AX = 1234h,
memoria dinámica denominada DRAM. y debo guardar ese valor en la posición 0100h de la Memoria
Principal, el resultado será que en la 0100h se guardarla el AL = 34h
4.2. DRAM (Dynamic Random-Access Memory) y en la 0101h se guardará el AH = 12h. En la posición de memoria
Estas memorias son las utilizadas para fabricar las Memorias “n” se guarda en LSB (Least Significant Byte) y en la posición “n+1” el
Principales de los sistemas computacionales. Sus características son: MSB (Most Significant Byte).
Las características de las memorias dinámicas son: 5.2. Big Endian
• Las más lentas con un tiempo de acceso promedio de 60 ns Motorola utiliza este ordenamiento para acomodar 2 bytes de sus
(10-9 segundos). Es 6 veces más lenta que la SRAM registros en posiciones de memoria de 1 byte. Si el registro tiene el
• Muy baratas valor 1234h, y debo guardar ese valor en la posición 0100h de la
• Ocupan menor lugar (mayor densidad de integración) Memoria Principal, el resultado será que en la 0100h se guardarla el
permite grandes capacidades de AH = 12h y en la 0101h se guardará el AL = 34h. En la posición de
almacenamiento en muy poco espacio memoria “n” se guarda en MSB (Most Significant Byte) y en la
• Mayor consumo por la necesidad del refresco constante posición “n+1” el LSB (Least Significant Byte).
Se las integra en filas de “n” bits o palabra de la memoria y se las
accede a través de una dirección binaria.
4.3. Banco de Memoria Principal 6. TIPOSDEMEMORIA: ROM, PROM, EPROM, EEPROM, FLASH 6.1.
La Memoria Principal está conectada a los buses del sistema
(Control, Direcciones, Datos) y está organizada en “n” bits por cada Memorias ROM (Read-Only Memory)
dirección o fila de la memoria→El bus de datos será de “n” bits. Se Son memorias de solo lectura, es decir, durante el proceso de
accede a cada celda a través de una dirección de “p” bits→El bus de fabricación se graban los “0” y “1” correspondientes a cada bit de la
direcciones será de “p” bits pudiendo elegir entre 2p filas distintas matriz de celdas de memoria. En cada celda donde se requiere un
de n bits. La capacidad de la memoria será de 2n*p bits. Si una “0” se coloca 1 diodo (semiconductor que permite el paso de
memoria posee 16 bits de palabra y es direccionada con 10 bits corriente en un sentido y bloque el paso de corriente en el otro).
tendrá una capacidad de 210 * 16 bits = 1024 * 16 bits = 2 Kbytes. Estas memorias no son volátiles.

Como estructura de la Memoria Principal encontramos: 6.2. Memorias PROM (Programable Read-Only Memory)
• Matriz de celdas de memoria: 2p filas por n columnas, en Si bien son memorias de solo lectura, se las puede programar una
cada intersección, una celda de memoria DRAM sola vez. Todas las celdas de memoria PROM están compuertas por
• Decodificador: Discrimina la dirección ingresada a la un diodo en serie con un fusible (metal conductor de dimensiones
memoria seleccionando una única fila o palabra de la mucho más pequeñas que los cables que une para que se funda
matriz cuando la corriente que circula por el supera un límite, protegiendo
• Lógica de control: Circuitería que proveerá todas las el resto del circuito).
señales necesarias para la lectura o escritura de una Estas memorias, de fábrica vienen con un diodo y su fusible en cada
posición o fila de la matriz. Proveerá la temporización a celda. El usuario al programarla lo que hará es quemar los fusibles
través de la señal de CLK en donde quiere que se almacene un “1”, dejando el diodo
• Transductores: Atenuarán la señal de escritura que llega conectado donde quiere un “0”. Esto se hace con un dispositivo
del exterior para poder interactuar con las celdas DRAM programador especial. Una vez quemado un fusible, no se lo puede
que requieren un nivel menor de señal de la que se recibe restaurar. Se las puede programar una sola vez.
(atenúan el dato a escribir). Asimismo amplificarán la señal Estas memorias no son volátiles.
proveniente de cada celda DRAM que es muy pequeña y no
alcanza para pasarla al bus de dato (amplifican el dato a 6.3. Memorias EPROM (Electrically Programable Read-Only
leer). Memory)
Estas memorias son volátiles por lo tanto requieren de energía Construidas para ser leídas, pueden programarse y volverse a
externa para funcionar y preservar los datos almacenados en ellas. programar las veces que sea necesario. Estas memorias poseen
Al quitar la energía se perderán todos los datos. celdas realizadas con semiconductores que, ante un pulso de una
Las señales de control de la memoria que podemos ver son: alta tensión, atrapan cargas y mantienen esas cargas
• CS (chip select) = Indicador de selección del chip de indefinidamente. Al medir la existencia de cargas atrapadas indicará
memoria para bancos multichip que en esa celda hay un “1”. La ausencia de dichas cargas en una
celda será tomada como un “0” en ella.
• OE (output enable) = habilitación de la señal de salida de
Las cargas atrapadas quedan indefinidamente porque su energía no
los transductores para que esté disponible en el bus de
es suficiente para recombinarse, sin embargo, estas memorias
datos
pueden borrarse a través de la incidencia de una luz ultravioleta en
• WE (write enable) = habilitación para escribir una celda de
el sustrato de la celda. La energía que provee la luz es suficiente
la matriz con el dato recibido en el bus de datos
como para que se recombinen las cargas y desaparezcan, dejando a
• R/W (no read / write) = indicación de operación a realizar
toda la memoria en cero de una sola vez.
sobre la memoria
• CLK (clock) = reloj
Para este procedimiento de borrado total de la memoria, los chips
poseen un ojo o ventana de vidrio que permite el ingreso de la luz En un mismo ciclo accede a dos posiciones de memoria en lugar de
ultravioleta. En condiciones de funcionamiento este ojo se tapa con una sola. Estas memorias poseen las siguientes características:
un parche que no deja pasar ninguna luz. • Trabajan con 2,5V en lugar de los 3,3V de las SDRAM. A
Se las suele utilizar como ROM BIOS (Basic Input-Output System) de menor tensión de trabajo, menos gasto de energía
las placas Madre de los ordenadores. • Trabajan con pipelines o buffer interno de 2 bits (buffer de
Estas memorias no son volátiles. pre-búsqueda) que permite almacenar los datos de 4
direcciones de memoria contiguas. Esta técnica tiene en
6.4. Memorias EEPROM o E2PROM (Electrically Erasable cuenta que un usuario que solicita la posición n, con
Programable Read-Only Memory) altísima probabilidad requerirá la n+1 y luego la n+2 y luego
De similares características funcionales que las EPROM con la la n+3. Por eso, guarda en un buffer esos 4 datos
salvedad que se programan con un pulso eléctrico y se borran con entregando el primero y quedando a la espera de que pida
un pulso eléctrico también (ya no con luz ultravioleta) celda por (muy probablemente) los que siguen. El tiempo que se
celda. Estas memorias no son volátiles. tarda en leer la celda de memoria es mucho mayor que el
que se tarda en leer el buffer de pre-búsqueda.
6.5. Memorias FLASH • El tiempo de acceso no es siempre igual, el primer dato
Derivada de las EEPROM, en este caso se pueden leer y escribir tarda más. Los subsiguientes se obtienen más rápidos
múltiples celdas de memoria simultáneamente. Esto da una mayor mientras estén en el buffer de pre-búsqueda
performance que las EEPROM antes mencionadas. Se emplean en • Velocidades de transferencia desde 200 Mhz hasta 400
las memorias USB. Mhz
Son baratas, rápidas y de muy bajo consumo de operación. Si bien • DIMM de 184 contactos
son memorias no volátiles, el fabricante Toshiba Memorias USB
indica que su durabilidad tiene un límite: Se podrá leer y escribir el 7.3. Memorias DDR2 DRAM (Double Data Rate DRAM versión 2)
contenido de toda la memoria una vez por día durante 27 años. Estas memorias poseen las siguientes características:
Tener cuidado que si se hace esta operación 27 veces por día en • Usadas por primera vez en 1970
lugar de una, la memoria USB tiene garantizado su uso solo por un • Trabajan con 1,8V
año! • Trabajan con pipelines o buffer interno de 4 bits (buffer de
pre-búsqueda) que permite almacenar los datos de 16 direcciones
7. TIPOSDEMEMORIA: SDRAM, DDR de memoria
7.1. Memorias SDRAM (Synchronous Dynamic Random Access contiguas.
Memory)
• Velocidades de transferencia desde 533 Mhz hasta 1 Ghz
Estas memorias DRAM se las puede acceder por bloques de datos,
• DIMM de 240 contactos
es decir, cuando se solicita un dato (por ejemplo 1 byte) de una
7.4. Memorias DDR3 DRAM (Double Data Rate DRAM versión 3)
dirección de memoria para ser leída, la memoria SDRAM dispone de
Estas memorias poseen las siguientes características:
un bloque completo (por ejemplo 8 bytes) compuesto por el
• Usadas por primera vez en 2010
dato solicitado y otros más. Este bloque puede leerse o escribirse en
• Trabajan con 1,5V
la modalidad de ráfaga o burst. Para ello se debe trabajar en forma
• Trabajan con pipelines o buffer interno de 8 bits
sincronizada con la memoria para estas transferencias en modo de
ráfaga (de allí la “S” de Synchronous). • Velocidades de transferencia desde 1,6 Ghz hasta 2 Ghz
Si queremos escribir una ráfaga de datos en una SDRAM, tendremos • DIMM de 240 contactos
que: 7.5. Memorias DDR4 DRAM (Double Data Rate DRAM versión 4)
• Indicar la cantidad de palabras a escribir Estas memorias poseen las siguientes características:
• Indicar la dirección de memoria de inicio de la escritura • Usadas por primera vez en 2014
• Transferir los datos uno detrás del otro sin necesidad de • Trabajan con 1,05V
indicar a qué dirección va cada • Trabajan con pipelines o buffer interno de 8 bits
uno de ellos (posee un incrementador de direcciones interno) • Velocidades de transferencia desde 2,13 Mhz hasta 4,26
Estas memorias eran muy frecuentes el Computadores Personales Ghz
de los años ’90. • DIMM de 288 contactos

7.2. Memorias DDR DRAM (Double Data Rate DRAM) 8. LATENCIAYANCHODEBANDA - Latencia de una memoria
Estas memorias son fabricadas con la tecnología SDRAM pero tiene Es la suma de todos los tiempos que se tardan para accederla. Aquí
una característica particular. Las memorias SDRAM completan sus denotamos algunos tiempos característicos de todas las memorias:
operaciones de lectura y escritura en el flanco ascendente del CLK
(es decir, si el reloj hace “tic” – “tac”, hace sus tareas en los “tics” • Access Time (Tiempo de Acceso) = Desde que se realiza un
del reloj). pedido de lectura hasta que el mismo queda satisfecho
Las memorias DDR realizan operaciones tanto en el flanco • Cycle Time (Tiempo de Ciclo) = Desde que se realiza un
ascendente como en el descendente del CLK (tanto en el “tic” como pedido hasta que se puede realizar el siguiente.
en el “tac”). Esto duplica la tasa de • Write Time (Tiempo de Escritura) = Al escribir un dato,
transferencia de información directamente. tanto el dato y la dirección donde se escribirá deben estar
presentes antes que llegue la señal de escritura (Setup
Time) y deben mantenerse luego que se retire la señal de
escritura (Hold Time)
“Miss” o “Fallo”. En caso de un hit, el contenido de la posición
Si la memoria tiene varios bancos de chips dispuestos cada uno de buscada estará disponible rápidamente. En el caso del Miss, la
ellos en filas y columnas dentro de un “tablero” y, a su vez tiene circuitería adicional buscará la dirección requerida en la MP y
múltiples tableros dispuestos en forma tridimensional, existirán copiará su contenido en la memoria Caché (junto con otras
varias latencias como ser de acceso por columna de chips en un direcciones más). Esta circuitería que hemos mencionado estará
tablero, por fila de chips en un tablero, para activar un tablero y representada en la UGM o Unidad de Gestión de Memoria (MMU –
desactivarlo. Memory Management Unit) que veremos más adelante. En forma
general, la UCP solicitará a la UGM acceder a una dirección de MP y
En las memorias modernas, los chips de memoria o módulos están ésta se encargará de devolverle el dato de donde lo obtenga más
dispuestos en forma de matriz, colocándose cada módulo ne una fila rápido.
y columna formando un tablero de módulos. La UGM al recibir un pedido de la UCP dispara la realización de dos
Pero no solo hay un tablero en. una memoria moderna, habrá más tareas simultáneas: a) buscar la dirección en Caché y b) preparar una
de uno dispuestos en forma tridimensional: lectura de un bloque de direcciones de MP que contiene la dirección
requerida. Si detecta un Hit, se desestima el ciclo de lectura en MP.
En estas memorias se incorpora algunas latencias más: Si hay Miss, se completa el ciclo de lectura habiendo adelantado
• CAS = Tiempo que se tarda la memoria en elegir una tiempo lanzándolo de antemano.
columna de un tablero 2. ORGANIZACIÓN DE LA MEMORIA CACHÉ
• RAS = Tiempo que se tarda la memoria en elegir una fila de Existirán varios métodos para organizar cómo se copian los bloques
un tablero nuevos de MP en caché y como se liberan boques existentes en
• ACTIVE: Tiempo que tarda la memoria en activar un tablero caché para que otros nuevos ocupen ese espacio.
• PRECHARGE: indica el tiempo que tarda la memoria en Encontraremos 3 escenarios en la organización de la memoria caché
desactivar un tablero también llamados funciones de correspondencia. Estos son
• Asociativo, Mapeo Directo y Asociativo de N vías o de conjuntos.
8.2. Ancho de banda de una memoria Para establecer estos mecanismos diremos:
Es la máxima cantidad de datos que el procesador puede leer o • Nuestra UCP posee “m” líneas o bits en el bus de
escribir en la memoria por unidad de tiempo, también conocida direcciones, con lo cual es capaz de direccionar 2m
como la velocidad o tasa de transferencia de la memoria. Se expresa posiciones distintas de la MP.
generalmente en bytes/seg. • Dividiremos la MP en bloques de longitud fija de “b”
palabras.
MEMORIA VIRTUAL - MEMORIACACHÉ - 1.1. Definición • La MP poseerá una cantidad de bloques q = 2m / b
El sistema UCPÛ MP presenta un cuello de botella en lo que a • Todos los valores que se adopten serán potencias de 2
velocidad de transferencia de datos se refiere: la memoria principal
es mucho más lenta que el procesador. Tomaremos como ejemplo:
Por esto, el concepto de la memoria caché se basa en colocar una • m = 12 bits – desde 000h hasta FFFh
pequeña cantidad de memoria de alta velocidad entre la UCP y la • b = 4 palabras
MP, cercana al procesador, cuyo propósito es mantener en ella una • q = 212 / 4 = 4.096 / 4 = 1.024 bloques
copia de pequeñas porciones de MP que están siendo usadas por la • Cada palabra es de 1 byte = 8 bits
UCP. Nuestra memoria Caché será de:
1.2. Principio de funcionamiento • 8 renglones, posiciones, filas o líneas
Existe una propiedad llamada de localidad de referencia o localidad
referencial que va a ser la clave para la aplicación del concepto de 2.1. Organización Asociativa
memoria Caché. Esta propiedad se ha demostrado empíricamente y
manifiesta que Esta organización define que cualquier bloque de la MP puede
• un programa que ha accedido recientemente a ubicarse en cualquier renglón o posición de la memoria Caché. Sea
determinadas palabras de la MP, con altísima probabilidad un programa a ejecutar que ha sido cargado en la MP en las
las va a volver a acceder en un futuro inmediato. direcciones 35 a 42, o sea desde la 023h hasta la 02Ah. La UGM
• un programa que ha accedido recientemente a deberá calcular en qué bloque está la dirección 35.
determinadas palabras de la MP, con altísima probabilidad
va a acceder a las próximas palabras. Para ello efectuará
Es decir, una y otra vez la UCP va a acceder las mismas posiciones de • Dirección inicial requerida / b = 35 / 4 = 8 y resto 3
memoria y todas ellas estarán ubicadas en forma contigua. Se dice
que un programa ejecuta el 90% de su tiempo el 10% de sus Es decir que la primera dirección estará ubicada en el bloque 8 pero
instrucciones. desplazada 3 posiciones desde el principio del bloque.
En base a esto, tener esa porción de MP que tanto se accede una y La dirección final estará ubicada en:
otra vez dentro de una memoria rápida y cercana a la UCP, resultará
altísimamente eficiente. Se “cachearán” bloques de memoria de • Dirección final requerida / b = 42 / 4 = 10 y resto 2
varias direcciones contiguas”.
En la figura podemos ver el programa ubicado en MP, resaltada su
Cuando la UCP requiere acceder a una dirección de memoria “X”, primera y última instrucción
existirá circuitería adicional que buscará si esa dirección junto con su junto con el byte de contenido de cada dirección que ocupa el
contenido está en la memoria Caché. De ser así, estaremos en programa (en Hexadecimal).
presencia de un “Hit” o “Acierto”. En caso de que no esté, será un La correspondencia asociativa organiza la memoria en 3 columnas:
• Validez: de 1 bit. Indicará si el contenido de ese bloque Para obtener la etiqueta, tendremos que hacer una cuenta más que
fue alterado en caché pero no fue sincronizado o en el caso asociativo. Este será:
modificado en MP aún Para la dirección inicial 35, será:
• Bloque: Número de bloque de MP que está en caché • Dirección inicial requerida / b = 35 / 4 = 8 y resto 3
• Valor: las 4 palabras del bloque que está en caché • Número de bloque / cantidad de renglones de caché = 8
Se muestra con “haches” valores en hexa que y con “b” valores de 1 / 8 = 1 y resto 0
bit que no son de interés aún. A medida que se vayan utilizando las Esto significa que el bloque 8 estará en el renglón de caché 0 y la
posiciones de caché se irán completando con los valores etiqueta es 1 (marcado a continuación).
correspondientes. Nótese las posiciones 00, 01, 10 y 11 para las Veremos con los circuitos detallados que en este caso no
columnas que se encuentran a una distancia de 0, 1, 2 y 3 palabras hace falta buscar el bloque en caché.
del principio del bloque. En número de renglón se obtiene directamente y al
La UCP iniciará el pedido de acceso a la dirección 35 = 023h cuyo comparar las etiquetas se determina si hay Hit o Miss.
bloque es el 8. La circuitería de la UGM recorrerá los 8 renglones de
la caché buscando si el contenido de la columna “BLOQUE” es = 2.3. Asociativo por conjuntos o de N vías
008h. Como recién se inicia el sistema, dará un Miss. Es una solución de compromiso entre ambas estrategias. Toma lo
El bloque 8 de MP será copiado en la caché en una ráfaga. mejor de ambas para dar una mejor proporción de aciertos.
Quedando de la siguiente manera: Básicamente consiste en definir tamaño de bloques de MP de igual
Como el desplazamiento estaba dado por el resto del cálculo del cantidad de palabras que cada paquete de direcciones o vía de
número de bloque, en este caso era 3. Se el dato solicitado por la memoria caché. De esa manera cada dirección relativa del bloque va
UCP es el 40h. a acomodarse en el mismo número de renglón de una vía. Lo que se
Satisfecha la UCP con el dato, ahora desea leer la posición 35 de MP denomina “conjunto” es a la unión de todos los renglones iguales de
que solicita a la UGM. Esta posición estará en: caché que están en cada vía.
• Dirección requerida / b = 36 / 4 = 9 y resto 0 à Bloque 9
desplazamiento 0 Es decir, la dirección 0 del bloque 0 puede ir en el renglón 0 de
Buscando en caché, la UGM recorre los 8 renglones evaluando si el cualquiera de las vías. Entonces, con mi dirección absoluta puedo
bloque = 009 sin éxito: es determinar cuál es la dirección relativa en el bloque a la que
un Miss con lo cual se lee el bloque 9 de MP y se lo coloca en pertenece.
cualquier renglón de caché. Con esa dirección relativa voy a elegir el renglón de las vías de caché
Luego continuará con la 37 en la que ya no habrá Miss, sino Hit, no (en forma directa como el mapeo directo) y con el número de
siendo necesaria la lectura en MP. bloque tendría que buscar en que vía lo guardé, para ello uso una
Lo mismo ocurrirá con las direcciones 38 y 39 entregando los datos memoria asociativa.
00h y B8h respectivamente.
El circuito real que divide, busca, compara y entrega el dato es el 3. POLÍTICAS DE ESCRITURA EN RAM
siguiente. Se ejemplifica para la dirección 025h. Todas las acciones de escritura en una posición de memoria
Si en lugar de buscar recorriendo todas las filas de la caché, principal que se encuentra alojada en memoria caché, siempre se
colocamos una memoria asociativa que guarda “Bloque buscado” -> realizará en caché para mantener el objetivo de
“Renglón de caché”, cuando le pidamos a la memoria que nos diga si utilizar esta memoria como primera fuente de información rápida y
el bloque buscado ya está guardado en ella, si lo está, nos dirá en actualizada.
qué renglón en forma directa. Sin embargo, al modificarse una posición de memoria principal,
Quedando un circuito más encontraremos dos alternativas posibles para no perder la
reducido y eficiente. consistencia MP ßà Caché. Estas son escritura directa y
retrograbado.
2. Mapeo Directo
Esta organización define que un bloque de la MP puede ubicarse en 3.1. Escritura directa
un único renglón o posición de la memoria caché. En esta estrategia también llamada write-trough, si se modifica una
La correspondencia o mapeo directo organiza la memoria en 3 posición de memoria en caché, simultáneamente se modifica su
columnas: correspondiente valor en la Memoria Principal. Esto traerá como
• Validez: igual que en el método asociativo ventaja que la Memoria Principal y la Memoria Cache siempre
• Etiqueta: Resuelve cuál de todos los posibles bloques estarán sincronizadas y los datos de un bloque de Memoria Principal
ocupa cada renglón serán idénticos a ese mismo bloque alojado en caché.
• Valor: igual que en el método asociativo Este método es beneficioso para aplicaciones de lectura intensiva ya
que al ser una aplicación de este tipo, solo contadas veces se
En nuestro ejemplo de 1.024 bloques posibles de MP y 8 renglones escribirá o alterará una posición de memoria. Cabe señalar que al
o filas de caché, el mapeo directo propone lo siguiente: hacer esta modificación se tardará el tiempo que demora escribir en
Como en cada renglón de caché solo 1 bloque puede estar a la vez, la Memoria Principal, sin poder aprovechar el uso de caché. No se
por ejemplo, en el renglón 4 ¿Cómo podré saber si está alojado el utiliza el bit de validación en esta estrategia.
bloque 4 o el 12 o el 20 o el 1.020? 3.2. Retrograbado
La etiqueta resuelve esta necesidad. Este proceso de sincronización MP ßà Caché también llamado write-
¡Esto es, si en el renglón 3 está la etiqueta 4 significa que los valores back se basa en que toda escritura de pociones de MP que están en
que contiene son del bloque 35! (sombreado). caché, se haga únicamente en caché. De esta manera hay una falta
de sincronización de bloques de MP residentes en caché con sus
respectivos datos en MP. Para tener en cuenta qué bloques han sido
alterados en caché (y aún no en MP), se utiliza el ya visto bit de física de nuestros chips de MP? ¿Podremos copiar en MP una parte
validación o también llamado dirty bit (bit de suciedad). Un bloque de esa gran memoria para trabajarla?
residente en Caché diremos que está “sucio” si su contenido difiere Este concepto es el de la Memoria Virtual (MV), espacio de memoria
del contenido del mismo bloque existente en MP. mucho mayor que la capacidad de direccionamiento de memoria
La política de retrograbado consiste en sincronizar los bloques física del procesador. Esta memoria o espacio de memoria reside en
“sucios” en el momento en que se los necesite desalojar de caché los medios de almacenamiento secundario como los discos rígidos.
para que ingrese un nuevo bloque solicitado. Cuando esta situación Ahora entonces, tendremos que administrar la memoria virtual
ocurre, la existencia de un “1” en el Bit de Validación indicará que dividiéndola en partes que viajarán a ser copiadas en la MP. Estas
antes de desalojar el bloque de caché, hay que hacer una escritura partes se denominan páginas de la MV.
del bloque de MP con el contenido del bloque que está en caché
dejando así ambos espacios de memoria sincronizados. 6. CONCEPTO DE SEGMENTACIÓN Y PAGINACIÓN
Existen varias políticas de desalojo de bloques de caché para el
ingreso de nuevos, entre las que podemos citar, entre otros: Típicamente un Sistema Operativo que trabaja con MV va a asignar a
• FIFO – First-In-First-Out = El primer bloque que ingresó a cache cada programa a ejecutar un espacio de esa memoria virtual. Ese
será en primero que desalojaré si no tengo más espacio. Se espacio contiguo se denomina SEGMENTO. Ese segmento contendrá
necesitará información adicional en los bloques de caché que un número entero de páginas, pudiendo desperdiciarse cierta
permita detectar el primero ingresado de todos los existentes en cantidad de memoria de la última página. Entonces ese segmento se
cada instante. dividirá en páginas que se copiarán en MP.
• LRU – Least-Recently-Used = Se desalojará el “menos usado
recientemente”. Para determinar cuál es, se deberán contabilizar En este punto, el sistema operativo contará con un espacio de
para cada bloque las veces que ha sido accedido y cuál fue la fecha- memoria principal mucho mayor que lo que existe en los chips de
hora (timestamp) del último acceso. memoria RAM del ordenador. Este espacio está definido en el disco
• LFU – Least-Frequently-Used = Se desaloja el bloque que tiene rígido. Cada posición o dirección de memoria requerida deberá
más tiempo sin usarse. Podrán catalogarse como “usado” un bloque ubicarse en la MV, identificar el segmento y su página. Se buscará
ya sea si fue leído y/o alterado. dicha página en MP y si no existe nos encontraremos con una falla
• RANDOM – Aleatoria = Aleatoriamente se elegirá cuál bloque de página o PAGE FAULT. En cambio si esa página de ese segmento
desalojar. está en MP, será un éxito o PAGE HIT.
Cuando se determina el bloque a desalojar en función de la política
de desalojo que se está utilizando y si la estrategia es de Para encontrar la dirección virtual en la MP se deberá realizar una
retrograbado, la MMU analizará el Bit de Validez y si es un “1” traducción que luego será guardada en tablas de páginas virtuales
actualizará la MP. administrada por el sistema operativo.
Si incorporamos luego lo visto con Memoria Caché, cada página real
4. NIVELES JERÁRQUICOS DE MEMORIA CACHÉ en MP será dividida en k bloques y esos bloques serán los que se
Extendiendo el concepto de colocar una porción de memoria copiarán y gestionarán en caché.
pequeña entre la MP y la UCP, podremos colocar otros cachés de En la gestión de segmentos paginados, el sistema operativo posee
cachés entre ellos. Estos diferentes cachés se los ubica en distintos una tabla de segmentos residente en la MP. Cada una de las
NIVELES. entradas de esta tabla de segmentos apuntará a una tabla de
4.1. Memoria caché de Nivel 1 (L1) páginas. En ella tendrá una entrada por cada página del segmento.
Es el más cercano a la UCP. En la actualidad este nivel consta de dos Estas tablas de segmento apuntarán a un Marco o porción de MP.
partes, un caché L1 de instrucciones otro caché L1 de datos. En Podemos esquematizar en forma general este conjunto de
otros módulos veremos la ventaja de esta decisión de dividir este traducciones desde la Dirección Virtual hasta la dirección física que
nivel de caché. En principio podemos decir que se asemejaría al se encuentra en la MP. Recordemos que si se trabaja con memoria
modelo de Harvard en la organización de este nivel, datos e chaché tendremos una traducción más que es de la dirección física
instrucciones en diferentes espacios físicos de memoria. al renglón de cache. Esta última traducción la realiza el hardware.
4.2. Memoria caché de Nivel 2 (L2) Podemos ver que en cada entrada de las tablas hay direcciones y
Otra cantidad distinta a la de L1 y aún mayor se colocará entre el L1 atributos. En forma general, estos atributos indicarán si la página
y la MP, es el caché L2. En este caso no estará dividida en dos partes está modificada o no, permisos de lectura y/o acceso, longitud del
como la L1 pero si, en procesadores multi-núcleo (o multi-core) segmento, etc.
puede ser dedicada o compartida.
4.3. Memoria caché de Nivel 3 (L3) 7. UNIDAD DE GESTIÓN DE MEMORIA (UGM)
En procesadores de múltiples núcleos poseen un nivel más de caché La Unidad de Gestión de Memoria UGM (o Memory Management
entre L2 y la MP. Este nivel es el L3 y en general es un nivel que Unit – MMU) es la encargada de gestionar todos los accesos a
comparten todos los L2 de los núcleos. memoria requeridos por el o los núcleos o procesadores.
En la figura se puede ver cómo se conectan los distintos niveles de Este importante componente, en algunos ordenadores se disponía
caché y como a través del puente norte (Northbirdge) se conectan fuera del procesador. En los ordenadores modernos, la MMU está
con la MP. dentro de la misma pastilla del procesador. Desarrolla las siguientes
5. MEMORIAVIRTUAL funciones que se detallan a continuación:
De la misma forma en que el concepto de memoria caché se centra
en contar con una porción de la MP dentro de una pequeña 7.1. Traducción de direcciones virtuales
memoria cercana al procesador para mejorar la performance del Utiliza una memoria asociativa que guarda las últimas “m”
sistema, podemos extender este concepto y ... ¿Podremos contar traducciones llamada TLB (Translation Lookaside Buffer) o también
con un espacio de memoria mucho más grande que la capacidad llamada Buffer de Traducciones Adelantadas. Busca en la TLB si la
página virtual fue traducida anteriormente. Puede ocurrir lo estará dada por la fórmula 2n , siendo n la cantidad de variables
siguiente: binarias. La tabla de verdad tendrá la siguiente forma:
• Page fault (Fallo de página): calcula el número de página
real a partir del número de página virtual en hardware.
Guarda esta traducción en la TLB
• Page hit (Éxito de página): obtiene el número de página
real o marco guardado

7.2. Protección de memoria


Gestiona espacios de memoria que el sistema operativo reserva
exclusivamente para cada proceso (o programa). Si un proceso no
autorizado intenta acceder a una dirección protegida, la MMU
devuelve un “page fault”. La protección puede implementarse a
través de direcciones reales (IBM System360) o virtuales (Intel
Itanium, HP PA Risk).
7.3. Arbitraje de los bus
Provee un protocolo de comunicaciones para que no se produzcan
colisiones de datos cuando más de un dispositivo quiere escribir un
dato en el Data bus.
7.4. Selección de bancos de memoria
En modelos más antiguos, permitía extender la capacidad de
direccionamiento de una CPU.
Si una CPU tiene 16 bits de Address y 1 byte de Data -> Direcciona
64 Kb. Si guardo en un Rango de representación números enteros binarios positivos =
registro los “primeros” 16 bits de Address y luego tomo unos [0,...,2n-1].
“segundos” 16 bits, al Rango de representación de SyM
concatenar ambas cantidades, ¡¡podré direccionar con 32 bits!! ->
Direccionaré 4 Gb Será el siguiente [-3,...,0,...,+3]. El mayor negativo será -3d y el
mayor positivo +3d. En forma general, será [-(2n-1-1),...,0,...,+(2n-1-
7.5. Control del caché 1)].
Se encarga de mantener la correspondencia entre todos los niveles 3.2. Convenio de Complemento a 1 para la representación de
de caché existentes (L1, L2 y L3) con la memoria principal, sobre binarios enteros con signo (Ca1)
todo en procesadores multi-núcleo en donde un bloque puede estar Definiremos complemento a 1 de un dígito binario (Ca1) de la
siendo accedido por más de un núcleo (está en varios L1, L2 y en el siguiente forma • ElCa1de0=1
único L3). Implementa las políticas de escritura de bloques de caché • ElCa1de1=0
en MP. El complemento a 1 de un número binario estará dado por el
complemento a 1 de cada uno de
UNIDAD ARTIMÉTICO – LÓGICA 1. sus bits o dígitos binarios. El Ca1 de 0100111b = 1011000b.
Será la encargada del procesamiento propiamente dicho, la que Según el convenio, las combinaciones positivas que siempre
resolverá los algoritmos, la que hará las cuentas como sumas, restas, empiezan con 0 se representan de la misma manera que en Signo y
multiplicaciones, divisiones, desplazamientos de bits, etc. Magnitud. Las combinaciones negativas se representarán con el Ca1
2. ÁLGEBRA DE BOOLE 2.1. de las positivas de igual magnitud. Vemos el ejemplo en 3 bits:
Introducción George Boole en el siglo XIX estableció una serie de
postulados en donde intentando representar la forma humana de • La combinación +2d se representa 010b (igual que en SyM)
pensamiento lógico. A estos postulados se los denominó Álgebra de
Boole. Estos postulados son la base de los circuitos digitales que a su • La combinación -2d se representará a partir del Ca1 de la
vez son la base de los sistemas computaciones con ordenadores. combinación +2d, es decir
Estos postulados se basan en la teoría de conjunto que no • +2d = 010b
abordaremos en este documento. • Ca1 de +2d = 101b
2.2. Variables Booleanas • -2d = 101b
Las variables utilizadas en el álgebra de Boole o variables booleanas
son variables binarias, es decir, solo podrán tomar los valores “0” y Obsérvese que si un número está representado por este convenio
“1”. de Ca1, si comienza con 1 será siempre un número negativo. Ahora,
2.3. Tabla de verdad para saber su valor negativo, tendremos que hacer el Ca1 del mismo
Construir la tabla de verdad (o tabla de la verdad) de una función y obtendremos su valor positivo al que le cambiaremos luego el
Booleana es desarrollar todas las combinaciones posibles que signo. Por ejemplo, ¿Cuál es el valor decimal del número 1001011b
existen con sus variables Booleanas de entrada y, para cada una de sabiendo que está representado con el convenio de Ca1?
dichas combinaciones, indicar el valor de la (o las) función (o salida • ¿Empieza con 1? → Es negativo!
si es un circuito).
• ¿Qué valor negativo? → No lo sé, debo hacer el Ca1 de
Sean A y B Booleanas, podremos obtener 4 combinaciones posibles
1001011b
que será 00, 01, 10 y 11. La cantidad de combinaciones posibles
• Ca1(1001011b) = 0110100b
• 0110100b = +(1*22 +1*24 +1*25)=+(4+16+32)=+52d
(elcerorojonose contempla para la magnitud) Rango de representación del Ex2n-1
• Entonces 1001011b = -52d Rango de representación del En forma general, será [-(2n-1) ,...,0,...,+(2n-1-1)]. Es el
Ca1 mismo que el del Ca2.
Será el siguiente [-3,...,0,...,+3]. En forma general, será [-(2n-1-1)
,...,0,...,+(2n-1-1)]. Si mantenemos una cantidad siempre igual de dígitos, a mayor
3.3. Convenio de Complemento a 2 para la representación de rango de representación, menor precisión. Si manteniendo la
binarios enteros con precisión quiero ampliar el rango de representación, tendré que
signo (Ca2) agregar dígitos en la parte entera de la cifra (a la izquierda de la
El complemento a 2 de un número binario estará dado su coma). En cambio, si quiero mantener el rango de representación y
complemento a 1 + 1, es decir, al Ca1 del número binario le aumentar la precisión, tendré que agregar dígitos a la parte
sumamos 1 en binario. fraccionaria (a la derecha de la coma).
• El Ca2 de 0100111b = 1011000b + 1b = 1011001b
Según el convenio, las combinaciones positivas que siempre Para convertir un número decimal con punto fijo en binario,
empiezan con 0 se representan de la misma manera que en Signo y tendremos que realizar las conversiones de las partes entera y
Magnitud. Las combinaciones negativas se representarán con el Ca2 fraccionaria por separado. La parte entera se hará dividiendo por 2
de las positivas de igual magnitud. Vemos el ejemplo en 3 bits: sucesivamente hasta llegar a cociente 0 (como vimos
• La combinación +2d se representa 010b (igual que en SyM) anteriormente), en cambio la parte fraccionaria se resolverá
• La combinación -2d se representará a partir del Ca2 de la multiplicando el número decimal 0,XXXXXXd * 2 sucesivamente.
combinación +2d, es decir Cuando un resultado da 0,XXXXXXd significa que se coloca un 0 en la
o +2d = 010b parte fraccionaria binaria y se prosigue con la siguiente
o Ca1 de +2d = 101b multiplicación * 2. Si da 1,XXXXXXd se coloca un uno en la parte
o Ca2de+2d =101b +1b =110b o -2d=110b fraccionaria binaria y se prosigue la multiplicación pero con
Nuestra tabla de combinaciones posibles con 3 bits quedará de la 0,XXXXXXd no con 0,XXXXXXd. Veamos el siguiente ejemplo:
siguiente forma: Pasar a binario 4,828125d

Rango de representación de Ca2


En forma general, será [-(2n-1) ,.0,...,+(2n-1-1)].

Convenio de Exceso 2n-1 para la representación de binarios enteros


con signo (Ex2n-1)

Aplicando un exceso específico al sistema binario positivo,


podremos obtener un sistema de representación en Exceso que nos
evita el uso de 1 bit de signo. Por ejemplo, en un sistema de 3 bits
con signo, defino un exceso de 2n-1 = 23-1 = 4. Este exceso es el que le
debo sumar a cualquier combinación a representar antes de pasarla
a binario. Es decir:
• Si quiero representar el -4d → -4d + 4d = +0d → En binario Podemos encontrar números binarios periódicos como ser el pasaje
sin signo es 000b de 0,2d a binario:
• Si quiero representar el -3d → -3d + 4d = +1d → En binario
sin signo es 001b
• Si quiero representar el -2d → -2d + 4d = +2d → En binario
sin signo es 010b
• Si quiero representar el -1d → -1d + 4d = +3d → En binario
sin signo es 011b
• Si quiero representar el +0d → +0d + 4d = +4d → En binario
sin signo es 100b
• Si quiero representar el +1d → +1d + 4d = +5d → En binario
sin signo es 101b
• Si quiero representar el +2d → +2d + 4d = +6d → En binario
sin signo es 110b
• Si quiero representar el +3d → +3d + 4d = +7d → En binario
Representación binaria con punto fijo con signo
sin signo es 111b
Hasta ahora hemos visto números binarios con punto fijo positivos.
Utilizaremos únicamente el sistema de Complemento a 2 (Ca2) para
Para pasar el valor binario excedido se le deberá restar el
la representación de estos números. La regla es exactamente igual
exceso que le fue agregado para su representación. Notar
que para enteros: para los positivos los representaremos como
que, en este sistema, no hay “bit de signo”, son todas
Signo y Magnitud y para los negativos mediante el convenio de Ca2.
combinaciones binarias (con exceso) enteras positivas. Por
Tal como vimos, se utilizará el MSB como bit de signo siendo 0 = “+”
ejemplo, la combinación 011b = +3d conteniendo el
y 1 = “–”. Veamos los siguientes ejemplos.
exceso. Si se lo quitamos +3d – 4d = -1d→011b = -1d.
Convertir a Binario el número +5,75d:
Redondeo de parte fraccionaria
Existe otra técnica que permite mejorar el error de representación
llamada redondeo. Para ello se redondea la cifra binaria a la
combinación más próxima (con menor diferencia) representable;
luego se aplica el truncamiento. Esto reduce el error un orden de
magnitud; es decir, para “m” dígitos fraccionarios, el máximo error
de representación es < 2-m, en cambio con el redondeo se hace < 2-
(m+1)
, la mitad del anterior.

Representación binaria con coma o punto flotante


Para el caso de los números reales, tendremos que trabajar en
notación exponencial o científica. Veamos este ejemplo del sistema
decimal:

Todos los números reales pueden reescribirse en esta notación.


Notación decimal científica normalizada
Esta notación exige se noten las cifras decimales de la siguiente
manera: • N=±f*10±e

Con mantisa “f” tal que 0,1d ≤ f < 1d y “e” = exponente entero con
signo.
La notación exponencial normalizada para el sistema binario será:
• N=±f*2±e
• Con mantisa “f” tal que 0,1b ≤ f < 1b y “e” = exponente entero con
signo

Veamos un ejemplo binario:


• N = +1011,1b = +11,5d
• N = +0,10111b * 24 (normalizado)
• N = +(0,5 + 0,125 + 0,0625 + 0,03125) * 16
• N = +0,71875 * 16 = +11,5d

Norma IEEE 754


Truncamiento de parte fraccionaria Características:
En el caso en que la cantidad de dígitos fraccionarios sea fija, se • Establece 4 formatos para la notación científica de
completarán los dígitos existentes y se descartarán los que no punto flotante
puedan acomodarse, llamando a esto truncamiento. Veamos el • Precisión simple (32 bits)
ejemplo. Supongamos tener un byte y la configuración es de 3 • Precisión simple extendida (≥ 43 bits), no muy
enteros y 5 fraccionarios. Nuestro número tendrá la forma de d7 d6 usada
d5, d4 d3 d2 d1 d0. Si el número es +0,2d tendremos: • Precisión doble (64 bits)
• Precisión doble extendida (80 bits)

Precisión Simple
Para representar un número binario en este formato se deberán
cumplir con las siguientes premisas:
• Obtener su representación normalizada

• La normalización que requiere la norma es de la forma:

• N=±m*2±e
• Con1,0b ≤m<10b ye=exponenteentero
• Nótesequemesmayoroiguala1d ymenorque2d
• Debido a este cambio de normalización se gana un
orden de magnitud en la precisión sin el agregado
de bits: el primer 1 después de la coma está
implícito en la notación (gano un bit)
• El exponente deberá estar “sesgado” o desplazado
mediante el agregado de un sesgo = 2n-1-1, siendo n la
cantidad de bits del exponente
• Se le quita 1 al sesgo para cubrir situaciones especiales
• Se llamará mantisa a la parte fraccionaria del número
después del “1,”
• Se llamará exponente al exponente normalizado luego de
haberle sumado el sesgo
• El sesgo para Precisión Simple es 2n-1-1 = 28-1-1 = 27-1 =
128 – 1 = 127
• Se llamará signo de la mantisa al signo del número (no del
exponente)
• El “máscara” o formato será
• b0 a b22 (23 bits) para la mantisa
• b23 a b30 (8 bits) para el exponente o b31 para el
signo de la mantisa
• De esta forma quedará confirmado un número
binario de 32 bits = 4 bytes = cifras hexadecimales

Rango de representación IEEE 754 Precisión Simple


La norma define como exponente máximo el valor FEh (254d)
dejando el FFh (255d) para excepciones (infinitos, números no
reales). El exponente normalizado más pequeño es el 01h (1d)
dejando el 00h (0d) para cifras desnormalizadas (los número
representados no son del tipo 1,xxxx....b sino 0,xxxx.....b). Esto
último incrementa el rango de representación cercano a cero. El +0
se representa 00000000h (todos ceros) y el –0 se representa
80000000h es decir, se representan ceros signados.

El rango de representación de números normalizados es

(2-126 hasta 2+127) = [1,1111.. x 2-126 hasta 1,1111 x 2 +127]

CÓDIGOS
Un código es un conjunto de reglas prestablecidas para la
transmisión de información que deben ser respetadas tanto por el
emisor como por el receptor, de otra forma, no se habrá
establecido la transferencia de información o comunicación entre
ambos puntos.
En computación hay muchos códigos estándares impuestos por código es válido y de paridad par,
fabricantes de hardware o adoptados por el mundo para el no podremos detectar que hubo
intercambio de información. Estos son algunos de ellos. un error.
El código de paridad que
Código ASCII (American Standard Code for Information Intercharge) incorpora un solo bit de paridad
Desarrollado en los Estados Unidos de Norteamérica. Inicialmente sirve para detectar el error de
cubría los más de 90 símbolos necesarios para presentar en pantalla hasta 1 bit es una transmisión,
el alfabeto, los números, signos de puntuación y matemáticos, nada más. Pero esto tiene un
paréntesis, etc. Este código tenía 7 bits (27 = 128 combinaciones costo: antes transmitía 4 bits por
distintas). Se le agregó un cero a la izquierda para que el código combinación, ahora 5. Esto
fuera de 8 bits = 1 byte; con lo cual las combinaciones posibles de redunda en un 25% de overhead
este “ASCII Standard” iban desde 00000000b hasta 0111111b o sea ya que para transmitir la misma
00h a 7Fh. información necesito (a igual
velocidad de transmisión) un
25% más de tiempo.
Ese overhead vale se repaga ya que los errores de 1 bit son muy
frecuentes en la transmisión de datos, pero dos bits
simultáneamente no son frecuentes.

Paridad y códigos de paridad


Paridad de una combinación binaria
Diremos que una combinación binaria es de paridad par si contiene
una cantidad par de unos. En cambio diremos que es de paridad
impar si tiene una cantidad impar de unos. Veamos estos ejemplos:
• 01001011b = Paridad par (4 unos)
• 00001101b = Paridad impar (3 unos)
• 00000000b = Paridad par (0 unos)
Códigos de paridad
Si nosotros transmitiéramos combinaciones binarias todas de la
misma paridad, si al recibirlas la paridad no se mantiene, podremos
decir que existe, al menos, un error que ocurrió durante dicha
transmisión. Para hacer que cualquier código binario sea de paridad
par o impar solo debemos agregar 1 bit llamado bit de paridad. Al
adicionar dicho bit a una combinación existente podremos darle el
valor “0” ó “1” según convenga en función del código que queramos
obtener. Veamos en el ejemplo como podemos transformar el BCD
Natural en un código de paridad par.

Podemos observar como todas las combinaciones del código nuevo


tienen una cantidad par de unos. Si al recibir una combinación del
lado del receptor que fuese “10110”, ¿qué podemos decir? Su
paridad no es par → Hay error! Es así ya que el b0 cambió de 1 a 0 y
eso se detectó. Pero si cambian dos bits, como ser “10100”, el
UNIDAD ARITMÉTICO-LÓGICA
Será la encargada del procesamiento propiamente dicho, la que
resolverá los algoritmos, la que hará las cuentas como sumas, restas,
multiplicaciones, divisiones, desplazamientos de bits, etc.

ÁLGEBRA DE BOOLE
George Boole en el siglo XIX estableció una serie de postulados en
donde intentando representar la forma humana de pensamiento
lógico. A estos postulados se los denominó Álgebra de Boole. Estos
postulados son la base de los circuitos digitales que a su vez son la
base de los sistemas computaciones con ordenadores. Estos
postulados se basan en la teoría de conjunto que no abordaremos
en este documento.
Variables Booleanas
Las variables utilizadas en el álgebra de Boole o variables booleanas
son variables binarias, es decir, solo podrán tomar los valores “0” y
“1”.
Tabla de verdad
Construir la tabla de verdad (o tabla de la verdad) de una función
Booleana es desarrollar todas las combinaciones posibles que
existen con sus variables Booleanas de entrada y, para cada una de
dichas combinaciones, indicar el valor de la (o las) función (o salida si
es un circuito). Sean A y B Booleanas, podremos obtener 4
combinaciones posibles que será 00, 01, 10 y 11. La cantidad de
combinaciones posibles estará dada por la fórmula 2n, siendo n la
cantidad de variables binarias.
SUMADOR DE 4 BITS:

SOBREFLUJO Estaremos en presencia de un sobreflujo (u overflow)


cuando se supera el límite máximo del rango de representación en
sistemas en donde existe una cantidad finita de dígitos. En el
sistema de números binarios sin signo, donde su rango de
representación es [0 ≤ x ≤ 2n1], si trabajamos con 3 bits, el rango de
representación será [0 ≤ x ≤ +7].
Si quisiéramos representar el +8 o +12 con 3 bits, no podremos
porque esas cifras caen fuera del rango de representación, lo que
indica que estamos en presencia de un sobreflujo. Lo mismo
ocurrirá con los números signados.
En el sistema de Ca2 por ejemplo, su rango de representación para 3
bits es [– 4 ≤ x ≤ +3]. Si quisiéramos representar el +5 o el – 7,
Z = f (A, B, C) = (A.B’.C’) + (A.B’.C) + (A.B.C) estaríamos nuevamente en presencia de un sobreflujo.

BAJOFLUJO Estaremos en presencia de un bajoflujo (o underflow)


UNIDAD ARITMÉTICA DE ENTEROS: SUMADOR/RESTADOR BINARIO cuando la cifra a representar es tan pequeña que la precisión del
La suma aritmética de un bit está implementada por la compuerta sistema no lo permite. En este caso, las UAL que detectan esta
XOR, pero si sumamos cifras de más de un bit, necesitamos situación, aproximan el resultado a 0 (cero).
considera el “me llevo uno” o acarreo de la suma de 1 bit. Es decir, Estas situaciones ocurrirán en la representación de números reales,
una celda sumadora simple tendrá dos entradas binarias A y B y no en enteros. En el sistema de números binarios positivos con
como salida la suma aritmética S y el acarreo (“me llevo uno”) punto fijo, si trabajamos con 3 bits enteros y 2 decimales la situación
llamado carry nominado con Cy. Desarrollaremos una celda será la siguiente:
sumadora simple de 1 bit llamada Celda0. • El rango de representación par 3 enteros y 3 decimales positivos
es [0,…,+7,96875]
• El número más pequeño después del cero es 0,001b = +0,125d
• Por lo tanto, si el resultado de una operación es
0,031265d = 0,00001b, menor a 0,125d, la UAL aproximará por
bajoflujo y resultará 0 (cero).

ACARREO:
• Bandera de acarreo: CF o carry flag, indicará con un “1” su existió
un acarreo en el MSBit que no se puede almacenar por superarse los
8 bits. Si es “0”, no hubo acarreo.
• Bandera de sobreflujo: OF u overflow flag: indicará con un “1” si el
Ahora bien, si queremos hacer un sumador de n bits, tendremos que resultado cae fuera de rango para números con signo. Las
usar n de estas celdas, una para cada columna de las cifras binarias. situaciones en que siempre habrá sobreflujo en una suma es cuando
El problema de esta celda es que suma un bit de A y uno de B pero si sumo dos positivos y su resultado es negativo o cuando sumo dos
me llevaba “1” de la columna anterior, no tengo como sumarlo. De negativos y su resultado es positivo.
allí, debemos completar esta celda convirtiéndola en una celda • Bandera de signo: SF o sign flag: indicará con un “1” que el
sumadora completa, que considera el carry de la etapa anterior, resultado tiene el bit de signo en 1, es decir, es negativo. Indicará
quedándonos lo siguiente: con un “0” que es positivo. Siempre dentro de los números con
signo.

En este caso, si consideramos números enteros binarios sin signo,


estamos sumando 203 + 65 que debiera resultar 268. Este resultado
supera el rango de representación que es 255 con lo cual, el
resultado es erróneo, existe sobreflujo (de hecho, el resultado es 12
en la UAL…). La UAL nos indica que existe acarreo que con el CF = 1
que indicará al programador que, si él está trabajando con enteros
sin signo, estará en presencia de sobreflujo.
Si el sistema aplicado por el programador fuera enteros con signo,
estaríamos sumando –53 + 65 lo que resulta +12, resultado que
indica la UAL. Con lo cual, no hay sobreflujo si consideramos Preguntas:
números con signo y la bandera OF = 0. La memoria virtual se divide en segmentos de longitud variable.
La bandera de signo SF = 0 indica que el resultado es positivo, si lo Estos a su vez, se dividen en páginas de longitud fija. Las páginas se
consideramos con signo. alojan en memoria ppal. Éstas se dividen en bloques de longitud fija que
luego van a la memoria caché.

Capaz de recibir información, operar sobre ella mediante procesos


determinados y suministrar los resultados de tales operaciones.
En la representacion de punto flotante, la ocurrencia de un bajoflujo
significa que el valor sera tomado como 0.

En este caso, si consideramos números enteros binarios sin signo, Si el digito menos significativo de una combinación binaria es “-n”, la
estamos sumando 75 + 65 que debiera resultar 140. Este resultado distancia entre dos combinaciones binarias es 2 -n
no supera el rango de representación que es 255 con lo cual, el Con una cantidad fija de bits, si deseo aumentar el tango de representación
resultado es 140 y no existe sobreflujo. La UAL nos indica que no disminuiré la precision
existe acarreo con el CF = 0, lo que indicará al programador que, si él
está trabajando con enteros sin signo, el resultado es correcto. Rango de representacion de CA2: [- 2 (n-1); + (2(n-1) - 1)] es el mismo que
el de exceso 2 n-1
Si el sistema aplicado por el programador fuera enteros con signo,
4bits = 1 nibble
estaríamos sumando +75 + 65 lo que resulta +140, resultado que
cae fuera del rango de representación con 8 bits de [- 128,…,+127]. A las memorias EEPROM se las puede borrar y grabar de forma eléctrica
La UAL indica que hay sobreflujo si consideramos números con signo
y la bandera OF = 1. Las memorias DRAM son más lentas que las SRAM
La bandera de signo SF = 1 indica que el resultado es negativo, si lo
consideramos con signo. En memorias PROM cada celda consta de un diodo en serie con un fusible
que se quema al momento de grabarlas o programarlas

LAS memorias DRAM requieren pulso de refresco

Estructura de unidad de control: logica, secuencia, memo de control,


unidad de control de registros y decodificadores.

En este caso, si consideramos números enteros binarios sin signo, ordenador: unidad de entrada salida, cpu, memoria ppal buses
estamos sumando 11 + 65 que debiera resultar 76. Este resultado
estructura CPU: Unidad aritmetico logica, registros, unidad de control,
no supera el rango de representación que es 255 con lo cual el sistema de interconexion
resultado es 76 y no existe sobreflujo. La UAL nos indica que no
existe acarreo con el CF = 0, el resultado es correcto. en una operacion binaria de cifras con signo hay overflow si hay acarreo

Si el sistema aplicado por el programador fuera enteros con signo,


estaríamos sumando +11 + 65 lo que resulta +76. La UAL indica que
no hay sobreflujo y la bandera OF = 0. podemos almacenar un 0 en flipflop si ponemos un 1 en la D y un pulso en CLK

La bandera de signo SF = 0 indica que el resultado es positivo, si lo


sin signo + CF = 1: overflow
consideramos con signo.
con signo + OF = 1: overflow
con signo + OF = 0: NO overflow
si sumo 2 positivos= negativo o viceversa: overflow
sin signo + CF=1: overflow
sin signo + CF=0: No overflow
con signo + CF=0: no overflow
con signo + CF=1: overflow
El bus de datos y direcciones comparten los mismos pines (AD0 a AD15)
esaa caracterisitica es de buses multiplexados.

La instruccion SUB AX, 7 tiene direccionamiento inmediato


La ins MOV AX. [BP + 200h] tiene redirecccionamiento relativo a la base
con desplazamiento
La instrucción NOP no hacer nada tiene direccionameinto implicito

El puerto de DATOS es de lectura y escritura


ESTADOs es de lectura los pesos de los digitos neg son -1/2 -1/4 -1/8 -1/16
COntrol es de escritura cantidad fija de bits si deseo aumentar el rango de representacion,
disminuire la precision
Problemas de control -> predictores de saltos punto flotante, bajoflujo significa que el valor sera tomado como 0
de datos-> forwarding
estructura-> incorporar unidades

También podría gustarte