sistemas digitais - sebenta
Post on 07-Jun-2015
5.213 Views
Preview:
DESCRIPTION
TRANSCRIPT
C - 1
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
CIRCUITOS LÓGICOS BÁSICOS C.1 - INTRODUÇÃO À LÓGICA DIGITAL A informação pode ser veiculada segundo 2 tipos de sinais com características diferentes: sinais analógicos ou sinais digitais. C.1.1 - Características essenciais Sinal analógico - Variação contínua ao longo do
tempo, sem saltos bruscos.
Fig 1
Ex.: saída de um microfone, sinal de vídeo, etc.
C - 2
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Sinal digital - Variação por saltos de uma forma descontínua. Toma apenas um determinado número de valores.
4
3
2
1
0
-1
V
-2
1
0
nível ALTO
nível BAIXO Fig 2
Ex.: informação gravada num CD, fluxo de dados entre um computador e uma impressora, etc. Aos circuitos electrónicos que funcionam baseados apenas em 2 valores de amplitude chamam-se Digitais Binários. Normalmente utiliza-se a lógica positiva que atribui ao valor mais elevado de tensão o nível 1 (ou verdadeiro) e ao valor mais baixo de tensão o nível 0 (ou falso).
C - 3
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
C.1.2 - Circuitos Digitais Binários Uma grande vantagem dos circuitos digitais binários é que com apenas 2 níveis de tensão bem separados consegue-se uma grande imunidade ao ruído. Na figura seguinte apresenta-se uma situação com as correspondências seguintes
Nível 1 → 5 Volt Nível 0 → 0 Volt Ruído → ±1 Volt
0
5
V
0
5
V
t
1.5
3.5
t Fig 3
Se considerarmos que
tensão inferior a 1.5 Volt ⇒ nível 0 tensão superior a 3.5 Volt ⇒ nível 1
então o sinal original corrompido pelo ruído pode ser facilmente regenerado. De notar que um sinal analógico afectado por ruído não pode ser regenerado.
C - 4
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
C.2 - IMPLEMENTAÇÃO DE UM SISTEMA LÓGICO Um circuito digital ou lógico pode ser encarado como uma caixa com n entradas e m saídas que realiza uma determinada função lógica.
Entrada 1
Entrada 2
Entrada n
Saída 1
Saída m
Saída 2Circuito
Lógico
Fig 4
Um circuito lógico pode ser materializado com interruptores, com relés, com electroímans, com díodos, com transistores ou com circuitos integrados. No entanto, tanto as entradas como as saídas apenas podem tomar 2 valores ou estados, opostos um ao outro. Exemplo de um circuito lógico AND realizado com interruptores.
LâmpadaBateria
Interruptores
I1 I2
Fig 5
Neste caso as entradas são os interruptores e podem tomar os valores aberto ou fechado. A saída é uma lâmpada que toma os valores acesa ou apagada.
C - 5
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
C.3 - PORTA "AND" C.3.1 - Generalidades O circuito anterior pode ser representado pela tabela de verdade seguinte.
Entradas Saída I1 I2 L
Aberto Aberto Apagada Aberto Fechado Apagada Fechado Aberto Apagada Fechado Fechado Acesa
Em termos de lógica binária podemos simplificar a tabela anterior se adoptarmos a correspondência seguinte:
Interruptores: Aberto ↔ 0 Fechado ↔ 1 Lâmpada: Apagada ↔ 0 Acesa ↔ 1
Entradas Saída I1 I2 L 0 0 0 0 1 0 1 0 0 1 1 1
Este circuito tem o nome de porta E ou gate AND e realiza a função de produto lógico pois apenas tem saída 1 quando as entradas são ambas 1. C.3.2 - Materialização electrónica O circuito AND pode ser realizado com díodos. Na figura abaixo, as entradas são A e B e a saída é o ponto S.
C - 6
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
5 V
SA
B
Fig 6
Num circuito electrónico os valores 1 e 0 representam tensões. De seguida aplicaremos às entradas deste circuito todas as combinações possíveis de valores lógicos utilizando as seguintes correspondências:
0 volt ↔ 0 lógico 5 volts ↔ 1 lógico
Observando a tensão obtida em S para cada caso, poderemos construir a tabela de verdade deste circuito.
C - 7
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
1º caso: A=B=0
5 V
S
A=0
B=0
0,6 V
Fig 7
Analisando a curva característica do díodo conclui--se que enquanto a tensão no sentido directo for inferior a 0,6V o díodo não conduz. Para além desse valor a corrente aumenta sem que a tensão sofra grande variação. Assim, a tensão na saída S é 0,6V que se encontra na zona do nível lógico 0.
ID
VD
0,6 V
ID
0,6 V
Fig 8
C - 8
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
2º caso: A=1 e B=0 5 V
SA=1
B=0
Fig 9
O díodo da entrada A está ligado aos 5 volts. Isto significa que está ao corte pois o seu ânodo (S) nunca poderá ter uma tensão superior a 5V. Por outro lado o díodo de B está ligado à massa forçando S a ficar a 0,6 V - nível lógico 0. 3º caso: A=B=1
5 V
SA=1
B=1
Fig 10
Nenhum dos díodos conduz pois têm o ânodo e cátodo ligados ao mesmo potencial. Logo a tensão em S é 5V. Tabela lógica ou de verdade de um circuito AND
A B S
C - 9
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
0 0 0 0 1 0 1 0 0 1 1 1
São possíveis outras materializações de circuitos AND utilizando outros componentes electrónicos. No entanto, num projecto de sistemas digitais não interessa conhecer a estrutura interna de cada porta, mas apenas a função lógica por ela realizada. Para além disso é necessário conhecer as características eléctricas das entradas e saídas de cada porta - impedâncias de entrada e saída, correntes de entrada e saída, tempos de propagação. C.3.3 - Simbologia • Símbolos usados para representar os circuitos lógicos AND de 2 e 3 entradas
A
BS
ABC
T
S = A . B
T = A . B . C
Fig 11
C - 10
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Tabela de verdade do circuito AND de 3 entradas
A B C T 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1
C.4 - PORTA "OR" C.4.1 - Generalidades O circuito Inclusive OR ou simplesmente OR é outro elemento lógico básico. Exemplo de implementação electromecânica
LâmpadaBateria Interruptores
I1
I2
Fig 12
C - 11
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Tabela de verdade correspondente
Entradas Saída I1 I2 L 0 0 0 0 1 1 1 0 1 1 1 1
C.4.2 - Implementação electrónica Na implementação seguinte mantém-se o valor lógico 0 para 0 volt e o valor lógico 1 para 5 volts.
S
A
B
C
Fig 13
Se todas as entradas forem ligadas à massa, a saída é 0 uma vez que não há tensão no circuito. Se uma das entradas for ligada a 5 volts (nível lógico 1), o díodo respectivo fica polarizado directamente (conduz). Logo a saída S terá uma tensão de 4,4 volts devido à queda de tensão no díodo de 0,6 volt, o que corresponde ao nível 1 na saída.
C - 12
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
5 V
S
A=1
B=0C=0
4,4 V
0,6 V
Fig 14
Basta, portanto, que uma entrada seja 1 para que a saída tenha o valor 1. É o circuito lógico OR. C.4.3 - Simbologia Símbolos usados para representar os circuitos OR de 2 e 4 entradas
A
BS
ABCD
T T = A + B + C +
S = A + B
Fig 15
Tabela de verdade do circuito OR de 2 entradas
A B S 0 0 0 0 1 1 1 0 1 1 1 1
C.5 - CIRCUITO "NOT" OU INVERSOR C.5.1 - Generalidades
C - 13
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Um circuito seguinte representa uma negação realizada a partir de um relé.
S
E
Fig 16
A entrada E deste circuito, quando actuada (nível lógico 1), puxa o interruptor. Neste caso o circuito fica aberto e a lâmpada apaga-se saída S a 0. Quando a entrada não está actuada (nível lógico 0) o circuito está fechado, mantendo-se acesa a lâmpada. A tabela de verdade deste circuito é a tabela da negação.
E S 0 1 1 0
C - 14
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
C.5.2 - Materialização electrónica Não é possível realizar um circuito NOT com díodos, mas pode utilizar-se um transistor.
VC
BV
5 V
β=20
RB=10K
RC=1K Ω
Ω
Cβ
BI = I
I =Cmáx
5 V
Ω1K= 5 mA
IC
BI
I =C
=RB
VB-0,6V V
B-0,6V
Ω10K
BPara V > 0,6V :
0,6V
Fig 17
Aplicando 0 volt em VB, a corrente de base IB é nula pois a junção base-emissor precisa de 0,6 volts para conduzir. Deste modo IC também é nula, pois IC=βIB. Nesta situação o transistor não conduz (está ao corte) e a tensão VC é 5V. Aplicando 5 volts na entrada VB o transistor passa a conduzir. A queda de tensão na junção base-emissor é de 0,6 volts, logo a queda de tensão em RB é de 4,4 volts. Assim a corrente IB será:
I 4,4V10k
0,44mAB = =Ω
Pela expressão IC=βIB a corrente IC seria 8,8mA que é um valor superior ao seu valor máximo. Diz-se neste caso que o transistor está saturado. A corrente IC atinge o seu valor máximo para IB=0,25mA que corresponde a uma tensão VB=3,1 V. A este valor máximo de IC corresponde o valor mais baixo de VC.
C - 15
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Característica entrada-saída do circuito com transistor
VB
CV
0,6 3,1 5V
5
4
3
2
1
Fig 18
A electrónica analógica utiliza a zona linear (intermédia) do funcionamento do transistor. Em sistemas digitais utiliza-se o transistor como chave pelo que apenas são relevantes as zonas de funcionamento em que o transistor está cortado ou saturado. Símbolo do inversor e variantes
Fig 19
C - 16
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
C.6 - CIRCUITOS LÓGICOS INTEGRADOS Circuito integrado - bloco de cerâmica cinzenta ou preta com o formato paralelipipédico ou prismático. As dimensões variam de poucos mm até alguns cm. O número de pernos vai de algumas unidades até várias dezenas. Os circuitos integrados mais simples contêm apenas algumas portas lógicas elementares. Exemplo de circuitos integrados da família TTL série 7400. • 4 portas AND de 2 entradas
1 2 3 4 5 6 7
891011121314
VCC
GND
7408
A B S S = A . B Fig 20
• 4 portas OR de 2 entradas
1 2 3 4 5 6 7
891011121314
VCC
GND
A B S
7432
S = A + B Fig 21
C - 17
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
• 6 portas NOT
1 2 3 4 5 6 7
891011121314
VCC
GND
A S
7404
S = A
Fig 22 • 3 portas AND de 3 entradas
1 2 3 4 5 6 7
891011121314
VCC
GND
A B SC S = A . B . C
7411
Fig 23
C - 18
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
C.7 - PORTA "NAND" O circuito NAND é composto por 2 circuitos básicos: o circuito NOT precedido do circuito AND. Símbolo e equação lógica do circuito NAND
A
BS S = A . B
Fig 24
A bolinha significa uma negação, pelo que a tabela de verdade do circuito NAND se deduz de imediato.
A B S 0 0 1 0 1 1 1 0 1 1 1 0
C.8 - PORTA "NOR" O circuito NOR é um circuito OR com a saída negada, pelo que o seu símbolo corresponde a um circuito NOT precedido de um OR.
A
BS S = A + B
Fig 25
Tabela de verdade do circuito NOR
A B S 0 0 1 0 1 0 1 0 0 1 1 0
B - 1
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
ÁLGEBRA DE BOOLE B.1 - DIAGRAMA DE VENN No século passado Georges Boole desenvolveu uma teoria matemática com base nas leis da lógica - a Álgebra de Boole - cuja aplicação nos circuitos digitais e computadores é de primordial importância. A lógica matemática tem por base a teoria dos conjuntos, podendo utilizar-se meios gráficos como forma de representar propriedades. Diagrama de Venn
A A
Fig 26
Admitindo que o conjunto Universo é o dos números inteiros, pode definir-se:
A - conjunto dos números pares B - conjunto dos múltiplos de 3
Aplicando sobre estes conjuntos as operações lógicas básicas, obtém-se:
B - 2
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
A.B - Conjunto dos números pares e múltiplos de 3 Conjunção, intersecção ou produto lógico
A B
Fig 27
A+B - Conjunto dos números pares ou múltiplos de 3 União, disjunção ou soma lógica
A B
Fig 28
A_
- Conjunto dos números ímpares Complemento ou negação
A B
Fig 29
B - 3
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
B.2 - AXIOMAS DA ÁLGEBRA DE BOOLE Sendo B≠∅, definem-se as propriedades seguintes para a estrutura B, +, .. B.2.1 - Soma e produto são operações fechadas
∀
∀
∈ ∈
∈ ∈
a, b B : a + b B
a, b B : a . b B
B.2.2 - Comutatividade
∀
∀
∈
∈
a, b B : a + b = b + a
a, b B : a . b = b . a
B.2.3 - Existência de elemento neutro
∃ ∀
∃ ∀
∈ ∈
∈ ∈
u B, a B : a + u = a
v B, a B : a . v = a
B.2.4 - Distributividade das duas operações uma em relação à outra
∀
∀
∈
∈
a, b, c B : a + (b . c) = (a + b) . (a + c)
a, b, c B : a . (b + c) = (a . b) + (a . c)
B.2.5 - Complementação
∀ ∃
∀ ∃
∈ ∈
∈ ∈
a B, a B : a + a = v
a B, a B : a . a = u
_ _
_ _
B - 4
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
B.3 - TEOREMAS DA ÁLGEBRA DE BOOLE B.3.1 - Unicidade dos elementos neutros • O elemento u é único. Demonstração Sejam u1 e u2 dois elementos neutros da soma.
u1 + u2 = u1 (B.2.3) u1 + u2 = u2 (B.2.3) u1 + u2 = u2 + u1 (B.2.2) u1 = u2
• O elemento v é único. Demonstração Sejam v1 e v2 dois elementos neutros do produto.
v1 . v2 = v1 (B.2.3) v1 . v2 = v2 (B.2.3) v1 . v2 = v2 . v1 (B.2.2) v1 = v2
B - 5
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
B.3.2 - Idempotência
• ∀ ∈a B : a + a = a Demonstração
a + a = (a + a) . 1 (B.2.3) a + a = (a + a) . (a + a) (B.2.5) = a + (a . a) (B.2.4) = a + 0 (B.2.5) = a (B.2.3)
• ∀ ∈a B : a . a = a Demonstração
a . a = (a . a) + 0 (B.2.3) a . a = (a . a) + (a . a) (B.2.5) = a . (a + a) (B.2.4) = a . 1 (B.2.5) = a (B.2.3)
B.3.3 - Elementos absorventes
• ∀ ∈a B : a +1 = 1 Demonstração
a + 1 = (a + 1) . 1 (B.2.3) = (a + 1) . (a + a) (B.2.5) = a + (1 . a) (B.2.4) = a + a (B.2.3) = 1 (B.2.5)
B - 6
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
• ∀ ∈a B : a . 0 = 0 Demonstração
a . 0 = (a . 0) + 0 (B.2.3) = (a . 0) + (a . a) (B.2.5) = a . (0 + a) (B.2.4) = a . a (B.2.3) = 0 (B.2.5)
B.3.4 - Absorção
• ∀ ∈a, b B : a + (a . b) = a Demonstração
a + (a . b) = (a . 1) + (a . b) (B.2.3) = a . (1 + b) (B.2.4) = a . 1 (B.3.3) = a (B.2.3)
• ∀ ∈a, b B : a . (a + b) = a Demonstração
a . (a + b) = (a + 0) + (a + b) (B.2.3) = a + (0 . b) (B.2.4) = a + 0 (B.3.3) = a (B.2.3)
B - 7
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
B.3.5 - Princípio da dualidade Toda a afirmação ou identidade algébrica dedutível dos axiomas e definições de uma Álgebra de Boole permanece válida se as operações (+) e (.), e os elementos neutros u e v forem trocados. Este princípio resulta da simetria das definições e axiomas em relação às duas operações e aos dois elementos neutros. B.3.6 - Unicidade do elemento a Demonstração Supor que a1 e a2 são ambos complementos de a.
a1 . 1 = a1 (B.2.3) a1 . (a + a2) = a1 (B.2.5) a1 . a + a1 . a2 = a1 (B.2.4) 0 + a1 . a2 = a1 (B.2.5) a1 . a2 = a1 (B.2.3) a2 . a1 = a1 (B.2.2) a2 . a1 + 0 = a1 (B.2.3) a2 . a1 + a2 . a = a1 (B.2.5) a2 . (a1 + a) = a1 (B.2.4) a2 . 1 = a1 (B.2.5) a2 = a1 (B.2.3)
B.3.7 - Involução
Pela definição de complemento conclui-se que
a = a B.3.8 - Leis de De Morgan
1 2 = 1 2a + a a . a 1 2 = 1 2a . a a + a
B - 8
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Prova-se o teorema recorrendo às igualdades
(a1 + a2) + (a1 . a2) = 1 (a1 + a2) . (a1 . a2) = 0
que por B.3.6 e B.2.5 permitem concluir que a1 . a2 é o complemento único de a1 + a2. Para a demonstração recorre-se aos lemas:
L1a : a1 + (a1 + a2) = 1 L1b : a1 . (a1 . a2) = 0
Demonstração de L1a a1 + (a1 + a2) = 1 . [a1 + (a1 + a2)] (B.2.3) = (a1 + a1).[a1 + (a1 + a2)] (B.2.5) = a1 + [a1 . (a1 + a2)] (B.2.4) = a1 + a1 (B.3.4) = 1 (B.2.5) A demonstração de L1b é dual de L1a.
B - 9
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Demonstração de B.3.9 (a1+a2)+(a1.a2)=[(a1+a2)+a1].[(a1+a2)+a2] (B.2.4) = 1 . 1 (L1a) = 1 (B.2.3) (a1+a2).(a1.a2)=a1.(a1.a2)+a2.(a1.a2) (B.2.4) = 0 . 0 (L1a) = 0 (B.2.3) Por B.2.5 e B.3.6 conclui-se que
1 2 = 1 2a + a a . a A demonstração de 1 2 = 1 2a . a a + a é dual da anterior. As leis de De Morgan generalizam-se para n elementos.
1 ... n = 1 ... na + + a a . . a 1 ... n = 1 ... na . . a a + + a
B.3.9 - Associatividade
∀
∀
∈
∈
a, b, c B : (a + b) + c = a + (b + c)
a, b, c B : (a . b) . c = a . (b . c)
B - 10
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
B.4 - ÁLGEBRA DE BOOLE A DOIS VALORES A Álgebra de Boole a dois valores baseia-se na utilização de 2 estados - 0 e 1, ou verdadeiro e falso - tal como o funcionamento dos circuitos digitais binários. Convenciona-se representar o conjunto vazio por 0 e o universo por 1. B.4.1 - Tabelas das operações
Soma lógica Produto lógico Complementação
0 + 0 = 0 0 + 0 = 0 0 + 1 = 1 0 + 1 = 0 0 = 1 1 + 0 = 1 1 + 0 = 0 1 = 0 1 + 1 = 1 1 + 1 = 1
B.4.2 - Leis da Álgebra de Boole a 2 valores Soma lógica Produto lógico
El. neutro 0 + a = a 1 . a = a El. absorvente 1 + a = 1 0 . a = 0 Idempotência a + a = a a . a = a Complementaridade a + a = 1 a . a = 0 Comutatividade a + b = b + a a . b = b . a Associatividade a + (b + c) = (a + b) + c a . (b . c) = (a . b) . c Distributividade a + b.c = (a + b).(a + c) a.(b + c) = a.b + a.c Absorção a + a.b = a a.(a + b) = a Absorção a + a.b = a + b a.(a + b) = a.b Leis de De Morgan 1 2 1 2a + a = a . a 1 2 1 2a . a = a + a
Leis de De Morgan 1 n 1 na + ... + a = a . ... . a 1 n 1 na . ... . a = a + ... + a
B - 11
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
B.4.3 - Simplificação algébrica de funções lógicas A um circuito lógico corresponde uma determinada expressão lógica ou booleana. Simplificar uma expressão corresponde a chegar-se a um circuito menos complexo e com menos portas. • Exemplo de simplificação
d = c.b.a + c.b.a + b.a + c.b.a Utilizando as propriedades comutativa (B.2.2) e distributiva (B.2.4) obtém-se
d = c.a.(b + b) + b.a.(1 + c) Pela propriedade de complementação (B.2.5) e elemento absorvente (B.3.3) vem
d = c.a.1 + b.a.1 Assim
d = c.a + b.a O método algébrico não garante a obtenção da expressão mais simples. Para tal utiliza-se um método gráfico de simplificação.
B - 12
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
B.4.4 - Aplicação da Álgebra de Boole aos circuitos digitais • Exemplo de aplicação da propriedade do elemento neutro do produto lógico para transformar uma porta AND de 3 entradas numa porta AND de 2 entradas.
AB
S1
Fig 30
A equação do circuito é S = 1 . A . B A saída S só é 1 quando A e B são simultaneamente 1. Logo pode-se considerar que o circuito acima é equivalente a um circuito AND de 2 entradas.
AB
S1 A
BS Fig 31
Prova-se deste modo que o 1 lógico é o elemento neutro do AND ou produto lógico. • Se ligarmos uma das entradas do circuito AND ao 0 lógico, a equação S = A.B.C fica
S = A.B.0 Pela definição do AND basta haver uma entrada a zero para que a saída seja 0. Assim vem S = A.B.0 = 0. Esta propriedade indica que 0 é o elemento absorvente do circuito AND ou produto lógico. • Uma outra aplicação da propriedade do elemento neutro permite a transformação de um circuito NAND numa porta NOT.
B - 13
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
SA
1
S = A . 1
Fig 32
Sendo A.1 = A a equação do circuito reduz-se a
S = A Logo, o circuito anterior é equivalente a uma negação, desde que a outra entrada esteja ligada ao 1 lógico. • Outra forma de realizar uma negação pode ser com base num circuito NAND ou NOR.
AS
AS
S = A . A = A
S = A + A = A
Fig 33 • Uma outra propriedade, a involução, pode ser verificada com 2 circuitos NOT.
A A AS
Fig 34
B - 14
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Quando A=0 então A=1 e A=0, pois é a negação de A. Quando A=1 então A=0 e A=1, pois é a negação de A. Fica assim provado que duas negações seguidas formam uma afirmação, ou seja
A = A • Também as leis de De Morgan podem ser aplicadas aos circuitos digitais. A 1ª lei de De Morgan diz que um AND com saída negada é equivalente a um OR com entradas negadas.
TA
BS
S = A . B
A
B
T = A + B Fig 35
O 2º circuito é dual do 1º mas são ambos NAND. Tabela de verdade dos símbolos NAND
A B A . B A + B 0 0 0 . 0 = 0 = 1 0 + 0 = 1 + 1 = 1 0 1 0 . 1 = 0 = 1 0 + 1 = 1 + 0 = 1 1 0 1 . 0 = 0 = 1 1 + 0 = 0 + 1 = 1 1 1 1 . 1 = 1 = 0 1 + 1 = 0 + 0 = 0
As duas colunas da direita são iguais pelo que fica provada a igualdade
A . B = A + B A 2ª lei de De Morgan afirma que um OR com a saída negada é equivalente a um AND com as entradas negadas.
B - 15
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
TA
BS
A
B
T = A . BS = A + B Fig 36
O 2º circuito é dual do 1º mas são ambos NOR. Tabela de verdade dos símbolos NOR
A B A + B A · B 0 0 0 + 0 = 0 = 1 0 . 0 = 1 . 1 = 1 0 1 0 + 1 = 1 = 0 0 . 1 = 1 . 0 = 0 1 0 1 + 0 = 1 = 0 1 . 0 = 0 . 1 = 0 1 1 1 + 1 = 1 = 0 1 . 1 = 0 . 0 = 0
As duas colunas da direita são iguais pelo que fica provada a igualdade
A + B = A . B • Exemplo de realização de um AND a partir apenas de portas NOR.
A1
2
3B
A
B
A + B
A + B = A . B
Fig 37
Os circuitos NOR 1 e 2 são utilizados para fazer as negações dos sinais de entrada.
Tem-se assim à entrada do NOR 3: A e B.
Considerando o NOR 3 composto por um OR seguido de um NOT, à saída do OR tem-se a soma A + B.
À saída do circuito total tem-se então A + B. A 2ª lei de De Morgan diz que A + B = A . B .
B - 16
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Do ponto de vista prático pode utilizar-se a seguinte regra: o 2º membro obtém-se do 1º dividindo em duas a barra por cima do sinal (+) e trocando-o por (·). Aplicando esta regra à expressão A + B obtém-se
A . B e por sua vez é A · B .
Do mesmo modo pode realizar-se um circuito OR a
qu • partir apenas de portas NAND.
A
B
A
B
A . B = A + B
Fig 38
licando a 1ª lei de De Morgan divide-se a barra e Ap
substitui-se o (·) pelo (+).
A . B = A + B = A + B • Exemplo de cir p stemas digitais cuito tí ico em si
A
B
C
D
A.B
C.D
S = A.B + C.D
Fig 39
circuito da figura acima tem a equação
S = A.B + C.D
O
B - 17
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
ra realizar este circuito é necessário utilizar 2
ravés de um artifício pode alterar-se esta
bendo que 2 negações seguidas são uma afirmação
Pacaixas de circuitos integrados: uma com portas OR e outra com portas AND. Atsituação, uniformizando o tipo de portas a usar. Savem
A
B
C
D
A.B
C.D
S = A.B + C
Fig 40
esar do circuito ser diferente, a função lógica Ap
realizada é a mesma.
B - 18
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Substituindo agora a porta da direita (NAND) por outra equivalente tem-se
A
B
C
D
A.B
C.D
S = (A.B) . (C.D)
Fig 41
Aplicando a 1ª lei de De Morgan à saída deste circuito seguida da involução fica
A.B . C.D = A.B + C.D = A.B + C.D Os circuitos NAND e NOR são os mais largamente utilizados pois permitem construir quaisquer circuitos básicos, nomeadamente AND, OR e NOT. Para além disso têm uma estrutura electrónica mais simples o que é vantajoso em termos de espaço e energia consumida. B.4.5 - Portas "XOR" e Equivalência Um circuito que existe também na forma integrada é o somador de 1 bit, "ou exclusivo" ou XOR (exclusive or).
A
BS S = A ⊕ B
Fig 42
Este circuito tem saída 1 quando uma das entradas é 1, mas tem saída 0 se ambas as entradas forem simultaneamente 0 ou 1. Tabela de verdade do circuito XOR
A B S 0 0 0 0 1 1 1 0 1
B - 19
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
1 1 0 Como a saída é 1 quando A=0 e B=1 ou A=1 e B=0, então o circuito XOR pode ser realizado pela expressão seguinte:
S = A.B + A.B
A B S = A.B + A.B 0 0 0.0 + 0.0 = 0 + 0 = 0 0 1 0.1 + 0.1 = 1 + 0 = 1 1 0 1.0 + 1.0 = 0 + 1 = 1 1 1 1.1 + 1.1 = 0 + 0 = 0
Para a realização deste circuito são necessários dois AND, um OR e dois NOT.
A
B
A.B
S = A.B + A
A.B Fig 43
Pode, no entanto, realizar-se a mesma função XOR só com circuitos NAND.
A
B
S = (A.A.B).(B.A.B
A.A.B
B.A.B
A.B
Fig 44
Confirmação:
A.A.B . B.A.B = A.A.B + B.A.B (B.3.8) = A.A.B+B.A.B (B.3.7) = A.(A + B) + B.(A + B) (B.3.8) = A.A + A.B + B.A + B.B (B.2.4) = 0 + A.B + B.A + 0 (B.2.5)
B - 20
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
= A.B + B.A (B.2.3) Outro circuito simples existente na forma de circuito integrado é o circuito equivalência. É um circuito com 2 entradas que tem saída 1 quando A=B, ou seja, quando A=1 e B=1 ou A=0 e B=0. O circuito equivalência tem uma tabela de verdade que é a negação da tabela do cirucito NOR, logo pode obter-se negando a saída do NOR.
A
BS S = A B = A B⊕ ⊗
Fig 45
Tabela de verdade do circuito equivalência
A B S 0 0 1 0 1 0 1 0 0 1 1 1
B.4.6 - Funções booleanas de 2 variáveis Tabela de funções
x1 0 1 0 1 Designação x2 0 0 1 1 y0 0 0 0 0 zero y1 0 0 0 1 produto lógico, ou AND (y = x1.x2) y2 0 0 1 0 inibição, ou NIX (y = x1 NIX x2) y3 0 0 1 1 x2 (y = x2) y4 0 1 0 0 inibição, ou NIX (y = x2 NIX x1) y5 0 1 0 1 x (y = x) y6 0 1 1 0 soma módulo 2, ou exclusivo, ou
XOR (y = x1 ⊕ x2) y7 0 1 1 1 soma lógica, ou OR (y = x1 OR x2) y8 1 0 0 0 NOR (y = x1 NOR x2 ,
ou y = x1 + x2) y9 1 0 0 1 equivalência (y = x1 ⊗ x2) y10 1 0 1 0 complementação de x1, (y = x1) y11 1 0 1 1 implicação material (x1 ⇒ x2)
B - 21
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
y12 1 1 0 0 complementação de x2, (y = x2) y13 1 1 0 1 implicação material (x2 ⇒ x1) y14 1 1 1 0 NAND (y = x1 NAND x2 ,
ou y = x1 . x2) y15 1 1 1 1 unidade ou identidade Estas funções podem ser escritas com base nas 3 operações básicas AND, OR e NOT.
y0 = 0 y8 = x1 + x2 y1 = x1.x2 y9 = x1.x2 + x1.x2 y2 = x1.x2 y10 = x1 y3 = x2 y11 = x1 + x2 y4 = x2.x1 y12 = x2 y5 = x1 y13 = x1 + x2 y6 = x1.x2 + x1.x2 y14 = x1 . x2 y7 = x1 + x2 y15 = 1
T - 1
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
SISTEMAS DE NUMERAÇÃO N.1 - INTRODUÇÃO Sendo os circuitos digitais constituídos por elementos dotados de 2 estados distintos, o sistema de numeração binário tem um papel importante no seu estudo. Os sistemas octal (base 8) e hexadecimal (base 16) desempenham também um papel importante para compactar a escrita de um número binário. N.2 - CONVERSÃO DA BASE B PARA A BASE 10 Seja X um número com a seguinte representação na base b.
X = an-1an-2 ... a0,a-1 ... a-p (b) Cada um dos n+p símbolos ai exprime um número inteiro entre 0 e b-1, tendo um peso igual a bi. O valor numérico de X será então: X = an-1b
n-1+an-2bn-2+...+aib
i+...+a0b0+a-1b
-1+...+a-pb-p
Esta expressão permite conhecer a representação decimal de qualquer número desde que se conheça a representação decimal de b e ai. Exemplos 111000,1100101(2) = 2
5 + 24 + 23 + 2-1 + 2-2 + 2-5 + 2-7 = 56,7890625(10) 55,46(8) = 5×81 + 5 + 4×8-1 + 6×8-2 = 45,59(10)
T - 2
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Símbolos usados nas bases 2, 8, 10 e 16
Base Símbolos 2 0, 1 8 0, 1, 2, 3, 4, 5, 6, 7 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 16 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, A, B, C, D, E, F Exemplo 2D,9A(16) = 2×16 + 13 + 9×16-1 + 10×16-2 = 45,60... Tabela de potências de 2
2i i 2-i 2 1 0,5 4 2 0,25 8 3 0,125 16 4 0,0625 32 5 0,03125 64 6 0,015625 128 7 0,0078125 256 8 0,00390625 512 9 0,001953125 1024 10 0,0009765625 2048 11 0,00048828125 4096 12 0,000244140625
T - 3
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
N.3 - CONVERSÃO DA BASE 10 PARA A BASE B As partes inteira e fraccionária do número são consideradas separadamente. N.3.1 - Método da divisão-multiplicação Parte inteira Considere-se um número cuja parte inteira é constituída por 5 símbolos
I = a4a3a2a1a0(b) I = a4b
4 + a3b3 + a2b
2 + a1b1 + a0b
0 Se se dividir I por b e todos os quocientes sucessivamente obtidos, também por b obtém-se
I = b.(a4b3 + a3b
2 + a2b + a1) + a0 = b.Q1 + a0 Q1 = b.(a4b
2 + a3b + a2) + a1 Q2 = b.(a4b + a3 ) + a2 Q3 = b.a4 + a3 Q4 = a4
Verifica-se que os sucessivos restos correspondem aos símbolos que representam I no sistema de base b. Deste modo é possível a conversão de um sistema onde se tenha prática operatória, para qualquer outro sistema. Basta efectuar as operações no primeiro sistema e saber representar no segundo sistema os restos das divisões. Exemplo: Converter 66(10) para a base 2
66 2 06 33 20 13 16 2 1 0 8 2 0 4 2
T - 4
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
0 2 2 0 1
66(10) = 1000010(2)
Para hexadecimal será
66 1602 4
66(10) = 42(16)
Parte fraccionária Considere-se a parte fraccionária do número com 4 símbolos
F = 0,a-1a-2a-3a-4 Multiplicando-se sucessivamente F e as partes fraccionárias resultantes por b vem
b.F = b.(0,a-1a-2a-3a-4) = a-1,a-2a-3a-4 b.(0,a-2a-3a-4) = a-2,a-3a-4 b.(0,a-3a-4) = a-3,a-4 b.(0,a-4) = a-4
Obtém-se uma sucessão de números cujas partes inteiras correspondem aos sucessivos símbolos de representação de F. Exemplo: Passar 0,468(10) para base 2
2 × 0,468 = 0,936 2 × 0,936 = 1,872 2 × 0,872 = 1,744 2 × 0,744 = 1,488 2 × 0,488 = 0,976 2 × 0,976 = 1,952 2 × 0,952 = 1,904 2 × 0,904 = 1,808
0,468(10) = 0,01110111...(2)
T - 5
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Salvo algumas excepções a dízima na conversão da base 10 para a base 2 é infinita. N.3.2 - Método da subtracção Subtrai-se, do número decimal dado, o peso da base mais elevado possível, o que dá um 1 na posição binária correspondente a esse peso. Continuam-se as subtracções até que o número dado tenha um valor inferior à base. Exemplo: Converter 4645(10) para base 2 O peso de base 2 mais elevado que se pode subtrair de 4645 é 212=4096, que dá 1 na 13ª (12+1) posição à esquerda da vírgula. Resta 549 (4645-4096), sendo agora o peso mais elevado 29=512, dando um 1 na 10ª posição. Fica 37; subtraindo 25=32 dá um 1 na 6ª posição. Fica 5; subtraindo 22=4 dá um 1 na 3ª posição. Fica 1 que dá origem a um 1 na primeira posição. Então:
4645(10) = 1001 000 100 101(2) Se o número for fraccionário, utiliza-se o mesmo método mas com pesos inferiores a 1. Por exemplo 0,52(10) dá origem a 0,100 001 010(2). N.3.3 - Capacidade de numeração Um sistema de base b em que os números inteiros são representados por uma quantidade n de símbolos tem uma capacidade de numeração
m = bn Para que na mudança de base não resulte uma redução da capacidade de numeração, deve observar-se
b'n' ≥ bn
T - 6
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
em que b' é a nova base e n' os símbolos do número inteiro de base b'. • Em particular na conversão de decimal em binário deve ter-se para a parte inteira
2n' ≥ 10n para o que é suficiente
n' ≥ 3,33.n
T - 7
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Critério de paragem de dízimas infinitas na conversão de base 10 para base 2 Admitindo para um número na base 10 um erro igual ou inferior ao peso da posição menos significativa (10-p), deve observar-se para a posição menos significativa da posição binária um erro
2-p ≤ 10-p ⇒ p' ≥ 3,33.p Portanto, se o número se escrever com p símbolos na base 10, deve-se escrever com p' símbolos na nova base, que para o caso da base 2 será p' ≥ 3,33p. Exemplo: Converter 0,468(10) para base 2
0,468(10) = 0,011 101 1110(2) pois p=3, p' ≥ 3,33×3=9,99, que se arredonda para o inteiro imediatamente superior, ou seja p'=10. Exemplo: Converter 0,52(10) para base 2
0,52(10) = 0,100 0011(2) pois p=2 ⇒ p'=7.
T - 8
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
N.4 - SISTEMA BINÁRIO, OCTAL E HEXADECIMAL N.4.1 - Relação entre as bases 8 e 2 Considerem-se 3 símbolos sucessivos dum número binário. Seja 23k o peso do menos significativo.
a3k+2.23k+2 + a3k+1.2
3k+1 + a k.23k = 3
(a3k+2.22 + a3k+1.2
1 + a3k.20).23k =
(a3k+2.22 + a3k+1.2
1 + a3k.20).8k
A expressão entre parentesis tem um valor correspondente a um símbolo do sistema octal, com a representação binária
a3k+2 a3k+1 a3k A representação binária dos 8 símbolos do sistema octal é
Octal Binário0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1
Usando esta correspondencia a conversão mútua binário-octal é imediata.
T - 9
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Dado um número na forma binária, converte-se em octal do seguinte modo: • decompõe-se o número a partir da vírgula nos dois sentidos, em grupos de 3 símbolos; • quando o número de símbolos não for múltiplo de 3, completa-se à esquerda e à direita com zeros; • substitui-se cada grupo pelo respectivo símbolo octal. A conversão inversa é evidente. Exemplos
111000,110010100(2) = 111 000,110 010 100(2)= 70,624(8)
1 110,101 10 (2) = 001 110,101 100(2) = 16,54(8)
N.4.2 - Relação entre as bases 16 e 2 Consideram-se agora grupos de 4 dígitos para a conversão hexadecimal-binário. Os sistemas octal e hexadecimal utilizam-se normalmente como representação abreviada do sistema binário, permitindo reduzir o número de símbolos a 1/3 e 1/4 respectivamente.
T - 10
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Relação entre os símbolos hexadecimais e binários
Hexadecimal Binário 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 A 1 0 1 0 B 1 0 1 1 C 1 1 0 0 D 1 1 0 1 E 1 1 1 0 F 1 1 1 1
A conversão decimal-binário também é muito facilitada por qualquer dos 2 processos seguintes:
• Conversão decimal-octal Conversão octal-binário • Conversão decimal-hexadecimal Conversão hexadecimal-binário
Exemplo: Converter 54,1(10) para base 2
54,1(10) = 66,06(8) 66,06(8) = 110 110,000 110(2)
Para a parte fraccionária p(10)=1, basta p'(2)=4, portanto
54,1(10) = 110 110,000 1(2) N.5 - ESTUDO DE ALGUNS CÓDIGOS N.5.1 - Teoria dos códigos - definições Dada uma fonte de informação caracterizada por m mensagens
T - 11
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
M1 M2 ... Mi ... Mm e dado um conjunto de b símbolos chamado alfabeto
s1 s2 ... si ... sb faz-se corresponder a cada mensagem Mi um arranjo diferente Xi desses símbolos
M1 → X1 (s1 s2 s3 s4) M2 → X2 (s1 s3 s5) ..................... Mi → Xi (s1 s2 s3 s5) ..................... Mm → Xm (s1)
A esta lei de correspondência chama-se código. Cada arranjo de símbolos é uma palavra. Ao número b de símbolos distintos utilizados chama--se valência do código. Ao número n de símbolos existente numa palavra chama-se comprimento da palavra. Por exemplo, o comprimento da palavra X2 no código anterior é 3. Normalmente admite-se que as mensagens são independentes e equiprováveis e formam-se códigos em que todas as palavras têm o mesmo comprimento - códigos regulares. Neste caso, o número máximo de palavras que é possível formar é bn. Ter-se-à sempre a desigualdade
m ≤ bn, ou seja n ≥ log mlog b
O comprimento mínimo das palavras será então
nmín = log mlog b
T - 12
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Redundância define-se como
R = n-nnmín
Quando o comprimento das palavras é mínimo R=0. Quando o comprimento tende para infinito, R tende para 1. Num código redundante (R>0) o número de símbolos por palavra é superior ao estritamente necessário. No caso de nmín ser fraccionário, a redundância do código será maior que 0, pois tem que se usar um comprimento superior a nmín. A redundância pode ser aumentada intencionalmente no sentido de preservar a quantidade de informação, quando o ruído produz a destruição de alguns símbolos. A redundância constitui pois um meio de reduzir o efeito do ruído. N.5.2 - Formação de códigos regulares Dado um alfabeto de b símbolos formam-se bn palavras distintas de comprimento n. O número de maneiras como essas bn palavras se ordenam é (bn)!. Podem assim formar-se (bn)! códigos regulares diferentes. Pode obter-se um novo código, a partir de um código dado, trocando duas linhas, duas colunas ou dois símbolos. No exemplo abaixo, cada matriz representa um código diferente e cada linha uma palavra de código, sendo que o número de colunas é igual ao comprimento das palavras e o número de linhas igual ao número de mensagens. Exemplo: Partindo do código de valência 3
A B C A C B
T - 13
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
A C B pode formar-se outro, A B C A A B por troca das duas A A B A B A primeiras linhas: A B A A A A A A A B B A B B A
por troca das duas últimas colunas:
A C B B A C A B C B C A A B A ou por troca dos B B A A A B símbolos A e B: B A B A A A B B B B A B A A B
N.5.3 - Códigos ponderados e não ponderados Os códigos dizem-se ponderados quando cada símbolo tem um significado quantitativo dependendo da coluna em que se encontre. Os sistemas de numeração são exemplos de códigos ponderados. A linguagem escrita é um código não ponderado. N.5.4 - Códigos contínuos N.5.4.1 - Adjacência Considerando um conjunto ordenado de b símbolos
X1 X2 X3 ... Xi ... Xb-1 Xb Diz-se que 2 símbolos Xi e Xi+1 são adjacentes quando não existir nenhum símbolo Xj que satisfaça as condições
Xj < Xi+1 , Xj > Xi Consideram-se também adjacentes o primeiro e último símbolos do conjunto X1 e Xb.
T - 14
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Um conjunto assim definido é um alfabeto contínuo. • Num código construído com base num alfabeto contínuo, 2 palavras são adjacentes quando os seus símbolos diferem numa única coluna, sendo adjacentes os símbolos nessa coluna.
T - 15
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Exemplo: palavras adjacentes
X1 X3 X4 X5
X1 X3 X5 X5 palavras não adjacentes
X1 X2 X3 X2 X1 X4 X5
X1 X3 X2 X6 X1 X4 X5
• Com um alfabeto contínuo de valência superior a 2 podem formar-se, em relação a cada palavra de comprimento n, 2n palavras adjacentes. • Com um alfabeto contínuo de valência 2, apenas se podem formar n palavras adjacentes. Exemplo: Em relação a X1 X2 X1 podem formar-se as
três palavras adjacentes X2 X2 X1 , X1 X1 X1 , X1 X2 X2.
N.5.4.2 - Códigos contínuos Num código contínuo, palavras consecutivas são adjacentes.
X1 X2 X3X2 X2 X3X3 X2 X3X3 X2 X1X2 X2 X1
Se num código contínuo a última palavra for adjacente da primeira, esse código diz-se cíclico.
X1 X2 X3X2 X2 X3
T - 16
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
X3 X2 X3X3 X2 X1X2 X2 X1X1 X2 X1
N.5.4.3 - Códigos reflectidos Nos sistemas de numeração, os algarismos de cada coluna sucedem-se pela ordem natural, repetindo-se um número de vezes igual ao peso da respectiva coluna.
pesos ... 32 31 30
0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 Sistema de 0 1 2 numeração 0 2 0 base 3 0 2 1 0 2 2 1 0 0 1 0 1 .. .. .. 2 2 1 2 2 2
T - 17
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Os sistemas de numeração não constituem códigos cíclicos, pois 2 números consecutivos podem diferir em mais do que 1 algarismo. No entanto, a partir de um sistema de numeração pode construir-se um código contínuo especial, substituindo cada transição de b-1 para 0 pela repetição b-1 b-1, prosseguindo-se então pela ordem inversa até 0. Depois repete-se o 0 e recomeça-se pela ordem natural. Os códigos assim formados dizem-se reflectidos. Exemplo de código reflectido obtido a partir do código anterior
0 0 0 0 0 1 0 0 2 0 1 2 0 1 1 0 1 0 0 2 0 0 2 1 0 2 2 1 2 2 1 2 1 1 2 0 .. .. ..2 2 1 2 2 2
Os códigos reflectidos não são códigos ponderados embora sejam obtidos a partir de códigos ponderados.
T - 18
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
N.5.5 - Códigos binários Os códigos binários são códigos de valência 2. Utilizam-se normalmente os símbolos 1 e 0. Há 2 tipos de códigos binários: código binário natural e códigos decimais binários. • Código binário natural Traduz-se a palavra escrita num dado sistema de numeração para o sistema de base 2. Exemplo: 12(10) = 1100(2) • Código decimal binário Faz-se a correspondência entre cada caracter decimal da palavra inicial e a sua configuração binária. Se a palavra tiver n símbolos decimais, na sua codificação obtêm-se 4n símbolos binários. Exemplo: Considerando a correspondência seguinte
0 → 0 0 0 0 1 → 0 0 0 1 2 → 1 0 0 0 3 → 1 0 0 1 4 → 1 1 0 0 5 → 1 1 0 1 6 → 1 1 1 1 7 → 0 0 1 1 8 → 0 1 1 1 9 → 0 1 0 0
a palavra decimal 532(10), é codificada como
1101 1001 1000
T - 19
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
N.5.5.1 - Código binário natural O código binário natural é um código ponderado. Corresponde ao sistema de numeração de base 2, em que os pesos são sucessivamente 2n-1 2n-2...22 21 20. Exemplo: Comprimento de palavra = 3
22 21 20 ← pesos
0 0 0 0 1 0 0 1 2 → 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1
N.5.5.2 - Código binário reflectido ou de Gray Regra de conversão de natural para reflectido: • O bit mais significativo da palavra natural mantém-se como sendo o bit mais à esquerda da palavra reflectida. • Em seguida, o bit mais significativo da palavra natural adiciona-se ao bit seguinte, e o resultado, independentemente de qualquer transporte, é o bit seguinte da palavra reflectida. • Então adiciona-se o segundo e terceiro bits do natural e obtém-se o terceiro bit do reflectido, desprezando sempre o transporte, e assim por diante. Exemplo: Conversão de 111001(binário natural) → → → → → Binário natural 1 + 1 + 1 + 0 + 0 + 1 ↓ ↓ ↓ ↓ ↓ ↓Binário reflectido 1 0 0 1 0 1
T - 20
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
Comparação do código binário natural para palavras de comprimento n=4 com o seu homólogo reflectido.
pesos → 23 22 21 20
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0
Binário natural
Reflectido Um código reflectido não é ponderado. Se tiver valência par é cíclico. N.5.5.3 - Códigos decimais-binários Num código decimal-binário pretende-se substituir cada símbolo decimal por uma configuração de dígitos binários. Como existem 10 símbolos decimais diferentes, é necessário que cada configuração binária apresente 4 bits. No entanto com 4 bits formam-se 16 combinações possíveis e só 10 são necessárias. O número total de códigos decimais-binários distintos que se podem obter será então dado por
T - 21
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
10!. = 10
16C 16!
6! = 3.1010
Dada a grande variedade de códigos decimais- -binários possíveis, apresentam-se de seguida os mais usuais. N.5.5.3.1 - Código decimal-binário 8421 ou DCB Escrevem-se em binário os 10 primeiros números. Apresenta a vantagem de permitir uma parte das simplificações do código binário natural (simplificação nas regras das operações aritméticas).
8 4 2 1 ← pesos 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 → 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1
N.5.5.3.2 - Código D+3 ou excedente 3
0 0 0 1 1 1 0 1 0 0 2 0 1 0 1 3 0 1 1 0 4 → 0 1 1 1 5 1 0 0 0 6 1 0 0 1 7 1 0 1 0 8 1 0 1 1 9 1 1 0 0
Não é um código ponderado.
T - 22
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
N.5.5.3.3 - Código 2421 ou de Aiken
2 4 2 1 ← pesos 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 → 0 1 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 0 1 8 1 1 1 0 9 1 1 1 1
N.5.5.3.4 - Código 7421
7 4 2 1 ← pesos 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 → 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0
Este código tem um número muito pequeno de 1's. N.5.5.4 - Códigos decimais-binários detectores de erros Em qualquer sistema podem ser introduzidos erros devido à presença de ruído. Num código binário, tal alteração é a tranformação de 1 em 0 e vice-versa. Aumentando a redundância é possível detectar, ou mesmo corrigir erros. O controle de paridade é um método geral que se utiliza frequentemente. Consiste em acrescentar a cada configuração binária um bit suplementar de
T - 23
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
controle ao qual se dá o valor 0 ou 1, de modo que o número de 1's em todas as palavras seja da mesma paridade. Normalmente usa-se a paridade ímpar para que nunca surja a combinação formada só por zeros, que poderia surgir devido a uma avaria num dispositivo. Exemplo de códigos 8421 e D+3 modificados de forma a detectarem erros.
8421 det. erros
D+3 det. erros
C 8 4 2 1 C 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0
C - coluna de controle Se existir uma palavra que não tenha um número ímpar de 1's, existiu um erro na codificação ou no processamento dessa palavra. Este código permite apenas detectar (e não localizar) um número ímpar de erros. O código biquinário, que é um código ponderado, permite a detecção de mais do que 1 erro.
pesos 5 0 4 3 2 1 0
0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0
T - 24
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
No entanto não detecta a situação, de troca de 2 símbolos, seguinte: 0100100 → 0101000. N.5.6 - Códigos alfanuméricos A informação a processar pode não ser exclusivamente numérica. Existe frequentemente a necessidade de codificar além de números, letras e símbolos especiais (+, !, ?, ...). Um código alfanumérico estabelece uma correspondência entre os vários símbolos e combinações de um certo número de bits. As letras do alfabeto e os dígitos decimais formam um conjunto de 36 elementos, sendo pois necessário palavras de código de comprimento pelo menos igual a 6. De seguida exemplifica-se um código alfanumérico de 6 bits utilizado pela Univac.
0000 0001 0010 0011 0100 0101 0110 011100 Ignora Espaço - 0 1 2 3 4 01 Retorno ' . ; A B C D 10 Γ // | ) J K L M 11 Σ ! : + / S T U
1000 1001 1010 1011 1100 1101 1110 111100 5 6 7 8 9 , & ( 01 E F G H I # ⊄ @ 10 N O P Q R / * ? 11 V W X Y Z % = Delete
Usando uma configuração binária de comprimento 6 podem codificar-se 64 caracteres, pelo que as combinações para além das 36 inicialmente necessárias podem ser usadas para codificar símbolos especiais tais como os sinais das operações, de pontuação, etc. Actualmente não existe um código universalmente aceite, embora os códigos ASCII (American Standard Committee on Information Interchange) e EBCDIC
T - 25
____________________________________________________________________________________________________________ Sistemas Digitais ASP93
(Extended Binary Coded Decimal Interchange Code) sejam muito utilizados. São ambos códigos de 8 bits, ou seja, permitem uma codificação de 256 caracteres diferentes. Tabela ASCII para os primeiros 128 caracteres
0000 0001 0010 0011 0100 0101 0110 0111000 NUL SOH STX ETX EOT ENQ ACK BEL 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB 010 Espaço ! " # $ % & ' 011 0 1 2 3 4 5 6 7 100 @ A B C D E F G 101 P Q R S T U V W 110 ` a b c d e f g 111 p q r s t u v w
1000 1001 1010 1011 1100 1101 1110 1111000 BS HT LF VT FF CR SO SI 001 CAN SUB ESC FS GS RS US 010 ( ) * + , - . / 011 8 9 : ; < = > ? 100 H I J K L M N O 101 X Y Z [ \ ] ^ _ 110 h i j k l m n o 111 x y z | ~
Apresentação
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
ARQUITECTURA DE COMPUTADORES Programa:
• Introdução • Organização de Sistemas Computorizados • Nível Convencional da Máquina • Linguagem Assembly • Nível da Microprogramação • Sistema Operativo
Bibliografia:
• "Computer Architecture and Organization", John P. Hayes, McGraw Hill, 1978 • "Structured Computer Organization", Andrew S. Tanenbaum, Prentice-Hall, 1990• "IA-32 Intel® Architecture Software Developer’s Manual
Avaliação:
1º Caso:
• 1º trabalho (25%) • 1ª frequência (25%) • 2º trabalho (25%) • 2ª frequência (25%)
2º Caso: • Exame (100%) Nota de aprovação na cadeira: 10 (dez valores)
I - 1
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
INTRODUÇÃO I.1 - PRINCIPAIS TIPOS DE ORGANIZAÇÃO As arquitecturas de computadores podem ser classificadas segundo várias perspectivas. No entanto a mais usada é a classificação de Flynn. Baseia-se no número de sequências de dados e instruções.
Sequência
de dados
Simples
Múltipla
Sequência
Simples
SISD
SIMD
de instruções
Múltipla
MISD
MIMD
SISD - Single Instruction - Single Data SIMD - Single Instruction - Multiple Data MISD - Multiple Instruction - Single Data MIMD - Multiple Instruction - Multiple Data
I - 2
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.1.1 - MONOPROCESSAMENTO SISD - Computadores convencionais (modelo de Von Neumann)
DMPUC
I
Fig 1
I - Instruções UC - Unidade de Controle P - Processador D - Dados M - Memória A arquitectura de Von Neumann pode evoluir de forma a libertar o processador das acções de entrada e saída de dados (gestão do ecrã, disco e teclado). Para tal recorre-se a controladores específicos ou a processadores de âmbito geral.
DMPUC
I
MUC Pio Fig 1a
Pio - Processador de entrada e saída Exemplos de máquinas: IBM PC, Sun Sparc Station.
I - 3
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.1.2 - PROCESSAMENTO COM OPERAÇÕES MÚLTIPLAS A rapidez de um computador pode ser aumentada se se introduzir:
• componentes mais rápidos (memória mais rápida ou processador mais rápido); • organização diferente.
A execução de mais do que uma operação simultaneamente é a maneira mais usual de aumentar a velocidade. • Factor de aumento de velocidade de computação:
S A =T AT A
1p1
p≥
p - nº de operações simultâneas Tp[A] - tempo para a computação A na máquina multi-
operação T1[A] - tempo para a computação A na máquina série • Eficiência de computação:
E A =S A
p 1pp
≤
I - 4
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.1.2.1 - SIMD - Paralelismo de array
UCP2
Pn
P1
M
D1
D2
Dn
I Fig 2
Os processadores são todos iguais e executam a mesma operação ao mesmo tempo sobre dados diferentes. A memória tem que estar particionada de forma a ser possível o acesso simultâneo a diferentes endereços. As máquinas SIMD só correm um programa de cada vez, estando todos os processadores dedicados a esse programa. A instrução seguinte (em linguagem FORTRAN):
DO 10 I = 1, 50 10 A(I) = B(I) * C(I)
seria executada apenas numa instrução se o computador tivesse 50 multiplicadores. Exemplos de máquinas: ILLIAC IV (64 processadores), Connection Machine (64 k processadores).
I - 5
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.1.2.2 - MISD - Paralelismo de pipeline
M
P1 P2 Pn
UC1 UC2 UCn
I1 I2 In
DD
D
Fig 3
O paralelismo de pipeline é muito usado nas linhas de montagem industriais. As ideias fundamentais são:
• Decompor uma operação complexa em N passos de igual duração
• Efectuar cada operação num elemento de
processamento diferente • O tempo de operação mantém-se, mas o número de
operações executadas por segundo multiplica-se por N.
A dificuldade é manter o pipeline cheio. Praticamente todos os computadores utilizam paralelismo de pipeline, executando em paralelo o fetch / descodificação / execução de instruções. Exemplos de máquinas: Cray, Cyber 205.
I - 6
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.1.2.3 - MIMD - Paralelismo funcional
M
UC1 P1D1
UC2 P2D2
Ucn PnDn
In
I2I1
Fig 4
• Existem vários processadores não forçosamente iguais a executar operações diferentes independentemente. • Paralelismo funcional:
* Processamento multi-função - o processador inclui vários elementos de processamento especializados mas não autónomos que podem funcionar em paralelo (somador, multiplicador, etc.);
* Multiprocessamento - os elementos de processamento são processadores completos, capazes de executar programas completos autonomamente.
Exemplos de máquinas: iPSC (16-128 processadores), Supernode (16 transputers T800). I.2 - MEMÓRIA Em sistemas de multiprocessadores (MIMD) o acesso a memória implica o recurso a uma rede de interligação.
I - 7
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.2.1 - Memória partilhada Os processadores não possuem memória própria, podendo todos aceder a qualquer endereço de memória. A memória pode ter vários bancos para evitar a contenção.
M M M M
P P P P
Rede de interligação
Fig 11
I.2.2 - Memória privada Os processadores possuem memória privada, sendo que qualquer informação pode ser partilhada por meio de mensagens entre processadores.
M M M M
P P P P
Rede de interligação
Fig 12
I - 8
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.3 - Redes de interligação Definem-se as características seguintes: • Atraso - tempo de trânsito para uma mensagem. • Largura de banda - número máximo de bytes por
segundo que a rede consegue transmitir. • Concetividade de um nó - número de ligações que
ligam cada nó aos nós adjacentes. • Diâmetro - número máximo de ligações a percorrer
por uma mensagem entre dois processadores quaisquer.
I.3.1 - Crossbar É a melhor forma de interligar os processadores à memória. A memória é dividida em vários bancos, e é possível vários processadores acederem a bancos diferentes simultaneamente.
P P P P
M
M
M
M
Fig 13
I - 9
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.3.2 - Hipercubo A topologia mais popular em multiprocessadores de memória privada é o hipercubo. Tem um baixo diâmetro e alta largura de banda.
Fig 14
I.3.3 - Hiperbus Uma das desvantagens do hipercubo é que o número de ligações por nó varia com a dimensão. O hiperbus é uma topologia que se obtém do hipercubo substituindo nós por ligações e ligações por nós.
1
2
3
4
P1 P2 P3 P4 P5
Fig 15
I - 10
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.4 - ORGANIZAÇÃO DE SISTEMAS I.4.1 - Redes de computadores Existem várias arquitecuras possíveis para a interligação de computadores: estrela, multiponto, anel, etc. No entanto as arquitecturas de rede mais comuns são: • multiponto - Ethernet;
Fig 16
• anel - Token Ring, FDDI.
Fig 17
I - 11
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.4.2 - Computação distribuída Os sistemas operativos distribuídos aparecem da necessidade de: • partilhar recursos distribuídos; • garantir uma maior disponibilidade desses recursos em situações de tráfego intenso; • fornecer tolerância a faltas. Para além disso os sitemas operativos distribuídos devem possuir as seguintes características: • transparência - dar ao utilizador a ideia de que todo o conjunto de máquinas é apenas um processador multi-tarefa; • desempenho - uma aplicação deverá correr tão bem num sistema distribuído como num só processador; • escalabilidade - o sistema deverá poder suportar um número cada vez maior de máquinas. Exemplos de alguns sistemas distribuídos: • AFS, NFS - sistemas de ficheiros distribuídos; • Amoeba - micro-kernel (número reduzido de serviços) • ISIS - comunicação inter-grupos.
I - 12
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
I.5 - MÁQUINAS MULTI-NÍVEL Seis níveis que estão presentes na maioria dos computadores modernos
Nível da linguagemorientada ao problema
Nível 5
Nível 4
Nível 3
Nível 2
Nível 1
Nível da linguagem assembly
Nível da máquinasistema operativo
Nível da máquina convencional
Nível da micro- -programação
Tradução (compilador)
Tradução (assemblador)
Interpretação parcial(sistema operativo)
Interpretação(micro-programa)
Nível 0Nível lógico digital
Os micro-programas são executadosdirectamente pelo hardware
Fig 17a
P - 1
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
A UNIDADE CENTRAL DE PROCESSAMENTO P.1 - ORGANIZAÇÃO DA CPU Unidade Central de Processamento (CPU) = Processador + Unidade de Controle
Registos
OperaçõesAritméticas
OperaçõesLógicas
Unidade deControleMemória Central
Processador
Fig 5
• Os registos do processador podem ou não ser acessíveis ao programador. • A existência de registos no processador poupa ciclos de acesso à memória. Por outro lado um número elevado de registos torna difícil um manuseamento eficiente. • Exemplos:
PDP-11 tem 6 registos de 16 bit I8085 tem 7 registos de 8 bit I8086 tem 8 registos de 16 bit S/370 tem 16 registos de 32 bit + 4 reg. 64 bit
P - 2
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Unidade de Controle Síncrona
Incrementador
Registo de Instrução
Contador dePrograma
6
Processador de Instruções
Descodificador
Sequenciador
2
4
5
Processador de Operações
Processadorde Endereços
6
3
1
1
4
Memória Central (MAR, MDR)
Processador
Relógio
Fig 6
P - 3
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
1 - Endereço da instrução a ser executada está no PC
(contador de programa). Endereço vai para memória (MAR - Registo de endereço de memória). A instrução é trazida para IR (registo de instrução) a partir de MDR (registo de dados de memória).
2 - A instrução é dividida em endereço e código de
operação (englobando tipo de endereçamento) que são respectivamente mandados para o processador de endereços e de operações. Código de operação e tipo de endereçamento são descodificados.
3 - O processador de endereços calcula o endereço
efectivo que será utilizado para:
i) aceder a um operando em memória (MDR) ou num registo;
ii) aceder à próxima instrução no caso de um salto.
4 - O operando é lido de memória (MDR), caso seja
exigido pelo código de operação. 5 - O sequenciador implementa a operação (podendo
incluir um armazenamento em memória). 6 - O endereço da próxima instrução fica no PC:
i) se a instrução for um salto, um novo endereço vai para o PC;
ii) caso contrário, o incrementador incrementa o PC.
P - 4
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Função da CPU: Executar sequência de instruções armazenadas em memória. Ciclo de instrução: sequência de instruções envolvidas no processamento de uma instrução. O ciclo de instrução consiste de uma fase de aquisição e de uma fase de execução. Fase de aquisição: a instrução é lida da memória para IR. Fase de execução: inclui a descodificação da instrução, aquisição dos operandos necessários e execução das operações especificadas no código de operação. O comportamento da CPU durante um ciclo de instrução pode ser definido como uma sequência de micro-operações, cada uma das quais envolve uma transferência entre registos. Tempo de ciclo da CPU (tCPU): tempo necessário para a execução da micro-operação mais rápida. tCPU é a unidade de tempo para medir acções na CPU. fCPU = 1 / tCPU é a frequência do relógio. fCPU depende directamente da tecnologia da CPU.
P - 5
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Interacção da CPU com a Memória Central i) A CPU é normalmente tão rápida quanto a tecnologia permitir, dentro das condicionantes de custo. ii) Como a capacidadede memória é normalmente elevada, esta é constituída com uma tecnologia mais lenta e menos dispendiosa que a da CPU. Tempo de ciclo de memória (tM): tempo mínimo que medeia entre duas operações consecutivas de acesso à memória. Extensões à organização básica da CPU i) Registos adicionais ii) ALU's com mais funções iii) Existência de cache se tM >> tCPU e se se pretender uma performance elevada iv) Existência de controlo automático de stack v) Organização de multi-operação (p.ex. pipeline)
P - 6
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.2 - REPRESENTAÇÃO DA INFORMAÇÃO
Informação
Instruções
Dados
Dados não numéricos
Números
Vírgula fixa
Vírgula flutuante
P.2.1 - Dados não numéricos Normalmente são cadeias de caracteres ("strings") com comprimento variável. Os caracteres são usualmente representados pelos códigos ASCII (American Standard Committee on Information Interchange) ou EBCDIC (Extended Binary Coded Decimal Interchange Code). P.2.2 - Dados numéricos Na escolha de representação atender aos seguintes factores: i) tipo de números a serem representados (inteiros, reais, complexos); ii) gama de valores representáveis; iii) precisão do número; iv) custo de hardware para armazenar e processar os números.
P - 7
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.2.2.1 - Nomenclatura w - comprimento da palavra gama de representação - quantidade de nos
representados distintamente P.2.2.2 - Formatos dos números Para um mesmo w: Vírgula fixa - gama limitada, maior precisão,
hardware simples; Vírgula flutuante - gama extensa, menor precisão,
hardware complexo. P.2.2.2.1 - Vírgula fixa Nos positivos
b = b .2 = b ...b b b .b b ...bii
n 2 1 0 -1 -2 -mi=-m
n
∑
O ponto decimal não tem representação interna na máquina, é implícito pelo utilizador. Nos negativos
i) sinal e módulo ii) complemento para 1 iii) complemento para 2
P - 8
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Representação de números
Característica
Sinal e módulo
Complemento
para 1
Complemento
para 2
Zero
000....0 100....0
000....0 111....1
000....0
Amplitude
-2N-1+1 a 2N-1-1
-2N-1+1 a 2N-1-1
-2N-1 a 2N-1-1
Adição
Subtracção
Não trivial
Usa EAC
Trivial
Multiplicação
Divisão
Relativamente
simples
Difícil
Difícil
Inversão de
sinal
Trivial
Trivial
Necessita adição
P.2.2.2.2 - Vírgula flutuante Também conhecida por notação científica. 3 quantidades estão associadas a esta representação: mantissa M, expoente E, base B. Um nº vírgula flutuante é guardado como um par de dois números vírgula fixa: M, E.
M - fracção ou inteiro E - inteiro
A precisão é determinada pelo nº de bits de M. A gama é determinada por B e E.
P - 9
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
NORMALIZAÇÃO Diferentes representações em vírgula flutuante são possíveis para o mesmo número. Considere-se B = 2. • Se a mantissa for uma fracção representada por módulo e sinal, diz-se normalizada se o bit para a direita do ponto binário não for zero. P. ex.: (0.1011101). Se a mantissa for uma fracção representada em complemento para 2, diz-se normalizada se o bit de sinal diferir do bit imediatamente à sua direita. P. ex.: (1.01101) • Para mantissas normalizadas: 1/2 ≤ |M| < 1 • Mantissas não normalizadas podem normalizar-se deslocando o ponto binário para a esquerda ou direita e incrementando ou decrementando o expoente apropriadamente. REPRESENTAÇÃO DO ZERO k: nº de bits do expoente i) O expoente convém ser o menor número negativo possível (-2(k-1)) ii) O expoente convém ser representado só por zeros, por causa dos testes a zero Utiliza-se algumas vezes um expoente deslocado. O expoente é codificado num código excesso 2(k-1), em que 2(k-1) é o deslocamento. Exemplo (K=4)
P - 10
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Expoente Número representado
1111 7 1110 6 1101 5 1100 4 1011 3 1010 2 1001 1 1000 0 0111 -1 0110 -2 0101 -3 0100 -4 0011 -5 0010 -6 0001 -7 0000 -8
P - 11
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
EXEMPLOS DE FORMATOS VÍRGULA FLUTUANTE HP-1000
Precisão simplesMS
ES
15 14 0 15 8 7 0
E
MS
ES
EPrecisão estendida
MS
ES
E
M (23 bit)
M (39 bit)
M (55 bit)
Precisão dupla
Fig 7
I 8086/8087
MS
15 0
E
MS
Real curto
31 30 23 22 16
63 4852
E
47 32 31 16 15 0
M (23 bit)
M (52 bit)
Real longo
Fig 8
P - 12
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
IBM S/370
MS
E
MS
EPrecisão estendida
Precisão dupla
Precisão simplesMS
0 1 7 8
E
31
M (110 bit)
M (56 bit)
M (24 bit)
Fig 9
PDP-11
MS
150
E
MS
3116
E
Precisão simples
81 9
M (23 bit)
M (55 bit)
Precisão dupla
Fig 10
P - 13
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.2.3 - Formatos de instruções (máquina) • Cada instrução deve especificar de algum modo:
1. Operação a ser executada. 2. Um ou mais operandos da operação. 3. Destino do resultado. 4. Localização da próxima instrução.
• i) O código da operação deve ser sempre
especificado ii) A localização da próxima instrução só precisa de ser indicada em instruções de salto. iii) Os endereços são normalmente apontadores para memória ou para registos que contêm operandos.
Variações principais: endereços imediato, indexado, indirecto e relativo (PC, SP). Exemplos: EE = E + (IX) - indexado EE = (E) - indirecto
iv) Existem instruções de 1, 2 e 3 endereços (0 endereços é um caso particular em máquinas de stack). Poucos endereços - Instruções mais simples, programas mais longos e com maior tempo de execução e unidades de controle mais simples.
• Instruções com 3 endereços Instruções normais: 2 campos para endereços de
operando + 1 campo para endereço de resultado
P - 14
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Instruções de salto: 2 campos para endereços de operando + 1 campo para endereço de salto
Exemplo de programa fonte:
X := A + B * C; Y := F + G;
Programa máquina correspondente
MPY B C T ADD A T X ADD F G Y
Ex. de máquina: CDC 6600
P - 15
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
• Instruções com 2 endereços Instruções normais: 2 endereços de operandos Instruções de salto: 1 end. operando + 1 end. salto Existe normalmente um acumulador que recebe o resultado. Alternativamente o resultado pode ir para um dos endereços especificados. Exemplo MPY B C
ADD A Acc STO Acc X ADD F G STO Acc Y
Ex. de máquina: IBM S/370 • Instruções com 1 endereços Instruções normais: endereço de operando Instruções de salto: endereço de salto O resultado é deixado no acumulador Exemplo de máquinas: FETCH B
HP 1000, DEC 10 MPY C ADD A STO X FETCH F ADD G STO Y
P - 16
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
• Instruções com 0 endereços Requer uma máquina de "stack" Necessário: i) um stack
ii) uma instrução PUSH iii) uma instrução POP iv) operações diádicas usando os 2 registos do topo como operandos e deixando o resultado no topo do stack
O compilador transformará as expressões aritméticas para Reverse Polish Notation. No exemplo
X := A + B * C; → X = B C * A + Y := F + G; (RPN) Y = F G +
Código máquina correspondente
PUSH C PUSH B MPY PUSH A ADD POP X PUSH G PUSH F ADD POP Y
P - 17
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.3 - UNIDADES ARITMÉTICAS E LÓGICAS P.3.1 - Adição, Subtracção e Operações lógicas As operações lógicas são normalmente realizadas bit a bit pelo que os circuitos não apresentam qualquer dificuldade. Exemplo de um circuito AND de 8 bits.
x0
y0
x1
y1
x2
y2
x7
y7
z0
z1
z2
z7
Fig 18a
A adição é realizada bit a bit também, mas entrando em conta com o bit de carry. O somador de 1 bit é definido pelas duas equações seguintes:
z x y ci i i i= ⊕ ⊕ +1
i+1
c x y x c y ci i i i i+1 i= + +
Os circuitos lógicos e símbolo correspondentes são mostrados abaixo.
P - 18
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
xi
c(i+1)
xi
c(i+1)
xi
c(i+1)
xi
c(i+1)
zi
xi
xi
c(i+1)
c(i+1)
ci
xi
c(i+1)ci
zi
Carry out Carry in
Soma
+
yi
yi
yi
yi
yi
yi
yi
Fig 18
A adição pode ser acelerada com "carry look ahead adders".
P - 19
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.3.2 - Multiplicação Circuito multiplicador
Acumulador Multiplicador Multiplicando
A Q0 0 M 0
Somadorparalelo
Bus Saída
Bus Entrada
Controle
Contador
ADDRIGHT-SHIFTSTART
ENDCLOCK
CPUSinais decontroleinterno
7 7 7
Fig 19
P - 20
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
i) Multiplicação em módulo e sinal
START
A <- 0COUNT <- 0M <- Mcando
Q <- Mcador
Q(0) = 0COUNT <- COUNT + 1
A <- A(0:6) + M(0:6)
Right Shift A,Q
COUNT = 7
Bus Saída <- A
Bus Saída <- Q
STOP
N
S
N
S
Diag 1
No final da operação
S
A Q
7 0 7 0
P - 21
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
ii) Multiplicação em complemento para 2 Pode usar-se o algoritmo de multiplicação em M e S e adaptá-lo para complemento para 2, mas torna-se necessário corrigir o resultado quando o multiplicador é negativo. Utiliza-se normalmente o algoritmo de Booth que trata igualmente nos positivos e nos negativos sem ser necessária a correcção, e além disso sequências de 0's e 1's no multiplicador são saltadas sem se efectuarem adições ou subtracções o que acelera a execução. (Demonstração: HAYES, 183-185) Hardware semelhante ao multiplicador em M e S mas com mais um andar em Q e possibilidade de soma e subtracção. Operação básica: Multiplicador é inspeccionado sequencialmente da direita para a esquerda. Dois bits são inspeccionados de cada vez, se QiQi+1 = 10 (01) o multiplicando é somado (subtraído) ao produto parcial e o resultado é deslocado. Se QiQi+1 = 00 ou 11 só se verifica o deslocamento.
P - 22
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Multiplicação (Algoritmo de Booth)
START
A <- 0COUNT <- 0M <- McandoQ(-1) <- 0
Q(7:0) <- Mcador
Q(-1) = 1Q(0) = 0
COUNT <- COUNT + 1 A <- A + M A <- A - M
COUNT = 7
Bus Saída <- A
Bus Saída <- Q(7:1)
STOP
Q(-1) = 0Q(0) = 1
A(7) <- A(7)Right Shift A,Q
S
N
S
N
S
N
Diag 2
P - 23
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.3.3 - Divisão
D = Q x V + R Objectivo: determinar Q e algumas vezes R. Nº de bits em Q limitado por questão de hardware. Algoritmos e circuitos semelhantes aos da multiplicação podem ser utilizados. • Na multiplicação efectuam-se adições sucessivas do multiplicando ao produto parcial para obter o produto. • Na divisão o divisor deslocado é subtraído do resto parcial para obter o quociente. Em cada passo i, 2-i.V (divisor deslocado de i bits para a direita) é comparado com o resto parcial Ri.
Qi = 1 se 2-i.V ≥ Ri , Qi = 0 se 2-i.V < Ri Ri+1 ← Ri - Qi.2-i.V
Na implementação prefere-se deslocar o resto parcial.
Ri+1 ← 2.Ri - Qi.V
P - 24
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Algoritmo de divisão para inteiros positivos
START
Q <- DividendoCOUNT <- 0
M <- DivisorA <- 0
A < 0
COUNT <- COUNT + 1
Q(0) <- 1
Left Shift A,Q
COUNT = 7
A <- A - M
STOP
Q(0) <- 0A <- A + M
N
S
N
S
Diag 3
No final da operação: (A) = resto (Q) = quociente
P - 25
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Circuito divisor
Acumulador
A Q0 0 M 0
Somadorparalelo
Bus Saída
Bus Entrada
Controle
Contador
STARTENDCLOCK
CPUSinais decontroleinterno
7 7 7
Quociente Divisor
Q(0)A(7)
Fig 20
Início: A,Q - Dividendo M - Divisor Fim: Q - Quociente A - Resto
P - 26
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.3.4 - ALU vírgula fixa (típica)
Acumulador
0 0 0
Somadorparalelo
Bus Saída
Bus Entrada
Controle
Contador
STARTENDCLOCK
CPUSinais decontroleinterno
7 7 7AC MQ
Multiplicador-Quociente Registo de dados
RD
ADDSUBMPYDIV
Fig 21
ADD : AC ← AC + RD SUB : AC ← AC - RD MPY : AC,MQ ← RD × MQ DIV : AC,MQ ← AC,MQ ÷ RD
P - 27
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.3.5 - Operações em vírgula flutuante
X = (XM, XE) ⇒ X = XM . BXE São feitas as seguintes suposições: • XM é uma fracção com NM bits em complemento para 2. • XE é um inteiro com NE bits em código excesso 2 NE-1. • B = 2. • Operandos e resultados são normalizados. Operações Aritméticas Básicas X + Y = ( XM . 2 (XE-YE) + YM ) . 2YE X - Y = ( XM . 2 (XE-YE) - YM ) . 2YE X . Y = ( XM . YM ) . 2(XE+YE) X ÷ Y = (XM ÷ YM) . 2(XE-YE) Adição e subtracção requerem, supondo que XE ≤ YE • Calcular YE - XE (subtracção vírgula fixa)
• Deslocar XM de (YE - XE) bits para a direita para
formar XM . 2(XE-YE) • Calcular XM . 2(XE-YE) ± YM Multiplicação e divisão requerem: • Multiplicação ou divisão vírgula fixa das mantissas.
P - 28
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
• Soma ou subtracção vírgula fixa dos expoentes. Em qualquer das 4 operações é necessário normalizar o resultado. Correcções necessárias por causa do deslocamento do expoente: • Se os expoentes são somados (subtraídos) o expoente vem com um deslocamento duplo e o resultado tem que ser corrigido por subtracção (soma) do deslocamento. Exemplo: desloc. = 8 , NE = 4 , XE = 7 , YE = -3
XE = 1111 YE = 0101
------------ XE + YE = 10100
Correcção - 1000 ------------
01100 • Se na multiplicação um dos factores for zero o resultado não tem necessáriamente um expoente zero. É então necessário um outro passo na operação para colocar o expoente a zero. ALU vírgula flutuante
P - 29
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
E1 E2
Somador
E
AC MQ RD
Somador
BUS de Dados
Unidade de expoente Unidade de mantissa
Fig 22
P - 30
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
P.4 - UNIDADES DE CONTROLE MICROPROGRAMADAS P.4.1 - Introdução Controle hardwired - processador de operações implementado exclusivamente em hardware Controle microprogramado - processador de operações implementado com base numa memória, normalmente do tipo ROM. Controle hardwired é muito mais rápido, mas dispendioso e não flexível. Microprogamação - método de desenho do processador de operações em que os sinais de controle e de informação para a sequência de controle estão armazenados numa memória de controle (MC). Microinstrução - uma palavra da MC. Cada microinstrução especifica de algum modo os sinais de controle e a próxima microinstrução a ser executada. Controle microprogramado é mais lento que o hardwired, mas bastante mais flexível e com uma implementação estruturada. Firmware - Software e hardware envolvidos na unidade de controle microprogramada. Microprograma - conjunto de microinstruções que interpretam uma instrução máquina. Emulador da linguagem L - conjunto de microprogramas que interpretam o repertório de instruções da linguagem L. P.4.2 - Modelo de WILKES
P - 31
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
MatrizComandos
MatrizEndereços
RegistoEndereço
Sinais decontrole
Condiçãoexterna
Campo deEndereço
EndereçoExterno
Descodif.
Fig 23
MEMÓRIA DE CONTROLE = MATRIZ DE COMANDOS + MATRIZ DE ENDEREÇOS P.4.3 - Comprimento da microinstrução Comprimento da microinstrução depende de: • Grau de paralelismo exigido ao nível da micrinstrução; • Modo como a informação de controle é codificada; • Modo como o próximo endereço é especificado (vulgar existir num µPC). Microinstruções i) formatos longos horizontais ii) implementam um elevado grau de paralelismo iii) pouca codificação no campo de controle
P - 32
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Microinstruções i) formatos curtos verticais ii) pequena capacidade de implementar operações paralelas iii) codificação considerável no campo de controle Definições extremas: microinstrução horizontal - não há qualquer codificação de informação de controle microinstrução vertical - especifica só uma micro-operação (nenhum paralelismo)
Campo de controle
Horizontal
Descodificador
Campo de controle
VerticalFig 24
P.4.4 - Organização de uma unidade de controle
microprogramada Formato da microinstrução
T S C
Fig 25 T - Campo de teste S - Endereço de salto C - Campo de controle
P - 33
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
MPX
MC
T S C
Descodif.
Increment
Load
End. salto
CMDR
Selector decondição
Endereçoexterno
Condiçõesexternas
Sinais de controle
(ControlMemoryDataRegister)
Contador demicroprograma
Memória decontrole
µPC
Fig 26
P.4.5 - Escrita de microprogramas A escrita de microprogramas pode ser comparada à escrita de programas em Assembly, embora seja necessário ter um conhecimento profundo da máquina. Utilizam-se linguagens do tipo MICRO ASSEMBLY. O tradutor será o MICRO ASSEMBLER. P.4.6 - Exemplo de CPU microprogramada
P - 34
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
MemóriaCentral
ALU
AC
PC IR
MDR
MAR
Circuitosde controle
C0(ADD)
C1(AND)
C2(COMP)
C3(READ)
C4(WRITE)
AC=0
AC=0
C0
C12
C5 C6
C7 C8
C9
C10
C11
C12
Fig 27
Repertório de instruções máquina Mnemónica Descrição LOAD X AC ← M(X) STORE X M(X) ← AC ADD X AC ← AC + M(X) AND X AC ← AC ∧ M(X) JUMP X PC ← X JUMPZ X if AC=0 then PC ← X COMP AC ← AC/ RSHIFT Right Shift AC
Micro-operações para interpretação do repertório de instruções
P - 35
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
MAR ← PC
START
READ M
PC ← PC + 1IR ← MDR (OP)
LOAD STORE
MAR ← MDR(AD)
MAR ← MDR(AD)
READ M
AC ← MDR
MDR ← AC
WRITE M
ADD
MAR ← MDR(AD)
READ M
AC ← AC + MDR
AND
MAR ← MDR(AD)
READ M
AC ← AC ∧ MDR
JUMP JUMPZ
PC ← MDR (AD)
PC ← MDR (AD)
COMP
AC ← AC/
AC = 0
SHIFTAC
S S
N
S S
N N
S
N
SS
S
N N N
N
Diag 4 Emulador (linguagem simbólica) FETCH: MAR ← PC READ M PC ← PC +1 , IR ← MDR (OP) goto IR LOAD: MAR ← MDR (AD) READ M AC ← MDR , goto FETCH STORE: MAR ← MDR (AD) MDR ← AC WRITE M , goto FETCH ADD: MAR ← MDR (AD)
P - 36
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
READ M AC ← AC + MDR , goto FETCH AND: MAR ← MDR (AD) READ M AC ← AC ∧ MDR , goto FETCH JUMP: PC ← MDR (AD) , goto FETCH JUMPZ: if AC 0 then goto FETCH PC ← MDR (AD) , goto FETCH COMP: AC ← AC/ , goto FETCH RSHIFT: Right-Shift (AC) , goto FETCH
Sinais de controle
Operação controlada
C0 AC ← AC + MDR C1 AC ← AC ∧ MDR C2 AC ← AC/ C3 MDR ← M(MAR) [READ M] C4 M(MDR) ← MDR [WRITE M] C5 MDR ← AC C6 AC ← MDR C7 MAR ← MDR (AD) C8 PC ← MDR (AD) C9 PC ← PC + 1 C10 MAR ← PC C11 IR ← MDR (OP) C12 Right-Shift AC
P.4.7 - O processador HP 21 MX Formatos das µinstruções (HP 21 MX)
P - 37
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
0 4 9 14 19
0 4 14 19 23
0 4 9 19
0 4 19 23
6
10
7
OP CODE
OP CODE
OP CODE
OP CODE
ALU Funct Source reg Dest reg
Immediate operand Dest reg
Cond Select CS
9 bit relative addr
12 bit absolute address Jump modif
1. Common
2. Immediate
3. Conditional jump
4. Unconditional jump
Special
Special
Special
Modifier
23
23
Fig 29 Formato das instruções em µAssembly
tipo campo 1 campo 2 campo 3 campo 4 campo 5 campo 6 campo 7 common label op code special alu
function dest.
register source
reg. comment
immediate label imm special modifiers dest. register
operand comment
conditional jump
label jmp cnd x condition select
condition sense
branch address
comment
unconditional jump
label jmp ou jsb ou
rtn
jump modifier
unused
unused
branch address
comment
Estrutura do HP 21 MX
P - 38
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Descodificadorese lógica decontrole
CMDR
Memória decontrole
SAVE
IR
CMAR
ALUfixedpoint
L
BA
T-BUS (16 bit)
S-BUS (16 bit)
PC (P)
X
Y
S12
S1
S2
S
Sinaisdecontrole
Memória
Central
MAR MDR (T)(M)
COUNT
I / O
161615
8
Fig 28
X - 1
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
A FAMÍLIA 8086 X.1 - INTRODUÇÃO A família de microprocessadores 8086 inclui os CPU's i8086 e i8088. Algumas características: O 8088 comunica externamente com a memória e I/O através de um canal de 8 bits. O 8086 comunica com a memória e I/0 por um canal de 16 bits. Ambos podem endereçar até 1 Mbyte de memória (20 linhas de endereço). Ambos possuem um pipeline de instruções interno que faz a pré-aquisição de instruções (prefetch) durante os ciclos livres do BUS, o que aumenta muito o desempenho. Ambos possuem canais internos de dados de 16 bits.
8086
Endereço
Dados/Endereço
Controle
Endereço
Controle
8088 Dados/Endereço
4
16 8
12
Fig 30
X.2 - A ARQUITECTURA DOS PROCESSADORES
X - 2
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Unidade de execução (EU)Unidade de interfacecom o BUS (BIU)
RegistosGerais
Registos desegmento
Operandos
ALU
Flags
Fila deinstruções
Geração deendereços econtrole doBUS
BUSMultiplexado
Ap Instr (IP)
Fig 31
Os endereços manipulados pela EU são de 16 bits. A BIU realiza uma relocação de endereços que permite o acesso a um espaço de memória de 1 Mbyte. A BIU executa todas as operações com o BUS do sistema: • Troca de dados entre a EU e a memória do sistema e dispositivos de I/O. • Enquanto a EU está ocupada a executar instruções, a BIU lê na memória central as próximas instruções a realizar (prefetch). X.2.1 - Registos gerais O 8086 tem um conjunto de 8 registos gerais de 16 bits organizados da seguinte forma:
X - 3
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
BP
SI
Grupodedados
Grupo deapontadorese índices
15 8 7 0
15 0
AXAL
BX
AH
BH BL
CX
CH CL
DXDH DL
SP
DI
Acumulador
Base
Contador
Dados
Apontadorde Stack
Apontadorde base
Índicede origem
Índicede destino
Fig 32
X - 4
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Algumas instruções usam os registos de forma implícita.
Registo Operações AX Multiplicação, divisão, I/O (Word) AL Multiplicação, divisão, I/O (Byte) AH Multiplicação, divisão (Byte) BX Tradução CX Loops, operações com strings CL Rotação e deslocamento de variáveis DX Multiplicação, divisão, (Word);
I/O indirecto SP Operações de stack SI Operações com strings DI Operações com strings
X.2.2 - Registos de segmento e apontador de instrução O espaço de memória do 8086 está dividido em segmentos lógicos de até 64 kbyte cada um. O CPU tem acesso a 4 segmentos em simultâneo. Os seus endereços de base estão contidos nos registos de segmento.
15 0
CS
DS
SS
ES
Segmentode código
Segmentode dados
Segmentode Stack
Segmentoextra
Fig 33
O apontador de instrução (IP) é um registo de 16 bits que
X - 5
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
• em execução normal tem o offset relativo a CS da próxima instrução a ser fetched pela BIU; • quando é guardado na stack tem o valor da próxima instrução a ser executada. X.2.3 - Flags O 8086 tem 3 flags de controle que podem ser alteradas pelos programas para alterar as operações do processador, e 6 flags de estado que reflectem certas propriedades do resultados das operações aritméticas ou lógicas.
TF DF IF OF SF ZF AF PF CF
Carry
Paridade
Auxiliar
Zero
Sinal
Overflow
InterruptEnable
Direcção
Trap
Flags de controle Flags de estado
Fig 34
• carry - carry ou borrow no bit mais significativo
(MSB) de um resultado (8 ou 16 bits) • paridade - paridade par quando activa
X - 6
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
• auxiliar - carry ou borrow entre nibbles (usada por aritmética decimal)
• zero - o resultado da operação é 0 • sinal - o MSB é 1 (número negativo) • overflow - perda de um bit significativo • interrupt enable - permite que o CPU reconheça
interrupções externas (mascaráveis) • direcção - quando activa provoca o auto-decremento
nas intruções sobre strings, de contrário provoca o auto-incremento
• trap - põe o processador no modo single-step para
debugging
X - 7
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.3 - MEMÓRIA X.3.1 - Organização O espaço de memória do 8086 está organizado em conjuntos de bytes (8 bits). • Instruções e dados podem ser guardados em quaisquer endereços sem ter em atenção alinhamento algum. O código fica densamente arrumado, poupando memória. No entanto, variáveis de 16 bits com endereços ímpares (não alinhadas) não aproveitam a capacidade de transferência de 16 bits em simultâneo do 8086. As instruções não precisam de estar alinhadas. • Variáveis de 16 bits (word) são guardadas em memória com o byte menos significativo na posição de memória mais baixa. Apontadores (doubleword) são compostos por 2 words. A word de endereço mais baixo contém um offset. A word de endereço mais elevado contém o endereço base do segmento.
X - 8
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.3.2 - Segmentação O espaço de memória de 1 Mbyte do 8086 é visto pelos programas como um grupo de segmentos de até 64 kbytes definidos por cada aplicação. Os segmentos têm endereços base múltiplos de 16 bytes. Os segmentos podem ser adjacentes, disjuntos, parcialmente ou totalmente sobrepostos. Um endereço físico pode estar contido num ou mais segmentos.
Dados: DS:
Código: CS:
Stack: SS:
Extra: ES:
A
B
C
D
E
F
GH
IJ
K
FFFFFH
0H
B
E
H
J
Fig 35
X - 9
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.3.3 - Geração de endereços físicos Cada posição de memória tem apenas um endereço físico, mas pode ter vários endereços lógicos. Um endereço físico pode variar entre 0H e FFFFFH. Um endereço lógico é dado por 2 valores: base do segmento e offset.
1 2 3 4
1 2 3 4
0 0 2 2
0 0 2 2
0
1 2 3 6 2
15 0
19
15 0
15 0
0
19 0
Deslocar 4 bitsà esquerda
Endereço físico
Para a memória
Base dosegmento
Offset
Endereçológico
Fig 36
Origens dos endereços lógicos
Tipo de referência a memória
Base de segmento por
omissão
Base de segmento alternativo
Offset
Aquisição de instrução (fetch) CS Nenhum IP Operação em stack SS Nenhum SP Variável (excepto seguintes) DS CS,ES,SS Endereço efectivoString de origem DS CS,ES,SS SI String de destino ES Nenhum DI BP como registo de base SS CS,DS,ES Endereço efectivo
X - 10
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.3.4 - Implementação da Stack (pilha) A stack no 8086 encontra-se em memória e é referenciada pelos registos SS (stack segment) e SP (stack pointer).
Um sistema pode ter um número ilimitado de stacks, e uma stack pode ter até 64 kbytes de capacidade. Apenas se pode endereçar uma stack de cada vez.
As operações na stack são sempre sobre 16 bits.
Um valor é carregado (PUSHed) em stack decrementando o SP 2 unidades e escrevendo o valor na stack.
Um valor é retirado (POPed) da stack lendo-o do topo da stack e incrementando o SP 2 unidades.
0 0 0 8
1 0 5 0
1050
1052
1054
1056
1058
105A
105C
105E
1060
1062
Fim da stack
TOS
SS
SP
Foradastack
C D E F
8 9 A B
4 5 6 7
0 1 2 3
A A B B
8 8 9 9
6 6 7 7
4 4 5 5
2 2 3 3
0 0 1 1
0 0
1 0 5 0
1050
1052
1054
1056
1058
105A
105C
105E
1060
1062
TOS
SS
SP
C D E F
8 9 A B
4 5 6 7
A A B B
8 8 9 9
6 6 7 7
4 4 5 5
2 2 3 3
0 0 1 1
0 6
AX 1 2 3 4
1 2 3 4
PUSH AX
0 0
1 0 5 0
1050
1052
1054
1056
1058
105A
105C
105E
1060
1062
TOS
SS
SP
C D E F
8 9 A B
4 5 6 7
A A B B
8 8 9 9
6 6 7 7
4 4 5 5
2 2 3 3
0 0 1 1
AX 1 2 3 4
1 2 3 4
0 A
1 2 3 4BX
POP AXPOP BX
Fig 37
Operação em stack para a sequência de código
PUSH AX POP AX POP BX
X.4 - INSTRUÇÕES X.4.1 - Instruções de transferência de dados
X - 11
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Âmbito Geral MOV destino, origem Move byte ou word PUSH origem Carrega word na stack POP destino Retira word da stack XCHG destino, origem Troca byte ou word XLAT tabela Traduz byte Entrada / Saída IN acc, porto Lê byte ou word OUT porto, acc Escreve byte ou word Endereço LEA destino, origem Carrega endereço efectivo LDS destino, origem Carrega apontador usando DS LES destino, origem Carrega apontador usando ES Transferência de flags LAHF Coloca as flags em AH SAHF Coloca AH nas flags PUSHF Carrega as flags na stack POPF Retira flags da stack
X - 12
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.4.2 - Instruções aritméticas Adição ADD destino, origem Adiciona byte ou word ADC destino, origem Adiciona byte ou word com carry INC destino Incrementa byte ou word 1 unidade AAA Ajusta ASCII para adição DAA Ajusta decimal para adição Subtracção SUB destino, origem Subtrai byte ou word SBB destino, origem Subtrai byte ou word com borrow DEC destino Decrementa byte ou word 1 unidade NEG destino Nega byte ou word CMP destino, origem Compara byte ou word AAS Ajusta ASCII para subtração DAS Ajusta decimal para subtacção Multiplicação MUL origem Multiplica byte ou word sem sinal IMUL origem Multiplicação inteira de byte ou word AAM Ajuste ASCII para multiplicação Divisão DIV origem Divide byte ou word sem sinal IDIV origem Divisão inteira de byte ou word AAD Ajuste ASCII para divisão CBW Converte byte em word CWD Converte word em doubleword
X - 13
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.4.3 - Instruções de manipulação de bits Lógicas NOT destino Complementa byte ou word AND destino, origem Produto lógico de byte ou word OR destino, origem Soma lógica de byte ou word XOR destino, origem Ou exclusivo de byte ou word TEST destino, origem Teste (AND) de byte ou word Deslocamentos SHL / SAL destino, count Deslocamento lógico / aritmético de byte
ou word à esquerda SHR destino, count Deslocamento lógico de byte ou word à
direita SAR destino, count Deslocamento aritmético de byte ou word
à direita Rotações ROL destino, count Roda byte ou word à esquerda ROR destino, count Roda byte ou word à direita RCL destino, count Roda byte ou word com carry à esquerdaRCR destino, count Roda byte ou word com carry à direita
X - 14
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.4.4 - Instruções sobre strings REP Repete REPE / REPZ Repete enquanto for igual / zero REPNE / REPNZ Repete enquanto não for igual / não zero MOVS destino, origem Move string de bytes ou words MOVSB / MOVSW Move string de bytes ou words CMPS destino, origem Compara string de bytes ou words SCAS destino Pesquisa string de bytes ou words LODS origem Lê string de bytes ou words STOS destino Escreve string de bytes ou words Registos e flags utilizados
SI Índice (offset) da string origem DI Índice (offset) da string destino CX Contador de repetições AL / AX Valor para pesquisa
Destino para LODS Origem para STOS
DF 0 = auto-incrementa SI, DI 1 = auto-decrementa SI, DI
ZF Termina pesquisa ou comparação
X - 15
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Fluxo das operações com strings
InicializaSI, DI,CX e DF
PrefixoREPEAT
CX = 0
DecrementaCX 1 unidade
OperastringusandoSI / DI
AjustaSI / DIde delta
CMPSou
SCAS
PrefixoREPEAT
Próximainstrução
ZF = z
Presente
N
Ausente
S
S
N N
Ausente
S
Presente
String DF delta
ByteByteWordWord
0101
-1 1
-2 2
Prefixo z
REPEREPZREPNEREPNZ
1100
Diag 5
X - 16
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.4.5 - Instruções de transferência de controle Transferências incondicionais CALL nome-de-rotina Chama procedimento RET valor-a-retirar (op) Volta de um procedimento JMP endereço Salta Transferências condicionais JA / JNBE rótulo Salta se superior / não inferior nem igual JAE / JNB rótulo Salta se superior ou igual / não inferior JB / JNAE rótulo Salta se inferior / não superior nem igual JBE / JNA rótulo Salta se inferior ou igual / não superior JC rótulo Salta se carry JE / JZ rótulo Salta se igual / zero JG / JNLE rótulo Salta se superior / não inferior nem igual JGE / JNL rótulo Salta se superior ou igual / não inferior JL / JNGE rótulo Salta se inferior / não superior nem igual JLE / JNG rótulo Salta se inferior ou igual / não superior JNC rótulo Salta se não carry JNE / JNZ rótulo Salta se não for igual / não zero JNO rótulo Salta se não overflow JNP / JPO rótulo Salta se não paridade / paridade ímpar JNS rótulo Salta se não tiver sinal JO rótulo Salta se overflow JP / JPE rótulo Salta se paridade / paridade par JS rótulo Salta se tiver sinal Controle de iteração LOOP rótulo Ciclo LOOPE / LOOPZ rótulo Ciclo se igual / zero LOOPNE / LOOPNZ rótulo Ciclo se não igual / não zero JCXZ rótulo Salta se CX = 0 Interrupções INT tipo Interrupção INTO Interrupção se overflow IRET Volta de interrupção
X - 17
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Mnemónica Condições testadas JA / JNBE (CF ou ZF) = 0 JAE / JNB CF = 0 JB / JNAE CF = 1 JBE / JNA (CF ou ZF) = 1 JC CF = 1 JE / JZ ZF = 1 JG / JNLE ((SF xor OF) ou ZF) = 0 JGE / JNL (SF xor OF) = 0 JL / JNGE (SF xor OF) = 1 JLE / JNG ((SF xor OF) ou ZF) = 1 JNC CF = 0 JNE / JNZ ZF = 0 JNO OF = 0 JNP / JPO PF = 0 JNS SF = 0 JO OF = 1 JP / JPE PF = 1 JS SF = 1
X - 18
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.4.6 - Instruções de controle do processador Operações com flags STC Activa flag de carry CLC Desactiva flag de carry CMC Complementa flag de carry STD Activa flag de direcção CLD Desactiva flag de direcção STI Activa flag de interrupt enable CLI Desctiva flag de interrupt enable Sincronização externa HLT Pára até interrupção ou reset WAIT Espera até pino TEST/ estar activo ESC Escape para processador externo LOCK Prende o bus para a próxima instrução Sem efeito NOP Não efectua nenhuma operação
X - 19
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.5 - MODOS DE ENDEREÇAMENTO Cálculo dos endereços de memória
BX
BP
SI
DI
ou
ou
ou
BX
BP
ou
SI
DI
ou
ou
ou
ou
deslocamento
0
0
0
0
CS
SS
DS
ES
Índice simples Índice duplo
Endereçoefectivo
EU
BIU
Codificadonainstrução
Explícitonainstrução
Assumidoporomissão
Ender. físico
Fig 38 O endereço efectivo é calculado pela EU. É um número de 16 bits que representa a distância do operando ao início do segmento onde reside.
X - 20
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.5.1 - Operandos em registo e imediato As instruções com operandos apenas em registo são as mais compactas e rápidas. São executadas inteiramente na CPU. Exemplo: ADD AX, BX Os operandos imediatos são constantes contidas na instrução, sendo por isso de acesso rápido. Servem apenas como origem, nunca como destino. Exemplo: ADD AL, 5 X.5.2 - Endereçamento directo É o modo de endereçamento mais simples. É usado para endereçar variáveis simples (escalares).
OP CODE R/M MOD deslocamento
End. efectivo Fig 39
Exemplo: ADD CX, alfa ADD alfa, 6
X - 21
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.5.3 - Endereçamento indirecto Uma instrução pode operar em diferentes posições de memória se o registo de base ou índice for actualizado. Instruções aritméticas e LEA podem ser usadas para o efeito.
OP CODE R/M MOD
End. efectivoou
ouBX
BP
SIou
DI Fig 40
Exemplo: ADD BL, [BX] ADD [SI], 12
X - 22
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.5.4 - Endereçamento com registo de base O endereço efectivo é a soma do deslocamento com o conteúdo do registo BX ou BP. É usado para endereçar estruturas.
OP CODE R/M MOD deslocamento
End. efectivo
ouBX
BP
Fig 41
Acesso a uma estrutura usando endereçamento com base
deslocamento
End. efectivo
Registo base
Número_de_aluno
Idade Estado
Curso
Data_de_inscrição
Turma
(Data_de_inscrição)Propina Atraso
Endereços altos
Número_de_aluno
Idade Estado
Curso
Data_de_inscrição
Turma
Propina Atraso
Endereços baixos
deslocamento
End. efectivo
Registo base
(Data_de_inscrição)
Fig 41a
Exemplo: ADD [vector].alfa, AH
X - 23
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.5.5 - Endereçamento indexado O endereço efectivo é a soma do deslocamento com o conteúdo de SI ou DI. É usado para o endereçamento de vectores.
OP CODE R/M MOD deslocamento
End. efectivo
ouSI
DI
Fig 42
Acesso a um vector usando endereçamento indexado
deslocamento
End. efectivo
Endereços altos
Endereços baixos
deslocamento
End. efectivo
Registo de índice Registo de índice
Array (0)
Array (1)
Array (2)
Array (3)
Array (4)
Array (5)
Array (6)
Array (7)
Array (8)
Array (9)
Array (10)
Array (11)
20 6
1 word
Fig 42a Exemplo: ADD CX, alfa[SI] ADD alfa[DI+2], 10
X - 24
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.5.6 - Endereçamento indexado e com registo de base O endereço efectivo é a soma do registo de base com um registo de índice e um deslocamento.
OP CODE R/M MOD deslocamento
End. efectivo
ou
ouSI
DI
BX
BP
Fig 43
Exemplo: ADD [BX].alfa[SI], AL ADD SI, [BP+4][DI] X.5.7 - Endereçamento de strings Os registos de índice são usados implicitamente. Em operações repetidas a CPU ajusta SI e DI automaticamente de modo a obter bytes ou words.
OP CODE
End. efectivo
End. efectivo
SI
DI
(origem)
(destino) Fig 44
X - 25
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.5.8 - Endereçamento de portos de I/O No endereçamento directo o número do porto é um operando de 8 bits imediato.
End. do porto
OP CODE Dado
Fig 45
Exemplo: IN AL, 30 No endereçamento indirecto o número do porto é lido de DX e utiliza 16 bits.
OP CODE
End. do portoDX Fig 46
Exemplo: OUT DX, AX
X - 26
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.6 - PROGRAMAÇÃO EM ASSEMBLY 86 X.6.1 - Definição de dados Constantes Podem ser números binários, decimais, octais ou hexadecimais. Todos os números devem ser representados em 16 bits incluindo um bit de sinal. Os números negativos são representados em complemento para 2. Exemplos:
letra_A EQU 'A' ;caracter hexa_A EQU 41H ;equivalente em hex. hexa_196 EQU 0C4H ;hexadecimal octal_8 EQU 10O ;octal tudo_uns EQU 11111111B ;binário menos_5 EQU -5 ;decimal
X - 27
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Variáveis Podem ser do tipo byte , word ou doubleword. As directivas DB, DW e DD servem para reservar o respectivo espaço em memória. Exemplos:
dados_1 SEGMENT alfa DB ? ;não inicializada beta DW ? ;não inicializada gama DD ? ;não inicializada delta DB ? ;não inicializada epsilon DW 5 ;contém 05H dados_1 ENDS dados_2 SEGMENT AT 55H ;especifica endereço de base iota DB 'HELLO' ;contém 48 45 4C 4C 4F H kapa DW 'AB' ;contém 42 41 H lambda DD dados_1 ;contém 0000 5500 H mu DB 100 DUP (0) ;contém (100 x) 00H dados_2 ENDS
X - 28
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
O assembly 86 guarda três atributos de cada variável e fornece dois operadores que podem ser usados em programação.
Atributos Operadores Variável Segmento Offset Tipo LENGTH SIZE alfa dados_1 0 1 1 1 beta dados_1 1 2 1 2 gama dados_1 3 4 1 4 delta dados_1 7 1 1 1 epsilon dados_1 8 2 1 2 iota dados_2 0 1 5 5 kapa dados_2 5 2 1 2 lambda dados_2 7 4 1 4 mu dados_2 11 1 100 100 Estruturas Uma estrutura é uma entidade que dá um nome e atributos a um conjunto de campos. Exemplo:
empregado STRUC num_cont DB 9 DUP(?) dept DB 1 DUP(?) ano_contr DW 1 DUP(?) empregado ENDS
X - 29
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
X.6.2 - Directivas Um programa em assembly 86 compreende uma série de segmentos: segmento de código, segmento de dados, segmento de stack. As directivas SEGMENT e ENDS iniciam e terminam o segmento. A directiva ASSUME diz ao assemblador quais os endereços que serão colocados nos registos de segmento durante a execução do programa. Exemplo:
dados SEGMENT ;definição dos dados dados ENDS pilha SEGMENT DW 100 DUP(?) topo_da_pilha LABEL WORD pilha ENDS codigo SEGMENT ASSUME CS: codigo DS: dados ES: dados SS: pilha inicio: MOV AX, dados MOV DS, AX MOV ES, AX MOV AX, pilha MOV SS, AX MOV SP, OFFSET topo_da_pilha ; programa principal codigo ENDS END inicio
X.6.3 - Procedimentos
X - 30
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
Um procedimento em assembly 86 é invocado com a instrução CALL. O procedimento termina com a instrução RET que transfere o controle para a instrução seguinte ao CALL. Os parâmetros para o procedimento podem ser passados por registo ou por stack. Exemplo:
savebp MACRO ; definição de uma macro PUSH BP ; guarda o valor de bp MOV BP, SP ENDM ; fim da definição de macro deccount PROC NEAR ; definição de um procedimento num EQU WORD PTR [BP+4] savebp PUSH num CALL _lercount ADD SP, 2 DEC AX PUSH AX PUSH num CALL _esccount ADD SP,4 POP BP ; repõe o valor de bp RET deccount ENDP ; fim da definição de ; procedimento ; Programa principal ... PUSH indice CALL deccount ADD SP,2
... X.6.4 - Strings Exemplo de cópia (deslocada de 10 bytes) de 20 bytes da string linha_1 para a string linha_2.
X - 31
____________________________________________________________________________________________________________ Arquitectura de Computadores AP
LEA SI, linha_1 ;inicializa LEA DI, linha_2 + 10 ;registos de índice MOV CX, 20 ;contador de repetições CLD ;auto-incrementa REP MOVS linha_2, linha_1 Exemplo de comparação alfabética de 2 nomes. MOV SI, OFFSET nome_1 ;alternativo ao LEA MOV DI, OFFSET nome_2 MOV CX, SIZE nome_2 ;contador CLD ;auto-incrementa REPE CMPS nome_2, nome_1 ;enquanto for igual JB nome_2_menor nome_1_menor: ;não é relevante para nome_2_menor: ;o exemplo Exemplo de procura do último ponto ('.') numa string. MOV DI, OFFSET frase + & LENGTH frase ;começa pelo fim MOV CX, SIZE frase ;contador STD ;auto-decrementa MOV AL, '.' ;argumento de procura REPNE SCAS frase JCXZ nao_ha_ponto ha_ponto: ;não é relevante para nao_ha_ponto: ;o exemplo
M - 1
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL
ROM MC
Registos
Reg ALU
Cache CAM
Unidadedecontrole
Processador
CACHE(RAM bipolar)Ta ~ 20 ns
Memória Central(RAM MOS)Ta ~ 80-100 ns
RAM 1
CPU
Discos
Memória Secundária(TecnologiaElectromecânica)Ta ~ ms
RAM n
Fig 47
Quando se caminha no sentido da memória secundária encontramos memórias com maior capacidade, maior tempo de acesso e mais baixo custo/bit.
M - 2
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
M.2 - TECNOLOGIA M.2.1 - Características das principais memórias Modos de acesso i) Acesso aleatório
Tempo de acesso é o mesmo para todas as palavras. Modo típico de acesso em memória central. Ex.: Memória semicondutora (MOS, bipolar)
ii) Acesso sequencial
Tempo de acesso depende da localização em memória da palavra à qual se pretende aceder. Típico de memória secundária. Ex.: discos e banda magnética.
iii) Acesso associativo
Acesso feito só a palavras que tenham um dado conteúdo parcial. Típicamente usado em tabelas de cache ou na memória central em aplicações especiais.
Tecnologias
Tecnologia Custo/bit relativo
Ta (s) Modo de acesso
Permanência Meio físico
Semicondutora
bipolar
10
10-8
Aleatório
Volátil
Electrónico
Semicondutora
MOS
1
10-7
Aleatório
Volátil
Electrónico
Discos magnéticos
10-2
10-2
Série (Série-Aleatório)
Não-volátil
Magnético
Bandas magnéticas
10-3
10-1
Série
Não-volátil
Magnético
M.2.2 - Memórias de acesso aleatório
M - 3
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Descodificador
de endereços
Células de
memória
MAR MDR1 MDR2Controle
Driver deendereços
BUS de controleBUS de endereços
Sinais decontrole interno
Driver deescrita
Driver deleitura
BUS de dados
UNIDADE DE MEMÓRIA
Fig 48
MAR - Memory Address Register MDR - Memory Data Register UCM - Unidade de Controle de Memória • MDR1 e MDR2 formam normalmente um único registo MDR. • Drivers, descodificador e UCM formam os circuitos de acesso da unidade de memória.
M - 4
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Organização das células de memória Organização a 1 dimensão
DESCODIFICADOR
C1
Cn
BUS deendereços
Fig 49
• cada célula está ligada a uma linha do endereço
descodificado • capacidade de N bits ⇒ descodificador com N saídas
e n drivers de endereço Organização a 2 dimensões
BUS deendereços
C00 C01 C02 C03
C10 C11 C12 C13
C20 C21 C22 C23
C30 C31 C32 C33
DESCODIFICADOR Y
DESCODIFICADOR
X
Fig 50
• campo de endereços dividido em 2 componentes X e Y, cada um com ax e ay bits respectivamente
M - 5
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• as células estão dispostas num array rectangular com Nx ≤ 2ax linhas e Ny ≤ 2ay colunas. O número total de células é N=Nx.Ny.
• Uma célula é seleccionada por coincidência de
sinais nas suas linhas de endereço X e Y. • A organização 2-D requer menor número de circuitos
de acesso que a 1-D. Ex: Nx=Ny= N ⇒ 2 N drivers e 2 descodificadores com
N saídas. Implementação Uma célula de memória semicondutora pode ser implementada com:
• um flip-flop MOS ou bipolar (estática); • um transistor e um condensador (dinâmica).
As RAM's dinâmicas são mais baratas e têm alta densidade de integração. Requerem circuitos especiais para refrescamento das células.
M - 6
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Desenho de um array de memória
Um problema comum a resolver é ter CI's (circuitos integrados) com capacidade de m × n bits e precisar de uma memória m'× n', sendo m'≥ m e n'≥ n.
Símbolo para um circuito de 4 × 2 bits de memória
M4x2A0
A1
AE WE
Z0
Z1
X0 X1
Linhas deendereço
Saída dedados
Entrada de dados
Linhas de controle
Fig 51
Array de memória de 16 × 4 bits
M4x2
A0
A1
WE
Z0 Z1
X0X1
M4x2
M4x2 M4x2
M4x2 M4x2
M4x2 M4x2
Descod.
Enable
A2
A3
X2X3
AN
Z2 Z3 Fig 52
M.2.3 - Memórias de acesso sequencial
M - 7
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• Disco magnético é uma das memórias de acesso sequencial mais usada. • Outras tecnologias: tambor magnético, banda magnética, disquetes, etc. O disco é coberto com um material magnetizável. Existem sistemas com cabeças fixas e com cabeças móveis. O disco gira por debaixo das cabeças de leitura/escrita por acção de um motor eléctrico, definindo-se pistas na superfície do disco. Geralmente ambos os lados do disco são usados para guardar informação. • Cabeças fixas - para aceder a uma dada palavra a lógica de controle do disco tem que esperar que seja atingido o ângulo de rotação correcto do disco. • Cabeças móveis - para aceder a uma palavra, o mesmo que para cabeças fixas e adicionalmente é necessário posicionar a cabeça na pista correcta. Cilindro - conjunto de pistas acessíveis por todas as cabeças numa dada posição. Os discos com cabeças móveis são geralmente mais lentos do que os com cabeças fixas, embora sejam os mais utilizados. Características físicas • Bits estão armazenados em pistas concêntricas na superfície e em densidades de 1000 a vários milhares de bits por polegada. • Densidades de pista entre 50 a várias centenas de pistas por polegada.
M - 8
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Exemplo 1 Considere-se um "disk pack" com cabeças móveis de 18 polegadas (in) de diâmetro e 20 superfícies (s) de armazenamento. Cada superfície tem uma faixa de 5 in de informação gravada com a densidade de 2000 bits/in (b/i) na pista mais interior e 100 pistas/in (t/i).
Capacidade = nº de pistas . b/i . circunferência nº de pistas = s . t/i . 5 = 20.100.5 = 104 Capacidade ≈ 104 . 2 . 103 . 25 = 5.108 bits
Exemplo 2 Considere-se o mesmo sistema de discos, supondo que se tem um motor a rodar a 2400 rpm.
Tempo de rotação = 1vel. motor = 60 10 ms / min
2400 rpm = 25 ms3×
"Head rate" = bits por pistatempo de rotação = 50 10 bit
25 ms = 2 10 bit / s3
6× ×
Disco com cabeças móveis
M - 9
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Lógica deselecçãodecilindro
Controladordedisco
Lógica deselecçãodecabeças
MOTOR
Motor deposiciona-mento decilindro
PA
PA
PA
Pré-amplificadores
Umcilindro
Cabeça deescrita/leitura
Fig 53
Acesso a uma palavra no disco (cabeças móveis)
• A cabeça deve ser colocada na pista correcta. É a chamada operação de busca (seek). Todas as cabeças se movimentam solidariamente.
• É necessário aceder à palavra na pista. A identificação do endereço é feita conjuntamente por secções de informação especialmente formatadas e por informação existente na pista quanto à posição angular (circunferência dividida em sectores). Tempo de acesso máximo e tempo de acesso médio em discos, são normalmente indicados pelos fabricantes.
O Ta máx é o tempo de busca mais longo mais o tempo de uma rotação. O Ta med é determinado de diferentes modos de fabricante para fabricante. M.3 - MEMÓRIA CENTRAL M.3.1 - Generalidades
M - 10
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
UCM
MAR MDR
RAMDesc.End.
CPU ou canal
dadoscontroleendereços
Fig 54
Tempo de ciclo de memória - período mínimo que tem que mediar entre dois acessos consecutivos a memória. A Unidade de Controle de Memória (UCM) é um conjunto de circuitos lógicos (variável de máquina para máquina) que aceita endereços do exterior e lê ou armazena informação na memória.
Funções principais da UCM • Interface entre a memória e o resto da máquina
• Fiscalizar a integridade da informação
• Gestão de memória
• Protecção de memória M.3.2 - Protecções no acesso a memória central
M - 11
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Endereço
TesteRegistosDelimi-tadores
TesteChave,
Fechadura
TESTand SET
Endereçorejeitado
Estado de esperaou nova tentativa
LeituraTeste
"tag bits"
Teste"tag bits"
Acçãoadequada
Acesso a uma regiãode memória
Acesso aum blocona região
Leitura Escrita
Escrita
Acesso auma
palavra
Palavra lida Palavra escrita
S
N
N
S
S
N
S
N
N
Diag 6
i) Teste dos registos delimitadores
M - 12
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Restrigem o acesso a certas zonas fixas de memória para um programa. O hardware está localizado no processador de endereços na CPU.
End. Base
End. Limite
Somador
Comparador RegistoDelimitador
Registo Base
Interrupção
ao Sist. Oper. Endereço efectivoválido
Endereço geradopelo programa
Fig 55
ii) Teste de chave e fechadura (lock and key) Protecção a nível mais baixo que a dos registos delimitadores. Protege blocos dentro de uma região de memória. Exemplos
• Acesso negado (tabelas de sistema)
M - 13
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• Acesso só de leitura (a um programa de outro utilizador)
• Acesso leitura/escrita
Blocos de memória são protegidos por uma fechadura (combinação de bits associada ao bloco). Acesso é permitido se o utilizador tiver a chave respectiva assignada pelo sistema operativo. Exemplo do IBM 370 Cada bloco de 2 Kbyte tem associada uma fechadura de 4 bits (storage key) e 1 bit de protecção (read/write ou write protected). A cada utilizador é assignada uma chave (protection key) de 4 bits pelo sistema operativo quando o seu programa está a correr. Permite até 16 utilizadores simultâneos. Chave : Fechadura Bit de protecção Acções permitidas
Iguais 0 Leitura/Escrita Iguais 1 Leitura/Escrita
Diferentes 0 Só leitura Diferentes 1 Não há acesso
Uma chave 0000 permite aceder a qualquer fechadura. É utilizada pelo sistema operativo. iii) Teste de "TEST and SET" Nalgumas circunstâncias desejamos que vários utilizadores tenham acesso aos mesmos blocos de memória mas só um de cada vez. Alguns computadores têm uma instrução do tipo "TEST and SET" (IBM 370, UNIVAC 1108).
M - 14
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Uma área de memória está protegida por um bit de controle. Se o bit de controle=0 quando TEST and SET é executado, o bit é passado a 1 e o programa acede a essa área. Se o bit de controle=1, é negado o acesso à área. Após completar o acesso, o programa deve fazer o reset do bit de controle. iv) "Tag bits" É um conjunto de bits associados a uma palavra de memória e contendo informação sobre essa palavra. As tags protegem palavras e não blocos. Exemplos:
• bits de paridade; • distinção entre palavras de programa e dados.
v) Detecção e correcção de erros
Para detectar um erro basta acrescentar um bit de paridade à palavra. Aumentando o número de bits de paridade teremos possibilidades de detectar mais erros e de corrigi-los.
Nas máquinas actuais é normal existir controle de erros a nível de periféricos, memória central e memória secundária.
Exemplo de código corrector de 1 erro (código de Hamming)
Suponhamos palavras de 4 bits: d4 d3 d2 d1
São necessários 3 bits de paridade: p3 p2 p1
• p1 controla as posições 1, 3, 5, 7 • p2 controla as posições 2, 3, 6, 7
M - 15
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• p3 controla as posições 4, 5, 6, 7 Controlando a paridade nestes três grupos de posições, com um circuito combinatório, obtém-se a quantidade c3 c2 c1 que indica a posição do erro, ou se for igual a zero, indica não haver erro. Se enviar a palavra p1p2p3d1d2d3d4=1101001 e receber 1101011, detecto um erro em p2 e p3. Isto dá-me a indicação de um erro no bit 6 da palavra. Para corrigir 1 erro numa palavra com n bits são necessários k bits extra, tal que:
2k ≥ n + k + 1
k ≥ log2(n + k + 1) M.4 - ORGANIZAÇÃO DE MEMÓRIA DE ALTA VELOCIDADE Se o tempo de ciclo de memória for satisfatório pode--se usar a organização tradicional de memória. Se o processador for muito rápido e pretendermos atingir uma maior velocidade de acesso, e admitindo que não se usa uma tecnologia mais rápida teremos que usar memórias paralelas ou cache, ou ambas. Em ambas as organizações se tem por objectivo aumentar a largura de banda da memória. Ambas envolvem o uso de hardware adicional e necessitam que haja uma certa regularidade no seu endereçamento para que se possa atingir o seu objectivo. M.4.1 - Memórias paralelas Memória central com 2 módulos
M - 16
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
CPU
UCM
MAR0 MDR0
R A M 0Endereços pares
MAR1MDR1
R A M 1
Endereços ímpares
dadosendereços
Unidade de controlede memória
Fig 56
• Sistema de memórias paralelas ou multi-memória É qualquer sistema de memória que contenha um número de unidades de memória endereçáveis separadamente. • Sistema de memória com endereçamento entrelaçado É um sistema multi-memória com m unidades em que os endereços sucessivos são assignados através das unidades, módulo m. Regra de entrelaçamento - assignar o endereço Ai à unidade Mj se i=j(mod m).
m=3
Unidade 0: A0, A3, A6, ... Unidade 1: A1, A4, A7, ... Unidade 2: A2, A5, A8, ...
M - 17
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Geralmente: m=2p, os p bits menos significativos do endereço identificam imediatamente a unidade à qual o endereço pertence.
M - 18
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
M.4.2 - Memórias paralelas em multiprocessadores e processadores paralelos Multiprocessador com memórias de endereço entrelaçado
UCM
Unid.Mem. 0
UCM
UCM
Unid.Mem. 1
Unid.Mem.m-1
CPU 0 CPU 1 CPU n-1
porto 0
porto 0
porto 0
1
n-1
n-1
1
n-1
1
Fig 57
Processador paralelo com memórias múltiplas
Unidade decontrole
Proc 0 Proc 1 Proc n-1
UCM UCM UCM
Unid.Mem 0
Unid.Mem 0
Unid.Mem m-1
Rede de interligações
Fig 58
Como evitar conflitos nos acessos a arrays de dados?
M - 19
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Por uma disposição adequada dos arrays em memória, conforme o acesso que se pretende. Arrays uni-dimensionais Suponhamos m=4
0 1 2 3 Unidades de memória a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 - - - - - - -
Acedendo só aos elementos ímpares, a largura de banda é reduzida para metade. Sendo m primo, quaisquer n elementos que estejam distanciados entre si de um valor primo com m podem ser acedidos simultaneamente sem conflitos. Exemplo: m=5
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20
Elementos distanciados entre si de 2, 3 ou 4 podem ser acedidos simultaneamente sem conflito. Arrays bidimensionais m unidades de memória Pretende-se aceder a vectores com n elementos m=4, n=4
0 1 2 3 Unidades de memória
M - 20
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33
Straight storage
Acesso a linhas e diagonais sem conflitos, mas não a colunas.
0 1 2 3 Unidades de memória a00 a01 a02 a03 a13 a10 a11 a12 a22 a23 a20 a21 a31 a32 a33 a30
Skewed storage
Acesso a linhas e colunas sem conflitos, mas não a diagonais. Não é possível armazenar uma matriz (n×n) em m=n unidades de memória, quando m é par de modo a que se possa aceder arbitrariamente a linhas, colunas e diagonais sem conflitos.
M - 21
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
M.4.3 - Memórias cache Cache - é uma memória de pequena capacidade existente entre a memória central e a CPU, com um tempo de acesso mais rápido do que a memória central e que funciona como um buffer entre CPU e memória central. Objectivo: fazer com que o tempo de acesso médio a memória do ponto de vista do processador seja tão próximo quanto possível do tempo de acesso da cache. "Locality of reference" - durante um curto espaço de tempo os endereços gerados por um programa típico tendem a ficar confinados a pequenas regiões do seu espaço de endereçamento lógico. M.4.3.1 - Configuração de um sistema com memória cache
MemóriaCentral
UCM
Cache
CPU
Fig 59 A UCM através de hardware especial, faz a gestão da cache. Se quando a CPU acede à cache a palavra não existe lá, um bloco completo é transferido da memória central para a cache. Existirá uma tabela que indica quais os blocos existentes na cache. Algoritmos mais usuais para troca de blocos
i) FIFO ii) LRU iii) Aleatório
A escrita em memória de blocos alterados na cache (dirty blocks) pode ser feita de duas maneiras:
M - 22
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• "write back" - espera-se até que o bloco volte à
memória central e todo o bloco é ali escrito; • "write through" - qualquer escrita numa palavra da
cache pela CPU é também efectuada na palavra correspondente de memória central.
M.4.3.1.1 - Organização sectorial
1 sector
bit devalidade
Blocos
TAG
CACHE CACHEMemóriaCentral
Sectores
Sectores
tags
Fig 60
• Cache e Memória Central estão divididas em sectores ou páginas. • Sectores são divididos em blocos de poucas palavras. • No caso de memórias entrelaçadas é típico a dimensão do bloco estar ligada ao número de módulos, de modo a que todo o bloco possa ser transferido num ciclo de memória, ou num número múltiplo de ciclos de memória. • Existe um bit de validade associado a cada bloco para indicar se o bloco pertence ou não ao sector referenciado.
M - 23
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• O algoritmo de substituição trabalha sector a sector e dentro do sector os blocos têm posições fixas. Uma tag está associada a cada sector, indicando o sector de Memória Central ao qual pertence. Acesso da CPU à cache Endereço: (si, bj, dk)
si - sector Busca associativa de uma tag que indique que o sector existe na cache
bj - índice para um bloco no sector Verificar se o bit de validade é válido.
dk - índice para uma palavra no bloco
M - 24
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Falta de bloco - trazer o bloco de MC para cache e colocar o "bit de validade" válido.
Falta de sector - depois de o algoritmo de substituição escolher o sector a substituir na cache, trazer da cache o bloco bj (si), modificar a tag do sector e bit de validade só válido no bloco bj, nos outros blocos do sector será inválido.
É utilizado "write through", pois não se pode fazer "write back" bloco a bloco (um bloco inválido pode fazer parte de um sector já substituído e cujo endereço se perdeu na cache).
M.4.3.1.2 - Organização de correspondência directa (Direct Mapping)
• Não existem sectores.
• Cada bloco tem a sua própria tag, e tem um lugar fixo na cache. Numa cache de n blocos, os blocos k, k+n, k+2n, etc. da MC são assignados à mesma posição da cache.
• Quando a CPU acede à cache tem que ver se no endereço (si, bj, dk) os si bits são iguais aos da tag. Não há busca associativa, não há bit de validade nem algoritmo de substituição.
• Organização simples mas com problemas de eficiência (baixo "hit ratio") se 2 ou mais blocos frequentemente utilizados têm a mesma posição na cache. Exemplo: PDP-11 / 60 com blocos de 1 w A cache tem 1024 w
M - 25
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
CPUTAGAREA
DATAAREA
CacheControl
Comp
A0-A9
A0-A23
Equal
CACHE
Address BUS(24 bits)
Data BUS
Address BUS
Fig 61
M.4.3.2 - Eficiência no acesso à cache Cache Hit Ratio (∅) - fracção dos endereços da memória central emitidos pela unidade de controle que podem ser satisfeitos quando do acesso à cache (inclui acesso a instruções e dados).
Te = Tc.∅ + (1 - ∅).Tm Tc - tempo de ciclo de cache Tm - tempo de ciclo de memória central Te - tempo de ciclo efectivo da memória 1-∅ − "Miss Ratio" Sc - Aumento de velocidade devido à cache
Sc = TT
m
e
S = T
.T .T 1 T
T (1- )= 1
1- (1-TT
cm
c m c
m
c
m
φ φ φφ φ
+ − =+
( ))
1
M - 26
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
1/2 1 ∅
Sc
1
Tm/Tc
2TmTm+Tc
Fig 62
Exemplo
Estamos a projectar uma cache e pretendemos determinar a sua capacidade. Medimos ∅ para um conjunto de programas, supondo caches de 4k e 8Kbytes.
∅4k = 0,93
∅8k = 0,97 Supondo TT
c
m=0,12
S 11- 0,88 0,93 5,5c
4k = × ≅
S = 11- 0,88 0,97 6,85c
8k× ≅
Aumentando a capacidade da cache de 4 Kbyte obteve-se uma melhoria no aumento da velocidade de:
S -SS
0,24c8k
c4k
c4k ≅
Exemplos de cache em máquinas IBM
Tm Tc Tm/Tc Capacid. cache(w)
Dimensãobloco(w)
M - 27
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
360/85 1,04µs 80ns 13 2k→4k 8 360/195 756ns 54ns 14,2 4k 8 370/165 2µs 80ns 25 1k→2k 16 M.4.4 - Memórias associativas Acesso associativo - acesso feito pelo conteúdo ou
parte do conteúdo e não pelo endereço. Memória associativa ou CAM - memória com acesso
associativo, examinando simultaneamente todas as posições de memória e seleccionando as que satisfazem a condição.
Chave - campo escolhido para endereçamento de
memória. Chave, Dado - estrutura de uma palavra numa memória
associativa.
M - 28
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Memória associativa (2×2)
IE
ID
S WEOD
M00W
IE
ID
S WEOD
M
W
IE
ID
S WEOD
M
WIE
ID
S WEOD
M
W
10
01 11
IE
IE
0
1
ID
ID
0
1
S S0 1 WE
OD
OD
0
1
M M0 1
Palavra 0 Palavra 1
Registo deentrada
Registo demáscara
Sinais de "match"
Registo desaída
Endereço vindo do circuito de selecção
Fig 63
Estrutura de uma memória associativa
Entrada
Reg. Entrada
Reg. Máscara
MemóriaCircuito deselecção
Reg. Saída
Saída
ID IE
Match
Select
OD
Fig 64
Célula de uma memória associativa (1 bit)
M - 29
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
IE
ID
S WE
OD
M
IE
ID
S WEOD
M
S - SelectWE - Write enableIE - Input enableID - Input dataOD - Output dataM - Match
Fig 65 M.5 - PROCESSAMENTO DE ENDEREÇOS O processador de endereços determina o endereço efectivo. O processamento de endereços feito na CPU está intimamente ligado ao método de gestão de memória feito pelo sistema operativo. M.5.1 - Sistema mono-programado
SistemaOperativo
Disponívelpara outilizador
Utilizadopeloprograma
Fig 66
Vantagens: i) Simplicidade, sistema operativo pode necessitar só de 1Kb, em contraste com
M - 30
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
sistema operativos multiprogramação que podem atingir centenas de Kb. ii) Fácil compreensão e utilização.
Desvantagens: i) Memória não é completamente
utilizada. ii) Programa limitado ao tamanho da memória.
Exemplos: IBM OS/360 Primary Control Program IBM 1130 Disk Monitor System Loader Relocador - Soma ao campo de endereço uma constante de relocação igual ao endereço de base no qual é carregado a primeira instrução do programa. Os endereços modificáveis são os que dependem da posição do programa em memória. O loader relocador pode também fazer a operação de linkagem (linking loader). Este tipo de relocação é conhecido por Relocação Estática. M.5.2 - Sistemas multi-programados Sistema que pode ter vários processos em estado de execução.
M - 31
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
M.5.2.1 - Sistema de partições Situação de memória partilhada, em que a memória central é dividida em partições.
PROG 5
PROG 1
PROG 2
PROG 3
PROG 4
SISTEMA20K
10K
20K
15K
30K
20K
10K
PROG 1
PROG 3
Saem
PROG 5
PROG 2
PROG 4
SISTEMA20K
10K
20K
15K
30K
20K
10K
(i) (ii)
Memória fragmentada Fig 67
Supondo que em ii) temos um programa para executar maior do que qualquer das áreas livres, podemos escolher uma das opções (considerando só relocação estática):
• Esperar que outra área de memória contígua fique livre
• Carregar o programa em áreas não contíguas • Compactar a memória ← melhor solução
A compactação é difícil de executar com relocação estática, pois o espaço de endereçamento dos programas é alterado na relocação. Para compactar a memória, num sistema de gestão baseado em partições, o melhor será usar Relocação Dinâmica. Relocação dinâmica - a relocação do espaço de endereçamento é feita durante a execução do programa e não durante o carregamento.
M - 32
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
End. efectivo Registo de base
Somador
Endereço de memória
Fig 68
Hardware existente no processador de endereços da CPU. O espaço de endereçamento do programa fica independente da localização do programa em memória. Exemplo
MPY A
R.Base
S1
A
A+S1
MPY A
R.Base
A
A+S2
S2
Programa movimentado Fig 69
A relocação dinâmica não resolve 3 problemas:
• Fragmentação continua a existir, a não ser que existam sucessivas compactações
• A compactação pode demorar um tempo substancial a ser executada
M - 33
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• O espaço de endereçamento lógico está limitado pela dimensão física da memória central Exemplo: DEC PDP-10 e UNIVAC 1108
M.5.2.2 - Paginação O espaço de endereçamento é dividido em partes iguais com comprimento fixo, normalmente de 1Kb a 4Kb. A cada uma dessas partes chama-se página. Bloco - área de memória central com limites de endereçamento fixos e com a dimensão de uma página.
Paginação - método que permite movimentar páginas de disco para blocos de memória e vice-versa, por uma combinação de hardware e software. A paginação evita a fragmentação (excepto fragmentação interna) sem fazer compactação. Problemas
• Existência de fragmentação interna (última página parcialmente vazia).
• Todo o programa em memória, a não ser que esteja "overlayed".
Exemplo: Sistema com memória paginada
M - 34
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Livre
LivreLivre
SistemaOperativo
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
11000
0
1000
2000
0
1000
2000
0
012
012
0
569
247
8
PROG 1
PROG 2
PROG 3
Nº depágina
Nº debloco
Programas dosutilizadores
Tabelas depáginas
Memória Central Fig 70
Exemplos: XDS Sigma 7, CDC 3300
Em resumo:
• O espaço de endereçamento de um processo é dividido em páginas.
• A memória é dividida em blocos.
As páginas de um processo devem estar todas em memória. Há uma tabela de páginas para cada processo.
As tabelas de páginas existem normalmente em memória mas também poderão existir em registos.
Existe também uma tabela de blocos, indicando quais os blocos livres.
M.5.2.3 - Memória virtual baseada em paginação Nem todas as páginas de um processo precisam de estar em memória. As tabelas de páginas são estendidas com mais 1 bit, revelando se a página está ou não em memória.
M - 35
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Uma cópia completa do espaço de endereçamento do processo existe em disco. Existirá uma tabela de ficheiros (gestão de informação pelo sistema operativo) por cada processo, que indica para cada página do processo qual o endereço em disco. Não estando a página em memória, é originada uma interrupção ao sistema operativo, que delega a troca de páginas num programa especial de E/S (entradas/saídas). Se não houver blocos livres (tabela de blocos) é feita a troca de páginas segundo um dado algoritmo. Normalmente quando um processo se inicia, só a primeira página é trazida para memória. Memória Virtual - Sistema em que o programador pode referenciar mais posições do que as que estão assignadas ao seu programa em memória central, i. e., pode referenciar posições de memória saecundária. • A gestão do espaço de memória é feita pelo sistema operativo. O princípio de "locality of reference" favorece a implementação de memória virtual. Endereçamento de memória virtual
M - 36
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Tabela de páginas
Memória Central
(2 )p
Memória Secundária
(2 -2 )v p
Memória Virtual
(2 )v
γk
γ
γ
γ
j
i
1
δ
δr
αqαp
αq
αp
γ1
γi
γj
γk
página 1
página i
página j
página k
página 2v-ls
δs
δr
página 1
página 2p-l
δ1tamanho do bloco = 2
l
Fig 71
Tabela de páginas
Endereço dememóriasecundária
Pedido depágina
Troca depágina comM. Central
Actualizaçãode tabelade páginas
Nº depágina
Nº delinha
Nº delinha
Nº depage frame
v-l l lp-l
endereço virtual do programa
endereço emmemória central
pagefault
Fig 72
Algoritmos para troca de páginas
M - 37
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
• Estratégia de troca óptima • First-in first-out (FIFO) • Least Recently Used (LRU) Parâmetros a considerar em memória virtual • Custo por bit
C = C S + C S
S + S1 1 2 2
1 2
Ci - custo por bit Si - capacidade
• "Hit Ratio"
H = N
N + N21
1
N1 - nº de referências a memória central
N2 - nº de referências a memória secundária
• Tempo de acesso
tA = H.tA1 + (1-H).tA2
tA2 = tB + tA1
tA = tA1 + (1-H).tB O primeiro sistema de memória virtual paginada foi o ATLAS (Universidade de Manchester) com 32 blocos de 512 palavras. A memória secundária era um tambor magnético. Exemplos actuais: VS/1, VS/2 (IBM) e VAX/VMS M.5.2.4 - Memória virtual segmentada Segmento - conjunto de palavras contíguas relacionadas logicamente. Uma palavra num segmento é identificada pelo endereço de base do segmento e um endereço relativo a essa base.
M - 38
____________________________________________________________________________________________________________ Arquitectura de Processadores ASP93
Segmentação - técnica de gestão de memória que faz a alocação de memória por segmentos. Existirá uma tabela de segmentos semelhante à tabela de páginas, mas que indicará a dimensão de cada segmento, a sua existência ou não em memória central e o respectivo endereço. Comparação com memória virtual paginada Vantagens
• Módulos de programa são trocados e não páginas. • Facilita partilha de segmentos por vários
processos. Desvantagens
• Dimensão variável dos segmentos complica a gestão.
• Necessita compactação.
top related