he estado escribiendo en ensamblado x86 últimamente (por diversión) y me preguntaba si las instrucciones de cadena prefijadas rep tienen realmente una ventaja de rendimiento en procesadores modernos o si Recién implementado para compatibilidad con la espalda.Rendimiento de las instrucciones x86 rep en procesadores modernos (pipeline/superscalar)
entiendo por qué Intel habría implementado originalmente las instrucciones de rep cuando los procesadores solo ejecutaron una instrucción a la vez, pero ¿hay alguna ventaja de usarlas ahora?
Con un bucle que compila más instrucciones, hay más para llenar la tubería y/o emitirse fuera de servicio. ¿Los procesadores modernos están diseñados para optimizar estas instrucciones con prefijo de rep, o las instrucciones de rep se utilizan tan raramente en el código moderno que no son importantes para los fabricantes?
No he estudiado esto en, por ejemplo, 5 años, pero en aquel momento mi experiencia personal era que, al menos, rep movsd y rep stosd eran más rápidos que un simple bucle, mientras que algunas de las variantes de exploración no. Sin embargo, eso podría haber cambiado significativamente desde entonces. –
Realice una prueba en diferentes procesadores y compruébelo usted mismo. –
Gracias por la entrada, muchachos. Alex: probablemente lo haga eventualmente, pero no tengo muchos procs diferentes para probarlo, así que sería solo en un proc real vs. un emulador que no tendría una interconexión. Además, soy flojo y preferiría no hacer ese trabajo si alguien más ya lo hubiera hecho. :) – RyanS