Aula 12: Memória: Barramentos e Registradores Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 1 / 34
Revisão Diego Passos (UFF) Memória: Barramentos e Registradores FAC 2 / 34
Na Aula Passada Discutimos o papel da memória em um sistema de computação Armazenar informações Dados, código Vimos que fisicamente a memória é organizada hierarquicamente Em termos lógicos, vemos a memória como uma matriz de bits Ou sequência de células de memória de uma largura fixa Diego Passos (UFF) Memória: Barramentos e Registradores FAC 3 / 34
Na Aula Passada (II) Na parte final da aula, falamos sobre as operações da UCP sobre a memória Leitura Escrita Discutimos ainda dois conceitos importantes Alinhamento Padding Diego Passos (UFF) Memória: Barramentos e Registradores FAC 4 / 34
Barramentos Diego Passos (UFF) Memória: Barramentos e Registradores FAC 5 / 34
Barramentos: Motivação Para executar operações sobre a memória, UCP precisa ser capaz de se comunicar É necessário enviar comandos e receber respostas Comandos, neste caso, são simples: Leitura Escrita Mas comandos precisam de argumentos: Leia a posição 2875 Escreva o valor 144 na posição 7765 Diego Passos (UFF) Memória: Barramentos e Registradores FAC 6 / 34
Barramentos: Introdução A comunicação entre a UCP e a memória se dá por intermédio de um barramento Conceito brevemente discutido nas aulas iniciais É um canal de comunicação entre dispositivos Mais de dois dispositivos podem se comunicar Hoje, há várias maneiras diferentes de se implementar barramentos Para efeito desta disciplina, entenderemos um barramento como um conjunto de fios Linhas de comunicação Cada uma capaz de transportar 1 bit de informação Diego Passos (UFF) Memória: Barramentos e Registradores FAC 7 / 34
Barramentos: Organização Em geral, nem todas as linhas de comunicação de um barramento são usadas para transferência de dados Algumas podem ser usadas para envio de informações de controle ou endereçamento Uma possível organização é a divisão em três grupos: Dados (BD) Controle (BC) Endereço (BE) Dados Controle { { Endereço{ Diego Passos (UFF) Memória: Barramentos e Registradores FAC 8 / 34
Características de um Barramento: Largura Quantas linhas alocar para cada grupo do barramento? Decisão de projeto Quanto mais linhas, mais informação podemos transferir de uma só vez Por outro lado, aumenta-se complexidade, custo, O número de linhas no BD é o tamanho da palavra do processador eg, processador de 32 bits necessita de BD com 32 bits de largura O BE precisa de uma largura suficiente para endereçar todas as possíveis células de memória Não é uma regra, mas, em geral, é a mesma largura do BD Finalmente, o BC precisa ter uma largura compatível com o número de mensagens de controle Para apenas leitura/escrita, pode ser uma única linha Diego Passos (UFF) Memória: Barramentos e Registradores FAC 9 / 34
Características de um Barramento: Frequência de Operação A largura do BD determina quanta informação pode ser enviada de uma única vez Se precisarmos enviar um volume maior de dados, teremos que fazer múltiplas transmissões através do barramento Mas quanto tempo demora uma transmissão? Quanto menor esta duração, mais transmissões por unidade de tempo Barramentos operam a uma determinada frequência A frequência determina quantas transmissões podemos realizar por unidade de tempo Geralmente dada em múltiplos de Hertz (Hz) Diego Passos (UFF) Memória: Barramentos e Registradores FAC 10 / 34
Características de um Barramento: Taxa de Transmissão A taxa de transmissão máxima teórica de um barramento é uma função da sua largura e frequência de operação Quanto maior a frequência, maior a taxa Quanto maior a largura, maior a taxa Em geral, podemos calcular a Taxa de Transferência a partir da seguinte fórmula: T = F L Onde: F é a frequência L é a largura Se F é dada em MHz e L em bytes, T é medida em MB/s Diego Passos (UFF) Memória: Barramentos e Registradores FAC 11 / 34
Barramentos: Conectando a UCP à Memória A interconexão entre processador e memória se dá por um barramento Mas há ainda um outro intermediário O controlador da memória A memória principal não é conectada diretamente ao barramento Ao invés disso, liga-se o controlador Controlador é responsável por conversar com o processador E interfacear os comandos para a memória em si Diego Passos (UFF) Memória: Barramentos e Registradores FAC 12 / 34
Barramentos: Conectando a UCP à Memória (II) Dados Controle Endereço Processador Memória Principal Controlador Diego Passos (UFF) Memória: Barramentos e Registradores FAC 13 / 34
Barramentos: Exemplo de Escrita Processador 0110 1010 1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Escrita começa com a UCP transmitindo parâmetros pelo barramento Endereço: 1010 Dado a ser escrito: 0110 Operação: 1 (escrita) Diego Passos (UFF) Memória: Barramentos e Registradores FAC 14 / 34
Barramentos: Exemplo de Escrita (II) Processador 0000 0001 0110 1010 1 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 0 1 1 0 Memória recebe dado, endereço e operação E armazena o valor especificado 1100 1101 1110 1111 Diego Passos (UFF) Memória: Barramentos e Registradores FAC 15 / 34
Barramentos: Exemplo de Leitura Processador 1110 0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0 1 1 Leitura começa com a UCP transmitindo parâmetros pelo barramento Endereço: 1010 Operação: 0 (leitura) Diego Passos (UFF) Memória: Barramentos e Registradores FAC 16 / 34
Barramentos: Exemplo de Leitura (II) Processador 1110 1011 0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0 1 1 Memória recebe endereço e operação E escreve o valor correspondente Muitas vezes, BC contém também um linha chamada ack Neste contexto, pode avisar que dados estão prontos Diego Passos (UFF) Memória: Barramentos e Registradores FAC 17 / 34
Registradores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 18 / 34
Registradores: Conceitos Básicos Falamos brevemente sobre registradores na aula passada São parte da hierarquia de memória Tipo de memória mais próxima do processador E por isso mais rápida Mas para que servem os registradores? Diego Passos (UFF) Memória: Barramentos e Registradores FAC 19 / 34
Registradores: Conceitos Básicos (II) Registradores são memórias capazes de armazenar pequenas quantidades de bits internamente ao processador Em geral, registradores são do tamanho da palavra do processador Ou ligeiramente maiores ou menores Registradores armazenam as informações importantes para a execução imediata Ou em um futuro muito próximo Por exemplo: soma de dois números Ambos os números estarão em registradores Resultado da soma será armazenado em um registrador Diego Passos (UFF) Memória: Barramentos e Registradores FAC 20 / 34
Registradores: Conceitos Básicos (III) Registradores não servem apenas para armazenar operandos e resultados de operações Eles também armazenam informações como: O estado atual do processador Meta-informações sobre a última operação realizada eg, se o resultado foi zero ou negativo O ponto atual de execução de um programa Diego Passos (UFF) Memória: Barramentos e Registradores FAC 21 / 34
Registradores: Tipos Processadores modernos geralmente contêm vários registradores Um processador x86 64, por exemplo, contém cerca de 32 registradores visíveis ao usuário Há processadores especiais, usados para controle do processador Mas nem todos os registradores são iguais Um registrador pode servir a um propósito específico De maneira geral, podemos dividir os registradores em dois grupos: Registradores acessíveis ao usuário Registradores internos Diego Passos (UFF) Memória: Barramentos e Registradores FAC 22 / 34
Registradores: Acessíveis ao Usuário São registradores que estão acessíveis ao programa em execução Um programador pode escrever código que manipula estes registradores Se a linguagem oferecer acesso de nível suficientemente baixo Programas em linguagens de alto nível são traduzidos para operações que os manipulam Dentro desta categoria, podemos fazer uma nova subdivisão Registradores de dados Registradores de endereço Diego Passos (UFF) Memória: Barramentos e Registradores FAC 23 / 34
Registradores: Registradores de Dados Armazenam dados a serem processados Ou resultados de operações Operações da UCP operam sobre estes dados Processadores modernos geralmente fazem distinção entre registradores inteiros e de ponto flutuante Processadores mais antigos ou mais simples normalmente contam com um registrador chamado acumulador Usado como entrada para operações Mas também acumula a saída Diego Passos (UFF) Memória: Barramentos e Registradores FAC 24 / 34
Registradores: Registradores de Endereço Armazenam valores numéricos que dizem respeito a endereços na memória principal Absolutos ou relativos Certas operações de uma UCP usam os valores destes registradores como referências para acessar a memória principal Relação direta com os modos de endereçamento Que serão discutidos daqui a algumas aulas Diego Passos (UFF) Memória: Barramentos e Registradores FAC 25 / 34
Registradores: Outros Registradores Acessíveis ao Usuário Dependendo da arquitetura, há vários outros tipos de registradores acessíveis ao usuário Algumas contêm, por exemplo, registradores constantes Não podem ser escritos Possuem sempre o mesmo valor Algum tipo de constante útil Como 0, 1, ou π Outros comuns são os registradores de propósito especial: Program Counter (PC): contador de programa Palavra de status: informações sobre o estado atual do processador Em geral, não podem ser diretamente escritos Diego Passos (UFF) Memória: Barramentos e Registradores FAC 26 / 34
Registradores: Internos Registradores não são acessíveis ao usuário Programa em execução Nem para leitura, nem para escrita Auxiliam a UCP nas operaçoes a serem executadas Há muitos exemplos, dependendo da arquitetura Por hora, como exemplo, veremos os seguintes: Registrador de Instrução Memory data register (MDR) Memory address register (MAR) Diego Passos (UFF) Memória: Barramentos e Registradores FAC 27 / 34
Registradores: Registrador de Instrução As instruções (operações) que devem ser executadas pelo processador são também armazenadas em memória Em computadores de programa armazenado Logo, elas são representadas como conjuntos de bits Assim como nos esquemas de representação de números, cada bit (ou conjunto de bits) possui um significado Para entender a operação, UCP precisa analisar os bits da instrução Para isso, instrução é colocada em um registrador especial O Registrador de Instrução Discutiremos em mais detalhes as instruções e este registrador em aulas futuras Diego Passos (UFF) Memória: Barramentos e Registradores FAC 28 / 34
Registradores: Registradores de Memória Este conjunto de registradores é usado para auxiliar no acesso à memória principal Tipicamente, são dois registradores diferentes: Memory data register (MDR) Memory address register (MAR) Estes registradores são usados como interfaces para o barramento de acesso à memória Diego Passos (UFF) Memória: Barramentos e Registradores FAC 29 / 34
Registradores: MAR O MAR é o registrador que armazena o endereço da memória principal a ser acessado Tanto no caso de uma leitura, quanto no caso de uma escrita Quando uma operação a ser executada precisa ler ou escrever dados na memória, processador coloca no MAR o endereço correspondente Este valor é transmitido pelo BE para o controlador da memória O número de bits do MAR deve corresponder ao número de bits do barramento Ou seja, ele deve um número suficiente de bits para endereçar todas as células da memória Diego Passos (UFF) Memória: Barramentos e Registradores FAC 30 / 34
Registradores: MDR Analogamente ao MAR, o MDR corresponde aos bits do BD Quando o processador deseja escrever uma palavra na memória, ele a coloca no MDR Após o sinal de escrita ser colocado no barramento, conteúdo do MDR é transmitido através do BD Na leitura, o processo é análogo O que a MP escreve no BD, chega ao MDR no processador Uma vez lá, processador pode facilmente acessar o dado O MDR deve ter o mesmo número de bits da palavra do processador Diego Passos (UFF) Memória: Barramentos e Registradores FAC 31 / 34
Registradores: Voltando ao Exemplo de Leitura na MP Processador MAR MDR 1110 1011 0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 0 1 1 MAR e MDR estão associados ao BE e BD, respectivamente No exemplo, UCP coloca endereço no MAR Após o sinal de leitura no barramento, memória transmite o valor a ser lido Valor é colocado no MDR UCP pode facilmente acessá-lo Diego Passos (UFF) Memória: Barramentos e Registradores FAC 32 / 34
Registradores: Resumindo os Tipos Registradores Acessíveis Internos Dados Endereço Especiais Acesso à MP Instrução Inteiros PF PC Status MDR MAR Lembre-se que arquiteturas diferentes possuem registradores diferentes Processadores reais podem conter outros Diego Passos (UFF) Memória: Barramentos e Registradores FAC 33 / 34
Exercício Um processador possui um BE com capacidade de transferir 33 bits de cada vez Sabe-se que o BD permite a transferência de 4 palavras em cada acesso e que cada célula da MP armazena 1/8 de cada palavra Considerando que a MP pode armazenar no máximo 64 Gibibits, responda: Qual a quantidade máxima de células da MP? Qual o tamanho de cada célula e cada palavra (em bits)? Qual o tamanho do MAR e do BD (em bits)? Diego Passos (UFF) Memória: Barramentos e Registradores FAC 34 / 34