1
CSE 2312
Lecture 1 Administration & Introduction
Song Jiang, Ph.D.
Department of Computer Science and Engineering
Computer Organization &
Assembly Language Programming
2
Administration
• Course CSE2312– What: Computer Organization & Assembly Language Programming
– When: Mon. & Wed. 4:00 ~ 5:20pm
– Where: NH 112
– Who: Song Jiang (Office ERB 559) [email protected]
– Office Hour: Mon. & Wed. 2:00 ~ 3:00pm or by appointments
– Homepage: http://ranger.uta.edu/~sjiang/CSE2312-spring-17/CSE2312.htm (Please visit this website regularly)
• About your instructor– PhD from William & Mary, two years at LANL, ten years at Wayne State
– Research areas: file and storage system, operating system, parallel and distributed computing, and high performance computing,
• GTA– Mark Randall Havens (Office ERB 410), [email protected]
– Office hours: 3:40 - 5:10pm T/Th or by appointments
3
Study Materials
• Prerequisites
– Intermediate Programming (CSE 1320)
– Introduction to Computers & Programming (CSE 1310)
– What this really means:
You know at least one programming language.
You generally know how to write/run/test programs.
Elementary knowledge of math and algorithms
• Text book
– Andrew S. Tanenbaum, Structured Computer
Organization, 6th Edition. 2012.
– ISBN-10: 0132916525
– ISBN-13: 978-0132916523
4
Study Materials
• Textbook
– We will not cover all the chapters of the book
– We will not cover all sections of the covered chapters
– We will not fully follow the order of the book
– The contents uncovered in slides/lectures are optional
• Recommended textbooks
– David A. Patterson and John L. Hennessy, Computer Organization and
Design: The Hardware/Software Interface (The Morgan Kaufmann
Series) 5th Edition
– Irvine, Kip. , Assembly Language for Intel-Based Computers, 6th
Edition, Prentice-Hall, Inc., 2011.
– Paul A. Carter, PC Assembly Language, July 2006.
• Acknowledgments– Class slides partially from Dr. Junzhou Huang.
– Material from textbook site
– Materials available on the web
5
Grading
• Distribution
– 25% Homework and Quizzes
– 20% Programming Assignments
– 20% Midterm Exam
– 30% Final Exam
– 5% Class Participation
100%
• Attention
– Homework is as important as any other aspects of your grade!
– Attendance is required.
– The university makeup policy will be strictly adhered to. Generally,
no make-up exams/quizzes except for university sanctioned
reasons.
– When missing an exam/quiz due to unavoidable circumstances,
PLEASE notify the instructor and request a makeup approval
ahead of time.
6
Final Grade
• Final Letter Grade
– [90 100] --- A
– [80 90) --- B
– [70 80) --- C
– [60 70) --- D
– [00 60) --- F
• Note
– [ ] denotes inclusion and ( ) denotes exclusion.
– Your final weighted scores may be curved before assignment of
your letter grade.
7
Assignments
• Homework assignments– Posted on the website, typically due in one week at the beginning
of the class
– Automatic 20% deduction for each day late
– Homework submission will not be accepted if overdue for three or more days
• Programming assignments– Posted on the website, typically due in 1~3 weeks
– They are not designed to have the same difficulty.
– Later assignment are generally harder and hence worth more.
• Collaboration– You may discuss assignments with others, but must write up them
on your own.
– Failure to comply with this policy is a violation of academic integrity
• Start early! Start early! Start early !!!
8
Information
• Course Webpage
– Visit the webpage regularly.
– Announcements, assignments, and lecture notes will be posted there.
• Grade Appeal
– You may appeal the grade in writing (email) within five days.
– Appealed to the GTA firstly (if graded by GTA), then to the instructor, if
necessary.
– Please refer to the UTA Catalog for the detailed guide of grade
appeals.
• Drop Policy
– The university withdrawal policy will be strictly adhered to.
• Others
– Accommodating students with disabilities
– Student Support Services
– ….
9
Questions
10
Course Overview
• What is it?
– Computer organization
– Assembly language programming
• Why is the course about?
– Hardware & Software
• Will I really use this knowledge and skills?
– Necessary knowledge for any CS student
– You may not become a professional assembly programmer or
processor designer but you need know how it works
• How to succeed in this course?
11
Why Are You in This Class?
• Curiosity on how computer actually works.
• To obtain background and be prepared for more
advanced CSE classes
– Digital Logic, Computer Architecture, Operating System, Computer
Network, and Embedded Systems, etc.
• Understand the effect of the architecture on your code
– Learn how to directly control the computer
• To have the necessary background to understand
innovations in the hardware and software
– Your desktop, laptop, ipad, iphone, etc.
• Not necessary to become a professional assembly
programmer
– But to be able to write, debug, and tune small-scale codes.
– To be able to understand innovative ideas.
12
Why Assembly?
• Two main reasons
– Accessibility to system hardware
– Space and time efficiency
• Accessibility to system hardware
– Assembly Language is useful for implementing system software
– Also useful for small embedded system
• Space and Time efficiency
– Understanding sources of program inefficiency
– Tuning program performance
– Writing compact code
13
iPhone Processor
620MHz ARM chip
14
Inside Blackberry Torch
15
Ipad A4 Processor
16
Computer Organization
• Architecture:
– Art or science?
• What’s Inside?
• How is it put together?
• How does it work?
17
Main Component
• CPU
– Executes Instructions
• Memory– Stores Programs and data
• Storage
– Permanent
• I/O devices
– Input: Keypad, Mouse, Touch
– Output: Printer, Screen
– Both (input and output),such as USB, Wifi, Touch screen, disks
• BUS
– Transfers data
– Internal bus and external bus.
18
Von Neumann Architecture
• Model of a computer that stores programs
– Both data and program stored in memory
– Allows the computer to be “Re-programmed”
19
Neumann in practice
20
Instruction Set Architecture
21
Programming Language to Hardware
22
What will You Get Out of the Course?
• Basic elements of computer systems
– Instructions CPU, memory, and I/O.
• Understanding how various sub systems function in
one system.
• Design issues
– Performance vs cost tradeoffs
• Interaction of Software (programs) and the underlying
hardware (on which programs execute)
23
Course Goals
• Teaching Style
– Architecture course have been traditionally taught in two way:
top-down or bottom-up.
– We’re going in from the middle. Programmer-Centric Approach.
• Teaching Goals
– Show that by knowing more about the underlying system, one
can be more effective as a programmer.
– Write programs that are more reliable and efficient.
– Understand how programs interact with the underlying
hardware.
– Learn the insides and outsides of a computer’s architecture.
– Learn how to do low-level programming.
24
Course Expectation
• What to expect from the course:
– Will cover key issues and concepts in class.
– Programming projects (Don’t freak out… yet)
– A mid-term exam and a final exam
– Homework and quizzes
– Will provide review and teach you the tools you need.
• What do I expect of you:
– Attend classes
– Read the textbook in addition to having lectures
– Work through the problems in the textbook (not really
homework… but it helps)
– Do projects
– Ask questions (IMPORTANT)