SiFive lanza núcleos RISC-V más pequeños y menos potentes

Hoy, SiFive lanzó dos nuevos núcleos diseñados para el extremo inferior de la informática. Esto se suma a la cartera existente de microcontroladores y SoC de la empresa basados ​​en Open RISC-V ISA. Durante los últimos dos años, SiFive ha introducido una serie de núcleos basados ​​en RISC-V ISA, Open Architecture ISA, que brinda a cualquier persona el diseño y desarrollo de un microcontrolador o plataforma de microprocesador. Estos dos nuevos núcleos llenan el bajo poder de la cartera principal de SiFive.

Los dos nuevos núcleos incluidos en el anuncio son el SiFive E20 y E21, ambos destinados a aplicaciones de baja potencia, y según las presentaciones de SiFive, van en la línea de ARM Cortex-M0 + y ARM Cortex-M4. Este es un núcleo, todavía no es un chip, pero desde la introducción de los primeros microcontroladores SiFive, muchas empresas se han subido al tren de RISC-V. Western Digital, por ejemplo, decidió utilizar la arquitectura RISC-V en SoC y como controladores para discos duros, SSD y NAS.

El primer chip SiFive fue el HiFive 1, que se basó en la CPU SiFive E31. Conseguimos el HiFive 1 a principios del año pasado, y es una bestia. Con el complemento estándar de estándares, en términos de potencia bruta, es aproximadamente el doble de rápido que Teensy 3.6, basado en el Kinetis K66, 180 MHz ARM Cortex-M4F. El SiFive E31 es aproximadamente 1,5 veces más rápido que Teensy 3.6 en términos de cálculos netos por base de reloj. Esto es notable, ya que Teensy 3.6 es nuestro estándar para cuando desea girar los pines muy rápido con una plataforma de microcontroladores barata y fácilmente disponible.

Pero a veces no se necesita ni el mejor microcontrolador ni el más rápido. Con este fin, SiFive está buscando un microcontrolador menos potente basado en el núcleo RISC-V. Las nuevas ofertas se basan en la serie E2 Core IP, con dos núcleos estándar. El núcleo E21 proporciona el rendimiento principal para los microcontroladores, y el núcleo E20 es el núcleo más eficiente que ofrece SiFive. De hecho, el núcleo E21 reemplaza a ARM Cortex-M3 y Cortex-M4, mientras que E20 reemplaza a ARM Cortex-M0 +.

Hace solo unos meses, SiFive lanzó un procesador gigante multinúcleo con capacidad para Linux llamado HiFive Unleashed. Con soporte para DDR4 y Gigabit Ethernet, este chip estaría más en casa en un escritorio que en Internet. El motor más popular jamás producido no es un turbodiésel de siete litros, es todo lo que entra en la caja económica de Honda; Asimismo, se venden muchos más microcontroladores de bajo consumo como el Cortex-M0 y -M3 que los chips más nuevos, más potentes y más caros. Aunque no es tan emocionante como una nueva CPU de estación de trabajo, el mundo necesita microcontroladores y cuanto más abiertos, mejor.

  • mac012345 dice:

    ¿La latencia disruptiva considera ahorros récord para un kernel de riesgo v?
    Debido a que hay 32 registros y no hay múltiples instrucciones de carga / almacenamiento, esto significa que si no se hace con hardware, puede tener hasta 32 ciclos de latencia (dependiendo de EABI), completamente diferente de la cifra de 6 ciclos dada.

    • Alan Hightower dice:

      Exactamente lo que estaba a punto de decir. El archivo de registro enviado por m0 / m3 coincide bastante bien con el C EABI. Los números de ciclo dados son más comparaciones de la fruta del dragón y la manzana. Genial si solo está haciendo E / S de puerta en el ISR. Pero esto no se infiere en la descripción de "llegar a C".

    • Artenz dice:

      No es necesario que conserve los 32 registros, solo los "llamados" normales.

      • Dmitry Grinberg dice:

        El punto mostrado por el OP sigue siendo válido. Comparar sus “6 ciclos” sin guardar registros es injusto para Cortex-M, cuya latencia publicada de 12-13 ciclos NO incluye guardar registros.

      • hlide dice:

        Equivocado. Las interrupciones pueden ocurrir en cualquier lugar por naturaleza, a diferencia de las funciones de entrada / salida predecibles y, por lo tanto, optimizadas para mantener solo los registros necesarios. Debe conservar TODOS los registros que utilice accidentalmente en su interrupción, cualquiera que sea su naturaleza: registros llamados, llamados, interinos, incluso de marca, si los hay, porque la interrupción "interrumpe" en el medio de la secuencia de función donde interim seguirá viviendo cuando la secuencia interrumpida se reanudará. Esta es la razón por la que algunas arquitecturas ofrecen registros sombreados para evitar el costo de guardar un registro cuando ingresa a una interrupción y restaurar cuando sale de la interrupción.

        • wren6991 dice:

          Sí, pero los registros telefónicos se almacenan mediante la función, no mediante el mecanismo ISR, por lo que generalmente no se incluyen en la hora de entrada.

          Las funciones cortas (hoja) a menudo lograrán funcionar completamente en el llamador (por ejemplo, los registros de argumentos sobre una convención de llamadas RISC-V), por lo que esta es en realidad una métrica justa.

    • Bruce Hoult (@BruceHoult) dice:

      El tiempo cotizado debe ingresar una función C compilada con el atributo "interrupción". Esto significa que la función en sí misma mantendrá solo los registros que realmente necesita. Es posible que un simple cuidador solo necesite llevar un registro.

      Si la función de gestión de interrupciones necesita un procesamiento más extenso y llama a funciones C normales (es decir, sin el atributo "interrupción"), entonces automáticamente guardará los registros volátiles primero. En el estándar * nix ABI, esto es a0-a7, t0-t6 y la dirección de retorno (16 registros). Se definirá EABI. Probablemente terminará necesitando mantener 7 registros.

      Tenga en cuenta que cargar / almacenar muchas instrucciones hace que su programa sea más pequeño, pero no lo hace más fácil. Lo mismo ocurre con la grabación por hardware.

      • asdf dice:

        El Cortex-M también establece interrupciones anidadas en esos mismos 12 ciclos. Lástima que los diseñadores de RISC-V nunca parecen ver qué hace que Cortex-M sea una arquitectura de microcontrolador tan elegante. Tal como está, tiene todas las desventajas y la torpeza de MIPS32.

        • Bruce Hoult (@BruceHoult) dice:

          Supongo que no ha leído https://github.com/sifive/clic-spec/blob/master/clic.adoc y especialmente la sección 6.3, que creo que puede abordar sus inquietudes.

          El CLIC está integrado en el E20 / E21.

          • asdf dice:

            No en realidad no. El código que se muestra usa la carga / almacenamiento de varias instrucciones que pensé que fueron abandonadas por RISC-V. Si son macros disfrazadas, entonces la afirmación de "12 instrucciones" es una mentira. En cualquier caso, las latencias parecen mucho más largas que las de Cortex-M.

          • Bruce Hoult (@BruceHoult) dice:

            Estos no guardan múltiples instrucciones. Esta no es una fuente en lenguaje ensamblador que realmente pueda armar. Puede notar que cosas como "FRAMESIZE" y "OFFSET" deben reemplazarse con valores reales (diferentes cada vez en el caso de "OFFSET"). Algo como "sw t1-t6, OFFSET (sp)" es solo una forma abreviada de seis instrucciones diferentes con diferentes desplazamientos del puntero de la pila.

            Usando el EABI propuesto, que tiene cuatro registros de argumentos a0-a3 y dos registros temporales t0-t1, el código real podría verse así:

            irq_start:
            # —- Interrupciones deshabilitadas ———————
            debajo de sp, sp, -48 # Asignar espacio en la pila.
            sw t0, 0 (sp) # Guardar t0.
            csrr t0, mcause # Obtiene mcause de contexto interrumpido.
            sw a0, 4 (sp) # Guardar a0.
            csrr a0, mepc # Obtener mepc de un contexto de interrupción.
            bgez t0, handle_exc # Maneja la excepción sincrónica.
            sw t0, 8 (sp) # Guardar el motivo del contexto interrumpido.
            sw t1, 12 (sp) # 1 más temporalmente para ser preservado
            sw a0, 16 (sp) # Guardar mepc.
            sw a1, 20 (sp) # 3 argumentos adicionales
            sw a2, 24 (sp)
            sw a3, 28 (sp)
            sw ra, 32 (sp) # 1 dirección de retorno
            csrrsi a0, mnxti, MIE # Obtiene la interrupción de corriente más alta y habilita las interrupciones.
            # Devuelve la interrupción original si no aparece nadie más.
            # —- Interrupciones habilitadas ———————–
            beqz a0, exit # Comprueba si la interrupción original ha desaparecido.

            get_entry:
            lw t0, (a0) # Indirecto en matriz de vectores operativos para puntero de función.
            csrrsi x0, mstatus, MIE # Habilitar interrupciones (solo se necesita para la rama posterior aquí)

            service_loop: # 5 instrucciones para el bucle de servicio de interrupción pendiente.
            jalr t0 # Llamada C ABI Rutina, a0 tiene codificación de ID de interrupción.

            Son 18 instrucciones y 21 ciclos antes de usar un interruptor C-EABI estándar. Eso es un poco más que los 15 ciclos de reloj para Cortex M0 +, pero es probable que la diferencia no sea un problema importante para los usuarios y resulta en ahorros muy significativos en puertas, área y energía.

            Si más interrupciones alcanzan el mismo nivel de prioridad antes de que regrese esta interrupción, se encadenarán al costo de solo 5 instrucciones y ciclos de reloj.

  • Alan Campbell dice:

    ¿Tiene un puerto IO? [like Intel] o si toda la memoria está mapeada [like ARM] ?

  • Artenz dice:

    Por supuesto me refiero al "salvador"

  • Ostraco dice:

    "Hace apenas unos meses, SiFive lanzó un procesador Linux multinúcleo gigante llamado HiFive Unleashed".

    ¿Contrario a qué? ¿Es Windows capaz?

    • Doc dice:

      ¿A diferencia de un kernel de microprocesador que no es capaz de ejecutar Linux y ejecutar cosas ya sea baremetal o por algo como FreeRTOS?

    • Cierto dice:

      ChibiOS, que se ejecuta en el paquete HackRF. Hay muchos sistemas operativos además de Windows, Linux u OSX.

      Mi sistema operativo favorito es OpenBSD solo para CARP, vale la pena conocerlo (https://www.openbsd.org/lyrics.html#35 - 'Quedándonos con pocas opciones, seguimos reinventando la rueda o, mejor dicho, dejamos la rueda por completo e ir a por un "aerodeslizador". ').

    • wren6991 dice:

      A diferencia de no ser un idiota inteligente y capaz de Linux.

      Aquí tiene una MMU e implementa la especificación ISA privilegiada.

  • Scott Cooper dice:

    ¡Hola!

    ¿Alguna razón por la que los resultados Arm CoreMark / MHz que se muestran en las tablas son mucho más bajos que los que habitualmente mide y certifica EEMBC para chips verdaderos?

    Normalmente, Cortex-M0 + se mide a 2,3-2,46 CM / MHz y Cortex-M4 en el rango de 3,4-3,5 CM / MHz.

    Y en la comparación E31 con M4F, mirando brevemente la especificación, ¡está mucho más cerca de M7 o incluso probablemente de Cortex-A! Una mirada a la especificación muestra un "búfer de destino de rama de 40 entradas (BTB) que predice el destino de ramas tomadas, una tabla de historial de rama de 128 entradas (BHT)", que será enorme una vez que se introduzca en un chip.

    En lugar de ofrecer un "reemplazo" de núcleos de 10 años, ¿qué tal si obtenemos algo realmente nuevo e innovador? 😉

    Gracias por su comprensión,

    Scott

    • Cierto dice:

      ¿Como la "arquitectura del molino"?

      • asdf dice:

        Así algún día dejará el estado de vapor.

        • Cierto dice:

          No veo ninguna razón por la que no se cumpla.

          Con pedidos MOSIS de muy bajo volumen (https://www.mosis.com/products/fab-processes), no parece una realización imposible. Con el tiempo, será más fácil y económico para las personas desarrollar sus propios chips si así lo desean.

          • asdf dice:

            Han pasado quince años y AFAIK todavía no tienen una implementación actual.

          • Cierto dice:

            @asdf No se parece a la CPU RISC-1 con solo 44,500 transistores, que duró 4 años con equipos masivos, y que eliminó en gran medida partes de un diseño preexistente completamente implementado y probado, y agregó muchos registros. The Mill es diferente. Puedo ver por qué querrían señalar su I y cruzar sus T, para encerrar todo lo que puedan. Eso y el equipo de desarrollo central son pequeños.

          • asdf dice:

            Nada viable incluye un prototipo de FPGA. Hasta este punto, es solo una máquina hipócrita gastar dinero en VC. Si hay ideas realmente útiles, se recogerán después de que tengan que vender las patentes por dinero.

          • Cierto dice:

            @asdf
            ¿Por qué mostrarían públicamente un prototipo de FPGA? Tienen patentes registradas, están trabajando en segundo plano esperando protección para evitar que los rivales roben su trabajo y se lo salten. Muchas características de la arquitectura son pura genialidad. Crecerá muy bien, hay tantas cosas buenas en el diseño que no entiendo tu negatividad.
            https://patents.google.com/?assignee=Mill+Computing%2c+Inc.&num=25&sort=new

          • asdf dice:

            Publicaron en sus propios foros que harán la implementación de FPGA primero. He visto bastantes proyectos supuestamente revolucionarios que no van a ninguna parte o resultan ser lo suficientemente seculares como para no subirse al emocionante tren. La prueba está en el pudín, esperaré hasta que tengan algo que mostrar, pero no respiro.

          • Cierto dice:

            Cuando se enfrentan a una empresa de $ 200 mil millones con un largo historial de estafas (https://www.youtube.com/watch?v=osSMJRyxG0k), puedo ver razones para no exponer la innovación sin tener grandes protecciones.

          • asdf dice:

            Ivan Godard debe ser otro fanático del ajedrez 5D.

          • Cierto dice:

            Una parte realmente difícil es el compilador, hasta que esté listo, el hardware es completamente inútil. Incluso si las últimas patentes se otorgaron mañana y Mill lanzó un flujo de bits FPGA en pleno funcionamiento, todavía se puede hacer muy poco con él. Es un animal completamente diferente en comparación con cualquier otra cosa. Tener un conjunto de instrucciones de longitud variable y procesar dos medios paquetes de instrucciones a la vez, uno subiendo en el espacio de direcciones y el otro hacia abajo. Ejecutando un pico de 33 instrucciones en cada ciclo. No hay nada completamente loco en el diseño, todo se basa en un nuevo uso de la tecnología existente. Están bien dentro de los límites existentes para las tasas de transferencia de bus, tamaños de caché SRAM. No están tratando de hacer nada loco como tratar de aumentar el tamaño de la caché en un factor de 10. Todo lo que intentan hacer desde el punto de vista del silicio es completamente posible, es muy diferente a cualquier otra cosa que agregue inevitabilidad. retrasos en el mercado. Hay riesgos, pero yo personalmente no lo veo como un vapor, si 3 años después de que obtuvieron todas sus patentes no tienen una gama de productos, entonces cambiaría de opinión. Los capitalistas de riesgo retendrían la mayor parte de la financiación hasta que se otorguen todas las patentes.

        • Cierto dice:

          Desde el 8 de mayo de 2018 han recibido 14 patentes, creo que se calla.

    • comentarista dice:

      Personalmente, creo que no se puede exagerar la necesidad del mundo actual de reemplazar estos núcleos.

      La tecnología avanza tan rápidamente con la investigación y la fabricación privadas que la competencia es casi imposible, ya sea de empresas competidoras o de grupos abiertos. Esto bloquea el control de la tecnología lejos de los consumidores y los desarrolladores e ingenieros independientes. Ser capaz de recrear las hazañas de la ingeniería, que son los procesadores y otros proyectos de silicio, para que escapen de la mera limitación corporativa de los proyectos de NDA y "derechos de autor", nos permite ver lo que realmente está sucediendo en nuestros dispositivos, permite que las personas aprendan más. y, por lo tanto, podrá innovar a partir de nuevos conocimientos y mejorar los proyectos existentes, y permitir que las empresas y las personas utilicen proyectos abiertos y de libre disponibilidad que de otro modo estarían bloqueados por el pago. Esto permite una mayor innovación en el mercado. La ventaja más importante, en mi opinión, es que podemos ver lo que está sucediendo como si fueran programas y recrearlo con fines educativos o prácticos. Ahora, para partir: me gustaría decir que los editores de texto son los microcontroladores del software de procesamiento de texto. Microsoft Word es más como un procesador de computadora. Hay otras variaciones extrañas, como administradores de tablas como Excel, administradores de bases de datos, editores de letras, programas de mensajería y muchas otras cosas que podrían considerarse software de procesamiento de texto. Imagínese si solo las grandes empresas tuvieran la capacidad de crearlos. No vería aplicaciones de mensajería innovadoras, soluciones de código abierto como LibreOffice, servicios en la nube como Google Docs o proyectos únicos como el generador de canciones de éxito de Billy Average que se codifica en un día para divertirse. . Si conoce vim y emacs, imagínese si nadie pudiera crear su propia rama del software o contribuir al proyecto existente, o si nadie pudiera mirar el código para comprender comportamientos extraños. O, peor aún, si nadie pudiera mirar la fuente para comprobar que no hay programas espía o adware.

      • comentarista dice:

        Nota: escribí esto una vez y no me esforcé demasiado en hacer que la alegoría fuera precisa o que todo estuviera tan bien escrito. Intenta conseguir la esencia y trabaja con ella.

        • asdf dice:

          Si compra un procesador RISC-V, todavía no puede "ver lo que realmente está pasando" en él. La implementación de RISC-V ISA (como es decir, la especificación) es una puerta trasera tan fácil como la implementación de cualquier otro conjunto de instrucciones. Incluso si el fabricante publica lo que dicen ser los archivos fuente del diseño, la única forma de verificar esto es mediante el capítulo y la ingeniería inversa del chip a nivel de transistor, y esto consume mucho tiempo incluso para dispositivos muy simples. .

          RISC-V tampoco es el primero de su tipo, solo es el más exaltado. Western Digital al usarlo en sus dispositivos no mueve mucho la aguja, los fabricantes de discos duros han usado todo tipo de controladores antes, sin que a nadie le importe mucho.

    • Bruce Hoult (@BruceHoult) dice:

      Las cifras de CoreMark que se muestran se miden en hardware real utilizando la misma versión de gcc y banderas (por ejemplo, -O2) en ambos sistemas para tener una comparación de manzanas con manzanas.

      Las cifras publicadas de ARM se basan en el compilador IAR, que es mucho mejor que gcc.

      IAR ha anunciado que están trabajando en un compilador RISC-V que se espera que esté en versión beta para fin de año.

      Siendo realistas, RISC-V gcc es actualmente bastante nuevo e inmaduro en comparación con ARM y el código generado tiene muchas oportunidades de mejora obvias.

  • UM3SH dice:

    Quiero gritarle a GAP8 SOC de tecnologías greenwaves que es un chip de núcleo 8 + 1 con extensiones RISC-V CORE + personalizadas para DSP y Acelerador de convolución de hardware disponible como un chip de silicio tangible.

Alberto Gimenez
Alberto Gimenez

Deja una respuesta

Tu dirección de correo electrónico no será publicada.