Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE - Shiraz University1 Computer Architecture by: Behrooz Nasihatkon Computer Science & Engineering Department Shiraz University.

Similar presentations


Presentation on theme: "CSE - Shiraz University1 Computer Architecture by: Behrooz Nasihatkon Computer Science & Engineering Department Shiraz University."— Presentation transcript:

1 CSE - Shiraz University1 Computer Architecture by: Behrooz Nasihatkon Computer Science & Engineering Department Shiraz University

2 CSE - Shiraz University2 Boolean Algebra Boolean Variables –A = 0, 1 Boolean Functions –F(A, B) = ? F(0,0) = 1 F(0,1) = 1 F(1,0) = 0 F(1,1) = 1 F(A,B,C,D, …)

3 CSE - Shiraz University3 Boolean Operators (Special Functions) –NOT NOT(0) = 1 NOT(1) = 0 –AND AND(0,0) = 0 AND 0 = 0 AND(0,1) = 0 AND 1 = 0 AND(1,0) = 1 AND 0 = 0 AND(1,1) = 1 AND 1 = 1

4 CSE - Shiraz University4 Boolean Operators (Special Functions) –OR OR(0,0) = 0 OR 0 = 0 OR(0,1) = 0 OR 1 = 1 OR(1,0) = 1 OR 0 = 1 OR(1,1) = 1 OR 1 = 1 –XOR XOR(0,0) = 0 XOR 0 = 0 XOR(0,1) = 0 XOR 1 = 1 XOR(1,0) = 1 XOR 0 = 1 XOR(1,1) = 1 XOR 1 = 0

5 CSE - Shiraz University5 Boolean Algebra F(A, B) = ? –F(0,0) = 1 –F(0,1) = 1 –F(1,0) = 0 –F(1,1) = 1 F(A,B) = (~ A) or (A and B)

6 CSE - Shiraz University6 Logic Gates A B A AND B ANOT A AA B B A XOR BA OR B

7 CSE - Shiraz University7 Example A B C F(A,B,C) = (~A and B) or C F(A,B,C) = (~A and (B or C)) or ~C A B C

8 CSE - Shiraz University8 Representing Logical Values +_+_ 5v 1 0 0 ~ 0 v 1 ~ +5v

9 CSE - Shiraz University9 Gates In Circuit +_+_ 5v 0v+5v 0v+5v 0v+5v

10 CSE - Shiraz University10 Logic Circuits ABCDEFABCDEF f (A,B,C,D,E,F)

11 CSE - Shiraz University11 Logic Circuits ABCDEFABCDEF f1 (A,B,C,D,E,F) f2 (A,B,C,D,E,F) f3 (A,B,C,D,E,F)

12 CSE - Shiraz University12 Example 4 bit Adder AB A + B 0 1 1 1 0 0 1 0 0 0 1

13 CSE - Shiraz University13 Example 4 bit Adder / Subtractor A B A + B S 10 A - B

14 CSE - Shiraz University14 4 to 1 MUX S0 D0 D2 D1 D3 S1 4 bit 2 to 1 MUX S Multiplexer 2 to 1 MUX S D0 D1

15 CSE - Shiraz University15 ALU simple Arithmetic Logic Unit B A Carry out Carry in S0 S1 S2 B Y A - B110 A + B010 B100 A000 YS0S1S2 A or B111 A and B011 ~ A101 -A-A001 YS0S1S2

16 CSE - Shiraz University16 Step by Step Operations Adding N numbers (N is Variable) Multiplication (of big numbers) Division Algorithms

17 CSE - Shiraz University17 Memory Unit Sequential Circuits

18 CSE - Shiraz University18 Latches Delay Latch D C Q Q = D Hold Data

19 CSE - Shiraz University19 Flip-Flops Flip Flop D C Q Q  D Clock Where the data has been stored ?

20 CSE - Shiraz University20 Step by Step Operations D C QD C QD C QD C Q Clock 1 Speed ? Frequncy?

21 CSE - Shiraz University21 Registers D C QD C QD C QD C D C QD C QD C QD C Clock Parallel Input Parallel Output Load

22 CSE - Shiraz University22 Registers 8 bit register Clock Parallel Input Parallel Output Load clear inc 8 8

23 CSE - Shiraz University23 Registers Clock Parallel Input Parallel Output Load shift Serial Input Serial Output 10110010 left/right Serial Input Serial Output

24 CSE - Shiraz University24 4 bit Adder 444 C out R1 LD CLK C LD CLK R2 LD CLK clock CLK R3 LD load R3  R2 + R1 C  Carry

25 CSE - Shiraz University25 Counter/Timer Clock Parallel Output Load 00000000 Increment 0 1

26 CSE - Shiraz University26 ALU Example B A Carry in S0 S1 S2 B Y A - B110 A + B010 B100 A000 YS0S1S2 A or B111 A and B011 ~ A101 -A-A001 YS0S1S2 44 4 Carry out Sign overflow zero

27 CSE - Shiraz University27 Example -A-A001 ~ A101 A and B011 A or B111 A – B110 A + B010 B100 A000 YS0S1S2 ALU A Carry in S2 S1 S0 B Y 8 8 8 Carry out Sign overflow zero 0 1 0 0 CF SF OF ZF BL LD ADD AL, BL AL LD 1 0 0 1 1 0 0 1 0 1 1 1 0 MOV AL, BLNEG ALNOT ALAND AL, BL Flag Register 1 LD

28 CSE - Shiraz University28 Memory Unit 0123456701234567 101001 110010 111010 111111 101001 000000 011010 110001 0123456701234567 8 x 6 Memory

29 CSE - Shiraz University29 Read Only Memory Address 0123456701234567 101001 110010 111010 111111 101001 000000 011010 110001 0123456701234567 A0 A1 A2 D0 D5D4D3D2D1 D0 = F(A0, A1, A2) 0 1 1 0 01101 8 x 6 ROM

30 CSE - Shiraz University30 Random Access Memory 0123456701234567 3 Address 6 Output 6 Input Clock Read Write 8 x 6 RAM 6 Input/Output

31 CSE - Shiraz University31 General Purpose Computers Programming Basic Instructions

32 CSE - Shiraz University32 Computer Instructions 16 bit Instruction Operation Code (opcode)

33 CSE - Shiraz University33 Processor (CPU) 1k x 16 Memory 16 bit Instruction 10 Address 16 Data 10 Address 16 Data opcodeaddress R W RW 10 Address Bus 16 Data Bus R W Control Bus

34 CSE - Shiraz University34 ADD201 opcodeaddress STO202 opcodeaddress LD200 opcodeaddress 1k x 16 Memory 105: 106: 107: 0010010011001000 opcodeaddress 0010100011001001 opcodeaddress 0010000011001010 opcodeaddress Accumulator (16) Program Counter (10) (Instruction Counter, Instruction Pointer)

35 35 1k x 16 Memory RW 10 Address Bus Address Register (10) LD 200 opcodeaddress LD Program Counter (10) inc Data Bus 16 Instruction Register (16) LD Data Register (16) LD Accumulator (16) LD ALU S2 S1 S0 AB 10 IR(0-9) S MUX 01 Control Bus Timer Reset Clock Control Unit 105: ADD201 opcodeaddress 106: STO202 opcodeaddress 107:

36 CSE - Shiraz University36 Von-Newman Architecture Data and Instructions are stored in a common memory Processor –Loop: 1.Fetch Instruction from memory 2.Decode Instruction 3.Execute Instruction –[Fetch Operands from memory] –Execute –[Store results in memory]

37 CSE - Shiraz University37 Types of Machine Instruction Computation (Arithmetic, Logic, Shift) –ADD, SUB, MUL, AND, OR, XOR, SHL, SHR Data transfer –LOAD, STORE, MOVE, EXCAHNGE, POP, PUSH Program Control –JUMP, conditional JUMP (JZ, JS, …) –COMPARE, TEST –CALL, RETURN

38 CSE - Shiraz University38 Binary Codes Inserting An instruction –100: –101: –102: Memory Locations Disadvantages of Programming In Machine Language LD200SUB201JNS101ADD1017SUB1018ADD200

39 CSE - Shiraz University39 Assembly Language Symbolic Labels & Variables Overloading Assembler Each Processor Has an Assembly Language

40 CSE - Shiraz University40 High-level Programming Languages Types (integer, boolean, string, structures, arrays, etc) Expressions Control Instructions (if-else, while, …) Procedures, Argument passing, …

41 CSE - Shiraz University41 Compilers/Interpreters Compiler: A program that converts a High-level program code to Machine-Code: –Mapping Variables, Structures and Procedures to Memory Addresses –Writing Codes for Loops, Conditions, Procedure Calls, Argument Passing, etc –Writing Codes for Expression evaluation –Syntax Checking, Type Checking, Errors and Warnings –… Interpreter: A program that Reads Instructions of a High- level programming language and Executes them one by one

42 CSE - Shiraz University42 Try it yourself ! Write a program in ‘C’ and Compile it to Assembly language:Write a program in ‘C’ and Compile it to Assembly language: >>> gcc –S test.c Read and Modify Assembly Code:Read and Modify Assembly Code: >>> mcedit test.s Convert Assembly code to Machine Code (Executable file) and run it:Convert Assembly code to Machine Code (Executable file) and run it: >>> gcc test.s >>>./a.out

43 CSE - Shiraz University43 Interrupt Write A Screen Saver Program that displays an animation, Shows clock, and terminates with a key-press or mouse-click: 12:53

44 CSE - Shiraz University44 Interrupt Loop: –Fetch Instruction –Decode –Execute –If an Interrupt Occurs Save Current Value of Registers Jump to Interrupt Service Routine (ISR) [PC  address of ISR] Hardware Implementation of ‘if’ (i.e. takes no time to check occurring of Interrupt) Address of ISR can be determined by content of a register, Interrupt Vector or it can be fixed.

45 CSE - Shiraz University45 Types of Interrupt 1.External Interrupt I/O devices, Timers, Alarms, etc 2.Internal Interrupt (Trap) Overflow, Division by zero, Invalid Instruction, Stack Overflow, … 3.Software Interrupt Calling an ISR, Calling System Functions (system calls)

46 CSE - Shiraz University46 Dynamic Memory Allocation int k; main() { k = fact(7); } int fact(int n) { int m; if (n == 0) return 1; m = fact(n – 1); return m * n; }

47 CSE - Shiraz University47 Stack k LD 100 JZ 202 DEC : m Return Address n: 6 m Return Address n: 7 xxx Stack Pointer (SP) int k; int fact(int n) { int m; if (n == 0) return 1; m = fact(n – 1); return m * n; } k = fact(7); : Stack Code Data Memory

48 CSE - Shiraz University48 Limitations of Stack char *upper_case(char *s) { char r[100]; // allocating 100 bytes in stack int i; for (i = 0; s[i] != 0; i++) { if (s[i] >= ‘a’ && s[i] <= ‘z’) r[i] = s[i] – ‘a’ + ‘A’; // Converting to upper-case letter else r[i] = s[i]; } return r; } main() { char *s1 = “Salaam!!”; char *s2 = upper_case(s1); printf(“%s, %s\n”, s1, s2); // Unexpected result! }

49 CSE - Shiraz University49 Heap char *upper_case(char *s) { char r[100]; // allocating 100 bytes in stack char *r = (char *) malloc(100); // allocating 100 bytes in heap int i; for (i = 0; s[i] != 0; i++) { if (s[i] >= ‘a’ && s[i] <= ‘z’) r[i] = s[i] – ‘a’ + ‘A’; else r[i] = s[i]; } return r; } main() { char *s1 = “Salaam!!”; char *s2 = upper_case(s1); printf(“%s, %s\n”, s1, s2); // prints : Salaam!, SALAAM! free(s2); // return 100 free bytes to heap }

50 50 Heap k LD 100 JZ 202 DEC : s s2 s1 : Stack Code Data Memory char *upper_case(char *s) { char *r = (char *) malloc(100); int i; for (i = 0; s[i] != 0; i++) { if (s[i]>=‘a’ && s[i]<=‘z’) r[i] = s[i]–‘a’+‘A’; else r[i] = s[i]; } return r; } main() { char *s1 = “Salaam!!”; char *s2 = upper_case(s1); printf(“%s, %s\n”, s1, s2); free(s2); } i r : 1200 ret-address main upper-case : Heap 1200 :

51 CSE - Shiraz University51 Wait Signal Processor (CPU) 1k x 16 Memory 10 16 10 Address Bus 16 Data Bus R W Control Bus RWWait delay Clock 100MHz clock 100ns propagation delay (10ns for each micro-operation)

52 CSE - Shiraz University52 Processor (CPU) 1k x 16 Memory RWWait delay Clock 100MHz clock (10ns) 64 x 16 Cache (100ns) propagation delay (8ns) propagation delay Cache Memory Data+Address+Control Bus

53 CSE - Shiraz University53 Cache Memory Associative Mapping Direct Mapping

54 CSE - Shiraz University54 Virtual Memory : : 1M x 16 Physical Memory 32k x 16 Address Mapping

55 CSE - Shiraz University55 ? ? ?

56 CSE - Shiraz University56 Simple ALU -A-A001 ~ A101 A and B011 A or B111 A – B110 A + B010 B100 A000 YS0S1S2


Download ppt "CSE - Shiraz University1 Computer Architecture by: Behrooz Nasihatkon Computer Science & Engineering Department Shiraz University."

Similar presentations


Ads by Google