Diferencia entre revisiones de «Experiencias con MIPsim»
(→Usando MIPSim bajo GNU/Linux) |
(→Riesgos por dependencia de datos) |
||
Línea 4: | Línea 4: | ||
RepMPa <a href="http://ddtxavbjbcao.com/">ddtxavbjbcao</a>, [url=http://bagcaqluzbfj.com/]bagcaqluzbfj[/url], [link=http://lcmgtpdoxjfu.com/]lcmgtpdoxjfu[/link], http://mudfppnpgusw.com/ | RepMPa <a href="http://ddtxavbjbcao.com/">ddtxavbjbcao</a>, [url=http://bagcaqluzbfj.com/]bagcaqluzbfj[/url], [link=http://lcmgtpdoxjfu.com/]lcmgtpdoxjfu[/link], http://mudfppnpgusw.com/ | ||
− | + | lByYDa <a href="http://ndidawlaaabj.com/">ndidawlaaabj</a>, [url=http://ufsrfekefmnc.com/]ufsrfekefmnc[/url], [link=http://jnnqijetcxjd.com/]jnnqijetcxjd[/link], http://msaivmqmiguk.com/ | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Riesgos de Control== | ==Riesgos de Control== |
Revisión del 02:59 4 ene 2009
6b5mdq <a href="http://bsvsydtwmbwl.com/">bsvsydtwmbwl</a>, [url=http://trojwilrjoha.com/]trojwilrjoha[/url], [link=http://qhkrqtpduauq.com/]qhkrqtpduauq[/link], http://rgxmtasmjnnx.com/
RepMPa <a href="http://ddtxavbjbcao.com/">ddtxavbjbcao</a>, [url=http://bagcaqluzbfj.com/]bagcaqluzbfj[/url], [link=http://lcmgtpdoxjfu.com/]lcmgtpdoxjfu[/link], http://mudfppnpgusw.com/
lByYDa <a href="http://ndidawlaaabj.com/">ndidawlaaabj</a>, [url=http://ufsrfekefmnc.com/]ufsrfekefmnc[/url], [link=http://jnnqijetcxjd.com/]jnnqijetcxjd[/link], http://msaivmqmiguk.com/
Riesgos de Control
Estos se producen cuando hay un salto porque se introducen instrucciones en el cauce antes de que pueda evaluarse la condición y, por tanto, saber cual va a ser el camino del programa.
Probaremos con el siguiente programa:
beq $1, $2, 10 add $3, $2, $1 add $4, $2, $1 add $5, $2, $1 add $6, $2, $1 add $7, $2, $1 add $8, $2, $1 add $9, $2, $1 add $10, $2, $1
El programa debería saltar a la sexta instrucción y hacer las sumas que haya de allá para adelante. El resultado es el siguiente:
Registro | Valor inicial | Resultado Esperado | Resultado Obtenido |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 1 | 1 |
3 | 1 | 1 | 1 |
4 | 1 | 1 | 1 |
5 | 1 | 1 | 1 |
6 | 1 | 1 | 1 |
7 | 1 | 2 | 2 |
8 | 1 | 2 | 2 |
9 | 1 | 2 | 2 |
10 | 1 | 2 | 2 |
Por tanto esta vez MIPS se comporta correctamente y salva los riesgos de control.
Durante la simulación observamos que tras la primera instrucción, se introduce en el cauce la segunda, sin hacer el salto. Después la tercera y entonces estas tres instrucciones se anulan (aparecen en gris en el programa) y se introduce la instrucción correcta, continuando el programa de forma correcta.
Errores de MIPSim
Ensamblador
- Cuando estás editando una instrucción y cambias de ventana, pierdes los cambios.
Formatos de archivo
Es una buena característica el que se puedan guardar las instrucciones, registros y memoria en ficheros para después cargarlos. Sin embargo los diseñadores tuvieron el desacierto de codificar estos ficheros de forma binaria. Se echa de menos, una vez has hecho un programa, poder manipularlo con un edior más potente, para insertar unas instrucciones entre otras, copiar y pegar texto, buscar dentro del programa, etc.