Top Level View of Computer Function and Interconnection
Program Concept <ul><li>Hardwired systems are inflexible </li></ul><ul><li>General purpose hardware can do different tasks...
What is a program? <ul><li>A sequence of steps </li></ul><ul><li>For each step, an arithmetic or logical operation is done...
Function of Control Unit <ul><li>For each operation a unique code is provided </li></ul><ul><ul><li>e.g. ADD, MOVE </li></...
Components <ul><li>The Control Unit and the Arithmetic and Logic Unit constitute the Central Processing Unit </li></ul><ul...
Computer Components: Top Level View
Instruction Cycle (Processing for a single instruction) <ul><li>Two steps: </li></ul><ul><ul><li>Fetch </li></ul></ul><ul>...
Fetch Cycle <ul><li>Program Counter (PC) holds address of next instruction to fetch </li></ul><ul><li>Processor fetches in...
Execute Cycle <ul><li>Processor-memory </li></ul><ul><ul><li>Data transfer between CPU and main memory </li></ul></ul><ul>...
Example of Program Execution
Instruction Cycle State Diagram
Interrupts <ul><li>Mechanism by which other modules (e.g. I/O) may interrupt normal sequence of processing </li></ul><ul><...
Interrupts <ul><li>A way to improve the processing efficiency  </li></ul><ul><li>Slow peripherals can not comprehend speed...
Program Flow Control
Interrupt Cycle <ul><li>Added to instruction cycle </li></ul><ul><li>Processor checks for interrupt </li></ul><ul><ul><li>...
In the Interrupt handler routine <ul><li>Fetch interrupt handler instructions from memory </li></ul><ul><li>Interrupt hand...
Transfer of Control via Interrupts
Instruction Cycle with Interrupts Hanggan d2 lng report ko mwaah
Program Timing Short I/O Wait
Program Timing Long I/O Wait
Instruction Cycle (with Interrupts) -  State Diagram
Multiple Interrupts-I <ul><li>We may have more than one interrupts </li></ul><ul><ul><li>A program receiving data from com...
Multiple Interrupts-II <ul><li>Disable interrupts </li></ul><ul><ul><li>Processor will ignore further interrupts whilst pr...
Multiple Interrupts - Sequential
Multiple Interrupts – Nested
Time Sequence of Multiple Interrupts
Connecting <ul><li>All the units must be connected </li></ul><ul><li>Different type of connection for different type of un...
Computer Modules
Memory Connection <ul><li>Receives and sends data </li></ul><ul><li>Receives addresses (of locations) </li></ul><ul><li>Re...
Input/Output Connection(1) <ul><li>Similar to memory from computer’s viewpoint </li></ul><ul><li>Output </li></ul><ul><ul>...
Input/Output Connection(2) <ul><li>Receive control signals from computer </li></ul><ul><li>Send control signals to periphe...
CPU Connection <ul><li>Reads instruction and data </li></ul><ul><li>Writes out data (after processing) </li></ul><ul><li>S...
Buses <ul><li>There are a number of possible interconnection systems </li></ul><ul><li>Single and multiple BUS structures ...
What is a Bus? <ul><li>A communication pathway connecting two or more devices </li></ul><ul><li>Often grouped </li></ul><u...
Data Bus <ul><li>Carries data </li></ul><ul><ul><li>Remember that there is no difference between “data” and “instruction” ...
Address bus <ul><li>Identify the source or destination of data </li></ul><ul><li>e.g. CPU needs to read an instruction (da...
Control Bus <ul><li>Control and timing information </li></ul><ul><ul><li>Memory read/write signal </li></ul></ul><ul><ul><...
Bus Interconnection Scheme
Arrangement <ul><li>What do buses look like? </li></ul><ul><ul><li>Parallel lines on circuit boards </li></ul></ul><ul><ul...
Physical Realization of Bus Architecture
Single Bus Problems <ul><li>Lots of devices on one bus leads to: </li></ul><ul><ul><li>Propagation delays </li></ul></ul><...
 
<ul><li>Devices  with high speed demand are closer to processor </li></ul><ul><li>But independent of processor ( Processor...
Bus Types <ul><li>Dedicated </li></ul><ul><ul><li>Separate data & address lines </li></ul></ul><ul><li>Multiplexed (time m...
Bus Arbitration <ul><li>More than one module controlling the bus </li></ul><ul><li>e.g. CPU and DMA controller </li></ul><...
Centralised or Distributed Arbitration <ul><li>Centralised </li></ul><ul><ul><li>Single hardware device controlling bus ac...
Timing <ul><li>Co-ordination of events on bus </li></ul><ul><li>Synchronous </li></ul><ul><ul><li>Events determined by clo...
 
 
 
PCI Bus <ul><li>Peripheral Component Interconnection </li></ul><ul><li>Intel released to public domain </li></ul><ul><li>3...
PCI Bus Lines (required) <ul><li>Systems lines </li></ul><ul><ul><li>Including clock and reset </li></ul></ul><ul><li>Addr...
PCI Bus Lines (Optional) <ul><li>Interrupt lines </li></ul><ul><ul><li>Not shared </li></ul></ul><ul><li>Cache support </l...
PCI Commands <ul><li>Transaction between initiator (master) and target </li></ul><ul><li>Master claims bus </li></ul><ul><...
 
 
 
Foreground Reading <ul><li>Stallings, chapter 3 (all of it) </li></ul><ul><li>www.pcguide.com/ref/mbsys/buses/ </li></ul><...
Upcoming SlideShare
Loading in …5
×

Computer function-and-interconnection 3

2,892 views

Published on

my report

Published in: Education, Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,892
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
38
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Computer function-and-interconnection 3

  1. 1. Top Level View of Computer Function and Interconnection
  2. 2. Program Concept <ul><li>Hardwired systems are inflexible </li></ul><ul><li>General purpose hardware can do different tasks, given correct control signals </li></ul><ul><li>Instead of re-wiring, supply a new set of control signals </li></ul>
  3. 3. What is a program? <ul><li>A sequence of steps </li></ul><ul><li>For each step, an arithmetic or logical operation is done </li></ul><ul><li>For each operation, a different set of control signals is needed </li></ul>
  4. 4. Function of Control Unit <ul><li>For each operation a unique code is provided </li></ul><ul><ul><li>e.g. ADD, MOVE </li></ul></ul><ul><li>A hardware segment accepts the code and issues the control signals </li></ul><ul><li>We have a computer! </li></ul>
  5. 5. Components <ul><li>The Control Unit and the Arithmetic and Logic Unit constitute the Central Processing Unit </li></ul><ul><li>Data and instructions need to get into the system and results out </li></ul><ul><ul><li>Input/output </li></ul></ul><ul><li>Temporary storage of code and results is needed </li></ul><ul><ul><li>Main memory </li></ul></ul>
  6. 6. Computer Components: Top Level View
  7. 7. Instruction Cycle (Processing for a single instruction) <ul><li>Two steps: </li></ul><ul><ul><li>Fetch </li></ul></ul><ul><ul><li>Execute </li></ul></ul><ul><ul><li>Halt if machine is turned off, unrecoverable error </li></ul></ul>
  8. 8. Fetch Cycle <ul><li>Program Counter (PC) holds address of next instruction to fetch </li></ul><ul><li>Processor fetches instruction from memory location pointed to by PC </li></ul><ul><li>Increment PC </li></ul><ul><ul><li>Unless told otherwise </li></ul></ul><ul><li>Instruction loaded into Instruction Register (IR) </li></ul><ul><li>Processor interprets instruction and performs required actions </li></ul>
  9. 9. Execute Cycle <ul><li>Processor-memory </li></ul><ul><ul><li>Data transfer between CPU and main memory </li></ul></ul><ul><li>Processor I/O </li></ul><ul><ul><li>Data transfer between CPU and I/O module </li></ul></ul><ul><li>Data processing </li></ul><ul><ul><li>Some arithmetic or logical operation on data </li></ul></ul><ul><li>Control </li></ul><ul><ul><li>Alteration of sequence of operations </li></ul></ul><ul><ul><li>e.g. jump </li></ul></ul><ul><li>Combination of above </li></ul>
  10. 10. Example of Program Execution
  11. 11. Instruction Cycle State Diagram
  12. 12. Interrupts <ul><li>Mechanism by which other modules (e.g. I/O) may interrupt normal sequence of processing </li></ul><ul><li>Program </li></ul><ul><ul><li>e.g. overflow, division by zero </li></ul></ul><ul><li>Timer </li></ul><ul><ul><li>Generated by internal processor timer </li></ul></ul><ul><ul><li>Used in pre-emptive multi-tasking </li></ul></ul><ul><li>I/O </li></ul><ul><ul><li>from I/O controller </li></ul></ul><ul><ul><ul><li>Task completion, variety of errors </li></ul></ul></ul><ul><li>Hardware failure </li></ul><ul><ul><li>e.g. Power failure, memory parity error </li></ul></ul>
  13. 13. Interrupts <ul><li>A way to improve the processing efficiency </li></ul><ul><li>Slow peripherals can not comprehend speedy processor </li></ul><ul><ul><li>Processor remains in stall state until device catches up </li></ul></ul><ul><ul><li>Different tasks interleaved with WRITE </li></ul></ul><ul><li>Without interrupts, program would wait for IO to complete </li></ul><ul><ul><ul><li>May Periodically pole the device. </li></ul></ul></ul><ul><li>With interrupts, user can execute other instructions while IO is performed </li></ul><ul><li>OS and Processor manage the suspension and resumption of program </li></ul>
  14. 14. Program Flow Control
  15. 15. Interrupt Cycle <ul><li>Added to instruction cycle </li></ul><ul><li>Processor checks for interrupt </li></ul><ul><ul><li>Indicated by an interrupt signal </li></ul></ul><ul><li>If no interrupt, fetch next instruction </li></ul><ul><li>If interrupt pending: </li></ul><ul><ul><li>Suspend execution of current program </li></ul></ul><ul><ul><li>Save context (address of next instruction to be executed) </li></ul></ul><ul><ul><li>Set PC to start address of interrupt handler routine </li></ul></ul><ul><ul><li>Process interrupt </li></ul></ul><ul><ul><li>Restore context and continue interrupted program </li></ul></ul>
  16. 16. In the Interrupt handler routine <ul><li>Fetch interrupt handler instructions from memory </li></ul><ul><li>Interrupt handler routines are part of OS </li></ul><ul><li>Extra instructions are executed but still save processing power </li></ul>
  17. 17. Transfer of Control via Interrupts
  18. 18. Instruction Cycle with Interrupts Hanggan d2 lng report ko mwaah
  19. 19. Program Timing Short I/O Wait
  20. 20. Program Timing Long I/O Wait
  21. 21. Instruction Cycle (with Interrupts) - State Diagram
  22. 22. Multiple Interrupts-I <ul><li>We may have more than one interrupts </li></ul><ul><ul><li>A program receiving data from communication line and printing data to a printing device </li></ul></ul><ul><li>Option to handle multiple interrupts </li></ul>
  23. 23. Multiple Interrupts-II <ul><li>Disable interrupts </li></ul><ul><ul><li>Processor will ignore further interrupts whilst processing one interrupt </li></ul></ul><ul><ul><li>Interrupts remain pending and are checked after first interrupt has been processed </li></ul></ul><ul><ul><li>Interrupts handled in sequence as they occur (No Priority task) </li></ul></ul><ul><ul><ul><li>Data arriving from communication line should be absorbed immediately </li></ul></ul></ul><ul><li>Define priorities </li></ul><ul><ul><li>Low priority interrupts can be interrupted by higher priority interrupts </li></ul></ul><ul><ul><li>When higher priority interrupt has been processed, processor returns to previous interrupt </li></ul></ul><ul><ul><ul><li>E.g. Printer 2, disk 4, communication line 5 </li></ul></ul></ul>
  24. 24. Multiple Interrupts - Sequential
  25. 25. Multiple Interrupts – Nested
  26. 26. Time Sequence of Multiple Interrupts
  27. 27. Connecting <ul><li>All the units must be connected </li></ul><ul><li>Different type of connection for different type of unit </li></ul><ul><ul><li>Memory </li></ul></ul><ul><ul><li>Input/Output </li></ul></ul><ul><ul><li>CPU </li></ul></ul><ul><li>Collection of paths connecting various structures are called interconnection structures. </li></ul>
  28. 28. Computer Modules
  29. 29. Memory Connection <ul><li>Receives and sends data </li></ul><ul><li>Receives addresses (of locations) </li></ul><ul><li>Receives control signals </li></ul><ul><ul><li>Read </li></ul></ul><ul><ul><li>Write </li></ul></ul><ul><ul><li>Timing </li></ul></ul>
  30. 30. Input/Output Connection(1) <ul><li>Similar to memory from computer’s viewpoint </li></ul><ul><li>Output </li></ul><ul><ul><li>Receive data from computer </li></ul></ul><ul><ul><li>Send data to peripheral </li></ul></ul><ul><li>Input </li></ul><ul><ul><li>Receive data from peripheral </li></ul></ul><ul><ul><li>Send data to computer </li></ul></ul>
  31. 31. Input/Output Connection(2) <ul><li>Receive control signals from computer </li></ul><ul><li>Send control signals to peripherals </li></ul><ul><ul><li>e.g. spin disk </li></ul></ul><ul><li>Receive addresses from computer </li></ul><ul><ul><li>e.g. port number to identify peripheral </li></ul></ul><ul><li>Send interrupt signals (control) </li></ul>
  32. 32. CPU Connection <ul><li>Reads instruction and data </li></ul><ul><li>Writes out data (after processing) </li></ul><ul><li>Sends control signals to other units </li></ul><ul><li>Receives (& acts on) interrupts </li></ul>
  33. 33. Buses <ul><li>There are a number of possible interconnection systems </li></ul><ul><li>Single and multiple BUS structures are most common </li></ul><ul><li>e.g. Control/Address/Data bus (PC) </li></ul><ul><li>e.g. Unibus (DEC-PDP) </li></ul>
  34. 34. What is a Bus? <ul><li>A communication pathway connecting two or more devices </li></ul><ul><li>Often grouped </li></ul><ul><ul><li>A number of channels in one bus </li></ul></ul><ul><ul><li>e.g. 32 bit data bus is 32 separate single bit channels </li></ul></ul><ul><li>Power lines may not be shown </li></ul>
  35. 35. Data Bus <ul><li>Carries data </li></ul><ul><ul><li>Remember that there is no difference between “data” and “instruction” at this level </li></ul></ul><ul><li>Width is a key determinant of performance </li></ul><ul><ul><li>8, 16, 32, 64 bit </li></ul></ul>
  36. 36. Address bus <ul><li>Identify the source or destination of data </li></ul><ul><li>e.g. CPU needs to read an instruction (data) from a given location in memory </li></ul><ul><li>Bus width determines maximum memory capacity of system </li></ul><ul><ul><li>e.g. 8080 has 16 bit address bus giving 64k address space </li></ul></ul>
  37. 37. Control Bus <ul><li>Control and timing information </li></ul><ul><ul><li>Memory read/write signal </li></ul></ul><ul><ul><li>IO Read/Write </li></ul></ul><ul><ul><li>Transfer Ack. </li></ul></ul><ul><ul><li>Interrupt request (indicates interrupt is pending) </li></ul></ul><ul><ul><li>Interrupt Ack. (pending intrrupt acknowledged) </li></ul></ul><ul><ul><li>Sending and requesting data requires: </li></ul></ul><ul><ul><ul><li>Request use of bus </li></ul></ul></ul><ul><ul><ul><li>Transfer of data via bus </li></ul></ul></ul>
  38. 38. Bus Interconnection Scheme
  39. 39. Arrangement <ul><li>What do buses look like? </li></ul><ul><ul><li>Parallel lines on circuit boards </li></ul></ul><ul><ul><li>Ribbon cables </li></ul></ul><ul><ul><li>Strip connectors on mother boards </li></ul></ul><ul><ul><li>On Chip and board wires </li></ul></ul>
  40. 40. Physical Realization of Bus Architecture
  41. 41. Single Bus Problems <ul><li>Lots of devices on one bus leads to: </li></ul><ul><ul><li>Propagation delays </li></ul></ul><ul><ul><ul><li>Long data paths mean that co-ordination of bus use can adversely affect performance </li></ul></ul></ul><ul><ul><ul><li>Bus may become a bottleneck as aggregate aggregate data transfer approaches bus capacity </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Increase the data rate (32-bit,64-bit) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Still growing application demands can t be met </li></ul></ul></ul></ul></ul><ul><li>Most systems use multiple buses to overcome these problems </li></ul>
  42. 43. <ul><li>Devices with high speed demand are closer to processor </li></ul><ul><li>But independent of processor ( Processor’s Architectural changes have no affect on high speed bus) </li></ul>
  43. 44. Bus Types <ul><li>Dedicated </li></ul><ul><ul><li>Separate data & address lines </li></ul></ul><ul><li>Multiplexed (time multiplexing) </li></ul><ul><ul><li>Shared lines </li></ul></ul><ul><ul><li>Address valid or data valid control line </li></ul></ul><ul><ul><li>Advantage - fewer lines, cost benefit </li></ul></ul><ul><ul><li>Disadvantages </li></ul></ul><ul><ul><ul><li>More complex control </li></ul></ul></ul><ul><ul><ul><li>Ultimate performance </li></ul></ul></ul><ul><ul><li>Physical Dedication (IO bus connects IO modules only) </li></ul></ul>
  44. 45. Bus Arbitration <ul><li>More than one module controlling the bus </li></ul><ul><li>e.g. CPU and DMA controller </li></ul><ul><li>Only one module may control bus at one time </li></ul><ul><li>Arbitration may be centralised or distributed </li></ul>
  45. 46. Centralised or Distributed Arbitration <ul><li>Centralised </li></ul><ul><ul><li>Single hardware device controlling bus access </li></ul></ul><ul><ul><ul><li>Bus Controller </li></ul></ul></ul><ul><ul><ul><li>Arbiter </li></ul></ul></ul><ul><li>Distributed </li></ul><ul><ul><li>Each module may claim the bus </li></ul></ul><ul><ul><li>Control logic on all modules </li></ul></ul>
  46. 47. Timing <ul><li>Co-ordination of events on bus </li></ul><ul><li>Synchronous </li></ul><ul><ul><li>Events determined by clock signals </li></ul></ul><ul><ul><li>Control Bus includes clock line </li></ul></ul><ul><ul><li>A single 1-0 is a bus cycle </li></ul></ul><ul><ul><li>All devices can read clock line </li></ul></ul><ul><ul><li>Usually sync on leading edge </li></ul></ul><ul><ul><li>Usually a single cycle for an event </li></ul></ul>
  47. 51. PCI Bus <ul><li>Peripheral Component Interconnection </li></ul><ul><li>Intel released to public domain </li></ul><ul><li>32 or 64 bit </li></ul><ul><li>50 lines </li></ul>
  48. 52. PCI Bus Lines (required) <ul><li>Systems lines </li></ul><ul><ul><li>Including clock and reset </li></ul></ul><ul><li>Address & Data </li></ul><ul><ul><li>32 time mux lines for address/data </li></ul></ul><ul><ul><li>Interrupt & validate lines </li></ul></ul><ul><li>Interface Control </li></ul><ul><li>Arbitration </li></ul><ul><ul><li>Not shared </li></ul></ul><ul><ul><li>Direct connection to PCI bus arbiter </li></ul></ul><ul><li>Error lines </li></ul>
  49. 53. PCI Bus Lines (Optional) <ul><li>Interrupt lines </li></ul><ul><ul><li>Not shared </li></ul></ul><ul><li>Cache support </li></ul><ul><li>64-bit Bus Extension </li></ul><ul><ul><li>Additional 32 lines </li></ul></ul><ul><ul><li>Time multiplexed </li></ul></ul><ul><ul><li>2 lines to enable devices to agree to use 64-bit transfer </li></ul></ul><ul><li>JTAG/Boundary Scan </li></ul><ul><ul><li>For testing procedures </li></ul></ul>
  50. 54. PCI Commands <ul><li>Transaction between initiator (master) and target </li></ul><ul><li>Master claims bus </li></ul><ul><li>Determine type of transaction </li></ul><ul><ul><li>e.g. I/O read/write </li></ul></ul><ul><li>Address phase </li></ul><ul><li>One or more data phases </li></ul>
  51. 58. Foreground Reading <ul><li>Stallings, chapter 3 (all of it) </li></ul><ul><li>www.pcguide.com/ref/mbsys/buses/ </li></ul><ul><li>In fact, read the whole site! </li></ul><ul><li>www.pcguide.com/ </li></ul>

×