1 / 22

Arquitectura de Conjunto de Instrucciones (ISA)

Arquitectura de Conjunto de Instrucciones (ISA). Conjunto de Instrucciones. Arquitectura de Conjunto de Instrucciones. Arquitectura de Conjunto de Instrucciones

heba
Download Presentation

Arquitectura de Conjunto de Instrucciones (ISA)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arquitectura de Conjunto de Instrucciones (ISA) Conjunto de Instrucciones

  2. Arquitectura de Conjunto de Instrucciones Arquitectura de Conjunto de Instrucciones El conjunto de Instrucciones de un procesador (o computadora) se refiere a todas las instrucciones que el procesador reconoce y, por lo tanto, puede ejecutar. La arquitectura de conjunto de instrucciones se refiere a todos los aspectos relacionados al diseño del conjunto de instrucciones, tales como registros a usar, tamaño de memoria a usar, tipos de direccionamiento de memoria, número máximo de operandos, tamaño del código de instrucciones (formato de instrucciones), tamaño del opcode, tamaño y tipo de operandos, forma en que los datos e instrucciones son almacenados en memoria, etc. Distintos procesadores tienen distintos tipos de instrucciones.

  3. Arquitectura de Conjunto de Instrucciones Los conjuntos de instrucciones se caracterizanpor lo siguiente: • Número de bits por instrucción. Independientemente de que el número de bits del formato de instrucciones puede variar de un procesador a otro, existen casos en los que el número de bits de las instrucciones varía dentro de un mismo procesador, dependiendo del tipo de instrucción. • Conjuntobasado en stack o registros. • Número de operandosexplícitosporinstrucción. • Localización del operando. • Tipo de operaciones. • Tipo y tamaño de operandos. • En cualquierconjunto de instrucciones, no todaslasinstruccionesrequiere el mismonúmero de operandos. • Las operacionesque no requieren operando, tales como HALT (alto), implican un desperdicio de espacio de memoriacuando se tieneninstrucciones de longitudfija. Unamanera de recuperaresteespaciodesperdiciadoesmediante el uso de opcodesexpandibles. Las arquitecturas de los conjuntos de instrucciones se miden en base a: • Espacio de memoria principal ocupado por el programa. • Complejidadde lasinstrucciones. • Longitudde lasinstrucciones (en bits). • Númerode instrucciones en el conjunto de instrucciones.

  4. Arquitectura de Conjunto de Instrucciones En el diseño de un conjunto de instrucciones se considera: • Longitud de la instrucción – corto, largo o variable. • Número de operandos. • Número de registrosdireccionables (quepuedenserespecificados). • Modos de direccionamientos – directo, indirecto, indexado, todos. • Orden de los bytes querepresentan un dato o instrucción (endianness). • La manera en la que el procesadoralmacena los datosu operandosdurante la ejecución de instrucciones: • Arquitectura stack • Arquitecturaacumulador • Arquitectura de registros de propósito general La selección entre lasarquitecturas de almacenamiento de operandosanterioresesoptar entre simplicidady costo del diseño de hardware o velocidad de ejecución y facilidad de uso.

  5. Arquitectura de Conjunto de Instrucciones Endianness Existen dos maneras de guardardatos o instrucciones en memoria: • Big Endian – La información se almacena del byte más alto (mássignificativo) al másbajo en direccionescrecientes de memoria. • Esmás natural. • El signo de un númeropuededeterminarsemediante el byte con offset 0 (byte mássignificativo en la primeradirección). • Las cadenas y los enteros se almacenan en el mismoorden. • Ejemplos de CPU: Motorola (serie 68000), PowerPC, SPARC, ARM, etc. • Little Endian – La información se almacena del byte másbajo (menossignificativo) al másalto en direccionescrecientes de memoria. • Facilita el almacenarvalores en direccionesque no están en el límite o frontera de unapalabra. • La conversión de la dirección de un entero de 16 bits a unadirección de un entero de 32 bits no requierearitméticaalguna. • Ejemplos de CPU: Computadoras PCs (Intel x86-x64), Z80, VAX, PDP11, DEC, etc.

  6. Arquitectura de Conjunto de Instrucciones Endianness Ejemplo: Número hexadecimal 12345678H en unamemoria con localidades de 1 byte. Ejemplo:

  7. Arquitectura de Conjunto de Instrucciones

  8. Arquitectura de Conjunto de Instrucciones Alineamiento en Memoria Otrasituación a consideraresquemuchascomputadoras, para poderaccesarobjetos (datos, instrucciones y direcciones) quetienenunalongitud mayor a un byte, éstostienenqueseralineados. El acceso a un objeto de s bytes en la direcciónAestáalineadosiA mod s = 0(a mod b es la operaciónqueproporcionacomoresultado el residuoqueresulta de dividir el númeroentero a entre el númeroentero b). El desalineamiento (misalignment) causaalgunascomplicaciones al hardware, yaque la memoriaestátípicamentealineada en límites o fronterasque son múltiplos de unapalabra o palabradoble. El acceso a un objetoalineado (aligned) puedecompletarse en un solo ciclo de acceso a memoria (fetch), siempre y cuando el bus de datos/instrucciones, y, por lo tanto, los registros del procesadorsean lo suficientementeamplios para almacenar el objeto. El acceso a un objetodesalineado(misaligned) puederesultar en variosciclos de acceso a memoria, lo cualimplica un desperdicio de tiempo.

  9. Arquitectura de Conjunto de Instrucciones La siguientefiguramuestralasdirecciones en lascuales un acceso a memoriaesalineado o desalineado. La memoriaestáorganizada en localidades de 8 bits (un byte). Los offset de byte queetiquetan a lascolumnasespecifican los 3 bits menossignificativos de lasdirecciones. Nota:El concepto de palabravaríamuchasveces de autor a autor, pero se puededecir con argumentosválidosqueunapalabraes la longitud en bits o bytes del operando de mayor longitudquepuedealmacenarse en un registro, y, por lo tanto, procesar el ALU en una sola pasada.

  10. Arquitectura de Conjunto de Instrucciones Arquitectura Stack • Las instrucciones y los datos (operandos) son simplemente tomados del stack. • Un stack no puedeseraccesado de maneraaleatoria. • Instrucciones con uno o cero operandos. • Las instruccionesLOAD y STORE requieren un operando de dirección de memoria. • Otrasinstruccionesusanoperandos del stack implícitamente. • Las operaciones PUSH y POP involucranúnicamente al elemento al tope del stack. • Las instruccionesbinarias(operaciones con dos operandos) usan los dos elementos al tope del stack. • La aritméticatipo stack usa la notaciónpostfija (notaciónpolaca). notacióninfija: Z = X + Y notaciónpostfija: Z = XY+ Estopermiteahorrarse el uso de paréntesis: Z = (X * Y) + (W * U) en postfijo: Z = X Y * WU * +

  11. Arquitectura de Conjunto de Instrucciones ArquitecturaAcumulador • Un operando de una operación binaria es implícitamente el acumulador y el otro operando debe ser extraído de memoria (fetch de operando). • Los fetchs de operandoscausan un incremente considerable en el bus de direcciones y en el bus de datos/instrucciones. Arquitecturade Registros de Propósito General (GPR) • Los registros pueden ser usados para almacenar los operandos en lugar de usar la memoria. • El acceso a los contenidos de los registroses mucho másrápidoque el acceso a memoria. • Este métodoesmásrápidoque la arquitectura de acumulador. • Estopermiteunaimplementacióneficiente de compiladores. • El formato de lasinstruccionesesmás largo. El número de operandos y el número de registrosdisponiblestiene un efectodirecto en la longitud de la instrucción. • La mayoría de los sistemas de computadorasactuales son sistemas GPR.

  12. Arquitectura de Conjunto de Instrucciones • Existentrestipos de sistemas GPR: • Memoria-memoria, donde dos o tresoperandospuedenestar en memoria. • Registro-memoriadonde al menos un operando está en un registro. • Load-Store (registro-registro) dondepuede no haberoperandos en memoria.

  13. Arquitectura de Conjunto de Instrucciones Tipo de Instrucciones Las instruccionespuedenserclasificadas en un amplionúmero de categorías, particularmente en los procesadoresactuales en lasque se tieneninstrucciones de multimedia, comunicaciones, y un mayor conjunto de operacionesmatemáticas y otras de uso especial. Las categoríasmáscomunes son: • Movilidad de datos. • Aritméticas. • Booleanas. • Manipulación de bits. • I/O. • Transferencia de control. • Multimedia. • Comunicaciones. • Matemáticasespecializadas. • Propósito especial.

  14. Arquitectura de Conjunto de Instrucciones Formato de Instrucciones Asúmaseque se tieneunacomputadora con instrucciones de longitudfija de 16 bits; unamemoria de 4 KB con localidades de 1 Byte (a cadalocalidad le correspondeunadirecciónúnica); el procesadortiene 16 registros. Por lo tanto, se requieren 4 bits para especificar los 16 registros y 12 bits para direccionarcadalocalidad de memoria. Se tiene dos posibilidades:

  15. Arquitectura de Conjunto de Instrucciones Si se permiteque la longitud del opcode sea variable, se puedecrear un conjunto de instruccionesmuyrico:

  16. Arquitectura de Conjunto de Instrucciones DirecciónEfectiva de un Dato o Instrucción La dirección real de un operando o instrucciónesconocidacomosudirecciónefectiva. En muchossistemas de computadoraqueusansegmentación de datos, instrucciones y stack para los procesos, la dirección de datos o instruccionesespecificados en unainstrucciónesrelativa al inicio del segmento de datos o instrucciones, respectivamente. Estoes, la direcciónefectivaresulta de sumar la direcciónproporcionadapor el procesador al segmento de datos o de instrucciones, según sea el caso. Ejemplo: La dirección de la siguienteinstrucción a ejecutar, según el registrocontador de programa (PC), es 00012H; pero la computadoraasignasegmento de código, datos y stack a cadaproceso. Para determinar la direcciónefectiva de la instrucción, la dirección dada por el PC essumada a la direcciónfísica o real del inicio del segmento de código (12300H), yaque la instrucción se encuentra en estesegmento.

  17. Arquitectura de Conjunto de Instrucciones Modos de Direccionamiento Los modos de direccionamientoespecifican en dónde se localiza(o estáalmacenado) un operando. • Dependiendo del modo de direccionamiento, la porción de la dirección del código o formato de instrucciónpuedeespecificarunaconstante, un registro o la dirección de unalocalidad de memoria. • Ciertosmodos de direccionamientonospermitendeterminar la dirección de un operando de maneradinámica.

  18. Arquitectura de Conjunto de Instrucciones Los modos de direccionamientomáscomunes son: • DireccionamientoInmediato: Cuando la dirección o una de lasdireccionesespecificadas en la instrucciónrepresenta el valor directo del operando o uno de los operandos a usar. • DireccionamientoDirecto: Cuando la direccióndel operando o datoes dada directamentepor la dirección o una de lasdireccionesespecificadas en la instrucción. • Direccionamientode Registro: Cuando el dato u operando está en un registro y, por lo tanto, el registrocorrespondienteesespecificadoporla dirección o una de lasdireccionesen la instrucción. • DireccionamientoIndirecto: Cuandola instrucciónproporciona la dirección en la que se encuentra la dirección del operando o dato. • DireccionamientoIndirecto de Registro: Cuandoun registrocontiene la dirección en la que se encuentra la dirección del operando o dato. • DireccionamientoIndexado: Usa un registroíndice (implícita o explícitamente) como un offset (desplazamiento), el cualessumado a la dirección en el operando para determinar la direcciónefectiva de un dato u operando.

  19. Arquitectura de Conjunto de Instrucciones • Direccionamiento Base: Similar al direccionamientoindexado, pero se usa un registro base en lugar de un registroíndice. Nota: La diferencia entre estos dos modos de direccionamiento, esque un registroíndicecontiene un offset relativo a la dirección dada por la instrucción; un registro base contieneunadirección base en el que el campo de la direcciónespecificada en la instrucciónrepresenta un desplazamiento a partir de esta base. • Direccionamientode Stack: Se asumeque el operando está en el tope del stack. Existenmuchasvariaciones de estosmodos de direccionamiento, incluyendo: • DireccionamientoIndirectoIndexado. • Base/offset. • Auto-relativo. • Auto incremental - decremental Además, también hay otrosmodos de direccionamientoqueya son obsoletos, por lo queraramente se encuentran en sistemas de computadorasactuales.

  20. Arquitectura de Conjunto de Instrucciones

  21. Arquitectura de Conjunto de Instrucciones • Ejemplo: En la siguientefigura se muestra el valor que se almacena en el acumulador para cadatipo de direccionamiento:

  22. Arquitectura de Conjunto de Instrucciones

More Related