CONTROL SYSTEM FRONT-END HARDWARE UPGRADE

44
SLAC CONTROL SYSTEM FRONT-END HARDWARE UPGRADE Eric J. Siskind March 7, 2002 Stanford Linear Accelerator Center

description

Stanford Linear Accelerator Center. CONTROL SYSTEM FRONT-END HARDWARE UPGRADE. Eric J. Siskind March 7, 2002. Project Goals. Replace Multibus-I micro hardware with commercial-off-the-shelf personal computers. - PowerPoint PPT Presentation

Transcript of CONTROL SYSTEM FRONT-END HARDWARE UPGRADE

Page 1: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

SLAC

CONTROL SYSTEMFRONT-END

HARDWARE UPGRADEEric J. SiskindMarch 7, 2002

Stanford Linear Accelerator Center

Page 2: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 2

SLAC

Project Goals

• Replace Multibus-I micro hardware with commercial-off-the-shelf personal computers.

• Replace special purpose accelerator networks (SLCnet, KISnet, PNET) with a single commercial-off-the-shelf TCP/IP network such as switched gigabit Ethernet.

• Develop personal computer CAMAC interface to replace MBCD/MBCD-II.

Page 3: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 3

SLAC

Project Impetus

• Multibus-I difficult to upgrade, maintain, and support.

• Not able to take advantage of Moore’s Law increases in CPU speed, memory size, and network bandwidth for ~10 years.

• Two orders of magnitude increase in that time:– CPU clock frequency from ~20 MHz to ~2 GHz;

– Memory size from ~10 megabytes to ~1 gigabyte;

– Network bandwidth from 1-10 to 100-1000 megabits/second.

Page 4: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 4

SLAC Front-End Real-Time TCP/IP Networking

• Network must deliver 120/360Hz real-time micro-micro traffic in preference to slower Alpha-micro (or generic front-end client to micro) packets. There is currently no expertise in meeting this challenge on the SLAC site.

• Single network is preferable for reliability and cost of purchase/maintenance, but use of a separate real-time network at an early stage is possible.

Page 5: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 5

SLAC

New CAMAC Features

• CAMAC interface differs from MBCD/MBCD-II in four major ways:– Two board design to support remote I/O;– Real-time preemptive hardware with recovery;– Maximizes CAMAC utilization when user

software environment in PC is multi-threaded;– Large (i. e. comparable to existing micro) user

programming environment within interface.

Page 6: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 6

SLAC

Hardware Architecture

• Hardware consists of two circuit boards connected by up to 10 km of single mode fiber optics:– PCIL (“PCI Link”) board plugs into PCI option

slot in PC;– FECC (“Front-End CAMAC Controller”) is

double-width CAMAC module.

• PC moves from micro’s current location to MCC computer room, leaving behind only FECC.

Page 7: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 7

SLAC

PCIL Features

• Basically an intelligent special-purpose Network Interface Card.

• Processor with DMA PCI block transfer master and DMA fiber optic link transmitter/receiver.

• Makes no assumptions about nature of PC’s real-time operating system.

• Semi-static assembly language PROM code with downloaded updates.

• First generation hardware doubles as Alpha SLCnet interface.

Page 8: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 8

SLAC

PCIL Code Functions

• Supports PC FECC message passing.• Supports FECC remote read/write access to PC

memory with optional PC interrupt.• Performs function-specific scatter/gather DMA

to/from PC memory for all classes of operations, avoiding unnecessary buffer copying by PC CPU.

• Forwards trigger pattern from PCI registers to FECC (only in 1st generation; pattern forwarding in hardware in 2nd generation).

Page 9: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 9

SLAC

FECC Features

• Logical successor to MBCD/MBCD-II.• Accesses host memory via point-to-point fiber

optic link instead of parallel I/O bus.• Gets power from CAMAC backplane and timing

triggers from PDU via auxiliary backplane.• 1st generation supports MBCD-II’s four strings of

SLAC serial CAMAC crate controllers (5 MHz, bit serial, half duplex).

• 2nd generation adds support for four strings of IEEE standard crate controllers (5 MHz, byte serial, full duplex) and Bitbus.

Page 10: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 10

SLAC

Rapid Micro Replacement

• All PCs in MCC computer room have only three connections to outside world:– Front-end TCP/IP network interface;

– MPG IDOM connection to hard reset button (replaces PNET reset);

– Fiber optic connection to FECC.

• Only FECC connection is specific to a particular function; i. e. only attachment to PR02’s FECC converts an arbitrary PC on front-end network into PR02.

Page 11: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 11

SLAC

Micro Replacement II

• MCC computer room patch panel has fiber optic links to all PCs’ PCILs and all regions’ FECCs.

• Switching to a spare PC requires changing TCP/IP address, updating IDOM bit number, and moving fiber optic patch cord.

• First two accomplished via logical physical micro association table.

Page 12: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 12

SLAC

Real-Time Constraints• All accelerator operations based on 360 Hz timing;

2.78 milliseconds/pulse.• Many CAMAC operations must be performed on

each pulse, or on a particular pulse (e.g. F(19) PPYY broadcasts, BPM data acquisition).

• Real-time access to CAMAC for such time-critical usages is currently maintained by limiting all MBCD requests for groups (“packages”) of CAMAC cycles from non-time-critical micro jobs to one millisecond. Only one such micro job may have a single package outstanding in the MBCD at any given time.

Page 13: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 13

SLAC PCIL-FECC Real-Time CAMAC Access Scheme

• All time-critical operations either employ hardware that is distinct from that used for non-time-critical operations, or else can interrupt non-time-critical operations on shared hardware.

• All software executing in PCIL or FECC runs under a real-time executive with interrupt-driven prioritized preemptive scheduling.

Page 14: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 14

SLAC

Real-Time Latency

• Shared PCI hardware released in three PCI clock ticks (90/45 ns on 33/66 MHz bus).

• Shared 2nd generation fiber optic link accessed on next 4.9 microsecond cell (plus second cell if pattern forwarding required).

• Shared CAMAC hardware released in one CAMAC cycle (~10/~4 microseconds on SLAC/IEEE standard cable) unless locked.

• Real-time executive switches processes in 3-5 microseconds (plus similar interrupt latency if context switch already in progress).

Page 15: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 15

SLAC CAMAC Interrupt Recovery & Control

• If a CAMAC block transfer is interrupted, hardware can repeat the previous write operation (address pointer load?) with updated write data before resuming the transfer.

• Hardware can prevent an interrupt between CAMAC cycles transferring two 16-bit halves of a single 32-bit word.

• Hardware can prevent an interrupt of a particular block transfer entirely (needed because of a current PIOP feature).

Page 16: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 16

SLAC

MBCD-II Parallelism

• Multibus-I backplane bandwidth is ~1 megabyte/second (2 microseconds/16-bit word).

• SLAC serial CAMAC bandwidth is ~¼ of that (~8 microseconds/16-bit word in block transfer mode).

• Solution to limited bandwidth problem was to operate 4 CAMAC cables in parallel.

Page 17: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 17

SLAC MBCD-II Performance Limits

• MBCD-II firmware only looks at one package at a time, so a package must use multiple crates on different cables in order to achieve parallelism.

• Non-time-critical tasks often require multiple packages to read one module, so no parallelism is achieved (e.g. analog status can’t read an entire SAM from collider arcs in a single package).

• Time-critical operations with small numbers of words/crate don’t realize full bandwidth because of limited Multibus-I package fetch bandwidth.

Page 18: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 18

SLAC Package Fetch Improvements

• FECC CAMAC hardware has much higher ratio of local memory/CAMAC bandwidth to avoid package fetch bottlenecks.

• Very large PCI DMA bandwidth between PC memory and PCIL local memory, and link DMA bandwidth between PCIL local memory and FECC local memory:– Straw between FECC memory and CAMAC;

– Fire hose between PCIL memory and FECC memory;

– River between PC memory and PCIL memory.

Page 19: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 19

SLAC

System Performance

• Many PC jobs now can have simultaneously outstanding long CAMAC packages.

• All packages are sent to FECC firmware ASAP, and parsed into their individual (block transfer) operations in a single crate (“packets”).

• Packets are immediately queued to hardware for the cable accessing the target crate.

• Cable operation begins as soon as any outstanding package has a packet requiring access to a crate on that cable.

• Parallelism now achieved over multiple packages.

Page 20: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 20

SLAC

MBCD Intelligence

• Set of four 2911 4-bit slices to make 16-bit microsequencer (AMD 2900 series of bit-slice microprocessors).

• Code from a 32 x 16 bit PROM via a single 82S105 FPLS.

• 5 MHz FPLS clock; 2911 clock generated by FPLS at lower frequency as required.

Page 21: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 21

SLAC

MBCD-II Intelligence

• Analog Devices ADSP-2101 12.5 MHz 16-bit DSP.

• 2k x 24 bit on-chip program memory; 1k x 16 bit on-chip data memory; 8k x 8 bit external program/data memory (unused).

• Actual application program uses no more than a few hundred instructions and very little data memory.

Page 22: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 22

SLAC

PCIL/FECC Intelligence

• Analog Devices ADSP-21060 “SHARC” 40 MHz 32-bit DSP on each board.

• 40k x 48 bit on-chip program memory; 64k x 32 bit on-chip data memory.

• 512k/2048k x 48 bit external program/data memory (256k/512k x 48 in 2nd generation PCIL).

• External DMA I/O data memory:– 512k/2048k x 32 bit in 1st generation PCIL;– 256k/512k x 64 bit in 2nd generation PCIL;– 1024k/2048 x 32 bit in 2nd generation FECC.

Page 23: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 23

SLAC

User FECC Programming• Real-time executive plus MBCD/Bitbus emulation

uses <10% of on-chip program memory and most of on-chip data memory.

• Remaining minimum of 7+ megabytes of memory on 40 MHz 32-bit processor similar to existing 386/486 CPU boards.

• Move existing 360 Hz interrupt driven code from micro to CAMAC interface to minimize CAMAC access delay.

• C run-time environment with dynamic heap allocation; full environment and stack preserved over context switch.

Page 24: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 24

SLAC

1st Generation Hardware• PCIL uses 32 bit/33 MHz PCI slot.• Separate fiber optic links for real-time/non-real-

time PCIL FECC communication.• Each link runs at 12.5 megabytes/second half

duplex; back compatible with 10 megabyte/second BIPI link (SLCnet backbone).

• PCIL peeks and pokes at FECC memory.• PCI master and link are FPGA-based DMA

peripherals of PCIL SHARC.• CAMAC is programmed I/O peripheral of FECC

SHARC, but link uses SHARC DMA channels.

Page 25: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 25

SLAC

1st Generation Status

• Hardware based on SHARC plus FPGA-based peripherals (PCIL-3; FECC-2).

• PCIL debugged in 1999; FECC in 2000.• Five PCIL/FECC board sets, plus 3 PCILs for

Alpha SLCnet interface.• Now intended primarily for development:

– Link protocol requires 3-4 round trips per message; bandwidth & latency degrade with distance.

– Link TAXI chips no longer available.

Page 26: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 26

SLAC

2nd Generation Hardware

• PCIL2 uses 64 bit/66 MHz PCI slot.• Single specialized fiber optic link for PCIL2

FECC2 communication (NLC SBIR).• 125 megabyte/second full duplex link, but

9/19 used for hardware overhead.• All peripherals FPGA-based DMA except

for Bitbus (programmed I/O).• Hardware based on SHARC plus one large

FPGA per board.

Page 27: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 27

SLAC

2nd Generation Link

• All traffic divided into 608 byte cells.• 320 bytes of user data (real-time, non-real-time,

pattern, no-op/zero); 32 bytes of hardware header; 256 bytes of error correction code.

• Cell requires 4.864 microseconds; can withstand 128 consecutive bytes or > 1 microsecond of lost data in that time.

• Klystron modulator pulse is > 5 microseconds wide with < 1 microsecond rise and fall times; can survive loss of all data on both rising and trailing edges of a single modulator pulse.

Page 28: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 28

SLAC

2nd Generation Link II

• If uncorrectable errors, hardware timeout and retransmission of all lost cells; 100 microsecond (20 cell lengths) typical timeout length.

• Hardware flow control for 16 real-time receive buffers and 16 non-real-time receive buffers.

• No start-of-message sequences to be corrupted by noise after initial turn-on.

• Hardware header supports remote manipulation of initialization register; local and remote hardware error counters.

Page 29: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 29

SLAC

Link Header Format

• All fields 16 bits unless noted.• Command :

– 4 bits - destination buffer number;– 1 bit - first cell in buffer;– 1 bit - last cell in buffer;– 2 bits - cell type (Pattern/R-T/N-R-T/NOP);– 1 bit - remote initialization register write enable;– 7 bits - unused.

• Offset in buffer to end of cell, i. e. cumulative buffer length including this cell (64 byte chunks).

Page 30: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 30

SLAC

Link Header Format II

• Remote initialization register write data (32 bits).• 16 non-real-time receive buffer available bits

(backpressure flow control).• 16 real-time receive buffer available bits

(backpressure flow control).• 16 non-real-time receive buffer filled handshake

bits.• 16 real-time receive buffer filled handshake bits.

Page 31: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 31

SLAC

Link Header Format III

• Outgoing cell sequence number.• Next expected incoming cell sequence number.• Multiple cells acknowledged event count.• Received cell out-of-sequence error count.• Timeout error count.• 8B/10B decoder error count.• Reed-Solomon corrected error count.• Uncorrectable Reed-Solomon error count.• Outgoing and incoming versions of last 8 counters

readable from SHARC.

Page 32: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 32

SLAC

2nd Generation Status

• PCIL2 link now debugged; PCI master not yet tested.

• Two PCIL2 boards built in 2001; three more in 2002.

• FECC2 design in progress; complete by mid-summer; debugged by end of CY02.

• Initial build of two FECC2 boards in 2002; also requires I/O concentrator panel (too many connectors for CAMAC front panel).

Page 33: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 33

SLAC

3rd Generation Design• Replace SHARCs by PowerPC embedded in each

board’s single FPGA.• Time scale: FPGAs available in CY02; begin in

CY03(???).• Benefits:

– Commercial real-time executive with improved software development tools;

– Clearly the upcoming embedded hardware/software technology.

• Shortcomings:– Need more time;– Need more money.

Page 34: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 34

SLAC SLAC CAMAC Bandwidth

• ~7.4 microseconds per 16-bit word in block transfer mode.

• Add round trip propagation delay to target crate controller for each word (up to 2.7 microseconds in SLC arcs).

• Add 1.6 microseconds for 24-bit data.• Subtract 3.2 microseconds for control operation

(F8=1).• Add 3.6/4.8 microseconds for new CNAF in

read/write operations.

Page 35: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 35

SLAC IEEE Standard CAMAC Bandwidth

• 3.6 microseconds per 16/24 bit word for read/write with new CNAF on each cycle.

• Add round-trip propagation to furthest crate controller.

• Subtract 0.8 microseconds for control operation.• Includes parity on each byte and message check

byte.• 2-3 times faster than SLAC serial CAMAC

controllers.

Page 36: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 36

SLAC Pipelined IEEE Standard CAMAC Mode

• 1.0 microsecond per additional 16/24 bit read/write cycle (full CAMAC crate bandwidth).

• No change to CNAF allowed.• No round-trip propagation delay degradation.• Order of magnitude improvement over SLAC

serial CAMAC controllers.• Only supported by Kinetic Systems model 3952

“enhanced” L-2 crate controller.

Page 37: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 37

SLAC

1st Generation Bandwidth

• ~1 megabyte/second bit serial CAMAC bandwidth (four SLAC CAMAC cables combined) (“straw”).

• 12.5 megabytes/second for each link; only one of read/write active at any time on each link (“fire hose”).

• 133 megabytes/second PCI master in block transfer read/write (“river”).

Page 38: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 38

SLAC

2nd Generation Bandwidth

• 8 megabytes/second enhanced byte serial CAMAC bandwidth (four IEEE CAMAC cables combined).

• ~1 megabyte/second bit serial CAMAC bandwidth (four SLAC CAMAC cables combined).

• <0.05 megabyte/second Bitbus bandwidth.• 125 megabytes/second link burst rate in each

direction; maximum average rate is 10/19 of this or 66 megabytes/second.

• 533 megabytes/second PCI master in block transfer read/write.

Page 39: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 39

SLAC

Bitbus Master

• Existing master based on MCS-51 2 MHz 8 bit microcontroller with SDLC/HDLC serial link.

• 8044BEM is an MCS-51 with mask-programmed firmware (iDCX-51 RTE plus Bitbus application).

• FECC2 has programmed I/O hardware (one SHARC interrupt/32 bits) to send a packet to one slave and receive that slave’s response.

• Poll list, counters, etc. maintained by new SHARC code in FECC2.

• Command queuing no longer an issue.

Page 40: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 40

SLAC

Software Group Projects

• Build, boot, and debug iRMX-III in off-the-shelf personal computers.

• Make real-time micro micro data communications streams coexist with slower back-end front-end traffic on switched TCP/IP network.

• Move 360 Hz interrupt processing from micro to FECC.

Page 41: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 41

SLAC

Software Projects II

• Change control of 360 Hz interrupt processing from shared memory to network link model.

• Modify fast feedback actuator to specify real-time priority for CAMAC operations.

• Modify slower micro jobs to send larger packages to CAMAC interface to maximize parallelism.

• Modify klystron job to protect PIOP CAMAC operations from interrupts.

Page 42: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 42

SLAC

Software Projects III

• Support logical to physical micro mapping.

• Support PC access to file server delivering current versions of PCIL and FECC executable images appropriate to different types of micros.

Page 43: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 43

SLAC

Schedule

• SWE development effort is currently in progress (TEG/RCS).

• All optimizations not necessary at early stage.

• Trying to deploy 1-2 PC-micros in production system during accelerator shutdown beginning this July.

• Begin AIP with 2nd generation PCIL-FECC in FY03/04.

Page 44: CONTROL SYSTEM FRONT-END  HARDWARE UPGRADE

E. Siskind, March 7, 2002 44

SLAC Simplified Hardware Configuration

• No PCPC fast feedback (KISnet equivalent) network traffic.

• Use 1st generation PCIL-FECC hardware:– No IEEE CAMAC or Bitbus;– Only need 32 bit/33 MHz PCI slot.

• MPG PC (PNET equivalent) pattern broadcast network traffic on separate real-time TCP/IP network.

• PC-based MPG (MP10/MP11) gets pattern from MP00/MP01 via reflective memory link.