Ntas de Aula Guilherme Sipahi Arquitetura de Cmputadres Arquitetura de Cmputadres Mderns Passs da execuçã de um prgrama: 1. Fetch (busca) da nva instruçã da memória p/ registr. 2. PC (prgram cunter) apnta p/ nva instruçã. 3. Determinaçã d tip de instruçã buscada em (1.) 4. Se a instruçã usa uma palavra da memória, determinar ande ela está 5. Se necessári, buscar a palavra na memória 6. Executar a instruçã 7. Vltar p/ 1. - Esses passs dependem da linguagem de máquina d prcessadr. Esta linguagem pde ser implementada diretamente via "hardware" (cmpnentes eletrônics) u via prgrama chamad interpretadr que transfrma essas instruções em um cnjunt de instruções em um cnjunt de instruções mais simples que pdem ser executadas pr um 'hardware' mais simples de ser cnstruíd. - Instruções mais lngas sã mais "caras" para serem implementadas n hardware, prém quand implementadas prvêm ganhs de perfrmance: Busca de cnjunts mais pderss, e mais cmplexs, de instruções. instruções específicas p/ pnt flutuante suprte diret a acess de elements de matrizes uma única instruçã timizada para substituir cnjunts de instruções que aparecem sempre em sequência. - O cust para implementar via hardware estas instruções é alt, justificável apenas p/ high perfrmance cmputer. - O cust de manter cmputadres c/ cnjunts de instruções diferentes também é "alt". Prgramas para um cmputadr nã rdam em utr. Saída: Família de Prcessadres High-End: instruções pr hardware (cnjunt cmplet) Lw-End: interpretadr p/ transfrmar cnjunt cmplet de instruções em instruções mais simples p/ um hardware mais simples. - IBM intrduz term "Arquitetura" p/ descrever este nível de cmpatibilidade. - Vantagens d cmputadr cm instruções interpretadas: Habilidade p/ crrigir instruções incrretamente implementadas, u ainda, para mascarar deficiência de design n hardware básic. Pssibilidade de incluir nvas instruções a um cust mínim, mesm depis da entrega d cmputadr. Design estruturad permite desenvlviment, teste e dcumentaçã eficientes das instruções cmplexas.
- Ns ans 70 praticamente tds s cmputadres eram interpretads. - High end: DEC VAX - várias centenas de instruções - Lw end: 780, Mtrla 6800 (prcessadres de 8 bits cm instruções interpretadas. - Detalhes técnics favreciam também a interpretaçã: Cntrl stres - ROM's rápidas usadas p/ armazenar as micrinstruções. - Um mtrla 6800 interpretava 1 micrinstruções em 100 ns, e uma instruçã típica tinha 10 micrinstruções. Já acess à memória durava 500 ns. Execuçã direta: 1 μs (1 MHz) Execuçã interpretada: 2 μs (ba relaçã cust benefíci) Execuçã de 10 micrinstruções: 6 μs RISC x CISC 1980 - Berkeley: Pattersn e Sequin - RISC (SPARC) 1981 - Stanfrd: Hennessy - MIPS (MIPS) - Em fase inicial: instruções simples p/ serem executadas rapidamente. - Transfrmu-se em: prjetar instruções que pderiam ser iniciadas rapidamente. "Quã lnga é uma instruçã é um fatr mens imprtante d que quantas instruções pdem ser iniciadas pr segund." Primeiras máquinas RISC X CISC na épca (VAX) 50 instruções 200-300 instruções RISC - Reduced Instructin Set Cmputer CISC - Cmplex Instructin Set Cmputer - Se uma instruçã RISC fr 10 vezes mais rápidas que uma CISC e cinc instruções RISC fizerem uma CISC, entã RISC tem melhr desempenh. Pr que nã tems hje apenas máquinas RISC? - Cmpatibilidade cm prgramas p/ máquinas CISC anterires (Intel) - Núcle RISC de nvs prcessadres Intel (486 em diante). Interpreta apenas instruções mens cmuns (mais cmplexas).
Princípis de design (prjet) para Cmputadres Mderns: - Tdas as instruções sã executadas pel hardware Se cmputadr implementar instruções CISC, estas serã quebradas em partes separadas e entã executadas cm uma sequência de micrinstruções. O pass de quebra de instruçã CISC em instruções RISC diminui a perfrmance, mas para instruções mens frequentes pde ser aceitável. - As instruções devem ser fáceis de decdificar Um limite crític na taxa de instruções iniciadas é a decdificaçã das instruções individuais e a determinaçã ds recurss que elas necessitam. Trnar as instruções regulares, fixar seus tamanhs e reduzir númer de camps. Quant mens frmats existirem melhr. - Smente LOADS e STORES devem referenciar a memória Uma das mais simples maneiras de quebrar perações em passs mais simples é carregar e descarregar s perands de registrs, deixand as perações entre registr e a memória para serem executadas em passs separads. Operações entre a memória e s registrs pdem entã ser executadas enquant utras perações sã executadas. - Existência de um grande númer de registrs Manter s dads ns registrs é uma maneira de evitar a demra na busca desses dads na memória.
Paralelism - Aumentar a velcidade d relógi é apenas uma maneira de melhrar a perfrmance. Além dist, implica em busca de tecnlgia de execuçã e em limites físics para cada geraçã de nvas tecnlgias. - Paralelism, u executar mais de uma instruçã pr vez, é uma maneira de garantir velcidade sem necessariamente aumentar a velcidade d relógi. - O paralelism n design de cmputadres apresenta-se em duas frmas gerais: Paralelism a nível de instruçã Paralelism a nível de prcessadres Paralelism a nível de Instruções Prefetch buffer (IBM - 1959) - buscava as instruções na memória antes de serem necessárias e armazenava num buffer (registr). Dividia a execuçã em dis passs: busca e execuçã. Pipeline vai mais além: divide a execuçã da instruçã em várias partes, cada uma cmandada pr uma parte dedicada d hardware, pssibilitand suas execuções em paralel. Cicl de execuçã cm 4 passs (ArsTechnica) Pipeline (linha de mntagem) (ArsTechnica) - 10 passs num pipeline, 1 instruçã 10 x unidades de relógi - 100 instruções a serem executadas, 110 unidades de relógi - diminuind a latência (a instruçã talvez pudesse ser executada num temp melhr). - aumentand a largura de banda (muit mais instruções pr unidade de temp). Pipeline de 8 passs (ArsTechnica)
Arquitetura Superescalar - Dupl Pipeline: uma instruçã de fetch busca um par de instruções executadas em paralel. As duas instruções nã devem cnflitar na busca de recurss. (Fig. 2.5) 486 usava 1 pipeline Pentium 2 pipelines: 1 para qualquer instruçã (u pipeline) e para instruções inteirs simples, e um de flating pint (v pipeline). Regras cmplexas definiam us ds dis pipelines: se as 2ª instruções nã eram infinitamente simples para ser executadas n 2º pipeline, ela era alinhada cm a próxima instruçã e aí executada. Prgramas cm númers inteirs cmpilads especialmente para Pentium rdavam em até metade d temp d mesm prgrama cmpilad para um 486 de mesm clck. Pipeline Superescalar (2 threads) Pipeline Superescalar (múltiplas execuções) (ArsTechnica) ( Tanembaum - fig 2.6) - Ind além de dbrar pipeline. 4 pipelines implica em muitas regras de cnduta e prtant muit mais cmplicad. N entant, a execuçã das instruções, em princípi, leva mais temp d que a busca e a decdificaçã. Entã, se tiverms diverss mecanisms diferentes para pass de execuçã, cmputadr nã tem necessariamente de esperar pela cnclusã desta instruçã, ele pde passar adiante, e se a próxima instruçã nã depende desta, cmeçar sua execuçã antes d términ da primeira.
Paralelism a nível de Prcessadr - Existe um limite para ganh desempenh cm a pipeline u cm a arquitetura superescalar. - Um grande númer de prcessadres que executa a mesma sequência de instruções em diferentes cnjunts de dads. (Cntrle Central) Array Cmputers (Tanembaum fig. 2.7) - Vectr Prcessr: a mesma idéia de perar sbre muit dads de uma vez, prém a matriz de dads é clcada num registr vetrial, um cnjunt de registrs cntígus mais que pdem ser alcads cm um única instruçã de maneira sequencial. Este vetr é entã inserid num pipeline, que executa a instruçã e armazena resultad em utr registradr vetrial. Exempls de cmputadres vetriais CRAY, NEC. Arquitetura de um cmputadr Cray http://chrisfentn.cm/hmebrew-cray-1a/
Multiprcessadres Multiprcessadres (Tanembaum - fig. 2.8) - 1 única área de memória para diversas CPU's - diferente d Array Cmputer pr serem cpu's independentes - sftware deve cntrlar acess à memória de cada um ds prcessadres - Prcessadres rápids acessand a mesma memória pdem causar cnstantemente cnflit n BUS. As sluções pdem ser a utilizaçã de memórias lcais nã acessíveis as utrs prcessadres. Esta memória pde ser usada para armazenar códig e dads que nã sã cmpartilhads. - O cmpartilhament de memória facilita a prgramaçã pis prgramadr nã precisa se precupar cm a presença ds dads na memória de cada prcessadr. Tds s dads estã na mesma memória. - Exempl: Análise de uma ftgrafia de uma célula. A ft está armazenada na memória e cada prcessadr analisa um pedaç. Se huver superpsiçã de pedaçs, nã é necessári transmitir essa infrmaçã para a memória d prcessadr. Se uma segunda ft fr analisada e s pnts a serem bservads nã cincidirem cm s da 1ª ft é só prcessadr buscar a nva psiçã a ser bservada na memória. Multicmputadres Cnectar um grande númer de prcessadres à memória pde ser extremamente difícil. - Sluçã cnectar cmputadres entre si, sem cmpartilhar a memória. Cada prcessadr (u grip deles) cntará cm uma memória própria. Os dads necessáris sã transmitids de um cmputadr para utr através de prtcls de cmunicaçã via rede, e diversas tplgias sã utilizadas: malha 2D malha 3D estrela anel - Multicmputadres sã mais fáceis de cnstruir que multiprcessadres, prém multiprcessadres sã mais fáceis de prgramar - Tentativas de sluçã híbrida. [1] William Stallings - Cmputer Architecture and Organizatin, Pearsn, 5 th Editin