Course Outline Computing Science Department. Faculty of Science. COMP Credits Introduction to Computer Systems (3,1,0) Fall 2015

Similar documents
School of Computer Science

Computer Systems A Programmer s Perspective 1 (Beta Draft)

COURSE DESCRIPTION. CS 232 Course Title Computer Organization. Course Coordinators

«Computer Science» Requirements for applicants by Innopolis University

INTRODUCTION OF MICROPROCESSOR& INTERFACING DEVICES Introduction to Microprocessor Evolutions of Microprocessor

Programming Languages (PL)

Introduction to Computer Systems

COMPUTER ARCHTECTURE

Problem solving using standard programming techniques and Turbo C compiler.

Final Lecture. A few minutes to wrap up and add some perspective

2c. Content of Computer systems (Component 01)

COMP3221: Microprocessors and. Embedded Systems

Academic Course Description. EM2101 Computer Architecture

Introduction to Computer Systems

Introduction to Computer Systems

Introduction to Computer Systems

EECE 321: Computer Organization

Instr. execution impl. view

ELEC 5200/6200 Computer Architecture and Design Spring 2017 Lecture 7: Memory Organization Part II

Chris Riesbeck, Fall Introduction to Computer Systems

Lecture 1: Course Introduction and Overview Prof. Randy H. Katz Computer Science 252 Spring 1996

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra

Course web site: teaching/courses/car. Piazza discussion forum:

378: Machine Organization and Assembly Language

Computer Organization

BCS Higher Education Qualifications. Level 4 Certificate in IT. Computer Network Technology Syllabus

UPY14602-DIGITAL ELECTRONICS AND MICROPROCESSORS Lesson Plan

Course Description: This course includes concepts of instruction set architecture,

COURSE DELIVERY PLAN - THEORY Page 1 of 6

Honorary Professor Supercomputer Education and Research Centre Indian Institute of Science, Bangalore

Course Outline. Department of Computing Science Faculty of Science. COMP 3450 Human Computer Interaction Design (3,1,0) Fall 2015

COURSE DELIVERY PLAN - THEORY Page 1 of 6

Computer Organization & Assembly Language Programming (CSE 2312)

Instructor Information

Pipelining, Instruction Level Parallelism and Memory in Processors. Advanced Topics ICOM 4215 Computer Architecture and Organization Fall 2010

Chapter 2. OS Overview

INTELLIGENCE PLUS CHARACTER - THAT IS THE GOAL OF TRUE EDUCATION UNIT-I

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING QUESTION BANK

Curriculum 2013 Knowledge Units Pertaining to PDC

Computer Architecture Today (I)

Overview of the ECE Computer Software Curriculum. David O Hallaron Associate Professor of ECE and CS Carnegie Mellon University

CS6303 Computer Architecture Regulation 2013 BE-Computer Science and Engineering III semester 2 MARKS

All MSEE students are required to take the following two core courses: Linear systems Probability and Random Processes

Chapter Seven Morgan Kaufmann Publishers

COMPUTER ARCHITECTURE

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Learning objectives. Computer principles The characteristics of contemporary processors, input, output and storage devices

Summary of Computer Architecture

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE) UNIT-I

Computer Organization and Design, 5th Edition: The Hardware/Software Interface

COURSE STRUCTURE AND SYLLABUS APPROVED IN THE BOARD OF STUDIES MEETING HELD ON JULY TO BE EFFECTIVE FROM THE ACADEMIC YEAR

Introduction to Computer Systems

Computer Architecture And Organization By John P Hayes Ppt

SIR C.R.REDDY COLLEGE OF ENGINEERING, ELURU DEPARTMENT OF INFORMATION TECHNOLOGY LESSON PLAN

Lecture Topics. Principle #1: Exploit Parallelism ECE 486/586. Computer Architecture. Lecture # 5. Key Principles of Computer Architecture

Donn Morrison Department of Computer Science. TDT4255 Memory hierarchies

QUESTION BANK UNIT-I. 4. With a neat diagram explain Von Neumann computer architecture

Compulsory course in Computer Science

Overview of Computer Organization. Outline

CMSC Computer Architecture Lecture 18: Exam 2 Review Session. Prof. Yanjing Li University of Chicago

Syllabus for Computer Science General Part I

2. (a) Compare the characteristics of a floppy disk and a hard disk. (b) Discuss in detail memory interleaving. [8+7]

Computer Organization

Outline Marquette University

OCR Level 3 Advanced GCE in Computer Science (H446)

CS 61C: Great Ideas in Computer Architecture. Direct Mapped Caches

CSE A215 Assembly Language Programming for Engineers

06-2 EE Lecture Transparency. Formatted 14:50, 4 December 1998 from lsli

COMPUTER ORGANIZATION AND ARCHITECTURE

Parallel and Distributed Computing (PD)

CPE300: Digital System Architecture and Design

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

Objective. We will study software systems that permit applications programs to exploit the power of modern high-performance computers.

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck

CSC258: Computer Organization. Memory Systems

Verizon Next Step Program Course Outline. Telecommunications Technology: Verizon

PART A (22 Marks) 2. a) Briefly write about r's complement and (r-1)'s complement. [8] b) Explain any two ways of adding decimal numbers.

Caches Concepts Review

KING FAHD UNIVERSITY OF PETROLEUM & MINERALS COMPUTER ENGINEERING DEPARTMENT

Computer Architecture Review. ICS332 - Spring 2016 Operating Systems

Overview of Computer Organization. Chapter 1 S. Dandamudi

LECTURE 4: LARGE AND FAST: EXPLOITING MEMORY HIERARCHY

High Performance Computing Lecture 1. Matthew Jacob Indian Institute of Science

5 Computer Organization

ELE 375 Final Exam Fall, 2000 Prof. Martonosi

Computer Systems Architecture Spring 2016

IT-2670: C/C++ PROGRAMMING LANGUAGE

VHDL for Synthesis. Course Description. Course Duration. Goals

How What When Why CSC3501 FALL07 CSC3501 FALL07. Louisiana State University 1- Introduction - 1. Louisiana State University 1- Introduction - 2

A Cache Hierarchy in a Computer System

Memory Hierarchies. Instructor: Dmitri A. Gusev. Fall Lecture 10, October 8, CS 502: Computers and Communications Technology

Reducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip

Day Hour Timing pm pm am am

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

Adapted from instructor s supplementary material from Computer. Patterson & Hennessy, 2008, MK]

CPS104 Computer Organization Lecture 1

CS 61C: Great Ideas in Computer Architecture. The Memory Hierarchy, Fully Associative Caches

CS 200: Computer Organization

CS6303-COMPUTER ARCHITECTURE UNIT I OVERVIEW AND INSTRUCTIONS PART A

Computer Architecture. Fall Dongkun Shin, SKKU

Transcription:

Coue Outline Computing Science Department Faculty of Science COMP 2130 3 Credits Introduction to Computer Systems (3,1,0) Fall 2015 Instructor: Office: Office Hou: Phone/Voice Mail: E-Mail: CALEND DESCRIPTION Students learn the basic concepts of computer systems. Students are introduced to the concepts of computer architecture, the C and assembly programming languages as well as the use of Linux operating system. Students learn about memory organization, data representation, and addressing. Students are introduced to the concepts of machine language, memory, caches, virtual memory, linkage and assembler construction as well as exceptions and processes. PREREQUISITES COMP 1230 or COMP 2120, and COMP 1380 or MATH 1700 EDUCATIONAL OBJECTIVES/OUTCOMES Upon successful completion of the coue, the student will demonstrate the ability to: Undetand the fundamentals of computer architecture. Familiar with programming through the powerful C programming language. Familiar with programming through assembly language. Undetand critical relationship between programming and computer architecture. Undetand the efficient programming through code optimization. TEXTS/MATERIALS The coue uses the following texts: B1: Bryant and O Hallaron, Computer Systems: A Programmer s Pepective, 2/E, Prentice Hall, 2011 ISBN 10: 0-13-610804-0 B2: Kernighan and Ritchie, The C Programming Language, Prentice Hall, 1988, ISBN 10: 0-13-110362-8 B3: David A. Patteon and John L. Hennessy, Computer Organization and Design, Morgan Kaufmann - Fifth Edition, 2013, ISBN-13: 978-0124077263

SYLLABUS - Lecture & Lab Topics: Coue Topics Reference to Text Duration** Book* 1. Basic concepts of digital systems: 1.1 Introduction B3-Appendix B.1 1.5 weeks 1.2 Gates, Truth Tables, and Logic Equations B3-Appendix B.2 1.3 Combinational Logic B3-Appendix B.3 1.4 Using HW Description Language B3-Appendix B.4 1.5 Clocks B3-Appendix B.7 1.6 Memory Elements B3-Appendix B.8 1.7 SRAMs and DRAMs B3-Appendix B.9 1.8 FSM B3-Appendix B.10 2. Computer Abstraction and Technology 2.1 Introduction B3-Chapter 1:1.1-1.2 1 week 2.2 The compilation system B3-Chapter 1:1.3 & 2.3 Computer Architecture and Processor Technology 2 B1-Chapter 1:1.2-1.3 B3- Chapter 1:1.4-1.5 & B1-Chapter 1:1.4-1.6 2.3 How OS manages HW B1-Chapter 1:1.7-1.8 3. Introduction to Linux OS and C Language 3.1 Getting Familiar with Linux Instructor notes 2.5 weeks 3.2 Introduction to C Programming B2-Chapter 1-4 3.3 Advanced C Programming B2-Chapter 5-8 4. Memory Organization, Data representation, and Addressing 4.1 Information Storage B1-Chapter 2:2.1 1 week 4.2 Integer Representation and Floating Point Numbe B1-Chapter 2:2.2&2.4 5. Basics of Architecture, Machine Code 5.1 A Historical Pepective B1-Chapter 3:3.1 1 week 5.2 Program Encodings B1-Chapter 3:3.2 5.3 Data Formats B1-Chapter 3:3.3 6. Machine Level Programming 6.1 Arithmetic and Logical Operations B1-Chapter 3:3.5 1 week 6.2 Control B1-Chapter 3:3.6 6.3 Procedures B1-Chapter 3:3.7 6.4 Arrays B1-Chapter 3:3.8 7. Memory and Caches 7.1 Storage Technologies B1-Chapter 6:6.1 2 week 7.2 Locality B1-Chapter 6:6.2 7.3 The Memory Hierarchy B1-Chapter 6:6.3 7.4 Cache Memories B1-Chapter 6:6.4 7.5 Writing Cache-friendly Code B1-Chapter 6:6.5 7.6 Putting It Together: The Impact of Caches on Program Performance B1-Chapter 6:6.6

8. Linking 8.1 Compiler Drive B1-Chapter 7:7.1 2 week 8.2 Static Linking B1-Chapter 7:7.2 8.3 Object Files B1-Chapter 7:7.3 8.4 Relocatable Object Files B1-Chapter 7:7.4 8.5 Symbols and Symbol Tables B1-Chapter 7:7.5 8.6 Symbol Resolution B1-Chapter 7:7.6 8.7 Relocation B1-Chapter 7:7.7 8.8 Executable Object Files B1-Chapter 7:7.8 8.9 Loading Executable Object Files B1-Chapter 7:7.9 8.10 Dynamic Linking with Shared Libraries B1-Chapter 7:7.10 8.11 Loading and Linking Shared Libraries from B1-Chapter 7:7.11 Applications 9. Exceptions and Processes 9.1 Exceptions B1-Chapter 8:8.1 0.5 week 9.2 Processes B1-Chapter 8:8.2 9.3 System Call Error Handling B1-Chapter 8:8.3 9.4 Process Control B1-Chapter 8:8.4 10. Virtual Memory 10.1 Physical and Virtual Addressing B1-Chapter 9:9.1 0.5 week 10.2 Address Spaces B1-Chapter 9:9.2 10.3 VM as a Tool for Caching B1-Chapter 9:9.3 10.4 VM as a Tool for Memory Management B1-Chapter 9:9.4 * This is just a reference to the reading material. ** Tentative duration. Lab Topics Introduction to Linux & Setting up the VM C Programming Labs Basic assembly language programming Advanced C Programming Labs Testing and Debugging 3

ACM / IEEE Knowledge Area Coverage IEEE Knowledge Areas that contain topics and learning outcomes covered in the coue Knowledge Area Total Hou of Coverage /Digital Logic and Digital Systems 3 /Machine Level Representation of Data 3 /Assembly Level Machine Organization 6 /Memory System Organization and 3 Architecture /Interfacing and Communication 1 PL/Basic Type Systems 2.5 SF/Computational Paradigms 3 SF/State and State Machines 3 SF/Evaluation 3 IEEE Body of Knowledge coverage KA Knowledge Unit Topics Covered T1 Digital Logic and Digital Systems Overview and history of computer architecture Combinational vs. sequential logic/field programmable gate arrays as a fundamental combinational + sequential logic building block Multiple representations/laye of interpretation (hardware is just another layer) Computer-aided design tools that process hardware and architectural representations Register transfer notation/hardware Description Language (Verilog/VHDL) Physical constraints (gate delays, fanin, fan-out, energy/power) T2 Electiv e 0 3 0 4

KA Knowledge Unit Topics Covered T1 /Machine Level Representation of Data /Assembly Level Machine Organization /Memory System Organization and Architecture /Interfacing and Communication Bits, bytes, and words Numeric data representation and number bases Fixed- and floating-point systems Signed and twos-complement representations Representation of non-numeric data (character codes, graphical data) Representation of records and arrays Basic organization of the von Neumann machine Control unit; instruction fetch, decode, and execution Instruction sets and types (data manipulation, control, I/O) Assembly/machine language programming Instruction formats Addressing modes Subroutine call and return mechanisms (cross-reference PL/Language Translation and Execution) I/O and interrupts Heap vs. Static vs. Stack vs. Code segments Shared memory multiprocesso/multicore organization Storage systems and their technology Memory hierarchy: importance of temporal and spatial locality Main memory organization and operations Latency, cycle time, bandwidth, and interleaving Cache memories (address mapping, block size, replacement and store policy) Multiprocessor cache consistency/using the memory system for inter-core synchronization/atomic memory operations Virtual memory (page table, TLB) Fault handling and reliability Error coding, data compression, and data integrity (cross-reference SF/Reliability through Redundancy) I/O fundamentals: handshaking, buffering, programmed I/O, interrupt-driven I/O Interrupt structures: vectored and 5 T2 Electiv e 0 3 0 0 6 0 0 3 0 0 1 0

prioritized, interrupt acknowledgment External storage, physical organization, and drives Buses: bus protocols, arbitration, directmemory access (DMA) Introduction to networks: communications networks as another layer of remote access PL PL/Basic Type Systems o type as a set of values together with a set of operations o Primitive types (e.g., numbe, Booleans) o Compound types built from other types (e.g., records, unions, arrays, lists, functions, references) Association of types to variables, arguments, results, and fields Type safety and erro caused by using values inconsistently given their intended types Goals and limitations of static typing o Eliminating some classes of erro witt running the program o Undecidability means static analysis must conservatively approximate program behavior 0.5 2 0 SF SF/Computational Paradigms Generic types (parametric polymorphism) o Definition o Use for generic libraries such as collections o Comparison with ad hoc polymorphism (overloading) and subtype polymorphism Complementary benefits of static and dynamic typing o Erro early vs. erro late/avoided Enforce invariants during code development and code maintenance vs. postpone typing decisions while prototyping and conveniently allow flexible coding patterns such as heterogeneous collections o Avoid misuse of code vs. allow more code reuse o Detect incomplete programs vs. allow incomplete programs to run Basic building blocks and components of a computer (gates, flip-flops, registe, interconnections; 3 0 0 6

SF SF/State and State Machines Datapath + Control + Memory) Hardware as a computational paradigm: Fundamental logic building blocks; Logic expressions, minimization, sum of product forms Application-level sequential processing: single thread Simple application-level parallel processing: request level (web services/client-server/distributed), single thread per server, multiple threads with multiple serve Basic concept of pipelining, overlapped processing stages Basic concept of scaling: going faster vs. handling larger problems Digital vs. Analog/Discrete vs. Continuous Systems Simple logic gates, logical expressions, Boolean logic simplification Clocks, State, Sequencing Combinational Logic, Sequential Logic, Registe, Memories Compute and Network Protocols as examples of state machines SF SF/Evaluation Performance figures of merit Workloads and representative benchmarks, and methods of collecting and analyzing performance figures of merit CPI (Cycles per Instruction) equation as tool for undetanding tradeoffs in the design of instruction sets, processor pipelines, and memory system organizations. Amdahl s Law: the part of the computation that cannot be sped up limits the effect of the parts that can 3 0 0 3 0 0 7