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.

184 Chapter 14<br />

HAL API on a processor, Proc #1. When we <strong>de</strong>sign a new <strong>SoC</strong> #2 shown in<br />

Figure 14-5(b), if the new <strong>de</strong>sign uses the same HAL API, then, the same<br />

SW IP can be reused without changing the co<strong>de</strong>. In this case, the target<br />

processor on the new <strong>SoC</strong> <strong>de</strong>sign (Proc #2) may be different from the one<br />

(Proc #1) <strong>for</strong> which the SW IP was <strong>de</strong>veloped initially.<br />

4.2 HAL standard <strong>for</strong> <strong>SoC</strong> <strong>de</strong>sign<br />

As in the case of HW interface standard, HAL needs also standards to enable<br />

easy SW reuse across industries as well as across in-house <strong>de</strong>sign groups. In<br />

VSIA, a <strong>de</strong>velopment working group (DWG) <strong>for</strong> HdS (hardware <strong>de</strong>pen<strong>de</strong>nt<br />

software) works to establish a standard of HAL API since September 2001 [1].<br />

When we imagine a standard of HAL API, we may have a question: how<br />

can such a HAL standard support various and new hardware architectures<br />

Compared with conventional board <strong>de</strong>signs, one of characteristics in <strong>SoC</strong><br />

<strong>de</strong>sign is application-specific HW architecture <strong>de</strong>sign. To <strong>de</strong>sign an optimal<br />

HW architecture, the <strong>de</strong>signer can invent any new HW architectures that an<br />

existing, maybe, fixed HAL may not support. To support such new architectures,<br />

a fixed standard of HAL API will not be sufficient. Instead, the standard<br />

HAL API needs to be a generic HAL API that consists of common HAL API<br />

functions and a <strong>de</strong>sign gui<strong>de</strong>line to extend HAL API functions according to<br />

new HW architectures. It will be also possible to prepare a set of common<br />

HAL APIs suited to several application domains (e.g. a HAL API <strong>for</strong> multimedia<br />

applications) together with the <strong>de</strong>sign gui<strong>de</strong>line.<br />

The gui<strong>de</strong>line to <strong>de</strong>velop extensible HAL API functions needs to be a<br />

component-based construction of HAL, e.g. as in [5]. In this case, HAL<br />

consists of components, i.e. basic functional components. Components communicate<br />

via clear interface, e.g. C++ abstract class <strong>for</strong> the interface. To implement<br />

the standard of HAL API, their internal implementations may <strong>de</strong>pend<br />

on HW architectures.<br />

5. HAL ISSUES<br />

In this section, we present the following three issues related with HAL <strong>for</strong><br />

<strong>SoC</strong> <strong>de</strong>sign: HAL mo<strong>de</strong>lling, application-specific and automatic HAL <strong>de</strong>sign.<br />

5.1. HAL mo<strong>de</strong>lling<br />

When using a HAL API in SW reuse or in concurrent HW and SW <strong>de</strong>sign,<br />

the first problem that the <strong>de</strong>signer encounters is how to validate the upper<br />

layer SW with the HW architecture that may not be <strong>de</strong>signed yet. Figure<br />

14-6 shows a case where the <strong>de</strong>signer wants to reuse the upper layer SW<br />

including application SW, OS and a communication middleware, e.g. message<br />

passing interface library. At the first step of <strong>SoC</strong> <strong>de</strong>sign, the <strong>de</strong>signer needs

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

Saved successfully!

Ooh no, something went wrong!