Home
Ejemplo de Máquina Sencilla
Contents
1. decr pc ldmar pc mem nsal jump lab end CA 3 maqsen dis microprograma desemsamblado n la aplicaci n DisAss 0000 4E380051C0000000 RO 0 0001 4E2800B100000000 RO RO LDMAR 13 0002 4E10009040000000 LDIR GI 0003 C200009040000000 JMAP HALT ORG 0010 0010 4E2801B0C0000000 RO RO 1 LDMAR 0011 4E080051C0400000 R1 MEM Q 9 410000 R1 R1 LDMAR 0013 4E080051C0400000 R1 MEM 0014 4E2801B0C0000000 RO RO 1 LDMAR 0015 4E080051C0800000 R2 MEM 0016 4E2800B100820000 R2 R2 LDMAR 0017 4E080051C0800000 R2 MEM 0018 4E200A9040810000 MEM R1 R2 LDMFLAG 0019 4E0001B0C0000000 RO RO 1 Gr 0014 4300009040000001 JUMP 0001 ORG 0020 20 y 0020 4E2801B0C0000000 RO RO 1 LDMAR 0021 4E080051C0400000 R1 MEM 0022 4E2800B100410000 R1 R1 LDMAR 0023 4E080051C0 000 R1 MEM 0024 4E2801B0C0000000 RO RO 1 LDMAR 0025 4E080051C0 00 R2 MEM 0026 4E2800B100 0 R2 R2 LDMAR 0027 4E080051C0 O R2 MEM 0028 4E000BB440 R2 R1 R2 LDMFLAG 0029
2. 00002 constante utilizada en la suma debe admitir estos 16 bits como operando para la suma por la entrada externa D ver Alu source control 24 00044 12 bits de direcci n de salto 25 0041 030 CCEN 0 se tendr en cuenta el bit de entrada al secuenciador CC calculado por el FlagShifter para decidir si salta o no apartado 2 1 del cap tulo de Arquitectura La inmensa mayor a de las microinstrucciones empiezan con 4 esto significa que CCEN 1 y por lo tanto se salta no hay que preguntar a CC si adem s empiezan con 4E significa que se salta pero a la siguiente sequencer instruction E CONTINUE 26 0043 4E0 CCEN 1 lo que se acaba de explicar 27 0044 430 CCEN 1 salto incondicional a la siguiente 28 No poner justo antes del end Dicho end no lleva punto final 29 Diferencias generadas al utilizar los registros rO rl5 o registros de otros grupos grupo 1 rl6 131 grupo 2 132 147 grupo 3 r48 r63 c mo acceder a cualquiera de ellos Diferencias entre ADD que usa del grupo 0 y MOV grupos 1 y 2 bits 27 22 reg B bits 21 16 reg A micropalabra 22 041 0000 01 00 0001 micropalabra 32 410 0100 00 01 0000 micropalabra 36 820 1000 00 10 0000 En la micropalabra 22 se hace referencia al regl tanto fuente como destino en la micro 32 es el regl6 y en la 36 es el reg32 En los tres casos los bits 29 28 del pipeline Register Address Select es 0 lo que indica que se toman los bits
3. 4E0001B0CO 0 RO RO 1 002A 4300009040 1 JUMP 0001 ORG 0030 21 0030 4E2801B0C0 0 RO RO 1 LDMAR 00 4E080051C4 R16 MEM 22 0032 428008104 0 R16 R16 LDMAR 0033 4E080051C4 00 R16 MEM 0034 4E2801B0C0 00 RO RO 1 LDMAR 0035 4E080051C8 00 R32 MEM 0036 4E2800B108200000 R32 R32 LDMAR 0037 4E200A9100100000 MEM R16 LDMFLAG 0038 4E0001B0C0000000 RO RO 1 0039 4300009040000001 JUMP 0001 0040 e RO 2 RO Co 0041 0301409040000044 JUMP 0044 NMZ 0042 4E2800B2C0000000 RO RO 1 LDMAR 26 0043 4E080051C0000000 RO MEM CD add 4300009040000001 JUMP 0001 4 explicaciones detalladas El prograrna del microc digo empieza siempre con program nombre de programa A continuaci n se definen los indentificadores equ asignaciones iniciales de registros y luego la b squeda de la instrucci n a donde volveremos despu s de la ejecuci n del grupo de microinstrucciones correspondientes a cada instrucci n lab pc pc ldmar Idir jmap carga del registro mar con el valor del pc lectura de memoria y carga del IR direcci n de salto en el secuenciador para seguir ejecutando en la microdirecci n donde se encuentra el microc digo correspondiente a la instrucci n que se acaba de cargar en IR direcci n acompa ada por ORG y que se forma seg n la idea explicada en los apartados 2 1 y 3 2 del cap tulo Arquitectura de COPRO Pasemos a detallar los puntos de los fi
4. 4E080051C080 0026 4E2800B10082 0027 4E080051C080 0028 000BB44081 0029 4E0001B0C000 002A 430000904000 0030 4E2801B0C000 0031 4E080051C400 0032 2800B10410 0033 4E080051C400 0034 4E2801B0C000 0035 4E080051C800 0036 4E2800B10820 0037 4E200A910010 0038 4E0001B0C000 0039 430000904000 0040 4E3800B14000 0041 030140904000 0042 4E2800B2C000 0043 4E080051C000 0044 430000904000 0 0 0 0 0 Oo O O 00 1 0 O 0 0 SOS TS O SOTO OSSO OO SSD DO O O O OD O DSO OO OT OS O DUO OD CEDO MRS OS GO CLS OOPS SOLO CO SO DO SO SD O DSO DO COLO O
5. anteriores del pipeline para seleccionar los registros operandos figura 3 2 Arquitectura de COPRO C mo seleccionar un registro indicado por IR Esta posibilidad ser til si pudi ramos a adir los campos direcci n de operando en el IR Supongamos una nueva instrucci n ADD reg5 reg7 cuyo efecto es reg5 reg5 reg7 8 bits son el c digo de instrucci n 4 son para el registro fuente reg7 reg A y cuatro para el fuente destino reg5 reg B Su microc digo equivalente ser a irbO irbO ira0 bits 29 16 3000 el 3 register address select significa que es IR quien selecciona registros de los ceros podemos resaltar los bits 27 26 y 21 20 para elegir el grupo O de registros Estas dos ltimas informaciones son los campos A y B de la figura 3 2 de Arquitectura de COPRO NOTA irb0 significa registro n indicado por los bits 7 4 del IR dentro del grupo 0 o sea regO a reg 15 lo mismo con ira0 pero con los bits 3 0 del IR C mo usar registros superiores al reg 15 Supongamos que queremos hacer ADD regl5 reg27 en hexa en IR s lo hay 4 bits por operando expresaremos pues ADD reg5 reg7 como antes irremediablemente D nde establecer la diferencia entre ambos casos en los bits 27 26 y 21 20 El microc digo ser irbl irbl ira2 as se tiene en cuenta el quinto registro del grupo 1 reg 15 y el s ptimo registro del grupo 2 reg27 5 programa ejemplo para la macromemoria c digo 100 0
6. 23 021 0 LO O Q HOON H 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a No O QO E y a a DO O O OOO DO MD OCO OOOO OO E Ey E Ey O OO JISNUNUBWUNHOMHDADPEPOooJIOSUEWUNHO Y OG O OG O DO OO OOOO O QUO CC O OG sb SO OD DO OD O SD O O OO DO DO DOT O OO HONNONNOOONhNOHONNONNO WO 0020 0021 0022 0023 0024 FFFP 0 0 0 0 O OOO pseadoc digo ADD 23 21 ADD 21 22 CUT 20 21 c digo de instrucci n BEQ 10 ADD 01 CMP 02 CNT 21 21 MOV 03 BEQ 04 MOV 22 24 CMP 21 21 BEQ 13 zona de datos max 5 a b incr 1 result Este programa podr a corresponder al siguiente c digo en Pascal a 0 b 0 incr l max 5 repeat a a incr b b a until a max result b bucle infinito de espera 7 maqsen mic 0000 4E380051C000 0001 2800B10000 0002 4E1000904000 0003 C20000904000 0010 4E2801B0C000 0011 4E080051C040 0012 2800B10041 0013 4E080051C040 0014 4E2801B0C000 0015 4E080051C080 0016 4E2800B10082 0017 4E080051C080 0018 4E200A904081 0019 4E0001B0C000 001A 430000904000 0020 4E2801B0C000 0021 4E080051C040 0022 2800B10041 0023 4E080051C040 0024 4E2801B0C000 0025
7. Ejemplo M quina Sencilla Curso 2007 2008 Asignatura Laboratorio de Computadores 3 Ingenier a en Inform tica Departamento de Inform tica e Ingenier a de Sistemas Centro Polit cnico Superior Ejemplo m quina sencilla T INTRODUCCION deroan ba cil a DD DS DTE DE CD E GATA 1 2 MAQSEN duo AE A A AE TADE 3 D F MAQSEN DIS ii de as 4 4 EXPLICACIONES DETALLADAS ooconococonoonconnonocononnonnconoononnno nono E RED DE ron non ED Ea Ea Da D DD Ons 5 5 PROGRAMA EJEMPLO PARA LA MAEROMEMORIA cooooococconconccnnonoconcononnonnconcnnnonos 8 D MAQSEN MO cin 9 1 Introducci n Vamos a ver el microprograma correspondiente a una m quina sencilla diferente a la original ya que el c digo de operaci n de la instrucci n ocupa 8 bits los de mayor peso Esto har que s lo queden 8 bits para expresar las direcciones de los operandos fuente y destino en vez de los 14 que ser an necesarios Como no se puede hacer as vamos a ver otras posibilidades de los ocho bits de mayor peso utilizar los de menor peso bits 9 8 para el c digo de instrucci n y los dem s bits 15 10 junto con los de menor peso para los operandos Esto complicar a la b squeda de operandos y este ejemplo quiere ser mucho m s sencillo la soluci n adoptada consistir en que las direcciones de los operandos vengan en direcciones de RAM consecutivas a la que ocupa la instrucci n se pierde mucho espacio pero es muy sencillo explicaci n gr fica del p
8. ce control 7 R D S 0 o sea la ALU va a sumar qu va a sumar un O y la entrada externa D qui n es esta entrada extema lo vemos en el punto siguiente constante D 0 es la inicializaci n que hemos puesto a pc Y bus control 2 Mem to IR sequencer instruction 2 JMAP Punto de paro activo bit 63 Al llegar aqu el secuenciador se parar Corresponde con la instucci n HALT que hemos puesto en el microc digo ALU NOP no trabaja registro fuente A y registro destino B son el reg 1 rl r1 sequencer instruction CJP conditional jump PL coge la direcci n de salto del pipeline PL o sea los bits 15 0 que si nos fijamos son 0001 la direcci n del label ab Alu destination B o sea el resultado de la ALU F va a parar al registro B Alu funct on 0 o sea suma pero veamos que el carry in est activo bit 40 del pipeline Alu source 3 o sea R 0 S registro B Con todo esto lo que va a ocurrir es que B F R S 1 0 reg B o sea incrementa el registro B debe ser el B porque aparece como fuente y destino el A s lo puede ser fuente 19 0020 4E280 Y bus function 5 ALU to ADR 20 00BBO flag flinction 5 Load macroflag from ALU 21 0030 4E2 sequencer instruction CONTINUE no es una instrucci n de salto el secuenciador continuar con la siguiente microinstrucci n Comparar con la explicaci n 25 26 27 y 14 22 413080 Y bus control 1 Mem to ALU 23
9. cheros maqsen fuente y maqsen dis 1 equ pe r0 pcyno aro 2 label 3 ORG 10 identificador de tal forma que para todo el programa nos podremos referir a etiqueta a la que nos podemos referir en los saltos en la direcci n 10 en hexa empieza el c digo referente a la instrucci n de c digo de instrucci n 01 No habr por tanto instrucci n con c digo de instrucci n 00 4 Disposici n en la macromernoria de la instrucci n ADD y las direcciones de los operandos fuente y destino como hemos explicado en la introducci n de este cap tulo Instrucci n BEQ en la macromemoria y direcci n de salto en posiciones consecutivas 8 4 4 8 4 4 Qi ADD X X i BEQ X X i l fuente i l destino del salto a 1 2 destino 5 iner pc Idmar 6 Idmflag 7 jump lab 8 decr pc Idmar 9 jump nsal nmz 10 0000 4080 11 0051000 12 00000 13 0002 4E100 14 0003 C20 15 0002 413100090 0003 C2000090 16 00410 17 OOIA 4300 18 01B0C0 microinstrucci n con dos microoperaciones pc pc l mar pc carga de macroflags en base al resultado de la ALU salto incondicional a la etiqueta de nombre ab mar Di 1 pc Wdestino de salto ver junto a la explicaci n 4 nmz not maero zero o sea ejecuta esta instrucci n de salto de microsalto en realidad si z 0 Y bus control 3 constant to ALU Alu function 0 R S Alu sour
10. ejecuci n si no se ha hecho previamente en el microc digo con la instrucci n HALT u otras modificaciones sobre la marcha Desensamblaje en la ventana Decodificaci n de la microinstrucci n modificada para estar seguros o por si no sab amos la sintaxis necesaria en el microc digo para hacer algo que s sabemos hacer cambiando la micromemoria directamente Se puede desensamblar todo un microc digo almacenado en la versi n mic utilizando la aplicaci n Copro II DisAss fuera del monitor se obtendr un fichero dis como el del apartado 7 L gicamente este fichero ser equivalente al original que conten a el microc digo pues hemos ensamblado y desensamblado 7 Salvar la micromemoria y la macromemoria con Guardar del men Archivo NOTA IMPORTANTE a veces uno pretende hacer algo en el fichero del microc digo pero no sabe la sintaxis y no encuentra nada en los ejemplos como es normal puede hacer varias cosas e puede preguntarle al vecino que tal vez pas ya por este problema ser el caso m s f cil pero no siempre posible e puede modificar directamente la micromemor a dentro del monitor hasta conseguir lo que desea una vez conseguido ver en la ventana Decodificaci n su traducci n a microc digo como hemos explicado antes e puede intentar encontrar su caso dentro del apdo Definici n y sintaxis del microensamblador de COPRO apdo 9 del Microensamblador e pero no puede preguntarle al profesor de la asignatura dic
11. has peque eces s lo cosas m s interesantes como las que siguen En alg n caso incluso puede ocurrir que utilizando la sintaxis que el desensamblaje nos indica el compilador no la acepte Puede ocurrir tambi n que la definici n de una microinstrucci n con varias microoperaciones obedezca perfectamente a lo explicado en el apartado 8 del manual de microensamblador y no funcione Puede haber fallos en el compilador En este caso habr que reconstruir menos eficientemente la microinstrucci n e incluso modificar a mano la micromemoria siempre que se vaya a usar 2 magsen microprograma fuente realizado con la aplicaci n MicroAss program magsen equ pe TOS pc 0 lab ORG ORG ORG ORG pc pc Idmar rdir jmap halt 10 ADD fuente fuente destino incr pc ldmar ri mem o 1 r1 ldmar 1 mem incr pc ldmar r2 mem r2 r2 ldmar r2 mem mem r1 r2 1dmflag incr pc jump lab e 7 20 CMP fuente fuente incr pc ldmar ri mem rl r1 ldmar ri mem incr pc ldmar r2 mem r2 r2 ldmar r2 mem r2 r1 r2 ldmflag incr pc jump lab S30 MOV fuente destino incr pc ldmar rl6 mem r16 r16 Ildmar rl6 mem incr pc ldmar r32 mem r32 r32 ldmar mem r16 ldmflag incr pc jump lab 40 BEQ direcci n pc pc 2 jump nsal nmz
12. unto 4 apartado 4 Supongamos que entendido un determinado enunciado ya tenemos pensado el microc digo Veamos un poco el proceso de manejo de aplicaciones y programas 1 Entramos en la aplicaci n Copro II MicroAss y escribimos el c digo programa maqsen del apartado 2 A continuaci n hemos de compilarlo con la opci n Ensamblador Ensamblar Esto crear la versi n mic c digo ejecutable que s lo crear si no hubo errores de compilaci n apartado 7 2 Entrar en el simulador de COPRO ejecutando Copro II Monitor cargar en la micromemoria el mic creado en el punto anterior para ello opci n Cargar la Micromemoria del men Archivo apartado 1 2 del Manual de Usuario 3 Escribir un peque o programa en la macromemoria o una instrucci n en concreto que se quiera probar Se puede hacer directamente sobre la ventana o escribir el programa conforme al formato explicado en el apartado 2 8 1 del enunciado de la pr ctica en alg n fichero en el que se salv previamente la macromemoria y cargarlo desde dentro de COPRO con la opci n Cargar la Macromemoria del men Archivo apartado 1 2 del Manual de Usuario 4 Inicializar registros flags etc apartado 1 2 del Manual de Usuario y posicionar el secuenciador en la microinstrucci n O con la opci n Saltar a 0 5 Ejecuci n en cualquiera de sus formas apartado 1 3 del Manual de Usuario 6 Entrada de puntos de paro en alg n lugar concreto que queramos parar la
Download Pdf Manuals
Related Search
Related Contents
Black Box 42U User's Manual American Power Conversion 240-320kW 480V User's Manual RIDGID WD1851 Use and Care Manual Samsung GT-S3570 manual de utilizador spimd20 - STMicroelectronics Copyright © All rights reserved.
Failed to retrieve file