1 / 25

Computer System Organization

Computer System Organization. S H Srinivasan shs@cs.ucsd.edu. von Neumann Architecture. CPU arithmetic logical unit control unit Memory I/O Bus. von Neumann Architecture. CPU. Control Unit. ALU. Address bus. Data bus. Memory. Device controller. Control Unit. Operation fetch

bchisolm
Download Presentation

Computer System Organization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer System Organization S H Srinivasan shs@cs.ucsd.edu

  2. von Neumann Architecture • CPU • arithmetic logical unit • control unit • Memory • I/O • Bus

  3. von Neumann Architecture CPU Control Unit ALU Address bus Data bus Memory Device controller

  4. Control Unit • Operation • fetch • decode • execute • Registers • PC (program counter) • IR (instruction register) • PS (processor status) • SP (stack pointer)

  5. Control unit operation PC = <machine start address>; IR = memory[PC]; haltFlag = FALSE; while (!haltFlag) { execute(IR); PC = PC + sizeof(INSTRUCTION); IR = memory[PC]; }

  6. Memory • MAR • MDR • command: Read/Write

  7. ALU • General purpose registers • Functional units: addition, multiplication, etc. • Status flags: carry, overflow, etc.

  8. Devices • Control register • accepts commands • Status register: ready, busy • polling • Data registers • I/O: character, block

  9. I/O operation while (device.busy || device.done); device.data[0] = <value to write> device.command = WRITE; while(device.busy); device.done = TRUE; The above illustrates “busy-wait” operation This can be speed up using interrupts DMA

  10. Interrupts • Asynchronous input to CPU • Processor state (PC) needs to be saved • where? Stack • one more register: SP • Priorities: each interrupt has a priority • Masking • IPL: interrupt priority level • if (input IPL < current IPL) ignore the interrupt

  11. Interrupt processing /* assuming the interrupt is not masked */ (1) push PC and PS on the stack (2) set current IPL = input IPL (3) handle interrupt /* jump to service routine */ (4) restore the IPL (5) restore the PC and PS (from the stack)

  12. DMA • Device <===> Memory data transfer is usually through the CPU • read device, write memory or read memory, write device • Huge data transfer between memory and device: lot of overhead • DMA: Direct device <===> memory data transfer without CPU intervention

  13. Bootstrapping • Power-up: CPU starts executing from a fixed location • This program reads a fixed number of bytes from a fixed location in disk (boot sector) • The program in the boot sector is called the bootstrap loader • The bootstrap loader loads the OS

  14. Hardware support • Processor modes • Special instructions • traps • Atomic operations • test and set • Exceptions

  15. Processor Modes • Two modes: supervisor and user • Supervisor • all instructions can be executed, e.g., halt • all memory can be accessed • User • subset of instructions and memory

  16. Traps • “trap” is a software instruction with a single parameter • example, “trap 40” • can be executed in the user mode • when executed, changes the mode to supervisor and calls a subroutine associated with the number (“40”)

  17. Traps (cont’d) • These subroutines are written by the OS developer and not the user • system calls are basically C language wrappers for traps

  18. Exceptions • Exceptions signal error conditions • illegal memory access • divide by zero • Exceptions are equivalent to traps except that they are invoked by the hardware

  19. traps, exceptions: synchronous • caused by the current instruction • interrupts: asynchronous • caused by external events like user typing • traps: invoked by user • exceptions: invoked by hardware because of error

  20. System parameters • Data, Address size • Clock speed • Bandwidth: memory, device

  21. What does the OS provide? • Multiple processors • Unlimited memory • Easy I/O • How?

  22. What does a program really want? • Current instruction (locality) • Register values: PC, SP, SR, other registers • Nothing else! • We can execute the program one instruction at a time, keeping only one instruction in memory.

  23. What does the kernel do?(Highly simplified) • Take one program • restore the register values • execute one instruction • save the register values • Take another program • repeat the same operation • In practice, kernel executes the program for one time slice and keeps several pages in memory. • Kernel needs some machinery to do this

  24. Timer • Timer is absolutely essential for time slice allocation, error detection (timeout), etc. • Most systems also have a realtime clock • timer vs. cpu clock vs. wall clock

  25. Programming abstraction for processes if ((pid = fork()) == 0) { /* child code */ /* begins independent execution */ } else { /* error */ } /* rest of parent code */ /* if there is no error, there are two processes here */

More Related