Open main menu

DAVE Developer's Wiki β

Changes

Migrating from x86 architecture to Naon

2,359 bytes added, 14:50, 22 April 2013
m
no edit summary
{{InfoBoxTop}}{{AppliesToNaonFamily}}{{InfoBoxBottom}}==Introduction==Computational power achievable by system-on-chips built around Cortex-A8 processor make them an appealing solution for several applications that historically have been implemented on x86-based processorssystems.ARM-based architectures This article, written as a list of commonly asked questions, aims to help system integrators and developers who are used to work on x86-based machines to make a sort of comparison between these two different approachesin order to ease the migration process to Naon-based platforms. Following images show simplified block diagram of x86-based PC-like architecture and Naon architecture[[File:X86-pc-arch.png|300px|thumbnail|center|x86-based PC-like architecture]] [[File:Naon-bd.png|300px|thumbnail|center|Naon SOM architecture]]This image shows in detail internal architecture of DM8148 digital media processor.[[File:Dm8148-block-diagram.png|300px|thumbnail|center|Naon SOM architecture]]The first notable difference is about the integration level. By definition, system-on-chip such as DM8148, are designed to address embedded systems where footprint - in terms of PCB area and power budget - has to be minimized but, at same time, no significant compromise in performance is acceptable. Reading of [[Deploying Embedded Linux Systems]] is recommended to complement issues here described. 
==Where is the BIOS?==
{{WorkInProgress}}Technically speaking, there is no BIOS. Typical configurations of true embedded systems implement a bootloader instead. This software is executed by processor right after it comes out of reset. Like BIOS, bootlader is responsible of:# initializing the majority of hardware components - for example processor main PLLs and SDRAM controller# loading operating system kernel; once this step is completed, bootloader or any part of it is not involved anymore until next bootstrap.Bootlader usually implements a console - for example via UART port - that allows human operators to interact with the machine. This is extremely useful, for example, for maintenance operations and for development purposes. 
==What about GPU?==
{{WorkInProgress}}Modern PC graphics cards integrate a processor called GPU (Graphics processing unit) that accesses a dedicated SDRAM bank. From the functional standpoint, on DM8148 graphics processing is performed by some blocks that are integrated in the chip. They are:# High Definition Video Processing Subsystem (HDVPSS)# High Definition Vieo Image Coprocessor (HDVICP2)# SGX530 3D Graphics Engine# Imaging Subsystem (ISS)# Media controllers.These blocks are tightly coupled with main general-purpose CPU (ARM Cortex-A8) and with SDRAM through a 128-bit wide 500 MHz internal bus called System Interconnect.  All of these entities share the system SDRAM. SDRAM is managed by sophisticated DMM/TILER module that optimizes its usage and implements priority management.