Sistemas Digitais - Sebenta

184
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.

description

Sistemas Digitais

Transcript of Sistemas Digitais - Sebenta

Page 1: Sistemas Digitais - Sebenta

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.

Page 2: Sistemas Digitais - Sebenta

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).

Page 3: Sistemas Digitais - Sebenta

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.

Page 4: Sistemas Digitais - Sebenta

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.

Page 5: Sistemas Digitais - Sebenta

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.

Page 6: Sistemas Digitais - Sebenta

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.

Page 7: Sistemas Digitais - Sebenta

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

Page 8: Sistemas Digitais - Sebenta

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

Page 9: Sistemas Digitais - Sebenta

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

Page 10: Sistemas Digitais - Sebenta

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

Page 11: Sistemas Digitais - Sebenta

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.

Page 12: Sistemas Digitais - Sebenta

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

Page 13: Sistemas Digitais - Sebenta

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

Page 14: Sistemas Digitais - Sebenta

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 Ω

Ω

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.

Page 15: Sistemas Digitais - Sebenta

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

Page 16: Sistemas Digitais - Sebenta

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

Page 17: Sistemas Digitais - Sebenta

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

Page 18: Sistemas Digitais - Sebenta

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

Page 19: Sistemas Digitais - Sebenta

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:

Page 20: Sistemas Digitais - Sebenta

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

Page 21: Sistemas Digitais - Sebenta

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

_ _

_ _

Page 22: Sistemas Digitais - Sebenta

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

Page 23: Sistemas Digitais - Sebenta

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)

Page 24: Sistemas Digitais - Sebenta

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)

Page 25: Sistemas Digitais - Sebenta

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

Page 26: Sistemas Digitais - Sebenta

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.

Page 27: Sistemas Digitais - Sebenta

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)

Page 28: Sistemas Digitais - Sebenta

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

Page 29: Sistemas Digitais - Sebenta

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.

Page 30: Sistemas Digitais - Sebenta

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.

Page 31: Sistemas Digitais - Sebenta

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

Page 32: Sistemas Digitais - Sebenta

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.

Page 33: Sistemas Digitais - Sebenta

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 .

Page 34: Sistemas Digitais - Sebenta

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

Page 35: Sistemas Digitais - Sebenta

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.

Page 36: Sistemas Digitais - Sebenta

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

Page 37: Sistemas Digitais - Sebenta

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)

Page 38: Sistemas Digitais - Sebenta

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)

Page 39: Sistemas Digitais - Sebenta

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

Page 40: Sistemas Digitais - Sebenta

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)

Page 41: Sistemas Digitais - Sebenta

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

Page 42: Sistemas Digitais - Sebenta

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

Page 43: Sistemas Digitais - Sebenta

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)

Page 44: Sistemas Digitais - Sebenta

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

Page 45: Sistemas Digitais - Sebenta

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

Page 46: Sistemas Digitais - Sebenta

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.

Page 47: Sistemas Digitais - Sebenta

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.

Page 48: Sistemas Digitais - Sebenta

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.

Page 49: Sistemas Digitais - Sebenta

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

Page 50: Sistemas Digitais - Sebenta

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

Page 51: Sistemas Digitais - Sebenta

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

Page 52: Sistemas Digitais - Sebenta

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.

Page 53: Sistemas Digitais - Sebenta

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.

Page 54: Sistemas Digitais - Sebenta

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

Page 55: Sistemas Digitais - Sebenta

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

Page 56: Sistemas Digitais - Sebenta

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.

Page 57: Sistemas Digitais - Sebenta

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

Page 58: Sistemas Digitais - Sebenta

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

Page 59: Sistemas Digitais - Sebenta

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

Page 60: Sistemas Digitais - Sebenta

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.

Page 61: Sistemas Digitais - Sebenta

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

Page 62: Sistemas Digitais - Sebenta

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

Page 63: Sistemas Digitais - Sebenta

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

Page 64: Sistemas Digitais - Sebenta

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 | ~

Page 65: Sistemas Digitais - Sebenta

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)

Page 66: Sistemas Digitais - Sebenta

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

Page 67: Sistemas Digitais - Sebenta

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.

Page 68: Sistemas Digitais - Sebenta

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

Page 69: Sistemas Digitais - Sebenta

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).

Page 70: Sistemas Digitais - Sebenta

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.

Page 71: Sistemas Digitais - Sebenta

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.

Page 72: Sistemas Digitais - Sebenta

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

Page 73: Sistemas Digitais - Sebenta

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

Page 74: Sistemas Digitais - Sebenta

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

Page 75: Sistemas Digitais - Sebenta

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

Page 76: Sistemas Digitais - Sebenta

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.

Page 77: Sistemas Digitais - Sebenta

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

Page 78: Sistemas Digitais - Sebenta

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

Page 79: Sistemas Digitais - Sebenta

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

Page 80: Sistemas Digitais - Sebenta

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.

Page 81: Sistemas Digitais - Sebenta

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.

Page 82: Sistemas Digitais - Sebenta

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)

Page 83: Sistemas Digitais - Sebenta

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.

Page 84: Sistemas Digitais - Sebenta

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

Page 85: Sistemas Digitais - Sebenta

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.

Page 86: Sistemas Digitais - Sebenta

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)

Page 87: Sistemas Digitais - Sebenta

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

Page 88: Sistemas Digitais - Sebenta

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

Page 89: Sistemas Digitais - Sebenta

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

Page 90: Sistemas Digitais - Sebenta

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

Page 91: Sistemas Digitais - Sebenta

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

Page 92: Sistemas Digitais - Sebenta

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

Page 93: Sistemas Digitais - Sebenta

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

Page 94: Sistemas Digitais - Sebenta

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.

Page 95: Sistemas Digitais - Sebenta

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".

Page 96: Sistemas Digitais - Sebenta

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

Page 97: Sistemas Digitais - Sebenta

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

Page 98: Sistemas Digitais - Sebenta

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.

Page 99: Sistemas Digitais - Sebenta

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

Page 100: Sistemas Digitais - Sebenta

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

Page 101: Sistemas Digitais - Sebenta

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

Page 102: Sistemas Digitais - Sebenta

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

Page 103: Sistemas Digitais - Sebenta

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

Page 104: Sistemas Digitais - Sebenta

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.

Page 105: Sistemas Digitais - Sebenta

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

Page 106: Sistemas Digitais - Sebenta

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

Page 107: Sistemas Digitais - Sebenta

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

Page 108: Sistemas Digitais - Sebenta

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

Page 109: Sistemas Digitais - Sebenta

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

Page 110: Sistemas Digitais - Sebenta

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

Page 111: Sistemas Digitais - Sebenta

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

Page 112: Sistemas Digitais - Sebenta

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)

Page 113: Sistemas Digitais - Sebenta

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)

Page 114: Sistemas Digitais - Sebenta

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

Page 115: Sistemas Digitais - Sebenta

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

Page 116: Sistemas Digitais - Sebenta

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

Page 117: Sistemas Digitais - Sebenta

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:

Page 118: Sistemas Digitais - Sebenta

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

Page 119: Sistemas Digitais - Sebenta

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

Page 120: Sistemas Digitais - Sebenta

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

Page 121: Sistemas Digitais - Sebenta

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

Page 122: Sistemas Digitais - Sebenta

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.

Page 123: Sistemas Digitais - Sebenta

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

Page 124: Sistemas Digitais - Sebenta

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

Page 125: Sistemas Digitais - Sebenta

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

Page 126: Sistemas Digitais - Sebenta

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

Page 127: Sistemas Digitais - Sebenta

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

Page 128: Sistemas Digitais - Sebenta

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

Page 129: Sistemas Digitais - Sebenta

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

Page 130: Sistemas Digitais - Sebenta

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

Page 131: Sistemas Digitais - Sebenta

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

Page 132: Sistemas Digitais - Sebenta

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

Page 133: Sistemas Digitais - Sebenta

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

Page 134: Sistemas Digitais - Sebenta

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.

Page 135: Sistemas Digitais - Sebenta

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

Page 136: Sistemas Digitais - Sebenta

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

Page 137: Sistemas Digitais - Sebenta

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

Page 138: Sistemas Digitais - Sebenta

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

Page 139: Sistemas Digitais - Sebenta

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

Page 140: Sistemas Digitais - Sebenta

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

Page 141: Sistemas Digitais - Sebenta

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

Page 142: Sistemas Digitais - Sebenta

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

Page 143: Sistemas Digitais - Sebenta

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

Page 144: Sistemas Digitais - Sebenta

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

Page 145: Sistemas Digitais - Sebenta

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.

Page 146: Sistemas Digitais - Sebenta

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

Page 147: Sistemas Digitais - Sebenta

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.

Page 148: Sistemas Digitais - Sebenta

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

Page 149: Sistemas Digitais - Sebenta

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.

Page 150: Sistemas Digitais - Sebenta

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

Page 151: Sistemas Digitais - Sebenta

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.

Page 152: Sistemas Digitais - Sebenta

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

Page 153: Sistemas Digitais - Sebenta

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.

Page 154: Sistemas Digitais - Sebenta

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

Page 155: Sistemas Digitais - Sebenta

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

Page 156: Sistemas Digitais - Sebenta

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

Page 157: Sistemas Digitais - Sebenta

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

Page 158: Sistemas Digitais - Sebenta

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)

Page 159: Sistemas Digitais - Sebenta

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).

Page 160: Sistemas Digitais - Sebenta

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

Page 161: Sistemas Digitais - Sebenta

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

Page 162: Sistemas Digitais - Sebenta

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, ...

Page 163: Sistemas Digitais - Sebenta

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.

Page 164: Sistemas Digitais - Sebenta

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?

Page 165: Sistemas Digitais - Sebenta

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

Page 166: Sistemas Digitais - Sebenta

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.

Page 167: Sistemas Digitais - Sebenta

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:

Page 168: Sistemas Digitais - Sebenta

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.

Page 169: Sistemas Digitais - Sebenta

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

Page 170: Sistemas Digitais - Sebenta

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

Page 171: Sistemas Digitais - Sebenta

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

Page 172: Sistemas Digitais - Sebenta

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)

Page 173: Sistemas Digitais - Sebenta

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.

Page 174: Sistemas Digitais - Sebenta

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)

Page 175: Sistemas Digitais - Sebenta

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

Page 176: Sistemas Digitais - Sebenta

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.

Page 177: Sistemas Digitais - Sebenta

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.

Page 178: Sistemas Digitais - Sebenta

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

Page 179: Sistemas Digitais - Sebenta

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

Page 180: Sistemas Digitais - Sebenta

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.

Page 181: Sistemas Digitais - Sebenta

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

Page 182: Sistemas Digitais - Sebenta

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

Page 183: Sistemas Digitais - Sebenta

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.

Page 184: Sistemas Digitais - Sebenta

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.