
En esta primera lección introduciremos el concepto de arquitectura y estructura de computadores, aplicado al caso específico de la plataforma Arduino Zero.
Presentaremos, además, dos ejemplos prácticos, donde podremos experimentar con las particularidades de una arquitectura Harvard (híbrida) en contraposición de la arquitectura von Neumann.
En este vídeo, aprovechamos la arquitectura de la placa Arduino Zero para comprobar que como una arquitectura Harvard (híbrida) las instrucciones se almacenan en una memoria de instrucciones, conocida como memoria ROM o Flash.
En este vídeo, complementario al anterior, comprobaremos como la placa Arduino Zero almacena los datos en la memoria de datos (o SRAM).
La memoria de un proceso en ejecución está dividida en una serie de secciones cada una de las cuales se dedica a un propósito específico. En este vídeo estudiaremos esta cuestión y veremos un ejemplo práctico apoyándonos en el uso de herramientas tanto en sistemas GNU/Linux como Windows.
Como complemento al vídeo anterior, donde se estudiaron las diferentes secciones de memoria en las que se divide un proceso en ejecución, en este vídeo analizaremos una región específica de memoria: la pila. Esta zona de memoria juega un papel fundamental en el almacenamiento de variables automáticas (o locales) y la llamada a procedimientos.
En este vídeo estudiaremos cómo se organiza la pila en la placa Arduino Zero.
El concepto de alineamiento en memoria es una cuestión fundamental de una arquitectura y depende de diferentes cuestiones. En este vídeo estudiaremos qué se entiende por alineamiento, qué papel juega y qué impacto tiene en el rendimiento (en términos de consumo de memoria) cuando escribimos un programa.
El concepto de endianess está estrechamente relacionado con el de alineamiento y se encarga de determinar el orden de los bytes dentro de una palabra. En este vídeo estudiaremos los diferentes enfoques existentes.
En este vídeo estudiaremos el compilador, entendido como el programa encargado de traducir un lenguaje de alto nivel a un lenguaje máquina para una determinada arquitectura. Estudiaremos las diferentes etapas que tiene lugar durante el proceso de compilación y, finalmente, estudiaremos el ABI o aplicación binaria de interfaz que se encarga de detallar las reglas que habrá de seguir un compilar que quiera generar código máquina para una determinada arquitectura.
La mayoría de las instrucciones trabajando sobre operandos y estos se pueden especificar de diferentes maneras. En este vídeo estudiaremos las diferentes formas de especificar un operando en una instrucción.
La asignatura de Estructura de Computadores forma parte de los contenidos específicos de la Ingeniería Informática y, como tal, está presenta en la mayoría de los planes de estudios de Grado en Ingeniería Informática.
El objetivo de este curso es el de proporcionar una serie de recursos y herramientas prácticas para facilitar la comprensión de los contenidos abordados durante el estudio de la estructura de un computador. Para ello, hemos elegido la plataforma Arduino Zero como herramienta sobre la que desarrollar una serie de ejemplos que nos permitan experimentar con los contenidos de la asignatura.
Es común que los estudiantes tengan problemas en manejar los conceptos abordados en materias relacionadas con el estudio de la arquitectura de un computador, principalmente porque asignaturas como Estructura de Computadores se aborda en el primer curso y requieren la capacidad para manejar eficientemente conceptos demasiados abstractos aún para los estudiantes. Es por esto que el uso de una plataforma como Arduino Zero es de gran ayuda a la hora de concretar esos conceptos presentados de manera teórica. Esta plataforma resulta un recurso excepcional pues sirve para estudiar de manera práctica (utilizando un lenguaje de alto nivel como C pero muy próximo al hardware) los diferentes elementos que componen un computador y la interrelación entre estos.
Este curso presenta una serie de vídeos explicativas con ejemplos prácticas que servirán de ayuda a la hora de abordar estudio los aspectos más importantes de la estructura de un computador. Además, se acompaña de una serie de preguntas y ejercicios prácticos para autoevaluar el nivel de conocimientos adquiridos.
Finalmente, este curso se complementa perfectamente con el curso titulado "Introducción a la Programación en C para Arduino Zero", donde se ofrecen unas nociones básicas de la programación en C orientada a la exploración de la estructura de un computador.