Conference PaperPDF Available

Herramientas de software educacional para el aprendizaje de arquitectura de procesadores

Authors:

Abstract

Es un hecho que en los últimos años la enseñanza de ciencias duras se ha visto reforzada por el uso de herramientas de software. En particular, en el área de arquitecturas de computadoras, resulta de gran utilidad didáctica la utilización de simuladores para la comprensión del funcionamiento del hardware. En este trabajo, se presentan experiencias en el desarrollo de dos herramientas educacionales para contribuir a la enseñanza y aprendizaje en el estudio de la arquitectura de procesadores. Estas herramientas son didácticas e interactivas y permiten a los usuarios experimentar con el flujo de trabajo de los procesadores modernos para comprender su funcionamiento y la forma de procesar las instrucciones en código ensamblador. Las mismas funcionan en linea, son multidispositivo, multipla-taforma y han sido desarrollado bajo una licencia de software libre.
Herramientas de soware educacional para el
aprendizaje de arquitectura de procesadores
Martín Menchón(1)(2), Marcelo Tosini(1), Oscar Goñi(1)
(1)INTIA, Facultad de Ciencias Exactas, Universidad Nacional del Centro de la Provincia de Buenos Aires,
Paraje Arroyo Seco, Campus Universitario (7000), Tandil, Argentina
(2)CONICET
{mmenchon,mtosini}@exa.unicen.edu.ar
oegoni@labset.exa.unicen.edu.ar
RESUMEN
Es un hecho que en los últimos años la enseñanza de cien-
cias duras se ha visto reforzada por el uso de herramientas de
software [
1
8
]. En particular, en el área de arquitecturas de
computadoras, resulta de gran utilidad didáctica la utilización
de simuladores para la comprensión del funcionamiento del
hardware. En este trabajo, se presentan experiencias en el desa-
rrollo de dos herramientas educacionales para contribuir a la
enseñanza y aprendizaje en el estudio de la arquitectura de
procesadores. Estas herramientas son didácticas e interactivas y
permiten a los usuarios experimentar con el ujo de trabajo de
los procesadores modernos para comprender su funcionamiento
y la forma de procesar las instrucciones en código ensamblador.
Las mismas funcionan en linea, son multidispositivo, multipla-
taforma y han sido desarrollado bajo una licencia de software
libre.
1. INTRODUCCIÓN
Las arquitecturas de los procesadores actuales, así como su
comportamiento suelen ser muy complejos. La enseñanza del
comportamiento dinámico de este tipo de hardware presu-
pone un gran desafío didáctico en los cursos de arquitectura
de computadoras. En el caso particular de los procesadores
superescalares, resulta dicultoso para el alumno entender
su lógica interna dado que involucran conceptos avanzados
de diseño digital, así como también conceptos base como la
segmentación, jerarquía de memorias, tratamiento de riesgos
e interrupciones entre otros. En el caso puntual de los proce-
sadores superescalares se deben reconocer nuevos riesgos
que, anteriormente, en los procesadores escalares con emi-
sión y ejecución en orden no afectaban a su funcionamiento,
problemas por fallos en memorias (puesto que el procesador
superescalar agrega entre algunas de sus etapas pequeñas
memorias caché para aumentar su rendimiento), algoritmos
de planicación, especulación de saltos, tratamiento de ex-
cepciones, entre otros.
En carreras orientadas al diseño de hardware, es vital que el
estudiante comprenda la arquitectura del procesador para
comprender, evaluar y optimizar sus componentes. En el ca-
so de carreras con orientaciones software la necesidad radica
en poder comprender el comportamiento, planicación y
asignación de recursos en pos desarrollar software que sea
óptimo para la ejecución de dicha arquitectura.
Este trabajo presenta dos de las diez experiencias obteni-
das al reemplazar parcialmente el enfoque tradicional de
práctica de resolución de problemas con el diseño e imple-
mentación de simuladores de procesadores. La resolución
de ejercicios en papel conlleva el desarrollo de ejercicios de
varias hojas y propensos al error por parte del estudiante.
Este enfoque propone impartir el conocimiento en dos ni-
veles: Primero, el estudiante debe evaluar y profundizar sus
conocimientos de los componentes para luego implementar
los componentes simulados funcionalmente equivalentes. El
segundo nivel propone la utilización de estos componentes
sobre un entorno abierto y visualmente comprensible. No es
el objetivo del trabajo realizar la implementación completa
de un sistema procesador sino introducir sistemas acotados
que presentan la esencia de las arquitecturas modernas de
procesadores superescalares pero enfocados a demostrar la
funcionalidad de elementos clave de este.
El trabajo se organiza de la siguiente manera, en la sección
“Trabajos relacionados” se presenta una breve descripción
del estado del arte en la temática de herramientas educa-
cionales para la simulación de procesadores. En la sección
“Herramientas desarrolladas” se exponen las características
y ventajas de este tipo de enfoques para el dictado curricular
y una descripción detallada de cada una de las aplicaciones
implementadas. Por último se realiza una breve conclusión
resaltando los puntos más destacados del presente trabajo.
2. TRABAJOS RELACIONADOS
Es vasta la literatura que sostiene la utilización de herra-
mientas de software como complemento didáctico en el área
de la informática [
1
8
]. Pero en particular, en el área de ar-
quitectura de computadoras y en especíco simuladores de
hardware, no es mucha la variedad de trabajos que presenten
simuladores basados en el funcionamiento de procesadores
superescalares. En 1993, Moura expone un simulador com-
pleto de un procesador superescalar para assembler DLX
[
9
]. En 2007, Castilla et al. presentan una herramienta de
simulación de arquitecturas ILP en superescalar y VLIW pa-
ra assembler MIPS64 [
10
]. En 2010, Amor et al. desarrollan
un simulador basado en MIPS que incluye una implemen-
tación del algoritmo de Tomasulo [
11
]. En 2016, Mateos et
al. publican un simulador web modular e interactivo de un
procesador elemental [
12
]. Recientemente, en 2019, dos Reis
et al. presentaron una aplicación que simula el algoritmo
de Tomasulo para assembler MIPS64 [
13
]. Existen, además,
algunos proyectos de nalización de carrera que introducen
simuladores de procesadores completos orientados a la ense-
ñanza [
14
16
]. No obstante, en el caso de estos tres trabajos,
no se ha encontrado ninguna publicación cientíca asociada
que los respalde.
Si bien estos proyectos presentan un simulador de un pro-
cesador superescalar con una orientación pedagógica, todos
analizan al procesador como un sistema integral no como
subsistemas acotados. El objetivo de este trabajo es usar un
conjunto de instrucciones para assembler DLX reducido, re-
saltando el funcionamiento y la dinámica de las arquitecturas
genéricas de procesadores superescalares.
Un aspecto que se considera una contribución relevante para
los autores de este trabajo es que los desarrollos mencio-
nados ([
12
,
16
]) se presentan como aplicaciones online, lo
que refuerza aún más su aspecto pedagógico al permitir un
fácil acceso a cualquier estudiante interesado en practicar
los conceptos que abordan dichas aplicaciones. Teniendo en
cuenta estas tecnologías, cabe destacar que en ninguno de
ellos se implementa el algoritmo de Tomasulo o el búfer de
reordenamiento de forma online, ni se muestra un grafo de
dependencias entre instrucciones, aspectos que resultan de
interés a la luz de que no pocos estudiantes del curso soli-
citaron oportunamente la posibilidad de disponer de estas
herramientas para desarrollar sus practicas y aanzar, así,
sus aprendizajes.
3. HERRAMIENTAS DESARROLLADAS
La utilización de herramientas online provee de varias
ventajas: Los alumnos pueden acceder a ellas durante la cla-
se, ya sea por medio de computadoras, teléfonos móviles o
tablets, sin importar su sistema operativo o modelo de hard-
ware. Al estar las mismas desarrolladas en Javascript, permite
retro-compatibilidad con hardware de más de 15 años de an-
tigüedad cubriendo un gran porcentaje de los dispositivos
que poseen los estudiantes. La elección de una herramienta
online se debe a la simplicidad de probarla sin necesidad de
instalar ningún programa o aplicación en el dispositivo. La
instalación de programas muchas veces es rechazada por los
inconvenientes que presenta, como problemas por falta de
bibliotecas, demora en tiempo de instalación o por la presen-
cia de archivos residuales que quedan tras desinstalar.
Estas herramientas son parte de un proyecto para desarro-
llar software educativo para apoyar procesos de enseñanza /
aprendizaje en cursos arquitecturas de computadoras para
estudiantes de informática. Los estudiantes avanzados los
desarrollaron con la asistencia de los docentes, aplicando
metodologías de diseño y programación aprendidas en otros
cursos en sus carreras.
El programa de Ingeniería de Sistemas de nuestra Universi-
dad cuenta con un curso de introducción a la Arquitectura
de Computadoras y Técnicas Digitales que se ofrece en el pri-
mer semestre del cuarto año. Se aplicaron estos trabajos en
dicha materia dejando a disponibilidad de todos los alumnos
las herramientas en la página de la cátedra [17].
Para realizar esta propuesta hemos evaluado los inconve-
nientes que se presentan a los alumnos al realizar ejercicios
prácticos durante el transcurso de la cátedra. Partiendo del
hecho de que los procesadores superescalares contienen mu-
chos elementos complejos interconectados, lo cual diculta
el aprendizaje de los mismos, se evaluó integrar una serie
de herramientas al sitio web de la cátedra en cuestión. Es-
tas herramientas representan módulos o subsistemas del
procesador escalar. Dividir el procesador en partes diferen-
tes, independientes unas de otras, surge de un método para
facilitar el aprendizaje al alumno; el estudiante debe ser intro-
ducido al funcionamiento de un procesador con elementos
básicos y a medida que se avanza en el curso se agregarán
elementos de forma incremental. Por ejemplo, si uno qui-
siera comprender cómo funciona el algoritmo de Tomasulo
sin saber cómo es el funcionamiento del búfer de reordena-
miento (ROB), entonces el alumno ya no se enfocaría en tal
algoritmo, sino que invertiría mucho esfuerzo en compren-
der la nueva organización del procesador y la interacción
con el búfer. Resultaría más sencillo si primero se introduce
al alumno al funcionamiento del superescalar con un ROB
acotado y luego se introduce el algoritmo de Tomasulo.
A continuación se detallan cada una de las herramientas
desarrolladas con sus características principales.
3.1. Búfer de reordenamiento
Una de las partes centrales en un procesador superescalar
es el llamado búfer de reordenamiento o ROB, por sus siglas
en inglés. Esta memoria circular es imprescindible cuando
el procesador emite y ejecuta instrucciones fuera de orden,
siendo además, un elemento necesario para algoritmos de
2
planicación como es el caso del algoritmo de Tomasulo
[18, 19].
En los diseños más simples de los superescalares, las ins-
trucciones se ejecutan en orden, sin embargo, para alcanzar
buenas prestaciones se requiere, que el compilador modique
el código a ejecutar (tanto como sea posible), para eliminar al-
gunas dependencias. Incluso habiendo optimizado el código
por medio del compilador (planicación estática), un proce-
sador superescalar asegura la correcta ejecución del código
de entrada por medio de hardware especializado, brindando
la ventaja de que el código funcionará de forma correcta
independientemente de la estructura del pipeline o de la ca-
pacidad del procesador [20].
Todos los procesadores superescalares modernos hacen uso
de la planicación dinámica del pipeline, en donde se eligen
las instrucciones a ejecutar en cada ciclo de reloj intentando
en lo posible evitar los riesgos y bloqueos, básicamente reor-
denando el código permitiendo aprovechar los recursos del
sistema [18, 19].
Los procesadores superescalares con emisión y ejecución
en orden recorren el camino de datos siguiendo el orden
estricto del programa y todas las dependencias de datos son
resueltas antes que las instrucciones pasen a la última etapa.
En un superescalar fuera de orden, las instrucciones pueden
viajar por el camino de datos y ser ejecutadas antes que otras
instrucciones que las preceden en el orden del programa. Sin
embargo, la elección de las instrucciones a ejecutar no es
arbitraria, sino que debe tener en cuenta que existen aún
riesgos por dependencia de datos verdaderas o RAW (Read
After Write), así como también riesgos estructurales y de
control.
Las prácticas de la materia arquitectura de la computadoras
y técnicas digitales fomentan la realización del ejercicios que
simulan esta etapa del procesador, permitiendo al estudiante
entender su lógica interna. Los ejercicios están enfocados en
separar el procesador en subsistemas, uno de los cuales es
especícamente el búfer de reordenamiento. La problemática
con este tipo de ejercicios es la no linealidad de la ejecución
de las instrucciones, donde una instrucción incorrectamente
ejecutada puede alterar el resultado nal del mismo. Esto
lleva a múltiples errores en la realización de los ejercicios
por parte de los estudiantes.
Para evitar estas cuestiones se desarrolló una herramienta
que permite simular cada una de las características de un
ROB. En la g. 1 se muestra el panel de carga de instrucciones
admitidas por el procesador superescalar a simular (ADD,
SUB, MUL, DIV, LD, ST). Así como el grado, la cantidad de es-
taciones de reserva, cantidad y tipo de unidades funcionales
(multifunción, aritmética o de memoria). También se pueden
especicar las latencias de cada una de las instrucciones.
Una vez que el procesador es congurado y todas las ins-
Figura 1: Panel de carga de instrucciones y congura-
ción del procesador superescalar a simular
Figura 2: Grafo de dependencias RAW entre instruc-
ciones a ejecutar por el procesador superescalar
trucciones son cargadas, se procede a guardar la congu-
ración y ejecutar la simulación de instrucciones. Para esto
la herramienta detecta todas las dependencias RAW entre
instrucciones y planica el orden de ejecución de las mismas.
En la g. 2 se muestra un grafo de dependencias.
Este simulador permite ver el estado del ROB en cada ciclo
de ejecución del procesador. Cuando una instrucción es des-
pachada, se da de alta en la estación de reserva y en el Buer
de Reordenamiento. Esto se ilustra en la g. 3. La notación “I”
en las columnas “S” indica que la instrucción esta en espera
de ser ejecutada. “X” representa que la instrucción se esta
ejecutando. Cuando se cumplen todos los ciclos que dura
el cálculo de esa instrucción en la unidad funcional, se reti-
ra de esta unidad y se marca con “F”, representando que la
instrucción nalizó y está a la espera de ser emitida por el
procesador.
La herramienta se encuentra disponible en un repositorio
público en la en la siguiente dirección web [21]
3.2. Algoritmo de Tomasulo
La segunda herramienta en ser desarrollada es un simula-
dor del algoritmo diseñado por Robert Marco Tomasulo[
22
].
Este algoritmo sirve para habilitar la planicación dinámica
de instrucciones permitiendo la ejecución de instrucciones
3
Figura 3: Ejecución de instrucciones dentro del proce-
sador superescalar. Se muestra el ciclo de ejecución,
las unidades de despacho, las estaciones de reserva, las
unidades funcionales y el buer de reordenamiento
fuera de orden. Los principales objetivos del algoritmo son la
disminución de riesgos de datos y la reducción de bloqueos
por falta de resultados de operaciones previas no nalizadas.
Para lograr su cometido, el algoritmo hace uso de tres re-
cursos importantes: estaciones de reserva, que actúan como
unidades funcionales virtuales permitiendo un despacho más
uido de instrucciones hacia estos almacenamientos proviso-
rios; un bus común de datos, que permite a las estaciones de
reserva recibir los resultados adelantados desde las unidades
funcionales y el renombrado de registros, implementado a
partir de un sistema de etiquetado de operandos en el banco
de registros. Una característica importante de este algoritmo
es que ciertas funcionalidades de control y de detección de
conictos son distribuidas a las estaciones de reserva que se
encargan de redistribuir dinámicamente sus instrucciones a
las unidades funcionales que alimentan.
La herramienta desarrollada simula el funcionamiento del
Algoritmo de Tomasulo ciclo por ciclo. Mostrando en cada
uno, el estado de todas las unidades involucradas: despa-
cho, estaciones de reserva, unidades funcionales y bancos
de registros (g. 4). También permite congurar múltiples
parámetros, entre ellos: Los valores iniciales del banco de
registros, el número de instrucciones que se despachan en
cada emisión, la cantidad de ciclos que requiere una uni-
dad funcional para ejecutar una instrucción y la posibilidad
de añadir instrucciones (ADD, SUB, MUL, DIV, LD, ST) a
ejecutar (ver g 5).
Figura 4: Captura de pantalla de la aplicación, donde
se puede apreciar la estación de reserva de suma/resta,
estación de reserva de multiplicación/división y el es-
tado del banco de registros
Figura 5: Panel de carga de instrucciones y congura-
ción de la cantidad de instrucciones emitidas por ciclo
de reloj
La herramienta se encuentra disponible en un repositorio
público en la en la siguiente dirección web [23]
4. CONCLUSIÓN
Las aplicaciones introducidas en el presente trabajo pue-
den ser utilizadas en linea, facilitando el acceso al material
por parte de los alumnos, sin necesidad de descargar softwa-
re adicional y siendo independiente del sistema operativo
que el alumno tenga instalado en su ordenador.
Puesto que el alumno no debería perder tiempo intentando
comprender cómo se estructuraron las aplicaciones, estas
se diseñaron para ser lo más intuitivas posible, permitiendo
al estudiante enfocarse pura y exclusivamente en los temas
tratados, y no en la aplicación en sí.
Si bien este tipo de herramientas ayudan a la comprensión
del alumno, se debe hacer énfasis en los aspectos teóricos
o conceptuales para complementar la comprensión de los
diferentes elementos, puesto que los ejercicios prácticos con-
vencionales serían resueltos por la aplicación. Estas herra-
mientas son útiles para guiar al alumno a la hora de resolver
ejercicios prácticos, y no se tienen en cuenta detalles de las
arquitecturas modernas así como tampoco se muestran una
ejecución completa de los procesadores, sino que se ataca
4
una problemática reducida representando la solución en for-
ma de tablas esquemáticas.
Estas aplicaciones son trabajos que fueron desarrollados por
estudiantes guiados por los docentes de la cátedra, para ser
utilizados por otros estudiantes, lo que lo hace motivador en
el proceso de enseñanza / aprendizaje. Actualmente están
siendo utilizados como una herramienta complementaria a
lo largo del curso, y es seguro que se emplearan también en
el futuro. Las herramientas se enfocaron fuertemente en la
apariencia de los ejercicios, haciéndolos tan similares como
en clase. En particular, debido a la cuarentena por COVID-19
que se extendió durante el primer semestre del año 2020,
estas herramientas fueron de gran utilidad para el dictado de
la materia en cuestión. Todas las herramientas son de código
abierto y su código fuente puede ser consultado en [24]
5. AGRADECIMIENTOS
A los alumnos Matias Videla, Juan Manuel Stampone, Gui-
do Maiola y Ayelén Rizalli
REFERENCIAS
[1]
S. Toral, F. Barrero, M. d. R. Martínez-Torres, S. Gallardo, Interactive
multimedia teaching of digital signal processors, Computer Applica-
tions in Engineering Education 15 (2007) 88–98.
[2]
S. Bagui, Reasons for increased learning using multimedia, Journal of
educational multimedia and hypermedia 7 (1998) 3–18.
[3]
I. Aedo, P. Díaz, C. Fernández, G. M. Martín, A. Berlanga, Assessing
the utility of an interactive electronic book for learning the pascal
programming language, IEEE Transactions on Education 43 (2000)
403–413.
[4]
C. Pahl, Managing evolution and change in web-based teaching and
learning environments, Computers & Education 40 (2003) 99–114.
[5]
S. F. A. Barretto, R. Piazzalunga, V. G. Ribeiro, M. B. C. Dalla, R. M.
Leon Filho, Combining interactivity and improved layout while crea-
ting educational software for the web, Computers & Education 40
(2003) 271–284.
[6]
M. J. Metzger, A. J. Flanagin, L. Zwarun, College student web use,
perceptions of information credibility, and verication behavior, Com-
puters & Education 41 (2003) 271–290.
[7]
G. Conole, M. Dyke, M. Oliver, J. Seale, Mapping pedagogy and tools
for eective learning design, Computers & Education 43 (2004) 17–33.
[8]
W. Christian, M. Belloni, Physlets: Teaching physics with interactive
curricular material, Prentice Hall PTR, 2000.
[9]
C. Moura, SuperDLX - A Generic Superscalar Simulator, Technical
Report, McGill University, 1993.
[10]
I. Castilla, L. Moreno, C. González, J. Sigut, E. González, Simde: An
educational simulator of ilp architectures with dynamic and static
scheduling, Computer Applications in Engineering Education 15 (2007)
226–239.
[11]
M. Amor, R. Concheiro, P. González, J. Lorenzo, M. Bóo, D. Piso, R. Oso-
rio, Aprender arquitectura de computadores con la herramienta simu-
la3ms (2010) 389–396.
[12]
A. C. Mateos, F. G. Carballeira, J. P. Cepeda, Wepsim: Simulador modu-
lar e interactivo de un procesador elemental para facilitar una visión
integrada de la microprogramación y la programación en ensamblador,
Enseñanza y aprendizaje de ingeniería de computadores: Revista de
Experiencias Docentes en Ingeniería de Computadores (2016) 35–53.
[13]
L. O. P. dos Reis, L. D. Duenha, Tfsim: um simulador do algoritmo de
tomasulo para apoio ao ensino de arquiteturas superescalares (2019).
[14]
F. Rivero, Simco: un simulador de procesadores con enfoque educativo
(2014).
[15]
P. López Martínez, et al., Implantación de un procesador mips con
nes didácticos (2016).
[16]
M. Díaz Arteaga, et al., Simulador didáctico de una arquitectura de
planicación estática. (2019).
[17]
Página web arquitectura de computadoras y técnicas digitales,
http://arqui2.alumnos.exa.unicen.edu.ar/home/trabajos-nales, 2020.
[18]
J. P. Shen, M. H. Lipasti, Modern processor design: fundamentals of
superscalar processors, Waveland Press, 2013.
[19]
D. A. Patterson, J. L. Hennessy, Computer Organization and Design
ARM Edition: The Hardware Software Interface, Morgan kaufmann,
2016.
[20]
W. Stallings, Computer organization and architecture: designing for
performance, Pearson Education India, 2003.
[21]
Simulador web de un procesador su-
perescalar con búfer de reordenamiento,
https://martinmenchon.github.io/SistemaArquiII/Rob_Videla_Stampone/,
2020.
[22]
R. M. Tomasulo, An ecient algorithm for exploiting multiple arithme-
tic units, IBM Journal of research and Development 11 (1967) 25–33.
[23]
Simulador web del algoritmo de tomasulo,
https://martinmenchon.github.io/SistemaArquiII/Tomasulo/Tomasulo.html,
2020.
[24]
Herramientas de educacionales para arquitectura de computadoras,
https://doi.org/10.5281/zenodo.4012733, 2020.
5
ResearchGate has not been able to resolve any citations for this publication.
Article
Full-text available
A number of pedagogies and approaches are often quoted in the e-learning literature – constructivism, communities of practice, collaboration – but we suggest that much of what is described could more easily be explained in terms of didactic and behaviourist approaches to learning. In this paper we propose a model that supports the development of pedagogically driven approaches to e-learning. The paper begins by explaining how models can be used to represent theoretical approaches and to support practitioners' engagement with these. After outlining the method through which this can be achieved, a model of pedagogies is developed. This process begins with a review of learning theories, from which key components of learning are distilled. This abstraction is used as an analytical tool, allowing components of learning scenarios to be described and related to appropriate theoretical approaches through the use of specific tools and resources. Our assertion is that a better articulation and mapping of different pedagogical processes, tools and techniques will provide a pedagogic approach that is more reflexive and consistent with practitioners' theoretical perspective on learning and teaching.
Article
Lo que diferencia WepSIM1 de otros simuladores usados en la ense˜nanza de Estructura de Computadores est´a en tres aspectos importantes. Primero, ofrece una visi´on integrada de la microprogramaci´on y de la programaci´on en ensamblador, dando la posibilidad de trabajar con distintos juegos de instrucciones. Segundo, permite al estudiante una mayor movilidad al poder usarse tambi´en en dispositivos m´oviles. Tercero, tiene un dise˜no modular, es posible a˜nadir, quitar o modificar los elementos existentes. Busca un equilibrio entre simplicidad, para facilitar la ense˜nanza, y el detalle, para imitar la realidad. Una de las grandes ventajas del simulador WepSIM es que no est´a limitado a un juego de instrucciones concreto, permitiendo definir un amplio juego de instrucciones de procesadores reales o inventados. Este art´ıculo describe WepSIM y los resultados en la primera experiencia de su uso en la asignatura de Estructura de Computadores impartida en el Grado en Ingenier´ıa Inform´atica de la Universidad Carlos III de Madrid
Article
This article presents SIMDE, a cycle-by-cycle simulator to support teaching of Instruction-Level Parallelism (ILP) architectures. The simulator covers dynamic and static instruction scheduling by using a shared structure for both approaches. Dynamic scheduling is illustrated by means of a simple superscalar processor based on Tomasulo's algorithm. A basic Very Long Instruction Word (VLIW) processor has been designed for static scheduling. The simulator is intended as an aid-tool for teaching theoretical contents in Computer Architecture and Organization courses. The students are provided with an easy-to-use common environment to perform different simulations and comparisons between superscalar and VLIW processors. Furthermore, the simulator has been tested by students in a Computer Architecture course in order to assess its real usefulness. © 2007 Wiley Periodicals, Inc. Comput Appl Eng Educ 14: 226–239, 2007; Published online in Wiley InterScience (www.interscience.wiley.com); DOI 10.1002/cae.20154
Article
This article shows a novel approach to Digital Signal Processors (DSPs) teaching based on an interactive multimedia educational tool, designed with Shockwave™ and Macromedia Director™. The use and utility of the tool has been analyzed, and the benefits of this novel teaching methodology have been pointed out. © 2007 Wiley Periodicals, Inc. Comput Appl Eng Educ 15: 88–98, 2007; Published online in Wiley InterScience (www.interscience.wiley.com); DOI 10.1002/cae.20110
Article
Two major attributes influence a project aimed at developing educational software: user interactivity and graphic design. These two attributes are not easily found within the same development tool. Moreover, sometimes the development tool is either very expensive to acquire or too difficult to use. This article aims to present a solution to the creation of educational development tools which emphasize the conjunction between interactivity and graphic design. The authors propose a methodology based on Web technology and an association between the Java programming language and the authoring tool Flash. In addition to fostering interactivity, Java offers development packages at no cost. The authoring software Flash is inexpensive and allows the creation of finely crafted Web pages with graphic animations and sound editing. This article describes the methodology that enables the association between Java and Flash components. This methodology was conceived during the development of a structural analysis educational software product specially geared to undergraduate engineering students. In order to ensure the understanding of our proposal, a specific example was created, along with sample pages that illustrate this methodology.
Article
Concerns about the potentially dubious nature of online information and users' ability to evaluate it appropriately prompted this research on college students' use of Web-based information, their perceptions of information credibility, and their online verification behaviors. Two studies were conducted to address these issues. Results of the first study show that college students rely very heavily on the Web for both general and academic information, and that they expect this usage to increase over time. Results of the second study indicate that students find information to be more credible than do those from a more general adult population, across several media and considering many different types of information. Nonetheless, students verify the information they find online significantly less. Implications are discussed in light of current efforts of educators to improve Internet literacy.
Article
This paper describes ,the methods employed,in the floating-point area of ,the System/360 Model ,91 to exploit the existence of multiple execution,, efficiently utilizing the execution units without requiring specially optimized code. Instead, the hardware, by ‘looking ahead’ about eight instructions. automatically optimizes the program execution on a local basis. The application of these techniques is not limited to floating-point arithmetic or System/360 architecture. It may be used in almost any computer having multiple execution units and one or more ‘accumulators.’ Both of the execution units, as well as the associated storage buffers, multiple accumulators and input /output buses, are extensively checked.