29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Hardware and <strong>Software</strong> Partitioning of Operating Systems 197<br />

For RTOS hardware IP, we start with an IP library of hardware components<br />

consisting of the <strong>SoC</strong>DMMU, <strong>SoC</strong>LC, System-on-a-Chip Deadlock Detection<br />

Unit (<strong>SoC</strong>DDU) [16] and Real-Time Unit (RTU) [20–24]. The <strong>SoC</strong>DMMU<br />

and <strong>SoC</strong>LC were already <strong>de</strong>scribed in the previous section; IP-generators <strong>for</strong><br />

the <strong>SoC</strong>DMMU and <strong>SoC</strong>LC can generate RTL Verilog co<strong>de</strong> <strong>for</strong> almost any<br />

configuration of the <strong>SoC</strong>DMMU and/or <strong>SoC</strong>LC <strong>de</strong>sired [26, 27]. The<br />

<strong>SoC</strong>DDU per<strong>for</strong>ms a novel parallel hardware <strong>de</strong>adlock <strong>de</strong>tection based on<br />

implementing <strong>de</strong>adlock searches on the resource allocation graph in hardware<br />

[16]. It provi<strong>de</strong>s a very fast and very low area way of checking <strong>de</strong>adlock at<br />

run-time with <strong>de</strong>dicated hardware. The <strong>SoC</strong>DDU reduces <strong>de</strong>adlock <strong>de</strong>tection<br />

time by 99% as compared to software.<br />

Figure 15-10 shows a hardware RTOS unit called RTU [20–24]. The RTU<br />

is a hardware operating system that moves the scheduling, inter-process<br />

communication (IPC) such as semaphores as well as time management control<br />

such as time ticks and <strong>de</strong>lays from the software OS-kernel to hardware. The<br />

RTU <strong>de</strong>creases the system overhead and can improve predictability and<br />

response time by an or<strong>de</strong>r of magnitu<strong>de</strong>. (This increased per<strong>for</strong>mance is due<br />

to the reduced CPU load when the RTOS functionality is placed into<br />

hardware.) The RTU also dramatically reduces the memory footprint of the<br />

OS to consist of only a driver that communicates with the RTU. Thus, less<br />

cache misses are seen when the RTU RTOS is used. The RTU also supports<br />

task and semaphore creation and <strong>de</strong>letion, even dynamically at run time.<br />

For RTOS software IP, we use the Atalanta RTOS, a shared-memory multiprocessor<br />

real-time operating system <strong>de</strong>veloped at the Georgia Institute of<br />

Technology [17]. This RTOS is specifically <strong>de</strong>signed <strong>for</strong> supporting multiple<br />

processors with large shared memory in which the RTOS is located and is<br />

similar to many other small RTOSes. All PEs (currently supported are either<br />

all MPC750 processors or all ARM9 processors) execute the same RTOS co<strong>de</strong><br />

and share kernel structures, data and states of all tasks. Each PE, however,<br />

runs its own task(s) <strong>de</strong>signated by the user. Almost all software modules are

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!