1/1/ / faculty of Electrical Engineering eindhoven university of technology Processor support devices Part 1:Interrupts and shared memory dr.ir. A.C. Verschueren.

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

I/O Organization popo.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
1  1998 Morgan Kaufmann Publishers Interfacing Processors and Peripherals.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Processor support devices Part 3:Memory management, floating point dr.ir. A.C.
Datorteknik BusInterfacing bild 1 Bus Interfacing Processor-Memory Bus –High speed memory bus Backplane Bus –Processor-Interface bus –This is what we usually.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir.
I/O Unit.
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
CS-334: Computer Architecture
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
FIU Chapter 7: Input/Output Jerome Crooks Panyawat Chiamprasert
1/1/ / faculty of Electrical Engineering eindhoven university of technology Architectures of Digital Information Systems Part 2: Programmable I/O and Multiprocessors.
Chapter 7 Interupts DMA Channels Context Switching.
TECH CH03 System Buses Computer Components Computer Function
Group 7 Jhonathan Briceño Reginal Etienne Christian Kruger Felix Martinez Dane Minott Immer S Rivera Ander Sahonero.
2. Methods for I/O Operations
1/1/ / faculty of Electrical Engineering eindhoven university of technology Input/Output devices Part 3: Programmable I/O and DSP's dr.ir. A.C. Verschueren.
Lecture 12 Today’s topics –CPU basics Registers ALU Control Unit –The bus –Clocks –Input/output subsystem 1.
CS-334: Computer Architecture
Computer Architecture Lecture 08 Fasih ur Rehman.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
Chapter 8 Input/Output. Busses l Group of electrical conductors suitable for carrying computer signals from one location to another l Each conductor in.
Chapter 10: Input / Output Devices Dr Mohamed Menacer Taibah University
CPU BASICS, THE BUS, CLOCKS, I/O SUBSYSTEM Philip Chan.
I/O Sub-System CT101 – Computing Systems.
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
MICROPROCESSOR INPUT/OUTPUT
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
2007 Oct 18SYSC2001* - Dept. Systems and Computer Engineering, Carleton University Fall SYSC2001-Ch7.ppt 1 Chapter 7 Input/Output 7.1 External Devices.
Top Level View of Computer Function and Interconnection.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
2009 Sep 10SYSC Dept. Systems and Computer Engineering, Carleton University F09. SYSC2001-Ch7.ppt 1 Chapter 7 Input/Output 7.1 External Devices 7.2.
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CE-321: Computer.
COMPUTER ORGANIZATIONS CSNB123 NSMS2013 Ver.1Systems and Networking1.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
MBG 1 CIS501, Fall 99 Lecture 18: Input/Output (I/O): Buses and Peripherals Michael B. Greenwald Computer Architecture CIS 501 Fall 1999.
EEE440 Computer Architecture
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Modes of transfer in computer
Organisasi Sistem Komputer Materi VIII (Input Output)
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
Dr Mohamed Menacer College of Computer Science and Engineering, Taibah University CE-321: Computer.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
IT3002 Computer Architecture
Input Output Techniques Programmed Interrupt driven Direct Memory Access (DMA)
بسم الله الرحمن الرحيم MEMORY AND I/O.
Chapter 3 System Buses.  Hardwired systems are inflexible  General purpose hardware can do different tasks, given correct control signals  Instead.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Bus Interfacing Processor-Memory Bus Backplane Bus I/O Bus
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
Chapter 8 Input/Output I/O basics Keyboard input Monitor output
Multiprocessor Introduction and Characteristics of Multiprocessor
Chapter 13: I/O Systems.
Presentation transcript:

1/1/ / faculty of Electrical Engineering eindhoven university of technology Processor support devices Part 1:Interrupts and shared memory dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital Information Systems

1/1/ / faculty of Electrical Engineering eindhoven university of technology What are 'processor support devices'? Processor support devices extend the functionality of the processor core –This includes almost everything in a computer except the input/output control logic –Can add exactly the needed amount of functionality –But ends up with a lot of separate hardware parts –Which must be interconnected, slowing down the system

1/1/ / faculty of Electrical Engineering eindhoven university of technology Integrate processor support with CPU Good example: –Intel 80486: 32 bits CPU, memory management (segmenting & paging), floating point co-processor, 'caches' Not so good example: –Philips 68070: 32 bits CPU, DMA and interrupt controllers, timers, standard and I 2 C serial input/output I/O is NOT ‘processor support’

1/1/ / faculty of Electrical Engineering eindhoven university of technology interrupt requests Interrupt handling The number of interrupts varies a lot (0.. >200) –Use separate interrupt controller devices to accomodate interrupt request receiver mask register & logic priority & selection logic vector generator vector request & vector transfer CPU interface 'interrupt handled’ enable / disable mode setting s vector setting s (I/O ports) ‘in service register’: routine started but not finished yet ‘interrupt request register’: requested but not started yet

1/1/ / faculty of Electrical Engineering eindhoven university of technology Equally important interrupts Giving these fixed priorities leads to 'starvation' –The lowest priority never gets handled (or very slow) Solution: use 'rotating priority' within such a group lowest priority! interrupt 4 handled priority

1/1/ / faculty of Electrical Engineering eindhoven university of technology ‘Cascading’ to get more interrupt inputs master controller interrupt request vector handshake vector interrupt interrupt inputs slave controller 1 slave controller N slave selection for vector generation Master should not disable slave input during interrupt Limited capabilities for rotating priorities only within slaves !

1/1/ / faculty of Electrical Engineering eindhoven university of technology ‘Daisy chaining’ to get more interrupts Very slow: signals must pass through all controllers Inflexible: priority determined by placement in chain interrupt vector interrupt request controller 1 controller N interrupt inputs in out in out 'false' vector handshake No request: out  in Active request: out  ‘true’ Give vector if: out AND (NOT in)

1/1/ / faculty of Electrical Engineering eindhoven university of technology The end of an interrupt routine Controllers need to know when a routine ends –To allow the next interrupt on the same input –To restore interrupt masks to their original status –To modify priorities in a rotating priority group This event is completely determined by software! –Use special RET instruction, 'visible' to controllers –Inform the interrupt controllers with I/O operations

1/1/ / faculty of Electrical Engineering eindhoven university of technology I/O deviceCPU Shared memory Direct Memory Access allows both the CPU and I/O devices access to the same main memory –The fastest solution: multi-ported shared memory read write addr data read write addr data (2-ported) memory CPU and I/O memory accesses do not interfere  Real 2-port memory is very expensive, 3 ports and up is not available!

1/1/ / faculty of Electrical Engineering eindhoven university of technology Shared memory with an arbiter Multi ported memory may be simulated with an ‘arbiter’ and a higher speed (normal) memory CPU read write addr data I/O device read write addr data memory arbiter fast(er) memory wait True simultaneous access is impossible! Fast memory is expensive ! May have to wait !

1/1/ / faculty of Electrical Engineering eindhoven university of technology Combine shared and private memory  Communication confined to a small memory area CPU works mostly in private memory: using an arbiter does not degrade performance! I/O device read write addr data shared memory private memory CPU read write addr data select address decoder I/O device read write addr data shared memory selec t Simple to have more devices

1/1/ / faculty of Electrical Engineering eindhoven university of technology system bus input/ output module global memory module I/O proc. + memory + I/O ports Modular systems Access to the system bus and shared memories requires arbitration ( = ‘data traffic control’) main proc. + memory arbiter ? ! ? ? ! !

1/1/ / faculty of Electrical Engineering eindhoven university of technology I/O processo r Main processo r global memory module I/O proc. + memory + I/O ports main proc. + memory arbiter Local memory 2 3 Global memory 3 2 Shared local memory 2 Memory mapping Mapping done by address decoding hardware –Which can place memories at different addresses ! Shared local memories require complex arbiters

1/1/ / faculty of Electrical Engineering eindhoven university of technology ‘Standard’ system buses Standardisation needed for ‘plug and play’ A lot of them exist (Multibus, VME, EISA....) –Multibus designed by Intel for 80x86 series –VME bus designed by Motorola for 680x0 series They compete for the most complex protocols  Bus signals optimised for one processor (series) –Using an Intel processor on a VME bus is not simple

1/1/ / faculty of Electrical Engineering eindhoven university of technology Shared bus Direct Memory Access –A protocol must be used to transfer bus mastership –Slower than shared memory solutions –I/O hardware must create all processor bus lines ! CPU Memory request grant CPU has bus I/O HW DMArequest DMAgrant read write data address CPU releases I/O HW has bus CPU takes bus back

1/1/ / faculty of Electrical Engineering eindhoven university of technology Memory Using a separate DMA controller DMA controller can handle multiple I/O requests –Requires the same functionality as multiple interrupts (masking, priorities...) CPU I/O DMA control in out read write address DMArequest DMAgrant IOrequest IOreq in out read write data address in out data read write data address Simple interface !

1/1/ / faculty of Electrical Engineering eindhoven university of technology Types of DMA controllers (1) Direct processor controlled DMA (generation 1) –Transfers one data block at a time –Requires main processor support for each data block Instruction list controlled DMA (generation 2) –Transfers multiple data blocks autonomously –Controlled by command (linked) list in memory

1/1/ / faculty of Electrical Engineering eindhoven university of technology Types of DMA controllers (2) DMA co-processors (generation 3) –Handle I/O tasks including transfer of data blocks –Run their own programs (stored in DMA memory), controlled by 'messages' in main memory main processor DMA co-processor I/O hardware main memory DMA memory