Sistemas Espaciais de Computadores
Sistemas Espaciais de Computadores
• Introdução
• Definindo o Sistema
– Requisitos, Arquitetura, Elementos do Sistema
• Estimação dos Recursos
– Processamento de Tarefas, Tamanho do Software e Throughput
• Discussão sobre as Fases de Desenvolvimento
– Seleção do Hardware, Ambientes/Custos/Ferramentas e Metodologias de
Desenvolvimento
• Integração e Teste de Sistema de Computadores
Introdução - Sistemas Modernos
• Computadores de Bordo + suporte em solo
• Tipos de sistemas # Características:
– Sistemas embarcados # controle de tempo-real, alta confiabilidade
– Computador de Bordo # utilizados para: navegação, monitoração, sensoriamento,
processamento, armazenamento dos dados e comunicações.
– Computador(es) de apoio de solo # pós-processamento, compressão de dados, interfaces
com usuário, comandos para o satélite e monitoração remota (“saúde” do veículo, status e
manutenção)
Definindo o Sistema
Introdução - Divisão de um sistema
Sistema
•
•
•
Hardware
Software
Documentação
Software
•
•
•
Sistema Operacional
Aplicativos
Documentação
•
•
Hardware
•
•
•
•
Periféricos
CPU
Memória
Documentação
Desenvolvidos pelo usuário ou sob-encomenda
Tempo-real ou não
Introdução - Características Observáveis
FATORES QUE DEVEMOS AVALIAR NA FASE DE PROJETO:





NÍVEL DE SISTEMA
Cronograma
Custo
Risco
Funcionalidade
Características Físicas:
 Tamanho
 Pêso
 Potência








NÍVEL DE COMPUTADOR
Troughput
Memória
Isolamento à Radiação
Arquitetura do Conjunto de
Instruções
Disponibilidade de Emulador
Disponibilidade de Software
Capacidade de Programação
Ferramentas de
Desenvolvimento
a)
b)
c)
d)
e)
f)
g)
h)
CAPACIDADES DE:
Testabilidade
Confiabilidade
Usabilidade
Disponibilidade
Flexibilidade
Mantenabilidade
Intercambiabilidade
De substituição
Modelo Típico de Sistema
•
•
•
•
Armazenamento (RAM)
Troughput
Processamento (CLOCK):
Tipo de CPU
Definindo o Sistema Típico
• Identificar os modos operacionais “payload”, barramento, etc.
Para chegarmos ao computador típico:
•
•
•
•
•
•
Def. modos e estados operacionais do sistema
Dividir funcionalmente e reservar os requisitos computacionais exigidos para os ambientes:
espaço e segmento solo, subsistemas, e para o hardware e software.
Avaliar interfaces internas e externas (análise de fluso de dados)
Avaliar as arquiteturas candidatas (arquiteturas de procesamento, de dados e de hardware)
Selecionar a arquitetura “típica”
Desenvolver a configuração do sistema “típico’ a partir da arquitetura e requisitos de missão.
Procedimentos para obter o
“Sistema Típico”
Atendendo às solicitações.
•
•
•
•
•
•
“O que o sistema deve fazer?
“Por que” deve ser feito
(desafiar as necessidades)?
“Como” concluí-lo e
“Quais”altenativas?
“Que funções” reservar para as
várias partes do sistema?
‘Tais Funções são tecnicamente
possíveis?”
“Como Testar” (solicitações
satisfeitas?)
Divisão Funcional - Modularização
•
•
•
•
•
•
•
Identificar e agrupar funções de sistema:
Similaridade funcional
Complexidade do proc.
Tipos de processamento (dados x sinais)
Urgência dos Processos
Solicitações de tempo e “throughput”
Necessidade de armazenamento
Necessidade de intervenção humana e
segurança de vôo.
•
•
•
•
•
•
•
Remodularização:
Isto funciona? Faz exatamente
o que se quer que faça?
É simples e óbvio? (Cada
componente faz exatamente 1
coisa?)
É Eficiênte? Rápido?
Proporciona uma interface
clara?
É confiável?
É possível a manutenção?
É possível ser testada?
Onde implementar, Bordo ou Solo?
 Sistemas bordo/solo são autônomos?
 Se não: Apresentam módulos com “tempo crítico”?
Resposta: Considerando a TELEMETRIA...
• Wideband (> veloc.) => Processo “pode” ficar em SOLO
(Transmissão de dados sem tratamento a bordo)?
• Narowband (< velocidade) => Processo “DEVE”
manipular/comprimir dados a bordo para uma posterior transmissão
ao Solo
Onde Executar? RAM e Firmware
• Firmware => processos permanentes (atualização desnecessária).
• RAM => Processos que podem ser atualizados após lançamento.
(“críticos” mas “não vitais” à missão).
• Hardware=> Operações “seletivas”. ( interfaces x soft-drivers).
Selecionando a Arquitetura
Perguntas:
1) A arquitetura permite satisfazer as necessidades da missão?
2) A arquitetura é complexa?
3) Pode-se testar o sistema considerando tal arquitetura?
4) Pode-se “manter” o sistema com esta arquitetura?
Tipos de Arquiteturas
Características das Arquiteturas
Centralizada
a) Interface entre unidades de
processamento e um
computador central (nó
central)
b) não permite adicionar nós sem
afetar hardware e software do
sistema central
c) CPU Central => ponto de falha
=> > risco.
d) falha em uma unidade não
interfere nas outras.
Distribuida
Anel
a) Barramento comum p/ todos os a) Maior facilidade de adicionar
processadores
nós sem afetar a unidade
central
b) Uso de protocolos nas
comunicações, tipo
b) Falha em uma unidade
comando/resposta
INTERFERE nas demais (alto
risco).
c) Facilidade de expansão.
Análise Funcional e Fluxo de Dados
Elementos do Sistema de Computadores
ISA Instruction Set Arquiteture
Primary Processing
Application
Commonly Available ISA
or Supplier
General Purpose
1750
680X0
80C85
80C86
Vector Processing
Zoran
AT&T
ITT
Not common in
space
Signal Processing
Inmos (Transputer)
Texas Instruments
TRW
Classes of Instruction Set Arquiteture. Different ISAs do what
different Application demand. Each of these commonly available ISAs
would be considered off-the-shelf; however, the vector and signal
processing units will contain custom circuitry for specialized
processing
ISA - Critério de Escolha
• Facilidades (instruções) para acessar o hardware
• Vantagens e desvantagens de utilizar ISAs de “uso-geral”(*) ou
“customizadas”
– (*) desvantagem: velocidade. (Não foram projetadas para algoritimos
particulares => (>) software
– (*) vantagem: Economia e riscos de desenvolvimento de uma ISA
dedicada.
• Firmware
• Linguagens de programação.
Códigos e Dados - Onde ficarão?
RAM ou ROM?
1) Códigos e dados não são modificados. ROM
2) Códigos e dados críticos para: o satélite, segurança da “payload”,
tripulantes e missão => ROM (problemas de radiação espacial das
RAMs)
3) Códigos e Dados para o lançamento. (Satélites sobem com
coomputador de bordo desligados!).
4) Onde se exige flexibilidade PÓS-LANÇAMENTO => download p/
RAM
Linguagens
TRADEOFFS between Development in Assembler vs. Higher-Order
Language.
Attribute
Throughput
Efficiency
Maintenability
Testability
Assembly Language
Development
(+) More efficient.
Implementor has control
(-) Difficult to maintain.
Implementation is not
clear from code.
(-) Harder to test.
Requiriments not clearly
traceable to
implementation.
(+) More efficient.
Implementor has more
control.
Size
Development
Environment
Life-cycle
Costs
(-) Often very meager
(-) Not well suited to large
functions (> 30 K lines of
code).
Higher-Order Language
Development
(-) Less than or equal to
assembly. Compiler must
optimize.
(+) Significant maintenance
advantage. Language often
self-documenting. Provide
friendly interface.
(+) Structure and imposed
standards make HOL more
testable.
(-) Compilers tend to
generate 30-35% more code
than hand assembly. *(5065% with encapsulation
provided by Run-Time
loaders of some objectoriented languages)
(+) Many rich and robust
environments
(+) Generally lower because
of ease in maintenance.
Estimando os Recursos
• Processamento de Tarefas
• Tamanho e Throughput do Software
• Critérios de Seleção de Linguagens
Tarefas
• Sistema de Controle de Bordo
– Determinação e Controle de Atitude e Órbita (processamento
matemático intensivo, exigindo rigorosamente: precisão e rapidez)
• Sistema de gerenciamento
– Detecção de falhas, correções, agendamento de eventos de longa
duração, gerenciamento do sistema da “payload”. Envolve fluxo de
controle e lógica intensiva. Pouco processamento de ponto-flutuante.
• Software de dados da Missão
– Manipulação (e compactação) de dados. Requer processador de sinais
e grande capacidade de armazenamento.
• Sistema Operacional
Tamanho do Software e Throughput
• Recursos para as aplicações
• Recursos para as Funções do
Sistema Operacional.
Critérios de Seleção de Linguagens
CRITERION
Compatibility
COMMENTS and KEY Parameters
Extent of match between language and types of
computations and applications the processor will face -Real-time, interactive, highly accurate, etc (See Efficiency)
Maturity
Has the language been widely enough used to warrant
confidence that it has few remaining errors, is well
maintained., and will continue to be supported for the
relevant future? Applies to the compiler and the
development tools
Compiler Quality
Several compilers may be available for a candidate
language, all of which run on the development platform and
generate code for the target processor. How useful are the
diagnostics; what is the effective rate for compiling
statements; are all language features implemented; is the
compiler standardized? Is it certified? (See Efficiency and
Portability)
Data Structure
The suitability and complexity of the dada handling
approach: large common data bases; bit/byte-level
instructions; kind of structure supported; data typing
features; specialized input and output.
Efficiency
Language issue: uncomplicated syntax and semantics to
clearly express tasks.
Portability (*)
Language issue: If you want portability, select a standard
language and restrict its use to standard features (see
below)
Compiler issue: compilers for even standardized languages
may implement unique features which defeat portability
Environment
Is a completed and integrated set of automated
development tools available for the candidate language and
compiler?
Personnel Skill
Ease of use, especially in the domain of the problem
Other
Development context: does a candidate language support
structured methods, object-oriented design and
programming, information hiding, abstraction, etc
Níveis de Testes
Integração e Testes de Sistemas de Computadores
•
Testes (software + hardware + documentação) caminham com o projeto.
– Alternativas: uso de procedimentos Top-Down.
•
•
•
Testa-se o sistema com o computador se tornando um sub-sistema na configuração
do sistema.
Calibração “só acontece em órbita” depois de procedimentos de inspeção do
sistema.
Métodos de Teste de software (DOD-STD-2167).
– Planos de Teste: Definido no início do projeto e mantido.
– Procedimentos de Teste:
•
•
•
Resultados 100% em todas as fases.
Tolerâncias <=> Resultados esperados
“Pro-leigo” (Documentação: Qualquer pessoa “leiga” deve ser capaz de realizar o teste).
– Documentação:
•
•
Textos sem erros ou interpretação dupla.
Identificar e entender todas as anormalidades (anotar)
Outras considerações no Desenvolvimento de Software
Areas of
Concern
Managing
Software
Requirements
Software
Development,
Test, and
Support
Managing the
Software
Project
Key Factor
 Software considered at operational level.
 Define explicit, derived, assumed
requirements
 Complete traceability of software
requirements.
 Requirements instability to be managed, not
suppressed.
 Requirements testability is crucial to cost and
schedule
 Explicit decision as to specification-based,
prototype, or approach to development.
 Standards, reviews, and audits play key
roles.
 Integrated software tool environment,
including CASE tools, can increase
productivity.
 Test design and test resources must be
considered from the conceptual stage on.
 Quality management is key to reliability.
 Software must tolerate faults for manned
missions.
 Post-deployment support resource must be
part of initial software costing and language
selection.
 Management excellence is key of success.
 Principal conceptual-stage concerns: project
scope; resources required; allocated budget;
feasibility analyses; schedule realism.
 Project organization concerns: division and
assignment of tasks; delegation of authority;
reporting mechanisms; informal
communications.
 Project staffing is critical to successful
software development.
 Project direction and control requires regular
collection and display of progress data.
 Personnel issues: motivation, leadership,
and communication are worthwhile areas for
continuous improvement
Comments
 Traceability is
difficult to retrofit
 Configuration
Management
 Test design
reviews
 Tailor standards to
project.
 Considerer intervendor
compatibility in
selecting CASE
tools.
 Assess capabilities
with pre-award
surveys and site
visits.
 Note cost of test
support software
(e.g., simulations
and analysis tools)
 Previous lessons
learned are rarely
applied.
 Informal technical
interchange
meetings are
important; but
often poorly used.
 Contractors often
resist data
collection and
reporting because
of costs.
CONCLUSÕES:



Integração e dependência: Hardware x Software x Documentação
Hardware: Condições altamente Particulares (espaço), "CAPACIDADES"
(Solo) => Custo x Risco => Missão
Software: Real-time (on-board+Solo) / Tempo Crítico (Solo) => confiabilidade
(compiladores + ferramentas // precisão + segurança).
 Considerar Critérios de Seleção da Linguagem => Capacidade de
armazenamento (Código + Dados).
COMENTÁRIOS


Repararam que um sistema de computadores em aplicações espaciais é
semelhante a uma Rede de computadores num ambiente serviços /
cliente?
Estudos recentes consideram a utilização do modelo de rede com
protocolo TCP/IP para aplicações espaciais envolvendo "rede de
satélites".
BIBLIOGRAFIA:
Autores:
Steven Glaseman; The Aerospace Corporation
L. Jane Hansen, Microcosm, Inc.
Craig H. Pollock, TRW, Inc
Merlin Thimlar, The Aerospace Corporation
Ref.
Wertz, J. R.; Larson, Wiley J. ; Space Mission Analysis and Design, Dordrecht,
Kluwer, Netherlands, 1991, p. 541-577.
Download

presentation source