SD aula9T-2011-2 PB - inf.ufsc.brguntzel/ine5406/SD_aula9T.pdf · INE/CTC/UFSC Slide 9T.14 Prof....

Post on 10-Dec-2018

214 views 0 download

Transcript of SD aula9T-2011-2 PB - inf.ufsc.brguntzel/ine5406/SD_aula9T.pdf · INE/CTC/UFSC Slide 9T.14 Prof....

Universidade Federal de Santa Catarina Centro Tecnológico

Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Aula 9-T 4. Projeto de Sistemas Digitais no Nível RT. Estudo de Caso.

Prof. José Luís Güntzel guntzel@inf.ufsc.br

www.inf.ufsc.br/~guntzel/ine5406/ine5406.html

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.2 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Revisando Memórias

•  Registradores ↑ Alta velocidade ↓ Pequena quantidade de informação

•  Memória ↑ Grande quantidade de informação ↓ Baixa velocidade

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.3 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Organização de uma memória RAM

ende r eço e m ende r eço e m con t eúdo b i ná ri o dec im a l ( exe m p l o) 0…000 0 011…0100 0…001 1 011…0100 0…010 2 101…1100 0…011 3 101…0001 0…100 4 011…0101 0…101 5 111…0110 0…110 6 101…0001 0…111 7 000…1101

: : : :

1…110 2 n - 2 000…1100 1…111 2 n - 1 100…1100

m b its

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.4 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Organização de uma memória RAM

Fonte: RABAEY, Jan M. et al. Digital Integrated Circuits - A Design Perspective. 2nd edition (adaptado)

Palavra 0

Célula de armazenamento

M bits

N palavras

S 0 S 1 S 2

S N-2 S N-1

Entrada-Saída (M bits)

Palavra 1 Palavra 2

Palavra N-2 Palavra N-1

...

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.5 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Organização de uma memória RAM

Fonte: RABAEY, Jan M. et al. Digital Integrated Circuits - A Design Perspective. 2nd edition (adaptado)

K = log2N

A 0 A 1

A K-1 D

ecod

ifica

dor K

:N

Palavra 0

Célula de armazenamento

M bits

Entrada-Saída (M bits)

Palavra 1 Palavra 2

Palavra N-2 Palavra N-1

... ...

CS

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.6 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Organização externa de uma RAM

...

...

Im-1 I1 I0

Om-1 O1 O0

An-1

A1

A0

CS

RWS

RAM 2n x m

...

I/Om-1 I/O1 I/O0

An-1

A1

A0

CS

RWS

RAM 2n x m

(a) (b)

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.7 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Organização de Memória SRAM

Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 2008.

M bits

... ...

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.8 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 2008.

Organização de Memória SRAM M bits

... ...

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.9 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 2008.

Organização de Memória SRAM M bits

... ...

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.10 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 2008.

Organização de Memória DRAM M bits

... ...

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.11 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Temporização - Leitura

t0 t1 t2 t3 t4 t5

access time

output-enable time

output-hold time

output-disable time

endereço válido

RWS

CS

endereço

dados dados válidos

Diagrama de Tempos para um Ciclo de Leitura

Fonte: GAJSKI, Daniel D. Principles of Digital Design

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.12 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Temporização - Escrita Diagrama de Tempos para um Ciclo de Escrita

t0 t1 t2 t3 t4 t5

data-setup time address-

setup time

address- hold time

endereço válido

RWS

CS

endereço

dados dados válidos

write pulse width data-

hold time

Fonte: GAJSKI, Daniel D. Principles of Digital Design

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.13 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

•  A SAD é uma operação realizada sobre duas matrizes de pixels (A e B), gerando um valor único:

Matriz B (nxn)

Matriz A (nxn)

Exemplo 3: cálculo da SAD (Sum of Absolute Differences) Projetando um Sistema Digital

SAD = ∑ ABS ( pixel_A(i,j) – pixel_B(i,j) ) i=0, j=0

i<=7, j<=7

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.14 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

•  O valor calculado (SAD) é utilizado como uma medida do grau de semelhança entre as duas matrizes (e portanto, da semelhança entre as imagens por elas representadas): quanto menor for o valor “SAD” entre duas matrizes, mais semelhantes elas são.

•  O objetivo deste exemplo é estudar sistemas digitais capazes de realizar o cálculo da SAD.

•  A fim de contextualizar o exemplo, as próximas transparências abordam alguns dos princípios da compressão de vídeo digital

Exemplo 3: cálculo da SAD (Sum of Absolute Differences) Projetando um Sistema Digital

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.15 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Princípios de Vídeo Digital •  Os equipamentos (digitais ou analógios) armazenam filmes

como sequências de imagens estáticas (ou seja, sequências de fotos)

•  Em um filme, cada imagem estática é chamada de “quadro” (frame, em inglês)

•  Para que as transições entre as imagens estáticas não sejam percebidas pelo olho humano (de modo que enxerguemos um filme), é necessário que a taxa de exibição seja igual ou superior a 30 quadros por segundo (frames per second, ou simplesmente, fps)

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.16 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Princípios de Vídeo Digital

•  A qualidade da imagem é diretamente proporcional ao número de pixels de cada quadro.

•  Se não for usada alguma técnica de compressão de vídeo, todos os pixels de todos os quadros precisarão ser armazenados. Neste caso:

–  a quantidade de memória necessária para armazenar filmes (ou trechos de filmes) será enorme

–  a taxa necessária para transmitir um vídeo será ser enorme

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.17 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Princípios de Vídeo Digital •  Seja um vídeo sem compressão, com 10 minutos de duração, 30

quadros por segundo, sendo cada pixel armazenado com 24 bits:

Formato Resolução Memória para armazenar 10 minutos de vídeo

SDTV (e DVD) 720x480 pixels 19 GB HDTV 1920x1080 pixels 112 GB

Formato Resolução Taxa requerida p/ transmitir 10 minutos de vídeo

SDTV (e DVD) 720x480 pixels 249 Mbps HDTV 1920x1080 pixels 1,5 Gbps

Fonte: L. Agostini. Desenvolvimento de Arquiteturas de Alto Desempenho Dedicadas à Compressão de Vídeo Segundo o Padrão H.264/AVC. Porto Alegre: PPGC da UFRGS, 2007. Tese de doutorado.

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.18 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Princípio da Compressão de Vídeo •  Boa notícia! Nos vídeos, normalmente quadros consecutivos

são bastante semelhantes (Por que será?...) •  Logo, não é necessário armazenar todos os pixels de todos os

quadros! •  Basta que se busquem semelhanças

–  entre as regiões dentro de um quadro: esta é a chamada previsão intraquadro (intraframe prediction)

–  e/ou semelhanças entre quadros próximos: esta é a chamada previsão interquadros (interframe prediction)

•  Em vídeo, a previsão interquadros é a responsável por altas taxas de compressão

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.19 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Previsão Interquadros Princípio: •  De tantos em tantos quadros, somente um quadro é

armazenado completamente. Ele recebe o nome de quadro de referência (Qref).

•  Os demais quadros que sucedem (e às vezes, alguns que antecedem também) são armazenados de maneira simplificada, por meio de “vetores de movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.20 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

•  Cada quadro é dividido em sub-matrizes de pixels, denominadas “blocos”. Exemplo hipotético:

4 blocos

4 blocos Origem (0,0)

Cada bloco com 8x8 pixels

Previsão Interquadros

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.21 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Previsão Interquadros •  Um determinado quadro é escolhido para ser “referência”(Qref). Todos

os pixels deste quadro serão armazenados. •  Para os quadros Qi que sucedem Qref, serão calculados os “vetores de

movimento” (pois somente estes serão armazenados). •  Assim, para cada bloco bj ∈ Qi será encontrado um vetor de

movimento da seguinte maneira: –  É buscado o melhor “casamento” (matching) entre cada bloco bj ∈

Qi e alguma porção (sub-matriz) de Qref

–  Encontrado o melhor casamento, o bloco de Qi será representado como um par {xi,yi} denominado de “vetor de movimento”, que aponta para a aresta superior esquerda da porção (sub-matriz) em Qref que contém os pixels que serão usados para representar o bloco bj (∈ Qi)

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.22 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Etapa de “Estimação de Movimento”

Qref Qi

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.23 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.24 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.25 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.26 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.27 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento” Comparando bj ∈ Qi com bloco ∈ Qref cuja origem é x=0, y=0

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.28 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento” Comparando bj ∈ Qi com bloco ∈ Qref cuja origem é x=1, y=0

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.29 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento” Comparando bj ∈ Qi com bloco ∈ Qref cuja origem é x=2, y=0

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.30 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento” Comparando bj ∈ Qi com bloco ∈ Qref cuja origem é x=3, y=0

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.31 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Etapa de “Estimação de Movimento” Comparando bj ∈ Qi com bloco ∈ Qref cuja origem é x=4, y=0

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.32 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Melhor casamento! Logo, vetor de movimento: x=5, y=0

Etapa de “Estimação de Movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.33 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

(x0,y0) (x1=5, y1=0) (x2,y2) (x3,y3)

(x4,y4) (x5,y5) (x6,y6) (x7,y7)

(x8,y8) (x9,y9) (x10,y10) (x11,y11)

(x12,y12) (x13,y13) (x14,y14) (x15,y15)

Qref Qi

Cada bloco de bj ∈ Qi será representado por um vetor de movimento (ao invés 8x8 pixels)

Etapa de “Estimação de Movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.34 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Qref Qi

Cada vez que se compara um bloco bj ∈ Qi com um bloco de Qref, é preciso calcular a SAD entre duas matrizes de pixels

Etapa de “Estimação de Movimento”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.35 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Cálculo do SAD (Sum of Absolute Differences) Cada vez que se compara um bloco bj ∈ Qi com uma porção de Qref, é preciso calcular a SAD entre duas matrizes

Matriz B: bj ∈ Qi

Matriz A: Porção de 8x8 pixels ∈ Qref

Calcular para cada par de pixels { pixel_A(i,j), pixel_B(i,j) } com i ∈[0,7] e j ∈[0,7]

SAD = ∑ ABS ( pixel_A(i,j) – pixel_B(i,j) ) i=0, j=0

i<=7, j<=7

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.36 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetar um sistema digital capaz de realizar o cálculo da SAD entre um bloco bj ∈ Qi e uma porção de pixels (de mesmo tamanho) ∈ Qref.

•  Cada pixel é representado por 1 byte (8 bits) •  O bloco bj e a porção de Qi tem 8x8 pixels cada e (já) estão armazenados

nas memórias B e A, respectivamente.

Exemplo 3: cálculo da SAD (Sum of Absolute Differences) Projetando um Sistema Digital

Contém 8x8 pixels ∈ bj

Contém 8x8 pixels ∈ Qref

Cálculo do SAD

? ? ?

SAD ck

início reset pronto

end read pA pB end read

? ?

Memória A

Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.37 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

•  O sinal início=1 indica que um cálculo de SAD deve iniciar. •  Funcionamento de cada memória: um pixel pode ser lido a cada ciclo de

relógio; basta atualizar o “end” e manter “read=1”. •  O projeto deste sistema digital deve favorecer a otimização do custo.

Exemplo 3: cálculo da SAD Projetando um Sistema Digital

Contém 8x8 pixels ∈ bj

Contém 8x8 pixels ∈ Qref

Cálculo do SAD

? ? ?

SAD ck

início reset pronto

end read pA pB end read

? ?

Memória A

Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.38 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Matriz B: bj ∈ Qi

Matriz A: Porção de 8x8 pixels

∈ Qref

Calcular para cada par de pixels { pixel_A(i,j), pixel_B(i,j) } com i ∈[0,7] e j ∈[0,7]

SAD = ∑ ABS ( pixel_A(i,j) – pixel_B(i,j) ) i=0, j=0

i<=7, j<=7

pixel(0,0) pixel(0,1) …. pixel(0,7)

pixel(1,0) pixel(1,7)

Exemplo 3: cálculo da SAD Possível Organização da “Memória A” e da “Memória B”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.39 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Matriz A: Porção de 8x8 pixels ∈ Qref

pixel(0,0) pixel(0,1) pixel(0,2) pixel(0,3) pixel(0,4) pixel(0,5) pixel(0,6) pixel(0,7) pixel(1,0) pixel(1,1)

… pixel(7,7)

Memória A

Matriz B: bj ∈ Qi

pixel(0,0) pixel(0,1) pixel(0,2) pixel(0,3) pixel(0,4) pixel(0,5) pixel(0,6) pixel(0,7) pixel(1,0) pixel(1,1)

… pixel(7,7)

Memória B

Exemplo 3: cálculo da SAD Possível Organização da “Memória A” e da “Memória B”

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.40 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital Exemplo 3: cálculo da SAD

Cálculo do SAD

8 8 ?

SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A

Memória B

pixel(0,0) pixel(0,1) pixel(0,2) pixel(0,3) pixel(0,4) pixel(0,5) pixel(0,6) pixel(0,7) pixel(1,0) pixel(1,1)

… pixel(7,7)

64 li

nhas

Memória A (Memória B)

Dec

odifi

cado

r 6

:64

PA (PB)

6

8

end

read

habilitação do decodificador

pixel lido

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.41 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

• Quantos bits deve ter a saída SAD? Exemplo 3: cálculo da SAD Projetando um Sistema Digital

Cálculo do SAD

8 8 ?

SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A

Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.42 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

• Quantos bits deve ter a saída SAD?

Ou seja, qual é o valor máximo que SAD pode atingir? Para responder, imaginar que todos os pixels armazenados na matriz A valham zero e todos os pixels armazenados na matriz B valham 255 (ou vice-versa)

Exemplo 3: cálculo da SAD Projetando um Sistema Digital

Matriz B: bj ∈ Qi

Matriz A: Porção de 8x8 pixels

∈ Qref

Calcular para cada par de pixels { pixel_A(i,j), pixel_B(i,j) } com i ∈[0,7] e j ∈[0,7]

SAD = ∑ ABS ( pixel_A(i,j) – pixel_B(i,j) ) i=0, j=0

i<=7, j<=7

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.43 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

• Quantos bits deve ter a saída SAD?

Resp.: 64 x 255 ~= 26 x 28 = 214 => 14 bits (O cálculo exato seria 64 x 255 = 16.320 => 14 bits...)

Exemplo 3: cálculo da SAD Projetando um Sistema Digital

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A

Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.44 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Passo 1 (captura do comportamento com FSMD) Projetando um Sistema Digital

Início pronto ← 0; soma ← 0; i ← 0; Enquanto i<64 faça { soma ← soma + ABS(pA – pB); i ← i +1; } SAD_reg ← soma; pronto ← 1; Fim

Cálculo a ser feito Cálculo expresso como um algoritmo

SAD = ∑ ABS ( pixel_A(i,j) – pixel_B(i,j) ) i=0, j=0

i<=7, j<=7

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.45 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Passo 1 (captura do comportamento com FSMD) Projetando um Sistema Digital

Início pronto ← 0; soma ← 0; i ← 0; Enquanto i<64 faça { soma ← soma + ABS(pA – pB); i ← i +1; } SAD_reg ← soma; pronto ← 1; Fim

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

Observar que: Para cada i ∈ {0, 1, ..., 63}: pA = Memória_A[i] pB = Memória_B[i]

Onde Memória_A[i] é um acesso de leitura à posição “i” de Memória A

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.46 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Passo 1 (captura do comportamento com FSMD) Projetando um Sistema Digital

Início pronto ← 0; soma ← 0; i ← 0; Enquanto i<64 faça { soma ← soma + ABS(pA – pB); i ← i +1; } SAD_reg ← soma; pronto ← 1; Fim

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.47 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Quais variáveis são usadas para armazenar dados?

• Duas: “soma” e “SAD_reg” (“pA” e “pB” são entradas que ficam estáveis, já que provem das memória A e B)

• Logo, teremos dois registradores: “soma” e “SAD_reg”

Exemplo 3: Passo 2 (projeto do BO)

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.48 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Porém: • Note que há uma variável (“i”) que armazena o endereço a ser acessado nas memórias e também serve para controlar o laço. Logo, será preciso um registrador (decrementador) para esta variável. Chamemo-lo de “i”.

Exemplo 3: Passo 2 (projeto do BO)

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.49 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Quais operações são realizadas sobre dados ?

• Dentro do laço há: uma subtração, uma extração de módulo e uma adição.

Exemplo 3: Passo 2 (projeto do BO)

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.50 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Quais operações são realizadas sobre variáveis de controle ?

• Dentro do laço há: um incremento sobre “i”.

• Também há comparação com 64

Exemplo 3: Passo 2 (projeto do BO)

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.51 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

Exemplo 3: Passo 2 (projeto do BO)

– 8 8

pA pB

ABS

8

+

8

zsoma soma

SAD_reg

SAD

14

14

14

csoma

csad_reg

< 64? menor

i

zi

7

inci

end 6

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.52 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Passo 2 (projeto do BO) Projetando um Sistema Digital

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

< 64? menor

i

zi

7 –

8 8

pA pB

ABS

8

+

8

inci

14

6

0

end 6

zsoma soma

SAD_reg

SAD

14

14

14

csoma

csad_reg

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.53 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

pA

8

14

zsoma csoma

csad_reg

SAD

BC (controle)

início

ck

Reset BO

(datapath) ck

pronto

menor

zi inci

pB

8

end

6

read

Exemplo 3: Passo 3 (Esboçando o diagrama BO/BC)

Projetando um Sistema Digital

Cálculo do SAD

8 8

14 SAD ck

início reset pronto

end read pA pB end read

6 6

Memória A Memória B

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.54 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Passo 3 (Um diagrama BO/BC mais detalhado…)

Projetando um Sistema Digital

BC (controle)

início

ck

Reset

pronto

read

zsoma

menor

zi

inci

csoma

csad_reg

< 64?

i 7

– 8 8

pA pB

ABS

8

+

8

14

6

0

end 6

soma

SAD_reg

SAD

14

14

14

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.55 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Passo 4 (Derivando a FSM a partir do BO e da FSMD)

Projetando um Sistema Digital

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

soma ← soma + ABS(pA – pB) i ← i +1

i < 64

i >= 64

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

pronto=0 zsoma=1; zi=1

S0

Reset

S2

início

início

S3

S4

csoma=1 inci=1

menor

menor

S1

pronto=1; read=0

csad_reg=1 read=0

read=1

BC (controle)

início

ck

Reset

pronto

read

zsoma

menor

zi inci

csoma

csad_reg

< 64?

i 7

– 8 8

pA pB

ABS

8

+

8

14

6

0

end 6

soma

SAD_reg

SAD

14

14

14

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.56 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Estimativa Informal do Desempenho Projetando um Sistema Digital

3 operações encadeadas:

BC (controle)

início

ck

Reset

pronto

read

zsoma

menor

zi

inci

csoma

csad_reg

< 64?

i 7

– 8 8

pA pB

ABS

8

+

8

14

6

0

end 6

soma

SAD_reg

SAD

14

14

14

tp(8bits)

tp(8bits)

tp(14bits)

Podem determinar o período do ck...

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.57 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Exemplo 3: Estimativa Informal do Desempenho Projetando um Sistema Digital

BC (controle)

início

ck

Reset

pronto

read

zsoma

menor

zi

inci

csoma

csad_reg

< 64?

i 7

+

8

14

6

0

end 6

soma

SAD_reg

SAD

14

14

14

temp ctemp

– 8 8

pA pB

ABS

8

8

Solução: inserir um registrador (quebrando assim, esta operação em dois ciclos de relógio)

Consequências: • 1 ciclo a mais dentro do laço (logo, x64)

• 1 registrador a mais • 1 sinal de controle a mais

(analisar se vale a pena...)

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.58 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

zsoma

menor

zi

inci

csoma

csad_reg

< 16?

i 5

end

4

– 8 8

pA3 pB3

ABS

8

+

8

soma

SAD_reg

SAD

9

10

14

– 8 8

pA2 pB2

ABS

8

8

– 8 8

pA1 pB1

ABS

8

+

8

9

– 8 8

pA0 pB0

ABS

8

8

+

+ 14

14 Processa 4 pares de pixels por vez!! Quantos ciclos de relógio para fazer o laço?

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.59 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital Quantos ciclos de relógio para fazer o laço?

i < 16

i >= 16

pronto← 0 soma ← 0; i ← 0

S0

Reset

S2

início

início

S3

S4

S1

pronto ← 1; read ← 0

SAD_reg ← soma read ← 0

read ← 1

soma ← soma + ∑ ABS(pAi – pBi) i ← i +1 i=0

i<4

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.60 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Qual foi o aumento de custo do B.O.?

zsoma

menor

zi

inci

csoma

csad_reg

< 16?

i 5

end

4

– 8 8

pA3 pB3

ABS

8

+

8

soma

SAD_reg

SAD

9

10

14

– 8 8

pA2 pB2

ABS

8

8

– 8 8

pA1 pB1

ABS

8

+

8

9

– 8 8

pA0 pB0

ABS

8

8

+

+ 14

14

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.61 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Qual é o reflexo no bloco de controle?

• Número de estados? • Número de sinais? pronto=0

zsoma=1; zi=1

S0

Reset

S2

início

início

S3

S4

csoma=1 inci=1

menor

menor

S1

pronto=1; read=0

csad_reg=1 read=0

read=1

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.62 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Projetando um Sistema Digital

Quais as consequências na organização das memórias?

zsoma

menor

zi

inci

csoma

csad_reg

< 16?

i 5

end

4

– 8 8

pA3 pB3

ABS

8

+

8

soma

SAD_reg

SAD

9

10

14

– 8 8

pA2 pB2

ABS

8

8

– 8 8

pA1 pB1

ABS

8

+

8

9

– 8 8

pA0 pB0

ABS

8

8

+

+ 14

14

4. Projeto de Sistemas Digitais no Nível RT

Prof. José Luís Güntzel Slide 9T.63 INE/CTC/UFSC Sistemas Digitais - semestre 2011/2

Indo Mais Além: Pipeline Aritmético!

registradores de pipeline

(são barreiras temporais)

– 8 8

pA3 pB3

ABS

8

+

8

soma

SAD_reg

SAD

9

10

14

– 8 8

pA2 pB2

ABS

8

8

– 8 8

pA1 pB1

ABS

8

+

8

9

– 8 8

pA0 pB0

ABS

8

8

+

+ 14

14

ck