INE 5411 - Mapeamento entre páginas de conteúdo equivalente entre a 3a. e 4a. edições do livro texto em inglês Assunto Páginas (3a. Edição) Páginas (4a. Edição) A3-A10 B3-B10 Introdução à programação de sistemas: Representações de 106-109, 112 139-141 código. Cadeias de ferramentas (compilador, montador, ligador, carregador, simulador, depurador). A noção de programmer's view (PV) e a noção de assembly como formato intermediário para geração de código. Visão geral de organização de um computador: Abstrações. 2-8;12-14 Tecnologias para fabricação de memórias e processadores 27-32 Conjunto de instruções: Registradores de uso geral, memória, instruções aritméticas inteiras (add, sub, addi) instruções load e store (lw, sw) 48-68 A40-A43 Ferramentas para programação de sistemas: Familiarização com o simulador MARS Conjunto de instruções: Instruções lógicas (srl, sll, and, andi, or, ori, nor), comparações sinalizadas e não-sinalizadas (slt, slti, sltu, sltui) , desvios condicionais (beq, bne) incondicionais (j) 68-78 Conjunto de instruções: Instruções para suporte a subprogramas (jal, jr). 79-85 Conjunto de instruções: Exercícios sobre código condicional: if-then-else e switch-case (jump address table) Avaliação de desempenho: Métricas e cálculo de desempenho. Avaliação de desempenho: Benchmarks SPEC CPU and SPEC Power. Exemplos reais de desempenho e eficiência energética de computadores contemporâneos. Métrica alternativa de desempenho: MIPS 3 a 26 76-87, 94-101 B40-B43 102-112 112-118 76 111 240-254 26-43 266-271 48-55 Conjunto de instruções: Instruções de suporte para texto (lb, sb, lh, sh), suporte a variáveis sinalizadas e não-sinalizadas (lbu, lhu), suporte a constantes grandes (lui), modos de endereçamento Conjunto de instruções: Overflow aritmético e suporte para sua desabilitação (addu, addiu, subu). Instruções de multiplicação e divisão inteira sinalizadas (mult, div) ou não (multu, divu) . Instruções para sincronização (ll, sc) de programas concorrentes*. Subprogramação: Exercício sobre arranjos e ponteiros. Ferramentas de programação do sistema: montadores (labels, diretivas, macros, pseudo-instruções) Modelo de programação do sistema (PV do MIPS): Uso de memória: segmentos de dados, de código e pilha. Ferramentas de programação do sistema: Ligadores e carregadores. Subprogramação: Exercício sobre arranjos e ponteiros. Conjunto de instruções: Exemplo real de instruções ARM e x86. Processador: Estrutura de um datapath Processador: Comportamento de um datapath e de sua unidade de controle Subprogramação: Exercício sobre swapping e ordenação de arranjos. Aceleração: Pipeline (funcionamento, hazards estruturais e de dados) Aceleração: Pipeline (hazards de controle); datapath com pipeline (execução e controle de instruções). Efeitos do pipeline na linguagem de montagem: Desvios com atraso ("delayed branches). Otimizações para preencher o "delay slot". Aceleração: Pipeline avançado: previsão de desvios 90-105 122-136 87-93, 160-175, 190 109-110, 224* tópico não 227, 243; coberto 137-139 130-134 157-161 A10-A17 118-121, 106-108 139-142, A20-A22 B10-B17, 85-90 B20-B22 142-147, B18B19 130-134 134-143 284-300 157-161 161-164, 165173 300-318 300-318 121-129 318-330 370-379 379-384 384-402 330-339 339-363 382, 423-424 381-382 421-423 Aceleração: Pipeline avançado: ILP, speculation, multipleissue, IA-64 432-440 440-442 Programação de sistemas: Noções básicas de compiladores- 116-121 otimizadores. Aceleração: Pipeline avançado (dynamic-multiple issue); 442-447 exemplo real (o pipeline do Pentium 4). 448-450 468-479 Memória: Cache (localidade, mapeamento direto) Memória: Cache (mapeamento direto com blocos multipalavra) 479-491 492-504 Memória: Cache (desempenho, associatividade) Memória: Cache (Controlador baseado em máquina de estados finitos) não coberto não coberto Memória: Cache (coerência ) Exceções e interrupções: registradores de controle. Noções básicas sobre tratamento de exceções. A33-A37 Memória: impacto da cache no desempenho Memória: Cache (múltiplos níveis) Exceções e interrupções: Implementação de um tratador de exceções Memória: Noções de memória virtual e TLB 505-508 A33-A37 511-523 566-568 581-585 Entrada e saída: Dispositivos; barramentos e handshaking Entrada e saída: Comando de dispositivos; comunicação com 589-590 processador (polling, acionada por interrupção) 590-593 391-398 392-393, 398-406 450-463 463-474 475-487 529-534 534-538 B33-B37 456-470, 475-486 488-490 492-503 570-572 582-586 586-591