280 likes | 410 Views
An Introduction. Chapter 1. Computer Systems. Programmable machines Hardware + Software (program). Hardware. Program. Classes of Computing Applications. Desktop computers Personal computers Servers Accessed by network Handle large workloads Embedded computers
E N D
An Introduction Chapter 1
Computer Systems • Programmable machines • Hardware + Software (program) Hardware Program Chapter 1 Introduction
Classes of Computing Applications • Desktop computers • Personal computers • Servers • Accessed by network • Handle large workloads • Embedded computers • Microprocessors embedded in devices Chapter 1 Introduction
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 Introduction
Representation of Data and Programs • Bits: 0 or 1 • Bytes: string/sequence of bits e.g. 10010110 • 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 Introduction
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 Introduction
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 Examples of Languages Chapter 1 Introduction
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 00000000101000010000000000011000 00000000000110000001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 Examples of Languages Chapter 1 Introduction
Advantages of high-level languages • Easy to understand • Improve productivity • Machine-independent Chapter 1 Introduction
Hardware-Software interface Application software System software Hardware Chapter 1 Introduction
System Software • Provide services to application software and users • Examples • Operating systems • Compilers • Assemblers Chapter 1 Introduction
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. Source program compiler Target program Source language Target language Chapter 1 Introduction
Assembler • Assembly language • Symbolic representation of machine instructions. • Assembler • A compiler which translates from an assembly languageto a machine language. Chapter 1 Introduction
Components of computers Processor Input Unit Output Unit datapath control Memory Chapter 1 Introduction
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 Introduction
Components of a computer: More detail processor memory registers ALU data program Instruction register Program counter data address Control units Chapter 1 Introduction
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 Introduction
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 Introduction
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 Introduction
Instruction Execution Cycle processor memory registers ALU data program Control units Instruction register data address Program counter increment Chapter 1 Introduction
Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Levels of descriptions of computer systems Chapter 1 Introduction
Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Levels of descriptions of computer systems 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 Introduction
Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Levels of descriptions of computer systems An operating system is abstraction layers that separate a user program from the underlying system-dependent hardware and peripherals. Chapter 1 Introduction
Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Levels of descriptions of computer systems • 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 Introduction
Applications Operating systems Instruction set Functional units ALU registers Finite state machine Control units Logic gates Instruction register Electronics Program counter Levels of descriptions of computer systems Units are divided by their functions, e.g. ALU, control unit, etc. The interconnection between units are described. processor data memory address Chapter 1 Introduction
Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Levels of descriptions of computer systems Mathematical description of the behavior of a system. Important tool for verification of the correct behavior of the hardware. Chapter 1 Introduction
Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Levels of descriptions of computer systems Logic gates (e.g. and, or, not gates) are used to build functional units. Chapter 1 Introduction
Applications Operating systems Instruction set Functional units Finite state machine Logic gates Electronics Levels of descriptions of computer systems Electronic circuits are used to build logic gates. Chapter 1 Introduction