310 likes | 326 Views
Practical experiences and levels of teaching computer architecture using SmallTalk, simulators, and processors. Learn the basics, intermediate, and advanced concepts with user-friendly tools.
E N D
Smalltalk to teach Computer Architecture ESUG 2003 Meeting Bled, Slovenia. August 2003
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Germán Fabregat Computer Architecture Group Departamento de Ingeniería y Ciencia de los Computadores University Jaume I Castellón, SPAIN
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Practical experience
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 • I am a Computer Architect, not a Software Engineer • I was a C programmer, and sceptical about the use of Smalltalk except to play with
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 • I discovered Smalltalk during a stage at the UBO, some five years ago • I developed my last processor simulator during a week, and is used by more than 300 students per year
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Using VisualWorks V5i.3 Smalltalk
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Teaching Computer Architecture
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Elementary level • Parts of a computer • Von Neumann and Harvard Architectures • Basics of the execution of programs
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Intermediate level • Assembly programming • Input/output and exception management • Basics of the CPU internals
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Advanced level • Control unit design • Instruction level parallelism • Superscalar and VLIW processors • Performance issues
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The only affordable way to carry out practical -laboratory- work on the highlighted items is through simulation
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The ideal laboratory environment • Homogeneous for all levels/simulators • Platform (OS) independent (more than 5 labs and 500 students) • Easy to modify, upgrade, customize, manipulate... • Complex things -VHDL- are not really required (nor desired)
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The simulators
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The First Development • General circuit simulator • Based on the classes • CPURegister • CPUCombinatorial
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The First Development • Simulation engine based on value holders • Developed and tested in 2 months, with no previous Smalltalk programming experience
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The Second Development • Second version of the previous simulator • Used to teach Control Unit design at the University of Bretagne Occidentale. Brest, France
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The Last Development • Fully new simulator design • Used by more than 600 students during 2 academic years • Developed in a week (the basic version)
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The Last Development • Basic Processor for the elementary level • The instruction set was not fully known during the development • Changes and upgrades were expected during the first weeks of use
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The Last Development • The processor-like model was not suitable • Execution is responsibility of each instruction • Each instruction type is a subclass of the root class Instruction
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The Last Development • New instructions were continuously added to fit the requirements of the teachers • The processor was easily upgraded to support interrupts and input/output • The executable image can be obtained at http:/mermaja.act.uji.es/otros/pb/pbintro.html
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 Why Smalltalk?
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 • Building rich user interfaces is fast and easy • All the simulators have the same look and feel • The applications are platform independent
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 • Simple systems are easy to build, upgrade and modify • Complex systems are easy to grow from simpler ones, adding components in a modular way
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 • Simulators can be built focusing on the important aspects, without worrying about data types, instruction coding... • Pre-built high level tools -parsers- can be added to allow user configurability • ...
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 The Future
SmallTalk to teach Computer Architecture - ESUG 2003 Meeting - Bled, Slovenia. August 2003 • Smalltalk is well established in my research team • Other colleagues teaching Computer Architecture prefer using Java • While the new panacea for the teachers of programming is Python
Smalltalk to teach Computer Architecture Germán Fabregat fabregat@icc.uji.es