O que vem a seguir para a emulação

Nó Fonte: 1294329

A emulação é agora a base da verificação para designs avançados de chips, mas como emulação evoluirá para atender às demandas futuras envolvendo arquiteturas cada vez mais densas, complexas e heterogêneas não está totalmente claro.

As empresas de EDA têm investido fortemente na emulação, aumentando a capacidade, melhorando o desempenho e adicionando novas capacidades. Agora, a grande questão é de que outra forma eles podem aproveitar essa tecnologia à medida que as necessidades de design mudam. O design permaneceu no nível de transferência de registro (RTL) por 30 anos, e o desempenho do simulador estagnou há cerca de 20 anos. Essa lacuna tem sido cada vez mais preenchida por emuladores, cujo desempenho é quase independente do tamanho do design, graças aos avanços tecnológicos que acompanham o aumento do tamanho dos designs.

“Como indústria de verificação, continuamos fazendo o que costumávamos fazer”, diz Simon Davidmann, CEO da Software Imperas. “As coisas aumentam, os computadores ficam mais poderosos, adicionamos mais memória e, em algum momento, algo quebra. Não podemos continuar assim. Temos que passar para o próximo nível do que quer que seja.”

Nada disto é uma surpresa para as empresas de EDA. “Este é o nosso pão com manteiga”, diz Johannes Stahl, diretor sênior de marketing de produtos para emulação da Synopsys. “Pensamos nisso todos os dias e vemos como as coisas vão evoluir. Nós olhamos para as necessidades dos nossos clientes o tempo todo.”

Todos os grandes fornecedores de emuladores apontam tendências semelhantes. “Cada motor que temos, seja simulação lógica, emulação ou plataformas de prototipagem de array de portas programáveis ​​em campo (FPGA) – os motores dinâmicos – cada uma tem seu próprio ponto ideal”, diz Michael Young, diretor de marketing de produto da Cadência. “Como tal, trata-se realmente da tarefa de verificação que temos em mãos e do que podemos fazer para maximizar a sua vantagem. E quando digo maximizar a vantagem, na verdade significa como isso será prático, o que estará disponível para você usar, e isso se refere à economia.”

Evolução da emulação
Sem aumentos na capacidade e no desempenho, a emulação rapidamente teria seguido o declínio da simulação RTL. Mas os emuladores comerciais têm arquiteturas significativamente diferentes. Alguns são baseados em chips personalizados, enquanto outros usam dispositivos FPGA prontos para uso. Alguns possuem malhas programáveis ​​e tabelas de consulta, enquanto outros são bases de processador. Cada um deles cria diferentes compensações entre custo, desempenho e tempo de resposta.

“Os FPGAs estão evoluindo com as curvas de silício e diminuindo nos nós”, diz Stahl da Synopsys. “Isso nos permite concentrar na arquitetura de hardware. O que você faz com esses FPGAs? Como você otimiza o dimensionamento usando FPGAs? Desenvolver capacidade significa fundamentalmente decidir sobre o formato para ter centenas de FPGAs e como interconectá-los da maneira mais eficiente. Temos uma variedade de arquiteturas diferentes no mercado hoje que alcançam diferentes pontos de desempenho. Esta inovação continuará.”

Para o leigo, pode parecer que os emuladores nunca ficam mais rápidos. “Se você olhar para os mesmos designs, digamos, um design de bilhões de portas que estava rodando no sistema de emulação anterior em comparação com as gerações mais recentes, estamos na verdade vendo uma melhoria de desempenho de cerca de 50%”, diz Young da Cadence. “Essa é a boa notícia. Em vez de funcionar a 900 quilohertz ou 1 megahertz, agora você viu cerca de 1.4 a 1.5 megahertz. Está melhorando gradativamente. Mas então, se você tiver um projeto de 2 bilhões de portas, bem, talvez isso se reduza a um fator de aceleração de 1.1 por causa da comunicação. Os limitadores são coisas como o mecanismo de roteamento, a interconexão. À medida que você escala, os caminhos se tornam mais longos e a velocidade de emulação é limitada pelo caminho mais longo.”

Palladium Z2, emulador da Cadence. Fonte: Cadence Design Systems

Figura 1: Paládio Z2, Emulador de Cadence. Fonte: Cadence Design Systems

Depois, há o software usado para mapear um design no emulador. “Como você mapeia melhor o design desses FPGAs?” pergunta Stahl. “Esse esforço é contínuo e explora a arquitetura do emulador e depois as especificidades do design. Há um fluxo constante de inovação no lado do software, e isso eventualmente se manifesta nos emuladores da próxima geração.”

Outros concordam. “Investimos muito em inovação em nosso compilador de particionamento paralelo e depois seguimos com o que chamamos de compilador modular”, diz Young. “Se fizermos apenas a compilação tradicional, levaríamos dias para compilar, o que não é prático para a maioria dos clientes. A maioria dos clientes espera duas a três voltas por dia. Por exemplo, temos um cliente que está fazendo um projeto de 6 bilhões de portas usando esses compiladores avançados e consegue concluir a compilação em menos de seis horas.”

Tudo isso está acontecendo diante da mudança nos modelos de uso da emulação. “Quando o mundo começou com a emulação, tratava-se realmente de emulação no circuito, onde seus emuladores eram conectados a uma placa personalizada ou pronta para uso”, explica Young. “Você pode ter um processador na placa-mãe e estar projetando uma GPU no emulador. A maioria das pessoas usa PCIe como interface principal para o processador, então essa seria uma maneira. Com o tempo, as pessoas virtualizaram essa interface para que, em vez de usar pontes rápidas conectadas por meio de PCI, você tivesse pontes virtuais. Há outra classe de modelo de uso que é a aceleração de simulação. São pessoas de simulação que querem fazer execuções muito longas e usar hardware para acelerar isso. Agora, existem coisas ainda mais exóticas, como estimativa de potência.”

Na verdade, a Cadence diz que está monitorando 20 modelos de uso diferentes para emulação e espera que esse número cresça para 30 ou mais nos próximos um ou dois anos.

O impacto do software
Uma grande mudança que permeia a indústria é a crescente importância do software. “À medida que entramos no novo megaciclo de semicondutores, a era do design de SoC centrado em software exige uma mudança dramática nos sistemas de verificação funcional para atender aos novos requisitos”, disse Ravi Subramanian, vice-presidente sênior e gerente geral de Siemens EDA. “Nossos clientes exigem um sistema integrado completo com um roteiro claro para a próxima década que abrange plataformas virtuais, emulação de hardware e tecnologias de prototipagem (FPGA).”

Davidmann, da Imperas, concorda. “O mundo passou de um mundo centrado no desempenho e no design de chips para um mundo definido por software. As pessoas não especificam o desempenho absoluto do hardware, mas desejam a implementação mais rápida possível. O que o software está dizendo é que, para funcionar em um tempo realista, preciso de 'esta' classe de hardware. Eles não precisam de análise detalhada de tempo. Se um trabalho não estiver sendo concluído, você o divide em dois dos núcleos disponíveis.”

A verificação antecipada de software tornou-se uma das tarefas mais importantes confiadas à emulação. “Você não executará apenas um pequeno software, mas uma carga de trabalho inteira”, diz Stahl. “Poderia ser uma inicialização do Android com algum aplicativo de telefone, poderia ser um protocolo 5G, poderia ser um aplicativo de rede para muitos e muitos pacotes Ethernet. Mas todos eles são cargas de trabalho de aplicativos reais e constituem a pilha completa de software que roda no chip.”

Isso pode acontecer em vários níveis de abstração. “Os clientes podem querer executar cargas de trabalho, estruturas e benchmarks do mundo real e específicos do mercado no início do ciclo de verificação para análise de potência e desempenho”, afirma Subramanian, da Siemens. “Isso seria feito usando modelos SoC virtuais no início do ciclo. Posteriormente, mova o mesmo design para um emulador para validar as interfaces de software/hardware e executar software em nível de aplicativo enquanto funciona mais próximo das velocidades reais do sistema. Para tornar esta abordagem o mais eficiente possível, eles precisam usar o mesmo ambiente de verificação virtual, os mesmos transatores e modelos, para maximizar a reutilização de materiais de verificação, ambiente e conteúdo de teste.”

O uso de diferentes modelos de abstração em vários estágios adiciona requisitos adicionais ao fluxo. “Ao adotar um design de hardware baseado em plataforma, o hardware pode se tornar um risco menor no design do sistema”, diz Christoph Sohrmann, gerente de grupo para desenvolvimento de sistemas virtuais da Divisão de Engenharia de Sistemas Adaptativos da Fraunhofer IIS. “É mais a interação do software com os periféricos. A maior parte da funcionalidade vem das camadas de software. Aqui veremos um aumento muito mais acentuado na complexidade, onde a interação hardware/software se tornará difícil de verificar. O que é necessário nesta área serão modelos rápidos e adequadamente qualificados em nível de sistema em relação ao comportamento de temporização, por exemplo. Uma tendência futura será o desenvolvimento e o provisionamento de IP em nível de sistema que foi qualificado em relação ao seu equivalente RTL.”

Em algum momento, a precisão do ciclo pode se tornar necessária. “Existem outros softwares, como drivers ou outros softwares incorporados de baixo nível, como o DMA, onde o tempo é importante”, diz Young. “É aí que a análise de desempenho e as compensações estão sendo analisadas. Eles precisam usar modelos RTL, porque o modelo virtual abstrai as informações necessárias. Para uma boa análise de desempenho, você precisa de precisão no nível do ciclo.”

O RTL é tarde demais?
À medida que mais verificações de software podem ser realizadas em modelos virtuais, o RTL é tarde demais para muitas tarefas de verificação? “RTL é uma representação muito específica de um projeto, que é precisa o suficiente para análise de desempenho e para executar software que exige precisão de ciclo”, diz Stahl. “Portanto, ainda é a representação mais importante do design, mas não é a única. Se você não tiver representações anteriores ao RTL, não poderá vencer no mercado. Os melhores exemplos disso são chips que possuem arquiteturas muito novas. Com cada chip de IA tendo uma arquitetura diferente, cada uma dessas empresas está criando um modelo de arquitetura de alto nível que representa seus núcleos de processamento especiais, com os quais investigam o desempenho com algum nível de precisão antes do RTL.”

A redução de riscos significa que as pessoas estão relutantes em mudar. “O enorme desafio que as pessoas enfrentam é ter que se afastar do conforto dos detalhes que costumavam observar”, diz Davidmann. “Quase todo software pode ser verificado usando um modelo com instruções precisas e, em seguida, testar pequenos bits no RTL. As arquiteturas de chips estão mudando. Você tem abstrações nas comunicações para que tudo funcione em um nível superior, o que significa que você pode fazer isso em software e simular muito melhor sem detalhes. Para essas novas arquiteturas, você pode simulá-las sem se preocupar com os detalhes da comunicação, porque isso pode ser abstraído.”

Identificar os bits importantes requer o uso de soluções híbridas. “O que oferecemos são modelos com precisão de ciclo para a interconexão e o subsistema de memória, porque esses dois juntos determinam quantos ciclos você pode bombear em seu projeto”, diz Stahl. “Todo o resto pode ser comportamental. Pode ser tráfego abstrato. Talvez seja um modelo abstrato de processador. Talvez apenas modele uma certa sequência de eventos. Mas esta sequência de eventos e a intensidade do tráfego são boas o suficiente para fazer esta compensação da arquitetura. Ninguém comete o erro de equiparar isso ao mundo real. E ninguém questionou nesse nível que precisa ser 5% preciso. Provavelmente não é. Talvez tenha 15% de precisão ou 20% de precisão. As compensações relativas ainda valem a pena.”

Figura 02: Sistema de emulação Synopsys ZeBu EP1. Fonte: Sinopse

Figura 02: O Sistema de emulação Synopsys ZeBu EP1. Fonte: Sinopse

Misturando prototipagem virtual e a emulação tornou-se uma obrigação. “A emulação híbrida em conjunto com protótipos virtuais pode proporcionar uma aceleração significativa do processo de verificação e resolver a maldição da complexidade no futuro”, afirma Sohrmann, da Fraunhofer. “Basicamente, há dois conceitos que poderiam ser considerados. Uma é a abordagem clássica de co-simulação. Para que isso funcione sem problemas, é necessária uma interface padronizada entre os modelos de diferentes níveis de abstração. Algumas partes do RTL podem ser substituídas por modelos mais rápidos para acelerar a simulação geral. O segundo e mais desafiador conceito é alternar dinamicamente entre os níveis de abstração durante a simulação. Por exemplo, você deseja verificar algum estado interno em que o sistema se encontra após um longo processo de inicialização. Isso levaria uma eternidade quando executado diretamente em RTL. Em vez disso, você pode considerar executar a inicialização em um protótipo virtual e mudar dinamicamente para um modelo mais detalhado em algum momento durante sua simulação.”

Essa abordagem de abstração dinâmica está se consolidando. “Temos um cliente que está usando nossa simulação de software dos processadores para inicializar o sistema até um ponto apropriado e, em seguida, fazer hot swap no RTL no emulador em modo híbrido”, diz Davidmann. “Passamos da execução de 500 milhões de instruções por segundo para o emulador, que estava rodando cerca de 100 vezes mais devagar quando chegamos ao ponto interessante.”

Adicionando prototipagem
A prototipagem tem ganhado força recentemente como meio de resolver outros desafios de verificação. “Os sistemas de prototipagem permitem alcançar um desempenho muito superior ao da emulação”, diz Stahl. “Mas leva mais tempo para construir esses protótipos. Ao contrário de um emulador, eles normalmente são conectados manualmente para desempenho ideal e também mais ajustados em termos de fluxo. Mas você pode atingir 20 MHz ou 30 MHz, o que pode ser necessário para executar determinadas funções.”

Existe valor em unir prototipagem e emulação? “O desafio aqui não é realmente montar esses sistemas”, diz Young. “O desafio é quando você tem uma plataforma de emulação com um banco de dados que funciona, o tempo que leva para trazê-lo para uma plataforma de prototipagem FPGA. Nós nos esforçamos muito para ter uma transição muito tranquila entre eles. Depois de colocá-lo em execução na emulação, leva apenas semanas para colocá-lo na plataforma de prototipagem FPGA, em algum momento dentro de uma semana. Então agora você tem a vantagem de ter congruência entre as duas plataformas. E quando você precisar de maior desempenho para executar mais cargas de trabalho de software, poderá fazer isso rapidamente, em vez de esperar meses.”

Mas há outras mudanças acontecendo no mercado. Chips estão começando a ganhar muita atenção e podem ser entregues tanto como produto final quanto como algo que lembra um protótipo. “Você pode chamá-los de chiplet ou, no início, nós os chamávamos de placas personalizadas ou placas-alvo”, acrescenta Young. “É absolutamente para onde os mercados estão indo. Em vez de esperar pelo meu silício final, posso entregar uma plataforma de emulação com ambientes de destino personalizados, onde o alvo é basicamente qualquer coisa fora do emulador em formato físico. Isso já está acontecendo. Os clientes estão projetando memórias personalizadas em torno disso, ou chips, o que for necessário para criar os modelos que possam demonstrar que é assim que meu design se parece. Isto é o que as capacidades, recursos e desempenho poderiam ser no silício final. Poderia ser uma plataforma para que seus clientes de sistema fizessem desenvolvimento ou integrações de software antecipadas.”

Adicionando análise
Um dos problemas da emulação é que ela gera tantos dados que pode ser difícil analisá-los todos. Para este fim, os fabricantes de emulação estão começando a incorporar ferramentas de análise no hardware, reduzindo enormemente a quantidade de dados que precisam ser exportados. Vimos isso na análise de cobertura, bem como em várias formas de análise de poder.

Um novo caso de uso relatado permite a medição de desempenho em um protótipo. “Braço apresentou o uso de prototipagem, não apenas para desenvolvimento de software ou validação de sistema das interfaces, mas também para medição de desempenho”, diz Stahl. “Eles encontraram uma maneira de calibrar os resultados. Anteriormente, a crença na indústria era que só era possível medir o desempenho em um emulador porque o emulador é o único com precisão de ciclo. O protótipo não é necessariamente preciso em termos de ciclo. Mas o que eles descobriram é que há outra incerteza. Quando você não executa benchmarks suficientes, há variações no desempenho entre os benchmarks. Se você executar um benchmark apenas uma vez, poderá não obter o resultado correto. Você precisa calcular a média entre executar o mesmo benchmark várias vezes porque há dependências do software para executar o benchmark.”

Conclusão
A emulação mudou muitas vezes durante sua história. Ele provou seu valor repetidamente, e as equipes de desenvolvimento adaptaram o hardware para atender às necessidades dos fabricantes de chips. A grande nuvem no horizonte para os emuladores é o quanto as arquiteturas estão mudando e o impacto que isso terá na verificação em geral. Se uma quantidade cada vez maior de verificações precisar ser feita antes do RTL, a indústria encontrará maneiras de contornar a necessidade de precisão do ciclo.

Outras abordagens ganharam terreno. O protótipo virtual, em particular, tornou-se uma ferramenta indispensável para exploração arquitetônica, análise de desempenho e verificação antecipada de software. Mas não importa o que aconteça, o hardware que existe em um chip terá que ser verificado, e isso exige uma enorme capacidade. E como esse hardware precisa ser controlado por algum software, pode sempre haver uma função para os dois executarem juntos em uma representação que seja o mais próxima possível da produção.

Fonte: https://semiengineering.com/whats-next-for-emulation/

Carimbo de hora:

Mais de Engenharia de semicondutores