• No se han encontrado resultados

Arquitecturas más Comunes.

In document 208006 Sistemas Embebidos I-2010 (página 49-54)

La arquitectura de un sistema embebido es una abstracción del dispositivo, esto significa que se trata de una generalización del sistema que normalmente no detalla información de implementación ni códigos fuente o diseños de hardware, a nivel de arquitectura los componentes software y hardware son representados por elementos ya sea internos o externos al sistema embebido que describen comportamientos propiedades e interacciones que se pueden dar entre los diferentes elementos. Dentro del término arquitectura se engloban aspectos como formato de instrucción, modos de direccionamiento, conjunto de instrucciones, entre otros.

La información a nivel de arquitectura es representada como estructuras, una estructura es una representación que contiene un conjunto de información de diversos elementos, propiedades e interacciones, podría decirse que se trata de una especie de imagen que enmarca el hardware y el software durante el diseño y/o puesta en marcha, dadas unas condiciones y un grupo de elementos. Puesto que es complicado recoger en una sola imagen toda la complejidad de un sistema, la arquitectura de un sistema embebido normalmente está conformada por más de una estructura que inherentemente se encuentran relacionadas unas con otras. Todo sistema embebido cuenta con los siguientes componentes:

Una Unidad Central de Procesamiento (CPU) encargada de procesar la información.

 Memoria para el almacenamiento de Instrucciones y Datos que serán procesados por la CPU.

 Medios de comunicación entre la CPU y la memoria (Buses de Direcciones, Datos y Control).

 Medios de comunicación entre la CPU y el mundo exterior (Buses de Direcciones, Datos y Control).

La forma en que estos elementos están conectados vienen definidos por las denominadas arquitecturas Von Neumann y Harvard.

1. Arquitectura Von Neumann.

La arquitectura Von Neumann debe a su nombre al conocido matemático John Von Neumann, que propuso el concepto de programa almacenado. La idea principal de esta arquitectura es el empleo del mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos. Los sistemas con la arquitectura Von Neumann constan de cinco partes: La unidad aritmético- lógica o ALU, la unidad de control, la memoria, dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.

Un dispositivo con arquitectura Von Neumann realiza o emula los siguientes pasos secuencialmente:

 Al encender el sistema se llama la instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.

 Se aumenta el contador de programa dependiendo de la longitud de la instrucción para apuntar a la siguiente.

 Se decodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.

 Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores. Luego, vuelve a ejecutarse el primer paso.

Hoy en día, la mayoría de ordenadores están basados en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratón, teclado, etc).

2. Arquitectura Harvard.

A diferencia de la arquitectura Von Neuman, la Harvard se caracteriza por la existencia de dispositivos de almacenamiento diferentes para programas y para datos, el término proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores. La idea es la existencia de dos buses de datos distintos, uno que controla el acceso a la memoria donde se almacenan las instrucciones que son ejecutadas por la unidad de procesamiento y el otro que sirve para acceder a los datos u operandos de dichas instrucciones.

Una ventaja de esta arquitectura sobre la Von Neumann radica en el empleo de memorias de acceso de alta velocidad (SRAM) utilizadas como caché tanto para datos como para instrucciones para mejorar le eficiencia del acceso a estos por parte del procesador. Por otro lado, tiene el inconveniente de tener que dividir la cantidad de caché entre los dos, por lo que funciona mejor sólo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs.

3. Arquitectura de la CPU.

Referida propiamente al diseño de la CPU. Normalmente este diseño se basa en la filosofía CISC (Complex Instruction Set Computer) o RISC (Reduce Instruction Set Computer). Antes de entrar en detalle de estas filosofías de diseño, conviene ver algunas definiciones previas.

3.1. Formato de Instrucciones.

Cada procesador puede realizar muchas operaciones con datos que se encuentran en la memoria. Ellos tienen un conjunto de instrucciones ISA (Instruction Set Architecture), las cuales sirven para indicarle la realización de una determinada operación. El procesador toma de la memoria un código que le indica la operación a realizar, además de tomar de allí otros códigos que le indican de donde tomar los operandos y más. A este conjunto de códigos se le denomina formato de instrucción.

Cada formato de instrucción incluye:

 Operación a realizar, contenida en un código denominado OpCode (Código de Operación).

 Registro o dirección de memoria donde se encuentran los datos. (Modo de direccionamiento a usar).

 Extensiones en el formato de instrucción que sirven para o Colocar valores de desplazamiento. o Indicar extensiones en el modo de direccionamiento. o Colocar valores inmediatos o direcciones absolutas.

3.2. Conjunto de Instrucciones.

Un conjunto de instrucciones, repertorio de instrucciones o arquitectura del conjunto de instrucciones (ISA) es una especificación que detalla las instrucciones que una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseño particular de una CPU. El término describe los aspectos del procesador generalmente visibles a un programador, incluyendo los tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y las interrupciones, entre otros aspectos.

La arquitectura del conjunto de instrucciones (ISA) se emplea a veces para distinguir este conjunto de características de la microarquitectura, que son los elementos y técnicas que se emplean para implementar el conjunto de instrucciones. Entre estos elementos se encuentran las microinstrucciones y los sistemas de caché.

Procesadores con diferentes diseños internos pueden compartir un conjunto de instrucciones; por ejemplo el Intel Pentium y AMD Athlon implementan versiones casi idénticas del conjunto de instrucciones x86, pero tiene diseños internos completamente distintos.

3.3. Modos de direccionamiento.

Mecanismo que permite conocer la ubicación de un dato o instrucción, es decir, le dice a la CPU como obtener la dirección efectiva (E.A. = Effective Address) donde se encuentra el operando. Se definen los siguientes parámetros dentro del modo de direccionamiento:

 Objeto: dato o instrucción que se desea direccionar.

 Una CPU dispone de varios modos de direccionamiento.

 Objetivos de los modos de direccionamiento:

o Reducir el espacio ocupado en memoria por las instrucciones. o Permitir la reubicación del código.

o Facilitar el manejo de las estructuras de datos. 3.3.1. Modos de direccionamiento en las instrucciones.

Los operandos y el resultado de una instrucción son accedidos a través de los modos de Direccionamiento que la CPU posee. Algunos campos del formato de instrucción, contienen información acerca del modo de direccionamiento empleado para conocer la E.A. del operando. En la sección 2.6.1 se explicaron los diferentes métodos de direccionamiento de las direcciones por lo que a continuación solo serán nombrados a manera de repaso: inmediato, directo, indirecto, relativo, indexado.

3.4. Filosofía CISC de diseño de CPUs.

Del inglés Complex Instruction Set Computer. Conjunto de microprocesadores cuyo conjunto de instrucciones se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.

Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de ordenadores personales del planeta. Hay que hacer notar, sin embargo que la utilización del término CISC comenzó tras la aparición de los procesadores RISC como nomenclatura despectiva por parte de los defensores/creadores de éstos últimos.

3.5. Filosofía RISC de diseño de CPUs.

En arquitectura computacional, RISC del inglés Reduced Instruction Set Computer (Computadora de Conjunto de Instrucciones Reducido). Tipo de microprocesadores con las siguientes características fundamentales:

 Instrucciones de tamaños fijos y presentadas en un reducido número de formatos (modos de direccionamiento simples).

 Sólo las instrucciones de carga y almacenamiento acceden a memoria por datos.

 Además, estos procesadores suelen disponer de muchos registros de propósito general.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las máquinas RISC protagonizan la tendencia actual de

construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM... son ejemplos de algunos de éstos.

RISC es una filosofía de diseño de CPU para computadora que esta a favor de conjuntos de instrucciones pequeños y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución.

La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta. Esto conllevó a la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU, así como de reducir el número total de accesos a memoria.

In document 208006 Sistemas Embebidos I-2010 (página 49-54)