Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>INSTITUTO FEDERAL</p><p>Catarinense</p><p>Campus Videira</p><p>Arquitetura de Computadores</p><p>Introdução à arquitetura do processador e elementos para au-</p><p>mento de desempenho (e Pipeline)</p><p>Gerson Luiz Camillo</p><p>Junho 2019</p><p>Performance e Paralelismo</p><p>Fatores em desempenho computacional</p><p>Tempo de execução de um programa por um processador (CPU). Fatores:</p><p>Contagem de Instruções x CPI x Tempo do Ciclo de Clock</p><p>Contagem de Instruções: depende da ISA e do compilador.</p><p>Tempo do Ciclo de Clock : depende da implementação da arqui-</p><p>tetura da CPU. Quanto menor, mais tarefas uma arquitetura pode</p><p>executar. Depende da tecnologia de construção dos transistores.</p><p>[1993] P5 Pentium : 300 MHz : 600 nm</p><p>[2018] Core i7 8565U : 1,8 GHz até 4,6 GHz (1 núcleo) : 14 nm :</p><p>15 W : 4(8) cores</p><p>CPI (Ciclos de Clock por Instrução): depende da microarquite-</p><p>tura do processador.</p><p>Taxa MIPS: f x IPC</p><p>f: frequência e IPC: número de instruções executadas em um ciclo de</p><p>clock.</p><p>2</p><p>Melhorando o desempenho computacional</p><p>Melhorando performance através de paralelismo</p><p>Paralelismo é a força impulsionadora do projeto de computadores, tendo</p><p>como restrições o custo e energia.</p><p>- Pipelining</p><p>- Arquiteturas superescalares</p><p>- Hierarquia de memória (caches)</p><p>- Execução fora-de-ordem</p><p>- Predição de desvio (branch prediction)</p><p>- Análise de fluxo de dados pelos compiladores (data flow analysis)</p><p>- Execução especulativa (speculative execution)</p><p>- Arquiteturas com Simultaneous Multithreading (SMT/HT)</p><p>- Arquiteturas com multinúcleos</p><p>3</p><p>Classes de paralelismo</p><p>Dois tipos de paralelismos em aplicações:</p><p>Paralelismo em nível de dados (Data-Level Parallelism - DLP)</p><p>Paralelismo em nível de tarefas (Task-Level Parallelism – TLP)</p><p>O hardware pode explorar os dois em quatro modos principais:</p><p>- Paralelismo em nível de instrução: auxiliado pelo compilador e</p><p>por pipelining e execução especulativa</p><p>- Arquiteturas vetoriais e unidades de processador gráfico: exploram</p><p>o paralelismo em nível de dados</p><p>- Paralelismo a nível de thread explora o paralelismo em nível de</p><p>dados ou de tarefas em um modelo de hardware fortemente aco-</p><p>plado</p><p>- Paralelismo em nível de requisição explora o paralelismo entre</p><p>tarefas muito desacopladas especificadas pelo programador ou pelo</p><p>SO 4</p><p>Evolução das arquiteturas (e paradigmas)</p><p>Instrução -> Estágios (fases de um ciclo de instrução) -></p><p>Pipelining -> Superescalar -></p><p>Execução fora-de-ordem || Predição de desvio || Execução</p><p>especulativa -></p><p>HT/SMT (Hyper-threading/Simultaneous Multithreading) -></p><p>Multinúcleos</p><p>1 PC (program counter) -> vários PC</p><p>5</p><p>Tipos de arquiteturas</p><p>computacionais</p><p>Taxonomia de Flynn</p><p>Classificação das arquiteturas computacionais (1966):</p><p>6</p><p>Tipos de processamento</p><p>7</p><p>Tipos de organizações de processadores - Superescalar (arqui-</p><p>tetura conceitual)</p><p>8</p><p>Tipos de organizações de processadores - Superescalar</p><p>9</p><p>Tipos de organizações de processadores - Superescalar</p><p>10</p><p>Tipos de organizações de processadores - Simultaneous Mul-</p><p>tithreading</p><p>Tecnologia criada pela Sun: Simultaneous Multithreading (SMT)</p><p>Incluída nos processadores Intel em 2002 através do nome</p><p>Hyper-Threading.</p><p>11</p><p>Tipos de organizações de processadores - Multinúcleos</p><p>12</p><p>Tipos de organizações de processadores - Multinúcleos</p><p>13</p><p>CPUs - evolução</p><p>Single Core -> Simultaneous Multithreading (SMT/HT) -></p><p>Multi-core</p><p>14</p><p>Multiprocessamento: Symmetric Multiprocessing (SMP)</p><p>SMP (Shared Memory Multiprocessor): multiprocessadores de</p><p>memória compartilhada</p><p>15</p><p>Multiprocessamento: clusters</p><p>16</p><p>Microarquitetura Core da Intel</p><p>17</p><p>Microarquitetura Intel - Core</p><p>18</p><p>Microarquitetura Intel - Sunny Cove</p><p>19</p><p>CPUs - evolução</p><p>Single Core -> Simultaneous Multithreading (SMT/HT) -> Multi-core)</p><p>20</p><p>CPUs - evolução da exploração do paralelismo</p><p>Paralelismo em nível de instrução (ILP - Instruction Level Paralellism)</p><p>- Instruções podem ser avaliadas em paralelo</p><p>- Fases (pipeline) -> Unidades Dedicadas (superescalar)</p><p>- Pipelines com muitos níveis, pois quanto mais discretos, maior era a</p><p>possibilidade de aumentar a frequência de operação</p><p>- Paralelismo implícito</p><p>- Duas abordagens para explorar ILP: a) com ajuda do hardware</p><p>(dinamicamente) e b) com tecnologias de compilação (estaticamente)</p><p>- Limite do paralelismo ILP em hardware: aumento da dissipação</p><p>de potência</p><p>- Limite do paralelismo ILP baseado em compiladores: abordagens</p><p>não obtiveram sucesso fora da gama de aplicações científicas</p><p>(PATTERSON; HENNESSY, 2014)</p><p>21</p><p>CPUs - evolução da exploração do paralelismo</p><p>Para contornar o limite do paralelismo de ILP, foram surgindo</p><p>tecnologias baseadas em:</p><p>Paralelismo em nível de threads e dados (GPUs, engines gráficas)</p><p>- Paralelismo explícito: dados, threads e requisições</p><p>- Arquiteturas multiprocessadas (multinúcleos): opção para</p><p>os limites de ILP e potência</p><p>- Multinúcleos: solução que permite melhorar o desempenho</p><p>com a substituição de um núcleo ineficiente de alta taxa de</p><p>clock por diversos núcleos eficientes e com taxas de clock mais</p><p>baixa.</p><p>- Intel: entrega CPUs com ao menos 2 cores/CPU/geração</p><p>22</p><p>23</p><p>Referências</p><p>Referências I</p><p>PATTERSON, D. A.; HENNESSY, J. L. Arquitetura de</p><p>Computadores: Uma abordagem quantitativa. 5. ed. [S.l.]:</p><p>Elsevier, 2014.</p><p>24</p><p>Performance e Paralelismo</p><p>Tipos de arquiteturas computacionais</p>

Mais conteúdos dessa disciplina