La simulació de microarquitectura és una tècnica important en la investigació en arquitectura informàtica i en l'ensenyament de la informàtica. És una eina per modelar el disseny i el comportament d'un microprocessador i dels seus components, com ara l'ALU, la memòria cau, la unitat de control i la ruta de dades, entre d'altres. La simulació permet als investigadors explorar l'espai de disseny i avaluar el rendiment i l'eficiència de noves característiques de la microarquitectura. Per exemple, diversos components de la microarquitectura, com ara els predictors de branques, la memòria intermèdia de reordenació i la memòria cau de traça, van passar per nombrosos cicles de simulació abans de convertir-se en components habituals en els microprocessadors actuals. A més, la simulació també permet als educadors impartir cursos d'organització informàtica i arquitectura amb experiències pràctiques. miniatura|Diagrama de l'arquitectura interna dels microprocessadors Intel Pentium Pro. Per a la simulació a nivell de sistema de maquinari informàtic, consulteu la simulació completa del sistema.
Classificació La simulació de microarquitectura es pot classificar en diverses categories segons els tipus d'entrada i el nivell de detalls. Concretament, l'entrada pot ser una traça recollida d'una execució d'un programa en un microprocessador real (anomenada simulació guiada per traça) o un programa en si mateix (anomenada simulació impulsada per l'execució).
Una simulació basada en traça llegeix una seqüència fixa de registres de traça d'un fitxer com a entrada. Aquests registres de traça solen representar referències de memòria, resultats de branques o instruccions específiques de la màquina, entre d'altres. Tot i que se sap que una simulació basada en traces és relativament ràpida i els seus resultats són altament reproduïbles, també requereix un espai d'emmagatzematge molt gran. D'altra banda, una simulació dirigida per l'execució llegeix un programa i simula l'execució d'instruccions de màquina sobre la marxa. Un fitxer de programa sol ser diverses magnituds més petit que un fitxer de traça. Tanmateix, la simulació basada en l'execució és molt més lenta que la simulació basada en traça perquè ha de processar cada instrucció una per una i actualitzar tots els estats dels components de la microarquitectura implicats. Per tant, la selecció de tipus d'entrada per a la simulació és una compensació entre l'espai i el temps. En particular, una traça molt detallada per a una simulació altament precisa requereix un espai d'emmagatzematge molt gran, mentre que una simulació molt precisa basada en l'execució triga molt de temps a executar totes les instruccions del programa.
A part dels tipus d'entrada, el nivell de detalls també es pot utilitzar per classificar la simulació. En particular, un programari que simula un microprocessador executant un programa cicle per cicle es coneix com a simulador de precisió del cicle, mentre que el simulador de conjunt d'instruccions només modela l'execució d'un programa en un microprocessador a través dels ulls d'un planificador d'instruccions juntament amb un temps gruixut de l'execució d'instruccions. La majoria de les classes d'informàtica d'arquitectura d'ordinadors amb experiències pràctiques adopten els simuladors de conjunt d'instruccions com a eines per a l'ensenyament, mentre que els simuladors de precisió del cicle es despleguen principalment per a projectes de recerca a causa tant de la complexitat com del consum de recursos.
Usos Els simuladors de microarquitectura es despleguen per a diversos propòsits. Permet als investigadors avaluar les seves idees sense la necessitat de fabricar un xip de microprocessador real, que és alhora costós i requereix molt de temps. Per exemple, simular un microprocessador amb milers de nuclis juntament amb diversos nivells de memòria cau comporta molt pocs costos en comparació amb la fabricació d'un xip de prototipatge. Els investigadors també poden jugar amb diverses configuracions de la jerarquia de la memòria cau utilitzant diferents models de memòria cau al simulador en lloc d'haver de fabricar un xip nou cada vegada que vulguin provar alguna cosa diferent.
Un altre ús del simulador de microarquitectura és a l'educació. Atès que un curs d'arquitectura d'ordinadors ensenya als estudiants moltes característiques diferents del microprocessador i les seves arquitectures, el simulador de microarquitectura és ideal per modelar i experimentar amb diferents característiques i arquitectures al llarg d'un semestre. Per exemple, els estudiants poden començar amb un simulador de microarquitectura que modela un disseny de microprocessador senzill al començament d'un semestre. A mesura que avança el semestre, es poden modelar i afegir al simulador funcions addicionals, com ara la canalització d'instruccions, el canvi de nom del registre, les estacions de reserva, l'execució fora de l'ordre i el marcador, i es poden afegir al simulador a mesura que s'introdueixen a l'aula. El simulador de microarquitectura ofereix la flexibilitat de reconfiguració i prova amb uns costos mínims.
Exemples Shade (simulador de conjunt d'instruccions basat en traça) SimpleScalar (simulador basat en l'execució i precís pel cicle) SPIM (simulador de conjunt d'instruccions basat en l'execució) SMTSIM (simulador basat en l'execució i precís pel cicle) Multi2Sim (2007) GPGPU-Sim (2007), derivat de SimpleScalar
Referències
Categoria:Microprocessadors