SlideShare uma empresa Scribd logo
1 de 95
Baixar para ler offline
Arquitetura de Computadores II Página 1 de 95
Apontamentos Teóricos
Arquitetura de Computadores II
2013-2014 – 2ºSemestre
Conteúdo
1. Introdução......................................................................................................................... 2
2. Sistema de Input/Output .................................................................................................. 3
3. Buses – Barramentos....................................................................................................... 12
4. Comunicação em série, barramentos e interface........................................................... 26
5. Comunicação em série – UART ....................................................................................... 28
6. Comunicação em série – RS-232C................................................................................... 32
7. Comunicação em série – USB – Universal Serial Bus ...................................................... 35
8. Comunicação em série – I2
C............................................................................................ 44
9. Comunicação em série – SPI ........................................................................................... 52
10. Comunicação em série - CAN...................................................................................... 57
11. Memória, conceitos .................................................................................................... 68
12. Memória – Tecnologias de memória .......................................................................... 73
13. Memória – SRAM: Static Access Memory................................................................... 75
14. Memória – DRAM: Dynamic Access Memory ............................................................. 77
15. Memória Interna: deteção e correção de erros.......................................................... 83
16. Memória - Cache......................................................................................................... 84
17. Memória Flash............................................................................................................. 95
Arquitetura de Computadores II Página 2 de 95
1. Introdução
Componente de um sistema de computação:
AC1 : Processor, Control , Datapath
AC2: Memory Input/Output -> Mundo exterior
Sistema embebido (embedded)
 Sistema de computação especializado - uma função específica, dedicada, num sistema
maior, mais complexo, custo muito inferior, recursos disponíveis são limitados.
 Realiza uma tarefa específica ou o controlo de um determinado dispositivo.
 Tem requisitos próprios e executa apenas tarefas pré-definidas.
 É normalmente implementado com base num microcontrolador;
 Exemplos: Automóveis (ABS, sistema de controlo da estabilidade, controle do motor…);
Sistema de telecomunicações (centrais telefónicas, network routers, telemóveis);
Produtos eletrónicos de consumo (DVD, maquina fotografias, camaras de vídeo…)
 Essencial: ligação ao mundo exterior
Processador e o I/O
 Microprocessador de 500 MHZ pode executar 500 milhoes de
instruções por segundo – I/O devides de 0,01KB/s a 30000KB/s.
 Input - dispositivos pode não estar pronto a enviar dados rapidamente
quanto o processador os lê;
 Output - dispositivos pode não estar pronto a aceitar dados
rapidamente quanto o processador os produz.
Microcontrolador
 Computador integrado num chip (µC) - Processador + Memoria +
Periféricos – um computador dedicado utilizado em sistemas
embebidos (Embedded Microcontroller)
 Constituído por: Microprocessador, memoria, I/O ports, … também
temporizadores, conversores A/D…
 Barramentos (dados, endereços e controlo), interligam todos estes dispositivos.
 Ports I/0 – podem ser configurados para diferentes funções
Microcontrolador PIC32
 Diagrama de blocos
Figura 1 Microcontrolador
constituído por um
Microprocessador
Arquitetura de Computadores II Página 3 de 95
 Factores de desempenho: velocidade do processamento
o Microcontroladores: rapidez de resposta a eventos externos/ consumo de
potencia/ minimização das necessidade de memoria/ velocidade de
processamento/…
 Mapa de memoria do PIC32
Zona de memoria com os registos dos perifericos SFRs – Special Function Registers
2. Sistema de Input/Output
Conceitos base
 O sistema de entrada/saída providencia os
mecanismos e os recuso para a comunicação entre
o sistema computacional e o exterior
 Troca de informação como o exterior: o processo –
Input/Output(I/O); o dispositivo – periférico
Periféricos num sistema de computação
 Grande variedade de tipos de operação: impraticável incorporar no processador a logica
necessária para controlar uma gama diversificada de periféricos
 Velocidade de transferência de dados frequentemente mutos menos do que a do
processador e da memória: impraticável usar o processador para comunicar
diretamente com o periférico
 Usar frequentemente formatos de dados e comprimentos de palavras diferentes dos do
processador
 Necessário I/O Modulo (I/O Adapters)
I/O Module
Arquitetura de Computadores II Página 4 de 95
 Funções: Interface com (comunicação) o processador e a memória / Interface com
(comunicação) um ou mais periféricos / Controle e temporização (coordenação do fluxo
de dados entre o sistema e os periféricos) / Buffer de dados (memoria local) / Deteção
de erros
 A comunicação entre o processador e o module I/O é feita através de um meio de
partilha com outros dispositivos – BUS
 A interface de I/O pode ser vista como um módulo de compatibilização entre as
características e modo de funcionamento do sistema computacional e o dispositivo
físico propriamente dito.
 A interface de I/O assegura 3 funções fundamentais:
o Adequação, ao nível do hardware, das características do dispositivo físico de
I/O às características do sistema digital ao qual tem que se ligar. Deste modo o
periférico liga-se ao sistema através dos barramentos, do mesmo modo que
todos os outros dispositivos (memória ou outros periféricos)
o Interação com o dispositivo físico: adequação às particularidades do
dispositivo, formatação de dados, detecção de situações de erro, ...
o Adequação, ao nível do software, do dispositivo físico à forma de organização
do sistema computacional, disponibilizando e recebendo informação através
de registos; esta solução esconde do programador a complexidade e os
detalhes de implementação do dispositivo periférico
 Com a adoção da interface de I/O o dispositivo externo, independentemente da sua
natureza e função, passa a ser encarado pelo programador como uma colecção de
registos de dados, de controlo e de status
 O conjunto de registos e a descrição de cada um deles são específicos para cada
periférico e constituem o que se designa por modelo de programação do periférico
Periféricos (Dispositivos externos)
 Definição: Grande variedade; com métodos de operação diversos; assíncronos
relativamente ao CPU; != quantidade de informação com != formatos a != velocidade;
mais lenta que o CPU e a memória;
 Interface com o I/O module: Control Signals -
determinam a função a executar pelo periférico
-I/P (Read) – enviar dado para I/O module --
O/P(Write)- receber dados do I/O module;
Status signals – indicam o estado do periférico;
Data – conjunto de bits a ser recebidos ou
enviados pelo I/O module
 Periférico: Control Logic – controla a operação
do periférico segundo as diretivas do I/O
module; Buffer – armazena temporariamente os
dados transferidos entre o I/O module e o exterior; Transducer – conversão dos sinais
elétricos em outras formas;
Periféricos – Teclado e discos magnéticos
 Teclado: unidade de informação – caracter- código de 7 ou 8 bits (ASCII); dois tipos de
caracteres: -Visualizáveis – alfabéticos e numéricos; -De controle: controlam a
impressão dos caracteres ou de comunicação;
 Transducert – quando o utilizador prime uma tecla traduz o sinal grado num conjunto
de bits correspondentes ao código do carater escrito que são transmitidos ao I/O
module;
Arquitetura de Computadores II Página 5 de 95
 Discos Magnéticos – contém eletrónica para comunicar dados, e sinais de controle e de
status com o modulo de I/O; Transdutor que converte a informação armazenada
magneticamente na superfície do disco em bits que coloca no Buffer e vice-versa;
Eletrónica que controla o movimento das cabeças de leitura/escrita, posicionando-as
nos trilhos a ler;
Transferência de dados de um periférico para o computador
1) Processador interroga o módulo de I/O para verificar o estado (status bits) do periférico
2) Módulo de I/O transmite status ao processador
3) Se o periférico está operacional e pronto a transmitir o processador transmite um
comando de leitura módulo de I/O
4) O módulo de I/O obtém o dado do periférico
5) O dado é transferido para o processador
Modelo de programação – Módulo de I/O
 Data register – registo onde o processador coloca o dado a ser escrito no periférico
(output) e onde o periférico coloca o dado a ser lido pelo processador (input)
 Status register (ready-only) – bits que indicam o estado do periférico
 Control register (write-only) – registo onde o processador escreve os comandos/modo
de operação para o periférico
Processador <-> Modulo de I/O
 Descodificação dos comandos: o módulo de I/O recebe comandos do processador
através do barramento de controlo (control bus)
 Dados: transferidos através do barramento de dados (Data bus)
 Status: status bits – BUSY, READY, condições de erro,…
 Descodificação de endereço: cada I/O module tem de reconhecer os endereços dos
periféricos que controla
Módulo de I/O <-> Periférico
 Comandos / Informação de estados do periférico (Status) / Dados – DATA BUFFERING /
Velocidade de transferência de dados do processador e da memória são várias ordens
de grandeza maiores do que as de muitos periféricos
 Necessidade de Data Buffer no módulo de I/O
Estrutura do Module I/O
 System Bus Lines: O módulo conecta-se ao resto do computador através de um
conjunto de linhas de sinal;
 Control: usados para ativar um periférico e indicar-lhe o que fazer
 Test: usados para testar varias condições do estado do dispositivo
Arquitetura de Computadores II Página 6 de 95
 Read: o módulo de I/O obtém um dado do periférico e coloca-o num buffer interno. O
processador obtém o dado indicando ao módulo o que o coloque no Data Bus
 Write: o módulo de I/O recebe o dado (byte ou word) do data bus e transmite-o
posteriormente ao periférico.
Comunicação entre processador e módulo de I/O
 Processador necessita de:
o Definir o modo de operação dos periféricos;
o Indicar qual a operação a efetuar (leitura ou escrita);
o Saber qual o estado dos periféricos;
o Escrever nos registos de controlo; ler registo de status
o Enviar ao periférico dados (escrita) e ler dados fornecidos pelo periférico (leitur)
o Ler/escrever nos registos de dados
Como identificar os registos de I/O?
 Alternativas: Agrupados num espaço de endereçamento próprio, distinto do espaço de
endereçamento de memória – I/O isolado
 Reportório de instruções inclui instruções específicas para I/O (Intel x86: instruções in e
out; espaço de endereçamento de 64 kB (endereço de I/O de 16bits))
 Registo de I/O mapeados em memória – Memory-mapped I/O
 MIPS: instruções de load e store para comunicar com os periféricos
Técnicas de transferência de informação - I/O
 I/O Programado: a entrada e saída de dados é feita sob controlo do programa, que
interroga o módulo de I/O (polling) – o CPU toma a iniciativa
 Sob Interrupção (Interrupt driven): o periférico, quando necessita de atenção, gera um
pedido de interrupção. O processador interrompe o programa em execução para
executar uma sub-rotina que faz a transferência de dados de/para o periférico. O
periférico sinaliza o CPU de que está pronto para trocar informação (leitura ou escrita).
O CPU controla a transferência.
 Acesso direto à memória (DMA): os dados são transferidos diretamente entre o
periférico e a memória sem intervenção do processador (CPU)
Operação de input
I/O Programado
 Quando o processador está a executar um programa e encontra uma instrução
relacionada com o módulo de I/O
 Processador envia um comando ao módulo de I/O
Arquitetura de Computadores II Página 7 de 95
 Módulo de I/O executa a ação especificada no comando e coloca nos seus bits de status
os valores apropriados (sem tomar qualquer ação para alertar o processador)
 O processador lê periodicamente o estado do módulo de I/O até verificar que a
operação terminou
Sequência temporal para escrita:
Secções 1,2 e 3 do programa não envolvem I/O
4- Preparação da operação de I/0:
 Verificar status do dispositivo
 Transferir o dado para o módulo I/O
 Prepara os parâmetros para o comando de I/O
 Emitir o comando de I/O e aguardar que o dispositivo o
execute (testar status)
5- Completar a operação
I/O sob interrupção (exemplo leitura)
 Processador envia ao periférico um comando de leitura
 Processador prossegue execução – quando termina execução do comando o periférico
gera interrupção
 Processador executa rotina de tratamento de interrupções (interrupt servisse routine) :
1. Identifica a origem da interrupção; 2.verifica status do periférico; 3.lê o novo dado; 4.
Armazena-o na memória;
 Processador retoma execução do programa
Interrupções - Transferência de controlo
I/O por interrupção
 Na técnica de E/S por interrupção quando o periférico está pronto para
disponibilizar/receber informação sinaliza o CPU;
 Uma interrupção, depois de reconhecida, faz com que o CPU abandone
temporariamente a execução do programa em curso para executar a rotina que dá
seguimento à interrupção gerada
o A rotina associada à interrupção designa-se por rotina de serviço à interrupção
ou interrupt handler
 A transferência é também efetuada pelo CPU mas o tempo de espera é eliminado, uma
vez que a interrupção ocorre quando o periférico está pronto para a troca de informação
Arquitetura de Computadores II Página 8 de 95
 Esta técnica mascara o problema da longa latência descrito no exemplo de leitura de
informação de uma unidade de disco
Processamento de uma interrupção
1. The device issues an interrupt signal to the processor.
2. The processor finishes execution of the current instruction before responding
to the interrupt.
3. The processor tests for an interrupt, determines that there is one, and sends an
acknowledgment signal to the device that issued the interrupt. The
acknowledgment allows the device to remove its interrupt signal.
4. The processor now needs to prepare to transfer control to the interrupt routine.
To begin, it needs to save information needed to resume the current program
at the point of interrupt. The minimum information required is (a) the status
of the processor, which is contained in a register called the program status
word (PSW), and (b) the location of the next instruction to be executed, which
is contained in the program counter. These can be pushed onto the system
control stack.
5. The processor now loads the program counter with the entry location of the
interrupt-handling program that will respond to this interrupt. Depending on
the computer architecture and operating system design, there may be a single
program; one program for each type of interrupt; or one program for each
device and each type of interrupt. If there is more than one interrupt-handling
routine, the processor must determine which one to invoke. This information
may have been included in the original interrupt signal, or the processor may
have to issue a request to the device that issued the interrupt to get a response
that contains the needed information.
6. At this point, the program counter and
PSWrelating to the interrupted
program have been saved on the
system stack. However, there is other
information that is considered part of
the“state”of the executing program.
In particular, the contents of the
processor registers need to be saved,
because these registers may be used
by the interrupt handler. So, all of
these values, plus any other state
information, need to be
saved.Typically, the interrupt handler
will begin by saving the contents of
all registers on the stack.Figure 7.7a
shows a simple example. In this
case,a user program is interrupted
after the instruction at location N. The
contents of all of the registers plus the
address of the next instruction (N+1)
are pushed onto the stack.The stack
pointer is updated to point to the new
top of stack, and the programcounter
is updated to point to the beginning of
the interrupt service routine.
7. The interrupt handler next processes
the interrupt. This includes an
examination of status information
relating to the I/O operation or other
event that caused an interrupt. It may
also involve sending additional
commands or acknowledgments to
the I/O device.
8. When interrupt processing is
complete, the saved register values
are retrieved from the stack and
restored to the registers
9. The final act is to restore the PSW and
program counter values from the
stack. As a result, the next instruction
to be executed will be from the
previously interrupted program.
Múltiplas fontes de interrupção
 Impedir as interrupções (interruput disable) enquanto está a ser processada uma
interrupção – não tem em conta a necessidade de garantir tempos de resposta
 Definir prioridade para as interrupções, permitindo que a rotina de tratamento de uma
interrupção seja interrompida para entender pedidos de interrupção de um dispositivo
com maior prioridade
Arquitetura de Computadores II Página 9 de 95
Prioridades:
 Printer: 2;
 Disco:4;
 Dispositivos de comunicação: 5
 T=10 – printer IT;
 T=15 –communication device IT;
 T=20 – disk IT
a) Sem prioridade
b) Com prioridade
Controlador de interrupções
 Programação: *Enable/ Disable dos pedidos de interrupção de cada periférico; * Definir
os níveis de prioridade de atendimento dos pedidos de interrupção dos vários
periféricos
 Operação: 1. Periférico x pede interrupção; 2. Se (ITX enabled) controlador de IT
transmite pedido de interrupção ao CPU; 3. CPU termina instrução em curso e se
prioridade de ITReq > nível de prioridade atual IT acknowledge; 4. Salvaguarda do PC e
transferência de controlo para IT Handler – Non-vectrorel IT – IT Handler identifica
periférico que pediu IT; Vectored IT – Controlador de IT fornece IT vector – controle
transferido diretamente para o IT Handler do periférico que pediu IT
Interrupções: o CoProcessador 0
 Configuração do CPU
 Controle de
exceções/Interrupções
 Controle da cache
 Controlo da MMU (Memory
Management Unit)
Arquitetura de Computadores II Página 10 de 95
Registos relacionados com exceções/interrupções
mtc0 s, <n> #move to cp0
Coloca o conteúdo do registo s do
processador no registo n do CP0
mfc0 d, <n> #move from cp0
Transfere o conteúdo do registo n
do CP0 para o registo d do
processador – única maneira de
inspecionar o conteúdo de um
registo de CP0
eret # return from exception
Rfe nas primeiras versões do MIPS
Status register bits
 IE – Interrupt Enble (bit 0) – permite/inibe globalmente as interrupções
 IM7-0 – Interrupt Mask(bits 15-8) : *define individualmente as fontes de interrupção
que podem causar exceções; * 6 (das 8) fontes de interrupção são geradas por sinais
externos À CPU (as outras duas são internas ao CPU); * bit = 1 enables a interrupção
correspondente;
 EXL – Exception Level (1bit) – set quando ocorre uma interrupção/exceção – coloca o
CPU em modo kernel e inibe as interrupções, permitindo ao s/w definir uma nova
interrupt mask e o nível de privilégio do CPU
Cause Register
 IP7-0 – Interrupt Pending – pedidos de interrupção pendentes. Cause (IP7-2) (bits 15-
10) indica os pedidos externos de interrupção- O AND com a interrupt Mask (SR) define
os pedidos de interrupção ativos
 TI – Timer Interrupt (bit30) – interrupção causada pelo timer do CPU
EBase Register
 ExceptionBase (bits29-12) – endereço base dos vetores de interrupção
 Prioridade das interrupções no MIPS
 A arquitetura MIPS não suposta a definição de prioridades diferentes para as fontes de
interrupção, deixando essa responsabilidade para o software
 PIC32 – prioridade definidas pelo Priority Interrupt Controller (externo ao processador)
Programação I/O – DETPIC32
PortB
PortD
PortC
PortG
PortF
PortE
8 pins
Arquitetura de Computadores II Página 11 de 95
Portas do PIC 32 – Estrutura simplificada
Programação de uma porta
 Designação das portas: TRISX , LATX, PORTX | x = B,C,D,E,F ou G
 Comunicação com as portas:
o Registos mapeados no espaço de endereçamento de memória (memory-
mapped I/O): leitura de registos: instrução de load; escrita em registos:
instrução de store
o Acesso aos registos: endereço – base da zona dos registops de I/O + posição do
registo 0xBF800000 (SFR_BASE; SFR_BASE_HI = 0xBF80)
1. Configurar porta – escrever no registo TRISx.
Exemplo : configurar os bits 0 e 2 de TRISE como porta de saída (s/ alterar a
configuração dos outros bits); endereço relativo ao TRISE = 0x6100
lui $t1, SFR_BASE_HI
lw $t2, TRISE($t1) # ler configuração de PORTE
andi $r2, $t2, 0xFFFA # bits 0 e 2 de $t2=0
sw $t2, TRISE($t1) # pins 0 e 2 de PORTE configurados como de saída; restantes
bits inalterados
2. Comunicação de dados com a porta:
Ler portas de entradas; atribuir valores às portas de saída
Arquitetura de Computadores II Página 12 de 95
3. Buses – Barramentos
Interligação dos blocos de um sistema de computação
Como interligar processador, memoria e os dispositivos de
entrada e saída de dados?
BUS – estrutura de interligação. A topologia de barramento
permite que diversos módulos compartilhem a mesma ligação
física (desde que os requisitos elétricos e físicos sejam
respeitados). A partilha de um recurso (barramento) requer um
protocolo para seleção dos interlocutores, este seleção é
efetuada através de endereçamento. Cada fio transporta
informação relativa a 1 bit. Tipos de interligações possíveis:
a) Ligações ponto-a-ponto
Full crossbar ou matrix bus
Ligação entre cada 2 componentes através de
linhas dedicadas exclusivamente a essa ligação
b) Vias de comunicação (linhas) comuns – partilhadas pelos diferentes componentes
do sistema de computação
Shared Bus
Os vários componentes do sistema estão
interligados por linhas partilhadas entre todos
eles – sinais transmitidos por um dos
dispositivos disponíveis para receção por
qualquer dos dispositivos ligados ao bus
Tipos de dispositivos ligados a um BUS
 Master – dispositivo que pode iniciar uma transferência de dados – read ou write -
exemplo processador
 Slave – dispositivo que só responde a pedidos de transferência de dados, não podendo
formula-los – exemplo memoria
Arquitetura de Computadores II Página 13 de 95
Módulos ligados ao BUS
Memoria
N posições, cada uma com um endereço (0,1,…N-1).
Uma palavra pode ser lida ou escrita na memória.
Read, Write – sinais de controlo: indicam a operação
Módulo de I/0
 M portas – cada modulo pode controlar vários
(M) periféricos – cada um desse interfaces é
uma porta e tem um endereço (0,1,…M-1).
Duas operações: read e write
 External data – linhas para entrada e saída de
dados do periférico
 Interrupt singnals – módulo pode enviar
pedidos de interrupção ao processador
Processador
 Lê instruções e dados e escreve dados depois
de processados
 Usa os sinais de controlo para controlar a
operação do sistema de computação
 Recebe pedidos de interrupção
Tipos de transferência que um BUS tem de suportar
 Memoria -> CPU: CPU lê uma instrução ou um dado da memória
 CPU -> memoria: CPU escreve um dado na memória
 I/O -> CPU: CPU lê um dado do periférico através do módulo de I/P
 CPU -> I/O: CPU envia dados par ao periférico
 I/O <-> memoria: periférico troca dados diretamente com a memória sem intervenção
do processador (DMA)
Ligações a um BUS
 Bus de Dados – linhas que permitem movimentar dados entre os módulos
 Bus de endereços – linhas que especificam a origem ou o destino dos dados no data bus
 Bus de controlo – controlam o acesso ao bus e a utilização das linhas de dados e de
endereços
Características dos BUS
 Largura do bus – número de linhas de endereço e de dados (32bits bus, 64bits bus)
 Tipo de bus - *Dedicado – linhas distintas para endereços e dados; *Multiplexado –
endereços e dados usam as mesmas linhas
 Tipo de comunicação no bus – síncronas e assíncronas
 Métodos de arbitragem
 Tipos de transferência de dados suportados
Arquitetura de Computadores II Página 14 de 95
Bus Standards
 Definição de standards abertos, independes do fabricante, permite fornecimento de
módulos (placas) para ligação a periféricos por parte de outros fornecedores – a IBM ter
tornado publica a definição de bus ISA e IBM PC foi essencial para o desenvolvimento
da indústria
O que exige a um bus?
 Que estabeleça satisfatoriamente os mecanismos de comunicação requeridos
 Definição bem especificada e bem documentada para permitir que interfaces
desenhados por fornecedores concorrentes ao longo do tempo sejam efetivamente
compatíveis
 Que evite a imposição de restrições desnecessárias ao desempenho do sistema
 Custo compatível com o mercado alvo
 Permitir a expansão e evolução no futuro a um custo razoável
Taxas de transferências – Bus transfer rate
Novas aplicações exigem maiores taxas de transferências: Gigabit Ethernet, Video-on-demand…
Limitações de ter um único BUS
Se um grande número de dipositivos estiver ligado a um bus o desempenho degrada-se:
1. Mais dipositivos implicam maior comprimento de bus, i.e. tempo de propagação dos
sinais no bus aumenta
2. O bus pode tornar-se um estrangulamento do sistema quando as texas de transferência
de informação entre o conjunto de dispositivos ligados ao bus se aproxima da capidade
deste
 Hierarquia de buses em lugar de um único bus
Hierarquia de BUSES
BRIDGE- liga 2 buses
Atua como slave de um
lado e master do outro
Arquitetura de Computadores II Página 15 de 95
PC dos anos 90
PIC32
System Bus / High-Speed Bus
Peripheral Bus
On-chip buses
Arquitetura de Computadores II Página 16 de 95
Diagramas Temporais
Os diagramas temporais são usados para ilustrar sequências de eventos e dependências entre
eventos.
A comunicação entre os dispositivos conectados a um bus ocorre ao longo de um conjunto de
linhas capazes de transportar sinais. Existem dois níveis de sinal (níveis de tensão), que
representam a gama binária (0 ou 1), que podem ser transmitidos. Um diagrama de tempos
mostra os níveis de sinais numa linha em função do tempo.
Por convenção, o nível 1 de sinal é descrito como um nível mais elevado do que o nível 0.
Normalmente, binário 0 é o valor padrão.
Isto é, se não houver dados a linha é representada com o valor binário 0.
Uma transição de sinal de 0 a 1 é frequentemente referido como sinal leading edge , enquanto
que uma transição de 1 para 0 é referido como sinal trailing edge .
Tais transições não são instantâneas, mas este tempo de transição é geralmente pequeno em
comparação com o nível de sinal.
Num diagrama de tempo, pode acontecer que uma variável em menor quantidade irrelevante
de tempo decorrido entre os eventos de interesse. Este é representado por uma lacuna na linha
do tempo.
Os sinais são, por vezes, representada em grupos (b). Por exemplo, se os dados são transferidos
de um byte de cada vez, em seguida, são necessárias oito linhas. Geralmente, não é importante
conhecer o valor exato a ser transferido, mas apenas se os sinais estão presentes ou não.
A transição do sinal em uma linha pode desencadear um dispositivo anexado a fazer mudanças
de sinal em outras linhas. Por exemplo, se um módulo de memória deteta um sinal de controlo
de leitura (0 ou 1 de transição), irá colocar os sinais de dados sobre as linhas de dados. Tais
relações produzem sequências de eventos.
As setas são usadas nestes diagrama para mostrar as dependências existentes. c)
A barra superior sobre o nome do sinal indica que o sinal é ativo a low. Por exemplo, o command
está ativo, ou seja, em 0 volts. Isto significa que o command = 0 é interpretado como valor lógico
1, ou verdadeiro.
A linha de relógio é muitas vezes constituinte de um sistema de barramentos. Um relógio
eletrónico está ligado à linha do relógio e fornece uma sequência repetitiva, regular de
transições.
Arquitetura de Computadores II Página 17 de 95
Transferências num BUS síncrono - read e write
Relógio comum: todas as transferências se efetuam numa
transição do relógio
Read
Processador coloca um endereço de memória no Addr.Bu no 1º
ciclo de relógio e sinaliza Addr.Enable. No 2º ciclo emite o
comando Read
Modelo de memória reconhece o endereço e coloca o seu
conteúdo no bus no ciclo de relogio seguinte
Processador lê o dado no data bus e desativa Read
Write
Processador coloca um endereço de memória no Addr.Bus no
1º ciclo e o dado no Data bus no 2ºciclo de relógio e emite o
comando Write
Módulo de memória copia a informação do data bus durante o
3º ciclo de relogio
Nota: Necessário tempo para que as linhas do bus estabilizem
Transferência num Bus Assíncrono
Inexistência de relógio – a sincronização das transferências é feita por sinais gerados pelos
dispositivos
Handshake
Read – Acknowledge
Read - Acknowledge
Handshake
Write - Acknowledge
Diferenças entre bus síncrono e assíncrono
 Bus síncrono – módulos de interface com os periféricos têm de ser capazes de responder
no tempo de um ciclo de relógio; permite maior rapidez; dispositivos mais lentos
condicionam as taxas de transferência nos bus
 Bus assíncrono – módulos de interface podem responder ao seu próprio ritmo – mais
fácil acomodar periféricos com diferentes tempos de resposta; Handshake implica 2
tempos de propagação no bus – mais lento;
Arbitragem do bus
 Bus com mais do que um módulo master – qualquer master pode iniciar uma
transferência de dados
 Necessário mecanismo de arbitragem para decidir que master assume o controlo do bus
quando vários o pretendem fazer. Alternativas:
o Arbitragem centralizada – a decisão de atribuição do bus é feita por um
dispositivo especial – o árbitro
Arquitetura de Computadores II Página 18 de 95
o Arbitragem descentralizada – o mecanismo de decisão envolve todos os
masters não existindo um árbitro individualizado
Arbitragem e descodificação de endereços centralizadas
 O decoder tem como input as linhas de endereço no bus e gera (usualmente a partir dos
seus bits mais significativos) os sinais de seleção do módulo slave respetivo
 Arbitro te como input as linhas de bus request dos masters e como output linhas de bus
grant de ligação a cada master
 Fácil adicionar novos módulos ao bus
Arbitragem e descodificação de endereços distribuídas
 Descodificação de endereços feita internamente em cada módulo
 Vantagem: menos vias de ligação
 Custo: logica de descodificação replicada em cada módulo
Políticas de arbitragem
Prioridade fixa – a cada um dos masters no bus é atribuída uma prioridade fixa
1. Nom-pre-emptive – uma vez obtido o controlo dos bus o módulo matem-no até
terminar a transferência, mesmo se no decorrer desta um módulo de prioridade mais
elevada formule um bus requesrt
2. Pre-emptive – uma transferência de prioridade mais baixa é interrompida por um
pedido de acesso de um módulo com prioridade mais elevada
 Starvation – módulos de prioridade mais baixa
Round-robin – acesso ao bus é atribuído rotativamente – um master quando termina a
transferência para o controle ao master seguinte
 Acesso equitativo ao bus
 Transferências de dados críticas podem ter de esperar um tempo longo
Prioridade dinâmica – prioridades podem variar em runtime (com o sistema ligado ) consoante
o perfil de trafico das aplicações – exige mecanismos de analise do trafego do bus
 Custo de implementação elevado
Arquitetura de Computadores II Página 19 de 95
Transferências de dados com arbitragem – Non-pipelined
T1 . Pedido ao árbitro para acesso ao bus – BUSREQ
T2 . Arbitro atribui controle do bus – GRANT
T3 . Master coloca o endereço em ADDR e ativa as linhas de controle – read
T4 . Slave reconhece endereço e coloca dado em RDATA – data lines
T5 . Novo pedido do bus ao arbitro – BUSRED
Transferências de dados com arbitragem – pipelined (non-multiplexed buses)
Endereços e dados sobrepostos
Arquitetura de Computadores II Página 20 de 95
Burst transfers – non-pipelined
 Envio de múltiplos dados com uma única arbitragem par toda a transação
 Master tem de indicar ao árbitro que pretende transferir múltiplos dados
 Poupa tempo
Burst trasnfers pipelined
 Só possível em buses não multiplexados
 Reduz a latência da transferência
Split transfers
Quando existem ligados ao bus dispositivos – slave – que necessitam de vários ciclos de relógio
para colocar no bus um dado o bus continua atribuído ao master que pediu a transferência e o
acesso permanece bloqueado para outros masters
Solução:
1. O slave indica ao árbitro uma transferência SPLIT
2. Árbitro mascara o pedido do master que iniciou a transferência e atribui o bus a outro
master
3. Quando o slave está pronto a transferir o dado indica-o ao árbitro (“un-split”) e este tira
a mascara ao pedido do master
4. O master retorna o controlo do bus de acordo com o algoritmo de arbitragem e o slave
completa a transferência
Arquitetura de Computadores II Página 21 de 95
Alguns dos bases mais utilizados – IO BUSES
PCI BUS
PC Motherboard
Bus PCI – características
 Síncrono – relógio de 33Mhz ou 66MHz
 Multiplexado – linhas comuns para endereços e dados
 Versões 32 bits e 64 bits
 Arbitragem centralizada
 Bus de ligação de periféricos nos PC
PC da década passada
Arquitetura de Computadores II Página 22 de 95
Transferências no bus PCI – 2 modos
item a item
Burst
Sinais de controlo durante operações de leitura e de escrita
Arquitetura de Computadores II Página 23 de 95
Operação de read no bus PCI
a) Master que obteve o controlo do bus – initiator – aciona FRAME que mantem até à
ultima fase da transferência e coloca o endereço do dispositivo nas linhas AD
b) O dispositivo alvo – traget – reconhece o endereço nas linhas AD
c) O initiator retira-se do bus AD para preparar a sua utilização pelo target (turnaround
cycle) e ativa IRDY para indicar estar pronto a receber o dado
d) O target atuva DEVSEK para indicar que reconheceu o seu endereço. Coloca o dado no
bus AD e ativa TRDY para o assinalar
e) O initiator lê o dado no início do 4º ciclo e muda as linhas byte enable em preparação
para a leitura seguinte.
f) Target not ready para enviar dado – TRDY desativo (wait state) 5º ciclo: target coloca 2º
dado em AD
g) 6º Ciclo: target coloca dado em AD mas initiator not ready (IRDT desativo)
h) Initiator desativa FRAME sinalizando que a leitura é a última e ativa IRDY, lendo o 3º
dado no inicio do 8º ciclo
i) Initiator desativa IRDY, colocando o bus no estado inativo
PCI – tipos de ciclos do bus
Arquitetura de Computadores II Página 24 de 95
Arbitragem no bus PCI
 As especificação do bus não impõe o algoritmo de arbitragem
 Qualquer algoritmo pode ser usado (FCFS, Round-Robin, Prioridade)
Arbitragem no bus PCI
a) A pede o bus
b) Durante o primeiro ciclo B pede o bus e bus é atribuído a A
c) (GNT#-A)
d) No início do segundo ciclo A verifica que lhe foi atribuído o bus. Ativa FRAME e coloca
endereço alvo em AD
e) Árbitro examina as linhas REQ no início do 3º ciclo, e concede o controlo do bus a B
(GNT#-B)
f) A desativa FRAME indicando que está em curso a ultima (e única) transferência, coloca
o dado em AD e ativa IRDY. O dado é lido no início do 4ºcicilo
g) B verifica que a FRAME e IRDY está desativados e toma control do bus
Hidden arbitration – arbitragem feita em simultâneo com transferência de dados
Arquitetura de Computadores II Página 25 de 95
PCI Express (PCIe)
Ligação ponto –a-ponto vs Bus partilhado
 Bus partilhado é a estrutura standard de ligação tradicional mas ligações ponto-aponto
estão a torna-se comuns
 Problemas da arquitetura de bus partilhado:
o Limitações físicas ao aumento da frequência de relógio
o Sincronização e arbitragem tornam-se difíceis de efetuar em tempo útil
o Restrições na frequência de funcionamento tornam-se críticas nas gerações de
computadores mais recentes
 Ligações ponto-a-ponto
o Menor latência
o Maiores velocidades de transferências
Características
 Ligação ponto-a-ponto
 Grande capacidade para suportar: - gigabit ethernet; - data streams: *vídeo-on-demand
*distribuição de áudio
PCIe – configuração típica
Arquitetura dos PC – intel
2002 2014
PCI express substitui alguns dos buses internos
Sistema de I/O simplificado
Arquitetura de Computadores II Página 26 de 95
4. Comunicação em série, barramentos e interface
Comunicação à distância
 Standards de comunicação de um sistema com o exterior (p ex com outros
computadores, com terminais, impressoras…)
 Duas alternativas:
o Comunicação paralela – múltiplos bits (tipicamente um byte) transmitidos
simultaneamente através de múltiplas vias de ligação – só usada para curtas
distâncias. Relógio comum.
 Interface centronics para impressoras (obsoleto)
 PIC32 – parallel master port (PMP – 8 ou 16 bits)
 Ligação a SRAM ou memória flash externas ou a outro
microcontrolador
o Comunicação series – transmissão bit a bit
 Vantagens: simplicidade de implementação/ligação da cablagem;
Diminuição de custos de interligação; possibilidade de transmissão a
distancias elevadas (em par diferencial); Débito elevado
 RS232C – EIA standard . 1969 (serial port dos PCs)
 I2
C – inter-integrated circuit
 SPI – serial peripheral interface
 USB – universal serial bus
Tipos de comunicação de dados
Tipos de transmissão
Síncrona – a transmissão dos dados é acompanhada da transmissão do sinal de relógio, I2C SPI
Assíncrono – não há transmissão do sinal de relógio, RS232, USB
Isócrona – tempo entre dados sucessivos é igual à unidade de tempo básica do sistema de
transmissão (ciclo de relógio) ou a um seu múltiplo
Arquitetura de Computadores II Página 27 de 95
Comunicação assíncrona
Para transmitir um dado (um carater) é necessário acrescentar bits para sinalizar o princípio e
o fim da transmissão do carater:
Transmissão ASCII 7bits, sem paridade
Arquitetura de Computadores II Página 28 de 95
5. Comunicação em série – UART
 Universal Asynchronous Receiver Transmitter
 Transmissão: pega em bytes de dados e transmite os bits individualmente de forma
sequencial
 Receção: reassembla os bits em bytes
 Cada UART tem um shif register que faz a conversão paralelo-serie na transmissão e
serie paralelo na receção
 É um canal de comunicação série assíncrona full-duplex
 Em geral não gera diretamente os sinais externos. Isso é feito por dispositivos de
interface que convertem os níveis lógicos da UART nos níveis de tensão para
transmissão (RS-232, RS-422, IrDA, Bluetooth… )
Comunicação
 Simplex – dispositivos apenas recebe ou envia
 Half-duplex – dispositivo recebe ou envia alternadamente
 Full-duplex – dispositivo recebe e envia simultaneamente
PIC32 UART – Microcontrolador com 6 UARTs
Transmissão de dados
1. Dado a transmitir carregado no shif-register
2. UART gera start bit e através da saída serie (serial-out) do S.R. o bit seguinte do dado a
transmitir é colocado na saída a cada ciclo de relógio. O 1º data bit transmitido é o LSB
Arquitetura de Computadores II Página 29 de 95
3. UART transmite bit de paridade (se usado) e o(s) stop bit(s)
 Transmissor e recetor têm um buffer de 8 posições
UART – transmissão de dados
Arquitetura de Computadores II Página 30 de 95
Receção
 Todas as operações da UART são controladas por um sinal de relógio de frequência
múltipla de baud rate – PIC32 UART: 4*clock ou 16*clock
 Recetor testa o estado da entrada a cada impulso de relógio para detetar um start bit
 Apos o tempo de transmissão de 1 bit a linha de entrada é de novo amostrada e o
valor é entrado (serial – in) para o SR
 Depois do tempo para amostragem de todos os bits do carater ter decorrido o
conteúdo do SR fica disponível para ser lido em paralelo. A UART ativará um flag para
indicar que um novo dado está disponível (PIC32: bit 0 do registo de status e de
controlo UxSTA)
 Relógios internos da UART são ressincronizados pelo flanco descendente do status bits
Arquitetura de Computadores II Página 31 de 95
UART receção de dados
UART
Transmissão: conversão paralela serie
Receção: conversão serie paralelo
shift register
serial out - parallel in - entradas do SR
serial in parallel out - saidas do SR
Arquitetura de Computadores II Página 32 de 95
6. Comunicação em série – RS-232C
 Stardard para transmissão serie
o Define os sinais que ligam um DTE – Equipamento Terminal da dados (p.ex. o
terminal de um computador) e um DCE – Equipamento de Comunicação de
Dados (um modem).
o Permite comunicação bidirecional, full-duplex
o Usado também para ligar diretamente 2 DTEs, sem utilização de modems (null
modem – comprimento da ligação não excedendo 20 m)
 Porta serie RS-232 usada nas primeiras gerações de PCs para ligação a modems,
impressoras, rato, UPS. Muito fácil de implementar e de programação continua a ser
muito usado em microcontroladores.
 Substituído nas gerações mais recentes por USB
 Principais limitações:
o Consumo de energia elevado
o Os níveis lógicos de comunicação são simétricos p.e. +10v -10v
o Sinalização single-ended: baixa imunidade ao ruido; impõe limitações na
distância e velocidade
o Apenas suporta ligações ponto-a-ponto
 Na forma mais simples, a implementação da norma RS232 requer apenas
a utilização de 2 linhas de sinalização e uma linha de massa
Transmissão à distância
Standard RS-232 (1969)
O standard define:
 Características elétricas dos sinais – níveis de tensão, temporização, slew-rate dos sinais
 Características mecânicas do interface, fichas de ligação, identificação dos pins
 Subsets do standard para aplicações específicas
O standard não define:
 Codificação dos caracteres, deteção de erros
 Bit rate (baud rate) da transmissão (embora especifique que deverá ser inferior a 20 000
bits/s (tradicionalmente máximo de 19600
bits/s))
RS232 – ligação DTE-DCE
Linhas adicionais para protocolar a troca de
informação entre os dois equipamentos
(handshake) : RTS, CTS, DTR, DSR
Arquitetura de Computadores II Página 33 de 95
Fichas RS 232
RS 232 – descrição dos sinais
Null modem
 Ligação direta de 2 DTE, sem modems – necessárias apenas 3 linhas
 Distância máxima entre os equipamentos: 20 metros
Níveis de tensão – camada física – codificação dos níveis lógicos
 O standard define as tensões máximas e mínimas para 1 e 0 lógicos:
Nível 1: -3v a -25 v (valor típico -12v)
Nível 0: 3V a 25 v (valor típico +12v)
 Valores da tensão entre -3v e +3v têm valor logico indeterminado
 Na ausência de informação a tensão na linha é equivalente ao nível 1 (-12v)
 Um valor da tensão de 0v no recetor é interpretada como um corte ou um curto-circuito
na linha
 [-3v, 3v] – intervalo “proibido ”
Arquitetura de Computadores II Página 34 de 95
Baud rate
Velocidade a que a informação é transmitida (bits/s). Velocidade em caracteres/s:
Receção
Na receção: frequência de relógio múltipla da bit rate – vários ciclos de relógio durante o tempo
correspondente a 1 bit – linha de transmissão amostrada a meio do bit
Códigos de transmissão
* Return to zero (RZ); Return to Zero inverted (RZI) – entre cada impulse o sinal vem a zero/um
* Non-return to zero (NRZ); Non-return to zero inverted(NRZI) – o mais comum
* Manchester coding
Arquitetura de Computadores II Página 35 de 95
7. Comunicação em série – USB – Universal Serial Bus
O porquê da sua utilização?
Limitações RS-232C: exige a coordenação manual de baud rate, paridade, nº de stop bits,…
USB
 Permite a ligação de periféricos a computadores de um modo estandardizado, com um
protocolo standard – dispositivos interagem diretamente com o sistema de operação
do computador sem intervenção do utilizador (“plug and play”)
 Permite ligação e retirada de periféricos a qualquer momento, sem necessidade de
desligar o sistema (“hot-swap”)
 Pode fornecer energia aos periféricos através do mesmo cabo utilizado para
comunicação de dados
 Permite ligar periféricos com necessidades de taxas de transferência de dados muito
mais rápidas
 Substitui a multiplicidade de diferentes conectores e fichas de ligação característicos
dos PCs de há 20 anos
 Exige software de comunicação de um maior nível de complexidade
As origens
 Desenvolvimento do USV iniciado em 1994 por um grupo de 7 companhias: Compaq
(posteriormente Hewlett-packard); DEC; IBM; Intel; Microsoft; NEC; Nortel
 Objetivo: facilitar a ligação de periféricos substituindo a diversidade de fichas por um
único tipo de conector, simplificando a configuração por software de todos os
dispositivos ligados ao PC e permitir maiores velocidades de transferência de dados
 Primeiros circuitos integrados suportando USB produzidos pela Intel em 1995
A evolução
 USB 1.1 (1998) – half-duplex; low speed: 1.5Mbits/s ; full speed: 12Mbits/s
 USB 2.0 (2000), 480Mbits/s, High Speed – half-duplex
 USB 3.0 (2008), 4.8Gbits/s, SuperSpeed – full-duplex
 USB 3.1 (2013), 10Gbits/s, SuperSpeed+
 Permite a ligação de até 127 dispositovos a cada porta
 Comprimento máximo da ligação: 5m para USB2.0 (com hubs até 30m (6 troços))
 Todas as novas versões mantêm a compatibilidade com as versões anteriores (backword
e forward compatibility)
Arquitetura de Computadores II Página 36 de 95
Os vários periféricos: impressoras, scanners, teclado, rato, máquinas fotográficas, webcams,
modems, telemóveis, dispositivos de armazenamento (e.g. pens, discos rígidos)
Estrutura física do BUS
USB
Host e Device
 Host – bus master
 Quando é ligado o host interroga todos os dispositivos ligados ao bus e atribui a cada
um deles um endereço – enumeration
 Hot-swappable – dispositivos podem ser ligados e desligados sem desligar o host
Arquitetura de Computadores II Página 37 de 95
Linhas do Bus
 USB 2.0 – half-duplex – Power (+5v) e ground; par entrançado (twited pair) para
transporte de dados; dispositivos que consomem pouca potência podem ser
alimentados pelos USB;
 USB 3.0 – full-duplex - +4 linhas para transporte de dados
Fichas USB
Arquitetura de Computadores II Página 38 de 95
Tiered Star – topologia do bus USB
Tipos de transferência de dados
 Control transfers – usadas para configurar um dispositivo quando é ligado
 Bulk data Transfers – transferência “de rajada” (burst) de volumes significativos de
dados sem grande exigências temporais (impressoras, scanners, pens, discos… )
 Interrupt Data Transfers – usados para transferências de poucos dados a ser feitas num
dado intervalo de tempo (teclado, rato,… )
 Isochronous Data Transfers (streaming real time transfers) – transferências com um
tempo máximo de latência (os dados fluem entre o dispositivos e o host em tempo real)
(voz: microfone, vídeo,… )
 Um pipe suporta apenas um destes tipos de transferências
Periféricos: tipos de transferência usados
 Interrupt – dispositivos que enviam poucos dados (eg teclado, rato)
 Bulk – dispositivos que recebem dados em pacote (eg impressora)
 Isochronous – dispositivos que necessitam de um fluxo contínuo de dados (eg
microfones). Os dados fluem entre o dispositivo e o host (o computador) em tempo real
Arquitetura de Computadores II Página 39 de 95
Camadas do sistema
 Cliente S/W – s/w que executa no host correspondente a um dispositivo USB. Fornecido
com o sistema de operação ou com o dispositivo USB
 USB System S/W – s/w que suporta USB num dado Sistema de Operação,
independentemente de um dispositivo específico ou do s/w cliente
 USB Host Controller (interface do host com o bus) – o h/w e o s/w que permite a
dispositivos USB serem ligados ao bus
Pipe – abstração da ligação entre duas entidades
Arquitetura de Computadores II Página 40 de 95
Fluxo de informação
USB transporta dados através de um pipe entre um buffer em memória associado a um client
software e um endpoint de um periférico USB.
Pipes
 Pipe – ligação entre um endpoint num dispositivo e software em execução no host
 2 tipos, mutuamente exclusivos, de comunicação nos pipes:
o Stream – o USB não impõe um formato aos dados que fluem no pipe
o Message – os dados que circulam no pipe têm um formato imposto pelo USB
 Deflaut Control Pipe – o pipe associado aos 2 endpoints zero (IN e OUT). Criado sempre
que um dispositivo é ligado e recebeu bus reset. Usado pelo S/W de sistema para
identificar o dispositivo e configurá-lo.
IRPs
 O s/w cliente solicita transferências de dados através de I/O Request Packets (IRPs) a
um pipe e espera ou é notificado quando a transferência está completa
 Em endpoint pode informar o host que está ocupado respondendo com NAK
Arquitetura de Computadores II Página 41 de 95
Stream pipes e Message pipes
USB Frames
 As transferências no bus processam-se em Frames.
 O host envia um Start of Frame (SOF), -Cada 125ms (High-speed USB); -Cada 1ms (Full-
Speed USB)
 Cada frame contem 1500bytes
 Até 90% da largura de banda disponível é usada pelas frames. Se se tentar ligar novos
dispositivos que levem a exceder o limite dos 90% a sua ligação é recusada
 Os 10% restantes são usados para bulk transfers e comandos
Frames e Micoframes
Transferência de dados
 Os dados são transferidos em pacotes, tanto no caso de stream pipes como de message
pipes
 A formatação e interpretação dos dados transportados numa transação no bus é da
responsabilidade do S/W cliente e da função
 O USB disponibiliza diferentes tipos de transferência para corresponder de modo mais
ajustado aos requisitos do s/w cliente e da função que utilizam o pipe
 Cada tipo de transferência determina várias características do fluxo de dados: formato
imposto pelo USB; direção da comunicação; tamanho dos pacotes; num pacote de
dados CRC16
Arquitetura de Computadores II Página 42 de 95
Transferências de controle
 Suportam a comunicação de configuração, comandos e status entre o s/w cliente e a
função usando o deflaut control pipe
 As transferências de controle são o mecanismo para aceder aos descritores dos
dispositivos e para formular pedidos ao dispositivo para manipular o seu
funcionamento.
Tipos de identificadores de pacotes (PID)
Arquitetura de Computadores II Página 43 de 95
CRC (Cyclic Redundancy Check)
 Usados em todos os campos exceto o do PID nos pacotes token e de dados
 Permitem detetar todos os erros em 1 e 2 bits
Arquitetura de Computadores II Página 44 de 95
8. Comunicação em série – I2
C
 I2C – Inter-Intergrated Circuit
 Bus serie, multi-master
 Transação master-slave com opção multi-master (requer arbitragem)
 Usado para ligar periféricos lentos a telefones celulares, sistemas embebidos ou a
motherboards
 1982: Philips Semiconductors (atualmente NXP Semiconductors) introduz o I2C como
um bus interno, simples e barata para sistemas de controle, funcionamento a 100KHz e
um espaço de endereçamento de 7 bits – Standard Mode
 1992: 1ª versão standard – adicionado 400Khz fast-mode (Fm) e endereçamento de
10bits
 1998: versão 2 – adicionado 3.4MHz High-speed mode (Hs)
 2007: versão 3 – adicionado 1-MHz fast-mode plus (Fm+) e um mecanismo de
identificação de dispositivos
 2012: versão 4 – adicionado 5 MHz ultra fast-mode (UFm) usando as linhas USDA e USCL
com logica push-pull sem resistências de pull-up
 Intel mobile communications, NEC, Texas Instruments, STMicroelectronics, Freescale e
Intersil, fornecem componentes compatíveis I2C
 Intel definiu o SMBus (System Management Bus) que é um subconjunto de I2C que
define os protocolos mais estritamente no intuito de aumentar a robustez e favorecer a
interoperabilidade
 O módulo I2C do PIC32 suporta o modo base (100KHZ, 7 bit address) e fast-mode
(400KHz, 10 bits address)
Taxas
de
transmissão
Standard mode Até 100Kbits/s
Fast mode Até 400Kbits/s
Fast mode plus 1Mbits/s
High speed Até 3.4Mbit/s
Terminologia
 Transmitter: dispositivo que envia dados para o barramento
 Receiver: dispositivo que recebe dados do barramento
 Master: o dispositivo que inicia a transferência, gera o sinal de relógio e termina a
transferência
 Slave: o dispositivo endereçado pelo master
 Multi-master: mais do que um master pode tentar, ao mesmo tempo, controlar o
barramento sem corromper a comunicação em curso
 Arbitragem: procedimento para assegurar que, se mais do que um master tentar,
simultaneamente, controlar o barramento, apenas a um é permitido continuar, sem
perturbação da comunicação iniciada pelo master vencedor
 Sincronização: procedimento para sincronização dos sinais de relógio de dois ou mais
dispositivos
Arquitetura de Computadores II Página 45 de 95
 Master – gera o clock e inicia a comunicação com os slaves
 Nó slave – recebe o clock e responde quando é endereçado pelo master
 2 modos de operação possíveis:
o Master transmite – Slave recebe
o Slave transmite – Master recebe
Em ambos os modos o sinal de relógio é gerado pelo master
 Bus open-drain – quando o bus está inativo SDA e SCL estão high
 O barramento de comunicação só necessita de dois fios: DAS e SCL
 Transferência serie bidirecional, half-duplex, orientada ao byte.
 Barramento multi-master: com deteção de colisões e arbitragem de modo a evitar
corrupção de informação se dois ou mais masters iniciarem simultaneamente uma
transferência.
 As transferências envolvem sempre uma relação master/slave
 Master pode ser transmissor ou recetor (master-transmitter ou master-receiver)
 Cada dispositivo ligado ao barramento é endereçável por softwaew usando um
endereço único previamente atribuído
 Endereços de 7 bits: alguns endereços reservados, 112 disponíveis; extensão para 10
bits suportada
I2C: Open Drain structure (or Open Collector) for both SCL and SDA
Arquitetura de Computadores II Página 46 de 95
Transferência de Dados
 São transmitidos bytes (8 bits)
As transações são delimitadas por dois símbolos / “condições”: START e STOP – as condições
Start/Stop são sinalizadas por meio de uma sequência que viola as regras normais de
transferência de dados.
1. Transferência de dados iniciada com um START bit (S) assinalado por SDA low enquanto
SCL está high. Transição de 1->0.
2. Para cada bit transmitido, o valor tem de ser colocado em SDA enquanto SCL low (tempo
da barra azul); o dado é lido quando SCL passa a high (barra verde); DAS tem de se
manter valido até que SCL passe de novo a low.
3. Quando a transferência está completa, SCL passa a high seguindo de SDA – condição de
STOP (P). Transição de 0->1.
Estado do barramento: Ocupado: após um start, até ao próxima stop; Livre: após um stop, até
ao próximo start.
Não existe limite para o número de bytes transmitidos num pacote I2C. O bit mais significativo
é transmitido primeiro.
Arquitetura de Computadores II Página 47 de 95
Arquitetura de Computadores II Página 48 de 95
Pacotes I2C
Arquitetura de Computadores II Página 49 de 95
Transferência de dados
 Cada byte transmitido tem de ser acknowledged pelo recetor
o Apos a transmissão do 8º bit o transmissor liberta a linha DAS e o master gera
um impulso de relógio adicional
o O recetor faz o acknowledged (ACK) colocando DAS
o Quando o recetor não coloca DAS low (not acknowledge - NACK) o master
aborta a transferência e toma medidas para lidar com o erro
 O master: envia um START, de seguida envia o endereço do slave (7bits) e o bit de
qualificação da operação (Read / Write -R/W)
 O slave endereçado deve efetuar o acknowledgde no slot seguinte
 De seguida o transmissor (master ou slave) envia o byte de dados aguardando um
acknowledge do recetor no final. Este ciclo de 9 bits repete-se para cada byte de dados
que se pretende transferir
 A transferência é orientada ao byte (8 bits) sendo transmitido, em primeiro lugar, o bit
mais significativo (MSbit)
 Após o 8 bit (o LSbit), o recetor tem de gerar um acknowledge, na linha DAS, sob a forma
de um bit dominante (0)
 Na situação em que o master é recetor gera:
o Acknowledgde sinalizado dessa forma o slave de que vai continuar com
operações de leitura
o Not acknowledgde sinalizando o slave de que o byte recebido constitui o fim da
transferência. Neste caso o master envia logo de seguida um STOP
Arquitetura de Computadores II Página 50 de 95
Sincronização do relógio
 2 masters podem começar a transmitir ao mesmo tempo quando o bus está livre. O
método de decisão de qual deles assume o controle do bus e efetua a transmissão é
feito pelos mecanismos de sincronização do relógio e de arbitragem
 A sincronização do relógio é feita através da ligação wired-AND à linha SCL dos
dispositivos I2C
1. Clock do dispositivo 1 (CLK 1 ) low
2. Clock do dispositivo 2 (CLK 2 ) low
3. Termina tlow de CLK1. Como CLK2 ainda está low SCL permanece low
4. Termina tlow de CLK2. SCL é liberta e transita para high. Os masters começam a contar
thigh
Deste modo é gerado um SCL sincronizado com tlow determinado pelo master com o maior tlow
e thigh determinado pelo master com menor thigh
Arbitragem
 2 masters podem iniciar uma transferência se o bus estiver livre; podem ambos gerar
START, resultando numa condição de START válida no bus
 Arbitragem necessária para determinar qual o master que completa a sua transmissão.
A arbitragem processa-se bit a bit. Durante cada bit, quando SCL está high cada master
verifica se o valor de DAS coincide com o que enviou.
 A 1ª vez que um master tenta envia um HIGH e verifica que DAS está low, fica a saver
que perdeu a arbitragem e desliga o seu driver da linha.
Quando 2 masters tentam transmitir simultaneamente podem até gerar alguns ciclos em que os
dados coincidem, mas quando um deles coloca a linha a low enquanto o outro a tenta colocar
Arquitetura de Computadores II Página 51 de 95
high, o “low” ganha o controle do bus e o outro dispositivo retira-se e espera até que o bus
esteja de novo livre.
Resumo I2C
Vantagens
 Hardware standard e simples
 Protocolo de comunicação simples
 Fácil adicionar/retirar dispositivos – h/w e s/w
 Layout em placas de circuitos impressos simples (só duas vidas de ligação)
 Suficientemente rápido para aplicações de interface com utilizadores: displays,
switches, teclados, controle, sistemas de alarme
 Grande número de componentes com interface I2C
 Bus robusto
Arquitetura de Computadores II Página 52 de 95
9. Comunicação em série – SPI
Serial Peripheral Interface – SPI
 Comunicação em 4 linhas
 Interface definida inicialmente pela Motorola -1980 - (Microwire da National
Semiconductor é um subset do protocolo SPI)
 Bus síncrono – relógio é gerado pelo master que o disponibiliza para todos os slaves;
Não é exigida precisão ao relógio – os bits vão sendo transferidos a cada transição de
relógio. Isto permite utilizar um oscilador de baixo custo no master
 …opera em modo full-duplex… - funciona em modo “data Exchange”; Por cada bit que
é enviado para o recetor também é recebido. Isto é, ao fim de N ciclos de relógio o
transmissor enviou uma palavra de N bits e recebeu uma palavra com a mesma
dimensão.
 …com um único bus master. – (master-slave) com ligação ponto a ponto.
o O sistema só pode ter um master
o O master é o único dispositivo no sistema que pode controlar o relógio
o Um master pode estar ligado a vários slaves
o Apenas 1 slave é selecionado pelo master para comunicar de cada vez
o O master inicia e controla a transferência de dados
 Utilizado para ligar 2 circuitos integrados no mesmo tipo de aplicação que o I2C : sensor
de temperatura, pressão, controladores de jogos, vídeo, touchscreens,… Dispositivos de
controle: codecs áudio, potenciómetros digitais, DAC; memoria flash e EEPROM; RTCs;
Cartões de memória (MMC/SD); Comunicação entre microcontroladores;
 Ligações a curtas distancias
 Fácil de implementar por hardware ou por software
 Ausência de line drivers
Comunicação envolve 2 Shift-
registers (um no master e outro no
slave) – ligação em anel
1. A informação é transferida do
transmit buffer para o SR
2. A informação é transferida para
o outro SR um bit de cada vez
3. A informação é transferida do
SR para o receive buffer
Dados: SDO – serial data out; SDI –
serial data in
Controlo: SS Slave select (sinal
ativado pelo master para selecionar
o slave com quem vai comunicar);
SCR – serial clock
Sinal de relógio: duty-cycle 50%
Arquitetura de Computadores II Página 53 de 95
Operação
 O master configura o relógio para uma frequência igual ou inferior à suportada
pelo slave com quem vai comunicar
 O master ativa a linha SS do slave com que vai comunicar
 Em cada ciclo do relógio (por exemplo na transição positiva)
o O master coloca na sua linha SDO um bit de informação que é lido pelo
slave na transição de relógio oposta seguinte
o O slave coloca na sua linha SDO um bit de informação que é lido pelo
master na transição de relógio oposta seguinte
 O master descativa a linha SS e "pára" o relógio (fica estável, por exemplo, no
nível lógico 1)
o Só há relógio durante o tempo em que se processa a transferência
 No final, o master e o slave trocaram o conteúdo dos seus shift-registers
 Sinais de seleção – slave select – independentes
 Em cada instante apenas um SSx está ativo, i.e., apenas 1 slave está selecionado
 Os sinais SDO dos slaves não selecionados ficam em alta impedância
Arquitetura de Computadores II Página 54 de 95
Independen slave configuration
Daisy-Chain configuration
Tipos de transferências
 Com já visto, o SPI funciona em modo "data exchange", isto é, o processo de
comunicação envolve a troca do conteúdo dos shiftregisters do master e do slave
 Cabe aos dispositivos envolvidos na comunicação decidir acerca da validade da
informação
 Assim, podem considerar-se os seguintes cenários de transferência
 Bidireccional - São transferidos dados válidos em ambos os sentidos
(master→slave e slave →master)
 master → slave (operação de escrita) master transfere dados pretendidos para o
Slave, e ignora/ descarta os dados recebidos
 slave → master (operação de leitura) - master desencadeia transferência quando
pretende ler dados do slave. O slave ignora/descarta os dados recebidos
Arquitetura de Computadores II Página 55 de 95
Arquitetura de Computadores II Página 56 de 95
O que o protocolo não define
 Taxa máxima de transferência
 Mecanismo de endereçagem
 Mecanismo de acknowledgement para confirmar receção
 Modos de controlo de fluxo de dados
 Características do interface físico – valores de tensão…
 Inicialmente a maior parte das implementações usava um relógio não contínuo e
transferência byte a byte. Atualmente existem muitas variantes que usam um relógio
contínuo e transferências de comprimento arbitrário.
No PIC32
 Três dispositivos de comunicação SPI,
cada dispositivo pode ser conf. c slave
ou master
 Transferências de 8, 16, ou 32 bits –
configuradas pelo utilizador
 SR separados para receção e
transmissão
 Os buffers de receção e transmissão são
FIFOS: 16 posições -> 8bits; 8 posições -
> 16bits; 4 posições -> 32 bits
 Quando é configurado como slave: o
relógio local é descativo; O relógio na
entrada do SR só tem atividade quando
o sinal SS está activo.
 2 modos de operação:
o Normal – relógio não continuo
o Framed (SSx sinal que sincroniza a frame) – relógio continuo (free running)
Arquitetura de Computadores II Página 57 de 95
10.Comunicação em série - CAN
 Controller Area Network
 Bus serie, multi-master, com capacidade tempo-real
 Concebido por engenheiros da Bosch no início da década de 1980, para simplificar as
cablagens nos automóveis
 Ideia inicial – desenvolver um sistema de comunicação entre unidades eletrónicas de
controlo (ECU)
 Desenvolvimento de um novo standard – nenhum dos protocolos de comunicação
existentes satisfazia os requisitos de velocidade e fiabilidade necessários
 Propriedade da Bosch; licenciado à maioria dos fabricantes de semicondutores
 Módulos CAN incluídos na maior parte das famílias atuais de microcontroladores (PI,…)
 Atualmente o bus mais popular na industria automóvel
 Competidores: J1850 (USA), Van (França) e PALMNET (Japão)
 Muitas aplicações em automação e controlo para além da indústria automóvel (low level
field bus)
Desenvolvimento do bus CAN
 1983: início de um projeto na Bosh, na Alemanha, para desenvolver uma rede de
comunicação para veículos automóveis
 1986: introdução do protocolo CAN
 1987: primeiros controladores CAN da Intel(82526) e da Philips (82C200)
 1991: especificação CAN 2.0A da Bosh
 1992: criação do grupo de fabricantes e utilizadores CAN in Automation (CiA) que
publicam o CAN Application LAyoer Protocol (CAL)
 1992: Mercedes-Benz usa rede CAN
 1993: Standard ISSO 11898
 1995: CANopen (application layer protocol) publicada pela CiA
 2000: Desenvolvimento de TTCAN (Time-Triggered Communication protocol for CAN)
 Presente: a maioria dos veículos usa o bus CAN
Quem usa o bus CAN?
 Desenhado originariamente para utilização em
veículos automóveis, onde se tornou standard
 Atualmente – automação industrial / equipamento
médico
Microcontroladores num carro:
ABS (1+4); keyless entry system (1); active wheel drive control(4); engine control (2); airbag
sensor(6++); seat occupation sensors(4)….
CANBUS Physical Layer
 Meio físico – 2 fios terminados e ambas as extremidades por resistências
 Sinais deferencial (twisted pair) – melhor imunidade ao ruido
 Vantagens de bus serie: peso e custo reduzidos; menos fios = maior fiabilidade
Arquitetura de Computadores II Página 58 de 95
Automóvel
Ligações paralelas CAN bus
VS
CAN no automóvel: 2 bus (Mercedes, Wolkswagen, BMW, Renault, Fiat, Volvo…)
Classe C – 1 Mbit/s Classe A – 10Kbits/s
Vantagens do CAN
 Standard bem estabelecido
 Existência de muitos produtos e ferramentas CAN no mercado
 Protocolo implementado em Hardware
 Conjugação de tratamento de erros e confinamento dos erros com velocidades de
transmissão elevadas
 Meio de transmissão simples: par entrançado (twisted pair) standard (comunicação
diferencial), mas um unicio fio também possível; Outros meios disponíveis: ligações
óticas ou via radio
 Excelente tratamento de erros: CRC para detetar erros; Confinamento dos erros:
mecanismo para evitar que um no avariado bloqueie o sistema
 Protocolo mais usado na indústria e em veículos de transporte
 A melhor relação Preço/ Performance
Arquitetura de Computadores II Página 59 de 95
Características Fundamentais - CAN
 Bus multi-master (qualquer nó do barramento pode produzir informação e iniciar
uma transmissão | diversos nós trocam mensagens encapsuladas em tramas),
assíncrono
 Comunicação bidirecional half-duplex
 A informação produzida é encapsulada em tramas
 Transmissão em broadcast: um transmissor pode enviar informação para todos os
nós ao mesmo tempo
 Um vez que dois nós podem querer aceder simultaneamente ao barramento para
transmitir, tem que haver uma forma de arbitrar o acesso
 No CAN cada mensagem tem um ID único. Esse ID determina a prioridade da
mensagem e, consequentemente, a prioridade no acesso ao barramento.
 Inexistência de endereçamento dos nós; broadcasting das mensagens; (contente-
addressing)
 Numero máximo de nós no barramento: 40
 Comunicação com relógio implícito
 Paradigma produtor-consumidor/transmissão em broadcast : identificação do
conteúdo da mensagem (não existe identificação do nó de origem ou de destino)
 Capacidade de remote transmission request
 Correção de erros baseada em retransmissão
 Transmissão orientada ao bit
 Mecanismos sofisticados de detenção e tratamento de erros
 Taxas de transmissão até 1 Mbit/s
 Frequências de funcionamento mais comuns: 1MHz, 500KHz e 125 KHz
 Comprimento máximo – depende da frequência de funcionamento: 1MHz: até 40m;
125KHz: até 500 m; 50KHz: até 1 km;
Bus Wired-AND
Um ”0” (low voltage – dominant level) colocado no bus por um no “ganha ” a “1” (high voltage
– recessive level) no bus
Arquitetura de Computadores II Página 60 de 95
CAN e o modelo OSI
 CAN é uma rede fechada: desnecessário segurança ou logins; desnecessário interface
com o utilizador;
 Physical and Data Link layers no silício
 Modelo OSI – 7 camadas (Physical, Data Link, Network, Transport, Session, Presentation,
Application)
 CAN:
Modelo de referência OSI e o CAN
Application Layer Stantards
 CAN não define o nível de aplicação – cabe aos fornecedores desenvolver o respetivo
software, originando soluções diferentes, fechadas, e exigindo um investimento
significativo
 Esforços para a definição de standards ao nível da aplicação têm sido feitos desde a
década de 1990. Impuseram-se 2 standards:
o DeviceNet (Allen Bradley) otimizado para automacao fabril
o CANopen(Projeto ESPRIT) otimizado para maquinas industriais e outros
dispositivos, sistemas médicos,…
CANopen
Características
 CANopen é subconjunto de CAL (CAN Application Layer) desenvolvido pela CiA (CAN in
Automation)
 Auto configuração da rede
 Acesso fácil a todos os paramentos dos dispositivos
 Sincronização dos dispositivos
 Transferência de dados cíclica e desencadeada por eventos
 Estabelecimento ou leitura inputs, outputs ou parâmetros sincrona
Arquitetura de Computadores II Página 61 de 95
Aplicações
 Automatização de máquinas
Vantagens
 Permite a integração de pequenos sensores e atuadores
 Standard aberto e independente do vendedor
 Suporta a inter-operabilidade de diferentes dispositivos
 Capacidade de tempo-real de alta velocidade
Message Oriented Transmission Protocol
 Cada nó é recetor e transmissor
 Cada mensagem é transmitida a todos os dispositivos ligador ao bus – broadcast
 Todos os nos lêem a mensagem, e decidem se é relevante para eles
 Todos os nós verificam a inexistência de erros na receção
 Os nós fazem o acknowledge da receção
Acesso ao bus – Ethernet: CSMA / CD
CAN: CSMA / CD
Moldura das mensgens CAN
Cada moldura de dados tem 4 segmentos:
1. Arbitration-field: denota a prioridade da mensagem; Standard frame (CAN 2.0A): 11bit-
identifier; Extended frame (CAN 2.0B) : 29bit-identifier
Arquitetura de Computadores II Página 62 de 95
2. Data field: até 8 bytes por mensagem; mensagens com 0 byte permitida
3. CRC field: cyclic redundacy check; contem um checksum gerada por uma divisão
polinomial (binaria)
4. End of frame field: contem acknowledge, mensagens de erro, end of message
Tipos de Tramas
 Dados: usada no envio de dados de um nó produtor para o(s) consumidor(res) – (e.g.
com informação de sensores / para atuadores)
 Remote Transmission Request : enviada por um nó consumidor a solicitar (ao produtor)
a transmissão de uma trama de dados específica
 ERRO: usada para reportar um erro detetado (a trama de erro sobrepõe-se a qualquer
comunicação invalidando uma transmissão em curso)
 Overload: usada para atrasar o envio da próxima trama (enviada por um nó em situação
de sobrecarga que não teve tempo para processar a ultima trama enviada)
Formatos das mensagens
 CAN 2.0A – Standard CAN
 Formato completo da trama
 Campo SOF: bit dominante (0) indica o início da trama; usado para sincronização do
relógio dos nós recetores
 Campo de arbitragem: arbitragem entre diferentes masters que podem iniciar a
transmissão das suas tramas em simultâneo; identificação da mensagem
 CAN 2.0B – Extended CAN
Arquitetura de Computadores II Página 63 de 95
Formatos das mensagens
 Start bit – 1 bit dominant : marca o início da mensagem; a transicao 1->0 sincroniza
todos os transmissores
 Identifier – 11bit: nome da mensagem e respetiva prioridade; quanto menor o valor
maior a prioridade
 RTR – 1 bit: Remote Transmission Request; se RTR=1 (recessive) a moldura não contem
dados válidos – é um pedido aos recetores para enviarem as suas mensagens
 IDE– 1 bit: Identifier Extension; se IDE =1 então extended CAN-frame
 R0– 1 bit: reservado
 DLC – 4 bit: data length code
 Data – 0…8 byte: os dados da mensagem; campo de dados
 CRC – 15 bit: cyclic redundancy code; deteção de erros (não correção); deteta até 6 erros
single bit; produtor e consumidor calculam a sequência de CRC com base nos bits
transmitidos; produtor transmite a sequência calculada; consumidor comprar a
sequência calculada localmente com a recebida do produtor
 ACK – 2 bit: acknowledge; cada nó que recebe a mensagem sem erros (inclui CRC) tem
de transmitir um acknowledge-bit neste slot; validação da trama (Ack slot) *Recessivo
(produtor); *Dominante (1+consumidores)
Arquitetura de Computadores II Página 64 de 95
 EOF – 7 bit = 1 recessive: end of frame; violação intencional da regra de bit-sruffing
(depois de 5 recessive bits 1 stuff-bit é automaticamente adicionado); terminação da
trama – 7 bits recessivos
 IFS - 3 bit = 1 recessive: inter frame space; tempo para copiar a mensagem recebida do
time bus-handler para o buffer
Extended Frame
 SRR – 1 bit = recessive : substitute Remote Request; substitui o bit RTR das standard
frames
 R1 – 1 bit : reservado
Exemplo de uma transação no bus
1. Painel de instrumentos: “podem alguém dizer-me qual a temperatura
do bloco motor?”
2. Bloco motor vê a mensagem e emite a mensagem: “temperatura do
bloco 60graus”
3. Painel de instrumentos vê a mensagem e visualiza a temperatura no
painel
Reconhecimento de erros em CAN
 Bit-error: o bit transmitido não é lido com o mesmo valor (exceto nos slots de
arbitragem e acknowledge)
 Bit-stuff-error: mais de 5 bits sucessivos lidos com o mesmo valor (excetor ‘end of
frame’ da mensagem)
 CRC-error – a soma CRC recebida nao coincide com a calculada
 Format-error – violacao do format da mensagem e.g. CRC-delimiter não é recessive ou
violação do campo ‘end of frame’
 Acknowledgement-error : transmissor não recebe dominant bit durante a
acknowledgement slot, i.e. a mensagem não foi recebida por nenhum nó
CAN Error & Exception Management
 A maior parte dos erros devem ser detetados e autocorrigidos pelo próprio componente
CAN
 Notificação automática a todos os outros nós que foi detetado um erro:
Error-Frame=violação deliberada do código
6bit dominant = passive error frame
12bit dominant = active error grame
 Todos os nós têm de cancelar a ultima mensagem recebida
 A transmissão é automaticamente repetida pelo bus-handler
Arquitetura de Computadores II Página 65 de 95
CAN Error Sequence
 Após a deteção de um erro por um nó, todos os outros nós recebem uma frame
específica:
 ERROR-FRAME – viola a regra do stuff-bit (transmissão de não mais de 5 bits seguidos
iguais)
 Passive error frame – 6 bits dominantes
 Active error frame – 12 bits dominantes
 A error-frame leva todos os outros nós a reconhecer um all Error Status no bus
Error Management Sequence
1. Detetado um erro
2. Error-frame transmitida por todos os nós que detetaram o erro
3. A última mensagem recebida é cancelada por todos os nós
4. Os contadores de erro (internos, h/w) são incrementados
5. A mensagem original é transmitida de novo
CAN Error Status
 Objetivo: evitar perturbações persistentes do CAN desligando os nós defeituosos
 3 error states:
 Error active: modo normal, as mensagens serão recebidas e transmitidas. Em
casos de erro é transmitida uma active error frame
 Error passive: após a deteção de um número fixo de erros, o nó passa a este
estado. As mensagens serão recebidas e transmitidas. Em casa de erro é
transmitida uma passive error frame
 Bus off: o nó é separado da rede CAN; nem a transmissão nem a recção de
mensagem é permitida, o nó não pode transmitir uma error frame. A saída deste
estado só é possível através de reset
Contador de Erros – CAN
Diagrama de estados >
 Transições entre estados feitas automaticamente pelo modulo CAN
 As transições entre estados são determinadas por 2 contadores de erros:
o Receive error counter – REC
o Transmit error counter – TEC
 Situações possíveis:
a) Um transmissor reconhece um erro TEC:=TEC+8
b) Um recetor vê um erro: REC :=REC+1
Arquitetura de Computadores II Página 66 de 95
c) Um recetor vê um error, depois de transmitir uma error frame: REC:=REC+8
d) Se um nó “error active” deteta um erro bit-stuff durante a transmissão de uma error
frame: TEC:=TEC+1
e) Transmissão bem-sucedida: TEC:= TEC-1
f) Receção bem-sucedida: REC:= REC-1
COMUNICAÇÃO SÉRIE> APENDICE> CODIGOS DE TRANSMISSÃO
RZ Sinal regressa a 0 entre a transmissao de
2 bits sucessivos – self clocking
NRZ
O valor do sinal muda na transição
positiva do relogio se bit a transmitir é
1, não muda se é 0
USB – há mudança do sinal se o bit a
transmitir é 0 e não há se é 1
Bit stuffing – 1 (USB : 0) quando são
transmitidos seis 1 consecutivos
NRZI
 Codificação Non-Return-to-Zero
o Bit recessivo (1)/dominante (0)
 Bit Stuffing
o Por cada 5 bits iguais é inserido 1 de polaridade oposta
o Garante tempo máximo entre transições da linha
 Transmissão diferencial
Arquitetura de Computadores II Página 67 de 95
Manchester or Phase Encoding (PE)
Self-clocking
Arquitetura de Computadores II Página 68 de 95
11.Memória, conceitos
Von Neumann Bottleneck – memória não consegue fornecer dados e instrução ao ritmo a que
o processador tem capacidade de os processar
Memorias:
 Maior capacidade implica menor velocidade de acesso
 Maior velocidade de acesso implica custo/bit mais elevado
 Maior velocidade de acesso implica maior consumo de potência

Hierarquia de memória
 3 questões fundamentais na conceção da memoria de um sistema de computação: how
muc; how fast; how expensive
 Trade-off capacidade/tempo de acesso/ custo: Menor tempo de acesso, maior custo por
bit; Maior capacidade, menor custo por bit; Maior capacidade, maior tempo de acesso
 Solução para o dilema capacidade/ tempo de acesso/ custo: não usar um único tipo de
componente de memoria ou uma única tecnologia, mas construir uma hierarquia de
memória
Arquitetura de Computadores II Página 69 de 95
Localidade das referências 1
Hierarquia funciona devido ao princípio da localidade – os programas acedem a uma pequena
porção do Address Space em cada instante:
 Localidade temporal – se um item é referenciado tende a sê-lo de novo em breve
 Localidade espacial – se um item é referenciado itens com endereços próximos
tendem a sê-lo em breve
Funcionamento de hierarquia de memória
Localidade temporal – manter os dados acedidos mais recentemente na memória mais rápida
Localidade espacial – mover blocos contíguos para a memória mais rápida
Hierarquia de memória
Tirar vantagens do princípio da localidade das referências:
-Oferecer ao utilizador tanta memoria quanta a disponível com a tecnologia mais barata
-Ceder à informação à velocidade oferecida pela tecnologia mais rápida
Dadas estas diferenças de custo e de tempo de acesso, é vantajoso construir o sistema de
memória como uma hierarquia onde se utilizem todas estas tecnologias.
1
Usado também da Memoria Cache – primeira página
Arquitetura de Computadores II Página 70 de 95
 Memoria organizada em níveis
 Informação nos níveis superiores é um subconjunto da dos níveis inferiores
 Informação circula apenas entre níveis adjacentes
 Bloco – quantidade de informação que circula entre níveis adjacentes
Caraterísticas dos sistemas de memória dos computadores
Localização
-Refere se a memória é interna ou externa ao computador
-“Memória interna” é frequentemente tomado como sinonimo de “main memory”
-Processador tem a sua própria memória local memory – os registos
-Cache é outra forma de memória interna
-Memória externa consiste nos dispositivos periféricos de armazenamento de dados acessíveis
ao processador através dos controladores de I/O
Arquitetura de Computadores II Página 71 de 95
Capacidade: usualmente expressa em bytes
Unidade de transferência: para a memória interna a unidade de transferência é igual ao
número de linhas de entrada e saída do módulo de memória.
Método de acesso aos dados
Transferências entre os níveis da hierarquia
Os níveis mais elevados da hierarquia contem cópias da informação armazenada num nível
mais baixo
Tipos de memória – Preço VS Tempo de acesso
 Main memory: DRAM – Dynamic Random Access Memory
Dynamic porque precise de ser periodicamente “refreshed” 8 ms
Endereço divididos em duas metades – memoria 2D matrix :
RAS or Row Access Strobe
CAS or Column Access Strobe
Arquitetura de Computadores II Página 72 de 95
 Cache: SRAM – Static Random Accesse Memory
No refresh – 6 transitors/bit vs. 1 transistor/bit
Size : DRAM/SRAM – 4-8
Cost/Cycle time : SRAM/DRAM – 8-16
 Memória secundária (Memoria de massa, memoria externa): discos magnéticos
(HDD); Memoria Flash (SSD)
As duas mais importantes características da memória: Capacidade e Desempenho
Organização básica de memória
Memoria: coleção de M registos de dimensão N (M x N);
Cada registo é formado por N células, cada uma delas capaz de armazenar 1 bit
Um possível implementação de um célula de memoria:
Através do agrupamento de células base pode formar-se uma memória de maior dimensão.
O que é necessário especificar:
 Word size (x1, x4, x8, x16,32,…)
 O número total de words que a memória pode armazenar (numero total de bits = word
size * n words)
Exemplo: 1Mx4 – 4bits / word; 1M = 2^20 -> 20 linhas de endereço -> 1.048.576 endereços
Arquitetura de Computadores II Página 73 de 95
12.Memória – Tecnologias de memória
 Tecnologias mais comuns: semiconductor memory; magnetic surfasse memory;
optical; magneto-optical
 Características físicas:
Memória volátil: informação perde-se quando a memória é desligada da alimentação
Memoria permanente (Nonvolatile): depois de escrita a informação mantem-se até se
deliberadamente alterada, sem necessidade de ter o dispositivo ligado à alimentação
Magnetic-surface memories: nonvolatile
Semiconductor memory: pode ser volátil(RAM) ou não volátil (ROM, PROM, EPROM, Flash)
Nonerasable memory: não pode ser alterada( ROM)
Tipos de memórias de semicondutores
Random Access Memory (RAM) : designação para memoria volátil que pode ser lida e escrita;
Acesso “random”2
. Dois tipos: SRAM e DRAM – em ambos os tipos a informação só é
preservada com a alimentação ligada (volátil)
DRAM SRAM
-Células menores (1 transistor/celula), mais
simples – mais bits/chip
-Mais barata
-Tem de incluir circuitos para refrescamento
(restauro) periódico do conteúdo
-Usada para a memória central dos
computadores
-Informação permanece durante alguns
milissegundos (necessita de refresh regular)
-Alta densidade, baixa dissipação de potência
-Custo/bit baixo
-Mais lenta (pelo menos 1 ordem de
grandeza) que a SRAM
-Células maiores (6 transistores/celulas)
-Mais cara
-Informação mantem-se enquanto ligada sem
necessidade de ser restaurada (cortada)
-Mais rápida – menor tempo de acesso
-Usada para cache
-baixa densidade, elevada dissipada de
potência;
-Custo/bit elevado
2
Tempo de acesso é o mesmo para qualquer posição de memória
Arquitetura de Computadores II Página 74 de 95
Read – Only Memory (ROM): memoria não volátil que apenas pode ser lida
 Contem informação permanente, armazenada durante o fabrico do chip que não pode
ser mudada (programada durante o processo de fabrico)
 Informação mantem-se mesmo quando desligada a alimentação
 Dados e programas armazenados permanentemente – desnecessário carrega-los de
memória secundária.
 Inconvenientes: se há um erro num único bit memoria deitada ao lixo; impossível fazer
atualizações de S/W (e.g. BIOS)
Programmble Read-Only Memory – PROM
 Escrita de informação só pode ser feita uma única vez mas em lugar de ser feita durante
o fabrico (ROM) é feita posteriormente, ou pelo fabricante ou pelo utilizador
 A escrita requer equipamento próprio, dedicada a esse fim
 Flexível, atrativa para produção em grande volume (o mesmo chip pode ser utilizado
para aplicações muito diversas)
Read-Mostly Memory
EPROM – Erasable PROM: escrita em segundos, apagamento em minutos (ambas efetuadas
em dispositivos especiais)
EEPROM – Electrically Erasable PROM : O apagamento e a escrita podem ser efetuados no
próprio circuito em que a memória está integrada; O apagamento é feito byte a byte; Escrita
muito mais lenta que leitura
Flash EEPROM (tecnologia semelhante à EEPROM): A escrita pressupõe o prévio apagamento
das zonas de memória a escrever; O apagamento é feito por blocos (por exemplo, blocos de 4
kB) o que torna esta tecnologia mais rápida que a EEPROM; O apagamento e a escrita podem
ser efetuados no próprio circuito em que a memória está integrada; Escrita muito mais lenta
que leitura
Arquitetura de Computadores II Página 75 de 95
13.Memória – SRAM: Static Access Memory
Diagrama lógico típico de uma SRAM
Din e Dout partilham os mesmos pins:
-necessário mais um sinal de controlo, output Enable (OE_L)
- WE_L = 0, OE_L = 1 D – data input pins
-WE_L= 1 , OE_L = 0 D – data output pins
Organização típica de SRAM : 16 word x 4 bit
4M x SRAM – organização interna 8 arrays de 4K x 1024
Arquitetura de Computadores II Página 76 de 95
Célula de memória estática
 Write : 1. Drive bit lines (bit 1, !bit = 0); 2. Select row
-Colocar a informação em “bit” e “bit”. Exemplo: para a escrita do valor logico 1 –
“bit”=1 , “bit” = 0; ativar a linha select
 Read: 1. Precharge bit and !bit to Vdd; 2. Select row; 3. Cell pulls one line low; 4. Sense
amp on column detects difference between bit and !bit
-Activar a linha select; o valor logico armazenado na célula é detetado pela diferença de
tensão entre as linhas “bit” e “bit”
SRAM Timing
Ler Escrever
Arquitetura de Computadores II Página 77 de 95
14.Memória – DRAM: Dynamic Access Memory
SRAM vs DRAM
 Em ambas a informação é volátil
-Alimentação tem de estar ligada para que o valor dos bits armazenados seja preservador
 Célula dinâmica: mais fácil de implementar a mais pequena; mais densa (células mais
pequenas = mais células por unidade de área); mais barata; requer circuito para
refrescamento do conteúdo das células de memória; usada para a memória central
 Estática: mais rápida; usada para memória cache (tanto on como off chip)
Evolução da DRAM
Ft. de progresso 64000 7 190
DRAM – no de bits/chip
1970 – 1Kb 2008 – 1GB 1milhão de vezes mais densa
Células de memória DRAM
1 Transístor por célula
• Capacidade armazena o valor do bit
• Read: capacidade descarrega – necessário restaurar a
carga no fim de cada operação de leitura (destrutiva)
• Tecnologia de 90nm: C = 30fF (f = 10^-15), Corrente
de fuga (leakage current) 1fA
• Corrente de fuga descarrega capacidade - necessário
restaurar periodicamente a carga da capacidade
(mesmo quando não há operações de leitura) – na
ausência de leitura, o condensador descarga
lentamente:
• DRAM requer circuito de refrescamento periódico da
carga do condensador; para memórias de grande
capacidade o custo adicional desse circuito é
largamente compensado pela maior simplicidade das
células de memória
Arquitetura de Computadores II Página 78 de 95
Write: colocar dado na linha “bit”; ativar a linha select
Read: pré-carregar a linha “bit” a VDD/2; ativar a linha “select” – valor logico detetado pela
diferença de tensão na linha bit (rel. A VDD/2); restauro do valor da tensão no condensador
(write);
Refresh da célula: operação interna idêntica a uma operação de “read”
 Organização em matriz;
 Endereços de linha e coluna multiplexados no tempo;
 Multiplexagem no tempo obriga à utilização de 2 sinais adicionais (multiplexagem com
2 strobes independentes)
o RAS – Row Address Strobe
o CAS – Column Address Strobe;
 Linha CAS funciona também como "chip-select";
 RAS e CAS, sensíveis à transição
DRAM: esquema lógico
 Sinais de controlo (RAS_L, CAS_L, WE_L, OE_L) active low
 DataInt and DataOut partilhem os mesmos pins(D):
o WE_L asserted(low), OE_L deasseted (HIGH)
 D-data output pin
o WE_L deasserted (HIGH), OE_L asserted (LOW)
 D-data output in
 Endereços da linha e da coluna partilham os mesmos pins (A)
o RAS_L goes low: pins A are latched in as row address
o CAS_L goes low: pins A are latched in as column address
o RAS/CAS edge-sensitive
 WE = 0 -> escrita; WE = 1 -> leitura ( = R/W)
 RAS: valida endereço da linha na transição descendente
 CAS: valida endereço da coluna na transição descendente
Arquitetura de Computadores II Página 79 de 95
256Kbytes memory: 8*256kbit array – bit lines e word lines com idêntica extensão
Key DRAM Timing Parameters
tRAC: tempo mínimo da linha RAS para a saída de dados validos
Quoted as the speed of a DRAM
A fast 4Mb DRAM tRAC = 60ns
tRC :tempo mínimo a partir do inicio de um conjunto de acesso para o inicio do proximo
tRC = 110ns for a 4Mbit DRAM with a tRAC of 60ns
tCAC: tempo mínimo da linha CAS para a saída de dados validos
15 ns for a 4Mbit DRAM with a tRAC of 60ns
tPC: Page Mode Cycle Time – tempo mínimo a partir do inicio de um conjunto de acesso para o
inicio do próximo
32 ns for a 4Mbit DRAM witch a tRAC of 60ns
DRAM Read Timing
Leitura Escrita
Arquitetura de Computadores II Página 80 de 95
Cycle time vs Access Time
DRAM (read/write) cycle time >> DRAM (read/write) access time
- 2:1; porque?
DRAM (read/write) cycle time:
- Com que frequência se pode iniciar um acesso?
DRAM (read/wirte) access time:
- How quickly will you get what you what once you initiate an access?
Page Mode DRAM
Fast Page Mode
Arquitetura de Computadores II Página 81 de 95
Advanced DRAM Organizadon
 Interface com a memória central ("Processor- Memory bottleneck” ou “Von Neumann
bottleneck”) é um fator critico na performance do sistema de computação quando se
usam processadores rápidos
 A organização tradicional das chips DRAM tem limitações intrínsecas que derivam da
sua arquitetura interna e do interface com o bus processador-memoria
 Para ultrapassar essas limitações foram propostas varias alterações à arquitetura
básicas das DRAM:
o Synchronous DRAM (SDRAM) e DDR SDRAM (Double Data Rate SDRAM)
o RDRAM (Rambus)
Synchronous DRAM (SDRAM)
 Uma das formas mais utilizadas da DRAM
 Trocas de dados com o processador sincronizado com um sinal de relógio externo e
funcionando com a velocidade total do barramento do processador/memória, sem
esperas
 Com acesso síncrono à DRAM move-se os dados dentro e fora sob o controle do relógio
do sistema:
o The processor or other master issues the instruction and address information
which is latched by the DRAM
o The DRAM then responds after a set number of clock cycles
o Meanwhile the master can safely do other tasks while the SDRAM is processing
SDRAM – Arquitetura interna
SDRAM Read Timing
Arquitetura de Computadores II Página 82 de 95
Double Data Rate SDRAM – DDR SDRAM
 SDRAM só envia um item por cada ciclo de bus processador-memoria
 Double-data-rate SDRAM pode enviar 2 itens por ciclo, um na frente ascendente e o
outro na frente descendente do relógio
 Desenvolvido pela JEDEC Solid State Techonlogy Association (Electronic Industries
Alliance’s semiconductor-engineering-standardization body);
Increasing Bandwidth – interleaving
Arquitetura de Computadores II Página 83 de 95
15.Memória Interna: deteção e correção de erros
Erros nas memórias
Hard failure
 Defeito permanente
 Células de memória afetada (s) não podem armazenar informação de forma fiável
(stuck-at-0, ou stuck-at-1 ou mudam erraticamente de estado)
 Pode ser causado por: condições de utilização fora do especificado/ defeitos de fabrico/
desgaste
Soft error
 Episódio aleatório, não-destrutivo, que altera o conteúdo de uma ou mais células de
memória
 Afeta a memória de modo não permanente
 Pode ser causada por: problemas na fonte de alimentação/ partículas alfa
Error-Correcting Code Function
Código de Hamming – SEC – single error correction – 4 data bits – 3 EDC bits
Arquitetura de Computadores II Página 84 de 95
16.Memória - Cache
Processor-DRAM Gap – latency
Localidade das Referencias
 Localidade espacial:
"a informação que o processador necessita de seguida, tem uma elevada probabilidade de
estar próxima da que consome agora"
Exemplos: instruções de um programa; processamento de um array
Quanto maior for o bloco de informação existente na memória rápida, melhor
 Localidade temporal:
"a informação que o processador consome agora tem uma elevada probabilidade de ser
novamente necessária num curto espaço de tempo"
Exemplo: variável de controlo de um ciclo, instruções de um ciclo
Quantos mais blocos de informação estiverem na memória rápida, melhor
Funcionamento de hierarquia de memória (com dois níveis)
Localidade temporal – manter os dados acedidos mais recentemente na memória mais rápida
Localidade espacial – mover blocos contíguos para a memória mais rápida
Unidade de transferência (bloco) entre a memória central e a cache tem a dimensão de uma
linha de cache.
 Nível primário (superior) rápido e de pequena dimensão. Contém os blocos de
memória mais recentemente utilizados
 Nível secundário (inferior) mais lento mas de maior dimensão.
 Os pedidos de informação são sempre dirigidos ao nível primário, sendo o nível
secundário envolvido apenas quando a informação pretendida não esta nesse nível; se
os dados pretendidos se encontram num bloco do nível primário então existe um hit;
caso contrário ocorre um miss
 Na ocorrência de um miss é efetuado o acesso ao nível secundário para obter os dados
(transferindo o bloco que contém a informação pretendida)
Arquitetura de Computadores II Página 85 de 95
Cache Memory: nível de memória que se encontra entre o CPU e a memória principal (primeiras
utilizações no inicio da década de 60); recentemente os PC incluem mais do um nivel de cache,
por vezes é integrada juntamente com o chip do processador
 Ideia: guardar numa memória mais rápida a informação a que o programa está a aceder
– cache memory
“… a fast core memory of, say, 32.00 words as a slave to a slower case memory of, say, 1 million
words, in such a way that in practical cases the effective access time is nearer that of the fast
memory than that of the slow memory”
Cache – contem cópia parcial do conteúdo da memória para mais rápido acesso do processador
aos dados
Processadores atuais: vários níveis de cache L1 < L2 < L3; tL1 < tL2 < tL3
Processadores multicore
Cache L1 – privada de cada core (CPU)
Cache L2 – partilhada pelas várias core (CPU)
Arquitetura de Computadores II Página 86 de 95
Typical Cache Organization
Cache Read Operation Typical Cache Organization
Arquitetura de Computadores II Página 87 de 95
Elements of cache design
1. CACHE ADDRESSES
 Memória virtual: mecanismo que permite aos programas endereçar a memória
utilizando todo o espaço de endereçamento (endereços lógicos), independentemente
da dimensão da memória física disponível (endereços físicos). Assim os programas
quando executados geram endereços lógicos que são traduzidos em endereços físicos
pela MMU (Memory Mangement Unit)
 MMU – componentes hardware que traduz endereços lógicos em endereços físicos
Logical and Physical Caches
2. MAPPING FUNCTION: 3 formas de organizar os sistemas de cache – mapeamento
direto, parcialmente associativa, totalmente associativa
 Direct-mapped – cada posição de memória é mapeada numa única posição na cache
 N-Way set associative – cada posição de memória pode ser mapeada em N posições
diferentes da cache
 Fully Associative – qualquer posição de memória pode ser mapeada em qualquer
posição da cache
Arquitetura Computadores II - Sistemas I/O
Arquitetura Computadores II - Sistemas I/O
Arquitetura Computadores II - Sistemas I/O
Arquitetura Computadores II - Sistemas I/O
Arquitetura Computadores II - Sistemas I/O
Arquitetura Computadores II - Sistemas I/O
Arquitetura Computadores II - Sistemas I/O
Arquitetura Computadores II - Sistemas I/O

Mais conteúdo relacionado

Mais procurados

Aula 7 microprocessador
Aula 7   microprocessadorAula 7   microprocessador
Aula 7 microprocessadorAndreson Moura
 
TIC - Conceitos Básicos
TIC - Conceitos BásicosTIC - Conceitos Básicos
TIC - Conceitos BásicosAntonio Semedo
 
Windows7educacao brz-web
Windows7educacao brz-webWindows7educacao brz-web
Windows7educacao brz-webPatibcosta
 
D1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - Noções
D1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - NoçõesD1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - Noções
D1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - NoçõesJordano Santos Cerqueira
 
Aula1 conceitos básicos informática
Aula1 conceitos básicos informáticaAula1 conceitos básicos informática
Aula1 conceitos básicos informáticaTimoteo Silva
 
A unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadorA unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadormarcelokuhl
 
Arquitectura Interna Do Computador
Arquitectura Interna Do ComputadorArquitectura Interna Do Computador
Arquitectura Interna Do Computadoraerc
 
Estrutura básica dos computadores
Estrutura básica dos computadoresEstrutura básica dos computadores
Estrutura básica dos computadoresaamdcarvalho
 
Introdução de informática
Introdução de informáticaIntrodução de informática
Introdução de informáticaNguyễn Dũng
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computadorPedro Ferreira
 
Hardware tininha
Hardware tininhaHardware tininha
Hardware tininhatininha3012
 
Proinfo informatica basica_14_05
Proinfo informatica basica_14_05Proinfo informatica basica_14_05
Proinfo informatica basica_14_05natanael_queiroz
 

Mais procurados (19)

Hardware
HardwareHardware
Hardware
 
Introdução às TIC
Introdução às TICIntrodução às TIC
Introdução às TIC
 
Aula 7 microprocessador
Aula 7   microprocessadorAula 7   microprocessador
Aula 7 microprocessador
 
Hardware2
Hardware2Hardware2
Hardware2
 
Aula2 e 3 9º ano
Aula2 e 3 9º anoAula2 e 3 9º ano
Aula2 e 3 9º ano
 
TIC - Conceitos Básicos
TIC - Conceitos BásicosTIC - Conceitos Básicos
TIC - Conceitos Básicos
 
Windows7educacao brz-web
Windows7educacao brz-webWindows7educacao brz-web
Windows7educacao brz-web
 
1066
10661066
1066
 
D1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - Noções
D1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - NoçõesD1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - Noções
D1 - Marcos Rodrigues Saúde - Informática Aplicada ao Direito - Aula 02 - Noções
 
Aula1 conceitos básicos informática
Aula1 conceitos básicos informáticaAula1 conceitos básicos informática
Aula1 conceitos básicos informática
 
A unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computadorA unidade central de processamento - o que acontece dentro do computador
A unidade central de processamento - o que acontece dentro do computador
 
Arquitectura Interna Do Computador
Arquitectura Interna Do ComputadorArquitectura Interna Do Computador
Arquitectura Interna Do Computador
 
Hardwarerobs
HardwarerobsHardwarerobs
Hardwarerobs
 
Estrutura básica dos computadores
Estrutura básica dos computadoresEstrutura básica dos computadores
Estrutura básica dos computadores
 
Introdução de informática
Introdução de informáticaIntrodução de informática
Introdução de informática
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computador
 
Hardware tininha
Hardware tininhaHardware tininha
Hardware tininha
 
Proinfo informatica basica_14_05
Proinfo informatica basica_14_05Proinfo informatica basica_14_05
Proinfo informatica basica_14_05
 
Manual TIC
Manual TICManual TIC
Manual TIC
 

Semelhante a Arquitetura Computadores II - Sistemas I/O

Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamentocataina999
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamentoAna_Ribeiro13
 
Estrutura básica de um computador
Estrutura básica de um computadorEstrutura básica de um computador
Estrutura básica de um computadorAna Covas Grilo
 
Estrutura Básica de um
Estrutura Básica de um Estrutura Básica de um
Estrutura Básica de um Ana Covas Grilo
 
Tic conceitos introdutórios - cef
Tic   conceitos introdutórios - cefTic   conceitos introdutórios - cef
Tic conceitos introdutórios - cefjmesq
 
Unidade II - hardware
Unidade II -  hardwareUnidade II -  hardware
Unidade II - hardwareDaniel Moura
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamentobeatriz_mixer
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamentoanocascalhau
 
Dispositivos de processamento_ana_rita (1)
Dispositivos de processamento_ana_rita (1)Dispositivos de processamento_ana_rita (1)
Dispositivos de processamento_ana_rita (1)aninhas89
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computaçãoPAULO Moreira
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfAriclenesKinkela
 
Dispositivos de processamento_anastasiya
Dispositivos de processamento_anastasiyaDispositivos de processamento_anastasiya
Dispositivos de processamento_anastasiyaHoran16
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamentoalicebdsilva
 
3 introdução à estrutura e funcionamento de um pc
3 introdução à estrutura e funcionamento de um pc3 introdução à estrutura e funcionamento de um pc
3 introdução à estrutura e funcionamento de um pcSandra Minhós
 

Semelhante a Arquitetura Computadores II - Sistemas I/O (20)

Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamento
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamento
 
Estrutura básica de um computador
Estrutura básica de um computadorEstrutura básica de um computador
Estrutura básica de um computador
 
Estrutura Básica de um
Estrutura Básica de um Estrutura Básica de um
Estrutura Básica de um
 
Tic conceitos introdutórios - cef
Tic   conceitos introdutórios - cefTic   conceitos introdutórios - cef
Tic conceitos introdutórios - cef
 
Unidade II - hardware
Unidade II -  hardwareUnidade II -  hardware
Unidade II - hardware
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamento
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
 
Hardware
HardwareHardware
Hardware
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamento
 
Dispositivos de processamento_ana_rita (1)
Dispositivos de processamento_ana_rita (1)Dispositivos de processamento_ana_rita (1)
Dispositivos de processamento_ana_rita (1)
 
Unidade 1
Unidade 1Unidade 1
Unidade 1
 
Funcionamento de um sistema de computação
Funcionamento de um sistema de computaçãoFuncionamento de um sistema de computação
Funcionamento de um sistema de computação
 
Arquitetura componentes
Arquitetura componentesArquitetura componentes
Arquitetura componentes
 
parte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdfparte2 fundamentos de arquitetura 1 e 2 pdf
parte2 fundamentos de arquitetura 1 e 2 pdf
 
Dispositivos de processamento_anastasiya
Dispositivos de processamento_anastasiyaDispositivos de processamento_anastasiya
Dispositivos de processamento_anastasiya
 
01_2 - Hardware.pdf
01_2 - Hardware.pdf01_2 - Hardware.pdf
01_2 - Hardware.pdf
 
Exer ic prova
Exer ic provaExer ic prova
Exer ic prova
 
Dispositivos de processamento
Dispositivos de processamentoDispositivos de processamento
Dispositivos de processamento
 
3 introdução à estrutura e funcionamento de um pc
3 introdução à estrutura e funcionamento de um pc3 introdução à estrutura e funcionamento de um pc
3 introdução à estrutura e funcionamento de um pc
 

Mais de Rui Oliveira

Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024Rui Oliveira
 
Regulamento Interno - CRM Outeiro Grande
Regulamento Interno  - CRM Outeiro GrandeRegulamento Interno  - CRM Outeiro Grande
Regulamento Interno - CRM Outeiro GrandeRui Oliveira
 
Estatutos CRMOG - versão antiga
Estatutos CRMOG - versão antigaEstatutos CRMOG - versão antiga
Estatutos CRMOG - versão antigaRui Oliveira
 
Resumo - Visão Por Computador
Resumo - Visão Por Computador Resumo - Visão Por Computador
Resumo - Visão Por Computador Rui Oliveira
 
Gestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório PráticoGestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório PráticoRui Oliveira
 
Relatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRelatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRui Oliveira
 
Planeamento de uma prova no concurso - Robô Bombeiro
Planeamento de uma prova no concurso - Robô BombeiroPlaneamento de uma prova no concurso - Robô Bombeiro
Planeamento de uma prova no concurso - Robô BombeiroRui Oliveira
 
Guião Felizmente há Luar!
Guião Felizmente há Luar!Guião Felizmente há Luar!
Guião Felizmente há Luar!Rui Oliveira
 
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTODocumento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTORui Oliveira
 
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTOApresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTORui Oliveira
 
Teoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTONTeoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTONRui Oliveira
 
Sofbol em Portugal e no mundo
Sofbol em Portugal e no mundoSofbol em Portugal e no mundo
Sofbol em Portugal e no mundoRui Oliveira
 
A natação em portugal
A natação em portugalA natação em portugal
A natação em portugalRui Oliveira
 
1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquido1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquidoRui Oliveira
 
Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes Rui Oliveira
 
Corfebol em Portugal e no Mundo
Corfebol em Portugal e no MundoCorfebol em Portugal e no Mundo
Corfebol em Portugal e no MundoRui Oliveira
 
1.2.Atrito cinético e estático
1.2.Atrito cinético e estático1.2.Atrito cinético e estático
1.2.Atrito cinético e estáticoRui Oliveira
 
1.1.Máquina de Atwood
1.1.Máquina de Atwood1.1.Máquina de Atwood
1.1.Máquina de AtwoodRui Oliveira
 
Movimento circular
Movimento circularMovimento circular
Movimento circularRui Oliveira
 
Filarmónica XXI 1ªedição
Filarmónica XXI 1ªediçãoFilarmónica XXI 1ªedição
Filarmónica XXI 1ªediçãoRui Oliveira
 

Mais de Rui Oliveira (20)

Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024Estatutos - CRM Outeiro Grande, atualizado em 2024
Estatutos - CRM Outeiro Grande, atualizado em 2024
 
Regulamento Interno - CRM Outeiro Grande
Regulamento Interno  - CRM Outeiro GrandeRegulamento Interno  - CRM Outeiro Grande
Regulamento Interno - CRM Outeiro Grande
 
Estatutos CRMOG - versão antiga
Estatutos CRMOG - versão antigaEstatutos CRMOG - versão antiga
Estatutos CRMOG - versão antiga
 
Resumo - Visão Por Computador
Resumo - Visão Por Computador Resumo - Visão Por Computador
Resumo - Visão Por Computador
 
Gestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório PráticoGestor de Filmes - Relatório Prático
Gestor de Filmes - Relatório Prático
 
Relatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas EletrónicosRelatório Prático - Sistemas Eletrónicos
Relatório Prático - Sistemas Eletrónicos
 
Planeamento de uma prova no concurso - Robô Bombeiro
Planeamento de uma prova no concurso - Robô BombeiroPlaneamento de uma prova no concurso - Robô Bombeiro
Planeamento de uma prova no concurso - Robô Bombeiro
 
Guião Felizmente há Luar!
Guião Felizmente há Luar!Guião Felizmente há Luar!
Guião Felizmente há Luar!
 
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTODocumento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
Documento CAPITULO SETE - tópicos MEMORIAL DO CONVENTO
 
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTOApresentação CAPITULO SETE - MEMORIAL DO CONVENTO
Apresentação CAPITULO SETE - MEMORIAL DO CONVENTO
 
Teoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTONTeoria da Relatividade de NEWTON
Teoria da Relatividade de NEWTON
 
Sofbol em Portugal e no mundo
Sofbol em Portugal e no mundoSofbol em Portugal e no mundo
Sofbol em Portugal e no mundo
 
A natação em portugal
A natação em portugalA natação em portugal
A natação em portugal
 
1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquido1.5.coeficiente de viscosidade de um líquido
1.5.coeficiente de viscosidade de um líquido
 
Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes Centenário de Nss. Sª de Lourdes
Centenário de Nss. Sª de Lourdes
 
Corfebol em Portugal e no Mundo
Corfebol em Portugal e no MundoCorfebol em Portugal e no Mundo
Corfebol em Portugal e no Mundo
 
1.2.Atrito cinético e estático
1.2.Atrito cinético e estático1.2.Atrito cinético e estático
1.2.Atrito cinético e estático
 
1.1.Máquina de Atwood
1.1.Máquina de Atwood1.1.Máquina de Atwood
1.1.Máquina de Atwood
 
Movimento circular
Movimento circularMovimento circular
Movimento circular
 
Filarmónica XXI 1ªedição
Filarmónica XXI 1ªediçãoFilarmónica XXI 1ªedição
Filarmónica XXI 1ªedição
 

Arquitetura Computadores II - Sistemas I/O

  • 1. Arquitetura de Computadores II Página 1 de 95 Apontamentos Teóricos Arquitetura de Computadores II 2013-2014 – 2ºSemestre Conteúdo 1. Introdução......................................................................................................................... 2 2. Sistema de Input/Output .................................................................................................. 3 3. Buses – Barramentos....................................................................................................... 12 4. Comunicação em série, barramentos e interface........................................................... 26 5. Comunicação em série – UART ....................................................................................... 28 6. Comunicação em série – RS-232C................................................................................... 32 7. Comunicação em série – USB – Universal Serial Bus ...................................................... 35 8. Comunicação em série – I2 C............................................................................................ 44 9. Comunicação em série – SPI ........................................................................................... 52 10. Comunicação em série - CAN...................................................................................... 57 11. Memória, conceitos .................................................................................................... 68 12. Memória – Tecnologias de memória .......................................................................... 73 13. Memória – SRAM: Static Access Memory................................................................... 75 14. Memória – DRAM: Dynamic Access Memory ............................................................. 77 15. Memória Interna: deteção e correção de erros.......................................................... 83 16. Memória - Cache......................................................................................................... 84 17. Memória Flash............................................................................................................. 95
  • 2. Arquitetura de Computadores II Página 2 de 95 1. Introdução Componente de um sistema de computação: AC1 : Processor, Control , Datapath AC2: Memory Input/Output -> Mundo exterior Sistema embebido (embedded)  Sistema de computação especializado - uma função específica, dedicada, num sistema maior, mais complexo, custo muito inferior, recursos disponíveis são limitados.  Realiza uma tarefa específica ou o controlo de um determinado dispositivo.  Tem requisitos próprios e executa apenas tarefas pré-definidas.  É normalmente implementado com base num microcontrolador;  Exemplos: Automóveis (ABS, sistema de controlo da estabilidade, controle do motor…); Sistema de telecomunicações (centrais telefónicas, network routers, telemóveis); Produtos eletrónicos de consumo (DVD, maquina fotografias, camaras de vídeo…)  Essencial: ligação ao mundo exterior Processador e o I/O  Microprocessador de 500 MHZ pode executar 500 milhoes de instruções por segundo – I/O devides de 0,01KB/s a 30000KB/s.  Input - dispositivos pode não estar pronto a enviar dados rapidamente quanto o processador os lê;  Output - dispositivos pode não estar pronto a aceitar dados rapidamente quanto o processador os produz. Microcontrolador  Computador integrado num chip (µC) - Processador + Memoria + Periféricos – um computador dedicado utilizado em sistemas embebidos (Embedded Microcontroller)  Constituído por: Microprocessador, memoria, I/O ports, … também temporizadores, conversores A/D…  Barramentos (dados, endereços e controlo), interligam todos estes dispositivos.  Ports I/0 – podem ser configurados para diferentes funções Microcontrolador PIC32  Diagrama de blocos Figura 1 Microcontrolador constituído por um Microprocessador
  • 3. Arquitetura de Computadores II Página 3 de 95  Factores de desempenho: velocidade do processamento o Microcontroladores: rapidez de resposta a eventos externos/ consumo de potencia/ minimização das necessidade de memoria/ velocidade de processamento/…  Mapa de memoria do PIC32 Zona de memoria com os registos dos perifericos SFRs – Special Function Registers 2. Sistema de Input/Output Conceitos base  O sistema de entrada/saída providencia os mecanismos e os recuso para a comunicação entre o sistema computacional e o exterior  Troca de informação como o exterior: o processo – Input/Output(I/O); o dispositivo – periférico Periféricos num sistema de computação  Grande variedade de tipos de operação: impraticável incorporar no processador a logica necessária para controlar uma gama diversificada de periféricos  Velocidade de transferência de dados frequentemente mutos menos do que a do processador e da memória: impraticável usar o processador para comunicar diretamente com o periférico  Usar frequentemente formatos de dados e comprimentos de palavras diferentes dos do processador  Necessário I/O Modulo (I/O Adapters) I/O Module
  • 4. Arquitetura de Computadores II Página 4 de 95  Funções: Interface com (comunicação) o processador e a memória / Interface com (comunicação) um ou mais periféricos / Controle e temporização (coordenação do fluxo de dados entre o sistema e os periféricos) / Buffer de dados (memoria local) / Deteção de erros  A comunicação entre o processador e o module I/O é feita através de um meio de partilha com outros dispositivos – BUS  A interface de I/O pode ser vista como um módulo de compatibilização entre as características e modo de funcionamento do sistema computacional e o dispositivo físico propriamente dito.  A interface de I/O assegura 3 funções fundamentais: o Adequação, ao nível do hardware, das características do dispositivo físico de I/O às características do sistema digital ao qual tem que se ligar. Deste modo o periférico liga-se ao sistema através dos barramentos, do mesmo modo que todos os outros dispositivos (memória ou outros periféricos) o Interação com o dispositivo físico: adequação às particularidades do dispositivo, formatação de dados, detecção de situações de erro, ... o Adequação, ao nível do software, do dispositivo físico à forma de organização do sistema computacional, disponibilizando e recebendo informação através de registos; esta solução esconde do programador a complexidade e os detalhes de implementação do dispositivo periférico  Com a adoção da interface de I/O o dispositivo externo, independentemente da sua natureza e função, passa a ser encarado pelo programador como uma colecção de registos de dados, de controlo e de status  O conjunto de registos e a descrição de cada um deles são específicos para cada periférico e constituem o que se designa por modelo de programação do periférico Periféricos (Dispositivos externos)  Definição: Grande variedade; com métodos de operação diversos; assíncronos relativamente ao CPU; != quantidade de informação com != formatos a != velocidade; mais lenta que o CPU e a memória;  Interface com o I/O module: Control Signals - determinam a função a executar pelo periférico -I/P (Read) – enviar dado para I/O module -- O/P(Write)- receber dados do I/O module; Status signals – indicam o estado do periférico; Data – conjunto de bits a ser recebidos ou enviados pelo I/O module  Periférico: Control Logic – controla a operação do periférico segundo as diretivas do I/O module; Buffer – armazena temporariamente os dados transferidos entre o I/O module e o exterior; Transducer – conversão dos sinais elétricos em outras formas; Periféricos – Teclado e discos magnéticos  Teclado: unidade de informação – caracter- código de 7 ou 8 bits (ASCII); dois tipos de caracteres: -Visualizáveis – alfabéticos e numéricos; -De controle: controlam a impressão dos caracteres ou de comunicação;  Transducert – quando o utilizador prime uma tecla traduz o sinal grado num conjunto de bits correspondentes ao código do carater escrito que são transmitidos ao I/O module;
  • 5. Arquitetura de Computadores II Página 5 de 95  Discos Magnéticos – contém eletrónica para comunicar dados, e sinais de controle e de status com o modulo de I/O; Transdutor que converte a informação armazenada magneticamente na superfície do disco em bits que coloca no Buffer e vice-versa; Eletrónica que controla o movimento das cabeças de leitura/escrita, posicionando-as nos trilhos a ler; Transferência de dados de um periférico para o computador 1) Processador interroga o módulo de I/O para verificar o estado (status bits) do periférico 2) Módulo de I/O transmite status ao processador 3) Se o periférico está operacional e pronto a transmitir o processador transmite um comando de leitura módulo de I/O 4) O módulo de I/O obtém o dado do periférico 5) O dado é transferido para o processador Modelo de programação – Módulo de I/O  Data register – registo onde o processador coloca o dado a ser escrito no periférico (output) e onde o periférico coloca o dado a ser lido pelo processador (input)  Status register (ready-only) – bits que indicam o estado do periférico  Control register (write-only) – registo onde o processador escreve os comandos/modo de operação para o periférico Processador <-> Modulo de I/O  Descodificação dos comandos: o módulo de I/O recebe comandos do processador através do barramento de controlo (control bus)  Dados: transferidos através do barramento de dados (Data bus)  Status: status bits – BUSY, READY, condições de erro,…  Descodificação de endereço: cada I/O module tem de reconhecer os endereços dos periféricos que controla Módulo de I/O <-> Periférico  Comandos / Informação de estados do periférico (Status) / Dados – DATA BUFFERING / Velocidade de transferência de dados do processador e da memória são várias ordens de grandeza maiores do que as de muitos periféricos  Necessidade de Data Buffer no módulo de I/O Estrutura do Module I/O  System Bus Lines: O módulo conecta-se ao resto do computador através de um conjunto de linhas de sinal;  Control: usados para ativar um periférico e indicar-lhe o que fazer  Test: usados para testar varias condições do estado do dispositivo
  • 6. Arquitetura de Computadores II Página 6 de 95  Read: o módulo de I/O obtém um dado do periférico e coloca-o num buffer interno. O processador obtém o dado indicando ao módulo o que o coloque no Data Bus  Write: o módulo de I/O recebe o dado (byte ou word) do data bus e transmite-o posteriormente ao periférico. Comunicação entre processador e módulo de I/O  Processador necessita de: o Definir o modo de operação dos periféricos; o Indicar qual a operação a efetuar (leitura ou escrita); o Saber qual o estado dos periféricos; o Escrever nos registos de controlo; ler registo de status o Enviar ao periférico dados (escrita) e ler dados fornecidos pelo periférico (leitur) o Ler/escrever nos registos de dados Como identificar os registos de I/O?  Alternativas: Agrupados num espaço de endereçamento próprio, distinto do espaço de endereçamento de memória – I/O isolado  Reportório de instruções inclui instruções específicas para I/O (Intel x86: instruções in e out; espaço de endereçamento de 64 kB (endereço de I/O de 16bits))  Registo de I/O mapeados em memória – Memory-mapped I/O  MIPS: instruções de load e store para comunicar com os periféricos Técnicas de transferência de informação - I/O  I/O Programado: a entrada e saída de dados é feita sob controlo do programa, que interroga o módulo de I/O (polling) – o CPU toma a iniciativa  Sob Interrupção (Interrupt driven): o periférico, quando necessita de atenção, gera um pedido de interrupção. O processador interrompe o programa em execução para executar uma sub-rotina que faz a transferência de dados de/para o periférico. O periférico sinaliza o CPU de que está pronto para trocar informação (leitura ou escrita). O CPU controla a transferência.  Acesso direto à memória (DMA): os dados são transferidos diretamente entre o periférico e a memória sem intervenção do processador (CPU) Operação de input I/O Programado  Quando o processador está a executar um programa e encontra uma instrução relacionada com o módulo de I/O  Processador envia um comando ao módulo de I/O
  • 7. Arquitetura de Computadores II Página 7 de 95  Módulo de I/O executa a ação especificada no comando e coloca nos seus bits de status os valores apropriados (sem tomar qualquer ação para alertar o processador)  O processador lê periodicamente o estado do módulo de I/O até verificar que a operação terminou Sequência temporal para escrita: Secções 1,2 e 3 do programa não envolvem I/O 4- Preparação da operação de I/0:  Verificar status do dispositivo  Transferir o dado para o módulo I/O  Prepara os parâmetros para o comando de I/O  Emitir o comando de I/O e aguardar que o dispositivo o execute (testar status) 5- Completar a operação I/O sob interrupção (exemplo leitura)  Processador envia ao periférico um comando de leitura  Processador prossegue execução – quando termina execução do comando o periférico gera interrupção  Processador executa rotina de tratamento de interrupções (interrupt servisse routine) : 1. Identifica a origem da interrupção; 2.verifica status do periférico; 3.lê o novo dado; 4. Armazena-o na memória;  Processador retoma execução do programa Interrupções - Transferência de controlo I/O por interrupção  Na técnica de E/S por interrupção quando o periférico está pronto para disponibilizar/receber informação sinaliza o CPU;  Uma interrupção, depois de reconhecida, faz com que o CPU abandone temporariamente a execução do programa em curso para executar a rotina que dá seguimento à interrupção gerada o A rotina associada à interrupção designa-se por rotina de serviço à interrupção ou interrupt handler  A transferência é também efetuada pelo CPU mas o tempo de espera é eliminado, uma vez que a interrupção ocorre quando o periférico está pronto para a troca de informação
  • 8. Arquitetura de Computadores II Página 8 de 95  Esta técnica mascara o problema da longa latência descrito no exemplo de leitura de informação de uma unidade de disco Processamento de uma interrupção 1. The device issues an interrupt signal to the processor. 2. The processor finishes execution of the current instruction before responding to the interrupt. 3. The processor tests for an interrupt, determines that there is one, and sends an acknowledgment signal to the device that issued the interrupt. The acknowledgment allows the device to remove its interrupt signal. 4. The processor now needs to prepare to transfer control to the interrupt routine. To begin, it needs to save information needed to resume the current program at the point of interrupt. The minimum information required is (a) the status of the processor, which is contained in a register called the program status word (PSW), and (b) the location of the next instruction to be executed, which is contained in the program counter. These can be pushed onto the system control stack. 5. The processor now loads the program counter with the entry location of the interrupt-handling program that will respond to this interrupt. Depending on the computer architecture and operating system design, there may be a single program; one program for each type of interrupt; or one program for each device and each type of interrupt. If there is more than one interrupt-handling routine, the processor must determine which one to invoke. This information may have been included in the original interrupt signal, or the processor may have to issue a request to the device that issued the interrupt to get a response that contains the needed information. 6. At this point, the program counter and PSWrelating to the interrupted program have been saved on the system stack. However, there is other information that is considered part of the“state”of the executing program. In particular, the contents of the processor registers need to be saved, because these registers may be used by the interrupt handler. So, all of these values, plus any other state information, need to be saved.Typically, the interrupt handler will begin by saving the contents of all registers on the stack.Figure 7.7a shows a simple example. In this case,a user program is interrupted after the instruction at location N. The contents of all of the registers plus the address of the next instruction (N+1) are pushed onto the stack.The stack pointer is updated to point to the new top of stack, and the programcounter is updated to point to the beginning of the interrupt service routine. 7. The interrupt handler next processes the interrupt. This includes an examination of status information relating to the I/O operation or other event that caused an interrupt. It may also involve sending additional commands or acknowledgments to the I/O device. 8. When interrupt processing is complete, the saved register values are retrieved from the stack and restored to the registers 9. The final act is to restore the PSW and program counter values from the stack. As a result, the next instruction to be executed will be from the previously interrupted program. Múltiplas fontes de interrupção  Impedir as interrupções (interruput disable) enquanto está a ser processada uma interrupção – não tem em conta a necessidade de garantir tempos de resposta  Definir prioridade para as interrupções, permitindo que a rotina de tratamento de uma interrupção seja interrompida para entender pedidos de interrupção de um dispositivo com maior prioridade
  • 9. Arquitetura de Computadores II Página 9 de 95 Prioridades:  Printer: 2;  Disco:4;  Dispositivos de comunicação: 5  T=10 – printer IT;  T=15 –communication device IT;  T=20 – disk IT a) Sem prioridade b) Com prioridade Controlador de interrupções  Programação: *Enable/ Disable dos pedidos de interrupção de cada periférico; * Definir os níveis de prioridade de atendimento dos pedidos de interrupção dos vários periféricos  Operação: 1. Periférico x pede interrupção; 2. Se (ITX enabled) controlador de IT transmite pedido de interrupção ao CPU; 3. CPU termina instrução em curso e se prioridade de ITReq > nível de prioridade atual IT acknowledge; 4. Salvaguarda do PC e transferência de controlo para IT Handler – Non-vectrorel IT – IT Handler identifica periférico que pediu IT; Vectored IT – Controlador de IT fornece IT vector – controle transferido diretamente para o IT Handler do periférico que pediu IT Interrupções: o CoProcessador 0  Configuração do CPU  Controle de exceções/Interrupções  Controle da cache  Controlo da MMU (Memory Management Unit)
  • 10. Arquitetura de Computadores II Página 10 de 95 Registos relacionados com exceções/interrupções mtc0 s, <n> #move to cp0 Coloca o conteúdo do registo s do processador no registo n do CP0 mfc0 d, <n> #move from cp0 Transfere o conteúdo do registo n do CP0 para o registo d do processador – única maneira de inspecionar o conteúdo de um registo de CP0 eret # return from exception Rfe nas primeiras versões do MIPS Status register bits  IE – Interrupt Enble (bit 0) – permite/inibe globalmente as interrupções  IM7-0 – Interrupt Mask(bits 15-8) : *define individualmente as fontes de interrupção que podem causar exceções; * 6 (das 8) fontes de interrupção são geradas por sinais externos À CPU (as outras duas são internas ao CPU); * bit = 1 enables a interrupção correspondente;  EXL – Exception Level (1bit) – set quando ocorre uma interrupção/exceção – coloca o CPU em modo kernel e inibe as interrupções, permitindo ao s/w definir uma nova interrupt mask e o nível de privilégio do CPU Cause Register  IP7-0 – Interrupt Pending – pedidos de interrupção pendentes. Cause (IP7-2) (bits 15- 10) indica os pedidos externos de interrupção- O AND com a interrupt Mask (SR) define os pedidos de interrupção ativos  TI – Timer Interrupt (bit30) – interrupção causada pelo timer do CPU EBase Register  ExceptionBase (bits29-12) – endereço base dos vetores de interrupção  Prioridade das interrupções no MIPS  A arquitetura MIPS não suposta a definição de prioridades diferentes para as fontes de interrupção, deixando essa responsabilidade para o software  PIC32 – prioridade definidas pelo Priority Interrupt Controller (externo ao processador) Programação I/O – DETPIC32 PortB PortD PortC PortG PortF PortE 8 pins
  • 11. Arquitetura de Computadores II Página 11 de 95 Portas do PIC 32 – Estrutura simplificada Programação de uma porta  Designação das portas: TRISX , LATX, PORTX | x = B,C,D,E,F ou G  Comunicação com as portas: o Registos mapeados no espaço de endereçamento de memória (memory- mapped I/O): leitura de registos: instrução de load; escrita em registos: instrução de store o Acesso aos registos: endereço – base da zona dos registops de I/O + posição do registo 0xBF800000 (SFR_BASE; SFR_BASE_HI = 0xBF80) 1. Configurar porta – escrever no registo TRISx. Exemplo : configurar os bits 0 e 2 de TRISE como porta de saída (s/ alterar a configuração dos outros bits); endereço relativo ao TRISE = 0x6100 lui $t1, SFR_BASE_HI lw $t2, TRISE($t1) # ler configuração de PORTE andi $r2, $t2, 0xFFFA # bits 0 e 2 de $t2=0 sw $t2, TRISE($t1) # pins 0 e 2 de PORTE configurados como de saída; restantes bits inalterados 2. Comunicação de dados com a porta: Ler portas de entradas; atribuir valores às portas de saída
  • 12. Arquitetura de Computadores II Página 12 de 95 3. Buses – Barramentos Interligação dos blocos de um sistema de computação Como interligar processador, memoria e os dispositivos de entrada e saída de dados? BUS – estrutura de interligação. A topologia de barramento permite que diversos módulos compartilhem a mesma ligação física (desde que os requisitos elétricos e físicos sejam respeitados). A partilha de um recurso (barramento) requer um protocolo para seleção dos interlocutores, este seleção é efetuada através de endereçamento. Cada fio transporta informação relativa a 1 bit. Tipos de interligações possíveis: a) Ligações ponto-a-ponto Full crossbar ou matrix bus Ligação entre cada 2 componentes através de linhas dedicadas exclusivamente a essa ligação b) Vias de comunicação (linhas) comuns – partilhadas pelos diferentes componentes do sistema de computação Shared Bus Os vários componentes do sistema estão interligados por linhas partilhadas entre todos eles – sinais transmitidos por um dos dispositivos disponíveis para receção por qualquer dos dispositivos ligados ao bus Tipos de dispositivos ligados a um BUS  Master – dispositivo que pode iniciar uma transferência de dados – read ou write - exemplo processador  Slave – dispositivo que só responde a pedidos de transferência de dados, não podendo formula-los – exemplo memoria
  • 13. Arquitetura de Computadores II Página 13 de 95 Módulos ligados ao BUS Memoria N posições, cada uma com um endereço (0,1,…N-1). Uma palavra pode ser lida ou escrita na memória. Read, Write – sinais de controlo: indicam a operação Módulo de I/0  M portas – cada modulo pode controlar vários (M) periféricos – cada um desse interfaces é uma porta e tem um endereço (0,1,…M-1). Duas operações: read e write  External data – linhas para entrada e saída de dados do periférico  Interrupt singnals – módulo pode enviar pedidos de interrupção ao processador Processador  Lê instruções e dados e escreve dados depois de processados  Usa os sinais de controlo para controlar a operação do sistema de computação  Recebe pedidos de interrupção Tipos de transferência que um BUS tem de suportar  Memoria -> CPU: CPU lê uma instrução ou um dado da memória  CPU -> memoria: CPU escreve um dado na memória  I/O -> CPU: CPU lê um dado do periférico através do módulo de I/P  CPU -> I/O: CPU envia dados par ao periférico  I/O <-> memoria: periférico troca dados diretamente com a memória sem intervenção do processador (DMA) Ligações a um BUS  Bus de Dados – linhas que permitem movimentar dados entre os módulos  Bus de endereços – linhas que especificam a origem ou o destino dos dados no data bus  Bus de controlo – controlam o acesso ao bus e a utilização das linhas de dados e de endereços Características dos BUS  Largura do bus – número de linhas de endereço e de dados (32bits bus, 64bits bus)  Tipo de bus - *Dedicado – linhas distintas para endereços e dados; *Multiplexado – endereços e dados usam as mesmas linhas  Tipo de comunicação no bus – síncronas e assíncronas  Métodos de arbitragem  Tipos de transferência de dados suportados
  • 14. Arquitetura de Computadores II Página 14 de 95 Bus Standards  Definição de standards abertos, independes do fabricante, permite fornecimento de módulos (placas) para ligação a periféricos por parte de outros fornecedores – a IBM ter tornado publica a definição de bus ISA e IBM PC foi essencial para o desenvolvimento da indústria O que exige a um bus?  Que estabeleça satisfatoriamente os mecanismos de comunicação requeridos  Definição bem especificada e bem documentada para permitir que interfaces desenhados por fornecedores concorrentes ao longo do tempo sejam efetivamente compatíveis  Que evite a imposição de restrições desnecessárias ao desempenho do sistema  Custo compatível com o mercado alvo  Permitir a expansão e evolução no futuro a um custo razoável Taxas de transferências – Bus transfer rate Novas aplicações exigem maiores taxas de transferências: Gigabit Ethernet, Video-on-demand… Limitações de ter um único BUS Se um grande número de dipositivos estiver ligado a um bus o desempenho degrada-se: 1. Mais dipositivos implicam maior comprimento de bus, i.e. tempo de propagação dos sinais no bus aumenta 2. O bus pode tornar-se um estrangulamento do sistema quando as texas de transferência de informação entre o conjunto de dispositivos ligados ao bus se aproxima da capidade deste  Hierarquia de buses em lugar de um único bus Hierarquia de BUSES BRIDGE- liga 2 buses Atua como slave de um lado e master do outro
  • 15. Arquitetura de Computadores II Página 15 de 95 PC dos anos 90 PIC32 System Bus / High-Speed Bus Peripheral Bus On-chip buses
  • 16. Arquitetura de Computadores II Página 16 de 95 Diagramas Temporais Os diagramas temporais são usados para ilustrar sequências de eventos e dependências entre eventos. A comunicação entre os dispositivos conectados a um bus ocorre ao longo de um conjunto de linhas capazes de transportar sinais. Existem dois níveis de sinal (níveis de tensão), que representam a gama binária (0 ou 1), que podem ser transmitidos. Um diagrama de tempos mostra os níveis de sinais numa linha em função do tempo. Por convenção, o nível 1 de sinal é descrito como um nível mais elevado do que o nível 0. Normalmente, binário 0 é o valor padrão. Isto é, se não houver dados a linha é representada com o valor binário 0. Uma transição de sinal de 0 a 1 é frequentemente referido como sinal leading edge , enquanto que uma transição de 1 para 0 é referido como sinal trailing edge . Tais transições não são instantâneas, mas este tempo de transição é geralmente pequeno em comparação com o nível de sinal. Num diagrama de tempo, pode acontecer que uma variável em menor quantidade irrelevante de tempo decorrido entre os eventos de interesse. Este é representado por uma lacuna na linha do tempo. Os sinais são, por vezes, representada em grupos (b). Por exemplo, se os dados são transferidos de um byte de cada vez, em seguida, são necessárias oito linhas. Geralmente, não é importante conhecer o valor exato a ser transferido, mas apenas se os sinais estão presentes ou não. A transição do sinal em uma linha pode desencadear um dispositivo anexado a fazer mudanças de sinal em outras linhas. Por exemplo, se um módulo de memória deteta um sinal de controlo de leitura (0 ou 1 de transição), irá colocar os sinais de dados sobre as linhas de dados. Tais relações produzem sequências de eventos. As setas são usadas nestes diagrama para mostrar as dependências existentes. c) A barra superior sobre o nome do sinal indica que o sinal é ativo a low. Por exemplo, o command está ativo, ou seja, em 0 volts. Isto significa que o command = 0 é interpretado como valor lógico 1, ou verdadeiro. A linha de relógio é muitas vezes constituinte de um sistema de barramentos. Um relógio eletrónico está ligado à linha do relógio e fornece uma sequência repetitiva, regular de transições.
  • 17. Arquitetura de Computadores II Página 17 de 95 Transferências num BUS síncrono - read e write Relógio comum: todas as transferências se efetuam numa transição do relógio Read Processador coloca um endereço de memória no Addr.Bu no 1º ciclo de relógio e sinaliza Addr.Enable. No 2º ciclo emite o comando Read Modelo de memória reconhece o endereço e coloca o seu conteúdo no bus no ciclo de relogio seguinte Processador lê o dado no data bus e desativa Read Write Processador coloca um endereço de memória no Addr.Bus no 1º ciclo e o dado no Data bus no 2ºciclo de relógio e emite o comando Write Módulo de memória copia a informação do data bus durante o 3º ciclo de relogio Nota: Necessário tempo para que as linhas do bus estabilizem Transferência num Bus Assíncrono Inexistência de relógio – a sincronização das transferências é feita por sinais gerados pelos dispositivos Handshake Read – Acknowledge Read - Acknowledge Handshake Write - Acknowledge Diferenças entre bus síncrono e assíncrono  Bus síncrono – módulos de interface com os periféricos têm de ser capazes de responder no tempo de um ciclo de relógio; permite maior rapidez; dispositivos mais lentos condicionam as taxas de transferência nos bus  Bus assíncrono – módulos de interface podem responder ao seu próprio ritmo – mais fácil acomodar periféricos com diferentes tempos de resposta; Handshake implica 2 tempos de propagação no bus – mais lento; Arbitragem do bus  Bus com mais do que um módulo master – qualquer master pode iniciar uma transferência de dados  Necessário mecanismo de arbitragem para decidir que master assume o controlo do bus quando vários o pretendem fazer. Alternativas: o Arbitragem centralizada – a decisão de atribuição do bus é feita por um dispositivo especial – o árbitro
  • 18. Arquitetura de Computadores II Página 18 de 95 o Arbitragem descentralizada – o mecanismo de decisão envolve todos os masters não existindo um árbitro individualizado Arbitragem e descodificação de endereços centralizadas  O decoder tem como input as linhas de endereço no bus e gera (usualmente a partir dos seus bits mais significativos) os sinais de seleção do módulo slave respetivo  Arbitro te como input as linhas de bus request dos masters e como output linhas de bus grant de ligação a cada master  Fácil adicionar novos módulos ao bus Arbitragem e descodificação de endereços distribuídas  Descodificação de endereços feita internamente em cada módulo  Vantagem: menos vias de ligação  Custo: logica de descodificação replicada em cada módulo Políticas de arbitragem Prioridade fixa – a cada um dos masters no bus é atribuída uma prioridade fixa 1. Nom-pre-emptive – uma vez obtido o controlo dos bus o módulo matem-no até terminar a transferência, mesmo se no decorrer desta um módulo de prioridade mais elevada formule um bus requesrt 2. Pre-emptive – uma transferência de prioridade mais baixa é interrompida por um pedido de acesso de um módulo com prioridade mais elevada  Starvation – módulos de prioridade mais baixa Round-robin – acesso ao bus é atribuído rotativamente – um master quando termina a transferência para o controle ao master seguinte  Acesso equitativo ao bus  Transferências de dados críticas podem ter de esperar um tempo longo Prioridade dinâmica – prioridades podem variar em runtime (com o sistema ligado ) consoante o perfil de trafico das aplicações – exige mecanismos de analise do trafego do bus  Custo de implementação elevado
  • 19. Arquitetura de Computadores II Página 19 de 95 Transferências de dados com arbitragem – Non-pipelined T1 . Pedido ao árbitro para acesso ao bus – BUSREQ T2 . Arbitro atribui controle do bus – GRANT T3 . Master coloca o endereço em ADDR e ativa as linhas de controle – read T4 . Slave reconhece endereço e coloca dado em RDATA – data lines T5 . Novo pedido do bus ao arbitro – BUSRED Transferências de dados com arbitragem – pipelined (non-multiplexed buses) Endereços e dados sobrepostos
  • 20. Arquitetura de Computadores II Página 20 de 95 Burst transfers – non-pipelined  Envio de múltiplos dados com uma única arbitragem par toda a transação  Master tem de indicar ao árbitro que pretende transferir múltiplos dados  Poupa tempo Burst trasnfers pipelined  Só possível em buses não multiplexados  Reduz a latência da transferência Split transfers Quando existem ligados ao bus dispositivos – slave – que necessitam de vários ciclos de relógio para colocar no bus um dado o bus continua atribuído ao master que pediu a transferência e o acesso permanece bloqueado para outros masters Solução: 1. O slave indica ao árbitro uma transferência SPLIT 2. Árbitro mascara o pedido do master que iniciou a transferência e atribui o bus a outro master 3. Quando o slave está pronto a transferir o dado indica-o ao árbitro (“un-split”) e este tira a mascara ao pedido do master 4. O master retorna o controlo do bus de acordo com o algoritmo de arbitragem e o slave completa a transferência
  • 21. Arquitetura de Computadores II Página 21 de 95 Alguns dos bases mais utilizados – IO BUSES PCI BUS PC Motherboard Bus PCI – características  Síncrono – relógio de 33Mhz ou 66MHz  Multiplexado – linhas comuns para endereços e dados  Versões 32 bits e 64 bits  Arbitragem centralizada  Bus de ligação de periféricos nos PC PC da década passada
  • 22. Arquitetura de Computadores II Página 22 de 95 Transferências no bus PCI – 2 modos item a item Burst Sinais de controlo durante operações de leitura e de escrita
  • 23. Arquitetura de Computadores II Página 23 de 95 Operação de read no bus PCI a) Master que obteve o controlo do bus – initiator – aciona FRAME que mantem até à ultima fase da transferência e coloca o endereço do dispositivo nas linhas AD b) O dispositivo alvo – traget – reconhece o endereço nas linhas AD c) O initiator retira-se do bus AD para preparar a sua utilização pelo target (turnaround cycle) e ativa IRDY para indicar estar pronto a receber o dado d) O target atuva DEVSEK para indicar que reconheceu o seu endereço. Coloca o dado no bus AD e ativa TRDY para o assinalar e) O initiator lê o dado no início do 4º ciclo e muda as linhas byte enable em preparação para a leitura seguinte. f) Target not ready para enviar dado – TRDY desativo (wait state) 5º ciclo: target coloca 2º dado em AD g) 6º Ciclo: target coloca dado em AD mas initiator not ready (IRDT desativo) h) Initiator desativa FRAME sinalizando que a leitura é a última e ativa IRDY, lendo o 3º dado no inicio do 8º ciclo i) Initiator desativa IRDY, colocando o bus no estado inativo PCI – tipos de ciclos do bus
  • 24. Arquitetura de Computadores II Página 24 de 95 Arbitragem no bus PCI  As especificação do bus não impõe o algoritmo de arbitragem  Qualquer algoritmo pode ser usado (FCFS, Round-Robin, Prioridade) Arbitragem no bus PCI a) A pede o bus b) Durante o primeiro ciclo B pede o bus e bus é atribuído a A c) (GNT#-A) d) No início do segundo ciclo A verifica que lhe foi atribuído o bus. Ativa FRAME e coloca endereço alvo em AD e) Árbitro examina as linhas REQ no início do 3º ciclo, e concede o controlo do bus a B (GNT#-B) f) A desativa FRAME indicando que está em curso a ultima (e única) transferência, coloca o dado em AD e ativa IRDY. O dado é lido no início do 4ºcicilo g) B verifica que a FRAME e IRDY está desativados e toma control do bus Hidden arbitration – arbitragem feita em simultâneo com transferência de dados
  • 25. Arquitetura de Computadores II Página 25 de 95 PCI Express (PCIe) Ligação ponto –a-ponto vs Bus partilhado  Bus partilhado é a estrutura standard de ligação tradicional mas ligações ponto-aponto estão a torna-se comuns  Problemas da arquitetura de bus partilhado: o Limitações físicas ao aumento da frequência de relógio o Sincronização e arbitragem tornam-se difíceis de efetuar em tempo útil o Restrições na frequência de funcionamento tornam-se críticas nas gerações de computadores mais recentes  Ligações ponto-a-ponto o Menor latência o Maiores velocidades de transferências Características  Ligação ponto-a-ponto  Grande capacidade para suportar: - gigabit ethernet; - data streams: *vídeo-on-demand *distribuição de áudio PCIe – configuração típica Arquitetura dos PC – intel 2002 2014 PCI express substitui alguns dos buses internos Sistema de I/O simplificado
  • 26. Arquitetura de Computadores II Página 26 de 95 4. Comunicação em série, barramentos e interface Comunicação à distância  Standards de comunicação de um sistema com o exterior (p ex com outros computadores, com terminais, impressoras…)  Duas alternativas: o Comunicação paralela – múltiplos bits (tipicamente um byte) transmitidos simultaneamente através de múltiplas vias de ligação – só usada para curtas distâncias. Relógio comum.  Interface centronics para impressoras (obsoleto)  PIC32 – parallel master port (PMP – 8 ou 16 bits)  Ligação a SRAM ou memória flash externas ou a outro microcontrolador o Comunicação series – transmissão bit a bit  Vantagens: simplicidade de implementação/ligação da cablagem; Diminuição de custos de interligação; possibilidade de transmissão a distancias elevadas (em par diferencial); Débito elevado  RS232C – EIA standard . 1969 (serial port dos PCs)  I2 C – inter-integrated circuit  SPI – serial peripheral interface  USB – universal serial bus Tipos de comunicação de dados Tipos de transmissão Síncrona – a transmissão dos dados é acompanhada da transmissão do sinal de relógio, I2C SPI Assíncrono – não há transmissão do sinal de relógio, RS232, USB Isócrona – tempo entre dados sucessivos é igual à unidade de tempo básica do sistema de transmissão (ciclo de relógio) ou a um seu múltiplo
  • 27. Arquitetura de Computadores II Página 27 de 95 Comunicação assíncrona Para transmitir um dado (um carater) é necessário acrescentar bits para sinalizar o princípio e o fim da transmissão do carater: Transmissão ASCII 7bits, sem paridade
  • 28. Arquitetura de Computadores II Página 28 de 95 5. Comunicação em série – UART  Universal Asynchronous Receiver Transmitter  Transmissão: pega em bytes de dados e transmite os bits individualmente de forma sequencial  Receção: reassembla os bits em bytes  Cada UART tem um shif register que faz a conversão paralelo-serie na transmissão e serie paralelo na receção  É um canal de comunicação série assíncrona full-duplex  Em geral não gera diretamente os sinais externos. Isso é feito por dispositivos de interface que convertem os níveis lógicos da UART nos níveis de tensão para transmissão (RS-232, RS-422, IrDA, Bluetooth… ) Comunicação  Simplex – dispositivos apenas recebe ou envia  Half-duplex – dispositivo recebe ou envia alternadamente  Full-duplex – dispositivo recebe e envia simultaneamente PIC32 UART – Microcontrolador com 6 UARTs Transmissão de dados 1. Dado a transmitir carregado no shif-register 2. UART gera start bit e através da saída serie (serial-out) do S.R. o bit seguinte do dado a transmitir é colocado na saída a cada ciclo de relógio. O 1º data bit transmitido é o LSB
  • 29. Arquitetura de Computadores II Página 29 de 95 3. UART transmite bit de paridade (se usado) e o(s) stop bit(s)  Transmissor e recetor têm um buffer de 8 posições UART – transmissão de dados
  • 30. Arquitetura de Computadores II Página 30 de 95 Receção  Todas as operações da UART são controladas por um sinal de relógio de frequência múltipla de baud rate – PIC32 UART: 4*clock ou 16*clock  Recetor testa o estado da entrada a cada impulso de relógio para detetar um start bit  Apos o tempo de transmissão de 1 bit a linha de entrada é de novo amostrada e o valor é entrado (serial – in) para o SR  Depois do tempo para amostragem de todos os bits do carater ter decorrido o conteúdo do SR fica disponível para ser lido em paralelo. A UART ativará um flag para indicar que um novo dado está disponível (PIC32: bit 0 do registo de status e de controlo UxSTA)  Relógios internos da UART são ressincronizados pelo flanco descendente do status bits
  • 31. Arquitetura de Computadores II Página 31 de 95 UART receção de dados UART Transmissão: conversão paralela serie Receção: conversão serie paralelo shift register serial out - parallel in - entradas do SR serial in parallel out - saidas do SR
  • 32. Arquitetura de Computadores II Página 32 de 95 6. Comunicação em série – RS-232C  Stardard para transmissão serie o Define os sinais que ligam um DTE – Equipamento Terminal da dados (p.ex. o terminal de um computador) e um DCE – Equipamento de Comunicação de Dados (um modem). o Permite comunicação bidirecional, full-duplex o Usado também para ligar diretamente 2 DTEs, sem utilização de modems (null modem – comprimento da ligação não excedendo 20 m)  Porta serie RS-232 usada nas primeiras gerações de PCs para ligação a modems, impressoras, rato, UPS. Muito fácil de implementar e de programação continua a ser muito usado em microcontroladores.  Substituído nas gerações mais recentes por USB  Principais limitações: o Consumo de energia elevado o Os níveis lógicos de comunicação são simétricos p.e. +10v -10v o Sinalização single-ended: baixa imunidade ao ruido; impõe limitações na distância e velocidade o Apenas suporta ligações ponto-a-ponto  Na forma mais simples, a implementação da norma RS232 requer apenas a utilização de 2 linhas de sinalização e uma linha de massa Transmissão à distância Standard RS-232 (1969) O standard define:  Características elétricas dos sinais – níveis de tensão, temporização, slew-rate dos sinais  Características mecânicas do interface, fichas de ligação, identificação dos pins  Subsets do standard para aplicações específicas O standard não define:  Codificação dos caracteres, deteção de erros  Bit rate (baud rate) da transmissão (embora especifique que deverá ser inferior a 20 000 bits/s (tradicionalmente máximo de 19600 bits/s)) RS232 – ligação DTE-DCE Linhas adicionais para protocolar a troca de informação entre os dois equipamentos (handshake) : RTS, CTS, DTR, DSR
  • 33. Arquitetura de Computadores II Página 33 de 95 Fichas RS 232 RS 232 – descrição dos sinais Null modem  Ligação direta de 2 DTE, sem modems – necessárias apenas 3 linhas  Distância máxima entre os equipamentos: 20 metros Níveis de tensão – camada física – codificação dos níveis lógicos  O standard define as tensões máximas e mínimas para 1 e 0 lógicos: Nível 1: -3v a -25 v (valor típico -12v) Nível 0: 3V a 25 v (valor típico +12v)  Valores da tensão entre -3v e +3v têm valor logico indeterminado  Na ausência de informação a tensão na linha é equivalente ao nível 1 (-12v)  Um valor da tensão de 0v no recetor é interpretada como um corte ou um curto-circuito na linha  [-3v, 3v] – intervalo “proibido ”
  • 34. Arquitetura de Computadores II Página 34 de 95 Baud rate Velocidade a que a informação é transmitida (bits/s). Velocidade em caracteres/s: Receção Na receção: frequência de relógio múltipla da bit rate – vários ciclos de relógio durante o tempo correspondente a 1 bit – linha de transmissão amostrada a meio do bit Códigos de transmissão * Return to zero (RZ); Return to Zero inverted (RZI) – entre cada impulse o sinal vem a zero/um * Non-return to zero (NRZ); Non-return to zero inverted(NRZI) – o mais comum * Manchester coding
  • 35. Arquitetura de Computadores II Página 35 de 95 7. Comunicação em série – USB – Universal Serial Bus O porquê da sua utilização? Limitações RS-232C: exige a coordenação manual de baud rate, paridade, nº de stop bits,… USB  Permite a ligação de periféricos a computadores de um modo estandardizado, com um protocolo standard – dispositivos interagem diretamente com o sistema de operação do computador sem intervenção do utilizador (“plug and play”)  Permite ligação e retirada de periféricos a qualquer momento, sem necessidade de desligar o sistema (“hot-swap”)  Pode fornecer energia aos periféricos através do mesmo cabo utilizado para comunicação de dados  Permite ligar periféricos com necessidades de taxas de transferência de dados muito mais rápidas  Substitui a multiplicidade de diferentes conectores e fichas de ligação característicos dos PCs de há 20 anos  Exige software de comunicação de um maior nível de complexidade As origens  Desenvolvimento do USV iniciado em 1994 por um grupo de 7 companhias: Compaq (posteriormente Hewlett-packard); DEC; IBM; Intel; Microsoft; NEC; Nortel  Objetivo: facilitar a ligação de periféricos substituindo a diversidade de fichas por um único tipo de conector, simplificando a configuração por software de todos os dispositivos ligados ao PC e permitir maiores velocidades de transferência de dados  Primeiros circuitos integrados suportando USB produzidos pela Intel em 1995 A evolução  USB 1.1 (1998) – half-duplex; low speed: 1.5Mbits/s ; full speed: 12Mbits/s  USB 2.0 (2000), 480Mbits/s, High Speed – half-duplex  USB 3.0 (2008), 4.8Gbits/s, SuperSpeed – full-duplex  USB 3.1 (2013), 10Gbits/s, SuperSpeed+  Permite a ligação de até 127 dispositovos a cada porta  Comprimento máximo da ligação: 5m para USB2.0 (com hubs até 30m (6 troços))  Todas as novas versões mantêm a compatibilidade com as versões anteriores (backword e forward compatibility)
  • 36. Arquitetura de Computadores II Página 36 de 95 Os vários periféricos: impressoras, scanners, teclado, rato, máquinas fotográficas, webcams, modems, telemóveis, dispositivos de armazenamento (e.g. pens, discos rígidos) Estrutura física do BUS USB Host e Device  Host – bus master  Quando é ligado o host interroga todos os dispositivos ligados ao bus e atribui a cada um deles um endereço – enumeration  Hot-swappable – dispositivos podem ser ligados e desligados sem desligar o host
  • 37. Arquitetura de Computadores II Página 37 de 95 Linhas do Bus  USB 2.0 – half-duplex – Power (+5v) e ground; par entrançado (twited pair) para transporte de dados; dispositivos que consomem pouca potência podem ser alimentados pelos USB;  USB 3.0 – full-duplex - +4 linhas para transporte de dados Fichas USB
  • 38. Arquitetura de Computadores II Página 38 de 95 Tiered Star – topologia do bus USB Tipos de transferência de dados  Control transfers – usadas para configurar um dispositivo quando é ligado  Bulk data Transfers – transferência “de rajada” (burst) de volumes significativos de dados sem grande exigências temporais (impressoras, scanners, pens, discos… )  Interrupt Data Transfers – usados para transferências de poucos dados a ser feitas num dado intervalo de tempo (teclado, rato,… )  Isochronous Data Transfers (streaming real time transfers) – transferências com um tempo máximo de latência (os dados fluem entre o dispositivos e o host em tempo real) (voz: microfone, vídeo,… )  Um pipe suporta apenas um destes tipos de transferências Periféricos: tipos de transferência usados  Interrupt – dispositivos que enviam poucos dados (eg teclado, rato)  Bulk – dispositivos que recebem dados em pacote (eg impressora)  Isochronous – dispositivos que necessitam de um fluxo contínuo de dados (eg microfones). Os dados fluem entre o dispositivo e o host (o computador) em tempo real
  • 39. Arquitetura de Computadores II Página 39 de 95 Camadas do sistema  Cliente S/W – s/w que executa no host correspondente a um dispositivo USB. Fornecido com o sistema de operação ou com o dispositivo USB  USB System S/W – s/w que suporta USB num dado Sistema de Operação, independentemente de um dispositivo específico ou do s/w cliente  USB Host Controller (interface do host com o bus) – o h/w e o s/w que permite a dispositivos USB serem ligados ao bus Pipe – abstração da ligação entre duas entidades
  • 40. Arquitetura de Computadores II Página 40 de 95 Fluxo de informação USB transporta dados através de um pipe entre um buffer em memória associado a um client software e um endpoint de um periférico USB. Pipes  Pipe – ligação entre um endpoint num dispositivo e software em execução no host  2 tipos, mutuamente exclusivos, de comunicação nos pipes: o Stream – o USB não impõe um formato aos dados que fluem no pipe o Message – os dados que circulam no pipe têm um formato imposto pelo USB  Deflaut Control Pipe – o pipe associado aos 2 endpoints zero (IN e OUT). Criado sempre que um dispositivo é ligado e recebeu bus reset. Usado pelo S/W de sistema para identificar o dispositivo e configurá-lo. IRPs  O s/w cliente solicita transferências de dados através de I/O Request Packets (IRPs) a um pipe e espera ou é notificado quando a transferência está completa  Em endpoint pode informar o host que está ocupado respondendo com NAK
  • 41. Arquitetura de Computadores II Página 41 de 95 Stream pipes e Message pipes USB Frames  As transferências no bus processam-se em Frames.  O host envia um Start of Frame (SOF), -Cada 125ms (High-speed USB); -Cada 1ms (Full- Speed USB)  Cada frame contem 1500bytes  Até 90% da largura de banda disponível é usada pelas frames. Se se tentar ligar novos dispositivos que levem a exceder o limite dos 90% a sua ligação é recusada  Os 10% restantes são usados para bulk transfers e comandos Frames e Micoframes Transferência de dados  Os dados são transferidos em pacotes, tanto no caso de stream pipes como de message pipes  A formatação e interpretação dos dados transportados numa transação no bus é da responsabilidade do S/W cliente e da função  O USB disponibiliza diferentes tipos de transferência para corresponder de modo mais ajustado aos requisitos do s/w cliente e da função que utilizam o pipe  Cada tipo de transferência determina várias características do fluxo de dados: formato imposto pelo USB; direção da comunicação; tamanho dos pacotes; num pacote de dados CRC16
  • 42. Arquitetura de Computadores II Página 42 de 95 Transferências de controle  Suportam a comunicação de configuração, comandos e status entre o s/w cliente e a função usando o deflaut control pipe  As transferências de controle são o mecanismo para aceder aos descritores dos dispositivos e para formular pedidos ao dispositivo para manipular o seu funcionamento. Tipos de identificadores de pacotes (PID)
  • 43. Arquitetura de Computadores II Página 43 de 95 CRC (Cyclic Redundancy Check)  Usados em todos os campos exceto o do PID nos pacotes token e de dados  Permitem detetar todos os erros em 1 e 2 bits
  • 44. Arquitetura de Computadores II Página 44 de 95 8. Comunicação em série – I2 C  I2C – Inter-Intergrated Circuit  Bus serie, multi-master  Transação master-slave com opção multi-master (requer arbitragem)  Usado para ligar periféricos lentos a telefones celulares, sistemas embebidos ou a motherboards  1982: Philips Semiconductors (atualmente NXP Semiconductors) introduz o I2C como um bus interno, simples e barata para sistemas de controle, funcionamento a 100KHz e um espaço de endereçamento de 7 bits – Standard Mode  1992: 1ª versão standard – adicionado 400Khz fast-mode (Fm) e endereçamento de 10bits  1998: versão 2 – adicionado 3.4MHz High-speed mode (Hs)  2007: versão 3 – adicionado 1-MHz fast-mode plus (Fm+) e um mecanismo de identificação de dispositivos  2012: versão 4 – adicionado 5 MHz ultra fast-mode (UFm) usando as linhas USDA e USCL com logica push-pull sem resistências de pull-up  Intel mobile communications, NEC, Texas Instruments, STMicroelectronics, Freescale e Intersil, fornecem componentes compatíveis I2C  Intel definiu o SMBus (System Management Bus) que é um subconjunto de I2C que define os protocolos mais estritamente no intuito de aumentar a robustez e favorecer a interoperabilidade  O módulo I2C do PIC32 suporta o modo base (100KHZ, 7 bit address) e fast-mode (400KHz, 10 bits address) Taxas de transmissão Standard mode Até 100Kbits/s Fast mode Até 400Kbits/s Fast mode plus 1Mbits/s High speed Até 3.4Mbit/s Terminologia  Transmitter: dispositivo que envia dados para o barramento  Receiver: dispositivo que recebe dados do barramento  Master: o dispositivo que inicia a transferência, gera o sinal de relógio e termina a transferência  Slave: o dispositivo endereçado pelo master  Multi-master: mais do que um master pode tentar, ao mesmo tempo, controlar o barramento sem corromper a comunicação em curso  Arbitragem: procedimento para assegurar que, se mais do que um master tentar, simultaneamente, controlar o barramento, apenas a um é permitido continuar, sem perturbação da comunicação iniciada pelo master vencedor  Sincronização: procedimento para sincronização dos sinais de relógio de dois ou mais dispositivos
  • 45. Arquitetura de Computadores II Página 45 de 95  Master – gera o clock e inicia a comunicação com os slaves  Nó slave – recebe o clock e responde quando é endereçado pelo master  2 modos de operação possíveis: o Master transmite – Slave recebe o Slave transmite – Master recebe Em ambos os modos o sinal de relógio é gerado pelo master  Bus open-drain – quando o bus está inativo SDA e SCL estão high  O barramento de comunicação só necessita de dois fios: DAS e SCL  Transferência serie bidirecional, half-duplex, orientada ao byte.  Barramento multi-master: com deteção de colisões e arbitragem de modo a evitar corrupção de informação se dois ou mais masters iniciarem simultaneamente uma transferência.  As transferências envolvem sempre uma relação master/slave  Master pode ser transmissor ou recetor (master-transmitter ou master-receiver)  Cada dispositivo ligado ao barramento é endereçável por softwaew usando um endereço único previamente atribuído  Endereços de 7 bits: alguns endereços reservados, 112 disponíveis; extensão para 10 bits suportada I2C: Open Drain structure (or Open Collector) for both SCL and SDA
  • 46. Arquitetura de Computadores II Página 46 de 95 Transferência de Dados  São transmitidos bytes (8 bits) As transações são delimitadas por dois símbolos / “condições”: START e STOP – as condições Start/Stop são sinalizadas por meio de uma sequência que viola as regras normais de transferência de dados. 1. Transferência de dados iniciada com um START bit (S) assinalado por SDA low enquanto SCL está high. Transição de 1->0. 2. Para cada bit transmitido, o valor tem de ser colocado em SDA enquanto SCL low (tempo da barra azul); o dado é lido quando SCL passa a high (barra verde); DAS tem de se manter valido até que SCL passe de novo a low. 3. Quando a transferência está completa, SCL passa a high seguindo de SDA – condição de STOP (P). Transição de 0->1. Estado do barramento: Ocupado: após um start, até ao próxima stop; Livre: após um stop, até ao próximo start. Não existe limite para o número de bytes transmitidos num pacote I2C. O bit mais significativo é transmitido primeiro.
  • 47. Arquitetura de Computadores II Página 47 de 95
  • 48. Arquitetura de Computadores II Página 48 de 95 Pacotes I2C
  • 49. Arquitetura de Computadores II Página 49 de 95 Transferência de dados  Cada byte transmitido tem de ser acknowledged pelo recetor o Apos a transmissão do 8º bit o transmissor liberta a linha DAS e o master gera um impulso de relógio adicional o O recetor faz o acknowledged (ACK) colocando DAS o Quando o recetor não coloca DAS low (not acknowledge - NACK) o master aborta a transferência e toma medidas para lidar com o erro  O master: envia um START, de seguida envia o endereço do slave (7bits) e o bit de qualificação da operação (Read / Write -R/W)  O slave endereçado deve efetuar o acknowledgde no slot seguinte  De seguida o transmissor (master ou slave) envia o byte de dados aguardando um acknowledge do recetor no final. Este ciclo de 9 bits repete-se para cada byte de dados que se pretende transferir  A transferência é orientada ao byte (8 bits) sendo transmitido, em primeiro lugar, o bit mais significativo (MSbit)  Após o 8 bit (o LSbit), o recetor tem de gerar um acknowledge, na linha DAS, sob a forma de um bit dominante (0)  Na situação em que o master é recetor gera: o Acknowledgde sinalizado dessa forma o slave de que vai continuar com operações de leitura o Not acknowledgde sinalizando o slave de que o byte recebido constitui o fim da transferência. Neste caso o master envia logo de seguida um STOP
  • 50. Arquitetura de Computadores II Página 50 de 95 Sincronização do relógio  2 masters podem começar a transmitir ao mesmo tempo quando o bus está livre. O método de decisão de qual deles assume o controle do bus e efetua a transmissão é feito pelos mecanismos de sincronização do relógio e de arbitragem  A sincronização do relógio é feita através da ligação wired-AND à linha SCL dos dispositivos I2C 1. Clock do dispositivo 1 (CLK 1 ) low 2. Clock do dispositivo 2 (CLK 2 ) low 3. Termina tlow de CLK1. Como CLK2 ainda está low SCL permanece low 4. Termina tlow de CLK2. SCL é liberta e transita para high. Os masters começam a contar thigh Deste modo é gerado um SCL sincronizado com tlow determinado pelo master com o maior tlow e thigh determinado pelo master com menor thigh Arbitragem  2 masters podem iniciar uma transferência se o bus estiver livre; podem ambos gerar START, resultando numa condição de START válida no bus  Arbitragem necessária para determinar qual o master que completa a sua transmissão. A arbitragem processa-se bit a bit. Durante cada bit, quando SCL está high cada master verifica se o valor de DAS coincide com o que enviou.  A 1ª vez que um master tenta envia um HIGH e verifica que DAS está low, fica a saver que perdeu a arbitragem e desliga o seu driver da linha. Quando 2 masters tentam transmitir simultaneamente podem até gerar alguns ciclos em que os dados coincidem, mas quando um deles coloca a linha a low enquanto o outro a tenta colocar
  • 51. Arquitetura de Computadores II Página 51 de 95 high, o “low” ganha o controle do bus e o outro dispositivo retira-se e espera até que o bus esteja de novo livre. Resumo I2C Vantagens  Hardware standard e simples  Protocolo de comunicação simples  Fácil adicionar/retirar dispositivos – h/w e s/w  Layout em placas de circuitos impressos simples (só duas vidas de ligação)  Suficientemente rápido para aplicações de interface com utilizadores: displays, switches, teclados, controle, sistemas de alarme  Grande número de componentes com interface I2C  Bus robusto
  • 52. Arquitetura de Computadores II Página 52 de 95 9. Comunicação em série – SPI Serial Peripheral Interface – SPI  Comunicação em 4 linhas  Interface definida inicialmente pela Motorola -1980 - (Microwire da National Semiconductor é um subset do protocolo SPI)  Bus síncrono – relógio é gerado pelo master que o disponibiliza para todos os slaves; Não é exigida precisão ao relógio – os bits vão sendo transferidos a cada transição de relógio. Isto permite utilizar um oscilador de baixo custo no master  …opera em modo full-duplex… - funciona em modo “data Exchange”; Por cada bit que é enviado para o recetor também é recebido. Isto é, ao fim de N ciclos de relógio o transmissor enviou uma palavra de N bits e recebeu uma palavra com a mesma dimensão.  …com um único bus master. – (master-slave) com ligação ponto a ponto. o O sistema só pode ter um master o O master é o único dispositivo no sistema que pode controlar o relógio o Um master pode estar ligado a vários slaves o Apenas 1 slave é selecionado pelo master para comunicar de cada vez o O master inicia e controla a transferência de dados  Utilizado para ligar 2 circuitos integrados no mesmo tipo de aplicação que o I2C : sensor de temperatura, pressão, controladores de jogos, vídeo, touchscreens,… Dispositivos de controle: codecs áudio, potenciómetros digitais, DAC; memoria flash e EEPROM; RTCs; Cartões de memória (MMC/SD); Comunicação entre microcontroladores;  Ligações a curtas distancias  Fácil de implementar por hardware ou por software  Ausência de line drivers Comunicação envolve 2 Shift- registers (um no master e outro no slave) – ligação em anel 1. A informação é transferida do transmit buffer para o SR 2. A informação é transferida para o outro SR um bit de cada vez 3. A informação é transferida do SR para o receive buffer Dados: SDO – serial data out; SDI – serial data in Controlo: SS Slave select (sinal ativado pelo master para selecionar o slave com quem vai comunicar); SCR – serial clock Sinal de relógio: duty-cycle 50%
  • 53. Arquitetura de Computadores II Página 53 de 95 Operação  O master configura o relógio para uma frequência igual ou inferior à suportada pelo slave com quem vai comunicar  O master ativa a linha SS do slave com que vai comunicar  Em cada ciclo do relógio (por exemplo na transição positiva) o O master coloca na sua linha SDO um bit de informação que é lido pelo slave na transição de relógio oposta seguinte o O slave coloca na sua linha SDO um bit de informação que é lido pelo master na transição de relógio oposta seguinte  O master descativa a linha SS e "pára" o relógio (fica estável, por exemplo, no nível lógico 1) o Só há relógio durante o tempo em que se processa a transferência  No final, o master e o slave trocaram o conteúdo dos seus shift-registers  Sinais de seleção – slave select – independentes  Em cada instante apenas um SSx está ativo, i.e., apenas 1 slave está selecionado  Os sinais SDO dos slaves não selecionados ficam em alta impedância
  • 54. Arquitetura de Computadores II Página 54 de 95 Independen slave configuration Daisy-Chain configuration Tipos de transferências  Com já visto, o SPI funciona em modo "data exchange", isto é, o processo de comunicação envolve a troca do conteúdo dos shiftregisters do master e do slave  Cabe aos dispositivos envolvidos na comunicação decidir acerca da validade da informação  Assim, podem considerar-se os seguintes cenários de transferência  Bidireccional - São transferidos dados válidos em ambos os sentidos (master→slave e slave →master)  master → slave (operação de escrita) master transfere dados pretendidos para o Slave, e ignora/ descarta os dados recebidos  slave → master (operação de leitura) - master desencadeia transferência quando pretende ler dados do slave. O slave ignora/descarta os dados recebidos
  • 55. Arquitetura de Computadores II Página 55 de 95
  • 56. Arquitetura de Computadores II Página 56 de 95 O que o protocolo não define  Taxa máxima de transferência  Mecanismo de endereçagem  Mecanismo de acknowledgement para confirmar receção  Modos de controlo de fluxo de dados  Características do interface físico – valores de tensão…  Inicialmente a maior parte das implementações usava um relógio não contínuo e transferência byte a byte. Atualmente existem muitas variantes que usam um relógio contínuo e transferências de comprimento arbitrário. No PIC32  Três dispositivos de comunicação SPI, cada dispositivo pode ser conf. c slave ou master  Transferências de 8, 16, ou 32 bits – configuradas pelo utilizador  SR separados para receção e transmissão  Os buffers de receção e transmissão são FIFOS: 16 posições -> 8bits; 8 posições - > 16bits; 4 posições -> 32 bits  Quando é configurado como slave: o relógio local é descativo; O relógio na entrada do SR só tem atividade quando o sinal SS está activo.  2 modos de operação: o Normal – relógio não continuo o Framed (SSx sinal que sincroniza a frame) – relógio continuo (free running)
  • 57. Arquitetura de Computadores II Página 57 de 95 10.Comunicação em série - CAN  Controller Area Network  Bus serie, multi-master, com capacidade tempo-real  Concebido por engenheiros da Bosch no início da década de 1980, para simplificar as cablagens nos automóveis  Ideia inicial – desenvolver um sistema de comunicação entre unidades eletrónicas de controlo (ECU)  Desenvolvimento de um novo standard – nenhum dos protocolos de comunicação existentes satisfazia os requisitos de velocidade e fiabilidade necessários  Propriedade da Bosch; licenciado à maioria dos fabricantes de semicondutores  Módulos CAN incluídos na maior parte das famílias atuais de microcontroladores (PI,…)  Atualmente o bus mais popular na industria automóvel  Competidores: J1850 (USA), Van (França) e PALMNET (Japão)  Muitas aplicações em automação e controlo para além da indústria automóvel (low level field bus) Desenvolvimento do bus CAN  1983: início de um projeto na Bosh, na Alemanha, para desenvolver uma rede de comunicação para veículos automóveis  1986: introdução do protocolo CAN  1987: primeiros controladores CAN da Intel(82526) e da Philips (82C200)  1991: especificação CAN 2.0A da Bosh  1992: criação do grupo de fabricantes e utilizadores CAN in Automation (CiA) que publicam o CAN Application LAyoer Protocol (CAL)  1992: Mercedes-Benz usa rede CAN  1993: Standard ISSO 11898  1995: CANopen (application layer protocol) publicada pela CiA  2000: Desenvolvimento de TTCAN (Time-Triggered Communication protocol for CAN)  Presente: a maioria dos veículos usa o bus CAN Quem usa o bus CAN?  Desenhado originariamente para utilização em veículos automóveis, onde se tornou standard  Atualmente – automação industrial / equipamento médico Microcontroladores num carro: ABS (1+4); keyless entry system (1); active wheel drive control(4); engine control (2); airbag sensor(6++); seat occupation sensors(4)…. CANBUS Physical Layer  Meio físico – 2 fios terminados e ambas as extremidades por resistências  Sinais deferencial (twisted pair) – melhor imunidade ao ruido  Vantagens de bus serie: peso e custo reduzidos; menos fios = maior fiabilidade
  • 58. Arquitetura de Computadores II Página 58 de 95 Automóvel Ligações paralelas CAN bus VS CAN no automóvel: 2 bus (Mercedes, Wolkswagen, BMW, Renault, Fiat, Volvo…) Classe C – 1 Mbit/s Classe A – 10Kbits/s Vantagens do CAN  Standard bem estabelecido  Existência de muitos produtos e ferramentas CAN no mercado  Protocolo implementado em Hardware  Conjugação de tratamento de erros e confinamento dos erros com velocidades de transmissão elevadas  Meio de transmissão simples: par entrançado (twisted pair) standard (comunicação diferencial), mas um unicio fio também possível; Outros meios disponíveis: ligações óticas ou via radio  Excelente tratamento de erros: CRC para detetar erros; Confinamento dos erros: mecanismo para evitar que um no avariado bloqueie o sistema  Protocolo mais usado na indústria e em veículos de transporte  A melhor relação Preço/ Performance
  • 59. Arquitetura de Computadores II Página 59 de 95 Características Fundamentais - CAN  Bus multi-master (qualquer nó do barramento pode produzir informação e iniciar uma transmissão | diversos nós trocam mensagens encapsuladas em tramas), assíncrono  Comunicação bidirecional half-duplex  A informação produzida é encapsulada em tramas  Transmissão em broadcast: um transmissor pode enviar informação para todos os nós ao mesmo tempo  Um vez que dois nós podem querer aceder simultaneamente ao barramento para transmitir, tem que haver uma forma de arbitrar o acesso  No CAN cada mensagem tem um ID único. Esse ID determina a prioridade da mensagem e, consequentemente, a prioridade no acesso ao barramento.  Inexistência de endereçamento dos nós; broadcasting das mensagens; (contente- addressing)  Numero máximo de nós no barramento: 40  Comunicação com relógio implícito  Paradigma produtor-consumidor/transmissão em broadcast : identificação do conteúdo da mensagem (não existe identificação do nó de origem ou de destino)  Capacidade de remote transmission request  Correção de erros baseada em retransmissão  Transmissão orientada ao bit  Mecanismos sofisticados de detenção e tratamento de erros  Taxas de transmissão até 1 Mbit/s  Frequências de funcionamento mais comuns: 1MHz, 500KHz e 125 KHz  Comprimento máximo – depende da frequência de funcionamento: 1MHz: até 40m; 125KHz: até 500 m; 50KHz: até 1 km; Bus Wired-AND Um ”0” (low voltage – dominant level) colocado no bus por um no “ganha ” a “1” (high voltage – recessive level) no bus
  • 60. Arquitetura de Computadores II Página 60 de 95 CAN e o modelo OSI  CAN é uma rede fechada: desnecessário segurança ou logins; desnecessário interface com o utilizador;  Physical and Data Link layers no silício  Modelo OSI – 7 camadas (Physical, Data Link, Network, Transport, Session, Presentation, Application)  CAN: Modelo de referência OSI e o CAN Application Layer Stantards  CAN não define o nível de aplicação – cabe aos fornecedores desenvolver o respetivo software, originando soluções diferentes, fechadas, e exigindo um investimento significativo  Esforços para a definição de standards ao nível da aplicação têm sido feitos desde a década de 1990. Impuseram-se 2 standards: o DeviceNet (Allen Bradley) otimizado para automacao fabril o CANopen(Projeto ESPRIT) otimizado para maquinas industriais e outros dispositivos, sistemas médicos,… CANopen Características  CANopen é subconjunto de CAL (CAN Application Layer) desenvolvido pela CiA (CAN in Automation)  Auto configuração da rede  Acesso fácil a todos os paramentos dos dispositivos  Sincronização dos dispositivos  Transferência de dados cíclica e desencadeada por eventos  Estabelecimento ou leitura inputs, outputs ou parâmetros sincrona
  • 61. Arquitetura de Computadores II Página 61 de 95 Aplicações  Automatização de máquinas Vantagens  Permite a integração de pequenos sensores e atuadores  Standard aberto e independente do vendedor  Suporta a inter-operabilidade de diferentes dispositivos  Capacidade de tempo-real de alta velocidade Message Oriented Transmission Protocol  Cada nó é recetor e transmissor  Cada mensagem é transmitida a todos os dispositivos ligador ao bus – broadcast  Todos os nos lêem a mensagem, e decidem se é relevante para eles  Todos os nós verificam a inexistência de erros na receção  Os nós fazem o acknowledge da receção Acesso ao bus – Ethernet: CSMA / CD CAN: CSMA / CD Moldura das mensgens CAN Cada moldura de dados tem 4 segmentos: 1. Arbitration-field: denota a prioridade da mensagem; Standard frame (CAN 2.0A): 11bit- identifier; Extended frame (CAN 2.0B) : 29bit-identifier
  • 62. Arquitetura de Computadores II Página 62 de 95 2. Data field: até 8 bytes por mensagem; mensagens com 0 byte permitida 3. CRC field: cyclic redundacy check; contem um checksum gerada por uma divisão polinomial (binaria) 4. End of frame field: contem acknowledge, mensagens de erro, end of message Tipos de Tramas  Dados: usada no envio de dados de um nó produtor para o(s) consumidor(res) – (e.g. com informação de sensores / para atuadores)  Remote Transmission Request : enviada por um nó consumidor a solicitar (ao produtor) a transmissão de uma trama de dados específica  ERRO: usada para reportar um erro detetado (a trama de erro sobrepõe-se a qualquer comunicação invalidando uma transmissão em curso)  Overload: usada para atrasar o envio da próxima trama (enviada por um nó em situação de sobrecarga que não teve tempo para processar a ultima trama enviada) Formatos das mensagens  CAN 2.0A – Standard CAN  Formato completo da trama  Campo SOF: bit dominante (0) indica o início da trama; usado para sincronização do relógio dos nós recetores  Campo de arbitragem: arbitragem entre diferentes masters que podem iniciar a transmissão das suas tramas em simultâneo; identificação da mensagem  CAN 2.0B – Extended CAN
  • 63. Arquitetura de Computadores II Página 63 de 95 Formatos das mensagens  Start bit – 1 bit dominant : marca o início da mensagem; a transicao 1->0 sincroniza todos os transmissores  Identifier – 11bit: nome da mensagem e respetiva prioridade; quanto menor o valor maior a prioridade  RTR – 1 bit: Remote Transmission Request; se RTR=1 (recessive) a moldura não contem dados válidos – é um pedido aos recetores para enviarem as suas mensagens  IDE– 1 bit: Identifier Extension; se IDE =1 então extended CAN-frame  R0– 1 bit: reservado  DLC – 4 bit: data length code  Data – 0…8 byte: os dados da mensagem; campo de dados  CRC – 15 bit: cyclic redundancy code; deteção de erros (não correção); deteta até 6 erros single bit; produtor e consumidor calculam a sequência de CRC com base nos bits transmitidos; produtor transmite a sequência calculada; consumidor comprar a sequência calculada localmente com a recebida do produtor  ACK – 2 bit: acknowledge; cada nó que recebe a mensagem sem erros (inclui CRC) tem de transmitir um acknowledge-bit neste slot; validação da trama (Ack slot) *Recessivo (produtor); *Dominante (1+consumidores)
  • 64. Arquitetura de Computadores II Página 64 de 95  EOF – 7 bit = 1 recessive: end of frame; violação intencional da regra de bit-sruffing (depois de 5 recessive bits 1 stuff-bit é automaticamente adicionado); terminação da trama – 7 bits recessivos  IFS - 3 bit = 1 recessive: inter frame space; tempo para copiar a mensagem recebida do time bus-handler para o buffer Extended Frame  SRR – 1 bit = recessive : substitute Remote Request; substitui o bit RTR das standard frames  R1 – 1 bit : reservado Exemplo de uma transação no bus 1. Painel de instrumentos: “podem alguém dizer-me qual a temperatura do bloco motor?” 2. Bloco motor vê a mensagem e emite a mensagem: “temperatura do bloco 60graus” 3. Painel de instrumentos vê a mensagem e visualiza a temperatura no painel Reconhecimento de erros em CAN  Bit-error: o bit transmitido não é lido com o mesmo valor (exceto nos slots de arbitragem e acknowledge)  Bit-stuff-error: mais de 5 bits sucessivos lidos com o mesmo valor (excetor ‘end of frame’ da mensagem)  CRC-error – a soma CRC recebida nao coincide com a calculada  Format-error – violacao do format da mensagem e.g. CRC-delimiter não é recessive ou violação do campo ‘end of frame’  Acknowledgement-error : transmissor não recebe dominant bit durante a acknowledgement slot, i.e. a mensagem não foi recebida por nenhum nó CAN Error & Exception Management  A maior parte dos erros devem ser detetados e autocorrigidos pelo próprio componente CAN  Notificação automática a todos os outros nós que foi detetado um erro: Error-Frame=violação deliberada do código 6bit dominant = passive error frame 12bit dominant = active error grame  Todos os nós têm de cancelar a ultima mensagem recebida  A transmissão é automaticamente repetida pelo bus-handler
  • 65. Arquitetura de Computadores II Página 65 de 95 CAN Error Sequence  Após a deteção de um erro por um nó, todos os outros nós recebem uma frame específica:  ERROR-FRAME – viola a regra do stuff-bit (transmissão de não mais de 5 bits seguidos iguais)  Passive error frame – 6 bits dominantes  Active error frame – 12 bits dominantes  A error-frame leva todos os outros nós a reconhecer um all Error Status no bus Error Management Sequence 1. Detetado um erro 2. Error-frame transmitida por todos os nós que detetaram o erro 3. A última mensagem recebida é cancelada por todos os nós 4. Os contadores de erro (internos, h/w) são incrementados 5. A mensagem original é transmitida de novo CAN Error Status  Objetivo: evitar perturbações persistentes do CAN desligando os nós defeituosos  3 error states:  Error active: modo normal, as mensagens serão recebidas e transmitidas. Em casos de erro é transmitida uma active error frame  Error passive: após a deteção de um número fixo de erros, o nó passa a este estado. As mensagens serão recebidas e transmitidas. Em casa de erro é transmitida uma passive error frame  Bus off: o nó é separado da rede CAN; nem a transmissão nem a recção de mensagem é permitida, o nó não pode transmitir uma error frame. A saída deste estado só é possível através de reset Contador de Erros – CAN Diagrama de estados >  Transições entre estados feitas automaticamente pelo modulo CAN  As transições entre estados são determinadas por 2 contadores de erros: o Receive error counter – REC o Transmit error counter – TEC  Situações possíveis: a) Um transmissor reconhece um erro TEC:=TEC+8 b) Um recetor vê um erro: REC :=REC+1
  • 66. Arquitetura de Computadores II Página 66 de 95 c) Um recetor vê um error, depois de transmitir uma error frame: REC:=REC+8 d) Se um nó “error active” deteta um erro bit-stuff durante a transmissão de uma error frame: TEC:=TEC+1 e) Transmissão bem-sucedida: TEC:= TEC-1 f) Receção bem-sucedida: REC:= REC-1 COMUNICAÇÃO SÉRIE> APENDICE> CODIGOS DE TRANSMISSÃO RZ Sinal regressa a 0 entre a transmissao de 2 bits sucessivos – self clocking NRZ O valor do sinal muda na transição positiva do relogio se bit a transmitir é 1, não muda se é 0 USB – há mudança do sinal se o bit a transmitir é 0 e não há se é 1 Bit stuffing – 1 (USB : 0) quando são transmitidos seis 1 consecutivos NRZI  Codificação Non-Return-to-Zero o Bit recessivo (1)/dominante (0)  Bit Stuffing o Por cada 5 bits iguais é inserido 1 de polaridade oposta o Garante tempo máximo entre transições da linha  Transmissão diferencial
  • 67. Arquitetura de Computadores II Página 67 de 95 Manchester or Phase Encoding (PE) Self-clocking
  • 68. Arquitetura de Computadores II Página 68 de 95 11.Memória, conceitos Von Neumann Bottleneck – memória não consegue fornecer dados e instrução ao ritmo a que o processador tem capacidade de os processar Memorias:  Maior capacidade implica menor velocidade de acesso  Maior velocidade de acesso implica custo/bit mais elevado  Maior velocidade de acesso implica maior consumo de potência  Hierarquia de memória  3 questões fundamentais na conceção da memoria de um sistema de computação: how muc; how fast; how expensive  Trade-off capacidade/tempo de acesso/ custo: Menor tempo de acesso, maior custo por bit; Maior capacidade, menor custo por bit; Maior capacidade, maior tempo de acesso  Solução para o dilema capacidade/ tempo de acesso/ custo: não usar um único tipo de componente de memoria ou uma única tecnologia, mas construir uma hierarquia de memória
  • 69. Arquitetura de Computadores II Página 69 de 95 Localidade das referências 1 Hierarquia funciona devido ao princípio da localidade – os programas acedem a uma pequena porção do Address Space em cada instante:  Localidade temporal – se um item é referenciado tende a sê-lo de novo em breve  Localidade espacial – se um item é referenciado itens com endereços próximos tendem a sê-lo em breve Funcionamento de hierarquia de memória Localidade temporal – manter os dados acedidos mais recentemente na memória mais rápida Localidade espacial – mover blocos contíguos para a memória mais rápida Hierarquia de memória Tirar vantagens do princípio da localidade das referências: -Oferecer ao utilizador tanta memoria quanta a disponível com a tecnologia mais barata -Ceder à informação à velocidade oferecida pela tecnologia mais rápida Dadas estas diferenças de custo e de tempo de acesso, é vantajoso construir o sistema de memória como uma hierarquia onde se utilizem todas estas tecnologias. 1 Usado também da Memoria Cache – primeira página
  • 70. Arquitetura de Computadores II Página 70 de 95  Memoria organizada em níveis  Informação nos níveis superiores é um subconjunto da dos níveis inferiores  Informação circula apenas entre níveis adjacentes  Bloco – quantidade de informação que circula entre níveis adjacentes Caraterísticas dos sistemas de memória dos computadores Localização -Refere se a memória é interna ou externa ao computador -“Memória interna” é frequentemente tomado como sinonimo de “main memory” -Processador tem a sua própria memória local memory – os registos -Cache é outra forma de memória interna -Memória externa consiste nos dispositivos periféricos de armazenamento de dados acessíveis ao processador através dos controladores de I/O
  • 71. Arquitetura de Computadores II Página 71 de 95 Capacidade: usualmente expressa em bytes Unidade de transferência: para a memória interna a unidade de transferência é igual ao número de linhas de entrada e saída do módulo de memória. Método de acesso aos dados Transferências entre os níveis da hierarquia Os níveis mais elevados da hierarquia contem cópias da informação armazenada num nível mais baixo Tipos de memória – Preço VS Tempo de acesso  Main memory: DRAM – Dynamic Random Access Memory Dynamic porque precise de ser periodicamente “refreshed” 8 ms Endereço divididos em duas metades – memoria 2D matrix : RAS or Row Access Strobe CAS or Column Access Strobe
  • 72. Arquitetura de Computadores II Página 72 de 95  Cache: SRAM – Static Random Accesse Memory No refresh – 6 transitors/bit vs. 1 transistor/bit Size : DRAM/SRAM – 4-8 Cost/Cycle time : SRAM/DRAM – 8-16  Memória secundária (Memoria de massa, memoria externa): discos magnéticos (HDD); Memoria Flash (SSD) As duas mais importantes características da memória: Capacidade e Desempenho Organização básica de memória Memoria: coleção de M registos de dimensão N (M x N); Cada registo é formado por N células, cada uma delas capaz de armazenar 1 bit Um possível implementação de um célula de memoria: Através do agrupamento de células base pode formar-se uma memória de maior dimensão. O que é necessário especificar:  Word size (x1, x4, x8, x16,32,…)  O número total de words que a memória pode armazenar (numero total de bits = word size * n words) Exemplo: 1Mx4 – 4bits / word; 1M = 2^20 -> 20 linhas de endereço -> 1.048.576 endereços
  • 73. Arquitetura de Computadores II Página 73 de 95 12.Memória – Tecnologias de memória  Tecnologias mais comuns: semiconductor memory; magnetic surfasse memory; optical; magneto-optical  Características físicas: Memória volátil: informação perde-se quando a memória é desligada da alimentação Memoria permanente (Nonvolatile): depois de escrita a informação mantem-se até se deliberadamente alterada, sem necessidade de ter o dispositivo ligado à alimentação Magnetic-surface memories: nonvolatile Semiconductor memory: pode ser volátil(RAM) ou não volátil (ROM, PROM, EPROM, Flash) Nonerasable memory: não pode ser alterada( ROM) Tipos de memórias de semicondutores Random Access Memory (RAM) : designação para memoria volátil que pode ser lida e escrita; Acesso “random”2 . Dois tipos: SRAM e DRAM – em ambos os tipos a informação só é preservada com a alimentação ligada (volátil) DRAM SRAM -Células menores (1 transistor/celula), mais simples – mais bits/chip -Mais barata -Tem de incluir circuitos para refrescamento (restauro) periódico do conteúdo -Usada para a memória central dos computadores -Informação permanece durante alguns milissegundos (necessita de refresh regular) -Alta densidade, baixa dissipação de potência -Custo/bit baixo -Mais lenta (pelo menos 1 ordem de grandeza) que a SRAM -Células maiores (6 transistores/celulas) -Mais cara -Informação mantem-se enquanto ligada sem necessidade de ser restaurada (cortada) -Mais rápida – menor tempo de acesso -Usada para cache -baixa densidade, elevada dissipada de potência; -Custo/bit elevado 2 Tempo de acesso é o mesmo para qualquer posição de memória
  • 74. Arquitetura de Computadores II Página 74 de 95 Read – Only Memory (ROM): memoria não volátil que apenas pode ser lida  Contem informação permanente, armazenada durante o fabrico do chip que não pode ser mudada (programada durante o processo de fabrico)  Informação mantem-se mesmo quando desligada a alimentação  Dados e programas armazenados permanentemente – desnecessário carrega-los de memória secundária.  Inconvenientes: se há um erro num único bit memoria deitada ao lixo; impossível fazer atualizações de S/W (e.g. BIOS) Programmble Read-Only Memory – PROM  Escrita de informação só pode ser feita uma única vez mas em lugar de ser feita durante o fabrico (ROM) é feita posteriormente, ou pelo fabricante ou pelo utilizador  A escrita requer equipamento próprio, dedicada a esse fim  Flexível, atrativa para produção em grande volume (o mesmo chip pode ser utilizado para aplicações muito diversas) Read-Mostly Memory EPROM – Erasable PROM: escrita em segundos, apagamento em minutos (ambas efetuadas em dispositivos especiais) EEPROM – Electrically Erasable PROM : O apagamento e a escrita podem ser efetuados no próprio circuito em que a memória está integrada; O apagamento é feito byte a byte; Escrita muito mais lenta que leitura Flash EEPROM (tecnologia semelhante à EEPROM): A escrita pressupõe o prévio apagamento das zonas de memória a escrever; O apagamento é feito por blocos (por exemplo, blocos de 4 kB) o que torna esta tecnologia mais rápida que a EEPROM; O apagamento e a escrita podem ser efetuados no próprio circuito em que a memória está integrada; Escrita muito mais lenta que leitura
  • 75. Arquitetura de Computadores II Página 75 de 95 13.Memória – SRAM: Static Access Memory Diagrama lógico típico de uma SRAM Din e Dout partilham os mesmos pins: -necessário mais um sinal de controlo, output Enable (OE_L) - WE_L = 0, OE_L = 1 D – data input pins -WE_L= 1 , OE_L = 0 D – data output pins Organização típica de SRAM : 16 word x 4 bit 4M x SRAM – organização interna 8 arrays de 4K x 1024
  • 76. Arquitetura de Computadores II Página 76 de 95 Célula de memória estática  Write : 1. Drive bit lines (bit 1, !bit = 0); 2. Select row -Colocar a informação em “bit” e “bit”. Exemplo: para a escrita do valor logico 1 – “bit”=1 , “bit” = 0; ativar a linha select  Read: 1. Precharge bit and !bit to Vdd; 2. Select row; 3. Cell pulls one line low; 4. Sense amp on column detects difference between bit and !bit -Activar a linha select; o valor logico armazenado na célula é detetado pela diferença de tensão entre as linhas “bit” e “bit” SRAM Timing Ler Escrever
  • 77. Arquitetura de Computadores II Página 77 de 95 14.Memória – DRAM: Dynamic Access Memory SRAM vs DRAM  Em ambas a informação é volátil -Alimentação tem de estar ligada para que o valor dos bits armazenados seja preservador  Célula dinâmica: mais fácil de implementar a mais pequena; mais densa (células mais pequenas = mais células por unidade de área); mais barata; requer circuito para refrescamento do conteúdo das células de memória; usada para a memória central  Estática: mais rápida; usada para memória cache (tanto on como off chip) Evolução da DRAM Ft. de progresso 64000 7 190 DRAM – no de bits/chip 1970 – 1Kb 2008 – 1GB 1milhão de vezes mais densa Células de memória DRAM 1 Transístor por célula • Capacidade armazena o valor do bit • Read: capacidade descarrega – necessário restaurar a carga no fim de cada operação de leitura (destrutiva) • Tecnologia de 90nm: C = 30fF (f = 10^-15), Corrente de fuga (leakage current) 1fA • Corrente de fuga descarrega capacidade - necessário restaurar periodicamente a carga da capacidade (mesmo quando não há operações de leitura) – na ausência de leitura, o condensador descarga lentamente: • DRAM requer circuito de refrescamento periódico da carga do condensador; para memórias de grande capacidade o custo adicional desse circuito é largamente compensado pela maior simplicidade das células de memória
  • 78. Arquitetura de Computadores II Página 78 de 95 Write: colocar dado na linha “bit”; ativar a linha select Read: pré-carregar a linha “bit” a VDD/2; ativar a linha “select” – valor logico detetado pela diferença de tensão na linha bit (rel. A VDD/2); restauro do valor da tensão no condensador (write); Refresh da célula: operação interna idêntica a uma operação de “read”  Organização em matriz;  Endereços de linha e coluna multiplexados no tempo;  Multiplexagem no tempo obriga à utilização de 2 sinais adicionais (multiplexagem com 2 strobes independentes) o RAS – Row Address Strobe o CAS – Column Address Strobe;  Linha CAS funciona também como "chip-select";  RAS e CAS, sensíveis à transição DRAM: esquema lógico  Sinais de controlo (RAS_L, CAS_L, WE_L, OE_L) active low  DataInt and DataOut partilhem os mesmos pins(D): o WE_L asserted(low), OE_L deasseted (HIGH)  D-data output pin o WE_L deasserted (HIGH), OE_L asserted (LOW)  D-data output in  Endereços da linha e da coluna partilham os mesmos pins (A) o RAS_L goes low: pins A are latched in as row address o CAS_L goes low: pins A are latched in as column address o RAS/CAS edge-sensitive  WE = 0 -> escrita; WE = 1 -> leitura ( = R/W)  RAS: valida endereço da linha na transição descendente  CAS: valida endereço da coluna na transição descendente
  • 79. Arquitetura de Computadores II Página 79 de 95 256Kbytes memory: 8*256kbit array – bit lines e word lines com idêntica extensão Key DRAM Timing Parameters tRAC: tempo mínimo da linha RAS para a saída de dados validos Quoted as the speed of a DRAM A fast 4Mb DRAM tRAC = 60ns tRC :tempo mínimo a partir do inicio de um conjunto de acesso para o inicio do proximo tRC = 110ns for a 4Mbit DRAM with a tRAC of 60ns tCAC: tempo mínimo da linha CAS para a saída de dados validos 15 ns for a 4Mbit DRAM with a tRAC of 60ns tPC: Page Mode Cycle Time – tempo mínimo a partir do inicio de um conjunto de acesso para o inicio do próximo 32 ns for a 4Mbit DRAM witch a tRAC of 60ns DRAM Read Timing Leitura Escrita
  • 80. Arquitetura de Computadores II Página 80 de 95 Cycle time vs Access Time DRAM (read/write) cycle time >> DRAM (read/write) access time - 2:1; porque? DRAM (read/write) cycle time: - Com que frequência se pode iniciar um acesso? DRAM (read/wirte) access time: - How quickly will you get what you what once you initiate an access? Page Mode DRAM Fast Page Mode
  • 81. Arquitetura de Computadores II Página 81 de 95 Advanced DRAM Organizadon  Interface com a memória central ("Processor- Memory bottleneck” ou “Von Neumann bottleneck”) é um fator critico na performance do sistema de computação quando se usam processadores rápidos  A organização tradicional das chips DRAM tem limitações intrínsecas que derivam da sua arquitetura interna e do interface com o bus processador-memoria  Para ultrapassar essas limitações foram propostas varias alterações à arquitetura básicas das DRAM: o Synchronous DRAM (SDRAM) e DDR SDRAM (Double Data Rate SDRAM) o RDRAM (Rambus) Synchronous DRAM (SDRAM)  Uma das formas mais utilizadas da DRAM  Trocas de dados com o processador sincronizado com um sinal de relógio externo e funcionando com a velocidade total do barramento do processador/memória, sem esperas  Com acesso síncrono à DRAM move-se os dados dentro e fora sob o controle do relógio do sistema: o The processor or other master issues the instruction and address information which is latched by the DRAM o The DRAM then responds after a set number of clock cycles o Meanwhile the master can safely do other tasks while the SDRAM is processing SDRAM – Arquitetura interna SDRAM Read Timing
  • 82. Arquitetura de Computadores II Página 82 de 95 Double Data Rate SDRAM – DDR SDRAM  SDRAM só envia um item por cada ciclo de bus processador-memoria  Double-data-rate SDRAM pode enviar 2 itens por ciclo, um na frente ascendente e o outro na frente descendente do relógio  Desenvolvido pela JEDEC Solid State Techonlogy Association (Electronic Industries Alliance’s semiconductor-engineering-standardization body); Increasing Bandwidth – interleaving
  • 83. Arquitetura de Computadores II Página 83 de 95 15.Memória Interna: deteção e correção de erros Erros nas memórias Hard failure  Defeito permanente  Células de memória afetada (s) não podem armazenar informação de forma fiável (stuck-at-0, ou stuck-at-1 ou mudam erraticamente de estado)  Pode ser causado por: condições de utilização fora do especificado/ defeitos de fabrico/ desgaste Soft error  Episódio aleatório, não-destrutivo, que altera o conteúdo de uma ou mais células de memória  Afeta a memória de modo não permanente  Pode ser causada por: problemas na fonte de alimentação/ partículas alfa Error-Correcting Code Function Código de Hamming – SEC – single error correction – 4 data bits – 3 EDC bits
  • 84. Arquitetura de Computadores II Página 84 de 95 16.Memória - Cache Processor-DRAM Gap – latency Localidade das Referencias  Localidade espacial: "a informação que o processador necessita de seguida, tem uma elevada probabilidade de estar próxima da que consome agora" Exemplos: instruções de um programa; processamento de um array Quanto maior for o bloco de informação existente na memória rápida, melhor  Localidade temporal: "a informação que o processador consome agora tem uma elevada probabilidade de ser novamente necessária num curto espaço de tempo" Exemplo: variável de controlo de um ciclo, instruções de um ciclo Quantos mais blocos de informação estiverem na memória rápida, melhor Funcionamento de hierarquia de memória (com dois níveis) Localidade temporal – manter os dados acedidos mais recentemente na memória mais rápida Localidade espacial – mover blocos contíguos para a memória mais rápida Unidade de transferência (bloco) entre a memória central e a cache tem a dimensão de uma linha de cache.  Nível primário (superior) rápido e de pequena dimensão. Contém os blocos de memória mais recentemente utilizados  Nível secundário (inferior) mais lento mas de maior dimensão.  Os pedidos de informação são sempre dirigidos ao nível primário, sendo o nível secundário envolvido apenas quando a informação pretendida não esta nesse nível; se os dados pretendidos se encontram num bloco do nível primário então existe um hit; caso contrário ocorre um miss  Na ocorrência de um miss é efetuado o acesso ao nível secundário para obter os dados (transferindo o bloco que contém a informação pretendida)
  • 85. Arquitetura de Computadores II Página 85 de 95 Cache Memory: nível de memória que se encontra entre o CPU e a memória principal (primeiras utilizações no inicio da década de 60); recentemente os PC incluem mais do um nivel de cache, por vezes é integrada juntamente com o chip do processador  Ideia: guardar numa memória mais rápida a informação a que o programa está a aceder – cache memory “… a fast core memory of, say, 32.00 words as a slave to a slower case memory of, say, 1 million words, in such a way that in practical cases the effective access time is nearer that of the fast memory than that of the slow memory” Cache – contem cópia parcial do conteúdo da memória para mais rápido acesso do processador aos dados Processadores atuais: vários níveis de cache L1 < L2 < L3; tL1 < tL2 < tL3 Processadores multicore Cache L1 – privada de cada core (CPU) Cache L2 – partilhada pelas várias core (CPU)
  • 86. Arquitetura de Computadores II Página 86 de 95 Typical Cache Organization Cache Read Operation Typical Cache Organization
  • 87. Arquitetura de Computadores II Página 87 de 95 Elements of cache design 1. CACHE ADDRESSES  Memória virtual: mecanismo que permite aos programas endereçar a memória utilizando todo o espaço de endereçamento (endereços lógicos), independentemente da dimensão da memória física disponível (endereços físicos). Assim os programas quando executados geram endereços lógicos que são traduzidos em endereços físicos pela MMU (Memory Mangement Unit)  MMU – componentes hardware que traduz endereços lógicos em endereços físicos Logical and Physical Caches 2. MAPPING FUNCTION: 3 formas de organizar os sistemas de cache – mapeamento direto, parcialmente associativa, totalmente associativa  Direct-mapped – cada posição de memória é mapeada numa única posição na cache  N-Way set associative – cada posição de memória pode ser mapeada em N posições diferentes da cache  Fully Associative – qualquer posição de memória pode ser mapeada em qualquer posição da cache