SuperH - SuperH

SuperH (SH)
Designer Hitachi Ltd.
Bits 32 bits (32 → 64)
Introduzido Década de 1990
Projeto RISC
Codificação SH2: instruções de 16 bits; SH2A e mais recente: instruções mistas de 16 e 32 bits
Endianness Bi
Abrir Sim, e livre de royalties

SuperH (ou SH ) é um 32-bit RISC (RISC) conjunto de instruções (ISA) desenvolvido pela Hitachi e actualmente produzido por Renesas . É implementado por microcontroladores e microprocessadores para sistemas embarcados .

Na época da introdução, o SuperH era notável por ter instruções de 16 bits de comprimento fixo, apesar de sua arquitetura de 32 bits. Esta foi uma abordagem nova; na época, os processadores RISC sempre usavam um tamanho de instrução que era igual à largura dos dados internos, normalmente 32 bits. O uso de instruções menores tinha consequências, o arquivo de registro era menor e as instruções geralmente tinham o formato de dois operandos. Mas, para o mercado ao qual o SuperH se destinava, esse era um pequeno preço a pagar pela memória aprimorada e pela eficiência do cache do processador .

Versões posteriores do design, começando com SH-5, incluíam instruções de 16 e 32 bits, com o mapeamento das versões de 16 bits para a versão de 32 bits dentro da CPU. Isso permitiu que o código de máquina continuasse usando as instruções mais curtas para economizar memória, embora não exigisse a quantidade de lógica de decodificação de instruções necessária se fossem instruções completamente separadas. Este conceito agora é conhecido como um conjunto de instruções compactadas e também é usado por outras empresas, sendo o exemplo mais notável o ARM para seu conjunto de instruções Thumb .

Em 2015, muitas das patentes originais da arquitetura SuperH estão expirando e a CPU SH-2 foi reimplementada como hardware de código aberto sob o nome J2 .

História

SH-1 e SH-2

SH-2 no Sega 32X e Sega Saturn

A família do núcleo do processador SuperH foi desenvolvida pela Hitachi no início dos anos 1990. O conceito de design era para um único conjunto de instruções (ISA) que seria compatível com versões superiores em uma série de núcleos de CPU .

No passado, esse tipo de problema de projeto teria sido resolvido usando microcódigo , com os modelos de baixo custo da série executando instruções não implementadas como uma série de instruções mais básicas. Por exemplo, uma instrução para realizar uma multiplicação de 32 x 32 -> 64 bits, uma "multiplicação longa", pode ser implementada em hardware em modelos de ponta, mas, em vez disso, ser executada como uma série de adições em modelos de baixo custo.

Uma das principais realizações durante o desenvolvimento do conceito RISC foi que o microcódigo tinha um tempo de decodificação finito e, à medida que os processadores ficavam mais rápidos, isso representava uma sobrecarga de desempenho inaceitável. Para resolver isso, a Hitachi desenvolveu um único ISA para toda a linha, com instruções sem suporte causando armadilhas nas implementações que não incluíam suporte de hardware. Por exemplo, os modelos iniciais da linha, SH-1 e SH-2, diferiam apenas no suporte para multiplicação de 64 bits; SH-2 suportados MUL, DMULSe DMULU, ao passo que o SH-1 iria causar uma armadilha se estes forem encontrados.

O ISA usa instruções de 16 bits para melhor densidade de código do que as instruções de 32 bits, o que foi um grande benefício na época, devido ao alto custo da memória principal . As desvantagens dessa abordagem eram que havia menos bits disponíveis para codificar um número de registro ou um valor constante. No ISA SuperH, havia apenas 16 registradores, exigindo quatro bits para a origem e outros quatro para o destino. A própria instrução também era de quatro bits, deixando outros quatro bits não contabilizados. Algumas instruções usaram esses últimos quatro bits para deslocamentos em acessos de array, enquanto outras combinaram o segundo slot de registro e os últimos quatro bits para produzir uma constante de 8 bits.

Dois modelos foram inicialmente introduzidos. O SH-1 era o modelo básico, suportando um total de 56 instruções. O SH-2 adicionou multiplicação de 64 bits e alguns comandos adicionais para ramificação e outras funções, elevando o total para 62 instruções com suporte. O SH-1 e o SH-2 foram usados ​​no Sega Saturn , Sega 32X e Capcom CPS-3 .

SH-3

Alguns anos depois, o núcleo SH-3 foi adicionado à família; os novos recursos incluíram outro conceito de interrupção, uma unidade de gerenciamento de memória (MMU) e um conceito de cache modificado. Esses recursos exigiam um conjunto de instruções estendido, adicionando seis novas instruções para um total de 68. O SH-3 era bi-endian , rodando na ordem de bytes big-endian ou little-endian.

O núcleo SH-3 também adicionou uma extensão DSP , então chamada de SH-3-DSP. Com caminhos de dados estendidos para processamento DSP eficiente, acumuladores especiais e um mecanismo DSP do tipo MAC dedicado , este núcleo unificou o DSP e o mundo do processador RISC. Um derivado do DSP também foi usado com o núcleo SH-2 original.

Entre 1994 e 1996, 35,1 milhões de dispositivos SuperH foram vendidos em todo o mundo.

SH-4

Em 1997, Hitachi e STMicroelectronics (STM) começaram a colaborar no projeto do SH-4 para o Dreamcast . O SH-4 apresentava execução de instrução superescalar (2 vias) e uma unidade vetorial de ponto flutuante (particularmente adequada para gráficos 3D ). Os chips padrão baseados em SH-4 foram introduzidos por volta de 1998.

Licenciamento

No início de 2001, Hitachi e STM formaram a empresa IP SuperH, Inc., que licenciaria o núcleo SH-4 para outras empresas e estava desenvolvendo a arquitetura SH-5, a primeira mudança do SuperH para a área de 64 bits. Os SH-1 a 3 anteriores permaneceram propriedade da Hitachi.

Em 2003, a Hitachi e a Mitsubishi Electric formaram uma joint-venture chamada Renesas Technology , com a Hitachi controlando 55% dela. Em 2004, a Renesas Technology comprou a participação da STMicroelectronics na SuperH Inc. e com ela a licença para os núcleos SH. A Renesas Technology mais tarde se tornou Renesas Electronics, após sua fusão com a NEC Electronics .

O design do SH-5 suportava dois modos de operação. O modo SHcompact é equivalente às instruções do modo de usuário do conjunto de instruções SH-4. O modo SHmedia é muito diferente, usando instruções de 32 bits com 64 registradores inteiros de 64 bits e instruções SIMD . No modo SHmedia, o destino de uma ramificação (salto) é carregado em um registrador de ramificação separadamente da instrução de ramificação real. Isso permite que o processador pré-busque instruções para uma ramificação sem ter que espionar o fluxo de instruções. A combinação de uma codificação de instrução compacta de 16 bits com uma codificação de instrução de 32 bits mais poderosa não é exclusiva do SH-5; Os processadores ARM têm um modo Thumb de 16 bits (ARM licenciou várias patentes do SuperH for Thumb) e os processadores MIPS têm um modo MIPS-16. No entanto, o SH-5 difere porque seu modo de compatibilidade com versões anteriores é a codificação de 16 bits em vez da codificação de 32 bits.

A última etapa evolutiva aconteceu por volta de 2003, onde os núcleos de SH-2 a SH-4 foram unificados em um núcleo superescalar SH-X que formou uma espécie de superconjunto de conjunto de instruções das arquiteturas anteriores e adicionou suporte para multiprocessamento simétrico .

Disponibilidade contínua

Desde 2010, os núcleos, arquitetura e produtos da CPU SuperH são da Renesas Electronics e a arquitetura está consolidada em torno das plataformas SH-2, SH-2A, SH-3, SH-4 e SH-4A. Os produtos System-on-chip baseados nos microprocessadores SH-3, SH-4 e SH-4A foram posteriormente substituídos por gerações mais novas baseadas em núcleos de CPU licenciados da Arm Ltd. , com muitos dos modelos existentes ainda comercializados e vendidos até março 2025 por meio do Programa de Longevidade de Produto Renesas.

A partir de 2021, os microcontroladores SH72xx baseados em SH-2A continuam a ser comercializados pela Renesas com disponibilidade garantida até fevereiro de 2029, junto com produtos mais novos baseados em várias outras arquiteturas, incluindo Arm , RX e RH850 .

J Core

A última das patentes SH-2 expirou em 2014. Na LinuxCon Japan 2015, os desenvolvedores do j-core apresentaram uma reimplementação de sala limpa do SH-2 ISA com extensões (conhecido como "núcleo J2" devido às marcas comerciais não expiradas ). Posteriormente, um passo a passo do projeto foi apresentado na ELC 2016.

O código VHDL licenciado BSD de código aberto para o núcleo J2 foi comprovado em FPGAs Xilinx e em ASICs fabricados no processo de 180 nm da TSMC e é capaz de inicializar o µClinux . J2 é compatível com ISA retroativo com SH-2, implementado como um pipeline de 5 estágios com interfaces de memória de instrução e de dados separadas e um decodificador de instrução gerado por máquina que suporta o ISA densamente compactado e complexo (em relação a outras máquinas RISC). As instruções adicionais são fáceis de adicionar. J2 implementa instruções para mudança dinâmica (usando o SH-3 e padrões de instrução posteriores), operações atômicas estendidas (usadas para primitivas de threading) e bloqueio / interfaces para suporte a multiprocessador simétrico. Planos para implementar os conjuntos de instruções SH-2A (como "J2 +") e SH-4 (como "J4") à medida que as patentes relevantes expiram em 2016-2017.

Vários recursos do SuperH foram citados como motivações para projetar novos núcleos com base nesta arquitetura:

  • Alta densidade de código em comparação com outros ISAs RISC de 32 bits , como ARM ou MIPS, importantes para cache e desempenho de largura de banda de memória
  • Compilador existente e suporte a sistema operacional ( Linux , Windows Embedded , QNX )
  • Custos de fabricação ASIC extremamente baixos agora que as patentes estão expirando (cerca de US $ 0,03 para um núcleo J2 dual-core no processo de 180 nm da TSMC).
  • Implementação livre de patentes e royalties (licenciada por BSD)
  • Suporte completo e vibrante da comunidade
  • Disponibilidade de plataforma de desenvolvimento de hardware de baixo custo para ferramentas FPGA de custo zero
  • Ferramentas de geração e integração de CPU e SoC RTL, produzindo FPGA e ASIC RTL portátil e documentação
  • Design limpo e moderno com design de código aberto, ambiente de geração, simulação e verificação

Modelos

CPU Hitachi SH-3

A família de núcleos SuperH CPU inclui:

  • SH-1 - usado em microcontroladores para aplicativos profundamente incorporados ( unidades de CD-ROM , aparelhos principais , etc.)
  • SH-2 - utilizado em microcontroladores com maiores requisitos de desempenho, também utilizado no setor automotivo, como unidades de controle de motor ou em aplicações de rede, e também em consoles de videogame, como o Sega Saturn . O SH-2 também foi encontrado em muitas aplicações de unidades de controle de motores automotivos , incluindo Subaru , Mitsubishi e Mazda .
  • SH-2A - O núcleo SH-2A é uma extensão do núcleo SH-2, incluindo algumas instruções extras, mas o mais importante, movendo-se para uma arquitetura superescalar (é capaz de executar mais de uma instrução em um único ciclo) e duas cinco pipelines de estágio. Ele também incorpora 15 bancos de registradores para facilitar uma latência de interrupção de 6 ciclos de clock. Também é forte em aplicações de controle de motor, mas também em multimídia, áudio automotivo, trem de força, controle de carroceria automotiva e automação de escritórios + edifícios
  • SH-DSP - inicialmente desenvolvido para o mercado de telefonia móvel , usado posteriormente em muitos aplicativos de consumidor que requerem desempenho DSP para compactação JPEG, etc.
  • SH-3 - utilizado para aplicativos móveis e de mão como o Jornada , forte em aplicativos Windows CE e mercado há muitos anos no mercado de navegação automotiva. O Cave CV1000 , semelhante ao CPU do hardware Sega NAOMI , também fez uso deste CPU. As unidades de produção musical Korg Electribe EMX e ESX também usam o SH-3.
  • SH-3-DSP - usado principalmente em terminais multimídia e aplicações de rede, também em impressoras e aparelhos de fax
  • SH-4 - usado sempre que alto desempenho é necessário, como terminais multimídia para automóveis, consoles de videogame ou decodificadores
  • SH-5 - usado em aplicativos de multimídia de 64 bits de ponta
  • SH-X - núcleo principal usado em vários sabores (com / sem unidade DSP ou FPU) na unidade de controle do motor, equipamento multimídia de carro, decodificadores ou telefones celulares
  • SH-Mobile - SuperH Mobile Application Processor; projetado para descarregar o processamento de aplicativos da banda base LSI

SH-2

CPU Hitachi SH-2

O SH-2 é uma arquitetura RISC de 32 bits com um comprimento de instrução fixo de 16 bits para alta densidade de código e apresenta um bloco de multiplicar-acumular (MAC) de hardware para algoritmos DSP e tem um pipeline de cinco estágios.

O SH-2 possui um cache em todos os dispositivos sem ROM .

Ele fornece 16 registradores de uso geral, um registrador de base vetorial, um registrador de base global e um registrador de procedimento.

Hoje, a família SH-2 se estende de 32 KB de flash on-board até dispositivos sem ROM. Ele é usado em uma variedade de dispositivos diferentes com periféricos diferentes, como CAN, Ethernet, unidade de cronômetro de controle de motor, ADC rápido e outros.

SH-2A

O SH-2A é uma atualização do núcleo SH-2 que adicionou algumas instruções de 32 bits. Foi anunciado no início de 2006.

Novos recursos no núcleo SH-2A incluem:

  • Arquitetura superescalar: execução de 2 instruções simultaneamente
  • Arquitetura Harvard
  • Dois pipelines de 5 estágios
  • Instruções mistas de 16 e 32 bits
  • 15 bancos de registro para resposta de interrupção em 6 ciclos.
  • FPU opcional

A família SH-2A hoje abrange um amplo campo de memória de 16 KB até e inclui muitas variações sem ROM. Os dispositivos apresentam periféricos padrão, como CAN , Ethernet , USB e muito mais, bem como mais periféricos de aplicações específicas, como temporizadores de controle de motor , controladores TFT e periféricos dedicados a aplicações automotivas de trem de força.

SH-4

CPU Hitachi SH-4

O SH-4 é uma CPU RISC de 32 bits e foi desenvolvido para uso primário em aplicativos de multimídia, como Dreamcast da Sega e sistemas de jogos NAOMI . Inclui uma unidade de ponto flutuante muito mais poderosa e funções incorporadas adicionais, junto com o processamento de inteiros de 32 bits padrão e tamanho de instrução de 16 bits.

Os recursos do SH-4 incluem:

  • FPU com quatro multiplicadores de ponto flutuante, com suporte para flutuadores de precisão simples de 32 bits e precisão dupla de 64 bits
  • Operação de produto pontual de ponto flutuante 4D e multiplicação de vetor de matriz
  • Barramento de ponto flutuante de 128 bits, permitindo taxa de transferência de 3,2 GB / s do cache de dados
  • Barramento de dados externo de 64 bits com endereçamento de memória de 32 bits, permitindo um máximo de 4 GB de memória endereçável com uma taxa de transferência de 800 MB / s
  • Interrupção integrada, DMA e controladores de gerenciamento de energia

^ Não há FPU no SH4 personalizado feito para a Casio, o SH7305.

SH-5

O SH-5 é uma CPU RISC de 64 bits.

Quase nenhum hardware SH-5 não simulado foi lançado e, ao contrário do SH-4 ainda ativo, o suporte para SH-5 foi retirado do gcc e do Linux.

Referências

Citações

Bibliografia

links externos