PCI Coprocessor Expansion Card Alex Barabanov Shawn Crabb Thomas - - PowerPoint PPT Presentation

pci coprocessor expansion card
SMART_READER_LITE
LIVE PREVIEW

PCI Coprocessor Expansion Card Alex Barabanov Shawn Crabb Thomas - - PowerPoint PPT Presentation

PCI Coprocessor Expansion Card Alex Barabanov Shawn Crabb Thomas Gongaware David Palchak April 13, 2004 1 Overview Embed a microprocessor on a PCI expansion card Allow the host system to offload repetitive computations Specialize


slide-1
SLIDE 1

April 13, 2004 1

PCI Coprocessor Expansion Card

Alex Barabanov Shawn Crabb Thomas Gongaware David Palchak

slide-2
SLIDE 2

April 13, 2004 2

Overview

Embed a microprocessor on a PCI expansion card Allow the host system to offload repetitive computations Specialize embedded tasks for maximum performance Allow for easy task reconfiguration

slide-3
SLIDE 3

April 13, 2004 3

Hardware Components

Intel 960 HA MIPS processor PLX Technologies 9030-RDK prototyping board Flash ROM ( 1MB ) for firmware Dual port SRAM ( 4 MB ) for data buffers 33 Mhz 32-bit PCI interface

slide-4
SLIDE 4

April 13, 2004 4

Software Components

Linux 2.4 kernel driver for hardware/software interaction Modified libcrypto.so, libssl.so Embedded subroutines to perform MD5, RSA algorithms EEPROM reprogramming utility

slide-5
SLIDE 5

April 13, 2004 5

Details I - Hardware

PCI/Processor synchronized using interrupts SRAM used for data storage

Dual ported

Address segment multiplexing

Handled by 9030 PCI controller Reconfigurable via dedicated EEPROM

slide-6
SLIDE 6

April 13, 2004 6

Details II - Firmware

Stores power-on initialization code Contains driver interaction routines

Synchronizes with PCI controller Manages memory Marshalls processor interrupts Schedules worker thread execution

Requires documented hardware interface

slide-7
SLIDE 7

April 13, 2004 7

Details III – User Code

Embedded optimized subroutines for specific tasks

Modular exponentiation Bit parity

Operates on buffered data blocks Code must be reentrant (thread- safe) Potentially performance critical

slide-8
SLIDE 8

April 13, 2004 8

PCI Interface

Handled by on-board PLX 9030 controller DMA based data transfer/control signaling Supports burst block transfers Provides a generic interface to hardware on card

slide-9
SLIDE 9

April 13, 2004 9

Hardware/Driver Interface

Most difficult aspect of project Indirect interface (through PCI controller) Provide set of common control tasks Task Examples:

Status Query Receive data/Request data Begin/Pause/End task execution Write to EEPROM

slide-10
SLIDE 10

April 13, 2004 10

Firmware Interface

Firmware invokes embedded routines Need predefined assembly conventions

Argument passing/Return values Caller/Callee saved registers

Independent control threads

Memory Manager Thread scheduler EEPROM programmer Status Monitor

Power-On Initialization Routine

slide-11
SLIDE 11

April 13, 2004 11

User Process API

Hardware access routines used by library functions EEPROM control routines for firmware update utility Primary hardware abstraction

DMA based data transfer/control General purpose routines

Multithreaded Object-oriented API

Resource Access Policies

slide-12
SLIDE 12

April 13, 2004 12

Obstacles

Hardware

Mounting SMT parts on PCB Swapping out SRAM chips for higher capacity parts Formalizing interaction between 9030 I/O controller and microprocessor

Software

Linux driver development PCI / DMA protocols MIPS cross-compiling

slide-13
SLIDE 13

April 13, 2004 13

Bill of Materials - I

$ 18 Mouser Electronics (TX), Arrow Ecliptek 33-MHz Programmable Oscillator $ 90 Synnex (West SLC, UT) Arrow Electronics (Melville, NY) Intel i960 HA Processor $ 350

  • PLX Yahoo! Store
  • Lange Sales, Inc
  • (Littleton, CO)

PLX RDK9030-Lite Development Board

Price Vendors Part

slide-14
SLIDE 14

April 13, 2004 14

Bill of Materials - II

$ 523 TOTAL $ 58 Compass (SLC, UT) Advanced Technical Sales (Englewood, CO) Cypress CY7C019- 12AC SRAM $ 7 Arrow, Mouser Atmel AT29C010A- 12JC Flash ROM

Price Vendors Part

slide-15
SLIDE 15

April 13, 2004 15

Basic Schedule - I

Summer

Save $$$ and purchase parts Acquire documentation and literature

September

Build the PCI card ( Alex, Dave ) Write Linux driver

October

Write firmware Write and simulate cryptography assembly ( Shawn, Tom )

slide-16
SLIDE 16

April 13, 2004 16

Basic Schedule - II

November

Modify Linux libraries to export work Integration, testing, debugging

December

Integration, testing, debugging Presentation

slide-17
SLIDE 17

April 13, 2004 17

Questions?