Liquid Processor Platform

Slides:



Advertisements
Similar presentations
Nios Multi Processor Ethernet Embedded Platform Final Presentation
Advertisements

Categories of I/O Devices
Microprocessors Typical microprocessor controlled devices: Camera, mobile phone, stereo, mp3 player, electronic toys… High-level microprocessor controlled.
Lab6 – Debug Assembly Language Lab
Avishai Wool lecture Introduction to Systems Programming Lecture 8 Input-Output.
Extensible Networking Platform 1 Liquid Architecture Cycle Accurate Performance Measurement Richard Hough Phillip Jones, Scott Friedman, Roger Chamberlain,
RUAG Aerospace 11 Using SpaceWire as EGSE Interface Anders Petersén, Torbjörn Hult RUAG Aerospace Sweden AB (Saab Space) International SpaceWire Conference.
The ARM7TDMI Hardware Architecture
Energy Evaluation Methodology for Platform Based System-On- Chip Design Hildingsson, K.; Arslan, T.; Erdogan, A.T.; VLSI, Proceedings. IEEE Computer.
Configurable System-on-Chip: Xilinx EDK
Memory Organization.
The Xilinx EDK Toolset: Xilinx Platform Studio (XPS) Building a base system platform.
WANs and Routers Routers. Router Description Specialized computer Like a general purpose PC, a router has:  CPU  Memory  System Bus Connecting Internal.
Basic Computer Organization CH-4 Richard Gomez 6/14/01 Computer Science Quote: John Von Neumann If people do not believe that mathematics is simple, it.
Lecture 7 Lecture 7: Hardware/Software Systems on the XUP Board ECE 412: Microcomputer Laboratory.
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Computer Organization
C.S. Choy95 COMPUTER ORGANIZATION Logic Design Skill to design digital components JAVA Language Skill to program a computer Computer Organization Skill.
Ross Brennan On the Introduction of Reconfigurable Hardware into Computer Architecture Education Ross Brennan
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
The Layered Protocol Wrappers 1 Florian Braun, Henry Fu The Layered Protocol Wrappers: A Solution to Streamline Networking Functions to Process ATM Cells,
Vintage Computer Hardware 101 Featuring the MITS Altair 680b Bill Degnan.
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
Computer Emergency Notification System (CENS)
NIOS II Ethernet Communication Final Presentation
- Washington University in St. Louis Apr 26, 2004 Liquid Architecture.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
Hot Interconnects TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor David V. Schuehler
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
12/8/20151 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Roy Campbell, Sam King,
80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types.
Field Programmable Port Extender (FPX) 1 NCHARGE: Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied.
File Systems cs550 Operating Systems David Monismith.
Part A Final Dor Obstbaum Kami Elbaz Advisor: Moshe Porian August 2012 FPGA S ETTING U SING F LASH.
Overview von Neumann Architecture Computer component Computer function
CS/CoE 536 : Lockwood 1 Step 1 : Submit Project Information Visit : –Provide Project.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Liquid Architecture D. Schuehler, B. Brodie, R. Chamberlain, R. Cytron, S. Friedman, J. Fritts, P. Jones, P. Krishnamurthy, J. Lockwood, S. Padmanabhan,
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the Field Programmable Port Extender John Lockwood and David Taylor Washington University.
Field Programmable Port Extender (FPX) 1 Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied Research.
Hello world !!! ASCII representation of hello.c.
LonWorks Introduction Hwayoung Chae.
Operating Systems A Biswas, Dept. of Information Technology.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Software and Communication Driver, for Multimedia analyzing tools on the CEVA-X Platform. June 2007 Arik Caspi Eyal Gabay.
INTRODUCTION TO AVRASSEMBLY PROGRAMMING
ARM Embedded Systems
Lab 1: Using NIOS II processor for code execution on FPGA
Chapter 1: A Tour of Computer Systems
CS703 - Advanced Operating Systems
Programmable Logic Controllers (PLCs) An Overview.
Step 1 : Submit Project Information
Serial Data Hub (Proj Dec13-13).
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Instruction encoding We’ve already seen some important aspects of processor design. A datapath contains an ALU, registers and memory. Programmers and compilers.
Washington University, Applied Research Lab
Remote Management of the Field Programmable Port Extender (FPX)
Instruction encoding We’ve already seen some important aspects of processor design. A datapath contains an ALU, registers and memory. Programmers and compilers.
Delivering the Data.
ADSP 21065L.
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Liquid Processor Platform The goal of this project is to develop a soft core embedded processor system that can be programmed via a network connection. This platform is to be used as the based system for a larger “Liquid Architecture” project that will make modifications to the Leon processor for experimental purposes. Visit: http://www.arl.wustl.edu/arl/projects/fpx/reconfig.htm

Team Members Phillip Jones (team leader) High-level hardware architecture Shobana Padmanabhan Control Software development John Maschmeyer SDRAM controller interface Daniel Rymarz Cross-compiler, Executable -> IP packet formatting

Layered Protocol Wrappers SOC Block Diagram Off-Chip SRAM/SDRAM 1 SRAM/SDRAM 1 Controller Leon Controller Control Packet Processor (cpp) (Modified MP3) Alert Generator (Modified MP3) LEON system Layered Protocol Wrappers

LEON system ICACHE DCACHE To Leon Controller Boot Rom Key LEON Processor ICACHE DCACHE Data / Address Memory Controller To Leon Controller UART AHB Serial port APB Adapter Boot Rom LED Driver LEDs Key Present Modified

Motivation Soft-core embedded Processor: Very flexible processor that would be useful for quickly prototyping systems with different parameters (e.g. pipe-line depth, cache size, hardware-accelerated instructions, etc.) to perform performance evaluations Programmable / Configurable over a Network: Motivated by the desire to integrate the soft-core processor into the FPX environment (FPX environment will provide an infrastructure for dynamic reconfiguration)

References & Related Work The base Leon system used in this project can be downloaded from http://www.gaisler.com/download.html Other projects that have used the Leon system http://www.gaisler.com/leon.html#leonlinks

Design Approach Start with Leon Processor base Supplies many of the components that will be needed in the end system. Soft-core processor Memory controller General I/O Drivers (for Liquid “Architecture Project”) System/Processor Bus (AMBA) Develop and Integrate new features Control SW Modify Boot ROM AMBA to SDRAM Controller Adapter Control Packet routing (MP3 cpp as base) Validation Environment (MP3 Testbench as base)

Layered Protocol Wrappers SOC Block Diagram Off-Chip SRAM/SDRAM 1 SRAM/SDRAM 1 Controller Leon Controller Control Packet Processor (cpp) (Modified MP3) Alert Generator (Modified MP3) LEON system Layered Protocol Wrappers

Design Data New/Modified Entities External Memory Interfaces LEON Controller Control LEON access to memory / Start of program execution LEON Boot ROM modified to poll a given memory address at boot up LEON Memory Controller modified to interface with FPX SDRAM External Memory Interfaces 1 SRAM/SDRAM Interface Estimated Size Number of LUTs: 12,277 (31%) Number of Slices: 7900 (41%) Number of BlockRAMs: 54 (33%) Synthesis Frequence: 30 MHz

Tasks Config/Build/Validation Environment Control Packet Process Configuration of Leon system Cache size, MMU, Memory access wait states … Integration of Leon system into MP3 validation environment Control Packet Process Direct the appropriate Control packets to Leon Controller (Read/Write SRAM, Start program, …) SDRAM Interface Needed if larger applications such as Linux are to be run on the Liquid processor system

Tasks (cont.) Control SW Automate tasks (e.g. Load Program, read/write RAM location “x”, Reset Processor, …) Definition of control packets Sparc Assembly programming & Cross-compiler code generation Develop test programs for Leon to execute conversion of executable into IP packet payload

Implementation & Testing Hardware Leon Controller Leon Processor SDRAM interface Software Control software Cross-compiler, executable conversion

Leon Boot Check Message to user “LEON READY” SRAM data_in data_out Monitor ‘Z’ SRAM_OE CpuData Leon Processor CpuAddr

Leon Control Hardware Message to user “LEON READY” SRAM data_in data_out Leon Control State Machine Check for CpuAddr = CheckReady ‘0’ LeonGo CpuAddr LeonGo UserAddr ‘Z’ LeonGo UserStart SRAM_OE CpuData UserData Leon Processor CpuAddr

Simple “User” Emulation Send result to user (via IP packet) SRAM Leon Control State Machine & User Emulation data_in data_out ‘0’ LeonGo CpuAddr LeonGo ‘Z’ LeonGo UserAddr SRAM_OE CpuData UserData Leon Processor CpuAddr

Boot Rom Modifications Set Config registers Set Config registers Set up dedicated SRAM space Set up dedicated SRAM space Wait for UART Event Wait for Go Leon flush Load: ld reg value CheckReady: ld reg ProgAddr btst 1 reg cmp 0 reg be “Load” be “CheckReady” nop jmp reg Original Leon Boot code Modified Leon Boot code

Motivation for SDRAM SRAM - 1 MB, SDRAM - 64 MB Large Programs will need the extra memory space SRAM solution uses existing LEON memory outputs Easy to implement Performance is limited For Better Performance, connect directly to AMBA bus Requires modifying LEON More difficult to implement Allows for performance enhancements

SDRAM Adapter: Overview FPX SDRAM Controller Arbitrated support for up to 3 modules Support for Sequential Bursts of fixed length 64-bit bus to SDRAM AMBA AHB Bus Support for sequential and non-sequential bursts of unspecified length 32-bit wide data bus

SDRAM Adapter: Design Must handle protocols for both sides Operate as an AMBA AHB slave Handle Handshaking with SDRAM Controller Difference in bus width causes some problems Reads can simply return correct 32-bit segment Writes must first read full 64-bits, then modify only correct segment

SDRAM Adapter: Support for bursts Controller cannot handle non-sequential bursts Handshake required between each access Sequential bursts are limited by unspecified burst length Simulations seem to indicate that bursts tend to be no longer than 4 32-bit words Solution: Design for bursts of 4 32-bit words No real loss for shorter bursts Longer bursts will require an additional handshake Write bursts cannot occur

Control S/W Architecture H/W Internet Java Emulator of the H/W (for debugging) 1. Compile w/ GCC 2. Assemble w/ GAS 3. Link w/ LD 4. Convert to bin w/ OBJCOPY 5. Convert to IP w/ Forth program 1. Upload the IP from the prev step 2. Enter other UDP parameters Java Servlet (running on Apache TomCat) acting asUDP Client

Control S/W web page

Java Server receiving the UDP packet

Control packet for write Control packet for memory write = x64 Control packet for write 32 bits Ver IHL Type of service Total length Identification Flags Fragment offset TTL Protocol Header checksum Source address Destination address Source port Destination port Length Checksum Opcode String length Packet sequence number Memory address Byte 4 Byte 3 Byte 2 Byte 1 Byte N - 3 Byte N - 2 Byte N - 1 Byte N

Control packet for start = x50, halt = x54 CPU 32 bits Ver IHL Type of service Total length Identification Flags Fragment offset TTL Protocol Header checksum Source address Destination address Source port Destination port Length Checksum Opcode

Control packet for memory read = x60 32 bits Ver IHL Type of service Total length Identification Flags Fragment offset TTL Protocol Header checksum Source address Destination address Source port Destination port Length Checksum Opcode Memory address

Executable to IP packet payload conversion flow Issues to consider while writing a program for an embedded system that does not have an operating system (e.g. specifying a base address for the executable, etc) Cross compiler tools for creating an executable Program for converting an executable into an IP packet payload

Embedded Compilation Link script must be written w/ memory map in mind Currently the link information is done on the LD command line In general a separate link script is used

S/W Compilation Flow Uses LECCS Compiler System GCC Based Test PROMs used LEON compile scripts General compile system developed uses DOS .bat compile script Compile w/ GCC Assemble w/ GAS Link w/ LD Convert to binary w/ OBJCOPY Convert to IP w/ Forth program

An example C program int x = 1; int y = 2; int z; _start() { x = 5; *(int*) 0x40000000 = x + y; z = x - y; while(1); }

Compile script sparc-rtems-gcc test.c -S sparc-rtems-as test.s -o test.o sparc-rtems-ld test.o -Ttext 0x0 -Tdata 0x1000 -Tbss 0x2000 sparc-rtems-objcopy a.out -O binary a.bin \gforth0.6.2\gforth tobin.fs > \class\leon2\input_ip.dat

Conversion to IP s" a.bin" r/o open-file throw value fp fp file-size throw drop value fsize fsize allocate throw value buf buf fsize fp read-file throw fp close-file throw hex ( print 32 bit big-endian word on little-endian processor ) : .BE dup 04 rshift 0f and 0 1 ud.r dup 00 rshift 0f and 0 1 ud.r dup 0c rshift 0f and 0 1 ud.r dup 08 rshift 0f and 0 1 ud.r dup 14 rshift 0f and 0 1 ud.r dup 10 rshift 0f and 0 1 ud.r dup 1c rshift 0f and 0 1 ud.r 18 rshift 0f and 0 1 ud.r ; ( print 32 bit little-endian word on little-endian processor ) : .LE dup 1c rshift 0f and 0 1 ud.r dup 18 rshift 0f and 0 1 ud.r dup 04 rshift 0f and 0 1 ud.r 00 rshift 0f and 0 1 ud.r

Conversion to IP (2) : dump-file fsize 4 / 0 do ." IPpacket" cr 45000028 .LE cr 00000000 .LE cr 40110000 .LE cr 7f000001 .LE cr 807F0001 .LE cr 0000BEEF .LE cr 00140000 .LE cr 74090000 .LE cr i cells .LE cr buf i cells + @ .BE cr ." wait_100" cr loop 00000006 .LE cr ;

Conversion to IP (3) dump-file buf free throw bye

Interaction with LEON Basic steps for “User” to interface with LEON/SRAM: Wait for “READY” message Load Program to SRAM Send LEON “START” message Wait for “DATA” message Read results from SRAM

Sample program & Screen Shot Sample Program (pseudo code) x = 5 y = 6 y = x + y RAM[0x4000_0000] = y jmp “wait for next start”

Layered Protocol Wrappers Questions? Off-Chip SRAM/SDRAM 1 SRAM/SDRAM 1 Controller Leon Controller Control Packet Processor (cpp) (Modified MP3) Alert Generator (Modified MP3) LEON system Layered Protocol Wrappers

Interface to SDRAM Controller SDRAM must be accessed by User and Processor FPX SDRAM Controller Provides arbitrated access to SDRAM for up to three devices Support for burst transfers up to 256 words

Interface to SDRAM Controller Connecting to LEON controller Simple State Machine to Perform Handshaking Connecting to LEON Core Replace existing SDRAM Controller Build adapter to bridge FPX SDRAM Controller to LEON memory controller Other Key Issues Support for additional memory types Changing the LEON address space