Overview

Responsive Multithreaded (RMT) Processor is System on a Chip (SoC) for distributed real-time processing, which contains the processing unit with supporting real-time processing, the real-time communication mechanism and various interfaces and controllers.

Figure 1 shows a block diagram of RMT Processor and Figure 2 shows a layout diagram.


Figure 1: The block diagram of RMT Processor.

Figure 2: The layout diagram of RMT Processor.

RMT Processor has various interfaces and controllers such as PCI64, USB2.0, IEEE 1394, Universal Asynchronous Receiver-Transmitter (UART), DMA Controller (DMAC), PWM Generator, External Bus Interface (External I/F), DDR SDRAM Interface. Responsive Link is the real-time communication mechanism.

RMT Processing Unit (RMT PU) connects with DDR SDRAM I/F through a 256bit bus. The memory access throughput at the time of instruction fetch is improved by connecting a main memory with a processing unit using the large bus. Other interfaces and controllers connect through a 32bit bus. It connects with 256bit bus through Gateway.

Figure 3 shows a block diagram of RMT PU.


Figure 3: The block diagram of RMT PU.

RMT PU is the 8-way fine-grained multithreaded architecture and supports real-time processing by arbitrating conflicts of functional units using a priority.

In a real-time system, each task is given a priority by scheduler with time constraints, the execution cycle, and so on. Each task executes sequentially from a task with a high priority to guarantee time constraints of each task. Additionally, multiple thread are executed parallel in multithreaded processor, so that conflicts of various functional units arise. RMT PU uses a priority to arbitrate conflicts of functional units and execute a high priority thread first.

In addition, a high computational capacity is required in soft real-time processing such as streaming. RMT PU has vector units and achieve this performance by using vector operations.

Figure 4 shows the example of real-time processing with a traditional processor.


Figure 4: The example of real-time processing with a traditional processor.

In the example, Task0 is given the highest priority and Task7 is given the lowest priority. A horizontal axis shows time. Release Time shows the time when the thread become able to execute. Deadline shows the time constraint. In Figure 4, Task1, 2 and 3 is able to be executed first. Therefore, a processor executes Task1 with the highest priority first. When a execution of Task1 has completed, context switching arises in order to be executed Task2 with next high priority. In the context switching, the context (register files, program counter, status registers and so on) of Task1 is stored into a memory and context of Task2 is loaded into a processing unit. Then Task2 is started executing. When a execution of Task2 is completed, context switching occurs again and a execution of Task3 is started. Here, if Task0 ( with a more high priority ) becomes able to be executed, a execution of Task3 is interrupted, context switching occurs and Task0 starts in first. When a execution of Task0 is completed, context switching occurs and a execution of Task3 is restarted.

Thus, whenever the thread to execute changes, context switching arises. And it becomes a significant overhead about 1000 cycles.

Figure 5 shows the example of real-time processing with RMT Processor.


Figure 5: The example of real-time processing with RMT Processor.

In Figure 5, Task1, 2 and 3 is executable first. In a multithreaded processor, they are executed parallel. But in RMT Processor, conflicts of various functional units are arbitrated by using a priority. If a conflict occurs between multiple threads, a operation of a thread which has the most highest priority is executed first. So Task1 is executed first in RMT Processor. When a execution of Task1, a execution of Task2, which has a next high priority, starts at once by multithreading. When Task0 ( which has the most highest priority ) become executable, Task0 is executed parallel by multithreading and is executed in first by arbitrating conflicts by using a priority. Thus, RMT Processor execute sequentially from a task with a high priority. And the overhead of context switching do not arise. Therefore a scheduler is able to schedule tasks in a shorter period or schedule more tasks.



back