Conjugando herramientas de simulación con aplicaciones y tecnologías emergentes en arquitectura de computadores

  1. Colaso Diego, Adrián
Dirigida por:
  1. Pablo Abad Fidalgo Director/a

Universidad de defensa: Universidad de Cantabria

Fecha de defensa: 12 de diciembre de 2018

Tribunal:
  1. Julio Sahuquillo Borras Presidente/a
  2. José Ángel Gregorio Monasterio Secretario/a
  3. José Miguel Alonso Vocal

Tipo: Tesis

Teseo: 576288 DIALNET lock_openTESEO editor

Resumen

Nos encontramos actualmente en una época de profundos cambios en el área de Ingeniería de Computadores, desde el hardware subyacente hasta las aplicaciones. El boom del Big Data ha propiciado el desarrollo de una notable cantidad de software específico para el almacenamiento y análisis de grandes volúmenes de datos en los últimos años. Sin embargo, la especialización del hardware avanza a un ritmo más desigual, de modo que, parte de este software se ejecuta habitualmente sobre hardware de propósito general. Ante esta situación, se antoja necesaria la precisa caracterización del funcionamiento del hardware existente al ejecutar este tipo de software, con el fin de detectar y dar solución a las potenciales ineficiencias. En lo concerniente a las soluciones hardware a proponer, los límites actuales de escalabilidad que afrontan las tecnologías de fabricación CMOS sugieren la exploración de vías alternativas para continuar diseñando e implementando procesadores que permitan alcanzar mayores cotas de rendimiento. Técnicas en el proceso de fabricación como el 3D-stacking o tecnologías de memoria no volátiles suscitan desde hace varios años gran interés, tanto desde el ámbito de la investigación como empresarial. La Arquitectura de Computadores, como el nexo entre las aplicaciones y el hardware subyacente, estará a cargo de conjugar de manera eficiente aplicaciones y tecnología. Como herramienta fundamental de esa área, el simulador está obligado a sumarse a dicha evolución para ser capaz de trabajar con las nuevas aplicaciones y las tecnologías emergentes. Durante el desarrollo de esta tesis se ha trabajado en paralelo para avanzar en los tres puntos mencionados. Utilizando un entorno (framework) de simulación de sistema completo, se ha adaptado tanto la herramienta como la metodología de evaluación, para trabajar con aplicaciones asociadas a entornos de computación distribuida (Cloud Computing), realizando propuestas arquitecturales basadas en tecnologías de memoria no volátil. El punto de partida del trabajo ha consistido en la evaluación del grado de precisión necesario en la simulación de aplicaciones cuya arquitectura software es cliente-servidor, analizando el error que se comete al simular este tipo de aplicaciones en un único sistema. A la vista de los resultados, se ha hecho necesario trabajar en la modificación de la herramienta de simulación y adaptar la metodología de investigación para adecuarla a los requisitos de las aplicaciones emergentes. Una vez adaptada la metodología, se ha llevado a cabo una exhaustiva caracterización del comportamiento de la jerarquía de memoria presente en los chips al ejecutar aplicaciones emergentes consistentes en varias bases de datos NoSQL (Not only SQL) modernas, comparando los resultados con aplicaciones convencionales ampliamente utilizadas en el área. Por último, utilizando la metodología y aplicaciones mencionadas, se ha trabajado con una tecnología de memoria emergente en la realización de una propuesta arquitectural para paliar uno de los puntos débiles de dicha tecnología, la naturaleza variable de la latencia de los accesos. En concreto, se propone la utilización de un mecanismo de identificación de patrones en el acceso a los datos basado en una técnica de prefetch hardware para tratar de eliminar la variabilidad de la latencia.