Uiversidade Federal de Sata Cataria Cetro Tecológico Departameto de Iformática e Estatística Curso de Graduação em Ciêcias da Computação Aula 10-T 4. Projeto de Sistemas Digitais o Nível RT. Aumetado o Nível de Abstração. Estudo de caso e Exploração do Espaço de Soluções: multiplicador por somas sucessivas (sol.1- custo míimo). Prof. José Luís Gützel gutzel@if.ufsc.br www.if.ufsc.br/~gutzel/ie5406/ie5406.html
4. Projeto de Sistemas Digitais o Nível RT Aumetado o Nível de Abstração Maior abstração permite: Tratar problemas mais complexos Explorar o espaço de soluções possível Aplicação: Quado o problema que se deseja solucioar pode ser apresetado como um algoritmo Formas de represetação: Fluxograma Trecho de código em pseudocódigo ou em alguma liguagem (ex.: C, C++, Java, SystemC) Slide 10T.2 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Aspectos a Serem Cosiderados o Projeto 1. Custo de Implemetação (Fabricação) 2. Desempeho 3. Cosumo de Eergia 4. Testabilidade 5. Tolerâcia (ou Robustez) a Falhas A otimização simultâea destas variáveis é difícil, pois muitas são coflitates etre si. Vejamos o porquê. Slide 10T.3 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Aspectos a Serem Cosiderados o Projeto 1. Custo de Implemetação (Fabricação) Depede do úmero de trasistores, quatidade de coexões, úmero de pios de E/S e tipo de ecapsulameto. Área do chip: quato maior a área, meor o redimeto do processo de fabricação ( yield ). Slide 10T.4 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Aspectos a Serem Cosiderados o Projeto 2. Desempeho O atraso crítico determia a máxima frequêcia de fucioameto. Para atigir uma meta de desempeho o projetista pode: Escolher uma tecologia de fabricação (CMOS) mais recete, com trasistores meores (e portato, mais cara). Otimizar o projeto elétrico e/ou lógico. Mudar a arquitetura do sistema, aumetado/iserido paralelismo Alterar o algoritmo, aumetado o grau de paralelismo. Slide 10T.5 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Aspectos a Serem Cosiderados o Projeto 3. Cosumo de Eergia Importatíssimo para aplicações portáteis, pois determia a duração da bateria (tecologia de armazeameto de eergia ão evolui com a mesma rapidez que a Microeletrôica). Dissipação do calor do chip requer um projeto térmico cuidadoso e pode icorrer em custos extras com ecapsulameto especial (mais caro) e vetilação forçada ( cooler ). Slide 10T.6 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Aspectos a Serem Cosiderados o Projeto 4. Testabilidade No circuito itegrado ão se tem acesso aos potos iteros, apeas aos pios de E/S. Geralmete, é ecessário iserir modificações e até mesmo blocos de hardware que facilitem o teste do sistema digital. A fase de teste correspode a aprox. 50% do custo total de desevolvimeto de um chip. Slide 10T.7 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto de Sistemas Digitais para Aplicações Específicas Colocação do Problema Dado um algoritmo (i.e., uma descrição comportametal), projetar um SD (sistema digital) capaz de implemetá-lo, atededo às restrições e aos requisitos de projeto, o que se refere a: 1. Custo de Implemetação 2. Desempeho 3. Cosumo de Eergia 4. Testabilidade 5. Tolerâcia (ou Robustez) a Falhas Slide 10T.8 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto de Sistemas Digitais para Aplicações Específicas Exemplo 1: Cosidere o seguite algoritmo iício! proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! OBS: o algoritmo poderia estar descrito em C, C++, Java, SystemC etc, ou já estar represetado sob a forma de uma FSMD Slide 10T.9 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto de Sistemas Digitais para Aplicações Específicas Exemplo 1: Uma especificação melhorada Comportameto Iterfaces iício! proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! iício Reset ck eta etb 4 4 S.D. 4 mult proto Slide 10T.10 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto de Sistemas Digitais para Aplicações Específicas Exemplo 1: Iformações cotidas em um algoritmo iício! proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! Sial de cotrole (de saída) é iicializado com zero Valores das etradas eta e etb são atribuídos a variáveis A e B Variável auxiliar é iicializada com zero Testes (geram siais de status para o BC) Variáveis são usadas em operações aritméticas Resultado da operação é dispoibilizado a saída de dados Sial de cotrole (de saída) é setado para idicar o térmio Slide 10T.11 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto de Sistemas Digitais para Aplicações Específicas Exemplo 1: Iformações cotidas em um algoritmo iício! proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! iício Reset Um algoritmo cotém iformações sobre: As operações que devem ser realizadas sobre os dados (usadas o projeto do B.O.) O fluxo de execução (usadas o projeto do B.C.) O algoritmo pode ser represetado graficamete por meio de um fluxograma ou por uma FSMD ck eta 4 S.D. mult etb 4 4 proto Slide 10T.12 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto de Sistemas Digitais para Aplicações Específicas Exemplo 1 iício! proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! iício Reset Neste algoritmo: Há variáveis que servem para armazear dados (A, B, P) Há variáveis que são apeas iterfaces de etrada e saída (eta, etb, mult, proto) Deve haver UFs para realizar as operações especificadas Associados aos testes deve existir siais de status que o B.C. Usa para tomar as decisões ck eta 4 S.D. mult etb 4 4 proto Slide 10T.13 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto de Sistemas Digitais para Aplicações Específicas Exemplo de Algoritmo iício! proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! Até aqui, ada foi especificado a respeito do desempeho e do custo da implemetação Explorado a relação custo x desempeho: Uma operação por ciclo de relógio x várias operações por ciclo. Slide 10T.14 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Exemplo 1: Projetar um BO para o SD que implemeta o algoritmo abaixo, assumido que: Este SD deve possuir duas etradas de dados O custo de implemetação deve ser míimo O SD ão precisa ter alto desempeho (e ão há restrição quato ao desempeho míimo ecessário) iício! iício Reset ck eta 4 S.D. mult etb 4 4 proto proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! Slide 10T.15 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Solução 1: Reestruturado o Algoritmo para custo míimo iício Reset ck eta 4 S.D. mult etb 4 4 proto iício! proto 0;! A eta;! B etb;! P 0;! Se B 0 etão! Equato A 0 faça! iício! P P + B;! A A - 1;! mult P;! proto 1;! Iremos assumir que somete uma operação ocorre por ciclo de relógio As operações que podem ocorrer em paralelo estão em uma mesma caixa (observe que proto é uma saída de cotrole.) mult P! proto 1! iício! proto 0! A eta! B etb! P 0! S S B = 0! N A = 0! N P P + B! A A - 1! Slide 10T.16 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Solução 1: Uidades Fucioais (UFs) Necessárias iício! Operações ecessárias: + e - (a verdade, seria um decremeto, mas vamos assumir subtração) As operações + e - são usadas em ciclos de relógio diferetes. Logo, poderemos usar um somador/subtrator, que é mais barato que um somador mais um subtrator proto 0! A eta! B etb! P 0! S S B = 0! N A = 0! N P P + B! mult P! proto 1! A A - 1! Slide 10T.17 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Solução 1: Custo de UFs Versus Custo de UFs Combiadas Somador de 4 bits Subtrator de 4 bits b3 b2 b1 b0 a3 b3 a2 b2 a1 b1 a0 b0 a3 a2 a1 a0 c4 c3 c2 c1 c0 0 c4 c3 c2 c1 c0 1 s3 b3 s2 b2 s1 b0 s0 b0 s3 s2 s1 s0 c3 a3 a2 a1 a0 Somador/Subtrator de 4 bits c4 c3 c2 c1 c0 S overflow s3 s2 s1 s0 Slide 10T.18 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Calculado o Custo do Somador/Subtrator b3 b2 b0 b0 c3 a3 a2 a1 a0 c4 c3 c2 c1 c0 S a i b i MS overflow s3 s2 s1 s0 g i p i c i+1 c i x i MS s i Slide 10T.19 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Calculado o Custo do Somador/Subtrator b3 b2 b0 b0 Mas em CMOS c3 a3 a2 a1 a0 a i b i c4 c3 c2 c1 c0 S overflow s3 s2 s1 s0 p i Vcc c i+1 c i A B A S s i B Slide 10T.20 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Calculado o Custo do Somador/Subtrator a i b i Algumas Implemetações CMOS para a xor X Y X Y c i+1 c i X Y X Y X X s i Y Y X Y 16 trasistores Slide 10T.21 12 trasistores (ecessita de 2 iversores) Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Calculado o Custo do Somador/Subtrator a i b i Algumas Implemetações CMOS para a xor Y X X X c i+1 c i Y X Y Vcc X Y Y s i 8 trasistores 6 trasistores (é a mais usada) Slide 10T.22 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Calculado o Custo do Somador/Subtrator b3 b2 b0 b0 c3 a3 a2 a1 a0 c4 c3 c2 c1 c0 S overflow s3 s2 s1 s0 Custo do Somador/subtrator, por bit: 3 portas xor: 3 x 6 = 18 trasistores 3 portas ad de duas etradas: 3 x 4 = 12 trasistores Logo, custo de um bit = 30 trasistores (igorado-se a xor que calcula o overflow) Custo de um somador/subtrator de bits: 30 trasistores Slide 10T.23 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Solução 1: Registradores Há três variáveis (p/ dados): A, B e P Iremos cosiderar que mult é apeas uma saída de dados (e portato, ão ecessita de um registrador) Quatos registradores serão ecessários? Será preciso fazer uma aálise do tempo de vida das variáveis... proto 0! A eta! B etb! P 0! S S iício! B = 0! N A = 0! N P P + B! mult P! proto 1! A A - 1! Slide 10T.24 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Solução 1: Registradores Aálise do tempo de vida das variáveis: A aálise acima cosidera que uma variável está viva desde o ciclo de relógio subsequete ao ciclo o qual ela recebe um valor ovo até o último ciclo o qual ela é cosultada. ( Jaelas podem ocorrer...) 1 2 3 4 5 6 A X X X X B X X X X P X X X X X 6 mult P! proto 1! proto 0! A eta! B etb! P 0! S S iício! B = 0! N A = 0! N P P + B! A A - 1! 2 3 1 4 5 Slide 10T.25 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Solução 1: Registradores Aálise do tempo de vida das variáveis: 1 2 3 4 5 6 A X X X X B X X X X P X X X X X as variáveis A, B e P são escritas a borda de relógio que ecerra o passo 1 e dá iício ao passo 2 O úmero máximo de variáveis simultaeamete vivas é 3. Logo, são ecessários 3 registradores. Chamemo-los de A, B e P. 6 mult P! proto 1! proto 0! A eta! B etb! P 0! S S iício! B = 0! N A = 0! N P P + B! A A - 1! 2 3 1 4 5 Slide 10T.26 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Dúvida: ão dá para reduzir o úmero de passos? (e com isto, reduzir também o custo do BC?) Resposta: sim! Se usarmos dois comparadores, poderemos realizar os passos 2 e 3 em um úico estado proto 0! A eta! B etb! P 0! S iício! B = 0! 2 1 registrador B = 0? N S A = 0! N P P + B! 3 4 zero zero 6 mult P! proto 1! A A - 1! 5 Slide 10T.27 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Solução 1: Novo Fluxograma e FSMD equivalete iício! iicio=0 proto 0! A eta! B etb! P 0! S B = 0! 1 2 S0 proto 1 iicio=1 S1 proto 0 A eta B etb P 0 S N A = 0! A=0 ou B=0 S2 A 0 e B 0 N P P + B! 3 S3 P P + B 5 mult P! proto 1! A A - 1! 4 S5 proto 1 S4 A A 1 Slide 10T.28 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo iicio=0 S0 A=0 ou B=0 proto 1 iicio=1 S1 S2 proto 0 A eta B etb P 0 A 0 e B 0 Solução 1: elemetos para o BO: 1 somador/subtrator 3 registradores com carga paralela, A, B e P, sedo P com reset assícroo Rede de itercoexão apropriada RstP CP P A CA B CB S3 P P + B overflow +/- op S5 proto 1 S4 A A 1 op operação 0 S=X+Y 1 S=X-Y Slide 10T.29 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo iicio=0 S0 A=0 ou B=0 proto 1 iicio=1 S1 S2 proto 0 A eta B etb P 0 A 0 e B 0 eta etb 0 1 ma RstP CP P A CA B CB 1 m1 0 1 0 1 Az Bz m2 S3 P P + B overflow +/- op S5 proto 1 S4 A A 1 mult op operação 0 S=X+Y 1 S=X-Y Slide 10T.30 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco Operativo Visado Custo Míimo Verificação do Fucioameto Exemplo: eta = 3, etb = 4 (ao fial, A=0 e P=12) S0 A=0 ou B=0 iicio=0 proto 1 iicio=1 S1 S2 proto 0 A eta B etb P 0 A 0 e B 0 Coteúdo dos registradores (e valor do sial de status Az) S0 S1 S2 S3 S4 S2 S3 S4 S2 S3 S4 S2 S5 A X X 3 3 3 2 2 2 1 1 1 0 0 B X X 4 4 4 4 4 4 4 4 4 4 4 P X X 0 0 4 4 4 8 8 8 12 12 12 Az X X 0 0 0 0 0 0 0 0 0 1 0 S3 P P + B Tempo de execução: 12 ciclos de relógio (+ o de ciclos em que ficar em S0) S5 proto 1 S4 A A 1 Slide 10T.31 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Cálculo do Custo do Bloco Operativo eta 0 1 ma etb somador/subtrator de bits: 30 trasistores E o resto? RstP CP P A CA B CB 1 m1 0 1 0 1 Az Bz m2 overflow +/- op mult Slide 10T.32 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Estimativa do Custo do Bloco Operativo Custo do Mux 2:1 em CMOS sel A 0 Y sel B 1 A sel Y A Y B B 14 ou 12 trasistores 6 ou 4 trasistores (mais usado) Slide 10T.33 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Estimativa do Custo do Bloco Operativo Custo de um Flip-flop D mestre-escravo CMOS D C Q Q 18 ou 20 trasistores (evetualmete, podemos cosiderar somete um iversor para o clock de todos os bits) CK CK D D CK CK CK CK CK OBS: para set ou reset assícroo, adicioar 2 trasistores CK Slide 10T.34 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Estimativa do Custo do Bloco Operativo Custo de um Flip-flop D mestre-escravo CMOS com habilitação de carga paralela 18+4= 22 trasistores dado 0 1 D Q Q carga C Q CK OBS: para set ou reset assícroo, adicioar 2 trasistores Slide 10T.35 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Estimativa do Custo do Bloco Operativo Resumo Compoete RT Custo Somador Subtrator 24 26 D Q Somador/subtrator Mux 2:1 30 4 C Q Registrador com carga paralela (+4 trasistores para set ou reset assícroo) 18 Registrador com carga paralela cotrolada (+4 trasistores para set ou reset assícroo) 22 dado 0 1 D Q Q carga C Q CK Slide 10T.36 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Estimativa do Custo do Bloco Operativo eta etb 0 1 ma RstP CP P A CA B CB 1 m1 0 1 0 1 Az Bz m2 Custo do BO 1 Custo 1 Somador/subtrator 30 3 Muxes 2:1 3x4=12 2 Registradores com carga paralela cotrolada 1 Registrador com carga paralela cotrolada e reset assícroo Total 2x22=44 26 112 overflow +/- op Estimativa de custo para o BC: Número de estados: 5 ou 6 Número de siais de cotrole = 8 mult Slide 10T.37 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Estimativa do Desempeho do Bloco Operativo iicio=0 S0 proto 1 iicio=1 S1 proto 0 A eta B etb P 0 Se = 4 bits: Maior iteiro sem sial: 15 ( 1111) Pior caso: A=15, B 0 Sequêcia de execução: S1, 15 x[s2,s3,s4], S2, S5 = 48 ciclos de relógio S5 A=0 ou B=0 proto 1 S2 A 0 e B 0 S3 P P + B S4 A A 1 Geeralizado para bits: Maior iteiro sem sial: 2-1 Pior caso: A= 2-1, B 0 Sequêcia de execução: S1, (2-1)x [S2,S3,S4], S2, S5 = 3x(2-1)+3 ciclos de relógio = 3x2 ciclos de relógio Slide 10T.38 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco de Cotrole Visado Custo Míimo Diagrama de Estados (Assumido Moore) iicio=0 iicio=0 S0 proto 1 iicio=1 S1 proto 0 A eta B etb P 0 S0 proto 1 iicio=1 S1 proto 0 A eta B etb P 0 A=0 ou B=0 S2 A 0 e B 0 Az + Bz S2 Az Bz S3 P P + B S3 P P + B S5 proto 1 S4 A A 1 S5 proto 1 S4 A A 1 Note que as codições Az + Bz e Az Bz são complemetares. Slide 10T.39 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco de Cotrole Visado Custo Míimo Tabela de Trasição de Estados (Assumido Moore) iicio=0 S0 iicio=1 S1 Estado atual S0 0 Etradas iício BZ AZ 1 - - - - Próx. Estado S0 S1 S1 - - - S2 S2-0 0 S3 Az + Bz S2 Az Bz - - - 0 1 1 1 0 1 S5 S5 S5 S3 S3 - - - S4 S5 S4 S4 - - - S2 S5 - - - S0 Slide 10T.40 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco de Cotrole Visado Custo Míimo Tabela de Saídas (Assumido Moore) S5 iicio=0 S0 Az + Bz proto 1 proto 1 iicio=1 S1 S2 S3 proto 0 A eta B etb P 0 S4 Az Bz P P + B A A 1 mult overflow eta 0 1 ma +/- etb RstP CP P A CA B CB m1 0 1 0 1 Az Bz m2 op 1 op operação 0 S=X+Y 1 S=X-Y Slide 10T.41 Prof. José Luís Gützel
4. Projeto de Sistemas Digitais o Nível RT Projeto do Bloco de Cotrole Visado Custo Míimo Tabela de Saídas (Assumido Moore) iicio=0 S0 Az + Bz proto 1 iicio=1 S1 S2 proto 0 A eta B etb P 0 Az Bz Estado Reg. P Reg. A Somador/Sub Saída RstP CP ma CA CB m1 m2 op proto S0 0 0-0 0 - - - 1 S1 1 0 1 1 1 - - - 0 S2 0 0-0 0 - - - 0 S3 0 1-0 0 0 0 0 0 S4 0 0 0 1 0 1 1 1 0 S5 0 0-0 0 - - - 1 S3 P P + B 1 sial 1 sial S5 proto 1 S4 A A 1 RstP = ma = CB CP CA = op = m1 = m2 proto 4 siais Slide 10T.42 Prof. José Luís Gützel