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

Documentos relacionados
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

3 a Lista de Exercícios

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

Memórias Parte 1. SEL-0415 Introdução à Organização de Computadores. Aula 4. Prof. Dr. Marcelo Andrade da Costa Vieira

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

2. A influência do tamanho da palavra

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Organização e Arquitetura de Computadores I

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

X Y Z A B C D

Circuitos Sequenciais

2. A influência do tamanho da palavra

Processador. Processador

CIRCUITOS SEQUENCIAIS. Adão de Melo Neto

Estrutura Básica de um Computador

Eletrônica Digital II (Memórias) Prof. Eng. Antonio Carlos Lemos Júnior

Circuitos Lógicos Aula 26

Solução Lista de Exercícios Processadores

Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA

Latch SR (Set/Reset)

Micro-Arquiteturas de Alto Desempenho. Introdução. Ementa

Sistemas Digitais II MEMÓRIA RAM. Prof. Marlon Henrique Teixeira agosto/2014

Pontifícia Universidade Católica Federal do Rio de Santa Grande Catarina do Sul

UCP: Construindo um Caminho de Dados (Parte III)

Organização e Arquitetura de Computadores I

Projeto de Processadores Programáveis

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

SSC510 Arquitetura de Computadores 1ª AULA

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

Estrutura de um computador digital. Gustavo Queiroz Fernandes

MEMÓRIAS. Sistemas Digitais II Prof. Marcelo Wendling Nov/18

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Ciências da Computação & Engenharia Eletrônica

PCS 3115 Sistemas Digitais I

LISTA 01 3B ORGANIZAÇÃO DE COMPUTADORES (REALIZADA EM AULA) NOME: NOME:

Unidade II. Organização de Computadores. Prof. Renato Lellis

ção de Computadores II

ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano

Introdução à Computação: Arquitetura von Neumann

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

Circuitos sequenciais

Arduino Lab 08 Banco de teste para memória RAM HM6116 de 16k

CIRCUITOS DIGITAIS. Contadores com Registradores e Memórias. Prof. Denis Fantinato Prof. Rodrigo Moreira Bacurau

Componentes de um Computador Típico

COMPUTADOR. Adão de Melo Neto

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

SSC0611 Arquitetura de Computadores

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

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

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Sistemas de Computação. Seção Notas. Endereçamento de Memória. Notas. Oitava Aula. Haroldo Gambini Santos. 3 de setembro de 2009.

Organização de Computadores Prof. Alex Vidigal Bastos

Organização e Projeto de Computadores

ELT502 Eletrônica Digital I Graduação em Engenharia Eletrônica

Memórias. Memórias: Utilização:

Arquitetura de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Introdução à Informática

Organização e Arquitetura de Computadores I

Prof. Eliezer Soares Flores 1 / 22

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano

Usadas para manter os dados e programas a serem acessados diretamente pelo microprocessador.

INTRODUÇÃO: MICROCONTROLADORES

Prof. Leonardo Augusto Casillo

Disciplina: Arquitetura de Computadores

Instruções de Máquina

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Registradores de Deslocamento e Memórias

Organização e Arquitetura de Computadores I


Elementos Físicos do SC e a Classificação de Arquiteturas

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

SSC0112 Organização de Computadores Digitais I

Arquitetura de Computadores. Arquitetura de Computadores 1

BARRAMENTO DO SISTEMA. Adão de Melo Neto

Processador: Conceitos Básicos e Componentes

ELETRÔNICA DIGITAL II

Eletrônica Digital. Memórias Semicondutoras PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA E BARRAMENTOS DE SISTEMA. Prof. Dr. Daniel Caetano

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS

Microprocessadores MICROPROCESSADORES. Unidade de Processamento. Sumário

SUBSISTEMA DE MEMÓRIA FELIPE G. TORRES

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ORGANIZAÇÃO DE COMPUTADORES O PROCESSADOR E SEUS COMPONENTES

Painel Luminoso com LEDs

Memória SRAM 64x8 bits

Eletrônica Digital. Prof. Gilson Yukio Sato sato[at]utfpr[dot]edu[dot]br

Adriano J. Holanda FAFRAM. 4 e 11 de maio de 2012

Introdução à Ciência da Computação

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache

Pontifícia Universidade Católica Federal do Rio de Santa Grande Catarina do Sul

FACULDADE PITÁGORAS PRONATEC

SSC0112 Organização de Computadores Digitais I

Transcrição:

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. guntzel@inf.ufsc.br www.inf.ufsc.br/~guntzel/ine540/ine540.html

Revisando Memórias Registradores Alta velocidade Pequena quantidade de informação Memória Grande quantidade de informação Baixa velocidade Slide 9T.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 101 0001 0 111 7 000 1101 : : : : 1 110 2 n - 2 000 1100 1 111 2 n - 1 100 1100 m b its Slide 9T.3

Organização de uma memória RAM M bits N palavras S 0 S 1 S 2 S N-2 S N-1... Palavra 0 Palavra 1 Palavra 2 Palavra N-2 Palavra N-1 Célula de armazenamento Entrada-Saída (M bits) Fonte: RABAEY, Jan M. et al. Digital Integrated Circuits - A Design Perspective. 2nd edition (adaptado) Slide 9T.4

Organização de uma memória RAM K = log 2 N M bits Palavra 0 A 0 A 1 A K-1... Decodificador K:N... Palavra 1 Palavra 2 Palavra N-2 Célula de armazenamento Palavra N-1 CS Entrada-Saída (M bits) Fonte: RABAEY, Jan M. et al. Digital Integrated Circuits - A Design Perspective. 2nd edition (adaptado) Slide 9T.5

Organização externa de uma RAM... A n-1 I m-1 I 1 I 0 A n-1 A 1 RAM 2 n x m A 1 RAM 2 n x m A 0 A 0 CS CS RWS O m-1 O 1 O 0 RWS I/O m-1 I/O 1 I/O 0...... (a) (b) Slide 9T.

Organização de Memória SRAM M bits...... Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 200. Slide 9T.7

Organização de Memória SRAM M bits...... Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 200. Slide 9T.

Organização de Memória SRAM M bits...... Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 200. Slide 9T.9

Organização de Memória DRAM M bits...... Fonte: VAHID, Frank. Sistemas Digitais: projeto, otimização e HDLs. Bookman, 200. Slide 9T.10

Temporização - Leitura Diagrama de Tempos para um Ciclo de Leitura RWS CS endereço endereço válido dados access time output-enable time dados válidos output-disable time output-hold time t 0 t 1 t 2 t 3 t 4 t 5 Fonte: GAJSKI, Daniel D. Principles of Digital Design Slide 9T.11

Temporização - Escrita Diagrama de Tempos para um Ciclo de Escrita RWS CS endereço endereço válido dados addresssetup time data-setup time dados válidos addresshold time write pulse width datahold time t 0 t 1 t 2 t 3 t 4 t 5 Fonte: GAJSKI, Daniel D. Principles of Digital Design Slide 9T.12

Projetando um Sistema Digital Exemplo 3: cálculo da SAD (Sum of Absolute Differences) A SAD é uma operação realizada sobre duas matrizes de pixels (A e B), gerando um valor único: Matriz A (nxn) Matriz B (nxn) i<=7, j<=7 SAD = ABS ( pixel_a(i,j) pixel_b(i,j) ) i=0, j=0 Slide 9T.13

Projetando um Sistema Digital Exemplo 3: cálculo da SAD (Sum of Absolute Differences) 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 Slide 9T.

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) Slide 9T.15

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 Slide 9T.1

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) 720x40 pixels 19 GB HDTV 1920x100 pixels 112 GB Formato Resolução Taxa requerida p/ transmitir 10 minutos de vídeo SDTV (e DVD) 720x40 pixels 249 Mbps HDTV 1920x100 pixels 1,5 Gbps Fonte: L. Agostini. Desenvolvimento de Arquiteturas de Alto Desempenho Dedicadas à Compressão de Vídeo Segundo o Padrão H.24/AVC. Porto Alegre: PPGC da UFRGS, 2007. Tese de doutorado. Slide 9T.17

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 Slide 9T.1

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 Slide 9T.19

Previsão Interquadros Cada quadro é dividido em sub-matrizes de pixels, denominadas blocos. Exemplo hipotético: Origem (0,0) 4 blocos 4 blocos Cada bloco com x pixels Slide 9T.20

Previsão Interquadros Um determinado quadro é escolhido para ser referência (Q ref ). Todos os pixels deste quadro serão armazenados. Para os quadros Q i que sucedem Q ref, serão calculados os vetores de movimento (pois somente estes serão armazenados). Assim, para cada bloco b j Q i será encontrado um vetor de movimento da seguinte maneira: É buscado o melhor casamento (matching) entre cada bloco b j Q i e alguma porção (sub-matriz) de Q ref Encontrado o melhor casamento, o bloco de Q i 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 Q ref que contém os pixels que serão usados para representar o bloco b j ( Q i ) Slide 9T.21

Etapa de Estimação de Movimento Q ref Q i Slide 9T.22

Etapa de Estimação de Movimento Q ref Q i Slide 9T.23

Etapa de Estimação de Movimento Q ref Q i Slide 9T.24

Etapa de Estimação de Movimento Q ref Q i Slide 9T.25

Etapa de Estimação de Movimento Q ref Q i Slide 9T.2

Etapa de Estimação de Movimento Comparando bj Qi com bloco Qref cuja origem é x=0, y=0 Q ref Q i Slide 9T.27

Etapa de Estimação de Movimento Comparando bj Qi com bloco Qref cuja origem é x=1, y=0 Q ref Q i Slide 9T.2

Etapa de Estimação de Movimento Comparando bj Qi com bloco Qref cuja origem é x=2, y=0 Q ref Q i Slide 9T.29

Etapa de Estimação de Movimento Comparando bj Qi com bloco Qref cuja origem é x=3, y=0 Q ref Q i Slide 9T.30

Etapa de Estimação de Movimento Comparando bj Qi com bloco Qref cuja origem é x=4, y=0 Q ref Q i Slide 9T.31

Etapa de Estimação de Movimento Melhor casamento! Logo, vetor de movimento: x=5, y=0 Q ref Q i Slide 9T.32

Etapa de Estimação de Movimento (x0,y0) (x1=5, y1=0) (x2,y2) (x3,y3) (x4,y4) (x5,y5) (x,y) (x7,y7) (x,y) (x9,y9) (x10,y10) (x11,y11) (x12,y12) (x13,y13) (x,y) (x15,y15) Q ref Q i Cada bloco de bj Qi será representado por um vetor de movimento (ao invés x pixels) Slide 9T.33

Etapa de Estimação de Movimento Cada vez que se compara um bloco b j Q i com um bloco de Q ref, é preciso calcular a SAD entre duas matrizes de pixels Q ref Q i Slide 9T.34

Cálculo do SAD (Sum of Absolute Differences) Cada vez que se compara um bloco b j Q i com uma porção de Q ref, é preciso calcular a SAD entre duas matrizes Matriz A: Porção de x pixels Q ref Matriz B: b j Q i i<=7, j<=7 SAD = ABS ( pixel_a(i,j) pixel_b(i,j) ) i=0, j=0 Calcular para cada par de pixels { pixel_a(i,j), pixel_b(i,j) } com i [0,7] e j [0,7] Slide 9T.35

Projetando um Sistema Digital Exemplo 3: cálculo da SAD (Sum of Absolute Differences) Projetar um sistema digital capaz de realizar o cálculo da SAD entre um bloco b j Q i e uma porção de pixels (de mesmo tamanho) Q ref. Cada pixel é representado por 1 byte ( bits) O bloco b j e a porção de Q i tem x pixels cada e (já) estão armazenados nas memórias B e A, respectivamente. Contém x pixels Q ref ck reset Memória A???? end read p A end read p B Cálculo do SAD Memória B Contém x? pixels b j SAD pronto Slide 9T.3

Projetando um Sistema Digital Exemplo 3: cálculo da SAD O sinal =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. Contém x pixels Q ref ck reset Memória A???? end read p A end read p B Cálculo do SAD Memória B Contém x pixels b j? SAD pronto Slide 9T.37

Projetando um Sistema Digital Exemplo 3: cálculo da SAD Possível Organização da Memória A e da Memória B Matriz A: Porção de x pixels Q ref pixel(0,0) pixel(0,1). pixel(1,0) pixel(0,7) pixel(1,7) Matriz B: b j Q i i<=7, j<=7 SAD = ABS ( pixel_a(i,j) pixel_b(i,j) ) i=0, j=0 Calcular para cada par de pixels { pixel_a(i,j), pixel_b(i,j) } com i [0,7] e j [0,7] Slide 9T.3

Projetando um Sistema Digital Exemplo 3: cálculo da SAD Possível Organização da Memória A e da Memória B Memória A pixel(0,0) pixel(0,1) pixel(0,2) pixel(0,3) pixel(0,4) pixel(0,5) pixel(0,) pixel(0,7) pixel(1,0) pixel(1,1) pixel(7,7) Memória B pixel(0,0) pixel(0,1) pixel(0,2) pixel(0,3) pixel(0,4) pixel(0,5) pixel(0,) pixel(0,7) pixel(1,0) pixel(1,1) pixel(7,7) Matriz A: Porção de x pixels Q ref Matriz B: b j Q i Slide 9T.39

ck reset 4. Projeto de Sistemas Digitais no Nível RT Projetando um Sistema Digital Exemplo 3: cálculo da SAD Memória A end read p A end read p B Cálculo do SAD Memória B? SAD pronto end Decodificador :4 read habilitação do decodificador 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,) pixel(0,7) pixel(1,0) pixel(1,1) pixel(7,7) PA (PB) 4 linhas pixel lido Slide 9T.40

Projetando um Sistema Digital Exemplo 3: cálculo da SAD Quantos bits deve ter a saída SAD? Memória A Memória B ck reset end read p A end read p B Cálculo do SAD? SAD pronto Slide 9T.41

Projetando um Sistema Digital Exemplo 3: cálculo da SAD 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) Matriz A: Porção de x pixels Q ref Matriz B: b j Q i i<=7, j<=7 SAD = ABS ( pixel_a(i,j) pixel_b(i,j) ) i=0, j=0 Calcular para cada par de pixels { pixel_a(i,j), pixel_b(i,j) } com i [0,7] e j [0,7] Slide 9T.42

Projetando um Sistema Digital Exemplo 3: cálculo da SAD Quantos bits deve ter a saída SAD? Resp.: 4 x 255 ~= 2 x 2 = 2 => bits (O cálculo exato seria 4 x 255 = 1.320 => bits...) Memória A Memória B ck reset end read p A end read p B Cálculo do SAD SAD pronto Slide 9T.43

Projetando um Sistema Digital Exemplo 3: Passo 1 (captura do comportamento com FSMD) Memória A Memória B ck reset end read p A end read p B Cálculo do SAD SAD pronto i<=7, j<=7 Cálculo a ser feito SAD = ABS ( pixel_a(i,j) pixel_b(i,j) ) i=0, j=0 Cálculo expresso como um algoritmo Início pronto 0; soma 0; i 0; Enquanto i<4 faça { soma soma + ABS(pA pb); i i +1; } SAD_reg soma; pronto 1; Fim Slide 9T.44

Projetando um Sistema Digital Exemplo 3: Passo 1 (captura do comportamento com FSMD) Memória A Memória B ck reset end read p A end read p B Cálculo do SAD SAD pronto Início pronto 0; soma 0; i 0; Enquanto i<4 faça { soma soma + ABS(pA pb); i i +1; } SAD_reg soma; pronto 1; Fim Observar que: Para cada i {0, 1,..., 3}: 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 Slide 9T.45

Projetando um Sistema Digital Exemplo 3: Passo 1 (captura do comportamento com FSMD) ck reset Memória A Cálculo do SAD Memória B end read p A end read p B SAD pronto Reset S0 S1 pronto 1; read 0 pronto 0 soma 0; i 0 Início pronto 0; soma 0; i 0; Enquanto i<4 faça { soma soma + ABS(pA pb); i i +1; } SAD_reg soma; pronto 1; Fim i >= 4 S2 S4 read 1 S3 i < 4 SAD_reg soma read 0 soma soma + ABS(pA pb) i i +1 Slide 9T.4

Projetando um Sistema Digital Exemplo 3: Passo 2 (projeto do BO) ck reset Memória A Cálculo do SAD Memória B end read p A end read p B SAD pronto Reset S0 S1 pronto 1; read 0 pronto 0 soma 0; i 0 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 i >= 4 S2 S4 read 1 S3 i < 4 SAD_reg soma read 0 soma soma + ABS(pA pb) i i +1 Slide 9T.47

Projetando um Sistema Digital Exemplo 3: Passo 2 (projeto do BO) ck reset Memória A Cálculo do SAD Memória B end read p A end read p B SAD pronto Reset S0 S1 pronto 1; read 0 pronto 0 soma 0; i 0 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. i >= 4 S2 S4 read 1 S3 i < 4 SAD_reg soma read 0 soma soma + ABS(pA pb) i i +1 Slide 9T.4

Projetando um Sistema Digital Exemplo 3: Passo 2 (projeto do BO) ck reset Memória A Cálculo do SAD Memória B end read p A end read p B SAD pronto Reset S0 S1 pronto 1; read 0 pronto 0 soma 0; i 0 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. i >= 4 S2 S4 read 1 S3 i < 4 SAD_reg soma read 0 soma soma + ABS(pA pb) i i +1 Slide 9T.49

Projetando um Sistema Digital Exemplo 3: Passo 2 (projeto do BO) ck reset Memória A Cálculo do SAD Memória B end read p A end read p B SAD pronto Reset S0 S1 pronto 1; read 0 pronto 0 soma 0; i 0 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 4 i >= 4 S2 S4 read 1 S3 i < 4 SAD_reg soma read 0 soma soma + ABS(pA pb) i i +1 Slide 9T.50

Projetando um Sistema Digital Exemplo 3: Passo 2 (projeto do BO) Reset S0 S1 pronto 1; read 0 pronto 0 soma 0; i 0 zi inci menor i 7 < 4? end pa pb ABS i >= 4 S2 S4 read 1 S3 i < 4 SAD_reg soma read 0 soma soma + ABS(pA pb) i i +1 Slide 9T.51 zsoma csoma csad_reg + soma SAD_reg SAD

Projetando um Sistema Digital Exemplo 3: Passo 2 (projeto do BO) Reset S0 S1 pronto 1; read 0 pronto 0 soma 0; i 0 zi inci menor i 7 < 4? end 0 pa pb ABS i >= 4 S2 S4 read 1 S3 i < 4 SAD_reg soma read 0 soma soma + ABS(pA pb) i i +1 Slide 9T.52 zsoma csoma csad_reg + soma SAD_reg SAD

Projetando um Sistema Digital Exemplo 3: Passo 3 (Esboçando o diagrama BO/BC) ck reset Memória A Cálculo do SAD Memória B end read p A end read p B SAD pronto read end pa pb zi Reset ck BC (controle) inci zsoma csoma csad_reg menor BO (datapath) ck pronto Slide 9T.53 SAD

Projetando um Sistema Digital Exemplo 3: Passo 3 (Um diagrama BO/BC mais detalhado ) Reset ck read BC (controle) pronto zi inci menor zsoma csoma csad_reg Slide 9T.54 i 7 < 4? end 0 pa pb + ABS soma SAD_reg SAD

Projetando um Sistema Digital Exemplo 3: Passo 4 (Derivando a FSM a partir do BO e da FSMD) Reset S0 pronto 1; read 0 Reset S0 Reset ck pronto=1; read=0 read BC (controle) pronto zi inci menor zsoma csoma csad_reg i 7 < 4? end 0 pa + ABS soma SAD_reg 1 4 SAD pb S1 pronto 0 soma 0; i 0 S1 pronto=0 zsoma=1; zi=1 S2 read 1 i < 4 S2 read=1 menor i >= 4 S3 soma soma + ABS(pA pb) i i +1 menor S3 csoma=1 inci=1 S4 SAD_reg soma read 0 S4 csad_reg=1 read=0 Slide 9T.55

Projetando um Sistema Digital Exemplo 3: Estimativa Informal do Desempenho Reset ck read BC (controle) pronto zi inci menor zsoma csoma csad_reg i 7 < 4? end 0 pa + soma SAD_reg ABS SAD pb 3 operações encadeadas: t p (bits) t p (bits) t p (bits) Podem determinar o período do ck... Slide 9T.5

Projetando um Sistema Digital Exemplo 3: Estimativa Informal do Desempenho Reset ck read BC (controle) pronto zi inci menor zsoma csoma csad_reg i 7 < 4? end Slide 9T.57 ctemp 0 pa + soma SAD_reg temp SAD ABS pb 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, x4) 1 registrador a mais 1 sinal de controle a mais (analisar se vale a pena...)

Projetando um Sistema Digital end pa0 pb0 pa1 pb1 pa2 pb2 pa3 pb3 4 i zi inci menor zsoma csoma 5 < 1? ABS + 9 ABS ABS + 9 ABS csad_reg soma SAD_reg + + 10 Processa 4 pares de pixels por vez!! Quantos ciclos de relógio para fazer o laço? SAD Slide 9T.5

Projetando um Sistema Digital Quantos ciclos de relógio para fazer o laço? Reset S0 pronto 1; read 0 S1 pronto 0 soma 0; i 0 S2 read 1 i < 1 i >= 1 S3 i<4 soma soma + ABS(pA i pb i ) i i +1 i=0 S4 SAD_reg soma read 0 Slide 9T.59

Projetando um Sistema Digital end pa0 pb0 pa1 pb1 pa2 pb2 pa3 pb3 4 i zi inci menor zsoma csoma 5 < 1? ABS + 9 ABS ABS + 9 ABS csad_reg soma SAD_reg + + 10 Qual foi o aumento de custo do B.O.? SAD Slide 9T.0

Projetando um Sistema Digital Qual é o reflexo no bloco de controle? Número de estados? Número de sinais? Reset S0 S1 pronto=1; read=0 pronto=0 zsoma=1; zi=1 S2 read=1 menor menor S3 csoma=1 inci=1 S4 csad_reg=1 read=0 Slide 9T.1

Projetando um Sistema Digital end pa0 pb0 pa1 pb1 pa2 pb2 pa3 pb3 4 i zi inci menor zsoma csoma 5 < 1? ABS + 9 ABS ABS + 9 ABS csad_reg soma SAD_reg + + 10 Quais as consequências na organização das memórias? SAD Slide 9T.2

Indo Mais Além: Pipeline Aritmético! pa0 pb0 pa1 pb1 pa2 pb2 pa3 pb3 ck registradores de pipeline (são barreiras temporais) ABS ABS ABS ABS + + 9 9 soma SAD_reg + + 10 SAD Slide 9T.3