Você está na página 1de 166
Arquiteturas Paralelas Série Livros Didéticos Inetiute de informatics Universidade Federal do Rio Grande do Sul (UFRGS) ) tntornystes aor Pat vo Rech Weer Viee-Diretor Prof Luis da Cunha Lamb Comissio Esltorat Prot Paulo Blau Menszes (Coordenador) Prof Lclana Sate Bul Prof Renata de Matas Galante Prot. Jodo Luz Din Comba rol Luis da Guna Lamb Prof, Ricardo Augusto da Luz Reis Coordenador de Divuigago Prof. Tlaraji Asmuz Dnerio Enderego Univereiade Federal do Rio Grande do Su Into de Intron Jv. Berto Gongalves, £500 - Bloco IV - Baio Agronoma Porto Alegre “RS - Bras (CEP 01801-970 Caixa Posts 15054 Tolefone: +55 (51) 3308.5165 © 3306-6168 Fax +55 (51) 9908-7906 aoa agitate ee, i BN. ot eT Se Atta pala [ere kerio] Ca A. F De Rose, Plippe ©. A Neva. Dados letiics. Poa (Sere Livros distcon.5 15) ISBN 97H. 77H. . ‘Calogaio na pulcagio: Mica Ballo Caio — CRE 101028 César A. F. De Rose Coren ie Copa Ue ate, erat ee Sera Oprcirst Pecans Pace Ose Nere nla Caoue a UFR (0) xe eae ines Ponasarons rn Dara hom emt pe PRS 0] Pee organs Po auc we Crea a Campa cere es‘ caca Ro Gn 8 suas uo ‘drains Cpa, Sear Oars Par Pre « Du ae Cane ‘Gig ar do sername Oem eer derma Philippe O. A. Navaux nan ene pe NPG Uo ele Fa 1979) nu ts de Comoe Men Figen ar eee URS) xg etc ps Ea eer FROST, Petes do Pra ei. Sasuoen Cnpuni shah de oma US, uae. aa Corpes Por eA eens, te oases et SCs ‘cs fas neve Psuanora MDa erate Corp. Arquiteturas Paralelas Reingressso Copyright ©2008, Armed Editora S.A Capa: Carlos Alberto Gravina Supervisto editorial: rysinha Jacques Affonso Eaitoragto elena: Teehbooks Reservados todos os direitos de publieagio, em lingua portuguesa, & ARTMED? EDITORA S.A, (BOOKMAN* COMPANHIA EDITORA 6 uma divisio da ARTMED* EDITORA S.A) Ay, JerBalmo de Ornelas, 670 - Santana 0040-340 Poreo Alegre’ RS. Fone (51) 3027-7000 Fax (51) 3027-7070 E proibia a duplicagio ou reproduc deste volume, no todo ot em parte, sob quaisquer formas ou por uaisquer meios(letrénco, mecdnieo,gravagio, fotoeépa, distibugao na Web eourtos), fem permisso expressa da Eaitoa SAO PAULO Av. Angélica, 1091 - Higienépolis (01227100 So Paulo SP Fone (11) 3665-1100 Fax (11) 3657-1333 SAC 0800 708-3444 IMPRESSO NO BRASIL. PRINTED IN BRAZIL. PREFACIO DA SERIE A Série Liros Diditcos do Instituto de Informatica da Universidade Federal do Rio Grande do Sul tem come objetivo a publicagéo de material dditico paa dsciplinas minstadas em cursos ‘de graduacBo em Computagioe Informitics, ou sea, para os cusos de Bacharelado em Cidneia da Computagdo, de Bacharlado em Sistemas de Informagao, de Engenharia da Computapio & de Licenciaturaem Informitica, A série &desenvolvida tendo em visa as Dirtrizes Curiculares do MEC ¢ resullnte da experiéncia doe professores do Instituo de Informtica © dos colaboradoresexteros no ensino e na pesquisa, Os primeirs ttlos, Fundamentos da Motomética Inzeralar © Programando em Pascal XSC (csgotados), foram publicados em 1997 no dmbito do Projeto Aritmética Inervalar Parlcla (ArinPan), fnanciados pelo ProTeM - CC CNPq/Fase IL Essas primeira experienctas serviram de base para os volumes subseqientes, os quais se caracterizam como livos-exto para ‘isiplinas dos cursos de Computagio e Informstica [Em sous titlos mais recente, a Sévie Livros Diditicos tem contado com a colaboragio de professores exterios que, em parceria com prfessores do Instituto, estio desenvolvendo livros ‘Se ata qualidade e de reconhscido valor diditico, Hoje a série esthaberta a qualquer autor de reconhecida capacdide ‘© sucesso da experdncia com esses livros, hem como aresponsabilidade que cabe ao Instituto de Informitica na formorio de professore epesquisadores em Computasio e Informsties,conduziu ampliagdo da abrangéncia ed insttuconalizagao da sve. Em 2008, um imporante paso foi dado para consolidapto e ampliago de todo 0 tabalho: 2 publica dos livros pela Artmed Editors .A., por meio do slo Bookman. Os soguintes ttulos sto atualmente publicedos pela Bookman © adotados por diversas univeridades de viros estas besileizes: + Volume 3 -Lingurgens Formais ¢ Autématos, Se, de Paulo Blauth Menezes + Volume 4~ Projo de Banco de Dados,6.0, de Carlos Alberto Heuser + Volume 5 ~ Teoria da Computagdo: Maguinas Universais ¢ Computaitidade, 208,, de ‘Tiara Asmuz Diverioe Paulo Blauh Menezes + Folume 6~ Arquieturas de CompuiadoresPessoas, 2c, de Raul Fernando Weber + Volume 7 ~ Consepedo de Cireuitos Integrados, 208, de Ricardo Augusto da Luz Reis © cals, + Volume 8 — Fundamentos de Aruittura de Computadores, 3.ed, de Raul Fernando Weber © Volume 9 implementagdo de Linguagens de Programacaa: Compiladores, 3c, de Ana Maria de Alencar Price e Simo Sirinco Toscani + Volume 10 ~ Tablas: Onganizacdo e Pesquisa, de Clesio Saraiva dos Santos ¢ Paulo Alberto de Arerodo + Volume 11 ~ Sistemas Operacionais, 3.2d,, de Romulo Silva de Oliveira, Alexandre Silva Carissire Simso Siriaeo Toscani * Folume 12 ~ Teoria das Categorias para Cigncia da Computaedo, 2.04, de Pavlo Blauth Menezes © Eduardo Hermann Hacusler + Volume 13 Complevidade de Algorimos, 2.04, de Lair Vieira Toscanie Palo A. S. Veloso + Folume 14 ~ Sistemas Operacionas € Programagio Concorrente, 2.04, de Simo Sirineo “Toscan, Romulo Silva de Oliveira e Alexandre Siva Carssimi + Volume 15 ~ Arquitetwas Paralelas, de César A. ¥. De Rose ¢ Philippe ©. A. Navaux; + Volume 16~ Matemeica Discreta para Computago e Informatica, 2.ed, do Paulo Blauth Menezes + Volume 17 ~ Fundamentos de Cireutos Digits, de Flvio Rech Wagner, André Inicio Rois © Renato Perce Ribas Em breve, os seyuintes tals sro langades Redes de Compuradores, de Alexandre Carssimi, Juergen Rochol e Listndco Zambenedet Granville; Exiraturas de Dados, de Nina Edelweiss ¢ Renata de Matos Galante; -Mateméilca Discreta pare Computacio ¢ Informatica: Aprendendo Com Exercicios, de Paulo Biauth Menezes, Laira Viera Toscan! e Javier Garcia Lopez (Outros ttulos, amibém eompreendendo conteides de disciplines de Bacharelado em Cigncia «ds Computagio, Bacharado em Engenharia da Computagae, Bacharclado em Sistemas de Informagio ¢ Liceneiatu em Informiticn, encontram-se em prepara, Aiguns estio sendo Aisponibilizados na forma de apostlas,objtvando verfcagoe validagio Jo texto, ‘Todos 0s livos tém em comum a preocupario cm manter nivel compativel com a elevada qualidade do ensino e dt pesquise desenvolvides no Ambito do Instituto de Informatics da LUFRGS e no Brasil, Mais dtathes sobre a Sie Livros Diditicos, ou sobre os ttulos publicados ou em preparago, podem ser encontredos ma pagina do Instituto de Informatica, hp:/www nk ui b, no lnk ‘Publicagbes!Série Livros Didaticos. Prof Paulo Blauth Menezes Comissao Bdtorial da Série Livvos Didicos Inside Informatica da UFRGS “lo de 2008 PREFACIO DOS AUTORES “Maiuinas paralelas vim tomando-se mais populares em Fungo da demand sempre crescents or poder computacina.Infelizmente os sistemas que ofeecera a capacidade de proceso para satisfazer ess demands, na maioria dos casos, ainda tém um custo muito elevado ot $80 Uificeis de programar O estudo de arquiteuras paraiclas contribu para o entendimento para 8 busca de alteratvas para os dis problemas, "No caso do custo, um melhor entendimento das alternatives de consinugo de méguinas pralelas 4 compreensto de emo essas decisses de proetorepercutrio no desempenho final da maquina Podem possibiltar a escotha de uma arquteture de menor custo que, ainda assim, obtenia Aesempeno desejada A difculdade de propramagao advém do fato de que, para que se obtenhe aplicagdes paralelas ‘que tenham um bom desempenho, ainda se faz necesirio 0 conhecimento de caactristicas ‘especiicas da miu avo. S6lidos conhecimentos na érea de arguiteturas parlelas auiliam ‘em todo o ciclo de desenvolvimento de programas paralcls, desde sua modelagem, passando pela programagioe dspurao, até a otimizagio. [Este lio deereve os conceitos bisicos da dea de arquiteuras pralelase presenta a princpais tendéncias na construe dessas miquinas. Na apresentagio dos conteds, optou-se por meselar © estilo mais empiricoe dissertaivo da escola americana (Hwang, Culler, Buyya) com 0 estilo e organizacio mais formal e classificatério da escola européia (Sima, Heis, Wettstein), com © objetivo de confor o leitor com uma abordagem pritiea, porém orgenizads, E wm livro introdutério, escrito para sor usado como livro-exto de disiplinas de graduagio da dea de arguitetura onganizazto de eomputadores, mus espciicamente nas disciplines de Arguittura © Organizagto de Cumputadares I (do curso de Bacharlado em Cigneia da Computagto da UFRGS) e Arqitetun de Computadores I (do curso de Bachareade em Cigneia da Computasi0 «da PUCRS),ediscplnssiirodutbrias da ps-graduaco. Para os que desejam se aprofundar em algum tpico da dea, 0 recomendados, no texto, mates mais especificos, importante lembrarqueo projeto de uma arquteturaparalela passa, do forma indissocidvel, pela anise do todo que compte o processamento, niiando pela aplicagSes que serio procssadas, pelo tipo de linguager a ser empregado pla forma de gerenciamento dos processose, portant, pelo tipo de sistema operacional, para finalmentechegar 4 aquitetwra da maquina, Prtnto, & presente lv sborda apenas um Jo tens dessa andre, no devendo o leitor esquecer que, para ‘entendimento ser completo, énecessrioo conhecimentodessecontexto como um todo. Porto Alegre, jlo de 2003, César A, F De Rose Phillppe O. A. Navoux Aninha familia ‘aes meus meses e aos meus alunos Amina familia pelo apoio ‘ac amigo Taraj Diverse pelo incentivo ‘ac amigo Meurico Pilla pela revs do texto 40s meus alunos com quem multo aprendi nas nossasdicustdes Naver SUMARIO LL ota das argutcnas Parla 12 Uposde Concrrinea mums Argue. 13 Clasieag0 Ge ya annnnennn Unda de Meta prs Mquings Paabta 1S Aplieagbes Paras. 17 Ongena do Ctr (Captlo 2 ARQUITETURAS PIPELINE enn 21 Mistrien do Emprge das Aruiteras Pipl non 212. Frlacpo de Fanionamento de um Pipeline. 23. Chamteas or Procestore Pipl nn ‘eminatliaa de Ase Merial de Aor 28 O Pptine dense 26 Tempo dum Pptine on 27 OPpelin Actmiten.. 218. Tae de Projet de Pipelines de Isrepe.— 281 Buses Ancpas de ntres 252 Grentaneto de Demon 29. Iatragbes Vt 2911 Forma uma icra Wal 240 Arqultetura um Precesdoe Vlora en C—O 2111” Depend Daes 7 aa 3 2112 Depots de Conte - : 2 2M Contes da Reemt- enon es s 2 2112 Weert e Ot de stab ne IRL Verran rates, . 2122 Oumiae de Fngbs Vein 213 Angst 6 Weropriceador al 60386. 2132 Arteta 60 CRAY | 2244 Baek camer Capito. ARQUITETURAS SUPERESCALARESesw-voennninennenne |M_Princpios de Facinamente de wma Argeltetara Sepereclat 212. Principe Caractere dan Argultetura Sper mn 33. Unidads uma Areitetara Supers nn 0 nnn 2.1 Bate namaes 3 4332 Previa de Devin, 2 333 Decade de asiandes—— Se ese ene) 334 Rewmeaiie te lepitatees. 335) Reordenoyi deletion . = ‘3 336 Daacie de neste: = Se 337. Delgata de Inn < S a a 438 exec de Innes. : 38 339 Giada densa ra M_ Tetum 8 Detinnennen enn 6 DA Proviso tiie . - ws 352, Algom de Soon 3 353 ‘Algonin de Taman. a 6 _AngatteasSuperpilin€ VLIW nee ea 361 Pocesaderes VLIW. ‘ 3662 Processors Serle. = a 137A de C04 meen ST Angers en 372, ears Alp 2125 4.1. Fluxa de inropes/ Fano de dar ~ 7 “412 Clamiexgo sone ocomperihancn de memiris o 442. Orgniact da Meta Prep nnn TS 421 Memoris eoebyas. 7 3 422 Momicin com ips pra z 4 once SS 44, Roteamente de Menage. “AA. Poli dr rtemento . 4482, Alpwemo de roteanen, — 4S. Coertncia de Cc (che cherries “451 Oproblems de inosine dap nose 452. Emtipnde corn de cock : 4453 Proooloede otal d ace a [Captulo S$ TENDENCIAS NA CONSTRUGAO DE MAQUINAS PARALELAS.. ‘1 Proenadors varia part (PVE) orn ‘SLI stale d enor Cy FPR. = ‘S12 Eada dct Fas VPP S00, 452__Muliprocesadres side (SMP nen ‘521 Estda deco: Sl Panes Cheapo 522 Enno dca al SV Servet Bec 153. Maquina muacment pales (MPP) mewn ‘SAL Estado de enor Comaton acne OM Sus-m=nsnennnennennnnnnm $32. Estado dc ft Prgon XPS = ‘54. Maquina com meméracomparihadsdstribuids (DSN)... ‘sl Eada dco Senet DASH. So S42 Raada deco: Cay 3D, oo 5S _ Redes de estas de trabalho (NOW) nnn S581 Esto docs Rede el Ebert Fs Ear Giga bere. 56 Maquina agregadas COW oan ‘36 Esto docs Kaser do HP Labs de Grebe ed bom. eis 5162. Esto docs: Pier Serer do PC em Pare Re SC Tie 563. Estdo dcr: Asin do CPAD -PUCRSTP (Rede Min. 15 ‘57 Comparssio ete 0 mtd enmrnnnneennntnnenn nf ‘sz Deumpento caress 136 572, Ret city bens s 139 573, Eaealbide - - 139 S74 Imagem den, = 40 573 Resume de psp crcrscan 0 $8 Exe sees LISTA DE ABREVIATURAS. LOGIT et nen Capitulo 1 INTRODUCAO Desde os priméndios da era da computagio,jé em trabalhos de von Neumann {Von45], 35 Arquiteturas Parle foram apresentadas comno formas de abter uma maior capacidade de processamento para execusio de tarefas com alas carges de processamento [Esse aumento na capacidade de processementa dos computadoress6 podia ser obtido através de processadores mais velozes ou através do aumento do nimero de processadoes empregados em onjumio, Nos anos de $0 e 60, as tecnolopis de Tabricagao de maiquinas monoprocessidoras {fam suficientes pare atender 4 demands de processamento daquela epoca. A partir dos anos 70, as necessdadeserescentes de eapacdade de processamento no eram mis atendidas pelas evolupbes na tecnologia dos monoprocessadors,tomando-se necessiria a uilizagao de tenicas ‘de concorréncia para leangaro desemperinarequsido Como o aumento da \elocidade dos processadores esbarava no east ¢ no limite ds capacidade tecnoldgiea para obtengo de circuits ripidos, a solugio tendew para o emprego de virios _processadorestrabalhando em conjunto na obten¢o de uma maior capacidade de processament, E quando surge 0 termo Processamento Paralelo pars designat ténicas’ diferentes de ‘eoncorréncia que atendem a esas necessidades. © desenvolvimento da rea de Processamento Paralelo Tevou ao sutgimento de miquinas cespecilizadas em realizar grandes quantidades de operaySes por segundo, ‘conhecidas como Supercomputadores, 3s quais proporcionaram um maior Jesempenho na resolugio de problemas, vendo, por i350, essa drea conhecide também como Processamento de Alto Desempenho = PAD (sm inglés, High Performance Computing - HPC). 11 Rvolugio das Arquiteturas Parateas ‘A idGia de ProcessamentoParalelo no ¢ nova, Em 1920, Vanevar Bush, do MIT (Massachussets Insite of Technolog), apresentava um computador analégico capi de resolver equagbes dliferenciais em parallo;o préprio von Neumatia, em seus artigo, pelos idos de 1940, sugere, para resolver equapes diferencias, uma grade em que os pontoss80atulizados em paiclo, 2 Arguiteturas Paralelas~ Césor A. F.De Rose e Philippe 0.4, Navou Uma das primers miquinas a empregar parlelismo do tipo sobreposiclo (overlap) foi 0 UNIVAC I Essa miquira sobrepunha operagdes de exceuso de programas com as operagdes de ‘entrada esa (E'S), [A velocidade dos computadores dependia da velociade de execue30 das instrugdes © da ‘elocidade de transferéncia dos dados entre a meméria ea CPU. A técnic de acclerar a busca de insrugdes na memoria foi emprepads na méquina [BM 7094, que tabalhava com uma meméria de 72 bits de largura e isrugSes de 36 bis, onde eada aceso & meméria para busca de uma instru jf tazi os ous 36 bits da proxima instrugdo. Dessa forma cra climinada a metade dos acessos & meméria para busea de insirugbes. Posterirmente, surge 0 entrelagamento de memérla como uma teniea que permite 0 acesso Simultineo & meméria pela divisio desi em diversos bancos. Cada banco pode ser acessido separadamente eviando “canais" pelos quais os dados podem sr tansferidossimultaneamente (0 emprogo da técnica pipeline aparece nos computadores STRETCH (Bl059] ¢ LARC (Fck59], como sera Visto no proximo capitulo. O primeiro dividindo a execueo das insteugbes em do ‘stgios: uma fase de busea © decodifcago da instrujao e uma fase de execusdo da operaga0 {enguanto que na miquine LARC a execupio das insrugdes foi dividida em quatro esigios: busca ‘de nsruglo, operagdo de enderegamentae indice busca do operandae execugt da instrugto. {Uma forma para melhorar a velocidade de tansforncia de dados entre 8s memérias ¢ 08 processadores foi o ermprego de pequenas meméris ripdas que agissem como ume érea de larmazenamento emporio entre as CPUs e meméria, Essas meméris ripidas foram chamadas de memérias cache. As caches permitem um acesso bem mais pido aos dados pola CPU, Seu funcionamento baseia-s no prinefpio de que normalmente o aeesso a dados e instrugdes na memoria ocoree na forme seqUencal ou em enderegs préximes. Na evolugdo das arquitturas, um dos problemas que apareceram, dificultando 0 ganho de velocidad, foram as depeadéncias entre jstrgées. Uma instugto, num determinado estigio do pipeline, pode depender do resultado de wma instrusio prévia que ainda nfo completou Seu processamento e que, portant, impedirs instruglo dependente de passar para o proximo ‘stigio. Nas primeiras miquina, esa situagdo simplesmente acaretava um ataso na execu ‘do pipeline de instrugdes Pra minimizar esto problema surgiam computadores como o CDC 6000 [Thost] que minimizavam © nimere de possive's dependéacias através do emprego de um formato de ingcugBes simples além de hardware especficos para fungOes scparadas. Isto Ievou a0 projet de uma arquitetura com vérias unidadesfuncionas, ais como somadores e mulipicadores, que executando em paalelo permitiu um gaaho na velocidade do procesamenta das instr, Posteriormente surgem méquinas para resolupo de twrefas que nocossitam uma. grande quantidade de processamento repetitive sobre um conjunto do elementos individuis de dados, chamados vetoes, Paral estas miquinas forma eiadas para que executassem diretamente uma nova classe de instrugies, as instrupbes vetoriais. Dessa forma so climinadas as tarefas de controle do lao deinstragdessimplificando a forma de funciona dos pipelines. Ao programador abo empreyar estas intrugbes vetorais qe irio automatcamente especiicar uma fungdo a ser executada em hardware sobre um coajunto de dados. Sao as Méquinas ou Processadores Vetoriais cujos primero: exemplos sdo 0 IBM 2938, 0 CDC STAR-100.¢9 TIAASC. Capitulo 1 = Intodcto 2 [As ténicas de pipeline, de meméria cache e de meméria enrelasads sio hoje empregadas de forms usual em computadores seqtencsis SISD, no entanto possuem limitaydes de hardware devido a tecnologia e de software inerentes so tipo de programa e portanto do conjunto de intrugdessendo execatadas, Uma altermatva a esta stuagbo & 0 emprogo de diversas CPUs com espectivas memérias intereonectadas dando origem as maquinas com vérios processadores, s computadores que empregavam diversos.processadores (MIMD) ou elementos de processamento (SIMD) pare aumentar seu poder de processamentotém no Iliac IV seu marco inicial. Com seu proto iniciado nos anos 60 ¢ tormido operacional em 1972, 0 Iliac IV, que Possui uma arquitetur SIMD, foi considerado o primeiro Supercomputodor [Nav 7] "Nos anos 80, as miginas conhecidas como Supercamputadores eram © CRAY, o FUJITSU © ‘ouxtos que agregavam, além da capacidade veto, eenias de sobreposiglo, pemmtindo que virias operagdes em peraelo fossem desonvolvidas em pipelines diferentes. © CRAY, por cexemplo, alm de trablhar com registradores vetorais 20 invés de diretamente com a memoria (© que jf acelerao tempo de buses de insrugses ¢ operands), possui a capacidade de encadeat ‘operagdes vetorsis, minimizando os tempos de espera peo temina de uma opeogio par iniiar uma prxims, Esses computadores evoluem para o emprego de viras unidades em conjunto, gerando as miquines como o CRAY XMP (as letras MP roferen-se a arquitetura da mquina, n0 e2so um multiprocesssdor). Por ‘ikimo chegsm, 20 mereado, nos anos 90, a¢ méquinas compostas por agregados de omputadores, os Clasers, primeiramente clusters de esteg6es (COW) tais como IBM SP2 [g295}, logo transfrmado em cluster de PCs, nos quais miguinas comuns so intrligdas através de uma conexio, normalmente rips, para, em conjunto, tomarense uma unidade para rocessamento de ato desempenho, Em paraelo, os microarocessadores foram agregando as técaicas de pipeline as sus aquiteturas, inicialmente empregando a busca anecipada de instupbes e posteriorment instindo o bloco elementos de frocessamento que executam em pataleo, de forma simultnea, a mesma operagio; + Concorréncia de recursos assincrona, que resulta nas arquiteturas MIMD, em ‘que procestades atuam em paralelo para resolverem uma tarefs, porém cada um execttando dentro do seu ordenamento e tempo Num pipeline, umn tarela ésubdividida numa seqhéncia de subtarefas, cada uma exceutada por um estigio de hardware espocitic, que takalha concorrentemeate com os outs estigios do ‘pipeline, ciando um paslelismo temporal na execugto das sublaref, 0s Procestedores Mariciais (Array Processors), também conhecidos por SIMD, sto representatives do Paraclismo Espacal Sinerono. Nessa arquitetura, uma unidade de controle Aistibu para varios elementos de processamento (EP) a mesma instrugio que seri executada em patalelo por esses EP's sobte seus proprios dados no mesmo instante de tempo, © tereeiro tipo de cencorréncia, 0 Paralelismo Espacial Assinevono, & encontrado nos rultiprocessadores, também conhecidos por arquiteturas MIMD, Nesse caso, iversos procossedores tabalham em partelo, processando suas tarefas concorrentemente’ de forma !sssinecona para, num intervalo de tempo, conclurem a tacts. Esses processadores geralmente io idénticos ¢ possuem um sistema operacional tnico que os gerencia, Portanto, um ‘multprocessador & um computador que possui Vérios processadores que se comunicam © cooperam para resolver una dada trea 13 Classiieagio de Flynn Para uma classificagoincial de erquiteurs parlelas, pode ser sada a classifcagdo genévica 4e Flynn [Fly72], Apesie de ter sua origem em meados dos anos 70, 6 ainda valida e muito difundide, Baseende-se no fato de um computador executar uma seqlécia de instrugBes sobre ‘uma seqUncia de dade, diferenciam-se 0 fuxo de instrugdes (instruction stream) e 0 Buxo de dads (dota stream). Dependendo de esses fuxos serem miplos ou no, e através da combinagdo das possbildades, Flynn props quatro classes (Tabla 1-1) Capitulo | — rocco. “abel 4 Casto 6 Fyn segundo fax de sags co ao dan ‘SD (Single Data) | MD (ule Data) sis SIMD SU (Single Insiruction) Miguinas Maguinas Array von Neumann | (CM-2, MasPar) Msp MIMD Sem representante | Multiprocesadores © (aid agora) | multicomputadores (CUBE, intel Paragon, Cray T3D) MI (Muliple Instruction) [Na classe is (Singie nsiruction Single Data), um ‘nico fuxo de instrughes atua sobre um Seo Muxo de dados. Na Figura 1-1, 0 fuxo de instrugbes (linha continu) alimenta umn unidade 4e controle (C) que ava a unidade cenwal de processamento (P). A unidade F, por sua vee, aa Sobre um nico fuxo de dads (ins tracejada), que ¢ lid, processadoe reescrito na memoria (M). Nessa clase, slo enguadradas as maiquinas von Neumann tradicionais com apenas um processador, como micrecamputadorespessaiseesagbes de trabalho, C {mM sor ae Figura 1 Diagram test [A classe sso (Multiple Insrucion Single Data) & bastante interessante, Nesse caso, miliplos fluxos de instrugdes atuariam sobre um Unico fuxo de dados. A Figura 1-2 mostra miltplas unidades de processamento P, cada uma com sa unidade de controle propria C, recebendo um fluxo diferente de insiragbes. Essas unidades de processamento executam suas diferentes insrugdes sobre 0 mesmo xo de dados. Na peta, diferentes insrupGes operam a mesma posigao de meméria ao mesmo tempo, exeeutando instrugdes diferentes. Como isso, até 0s dias de hoje, no az qualquer sonido, além de ser tcnicamente impraticvel, essa classe € ‘consderada Vazia (Hee $8][Hoc88][Alm&9} ‘ Arauiterwras Paraielas— César A. De Rose e Philipe O. A. Navou a SE Bae Diagrams da clse 30 ‘As miquinas paalels concentram-se nas duas classes restantes, sive MIMD. No ea80 SD (Single Insiruction Muleple Dara), uma dies instrugdo € executada 90 mesmo tempo sobre ‘lips dados. 0 processamento¢ contolado por uma ini unidade de convole C,alimentada ‘por um Gnio fluxo de irstrugtes. A mesma instro € enviada para os divertos processadores P envolvidos na execucdo. Todos os processadores exceutam stay instrugbes em paralelo de forma sinerona sobre direntes fuxos de dados (Fgura 1-3). Na priica, pode-se dizer ‘mesmo programa esti sendo executado sobre diferentes dados, © que fiz com que 0 priacipio ide execusto sun assemelhese bastante ao paradigma do exeousto sequencial. importante ressaltar que, para que © processamento dab diferentes posigdes de memiria possa comet ‘em parlelo, 8 unidade de meméria M no pode ser implementada como um Unico médulo ‘de memes, © que pemitria s6 uma operapho por vez (ver Seplo 4.2), Nessa classe, sio ‘enquadradas as miquinas ray como CM-2 [Hwa93] e MasPar [iva] Lp Figura 13: Dag dale so [Enquanto ra uma méquina sis, s6 um fluxo de instrupses, ou sea, sé um programa, esti sendo {executado, em uma méquina Mim (Multiple Instruction Mulple Data, cada unidade de congole CC recebe ium fluxo de insrugdes préprio ¢repasse-o para sua unidade provessadora P para que Sj exeeutado sobre um fuxo de instugtes prOprio (Figura 1-4). Dessa forma, cada processador texecuta o seu prio programa sobre seus prpriosdados de forma assinerons, Sendo assim, 0 Principio woo & bastante genérico, pois qualquer grupo de méquinas, e analisado como uma ul Inroducto z unidade (executando, por exemplo, um sistoma distribuido), pode ser considerado uma maquina ving, Nesse caso, como na classe SivD, para que o processamento das diferentes posigdes de ‘memriapossa ocorer em paralelo, a unidade de memria M ndo pode ser implementada como um tinico médulo de neméri, © que permitra 6 uma operagio pr vez (ver Seo 4.2). Nessa classe, enguadram-se sorvdores com milipios procesadores (aa, quad), as redes de estagdes «maquinas como CMS [993], nCUBE [Cull9], Intel Paragon (Cul99]¢ Cray T3D [Cul99), a Sor pa A classe das miquinss MIMD pode ser subdividida em duas subclasses de acordo com 0 tipo ‘de acesso a meméria, se ela & comparithada ou nao. Méquinas com meréria comparilhada 80 ‘onhecidas como multiprocessadores,engusnto miquinss ie no \ém meméria comparihada so ditas multleomputadores (ver Sepio 41.2). A diforenga essenca! entre elas & que, em um multiprocessador, existe um Gniso espago de tenderesamento, o qual & comparihado por todos os processadores, como ma exemplo de um microcomputador Pentium Dual, em que existem dois processadores que se comunicam através dda meméria comum. 16 nos multicomputadores, cada maquina tem sua propria meni, © 0s Drocessadores se comunicam através da toca’ de mensegons. Um exemiplo & uma rede de microcomputadores nerconcetados através do um barramento Etheret ou de uma chave de imterconexto. Pode-seresumira clasificago de méquinss, quanta 30 tipo de acesso 4 memes, + Mutiprocessadores ~ Meméria Compartihads; ‘+ Mulicomputadores ~ Meméria Privada Cuda uma dessas duss classes pode ser subdividida quanto a0 tipo de arquittura de rede de imerconexto, que pode ser: igagio por barrameato (bus) ¢ igaedo por chaveamento (witch), como ilusirado na Figura 1-5. Na lgaeto por barramento,éentendido que existe uma nica reds, lum barramento, um cabo ou um mo que coneca todas a miquines. Sistemas por chaveamento {nitehed) no tém um tnico meio de conexdo, mas neles exstem diversas ligagdesindividsis dd urna miquina pare» outre, com diferentes canais em uso, As mensagens mover-seotrves dos canais com trocas dies, 5 Arguterwas Pavalelas— César A. F. De Rose e Philppe O. A. Nave enon psc anspor (yeni camera) ‘sent gor Barmen | [Tipo ‘lente || iene RS ‘igus 15: Clesicato de sistemas paseo [Tin85] Existem diversas outra clasifiapdes para miquinas paralelas além das aqui apresentades. Exemplos sto as radicionis de Feng [Fen72], baseada ho processamento série versus paraelo, © de Handler [Han77], que estabeleve o grau de parlcismoa © de pipeline em varios nveis. {A Segio 4.1 seri dedicida as prinipaisclasifcagdes de méquinas parlelas compostas de ‘maltiplos processadores. 14 Unldades de Medida para Méquinas Paralelas ‘Como mediro desempento de sistemas PAD? Alguns pensam que medio mero de intrudes ‘executadas num determinado itervalo de tempo € a forma mais adequada para medi 0 {desempenho de um computador. Pratl, estabelece-se o nimero de insrugdes empregsdas pare uma determined apicagdo processar numa méquina, Para medi esas velocidades das Magquinas Paralelas, fo estabeleide uma unidade: 0 FLOPS. Assim como o MIPS reprosenta 0 mito de instugées executadas num segundo por uma maquina, o MEGAFLOPS, ot MFLOPS, mee 0 ‘nimero de mihes de operagdes em ponto Nutuante executadss num segundo, Nfo existe uma ‘converso fia que estabelega quantos MIPS perfazem um MELOPS. Tudo depende do tipo de ‘computador. Considra-s,em geral, que uma operagao de panto utusnte sejaexecutada por 2a 7 instrugdes ususis; mas, éependendo da maquina pode chegar até 10 Por outro lado, sabe-se que essa medida ndo & precisa, pois o poder das instrugdes varia de ‘miquine para méquina. Uma instrgio de um deerminado computador pode resultar numa ‘operoydo muito mais poterosa que prcisara de um conjunto maior de instugdes para obler 0 ‘smo resultado num ouzo computador. Resulta desse fato que a forma mais coreta de medir ‘o desermpenho entre miinss seja empregar programas-padro que seo rodados nas maquinas objeto da comparapto. Essa tenica& conhecida por Benchmarking, Ponanto, Benchmarks sio programas ou conjuntos de programas de test, representativos de vuma dada aplicapio, questo empregidoe para medi o desempenino de computadores, sob forma ‘comparativa, analisndo suas eareteriscas de processamento e de movimentagao dos dados, Hoje em dia, existem conjuntosofciais de programas-padrdo, Benchmarks, que so coniecidos © ‘empregados nestas medidas ais como o LINPACK, NAS ¢ SPEC, entre outos. importante frsar que, dependendo da necessidade de andise de um determinado computador, dversos outs pardmetras podem ser empregados, além da medida de velocidade e do tempo de exeougo, tis como desempenkoleuso, carga, throughput (capacidade de processamento de Drocessos ou jobs numa unidade de tempo), além da medida de utlizarto (percentualefetivo de ‘emprego da CPU), Capitulo = Inrodido 15 _Aplicagdes Paralelas ‘Antigaments, era importante nominar quaiseram os principas usos da téenicas de PAD. Hoje pacifico que o emprego do processamento paralle e distbuido sconteve nos mais diversos sistemas computacionais, desde no nivel interno de microprocessadores até na constugio 4e grandes sistemas compostos por milhares de computadorcs interlgados. Na verdade,essas ‘ences esto sendo empregadas de forma to intensa e usual, que fazer parte da evolugio ‘normal das arquiteturs dos sistemas computacionis ‘Visando a apresentar o emprego mais intenso das tenicas de processamento paraelo,dscutimos 1 seguir alguns exemplos de aplicagdes de PAD. Duss dis dreas de maior necessidade de processamento inteso si0 a Previslo Metooroloyia e as SimulagBes. Os grandes modelos de previsio meteorologiea nccessitam de capacidades de processamento superiores 4 TFLOPS (eraflops) Simulagdes de modelos que vio de asrondmicos, do movimento dos mares aés6cio- ‘econdmicos também sio grandes demandantes de procassament, (Outras steas importantes sto as que atendem 2 projetos de Engenharia ¢ Informitica, Céleulo de elementos fnitos para o projeto de barragens, navios, avides, edifices, naves espaisis, entre outros, so itens que normalmente precisam de grandes capacidades de processamento, assim como os eflevlos de aerodinimica empregades no estado de turbuléacias. Na area de Sensoresmenio Remote, existem nocessidades de processamento das imagens orundas de satéites para obtengio de informaptes sobre agrcultur,floestas,geologi, ete. Outras reas ligadas a essas sioo reconecimento de padrées, a vislo por computador o 0 reconhecimento de voz. A uiilizagio de tGenicas de Inteligéncia Arifcial plicadas virias reas, tis como robétes, levam a0 emprego de diversosprocessadores na solu e nas decades inerentes a esses process, As reas ligadas & exploragio de fontes de energia também sto grandes demandantes de PAD como, por exemplo,»exploragdo de informagdessismicas para determinago do local provével de reservatrios de pettdeo, a modelagem da capacidade’ desses reservatérios, programas de Sseguranga para restores nucleaes e modelagem da dinimica da fuso de plasma Por fim, encontram-te também nevessdades de processamentointenso na drea médica como ‘em tomografia, engentaria genética (projeto Genoms), pesquisa em quimica de potimeros, Dateanes sau ct Fro-[ 0 Som = ce it frm} of = = So ar = 7 aaa o Figura 2.2: Chsiicagte do pipeline segundo Handler @ © Ramamoorthy ¢ Li [Ram77) propuseram uma outa classifica, baseada na coniguragzo do pipeline ea sun eseasyia de conteoe: flo 2— Arauiteur + Unifunsio x Mutifanso - Um pipeline Unifungio tem uma fungdo fsa ededicads. Por exenplo, 0 CRAY-1 possul 12 pipelines unifuncionais executando operastes escalares Vetoriais de ponto fixo e panto Mutwante, Multifungio € o pipeline que texecuta diferentes fangdes em tempos diferentes ou ao mesmo tempo. Por exemplo, 0 "TASC possi, para 0 seu pipeline, quatro fungdes que Sio reconfiguréveis, uma & eda temo, para executatoperagdes Logiase aiuméicas. ‘+ Estitico x Dinimico - xa classficaglo € decorrncia da anterior. Um pipeline ‘estitce Gaquele que s6 pode assumie uma funglo num determinado instante de exp. Eo caso da méquine TI-ASC, acima citads, que precisa terminar uma funglo para ‘enllo recnfigurir-se © iniciar a execugio do una nova fungio. A muiona dos ‘computadoresexstenes possuem pipelines estiicos. Num pine dinmico, diversas ‘onfiguragies de fungoes podem cocxistrsimultancamente, Nio hi a necessidade de ‘esvariro pipeline para iniciar uma nova fungio. Ese ipo de pipeline nio & comm ‘evido & complexidade no controle da dinimica de troca de fungbes. Pela defnigio, ‘um pipelisedinimico 6 automatcameate do tipo mulifungao. + Escalar 1 Vetorial - Dependendo do tipo de intrugdo ou tipo de dado, 0 pipeline pode ser classticado em esealar e vetoril. Um pipeline esealarprocessa uma seqiéncia de ‘operands escalres $05 0 controle de um lago de DO. Se o lago do DO for pequeno, ‘suas instugies podem fear armtzenadas nim bufer (meméa) de instrugies, © 0s {ados, numa meméria cache, suprindo dessa Terma 0 pipeline de forma eoatinua. O ‘Pipsline yetorial &projelado para atender a insirugdes veloias processando operandos ‘otriis.O processameato dos operandosvetoriis pels pipelines est sob controle do hardware edo firmware. No caso dos pipelines escalres, esse controle € por software. Estes computadores, que empregam pipelines vetorisls, sto conhecidos por Processadores ‘Vetoriais, ou Computadores Vetorinis ou ainda Maquinas Vetoriais. Devido 20 Tato de que a rnelhor aplicasio cos pipelines aritmlicos € 0 processamento veri, & comm chamar es processedores pipeline de processudoces Vetorias. Nao obstanie, 0 processamento vetorial pode também ser executalo em provesadores matricas. 24 Bntrelasamento de Memorias Antes de entrar nas técnicas de projelo de pipelines, & importante conecer as sécnicas ‘envpregadss para aeleraroacesso is memrias deforma & matter o fluxo regula de dados ou de instrugdes para o pipeline. A organizagao de meménas em miguinas parlelas seré vista em setabes no Capt 4 ‘Um dos grandes problemas que surgiu quando do aumento de velocidade dos processadores era conseguir que a veloidade das memérias padesse acompanhar taxa de ansTerencia de dados © ‘instru necess ra para o processadr. ‘A pantie desea necessidade, surgiram duas Wenicas para acolerar a taxa de transfert portano,atender a demanda da CPU: ‘+s organieagio de meméria de acesso simultineo © ‘+ a organigagdo de meméria de acesso concorreate. 24.1. Meméria Eatrelagada de Acess0 S ‘A orzanizagio de meméria do scosso simultinco $ a técnica mas simples que empregs 0 ‘enderegamentosimulneo& vrios médulos de meméria,lendo varias palavra, uma por mulo, Argues Rose Phil Na ‘no mesmo acesso de mensria. Para isso, o processador emprepa ox bits de mais alta ordem da palavra de enderego para acessarsimultaneamente os diversos médulos de meméria (Figura 2-3a). As diversas pala, uma para cada médulo, serio armazenadas nos egistradores aps ‘concuiro tempo de aceso da meméria.Pasteriormente,o procesador pipeline irk etirar esas palavras dos médulos, un a uma, través de um multiplexador controiado pelos bits de menor ceded pala de eso. A Figura 23 Tomece ma ih do grams ep 0 incionamento do acess0S Memiia Dado ee Muliplxador » igura23: Onarizaio de mendes do eesoS © cenrelagamento $ € aaquado para scessar vetoes de elementos de dados, para a busca antecipada de insiigdes sequenciais num processudor pipeline, ou para acessat blocos de informagdes num processidor pipeline com cache. Como panto negativ, esti Tato de que 0 ddesempenho i se dterioar quando for necesséro enderearpalavras no sequenciais, pelo fo de que virios dados buseados num acesso no sero aprovetados. 180 Tevou os projlists & Proper uma outa Seni de entrelagamento, 2.42 Meméria Etrelagada de Acesso C ‘A organizaglo de memeria de acesso concorente C emprega a tonica de acesar os mdulos de ‘emir Soquencialmente um apés o outro de forma sir oblendo as palavras nessa inesma order pos a passagem do tempo de acesso das meméris. Para tal, os enderogos de baixa ordem S30 tempregados para selecionar os médules,enquanto os do alta erdem selecionam os elementos do rméilalo. Os enderegos seo colocados nos rogistradores um depois do outro, formando a Seaiéncia dos dads ox intros buscadss. ‘Um exempo do diagrams de tempo de um acesso concerente aos dados num sistema com 8 dulos € apresentado na Figura 2-4, a ‘enpode Ace Ta Médulos Mensa » Figura 2-4: Orunizagto demandes euregin de sesso Ness tipo de orgaizaco, apés um tempo inicial Ty de acesso & meméria, as elementos estario Aisponveis no baramento numa seqiéneia de tempo ¢ igual ao tempo de acesso dividido pelo ‘numero de madulos de meméria M. ‘Tat Tempo para acesso uo elemento k ‘Um das pontos alls da téenica de entelagamento C & a possibilidage de acessar dados ou instrugdes que no estejam em enderegos sequenciais. 0 acesso aos elementos na memria pode ser feilo Aqucles que esto a distincias d (primes do nimero de modulos 4), na mesma taxa. A Figura 2-5 apresent dois exemplos de acesos a distncias de 6d Figura 25a) 3d (Figura 2-5b) para organizagbes com 8 médulos de memiras. 7 vo Médulde 4 +—von Mens 3 | Yan i von “Tempo » ; vas, fpeeg 5 i Mitulosde 4 a ee af Mamita 3 i ye iat ‘Tempo » Figura 2 Membr eneligada Ccom dts malo ued Exist um tercelro tipo de organizagio conbecida por C/S que é uma combinagio da $ da C. [Nessa situa, os modules esti coafigurados na forma matricial. Essa técnica ¢ empregada ext rguiteturas com maitplos processadores pipeline e foi empregada no computador Cray 25 0 Pipeline de tusteugbes 0 pipeline de instragdes 60 mals simples © mais difundido dos dois tpos de pipeline, Consiste basicamente na execugo concorrente das etapas de busca de istrugio (BI), decoditicagao (D), busca de operando (BO), eexccucio (E). ‘Como exemplo de uma arquittura pipeline de instrugdo que apresenta mais de 4 estiyio, ‘estudamos a seguir, na Figura 2-6, a arqitetura do IBM 360/91. Nesse computador, & Ssepmentacio funcional dis suas diversas etapas & composta por um estgio de geragio de ‘enderego, um segundo esigio para © acesso instragio e dois esigios para a decoditicasio (tereeiro © quarto. Nesse pono, a execugao é dividida: de um lado, os esigios 5 e 6 geram 0 tenderego de operando, edo utr lad, os estigis 7a 10 aguardam o aesso a0 operand. Nessas “imasetapas, a instrugde é movida para a unidade de ponto Muruane nos esigios 5 e 6; a0 sétimo, & felta a decodifiaedo da instrugio de ponto ffutuane; no estgio 8, & preparada 3 unidade de execucio; no tempo 9, a instrugio & movida para a unidade de execugdo; eno tempo 10, € aguardado 0 operando. No estigio 11, & unficado o processo com o recchimento do coperando ¢ da insiragio; no estigio 12, operando é movido para a unidade de execugio. Por fm, nos estigos 136 14, ¢executadaainstuguo. Copivulo 2 Avguitstras Pipeline 2 Gent Endo : du Tnsrugso ‘Aces Tnstragio 2 “Mover para a Area : ‘de Decodiicasa0 Decodiiar | Tasso 4 Gerarokndenge | Moverlnswugiopama | 5 og Go Operando | Unidae de Ponto Fane Decaicars : Isto Preparar Unidad [ deBsecusto ‘Acessar Operando Moverlningio pars |g a Unidad de Exceagto EsperarOperando | 10 spear Retomo 7 do Operant Mover Operando para H aUnudade de Execugto Execute Isr B Figura 26: Bago a argaiteus do 1BM 36091 Para atender aos tempos varidveis das insrugbes, o 360/91 emprega diversas téenieas para fiminair os efeitos “como memiria entrclagada, paralclismo das fungies artmiticas, srmizenamento de dadose avango interno. Para um bom desempento de un pipeline de instrugio, & necessério qu cle seja abastecido continuamente com insrages. Quando ecorre um silo no programs ou uma inferupgio, divers cicls to perdidos para evaziar reeatregaro pipeline. [Exstem técicas cue permite melhorar esas insirugbes, ts como o armazenarpento de dads, teatamento de salon oimizagio no escalonamento de tarefas, buses anecipada de insrugdes, © jutras que sero abordadas no peSximo item, Como visto no inicio deste capitulo, © pipeline de insirgies comeyou a ser empregado nos ‘omputadares no final dos anos 50; j8 nas arquiteturas dos microprocessadores, ess. {nica {01 ‘eiprogada a partis do fim dos anos 70. a el we 2.6 Tempos de um Pipeline Foi visto que um pipeline & uma cascata de estigios de processamento,sendo que o tempo To ‘el6gio que sincroniza o funcionamento dos estos do pipeline € dado pelo tempo do estgio. TE; mis lento, adicionando o tempo de tansito pelo regstador TR (Figura 27), sendo } 0 ‘nimero de estigios para execucio de uma trea, Por exemplo o estigio de decoificagio de wns instrugdo é bem mais rpido que 0 estgio de busea do operando na memes, pant, entre os ois estgios, sero imo que comands o tempa do reg do pipeline T=maley+7R Por conseqiéacia, & importante, na definigho dos estgios de um pipeline, que estes tenham ‘empos semelnantes para evtarperdas e, por conseqiénca, um diminuigho no desempeaho da iéquina. Na Figura 2-7, observa-se nas fases mais escuras as perdas nos estiios de um pipeline hipotéio, TTR Tempo do Regisrador ‘TE Tempo de Exscagio ‘TP Tempo de Peed Cee eee ee] i Figura2-7: Prt osetia dum tine ‘Teoricamente, um pipeline com j estigios tr um desempeoho j vezes maior que uma méquina Seatlencial comum na execugdo da mesma tae. Isso pode ser melhor compreendido com a Figura 28 do diagrama estigiotempo de um pipeline de estgios. Sea tala fosse exceutada ‘numa méquinasequeacialrormal, eta levaria 47 normalmente (sto no & completamente exato, pois nfo haveriao tempo ds registradores 7R, nem as perdas TP). Numa maquina pipeline, 8a lurefa continua levando 47, porém, como as tres esto encadeadas, eps o tempo 47 para suid da primeira tarefs, a segunds arf jd serd completada apts devorrdo apenas tempo T,€ assim sucessvamente. A cada 7, fear pronta uma outratarefaencadeada. Na maquina commu, & segunda tarefas6fcaria pronta 47 apna primeira arta (Figura 2-8), ae ta Tara 2a Tafa Sa Tea EA 1 ie 5 n/m pa] raf ta [a [owe [ooe fee dene] ove fone fone ere et fri [alts [- : roe fose fons] Teed Tee a) renee | zetia | sre an le[ele[e la] s[n |e » nem Dp rs Plo acima exposte verifica-se que um pipeline obtém seu miximo desempeaho quando esti cheio, completandouma tatefa a cada tempo T. Observando-se a Figura 2-8, concluise qu, até a ‘rimeirstarefa ser concuida,ocorre um atraso de 47, donde se obtém que un pipeline rocessa m Aarefas em G+ Numa mguina comm, esas tarefa levariamn n,.7: portanto 0 Ganho de veloeidade (Speedup) {G de um pipeline & dado por Por esta frmula, observase que o miximo ganho de yelocdade, portanto, 0 melhor desempenho, ¢ obido para um m grande quando o ganho tendeia para j. Esta sera a situaso ideal: Gj. Na rerdade, esta siuagio nto ¢ alcangada devido is dependéncias de dados Gas insrugdes, das interupgSes, dos saltos de programa e de outros foes ‘Outra informagio cue poe ser obtida& a Eficinela do pipeline, que & medida pelo percentual de ‘espagas orupadas pelo total de espags possveis no dagrama de estgiotempo. (nt) ws) FGT-G-) J+ G1) 2 tone A. ‘Comparando com a expressio do ganho, verifica-se que a relagi é dad por De R Navowx G J ddonde a eficignciatende 100% quanto maior for 0 nimero de tarfas processades (n> ), isto 6 © pipeline melhora a eicigncia na medida em que as perdas iniias no preenchimento do pipeline diluem-se com 0 compsimento das taefas a serem processdas em sequéncia e sem Interupgao, 2.7 O Pipeline Aritmético © pipeline aritmético & enpregado para acclerar as fungbes logic ¢ aritmiticas das ULAS ‘aravés da segmentagdo éss suas alividades de exccugio em estigios que serio executados ‘concorrentemente, dé forma semelhante ao que € feito no pipeline de insrugto, através da sobreposigio de operagses Porant, a apicagdo da tsnica pipeline sobre as operagdesartmética lev ao surgimento do Dipeline atméico, Historcamente, esses pipelines surgiram pela diieuldades que 0 primeiros ‘computadares tinham em executar as operagbes de pont fltuantes e outs operagces mais ccomplexas. Nos primeiros computadores, eram empregadas chamadas de sub-rotias para a execugdo destas instragBes que levavar raullas veres de 20 a 50, as vezes até mas, cielos Je instru. Posteriormente, os computor comegaram a empregarplacas com hardware espectico para a texecugo mats rdpida desss insirugdes. Com a chogada dos microprocessadores,aparoeram 38 tunidades coprocessadoras, 8086 com a unidade de porto Mutuante 8087, posteriommente 0286 ‘com 0 287, seguido pelo'386 com 0 387. A partir do 486, houve a inca do hardware do ‘coprocessador 0 mesmo chip. Todas esias unidades coprocestadors, hoje incorporades 10 Proprio hardware dos microprocessadores, empregam 2 técnica pipeline na. exccugio das ‘operas aritmeticas, de fema a permite que sejam exccutadas deforma mais répida. Hoje em ‘a, fodos 0s microprocessedores modernes possuem pipelines antmsticos [A Figura 2-9 apresenta urs exemplo de pipeline artmétco: um somadar de pontoMutuante que ‘emprega cinco estigios. jae Se Cnpan «Sk Estigo 1 Manisa | Mando o Mawr | Bxpomne 1 Registrar Esgio2 Regsuatoe Esigio3 Register Estgiod Regisrater Estigo Expocot U1 Mamisa Resultado ‘A operagio de sor fi dividida em cinco taps: companigio dos operandos A e B; juste da mantissa: soma dos operandos A e Bs verificayio de zeros oriundos da Some; juste do expoente final. (Os operandos A eB entrar no pipeline sob a forma de mantissa com expoente. No primeiro ‘stigo, hi uma comparacio para Verificar qual € 0 operando com expocate maic. O segundo ‘stfgio execula 0 ajuste na mantissa do operando menor slravés de uma operagio de ‘eslocamento. Com as duas mantissasajustadas, a soma dela éexcculada no terceiro estigio. NO ‘quarto estgio, hé uma verficacio se spareceram zeros na mantissa resultane da soma, Pot ‘limo, no quinto estigio, sto acerados 05 zeros através do uma operagao do deslocameo por ‘eonsencia,sio somados 20 expoente maior inicial o mero de deslocamentos para bter 0 orrto expoente, Desa forma, obiém-se como resultado final um expoente © uma mantissa rormaliada, 2% plteturas Paralelas César A. De Rose « P través deste exemplo, obsva-se que 0s pipelines atmos nada mais sio do que a divisio de ‘operagies antmetieas em suoperagtes conforme as regras de prajto de pipelines, O gue o= toma inteessantes ¢ que, nas operagdes com velores, a mesma operagio aritmetica é rormalmente repetida sobre tds os elementos do veto, e que essa reptigao da operagao sobre ‘9s elementos permite 0 emprego da tenia pipeline com deseripenho melhor quanto male Fr 0 ‘comprimento do vetr, 28. Téenleas de Projeto de Pipelines de Instrugio ‘tases apresentaalgumas téenicas empregadas para melhorar o desempenho dos pipelines de {nstrogio em especial no tratamento das instrugdes com desvios condiiona 28.1 Busca Antecipada de Instrugdes {A t6enica de busca antecipida de insirugtes 6 hoje consierada usual no projeta da maioria das ruinas ¢ microprocestadores. Consiste em adizntar a busca das insti, armarenand estas ‘numa pequena mena (cache) ou em registradoes, antes da operagio de decodificagto da instugio, Por exempl, o 380/91 antecia a busea de 8 instrugdes, (© acesso a meméra sempre & uma operagBo lena, portant 0 armazenamento temporrio das inteugdes em registradores ou em poquenss memiris rpidas 20 lado da UCP (Unidade Central ‘de Processainento) permite minionzar os tempos perdidosnesse acesso, Esse armavenamento € possvel pelo aproveitamerto dos tempos das insiagGes em que nio acore busea de dads na Imemria, Nas arguitetras mais rpidas, como a pipeline, ni qual sio empregads menirias ‘entrelagadas, essa técnica continua interessanie por diversas azSes, entre as quas ratamento de desvios abordado na préxima seq, 282. Gerenciamento de Desvios A distibuigao tpica da ineidéncia das instugbes pelas suas eategorias fica com 60% para insrugbesaritmétcas, 15% par insrugies de armazenamento, 5% part desvios incondicionsis © «dv ordem de 20% para o desvios condicionais (Hwa85) (Figura 2-10), "igurs 2-10 Disb ds iden de odes Dos 20% de desvios condcionis, normalmente 8% ndo S80 tomades ¢, portant as instugses ‘continuam seqiencialmente sua execusi, enquanto 12% slo tomados, obrigando o edleulo do Capitulo 2— Aroulturas Pipeline 22 novo endereso pan inicio da nova seguéncia de insirugies. Essas dass stuagBes, desvio incondicional © desvio candicional com sucesso, prejudicam grandemente © desempeno do Dipeline, pois scarream o esvaziamento deste para inicio da nova seqUéncie deinsrugdes (Figura 2) mus a ja # es) | « = a Piqua 2-41: Alero de sqltol do ppt devi execun de uns de io Além dos desvies, as interrupgies também prejudicam o funeionamento de um pipeline de intrugdes, Existem basicamente dois tipos de imerupeses: as “procisas" devido & instruges iegis, que So det-tadas no estigio da decoditicaao, e a “impeecsas” que ccorrem por falhas no endereyamento, ra execucdo de fungdese por quras causes que acorrem no melo da execu 4: instrgio, No primero tipo de interupgto, o pipeline € bloqueado, no autrizando a entrada 6 neahuma nova iastrugdo até que soja watada a iterrupgio, No segundo tipo (imprcia), as Instrugdes qu ji esio no pipeline serio execuadas 26 o fim para eta iniciar otatamento da inerrupgdo. O Craj-1, por exemplo, emprega a téenica de chaveamento de conexto para rocestar a interupgoes. se ce ‘Sharma Bee = one detinn Anes ‘sim Piqua 2-12: Eyez de os memsiias pan amazcoaneto ds iste bse sce ara minimizar os efeitos dos desvios nas arguiteluras pipeline, ¢ empregada ums técnica de armazenamento dopo. Avavés dessa ténica, as insrugies da segineis normal sio armazensdas ra memériaS de busea antecipad, asim como as insruges a nova sequéncia resultant do esvio slo armazenadas em uma meméria ausiliar A (Figora 2-12). Quando & instuglo ‘ecodificada & um salto condicional, aguarda-se 0 resultado do teste para detcrminar s® a sequencia de insruydes continua vindo da memeria S ou se serS0 emprezadas as insirugbes a rmeméria A. Dessa forma, nio & necessisio aguardar o esvaziamento do pipeline para iicit a nova sequéncia de insirgoes. Em um préximo item, serdo abordadas utras formas mais solisticadas de gererciamento de desvies. line O. A. 29 Instrugoes Vetoriais As instrugies vetoriais surgiram a parr do momento em que se verficou que os pipelines atméticos eram adequades para processar operagSes de pontofluwante com vetoes. AbaixO, ‘um exemplo de um lago de um programa em Foran po10 t= 15 ao ¢(z) = A(z) + BIZ) {A teansformago desse lago numa insugio vetoral passa pela sua reprsentago sob a foema sais: CULM = AGN) + BC Aravés dessa represenagio,entende-s que 6 feta a soma dos N elementos do vetor A com os N ‘elementos do veer B,resitando no vetorC cam N elements Para exccuaressas insirugiesvetoriais,existem 3 solugSes pincpas: 8) iar uma sub-roina para a execugo da soma sob a forma de um programa qué far as ‘operagdes de manera kimizada em um Iago repetitive; ») implementar © canjumto das insrugdes vetoriis. através de micropogramacSo adicionando-o a0 eanjunto de instrugdes da miguina. Esta solugdotraz uma boa melhora ro desempentio pos, executada dieiamente pelo fabricante, permite que 0 controle dos Tags e outras tress sjam exeeutados de uma maneira rpida, polos microprograms sta solugo nfo alerao hardware da miquina, (©) projelar um hardware que entenda diretamente as insrugdes de forma a automatizar & ‘busca dos elementos dos vetores na mena a controlar sua execugao nos pipelines Esta lima solugéo € que propiciou o surgimento das miquina conhecidas por Processadores Vetorias. « qual, pela sua capacidade de processar operagdes com vetoes com. timo desempeaho, levou 3 constugio dos Supercomputadores 29.1. Formato de uma Insrusio Vetorial {A insirugo de um provessadorcomum, de um mieroproessador,normalmente possi um campo para defnigio da operagao a ser exeeutada e um ou mais campos que dfinem a posigio do (operand, etn geral um encerego de meméria, conform a Figura 213, Ciao ‘Opeacio Ente do Opranio Piqua 2-13: Campos de ums nso comm [No cato de uma instrusio vetoril, 6 nocessioestabelecero enderego de todos os elementos do vetor. Para ta insiugie necessita de mais eampos (Figura 2-14) para estabelecer todas sss informagées: 4) ebdlgo de operagap-espectia a Fungo a ser exceutada no pipeline; b) enderepo de base ~ (ou registrador vetoral) especifica 0 enderego onde inicia 0 ‘rmarenamento dos elementos do veoe na meni: Copltulo2=Avauiinras Pipeline a ©) incremento de enderego- especificao incremento necessrio para endereyar 0 proximo clemento dover: 4) offset de enderego - ese indice relative ao enderego de hase, permite 0 aceso a vetores ‘eslocudas, Os elementos do velor que serao empreyads na operagoiniciam a pani de ‘um enderege deslocado do enderego base; ©) tamanho de vetor- specifica o tamanho do veto, o nimero de elementos que compéem Ciagess | Gidea bae | Tread Naaso a aa Opencio_| “Soveur Enierego|_ Petes aoVece Figura 2-16 Campos de una inssto vil ‘Com essas informayies, © hardware do processador pipeline consegue decodifcar s instru, buscar tds os clenentos do vetor e executar a operacio sem a necessidade de neahuma outra ‘nformagio de outrainsrugto. O hardware fica encarregado de todo controle nocessirio para ‘buscar os elementos do veto, um a um, ede sux execugao até eneerrar com osm elemento 2.10. Arqultetura de um Processador Vetorial Na seg anterior, verificow'se o formato das insirughes vetoriis © sua importincia no surgimento dos supercomputadores © posterionmente dos microprocessadores com maiores ‘apucidades de processamento. Também loi visto que o pipeline vetonal é @ melhor solugao na ftimizagio de areas vetoraisdevido a0 ato de o projet dessas arquiteturas possur todas a8 estruuras (meméra, controle de lao, ratamento de indices, et.) necesirias para atender esse Drocessamento [Neste soso, ser epresentado a estruura de uma arguittura que atenda a0 processamento de instrugdes vetoriais no 56 dos blocos pipelines mas também dos outros blocesnecessrios par ‘seu funcionamento como regsradores, memirias © outros. O modelo bisico [Kog6!]INa\90] para um processadse pipeline vetoial pode ser representado por eito blocas hisicos (Figura 23): ‘Meméria Principat - MP Unidade de Decoiicagtoe Processamento de Instrugdes - DPI Rogistradores scalars - RESC Procescador Escala - PESC ‘Controlador de Instrugées Vetoral CIV CControlidor de Memeria de Acesso Vetrial - CMA Registradores Vetoriais- RV Processador Vetoril - PV ‘A Meméria Princpal, MP, armazena os dados vetoriais, os escalares © as insirugies. ‘ceganizada para ober um grande tena de acesso para ae operagGes veloriase, portant, emprega ‘onicas de entrelagamento para acesco aos dado e us instraghes. Para alendet esas téenieas, 8 -memra €dvididaem motos. wo De Rosee PI [A Unidade de Decodificario e Processamento de Instrugdes, DPI, ¢ responsive pola busca das instrugdes na meméria, pla decodiicagdo © polo encaminhamenio destas pire 0 Contolador ‘Vetoral ou para o Processador Escalar coaforme 0 caso. Entre xs tarefas desta unidade, esto 0 teste de dependéncia de didos, controle do programa, o gerenciamento da eniidae said © 0 serenciamento da memes. 0s Repistradores Escalres, RESC, slo responsive polo armazenamento dos dados, vindos da rmemiria principal, para execucdo pelas instrugées escalares, assim como pelo armtzenamento os resultados anes da sua tansferéncia de volta para a meméria principal. Ele fornecem os ‘operandos para a exceugto das instrugbes no Processador Escala, | x Toss! | Caartader Regisradores | | ‘Yewrial Neoris Pipa? 1 | ne Meméria | ee tnstruges a) Vest = | Fist recessamenno| Regandres : sess em | isi | fee rcetodor Ela iar 2-16 Moo io de un Prosar Pptine Vt (© Processador Esealar, PESC, & composto por mitiplos pipelines escalares ¢& responsével pela execugdo ds instrugies ealaes (© Controlador de Instrugies Veto, CIV, rovobe as instruges da Unidade de Decodiicai, DPI, quando recoahecidas como vetoras, para preparar a exccugio nos processadares pipeline vetorais. O Controlador decoifica. 2s insides. vetorais, calcula os parimetros de cenderegamento de operanios, prepara a unidade geradora de enderegos vterias, configura © processador vetoral pipeline © monitora a exccugio da instugio. A unidade CIV possui a ‘apacidade de patcionar ma tarefa vetorial ealoed-a aos diferentes pipelines vetrais. Ao fim dda exccusio da insrugdo vetoral, 0 controlador Finalza a operagio através de operagies de Timpeca ede acer dos ryistradores de estado. 0 bloco Controlador de Neméria de Acesso Vetoral, CMAY, 6 responsive pea tansformagio das informagSes fornecidas pelo Contolador Vetoral em tansferéncia da meméria principal de todos os elementos do, ou da, vetoresoperandos para 0 Registrador Escala. Da mesma form 0 Pipeline controlador seré responsivel polo armazenamento das vetoes resultados na meméria, Esses facessos devem ser otimizados de forma 2 fomecer os dadas segundo a demanda do Processador Vetorial, 0s Registradores Veterias, RV, possuem as fungBes de ser uma meméri lea para os elementos dos vetares ede descompaibilizar 0 acesso & Meméria Principal com as nocessidades da Unidade ‘Vetoril,Funcionardo como uma unidade de armazenamentointermediino. Normalmente uma das fungdes 6 a conversio enre 0 acesso & Memaria Principal de longos segmentes de vtores com a ondem de fernecimento dos operandos aos pipelines. Esses registradores podem, unio, ser visiveis 20 pregramador. Usualmeate, compertan-se como memérias pequenas de scosso aleténio, organizalas ou como fila, ou como memérias de acesso associative. Permitem teansfercia de bocos para a meméria principal simultancameate com acessos da unidade voto 0 Processador Vetrial - PV, & composto pelo conjunto de pipelines vetoias © responsavel pla execucio das fungoes artméticas sobre os vetores avavés das instrugdes vetoniis. Esta ‘nidade pode ser composta por um ou mais pipelines (mulippelines) que podem se ativados em paralelo, Os processores atuais normalmente possuem pipelines com fungSes predefnidas & portato so estas, ou sea, sua configuragio € fixa durante a execugdo da instusdo vetral Uma unidade possi de 28 pipelines, sendo que alguns podem ser repetidos para pert & Aivisao de vetoes longos entre dois ou mais pipelines. 0 contole desies pode sr Tito por hardware ou microprograma Do ponto de vista o funcionamento global, é interessante verifcar que o funcionamento destes blocos itegrados ¢executado de forma Sobreposta, representando uma espécie de pipeline no nivel macro [KogSI), 2.11 Dependénctes entre Instrugées [Na execugio de insrugtes num ambiente pipeline, mais ainda num ambiente superescalar, que emprega vitios pipelines, como seri visto no Capitulo 4, existe a necessidade de verficar e mpedirstuagdes de conflito causadas pelo luxo de virasinsrugGes simullaneamente: 530 25, dependéncias entre instrugées ou dependéacias interinstragées. Exisiem ts pos fundamentas e conlitos que limitam 6 desempento: 1 Dependéncia de Dados; ‘Dependéncia de Conroe + Contlitos de Recursos. ‘Veremas que a wenias de hardware e de software so utlizadas pare diminuiro impacto desses coaflites no desempenho das arguitcuras. A seguir, cada una dessus dependéncias sera sapresentada 2.11.1 Dependéncias de Dados ‘As dependéncias de dados aparecem quando, num pipeline, esto Sendo encadeadas operagBes, Jevando uma desss a solicitar dads de uma outra operafo que ainda nfo teve seu efleulo concluido. Por ouro lado, essas dependncias precisam preservar a ordem de execusio das insrugdes do programa seqencal.Portanto, embora esas instrugbesestejam sendo executadas sob forma encadeala, gerando uma concorrécia temporal, elas nunca poderio gerar resultados ‘que no respeitem ocileulo sequencial normal. Esas dependéncias dvidem-se em rs grupos 2____drauitenras Paraelas César AF De Rose Philioge 0. Neva + Dependkncias de dados verdadeiras; + Antidependénis * Dependncias desaida ‘Uma ténica para eepresenar as dependéncias de dados 60 emprego de grafosorentados (DDG = Daa Dependence Graph. Os vértcesrepresentam as instrugoes, enquanto a8 arestas definem as dependéncias entre as nsirgses. Na Figura 2-16, temos um exemplo de’emprego desses ‘rafos (PO), no fee rB € 1-72 r6 © 12+ 37 Flo € rl 4 36 © ~ > Observase que © comando j depende do comando i através da varével 1, enquanto 0 comand depende de e'através das variveis £1 e x6, espectivamente Dependéncias de Dados Verdadciras [As dependéncias de dads verdadcias ocorrem quando uma Insrugio necesita de valores produrides por instugdes anteriores. Essas dependéncias sfo também conhecidas por RAW (Reachdjter-Wrie) ow dependéneias de fluxo. Abaixo, um exemplo de uma soquncia de Insrugdes vom ess tipo de dependéncia a atc D=A+E No exemplo acim, verific-se que 6 necessiio primeira caleularo valor de A para depois poder ‘executar a insrugio que clcul o valor de D, pois este utiliza, no eéleulo da sua funglo, 0 valor ’. Essas dependencies no podem ser eliminadas sob pena de mudar-se ssemAntica seqlencil o programa. ‘Antidependéncias [A situago de antidependéaciaacoatece quando uma intra utiliza um valor de uma varivel ‘que € aualizado por uma instragao postecior. Esso tipo de dependéca ¢ também coabecido por WAR (Writ-Ajter-Read). Abaix, um exemplo de uma seqncia de insrugoes com css ipo de dependéncia Capitulo 2 — Avauiteucas Pipeline 3B [Neste exemplo, observa-se que valor de B seri utuslizado na exceugio da segunda instragio, Portant, a insirugio B deve ser executada antes, sb pena de ser empregado um valor de incoreto quando d eélealo de A. Essa dopendéncia pode ser eliminada, rocando a ordem de ‘execusio das insiraes,calclando primeiro 0 para depois ealeular 0 A Dependéncias de Sada 'As dependéncias e sfda acontecem quando dvas instrgées wilzam a mestna posiglo de rmemvéria como destino. Essa dependéncia€ também conbecida por WAW (riteAfie- Write). [Nbaixo € apresentado um exempl dessa dependéacia. AsBt AeD+ c z No exemplo acim, verfia-se que o valor de A é ealeulado tanto pela primeira, como pela Segunda instrugio. Num programa seqlenial, 0 resultado da segunds instrugo € que ser retdo, portant © pipelire devera respeitar essa ordem. Essa dependéncia pode ser eliminada, ‘eipregando’so ua renomeacio da variével 2.11.2 Dependiacis de Controle [A impossibilidade de conhecer as resulados de um desvio condicional antes de exccuté-lo eria Pontos de dependéscia eonhecidos por “dependéncis de conte”. O pipeline fica sem saber se ‘Continua exeeutando as instrugdes pelo fluxo de insrugdes principal, ove deve desvar e adotar ‘nove fluxo de insrugbes resultado do desvio Este tipo de sitagio gora uma dependéncia de ‘controle, conhecida também por dependéncia procedural [Sia96]. O processador 56 pode continua a execugho efetiva da instugio apés canhecido 6 resultado da condiglo e, potano, sp6s ter oconhecimento de qual fuxo de insruges Seg © feito das dependéncias de controle afeta 0 desempenho das arquitewras pipeline, mais cxpocilmente das syperesclares, pois, estabeecida a necessidade do desvio e, portato, x ados0 de nova seqicncis de intrugbes, € necessério descartar todas a instugies que jf esto no pipeline. Para dimimir esse impacto no desempenho, foram ctiadas lécnias para prever 0s ‘Gesvios sob forma espoculativa, diminuindo a taxa de execugso de sequéncias de intrugbes ‘desnecessdrias. Exss(Eenicas de previsio de desvos sero analsadas no préximo capitulo 2.11.3 Conlites de Recursos 0 confito de recursos € resultado de uma compeigio de diss ou mals instrugdes pelo mesmo recurso a0 mesino iempo [St96. Estes conlitos sio também conhecidos por hazards esrturas {Pa97]. Quando cuas instugbes disputam uma mesma unidade funcional, uma delas deveré esperar pela iberagio do recurso, enguanto a oura est executando, ‘Uma forma de elminar esse tpa de canflita ¢ a colocago de mais recursos, porém essa solugio possui limites aa medida em que o aumento dos recurs encarece a arquittura,além de poder 7 ras Paral EDe Ross A. Navey cextrapolar o limite fico, padendo invabilizar a impementagio, Outra forma & a divisio dos recursos em estigios de um pipeline, porém o desempenho pode diminuir caso a0 haja instrugdes independents pra serem exeeutadas [ta96] 212. Vetorizasao e Otimizagio de Instrusies [Nas sages anteriores, forum vistos o funcionamento dos pipelines seus principas gargslos. assim como algumas solutes, do ponto de vista da arquitetura de hardware. Para melhorar © desempento no emprego d>arguitetures pipeline, dovo-s atentsr nko 36a genie de hardware, ‘como também 2 forma de executar as Instrugbes. A presente 50590 aborda como devem ser ‘excoutadas instrugbes vetoiais de forma a evitar que sejam produridos gargalos de software qu Impegam a execugao dessa: intrgées na Torma pipeline Boa parte das linguagens empregadas hoje em dia em Miguinas Pipeine, também conbecidas ‘como Processadres Vetor ais, sao extensdes do FORTRAN nas quais 0 programador empresa ‘uma linguagem de programago seqlencale & responsabilidade do compilador definir qual pate do programa pode ser exeeutada no pipeline. A razio do emprego dessa lingusgens € 0 aproveitamento de programas j exstentes ea failidade de programagao, minimizando custos de desenvolvimento. No entanto, para melhorar 0 desempenbo e obter maior pardelismo, 6 ecessirio que o programadr ow o compilador reesrutre 0 codigo. ‘Uma das reas de software em que majors investimentos foram feitos noe Glkmos anos foi na \deicegdo do parallismo, pis, através dessa tenia, os Tabricantes podem oferecer ao wsusrio uma méquina poderosa com um compilador que detecta automaticamente 9 parulcismo nim programa sequencial jexstene, sem que 0 usuéri tenha que reescrever ses programas e” FORTRAN. Claro que issondo ¢ muito simples, come ser visto nesta so. conjutos de insirugdes passiveis de processimento em. lores Vetorizadorese s20desenvolvidos de formas delectat 8 concoréncia de instrghes vetriais que possim ser exeeutadas num pipeline ou. nut ‘eneadeamento de ipelnus Um compilador vetorizske analisa principalmentelagos dé DO, gerando ego objeto para Instrugdes vetorais que possum ser executidas num pipeline. A grande barreira na velri2agio So 08 comandos de salto, as dependéncias sequenciais, a indexagio indirta ou no linear ¢ as sub-rtinas chamadas dentin de ages, conforme vst em segGes anteriores Normalmente, num compilador FORTRAN convencional, exist uma primeira etapa de andlise sic e sintica (parsing, seguida de uma exapa de otimizagio de eSdigo © de geragio de cédigo. Num compilador FORTRAN vetorial, a etapa incial ¢ a mesma © ¢ seguida de una ‘onversio das operagdesescalares seriais em cédigo vetorial, Alem disso, tenicas de olimizasa0 ‘io empregadas para melherar 0 desempenho ‘A vetorizago divides gealmente em dus partes: uma primeira de transforma dos lagos de DO de fill vetorizagto e uma fase mais complexa em que outras operagdes sio também vetorizadas. Para tant, € necessério um compilador bastante intligeme que possa acessar estruturas de dados complecas, Esse compilador necessita de ienicas de oimizagio soistiadas para aproveitaraarguiteture da méquina. Datalando o processo de weorizavotimizaglo,encontram:se quatro nvsis: 0 primero nivel & © de vetorizasao, encuregido da conversao de operagdesexcalares para vetriis ¢ os prximos lués niveis s8o Ue otimizario. Essos Us niveis dividem-se emi nivel de_paraelizagdo, 2 = Argultemras PI 45 encarregato do aproveitamento simultineo de mitiplos pipeline: nivel de otimizagio dos registradores vetornis, que esabelece a melhor alocagt dos rogistradores do. processador pipeline; nivel de etimizagto geral,encartegado da aplicaco de diversas tGenicasavangadas Ge accleragao. Abaixo, serio apresentadas algumas Iécnicas empregadas em compiladores ‘etorzadores modes. Um aspecto importante a ser salentado € que, considerando 0 esto atual das pesguisas em paralelismo, observase que um dos séios problemas 6 a obtengo de linguagens parlclas que ossam rodar em miquinasparalelas. O quem compilador vetarizadorexccuta 6, na realidad, ecuperagto, partir de um programa seqUencal, do paralclismo cxstente no algeitmo que © eros 2.121 Vetorzago de nsiragdes [Abaixo, serio apresentados alguns exemplos de conversio de comandos FORTRAN em c6digo ‘etrial tl como um compilador vetorizadorexecutaria, ‘Conversto de um laso de DO simples numa instrugdo vetorial po 40 r= 4,100,2 40. A() © B(12) + C(eL) transforma-se ems A(4:100:2) = B(6:202:2) + c(5:101:2) Emprego de um armazenamento temporirio po10 r= 1." AC) © Bi) + cur) oR) = 3 FACED [A vetorizago cria um problems, pois, numa operagio sealenial em lao, a operagio de 3+ 1141} seri executada sobre o antigo valor de A, enquanto, se for vetrizad, essa operagio sera feita sobre o nove vabr de A. A solugio€ a criagdo de vetoes tempos: ap (Lim) = A(eN +1) ALN) = BCLEN) + Clam) BIN) = 37 TEMP (2u “Troca da seqUéncia de exceucto bo 205 = 2.8 AW) = Bar) 20 BIZ) = 2 * BIZ) 6 Ara 4 Philione OA. Nas Na operagio em lago, 0 8(1 ~ 1) empregado na operagio A(1) €.0 valor de resutante da segunda operagio, portant © novo valor. A solucto é alterar a ordem das operages de tal ‘manera quea oper 2"5 (1) soja executaa primeiramente, Beem) asm) 2+ B (1a Biorm-a) Emprego de vetores longos Como j6 anteriormente mencionado, quanto maior © veter, melhor & 0 desempenho, dovinuindo 28 perdas com a inicialiasao do pipetine po 30 1-1,200 Do 30 31,20 30. A(T.) © BITS) + c(r,3) ‘A operago pode ser vearrnjada BO 30 91,20 o 30 T=1,100 30. AU.) = BIT,J) + C(z,a) Diversas ouras técicas sto empregadas pelos compiladores vetorizadores,além dessas, na deteegio © vetorizagio das instrugbes. De uma mancira geral, os compiladores slo muio ddependentes da estratura da maguina para a qual foram construidos. Como exemple, na Figura 2-17, € apeesentado coma seria executada uma operagio de soma de vetores C(I) = A(I) + BI) | 2 ¢ |_| t a = Figura 2-17: Soma de vetoes [No exemplo acim, 0 registradoresvetorias da miguina possuem até 64 posigde, o que permite reccher failmente vetoes com menos de 64 elementos. Os vetores A eB si0 previmente carregaos nos regisiadcres V1. © V2; aps @ opeagio de soma, 0 resultado & armazenado n0 ‘etor V3, a panir de onde poder sr armazenado enn C. Capitulo 2 = Arguitewas Pipeline 2 2.12.2 Otimizagio de FungBes Vetoiais Conforme mencioncdo anterionmente,existem diversas tenicas de otimizagio de fungdes, “Absino serio apresentadas algumas dessastenicas, mstrando que, As vezes, peguenas alieragDes fe clratura do programa contibuem de forma decsiva no desempeaho final do programa ‘executado numa maquina pipeline Desdobramente deconstantes sta técnica, ao detectar que um lago de DO serl emprogado para gerar constants, elimina essa ‘operago, e gers, em tempo de compilao, um vetor de constantes, Por exemplo, no lagoabaito po 40 r= 1, 50 40.00) =r essa operagdo pode ser subsituida por um vetor ACL) composto pelos elementos de 1 a $0 gsradas em tempo de compilag. AG) = (12,3, 2. 50) Destocamento de expresses invariantes [No caso de um programa rahalhar com dois Lagos um dentro do outro, se no ago interno existrem operagdesvetoriais que io variam eno possuem relagBes de dependéncia, & possvel Tevar esa operat para fora do ago Iss0 6 chamado de "movimento de cig. po 60 r= 1.6 Bo 60 Bia) = BU) + Ata) * ca) 60 comme © resultado flea poo t= am BEL) = Biz) + AU CD 0 60 J 1H 60 conrmuE, 2 ts el Empregando um vetortompordcio nO) = Ae) # cosy po 60 r= iN BO *) = BIL.) + 904) Bo 60 J= 1,3 60 conrmNvE Alocagio de registradores vetorials "Nos computadores vetoriais que trabalham com regstradores, 6 importante 0 gerenciamento esses reistradores de forma que cles mio sejam desperdigados desnecessarimente ¢ posteriormente faltem registradores vetorais para carga don velores, No exemplo daexecugio da expresso A > B * C, teramos a seguntealocagio dos vetoes: mea wee wee wewsv weve va Alterando a ordem de alocag, 6 possvel econamizaro emprego do registrar vtorial V3 mee wec viewer ve ween weusv ssa alterago pode acartetar um tempo de processamento mais longo, 0 que deve ser levado em ‘conta na decisao. liminagto de e6pias ‘As operages de carga e armazenamento’na mena principal sio sempre lenta,prejuuicando 0 de dados, determinando as dopondncias de dados entre instragSes ‘ara permitir um escalonamento reordenado dss insiugdes; + exeeugio especolaiva de insrugdes, permtindo um escalonamento otimizado de “nsrugdes, de firma a manter ocupadas o maximo possivel as unidades de execu. Quanto meméra itera, a arqitetura possui 2 caches de IGKB de nivel LI separadas, uma para os dadose outa para as instruges. A cache L1 de dados permite 0 acesso rapido a dades Fecentemente usados, ncementando o desemnpenho do sistema. A cache de nivel L2 (dispontvl para algumas verses), de2S6 KB, conhecida por ATC (Advanced Transfer Cache), permite um for vazdo de dadas ene a cache de nivel 2 onicleo do processador,redvaindo 3 lléncia de acesso A cache de dados. Algumas versies podem ter uma cache de 512 KB uniicada para fnstrugdes © dados. Do ponto de visa relative a barramento, para alender& cache de nivel 2, o Pentium It emprega tum dicado de 64-bit. ss leva a aruitetura do processador a tr dois sistemas de baramentos independents, 0 DIB (Dual Independent Bus: um paras cache L2 e outro pata stender a0 resto do sistema, ‘As caracteriticasdiferenes da arquletura soo fato deo processadorreeeber uma idenifieas30 fem hardware com um nimero de série e possuir uma unidade de Pooto Futwante, FPU, que Supori formatos de 32 bis, 64 bits (Segundo a norma IEEE 754), assim como um formato de 80 Dis Para atender a medidas de desempenho e execugio de testes, o Penitum I possul algumas faeiidades ‘+ Um mésdulo B'ST (Busl-n Seif Tes), que permite testar 0 microcédigo, a cache de instrugbes, a cache de dados, 0s bufers eas ROMS; ‘+ Um médulo de este de Portas de Accsso segundo a norma IEEE 1149.1, ue verifies as conenis atavés de interfaces padedes; # Contadores termes de Desempenho que sio empregados pura monitorar 0 esempenboe cntar eventos; ‘+ Um Sensor de Temperatura, através de um diode que €empregado no menitoramento da temperatura 37.2 Arquitetura do Alpha 21264 [A anquiteura do microprcessador Alpha 21264, Figura 3-15, possui da ordem do 15 miles de teansistoes, com largua de busca de 4 insirugdes © capacidade de ter 80 insrugdes Smultaneamente na arguttura, empregando & exccucio fora de ordem. O emprego dessus \éenicasoferece maior prxsiildade de explora o paalelismo entre insrugbes. ‘Vériast6eicas de prevido so emprogadas: além da previsio de desvios, © Alpha realiza a revisbo de acess & cache de insrugdes, permitindo minimizar a média de ciclos para acessar a cache e a previsio de oats, diminuindo a laténcia de acesso3 memes. ‘Acestrutura da hierarquiade memsria possul uma cache de 2 nives, sendo que a cache de nvel 2 fies fora do chip. As caches de instrugese dos do nivel 1 Sio 2-asociativase possucm 64 KBytes de memfria, Cada acesto a essas caches custa dos cilos. A each de nivel T opera com. reseal © dobro da freqléscin do processador, permitindo a exscuso de 2 instrugdes de acesso & ‘meméri no meso ciclo, le (asl oka | ges, ' Looe om oo, Tome BS ffs Sat exit || agece, [een HTT amano ee | |PeiEa | [anteRaaie | Cia] Fara. Aico Al 2254 © Alpha 2268 posu 7 esis no ppetne de insres dvd em Busca, Tanna Renomeagio, Delegagdo, Leitura de Regisradores, Execugdo e Meriva. (© estégio de Busca tz 4instrugbes pr cielo, executando também a busca antecipada de até 4 Tinhas de cache de 6$ bytes (16 instrgtes) [Kes99]. Para cada inka da cache de intrugbes, Ni uma previo da proxima linha edo proximeo conjunto. © processador I as préximas intrudes, usando prevsio, enguanto, cm paralco, completa o teste de validade das insiugGes anteriores (aot), © Alpha empregs ts algortmos para a Previsio de Desvis, compostos pela Previsio Local, Previsio Global e Algoritmo de Escolha. O lgoritmo local prevé os desvis locas, pequenos ages O algoritmo global analisa os desvio globais através de dois niveis ¢emprega uma tabela com a istria dos saminbos dos stim 12 desviosexecutados.O tercir algortmo decide qual {das previsdes ser empregada, local ou a global, através de win mecenismo do tipo votador. Na etapa de Transferéncia, os dados das instrugdes slo repassados para 0 hardware de Renomeacto de registadores, Esse estigio 6 responsivel pelo fato de © processador Alpha 21264 ser o primer da familia a executar fora de ordem. Atravésdesseestgio so ciminadas fs dependéncias de dados que no sio verdadeiras, permiindo um maior paralelismo de insrugses. Um registrador¢ slocado pare cada instruglo que precisa colocar um resultado nur registtador. Existe uma memdvia que faz © mapeamento entre os registadores visiveis © 0 ‘empregados pelasinsirugdes. [No extigio de Delegago,sBo empregadas duas fas, uma de dados inteiro ¢ outra de dados em onto fuiwante, Avavés de uma técnica do tipo Seareboard, oesgioseeciona as insrugdes das fils cujos registradoces esto prontos pura serem execuiadas, Podem ser despachadss até seis insrugdes por cielo até qual de iteirose duas de pont futuante “ Acguiteturas Paraelas = César AF De Rose ¢ Piling OA, Naveaee A Fangio do estgio de Leiturn de Repistradores permite preparer dios para a etapa de ‘execugio, Na execusio, exstem quatro unidades do intelros e dias de pono Mutuante com fungdes diferentes, algums, inclusive, executando instugdes para multimil Por dlkimo, o estigio de Meméria ¢ responsével pela guramia de que os resultados seam apresentadas de novo em ardem, mesmo que executados fora de ordem. Para tao, possl um ‘mecanismo que retira as instrugGes em order, Existe um buffer circular de reotdenamnento com 80 instrugdes que permite que esss sejam retiradas na mesma ordem em que foram buscedas. 38. Exereicios 1. Expliqe o funcionameno de uma arquiteurasuperescalare qual sua diferenga em relaglo & ‘uma aritetura pipeline simples, 2. Qual a diferenga no funcionamento de uma arquitetura pipeline que exccuta vetores de uma arguitetrasuperescaar? 3. Como funciona a etapa de Busca de InstrugSes © Previsio de Desvios quma arqittura superescalar? 4. Expligue a diferenga ene uma unidade de Renomeasio de Registradores e uma unidade de Reordonacdo de Insinagies. 5. Qual a diferenga erie a tidade de Despacho de Instruges ea de Delegaso de InstrugSes? 6. Que finalidade tem a etapa de Graduagdo de Instrugdes no Tuncionamento de uma arquitetara superescalar?| 7. Quais sio as trés formas de ordem de despacho © de graduagio de instrugdes? E qual sua influgnca na unidades de uma arguitetra superescalar?” 8. Explique a previsio dintmica de desvios © ot vérios mecanismos existntes-para sua implementago. 9. Qual a desvantagem no emprego da provsio estitica de desvios e quando & vélido seu cemprega? 10. Como funciona oalgorit no de Scoreboard para exclonament dindmico de insragces? 11, Explique 0 fencionamento do Algoritmo de Tamasulo de escdlonamento dinimico de instruges ede execugio fora de order, 12, Quais as diferengas entre uma arguitetura syperpipelinee uma arguitturasuperescalar? Em ‘que condiges é mais inressanteo emprego de cada uma dessas arguitetras? 13, Expiqueo funcionameno das arqutetras VLIW (Very Large Insruction Word), 14.Cte © detalhe as prncipuis téenices implementadae no” Pentium Ill orundas da ‘microarqutetura PG 15. Desreva as vria fences de previsio empregadas no microprocessador Alpha 21268 Capitulo 4 ARQUITETURAS COM MULTIPLOS PROCESSADORES Neste capitulo sio apresentadas as méquinas paralelas constridas através da replicagio do recurso processador, iumbém denorinadas de Arquiteturas Especiais. Com base em diferentes lasificages feta uma anlige detalhada de como esses processadores poder set inerigados Sto abordadas quests como a implementagio da meméria do sistema, os diferentes tipos de rede de interconexdo exstentese suas caracterfsiase problema de coerécia Se cache. 41 Classitieages 4.1.1 Fluxo de insragbes Fluxo de dados Segundo a classifieagio de Fiyon [Fly72], epresentada no capitulo de introdugbo (Sogo 1.3), a8, ‘mdguinas parlclas Cue possuem mltipios processadores concentram-se nas clases SIMD © No caso sin (Single Instruction Muliple Data) uma tinea insirugio & executada 20 mesmo tempo sobre milipls dados. Todos os processaderes executam em paralclo as mesmas instrugdes de um tnico programa de forma sfncrona sobre diferentes fluxos de dados. Nessa classe, enguadramrse as miquinas array (processor arrays), também. conhecidas como arguteturas com puralelismo de dados (datz parallel architecues). como MasPar MP-1 (Hwa93] e Connection Machine CM-2 (Hwa93], A Figura 4-1 apresenta «arquiteturetpica desse ‘ipo de miguia, twras Par AL oA Processador de Controle int Figura 4: Aruiteur pica dome igus Any As primeiras méquinas array surgiram em meados de 1965 como uma atemativa &s maquinss \eadicionaisseqiencias, ns quas a busca de uma insrugio era to complexa quanto a exeeuio dda mesma (lanto na implementagio em hardware, como no custo de enscusio) A ida fevolucioniria nesse cenirio foi buscar © decodificar uma instrugda em wn processador de controle que a repsssava a miiplos processadores de dadot, nos quis a mesma era executada em parle sobre dierentes dados. Estes cram chamados de elementos processadores (EP) pois possufam apenas uma undade Logica eartmiiea (ULA), memeria locale uma conexao simples Para os vizinhos mais préximos. Esses Ps eram aormalmente organizados. cm estas regulates como mina, 2ois iss faclitava © mpeamento dos dados de aplicagbes nomricas ‘como vetores e matrizes também chamados de array’ -tabelas de dds = dato nome desse tipo ‘de méquina). Operagde: como envio de um dado para um dos vizinhos,fazendo com que a matte ‘de dados destizasse em wma directo, e a implementa do um bit de condi, que pect que [EFS no puicipssser de algumas operacbes, possiblliavam a execugio de. algortmos ccomplexos de forma bastante eficente. Porém, no final dos ance 70, essas méguinas foram {ofalmente ofuscadas peo surgimento das méquias vetriis, com seus grandes rexistradores ¢ suas poderosasunidadesfancionas que implementavim pipelines artmeticos, A posiildade de ‘operar um vetor em qualauer posigao da memria eliminou a necessdade de mapear dados 6a aplicagio nas memérias dos elementos processadres, simplficand bastante © alinhamento dos ddados. Maquines array sind tiveram uma época de renascenga na metade da dSeada de 80, ‘quando avangos na teensiogia de circuits VLSI (Very Large System Integration) tornaram {economicsmente vidvelasua construcao com mais de mil elementos processadores de um it. O5 ‘mesmos avangostecnolgicos que tornaram interessante a constragdodessts maguinas com até 5 nil elementos processaderesacabaram permitindo a consrugao de rocessadorescompletos com, ‘co-processadores pono Hltuantee memrias eache. Cam passar do tempo, esses processaores ‘omaramse mais répides, © uma arguitewra com poucos deles ja bastava para superar 0 ‘desempeaho das miquinas array. Hoje em dia, vatiagtes de arquietras array sto utliadas ainda em placas aceleradoras dedicadas como DSPS (Digital Signal Processors) © plecas raicas, [No entanto, a maioria das miquinas paalelas com mitiplosprocessadores enquadra-se na classe ‘iD (Multiple Instruction Muliple Data), na qual cada processador executa 0 seu proprio Canto + Arquit:nras com Miltilas Peocessadores ______49 programa sobre os sas pedipriosdados de forma assincrona. Sendo assim, o principio MIMD & bastante genérico, ois qualquer grupo de méquinas, se analisado como uma unidade {exccutando, por éxemplo, um sistema distibuid), pode ser considerado uma maquina MIMD. Nessa class, enquadtam-ce servidores com miltiplos processadores (dual, quad), as redes de stages e maguinas como CM-5 (Hwa9), nCUBE [Cul99}, Inet Paragon (C99) e Cray T3D reub9} 4.12 Classifcagao segundo 0 comparihamento de meméria Um outro critéio para classficacSo de méquinas paralclas é © compartithamento da meméria [Der01}. Quando se fala em memria compartlnada (shared memory) existe um tnico espaco e enderogamento que seréusado de forma implica para comunicario entre processadores, com operagies de load e store. Quando a memria nio comparilhada existem miliplos fexpagos de endereramento privados (multiple private address spaces), um para cada processador. Isso implica comunicagao explicit através de roca de mensagens com operagtes Bende receive, Meméria distribuida (disribured memory), por sua vez, refer-se & loealizagio fsica da memeéria. Sea meméria é implementada com vérios médulos, ¢ cada médulo foi colocado Dréximo de um processador,entao a meméria €consderada dstibuids, Qtr ltemaiva 60 uso {de uma meméria eetralizada (cenralized memory), ou se, a meméria enconta-se & mesma Aisne de todos os processadores,indopendentemente de ter sido implementada com um ou ‘vésis mbdulos (Pa). A implementagio de meméria com viris médulos seu enderegamento serio detalhados na S2pd0 421 Dependendo de ums méquina parlela utlizar-se ou mio de uma meméria comparihads por todos 0s processadores, pode-se diferencia: 2 Multiprocessadores ‘Teas os provessadores P acessam, alravés de uma rede de interconexdo, uma memes compatthada Mf, Ese tipo de maguina possui apenas um espugo de enderegamento, de ora que tolos os processadores P so capazes de endoregar todas as memérias M (Figura 4-2). A comunicagao entre process feita através da memria compartithada de forma bastano eficiente com operagdes do lipo Load e store, Essus caractritcas resultam do fto de esse tipo de miquina palela ser goastrida a partie da repieagio apenas do componente provessador de uma arquitetura convencional (desacados com ‘uma moldura mais escura na Figura 42). Daf o nome miiltiplos processadores fm] De] [o0)} [se] [ae Figura 62: Arulteur de um migrcessaor ten Phil [Em relaglo a0 tipo de acesso As memerias do sistema, multprocessadores podem ser classifieados como [Ha93) ‘¢ scessouniforme & memeria (uniform memory access, UMA) ‘A meméria usada nessas miguinas 6 cenralizadae encontrs-se tesa distincia de todos processadores (Figura 43), fazendo com que a laténcia de acesso 3 ‘meméria seja igual para todos os procestadores do sistema (uniform). Como © barramenio é a rede de interconexto mais usada nesss maquinase supotaspenas 'uma tramagio por vez, como veremes na Socio 4.3.2, a memira principal € normalmente implementada com um Grico bloco. & importante tesaltar que mfquinas com outras redes de intereonexto e com memirss entrelagadas (Gmplemeatadss com mltiplos méiduloso, dessa forma, ermitindoacessoparalslo diferentes médulos ~ ver Sesio 4.2.1) também se enquadram nese categoria se ‘mantiveren o tempo de acesso 3 meméria uniforme para todos os processadares do sistem. Rede de Interconexio M Figura 43: Miguia UA Mute desis miguinaswilica-s de mami cache nos processors ara ameniardferengadevloidae exe rocessader moma pep (Pad) ‘mend cace € uma memoria especal mas pda gue min principal © funciona como una dee itemedine de armazeneno para cada pcessd Para cad const eta & mera prinspal 6 manda cpn na cove eh ‘objivogessierr um novo acesso ao memo endereg. Cor, ae case de ‘niguinas todos os rocessdores poem enya tds tema do sistema, em tm eterna momen, vas epi mssna pose da menial Pde exsir em caches diferentes. sp & um problems qe pei se tay sum pocessidor pode abla coma copia em sua cove Tea esa Pode $i elias estado ata da mesma pongo na mendra pina. Como © teal 6 ae 0 conte das remit cachet ssa coerent ese problema € Chamado ie certcia de coche (cache cohen) [CU] € abodado em detales na Sepio 45. A maior do mutpocssadrs uaa resolve ese problema em rive. ' scesso ne wiforme & memvria (non-uniform memory access, NUMA) A meméria usada nessas méquinas & distibuida, implementada com méliplos ‘édulos que sio associados um a eada processador (Figura 4-4). © espago de ‘enderegatrento € dnio, e cada processador pode endear toda a mem do plas Processadores 2 sistema, Se 0 enderego gerado pelo processador encontrarse no mulo de rmeméria diretamentcligado a le, dito local, o tempo de acess0 a cle seri menor que 0 tempo de acesso a um médulo que estt dretamente Tigado a outro procesader, ito remote, que s6 pode ser acessado através da rede de Inteconexa0. Por esse motivo essas miquinas pessuem um aceso no niforme & rmenéria (a distincia 8 memra nlo € sempre a mesma e depende do endereg0 desgjadoy igs dab fu) [an elel ble Ae ] Figura 4-4: Maquina noe DDerendendo de © problema da cosrtneia de cache te sido tratado ou no, © de cess tratamento fer sda feito om hardware ou em sofware, essa classe pode Sor ‘ublivdida em: — scesso nfo uniforme & memria sem coeréncia de cache (non-cache-coherent rnomsiform memory access, NCCNUM) \Variaso de nuMta em que no hécoerénca de cache garntida em hardware = acesso no uniforme & meméria com coesénci de cache (cache-coherent non tniform memory access, UMA) \Variagdo de NUMA em que hi coeréncia de cache garantida em hardware, = acesso no uniforme A meméria com coeréncia de cache em software Goftware-coheren! non-uniform memory acess, SCUMA) [esse caso, a coeréacia de cache mio esta implementada em hardware como ‘nas maquinas CC-NUMA, mas em software, de forma transparente a0 usbstio. [Essa camada de software & também conhecida como DsM (Distributed Shared ‘Memory) [Ni 91] e naturalmente sé faz sentido sobre méquinas NCC-MUMA & NORMA que ndo tém cooréncis de cache em hardware. ‘Uma si depende de extenses de software para a oblengio de um espago de ‘enderegamento Unico, comparthamento de dados e controle de coeréncia Uma alteativa de implementagdo € chamada Sv¥ (Shared Virtual Memory). e nela o mecanismo de geenciamento de memsria de um sistema operacional tradicional 6 moifieado para suporar esses servigos em nivel de pginas ou de segmentos. A vanlagem & gue, dessa forma, nto se fazem nacessérias lterages nas aplicagdes, O projeto SHRIMP [Lis98} uss essa ahordagem, ‘Outra possiildade & no alterar sistema operacional ¢ usar compiladores € bibiotecas de fungdes para converter céigo desenvelvido para um espago de Par Bi 0.4.Ne cenderegamento nico em um e6digo que roda em miliplos espagos de enderegamento. Nesse caso, o c6digo original tem que ser modificado para ‘ncuircomparithamento de dados, sineronizacio e primtivas de coerénca. O rojetoTreadMarks (Amz96] usa essa abordagem. arquitetras de memeria somente com cache (cache-only memory architecture, cons) [Em uma maquina COMA, todas as memérias locas extio estruturadas como rmemérias cache eso chamiadas de COMA caches (Hwa98] (Figura 4-5) Easas caches &m muito mais eapacidade que uma cache tadcional. Arqutturas ‘Cont sip as snicas que tm suporte de hardware para arepliagi efetiva do ‘esmo tloco de cache em miltplos nés (as arguletras anteriores, s blocs ‘normalmenteinvalidades, endo atualizados). A memera principal desses méquinas compesta pelas cackes COMA, e a hardware de suporte tem que imeprar a grtocia das caches ea geréncia de memeria. Essa complexidade faz ‘com queessasarguteturas Seam mais earas de inmplementar ue as maquinas NUMA P| fe P IF OME I (aa a Rede de Interconextio = Figura 48 guia COMA (2 Multicomputadores ‘Cada processador ? possui uma meméria local A, 2 quel s6 ele tom acesso. As memrss dos outros processsdores s80 considerndas memérias remotas e postiem espapos do cenderegamento dstinios (um endereyo gerado por P, 6 &capaz de enderegr I) Como ‘no € possivel o usc de varidveiscomparihadas nesse ambiente, toca de informagies ‘com outrs process ¢ feta por envio de mensagens pea rede de interconexdo (Figura 4-6). Por essa rain, essas méquinas também sto chamadas de sistemas de troca de ensagens (message passing systems). Estas caraeteristicasresultam do fato de esse tipo de méquina paralela ser construldo a partir dt replicagao de toda a arguteura ‘convencional (destaadas com uma moldura mais escura na Figura 4-6), ¢ aio apenas do ‘componente procesador como nos multiprcessadores. Daf 0 nome miltiplos ‘computadores. Capinlo-4- Arauitewas com Miitiolas Processadares 8 Rede de Interconexio Figura 46: Arquiteur dew mticompatsoe Em rlagio ao tipo de acesso as memérias do sistema, multicomputadores podem ser clasificados coma: ‘+ som scesso a vardvoisremotas (non-remote memory access, NORMA) ‘Como uma arguittura tradicional intra foi replicads na consirgio dessas iéguinas, os regstradares de enderecamento de cada né sé conseguem enderegar ‘ stamemsra local. ‘A Figura 4-7 apresata uma visto geal da clasiicagdo segundo o compartilbamento de meméria {¥a98). A linha uacejada indica que as miquinas das classes NCC-NUMA © NORMA podem Ser traneformadas em méquinas SC-NUMA alravés da incusio de uma camada de software que Implementecoeréncia de cache Ma {mia cenra Maire (eae atk wrramene io} o an num co-nva ‘iende) Nce-NOMA-, inlipts expecos \ | Sc-NUMA ‘tener j Nona === dl Figura 7 Vio gral classics segundo o compart de nema Ha) 42. Organizapioda Meméria Principal [Em uma méguina paralela, meme principal em um papel fundamental, como vimos na e530 de classficagbes, especialmente em multiprocessadores. onde & comparilhada por todos. os rocessadores. neessrio que se tena cuidado na escolha Uo tipo de orgnizagio de leméria para que se vite uma drisica degradacio de desempenho causada por dois eu mais processadorestntando acessar os mesos mdulos do sistema de memes a Avo Phil 42.1 Memeras envelagadas Sendo assim, no desejvel que a meméria principal sea implementada por um dnico méulo 4e forma monolitica (Figura 4-83), mas sim panicionada em virios miidulos independentes com lum espago de enderesamento nico distibuldo entre eles. Exsa forma de implementagao € cchamade de entrelagameato (interleaving e aenva aintereréncia ene processadores no acesso A memoria, permitindo acessos concorrenies a diferentes médulos. (Figura, 485). O. cnuelagamento de enderegos ene f médulos de meméria €chamado de entrelagamento de M- (@Blecosnico () Boetagada Figures: Meni com loo iso (se mei cena) {A Sogo 24 ja apresentou duastéenicas que podem ser apicadas em memes entelagadas para velerar a taxa de tansferénciae, porante tender melhor & demanda da CPU, 42.2. Memésias com mitiplas poras ‘importante destacarquede nada adiant a qucbra da memsra principal em virios méulos sea rede de interconexdo uilizada na maquina no suporta miltiplas transagées. Umma méquina UMA, Por exemplo, qe se utilize de um baramento para ligar os processadores & meméria principal, no se beneficia dos mips canas de uma meméra entrelageds, J& que o prtpro barrameno & ‘opargalo, A utilizagao de redes de rtereonexdo que possam se aprovitar dos mitilos canis de memecas fentrelagadss pode, por sua vez, ter um culo muito alto, como, por exemplo, mattizes ‘chaveadoras para um elevado nimero de processadores, ‘Uma alterativa é« uilizagto de memérias multiport. idsia€ mover tgica de arbitrage & de chaveamento dx rede de inteconexio para dentro do controlador de meméria, Com a lutlizagdo desse tipo de meména, os processadores do sistema sBo ligados dirlamente na ‘memséria principal Sem a necesidade de ua rede de intereonexio, Dessa forma, porém, os medulos da memria ficam mais caros devido 2 adigio de mihiplas Portas de aesso eda lies associada A Figura 4-9 demonstra ligagio de m processadores etn 'm médulos de uma memiia entrelagada multipona. Cada um dos m médulos de memiria 58 Pode atender a um processido de cad ve, le prez Ma ‘m Mose mea compartihads ira 49% Mona migra com proceso m més de ess ‘A utlizas0 de wara meméria principal com maltiplas portas € um compromisso ene a utilizagio ‘de uma rede de inereonexto de baixo custo e baixa performance como o barramento © a uilizagio de ume rede de interconexdo de alto cuso ¢ alta performance como uma maiz chaveadora As prinepais destantagens de uma meméria multiporta si o alto custo para valores clevados de nem e a impossbilidade de expansio do nimero de processadores depois de estabeleido 0 nimero de ports da meméria. O alto custo para um grande nfimero de componentes pode ser amenizado com a implemeatago de uma mena mullpora que no tenha igo de todas 08 processadores para todos os médulos. A Figura 4-10 apreseta essa altemativa com alguns dos ‘médulosligados apenas um dos processadores da sistema. B] fz oe ve W Mt, Ms | wm ‘Figen 410 Mencia mage cm tule ecu cos procersoes 43 Redes deInterconexto ‘A forma como os processadores de uma arquitetura slo ligados entre si ¢ com outros ‘componente do sistema (normalmente com a(s) meméra(s)€ dada pela rede de itereonexdo. [Nas duas principas classes de arquiteturas vistas acima,a rede de inerconexdo deseinpeih un papel mio importante: nos multrocessadore, ela pode ajadar @ amenizar o problema dos confltos de aceso,c erm multcormputadores, ela inlueacia dretamente a eicigacia da tora de informagies. Para avaliagio das diferentes redes de interconexso, sero uilizados 08 seguintes crits [Hei95) ute 2 Phillppe OA. Ne 1 Escalailidade ‘Capacidade de adapt As necessidades do svitio. No easo das redes de interconexo, tefere-se & capacidate da rede de intecligar componentesadicioais, por excmplo, e850 0 usurio necessite de mais desempenho, mantendo as caracteristicas originals 12 Desempenho Indica a capacidade e a velocidad da transferéacia dos dados na rede. finfluenclado por ‘tos fatores como: desempent fsic das lizagbesutlzadas na rede, dstncias a serem petcorridas e grau de paralcismo na tansferéncia(quantos ns podem trnserr dados simultaneamente). Cs prneiaisindicadores de desempenho em redesdeinterconexao s80 a laténciae a vazde. A laténcia indica 0 tempo que uma unidage de dados demora para ser tansferda, ea YazHo, quanas unidades de didos fram transferides por unidade de tempo. Um caro com eapacidade para 5 passageios quc leve 10 minutos para chegat & seu destino tem ume latEncia de 10 minutos e uma vazio de 30 passageios/ora (S passagciros * 6 viagens por hora), Ouro fator a ser considerado €'se as Tigagées sio ‘unidiecionas ou bilrecionais, podendo o dltimo caso ser capar de wansferir dds er mba as dieses sinultaneamente(fll-dyple) ou no (fle). 2 custo NNo caso das redes de interconexio, © custo cresce proporconalmente em funglo do mero de igagdas ede sua capacidade de transferénia(v82a0elatnei). © Confsbilidade ‘A crsténcia de caminhos alernativos redundantes entre componentes. sumenta & onfiabilidade dared deinterconexio em caso de falhas. (2 Funcionslidede Juntamente com a fungio de ansferéocia de dados propriamente dita, as redes de inerconexio poder: eventualmente implementar outs servigas, como, por exemplo, famazenamento.terporirio dos dados. tansinitidos (como um buffer), gerantia. de fordenagdo dos dads transmatides (quem fot enviado frimeiro ehega primero), of ‘oxeamentosutomaticoimplementado em bardvare. 43.1 Redes estiticas ‘Se os componentes da miquina(processadore, memiras) esto interlgados através de ligages fhxas, de forma que, entre’ dois componentes,exsta una ligagio dita dedicada, a rede de interconexio € denotninada estitiea (porio--ponto). A Figura 4-11 apresenta alguns exempios de redesestiticss. Redes esttiess so utlzadas, na maioria dos casos, em multicomputadores [Nesse e180, a topologia (csutura ds ineligagio) determina as caracteriticas da eds. Maquinas peralelas possuem quase sempre estruuras regulares com ligagdes homogéneas, enguanto sistemas distribuides, por causa da posiglo geogrifica e de sua integragio gradual, possuem ‘estruturasireguares com ligagesheterogneas (lgapes heterogéneas entre redes loa). ls n (0) mye (osm (el hat Figur 41: Aguas toposes prncipas eriéios para a avaliagdo de uma topologia sio o nimero total de Hgagdes ente components, quanta ligagoes dire. cada componente possi (grau do né) ¢ a maior distncia ene dois components quaisquer da rede (diimetro),O grau do pode ser constante ou vara 4g acondo com o nimero total de nbs da rede (por exemplo, em uma rede em forma de estela). ara cada ligagdo que um componente possui, é necessiria uma interface Misia corespondente (ponte), © que auniena consideravelmente 0 custo do componente para mutes ligagdes. Emm relagio ao custo, 0 melbor caso seria uma rede com um gray de n6 balxo e constante. Um processador Trarsputer (Inm86), poe exemplo, possui capacidade para a ligagio dirta de 4 Vizinhos, no podewo ser usado em topelogias que necessitem um grau de n6 maior do gue 4 (por exemplo, um Hipereubo de rau 5). A"Tabela 4-1 apresenta urna comparagea dos eirios cima para as topolgiasestiticas da Figura 4-11 “Tabela 1 Comparago eae ets das opti oe Grau do 06 Dismetro [oo a : co leacca nt | Eiara ci 7 Estrela ” ie 2 a .=CsCrsiCs$ 7 A estrutura com a menor conectivdae (elago entre 0 ndmero igagbes ¢ © nimero de n6s) 6 0 ane! (Figura 4-119. Com um grat de n6 constante igual a 2, 0 seu custo € baixo, mas seu didmero cresce de forma linear em relagdo 80 nimero total de ngs. Se todos os processadores necessitarem trocar das entre si, pode ocorrer uma sobrecarga do ane, o que scarretria araso na transferéneia dos dados. Oura desvantagem do anel a falta de caminbosalleratvos entre os 78__Avgultewras Paralelas César A.B De Rase e Philpne 0.4, Navas 1, 0 que resuta em uma baixa confibiidade. Para diminuir o téfego no ancl principal e sunientar a sua confiablidade, podem ser incuidas caninhosadicionais. A topotogia resultant é denominada anel chordal (Sgura 4-11d). O outro extemo, em rlagio ao ancl, € a topologia totalmente conectada (Fig 4-1e), com um grau de né igual 20 niimero dongs e um ‘rescimento quadritco do nimero de conexdes em relagio a0 nimero de 6s, mis com 0 ‘metro ideal de Outro fator que pode ser decsivo na escolha de uma topologia, além da relagio custadestimpenho, € sua adequagao a uma classe espectiea de algoitos. No caso idly 0 pdrio de interconexio da topologia corresponde exatamente a0 padrlo de comunicagio da ‘plcagio paralela que exccuts na méguina. A drvore bindria (Figura 4-123), por exemplo, favorece a exccugto de algritmos de dvisio e conqusta (divide and conquer {Zom6)).O seu Aidmeto cresee de forma linear em relago & altura h da irvore A) e de forma logaritmics em relagio a0 nimero de nds. Outras caracerficas das vores bindrias #0 0 seu gray de n6 ‘isi do 3 (ea tem gran igual a2) sua bua confiabildade, que a falba de um n6 resulta na perd da liga com tod a subirvore abuixo dele (panicionamento da estrutura). Mesmo que ro ocorram falas, © uso de irvores pede-setornar problemitic, pois todo 0 fuxo de dados ene a subrvore esquerdae a direta tem que passar pela rai, a qual se oma rapidamente © arzal da ede Figura 4.12: Aver Binsin) Pree) [ssa deficigncia pode ser zlviada com uma frvore Tree X(h) com altura hy qu, além das conexSes normais da érvors binéra, diciona conexses enlre o¢ nds do mesmo nivel (Figura '£12b). grau do né maximo 6 5, masa fala de qualquer n6 no resulta em partcionamento da cstrutura. A Figura 4-13 spresenta outra allemativa para esse problema: ¢ a replicagao de conexdes, ou 0 uso de conexdes com maior vazio, nas ligapies pero da raiz (eas mais congestionadas, pois acumilam todo 0 trfego entre as diss subérvores principals). Fssi ‘otimizagao chamada Far-Tree (Arve gorda) foi introduzida por Leiserson em 1985 [Lei] Capitulo 4 Figura 418 Ano Fare ‘Uma topologia muitoutlzada em méguinas parloas é« malha bidimensional (x), podendo ter as bordas no conectadas (Figura 4-14a) ou ter bordas conectadas deforma cilia, formando ‘um forusbidimensiona (Figura 4-146). Essa topologistambem é conhecida como rede NEWS, por ‘causa das conexGes para os viznhos nas quatro coordenads (North, Eas, West, South. (Maa (Tone Figura 44: Mata a esos) © rau do n6 ¢ corstante ¢ igusl a 4 (se mo forem consideradas as bordas dt mala), Possibiltando faciImente um aumento do nimero de processadores em qualquer uta das Aimensées (incluso de lnhas ou de colunas) ¢ resultando em una bos escalabildade, Malhas no precisam necessaiamente ser quadradas como na Figura 4-14, podendo uma das dimenstes Ser menor do que acura, resutando em diferentes retangulos (0 que pod Ser vanajoso no aso 4 excalabilidade, pois permite © aumento do nimero de proceseadores em mtiplos de menor imensto). O diimetro da malhacresce proporcionalmente& siz quadrada do nimero de nds, ¢ existncia de camino: alternatives ene n6saumenta a confiabilidade da rede e diminuio risco 4 argalos. “Malhas sio adequadss aos problemas nos quais uma estrutura de dados bidimensional tem que ser Drocessada de forma patcionada. Muitos problemas atuais, ue necessitam de grande poder de Drocessamento, possuem essas caracteristicas, como, por exemplo, operagdes com Tatizes, Drocessamento de imazens © equsdifernciis [Fox88). Malhas também podem ter mais de «duas dimensées (d >2. 0 grav do né é, nesses casos, 2d. Uma atengdo especial ver sendo dada 8s estrturas tdimensionais, pois cada vez mais aplicapbes que necesitam de alto desempenho ‘modelam aspectosflicos do. nosso mundo tridimensional. Aiguns exemplos sio prevsao Jo ‘empo,simlagto de putculs eaerodindmica. Todas esas aplicagBes barca se na visio do espago tridimensional em quadrants eno ealeulo de grandevas fiscas dentro desses quadrantes. o _Arquiteturas Paraleas - Car AE De Rose e Phillope OA. Nava © cedleulo dos diferentes quadtantes pode ocorrer, em grande parte, em parle, pois cada ‘quadrant necesita apenss de dados das margens dos quadrants gue compbem sua fronteira. A ‘omunicagio et, dessa forma, rsrita 38 margens dos quadrants, e esse padrao de comunicagl0 corresponde is igagdes de urna malha tridimensional Mf). ‘Quits topologia muito dfundida entre 25 méquinas parlelas é o hipereubo, principalmente evido a0 seu pequeno didmet, que ¢ igual a0 seu grau e eresce de forma logaetmica em ‘elagio ao nlmero de nés Devide a essas caracteisticas, hipercubo adapa-se bem asplicagbes ‘cam padres de comuniigio poucolocalizados (ado rstito a regis vzinhas). A Figura 4-15 "presenta dois hipereubos cor indieagto desea grav, nimero de nés ¢ do maior camino a ser percorrdo entre n6s (diet) (tiem deamas (ero dean Figura 415: ipa de ferns iments, 3, Bde (Ene edad Por causa de sua extrutur, 0 hipercubo no ¢ muito Mexivel no que ange A sua escalabiidade, $6 podendo fer o seu nimer de nds aumentado em intervals de paténia de dis. sua principal esvantagem, porém, €¢ sea grau de nd, que € sempre igual & sua dimensio. Isso difculta a feonstrugio de hipercubos de maior dimensio, Com o grat $ de um Transputer [InmB6l, por texemplo (cada processador possui apenas 4 links de comunicagio), seria possivel apenas a jonstruggo de um hipercabo de dimensdo 4 com 16 processadores (niémero de processadores 20255) Como essa & uma limitaeo bastante signficatva, cesceu o ineresse por coplogias ‘que, camo o eubo, possiam um didmeto que eesga de forma logaritmica em relaga0 ao mimeo dens, mas possuara um grade 6 constante. As ts topologias apresentadas a seguir possuem tessa caracterisca. (© eubo de ciclo coneetados CCC() (Cube Connected Cycles) de dimensio dbaseiase em um hipereubo da mesma divensioe substitu cada né do hiptcubo por um anel eomposto de d nds [Pre8i}, Dessa forma, 6 CCC possui um grau do n6 constant igual «3 para qualquer dimensio, mantendo a relay logurtmica entre nimero de nds (d2") diimeiro (2d + Ld). A Figura 4-16 presenta um CCC degre 3. igure 46: CCC de ean 3 [A segunda topologia com essa carseteristica 6 0 grafo Butterfly BEA) de dimensio d (Figura 4.17). Ele possui omesmo nimero de nds que o CCC(2), porém, devido ao seu grau de n6 igual a 4, possai um diietro menor (24+ La2 Figura 617: Bury com dinesto3 ‘Outro exemplo cum grau de n6 constante com diimetrologartimico slo os grafus de DeBrujn ‘DB(@). Um grafo de DeBiruin com dimensio d possui 2d ns e um diimetro de dO grav do m6 & ‘constant e igual a4 (Figura 4-18) Figura 418 info de Derg com dens 2 at Parallas ~ Philppe 0A ‘Um resumo dos parimetras das tqpologias apresentadas pode ser encontrado na Tabela 4-2 {Hei94) F imporance lembrar que as toplogias aqui apresentadas no represetam a iaalidade das topologias existentese que podem se combinadas deforma hierirquice, formand topologias hibridas, como & osaze 29 CCC, por exemplo, ue combina o hipecubo eo ane. “bela 42: Reso das ascii das opis presente Namero] Nimerode [Grea dos de nds. ligagies (exiximo) | Pietro Arvo Bindi 500 eal aa 3 2h peter tay wa 5 a Maha May x02. ay) Tle 2 | San Torus Tay a3 x. a4) To od Sai! I it 2a) Hipercubo H(d) a a a | Cube Connected Cycles CCC( | dat saat! : 2d+ldi2) Butterfly BFid) at at 4 a+(ar2l | DeBrujn DB {ds x | Cau 4 ad 43.2. Redes dindiieus ‘Na intetconeno de onponentes com redes dindteas, no existe uma topologa fixe que dena © padrio de comunieagio da rest. Quando uma conexdo ene dois ponos fazse necessina rede de interconexio adepta-e dinamicamente para permit tranferénca dos dados. Ua rede dingmica € dita blogueante quando uma conesto estabelcida entre dos portos 2 Psimpede 0 tsabelecimento de cutra conexzo entre compenentes quisauer que nio Py e Po Ent uma rede ‘Gini unilateral cada componente possui uma ligaglo bidivecional com a rode (Figura 44198). No caso de uma rede inisica bilateral, cada componente possui uma ligagio de envio € foutra de recebimento (Figura 4-190). Pr peeps | Pee] [Prsteccinccone ene LE) (Uaiatend (@) Bilateral igure 419 Res tics iter) ise @) Enquanto as redesestticas vistas até agora so uilizadas na maria dos casos na interconexio de nos de multcomputadores,rodesdindmicas, por sua vez, slo uplcamene responsive pela imterligagio de procesadores com memerias em multiprocesadocss. Algumas redes dindmicas io também omprogacas em multicomputadores, Para falta sua andlise, a8 res dinimicas foram divididas em e8s grupos de acordo com suas caracerisicas: barramento, matiiz de chaveamento e res ltnive, Dente as res dindmeas, © barramento 6a allemativa de menor custo. Porém por tratarse de um canal comparilhado por todas as conexdes possveis, tem baixatolerincia a falas (baixa ‘onfiabilidads) © é altsmente bloqueante (Figura 4-20a). Sendo assim, acaba tendo sua tscalabiidade compromstida,sendo utilizado em multprocessadores com ura nimero moderado tle provessadores (

Você também pode gostar