Smart Personal Objects (SPOT) por Daniel Cukier. Objetivo Aumentar utilidade de objetos do...
Transcript of Smart Personal Objects (SPOT) por Daniel Cukier. Objetivo Aumentar utilidade de objetos do...
Smart Personal Objects (SPOT)por Daniel Cukier
Objetivo
Aumentar utilidade de objetos do dia-a-dia.
Objetos que podemos vestir, carregar ou que fazem parte do ambiente.
Executar uma atividade de maneira mais prática e agradável.
Função principal do objeto é melhorada, aumentando sua precisão.
Dependente de contexto, condições e interesses
Acesso a informações com mínimo esforço
Informações pessoais relevantes
Serviços Serviços
LocalizaçãoLocalizaçãoFinaFinançasnças
EntretenimEntretenimentoento
PessoaPessoall
EspoEsportesrtes
NotíciasNotícias
AlertAlertasas
MenMensagsagensens
AparênciAparênciaa
Smart ObjectsSmart Objects
RelógiosRelógios
AccessóriosAccessórios
PeriféricosPeriféricos
DisplaysDisplays
Objetos do dia-a-Objetos do dia-a-diadia
PessoaisPessoais
MóveisMóveis
Sensores Sensores /Atuadores/Atuadores
BrinquedosBrinquedos
RedeRede
Resumo
Como funciona?
DirectBand – provedor de serviços.
Fluxo de Dados – num só sentido
Informações enviadas via rádio freqüencia
Cada informação (como notícias, previsão do tempo) é enviada em uma freqüencia diferente
Dispositivo salva a informação na memória
Informação é mostrada na tela e atualizada em intervalos de tempo
DirectBand™
Cobertura de 100 maiores áreas metropolitanas nos EUA e Canadá
Através de parcerias, utiliza redes de rádio FM já existentes.
Informações são atualizadas continuamente
Componentes SPOT
Hardware e software exclusivo da Microsoft (MPU e conectividade wireless)
Nova plataforma de hardware – pequeno e com energia suficiente para um relógio
Nova pilha de software Microsoft: confiável, segura, baixo consumo de energia, pequeno, rápido, extensível, portável, atualizável, fácil de desenvolver para, ...
Interface de usuário low-distraction
Componentes SPOT (cont)
Sistema Operacional: versão reduzida do Windows CE
Hardware – solução com 7 chips numa placa de 34x30x2mm
Web site user-friendly
Conexão sem fio, protocolos e infraestrutura de serviços persistente (7x24)
Vantagens
Funcionalidades SPOT em objetos que as pessoas já usam no dia a dia (relógios, canetas, chaveiros, etc)
Usa sinais de FM já existentes, podendo aproveitar a rede de antenas já instalada em todo o mundo
Permite ao usuário escolher que tipo de informação ele quer visualizar
Baixo custo e fácil de usar
Desvantagens
Só nos EUA e canadá
Hardware
“Stan” FM radio - CMOS .18um analógico / digital - Receptor 100 khz - Baixa Potência (90 mW ligado e 30uW standby) - Pequeno (2.8mm x 2.8mm x 860um)
“Olie” MPU - .18 um, CMOS 6 camadas de metal - ARM7 TDMI-S, 32-bit @ 27.6 MHz - ARCTAN, MAC, decodificador Viterbi FEC - 512K ROM, 384K SRAM - Baixa Potência: 1.8 mW / MHz - Pequeno: 6.8 mm x 6.8 mm x 860 um
Hardware (cont)
Dois circuitos integrados, uma para o sistema e outro para o rádio. Solução com 7 chips numa placa de 34x30x2mm
Baixo consumo de energia
Chip scale packaging – tamanho reduzido
Processos compatíveis com RF
State-of-the-art VLSI methodology and libraries
Baixo custo para produção em larga escala
Módulos de Hardware
Suporte ao Processador
Timers – individual ou 2x16 bits
2 portas seriais síncronas ou assíncronas, com controle de fluxo de dados
USB 1.1
Flash ROM 1/2/4 MB
EPRON
Periféricos – LCD, bateria, radio, botões, vibrador, backlight, sensores, etc
Requisitos de Software
Plataforma Microsoft em tempo real que seja facilmente adaptável em memórias ROM ou Flash
Energia durável (3-5 dias) enquanto recebe dados wireless continuamente.
Confiável: relógio não pode travar!
Econômico em memória: pouca memória não deve comprometer o usuário, espaço adicional para futuras funcionalidades
Extensível e flexível: classes de componentes, não somente um produto único.
Mecanismos de atualização automática
Rápido desenvolvimento usando Visual Studio .NET
CLR (CLR (Common Language Runtime)Common Language Runtime)
Suporte à Aplicação(Bibliotecas, Shell, Crypto, Gráficos, …)
Apps/Apps/ChanaisChanais
HAL HAL (Hardware Abstract Layer) (Hardware Abstract Layer) e Driverse Drivers
Bootstrap Bootstrap (Inicializaç(Inicializaç
ão)ão)
Apps/Apps/ChanaisChanais
Apps/Apps/ChanaisChanais
Processador e PeriféricosProcessador e Periféricos
Arquitetura Cliente SPOT
Software (TinyHAL)
Desenvolvido especialmente para execução de serviços - boot veloz - Execução assíncrona de drivers
Simples: sem agendador ou heaps, mínimo de locks
Pequeno ~ 40k (incluíndo drivers principais)
Carregamento dinâmico de drivers
Managed Runtime (TinyCLR)
Derivado do padrão ECMA
Pequeno: runtime e bibliotecas ~ 132kb
Rápido: ~ .5 MIPS à 27Mhz (interpretada)
Programável e debugável usando C# .NET
Onde fica o SO?
TinyCLR provê funcionalidades típicas do kernel: - multithreading / multitasking - gerenciamento e memória e coleta de lixo - I/O (Usa TinyHAL para acessar periféricos, eficiência do código nativo)
TinyHAL não contém kernel: provê serviços para o processamento dos drivers
.NET em um chip
Economia de Energia
Trata CPU como um recurso que consome energia
Baixa utilização = código mais simples
Código desenvolvido para usar pouca energia e máxima utilização de rescursos
Cheap sleep – CPU dorme em 4.7uSeg
“Faça agora ou durma!”
Eventual redução da velocidade do clock
Acelerador de hardware para processamento de rádio
Fotos Relógios
Indexação em Difusão de Informações
● Técnicas tradicionais de indexação em discos como árvores B+ foram extendidadas para indexar dados de broadcast num canal sem fio
● Essas técnicas não são eficientes no balanceamento entre eficiência no acesso e consumo de energia
● Proposta: Índice Exponencial
Indexação em Difusão de Informações (cont)
● Para receber dados broadcast, o cliente precisa ficar o tempo todo escutando o canal até o dados chegar. Isso consome muita energia.
● Solução: air indexing – incluir num índice no canal de difusão informações da hora de chegada dos dados.
● Problema: árvores centralizadas – deve percorrer até o nó raiz, o que gera alta latência
Indexação em Difusão de Informações (cont)
● Índice Exponencial ou parametrizável● Otimiza latência x tuning time (tempo que o
dispositivo fica ligado recendo informações)● Facilita replicação compartilhando links em
diferentes árvores de busca e minimiza problemas de armazenamento de dados.
● Balancear entre eficiência no acesso e consumo de energia