Prévia do material em texto
A memória é como uma matriz de bits, conforme a figura a seguir. Organização e endereçamento da memória 1 2 3 N 8 bits Cada linha, implementada por um registrador, tem geralmente um tamanho equivalente ao tamanho da unidade endereçável da máquina. Cada registrador (uma posição de memória) possui um endereço único. Organização e endereçamento da memória Conceitos importantes: Endereços de memória são valores binários sem sinal (embora os vejamos com frequência como valores hexadecimais, por ser de fácil compreensão). O nº de itens a serem endereçados determina o nº de bits no endereço. Exemplo: int => 4 bytes; char => 1 byte. Organização e endereçamento da memória Os diversos componentes de um computador (CPU, barramentos, E/S, memória, etc.) interagem com o computador através de interrupções. Estas interrupções são eventos que alteram (ou interrompem) o fluxo normal de execução do sistema. Interrupções Uma interrupção pode ser disparada por diversas razões, incluindo: Requisição de E/S (entrada/saída); Erros aritméticos (ex: divisão por zero); Mau funcionamento do hardware; Pontos de parada definidos pelo usuário. Interrupções É uma arquitetura constituída de memória (para armazenar programas e dados), de uma CPU (constituído de uma ULA, unidade de controle e de diversos registradores) e dispositivos de E/S. Ele possui todos os componentes funcionais necessários para ser um computador que funciona. Arquitetura de um computador A arquitetura: A arquitetura Out REG In REG REMRBM PC IR Memória Principal ULA AC CPU Registradores são posições de memória dentro da CPU. Neste exemplo de computador existem sete registradores: AC: o acumulador, que contém valores de dados. REM: registrador de endereço de memória. RBM: registrador de buffer de memória, que contém ou o dado recém lido da memória ou o dado pronto para ser escrito na memória. Registradores e barramentos PC: o contador de programa, que contém o endereço da próxima instrução a ser executada no programa. IR: o registrador de instruções, que contém a próxima instrução a ser executada. InREG: registrador de entrada, que contém dados do dispositivo de entrada. OutREG: registrador de saída, que contém dados para o dispositivo de saída. Registradores e barramentos Além destes, existe um registrador de estado, que contém informações que indicam as várias condições, tais como um overflow em uma ULA. Os dados e instruções são transferidos, de e para registradores, através de barramentos. A figura a seguir mostra o caminho de dados (caminho que a informação percorre). Registradores e barramentos Registradores e barramentos Memória Principal REM PC RBM AC InREG OutREG IR ULA Barramento de 16 bits A arquitetura do conjunto de instruções (ISA) de uma máquina especifica as instruções que o computador pode executar e o formato para cada instrução. Consideramos que cada instrução consiste de 16 bits. Os 4 bits mais significativos , bits de 12 a 15, compõem o opcode (código da operação) que especifica a instrução a ser executada. Arquitetura do conjunto de instruções Os 12 bits menos significativos, bits de 0 até 11, formam o endereço. O formato da instrução é mostrado na figura a seguir. Arquitetura do conjunto de instruções Opcode Endereço 15 12 11 0 A maior parte das ISA (conjunto de instruções) consiste de instruções para processar dados, mover dados e controlar a sequência do programa. O conjunto de instruções é mostrado a seguir. Arquitetura do conjunto de instruções Arquitetura do conjunto de instruções Bin Hex Instrução Significado 0001 1 Load X Carrega o conteúdo do endereço X (memória) em AC 0010 2 Store X Armazena o conteúdo de AC no endereço X 0011 3 Add X Adiciona o conteúdo do endereço X a AC e armazena o resultado em AC 0100 4 Subt X Subtrai o conteúdo do endereço X de AC e armazena o resultado em AC 0101 5 Input Entra com um valor obtido via teclado em AC 0110 6 Output Exibe o valor de AC na tela 0111 7 Halt Termina o programa 1000 8 Skipcond Pula a próxima linha sob condições 1001 9 Jump X Carrega o valor de X no PC Exemplo: suponha que temos a seguinte instrução de 16 bits: Os 4 bits mais à esquerda indicam o opcode (instrução a ser executada). 0001 representa a instrução Load. Os 12 bits restantes indicam o endereço do valor que estamos carregando, que é o endereço 3 (hexadecimal) na memória principal. Esta instrução faz com que o dado encontrado na memória principal, endereço 3, seja copiado no AC. Arquitetura do conjunto de instruções 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 Opcode Endereço 15 12 11 0 Cada instrução (load, por exemplo) envolve várias outras mini instruções. A notação simbólica usada para descrever o comportamento das micro operações é denominada linguagem de transferência entre registradores (RTL). Usamos a notação M[x] para indicar o dado real armazenado na posição X na memória e ← para indicar uma transferência de informação. Linguagem de transferência entre registradores A seguir está representada a linguagem de transferência entre registradores para cada uma das instruções do ISA. Load X: carrega o conteúdo da posição de memória X no AC. REM ← X: o endereço X é colocado no REM. RBM ← M[REM]: o dado do endereço X é movido para RBM. AC ← RBM: o dado é colocado no AC. Linguagem de transferência entre registradores Como o IR deve usar o barramento para copiar o valor de X no REM antes que o dado na posição X possa ser colocado no RBM, esta operação requer dois ciclos de barramento. Portanto, estas duas operações estão em linhas separadas, para indicar que elas não podem ocorrer durante o mesmo ciclo. Linguagem de transferência entre registradores Todos os computadores seguem um ciclo básico de máquina: o ciclo busca-decodifica-executa. Processamento de Instrução Este ciclo representa os passos que um computador segue para executar um programa. O componente encarregado deste ciclo é o processador. Este ciclo é representado no fluxograma a seguir. Processamento de Instrução (o ciclo busca-decodifica-executa) Processamento de Instrução (o ciclo busca-decodifica-executa) Início Copia o PC no REM Copia o conteúdo da memória no endereço REM para IR; Incrementa PC de 1 Instrução requer operando? Decodifica a instrução e coloca bits IR [11-0] no REM Executa a instrução Copia o conteúdo da memória no endereço REM para RBM Busca Decodifica Executa NÃOSIM