Reliable Storage using Reed- Solomon coding Winter 2004/2005 Part B Final Presentation Ilan Rosenfeld & Moshe Karl Instructor: Isaschar Walter.

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

System Integration and Performance
INPUT-OUTPUT ORGANIZATION
Dr. Rabie A. Ramadan Al-Azhar University Lecture 3
Chapter 10 Input/Output Organization. Connections between a CPU and an I/O device Types of bus (Figure 10.1) –Address bus –Data bus –Control bus.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir.
Internal Logic Analyzer Final presentation-part B
Internal Logic Analyzer Final presentation-part A
Processor System Architecture
Super Fast Camera System Performed by: Tokman Niv Levenbroun Guy Supervised by: Leonid Boudniak.
1 Performed By: Khaskin Luba Einhorn Raziel Einhorn Raziel Instructor: Rivkin Ina Spring 2004 Spring 2004 Virtex II-Pro Dynamical Test Application Part.
© 2004 Xilinx, Inc. All Rights Reserved Implemented by : Alon Ben Shalom Yoni Landau Project supervised by: Mony Orbach High speed digital systems laboratory.
NETWORK ON CHIP ROUTER Students : Itzik Ben - shushan Jonathan Silber Instructor : Isaschar Walter Final presentation part B Spring 2006.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Part A Final Presentation.
Simulation Interface Final Presentation Guy Zur Eithan Nadir Instructor : Igal Kogan.
Parallel JPEG2000 Compression System Performed by: Dmitry Sezganov, Vitaly Spector Instructor: Stas Lapchev, Artyom Borzin.
Basic Input/Output Operations
Workload distribution in satellites Final Presentation Performed by :Grossman Vadim Maslovksy Eugene Instructor:Rivkin Inna Spring 2004.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Midterm Presentation.
Final Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Detector Array Controller Based on First Light First Light PICNIC Array Mux PICNIC Array Mux Image of ESO Messenger Front Page M.Meyer June 05 NGC High.
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
HS/DSL Project Yael GrossmanArik Krantz Implementation and Synthesis of a 3-Port PCI- Express Switch Supervisor: Mony Orbach.
Interface of DSP to Peripherals of PC Spring 2002 Supervisor: Broodney, Hen | Presenting: Yair Tshop Michael Behar בס " ד.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Characterization.
Performed by : Rivka Cohen and Sharon Solomon Instructor : Walter Isaschar המעבדה למערכות ספרתיות מהירות High Speed Digital Systems Laboratory הטכניון.
Super Fast Camera System Performed by: Tokman Niv Levenbroun Guy Supervised by: Leonid Boudniak.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
Input/Output and Communication
Technion Digital Lab Project Performance evaluation of Virtex-II-Pro embedded solution of Xilinx Students: Tsimerman Igor Firdman Leonid Firdman.
Lecture 7 Lecture 7: Hardware/Software Systems on the XUP Board ECE 412: Microcomputer Laboratory.
Unit-5 CO-MPI autonomous
INPUT-OUTPUT ORGANIZATION
INPUT/OUTPUT ARCHITECTURE By Truc Truong. Input Devices Keyboard Keyboard Mouse Mouse Scanner Scanner CD-Rom CD-Rom Game Controller Game Controller.
Computer Architecture Lecture 08 Fasih ur Rehman.
Universal Synchronous/Asynchronous Receiver/Transmitter (USART)
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
Universal Asynchronous Receiver/Transmitter (UART)
Top Level View of Computer Function and Interconnection.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
 8251A is a USART (Universal Synchronous Asynchronous Receiver Transmitter) for serial data communication.  Programmable peripheral designed for synchronous.
8279 KEYBOARD AND DISPLAY INTERFACING
EEE440 Computer Architecture
Part A Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
Final Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Final Presentation DigiSat Reliable Computer – Multiprocessor Control System, Part B. Niv Best, Shai Israeli Instructor: Oren Kerem, (Isaschar Walter)
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
FPGA firmware of DC5 FEE. Outline List of issue Data loss issue Command error issue (DCM to FEM) Command lost issue (PC with USB connection to GANDALF)
GBT SCA overview Slide 1-5 Work status Slide 6-10 Shuaib Ahmad Khan.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Part A Final Dor Obstbaum Kami Elbaz Advisor: Moshe Porian August 2012 FPGA S ETTING U SING F LASH.
PART 7 CPU Externals CHAPTER 7: INPUT/OUTPUT 1. Input/Output Problems Wide variety of peripherals – Delivering different amounts of data – At different.
IT3002 Computer Architecture
DDRIII BASED GENERAL PURPOSE FIFO ON VIRTEX-6 FPGA ML605 BOARD PART B PRESENTATION STUDENTS: OLEG KORENEV EUGENE REZNIK SUPERVISOR: ROLF HILGENDORF 1 Semester:
ECE 554 Miniproject Spring
GBT protocol implementation on Xilinx FPGAs Csaba SOOS PH-ESE-BE-OT.
8251 USART.
Compute Node Tutorial(2) Agenda Introduce to RocketIO How to build a optical link connection Backplane and cross link communications How to.
Status and Plans for Xilinx Development
Tiva C TM4C123GH6PM UART Embedded Systems ECE 4437 Fall 2015 Team 2:
Input/Output and Communication
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
Operating Systems Chapter 5: Input/Output Management
Presentation transcript:

Reliable Storage using Reed- Solomon coding Winter 2004/2005 Part B Final Presentation Ilan Rosenfeld & Moshe Karl Instructor: Isaschar Walter

Overview

A problem: storage device Setting is in space Cosmic radiation is in abundance (no atmosphere) Incident radiation upon storage device may cause bit-flips Valuable information might be lost

Possible Solutions Physical level –Thickening of shielding materials (problem - weight) –Further separation of logic level voltages (problem - energy) System level –Unit redundancy (e.g. majority vote) Logical level –Data redundancy with error-correcting coding

Solution: Reed-Solomon Coding Reed Solomon Encoder Reed Solomon Decoder Storage Device input data (possibly) corrupted data (hopefully) corrected data

Other parameters Data is to be stored/retrieved at high rates (gigabits per second) The system must be as generic as possible in regard to the required data rate

Defined Project Goals Building a system that is capable of: Receiving raw data at high rates (gigabits per second) Encoding of data in real time with Reed Solomon code and sending it to a storage device Retrieving the possibly corrupt data from the storage device and decoding it. All stages using minimum CPU resources. In addition, a storage system capable of: Receiving and transmitting data at such high rates. Customizable error insertion.

Project Part A Goals Studying the system-on-chip design process. Studying the EDK environment. Studying the blocks that build our system: –PowerPC –Reed Solomon Encoder/Decoder. –PLB IPIF and bus transaction protocol. –RocketIO Implementing the Reed Solomon cores as slaves on the bus (CPU still very involved in the flow). Sending a packet through RocketIO Reference Design

PLB PowerPC RS Decoder RS Encoder PLB2OPB Bridge OPB UART HyperTerminal on DIGLAB PC IPIF FIFO IPIF Part A Architecture

Part B Goals Implementation of: Multigigabit data accelerator for data source. Real-time, generic Reed-Solomon encoding/decoding system Generic serial storage device Demonstration system

The Design

Design Resources Two Memec FF1152 development boards with Virtex II Pro XC2VP30 chip XC2VP30 includes 2 PowerPC processors, and more logic and memory than older chips we used

Data Flow PC PowerPC Generic BRAM Generic MGT TX Generic MGT RX RS Encoding Serial Storage Generic MGT TX Generic MGT RX RS Decoding RS232 - UART RocketIO SMA RocketIO SMA Data Accelerator PLB IPIF PLB IPIF

Generic Design The data flow consists of N multigigabit channels Each channel is independent in resources All blocks in the multigagbit flow are generically constructed with varying data widths (and resource usage) The parameter “N” is decided in system design stage (EDK level), prior to synthesis.

Performance limits per channel Clock rate for encoding and decoding is set by the MGT clock. MGT may work at –62.5 MHz or MHz (32-bit data path) –125 MHz or MHz (16-bit data path) –250 MHz or MHz (8-bit data path) 32-bit is too wide (too much logic) 8-bit is much too fast for our blocks Decoder cannot work at MHZ Thus a 125 MHz / 16-bit scheme is chosen.

Performance limits per channel With a 125 MHz / 16-bit scheme, data can be transmitted only up to RocketIO MGT limit – 2 gbps. RS Encoder produces 16 new symbols per 239 input symbols. Therefore a rough limit on data rate per channel is 2 gbps * 239/255 = gbps

Design Blocks

Data flow revisited PC PowerPC Generic BRAM Generic MGT TX Generic MGT RX RS Encoding Serial Storage Generic MGT TX Generic MGT RX RS Decoding RS232 - UARTUART RocketIO SMA RocketIO SMA Data Accelerator PLB IPIF PLB IPIF

UART Controller core on the OPB bus Configured via generics to the following: –Baudrate: bps –Data bits: 8 –Parity: None –Stop bits: 1 –Flow control: None PC is configured with the same parameters. PowerPC program accesses this block with simple input/output functions.

PowerPC A 32-bit RISC embedded processor inside the Virtex II Pro FPGA (XC2VP30 chip includes two PowerPC processors) Operates at a rate of 300 MHz and connects directly, as master to the PLB. The processor has a JTAG interface, allowing debugging from a PC on runtime. In our system, PowerPC is not involved directly in the multigigabit data flow, but only configures the various blocks.

PLB IPIF As its initials suggest, an interface between the bus and the IP. Takes care of the transaction protocols on the bus and simplifies access to the IP. Also enables special features such as S/W Resetting, User Logic address ranges, interrupts, Bursting, DMA support and more.

Generic BRAM We created BRAM blocks of various port widths and interfaced them via IPIF according to the N parameter. PLB IPIF BRAM x1 32-bit 16-bit BRAM x2 32-bit BRAM xN 32-bit N*16-bit To PLB To Data Accelerator

Data Accelerator The block is intended to read data from the generic BRAM in consecutive clock cycles and output it towards MGT TX. Interfaces to PowerPC via PLB IPIF Includes configurable registers for: –Base address in BRAM for data –Max address in BRAM –Data rate limitation –Packet Sending indication Generics: No. of channels, BRAM address width.

RocketIO MGT RocketIO can transmit and receive serial data at rates ranging from 620 Mbps to Gbps. At these rates, in order to assure sampling at correct times, each byte is coded into a 10 bit sequence with enough edges. The 10 bit scheme allows for special “K- Characters”, which are used for various tasks, including packet start and end signaling (SOP, EOP) and byte-synchronization (Comma).

Mindspeed Physical Media Attachment Xilinx Coding Sublayer RocketIO MGT Diagram loopback 8B/10B Encode FIFO TXDATA 16 bit Serializer Transmit Buffer TXN TXP 8B/10B Decode Elastic Buffer RXDATA 16 bit Deserializer Comma Detect Receive Buffer RXN RXP

RocketIO MGT Configuration 8/10 coding enabled CRC disabled Comma is K28.5 (x“BC”) 125 MHz clock rate, 16-bit data path –Data rate:125 MHz x 16 bit = 2 Gbps –Bit rate: 125 MHz x 16 bit x 10b/8b = 2.5 Gbps Many more parameters…

Generic MGT According to the N, the number of channels, the number of parallel MGT transceivers also varies Generic MGT MGT #1 MGT #2 MGT #N RXDATA(0:15) TXDATA(0:15) RXN(0:0), TXN(0:0) RXP(0:0), TXP(0:0) RXDATA(0:31) TXDATA(0:31) RXDATA(0:16*N-1) TXDATA(0:16*N-1) RXN(0:1), TXN(0:1) RXP(0:1), TXP(0:1) RXN(0:N-1), TXN(0:N-1) RXP(0:N-1), TXP(0:N-1)

The Encoding System Asynch. FIFO Encoding Unit Outgoing packet delivery unit Pattern Generator PLB Interface Control PLB From MGT To Serial Storage or MGT

Asynchronous FIFO We have generated asynchronous FIFO of various depths and data-width of 16 bits for our data path In the encoding system, the input FIFO is used as a buffer for incoming data Control register chooses whether FIFO input is from MGT (“User Mode”) or PLB (“Bus Mode”)

Outgoing Packet Delivery Unit The unit’s input data may arrive from the input FIFO or the pattern generator (control register chooses) Data for encoding is drawn in groups of 239 symbols, and the unit waits for encoder indication of readiness Adds a start-of-packet symbol Outputs idle comma characters when no packet is being sent May send packets according to PowerPC request or automatically (control register chooses)

Reed Solomon cores When creating the cores using Xilinx CoreGen, the following parameters are needed: –k: number of symbols per data block (to be encoded) –n: total number of output symbols (original data + check symbols) –s: number of bits per symbol The Reed Solomon code can detect n-k symbol errors and correct (n-k)/2.

We have chosen k=239, n=255, s=8, which are similar to G. 709 standard. RS cores

RS Cores – Detailed

Encoding Unit For our 16-bit wide data path, 2 encoders are put in parallel and considered an encoding unit The two blocks are enveloped in a black box, which has inputs similar to a RocketIO transceiver TXDATA is encoded when required TXCHARISK is delayed to the output at the same latency of the encoders

Encoding Unit PLB Interface Accessing each channel of the encoding unit in the following: –Input Data –Control register read –Control register write –“Send” command in case of bus flow control

Generic Encoding System From Generic MGT PLB Interface To Serial Storage or Generic MGT

Serial Storage Interfaces like MGT (with DATA, CHARISK lines) Consists of the following: –FIFO for data storage –RX state machine –TX state machine –Data corruption unit Sends data according to a “send” signal

Decoding System Incoming Packet Receiving Unit Asynch. FIFO Decoding Unit PLB Interface Status / Statistics PLB From MGT

Incoming Packet Receiving Unit Stores incoming data in a buffer and releases it to the decoder once a full 255-symbol block has been gathered.

Decoding Unit Two generated 8-bit decoders are put in parallel and consist of one 16-bit decoder Since the decoder has a very long latency period, a secondary 16-bit decoder receives the traffic when the primary one is busy. Statistics are gathered in a register

Decoding Unit 16-bit RS Dec 8-bit RS Dec 8-bit RS Dec 16-bit RS Dec 8-bit RS Dec 8-bit RS Dec From Incoming Packet Receiving Unit Arbitration To buffer

Generic Decoding System PLB Interface PLB From MGT

Additional raw data receiver On the 1 st chip, also present is a raw data receiver which upon receiving of packet puts a copy of the data before decoding in a BRAM memory MGT RX BRAM RS Decoding Raw data receiver PLB IPIF PLB

Software

Accelerator and decoder board PowerPC program Receives data via UART from PC Configures the data accelerator (base, max addresses, rate limit and send order) Reads decoded and raw returned data and sends it via UART to PC

Encoder and storage board PowerPC program Configures the encoding system control parameters (data source, flow) Configures error insertion

Problems and Results

Problems RocketIO synchronization on startup Due to large decoder size, 3 decoding channels are already too much for one chip When performing PAR for a system with 2 decoders, the task failed to finish in reasonable time Therefore the decoding system consists of one channel only

System performance Data generation at 4x1.875 gbps = 7.5 gbps RS encoding at 7.5 gbps in / 8 gbps out RS decoding at 2 gbps in.

Demonstration Flow PowerPC Generic BRAM Generic MGT TX Generic MGT RX RS Encoding Serial Storage Generic MGT TX Generic MGT RX RS Decoding RS232 - UART RocketIO SMA RocketIO SMA PLB IPIF PLB IPIF PC HyperTerminal PC HyperTerminal

Thank you!