Intel ®Processor Architectural and Integrated Development Environment Exploration

S. R. N. Reddy*  Zeenat Shareef**
* Professor, Department of Computer Science and Engineering, Indira Gandhi Delhi Technical University for Women, Delhi, India.
** PhD Scholar, Department of Electronics and Communication Engineering, Indira Gandhi Delhi Technical University for Women, Delhi, India.

Abstract

The success of any product depends on a lot of factors, such as selection of right SoC (System on Chip), communication module, memory, size, and weight to name a few. With a lot of SoC manufactures coming up with plethora of development boards and IDEs (Integrated Development Environment), it is very important to select the right SoC for any product development in the field of embedded, mobile, or Internet of Things (IoT) applications. Thus, this paper presents a case study of Intel SoCs for IoT framework- Intel® Galileo and Intel® Edison. Further architectural and IDE exploration on Intel Edison is performed using variety of tools and techniques. Incorporation of the Intel software tools into the college curriculum is presented to demonstrate amalgamation of industry and academics.

Keywords :

Introduction

With the advent of Very-large-scale integration (VLSI) semiconductor technology, companies; such as Intel, Atmel, TI, Qualcomm are putting their best foot forward to bring powerful System on Chip (SoC) in the market as application development platforms. Atmel XMEGA A3BU development board, Snapdragon 800 (Qualcomm), OMAP 3530 by TI are some of the SoCs in the market with different architectural features to support a variety of embedded application development. Intel has launched several SoC for different sectors, such as embedded, mobile, and IoT application development. The power of Intel can be seen in its logos and the latest 'Intel Inside' tag on almost every laptop or desktop since 1968.

Embedded applications involve having a dedicated hardware with pre-defined software that performs a task. The hardware may consist of development boards along with sensors and communication modules. The device may or may not communicate with each other. These devices are low power devices and are generally small. With the mobile applications, came the concept of mobility. Devices became smaller in size and further very low power consuming. With the introduction of Internet of Things (IoT), devices can communicate with each other in the surroundings through the internet and the wireless network thus leading to creation of smart spaces. Nowadays, above mentioned companies are incorporating this powerful technology into their System on Chip (SoC) platforms. Intel has launched the Intel Galileo Gen1, Intel Galileo Gen 2 and the Intel Edison for IoT applications (Intel® Edison Module, Intel® Gen 2 Development Board, Intel Quark™SoCX1000). Figure 1 depicts the Intel Architectures addressed in this paper.

Figure 1. Intel Architectures Addressed in this Paper

After the SoC comes the IDEs for developing applications on the SoC platforms. IDEs help in easy development of an application for the target SoC. It contains the entire toolchain from libraries to debuggers to create and test application for the target platform. Many IDEs are available for the Intel IoT platforms all with unique features, which provide the developers the flexibility to develop applications in their favourite programming language and toolchain. Intel has launched support of the following IDEs for its Intel Galileo and Intel Edison target development board-Wyliodrin, Eclipse* CDT for IoT, Arduino and Intel XDK IoT Edition. In mid May 2015, Intel launched MCU-SDK to develop applications for the Pentium 486 microcontroller in the Intel Edison, which includes per forming basic functionalities and communication between Intel® Atom Host CPU and the microcontroller. Figure 2 summarizes the different IDEs for Intel Edison.

This paper presents a case study of Intel SoCs for IoT applications with focus on Intel Edison. A case study of different IDEs for the Intel architecture is provided demonstrating the relevance of each IDEs in embedded, mobile, and IoT segments. Using components of Intel System Studio, Quality of Service (QoS) parameters are evaluated for a host and remote target platform to demonstrate architectural performance features of the Intel SoCs. Lastly, mapping between the applications, processors, IDEs, and the course subjects is presented to demonstrate the amalgamation of these four segments for efficient and reliable application development and incorporation of the results into academic course development.

Figure 2. Different IDEs for Intel Edison

1. Intel SoCs for IoT Segment-A Case Study of Intel Edison

Internet of Things is a concept in which the devices communicate with each other in the surrounding via the internet and the wireless medium. The IoT ecosystem extends from the basic ingredients level to the cloud level. The basic ingredients are the processor, operating system, and chipsets, which are used to create a SoC. The SoC is a piece of hardware for design and development of devices. These SoCs when used appropriately with sensors and other hardware modules result into devices (Mueller-Albrecht, 2014; Note, 2015; Intel System Studio – Product Brief white paper; Introduction to Intel Architecture. The Basics; Perera et al., 2014). These devices are called smart because they have the power to perform an action and communicate with other devices for an application. When these devices communicate with each other through the network, the authors explore the networking layer of IoT which includes transmission and control of data over the network. The last part of the IoT ecosystem includes data storage and filtering. Large sets of data are collected and stored in servers. Data filtering is performed in those large servers and transmitted to relevant places (Zahir et al., 2013; Radovici and Culic, 2013; Paul, 2013). This makes the device smart and can be used for relevant applications like healthcare and agriculture.

Intel has launched Intel Galileo Gen1/ Gen2 and the Intel Edison for its IoT segment. Intel Galileo Gen2 is advancement over Gen1 with improvements, such as better General Purpose Input/Output (GPIO) speeds, more sensor interfacing and input power between 7 V-15 V. On the other hand, Intel Edison is a small SD Card sized computer with built-in Bluetooth and Wi-Fi modules. Intel Galileo and Intel Edison are not each other's competitors, but they have been launched by Intel for the IoT segment keeping different goals in mind. A brief overview of these three boards is presented in Table 1.

Table 1. SoCs for IoT Framework

2. Integrated Development Environments (IDEs)

The selection of IDE to program a target SoC depends on a lot of reasons and most importantly the application requirements and the work environment. There are both advantages and limitations of these IDEs and it is up to the developer to select an IDE according to its project requirements. A brief introduction and comparison of the IDEs is provided in this section.

2.1 Wyliodrin

Wyliodrin is an online SDK which supports a plethora of programming languages, such as visual programming, C, C++, Java, Javascript, Python, etc. Visual programming and stream programming are the USP of Wyliodrin, which includes drag and drop of pre-built components and modules on the screen to create the desired application. If a user does not know any programming language, but knows the flow of the program, then Wyliodrin is the best platform for the user to develop IoT applications. Another advantage of Wyliodrin is that it supports anytime, anywhere programming with just a computer, browser and internet connection for the developer and the development board to be connected to the network. The user can program the board wirelessly through the network. Thus, Wyliodrin offers flexibility to the developer as he can develop IoT applications for the development board from anywhere through the network and it is the best platform for the beginners who are not masters in any programming language, but know the flow of the program.

2.2 Intel XDK

The Intel XDK comes in two modules- The Intel XDK IoT Edition for embedded and IoT devices and the Intel XDK HTML5 for Mobile App Development. Programming in the Intel XDK IoT Edition is performed in JavaScript. It allows deploying, running, and debugging JavaScript applications on IoT devices. It also allows HTML5 app development for mobile phones. Intel XDK IoT Edition requires the development board to be connected to the network. Remote transfer of program can take place from Intel XDK IoT Edition to the development board through the network.

2.3 Arduino

This IDE is used for developing embedded C programs for Arduino development kits. Intel has incorporated the Arduino platform in its IoT development boards- Intel Galileo Gen 1/2 and Intel Edison. It is the best platform for the beginners to program and develop their embedded applications as there is a plethora of example codes spread over the internet and a lot of community support.

2.4 Eclipse Devkit

Eclipse C/C++ development environment for IoT lets the user create, debug, and test applications on IoT development boards. It consists of two libraries- the MRAA library which translates the GPIO pins to the pins of Intel IoT development boards and the UPM repository of sensors written in C++ and uses MRAA library. One of the important features of Eclipse CDT which is not found in any other IDE is its integration with the Intel System Studio 2015, which is a complete tool suite consisting for compilers, debuggers, analysers, and inspectors to create efficient and optimized applications. Intel System Studio consists of C++ Compilers, which generate optimized code for embedded applications.

2.5 MCU SDK

MCU SDK is a new feature for the Intel Edison as it is used to program the MCU which runs Viper OS, a real time operating system by Wind River Systems. The MCU is separate from the Intel Atom host processor. The MCU is based on the Pentium 486 architecture. It can independently control GPIO and PWMs, collect UART data, communicate with the host Intel Atom CPU, and wake the CPU when interrupt occurs. The programming language is C. There are a lot of limitations in this platform, one being that the Linux must be rebooted every time a new application downloads into the Edison and get removed from Intel Edison.

Performance evaluation of the application running in the SoC is important for efficient and reliable product development. Intel® System Studio is a tool suite, which provides the developers a platform to build their application with Intel® C++ Compilers, Debuggers, analyze and inspect the developed application with Intel VTune Amplifier for Systems and Intel® Inspector for Systems. Quality of Service (QoS) parameters, such as hotspots, thread analysis, pipeline errors, hardware event counts, etc., are evaluated for a given application. Such performance evaluation can detect any architectural bottlenecks in the system and optimize it as much as possible (Karna & Zou, 2010; White Paper, Intel, Developing Solutions for Internet of Things, 2014; Intel System Studio, 2015). Performance evaluation on other intel platforms have been carried out in (Barry, 2016; Tung et al., 2017; Che et al., 2015; Jahagirdar et al., 2012; Molka et al., 2015; Sherlekar,2012).

3. Implementation and Inferences

The implementation started with configuring the Intel Edison username, password, and connecting it to the Wi-Fi network (Figure 3). After successful connection to Wi-Fi, remote enabling of the Intel Edison Bluetooth module and connecting it with the Android Phone was performed followed by exploration of the SPP and FTP profiles (Figures 4 and 5). The detailed procedure of the implementation is present at www.mobileeducationkit.net

Figure 3. Connecting Intel Edison To Wi-Fi

Figure 4. Bluetooth Pairing with Android Phone and Intel Edison

Figure 5. (a) Exploring SPP Profile, (b) Exploring FTP Profile

To study the different IDEs of Intel Edison, an application was developed and tested on the Edison to know the actual working of these IDEs, their advantages, and limitations.

The IDEs considered for experimentation were Wyliodrin, Eclipse CDT for Intel Atom and MCU SDK, Arduino and Intel XDK (Figure 6). After programming Intel Edison through these IDEs, the following inferences were extracted as mentioned in Table 2. The detailed implementation procedure can be viewed at www.mobileeducationkit.net

Table 2. Different IDEs for Intel Edison

Figure 6. Programming Intel Edison with Different IDEs, (a) Eclipse, (b) Wyliodrin, (c) Intel XDK IoT Edition, (d) Arduino

After application development on a variety of platforms, we need to evaluate how that application is performing in that target hardware. This evaluation can be performed using the Intel System Studio components- Intel VTune Amplifier for Systems and Intel Inspector for Systems. In this experiment, the QoS parameters of the host system (Intel® Core™ i7) and target system (Intel Atom Tangier) were evaluated (Figure7).

Figure 7. QoS Analysis Platforms

As Intel System Studio can be integrated in the Eclipse IDE, an application was developed- in the Eclipse Kepler* IDEs for the host system and Eclipse-Devkit for target Intel Edison system. The detailed implementation procedure can be viewed at www.mobileeducationkit.net

3.1 HOST System

3.1.1 Experiment 1

A program of fibonacci series was written in two different ways to check the performance of each one of them in the CPU of Core i7 running Windows7. Fab1 program consists of all the functions written outside main and are called from the main function, whereas Fab2 consists of functions being written inside the main itself. This is an example of a program that does not require user input. The performance metric of each one of them is mentioned in Table 3.

Table 3. QoS Analysis on Host Platformle

As the programs consist of just few lines of code, not much variations are noticed. As the CPU is executing a lot of different tasks at the same time, it does not give the same value of all these parameters every time because the CPU resource utilization is random. Therefore, these values have been taken by executing and collecting a lot of sample values and the most repeating ones have been considered.

3.1.2 Experiment 2

Another application was developed in C++, which required the user input every time to proceed. This program consisted of writing data into file and taking it out of the file as per the demands of the user. The program was created on Eclipse CDT using minGW compiler and made to execute on the HP Pavilion dv6 Laptop having 2.2 GHz Intel Core i7-2670QM processor.

As the program requires user input at every stage, the program execution time is user dependent as it is totally upto the user till when he wants to execute the program. The performance parameters vary accordingly as resource allocation is random as many processes are active in the CPU at the same time. Table 4 enumerates performance evaluation details. Figure 8 depicts the pictorial representation of QoS parameters.

Table 4. Performance Evaluation Table

Figure 8. Experimental Setup

3.2 Target System

The same program was again implemented in the Eclipse CDT for IoT using the Intel C++ compiler and the GDB Debugger.

Figure 9. Pictorial Representation of the QOS Parameters is Available for Easy Viewing and Analysis. Extremely Detailed Analysis of the Architectural Parameters can be Found in the Intel Vtune Amplifier for Systems. The Figures here Represented only a Few of the Parameters such as (a) Elapsed Time, CPI Rate and CPU Details, (b) Thread, Process and Wait Analysis, (c) Memory Issues, (d) Bandwidth Analysis, (e) Hardware Events

Remote connection was created with the Intel Edison. The program was made to run on the Linux console of Intel Edison. The output is shown in Figure 10.

Figure 10. Program Output on Intel Edison Console

After successful execution of the program on the Edison console, the next step is to evaluate the application executing on Edison. Intel Edison does not contain the drivers of Intel VTune amplifier. Even the package installation was not there. Therefore, we must install the packages remotely from host PC running windows to target Intel Edison SoC.

As Intel Edison does not contain drivers of Intel VTune Amplifier for Systems, it can only implement certain minimal performance parameter of Intel VTune Amplifier for systems. Remote connection with Intel Edison is established with SSH and the target path of executable in the Edison is provided in the target textbox. After successful connection establishment, only supported analysis can be chosen. The data collection starts with execution of the program to collect data samples and preparing result file after stopping the program. The results of the analysis are shown in Figures 11 and 13.

Figure 11. Intel Edison Target Platform Details

Figure 12. Graphical Representation of the Hardware Event

Figure 13. Graphical Representation of Functions and Modules

In Figure 12, a pictorial representation of cycles of hardware events is presented on the Intel Edison target platform. The detailed pictorial representation of the functions is also presented in Figure 13.

4. Results

Mapping between Intel IoT SoCs, IDEs, subject courses, and Application Real applications developed on the System on Chip represent some of the very important concepts that can be applied in engineering courses to demonstrate the theoretical concepts that are taught in classes.

The subjects considered in this discussion are SoC, Operating Systems, Per vasive Computing, and Embedded Systems. In SoC, all the electronic and digital components are integrated on a single chip. This reduces the size and weight of the chip and increases reliability. Intel Edison is the best example of system on chip as it has all the needed components on a single platform including the Wi-Fi and Bluetooth modules. Over that it is just the size of the SD card yet very powerful module. Exploring the internal features of the module would count in the SoC. Over that the QoS parameters in the Intel System Studio gives a deep insight into the SoC architectural details and information about the target platform.

Pervasive Computing enables anytime and anywhere access to the objects in any form. Due to the technological advancements like internet, cloud computing, and IoT, objects can communicate with each other and are accessible from any person anywhere in the globe. As Wyliodrin, Intel XDK for IoT Edition, and Eclipse devkit connect to the Intel Edison through the network, these are best examples to demonstrate remote connection and programming of the target boards through the Wi-Fi network. Students can practically view real time deployment of applications on a target platform from anywhere and anytime through the network.

Embedded System is taught both in graduate and undergraduate classes in engineering courses. Application development on Arduino is the best method of developing application because there are lots of support in the Arduino community for the developers. Also, since Intel Edison has a 4 GB built-in flash memory, it does not require any SD card. Applications deployed on the Intel Edison using Arduino stays in the temp folder until a new program is deployed to replace it. Operating System is an important theoretical subject that is taught both to students of computer science and electronics and communication engineering. If practical touch is added to this theoretical subject then a lot of important concepts can be practically viewed by the students on their systems like the thread id, execution of pipelining errors, CPU time utilization, memory errors, etc. Figure 14 depicts the mapping of SoCs, applications, coursed and Toolchains.

Figure 14. Mapping of SoCs, Applications, Courses, and Toolchains

A list of experiments has been developed that could be incorporated into these courses is presented in Table 5. The details can be found at www.mobileeducationkit.net

 

Table 5. List of Experiments

Conclusion

Thus, this paper provides detailed description and analysis of internal architecture of Intel platforms, with emphasis to Intel Edison development board. Exploration of Intel Edison features has been performed which includes connection to external Wi-Fi, Bluetooth connection between two Intel Edison and file/folder sharing between Intel Edison and Android device. A comparative study of programming Intel Edison using different Integrated Development Environment has been performed in this paper. The QoS parameters of Intel Edison have been explored which included algorithmic analysis, general analysis, and lock and wait techniques for both host and remote systems. An effort has been made to inculcate the above-mentioned concepts into academical curriculum to bridge the gap between theory and practice. Subjects taught at graduate and undergraduate levels, such as System on Chip(SoC), Embedded Systems, Mobile Computing and Pervasive Computing have been taken to map the experiments into these subjects. A list of experiments has been presented which imbibes the concepts explored in this paper.

References

[1]. Barry, P. (2016, August). Design and development of a an ultra-low power Intel architecture MCU class SoCs. In Hot Chips 28 Symposium (HCS), 2016 IEEE (pp. 1-29). IEEE.
[2]. Che, Y., Xu, C., Fang, J., Wang, Y., & Wang, Z. (2015). Realistic per formance characterization of CFD applications on Intel many integrated core architecture. The Computer Journal,58(12), 3279-3294.
[3]. Intel System Studio 2015 User's Guide, Copyright 2014. Introduction to Intel Architecture-The Basics, White Paper. Retrieved from https://www.intel.com/content/ dam/www/public/us/en/documents/white-papers/iaintroduction- basics-paper.pdf
[4]. Intel System Studio 2015, User's Guide, Copyright 2014. Intel Corporations. Retrieved from https://www. xlsoft.com/jp/products/intel/system/2015/Windows/w-allrelease- install_u1.pdf
[5]. Intel® Edison Module: Hardware Guide. (2014, September). Retrieved from http://akizukidenshi.com/ download/ds/intel/edison-module_HG_331189-002.pdf
[6]. Intel Gen 2 Development Board, Datasheet: Retrieved from https://www.intel.com/content/dam/ support/us/en/documents/galileo/sb/galileo_data sheet_329681_003.pdf
[7]. Intel System Studio – Product Brief White Paper. Retrieved from https://software.intel.com/sites/default/ files/managed/a3/f7/Intel_System_Studio_2015_PB_FINA L.pdf
[8]. Intel® Quark™SoCX1000: Datasheet. (2015, August). Retrieved from https://www.intel.com/content/dam/ www/public/us/en/documents/datasheets/quark-x1000- datasheet.pdf
[9]. Jahagirdar, S., George, V., Sodhi, I., & Wells, R. (2012, August). Power management of the third generation Intel Core micro architecture formerly codenamed Ivy Bridge. In Hot Chips 24 Symposium (HCS), 2012 IEEE (pp. 1-49). IEEE.
[10]. Karna, A. K., & Zou, H. (2010). Recruitment Cross comparison on C compilers reliability impact. JoC, 1(1), 65-74.
[11]. Molka, D., Hackenberg, D., Schöne, R., & Nagel, W. E. (2015, September). Cache coherence protocol and memory per formance of the intel haswell-ep architecture. In Parallel Processing (ICPP), 2015 44th International Conference on (pp. 739-748). IEEE.
[12]. Note. (2015, October). Retrieved from https://jp.xlsoft.com/documents/intel/system/2015/Wind ows/ w-all-release-install_u4.pdf
[13]. Paul, F. (2013). Intel® System Studio JTAG Debugger. Retrieved from https://software.intel.com/en-us/articles/ intel-system-studio-2014-jtag-debugger-supports-moreprocessor- families
[14]. Perera, C., Liu, C. H., Jayawardena, S., & Chen, M. (2014). A survey on internet of things from industrial market perspective. IEEE Access, 2, 1660-1679.
[15]. Radovici, A., & Culic, I. (2013, September). Open cloud platform for programming embedded systems. In Networking in Education and Research, 2013 RoEduNet International Conference 12th Edition (pp. 1-5). IEEE.
[16]. Robert Mueller-Albrecht. (2014). Intel System Studio 2015: Accelerate Development for Embedded, Mobile, and the Internet of Things [Webinar]. Retrieved from https://software.intel.com/en-us/videos/acceleratedevelopment- for-embedded-mobile-and-the-internetof- things
[17]. Sherlekar, S. (2012, December). Tutorial: Intel many integrated core (MIC) architecture. In Proceedings of the 2012 IEEE 18th International Conference on Parallel and Distributed Systems (pp. 947-947). IEEE Computer Society.
[18]. Tung, D. M., Van Toan, N., & Lee, J. G. (2017, May). Exploring the current consumption of an Intel Edison module for IoT applications. In Instrumentation and Measurement Technology Conference (I2MTC), 2017 IEEE International (pp. 1-6). IEEE.
[19]. White Paper, Intel, Developing Solutions for Internet of Things. (2014). Retrieved from URL https://www. intel.com/content/dam/www/public/us/en/documents/w hite-papers/developing-solutions-for-iot.pdf
[20]. Zahir, R., Ewert, M., & Seshadri, H. (2013). The medfield smartphone: Intel architecture in a handheld form factor. IEEE Micro, 33(6), 38-46.