24
1 CSE 2312 Lecture 1 Administration & Introduction Song Jiang, Ph.D. Department of Computer Science and Engineering Computer Organization & Assembly Language Programming

Computer Organization & Assembly Language Programming

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer Organization & Assembly Language Programming

1

CSE 2312

Lecture 1 Administration & Introduction

Song Jiang, Ph.D.

Department of Computer Science and Engineering

Computer Organization &

Assembly Language Programming

Page 2: 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

Page 3: Computer Organization & Assembly Language Programming

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

Page 4: Computer Organization & Assembly Language Programming

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

Page 5: Computer Organization & Assembly Language Programming

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.

Page 6: Computer Organization & Assembly Language Programming

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.

Page 7: Computer Organization & Assembly Language Programming

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 !!!

Page 8: Computer Organization & Assembly Language Programming

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

– ….

Page 9: Computer Organization & Assembly Language Programming

9

Questions

Page 10: Computer Organization & Assembly Language Programming

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?

Page 11: Computer Organization & Assembly Language Programming

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.

Page 12: Computer Organization & Assembly Language Programming

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

Page 13: Computer Organization & Assembly Language Programming

13

iPhone Processor

620MHz ARM chip

Page 14: Computer Organization & Assembly Language Programming

14

Inside Blackberry Torch

Page 15: Computer Organization & Assembly Language Programming

15

Ipad A4 Processor

Page 16: Computer Organization & Assembly Language Programming

16

Computer Organization

• Architecture:

– Art or science?

• What’s Inside?

• How is it put together?

• How does it work?

Page 17: Computer Organization & Assembly Language Programming

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.

Page 18: Computer Organization & Assembly Language Programming

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”

Page 19: Computer Organization & Assembly Language Programming

19

Neumann in practice

Page 20: Computer Organization & Assembly Language Programming

20

Instruction Set Architecture

Page 21: Computer Organization & Assembly Language Programming

21

Programming Language to Hardware

Page 22: Computer Organization & Assembly Language Programming

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)

Page 23: Computer Organization & Assembly Language Programming

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.

Page 24: Computer Organization & Assembly Language 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)