Ecosystem


The BondMachine ecosystem is formed by two parts. The first concerns all the activities related to the BondMachines (BMs) devices building with their internal behaviour and architecture, the second the BMs interconnecting, both among themselves and with the external world.

BondMachines building

A BondMachine is a set of computing units and non computing objects shared among them, all packed within a single hardware device.

Connecting Processors

The Connecting Processor (CP) is the computing core of the BondMachine. The name Connecting Processor describes the capability of the processor core to be configured in such a way to be connected to other processors and to Shared Objects. CPs are as simple as possible, specialized to do a single task and optimized for doing it. In fact, the CPs inside the BondMachine architecture can have different number of registers, number of input/output registers, different instruction sets (i.e. opcodes) with respect to the other ones.

Shared Objects

These are objects that are shared between the CPs (SO). Several kinds of objects can be implemented to increase the processing capability and the functionality of the BMs, improving the high-speed synchronization and communication between tasks running on separate CPs and all other non-computing capabilities. Several kinds of objects have been currently implemented: Channels, Shared Memories, Barriers, Queues, Stack and a Random Number Generator.

BondMachines interconnecting

BMs may be connected together to form clusters or can interact with the external world as standalone devices or as accelerators for standard servers or PCs.

BM to BM communication

BMs may communicate using a native protocol called EtherBond. It is a protocol over ethernet (ethertype 0x8888) whose purpose is to replicate the electronic behavior of BMs registers and to extend it over the device boundaries. In other words clusters of BMs may be created and their behavior is driven by the same rules of the BM devices. The main objective is to handle devices and clusters the same way. The EtherBond protocol has been ported to Linux. With this port BMs can comunicate with standard PC software and with BM emulated on PC.

Other communication protocols are under development. UdpBond is a protocol that allows BMs to communicate with the external world using the UDP protocol. bondirect is a protocol that allows BMs to communicate with other BMs using a direct physical connection.

Standalone BMs to the external world

BMs may be implemented in hardware using FPGA. Several board drivers, specific to different FPGA models, have been developed in order to use displays, LEDs, switches, etc.

A VGA driver has been developed to use a VGA monitor as a display for the BMs, capable of displaying text. Additionally, a keyboard driver has been developed to complement the VGA driver. The keyboard driver can read key presses and send the key codes to the BMs.

BMs as accelerators

BMs can also be use as computing accelerators for standard servers or PCs. This either by using SoCs (System on Chip) or by using a PCIe cards.