O documento discute arquitetura de computadores, focando-se em sistemas de entrada e saída (I/O), comunicação em série e memória. Aborda conceitos como módulos I/O, periféricos, transferência de dados, interrupções e técnicas de programação I/O. Também descreve tecnologias de memória como SRAM e DRAM.
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.
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
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
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