Marco y Herramientas para Estudiantes Universitarios Que Diseñan Procesadores RISC-V

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Machine Translated by Google

Marco y herramientas para estudiantes universitarios que diseñan RISC­V


Procesadores en una FPGA en educación en arquitectura de computadoras

Peter Jamieson, Tyler McGrew y Eric Schonauer


Ingeniería eléctrica e informática
Universidad de
Miami [email protected]

Resumen: Podría decirse que cada estudiante de ingeniería informática En este trabajo, describimos las herramientas y opciones de diseño
debería construir un procesador simple en el proceso de obtener su título utilizadas para crear procesadores RISC­V en una FPGA. Esto incluye las
para ayudarlos a internalizar los principios y propiedades básicos de
herramientas utilizadas para simular los programas RISC­V, las herramientas
diseño de una computadora. Con la proliferación de FPGA en las
universidades, esto es fácilmente realizable en la mayoría de los planes utilizadas para crear el procesador en la FPGA y las elecciones de diseño
de estudio de pregrado. Muchos cursos modernos sobre arquitectura u tomadas para que el diseño sea manejable para los estudiantes
organización de computadoras se basan en arquitecturas MIPS (entre universitarios. Proporcionamos enlaces a dos procesadores creados en
otras) como procesador base para aprender, pero la arquitectura MIPS nuestro curso y describimos extensiones adicionales que realizaron estos
tiene poco éxito comercial e implementaciones en el mundo real que
estudiantes para obtener insignias avanzadas en el curso. La esperanza de
permitirán a los estudiantes obtener beneficios profesionales adicionales
al construir y aprender. sobre una arquitectura usada. El creciente interés este trabajo es proporcionar a los profesores y estudiantes de ingeniería
industrial de RISC­V ISA, su disponibilidad gratuita y su éxito temprano informática una idea sobre cómo abordar el diseño básico de un procesador
en la adopción en el mundo real hacen de este procesador un gran RISC­V.
candidato potencial en este espacio educativo. Este trabajo proporciona El resto de este documento está organizado de la siguiente manera: La
sugerencias sobre cómo los estudiantes universitarios deberían construir
Sección II proporciona una breve descripción del trabajo previo en esta
una arquitectura RISC­V en una FPGA y un marco básico de herramientas
y principios de diseño para este ejercicio. área. La Sección III describe el conjunto de herramientas y las opciones de
diseño tomadas para crear las arquitecturas ejemplares. La Sección IV
describe dos implementaciones y extensiones agregadas a estos
I. INTRODUCCIÓN
procesadores. Finalmente, la sección V proporciona una discusión y
El plan de estudios de pregrado en ingeniería informática [1] incluye la concluye el artículo.
comprensión del diseño y funcionamiento de un procesador, así como las
herramientas, el software y las optimizaciones relacionadas con él. Los II. ANTECEDENTES ­ ARQUITECTURA DE COMPUTADORAS EN
detalles para comprender cómo funciona un procesador se logran en el plan LA EDUCACIÓN EN INGENIERÍA INFORMÁTICA
de estudios sugerido con 10 horas de estudio sobre organización de
computadoras y 10 horas de estudio con la arquitectura del conjunto de Un curso universitario típico en arquitectura de computadoras utilizará
instrucciones (ISA). Esta comprensión se puede lograr de varias maneras, libros de texto como el de Patt y Patel, "Introducción a los sistemas
pero existe la creencia popular de que un futuro ingeniero informático informáticos: desde bits y puertas hasta C y más allá" [7] y el de Patterson
debería construir al menos un procesador durante su educación universitaria. y Hennessy, "Organización y diseño de computadoras: la interfaz hardware/
software". ”[8]. Ambos libros son enfoques de abajo hacia arriba para
En la Universidad de Miami no obligamos a los ingenieros informáticos aprender sobre arquitectura de computadoras que comienzan con una
universitarios a construir un procesador, pero sí sugerimos el valor de tal introducción o comprensión de los componentes digitales que componen el
ejercicio. Sin embargo, nuestro curso de organización informática está sistema, y luego continúan con el lenguaje ensamblador, pasando a temas
estructurado para permitir a los estudiantes perseguir sus intereses a través cada vez más complejos en arquitectura de computadoras hasta que el
del aprendizaje basado en insignias [2]. Los estudiantes que opten por estudiante comienza. comprender cómo un programa de alto nivel, escrito
construir un procesador también pueden elegir qué tipo de procesador construir.en lenguaje C [9], se asigna a un procesador y se ejecuta. Otro libro de
En el pasado, los estudiantes han construido procesadores PIC [3], AVR [4] texto y marco popular, de Nisan y Shockan [10], promueve un enfoque
y MIPS [5] donde el procesador MIPS es la opción más popular ya que, por basado en proyectos para sistemas desde puertas de bajo nivel hasta un
lo general, comienzan aprendiendo MIPS ISA para obtener una comprensión videojuego que se ejecuta en un sistema.
básica de la programación en ensamblaje. . Con la invención del procesador
RISC­V [6] y su posible adopción por parte de una variedad de corporaciones Durante décadas, los educadores han debatido qué y cómo enseñar
debido al conjunto de instrucciones disponibles gratuitamente, lo convierte arquitectura y organización de computadoras [11].
en un excelente candidato a procesador para que los estudiantes Por ejemplo, una de las primeras preguntas en estos cursos es qué
universitarios diseñen en una FPGA. El principal beneficio de construir un arquitectura utilizar como sistema ejemplar [12]. Cada uno de los libros de
procesador RISC­V es que un ingeniero informático obtiene el doble texto anteriores utiliza una arquitectura diferente (LC­2, MIPS y Hack,
beneficio de construir un procesador y comprender mejor una máquina que respectivamente), y estas 3 opciones son solo una pequeña muestra de
se utiliza en el mundo real, incluidas las principales industrias. otras posibilidades, que incluyen ARM [13], PIC [14] y x86 [ 15]. Con la
elección de una arquitectura,
Machine Translated by Google

la siguiente pregunta es cómo estudiar el sistema con posibilidades que para esto, con suerte, los estudiantes tendrán una buena comprensión de los
incluyan la programación en ensamblaje mediante simuladores [16] circuitos generados por su diseño HDL “sintetizable”.
[17] [18], implementaciones FPGA de procesadores [19] [20], o experimentos La herramienta principal en el flujo de Intel es Quartus, que adopta un
mentales de la función del procesador [21]. Después de tomar las dos diseño y sintetiza para las FPGA de Intel. Nuestros laboratorios contienen
decisiones anteriores, el enfoque de lo que hacen los estudiantes en un curso placas DE2­115 de Terasic, y estas placas incluyen un Cyclone FPGA. Quartus
puede variar desde conferencias, tareas, exámenes, proyectos y otras incluye un programador FPGA que permite sintetizar y programar el diseño en
actividades. Por ejemplo, el aprendizaje basado en proyectos [22] y el una FPGA real.
aprendizaje experiencial [23] han tenido un resurgimiento reciente a medida
que las universidades buscan enfoques de aprendizaje centrados en el La herramienta Quartus se puede configurar para utilizar ModelSim, que
estudiante; la arquitectura informática no es una excepción a estas tendencias permite la simulación del diseño digital del procesador. Se carga un programa
[24] [2]. de usuario con los bits que se utilizan para configurar el diseño en la FPGA
Este artículo examina cómo los estudiantes pueden utilizar RISC­V como (describimos los detalles de esto más adelante). De manera similar, una
procesador moderno para implementar en una FPGA. Las razones para herramienta llamada "SignalTap" permite analizar el procesador programado
considerar otro procesador en el ya muy poblado espacio de procesadores real en la FPGA, donde "SignalTap" es un analizador lógico en chip. Tanto la
educativos incluyen: • Un procesador RISC similar a MIPS • simulación como el analizador lógico se utilizan para depurar el diseño.
Además, solo con el simulador, en teoría, un estudiante podría completar la
Un ISA gratuito y abierto • Un procesador
mayor parte de este ejercicio y demostrar que su procesador funciona sin
moderno que se está
necesidad de una FPGA física. Sin embargo, necesitamos una programación
adoptando en la industria en
academia FPGA real para enfatizar otros aspectos de la ingeniería real, incluida una placa
prototipo con frecuencia de reloj y área de silicio limitadas, como limitaciones
• Un conjunto de herramientas para simulación y compilación. •
reales para un ingeniero en ejercicio.
Una pila de software de fácil soporte.

III. HERRAMIENTAS Y OPCIONES DE DISEÑO PARA C. Restricciones de la arquitectura RISC­V


PROCESADORES RISC­V
La documentación de RISC­V versión 2.2 tiene una base congelada
A. Simulador y ensamblador ISA [6] que tiene variantes: 32 bits o 64 bits. Para este trabajo, RV32I es la ISA
Las primeras herramientas necesarias para comprender una arquitectura base desde la que los estudiantes deben comenzar, pero la mejor definición
inicial es la arquitectura del conjunto de instrucciones Tiny RISC­V de Cornell
son un simulador y un ensamblador. En muchos casos, el simulador y el
(www.csl.cornell.edu/courses/ece5745/handouts/ece5745­tinyrv ­isa.txt); el
ensamblador están incluidos en la misma herramienta de software. Por ejemplo,
TinyRV2 dentro de ese documento es un procesador básico agradable que
el simulador MARS [25] es una herramienta de simulación popular para MIPS
puede ejecutar programas C simples e incluye 34 instrucciones en las siguientes
que incluye simulación y ensamblaje de programas MIPS, entre otras
categorías de instrucciones: • Instrucciones de registro de control/estado •
herramientas con fines educativos.
Para RISC­V, hay varias opciones disponibles en el sitio de RISC­V (riscv.org/ Instrucciones aritméticas
software­status/). El que utilizamos en nuestros casos fue diseñado por Morten de registro­registro • Instrucciones aritméticas

B. Petersen llamado "Ripes" y disponible en github.com/mortbopet/Ripes al de registro inmediato • Instrucciones de memoria • Salto

momento de escribir este artículo. Ripes es una herramienta sencilla que incondicional Instrucciones • Instrucciones de rama

simula una máquina RISC­V canalizada de 5 etapas (no necesariamente útil condicional

para el diseño real en la FPGA) y es fácil de usar para obtener datos codificados
por la máquina para los programas de ensamblaje.
D. Detalles de implementación de FPGA
Otras herramientas de software, como una versión de compilador cruzado
de “gcc” y “gdb”, están disponibles para tomar código de alto nivel y compilar y
depurar la arquitectura RISC­V. Estas herramientas, aunque útiles, no son
necesarias para la implementación y prueba de FPGA descritas en este trabajo.

B. Herramientas FPGA

Las herramientas que utilizamos para nuestras implementaciones FPGA de


un procesador RISC­V están todas basadas en Intel. Sin embargo, tenga en
cuenta que se puede utilizar cualquier conjunto de herramientas FPGA y
nombraremos el nombre de la herramienta genérica y el nombre de la
herramienta industrial para que otros puedan usar herramientas similares. Fig. 1. Un diagrama de bloques simple de las piezas de la arquitectura RISC­V.
Además, nuestro lenguaje de implementación de hardware es Verilog [26], que
es un lenguaje de descripción de hardware. Este ejercicio también se puede La Figura 1 muestra un diagrama de bloques básico de los componentes
realizar en otros HDL, como VHDL, en esquemas o en lenguajes de diseño de principales del sistema RISC­V. Tenga en cuenta que los detalles de la
arquitectura
hardware de nivel superior. Sin embargo, recomendamos utilizar un HDL como un buen términono se pueden observar en este diagrama.
medio.
Machine Translated by Google

Desde el punto de vista del diseño, recomendamos que un diseñador implementar el procesador RISC­V (y son coautores de este artículo).
primero cree su propia versión de la Figura 1 con líneas de control y Estos estudiantes ya completaron cursos básicos de programación y
componentes de hardware más detallados, como multiplexores (muxes), completaron un curso de sistemas digitales de segundo año, que les
registros adicionales y otros operadores aritméticos. presentó Verilog. En ambos casos, se utilizaron las herramientas descritas
La razón principal de esto es que el diseñador pueda comprender cuál es anteriormente para diseñar los procesadores y asignarlos a placas de
la ruta de datos y cuáles son las señales de control para esta ruta de prototipos DE2­115. La Tabla I proporciona información básica sobre las
datos para la implementación de su procesador. Además, esto proporciona dos implementaciones. La columna 1 muestra el apellido del diseñador,
un diseño útil de alto nivel que un instructor puede observar y evaluar la columna 2 muestra la ISA, la columna 3 proporciona la URL del
rápidamente si el diseñador comprende todos los componentes del repositorio de código para los archivos de diseño y la columna 4 describe
sistema y cómo interactuarán. las extensiones a la arquitectura que hacen los estudiantes para obtener
A continuación, se debe crear y probar cada uno de los componentes una insignia avanzada en el curso.
principales, excluyendo el control, y cada uno debe implementarse como Las extensiones al hardware base pueden incluir cachés, canalización,
un módulo separado en Verilog. Generalmente, recomendamos construir sistema multinúcleo y funcionalidad del sistema operativo [27] [28] [29].
la unidad lógica aritmética (ALU), el archivo de registro y luego la memoria Para las dos extensiones del procesador base en este curso, McGrew
en orden. En cada caso, las entradas y salidas del módulo corresponderán implementó un caché simple y Schonauer implementó un sistema
a las señales en el diagrama inicial del diseñador y, eventualmente, estas multinúcleo con una barrera para el acceso a la memoria compartida. La
piezas pueden tratarse como cuadros claros en el diseño. IP de la memoria de quartus suele tardar 2 ciclos en acceder a los datos
desde las operaciones de carga. El objetivo del caché es construir el
Para el módulo de memoria, la versión universitaria (así como la hardware para que las cargas solo cuesten 1 ciclo en los accesos al
versión profesional) de Quartus tiene una herramienta "Catálogo IP" que caché. La implementación multinúcleo, de Schonauer, demuestra una
permite al diseñador crear memoria en el chip. Esta herramienta crea una máquina paralela de memoria compartida simple con múltiples núcleos
memoria y muestra un esquema del módulo de memoria que incluye las que utilizan un árbitro para implementar operaciones tipo valla en la ISA.
señales que entran y salen del módulo y cualquier registro incluido en
estas rutas. Además, dentro de esta herramienta puede especificar un
V. DISCUSIÓN Y CONCLUSIÓN
archivo de inicialización de memoria (mif) que inicializará la memoria
después de programar el diseño en la FPGA. El aprendizaje basado en proyectos continúa siendo un enfoque
Así es como se puede cargar un programa de usuario en la memoria y, pedagógicamente sólido en la mayor parte de la educación en ingeniería,
para simplificar, asumimos que el inicio del programa es en la dirección y la educación en arquitectura informática no es una excepción. Los
0. Alternativamente, hay disponible un chip de memoria SRAM fuera del conceptos que un estudiante universitario debe aprender sobre
chip en el DE2­115 y podría interconectarse con el procesador. . En este arquitectura de computadoras son muy amplios, pero la experiencia y las
caso, sin embargo, también es necesario diseñar un programador para habilidades aprendidas al crear un procesador e implementarlo en una
inicializar esa memoria con los datos del programa. FPGA son muy valiosas. En este trabajo, proporcionamos una descripción
El archivo de registro también se puede implementar como un módulo de herramientas, restricciones de diseño e ideas sobre cómo un estudiante
de memoria IP con dos puertos de lectura. Sin embargo, recomendamos universitario puede diseñar una arquitectura RISC­V y mapearla a una
que se implemente un archivo de registro como un módulo Verilog FPGA. El beneficio clave de elegir la arquitectura RISC­V es que es una
utilizando los bits de registro disponibles en la lógica suave de la FPGA. ISA disponible gratuitamente y fácil de entender para los estudiantes.
Hay dos razones para esto. En primer lugar, el tiempo de acceso al Además, se han creado una serie de herramientas maduras para la ISA,
archivo de registro será un ciclo de reloj, que es similar a un diseño ASIC y este procesador está ganando cada vez más tracción en la industria y
real y, en segundo lugar, el proceso de diseño ayuda a los estudiantes a el mundo académico. Por estas razones, creemos que si los estudiantes
comprender el diseño de las memorias. universitarios van a implementar una arquitectura (y creemos que todos
Una vez que se diseñan los componentes principales, se puede crear deberían hacer este ejercicio), entonces RISC­V es la mejor opción.
un módulo de nivel superior con una máquina de estados finitos (FSM),
lógica de mezcla para las rutas de datos y generación de señales de Una preocupación para los educadores con este tipo de ejercicios es
control desde un registro de instrucciones para controlar el resto del si los estudiantes realmente realizarán el ejercicio o si accederán a la
procesador. Se puede construir un modelo simple de cuatro etapas amplia gama de recursos (incluidas las dos implementaciones enumeradas
(buscar, decodificar, ejecutar, escribir) dentro del FSM. Este ejercicio no aquí) y utilizarán el trabajo de otra persona.
es simple, pero es una función de comprender las señales de control en Por ejemplo, un estudiante podría utilizar las herramientas BRISC­V [30]
el sistema e identificar qué señales deben configurarse para cada para construir rápidamente un procesador para enviarlo a un curso. Este
instrucción. La bifurcación y el incremento del contador de programa (PC) problema empeora a medida que aumenta el número de estudiantes en
es la última parte del ejercicio que debe diseñarse en el control. cursos de arquitectura de computadoras y los enfoques de aprendizaje
basado en proyectos se vuelven cada vez menos viables para los profesores.
Nuestra solución simple a este problema es predefinir la ALU o una
IV. IMPLEMENTACIONES Y EXTENSIONES DEL RISC­V
instrucción especial para el diseño de cada estudiante.
PROCESADORES
De las dos soluciones, creemos que crear una ALU de caja negra con
En 2019, el curso de organización informática en Miami se impartió parámetros variables es la solución más fácil de implementar. Por ejemplo,
como un curso basado en insignias y dos estudiantes optaron por el instructor podría diseñar un
Machine Translated by Google

TABLA I
DETALLES DE LAS DOS IMPLEMENTACIONES

Creador ES UN alojamiento web en: github.com/ Extensión Notas


McGrew TinyRV2 tymcgrew/RISC­V Cache Sin instrucciones CSRR, CSRW

Schonauer TinyRV2 EricSchonauer/RISC­V­Processor Multicore con valla Sin instrucciones CSRR, CSRW

conjunto de ALU que tienen diferentes formas de control, como [16] GS Wolffe, W. Yurcik, H. Osborne y MA Holliday, “Enseñanza de organización/
una ALU basada en acumulador, una ALU registrada, una ALU arquitectura informática con recursos limitados utilizando simuladores”, en ACM
SIGCSE Bulletin, vol. 34, núm. 1. ACM, 2002, págs. 176–180.
secuencial de un solo bit [31] y una ALU de 8 bytes. Las señales
de control hacia y desde cada una de estas ALU crearán cambios [17] C. Yehezkel, W. Yurcik, M. Pearson y D. Armstrong, “Tres herramientas de
en la ruta de datos que desafiarán a los estudiantes a copiar otros simulación para la enseñanza de arquitectura informática: Little man computer y
rtlsim”, Journal on Educational Resources in Computing (JERIC), vol. . 1, núm. 4,
diseños sin una comprensión más profunda de la arquitectura. págs. 60 a 80, 2001.
Desde una perspectiva laboral futura, la extensión educativa [18] B. Nikolic, Z. Radivojevic, J. Djordjevic y V. Milutinovic, “Un estudio y evaluación de
simuladores adecuados para la enseñanza de cursos de arquitectura y organización
perfecta para este trabajo es la integración de una serie de
de computadoras”, IEEE Transactions on Education, vol. 52, núm. 4, págs. 449–
ejercicios después de la creación del procesador que permitirían 458, 2009.
a los estudiantes mejorar su arquitectura base, crear una cadena [19] Y. Li y W. Chu, "Uso de fpga para la educación organizacional/arquitectura
informática". en WCAE @ HPCA. Citeseer, 1996, pág. 5.
de herramientas de software que incluye la compilación y la
[20] M. Holland, J. Harris y S. Hauck, “Harnessing FPGAS for Computer Architecture
vinculación para su procesador. y crear software de sistema que Education”, en Proceedings 2003 IEEE International Con­ference on
administraría su sistema (similar a [10]). Estos ejercicios, a lo largo Microelectronic Systems Education. MSE'03. IEEE, 2003, págs. 12­13.
de varios cursos, brindarían al estudiante una comprensión
[21] P. Jamieson, D. Davis y B. Spangler, "El enfoque de la criatura mítica: una alternativa
profunda de la computadora moderna y sus herramientas. de simulación para la construcción de arquitecturas informáticas". en FECS, 2010,
págs. 23­28.
REFERENCIAS [22] J. Macías­Guarasa, J. Montero, R. San­Segundo, A. Araujo y O. Nieto­Taladriz, “Un
enfoque de aprendizaje basado en proyectos para diseñar planes de estudios de
[1] J. Impagliazzo, S. Conry, E. Durant, JL Hughes y R. Meier, “Lanzamiento de sistemas electrónicos”, Educación, IEEE Transactions on, vol. 49, núm. 3, págs.
directrices curriculares para ingeniería informática: Ce2016”, en Conferencia 389 –397, 2006. [En línea]. Disponible: http://ieeexplore.ieee.org/stamp/stamp.jsp?
Fronteras en la Educación (FIE), IEEE 2016. IEEE, 2016, págs. 1–4. tp=&arnumber=1668283 [23] DA Kolb et al., Aprendizaje experiencial:
la experiencia como fuente de aprendizaje y desarrollo. Prentice­Hall Englewood Cliffs,
[2] P. Jamieson, “¿El aprendizaje basado en insignias contrarresta la curva de Nueva Jersey, 1984, vol. 1.
calificaciones? un experimento educativo en arquitectura de computadoras”, en ´ ´ ´
Actas de la Conferencia Internacional sobre Fronteras en la Educación: Ciencias [24] A. Mart´ınez­Mones, E. G omez­S anchez, YA Dimitriadis, IM Jorr ´ın­Abellan, B.
´
de la Computación e Ingeniería Informática (FECS), 2014. Rubia­Avi y G. Vega­Gorgojo, “Múltiples estudios de caso para mejorar proyectos­
[3] M. Bates, Microcontroladores PIC: una introducción a la microelectrónica. Aprendizaje basado en un curso de arquitectura de computadoras”, IEEE
Elsevier, 2011. Transactions on Education, vol. 48, núm. 3, págs. 482–489, 2005.
[4] N. Alizadeh, “Libro de datos de microcontroladores de riesgo mejorado Avr”, ATML [25] DK Vollmar y DP Sanderson, “Un simulador de lenguaje ensamblador mips diseñado
Corporation, vol. 33, pág. 102, 1996. para la educación”, Journal of Computing Sciences in Colleges, vol. 21, núm. 1,
[5] J. Hennessy, N. Jouppi, S. Przybylski, C. Rowen, T. Gross, F. Bas­kett y J. Gill, págs. 95­101, 2005.
“Mips: una arquitectura de microprocesador”, en MICRO 15: Actas del 15 Taller [26] Referencia de descripción de hardware de Verilog, Open Verilog International,
marzo de 1993.
anual sobre Microprogramación.
Piscataway, Nueva Jersey, EE.UU.: IEEE Press, 1982, págs. 17­22. [27] JH Lee, SE Lee, HC Yu y T. Suh, “Diseño de CPU canalizado con fpga en la
[6] A. Waterman, Y. Lee, DA Patterson y K. Asanovic, “El manual del conjunto de enseñanza de arquitectura informática”, IEEE Transactions on Education, vol. 55,
instrucciones risc­v, volumen i: nivel de usuario básico isa”, Departamento de núm. 3, págs. 341–348, 2012.
EECS, UC Berkeley, Tech. Rep. UCB/EECS­2011­62, vol. 116, 2011. [28] J. Gray, “Arquitectura de computadora práctica: enseñanza del diseño de
[7] YN Patt y SJ Patel, Introducción a los sistemas informáticos: de Bits & Gates a C y procesadores y sistemas integrados con fpgas”, en Actas del taller de 2000 sobre
más allá. Nueva York, NY, Estados Unidos: McGraw­Hill, Inc., 2004. educación en arquitectura de computadoras. ACM, 2000, pág. 17.
[29] Z. Tan, A. Waterman, R. Avizienis, Y. Lee, H. Cook, D. Patterson y K. Asanovic,
´
[8] D. Patterson y J. Hennessy, Organización y diseño de computadoras: la interfaz “Ramp gold: un simulador de arquitectura basado en fpga para multiprocesadores”,
hardware/software. Morgan Kaufmann, 2005. en Actas de la 47ª Conferencia de Automatización del Diseño. ACM, 2010, págs.
[9] BW Kernighan y DM Ritchie, El lenguaje de programación C. 463–468.
Prentice­Hall, 1978. [30] S. Bandara, A. Ehret, D. Kava y M. Kinsy, “Brisc­v: Una caja de herramientas de
exploración espacial de diseño de arquitectura de código abierto”, en Actas del
[10] N. Nisan y S. Schocken, Los elementos de los sistemas informáticos: construcción de una
Simposio internacional ACM/SIGDA de 2019 sobre programación de campo
computadora moderna a partir de los primeros principios. Prensa del MIT, 2005.
Conjuntos de puertas. ACM, 2019, págs. 306–306.
[11] A. Clements, "El plan de estudios universitario en arquitectura de computadoras",
[31] J. Robinson, S. Vafaee, J. Scobbie, M. Ritche y J. Rose, “El procesador blando
IEEE Micro, vol. 20, núm. 3, págs. 13­21, 2000.
superpequeño”, en la VI Conferencia de Lógica Programable del Sur (SPL) de
[12] ——, “Selección de un procesador para enseñar arquitectura de computadoras”,
2010. IEEE, 2010, págs. 3–8.
Microprocesadores y microsistemas, vol. 23, núm. 5, págs. 281–290, 1999.
[13] ——, “Armas para los pobres: Selección de un procesador para enseñar arquitectura
de computadoras”, en la Conferencia IEEE Fronteras en la Educación (FIE) de 2010.
IEEE, 2010, págs. T3E–1.
[14] M. Smolnikar y M. Mohorcic, “Un marco para desarrollar aplicaciones basadas en
microcontroladores pic de microchip”, WSEAS Transactions on Advances in
Engineering Education, vol. 5, núm. 2, págs. 83–91, 2008.
[15] MD Black y P. Komala, “Un simulador x86 de sistema completo para enseñar
organización informática”, en Actas del 42º simposio técnico de ACM sobre
educación en informática. ACM, 2011, págs. 365–370.

También podría gustarte