palestra omap

48
Beagleboard- OMAP 3530 Alexandre Augusto Giron- UNIOESTE João Angelo Martini- UEM Marcio Seiji Oyamada- UNIOESTE http://www.inf.unioeste.br/~marcio UNIOESTE Universidade Estadual do Oeste do Paraná Curso de Ciência da Computação Cascavel - Brasil

Upload: alexandre-augusto-giron

Post on 07-Jul-2015

1.131 views

Category:

Documents


1 download

DESCRIPTION

Segunda parte da apresentação do Minicurso de Introdução a Sistemas embarcados e Projeto de Plataformas - CBSEC 2012Overview do MPSoc OMAP 35 e amostras de experimentos práticos na plataforma BeagleBoard

TRANSCRIPT

Page 1: Palestra omap

Beagleboard- OMAP 3530

Alexandre Augusto Giron- UNIOESTE

João Angelo Martini- UEM

Marcio Seiji Oyamada- UNIOESTE

http://www.inf.unioeste.br/~marcio

UNIOESTE – Universidade Estadual do Oeste do Paraná

Curso de Ciência da Computação

Cascavel - Brasil

Page 2: Palestra omap

Tópicos

Beagleboard

– Características

OMAP 3530

– ARM Cortex A8

– DSP C64x+

Exemplos práticos

Page 3: Palestra omap

Beagleboard

Kit de desenvolvimento utilizando a plataforma

OMAP

– www.beagleboard.org

BeagleBoard C4: ARM+ DSP (US$ 125)

BeagleBoard XM: ARM +DSP (US$ 149)

BeagleBone: ARM (US$ 89)

Page 4: Palestra omap

BeagleBoard C4

Page 5: Palestra omap

Beagleboard C4

Page 6: Palestra omap

Beagleboard

Sistemas Operacionais suportados

– Angstrom

– Debian (sem atualização)

– Ubuntu (constantes atualizações)

– Android

Page 7: Palestra omap

Beagleboard XM

ARM 1Ghz

512 MB RAM

Portas USB

Porta Ethernet

Page 8: Palestra omap

OMAP 3530

Page 9: Palestra omap

OMAP 3530

Plataforma OMAP3

– Aplicações alvo:

• Audio

• Telecom

• Eletrônicos

• Industrial

• Médico,

• Segurança

• Avionicos e defesa

• Vídeo e imagem

Page 10: Palestra omap

OMAP 3530- Esquemático

Page 11: Palestra omap

Dispositivos utilizando o OMAP3xxx

Device TYPE MPSoC

Touch Book Netbook OMAP 3530

Pandora Portable Video

Game OMAP 3530

DevKit8000 Evaluation Kit OMAP 3530

BeagleBoard Evaluation Kit OMAP 3530

Motorola

Milestone Smartphone OMAP 3430

Nokia N9000 Smartphone OMAP 3430

Samsung i8910 Smartphone OMAP 3430

Galaxy S Smartphone OMAP 3630

Droid 2 Smartphone OMAP 3630

Milestone 2 Smartphone OMAP 3630

Page 12: Palestra omap

ARM Cortex A8

Pipeline de 3 estágios

– Busca(3 cycles)

– Decodificação (4 cycles)

– Execução (6 cycle)

Page 13: Palestra omap

ARM- Diferenças em relação ao RISC

Instruções com ciclos de execução diferentes

Pré-processamento de operandos

Conjunto de instruções Thumb 16-bit

Execução condicional

Instruções especializadas

Load/Store múltiplos

Page 14: Palestra omap

DSP

Arquitetura com recursos para extrair o máximo

desempenho em algoritmos de processamento de

sinais

Realizar as operações em paralelo

– ci * x(n -1)

Page 15: Palestra omap

C64x+

Processador de sinais digitais da TI- Texas

Instruments

VLIW – Very long instruction

– 8 instruções por ciclo

– Empacotamento de instruções para execução sequencial

ou paralela

– Suporte a tipos de dados de 8, 16 e 32 bits

– Suporte a saturação e normalização

Page 16: Palestra omap

C64x+

Page 17: Palestra omap

Experimentos práticos

Page 19: Palestra omap

BeagleBoard Networking

Através de um cabo USB-OTG

– ssh, interface usb0

Cabo “par-trançado” (BeagleBoard XM apenas)

Adaptador Wifi USB

Page 20: Palestra omap

Ubuntu – Instalando aplicações

Sudo apt-get update

Sudo apt-get install gcc

Exemplo hello_world.c

Exemplo MiBench -> jpeg decoder

Page 21: Palestra omap

Alterando a frequência no ARM

cpufreq-info

cpufreq-set -g performance

cpufreq-set -f 800MHz

cpufreq-set –f 300MHz

Page 22: Palestra omap

BeagleBoard GUI - Ubuntu

Gdm xubuntu-desktop

Page 23: Palestra omap

BeagleBoard GUI - Ubuntu

xfce

Page 24: Palestra omap

BeagleBoard GUI – Debian

Debian gdm

Page 25: Palestra omap

BeagleBoard – Desenvolvimento ARM+DSP

O programador deve implementar explicitamente o

código no ARM e no DSP

Baseada na criação de DSP Nodes

Requisitos:

– Compilador arm-linux-gnueabi-gcc

– DSP toolchain: C6x CGT compiler

– doffbuild tools

Comunicação efetuada através da troca de

mensagens entre os processadores

Page 26: Palestra omap

BeagleBoard – Ambientes de desenvolvimento

Ferramentas:

– Hard-style: vi + makefile (arm e dsp)

• Programador fica desamparado

• Depuração heterogênea comprometida

– Soft-Style: utilizar um ambiente de programação

• Ex: Code Composer Studio – CCS*

– Suporte à várias plataformas

– Análise de performance e comportamento

– Hardware Debugging

* http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5

Page 27: Palestra omap

Code Composer Studio

Page 28: Palestra omap

Code Composer Studio

Page 29: Palestra omap

BeagleBoard – Comunicação

Messaging:

– API para troca de mensagens síncronas

• DSP_Node_PutMessage, DSPNode_GetMessage

– Capacidade assíncrona: mecanismo de notificação

• DSPNode_RegisterNotify, DSPManager_WaitForEvents

Page 30: Palestra omap

BeagleBoard – Tipos de Comunicação

Page 31: Palestra omap

Estrutura de Componentes

DSP/Bridge Project: http://www.omappedia.org/wiki/DSPBridge_Project

Page 32: Palestra omap

Componentes

Da perspectiva ARM-Side

Gerenciamento de Recursos

– Instancia dinamicamente os DSP nodes

– Monitoramento dos recursos DSP

– Carregar dinamicamente código DSP conforme a

necessidade

– Políticas para gerenciar os recursos DSP

Page 33: Palestra omap

Componentes

Gerenciador de Plataforma

– Inicia/Finaliza execução do DSP

– Implementa streaming de dados

– Carrega estaticamente o bridgedriver (baseImage)

DSP link driver para comunicação baixo-nível

Page 34: Palestra omap

Componentes DSP

Da perspectiva do lado DSP (DSP/BIOS)

Servidor de Gerenciamento de Recursos

– DSP/BIOS se comunica com o lado ARM através do link

driver

– Permite a criação, execução e término dos DSP task nodes

• DSP Task Nodes: threads independentes de execução

no DSP, suportam I/O stream entre si e com o ARM

– Responde aos comandos do Gerenciador de Recursos

(lado ARM)

Page 35: Palestra omap

O modelo DSP-dummy

Disponível em:

– http://gitorious.org/vjaquez-beagleboard/dsp-samples

Basicamente, divide-se em três partes: o código

voltado ao processador ARM, o código voltado ao

DSP e o código para as chamadas ao DSP Bridge

Page 36: Palestra omap

Etapas da Execução (ARM)

Primeiro, é iniciado o controlador do DSP Bridge

Em seguida, reserva-se os recursos do lado ARM

para controle de um processador DSP

Page 37: Palestra omap

Etapas da Execução (ARM)

Agora, o nodo DSP pode ser alocado:

Page 38: Palestra omap

Etapas da Execução (ARM)

A função dsp_node_create é responsável por criar o

nó dsp alocado. Após criado, ele é executado

Executando:

• A partir do momento que o DSP node está em execução,

o processador ARM pode trocar mensagens ou realizar

streaming de buffers de dados com o nodo

Page 39: Palestra omap

Etapas da Execução (ARM)

No exemplo, um input e um output buffer.

• A referência para os buffers (arg1 e arg2) é passada ao

DSP: dsp_node_put_message

Com a posse dos buffers, o DSP aguarda a

mensagem para iniciar o processamento (cmd = 1)

Page 40: Palestra omap

Etapas da Execução (Perspectiva DSP)

O DSP espera a mensagem do ARM

– Com cmd = 0, DSP recebe as referências dos buffers

Page 41: Palestra omap

Etapas da Execução (Perspectiva DSP)

Então aguarda pela mensagem de início do

processamento (cmd = 1)

– Ao iniciar o processamento, nesse caso, o lado ARM fica

bloqueado esperando a resposta do DSP.

Page 42: Palestra omap

Etapas da Execução (ARM)

Assim que termina o processamento por parte do

DSP, o nodo pode ser finalizado e então liberado da

memória.

Liberando nodo:

Page 43: Palestra omap

Interações ARM-Bridge-DSP

Page 44: Palestra omap

Interações ARM-Bridge-DSP

Page 45: Palestra omap

Interações ARM-Bridge-DSP

Page 46: Palestra omap

Exemplos

Soma de vetores:

– Soma simples: Execução no DSP

– Execução em torno de 50 ms

Page 47: Palestra omap

Exemplos

Soma de vetores:

– Soma otimizada: através de instruções específicas DSP

– Execução em torno de 10 ms

Page 48: Palestra omap

Referências

V. M. J. LEAL, “The DSP/BIOS Bridge”, Igalia

Company. Slides disponíveis em:

– [1] http://people.igalia.com/vjaquez/talks/bridgedriver-

omap3-fosdem-2010.pdf

BeagleBoard Sites:

– [2] http://beagleboard.org/

– [3] http://elinux.org/BeagleBoardUbuntu

– [4] http://elinux.org/BeagleBoard/DSP_Howto

Manuais de Referência da Texas Instruments:

– OMAP 3530, ARM Cortex-A8, DSP C64x+