Sistemas Lógicos II Aula 6 1 Arquitectura e controlo • Flexibilizando João Paulo Pimentão ([email protected]) – Usar uma RAM 2 RAM 2k posições de n bits cada k k-bit read/write address bus enable João Paulo Pimentão ([email protected]) Flexibilidade: programa 3 • Programas residem em memória • Programa: sequência de instruções • Uma instrução – Código de operação (OpCode) – Opcionalmente: parâmetros • Nº de bits do OpCode – Função do número de instruções suportado • 4 instruções: 2 bits • 8 instruções: 3 bits • ... • Não faz sentido ter memórias de dimensão (nº de bits) variável – Memória de Programa – Memória de Dados • Se o OpCode é reduzido podemos usar os outros bits para parâmetros... Programa João Paulo Pimentão ([email protected]) • Considerem-se as seguintes operações – – – – STOP ADD ACC, addr SUB ACC, addr MOV addr, ACC , Não faz nada e pára , ACC <- ACC+RAM[addr] , ACC <- ACC-RAM[addr] , RAM[addr] <- ACC • 1º definem-se os OpCode (2 bits chegam) Mnemónica STOP ADD ACC, addr SUB ACC, addr MOV addr, ACC OpCode 00 01 10 11 • Com 8 bits, sobram 6... É pô-los a render... 4 Programa • Se tivermos 6 bits para endereçar memória João Paulo Pimentão ([email protected]) – Podemos endereçar 64 posições 5 • As nossas instruções podem ser todas codificadas usando um byte para cada uma 7 6 5 4 C1 C0 A5 A4 A3 A2 A1 A0 OpCode 3 2 Address 1 0 Programa João Paulo Pimentão ([email protected]) addr 6 7 6 5 4 3 2 1 0 C1 C0 A5 A4 A3 A2 A1 A0 Comentários 00 1 0 1 1 1 0 1 1 SUB ACC, 59 01 0 1 1 1 1 1 0 0 ADD ACC, 60 02 1 0 1 1 1 1 0 1 SUB ACC, 61 03 0 1 1 1 1 1 1 0 ADD ACC, 62 04 0 1 1 1 1 1 1 1 ADD ACC, 63 05 1 1 1 0 0 1 1 1 MOV 39, ACC 06 0 0 X X X X X X STOP ... João Paulo Pimentão ([email protected]) addr 7 7 6 5 4 3 2 1 0 C1 C0 A5 A4 A3 A2 A1 A0 Comentários 00 1 0 1 1 1 0 1 1 SUB ACC, 59 01 0 1 1 1 1 1 0 0 ADD ACC, 60 02 1 0 1 1 1 1 0 1 SUB ACC, 61 03 0 1 1 1 1 1 1 0 ADD ACC, 62 04 0 1 1 1 1 1 1 1 ADD ACC, 63 05 1 1 1 0 0 1 1 1 MOV 39, ACC 06 0 0 X X X X X X STOP ... 59 0 0 1 1 0 0 0 1 49 60 1 0 1 1 0 0 1 1 -79 61 1 1 0 0 1 1 0 0 -52 62 0 1 1 1 1 0 0 1 121 63 0 1 0 1 0 0 1 0 82 • Assumindo ACC = 0 no início • RAM[39] <- 0-(49)+(-79)-(-52)+(121)+(82) = +127 IPC Increment Program Counter PC Program Counter (6 bits) TPC Transfer from PC MAR Memory Address Register (6 bits) João Paulo Pimentão ([email protected]) TIR Transfer from IR 8 OpCode TB Transfer from BUS enable 2 bits RAM 64 palavras de 8 bits (6 bits endereço) R/W BUS 8 bits Address Instruction Register (IR) (8 bits) 6 bits W R I C Z CI Controlador Somador Sinais controlo Alterações na arquitectura... W R Z ACC Passos na execução de um programa • Tudo começa na origem... João Paulo Pimentão ([email protected]) – PC <-0 9 • Para cada uma das instruções FETCH: Passo MAR <- PC IR <- RAM[MAR] PC <- PC+1 Sinais activos TPC enable, R/W, TB IPC • A seguir, o controlo depende da instrução EXECUTE • No fim passa de novo a FETCH – Excepto no caso STOP ☺ ☺ ☺ E se... João Paulo Pimentão ([email protected]) • Precisarmos de mais memória 10 – 64 bytes é muito reduzido – Comecemos por considerar 256 bytes então precisamos de 8 bits de endereço • As instruções podem ter mais de um byte... exemplos – Transferência: OpCode + Endereço – Aritméticas: OpCode + Valor – Controlo de fluxo • Resultado: para algumas instruções, a primeira parte da execução pode implicar ir buscar mais dados ao programa. Instruções multi-byte João Paulo Pimentão ([email protected]) • Optimizar OpCode 11 – Detecção multi-byte deve depender de um bit ou de uma operação simples de bits (AND, OR, etc.) • Ir buscar o próximo operando – Aumentar o PC – Onde guardar o operando • Depende da Operação IPC Increment Program Counter PC Program Counter (6 bits) TPC Transfer from PC MAR Memory Address Register (6 bits) João Paulo Pimentão ([email protected]) TIR Transfer from IR 12 OpCode TB Transfer from BUS 2 bits enable RAM 64 palavras de 8 bits (6 bits endereço) R/W BUS 8 bits Address Instruction Register (IR) (8 bits) 6 bits W R I C Z CI Revisitando a arquitectura... Controlador Caso multi-byte: Somador O FETCH coloca o Sinais controlo W coloca o OpCode ACC R Z no IR depois: IPC, R/W, Enable e, dependendo da instrução, W no CI ou transferência para registo adicional (e.g. MAR) João Paulo Pimentão ([email protected]) Outras arquitecturas 13 • Devem ser desenhadas de acordo com as necessidades; i.e. com o conjunto de instruções a implementar. João Paulo Pimentão ([email protected]) Trabalho 1 14 • Enunciado no Moodle • Entregas no Moodle 20 de Abril 23:45