Estimação do WCET usando Análise Estática
|
|
- Otávio Philippi
- 5 Há anos
- Visualizações:
Transcrição
1 Estimação do WCET usando Análise Estática Rômulo Silva de Oliveira ebook Kindle, Outubro/2018 1
2 Sumário Introdução Importância do Tipo de Hardware Análise Estática do WCET Análise do Fluxo de Controle Análise do Comportamento do Processador Análise da Memória Cache Análise do Pipeline Cálculo do Limite Superior para o WCET A Ferramenta ait Considerações Finais 2
3 Introdução 1/10 Sistemas de tempo real são classificados de acordo com a criticalidade dos requisitos temporais Sistemas críticos ou hard real-time Sistemas não críticos ou soft real-time Para sistemas críticos é necessário oferecer garantias quanto ao atendimento dos prazos É necessário conhecer o tempo de execução no pior caso de cada tarefa (WCET Worst Case Execution Time) Mesmo para sistemas não críticos é uma informação relevante 3
4 Introdução 2/10 Existe uma demanda crescente por capacidade de processamento Também nos sistemas de tempo real Maior capacidade de processamento requer o uso de arquiteturas de computador modernas e complexas Arquiteturas modernas são projetadas visando a redução do tempo médio de execução (Average-Case Execution Time ACET) Arquiteturas modernas: Geram tempos de computação variáveis Podem apresentar um comportamento patológico no pior caso Pior caso tem probabilidade muito pequena, porém maior que zero 4
5 Introdução 3/10 Distribuição dos tempos de execução de uma tarefa Probabilidades considerando todos os cenários e entradas possíveis P(c) Frequências observadas durante um certo número de testes F(c) Probabilidades reais HWM observado nos testes WCET verdadeiro não observado Frequências nos testes Tempo de execução 5
6 Introdução 4/10 O tempo de execução no pior caso supõe os piores comportamentos para o software e para o hardware O pior fluxo de controle para cada tarefa Os piores dados de entrada Os piores valores para variáveis globais O pior comportamento das caches O pior comportamento do pipeline O pior comportamento do branch predictor Etc O pior comportamento de tudo 6
7 Introdução 5/10 O WCET é determinado por múltiplos fatores cuja análise criteriosa é fundamental para a determinação de seu valor Ou uma estimativa que represente um limite superior seguro (upper-bound) A precisão da estimativa do WCET vai depender das técnicas de análise utilizadas Análise estática Analisa o código sem executa-lo Medições Métodos híbridos misturando os dois anteriores 7
8 Introdução 6/10 Não é possível obter limites superiores para os tempos de execução de programas em geral Seria equivalente a resolver o halting problem Para determinar o WCET é necessário uma forma restrita de programação, a qual garante que o programa sempre termina Recursão não é permitida Laços possuem um número de iterações explicitamente limitado Em geral, o cenário que gera o pior tempo de execução de uma tarefa não é conhecido de antemão, e muito difícil de identificar Dados de entrada Valores das variáveis globais Estado inicial do hardware (cache, pipeline, branch predictor, etc) 8
9 Introdução 7/10 O método mais empregado na prática para estimar o tempo de execução no pior caso é simplesmente executar a tarefa Mede o tempo de execução da tarefa sozinha Para um certo número de cenários (os casos de teste) Com isto é obtido o máximo tempo de execução observado Linha azul na figura Também chamado de HWM (High Water Mark) Normalmente o máximo tempo de execução observado será menor que o verdadeiro (e desconhecido) WCET Linha vermelha na figura Na prática pode-se adicionar uma margem de segurança (20% por exemplo) 9
10 Introdução 8/10 Algumas abordagens medem o tempo de execução de diferentes partes do código, e não da tarefa inteira Estas medições do tempo de execução de segmentos são depois combinadas, da pior forma possível, para obter-se uma estimativa mais segura para o WCET Mesmo assim, não existe garantia de que a estimativa obtida é maior que o verdadeiro WCET 10
11 Introdução 9/10 Um estimativa garantidamente segura para o WCET requer que o método usado considere todos os possíveis tempos de execução Tais métodos realizam uma análise estática da tarefa, sem executa-la realmente Uma visão abstrata da tarefa é empregada para simplificar o trabalho Esta visão abstrata da tarefa implica alguma perda de informação Uma simplificação pessimista da tarefa é empregada A estimativa obtida é um limite superior para WCET (upper bound) A estimativa obtida é garantidamente maior que o verdadeiro WCET Exatamente o quanto pessimista é a estimativa depende dos métodos usados para fazer a análise estática e da previsibilidade do sistema em questão Previsibilidade do comportamento do hardware Previsibilidade do fluxo de controle da tarefa 11
12 Introdução 10/10 Ao usar uma estimativa do WCET, algumas questões são relevantes A estimativa representa um valor aproximado do WCET? Para mais ou para menos Ou a estimativa representa um limite superior para o WCET? Sempre pessimista, sempre maior que o verdadeiro WCET Uma informação relevante, mas muito difícil de ser obtida, é: O quão próximo do verdadeiro WCET está a estimativa obtida? 12
13 Importância do Tipo de Hardware 1/4 O hardware usado tem grande impacto sobre a variância do tempo de execução e sua previsibilidade Caso mais fácil são processadores clássicos de 8 e 16 bits com arquiteturas simples Cada instrução tem um tempo fixo de execução Tais processadores são fáceis de modelar com respeito aos tempos do hardware O principal trabalho a fazer na análise do WCET é determinar o grafo de fluxo de controle e o caminho mais longo Estes processadores são cada vez menos usados, em função da sua limitação de desempenho Por exemplo, Intel MCS-51 13
14 Importância do Tipo de Hardware 2/4 Existem também processadores com pipeline simples que executam as instruções exatamente na ordem que aparecem no programa In-order pipeline São muito usados atualmente em computadores embutidos em equipamentos (embedded systems) com restrições de custo porém necessitando mais desempenho do que o disponível em processadores clássicos de 8 e 16 bits Por exemplo, ARM7 e ARM Cortex R series Incluem pipeline e memória cache, porém com uma solução simples É possível fazer a análise estática do WCET neste tipo de hardware 14
15 Importância do Tipo de Hardware 3/4 Para aplicações mais complexas, que exigem maior desempenho do hardware, é necessário empregar processadores com arquiteturas complexas Nestes processadores existem memórias cache, pipelines com execução fora de ordem Por exemplo, PowerPC 750, PowerPC 7448 e ARM11 Análise estática deste tipo de processador é muito mais difícil 15
16 Importância do Tipo de Hardware 4/4 A tendência é a arquitetura dos computadores ficar sempre mais complexa Elementos especulativos (com comportamento probabilista) são usados para aumentar o desempenho médio Tais arquiteturas utilizam Múltiplas threads de hardware em cada core do processador Pipelines com muitos estágios em paralelo (deep pipelines) Diversos níveis de cache Por exemplo, AMD Opteron, Intel Core i7, IBM Power8 16
17 Análise Estática do WCET 1/4 Objetivo é determinar o pior caso do tempo de execução Sem realmente executar a tarefa As técnicas de análise estática determinam estimativas através de modelos do programa e do hardware Os modelos devem ser corretos, mas não são necessariamente exatos Os valores obtidos são seguros O WCET estimado sempre será maior do que o WCET real Na falta de informações do modelo Tempo de execução pode ser extremamente pessimista Na prática: obtenção de um limite superior (upper bound) A análise estática é discutida em detalhes no artigo ACM Transactions on Embedded Computing Systems, Vol. 7, No. 3, Article 36 17
18 Análise Estática do WCET 2/4 Análise estática determina um limite superior para o tempo de execução de uma tarefa quando executada em um hardware específico O tempo de uma execução em particular depende Do caminho na tarefa feito pelo fluxo de controle Do tempo gasto nas instruções de máquina neste caminho e neste hardware A determinação de um limite para o tempo de execução precisa considerar Todos os caminhos possíveis para o fluxo de controle Os tempos de execução das instruções neste conjunto de caminhos Abordagem típica divide o problema da análise em uma sequência de subproblemas Alguns lidam com as questões do fluxo de controle Outros lidam com o tempo de execução de sequências de instruções de máquina Vários métodos são usados para atacar os vários subproblemas 18
19 A análise estática apresenta várias limitações Análise Estática do WCET 3/4 O número máximo de iterações em laços precisa ser conhecido Na maioria das vezes recursão é proibida Não é possível usar ponteiros para dados e funções que não possam ser resolvidos (conhecidos) estaticamente Muitas vezes não é possível usar alocação dinâmica de memória Muitas análises requerem que o padrão para chamada de função no processador em questão seja rigorosamente seguido Atualmente apenas monoprocessadores são suportados A maioria das análises supõe que a tarefa analisada seja executada sem interrupções Interrupções desabilitadas 19
20 Análise Estática do WCET 4/4 Determinar o número máximo de iterações para cada laço da tarefa pode ser difícil Modelar corretamente o comportamento do processador, com seus diversos elementos, pode ser muito difícil A preempção da tarefa por tratadores de interrupção ou outras tarefas de mais alta prioridade causam grandes pertubações no contexto de execução A execução de uma tarefa de mais alta prioridade vai arruinar o conteúdo da cache para a tarefa que sofreu a preempção Ao voltar a tarefa preemptada precisa recarregar a memória cache A evolução da arquitetura dos computadores torna a análise estática dos tempos de execução cada vez mais difícil 20
21 Análise do Fluxo de Controle 1/10 Uma tarefa exibe seu WCET em um caminho de execução específico WCEP (Worst-Case ExecutionPath) Algumas vezes diversos caminhos podem levar ao WCET Se os dados de entrada e o estado inicial do hardware (cache, pipeline, branch-predictor, etc) que leva ao WCET fosse conhecido Obter o WCET seria bem mais fácil Bastaria executar a tarefa com estes dados de entrada a partir destas condições iniciais e medir o tempo de execução Em geral, isto não é possível O Grafo de Fluxo de Controle (GFC) é usado para descrever todos os caminhos de execução possíveis CFG (Control-Flow Graph) Inclui o Grafo de Chamadas que mostra qual subrotina chama qual 21
22 Análise do Fluxo de Controle 2/10 Seria mais fácil construir o Grafo de Fluxo de Controle a partir do código fonte Mas é difícil mapear os resultados para o programa em código de máquina Otimizações do compilador Ligações com bibliotecas e entre módulos O Grafo de Fluxo de Controle é então construído a partir do código de máquina O GFC deve conter todas as instruções da tarefa Dificuldades são criadas por saltos dinâmicos (indexados) Saltos dinâmicos surgem na implementação de comandos tipo switch/case Pode requerer a análise do código fonte para identificar os alvos dos saltos Dificuldades são criadas por chamadas de subrotina com endereço cálculado Por exemplo quando são usados ponteiros para função em C 22
23 Análise do Fluxo de Controle 3/10 O propósito da análise do fluxo de controle é gerar informações sobre os possíveis caminhos da execução O conjunto de caminhos é sempre finito, pois a terminação do programa precisa ser garantida O número exato de caminhos pode ser difícil de determinar Mas uma aproximação segura pode ser usada Além do GFC, podem ser usados: Limites para os valores possíveis dos dados de entrada Limites para o número de iterações dos laços Determinados por análise de valor ou fornecidos pelo desenvolvedor 23
24 Análise do Fluxo de Controle 4/10 A anotação do código da tarefa com informações disponíveis do desenvolvedor da aplicação pode facilitar muito a análise O desenvolvedor pode suprir estas informações adicionais em arquivos separados ou como comentários no código fonte Informações tais como: Layout de memória e características das diferentes áreas de memória Valores possíveis para os dados de entrada Limites para o número de iterações dos laços Relações entre o número de iterações de laços internos e variáveis usados em laço externo Frequência esperada para cada caminho em um saldo condicional Chamadas de subrotina que fogem do padrão para o processador em questão 24
25 Análise do Fluxo de Controle 5/10 Os diferentes possíveis caminhos da execução de uma tarefa são tomados ou não com base nos dados de entrada Alguns caminhos que aparecem no GFC podem ser impossíveis, não importando os dados de entrada Por exemplo, IF(A>B) X(); IF(A<B) Y(); se X() não altera nem A nem B, jamais X() e Y() serão executados juntos Eliminar tais caminhos impossíveis vai aumentar a precisão da análise O GFC pode mostrar como pior caminho na verdade um caminho impossível 25
26 Análise do Fluxo de Controle 6/10 A análise do fluxo de controle busca eliminar caminhos impossíveis A análise do fluxo de controle também busca determinar um limite máximo para o número de iterações de cada laço Podem ser usadas informações adicionais fornecidas pelo programador (anotações no código fonte) São analisados os valores possíveis para as variáveis e as expressões dos comandos que podem causar desvios (Análise de Valor) 26
27 Análise do Fluxo de Controle 7/10 Análise de Valor é capaz de determinar várias informações relevantes para a análise estática do tempo de execução Especialmente em programas com código bem comportado A análise de valor computa os intervalos possíveis para valores armazenados nos registradores do processador, assim como variáveis de memória Ela permite determinar Limites para o número de iterações de laços Caminhos impossíveis Endereços de memória efetivos para usar na análise da cache 27
28 Análise do Fluxo de Controle 8/10 Muitas vezes os nodos do Grafo de Fluxo de Controle não são instruções de máquina individuais, mas sim blocos básicos Um Bloco Básico (BB) é uma sequência de instruções de máquina consecutivas nas quais a execução sempre inicia pela primeira instrução do bloco básico e sempre termina na última instrução do bloco básico Não existem desvios para entrar no meio do bloco básico Não existem desvios para sair no meio do bloco básico Em um bloco básico, o fluxo de execução sempre vai do início até o fim, sem interrupções nem desvios de fluxo 28
29 Análise do Fluxo de Controle 9/10 i = 5; i = i * j; if( i > 55 ) { z = i; i = 0; } else { z = j; j = 0; } K = i + j; return; z = i; i = 0; i = 5; i = i * j; if( i > 55 ) K = i + j; return; z = j; j = 0; 29
30 Análise do Fluxo de Controle 10/10 Processadores complexos podem na verdade executar as instruções de máquina em uma ordem diferente daquela que aparece no código binário do programa Ou seja, daquela suposta pela análise do fluxo de controle Isto acontece devido a técnicas tais como Pipeline com busca antecipada (prefetching) e postergação de salto (delayed branching) Previsão de saltos (branch prediction) Execução especulativa ou fora de ordem Análise estática neste caso muito mais difícil ou mesmo impraticável 30
31 Análise do Comportamento do Processador 1/10 Em processadores clássicos simples (8 e 16 bits) é possível assumir que o tempo de execução de uma instrução de máquina é constante Ele independente de contexto O tempo de execução de uma dada instrução de máquina individual independe do que foi executado antes Independe da história de execução Estes tempos podem ser encontrados no manual do processador Podem variar conforme tipo de operando ou area de memória acessada Neste caso, Se a tarefa primeiro executa um trecho de código A e depois um trecho B E o tempo de execução de A no pior caso é WCET(A) E o tempo de execução de B no pior caso é WCET(B) Então a execução no pior caso de A;B será WCET(A)+WCET(B) 31
32 Análise do Comportamento do Processador 2/10 Esta independência de contexto não é verdadeira para processadores um pouco mais modernos (em geral 16 e 32 bits) Com cache e pipeline simples (escalar) O tempo de execução de uma instrução de máquina individual pode variar Instruções de máquina apresentam tempo de execução dependente do contexto deixado pela história da execução até o momento No caso do exemplo anterior A;B, o tempo de execução de B depende do contexto deixado pela execução de A Do estado deixado por A no pipeline, cache, etc Podem existir vários caminhos para chegar até B, via saltos para B 32
33 Análise do Comportamento do Processador 3/10 Limites para o tempo de execução de uma instrução de máquina depende do estado do processador quando ela for executada Informações sobre o estado do processador é obtida através da análise dos potenciais caminhos de execução que levaram até aquela instrução Diferentes estados nos quais a instrução pode ser executada podem levar a tempos de execução muito variáveis Suponha que um laço itere 100 vezes O tempo de execução do corpo do laço no pior caso é 1ms Mas ele ocorre apenas uma vez, nas outras 99 vezes a memória cache foi povoada com os blocos de memória do laço e o tempo de execução no pior caso é de 0,5ms O tempo total no pior caso sem análise de cache seria estimado em 100ms Mas com análise de cache o tempo total no pior caso seria estimado em 1 x 1ms + 99 x 0.5ms = 50,5ms 33
34 Análise do Comportamento do Processador 4/10 A precisão da estimativa é melhorada se forem consideradas as possíveis histórias de execução que aconteceram até então Definindo assim os contextos de execução possíveis para cada instrução A história de execução é o caminho que a execução seguiu até chegar em um ponto específico do programa Laços, desvios, chamadas de subrotinas, etc Sempre que existir dúvida sobre o contexto de execução Uma suposição pessimista deve ser empregada Ou todas as possibilidades precisam ser exploradas na análise 34
35 Análise do Comportamento do Processador 5/10 O contexto de execução inclui conhecimento estático sobre O conteúdo da memória cache A ocupação das unidades funcionais do pipeline O estado interno do previsor de saltos (branch-predictor) Etc Este conhecimento é usado para Determinar se a posição de memória acessada está ou não na cache Determinar se haverá algum atraso (stall) no pipeline Determinar se o previsor de saltos irá acertar ou errar sua previsão Etc 35
36 Análise do Comportamento do Processador 6/10 A análise do comportamento do processador reune informações sobre o comportamento do processador para uma dada tarefa Especificamente o comportamento dos componentes que influenciam os tempos de execução A análise do comportamento do processador requer portanto um modelo da arquitetura do processador Não precisa incluir todos os detalhes da funcionalidade do processador Basta um modelo simplificado que seja seguro com respeito aos tempos de execução A análise depende da corretude temporal do modelo usado 36
37 Análise do Comportamento do Processador 7/10 Em geral os fabricantes de processadores não divulgam informações detalhadas sobre a organização interna do processador (microarquitetura) Quem faz a análise estática precisa desenvolver e validar o modelo do processador que será usado Esta validação pode ser feita com medições e observações Tempos de execução medidos são comparados com os tempos de execução previstos Eventos observados na execução real são comparados com eventos previstos A validação sempre será limitada Ela é capaz de mostrar a presença de erros Ela não é capaz de provar a ausência de erros 37
38 Análise do Comportamento do Processador 8/10 A complexidade da análise do comportamento do processador obviamente depende da complexidade da arquitetura do processor Os microprocessadores mais poderosos sofrem o que é chamado de anomalia temporal (timing anomalies) Anomalias são influências contra-intuitivas da execução de uma certa instrução de máquina no tempo de execução total da tarefa São causadas pela presença de muitas características incluídas para melhorar o desempenho de forma probabilistica e que acabam afetando umas às outras Neste caso a construção de modelo temporal apropriado é muito difícil, beirando o impraticável 38
39 Análise do Comportamento do Processador 9/10 Por exemplo, suponha que não é sabido se a próxima instrução está ou não na memória cache Se a instrução X não estiver na cache haverá uma falta da cache (cache-miss) e o tempo de execução será maior Se a instrução X estiver na cache (cache-hit) o acesso será rápido e o tempo de execução será menor A intuição sugere que o segundo caso (cache-hit) sempre levará a um tempo menor de execução total para a tarefa Em processadores com anomalias temporais isto pode não acontecer A execução mais rápida (cache-hit) da instrução X pode levar a um tempo maior de execução para o total da tarefa em questão Por exemplo, se a previsão de saltos (branch-prediction) errar Um cache-hit aumentaria o prejuizo da previsão errada Um cache-miss limitaria o prejuizo, gerando um tempo total menos 39
40 Análise do Comportamento do Processador 10/10 Anomalias temporais violam suposições intuitivas Que sempre supondo o pior caso local chegaremos no pior caso global Não é possível fazer a análise simplesmente buscando o pior caso para cada instrução de máquina individualmente Isto não resulta no pior tempo de execução para a tarefa como um todo A existência de anomalias temporais em um processador limita os métodos de análise que podem ser aplicados Torna a análise muito mais complexa A análise é forçada a seguir a execução por vários caminhos alternativos, pois o pior caminho não é conhecido a priori Até ter certeza sobre qual o pior caminho O espaço de busca torna-se muito grande 40
41 Análise da Memória Cache 1/2 Impacto da memória cache é muito grande para ser ignorado Análise busca determinar qual é o conteúdo da memória cache a cada ponto da execução do programa Fácil para um programa sem desvios e com o conteúdo inicial da cache conhecido, basta simular o comportamento da cache Difícil no caso geral, quando o fluxo de controle depende dos dados de entrada Pode-se chegar em um ponto do programa por vários caminhos diferentes, e cada um deles gera uma memória cache com conteúdo diferente Análise procura determinar aqueles dados ou instruções que com certeza estarão na memória cache (Always Hit) sempre que a execução passo por determinado ponto do programa No caso de dúvida, pessimismo 41
42 Análise da Memória Cache 2/2 Análise da memória cache busca calcular o estado da cache para amenizar o pessimismo da análise Super que sempre ocorre um cache-miss é muito pessimista Resultado da análise indica para cada bloco de memória qual a sua situação para cada ponto de execução do programa Certamente não está na cache (Always Miss) Certamente está na cache (Always Hit) Dentro de um laço, não está na primeira iteração, porém estará nas demais iterações (First Miss) Caminhos diferentes geram estados diferentes (Conflict), é necessário tratar como Always Miss por segurança (pessimismo) 42
43 Análise do Pipeline 1/5 A análise do pipeline depende da complexidade do processador Em um pipeline simples a análise também será simples Suponha um processador onde: O processador é livre de anomalias temporais Não existe previsão de saltos (branch prediction) Não existe execução fora de ordem Uma vez que inicia a execução do bloco básico, o comportamento do pipeline é contínuo e completamente previsível Podem haver atrasos no pipeline dentro do bloco básico Quando uma instrução de máquina precisa do resultado da instrução de máquina anterior Neste caso a execução da instrução de máquina que precisa do resultado vai ter que esperar Podem haver atrasos no pipeline entre blocos básicos Quando a primeira instrução de máquina do bloco básico sucessor precisa do resultado da última instrução de máquina do bloco básico predecessor Neste caso a execução da instrução de máquina que precisa do resultado vai ter que esperar 43
44 Análise do Pipeline 2/5 A entrada em um bloco básico pode ocorrer de duas formas Acontece um salto para o início do bloco básico Neste caso o bloco básico inicia com o pipeline vazio Sua execução vai demorar mais Basta somar o tempo de execução em separado dos dois blocos básicos A execução continua sequencialmente do final do bloco básico predecessor para o início do bloco básico sucessor Neste caso o pipeline nunca parou de funcionar As instruções iniciais do bloco básico sucessor começam a ser executadas nos estágios iniciais do pipeline enquanto as instruções finais do bloco básico predecessor são concluídas nos estágios finais do pipeline Não é correto simplesmente somar os tempos de execução em separado dos dois blocos básicos 44
45 Análise do Pipeline 3/5 Quando dois blocos básicos são executados com desvio, o tempo total de execução dos dois é a soma dos tempos em separado (7 + 6 = 13) Clock Busca Decodifica Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 2 Bloco básico 2 Bloco básico 2 Busca operandos Execução Escrita Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 2 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 2 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 2 45
46 Análise do Pipeline 4/5 Quando dois blocos básicos são executados sem desvio, o tempo total de execução é menor que a soma dos tempos em separado (9 < 13) Clock Busca Decodifica Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 1 Bloco básico 2 Bloco básico 2 Bloco básico 2 Busca operandos Execução Escrita Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 2 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 2 Bloco básico 1 Bloco básico 1 Bloco básico 1 Bloco básico 2 Bloco básico 2 46
47 Análise do Pipeline 5/5 A análise do pipeline precisa lidar com as características do pipeline no processador em questão O tempo de execução do bloco básico não depende apenas do pipeline É necessário considerar os acessos à memória cache que podem provocar atrasos no pipeline No caso de falta da cache é necessário acessar a memória principal muito mais lenta E atualizar a memória cache Uma alteração em qualquer das características do processador requer uma revisão e possível adaptação da análise realizada Adaptar o modelo abstrato do comportamento do processador 47
48 Cálculo do Limite Superior para o WCET 1/9 O objetivo da análise estática é determinar um limite superior para o WCET da tarefa O limite superior precisa considerar o fluxo de controle e todas as informações obtidas nas outras etapas Existem três classes principais de métodos que podem ser usados para combinar analiticamente as informações obtidas Baseados na estrutura (structure-based) Baseados em caminhos (path-based) Enumeração implícita de caminhos (implicit-path enumeration, IPET) 48
49 Cálculo do Limite Superior para o WCET 2/9 Nos Métodos Baseados na Estrutura, um limite superior para o WCET é obtido combinando sucessivamente limites para o WCET de nodos próximos, conforme o tipo de comando que foi usado no programa original (IF, FOR, etc) Nodos próximos do Grafo de Fluxo de Controle são agrupados em nodos únicos e o WCET estimado para o nodo agrupado resultante deve ser o comportamento de pior caso para o grupo de nodos agrupados Para cada nodo precisa ser considerado o seu pior contexto de execução, ou seja, a história de execução que leva ao pior caso Considerar diferentes contextos de execução pode requerer transformações no Grafo de Fluxo de Controle para refletir os diferentes contextos O programa precisa ser programado de forma bem estruturada A abordagem assume uma correspondência direta entre as estruturas do código fonte e o programa em código de máquina, não lidando bem com otimizações feitas pelo compilador 49
50 Cálculo do Limite Superior para o WCET 3/9 Nos Métodos Baseados em Caminhos, um limite superior para o WCET da tarefa é determinado através do cálculo de limites para o WCET em cada caminho da tarefa, e da identificação do caminho que leva ao maior tempo de execução Todos os caminhos de execução possíveis precisam ser representados explicitamente O método baseado em caminho é viável na ausência de laços Porém encontra problemas quando existem laços aninhados O número de caminhos cresce exponencialmente com o número de pontos de desvio no programa 50
51 Cálculo do Limite Superior para o WCET 4/9 O método mais usado é a Enumeração Implícita de Caminhos (Implicit-Path Enumeration, IPET) O fluxo do programa e os limites para o WCET da execução de cada bloco básico são combinados em conjuntos de restrições aritméticas Para cada bloco básico e fluxo de execução (entidade) é definido: Um coeficiente de tempo (time coefficient), que expressa um limite superior para a contribuição daquela entidade para o tempo total de execução, toda vez que ela é executada Uma variável contadora (count variable), que corresponde ao número de vezes que a entidade é executada 51
52 Cálculo do Limite Superior para o WCET 5/9 Um limite superior para o WCET da tarefa é obtido através da maximização da soma dos produtos de cada coeficiente de tempo (ti) pela sua respectiva variável contadora (xi) i entities (x i. t i ) As variáveis contadoras estão sujeitas a restrições que refletem a estrutura da tarefa e os possíveis caminhos de execução Uma solução para o problema colocado pelo IPET é um limite superior para o tempo de execução da tarefa através da definição de valores para ti e xi que maximem o tempo de execução Para isto é usada a Programação Linear Inteira 52
53 Cálculo do Limite Superior para o WCET 6/9 A Programação Linear é um método genérico para codificar os requisitos de um sistema na forma de um sistema de restrições lineares Uma função objetivo deve ser maximizada ou minimizada para obter-se uma atribuição ótima de valores às variáveis do sistema Temos Programação Linear Inteira quando os valores envolvidos devem ser valores inteiros Um problema descrito através da Programação Linear Inteira é NP-hard Ele tem uma complexidade computacional potencialmente exponencial com respeito ao tamanho da tarefa Logo, o uso de Programação Linear Inteira deveria ser limitado a pequenas instâncias de problemas ou subproblemas da análise estática Entretanto, ferramentas atuais conseguem resolver problemas de Programação Linear Inteira de tamanho considerado 53
54 Cálculo do Limite Superior para o WCET 7/9 O fluxo de controle das tarefas é descrito como um problema de Programação Linear Inteira Informações adicionais sobre o controle de fluxo podem ser codificadas como restrições adicionais A função objetivo expressa o tempo de execução da tarefa completa Este valor maximizado representa um limite superior para todos os tempos de execução possíveis para a tarefa Exemplos de ferramentas (solvers) para resolver problemas de Programação Linear Inteira são GLPK, GNU Project - Free Software Foundation (FSF) - CPLEX Optimizer, IBM
55 Cálculo do Limite Superior para o WCET 8/9 No IPET as características do fluxo de controle são traduzidas em restrições da Programação Linear Inteira As restrições estruturais refletem os possíveis fluxos de execução As restrições start e exit determinam que a tarefa deve ser iniciada exatamente uma vez e terminada exatamente uma vez Todo bloco básico é iniciado exatamente o mesmo número de vezes que ele é terminado (fluxo é conservado) Todo laço tem um limite para o número de iterações, o qual aparece como uma restrição no número de vezes que o bloco básico que representa o início do laço pode ser executado (laços não podem executar além deste limite) O bloco básico que avalia a condição de teste do laço deve executar uma vez a mais do que o corpo do laço 55
56 Cálculo do Limite Superior para o WCET 9/9 Questões ligadas ao comportamento do processador (pipeline, cache, etc) aparecem nos valores de ti ou em restrições adicionais Cada entidade pode ser simplesmente um bloco básico Ou cada entidade pode ser um bloco básico acessado a partir de outro bloco básico específico Ou cada entidade pode ser um bloco básico acessado a partir de um caminho específico A modelagem vai depender da complexidade do processador em questão, precisa incluir compensações para os efeitos do pipeline Objetivo da Programação Linear Inteira é maximizar i entities (x i. t i ) Definindo valores para xi que respeitem as restrições colocadas 56
57 A Ferramenta ait 1/8 Desenvolvido pela empresa AbsInt, ait é o analisador estático de WCET comercial mais usado pela indústria O ait analisa diretamente código de máquina e considera o comportamento de elementos tais como cache e pipeline Um conjunto de ferramentas é fornecido, inclusive com interface gráfica de usuário para diversos aspectos 57
58 A Ferramenta ait 2/8 O ait, como toda análise estática de WCET, emprega várias fases no processo ( 58
59 A Ferramenta ait 3/8 A construção do GFC (CFG Buider) identifica as instruções de máquina do processador em questão e reconstrói o Grafo de Fluxo de Controle a partir do código binário A decodificação das instruções de máquina é capaz de identificar o endereço alvo de saltos que utilizem endereços absolutos ou relativos ao program counter Tem dificuldades com endereços alvos computados a partir do conteúdo de registradores São usados decodificadores especializados que sabem como alguns compiladores geram o código binário Pode ser necessário que o programador informe através de uma anotação qual o endereço alvo do salto 59
60 A Ferramenta ait 4/8 A análise de valor (Value Analysis) computa intervalo de valores para registradores e intervalos de endereços para as instruções que acessam a memória A análise de valor tenta determinar os valores nos registradores para cada ponto do programa em cada caminho possível um limite inferior e um limite superior São usados para determinar os endereços alvo no caso de acesso indireto à memória (via ponteiros) Para a análise da cache São usados para determinar limites para o número de iterações de laços O que não poder ser determinado pela análise de valor deverá ser fornecido pelo usuário na forma de anotações 60
61 A Ferramenta ait 5/8 A análise de laços (Loop Bound Analysis) determina limites superior para o número de iterações de laços simples A análise de laços utiliza a análise de valor e também o reconhecimento de padrões de código gerados pelos compiladores Anotações do usuário devem fornecer os limites que não puderem ser determinados automaticamente. 61
62 A Ferramenta ait 6/8 A análise da cache (Cache Analysis) classifica as referências à memória como acerto (cache-hit) ou falta (cache-miss) A análise considera caches que utilizam a política de substituição LRU (Least Recently Used) Também outras políticas de substituição tais como pseudo-roundrobin (ColdFire MCF 5307) e pseudo-lru (PLRU, PowerPC MPC 750 e 755) 62
63 A Ferramenta ait 7/8 A análise do pipeline (Pipeline Analysis) prevê o comportamento do programa no pipeline do processador O resultado é o tempo de execução para cada bloco básico Para as as várias histórias de execução possíveis até chegar no bloco básico em questão Os resultados da análise da cache são usados pela análise do pipeline Permite identificar atrasos no pipeline (pipeline stalls) devidos às faltas da cache 63
64 A Ferramenta ait 8/8 A análise de caminhos (Path Analysis) determina o caminho que leva ao tempo de execução no pior caso A análise de caminhos emprega o método IPET descrito antes A estimativa do WCET da tarefa é obtida através da Programação Linear Inteira As análises de valor, de cache e de pipeline utilizam Interpretação Abstrata Um método baseado em semântica para a análise estática de programas 64
65 Considerações Finais 1/2 A análise estática calcula um limite superior para o tempo de execução no pior caso A análise de fluxo de controle cobre todos os caminhos de execução possíveis Também são cobertos todas as possíveis dependências de contexto de execução do comportamentodo processador O aspecto negativo é a necessidade de modelos específicos para o comportamento do processador Os resultados são apenas aproximados, no caso um limite superior pessimista para o WCET Um aspecto positivo é que a análise pode ser feita sem precisar realmente executar a tarefa analisada 65
66 Considerações Finais 2/2 As técnicas para estimação do WCET via análise estática acabam sendo limitadas no que se refere a plataformas de hardware suportadas estilo de programação tolerado A maior dificuldade técnica da análise estática é a modelagem do comportamento do processador O modelo é sempre específico para um processador e uma plataforma de hardware Este é um problema que não existe na maioria dos métodos baseados em medição Implementar um método de medição para um novo processador é muito mais fácil do que criar um modelo abstrato do seu comportamento Entretanto, uma medição é apenas uma aproximação otimista do WCET A não ser que algum tratamento estatístico seja aplicado 66
67 Sumário Introdução Importância do Tipo de Hardware Análise Estática do WCET Análise do Fluxo de Controle Análise do Comportamento do Processador Análise da Memória Cache Análise do Pipeline Cálculo do Limite Superior para o WCET A Ferramenta ait Considerações Finais 67
COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto
COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1 INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas áreas de arquitetura e organização de computadores. As principais
SSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 10ª Aula Pipeline Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Dependências ou Conflitos (Hazards) Conflitos Estruturais Pode haver acessos simultâneos à memória
PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações
Arquitetura de Computadores Introdução ao Pipeline PIPELINE Linha de Montagem A produção é dividida em várias etapas Produtos em etapas distintas podem ser desenvolvidos separadamente Pode ser Aplicado
AULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Arquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Unidade Central de Processamento (CPU) Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Baseado nos slides do capítulo
Conceitos Básicos dos Sistemas de Tempo Real
Conceitos Básicos dos Sistemas de Tempo Real Rômulo Silva de Oliveira Edição do Autor, 2018 www.romulosilvadeoliveira.eng.br/livrotemporeal Outubro/2018 1 Sistemas computacionais com requisitos de tempo
SSC0510 Arquitetura de Computadores
SSC0510 Arquitetura de Computadores 9ª Aula Pipeline Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Dependências ou Conflitos (Hazards) Conflitos Estruturais Pode haver acessos simultâneos à memória
Variância dos Tempos de Resposta
Variância dos Tempos de Resposta Rômulo Silva de Oliveira ebook Kindle, 2018 www.romulosilvadeoliveira.eng.br/livrotemporeal Outubro/2018 1 Introdução Fontes da Variância do Tempo de Resposta Variância
Arquitetura e Organização de Processadores. Aula 4. Pipelines
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de
Arquiteturas RISC e CISC. Adão de Melo Neto
Arquiteturas RISC e CISC Adão de Melo Neto 1 Arquitetura RISC Arquitetura RISC. É um das inovações mais importantes e interessantes. RISC significa uma arquitetura com um conjunto reduzido de instruções
1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é
1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação
INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL
INTRODUÇÃO À TECNOLOGIA DA ORGANIZAÇÃO COMPUTACIONAL PROFESSOR CARLOS MUNIZ ORGANIZAÇÃO DE UM COMPUTADOR TÍPICO Memória: Armazena dados e programas Processador (CPU - Central Processing Unit): Executa
Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)
Arquitetura de Computadores Professor: Vilson Heck Junior (Material: Douglas Juliani) Agenda Conceitos Componentes Funcionamento ou tarefas Otimização e desempenho Conceitos Componente de Hardware que
http://www.ic.uff.br/~debora/fac! 1 Conceito de família IBM System/360 1964 DEC PDP-8 Separa arquitetura de implementação Unidade de controle microprogramada Idéia de Wilkes 1951 Produzida pela IBM S/360
William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 12 Estrutura e função do processador slide 1 Estrutura da CPU CPU precisa: Buscar instruções. Interpretar instruções. Obter
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Executivo Cíclico. Executivo Cíclico Introdução. Sistemas de Tempo Real: Executivo Cíclico Exemplo. Executivo Cíclico Introdução
Sistemas de Tempo Real: Executivo Cíclico Rômulo Silva de Oliveira Departamento de Automação e Sistemas - DAS UFSC romulo.deoliveira@ufsc.br http://www.romulosilvadeoliveira.eng.br Setembro/201 1 Também
Introdução à Programação
Introdução à Programação Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina.
Organização e Arquitetura de Computadores I
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de
Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores
Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos
Abordagens de Escalonamento
Necessidade de Diferentes Abordagens Sistemas de Tempo Real: Abordagens de Escalonamento Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br http://www.das.ufsc.br/~romulo
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO Adalberto Cajueiro (adalberto@computacao.ufcg.edu.br) Departamento de Sistemas e Computação Universidade Federal de Campina Grande 1
1. Caracterização dos Sistemas de Tempo Real. 2. Conceitos Básicos dos Sistemas de Tempo Real. 3. Implementação de Tarefas em Sistemas Pequenos
1. Caracterização dos Sistemas de Tempo Real O que é um sistema de tempo real? Todas as pessoas possuem intuitivamente a noção de tempo, do passar do tempo e de prazos. Já a definição do termo sistema
O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho
Ciência da Computação Arq. e Org. de Computadores Avaliando e Compreendendo o Desempenho O Que Veremos Avaliando e compreendendo o desempenho: Introdução Definindo desempenho Medindo o desempenho e seus
(a) Maior ou igual ao WECT (b) Inferior ao WECT (c) Exatamente igual ao WECT (d) Mais seguro no entanto sem garantias
Universidade Federal de Santa Catarina (UFSC) Departamento de Automação e Sistemas (DAS) Pós-Graduação em Engenharia de Automação e Sistemas (PGEAS) Professor: Rômulo Silva de Oliveira (romulo.deoliveira@ufsc.br)
Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina
Infraestrutura de Hardware. Funcionamento de um Computador
Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é
ARQUITETURA DE COMPUTADORES
ARQUITETURA DE COMPUTADORES É pouco provável a utilização de um micro hoje em dia sem cache de memória, um sistema que utiliza uma pequena quantidade de memória estática como intermediária no acesso à
Arquitetura de Computadores I
Arquitetura de Computadores I Cap. 06 Pipeline Prof. M.Sc. Bruno R. Silva Plano de aula Visão geral de pipelining Um caminho de dados usando pipelie Controle de um pipeline Hazards de dados e forwarding
Arquitetura de Computadores Aula 11 - Multiprocessamento
Arquitetura de Computadores Aula 11 - Multiprocessamento Prof. Dr. Eng. Fred Sauer http://www.fredsauer.com.br fsauer@gmail.com 1/28 PROCESSAMENTO PARALELO OBJETIVO: aumentar a capacidade de processamento.
SSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação
4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.
Lista de Exercício 1 Algoritmo e Programação 29/08/2018 (Solução) 1) Escreva conforme a premissas computacionais, o que vem a ser, lógica. R: São as premissas básicas para se executar instruções, alocadas
Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)
Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora
SSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Organização e Arquitetura de Computadores I
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Nível do Sistema Operacional (Parte
Predição de Desvios e Processadores Superescalares Especulativos
Predição de Desvios e Processadores Superescalares Especulativos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Tomasulo Especulativo Se os
Microarquiteturas Avançadas
Universidade Federal do Rio de Janeiro Arquitetura de Computadores I Microarquiteturas Avançadas Gabriel P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com
Aula 17: Organização de Computadores
Aula 17: Organização de Computadores Introdução à Organização de Computadores Rodrigo Hausen hausen@usp.br 07 de outubro de 2011 http://cuco.pro.br/ach2034 Rodrigo Hausen (hausen@usp.br) Aula 17: Organização
PROCESSADORES SUPERESCALARES FELIPE G. TORRES
PROCESSADORES SUPERESCALARES FELIPE G. TORRES PROCESSAMENTO DAS INSTRUÇÕES Como podemos melhorar esse processamento? Arquitetura de computadores 2 PROCESSAMENTO DAS INSTRUÇÕES Como uma abordagem simplificada,
Nível do Conjunto de Instruções Prof. Edson Pedro Ferlin
1 Definições Nível ISA (Instruction Set Architecture). Está posicionado entre o nível da microarquitetura e o nível do sistema operacional. É a interface entre o software e o hardware. Nesse nível está
Linguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
Unidade de Controle. UC - Introdução
Unidade de Controle Prof. Alexandre Beletti (Cap. 3 Weber, Cap.8 Monteiro, Cap. 10,11 Stallings) UC - Introdução Para gerenciar o fluxo interno de dados e o instante em que ocorrem as transferências entre
Organização de Sistemas Computacionais Processadores: Organização da CPU
Universidade Paulista UNIP Curso: Ciências da Computação Turma: CCP30 Turno: Noturno Disciplina: Arquitetura de Computadores Professor: Ricardo Loiola Alunos: Thiago Gomes dos Santos Matrícula: C63873-0
CONJUNTO DE INSTRUÇÕES
CONJUNTO DE INSTRUÇÕES 1 CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA Quando um programador usa uma linguagem de alto-nível, como C, muito pouco da arquitetura da máquina é visível. O usuário que deseja programar
PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register
PROCESSADORES Um computador digital consiste em um sistema interconectado de processadores, memória e dispositivos de entrada e saída. A CPU é o cérebro do computador. Sua função é executar programas armazenados
Organização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características
Estruturas de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS
Notas de Aula Guilherme Sipahi Arquitetura de Computadores
Notas de Aula Guilherme Sipahi Arquitetura de Computadores Ciclo de instruções Ciclo de instruções / Pipelining Subciclos de um ciclo de instruções: - Busca: traz a próxima instrução até a CPU - Execução:
X Y Z A B C D
29) A seguinte tabela verdade corresponde a um circuito combinatório de três entradas e quatro saídas. Obtenha a tabela de programação para o circuito em um PAL e faça um diagrama semelhante ao apresentado
Nem todos os problemas algorítmicos que podem ser resolvidos em princípio podem ser resolvidos na prática: os recursos computacionais requeridos
Nem todos os problemas algorítmicos que podem ser resolvidos em princípio podem ser resolvidos na prática: os recursos computacionais requeridos (tempo ou espaço) podem ser proibitivos. 1 Suponha que duas
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo
Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 1 Unidade I DURAÇÃO: 50 MINUTOS
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 1 Unidade I DURAÇÃO: 50 MINUTOS Aluno: GABARITO Escore: 1 a Questão (30) Assinale a(s) resposta(s)
UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES
UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES ESSA APRESENTAÇÃO POSSUI QRCODE PARA ACESSAR INFORMAÇÕES ADICIONAIS AOS SLIDES. Código QR Reader Código QR INTRODUÇÃO A ARQUITETURA DE COMPUTADORES Qual
Abordagens para o Desenvolvimento de Sistemas de Tempo Real
Sumário Sistemas de Tempo Real: Verificação da Escalonabilidade Descrição do problema Abordagens para verificar a escalonabilidade Análise de escalonabilidade das tarefas Abordagens para o Desenvolvimento
Organização de Sistemas de Computadores
Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =
MÉTODOS QUANTITATIVOS PARA CIÊNCIA DA COMPUTAÇÃO EXPERIMENTAL
MÉTODOS QUANTITATIVOS PARA CIÊNCIA DA COMPUTAÇÃO EXPERIMENTAL Pedro Henrique Bragioni Las Casas Pedro.lascasas@dcc.ufmg.br Apresentação baseada nos slides originais de Jussara Almeida e Virgílio Almeida
MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES
MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES Alexandre Lucas Chichosz Discente do curso Engenharia da Computação Calwann de Souza Freire Discente do curso Engenharia da Computação Myke Albuquerque Pinto
Introdução a Teste de Software
Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1 Conceitos Teste de software
1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.
Arquitetura de Computadores II Bacharelado em Ciência da Computação DCC - IM/UFRJ Prof.: Gabriel P. Silva Data: 18/04/2005 1 ª Lista de Exercícios de Arquitetura de Computadores II 1) Enumere e dê exemplo
Otimização Combinatória - Parte 4
Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional
Pipeline. Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio. Estrutura da CPU. Em cada ciclo, a CPU deve:
Pipeline Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.Osório] Estrutura da CPU Em cada ciclo,
2º Estudo Dirigido CAP 3
2º Estudo Dirigido CAP 3 1. Cite três exemplos de aspecto na definição e implementação de uma arquitetura que são influenciados pelas características do conjunto de instruções? R.: Operações lógicas e
Caracterização. Sistemas de Tempo Real: Caracterização. Caracterização. Caracterização. Concepções Erradas. Mercados
Sistemas de Tempo Real: Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br http://www.das.ufsc.br/~romulo Maio/2009 1 Sistemas computacionais com requisitos de real:
2. A influência do tamanho da palavra
PROCESSAMENTO 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante
Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC
Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação Arquitetura de Computadores I RISC versus CISC Gabriel P. Silva 04.11.2014 Introdução Um dos objetivos de uma arquitetura de
Disciplina: Arquitetura de Computadores
Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na
Benchmarks. 1. Introdução
Benchmarks 1. Introdução Um Benchmark é um programa de teste de desempenho que analisa as características de processamento e de movimentação de dados de um sistema de computação com o objetivo de medir
Conjunto de Instruções. Alisson Brito
Conjunto de Instruções Alisson Brito 1 1 O que é o Conjunto de Instruções? Instruction Set Architecture (ISA) Interface entre Programas e CPU A coleção completa de instruções reconhecidas pela CPU Programas
Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral
Processador de uso geral 1. Introdução: Um sistema digital completo é constituído de uma unidade controle e o bloco operacional. Na figura a seguir alguns elementos externos necessários para completar
18/10/2010. Unidade de Controle Controle. UC Microprogramada
Arquitetura de Computadores Unidade de Controle Controle Microprogramado Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO UC Microprogramada
Pipeline. Prof. Leonardo Barreto Campos 1
Pipeline Prof. Leonardo Barreto Campos 1 Sumário Introdução; Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Caminho de Dados usando Pipeline; Representação Gráfica do Pipeline;
Arquitetura de Computadores II
Univers id ade Federal d o Rio d e Jan eir o DC C/IM Arquitetura de Computadores II Predição de Desvio Gabriel P. Silva Introdução Desvios: Instruções que podem alterar o fluxo de execução das instruções
Organização de Computadores
Organização de Computadores Aula 21 Memória Cache Rodrigo Hausen 21 de outubro de 2011 http://cuco.pro.br/ach2034 1/49 Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.2. Execução de
Arquitetura de Computadores. Processamento Paralelo
Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple
Computadores e Programação (DCC/UFRJ)
Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo
MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES
MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES Alexandre Lucas Chichosz Graduando em Engenharia da Computação, Faculdades Integradas de Três Lagoas FITL/AEMS Calwann de Souza Freire Graduando em Engenharia
ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão
Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros
Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES
Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,
Nível da Arquitetura do Conjunto das Instruções
Fluxo Seqüencial de Controle e Desvios (1) Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Fluxo
Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 08 Arquiteturas VLIW 1. Introdução VLIW é Very
Compiladores Geração de Código
Compiladores Geração de Código Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Abordagens de Escalonamento na Perspectiva da Engenharia
Mercado para tempo real é amplo Necessidade de Diferentes Abordagens Sistemas de Tempo Real: Abordagens de Escalonamento na Perspectiva da Engenharia Rômulo Silva de Oliveira Departamento de Automação
( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009
1ª Questão : Sobre o conceito de sistema operacional, escreva ao lado a soma dos números dos itens que considera corretos: (01) O conceito da máquina de níveis define o hardware como o nível mais baixo,
Unidade Central de Processamento 6. Otimização do desempenho
Unidade Central de Processamento 6 timização do desempenho Pipeline Técnica de implementação de processadores que permite a sobreposição temporal das diversas fases de execução das instruções Constituído
Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva
Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Introdução Introdução Bibliografia: Computer Architecture: A Quantitative Approach. John L. Hennesy,
Microprocessadores. Execução em Paralelo Pipelines
Execução em Paralelo Pipelines António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt Pipelines de Instrucções Instrucções são divididas em diferentes Estágios Pipelines
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Faculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Lista de Exercícios entrega em 25/09/2018 Prof. Cláudio C. Rodrigues Problemas: P1) A Tabela abaixo apresenta o mix de instruções
2. A influência do tamanho da palavra
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de
Arranjo de Processadores
Um arranjo síncrono de processadores paralelos é chamado arranjo de processadores, consistindo de múltiplos elementos processadores (EPs) sob a supervisão de uma unidade de controle (UC) Arranjo de processadores
Processador. Processador
Departamento de Ciência da Computação - UFF Processador Processador Prof. Prof.Marcos MarcosGuerine Guerine mguerine@ic.uff.br mguerine@ic.uff.br 1 Processador Organização básica de um computador: 2 Processador
Arquitetura de Computadores II
Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Arquitetura de Computadores II Prof. Flávio Rogério Uber Informações Úteis Professor: Flávio Rogério Uber Bloco C-56 Sala
Linguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR
ELETRÔNICA DIGITAL II AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br 1º SEMESTRE 2009 CONTEÚDO PROGRAMADO: 1 O que é um computador digital? 2 Como funcionam os computadores 3 O agente