Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Inicio
Casa
Índices
Buscar
Artículo al azar
Cambios recientes
English
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
RISC-V
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Ficha de hardware |nombre = RISC-V |fecha de creación = |desarrollador = [[Universidad de California en Berkeley]] |lanzamiento = |imagen = Yunsup Lee holding RISC V prototype chip.jpg |pie de imagen = RISC-V prototipo de un procesador, enero de 2013. |frecuencia mínima = |frecuencia máxima = |manuf1 = |manuf2 = |manuf3 = |transistors = |arquitectura = [[#Diseño|Ver diseño]] |ancho en bits = [[32 bits|32]] • [[64 bits|64]] • [[128 bits|128]] |address-width = |conn1 = |sucedido por = |via1_1 = |pack 1 = |pack = |sock1 = |sistema operativo = [[#Software|Ver software]] |sitio web = }} [[Archivo:SpacemiT RISC−V M1.jpg|miniatura|[[sistema en un chip|SoC]] SpacemiT RISC-V M1]] [[Archivo:Starfive VisionFive2 Single Board Computer.jpg|miniatura|[[computadora monoplaca|SBC]] StarFive VisionFive 2]] '''RISC-V''' (pronunciado ''risk-five'') es una arquitectura de [[conjunto de instrucciones]] (ISA) de [[hardware libre]] basada en un diseño de tipo [[Reduced instruction set computing|RISC]] (computación con un conjunto de instrucciones reducidas). A diferencia de la mayoría de los conjuntos de instrucciones, el de '''RISC-V''' es [[Software libre y de código abierto|libre y abierto]] y se puede usar sin [[Regalía|regalías]] para cualquier propósito, lo que permite que cualquiera diseñe, fabrique y venda chips y software de RISC-V. Si bien no es la primera ISA de arquitectura abierta, es significativa porque está diseñada para ser útil en una amplia gama de dispositivos. El conjunto de instrucciones también tiene un cuerpo sustancial de software de soporte, que evita una debilidad habitual de los nuevos conjuntos de instrucciones. El proyecto comenzó en 2010 en la [[Universidad de California en Berkeley]], pero muchos colaboradores son voluntarios y trabajadores de la industria fuera de la universidad. El conjunto de instrucciones se ha diseñado pensando en implementaciones pequeñas, rápidas y de bajo consumo para el mundo real,<ref name="rocketsspeed"/><ref name="isa20191213"/> pero sin una sobre-ingeniería excesiva que buscase una [[microarquitectura]] concreta.<ref name="sodor">{{Cita web|url=https://github.com/ucb-bar/riscv-sodor|título=ucb-bar/riscv-sodor|fechaacceso=12 de febrero de 2015|apellido=Celio|nombre=Christopher|sitioweb=GitHub Inc.|editorial=Regents of the University of California}}</ref><ref name="shakti"/><ref name="boom">{{Cita web|url=http://www-inst.eecs.berkeley.edu/~cs152/sp14/handouts/lab3.pdf|título=CS 152 Laboratory Exercise 3|fechaacceso=12 de febrero de 2015|apellido=Celio|nombre=Christopher|sitioweb=UC Berkeley|editorial=Regents of the University of California}}</ref> En mayo de 2017, estaba cerrada la versión 2.2 del conjunto de instrucciones del [[espacio de usuario]]<ref name="isa2.2"/>. El conjunto de instrucciones privilegiadas estaba disponible como borrador en la versión 1.10. == Importancia == Los autores de RISC-V pretenden proporcionar varios diseños de [[Unidad central de procesamiento|CPU]] disponibles libremente bajo las [[Licencia BSD|licencias BSD]], que permiten que los trabajos derivados, como los diseños de chips RISC-V, sean abiertos y gratuitos, al igual que RISC-V, o cerrados y de propiedad exclusiva. Por el contrario, los proveedores de chips comerciales como [[ARM Holdings]] y [[MIPS Technologies]] cobran tarifas de licencia sustanciales por el uso de sus patentes.<ref>{{Cita web|url=https://semiaccurate.com/2013/08/07/a-long-look-at-how-arm-licenses-chips/|título=A long look at how ARM licenses chips: Part 1|apellido=Demerjian|nombre=Chuck|fecha=7 de agosto de 2013|editorial=SemiAccurate|fechaacceso=11 de enero de 2019|fechaarchivo=24 de octubre de 2022|urlarchivo=https://web.archive.org/web/20221024004658/https://semiaccurate.com/2013/08/07/a-long-look-at-how-arm-licenses-chips/|deadurl=yes}}</ref><ref>{{Cita web|url=https://semiaccurate.com/2013/08/08/how-arm-licenses-its-ip-for-production/|título=How ARM licenses its IP for production: Part 2|apellido=Demerjian|nombre=Chuck|fecha=8 de agosto de 2013|editorial=SemiAccurate|fechaacceso=11 de enero de 2019|fechaarchivo=25 de octubre de 2022|urlarchivo=https://web.archive.org/web/20221025025814/https://semiaccurate.com/2013/08/08/how-arm-licenses-its-ip-for-production/|deadurl=yes}}</ref> También requieren acuerdos de no divulgación antes de publicar documentos que describen las ventajas de sus diseños y el conjunto de instrucciones. El secreto impide la auditoría de seguridad.{{Cita requerida}} El desarrollo de una CPU requiere experiencia en diseño en varias especialidades: [[Lógica digital|lógica digital electrónica]], [[Compilador|compiladores]] y [[Sistema operativo|sistemas operativos]]. Es raro encontrar esto fuera de un equipo de ingeniería profesional. El resultado es que los conjuntos modernos de instrucción en computadora de alta calidad para fines generales no han estado ampliamente disponibles en ningún lugar, ni siquiera explicados, excepto en entornos académicos. Debido a esto, muchos colaboradores de RISC-V lo ven como un esfuerzo comunitario unificado. Esta necesidad de una gran base de contribuyentes es parte de la razón por la cual RISC-V se diseñó para adaptarse a tantos usos. Los autores de RISC-V también tienen una importante investigación y [[experiencia de usuario]] que validan sus diseños en silicio y simulación. El RISC-V ISA es un desarrollo directo de una serie de proyectos académicos de diseño de computadoras. Se originó en parte para ayudar a tales proyectos. == Historia == === Predecesores === El término RISC data de alrededor de 1980.<ref name="riscstart"/> Antes de esto, existía cierto conocimiento de que las computadoras más simples podrían ser efectivas, pero los principios de diseño no estaban ampliamente descritos. Las computadoras simples y efectivas siempre han sido de interés académico. Los académicos crearon el conjunto de instrucciones RISC DLX para la primera edición de Arquitectura de Computadora: Un Enfoque Cuantitativo en 1990. David Patterson fue un autor, y luego asistió a RISC-V. DLX era para uso educativo. Académicos y aficionados lo implementaron utilizando arreglos de puertas programables en campo ([[Field-programmable_gate_array|FPGA]]). No fue un éxito comercial. Las CPU ARM, versiones 2 y anteriores, tenían un conjunto de instrucciones de dominio público, y aún es compatible con la Colección de compiladores GNU ([[GNU Compiler Collection|GCC]]), un popular compilador de software libre. Existen tres núcleos de código abierto para esta ISA, pero no se han fabricado.<ref name="amber"/><ref name="arm4u"/> OpenRISC es una ISA de código abierto basada en [[DLX]], con diseños RISC asociados. Es totalmente compatible con implementaciones GCC y Linux. Sin embargo, tiene pocas implementaciones comerciales. === Fundación === Krste Asanović en la Universidad de California, Berkeley, encontró muchos usos para un sistema informático de código abierto. En 2010, decidió desarrollar y publicar uno en un "proyecto corto de tres meses durante el verano" con varios de sus estudiantes de posgrado. El plan era ayudar tanto a los usuarios académicos como a los industriales. David Patterson en Berkeley también ayudó en el esfuerzo. Originalmente identificó las propiedades de Berkeley RISC , y RISC-V es una de sus largas series de proyectos de investigación cooperativa RISC.<ref name="isasbfree"/><ref name="isa20191213"/> basados en RISC en la Universidad de California, Berkeley (RISC -I y RISC-II publicados en 1981 por Patterson, quien se refiere<ref name="geneology">{{cite web|last=Chen|first1=Tony|first2=David|last2=Patterson|date=2016-01-24|title=RISC-V{{sic|Geneology|hide=y}} |institution=University of California at Berkeley|number=UCB/EECS-2016-6|url=http://www.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-6.html }}</ref>a la arquitectura SOAR<ref>{{cite web|last=Samples|first=Alan Dain|last2=Klein|first2=Mike|last3=Foley|first3=Pete|date=1985|title=SOAR Architecture|institution=University of California, Berkeley|number=UCB/CSD-85-226|url=http://www.eecs.berkeley.edu/Pubs/TechRpts/1985/5940.html}}</ref> de 1984 como "RISC-III" y a la arquitectura SPUR<ref>{{cite web|last=Hill |first=Mark Donald |coauthors=David Patterson, Susan J. Eggers, James Richard Larus, George S. Taylor, Glenn D. Adams, Bidyut Kumar Bose, Garth A. Gibson, Paul Mark Hansen, John Keller, Shing I. Kong, Corinna Grace Lee, Daebum Lee, J. M. Pendleton, Scott Allen Ritchie, David A. Wood, Benjamin G. Zorn, Paul N. Hilfinger, D. A. Hodges, Randy H. Katz, and John K. Ousterhout|date=December 1985|title=SPUR: A VLSI Multiprocessor Workstation |institution=University of California, Berkeley |number=UCB/CSD-86-273 |url=http://www.eecs.berkeley.edu/Pubs/TechRpts/1985/6083.html}}</ref> de 1988 como "RISC-IV"). En esta etapa, los estudiantes proporcionaron software inicial, simulaciones y diseños de CPU.<ref name="contributors"/> Los primeros fondos de financiación fueron proporcionados por [[DARPA]]. Una lista parcial de organizaciones que apoyan la Fundación RISC-V incluye: [[Advanced Micro Devices|AMD]], Andes Technology, [[BAE Systems]] , [[Universidad de California en Berkeley|Berkeley Architecture Research]], Bluespec, Inc. , Cortus , [[Google]] , GreenWaves Technologies, [[Hewlett Packard Enterprise]], [[Huawei]], [[IBM]], Imperas Software, Instituto de Tecnología de Computación (ICT) [[Academia China de las Ciencias]], [[Institutos Indios de Tecnología|IIT-Madras]], Lattice Semiconductor, Mellanox Technologies, Microsemi, Micron Technologies, [[Nvidia]], [[NXP Semiconductors|NXP]], [[Oracle Corporation|Oracle]], [[Qualcomm]], Rambus Cryptography Research, [[Western Digital]], SiFive y [[Raspberry Pi|Raspberry Pi Foundation]].<ref>{{Cita web|url=https://www.wired.com/story/computings-nobel-prize-winners-paved-the-way-to-smartphone-chips/|título=Turing Prize Winners Paved Way to Smartphone Chips|apellido=Finley|nombre=Klint|fecha=21 de marzo de 2018|sitioweb=Wired.com}}</ref><ref>{{Cita web|url=http://www.andestech.com/product.php?cls=2|título=AndeStar Architecture|sitioweb=Andes Technology|cita=Andes is a founding member of the RISC-V Foundation.|fechaacceso=11 de enero de 2019|fechaarchivo=28 de enero de 2019|urlarchivo=https://web.archive.org/web/20190128155312/http://andestech.com/product.php?cls=2|deadurl=yes}}</ref><ref>{{Cita web|url=https://www.eetimes.com/document.asp?doc_id=1328561&page_number=1|título=Google, Oracle and HP Join RISC-V|fechaacceso=11 de febrero de 2016|apellido=Merritt|nombre=Rick|sitioweb=EE Times|editorial=UBM}}</ref><ref>{{Cita web|url=https://riscv.org/members-at-a-glance/|título=Members at a Glance|fechaacceso=2 de enero de 2018|sitioweb=riscv.org|fechaarchivo=24 de septiembre de 2019|urlarchivo=https://web.archive.org/web/20190924145625/https://riscv.org/members-at-a-glance/|deadurl=yes}}</ref> === Premios === * 2017: Premio a la elección del analista de The Linley Group a la mejor tecnología (para el conjunto de instrucciones)<ref>{{cite press release|title=The Linley Group Announces Winners of Annual Analysts' Choice Awards|url=http://linleygroup.com/press_detail.php?The-Linley-Group-Announces-Winners-of-Annual-Analysts-Choice-Awards-85|publisher=The Linley Group|fecha=12 de enero de 2017|access-date=21 de enero de 2018}}</ref> == Requisitos motivadores == Los diseñadores dicen que el conjunto de instrucciones es la interfaz principal en una computadora, porque se encuentra entre el hardware y el software. Si un buen conjunto de instrucciones está abierto, disponible para que todos lo usen, debería reducir drásticamente el costo del software al permitir que se reutilice mucho más. También debería aumentar la competencia entre los proveedores de hardware, que pueden usar más recursos para el diseño y menos para el soporte de software. Los diseñadores afirman que los nuevos principios son cada vez más raros en el diseño de conjuntos de instrucciones, ya que los diseños más exitosos de los últimos cuarenta años se han vuelto cada vez más similares. De los que fallaron, la mayoría lo hizo porque sus compañías patrocinadoras fallaron comercialmente, no porque los conjuntos de instrucciones fueran técnicamente deficientes. Por lo tanto, un conjunto de instrucciones abiertas bien diseñado y diseñado con principios bien establecidos debería atraer el apoyo a largo plazo de muchos proveedores. La mayoría de los ISA abiertos utilizaban la Licencia Pública General de GNU (GPL), alentando a los usuarios a abrir sus implementaciones para que otros los copien y los usen. A diferencia de otros diseños académicos que están optimizados solo para la simplicidad de la exposición, los diseñadores afirman que el conjunto de instrucciones RISC-V es para computadoras prácticas. Se dice que tiene características para aumentar la velocidad de la computadora, y aun así reducir el costo y el uso de energía. Estos incluyen una arquitectura de carga y almacenamiento, patrones de bits para simplificar los multiplexores en una CPU, punto flotante basado en estándares simplificados, un diseño que es arquitectónicamente neutral y que coloca los bits más significativos en una ubicación fija para acelerar la extensión de signo. Se dice que la extensión de la señal a menudo se encuentra en la ruta de sincronización crítica.<ref name="isa20191213"/>{{rp|page=17}} El conjunto de instrucciones está diseñado para una amplia gama de usos. Admite tres anchos de palabra, 32, 64 y 128 bits, y una variedad de subconjuntos. Las definiciones de cada subconjunto varían ligeramente para los tres anchos de palabra. Los subconjuntos son compatibles con sistemas integrados pequeños, computadoras personales, supercomputadoras con procesadores vectoriales y computadoras paralelas montadas en bastidores a escala de almacén. El conjunto de instrucciones es de ancho variable y extensible, de modo que siempre se pueden agregar más bits de codificación. Se reservó el espacio para la versión extendida de ISA de 128 bits, ya que 60 años de experiencia en la industria han demostrado que el error más irrecuperable en el diseño del conjunto de instrucciones es la falta de [[espacio de direcciones]] de memoria. A partir de 2016, la ISA de 128 bits permanece indefinida intencionalmente, porque aún hay muy poca experiencia práctica con sistemas de memoria tan grandes. Sin embargo, RISC-V también apoya los usos académicos de los diseñadores. La simplicidad del subconjunto de enteros permite los ejercicios básicos de los estudiantes. El subconjunto de enteros es un simple software de ISA que permite controlar máquinas de investigación. La ISA de longitud variable permite extensiones tanto para los ejercicios de los estudiantes como para la investigación. El conjunto de instrucciones privilegiadas separadas permite la investigación en el soporte del sistema operativo, sin rediseñar los compiladores. La propiedad intelectual abierta de RISC-V permite que sus diseños se publiquen, reutilicen y modifiquen. == Software == Un problema normal para un nuevo conjunto de instrucciones es la falta de diseños y software de CPU, ambos problemas limitan su usabilidad y reducen su adopción. <ref name="isasbfree"/> RISC-V tiene una gran cantidad de diseños de CPU. El software RISC-V incluye cadenas de herramientas, sistemas operativos, software intermedio y software de diseño. El sitio web de RISC-V tiene una especificación para las instrucciones en modo usuario y una especificación preliminar para un conjunto de instrucciones privilegiadas de propósito general, para soportar sistemas operativos.<ref>{{Cita web|url=https://riscv.org/|título=RISC-V The Free and Open Instruction Set|fechaacceso=11 de noviembre de 2016|sitioweb=RISC-V Foundation}}</ref> Hay varios diseños de CPU de fuente abierta, incluyendo la Máquina de Berkeley fuera de servicio (BOOM) de 64 bits, [21] Cohete de 64 bits, [22] cinco diseños de CPU Sodor de 32 bits de Berkeley, [23] picorv32 por Clifford Wolf, scr1 de Syntacore, PULPino (Riscy and Zero-Riscy) de ETH Zürich / Universidad de Bolonia.<ref>{{Cita web|url=https://github.com/ucb-bar/riscv-boom/commits/master?after=krZMYRRfnH3CuABbJBwUBMFbUg4rMzQ%3D|título=riscv-boom|fechaacceso=11 de noviembre de 2016|apellido=Celio|nombre=Christopher|sitioweb=GitHub|editorial=Regents of the University of California}}</ref><ref>{{Cita web|url=https://github.com/ucb-bar/rocket-chip|título=rocket-chip|fechaacceso=11 de noviembre de 2016|apellido=Asanović|nombre=Krste|sitioweb=GitHub|editorial=The RISC-V Foundation}}</ref><ref>{{Cita web|url=https://github.com/ucb-bar/riscv-sodor|título=riscv-sodor|fechaacceso=11 de noviembre de 2016|apellido=Celio|nombre=Christopher|sitioweb=GitHub|editorial=Regents of the University of California}}</ref><ref name="pulpino">{{Cita web|url=https://www.pulp-platform.org/|título=PULP: Parallel Ultra Low Power|fechaacceso=5 de agosto de 2016|apellido=Traber|nombre=Andreas|editorial=ETH Zurich, University of Bologna}}</ref> y otros. La CPU Sodor de tres etapas parece ser adecuada para una pequeña CPU integrada. Rocket puede adaptarse a computadoras intermedias compactas y de bajo consumo, como dispositivos personales. BOOM usa gran parte de la infraestructura creada para Rocket, y puede usarse para computadoras personales, de supercomputadoras y de almacén. Tanto picorv como scr1 son implementaciones RV32IMC de clase de microcontrolador (MCU) de 32 bits en Verilog. Los núcleos en PULPino implementan una ISA RV32IMC simple para microcontroladores (Zero-Riscy) o una ISA RV32IMFC más potente con extensiones DSP personalizadas para el procesamiento de señales incrustadas. El software de diseño incluye un compilador de diseño, Chisel, que puede reducir los diseños a Verilog para su uso en dispositivos. El sitio web incluye datos de verificación para probar implementaciones principales.<ref name="chisel">{{Cita web|url=https://chisel.eecs.berkeley.edu/|título=Chisel: Constructing Hardware in a Scala Embedded Language|fechaacceso=12 de febrero de 2015|sitioweb=UC Berkeley|editorial=Regents of the University of California}}</ref> Las herramientas de software RISC-V disponibles incluyen una cadena de herramientas de la colección de compiladores GNU (GCC) (con GDB, el depurador), una cadena de herramientas LLVM , el simulador OVPsim (y la biblioteca de modelos de procesadores rápidos RISC-V), el simulador Spike y un simulador en QEMU . Existe compatibilidad con el sistema operativo para [[GNU/Linux]], [[FreeBSD]] y [[NetBSD]], pero las instrucciones en modo supervisor no están estandarizadas a partir del 10 de noviembre de 2016, por lo que este soporte es provisional. El Ports preliminar de FreeBSD para la arquitectura RISC-V se actualizó en febrero de 2016 y se envió en FreeBSD 11.0.<ref name="freebsdriscv"/><ref name="freebsdriscv-committed"/> Los Ports de [[Debian GNU/Linux|Debian]]<ref>{{Cita web|url=https://groups.google.com/a/groups.riscv.org/forum/#!msg/sw-dev/u4VcUtB9r94/4HiFYBhXAAAJ|título=Debian GNU/Linux port for RISC-V 64|fechaacceso=19 de julio de 2018|apellido=Montezelo|nombre=Manuel|sitioweb=Google Groups|editorial=Google}}</ref> y [[Fedora (distribución Linux)|Fedora]]<ref>{{Cita web|url=https://fedoraproject.org/wiki/Architectures/RISC-V|título=Architectures/RISC-V|fechaacceso=26 de septiembre de 2016|sitioweb=Fedora Wiki|editorial=Red Hat}}</ref> están estabilizando. Existe un port de [[Das U-Boot]].<ref>{{Cita web|url=https://groups.google.com/a/groups.riscv.org/forum/#!topic/sw-dev/j63wzz2ylY8|título=U-Boot port on RISC-V 32-bit is available|fechaacceso=15 de febrero de 2017|apellido=Begari|nombre=Padmarao|sitioweb=Google Groups|editorial=Microsemi}}</ref> [[UEFI|UEFI Spec]] v2.7 ha definido el enlace RISC-V y un puerto de tianocore ha sido realizado por ingenieros de HPE y se espera que esté actualizado. Hay un puerto preliminar del microkernel seL4 .<ref>{{Cita web|url=https://docs.sel4.systems/Hardware/RISCV.html|título=RISC-V, seL4|fechaacceso=13 de julio de 2018|apellido=Almatary|nombre=Hesham|sitioweb=seL4 Documentation|editorial=Commonwealth Scientific and Industrial Research Organisation (CSIRO)}}</ref><ref>{{Cita web|url=https://github.com/heshamelmatary|título=heshamelmatary|fechaacceso=13 de julio de 2018|apellido=Almatary|nombre=Hesham|sitioweb=GitHub}}</ref> Hay un simulador para correr un RISC-V en sistema de Linux en [[Navegador web|navegador de web]] que utiliza [[Javascript]]. {{Cita web|url=https://github.com/heshamelmatary|título=heshamelmatary|fechaacceso=13 de julio de 2018|apellido=Almatary|nombre=Hesham|sitioweb=GitHub}} CREATOR <ref> Web oficial de CREATOR en: https://creatorsim.github.io </ref> <ref> RISC-V Exchange: https://riscv.org/exchange/?_sf_s=creator </ref> <ref> CREATOR con ejemplo de factorial para RISC-V: https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e12 </ref> es un entorno de desarrollo integrado (IDE) de código abierto <ref> Código fuente de CREATOR en GitHub: https://github.com/creatorsim </ref> y basado en web, diseñado para ser intuitivo, multiplataforma, genérico y compatible con dispositivos de hardware reales. Este IDE permite, en una única herramienta, editar, ensamblar, depurar, simular y ejecutar programas escritos en lenguajes ensambladores como RISC-V, MIPS32, Z80, etc. Además, también permite ejecutar estos programas en hardware real, como, por ejemplo, microcontroladores (ESP32-C3, ESP32-C6, etc.) y placas SBC (OrangePi RV2, Nezha D1-H, etc.). <ref> Publicación en SoftwareX: https://doi.org/10.1016/j.softx.2026.102792 </ref> <ref> Publicación en IEEE Access: https://doi.org/10.1109/ACCESS.2024.3406935 </ref> Además, CREATOR soporta la especificación de la ISA de RISC-V basada en Sail, lo que permite utilizar el juego completo de RISC-V, incluidos los registros vectoriales. <ref> Publicación en Journal of Systems Architecture: https://doi.org/10.1016/j.sysarc.2026.103809 </ref> El simulador educativo WepSIM<ref>https://doi.org/10.1109/TLT.2019.2903714</ref><ref>https://digibug.ugr.es/handle/10481/41909</ref><ref>WepSIM Web con ejemplo RISC-V_im: https://wepsim.github.io/wepsim/ws_dist/wepsim-classic.html?mode=ep&examples_set=Default-RISCV&example=9&simulator=assembly:registers¬ify=false</ref><ref>Código fuente de WepSIM en GitHub: https://github.com/wepsim/wepsim</ref> implementa un subconjunto de instrucciones RISC-V de forma microprogramada (RV32I + M) y permite ejecutar ejemplos de subrutinas en ensamblador. El simulador WepSIM puede usarse desde un navegador Web, y facilita aprender diversos aspectos de cómo una CPU funciona ( [https://wepsim.github.io/wepsim/ws_dist/?mode=ep&examples_set=Default-MIPS&example=9&simulator=microcode:control_memory¬ify=false microprogramación,] [https://wepsim.github.io/wepsim/ws_dist/wepsim-classic.html?mode=ep&examples_set=Default-RISCV&example=11&simulator=assembly:registers¬ify=false interrupciones,] [https://wepsim.github.io/wepsim/ws_dist/wepsim-classic.html?mode=ep&examples_set=Default-RISCV&example=12&simulator=assembly:registers¬ify=false llamadas al sistema,] etc.) usando ensamblador RISC-V. == Usuarios == === Comerciales === * SiFive, una compañía establecida específicamente para desarrollar hardware RISC-V, lanzó modelos de procesador en 2017. [33] [34] Estos incluyen un sistema de 64 bits de cuatro núcleos RISC-V SoCa en un chip (SoC). .<ref>{{Cita web|url=https://www.sifive.com/products/hifive1/|título=HiFive1|fechaacceso=10 de julio de 2018|sitioweb=SiFive|fechaarchivo=26 de febrero de 2017|urlarchivo=https://web.archive.org/web/20170226212908/https://www.sifive.com/products/hifive1/|deadurl=yes}}</ref><ref>{{Cita web|url=https://www.crowdsupply.com/sifive/hifive1/|título=Hi-Five1: Open-source Arduino-Compatible Development Kit|fechaacceso=2 de diciembre de 2016|autor=SiFive|sitioweb=Crowd Supply}}</ref><ref>{{Cita web|url=https://www.sifive.com/chip-designer#fu540|título=FU540 SoC CPU|fechaacceso=24 de octubre de 2018|sitioweb=SiFive}}</ref> * SSyntacore, [36] un miembro fundador de la Fundación RISC-V y uno de los primeros proveedores comerciales de IP RISC-V, desarrolla y otorga licencias a la familia de RISC-V IP desde 2015. A partir de 2018 , la línea de productos incluye ocho 32 - y núcleos de 64 bits, incluido el núcleo SCR1 MCU de código abierto. [37] Los primeros SoC comerciales, basados en Syntacore IP, se demostraron en 2016.<ref>{{Cita web|url=https://riscv.org/2016/12/5th-risc-v-workshop-proceedings/|título=RISC-V workshop proceedings|fechaacceso=11 de diciembre de 2018}}</ref> * Andes Technology Corporation, miembro fundador de la Fundación RISC-V [39] que se unió al consorcio en 2016, lanzó sus primeros dos núcleos RISC-V en 2017. Los núcleos, el N25 y el NX25, vienen con un completo diseño de ecosistemas y un Número de socios del RISC-V. Andes está impulsando activamente el desarrollo del ecosistema RISC-V y espera lanzar varios nuevos productos RISC-V en 2018. * Codasip y UltraSoC han desarrollado una propiedad intelectual totalmente compatible para los SOC incorporados RISC-V que combinan los núcleos RISC-V de Codasip y otras IP con la depuración, optimización y análisis de UltraSoC.<ref>{{Cita web|url=https://www.electronicsweekly.com/news/business/codasip-ultrasoc-combine-risc-v-2016-11/|título=Codasip and UltraSoC Combine on RISC-V|fechaacceso=23 de noviembre de 2016|apellido=Manners|nombre=David|sitioweb=Electronics Weekly|editorial=Metropolis International Group, Ltd.}}</ref> * Imperas ha desarrollado una familia de modelos de procesadores rápidos para los diferentes subconjuntos de variantes IS32 RV32GC y RV64GC que forman parte de las distribuciones de simulador precisas de instrucciones OVPsim utilizadas para el desarrollo de software integrado. * GreenWaves Technologies anunció la disponibilidad de GAP8, un controlador de 32 bits 1 más 8 núcleos informáticos, SoC de 32 bits y placa de desarrollo en febrero de 2018. Su placa de desarrollo GAPuino GAP8 comenzó a distribuirse en mayo de 2018.<ref>{{Cita web|url=https://www.cnx-software.com/2018/02/27/greenwaves-gap8-is-a-low-power-risc-v-iot-processor-optimized-for-artificial-intelligence-applications/|título=GreenWaves GAP8 is a Low Power RISC-V IoT Processor Optimized for Artificial Intelligence Applications|fechaacceso=4 de marzo de 2018|sitioweb=CNXSoft: Embedded Systems News}}</ref><ref>{{Cita noticia|título=AI Comes to Sensing Devices|url=https://www.eetimes.com/document.asp?doc_id=1333003|fecha=26 de febrero de 2018|fechaacceso=10 de julio de 2018}}</ref><ref>{{cite press release|url=https://greenwaves-technologies.com/en/gap8-software-development-kit-and-gapuino-development-board/|title=GreenWaves Technologies Announces Availability of GAP8 Software Development Kit and GAPuino Development Board|fecha=22 de mayo de 2018}}</ref> * Hex Five anunció la disponibilidad general de MultiZone Security: el primer entorno de ejecución confiable (TEE) de RISC-V que utiliza el estándar ISA de RISC-V y las extensiones de modo privilegiado.<ref>{{Cita web|url=https://hex-five.com/press/hex-five-adds-multizone-security-to-sifive-software-ecosystem/|título=Hex Five Security Adds MultiZone Trusted Execution Environment to the SiFive Software Ecosystem|fechaacceso=13 de septiembre de 2018|sitioweb=Hex Five Security}}</ref> * CloudBEAR es una empresa de procesadores IP que desarrolla sus propios núcleos RISC-V para una amplia gama de aplicaciones.<ref>{{Cita web|url=https://cloudbear.ru/|título=CloudBEAR|fechaacceso=16 de octubre de 2018}}</ref>{{As of|2018}} * En 2020, el sector estratégico y de defensa de la India comenzó a utilizar el procesador [[SHAKTI - Microprocessor & Microcontroller#Risecreek|Risecreek]] basado en RISC-V de 64 bits de 100-350 MHz desarrollado por los [[Institutos Indios de Tecnología]] que es fabricado por [[Intel]] con una litografía de 22 nm [[FinFET]].<ref>{{Cite news|last=Desikan|first=Shubashree|date=2018-08-06|title=IIT-Madras powers up a desi chip|language=en-IN|work=The Hindu|url=https://www.thehindu.com/sci-tech/technology/iit-madras-powers-up-a-desi-chip/article24609946.ece|access-date=2020-09-25|url-access=subscription|issn=0971-751X}}</ref><ref name=":0">{{Cite web|title=Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices|url=https://www.wionews.com/india-news/meet-indias-atmanirbhar-microprocessor-chip-moushik-meant-for-iot-devices-329966|access-date=2020-09-25|website=WION|language=en}}</ref> === En desarrollo === * El [[Institutos Indios de Tecnología|Instituto Indio de Tecnología de Madras]] (IIT-Madras) está desarrollando seis diseños de CPU de código abierto RISC-V para seis usos distintos, desde una pequeña CPU de 32 bits para Internet de las cosas (IoT) hasta grandes CPU de 64 bits diseñadas para computadoras de almacén como granjas de servidores basadas en las tecnologías RapidIO y Hybrid Memory Cube.<ref>{{Cite web|last=Halfacree|first=Gareth|date=2021-06-10|title=RISC-V boffins lay out a plan for bringing the architecture to high-performance computing|url=https://www.theregister.com/2021/06/10/riscv_hpc/ |access-date=2021-07-09|website=The Register|language=en}}</ref><ref name="shakti"/><ref name="iitmadrasospp"/> RISE inició con éxito Moushik de 32 bits para la aplicación de tarjetas de crédito, máquinas de votación electrónica (EVM), cámaras de vigilancia, cerraduras de seguridad y sistemas de gestión de salud personalizados.<ref name=":0"/><ref>{{Cite web|date=2020-09-24|title=IIT Madras Develops and Boots up MOUSHIK Microprocessor for IoT Devices|url=https://www.iitm.ac.in/happenings/press-releases-and-coverages/iit-madras-develops-and-boots-moushik-microprocessor-iot |access-date=2021-07-09|website=IIT Madras}}</ref> * Nvidia planea usar RISC-V para reemplazar su procesador Falcon en sus tarjetas gráficas GeForce .<ref>{{Cita vídeo|url=https://www.youtube.com/watch?v=gg1lISJfJI0|título=NVIDIA RISC V Evaluation Story Joe Xie|autor= RISC-V International|}}</ref> * ASTC desarrolló una CPU RISC-V para circuitos integrados incrustados.<ref>{{cite mailing list|last=Ashenden|first=Peter|fecha=9 de noviembre de 2016|title=Re: [isa-dev] RISC V ISA for embedded systems|quote=At ASTC (www.astc-design.com), we have an implementation of RV32EC as a synthesizable IP core intended for small embedded applications, such as smart sensors and IoT.|url=https://groups.google.com/a/groups.riscv.org/d/msg/isa-dev/j2okI7akT74/BQdUwjMRAgAJ|mailing-list=RISC-V ISA Dev|website=Google Groups|publisher=Google|access-date=10 de noviembre de 2016}}</ref> * Adapteva planea utilizar RISC-V, en un sucesor de su producto acelerador de muchos puntos [49] * lowRISC es un proyecto sin fines de lucro para implementar un sistema de hardware de fuente completamente abierta en un chip (SoC) basado en el RISC-V ISA de 64 bits.<ref name="lowrisc"/> * El Laboratorio de Computación de la Universidad de Cambridge, en colaboración con el [[FreeBSD|Proyecto FreeBSD]], ha adaptado ese sistema operativo a RISC-V de 64 bits para utilizarlo como una plataforma de investigación de hardware y software.<ref name="freebsdriscv-committed"/> * ETH Zúrich y la Universidad de Bolonia han desarrollado de manera cooperativa el procesador de código abierto RISC-V PULPino [51] como parte del proyecto Parallel Ultra-Low Power (PULP) para la computación IoT eficiente en energía.<ref>{{Cita web|url=https://github.com/pulp-platform/pulpino|título=PULPino GitHub project|fechaacceso=2 de febrero de 2018|sitioweb=GitHub}}</ref><ref>{{Cita web|url=https://pulp-platform.org/|título=PULP Platform|fechaacceso=2 de febrero de 2018|sitioweb=PULP Platform}}</ref> * Western Digital anunció un plan para integrar procesadores RISC-V en sus futuros productos. [53] .<ref>{{Cita web|url=https://www.wdc.com/about-wd/newsroom/press-room/2017-11-28-western-digital-to-accelerate-the-future-of-next-generation-computing-architectures-for-big-data-and-fast-data-environments.html|título=Western Digital to Accelerate the Future of Next-Generation Computing Architectures for Big Data and Fast Data Environments|fecha=28 de noviembre de 2017|editorial=Western Digital}}</ref> * Esperanto Technologies anunció que están desarrollando tres procesadores basados en RISC-V: el núcleo de alto rendimiento ET-Maxion, el núcleo de eficiencia energética ET-Minion y el procesador de gráficos ET-Graphics .<ref>{{Cita web|url=https://fuse.wikichip.org/news/686/esperanto-exits-stealth-mode-aims-at-ai-with-a-4096-core-7nm-risc-v-monster/|título=Esperanto exits stealth mode, aims at AI with a 4,096 core 7nm RISC-V monster|fechaacceso=2 de enero de 2018|sitioweb=wikichip.org|idioma=en-US}}</ref> == Diseño == === ISA Base y extensiones === RISC-V tiene un diseño modular, que consiste en partes de base alternativas, con extensiones opcionales agregadas. La base ISA y sus extensiones se desarrollan en un esfuerzo colectivo entre la industria, la comunidad de investigación y las instituciones educativas. La base especifica las instrucciones (y su codificación), el flujo de control, los registros (y sus tamaños), la memoria y el direccionamiento, la manipulación lógica (es decir, el número entero) y los elementos auxiliares. Solo la base puede implementar una computadora de propósito general simplificada, con soporte completo de software, incluido un compilador de propósito general. Las extensiones estándar están especificadas para funcionar con todas las bases estándar y entre sí sin conflicto. Muchas computadoras RISC-V pueden implementar la extensión compacta para reducir el consumo de energía, el tamaño del código y el uso de la memoria. También hay planes futuros para admitir hipervisores y virtualización. [19] Junto con una extensión de conjunto de instrucciones de supervisor, S, un RVGC define todas las instrucciones necesarias para admitir de manera conveniente un sistema operativo de estilo Unix, interfaz de sistema operativo portátil ( POSIX ). {| data-vivaldi-spatnav-clickable="1" class="wikitable plainrowheaders" |+ISA base y extensiones ! scope="col" |Nombre ! scope="col" |Descripción ! scope="col" |Versión ! scope="col" |Estado[más bajo-alfa 1] |- ! colspan="4" |Base |- ! scope="row" |RV32I |Conjunto de instrucciones de base entera, 32-bits |2.0|| {{Yes|Cerrada}} |- ! scope="row" |RV32E |Conjunto de instrucciones de base entera (embedded), 32-bits, 16 registros |1.9|| {{No|Abierta}} |- ! scope="row" |RV64I |Conjunto de instrucciones de base entera, 64-bits |2.0<ref>{{cite web|last=Waterman|first=Andrew|last2=Lee|first2=Yunsup|last3=Avizienas|first3=Rimas|last4=Patterson|first4=David|last5=Asanović|first5=Krste|title=Draft Privileged ISA Specification 1.9|url=https://riscv.org/specifications/privileged-isa/|website=RISC-V|publisher=RISC-V Foundation|access-date=30 de agosto de 2016|fechaarchivo=26 de agosto de 2018|urlarchivo=https://web.archive.org/web/20180826095957/https://riscv.org/specifications/privileged-isa/|deadurl=yes}}</ref> |- ! scope="row" |RV128I |Conjunto de instrucciones de base entera, 128-bits |1.7{{refn|Frozen parts are expected to have their final feature set and to receive only clarifications before being ratified.|name=frozen}} |- ! colspan="4" |Extensión |- ! scope="row" |M |Extensión estándar para Multiplicación de Entero y División |2.0|| {{Yes|Cerrada}} |- ! scope="row" |A |Extensión estándar para Instrucciones Atómicas |2.0|| {{No|Abierta}} |- ! scope="row" |F |Extensión estándar para punto flotante de precisión simple |2.0|| {{Yes|Cerrada}} |- ! scope="row" |D |Extensión estándar para punto flotante de precisión doble |2.0|| {{No|Abierta}} |- ! scope="row" | {{mono|Zicsr}} | Instrucciones del registro de control y estado (CSR) || 2.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zifencei}} | Barrera de lectura de instrucciones || 2.0 || {{Si|Cerrada}} |- ! scope="row" |G |Abreviatura para la base y extensiones anteriores|| {{Celda|N/A}}|| {{Celda|N/A}} |- ! scope="row" |Q |Extensión estándar para punto flotante de precisión cuádruple |2.0|| {{Si|Cerrada}} |- ! scope="row" |L |Extensión estándar para punto flotante decimal |0.0|| {{Si|Cerrada}} |- ! scope="row" |C |Extensión estándar para instrucciones comprimidas |2.0|| {{Celda|N/A}} |- ! scope="row" |B |Extensión estándar para manipulación de bits |1.0|| {{Si|Cerrada}} |- ! scope="row" |J |Extensión estándar para lenguajes traducidos dinámicamente |0.0|| {{Si|Cerrada}} |- ! scope="row" |T |Extensión estándar para Memoria Transaccional |0.0|| {{No|Abierta}} |- ! scope="row" |P |Extensión estándar para Empaquetado-SIMD Instrucciones |0.1|| {{Si|Cerrada}} |- ! scope="row" |V |Extensión estándar para Operaciones de Vector |0.2|| {{No|Abierta}} |- ! scope="row" |N |Extensión estándar para interrupciones de nivel de usuario |1.1|| {{No|Abierta}} |- ! scope="row" | {{mono|Zihintpause}} | Sugerencia para pausar || 2.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zihintntl}} | Pistas de localidad no temporal || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zfa}} | Instrucciones adicionales de punto flotante || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zfh}} | Punto flotante de media precisión || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zfhmin}} | Punto flotante de media precisión mínima || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zfinx}} | Punto flotante de precisión simple en registro entero || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zdinx}} | Punto flotante de doble precisión en registro entero || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zhinx}} | Punto flotante de media precisión en registro entero || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Zhinxmin}} | Punto flotante de media precisión mínima en registro entero || 1.0 || {{Si|Cerrada}} |- ! scope="row" | {{mono|Ztso}} | Total store ordering || 1.0 || {{Yes|Ratified}} |} Para dominar las combinaciones de funcionalidad que pueden implementarse, se define una nomenclatura para especificarlas. [4] La base del conjunto de instrucciones se especifica primero, la codificación para RISC-V, el ancho de bit de registro y la variante; por ejemplo, RV64I o RV32E. Luego sigue las letras que especifican extensiones implementadas en orden canónico (como arriba). La base, los enteros extendidos y los cálculos de punto flotante, y las primitivas de sincronización para la computación multinúcleo, la base y las extensiones MAFD, se consideran necesarias para el cálculo de propósito general, y por lo tanto tienen la taquigrafía, G. Una pequeña computadora de 32 bits para un sistema integrado podría ser RV32EC. Una computadora grande de 64 bits podría ser RV64GC; es decir, taquigrafía para RV64IMAFDC. Se ha propuesto un esquema de denominación con Zxxx para extensiones estándar y Yxxx para extensiones no estándar (específicas del proveedor). Por ejemplo, la extensión Ztso para el pedido total de almacenamientos, un modelo alternativo de consistencia de memoria para el ordenamiento de memoria débil, se encuentra en discusión.<ref>{{Cita vídeo|url=https://www.youtube.com/watch?v=PE3pFZm2OA0|título=Memory Consistency Model Status Update|autor=RISC-V International}}</ref> === Conjuntos de registro === RISC-V tiene 32 (o 16 en la variante embebidas) registros enteros y, cuando se implementa la extensión de punto flotante, 32 registros de punto flotante. A excepción de las instrucciones de acceso a la memoria, las instrucciones solo se refieren a los registros. El primer registro de enteros es un registro de cero, y el resto son registros de propósito general. Una escritura para el registro cero no tiene ningún efecto, y una lectura siempre proporciona 0. Usar el registro cero como un marcador de posición hace que el conjunto de instrucciones sea más simple. Por ejemplo, {{code|move rx to ry}} se convierte en {{code|add r0 to rx and store in ry}}. Existen registros de control y estado, pero los programas en modo usuario pueden acceder solo a aquellos utilizados para la medición del rendimiento y la gestión de punto flotante. No existen instrucciones para guardar y restaurar múltiples registros. Se pensaba que eran innecesarios, demasiado complejos y quizás demasiado lentos.<ref name="isa2.1"/> === Acceso a la memoria === Al igual que muchos diseños RISC, RISC-V es una arquitectura de carga y almacenamiento: las instrucciones se dirigen solo a los registros, con las instrucciones de carga y almacenamiento que se transmiten hacia y desde la memoria. La memoria consta de y se trata como bytes de 8 bits, con las palabras en orden [[Endianness|little-endian]]. Se puede acceder a las palabras, hasta el tamaño de registro, con las instrucciones de carga y almacenamiento. Las direcciones de memoria a las que se accede no necesitan estar alineadas a su ancho de palabra, pero los accesos a las direcciones alineadas siempre serán los más rápidos. Como, por ejemplo, las CPU simples pueden implementar accesos no alineados con una emulación de software lenta basada en una interrupción de falla de alineación. RISC-V administra los sistemas de memoria que se comparten entre CPU o [[Hilo (informática)|subprocesos]] al garantizar que un subproceso de ejecución siempre vea sus operaciones de memoria en el orden programado. Pero entre los subprocesos y los dispositivos de E / S, RISC-V se simplifica: no garantiza el orden de las operaciones de memoria, excepto por instrucciones específicas, como la instrucción {{code|fence}}. Una instrucción {{code|fence}} garantiza que los resultados de las operaciones predecesoras sean visibles para las operaciones sucesivas de otros subprocesos o dispositivos de E / S. {{code|fence}} puede garantizar el orden de las combinaciones de memoria y operaciones de E / S asignadas en memoria. Por ejemplo, puede separar las operaciones de lectura y escritura de la memoria, sin afectar las operaciones de E / S. O, si un sistema puede operar dispositivos de E / S en paralelo con la memoria, {{code|fence}} no los obliga a esperarse el uno al otro. Una CPU con un hilo puede decodificar la instrucción {{code|fence}} como {{code|nop}}. Al igual que muchos conjuntos de instrucciones RISC (y algunos [[Complex instruction set computing|conjuntos de instrucciones de computadora de conjuntos de instrucciones complejas]] (CISC), como [[X86|las]] familias [[x86]] y [[IBM S/360|IBM System / 360]] ), RISC-V carece de modos de dirección que escriben en los registros. Por ejemplo, no se incrementa automáticamente. RISC-V es little-endian para parecerse a otras computadoras familiares exitosas, por ejemplo, [[x86]]. Esto también reduce la complejidad de la CPU y los costos ligeramente porque lee todos los tamaños de palabras en el mismo orden. Por ejemplo, el conjunto de instrucciones RISC-V se decodifica comenzando en el byte con la dirección más baja de la instrucción. La especificación deja abierta la posibilidad de sistemas big-endian o bi-endian no estándar. Algunas CPU RISC (como [[MIPS (procesador)|MIPS]] , [[PowerPC]] , [[DLX]] y RISC-I de Berkeley) colocan 16 bits de desplazamiento en las cargas y almacenes. Establecen los 16 bits superiores mediante una instrucción de ''palabra superior de carga''. Esto permite que los valores de media palabra superior se configuren fácilmente, sin cambiar los bits. Sin embargo, la mayoría del uso de la instrucción de media palabra superior hace constantes de 32 bits, como direcciones. RISC-V utiliza una combinación similar a [[Sun SPARC|SPARC]] de compensaciones de 12 bits e instrucciones ''superiores de configuración de'' 20 bits. El desplazamiento más pequeño de 12 bits ayuda a las instrucciones compactas, de carga y almacenamiento de 32 bits a seleccionar dos de los 32 registros, pero aún tienen suficientes bits para admitir la codificación de instrucciones de longitud variable de RISC-V. === Inmediatos === RISC-V maneja constantes de 32 bits y direcciones con instrucciones que establecen los 20 bits superiores de un registro de 32 bits. La instrucción carga superior inmediata {{code|lui}} carga 20 bits en los bits 31 a 12. Otra instrucción, {{code|auipc}} genera los mismos 20 bits de dirección superior agregando un desplazamiento al contador del programa y almacenando el resultado en un registro base. Esto permite que el código independiente de la posición tenga direcciones de 32 bits en relación con el contador del programa. El registro base se puede utilizar como está con las compensaciones de 12 bits de las cargas y los almacenamientos. Si es necesario, {{code|addi}} puede establecer los 12 bits más bajos de un registro. En el ISA de 64 bits, {{code|lui}} y {{code|auipc}} extienden el signo del resultado a 64 bits. Algunas CPU rápidas pueden interpretar combinaciones de instrucciones como instrucciones ''fusionadas'' simples. {{code|lui}} o {{code|auipc}} pueden ser buenos candidatos para fusionarse con cargas o almacenes. === Subrutinas llamadas, saltos y bifurcaciones. === Llamada de subrutina de RISC-V {{code|jal}} (saltar y vincular) coloca su dirección de retorno en un registro. Esto es más rápido en muchos diseños de computadoras, porque ahorra un acceso a la memoria en comparación con los sistemas que empujan una dirección de retorno directamente en una pila en la memoria. La instrucción {{code|jal}} tiene un offset de 20 bits con signo (complemento de 2). El desplazamiento se multiplica por 2 y luego se agrega a la PC para generar una dirección relativa a una instrucción de 32 bits. Si el resultado no está en una dirección de 32 bits (es decir, divisible de manera uniforme por 4), la CPU puede forzar una [[Manejo de excepciones|excepción]]. Las CPU RISC-V saltan a direcciones calculadas utilizando un ''salto y un registro de enlace'' con la instrucción {{code|jalr}}. La instrucción {{code|jalr}} es similar a {{code|jal}}, pero obtiene su dirección de destino agregando un desplazamiento de 12 bits a un registro base. (En contraste, {{code|jal}} agrega una mayor compensación de 20 bits a la PC.) Para {{code|jalr}} el formato de bits es como las cargas y almacenamientos relativos al registro. Como ellos, {{code|jalr}} se pueden usar con las instrucciones que establecen los 20 bits superiores de un registro base para hacer bifurcaciones de 32 bits, ya sea a una dirección absoluta (usando {{code|lui}}) o una PC-relativa (utilizando {{code|auipc}} para el código independiente de la posición). (El uso de una dirección de base cero constante permite realizar llamadas de una sola instrucción a una dirección pequeña (la compensación), positiva o negativa fija.) RISC-V recicla {{code|jal}} y {{code|jalr}} para obtener saltos incondicionales de 20 bits relativos a PC y saltos incondicionales de 12 bits basados en registros. Los saltos solo hacen que se enlace el registro 0 para que no se guarde ninguna dirección de retorno. RISC-V también recicla {{code|jalr}} para retornar de una subrutina: para hacer esto, en {{code|jalr}} el registro base se establece como el registro de vinculación guardado por {{code|jal}} o {{code|jalr}}. En {{code|jalr}} el desplazamiento es cero y el registro de vinculación es cero, de modo que no hay desplazamiento y no se guarda ninguna dirección de retorno. Al igual que muchos diseños RISC, en una llamada de subrutina, un compilador RISC-V debe usar instrucciones individuales para guardar registros en la pila al inicio y luego restaurarlos desde la pila al salir. RISC-V no tiene ''guardar varias'' instrucciones de registro ''múltiple'' o ''restaurar''. Se pensó que esto hacía que la CPU fuera demasiado compleja y posiblemente lenta.<ref name="riscvc"/> Esto puede tomar más espacio de código. Los diseñadores planearon reducir el tamaño del código con las rutinas de la biblioteca para guardar y restaurar registros.<ref name="isacompressed"/> RISC-V no tiene [[Registro de estado|registro de código de condición]] ni bit de acarreo. Los diseñadores creían que los códigos de condición hacen que las CPU rápidas se vuelvan más complejas al forzar las interacciones entre instrucciones en diferentes etapas de ejecución. Esta elección hace que la aritmética de precisión múltiple sea más compleja. Además, algunas tareas numéricas necesitan más energía. En cambio, RISC-V tiene bifurcaciones cortas que realizan comparaciones: igual, no igual, menor que, sin signo menor que, mayor que o igual y sin signo mayor o igual que. Se implementan diez operaciones de comparación de bifurcaciones con solo seis instrucciones, invirtiendo el orden de los operandos en el [[Lenguaje ensamblador|ensamblador]]. Por ejemplo, ''bifurcar si es mayor de lo que'' puede hacerse con ''menor que'' con un orden inverso de operandos. Las bifurcaciones de comparación tienen un rango firmado de doce bits y saltan en relación con la PC. El ISA RISC-V requiere predicciones de bifurcación por defecto para las CPU: debería predecirse ''tomaron'' las bifurcaciones condicionales hacia atrás. Las bifurcaciones condicionales hacia adelante predicen ''no tomadas''. Las predicciones son fáciles de decodificar en una CPU segmentada: las direcciones de las sucursales son números firmados que se agregan a la PC. Las bifurcaciones hacia atrás tienen direcciones de [[complemento a dos]] negativas y, por lo tanto, tienen una en el bit más significativo de la dirección. Las bifurcaciones adelantadas tienen un cero. El bit más significativo se encuentra en una ubicación fija en el código de operación para acelerar la tubería. Las CPU complejas pueden agregar [[Predictor de saltos|predictores de bifurcación]] para que funcionen bien incluso con datos o situaciones inusuales. El manual de ISA recomienda que el software se optimice para evitar paradas de sucursales mediante el uso de las predicciones de sucursales predeterminadas. Esto reutiliza el bit más significativo de la dirección relativa firmada como un ''bit de sugerencia'' para indicar si la bifurcación condicional se tomará o no. Por lo tanto, no se necesitan otros bits de sugerencia en los códigos de operación de las sucursales RISC-V. Esto hace que haya más bits disponibles en los códigos de operación de bifurcación. Las CPU simples y económicas pueden simplemente seguir las predicciones predeterminadas y seguir funcionando bien con la optimización de los compiladores. Los compiladores aún pueden realizar la optimización de la ruta estadística, si lo desea. Para evitar la carga innecesaria de la electrónica de predicción de bifurcación (y, por lo tanto, paradas de tuberías innecesarias), los códigos de bifurcación de comparación nunca deben utilizarse para saltos incondicionales. RISC-V no admite la predicación (la ejecución condicional de las instrucciones) ya que sus diseñadores afirman que las CPU sin predicación son más fáciles de diseñar, y es menos probable que los compiladores de optimización usen la predicación donde no deberían usarse. Los diseñadores afirman que los diseños de CPU fuera de orden muy rápidos hacen predicción de todos modos, al hacer la bifurcación de comparación y el código condicional en paralelo, y luego descartar los efectos de la ruta no utilizada. También afirman que incluso en CPU más simples, la predicción es menos valiosa que la [[Predictor de saltos|predicción de ramificación]] , lo que puede evitar la mayoría de los bloqueos asociados con las ramificaciones condicionales. El código sin predicación es mayor, con más bifurcaciones, pero también afirman que un conjunto de instrucciones comprimidas (como el conjunto ''C de'' RISC-V) resuelve ese problema en la mayoría de los casos. Muchos diseños RISC han incluido una [[Hueco de retardo|ranura de retardo de ramificación]], una posición después de una instrucción de bifurcación que se puede completar con una instrucción que se ejecuta independientemente de que se tome la bifurcación. Esta función puede mejorar el rendimiento de las CPU segmentadas al absorber parte del tiempo perdido si una CPU predice incorrectamente el funcionamiento de una bifurcación condicional y la tubería de la CPU se detiene. RISC-V omite una ranura de retardo de bifurcación porque complica las CPU multiciclo, las CPU superescalar y las tuberías largas. Los [[Predictor de saltos|predictores de ramificación]] dinámica han tenido el éxito suficiente para reducir la necesidad de ramificaciones retrasadas. === Conjuntos aritméticos y lógicos === RISC-V segrega las matemáticas en un conjunto mínimo de instrucciones de [[Número entero|enteros]] (conjunto ''I'' ) con [[Unidad aritmética lógica|suma, resta, cambio, lógica de bits]] y ramas de comparación. Estos pueden simular la mayoría de los otros conjuntos de instrucciones RISC-V con software. (Las instrucciones atómicas son una notable excepción.) RISC-V actualmente carece del ''conteo de cero'' y las operaciones de campo de bits normalmente utilizadas para acelerar el punto flotante del software en un procesador de entero puro. Las instrucciones de multiplicación de enteros (conjunto ''M'' ) incluyen multiplicación y división con signo y sin signo. Se incluyen los números enteros de precisión doble y se divide, como se multiplica y divide que produce la ''palabra alta'' del resultado. El documento ISA recomienda que los implementadores de CPU y compiladores ''fusionen'' una secuencia estandarizada de alta y baja multiplicaciones y dividan las instrucciones en una operación si es posible. Las [[Coma flotante|instrucciones de punto flotante]] (conjunto ''F'' ) incluyen aritmética de precisión simple y también ramas de comparación similares a la aritmética de enteros. Requiere un conjunto adicional de 32 registros de punto flotante. Estos son separados de los registros enteros. Las instrucciones de punto flotante de doble precisión (conjunto ''D'' ) generalmente asumen que los registros de punto flotante son de 64 bits (es decir, ancho doble), y el subconjunto ''F'' se coordina con el conjunto ''D.'' También se define una ISA ( ''Q'' ) de coma flotante de 128 bits de precisión cuádruple. Las computadoras RISC-V sin punto flotante pueden usar una biblioteca de software de punto flotante. RISC-V no causa [[Manejo de excepciones|excepciones]] en los errores aritméticos, incluyendo desbordamiento, subdesbordamiento, subnormal y división por cero. En su lugar, tanto la aritmética de enteros como la de punto flotante producen valores predeterminados razonables y establecen bits de estado. La división por cero puede ser descubierta por una rama después de la división. Los bits de estado se pueden probar mediante un sistema operativo o una interrupción periódica. === Operaciones de memoria atómica === RISC-V admite computadoras que comparten memoria entre varias CPU y [[Hilo (informática)|subprocesos]]. El modelo de consistencia de memoria estándar de RISC-V es la consistencia de la versión. Es decir, las cargas y los almacenes generalmente se pueden reordenar, pero algunas cargas pueden designarse como operaciones de ''adquisición'' que deben preceder a los accesos de memoria posteriores, y algunos almacenamientos se pueden designar como operaciones de ''liberación'' que deben seguir a los accesos de memoria anteriores. El conjunto de instrucciones de la base incluye un soporte mínimo en forma de una {{code|fence}} instrucciones para hacer cumplir la ordenación de la memoria. Aunque esto es suficiente ( {{code|fence r, rw}} proporciona ''adquirir'' y {{code|fence rw, w}} proporciona ''lanzamiento'' ), las operaciones combinadas pueden ser más eficientes. La extensión de operación de memoria atómica admite dos tipos de operaciones de memoria atómica para la consistencia de la versión. En primer lugar se proporcionan las instrucciones ''carga reservada {{code|lr}} '' y ''almacenamiento condicional'' {{code|sc}}. {{code|lr}} realiza una carga e intenta reservar esa dirección para su hilo. Un almacenamiento condicional posterior {{code|sc}} sobre la dirección reservada se realizará solo si la reserva no es interrumpida por un almacenamiento intermedia de otra fuente. Si el almacenamiento tiene éxito, se coloca un cero en un registro. Si falla, un valor distinto de cero indica que el software debe volver a intentar la operación. En cualquier caso, se libera la reserva. El segundo grupo de instrucciones atómicas realiza secuencias de lectura-modificación-escritura : una carga (que opcionalmente es una carga-adquisición) en un registro de destino, una operación entre el valor cargado y un registro de origen y luego una carga reserva del resultado (que puede ser opcionalmente una liberación de almacemiento). Hacer las barreras de memoria opcionales permite combinar las operaciones. Las operaciones opcionales están habilitadas por los bits de ''adquisición'' y ''liberación'' que están presentes en cada instrucción atómica. RISC-V define nueve operaciones posibles: intercambio (use el valor del registro de origen directamente); añadir; bitwise y, o, y exclusivo -o; y mínimo y máximo firmado y sin firmar. Un diseño de sistema puede optimizar estas operaciones combinadas más que {{code|lr}} y {{code|sc}}. Por ejemplo, si el registro de destino para un swap es el cero constante, la carga puede omitirse. Si el valor almacenado no se modifica desde la carga, el almacemiento puede omitirse. El [[IBM System/370|IBM System / 370]] y sus sucesores, incluidos z / Architecture, y [[x86]], implementan un sistema de [[Comparar e intercambiar|comparación e intercambio]] ({{code|cas}}) De instrucciones, que pone a prueba y de forma condicionada actualiza una ubicación en la memoria: si la ubicación contiene un valor esperado de edad, {{code|cas}} lo reemplaza con un nuevo valor dado; luego devuelve una indicación de si realizó el cambio. Sin embargo, una instrucción de tipo de carga simple generalmente se realiza antes del {{code|cas}} para recuperar el valor antiguo. El problema clásico es que si un hilo lee (carga) un valor ''A'' , calcula un nuevo valor ''C'' y luego usa ({{code|cas}}) para reemplazar ''A'' por ''C'' , no tiene forma de saber si la actividad concurrente en otro hilo reemplazó a ''A'' por algún otro valor ''B'' y luego restauró la ''A'' en el medio. En algunos algoritmos (por ejemplo, aquellos en los que los valores en la memoria son punteros a bloques asignados dinámicamente), este problema de ABA puede llevar a resultados incorrectos. La solución más común emplea un ''{{code|cas}} doble ancho. {{code|cas}}'' instrucciones para actualizar tanto el puntero como un contador adyacente; desafortunadamente, tal instrucción requiere un formato de instrucción especial para especificar múltiples registros, realiza varias lecturas y escrituras, y puede tener una operación de bus compleja. El {{code|lr}} / {{code|sc}} La alternativa es más eficiente. Por lo general, solo requiere una carga de memoria, y es deseable minimizar las operaciones de memoria lenta. También es exacto: controla todos los accesos a la celda de memoria, en lugar de solo asegurar un patrón de bits. Sin embargo, a diferencia de {{code|cas}} {{code|cas}} , puede permitir [[Bloqueo mutuo|Livelock]] , en el que dos o más subprocesos repetidamente hacen que las instrucciones del otro falle. RISC-V garantiza el progreso hacia adelante (no Livelock) si el código sigue las reglas sobre el tiempo y la secuencia de instrucciones: 1) Debe usar solo el subconjunto ''I.'' 2) Para evitar las fallas de caché repetitivas, el código (incluido el ciclo de reintento) no debe ocupar más de 16 instrucciones consecutivas. 3) No debe incluir instrucciones de sistema o cerca, o ramas tomadas hacia atrás entre los {{code|lr}} y {{code|sc}}. 4) La rama hacia atrás al bucle de reintento debe ser a la secuencia original. La especificación proporciona ejemplos de cómo usar este subconjunto para bloquear una estructura de datos. === Subconjunto comprimido === El estándar RISC-V ISA especifica que todas las instrucciones son de 32 bits. Esto hace que para una implementación particularmente simple, pero al igual que otros procesadores RISC con tal codificación de instrucciones, resulta en un tamaño de código mayor que en otros conjuntos de instrucciones. Para compensar, instrucciones de ''32 bits'' del RISC-V son en realidad 30 bits; <span class="frac nowrap"><sup><sub>3/4</sub></sup></span> de la [[Código de operación|opcode]] espacio está reservado para un conjunto de instrucciones opcional (pero recomendado) de longitud variable ''comprimido,'' RVC, que incluye instrucciones de 16 bits. Al igual que ARM's Thumb y el MIPS16, las instrucciones comprimidas son simplemente alias para un subconjunto de las instrucciones más grandes. A diferencia del conjunto comprimido ARM's Thumb o MIPS, el espacio se reservó desde el principio para que no haya un modo de operación separado. Las instrucciones estándar y comprimidas se pueden mezclar libremente. (letra ''C'' ) Debido a que (como Thumb-1 y MIPS16) las instrucciones comprimidas son simplemente codificaciones alternativas (alias) para un subconjunto seleccionado de instrucciones más grandes, la compresión puede implementarse en el ensamblador, y no es esencial que el compilador lo sepa. Se probó un prototipo de RVC en 2011. El código del prototipo era un 20% más pequeño que un PC [[x86]] y un código comprimido [[MIPS (procesador)|MIPS]], y un 2% más grande que el código [[Arquitectura ARM|ARM]] [[Arquitectura ARM|Thumb-2]]. También redujo sustancialmente tanto la memoria caché necesaria como el uso de energía estimado del sistema de memoria. El investigador pretendía reducir el tamaño binario del código para computadoras pequeñas, especialmente [[Sistema embebido|sistemas informáticos]] integrados. El prototipo incluyó 33 de las instrucciones utilizadas con mayor frecuencia, recodificadas como formatos compactos de 16 bits utilizando códigos de operación previamente reservados para el conjunto comprimido. La compresión se realizó en el [[Lenguaje ensamblador|ensamblador]], sin cambios en el compilador. Las instrucciones comprimidas omitieron los campos que a menudo son cero, utilizaron valores inmediatos pequeños o subconjuntos accedidos (16 u 8) de los registros. {{code|addi}} Es muy común y a menudo compresible. Gran parte de la diferencia de tamaño en comparación con el conjunto de ARM Thumb se produjo porque RISC-V, y el prototipo, no tienen instrucciones para guardar y restaurar registros múltiples. En cambio, el compilador generó instrucciones convencionales que acceden a la pila. El prototipo del ensamblador RVC a menudo los convertía en formas comprimidas que tenían la mitad del tamaño. Sin embargo, esto todavía tomó más espacio de código que las instrucciones ARM que guardan y restauran múltiples registros. El investigador propuso modificar el compilador para llamar a las rutinas de la biblioteca para guardar y restaurar registros. Estas rutinas tienden a permanecer en un caché de código y, por lo tanto, se ejecutan rápidamente, aunque probablemente no tan rápido como una instrucción de guardar varios. === Subconjunto incorporado === Un conjunto de instrucciones para las CPU ''incorporadas'' más pequeñas (conjunto E) se reduce de otras maneras: solo se admiten 16 de los registros de enteros de 32 bits. Las instrucciones de punto flotante no se deben admitir (la especificación lo prohíbe por ser poco rentable), por lo que se debe usar una biblioteca de software de punto flotante. Se recomienda el conjunto comprimido ''C.'' El conjunto de instrucciones privilegiadas solo admite el modo de máquina, el modo de usuario y los esquemas de memoria que utilizan la reubicación de direcciones de base y límite.<ref name="priv-isa"/> Se ha producido una discusión para un perfil de microcontrolador para RISC-V, para facilitar el desarrollo de [[Sistema embebido|sistemas]] profundamente [[Sistema embebido|integrados]]. Se centra en un soporte de lenguaje C más rápido y simple para interrupciones, modos de seguridad simplificados y una interfaz binaria de aplicación [[POSIX]] simplificada.<ref>{{Cita web|url=https://github.com/emb-riscv/specs-markdown/blob/master/README.md|título=The RISC-V Microcontroller Profile|fechaacceso=5 de abril de 2018|apellido=Ionescu|nombre=Liviu|sitioweb=Github}}</ref> Los corresponsales también han propuesto ISA ''RV16E de'' 16 bits más pequeñas, no estándar: Se utilizarían registros enteros de 16 × 16 bits, utilizando las ISA ''EIMC'' estándar (incluidas las instrucciones de 32 bits). )<ref>{{Cita web|url=https://groups.google.com/a/groups.riscv.org/forum/#!msg/isa-dev/SrujNcNc8RA/uTnndiPaAgAJ|título=Proposal: RV16E|fechaacceso=2 de abril de 2018|apellido=Barros|nombre=Cesar|sitioweb=Google Groups, RISC-V ISA Dev|editorial=Google}}</ref> Otra propuesta solo usaría las instrucciones ''C'' de 16 bits con registros de 8 × 16 bits. Se dijo que un RV16EG completo era posible con una ISA completamente recodificada.<ref>{{Cita web|url=https://groups.google.com/a/groups.riscv.org/forum/#!searchin/isa-dev/16-bit/isa-dev/iK3enKGb5bw/cuVAq0J8EAAJ|título=Proposal: Xcondensed, [a] ... Compact ... 16 bit standalone G-ISA|fechaacceso=10 de noviembre de 2016|apellido=Brussee|nombre=Rogier|sitioweb=RISC-V ISA Mail Server|editorial=Google Groups}}</ref> === Conjunto de instrucciones privilegiadas === ISA de RISC-V incluye una especificación de conjunto de instrucciones privilegiadas independiente, que describe principalmente tres niveles de privilegios más un modo de hipervisor ortogonal. A partir de julio {{As of|2021|12}}, la versión 1.12 está ratificada por RISC-V International.<ref name=priv-isa/> # Sistemas que solo tienen ''modo de máquina'' , tal vez para [[Sistema embebido|sistemas embebidos]] , # Sistemas con modo de máquina (para el supervisor ) y modo de usuario, tal vez para implementar [[Linux]]. # Sistemas con modo máquina, [[hipervisor]]es, supervisores múltiples y modos de usuario bajo cada supervisor. Estos corresponden aproximadamente a sistemas con hasta cuatro ''anillos'' de privilegio y seguridad, como máximo: máquina, hipervisor, supervisor y usuario. También se espera que cada capa tenga una capa delgada de software de soporte estandarizado que se comunique con una capa o hardware más privilegiado. El plan general para esta ISA es hacer que el modo hipervisor sea [[Ortogonalidad (matemáticas)|ortogonal]] a los modos de usuario y supervisor.<ref>{{Cita web|url=https://groups.google.com/a/groups.riscv.org/forum/#!msg/isa-dev/SfEDPLU0NU4/WpAE_A4OBQAJ|título=Proposal for Virtualization without H mode|fechaacceso=24 de febrero de 2017|apellido=Bonzini|nombre=Paolo|sitioweb=Google Groups, RISC-V ISA Dev.|editorial=RISC-V Foundation}}</ref> La característica básica es un bit de configuración que permite que el código de nivel de supervisor acceda a los registros del hipervisor o que cause una interrupción en los accesos. Este bit permite que el modo supervisor maneje directamente el hardware que necesita un hipervisor. Esto simplifica un hipervisor de tipo 2, alojado por un sistema operativo. Este es un modo popular para ejecutar computadoras a escala de almacén. Para admitir los hipervisores tipo 1, sin publicar, el bit puede hacer que estos accesos se interrumpan a un hipervisor. El bit simplifica el anidamiento de hipervisores, en el que un hipervisor se ejecuta bajo un hipervisor. También se dice que simplifica el código de supervisor al permitir que el kernel use sus propias características de hipervisor con su propio código de kernel. Como resultado, la forma de hipervisor de la ISA admite cinco modos: máquina, supervisor, usuario, supervisor bajo hipervisor y usuario bajo hipervisor. La especificación de conjunto de instrucciones privilegiadas define explícitamente los ''[[Hilo (informática)|hilos de]] hardware'' o ''harts''. Múltiples hilos de hardware son una práctica común en computadoras más grandes y más potentes. Cuando un hilo se detiene, a la espera de memoria, otros pueden continuar. Los hilos de hardware pueden ayudar a hacer un mejor uso de la gran cantidad de registros y unidades de ejecución en CPU grandes. Finalmente, los subprocesos de hardware pueden ser una forma simple y poderosa de manejar [[Interrupción|interrupciones]] : no es necesario guardar ni restaurar registros, simplemente ejecutando un subproceso de hardware diferente. El único hilo de hardware requerido en una computadora RISC-V es el hilo cero. Las definiciones de registro de control y estado existentes admiten las excepciones de error y memoria de RISC-V, y un pequeño número de interrupciones. Para sistemas más grandes, la especificación también define un controlador de interrupción. Las interrupciones siempre comienzan en el nivel de máquina con el privilegio más alto, y los registros de control de cada nivel tienen bits de ''reenvío'' explícitos para encaminar las interrupciones a un código con menos privilegios. Por ejemplo, el hipervisor no necesita incluir software que se ejecute en cada interrupción para reenviar una interrupción a un sistema operativo. En su lugar, en la configuración, puede establecer bits para reenviar la interrupción. Varios sistemas de memoria son compatibles con la especificación. Físico solo es adecuado para los [[Sistema embebido|sistemas embebidos]] más pequeños. También hay tres [[Unix|sistemas de]] [[Memoria virtual|memoria virtual de]] estilo [[UNIX]] para la memoria caché en sistemas de almacenamiento masivo. Los sistemas de memoria virtual tienen tres tamaños, con direcciones de 32, 39 y 48 bits. Todos los sistemas de memoria virtual son compatibles con 4. Las páginas de KiB, los árboles de tablas de páginas de niveles múltiples y utilizan algoritmos muy similares para recorrer los árboles de tablas de páginas. Todos están diseñados para la tabla de páginas de hardware o software. Para reducir opcionalmente el costo de las caminatas en la tabla de páginas, las páginas de gran tamaño pueden ser páginas de hoja en niveles más altos del árbol de tabla de páginas de un sistema. SV32 tiene un árbol de tabla de páginas de dos capas y admite 4 Superpáginas de mib SV39 tiene una tabla de páginas de tres niveles, y soporta 2 Superpages mib y 1 GiB gigapages. Se requiere SV48 para soportar SV39. También tiene una tabla de páginas de 4 niveles y soporta 2 Superpages MiB, 1 Gigapages GiB, y 512 GiB terapages. Las súper páginas se alinean en los límites de la página para el siguiente tamaño más bajo de página. === Manipulación de bits === Se realizó un trabajo sustancial para producir una ISA preliminar (aunque no aprobada) de manipulación de bits (B) para RISC-V. Hecho bien, un subconjunto de manipulación de bits puede ayudar a las operaciones criptográficas, gráficas y matemáticas. Los criterios de inclusión documentados en el borrador fueron el cumplimiento con las filosofías RV5 y los formatos ISA, mejoras sustanciales en la densidad o velocidad del código (es decir, al menos una reducción de instrucciones de 3 por 1), y aplicaciones sustanciales en el mundo real, incluido el compilador preexistente apoyo. La versión 0.36 incluyó<ref>{{Cita web|url=https://github.com/cliffordwolf/xbitmanip/blob/master/xbitmanip-draft.pdf|título=Bit Manipulation for RISC-V, Draft|apellido=Wolf|nombre=Clifford|sitioweb=Github|editorial=Clifford Wolf}}</ref> instrucciones no controvertidas para contar ceros iniciales, contar un bit, realizar {{code|and}} con complemento, desplazar unos, rotar, un bit invertido y aleatorio generalizados, intercambios de bytes, extractos y depósitos de bits y algunas adiciones de manipulación de bits para el conjunto comprimido ({{code|not}}, {{code|neg}} y {{code|reverse}}). También incluye una propuesta controvertida para la extracción y colocación de campos de bits, utilizando un formato de instrucción de 48 bits no estándar. === Empaquetado SIMD === Para sistemas RISC-V simples y con costos reducidos, hay una propuesta para utilizar los bits de los registros de punto flotante para realizar la instrucción aritmética de la sub-palabra de instrucción simple paralela, datos múltiples ([[SIMD]]). Esto se usa ampliamente para acelerar el [[Procesamiento digital de señales|procesamiento]] multimedia y de otras [[Procesamiento digital de señales|señales digitales]]. A partir de 2016 {{As of|2016}}, esta ISA no está definida, pero podría parecerse a las instrucciones multimedia de PA-RISC: extensiones de aceleración multimedia. Además de su matemática nativa de 64 bits, la CPU PA-RISC MAX2 podría hacer aritmética en cuatro subpuntos de 16 bits a la vez, con varios métodos de desbordamiento. También podría mover subwords a diferentes posiciones. El MAX2 de PA-RISC se simplificó intencionalmente. Carecía de soporte para subwords de 8 bits o de 32 bits. Se seleccionó el tamaño de la subpuesta de 16 bits para admitir la mayoría de las tareas de procesamiento de señales digitales. Estas instrucciones eran económicas de diseñar y construir. Sin embargo, aumentaron el rendimiento de la CPU en las tareas de procesamiento de señal digital en 48 veces o más, lo que permitió la creación de [[Códec|códecs de]] video en tiempo real en 1995.<ref name="lee64bit">{{Cita publicación|url=http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=501762&tag=1|título=64-bit and Multimedia Extensions in the PA-RISC 2.0 Architecture|enlaceautor=Ruby B. Lee|apellidos2=Huck|nombre2=Jerry|fecha=25 de febrero de 1996|publicación=Proceedings of Compcon 96|páginas=152–160|fechaacceso=21 de septiembre de 2014}}</ref><ref name="leeaccel">{{Cita publicación|url=https://www.princeton.edu/~rblee/HPpapers/accelMultimediawEnhancedMicroproc.pdf|título=Accelerating Multimedia with Enhanced Microprocessors|enlaceautor=Ruby B. Lee|fecha=April 1995|publicación=IEEE Micro|volumen=15|número=2|páginas=22–32|fechaacceso=21 de septiembre de 2014|doi=10.1109/40.372347}}</ref> === Conjunto de vectores === El conjunto de instrucciones de procesamiento de vectores propuesto puede hacer que el conjunto SIMD empaquetado quede obsoleto. Los diseñadores esperan tener la flexibilidad suficiente para que una CPU pueda implementar instrucciones vectoriales en los registros de un procesador estándar. Esto permitiría implementaciones mínimas con un rendimiento similar a un ISA multimedia, como se indicó anteriormente. Sin embargo, un verdadero [[Procesador vectorial|coprocesador vectorial]] podría ejecutar el mismo código con un mayor rendimiento.<ref name="vect">{{Cita web|url=https://riscv.org/wp-content/uploads/2015/06/riscv-vector-workshop-june2015.pdf|título=RISC-V Vector Extension Proposal|fechaacceso=14 de marzo de 2016|apellido=Schmidt|nombre=Colin|sitioweb=RISC-V|editorial=Regents of the University of California}}</ref> A partir del 29 {{As of|2015|06|29}} {{As of|2015|06|29}} {{As of|2015|06|29}} {{As of|2015|06|29}} {{As of|2015|06|29}}, la propuesta de procesamiento de vectores es un diseño conservador y flexible de un [[Procesador vectorial|procesador de vectores de]] precisión mixta de propósito general, adecuado para ejecutar núcleos informáticos. El código se trasladaría fácilmente a las CPU con diferentes longitudes de vectores, idealmente sin recompilar. En contraste, las extensiones SIMD de vector corto son menos convenientes. Estos se utilizan en [[x86]], [[Arquitectura ARM|ARM]] y [[PA-RISC]]. En estos, un cambio en el ancho de palabra fuerza un cambio en el conjunto de instrucciones para expandir los registros vectoriales (en el caso de x86, de registros [[MMX]] de 64 bits a [[SSE|Extensiones SIMD de transmisión de]] 128 bits (SSE), a 256 bits [[Extensiones Vectoriales Avanzadas|Avanzado) Extensiones de vectores]] (AVX), y AVX-512). El resultado es un conjunto de instrucciones en crecimiento y la necesidad de adaptar el código de trabajo a las nuevas instrucciones. En el vector ISA de RISC-V, en lugar de fijar la longitud del vector en la arquitectura, una instrucción ({{code|setvl}} está disponible, que toma un tamaño solicitado y establece la longitud del vector al mínimo del límite de hardware y el tamaño solicitado. Por lo tanto, la propuesta RISC-V es más como el diseño de vector largo de [[Cray-1|Cray]]. Es decir, cada vector en hasta 32 vectores tiene la misma longitud. La aplicación especifica el ancho total del vector que requiere, y el procesador determina la longitud del vector que puede proporcionar con los recursos disponibles en el chip. Esto toma la forma de una instrucción ({{code|vsetcfg}}) con cuatro operandos inmediatos, especificando el número de registros vectoriales de cada ancho disponible necesario. El total no debe ser mayor que el límite direccionable de 32, pero puede ser menor si la aplicación no los requiere a todos. La longitud del vector está limitada por el almacenamiento en chip disponible dividido por la cantidad de bytes de almacenamiento necesarios para cada entrada. (También pueden existir límites de hardware adicionales, que a su vez pueden permitir implementaciones de estilo SIMD. ) Fuera de los bucles vectoriales, la aplicación puede solicitar registros de vector cero, ahorrando al sistema operativo el trabajo de preservarlos en los [[Cambio de contexto|cambios de contexto]]. La longitud del vector no solo es variable arquitectónicamente, sino que también está diseñada para variar en el tiempo de ejecución. Para lograr esta flexibilidad, es probable que el conjunto de instrucciones utilice rutas de datos de ancho variable y operaciones de tipo variable que utilizan la sobrecarga polimórfica. El plan es que estos pueden reducir el tamaño y la complejidad de la ISA y el compilador. Los procesadores de vectores experimentales recientes con rutas de datos de ancho variable también muestran aumentos rentables en las operaciones por: segundo (velocidad), área (menor costo) y vatios (mayor duración de la batería).<ref>{{Cita web|url=http://www.eecs.berkeley.edu/~yunsup/papers/hwacha-mvp-prism2014.pdf|título=A Case for MVPs: Mixed-Precision Vector Processors|fechaacceso=14 de marzo de 2016|apellido=Ou|nombre=Albert|sitioweb=UC Berkeley EECS|editorial=Regents of the University of California|urlarchivo=https://web.archive.org/web/20160315090613/http://www.eecs.berkeley.edu/~yunsup/papers/hwacha-mvp-prism2014.pdf|fechaarchivo=15 de marzo de 2016}}</ref> A diferencia de una [[Unidad de procesamiento gráfico|unidad de procesamiento de gráficos]] moderna típica, no hay planes de proporcionar hardware especial para soportar la predicción de sucursales. En su lugar, se utilizará una predicción basada en compilador de menor costo.<ref>{{Cita web|url=http://www.eecs.berkeley.edu/~yunsup/papers/predication-micro2014.pdf|título=Exploring the Design Space of SPMD Divergence Management on Data-Parallel Architectures|fechaacceso=14 de marzo de 2016|apellido=Lee|nombre=Yunsup|sitioweb=Berkeley's EECS Site|editorial=Regents of the University of California|urlarchivo=https://web.archive.org/web/20141114211123/http://www.eecs.berkeley.edu/~yunsup/papers/predication-micro2014.pdf|fechaarchivo=14 de noviembre de 2014}}</ref> === Sistema de depuración externa === Hay una especificación preliminar para el [[depurador]] asistido por hardware de RISC-V. El depurador utilizará un sistema de transporte como Joint Test Action Group ([[JTAG]]) o Universal Serial Bus ([[Universal Serial Bus|USB]]) para acceder a los registros de depuración. Una interfaz de depuración de hardware estándar puede admitir una ''interfaz abstracta estandarizada'' o la ''alimentación de instrucciones''.<ref name="debug">{{Cita web|url=https://docs.google.com/presentation/d/1x53gVvPrDWEYq3omqLUpJBHU594zidDvoIg42mUzHvM/edit#slide=id.p|título=RISC-V Run Control Debug|fechaacceso=20 de enero de 2017|apellido=Bradbury|nombre=Alex|sitioweb=Google Docs|editorial=RISC-V Foundation}}</ref><ref>{{Cita web|url=https://groups.google.com/a/groups.riscv.org/forum/#!topic/debug/FDmZUk7YCNw|título=RISC-V Debug Group > poll results|fechaacceso=20 de enero de 2017|apellido=Newsome|nombre=Tim|sitioweb=Google Groups, RISC-V Debug Group|editorial=RISC-V Foundation}}</ref> A partir de enero {{As of|2017|01}} {{As of|2017|01}} {{As of|2017|01}}, la forma exacta de la ''interfaz abstracta'' permanece indefinida, pero las propuestas incluyen un sistema mapeado en memoria con direcciones estandarizadas para los registros de dispositivos de depuración o un registro de comando y un registro de datos accesibles al sistema de comunicación. Los corresponsales afirman que la interfaz de modo de depuración en segundo plano (BDM) de [[Freescale]] utiliza sistemas similares para algunas CPU, [[Arquitectura ARM|ARM]], [[OpenRISC]] y [[LEON]] de Aeroflex. En la ''alimentación de instrucciones'', la CPU procesará una excepción de depuración para ejecutar instrucciones individuales escritas en un registro. Esto puede complementarse con un registro de paso de datos y un módulo para acceder directamente a la memoria. La alimentación de instrucciones le permite al depurador acceder a la computadora exactamente como lo haría el software. También minimiza los cambios en la CPU y se adapta a muchos tipos de CPU. Se dijo que esto era especialmente apto para RISC-V porque está diseñado explícitamente para muchos tipos de computadoras. El registro de paso de datos permite a un depurador escribir un bucle de movimiento de datos en la RAM, y luego ejecutar el bucle para mover los datos dentro o fuera de la computadora a una velocidad cercana a la velocidad máxima del canal de datos del sistema de depuración. Los corresponsales dicen que los sistemas similares son utilizados por [[MIPS Technologies]] [[MIPS (procesador)|MIPS]], Intel Quark, Tensilica 's Xtensa , y por [[Freescale]] potencia CPU' interfaz de modo de fondo de depuración (BDM). == Véase también == * [[Hardware libre]] == Referencias == {{listaref|2|refs= <ref name="contributors">{{cite web |url = https://riscv.org/contributors/ |title = Contributors |website = riscv.org |publisher = Regents of the University of California |access-date = 2014-08-25 |archive-url = https://web.archive.org/web/20180907044920/https://riscv.org/contributors/ |archive-date = 2018-09-07}}</ref> <ref name="isa2.1">{{cite web |last1 = Waterman |first1 = Andrew |last2 = Asanović |first2 = Krste |title = The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.1 |id = EECS-2016-118 |url = https://www2.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-118.pdf |date = 31 May 2016 |publisher = University of California, Berkeley |access-date = 2021-11-05}}</ref> <ref name="isa2.2">{{cite web |last1 = Waterman |first1 = Andrew |last2 = Asanović |first2 = Krste |title = The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.2 |url = https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf |date = 7 May 2017 |publisher = RISC-V International |access-date = 2021-11-05}}</ref> <ref name="isa20191213">{{cite web |editor1-last = Waterman |editor1-first= Andrew |editor2-last = Asanović |editor2-first= Krste |title = The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 20191213 |url = https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf |date = December 2019 |publisher = RISC-V Foundation |access-date = 2021-11-05}}</ref> <ref name=priv-isa>{{Cite web |last1 = Waterman |first1 = Andrew |last2 = Asanović |first2 = Krste |title = The RISC-V Instruction Set Manual Volume II: Privileged Architecture Document Version 20211203 |url = https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf |date = 2021-12-03 |publisher = RISC-V International |access-date = 2021-11-05}}</ref> <ref name="isacompressed">{{cite web |url = https://riscv.org/wp-content/uploads/2015/11/riscv-compressed-spec-v1.9.pdf |title = The RISC-V Compressed Instruction Set Manual Version 1.9 (draft) |last = Waterman |first = Andrew |display-authors = etal |website = RISC-V |access-date = 2016-07-18}}</ref> <ref name="isasbfree">{{cite web |url=https://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-146.pdf |title=Conjuntos de instrucción Tendrían que Ser Libres: El Caso Para RISC-V |last=Asanović |first=Krste |website=U.C. Berkeley Technical Reports |publisher=Regents of the University of California |access-date=2016-11-15}}</ref> <ref name="riscstart">{{cite journal |last1 = Patterson |first1 = David A. |last2 = Ditzel |first2 = David R. |title = The Case for the Reduced Instruction Set Computer |journal = ACM SIGARCH Computer Architecture News |date = October 1980 |volume = 8 |issue = 6 |page = 25 |doi = 10.1145/641914.641917| s2cid = 12034303}}</ref> <ref name="amber">{{cite web |title = Amber ARM-compatible core |url = http://opencores.org/project,amber |website = OpenCores |access-date = 2014-08-26}}</ref> <ref name="arm4u">{{cite web |title = ARM4U |url = http://opencores.org/project,arm4u |website = OpenCores |access-date = 2014-08-26}}</ref> <ref name="rocketsspeed">{{cite web |title = Rocket Core Generator |url = https://riscv.org/download.html#tab_rocket |website = RISC-V |publisher = Regents of the University of California |access-date = 2014-10-01 |archive-url = https://web.archive.org/web/20141006085238/https://riscv.org/download.html#tab_rocket |archive-date= 2014-10-06}}</ref> <ref name="riscvc">{{cite book |last = Waterman |first = Andrew |title = Improving Energy Efficiency and Reducing Code Size with RISC-V Compressed |date = 13 May 2011 |publisher = Regents of the University of California |location = U.C. Berkeley |page = 32 |url = http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-63.html |access-date = 2014-08-25}}</ref> <ref name="shakti">{{cite web |title = SHAKTI Processor Program |url = https://shakti.org.in |publisher = Indian Institute of Technology Madras | access-date = 2019-09-03}}</ref> <ref name="iitmadrasospp">{{cite web |title = IIT Madras Open Source Processor Project |url = http://www.rapidio.org/2014/08/iit-madras-open-source-processor-project/ |website = Rapid IO |date = 2014-08-26 |publisher = IIT Madras |access-date = 2014-09-13 |archive-date = 2014-09-14 |archive-url=https://web.archive.org/web/20140914001234/http://www.rapidio.org/2014/08/iit-madras-open-source-processor-project</ref> <ref name="lowrisc">{{cite web |title = lowRISC website |url = https://www.lowrisc.org/ |access-date = 10 May 2015}}</ref> <ref name="freebsdriscv-committed">{{cite web |url = https://freebsdfoundation.blogspot.be/2016/02/initial-freebsd-risc-v-architecture.html |title = FreeBSD Foundation: Initial FreeBSD RISC-V Architecture Port Committed |date = 2016-02-04}}</ref> <ref name="freebsdriscv">{{cite web |url = https://wiki.freebsd.org/riscv |title = riscv - FreeBSD Wiki |website = wiki.freebsd.org}}</ref>}} == Bibliografía == * {{Cita web|url=https://riscv.org/technical/specifications/|título=Especificaciones de la arquitectura RISC-V}} * {{Cita web|url= https://www.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-118.pdf|título=Manual del juego de Instrucciones RISC-V|publisher = RISC-V International}} * {{cite web|url=https://www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-146.html|title=Conjuntos de instrucción Tendrían que Ser Libres: El Caso Para RISC-V|last1=Asanović|first1=Krste|last2=Patterson|first2=David A.|date=6 de Agosto de 2014|id=UCB/EECS-2014-146|website=EECS Departamento, Universidad de California, Berkeley}} * {{cite conference|url=https://www.hotchips.org/wp-content/uploads/hc_archives/hc25/HC25-posters/HC25.26.p70-RISC-V-Warterman-UCB.pdf|title=The RISC-V Instruction Set|last1=Waterman|first1=Andrew|last2=Lee|first2=Yunsup|last3=Avizienis|first3=Rimas|last4=Cook|first4=Henry|last5=Patterson|first5=David A.|last6=Asanović|first6=Krste|date=25–27 August 2013|conference=Hot Chips 25|conference-url=https://www.hotchips.org/archives/2010s/hc25/|location=Stanford University, Palo Alto, California, USA|fechaacceso=15 de junio de 2024|fechaarchivo=6 de agosto de 2020|urlarchivo=https://web.archive.org/web/20200806171931/https://www.hotchips.org/wp-content/uploads/hc_archives/hc25/HC25-posters/HC25.26.p70-RISC-V-Warterman-UCB.pdf|deadurl=yes}} * {{cite conference|url=https://riscv.org/wp-content/uploads/2015/02/riscv-software-toolchain-tutorial-hpca2015.pdf|title=RISC-V Software Ecosystem|last=Dabbelt|first=Palmer|date=7–11 February 2015|conference=High-Performance Computer Architecture (HPCA) 2015|conference-url=http://darksilicon.org/hpca/|location= San Francisco, California, USA}} * {{cite conference|url=https://riscv.org/wp-content/uploads/2015/02/riscv-rocket-chip-generator-tutorial-hpca2015.pdf|title=RISC-V "Rocket Chip" SoC Generator in Chisel|last=Lee|first=Yunsup|date=7–11 February 2015|conference=High-Performance Computer Architecture (HPCA) 2015|conference-url=http://darksilicon.org/hpca/|location= San Francisco, California, USA}} * {{cite web|url =https://riscv.org/wp-content/uploads/2015/11/riscv-compressed-spec-v1.9.pdf|title=The RISC-V Compressed Instruction Set Manual Version 1.9 (draft)|last1=Waterman|first1=Andrew|last2=Lee|first2=Yunsup|last3=Patterson|first3=David A.|last4=Asanović|first4=Krste|date=2015-11-05|website=RISC-V}} * {{cita libro | apellido=Patterson | nombre=David | apellido2=Waterman | nombre2=Andrew | enlaceautor=David_A._Patterson | título=Guía Práctica de RISC-V: El Atlas de una Arquitectura Abierta | url=http://riscvbook.com/espanol/ | año=2018| isbn=978-0-9992491-2-3| páginas=215 |traductores= Alí Lemus, Eduardo Corpeño }} <div class="cx-template-editor-source-container" lang="en" dir="ltr" style="display: none;"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="Formats a citation to a website using the provided information such as URL and title. Used only for sources that are not correctly described by the specific citation templates for books, journals, news sources, etc.">Cita web</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="url" class="cx-template-editor-param-key">URL</span></div><div class="cx-template-editor-param-value" data-key="url" style="position: relative;"><nowiki>https://riscv.org/wp-content/uploads/2015/11/riscv-compressed-spec-v1.9.pdf</nowiki></div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">The RISC-V Compressed Instruction Set Manual Version 1.9 (draft)</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Waterman</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Andrew</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="date" class="cx-template-editor-param-key">Source date</span></div><div class="cx-template-editor-param-value" data-key="date" style="position: relative;">5 November 2015</div></div></div></div> == Enlaces externos == * <span class="url">[https://riscv.org/ Sitio web oficial]</span>{{Official website}} * "RISC-V: Un Estándar Abierto para SoCs: El caso para un abierto ISA". {{Cita web|url=https://www.eetimes.com/author.asp?doc_id=1323406|título=RISC-V: An Open Standard for SoCs: The case for an open ISA|fecha=8 de julio de 2014|sitioweb=EETimes}} 8 de julio de 2014. <div class="cx-template-editor-source-container" lang="en" dir="ltr" style="display: none;"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="Formats a citation to a website using the provided information such as URL and title. Used only for sources that are not correctly described by the specific citation templates for books, journals, news sources, etc.">Cita web</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="url" class="cx-template-editor-param-key">URL</span></div><div class="cx-template-editor-param-value" data-key="url" style="position: relative;">https://www.eetimes.com/author.asp?doc_id=1323406</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">RISC-V: An Open Standard for SoCs: The case for an open ISA</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="date" class="cx-template-editor-param-key">Source date</span></div><div class="cx-template-editor-param-value" data-key="date" style="position: relative;">8 July 2014</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="website" class="cx-template-editor-param-key">Website</span></div><div class="cx-template-editor-param-value" data-key="website" style="position: relative;">EETimes</div></div></div></div> * Hruska, Joel (21 de agosto de 2014) "RISC cabalga de nuevo: La nueva arquitectura RISC-V espera luchar contra ARM y x86 por ser totalmente código abierto"{{Cita web|url=https://www.extremetech.com/computing/188405-risc-rides-again-new-risc-v-architecture-hopes-to-battle-arm-and-x86-by-being-totally-open-source|título=RISC rides again: New RISC-V architecture hopes to battle ARM and x86 by being totally open source|apellido=Hruska|nombre=Joel|fecha=21 de agosto de 2014|editorial=ExtremeTech}} <div class="cx-template-editor-source-container" lang="en" dir="ltr" style="display: none;"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="Formats a citation to a website using the provided information such as URL and title. Used only for sources that are not correctly described by the specific citation templates for books, journals, news sources, etc.">Cita web</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="url" class="cx-template-editor-param-key">URL</span></div><div class="cx-template-editor-param-value" data-key="url" style="position: relative;"><nowiki>https://www.extremetech.com/computing/188405-risc-rides-again-new-risc-v-architecture-hopes-to-battle-arm-and-x86-by-being-totally-open-source</nowiki></div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">RISC rides again: New RISC-V architecture hopes to battle ARM and x86 by being totally open source</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Hruska</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Joel</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="date" class="cx-template-editor-param-key">Source date</span></div><div class="cx-template-editor-param-value" data-key="date" style="position: relative;">21 August 2014</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="publisher" class="cx-template-editor-param-key">Publisher</span></div><div class="cx-template-editor-param-value" data-key="publisher" style="position: relative;">[[ExtremeTech]]</div></div></div></div> * "Analizando la conjunto de instrucciones del RISC-V". {{Cita web|url=http://www.adapteva.com/andreas-blog/analyzing-the-risc-v-instruction-set-architecture/|título=Analyzing the RISC-V Instruction Set Architecture|fecha=11 de agosto de 2014|sitioweb=Adapteva}} 11 de agosto de 2014. <div class="cx-template-editor-source-container" lang="en" dir="ltr" style="display: none;"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="Formats a citation to a website using the provided information such as URL and title. Used only for sources that are not correctly described by the specific citation templates for books, journals, news sources, etc.">Cita web</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="url" class="cx-template-editor-param-key">URL</span></div><div class="cx-template-editor-param-value" data-key="url" style="position: relative;"><nowiki>http://www.adapteva.com/andreas-blog/analyzing-the-risc-v-instruction-set-architecture/</nowiki></div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">Analyzing the RISC-V Instruction Set Architecture</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="date" class="cx-template-editor-param-key">Source date</span></div><div class="cx-template-editor-param-value" data-key="date" style="position: relative;">11 August 2014</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="website" class="cx-template-editor-param-key">Website</span></div><div class="cx-template-editor-param-value" data-key="website" style="position: relative;">[[Adapteva]]</div></div></div></div> * "Búsqueda: RISC-V desde entonces 2013". {{Cita web|url=https://scholar.google.com.au/scholar?q=%22RISC-V%22&btnG=&hl=en&as_sdt=0%2C5&as_ylo=2013|título=search: RISC-V since 2013|sitioweb=[[Google Scholar]]}}. <div class="cx-template-editor-source-container" lang="en" dir="ltr" style="display: none;"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="Formats a citation to a website using the provided information such as URL and title. Used only for sources that are not correctly described by the specific citation templates for books, journals, news sources, etc.">Cita web</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="url" class="cx-template-editor-param-key">URL</span></div><div class="cx-template-editor-param-value" data-key="url" style="position: relative;">https://scholar.google.com.au/scholar?q=%22RISC-V%22&btnG=&hl=en&as_sdt=0%2C5&as_ylo=2013</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">search: RISC-V since 2013</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="website" class="cx-template-editor-param-key">Website</span></div><div class="cx-template-editor-param-value" data-key="website" style="position: relative;">[[Google Scholar]]</div></div></div></div> {{Control de autoridades}} [[Categoría:Microprocesadores de código abierto]] [[Categoría:Microcontroladores]] [[Categoría:Introducciones relacionadas a la ciencia de la computación de 2010]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
RISC-V
»
Añadir idiomas
Añadir tema