Khaled A. Al-Utaibi alutaibi@uoh.edu.sa Computers are Every Where What is Computer Engineering? Design Levels Computer Engineering Fields What is a Microcomputer ? Course Objectives The Stored Program Concept The Stored Program Processing Cycle Three-Bus System Architecture The 80x86 Family Microcomputer systems are becoming an essential part of any product or equipment in all fields including −House Appliances −Office Equipment −Telecommunications −Transportation −Traffic Control −Medical Equipment −Industrial Control Work A microcomputer is an electronic device with a microprocessor as its central processing unit (CPU), a memory, and input/output (I/O) facilities. When a microcomputer is equipped with a keyboard and screen for input and output and is running an operating system (DOS, Windows, Linux, etc) it is called a personal computer. To introduce the fundamental hardware and software concepts needed for the design of microcomputers system. To introduce the fundamental hardware and software concepts needed for the design of microcomputers system. − Functions of various processor pins − Memory/IO Read and Write bus cycles − Main types of memory technology − Memory internal organization − Design memory interfaces. − Computer serial and parallel interfaces To introduce the fundamental hardware and software concepts needed for the design of microcomputers system. − How interrupts are used to implement I/O control and data transfers − Design interrupt service routines and I/O drivers using assembly language. − Data access from magnetic and optical disk drives using DMA − Types of bus interfaces in a computer system Most of today’s computer systems are based on a design principle proposed by Dr. John Von Neumann (1946). The basic stored program computer (Von Neumann Architecture) consists of three major parts: (1) CPU, (2) Memory, (3) I/O Devices. The basic stored program cycle consists of three major steps: (1) Fetch, (2) Decode, (3) Execute. Clock Generator: − Controls the basic timing of the computer − It generates a square wave signal − This signal is used to synchronize all activities within the computer Registers: − Two types (general purpose, special purpose) − General purpose registers are used to store temporary information − Special purpose registers are used for specific tasks (e.g. the accumulator) Fetching, Decoding and Executing an Instruction: − The basic processing cycle begins with a memory fetch or read cycle − The Instruction Pointer (IP) holds the address of next instruction to be fetched. − This address is output on the system address bus. − The memory address decoder examines the binary value of the address on the system address bus and selects the proper memory location. Fetching, Decoding and Executing an Instruction: −The CPU activate the memory read control through the system control bus. −This causes the selected data byte (i.e. instruction) in the memory to be placed onto the data bus. −The instruction is then placed in the Instruction Register (IR). −Once in the CPU, the instruction is decoded and executed. − When executing the instruction is completed, the cycle is repeated. The Instruction Set: − The job of the Instruction Decoder (ID) is to recognize and activate appropriate controls in the CPU needed to execute the instruction. − The list of all instructions recognized by the ID is called the instruction set . − Microprocessors are classified based on the specification of the instruction sets into two categories: (1) Complex Instruction Set Computers (CISC) and (2) Reduced Instruction Set Computers (RISC) Modern CPUs: − Most microprocessors today are designed to allow the fetch and execute cycles to overlap. − This is done by dividing the CPU into two units: (1) a Bus Interface Unit (BIU) and (2) an Execution Unit (EU). − The job of the BIU is to fetch instructions from memory and store them in a special instruction queue. − The EU then fetches instructions from this queue (not from memory). − Some processors have a pipelined execution unit that allows the decoding and execution of instructions to overlap. A bus is a collection of electronic signal lines all dedicated to a particular task. The architecture considered in the previous slides consists of three types of buses: address, data, and control buses. The Data Bus: −The data bus consists of internal and external data buses. −The internal data bus connects the internal components of the CPU (e.g. Registers, ALU, etc.) to the data I/O pins of the CPU. − The external data bus connects the data I/O pins of the CPU to the memory and I/O devices (e.g. printer, monitor, etc). −The width of the internal data bus in bits is usually used to classify a microprocessor (e.g. 8-bit, 16-bit, 32-bi microprocessors) The Data Bus: −The width of the internal data bus is usually the same as the external data bust – but not always. − The 80386 processor has 32-bit internal and 32-bit external data buses. − The 80386SX processor has 32-bit internal data bus, but 16-bit external data bus. − The Pentium processor has 32-bit internal data bus and 64-bit external data bus. Memory Banks: −How a 64-bit (or 32-bit or 16-bit) processor can access an 8-bit-wide memory? −The memory is divided into banks. − The 8086 processor (16-bit) requires 2 banks (16/8=2). Memory Banks: −How a 64-bit (or 32-bit or 16-bit) processor can access an 8-bit-wide memory? −The memory is divided into banks. − The 80486 processor (32-bit) requires 4 banks (32/8=4). The address Bus: −It is used to identify the memory location or I/O device (also called I/O port) to be accessed by the CPU −The width of this bus in the 80x86 family varies from one processor to the other for example: The 8086/8088 processors have 20-bit address bus. The 80286 processor has 24-bit address bus. The 80386/80486/Pentium processors have 32-bit address bus. The Pentium Pro processor has 36-bit address bus. Example 1: How many different memory addresses can an 8086 output? Repeat for 80286 and 80386 processors. Example 1: How many different memory addresses can an 8086 output? Repeat for 80286 and 80386 processors. −8086 processor has 20 address lines −Addressable memory locations = 220 = 1M −80286 processor has 24 address lines −Addressable memory locations = 224 = 24x220 = 16M −80386 processor has 32 address lines −Addressable memory locations = 232 = 22x230 = 4G The Control Bus: −How can we tell if the address on the address bus is a memory address or an I/O port ? − How can we tell if the memory or I/O access is a read or write operation ? − These questions are answered by the control bus. − Each time the processor outputs an address, it also activates one of 4 control signals (1) Memory Read (2) Memory Write (3) I/O Read (4) I/O Write The 8086 Microprocessor (1978): −20-bit address bus. −16-bit internal data bus. −16-bit external data bus. −Separate bus interface unit (BIU) and execution unit (EU). −16-bit registers (with the ability to access the high or low 8 bits separately). −Built in hardware multiply and divide instructions. −Support for an external floating-point math coprocessor. The 8088 Microprocessor (1979): −20-bit address bus. −16-bit internal data bus. −8-bit external data bus. −Separate bus interface unit (BIU) and execution unit (EU). −16-bit registers (with the ability to access the high or low 8 bits separately). −Built in hardware multiply and divide instructions. −Support for an external floating-point math coprocessor. The 80186 & 80188 Microprocessors (1982): −A personal computer (PC) based on the 8086/8088 microprocessors requires several additional chips such as: a clock generator, a programmable timer, a programmable interrupt controller, a direct memory access controller and a circuitry to select the I/O devices. −To simplify the design, Intel introduced the 80186 & 80188 microprocessors. −The 80186/80188 integrates on a single chip an 8086/8088 microprocessor and all the chips mentioned above. −The 80186 & 80188 are often referred to as highintegration processors −Used as a microcontroller The 80286 Microprocessor (1982): −24-bit address bus. −16-bit internal data bus. −16-bit external data bus. −Designed to be software compatible with 8086 & 80186 microprocessors. −Provides two programming modes: Real Mode Protected Mode The 80286 Microprocessor (Real Mode): −The processor function exactly like the 8086 processor. −That is, any 8086 program can be run on a Real Mode 80286 processor without any change. −The 80286 processor uses only its 20 least significant address lines. −So, the memory space is limited to 1 MB. The 80286 Microprocessor (Protected Mode): −In this mode, the processor supports a multiprogram environment. −It gives each program a predetermined amount of memory. −This uses the full memory space which is 16MB. −This mode is called Protected Mode because several programs can be loaded into memory at once (each in its own segment), but are protected from each other. The 80386 Microprocessor (1984): −32-bit address bus. −32-bit internal data bus. −32-bit external data bus. −32-bit registers. −Provides three modes: Real Mode (identical to that of 80286) Protected Mode (manages 4 GB of memory in a way similar to that of the 80286). Virtual Mode (similar to Real Mode, except that multiple 8086 processors can run simultaneously The 80386 Microprocessor (1989): −32-bit address bus. −32-bit internal and external data bus. −32-bit registers. −On-chip cache (stores the most recently used instructions and data ) −Integrated Floating-Point Unit (FPU) −Real & Protected Modes as in 80386 −Pipelined design The Pentium Microprocessor (1993): −32-bit address bus. −32-bit internal −64-bit external data bus. −32-bit registers. −Two instructions pipelines −On-chip cache −Integrated FPU