an introduction to borph
play

An Introduction to BORPH Hayden Kwok-Hay So University of Hong - PowerPoint PPT Presentation

An Introduction to BORPH Hayden Kwok-Hay So University of Hong Kong Aug 2, 2008 CASPER Workshop II Language Design Environment Applications OS System Integration Hardware Software Language Design Environment


  1. An Introduction to BORPH Hayden Kwok-Hay So University of Hong Kong Aug 2, 2008 CASPER Workshop II

  2. • Language • Design Environment • Applications • OS • System Integration Hardware Software • Language • Design Environment • System • Applications Integration • OS BORPH

  3.  Berkeley Operating system for ReProgrammable Hardware  OS for reconfigurable computers  Treats reconfigurable hardware as computational resources  UNIX interface to HW designs  Familiar to both software and hardware engineers  Design language independent  Goal: Make FPGA-based reconfigurable computers easy to use

  4. User Process User Process User Process (SW) (SW) (SW) pipe socket User Library Software file Master-Slave IPC OS Kernel Relationship Device Driver Hardware Hardware Platform (Network, UART, HD…) FPGA “coprocessor”

  5. Peer-to-Peer User Process User Process User Process Relationship (SW) (SW) (SW) User Library Software pipe IPC socket file ioreg BORPH Kernel virtual file Device Driver Hardware Hardware User Library Hardware Platform (Network, UART, HD…) User Process User Process (HW) (HW)

  6.  Hardware process SW SW SW  Hardware syscall User Library pipe IPC socket interface Software file BORPH Kernel ioreg  Interacting with an FPGA Device Driver  ioreg virtual file interface Hardware User Library Hardware Hardware Platform  Hardware file I/O (Network, UART, HD…) HW HW

  7.  An executing instance of a hardware design SW SW SW  SW: An executing instance of a program User Library pipe IPC socket  Normal UNIX process Software file BORPH Kernel ioreg  Has pid, check status with Device Driver ps , kill , etc Hardware User Library  Unit of management Hardware Hardware Platform (Network, UART, HD…) HW HW  Created when a BORPH Object File (BOF) file is exec -ed  Kernel selects and configure hardware region automatically

  8.  Standard UNIX I/O mechanism SW SW SW  File I/O, pipe, signal  I/O managed by kernel User Library pipe IPC socket Software file  Similar to SW BORPH Kernel ioreg Device Driver  Hide details from users  e.g. HW-SW, HW-HW Hardware User Library Hardware Hardware Platform UNIX file pipe (Network, UART, HD…) HW HW  HW specific service  ioreg virtual file system Don’t ask “How do I … in HW”. Think: “What if it were SW?”

  9. SW SW SW  Fixed, generic kernel/user User Library interface pipe IPC socket Software file BORPH Kernel  Control + Data ioreg Device Driver  Natural ( Partial) Reconfiguration boundary Hardware User Library Hardware Platform Hardware  Packet-based, high-level (Network, UART, HD…) HW HW handshaking protocol  Error Handling Read Request  Incomplete read/write Size hsc_dout  Provides all system hsc_dout_f hsc_din functions Read Ack hsc_din_f Size hsc_rdy  sys_read, sys_write  sys_greet, sys_exit Payload

  10. SW SW SW  Similar to <stdio.h> in C language User Library pipe IPC socket Software file BORPH Kernel  Handles ioreg Device Driver communicating protocol with the Hardware User Library Hardware Platform Hardware (Network, UART, HD…) kernel HW HW  Example: hsc1_dout  BORPH File Stream I/ D bfsio_r hsc1_dout_f F hsc1_din O (bfsio) Library EOF hsc1_din_f  Read: bfsio_r hsc1_rdy User Design  Write: bfsio_w hsc2_dout bfsio_w D hsc2_dout_f F hsc2_din rdy hsc2_din_f flush hsc2_rdy

  11.  Maps user defined hardware constructs as virtual files under the process’s /proc/<pid>/hw/ioreg/ directory  Single word register  Memory: On-chip + Off-chip  FIFO  Example:  /proc/123/hw/ioreg/COUNTERVAL  ioreg information embedded in the executing BOF file  read and write system calls translated to message packet by the kernel  Any UNIX program can communicate with hardware processes  Shell: echo 1 > /proc/123/hw/ioreg/enable  C: MEM_FILE =  fopen(“/proc/123/hw/ioreg/MyMemory”, “r”);  fread(swbuf, 1, MEM_SIZE, MEM_FILE);  Python, Java, etc…

  12. ./counter.bof & bash$ [1] 2458 ps bash$ PID TTY TIME CMD BORPH 2456 pts/4 00:00:00 bash counter.bof Kernel 2458 pts/4 00:00:00 counter.bof 2507 pts/4 00:00:00 ps cat /proc/2458/hw/ioreg/cntval bash$ A3B498E0 Message cat /proc/2458/hw/ioreg/cntval bash$ Parsing B289E906 bash$ echo 0 > /proc/2458/hw/ioreg/cnten cat /proc/2458/hw/ioreg/cntval bash$ counter 0 1 HWR cntval cnten C102F34D en val kill -9 2458 bash$ [1]+ Killed counter.bof bash$ Configured

  13.  Access to the general file system from hardware processes  Debug by printing  printf  Read test vectors, record output Baseband Analog Upper A/D Process Frontend Layer bash$ receiver.bof < file.in > file.out  SW/HW processes chained by file pipe Edge Decode Resize Encode Detect video.in video.out bash$ decode video.in | resize | edgdet.bof | encode > video.out

  14.  Simulink: A block based design environment on top of Matlab  Familiar to communication/ protocol designers  Cycle-accurate, bit- accurate simulation in Simulink  Single-button to implementation  Based on Xilinx System Generator  In-house library for BEE2 specific blocks  I/O  BORPH integration

  15. System Insertion Block Instantiation Synthesis, Map, Place & Route Config Generation counter.bof

  16.  BORPH on PowerPC of center control FPGA  1 user FPGA programmed for each hardware process User User  Based on Linux Design Design 2.4.30 kernel  Software reuse BORPH  Debian root filesystem User User Design Design SelectMap MGT Direct Conn Ethernet

  17. Control FPGA User FPGA Ethernet On-Chip ioreg PLB-OPB PLB-OPB Controller Memory Bridge Bridge User ioreg Design PPC PPC Shared BRAM Memory DMA SelectMap Shared Controller Cntrl Control SelectMap FIFO A FIFO iock bfsio  Bus mastering DMA controller on Control FPGA  Improve configuration and data transfer  Direct HW access to SelectMap FIFO on User FPGA  Improved File I/O speed

  18.  1 AMCC PowerPC 440 EPx  1 Xilinx V5 FPGA  BORPH runs on PPC  v2.0  1 hardware process at a time User BORPH Design MGT Direct Conn Gb Ethernet

  19.  Based on Linux 2.6.25 kernel  Future proof  Modular  Easy to port to different platforms  e.g. Implementing ioreg interface for a new platform requires only 6 functions.  Many ports planned:  Backport to BEE2  PC Desktop with FPGA card

  20.  BORPH is here, ready to use  Free, open source  If you know Linux, you can use it  BORPH is extensible  Able to run on anything that runs Linux  BORPH is more than a way to do I/O  Covers all aspect of reconfigurable computing

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend