Professional Documents
Culture Documents
DEELECTRNICADECOMPUTADORES
MESTRADO EM ENGENHARIA ELECTROTCNICA E DE COMPUTADORES
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
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
3.
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.
Alnea 2
O diagrama temporal dos sinais o seguinte.
Alnea 3
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
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.
2.
3.
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;
}
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.
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
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
xk
em que x uma varivel de
k0 k !
N
entrada.
1.
2.
3.
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
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).
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
PAUL DIRAC
15
16
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
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.
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
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
c8
cX16
cY16
1
1
1
1
0
1
0
1
19
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
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.
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
0,3
p0p1p2p3 .
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
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
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.
2.
3.
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 .
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
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):
27
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
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.
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.
4.
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.
32
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
Multiplicador Ripple-Carry
ENUNCIADO
1.
2.
3.
4.
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.
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
35
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 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);
Alnea 4
A arquitectura do somador carry save a seguinte.
38
39
10
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
Multiplicador Srie
ENUNCIADO
1.
2.
3.
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.
Alnea 3
42
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
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
Obtm-se assim
I1 Q0 p
I0 Q0
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
2.
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
WILL DURANT
49
50
12
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
2.
3.
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
52
Alnea 3
53
13
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
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.
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)
2)
3)
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
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)
2)
3)
4)
5)
6)
7)
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
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.
4.
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
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.
2.
3.
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
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.
4.
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
Percentagem
de leituras
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
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.
2.
3.
e inp
respectivamente, 0x0010
0000
e 0x000E
0000. Nestas
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
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
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.
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.
5.
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
32768
2048
Segundo
16384
1024
Terceiro
8162
1024
57344
4096
Total
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
32768
2048
Segundo
16384
2048
Terceiro
8162
2048
57344
6144
Total
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
2.
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.
5.
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.
85
86
CAPTULO 6
Barramentos
LINUS PAULING
87
88
26
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
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.
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,
VT 5
R2
.
R1 R2
.
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
75 .
R
R
1 2 75
R R
2
1
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
1 2
1
1 R2
5
R1 R2
5
R2
3,6
R2 3,6
1
3,6
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
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
92
ZL
Z
0
s
Z0
Z
L
, Z L Z0
.
, Z L Z0
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
1,4
n 22,5 10 3
4 3,84 .
75
93
27
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
1.
Descreva as vantagens de uma terminao deste tipo, face a uma terminao mais
simples com uma resistncia massa.
2.
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
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
1.
2.
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 .
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
RC 106 C
106 106
10 nF .
R
100
97
29
Electrnica de Computadores
Mestrado em Engenharia Electrotcnica e de Computadores
Exerccio Resolvido
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.
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
ZL
Z0
, Z L Z0 .
1,86 .
4 10 12 20 8 Cx
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
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.
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
Alnea 2
Como o barramento encontra-se adaptado quando s uma placa est ligada a ele, tem-se
L 20
50 ,
C 20 Cx
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
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
, Z L Z0
.
, Z L Z0
ZL
.
Z0
2,4 .
7 10 12 20 n1 40 10 12
n1
1
40 1012
9
22,5 10 20
12
7
10
20
22,42 .
2
50
2,4
103