Sie sind auf Seite 1von 18

UNIVERSIDAD DE PANAMA

FACULTAD DE INFORMATICA, ELECTRONICA Y COMUNICACION

Departamento de Electrnica y Comunicacin o o

Notas de Arquitectura de Computadores

Ing. Rafael Asprilla r.asprilla@citicup.org

30 de agosto de 2011

Indice general
1. Introduccin o 1.0.1. Procesador . . . . . . . . . . 1.0.2. Memoria . . . . . . . . . . . . 1.1. Clasicacin de los computadores . . o 1.1.1. Conjunto de instrucciones . . 1.1.2. Arquitectura del computador 2. Arquitectura Von Neumann 2.1. Espacios de memoria . . . . . . . 2.2. Arquitectura 8085 . . . . . . . . 2.2.1. Registros . . . . . . . . . 2.2.2. Conjunto de Instrucciones 2.3. Puertos de Entrada/Salida (E/S) 3. Arquitectura Harvard 4. Capa de abstraccin de hardware o 4.1. Controladores seriales . . . . . . 4.2. Controladores paralelos . . . . . 4.3. Temporizadores . . . . . . . . . . 4.4. Interrupciones . . . . . . . . . . . 4.5. DMA . . . . . . . . . . . . . . . 3 4 6 7 7 9 11 12 13 13 13 13 15 16 16 16 16 16 16 17 17 17 17

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

5. Mquinas Virtuales a 5.1. Mquina de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 5.2. Mquina de pila (Stack Machine) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 5.3. Mquina de registros (Register-based Machine) . . . . . . . . . . . . . . . . . . . . . a

Cap tulo 1

Introduccin o
La tecnolog de computadoras ha progresado mucho desde la aparicin de los computadores en a o la dcada del cuarenta. En la actualidad los computadores poseen capacidades similares a los e supercomputadores, por un bajo costo. Se hace hoy, ms que nunca, necesario el saber utilizar estos a dispositivos para ser competitivo. En el caso de aquellos que generan aplicaciones en computadoras se hace necesario ir ms all, es necesario conocer su funcionamiento desde lo bsico. En este cap a a a tulo estaremos deniendo los conceptos bsicos necesarios para entender la arquitectura bsica de los a a computadores, sus componentes y clasicacin. Luego revisaremos en detalle las arquitecturas de o computadora bsicas que existen y como podemos crear cdigo fuente para controlar sus funciones. a o Segn [AU96]: u Un computador es una mquina que procesa la informacin para obtener unos resultados. a o Mientras que para [Man94]: La computadora digital es un sistema digital que ejecuta diversas tareas de computacin. o En general un computador es un conjunto de varios dispositivos electrnicos, que se renen para o u formar un sistema complejo que permite el procesamiento de informacin. Podr o amos decir que una computadora es una mquina digital que realiza diferentes funciones siguiendo un conjunto de a instrucciones dadas, predenidas y almacenadas o capturadas al momento de ser ejecutadas. Cuando describimos un computador generalmente hacemos una distincin a la arquitectura utilizada o y a la organizacin del mismo. La arquitectura de computadores, segn [Sta98], se reere a los o u atributos de un sistema que son visibles a un programador, ejemplo de esto son el conjunto de instrucciones, el nmero de bits utilizados para representar los varios tipos de datos, los mecanismos u de E/S y las tcnicas de direccionamiento. Mientras que la organizacin del computador se reere e o a los detalles del hardware que son transparentes al programador, por ejemplo las seales de n control, interfaces entre el computador y sus perifricos y la tecnolog de memoria utilizada. Este e a concepto no es inexacto ya que existen diferentes tipos de arquitecturas de hardware y el autor slo hace referencia a la organizacin a nivel de mquina o procesador, pero existen estructuras o o a preestablecidas que deben utilizarse en el diseo de computadores, ejemplos de arquitecturas de n hardware se encuentran la arquitectura Von Neumann y la arquitectura Harvard . Es necesario entonces realizar una distincin entre los trminos arquitectura de software , arquitectura de o e hardware y la organizacin del hardware . En este folleto estaremos rerindonos a cada concepto o e con esta misma notacin para realizar la distincin correspondiente. o o

CAP ITULO 1. INTRODUCCION Adems haremos una relacin entre el hardware y a o el software , relacionando el mundo f sico (variables f sicas como voltaje o tiempo) y el mundo digital (variables binarias y ciclos de mquina). Estudiaremos a los componentes bsicos del computador y las dos a arquitecturas bsicas que se utilizan en la totalidad de a los computadores actualmente e incluso en las mquinas a virtuales. A continuacin se presentan los conceptos o bsicos que el participante del curso de Arquitectura de a Computadores debe manejar para el mejor entendimiento de la asignatura. Comenzaremos por los componentes bsicos de las computadoras tal y como se muestra en a la Figura 1.

1.0.1.

Procesador

El procesador o unidad central de procesos (CPU) es un dispositivo digital que posee una mquina de a Figura 1.1: Componentes bsicos del estados nita cuyas salidas dependen de las entradas y a el estado de sus registros. Las caracter sticas principales computador. de los procesadores son la frecuencia de operacin y o la cantidad de bits del bus de datos que maneja. La frecuencia de operacin dene el tiempo de cada ciclo de o mquina, lo cual indica que tan rpido puede resolver a a las operaciones y en promedio cuantas operaciones por segundo puede realizar. Dependiendo del conjunto de instrucciones, RISC, CISC o SISC, se puede hablar de la eciencia del procesador. Un procesador eciente no necesariamente tiene una frecuencia de operacin muy alta, probablemente sea el que o puede resolver ms operaciones o tareas en menor tiempo. Por ejemplo los sistemas de videojuegos a utilizan una arquitectura de software muy eciente y una organizacin de hardware cerrada, que o benecia la ejecucin en tiempo real. Otro factor importante en la eciencia es la cantidad de o bits que podemos procesar a la vez, entre ms bits posee el bus de datos (bits en paralelo) mayor a cantidad de datos podemos leer o escribir a la vez. Existen otros aspectos de los microprocesadores, como el consumo energtico y la temperatura e de operacin, que requieren de atencin y que no deben dejarse de lado al momento de escoger el o o mejor procesador para el diseo de una computadora. Un procesador con alto consumo energtico n e puede poner en peligro la comercializacin de la computadora, toda vez que la sociedad exige o cada vez ms procesadores de menor consumo energtico [KL10]. La temperatura de operacin a e o dene por su parte el tamao m n nimo del dispositivo que vamos a disear, debido a las necesidades n mecnicas del procesador. Es posible que un procesador que opere a muy altas temperaturas, a requiera aditamentos de enfriamiento que aumentan el costo de produccin y el tamao de la o n estructura externa de nuestro dispositivo. En un ambiente mvil esto es totalmente inaceptable, es o por esto que existe una limitacin de la frecuencia de operacin en dispositivos mviles. o o o

Figura 1.2: Componentes bsicos de un procesador. a Componentes internos En la Figura 1.2 se muestran los componentes bsicos de todo microprocesador. Estos componentes a se encuentran interconectados por un bus de datos y otro de direcciones que son controlados por la unida lgica de control y las instrucciones son procesadas por la unidad aritmtica lgica con o e o ayuda de los registros. A continuacin se muestra una breve descripcin de los componentes de los o o procesadores.

Unidad Aritmtica Lgica (ALU) Es un circuito digital que realiza operaciones lgicas bsicas e o o a como AND, OR, NOT y XOR utilizando los registros del procesador y devolvindolos al registro e especial conocido como Acumulador. Tambin realiza las operaciones aritmticas de suma y resta, en e e algunos casos especiales realiza multiplicaciones utilizando los registros y devolviendo el resultado al Acumulador. El ALU utiliza electrnica digital secuencial para realizar estas operaciones. Generalmente o la capacidad del ALU est dada por el ancho del bus, entre mayor la cantidad de bits, mayor la a capacidad de las operaciones.

Acumuladores, Registros y Banderas Los registros son un conjunto de espacios de memoria generalmente del tamao, en bits, del bus de datos del procesador. Esto quiere decir que si tenemos n un procesador de 8 bits tendremos registros de 8 bits como m nimo. Tambin podemos tener e subdivisiones en procesadores con una palabra de datos ms grande, o registros que renen dos o a u ms registros para formar palabras ms grandes. a a

Unidad Lgica de Control Este circuito lgico es el encargado de manejar el acceso a la o o memoria externa (ROM y RAM) y tambin controla el acceso a los dispositivos de Entrada/Salida e (E/S). Internamente la unidad lgica de control tambin controla el acceso a los registros y memoria o e interna del procesador.

CAP ITULO 1. INTRODUCCION

1.0.2.

Memoria

La memoria es un conjunto de circuitos lgicos combinacionales, formados por Flip-Flops o que almacenan estados binarios y permiten su recuperacin por el procesador. Generalmente los o circuitos integrados de memoria representan una pila de 8 bits de ancho por 2n de alto, donde n es la cantidad de l neas de direccionamiento que posee la pastilla de memoria. Existen diferentes tipos de memoria: ROM Memoria de slo lectura. Este tipo de memoria se programa una vez con valores que o no van a cambiar con el tiempo. Su comportamiento es similar al de un gran arreglo de fusibles, donde un fusible en buenas condiciones representa un valor alto 1, y un fusible roto representa un valor bajo 0. Anteriormente estos dispositivos se programaban utilizando un gran nivel de voltaje y luego no pod ser reprogramadas, se les conoce como PROM. Luego an aparecieron una familia de memorias con una ventana que permit borrar toda la memoria a utilizando un fuerte haz de luz ultravioleta conocida como EPROM. Finalmente este mtodo e se volvi inconveniente y aparecieron las memorias elctricamente borrables y programables o e EEPROM las cuales no requieren de otras fuentes que las elctricas para programar o borrar e las memorias ROM. Una mejora sobre este ultimo tipo es la memoria FLASH1 que posee la capacidad de ser reescrita y no enteramente borrada, es mucho ms rpida y es la base de a a todo el almacenamiento bsico de la electrnica de consumo actual. a o RAM Memoria de acceso aleatorio2 . Se reere al todos los circuitos integrados que almacenan informacin de manera voltil. La condicin principal es brindar espacio de almacenamiento o a o al procesador, el cual puede alterar los datos contenidos dentro de la memoria despus de e cada operacin. Algunas versiones actuales de memoria RAM no son realmente aleatorias, o ms bien se acceden por sectores y por rfagas de datos que se leen de manera secuencial. De a a cualquier manera los datos se almacenan en cualquier espacio disponible, si eso cuenta como aleatorio. Una de las principales razones para que la RAM sea accedida en forma secuencial es debido a al acceso directo a memoria (DMA 3 ) que permite que los perifricos de E/S puedan e almacenar datos en la RAM sin interactuar con el procesador. Existen varios tipos de RAM que se han estado utilizando a travs de la historia, veamos algunos a continuacin: e o SRAM Static RAM4 . Es un tipo de memoria basada en semiconductores que utiliza circuitos bi-estables para almacenar la informacin. A diferencia de la RAM Dinmica no o a requiere que sus datos sean refrescados cada cierto tiempo para mantener la integridad de la informacin. An cuando no pierdan la informacin son todav memorias voltiles o u o a a que pierden todos sus datos si pierden la alimentacin. o DRAM Dynamic RAM5 . Es un tipo de memoria que utiliza capacitores como medio de almacenamiento de los datos. Debido a que los capacitores no son ideales y pierden su carga con el tiempo, los datos entonces deben ser regenerados cada cierto tiempo para mantener la integridad de la informacin almacenada en la memoria. Esto requiere o una circuiter adicional y una seal de reloj que cuente el tiempo de regeneracin de a n o la seal. Muchos de los dispositivos actuales poseen este tipo de memoria debido a que n
1 2

FlashMemory-http://en.wikipedia.org/wiki/Flash_memory RandomAccessMemory-http://en.wikipedia.org/wiki/Random-access_memory 3 DMA - http://en.wikipedia.org/wiki/Direct_memory_access 4 SRAM - http://en.wikipedia.org/wiki/Static_random_access_memory 5 DRAM - http://en.wikipedia.org/wiki/Dynamic_random-access_memory

1.1. CLASIFICACION DE LOS COMPUTADORES

son menos costosos y permiten una mayor densidad de memoria dentro de un circuito integrado. SDRAM Synchronous DRAM6 . Es una memoria DRAM sincronizada con el bus del sistema. Las memorias DRAM regulares son as ncronas y por tanto slo pueden responder o tan rpido como les es posible a los comandos de control, en cambio la SDRAM espera a nada ms tiene que esperar un ciclo de reloj para responder a las entradas de control. a NVRAM Non-Volatile RAM 7 . Es un subtipo de RAM que no pierde los valores que posee an cuando no tiene una alimentacin elctrica. El ejemplo ms comn de este u o e a u tipo de memorias es la memoria Flash, que a diferencia de los discos duros permite el acceso aleatorio a la memoria. Se le conoce tambin como almacenamiento de estado e slido. o

1.1.

Clasicacin de los computadores o

Los computadores actuales se pueden clasicar de dos maneras actualmente, segn el conjunto u de instrucciones y segn la arquitectura del procesador. Cada una de estas clasicaciones pueden u combinarse con otras para obtener mejores y ms especicas caracter a sticas de los computadores. Veamos algunas clasicaciones por el conjunto de instrucciones.

1.1.1.

Conjunto de instrucciones

Por el conjunto de instrucciones las computadoras se pueden clasicar en computadoras de conjunto complejo de instrucciones(CISC), computadoras de conjunto reducido de instrucciones (RISC) y computadoras de conjunto espec co de instrucciones (SISC). Las dos primeras son para procesadores de propsito general, usualmente estos van a tener su propio lenguaje ensamblador y normalmente o utilizan un compilador para transformar el cdigo fuente en cdigo de mquina. El tercer conjunto o o a de computadores (SISC) no requiere de un compilador, en la mayor de los casos, ya que las a aplicaciones que se ejecutan son siempre las mismas y diseadas en el momento de la creacin del n o procesador. Complex Instruction Set Computer (CISC) El conjunto complejo de instrucciones se reere a procesadores que poseen muchos nemnicos o en su lenguaje ensamblador, generalmente hay un nemnico para cada instruccin posible en el o o procesador. Al tener esta condicin el procesador posee un circuito lgico para cada instruccin que o o o ejecuta un microcdigo. El microcdigo es una serie de tareas que se realizan durante la ejecucin o o o de una instruccin de ensamblador, estn grabadas en el hardware y no pueden ser modicadas. o a Entre las tareas que realiza el microcdigo se encuentran, leer los registros o leer una direccin de o o memoria, ejecutar la instruccin, y escribir los resultados en el acumulador o en una direccin de o o memoria.

6 7

SDRAM - http://en.wikipedia.org/wiki/Synchronous_dynamic_random_access_memory NVRAM - http://en.wikipedia.org/wiki/NVRAM

8 El diseo CISC8 est basado en utilizar instrucciones n a que realicen la mayor cantidad de tareas por instruccin. o Su enfoque es permitir al hardware hacer la mayor parte del trabajo lgico a costa de la cantidad o de ciclos de mquina que necesita para ejecutar a sus instrucciones. Esto simplica la interconexin o con las funciones de programacin a alto nivel. o Otra razn para crear un conjunto de instrucciones o complejo es la capacidad de almacenamiento que era muy reducida en el pasado. Actualmente esta no es una buena razn para utilizar CISC, de o todas formas se sigue utilizando debido a que la mayor de los sistemas operativos comerciales han a sido creados con soporte slo para procesadores CISC. o

CAP ITULO 1. INTRODUCCION

Figura 1.3: Funcionamiento CISC

De cualquier manera la reduccin de cdigo fuente necesaria para realizar todas las tareas bsicas o o a nos permite comprender la codicacin de otras personas. Tambin reduce la complejidad de los o e compiladores, pero a su vez posee algunas desventajas como la poca eciencia de ejecucin. La o ejecucin toma ms tiempo que con los otros dos tipos de conjuntos de instrucciones. En una o a arquitectura que requiera la ejecucin en tiempo real, una computadora tipo CISC no es la mejor o opcin an cuando exista optimizacin de cdigo o hardware. Este tipo de computadora es la razn o u o o o por la cual hemos tenido que aumentar la frecuencia de operacin para reducir el tiempo por ciclo o de mquina, recientemente hemos llegado al tope y ahora utilizamos esquemas de computacin a o paralela para aumentar la eciencia de ejecucin. o Reduced Instruction Set Computer (RISC) La computadora con un conjunto reducido de instrucciones es un tipo de computadora simple que reduce la cantidad de instrucciones con las que se realizan las tareas bsicas de procesamiento. a Generalmente se requieren varias instrucciones para realizar tareas que se realizan en CISC con una sola instruccin, ejemplo de esto es la lectura o escritura de memoria. Por esta razn los o o procesadores RISC9 suelen poseer muchos registros internos, reduciendo la necesidad de leer o escribir la memoria muy frecuentemente. Debido a los pocos ciclos de mquina necesarios para a realizar ejecutar cada instruccin y las altas frecuencias o de operacin, los procesadores RISC son ms ecientes o a que los procesadores CISC, an cuando se necesitan u ms instrucciones para ejecutar las mismas tareas. Un a escenario donde RISC sea menos eciente que CISC es todav posible, pero requiere que las instrucciones a necesarias para completar las tareas estn todas en el e lenguaje ensamblador y el nmero de instrucciones sea u mucho menor que el nmero de instrucciones en un u procesador RISC. Esto es muy poco probable de cualquier

Figura 1.4: Funcionamiento RISC

8 9

CISC - http://en.wikipedia.org/wiki/Complex_instruction_set_computing RISC - http://en.wikipedia.org/wiki/Reduced_instruction_set_computing

1.1. CLASIFICACION DE LOS COMPUTADORES forma.

El acrnimo Conjunto Reducido de Instrucciones puede confundirse con un conjunto ms pequeo o a n de instrucciones, lo cual no necesariamente es cierto. El trmino Reducido se reere a la cantidad e de acciones o microcdigo necesario para ejecutar una instruccin. Lo que se reere el esquema o o RISC entonces es a la simplicidad del procesador y como consecuencia el aumento de la eciencia. Esto elimina la cantidad excesiva de complejas instrucciones que no se utilizan de los procesadores, al optimizar las instrucciones de mayor uso y que permiten hacer todo lo que necesitamos dentro de una computadora. Simple Instruction Set Computer (SISC) SISC10 fue creada para la computacin en paralelo. Utilizando circuitos integrados VLSI (Very o Large System Integration) que permiten agrupar a bajo costo varios elementos procesadores, como ncleos tipo RISC. Esto incrementa la eciencia de la ejecucin y reduce la complejidad de la u o programacin del sistema. o

1.1.2.

Arquitectura del computador

Segn el tipo de diseo de los computadores se clasican las computadores en tres grupos, los u n esquemas Von Neumann y Harvard han sido la base de la computacin moderna y recientemente o el esquema Cellular aparece como una arquitectura para procesadores de ncleos mltiples que u u permite utilizar de manera distribuidas los recursos del sistema. Arquitectura Von Neumann La arquitectura Von Neumann es el diseo de n computadoras mayormente utilizado en la computacin o actual. Es la arquitectura bsica de computadoras, posee a un procesador, una pila de memoria y un grupo de perifricos de Entrada/Salida. En la Figura 1.5 se muestra e la estructura bsica de la arquitectura Von Neumann . a En esta arquitectura slo existe una pila de memoria, o aqu encontramos tanto las instrucciones como los datos mezclados. Los puertos de E/S tambin pueden ser parte e de la pila de memoria, eso depende del procesador. Ampliaremos ms este tema en el Cap a tulo 2. Arquitectura Harvard La arquitectura Harvard es un diseo de computadoras n donde se utilizan dos pilas de memoria con dos buses Figura 1.5: Arquitectura Von Neumann separados de direccionamiento. Este diseo se genera en n la universidad de Harvard cuando la computadora Mark I fue creada, esta utilizaba tarjetas perforadas para las instrucciones y contadores electromecnicos para los datos. Por esta razn la mayor de los a o a computadores con este diseo no es posible cruzar datos entre la memoria de datos y la memoria de n
10

SIC - http://es.wikipedia.org/wiki/Simple_Instruction_Set_Computing

10

CAP ITULO 1. INTRODUCCION

instrucciones. Nuevas arquitecturas permiten un canal de comunicacin para actualizar la memoria o de instrucciones a travs de una seccin denida de la memoria de datos, esto es posible a que e o actualmente ambas pilas de memoria utilizan la misma tecnolog o tecnolog compatibles (Flash a as y SRAM). La Figura 1.6 muestra la estructura bsica de la arquitectura Harvard . En el Cap a tulo 3 ampliaremos este tema y veremos ejemplos de computadoras RISC de arquitectura Harvard. Arquitectura Cellular La arquitectura Cellular surge de la tecnolog a del procesador Cell de IBM y que se utiliza en en el PlayStation 3 de Sony. El procesador Cell posee un ncleo completo y siete pseudo-ncleos u u que le permiten realizar hasta ocho operaciones a la vez. Todos los ncleos en esta arquitectura u pueden acceder a la memoria a la vez y la sucesin o de instrucciones se realiza de forma paralela. En la Figura 1.7. Este tema esta fuera del alcance de nuestra asignatura. Figura 1.6: Arquitectura Harvard

Figura 1.7: Arquitectura Cellular

Cap tulo 2

Arquitectura Von Neumann


La arquitectura bsica de computadoras es la Von Neumann . Fue creada en 1945 por el matemtico a a hngaro John von Neumann(Figura 2.1). Von Neumann trabajaba en el diseo de una computadora u n que reemplazara a ENIAC, con una caracter stica importante para los creadores en esa poca, se e esperaba que esta mquina pudiese almacenar su cdigo fuente dentro del computador, en vez a o de utilizar tarjetas perforadas para cargar el programa cada vez que fuese a utilizarse. El diseo n bsico fue utilizar una pila de memoria que almacenara tanto el programa que se quer ejecutar, a a as como los datos capturados en las entradas y presentados en las salidas del computador. La computadora de programa almacenado (stored-program computer ) es el concepto de la mquina a de Turing publicado en 1936. Alan Turing propuso una computadora con almacenamiento innito donde los datos y los programas estuviesen almacenados. La mquina de Turing es la base matemtica de todos a a los diseos de computadoras actuales, para que una n computadora se considere funcional debe cumplir con este modelo. La arquitectura Von Neumann posee una pila de memoria donde los datos y las instrucciones se almacenan a la vez. En trminos de seguridad esto e puede representar muchos problemas si las precauciones necesarias no se toman en consideracin. Existen ataques o a aplicaciones que permiten inyectar cdigo malicioso o para deshabilitar o forzar un mal funcionamiento en la computadora. Tambin se inyecta cdigo para acceder e o sectores de almacenamiento condenciales y poder extraer informacin de los datos almacenados. Para evitar o esto se realiza por convencin una divisin de los datos y o o las instrucciones donde se generan espacios de memoria de tamao variable, segn las necesidades del programa n u y los datos que produce.

Figura 2.1: John von Neumann

Luego estaremos viendo un ejemplo clsico de la arquitectura Von Neumann, la computadora a 8085. El procesador 8085 es un procesador de 8 bits con 64KB de direccionamiento de datos, veremos como se direcciona la memoria y los perifricos de E/S mientras estudiamos su lenguaje e ensamblador. 11

12

CAP ITULO 2. ARQUITECTURA VON NEUMANN

2.1.

Espacios de memoria

Para organizar y aumentar la seguridad de nuestro cdigo es necesario generar espacios de memoria o donde nuestros datos se separen de nuestro cdigo. Existen dos razones para esta separacin: o o Los datos contenidos dentro de la memoria, esencialmente podrn adquirir valores similares a a los de los cdigos de operacin (opcodes) del lenguaje ensamblador. El espacio de memoria o o permite el control de la ejecucin evitando ejecutar posibles instrucciones dentro de los datos. o Los datos son de tamao variable y podr reescribir el cdigo fuente si se les almacena en n an o medio de las instrucciones. La organizacin evita que datos reescriban las instrucciones al o utilizar arreglos de datos mal dimensionados. Normalmente se utilizan tres espacios de memoria principales: el espacio de instrucciones, el de datos y la pila. La pila es un espacio de memoria especial que contiene punteros de retorno y datos almacenados temporalmente cuando un programa realiza un salto a otra seccin de cdigo. En el o o caso de realizar un salto por una bifurcacin condicional, por un llamado a una subrutina o por o un simple salto intencional es necesario el almacenamiento de los registros que se estn utilizando e y que puedan ser modicados en la subrutina. Esto impide que los datos se corrompan y podamos seguir la ejecucin del cdigo una vez la subrutina haya cumplido con su tarea. o o Pero dentro de las computadoras actuales existen dos tipos de memorias, RAM y ROM, que poseen funciones especiales y que poseen su propio espacio de memoria. Entonces se hace necesario subdividir los espacios de instrucciones y se puede crear un espacio de constantes. Las constantes cuentan como datos, no se ejecutan, pero no se pueden modicar as que se pueden almacenar dentro de una memoria ROM. Tambin se puede tener un espacio de constantes en la RAM, pero e esto constituir una particin del espacio de datos. La pila no puede pertenecer a la ROM puesto a o que es un espacio de memoria dinmico, crece en tamao de forma dinmica y almacena datos a n a que cambian su valor de forma dinmica tambin. Esto indica que para la pila es necesario dejar a e un tamao jo mayor al requerido al instante en que inicia la ejecucin del programa, puesto que n o dependiendo del tamao y funcionamiento del programa, la pila se extender de la ultima posicin n a o de la memoria hacia arriba tanto como lo necesite. Si se decide un tamao de pila muy pequeo n n o el espacio de memoria directamente encima de la pila son dimensionados de forma incorrecta, obtendremos un error de desbordamiento de pila, lo cual indica que el puntero de pila (Stack Pointer - SP) perdi la direccin del siguiente comando que debe ejecutar. o o A pesar que los espacios de memoria son una medida que toman los sistemas operativos y los programas de alto nivel, a nivel de lenguaje de mquina es necesario conocer el concepto, puesto a que se hace necesario llevar el control del mismo de manera manual. Espacio de Instrucciones El espacio de instrucciones es un segmento de la memoria, puede ser RAM o ROM, donde se encuentran los cdigos de operacin y los parmetros que conforman el o o a programa que estamos ejecutando. Cada cdigo de programa viene seguido de uno o dos parmetros o a que son datos necesarios para su ejecucin. Generalmente los parmetros deben seguir a un cdigo o a o de operacin en el orden de la memoria, estos son los unicos datos que pueden estar en el espacio o de instrucciones. Es importante evitar que los punteros generados en la ejecucin del programa apunten a nuestro o

2.2. ARQUITECTURA 8085

13

espacio de instrucciones, de esto debe encargarse el sistema operativo. Al crear las bases para soportar un lenguaje de alto nivel se generan controladores de los espacios de datos e instrucciones. Cada vez que una variable se genera, o un puntero a una variable se asigna, debe hacerse dentro del espacio de datos. Un controlador de variables evita que cdigo malicioso asigne punteros o variables o dentro del espacio de instrucciones. Tecnolog como NX de Intel evitan la ejecucin en ciertos segmentos de memoria. Esta es una as o medida de control en hardware que sirve para controlar los espacios de ejecucin dentro de la o memoria. Este tipo de tecnolog fueron poco utilizadas por los programadores ya que proponen as ms problemas que soluciones al crear los espacios de instrucciones y datos. Estos espacios deben a poder crecer dinmicamente para poder ejecutar ms aplicaciones a la vez. a a Espacio de Datos Los espacios de datos son segmentos de memoria donde se almacenan datos temporales que se generan durante la ejecucin de un programa. La manera de organizar estos o segmentos de memoria es totalmente decisin del programador del sistema operativo, en el caso en o que un sistema operativo no est disponible, es necesario llevar el control de la asignacin del espacio a o de datos de manera manual. Con manual nos referimos a que el programador debe saber donde se encuentra todo localizado, crear un controlador de espacios de memoria y crear restricciones para la ejecucin de programas dentro de estos espacios. o Es posible que exista un espacio de datos espacial dentro de la memoria ROM de una computadora. Este espacio se le conocer como espacio de constantes, ya que no es posible cambiar los datos una a vez que esta ha sido grabada. En las ROM actuales es posible cambiar la informacin pero no es o sencillo hacerlo, por ende no se realiza a menudo. Otros espacios de datos pueden ser creados como la pila que se encuentra al nal de la memoria, este segmento de memoria no debe ser accedido por los programas almacenados en la memoria. La pila contiene punteros a posiciones de ejecucin y guarda temporalmente los valores de los o registros que se estaban utilizando antes de realizar una bifurcacin. La pila es de suma importancia o para la ejecucin de programas, simplica y reduce el cdigo porque con las bifurcaciones podemos o o crear subrutinas que pueden ser reutilizadas.

2.2.
2.2.1. 2.2.2.

Arquitectura 8085
Registros Conjunto de Instrucciones

2.3.

Puertos de Entrada/Salida (E/S)

Mdulos de Expansin o o Puertos de Comunicacin o Puertos seriales s ncronos Puertos seriales as ncronos

14 Puertos paralelos Adaptadores Tarjetas de v deo Tarjetas de sonido Almacenamiento Masivo Discos duros Discos exibles Discos de estado slido o

CAP ITULO 2. ARQUITECTURA VON NEUMANN

Cap tulo 3

Arquitectura Harvard

15

Cap tulo 4

Capa de abstraccin de hardware o


4.1. 4.2. 4.3. 4.4. 4.5. Controladores seriales Controladores paralelos Temporizadores Interrupciones DMA

16

Cap tulo 5

Mquinas Virtuales a
5.1. 5.2. 5.3. Mquina de Turing a Mquina de pila (Stack Machine) a Mquina de registros (Register-based Machine) a

17

Bibliograf a
[AU96] [KL10] J.M. Angulo Usategui. Estructura de computadores. 1996. Karthik Kumar and Y.H. Lu. Cloud computing for mobile users: can ooading computation save energy? Computer, 43(4):5156, 2010.

[Man94] M. M. Mano. Arquitectura de computadoras. Pearson Educacin, 1994. o [Sta98] W. Stallings. Organizacin y arquitectura de computadores: diseo para optimizar o n prestaciones. Prentice Hall, 1998.

18

Das könnte Ihnen auch gefallen