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 ...
Practical experience
<ul><li>I am a Computer Architect, not a Software Engineer </li></ul><ul><li>I was a C programmer, and sceptical about the...
<ul><li>I discovered Smalltalk during a stage at the UBO, some five years ago </li></ul><ul><li>I developed my last proces...
Using VisualWorks V5i.3 Smalltalk
Teaching Computer Architecture
Elementary level <ul><li>Parts of a computer </li></ul><ul><li>Von Neumann and Harvard Architectures </li></ul><ul><li>Bas...
Intermediate level <ul><li>Assembly programming </li></ul><ul><li>Input/output and exception management </li></ul><ul><li>...
Advanced level <ul><li>Control unit design </li></ul><ul><li>Instruction level parallelism </li></ul><ul><li>Superscalar a...
The only affordable way to carry out practical - laboratory - work on the highlighted items is through  simulation
The ideal laboratory environment <ul><li>Homogeneous for all levels/simulators </li></ul><ul><li>Platform (OS) independent...
The simulators
The First Development <ul><li>General circuit simulator </li></ul><ul><li>Based on the classes  </li></ul><ul><ul><li>CPUR...
The First Development <ul><li>Simulation engine based on  value holders </li></ul><ul><li>Developed and tested in 2 months...
 
The Second Development <ul><li>Second version of the previous simulator </li></ul><ul><li>Used to teach Control Unit desig...
 
The Last Development <ul><li>Fully new simulator design </li></ul><ul><li>Used by more than 600 students during 2 academic...
The Last Development <ul><li>Basic Processor for the elementary level </li></ul><ul><li>The instruction set was not fully ...
The Last Development <ul><li>The processor-like model was not suitable </li></ul><ul><li>Execution is responsibility of ea...
 
The Last Development <ul><li>New instructions were continuously added to fit the requirements of the teachers </li></ul><u...
 
Why Smalltalk?
<ul><li>Building rich user interfaces is fast and easy </li></ul><ul><li>All the simulators have the same look and feel </...
<ul><li>Simple systems are easy to build, upgrade and modify </li></ul><ul><li>Complex systems are easy to grow from simpl...
<ul><li>Simulators can be built focusing on the important aspects, without worrying about data types, instruction coding.....
The Future
<ul><li>Smalltalk is well established in my research team  </li></ul><ul><li>Other colleagues teaching Computer Architectu...
Smalltalk to teach Computer Architecture Germán Fabregat [email_address]
Upcoming SlideShare
Loading in …5
×

Smalltalk to teach Computer Architecture

680 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
680
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Smalltalk to teach Computer Architecture

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

×