[Edumips64-commit] SF.net SVN: edumips64:[662] paper/ieee-tedu
Brought to you by:
lupino3
|
From: <sv...@ed...> - 2011-12-12 19:48:31
|
Revision: 662
https://www.edumips.org/changeset/662
Author: lupino3
Date: 2011-12-12 20:48:22 +0100 (Mon, 12 Dec 2011)
Log Message:
-----------
Corrections by the editor
Modified Paths:
--------------
paper/ieee-tedu/Makefile
paper/ieee-tedu/abstract.tex
paper/ieee-tedu/conclusions.tex
paper/ieee-tedu/edumips-description.tex
paper/ieee-tedu/introduction.tex
paper/ieee-tedu/paper.tex
paper/ieee-tedu/related-works.tex
paper/ieee-tedu/survey.tex
paper/ieee-tedu/teaching.tex
Modified: paper/ieee-tedu/Makefile
===================================================================
--- paper/ieee-tedu/Makefile 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/Makefile 2011-12-12 19:48:22 UTC (rev 662)
@@ -21,7 +21,7 @@
ghostview paper.ps&
showpdf: paper.pdf
- acroread paper.pdf&
+ evince paper.pdf
clean:
rm -f *.pdf *.aux *.bbl *.blg *.log *.dvi *.ps
Modified: paper/ieee-tedu/abstract.tex
===================================================================
--- paper/ieee-tedu/abstract.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/abstract.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -1,7 +1,7 @@
\begin{abstract}
-The topics of Computer Architecture are always taught using an Assembly
-dialect as an example. The most widespread books in this field use the MIPS64
-Instruction Set Architecture (ISA) to help students in learning the
+The topics of computer architecture are always taught using an Assembly
+dialect as an example. The most widespread textbooks in this field use the
+MIPS64 Instruction Set Architecture (ISA) to help students in learning the
fundamentals of Computer Architecture, because of its orthogonality and its
suitability for real-world applications.
%So students and teachers need tools
@@ -12,15 +12,14 @@
This paper shows how to use the \EM{} visual CPU Simulator as a supporting
tool for teaching the standard topics covered by an undergraduate course in
-Computer Architecture. The proposed approach is first compared with other
+computer architecture. The proposed approach is first compared with other
similar works in the field, then, after a short description of the simulator,
the paper focuses on how it can be used for teaching specific topics in an
-undergraduate Computer Architecture course.
+undergraduate computer architecture course.
-This discussion is then followed by a quantitative assessment of the
-suitability of the simulator, by means of a survey compiled by students
-themselves, and the results prove that \EM{} is suitable for the purpose it
-has been built for, that is, supporting the learning process of Computer
-Architecture topics.
+This discussion is then followed by a quantitative assessment of the suitability
+of the simulator, by means of a survey compiled by students themselves; the
+results show that \EM{} is suitable for the purpose for which it was built, that
+is, supporting the learning process of computer architecture topics.
\end{abstract}
Modified: paper/ieee-tedu/conclusions.tex
===================================================================
--- paper/ieee-tedu/conclusions.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/conclusions.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -1,18 +1,17 @@
\section{Conclusions}
\label{sec:conclusions}
-Computer Architecture and Organization is one of the core topics that a solid
-Computer engineer needs to master in order to be successful. This paper
-presented the outline of an undergraduate-level Computer Architecture course
-that adopts as the main educational tool a visual, free and
-platform-independent MIPS64 Instruction-Set Simulator called \EM{}.
+Computer architecture and organization is one of the core topics that a
+well-educated computer engineer needs to master in order to be successful. This
+paper presented the outline of an undergraduate-level computer architecture
+course that adopted as its main educational tool a visual, free and
+platform-independent MIPS64 Instruction-Set Simulator called \EM{}, for its
+various features and its user-friendly interface.
-The features of the simulator and its user-friendly interface allowed for its
-adoption as the main tool of the course, and several assignments and teaching
-processes that revolve around it have been described.
+Several assignments and teaching processes based on \EM{} have been described.
-The evaluation of the impact of the adoption of the simulator on the teaching
-process was carried on by means of a survey compiled by students after the
-completion of the course; this feedback allowed to confirm our hypothesis on the
-suitability of \EM{} for the course, and also contributed to an objective
-analysis of its strengths and weaknesses, that will be useful to plan the future
+The impact of the adoption of the simulator on the teaching process was
+evaluated by means of a survey completed by students after the completion of the
+course; this feedback confirmed the authors' hypothesis on the suitability of
+\EM{} for the course, and also contributed to an objective analysis of the
+simulator's strengths and weaknesses, that will be useful in planning future
development work.
Modified: paper/ieee-tedu/edumips-description.tex
===================================================================
--- paper/ieee-tedu/edumips-description.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/edumips-description.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -1,10 +1,10 @@
\section{Description of the Simulator}
\label{sec:em_description}
-As stated in the previous section, EduMIPS64 is a visual MIPS64 Instruction Set
-Simulator; in the reminder of this section, the main features of the simulator
+As stated above, EduMIPS64 is a visual MIPS64 Instruction Set
+Simulator; in this section, the main features of the simulator
and of its graphical user interface will be briefly described. For more
details on the simulator, please refer to \cite{edumips_wiley_caee}.
-Figure~\ref{fig:interface} shows an overview of the User Interface of the
+Fig.~\ref{fig:interface} shows an overview of the user interface of the
simulator.
\begin{figure*}[!htb]
@@ -36,17 +36,17 @@
% \end{centering}
%\end{table*}
-\subsection{Architectural features}
+\subsection{Architectural Features}
\subsubsection{Pipeline}
\EM{} implements a 5-stages pipeline that allows for instruction-level
parallelism. As each virtual CPU cycle is executed, the user interface updates
-all of its components in order to offer an appealing and insightful
-representation of the current program execution state. The 5 stages of the
+all its components to offer an appealing and informative
+representation of the current program execution state. The five stages of the
pipeline are drawn in one of the sub-windows of the simulator and each stage
of the pipeline contains a representation of the instruction that is being
executed.
-\EM{} implements a rich subset of the MIPS64 ISA, composed by 65 instructions.
+\EM{} implements a rich subset of the MIPS64 ISA, comprising 65 instructions.
\subsubsection{Forwarding}
The simulator provides built-in support for instruction forwarding, so that
students can evaluate the performance of their programs with or without
@@ -56,31 +56,31 @@
\EM{} generates trace files containing the memory accesses that are performed
by the simulated program in a format compatible with the DineroIV
\cite{dinero-web} cache simulator; there is also a built-in interface
-for invoking the command line of DineroIV cache simulator using the
-produced trace file. In this way, the student can test different cache
+for invoking the command line of the DineroIV cache simulator using the
+trace file produced. This allows a student to test different cache
scenarios without having to exit the \EM{} interface.
\subsubsection{Interrupts and System Calls}
-The simulator gives to the student an interface for system calls via the
-\texttt{SYSCALL} instruction, that simulates basic console and file I/O
+Via the \texttt{SYSCALL} instruction the simulator gives to the student an
+interface for system calls, that simulates basic console and file I/O
operations, and provides support for maskable synchronous exceptions.
\subsection{The User Interface}
\label{subsec:gui}
-The user interface of \EM{} is similar to the one provided by WinMIPS64
+The user interface of \EM{} is similar to that provided by WinMIPS64
\cite{winmips-web} and WinDLX \cite{windlx-web}. It adopts the Multiple
Document Interface paradigm, with a main window that contains the individual
frames that represent a given aspect of the simulation. Each stage of the
pipeline is associated with a given (customizable) color, that is used
-throughout the user interface to represent events and data associated with
-that stage, allowing the student to easily correlate different sections of the
-interface that are related to what happens in a given pipeline stage.
+throughout the user interface to represent the events and data associated with
+that stage, allowing the student to easily correlate the various sections of the
+interface with what happens in a given pipeline stage.
-The 7 frames of the simulator interface offer at a glance many details
-about the current and past status of the simulation: the current content of
+The seven frames of the simulator interface give at a glance many details
+of the current and past status of the simulation: the current content of
memory and General Purpose Registers; a graphical representation of the
-pipeline stages and the instructions that are in each of them; the code of the
-program; some statistics on the execution like the number of Cycles Per
+pipeline stages and the instructions in each stage; the program code;
+and some statistics on the execution, such as the number of Cycles Per
Instruction (CPI) and the number and class of stalls.
% The frames are:
% \begin{itemize}
@@ -103,7 +103,7 @@
% when some \texttt{SYSCALL} instructions are executed.
% \end{itemize}
-The user interface offers to the student the ability to execute the program
-step-wise or at once; it can also be chosen whether during multi-step
+The user interface allows the student to execute the program either
+step-wise or at once, and to choose whether during multi-step
execution the interface should display each intermediate step or if it should
-only show the final stage --- useful for the execution of long programs.
+only show the final stage, which is useful for the execution of long programs.
Modified: paper/ieee-tedu/introduction.tex
===================================================================
--- paper/ieee-tedu/introduction.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/introduction.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -1,12 +1,12 @@
\section{Introduction}
\label{sec:intro}
-\PARstart{C}{omputer} Architecture and Organization is one of the key
+\PARstart{C}{omputer} architecture and organization is one of the key
elements which characterizes the curricula of electrical and computer
engineers \cite{ieee-curricula}. One of the most critical aspects on teaching
this discipline is how to support the theoretical concepts of the subjects
-with appropriate practical experiences usually organized as laboratory
-assignments. Such experiences are mainly aimed at performing a quantitative
+with appropriate practical experience, usually organized as laboratory
+assignments. Such experience is mainly aimed at performing a quantitative
analysis on the system parameters related to both the \emph{computer
architecture} (which encompasses the programmer's abstract view of the
machine) and the \emph{computer organization} (which deals with implementation
@@ -17,30 +17,30 @@
part of the course. In this context, visual representation of the concepts
introduced in the course, platform independence, distance learning support,
free availability of the tools and full coverage of the course topics are key
-factors which determine the effectiveness of the teaching armaments.
+factors which determine the effectiveness of the teaching resources.
Unfortunately, some of the available educational ISSs focus on specific
aspects of a computer system, like assembly language~\cite{spim-web},
pipelining~\cite{windlx-web} or memory hierarchy~\cite{dinero-web}; the
heterogeneous nature of the tools used to cover the different topics of the
-course, could lead to a fragmentation of the knowledge. In fact, analyzing
-separately the different sub-systems of the computer system makes it difficult
-for the student to understand how those parts interact with each other, with a
-consequent blinding of the system-level view. Moreover most of them do not
-offer the other qualities mentioned before, like platform independence or
-distance learning support, and this makes it difficult to base on those tools
-a solid and involving Computer Architecture course.
+course, could lead to a fragmentation of the knowledge acquired. In fact,
+analyzing the different sub-systems of the computer system separately makes it
+difficult for the student to understand how those parts interact, with a
+consequent blinding of student to the system-level view. Moreover since most
+ISS do not offer the other capabilities mentioned above, like platform
+independence or distance learning support it is difficult to base
+a solid and compelling computer architecture course on them.
-This paper is focused on the description and assessment of a Computer
-Architecture undergraduate course in which the \EM{} simulator
-\cite{edumips_wiley_caee} has been employed as the primary tool for explaining
+This paper is focused on the description and assessment of a computer
+architecture undergraduate course in which the \EM{} simulator
+\cite{edumips_wiley_caee} was employed as the primary tool for explaining
the topics, for the students' homework and for the final exam. \EM{} is a free
-visual MIPS64 CPU simulator built over the last 5 years at the University of
-Catania.
+visual MIPS64 CPU simulator built over the last five years at the University of
+Catania, Italy.
The rest of the paper is organized as follows. Section~\ref{sec:related-works}
provides a brief overview on available tools and methodologies aimed at
-enhancing the learning process of the topics in an undergraduate course of
+enhancing the learning process of the topics in an undergraduate course on
basic computer architectures. Section~\ref{sec:em_description} presents the
main features of \EM{} used as the reference simulation platform in this
paper. The teaching methodology based on the use of \EM{} is presented in
Modified: paper/ieee-tedu/paper.tex
===================================================================
--- paper/ieee-tedu/paper.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/paper.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -63,7 +63,7 @@
%------------------------------------------------------------------------------
-\title{Supporting Undergraduate Computer Architecture Students using a Visual
+\title{Supporting Undergraduate Computer Architecture Students Using a Visual
MIPS64 CPU Simulator}
\author{Davide~Patti,~\emph{Member,~IEEE}, Andrea~Spadaccini,~\emph{Graduate~Student~Member,~IEEE},
@@ -87,10 +87,10 @@
%------------------------------------------------------------------------------
-\begin{keywords}
+\begin{IEEEkeywords}
Instruction-set Simulator; Teaching Methodology; Assembly Programming;
Visual Simulation; Distance learning.
-\end{keywords}
+\end{IEEEkeywords}
%------------------------------------------------------------------------------
@@ -118,9 +118,9 @@
%------------------------------------------------------------------------------
-\section{Acknowledgments}
+\section*{Acknowledgments}
The authors hereby acknowledge the fundamental contribution of all the developers of
-\EM{}, whose names are listed in the About Us dialog of the simulator itself.
+\EM{}, who are listed in the About Us dialog of the simulator itself.
%------------------------------------------------------------------------------
Modified: paper/ieee-tedu/related-works.tex
===================================================================
--- paper/ieee-tedu/related-works.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/related-works.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -1,60 +1,60 @@
-\section{Related Works}
+\section{Related Work}
\label{sec:related-works}
-Several different tools and methodologies have been adopted
-in order to enhance the learning process of the basic concepts of
-CPU organization usually taught in introductory Computer Architecture courses.
-Some approaches focus on the adopted framework (e.g.
+Various tools and methodologies have been adopted
+to enhance the learning process of the basic concepts of
+CPU organization usually taught in introductory computer architecture courses.
+Some approaches focus on the framework adopted (e.g.
simulators, web-based learning, games), while others try to exploit the positive
effects of collaborative projects in improving students' motivation.
% social/collaborative
-In~\cite{Anguita2007} the authors propose a method and activity
+In~\cite{Anguita2007} the authors propose a method and an activity
designed to improve student motivation in computer architecture
courses by showing them how to successfully optimize the assembly code
produced.
An educational experience of teaching computer architecture topics
using a project-based learning is described and evaluated
-in~\cite{Martinez-Mones2005}. The main idea is using a collaborative approach
-where students are assigned to different subprojects but still have to
-exchange some acquired knowledge in order to complete their tasks.
-Authors of~\cite{Verginis2011} present a web-based environment to
-support the learning process in introductory computer science course
-using a customizable e-learning approach.
+in~\cite{Martinez-Mones2005}. The main idea was that of using a collaborative
+approach where students were assigned to different sub-projects but still had to
+exchange some acquired knowledge in order to complete their tasks.
+~\cite{Verginis2011} presents a Web-based environment to support the learning
+process in an introductory computer science course using a customizable e-learning
+approach.
%tool oriented
As regards tools-based approaches, computer architecture topics are
-addressed at different levels of abstraction and granularity. The
-work~\cite{Djordjevic2005} introduces an educational computer system
+addressed at different levels of abstraction and granularity.
+\cite{Djordjevic2005} introduces an educational computer system
specifically designed to help teach architecture topics from the
designer's perspective. In~\cite{Garcia2009} the authors propose a
-pedagogical and fully configurable simulator of the MC88110 32-bit
-microprocessor, with the aim to reduce the effort of using many
+pedagogical and fully-configurable simulator of the MC88110 32-bit
+microprocessor, with the aim of reducing the effort of using many
different simulators to cover the topics of a typical computer
-architecture course. The work in~\cite{Quislant2008} shows how an
-educational framework has been used in introductory courses on
-Computer Architecture and Engineering to teach some topics related to
-the tuning of cache parameters with the aim of optimizing performance
-and energy consumption. In~\cite{Sahuquillo2007} authors present a
+architecture course. \cite{Quislant2008} shows how an
+educational framework was been used in introductory
+computer architecture and engineering courses to teach some topics related to
+the tuning of cache parameters to optimize performance
+and energy consumption. \cite{Sahuquillo2007} presents a
pedagogical tool for dealing with code-based exercises expressly
focused on cache memory related topics.
% added references
In~\cite{nikolic_tedu09} the authors compare 28 pedagogical tools,
-classifying them in 2 categories: those that allow to design a complete computer
+classifying them in two categories: those that allow the design of a complete computer
environment and those that instead focus on the simulation of a target
-architecture. EduMIPS64 fits in the second category, and while it does not try
+architecture. EduMIPS64 fits in the second category; while it does not try
to implement all the architectural features offered by many of those simulators,
it instead focuses mainly on topics related to the basic concepts of computer
architecture and CPU organization, making it suitable for undergraduates.
-Finally, two simulators in particular that have been a great source of inspiration for the
+Finally, two simulators that in particular have been a great source of inspiration for the
design and development of \EM{} are WinDLX~\cite{windlx-web} and
WinMIPS64~\cite{winmips-web}. \EM{} tries to take the best from those
simulators, adding platform independence and a support for
-DineroIV~\cite{dinero-web} cache simulator.
+the DineroIV~\cite{dinero-web} cache simulator.
The main advantage of EduMIPS64 over these tools is the combination of
features not strictly related to simulation: it is open source,
suitable for web-based distance learning activities and cross
-platform, an unique feature set in the field of didactic CPU
+platform; this constitutes a unique feature set in the field of didactic CPU
simulators.
Modified: paper/ieee-tedu/survey.tex
===================================================================
--- paper/ieee-tedu/survey.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/survey.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -1,50 +1,51 @@
\section{Assessment Survey and Evaluation}
\label{sec:survey}
-A survey was conducted in order to obtain feedback on the effectiveness of the
-adopted methodology from the students, after the completion of the course.
-The survey was designed to investigate the following areas:
+A student survey was conducted at the end of the courses to obtain feedback on the
+effectiveness of the adopted methodology. The survey was designed to
+investigate the following areas:
\begin{itemize}
-\item {\bf Simulation environment:} issues regarding the easiness of use
+\item {\bf Simulation environment:} issues regarding the ease of use
of the adopted tool, i.e. the user interface, the learning curve
-faced when learning the \EM{} simulator, the consistency and
-readability the whole learning environment.
-\item {\bf Impact on learning:} investigate how \EM{} was effective in helping
- them understand the course topics, increasing their motivation to learn.
+faced when learning the \EM{} simulator, and the consistency and
+readability of the whole learning environment.
+\item {\bf Impact on learning:} the extent to which \EM{} was effective in
+ helping students to understand the course topics and increasing their
+ motivation to learn.
\end{itemize}
-An online form~\cite{edumips64_survey} was created, involving a total
-of 93 students belonging to undergraduate\footnote{students who are
+An online form~\cite{edumips64_survey} was completed by a total
+of 93 students enrolled in undergraduate\footnote{students who are
going to take the Bachelor degree and familiar with basic computer science
concepts} computer
architecture courses~\cite{course_unict,course_unikore} in the period
-2008-2010. The main goal of the proposed questions was to capture the
+2008-2010. The main goal of the questions posed was to capture the
perceived effectiveness of the \EM{} tool and the adopted methodology,
the usage frequency, and impact on the learning of several key topics
of computer architecture and organization. The results
collected~\cite{edumips64_survey} have been summarized in the
-subsections~\ref{sec:impact_environment}
+Subsections~\ref{sec:impact_environment}
and~\ref{sec:impact_learning}.
-\subsection{Simulation environment}
+\subsection{Simulation Environment}
\label{sec:impact_environment}
-Usability and easiness of use are one of the main reasons behind the
+Usability and ease of use are the prime reasons behind the
adoption of the \EM{} project as the course's simulation environment.
-A first aspect that was investigated is the general
-speed/responsiveness of the simulator that, because of running on an
-high-level Java virtual machine could suffer some performance/memory
-usage issues. However, $19\%$ of users evaluated as excellent the
-performance of the simulator and $60\%$ of them considered it good,
-while $18\%$ think that it was sufficient and $3\%$ considered it
-poor. The graphical user interface of \EM{} was evaluated as
-excellent by $60\%$ of users, $20\%$ of them found it good while the
-remaining $19\%$ and $1\%$ found it sufficient and poor respectively.
+A first aspect investigated was the general
+speed/responsiveness of the simulator that, since running on an
+high-level Java virtual machine could cause some performance/memory
+use issues. However, $19\%$ of the users rated the
+performance of the simulator as excellent and $60\%$ of them considered it good,
+while $18\%$ thought it was adequate and $3\%$ considered it
+poor. The graphical user interface of \EM{} was rated as
+excellent by $60\%$ of users, $20\%$ of them found it good and the
+remaining $19\%$ and $1\%$ found it adequate and poor respectively.
Summarizing these results, it can definitely be concluded that the
-choice of using Java as a cross-platform technology did not penalize
+choice of using Java as a cross-platform technology did not degrade
the user-experience from both the performance and visual points of
view, since only a negligible fraction of the users rated \EM{} as
-less than sufficient.
+less than adequate.
\subsection{Impact on Learning}
\label{sec:impact_learning}
@@ -53,10 +54,9 @@
%% Only a small percentage of them, less than $8\%$, used \EM{} for less
%% than 10\% of the time period ranging from the beginning of the course
%% to the exam.
-Only a small percentage of them, less than $8\%$, used \EM{} for less
-than 10\% of the study time that they allocated for this course. About
-$20\%$ of them used \EM{} for the $20\%-30\%$ of the time, whereas the
-remaining $70\%$ of them declared to have spent more than $40\%$ of
+Less than $8\%$ of the students used \EM{} for less than 10\% of the study time
+allocated for this course. About $20\%$ of them used \EM{} for $20\%-30\%$ of
+the time, whereas the remaining $70\%$ claimed to have spent more than $40\%$ of
the time on \EM{}.
\begin{figure}
@@ -66,20 +66,18 @@
\label{fig:topics}
\end{figure}
An interesting issue to investigate was the impact of the adopted
-methodology on the understanding of the different topics encountered during the
+methodology on student understanding of the different topics encountered during the
course. Note that some topics that are usually strictly related to the
theoretical
part of a computer architecture course were deliberately included, in order to
-capture more accurately to which extent, even indirectly, the
-adoption of \EM{} can affect the learning process and the students'
-motivation. Figure~\ref{fig:topics} summarizes the result obtained,
-showing that the experience with \EM{} seems to influence (even if with
-different power) all the topics presented in the survey: it can
-be observed an obvious predominance of topics like
-registers and data encoding - due to bit-accurate encoding
-- and the assembly programming and pipelining, positively
-impacted by the visual representation of the CPU during the execution of
-instructions flow.
+capture more accurately to what extent, even indirectly, the
+adoption of \EM{} can affect the learning process and student
+motivation. Fig.~\ref{fig:topics} summarizes the results obtained,
+and shows that the experience with \EM{} seems to influence to a greater or
+lesser extent all the topics presented in the survey; topics particularly
+impacted included registers and data encoding --- due to bit-accurate encoding
+--- and assembly programming and pipelining, because of the visual
+representation of the CPU during the execution flow of the instructions.
\begin{figure}
\centering
@@ -88,17 +86,16 @@
of attempts to pass the final examination}
\label{fig:percentage_of_success}
\end{figure}
-Finally, Figure~\ref{fig:percentage_of_success} shows how the average
+Finally, Fig.~\ref{fig:percentage_of_success} shows how the average
percentage of success is distributed across the number of attempts
required to pass the final examination. As can be observed, although
-the fraction of students requiring three or more attempts is not
+those students requiring three or more attempts were not
particularly affected, the adoption of the methodology since 2008
-seems to increase the number of students that successfully pass the
-first examination (about 22\% improvement on average).
+seems to increase the number of students who pass the
+first examination at the first attempt (about 22\% improvement on average).
%, probably as
%consequence of the increased motivation and participation to the
%laboratory sessions as discussed above.
Note that the second
-attempt shows a lower result with \EM{}, because an increasing part of the
-students that attended the first exam won't need a second try.
-
+attempt shows a lower result with \EM{}, because an increasing number of the
+students have no need to take the exam for a second time.
Modified: paper/ieee-tedu/teaching.tex
===================================================================
--- paper/ieee-tedu/teaching.tex 2011-12-09 09:58:55 UTC (rev 661)
+++ paper/ieee-tedu/teaching.tex 2011-12-12 19:48:22 UTC (rev 662)
@@ -1,7 +1,7 @@
\section{Teaching Methodology}
\label{sec:teaching}
-\EM{} is tailored for use in introductory courses of Computer Architecture
-usually taught in electrical engineering or computer science curricula.
+\EM{} is tailored for use in introductory computer architecture courses,
+usually taught in Electrical Engineering or Computer Science curricula.
%It can be successfully adopted as the main tool to teach the basics of the
%way in which a Central Processing Unit (CPU) and the memory hierarchy work.
These courses usually start with an ``onion view'' of a computer
@@ -9,12 +9,11 @@
system seen as a stack of layers, and where a usual level of abstraction is given
by the bare-metal CPU able to execute assembly sources translated (``assembled'')
into binary machine code.
-\EM{} can be productively used to test and improve the students'
-understanding of the following topics: instructions and data encoding;
-the MIPS instruction set; pipelining; I/O and system calls; the memory
-hierarchy; Amdahl's law. More advanced topics, such as as scoreboard,
-Tomasulo scheduling or virtual memory, are not covered since they
-were not part of the courses chosen in this work.
+\EM{} can be productively used to test and improve student understanding of:
+instructions and data encoding; the MIPS instruction set; pipelining; I/O and
+system calls; the memory hierarchy; and Amdahl's law. More advanced topics, such
+as scoreboard, Tomasulo scheduling or virtual memory, are not covered since
+they were not on the syllabi of the courses at which this work was directed.
%\begin{itemize}
%\item {Instruction/Data encoding}
@@ -26,19 +25,18 @@
%\end{itemize}
In the next sections the teaching methodology adopted for each of the areas
-listed above will briefly be described, followed by some proof-of-concept
+listed above will be briefly described, followed by some proof-of-concept
assignments that show concrete examples of how \EM{} can be exploited to
-assess students' knowledge. They can be used in the end-course final
-examination, but also during frontal lessons and as homework assignments, in
+assess student knowledge. These can be used in the course final
+examination, but also during lectures and as homework assignments, in
order to receive immediate feedback on the learning process.
\subsection{Understanding the Instructions and Data Encoding}
-As regards the computer architecture course addressed in this paper,
-the initial part of the program will not only require the teacher to
-explain the fundamental concepts of instruction-set architectures and
-assembly language, but also hexadecimal number conversions,
-instruction encoding (with the three main types: R-type, I-type and
-J-type) and even the concept of endianness (ordering of bytes within
+The initial part of the syllabus of the computer architecture course addressed
+in this paper requires the teacher to explain not only the fundamental concepts
+of instruction-set architectures and assembly language, but also hexadecimal
+number conversions, instruction encoding (with the three main types: R-type,
+I-type and J-type) and even the concept of endianness (ordering of bytes within
words into memory).
So, a first step with \EM{} should be to show how an assembly source
@@ -52,34 +50,34 @@
Section~\ref{subsec:gui}. Note that the bit-accurate encoding of
instructions of \EM{} allows students to verify how the three
different instruction formats are represented in memory. At this stage
-some of the windows inside \EM{} can be safely ignored (namely Cycles,
+some of the windows inside \EM{} can safely be ignored (namely Cycles,
Pipeline and even Statistics), and the students should focus on
-the remaining (Registers, Data and Code).
+the remaining ones (Registers, Data and Code).
-Example assignments:
+Sample assignments:
\begin{itemize}
-\item \emph{Before loading a given program into memory, try to figure out
+\item \emph{Before loading a given program into memory, try to work out
how some lines of the \texttt{.data} section will appear in the \EM{}
memory window.}
\item \emph{Maximize the memory encoding window and highlight some lines, then
try to find the corresponding snippet of code in the text editor.}
\item \emph{Choose one of the lines in the memory or code window of \EM{}
-and try to explain the meaning of the hexadecimal value associated to
+and try to explain the meaning of the hexadecimal value associated with
them.}
\end{itemize}
-\subsection{Understanding the MIPS instruction set}
-The behavior of each instruction of the MIPS instruction set, its
-effect on registers, memory and code execution are certainly some of the most
-tricky concepts to deal with, both from the teaching and learning
-perspectives. In an introductory Computer Architecture course, showing complex
-algorithms and data structures, even if more representative of the ``real
-world'', is not the most appropriate approach Instead, \EM{} can be used to
-effectively show different implementations of several simple and small
-algorithms in a visual and intuitive way, so that students can capture the
-real meaning of each assembly instruction of the repertoire.
+\subsection{Understanding the MIPS Instruction set}
+The behavior of each instruction of the MIPS instruction set, and its effect on
+registers, memory and code execution, are certainly some of the most tricky
+concepts to deal with, from both the teaching and learning perspectives. In an
+introductory computer architecture course, showing complex algorithms and data
+structures is not the most appropriate approach, despite being more
+representative of the ``real world''. Rather, \EM{} can be used to effectively
+show various implementations of several simple small algorithms, visually and
+intuitively, so that students can capture the real meaning of each assembly
+instruction in the repertoire.
-Example assignments:
+Sample assignments:
\begin{itemize}
\item \emph{Write a MIPS assembly program implementing an
algorithm that loads a set of values previously encoded in the
@@ -87,54 +85,53 @@
memory, according to the following \texttt{<condition>}.}
\end{itemize}
-{\bf Note:} further assignments can be derived from a template like the one
-presented above, depending on the chosen \texttt{condition}, e.g.
-\emph{being even but not multiple of 4, being odd and less than 7, being
+{\bf Note:} further assignments can be derived from a template like that
+presented above, depending on the chosen \texttt{condition}, e.g.,
+\emph{being even but not a multiple of 4, being odd and less than 7, being
divisible by 9} and so on.
\subsection{Understanding the Pipeline}
-The teaching of the pipelining mechanisms and the related
-micro-architectural events involved can take a great benefit from
-the visual representation of the CPU described in
-Subsection~\ref{subsec:gui}. By executing code using \EM{} in the
-cycle-by-cycle mode, the teacher can show how the different elements
-of the pipeline deal with data (e.g. using forwarding, creating
-bubbles), and also which is the current stage of execution of each instruction, which signal
-controls are required \etc
+The teaching of the pipelining mechanisms and the related micro-architectural
+events involved can derive great benefit from the visual representation of the
+CPU described in Subsection~\ref{subsec:gui}. By executing code using \EM{} in
+the cycle-by-cycle mode, the teacher can show how the various elements of the
+pipeline deal with data (e.g. using forwarding, creating bubbles), what the
+current stage of execution is for each instruction, which signal controls are
+required, and so on.
-Example assignments:
+Sample assignments:
\begin{itemize}
\item \emph{Try to enable (disable) the forwarding settings of \EM{}
and identify which instructions of your code are affected by this micro-architectural
feature.}
-\item \emph{When possible, try to rearrange your code so that the amount
+\item \emph{When possible, try to rearrange your code so that the number
of data hazards shown in the statistics window is minimized. If you
think that your code is already optimal, move some instructions in order to
intentionally create data hazards while preserving the execution
semantics.}
-\item \emph{Execute the program cycle-by-cycle, until the n-th clock cycle,
+\item \emph{Execute the program cycle-by-cycle, until the $n^{\text{th}}$ clock cycle,
and describe the nature of the next stall encountered, showing the involved
pipelining elements.}
\end{itemize}
\subsection{Understanding the Memory Hierarchy}
-The possibility to interface \EM{} with the well-known DineroIV cache simulator
+The ability to interface \EM{} with the well-known DineroIV cache simulator
allows both teacher and students to experiment quantitatively with the
impact of different cache configurations on code execution and
performance.
-Example assignments:
+Sample assignments:
\begin{itemize}
\item \emph{Assuming a CPU clock frequency $f=1GHz$, compare the ideal time of
execution $T_{CPU\_ideal}$ of your code against a system with unified,
-single port, direct-mapped 4K data/instruction L1 Cache memory, with block size 16
+single-port, direct-mapped 4K data/instruction L1 Cache memory, with block size 16
byte and miss delay $L1_{delay}=50$ cycles.}
\item \emph{Change the proposed cache configuration so that the number of
-demand misses is increased/decreased, showing the motivation behind
+demand misses is increased/decreased, showing the reasons for
this different behavior.}
\end{itemize}
@@ -145,27 +142,26 @@
$T_{CPU}$ as:
\[T_{CPU} = (N_{cycles}+N_{hazards}+L1_{misses}\times
L1_{penality}) \times T_{clock} \]
-where $T_{clock} = 1/f$ and remembering that when single-port unified cache is
+where $T_{clock} = 1/f$, remembering that when the single-port unified cache is
used each load/store causes a structural hazard.
Further, since DineroIV also supports separate L1 data and instruction
caches, different versions of this assignment can be designed in order
-to check the students' ability to properly deal with separate data and
+to check the students' ability to deal properly with separate data and
instruction cache parameters.
-\subsection{Understanding I/O and system calls}
+\subsection{Understanding I/O and System Calls}
These concepts are often addressed in the second part of the course,
depending on the whole course organization. Nevertheless they can be
-easily assessed using the \texttt{SYSCALL} instruction of \EM{}. There
+easily accessed using the \texttt{SYSCALL} instruction of \EM{}. There
are two main classes of assignments that involve the usage of the
\texttt{SYSCALL} instruction:
\begin{itemize}
-\item Assignments that test the students' ability to put properly the inputs
-of the \texttt{SYSCALL} in the \texttt{.data} section and then get the outputs when
-the \texttt{SYSCALL} has ended
-\item Assignments that stress the usage of \texttt{SYSCALL}
-in combination with an external routine, called
-\texttt{input\_unsigned}, provided with \EM{} as part of example
-source code.
+\item Assignments that test the students' ability to put the inputs of the
+ \texttt{SYSCALL} in the \texttt{.data} section properly and then get the
+ outputs when the \texttt{SYSCALL} has ended
+\item Assignments that stress the usage of \texttt{SYSCALL} in combination with
+ an external routine, called \texttt{input\_unsigned}, provided with \EM{} as
+ part of sample source code.
\end{itemize}
The motivation behind the second class of assignments is to enrich the
@@ -181,24 +177,24 @@
\texttt{input\_unsigned} routine itself, which is a very good example of how
simple system calls work and how they can be used to build an higher
abstraction routine similar to the C-like \texttt{scanf(...)}
-function that students have been using in previous courses.
+function that students will have used in previous courses.
-Example assignments:
+Sample assignments:
\begin{itemize}
\item \emph{Properly setup a \texttt{.data} section so that two bytes
are read from keyboard using the \texttt{SYSCALL 3} and their arithmetic sum is printed on
screen using \texttt{SYSCALL 5}.}
\item \emph{Use the \texttt{input unsigned} routine to read a set of
-10 integers from the keyboard and then print them on screen in reversed order.}
+ten integers from the keyboard and then print them on screen in reverse order.}
\end{itemize}
\subsection{Understanding Amdahl's Law}
When teaching computer architecture from the performance
analysis perspective, Amdahl's law is probably the most important
-principle that students should learn. In short, Amdahl's law is used to
+principle for students to learn. In short, Amdahl's law is used to
find the maximum expected improvement to an overall system when only
-one part of the system is improved, that is:
+one part of that system is improved, that is:
\begin{equation*}
S_{overall} = \frac{1}{1-F_{e}+\frac{1}{S_{e}}}
@@ -208,39 +204,35 @@
total time affected by the enhancement and $S_{e}$ the speedup of the improved
part of the system.
-Using \EM{} in conjunction with DineroIV,
-simple assignments can be designed in order to help students to
-understand how the overall performance of the system is governed by
-the slowest component.
-There are two main categories of assignment that can be proposed to
-students:
+Using \EM{} in conjunction with DineroIV, simple assignments can be designed in
+order to help students understand how the overall performance of the system is
+governed by the slowest component.
+There are two main categories of assignment that can be proposed to students:
\begin{itemize}
-\item Assignments that ask them to compute the
-speedup of the system if a particular component improves its
-performances, in other words, the direct usage of Amdahl's law in order
-to compute $S_{overall}$ from a given $F_e$ and $S_e$.
-\item Assignments that ask students to find which would be
-the required $S_e$ of a particular component in order to achieve a
-global overall system speedup. This is an inverse usage of
-Amdahl's law, that is, finding $S_e$ from a given desired
-$S_{overall}$ and known $F_e$.
+\item Assignments that ask them to compute the speedup of the system if a
+ particular component improves its performance, in other words, the direct
+ usage of Amdahl's law in order to compute $S_{overall}$ from a given $F_e$ and
+ $S_e$.
+\item Assignments that ask students to find which would be the required $S_e$ of
+ a particular component in order to achieve a global overall system speedup.
+ This is an inverse usage of Amdahl's law, that is, finding $S_e$ from a given
+ desired $S_{overall}$ and known $F_e$.
\end{itemize}
-Example assignments:
+Sample assignments:
\begin{itemize}
\item \emph{Starting from the results obtained when executing a given MIPS64 program
code on separated instruction and data caches, compute the overall
speedup that would be achieved if the L1 data cache had only half of the
-previously reported demand misses.}
+previously-reported demand misses.}
\item \emph{Starting from the results obtained when executing your
program code on unified L1 cache memory, find the miss penalty that
would be needed to get an overall system speedup of $30\%$ in
performance.}
\end{itemize}
-Both assignments stress students' ability to compute quantitatively the
-correct $F_e$ from execution statistics. A very interesting feature is
-present in the second category, which can result in a negative value
-for $S_e$; this is useful to make the students understand that
-sometimes a desired speedup cannot be obtained, no matter how much of
-the $S_e$ of the component is improved.
+Both assignments stress students' ability to compute quantitatively the correct
+$F_e$ from execution statistics. A very interesting feature is present in the
+second category, which can result in a negative value for $S_e$; this is useful
+to make the students understand that sometimes a desired speedup cannot be
+obtained, no matter how much the $S_e$ of the component is improved.
|