Janita Mantooth
Bio Statement |
For The (control) Circulation Diagrams (e.g For The (management) Flow Diagrams (e.gIn 2012 the Raspberry Pi - a single-board credit card-sized pc - was launched. It goals on promoting the acquisition of skills in pc science for a broad viewers. The newest model features a strong quad-core processor. By combining a number of single-board computers, a low-price distributed computation cluster might be constructed. The nodes are then interconnected via customary FastEthernet. But for small (administration) messages, which are often sent in a distributed computation, the latency of Ethernet is insufficient because the diagrams in figure one indicate. Figure 1: The performance of Ethernet is poor for small buffer sizes. The left diagram reveals the latency (half RTT or single approach) of a message for a given buffer dimension (aka. As a result of byte padding of Ethernet the latency doesn't differ very much for sizes of up to sixty four bytes. The fitting diagram shows the measured throughput (calculated from the latency and buffer dimension) wich shows an nearly perfect behaviour: 11.Seventy two MByte/s (of theoretical max. You might now think that if you employ for instance an ODROID - or some other single-board computer with Gigabit Ethernet - the problem is resolved because the Raspberry Pi solely uses an FastEthernet controller. 1. The GPIO pins can't be switched very fast and interrupts triggered by the GPIO pins occure a long time after they bodily happened (when using the GPIO reminiscence mapped registers straight by way of C within the consumer house). 2. The serial interfaces (SPI, UART, I2C) are all too sluggish and never appropriate for the supposed communication scheme: a multi-participant bus system (for example SPI and I2C are all master-slave oriented). The GPIOs are to slow for creating a customized serial protocol. 3. It must be used as little external components as attainable (requirement). 4. The usual (Raspbian) Linux isn't a realtime working system. Therefore scheduling will soften any hard timing constraints that are needed for any kind of data transmission protocol (which works asynchronously). Therefore means should be established to deal with the missing time reliability. Therfore the thesis describes the design and implementation of a communication protocol - the extreme Parallel Bus (XPB) - which utilizes GPIO pins to create a synchronous and parallel 16-bit information bus. Due to the slow GPIO pins I carried out the XPB driver as a loadable kernel module (LKM) which creates a machine file below /dev/xpb for communication. So I learned to write code for the Linux kernel. The next figure two shows the structure of the XPB bus and the additionally developed library to interface the kernel module and send data over the bus. Figure 2: Architecture of the XPB bus (left) and programming library (right). The XPB bus makes use of 25 GPIO pins to transmit data in accordance with the XPB protocol. A central arbiter controls the bus access. The xpblib is a C person-house libray which makes use of the XPB bus and Ethernet (hybrid technique) to switch knowledge. The library abstracts from bodily connections to a single logical connection. The ultimate result's that XPB is in a position to overcome the efficiency of Ethernet for small quantities of knowledge - for knowledge sizes as much as around 256 bytes. However since the structure is a shared bus congestion arises if too many messages are ship too shortly resulting in a performance drop. This drop clearly depends upon the applying of XPB. However the goal was to guage whether or not it is possible to determine a second communication manner in addition to Ethernet. And this aim has been successfully reached with the offered XPB protocol. The developed XPB protocol is also helpful for connecting Raspberry Pi Zeros (lack of Ethernet) and microcontrollers normally. Whether it is value it depents completely on the appliance of XPB. The thesis options also a chapter with a tough overview over the subject of distributed computation with is slightly bit detached from the remaining. In the next you'll be able to download the full thesis doc (I corrected some typos). Please respect the terms and conditions beneath which I launched this doc. |