Smalltalk to teach Computer Architecture
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Smalltalk to teach Computer Architecture

Uploaded on

Germán Fabregat: Smalltalk to teach Computer Architecture (ESUG 2003, Bled) ...

Germán Fabregat: Smalltalk to teach Computer Architecture (ESUG 2003, Bled)

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Smalltalk to teach Computer Architecture ESUG 2003 Meeting Bled, Slovenia. August 2003
  • 2. Germán Fabregat Computer Architecture Group Departamento de Ingeniería y Ciencia de los Computadores University Jaume I Castellón, SPAIN
  • 3. Practical experience
  • 4.
    • 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
  • 5.
    • 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
  • 6. Using VisualWorks V5i.3 Smalltalk
  • 7. Teaching Computer Architecture
  • 8. Elementary level
    • Parts of a computer
    • Von Neumann and Harvard Architectures
    • Basics of the execution of programs
  • 9. Intermediate level
    • Assembly programming
    • Input/output and exception management
    • Basics of the CPU internals
  • 10. Advanced level
    • Control unit design
    • Instruction level parallelism
    • Superscalar and VLIW processors
    • Performance issues
  • 11. The only affordable way to carry out practical - laboratory - work on the highlighted items is through simulation
  • 12. 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)
  • 13. The simulators
  • 14. The First Development
    • General circuit simulator
    • Based on the classes
      • CPURegister
      • CPUCombinatorial
  • 15. The First Development
    • Simulation engine based on value holders
    • Developed and tested in 2 months, with no previous Smalltalk programming experience
  • 16.  
  • 17. The Second Development
    • Second version of the previous simulator
    • Used to teach Control Unit design at the University of Bretagne Occidentale. Brest, France
  • 18.  
  • 19. The Last Development
    • Fully new simulator design
    • Used by more than 600 students during 2 academic years
    • Developed in a week (the basic version)
  • 20. 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
  • 21. 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
  • 22.  
  • 23. 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:/
  • 24.  
  • 25. Why Smalltalk?
  • 26.
    • Building rich user interfaces is fast and easy
    • All the simulators have the same look and feel
    • The applications are platform independent
  • 27.
    • Simple systems are easy to build, upgrade and modify
    • Complex systems are easy to grow from simpler ones, adding components in a modular way
  • 28.
    • 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
    • ...
  • 29. The Future
  • 30.
    • 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
  • 31. Smalltalk to teach Computer Architecture Germán Fabregat [email_address]