1 / 52

Designing with microprocessors

Designing with microprocessors. Architectures and components: software; hardware. Debugging. Manufacturing testing. Hardware platform architecture. Contains several elements: CPU; bus; memory; I/O devices: networking, sensors, actuators, etc. How big/fast much each one be?.

Télécharger la présentation

Designing with microprocessors

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. Designing with microprocessors • Architectures and components: • software; • hardware. • Debugging. • Manufacturing testing. Overheads for Computers as Components

  2. Hardware platform architecture Contains several elements: • CPU; • bus; • memory; • I/O devices: networking, sensors, actuators, etc. How big/fast much each one be? Overheads for Computers as Components

  3. The PC as a platform • Advantages: • cheap and easy to get; • rich and familiar software environment. • Disadvantages: • requires a lot of hardware resources; • not well-adapted to real-time. Overheads for Computers as Components

  4. Typical PC hardware platform CPU memory device CPU bus bus interface high-speed bus DMA controller intr ctrl timers low-speed bus bus interface device Overheads for Computers as Components

  5. Typical busses • ISA (Industry Standard Architecture): original IBM PC bus, low-speed by today’s standard. • PCI: standard for high-speed interfacing • 33 or 66 MHz. • USB (Universal Serial Bus), Firewire: relatively low-cost serial interface with high speed. Overheads for Computers as Components

  6. PC platform software • IBM PC uses BIOS (Basic I/O System) to implement low-level functions: • boot-up; • minimal device drivers. • BIOS has become a generic term for the lowest-level system software. Overheads for Computers as Components

  7. Example: StrongARM • StrongARM system includes: • CPU chip (3.686 MHz clock) • system control module (32.768 kHz clock). • Real-time clock; • operating system timer • general-purpose I/O; • interrupt controller; • power manager controller; • reset controller. Overheads for Computers as Components

  8. Pros and cons • Plentiful hardware options. • Simple programming semantics. • Good software development environments. • Performance-limited. Overheads for Computers as Components

  9. Apple Newton hardware architecture ARM 610 ROM RAM PCMCIA Runt ASIC serial I/F infrared LCD A/D tablet speaker Overheads for Computers as Components Design Automation for Embedded Systems

  10. Motorola Envoy hardware architecture PCMCIA 1 MB DRAM 4 MB flash Magicbus Astro system ASIC infrared audio power supply modem 68439 CPU touchscreen A/D Design Automation for Embedded Systems Overheads for Computers as Components

  11. InfoPad hardware architecture Wireless network interface Speech codec display Video decompressor Keyboard/pointer ARM 60 other I/O IEEE Trans. Computers Overheads for Computers as Components

  12. Hardware vs. software • Special-purpose hardware often consumes much less power. • Need to think about communication between units, multiprocessing. • Accelerators often require limits on parameters. • May be OK if standards limit parameters. Overheads for Computers as Components

  13. Philips set-top box hardware architecture DRAM Network interface MPEG demux MPEG audio MPEG video NVRAM DRAM I/O DRAM NTSC CD-I graphics PCMCIA Philips journal Overheads for Computers as Components

  14. Viper set-top-box chip Off-chip SDRAM Trimedia MIPS bridge bridge devices devices Overheads for Computers as Components

  15. TI Open Multimedia Applications Platform • Dual-processor shared memory system: external memory General-purpose processor DSP Mem ctrl DSP task & I/O ctrl GPP OS DSP manager DSP OS bridge http://www.ti.com/sc/docs/apps/wireless/omap/overview.htm Overheads for Computers as Components

  16. Agere StarPro platform http://www.lucent.com/micro/starpro/arch.html Overheads for Computers as Components

  17. C-Port C5 network processor http://www.cportcorp.com/products/digital.htm 600 Mbps to framer HDLC engine fabric processor to ATM HDLC engine other channel processors … (16 total) RISC executive controller Memory ctrl to mem Overheads for Computers as Components

  18. Hardware and software architectures Hardware and software are intimately related: • software doesn’t run without hardware; • how much hardware you need is determined by the software requirements: • speed; • memory. Overheads for Computers as Components

  19. Software architecture Functional description must be broken into pieces: • division among people; • conceptual organization; • performance; • testability; • maintenance. Overheads for Computers as Components

  20. Software components • Need to break the design up into pieces to be able to write the code. • Some component designs come up often. • A design pattern is a generic description of a component that can be customized and used in different circumstances. Overheads for Computers as Components

  21. Software state machine • State machine keeps internal state as a variable, changes state based on inputs. • Uses: • control-dominated code; • reactive systems. Overheads for Computers as Components

  22. State machine specification in1=1/x=a A B r=0/out2=1 r=1/out1=0 in1=0/x=b C D s=0/out1=0 s=1/out1=1 Overheads for Computers as Components

  23. C code structure • Current state is kept in a variable. • State table is implemented as a switch. • Cases define states. • States can test inputs. • Switch is repeatedly evaluated in a while loop. Overheads for Computers as Components

  24. C state machine structure while (TRUE) { switch (state) { case state1: … } } Overheads for Computers as Components

  25. C state table switch (state) { case A: if (in1==1) { x = a; state = B; } else { x = b; state = D; } break; case B: if (r==0) { out2 = 1; state = B; } else { out1 = 0; state = C; } break; case C: if (s==0) { out1 = 0; state = C; } else { out1 = 1; state = D; } break; Overheads for Computers as Components

  26. time t time t+1 Data stream • Commonly used in signal processing: • new data constantly arrives; • each datum has a limited lifetime. • Use a circular buffer to hold the data stream. d1 d2 d3 d4 d5 d6 d7 Overheads for Computers as Components

  27. Circular buffers • Indexes locate currently used data, current input data: d5 d1 input use d2 d2 input d3 d3 d4 d4 use time t1+1 time t1 Overheads for Computers as Components

  28. C circular buffer To compute FIR filter value f: for (f=0, ic=0, ibuff = circ_buff_head; ic < N; ibuff = (ibuff = N-1 ? 0 : ibuff++) ) f = f + c[ic] * circ_buff[ibuff] Overheads for Computers as Components

  29. Software design techniques • Want to develop as much code as possible on a standard platform: • friendlier programming environment; • easier debugging. • May need to devise software stubs to allow testing of software elements without the full hardware/software platform. Overheads for Computers as Components

  30. Host/target design • Use a host system to prepare software for target system: target system serial line host system Overheads for Computers as Components

  31. Host-based tools • Cross compiler: • compiles code on host for target system. • Cross debugger: • displays target state, allows target system to be controlled. Overheads for Computers as Components

  32. Evaluation boards • Designed by CPU manufacturer or others. • Includes CPU, memory, some I/O devices. • May include prototyping section. • CPU manufacturer often gives out evaluation board netlist---can be used as starting point for your custom board design. Overheads for Computers as Components

  33. Adding logic to a board • Programmable logic devices (PLDs) provide low/medium density logic. • Field-programmable gate arrays (FPGAs) provide more logic and multi-level logic. • Application-specific integrated circuits (ASICs) are manufactured for a single purpose. Overheads for Computers as Components

  34. Debugging embedded systems • Challenges: • target system may be hard to observe; • target may be hard to control; • may be hard to generate realistic inputs; • setup sequence may be complex. Overheads for Computers as Components

  35. Software debuggers • A monitor program residing on the target provides basic debugger functions. • Debugger should have a minimal footprint in memory. • User program must be careful not to destroy debugger program, but , should be able to recover from some damage caused by user code. Overheads for Computers as Components

  36. Breakpoints • A breakpoint allows the user to stop execution, examine system state, and change state. • Replace the breakpointed instruction with a subroutine call to the monitor program. Overheads for Computers as Components

  37. 0x400 MUL r4,r6,r6 0x404 ADD r2,r2,r4 0x408 ADD r0,r0,#1 0x40c B loop uninstrumented code 0x400 MUL r4,r6,r6 0x404 ADD r2,r2,r4 0x408 ADD r0,r0,#1 0x40c BL bkpoint code with breakpoint ARM breakpoints Overheads for Computers as Components

  38. Breakpoint handler actions • Save registers. • Allow user to examine machine. • Before returning, restore system state. • Safest way to execute the instruction is to replace it and execute in place. • Put another breakpoint after the replaced breakpoint to allow restoring the original breakpoint. Overheads for Computers as Components

  39. In-circuit emulators • A microprocessor in-circuit emulator is a specially-instrumented microprocessor. • Allows you to stop execution, examine CPU state, modify registers. Overheads for Computers as Components

  40. Logic analyzers • A logic analyzer is an array of low-grade oscilloscopes: Overheads for Computers as Components

  41. Logic analyzer architecture UUT sample memory microprocessor system clock vector address controller state or timing mode clock gen keypad display Overheads for Computers as Components

  42. How to exercise code • Run on host system. • Run on target system. • Run in instruction-level simulator. • Run on cycle-accurate simulator. • Run in hardware/software co-simulation environment. Overheads for Computers as Components

  43. Manufacturing testing • Goal: ensure that manufacturing produces defect-free copies of the design. • Can test by comparing unit being tested to the expected behavior. • But running tests is expensive. • Maximize confidence while minimizing testing cost. Overheads for Computers as Components

  44. Testing concepts • Yield: proportion of manufactured systems that work. • Proper manufacturing maximizes yield. • Proper testing accurately estimates yield. • Field return: defective unit that leaves the factory. Overheads for Computers as Components

  45. Faults • Manufacturing problems can be caused by many thing. • Fault model: model that predicts effects of a particular type of fault. • Fault coverage: proportion of possible faults found by a set of test. • Having a fault model allows us to determine fault coverage. Overheads for Computers as Components

  46. Software vs. hardware testing • When testing code, we have no fault model. • We verify the implementation, not the manufacturing. • Simple tests (e.g., ECC) work well to verify software manufacturing. • Hardware requires manufacturing tests in addition to implementation verification. Overheads for Computers as Components

  47. 0 1 0 0 Hardware fault models • Stuck-at 0/1 fault model: • output of gate is always 0/1. Overheads for Computers as Components

  48. Combinational testing • Every gate can be stuck-at-0, stuck-at-1. • Usually test for single stuck-at-faults. • One fault at a time. • Multiple faults can mask each other. • We can generate a test for a gate by: • controlling the gate’s input; • observing the gate’s output through other gates. Overheads for Computers as Components

  49. Sequential testing • A state machine is combinational logic + registers. • Sequential testing is considerably harder. • A single stuck-at fault affects the machine on every cycle. • Fault behavior on one cycle can be masked by same fault on other cycles. Overheads for Computers as Components

  50. Scan chains • A scannable register operates in two modes: • normal; • scan---forms an element in a shift register. • Using scan chains reduces sequential testing to combinational testing. • Unloading/unloading scan chain is slow. • May use partial scan. Overheads for Computers as Components

More Related