Arquitetura de Computadores
ECO015
Engenharia de Computação
Aula 3
INTERCONEXÃO DO COMPUTADOR
Aula 3 – Interconexão do Computador
2
Interconexão do computador
 Todas as unidades devem ser conectadas
 Diferentes tipos de conexão para diferentes tipos de
unidades
 Memória
 Entrada/Saída
 CPU
Aula 3 – Interconexão do Computador
3
Módulos do computador
Aula 3 – Interconexão do Computador
4
Conexão da Memória
 Recebe e envia dados
 Recebe endereços (de localizações de memória)
 Recebe sinais de controle
 Leitura (Read)
 Escrita (Write)
 Sincronia (Timing)
Aula 3 – Interconexão do Computador
5
Conexão de Entrada/Saída (1)
 Similar ao de memória do ponto de vista do
computador
 Saída
 Recebe dados do computador
 Envia dado ao periférico
 Entrada
 Recebe dados do periféricos
 Envia dados ao computador
Aula 3 – Interconexão do Computador
6
Conexão de Entrada/Saída (2)
 Recebe sinais de controle do computador
 Envia sinais de controle para periféricos
 e.x. spin disk
 Recebe endereços do computador
 e.x. número de porta para identificar um periférico
 Envia sinais de interrupção (controle)
Aula 3 – Interconexão do Computador
7
Conexão da CPU




Leitura de dados e instruções
Envia dados para escrita (após processamento)
Envia sinais de controle para outras unidades
Recebe (& atua sobre) interrupções
Aula 3 – Interconexão do Computador
8
Tipos de transferência (1)
 Memória para processador
 Processador lê uma instrução ou dado na unidade de
memória
 Processador para memória
 Processador escreve dados na memória
 E/S para processador
 Processador lê dados de um dispositivo por meio de um
módulo de E/S
Aula 3 - Visão de alto nível da função
9
Tipos de transferência (2)
 Processador para E/S
 Processador envia dados para dispositivo de E/S
 E/S de ou para a memória
 Módulo possui permissão para trocar dados diretamente
com a memória, sem passar pelo processador
 DMA – Direct Memory Access
 Por onde ocorrem as transferências de dados?
Aula 3 - Visão de alto nível da função
10
Barramentos
 Existem uma grande combinação de interconexões
no sistema
 Estruturas de barramento Único e Múltiplos são os
mais comuns
 e.x. Barramento de Controle/Endereços/Dados (PC)
 e.x. Unibus (DEC-PDP)
Aula 3 – Interconexão do Computador
11
O que é um barramento?
 Um caminho de comunicação conectando dois ou
mais dispositivos
 Usualmente opera em broadcast (todos os
dispositivos recebem o sinal)
 Frequentemente agrupados
 Vários canais em um barramento
 e.x. barramento de 32 bits de dados é separado em 32
canais únicos
 Existem ainda: barramentos de alimentação
 Não será abordado nesse curso
Aula 3 – Interconexão do Computador
12
Esquema de Interconexão por
barramentos
Aula 3 – Interconexão do Computador
13
Barramento de dados
 Transporta dados
 Neste nível, não existe uma diferenção entre “dados” e
“instruções”
 Largura é o fator determinando de desempenho
 8, 16, 32, 64 bits
Aula 3 – Interconexão do Computador
14
Barramento de Endereços
 Identifica a origem ou o destino dos dados
 e.x. CPU precisa ler uma instrução (dados) de uma
dada localização de memória
 Largura do barramento determina a capacidade
máxima de memória do sistema
 e.x. 8080 possui barramento de 16 bits de endereço
fornecendo 64k de espaço endereçável
Aula 3 – Interconexão do Computador
15
Barramento de Controle
 Informações de Controle e Sincronia







Sinais de leitura/escrita para a memória
ACK de transferência
Requisição de interrupção (interrupt request)
Solicitação de barramento (bus request)
Concessão de barramento (bus grant)
ACK de interrupção
Sinais de clock
Aula 3 – Interconexão do Computador
16
Como acontece a transferência?
 Como deve ser a operação
 Dois passos
 Enviar dados
1. Obter uso do
barramento
2 . Transferir dados
pelo barramento
 Receber dados
1. Obter uso do
barramento
Aula 3 - Visão de alto nível da função
2. Transmitir uma
requisição ao módulo
de entrada e saída
Aguardar....
17
Grandes e amarelos?
 Como identificar um barramento?
 Linhas paralelas nas placas de circuito
 Slots de conexão em placas mãe
 e.x. PCI
 Conjunto de fios
Aula 3 – Interconexão do Computador
18
Problemas de barramento único
 Grande quantidade de dispositivos compartilhando
um barramento levam a:
 Atrasos de propagação
 Caminhos longos de dados implica que a coordenação do
acesso afeta negativamente o desempenho
 Maior parte do sistema utiliza múltiplos
barramentos para superar tais problemas
Aula 3 – Interconexão do Computador
19
Sistema de barramento tradicional (ISA)
(com cache)
 Cache evita o acesso direto do
processador à memória
 Permite que outros dispositivos
acessem o barramento
 Eficaz, porém:
Buffer
Aula 3 – Interconexão do Computador
 Dispositivos começam ficar muito
rápidos e.x. rede, vídeo, etc.
20
Barramentos de alto desempenho
 Cache/Ponte (buffer)
 Barramento de alta velocidade
 Alterações de processador não
afetam o funcionamento dos
outros barramentos
 Dispositivos de alta velocidade mais
perto do processador
Buffer
Buffer
Aula 3 – Interconexão do Computador
21
Tipos de barramentos
 Dedicados
 Separação entre linhas de dados & endereços
 Multiplexados
 Compartilhamento das linhas
 Linha de controle indica quando são dados ou quando
são endereços
 Vantagem – menos linhas
 Desvantagens
 Controles mais complexos
 Degradação do desempenho
Aula 3 – Interconexão do Computador
22
Temporização
 Coordenação dos eventos em um barramento
 Síncrono






Eventos determinados por sinais de clock
Barramento de controle possui uma linha de clock
Um ciclo de barramento 1-0
Todos os dispositivos recebem a linha de clock
Usualmente a sincronia acontece no edge de descida
Usualmente um ciclo de clock por evento
Aula 3 – Interconexão do Computador
23
Diagrama de temporização síncrona
Ciclo de Leitura
 Sinal de clock controla a operação do
barramento
 Ex.
 1º Ciclo: processador coloca sinais
nas linhas de endereço e emite
sinal de ativação do endereço
 2º Ciclo:
 Leitura: memória localiza a
posição
 3º Ciclo:
 Leitura: Memória coloca os
dados no barramento e
processador efetua leitura
Aula 3 – Interconexão do Computador
24
Diagrama de temporização síncrona
Ciclo de Escrita
 Sinal de clock controla a operação do
barramento
 Ex.
 1º Ciclo: processador coloca sinais
nas linhas de endereço e emite
sinal de ativação do endereço
 2º Ciclo:
 Escrita: Processador coloca os
dados nas linhas de memória
 3º Ciclo:
 Escrita: Copia a informação das
linhas de dados para posição
de memória
Aula 3 – Interconexão do Computador
25
Temporização Assíncrona – Diagrama de leitura
 Processador coloca todos os sinais no barramento
 Pulso na linha de leitura faz com que memória localizar o
endereço desejado e coloque os dados no barramento
 Quando o dados for válido a memória ativa a linha de
confirmação e o processador efetua a leitura
Aula 3 – Interconexão do Computador
26
Temporização Assíncrona – Diagrama de escrita
 Processador coloca todos os sinais no barramento
 Pulso na linha de escrita faz com que memória armazene
os dados na posição desejada
 Memória coloca um sinal de confirmação no barramento
Aula 3 – Interconexão do Computador
27
Tipos de transferências de dados
 Perspectiva do processador
Tempo
Endereço
(1ºciclo)
Tempo
Dados
(2ºciclo)
Endereço
Operação de escrita (multiplexada)
Endereço
Tempo
de acesso
Dados
Dados
Operação de escrita ( não multiplexada)
Operação de leitura (multiplexada)
Leitura
de
dados
Endereço
Escrita
de
dados
Tempo
Endereço
Operação de leitura-modificação-escrita
Endereço
Escrita
de
dados
Leitura
de
dados
Dados
Operação de escrita (não multiplexada)
Operação de leitura-após-escrita
Endereço
Dados
Dados
Transferência de dados em bloco
Aula 3 - Visão de alto nível da função
Dados
*Multiplexado – mesmo barramento
para endereço e dados
28
Aula 12
ESTRUTURA E FUNÇÃO DO
PROCESSADOR
AUla 12 - Estrutura e função do processador
29
Organização da CPU
 O projeto de uma CPU deve atender os seguintes
requisitos:
 Busca de instruções (fetch)
 Ler uma instrução da memória (registrador, cache, principal)
 Interpretação de instruções
 Decodificar a instrução e determinar a ação requerida
 Busca de dados
 Ler os dados da memória ou de algum módulo de E/S
 Processamento de dados
 Efetuar uma operação aritmética ou lógica com os dados
 Escrita de dados
 Gravar os resultados na memória ou módulo de E/S
AUla 12 - Estrutura e função do processador
30
Estrutura de barramento e organização
interna
CPU com barramento de sistema
AUla 12 - Estrutura e função do processador
Estrutura Interna da CPU
31
REGISTRADORES
AUla 12 - Estrutura e função do processador
32
Organização dos Registradores
 A CPU deve possuir espaço para manipulação de dados
(armazenamento temporário)
 Número e funções dos registradores variam de acordo com
o design do processador
 Maior decisão de design (quantos e qual função?)
 Nível mais alto da hierarquia de memória
 Dois tipos:
 Registradores visíveis aos usuário
 Registradores de controle e estado
AUla 12 - Estrutura e função do processador
33
Registradores visíveis ao usuário
 São os registradores que podem ser referenciados
pelos recursos da linguagem de máquina que o
processador executa.




Propósito geral
Dados
Endereços
Códigos de condição
AUla 12 - Estrutura e função do processador
34
Registradores de propósito geral (1)
 Pode possuir qualquer função atribuída pelo programador.
Isto é, pode conter um operando para qualquer opcode.
 Porém podem existir restrições para seu uso (ponto
flutuante, operação de pilha, etc)
 Podem ser usados para dados e endereçamento
 Dados
 Acumulador podem ser empregados para cálculos de endereçamentos
 Endereçamento
 Indireto por registrador, deslocamento
 Uso geral ou endereçamento em particular
AUla 12 - Estrutura e função do processador
35
Registradores de propósito geral(2)
 Caso eles sejam de uso geral
 Aumenta a flexibilidade e as opções do programador
 Aumento o tamanho & complexidade das instruções
 Caso eles sejam especializados
 Instruções menores e mais rápidas
 Menor flexibilidade
AUla 12 - Estrutura e função do processador
36
Quantos registradores de propósito geral?
 Entre 8 – 32 (Não muito bem definido)i
 Quanto menos registradores mais referências são
feitas na memória
 Porém, mais registradores não reduz as referências
na memória
AUla 12 - Estrutura e função do processador
37
Qual o tamanho de um registrador?
 Grande o suficiente para armazenar um endereço
completo
 Grande suficiente para armazenar uma palavra
completa
 Deve ser possível combinar dois registradores de
dados:
 Programação em C: long int a;
AUla 12 - Estrutura e função do processador
38
Registradores de controle & status
 Controlam a operação do processador e na maior parte dos
sistemas não é visível ao usuário.
 Diferentes máquinas possuem diferentes organizações.
Porém os quatro essenciais são:




Contador de programas (PC)
Registrador da instrução (IR)
Registrador de endereço de memória (MAR)
Registrador buffer de memória (MBR)
AUla 12 - Estrutura e função do processador
39
Registradores de código de condição
 Conjunto de bits individuais
 e.x. resultado da última operação foi zero
 Pode ser lido (implicitamente) pelos programas
 e.x. Jump se zero
 Não pode (usualmente) ser configurado por programas
AUla 12 - Estrutura e função do processador
40
Palavra de status de um programa
 Muitos modelos possuem palavra de estado do
programa (PSW). Bits comuns encontrados em um
PSW incluem as seguintes informações:






Sinal da última operação aritmética
Zero
Carry
Equal
Overflow
Interrupção Habilitada/desabilitada
AUla 12 - Estrutura e função do processador
41
Códigos condicionais
AUla 12 - Estrutura e função do processador
42
Exemplos de organização de registradores
AUla 12 - Estrutura e função do processador
43
Aula 3
VISÃO DE ALTO NÍVEL DA FUNÇÃO
Aula 3 - Visão de alto nível da função
44
Visão de alto nível
 Possível descrever um sistema de computação de
acordo com:
 O comportamento externo de cada componente
 Dados e sinais de controle que ele troca com os outros
componentes
 Estrutura de interconexão e controles exigidos para
gerenciar a estrutura de interconexão
Aula 3 - Visão de alto nível da função
45
Conceito de programa armazenado
 Três conceitos principais de Von Neumann
 Dados e instruções em uma única memória escrita
 Memória é endereçável por local, sem considerar o tipo
de dados contido
 Execução ocorre de forma sequencial de uma instrução
para a próxima
Aula 3 - Visão de alto nível da função
46
Conceito de programa armazenado (2)
 Sistemas hardwired são inflexíveis
 Hardware de propósito geral?
 Hardware de propósito geral podem realizar diferentes
tarefas – dado os corretos sinais de controle
 Ao invés de re-cabear o hardware, deve-se apenas
utilizar um novo conjunto de sinais de controle
Aula 3 - Visão de alto nível da função
47
Hardwired vs. HW + SW
 Hardwired
 Aceita dados e produz
resultados
 e.x.
 Hardware + Software
 Aceita dados e sinais de
controle e produz resultado
 e.x.
Aula 3 - Visão de alto nível da função
48
HW + SW
O que é um programa armazenado?
 Sinais de controle
 Determina uma sequência de passos
 Para cada passo, uma operação lógica ou aritmética
é realizada
 Para cada operação, um conjunto diferente de sinais
de controle é necessário.
 Conjunto de sinais de controle → Instrução
 Conjunto de instruções → Software
Aula 3 - Visão de alto nível da função
49
Função da unidade de controle
 Para cada operação que pode ser realizada um
único código (opcode) é utilizado
 e.x. ADD, MOVE
 Um segmento do hardware recebe o código e
fornece os sinais de controle
 Dessa forma: Temos um computador!!
Aula 3 - Visão de alto nível da função
50
Componentes do computador:
Visão de alto nível
 Unidade central de
processsamento
 Unidade de Controle
(CU)
 Unidade lógica
aritmética (ALU)
Aula 3 - Visão de alto nível da função
51
Componentes do computador:
Visão de alto nível
 Dados e instruções
devem entrar no
sistema e o
resultado produzido
deve sair
 Entrada/saída Input/output
(módulo I/O)
Aula 3 - Visão de alto nível da função
52
Componentes do computador:
Visão de alto nível
 Armazenamento
temporário do
código e dos
resultados é
necessário
 Memória RAM
Aula 3 - Visão de alto nível da função
53
Interação entre componentes
 CPU → Memória
 MAR – próximo endereço para
leitura ou escrita na memória
 MBR – dados que foram lidos
ou serão escritos na memória
Aula 3 - Visão de alto nível da função
54
Função do computador
 Executar um programa, sendo assim
 CPU deve executar conjunto de instruções que está na
memória
 Como isso funciona?
 Executa os ciclos de cada instrução
Aula 3 - Visão de alto nível da função
55
Ciclo de instrução (1)
 Dois passos:
 Busca (Fetch)
 Execução
Aula 3 - Visão de alto nível da função
56
Ciclo de Busca (Fetch Cycle) (2)
 Contador de Programa (PC)
armazena o endereço da
próxima instrução a ser
buscada
Aula 3 - Visão de alto nível da função
57
Ciclo de Busca (Fetch Cycle) (3)
 Processador busca de uma
localização na memória
apontada pelo contador de
instrução
Aula 3 - Visão de alto nível da função
58
Ciclo de Busca (Fetch Cycle) (4)
 O conteúdo do contador de
programa é incrementado
 Ao menos que o comando
altere seu conteúdo
+1
Aula 3 - Visão de alto nível da função
59
Ciclo de Busca (Fetch Cycle) (5)
 Instrução é armazenada no
Registrador de Instrução (IR)
+1
Aula 3 - Visão de alto nível da função
60
Ciclo de Busca (Fetch Cycle) - Resumo
 Contador de Programa (PC) armazena o endereço
da próxima instrução a ser buscada
 Processador busca de uma localização na memória
apontada pelo contador de instrução
 O conteúdo do contador de programa é
incrementado
 Ao menos que o comando altere seu conteúdo
 Instrução é armazenada no Registrador de Instrução
(IR)
Aula 3 - Visão de alto nível da função
61
Ciclo de execução (Execute Cycle) (1)
 Processador interpreta a
instrução e executa as ações
solicitadas, como:
 Processador - memória
 Transferir dados entre a CPU e a
memória principal
Aula 3 - Visão de alto nível da função
62
Ciclo de execução (Execute Cycle) (2)
 Processador interpreta a
instrução e executa as ações
solicitadas, como:
 Processador – Entrada e Saída
(E/S)
 Transferir dados entre CPU e
módulo de E/S
Aula 3 - Visão de alto nível da função
63
Ciclo de execução (Execute Cycle) (3)
 Processador interpreta a
instrução e executa as ações
solicitadas, como:
 Processamento de dados
 Operações lógicas ou aritméticas
sobre os dados
Aula 3 - Visão de alto nível da função
64
Ciclo de execução (Execute Cycle) (4)
 Processador interpreta a
instrução e executa as ações
solicitadas, como:
 Controle
 Alteração da sequência de
operações
 e.x. jump (desvio)
 Ou ainda, combinações das
funções acima
Aula 3 - Visão de alto nível da função
65
Ciclo de execução (Execute Cycle) Resumo
 Processador interpreta a instrução e executa as
ações solicitadas, como:
 Processador - memória
 Transferir dados entre a CPU e a memória principal
 Processador – Entrada e Saída (E/S)
 Transferir dados entre CPU e módulo de E/S
 Processamento de dados
 Operações lógicas ou aritméticas sobre os dados
 Controle
 Alteração da sequência de operações
 e.x. jump (desvio)
 Ou ainda, combinações das funções acima
Aula 3 - Visão de alto nível da função
66
Máquina Hipotética
0
3 4
Opcode
15
Endereço
(a) Formato da instrução
0 1
15
Magnitude
(b) Formato de inteiro
Contador de programa (PC) = Endereço da Instrução
Registrador de instrução (IR) = Instrução sendo executada
Acumulador (AC) = Armazenamento temporário
(c) Registradores internos da CPU
0001 = Carrega AC da memória (0x1)
0010 = Armazena AC na memória (0x2)
0101 = Adiciona da memória ao AC (0x5)
(d) Lista parcial de opcodes
Aula 3 - Visão de alto nível da função
67
Exemplo de execução de um programa (1)
 Somar o conteúdo das posições de memória
940 e 941 e armazenar na memória
LOAD M(940)
ADD M(941)
STOR M(941)
Contador de programa (PC) = Endereço da Instrução
Registrador de instrução (IR) = Instrução sendo executada
Acumulador (AC) = Armazenamento temporário
(c) Registradores internos da CPU
 Contador de programa = 300
0001 = Carrega AC da memória
0010 = Armazena AC na memória
0101 = Adiciona da memória ao AC
(d) Lista parcial de opcodes
0
3
Opcode
4
15
Endereço
(a) Formato da instrução
Aula 3 - Visão de alto nível da função
68
Exemplo de execução de um programa (2)
LOAD M(940)
ADD M(941)
STOR M(941)
0
3
Opcode
Contador de programa (PC) = Endereço da Instrução
Registrador de instrução (IR) = Instrução sendo executada
Acumulador (AC) = Armazenamento temporário
(c) Registradores internos da CPU
4
15
Endereço
(a) Formato da instrução
(a) Busca
Aula 3 - Visão de alto nível da função
0001 = Carrega AC da memória
0010 = Armazena AC na memória
0101 = Adiciona da memória ao AC
(d) Lista parcial de opcodes
(b) Execução
69
Exemplo de execução de um programa (3)
LOAD M(940)
ADD M(941)
STOR M(941)
0
3
Opcode
Contador de programa (PC) = Endereço da Instrução
Registrador de instrução (IR) = Instrução sendo executada
Acumulador (AC) = Armazenamento temporário
(c) Registradores internos da CPU
4
15
Endereço
(a) Formato da instrução
(a) Busca
Aula 3 - Visão de alto nível da função
0001 = Carrega AC da memória
0010 = Armazena AC na memória
0101 = Adiciona da memória ao AC
(d) Lista parcial de opcodes
(b) Execução
70
Exemplo de execução de um programa (4)
LOAD M(940)
ADD M(941)
STOR M(941)
0
3
Opcode
Contador de programa (PC) = Endereço da Instrução
Registrador de instrução (IR) = Instrução sendo executada
Acumulador (AC) = Armazenamento temporário
(c) Registradores internos da CPU
4
15
Endereço
(a) Formato da instrução
(a) Busca
Aula 3 - Visão de alto nível da função
0001 = Carrega AC da memória
0010 = Armazena AC na memória
0101 = Adiciona da memória ao AC
(d) Lista parcial de opcodes
(b) Execução
71
Ciclo de Instrução – Diagrama de Estados
CPU-Memória
Operações
na CPU
Aula 3 - Visão de alto nível da função
72
Download

Aula 1.1 – Arquiterura de Computadores