An Integrated Approach to Teaching Computing Systems Architecture

Slides:



Advertisements
Similar presentations
C.Sc. 110 Computer Science 113: Computer Systems.
Advertisements

Real-time Systems Lab, Computer Science and Engineering, ASU Please Standby Galileo Tech Talk at ASU Will Begin Shortly.
1-1 Welcome to: CSC225 Introduction to Computer Organization Paul Hatalsky.
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
1 i206: Distributed Computing Applications & Infrastructure 2012
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
CSCE 611: Conceptual Modeling Tools for CAD Course goals: –Design and verification methodologies for large-scale digital systems using industrial tools.
Architectural Support for Operating Systems. Announcements Most office hours are finalized Assignments up every Wednesday, due next week CS 415 section.
1  1998 Morgan Kaufmann Publishers Lectures for 2nd Edition Note: these lectures are often supplemented with other materials and also problems from the.
Figure 1.1 Interaction between applications and the operating system.
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
1/21/2010CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying.
ECE 232 L1 Intro.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 1 Introduction.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 14 Epilogue: A Look Back at the Journey ©Copyright 2008 Umakishore.
COM181 Computer Hardware Ian McCrumRoom 5B18,
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
1 Instant replay  The semester was split into roughly four parts. —The 1st quarter covered instruction set architectures—the connection between software.
Advances in Language Design
Chapter 1 CSF 2009 Computer Abstractions and Technology.
Computer System Architectures Computer System Software
Designing a Multi-Disciplinary Hybrid Vehicle Systems Course Curriculum Suitable for Multiple Departments Dr. Vincent Winstead Assistant Professor Minnesota.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Cs 152 L1 Intro.1 Patterson Fall 97 ©UCB What is “Computer Architecture” Computer Architecture = Instruction Set Architecture + Machine Organization.
Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.
ICOM Noack Operating Systems - Administrivia Prontuario - Please time-share and ask questions Info is in my homepage amadeus/~noack/ Make bookmark.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Introduction to Operating Systems Chapter 1. cs431 -cotter2 Lecture Objectives Understand the relationship between computing hardware, operating system,
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
EET 4250: Chapter 1 Computer Abstractions and Technology Acknowledgements: Some slides and lecture notes for this course adapted from Prof. Mary Jane Irwin.
CS/ECE 3330 Computer Architecture Kim Hazelwood Fall 2009.
Operating Systems Lecture 02: Computer System Overview Anda Iamnitchi
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 1 Introduction ©Copyright 2008 Umakishore Ramachandran and William.
Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.
(1) ECE 3056: Architecture, Concurrency and Energy in Computation Lecture Notes by MKP and Sudhakar Yalamanchili Sudhakar Yalamanchili (Some small modifications.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 12 Overview and Concluding Remarks.
Lecture 01: Welcome Computer Architecture! Kai Bu
CSNB334 Advanced Operating Systems Course Introduction Lecturer: Abdul Rahim Ahmad.
Introducing Every CS Major to Parallel Programming: Baby Steps at Ohio State Gagan Agrawal Feng Qin P. Sadayappan.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
1 Advanced Operating Systems - Fall 2009 Lecture 2 – January 12, 2009 Dan C. Marinescu Office: HEC 439 B.
Operating Systems CSE 411 Revision and final thoughts Revision and final thoughts Dec Lecture 33 Instructor: Bhuvan Urgaonkar.
Cheating The School of Network Computing, the Faculty of Information Technology and Monash as a whole regard cheating as a serious offence. Where assignments.
CS151 Introduction to Digital Design Noura Alhakbani Prince Sultan University, College for Women.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
Computer Organization Yasser F. O. Mohammad 1. 2 Lecture 1: Introduction Today’s topics:  Why computer organization is important  Logistics  Modern.
1 CS/ECE 354 Fall 2013 “New, and improved!”. 2 Karen Miller Phone: CS.
Course Book Course Objective - The student will be able to describe various operating system concepts as they are applied to memory, process, file system.
Introduction and Overview Winter 2013 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
Lecture 01: Welcome Computer Architecture! Kai Bu
Introduction to Operating Systems Concepts
Introduction to Operating Systems
ECE 3056: Architecture, Concurrency and Energy in Computation
Java programming lecture one
COT 5611 Operating Systems Design Principles Spring 2014
COT 5611 Operating Systems Design Principles Spring 2012
GEOMATIKA UNIVERSITY COLLEGE CHAPTER 2 OPERATING SYSTEM PRINCIPLES
COSC121: Computer Systems
CSC Classes Required for TCC CS Degree
T Computer Architecture, Autumn 2005
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Course Outline for Computer Architecture
Chapter 13: I/O Systems.
Presentation transcript:

An Integrated Approach to Teaching Computing Systems Architecture Kishore Ramachandran & Bill Leahy College of Computing Georgia Institute of Technology

Outline Traditional approach Pedagogy of new approach Where does it fit and how do we put it in practice? Experience at Tech Evaluating the pedagogy Challenges Comparison to other pedagogical models Concluding remarks

Traditional Approach Stovepipe model Georgia Tech Architecture and OS as distinct courses usually in the junior/senior years Georgia Tech Followed similar model until 1999 Two junior level courses one on OS and the other on architecture

What is wrong with the traditional approach? Symbiotic relationship missed High level language and instruction sets OS abstractions and processor Network protocols and physical network Students get this? Not if compartmentalized Gap between the time when the courses are taken Concepts forgotten Connections not seen at all by the students most of the time

Why change? Problems with the traditional approach Changing CS scene New areas evolving Graphics, visualization, HCI Need rethinking of “core” UG research involvement Need to infuse interest early Entry level for systems research high

New approach Excitement of middle-school kids An integrated course What is inside a box? What makes it play cool music or video games? An integrated course Combining OS and architecture Goal of the course “Unraveling the box” Take the journey together exploring hardware and the OS abstractions Emphasize connectedness

Pedagogy of new approach Present what is “inside a box” Processor module Memory module I/O and storage module Parallel module Network module Key differentiator Concomitant treatment of hardware and software in each module

Pedagogical style Discovery as opposed to indoctrination or instruction Top down approach Start with problem to be solved Explore solution space together Example: What is memory management? Understand the need first Discover the software issues and the corresponding hardware issues Story telling approach Keeps the student interest alive

Processor module HLL constructs and their influence on instruction-set design Simple implementation followed by performance-conscious pipelined implementation Process abstraction in OS and processor scheduling

Memory module Memory management in OS Architectural issues Memory hierarchies

I/O and storage module Program discontinuities including interrupts, traps, and exceptions Processor mechanisms OS mechanisms Devices and device drivers Emphasis on disk subsystem Storage abstraction File system fundamentals

Parallel module Introduce threads as a programming construct OS issues for supporting parallel programming Architectural issues for supporting parallel programming

Network module Evolution of networking hardware Network protocol stack

Connecting the different modules HLL constructs lead to design of instruction-set for LC-2200 Processor implementation of LC-2200 Memory management assists to LC-2200 Interrupt and DMA support to LC-2200 ……

Why parallelism in a first course? Our motivation then (circa 98) Love affair of CS with parallelism PL and concurrency OS and concurrency Enablers in the 90’s Java, MT OS, multiple CPUs in desktops In hindsight now Multicore CPUs Multithreading as a programming concept in intro courses

Why networking in a first course? “box” without connectivity is no good today Protocol stack is an integral part of any OS Our motivation Understand evolution of networking gear Understand mechanisms needed in protocol stack Understand how a “box” avails of network services

Where does this course fit? Assumed knowledge Logic design, assembly language, and C programming New course is a first systems course Preferably in sophomore year What follows? Advanced architecture, OS, networking courses For those following other pursuits Sufficient exposure to “core”

Putting this pedagogical style in practice 4 credit-hour semester course or 5-credit hour quarter course 45 hours of lecture Roughly 9 hours for each module (some more than others) 60-90 hours of unsupervised lab time for projects

Experience at Georgia Tech CS 2200 introduced in Fall 1999 Project component for each module Concepts “get in” via projects Collaboration allowed Key is “learning” Creativity in evaluation

Evaluating the pedagogy CS students hardware-averse OS and hardware together makes “sense” Hardware design as an algorithmic exercise Successful internships Anecdotal evidence from industries and students Concepts learned early apply to other domains (e.g. web caching)

Students better prepared for advanced courses Informal poll At beginning of course 10% interested in the course At end of course Majority feel the course was useful and important Increased interest in systems Number of UG students doing research in systems

Other reasons why this is a good approach Allows curricular innovation GT CS has been a leader of innovation Evidence New ThreadsTM approach Chapter 7, Pages 309-315, “The Right Stuff,” from THE WORLD IS FLAT: UPDATED AND EXPANDED EDITION, by Thomas L. Friedman

Meeting the Challenges Textbook Good books available for the stovepipe model None for an integrated model We developed comprehensive notes and slides Used standard textbooks as background Responding to students Turned our courseware into online textbook in 2005 To match the style and content Available to the community In use for 8 consecutive semesters (including summers)

Adopting the pedagogical style Online textbook Extensive online slides Several detailed project ideas from 7+ years of teaching this course Several problem sets and model exams online In short Painless transition from stovepipe model to this one

Comparison to other recent pedagogical models Patt and Patel Logic design, assembly language, plus C Ideal as a pre-req for our course Bryant and O’Hallaron Programmer’s perspective Goal How to create “power programmers”? Important but different from our focus Best applied to senior level UG A worthy follow on to our course

Saltzer and Kaashoek System building blocks that appear in different large complex software systems Goal How to prepare students who can create modular software systems? A worthy follow on to our course

Concluding remarks An integrated approach to teaching computer system architecture at sophomore level Been in practice at GT for 7+ years Online textbook, slides, project ideas, and tools available for the whole community

Applause!!! 

Project: Processor Design Students given datapath 90% complete Project entails Completing the datapath Writing micro-code for implementing LC-2200 instruction set Circuit design using LogicWorks

Project: Interrupts and I/O Students supplied with LC-2200 simulator and LC-2200 assembler Project entails Adding circuitry to project 1 for handling interrupts Enhancing the simulator to deal with interrupts Writing an interrupt handler (in LC-2200 assembly) to work with the enhanced simulator

Project: Virtual memory subsystem Students supplied with a processor plus memory system simulator Project entails Developing a page-based VM system on top Experimenting with different page replacement algorithms

Project: MT OS Students provided with a processor plus memory system simulator Project entails Implementing multithreaded OS modules for managing the CPU and I/O scheduling queues Parallel programming using pthreads Experimenting with different CPU scheduling algorithms

Project: Reliable Transport Layer Students provided with a simulated network layer Project entails Implementing a reliable transport that deals with Packet corruption Lost packets Out-of-order delivery of packets Parallel programming using pthreads