The Sloop ISA and the SMOK toolkit

  • Authors:
  • B. Dugan;J. Zahorjan

  • Affiliations:
  • University of Washington, Seattle, WA;University of Washington, Seattle, WA

  • Venue:
  • Journal on Educational Resources in Computing (JERIC)
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Sloop-SMOK is a toolkit designed to improve the student design experience in a machine organization course taken by undergraduates in their first year as computer science majors. Students in this course have had some programming experience, and may have taken a one-quarter digital design course. Before Sloop-SMOK, assignments in this course were typically assembly language program implementations of functions related to architecture. The major goals in building Sloop-SMOK were to improve the relevance of homework assignments to machine organization and to emphasize some fundamental concepts of modern processors not easily addressed previously.Sloop-SMOK has two components. The Sloop is a machine architecture designed to allow implementation of a modern version of the 6502, the processor used in one of the early Atari game stations. The Sloop defines a RISC ISA and a set of on-the-fly translations from the original 6502 CISC ISA into Sloop instructions. The Sloop Machine Organization Kit (SMOK) is a general-purpose software machine organization simulator. The components of a SMOK model are at the level of detail found in typical machine organization texts: ALUs, register files, logic gates, and the like. SMOK provides a graphical interface to construct and debug models.As homework assignments, students use SMOK to build Sloop machines that successfully run most original 6502 games. Extensions to SMOK provide specific help with these Sloop models. Of particular importance is support for debugging: SMOK, when used to build a Sloop machine, runs a software 6502 simulator and compares the behavior of the student's Sloop machine against the simulator on a per-memory-operation basis. This feature simplifies debugging of Sloop machine organization by raising an error at the earliest cycle at which the student's machine is known to deviate from correct behavior.Sloop-SMOK, including downloadable software, documentation, and course assignments, is available at http://www.cs.washington.edu/software/SMOK