Arquitetura de Computadores - Uma Aborda

Arquitetura de Computadores - Uma Aborda

(Parte 7 de 8)

Tendências de desempenho: largura de banda sobre latência Como veremos na Seção 1.8, largura de banda ou throughput é a quantidade total de trabalho feito em determinado tempo, como megabytes por segundo, para uma transferência de disco. Ao contrário, latência ou tempo de resposta é o tempo entre o início e o término de um evento, como milissegundos, para um acesso ao disco. A Figura 1.9 representa a melhoria relativa na largura de banda e a latência para os marcos da tecnologia de microprocessadores, memória, redes e discos. A Figura 1.10 descreve os exemplos e os marcos com mais detalhes.

O desempenho é o principal diferenciador para microprocessadores e redes, de modo que eles têm visto os maiores ganhos: 10.0-20.0X em largura de banda e 30-80X em latência. A capacidade geralmente é mais importante do que o desempenho para memória e discos, de modo que a capacidade melhorou mais, embora seus avanços de largura de banda de 300-1.200X ainda sejam muito maiores do que seus ganhos em latência de 6-8X.

FIGURA 1.9 Representação simples dos marcos de largura de banda e latência da Figura 1.10 em relação ao primeiro marco. Observe que a latência melhorou de 6X a 80X, enquanto a largura de banda melhorou cerca de 300X a 25.000X. Atualização de Patterson (2004).

FIGURA 1.10 Marcos de desempenho por 25-40 anos para microprocessadores, memória, redes e discos. Os marcos do microprocessador são várias gerações de processadores IA-32, variando desde um 80286 microcodificado com barramento de 16 bits até um Core i7 multicor, com execução fora de ordem, superpipelined. Os marcos de módulo de memória vão da DRAM plana de 16 bits de largura até a DRAM síncrona versão 3 com taxa de dados dupla com 64 bits de largura. As redes Ethernet avançaram de 10 Mb/s até 100 Gb/s. Os marcos de disco são baseados na velocidade de rotação, melhorando de 3.600 RPM até 15.0 RPM. Cada caso é a largura de banda no melhor caso, e a latência é o tempo para uma operação simples, presumindo-se que não haja disputa. Atualização de Patterson (2004).

Claramente, a largura de banda ultrapassou a latência por essas tecnologias e provavelmente continuará dessa forma. Uma regra prática simples é que a largura de banda cresce ao menos pelo quadrado da melhoria na latência. Os projetistas de computadores devem levar isso em conta para o planejamento.

Escala de desempenho de transistores e fios Os processos de circuito integrado são caracterizados pela característica de tamanho, que é o tamanho mínimo de um transistor ou de um fio na dimensão x ou y. Os tamanhos diminuíram de 10 m em 1971 para 0,0032 m em 2011; na verdade, trocamos as unidades, de modo que a produção em 2011 agora é referenciada como “32 nanômetros”, e chips de 2 nanômetros estão a caminho. Como a contagem de transistores por milímetro quadrado de silício é determinada pela superfície de um transistor, a densidade de transistores quadruplica com uma diminuição linear no tamanho do recurso.

Porém, o aumento no desempenho do transistor é mais complexo. À medida que os tamanhos diminuem, os dispositivos encolhem quadruplicadamente nas dimensões horizontal e vertical. O encolhimento na dimensão vertical requer uma redução na voltagem de operação para manter a operação e a confiabilidade dos transistores correta. Essa combinação de fatores de escala leva a um inter-relacionamento entre o desempenho do transistor e a carecterística de tamanho do processo. Para uma primeira aproximação, o desempenho do transistor melhora linearmente com a diminuição de seu tamanho.

O fato de a contagem de transistores melhorar em quatro vezes, com uma melhoria linear no desempenho do transistor, é tanto o desafio quanto a oportunidade para a qual os arquitetos de computadores foram criados! Nos primeiros dias dos microprocessadores, a taxa de melhoria mais alta na densidade era usada para passar rapidamente de microprocessadores de 4 bits para 8 bits, para 16 bits, para 32 bits, para 64 bits. Mais recentemente, as melhorias de densidade admitiram a introdução de múltiplos microprocessadores por chip, unidades SIMD maiores, além de muitas das inovações em execução especulativa e em caches encontradas nos Capítulos 2, 3, 4 e 5.

Embora os transistores geralmente melhorem em desempenho com a diminuição do tamanho, os fios em um circuito integrado não melhoram. Em particular, o atraso de sinal em um fio aumenta na proporção com o produto de sua resistência e de sua capacitância. Naturalmente, à medida que o tamanho diminui, os fios ficam mais curtos, mas a resistência e a capacitância por tamanho unitário pioram. Esse relacionamento é complexo, pois tanto a resistência quanto a capacitância dependem de aspectos detalhados do processo, da geometria de um fio, da carga sobre um fio e até mesmo da adjacência com outras estruturas. Existem aperfeiçoamentos ocasionais no processo, como a introdução de cobre, que oferecem melhorias de uma única vez no atraso do fio.

Porém, em geral, o atraso do fio não melhora muito em comparação com o desempenho do transistor, criando desafios adicionais para o projetista. Nos últimos anos, o atraso do fio tornou-se uma limitação de projeto importante para grandes circuitos integrados e normalmente é mais crítico do que o atraso do chaveamento do transistor. Frações cada vez maiores de ciclo de clock têm sido consumidas pelo atraso de propagação dos sinais nos fios.

1.5 TENDÊNCIAS NA ALIMENTAÇÃO DOS CIRCUITOS INTEGRADOS

Hoje, a energia é o segundo maior desafio enfrentado pelo projetista de computadores para praticamente todas as classes de computador. Primeiramente, a alimentação precisa

ser trazida e distribuída pelo chip, e os microprocessadores modernos utilizam centenas de pinos e várias camadas de interconexão apenas para alimentação e terra. Além disso, a energia é dissipada como calor e precisa ser removida.

Potência e energia: uma perspectiva de sistema Como um arquiteto de sistema ou um usuário devem pensar sobre o desempenho, a potência e a energia? Do ponto de vista de um projetista de sistema, existem três preocupações principais.

Em primeiro lugar, qual é a potência máxima que um processador pode exigir? Atender a essa demanda pode ser importante para garantir a operação correta. Por exemplo, se um processador tenta obter mais potência do que a fornecida por um sistema de alimentação (obtendo mais corrente do que o sistema pode fornecer), em geral o resultado é uma queda de tensão que pode fazer o dispositivo falhar. Processadores modernos podem variar muito em consumo de potência com altos picos de corrente. Portanto, eles fornecem métodos de indexação de tensão que permitem ao processador ficar mais lento e regular a tensão dentro de uma margem grande. Obviamente, fazer isso diminui o desempenho.

Em segundo lugar, qual é o consumo de potência sustentado? Essa métrica é amplamente chamada projeto térmico de potência (Thermal Design Power — TDP), uma vez que determina o requisito de resfriamento. O TDP não é nem potência de pico, em alguns momentos cerca de 1,5 vez maior, nem a potência média real que será consumida durante um dado cálculo, que provavelmente será ainda menor. Geralmente, uma fonte de alimentação típica é projetada para atender ou exceder o TDP. Não proporcionar resfriamento adequado vai permitir à temperatura de junção no processador exceder seu valor máximo, resultando em uma falha no dispositivo, possivelmente com danos permanentes. Os processadores modernos fornecem dois recursos para ajudar a gerenciar o calor, uma vez que a potência máxima (e, portanto, o calor e o aumento de temperatura) pode exceder, a longo prazo, a média especificada pela TDP. Primeiro, conforme a temperatura se aproxima do limite de temperatura de junção, os circuitos reduzem a taxa de clock, reduzindo também a potência. Se essa técnica não tiver sucesso, um segundo protetor de sobrecarga é ativado para desativar o chip.

O terceiro fator que os projetistas e usuários devem considerar é a energia e a eficiência energética. Lembre-se de que potência é simplesmente energia por unidade de tempo: 1 watt = 1 joule por segundo. Qual é a métrica correta para comparar processadores: energia ou potência? Em geral, a energia é sempre uma métrica melhor, porque está ligada a uma tarefa específica e ao tempo necessário para ela. Em particular, a energia para executar uma carga de trabalho é igual à potência média vezes o tempo de execução para a carga de trabalho.

Assim, se quisermos saber qual dentre dois processadores é mais eficiente para uma dada tarefa, devemos comparar o consumo de energia (não a potência) para realizá-la. Por exemplo, o processador A pode ter um consumo de potência médio 20% maior do que o processador B, mas se A executar a tarefa em apenas 70% do tempo necessário para B, seu consumo de energia será 1,2 × 0,7 = 0,84, que é obviamente melhor.

Pode-se argumentar que, em um grande servidor ou em uma nuvem, é suficiente considerar a potência média, uma vez que muitas vezes se supõe que a carga de trabalho seja infinita, mas isso é equivocado. Se nossa nuvem fosse ocupada por processadores B em vez de processadores A, faria menos trabalho pela mesma quantidade de energia gasta. Usar a energia para comparar as alternativas evita essa armadilha. Seja uma carga de trabalho fixa, uma nuvem warehouse-scale, seja um smartphone, comparar a energia será o modo correto de comparar alternativas de processador, já que tanto a conta de eletricidade para

a nuvem quanto o tempo de vida da bateria para o smartphone são determinados pela energia consumida.

Quando o consumo de potência é uma medida útil? O uso primário legítimo é como uma restrição; por exemplo, um chip pode ser limitado a 100 watts. Isso pode ser usado como métrica se a carga de trabalho for fixa, mas então é só uma variação da verdadeira métrica de energia por tarefa.

Energia e potência dentro de um microprocessador Para os chips de CMOS, o consumo de energia dominante tradicional tem ocorrido no chaveamento de transistores, também chamada energia dinâmica. A energia exigida por transistor é proporcional ao produto da capacitância de carga do transistor ao quadrado da voltagem:

EnergiaC argacapacitiva Voltagem2∝×

Energia1 /2 CargacapacitivaV oltagem2∝×

A potência necessária por transistor é somente o produto da energia de uma transição multiplicada pela frequência das transições:

Potência1 /2 CargacapacitivaV oltagemF requênciadechaveamento2∝× ×

Para uma tarefa fixa, reduzir a taxa de clock reduz a potência, mas não a energia.

Obviamente, a potência dinâmica e a energia são muito reduzidas quando se reduz a voltagem, por isso as voltagens caíram de 5V para pouco menos de 1V em 20 anos. A carga capacitiva é uma função do número de transistores conectados a uma saída e à tecnologia, que determina a capacitância dos fios e transistores.

ExemploHoje, alguns microprocessadores são projetados para ter voltagem ajustável, de modo que uma redução de 15% na voltagem pode resultar em uma redução de 15% na frequência. Qual seria o impacto sobre a energia dinâmica e a potência dinâmica?

RespostaComo a capacitância é inalterada, a resposta para a energia é a razão das voltagens, uma vez que a capacitância não muda:

Energia

Energia

Voltagem reduzindo assim a potência para cerca de 72% da original. Para a potência, adicionamos a taxa das frequências

Energia

Energia

0,72 (Frequênciadechaveamento 0,85)

Frequênciadechaveamento reduzindo a potência para cerca de 61% do original.

Ao passarmos de um processo para outro, o aumento no número de transistores chaveados e a frequência com que eles chaveiam dominam a diminuição na capacitância de carga e voltagem, levando a um crescimento geral no consumo de potência e energia. Os primeiros microprocessadores consumiam menos de 1 watt, e os primeiros microprocessadores de 32 bits (como o Intel 80386) usavam cerca de 2 watts, enquanto um Intel Core i7 de 3,3 GHz consome 130 watts. Visto que esse calor precisa ser dissipado de um chip com cerca de 1,5 cm em um lado, estamos alcançando os limites do que pode ser resfriado pelo ar.

Dada a equação anterior, você poderia esperar que o crescimento da frequência de clock diminuísse se não pudéssemos reduzir a voltagem ou aumentar a potência por chip. A Figura 1.1 mostra que esse é, de fato, o caso desde 2003, mesmo para os microprocessadores que tiveram os melhores desempenhos a cada ano. Observe que esse período de taxas constantes de clock corresponde ao período de baixa melhoria de desempenho na Figura 1.1.

Distribuir a potência, retirar o calor e impedir pontos quentes têm tornado-se desafios cada vez mais difíceis. A potência agora é a principal limitação para o uso de transistores; no passado, era a área bruta do silício. Portanto, os microprocessadores modernos oferecem muitas técnicas para tentar melhorar a eficiência energética, apesar das taxas de clock e tensões de alimentação constantes:

1. Não fazer nada bem. A maioria dos microprocessadores de hoje desliga o clock de módulos inativos para economizar energia e potência dinâmica. Por exemplo, se nenhuma instrução de ponto flutuante estiver sendo executada, o clock da unidade de ponto flutuante será desativado. Se alguns núcleos estiverem inativos, seus clocks serão interrompidos. 2. Escalamento dinâmico de voltagem-frequência (Dynamic Voltage-Frequency Scaling —

DVFS). A segunda técnica vem diretamente das fórmulas anteriores. Dispositivos pessoais móveis, laptops e, até mesmo, servidores têm períodos de baixa atividade, em que não há necessidade de operar em frequências de clock e voltagens mais elevadas. Os microprocessadores modernos costumam oferecer algumas frequências

FIGURA 1.1 Crescimento na taxa de clock dos microprocessadores na Figura 1.1. Entre 1978 e 1986, a taxa de clock aumentou menos de 15% por ano, enquanto o desempenho aumentou em 25% por ano. Durante o “período de renascimento” de 52% de melhoria de desempenho por ano entre 1986 e 2003, as taxas de clock aumentaram em quase 40% por ano. Desde então, a taxa de clock tem sido praticamente a mesma, crescendo menos de 1% por ano, enquanto o desempenho de processador único melhorou menos de 2% por ano.

de clock e voltagens que usam menor potência e energia. A Figura 1.12 mostra as economias potenciais de potência através de DVFS para um servidor, conforme a carga de trabalho diminui para três diferentes taxas de clock: 2,4 GHz, 1,8 GHz e 1 GHz. A economia geral de potência no servidor é de cerca de 10-15% para cada um dos dois passos. 3. Projeto para um caso típico. Dado que os PMDs e laptops muitas vezes estão inativos, a memória e o armazenamento oferecem modos de baixa potência para poupar energia. Por exemplo, DRAMs têm uma série de modos de potência cada vez menores para aumentar a vida da bateria em PMDs e laptops, e há propostas de discos que têm um modo de girar a taxas menores quando inativos, para poupar energia. Infelizmente, você não pode acessar DRAMs ou discos nesses modos, então deve retornar a um modo totalmente ativo para ler ou gravar, não importa quão baixa seja a taxa de acesso. Como mencionado, os microprocessadores para PCs, ao contrário, foram projetados para um caso mais típico de uso pesado a altas temperaturas de operação, dependendo dos sensores de temperatura no chip para detectar quando a atividade deve ser automaticamente reduzida para evitar sobreaquecimento. Essa “redução de velocidade de emergência” permite aos fabricantes projetar para um caso mais típico e, então, depender desse mecanismo de segurança se alguém realmente executar programas que consumam muito mais potência do que é típico. 4. Overclocking. Em 2008, a Intel começou a oferecer o modo Turbo, em que o chip decide que é seguro rodar a uma taxa maior de clock por um curto período, possivelmente em alguns poucos núcleos, até que a temperatura comece a subir. Por exemplo, o Core i7 de 3,3 GHz pode rodar em explosões curtas a 3,6 GHz. De fato, todos os microprocessadores de maior desempenho a cada ano desde 2008, indicados na Figura 1.1, ofereceram overclocking temporário de cerca de 10% acima da taxa de clock nominal. Para código de thread único, esses microprocessadores podem desligar todos os núcleos, com exceção de um, e rodá-lo a uma taxa de clock ainda maior. Observe que, enquanto o sistema operacional pode desligar o modo Turbo, não há notificação, uma vez que ele seja habilitado. Assim, os programadores podem se surpreender ao ver que seus programas variam em desempenho devido à temperatura ambiente!

(Parte 7 de 8)

Comentários