Practical Linux Forum (Mi, 03.05.2006)
Linux/M32R: An Embedded Linux for the M32R Chip-Multiprocessor
von Hirokazu Takata (Renesas Technology Corp.)
Mittwoch, 03.05.2006, Saal 11B, 16:00-17:00 Uhr
With progressing of semiconductor fabrication process technology, several microprocessor cores with internal memories and other hardware logics can be implemented into one chip. Such an MPSoC (Multi-Processor System-on-a-Chip), in research phase some years ago, are gradually employed by the most-advanced embedded products in these days and will come into use practically in a few years.
Linux system is now well known as a only operating system which is adopted in a variety type of computer systems ranging from tiny board computers to high-performance computer systems like PC servers/workstations and mainframe computers. This fact shows the Linux kernel has wide scalability and good flexibility.
Using a Linux system in MPSoC provides several advantages in developing application software: Performance can be enhanced scalably in roughly proportion to the number of processors in an SMP(symmetrical multiprocessor) system. Additionally application programs can be easily ported from a host environment to a target architecture platforms; just a recompilation is required. We can also utilize cross-development methods if possible.
The Linux/M32R is a Linux system for Renesas M32R processor. The M32R processor is a 32-bit RISC microprocessor designed for embedded applications, which is suitable for MPSoC's because it is a very compact synthesizable microprocessor.
The Linux/M32R features both uniprocessor and SMP (symmetrical multiprocessor) systems, works with and without MMU M32R processor targets and is based on the Debian GNU/Linux system; more than 2000 deb packages are available by apt-getting from the Debian/M32R site (http://debian.linux-m32r.org/).
In this paper, we will describe the Linux/M32R's SMP support including details of the SMP kernel and its evaluation. We will also describe remote debugging methods for multiprocessor kernel by using GNU debuggers through a JTAG port connection.
Using some multiprocessor benchmarks, we evaluated the Linux/M32R system on an m32r dual core chip-multiprocessor system. It achieves good scalability for multi-threaded applications with a scalable factor of approximately 1.9 compared with a single thread case.
Moreover, in order to alleviate a problem that developing kernels and drivers is highly difficult in SMP systems. we have developed a GNU debugger (GDB) with a remote target "m32rsdi" for the Linux/M32R kernel. It makes use of the m32r JTAG debugging function called m32r SDI (scalable debug interface). This debugger communicates via serial or Ethernet port interface with a program "sdiserver". By utilizing m32r-linux-gdb and sdiserver, we can debug the m32r kernel including its drivers directly. In addition, since the sdiserver also supports multiprocessor, we can connect multiple gdb with sdiserver for debugging SMP systems.
Über den Autor Hirokazu Takata:
Hirokazu Takata is a member of the Linux/M32R project. He is a microprocessor engineer of the M32R processor development team, and also interested in the M32R software platform environments (the Linux/M32R kernel, middleware and GNU development tools, and so on).
Recently, he acts as Linux kernel maintainer of the m32r architecture, and engages in developing Debian/GNU Linux system for the m32r on http://www.linux-m32r.org/ and http://unstable.buildd.net/index-m32r.html.
--
Hirokazu Takata is also a project manager of the Exploratory Software Project (in fiscal year 2005-2006) of the Information-Technology Promotion Agency, Japan. He now leads and promotes some extraordinary software development projects in order to find undiscoverd outstanding individuals.
