1 / 21

Operaciones de bloques de bits

Operaciones de bloques de bits. Pablo San Segundo C-206 pablo.sansegundo@upm.es. Índice. Arquitectura de programación Palabra de estado ( State Register ) Acumuladores Arquitectura de bloques (AWL) Operadores de más de un bit Carga y Transferencia

maris
Download Presentation

Operaciones de bloques de bits

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. Operaciones de bloques de bits Pablo San Segundo C-206 pablo.sansegundo@upm.es

  2. Índice • Arquitectura de programación • Palabra de estado (StateRegister) • Acumuladores • Arquitectura de bloques (AWL) • Operadores de más de un bit • Carga y Transferencia • Operaciones de comparación (>, <, <>, >=,…) • Operaciones aritméticas (+, -, *, /, SQR, SQRT) • Máscaras (Y, OR, XOR) • Otras

  3. Palabra de estado (SR)

  4. OB1 U==0S M 1.0 UBIES M1.1 Consulta de biestables de la palabra de estado

  5. Acumuladores • Registros de la ALU de 32 bits • Número variable: • Típicamente 2 en gamas medias. En gamas altas (p. ej. S7-400) puede haber hasta 4 • Encargados de realizar las operaciones de mas de 1 bit

  6. Arquitectura de bloques CALL<FCX> CC UC CALL<FBX, DBX> FBX FCX DBX Bloque de datos de instancia OB1: Ciclo principal FBX Sistema Operativo FCX DBX Bloque de datos de instancia A todos los bloques OBX DBX Bloque de datos global

  7. Índice • Arquitectura de programación • Palabra de estado (StateRegister) • Acumuladores • Arquitectura de bloques (AWL) • Operadores de más de un bit • Carga y Transferencia • Operaciones de comparación (>, <, <>, >=,…) • Operaciones aritméticas (+, -, *, /, SQR, SQRT) • Máscaras (Y, OR, XOR) • Otras

  8. Operadores Carga (L) y Transferencia (T) L EW10 ACU2=ACU1 ACU1=EW10 ACU1 = EW10 ACU2 = ACU1 EW10 ACU2 ACU1 MW10 EW10 = ACU1 T MW10: EW10 = ACU1 Acumuladores (32 bits)

  9. Operaciones de comparación A1 A0 <OPERADOR> ACU2 ACU1 RLO Importante: En el caso de operaciones de comparación, los bits de la palabra de estado A1 y A0 se actualizan de acuerdo con el tamaño relativo de los argumentos y no dependen del resultado lógico de la comparación.

  10. Ejemplos (1/2) L 5 L 8 >=I L 5 L 8 <I =M 1.0 ACU1=8, ACU2=5 A1=0, A0=1, RLO=0 M1.0=1 L 5 L 8 <=I ACU1=8, ACU2=5 A1=0, A0=1, RLO=1 L EW0 L EW2 <I = A 1.0 U==0 = A1.1 A1.0 = 1 si EW0 < EW2 (con signo) A1.1 = 1 si EW0 == EW2 L 9.7E+6 L 2 <I ACU1=2, ACU2=9.7E+6 A1=1, A0=0, OV=0, OS=0

  11. Control de flujo: SPA, SPB y SPBN • SPA <ETIQUETA> • Salto incondicional a la instrucción con ETIQUETA • Equivale a goto ETIQUETA • SPB <ETIQUETA> • Salto a la instrucción con ETIQUETA si el RLO = 1 • Equivale a if (RLO==1) thengoto ETIQUETA • SPBN <ETIQUETA> • Salto a la instrucción con ETIQUETA si el RLO =0 • Equivale a if (RLO == 0) thengoto ETIQUETA

  12. Primeraconsulta (/ER=0) Ejemplos (2/2) OB1-A OB1-B • //… • UX2 • ZV Z1 • // Ec. activación • L Z1 • L 3 • >=I • U X2 • SPB_MA • U X2 • SX1 • R X2 • SPAFIN • _MA:NOP0 • U X2 • SX15 • R X2 • FIN:NOP0 • //… • UX2 • ZV Z1 • // Ec. activación • L Z1 • L 3 • >=I • U X2 • S X15 • R X2 • U <0 • U X2 • SX1 • RX2 • //… S0 1 S1 C<3 2 C=C+1 C>=3 15 Salto condicionado a que RLO = 1 Salto incondicional

  13. Operaciones aritméticas (1/3) • Dos operandos implícitos en acumuladores A1, A0, OV, OS ACU2 <OPERADOR> ACU1 ACU1 A1: “resultado mayor que cero” A0: “resultado menor que cero” OV: “desbordamiento” (A1 y A0 complementan el tipo) OS: “desbordamiento memorizado” (al menos un desbordamiento)

  14. Operacionesaritméticas (2/3) • Reglasgeneralesparabiestables A0 y A1 A1=0 y A0=0 : ACU1 = 0 A1=1 y A0=0 sin desbordamiento: ACU1 > 0 A1=0 y A0=1 sin desbordamiento : ACU1 <0 VALOR ACU1 EN RELACIÓN CON 0 A1=1 y OV=1 : desbordamiento por arriba de ACU1 A0=1 y OV=1 : desbordamiento por debajo de ACU1 A1=1 y A1=1 : excepción división por cero, tipado incorrecto etc. OVERFLOW

  15. Ejemplos L -8 L 6 +I//ACU1-L=-2, A1=0, A0=1 (sin desbordamiento) L 2 L 6 /I//ACU1-L=0, ACU1-H=2, A1=1, A0=0 (sin desbordamiento) L 1000 L 100 *I//ACU1=100000, OV=1, OS=1, A1=1, A0=0 L 1000 L 100 *I//OS=1, OV=1 L 200 L 5 *I//ACU1=1000, OV=0, OS=1, A1=1, A0=0

  16. Operaciones aritméticas (3/3) • Un único operando implícito en ACU1 ACU1 ACU1 <OPERADOR> REAL REAL ABS SQR SQRT EXP LN SIN COS TAN ASIN ACOS ATAN… L9.0E10 SQR UN OV SPBOK SPA FIN OK:T MD10 FIN: NOP 0 EJERCICIO: Interprete cada instrucción del código siguiente

  17. Recapitulación: biestables A1 y A0 A1, A0ACU1 A0ACU1, A1ACU2

  18. OB1 L MW10L MW12UWT MW14 Operaciones con conjuntos de var. lógicas ACU2 OPERADOR ACU1 ACU1 DOS ARGUMENOS IMPLÍCITOS: ACU1 y ACU2

  19. Memoria Ejemplo: flancosimultáneo de 32 variables Flanco positivo ¿Flanconegativo? L MD 100 L ED 10 XOD L ED 10 UD T MD 10 L ED 10 T MD 100 L MD 100 L ED 10 XOD L MD 100 UD T MD 10 L ED 10 T MD 100 ACU1: valores distintos entre marcas de flanco y entradas ACU1: entradas con valor lógico 1 distintas de marcas de flanco

  20. MD 1 Aplicación al grafcet (1/2) • Activación simultánea de etapas ¿Ecuación de activación? U “X0” U “S1” SPBNNOAC //Activación LDW#16#FFFFFFFF TMD 1 R“X0” NOAC: NOP 0 U“X0” U“S1” L DW#16#FFFFFFFF TMD 1 R“X0” 0 S1 1 2 31 32 • Desactivación simultánea de etapas //Desactivación simultánea de 32 etapas L DW#16#0 T ETAPAS_CODIFICADAS_EN BITS_CONSECUTIVOS

  21. M 0.0 OB100 OB100 OB102 OB102 SET S M0.0 R Act.1 R Act.2 //… R Act.N • L MD 1 • L DW#16#0 • ==D • SPBN_001 • S M0.0 • L DW#16#0 • T MD1 • _001:NOP 0 • //… UN M1.0 UN M1.1 UN M1.2 //… S M0.0 R Act.1 R Act.2 //… R Act.N L MD 1 L DW#16#0 ==D S M0.0 R Act.1 R Act.2 //… RAct.N OB100 SET S M0.0 L DW#16#0 T MD1 MD1 Aplicación al grafcet (2/2) • Arranque / Rearme ARRANQUES(TRAS DESCONEXIÓN) ARRANQUES (DESDE CARCASA) 0 1 32 0

More Related