User Profile

Sadie Cassi

Bio Statement

For The (control) Circulation Diagrams (e.g

For The (management) Circulate Diagrams (e.g

In 2012 the Raspberry Pi - a single-board credit card-sized laptop - was launched. It aims on promoting the acquisition of expertise in laptop science for a broad audience. The most recent model features a powerful quad-core processor. By combining a number of single-board computer systems, a low-cost distributed computation cluster might be constructed. The nodes are then interconnected via customary FastEthernet. However for small (management) messages, which are often sent in a distributed computation, the latency of Ethernet is inadequate because the diagrams in determine one point out. Figure 1: The performance of Ethernet is poor for small buffer sizes. The left diagram exhibits the latency (half RTT or single means) of a message for a given buffer dimension (aka. Due to the byte padding of Ethernet the latency does not differ very a lot for sizes of as much as 64 bytes. The right diagram displays the measured throughput (calculated from the latency and buffer size) wich exhibits an nearly excellent behaviour: 11.72 MByte/s (of theoretical max.

You might now think that if you utilize for instance an ODROID - or every other single-board computer with Gigabit Ethernet - the problem is resolved since the Raspberry Pi only uses an FastEthernet controller. 1. The GPIO pins cannot be switched very quick and interrupts triggered by the GPIO pins occure a long time after they physically occurred (when using the GPIO memory mapped registers instantly via C within the user area). 2. The serial interfaces (SPI, UART, I2C) are all too slow and not appropriate for the intended communication scheme: a multi-participant bus system (for instance SPI and I2C are all grasp-slave oriented). The GPIOs are to sluggish for creating a custom serial protocol. 3. It needs to be used as little exterior components as potential (requirement). 4. The usual (Raspbian) Linux will not be a realtime operating system. Due to this fact scheduling will soften any hard timing constraints which are needed for any sort of knowledge transmission protocol (which works asynchronously).

Subsequently means should be established to deal with the lacking time reliability. Therfore the thesis describes the design and implementation of a communication protocol - the excessive Parallel Bus (XPB) - which utilizes GPIO pins to create a synchronous and parallel 16-bit data bus. Due to the sluggish GPIO pins I implemented the XPB driver as a loadable kernel module (LKM) which creates a machine file underneath /dev/xpb for communication. So I realized to write down code for the Linux kernel. The next determine two exhibits the architecture of the XPB bus and the moreover developed library to interface the kernel module and send information over the bus. Figure 2: Structure of the XPB bus (left) and programming library (right). The XPB bus makes use of 25 GPIO pins to transmit data based on the XPB protocol. A central arbiter controls the bus access. The xpblib is a C consumer-space libray which utilizes the XPB bus and Ethernet (hybrid methodology) to switch knowledge. The library abstracts from physical connections to a single logical connection.

The final result is that XPB is in a position to overcome the performance of Ethernet for small quantities of knowledge - for information sizes up to round 256 bytes. But since the structure is a shared bus congestion arises if too many messages are send too quickly leading to a efficiency drop. This drop clearly is dependent upon the applying of XPB. However the goal was to guage whether or not it is feasible to establish a second communication method apart from Ethernet. And this purpose has been successfully reached with the introduced XPB protocol. The developed XPB protocol could also be helpful for connecting Raspberry Pi Zeros (lack of Ethernet) and microcontrollers normally. Whether or not it's worth it depents totally on the application of XPB. The thesis options additionally a chapter with a rough overview over the topic of distributed computation with is a bit of bit detached from the remainder. In the following you may download the full thesis document (I corrected some typos). Please respect the terms and circumstances under which I released this document.

thesis for masters