||[ Top ]|
Educators in Operating Systems and Computer Organization courses usually face several problems derived from the learning process in the area. Computer Architecture concepts are usually analyzed theoretically, leaving the students with incomplete and sometime erroneous views of how a computer works. These misconceptions remain in higher level courses making difficult a thorough advance in the area. From our point of view, the lack of practical experience is the main issue that makes the underlying complexity not to be fully understood.
Computer organization literature usually emphasizes the behavior of a computer. The complexity of these systems is so high that they are described using several layers. Each of them describes a different abstraction level, allowing to provide higher insight to analyze a given subsystem. The levels usually analyzed include assembly language, instruction sets, microprogramming and digital logic. Lower levels (as transistor, electron or atomic levels) are usually not included. These many layers, described by different models, contribute to loose comprehension of system operation as a whole. Likewise, the detailed behavior of the subsystems and their interaction are complex to be attacked. The introduction of higher levels (Programming Languages, Operating Systems) makes the task even more complex.
It is well known that practice helps to make clear theory. Unfortunately, this is an area where experimental tasks are difficult to accomplish. The construction of computer architectures requires expensive laboratories, and expertise in some areas not widely known in earlier Computer Science courses. Likewise, the existence of hardware or software tools with educational purposes in this area is reduced. In either case, it is also difficult to provide experimental assignments to be fulfilled in the schedule of a standard course. At present most practical experience is achieved at the assembly language level, where the available tools are well known. Nevertheless, assembly programming does not provide experience in instruction set designing, microprogramming or digital logic. With this view in mind, we proposed to build a simulated computer ato be used as educational tool. The tools are public domain and are built to be fully understood by people who have taken an introductory course in computer programming.
The simulated computer was designed using DEVS (hierarchical and discrete event modelling methodology well suited to solve this problem). DEVS provides a systems theoretic framework to describe discrete event systems as a composite of submodels. Each of them can be behavioral (atomic) or structural (coupled), consisting of a time base, inputs and states that are used to compute the next states and outputs. Every model can be integrated into a hierarchy, allowing to reuse tested models. In this way, the security of the simulations is enhanced and productivity is improved. The tool N-CD++ implements the theoretical concepts defined by the DEVS formalism. Atomic models can be programmed in C++, and can be later incorporated to a model class hierarchy. A specification language allows to define coupled models.
This tool was used to build the simulated computer, allowing us to face this task using a formal approach.
Comments: Gabriel A. Wainer - Webmaster: Sebastian Enrique
Last Update: September 14, 2000