Sistemas Embarcados - Evoluções do PC Instituto Federal de Pernambuco Coordenação de Informática/IFPE Anderson L. S. Moreira [email protected] Sistemas Embarcados Direitos de Licença Attribution – ShareAlike 3.0 Você é livre para Copiar, distribuir, mostrar, e adaptar o trabalho Para fazer trabalhos derivados Para fazer uso comercial do trabalho Seguindo certas condições Atribuição. Você deve dar os devidos créditos ao autor original. Compartilhar. Se você altera, transformar ou construir em cima deste trabalho, você deverá distribuir o trabalho resultante somente sobre uma licença idêntica a está. Para qualquer reuso ou distribuição, você deve deixar claro aos outros os termos de licença deste trabalho. Qualquer destas condições podem ser modificadas se você tiver permissão do autor original. Se uso e outros direitos não são afetados pelas regras acima. License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode 20 de abril de 2015 [email protected] 2 Sistemas Embarcados Como funciona? Ex.: ao clicar num programa... Controlador de memória Antigamente era feito pela CPU –PIO (programmed I/O) Atualmente é via DMA (ou bus mastering) (na Ponte sul) 20 de abril de 2015 [email protected] 3 Sistemas Embarcados Clock Um clock é um dispositivo especial em que a saída alterna continuamente entre 0 e 1. O tempo manipulado pelo clock torna o valor 1 para 0 e de volta para 1, isso é chamado de período de clock, ou ciclo de tempo do clock. A frequencia do clock é o inverso do período. A unidade de medida da frequencia é o hertz. 20 de abril de 2015 [email protected] 4 Sistemas Embarcados Clock Cristal de Quartzo 20 de abril de 2015 Conversor Analógico Digital [email protected] 5 Sistemas Embarcados Clock 20 de abril de 2015 [email protected] 6 Sistemas Embarcados Clock Clocks são geralmente usados para sincronizar circuitos. • Ele gera um padrão previsível e repetitivo, de 0s e 1s que pode disparar certos eventos em um circuito, como escrita na memória. • Se vários circuitos compartilhar o mesmo sinal de clock, devem sincronizar suas atuações respeitando o funcionamento de um e de outro. • É similar como os humanos usam relógios para sincronização. 20 de abril de 2015 [email protected] 7 Sistemas Embarcados Clock No computador todas as temporizações são feitas em termos de clock. Ex.: Uma RAM com latência 5 significa que irá demorar 5 ciclos de clock para iniciar a enviar os dados; Dentro da CPU, qualquer instrução demora uma certa quantidade de ciclos de clock para ser totalmente executada. A CPU sabe quantos ciclos de clock cada instrução gasta 20 de abril de 2015 [email protected] 8 Sistemas Embarcados Qual é a relação entre clock e desempenho? Cuidado – Frequência de clock não serve para medir desempenho. Exceto se as duas CPUs em comparação forem idênticas, porém rodando em frequências diferentes. Numa frequência maior o período do clock é menor – lembra que F=1/T? Sendo menor o ciclo de clock, tudo terá que ser executado mais rápido = maior desempenho (nem sempre) Suponha que o processador ”A“ gasta 7 ciclos para executar uma dada instrução. E o processador ”B“ gasta 5 ciclos para a mesma instrução. Se ambos estiverem na mesma frequência de clock, o “B” será o mais veloz. 20 de abril de 2015 [email protected] 9 Sistemas Embarcados Qual é a relação entre clock e desempenho? É comum medir o desempenho em termos de quantidade de operações executadas por segundo. Existe uma padronização em termos do tipo de operação – Ponto Flutuante (FLOPs – Flutuant Operations) Existe distinção em ponto flutuante de precisão simples e de precisão dupla. Ex.: Xeon PHI -SE10P/X-61C, 1.1GHz = 2.147 GF/s em precisão simples e 1.074 GF/s precisão dupla. 20 de abril de 2015 [email protected] 10 Sistemas Embarcados Clock interno e externo É comum a CPU funcionar numa frequência de clock e o restante do sistema em outro(s). Clock Externo Fabricantes usam a idéia de multiplicação de clock (iniciou com o 486 DX2). A CPU possui um clock externo usado na transferência de dados com a RAM via Ponte Norte. É um clock interno. Ex.: Pentium 4 3.4 GHz – esse ”3.4GHz“ interno = 17 x 200 MHz (clock externo). 20 de abril de 2015 [email protected] é o clock 11 Sistemas Embarcados Velocidade de transferência 20 de abril de 2015 [email protected] 12 Sistemas Embarcados Velocidade de transferência Essa grande diferença entre os clocks interno e externo é um grande impecilho para o desempenho. Ex.: Pentium 4 3.4 GHz precisa reduzir sua velocidade 17x para ler dados da RAM. Durante esse processo ele funciona como se fosse uma CPU de 200 MHz. Para minimizar o impacto dessa redução: • • Memória cache dentro da CPU Transferir mais porções de dados por clock – a Intel transfere 4 porções por clock – Quad Data Rate (QDR) 20 de abril de 2015 [email protected] 13 Sistemas Embarcados Velocidade de transferência O Caminho de dados entre a RAM e CPU é de 64 bits (128 bits – usando dual channel) – funcionando na frequência de clock externo. Taxa de transferência = qtde de bits x clock /8 MB/s. Ex.: sistema com DRAM DDR400 em single channel (64 bits) = taxa de transf. = 3,200 MB/s, Com dual channel (128 bits) = 6,400 MB/s 20 de abril de 2015 [email protected] 14 Sistemas Embarcados Velocidade de transferência Taxa de execução de Instrução – Um processador é controlado por um clock com uma frequência constante f ou, de modo equivalente, um tempo de ciclo T. Definimos como Ic número de instruções de máquinas executadas para esse programa até que ele rode até o fim. Um parâmetro importante é a média de ciclos por instruções (CPI) ∑ CPI = n i =1 (CPI i × I i ) IC CPIi número de ciclos exigidos para a instrução i, Ii seja o número de instruções executadas do tipo i. 20 de abril de 2015 [email protected] 15 Sistemas Embarcados Velocidade de transferência O tempo do processador T necessário para executar determinado programa pode ser expresso como: T = I c × CPI × P 20 de abril de 2015 [email protected] 16 Sistemas Embarcados Velocidade de transferência Dual-, triple e quad-channel são técnicas para dobrar, triplicar e quadruplicar a velocidade de comunicação entre a o controlador de memória e a RAM. Como a RAM é ligada ao sistema? • É controlada por um circuito chamado controlador de memória. • Atualmente, este está embutido no chip do processador. Assim, a CPU tem um barramento dedicado com a RAM. CPUs mais antigas – o controlador se encontra no chipset da placa mãe (ponte norte). 20 de abril de 2015 [email protected] 17 Sistemas Embarcados Atual 20 de abril de 2015 [email protected] 18 Sistemas Embarcados Mais antigo 20 de abril de 2015 [email protected] 19 Sistemas Embarcados Velocidade de transferência A RAM é conectada ao controlador através de uma série de fios chamados de barramento de memória (dados, endereços e controle). Um dos sinais que trafega pelas linhas de controle é o sinal de clock. O controlador de memória define as taxas de clock, capacidade máxima por módulo, capacidade total e tipos (DDR, DDR2…) que o sistema pode aceitar. • Ex.: se o controlador de memória suporta apenas DDR3 até 1333 MHz, não há como instalar DDR2 ou usar DDR3 com frequência superior esperando obter maior desempenho (exceto se a cpu oferecer essa opção). 20 de abril de 2015 [email protected] 20 Sistemas Embarcados QDR – Quad Data Rate DDR – transmissão na borda de subida e de descida QDR = DDR + transmissão no ponto médio entre essas bordas. O ponto médio é obtido através de um 2º clock defasado de 90º (vermelho) em suas bordas de subida e descida. Usado desde o Pentium 4 Willamette 20 de abril de 2015 [email protected] 21 Sistemas Embarcados QDR – Quad Data Rate Suponha um clock externo (FSB) real 266,6 MHz. Ao usar o QDR , a transferência de dados alcançada é comparável a de um clock de 1066MHz. • (O vendedor irá informar que o barramento é 1066MHz) A Memória SDRAM DDRx ideal para essa frequência é 533MHz, cujo dobramento da taxa (DDR) simula os 1066MHz do barramento do sistema. • (O vendedor irá informar que a memória é 1066MHz) 20 de abril de 2015 [email protected] 22 Sistemas Embarcados Exemplo KABUM Módulo de memória SDRAM DIMM PC3-8500 com capacidade de 4GB, tecnologia DDR3 (240 vias), frequência de 1066MHz. Fabricado pela Kingston, da linha ValueRAM, adequado para computadores convencionais, tipo desktop. JDEC (Joint Electron Device Engineering Council) Nome padrão Clock de memória Tempo de ciclo Velocidade de clock Taxa de dados Nome do módul DDR31066 133 MHz 7.5 ns 533 MHz 1066 MT/s PC3-8500 8500MB/s = 64bits x 533 /8 = 4264MB/s x 2 (DDR) =8528MB/s 64x1066/8=8528 20 de abril de 2015 [email protected] 23 Sistemas Embarcados Exercício 20 de abril de 2015 [email protected] 24 Sistemas Embarcados Exercícios Exemplo da loja Adorama: Um pente de memória da Crucial Technology 8GB 204-pin SODIMM DDR3 PC3-10600 com velocidade de 1333 MHz para Mac. Qual a velocidade de clock externo para “conversar” com essa memória? 20 de abril de 2015 [email protected] 25 Sistemas Embarcados Blocos de Memória Blocos básicos de uma CPU moderna O caminho entre RAM e CPU costuma ser de 64 bits (ou 128 em dual channel). Este funciona no clock de memória ou no clock externo da CPU. Todos os circuitos dentro da Cpu funcionam com clock interno. O caminho interno pode ser mais largo > 128 bits. Ex.: L2-L1 = 256 bits. 20 de abril de 2015 [email protected] 26 Sistemas Embarcados EVOLUÇÃO DAS PLACAS-MÃE (CHIPSET) 20 de abril de 2015 [email protected] 27 Sistemas Embarcados Modelos 20 de abril de 2015 [email protected] 28 Sistemas Embarcados Modelos 20 de abril de 2015 [email protected] 29 Sistemas Embarcados Pontes Ponte Norte – MCH (Memory Controller Hub) • É conectado diretamente à CPU e pode ter as seguintes funções básicas: • Controlador de Memória • Controlador de PCI-express • Controlador de AGP • Interface para transferência de dados com o chip Ponte Sul • Atualmente, as CPUs Intel integram o controlador de memória e o controlador de PCI-express – Isto é, a ponte norte foi sugada para dentro do chip da CPU. 20 de abril de 2015 [email protected] 30 Sistemas Embarcados Funções da ponte norte 20 de abril de 2015 [email protected] 31 Sistemas Embarcados Atual ponte norte Processadores Intel – atualmente têm a ponte norte integrada em seu chip. 20 de abril de 2015 [email protected] 32 Sistemas Embarcados Ponte Sul – ICH (I/O Controller Hub) É conectada à ponte norte ou à CPU (no caso de cpus intel atuais) Sua função é controlar os dispositivos de E/S e dispositivos On-board, tais como: • • • • • • • • • • • Storage ports (Parallel and Serial ATA ports) USB ports On-board audio On-board LAN PCI bus PCI Express lanes Real time clock (RTC) CMOS memory Interrupt controller DMA controller ISA slots em placas antigas 20 de abril de 2015 [email protected] 33 Sistemas Embarcados Ponte sul 20 de abril de 2015 [email protected] 34 Sistemas Embarcados Conexões entre as pontes Inicialmente era feita através do barramento PCI Problema - Largura de banda disponível para o PCI (132 MB/s) compartilhada entre todos os dispositivos PCI no sistema e todos os dispositivos pendurados na ponte sul – especialmente HDs 20 de abril de 2015 [email protected] 35 Sistemas Embarcados Conexões entre as pontes Placas de video mais poderosas (PCI) + HDs de alto desempenho = Gargalo Uma solução = AGP (Accelerated Graphics Port)“Barramento” (porta) ligado diretamente à ponte norte = tirou o video do PCI = bom desempenho mantido. Solução final = conexão dedicada de alta velocidade entre as pontes + conexão do PCI à ponte sul PCI Express lanes podem estar disponíveis tanto na ponte norte quanto ponte sul. As PCI Express lanes da ponte norte costumam ser usadas para placas de video. 20 de abril de 2015 [email protected] 36 Sistemas Embarcados Conexões entre as pontes 20 de abril de 2015 [email protected] 37 Sistemas Embarcados Conexões entre as pontes Os primeiros chipset Intel tinham um canal dedicado de 266 MB/s – half-duplex – pontes não podiam falar ao mesmo tempo Atualmente, a Intel usa uma conexão dedicada DMI (Direct Media Interface) – conceito semelhante ao PCI Express – lanes (faixas) usando comunicação serial com canais separados para transmissão e recepção (full-duplex ). Na AMD é usado o A-Link. 20 de abril de 2015 [email protected] 38 Sistemas Embarcados ANÁLISE OPERACIONAL 20 de abril de 2015 [email protected] 39 Sistemas Embarcados Análise Operacional Análise de uso de determinados recursos de máquina; Aplicável principalmente em CPU; Pode ser usada em outras medições, cálculo de estimativa de rede; 20 de abril de 2015 [email protected] 40 Sistemas Embarcados Análise Operacional • Variáveis operacionais para um determinado sistema (S) – T: Período de observação – K: Número de recursos do sistema – Bi: Tempo de ocupação do recurso i no período T. – Ai: Número total de solicitações (ex:.chegadas) do recurso i no período T. – A0: Número total de solicitações (ex:.chegadas) ao sistema no período T. – Ci: Número total de serviços finalizados pelo recurso i no período T. – C0: Número total de serviços finalizados pelo sistema no período T. 20 de abril de 2015 [email protected] 41 Sistemas Embarcados Análise Operacional S A0 K1 K4 K2 K5 K3 C0 Kn T 20 de abril de 2015 [email protected] 42 Sistemas Embarcados Análise Operacional • Métricas derivadas (derived measures) – Si: Tempo médio de serviço por finalização relativa ao recurso i; Si = Bi/Ci – Xi: throughput (ex.: finalizações por unidade de tempo) do recurso i; Xi = Ci/T – ʎi: taxa de chegada (ex.: chegadas por unidade de tempo) ao recurso i; ʎi = Ai/T – X0: throughput do sistema; X = C0/T – Vi: Número médio de visitas ao recurso i por 0 solicitação; Vi = Ci/C0 20 de abril de 2015 [email protected] 43 Sistemas Embarcados Análise Operacional • Leis Operacionais (derived measures) 20 de abril de 2015 [email protected] 44 Sistemas Embarcados Análise Operacional • Exercícios resolvidos – Suponha que ao se monitorar uma processador por um período de 1 min, verificou-se que o recurso esteve ocupado por 36s. O número total de transações que chegaram ao sistema é 1800. O sistema também finalizou a execução de 1800 transações no mesmo período. • • • • 20 de abril de 2015 1. Qual a taxa de chegada ao sistema (ʎ0)? 2. Qual é o throughput do sistema (X0)? 3. Qual é a utilização da CPU(UCPU)? 4. Qual é o tempo médio por transações finalizadas pelo sistema (S0)? [email protected] 45 Sistemas Embarcados Análise Operacional CPU: UCPU = BCPU/T = 36/60 = 0,6 = 60% • T = 1 min • A = 1800 transações • C = 1800 transações • B = 36 s S0 = Si = BCPU / CCPU = 36/1800 = 0,02 s 0 0 Obs.: Considerando CPU S0 = Si = SCPU U0 = Ui = UCPU K=1 •A •B = A1 0 = B1 ʎ0 = ʎ1 = 1800/60 = 30 trs/s X0 = X1 = 1800/60 = 30 trs/s 0 • • 20 de abril de 2015 ʎ0 = ʎi = ʎCPU X0 = X1 = XCPU [email protected] 46 Sistemas Embarcados Exercícios – Suponha que ao se monitorar uma processador por um período de 3 min, verificou-se que o recurso geral esteve ocioso por 12,3 s. O número total de transações que chegaram ao sistema do barramento de dados é 6200. O sistema finalizou a execução de 4600 transações no mesmo período em um sistema multicore de 4 threads. • • • • • 20 de abril de 2015 1. Qual a taxa de chegada ao sistema (ʎ0)? 2. Qual é o throughput do sistema (X0)? 3. Qual é a utilização da CPU(UCPU)? 4. Qual é o tempo médio por transações finalizadas pelo sistema (S0)? 5. Qual a Vi de uma transação considerando que todas as threads tiveram rendimentos iguais? [email protected] 47 Sistemas Embarcados Análise Operacional • A banda passante de um link de comunicação é 56000 bps. Pacotes de 1500 bytes são transmitidos ao link a uma taxa de 3 pacotes por segundo. Qual é a utilização do link? • Para ilustrar o conceito de Service Demand considere o caso em que 6 transações fazem 3 acessos (cada uma) a uma unidade de disco. Os tempos de cada acesso são apresentados em ms. • Qual a Service Demand do sistema? 20 de abril de 2015 [email protected] 48 Sistemas Embarcados Análise Operacional • Considere que um Web Server foi monitorado por 10 min e que a CPU esteve ocupada por 90%. O log do Web Server registrou 30.000 solicitações processadas. Qual é a CPU Service Demand (DCPU) relativa as solicitações ao Web Server? • Procure informações sobre a Arquitetura do Pentium: – Operações em paralelo; – Cache; – BTB – Branch Target Buffer; – FPU; – Otimização; 20 de abril de 2015 [email protected] 49 Sistemas Embarcados Exercícios Suponha um departamento composto por cinco recursos (pessoas: R1, R2, R3 e R4). Esse departamento foi monitorado por um período de 6 horas. Verificou-se que R1 esteve ocupado por 4h25min, R2 por 4h5min, R3 por 5h15min e R4 por 3h56min. O número total de transações que chegaram ao departamento foram 96. O sistema também finalizou a execução de 96 transações no mesmo período. O número total de chegadas a cada recurso e as respectivas finalizações são A1= C1=60, A2= C2=110, A3= C3=100 e A4= C4=55. 1. Qual a taxa de chegada ao sistema (ʎ0)? 2. Qual é o throughput do sistema (X0)? 3. Qual é a utilização de cada recurso (Ui)? 4. Qual é o tempo médio por transações finalizadas por cada recurso do sistema (Si)? 5. Qual é o número médio de visitas por recurso (Vi)? 6. Qual é tempo médio de uma transação qualquer (não necessariamente a que visitou o recurso i) no recurso i (Di)? 20 de abril de 2015 [email protected] 50 Sistemas Embarcados Análise Operacional • • • Sistemas Embarcados Pessoais, Raul Weber, 2ª edição; Sistemas Embarcados, Andrew S. Tannembaum, 8ª edição; Fundamentos de Sistemas Embarcados, Saib e Weber, 4ª edição; 20 de abril de 2015 [email protected] 51 Sistemas Embarcados Dúvidas? 20 de abril de 2015 [email protected] 52 Sistemas Embarcados - Evoluções do PC Instituto Federal de Pernambuco Coordenação de Informática/IFPE Anderson L. S. Moreira [email protected]