Arquitectura de conxunto de instrucións

En enxeñaría informática, a arquitectura de conxunto de instrucións (Instruction Set Architecture ou ISA en inglés), é un modelo abstracto que define en termos xerais como o software controla a unidade central de procesamento (CPU) dun ordenador ou familia de ordenadores. Un dispositivo ou programa que executa as instrucións descritas por esa ISA, como unha unidade central de procesamento (CPU), denomínase implementación desa ISA.

En xeral, unha ISA define as instrucións, os tipos de datos, os rexistros e a interface de programación para xestionar a memoria principal, como os modos de enderezo, a memoria virtual e os mecanismos de consistencia da memoria. A ISA tamén inclúe o modelo de entrada/saída da interface programable.

Unha ISA especifica o comportamento do código máquina que se executa nas súas implementacións independentemente das súas implementacións, garantindo a compatibilidade binaria. Isto permite varias implementacións dunha ISA que difiren en características como o rendemento, o tamaño físico e o custo, pero que son capaces de executar o mesmo código máquina. Así, unha máquina con menor rendemento e custos máis baixos pode ser substituída por unha con maior rendemento e custos máis altos, sen necesidade de substituír o software. Ademais, a ISA permite a evolución das microarquitecturas das súas implementacións, para garantir a compatibilidade con versións anteriores; é dicir, unha implementación máis nova e de maior rendemento dunha ISA pode executar software que se executa en xeracións anteriores de implementacións.

Se un sistema operativo (SO) mantén unha interface binaria de aplicación (Application binary interface ou ABI, en inglés) estándar e compatible para unha ISA particular, o código máquina executarase en futuras implementacións desa ISA e sistema operativo. Non obstante, se unha ISA admite a execución de varios sistemas operativos, isto non garante que o código máquina para un sistema operativo se execute noutro SO a menos que o primeiro admita a execución de código máquina creado para o segundo.

Unha ISA pódese ampliar engadindo instrucións ou outras funcionalidades, ou engadindo compatibilidade con enderezos e valores de datos máis grandes; unha implementación de ISA ampliada aínda poderá executar código máquina para versións non ampliadas da ISA. Pola contra, o código máquina que usa tales extensións só se executará en implementacións que as admitan.

A compatibilidade binaria que proporcionan converte as ISA nunha das abstraccións máis fundamentais da informática.

 Visión xeral 
Unha arquitectura de conxunto de instrucións distínguese dunha microarquitectura, que é o conxunto de técnicas de deseño de procesadores empregadas nun procesador en particular para implementar o conxunto de instrucións. Os procesadores con diferentes microarquitecturas poden compartir un conxunto de instrucións común. Por exemplo, o Intel Pentium e o AMD Athlon implementan versións case idénticas do conxunto de instrucións x86, pero teñen deseños internos radicalmente diferentes.

O concepto de arquitectura, distinta do deseño dunha máquina específica, foi desenvolvido por Fred Brooks en IBM durante a fase de deseño de System/360:

Algunhas máquinas virtuais que admiten bytecode como ISA, como Smalltalk, a máquina virtual Java e o Common Language Runtime de Microsoft, implementan isto traducindo o bytecode das rutas de código usadas habitualmente a código máquina nativo. Ademais, estas máquinas virtuais executan rutas de código usadas con menos frecuencia por interpretación. Transmeta implementou o conxunto de instrucións x86 sobre procesadores de palabras de instrución moi longas (VLIW) deste xeito.

 Notas 

 Véxase tamén 
 Outros artigos 
 Simulación

 Ligazóns externas 


Categoría:Arquitectura de ordenadores
Categoría:Microprocesadores