Publicado no site Reuters no dia 28 de Junho de 2023 que tanto a base de dados da Oracle como seu serviço de nuvem (que tenta competir com a Amazon por exemplo) passará a utilizar processadores baseados na arquitetura ARM. O motivo apresentado por Larry Ellison, fundador da Oracle, é que os antigos processadores X86 da Intel está atingindo seu limite.
As aplicações da Oracle são desenvolvidas sod a arquitetura X86 há várias décadas e o motivo de tal adoção da arquitetura ARM é que, devido a razões regulatórias, alguns data centers da Oracle não pode obter mais energia. Então o único meio para a empresa expandir seu serviço de nuvem é através de mais computação por watt que ela pode ter acesso já que os processadores ARM são famosos por sua eficiência energética e por gerar menos calor (por esse motivo adotado em smartphones e tablets. Leia meu artigo Diferentes arquiteturas de processadores CLICANDO AQUI).
"Temos mais espaço. Simplesmente não temos mais capacidade elétrica. Ao atualizar para Ampere, podemos ocupar esse espaço, dobrar a computação e permanecer dentro do mesmo envelope de energia." disse Ellison, eu particularmente diria mais do que dobrar. Mas quem sou eu na fila do pão?
O fabricante de ARM escolhido pela Oracle foi a Ampere Computing, uma startup fundada por um ex-executivos da Intel.
A Ampere produz famílias de processadores ARM; o Ampere Altra Max e o Ampere One. O Ampere Altra Max, família de processadores Cloud Native possui linhas de 32, 64, 80, 96 e 128 núcleos operando a frequência acima de 3.0 GHz e com núcleos compatíveis com o Armv8.2+, SBSA4; 1MB de cachê L2 por núcleo e recursos nativos para nuvem como Vector Units, Single Threaded Cores, Advanced Power Management, Dynamic Estimation, Voltage droop detection. O Altra Max possui suporte a 8 canais de memória DDR4 (3200 MHz) ECC de 72 bits (até 4TB de RAM).
Outros valores agregados pelos processadores ARM que são enfatizados pela Oracle seriam preço (clientes pagarão somente $0.01 por hora/núcleo) melhorias na parte de segurança, flexibilidade no uso de núcleos e de memória, escalabilidade linear scalability e desempenho previsível, ecossistema de desenvolvimento rico e muito mais.
Ampere A1 Compute
Este será o primeiro servidor com 160-core Arm no mercado com o preço tão acessível. Aproveitando, quero sugerir a leitura sobre o supercomputador Fugaku clicando aqui da Fujitsu que utiliza processadores ARM e que está na lista dos supercomputadores mais poderosos do mercado.
Depois que a Apple anunciou a migração de X86 para ARM, muita gente se preocupou quanto a possibilidade de não poder utilizar programas de uma arquitetura em outra. A Apple já fez o processo de transição da arquitetura PowerPC para a X86 sem apresentar trabalhos críticos; desta vez eu acredito que não será diferente. No meu vídeo sobre Ubuntu rodando no meu Power Mac G4 eu explico através do kernel do Mac OS X Leopard como a Apple realizou esse trabalho até que todos os fornecedores pudessem portar os seus programas para X86:
Migrar para ARM parecia algo previsível; em 2.015 o site Mac Rumors já havia postado a noticia sobre a pretensão da Apple migrar para ARM e a resposta da Intel afirmando que o relacionamento entre as duas empresas ainda era muito forte; em 2.018 a Apple vendeu quase 218 milhões de Iphones e apenas pouco mais de 18 milhões de Macs. As coisas ficaram cada vez mais óbvias com o lançamento do novo Ipad Pro que era mais poderoso que 92% dos desktops acessíveis do mercado da época, rodando Photoshop nativamente, navegando na internet e utilizando Whatsapp ao mesmo tempo (e até arrastando do navegador e soltando no Whatsapp) e termina com a frase "ele é como um computador mas diferente de qualquer computador".
Uma coisa que deixou os apaixonados por Mac foi a possibilidade de retrocompatibilidade não somente com Intel, mas também com outras arquiteturas passadas. Um desenvolvedor apaixonado por Macs antigos chamado tenFOURFox escreveu sobre a possibilidade de rodar até cinco arquiteturas em um unico binários (ARM64, 32-bit PowerPC, 64-bit PowerPC, i386 e x86_64) e potencialmente até 17 arquiteturas em um único binário (ppc750, ppc7400, ppc7450, ppc970, i386, x86_64, x86_64h, armv4t, armv5, armv6, armv6m, armv7, armv7em, armv7k, armv7m, armv7s e todos os outros Macs com AARM.)
Uma informação que prometi na live que iria pesquisar é qual tecnologia GPU será utilizada nos novos Macs com ARM. A unica coisa que se sabe é que a Apple guarda esse segredo a sete chaves pois parece ser tecnologia própria da empresa.
Google apresenta seu novo processador de inteligencia artificial baseado em Arm
No dia 9 de Abril a Reuters informou que o Google revelou seus novos chips de inteligencia artificial para data center baseados na arquitetura ARM, também chamados de TPUs (Tensor Processing Units) e que foram desenvolvidos pela Nvidia.
De acordo com a Google, estes chips, nomeados Axion, possuem desempenho 50% superior ao x86 e 30% superior ao ARM de propósito geral. A ideia da google é rivalizar com a Amazon e microsoft (que também possuem seus processadores baseados na arquitetura ARM) utilizando-o em serviços como YouTube Ads e Google Cloud apesar de já ter construído chips personalizados para o Youtube, AI e smartphones.
Além do Axion, a Google também trabalhou junto a Broadcom em outro TPU chamado v5p que podem rodas em pods de até 8.960 chips e atingir o dobro de desempenho utilizando resfriamento liquido. Estes chips só estarão disponíveis através de serviços e não ao publico.
Eu já escrevi uma série chamada "Dando uma olhada na arquitetura dos processadores" onde debato como o processador é constituído internamente (andei até mesmo dando uma atualizada tratando da arquitetura de Havard mostrando em que se difere da arquitetura de Von Neumann e pretendo adicionar mais coisas. Mas vamos deixar isso para o futuro Deus permitindo que eu faça).
O que é arquitetura de processador?
De acordo com o Dicionario de Termos da computação e da Internet (Dictionary of Computer and Internet Terms) arquitetura de processador é um conjunto de instruções que decodificam e executam operações aritméticas e lógicas. Esse conjunto de instruções são denominados ISA (Instruction Set Architecture) e, nas minhas palavras, arquitetura dos processadores é a forma como essas instruções são organizadas. Apesar de popularmente acabarmos tendo contato com apenas com X86, existe uma boa variedade de arquiteturas como CISC, RISC, EPIC e ZISC e Linux é uma fonte abundante para adquirir conhecimento sobre elas.
Dentro das arquiteturas existe uma gama de fabricantes diferentes. Então agora vamos estudar um pouco sobre as arquiteturas, suas variedades e aonde geralmente são aplicadas.
CISC
CISC (Complex Instruction Set Computers) é uma arquitetura construída com muitas instruções de linguagens de máquina diferentes. Tem como objetivo em seu design completar uma tarefa em poucas linhas de código assembly fazendo com que o compilador tenha pouco trabalho para traduzir o código de alto nível. O problema disso é que as suas tarefas acabam exigindo múltiplos ciclos, fazendo com que leve pelo menos duas vezes mais tempo para executá-las.
Ressalva, não confunda CISC com CICS. CICS (Costumer Information Control System) é uma extensão da IBM utilizada no IBM System Z que tem como objetivo tornar fácil escrever programas e permitir usuários entrar, recuperar e atualizar dados através do seu terminal (fortemente utilizado em sistemas de pontos de venda, reservas de hotel e sistemas de cobrança).
Popularmente conhecemos a arquitetura CISC devido aos x86 da Intel, da AMD e da Via (após ter adquirido a antiga Cyrix); mas há outras empresas que também já fabricaram processadores CISC difrentes de x86 como o VAX, o IBM System/370 e o s390 e houve também o Motorola 6800 (também conhecido como m68k ou simplesmente 68k) na década de 80 que foi o primeiro processador de 32 bits amplamente utilizado e foi o processador do vídeo game Mega Drive, do Macintosh (pois é, a migração de PowerPC para Intel e depois de Intel para ARM não são as únicas experiências que a Apple já teve em sua história), dos computadores da HP e da Sun Microsystem. Falando em Sun Microsystem, foi devido o Motorola 6800 que os desenvolvedores de SunOS tornaram o GCC funcional para uso em produção (o que até então, era simplesmente um compilador inviável).
Parece estranho afirmar, mas deve ser dito. Foi o x86 que tornou os PCs interessantes (especificamente o 386 a partir de 1986); mas historicamente o x86 parou de fazer sentido para o mercado há algum tempo. Basta repararmos como exemplo Apple em 2018 que vendeu 217.7 milhões de Iphones e 18.2 milhões de Macs (mais de 10 vezes mais dispositivos ARM, o que a chamou a sua atenção para abandonar o x86).
Abreviação de Reduced Instruction Set Computer (Computador com conjunto de instruções reduzidas) é a arquitetura que realiza processos de forma simplificada e que foi projetada para desempenho. Devido haver poucas instruções a serem escolhidas, ela leva menos tempo para identificá-las tornando os resultados mais eficientes e executando os processos mais rapidamente e alocando somente as instruções necessárias por clock. Foi criada inicialmente na IBM por John Cocke e sua equipe de pesquisadores em 1.974 como controlador de central telefônica (a telefonia sempre tendo importância na computação). Essa arquitetura levou à uma corrida do ouro dos processadores para concorrer contra o CISCI da Intel.
John Cocke e o primeiro protótipo de computador RISC que o garantiu os premios Turing Award em 1987, the US National Medal of Technology em 1991 e o the US National Medal of Science em 1994.
A arquitetura RISC é tão interessante que há um ditado que diz que "O mundo é RISC". E não é de se duvidar já que a arquitetura é utilizada desde Supercomputadores como é o caso do Fugaku da Fujistu a micro controladores como o H8/300 da Hitachi.
Alguns exemplos de processadores RISC são o Dec Alpha (primeiro processador de 64 bits e primeira arquitetura que Linux foi portado em Novembro de 1994); ARM que é muito famoso em dispositivos móveis devido a seu baixo consumo de energia conservando a bateria por mais tempo (diferente do sparc que, apesar de também ser RISC, consome muita energia e não é tão eficiente no uso de memória); Spark da Sun Microsystem (divisão da Oracle) criado para substituir o m68k; o PowerPC que foi desenvolvido pela IBM, Motorola e Apple quando Steve Jobs saiu da Apple e fundou a NeXT e a Pixar no "Project Pink" para competir com a Intel e foi especialmente projetado para emular programas outros tipos de CPU eficientemente. Foi utilizado também no PlayStation 3, no Xbox 360 e consoles da Nintendo como Game Cube, Nintendo Wii e Nintendo Wii U e pelo sistema operacional OS/2); o MIPS, o Cris (utilizado em dispositivos de rede) e até mesmo a série de chips Super FX da empresa britânica Argonaut Games (adquirida pela Synopsy) que foi utilizado em jogos do Super Nintendo como o StarFox e Yoshi's Island possibilitando a renderização de centenas de polígonos 3D simultaneamente e desenhando efeitos em 2D.
Em Mario World 2: Yoshi's Island foi utilizado o chip Super FX 2 que é um Risc customizado e que possibilitou ao jogo ter elementos 3D e 2D (sim, o jogo é 2.5D), polígonos, cores vivas e amplas, efeitos de iluminação, semitransparência e camadas para que objetos possam passar uns pelos outros.
No Japão surgiu o SuperH após a Motorola processar a Hitachi por questões de licenças do m68k. Então, os engenheiros da Hitachi desenvolveram sua própria arquitetura como substituta. Esse processador foi utilizado nos consoles Sega 32x, Sega Saturn, Dreamcast e fliperamas além de também ser utilizado na indústria automotiva no Japão como robôs que montam carros. Durante a crise asiática, as patentes do SuperH foram transferidas para a empresa Renesas. Há um conjunto de instruções do SuperH chamado Thumb que é utilizado até hoje nos smartphones baseados em ARM. Durante um tempo a ARM pagava à Renesas pelo direito de uso desse conjunto de instruções e como a Renesas não renovou suas patentes, eles passaram a ser utilizados gratuitamente.
RISC VS CISC
Ambos possuem vantagens e desvantagens e ambos conseguem executar os mesmos tipos de programa; o que vai diferenciar é como é o código de máquina do programa. A principio da leitura deste artigo, o RISC aparenta ser superior ao CISC, mas nem tudo são as mil maravilha.
RISC tende a ser mais rápido que CISC SE o acesso a memória for muito rápido; do contrário (se o acesso a memória for relativamente lento) o CISC tende a ser mais rápido que RISC. Além do mais, máquinas RISC tendem a buscar mais instruções da memória para realizar o mesmo trabalho que CISC (ou seja, utiliza-se mais RAM que CISC).
RISC híbrido
RISCs puros utilizam uma instrução por ciclo de clock. Foi aí que eu conheci a geração de RISCs hibridos que utilizam correção nas instruções de comprimento de 16 bits com registradores e endereço de espaço de 32 bits. Isso torna mais fácil para os compiladores gerarem melhores códigos RISC e retomam grande parte da densidade de código dos projetos CISC. Mais informações sobre chips híbridos podem ser conferidos clicando nesses dois links da Renesas e da Design & Recue.
A maioria dos fabricantes hoje tentam combinar as vantagens de cada arquitetura dentro dos seus processadores. A Intel por exemplo, introduziu através do Pentium a possibilidade de seu processador traduzir internamente instruções CISC em RISC (podendo executar duas instruções por ciclo assim como o RISC) e o J64 que planejam uma aproximação do x86-64 ao j4 com compatibilidade a 32 bits (seu design foi elaborado no ano passado). Portanto, dificilmente temos CISCs puros quanto RISCs puros assim como dificilmente encontramos kernel totalmente monolítico quanto totalmente micro-kernel.
A AMD também tinha um projeto de ARM chamado K12 focado em eficiência energética
Foi uma arquitetura RISC desenvolvida pela HP tendo uma ideia de arquitetura mais precisa (daí o PA do seu nome que é a silga de Precision Architecture) porém esse processador foi substituído pela arquitetura EPIC.
Abreviação de Explicitly Parallel Instruction Computing (Computação com instrução explicitamente paralela), foi criada em parceria entre a HP e a Intel para a criação da família Itanium (também conhecida como IA-64) para substituir o PA-RISC. Itanium foi desenvolvido como uma arquitetura de alto desempenho extremamente paralela realizando tal tarefa ao passar as instruções para o compilador que reorganiza o código para o máximo de paralelismo possível enquanto que o hardware foca em executar as instruções. E aqui mora o grande problema, nos compiladores que foi mais critico implementar do que a Intel esperava; o que resultou em um hardware muito caro e com baixa quantidade de software disponível para a arquitetura.
ZISC
ZISC (Zero instruction set computer) é uma arquitetura que se baseia nos princípios de correspondência de padrões e ausência de microinstruções. De acordo com documento de patentes do Google sobre circuito neural (ou neurochip ou redes neurais), essa é a arquitetura talvez mais apropriada para as tecnologias neurais devido a forma como trabalha.
DSP
DSP trata-se na verdade de um processador de sinal de digital (daí o seu nome Digital Signal Processor) que é utilizado para processar áudio (até redução de ruído) e vídeo e é fortemente utilizado em mesas de som e instrumentos musicais. Mas também foi utilizado em cartuchos do Super Nintendo para processar jogos como Super Mario Kart.
Talvez você deva estar pensando por que estou falando deste tipo de chip como uma arquitetura. Bom, a minha ideia era falar sobre DSP no mesmo artigo "Dando uma olhada na arquitetura de processadores" porque, assim como FPU que era chip separado e hoje é incorporado aos processadores, o mesmo pode ocorrer com os DSPs podendo o seu processador possuir instruções DSP adicionadas a ele. De acordo com informações do J-Core (que é um processador que eu acompanho bastante o seu desenvolvimento) as instruções DSP podem quebrar a pipeline do estilo do RISC e eles possuem um novo design de DSP em desenvolvimento.
alguns exemplos de DSP que o Linux possui suporte são o Hexagone o C6xda Texas Instrument.
Bom, finalizo este artigo por aqui acreditando já estar bom por enquanto dado uma boa base de estudo para todo mundo. Pode ser que eu venha atualizá-lo no futuro assim como faço com os demais artigos.
Linus nomeou o kernel 4.6 "Charred Weasel" em homenagem ao pobre animal que recentemente pereceu depois roer os fios elétricos de um acelerador de partículas.
Linus Torvalds disponibiliza o "Razoavelmente Grande" kernel Linux 4.6
Linus Torvalds disponibilizou no dia 15 a versão estável do kernel Linux 4.6. Esse release veio dois meses depois da versão anterior, a versão 4.5, depois de sete candidatos a lançamento.
“O kernel 4.6 em um todo foi um lançamento razoavelmente grande - mais commits do que já tivemos em algum tempo,” Torvalds escreveu nas notas de lançamento na mailing list LKML. “Mas isso tudo pareceu muito calmo fora isso.”
O kernel Linux 4.6 “Charred Weasel” vem com suas razoáveis mudanças. Muitos usuários final notarão as melhoras no desempenho no controle de temperatura de seus laptops, por exemplo, porque essa versão fecha um bug bastante sério que causava thermal throttling em alguns modelos de laptops da Lenovo. Suport para laptops Dell, incluindo sua linha gaming machines Alienware também foram melhoradas.
Máquinas embarcadas também foram alavancadas com o suporte deo 13 novos SocS baseados em ARM. Esse SoCs inscluem ARM da Allwinner, LG, Qualcomm, e Broadcom dentre outros fabricantes. Dispositivos que verão uma melhoras de suporte para suas placas incluem diversos roteadores WiFi, o smartphone Nexus 7 e o nano-computador Raspberry Pi.
Continuando no tópico de Linux para ARM, suport para a arquitetúra ARM de 64-bit ARM está prosseguindo bem. reforço no desempenho e novo recurso tomaram rumo no atual kernel, que também agora possui suporte, dentre outras coisas, o half-precision floating point format para números binários.
Uma outra arquitetura a caminho de possuir suporte pelo kernel é a linha dos novos processadores Power9. Esse hardware é tipicamente construído em servidores high-end e, embora o Power8 e versões anteriores possui suporte total pelo kernel, o Power9 permanece em muito mais progresso. No entanto, a IBM tem projetado o Linux como o sistema operacional padrão para sua linha de de computadores baseados em Power (mesmo acima do seu AIX), a qual significa que, com o input da IBM, é como se o Power9 possuirá suporte muito em breve.
A maioria das alterações dessa versão aconteceram bem cedo durantes o ciclo de desenvolvimento, com coisas em baixas depois que, solicitar Torvalds a observação que a unica grande mudança o ultimo candidato a lançamento foi a correção de um problema na interface long-standing da InfiniBand. A Infiniband está utilizando computação de alto-desempenho, então, a não ser que você esteja administrando um supercomputador, é improvável que para vocÊ surtirá algum efeito.
Apesar disso, No entanto, a ultima semana desse ciclo de desenvolvimento foi bastante hético de acordo com Torvalds, com a uma enorme qquantidade de patches, muitos dos quais foram correções de drivers, incluindo Radeon, GPU AMD, e drivers de rede.
Como o LHC roda sua própria variante do Linux em cluster que analiza os dados de experimentos, esse é um tributo ao apt.
Outas mudanças do kernel incluem:
Suporte os OrangeFS, um sistema de arquivo moderno de rede moderno scale-out projettado para uso em computação high-end. OrangeFS fornece acesso a um desempenho de muito alto para múltiplos servidores baseados em disk storage.
Outras atualizações de segurança incluem kernel memory protection por padrão no ARMv7+, arm64 e mandatory no x86, e mais oulined by Kees Cook, são parte de um esforço contínuo para criar "airbags para o kernel" ao evitar que bugs se tornem falhas de segurnça.
Otimização, desempenho e ser enxuta não é o forte da gllibc. Geralmente, desenvolvedores de embarcados tendem a ser inimigos mortais da glibc (não fazem ideia de onde ela é otimizada). Wilco Dijkstra da equipe de processadores arm fez uma reescrita completa utilizando algoritimo diferente do memcmp na biblioteca newlib para o AArch64.
Essa otimização melhora o desempenho de casos alinhados (mutualmente) até 25% e não alinhados até >500% (sim >6 vezes mais rápido) em grande inputs.
Esse código está sob licença parecida com a BSD (já que as empresas e projetos estão saindo fora da GPL por questões de burocracia que a licença vem causando e que pode ser conferido no vídeo "Muito além do GNU - toybox):
A licença pode se conferida logo abaixo:
- Copyright (c) 2013, Linaro Limited
- Copyright (c) 2017, Samsung Austin R&D Center
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the Linaro nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+/*
+ * Copyright (c) 2017 ARM Ltd
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Core Semiconductor tem como um de seus produtos, o processador J-core
Desde mais de 2017 eu venho falando sobre o re-desenvolvimento dos SuperH que é uma família de processadores Risc Hibrido da Hitachi focado em dispositivos embarcados, eletrônicos, foi utilizado na industria automobilística e no SEGA 32x, SEGA Saturn e SEGA Dreamcast. Diferente dos tradicionais processadores RISC (como os ARMs por exemplo) que realizam processamento procedural (um processamento de cada vez), os SuperH realizam processamentos em paralelo (vários processamentos simultaneamente).
Visão geral do J-core
No dia 30 de Junho de 1999 Linux recebeu suporte ao SuperH (sete meses após o primeiro local de lançamento do Dreamcast que foi no Japão em Novembro de 1998) e até hoje mantem o seu suporte no kernel Linux. Por isso acho que talvez teria sido interessante se o Dreamcast rodasse Linux e não Windows CE. Mas as coisas não são tão simples o quanto achamos, a parte comercial é bem delicada a ser tratada e deve ser respeitado. Como pode ser lido na revista 101 games #11 dreamcast da warpzone (e que inclusive eu tenho essa edição autografada pelo Ivan :) já havia feito acordo com empresas dividindo em duas equipes (uma no japão e a segunda nos Estados Unidos) para apresentarem dois projetos diferentes e que, é claro, no final das contas, um seria o novo console da empresa. O que ocorreu é que a 3dfx (uma das empresas que perdeu) processou a SEGA. Imagina a SEGA resolver mudar de Windows CE para Linux depois de tudo pronto e tomar mais um processo, só que desta vez da Microsoft. Melhor não né ;)
Com a crise asiática várias empresas foram afetadas, inclusive a Hitachi. Sem muitos detalhes, mas por conta disso, as patentes dos processadores SuperH não foram renovadas e o resultado disso você confere no vídeo abaixo:
Uma vez que suas patentes caíram em domínio publico, as empresas podem produzir suas próprias versões de SuperH livremente assim como o RiscVe uma das versão open source do SuperH que ganha destaque no mundo é o J-Core. Eu escrevi um artigo chamado "O que é Disposable Computing?" onde explico alguns dos projetos do J-Core que pretendem trazer (inclusive uma versão x86). Já a Core Semicondutor possui sua própria versão de SH2 chamado J-32 (inclusive o artigo "O que é Disposable Computing?" foi onde pela primeira vez mencionei sobre o J32).
Honestamente eu fiquei impressionado com as características do J32; pois eu tinha condicionado em mente que sim, seria algo melhor do que o SH2, mas não a ponto de ser melhor que certos ARMs como pode ser conferido na tabela abaixo:
Tabela comparativa entre o ARM Cortex-M1, ARM Cortex-M4 e o J32 Core.
Enquanto o SH2 possuía clock de 29MHz, o J32 possui clock de 150MHz (cinco vezes mais que o SH2) além de suporte a SMP, 8kB de cache de instrução mais 8kB cache de dados por CPU, suporte a Boot ROM, SRAM, MMU (não é esperado que o J2 tenha suporte a MMU), DMAC, DDR controller, dual EMAC, GPIO, dual SPI I/F, dual UARTs, dual I²C I/F e JTAG. Quando falamos de J-core, vale também mencionar a Turtle board que é um protótipo de placa inspirado na placa do Raspberry Pi e que teria sido apresentado em eventos esse ano no Canada e no Japão se não fosse o caso que estamos enfrentando. A Core Semicondutor possui também o seu próprio protótipo chamado Jx IoT(como a placa mãe também é open source, todas as empresas tem permissão de produzir suas próprias versões sem a necessidade de autorização).
Se o J32 chegou a esse ponto, imagina o que podemos esperar do J4 ou do J6 e até do J64. Será que o J32 motivará a galera apaixonada pelo SEGA Saturn a criar uma iniciativa de trazer o console de volta a vida em um novo hardware? Quem sabe? Espero que sim.