HW-SW codesign ou a solução errada para o problema certo CMP502 2002/II Parte do contexto • Década de 90: consolidação da síntese de alto nível (10 anos) • Mercado de semicondutores: – foco no volume – projeto de chips envolve basicamente hardware – mesmo processadores são basicamente HW • Mercado mundial de eletrônica: sistemas Síntese de sistemas • Uma perspectiva do início dos anos 90: • Como capturar o SW que o sistema deve executar? – VHDL-OO – Handle-C • Como decidir o que é SW e o que é HW? Uma perspectiva histórica • De Micheli-Gupta – partindo do HW, move operações não críticas ou custosas para SW (91) • Athanas, Silverman – identifica no código parcelas críticas, e move operações para HW na medida das necessidades • HW modificável: densidade aumenta selvagemente no início dos 90! O problema • Projeto de HW feito com conjunto de ferramentas diferentes que o de SW • conceitos como paralelismo são diferentes em cada domínio • maioria dos sisteemas digitais contém ambos, mas há uma serialização de tarefas Um resumo dos esforços • Classificação: Jay Adams, Donald Thomas • Modelo tipo I: o HW executa o SW – relação de abstração simples entre HW-SW – mais de um componente físico possível – modelo mais clássico de como se faz projeto • Modelo tipo II: HW e SW modelados da mesma maneira – microprocessador sintetizados a partir de síntese comportamental Vantagens e desvantagens • Modelo I: – config. SW e HW interdependente – fronteira móvel • Modelo II: – mais espaço de projeto para mover a fronteira – especificação comun Tarefas de projeto I • Co-simulação – domínios diferntes, granularidades diferentes – desempenho do simulador crítico – modelo do HW tem de estar disponível cedo para avaliação de desempenho – a interface de comunicação tem de estar presente (bus e suas transações) Tarefas II • Co-síntese – – – – – partição, problema ou não critérios de partição como estabelecer critérios adequados foi a festa de 5 anos performance, custo, ‘possibiloidade de modificações tardias, natureza da computação, concorrência e overhead de comunicação Fluxo de projeto • modelar HW e SW como grafo • usar o domínio de aplicação para limitar o problema • colocar pesos nos arcos segundo algum critério • definir problema como NP-completo • definir heurística adequada • publicar paper O modelo de HW • • • • Processador embarcado Sistema heterogêneo ASIPs Co-processadores Resultados publicados • Aceleração sim, mas pouca comparação com realidade • Processador + HW dedicado: as vezes mais lento que só processador • Por que não usar vários processadores? Custo até mais baixo • O exemplo certo é tudo Resultados comerciais • Coware – modelo processador único (ARM) – aplicações DSP para comunicações • Arexys – modelo processadores heterogêneos distribuídos – mercado militar Olhar apresentações correlatas A novidade: REUSO • A questão da especificação conjunta • Como incorporar núcleos a partir da especificação? – Uso de modelos abstratos para especificação – Uso de modelos estruturais para HW alvo A nova realidade (ou não) • Volumes cada vez maiores são exigidos – custo de máscaras para tecnologia d eponta devem ser amortizados – custo de foundries absurdo • Microprocessadores encontrados em todos os tamanhos, desempenhos e potência • Avanços na computação paralela e distribuída Consequentemente... • HW único, muda só o SW • Projeto basedo em plataforma • Mas há outras mudanças – HW cconfigurável cada vez mais barato e de maior desempenho – aplicações demandam cada vez menor consumo de potência, HW genérico é péssimo – é uma corrida ou uma luta acadêmica?