General information Course web page: html Office hours:- Prof. Eyal.

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

Parul Polytechnic Institute
Chapter 8: Central Processing Unit
EEE226 MICROPROCESSORBY DR. ZAINI ABDUL HALIM School of Electrical & Electronic Engineering USM.
Processor Function Topic 3.
Processor System Architecture
MICRO PROCESSER The micro processer is a multipurpose programmable, clock driven, register based, electronic integrated device that has computing and decision.
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Instruction Set Architecture & Design
TK 2633 Microprocessor & Interfacing
Room: E-3-31 Phone: Dr Masri Ayob TK 2123 COMPUTER ORGANISATION & ARCHITECTURE Lecture 5: CPU and Memory.
The Analytical Engine Module 6 Program Translation.
Room: E-3-31 Phone: Dr Masri Ayob TK 2633 Microprocessor & Interfacing Lecture 1: Introduction to 8085 Assembly Language.
CSCE 121, Sec 200, 507, 508 Fall 2010 Prof. Jennifer L. Welch.
Stored Program Concept: The Hardware View
Chapter 7 Low-Level Programming Languages. 2 Chapter Goals List the operations that a computer can perform Discuss the relationship between levels of.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Computer Organization and Assembly language
Processor Types And Instruction Sets Barak Perelman CS147 Prof. Lee.
Unit-1 PREPARED BY: PROF. HARISH I RATHOD COMPUTER ENGINEERING DEPARTMENT GUJARAT POWER ENGINEERING & RESEARCH INSTITUTE Advance Processor.
6. The CPU and Memory Chapt. 7.
Computer Organization and Assembly language
Computer Organization & Assembly Language
C.S. Choy95 COMPUTER ORGANIZATION Logic Design Skill to design digital components JAVA Language Skill to program a computer Computer Organization Skill.
Processor Structure & Operations of an Accumulator Machine
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Information Representation: Machine Instructions
ACOE2511 ACOE251/AEEC335 -Assembly Language for the 80X86/Pentium Intel Microprocessors Lecturer: Dr. Konstantinos Tatas.
1 4.2 MARIE This is the MARIE architecture shown graphically.
Computer Systems Organization CS 1428 Foundations of Computer Science.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
Microcode Source: Digital Computer Electronics (Malvino and Brown)
Computer Architecture And Organization UNIT-II General System Architecture.
Execution of an instruction
Lecture 14 Today’s topics MARIE Architecture Registers Buses
Computer Organization & Assembly Language © by DR. M. Amer.
PHY 201 (Blum)1 Microcode Source: Digital Computer Electronics (Malvino and Brown)
Chapter 7 Low-Level Programming Languages. 2 Chapter Goals List the operations that a computer can perform Discuss the relationship between levels of.
Chapter 7 Low-Level Programming Languages. 2 Chapter Goals List the operations that a computer can perform Discuss the relationship between levels of.
Computer Architecture 2 nd year (computer and Information Sc.)
EKT 221 : Chapter 4 Computer Design Basics
Logic Design / Processor and Control Units Tony Diep.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Lecture 7: Overview Microprocessors / microcontrollers.
Question What technology differentiates the different stages a computer had gone through from generation 1 to present?
Computer Architecture Lecture 4 by Engineer A. Lecturer Aymen Hasan AlAwady 17/11/2013 University of Kufa - Informatics Center for Research and Rehabilitation.
Execution Architecture MTT CPU08 Core M CPU08 INTRODUCTION.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
Fundamentals of Programming Languages-II
CSIT 301 (Blum)1 Instructions at the Lowest Level Some of this material can be found in Chapter 3 of Computer Architecture (Carter)
MICROPROCESSOR DETAILS 1 Updated April 2011 ©Paul R. Godin prgodin gmail.com.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
EKT 221 : Digital 2 Computer Design Basics Date : Lecture : 2 hrs.
8085 INTERNAL ARCHITECTURE.  Upon completing this topic, you should be able to: State all the register available in the 8085 microprocessor and explain.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
General information Course web page: Prof. Eyal Shimony (course coordinator)‏ Prof. Eyal Shimony (course.
General information Course web page:
Control Unit Lecture 6.
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Number Representations and Basic Processor Architecture
CSCE Fall 2013 Prof. Jennifer L. Welch.
MARIE: An Introduction to a Simple Computer
CSCE Fall 2012 Prof. Jennifer L. Welch.
Computer Architecture Assembly Language
Presentation transcript:

General information Course web page: html Office hours:- Prof. Eyal Shimony: Sunday: Building 27 (Alon High-Tech), Room 216 TAs- LAB assistants: Natalia Vanetik Syllabus: (see web page) 1) Patterson & Hennessy 2) NASM online manual 3) ABEL: IBM PC-ASSEMBLER

Goals and Expectations Computer organization: –Principles (advanced) –Case studies Computer architectures: –Principles (advanced) –Case studies Assembly and machine language –Principles –Case studies –HANDS ON experience –Integration and applications Architectures and assemb. Language: - Ability to learn new machine types from MANUALS, ON YOUR OWN.

Why Bother? Why bother? All software today is in JAVA or some other HLL anyway? Essential for understanding (lower level of) COMPILERS, LINKERS, OS. Architecture has impact on performance. Writing a program for better PERFORMANCE, even in a HLL, requires understanding computer architecture. Some EMBEDDED CPUs or SPECIALIZED controllers - only assembly language available (or even just machine code). Some software (e.g. a small part of the OS) STILL done in assembly language. Better understanding of security aspects. Viruses and anti-viruses. Reverse engineering, hacking, and patching.

Role of Course in Curriculum Understanding of PHYSICAL implementations of structures from data-structures course. Can be seen as high-level of ``Digital Systems'' course. Understanding of computer operation at the subsystem level. Leads up to ``Systems Programming'‘ and “Operating Systems” as an ``enabling technology'‘ Compilers course - compilers use assembly language or machine code as end product.

Course outline LECTURES: 1)Introduction. (week 1) 2)Basic LOW-LEVEL programming issues. (weeks 2-6) 3)Advanced LOW-LEVEL prog. (weeks 7-9) 4)Issues in modern architecture (weeks 10-12) 5)Communication. (week 13) LABS: Simple program. (week 2 or 3) Co-routines/threads (week 6 or 7) Worms (week 9 or 10)

Programmer's View of Computing To program a computer: 1.Write a program in a source language (e.g. C) 2.COMPILER converts program into MACHINE CODE or ASSEMBLY LANGUAGE 3.ASSEMBLER converts program into MACHINE CODE (object code file) 4.LINKER links OBJECT CODE modules into EXECUTABLE 5.LOADER loads EXECUTABLE code into memory to be run Advanced issues modify simplified model: 1.Dynamic linking/loading 2.Virtual memory

Program Execution Basics (von-Neumann Architecture) Computer executes a PROGRAM stored in MEMORY. Basic scheme is - DO FOREVER: 1.FETCH an instruction (from memory). 2.EXECUTE the instruction. This is the FETCH-EXECUTE cycle. More complicated in REAL machines (e.g. interrupts). FETCH EXECUTE

Block Diagram of a Computer CENTRALPROCESSINGUNIT(CPU) MEMORY INPUT-OUTPUT(I/O)

Data Representation Basics Bit Bit - the basic unit of information: (true/false) or (1/0) Byte Byte - a sequence of (usually) 8 bits Word Word - a sequence of bits addressed as a SINGLE ENTITY by the computer (in various computers: 1, 4, 8, 9, 16, 32, 36, 60, or 64 bits per word) Instruction?

Refined Block DiagramCENTRALPROCESSINGUNIT(CPU) MEMORY INPUT-OUTPUT(I/O) DEVICE

Address Space Physical (meaningful) addresses MEMORY WORD 2 n -1 WORD 2 K -1 WORD 0

Data path Contains: registers, program counter, ALU, and address/data interconnections or BUSes.

Registers (Accumulators) Basic operations: WRITE and READ. Important properties: WIDTH (in bits) and ACCESS TIME. Sometimes - other operations possible (e.g. shift, compare, increment, mask). Most CPUs have 1 to 32 registers. REG 2 k -1 REG 0 REGISTER FILE......

Flags Each FLAG represents a BIT of important information: MACHINE STATUS (error, interrupt, mode) COMPUTATION STATUS (carry, overflow, zero, sign) Usually also ``packed'' into a special ``register''

Arithmetic Logic Unit (ALU) Performs actual computations: Arithmetic (add, subtract, multiply, negate) Logical (bitwise or, and, invert) Example: bitwise and

Instruction Sequencing Instructions usually fetched from consecutive memory locations. Use ``incrementer'' to advance PC Except for JUMP, CALL, or INTERRUPT. PC MUX +m TO BUS INTERFACE

Bus Interface Data Interface Address Interface Control Interface MMU To the Cache Internal Bus 32 Data 32 Address Control BIU To the Prefetch Unit Microprocessor System Bus To the CU

Control Generates control/timing signals Selects OPERATIONS performed in: ALU - select function Register file - which to read, where to write Program counter - advance or jump? Bus control: memory address from where? Read or write? Interrupts

Performance Timing is based on a CLOCK CYCLE or FREQUENCY (e.g. 800MHz). Every action takes 1 or more clock cycles. Main memory access usually more than 1 cycle - memory ACCESS TIME is critical! EXECUTION contains several steps - may require MEMORY ACCESS. Performance depends heavily on: How many instructions to execute program or function? How many cycles per instruction? Thus, PERFORMANCE ENHANCEMENTS: instruction prefetch, cache, pipelining, etc.

Programming in Assembly Language ASSEMBLY LANGUAGE is (almost) 1 to 1 with MACHINE CODE Assembly language constructs are: Symbolic version of machine instructions Labels (standing for constants and memory addresses) Pseudo-operations ASSEMBLER converts program to object file in 2 passes: Pass I: translate symbolic instructions into binary code, create SYMBOL TABLE of labels. Pass II: translate labels into (relocatable) addresses, fix binary code, and create object file with relocation information.