1 / 12

Supporting Tcl in Hardware

Supporting Tcl in Hardware. Scott Thibault Green Mountain Computing Systems. Embedded Systems Vision. VB alternative. XML based language. TCL program code. Persistent storage. Targets Palm OS, Pocket PC, Linux … Used commercially. X-Acute Development Platform.

Download Presentation

Supporting Tcl in Hardware

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Supporting Tcl in Hardware Scott Thibault Green Mountain Computing Systems

  2. Embedded Systems Vision

  3. VB alternative. XML based language. TCL program code. Persistent storage. Targets Palm OS, Pocket PC, Linux … Used commercially. X-Acute Development Platform

  4. Hardware bytecode/ instruction set. Bytecode processor. Core TCL commands in runtime library. TCP/IP/PPP stack in runtime library. Tcl on Board! Platform

  5. Why TCL? • High-level scripting language. • No pointers. • Automatic memory management. • Straight forward network support. • Powerful string processing. • Easy to learn. • Cross-platform support.

  6. Limited performance. Limited memory (under 1MB). Why Hardware?

  7. Implementation Issues • Object representation (dual-port objects). • Dynamic typing. • List implementation. • Memory management. loadScalar1 3 pushInt pushImm1 1 sub assignScalarInt1 -3

  8. OS (trap handlers, etc.) Interrupt handlers. Device drivers. • Buffers. • Efficient arrays. • Efficient records. Systems Programming All-TCL Platform

  9. Protocol Stack Example proc ppp_dispatch {} { global ppp_buffer, ppp_end, ppp_lcp_open, ppp_reject_id, ppp_receiving, ppp_reject set proto [sread_word_big $ppp_buffer 2] if {$proto == 49185} { ppp_handle_lcp } elseif {$proto == 32801} { ppp_handle_ipcp } elseif {$proto == 33} { set ip_packet [ip_process 4 [expr $ppp_end - 6] $ppp_buffer] } elseif {$ppp_lcp_open} { sshift ppp_buffer 4 6 [expr $ppp_end - 4] set ppp_end [expr $ppp_end + 6] swrite_word_big ppp_buffer 2 -16351 swrite ppp_buffer 4 8 swrite ppp_buffer 5 $ppp_reject_id incr ppp_reject swrite_word_big ppp_buffer 6 [expr $ppp_end - 4] swrite_word_big ppp_buffer 8 $proto ppp_transmit $ppp_end 1 } set ppp_end 0 set ppp_receiving 0 if {$proto == 33} {ppp_ip_send $ip_packet} }

  10. Prototype Implementation • FPGA implementation. • 32k logic gates. • 5 MHz (up to 36MHz). • 3.5 cycles/instruction. • 128k address space. • 16 bit bus. • 48 bit objects.

  11. Example Web Server • Embedded HTTP server. • Hypothetical climate-control device. • PPP over 9600 baud RS232 connection. • 5.25 seconds/request (4.71 seconds I/O). • ROM image 32k bytes.

  12. Conclusions • TCL beneficial to embedded systems programming. • Demonstrated TCL in system code. • Hardware implementation feasible. • Small memory footprint.

More Related