Login

ARM The Architecture For The Digital World  

ARM Community: Software Enablement - ARM Community

Jump to content

Design West (ESC) Day 1: Optimizing Your Software on ARM

It was a full first day at the ESC Summit of Design West. I spent most of the time doing what I love to do best: talking with ARM Partners. Most of the conversations focused on how engineers can achieve better software on their ARM processor-based SoCs.

Andy Frame had a few meetings in the morning so he passed the baton (microphone) to me so I can share some of the insights with the ARMFlix followers. I’m looking forward to Day 2 and speaking with more of the ARM Partners at ESC (check out our handy map). Don’t miss the ARM Connected Community Theatre at ...

Using ARM NEON to accelerate Scalable Vector Graphics in webkit by up to 4x

Introduction
In the information era with its increased use of mobile devices to communicate and access information, web browsers constitute the central component to navigate through the vast amount of information as they are able to fetch and visualize content spread across the world-wide data network known as the Internet. Over the last decade, visualization capabilities of web browsers have been greatly enhanced by the increase in processing power of general purpose CPUs and graphics accelerators. Most mobile platforms include general-purpose SIMD engine, such as ARM NEON which can be used to efficiently process multimedia formats and help enhance user experience – up to a 4x improvement as discussed in this article.

Background
The web browser group at the ...

Setting Up Android Mobile Phone to Use ARM Streamline for Profiling

This is an article describing the steps how to set up your Android Phone to run ARM Streamline Performance Analyzer.

ARM Streamline Performance Analyzer is a system-wide visualizer and profiler for targets running ARM Linux or Android native applications and libraries. Combining an ARM Linux kernel module, target daemon, and a graphical user interface, it transforms system trace and sampling data into reports that present the data in both visual and statistical forms.

Streamline supports Cortex™-A8, Cortex-A9, ...

x264 on ARM: Bringing a wider application of video conferencing (Part 1)

Video is increasingly becoming an important and essential part of consumer electronics. Video centric features like augmented reality and video conferencing provide enhanced visual user interaction. Such features are now expected across a wide variety of application segments. In the embedded world, intensive video compression is typically done using standard DSP’s or specialized hardware accelerators, as they can provide both the specialized functionality and the high level of performance required. However, now ARM processors with NEON™ technology can be as capable of compressing video as some dedicated hardware, and do so with greater power efficiency.

H.264/MPEG-4 AVC (Advanced Video Coding) is currently one of the most commonly used formats for the recording, compression, and distribution of video content. The H.264 video format has a very broad application range that covers all forms of digital compressed video from low bit-rate Internet streaming applications to HDTV broadcast. With the use of H.264, bit rate savings of 50% or more ar...

ARM Fundamentals: Introduction to understanding ARM processors

Finding one's way through references to ARM processors is not always obvious.
This article is the first of a series on ARM fundamentals that will introduce various topics to help you get more familiar with the ARM architecture. It aims at helping you to better understand ARM processors, starting with explaining how they are named, and then showing how knowing your processor matters by introducing a few of their recent features.

If you are curious about what is in your pretty electronic device or are a developer willing to understand how to start getting the best out of your processor, you may find some useful information here. The second part of the article may be technically a bit more challenging than the first, but don't worry! The few code samples are only concrete examples used to illustrate the explanations. The specific details are not necessary to understand the global picture.

The first step is to understand how ARM processors are referenced: it certainly sounds nice, but what is this "dual Cortex-A9, based on ARMv7" in your super-phone?


Processor fami...

Memory access ordering part 3 - memory access ordering in the ARM Architecture

In my previous posts, I have introduced the concept of memory access ordering and discussed barriers and their implementation in the Linux kernel. I chose to do it in this order because I wanted to start by communicating the underlying concepts before I went into detail about what the ARM architecture does about memory ordering. This post goes into the juicy bits of what this actually means and how this is handled in the ARM architecture.

Two separate concepts are relevant to memory access ordering in the ARM architecture — memory types and shareability domains. These progressively made their explicit entry into the ARM architecture in versions 6 and 7, implemented by the ARM11 and Cortex family of processors respectively.

Enter the abstract

When describing many of the concepts mentioned in thi...

定位,合作,共享 - 中科创达(Thundersoft)的Android红海战略

简介:ThundersoftAndroid核心技术和整体解决方案提供商, 通过提供完整的Android方案和服务,帮助OEM客户快速推出高品质产品。Thundersoft公司在Android 系统底层技术、中间件和应用开发、集成和服务方面经验丰富,在智能手机, 平板电脑等移动互联网终端产业链中具有独特优势Thundersoft...

Debug & performance analysis of Linaro images with ARM Development Studio-5

ARM Development Studio 5 (DS-5™) provides a user friendly interface for debugging Linux applications running on ARM platforms. Also built into DS-5 is ARM Streamline, a powerful profiling tool that allows us to measure the performance of Linux applications running on ARM Linux.

The PandaBoard is a compact mobile platform built around the Texas Instruments OMAP 4430 processor. With a dual-core Cortex-A9 processor at its heart, it is ideal for running ARM-Linux, and has good connectivity.

In this article we will go through the steps required to setup Linux on the PandaBoard using files supplied from ...

谷歌V8部署到ARM上:性能得到5倍提升

Attached Image
]现代网页主要构建于三大技术HTMLCSS和JavaScript。JavaScript推动了交互式网页的发展JavaScript执行速度慢也就意味着网页打开的速度慢。所以现在,人们做了大量的工作,努力改善JavaScript的性能,让我们能够拥有与台式机相同的功能,无论身处何处,都能轻松体验到强大的网页应用

GmailGoogle MapsGoogle Docs等网络应用程序均广泛使用JavaScript,借助快速高效的JavaScript引擎,各类系统的用户体验得到了极大改善。正是在此驱使下,2008...

Porting Linux made easy with DS-5

Here at ARM, a colleague recently wanted to port Linux to a prototype of a new high-performance Cortex-A9 based platform. To develop and debug this port, he needed to be able to set breakpoints, view registers, view memory, single-step at source level, and so on, in fact all the normal facilities provided by a debugger, but he wanted to do these both before the MMU is enabled (with a physical memory map), and after the MMU is enabled (with a virtual memory map).

The DS-5 Debugger has a slick Debug Configuration dialog in Eclipse that makes it easy to configure a debugging session to a target. Predefined debug configuration types include “Bare Metal Debug”, “Linux Application Debug”, and “Linux Kernel and/or Device Driver Debug”. The latter is the topic of this blog. This debug configuration type is primarily designed for post-MMU debug to provide full kernel awareness, but also has some extra features that allow it to be used for pre-MMU debug too. This makes it possible to debug the Linux kernel, all the way from its entry point, t...

Google's V8 on ARM: Five Times Better

Attached Image
The modern web is built primarily from three technologies: HTML, CSS and JavaScript. It is JavaScript that drives the interactive web; slow JavaScript means slow web pages. So today, a huge amount of effort is being put into improving the performance of JavaScript, giving us access to powerful web applications, with features from your desktop, but available wherever you are.


Web applications like Gmail, Google Maps and Google Docs use JavaScript extensively, and the user experience is greatly improved on systems with fast, efficient JavaScript engines. In 2008, this motivated Google to create the V8 JavaScript engine project.


V8 is now, on modern benchmarks, the fastest JavaScript engine available. Rather than interpreting JavaScript as the old engines used to do, V8 uses a Just-In-Time compiler to produce and execute native instructions tailored to the processor on which it is running. The generated instructions are cached, avoiding the overhead of repeated code generation, and deleted when no longer needed.


V8 is now the core technology used in a number of important applications. It is the JavaScript engine used in Google's super-f...

Memory access ordering - an introduction

I recently gave a presentation at the Embedded Linux Conference Europe 2010 called Software implications of high-performance memory systems. This title was my sneaky (and fairly successful) way to get people to attend a presentation really about memory access (re)ordering and barriers. I would now like to follow that up with a few posts on the topic. In this post, I will be introducing a few concepts and explain the reasons behind them. In future posts, I will follow up with some practical examples.

The Sequential Execution Model

In the Good Old Days, computer programs behaved in practice pretty much the way you might instinctively expect them to from looking at the source code: Things happened in the way specified in the program.Things happened in the order specified in the program.Things happened the number of times specified in the program (no more, no less).Things happened one at a time.


In modern computer architecture, this nostalgic fantasy is sometimes referred to as the Sequential Execution Model. In order for existing programs and programming models to remain functional, even the most extreme modern processors will attempt to preserve the illusion of Sequential Execution from within the executing program. However, underneath your feet...

ARM系统预引导固件的新机遇- UEFI

ARM处理器已经在智能手机市场占主导地位,并越来越成为整个嵌入式领域的主流。最近,ARM处理器也进军服务器领域,追求计算连续性。

然而,历史上,ARM系统没有一个预引导固件的标准。这使得每个设计都有自己独特的与所引导的操作系统紧密结合的模式。这种传统的方法意味着固件开发者必须保持完全不同的代码库,即使系统可能使用的外围设备(网络,SATA接口,USB控制器等)和整个设计功能集是相同的。传统的ARM设计依赖诸如UBootRedboot,或专有软件启动软件包。

如何有效地开发生产这些产品来满足快捷上市需求已成为一个挑战。很有必要用某种形式的融合固件基础设施来实现代码重用的最大化,使这些产品可在有限的工程资源条件下实现更快推上市场,并同时添...

UEFI – A New Opportunity for Preboot Firmware on ARM-based Systems

ARM processors have been predominant in the smartphone market and are becoming increasingly mainstream in the overall embedded space. More recently, ARM processors are targeting servers as well, pursuing the computing continuum with solutions.

However, historically ARM systems did not have a preboot firmware standard. This led each design have its own distinct firmware model that is tightly coupled to the operating system being booted. This traditional approach means the firmware developers would need to maintain completely different codebases even though the systems may use many of the same types of peripheral devices (Network, SATA, USB controllers, etc.) and feature sets across the designs. Generations of ARM cores relied on boot packages such as UBoot, Redboot, or proprietary software.

How to efficiently develop and ship these products and meet time to market demands becomes a challenge. Some form of converged firmware infrastructure is necessary to maximize proper code re...

Going Maverick - Ubuntu 10.10 for ARM

Wow it's that time again; our 4th release of Ubuntu on ARM is upon us. In the past we have provided a Freescale iMX51 image, a Marvell Dove image and a TI OMAP 3 image for Beagle Boards. This cycle we will be releasing images for Marvell dove and Texas Instruments (TI) OMAP series of processors both OMAP 3 and OMAP 4. Until now we have always provided a "live image” just like the X86 CD's,that is you could test Ubuntu and then choose to install it to your storage media. Well for the OMAP series of development boards this did not make sense so we have introduced a pre-installed image format that we are using...

Cortex-A15 to A5: Software compatibility from Superphone to Feature phone

It was always about the code (and where it would be used!)

When I was a software developer I would often find that the project team I was in would try to guess how many devices the code would eventually run on. So at the launch of the Cortex-A15 last week one of the main points that hit home for me was just how wide the spectrum of power and performance points the Cortex-A family of processors could cover - from feature phone to superphone, tablet to DTV, home server to web server etc. This means that a developer could now find their software running across a huge range of devices in the future.

So is it the same software?

Absolutely. Cortex-A15 is based on the same ARMv7A architecture that the other Cortex-A processors use, therefore allowing the exact same application code to run on all of them, from a ...

Condition Codes 1: Condition Flags and Codes

Every practical general-purpose computing architecture has a mechanism of conditionally executing some code. Such mechanisms are used to implement the if construct in C, for example, in addition to several other cases that are less obvious.

ARM, like many other architectures, implements conditional execution using a set of flags which store state information about a previous operation. I intend, in this post, to shed some light on the operation of these flags. Of course, the Architecture Reference Manual is the definitive source of information, so if you need to know about a specific corner-case that I do not cover here, that is where you need to look.

A Realistic Example

Consider a simple fragment of C code:

for (i = 10; i != 0; i--) { do_something(); }

A compiler might implement that structure as follows:

mov r4, #10 loop_label: bl do_something sub r4, r4, #1 cmp r4, #0 bne loop_label

The last two instructions are of particular interest. The cmp (compare) instruction compares r4 with 0, and the bne instruction is simply a b (branch) instruction that executes if the result of the cmp instruction was "not equal". The code works because cmp sets some global f...

Support for VP8 and WebM on ARM

It continues to be an exciting time for the development of web technologies on the ARM architecture; allowing the Internet to reach the maximum number of devices. Today sees an advancement in video for the web with the WebM project that has been announced at Google I/O 2010 (Google’s annual developer’s conference). A key part of this announcement was the contribution of the VP8 video codec, free of royalties to Google.

So why is this good for ARM and our Partners? Well ultimately the delivery of the full web drives the development of great devices, and video in particular makes up an ever increasing proportion of data being consumed: in other words consumers want video, and an efficiently designed, open video codec helps.

There is already a huge amount of video being delivered on the Internet: Cisco’s Visual Networking ...

Hello World! SW Development, Optimization and Partnership on ARM

ARM is hiring smile.gif OK, so that got some people’s attention and confused others – actually we are hiring, and in particular software developers. What can often come as a surprise to people is that as well as having a team of people that go plan and work alongside some our different software partners, ARM has a software engineering group that work on key bits of software, particularly on Cortex-A8 and Cortex-A9 projects. In fact it's very likely that some of the code running your mobile phone was developed by some of the ARM team.

The team cover a wide range of software projects that include:Web and web runtime optimization, for example JavaScript JIT optimization work on projects such as Tamarin, Webkit and Squirrelfish NitroExtreme), and OpenJDK optimization work.Operating System development – including Android, Linux kernel hacking and a ...
  • (10 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »
All company and product names appearing in the ARM Blogs are trademarks and/or registered trademarks of ARM Limited per ARM’s official trademark list. All other product or service names mentioned herein are the trademarks of their respective owners.