ENG 2139 INTRODUCTION TO INFORMATION TECHNOLOGY (IT) For 2ND Year Students doing BEng. + BSc. Mines ENG 2139 PART I CH01 – INTRODUCTION TO COMPUTER HARDWARE 1. HISTORICAL BACKGROUND OF COMPUTING STARTING FROM THE 1940s • 1939: Hewlett-Packard is founded by David Packard and Bill Hewlett in Palo Alto, California (USA). • 1943-1944: Two University of Pennsylvania professors, John Mauchly and J. Presper Eckert, build the Electronic Numerical Integrator and Calculator (ENIAC). 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 3 1. HISTORICAL BACKGROUND OF COMPUTING • ENIAC is considered the grandfather of digital computers, it fills a 6m x 12m room and has 18,000 vacuum tubes. • 1946: Mauchly and Presper leave the University of Pennsylvania. • They then received funding from the Census Bureau to build the UNIVAC. • The first commercial computer for business and government applications. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 4 1. HISTORICAL BACKGROUND OF COMPUTING • 1947: William Shockley, John Bardeen and Walter Brattain of Bell Laboratories invent the transistor. • They discovered how to make an electric switch with solid materials and no need for a vacuum. • This brought in the second generation of computers, those based on transistors. • The first generation was electro-mechanical and vacuum tube computers. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 5 1. HISTORICAL BACKGROUND OF COMPUTING • 1953: Grace Hopper develops the first computer language. • Which eventually became known as COBOL. • Thomas Johnson Watson Jr., son of IBM CEO Thomas Johnson Watson Sr., conceives the IBM 701 EDPM to help the United Nations keep tabs on Korea during the war. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 6 1. HISTORICAL BACKGROUND OF COMPUTING • 1958: Jack Kilby and Robert Noyce unveil the integrated circuit, known as the computer chip. • Kilby was awarded the Nobel Prize in Physics in 2000 for his work. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 7 1. HISTORICAL BACKGROUND OF COMPUTING • 1958 - 1962 – Programming languages FORTRAN (FORmula TRANslator) COBOL (COmmon Business Oriented Language) LISP (LISt Processor) ALGOL (ALGOrithmic Language) BASIC (Beginners All-purpose Symbolic Instruction Code) 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 8 1. HISTORICAL BACKGROUND OF COMPUTING • 1964: Douglas Engelbart shows a prototype of the modern computer, with a mouse and a graphical user interface (GUI). • This marks the evolution of the computer from a device of geeks, to be more accessible to the general public. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 9 1. HISTORICAL BACKGROUND OF COMPUTING • 1969: A group of developers at Bell Labs produce UNIX operating system that addressed compatibility issues. • Written in the C programming language, UNIX could run on multiple platforms. • And became the operating system of choice among mainframes at large companies and government entities. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 10 1. HISTORICAL BACKGROUND OF COMPUTING • 1970: The newly formed Intel unveils the Intel 1103, the first Dynamic Access Memory (DRAM) chip. • 1971: Alan Shugart leads a team of IBM engineers who invented the "floppy disk“. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 11 1. HISTORICAL BACKGROUND OF COMPUTING • The floppy was a removable magnetic storage medium that allows recording and sharing of data. • 1973: Robert Metcalfe, a researcher at Xerox, develops Ethernet for connecting multiple computers and other hardware devices. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 12 1. HISTORICAL BACKGROUND OF COMPUTING • 1974 - 1977: A number of personal computers hit the market: Scelbi & Mark-8 Altair, IBM 5100, Radio Shack's TRS-80 and the Commodore PET. • 1975: The Altair 8080 hits the market, described as the "world's first minicomputer“. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 13 1. HISTORICAL BACKGROUND OF COMPUTING • 1976: Steve Jobs and Steve Wozniak start Apple Computers on April Fool's Day and roll out the Apple I. • The first computer with a single-circuit board, according to Stanford University. • 1977: Jobs and Wozniak incorporate Apple and show the Apple II to the public. • It offers color graphics and incorporates an audio cassette drive for storage. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 14 1. HISTORICAL BACKGROUND OF COMPUTING • Two "computer geeks," Paul Allen and Bill Gates, offer to write software for the Altair, using the new BASIC language. • On April 4, 1975, the two childhood friends form their own software company, called Microsoft. • 1983: Apple's Lisa is the first personal computer with a GUI (Graphical User Interface). 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 15 1. HISTORICAL BACKGROUND OF COMPUTING • 1985: Microsoft announces Windows operating system. • This was the company's response to Apple's GUI (Graphical User Interface) design model. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 16 1. HISTORICAL BACKGROUND OF COMPUTING • 1981: The first IBM personal computer, codenamed "Acorn," is introduced. • It uses Microsoft's MS-DOS operating system. • It has an Intel chip, two floppy disks and an optional color monitor. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 17 1. HISTORICAL BACKGROUND OF COMPUTING • Sears & Roebuck and Computerland sell the machines. • The first time a computer is sold through distributors. It also popularizes the term PC (Personal Computer). 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 18 1. HISTORICAL BACKGROUND OF COMPUTING • It also features a drop-down menu and icons. • It flops but eventually evolves into the Macintosh. • The Gavilan SC is the first portable computer with the familiar flip form factor, the first to be marketed as a "laptop." 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 19 1. HISTORICAL BACKGROUND OF COMPUTING • 1985: The first dot-com domain name is registered on March 15: Symbolics.com. • This was the domain by the Symbolics Computer Company, a small Massachusetts computer manufacturer. • More than two years later, only 100 dot-coms had been registered. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 20 1. HISTORICAL BACKGROUND OF COMPUTING • 1986: Compaq brings the Deskpro 386 to market. • Its 32-bit architecture provides a speed comparable to mainframes. • 1990: Tim Berners-Lee, a researcher at CERN, in Geneva, develops HTML*, giving rise to the www. • 1993: The Pentium microprocessor advances the use of graphics and music on PCs. (*) HyperText Markup Language 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 21 1. HISTORICAL BACKGROUND OF COMPUTING • 1994: PCs become gaming machines as: "Command & Conquer," "Alone in the Dark 2," "Theme Park," "Magic Carpet," "Descent" and "Little Big Adventure" are among the games to hit the market. • 1996: Sergey Brin and Larry Page develop the Google search engine at Stanford University. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 22 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • This part of the course introduces you to the inner working and organisation of a computing device. • Computer Architecture may be defined as describing the capabilities and programming model of a computing device. • It is a set of rules stating how computer’s elements work together. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 23 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • Any computing device takes input (by user or another computer system) • And produces an output, which can either be stored or displayed. Processing Output Figure 1.1: Desktop Computer 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 24 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • Below is an example of a laptop as a computing device; its different components are compact, because it’s a portable “computer”. Output (screen) Figure 1.2: Laptop Computer 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 25 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • Below is an example of a tablet as a computing device; its different components are very compact, because it’s a more versatile portable “computer”. Output (screen) Figure 1.3: Tablet 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 26 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • Below is an example of a smart phone as a computing device; its different components are crammed, because it’s a mobile “computer”. Output (screen) Figure 1.4: A Mobile Phone 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 27 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • It is important to note that computers do not speak human languages!!! • Computers are digital devices, i.e. they speak “numbers” language. • This means everything is converted into “numbers”; in binary digits, simply known as “bits”. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 28 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE Figure 1.5: Computer Keyboard • All letters, numbers and symbols are converted in binary, for any computing device to process the input. • There is a one-to-one conversion equivalence of every letter, number and symbol into bit representation. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 29 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • ASCII (American Standard Code for Information Interchange) is is a character encoding that uses numeric codes to represent characters. • These include upper and lowercase English letters, numbers, and punctuation symbols. • Common numeric codes are hexadecimal, decimal, octal and binary. • The binary code has only digits ( 1 and 0) to represent any input you feed into a computing device. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 30 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE EXAMPLE OF ASCII CODE AND ITS EQUIVALENT Binary 0100000 0100001 0100010 0100011 0100100 30/03/2023 ASCII Hex Decimal Explanation Symbol 20 32 SP Blank space (Space) 21 33 ! Exclamation mark 22 34 “ Only quotes above 23 35 # Pound sign 24 36 $ Dollar sign Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 31 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE EXAMPLE OF ASCII CODE AND ITS EQUIVALENT Binary 0100101 0100110 0100111 010 1110 30/03/2023 ASCII Hex Decimal Symbol 25 37 % 26 38 & 27 39 ’ 2F 47 . Explanation Percentage sign Commericial and Apostrophe dot Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 32 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE EXAMPLE OF ASCII CODE AND ITS EQUIVALENT Binary 0101000 0101001 0101010 0101011 30/03/2023 ASCII Hex Decimal Symbol 28 40 ( 29 41 ) 2A 42 * 2B 43 + Explanation Left bracket Right bracket Asterisk Plus symbol Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 33 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE EXAMPLE OF ASCII CODE AND ITS EQUIVALENT Binary 0101100 0101101 0101110 0101111 30/03/2023 ASCII Hex Decimal Symbol 2C 44 , 2D 45 2E 46 . 2F 47 / Explanation Comma Dash Full stop Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 34 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • These are some of computer architectures: 1. 2. 3. 4. 5. 30/03/2023 Von-Neumann Architecture Harvard Architecture Instruction Set Architecture Microarchitecture System Design Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 35 2. INTRODUCTION TO COMPUTER HARDWARE ARCHTIECTURE • It should be noted that there are three levels in computer architecture: Level 1 − Micro architectural level. Level 2 − Instruction set architecture. Level 3 − Operating system. • In this course, we concentrate on the Von-Neumann Architecture, which is widely used on most of general-purpose computers. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 36 3. THE CPU (Central Processing Unit) • The CPU is also called as a Central Processor or Main Processor. • The CPU is also referred as simply Microprocessor • Basically, the microprocessor functions as the ‘brain’ of a computer system. • It is one of the most important pieces of hardware in any digital computing system – if not the most important. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 37 3. THE CPU (Central Processing Unit) • The CPU works as a processing engine (machine), and the workhorse of the computer system. • The CPU contains all the circuitry required to process input, store data, and output results, through its peripherals. • At any given time, the CPU follows instructions it receives through computer programs (software). • The software instructs the CPU which data to process and how to process it. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 38 3. THE CPU (Central Processing Unit) Figure 1.7: Schematic Image of the CPU 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 39 3. THE CPU ELEMENTS CONTROL UNIT (CU) • The control unit (CU) is a component of a computer's CPU that directs and supervises the operation of the processor. • The CU typically uses a binary decoder to convert coded instructions into timing and control signals that direct the operation of the other units. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 40 3. THE CPU ELEMENTS ARITHMETIC LOGIC UNIT (ALU) • An arithmetic-logic unit is the part of the CPU that carries out arithmetic and logic operations on user inputs (operands) in computer instruction payload. • It is also known as an integer unit (IU) within the CPU or GPU, which is the last component to perform calculations in the processor. • It has the ability to perform all arithmetic and logic operations such as addition, subtraction, and shifting operations, including Boolean comparisons (XOR, OR, AND, and NOT operations). 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 41 3. THE CPU ELEMENTS CPU REGISTERS • Registers are a type of computer memory used to quickly accept, store, and transfer data and instructions that are being used immediately by the CPU. • They are also called Processor registers. • Registers can hold any type of data, including a bit sequence or a single piece of data. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 42 3. THE CPU ELEMENTS CPU REGISTERS The most common registers in a computer: Register Data register Symbol Number of bits Function Holds memory operand DR 16 Address register AR 12 Accumulator Instruction register AC IR 16 16 Program counter PC 12 Temporary register TR 16 Holds address of the next instruction Holds temporary data Input register INPR 8 Carries input character Output register OUTR 8 Carries output character Holds address for the memory Processor register Holds instruction code Table 1.1: Common CPU Registers 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 43 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER The Program Counter is also referred to as: ⚫Instruction Counter ⚫Instruction Pointer (IP) ⚫Instruction Sequencer 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 44 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER ⚫It is a Processor Register indicating the machine position in its program execution sequence. ⚫The Program counter will contain the memory address of the next program instruction. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 45 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER ⚫Instruction fetched, the P C is incremented by 1 ⚫The P C holds the memory address (“points to”) of the next program instruction ⚫In a microprocessor where the fetch is first, P C holds the memory address of the next instruction 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 46 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER ⚫Instructions are fetched sequentially from memory ⚫Three control transfer instructions place a new value in the PC, these are: ◦ Jump ◦ Subroutine Call ◦ Subroutine Return 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 47 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER ⚫In a typical C P U – P C is a binary counter, a special register ⚫At Fetch instruction, C P U places the value of P C on the address bus to send it to memory ⚫Memory responds by sending the content of that memory location on the data bus. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 48 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER ⚫The above sequence is known as stored-program computer model based on Von Neumann Architecture ⚫Executable Instructions are stored along side data in memory – identical handling of the two. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 49 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER Consequences in Machine Architecture ⚫A Processor in which the P C that normally increments is central to von Neumann Architecture ⚫The “von Neumann bottleneck” led to parallel computing that do not use Program Counter (PC) 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 50 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER Consequences in Machine Architecture ⚫The research also led to making PC-based CPUs run faster by: ◦ Pipelining – different hardware in the C P U executes different phases of multiple instructions simultaneously; ◦ The Very Long Instruction Word (VLIW) architecture where a simple instruction can achieve multiple effects; ◦ Techniques to predict out-of-order execution subsequent instructions are executed out of the regular sequence 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 51 3. THE CPU ELEMENTS CPU REGISTERS – PROGRAM COUNTER Consequences in High-level Programming ⚫Though execution of programs are still considered sequential, there are new programming models: ◦ Multithreading – a concept of concurrency, several tasks are seemingly executed at the “same” time; ◦ Event-driven programming – typical example is Graphical User Interface - GUI; ◦ Dataflow programming each section of computing pipeline is independent of other sections in terms of execution time 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 52 3. THE CPU ELEMENTS CPU REGISTERS – STACK POINTER ⚫Subroutines are a very important technique in developing software: ◦ The Stack is a storage structure – abstract data type, a collection of memory blocks - which is central to subroutines; ◦ The Stack is defined (and reserved) area in the RAM, by the Operating System. ◦ The Stack is a LIFO (Last-In-First-Out) memory buffer; 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 53 3. THE CPU ELEMENTS CPU REGISTERS – STACK POINTER The Stack andThe Stack Pointer (SP) ⚫In a computer system, execution of Subroutines is a multi-steps operation: ◦ The two main operations that can be performed on a stack are: 🞄 Push (addition) – write to the Stack; 🞄 Pop (removal) – Read from the Stack; ◦ The “Stack Pointer” is a special register in the Processor, which always contains the memory address of the last program request on the stack. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 54 3. THE CPU ELEMENTS CPU REGISTERS – STACK POINTER The Stack andThe Stack Pointer (SP) 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 55 3. THE CPU ELEMENTS CPU REGISTERS – STACK POINTER The Stack andThe Stack Pointer (SP) ⚫Example INTEL 8085 Microprocessor: ◦ Register A – Accumulator and the flag Register Fmake what is known as Processor Status Word (PSW) PUSH PSW ((SP) – 1) (A) ((SP) – 2) (F) (SP) (SP) – 2 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 56 3. THE CPU ELEMENTS CPU REGISTERS – STACK POINTER The Stack andThe Stack Pointer (SP) ⚫Example INTEL 8085 Microprocessor: POP PSW (F) (SP) (A) ((SP) + 1) (SP) (SP) + 2 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 57 3. THE CPU ELEMENTS CPU REGISTERS – STACK POINTER The Stack andThe Stack Pointer (SP) ⚫Stack overflow is a serious programming error caused by overwriting of the stack ◦ The Stack overflow leads to program crash, it does corrupt the Stack pointer; ◦ The Stack overflow is sometimes difficult to debug; ◦ Infinite loop – if not properly managed, may lead to stack overflow; ◦ Continuous recursive function – may also cause stack overflow. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 58 3. THE CPU ELEMENTS FLOAT POINT PROCESSING UNIT (FPU) • A floating point unit is an integrated circuit in the CPU, which handles all mathematical operations on floating point numbers or fractions. • It is a dedicated chip specifically designed to work on floating point numbers and nothing else. • It can be defined as a specialised coprocessor that can manipulate decimal numbers quicker than the basic microprocessor circuitry itself. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 59 3. THE CPU ELEMENTS CPU CACHE MEMORY • Cache memory is a chip-based CPU component that makes retrieving data more efficient. • Cache memory is the temporary memory officially termed as “CPU cache memory.” • This cache memory feature of the computer lets the user access some information more quickly than if they accessed it from their computer's main memory. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 60 3. THE CPU ELEMENTS CPU SYSTEM BUSES Figure 1.8: Schematic Diagram of CPU Buses 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 61 3. THE CPU ELEMENTS CPU SYSTEM BUSES • A system bus is a single set of electrical paths, that connects the major components of a computer system. • They are combining the functions of: Address bus carries memory addresses from the processor to other components such as primary storage and input/output devices. The address bus is unidirectional; Data bus carries the data between the processor and other components. The data bus is bidirectional Control bus carries control signals from the processor to other components. The control bus also carries the clock's pulses. The control bus is unidirectional. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 62 4. THE CPU (Central Processing Unit) COMPUTER ARCHITECTURE • In this course, we concentrate on the Von-Neumann Architecture, which is widely used on most of general-purpose computers. • This computer architecture was first designed/defines around 1947 by John Von Neumann, a Hungarian-American, who worked as a Mathematics Professor at the Princeton University, New Jersey, USA. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 63 4. THE VON NEUMANN ARCHITECTURE • In this course, we concentrate on the Von-Neumann Architecture, which is widely used general-purpose computers. Figure 1.16: Diagram of the Von Neumann Architecture 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 64 4. THE VON NEUMANN ARCHITECTURE • The Von-Neumann Architecture, is also known as a Memory-based or Stored Program computer architecture. Figure 1.17: Diagram of the Von Neumann Architecture 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 65 4. THE VON NEUMANN ARCHITECTURE • The Von-Neumann Architecture, is based on the principle of sequential execution of computer programs • This means that programs are executed on the basis of one instruction at a time. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 66 4. THE VON NEUMANN ARCHITECTURE Stored Program Concept Figure 1.18: Another Diagram of the Von Neumann Architecture 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 67 4. THE VON NEUMANN ARCHITECTURE Stored Program Concept • There are three major parts –The CPU (Central Processing Unit) which acts as the brain coordinating all activities within the computer –The memory unit where the program instructions and data are temporarily stored –The I/O (Input/Output) devices which allow the computer to input information for processing and then output the result 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 68 4. THE VON NEUMANN ARCHITECTURE Stored Program Concept • Today the CPU circuitry has been reduced to ICs called the microprocessor, the entire computer with the three parts is called a microcomputer • Several registers (e.g., flip-flops wired in series with each other) Some are general purpose, the accumulator for example is reserved for performing complex mathematical operations like multiply and divide, and all I/O data has to go thru the accumulator 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 69 4. THE VON NEUMANN ARCHITECTURE Stored Program Concept • The basic timing of the computer is controlled by a square wave oscillator or a clock generator circuit. Synchronization Determines how fast the program can be fetched from memory and executed • Memory Read or Fetch Cycle IP: Instruction Pointer 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 70 4. THE VON NEUMANN ARCHITECTURE Stored Program Concept • Memory unit consists of a large number of storage locations each with its own address. As a Prime Memory it can be observed as: –RAM (Random Access Memory) and its volatility. Typically 8 bit wide –ROM (Read Only Memory) 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 71 5. THE CPU & THE MOTHERBOARD Figure 1.9: Computer Motherboard with CPU in focus 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 72 5. THE CPU & THE MOTHERBOARD Figure 1.7: Computer Motherboard with CPU in focus Figure 1.10: Computer Motherboard with Description of its Elements 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 73 5. THE CPU & THE MOTHERBOARD • The motherboard is the main printed circuit board (PCB) which is a connection junction of some of the most important components inside a computer system. • The motherboard (PCB) is a hardware component which defines the system configuration in terms of microprocessor and the main memory – RAM (Random Access Memory). • The computer motherboard is defined as an electronic circuit board which facilitates the connection between the central processing unit (CPU), its peripherals, and other electronic devices connected to the system. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 74 6. MICROPROCESSORS Figure 1.11: Classification of Microprocessors 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 75 6. MICROPROCESSORS Figure 1.12: Types of Microprocessors (by Instruction Set) 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 76 6. MICROPROCESSORS • Processors will differ depending on whether the machine is a mobile phone, a tablet, a laptop, a desktop or a server. • By design, processors are made for a purpose; and the estate of the host machine does count. • Other factors are performance and heat dissipation, i.e. heat sinks in the host machine. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 77 6. EVOLUTION OF MICROPROCESSORS Figure 1.13: Moore’s Law (up to 2020) Source: https://en.wikipedia.org/wiki/Moore%27s_law 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 78 6. EVOLUTION OF MICROPROCESSORS MOSFET scaling (process nodes) •10 µm – 1971 •6 µm – 1974 •3 µm – 1977 • 1.5 µm – 1981 •1 µm – 1984 •800 nm – 1987 •600 nm – 1990 •350 nm – 1993 •250 nm – 1996 •180 nm – 1999 •130 nm – 2001 •90 nm – 2003 •65 nm – 2005 •45 nm – 2007 •32 nm – 2009 •22 nm – 2012 •14 nm – 2014 •10 nm – 2016 •7 nm – 2018 •5 nm – 2020 •3 nm – 2022 Figure 1.14: MOSFET Scaling Future •2 nm ~ 2024 Source: https://en.wikipedia.org/wiki/Moore%27s_law 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 79 6. EVOLUTION OF MICROPROCESSORS Figure 1.15: Moore’s Law (over 122 years) Source: https://www.unite.ai/moores-law/ 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 80 7. THE CPU & ITS PERIPHERALS MAIN MEMORY - RAM • Random-access memory is a form of computer’s short-term memory that can be read and changed in any order. • It is typically used to store working data and machine code. • The CPU can access RAM memory much faster than data on a hard disk, SSD, or other long-term storage device. • RAM capacity is therefore critical for system performance. • RAM is also known as working memory 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 81 7. THE CPU & ITS PERIPHERALS READ ONLY MEMORY - ROM • Read-only memory, or ROM, is a computer storage containing non-volatile, permanent data that, normally, can only be read. • ROM contains the programming that allows a computer to start up or regenerate each time it is turned on. • It is said that ROM is “stateful” in its enduring state, whereas RAM is “stateless.” 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 82 7. THE CPU & ITS PERIPHERALS HARD DISK DRIVE - HDD • A hard drive or hard disk drive (HDD) is a type of data storage device that is used in laptops, desktop or server computers. • An HDD is a “non-volatile” storage drive, which means it can retain the stored data even when no power is supplied to the device. • The HDD is the main storage for installed applications in a computing device. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 83 8. THE CPU & THE COMPUTER • A computing device is made of Hardware and Software. CPU Figure 1.16: Layers Models of a Computer 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 84 8. THE CPU & THE COMPUTER Figure 1.17: Different Parts of a Computer 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 85 9. FORCES INFLUENCING COMPUTER ARCHITECTURE Technology Programming Languages Applications Computer Architecture Operating Systems History Figure 1.18: Factors influencing Computer Architecture 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 86 9. FORCES INFLUENCING COMPUTER ARCHITECTURE APPLICATIONS • Increased requirement of faster software applications by a demanding consumer market, has lead to change in computer hardware architecture. • With the advent of advanced Chips, we now have multi-core processors. • This may open an opportunity of implementing parallel computing by software engineers and developers. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 87 9. FORCES INFLUENCING COMPUTER ARCHITECTURE HISTORY • Advances in technology have been made possible by learning from past failures. • The desire of humanity is to improve the living standards through innovation. • This can only be made possible if society looks back, learn and correct mistakes of yesterday. • It is common knowledge that IT has improved through past lessons (History)!!! 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 88 9. FORCES INFLUENCING COMPUTER ARCHITECTURE OPERATING SYSTEMS • Operating systems, being the “Virtual Machine” to the user; to the user, it abstracts the complexity of computer hardware architecture. • Operating systems have historically been closely tied to the architecture of the computers on which they run. • At the same, Operating Systems have influenced computer hardware architecture, especially in the area of multitasking or concurrency. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 89 9. FORCES INFLUENCING COMPUTER ARCHITECTURE PROGRAMMING LANGUAGES • A primary concern of the hardware designer is with the functionality provided to the programming user and programming language compiler. • The functionality is affected directly by the selection of an instruction set for the computer. • A determinant factor of the instruction set efficiency is its usefulness to the compiler code generator and hardware implementation consideration. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 90 9. FORCES INFLUENCING COMPUTER ARCHITECTURE TECHNOLOGY • Advances in IC (Integrated Circuit a.k.a. Chip) industry has enabled vendors to produce novel computer hardware. • Computer Hardware Architecture has now moved from single-core processors to multi-core processors. • With multi-core processors, a number of constraints due to the Van Neumann architecture have now been overcome, due to high performance processors. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 91 10.SUPER COMPUTERS INTRODUCTION • As of May 2022, the fastest supercomputer on the TOP500 supercomputer list is Frontier, in the US. • LINPACK benchmark score of 1.102 ExaFlop/s, followed by Fugaku. • The US has five of the top 10; China has two; Japan, Finland, and France have one each. • Russia has also super computer(s); but their number is not known! 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 92 10.SUPER COMPUTERS INTRODUCTION Source: https://unsplash.com/s/photos/super-computer Source: https://stock.adobe.com/nl/search?k=supercomputer Figure 1.19: Pictures of Some super computers 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 93 10.SUPER COMPUTERS CURRENT USES • Supercomputers are used for data-intensive and computation-heavy scientific and engineering purposes. • Fields requiring super computers are: Quantum mechanics; Weather forecasting; Oil and gas exploration; Molecular modeling; 30/03/2023 Physical simulations; Aerodynamics; Nuclear fusion research; And cryptoanalysis. Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 94 10.SUPER COMPUTERS NEXT GENERATION • The debut of a supercomputer called Frontier at Oak Ridge National Laboratory marks the beginning of a new era of computational chemistry. • Frontier can perform more than a quintillion operations per second, making it the first supercomputer tested to break what is known as the exascale barrier. 30/03/2023 Copyrights © 2020 -2024, Department of Electrical & Electronic Engineering, University of Zambia 95