Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Supporting Tcl in Hardware Scott Thibault Green Mountain Computing Systems Embedded Systems Vision X-Acute Development Platform VB alternative. XML based language. TCL program code. Persistent storage. Targets Palm OS, Pocket PC, Linux … Used commercially. Tcl on Board! Platform Hardware bytecode/ instruction set. Bytecode processor. Core TCL commands in runtime library. TCP/IP/PPP stack in runtime library. Why TCL? High-level scripting language. No pointers. Automatic memory management. Straight forward network support. Powerful string processing. Easy to learn. Cross-platform support. Why Hardware? Limited performance. Limited memory (under 1MB). Implementation Issues Object representation (dual-port objects). Dynamic typing. List implementation. Memory management. loadScalar1 3 pushInt pushImm1 1 sub assignScalarInt1 -3 Systems Programming All-TCL Platform OS (trap handlers, etc.) Interrupt handlers. Device drivers. Buffers. Efficient arrays. Efficient records. 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} } 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. 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. Conclusions TCL beneficial to embedded systems programming. Demonstrated TCL in system code. Hardware implementation feasible. Small memory footprint.