System components Timing diagrams. Memory. Busses and interconnect. © 2000 Morgan Kaufman Overheads for Computers as Components Timing diagrams A timing diagram shows a trace through the operation of a system. Generally used for asynchronous machines with timing constraints. enq © 2000 Morgan Kaufman Overheads for Computers as Components ack Timing diagram syntax Constant value: 1 0 Stable: Changing: Unknown: © 2000 Morgan Kaufman Overheads for Computers as Components Timing constraints Minimum time between two events: enq 20 ns ack © 2000 Morgan Kaufman Overheads for Computers as Components Origin of timing constraints Control signals are passed on the bus: D 20 ns c a © 2000 Morgan Kaufman Overheads for Computers as Components Q Memory device organization n r Memory array c © 2000 Morgan Kaufman Overheads for Computers as Components Memory parameters Size. Address width. Aspect ratio. Data width. © 2000 Morgan Kaufman Overheads for Computers as Components Types of memory ROM: Mask-programmable. Flash programmable. RAM: DRAM. SRAM. © 2000 Morgan Kaufman Overheads for Computers as Components SRAM vs. DRAM SRAM: Faster. Easier to integrate with logic. Higher power consumption. DRAM: Denser. Must be refreshed. © 2000 Morgan Kaufman Overheads for Computers as Components Typical generic SRAM CE’ R/W’ SRAM Adrs Data © 2000 Morgan Kaufman Overheads for Computers as Components Generic SRAM timing CE’ R/W’ Adrs Data From SRAM read © 2000 Morgan Kaufman Overheads for Computers as Components From CPU write time Generic DRAM device CE’ R/W’ RAS’ CAS’ Adrs DRAM Data © 2000 Morgan Kaufman Overheads for Computers as Components Generic DRAM timing CE’ R/W’ RAS’ CAS’ Adrs row adrs col adrs Data © 2000 Morgan Kaufman data Overheads for Computers as Components time Page mode access CE’ R/W’ RAS’ CAS’ Adrs Data © 2000 Morgan Kaufman row adrs col adrs data Overheads for Computers as Components col adrs data col adrs data time RAM refresh Value decays in approx. 1 ms. Refresh value by reading it. Can’t access memory during refresh. CAS-before-RAS refresh. Hidden refresh. © 2000 Morgan Kaufman Overheads for Computers as Components Other types of memory Extended data out (EDO): improved page mode access. Synchronous DRAM: clocked access for pipelining. Rambus: highly pipelined DRAM. © 2000 Morgan Kaufman Overheads for Computers as Components Flash issues Flash is programmed at system voltages. Erasure time is long. Must be erased in blocks. © 2000 Morgan Kaufman Overheads for Computers as Components Generic bus structure Address: m n Data: Control: © 2000 Morgan Kaufman c Overheads for Computers as Components Electrical bus design Bus signals are usually tri-stated. Address and data lines may be multiplexed. Every device on the bus must be able to drive the maximum bus load: Bus wires. Other bus devices. Bus may include clock signal. Timing is relative to clock. © 2000 Morgan Kaufman Overheads for Computers as Components Four-cycle handshake 3 1 enq data 4 2 ack © 2000 Morgan Kaufman Overheads for Computers as Components Busses as communicating machines enq = 1 ack = 0 0 0 ack enq 1 1 enq = 0 ack ack = 1 1 enq 0 M1 © 2000 Morgan Kaufman 0 M2 Overheads for Computers as Components 1 When should you handshake? When response time cannot be guaranteed in advance: Data-dependent delay. Component variations. © 2000 Morgan Kaufman Overheads for Computers as Components Fixed-delay memory access read = 1 adrs = A R/W data R/W R reg = data adrs mem[adrs] = data data = mem[adrs] memory CPU © 2000 Morgan Kaufman W Overheads for Computers as Components Variable-delay memory access read = 1 adrs = A R/W done = 0 data R/W R done n y reg = data adrs data = mem[adrs] done = 1 done memory CPU © 2000 Morgan Kaufman W mem[adrs] = data done = 1 Overheads for Computers as Components Typical bus access clock R/W’ Address enable adrs Data Ready’ data write time read © 2000 Morgan Kaufman Overheads for Computers as Components Bus mastership Bus master controls operations on the bus. CPU is default bus master. Other devices may request bus mastership. Separate set of handshaking lines. CPU can’t use bus when it is not master. © 2000 Morgan Kaufman Overheads for Computers as Components Direct memory access (DMA) DMA provides parallelism on bus by controlling transfers without CPU. I/O memory CPU DMA © 2000 Morgan Kaufman Overheads for Computers as Components DMA operation CPU sets up DMA transfer: Start address. Length. Transfer block length. Style of transfer. DMA controller performs transfer, signals when done: Cycle-stealing. Priority. © 2000 Morgan Kaufman Overheads for Computers as Components ARM busses Open standard. Many external devices. memory CPU Two varieties: AMBA HighPerformance Bus (AHB). AMBA Peripherals Bus (APB). © 2000 Morgan Kaufman Overheads for Computers as Components AHB bridge AMBA: I/O APB