Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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 paratransferê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.
▶ e.g., 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 dememó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 decontrole.
▶ 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õesatravé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 efrequê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
ProcessadorMemóriaPrincipal
Controlador
Diego Passos (UFF) Memória: Barramentos e Registradores FAC 13 / 34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Barramentos: Exemplo de Escrita
Processador
0110 11010
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Escrita começa com a UCPtransmitindo parâmetros pelobarramento.
▶ 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
0110 11010
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0 1 1 0
Memória recebe dado, endereço eoperação.E armazena o valor especificado.
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 UCPtransmitindo parâmetros pelobarramento.
▶ 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 0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1 0 1 1
1011
Memória recebe endereço eoperação.E escreve o valor correspondente.Muitas vezes, BC contémtambém um linha chamada ack.
▶ Neste contexto, pode avisarque 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 bitsinternamente 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.
⋆ e.g., 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 pontoflutuante.Processadores mais antigos ou mais simples normalmente contam com um registradorchamado 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 paraacessar 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émarmazenadas 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 é transmitidoatravé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
1110 0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1 0 1 1
1011
MAR MDR
MAR e MDR estão associados aoBE e BD, respectivamente.No exemplo, UCP colocaendereço no MAR.Após o sinal de leitura nobarramento, memória transmite ovalor 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
Acesso à MP Instrução
MDR MAR
Dados Endereço Especiais
Inteiros PF PC Status
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élulada 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