Com um número crescente de empresas interessadas em dispositivos baseados no ISA RISC-V e um número crescente de núcleos, aceleradores e componentes de infraestrutura sendo disponibilizados, seja comercialmente ou em formato de código aberto, os usuários finais enfrentam um desafio cada vez mais difícil de garantindo que eles façam as melhores escolhas.
Cada usuário provavelmente terá um conjunto de necessidades e preocupações que quase iguala a flexibilidade das ofertas RISC-V, estendendo-se muito além das métricas tradicionais de PPA para questões de segurança e proteção ou considerações de qualidade. Isso poderia incluir a adaptabilidade do material de verificação, o que permite a extensão arquitetônica e a verificação necessária para acompanhá-lo.
Tradicionalmente, três níveis de prototipagem têm sido implantados – protótipos virtuais, emulação e protótipos FPGA, incluindo híbridos entre eles. Cada plataforma é então usada para diversos fins, incluindo verificação de software, validação de arquitetura, verificação funcional do hardware, análise de desempenho e muito mais.
Embora os ecossistemas de design e software para RISC-V estejam se estabelecendo, os ecossistemas de configuração e verificação estão em declínio e exigem a construção de novas tecnologias. É a própria flexibilidade do RISC-V que cria enormes desafios para a verificação, acima de tudo além do que é necessário para a verificação de processadores fixos. Também torna o co-desenvolvimento de hardware-software não apenas possível, mas necessário.
Co-desenvolvimento
No passado, o hardware era selecionado e depois o software desenvolvido para rodar nele. Com o RISC-V, o hardware geralmente é controlado por software. “A primeira coisa que você precisa escolher é quais opções padrão de RISC-V você deseja”, diz Simon Davidmann, fundador e CEO da Software Imperas. “O conjunto de recursos RISC-V atualmente tem 200 ou 300 opções. Como saber se o seu algoritmo se beneficiaria de uma unidade de ponto flutuante, ou SIMD, multiplicadores de hardware ou até mesmo de um mecanismo vetorial? Você precisa descobrir os recursos de hardware necessários e que pode pagar para o tipo de aplicativo ou trabalho que deseja que o processador execute. Isso por si só se torna um desafio.”
Os protótipos são necessários para fazer esse tipo de compensação. “Se o objetivo do designer é avaliar o desempenho e a adequação ao propósito, então a prototipagem virtual é a única opção viável”, diz Steve Roddy, CMO da Quádruplo. “Construir protótipos de hardware consome de 10 a 50 vezes mais tempo do que criar um modelo SystemC de um subsistema ou SoC inteiro. O protótipo virtual SystemC geralmente é executado rápido o suficiente para responder a questões de desempenho, como quantos quadros por segundo de taxa de transferência posso obter com este núcleo de processador ou qual é o pico e o requisito médio de largura de banda da função X, dentro de um envelope de precisão aceitável.”
Obter a precisão certa pode ser difícil. “É tudo uma questão de precisão e da sua capacidade de girar um modelo muito rapidamente”, diz Frank Schirrmeister, vice-presidente de soluções e desenvolvimento de negócios da IP Arteris. “A precisão correta é definida por tudo o que sua pergunta exige, e gerá-las não é trivial. Se você for um provedor ASIP, poderá gerá-los a partir de qualquer modelo que tiver. Dependendo da pergunta, você pode precisar de precisão de pipeline, pode precisar de precisão de memória, não precisa ser totalmente preciso, mas quando você tem um departamento de CAD envolvido, eles ficam com muito medo de responder à pergunta errada.”
Mas a precisão é uma compensação em relação à velocidade. “Embora alguns protótipos virtuais tenham ciclos precisos, eles geralmente são executados muito lentamente para serem capazes de ter o rendimento de software necessário”, afirma Davidmann, da Imperas. “Os protótipos virtuais de mais alto desempenho não são motores de desempenho porque não modelam pipelines de processador. Eles olham para ele do ponto de vista do software, onde você pode compilá-lo e executá-lo em hardware, e você pode ver o desempenho aproximado observando contagens de instruções ou estimativas aproximadas de tempo. Isso deve ser suficiente para tomar esse tipo de decisão arquitetônica.”
Muitas vezes são necessários vários protótipos. “Geralmente criamos protótipos por dois motivos”, diz Venki Narayanan, diretor sênior de engenharia de software e sistemas da unidade de negócios FPGA da Microchip Technology. “Uma é a validação arquitetônica para garantir que atendemos a todas as métricas e requisitos de desempenho e validação funcional. A outra razão é para desenvolvimento de software embarcado e firmware. Utilizamos diferentes níveis de técnicas de prototipagem, sendo a mais comum a utilização de nossos próprios FPGAs para desenvolver uma plataforma de emulação para validação arquitetônica e funcional. Também usamos modelos arquitetônicos como o QEMU para construir plataformas virtuais para validação de desempenho e desenvolvimento de software embarcado.”
O número de possibilidades está crescendo. “Há muitas maneiras pelas quais as empresas estão criando protótipos com o RISC-V hoje”, diz Mark Himelstein, CTO da RISC-V International. “Eles variam de computadores de placa única no nível do fabricante até placas empresariais com capacidade para LINUX. Ambientes de emulação (como QEMU) permitem que os desenvolvedores avancem com o software antes que seu hardware esteja completo, e há peças prontas para uso em todos os lugares, desde SoCs incorporados (de empresas como Espressif e Telink) até FPGAs (de empresas como Microsemi), até a próxima placa Horse Creek da Intel e SiFive.”
Tudo se resume à compensação desempenho/precisão. “Protótipos físicos exigem muito mais esforço de design, porque você está conectando e sintetizando RTL real, mas eles oferecem precisão e rendimento muito maiores”, diz Roddy da Quadric. “Um protótipo físico em um sistema FPGA, seja ele caseiro ou de grandes empresas EDA, exige esforço para ser criado. Mas ele pode ser executado uma ordem de magnitude mais rápido que um modelo SystemC e várias ordens de magnitude mais rápido que uma simulação completa em nível de porta. As equipes de design normalmente passarão de modelos baseados em C durante o processo de seleção de IP para modelos físicos, tanto para verificação do projeto real após a seleção de IP, quanto como uma plataforma de desenvolvimento de software de sistema.”
Depois de saber qual conjunto de recursos deseja no hardware, você pode verificar se alguém já criou uma solução que atenda à maioria das suas necessidades. “As chances são de que, com todos os fornecedores disponíveis, haja uma solução comercial que tenha o tipo de coisa que você procura”, diz Davidmann. “Mas com o RISC-V, você não precisa aceitar essa solução como ela é. Uma parte significativa do valor do RISC-V é a liberdade de alterá-lo, modificá-lo e adicionar coisas diferentes que você desejar.”
Selecionando uma implementação
Há muitas maneiras de implementar um conjunto de recursos, como o número de estágios do pipeline ou recursos de execução especulativos. Cada um terá uma compensação diferente entre potência, desempenho e área. “O tipo ISA, seja RISC-V, Arm, Xtensa da Cadence, ARC da Synopsys, realmente não impacta as metas e compensações de modelagem e prototipagem”, diz Roddy. “Um arquiteto de sistema precisa responder perguntas sobre os objetivos de design do SoC, independentemente da marca do processador. No nível técnico, o movimento RISC-V está realmente em uma posição estável no mercado em relação ao suporte de ferramentas de modelagem e análise de desempenho. Existem vários fornecedores principais concorrentes, cada um com diferentes implementações e recursos de processador. Como CPU de sistema principal, ele não tem a longevidade de um Arm e, portanto, menos participantes do ecossistema no mundo EDA têm suporte de modelagem amplamente validado e pronto para uso para núcleos RISC-V prontos para uso da variedade de fornecedores RISC-V. Como um núcleo configurável e modificável, o mundo RISC-V está atrasado no nível de automação do conjunto de instruções que a Tensilica passou 25 anos construindo. Assim, o RISC-V tem menos suporte de modelagem como um bloco de construção pronto e menos automação para usar como plataforma para experimentação de conjuntos de instruções.”
Mas esse é apenas um aspecto de uma implementação que precisa ser avaliado. Qual é a qualidade disso? Se você quiser modificá-lo, como revalidá-lo?
O desempenho é o mais fácil de avaliar. “Isso não é diferente de procurar qualquer fornecedor de processador tradicional”, diz Davidmann. “Eles dirão que este núcleo fornece tantos Dhrystones por watt, eles fornecerão os dados analíticos típicos do processador, que indicam a velocidade de execução dessa microarquitetura. Eles têm todos esses dados, e qualquer pessoa que licencie um núcleo de processador estará familiarizada com esses dados e irá conversar com eles e obter essas informações. Eles provavelmente terão muitas opções selecionáveis em suas planilhas de dados e dirão: 'Se você ativar esta opção, obterá isto ou aquilo'. Você pode ver isso na ficha técnica, nos sites dos fornecedores.”
Neste nível, você provavelmente precisará de precisão de ciclo. “Vejo a maioria das pessoas colocando-o em um emulador e executando dados suficientes para tomar uma decisão razoável”, diz Schirrmeister. “Não vejo isso mudando para protótipos virtuais tão cedo. Algumas empresas estão falando sobre protótipos FPGA, onde você tem sua própria solução de placa única. Dependendo da pergunta que você precisa responder, você pode decidir configurá-lo, gerá-lo e, em seguida, bombeá-lo para um FPGA para executar mais dados através dele, com as rotinas de software apropriadas em cima dele. A indústria possui vias de entrada suficientemente rápidas em emuladores e prototipagem para tornar isso possível. O problema básico é que você deseja tomar essa decisão com base em dados tão precisos quanto possível, mas pode não ter esses dados precisos no momento em que deseja tomar essa decisão.”
Muitos desses protótipos precisam incluir mais do que apenas o processador. “As plataformas virtuais proporcionam a capacidade de integração com outras funções de hardware físico externo, tais como memória e sensores que operam num ambiente do mundo real”, afirma Narayanan da Microchip. “Os sistemas híbridos podem reunir plataformas virtuais com protótipos físicos para outras funções externas. A emulação e prototipagem de FPGA ajudam a encontrar bugs relacionados ao tempo, como condições de corrida, pois isso é mais preciso no ciclo e as funções externas estão funcionando em alta velocidade.”
Verificação
Como o design do processador é interno há muito tempo, não existe um ecossistema de verificação pública para a construção de um processador e os recursos do RISC-V exigem uma solução de verificação muito mais flexível do que jamais existiu no passado. A criação disso está apenas começando a acontecer.
“Existem métricas do setor, como Dhrystones ou CoreMark, para que as pessoas possam comparar o desempenho”, diz Davidmann. “Mas como você pode comparar a qualidade da verificação? É necessário que haja condições equitativas para que cada fornecedor possa dizer: 'É assim que fazemos'. Precisamos de algumas métricas de qualidade relacionadas à verificação.”
É aqui que o movimento do código aberto pode ajudar. “Se você observar o ecossistema RISC-V, verá que há um grande número de desenvolvedores de processadores muito experientes”, diz Schirrmeister. “Existem dois extremos. Uma é que estou recebendo um núcleo de um fornecedor e, se não funcionar, você terá um problema com ele. Por outro lado, tenho total liberdade e faço tudo sozinho. Um equilíbrio está se desenvolvendo em algum lugar entre esses dois extremos. Você obtém algo em que uma certa quantidade de verificação é fornecida pelo seu fornecedor e, então, as extensões são de sua própria responsabilidade.”
E é aqui que entram as métricas. “A compatibilidade ISA é apenas o primeiro degrau de uma escada cheia de complexidades que apenas algumas empresas escalaram”, diz Dave Kelf, CEO da Breker Verification Systems. “A prototipagem pode ser a única maneira de garantir totalmente a operação confiável do processador, mas aproveitar cargas de trabalho reais para conduzir esses protótipos arranha a superfície da cobertura real do processador. Isto está em desacordo com os esforços competitivos de uma ISA aberta que impulsiona o desenvolvimento acelerado e questões de tempo de colocação no mercado.”
Mas quais são essas métricas? “No grupo de qualidade OpenHW, estamos tentando descobrir quais deveriam ser essas métricas”, diz Davidmann. “Isso inclui coisas como cobertura funcional, porque não se trata apenas de instruções simples. Para um processador de alta qualidade, você precisa de muito mais do que isso. Você precisa ter uma metodologia de verificação, onde haja confiança de que suas comparações com uma referência estão cobrindo tudo. A cobertura funcional apenas mostra que você fez o teste, mas isso precisa ser associado a uma metodologia que seja comparada com alguma forma de referência conhecida. Adicionaremos tecnologia de injeção de falhas para que seja possível descobrir se sua bancada de testes realmente detecta problemas.”
Figura 1: Definindo a arquitetura de uma solução de verificação RISC-V. Fonte: Imperas
Será necessário um conjunto de ferramentas. “À medida que o ecossistema RISC-V amadurece, as implementações comerciais começam a apoiar segmentos de mercado definidos”, afirma Ashish Darbari, fundador e CEO da Axiomise. “Vemos apoio para mercados, como o automotivo, que exigem conformidade de segurança funcional. Vemos suporte para IoT, exigindo segurança. Os fornecedores de RISC-V estão investindo em técnicas avançadas de verificação, incluindo prototipagem virtual para modelagem arquitetônica e desempenho. Ferramentas agora estão disponíveis para adoção antecipada de métodos formais para eliminar bugs no início do processo de design e evitar a inserção de bugs enquanto os designers lutam para detectar bugs de casos extremos com simulação na interface processador-memória.”
Uma das ferramentas necessárias é a capacidade de gerar casos de teste com base em uma lista de recursos ou conjunto de capacidades. “A geração automatizada de conteúdo de teste para conduzir protótipos que levam em conta as complexidades de verificação em tempo hábil é fundamental”, afirma Kelf da Breker. “Esses mecanismos de geração estão começando a surgir no mercado.”
Conclusão
Um ecossistema é tão bom quanto o seu componente mais fraco e, para o RISC-V, esse é o conjunto de ferramentas EDA. As razões para isto são duplas. Primeiro, até recentemente, não havia mercado comercial para ferramentas de verificação de processador. Embora existissem no passado, todos desapareceram ou foram dissolvidos nas empresas de processadores herdadas. Em segundo lugar, a flexibilidade do RISC-V ISA cria uma nova abordagem de otimização no nível do sistema que requer um novo conjunto de ferramentas. Leva tempo para que esta oportunidade seja compreendida e para que surjam ferramentas comerciais que a abordem adequadamente.
Relacionado
Um RISC-V mínimo
Existe espaço para uma versão ainda menor de um processador RISC-V que poderia substituir microcontroladores de 8 bits?
RISC-V empurra para o mainstream
Núcleos de processadores de código aberto estão começando a aparecer em SoCs e pacotes heterogêneos.
Rastreamento Eficiente em RISC-V
Como trabalhar com o novo padrão de depuração RISC-V.
Quão seguros são os chips RISC-V?
O código aberto por si só não garante segurança. Ainda se resume aos fundamentos do design.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://semiengineering.com/selecting-the-right-risc-v-core/
- 1
- 10
- a
- habilidade
- Capaz
- Sobre
- acima
- acelerado
- aceleradores
- ACEITAR
- aceitável
- Conta
- precisão
- preciso
- endereço
- Adoção
- avançado
- Depois de
- contra
- algoritmo
- Todos os Produtos
- já
- quantidade
- análise
- Análises
- e
- e infra-estrutura
- responder
- aparecer
- Aplicação
- abordagem
- apropriado
- Arco
- arquitetônico
- arquitetura
- ÁREA
- ARM
- aspecto
- avaliado
- Automatizado
- Automação
- automotivo
- disponível
- média
- em caminho duplo
- Largura de Banda
- baseado
- basic
- Porque
- torna-se
- tornando-se
- antes
- Começo
- ser
- beneficiar
- MELHOR
- entre
- Pós
- Grande
- Pouco
- Bloquear
- borda
- interesse?
- trazer
- amplamente
- Bug
- erros
- construir
- Prédio
- construído
- negócio
- desenvolvimento de negócios
- CAD
- capacidades
- capaz
- luta
- Chefe executivo
- certo
- desafiar
- desafios
- chances
- alterar
- Chips
- escolha
- escolhas
- Escolha
- Escalada
- CMO
- Colateral
- como
- comercial
- comercialmente
- comum
- Empresas
- comparar
- compatibilidade
- competindo
- competitivo
- completar
- complexidades
- compliance
- componente
- componentes
- computadores
- Preocupações
- condições
- confiança
- Configuração
- Conexão de
- Considerações
- conteúdo
- núcleo
- poderia
- acoplado
- cobertura
- cobertura
- CPU
- criado
- cria
- Criar
- criação
- Enseada
- CTO
- Atualmente
- dados,
- Dave
- decisão
- definição
- entregar
- demandas
- Departamento
- Dependendo
- implantado
- Design
- processo de design
- desenhadores
- desenvolver
- desenvolvido
- desenvolvedores
- em desenvolvimento
- Desenvolvimento
- Dispositivos/Instrumentos
- diferente
- difícil
- Diretor
- Não faz
- não
- down
- distância
- dirigido
- condução
- durante
- cada
- Cedo
- maneira mais fácil é
- ecossistema
- ecossistemas
- esforço
- esforços
- ou
- incorporado
- permite
- Motor
- Engenharia
- Motores
- suficiente
- garantir
- assegurando
- Empreendimento
- Todo
- entrada
- Meio Ambiente
- ambientes
- É igual a
- Equilíbrio
- estabelecido
- estimativas
- avaliar
- Mesmo
- SEMPRE
- tudo
- execução
- experiente
- estendendo
- extensão
- extensões
- externo
- extremos
- Rosto
- familiar
- Moda
- RÁPIDO
- mais rápido
- Característica
- Funcionalidades
- poucos
- campo
- Figo
- Encontre
- descoberta
- Primeiro nome
- caber
- fixado
- Flexibilidade
- flexível
- formulário
- formal
- fundador
- Fundadora e CEO
- FPGA
- Freedom
- da
- cheio
- totalmente
- função
- funcional
- funções
- Fundamentos
- geralmente
- gerar
- gerando
- geração
- ter
- obtendo
- OFERTE
- dá
- Go
- Objetivos
- vai
- Bom estado, com sinais de uso
- maior
- Grupo
- Crescente
- garanta
- acontecer
- Hardware
- ajudar
- ajuda
- alta qualidade
- homegrown
- cavalo
- Como funciona o dobrador de carta de canal
- HTTPS
- enorme
- Impacto
- executar
- implementação
- in
- incluir
- inclui
- Incluindo
- aumentando
- cada vez mais
- indústria
- INFORMAÇÕES
- Infraestrutura
- instruções
- integrar
- Intel
- interessado
- Interface
- Internacionais
- investir
- envolvido
- iot
- IP
- questões
- IT
- se
- Trabalho
- Chave
- Tipo
- Saber
- conhecido
- escada
- grande
- Legado
- Nível
- níveis
- aproveitando
- Licenciamento
- Provável
- linux
- Lista
- longo
- muito tempo
- longevidade
- olhar
- procurando
- moldadas
- a Principal
- fazer
- fabricante
- FAZ
- muitos
- marca
- mercado
- Mercados
- amadurece
- max-width
- Conheça
- Memória
- Metodologia
- métodos
- Métrica
- mínimo
- modelo
- modelagem
- modelos
- modificar
- mais
- a maioria
- movimento
- em movimento
- necessário
- você merece...
- Cria
- Novo
- número
- numeroso
- objetivo
- Probabilidade
- Ofertas
- ONE
- aberto
- open source
- operando
- operação
- Oportunidade
- otimização
- Opção
- Opções
- ordem
- ordens
- Outros
- próprio
- pacotes
- parte
- peças
- passado
- Pico
- Pessoas
- atuação
- físico
- oleoduto
- articulação
- plataforma
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- players
- jogar
- ponto
- Ponto de vista
- posição
- possibilidades
- possível
- poder
- presidente
- provavelmente
- Problema
- problemas
- processo
- Subcontratante
- processadores
- Progresso
- devidamente
- protótipo
- protótipos
- prototipagem
- fornecer
- fornecido
- provedor
- público
- bomba
- bombeamento
- propósito
- fins
- qualidade
- questão
- Frequentes
- Corrida
- alcance
- ready-made
- reais
- mundo real
- razão
- razoável
- razões
- recentemente
- Independentemente
- confiável
- substituir
- requerer
- requeridos
- requerimento
- Requisitos
- exige
- responsabilidade
- Quarto
- Execute
- corrida
- Segurança
- Segurança e Protecção
- Segundo
- seguro
- segurança
- segmentos
- selecionado
- selecionando
- doadores,
- senior
- sensor
- conjunto
- vários
- rede de apoio social
- mostrar
- Shows
- periodo
- Simon
- simples
- simulação
- solteiro
- Lentamente
- menor
- So
- Software
- desenvolvimento de software
- solução
- Soluções
- alguns
- Alguém
- algo
- algum lugar
- Em breve
- fonte
- velocidade
- gasto
- Spin
- estável
- Estágio
- padrão
- Comece
- Steve
- Ainda
- Lutar
- tal
- suíte
- ajuda
- superfície
- .
- sistemas
- Tire
- toma
- Converse
- falando
- equipes
- Dados Técnicos:
- técnicas
- Equipar
- modelo
- teste
- A
- deles
- assim sendo
- coisa
- coisas
- três
- Através da
- Taxa de transferência
- tempo
- demorado
- vezes
- cronometragem
- para
- hoje
- juntos
- também
- ferramentas
- topo
- Total
- traçar
- tradicional
- VIRAR
- típico
- tipicamente
- Entendido
- unidade
- os próximos
- usar
- Utilizador
- usuários
- validado
- validação
- valor
- variedade
- fornecedor
- fornecedores
- Verificação
- versão
- viável
- Vice-Presidente
- Ver
- Virtual
- plataformas virtuais
- querendo
- maneiras
- sites
- O Quê
- O que é a
- se
- qual
- enquanto
- precisarão
- dentro
- Atividades:
- exercite-se
- mundo
- seria
- Errado
- X
- anos
- investimentos
- zefirnet