ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Arquitecttura


Enviado por   •  10 de Mayo de 2012  •  1.174 Palabras (5 Páginas)  •  247 Visitas

Página 1 de 5

A la hora de diseñar un juego de instrucciones, se deben tener en cuenta ciertas consideraciones sobre dos cuestiones: la longitud de la instrucción y el reparto de los bits que la componen. Longitud de la instrucción. Hay un claro compromiso entre el deseo de un rico y variado repertorio de instrucciones, y la necesidad de ahorrar espacio. Los programadores quieren muchos códigos de operación distintos (requiere muchos bits en el campo de código de operación) para disponer de operaciones que se ajusten lo más posible a sus necesidades, y así escribir programas más cortos. De igual manera, cuantos más modos de direccionamiento estén disponibles, más flexibilidad tendrán para manejar estructuras de datos complejas, como tablas o matrices. Por otro lado, puesto que cada vez se dispone de mayor cantidad de memoria, se requieren muchos bits para hacer referencia a un gran espacio de direccionamiento. Pero claro, una instrucción que ofrezca todo esto puede ocupar 32 bits, posiblemente, el doble que otra similar que no ofrezca tanta flexibilidad. Es tá claro que una instrucción larga ocupa más espacio en memoria que una corta, se tarda más tiempo en llevarla de memoria a la CPU, y se tarda más tiempo en decodificarla.

Se debe tener en cuenta que el ancho del bus de datos sea múltiplo de la longitud de un carácter, para evitar desaprovechar el espacio de almacenamiento. Y esta restricción afecta a la longitud de las instrucciones, que deben ocupar un número entero de palabras, o en una palabra debe caber un número entero de instrucciones. Por esto los tamaños de las instrucciones suelen ser múltiplos de 8. Un diseño con caracteres de 9 bits, instrucciones de 12 y palabras de 31 bits sería una catástrofe.

Reparto de los bits. Aquí el compromiso está en el reparto de los bits disponibles entre el número de códigos de operación y la versatilidad de los operandos. Esta versatilidad genera las s iguientes preguntas: ¿cuántos operandos hay en la instrucción?, ¿de cuántos modos de direccionamiento se dispone?, ¿dónde están los operandos, en registros o en memoria?, ¿cuántos registros hay?.

El direccionamiento a memoria también plantea una pregunta: ¿cuál es la granularidad de las direcciones?. Es decir, ¿a dónde apunta cada dirección, a un byte, a una palabra de 16 bits, a una palabra de 32 bits, ...? Si el grano es de 1 byte, para direccionar una memoria de 64 Kb se requieren 16 bits, mientras que si el grano fuera una palabra de 4 bytes, solo se necesitarían 14 bits, lo cual significa instrucciones más cortas, menor espacio para el programa, y un menor tiempo para alimentar la instrucción. Sin embargo, tiene la pega de que para obtener un carácter de memoria

hay que acceder a la palabra completa, y luego en la CPU seleccionar la parte deseada, lo cual consume tiempo.

Debido a los compromisos que acabamos de ver, normalmente todos los juegos de instrucciones son de longitud variable, es decir, disponen de diversos formatos de instrucción, con distintas longitudes que se adaptan a las necesidades de la instrucción. Por esto, es normal encontrarse que en una misma máquina hay instrucciones de 1, 2, 3 y 4 o más bytes de longitud (eso sí, siempre con un tamaño múltiplo de 8 bits).

El Pentium de Intel, tiene instrucciones de longitud variable, y pueden llegar a tener un tamaño de hasta 12 bytes. El PowerPC, por el contrario, tiene un juego de instrucciones con un formato regular de 32 bits, donde los 6 primeros Corresponden al código de operación.

Hasta ahora hemos supuesto que una vez decidido el número de bits reservado para el código de operación, tanto este número como el reservado para los operandos son fijo. Por ejemplo, si una CPU ofrece 100 instrucciones, parece

...

Descargar como (para miembros actualizados)  txt (7.1 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com