Arquitectura de Software vs Arquitectura de Hardware

En computación, se puede hablar tanto de la arquitectura perteneciente al software, que se podría decir es aquella que está más “cercana” al programador y al usuario en general, como de la arquitectura de hardware, la cual se constituye como la estructura y organización que presentan los diferentes componentes físicos que conforman al computador, tales como el procesador y sus unidades internas, el tipo de memoria, entre otros. Para cualquier persona interesada en el área de la computación, es importante tener claridad en estos conceptos.

Arquitectura y Organización

A partir de lo anterior, puede resultar usual encontrar en textos referentes al tema dos términos, que son arquitectura y organización. La arquitectura realmente es la forma común de llamar a ISA (Instruction Set Architecture) o Arquitectura de conjunto de Instrucciones, esta hace referencia a un modelo abstracto o diseño; por otro lado se tiene la organización, que en pocas palabras hace referencia a la implementación mediante diferentes componentes de hardware de ese modelo abstracto.

ISA

Como ya se dijo, un ISA es un modelo abstracto de computador. En general, en un ISA se definen características como los tipo de datos soportados, los registros, el direccionamiento de memoria, los modos de direccionamiento, los tipos de tamaños de operadores, las operaciones, las instrucciones de control de flujo, la codificación, entre otros.
Hay varias formas de clasificar las ISA, una de ellas es por complejidad, donde se encuentran las CISC y las RISC.

Figura 1. Niveles de Instruction Set Architecture

Como se aprecia en la figura 1, la arquitectura de conjunto de instrucciones es una zona ubicada entre la parte de software y la de hardware, siendo el enlace entre estas dos regiones; es importante aclarar que con el paso de los años, esta zona ha ido ampliándose y abarcando cada vez más componentes.

Organización

La organización se refiere a los atributos funcionales y sus interconexiones, que materializan especificaciones arquitectónicas, es decir, la ISA; son aquellos detalles de implementación que son transparentes al programado. En esta se encuentran aspectos de alto nivel como el sistema de memoria, la interconexión de memoria, la microarquitectura del procesador y todas las especificaciones relacionadas con el hardware de la máquina.

Comparación entre arquitectura y organización

Es importante hacer diferencia entre estos dos conceptos, ya que mientras la arquitectura es la que define las "normas" o parámetros con los que funciona la computadora, la organización es la implementación física de todo esto. Un ejemplo de esto, sería comparar un procesador AMD Opteron con un Intel Core i7, los cuales tienen la misma ISA pero su organización es diferente.
Una forma de notar esta diferencia es, por ejemplo, por medio de dos preguntas:
  • Arquitectura: ¿Hay una instrucción de multiplicación?
  • Organización: ¿Hay una unidad de multiplicación en hardware o se hace por medio de adición repetitiva?
Computacionalmente, es necesario hablar tanto de arquitectura como de organización porque ambas son importantes para estudiar el rendimiento en términos de eficiencia y optimización que se puede llegar a obtener; por un lado, la arquitectura determina la forma en que el procesador interpretará y desarrollará un algoritmo, y por el otro está la organización, que determina las capacidades físicas del computador.

Representación de Software y Hardware

En cuanto al software, una de las formas más comunes de representarlo es mediante UML, un ejemplo de esto se encuentra en la siguiente figura:

Figura 2. Ejemplo de diagrama UML

En cuanto a hardware, se encuentran diferentes representaciones, ya que se puede hablar desde el nivel de circuitos hasta la conexión de componentes de un computador.

Figura 3. Ejemplo de diseño de circuitoFigura 4. Ejemplo básico de conexión de Hardware

Para representar ambas, existen diversos diagramas que unen los componentes de hardware con el diseño de software. Además, a un nivel más específico, se puede observar en el ISA la forma en la que el lenguaje de alto nivel es interpretado por los componentes.
   
Figura 5. Ejemplo Diagrama de
componentes

Figura 6. Ejemplo algoritmo de división e
implementación en hardware

Referencias

Comentarios

  1. Muy completo y con una buena explicación. Excelente!

    ResponderBorrar
  2. Muy buena explicación, las imágenes complementan muy bien la página.

    ResponderBorrar
  3. Previamente no tenía conocimiento del modelo ISA y creo que quedó muy bien explicado. Además, el hecho de utilizar diferentes gráficos y diagramas ayudan al entendimiento del tema.

    ResponderBorrar
  4. Hola Brayan, muy buen blog la información esta clara y concisa y el diseño esta muy bien hecho, con respecto a la información me gustan las ilustraciones ya que facilitan el entendimiento del tema. Me gusta el paralelo entre Arquitectura de Software y Hardware, ademas anteriormente no sabia sobre que era un modelo ISA, ahora con esta información ya tengo mas o menos idea de que es.
    Felicitaciones.

    ResponderBorrar
  5. A pesar de quedar un poco corto, estoy de acuerdo con lo comentado con el compañero, un computador requiere de amos para que este funcione correctamente, un sistema elaborado formado por dos sistemas que van de la mano. Mostrando como una relación puede llegar a diferentes limites como una organización

    ResponderBorrar

Publicar un comentario