[en] Designing new architectures is one of the ways to improve the performance of the computers that we used in our days. This improvements allow us to increase productivity, to simulate physics, quimics, etc. that were not be able to do it before in a realistic amount of time or even to be able to have a smartphone that could check whether tomorrow will rain or not. But, designing new architectures implies testing them, in order to do so, one could implement the design and test it. In the case of processors, this implies a huge cost in terms of money. So, it is not feasible to build every single version of the microprocessor that it is design. Then, what we can do? One answer is to simulate the behavior of the new architecture by using architectural simulators. The main issue with this solution is that these simulations require a lot of computational power. In order to minimize this computation, several approaches about how these simulations have to be done have been specified. Nowadays, the most used approach is execution­driven simulation due to the fact that the level of detail it allows to achieve is really high. Even though, execution­driven simulators are expensive in terms of computational power. Another kind of simulators which are less detailed are the ones included in the group of trace­driven simulators. The TaskSim simulator uses both execution and trace­driven approaches in order to minimize the computational power required for the simulation and maximize the level of detail obtained from it. For this, it presents different models which are more or less detailed. One of these models is the memory model, which is focused on representing the best as possible the memory of the architecture simulated. During this project, we will study how precise is this memory model of TaskSim when simulating a real architecture that is already in production. This will allow to discover the level of certainty TaskSim provides at one specific mode of simulation that has never been studied before.

[es] El diseño de nuevas arquitecturas es una de las formas de mejorar el rendimiento de los computadoras usadas hoy en día. Estas mejoras nos permiten mejorar nuestra productividad diaria, realizar simulaciones físicas, químicas, etc. que no hubiéramos sido capaces de ejecutar antes en un tiempo realista; e incluso ser capaces de disponer de un teléfono móvil capaz de decirte si mañana lloverá o no. Pero, el diseño de nuevas arquitecturas implica tener que probar su validez primero, para ello, podría fabricarse la nueva arquitectura y probarla. Sin embargo, en el caso de los procesadores, el coste de fabricación es alto en términos económicos. Esto hace que no sea viable fabricar cada una de las versions de procesador que se diseñan. ¿Entonces qué podemos hacer? Una respuesta seria simular el comportamiento de la nueva arquitectura. El principal problema de esta solución es que las simulaciones son muy costosas en términos de cómputo. Para minimizar este coste computacional, diversos métodos sobre cómo y qué debe simularse se han diseñado. A día de hoy, la más utilizada es la denominada execution­driven ya que proporciona una fiabilidad muy alta, aún a costa de ser computacionalmente muy exigente. Otro tipo de simuladores, los cuales son menos detallados, son los denominados trace­driven. El simulador TaskSim utiliza una combinación de los dos tipo de simuladores ya mencionados en orden de minimizar el coste computacional y, a la vez maximizar el nivel de detalle obtenido de la simulación. Para ello, presenta diferentes modelos los cuales difieren en la cantidad de detalle que reportan. Uno de estos modelos es el modelo de memoria, el cual se centra en simular la memoria de la arquitectura. Durante este proyecto, estudiaremos como de preciso es este modelo de memoria cuando se simula una arquitectura real de una máquina en producción. Esto nos permitirá descubrir cuál es el nivel de fiabilidad de TaskSim en uno de sus modos de simulación que nunca se ha estudiado antes.