You are on page 1of 107

COLECODEPROBLEMASRESOLVIDOS

DEELECTRNICADECOMPUTADORES
MESTRADO EM ENGENHARIA ELECTROTCNICA E DE COMPUTADORES

Leonel Augusto Pires Seabra de Sousa


Francisco Andr Corra Alegria

16 de Dezembro de 2011

Contedo

PROCESSADORES...................................................................................................................................................1
CaminhodeDados................................................................................................................................................3
ProcessadorparaCalcularaPotnciadeumNmero..........................................................................................6
ProcessadorparaImplementaraFunoExponencial.......................................................................................10
UNIDADESARITMTICASELGICAS....................................................................................................................15
SomadorCarrySelect..........................................................................................................................................17
SomadorCarryLookaheadeRipplecarry...........................................................................................................21
SomadorMisto....................................................................................................................................................25
RegistodeDeslocamento....................................................................................................................................30
MultiplicadorRippleCarry..................................................................................................................................33
MultiplicadorSrie..............................................................................................................................................40
AlgoritmodeBooth.............................................................................................................................................46
MEMRIAS..........................................................................................................................................................49
PlanodeMemriaAumentandooNmerodeBitsporPalavra.........................................................................51
LarguradeBandadeMemria............................................................................................................................54
PlanodeMemriacomIntercalagemSimples....................................................................................................64
MemriaTampocom512bytes.......................................................................................................................67
MemriaTampoSeparadasparaDadoseCdigo............................................................................................69
MemriaTampoAssociativade2Vias..............................................................................................................72
MemriaTampodeumProcessadorAMDAthlon...........................................................................................76
MemriaTampodeumProcessadorIntelPentium4.......................................................................................82
BARRAMENTOS...................................................................................................................................................87
TerminaoThevenincomDodo........................................................................................................................89
TerminaocomDododeZener........................................................................................................................94
TerminaoThevenincomCondensador............................................................................................................96
TerminaoActivacomAMPOP..........................................................................................................................98
TerminaoActivacomAMPOPeTransstor....................................................................................................101

ii

CAPTULO 4

Processadores

Nothing is particularly hard


if you divide it into small jobs.

HENRY FORD

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Caminho de Dados
ENUNCIADO
Assuma que tem um conjunto de registos ligados por um barramento, conforme mostra a figura
abaixo. Todos os registos so edge-triggered no flanco positivo e os registos R2 e O tm sadas tristate. Todos os barramentos so de 4 bits. Pretende-se executar a seguinte sequncia de
operaes: (1) calcular R1 R0, colocando o resultado em R2. (2) mostrar o resultado nos LEDs
ligados ao registo O e (3) substituir o valor de R0 com este resultado.
1.

Descreva

todas

as

operaes

de

transferncia

de

registos

respectivas

micro-operaes suportadas por este circuito de dados.


2.

Descreva as formas de onda para todos os sinais de controlo necessrios


implementao desta sequncia de operaes.

3.

Descreva o diagrama de estados que corresponde s formas de onda descritas na


alnea anterior.

RESOLUO

Alnea 1
Passo 1 Para calcular R1-R0 necessrio colocar R1 na entrada A do subtractor e R0 na
entrada B. Isso feito colocando 1 na linha de controlo do muliplexer da entrada A e 0 na linha
de controlo do multiplexer da entrada B.

Passo 2 O resultado colocado no registo R2 activando-se a sua entrada de carregamento de


dados (sinal LD).
Passo 3 Os dados armazenados em R2 so colocados no barramento activando-se a sada
desse registo (sinal OE) par que posteriormente sejam escritos no registo O.
Passo 4 Os dados que se encontram no barramento (provenientes de R2) so escritos no
registo O que est ligado aos leds. Isso feito activando-se a entrada de carregamento (sinal
LD) do registo O. Ao mesmo tempo os dados no barramento so escritos no registo R0
activando-se a entrada de carregamento deste registo.
Passo 5 Os leds mostram o resultado quando a sada do registo O for activada (linha OE).

Alnea 2
O diagrama temporal dos sinais o seguinte.

Escolheu-se retornar todos os sinais a zero no fim da execuo.

Alnea 3

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Processador para Calcular a Potncia de um Nmero


ENUNCIADO

Considere que pretende projectar um processador dedicado para clculo da equao z = xy,
em que x, y e ready so entradas do processador, e z e done so sadas.
1.

Apresente o algoritmo e o respectivo FSMD.

2.

Projecte o controlador (FSM) e o caminho de dados data-path (D) para implementao


do processador (basta apresentar o diagrama de estados e o diagrama do caminho de
dados, incluindo registos e unidades funcionais).

3.

Considerando aritmtica em complemento para dois, apresente o diagrama de blocos


de um multiplicador srie de 8 x 8!bits baseado no algoritmo de Booth. Indique a largura
dos barramentos e calcule o tempo requerido para calcular 34, considerando um
perodo de relgio de 50 MHz.

RESOLUO
Alnea 1
O algoritmo para o clculo de consiste em multiplicar x por si prprio y 1 vezes. usada a
varivel a para guardar o resultado dos produtos sucessivos e a varivel n para contar o nmero
de vezes que falta efectuar multiplicaes. Inicialmente o nmero de multiplicaes necessrias
igual a y - 1. Cada vez que se efectua uma multiplicao esse valor decrementado de uma
unidade.
0: int a, n;
1: while (1) {
2: while(!ready);
3: done = 0;
4: a = x_i;
5: n = y_i;
6: n = n 1;
7: while( n>0 ) {
8:
a = a * x;
9:
n = n - 1;
}
10: z_o = a;
11: done = 1;
}

A FSMD (finite state machine with datapath) obtm-se do algoritmo.

Alnea 2
O datapath contm os registos e unidades funcionais. Neste caso so precisos registos para as
variveis a e n e para guardar o valor final (z). Em relao s unidades funcionais preciso
unidades para a multiplicao, para decrementar uma unidade a um valor e para verificar se
um nmero maior do que zero. necessrio tambm um multiplexer para seleccionar o que
guardado no registo a a varivel de entrada x_i ou o resultado de uma multiplicao e outro
multiplexer para seleccionar o que guardado no registo n a varivel de entrada y_i ou o
resultado da decrementao.

A mquina de estados finita do controlador obtm-se da FSMD substituindo as variveis e


funes pelos sinais de controlo dos dispositivos existentes no datapath.

Neste caso obtm-se uma mquina de estados com 14 estados. O controlador precisa portanto
de um registo de 4 bits para armazenar o estado actual.

Alnea 3

O perodo de um sinal de relgio de 50 MHz 20 ns. So precisas realizar 3 multiplicaes. Cada


multiplicao de 3 por 3 (0000 0011) necessita de uma subtraco e uma adio (no inicio e no
fim da sequncia de 1s respectivamente). Se considerarmos que essas operaes demoram um
ciclo de relgio e que o resto no demora nada (deslocamentos e escrita nos registos) o tempo
necessrio para calcular 34 3 2 20 = 120 ns.

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Processador para Implementar a Funo Exponencial


ENUNCIADO

Considere que pretende projectar um processador dedicado para clculo da funo


exponencial usando a aproximao por srie de Taylor: e x

xk
em que x uma varivel de
k0 k !
N

entrada.
1.

Proponha um algoritmo que permita o clculo da funo exponencial.

2.

Apresente o FSMD correspondente ao algoritmo proposto.

3.

Projecte o controlador (FSM) e o caminho de dados data-path (D) para implementar o


processador (basta apresentar o diagrama de estados e o diagrama do caminho de
dados, incluindo registos e unidades funcionais).

4.

Considerando uma frequncia de relgio de 100 MHz, e que uma multiplicao demora
40ns, calcule o tempo requerido para calcular uma aproximao do valor duma
exponencial com N = 5.

RESOLUO
Alnea 1
O algoritmo para o clculo da srie de Taylor usa uma varivel (a) para acumular o valor do
somatrio. O primeiro termo do somatrio e 1 e portanto no precisa ser calculado. Basta
inicializar a varivel a com 1.

ex

xk
x2 x3
xN
1 x

...
N!
2
6
k0 k !
N

O somatrio ento calculado a partir de k igual a 1 at N (que vale 5 no algoritmo


apresentado). No se considera que N seja uma varivel de entrada. Cada termo do somatrio
igual ao anterior (d) multiplicado por x (devido a xk) e dividido por k devido ao factorial. Como
o clculo do somatrio comea com k =1 as variveis a (valor do somatrio) e d (valor do termo
anterior do somatrio) so inicializadas com o valor 1.

10

0: int a, d, k;
1: while (1) {
2:
while(!ready);
3:
a = 1;
4:
d = 1;
5:
k = 1;
6:
while( k <= 5 ) {
7:
d = d * x;
8:
d = d / k;
9:
a = a + d;
10:
k = k + 1;
}
11:
z_o = a;
}

Alnea 2
A FSMD (finite state machine with datapath) obtm-se do algoritmo.

Alnea 3
O datapath contm os registos e unidades funcionais. Neste caso so precisos registos para as
variveis a, d e n e para guardar o valor final (z). Em relao s unidades funcionais preciso
unidades para a multiplicao, para a diviso, para a soma, para incrementar e para testar se
um valor menor ou igual a 5. necessrio tambm um multiplexer para seleccionar o que
11

guardado no registo a a varivel de entrada x_i (0) ou o resultado da soma (1), outro
multiplexer para seleccionar o que guardado no registo k a constante 2 (0) ou o resultado da
incrementao (1) e um outro multiplexer, com 3 entradas e dois sinais de controlo, para
seleccionar o que guardado no registo d o resultado da diviso (00), a varivel de entrada
(01) ou o resultado da multiplicao (10).

A mquina de estados finita do controlador obtm-se da FSMD substituindo as variveis e


funes pelos sinais de controlo dos dispositivos existentes no datapath.

12

Neste caso obtm-se uma mquina de estados com 11 estados. O controlador precisa portanto
de um registo de 4 bits para armazenar o estado actual.

13

14

CAPTULO 3

UnidadesAritmticaseLgicas

In science one tries to tell people, in such a way as to be


understood by everyone, something that no one ever knew
before. But in poetry, it's the exact opposite.

PAUL DIRAC

15

16

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Somador Carry Select


ENUNCIADO

A figura abaixo representa um somador do tipo carry select para um processador de 16 bits.
Cada um dos blocos indicados representa um somador de 8 bits, ligados entre si da forma que a
figura indica. Cada um dos somadores de 8 bits composto de 8 somadores de 1 bit, ligados
em cadeia (ripple carry adders). Assuma que cada porta lgica com duas entradas impe um
atraso de 3 ns e que o multiplexer da figura impe um atraso de 10 ns.

1.

Descreva brevemente o funcionamento do somador de 16 bits, indicando como so


ligados os pontos X e Y.

2.

Determine o tempo necessrio para este somador calcular a soma de dois nmeros de
16 bits. Indique quaisquer simplificaes que considere necessrias.

3.

Determine a tabela de verdade e proponha uma implementao com gates NOR para
o bloco combinatrio marcado com C.

4.

Descreva a realizao de um somador deste tipo que some inteiros de 16 bits mas use 4
blocos somadores (ripple carry adders) de 4 bits cada. Determine o tempo necessrio
para o clculo da adio no somador projectado.

17

RESOLUO

Alnea 1
Os 8 bits menos significativos so calculados em paralelo com os 8 bits mais significativos. De
modo a que este ltimos possam ser calculados sem se esperar pelo carry vindo de trs o
somador admite duas hipteses: carry igual a 0 (X = 0) e carry igual a 1 (Y = 0). Para os 8 bits mais
significativos so portanto efectuadas, tambm em paralelo, 2 somas. O resultado final par esses
8 bits mais significativos escolhido usando um multiplexer controlado pelo sinal de carry
proveniente do clculo da soma dos 8 bits menos significativos.

Alnea 2
Cada somador de 8 bits constitudo por 8 somadores completos de 1 bit. Esses somadores
podem ser implementados como indicado na figura abaixo.

Como dito no enunciado que todas as portas de duas entradas impem um atraso de 3 ns,
mesmo as portas ou exclusivo, o tempo de propagao para o bit de soma de 6 ns (2 x 3 ns)e
o tempo de propagao para o bit de carry de 9 ns (3 x 3 ns).
No caso do somador de 8 bits, o caminho crtico o clculo do 8 bit pois cada somador
completo tem de esperar pelo carry vindo do bit anterior (somador ripply-carry). Assim sendo a
soma de 8 bits demora 69 ns (7 x 9 + 6) correspondente ao tempo de propagao do bit de
carry durante os primeiros 7 bits mais o tempo de propagao do 8 bit de soma. O tempo de
propagao do bit de carry final de 72 ns (8 x 9) devido propagao atravs de 8
somadores completos de bit.

18

Em relao ao somador de 16 bits, passados 72 ns desde o inicio do clculo, todas os bits de


soma esto calculados (pois demoram no pior caso 69 ns) e tambm est disponvel o bit de
carry vindo proveniente da soma dos 8 bits menos significativos. Falta portanto a seleco dos 8
bits mais significativos efectuada pelo multiplexer, o que demora 10 ns. Assim sendo o tempo
total para determinao dos 16 bits de soma de 82 ns (72 + 10).

Alnea 3
O bloco C determina o bit de carry final a partir dos bits de carry vindos dos dois somadores
usados para os 8 bits mais significativos. Isso feito com um multiplexer controlado pelo bit de
carry proveniente do somador de 8 bits usado para os 8 bits menos significativos. O bloco C
portanto um multiplexer com duas entradas ( c16x e c16Y ) e uma sada
X
Y
c c 8 c16
C 8 c16

Esta funo lgica pode ser construda unicamente com portas NOR:

X
Y
C 8 c16
c c 8 c16

A tabela de verdade a seguinte

c8

cX16

cY16

1
1

1
1

0
1

0
1

19

Esta funo pode ser implementada da seguinte forma:

Alnea 4

Passados 36 ns (4 bits x 9 ns) desde o inicio do clculo, todas os bits de soma e de carry de cada
somador de 4 bits esto calculados. A partir da cada multiplexer demora 10 ns at ter a sua
sada actualizada. Assim sendo, o tempo total para determinao dos 16 bits de soma de
66 ns (36 + 3 x 10).

20

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Somador Carry Lookahead e Ripple-carry


ENUNCIADO

Considere o somador de 16 bits da figura abaixo, que representa um circuito somador que usa
uma tcnica mista de carry lookahead e ripple-carry. Cada um dos pequenos blocos
assinalados com um C representa um circuito somador (fulladder) de 1 bit.

1.

Quais so os sinais gerados pelos blocos C e propagados para os blocos do tipo B?

2.

Proponha realizaes ao nvel de porta lgica para cada uma das sadas dos blocos do
tipo B.

3.

Proponha realizaes ao nvel de porta lgica para cada uma das sadas dos blocos do
tipo A.

4.

Admitindo que todas as portas lgicas impem um atraso de 3 ns, qual o tempo mnimo
necessrio para garantir que este somador opere correctamente?

21

RESOLUO

Alnea 1
Os blocos C geram sinal de propagao e gerao.
pi ai bi
gi ai bi

Alnea 2
Os blocos B recebem os sinais de gerao e propagao de cada bit e produzem um sinal de
gerao e um sinal de propagao para um dado grupo de bits (4 bits).
A soma de um grupo de 4 bits gera um transporte se a soma do ltimo bit gerar um transporte
(g3 = 1) ou se a soma do penltimo bit gerar um transporte e esse transporte propagar-se pela
soma do ltimo bit (g2p3), ou se esse transporte for gerado no bit 1 e propagar-se pelos bits 2 e 3
(g1p2p3) ou, finalmente, se esse transporte for gerado no bit 0 e propagar-se pelos outros 4 bits
(g0 p1p2p3). Tem-se assim, para o bit de gerao do grupo 0-3 por exemplo,

0,3

g3 g2p3 g1p2p3 g0p1p2p3 .

Quanto propagao, um bit de transporte propaga-se atravs de um grupo se se propagar


atravs de cada uma das somas de bit. Tem-se assim, mais um vez como exemplo para o grupo
0-3,

0,3

p0p1p2p3 .

A realizao do bloco B ao nvel de porta lgica a seguinte:

22

Alnea 3
Os blocos do tipo A combinam os bits de gerao e propagao de 2 grupos de bits. O bloco A
do lado direito do esquema, por exemplo, combina os bits do grupo 0-3 e do grupo 4-7 gerando
bits de propagao e gerao para o grupo 0-7.
G0,7 G4,7 G0,3 P4,7
P0,7 P0,3 P4,7

Para alm disso os blocos do tipo A calculam o bit de transporte de sada do primeiro grupo a
partir do transporte de entrada nesse grupo. O bloco A da direita, por exemplo, calcula o bit de
transporte C4 a partir do bit de transporte c0 e dos bits de gerao e propagao G0,3 e P0,3
respectivamente:
C4 G0,3 c0 P0,3 .

Esta expresso significa que o bit de transporte de sada do grupo 0-3 1 se for gerado no grupo
0-3 (G0,3) ou se entrar nesse grupo (c0) e propagar-se atravs dele at sua sada (P0,3).
A realizao do bloco A ao nvel de porta lgica a seguinte:

Alnea 4
Para determinar o tempo mnimo para este somador h que determinar o atraso provocado
pelos blocos C. Para isso h que obter as expresses lgicas realizadas por este bloco.
Como foi referido na alnea 1 este bloco determina os bits de propagao e gerao de bit
dados por
pi ai bi
gi ai bi

23

Para alm disso determinam o bit de soma

si ai bi ci
e o bit de transporte

ci 1 ai bi ai ci bi ci .
Observando estas funes lgicas podem determinar o tempo de atraso para cada uma das 4
sadas tendo em ateno que cada porta lgica impe um atraso de 3 ns.
A tabela seguinte apresenta esses atrasos no s para o bloco C mas tambm para os blocos A
e B.
Bloco

Sada

Atraso

3 ns

6 ns

6 ns

3 ns

6 ns

3 ns

3 ns

3 ns

6 ns

O caminho crtico do somador o apresentado na figura.

Ao longo do caminho crtico est indicado o atraso sofrido pelos sinais em cada bloco. O atraso
total portanto 48 ns.
24

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Somador Misto
ENUNCIADO

Considere o somador de 8 bits apresentado na figura abaixo, que faz parte do datapath de um
processador dedicado. Este processador baseia-se numa tcnica mista de carry select, carry
lookahead e ripple carry. Cada um dos blocos assinalados com um C representa um somador
completo (FA) de 1 bit.

1.

Explique sucintamente o funcionamento do somador indicando o valor lgico dos sinais


X e Y. Apresente, na forma de equao ou diagrama, o bloco do tipo D.

2.

Proponha uma implementao para os blocos C e D e MUX com base em portas


lgicas (NOT, AND, OR, XOR) com o mximo de 3 entradas. Calcule o tempo de soma,
considerando que uma porta lgica impe um atraso de 1 ns.

3.

Proponha um somador de 16 bits baseado no somador de 8 bits da figura acima. Nas


condies da alnea anterior, calcule o tempo de soma e compare esse tempo com o
de um somador do tipo ripple carry de 16 bits.

25

RESOLUO

Alnea 1
Cada conjunto de 4 blocos do tipo C implementa um somador ripple carry de 4 bits. Os dois
somadores ripple carry do lado esquerdo determinam os bits soma s4 a s7 usando uma filosofia
carry select, isto , efectuam duas somas considerando que o bit de carry que vem de trs vale
0 ou vale 1 (entradas X e Y). O multiplexer depois usado para escolher qual das duas somas
corresponde ao valor correcto tendo em conta o bit de carry que vem de trs calculado pelo
bloco D da direita. Esse clculo efectuado usando a filosofia carry lookahead, isto , o valor
do carry calculado directamente a partir dos bits das duas palavras a somar (e de um carry
que eventualmente venha de trs). O bloco D da esquerda determina o carry de sada do
somador a partir do carry c4 e dos bits das palavras de entrada a4 a a7 e b4 a b7.
Quanto implementao do bloco D da direita, o carry c4 ser 1 se for gerado na soma do bit 3
ou se for gerado na soma do bit 2 e propagado atravs da soma do bit 3, ou se for gerado na
soma do bit 1 e propagado atravs da soma dos bits 2 e 3 ou finalmente se for gerado na soma
do bit 0 e propagado atravs da soma dos outros 3 bits seguintes. Tem-se assim

c4 g3 g2 p3 g1p2 p3 g0 p1p2 p3 ,
em que
gi ai bi

pi ai bi .

No caso do bloco D da esquerda a estrutura interna igual ao bloco D da direita sendo no


entanto calculado o carry c8:

c8 g7 g6 p7 g5 p6 p7 g4 p5 p6 p7 c4 p4 p5 p6 p7 .
Note-se que neste caso h que ter em conta a chegada de um carry vindo de trs (c4) e que
pode-se propagar at ao fim.

Alnea 2
O bloco C um somador completo que pode ser implementado tendo que cada porta com 3
entrada ou menos tem o mesmo tempo de propagao de 1 ns:
c i 1 a i b i a i ci b i ci
si a i b i c i

O diagrama de blocos portanto o seguinte:


26

Usando as equaes para a funo lgica do bloco D apresentadas na alnea anterior tem-se o
seguinte diagrama de blocos para o bloco D da direita (que no tem nenhum carry vindo de
trs):

e o seguinte diagrama de blocos para o bloco D da esquerda:

27

Quanto ao multiplexer a equao lgica


s i sel s i' se l si''

e o diagrama de blocos o seguinte:

28

O caminho critico o do clculo do s7. Para efectuar esse clculo preciso que o multiplexer
tenha o valor da sua entrada de controlo que vem da sada do bloco D da direita que demora
4 ns. preciso tambm que as entradas s7 e s7 estejam disponveis o que acontece passados 7
ns que 3 vezes o tempo de clculo do carry pelos somadores completos (2 ns) mais o tempo
de clculo da soma (1 ns). Aos 7 ns j o sinal sada da porta NOT do multiplexer est disponvel, o
que aconteceu aos 5 ns (4 ns do bloco D e 1 ns da porta NOT). Assim depor s mais 2 ns at s7
estar disponvel. O tempo total para clculo da soma pois de 9 ns.
O tempo para o clculo do carry de sada de 6 ns (4 ns para cada bloco D da direita e mais 2
ns para as duas portas entre c4 e c8 no bloco D da esquerda).

Alnea 3

29

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Registo de Deslocamento
ENUNCIADO

Considere o seguinte circuito electrnico, geralmente designado por barrel shifter.

A3
B3
S1

S2

S3

S0

A2
B2
S2

S3

S0

S1

A1
B1
S3

S0

S1

S2

A0
B0
S0

S1

S2

S3

1.

Explique sucintamente o funcionamento do circuito.

2.

Indique, para todas as combinaes teis dos valores de S3...S0, a relao entre os
valores das sadas B3...B0 e os das entradas A3...A0.

3.

A partir da anlise realizada anteriormente, proponha um barrel shifter para


deslocamentos lgicos para a direita, entre 0 e 3 posies, de nmeros de 4 bits.
Proponha um barrel shifter para deslocamentos para a esquerda, entre 0 e 3 posies,
de nmeros de 4 bits.

4.

Apresente um circuito com funcionalidade equivalente ao da alnea anterior mas


baseado em circuitos lgicos de multiplexagem.

30

RESOLUO

Alnea 1
Este circuito efectua o deslocamento aritmtico para a direita de uma palavra de 4 bits de 1, 2
ou 3 posies. A activao de uma das linhas de controlo (Sh0 a Sh3) leva a que alguns dos
transstores passem a conduzir conectando certas entradas a certas sadas.

Alnea 2
A relao entre as sadas (B) e as entradas (A) a seguinte.
S3

S2

S1

S0

B3

B2

B1

B0

A3

A2

A1

A0

A3

A3

A2

A1

A3

A3

A3

A2

A3

A3

A3

A3

Alnea 3
Nos deslocamentos lgicos as posies que ficam vazias so preenchidas com 0. Assim sendo o
6 transstores do canto superior esquerdo passam a estar ligados massa em vez de estarem
ligados a A3.

31

Alnea 4
O circuito para realizar deslocamentos aritmticos para a esquerda pode ser obtido a partir do
circuito que realiza esses deslocamentos para a direita trocando a ordem dos bits da entrada e
dos bits da sada.

A0
B0
S1

S2

S3

S0

A1
B1
S2

S3

S0

S1

A2
B2
S3

S0

S1

S2

A3
B3
S0

S1

S2

S3

Alnea 5
O circuito para efectuar deslocamentos aritmticos para a esquerda de 0 a 3 posies usando
multiplexers o seguinte.

A palavra S determina o nmero de posies deslocadas.

32

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Multiplicador Ripple-Carry
ENUNCIADO

Considere o multiplicador para nmeros positivos de 4 bits esquematizado na figura abaixo.


Admita que os somadores da figura so do tipo ripple-carry, e que cada somador de um bit
impe um atraso de 1 ns. Admita ainda que cada porta lgica de no mais que 3 entradas
impe um atraso de 0,5 ns.

1.

Indique como so ligados os pontos X, Y e Z.

2.

Determine o atraso que decorre entre estarem disponveis os dados de entrada e


estarem vlidos os valores de sada.

3.

Para o caso geral em que se pretendem multiplicar nmeros de m bits (multiplicando)


por n bits (multiplicador) determine o nmero de somadores de um bit necessrios e
qual o atraso na resposta do sistema.

4.

Altere a estrutura apresentada de forma a utilizar somadores do tipo carry save, e


indique, para essa estrutura, o tempo de atraso.

33

RESOLUO

Alnea 1
O produto de dois nmeros de 4 bits consiste na determinao de diferentes parcelas (4) que
so deslocadas e somadas como ilustra a figura.

As portas AND no topo do esquema determinam os produtos parciais da parcela 1 e 2 que so


depois adicionadas pelo somador imediatamente abaixo. Esse somador, de 4 bits, vai somar os
termos a sombreado na seguinte figura:

Por essa razo uma das entradas do somador A 0 o bit mais significativo da 1 parcela.
Conclui-se assim que as entradas do somador so, da direita para a esquerda, a1b0, a0b1, a2b0,
a1b1, a3b0, a2b1, 0 e a3b1. O termo Y portanto o termo a0b1.

34

O somador B vai adicionar o resultado do somador de topo com a 3 parcela do produto.

As entradas desse somador so portanto as seguintes:

em que sx so as sadas do somado A e c4 o carry out desse somador. O termo X portanto o


produto parcial a3b2 (determinado com uma porta AND e os bits a3 e b2 das palavras de
entrada do multiplicador).
Finalmente o somador C vai adicionar o resultado desta soma com a 4 parcela do produto:

As entradas desse somador so portanto as seguintes:

35

O sinal Z portanto o termo a0b3.

Alnea 2
Os somadores so do tipo ripple-carry, ou seja, a soma de cada bit s pode ser efectuada
quando o transporte devido soma do bit anterior (menos significativo) tiver sido calculado. A
figura seguinte mostra o diagrama de blocos desse somador indicando o tempo de atraso que
se considera ser de 1 ns para a determinao do bit de soma e para a determinao do bit de
transporte.

Considerando esse tempo de atraso para a soma de 1 bit pode-se determinar o instante de
tempo em que cada sinal fica vlido:

36

Conclui-se assim que o tempo necessrio para o clculo da multiplicao de 8,5 ns.

Alnea 3
O nmero de parcelas igual ao nmero de bits do multiplicador. So precisos, portanto, n-1
somadores ripple-carry. Cada um desses somadores tem de somar m bits (nmero de bits do
multiplicando). Assim sendo so precisos m x (n-1) somadores de 1 bit.
O percurso crtico para o clculo do produto , por exemplo, o seguinte:

37

O atraso total dado pela soma de 3 termos:

o atraso na porta AND (0,5 ns);

o atraso atravs dos dois primeiros somadores de bit em cada somador ripple-carry com
excepo do ltimo. Como h n-1 somadores ripple-carry o atraso em nanossegundos
2 x (n - 2);

o atraso dentro do ltimo somador ripple-carry que de m x 1 ns.

Assim sendo o atraso total, em nanossegundos, de 0,5 + 2 x (n 2) + m, ou seja 2n + m 3,5.


Facilmente se verifica que para o caso particular deste exerccio, em que n = m = 4, tem-se
2 x 4 +4 3,5 = 8,5 ns .

Alnea 4
A arquitectura do somador carry save a seguinte.

38

O tempo de atraso consiste em 3 termos:

o atraso nas portas AND (0,5 ns);

o atraso ao descer os nveis que , em nanossegundos, de 1 x (n 1);

o atraso dentro do ltimo nvel que de 1 x (m 1).

Assim sendo o atraso total, em nanossegundos, de 0,5 + n 1 + m 1 que igual a n + m


1,5.
Comparando com o multiplicador do enunciado verifica-se que este tem um tempo de atraso
menor para n > 3 e que essa diferena se torna mais significativa quanto maior o nmero de bits
do multiplicador pois neste caso o atraso proporcional a n e no outro caso proporcional a
2n.

39

10

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Multiplicador Srie
ENUNCIADO

Considere o multiplicador de raz 2 para nmeros inteiros de 8 bits em notao de complemento


para dois apresentado na figura abaixo. Neste multiplicador, o registo que guarda o produto
sincronizado pelo flanco ascendente do sinal de relgio que tem uma frequncia de 100 MHz.
Assuma que no flanco de relgio que corresponde a t = 0 o registo P carregado nas posies
apropriadas com o valor do multiplicador e que o clculo de cada bit do resultado requer 2
ciclos de relgio, um para carregar o registo e outro para efectuar o deslocamento.

1.

Indique a largura em bits de todos os barramentos indicados e dos registos da figura.


Descreva a funo dos sinais Desloca para a direita e Grava do registo P.

2.

Descreva os contedos do registo P em t = 19 ns, t = 29 ns e t = 69 ns quando este


circuito usado para multiplicar o nmero 17 (multiplicando) por 5 (multiplicador).

3.

Desenhe o diagrama de estados do controlador.

4.

Indique que modificaes no circuito de dados sero necessrias para implementar um


multiplicador de raz 4.

40

RESOLUO

Alnea 1
A largura dos registos e dos barramentos est indicada na figura seguinte.

Em cada passo o registo P deslocado para a direita de uma posio. Esse deslocamento tem
duas funes. Por um lado serve para que o mdulo de controlo tenha acesso a cada um dos
bits do multiplicador a comear do menos significativo j que inicialmente o multiplicador
carregado na metade direita do registo P. A outra funo a de deslocar a soma acumulada
das vrias parcelas do produto para a direita. Isso equivalente a deslocar-se o multiplicando
para a direita como se faz quando se efectua a multiplicao usando papel e lpis.
O sinal Grava serve para indicar ao registo quando deve armazenar os dados provenientes da
ALU.

Alnea 2
Inicialmente a metade direita do registo P carregada com o valor do multiplicador, 0000 0101
(510). A evoluo do registo P a seguinte.

41

A evoluo temporal dos sinais de relgio, Grava e Desloca para a direita a seguinte.

Em t = 19 ns tinha j ocorrido a gravao da primeira soma mas ainda no se tinha dado o


deslocamento subsequente. O valor do registo P nessa altura era de 0001 0001 0000 0101.
Em t = 29 ns tinha j ocorrido o deslocamento e portanto o valor do registo P nessa altura era de
0000 1000 1000 0010.
Em t = 69 ns tinha j ocorrido a segunda soma e o deslocamento seguinte. Portanto o valor do
registo P nessa altura era de 0000 1010 1010 0000.

Alnea 3

42

O funcionamento do multiplicador pode ser dividido em 3 estados:

Grava a gravao da palavra proveniente da ALU na metade esquerda do registo P;

Desloca o deslocamento do contedo do registo P para a direita de uma posio;

Nada no feito nem o deslocamento nem a gravao.

No clculo de cada bit efectuado sempre o deslocamento. A gravao s efectuada se o


valor do bit menos significativo do registo P for 1 (sinal p que entra no controlador). A indicao
para que seja efectuado um deslocamento dada atravs do sinal d do controlador e a
indicao para que o registo P seja carregado dada pelo sinal g de sada do controlador.

As transies de estado do-se nos flancos descendentes do relgio de modo a que os sinais de
sada estejam vlidos aquando do flanco ascendente do relgio que quando o registo P
executa as operaes. por essa razo que se escolheu representar os flancos dos sinais de
gravao e deslocamento no diagrama temporal da alnea 2 coincidentes com os flancos
negativos do relgio. Note-se que na prtica as transies dos sinais de controlo ocorreriam um
pouco depois dos flancos negativos do relgio devido ao tempo de atraso entre a ocorrncia
de um flanco no registo de estado do controlador, a mudana do valor da sada desse registo e
a lgica combinatria necessria para produzir esses sinais dado o estado actual do
controlador. Neste caso particular, uma escolha apropriada dos valores usados para representar
os estados permite dispensar essa lgica combinatria e usar como sinais de sada (d e g)
directamente as sadas do registo de estado. Essa escolha :
Estado

Valor da varivel de estado

Nada

00

Desloca

01

Grava

10

Assim sendo o sinal d o bit menos significativo da varivel de estado e o sinal g o bit mais
significativo.

43

Por outro lado h que ter em ateno que o valor do bit menos significativo do registo P, que
o sinal de entrada p do controlador, tem de estar vlido um pouco antes do flanco
descendente do relgio j que ao passar pela lgica combinatria do controlador a caminho
do registo de estado sofrer um atraso.
A tabela de verdade do controlador a seguinte. A varivel Q representa o estado actual e a
varivel I o estado seguinte.
Q1

Q0

I1

I0

Estas duas funes podem ser determinadas utilizando mapas de Karnaugh.

Obtm-se assim
I1 Q0 p
I0 Q0

possvel agora desenhar o diagrama de blocos do controlador.

44

Controlador

Lgica combinatria
Registo de estado

I1

Q1
Q0

g
d

I0

Relgio

Alnea 4
Um circuito multiplicador de raiz 4 analisa 2 bits do multiplicador de cada vez. Seriam assim
precisas duas linhas a ligar os dois bits menos significativos do registo P ao controlador. As 4
combinaes possveis desses dois bits determinam a operao a realizar, que pode ser no
fazer nada (00), somar o multiplicando ao acumulador, isto , metade esquerda do registo P
(01), somar o dobro do multiplicando (10) o que pode ser feito acrescentando um registo para
armazenar o valor do multiplicando deslocado de 1 bit para a esquerda e somar o triplo do
multiplicando (11). Este ltimo caso mais complicado para pode ser implementado, por
exemplo, somando o multiplicando e somando o dobro do multiplicando ao acumulador.

45

11

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Algoritmo de Booth
ENUNCIADO

Considere que se pretende implementar um multiplicador de palavras de 8 bits representadas


em complemento para dois utilizando o algoritmo de Booth.
1.

Ilustre o algoritmo de Booth raiz de 2 apresentando o desenrolar do clculo para um


multiplicando M=2810!e um multiplicador m= -1310.

2.

Apresente uma arquitectura que permita realizar os algoritmos de Booth razes de 2 e 4,


indicando os caminhos de dados, os registos e a largura dos barramentos.

3.

Considerando que utiliza apenas portas lgicas de 2 entradas com um tempo de atraso
de 1ns, apresente um possvel somador a utilizar e indique a frequncia mxima a que
pode operar o multiplicador. Ignore o tempo de estabelecimento dos registos e indique
qualquer outra simplificao considerada.

4.

Indique como integraria o circuito proposto numa ALU de 8 entradas que realiza
tambm as funes aritmticas de adio e de diviso e a operao lgica ou
exclusivo.

46

RESOLUO

Alnea 1

47

Alnea 2

Alnea 3

48

CAPTULO 5

Memrias

Every science begins as philosophy and ends as art.

WILL DURANT

49

50

12

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Plano de Memria Aumentando o Nmero de Bits por Palavra


ENUNCIADO

Pretende-se desenvolver um sistema de processamento usando um processador com


comprimento de palavra de 16 bits (com acesso apenas a palavras completas) e com uma
capacidade de 4 MB, supondo que tem disponveis SIMMs de 72 pinos MT8D25632:
1.

Diga qual o nmero de SIMMs necessrio para a realizao do sistema;

2.

Considerando intercalagem simples, apresente um diagrama que ilustre a


organizao dos mdulos de memria, indicando os respectivos sinais de controlo;

3.

Apresente um mapa de memria com indicao da posio dos vrios mdulos,


considerando que o endereo de base 0;

51

RESOLUO

Alnea 1
Cada SIMM tem 1 MB de capacidade (256 kwords de 32 bits cada). So portanto precisos 4
SIMMs para criar uma memria com 4 MB.

Alnea 2
Cada SIMM possui 8 circuitos integrados de memria DRAM (MT4C4256DJ) com 256 kwords e
4 bits de comprimento de palavra. O mdulo SIMM disponibiliza para o exterior duas linhas RAS
que permitem aceder s linhas das memrias DRAM s de metade dos circuitos integrados (4).
Assim possvel usar 4 dessas memrias DRAM para produzir uma palavra de 16 bits para o
plano de memria desejado. As 2 metades de cada uma das 4 DRAMs permitem obter um
espao de endereamento 8 vezes superior ao de cada DRAM, isto , um espao de
endereamento e 2 Mwords. Como cada palavra tem 16 bits obtemos uma memria com 4 MB
como desejado.
Para enderear separadamente cada DRAM e dentro destas cada metade, usa-se um
descodificador para 3 dos bits de endereo (23 = 8) controlado pela linha de RAS do nosso
plano de memria. Os bits de endereo so os 3 menos significativos para garantir que palavras
consecutivas

no

espao

de

memria

encontram-se

em

memrias

DRAM

diferentes

(intercalagem simples). Os restantes 8 bits de endereo so ligados em paralelo a todos os


mdulos SIMMs. De notar que dentro desses mdulos os endereos so tambm ligados em
paralelo a cada circuito integrado de memria DRAM.
As linhas de controlo CAS e WE so tambm ligadas em paralelo a todos os mdulos SIMM j
que a sua activao numa dada memria DRAM quando a linha RAS est inactiva no tem
qualquer influncia. Assim sendo s a DRAM cuja linha RAS foi activada (por intermdio do
descodificador 3:8 usado) que prestar ateno ao nvel desses sinais de controlo (CAS e WE).
O plano de memria tem 4 MB de capacidade com palavras de 16 bits o que corresponde a 2
Mwords. So necessrios portanto 21 bits de endereo. Os 3 bits menos significativos, como se
viu, so usados no descodificador para determinar que metade dos 4 SIMS so acedidos. Os
outros 18 bits tm de ser separados em duas metades, uma para o endereo de linha e outra
para o endereo de coluna dentro de cada DRAM. Como se observa na folha de
especificao dos mdulos de memria, cada SIMM recebe 9 linhas de endereo que so
usadas ora para fornecer o endereo da linha ora para fornecer o endereo da coluna
consoante ocorre um flanco descendente dos sinal RAS ou do sinal CAS. O sinal CAS assim
usado para controlar um multiplexer que escolha 9 bits dos 18 bits mais significativos do
endereo de memria.

52

Alnea 3

53

13

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Largura de Banda de Memria


ENUNCIADO

Pretende-se projectar um sistema de memria dinmica baseado em circuitos integrados do


tipo MT16D232 numa organizao com um nico plano de memria. O sistema deve dispor de
um total de 32 MB, organizados em palavras de 32 bits. O controlador de memria sncrono
com o processador e o relgio utilizado tem uma frequncia de 125 MHz.
1.

Esboce a organizao do sistema de memria, indicando como so ligadas as linhas de


endereo, de dados e de controlo de cada circuito integrado. Assuma que existe um
bloco que gera os sinais com as temporizaes de RAS e CAS adequadas.

2.

Calcule a mxima largura de banda (memory bandwidth) que se pode obter com este
sistema, supondo que todas as transferncias so efectuadas em blocos de 32 bytes e
ignorando o tempo de refrescamento da memria. Deve justificar o resultado obtido,
esboando, se necessrio, as formas de onda associadas transferncia dum bloco.

3.

Assuma agora que o refrescamento efectuado pelo controlador utilizando ciclos do


tipo CAS before RAS. Nestas condies, determine de novo o valor mximo da largura
de banda da memria.

54

55

56

57

RESOLUO
Alnea 1
Cada SIMM, como se pode ver na folha de especificaes, possui 16 circuitos integrados de
memria DRAM (MT4C4001J) com 1 Mword e 4 bits de comprimento de palavra. Tem uma mega
palavras porque tm 10 linhas de endereo que so usadas alternadamente para enderear a
linha e a coluna. Imagina-se ento uma disposio quadrada para grupos de 4 clulas de
memria 1024 (1010) linhas por 1024 colunas. Estimam-se que sejam grupos de 4 clulas de
memria pois cada DRAM tem 4 linhas de dados para o exterior.
Quanto ao controlo da memria, embora haja uma linha de RAS e uma de CAS para cada
circuito integrado DRAM (16 RAS e 16 CAS o todo), para o exterior do mdulo SIMM s h 4 linhas
de RAS e 4 de CAS. Isto significa que essas linhas que so acessveis do exterior controlam
simultaneamente mais do que uma DRAM (4 circuitos integrados de cada vez, neste caso). As 4
linhas RAS, por exemplo comandam ao mesmo tempo as 4 DRAMs de cada fila no diagrama de
blocos apresentado na folha de especificaes: 1 linha RAS para U1, U2, U3 e U4 (RAS0), outra
para U5, U6, U7 e U8 (RAS2), outra para U9, U10, U11 e U12 (RAS1) e outra para U13, U14, U15 e
U16 (RAS3). Da mesma forma as 4 linhas CAS comandam simultaneamente as DRAM U1, U2, U9 e
U10 (CAS0), U3, U4, U11 e U12 (CAS1), U5, U6, U13 e U14 (CAS2), U7, U8, U15 e U16 (CAS3).
Estas combinaes permitem usar a mesma SIMM para construir diferentes planos de memria.
No caso do presente exerccio pretendem-se palavras de 32 bits. H portanto que usar 8 DRAMs
de cada SIMM para construir uma palavra. Como a SIMM tem 16 DRAMs, possvel ter 2
palavras de 32 bits para cada valor de endereo da SIMM (linhas A0-A9). A seleco entre uma
ou outra palavra feita activando simultaneamente as linhas de comando RAS0 e RAS2 (para
uma palavra) ou RAS1 e RAS3 (para a outra palavra que partilha o mesmo endereo).
Cada SIMM pode ser encarada, portanto, como tendo 2 mega palavras de 32 bits. Para se
construir o plano de memria desejado com 32 MB, ou seja 8 mega palavras de 32 bits (8 M x 4
bytes = 32 MB), so precisas 4 SIMMs.
As 4 SIMMs encaradas como tendo duas metades cada (metade de cima e metade de baixo
do diagrama de blocos da SIMM) perfazem 8 blocos que so activados atravs das seguintes
linhas de controlo:

RAS0/RAS2 da SIMM1

RAS1/RAS3 da SIMM1

RAS0/RAS2 da SIMM2

RAS1/RAS3 da SIMM2

RAS0/RAS2 da SIMM3

RAS1/RAS3 da SIMM3

RAS0/RAS2 da SIMM4

RAS1/RAS3 da SIMM4

58

Estas linhas de controlo so activadas uma de cada vez de acordo com os endereos da
memria total. Como o plano de memria tem de ter 8 M palavras de 32 bits cada, so
necessrias 23 linhas para enderear essas palavras (223 = 8 M palavras). Como nada dito no
enunciado do exerccio sobre o uso de intercalagem, admite-se que no se usa intercalagem e
portanto sero usados os 3 bits mais significativos da palavra de endereo (A20 a A23) para,
atravs de um descodificador 3:8, activar as 8 linhas de RAS dos mdulos SIMMs. Esse
descodificador recebe na sua entrada de habilitao (enable) o sinal RAS gerado pelo
controlador de memria. Assim, enquanto o sinal RAS estivar desactivado (nvel alto) nenhuma
das sadas est activada (nvel alto). Quando o sinal RAS for activado ento uma das sadas,
consoante os bits de endereo, ser activada.
As restantes 20 linhas de endereo so multiplexadas em 2 conjuntos de 10 linhas para
fornecimento s SIMMs (e DRAMs nelas contidas) para indicao da linha e coluna a activar.
Esse multiplexer controlado pelo sinal geral de CAS. Relembre-se que o protocolo de acesso
memria DRAM consiste em:
1)

colocar no barramento de endereos o endereo da linha,

2)

activar o sinal RAS,

3)

colocar no barramento de endereos o endereo da coluna e

4)

activar o sinal CAS depois de passado um certo tempo mnimo do flanco descendente
do sinal RAS (RAS to CAS delay time: tRCD).

Assim sendo, quando deve estar no barramento de endereos o endereo da linha, o sinal CAS
est no nvel alto e portanto o multiplexer coloca na sua sada as linhas de endereo A10 a A19
que so usadas para indicar a linha. Quando o sinal CAS activado (nvel baixo) o multiplexer
coloca na sua sada as linhas de endereo A0 a A9 que so usadas para indicar a coluna. Notese que esta escolha no podia ser ao contrrio porque palavras de memria pertencentes a
endereos consecutivos devem estar armazenadas na mesma linha de modo a por ser usar o
modo rpido de pgina em que um conjunto de palavras, chamadas de pgina, podem ser
acedidas activando unicamente a linha CAS com o endereo de coluna apropriado no
barramento de endereos sem ter que se activar e desactivar a linha de RAS entre cada
acesso, o que torna o procedimento mais lento devido necessidade de pr-carga e
equalizao das linhas.
Note-se ainda que em algumas memrias os endereos devem estar no barramento um certo
tempo antes das linhas de RAS ou CAS serem activadas. Assim sendo, e como no plano de
memria proposto os endereos de coluna s esto na linha depois de o multiplexer os
seleccionar o que s feito depois do sinal CAS ser activado, preciso introduzir um atraso no
sinal CAS entre a entrada do multiplexer e a entrada das SIMMs de modo a que a transio
acabe por acontecer, na perspectiva da memria DRAM, depois dos endereos estarem no
barramento. Isso pode ser feito introduzindo no caminho do sinal CAS duas ou mais (em nmero
par) portas lgicas NOT. No presente exerccio considera-se que isso no necessrio.

59

As linhas de controlo CAS e WE so tambm ligadas em paralelo a todos os mdulos SIMM j


que a sua activao numa dada memria DRAM quando a linha RAS est inactiva no tem
qualquer influncia. Assim sendo s a DRAM cuja linha RAS foi activada (por intermdio do
descodificador 3:8 usado) que prestar ateno ao nvel desses sinais de controlo (CAS e WE).
O controlador de memria responsvel por gerar os sinais RAS e CAS para as SIMMs com a
temporizao adequada. A interface que apresenta para o exterior, isto , para o CPU, consiste
nas linhas de relgio, de leitura/escrita, de seleco do dispositivo (chip select) e linha de READY
para indicao de quando a operao est concluda. Essa interface igual quer se trata de
uma memria SRAM ou DRAM. Esse aspecto transparente para o processador bem como o
facto de existir ou no memria tampo (cache), por exemplo.

60

Alnea 2
A mxima largura de banda consegue-se atravs do uso do modo de pgina rpido. Nesse
modo vrios bytes da mesma linha podem ser transferidos sem ter que se fornecer
individualmente o endereo de linha.
Observando o diagrama temporal fornecido na folha de especificaes da memria para o
caso de uma leitura usando o fast-page-mode, conclui-se que a leitura de, por exemplo, um
bloco de 32 bytes requer:
1)

a colocao do endereo de linha no barramento de endereos;

2)

a activao do sinal RAS;

3)

a colocao do endereo de coluna no barramento de endereos;

4)

a activao do sinal CAS;

5)

a leitura dos dados presentes no barramento de dados;

6)

a desactivao da linha CAS;

7)

a repetio dos passos 3 a 5 para a leitura de cada um dos 32 bytes.

Depois de 32 flanco descendente do sinal CAS h que desactivar o sinal RAS de modo a se
poder comear a transferir outro bloco repetindo-se as mesmas operaes.

A activao e desactivao dos sinais de controlo, nomeadamente do sinal RAS e do sinal CAS,
requerem que se cumpram intervalos de tempo mnimos consoante o indicado na folha de
61

especificaes da memria. Vamos considerar nesta resoluo que se usa a verso -6 dos
mdulos de memria.
O sistema de memria a construir utiliza um controlador sncrono com o processador. Isto
significa que o controlador executa uma mquina de estados finita havendo lugar a uma
transio de estado a cada ciclo de relgio. Como a frequncia desse relgio , neste caso,
128 MHz, as transies de estado acontecem, no mnimo, intervaladas de 8 ns (1/125 s). Os
sinais de sada do controlador ligados s SIMMs so portanto alterados de cada vez que se
entra num novo estado. Isso implica que o intervalo mnimo entre dois flancos do mesmo ou de
sinais diferentes de 8 ns. Tendo em conta esta resoluo temporal e os tempos mnimos
impostos pela memria, h que determinar o nmero de ciclos de relgio (transies de estados
da mquina de estado finita do controlador) a utilizar entre os diferentes flancos dos sinais de
controlo (RAS e CAS).
Considera-se que o incio da transferncia acontece quando o sinal RAS activado (flanco
descendente). Entre esse flanco e o flanco descendente do sinal CAS tem que existir um
intervalo de tempo igual ou superior a 20 ns (tRCD RAS to CAS delay). Isso corresponde portanto
a 3 ciclos de relgio pois 3 x 8 20.
De seguida h que activar o sinal CAS que deve manter-se activo durante 15 ns (tCAS CAS
pulse width) o que corresponde a 2 ciclos de relgio. De seguida o sinal CAS desactivado e
tem que se manter desactivado durante 10 ns (tCP CAS precharge time) o que corresponde
tambm a 2 ciclos de relgio. Esses dois tempos levariam a crer que o ciclo de activao e
desactivao do sinal CAS (necessrio para transferir cada byte) poderia ocupar unicamente 4
ciclos de relgio. H, no entanto, que ter em ateno que a folha de especificaes indica que
deve ocorrer um intervalo mnimo de 35 ns entre activaes consecutivas do sinal CAS (tPC
FAST-PAGE-MODE READ or WRITE cycle time). Isso corresponde a 5 ciclos de relgio. Escolheu-se
portanto usar 3 ciclos de relgio para o intervalo de tempo que o sinal CAS est desactivado e 2
ciclos para o intervalo de tempo em que est activado.
Depois do 32 flanco descendente do sinal CAS, quando realizada a leitura do 32 byte, h
que desactivar o sinal RAS. O tempo que deve passar entre uma coisa e outra de 15 ns (tRSH
RAS hold time). Isso corresponde a 2 ciclos de relgio.
Finalmente, para voltar a activar de novo o sinal RAS por forma a dar incio transferncia de
mais um bloco de dados, h que esperar 40 ns (tRP RAS precharge time). Isso traduz-se em mais
5 ciclos de relgio.
O nmero de ciclos de relgio a usar para cada fase da leitura dos dados est resumido no
diagrama temporal apresentado (3-3-2-2-5). Note-se que o 2 e o 3 nmero nesta sequncia
so repetidos 31 vezes para transferncia do byte 0 ao byte 30. O tempo total necessrio para a
leitura de um bloco de 32 bytes, em ciclos de relgio, portanto

N 3 3 2 31 2 5 165 ciclos .
62

Em segundos isso equivale a 1320 ns (165 x 8). Conseguem-se assim transferir 32 bytes a cada
1320 ns. Isso equivale transferncia de 24,24x106 bytes por segundo. A largura de banda
portanto 23,12 MB/s (24,24x106 / 1024 / 1024).

Alnea 3
Observando o diagrama CBR Refresh Cycle da folha de especificaes, conclui-se que o
refrescamento de uma linha necessita de pelo menos 40 ns durante o qual o sinal RAS est
inactivo (tRP RAS precharge time), o que corresponde a 5 ciclos de relgio, e mais 60 ns
durante o qual o sinal RAS est activo (tRAS RAS pulse width) o que corresponde a pelo menos 8
ciclos de relgio. Ao todo so preciso pois 13 (5 + 8) ciclos de relgio o que corresponde a
104 ns.
O refrescamento das 1024 linhas que a memria DRAM tem demora portanto 13312 (13 x 1024)
ciclos de relgio (106,496 s). Segundo o fabricante esse refrescamento tem de ser executado
pelo menos uma vez em cada 16 ms. H ento que planear como esse tempo usado para
transferir dados (blocos de 32 bytes) e para efectuar o refrescamento.
Em 16 ms existem 2 milhes de ciclos de relgio. Retirando os 13312 que so necessrios para o
refrescamento sobram 1986688 ciclos. Tendo em conta que a transferncia de 32 bytes requer
165 ciclos de relgio, conseguem-se efectuar 12040 transferncias de bloco (1986600 ciclos de
relgio). Ficam a sobrar 2000000 13312 1986600 = 88 ciclos de relgio. A transferncia dos
1204 blocos de dados mais o refrescamento das 1024 linhas demora 1999912 (1986600 + 13312)
ciclos de relgio, ou seja, 15,999296 ms. Nesse perodo de tempo conseguem-se transferir 385280
bytes. A largura de banda pois de aproximadamente 24081059 bytes/s, ou seja, 22,97 MB/s.

63

14

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Plano de Memria com Intercalagem Simples


ENUNCIADO

Pretende-se realizar um plano de memria para um processador de 32 bits. O plano de memria


deve conter 1 MB e usar intercalagem simples, e usar circuitos integrados HM511664-8 (65536 x 16
bits, tRAS = 100 ns, tCAS = 20 ns). O controlador de memria sncrono com um relgio de 40 MHz e
deve gerar um sinal de ready, seguindo o protocolo de full-handshake indicado abaixo.
1.

Projecte o sistema de memria, indicando o nmero de circuitos integrados necessrio,


e explicitando como so ligadas as linhas de endereo, dados e controlo.

2.

Esboce as formas de onda geradas pelo controlador num acesso em modo leitura a
uma palavra isolada de um dos bancos de memria.

3.

Assumindo que a fraco de acessos intercalados 70%, indique a mxima taxa de


transferncia que possvel obter neste sistema de memria quando no feito uso do
fast-page-mode.

4.

Desenhe o diagrama de estados do controlador de memria que corresponde s


formas de onda apresentadas na figura. Por simplicidade, considere apenas os estados
e sinais envolvidos no controlo de um dos bancos de memria.

64

RESOLUO
Alnea 1
Como cada circuito integrado tem 128 KB so necessrios 8 desses circuitos para construir uma
memria com a capacidade de 1 MB. Como o tamanho de palavra desejado de 32 bits e
cada circuito integrado tem 16 linhas de dados necessrio associar os 8 circuitos integrados
em 4 ranks de 2 circuitos cada como ilustra a figura.

Cada um desses ranks tem um barramento de dados de 32 bits e tem uma capacidade de
armazenamento de 65535 palavras, ou seja, 256 KB.
Cada um dos ranks seleccionado atravs de um sinal RAS proveniente de um descodificador
2:4 que recebe 2 das 18 linhas de endereos e habilitado pelo sinal RAS global. As 2 linhas
usadas correspondem aos bits menos significativos de forma a ter-se intercalagem do espao
de memria. Ao todo so necessrios 18 bits de endereo de forma a enderearem-se as 256
kpalavras da memria total (4 bytes por palavra).
De forma a fornecer s memrias DRAM o endereo de linha e de coluna, necessrio usar um
multiplexer que, das 16 linhas de endereos restantes, selecciona 8 consoante o sinal CAS. Isso
necessrio porque os circuitos integrados de memria s tm 8 linhas de endereos.
As linhas de comando CAS e UW, LW e OE so ligadas em paralelo a todos os circuitos
integrados.
65

Alnea 2

66

20

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Memria Tampo com 512 bytes


ENUNCIADO

Considere uma memria tampo associativa de dimenso 512 bytes, com 2 vias e blocos de 32
bytes. Esta cache est integrada num sistema que pode enderear 232 bytes, podendo cada
byte ser endereado individualmente.
1.

Descreva quais os bits de endereo usados para enderear o bloco da memria


tampo e quais os bits usados para enderear dentro do bloco.

2.

Determine o tamanho das etiquetas (tags) guardadas na memria tampo.

3.

Usando como blocos bsicos comparadores, descodificadores, registos, multiplexers e


buffers tri state, esboce os circuitos desta memria tampo envolvidos em operaes
de leitura. Nesta descrio, considere que os registos tm uma nica entrada de
controlo, &/, e que tm as sadas em alta impedncia quando no esto
seleccionados. Descreva sempre a largura, em bits, de cada linha de dados ou
endereos que utilizar mas ignore quaisquer circuitos necessrios para a escrita de
dados na memria tampo. A figura abaixo mostra exemplos de blocos que pode
utilizar.

RESOLUO

Alnea 1
Na memria associativa com 2 vias existem 8 conjuntos de 32 bytes por via cada perfazendo os
512 bytes da memria tampo (2 x 8 x 32 = 512). So portanto precisos 5 bits para enderear
dentro do bloco (25 = 32) e 3 bits para enderear o bloco (23 = 8).

67

Alnea 2
As etiquetas tm o mesmo nmero de bits que o endereo de memria (32) menos os bits
usados para enderear os blocos (3) e dentro dos blocos (5). Assim sendo sobram assim 24 bits
para a etiqueta (32 3 5 = 24).

Alnea 3
Os circuitos internos desta memria tampo so os seguintes:

68

22

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Memria Tampo Separadas para Dados e Cdigo


ENUNCIADO

Considere um processador que possui caches separadas para dados e cdigo do tipo
bloqueante e que, na ausncia de falhas na cache, executa uma instruo por ciclo de relgio.
A cache de dados de 64 KB, usa blocos de 32 bytes, mapeamento directo e write-through
com um tampo de escrita (write-buffer). Um acesso cache demora um ciclo de relgio, a
transferncia de um bloco entre a memria e a cache demora 18 ciclos de relgio e uma
escrita em memria de uma palavra demora 4 ciclos de relgio.
1.

Descreva qual a importncia do tampo de escrita numa cache que use write-through.

2.

Suponha que 10% das instrues so escritas e que o tampo de escrita nunca enche.
Nestas condies, calcule o nmero mdio de ciclos por instruo (CPI) do processador
quando a taxa de sucesso na memria tampo (hit-rate) de 90%. Ignore qualquer
efeito da memria tampo de cdigo.

3.

Nas condies da alnea anterior, qual a taxa de ocupao do barramento de


memria?

4.

Suponha que, mantendo-se a taxa de sucesso da alnea anterior, a percentagem de


escritas se eleva para 30%. Calcule a nova taxa de ocupao do barramento e o novo
CPI do processador.

RESOLUO

Alnea 1
Na estratgia write-through os dados provenientes do processador so escritos na memria
tampo e na memria principal. usado um tampo de escrita (write buffer) para no ter que
se esperar que a memria principal acabe de escrever os dados.

69

O tampo de escrita normalmente do tipo FIFO (first in frist out). Esta estratgia funciona bem
se a frequncia de escrita for muito menor do que o inverso do tempo de ciclo da memria
principal, caso contrrio o tampo de escrita enche.

Alnea 2
A existncia de 10% de escritas implica que h 90% de leituras. Em 10% das instrues o tempo
que demora o acesso memria de 1 ciclo. Note-se que, devido ao uso de um tampo de
escrita, a leitura e a escrita na memria tampo, usando a estratgia de write-through, demora
sempre 1 ciclo de relgio. Nos outros 90%, em que h leitura, pode acontecer os dados estarem
na memria tampo ou no. No primeiro caso o tempo gasto s um ciclo de relgio
enquanto no segundo caso o tempo gasto de 18 ciclos de relgio pois os dados tm que ser
lidos da memria principal (mais lenta).

Alnea 3
Os dados escritos, embora custem ao processador s um ciclo de relgio, devido ao uso de
um tampo de escrita, so eventualmente transferidos desse tampo para a memria principal
ocupando o barramento de memria durante 4 ciclos de relgio. No caso da leitura, s quando
falha na memria tampo (10% das vezes) que preciso ler os dados da memria principal,
o que demora 18 ciclos de relgio.

70

O tempo em que o barramento de memria est ocupado, em mdia, portanto de 2,02 ciclo
por instruo:

escrita

leitura

TOB = 0,1 x 4 + 0,9 x 0,1 x 18 = 2,02 ciclos por instruo


Percentagem
de escritas
Tempo de
ocupao do
barramento

Percentagem
de leituras

Nmero de ciclos que


demora a escrever na
memria principal

Nmero de ciclos que


demora a ler da
memria principal
Percentagem
de falhas

A taxa de ocupao do barramento obtm-se dividindo este valor pelo CPI obtendo-se 79,8%.

Alnea 4
Repetindo os clculos efectuados anteriormente tem-se

A taxa de ocupao e portanto 2,22 / 2,46 = 110,8%. Isto significa que o processador tem que
esperar pelo barramento de memria sendo portanto o nmero efectivo de ciclos por instruo
de 2,46 e no de 2,22.

71

23

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Memria Tampo Associativa de 2 Vias


ENUNCIADO

Considere um CPU com uma memria tampo interna com uma dimenso de 16 KB, associativa
de duas vias e com blocos de 32 bytes. A memria tampo utiliza as estratgias write back e
write allocate. Assuma tambm que a memria tampo utilizada num sistema com um
espao de endereamento de 232 bytes, onde cada byte enderevel individualmente.
1.

Descreva a organizao da memria tampo. Indique a utilizao dos diferentes bits


de endereo.

2.

Determine o nmero de comparadores e o nmero de bits utilizados na memria


tampo, incluindo quaisquer bits de controlo que julgue necessrios.

3.

Pretende-se analisar o desempenho da cache na execuo do seguinte segmento de


cdigo:
static int local[1024]; // Inteiro representado por 32 bits
int init_n_sum (char inp[])
{
register int k, sum=0;
for (k = 0; k < 1024; k = k+2) {
local[k] = inp[k];
}
for (k = 0; k < 512; k = k+2) {
sum += local[k];
}
return sum;
}

Assuma que o compilador no executa quaisquer optimizaes ao cdigo, que as


entradas da memria tampo so inicialmente invlidas e que o endereo base dos
arrays local

e inp

respectivamente, 0x0010

0000

e 0x000E

0000. Nestas

condies, e durante a execuo da funo init_n_sum, calcule:


a) O nmero de bytes transferidos da memria principal para o bloco
CPU/memria tampo.
b) O nmero de bytes transferidos do bloco CPU/memria tampo para a
memria principal.
4.

Indique as alteraes resposta da alnea anterior assumindo que a memria tampo


utiliza as estratgias write through e write not allocate.

72

RESOLUO

Alnea 1
Na memria associativa com 2 vias existem 256 conjuntos de 32 bytes por via cada perfazendo
os 16 KB da memria tampo. So portanto precisos 5 bits para enderear a palavra dentro de
conjunto (25 = 32) e 8 bits para enderear o conjunto (28 = 256). Sobram assim 19 bits para a
etiqueta (32 5 8 = 19).

Alnea 2
So usados dois comparadores de 19 bits cada.
Alm dos bits de armazenamento propriamente ditos existem vrios bits de controlo. Esses bits
so usados para as etiquetas (19 por conjunto e por via), para registo da validade dos dados
armazenados (1 por conjunto por via) e para indicao de qual das vias foi usada h mais
tempo. A estratgia usualmente adoptada em memrias associativas com duas vias a tcnica
least recently used (LRU) em que a escolha da via a usar para a escrita de um novo bloco
aquela que foi usada h mais tempo. Para implementar essa estratgia basta um bit por
conjunto e por via que indica se dada via ou no a que foi usada h mais tempo. Assim que
h um acesso a um bloco de memria o bit LRU desse conjunto e via colocada a 0 e o bit
correspondente da outra via colocado a 1.
73

O nmero de bits de controlo necessrios portanto


(19 + 1 + 1) x 2 x 256 = 21 x 2 x 256 = 10752.
Como os bits de armazenamento so 131072 (2 x 256 x 32 x 8) o nmero total de bits da memria
tampo 141824.

Alnea 3
Na estratgia write back os dados so guardados s na memria tampo. S quando precisam
de ser descartados da memria tampo que so enviados para a memria principal. A
estratgia write allocate consiste em, quando se pretende escrever um dado na memria e esse
dado no est j na memria tampo, transferi-lo primeiro da memria principal para a
memria tampo (um bloco inteiro de dados) e depois ento escrever o novo dado na
memria tampo.
No primeiro ciclo os elementos o vector inp so lidos um a um e escritos no vector local. Para
cada iterao do ciclo o elemento inp[k] lido a memria principal e transferido para o
CPU/memria tampo pois essa memria est vazia. Esse valor lido depois de novo enviado
para a memria (para a posio local[k]), no entanto, como usada a estratgia de write
back, esse valor s escrito, para j, na memria tampo. Note-se que embora inp[k] e local [k]
tenham endereos diferentes na memria principal eles so armazenados no mesmo endereo
dentro da memria tampo pois os 13 bits (8 + 5) menos significativos dos seus endereos so
iguais. Acontece que a memria tampo tem duas vias. Assim sendo o elemento inp[k] lido
para uma via enquanto que o elemento local[k], que tem que ser transferido da memria
principal para a memria tampo antes de poder ser escrito nesta, devido ao uso da estratgia
de write allocate, ser armazenado na outra via que estava, at ento, vazia.
Durante o primeiro ciclo so portanto transferidos da memria principal para a memria
tampo 2 vezes (inp e local) 1024 elementos (s so utilizados metade desses elementos mas
como a transferncia feita por blocos de bytes consecutivos todo o vector transferido).
Enquanto os elementos de inp ocupam 1 byte (tipo char) os de local ocupam 4 bytes (tipo int).
Assim sendo o nmero total de bytes transferido de 5120 bytes (5 KB).
Durante o segundo ciclo 256 elementos do vector local so lidos da memria (512 elementos
com saltos de 2 em 2). Como j tinham sido lidos no ciclo anterior encontram-se todos na
memria tampo, no havendo portanto origem a transferncia de dados da memria
principal para a memria tampo.
No total tem-se portanto 5 KB da memria principal para o CPU/memria tampo e nenhum
byte no sentido contrrio.

74

Alnea 4
Na estratgia de write through os dados so escritos na memria tampo e na memria
principal ao mesmo tempo. Na estratgia de write not allocate se os dados correspondentes ao
endereo onde se quer escrever no estiverem na memria tampo no sero transferidos para
esta. Neste caso os dados so s guardados na memria principal.
Durante o primeiro ciclo elementos do vector inp so transferidos da memria principal para a
memria tampo (1024 bytes). Os elementos do vector local, como no se encontram na
memria tampo, so s escritos na memria principal dando origem transferncia de 2 KB
(512 elementos de 4 bytes cada) do CPU/memria tampo para a memria principal.
Durante o segundo ciclo os elementos do vector local no se encontram na memria tampo e
portanto tm que ser transferidos da memria principal para o CPU e memria tampo. H
portanto uma transferncia nesse sentido de 2 KB (512 elementos e 4 bytes cada). Note-se que
embora s sejam usados 256 elementos, so transferidos 512 pois a transferncia feita por
bloco consecutivo de bytes.
Em resumo h a transferncia de 3 KB da memria principal para o CPU/memria tampo e 2
KB no sentido inverso.

75

24

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Memria Tampo de um Processador AMD Athlon


ENUNCIADO

Considere a memria tampo de dados de nvel 1 (L1) do processador AMD Athlon


(arquitectura K7), com uma capacidade de 64 KB, associativa de duas vias, e com blocos de 64
bytes. A memria utiliza as estratgias write-back e write-allocate e o processador tem um
comprimento de palavra de 32 bits e dispe de 32 bits de endereo, endereando
individualmente o byte. Considere um mecanismo de substituio de blocos do tipo LRU.
1.

Indique a utilizao dos diferentes bits de endereo, comparando com uma memria
tampo de mapeamento directo com a mesma capacidade e blocos do mesmo
tamanho.

2.

Determine o nmero de comparadores e o nmero de bits utilizados na memria


tampo, incluindo os bits de controlo que entenda necessrios.

3.

Calcule a taxa de faltas e a taxa de acertos para o troo de cdigo que se apresenta
de seguida.
static int X[32768]; //
register int k, sum1=0,
main()
{
for (k = 0; k < 32768;
for (k = 32766; k >=0;
for (k = 0; k < 32768;
}

4.

Inteiro representado por 32 bits


sum2=0, sum3=0;
k++) sum1 = sum1 + X[k];
k = k-2) sum2 = sum2 + X[k];
k = k+4) sum3 = sum3 + X[k];

Repita a alnea anterior considerando um cdigo exactamente com a mesma


funcionalidade mas em que a varivel do ciclo for intermdio incrementada no
sentido inverso, isto do valor mnimo para o valor mximo (0 a 32766). Comente o
resultado.

5.

Considere que a memria tampo est ligada directamente a um plano de memria


principal, formada por circuitos de memria dinmica acedidos no modo rpido de
pgina em palavras de 32 bits. O intervalo de tempo mnimo entre activar o sinal de RAS
e de CAS 20 ns e, a partir da, o acesso a palavras consecutivas na memria
efectuado pulsando o sinal de CAS com um perodo de 10 ns e um factor de ciclo de
50%. Os dados esto disponveis 5 ns depois da linha CAS ter sido activada.
Considerando uma das taxas de falta calculadas nas alneas anteriores e que o acesso
cache demora 10 ns, calcule o ciclo mdio de acesso memria. Se no resolveu
nenhuma das alneas anteriores considere uma taxa de faltas de 10%.

76

RESOLUO

Alnea 1
Na memria com mapeamento directo existem 1024 conjuntos de 64 bytes cada perfazendo os
64 KB da memria tampo. So portanto precisos 6 bits para enderear a palavra dentro de
conjunto (26 = 64) e 10 bits para enderear o conjunto (210 = 1024). Sobram assim 16 bits para a
etiqueta (32 6 10 = 16).

Na memria associativa com 2 vias existem 512 conjuntos de 64 bytes por via cada perfazendo
os 64 KB da memria tampo. So portanto precisos 6 bits para enderear a palavra dentro de
conjunto (26 = 64) e 9 bits para enderear o conjunto (29 = 512). Sobram assim 17 bits para a
etiqueta (32 6 9 = 17).

77

Alnea 2
So usados dois comparadores de 17 bits cada.
Alm dos bits de armazenamento propriamente ditos existem vrios bits de controlo. Esses bits
so usados para as etiquetas (17 por conjunto e por via), para registo da validade dos dados
armazenados (1 por conjunto por via) e para indicao de qual das vias foi usada h mais
tempo. A estratgia usualmente adoptada em memrias associativas com duas vias a tcnica
least recently used (LRU) em que a escolha da via a usar para a escrita de um novo bloco
aquela que foi usada h mais tempo. Para implementar essa estratgia basta um bit por
conjunto e por via que indica se dada via ou no a que foi usada h mais tempo. Assim que
h um acesso a um bloco de memria o bit LRU desse conjunto e via colocada a 0 e o bit
correspondente da outra via colocado a 1.
O nmero de bits de controlo necessrios portanto
(17 + 1 + 1) x 2 x 512 = 19 x 2 x 512 = 19456.
Como os bits de armazenamento so 524288 (2 x 512 x 64 x 8) o nmero total de bits da memria
tampo 543744.

Alnea 3
78

O vector X ocupa 128 KB j que tem 32 x 1024 inteiros que por sua vez ocupam 4 bytes cada.
No inicio a memria tampo est vazia. No primeiro ciclo so efectuadas 32 k leituras da
memria, no entanto, no h 32 k faltas pois de cada vez que h uma leitura so transferidos 64
bytes da memria. Por exemplo, quando se tenta ler o primeiro elemento do vector (X[0]) so
imediatamente transferidos para a memria tampo 64 bytes, ou seja, 16 elementos do vector
(4 bytes por elemento). Isto significa que s 1 em cada 16 acessos que resulta em falta h
uma falta ao aceder o elemento 0 mas no h nenhuma falta ao aceder aos elementos 1 a 15.
Volta no entanto a haver uma falta quando se tenta aceder o elemento 16 do vector.
Assim sendo, no primeiro ciclo, acontecem 32768 (32 k) acessos mas s 2048 faltas (32768/16).
No fim do primeiro ciclo est armazenado na memria tampo a ltima metade do vector X.
No segundo ciclo os elementos do vector so lidos do fim para o princpio sendo o ndice
decrementado de duas posies em cada iterao. So assim efectuados 16384 acessos.
Como a leitura do vector feita a partir do fim, a segunda metade do vector (primeira metade
lida) vai estar na memria tampo no havendo portanto faltas (8192 acessos sem faltas).
Quando o ciclo chegar a meio os elementos do vector j no estaro na memria tampo.
Devido transferncia de 16 elementos consecutivos de cada vez a leitura dos restantes 8192
elementos resultam em faltas a 1 em cada 8 acessos. Acontecem portanto 1024 faltas (8192/8).
O fim do 2 ciclo a primeira metade do vector est na memria tampo.
No terceiro ciclo o ndice incrementado de 4 unidade sendo a leitura do vector feita do inicio
at ao fim (8192 acessos). Da mesma forma que no caso do 2 ciclo, a primeira metade das
leituras (4096 acessos) no originar nenhuma falta. Na segunda metade, devido
transferncia de blocos de 16 elementos de cada vez, haver 1 em 4 faltas, ou seja, 1024 faltas
ao todo.
Resumindo tem-se o seguinte nmero de acessos e de faltas em cada ciclo:
Ciclo

Cdigo

Acessos

Faltas

Primeiro

for (k = 0; k < 32768; k++) sum1 = sum1 + X[k];

32768

2048

Segundo

for (k = 32766; k >=0; k = k-2) sum2 = sum2 + X[k];

16384

1024

Terceiro

for (k = 0; k < 32768; k = k+4) sum3 = sum3 + X[k];

8162

1024

57344

4096

Total

A taxa de faltas portanto 7,1 % (4096 / 57344).

79

Alnea 4
No fim do 1 ciclo a memria tampo contm a segunda metade do vector X. Como o 2 ciclo
comea por ler os primeiros elementos do vector, vo ocorrer logo faltas. Assim sendo durante
todos os acessos (16384) iro ocorrer faltas em 1 de cada 8 acessos (incrementos de 2 e
transferncia de blocos de 16 elementos. O nmero de faltas assim de 2048 (16384/8).
No fim do 2 ciclo a memria tampo volta a conter s a 2 metade do vector. Assim sendo, no
3 ciclo acontece algo semelhante ao que acontece no 2 ciclo embora neste caso o nmero
de acessos s de 8192, devido aos incrementos de 4 unidades mas tambm a taxa de faltas
s 1 em cada 4 acessos pois continuam a ser sempre transferidos blocos de 16 elementos
consecutivos. O nmero de faltas portanto tambm 2048 (8192/4).
Resumindo tem-se o seguinte nmero de acessos e de faltas em cada ciclo:
Ciclo

Cdigo

Acessos

Faltas

Primeiro

for (k = 0; k < 32768; k++) sum1 = sum1 + X[k];

32768

2048

Segundo

for (k =0; k <32768; k = k+2) sum2 = sum2 + X[k];

16384

2048

Terceiro

for (k = 0; k < 32768; k = k+4) sum3 = sum3 + X[k];

8162

2048

57344

6144

Total

A taxa de faltas portanto 10,7 % (6144 / 57344).

Alnea 5
O tempo de acesso memria consiste no tempo de acesso memria tampo e, caso ocorra
uma falta, de um tempo extra para transferir o bloco de dados da memria principal para a
memria tampo.
Esse tempo de transferncia consiste no tempo que h que esperar entre activar-se a linha RAS
e activar-se a linha CAS pela primeira vez (20 ns) e o tempo entre cada activao consecutiva
da linha CAS (10 ns) o que em que ser repetido mais 15 vezes para se lerem os 16 bytes que
constituem um bloco na memria tampo. Os dados esto disponveis aps 5 ns da activao
da linha CAS.

80

Assim sendo o tempo total deste a activao da linha RAS at ao 16 byte estar disponvel nas
linhas de dados de 175 ns (20 + 10 x 15 + 5).
Considerando uma taxa de faltas de 7,1 % o tempo mdio de acesso 10 + 0,071 x 175 =
22,425 ns.

81

25

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Memria Tampo de um Processador Intel Pentium 4


ENUNCIADO

Considere a memria tampo de dados de nvel 1 (L1) do processador Intel Pentium 4,


associativa de quatro vias, com uma dimenso de 8 KB e com blocos de 64 bytes. A memria
tampo utiliza as estratgias write-back e write-allocate e o processador tem um comprimento
de palavra de 32 bits e dispe de 32 bits de endereo, endereando individualmente o byte.
1.

Descreva a organizao da memria tampo, indicando a utilizao dos diferentes bits


de endereo.

2.

Determine o nmero de comparadores e o nmero de bits utilizados na memria


tampo, incluindo os bits de controlo que entenda necessrios.

3.

Calcule a taxa de faltas (miss rate) e a taxa de acertos (hit rate) num programa em que
se pretende somar duas matrizes de inteiros de 16 x 16 elementos e colocar o resultado
numa terceira, considerando: um inteiro representado por 4 bytes, a memria tampo
est inicialmente vazia, as matrizes no tm endereos sobrepostos e o endereo inicial
de cada matriz coincide com a primeira palavra de uma via da memria tampo.

4.

Repita a alnea anterior considerando que se pretende adicionar 4 matrizes e colocar o


resultado numa quinta.

5.

Considere que a cache est ligada directamente a um plano de memria principal,


formada por circuitos de memria dinmica acedidos no modo rpido de pgina. O
intervalo de tempo mnimo entre activar o sinal de RAS e de CAS 20 ns e, a partir da, o
acesso a palavras consecutivas na memria efectuado pulsando o sinal de CAS com
um perodo de 20 ns e um factor de ciclo de 50 %. Esboce as formas de onda dos sinais
de controlo para transferncia de um bloco da cache e indique o tempo de
penalizao por falta na cache.

RESOLUO

Alnea 1
Na memria associativa com 4 vias existem 32 blocos de 64 bytes por via cada perfazendo os
8 KB da memria tampo. So portanto precisos 6 bits para enderear a palavra dentro de
bloco (26 = 64) e 5 bits para enderear o conjunto (25 = 32). Sobram assim 21 bits para a etiqueta
(32 6 5 = 21).
82

Alnea 2
So usados 4 comparadores de 21 bits cada.
Alm dos bits de armazenamento propriamente ditos existem vrios bits de controlo. Esses bits
so usados para as etiquetas (21 por conjunto e por via), para registo da validade dos dados
armazenados (1 por conjunto por via) e para indicao de qual das vias foi usada h mais
tempo (2 bits no caso da estratgia LRU).
O nmero de bits de controlo necessrios portanto
(21 + 1 + 2) x 4 x 32 = 24 x 4 x 32 = 3072.
Como os bits de armazenamento so 65536 (4 x 32 x 64 x 8) o nmero total de bits da memria
tampo 68608.

Alnea 3
O cdigo para somar 2 matrizes (A e B) de 16 x 16 inteiros e colocar o resultado numa terceira
matriz (C) o seguinte:
static int A[256]; // Inteiro representado por 32 bits
static int B[256]; // Inteiro representado por 32 bits
static int C[256]; // Inteiro representado por 32 bits
register int k;
main()

83

{
for (k = 0; k < 256; k++) C[k] = A[k] + B[k];
}

As trs matrizes so armazenadas em memria como um vector de 1024 bytes (256 elementos
de 4 bytes cada).
Na estratgia write back os dados so guardados s na memria tampo. S quando precisam
de ser descartados da memria tampo que so enviados para a memria principal. A
estratgia write allocate consiste em, quando se pretende escrever um dado na memria e esse
dado no est j na memria tampo, transferi-lo primeiro da memria principal para a
memria tampo (um bloco inteiro de dados) e depois ento escrever o novo dado na
memria tampo.
Durante o ciclo os elementos de A e B vo sendo lidos da memria e, como a memria tampo
est vazia inicialmente, no vo ser encontrados na memria tampo. De cada vez que isso
acontece, so transferidos 16 elementos (blocos de 64 bytes e 4 bytes por elemento). No vai
haver portanto falhas nos 15 elementos seguintes que se tenta ler. Em 256 acessos por matriz vai
haver 16 falhas (256/16).
Tendo em conta o uso da estratgia de write back/write allocate, como os elementos da matriz
C no esto inicialmente na memria tampo tambm tero que ser transferidos da memria
principal antes de poderem ser armazenados na memria tampo.
Como a memria tem 4 vias as trs matrizes (A, B e C), cujo endereo inicial coincide com a
primeira palavra de uma via da memria tampo, podem a ser armazenadas ao mesmo
tempo (em vias diferentes).
Vai haver portanto 768 acessos (256 por matriz) e 48 falhas (16 por matriz). A taxa de falhas
portanto de 6,25 % (48/768). A taxa de acertos, por sua vez, de 93,75 % (100 6,25).

Alnea 4
Neste caso no cabem as 5 matrizes na memria tampo ao mesmo tempo. Por isso, aquando
da escrita da soma de 4 elementos na 5 matriz ter que se retirar da memria tampo uma das
matrizes de entrada o que vai provocar que haja falhas em todos os acessos dessa matriz. Da
mesma forma, cada vez que se vai escrever o resultado na matriz de sada haver uma falhas
pois o elemento necessrio ter sido retirado da memria aquando da leitura das 4 matrizes.
O nmero de falhas portanto de 48 falhas (16 x 3) em 768 (256 x 3) acessos correspondente
leitura de 3 das matrizes de entrada, mais 512 falhas (256 x 2) em 512 (256 x 2) acessos
correspondentes a uma das matrizes de entrada e matriz de sada. A taxa de falhas
portanto de 43,75 % ((48 + 512) / (768 + 512)). A taxa de acertos, por sua vez, de 56,25 % (100

84

43,75).

Alnea 5
No modo rpido de pgina fornecido o endereo da linha no incio sendo depois fornecidos
unicamente os endereos de coluna. Isto permite rapidamente ler (ou escrever) um conjunto de
dados armazenados na mesma linha da memria dinmica.

Como o tamanho de um bloco na memria tampo de 64 bytes esse o nmero de bytes


que transferido quando se tenta aceder a um byte e esse byte no se encontra na memria
tampo (ocorrncia de uma falta). O tempo de penalizao o tempo que demora a transferir
o bloco inteiro da memria principal para a memria tampo. Esse tempo consiste no tempo
entre a activao do sinal RAS e a activao do sinal CAS (20 ns), mais o tempo entre a
activao do sinal CAS e estarem disponveis os dados mais 63 vezes o tempo entre duas
activaes consecutivas do sinal CAS (20 ns). Considera-se que entre a activao do sinal CAS
e a disponibilizao dos dados na sada da memria decorre um tempo igual a metade do
perodo do sinal CAS, ou seja, 10 ns. Tem-se assim para o tempo de penalizao
20 + 10 + 20 x 63 = 1290 ns.

85

86

CAPTULO 6

Barramentos

The best way to get a good idea is to get a lot of ideas.

LINUS PAULING

87

88

26

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Terminao Thevenin com Dodo


ENUNCIADO

Na figura abaixo, apresenta-se uma terminao de um barramento para sinais com nvel TTL e
colector aberto (VIH = 3 V, VIL = 1 V, VOL = 0,5 V). A alimentao de 5 V. O barramento tem
10 cm de comprimento, uma capacidade de 4 pF/cm e uma indutncia de 22,5 nH/cm.
Considera-se que a capacidade que cada linha de uma placa apresenta, do ponto de vista do
barramento, limitada a 10 pF. Considere que o dodo de silcio e tem um comportamento
ideal (tenso directa de 0,7 V).

Z0

1.

R
L
A B
, t LC , s t
C
Z0 A B

Diga qual a tenso mnima que pode ocorrer na terminao de uma linha do
barramento.

2.

Dimensione R1 e R2 para que a margem de rudo, em DC, no nvel lgico 1 seja 20%
superior margem de rudo no nvel lgico 0, e para que o barramento fique
adaptado na situao de no se ter colocado nenhuma placa.

3.

Calcule o nmero mximo de placas que o barramento suporta, tendo em ateno


apenas as margens de rudo.

89

RESOLUO

Alnea 1
Quando a tenso na linha de barramento menor do que 0 o dodo est polarizado
directamente e a sua tenso pode ter um valor mximo de aproximadamente 0,7 V. Assim
sendo a tenso na linha de barramento tem um valor mnimo de 0,7 V.

Alnea 2
A margem de rudo no nvel lgico 0 de 0,5 V,

NM0 VIL VOL 1 0,5 0,5 V .


A margem de rudo no nvel lgico 1 tem, portanto, de ser 0,6 V (20% mais do que 0,5 V). Como
dado VIH (3 V) pode-se determinar VOH:

VOH VIH NM1 3 0,6 3,6 V .


Como neste caso os circuitos so de colector aberto, no impem nenhuma tenso na sua
sada no nvel lgico alto. Isso tem que ser feito, portanto, pelo circuito da terminao.
Neste caso o circuito de terminao impe uma tenso, em DC, dada pela diviso de tenso
de alimentao:

VT 5

R2
.
R1 R2

Essa tenso tem que ser igual a VOH, ou seja


R2
3,6

.
R1 R2
5
Por outro lado, para que haja adaptao de impedncia necessrio que a resistncia que a
linha v na sua terminao (R1//R2) seja igual sua impedncia caracterstica que vale

Z0

22,5 109 10
4 1012 10

As resistncias da terminao tm portanto que satisfazer


R1R2
75 .
R1 R2
90

75 .

Obtm-se assim um sistema linear de duas equaes a duas incgnitas:


R2
3,6
R R 5
1
2
.

R
R
1 2 75
R R
2
1

Substituindo a equao de cima na de baixo obtm-se

R2
3,6
R R 5
1
2
.

R 3,6 75
1 5
O que permite obter o valor de R1:

R1 75

5
104,16 .
3,6

O valor da resistncia R2 pode obter-se da equao de cima:


R2
R R
R
R1
3,6
5
5
.

1 2
1
1 R2
5
R1 R2
5
R2
3,6
R2 3,6
1
3,6

Tendo em conta o valor de R1 obtido anteriormente (104,16 ) chega-se ao valor de 267,84


para R2.
A resposta final portanto R1 104,16 e R2 267,84 .

Alnea 3
A introduo de placas no barramento vai aumentar a capacidade da linha de transmisso de
10 pF por placa. Assim sendo a impedncia caracterstica deixa de valer 75 e passa a valer

Z0

L
C n 10 1012

22,5 10 9 10
4 1012 10 n 10 10 12

em que n o nmero de placas. A linha de transmisso ficar ento desadaptada pois essa
impedncia ser diferente da impedncia da terminao que foi dimensionada para valer
75 .
A desadaptao de impedncia provoca uma variao da tenso ao longo da linha, isto , o
diagrama de onda estacionrio deixe de ser uma recta horizontal. Para que os circuitos

91

continuem a funcionar bem preciso que essa variao seja igual ou inferior margem de
rudo. Considerando, por exemplo, a margem de rudo inferior, tem-se que a variao da tenso
na linha no pode ser maior do que 0,5 V para que a tenso de sada de um dispositivo, que ,
no mximo 0,5 V (VOL) no assuma na entrada de um outro dispositivo um valor superior a 1 V
(VIL) o que estaria fora da gama de valores interpretados como sendo o nvel 0.
No caso do nvel 1, a tenso ao longo da linha no pode variar mais do que 0,6 V (NMH) de
modo que a sada de 3,6 V (VOH) num dispositivo no chegue a outro dispositivo colocado
noutro local do barramento com um valor inferior a 3 V (VIH).
A variao da tenso ao longo da linha dada pelo factor de onda estacionria,

Vmax
.
Vmin

onde Vmax e Vmin so o valor mximo e mnimo, respectivamente, da tenso na linha. Esses
valores dependem da amplitude da onda incidente e reflectida na linha (caso s haja duas
ondas) sendo o factor de onda estacionria dado por

Vincidente Vreflectida
.
Vincidente Vreflectida

Note-se que no havendo onda reflectida s = 1.


No caso do problema em causa, para o nvel 0, a onda reflectida no pode ter um valor
superior a 0,5 V (NML). Assim sendo o factor de onda estacionrio mximo que se pode admitir
para que o sistema funcione correctamente de
'0'

smax

0,5 0,5
.
0,5 0,5

No caso do nvel 1 tem-se que a onda reflectida no pode ter um valor superior a 0,6 V (NMH).
Assim sendo o valor mximo do factor de onda estacionrio
'1'
smax

3,6 0,6
1,4 .
3,6 0,6

Para que ambos os casos sejam satisfeitos necessrio que o factor de onda estacionrio seja
igual ou inferior a 1,4:
s 1, 4

Esse factor depende do valor da impedncia caracterstica da linha (Z0) e da impedncia da


carga (ZL) da seguinte forma

92

ZL
Z
0
s
Z0
Z
L

, Z L Z0

.
, Z L Z0

No presente caso a colocao de vrias placas no barramento vai aumentar a capacidade da


linha e portanto diminuir o valor da impedncia caracterstica da linha. Tem-se portanto que
sempre se verificar ZL Z0 . Posto isto h que satisfazer a relao

ZL
1,4 .
Z0
Introduzindo a expresso da impedncia caracterstica da linha em funo do nmero de
placas existentes no barramento (n) tem-se
75
22,5 10 9 10

1,4 .

4 10 12 10 n 10 10 12

Esta desigualdade pode ser escrita em ordem a n obtendo-se


2

1,4
n 22,5 10 3
4 3,84 .
75

A resposta portanto que podem-se ligar no mximo 3 placas a este barramento.

93

27

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Terminao com Dodo de Zener


ENUNCIADO

Considere um barramento em que as terminaes so efectuadas pelo circuito da figura


seguinte:

1.

Descreva as vantagens de uma terminao deste tipo, face a uma terminao mais
simples com uma resistncia massa.

2.

Dimensione os componentes da terminao para que o barramento fique adaptado,


assumindo que os ciclos de acesso tm uma durao mxima de 100 ns.

3.

Determine a tenso de Zener de VZ1 para que a potncia dissipada para um sinal com
um ciclo de trabalho de 70% seja o menor possvel.

RESOLUO

Alnea 1
Esta montagem no tem um consumo de corrente em DC por aco do condensador. O dodo
de Zener polarizado inversamente impe uma tenso que faz com que a energia dissipada na
terminao seja menor.

94

Alnea 2
A resistncia R tem que ter o valor da impedncia caracterstica da linha que vale

Z0

50 10 9
5 10 12

100 .

O condensador tem que ter um valor tal que a constante de tempo RC seja superior ao tempo
de ciclo, isto , 100 ns.

RC 100 10 9 C

10 7
1 nF .
100

Alnea 3
No nvel lgico alto a potncia dissipada na resistncia da terminao (R)

P'1'

5 VT

em que VT a tenso aos terminais do dodo de Zener. No caso do nvel lgico baixo a potncia
dissipada

P' 0 '

0 VT 2
R

Em ambos os casos admite-se que o sinal produzido pelas fontes 0 ou 5 V.


A potncia total, considerando um ciclo de trabalho de 70%, portanto

P 0,7 P'1' 0,3 P' 0 ' 0,7

5 VT
R

0, 3

VT2
.
R

Para obter o valor de VT que minimiza a potncia consumida h que determinar a derivada de
P ordem a VT, e igualar a 0 (extremo da funo). Tem-se assim
dP 2VT 7

0.
dVT
R
A soluo portanto ter um Zener com uma tenso de 3,5 V.
Como regra geral o valor da tenso, para que o consumo de potncia seja mnimo, deve ser
igual ao valor mdio do sinal. Neste caso o valor mdio de 70% de 5 V, ou seja 3,5 V.

95

28

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Terminao Thevenin com Condensador


ENUNCIADO

Considere um barramento com 30 cm de comprimento e onde podem ser inseridas at 10


placas. Cada placa apresenta a cada linha do barramento uma capacidade de 20 pF. Os
amplificadores que atacam este barramento so do tipo CMOS.

1.

Dimensione a terminao de forma que o barramento fique adaptado para a situao


em que no se encontram placas no barramento, sabendo que os ciclos de acesso
demoram no mximo 1 s.

2.

Calcule a potncia dissipada na terminao quando o barramento actuado por um


sinal com um ciclo de trabalho de 50%.

3.

Redimensione a terminao para que a margem de rudo seja no inferior a 0,5 V mas a
dissipao na terminao seja a mais reduzida possvel.

96

RESOLUO

Alnea 1
A impedncia caracterstica da linha

Z0

40 109 30
4 1012 30

100 .

O paralelo de R1 e R2 deve portanto ser 100 .

R1R2
100 .
R1 R2
Como o valor de R1 dado (2 k) h que calcular o valor de R2.
R1R2 100R1 100R2

R2 R1 100 100R1
R2

100R1
100 2000

105,26
R1 100 2000 100

Para o dimensionamento do condensador h que ter em conta que a constante de tempo do


circuito RC da terminao seja superior ao tempo de ciclo (1 s).

RC 106 C

106 106

10 nF .
R
100

97

29

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Terminao Activa com AMPOP


ENUNCIADO

A figura representa uma terminao de um barramento com nveis CMOS. A este barramento
esto ligados processadores, memrias e perifricos cujos tempos de ciclo so inferiores a 1 s.

1.

Dimensione a terminao para que o barramento fique adaptado.

2.

Qual o valor mdio da potncia dissipada num ciclo de acesso numa linha do
barramento, admitindo que o ciclo de trabalho dos sinais 50% e que o barramento
parte do estado inactivo.

3.

Neste barramento as placas esto espaadas entre si 2,5 cm. Calcule a capacidade
mxima que uma placa pode introduzir em cada linha do barramento qual se liga,
para manter o funcionamento lgico correcto do sistema sem alterar as temporizaes
dos ciclos do sistema original.

98

RESOLUO

Alnea 1
Para que o barramento adaptado as resistncias RTx tm de ser iguais impedncia
caracterstica de linha.

Z0

22,5 10 9 20
4 10 12 20

75 .

Para minimizar o consumo de potncia a tenso DC imposta na linha pelo circuito activo deve
estar a meio entre VCC e a massa, ou seja, 2,5 V. Isso consegue-se fazendo RA igual a RB que
devem portanto valer 1 k.

Alnea 2
No nvel alto a tenso na resistncia da terminao, medida da esquerda para a direita, 2,5 V
(5 2,5) enquanto que no nvel lgico baixo a tenso -2,5 V (0 2,5). Em ambos os casos a
potncia dissipada na resistncia da terminao a mesma:

PD

U2 2,52

83,(3) mW .
75
R

Alnea 3
Como o barramento tem 20 cm e cada placa est espaada de 2,5 cm podem existir ao
mesmo tempo 8 placas no barramento.
A introduo de uma placa no barramento faz aumentar a capacidade deste. Esse aumento
vai alterar a sua impedncia caracterstica que deixar de ser igual impedncia da
terminao e portanto levar a que a linha fique desadaptada. Essa desadaptao traduz-se
na existncia de uma onda reflectida que ao ser somada com a onda incidente vi provocar
uma variao da tenso total ao longo da linha. Essa variao tem que ser menor do que a
margem de rudo admitida para que todos os dispositivos funcionem correctamente.
As margens de rudo neste caso so
NMH VOH VIH VCC 0,7 VCC 0, 3 VCC 0, 3 5 1, 5 V
NML VIL VOL 0, 3 VCC 0 0, 3 5 1, 5 V

A variao da tenso na linha pode ser expressa pelo factor de onda estacionrio
99

Vmax
.
Vmin

No caso do nvel lgico alto a onda incidente vale 5 V (VOH). Assumindo que a variao positiva
igual variao negativa e tem um valor igual margem de rudo (1,5 V), tem-se um valor
mximo para o factor de onda estacionria de

5 1,5
1,86 .
5 1,5

No caso do nvel lgico baixo a onda incidente vale 0 V (VOL) e portanto no poder haver
onda reflectida.
O factor de onda estacionria mximo portanto 1,86. Esse factor, por sua vez, depende da
impedncia caracterstica da linha (Z0) e da impedncia da terminao (ZL):
ZL
Z
0
s
Z0
Z
L

, Z L Z0

.
, Z L Z0

Como a introduo de capacidade na linha vai fazer diminuir o valor da impedncia


caracterstica a expresso que interessa a primeira:

ZL
Z0

, Z L Z0 .

Combinando o valor de s mximo, o valor da impedncia da terminao calculado


anteriormente (75 ) e a expresso para a impedncia caracterstica da linha com a
introduo de 8 placas obtm-se
75
22,5 109 20

1,86 .

4 10 12 20 8 Cx

Resolvendo-se em ordem ao valor da capacidade das placas obtm-se

9
1 22,5 10 20

12

Cx
4
10
20
24,6 pF .
2
8
75

1,86

100

30

Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores

Exerccio Resolvido

Terminao Activa com AMPOP e Transstor


ENUNCIADO

Considere a seguinte terminao de um barramento para sinais com nvel TTL. O barramento
encontra-se completamente adaptado quando se encontra uma nica placa no barramento e
a insero de uma placa no barramento introduz uma capacidade de 40 pF. Os conectores de
barramento encontram-se igualmente espaados.

1.

Dimensione R1 e R2!para que a margem de rudo, em DC, do nvel lgico 1 seja 1,4 V.

2.

Calcule o nmero mximo de placas (n1) no barramento de forma a garantir o


funcionamento lgico correcto do sistema.

RESOLUO

Alnea 1
Para que a margem de rudo no nvel lgico alto seja 1,4 V preciso que a tenso entrada
dos dispositivos, na ausncia de rudo, seja 1,4 V superior a VIH. Tendo em conta o valor de VIH de
2 V necessrio que a tenso na linha seja 3,4 V.
Esse valor de tenso ser imposto pelo circuito activo constitudo pelo amplificador operacional
sendo a tenso no terminal negativo igual do terminal positivo se considerarmos que ele tem

101

um comportamento ideal. Assim sendo a diviso de tenso executada por R1 e R2 tem de ser
3,4 V:

R2
R
5
3,4 1
1 0,47 .
R1 R2
R2 3,4

Podemos escolher, por exemplo, um valor para R2 de 10 k e um valor para R1 de 4,7 k.

Alnea 2
Como o barramento encontra-se adaptado quando s uma placa est ligada a ele, tem-se
L 20
50 ,
C 20 Cx

em que L a impedncia caracterstica da linha (22,5 nH/cm), C a capacidade caracterstica


da linha, que desconhecida, e Cx a capacidade introduzida por uma placa ligada ao
barramento (40 pF). Consegue-se assim determinar a capacidade caracterstica da linha:

1 L 20
1 22,5 10 9 20

Cx
40 1012 7 pF .

2
2

20 50
50
20

Quanto mais placas houver no barramento maior ser a sua capacidade e portanto menor ser
a sua impedncia caracterstica equivalente o que far com que a linha fique desadaptada.
Essa desadaptao provoca a existncia de uma onda reflectida que far com que a tenso
ao longo da linha varie.
Para que o sistema funcione correctamente essa variao, no nvel lgico alto, no poder ser
superior margem de rudo (1,4 V). O factor de onda estacionrio mximo portanto

'1'
smax

3,4 1,4 4,8

2,4 .
3,4 1,4
2

O valor de 3,4 V o valor da tenso na linha imposto pela terminao em DC e sem variaes
devido presena de uma onda reflectida. O valor de 4,8 V o valor mximo que ocorrer na
linha devido onda reflectida e o valor 2 V o valor mnimo que se quer no seja inferior a VIH
para que o sistema funcione correctamente.
No caso do nvel lgico baixo a tenso da onda incidente gerada pelo dispositivo transmissor
ter, no pior caso 0,4 V (VOL). A onda incidente mais a onda reflectida no poder ser maior do
que 0,8 V (VIL). A margem ento de 0,4 V que o mesmo valor que a onda reflectida pode
ter. Como resultado o valor mximo do factor de onda estacionrio

102

'0 '
smax

0,4 0,4
.
0,4 0,4

O pior caso a ter em conta o de um factor de onda estacionria de 2,4.


O factor de onda estacionria, por seu lado, dado por
ZL
Z
0
s
Z0
Z
L

, Z L Z0

.
, Z L Z0

Como a impedncia da linha ser sempre menor que a da carga, tem-se


s

ZL
.
Z0

Inserindo o limite de 2,4 para s, o valor da impedncia da carga de 50 e a expresso para a


impedncia caracterstica da linha tendo em conta a incluso de n1 placas, tem-se
50
22,5 10 9 20

2,4 .

7 10 12 20 n1 40 10 12

Resolvendo em ordem a n1 tem-se

n1

1
40 1012

9
22,5 10 20

12
7
10
20

22,42 .
2
50

2,4

O nmero mximo de placas portanto de 22.

103

You might also like