Please, help us to better know about our user community by answering the following short survey: https://forms.gle/wpyrxWi18ox9Z5ae9
Technical operation of the message-based system

Table of Contents

Introduction

The operation was designed with having processors in mind, so it is easier to understand, even when speaking about scGridPoint objects.

Operating cycle

The operation is based on the classical processor-like operation, except synchronization. The scGridPoint object, as well as their scHThread objects work independently, but they cooperating. The processor-like operation means that there is an Instruction Pointer, and it points to the next instruction to execute. The instruction is fetched, decoded and executed.

Given that in modern processors, instruction execution takes much longer time that accessing instruction and data, the scGridPoint objects are designed to service several HW-threads (or scHThread objects). The scGridPoint objects represent raw processing capability, that can be "hired" by the HW threads for the time of an operation. Given that instruction fetching and execution is largely independent from each other, internally the scGridPoint has a portion to FETCH an instruction, and a portion that EXECutes the fetched instruction.

To FETCH an instruction, the scHThread sends its request (i.e sends a message requesting to deliver a memory content), and after that it gets blocked until the reply from the memory arrives. The reply from the memory arrives in a package and it comprises also the complete address of the core, including the sequence number of the requesting scHThread. The scGridPoint delivers the message to the requesting scGridPoint, and makes the scHThread runnable. In the meantime other threads may use the HW resource.

Following that the instruction arrived and decoded, the instruction is not blocked any more, and it attempts to "hire" the resources of the scGridPoint for the time of execution of a received instruction. If it succeeds, it starts the processing of the fetched instruction, and, if possible, it starts fetching the next instruction. In this way both instruction fetch and excution is utilized as much as the raw resource capacity enables it.

The classical processor assumes instant reply, i.e., after sending its FETCH request