25 votos

¿Cuáles son las ventajas de utilizar FPGAs frente a TTL en la arquitectura de los introordenadores?

Enseño el único curso de arquitectura informática en una universidad de artes liberales. Se trata de una asignatura obligatoria para los estudiantes de informática. No tenemos ingeniería informática, ingeniería eléctrica, otros cursos de hardware, etc. Mi objetivo principal en el curso es que los estudiantes entiendan hasta el nivel de puerta cómo funcionan los ordenadores, que creo que aprenden mejor a través de un laboratorio de hardware y no sólo a través de un libro de texto ( Organización y diseño de ordenadores de Hennessy y Patterson). Mi objetivo secundario es entusiasmarles con la arquitectura de ordenadores y aumentar su entusiasmo por la informática. Prepararles directamente para la industria no es un objetivo, aunque sí lo es motivarles para que estudien más arquitectura informática. Por lo general, los estudiantes no han tenido ninguna experiencia construyendo nada ni han seguido un curso de laboratorio de nivel universitario. Suelen asistir entre 10 y 15 estudiantes por semestre.

Llevo impartiendo el curso desde 1998 de forma similar a como me enseñaron arquitectura de ordenadores y electrónica digital a finales de los 80 en el MIT: utilizando chips DIP TTL en protoboards. En la primera tarea de laboratorio de hardware, los estudiantes construyen un sumador completo. Hacia la mitad del semestre, empiezan a construir un ordenador sencillo con un conjunto de instrucciones de 8 bits. Para reducir el cableado, les proporciono una placa de circuito impreso con parte de la electrónica (dos flip-flops D, dos ALU LS 181 de 4 bits conectadas entre sí para actuar como una ALU de 8 bits y un búfer triestado). En el primero de estos laboratorios, derivan las señales de control (muy simples) para los dos formatos de instrucción y construyen el circuito, introduciendo las instrucciones en los interruptores y leyendo los resultados de las luces. En el segundo de los laboratorios, añaden un contador de programa (2 LS163) y una EPROM (que mi pregunta original antes de que cambiara a cómo debería enseñar arquitectura introductoria). En el laboratorio final, añaden una instrucción de bifurcación condicional. Aunque los estudiantes pasan bastante tiempo cableando y depurando, creo que es ahí donde tiene lugar gran parte del aprendizaje, y los estudiantes se van con una verdadera sensación de logro.

Sin embargo, la gente de este foro me ha estado diciendo que debería pasarme a las FPGA, con las que no he trabajado antes. Soy ingeniero de software, no informático, y hace tiempo que dejé los estudios, pero soy capaz de aprender. No podría conseguir mucho dinero ( tal vez unos cuantos miles de dólares) para sustituir nuestros actuales entrenadores digitales. Tenemos un único analizador lógico.

Dados mis objetivos y limitaciones, ¿recomendaríais los EE que me mantuviera en mi enfoque actual de cambiar a uno basado en FPGAs? En caso afirmativo, ¿podríais indicarme algún material con el que formarme?

Según lo solicitado, aquí está un enlace al programa de estudios y a las tareas de laboratorio .

Incorporación: Sí, también es un curso de lógica digital. Cuando llegué a mi universidad, los estudiantes debían cursar un semestre de arquitectura de ordenadores y otro de lógica digital, y yo los combiné en un solo semestre. Por supuesto, eso es una afirmación sobre el pasado, no sobre el futuro.

21voto

Jamie Macaulay Puntos 16

Dados los objetivos de la clase, creo que el enfoque TTL está bien, y lo digo como un "chico FPGA". Las FPGAs son un mar de lógica y puedes hacer todo tipo de cosas divertidas con ellas, pero no hay mucho que sea humanamente posible hacer en un semestre.

Viendo tu programa, tu clase es una mezcla de los cursos de diseño lógico y "estructuras de máquinas" que hice en la licenciatura (además, es para estudiantes de CS). Estoy a favor de que los estudiantes de CS tengan que enfrentarse a hardware real; dejarles escribir código me parece un paso atrás). En este nivel introductorio, en el que repasas cómo se descomponen las instrucciones en ensamblador, no veo ninguna ventaja real en que los estudiantes hagan las cosas en código en lugar de a mano. Hacer HDL significa aprender el HDL, aprender a escribir sintetizable HDL, y aprender el IDE. Esto supone mucha más complejidad conceptual y reabstracción. Además, hay que lidiar con problemas de software.

Generalmente el punto de un curso que utiliza FPGAs es practicar la creación de lógica que es útil - útil para hablar con los periféricos, comunicaciones en serie, RAM, generadores de vídeo, etc. Este es un conocimiento valioso, pero parece muy fuera del alcance de tu curso. Las clases más avanzadas de arquitectura de ordenadores hacen que los estudiantes implementen sofisticadas CPUs en FPGAs, pero de nuevo, esto parece fuera del alcance de tu curso.

Como mínimo, dedicaría una conferencia a las FPGA. Ejecutar algunas demos con una placa de desarrollo y mostrarles el flujo de trabajo. Ya que estás en Mills, quizás podrías contactar con la gente de Berkeley que dirige CS 150 / 152 e ir a ver cómo hacen las cosas.

7voto

Ravi Puntos 11

Una ventaja de usar TTL sería que para los circuitos muy elementales, los detalles del HDL enmascararían el circuito real, y la mayoría de los estudiantes simplemente pasarían la mayor parte del tiempo escribiendo y aprendiendo HDL. Creo que TTL para la primera parte y luego FPGA para la parte de arquitectura sería mejor, ya que es difícil hacer realmente un sistema programable con TTLs.

6voto

kyle Puntos 274

Estoy muy de acuerdo con Photon. Utilizar FPGAs tiene muchas ventajas. He aquí algunos puntos interesantes a tener en cuenta:

1) Plataforma sencilla para probar el diseño de una puerta muy rápidamente, sin horas o incluso días de trabajo de cableado. Las FPGA permiten diseños digitales potencialmente muy complejos con bastante facilidad. (Mucha más teoría, menos trabajo)

2) Partes significativas del trabajo de un estudiante podrían realizarse en simulación fuera del laboratorio.

3) El entorno de software es gratuito (generalmente, incluido el simulador).

4) Existen muchas plataformas FPGA relativamente baratas. Los precios académicos deberían ayudar. Algo como el Terasic DE0-Nano est $59 for a complete kit (and it looks pretty good). $ 50-60 parece ser el rango por tabla que estarías buscando.

5) Hay un montón de cosas realmente interesantes que hacer con FPGAs. Hay sitios como OpenCores que ofrecen cientos de módulos preconstruidos para su uso con FPGAs. Hay FPGA4Fun que contiene numerosos tutoriales y proyectos. Por puro entretenimiento, Arcade FPGA se dedica a crear juegos con FPGAs. Dependiendo de lo que montes alrededor de las placas FPGA, podría ser una clase muy divertida.

6) Algunas pizarras tienen clases de diseño digital aparentemente preparadas para ellas: Introducción al diseño digital (advertencia: descarga de gran tamaño) utilizando una placa un poco antigua basada en Xilinx Spartan 3E. (Aunque esa está basada en ActiveHDL, personalmente preferiría un VHDL o Verilog más estándar) Los principales proveedores de FPGA también tienen programas universitarios: Programa universitario de Xilinx , Programa universitario Altera , Programa universitario Lattice .

7) El flujo de trabajo se asemeja mucho más a lo que se hace hoy en día en el diseño profesional. El conocimiento práctico del desarrollo de FPGA es una habilidad inmediatamente comercializable.

5voto

RWH Puntos 21

Creo que hoy en día, si te ocupas de cosas a nivel de puerta, no estás trabajando en el área de la "arquitectura de ordenadores", en realidad estás haciendo electrónica digital básica. Pero además, no se puede enseñar todo lo que hay que saber, desde electrónica digital a nivel de puerta hasta algoritmos de caché, arquitecturas de computación paralela, SIMD, redes, etc., etc. en un solo semestre.

Así que todo depende de lo que quieras enseñar. Si quieres centrarte en la electrónica digital a nivel de puerta, trabajar con chips a nivel de puerta proporcionará a los estudiantes algo práctico con lo que trabajar y les dará una mayor comprensión de ese material. Pero si quieres enseñar arquitectura de ordenadores, probablemente necesiten trabajar en un nivel de abstracción mucho mayor que las puertas AND y OR.

Como mínimo, probablemente te debes a ti mismo aprender un HDL e implementar un diseño basado en FPGA o dos, para que tú (como experto en educación aquí) puedas evaluar cómo esas habilidades encajarían en tus objetivos para tus estudiantes. Espero que otras respuestas te den muchas pistas sobre materiales de bajo coste o gratuitos que te permitirán ponerte al día en el diseño de FPGAs en poco tiempo. (Sugerencia: Xilinx y Altera ofrecen herramientas de diseño de software y simuladores gratuitos, junto con toneladas de notas de aplicación y otros materiales didácticos).

3voto

Alex Andronov Puntos 178

Creo que lo correcto sería empezar construyendo unas cuantas compuertas con relés, que son fáciles de ver y entender, pero que obviamente son demasiado lentos y consumen demasiada energía para las aplicaciones modernas. A continuación, mostrar cómo los transistores pueden utilizarse para hacer lo mismo de forma más compacta, rápida y eficiente, y cómo las compuertas empaquetadas [por ejemplo, "quad nand"] pueden hacerlo aún mejor. Una vez que hayas llegado a ese punto, te sugeriría que mostraras cómo construir cosas como multiplexores y latches a partir de puertas, y luego cómo se pueden construir estructuras algo mayores a partir de multiplexores empaquetados, latches, etc. Nadie va a construir un ordenador hoy en día soldando físicamente incontables miles de transistores discretos, pero el funcionamiento interno de un ordenador es muy parecido al de los transistores, salvo que todo es mucho más pequeño.

Uno de los principales beneficios que creo que obtendrían los alumnos de este tipo de enseñanza es la comprensión de por qué muchas cosas funcionan como funcionan. Por ejemplo, si se estuviera "simulando" un conjunto de instrucciones que no necesitara tener ninguna realización física práctica, no habría necesidad de que una instrucción de "carga de memoria" tardara tres ciclos mientras que la mayoría de las demás instrucciones tardan uno. Algunas cosas podrían entenderse sin bajar al nivel de los transistores, pero otras no (por ejemplo, la importancia de las entradas síncronas frente a las asíncronas).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X