An Introduction Chapter 1
Chapter 1 Introduction2 Computer Systems Programmable machines Hardware + Software (program) HardwareProgram
Chapter 1 Introduction3 Classes of Computing Applications Desktop computers Personal computers Servers Accessed by network Handle large workloads Embedded computers Microprocessors embedded in devices
Chapter 1 Introduction4 Program Performances Algorithm Number of high-level instructions & I/O operations Programming languages, compiler and architecture Number of machine instructions Processor and memory systems Number of clocks for each instruction I/O systems Time for each I/O operations
Chapter 1 Introduction5 Representation of Data and Programs Bits: 0 or 1 Bytes: string/sequence of bits e.g Normally, a byte is composed of 8 bits. Words: sequence of bytes A word can be composed of 4 or 8 bytes. There are standard formats of data stored in a computer. ASCII code, Unicode
Chapter 1 Introduction6 Languages and Programs A program is a sequence of instructions for computer. A format of instructions = a language Computer languages High-level languages Java, Python, C, ASP, HTML, … Low-level languages Assembly languages Machine languages
Chapter 1 Introduction7 Examples of Languages High-level languages C swap(int v[], int k)) {int temp; temp=v[k]; v[k]=v[k+1]; v[k+1]=temp; return; } Assembly languages MIPS assembly swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31
Chapter 1 Introduction8 Examples of Languages swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 Machine languages
Chapter 1 Introduction9 Advantages of high-level languages Easy to understand Improve productivity Machine-independent
Chapter 1 Introduction10 Hardware-Software interface Application software System software Hardware
Chapter 1 Introduction11 System Software Provide services to application software and users Examples Operating systems Compilers Assemblers
Chapter 1 Introduction12 Compilers A compiler is a program which translates a program in one language into another language. Usually, the source language is a high- level language, and the target language is a low-level language. compiler Source program Target program Source language Target language
Chapter 1 Introduction13 Assembler Assembly language Symbolic representation of machine instructions. Assembler A compiler which translates from an assembly language to a machine language.
Chapter 1 Introduction14 Components of computers Processor Output Unit Memory Input Unit datapathcontrol
Chapter 1 Introduction15 Memory Linear storage Addressable in words “Random access” Data/program can be read from/ write to memory, one word at a time. To write data d to memory addressed a, data d and address a must be specified. To read data from memory addressed a, address a must be specified.
Chapter 1 Introduction16 Components of a computer: More detail registersALU Control units Instruction register Program counter program data address memory processor
Chapter 1 Introduction17 Components of Processors Arithmetic-logic unit (ALU) Performs arithmetic and logic functions: add, substract, multiply, divide, and, or, not, etc. Registers Fast-access memory used by a processor to store intermediate results. Program counter (PC) Keeps track where the current instruction is. Normally, incremented to point to the next instruction. Changed by instructions that alter the flow of control of a program (if-then-else, loop, and function call).
Chapter 1 Introduction18 Components of Processors Instruction register (IR) Store the current instruction fetched from memory. Its content (the instruction) signals the control unit to initiate the execution of that instruction. Control unit Most complex part of a processor. Send control signals to all parts in the processor to co-ordinate their activities. A large finite state machine.
Chapter 1 Introduction19 How a computer system works Fetch-execute cycle Fetch: get an instruction (addressed by PC) from memory and store in IR, and update PC. Execute: work according to the instruction in IR If the instruction causes PC changed, PC is updated again.
Chapter 1 Introduction20 Instruction Execution Cycle registersALU Control units Instruction register Program counter program data address memory processor increment
Chapter 1 Introduction21 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics
Chapter 1 Introduction22 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Application level is what a user typically sees a computer system, running his/her application programs. An application is usually written in a computer language which used many system functions provided by the operating system.
Chapter 1 Introduction23 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics An operating system is abstraction layers that separate a user program from the underlying system-dependent hardware and peripherals.
Chapter 1 Introduction24 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics computer architecture begins at the instruction set. An instruction set is what a programmer at the lowest level sees of a processor one instruction set with different level of performance for many models, based on the implementation of a control unit via “microprogram”. Present day processor designs converge, their instruction sets become more similar than different.
Chapter 1 Introduction25 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Units are divided by their functions, e.g. ALU, control unit, etc. The interconnection between units are described. registers ALU Control units Instruction register Program counter processor data address memory
Chapter 1 Introduction26 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Mathematical description of the behavior of a system. Important tool for verification of the correct behavior of the hardware.
Chapter 1 Introduction27 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Logic gates (e.g. and, or, not gates) are used to build functional units.
Chapter 1 Introduction28 Levels of descriptions of computer systems Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Electronic circuits are used to build logic gates.